diff --git a/.clang-format b/.clang-format index e4165cefbb4f1d..87eaf54798cdaf 100644 --- a/.clang-format +++ b/.clang-format @@ -230,4 +230,11 @@ StatementMacros: - QT_REQUIRE_VERSION TabWidth: 8 UseTab: Never +--- +Language: JavaScript +BasedOnStyle: WebKit +AlignConsecutiveAssignments: true +AllowShortFunctionsOnASingleLine: None +IndentWidth: 2 +ColumnLimit: 132 ... diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile index 5b41c4d77ea6ba..489a5596bdda70 100644 --- a/.devcontainer/Dockerfile +++ b/.devcontainer/Dockerfile @@ -54,3 +54,5 @@ RUN echo "PATH=/home/$USERNAME/bin:${PATH}" >> /home/$USERNAME/.bashrc # $USERNAME needs to own the esp-idf and tools for the examples to build RUN chown -R $USERNAME:$USERNAME /opt/espressif/esp-idf RUN chown -R $USERNAME:$USERNAME /opt/espressif/tools +# $USERNAME needs to own west configuration to build nRF Connect examples +RUN chown -R $USERNAME:$USERNAME /opt/NordicSemiconductor/nrfconnect/.west diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index 44036a91d8abbe..1a5a7e8dcb7fb0 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -13,7 +13,7 @@ "dockerfile": "Dockerfile", "args": { // "BUILD_VERSION": "$(cat integrations/docker/images/chip-build/version)" // trying to get this to work - "BUILD_VERSION": "0.4.11" + "BUILD_VERSION": "0.4.18" } }, "remoteUser": "vscode", diff --git a/.github/stale.yml b/.github/stale.yml new file mode 100644 index 00000000000000..4dabd5c4aff9cf --- /dev/null +++ b/.github/stale.yml @@ -0,0 +1,42 @@ +# Stale config for https://github.com/marketplace/stale +# Issues with these labels will never be considered stale +exemptLabels: + - security + - blocked + +# Label to use when marking a pull request as stale +staleLabel: stale + +pulls: + # Number of days of inactivity before a pull request becomes stale + daysUntilStale: 7 + + # Number of days of inactivity before a stale pull request is closed + daysUntilClose: 7 + + # Comment to post when marking a pull request as stale. Set to `false` to disable + markComment: > + This pull request has been automatically marked as stale because it has not had + recent activity. It will be closed if no further activity occurs. + + # Comment to post when closing a stale pull request. Set to `false` to disable + closeComment: > + This stale pull request has been automatically closed. + Thank you for your contributions. + +issues: + # Number of days of inactivity before a issue becomes stale + daysUntilStale: 365 + + # Number of days of inactivity before a stale issue is closed + daysUntilClose: 7 + + # Comment to post when marking a issue as stale. Set to `false` to disable + markComment: > + This issue has been automatically marked as stale because it has not had + recent activity. It will be closed if no further activity occurs. + + # Comment to post when closing a stale issue. Set to `false` to disable + closeComment: > + This stale issue has been automatically closed. + Thank you for your contributions. diff --git a/.github/workflows/android.yaml b/.github/workflows/android.yaml index beb1bfc0c14ca4..9b4c27c8e3d887 100644 --- a/.github/workflows/android.yaml +++ b/.github/workflows/android.yaml @@ -34,7 +34,7 @@ jobs: runs-on: ubuntu-latest container: - image: connectedhomeip/chip-build-android:0.4.13 + image: connectedhomeip/chip-build-android:0.4.16 volumes: - "/tmp/log_output:/tmp/test_logs" diff --git a/.github/workflows/bloat_check.yaml b/.github/workflows/bloat_check.yaml index 5d989b22e6f560..a52a77fa04c5f5 100644 --- a/.github/workflows/bloat_check.yaml +++ b/.github/workflows/bloat_check.yaml @@ -24,7 +24,7 @@ jobs: runs-on: ubuntu-latest container: - image: connectedhomeip/chip-build:0.4.12 + image: connectedhomeip/chip-build:0.4.16 steps: - name: Checkout diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index fc56356b868a14..1870296624133d 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -34,7 +34,7 @@ jobs: runs-on: ubuntu-latest container: - image: connectedhomeip/chip-build:0.4.12 + image: connectedhomeip/chip-build:0.4.16 volumes: - "/tmp/log_output:/tmp/test_logs" options: @@ -76,8 +76,6 @@ jobs: # - name: Upload Code Coverage # if: ${{ contains('main', env.BUILD_TYPE) }} # run: bash <(curl -s https://codecov.io/bash) - - name: Show tree - run: find . - name: Remove third_party binaries for CodeQL Analysis run: find out -type d -name "third_party" -exec rm -rf {} + - name: Remove dbus binaries for CodeQL Analysis diff --git a/.github/workflows/examples-efr32.yaml b/.github/workflows/examples-efr32.yaml index 276d6939f26420..398b6b4d6b1b82 100644 --- a/.github/workflows/examples-efr32.yaml +++ b/.github/workflows/examples-efr32.yaml @@ -29,7 +29,7 @@ jobs: runs-on: ubuntu-latest container: - image: connectedhomeip/chip-build-efr32:0.4.11 + image: connectedhomeip/chip-build-efr32:0.4.16 volumes: - "/tmp/bloat_reports:/tmp/bloat_reports" - "/tmp/output_binaries:/tmp/output_binaries" @@ -69,8 +69,6 @@ jobs: path: | out/lock_app_debug/BRD4161A/chip-efr32-lock-example.out out/lighting_app_debug/BRD4161A/chip-efr32-lighting-example.out - - name: Show tree - run: find . - name: Remove third_party binaries for CodeQL Analysis run: find out -type d -name "third_party" -exec rm -rf {} + - name: Remove SiliconLabs binaries for CodeQL Analysis diff --git a/.github/workflows/examples-esp32.yaml b/.github/workflows/examples-esp32.yaml index a1b92d77cd9ee9..5acba3a8db52f1 100644 --- a/.github/workflows/examples-esp32.yaml +++ b/.github/workflows/examples-esp32.yaml @@ -29,7 +29,7 @@ jobs: runs-on: ubuntu-latest container: - image: connectedhomeip/chip-build-esp32:0.4.12 + image: connectedhomeip/chip-build-esp32:0.4.16 volumes: - "/tmp/bloat_reports:/tmp/bloat_reports" - "/tmp/output_binaries:/tmp/output_binaries" @@ -51,8 +51,8 @@ jobs: - name: Copy aside build products run: | mkdir -p example_binaries/$BUILD_TYPE-build - cp examples/wifi-echo/server/esp32/build/chip-wifi-echo.elf \ - example_binaries/$BUILD_TYPE-build/chip-wifi-echo.elf + cp examples/all-clusters-app/esp32/build/chip-all-clusters-app.elf \ + example_binaries/$BUILD_TYPE-build/chip-all-clusters-app.elf - name: Binary artifact suffix id: outsuffix uses: haya14busa/action-cond@v1.0.0 @@ -70,8 +70,6 @@ jobs: ${{ env.BUILD_TYPE }}-example-build-${{ steps.outsuffix.outputs.value }} path: /tmp/output_binaries/${{ env.BUILD_TYPE }}-build - - name: Show tree - run: find . # - name: Remove third_party binaries for CodeQL Analysis # run: find . -type d -name "third_party" -exec rm -rf {} + # - name: Remove m5stack-tft binaries for CodeQL Analysis diff --git a/.github/workflows/examples-linux-standalone.yaml b/.github/workflows/examples-linux-standalone.yaml index ba885245dc1776..5fe57bbf8882d3 100644 --- a/.github/workflows/examples-linux-standalone.yaml +++ b/.github/workflows/examples-linux-standalone.yaml @@ -31,7 +31,7 @@ jobs: runs-on: ubuntu-latest container: - image: connectedhomeip/chip-build:0.4.12 + image: connectedhomeip/chip-build:0.4.16 volumes: - "/tmp/bloat_reports:/tmp/bloat_reports" - "/tmp/output_binaries:/tmp/output_binaries" @@ -58,6 +58,10 @@ jobs: run: scripts/examples/gn_build_example.sh examples/shell/standalone out/shell_debug + - name: Build example Standalone All Clusters Server + run: + scripts/examples/gn_build_example.sh examples/all-clusters-app/linux + out/all_clusters_debug chip_bypass_rendezvous=true - name: Binary artifact suffix id: outsuffix uses: haya14busa/action-cond@v1.0.0 @@ -74,8 +78,6 @@ jobs: path: | out/chip_tool_debug/chip-tool out/shell_debug/chip-shell - - name: Show tree - run: find . - name: Remove third_party binaries for CodeQL Analysis run: find out -type d -name "third_party" -exec rm -rf {} + - name: Remove dbus binaries for CodeQL Analysis diff --git a/.github/workflows/examples-nrfconnect.yaml b/.github/workflows/examples-nrfconnect.yaml index afc34e33ba2d8c..e18ee6bd9cb54e 100644 --- a/.github/workflows/examples-nrfconnect.yaml +++ b/.github/workflows/examples-nrfconnect.yaml @@ -27,7 +27,7 @@ jobs: runs-on: ubuntu-latest container: - image: connectedhomeip/chip-build-nrf-platform:0.4.12 + image: connectedhomeip/chip-build-nrf-platform:0.4.16 volumes: - "/tmp/bloat_reports:/tmp/bloat_reports" - "/tmp/output_binaries:/tmp/output_binaries" @@ -78,8 +78,6 @@ jobs: steps.outsuffix.outputs.value }} path: /tmp/output_binaries/${{ env.BUILD_TYPE }}-build # https://github.com/project-chip/connectedhomeip/issues/3100 - # - name: Show tree - # run: find . # - name: Remove third_party binaries for CodeQL Analysis # run: find examples -type d -name "third_party" -exec rm -rf {} + # - name: Remove nrfxlib binaries for CodeQL Analysis diff --git a/.github/workflows/examples-qpg6100.yaml b/.github/workflows/examples-qpg6100.yaml index dc9532a29f180a..7f0fc0e3de0c26 100644 --- a/.github/workflows/examples-qpg6100.yaml +++ b/.github/workflows/examples-qpg6100.yaml @@ -27,7 +27,7 @@ jobs: runs-on: ubuntu-latest container: - image: connectedhomeip/chip-build:0.4.12 + image: connectedhomeip/chip-build:0.4.16 volumes: - "/tmp/bloat_reports:/tmp/bloat_reports" - "/tmp/output_binaries:/tmp/output_binaries" @@ -46,6 +46,9 @@ jobs: - name: Build example QPG6100 Lock App run: scripts/examples/gn_build_example.sh examples/lock-app/qpg6100 out/lock_app_debug + - name: Build QPG6100 shell App + run: scripts/examples/gn_build_example.sh + examples/shell/qpg6100 out/shell_app - name: Binary artifact suffix id: outsuffix uses: haya14busa/action-cond@v1.0.0 @@ -61,6 +64,9 @@ jobs: steps.outsuffix.outputs.value }} path: | out/lock_app_debug/chip-qpg6100-lock-example.out + out/shell_app/shell-qpg6100.out + - name: Remove third_party binaries for CodeQL Analysis + run: find out -type d -name "third_party" -exec rm -rf {} + - name: Perform CodeQL Analysis if: ${{ github.event_name == 'push' }} uses: github/codeql-action/analyze@v1 diff --git a/.github/workflows/qemu.yaml b/.github/workflows/qemu.yaml index d299107880ffa3..b320f618544df2 100644 --- a/.github/workflows/qemu.yaml +++ b/.github/workflows/qemu.yaml @@ -28,7 +28,7 @@ jobs: runs-on: ubuntu-latest container: - image: connectedhomeip/chip-build-esp32-qemu:0.4.12 + image: connectedhomeip/chip-build-esp32-qemu:0.4.16 volumes: - "/tmp/log_output:/tmp/test_logs" diff --git a/.github/workflows/unit_integration_test.yaml b/.github/workflows/unit_integration_test.yaml index dd532dcb50d522..020fe8fba5e6c4 100644 --- a/.github/workflows/unit_integration_test.yaml +++ b/.github/workflows/unit_integration_test.yaml @@ -34,7 +34,7 @@ jobs: runs-on: ubuntu-latest container: - image: connectedhomeip/chip-build:0.4.12 + image: connectedhomeip/chip-build:0.4.16 volumes: - "/tmp/log_output:/tmp/test_logs" - "/tmp/happy_test_logs:/tmp/happy_test_logs" diff --git a/.gitignore b/.gitignore index 94a796bb618f18..6a47d36f00cdfb 100644 --- a/.gitignore +++ b/.gitignore @@ -9,6 +9,10 @@ # Build System out/ +/src/test_driver/nrfconnect/build/ + +# Environment directory +.environment/ # Temporary Directories .tmp/ diff --git a/.gitmodules b/.gitmodules index b60fe9884dd680..2859972f4a287b 100644 --- a/.gitmodules +++ b/.gitmodules @@ -50,8 +50,6 @@ path = third_party/cirque/repo url = https://github.com/openweave/cirque.git branch = master - ignore = dirty - commit = 905112cbeeda504223209798ec23e3754ce43fca [submodule "happy"] path = third_party/happy/repo url = https://github.com/openweave/happy.git diff --git a/.vscode/c_cpp_properties.json b/.vscode/c_cpp_properties.json index e99e7d2e9dc4cd..fbd94e8520286d 100644 --- a/.vscode/c_cpp_properties.json +++ b/.vscode/c_cpp_properties.json @@ -5,7 +5,7 @@ "compileCommands": "${workspaceFolder}/out/debug/compile_commands.gcc.json", "compilerPath": "/usr/bin/gcc", "cStandard": "c11", - "cppStandard": "c++11", + "cppStandard": "gnu++14", "intelliSenseMode": "gcc-x64", "browse": { "path": ["${workspaceFolder}/out/debug/"], @@ -17,7 +17,7 @@ "compileCommands": "${workspaceFolder}/out/debug/compile_commands.clang.json", "compilerPath": "/usr/bin/clang", "cStandard": "c11", - "cppStandard": "c++11", + "cppStandard": "gnu++14", "intelliSenseMode": "clang-x64", "browse": { "path": ["${workspaceFolder}/out/debug/"], @@ -29,7 +29,7 @@ "compileCommands": "${workspaceFolder}/out/debug/compile_commands.mbedtls.json", "compilerPath": "/usr/bin/gcc", "cStandard": "c11", - "cppStandard": "c++11", + "cppStandard": "gnu++14", "intelliSenseMode": "gcc-x64", "browse": { "path": ["${workspaceFolder}/out/debug/"], @@ -40,7 +40,7 @@ "name": "Android x64 debug (GN)", "cStandard": "c11", "cppStandard": "c++11", - "intelliSenseMode": "gcc-x64", + "intelliSenseMode": "clang-x64", "compileCommands": "${workspaceFolder}/out/debug/compile_commands.android_x64.json", "compilerPath": "/opt/android/android-ndk-r21b/toolchains/llvm/prebuilt/linux-x86_64/bin/x86_64-linux-android24-clang", "browse": { @@ -52,7 +52,7 @@ "name": "Android arm64 debug (GN)", "cStandard": "c11", "cppStandard": "c++11", - "intelliSenseMode": "gcc-x64", + "intelliSenseMode": "clang-arm64", "compileCommands": "${workspaceFolder}/out/debug/compile_commands.android_arm64.json", "compilerPath": "/opt/android/android-ndk-r21b/toolchains/llvm/prebuilt/linux-x86_64/bin/aarch64-linux-android24-clang", "browse": { @@ -64,13 +64,24 @@ "name": "EFR32 examples debug (GN)", "cStandard": "c11", "cppStandard": "c++11", - "intelliSenseMode": "gcc-x64", + "intelliSenseMode": "gcc-arm", "compileCommands": "${workspaceFolder}/out/debug/compile_commands.efr32.json", "compilerPath": "/opt/ARM-software/gcc-arm-none-eabi-9-2019-q4-major/bin/arm-none-eabi-gcc", "browse": { "path": ["${workspaceFolder}/out/debug/"], "limitSymbolsToIncludedHeaders": true } + }, + { + "name": "nRF Connect examples debug (GN)", + "cStandard": "c11", + "cppStandard": "gnu++14", + "intelliSenseMode": "gcc-arm", + "compilerPath": "/opt/ARM-software/gcc-arm-none-eabi-9-2019-q4-major/bin/arm-none-eabi-gcc", + "browse": { + "path": ["${workspaceFolder}/out/debug/"], + "limitSymbolsToIncludedHeaders": true + } } ], "version": 4 diff --git a/.vscode/settings.json b/.vscode/settings.json index 2510df9edd3170..c4290296d8315f 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -110,7 +110,8 @@ "queue": "cpp", "ratio": "cpp", "set": "cpp", - "stack": "cpp" + "stack": "cpp", + "regex": "cpp" }, "files.eol": "\n", "editor.formatOnSave": true, @@ -153,5 +154,7 @@ } ], "clang-format.fallbackStyle": "WebKit", - "files.trimFinalNewlines": true + "files.trimFinalNewlines": true, + "C_Cpp.default.cppStandard": "gnu++14", + "C_Cpp.default.cStandard": "gnu11" } diff --git a/.vscode/tasks.json b/.vscode/tasks.json index d9bce7888594dd..a94dd65c1abd2f 100644 --- a/.vscode/tasks.json +++ b/.vscode/tasks.json @@ -128,9 +128,22 @@ } }, { - "label": "Build ESP32 Echo Example", + "label": "Build Minimal MDNS Example", "type": "shell", - "command": "scripts/examples/build-wifi-echo.py", + "command": "scripts/examples/gn_build_example.sh examples/minimal-mdns out/minimal_mdns 'chip_build_tools=false is_debug=false optimize_for_size=true'", + "group": "build", + "problemMatcher": { + "base": "$gcc", + "fileLocation": [ + "relative", + "${workspaceFolder}/out/minimal_mdns/" + ] + } + }, + { + "label": "Build ESP32 all-clusters-app Example", + "type": "shell", + "command": "scripts/examples/build-all-clusters-app.py", "group": "build", "problemMatcher": ["$gcc"] }, @@ -140,6 +153,58 @@ "command": "TARGET_CPU=arm64 scripts/examples/android_app.sh", "group": "build", "problemMatcher": ["$gcc"] + }, + { + "label": "Build nRF Connect Lock Example", + "type": "shell", + "command": "source scripts/activate.sh && scripts/examples/nrfconnect_example.sh lock-app", + "group": "build", + "problemMatcher": { + "base": "$gcc", + "fileLocation": [ + "relative", + "${workspaceFolder}/examples/lock-app/nrfconnect/build" + ] + } + }, + { + "label": "Build nRF Connect Lighting Example", + "type": "shell", + "command": "source scripts/activate.sh && scripts/examples/nrfconnect_example.sh lighting-app", + "group": "build", + "problemMatcher": { + "base": "$gcc", + "fileLocation": [ + "relative", + "${workspaceFolder}/examples/lighting-app/nrfconnect/build" + ] + } + }, + { + "label": "Build nRF Connect Shell Example", + "type": "shell", + "command": "source scripts/activate.sh && scripts/examples/nrfconnect_example.sh shell", + "group": "build", + "problemMatcher": { + "base": "$gcc", + "fileLocation": [ + "relative", + "${workspaceFolder}/examples/shell/nrfconnect/build" + ] + } + }, + { + "label": "Build nRF Connect Pigweed Example", + "type": "shell", + "command": "source scripts/activate.sh && scripts/examples/nrfconnect_example.sh pigweed-app", + "group": "build", + "problemMatcher": { + "base": "$gcc", + "fileLocation": [ + "relative", + "${workspaceFolder}/examples/pigweed-app/nrfconnect/build" + ] + } } ] } diff --git a/BUILD.gn b/BUILD.gn index 3a2e3733a4fb92..22ff9f3939cce9 100644 --- a/BUILD.gn +++ b/BUILD.gn @@ -18,6 +18,7 @@ import("//build_overrides/nlassert.gni") import("//build_overrides/nlio.gni") import("//build_overrides/nlunit_test.gni") import("//build_overrides/pigweed.gni") +import("$dir_pw_build/python.gni") # This build file should not be used in superproject builds. assert(chip_root == "//") @@ -28,15 +29,20 @@ import("${chip_root}/build/chip/tools.gni") if (current_toolchain != "${dir_pw_toolchain}/dummy:dummy") { declare_args() { chip_enable_python_modules = - (current_os == "mac" || current_os == "linux") && host_cpu == "x64" + (current_os == "mac" || current_os == "linux") && + (host_cpu == "x64" || host_cpu == "arm64") } - # This is a real toolchain. Build CHIP. - group("default") { - deps = [ ":all" ] + # Python packages for supporting specific targets. + pw_python_group("python_packages") { + python_deps = [ + "integrations/mobly:chip_mobly", + "third_party/happy", + ] } - group("all") { + # This is a real toolchain. Build CHIP. + group("default") { deps = [ "${chip_root}/src/app", "${chip_root}/src/ble", @@ -67,6 +73,8 @@ if (current_toolchain != "${dir_pw_toolchain}/dummy:dummy") { if (chip_build_tools) { deps += [ "${chip_root}/examples/shell/standalone:chip-shell", + "${chip_root}/src/messaging/tests/echo:chip-echo-requester", + "${chip_root}/src/messaging/tests/echo:chip-echo-responder", "${chip_root}/src/qrcodetool", "${chip_root}/src/setup_payload", ] @@ -133,9 +141,13 @@ if (current_toolchain != "${dir_pw_toolchain}/dummy:dummy") { # Build the shell example. enable_standalone_shell_build = enable_default_builds + # Build the Linux all clusters app example. + enable_linux_all_clusters_app_build = + enable_default_builds && (host_os == "linux" || host_os == "mac") + # Build the Linux lighting app example. enable_linux_lighting_app_build = - enable_default_builds && host_os == "linux" + enable_default_builds && (host_os == "linux" || host_os == "mac") # Build the efr32 lock app example. enable_efr32_lock_app_build = enable_efr32_builds @@ -201,6 +213,14 @@ if (current_toolchain != "${dir_pw_toolchain}/dummy:dummy") { } } + if (enable_linux_all_clusters_app_build) { + group("linux_all_clusters_app") { + deps = [ + "${chip_root}/examples/all-clusters-app/linux(${standalone_toolchain})", + ] + } + } + if (enable_linux_lighting_app_build) { group("linux_lighting_app") { deps = [ @@ -236,20 +256,20 @@ if (current_toolchain != "${dir_pw_toolchain}/dummy:dummy") { group("default") { deps = [] if (enable_host_clang_build) { - deps += [ ":all_host_clang" ] + deps += [ ":host_clang" ] } if (enable_host_gcc_build) { - deps += [ ":all_host_gcc" ] + deps += [ ":host_gcc" ] } if (enable_host_gcc_mbedtls_build) { - deps += [ ":all_host_gcc_mbedtls" ] + deps += [ ":host_gcc_mbedtls" ] } if (enable_android_builds) { deps += [ - ":all_android_arm", - ":all_android_arm64", - ":all_android_x64", - ":all_android_x86", + ":android_arm", + ":android_arm64", + ":android_x64", + ":android_x86", ] } if (enable_standalone_chip_tool_build) { @@ -258,6 +278,9 @@ if (current_toolchain != "${dir_pw_toolchain}/dummy:dummy") { if (enable_standalone_shell_build) { deps += [ ":standalone_shell" ] } + if (enable_linux_all_clusters_app_build) { + deps += [ ":linux_all_clusters_app" ] + } if (enable_linux_lighting_app_build) { deps += [ ":linux_lighting_app" ] } diff --git a/build/chip/chip_build.gni b/build/chip/chip_build.gni index 6be5a0feeac121..1521f585a8d0ae 100644 --- a/build/chip/chip_build.gni +++ b/build/chip/chip_build.gni @@ -20,8 +20,8 @@ template("chip_build") { _build_name = target_name _toolchain = invoker.toolchain - group("all_${_build_name}") { - deps = [ ":all(${_toolchain})" ] + group("${_build_name}") { + deps = [ ":default(${_toolchain})" ] } group("check_${_build_name}") { diff --git a/build/chip/chip_test.gni b/build/chip/chip_test.gni index cac1d6f4e66946..a9970fa13b6249 100644 --- a/build/chip/chip_test.gni +++ b/build/chip/chip_test.gni @@ -14,6 +14,7 @@ import("//build_overrides/chip.gni") import("//build_overrides/pigweed.gni") +import("$dir_pw_build/python_action.gni") import("${chip_root}/build/chip/tests.gni") import("${chip_root}/src/platform/device.gni") @@ -35,7 +36,7 @@ if (chip_link_tests) { output_dir = _test_output_dir } - pw_python_script(_test_name + "_run") { + pw_python_action(_test_name + "_run") { deps = [ ":${_test_name}" ] inputs = [ pw_unit_test_AUTOMATIC_RUNNER ] script = "$dir_pw_unit_test/py/pw_unit_test/test_runner.py" diff --git a/build/chip/chip_test_suite.gni b/build/chip/chip_test_suite.gni index 43a5f8ae417b92..3881de9b36c5f4 100644 --- a/build/chip/chip_test_suite.gni +++ b/build/chip/chip_test_suite.gni @@ -20,16 +20,67 @@ import("${dir_pw_unit_test}/test.gni") assert(chip_build_tests) +# Define CHIP unit tests +# +# Simple usage +# chip_test_suite("tests") { +# output_name = "libFooTests" +# +# sources = [ +# "Common.h", # add common sources here +# "Common.cpp", +# ] +# +# test_sources = [ +# "TestFoo.cpp", # Files are parsed for `CHIP_REGISTER_TEST_SUITE(...)` +# "TestBar.cpp", # and a driver is created automatically +# ] +# +# public_deps = [ +# "${chip_root}/src/lib/foo", # add dependencies here +# "${nlunit_test_root}:nlunit-test", +# ] +# } +# +# +# Deprecated usage (writing own driver files): +# +# chip_test_suite("tests") { +# output_name = "libFooTests" +# +# sources = [ +# "TestDeclarations.h", +# "TestFoo.cpp", +# "TestBar.cpp", +# ] +# +# public_deps = [ +# "${chip_root}/src/lib/foo", # add dependencies here +# "${nlunit_test_root}:nlunit-test", +# ] +# +# tests = [ +# "TestFoo", # Assumes TestFooDriver.cpp exists +# "TestBar", # Assumes TestBarDriver.cpp exists +# ] +# } + +# template("chip_test_suite") { _suite_name = target_name + # Ensures that the common library has sources containing both common + # and individual unit tests. + if (!defined(invoker.sources)) { + invoker.sources = [] + } + + if (defined(invoker.test_sources)) { + invoker.sources += invoker.test_sources + } + static_library("${_suite_name}_common") { - forward_variables_from(invoker, - "*", - [ - "tests", - "c_tests", - ]) + forward_variables_from(invoker, "*", [ "tests" ]) output_dir = "${root_out_dir}/lib" } @@ -37,22 +88,39 @@ template("chip_test_suite") { if (chip_link_tests) { tests = [] - if (defined(invoker.tests)) { - foreach(_test, invoker.tests) { - chip_test(_test) { - sources = [ "${_test}Driver.cpp" ] + if (defined(invoker.test_sources)) { + foreach(_test, invoker.test_sources) { + _test_name = string_replace(_test, ".cpp", "") - public_deps = [ ":${_suite_name}_common" ] + _driver_name = "${root_gen_dir}/${_test_name}.driver.cpp" + + action("${_test_name}_generate_driver") { + script = "${chip_root}/scripts/gen_test_driver.py" + + inputs = [ _test ] + outputs = [ _driver_name ] + args = [ + "--input_file=" + rebase_path(_test, root_build_dir), + "--output_file=" + rebase_path(_driver_name, root_build_dir), + ] } - tests += [ _test ] + chip_test(_test_name) { + sources = [ _driver_name ] + public_deps = [ + ":${_suite_name}_common", + ":${_test_name}_generate_driver", + ] + } + + tests += [ _test_name ] } } - if (defined(invoker.c_tests)) { - foreach(_test, invoker.c_tests) { + if (defined(invoker.tests)) { + foreach(_test, invoker.tests) { chip_test(_test) { - sources = [ "${_test}Driver.c" ] + sources = [ "${_test}Driver.cpp" ] public_deps = [ ":${_suite_name}_common" ] } diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn index f55fd280263b8c..66c26a49bbe987 100644 --- a/build/config/compiler/BUILD.gn +++ b/build/config/compiler/BUILD.gn @@ -138,12 +138,7 @@ config("disabled_warnings") { "-Wno-deprecated-declarations", "-Wno-unknown-warning-option", "-Wno-missing-field-initializers", - "-Wno-unused-but-set-variable", - "-Wno-unused-variable", - ] - cflags_cc = [ - "-Wno-non-virtual-dtor", - "-Wno-deprecated-copy", + "-Wno-unused-parameter", ] if (!is_debug) { # assert() causes unused variable warnings in release. @@ -153,13 +148,18 @@ config("disabled_warnings") { cflags += [ "-Wno-psabi", "-Wno-cast-function-type", - "-Wno-maybe-uninitialized", ] } } config("strict_warnings") { - cflags = [ "-Wall" ] + cflags = [ + "-Wall", + "-Wextra", + "-Wshadow", + ] + + cflags_cc = [ "-Wnon-virtual-dtor" ] ldflags = [] @@ -186,21 +186,26 @@ config("warnings_default") { if (current_os != "mac" && current_os != "ios") { ldflags = [ "-Wl,--fatal-warnings" ] } + + if (current_os != "mac" && current_os != "ios" && current_os != "linux" && + current_os != "win") { + cflags = [ "-Wstack-usage=8192" ] + } } config("symbols_default") { cflags = [ "-g${symbol_level}" ] } -config("gnu11") { +config("gnu14") { cflags_c = [ "-std=gnu11" ] cflags_objc = [ "-std=gnu11" ] - cflags_cc = [ "-std=gnu++11" ] - cflags_objcc = [ "-std=gnu++11" ] + cflags_cc = [ "-std=gnu++14" ] + cflags_objcc = [ "-std=gnu++14" ] } config("std_default") { - configs = [ ":gnu11" ] + configs = [ ":gnu14" ] } config("cosmetic_default") { diff --git a/build/config/compiler/compiler.gni b/build/config/compiler/compiler.gni index 9b28a47edc8183..a524bfeb3915a4 100644 --- a/build/config/compiler/compiler.gni +++ b/build/config/compiler/compiler.gni @@ -20,7 +20,7 @@ declare_args() { optimize_for_size = true # Optimize debug builds with -Og. - optimize_debug = current_os == "freertos" + optimize_debug = current_os == "freertos" || current_os == "zephyr" # Symbol level for debugging. symbol_level = 2 diff --git a/config/esp32/components/chip/component.mk b/config/esp32/components/chip/component.mk index e0e67660e934f4..50ecc6fedf4cb9 100644 --- a/config/esp32/components/chip/component.mk +++ b/config/esp32/components/chip/component.mk @@ -122,7 +122,7 @@ install-chip : $(OUTPUT_DIR) echo esp32_cxx = \"$(CXX)\" >> $(OUTPUT_DIR)/args.gn echo esp32_cpu = \"esp32\" >> $(OUTPUT_DIR)/args.gn echo "Written file $(OUTPUT_DIR)/args.gn" - cd $(CHIP_ROOT) && PW_ENVSETUP_QUIET=1 . scripts/activate.sh && cd $(COMPONENT_PATH) && gn gen $(OUTPUT_DIR) + cd $(CHIP_ROOT) && PW_ENVSETUP_QUIET=1 . scripts/activate.sh && cd $(COMPONENT_PATH) && gn gen --check --fail-on-unused-args $(OUTPUT_DIR) cd $(COMPONENT_PATH); ninja $(subst 1,-v,$(filter 1,$(V))) -C $(OUTPUT_DIR) esp32 diff --git a/config/nrfconnect/chip-lib.cmake b/config/nrfconnect/chip-lib.cmake index 4508f8f75401f1..8d04beec199e33 100644 --- a/config/nrfconnect/chip-lib.cmake +++ b/config/nrfconnect/chip-lib.cmake @@ -33,8 +33,22 @@ include(ExternalProject) # Directory for CHIP build artifacts set(CHIP_OUTPUT_DIR "${CMAKE_CURRENT_BINARY_DIR}/chip") +# Define Zephyr C/C++ compiler flags which should not be forwarded to CHIP +# build system (e.g. because CHIP configures them on its own). +set(CHIP_CFLAG_EXCLUDES + "-fno-asynchronous-unwind-tables" + "-fno-common" + "-fno-defer-pop" + "-fno-reorder-functions" + "-ffunction-sections" + "-fdata-sections" + "-g*" + "-O*" + "-W*" +) + macro(chip_gn_arg_bool_if CONDITION ARGSTRING GN_VARNAME) - if (${${CONDITION}}) + if (${CONDITION}) string(APPEND ${ARGSTRING} "${GN_VARNAME} = true\n") else () string(APPEND ${ARGSTRING} "${GN_VARNAME} = false\n") @@ -45,6 +59,15 @@ macro(chip_gn_arg_string ARGSTRING GN_STRING) string(APPEND ${ARGSTRING} "${GN_STRING}\n") endmacro() +macro(chip_gn_arg_cflags ARGSTRING ARG CFLAGS) + set(CFLAG_EXCLUDES "[") + foreach(cflag ${CHIP_CFLAG_EXCLUDES}) + string(APPEND CFLAG_EXCLUDES "\"${cflag}\", ") + endforeach() + string(APPEND CFLAG_EXCLUDES "]") + string(APPEND ${ARGSTRING} "${ARG} = filter_exclude(string_split(\"${CFLAGS}\"), ${CFLAG_EXCLUDES})\n") +endmacro() + # Function to retrieve Zephyr compilation flags for the given language (C or CXX) function(zephyr_get_compile_flags VAR LANG) # We want to treat all zephyr-provided headers as system headers, so @@ -101,8 +124,8 @@ function(chip_configure TARGET_NAME) convert_list_of_flags_to_string_of_flags(CHIP_CXXFLAGS CHIP_CXXFLAGS) set(GN_ARGS "") - chip_gn_arg_string(GN_ARGS "target_cflags_c = string_split(\"${CHIP_CFLAGS}\")") - chip_gn_arg_string(GN_ARGS "target_cflags_cc = string_split(\"${CHIP_CXXFLAGS}\")") + chip_gn_arg_cflags(GN_ARGS "target_cflags_c" ${CHIP_CFLAGS}) + chip_gn_arg_cflags(GN_ARGS "target_cflags_cc" ${CHIP_CXXFLAGS}) chip_gn_arg_string(GN_ARGS "zephyr_ar = \"${CMAKE_AR}\"") chip_gn_arg_string(GN_ARGS "zephyr_cc = \"${CMAKE_C_COMPILER}\"") chip_gn_arg_string(GN_ARGS "zephyr_cxx = \"${CMAKE_CXX_COMPILER}\"") @@ -121,26 +144,25 @@ function(chip_configure TARGET_NAME) chip_gn_arg_bool_if(CONFIG_NET_L2_OPENTHREAD GN_ARGS "chip_enable_openthread") chip_gn_arg_bool_if(CONFIG_NET_IPV4 GN_ARGS "chip_inet_config_enable_ipv4") chip_gn_arg_bool_if(CHIP_BUILD_TESTS GN_ARGS "chip_build_tests") - chip_gn_arg_bool_if(CONFIG_CHIP_LIB_SHELL GN_ARGS "chip_build_libshell") - chip_gn_arg_bool_if(CONFIG_CHIP_PW_RPC GN_ARGS "chip_build_pw_rpc_lib") + chip_gn_arg_bool_if(CONFIG_DEBUG GN_ARGS "is_debug") chip_gn_arg_bool_if(CHIP_BUILD_TESTS GN_ARGS "chip_inet_config_enable_raw_endpoint") chip_gn_arg_bool_if(CHIP_BUILD_TESTS GN_ARGS "chip_inet_config_enable_tcp_endpoint") chip_gn_arg_bool_if(CHIP_BUILD_TESTS GN_ARGS "chip_inet_config_enable_dns_resolver") + chip_gn_arg_bool_if(CONFIG_CHIP_LIB_SHELL GN_ARGS "chip_build_libshell") + chip_gn_arg_bool_if(CONFIG_CHIP_PW_RPC GN_ARGS "chip_build_pw_rpc_lib") + + file(GENERATE OUTPUT ${CHIP_OUTPUT_DIR}/args.gn CONTENT "${GN_ARGS}") - file( - GENERATE OUTPUT ${CHIP_OUTPUT_DIR}/args.gn - CONTENT "${GN_ARGS}" - ) # Define target ExternalProject_Add( ${TARGET_NAME} - PREFIX ${CHIP_OUTPUT_DIR} - SOURCE_DIR ${CHIP_ROOT} - BINARY_DIR ${CHIP_OUTPUT_DIR} - CONFIGURE_COMMAND gn --root=${CHIP_ROOT}/config/nrfconnect gen ${CHIP_OUTPUT_DIR} - BUILD_COMMAND "" - INSTALL_COMMAND "" - BUILD_ALWAYS TRUE + PREFIX ${CHIP_OUTPUT_DIR} + SOURCE_DIR ${CHIP_ROOT} + BINARY_DIR ${CHIP_OUTPUT_DIR} + CONFIGURE_COMMAND gn --root=${CHIP_ROOT}/config/nrfconnect gen --check --fail-on-unused-args ${CHIP_OUTPUT_DIR} + BUILD_COMMAND "" + INSTALL_COMMAND "" + BUILD_ALWAYS TRUE USES_TERMINAL_CONFIGURE TRUE ) endfunction() diff --git a/config/nrfconnect/nrfconnect-app.cmake b/config/nrfconnect/nrfconnect-app.cmake index 4638fb9a7ec255..9f3f1d00cda7d5 100644 --- a/config/nrfconnect/nrfconnect-app.cmake +++ b/config/nrfconnect/nrfconnect-app.cmake @@ -53,8 +53,8 @@ endif() # ================================================== find_package(Zephyr HINTS $ENV{ZEPHYR_BASE}) -# This is temporary solution and should be removed after merging including fix in Zephyr -zephyr_include_directories("${ZEPHYR_BASE}/../nrfxlib/crypto/nrf_cc310_platform/include") +# TODO: temporary fix forcing time_t size to be equal long size - remove it after merging fix from Zephyr project. +zephyr_compile_definitions(_USE_LONG_TIME_T) # ================================================== # General settings @@ -88,6 +88,37 @@ find_file(CHIP_PROJECT_CONFIG NO_DEFAULT_PATH ) +# ================================================== +# Configure Zephyr +# ================================================== + +function(set_openthread_config OT_DIR CONFIG_FILE) + get_property(DEFINES DIRECTORY ${OT_DIR} PROPERTY COMPILE_DEFINITIONS) + get_property(SUBDIRS DIRECTORY ${OT_DIR} PROPERTY SUBDIRECTORIES) + + list(TRANSFORM DEFINES REPLACE + OPENTHREAD_PROJECT_CORE_CONFIG_FILE=.* + OPENTHREAD_PROJECT_CORE_CONFIG_FILE="${CONFIG_FILE}") + + set_property(DIRECTORY ${OT_DIR} PROPERTY COMPILE_DEFINITIONS ${DEFINES}) + + foreach(SUBDIR ${SUBDIRS}) + set_openthread_config(${SUBDIR} ${CONFIG_FILE}) + endforeach() +endfunction() + +# Add dependency on nRF crypto library. +# This is temporary solution and should be removed after fixing it in nRF Connect SDK. +zephyr_include_directories(${ZEPHYR_BASE}/../nrfxlib/crypto/nrf_cc310_platform/include) + +# Override Zephyr-supplied OpenThread configuration +if (CHIP_OPENTHREAD_CONFIG) + get_filename_component(CONFIG_DIR ${CHIP_OPENTHREAD_CONFIG} DIRECTORY) + get_filename_component(CONFIG_FILE ${CHIP_OPENTHREAD_CONFIG} NAME) + target_include_directories(ot-config INTERFACE ${CONFIG_DIR}) + set_openthread_config(${ZEPHYR_BASE}/../modules/lib/openthread ${CONFIG_FILE}) +endif() + # ================================================== # Setup CHIP build # ================================================== diff --git a/config/nrfconnect/overlay-usb_support.conf b/config/nrfconnect/overlay-usb_support.conf new file mode 100644 index 00000000000000..0983dd29efc76e --- /dev/null +++ b/config/nrfconnect/overlay-usb_support.conf @@ -0,0 +1,25 @@ +# +# 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. +# + +CONFIG_GPIO=y + +CONFIG_USB=y +CONFIG_USB_DEVICE_STACK=y +CONFIG_USB_UART_CONSOLE=y + +CONFIG_UART_INTERRUPT_DRIVEN=y +CONFIG_UART_LINE_CTRL=y +CONFIG_UART_CONSOLE_ON_DEV_NAME="CDC_ACM_0" diff --git a/config/nrfconnect/release.conf b/config/nrfconnect/release.conf new file mode 100644 index 00000000000000..b0d3b325d3c56b --- /dev/null +++ b/config/nrfconnect/release.conf @@ -0,0 +1,37 @@ +# +# 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. +# + +# This file contains settings which are not suitable for development phase of +# a project (in which debugging facilities should be enabled by default), but +# are perfectly valid for release builds which aim to generate binaries with +# minimal memory footprint. + +# Disable assertions +CONFIG_ASSERT=n + +# Disable shell/console +CONFIG_SHELL=n +CONFIG_OPENTHREAD_SHELL=n +CONFIG_CONSOLE=n +CONFIG_UART_CONSOLE=n +CONFIG_SERIAL=n + +# Disable logs +CONFIG_LOG=n +CONFIG_LOG_MINIMAL=n + +# Disable other debugging features +CONFIG_THREAD_NAME=n diff --git a/config/nrfconnect/overlay-sample-defaults.conf b/config/nrfconnect/sample-defaults.conf similarity index 96% rename from config/nrfconnect/overlay-sample-defaults.conf rename to config/nrfconnect/sample-defaults.conf index 2321e15faacd23..9e90bae62fbaee 100644 --- a/config/nrfconnect/overlay-sample-defaults.conf +++ b/config/nrfconnect/sample-defaults.conf @@ -54,6 +54,8 @@ CONFIG_BT_DEVICE_APPEARANCE=0 CONFIG_BT_DEVICE_NAME_DYNAMIC=y CONFIG_BT_DEVICE_NAME_MAX=15 CONFIG_BT_MAX_CONN=1 +CONFIG_BT_PHY_UPDATE=n +CONFIG_BT_CTLR_PHY_2M=n # Enable NFC support CONFIG_CHIP_NFC_COMMISSIONING=y @@ -62,7 +64,8 @@ CONFIG_CHIP_NFC_COMMISSIONING=y CONFIG_NET_L2_OPENTHREAD=y # OpenThread configs -CONFIG_OPENTHREAD_DHCP6_SERVER=y +CONFIG_OPENTHREAD_MTD=y +CONFIG_OPENTHREAD_FTD=n CONFIG_OPENTHREAD_SLAAC=y CONFIG_OPENTHREAD_DHCP6_CLIENT=y CONFIG_OPENTHREAD_SNTP_CLIENT=y diff --git a/config/standalone/CHIPProjectConfig.h b/config/standalone/CHIPProjectConfig.h index f2f2f988cf0058..148cb2cf59f54d 100644 --- a/config/standalone/CHIPProjectConfig.h +++ b/config/standalone/CHIPProjectConfig.h @@ -67,4 +67,6 @@ #define CHIP_CONFIG_DATA_MANAGEMENT_CLIENT_EXPERIMENTAL 1 +#define CHIP_DEVICE_CONFIG_ENABLE_TEST_DEVICE_IDENTITY 1 + #endif /* CHIPPROJECTCONFIG_H */ diff --git a/docs/BUILDING.md b/docs/BUILDING.md index d4f1390614b49c..2ab5baa3bd631d 100644 --- a/docs/BUILDING.md +++ b/docs/BUILDING.md @@ -212,7 +212,7 @@ expensive to build everything for every edit. To save time, you can name the configuration to build: ``` -ninja -C out/unified all_host_gcc +ninja -C out/unified host_gcc ninja -C out/unified check_host_gcc ``` diff --git a/docs/Doxyfile b/docs/Doxyfile index 8efaa975d448cd..461d499209b31c 100644 --- a/docs/Doxyfile +++ b/docs/Doxyfile @@ -828,7 +828,6 @@ INPUT = README.md \ CONTRIBUTING.md \ docs/README.md \ docs/BUILDING.md \ - docs/BUILDING-GN.md \ docs/VSCODE_DEVELOPMENT.md \ docs/PROJECT_FLOW.md \ docs/STYLE_GUIDE.md \ @@ -837,10 +836,10 @@ INPUT = README.md \ src/crypto \ src/include \ src/inet \ + src/lib/mdns \ src/lib/core \ src/lib/support \ src/lib/shell \ - src/lib/message/support/crypto \ src/platform \ src/setup_payload \ src/system \ diff --git a/docs/guides/nrfconnect_android_commissioning.md b/docs/guides/nrfconnect_android_commissioning.md new file mode 100644 index 00000000000000..a19cd0d8864e31 --- /dev/null +++ b/docs/guides/nrfconnect_android_commissioning.md @@ -0,0 +1,315 @@ +# Commissioning nRF Connect Accessory using Android CHIPTool + +This article describes how to use +[CHIPTool](../../src/android/CHIPTool/README.md) for Android smartphones to +commission a Nordic Semiconductor nRF52840 DK running +[nRF Connect Lock Example Application](../../examples/lock-app/nrfconnect/README.md) +onto a CHIP-enabled Thread network. The instructions are also valid for +[nRF Connect Lighting Example Application](../../examples/lighting-app/nrfconnect/README.md). + +The commissioning process is composed of the following main stages: + +- CHIPTool discovers a CHIP accessory device over Bluetooth LE. +- CHIPTool establishes a secure channel to the device over Bluetooth LE, and + sends CHIP operational credentials and Thread provisioning data. +- The accessory device joins a CHIP-enabled Thread network. + +Bluetooth LE is only used during the commissioning phase. Afterwards, only the +IP connectivity between the smartphone and the accessory device is needed to +send operational messages. Since a typical smartphone does not have a Thread +radio built-in, extra effort is needed to prepare a fully-fledged testing +environment. This page describes how to build a Thread Border Router using a PC +with a spare Wi-Fi card and an +[OpenThread Radio Co-Processor](https://openthread.io/platforms/co-processor) +device. + +The following diagram shows the connectivity between network components required +to allow communication between devices running the CHIPTool and Lock +applications: + +``` + +--------------------+ + | Smartphone | + +---------| Android CHIPTool |---------+ + | +--------------------+ | + | | Wi-Fi + | | + | +---------------+ Ethernet +----------+ + | | PC |------------| Internet | + | +---------------+ +----------+ + | | + | Bluetooth LE | USB + | | + | +---------------+ + | | nRF52840 DK | + | | OpenThread RCP| + | +---------------+ + | | + | +--------------------+ | Thread + | | nRF52840 DK | | + +---------| Lock Application |---------+ + +--------------------+ +``` + +## Requirements + +You need the following hardware and software to build a Thread Border Router: + +- Two nRF52840 DK (PCA10056) + + - One nRF52840 DK is needed to run + [OpenThread Radio Co-Processor](https://openthread.io/platforms/co-processor) + firmware and can be replaced with another compatible device like + nRF52840 Dongle. + +- Smartphone compatible with Android 8.0 or later +- PC with the following characteristics: + + - Software: Ubuntu 20.04 and Docker installed + - Hardware: A spare Wi-Fi card + +While this page references Ubuntu 20.04, all the procedures can be completed +using other popular operating systems. + +## Building and flashing OpenThread RCP firmware + +OpenThread RCP firmware is required to allow the PC to communicate with Thread +devices. Run the commands mentioned in the following steps to build and flash +the RCP firmware onto an nRF52840 DK: + +1. Download and install the + [nRF Command Line Tools](https://www.nordicsemi.com/Software-and-Tools/Development-Tools/nRF-Command-Line-Tools). +2. Clone the OpenThread repository into the current directory: + + $ git clone https://github.com/openthread/openthread.git + +3. Enter the _openthread_ directory: + + $ cd openthread + +4. Install OpenThread dependencies: + + $ ./script/bootstrap + +5. Set up the build environment: + + $ ./bootstrap + +6. Build OpenThread for the nRF52840 DK: + + $ make -f examples/Makefile-nrf52840 + + This creates an RCP image in the `bin/ot-rcp` directory. + +7. Convert the RCP image to HEX format: + + $ arm-none-eabi-objcopy -O ihex output/nrf52840/bin/ot-rcp output/nrf52840/bin/ot-rcp.hex + +8. Flash the RCP firmware: + + $ nrfjprog --chiperase --program output/nrf52840/bin/ot-rcp.hex --reset + +9. Disable the Mass Storage feature on the device, so that it + [does not interfere](https://github.com/openthread/openthread/blob/master/examples/platforms/nrf528xx/nrf52840/README.md#mass-storage-device-known-issue) + with core RCP functionalities. + + $ JLinkExe + J-Link>MSDDisable + Probe configured successfully. + J-Link>exit + + The setting remains valid even if you flash another firmware onto the + device. + +10. Power-cycle the device to apply the changes. + +## Configuring PC as Thread Border Router + +To make your PC work as a Thread Border Router, you need to complete the +following tasks: + +- Form a Thread network using the OpenThread RCP device and configure IPv6 + packet routing to the network. +- Configure a Wi-Fi hotspot using a spare Wi-Fi card on your PC. + +### Forming Thread network + +To form a Thread network, complete the following steps: + +1. Create an IPv6 network for the OpenThread Border Router (OTBR) container in + Docker: + + $ docker network create --ipv6 --subnet 2001:db8:1::/64 -o com.docker.network.bridge.name=otbr0 otbr + +2. Start the OTBR container using the command below with _rcp-dk_ in the last + line replaced with the device node name of the nRF52840 DK that is running + the RCP firmware (for example, _/dev/ttyACM0_): + + $ docker run -it --rm --privileged --network otbr -p 8080:80 \ + --sysctl "net.ipv6.conf.all.disable_ipv6=0 net.ipv4.conf.all.forwarding=1 net.ipv6.conf.all.forwarding=1" \ + --volume rcp-dk:/dev/ttyACM0 openthread/otbr --radio-url spinel+hdlc+uart:///dev/ttyACM0 + +3. Open the `http://localhost:8080/` address in a web browser. +4. Click **Form** on the left menu. The network forming creator window appears. +5. Make sure that the On-Mesh Prefix is set to `fd11:22::`. This value is used + later to configure the IPv6 packet routing. +6. Click the **Form** button at the bottom of the window to form a new Thread + network using the default settings. +7. Run the following command to learn which IPv6 address was assigned to the + OTBR container in Docker. + + $ docker network inspect otbr | grep IPv6Address + + After checking the output, the address will most likely be `2001:db8:1::2`. + +8. To ensure that packets targeting Thread network nodes are routed through the + OTBR container in Docker, run the following command, with _2001:db8:1::2_ + replaced with the actual address obtained in the previous step: + + $ sudo ip -6 route add fd11:22::/64 dev otbr0 via 2001:db8:1::2 + +### Configuring Wi-Fi hotspot + +To configure a Wi-Fi hotspot using a spare Wi-Fi card on your PC, complete the +following steps: + +1. Open the Ubuntu settings widget by running the following command: + + $ gnome-control-center + +2. Go to the Wi-Fi settings. +3. Click the three-dot icon at the title bar and select the **Turn On Wi-Fi + Hotspot...** option. +4. Enter your network name and password and click **Turn On**. +5. Run the following command to assign a well-known IPv6 address to the hotspot + interface: + + $ nmcli connection modify Hotspot ipv6.addresses 2001:db8:2::1/64 + +6. Run the following command to install Routing Advertisement Daemon (radvd), + which enables the IPv6 auto-configuration of devices that connect to the + hotspot: + + $ sudo apt install radvd + +7. Learn the hotspot interface name by running the following command: + + $ nmcli connection show Hotspot | grep interface-name + +8. Add the following lines into `/etc/radvd.conf`, with _wlo1_ replaced with + the hotspot interface name obtained in the previous step: + + interface wlo1 + { + MinRtrAdvInterval 3; + MaxRtrAdvInterval 4; + AdvSendAdvert on; + AdvManagedFlag on; + prefix 2001:db8:2::/64 + { + AdvValidLifetime 14300; + AdvPreferredLifetime 14200; + }; + }; + +9. Start the radvd service by running the following command: + + $ systemctl start radvd + +To automatically start the radvd service on every reboot, run the following +command: + + $ systemctl enable radvd + +> If you use Ubuntu 18.04, a DHCP server is not configured automatically when +> creating a Wi-Fi hotspot. As a result, devices that connect to the hotspot +> will not be assigned an IPv4 address and may not work properly. To address the +> problem, install and configure a DHCP server on the hotspot interface. For +> example, you can use +> [isc-dhcp-server](https://help.ubuntu.com/community/isc-dhcp-server). + +## Building and flashing nRF Connect Lock Example Application + +See +[nRF Connect Lock Example Application README](../../examples/lock-app/nrfconnect/README.md) +to learn how to build and flash the example onto an nRF52840 DK. + +## Building and installing Android CHIPTool + +To build the CHIPTool application for your smartphone, read +[Android CHIPTool README](../../src/android/CHIPTool/README.md). + +After building, install the application by completing the following steps: + +1. Install the Android Debug Bridge (adb) package by running the following + command: + + $ sudo apt install android-tools-adb + +2. Enable **USB debugging** on the smartphone. See the + [Configure on-device developer options](https://developer.android.com/studio/debug/dev-options) + guide on the Android Studio hub for detailed information. +3. If the **Install via USB** option is supported for your Android version, + turn it on. +4. Plug the smartphone into an USB port on your PC. +5. Run the following command to install the application, with _chip-dir_ + replaced with the path to the CHIP source directory: + + $ adb install -r chip-dir/src/android/CHIPTool/app/build/outputs/apk/debug/app-debug.apk + +6. Navigate to settings on your smartphone and grant **Camera** and + **Location** permissions to CHIPTool. + +CHIPTool is now ready to be used for commissioning. + +## Preparing accessory device + +To prepare the accessory device for commissioning, complete the following steps: + +1. Use a terminal emulator to connect to the UART console of the accessory + device. For details, see the + [Using CLI in nRF Connect SDK examples](nrfconnect_examples_cli.md) guide. + This will grant you access to the application logs. +2. Hold **Button 1** on the accessory device for more than 6 s to trigger the + factory reset of the device. +3. Find a message similar to the following one in the application logs: + + I: 666[SVR] Copy/paste the below URL in a browser to see the QR Code: + https://dhrishi.github.io/connectedhomeip/qrcode.html?data=CH%3AI34DV%2A-00%200C9SS0 + +4. Open the URL in a web browser to have the commissioning QR code generated. +5. Push **Button 4** on the device to start Bluetooth LE advertising. + +## Commissioning accessory device + +To commission the accessory device onto the Thread network created in the +[Forming Thread network](#Forming-a-Thread-network) section, complete the +following steps: + +1. Enable **Bluetooth** and **Location** services on your smartphone. +2. Connect the smartphone to the Wi-Fi Hotspot created in the + [Configuring Wi-Fi hotspot](#Configuring-a-Wi-Fi-hotspot) section. +3. Open the CHIPTool application on your smartphone. +4. Tap the **SCAN QR CODE** button and scan the commissioning QR code. +5. Tap the **Rendezvous over BLE** button to initiate the commissioning + procedure. You will see a few pop-up messages appear as the commissioning + progresses. Eventually, the network settings screen appears. +6. In the new screen, open the **THREAD** tab. +7. Tap the **Save Network** button to send a Thread provisioning message to the + accessory device. + +You will see the "Network provisioning completed" message when the accessory +device successfully joins the Thread network. + +## Sending CHIP commands + +Once the device is commissioned, check the connection with the following +commands: + +1. Go back to the main application screen. +2. Tap the **LIGHT ON/OFF CLUSTER** button. +3. Verify that the text box on the next screen contains the IPv6 address of the + accessory device. +4. Tap either the **ON** or the **OFF** button to lock or unlock the door, + respectively. The **LED 2** on the device turns on or off based on the + changes of the lock state. diff --git a/docs/guides/nrfconnect_examples_cli.md b/docs/guides/nrfconnect_examples_cli.md new file mode 100644 index 00000000000000..79fce4c20eae73 --- /dev/null +++ b/docs/guides/nrfconnect_examples_cli.md @@ -0,0 +1,87 @@ +# Using CLI in nRF Connect SDK examples + +The following examples for the development kits from Nordic Semiconductor +include a command-line interface that allows access to application logs and +[Zephyr shell](https://docs.zephyrproject.org/1.13.0/subsystems/shell.html): + +- [CHIP nRF Connect Lock Example Application](../../examples/lock-app/nrfconnect/README.md) +- [CHIP nRF Connect Lighting Example Application](../../examples/lighting-app/nrfconnect/README.md) + +The +[CHIP nRF Connect Pigweed Example Application](../../examples/pigweed-app/nrfconnect/README.md) +does not support CLI. + +## Accessing the CLI console + +To access the CLI console, use a serial terminal emulator of your choice, like +Minicom or GNU Screen. Use the baud rate set to `115200`. + +For example, to start using the CLI console with Minicom, run the following +command with _/dev/ttyACM0_ replaced with the device node name of your +development kit: + + $ minicom -D /dev/ttyACM0 -b 115200 + +When you reboot the board, you will see the boot logs in the console, similar to +the following messages: + +```shell +uart:~$ +I: nRF5 802154 radio initialized +I: 8 Sectors of 4096 bytes +I: alloc wra: 0, ff0 +I: data wra: 0, 0 +*** Booting Zephyr OS build v2.4.0-ncs1 *** +I: Init CHIP stack +... +``` + +This means that the console is working correctly and you can start using shell +commands. For example, issuing the `kernel threads` command will print +information about all running threads: + +```shell +uart:~$ kernel threads +Scheduler: 277 since last call +Threads: + 0x20006518 CHIP + options: 0x0, priority: -1 timeout: 536896912 + state: pending + stack size 8192, unused 7256, usage 936 / 8192 (11 %) + + 0x20004ab0 SDC RX + options: 0x0, priority: -10 timeout: 536890152 + state: pending + stack size 1024, unused 848, usage 176 / 1024 (17 %) +... +``` + +## Listing all commands + +To list all available commands, use the Tab key, which is normally used for the +command completion feature. + +Pressing the Tab key in an empty command line prints the list of available +commands: + +```shell +uart:~$ + clear date device flash + help history kernel nrf_clock_control + ot resize shell +``` + +Pressing the Tab key with a command entered in the command line cycles through +available options for the given command. + +## Using OpenThread commands + +[OpenThread commands](https://github.com/openthread/openthread/blob/master/src/cli/README.md) +are also accessible from the shell. However, they must preceded by `ot`. For +example: + +```shell +uart:~$ ot masterkey +00112233445566778899aabbccddeeff +Done +``` diff --git a/docs/guides/nrfconnect_examples_configuration.md b/docs/guides/nrfconnect_examples_configuration.md new file mode 100644 index 00000000000000..30f8ad2b67995e --- /dev/null +++ b/docs/guides/nrfconnect_examples_configuration.md @@ -0,0 +1,150 @@ +# Configuring nRF Connect SDK examples + +The nRF Connect SDK example applications all come with a default configuration +for building. Check the information on this page if you want to modify the +application configuration or add new functionalities to build your own +application based on the provided example. This page also contains information +about the configuration structure, which can be useful to better understand the +building process. + +This guide can be used with the following examples: + +- [CHIP nRF Connect Lock Example Application](../../examples/lock-app/nrfconnect/README.md) +- [CHIP nRF Connect Lighting Example Application](../../examples/lighting-app/nrfconnect/README.md) +- [CHIP nRF Connect Pigweed Example Application](../../examples/pigweed-app/nrfconnect/README.md) + +
+ +## Configuring application + +Changing the default application configuration can be done either temporarily or +permanently. Changing configuration temporarily is useful for testing the impact +of changes on the application behavior. Making permanent changes is better if +you want to develop your own application, as it helps avoid repeating the +configuration process. + +
+ +### Temporary changes to configuration + +You can change the configuration temporarily by editing the `.config` file in +the `build/zephyr/` directory, which stores all configuration options for the +application generated as a result of the build process. As long as you do not +remove the current build directory or delete this file, your changes will be +kept. However, if you do a clean build, your changes are gone, so it is not +possible to save changes permanently this way. + +Complete the following steps: + +1. Build the application by typing the following command in the example + directory, with _board-name_ replaced with the target board name, for + example _nrf52840dk_nrf52840_: + + $ west build -b board-name + +2. Run the terminal-based interface called menuconfig by typing the following + command: + + $ west build -t menuconfig + + The menuconfig terminal window appears, in which you can navigate using + arrow keys and other keys, based on the description at the bottom of the + window. + +3. Make the desired changes by following the menuconfig terminal instructions. +4. Press `Q` to save and quit. +5. Rebuild the application. + +At this point, the configuration changes are applied to the output file and it +can be flashed to the device. + +
+ +### Permanent changes to configuration + +The permanent solution is based on modifying the Kconfig configuration files, +which are used as components of the building process. This makes the changes +persistent across builds. + +The best practice to make permanent changes is to edit the main application +configuration file `prj.conf`, which is located in the example directory. This +will result in overriding the existing configuration values. + +This method is valid for the majority of cases. If you are interested in +understanding the big picture of the configuration process, read the +[Configuration structure overview](#configuration-structure-overview) section +below. + +#### Assigning values to Kconfig options + +Assigning value to a configuration option is done by typing its full name +preceded by the `CONFIG_` prefix, and adding the `=` mark and the value. + +Configuration options have different types and it is only possible to assign +them values of proper type. Few examples: + +- Assigning logical boolean true value to the option: + `CONFIG_SAMPLE_BOOLEAN_OPTION=y` +- Assigning numeric integer 1234 value to the option: + `CONFIG_SAMPLE_INTEGER_OPTION=1234` +- Assigning text string "some_text" value to the option: + `CONFIG_SAMPLE_STRING_OPTION="some_text"` + +For more detailed information, read about +[setting Kconfig values](https://developer.nordicsemi.com/nRF_Connect_SDK/doc/latest/zephyr/guides/kconfig/setting.html#setting-configuration-values) +in the nRF Connect SDK documentation. + +Because Kconfig configuration files are used in the building process, make sure +that you rebuild your application after editing them by typing the following +command in the example directory, with _board-name_ replaced with the target +board name, for example _nrf52840dk_nrf52840_: + + $ west build -b board-name + +
+ + + +## Configuration structure overview + +Zephyr RTOS and related software components, like drivers and libraries, provide +a set of Kconfig files which define available configuration options and assign +them default values for any application. + +The application configuration is specified using Kconfig configuration files +(`*.conf`), where available Kconfig options can be used and their default values +overrided. Typically, there are many files having impact on the final +configuration shape. + +There is no need to modify all these files separately. See the following list +for types of files you can find in the project and which of them are important +from your perspective: + +- **Board configuration files.** These are hardware-platform-dependent + configuration files, which are automatically included based on the + compilation target board name. They contain configuration for board and its + peripherals. + +- **Project configuration file.** Every example application has its main + configuration file called `prj.conf` that is located in the example + directory. This file contains application-specific configuration or the most + frequently changed options. Almost every configuration can be overridden in + this file and probably this file is the most important one. + +- **Overlays.** Overlays are optional files usually used to extract + configuration for some specific case or feature from the general application + configuration. The main difference between them and the application + `prj.conf` file is that they are not included automatically, so you can + decide whether to build sample with or without them. Overlay files can be + added to build by typing the following command in the example directory, + with _board-name_ replaced with the target board name (e.g. + _nrf52840dk_nrf52840_) and _overlay_file_name_ replaced with the overlay + configuration file name (e.g. _overlay-usb_support.conf_): + + $ west build -b board-name -- -DOVERLAY_CONFIG=overlay_file_name + +Read the +[Kconfig](https://developer.nordicsemi.com/nRF_Connect_SDK/doc/latest/zephyr/guides/kconfig/index.html#kconfig) +guide in the nRF Connect SDK's Zephyr documentation if you are interested in +getting more advanced and detailed information about the configuration +structure. diff --git a/docs/guides/nrfconnect_platform_overview.md b/docs/guides/nrfconnect_platform_overview.md new file mode 100644 index 00000000000000..b91cd0e97ef2de --- /dev/null +++ b/docs/guides/nrfconnect_platform_overview.md @@ -0,0 +1,92 @@ +# nRF Connect platform overview + +The nRF Connect platform is a +[CHIP](https://github.com/project-chip/connectedhomeip) platform that uses +Nordic Semiconductor's nRF Connect SDK. + +The following diagram shows a simplified structure of a CHIP application that +runs on the nRF Connect platform and uses BLE and Thread stacks for +communication purposes: + +![nrfconnect platform overview](../images/chip_nrfconnect_overview_simplified.svg) + +> **Note**: For readability, the diagram does not show all projects components, +> only the most important ones for a typical CHIP application. + +
+ +## nRF Connect SDK + +Nordic Semiconductor's +[nRF Connect SDK](https://developer.nordicsemi.com/nRF_Connect_SDK/doc/latest/nrf/index.html) +allows to build a range of applications, including cellular IoT (LTE-M and +NB-IoT), Bluetooth Low Energy, Thread, Zigbee, and Bluetooth mesh. The SDK +contains samples, libraries and a full set of drivers for Nordic Semiconductor's +[nRF9160](https://www.nordicsemi.com/Products/Low-power-cellular-IoT/nRF9160), +[nRF5340](https://www.nordicsemi.com/Software-and-tools/Development-Kits/nRF5340-PDK), +and +[nRF52 Series](https://www.nordicsemi.com/Products/Low-power-short-range-wireless) +devices. + +The nRF Connect SDK is based around [Zephyr RTOS](https://zephyrproject.org/), +which is a scalable real-time operating system dedicated for the connected, +resource-constrained devices. Zephyr supports multiple hardware platforms and +provides hardware drivers, application protocols, protocol stacks, and more. +Besides Zephyr, the nRF Connect SDK also integrates other projects like crypto +library mbedTLS, MCU bootloader or the [OpenThread](https://openthread.io/) +implementation of the Thread stack. + +
+ +## Bluetooth LE and Thread stacks + +In the nRF Connect platform applications, the Bluetooth LE interface is used to +perform pairing and Thread network provisioning operations between the CHIP +device and the CHIP controller. Afterwards, the fully provisioned device is able +to communicate with other devices inside the Thread network. + +For the Bluetooth LE communication purposes, the nRF Connect platform +application is using the Bluetooth LE stack, in which the Bluetooth LE Host part +is provided by the Zephyr RTOS and the +[SoftDevice Controller](https://developer.nordicsemi.com/nRF_Connect_SDK/doc/latest/nrfxlib/softdevice_controller/README.html) +is implemented in the nRF Connect SDK's driver. + +For the Thread communication purposes, the nRF Connect platform application is +using the Thread stack, which consists of several layers implemented in +different projects. The core of the Thread stack is OpenThread, but it also +requires the IEEE 802.15.4 radio driver provided by the nRF Connect SDK and the +network layer functionalities provided by the Zephyr. + +The nRF Connect SDK's Multiprotocol Service Layer (MPSL) driver allows running +Bluetooth LE and Thread concurrently on the same radio chip. + +
+ +## CHIP integration + +CHIP is located on the top application layer of the presented model, looking +from the networking point of view. The Bluetooth LE and Thread stacks provided +by the nRF Connect SDK and Zephyr must be integrated with the CHIP stack using a +special intermediate layer. + +In practice, this layer contains platform-specific implementations of abstract +manager interfaces (such as Bluetooth LE Manager or Thread Stack Manager) +defined in the CHIP stack. The application is able to use CHIP's platform +agnostic interfaces and no additional platform-related actions are needed to +perform communication through the CHIP stack. + +
+ +## Build system + +The nRF Connect platform makes use of the following build systems to generate +ninja build scripts: + +- GN - Used by the CHIP project in majority of cases. +- CMake - Used by other components related with the nRF Connect platform, + namely nRF Connect SDK and Zephyr. + +As a result, CHIP's stack and platform modules are built with GN (see the +overview diagram) and the output is used to generate the library file. The +application, nRF Connect SDK, and Zephyr are built with CMake and the CHIP +library file is imported during the compilation process. diff --git a/docs/images/chip_nrfconnect_overview_simplified.svg b/docs/images/chip_nrfconnect_overview_simplified.svg new file mode 100644 index 00000000000000..04feda20e9c3f1 --- /dev/null +++ b/docs/images/chip_nrfconnect_overview_simplified.svg @@ -0,0 +1,387 @@ + + + + + + + + + + + + + + Page-1 + + + + + Sheet.55 + + + + Sheet.56 + nRF device + + + + nRF device + + Sheet.59 + + + + Sheet.60 + Application + + + + Application + + Sheet.61 + + + + Sheet.62 + Bluetooth LE stack + + + + Bluetooth LE stack + + Sheet.67 + + + + Sheet.71 + Thread stack (OpenThread) + + + + Thread stack (OpenThread) + + Sheet.117 + Zephyr host + + + + Zephyr host + + + Sheet.107 + Secure boot + + Sheet.108 + + + + + + Multiprotocol Service Layer(MPSL) + + + Sheet.118 + SoftDevice Controller + + + + SoftDevice Controller + + Sheet.82 + L2CAP + + + + L2CAP + + Sheet.78 + GATT + + + + GATT + + Sheet.80 + ATT + + + + ATT + + Sheet.88 + GAP + + + + GAP + + Sheet.119 + + + + Sheet.120 + HCI (RAM) + + + + HCI (RAM) + + + Sheet.187 + Secure boot + + Sheet.188 + + + + + + Zephyr integration + + + Sheet.100 + + + + Sheet.102 + nRF IEEE 802.15.4 radio driver + + + + nRF IEEE 802.15.4 radio driver + + Sheet.189 + + + + Sheet.190 + Zephyr network layer + + + + Zephyr network layer + + Sheet.191 + + + + Sheet.192 + UDP + + + + UDP + + Sheet.193 + + + + Sheet.194 + TCP + + + + TCP + + Sheet.195 + + + + Sheet.196 + IPv6 + + + + IPv6 + + Sheet.197 + Drivers and modules + + + + Drivers and modules + + Sheet.206 + Crypto backends + + + + Crypto backends + + Sheet.209 + NFC + + + + NFC + + Sheet.210 + DFU + + + + DFU + + Sheet.211 + Partition Manager + + + + Partition Manager + + Sheet.212 + Zephyr APIs + + + + Zephyr APIs + + Sheet.213 + Driver API + + + + Driver API + + Sheet.214 + Crypto API + + + + Crypto API + + Sheet.217 + Zephyr RTOS kernel + + + + Zephyr RTOS kernel + + Sheet.220 + MCU bootloader + + + + MCU bootloader + + Sheet.221 + mbedTLS + + + + mbedTLS + + Sheet.222 + + + + Sheet.223 + CHIP stack + + + + CHIP stack + + Sheet.224 + + + + Sheet.225 + Zephyr integration layer + + + + Zephyr integration layer + + Sheet.227 + + + + Sheet.229 + SMP + + + + SMP + + Sheet.231 + CHIP (built with GN) + + + + CHIP(built with GN) + + Sheet.232 + Third-party + + + + Third-party + + Sheet.233 + CHIP + + + + CHIP + + Sheet.234 + Zephyr + + + + Zephyr + + Sheet.235 + nRF Connect SDK + + + + nRF Connect SDK + + diff --git a/docs/style/coding/CODING_STYLE_GUIDE.adoc b/docs/style/coding/CODING_STYLE_GUIDE.adoc index 594501851c3425..453ab3d80b4513 100644 --- a/docs/style/coding/CODING_STYLE_GUIDE.adoc +++ b/docs/style/coding/CODING_STYLE_GUIDE.adoc @@ -104,7 +104,7 @@ standards listed in Table 2.1 below. |Language |Minimum Standard |Aliases |C|ISO9899:1999|ISO C99, C99 -|C{plusplus}|ISO14882:2011|ISO C{plusplus}11, C{plusplus}11 +|C{plusplus}|ISO14882:2014|ISO C{plusplus}14, C{plusplus}14 |=== [.text-center] *Table 2.1.* C and C{plusplus} language minimum standards adopted by Project CHIP @@ -137,11 +137,11 @@ have long-since been solved by C99. === C{plusplus} -Project CHIP embedded software development uses the ISO14882:2011 (aka -ISO C{plusplus}11) language standard as a baseline for source code +Project CHIP embedded software development uses the ISO14882:2014 (aka +ISO C{plusplus}14) language standard as a baseline for source code compatibility. Conformance with other standards, for example, ISO14882:1998 (aka ISO C{plusplus}98), may be additionally required in cases where wider -portability is necessary, but in all cases, ISO C{plusplus}11 is the baseline +portability is necessary, but in all cases, ISO C{plusplus}14 is the baseline requirement. Wherever possible, particularly in non-product-specific, @@ -151,50 +151,12 @@ leveraged through toolchain-compatibility preprocessor macros. ==== Motivation and Rationale -At the time of this writing, the C{plusplus}11 standard has been out for over -seven years in one form or another and has been twice supplanted, once -by C{plusplus}14 and again by C{plusplus}17. Project CHIP and the source code it has -produced are nearly concurrent with C{plusplus}11. +CHIP strives to use the latest C++ functionality as long as existing compilers +support such standards. -This is beyond more than adequate time for this standard to be pervasive -throughout any toolchain vendor’s C{plusplus} compiler and saves team members -from worrying about portability issues that have long-since been solved -by C{plusplus}11. - -By contrast, ISO14882:2014 (aka ISO C{plusplus}14, C{plusplus}14) and ISO14882:2017 (aka -ISO C{plusplus}17, C{plusplus}17), are still insufficiently broad and pervasive in their -toolchain support to warrant the introduction of dependencies on these -standards across all software. - -Note, that while C{plusplus}11 is the C{plusplus} language bar, per Figure 1, embrace of -C{plusplus}11 language- and library-specific features should be approached -thoughtfully and carefully, depending on the deployment context. A -loosely-constrained embedded Linux or Darwin application may want a -broad embrace of C{plusplus}11 language and library features whereas a -tightly-constrained piece of shared infrastructure may want to eschew -C{plusplus}11 entirely or conditionally depend on language-specific features, -where appropriate. - -That said, suitable portability mnemonics, for example, via the C -preprocessor should be used where possible and appropriate to maximize -code portability, particularly for shared embedded product software. An -example of such a portability mnemonic is shown in Listing 2.1 below. - -[source,C] ----- -#ifdef __cplusplus -# if __cplusplus >= 201103L -# define __chipFINAL final -# else -# define __chipFINAL -# endif -#else -#define __chipFINAL -#endif ----- -[.text-center] -*Listing 2.1.* Using the C preprocessor to provide a portability mnemonic -for the C{plusplus}11 and later final keyword. +C{plusplus}14 is considered pervasive enough to be used. As compilers start +supporting standards such as C{plusplus}17, C{plusplus}20 and beyond, +CHIP may follow suit. == Conventions and Best Practices diff --git a/examples/all-clusters-app/all-clusters-common/BUILD.gn b/examples/all-clusters-app/all-clusters-common/BUILD.gn new file mode 100644 index 00000000000000..556d8ffbda1fd0 --- /dev/null +++ b/examples/all-clusters-app/all-clusters-common/BUILD.gn @@ -0,0 +1,70 @@ +# 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. + +import("//build_overrides/chip.gni") + +config("includes") { + include_dirs = [ + ".", + "include", + ] +} + +source_set("all-clusters-common") { + sources = [ + "${chip_root}/examples/common/chip-app-server/DataModelHandler.cpp", + "${chip_root}/src/app/clusters/barrier-control-server/barrier-control-server.cpp", + "${chip_root}/src/app/clusters/basic/basic.cpp", + "${chip_root}/src/app/clusters/color-control-server/color-control-server.cpp", + "${chip_root}/src/app/clusters/door-lock-client/door-lock-client.cpp", + "${chip_root}/src/app/clusters/door-lock-server/door-lock-server-core.cpp", + "${chip_root}/src/app/clusters/door-lock-server/door-lock-server-logging.cpp", + "${chip_root}/src/app/clusters/door-lock-server/door-lock-server-schedule.cpp", + "${chip_root}/src/app/clusters/door-lock-server/door-lock-server-user.cpp", + "${chip_root}/src/app/clusters/groups-client/groups-client.cpp", + "${chip_root}/src/app/clusters/groups-server/groups-server.cpp", + "${chip_root}/src/app/clusters/ias-zone-server/ias-zone-server.cpp", + "${chip_root}/src/app/clusters/identify-client/identify-client.cpp", + "${chip_root}/src/app/clusters/identify/identify.cpp", + "${chip_root}/src/app/clusters/level-control/level-control.cpp", + "${chip_root}/src/app/clusters/on-off-server/on-off.cpp", + "${chip_root}/src/app/clusters/scenes-client/scenes-client.cpp", + "${chip_root}/src/app/clusters/scenes/scenes.cpp", + "${chip_root}/src/app/clusters/temperature-measurement-server/temperature-measurement-server.cpp", + "${chip_root}/src/app/reporting/reporting-default-configuration.cpp", + "${chip_root}/src/app/reporting/reporting.cpp", + "${chip_root}/src/app/util/af-event.cpp", + "${chip_root}/src/app/util/af-main-common.cpp", + "${chip_root}/src/app/util/attribute-size.cpp", + "${chip_root}/src/app/util/attribute-storage.cpp", + "${chip_root}/src/app/util/attribute-table.cpp", + "${chip_root}/src/app/util/binding-table.cpp", + "${chip_root}/src/app/util/chip-message-send.cpp", + "${chip_root}/src/app/util/client-api.cpp", + "${chip_root}/src/app/util/ember-print.cpp", + "${chip_root}/src/app/util/message.cpp", + "${chip_root}/src/app/util/process-cluster-message.cpp", + "${chip_root}/src/app/util/process-global-message.cpp", + "${chip_root}/src/app/util/util.cpp", + "gen/call-command-handler.cpp", + "gen/callback-stub.cpp", + ] + + deps = [ + "${chip_root}/examples/common/chip-app-server:chip-app-server", + "${chip_root}/src/lib", + ] + + public_configs = [ ":includes" ] +} diff --git a/examples/all-clusters-app/all-clusters-common/all-clusters-app.zap b/examples/all-clusters-app/all-clusters-common/all-clusters-app.zap new file mode 100644 index 00000000000000..204240cdfae12c --- /dev/null +++ b/examples/all-clusters-app/all-clusters-common/all-clusters-app.zap @@ -0,0 +1,2825 @@ +{ + "writeTime": "Wed Nov 18 2020 10:23:41 GMT+0100 (Central European Standard Time)", + "featureLevel": 4, + "creator": "zap", + "keyValuePairs": [ + { + "key": "commandDiscovery", + "value": "1" + }, + { + "key": "defaultResponsePolicy", + "value": "always" + }, + { + "key": "manufacturerCodes", + "value": "0x1002" + } + ], + "package": [ + { + "pathRelativity": "relativeToZap", + "path": "../../../../third_party/zap/repo/zcl-builtin/silabs/zcl.json", + "version": "ZCL Test Data", + "type": "zcl-properties" + }, + { + "pathRelativity": "relativeToZap", + "path": "../../../../src/app/zap-templates/chip-templates.json", + "version": "chip-v1", + "type": "gen-templates-json" + } + ], + "endpointTypes": [ + { + "name": "Anonymous Endpoint Type", + "deviceTypeName": null, + "deviceTypeCode": null, + "deviceTypeProfileId": null, + "clusters": [ + { + "name": "Basic", + "code": 0, + "mfgCode": null, + "define": "BASIC_CLUSTER", + "side": "client", + "enabled": 1, + "commands": [ + { + "name": "ResetToFactoryDefaults", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + } + ], + "attributes": [ + { + "name": "cluster revision", + "code": 65533, + "mfgCode": null, + "side": "client", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "3", + "reportable": 0, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Basic", + "code": 0, + "mfgCode": null, + "define": "BASIC_CLUSTER", + "side": "server", + "enabled": 1, + "attributes": [ + { + "name": "cluster revision", + "code": 65533, + "mfgCode": null, + "side": "server", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "3", + "reportable": 0, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ZCL version", + "code": 0, + "mfgCode": null, + "side": "server", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x08", + "reportable": 0, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "power source", + "code": 7, + "mfgCode": null, + "side": "server", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 0, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ], + "commands": [] + }, + { + "name": "Identify", + "code": 3, + "mfgCode": null, + "define": "IDENTIFY_CLUSTER", + "side": "client", + "enabled": 1, + "commands": [ + { + "name": "Identify", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "IdentifyQuery", + "code": 1, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + } + ], + "attributes": [ + { + "name": "cluster revision", + "code": 65533, + "mfgCode": null, + "side": "client", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "2", + "reportable": 0, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Identify", + "code": 3, + "mfgCode": null, + "define": "IDENTIFY_CLUSTER", + "side": "server", + "enabled": 1, + "commands": [ + { + "name": "IdentifyQueryResponse", + "code": 0, + "mfgCode": null, + "source": "server", + "incoming": 1, + "outgoing": 1 + } + ], + "attributes": [ + { + "name": "cluster revision", + "code": 65533, + "mfgCode": null, + "side": "server", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "2", + "reportable": 0, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "identify time", + "code": 0, + "mfgCode": null, + "side": "server", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 0, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Groups", + "code": 4, + "mfgCode": null, + "define": "GROUPS_CLUSTER", + "side": "client", + "enabled": 1, + "commands": [ + { + "name": "AddGroup", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "ViewGroup", + "code": 1, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "GetGroupMembership", + "code": 2, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "RemoveGroup", + "code": 3, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "RemoveAllGroups", + "code": 4, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "AddGroupIfIdentifying", + "code": 5, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + } + ], + "attributes": [ + { + "name": "cluster revision", + "code": 65533, + "mfgCode": null, + "side": "client", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "3", + "reportable": 0, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Groups", + "code": 4, + "mfgCode": null, + "define": "GROUPS_CLUSTER", + "side": "server", + "enabled": 1, + "commands": [ + { + "name": "AddGroupResponse", + "code": 0, + "mfgCode": null, + "source": "server", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "ViewGroupResponse", + "code": 1, + "mfgCode": null, + "source": "server", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "GetGroupMembershipResponse", + "code": 2, + "mfgCode": null, + "source": "server", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "RemoveGroupResponse", + "code": 3, + "mfgCode": null, + "source": "server", + "incoming": 1, + "outgoing": 1 + } + ], + "attributes": [ + { + "name": "cluster revision", + "code": 65533, + "mfgCode": null, + "side": "server", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "3", + "reportable": 0, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "name support", + "code": 0, + "mfgCode": null, + "side": "server", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 0, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Scenes", + "code": 5, + "mfgCode": null, + "define": "SCENES_CLUSTER", + "side": "client", + "enabled": 1, + "commands": [ + { + "name": "AddScene", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "ViewScene", + "code": 1, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "RemoveScene", + "code": 2, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "RemoveAllScenes", + "code": 3, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "StoreScene", + "code": 4, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "RecallScene", + "code": 5, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "GetSceneMembership", + "code": 6, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + } + ], + "attributes": [ + { + "name": "cluster revision", + "code": 65533, + "mfgCode": null, + "side": "client", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "3", + "reportable": 0, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Scenes", + "code": 5, + "mfgCode": null, + "define": "SCENES_CLUSTER", + "side": "server", + "enabled": 1, + "commands": [ + { + "name": "AddSceneResponse", + "code": 0, + "mfgCode": null, + "source": "server", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "ViewSceneResponse", + "code": 1, + "mfgCode": null, + "source": "server", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "RemoveSceneResponse", + "code": 2, + "mfgCode": null, + "source": "server", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "RemoveAllScenesResponse", + "code": 3, + "mfgCode": null, + "source": "server", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "StoreSceneResponse", + "code": 4, + "mfgCode": null, + "source": "server", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "GetSceneMembershipResponse", + "code": 6, + "mfgCode": null, + "source": "server", + "incoming": 1, + "outgoing": 1 + } + ], + "attributes": [ + { + "name": "cluster revision", + "code": 65533, + "mfgCode": null, + "side": "server", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "3", + "reportable": 0, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "scene count", + "code": 0, + "mfgCode": null, + "side": "server", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 0, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "current scene", + "code": 1, + "mfgCode": null, + "side": "server", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 0, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "current group", + "code": 2, + "mfgCode": null, + "side": "server", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 0, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "scene valid", + "code": 3, + "mfgCode": null, + "side": "server", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 0, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "name support", + "code": 4, + "mfgCode": null, + "side": "server", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 0, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "On/off", + "code": 6, + "mfgCode": null, + "define": "ON_OFF_CLUSTER", + "side": "client", + "enabled": 1, + "commands": [ + { + "name": "Off", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "On", + "code": 1, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "Toggle", + "code": 2, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + } + ], + "attributes": [ + { + "name": "cluster revision", + "code": 65533, + "mfgCode": null, + "side": "client", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "2", + "reportable": 0, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "On/off", + "code": 6, + "mfgCode": null, + "define": "ON_OFF_CLUSTER", + "side": "server", + "enabled": 1, + "commands": [], + "attributes": [ + { + "name": "cluster revision", + "code": 65533, + "mfgCode": null, + "side": "server", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "2", + "reportable": 0, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "on/off", + "code": 0, + "mfgCode": null, + "side": "server", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Level Control", + "code": 8, + "mfgCode": null, + "define": "LEVEL_CONTROL_CLUSTER", + "side": "client", + "enabled": 1, + "commands": [ + { + "name": "MoveToLevel", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "Move", + "code": 1, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "Step", + "code": 2, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "Stop", + "code": 3, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "MoveToLevelWithOnOff", + "code": 4, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "MoveWithOnOff", + "code": 5, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "StepWithOnOff", + "code": 6, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "StopWithOnOff", + "code": 7, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + } + ], + "attributes": [ + { + "name": "cluster revision", + "code": 65533, + "mfgCode": null, + "side": "client", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "3", + "reportable": 0, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Level Control", + "code": 8, + "mfgCode": null, + "define": "LEVEL_CONTROL_CLUSTER", + "side": "server", + "enabled": 1, + "commands": [], + "attributes": [ + { + "name": "cluster revision", + "code": 65533, + "mfgCode": null, + "side": "server", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "3", + "reportable": 0, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "current level", + "code": 0, + "mfgCode": null, + "side": "server", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Door Lock", + "code": 257, + "mfgCode": null, + "define": "DOOR_LOCK_CLUSTER", + "side": "client", + "enabled": 1, + "commands": [ + { + "name": "LockDoor", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "UnlockDoor", + "code": 1, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "UnlockWithTimeout", + "code": 3, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "GetLogRecord", + "code": 4, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "SetPin", + "code": 5, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "GetPin", + "code": 6, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "ClearPin", + "code": 7, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "ClearAllPins", + "code": 8, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "SetWeekdaySchedule", + "code": 11, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "GetWeekdaySchedule", + "code": 12, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "ClearWeekdaySchedule", + "code": 13, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "SetYeardaySchedule", + "code": 14, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "GetYeardaySchedule", + "code": 15, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "ClearYeardaySchedule", + "code": 16, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "SetHolidaySchedule", + "code": 17, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "GetHolidaySchedule", + "code": 18, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "ClearHolidaySchedule", + "code": 19, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "SetUserType", + "code": 20, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "GetUserType", + "code": 21, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "SetRfid", + "code": 22, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "GetRfid", + "code": 23, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "ClearRfid", + "code": 24, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "ClearAllRfids", + "code": 25, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + } + ], + "attributes": [ + { + "name": "cluster revision", + "code": 65533, + "mfgCode": null, + "side": "client", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "3", + "reportable": 0, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Door Lock", + "code": 257, + "mfgCode": null, + "define": "DOOR_LOCK_CLUSTER", + "side": "server", + "enabled": 1, + "commands": [ + { + "name": "LockDoorResponse", + "code": 0, + "mfgCode": null, + "source": "server", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "UnlockDoorResponse", + "code": 1, + "mfgCode": null, + "source": "server", + "incoming": 1, + "outgoing": 1 + } + ], + "attributes": [ + { + "name": "cluster revision", + "code": 65533, + "mfgCode": null, + "side": "server", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "3", + "reportable": 0, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "lock state", + "code": 0, + "mfgCode": null, + "side": "server", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "lock type", + "code": 1, + "mfgCode": null, + "side": "server", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 0, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "actuator enabled", + "code": 2, + "mfgCode": null, + "side": "server", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 0, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "door state", + "code": 3, + "mfgCode": null, + "side": "server", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "enable logging", + "code": 32, + "mfgCode": null, + "side": "server", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "language", + "code": 33, + "mfgCode": null, + "side": "server", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "led settings", + "code": 34, + "mfgCode": null, + "side": "server", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "auto relock time", + "code": 35, + "mfgCode": null, + "side": "server", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "sound volume", + "code": 36, + "mfgCode": null, + "side": "server", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "operating mode", + "code": 37, + "mfgCode": null, + "side": "server", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "default configuration register", + "code": 39, + "mfgCode": null, + "side": "server", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "enable local programming", + "code": 40, + "mfgCode": null, + "side": "server", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x01", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "enable one touch locking", + "code": 41, + "mfgCode": null, + "side": "server", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "enable inside status led", + "code": 42, + "mfgCode": null, + "side": "server", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "enable privacy mode button", + "code": 43, + "mfgCode": null, + "side": "server", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "wrong code entry limit", + "code": 48, + "mfgCode": null, + "side": "server", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "user code temporary disable time", + "code": 49, + "mfgCode": null, + "side": "server", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "send pin over the air", + "code": 50, + "mfgCode": null, + "side": "server", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "require pin for rf operation", + "code": 51, + "mfgCode": null, + "side": "server", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "zigbee security level", + "code": 52, + "mfgCode": null, + "side": "server", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "alarm mask", + "code": 64, + "mfgCode": null, + "side": "server", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "keypad operation event mask", + "code": 65, + "mfgCode": null, + "side": "server", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "RF operation event mask", + "code": 66, + "mfgCode": null, + "side": "server", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "manual operation event mask", + "code": 67, + "mfgCode": null, + "side": "server", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "rfid operation event mask", + "code": 68, + "mfgCode": null, + "side": "server", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "keypad programming event mask", + "code": 69, + "mfgCode": null, + "side": "server", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "rf programming event mask", + "code": 70, + "mfgCode": null, + "side": "server", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "rfid programming event mask", + "code": 71, + "mfgCode": null, + "side": "server", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Barrier Control", + "code": 259, + "mfgCode": null, + "define": "BARRIER_CONTROL_CLUSTER", + "side": "client", + "enabled": 1, + "commands": [ + { + "name": "BarrierControlGoToPercent", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "BarrierControlStop", + "code": 1, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + } + ], + "attributes": [ + { + "name": "cluster revision", + "code": 65533, + "mfgCode": null, + "side": "client", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0001", + "reportable": 0, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Barrier Control", + "code": 259, + "mfgCode": null, + "define": "BARRIER_CONTROL_CLUSTER", + "side": "server", + "enabled": 1, + "commands": [], + "attributes": [ + { + "name": "cluster revision", + "code": 65533, + "mfgCode": null, + "side": "server", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0001", + "reportable": 0, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "barrier moving state", + "code": 1, + "mfgCode": null, + "side": "server", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 0, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "barrier safety status", + "code": 2, + "mfgCode": null, + "side": "server", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 0, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "barrier capabilities", + "code": 3, + "mfgCode": null, + "side": "server", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 0, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "barrier position", + "code": 10, + "mfgCode": null, + "side": "server", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 0, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Color Control", + "code": 768, + "mfgCode": null, + "define": "COLOR_CONTROL_CLUSTER", + "side": "client", + "enabled": 1, + "commands": [ + { + "name": "MoveToHue", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "MoveHue", + "code": 1, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "StepHue", + "code": 2, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "MoveToSaturation", + "code": 3, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "MoveSaturation", + "code": 4, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "StepSaturation", + "code": 5, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "MoveToHueAndSaturation", + "code": 6, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "MoveToColor", + "code": 7, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "MoveColor", + "code": 8, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "StepColor", + "code": 9, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "MoveToColorTemperature", + "code": 10, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "StopMoveStep", + "code": 71, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "MoveColorTemperature", + "code": 75, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "StepColorTemperature", + "code": 76, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + } + ], + "attributes": [ + { + "name": "cluster revision", + "code": 65533, + "mfgCode": null, + "side": "client", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "3", + "reportable": 0, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Color Control", + "code": 768, + "mfgCode": null, + "define": "COLOR_CONTROL_CLUSTER", + "side": "server", + "enabled": 1, + "attributes": [ + { + "name": "cluster revision", + "code": 65533, + "mfgCode": null, + "side": "server", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "3", + "reportable": 0, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "current hue", + "code": 0, + "mfgCode": null, + "side": "server", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "current saturation", + "code": 1, + "mfgCode": null, + "side": "server", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "remaining time", + "code": 2, + "mfgCode": null, + "side": "server", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 0, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "current x", + "code": 3, + "mfgCode": null, + "side": "server", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x616B", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "current y", + "code": 4, + "mfgCode": null, + "side": "server", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x607D", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "drift compensation", + "code": 5, + "mfgCode": null, + "side": "server", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 0, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "compensation text", + "code": 6, + "mfgCode": null, + "side": "server", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 0, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "color temperature", + "code": 7, + "mfgCode": null, + "side": "server", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00FA", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "color mode", + "code": 8, + "mfgCode": null, + "side": "server", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x01", + "reportable": 0, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "color control options", + "code": 15, + "mfgCode": null, + "side": "server", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 0, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "number of primaries", + "code": 16, + "mfgCode": null, + "side": "server", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 0, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "primary 1 x", + "code": 17, + "mfgCode": null, + "side": "server", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 0, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "primary 1 y", + "code": 18, + "mfgCode": null, + "side": "server", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 0, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "primary 1 intensity", + "code": 19, + "mfgCode": null, + "side": "server", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 0, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "primary 2 x", + "code": 21, + "mfgCode": null, + "side": "server", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 0, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "primary 2 y", + "code": 22, + "mfgCode": null, + "side": "server", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 0, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "primary 2 intensity", + "code": 23, + "mfgCode": null, + "side": "server", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 0, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "primary 3 x", + "code": 25, + "mfgCode": null, + "side": "server", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 0, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "primary 3 y", + "code": 26, + "mfgCode": null, + "side": "server", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 0, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "primary 3 intensity", + "code": 27, + "mfgCode": null, + "side": "server", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 0, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "primary 4 x", + "code": 32, + "mfgCode": null, + "side": "server", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 0, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "primary 4 y", + "code": 33, + "mfgCode": null, + "side": "server", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 0, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "primary 4 intensity", + "code": 34, + "mfgCode": null, + "side": "server", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 0, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "primary 5 x", + "code": 36, + "mfgCode": null, + "side": "server", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 0, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "primary 5 y", + "code": 37, + "mfgCode": null, + "side": "server", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 0, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "primary 5 intensity", + "code": 38, + "mfgCode": null, + "side": "server", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 0, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "primary 6 x", + "code": 40, + "mfgCode": null, + "side": "server", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 0, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "primary 6 y", + "code": 41, + "mfgCode": null, + "side": "server", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 0, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "primary 6 intensity", + "code": 42, + "mfgCode": null, + "side": "server", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 0, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "white point x", + "code": 48, + "mfgCode": null, + "side": "server", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 0, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "white point y", + "code": 49, + "mfgCode": null, + "side": "server", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 0, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "color point r x", + "code": 50, + "mfgCode": null, + "side": "server", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 0, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "color point r y", + "code": 51, + "mfgCode": null, + "side": "server", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 0, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "color point r intensity", + "code": 52, + "mfgCode": null, + "side": "server", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 0, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "color point g x", + "code": 54, + "mfgCode": null, + "side": "server", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 0, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "color point g y", + "code": 55, + "mfgCode": null, + "side": "server", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 0, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "color point g intensity", + "code": 56, + "mfgCode": null, + "side": "server", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 0, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "color point b x", + "code": 58, + "mfgCode": null, + "side": "server", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 0, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "color point b y", + "code": 59, + "mfgCode": null, + "side": "server", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 0, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "color point b intensity", + "code": 60, + "mfgCode": null, + "side": "server", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 0, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "couple color temp to level min-mireds", + "code": 16397, + "mfgCode": null, + "side": "server", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 0, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "start up color temperature mireds", + "code": 16400, + "mfgCode": null, + "side": "server", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 0, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "enhanced current hue", + "code": 16384, + "mfgCode": null, + "side": "server", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 0, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "enhanced color mode", + "code": 16385, + "mfgCode": null, + "side": "server", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x01", + "reportable": 0, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "color loop active", + "code": 16386, + "mfgCode": null, + "side": "server", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 0, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "color loop direction", + "code": 16387, + "mfgCode": null, + "side": "server", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 0, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "color loop time", + "code": 16388, + "mfgCode": null, + "side": "server", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0019", + "reportable": 0, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "color capabilities", + "code": 16394, + "mfgCode": null, + "side": "server", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 0, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "color temp physical min", + "code": 16395, + "mfgCode": null, + "side": "server", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 0, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "color temp physical max", + "code": 16396, + "mfgCode": null, + "side": "server", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0xFEFF", + "reportable": 0, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ], + "commands": [] + }, + { + "name": "Temperature Measurement", + "code": 1026, + "mfgCode": null, + "define": "TEMP_MEASUREMENT_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [], + "attributes": [ + { + "name": "cluster revision", + "code": 65533, + "mfgCode": null, + "side": "client", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "3", + "reportable": 0, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Temperature Measurement", + "code": 1026, + "mfgCode": null, + "define": "TEMP_MEASUREMENT_CLUSTER", + "side": "server", + "enabled": 1, + "commands": [], + "attributes": [ + { + "name": "cluster revision", + "code": 65533, + "mfgCode": null, + "side": "server", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "3", + "reportable": 0, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "measured value", + "code": 0, + "mfgCode": null, + "side": "server", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x8000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "min measured value", + "code": 1, + "mfgCode": null, + "side": "server", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x8000", + "reportable": 0, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "max measured value", + "code": 2, + "mfgCode": null, + "side": "server", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x8000", + "reportable": 0, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "tolerance", + "code": 3, + "mfgCode": null, + "side": "server", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "IAS Zone", + "code": 1280, + "mfgCode": null, + "define": "IAS_ZONE_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [ + { + "name": "ZoneEnrollResponse", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + } + ], + "attributes": [ + { + "name": "cluster revision", + "code": 65533, + "mfgCode": null, + "side": "client", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "2", + "reportable": 0, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "IAS Zone", + "code": 1280, + "mfgCode": null, + "define": "IAS_ZONE_CLUSTER", + "side": "server", + "enabled": 1, + "commands": [ + { + "name": "ZoneStatusChangeNotification", + "code": 0, + "mfgCode": null, + "source": "server", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "ZoneEnrollRequest", + "code": 1, + "mfgCode": null, + "source": "server", + "incoming": 1, + "outgoing": 1 + } + ], + "attributes": [ + { + "name": "cluster revision", + "code": 65533, + "mfgCode": null, + "side": "server", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "2", + "reportable": 0, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "zone state", + "code": 0, + "mfgCode": null, + "side": "server", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 0, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "zone type", + "code": 1, + "mfgCode": null, + "side": "server", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 0, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "zone status", + "code": 2, + "mfgCode": null, + "side": "server", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 0, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "IAS CIE address", + "code": 16, + "mfgCode": null, + "side": "server", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 0, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "Zone ID", + "code": 17, + "mfgCode": null, + "side": "server", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0xff", + "reportable": 0, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + } + ] + } + ], + "endpoints": [ + { + "endpointTypeName": "Anonymous Endpoint Type", + "endpointTypeIndex": 0, + "profileId": "0x0103", + "endpointId": 1, + "networkId": 1 + } + ] +} diff --git a/examples/wifi-echo/server/esp32/main/gen/af-gen-event.h b/examples/all-clusters-app/all-clusters-common/gen/af-gen-event.h similarity index 89% rename from examples/wifi-echo/server/esp32/main/gen/af-gen-event.h rename to examples/all-clusters-app/all-clusters-common/gen/af-gen-event.h index 5674b0953a418d..8c1cc0513cdd79 100644 --- a/examples/wifi-echo/server/esp32/main/gen/af-gen-event.h +++ b/examples/all-clusters-app/all-clusters-common/gen/af-gen-event.h @@ -50,20 +50,16 @@ extern EmberEventControl emberAfPluginColorControlServerXyTransitionEventControl; \ extern EmberEventControl emberAfPluginDoorLockServerLockoutEventControl; \ extern EmberEventControl emberAfPluginDoorLockServerRelockEventControl; \ - extern EmberEventControl emberAfPluginIasZoneClientStateMachineEventControl; \ extern EmberEventControl emberAfPluginIasZoneServerManageQueueEventControl; \ extern EmberEventControl emberAfPluginReportingTickEventControl; \ - extern EmberEventControl emberAfPluginTemperatureMeasurementServerReadEventControl; \ extern void emberAfPluginColorControlServerHueSatTransitionEventHandler(void); \ extern void emberAfPluginColorControlServerTempTransitionEventHandler(void); \ extern void emberAfPluginColorControlServerXyTransitionEventHandler(void); \ extern void emberAfPluginDoorLockServerLockoutEventHandler(void); \ extern void emberAfPluginDoorLockServerRelockEventHandler(void); \ - extern void emberAfPluginIasZoneClientStateMachineEventHandler(void); \ extern void emberAfPluginIasZoneServerManageQueueEventHandler(void); \ extern void emberAfPluginReportingTickEventHandler(void); \ - extern void emberAfPluginTemperatureMeasurementServerReadEventHandler(void); \ - static void clusterTickWrapper(EmberEventControl * control, EmberAfTickFunction callback, uint8_t endpoint) \ + static void clusterTickWrapper(EmberEventControl * control, EmberAfTickFunction callback, chip::EndpointId endpoint) \ { \ /* emberAfPushEndpointNetworkIndex(endpoint); */ \ emberEventControlSetInactive(control); \ @@ -102,18 +98,15 @@ { &emberAfPluginColorControlServerXyTransitionEventControl, emberAfPluginColorControlServerXyTransitionEventHandler }, \ { &emberAfPluginDoorLockServerLockoutEventControl, emberAfPluginDoorLockServerLockoutEventHandler }, \ { &emberAfPluginDoorLockServerRelockEventControl, emberAfPluginDoorLockServerRelockEventHandler }, \ - { &emberAfPluginIasZoneClientStateMachineEventControl, emberAfPluginIasZoneClientStateMachineEventHandler }, \ { &emberAfPluginIasZoneServerManageQueueEventControl, emberAfPluginIasZoneServerManageQueueEventHandler }, \ - { &emberAfPluginReportingTickEventControl, emberAfPluginReportingTickEventHandler }, \ - { &emberAfPluginTemperatureMeasurementServerReadEventControl, emberAfPluginTemperatureMeasurementServerReadEventHandler }, + { &emberAfPluginReportingTickEventControl, emberAfPluginReportingTickEventHandler }, #define EMBER_AF_GENERATED_EVENT_STRINGS \ "Identify Cluster Server EP 1", "Level Control Cluster Server EP 1", "Barrier Control Cluster Server EP 1", \ "IAS Zone Cluster Server EP 1", "Color Control Cluster Server Plugin HueSatTransition", \ "Color Control Cluster Server Plugin TempTransition", "Color Control Cluster Server Plugin XyTransition", \ - "Door Lock Server Cluster Plugin Lockout", "Door Lock Server Cluster Plugin Relock", \ - "IAS Zone Client Plugin StateMachine", "IAS Zone Server Plugin ManageQueue", "Reporting Plugin Tick", \ - "Temperature Measurement Server Cluster Plugin Read", + "Door Lock Server Cluster Plugin Lockout", "Door Lock Server Cluster Plugin Relock", "IAS Zone Server Plugin ManageQueue", \ + "Reporting Plugin Tick", // The length of the event context table used to track and retrieve cluster events #define EMBER_AF_EVENT_CONTEXT_LENGTH 4 diff --git a/examples/lighting-app/efr32/src/gen/af-structs.h b/examples/all-clusters-app/all-clusters-common/gen/af-structs.h similarity index 73% rename from examples/lighting-app/efr32/src/gen/af-structs.h rename to examples/all-clusters-app/all-clusters-common/gen/af-structs.h index 8009281c7692c6..6d04f3faa8e82d 100644 --- a/examples/lighting-app/efr32/src/gen/af-structs.h +++ b/examples/all-clusters-app/all-clusters-common/gen/af-structs.h @@ -1,4 +1,5 @@ -/** + +/* * * Copyright (c) 2020 Project CHIP Authors * @@ -15,236 +16,195 @@ * 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. -// -// +// Prevent multiple inclusion +#pragma once -// Enclosing macro to prevent multiple inclusion -#ifndef SILABS_EMBER_AF_STRUCTS -#define SILABS_EMBER_AF_STRUCTS +#include "basic-types.h" +#include "enums.h" +#include -// Generated structs from the metadata -// Struct for IasAceZoneStatusResult -typedef struct _IasAceZoneStatusResult +// Struct for BlockThreshold +typedef struct _BlockThreshold { - uint8_t zoneId; - uint16_t zoneStatus; -} IasAceZoneStatusResult; + uint8_t blockThreshold; + uint8_t priceControl; + uint32_t blockPeriodStartTime; + uint32_t blockPeriodDurationMinutes; + uint8_t fuelType; + uint32_t standingCharge; +} EmberAfBlockThreshold; -// Struct for ReadAttributeStatusRecord -typedef struct _ReadAttributeStatusRecord +// Struct for BlockThresholdSubPayload +typedef struct _BlockThresholdSubPayload { - uint16_t attributeId; - uint8_t status; - uint8_t attributeType; - uint8_t * attributeLocation; -} ReadAttributeStatusRecord; + uint8_t tierNumberOfBlockThresholds; + uint8_t * blockThreshold; +} EmberAfBlockThresholdSubPayload; -// Struct for WriteAttributeRecord -typedef struct _WriteAttributeRecord +// Struct for ChatParticipant +typedef struct _ChatParticipant { - uint16_t attributeId; - uint8_t attributeType; - uint8_t * attributeLocation; -} WriteAttributeRecord; + uint16_t uid; + uint8_t * nickname; +} EmberAfChatParticipant; -// Struct for WriteAttributeStatusRecord -typedef struct _WriteAttributeStatusRecord +// Struct for ChatRoom +typedef struct _ChatRoom { - uint8_t status; - uint16_t attributeId; -} WriteAttributeStatusRecord; + uint16_t cid; + uint8_t * name; +} EmberAfChatRoom; // Struct for ConfigureReportingRecord typedef struct _ConfigureReportingRecord { uint8_t direction; - uint16_t attributeId; + chip::AttributeId attributeId; uint8_t attributeType; uint16_t minimumReportingInterval; uint16_t maximumReportingInterval; uint8_t * reportableChangeLocation; uint16_t timeoutPeriod; -} ConfigureReportingRecord; +} EmberAfConfigureReportingRecord; // Struct for ConfigureReportingStatusRecord typedef struct _ConfigureReportingStatusRecord { uint8_t status; uint8_t direction; - uint16_t attributeId; -} ConfigureReportingStatusRecord; - -// Struct for ReadReportingConfigurationRecord -typedef struct _ReadReportingConfigurationRecord -{ - uint8_t status; - uint8_t direction; - uint16_t attributeId; - uint8_t attributeType; - uint16_t minimumReportingInterval; - uint16_t maximumReportingInterval; - uint8_t * reportableChangeLocation; - uint16_t timeoutPeriod; -} ReadReportingConfigurationRecord; + chip::AttributeId attributeId; +} EmberAfConfigureReportingStatusRecord; -// Struct for ReadReportingConfigurationAttributeRecord -typedef struct _ReadReportingConfigurationAttributeRecord +// Struct for DebtPayload +typedef struct _DebtPayload { - uint8_t direction; - uint16_t attributeId; -} ReadReportingConfigurationAttributeRecord; + uint32_t collectionTime; + uint32_t amountCollected; + uint8_t debtType; + uint32_t outstandingDebt; +} EmberAfDebtPayload; -// Struct for ReportAttributeRecord -typedef struct _ReportAttributeRecord +// Struct for DeviceInformationRecord +typedef struct _DeviceInformationRecord { - uint16_t attributeId; - uint8_t attributeType; - uint8_t * attributeLocation; -} ReportAttributeRecord; + uint64_t ieeeAddress; + chip::EndpointId endpointId; + uint16_t profileId; + uint16_t deviceId; + uint8_t version; + uint8_t groupIdCount; + uint8_t sort; +} EmberAfDeviceInformationRecord; // Struct for DiscoverAttributesInfoRecord typedef struct _DiscoverAttributesInfoRecord { - uint16_t attributeId; + chip::AttributeId attributeId; uint8_t attributeType; -} DiscoverAttributesInfoRecord; +} EmberAfDiscoverAttributesInfoRecord; -// Struct for ExtendedDiscoverAttributesInfoRecord -typedef struct _ExtendedDiscoverAttributesInfoRecord +// Struct for EndpointInformationRecord +typedef struct _EndpointInformationRecord { - uint16_t attributeId; - uint8_t attributeType; - uint8_t attributeAccessControl; -} ExtendedDiscoverAttributesInfoRecord; + uint16_t networkAddress; + chip::EndpointId endpointId; + uint16_t profileId; + uint16_t deviceId; + uint8_t version; +} EmberAfEndpointInformationRecord; -// Struct for ReadStructuredAttributeRecord -typedef struct _ReadStructuredAttributeRecord -{ - uint16_t attributeId; - uint8_t indicator; - uint16_t indicies; -} ReadStructuredAttributeRecord; +// Void typedef for EmberAfEphemeralData which is empty. +// this will result in all the references to the data being as uint8_t* +typedef uint8_t EmberAfEphemeralData; -// Struct for WriteStructuredAttributeRecord -typedef struct _WriteStructuredAttributeRecord +// Struct for EventConfigurationPayload +typedef struct _EventConfigurationPayload { - uint16_t attributeId; - uint8_t indicator; - uint16_t indicies; - uint8_t attributeType; - uint8_t * attributeLocation; -} WriteStructuredAttributeRecord; + uint16_t eventId; + uint8_t eventConfiguration; +} EmberAfEventConfigurationPayload; -// Struct for WriteStructuredAttributeStatusRecord -typedef struct _WriteStructuredAttributeStatusRecord +// Struct for EventLogPayload +typedef struct _EventLogPayload { - uint8_t status; - uint16_t attributeId; - uint8_t indicator; - uint16_t indicies; -} WriteStructuredAttributeStatusRecord; + uint8_t logId; + uint16_t eventId; + uint32_t eventTime; + uint8_t * eventData; +} EmberAfEventLogPayload; -// Struct for SceneExtensionAttributeInfo -typedef struct _SceneExtensionAttributeInfo +// Struct for ExtendedDiscoverAttributesInfoRecord +typedef struct _ExtendedDiscoverAttributesInfoRecord { + chip::AttributeId attributeId; uint8_t attributeType; - uint8_t * attributeLocation; -} SceneExtensionAttributeInfo; + uint8_t attributeAccessControl; +} EmberAfExtendedDiscoverAttributesInfoRecord; -// Struct for SceneExtensionFieldSet -typedef struct _SceneExtensionFieldSet +// Struct for GpPairingConfigurationGroupList +typedef struct _GpPairingConfigurationGroupList { - uint16_t clusterId; - uint8_t length; - uint8_t value; -} SceneExtensionFieldSet; + uint16_t SinkGroup; + uint16_t Alias; +} EmberAfGpPairingConfigurationGroupList; -// Struct for BlockThreshold -typedef struct _BlockThreshold +// Struct for GpTranslationTableUpdateTranslation +typedef struct _GpTranslationTableUpdateTranslation { - uint8_t blockThreshold; - uint8_t priceControl; - uint32_t blockPeriodStartTime; - uint32_t blockPeriodDurationMinutes; - uint8_t fuelType; - uint32_t standingCharge; -} BlockThreshold; + uint8_t index; + uint8_t gpdCommandId; + chip::EndpointId endpoint; + uint16_t profile; + uint16_t cluster; + uint8_t zigbeeCommandId; + uint8_t * zigbeeCommandPayload; + uint8_t * additionalInfoBlock; +} EmberAfGpTranslationTableUpdateTranslation; -// Struct for Notification -typedef struct _Notification +// Struct for GroupInformationRecord +typedef struct _GroupInformationRecord { - uint16_t contentId; - uint8_t statusFeedback; -} Notification; + chip::GroupId groupId; + uint8_t groupType; +} EmberAfGroupInformationRecord; + +// Struct for IasAceZoneStatusResult +typedef struct _IasAceZoneStatusResult +{ + uint8_t zoneId; + uint16_t zoneStatus; +} EmberAfIasAceZoneStatusResult; + +// Void typedef for EmberAfIdentity which is empty. +// this will result in all the references to the data being as uint8_t* +typedef uint8_t EmberAfIdentity; // Struct for NeighborInfo typedef struct _NeighborInfo { - uint8_t * neighbor; + uint64_t neighbor; int16_t x; int16_t y; int16_t z; int8_t rssi; uint8_t numberRssiMeasurements; -} NeighborInfo; - -// Struct for ChatParticipant -typedef struct _ChatParticipant -{ - uint16_t uid; - uint8_t * nickname; -} ChatParticipant; - -// Struct for ChatRoom -typedef struct _ChatRoom -{ - uint16_t cid; - uint8_t * name; -} ChatRoom; +} EmberAfNeighborInfo; // Struct for NodeInformation typedef struct _NodeInformation { uint16_t uid; uint16_t address; - uint8_t endpoint; + chip::EndpointId endpoint; uint8_t * nickname; -} NodeInformation; - -// Struct for ScheduledPhase -typedef struct _ScheduledPhase -{ - uint8_t energyPhaseId; - uint16_t scheduledTime; -} ScheduledPhase; +} EmberAfNodeInformation; -// Struct for TransferredPhase -typedef struct _TransferredPhase +// Struct for Notification +typedef struct _Notification { - uint8_t energyPhaseId; - uint8_t macroPhaseId; - uint16_t expectedDuration; - uint16_t peakPower; - uint16_t energy; - uint16_t maxActivationDelay; -} TransferredPhase; + uint16_t contentId; + uint8_t statusFeedback; +} EmberAfNotification; // Struct for PowerProfileRecord typedef struct _PowerProfileRecord @@ -253,192 +213,215 @@ typedef struct _PowerProfileRecord uint8_t energyPhaseId; uint8_t powerProfileRemoteControl; uint8_t powerProfileState; -} PowerProfileRecord; +} EmberAfPowerProfileRecord; // Struct for PriceMatrixSubPayload typedef struct _PriceMatrixSubPayload { uint8_t tierBlockId; uint32_t price; -} PriceMatrixSubPayload; +} EmberAfPriceMatrixSubPayload; -// Struct for BlockThresholdSubPayload -typedef struct _BlockThresholdSubPayload +// Struct for Protocol +typedef struct _Protocol { - uint8_t tierNumberOfBlockThresholds; - uint8_t * blockThreshold; -} BlockThresholdSubPayload; + uint16_t manufacturerCode; + uint8_t protocolId; +} EmberAfProtocol; -// Struct for TierLabelsPayload -typedef struct _TierLabelsPayload +// Struct for ReadAttributeStatusRecord +typedef struct _ReadAttributeStatusRecord { - uint8_t tierId; - uint8_t * tierLabel; -} TierLabelsPayload; + chip::AttributeId attributeId; + uint8_t status; + uint8_t attributeType; + uint8_t * attributeLocation; +} EmberAfReadAttributeStatusRecord; -// Void typedef for Signature which is empty. -// this will result in all the references to the data being as uint8_t* -typedef uint8_t Signature; +// Struct for ReadReportingConfigurationAttributeRecord +typedef struct _ReadReportingConfigurationAttributeRecord +{ + uint8_t direction; + chip::AttributeId attributeId; +} EmberAfReadReportingConfigurationAttributeRecord; -// Struct for SnapshotResponsePayload -typedef struct _SnapshotResponsePayload +// Struct for ReadReportingConfigurationRecord +typedef struct _ReadReportingConfigurationRecord { - uint8_t snapshotScheduleId; - uint8_t snapshotScheduleConfirmation; -} SnapshotResponsePayload; + uint8_t status; + uint8_t direction; + chip::AttributeId attributeId; + uint8_t attributeType; + uint16_t minimumReportingInterval; + uint16_t maximumReportingInterval; + uint8_t * reportableChangeLocation; + uint16_t timeoutPeriod; +} EmberAfReadReportingConfigurationRecord; -// Struct for SnapshotSchedulePayload -typedef struct _SnapshotSchedulePayload +// Struct for ReadStructuredAttributeRecord +typedef struct _ReadStructuredAttributeRecord { - uint8_t snapshotScheduleId; - uint32_t snapshotStartTime; - uint32_t snapshotSchedule; - uint8_t snapshotPayloadType; - uint32_t snapshotCause; -} SnapshotSchedulePayload; + chip::AttributeId attributeId; + uint8_t indicator; + uint16_t indicies; +} EmberAfReadStructuredAttributeRecord; -// Struct for Protocol -typedef struct _Protocol +// Struct for ReportAttributeRecord +typedef struct _ReportAttributeRecord { - uint16_t manufacturerCode; - uint8_t protocolId; -} Protocol; + chip::AttributeId attributeId; + uint8_t attributeType; + uint8_t * attributeLocation; +} EmberAfReportAttributeRecord; -// Struct for TopUpPayload -typedef struct _TopUpPayload +// Struct for SceneExtensionAttributeInfo +typedef struct _SceneExtensionAttributeInfo { - uint8_t * topUpCode; - int32_t topUpAmount; - uint32_t topUpTime; -} TopUpPayload; + uint8_t attributeType; + uint8_t * attributeLocation; +} EmberAfSceneExtensionAttributeInfo; -// Struct for DebtPayload -typedef struct _DebtPayload +// Struct for SceneExtensionFieldSet +typedef struct _SceneExtensionFieldSet { - uint32_t collectionTime; - uint32_t amountCollected; - uint8_t debtType; - uint32_t outstandingDebt; -} DebtPayload; + chip::ClusterId clusterId; + uint8_t length; + uint8_t value; +} EmberAfSceneExtensionFieldSet; // Struct for ScheduleEntry typedef struct _ScheduleEntry { uint16_t startTime; uint8_t activePriceTierOrFriendlyCreditEnable; -} ScheduleEntry; +} EmberAfScheduleEntry; -// Struct for ScheduleEntryRateSwitchTimes -typedef struct _ScheduleEntryRateSwitchTimes +// Struct for ScheduleEntryAuxilliaryLoadSwitchTimes +typedef struct _ScheduleEntryAuxilliaryLoadSwitchTimes { uint16_t startTime; - uint8_t priceTier; -} ScheduleEntryRateSwitchTimes; + uint8_t auxiliaryLoadSwitchState; +} EmberAfScheduleEntryAuxilliaryLoadSwitchTimes; // Struct for ScheduleEntryFriendlyCreditSwitchTimes typedef struct _ScheduleEntryFriendlyCreditSwitchTimes { uint16_t startTime; uint8_t friendlyCreditEnable; -} ScheduleEntryFriendlyCreditSwitchTimes; +} EmberAfScheduleEntryFriendlyCreditSwitchTimes; -// Struct for ScheduleEntryAuxilliaryLoadSwitchTimes -typedef struct _ScheduleEntryAuxilliaryLoadSwitchTimes +// Struct for ScheduleEntryRateSwitchTimes +typedef struct _ScheduleEntryRateSwitchTimes { uint16_t startTime; - uint8_t auxiliaryLoadSwitchState; -} ScheduleEntryAuxilliaryLoadSwitchTimes; + uint8_t priceTier; +} EmberAfScheduleEntryRateSwitchTimes; + +// Struct for ScheduledPhase +typedef struct _ScheduledPhase +{ + uint8_t energyPhaseId; + uint16_t scheduledTime; +} EmberAfScheduledPhase; // Struct for SeasonEntry typedef struct _SeasonEntry { uint32_t seasonStartDate; uint8_t weekIdRef; -} SeasonEntry; +} EmberAfSeasonEntry; + +// Void typedef for EmberAfSignature which is empty. +// this will result in all the references to the data being as uint8_t* +typedef uint8_t EmberAfSignature; + +// Void typedef for EmberAfSmac which is empty. +// this will result in all the references to the data being as uint8_t* +typedef uint8_t EmberAfSmac; + +// Struct for SnapshotResponsePayload +typedef struct _SnapshotResponsePayload +{ + uint8_t snapshotScheduleId; + uint8_t snapshotScheduleConfirmation; +} EmberAfSnapshotResponsePayload; + +// Struct for SnapshotSchedulePayload +typedef struct _SnapshotSchedulePayload +{ + uint8_t snapshotScheduleId; + uint32_t snapshotStartTime; + uint32_t snapshotSchedule; + uint8_t snapshotPayloadType; + uint32_t snapshotCause; +} EmberAfSnapshotSchedulePayload; // Struct for SpecialDay typedef struct _SpecialDay { uint32_t specialDayDate; uint8_t dayIdRef; -} SpecialDay; +} EmberAfSpecialDay; -// Struct for EventConfigurationPayload -typedef struct _EventConfigurationPayload +// Struct for TierLabelsPayload +typedef struct _TierLabelsPayload { - uint16_t eventId; - uint8_t eventConfiguration; -} EventConfigurationPayload; + uint8_t tierId; + uint8_t * tierLabel; +} EmberAfTierLabelsPayload; -// Struct for EventLogPayload -typedef struct _EventLogPayload +// Struct for TopUpPayload +typedef struct _TopUpPayload { - uint8_t logId; - uint16_t eventId; - uint32_t eventTime; - uint8_t * eventData; -} EventLogPayload; - -// Void typedef for Identity which is empty. -// this will result in all the references to the data being as uint8_t* -typedef uint8_t Identity; - -// Void typedef for EphemeralData which is empty. -// this will result in all the references to the data being as uint8_t* -typedef uint8_t EphemeralData; - -// Void typedef for Smac which is empty. -// this will result in all the references to the data being as uint8_t* -typedef uint8_t Smac; + uint8_t * topUpCode; + int32_t topUpAmount; + uint32_t topUpTime; +} EmberAfTopUpPayload; -// Struct for DeviceInformationRecord -typedef struct _DeviceInformationRecord +// Struct for TransferredPhase +typedef struct _TransferredPhase { - uint8_t * ieeeAddress; - uint8_t endpointId; - uint16_t profileId; - uint16_t deviceId; - uint8_t version; - uint8_t groupIdCount; - uint8_t sort; -} DeviceInformationRecord; + uint8_t energyPhaseId; + uint8_t macroPhaseId; + uint16_t expectedDuration; + uint16_t peakPower; + uint16_t energy; + uint16_t maxActivationDelay; +} EmberAfTransferredPhase; -// Struct for GroupInformationRecord -typedef struct _GroupInformationRecord +// Struct for WriteAttributeRecord +typedef struct _WriteAttributeRecord { - uint16_t groupId; - uint8_t groupType; -} GroupInformationRecord; + chip::AttributeId attributeId; + uint8_t attributeType; + uint8_t * attributeLocation; +} EmberAfWriteAttributeRecord; -// Struct for EndpointInformationRecord -typedef struct _EndpointInformationRecord +// Struct for WriteAttributeStatusRecord +typedef struct _WriteAttributeStatusRecord { - uint16_t networkAddress; - uint8_t endpointId; - uint16_t profileId; - uint16_t deviceId; - uint8_t version; -} EndpointInformationRecord; + uint8_t status; + chip::AttributeId attributeId; +} EmberAfWriteAttributeStatusRecord; -// Struct for GpTranslationTableUpdateTranslation -typedef struct _GpTranslationTableUpdateTranslation +// Struct for WriteStructuredAttributeRecord +typedef struct _WriteStructuredAttributeRecord { - uint8_t index; - uint8_t gpdCommandId; - uint8_t endpoint; - uint16_t profile; - uint16_t cluster; - uint8_t zigbeeCommandId; - uint8_t * zigbeeCommandPayload; - uint8_t * additionalInfoBlock; -} GpTranslationTableUpdateTranslation; + chip::AttributeId attributeId; + uint8_t indicator; + uint16_t indicies; + uint8_t attributeType; + uint8_t * attributeLocation; +} EmberAfWriteStructuredAttributeRecord; -// Struct for GpPairingConfigurationGroupList -typedef struct _GpPairingConfigurationGroupList +// Struct for WriteStructuredAttributeStatusRecord +typedef struct _WriteStructuredAttributeStatusRecord { - uint16_t SinkGroup; - uint16_t Alias; -} GpPairingConfigurationGroupList; + uint8_t status; + chip::AttributeId attributeId; + uint8_t indicator; + uint16_t indicies; +} EmberAfWriteStructuredAttributeStatusRecord; // Struct for WwahBeaconSurvey typedef struct _WwahBeaconSurvey @@ -446,13 +429,11 @@ typedef struct _WwahBeaconSurvey uint16_t deviceShort; uint8_t rssi; uint8_t classificationMask; -} WwahBeaconSurvey; +} EmberAfWwahBeaconSurvey; // Struct for WwahClusterStatusToUseTC typedef struct _WwahClusterStatusToUseTC { - uint16_t clusterId; + chip::ClusterId clusterId; uint8_t status; -} WwahClusterStatusToUseTC; - -#endif // SILABS_EMBER_AF_STRUCTS +} EmberAfWwahClusterStatusToUseTC; diff --git a/examples/lighting-app/efr32/src/gen/att-storage.h b/examples/all-clusters-app/all-clusters-common/gen/att-storage.h similarity index 74% rename from examples/lighting-app/efr32/src/gen/att-storage.h rename to examples/all-clusters-app/all-clusters-common/gen/att-storage.h index 40a1a0088b4872..7572c8cbc338fb 100644 --- a/examples/lighting-app/efr32/src/gen/att-storage.h +++ b/examples/all-clusters-app/all-clusters-common/gen/att-storage.h @@ -1,23 +1,7 @@ -/** - * - * 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 + * 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. @@ -31,15 +15,12 @@ * 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 SILABS_ATTRIBUTE_STORAGE_GEN -#define SILABS_ATTRIBUTE_STORAGE_GEN +// Prevent multiple inclusion +#pragma once // Attribute masks modify how attributes are used by the framework +// // Attribute that has this mask is NOT read-only #define ATTRIBUTE_MASK_WRITABLE (0x01) // Attribute that has this mask is saved to a token @@ -56,6 +37,7 @@ #define ATTRIBUTE_MASK_CLIENT (0x40) // Cluster masks modify how clusters are used by the framework +// // Does this cluster have init function? #define CLUSTER_MASK_INIT_FUNCTION (0x01) // Does this cluster have attribute changed function? @@ -64,7 +46,7 @@ #define CLUSTER_MASK_DEFAULT_RESPONSE_FUNCTION (0x04) // Does this cluster have message sent function? #define CLUSTER_MASK_MESSAGE_SENT_FUNCTION (0x08) -// Does this cluster have manufacturer specific attribute changed funciton? +// Does this cluster have manufacturer specific attribute changed function? #define CLUSTER_MASK_MANUFACTURER_SPECIFIC_ATTRIBUTE_CHANGED_FUNCTION (0x10) // Does this cluster have pre-attribute changed function? #define CLUSTER_MASK_PRE_ATTRIBUTE_CHANGED_FUNCTION (0x20) @@ -74,6 +56,7 @@ #define CLUSTER_MASK_CLIENT (0x80) // Command masks modify meanings of commands +// // Is sending of this client command supported #define COMMAND_MASK_OUTGOING_CLIENT (0x01) // Is sending of this server command supported @@ -84,4 +67,3 @@ #define COMMAND_MASK_INCOMING_SERVER (0x08) // Is this command manufacturer specific? #define COMMAND_MASK_MANUFACTURER_SPECIFIC (0x10) -#endif // SILABS_ATTRIBUTE_STORAGE_GEN diff --git a/examples/all-clusters-app/all-clusters-common/gen/attribute-id.h b/examples/all-clusters-app/all-clusters-common/gen/attribute-id.h new file mode 100644 index 00000000000000..648809ca67cd83 --- /dev/null +++ b/examples/all-clusters-app/all-clusters-common/gen/attribute-id.h @@ -0,0 +1,4544 @@ + +/* + * + * 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. + */ + +// Prevent multiple inclusion +#pragma once + +// Attribute ids for cluster: Basic + +// Client attributes +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) + +// Server attributes +#define ZCL_VERSION_ATTRIBUTE_ID (0x0000) +#define ZCL_APPLICATION_VERSION_ATTRIBUTE_ID (0x0001) +#define ZCL_STACK_VERSION_ATTRIBUTE_ID (0x0002) +#define ZCL_HW_VERSION_ATTRIBUTE_ID (0x0003) +#define ZCL_MANUFACTURER_NAME_ATTRIBUTE_ID (0x0004) +#define ZCL_MODEL_IDENTIFIER_ATTRIBUTE_ID (0x0005) +#define ZCL_DATE_CODE_ATTRIBUTE_ID (0x0006) +#define ZCL_POWER_SOURCE_ATTRIBUTE_ID (0x0007) +#define ZCL_GENERIC_DEVICE_CLASS_ATTRIBUTE_ID (0x0008) +#define ZCL_GENERIC_DEVICE_TYPE_ATTRIBUTE_ID (0x0009) +#define ZCL_PRODUCT_CODE_ATTRIBUTE_ID (0x000A) +#define ZCL_PRODUCT_URL_ATTRIBUTE_ID (0x000B) +#define ZCL_LOCATION_DESCRIPTION_ATTRIBUTE_ID (0x0010) +#define ZCL_PHYSICAL_ENVIRONMENT_ATTRIBUTE_ID (0x0011) +#define ZCL_DEVICE_ENABLED_ATTRIBUTE_ID (0x0012) +#define ZCL_ALARM_MASK_ATTRIBUTE_ID (0x0013) +#define ZCL_DISABLE_LOCAL_CONFIG_ATTRIBUTE_ID (0x0014) +#define ZCL_SW_BUILD_ID_ATTRIBUTE_ID (0x4000) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Power Configuration + +// Client attributes +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) + +// Server attributes +#define ZCL_MAINS_VOLTAGE_ATTRIBUTE_ID (0x0000) +#define ZCL_MAINS_FREQUENCY_ATTRIBUTE_ID (0x0001) +#define ZCL_MAINS_ALARM_MASK_ATTRIBUTE_ID (0x0010) +#define ZCL_MAINS_VOLTAGE_MIN_THRESHOLD_ATTRIBUTE_ID (0x0011) +#define ZCL_MAINS_VOLTAGE_MAX_THRESHOLD_ATTRIBUTE_ID (0x0012) +#define ZCL_MAINS_VOLTAGE_DWELL_TRIP_POINT_ATTRIBUTE_ID (0x0013) +#define ZCL_BATTERY_VOLTAGE_ATTRIBUTE_ID (0x0020) +#define ZCL_BATTERY_PERCENTAGE_REMAINING_ATTRIBUTE_ID (0x0021) +#define ZCL_BATTERY_MANUFACTURER_ATTRIBUTE_ID (0x0030) +#define ZCL_BATTERY_SIZE_ATTRIBUTE_ID (0x0031) +#define ZCL_BATTERY_AHR_RATING_ATTRIBUTE_ID (0x0032) +#define ZCL_BATTERY_QUANTITY_ATTRIBUTE_ID (0x0033) +#define ZCL_BATTERY_RATED_VOLTAGE_ATTRIBUTE_ID (0x0034) +#define ZCL_BATTERY_ALARM_MASK_ATTRIBUTE_ID (0x0035) +#define ZCL_BATTERY_VOLTAGE_MIN_THRESHOLD_ATTRIBUTE_ID (0x0036) +#define ZCL_BATTERY_VOLTAGE_THRESHOLD_1_ATTRIBUTE_ID (0x0037) +#define ZCL_BATTERY_VOLTAGE_THRESHOLD_2_ATTRIBUTE_ID (0x0038) +#define ZCL_BATTERY_VOLTAGE_THRESHOLD_3_ATTRIBUTE_ID (0x0039) +#define ZCL_BATTERY_PERCENTAGE_MIN_THRESHOLD_ATTRIBUTE_ID (0x003A) +#define ZCL_BATTERY_PERCENTAGE_THRESHOLD_1_ATTRIBUTE_ID (0x003B) +#define ZCL_BATTERY_PERCENTAGE_THRESHOLD_2_ATTRIBUTE_ID (0x003C) +#define ZCL_BATTERY_PERCENTAGE_THRESHOLD_3_ATTRIBUTE_ID (0x003D) +#define ZCL_BATTERY_ALARM_STATE_ATTRIBUTE_ID (0x003E) +#define ZCL_BATTERY_2_VOLTAGE_ATTRIBUTE_ID (0x0040) +#define ZCL_BATTERY_2_PERCENTAGE_REMAINING_ATTRIBUTE_ID (0x0041) +#define ZCL_BATTERY_2_MANUFACTURER_ATTRIBUTE_ID (0x0050) +#define ZCL_BATTERY_2_SIZE_ATTRIBUTE_ID (0x0051) +#define ZCL_BATTERY_2_AHR_RATING_ATTRIBUTE_ID (0x0052) +#define ZCL_BATTERY_2_QUANTITY_ATTRIBUTE_ID (0x0053) +#define ZCL_BATTERY_2_RATED_VOLTAGE_ATTRIBUTE_ID (0x0054) +#define ZCL_BATTERY_2_ALARM_MASK_ATTRIBUTE_ID (0x0055) +#define ZCL_BATTERY_2_VOLTAGE_MIN_THRESHOLD_ATTRIBUTE_ID (0x0056) +#define ZCL_BATTERY_2_VOLTAGE_THRESHOLD_1_ATTRIBUTE_ID (0x0057) +#define ZCL_BATTERY_2_VOLTAGE_THRESHOLD_2_ATTRIBUTE_ID (0x0058) +#define ZCL_BATTERY_2_VOLTAGE_THRESHOLD_3_ATTRIBUTE_ID (0x0059) +#define ZCL_BATTERY_2_PERCENTAGE_MIN_THRESHOLD_ATTRIBUTE_ID (0x005A) +#define ZCL_BATTERY_2_PERCENTAGE_THRESHOLD_1_ATTRIBUTE_ID (0x005B) +#define ZCL_BATTERY_2_PERCENTAGE_THRESHOLD_2_ATTRIBUTE_ID (0x005C) +#define ZCL_BATTERY_2_PERCENTAGE_THRESHOLD_3_ATTRIBUTE_ID (0x005D) +#define ZCL_BATTERY_2_ALARM_STATE_ATTRIBUTE_ID (0x005E) +#define ZCL_BATTERY_3_VOLTAGE_ATTRIBUTE_ID (0x0060) +#define ZCL_BATTERY_3_PERCENTAGE_REMAINING_ATTRIBUTE_ID (0x0061) +#define ZCL_BATTERY_3_MANUFACTURER_ATTRIBUTE_ID (0x0070) +#define ZCL_BATTERY_3_SIZE_ATTRIBUTE_ID (0x0071) +#define ZCL_BATTERY_3_AHR_RATING_ATTRIBUTE_ID (0x0072) +#define ZCL_BATTERY_3_QUANTITY_ATTRIBUTE_ID (0x0073) +#define ZCL_BATTERY_3_RATED_VOLTAGE_ATTRIBUTE_ID (0x0074) +#define ZCL_BATTERY_3_ALARM_MASK_ATTRIBUTE_ID (0x0075) +#define ZCL_BATTERY_3_VOLTAGE_MIN_THRESHOLD_ATTRIBUTE_ID (0x0076) +#define ZCL_BATTERY_3_VOLTAGE_THRESHOLD_1_ATTRIBUTE_ID (0x0077) +#define ZCL_BATTERY_3_VOLTAGE_THRESHOLD_2_ATTRIBUTE_ID (0x0078) +#define ZCL_BATTERY_3_VOLTAGE_THRESHOLD_3_ATTRIBUTE_ID (0x0079) +#define ZCL_BATTERY_3_PERCENTAGE_MIN_THRESHOLD_ATTRIBUTE_ID (0x007A) +#define ZCL_BATTERY_3_PERCENTAGE_THRESHOLD_1_ATTRIBUTE_ID (0x007B) +#define ZCL_BATTERY_3_PERCENTAGE_THRESHOLD_2_ATTRIBUTE_ID (0x007C) +#define ZCL_BATTERY_3_PERCENTAGE_THRESHOLD_3_ATTRIBUTE_ID (0x007D) +#define ZCL_BATTERY_3_ALARM_STATE_ATTRIBUTE_ID (0x007E) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Device Temperature Configuration + +// Client attributes +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) + +// Server attributes +#define ZCL_CURRENT_TEMPERATURE_ATTRIBUTE_ID (0x0000) +#define ZCL_MIN_TEMP_EXPERIENCED_ATTRIBUTE_ID (0x0001) +#define ZCL_MAX_TEMP_EXPERIENCED_ATTRIBUTE_ID (0x0002) +#define ZCL_OVER_TEMP_TOTAL_DWELL_ATTRIBUTE_ID (0x0003) +#define ZCL_DEVICE_TEMP_ALARM_MASK_ATTRIBUTE_ID (0x0010) +#define ZCL_LOW_TEMP_THRESHOLD_ATTRIBUTE_ID (0x0011) +#define ZCL_HIGH_TEMP_THRESHOLD_ATTRIBUTE_ID (0x0012) +#define ZCL_LOW_TEMP_DWELL_TRIP_POINT_ATTRIBUTE_ID (0x0013) +#define ZCL_HIGH_TEMP_DWELL_TRIP_POINT_ATTRIBUTE_ID (0x0014) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Identify + +// Client attributes +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) + +// Server attributes +#define ZCL_IDENTIFY_TIME_ATTRIBUTE_ID (0x0000) +#define ZCL_COMMISSION_STATE_ATTRIBUTE_ID (0x0001) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Groups + +// Client attributes +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) + +// Server attributes +#define ZCL_GROUP_NAME_SUPPORT_ATTRIBUTE_ID (0x0000) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Scenes + +// Client attributes +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) + +// Server attributes +#define ZCL_SCENE_COUNT_ATTRIBUTE_ID (0x0000) +#define ZCL_CURRENT_SCENE_ATTRIBUTE_ID (0x0001) +#define ZCL_CURRENT_GROUP_ATTRIBUTE_ID (0x0002) +#define ZCL_SCENE_VALID_ATTRIBUTE_ID (0x0003) +#define ZCL_SCENE_NAME_SUPPORT_ATTRIBUTE_ID (0x0004) +#define ZCL_LAST_CONFIGURED_BY_ATTRIBUTE_ID (0x0005) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: On/off + +// Client attributes +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) + +// Server attributes +#define ZCL_ON_OFF_ATTRIBUTE_ID (0x0000) +#define ZCL_SAMPLE_MFG_SPECIFIC_TRANSITION_TIME_ATTRIBUTE_ID (0x0000) +#define ZCL_SAMPLE_MFG_SPECIFIC_TRANSITION_TIME_2_ATTRIBUTE_ID (0x0000) +#define ZCL_SAMPLE_MFG_SPECIFIC_TRANSITION_TIME_3_ATTRIBUTE_ID (0x0001) +#define ZCL_SAMPLE_MFG_SPECIFIC_TRANSITION_TIME_4_ATTRIBUTE_ID (0x0001) +#define ZCL_GLOBAL_SCENE_CONTROL_ATTRIBUTE_ID (0x4000) +#define ZCL_ON_TIME_ATTRIBUTE_ID (0x4001) +#define ZCL_OFF_WAIT_TIME_ATTRIBUTE_ID (0x4002) +#define ZCL_START_UP_ON_OFF_ATTRIBUTE_ID (0x4003) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: On/off Switch Configuration + +// Client attributes +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) + +// Server attributes +#define ZCL_SWITCH_TYPE_ATTRIBUTE_ID (0x0000) +#define ZCL_SWITCH_ACTIONS_ATTRIBUTE_ID (0x0010) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Level Control + +// Client attributes +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) + +// Server attributes +#define ZCL_CURRENT_LEVEL_ATTRIBUTE_ID (0x0000) +#define ZCL_LEVEL_CONTROL_REMAINING_TIME_ATTRIBUTE_ID (0x0001) +#define ZCL_OPTIONS_ATTRIBUTE_ID (0x000F) +#define ZCL_ON_OFF_TRANSITION_TIME_ATTRIBUTE_ID (0x0010) +#define ZCL_ON_LEVEL_ATTRIBUTE_ID (0x0011) +#define ZCL_ON_TRANSITION_TIME_ATTRIBUTE_ID (0x0012) +#define ZCL_OFF_TRANSITION_TIME_ATTRIBUTE_ID (0x0013) +#define ZCL_DEFAULT_MOVE_RATE_ATTRIBUTE_ID (0x0014) +#define ZCL_START_UP_CURRENT_LEVEL_ATTRIBUTE_ID (0x4000) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Alarms + +// Client attributes +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) + +// Server attributes +#define ZCL_ALARM_COUNT_ATTRIBUTE_ID (0x0000) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Time + +// Client attributes +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) + +// Server attributes +#define ZCL_TIME_ATTRIBUTE_ID (0x0000) +#define ZCL_TIME_STATUS_ATTRIBUTE_ID (0x0001) +#define ZCL_TIME_ZONE_ATTRIBUTE_ID (0x0002) +#define ZCL_DST_START_ATTRIBUTE_ID (0x0003) +#define ZCL_DST_END_ATTRIBUTE_ID (0x0004) +#define ZCL_DST_SHIFT_ATTRIBUTE_ID (0x0005) +#define ZCL_STANDARD_TIME_ATTRIBUTE_ID (0x0006) +#define ZCL_LOCAL_TIME_ATTRIBUTE_ID (0x0007) +#define ZCL_LAST_SET_TIME_ATTRIBUTE_ID (0x0008) +#define ZCL_VALID_UNTIL_TIME_ATTRIBUTE_ID (0x0009) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: RSSI Location + +// Client attributes +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) + +// Server attributes +#define ZCL_LOCATION_TYPE_ATTRIBUTE_ID (0x0000) +#define ZCL_LOCATION_METHOD_ATTRIBUTE_ID (0x0001) +#define ZCL_LOCATION_AGE_ATTRIBUTE_ID (0x0002) +#define ZCL_QUALITY_MEASURE_ATTRIBUTE_ID (0x0003) +#define ZCL_NUMBER_OF_DEVICES_ATTRIBUTE_ID (0x0004) +#define ZCL_COORDINATE1_ATTRIBUTE_ID (0x0010) +#define ZCL_COORDINATE2_ATTRIBUTE_ID (0x0011) +#define ZCL_COORDINATE3_ATTRIBUTE_ID (0x0012) +#define ZCL_POWER_ATTRIBUTE_ID (0x0013) +#define ZCL_PATH_LOSS_EXPONENT_ATTRIBUTE_ID (0x0014) +#define ZCL_REPORTING_PERIOD_ATTRIBUTE_ID (0x0015) +#define ZCL_CALCULATION_PERIOD_ATTRIBUTE_ID (0x0016) +#define ZCL_NUMBER_RSSI_MEASUREMENTS_ATTRIBUTE_ID (0x0017) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Binary Input (Basic) + +// Client attributes +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) + +// Server attributes +#define ZCL_ACTIVE_TEXT_ATTRIBUTE_ID (0x0004) +#define ZCL_DESCRIPTION_ATTRIBUTE_ID (0x001C) +#define ZCL_INACTIVE_TEXT_ATTRIBUTE_ID (0x002E) +#define ZCL_OUT_OF_SERVICE_ATTRIBUTE_ID (0x0051) +#define ZCL_POLARITY_ATTRIBUTE_ID (0x0054) +#define ZCL_PRESENT_VALUE_ATTRIBUTE_ID (0x0055) +#define ZCL_RELIABILITY_ATTRIBUTE_ID (0x0067) +#define ZCL_STATUS_FLAGS_ATTRIBUTE_ID (0x006F) +#define ZCL_APPLICATION_TYPE_ATTRIBUTE_ID (0x0100) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Commissioning + +// Client attributes +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) + +// Server attributes +#define ZCL_SHORT_ADDRESS_ATTRIBUTE_ID (0x0000) +#define ZCL_EXTENDED_PAN_ID_ATTRIBUTE_ID (0x0001) +#define ZCL_PAN_ID_ATTRIBUTE_ID (0x0002) +#define ZCL_CHANNEL_MASK_ATTRIBUTE_ID (0x0003) +#define ZCL_PROTOCOL_VERSION_ATTRIBUTE_ID (0x0004) +#define ZCL_STACK_PROFILE_ATTRIBUTE_ID (0x0005) +#define ZCL_STARTUP_CONTROL_ATTRIBUTE_ID (0x0006) +#define ZCL_TRUST_CENTER_ADDRESS_ATTRIBUTE_ID (0x0010) +#define ZCL_TRUST_CENTER_MASTER_KEY_ATTRIBUTE_ID (0x0011) +#define ZCL_NETWORK_KEY_ATTRIBUTE_ID (0x0012) +#define ZCL_USE_INSECURE_JOIN_ATTRIBUTE_ID (0x0013) +#define ZCL_PRECONFIGURED_LINK_KEY_ATTRIBUTE_ID (0x0014) +#define ZCL_NETWORK_KEY_SEQUENCE_NUMBER_ATTRIBUTE_ID (0x0015) +#define ZCL_NETWORK_KEY_TYPE_ATTRIBUTE_ID (0x0016) +#define ZCL_NETWORK_MANAGER_ADDRESS_ATTRIBUTE_ID (0x0017) +#define ZCL_SCAN_ATTEMPTS_ATTRIBUTE_ID (0x0020) +#define ZCL_TIME_BETWEEN_SCANS_ATTRIBUTE_ID (0x0021) +#define ZCL_REJOIN_INTERVAL_ATTRIBUTE_ID (0x0022) +#define ZCL_MAX_REJOIN_INTERVAL_ATTRIBUTE_ID (0x0023) +#define ZCL_INDIRECT_POLL_RATE_ATTRIBUTE_ID (0x0030) +#define ZCL_PARENT_RETRY_THRESHOLD_ATTRIBUTE_ID (0x0031) +#define ZCL_CONCENTRATOR_FLAG_ATTRIBUTE_ID (0x0040) +#define ZCL_CONCENTRATOR_RADIUS_ATTRIBUTE_ID (0x0041) +#define ZCL_CONCENTRATOR_DISCOVERY_TIME_ATTRIBUTE_ID (0x0042) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Partition + +// Client attributes +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) + +// Server attributes +#define ZCL_PARTITION_MAXIMUM_INCOMING_TRANSFER_SIZE_ATTRIBUTE_ID (0x0000) +#define ZCL_PARTITION_MAXIMUM_OUTGOING_TRANSFER_SIZE_ATTRIBUTE_ID (0x0001) +#define ZCL_PARTIONED_FRAME_SIZE_ATTRIBUTE_ID (0x0002) +#define ZCL_LARGE_FRAME_SIZE_ATTRIBUTE_ID (0x0003) +#define ZCL_NUMBER_OF_ACK_FRAME_ATTRIBUTE_ID (0x0004) +#define ZCL_NACK_TIMEOUT_ATTRIBUTE_ID (0x0005) +#define ZCL_INTERFRAME_DELAY_ATTRIBUTE_ID (0x0006) +#define ZCL_NUMBER_OF_SEND_RETRIES_ATTRIBUTE_ID (0x0007) +#define ZCL_SENDER_TIMEOUT_ATTRIBUTE_ID (0x0008) +#define ZCL_RECEIVER_TIMEOUT_ATTRIBUTE_ID (0x0009) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Over the Air Bootloading + +// Client attributes +#define ZCL_UPGRADE_SERVER_ID_ATTRIBUTE_ID (0x0000) +#define ZCL_FILE_OFFSET_ATTRIBUTE_ID (0x0001) +#define ZCL_CURRENT_FILE_VERSION_ATTRIBUTE_ID (0x0002) +#define ZCL_CURRENT_ZIGBEE_STACK_VERSION_ATTRIBUTE_ID (0x0003) +#define ZCL_DOWNLOADED_FILE_VERSION_ATTRIBUTE_ID (0x0004) +#define ZCL_DOWNLOADED_ZIGBEE_STACK_VERSION_ATTRIBUTE_ID (0x0005) +#define ZCL_IMAGE_UPGRADE_STATUS_ATTRIBUTE_ID (0x0006) +#define ZCL_MANUFACTURER_ID_ATTRIBUTE_ID (0x0007) +#define ZCL_IMAGE_TYPE_ID_ATTRIBUTE_ID (0x0008) +#define ZCL_MINIMUM_BLOCK_REQUEST_PERIOD_ATTRIBUTE_ID (0x0009) +#define ZCL_IMAGE_STAMP_ATTRIBUTE_ID (0x000A) +#define ZCL_UPGRADE_ACTIVATION_POLICY_ATTRIBUTE_ID (0x000B) +#define ZCL_UPGRADE_TIMEOUT_POLICY_ATTRIBUTE_ID (0x000C) +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) + +// Server attributes +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Power Profile + +// Client attributes +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) + +// Server attributes +#define ZCL_TOTAL_PROFILE_NUM_ATTRIBUTE_ID (0x0000) +#define ZCL_MULTIPLE_SCHEDULING_ATTRIBUTE_ID (0x0001) +#define ZCL_ENERGY_FORMATTING_ATTRIBUTE_ID (0x0002) +#define ZCL_ENERGY_REMOTE_ATTRIBUTE_ID (0x0003) +#define ZCL_SCHEDULE_MODE_ATTRIBUTE_ID (0x0004) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Appliance Control + +// Client attributes +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) + +// Server attributes +#define ZCL_START_TIME_ATTRIBUTE_ID (0x0000) +#define ZCL_FINISH_TIME_ATTRIBUTE_ID (0x0001) +#define ZCL_REMAINING_TIME_ATTRIBUTE_ID (0x0002) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Poll Control + +// Client attributes +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) + +// Server attributes +#define ZCL_CHECK_IN_INTERVAL_ATTRIBUTE_ID (0x0000) +#define ZCL_LONG_POLL_INTERVAL_ATTRIBUTE_ID (0x0001) +#define ZCL_SHORT_POLL_INTERVAL_ATTRIBUTE_ID (0x0002) +#define ZCL_FAST_POLL_TIMEOUT_ATTRIBUTE_ID (0x0003) +#define ZCL_CHECK_IN_INTERVAL_MIN_ATTRIBUTE_ID (0x0004) +#define ZCL_LONG_POLL_INTERVAL_MIN_ATTRIBUTE_ID (0x0005) +#define ZCL_FAST_POLL_TIMEOUT_MAX_ATTRIBUTE_ID (0x0006) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Green Power + +// Client attributes +#define ZCL_GP_CLIENT_GPP_MAX_PROXY_TABLE_ENTRIES_ATTRIBUTE_ID (0x0010) +#define ZCL_GP_CLIENT_PROXY_TABLE_ATTRIBUTE_ID (0x0011) +#define ZCL_GP_CLIENT_GPP_NOTIFICATION_RETRY_NUMBER_ATTRIBUTE_ID (0x0012) +#define ZCL_GP_CLIENT_GPP_NOTIFICATION_RETRY_TIMER_ATTRIBUTE_ID (0x0013) +#define ZCL_GP_CLIENT_GPP_MAX_SEARCH_COUNTER_ATTRIBUTE_ID (0x0014) +#define ZCL_GP_CLIENT_GPP_BLOCKED_GPD_ID_ATTRIBUTE_ID (0x0015) +#define ZCL_GP_CLIENT_GPP_FUNCTIONALITY_ATTRIBUTE_ID (0x0016) +#define ZCL_GP_CLIENT_GPP_ACTIVE_FUNCTIONALITY_ATTRIBUTE_ID (0x0017) +#define ZCL_GP_CLIENT_GP_SHARED_SECURITY_KEY_TYPE_ATTRIBUTE_ID (0x0020) +#define ZCL_GP_CLIENT_GP_SHARED_SECURITY_KEY_ATTRIBUTE_ID (0x0021) +#define ZCL_GP_CLIENT_GP_LINK_KEY_ATTRIBUTE_ID (0x0022) +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) + +// Server attributes +#define ZCL_GP_SERVER_GPS_MAX_SINK_TABLE_ENTRIES_ATTRIBUTE_ID (0x0000) +#define ZCL_GP_SERVER_SINK_TABLE_ATTRIBUTE_ID (0x0001) +#define ZCL_GP_SERVER_GPS_COMMUNICATION_MODE_ATTRIBUTE_ID (0x0002) +#define ZCL_GP_SERVER_GPS_COMMISSIONING_EXIT_MODE_ATTRIBUTE_ID (0x0003) +#define ZCL_GP_SERVER_GPS_COMMISSIONING_WINDOW_ATTRIBUTE_ID (0x0004) +#define ZCL_GP_SERVER_GPS_SECURITY_LEVEL_ATTRIBUTE_ID (0x0005) +#define ZCL_GP_SERVER_GPS_FUNCTIONALITY_ATTRIBUTE_ID (0x0006) +#define ZCL_GP_SERVER_GPS_ACTIVE_FUNCTIONALITY_ATTRIBUTE_ID (0x0007) +#define ZCL_GP_SERVER_GP_SHARED_SECURITY_KEY_TYPE_ATTRIBUTE_ID (0x0020) +#define ZCL_GP_SERVER_GP_SHARED_SECURITY_KEY_ATTRIBUTE_ID (0x0021) +#define ZCL_GP_SERVER_GP_LINK_KEY_ATTRIBUTE_ID (0x0022) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Keep-Alive + +// Client attributes +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) + +// Server attributes +#define ZCL_KEEPALIVE_BASE_ATTRIBUTE_ID (0x0000) +#define ZCL_KEEPALIVE_JITTER_ATTRIBUTE_ID (0x0001) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Shade Configuration + +// Client attributes +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) + +// Server attributes +#define ZCL_SHADE_CONFIG_PHYSICAL_CLOSED_LIMIT_ATTRIBUTE_ID (0x0000) +#define ZCL_SHADE_CONFIG_MOTOR_STEP_SIZE_ATTRIBUTE_ID (0x0001) +#define ZCL_SHADE_CONFIG_STATUS_ATTRIBUTE_ID (0x0002) +#define ZCL_SHADE_CONFIG_CLOSED_LIMIT_ATTRIBUTE_ID (0x0010) +#define ZCL_SHADE_CONFIG_MODE_ATTRIBUTE_ID (0x0011) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Door Lock + +// Client attributes +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) + +// Server attributes +#define ZCL_LOCK_STATE_ATTRIBUTE_ID (0x0000) +#define ZCL_LOCK_TYPE_ATTRIBUTE_ID (0x0001) +#define ZCL_ACTUATOR_ENABLED_ATTRIBUTE_ID (0x0002) +#define ZCL_DOOR_STATE_ATTRIBUTE_ID (0x0003) +#define ZCL_DOOR_OPEN_EVENTS_ATTRIBUTE_ID (0x0004) +#define ZCL_DOOR_CLOSED_EVENTS_ATTRIBUTE_ID (0x0005) +#define ZCL_OPEN_PERIOD_ATTRIBUTE_ID (0x0006) +#define ZCL_NUM_LOCK_RECORDS_SUPPORTED_ATTRIBUTE_ID (0x0010) +#define ZCL_NUM_TOTAL_USERS_SUPPORTED_ATTRIBUTE_ID (0x0011) +#define ZCL_NUM_PIN_USERS_SUPPORTED_ATTRIBUTE_ID (0x0012) +#define ZCL_NUM_RFID_USERS_SUPPORTED_ATTRIBUTE_ID (0x0013) +#define ZCL_NUM_WEEKDAY_SCHEDULES_SUPPORTED_PER_USER_ATTRIBUTE_ID (0x0014) +#define ZCL_NUM_YEARDAY_SCHEDULES_SUPPORTED_PER_USER_ATTRIBUTE_ID (0x0015) +#define ZCL_NUM_HOLIDAY_SCHEDULES_SUPPORTED_PER_USER_ATTRIBUTE_ID (0x0016) +#define ZCL_MAX_PIN_LENGTH_ATTRIBUTE_ID (0x0017) +#define ZCL_MIN_PIN_LENGTH_ATTRIBUTE_ID (0x0018) +#define ZCL_MAX_RFID_CODE_LENGTH_ATTRIBUTE_ID (0x0019) +#define ZCL_MIN_RFID_CODE_LENGTH_ATTRIBUTE_ID (0x001A) +#define ZCL_ENABLE_LOGGING_ATTRIBUTE_ID (0x0020) +#define ZCL_LANGUAGE_ATTRIBUTE_ID (0x0021) +#define ZCL_LED_SETTINGS_ATTRIBUTE_ID (0x0022) +#define ZCL_AUTO_RELOCK_TIME_ATTRIBUTE_ID (0x0023) +#define ZCL_SOUND_VOLUME_ATTRIBUTE_ID (0x0024) +#define ZCL_OPERATING_MODE_ATTRIBUTE_ID (0x0025) +#define ZCL_SUPPORTED_OPERATING_MODES_ATTRIBUTE_ID (0x0026) +#define ZCL_DEFAULT_CONFIGURATION_REGISTER_ATTRIBUTE_ID (0x0027) +#define ZCL_ENABLE_LOCAL_PROGRAMMING_ATTRIBUTE_ID (0x0028) +#define ZCL_ENABLE_ONE_TOUCH_LOCKING_ATTRIBUTE_ID (0x0029) +#define ZCL_ENABLE_INSIDE_STATUS_LED_ATTRIBUTE_ID (0x002A) +#define ZCL_ENABLE_PRIVACY_MODE_BUTTON_ATTRIBUTE_ID (0x002B) +#define ZCL_WRONG_CODE_ENTRY_LIMIT_ATTRIBUTE_ID (0x0030) +#define ZCL_USER_CODE_TEMPORARY_DISABLE_TIME_ATTRIBUTE_ID (0x0031) +#define ZCL_SEND_PIN_OVER_THE_AIR_ATTRIBUTE_ID (0x0032) +#define ZCL_REQUIRE_PIN_FOR_RF_OPERATION_ATTRIBUTE_ID (0x0033) +#define ZCL_ZIGBEE_SECURITY_LEVEL_ATTRIBUTE_ID (0x0034) +#define ZCL_DOOR_LOCK_ALARM_MASK_ATTRIBUTE_ID (0x0040) +#define ZCL_KEYPAD_OPERATION_EVENT_MASK_ATTRIBUTE_ID (0x0041) +#define ZCL_RF_OPERATION_EVENT_MASK_ATTRIBUTE_ID (0x0042) +#define ZCL_MANUAL_OPERATION_EVENT_MASK_ATTRIBUTE_ID (0x0043) +#define ZCL_RFID_OPERATION_EVENT_MASK_ATTRIBUTE_ID (0x0044) +#define ZCL_KEYPAD_PROGRAMMING_EVENT_MASK_ATTRIBUTE_ID (0x0045) +#define ZCL_RF_PROGRAMMING_EVENT_MASK_ATTRIBUTE_ID (0x0046) +#define ZCL_RFID_PROGRAMMING_EVENT_MASK_ATTRIBUTE_ID (0x0047) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Window Covering + +// Client attributes +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) + +// Server attributes +#define ZCL_COVERING_TYPE_ATTRIBUTE_ID (0x0000) +#define ZCL_LIMIT_LIFT_ATTRIBUTE_ID (0x0001) +#define ZCL_LIMIT_TILT_ATTRIBUTE_ID (0x0002) +#define ZCL_CURRENT_LIFT_ATTRIBUTE_ID (0x0003) +#define ZCL_CURRENT_TILT_ATTRIBUTE_ID (0x0004) +#define ZCL_NUMBER_LIFT_ATTRIBUTE_ID (0x0005) +#define ZCL_NUMBER_TILT_ATTRIBUTE_ID (0x0006) +#define ZCL_CONFIG_STATUS_ATTRIBUTE_ID (0x0007) +#define ZCL_CURRENT_LIFT_PERCENTAGE_ATTRIBUTE_ID (0x0008) +#define ZCL_CURRENT_TILT_PERCENTAGE_ATTRIBUTE_ID (0x0009) +#define ZCL_OPEN_LIMIT_LIFT_ATTRIBUTE_ID (0x0010) +#define ZCL_CLOSED_LIMIT_LIFT_ATTRIBUTE_ID (0x0011) +#define ZCL_OPEN_LIMIT_TILT_ATTRIBUTE_ID (0x0012) +#define ZCL_CLOSED_LIMIT_TILT_ATTRIBUTE_ID (0x0013) +#define ZCL_VELOCITY_LIFT_ATTRIBUTE_ID (0x0014) +#define ZCL_ACCELERATION_LIFT_ATTRIBUTE_ID (0x0015) +#define ZCL_DECELERATION_LIFT_ATTRIBUTE_ID (0x0016) +#define ZCL_MODE_ATTRIBUTE_ID (0x0017) +#define ZCL_SETPOINTS_LIFT_ATTRIBUTE_ID (0x0018) +#define ZCL_SETPOINTS_TILT_ATTRIBUTE_ID (0x0019) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Barrier Control + +// Client attributes +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) + +// Server attributes +#define ZCL_BARRIER_MOVING_STATE_ATTRIBUTE_ID (0x0001) +#define ZCL_BARRIER_SAFETY_STATUS_ATTRIBUTE_ID (0x0002) +#define ZCL_BARRIER_CAPABILITIES_ATTRIBUTE_ID (0x0003) +#define ZCL_BARRIER_OPEN_EVENTS_ATTRIBUTE_ID (0x0004) +#define ZCL_BARRIER_CLOSE_EVENTS_ATTRIBUTE_ID (0x0005) +#define ZCL_BARRIER_COMMAND_OPEN_EVENTS_ATTRIBUTE_ID (0x0006) +#define ZCL_BARRIER_COMMAND_CLOSE_EVENTS_ATTRIBUTE_ID (0x0007) +#define ZCL_BARRIER_OPEN_PERIOD_ATTRIBUTE_ID (0x0008) +#define ZCL_BARRIER_CLOSE_PERIOD_ATTRIBUTE_ID (0x0009) +#define ZCL_BARRIER_POSITION_ATTRIBUTE_ID (0x000A) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Pump Configuration and Control + +// Client attributes +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) + +// Server attributes +#define ZCL_MAX_PRESSURE_ATTRIBUTE_ID (0x0000) +#define ZCL_MAX_SPEED_ATTRIBUTE_ID (0x0001) +#define ZCL_MAX_FLOW_ATTRIBUTE_ID (0x0002) +#define ZCL_MIN_CONST_PRESSURE_ATTRIBUTE_ID (0x0003) +#define ZCL_MAX_CONST_PRESSURE_ATTRIBUTE_ID (0x0004) +#define ZCL_MIN_COMP_PRESSURE_ATTRIBUTE_ID (0x0005) +#define ZCL_MAX_COMP_PRESSURE_ATTRIBUTE_ID (0x0006) +#define ZCL_MIN_CONST_SPEED_ATTRIBUTE_ID (0x0007) +#define ZCL_MAX_CONST_SPEED_ATTRIBUTE_ID (0x0008) +#define ZCL_MIN_CONST_FLOW_ATTRIBUTE_ID (0x0009) +#define ZCL_MAX_CONST_FLOW_ATTRIBUTE_ID (0x000A) +#define ZCL_MIN_CONST_TEMP_ATTRIBUTE_ID (0x000B) +#define ZCL_MAX_CONST_TEMP_ATTRIBUTE_ID (0x000C) +#define ZCL_PUMP_STATUS_ATTRIBUTE_ID (0x0010) +#define ZCL_EFFECTIVE_OPERATION_MODE_ATTRIBUTE_ID (0x0011) +#define ZCL_EFFECTIVE_CONTROL_MODE_ATTRIBUTE_ID (0x0012) +#define ZCL_CAPACITY_ATTRIBUTE_ID (0x0013) +#define ZCL_SPEED_ATTRIBUTE_ID (0x0014) +#define ZCL_LIFETIME_RUNNING_HOURS_ATTRIBUTE_ID (0x0015) +#define ZCL_PUMP_POWER_ATTRIBUTE_ID (0x0016) +#define ZCL_LIFETIME_ENERGY_CONSUMED_ATTRIBUTE_ID (0x0017) +#define ZCL_OPERATION_MODE_ATTRIBUTE_ID (0x0020) +#define ZCL_CONTROL_MODE_ATTRIBUTE_ID (0x0021) +#define ZCL_PUMP_ALARM_MASK_ATTRIBUTE_ID (0x0022) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Thermostat + +// Client attributes +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) + +// Server attributes +#define ZCL_LOCAL_TEMPERATURE_ATTRIBUTE_ID (0x0000) +#define ZCL_OUTDOOR_TEMPERATURE_ATTRIBUTE_ID (0x0001) +#define ZCL_THERMOSTAT_OCCUPANCY_ATTRIBUTE_ID (0x0002) +#define ZCL_ABS_MIN_HEAT_SETPOINT_LIMIT_ATTRIBUTE_ID (0x0003) +#define ZCL_ABS_MAX_HEAT_SETPOINT_LIMIT_ATTRIBUTE_ID (0x0004) +#define ZCL_ABS_MIN_COOL_SETPOINT_LIMIT_ATTRIBUTE_ID (0x0005) +#define ZCL_ABS_MAX_COOL_SETPOINT_LIMIT_ATTRIBUTE_ID (0x0006) +#define ZCL_PI_COOLING_DEMAND_ATTRIBUTE_ID (0x0007) +#define ZCL_PI_HEATING_DEMAND_ATTRIBUTE_ID (0x0008) +#define ZCL_HVAC_SYSTEM_TYPE_CONFIGURATION_ATTRIBUTE_ID (0x0009) +#define ZCL_LOCAL_TEMPERATURE_CALIBRATION_ATTRIBUTE_ID (0x0010) +#define ZCL_OCCUPIED_COOLING_SETPOINT_ATTRIBUTE_ID (0x0011) +#define ZCL_OCCUPIED_HEATING_SETPOINT_ATTRIBUTE_ID (0x0012) +#define ZCL_UNOCCUPIED_COOLING_SETPOINT_ATTRIBUTE_ID (0x0013) +#define ZCL_UNOCCUPIED_HEATING_SETPOINT_ATTRIBUTE_ID (0x0014) +#define ZCL_MIN_HEAT_SETPOINT_LIMIT_ATTRIBUTE_ID (0x0015) +#define ZCL_MAX_HEAT_SETPOINT_LIMIT_ATTRIBUTE_ID (0x0016) +#define ZCL_MIN_COOL_SETPOINT_LIMIT_ATTRIBUTE_ID (0x0017) +#define ZCL_MAX_COOL_SETPOINT_LIMIT_ATTRIBUTE_ID (0x0018) +#define ZCL_MIN_SETPOINT_DEAD_BAND_ATTRIBUTE_ID (0x0019) +#define ZCL_REMOTE_SENSING_ATTRIBUTE_ID (0x001A) +#define ZCL_CONTROL_SEQUENCE_OF_OPERATION_ATTRIBUTE_ID (0x001B) +#define ZCL_SYSTEM_MODE_ATTRIBUTE_ID (0x001C) +#define ZCL_THERMOSTAT_ALARM_MASK_ATTRIBUTE_ID (0x001D) +#define ZCL_THERMOSTAT_RUNNING_MODE_ATTRIBUTE_ID (0x001E) +#define ZCL_START_OF_WEEK_ATTRIBUTE_ID (0x0020) +#define ZCL_NUMBER_OF_WEEKLY_TRANSITIONS_ATTRIBUTE_ID (0x0021) +#define ZCL_NUMBER_OF_DAILY_TRANSITIONS_ATTRIBUTE_ID (0x0022) +#define ZCL_TEMPERATURE_SETPOINT_HOLD_ATTRIBUTE_ID (0x0023) +#define ZCL_TEMPERATURE_SETPOINT_HOLD_DURATION_ATTRIBUTE_ID (0x0024) +#define ZCL_THERMOSTAT_PROGRAMMING_OPERATION_MODE_ATTRIBUTE_ID (0x0025) +#define ZCL_THERMOSTAT_RUNNING_STATE_ATTRIBUTE_ID (0x0029) +#define ZCL_SETPOINT_CHANGE_SOURCE_ATTRIBUTE_ID (0x0030) +#define ZCL_SETPOINT_CHANGE_AMOUNT_ATTRIBUTE_ID (0x0031) +#define ZCL_SETPOINT_CHANGE_SOURCE_TIMESTAMP_ATTRIBUTE_ID (0x0032) +#define ZCL_AC_TYPE_ATTRIBUTE_ID (0x0040) +#define ZCL_AC_CAPACITY_ATTRIBUTE_ID (0x0041) +#define ZCL_AC_REFRIGERANT_TYPE_ATTRIBUTE_ID (0x0042) +#define ZCL_AC_COMPRESSOR_ATTRIBUTE_ID (0x0043) +#define ZCL_AC_ERROR_CODE_ATTRIBUTE_ID (0x0044) +#define ZCL_AC_LOUVER_POSITION_ATTRIBUTE_ID (0x0045) +#define ZCL_AC_COIL_TEMPERATURE_ATTRIBUTE_ID (0x0046) +#define ZCL_AC_CAPACITY_FORMAT_ATTRIBUTE_ID (0x0047) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Fan Control + +// Client attributes +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) + +// Server attributes +#define ZCL_FAN_CONTROL_FAN_MODE_ATTRIBUTE_ID (0x0000) +#define ZCL_FAN_CONTROL_FAN_MODE_SEQUENCE_ATTRIBUTE_ID (0x0001) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Dehumidification Control + +// Client attributes +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) + +// Server attributes +#define ZCL_RELATIVE_HUMIDITY_ATTRIBUTE_ID (0x0000) +#define ZCL_DEHUMIDIFICATION_COOLING_ATTRIBUTE_ID (0x0001) +#define ZCL_RH_DEHUMIDIFICATION_SETPOINT_ATTRIBUTE_ID (0x0010) +#define ZCL_RELATIVE_HUMIDITY_MODE_ATTRIBUTE_ID (0x0011) +#define ZCL_DEHUMIDIFICATION_LOCKOUT_ATTRIBUTE_ID (0x0012) +#define ZCL_DEHUMIDIFICATION_HYSTERESIS_ATTRIBUTE_ID (0x0013) +#define ZCL_DEHUMIDIFICATION_MAX_COOL_ATTRIBUTE_ID (0x0014) +#define ZCL_RELATIVE_HUMIDITY_DISPLAY_ATTRIBUTE_ID (0x0015) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Thermostat User Interface Configuration + +// Client attributes +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) + +// Server attributes +#define ZCL_TEMPERATURE_DISPLAY_MODE_ATTRIBUTE_ID (0x0000) +#define ZCL_KEYPAD_LOCKOUT_ATTRIBUTE_ID (0x0001) +#define ZCL_SCHEDULE_PROGRAMMING_VISIBILITY_ATTRIBUTE_ID (0x0002) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Color Control + +// Client attributes +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) + +// Server attributes +#define ZCL_COLOR_CONTROL_CURRENT_HUE_ATTRIBUTE_ID (0x0000) +#define ZCL_COLOR_CONTROL_CURRENT_SATURATION_ATTRIBUTE_ID (0x0001) +#define ZCL_COLOR_CONTROL_REMAINING_TIME_ATTRIBUTE_ID (0x0002) +#define ZCL_COLOR_CONTROL_CURRENT_X_ATTRIBUTE_ID (0x0003) +#define ZCL_COLOR_CONTROL_CURRENT_Y_ATTRIBUTE_ID (0x0004) +#define ZCL_COLOR_CONTROL_DRIFT_COMPENSATION_ATTRIBUTE_ID (0x0005) +#define ZCL_COLOR_CONTROL_COMPENSATION_TEXT_ATTRIBUTE_ID (0x0006) +#define ZCL_COLOR_CONTROL_COLOR_TEMPERATURE_ATTRIBUTE_ID (0x0007) +#define ZCL_COLOR_CONTROL_COLOR_MODE_ATTRIBUTE_ID (0x0008) +#define ZCL_COLOR_CONTROL_OPTIONS_ATTRIBUTE_ID (0x000F) +#define ZCL_COLOR_CONTROL_NUMBER_OF_PRIMARIES_ATTRIBUTE_ID (0x0010) +#define ZCL_COLOR_CONTROL_PRIMARY_1_X_ATTRIBUTE_ID (0x0011) +#define ZCL_COLOR_CONTROL_PRIMARY_1_Y_ATTRIBUTE_ID (0x0012) +#define ZCL_COLOR_CONTROL_PRIMARY_1_INTENSITY_ATTRIBUTE_ID (0x0013) +#define ZCL_COLOR_CONTROL_PRIMARY_2_X_ATTRIBUTE_ID (0x0015) +#define ZCL_COLOR_CONTROL_PRIMARY_2_Y_ATTRIBUTE_ID (0x0016) +#define ZCL_COLOR_CONTROL_PRIMARY_2_INTENSITY_ATTRIBUTE_ID (0x0017) +#define ZCL_COLOR_CONTROL_PRIMARY_3_X_ATTRIBUTE_ID (0x0019) +#define ZCL_COLOR_CONTROL_PRIMARY_3_Y_ATTRIBUTE_ID (0x001A) +#define ZCL_COLOR_CONTROL_PRIMARY_3_INTENSITY_ATTRIBUTE_ID (0x001B) +#define ZCL_COLOR_CONTROL_PRIMARY_4_X_ATTRIBUTE_ID (0x0020) +#define ZCL_COLOR_CONTROL_PRIMARY_4_Y_ATTRIBUTE_ID (0x0021) +#define ZCL_COLOR_CONTROL_PRIMARY_4_INTENSITY_ATTRIBUTE_ID (0x0022) +#define ZCL_COLOR_CONTROL_PRIMARY_5_X_ATTRIBUTE_ID (0x0024) +#define ZCL_COLOR_CONTROL_PRIMARY_5_Y_ATTRIBUTE_ID (0x0025) +#define ZCL_COLOR_CONTROL_PRIMARY_5_INTENSITY_ATTRIBUTE_ID (0x0026) +#define ZCL_COLOR_CONTROL_PRIMARY_6_X_ATTRIBUTE_ID (0x0028) +#define ZCL_COLOR_CONTROL_PRIMARY_6_Y_ATTRIBUTE_ID (0x0029) +#define ZCL_COLOR_CONTROL_PRIMARY_6_INTENSITY_ATTRIBUTE_ID (0x002A) +#define ZCL_COLOR_CONTROL_WHITE_POINT_X_ATTRIBUTE_ID (0x0030) +#define ZCL_COLOR_CONTROL_WHITE_POINT_Y_ATTRIBUTE_ID (0x0031) +#define ZCL_COLOR_CONTROL_COLOR_POINT_R_X_ATTRIBUTE_ID (0x0032) +#define ZCL_COLOR_CONTROL_COLOR_POINT_R_Y_ATTRIBUTE_ID (0x0033) +#define ZCL_COLOR_CONTROL_COLOR_POINT_R_INTENSITY_ATTRIBUTE_ID (0x0034) +#define ZCL_COLOR_CONTROL_COLOR_POINT_G_X_ATTRIBUTE_ID (0x0036) +#define ZCL_COLOR_CONTROL_COLOR_POINT_G_Y_ATTRIBUTE_ID (0x0037) +#define ZCL_COLOR_CONTROL_COLOR_POINT_G_INTENSITY_ATTRIBUTE_ID (0x0038) +#define ZCL_COLOR_CONTROL_COLOR_POINT_B_X_ATTRIBUTE_ID (0x003A) +#define ZCL_COLOR_CONTROL_COLOR_POINT_B_Y_ATTRIBUTE_ID (0x003B) +#define ZCL_COLOR_CONTROL_COLOR_POINT_B_INTENSITY_ATTRIBUTE_ID (0x003C) +#define ZCL_COLOR_CONTROL_ENHANCED_CURRENT_HUE_ATTRIBUTE_ID (0x4000) +#define ZCL_COLOR_CONTROL_ENHANCED_COLOR_MODE_ATTRIBUTE_ID (0x4001) +#define ZCL_COLOR_CONTROL_COLOR_LOOP_ACTIVE_ATTRIBUTE_ID (0x4002) +#define ZCL_COLOR_CONTROL_COLOR_LOOP_DIRECTION_ATTRIBUTE_ID (0x4003) +#define ZCL_COLOR_CONTROL_COLOR_LOOP_TIME_ATTRIBUTE_ID (0x4004) +#define ZCL_COLOR_CONTROL_COLOR_LOOP_START_ENHANCED_HUE_ATTRIBUTE_ID (0x4005) +#define ZCL_COLOR_CONTROL_COLOR_LOOP_STORED_ENHANCED_HUE_ATTRIBUTE_ID (0x4006) +#define ZCL_COLOR_CONTROL_COLOR_CAPABILITIES_ATTRIBUTE_ID (0x400A) +#define ZCL_COLOR_CONTROL_COLOR_TEMP_PHYSICAL_MIN_ATTRIBUTE_ID (0x400B) +#define ZCL_COLOR_CONTROL_COLOR_TEMP_PHYSICAL_MAX_ATTRIBUTE_ID (0x400C) +#define ZCL_COLOR_CONTROL_TEMPERATURE_LEVEL_MIN_MIREDS_ATTRIBUTE_ID (0x400D) +#define ZCL_START_UP_COLOR_TEMPERATURE_MIREDS_ATTRIBUTE_ID (0x4010) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Ballast Configuration + +// Client attributes +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) + +// Server attributes +#define ZCL_PHYSICAL_MIN_LEVEL_ATTRIBUTE_ID (0x0000) +#define ZCL_PHYSICAL_MAX_LEVEL_ATTRIBUTE_ID (0x0001) +#define ZCL_BALLAST_STATUS_ATTRIBUTE_ID (0x0002) +#define ZCL_MIN_LEVEL_ATTRIBUTE_ID (0x0010) +#define ZCL_MAX_LEVEL_ATTRIBUTE_ID (0x0011) +#define ZCL_POWER_ON_LEVEL_ATTRIBUTE_ID (0x0012) +#define ZCL_POWER_ON_FADE_TIME_ATTRIBUTE_ID (0x0013) +#define ZCL_INTRINSIC_BALLAST_FACTOR_ATTRIBUTE_ID (0x0014) +#define ZCL_BALLAST_FACTOR_ADJUSTMENT_ATTRIBUTE_ID (0x0015) +#define ZCL_LAMP_QUALITY_ATTRIBUTE_ID (0x0020) +#define ZCL_LAMP_TYPE_ATTRIBUTE_ID (0x0030) +#define ZCL_LAMP_MANUFACTURER_ATTRIBUTE_ID (0x0031) +#define ZCL_LAMP_RATED_HOURS_ATTRIBUTE_ID (0x0032) +#define ZCL_LAMP_BURN_HOURS_ATTRIBUTE_ID (0x0033) +#define ZCL_LAMP_ALARM_MODE_ATTRIBUTE_ID (0x0034) +#define ZCL_LAMP_BURN_HOURS_TRIP_POINT_ATTRIBUTE_ID (0x0035) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Illuminance Measurement + +// Client attributes +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) + +// Server attributes +#define ZCL_ILLUM_MEASURED_VALUE_ATTRIBUTE_ID (0x0000) +#define ZCL_ILLUM_MIN_MEASURED_VALUE_ATTRIBUTE_ID (0x0001) +#define ZCL_ILLUM_MAX_MEASURED_VALUE_ATTRIBUTE_ID (0x0002) +#define ZCL_ILLUM_TOLERANCE_ATTRIBUTE_ID (0x0003) +#define ZCL_MEASUREMENT_LIGHT_SENSOR_TYPE_ATTRIBUTE_ID (0x0004) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Illuminance Level Sensing + +// Client attributes +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) + +// Server attributes +#define ZCL_LEVEL_STATUS_ATTRIBUTE_ID (0x0000) +#define ZCL_SENSING_LIGHT_SENSOR_TYPE_ATTRIBUTE_ID (0x0001) +#define ZCL_ILLUMINANCE_TARGET_LEVEL_ATTRIBUTE_ID (0x0010) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Temperature Measurement + +// Client attributes +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) + +// Server attributes +#define ZCL_TEMP_MEASURED_VALUE_ATTRIBUTE_ID (0x0000) +#define ZCL_TEMP_MIN_MEASURED_VALUE_ATTRIBUTE_ID (0x0001) +#define ZCL_TEMP_MAX_MEASURED_VALUE_ATTRIBUTE_ID (0x0002) +#define ZCL_TEMP_TOLERANCE_ATTRIBUTE_ID (0x0003) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Pressure Measurement + +// Client attributes +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) + +// Server attributes +#define ZCL_PRESSURE_MEASURED_VALUE_ATTRIBUTE_ID (0x0000) +#define ZCL_PRESSURE_MIN_MEASURED_VALUE_ATTRIBUTE_ID (0x0001) +#define ZCL_PRESSURE_MAX_MEASURED_VALUE_ATTRIBUTE_ID (0x0002) +#define ZCL_PRESSURE_TOLERANCE_ATTRIBUTE_ID (0x0003) +#define ZCL_PRESSURE_SCALED_VALUE_ATTRIBUTE_ID (0x0010) +#define ZCL_PRESSURE_MIN_SCALED_VALUE_ATTRIBUTE_ID (0x0011) +#define ZCL_PRESSURE_MAX_SCALED_VALUE_ATTRIBUTE_ID (0x0012) +#define ZCL_PRESSURE_SCALED_TOLERANCE_ATTRIBUTE_ID (0x0013) +#define ZCL_PRESSURE_SCALE_ATTRIBUTE_ID (0x0014) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Flow Measurement + +// Client attributes +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) + +// Server attributes +#define ZCL_FLOW_MEASURED_VALUE_ATTRIBUTE_ID (0x0000) +#define ZCL_FLOW_MIN_MEASURED_VALUE_ATTRIBUTE_ID (0x0001) +#define ZCL_FLOW_MAX_MEASURED_VALUE_ATTRIBUTE_ID (0x0002) +#define ZCL_FLOW_TOLERANCE_ATTRIBUTE_ID (0x0003) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Relative Humidity Measurement + +// Client attributes +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) + +// Server attributes +#define ZCL_RELATIVE_HUMIDITY_MEASURED_VALUE_ATTRIBUTE_ID (0x0000) +#define ZCL_RELATIVE_HUMIDITY_MIN_MEASURED_VALUE_ATTRIBUTE_ID (0x0001) +#define ZCL_RELATIVE_HUMIDITY_MAX_MEASURED_VALUE_ATTRIBUTE_ID (0x0002) +#define ZCL_RELATIVE_HUMIDITY_TOLERANCE_ATTRIBUTE_ID (0x0003) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Occupancy Sensing + +// Client attributes +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) + +// Server attributes +#define ZCL_OCCUPANCY_ATTRIBUTE_ID (0x0000) +#define ZCL_OCCUPANCY_SENSOR_TYPE_ATTRIBUTE_ID (0x0001) +#define ZCL_OCCUPANCY_SENSOR_TYPE_BITMAP_ATTRIBUTE_ID (0x0002) +#define ZCL_PIR_OCCUPIED_TO_UNOCCUPIED_DELAY_ATTRIBUTE_ID (0x0010) +#define ZCL_PIR_UNOCCUPIED_TO_OCCUPIED_DELAY_ATTRIBUTE_ID (0x0011) +#define ZCL_PIR_UNOCCUPIED_TO_OCCUPIED_THRESHOLD_ATTRIBUTE_ID (0x0012) +#define ZCL_ULTRASONIC_OCCUPIED_TO_UNOCCUPIED_DELAY_ATTRIBUTE_ID (0x0020) +#define ZCL_ULTRASONIC_UNOCCUPIED_TO_OCCUPIED_DELAY_ATTRIBUTE_ID (0x0021) +#define ZCL_ULTRASONIC_UNOCCUPIED_TO_OCCUPIED_THRESHOLD_ATTRIBUTE_ID (0x0022) +#define ZCL_PHYSICAL_CONTACT_OCCUPIED_TO_UNOCCUPIED_DELAY_ATTRIBUTE_ID (0x0030) +#define ZCL_PHYSICAL_CONTACT_UNOCCUPIED_TO_OCCUPIED_DELAY_ATTRIBUTE_ID (0x0031) +#define ZCL_PHYSICAL_CONTACT_UNOCCUPIED_TO_OCCUPIED_THRESHOLD_ATTRIBUTE_ID (0x0032) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Carbon Monoxide Concentration Measurement + +// Client attributes +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) + +// Server attributes +#define ZCL_CARBON_MONOXIDE_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID (0x0000) +#define ZCL_CARBON_MONOXIDE_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID (0x0001) +#define ZCL_CARBON_MONOXIDE_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID (0x0002) +#define ZCL_CARBON_MONOXIDE_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID (0x0003) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Carbon Dioxide Concentration Measurement + +// Client attributes +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) + +// Server attributes +#define ZCL_CARBON_DIOXIDE_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID (0x0000) +#define ZCL_CARBON_DIOXIDE_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID (0x0001) +#define ZCL_CARBON_DIOXIDE_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID (0x0002) +#define ZCL_CARBON_DIOXIDE_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID (0x0003) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Ethylene Concentration Measurement + +// Client attributes +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) + +// Server attributes +#define ZCL_ETHYLENE_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID (0x0000) +#define ZCL_ETHYLENE_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID (0x0001) +#define ZCL_ETHYLENE_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID (0x0002) +#define ZCL_ETHYLENE_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID (0x0003) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Ethylene Oxide Concentration Measurement + +// Client attributes +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) + +// Server attributes +#define ZCL_ETHYLENE_OXIDE_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID (0x0000) +#define ZCL_ETHYLENE_OXIDE_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID (0x0001) +#define ZCL_ETHYLENE_OXIDE_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID (0x0002) +#define ZCL_ETHYLENE_OXIDE_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID (0x0003) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Hydrogen Concentration Measurement + +// Client attributes +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) + +// Server attributes +#define ZCL_HYDROGEN_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID (0x0000) +#define ZCL_HYDROGEN_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID (0x0001) +#define ZCL_HYDROGEN_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID (0x0002) +#define ZCL_HYDROGEN_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID (0x0003) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Hydrogen Sulphide Concentration Measurement + +// Client attributes +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) + +// Server attributes +#define ZCL_HYDROGEN_SULPHIDE_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID (0x0000) +#define ZCL_HYDROGEN_SULPHIDE_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID (0x0001) +#define ZCL_HYDROGEN_SULPHIDE_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID (0x0002) +#define ZCL_HYDROGEN_SULPHIDE_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID (0x0003) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Nitric Oxide Concentration Measurement + +// Client attributes +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) + +// Server attributes +#define ZCL_NITRIC_OXIDE_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID (0x0000) +#define ZCL_NITRIC_OXIDE_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID (0x0001) +#define ZCL_NITRIC_OXIDE_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID (0x0002) +#define ZCL_NITRIC_OXIDE_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID (0x0003) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Nitrogen Dioxide Concentration Measurement + +// Client attributes +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) + +// Server attributes +#define ZCL_NITROGEN_DIOXIDE_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID (0x0000) +#define ZCL_NITROGEN_DIOXIDE_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID (0x0001) +#define ZCL_NITROGEN_DIOXIDE_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID (0x0002) +#define ZCL_NITROGEN_DIOXIDE_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID (0x0003) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Oxygen Concentration Measurement + +// Client attributes +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) + +// Server attributes +#define ZCL_OXYGEN_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID (0x0000) +#define ZCL_OXYGEN_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID (0x0001) +#define ZCL_OXYGEN_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID (0x0002) +#define ZCL_OXYGEN_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID (0x0003) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Ozone Concentration Measurement + +// Client attributes +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) + +// Server attributes +#define ZCL_OZONE_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID (0x0000) +#define ZCL_OZONE_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID (0x0001) +#define ZCL_OZONE_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID (0x0002) +#define ZCL_OZONE_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID (0x0003) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Sulfur Dioxide Concentration Measurement + +// Client attributes +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) + +// Server attributes +#define ZCL_SULFUR_DIOXIDE_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID (0x0000) +#define ZCL_SULFUR_DIOXIDE_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID (0x0001) +#define ZCL_SULFUR_DIOXIDE_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID (0x0002) +#define ZCL_SULFUR_DIOXIDE_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID (0x0003) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Dissolved Oxygen Concentration Measurement + +// Client attributes +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) + +// Server attributes +#define ZCL_DISSOLVED_OXYGEN_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID (0x0000) +#define ZCL_DISSOLVED_OXYGEN_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID (0x0001) +#define ZCL_DISSOLVED_OXYGEN_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID (0x0002) +#define ZCL_DISSOLVED_OXYGEN_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID (0x0003) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Bromate Concentration Measurement + +// Client attributes +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) + +// Server attributes +#define ZCL_BROMATE_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID (0x0000) +#define ZCL_BROMATE_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID (0x0001) +#define ZCL_BROMATE_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID (0x0002) +#define ZCL_BROMATE_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID (0x0003) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Chloramines Concentration Measurement + +// Client attributes +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) + +// Server attributes +#define ZCL_CHLORAMINES_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID (0x0000) +#define ZCL_CHLORAMINES_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID (0x0001) +#define ZCL_CHLORAMINES_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID (0x0002) +#define ZCL_CHLORAMINES_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID (0x0003) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Chlorine Concentration Measurement + +// Client attributes +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) + +// Server attributes +#define ZCL_CHLORINE_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID (0x0000) +#define ZCL_CHLORINE_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID (0x0001) +#define ZCL_CHLORINE_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID (0x0002) +#define ZCL_CHLORINE_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID (0x0003) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Fecal coliform and E. Coli Concentration Measurement + +// Client attributes +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) + +// Server attributes +#define ZCL_FECAL_COLIFORM_AND_E_COLI_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID (0x0000) +#define ZCL_FECAL_COLIFORM_AND_E_COLI_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID (0x0001) +#define ZCL_FECAL_COLIFORM_AND_E_COLI_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID (0x0002) +#define ZCL_FECAL_COLIFORM_AND_E_COLI_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID (0x0003) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Fluoride Concentration Measurement + +// Client attributes +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) + +// Server attributes +#define ZCL_FLUORIDE_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID (0x0000) +#define ZCL_FLUORIDE_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID (0x0001) +#define ZCL_FLUORIDE_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID (0x0002) +#define ZCL_FLUORIDE_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID (0x0003) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Haloacetic Acids Concentration Measurement + +// Client attributes +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) + +// Server attributes +#define ZCL_HALOACETIC_ACIDS_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID (0x0000) +#define ZCL_HALOACETIC_ACIDS_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID (0x0001) +#define ZCL_HALOACETIC_ACIDS_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID (0x0002) +#define ZCL_HALOACETIC_ACIDS_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID (0x0003) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Total Trihalomethanes Concentration Measurement + +// Client attributes +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) + +// Server attributes +#define ZCL_TOTAL_TRIHALOMETHANES_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID (0x0000) +#define ZCL_TOTAL_TRIHALOMETHANES_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID (0x0001) +#define ZCL_TOTAL_TRIHALOMETHANES_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID (0x0002) +#define ZCL_TOTAL_TRIHALOMETHANES_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID (0x0003) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Total Coliform Bacteria Concentration Measurement + +// Client attributes +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) + +// Server attributes +#define ZCL_TOTAL_COLIFORM_BACTERIA_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID (0x0000) +#define ZCL_TOTAL_COLIFORM_BACTERIA_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID (0x0001) +#define ZCL_TOTAL_COLIFORM_BACTERIA_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID (0x0002) +#define ZCL_TOTAL_COLIFORM_BACTERIA_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID (0x0003) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Turbidity Concentration Measurement + +// Client attributes +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) + +// Server attributes +#define ZCL_TURBIDITY_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID (0x0000) +#define ZCL_TURBIDITY_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID (0x0001) +#define ZCL_TURBIDITY_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID (0x0002) +#define ZCL_TURBIDITY_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID (0x0003) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Copper Concentration Measurement + +// Client attributes +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) + +// Server attributes +#define ZCL_COPPER_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID (0x0000) +#define ZCL_COPPER_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID (0x0001) +#define ZCL_COPPER_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID (0x0002) +#define ZCL_COPPER_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID (0x0003) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Lead Concentration Measurement + +// Client attributes +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) + +// Server attributes +#define ZCL_LEAD_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID (0x0000) +#define ZCL_LEAD_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID (0x0001) +#define ZCL_LEAD_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID (0x0002) +#define ZCL_LEAD_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID (0x0003) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Manganese Concentration Measurement + +// Client attributes +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) + +// Server attributes +#define ZCL_MANGANESE_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID (0x0000) +#define ZCL_MANGANESE_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID (0x0001) +#define ZCL_MANGANESE_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID (0x0002) +#define ZCL_MANGANESE_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID (0x0003) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Sulfate Concentration Measurement + +// Client attributes +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) + +// Server attributes +#define ZCL_SULFATE_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID (0x0000) +#define ZCL_SULFATE_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID (0x0001) +#define ZCL_SULFATE_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID (0x0002) +#define ZCL_SULFATE_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID (0x0003) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Bromodichloromethane Concentration Measurement + +// Client attributes +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) + +// Server attributes +#define ZCL_BROMODICHLOROMETHANE_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID (0x0000) +#define ZCL_BROMODICHLOROMETHANE_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID (0x0001) +#define ZCL_BROMODICHLOROMETHANE_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID (0x0002) +#define ZCL_BROMODICHLOROMETHANE_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID (0x0003) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Bromoform Concentration Measurement + +// Client attributes +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) + +// Server attributes +#define ZCL_BROMOFORM_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID (0x0000) +#define ZCL_BROMOFORM_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID (0x0001) +#define ZCL_BROMOFORM_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID (0x0002) +#define ZCL_BROMOFORM_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID (0x0003) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Chlorodibromomethane Concentration Measurement + +// Client attributes +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) + +// Server attributes +#define ZCL_CHLORODIBROMOMETHANE_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID (0x0000) +#define ZCL_CHLORODIBROMOMETHANE_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID (0x0001) +#define ZCL_CHLORODIBROMOMETHANE_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID (0x0002) +#define ZCL_CHLORODIBROMOMETHANE_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID (0x0003) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Chloroform Concentration Measurement + +// Client attributes +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) + +// Server attributes +#define ZCL_CHLOROFORM_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID (0x0000) +#define ZCL_CHLOROFORM_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID (0x0001) +#define ZCL_CHLOROFORM_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID (0x0002) +#define ZCL_CHLOROFORM_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID (0x0003) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Sodium Concentration Measurement + +// Client attributes +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) + +// Server attributes +#define ZCL_SODIUM_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID (0x0000) +#define ZCL_SODIUM_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID (0x0001) +#define ZCL_SODIUM_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID (0x0002) +#define ZCL_SODIUM_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID (0x0003) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: IAS Zone + +// Client attributes +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) + +// Server attributes +#define ZCL_ZONE_STATE_ATTRIBUTE_ID (0x0000) +#define ZCL_ZONE_TYPE_ATTRIBUTE_ID (0x0001) +#define ZCL_ZONE_STATUS_ATTRIBUTE_ID (0x0002) +#define ZCL_IAS_CIE_ADDRESS_ATTRIBUTE_ID (0x0010) +#define ZCL_ZONE_ID_ATTRIBUTE_ID (0x0011) +#define ZCL_NUMBER_OF_ZONE_SENSITIVITY_LEVELS_SUPPORTED_ATTRIBUTE_ID (0x0012) +#define ZCL_CURRENT_ZONE_SENSITIVITY_LEVEL_ATTRIBUTE_ID (0x0013) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: IAS ACE + +// Client attributes +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) + +// Server attributes +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: IAS WD + +// Client attributes +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) + +// Server attributes +#define ZCL_MAX_DURATION_ATTRIBUTE_ID (0x0000) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Generic Tunnel + +// Client attributes +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) + +// Server attributes +#define ZCL_MAXIMUM_INCOMING_TRANSFER_SIZE_ATTRIBUTE_ID (0x0001) +#define ZCL_MAXIMUM_OUTGOING_TRANSFER_SIZE_ATTRIBUTE_ID (0x0002) +#define ZCL_PROTOCOL_ADDRESS_ATTRIBUTE_ID (0x0003) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: BACnet Protocol Tunnel + +// Client attributes +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) + +// Server attributes +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: 11073 Protocol Tunnel + +// Client attributes +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) + +// Server attributes +#define ZCL_DEVICE_ID_LIST_ATTRIBUTE_ID (0x0000) +#define ZCL_MANAGER_TARGET_ATTRIBUTE_ID (0x0001) +#define ZCL_MANAGER_ENDPOINT_ATTRIBUTE_ID (0x0002) +#define ZCL_CONNECTED_ATTRIBUTE_ID (0x0003) +#define ZCL_PREEMPTIBLE_ATTRIBUTE_ID (0x0004) +#define ZCL_IDLE_TIMEOUT_ATTRIBUTE_ID (0x0005) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: ISO 7816 Protocol Tunnel + +// Client attributes +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) + +// Server attributes +#define ZCL_ISO7816_PROTOCOL_TUNNEL_STATUS_ATTRIBUTE_ID (0x0000) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Price + +// Client attributes +#define ZCL_PRICE_INCREASE_RANDOMIZE_MINUTES_ATTRIBUTE_ID (0x0000) +#define ZCL_PRICE_DECREASE_RANDOMIZE_MINUTES_ATTRIBUTE_ID (0x0001) +#define ZCL_COMMODITY_TYPE_CLIENT_ATTRIBUTE_ID (0x0002) +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) + +// Server attributes +#define ZCL_TIER1_PRICE_LABEL_ATTRIBUTE_ID (0x0000) +#define ZCL_TIER2_PRICE_LABEL_ATTRIBUTE_ID (0x0001) +#define ZCL_TIER3_PRICE_LABEL_ATTRIBUTE_ID (0x0002) +#define ZCL_TIER4_PRICE_LABEL_ATTRIBUTE_ID (0x0003) +#define ZCL_TIER5_PRICE_LABEL_ATTRIBUTE_ID (0x0004) +#define ZCL_TIER6_PRICE_LABEL_ATTRIBUTE_ID (0x0005) +#define ZCL_TIER7_PRICE_LABEL_ATTRIBUTE_ID (0x0006) +#define ZCL_TIER8_PRICE_LABEL_ATTRIBUTE_ID (0x0007) +#define ZCL_TIER9_PRICE_LABEL_ATTRIBUTE_ID (0x0008) +#define ZCL_TIER10_PRICE_LABEL_ATTRIBUTE_ID (0x0009) +#define ZCL_TIER11_PRICE_LABEL_ATTRIBUTE_ID (0x000A) +#define ZCL_TIER12_PRICE_LABEL_ATTRIBUTE_ID (0x000B) +#define ZCL_TIER13_PRICE_LABEL_ATTRIBUTE_ID (0x000C) +#define ZCL_TIER14_PRICE_LABEL_ATTRIBUTE_ID (0x000D) +#define ZCL_TIER15_PRICE_LABEL_ATTRIBUTE_ID (0x000E) +#define ZCL_TIER16_PRICE_LABEL_ATTRIBUTE_ID (0x000F) +#define ZCL_TIER17_PRICE_LABEL_ATTRIBUTE_ID (0x0010) +#define ZCL_TIER18_PRICE_LABEL_ATTRIBUTE_ID (0x0011) +#define ZCL_TIER19_PRICE_LABEL_ATTRIBUTE_ID (0x0012) +#define ZCL_TIER20_PRICE_LABEL_ATTRIBUTE_ID (0x0013) +#define ZCL_TIER21_PRICE_LABEL_ATTRIBUTE_ID (0x0014) +#define ZCL_TIER22_PRICE_LABEL_ATTRIBUTE_ID (0x0015) +#define ZCL_TIER23_PRICE_LABEL_ATTRIBUTE_ID (0x0016) +#define ZCL_TIER24_PRICE_LABEL_ATTRIBUTE_ID (0x0017) +#define ZCL_TIER25_PRICE_LABEL_ATTRIBUTE_ID (0x0018) +#define ZCL_TIER26_PRICE_LABEL_ATTRIBUTE_ID (0x0019) +#define ZCL_TIER27_PRICE_LABEL_ATTRIBUTE_ID (0x001A) +#define ZCL_TIER28_PRICE_LABEL_ATTRIBUTE_ID (0x001B) +#define ZCL_TIER29_PRICE_LABEL_ATTRIBUTE_ID (0x001C) +#define ZCL_TIER30_PRICE_LABEL_ATTRIBUTE_ID (0x001D) +#define ZCL_TIER31_PRICE_LABEL_ATTRIBUTE_ID (0x001E) +#define ZCL_TIER32_PRICE_LABEL_ATTRIBUTE_ID (0x001F) +#define ZCL_TIER33_PRICE_LABEL_ATTRIBUTE_ID (0x0020) +#define ZCL_TIER34_PRICE_LABEL_ATTRIBUTE_ID (0x0021) +#define ZCL_TIER35_PRICE_LABEL_ATTRIBUTE_ID (0x0022) +#define ZCL_TIER36_PRICE_LABEL_ATTRIBUTE_ID (0x0023) +#define ZCL_TIER37_PRICE_LABEL_ATTRIBUTE_ID (0x0024) +#define ZCL_TIER38_PRICE_LABEL_ATTRIBUTE_ID (0x0025) +#define ZCL_TIER39_PRICE_LABEL_ATTRIBUTE_ID (0x0026) +#define ZCL_TIER40_PRICE_LABEL_ATTRIBUTE_ID (0x0027) +#define ZCL_TIER41_PRICE_LABEL_ATTRIBUTE_ID (0x0028) +#define ZCL_TIER42_PRICE_LABEL_ATTRIBUTE_ID (0x0029) +#define ZCL_TIER43_PRICE_LABEL_ATTRIBUTE_ID (0x002A) +#define ZCL_TIER44_PRICE_LABEL_ATTRIBUTE_ID (0x002B) +#define ZCL_TIER45_PRICE_LABEL_ATTRIBUTE_ID (0x002C) +#define ZCL_TIER46_PRICE_LABEL_ATTRIBUTE_ID (0x002D) +#define ZCL_TIER47_PRICE_LABEL_ATTRIBUTE_ID (0x002E) +#define ZCL_TIER48_PRICE_LABEL_ATTRIBUTE_ID (0x002F) +#define ZCL_BLOCK1_THRESHOLD_ATTRIBUTE_ID (0x0100) +#define ZCL_BLOCK2_THRESHOLD_ATTRIBUTE_ID (0x0101) +#define ZCL_BLOCK3_THRESHOLD_ATTRIBUTE_ID (0x0102) +#define ZCL_BLOCK4_THRESHOLD_ATTRIBUTE_ID (0x0103) +#define ZCL_BLOCK5_THRESHOLD_ATTRIBUTE_ID (0x0104) +#define ZCL_BLOCK6_THRESHOLD_ATTRIBUTE_ID (0x0105) +#define ZCL_BLOCK7_THRESHOLD_ATTRIBUTE_ID (0x0106) +#define ZCL_BLOCK8_THRESHOLD_ATTRIBUTE_ID (0x0107) +#define ZCL_BLOCK9_THRESHOLD_ATTRIBUTE_ID (0x0108) +#define ZCL_BLOCK10_THRESHOLD_ATTRIBUTE_ID (0x0109) +#define ZCL_BLOCK11_THRESHOLD_ATTRIBUTE_ID (0x010A) +#define ZCL_BLOCK12_THRESHOLD_ATTRIBUTE_ID (0x010B) +#define ZCL_BLOCK13_THRESHOLD_ATTRIBUTE_ID (0x010C) +#define ZCL_BLOCK14_THRESHOLD_ATTRIBUTE_ID (0x010D) +#define ZCL_BLOCK15_THRESHOLD_ATTRIBUTE_ID (0x010E) +#define ZCL_BLOCK_THRESHOLD_COUNT_ATTRIBUTE_ID (0x010F) +#define ZCL_TIER1_BLOCK1_THRESHOLD_ATTRIBUTE_ID (0x0110) +#define ZCL_TIER1_BLOCK2_THRESHOLD_ATTRIBUTE_ID (0x0111) +#define ZCL_TIER1_BLOCK3_THRESHOLD_ATTRIBUTE_ID (0x0112) +#define ZCL_TIER1_BLOCK4_THRESHOLD_ATTRIBUTE_ID (0x0113) +#define ZCL_TIER1_BLOCK5_THRESHOLD_ATTRIBUTE_ID (0x0114) +#define ZCL_TIER1_BLOCK6_THRESHOLD_ATTRIBUTE_ID (0x0115) +#define ZCL_TIER1_BLOCK7_THRESHOLD_ATTRIBUTE_ID (0x0116) +#define ZCL_TIER1_BLOCK8_THRESHOLD_ATTRIBUTE_ID (0x0117) +#define ZCL_TIER1_BLOCK9_THRESHOLD_ATTRIBUTE_ID (0x0118) +#define ZCL_TIER1_BLOCK10_THRESHOLD_ATTRIBUTE_ID (0x0119) +#define ZCL_TIER1_BLOCK11_THRESHOLD_ATTRIBUTE_ID (0x011A) +#define ZCL_TIER1_BLOCK12_THRESHOLD_ATTRIBUTE_ID (0x011B) +#define ZCL_TIER1_BLOCK13_THRESHOLD_ATTRIBUTE_ID (0x011C) +#define ZCL_TIER1_BLOCK14_THRESHOLD_ATTRIBUTE_ID (0x011D) +#define ZCL_TIER1_BLOCK15_THRESHOLD_ATTRIBUTE_ID (0x011E) +#define ZCL_TIER1_BLOCK_THRESHOLD_COUNT_ATTRIBUTE_ID (0x011F) +#define ZCL_TIER2_BLOCK1_THRESHOLD_ATTRIBUTE_ID (0x0120) +#define ZCL_TIER2_BLOCK2_THRESHOLD_ATTRIBUTE_ID (0x0121) +#define ZCL_TIER2_BLOCK3_THRESHOLD_ATTRIBUTE_ID (0x0122) +#define ZCL_TIER2_BLOCK4_THRESHOLD_ATTRIBUTE_ID (0x0123) +#define ZCL_TIER2_BLOCK5_THRESHOLD_ATTRIBUTE_ID (0x0124) +#define ZCL_TIER2_BLOCK6_THRESHOLD_ATTRIBUTE_ID (0x0125) +#define ZCL_TIER2_BLOCK7_THRESHOLD_ATTRIBUTE_ID (0x0126) +#define ZCL_TIER2_BLOCK8_THRESHOLD_ATTRIBUTE_ID (0x0127) +#define ZCL_TIER2_BLOCK9_THRESHOLD_ATTRIBUTE_ID (0x0128) +#define ZCL_TIER2_BLOCK10_THRESHOLD_ATTRIBUTE_ID (0x0129) +#define ZCL_TIER2_BLOCK11_THRESHOLD_ATTRIBUTE_ID (0x012A) +#define ZCL_TIER2_BLOCK12_THRESHOLD_ATTRIBUTE_ID (0x012B) +#define ZCL_TIER2_BLOCK13_THRESHOLD_ATTRIBUTE_ID (0x012C) +#define ZCL_TIER2_BLOCK14_THRESHOLD_ATTRIBUTE_ID (0x012D) +#define ZCL_TIER2_BLOCK15_THRESHOLD_ATTRIBUTE_ID (0x012E) +#define ZCL_TIER2_BLOCK_THRESHOLD_COUNT_ATTRIBUTE_ID (0x012F) +#define ZCL_TIER3_BLOCK1_THRESHOLD_ATTRIBUTE_ID (0x0130) +#define ZCL_TIER3_BLOCK2_THRESHOLD_ATTRIBUTE_ID (0x0131) +#define ZCL_TIER3_BLOCK3_THRESHOLD_ATTRIBUTE_ID (0x0132) +#define ZCL_TIER3_BLOCK4_THRESHOLD_ATTRIBUTE_ID (0x0133) +#define ZCL_TIER3_BLOCK5_THRESHOLD_ATTRIBUTE_ID (0x0134) +#define ZCL_TIER3_BLOCK6_THRESHOLD_ATTRIBUTE_ID (0x0135) +#define ZCL_TIER3_BLOCK7_THRESHOLD_ATTRIBUTE_ID (0x0136) +#define ZCL_TIER3_BLOCK8_THRESHOLD_ATTRIBUTE_ID (0x0137) +#define ZCL_TIER3_BLOCK9_THRESHOLD_ATTRIBUTE_ID (0x0138) +#define ZCL_TIER3_BLOCK10_THRESHOLD_ATTRIBUTE_ID (0x0139) +#define ZCL_TIER3_BLOCK11_THRESHOLD_ATTRIBUTE_ID (0x013A) +#define ZCL_TIER3_BLOCK12_THRESHOLD_ATTRIBUTE_ID (0x013B) +#define ZCL_TIER3_BLOCK13_THRESHOLD_ATTRIBUTE_ID (0x013C) +#define ZCL_TIER3_BLOCK14_THRESHOLD_ATTRIBUTE_ID (0x013D) +#define ZCL_TIER3_BLOCK15_THRESHOLD_ATTRIBUTE_ID (0x013E) +#define ZCL_TIER3_BLOCK_THRESHOLD_COUNT_ATTRIBUTE_ID (0x013F) +#define ZCL_TIER4_BLOCK1_THRESHOLD_ATTRIBUTE_ID (0x0140) +#define ZCL_TIER4_BLOCK2_THRESHOLD_ATTRIBUTE_ID (0x0141) +#define ZCL_TIER4_BLOCK3_THRESHOLD_ATTRIBUTE_ID (0x0142) +#define ZCL_TIER4_BLOCK4_THRESHOLD_ATTRIBUTE_ID (0x0143) +#define ZCL_TIER4_BLOCK5_THRESHOLD_ATTRIBUTE_ID (0x0144) +#define ZCL_TIER4_BLOCK6_THRESHOLD_ATTRIBUTE_ID (0x0145) +#define ZCL_TIER4_BLOCK7_THRESHOLD_ATTRIBUTE_ID (0x0146) +#define ZCL_TIER4_BLOCK8_THRESHOLD_ATTRIBUTE_ID (0x0147) +#define ZCL_TIER4_BLOCK9_THRESHOLD_ATTRIBUTE_ID (0x0148) +#define ZCL_TIER4_BLOCK10_THRESHOLD_ATTRIBUTE_ID (0x0149) +#define ZCL_TIER4_BLOCK11_THRESHOLD_ATTRIBUTE_ID (0x014A) +#define ZCL_TIER4_BLOCK12_THRESHOLD_ATTRIBUTE_ID (0x014B) +#define ZCL_TIER4_BLOCK13_THRESHOLD_ATTRIBUTE_ID (0x014C) +#define ZCL_TIER4_BLOCK14_THRESHOLD_ATTRIBUTE_ID (0x014D) +#define ZCL_TIER4_BLOCK15_THRESHOLD_ATTRIBUTE_ID (0x014E) +#define ZCL_TIER4_BLOCK_THRESHOLD_COUNT_ATTRIBUTE_ID (0x014F) +#define ZCL_TIER5_BLOCK1_THRESHOLD_ATTRIBUTE_ID (0x0150) +#define ZCL_TIER5_BLOCK2_THRESHOLD_ATTRIBUTE_ID (0x0151) +#define ZCL_TIER5_BLOCK3_THRESHOLD_ATTRIBUTE_ID (0x0152) +#define ZCL_TIER5_BLOCK4_THRESHOLD_ATTRIBUTE_ID (0x0153) +#define ZCL_TIER5_BLOCK5_THRESHOLD_ATTRIBUTE_ID (0x0154) +#define ZCL_TIER5_BLOCK6_THRESHOLD_ATTRIBUTE_ID (0x0155) +#define ZCL_TIER5_BLOCK7_THRESHOLD_ATTRIBUTE_ID (0x0156) +#define ZCL_TIER5_BLOCK8_THRESHOLD_ATTRIBUTE_ID (0x0157) +#define ZCL_TIER5_BLOCK9_THRESHOLD_ATTRIBUTE_ID (0x0158) +#define ZCL_TIER5_BLOCK10_THRESHOLD_ATTRIBUTE_ID (0x0159) +#define ZCL_TIER5_BLOCK11_THRESHOLD_ATTRIBUTE_ID (0x015A) +#define ZCL_TIER5_BLOCK12_THRESHOLD_ATTRIBUTE_ID (0x015B) +#define ZCL_TIER5_BLOCK13_THRESHOLD_ATTRIBUTE_ID (0x015C) +#define ZCL_TIER5_BLOCK14_THRESHOLD_ATTRIBUTE_ID (0x015D) +#define ZCL_TIER5_BLOCK15_THRESHOLD_ATTRIBUTE_ID (0x015E) +#define ZCL_TIER5_BLOCK_THRESHOLD_COUNT_ATTRIBUTE_ID (0x015F) +#define ZCL_TIER6_BLOCK1_THRESHOLD_ATTRIBUTE_ID (0x0160) +#define ZCL_TIER6_BLOCK2_THRESHOLD_ATTRIBUTE_ID (0x0161) +#define ZCL_TIER6_BLOCK3_THRESHOLD_ATTRIBUTE_ID (0x0162) +#define ZCL_TIER6_BLOCK4_THRESHOLD_ATTRIBUTE_ID (0x0163) +#define ZCL_TIER6_BLOCK5_THRESHOLD_ATTRIBUTE_ID (0x0164) +#define ZCL_TIER6_BLOCK6_THRESHOLD_ATTRIBUTE_ID (0x0165) +#define ZCL_TIER6_BLOCK7_THRESHOLD_ATTRIBUTE_ID (0x0166) +#define ZCL_TIER6_BLOCK8_THRESHOLD_ATTRIBUTE_ID (0x0167) +#define ZCL_TIER6_BLOCK9_THRESHOLD_ATTRIBUTE_ID (0x0168) +#define ZCL_TIER6_BLOCK10_THRESHOLD_ATTRIBUTE_ID (0x0169) +#define ZCL_TIER6_BLOCK11_THRESHOLD_ATTRIBUTE_ID (0x016A) +#define ZCL_TIER6_BLOCK12_THRESHOLD_ATTRIBUTE_ID (0x016B) +#define ZCL_TIER6_BLOCK13_THRESHOLD_ATTRIBUTE_ID (0x016C) +#define ZCL_TIER6_BLOCK14_THRESHOLD_ATTRIBUTE_ID (0x016D) +#define ZCL_TIER6_BLOCK15_THRESHOLD_ATTRIBUTE_ID (0x016E) +#define ZCL_TIER6_BLOCK_THRESHOLD_COUNT_ATTRIBUTE_ID (0x016F) +#define ZCL_TIER7_BLOCK1_THRESHOLD_ATTRIBUTE_ID (0x0170) +#define ZCL_TIER7_BLOCK2_THRESHOLD_ATTRIBUTE_ID (0x0171) +#define ZCL_TIER7_BLOCK3_THRESHOLD_ATTRIBUTE_ID (0x0172) +#define ZCL_TIER7_BLOCK4_THRESHOLD_ATTRIBUTE_ID (0x0173) +#define ZCL_TIER7_BLOCK5_THRESHOLD_ATTRIBUTE_ID (0x0174) +#define ZCL_TIER7_BLOCK6_THRESHOLD_ATTRIBUTE_ID (0x0175) +#define ZCL_TIER7_BLOCK7_THRESHOLD_ATTRIBUTE_ID (0x0176) +#define ZCL_TIER7_BLOCK8_THRESHOLD_ATTRIBUTE_ID (0x0177) +#define ZCL_TIER7_BLOCK9_THRESHOLD_ATTRIBUTE_ID (0x0178) +#define ZCL_TIER7_BLOCK10_THRESHOLD_ATTRIBUTE_ID (0x0179) +#define ZCL_TIER7_BLOCK11_THRESHOLD_ATTRIBUTE_ID (0x017A) +#define ZCL_TIER7_BLOCK12_THRESHOLD_ATTRIBUTE_ID (0x017B) +#define ZCL_TIER7_BLOCK13_THRESHOLD_ATTRIBUTE_ID (0x017C) +#define ZCL_TIER7_BLOCK14_THRESHOLD_ATTRIBUTE_ID (0x017D) +#define ZCL_TIER7_BLOCK15_THRESHOLD_ATTRIBUTE_ID (0x017E) +#define ZCL_TIER7_BLOCK_THRESHOLD_COUNT_ATTRIBUTE_ID (0x017F) +#define ZCL_TIER8_BLOCK1_THRESHOLD_ATTRIBUTE_ID (0x0180) +#define ZCL_TIER8_BLOCK2_THRESHOLD_ATTRIBUTE_ID (0x0181) +#define ZCL_TIER8_BLOCK3_THRESHOLD_ATTRIBUTE_ID (0x0182) +#define ZCL_TIER8_BLOCK4_THRESHOLD_ATTRIBUTE_ID (0x0183) +#define ZCL_TIER8_BLOCK5_THRESHOLD_ATTRIBUTE_ID (0x0184) +#define ZCL_TIER8_BLOCK6_THRESHOLD_ATTRIBUTE_ID (0x0185) +#define ZCL_TIER8_BLOCK7_THRESHOLD_ATTRIBUTE_ID (0x0186) +#define ZCL_TIER8_BLOCK8_THRESHOLD_ATTRIBUTE_ID (0x0187) +#define ZCL_TIER8_BLOCK9_THRESHOLD_ATTRIBUTE_ID (0x0188) +#define ZCL_TIER8_BLOCK10_THRESHOLD_ATTRIBUTE_ID (0x0189) +#define ZCL_TIER8_BLOCK11_THRESHOLD_ATTRIBUTE_ID (0x018A) +#define ZCL_TIER8_BLOCK12_THRESHOLD_ATTRIBUTE_ID (0x018B) +#define ZCL_TIER8_BLOCK13_THRESHOLD_ATTRIBUTE_ID (0x018C) +#define ZCL_TIER8_BLOCK14_THRESHOLD_ATTRIBUTE_ID (0x018D) +#define ZCL_TIER8_BLOCK15_THRESHOLD_ATTRIBUTE_ID (0x018E) +#define ZCL_TIER8_BLOCK_THRESHOLD_COUNT_ATTRIBUTE_ID (0x018F) +#define ZCL_TIER9_BLOCK1_THRESHOLD_ATTRIBUTE_ID (0x0190) +#define ZCL_TIER9_BLOCK2_THRESHOLD_ATTRIBUTE_ID (0x0191) +#define ZCL_TIER9_BLOCK3_THRESHOLD_ATTRIBUTE_ID (0x0192) +#define ZCL_TIER9_BLOCK4_THRESHOLD_ATTRIBUTE_ID (0x0193) +#define ZCL_TIER9_BLOCK5_THRESHOLD_ATTRIBUTE_ID (0x0194) +#define ZCL_TIER9_BLOCK6_THRESHOLD_ATTRIBUTE_ID (0x0195) +#define ZCL_TIER9_BLOCK7_THRESHOLD_ATTRIBUTE_ID (0x0196) +#define ZCL_TIER9_BLOCK8_THRESHOLD_ATTRIBUTE_ID (0x0197) +#define ZCL_TIER9_BLOCK9_THRESHOLD_ATTRIBUTE_ID (0x0198) +#define ZCL_TIER9_BLOCK10_THRESHOLD_ATTRIBUTE_ID (0x0199) +#define ZCL_TIER9_BLOCK11_THRESHOLD_ATTRIBUTE_ID (0x019A) +#define ZCL_TIER9_BLOCK12_THRESHOLD_ATTRIBUTE_ID (0x019B) +#define ZCL_TIER9_BLOCK13_THRESHOLD_ATTRIBUTE_ID (0x019C) +#define ZCL_TIER9_BLOCK14_THRESHOLD_ATTRIBUTE_ID (0x019D) +#define ZCL_TIER9_BLOCK15_THRESHOLD_ATTRIBUTE_ID (0x019E) +#define ZCL_TIER9_BLOCK_THRESHOLD_COUNT_ATTRIBUTE_ID (0x019F) +#define ZCL_TIER10_BLOCK1_THRESHOLD_ATTRIBUTE_ID (0x01A0) +#define ZCL_TIER10_BLOCK2_THRESHOLD_ATTRIBUTE_ID (0x01A1) +#define ZCL_TIER10_BLOCK3_THRESHOLD_ATTRIBUTE_ID (0x01A2) +#define ZCL_TIER10_BLOCK4_THRESHOLD_ATTRIBUTE_ID (0x01A3) +#define ZCL_TIER10_BLOCK5_THRESHOLD_ATTRIBUTE_ID (0x01A4) +#define ZCL_TIER10_BLOCK6_THRESHOLD_ATTRIBUTE_ID (0x01A5) +#define ZCL_TIER10_BLOCK7_THRESHOLD_ATTRIBUTE_ID (0x01A6) +#define ZCL_TIER10_BLOCK8_THRESHOLD_ATTRIBUTE_ID (0x01A7) +#define ZCL_TIER10_BLOCK9_THRESHOLD_ATTRIBUTE_ID (0x01A8) +#define ZCL_TIER10_BLOCK10_THRESHOLD_ATTRIBUTE_ID (0x01A9) +#define ZCL_TIER10_BLOCK11_THRESHOLD_ATTRIBUTE_ID (0x01AA) +#define ZCL_TIER10_BLOCK12_THRESHOLD_ATTRIBUTE_ID (0x01AB) +#define ZCL_TIER10_BLOCK13_THRESHOLD_ATTRIBUTE_ID (0x01AC) +#define ZCL_TIER10_BLOCK14_THRESHOLD_ATTRIBUTE_ID (0x01AD) +#define ZCL_TIER10_BLOCK15_THRESHOLD_ATTRIBUTE_ID (0x01AE) +#define ZCL_TIER10_BLOCK_THRESHOLD_COUNT_ATTRIBUTE_ID (0x01AF) +#define ZCL_TIER11_BLOCK1_THRESHOLD_ATTRIBUTE_ID (0x01B0) +#define ZCL_TIER11_BLOCK2_THRESHOLD_ATTRIBUTE_ID (0x01B1) +#define ZCL_TIER11_BLOCK3_THRESHOLD_ATTRIBUTE_ID (0x01B2) +#define ZCL_TIER11_BLOCK4_THRESHOLD_ATTRIBUTE_ID (0x01B3) +#define ZCL_TIER11_BLOCK5_THRESHOLD_ATTRIBUTE_ID (0x01B4) +#define ZCL_TIER11_BLOCK6_THRESHOLD_ATTRIBUTE_ID (0x01B5) +#define ZCL_TIER11_BLOCK7_THRESHOLD_ATTRIBUTE_ID (0x01B6) +#define ZCL_TIER11_BLOCK8_THRESHOLD_ATTRIBUTE_ID (0x01B7) +#define ZCL_TIER11_BLOCK9_THRESHOLD_ATTRIBUTE_ID (0x01B8) +#define ZCL_TIER11_BLOCK10_THRESHOLD_ATTRIBUTE_ID (0x01B9) +#define ZCL_TIER11_BLOCK11_THRESHOLD_ATTRIBUTE_ID (0x01BA) +#define ZCL_TIER11_BLOCK12_THRESHOLD_ATTRIBUTE_ID (0x01BB) +#define ZCL_TIER11_BLOCK13_THRESHOLD_ATTRIBUTE_ID (0x01BC) +#define ZCL_TIER11_BLOCK14_THRESHOLD_ATTRIBUTE_ID (0x01BD) +#define ZCL_TIER11_BLOCK15_THRESHOLD_ATTRIBUTE_ID (0x01BE) +#define ZCL_TIER11_BLOCK_THRESHOLD_COUNT_ATTRIBUTE_ID (0x01BF) +#define ZCL_TIER12_BLOCK1_THRESHOLD_ATTRIBUTE_ID (0x01C0) +#define ZCL_TIER12_BLOCK2_THRESHOLD_ATTRIBUTE_ID (0x01C1) +#define ZCL_TIER12_BLOCK3_THRESHOLD_ATTRIBUTE_ID (0x01C2) +#define ZCL_TIER12_BLOCK4_THRESHOLD_ATTRIBUTE_ID (0x01C3) +#define ZCL_TIER12_BLOCK5_THRESHOLD_ATTRIBUTE_ID (0x01C4) +#define ZCL_TIER12_BLOCK6_THRESHOLD_ATTRIBUTE_ID (0x01C5) +#define ZCL_TIER12_BLOCK7_THRESHOLD_ATTRIBUTE_ID (0x01C6) +#define ZCL_TIER12_BLOCK8_THRESHOLD_ATTRIBUTE_ID (0x01C7) +#define ZCL_TIER12_BLOCK9_THRESHOLD_ATTRIBUTE_ID (0x01C8) +#define ZCL_TIER12_BLOCK10_THRESHOLD_ATTRIBUTE_ID (0x01C9) +#define ZCL_TIER12_BLOCK11_THRESHOLD_ATTRIBUTE_ID (0x01CA) +#define ZCL_TIER12_BLOCK12_THRESHOLD_ATTRIBUTE_ID (0x01CB) +#define ZCL_TIER12_BLOCK13_THRESHOLD_ATTRIBUTE_ID (0x01CC) +#define ZCL_TIER12_BLOCK14_THRESHOLD_ATTRIBUTE_ID (0x01CD) +#define ZCL_TIER12_BLOCK15_THRESHOLD_ATTRIBUTE_ID (0x01CE) +#define ZCL_TIER12_BLOCK_THRESHOLD_COUNT_ATTRIBUTE_ID (0x01CF) +#define ZCL_TIER13_BLOCK1_THRESHOLD_ATTRIBUTE_ID (0x01D0) +#define ZCL_TIER13_BLOCK2_THRESHOLD_ATTRIBUTE_ID (0x01D1) +#define ZCL_TIER13_BLOCK3_THRESHOLD_ATTRIBUTE_ID (0x01D2) +#define ZCL_TIER13_BLOCK4_THRESHOLD_ATTRIBUTE_ID (0x01D3) +#define ZCL_TIER13_BLOCK5_THRESHOLD_ATTRIBUTE_ID (0x01D4) +#define ZCL_TIER13_BLOCK6_THRESHOLD_ATTRIBUTE_ID (0x01D5) +#define ZCL_TIER13_BLOCK7_THRESHOLD_ATTRIBUTE_ID (0x01D6) +#define ZCL_TIER13_BLOCK8_THRESHOLD_ATTRIBUTE_ID (0x01D7) +#define ZCL_TIER13_BLOCK9_THRESHOLD_ATTRIBUTE_ID (0x01D8) +#define ZCL_TIER13_BLOCK10_THRESHOLD_ATTRIBUTE_ID (0x01D9) +#define ZCL_TIER13_BLOCK11_THRESHOLD_ATTRIBUTE_ID (0x01DA) +#define ZCL_TIER13_BLOCK12_THRESHOLD_ATTRIBUTE_ID (0x01DB) +#define ZCL_TIER13_BLOCK13_THRESHOLD_ATTRIBUTE_ID (0x01DC) +#define ZCL_TIER13_BLOCK14_THRESHOLD_ATTRIBUTE_ID (0x01DD) +#define ZCL_TIER13_BLOCK15_THRESHOLD_ATTRIBUTE_ID (0x01DE) +#define ZCL_TIER13_BLOCK_THRESHOLD_COUNT_ATTRIBUTE_ID (0x01DF) +#define ZCL_TIER14_BLOCK1_THRESHOLD_ATTRIBUTE_ID (0x01E0) +#define ZCL_TIER14_BLOCK2_THRESHOLD_ATTRIBUTE_ID (0x01E1) +#define ZCL_TIER14_BLOCK3_THRESHOLD_ATTRIBUTE_ID (0x01E2) +#define ZCL_TIER14_BLOCK4_THRESHOLD_ATTRIBUTE_ID (0x01E3) +#define ZCL_TIER14_BLOCK5_THRESHOLD_ATTRIBUTE_ID (0x01E4) +#define ZCL_TIER14_BLOCK6_THRESHOLD_ATTRIBUTE_ID (0x01E5) +#define ZCL_TIER14_BLOCK7_THRESHOLD_ATTRIBUTE_ID (0x01E6) +#define ZCL_TIER14_BLOCK8_THRESHOLD_ATTRIBUTE_ID (0x01E7) +#define ZCL_TIER14_BLOCK9_THRESHOLD_ATTRIBUTE_ID (0x01E8) +#define ZCL_TIER14_BLOCK10_THRESHOLD_ATTRIBUTE_ID (0x01E9) +#define ZCL_TIER14_BLOCK11_THRESHOLD_ATTRIBUTE_ID (0x01EA) +#define ZCL_TIER14_BLOCK12_THRESHOLD_ATTRIBUTE_ID (0x01EB) +#define ZCL_TIER14_BLOCK13_THRESHOLD_ATTRIBUTE_ID (0x01EC) +#define ZCL_TIER14_BLOCK14_THRESHOLD_ATTRIBUTE_ID (0x01ED) +#define ZCL_TIER14_BLOCK15_THRESHOLD_ATTRIBUTE_ID (0x01EE) +#define ZCL_TIER14_BLOCK_THRESHOLD_COUNT_ATTRIBUTE_ID (0x01EF) +#define ZCL_TIER15_BLOCK1_THRESHOLD_ATTRIBUTE_ID (0x01F0) +#define ZCL_TIER15_BLOCK2_THRESHOLD_ATTRIBUTE_ID (0x01F1) +#define ZCL_TIER15_BLOCK3_THRESHOLD_ATTRIBUTE_ID (0x01F2) +#define ZCL_TIER15_BLOCK4_THRESHOLD_ATTRIBUTE_ID (0x01F3) +#define ZCL_TIER15_BLOCK5_THRESHOLD_ATTRIBUTE_ID (0x01F4) +#define ZCL_TIER15_BLOCK6_THRESHOLD_ATTRIBUTE_ID (0x01F5) +#define ZCL_TIER15_BLOCK7_THRESHOLD_ATTRIBUTE_ID (0x01F6) +#define ZCL_TIER15_BLOCK8_THRESHOLD_ATTRIBUTE_ID (0x01F7) +#define ZCL_TIER15_BLOCK9_THRESHOLD_ATTRIBUTE_ID (0x01F8) +#define ZCL_TIER15_BLOCK10_THRESHOLD_ATTRIBUTE_ID (0x01F9) +#define ZCL_TIER15_BLOCK11_THRESHOLD_ATTRIBUTE_ID (0x01FA) +#define ZCL_TIER15_BLOCK12_THRESHOLD_ATTRIBUTE_ID (0x01FB) +#define ZCL_TIER15_BLOCK13_THRESHOLD_ATTRIBUTE_ID (0x01FC) +#define ZCL_TIER15_BLOCK14_THRESHOLD_ATTRIBUTE_ID (0x01FD) +#define ZCL_TIER15_BLOCK15_THRESHOLD_ATTRIBUTE_ID (0x01FE) +#define ZCL_TIER15_BLOCK_THRESHOLD_COUNT_ATTRIBUTE_ID (0x01FF) +#define ZCL_START_OF_BLOCK_PERIOD_ATTRIBUTE_ID (0x0200) +#define ZCL_BLOCK_PERIOD_DURATION_MINUTES_ATTRIBUTE_ID (0x0201) +#define ZCL_THRESHOLD_MULTIPLIER_ATTRIBUTE_ID (0x0202) +#define ZCL_THRESHOLD_DIVISOR_ATTRIBUTE_ID (0x0203) +#define ZCL_BLOCK_PERIOD_DURATION_TYPE_ATTRIBUTE_ID (0x0204) +#define ZCL_COMMODITY_TYPE_SERVER_ATTRIBUTE_ID (0x0300) +#define ZCL_STANDING_CHARGE_ATTRIBUTE_ID (0x0301) +#define ZCL_CONVERSION_FACTOR_ATTRIBUTE_ID (0x0302) +#define ZCL_CONVERSION_FACTOR_TRAILING_DIGIT_ATTRIBUTE_ID (0x0303) +#define ZCL_CALORIFIC_VALUE_ATTRIBUTE_ID (0x0304) +#define ZCL_CALORIFIC_VALUE_UNIT_ATTRIBUTE_ID (0x0305) +#define ZCL_CALORIFIC_VALUE_TRAILING_DIGIT_ATTRIBUTE_ID (0x0306) +#define ZCL_NO_TIER_BLOCK1_PRICE_ATTRIBUTE_ID (0x0400) +#define ZCL_NO_TIER_BLOCK2_PRICE_ATTRIBUTE_ID (0x0401) +#define ZCL_NO_TIER_BLOCK3_PRICE_ATTRIBUTE_ID (0x0402) +#define ZCL_NO_TIER_BLOCK4_PRICE_ATTRIBUTE_ID (0x0403) +#define ZCL_NO_TIER_BLOCK5_PRICE_ATTRIBUTE_ID (0x0404) +#define ZCL_NO_TIER_BLOCK6_PRICE_ATTRIBUTE_ID (0x0405) +#define ZCL_NO_TIER_BLOCK7_PRICE_ATTRIBUTE_ID (0x0406) +#define ZCL_NO_TIER_BLOCK8_PRICE_ATTRIBUTE_ID (0x0407) +#define ZCL_NO_TIER_BLOCK9_PRICE_ATTRIBUTE_ID (0x0408) +#define ZCL_NO_TIER_BLOCK10_PRICE_ATTRIBUTE_ID (0x0409) +#define ZCL_NO_TIER_BLOCK11_PRICE_ATTRIBUTE_ID (0x040A) +#define ZCL_NO_TIER_BLOCK12_PRICE_ATTRIBUTE_ID (0x040B) +#define ZCL_NO_TIER_BLOCK13_PRICE_ATTRIBUTE_ID (0x040C) +#define ZCL_NO_TIER_BLOCK14_PRICE_ATTRIBUTE_ID (0x040D) +#define ZCL_NO_TIER_BLOCK15_PRICE_ATTRIBUTE_ID (0x040E) +#define ZCL_NO_TIER_BLOCK16_PRICE_ATTRIBUTE_ID (0x040F) +#define ZCL_TIER1_BLOCK1_PRICE_ATTRIBUTE_ID (0x0410) +#define ZCL_TIER1_BLOCK2_PRICE_ATTRIBUTE_ID (0x0411) +#define ZCL_TIER1_BLOCK3_PRICE_ATTRIBUTE_ID (0x0412) +#define ZCL_TIER1_BLOCK4_PRICE_ATTRIBUTE_ID (0x0413) +#define ZCL_TIER1_BLOCK5_PRICE_ATTRIBUTE_ID (0x0414) +#define ZCL_TIER1_BLOCK6_PRICE_ATTRIBUTE_ID (0x0415) +#define ZCL_TIER1_BLOCK7_PRICE_ATTRIBUTE_ID (0x0416) +#define ZCL_TIER1_BLOCK8_PRICE_ATTRIBUTE_ID (0x0417) +#define ZCL_TIER1_BLOCK9_PRICE_ATTRIBUTE_ID (0x0418) +#define ZCL_TIER1_BLOCK10_PRICE_ATTRIBUTE_ID (0x0419) +#define ZCL_TIER1_BLOCK11_PRICE_ATTRIBUTE_ID (0x041A) +#define ZCL_TIER1_BLOCK12_PRICE_ATTRIBUTE_ID (0x041B) +#define ZCL_TIER1_BLOCK13_PRICE_ATTRIBUTE_ID (0x041C) +#define ZCL_TIER1_BLOCK14_PRICE_ATTRIBUTE_ID (0x041D) +#define ZCL_TIER1_BLOCK15_PRICE_ATTRIBUTE_ID (0x041E) +#define ZCL_TIER1_BLOCK16_PRICE_ATTRIBUTE_ID (0x041F) +#define ZCL_TIER2_BLOCK1_PRICE_ATTRIBUTE_ID (0x0420) +#define ZCL_TIER2_BLOCK2_PRICE_ATTRIBUTE_ID (0x0421) +#define ZCL_TIER2_BLOCK3_PRICE_ATTRIBUTE_ID (0x0422) +#define ZCL_TIER2_BLOCK4_PRICE_ATTRIBUTE_ID (0x0423) +#define ZCL_TIER2_BLOCK5_PRICE_ATTRIBUTE_ID (0x0424) +#define ZCL_TIER2_BLOCK6_PRICE_ATTRIBUTE_ID (0x0425) +#define ZCL_TIER2_BLOCK7_PRICE_ATTRIBUTE_ID (0x0426) +#define ZCL_TIER2_BLOCK8_PRICE_ATTRIBUTE_ID (0x0427) +#define ZCL_TIER2_BLOCK9_PRICE_ATTRIBUTE_ID (0x0428) +#define ZCL_TIER2_BLOCK10_PRICE_ATTRIBUTE_ID (0x0429) +#define ZCL_TIER2_BLOCK11_PRICE_ATTRIBUTE_ID (0x042A) +#define ZCL_TIER2_BLOCK12_PRICE_ATTRIBUTE_ID (0x042B) +#define ZCL_TIER2_BLOCK13_PRICE_ATTRIBUTE_ID (0x042C) +#define ZCL_TIER2_BLOCK14_PRICE_ATTRIBUTE_ID (0x042D) +#define ZCL_TIER2_BLOCK15_PRICE_ATTRIBUTE_ID (0x042E) +#define ZCL_TIER2_BLOCK16_PRICE_ATTRIBUTE_ID (0x042F) +#define ZCL_TIER3_BLOCK1_PRICE_ATTRIBUTE_ID (0x0430) +#define ZCL_TIER3_BLOCK2_PRICE_ATTRIBUTE_ID (0x0431) +#define ZCL_TIER3_BLOCK3_PRICE_ATTRIBUTE_ID (0x0432) +#define ZCL_TIER3_BLOCK4_PRICE_ATTRIBUTE_ID (0x0433) +#define ZCL_TIER3_BLOCK5_PRICE_ATTRIBUTE_ID (0x0434) +#define ZCL_TIER3_BLOCK6_PRICE_ATTRIBUTE_ID (0x0435) +#define ZCL_TIER3_BLOCK7_PRICE_ATTRIBUTE_ID (0x0436) +#define ZCL_TIER3_BLOCK8_PRICE_ATTRIBUTE_ID (0x0437) +#define ZCL_TIER3_BLOCK9_PRICE_ATTRIBUTE_ID (0x0438) +#define ZCL_TIER3_BLOCK10_PRICE_ATTRIBUTE_ID (0x0439) +#define ZCL_TIER3_BLOCK11_PRICE_ATTRIBUTE_ID (0x043A) +#define ZCL_TIER3_BLOCK12_PRICE_ATTRIBUTE_ID (0x043B) +#define ZCL_TIER3_BLOCK13_PRICE_ATTRIBUTE_ID (0x043C) +#define ZCL_TIER3_BLOCK14_PRICE_ATTRIBUTE_ID (0x043D) +#define ZCL_TIER3_BLOCK15_PRICE_ATTRIBUTE_ID (0x043E) +#define ZCL_TIER3_BLOCK16_PRICE_ATTRIBUTE_ID (0x043F) +#define ZCL_TIER4_BLOCK1_PRICE_ATTRIBUTE_ID (0x0440) +#define ZCL_TIER4_BLOCK2_PRICE_ATTRIBUTE_ID (0x0441) +#define ZCL_TIER4_BLOCK3_PRICE_ATTRIBUTE_ID (0x0442) +#define ZCL_TIER4_BLOCK4_PRICE_ATTRIBUTE_ID (0x0443) +#define ZCL_TIER4_BLOCK5_PRICE_ATTRIBUTE_ID (0x0444) +#define ZCL_TIER4_BLOCK6_PRICE_ATTRIBUTE_ID (0x0445) +#define ZCL_TIER4_BLOCK7_PRICE_ATTRIBUTE_ID (0x0446) +#define ZCL_TIER4_BLOCK8_PRICE_ATTRIBUTE_ID (0x0447) +#define ZCL_TIER4_BLOCK9_PRICE_ATTRIBUTE_ID (0x0448) +#define ZCL_TIER4_BLOCK10_PRICE_ATTRIBUTE_ID (0x0449) +#define ZCL_TIER4_BLOCK11_PRICE_ATTRIBUTE_ID (0x044A) +#define ZCL_TIER4_BLOCK12_PRICE_ATTRIBUTE_ID (0x044B) +#define ZCL_TIER4_BLOCK13_PRICE_ATTRIBUTE_ID (0x044C) +#define ZCL_TIER4_BLOCK14_PRICE_ATTRIBUTE_ID (0x044D) +#define ZCL_TIER4_BLOCK15_PRICE_ATTRIBUTE_ID (0x044E) +#define ZCL_TIER4_BLOCK16_PRICE_ATTRIBUTE_ID (0x044F) +#define ZCL_TIER5_BLOCK1_PRICE_ATTRIBUTE_ID (0x0450) +#define ZCL_TIER5_BLOCK2_PRICE_ATTRIBUTE_ID (0x0451) +#define ZCL_TIER5_BLOCK3_PRICE_ATTRIBUTE_ID (0x0452) +#define ZCL_TIER5_BLOCK4_PRICE_ATTRIBUTE_ID (0x0453) +#define ZCL_TIER5_BLOCK5_PRICE_ATTRIBUTE_ID (0x0454) +#define ZCL_TIER5_BLOCK6_PRICE_ATTRIBUTE_ID (0x0455) +#define ZCL_TIER5_BLOCK7_PRICE_ATTRIBUTE_ID (0x0456) +#define ZCL_TIER5_BLOCK8_PRICE_ATTRIBUTE_ID (0x0457) +#define ZCL_TIER5_BLOCK9_PRICE_ATTRIBUTE_ID (0x0458) +#define ZCL_TIER5_BLOCK10_PRICE_ATTRIBUTE_ID (0x0459) +#define ZCL_TIER5_BLOCK11_PRICE_ATTRIBUTE_ID (0x045A) +#define ZCL_TIER5_BLOCK12_PRICE_ATTRIBUTE_ID (0x045B) +#define ZCL_TIER5_BLOCK13_PRICE_ATTRIBUTE_ID (0x045C) +#define ZCL_TIER5_BLOCK14_PRICE_ATTRIBUTE_ID (0x045D) +#define ZCL_TIER5_BLOCK15_PRICE_ATTRIBUTE_ID (0x045E) +#define ZCL_TIER5_BLOCK16_PRICE_ATTRIBUTE_ID (0x045F) +#define ZCL_TIER6_BLOCK1_PRICE_ATTRIBUTE_ID (0x0460) +#define ZCL_TIER6_BLOCK2_PRICE_ATTRIBUTE_ID (0x0461) +#define ZCL_TIER6_BLOCK3_PRICE_ATTRIBUTE_ID (0x0462) +#define ZCL_TIER6_BLOCK4_PRICE_ATTRIBUTE_ID (0x0463) +#define ZCL_TIER6_BLOCK5_PRICE_ATTRIBUTE_ID (0x0464) +#define ZCL_TIER6_BLOCK6_PRICE_ATTRIBUTE_ID (0x0465) +#define ZCL_TIER6_BLOCK7_PRICE_ATTRIBUTE_ID (0x0466) +#define ZCL_TIER6_BLOCK8_PRICE_ATTRIBUTE_ID (0x0467) +#define ZCL_TIER6_BLOCK9_PRICE_ATTRIBUTE_ID (0x0468) +#define ZCL_TIER6_BLOCK10_PRICE_ATTRIBUTE_ID (0x0469) +#define ZCL_TIER6_BLOCK11_PRICE_ATTRIBUTE_ID (0x046A) +#define ZCL_TIER6_BLOCK12_PRICE_ATTRIBUTE_ID (0x046B) +#define ZCL_TIER6_BLOCK13_PRICE_ATTRIBUTE_ID (0x046C) +#define ZCL_TIER6_BLOCK14_PRICE_ATTRIBUTE_ID (0x046D) +#define ZCL_TIER6_BLOCK15_PRICE_ATTRIBUTE_ID (0x046E) +#define ZCL_TIER6_BLOCK16_PRICE_ATTRIBUTE_ID (0x046F) +#define ZCL_TIER7_BLOCK1_PRICE_ATTRIBUTE_ID (0x0470) +#define ZCL_TIER7_BLOCK2_PRICE_ATTRIBUTE_ID (0x0471) +#define ZCL_TIER7_BLOCK3_PRICE_ATTRIBUTE_ID (0x0472) +#define ZCL_TIER7_BLOCK4_PRICE_ATTRIBUTE_ID (0x0473) +#define ZCL_TIER7_BLOCK5_PRICE_ATTRIBUTE_ID (0x0474) +#define ZCL_TIER7_BLOCK6_PRICE_ATTRIBUTE_ID (0x0475) +#define ZCL_TIER7_BLOCK7_PRICE_ATTRIBUTE_ID (0x0476) +#define ZCL_TIER7_BLOCK8_PRICE_ATTRIBUTE_ID (0x0477) +#define ZCL_TIER7_BLOCK9_PRICE_ATTRIBUTE_ID (0x0478) +#define ZCL_TIER7_BLOCK10_PRICE_ATTRIBUTE_ID (0x0479) +#define ZCL_TIER7_BLOCK11_PRICE_ATTRIBUTE_ID (0x047A) +#define ZCL_TIER7_BLOCK12_PRICE_ATTRIBUTE_ID (0x047B) +#define ZCL_TIER7_BLOCK13_PRICE_ATTRIBUTE_ID (0x047C) +#define ZCL_TIER7_BLOCK14_PRICE_ATTRIBUTE_ID (0x047D) +#define ZCL_TIER7_BLOCK15_PRICE_ATTRIBUTE_ID (0x047E) +#define ZCL_TIER7_BLOCK16_PRICE_ATTRIBUTE_ID (0x047F) +#define ZCL_TIER8_BLOCK1_PRICE_ATTRIBUTE_ID (0x0480) +#define ZCL_TIER8_BLOCK2_PRICE_ATTRIBUTE_ID (0x0481) +#define ZCL_TIER8_BLOCK3_PRICE_ATTRIBUTE_ID (0x0482) +#define ZCL_TIER8_BLOCK4_PRICE_ATTRIBUTE_ID (0x0483) +#define ZCL_TIER8_BLOCK5_PRICE_ATTRIBUTE_ID (0x0484) +#define ZCL_TIER8_BLOCK6_PRICE_ATTRIBUTE_ID (0x0485) +#define ZCL_TIER8_BLOCK7_PRICE_ATTRIBUTE_ID (0x0486) +#define ZCL_TIER8_BLOCK8_PRICE_ATTRIBUTE_ID (0x0487) +#define ZCL_TIER8_BLOCK9_PRICE_ATTRIBUTE_ID (0x0488) +#define ZCL_TIER8_BLOCK10_PRICE_ATTRIBUTE_ID (0x0489) +#define ZCL_TIER8_BLOCK11_PRICE_ATTRIBUTE_ID (0x048A) +#define ZCL_TIER8_BLOCK12_PRICE_ATTRIBUTE_ID (0x048B) +#define ZCL_TIER8_BLOCK13_PRICE_ATTRIBUTE_ID (0x048C) +#define ZCL_TIER8_BLOCK14_PRICE_ATTRIBUTE_ID (0x048D) +#define ZCL_TIER8_BLOCK15_PRICE_ATTRIBUTE_ID (0x048E) +#define ZCL_TIER8_BLOCK16_PRICE_ATTRIBUTE_ID (0x048F) +#define ZCL_TIER9_BLOCK1_PRICE_ATTRIBUTE_ID (0x0490) +#define ZCL_TIER9_BLOCK2_PRICE_ATTRIBUTE_ID (0x0491) +#define ZCL_TIER9_BLOCK3_PRICE_ATTRIBUTE_ID (0x0492) +#define ZCL_TIER9_BLOCK4_PRICE_ATTRIBUTE_ID (0x0493) +#define ZCL_TIER9_BLOCK5_PRICE_ATTRIBUTE_ID (0x0494) +#define ZCL_TIER9_BLOCK6_PRICE_ATTRIBUTE_ID (0x0495) +#define ZCL_TIER9_BLOCK7_PRICE_ATTRIBUTE_ID (0x0496) +#define ZCL_TIER9_BLOCK8_PRICE_ATTRIBUTE_ID (0x0497) +#define ZCL_TIER9_BLOCK9_PRICE_ATTRIBUTE_ID (0x0498) +#define ZCL_TIER9_BLOCK10_PRICE_ATTRIBUTE_ID (0x0499) +#define ZCL_TIER9_BLOCK11_PRICE_ATTRIBUTE_ID (0x049A) +#define ZCL_TIER9_BLOCK12_PRICE_ATTRIBUTE_ID (0x049B) +#define ZCL_TIER9_BLOCK13_PRICE_ATTRIBUTE_ID (0x049C) +#define ZCL_TIER9_BLOCK14_PRICE_ATTRIBUTE_ID (0x049D) +#define ZCL_TIER9_BLOCK15_PRICE_ATTRIBUTE_ID (0x049E) +#define ZCL_TIER9_BLOCK16_PRICE_ATTRIBUTE_ID (0x049F) +#define ZCL_TIER10_BLOCK1_PRICE_ATTRIBUTE_ID (0x04A0) +#define ZCL_TIER10_BLOCK2_PRICE_ATTRIBUTE_ID (0x04A1) +#define ZCL_TIER10_BLOCK3_PRICE_ATTRIBUTE_ID (0x04A2) +#define ZCL_TIER10_BLOCK4_PRICE_ATTRIBUTE_ID (0x04A3) +#define ZCL_TIER10_BLOCK5_PRICE_ATTRIBUTE_ID (0x04A4) +#define ZCL_TIER10_BLOCK6_PRICE_ATTRIBUTE_ID (0x04A5) +#define ZCL_TIER10_BLOCK7_PRICE_ATTRIBUTE_ID (0x04A6) +#define ZCL_TIER10_BLOCK8_PRICE_ATTRIBUTE_ID (0x04A7) +#define ZCL_TIER10_BLOCK9_PRICE_ATTRIBUTE_ID (0x04A8) +#define ZCL_TIER10_BLOCK10_PRICE_ATTRIBUTE_ID (0x04A9) +#define ZCL_TIER10_BLOCK11_PRICE_ATTRIBUTE_ID (0x04AA) +#define ZCL_TIER10_BLOCK12_PRICE_ATTRIBUTE_ID (0x04AB) +#define ZCL_TIER10_BLOCK13_PRICE_ATTRIBUTE_ID (0x04AC) +#define ZCL_TIER10_BLOCK14_PRICE_ATTRIBUTE_ID (0x04AD) +#define ZCL_TIER10_BLOCK15_PRICE_ATTRIBUTE_ID (0x04AE) +#define ZCL_TIER10_BLOCK16_PRICE_ATTRIBUTE_ID (0x04AF) +#define ZCL_TIER11_BLOCK1_PRICE_ATTRIBUTE_ID (0x04B0) +#define ZCL_TIER11_BLOCK2_PRICE_ATTRIBUTE_ID (0x04B1) +#define ZCL_TIER11_BLOCK3_PRICE_ATTRIBUTE_ID (0x04B2) +#define ZCL_TIER11_BLOCK4_PRICE_ATTRIBUTE_ID (0x04B3) +#define ZCL_TIER11_BLOCK5_PRICE_ATTRIBUTE_ID (0x04B4) +#define ZCL_TIER11_BLOCK6_PRICE_ATTRIBUTE_ID (0x04B5) +#define ZCL_TIER11_BLOCK7_PRICE_ATTRIBUTE_ID (0x04B6) +#define ZCL_TIER11_BLOCK8_PRICE_ATTRIBUTE_ID (0x04B7) +#define ZCL_TIER11_BLOCK9_PRICE_ATTRIBUTE_ID (0x04B8) +#define ZCL_TIER11_BLOCK10_PRICE_ATTRIBUTE_ID (0x04B9) +#define ZCL_TIER11_BLOCK11_PRICE_ATTRIBUTE_ID (0x04BA) +#define ZCL_TIER11_BLOCK12_PRICE_ATTRIBUTE_ID (0x04BB) +#define ZCL_TIER11_BLOCK13_PRICE_ATTRIBUTE_ID (0x04BC) +#define ZCL_TIER11_BLOCK14_PRICE_ATTRIBUTE_ID (0x04BD) +#define ZCL_TIER11_BLOCK15_PRICE_ATTRIBUTE_ID (0x04BE) +#define ZCL_TIER11_BLOCK16_PRICE_ATTRIBUTE_ID (0x04BF) +#define ZCL_TIER12_BLOCK1_PRICE_ATTRIBUTE_ID (0x04C0) +#define ZCL_TIER12_BLOCK2_PRICE_ATTRIBUTE_ID (0x04C1) +#define ZCL_TIER12_BLOCK3_PRICE_ATTRIBUTE_ID (0x04C2) +#define ZCL_TIER12_BLOCK4_PRICE_ATTRIBUTE_ID (0x04C3) +#define ZCL_TIER12_BLOCK5_PRICE_ATTRIBUTE_ID (0x04C4) +#define ZCL_TIER12_BLOCK6_PRICE_ATTRIBUTE_ID (0x04C5) +#define ZCL_TIER12_BLOCK7_PRICE_ATTRIBUTE_ID (0x04C6) +#define ZCL_TIER12_BLOCK8_PRICE_ATTRIBUTE_ID (0x04C7) +#define ZCL_TIER12_BLOCK9_PRICE_ATTRIBUTE_ID (0x04C8) +#define ZCL_TIER12_BLOCK10_PRICE_ATTRIBUTE_ID (0x04C9) +#define ZCL_TIER12_BLOCK11_PRICE_ATTRIBUTE_ID (0x04CA) +#define ZCL_TIER12_BLOCK12_PRICE_ATTRIBUTE_ID (0x04CB) +#define ZCL_TIER12_BLOCK13_PRICE_ATTRIBUTE_ID (0x04CC) +#define ZCL_TIER12_BLOCK14_PRICE_ATTRIBUTE_ID (0x04CD) +#define ZCL_TIER12_BLOCK15_PRICE_ATTRIBUTE_ID (0x04CE) +#define ZCL_TIER12_BLOCK16_PRICE_ATTRIBUTE_ID (0x04CF) +#define ZCL_TIER13_BLOCK1_PRICE_ATTRIBUTE_ID (0x04D0) +#define ZCL_TIER13_BLOCK2_PRICE_ATTRIBUTE_ID (0x04D1) +#define ZCL_TIER13_BLOCK3_PRICE_ATTRIBUTE_ID (0x04D2) +#define ZCL_TIER13_BLOCK4_PRICE_ATTRIBUTE_ID (0x04D3) +#define ZCL_TIER13_BLOCK5_PRICE_ATTRIBUTE_ID (0x04D4) +#define ZCL_TIER13_BLOCK6_PRICE_ATTRIBUTE_ID (0x04D5) +#define ZCL_TIER13_BLOCK7_PRICE_ATTRIBUTE_ID (0x04D6) +#define ZCL_TIER13_BLOCK8_PRICE_ATTRIBUTE_ID (0x04D7) +#define ZCL_TIER13_BLOCK9_PRICE_ATTRIBUTE_ID (0x04D8) +#define ZCL_TIER13_BLOCK10_PRICE_ATTRIBUTE_ID (0x04D9) +#define ZCL_TIER13_BLOCK11_PRICE_ATTRIBUTE_ID (0x04DA) +#define ZCL_TIER13_BLOCK12_PRICE_ATTRIBUTE_ID (0x04DB) +#define ZCL_TIER13_BLOCK13_PRICE_ATTRIBUTE_ID (0x04DC) +#define ZCL_TIER13_BLOCK14_PRICE_ATTRIBUTE_ID (0x04DD) +#define ZCL_TIER13_BLOCK15_PRICE_ATTRIBUTE_ID (0x04DE) +#define ZCL_TIER13_BLOCK16_PRICE_ATTRIBUTE_ID (0x04DF) +#define ZCL_TIER14_BLOCK1_PRICE_ATTRIBUTE_ID (0x04E0) +#define ZCL_TIER14_BLOCK2_PRICE_ATTRIBUTE_ID (0x04E1) +#define ZCL_TIER14_BLOCK3_PRICE_ATTRIBUTE_ID (0x04E2) +#define ZCL_TIER14_BLOCK4_PRICE_ATTRIBUTE_ID (0x04E3) +#define ZCL_TIER14_BLOCK5_PRICE_ATTRIBUTE_ID (0x04E4) +#define ZCL_TIER14_BLOCK6_PRICE_ATTRIBUTE_ID (0x04E5) +#define ZCL_TIER14_BLOCK7_PRICE_ATTRIBUTE_ID (0x04E6) +#define ZCL_TIER14_BLOCK8_PRICE_ATTRIBUTE_ID (0x04E7) +#define ZCL_TIER14_BLOCK9_PRICE_ATTRIBUTE_ID (0x04E8) +#define ZCL_TIER14_BLOCK10_PRICE_ATTRIBUTE_ID (0x04E9) +#define ZCL_TIER14_BLOCK11_PRICE_ATTRIBUTE_ID (0x04EA) +#define ZCL_TIER14_BLOCK12_PRICE_ATTRIBUTE_ID (0x04EB) +#define ZCL_TIER14_BLOCK13_PRICE_ATTRIBUTE_ID (0x04EC) +#define ZCL_TIER14_BLOCK14_PRICE_ATTRIBUTE_ID (0x04ED) +#define ZCL_TIER14_BLOCK15_PRICE_ATTRIBUTE_ID (0x04EE) +#define ZCL_TIER14_BLOCK16_PRICE_ATTRIBUTE_ID (0x04EF) +#define ZCL_TIER15_BLOCK1_PRICE_ATTRIBUTE_ID (0x04F0) +#define ZCL_TIER15_BLOCK2_PRICE_ATTRIBUTE_ID (0x04F1) +#define ZCL_TIER15_BLOCK3_PRICE_ATTRIBUTE_ID (0x04F2) +#define ZCL_TIER15_BLOCK4_PRICE_ATTRIBUTE_ID (0x04F3) +#define ZCL_TIER15_BLOCK5_PRICE_ATTRIBUTE_ID (0x04F4) +#define ZCL_TIER15_BLOCK6_PRICE_ATTRIBUTE_ID (0x04F5) +#define ZCL_TIER15_BLOCK7_PRICE_ATTRIBUTE_ID (0x04F6) +#define ZCL_TIER15_BLOCK8_PRICE_ATTRIBUTE_ID (0x04F7) +#define ZCL_TIER15_BLOCK9_PRICE_ATTRIBUTE_ID (0x04F8) +#define ZCL_TIER15_BLOCK10_PRICE_ATTRIBUTE_ID (0x04F9) +#define ZCL_TIER15_BLOCK11_PRICE_ATTRIBUTE_ID (0x04FA) +#define ZCL_TIER15_BLOCK12_PRICE_ATTRIBUTE_ID (0x04FB) +#define ZCL_TIER15_BLOCK13_PRICE_ATTRIBUTE_ID (0x04FC) +#define ZCL_TIER15_BLOCK14_PRICE_ATTRIBUTE_ID (0x04FD) +#define ZCL_TIER15_BLOCK15_PRICE_ATTRIBUTE_ID (0x04FE) +#define ZCL_TIER15_BLOCK16_PRICE_ATTRIBUTE_ID (0x04FF) +#define ZCL_PRICE_TIER16_ATTRIBUTE_ID (0x050F) +#define ZCL_PRICE_TIER17_ATTRIBUTE_ID (0x0510) +#define ZCL_PRICE_TIER18_ATTRIBUTE_ID (0x0511) +#define ZCL_PRICE_TIER19_ATTRIBUTE_ID (0x0512) +#define ZCL_PRICE_TIER20_ATTRIBUTE_ID (0x0513) +#define ZCL_PRICE_TIER21_ATTRIBUTE_ID (0x0514) +#define ZCL_PRICE_TIER22_ATTRIBUTE_ID (0x0515) +#define ZCL_PRICE_TIER23_ATTRIBUTE_ID (0x0516) +#define ZCL_PRICE_TIER24_ATTRIBUTE_ID (0x0517) +#define ZCL_PRICE_TIER25_ATTRIBUTE_ID (0x0518) +#define ZCL_PRICE_TIER26_ATTRIBUTE_ID (0x0519) +#define ZCL_PRICE_TIER27_ATTRIBUTE_ID (0x051A) +#define ZCL_PRICE_TIER28_ATTRIBUTE_ID (0x051B) +#define ZCL_PRICE_TIER29_ATTRIBUTE_ID (0x051C) +#define ZCL_PRICE_TIER30_ATTRIBUTE_ID (0x051D) +#define ZCL_PRICE_TIER31_ATTRIBUTE_ID (0x051E) +#define ZCL_PRICE_TIER32_ATTRIBUTE_ID (0x051F) +#define ZCL_PRICE_TIER33_ATTRIBUTE_ID (0x0520) +#define ZCL_PRICE_TIER34_ATTRIBUTE_ID (0x0521) +#define ZCL_PRICE_TIER35_ATTRIBUTE_ID (0x0522) +#define ZCL_PRICE_TIER36_ATTRIBUTE_ID (0x0523) +#define ZCL_PRICE_TIER37_ATTRIBUTE_ID (0x0524) +#define ZCL_PRICE_TIER38_ATTRIBUTE_ID (0x0525) +#define ZCL_PRICE_TIER39_ATTRIBUTE_ID (0x0526) +#define ZCL_PRICE_TIER40_ATTRIBUTE_ID (0x0527) +#define ZCL_PRICE_TIER41_ATTRIBUTE_ID (0x0528) +#define ZCL_PRICE_TIER42_ATTRIBUTE_ID (0x0529) +#define ZCL_PRICE_TIER43_ATTRIBUTE_ID (0x052A) +#define ZCL_PRICE_TIER44_ATTRIBUTE_ID (0x052B) +#define ZCL_PRICE_TIER45_ATTRIBUTE_ID (0x052C) +#define ZCL_PRICE_TIER46_ATTRIBUTE_ID (0x052D) +#define ZCL_PRICE_TIER47_ATTRIBUTE_ID (0x052E) +#define ZCL_PRICE_TIER48_ATTRIBUTE_ID (0x052F) +#define ZCL_CPP1_PRICE_ATTRIBUTE_ID (0x05FE) +#define ZCL_CPP2_PRICE_ATTRIBUTE_ID (0x05FF) +#define ZCL_TARIFF_LABEL_ATTRIBUTE_ID (0x0610) +#define ZCL_NUMBER_OF_PRICE_TIERS_IN_USE_ATTRIBUTE_ID (0x0611) +#define ZCL_NUMBER_OF_BLOCK_THRESHOLDS_IN_USE_ATTRIBUTE_ID (0x0612) +#define ZCL_TIER_BLOCK_MODE_ATTRIBUTE_ID (0x0613) +#define ZCL_TARIFF_UNIT_OF_MEASURE_ATTRIBUTE_ID (0x0615) +#define ZCL_TARIFF_CURRENCY_ATTRIBUTE_ID (0x0616) +#define ZCL_TARIFF_PRICE_TRAILING_DIGIT_ATTRIBUTE_ID (0x0617) +#define ZCL_TARIFF_RESOLUTION_PERIOD_ATTRIBUTE_ID (0x0619) +#define ZCL_TARIFF_CO2_ATTRIBUTE_ID (0x0620) +#define ZCL_TARIFF_CO2_UNIT_ATTRIBUTE_ID (0x0621) +#define ZCL_TARIFF_CO2_TRAILING_DIGIT_ATTRIBUTE_ID (0x0622) +#define ZCL_CURRENT_BILLING_PERIOD_START_ATTRIBUTE_ID (0x0700) +#define ZCL_CURRENT_BILLING_PERIOD_DURATION_ATTRIBUTE_ID (0x0701) +#define ZCL_LAST_BILLING_PERIOD_START_ATTRIBUTE_ID (0x0702) +#define ZCL_LAST_BILLING_PERIOD_DURATION_ATTRIBUTE_ID (0x0703) +#define ZCL_LAST_BILLING_PERIOD_CONSOLIDATED_BILL_ATTRIBUTE_ID (0x0704) +#define ZCL_CREDIT_PAYMENT_DUE_DATE_ATTRIBUTE_ID (0x0800) +#define ZCL_CREDIT_PAYMENT_STATUS_ATTRIBUTE_ID (0x0801) +#define ZCL_CREDIT_PAYMENT_OVER_DUE_AMOUNT_ATTRIBUTE_ID (0x0802) +#define ZCL_PAYMENT_DISCOUNT_ATTRIBUTE_ID (0x080A) +#define ZCL_PAYMENT_DISCOUNT_PERIOD_ATTRIBUTE_ID (0x080B) +#define ZCL_CREDIT_PAYMENT_1_ATTRIBUTE_ID (0x0810) +#define ZCL_CREDIT_PAYMENT_DATE_1_ATTRIBUTE_ID (0x0811) +#define ZCL_CREDIT_PAYMENT_REF_1_ATTRIBUTE_ID (0x0812) +#define ZCL_CREDIT_PAYMENT_2_ATTRIBUTE_ID (0x0820) +#define ZCL_CREDIT_PAYMENT_DATE_2_ATTRIBUTE_ID (0x0821) +#define ZCL_CREDIT_PAYMENT_REF_2_ATTRIBUTE_ID (0x0822) +#define ZCL_CREDIT_PAYMENT_3_ATTRIBUTE_ID (0x0830) +#define ZCL_CREDIT_PAYMENT_DATE_3_ATTRIBUTE_ID (0x0831) +#define ZCL_CREDIT_PAYMENT_REF_3_ATTRIBUTE_ID (0x0832) +#define ZCL_CREDIT_PAYMENT_4_ATTRIBUTE_ID (0x0840) +#define ZCL_CREDIT_PAYMENT_DATE_4_ATTRIBUTE_ID (0x0841) +#define ZCL_CREDIT_PAYMENT_REF_4_ATTRIBUTE_ID (0x0842) +#define ZCL_CREDIT_PAYMENT_5_ATTRIBUTE_ID (0x0850) +#define ZCL_CREDIT_PAYMENT_DATE_5_ATTRIBUTE_ID (0x0851) +#define ZCL_CREDIT_PAYMENT_REF_5_ATTRIBUTE_ID (0x0852) +#define ZCL_RX_TIER1_PRICE_LABEL_ATTRIBUTE_ID (0x8000) +#define ZCL_RX_TIER2_PRICE_LABEL_ATTRIBUTE_ID (0x8001) +#define ZCL_RX_TIER3_PRICE_LABEL_ATTRIBUTE_ID (0x8002) +#define ZCL_RX_TIER4_PRICE_LABEL_ATTRIBUTE_ID (0x8003) +#define ZCL_RX_TIER5_PRICE_LABEL_ATTRIBUTE_ID (0x8004) +#define ZCL_RX_TIER6_PRICE_LABEL_ATTRIBUTE_ID (0x8005) +#define ZCL_RX_TIER7_PRICE_LABEL_ATTRIBUTE_ID (0x8006) +#define ZCL_RX_TIER8_PRICE_LABEL_ATTRIBUTE_ID (0x8007) +#define ZCL_RX_TIER9_PRICE_LABEL_ATTRIBUTE_ID (0x8008) +#define ZCL_RX_TIER10_PRICE_LABEL_ATTRIBUTE_ID (0x8009) +#define ZCL_RX_TIER11_PRICE_LABEL_ATTRIBUTE_ID (0x800A) +#define ZCL_RX_TIER12_PRICE_LABEL_ATTRIBUTE_ID (0x800B) +#define ZCL_RX_TIER13_PRICE_LABEL_ATTRIBUTE_ID (0x800C) +#define ZCL_RX_TIER14_PRICE_LABEL_ATTRIBUTE_ID (0x800D) +#define ZCL_RX_TIER15_PRICE_LABEL_ATTRIBUTE_ID (0x800E) +#define ZCL_RX_TIER16_PRICE_LABEL_ATTRIBUTE_ID (0x800F) +#define ZCL_RX_TIER17_PRICE_LABEL_ATTRIBUTE_ID (0x8010) +#define ZCL_RX_TIER18_PRICE_LABEL_ATTRIBUTE_ID (0x8011) +#define ZCL_RX_TIER19_PRICE_LABEL_ATTRIBUTE_ID (0x8012) +#define ZCL_RX_TIER20_PRICE_LABEL_ATTRIBUTE_ID (0x8013) +#define ZCL_RX_TIER21_PRICE_LABEL_ATTRIBUTE_ID (0x8014) +#define ZCL_RX_TIER22_PRICE_LABEL_ATTRIBUTE_ID (0x8015) +#define ZCL_RX_TIER23_PRICE_LABEL_ATTRIBUTE_ID (0x8016) +#define ZCL_RX_TIER24_PRICE_LABEL_ATTRIBUTE_ID (0x8017) +#define ZCL_RX_TIER25_PRICE_LABEL_ATTRIBUTE_ID (0x8018) +#define ZCL_RX_TIER26_PRICE_LABEL_ATTRIBUTE_ID (0x8019) +#define ZCL_RX_TIER27_PRICE_LABEL_ATTRIBUTE_ID (0x801A) +#define ZCL_RX_TIER28_PRICE_LABEL_ATTRIBUTE_ID (0x801B) +#define ZCL_RX_TIER29_PRICE_LABEL_ATTRIBUTE_ID (0x801C) +#define ZCL_RX_TIER30_PRICE_LABEL_ATTRIBUTE_ID (0x801D) +#define ZCL_RX_TIER31_PRICE_LABEL_ATTRIBUTE_ID (0x801E) +#define ZCL_RX_TIER32_PRICE_LABEL_ATTRIBUTE_ID (0x801F) +#define ZCL_RX_TIER33_PRICE_LABEL_ATTRIBUTE_ID (0x8020) +#define ZCL_RX_TIER34_PRICE_LABEL_ATTRIBUTE_ID (0x8021) +#define ZCL_RX_TIER35_PRICE_LABEL_ATTRIBUTE_ID (0x8022) +#define ZCL_RX_TIER36_PRICE_LABEL_ATTRIBUTE_ID (0x8023) +#define ZCL_RX_TIER37_PRICE_LABEL_ATTRIBUTE_ID (0x8024) +#define ZCL_RX_TIER38_PRICE_LABEL_ATTRIBUTE_ID (0x8025) +#define ZCL_RX_TIER39_PRICE_LABEL_ATTRIBUTE_ID (0x8026) +#define ZCL_RX_TIER40_PRICE_LABEL_ATTRIBUTE_ID (0x8027) +#define ZCL_RX_TIER41_PRICE_LABEL_ATTRIBUTE_ID (0x8028) +#define ZCL_RX_TIER42_PRICE_LABEL_ATTRIBUTE_ID (0x8029) +#define ZCL_RX_TIER43_PRICE_LABEL_ATTRIBUTE_ID (0x802A) +#define ZCL_RX_TIER44_PRICE_LABEL_ATTRIBUTE_ID (0x802B) +#define ZCL_RX_TIER45_PRICE_LABEL_ATTRIBUTE_ID (0x802C) +#define ZCL_RX_TIER46_PRICE_LABEL_ATTRIBUTE_ID (0x802D) +#define ZCL_RX_TIER47_PRICE_LABEL_ATTRIBUTE_ID (0x802E) +#define ZCL_RX_TIER48_PRICE_LABEL_ATTRIBUTE_ID (0x802F) +#define ZCL_RX_BLOCK1_THRESHOLD_ATTRIBUTE_ID (0x8100) +#define ZCL_RX_BLOCK2_THRESHOLD_ATTRIBUTE_ID (0x8101) +#define ZCL_RX_BLOCK3_THRESHOLD_ATTRIBUTE_ID (0x8102) +#define ZCL_RX_BLOCK4_THRESHOLD_ATTRIBUTE_ID (0x8103) +#define ZCL_RX_BLOCK5_THRESHOLD_ATTRIBUTE_ID (0x8104) +#define ZCL_RX_BLOCK6_THRESHOLD_ATTRIBUTE_ID (0x8105) +#define ZCL_RX_BLOCK7_THRESHOLD_ATTRIBUTE_ID (0x8106) +#define ZCL_RX_BLOCK8_THRESHOLD_ATTRIBUTE_ID (0x8107) +#define ZCL_RX_BLOCK9_THRESHOLD_ATTRIBUTE_ID (0x8108) +#define ZCL_RX_BLOCK10_THRESHOLD_ATTRIBUTE_ID (0x8109) +#define ZCL_RX_BLOCK11_THRESHOLD_ATTRIBUTE_ID (0x810A) +#define ZCL_RX_BLOCK12_THRESHOLD_ATTRIBUTE_ID (0x810B) +#define ZCL_RX_BLOCK13_THRESHOLD_ATTRIBUTE_ID (0x810C) +#define ZCL_RX_BLOCK14_THRESHOLD_ATTRIBUTE_ID (0x810D) +#define ZCL_RX_BLOCK15_THRESHOLD_ATTRIBUTE_ID (0x810E) +#define ZCL_RX_START_OF_BLOCK_PERIOD_ATTRIBUTE_ID (0x8200) +#define ZCL_RX_BLOCK_PERIOD_DURATION_ATTRIBUTE_ID (0x8201) +#define ZCL_RX_THRESHOLD_MULTIPLIER_ATTRIBUTE_ID (0x8202) +#define ZCL_RX_THRESHOLD_DIVISOR_ATTRIBUTE_ID (0x8203) +#define ZCL_RX_NO_TIER_BLOCK1_PRICE_ATTRIBUTE_ID (0x8400) +#define ZCL_RX_NO_TIER_BLOCK2_PRICE_ATTRIBUTE_ID (0x8401) +#define ZCL_RX_NO_TIER_BLOCK3_PRICE_ATTRIBUTE_ID (0x8402) +#define ZCL_RX_NO_TIER_BLOCK4_PRICE_ATTRIBUTE_ID (0x8403) +#define ZCL_RX_NO_TIER_BLOCK5_PRICE_ATTRIBUTE_ID (0x8404) +#define ZCL_RX_NO_TIER_BLOCK6_PRICE_ATTRIBUTE_ID (0x8405) +#define ZCL_RX_NO_TIER_BLOCK7_PRICE_ATTRIBUTE_ID (0x8406) +#define ZCL_RX_NO_TIER_BLOCK8_PRICE_ATTRIBUTE_ID (0x8407) +#define ZCL_RX_NO_TIER_BLOCK9_PRICE_ATTRIBUTE_ID (0x8408) +#define ZCL_RX_NO_TIER_BLOCK10_PRICE_ATTRIBUTE_ID (0x8409) +#define ZCL_RX_NO_TIER_BLOCK11_PRICE_ATTRIBUTE_ID (0x840A) +#define ZCL_RX_NO_TIER_BLOCK12_PRICE_ATTRIBUTE_ID (0x840B) +#define ZCL_RX_NO_TIER_BLOCK13_PRICE_ATTRIBUTE_ID (0x840C) +#define ZCL_RX_NO_TIER_BLOCK14_PRICE_ATTRIBUTE_ID (0x840D) +#define ZCL_RX_NO_TIER_BLOCK15_PRICE_ATTRIBUTE_ID (0x840E) +#define ZCL_RX_NO_TIER_BLOCK16_PRICE_ATTRIBUTE_ID (0x840F) +#define ZCL_RX_TIER1_BLOCK1_PRICE_ATTRIBUTE_ID (0x8410) +#define ZCL_RX_TIER1_BLOCK2_PRICE_ATTRIBUTE_ID (0x8411) +#define ZCL_RX_TIER1_BLOCK3_PRICE_ATTRIBUTE_ID (0x8412) +#define ZCL_RX_TIER1_BLOCK4_PRICE_ATTRIBUTE_ID (0x8413) +#define ZCL_RX_TIER1_BLOCK5_PRICE_ATTRIBUTE_ID (0x8414) +#define ZCL_RX_TIER1_BLOCK6_PRICE_ATTRIBUTE_ID (0x8415) +#define ZCL_RX_TIER1_BLOCK7_PRICE_ATTRIBUTE_ID (0x8416) +#define ZCL_RX_TIER1_BLOCK8_PRICE_ATTRIBUTE_ID (0x8417) +#define ZCL_RX_TIER1_BLOCK9_PRICE_ATTRIBUTE_ID (0x8418) +#define ZCL_RX_TIER1_BLOCK10_PRICE_ATTRIBUTE_ID (0x8419) +#define ZCL_RX_TIER1_BLOCK11_PRICE_ATTRIBUTE_ID (0x841A) +#define ZCL_RX_TIER1_BLOCK12_PRICE_ATTRIBUTE_ID (0x841B) +#define ZCL_RX_TIER1_BLOCK13_PRICE_ATTRIBUTE_ID (0x841C) +#define ZCL_RX_TIER1_BLOCK14_PRICE_ATTRIBUTE_ID (0x841D) +#define ZCL_RX_TIER1_BLOCK15_PRICE_ATTRIBUTE_ID (0x841E) +#define ZCL_RX_TIER1_BLOCK16_PRICE_ATTRIBUTE_ID (0x841F) +#define ZCL_RX_TIER2_BLOCK1_PRICE_ATTRIBUTE_ID (0x8420) +#define ZCL_RX_TIER2_BLOCK2_PRICE_ATTRIBUTE_ID (0x8421) +#define ZCL_RX_TIER2_BLOCK3_PRICE_ATTRIBUTE_ID (0x8422) +#define ZCL_RX_TIER2_BLOCK4_PRICE_ATTRIBUTE_ID (0x8423) +#define ZCL_RX_TIER2_BLOCK5_PRICE_ATTRIBUTE_ID (0x8424) +#define ZCL_RX_TIER2_BLOCK6_PRICE_ATTRIBUTE_ID (0x8425) +#define ZCL_RX_TIER2_BLOCK7_PRICE_ATTRIBUTE_ID (0x8426) +#define ZCL_RX_TIER2_BLOCK8_PRICE_ATTRIBUTE_ID (0x8427) +#define ZCL_RX_TIER2_BLOCK9_PRICE_ATTRIBUTE_ID (0x8428) +#define ZCL_RX_TIER2_BLOCK10_PRICE_ATTRIBUTE_ID (0x8429) +#define ZCL_RX_TIER2_BLOCK11_PRICE_ATTRIBUTE_ID (0x842A) +#define ZCL_RX_TIER2_BLOCK12_PRICE_ATTRIBUTE_ID (0x842B) +#define ZCL_RX_TIER2_BLOCK13_PRICE_ATTRIBUTE_ID (0x842C) +#define ZCL_RX_TIER2_BLOCK14_PRICE_ATTRIBUTE_ID (0x842D) +#define ZCL_RX_TIER2_BLOCK15_PRICE_ATTRIBUTE_ID (0x842E) +#define ZCL_RX_TIER2_BLOCK16_PRICE_ATTRIBUTE_ID (0x842F) +#define ZCL_RX_TIER3_BLOCK1_PRICE_ATTRIBUTE_ID (0x8430) +#define ZCL_RX_TIER3_BLOCK2_PRICE_ATTRIBUTE_ID (0x8431) +#define ZCL_RX_TIER3_BLOCK3_PRICE_ATTRIBUTE_ID (0x8432) +#define ZCL_RX_TIER3_BLOCK4_PRICE_ATTRIBUTE_ID (0x8433) +#define ZCL_RX_TIER3_BLOCK5_PRICE_ATTRIBUTE_ID (0x8434) +#define ZCL_RX_TIER3_BLOCK6_PRICE_ATTRIBUTE_ID (0x8435) +#define ZCL_RX_TIER3_BLOCK7_PRICE_ATTRIBUTE_ID (0x8436) +#define ZCL_RX_TIER3_BLOCK8_PRICE_ATTRIBUTE_ID (0x8437) +#define ZCL_RX_TIER3_BLOCK9_PRICE_ATTRIBUTE_ID (0x8438) +#define ZCL_RX_TIER3_BLOCK10_PRICE_ATTRIBUTE_ID (0x8439) +#define ZCL_RX_TIER3_BLOCK11_PRICE_ATTRIBUTE_ID (0x843A) +#define ZCL_RX_TIER3_BLOCK12_PRICE_ATTRIBUTE_ID (0x843B) +#define ZCL_RX_TIER3_BLOCK13_PRICE_ATTRIBUTE_ID (0x843C) +#define ZCL_RX_TIER3_BLOCK14_PRICE_ATTRIBUTE_ID (0x843D) +#define ZCL_RX_TIER3_BLOCK15_PRICE_ATTRIBUTE_ID (0x843E) +#define ZCL_RX_TIER3_BLOCK16_PRICE_ATTRIBUTE_ID (0x843F) +#define ZCL_RX_TIER4_BLOCK1_PRICE_ATTRIBUTE_ID (0x8440) +#define ZCL_RX_TIER4_BLOCK2_PRICE_ATTRIBUTE_ID (0x8441) +#define ZCL_RX_TIER4_BLOCK3_PRICE_ATTRIBUTE_ID (0x8442) +#define ZCL_RX_TIER4_BLOCK4_PRICE_ATTRIBUTE_ID (0x8443) +#define ZCL_RX_TIER4_BLOCK5_PRICE_ATTRIBUTE_ID (0x8444) +#define ZCL_RX_TIER4_BLOCK6_PRICE_ATTRIBUTE_ID (0x8445) +#define ZCL_RX_TIER4_BLOCK7_PRICE_ATTRIBUTE_ID (0x8446) +#define ZCL_RX_TIER4_BLOCK8_PRICE_ATTRIBUTE_ID (0x8447) +#define ZCL_RX_TIER4_BLOCK9_PRICE_ATTRIBUTE_ID (0x8448) +#define ZCL_RX_TIER4_BLOCK10_PRICE_ATTRIBUTE_ID (0x8449) +#define ZCL_RX_TIER4_BLOCK11_PRICE_ATTRIBUTE_ID (0x844A) +#define ZCL_RX_TIER4_BLOCK12_PRICE_ATTRIBUTE_ID (0x844B) +#define ZCL_RX_TIER4_BLOCK13_PRICE_ATTRIBUTE_ID (0x844C) +#define ZCL_RX_TIER4_BLOCK14_PRICE_ATTRIBUTE_ID (0x844D) +#define ZCL_RX_TIER4_BLOCK15_PRICE_ATTRIBUTE_ID (0x844E) +#define ZCL_RX_TIER4_BLOCK16_PRICE_ATTRIBUTE_ID (0x844F) +#define ZCL_RX_TIER5_BLOCK1_PRICE_ATTRIBUTE_ID (0x8450) +#define ZCL_RX_TIER5_BLOCK2_PRICE_ATTRIBUTE_ID (0x8451) +#define ZCL_RX_TIER5_BLOCK3_PRICE_ATTRIBUTE_ID (0x8452) +#define ZCL_RX_TIER5_BLOCK4_PRICE_ATTRIBUTE_ID (0x8453) +#define ZCL_RX_TIER5_BLOCK5_PRICE_ATTRIBUTE_ID (0x8454) +#define ZCL_RX_TIER5_BLOCK6_PRICE_ATTRIBUTE_ID (0x8455) +#define ZCL_RX_TIER5_BLOCK7_PRICE_ATTRIBUTE_ID (0x8456) +#define ZCL_RX_TIER5_BLOCK8_PRICE_ATTRIBUTE_ID (0x8457) +#define ZCL_RX_TIER5_BLOCK9_PRICE_ATTRIBUTE_ID (0x8458) +#define ZCL_RX_TIER5_BLOCK10_PRICE_ATTRIBUTE_ID (0x8459) +#define ZCL_RX_TIER5_BLOCK11_PRICE_ATTRIBUTE_ID (0x845A) +#define ZCL_RX_TIER5_BLOCK12_PRICE_ATTRIBUTE_ID (0x845B) +#define ZCL_RX_TIER5_BLOCK13_PRICE_ATTRIBUTE_ID (0x845C) +#define ZCL_RX_TIER5_BLOCK14_PRICE_ATTRIBUTE_ID (0x845D) +#define ZCL_RX_TIER5_BLOCK15_PRICE_ATTRIBUTE_ID (0x845E) +#define ZCL_RX_TIER5_BLOCK16_PRICE_ATTRIBUTE_ID (0x845F) +#define ZCL_RX_TIER6_BLOCK1_PRICE_ATTRIBUTE_ID (0x8460) +#define ZCL_RX_TIER6_BLOCK2_PRICE_ATTRIBUTE_ID (0x8461) +#define ZCL_RX_TIER6_BLOCK3_PRICE_ATTRIBUTE_ID (0x8462) +#define ZCL_RX_TIER6_BLOCK4_PRICE_ATTRIBUTE_ID (0x8463) +#define ZCL_RX_TIER6_BLOCK5_PRICE_ATTRIBUTE_ID (0x8464) +#define ZCL_RX_TIER6_BLOCK6_PRICE_ATTRIBUTE_ID (0x8465) +#define ZCL_RX_TIER6_BLOCK7_PRICE_ATTRIBUTE_ID (0x8466) +#define ZCL_RX_TIER6_BLOCK8_PRICE_ATTRIBUTE_ID (0x8467) +#define ZCL_RX_TIER6_BLOCK9_PRICE_ATTRIBUTE_ID (0x8468) +#define ZCL_RX_TIER6_BLOCK10_PRICE_ATTRIBUTE_ID (0x8469) +#define ZCL_RX_TIER6_BLOCK11_PRICE_ATTRIBUTE_ID (0x846A) +#define ZCL_RX_TIER6_BLOCK12_PRICE_ATTRIBUTE_ID (0x846B) +#define ZCL_RX_TIER6_BLOCK13_PRICE_ATTRIBUTE_ID (0x846C) +#define ZCL_RX_TIER6_BLOCK14_PRICE_ATTRIBUTE_ID (0x846D) +#define ZCL_RX_TIER6_BLOCK15_PRICE_ATTRIBUTE_ID (0x846E) +#define ZCL_RX_TIER6_BLOCK16_PRICE_ATTRIBUTE_ID (0x846F) +#define ZCL_RX_TIER7_BLOCK1_PRICE_ATTRIBUTE_ID (0x8470) +#define ZCL_RX_TIER7_BLOCK2_PRICE_ATTRIBUTE_ID (0x8471) +#define ZCL_RX_TIER7_BLOCK3_PRICE_ATTRIBUTE_ID (0x8472) +#define ZCL_RX_TIER7_BLOCK4_PRICE_ATTRIBUTE_ID (0x8473) +#define ZCL_RX_TIER7_BLOCK5_PRICE_ATTRIBUTE_ID (0x8474) +#define ZCL_RX_TIER7_BLOCK6_PRICE_ATTRIBUTE_ID (0x8475) +#define ZCL_RX_TIER7_BLOCK7_PRICE_ATTRIBUTE_ID (0x8476) +#define ZCL_RX_TIER7_BLOCK8_PRICE_ATTRIBUTE_ID (0x8477) +#define ZCL_RX_TIER7_BLOCK9_PRICE_ATTRIBUTE_ID (0x8478) +#define ZCL_RX_TIER7_BLOCK10_PRICE_ATTRIBUTE_ID (0x8479) +#define ZCL_RX_TIER7_BLOCK11_PRICE_ATTRIBUTE_ID (0x847A) +#define ZCL_RX_TIER7_BLOCK12_PRICE_ATTRIBUTE_ID (0x847B) +#define ZCL_RX_TIER7_BLOCK13_PRICE_ATTRIBUTE_ID (0x847C) +#define ZCL_RX_TIER7_BLOCK14_PRICE_ATTRIBUTE_ID (0x847D) +#define ZCL_RX_TIER7_BLOCK15_PRICE_ATTRIBUTE_ID (0x847E) +#define ZCL_RX_TIER7_BLOCK16_PRICE_ATTRIBUTE_ID (0x847F) +#define ZCL_RX_TIER8_BLOCK1_PRICE_ATTRIBUTE_ID (0x8480) +#define ZCL_RX_TIER8_BLOCK2_PRICE_ATTRIBUTE_ID (0x8481) +#define ZCL_RX_TIER8_BLOCK3_PRICE_ATTRIBUTE_ID (0x8482) +#define ZCL_RX_TIER8_BLOCK4_PRICE_ATTRIBUTE_ID (0x8483) +#define ZCL_RX_TIER8_BLOCK5_PRICE_ATTRIBUTE_ID (0x8484) +#define ZCL_RX_TIER8_BLOCK6_PRICE_ATTRIBUTE_ID (0x8485) +#define ZCL_RX_TIER8_BLOCK7_PRICE_ATTRIBUTE_ID (0x8486) +#define ZCL_RX_TIER8_BLOCK8_PRICE_ATTRIBUTE_ID (0x8487) +#define ZCL_RX_TIER8_BLOCK9_PRICE_ATTRIBUTE_ID (0x8488) +#define ZCL_RX_TIER8_BLOCK10_PRICE_ATTRIBUTE_ID (0x8489) +#define ZCL_RX_TIER8_BLOCK11_PRICE_ATTRIBUTE_ID (0x848A) +#define ZCL_RX_TIER8_BLOCK12_PRICE_ATTRIBUTE_ID (0x848B) +#define ZCL_RX_TIER8_BLOCK13_PRICE_ATTRIBUTE_ID (0x848C) +#define ZCL_RX_TIER8_BLOCK14_PRICE_ATTRIBUTE_ID (0x848D) +#define ZCL_RX_TIER8_BLOCK15_PRICE_ATTRIBUTE_ID (0x848E) +#define ZCL_RX_TIER8_BLOCK16_PRICE_ATTRIBUTE_ID (0x848F) +#define ZCL_RX_TIER9_BLOCK1_PRICE_ATTRIBUTE_ID (0x8490) +#define ZCL_RX_TIER9_BLOCK2_PRICE_ATTRIBUTE_ID (0x8491) +#define ZCL_RX_TIER9_BLOCK3_PRICE_ATTRIBUTE_ID (0x8492) +#define ZCL_RX_TIER9_BLOCK4_PRICE_ATTRIBUTE_ID (0x8493) +#define ZCL_RX_TIER9_BLOCK5_PRICE_ATTRIBUTE_ID (0x8494) +#define ZCL_RX_TIER9_BLOCK6_PRICE_ATTRIBUTE_ID (0x8495) +#define ZCL_RX_TIER9_BLOCK7_PRICE_ATTRIBUTE_ID (0x8496) +#define ZCL_RX_TIER9_BLOCK8_PRICE_ATTRIBUTE_ID (0x8497) +#define ZCL_RX_TIER9_BLOCK9_PRICE_ATTRIBUTE_ID (0x8498) +#define ZCL_RX_TIER9_BLOCK10_PRICE_ATTRIBUTE_ID (0x8499) +#define ZCL_RX_TIER9_BLOCK11_PRICE_ATTRIBUTE_ID (0x849A) +#define ZCL_RX_TIER9_BLOCK12_PRICE_ATTRIBUTE_ID (0x849B) +#define ZCL_RX_TIER9_BLOCK13_PRICE_ATTRIBUTE_ID (0x849C) +#define ZCL_RX_TIER9_BLOCK14_PRICE_ATTRIBUTE_ID (0x849D) +#define ZCL_RX_TIER9_BLOCK15_PRICE_ATTRIBUTE_ID (0x849E) +#define ZCL_RX_TIER9_BLOCK16_PRICE_ATTRIBUTE_ID (0x849F) +#define ZCL_RX_TIER10_BLOCK1_PRICE_ATTRIBUTE_ID (0x84A0) +#define ZCL_RX_TIER10_BLOCK2_PRICE_ATTRIBUTE_ID (0x84A1) +#define ZCL_RX_TIER10_BLOCK3_PRICE_ATTRIBUTE_ID (0x84A2) +#define ZCL_RX_TIER10_BLOCK4_PRICE_ATTRIBUTE_ID (0x84A3) +#define ZCL_RX_TIER10_BLOCK5_PRICE_ATTRIBUTE_ID (0x84A4) +#define ZCL_RX_TIER10_BLOCK6_PRICE_ATTRIBUTE_ID (0x84A5) +#define ZCL_RX_TIER10_BLOCK7_PRICE_ATTRIBUTE_ID (0x84A6) +#define ZCL_RX_TIER10_BLOCK8_PRICE_ATTRIBUTE_ID (0x84A7) +#define ZCL_RX_TIER10_BLOCK9_PRICE_ATTRIBUTE_ID (0x84A8) +#define ZCL_RX_TIER10_BLOCK10_PRICE_ATTRIBUTE_ID (0x84A9) +#define ZCL_RX_TIER10_BLOCK11_PRICE_ATTRIBUTE_ID (0x84AA) +#define ZCL_RX_TIER10_BLOCK12_PRICE_ATTRIBUTE_ID (0x84AB) +#define ZCL_RX_TIER10_BLOCK13_PRICE_ATTRIBUTE_ID (0x84AC) +#define ZCL_RX_TIER10_BLOCK14_PRICE_ATTRIBUTE_ID (0x84AD) +#define ZCL_RX_TIER10_BLOCK15_PRICE_ATTRIBUTE_ID (0x84AE) +#define ZCL_RX_TIER10_BLOCK16_PRICE_ATTRIBUTE_ID (0x84AF) +#define ZCL_RX_TIER11_BLOCK1_PRICE_ATTRIBUTE_ID (0x84B0) +#define ZCL_RX_TIER11_BLOCK2_PRICE_ATTRIBUTE_ID (0x84B1) +#define ZCL_RX_TIER11_BLOCK3_PRICE_ATTRIBUTE_ID (0x84B2) +#define ZCL_RX_TIER11_BLOCK4_PRICE_ATTRIBUTE_ID (0x84B3) +#define ZCL_RX_TIER11_BLOCK5_PRICE_ATTRIBUTE_ID (0x84B4) +#define ZCL_RX_TIER11_BLOCK6_PRICE_ATTRIBUTE_ID (0x84B5) +#define ZCL_RX_TIER11_BLOCK7_PRICE_ATTRIBUTE_ID (0x84B6) +#define ZCL_RX_TIER11_BLOCK8_PRICE_ATTRIBUTE_ID (0x84B7) +#define ZCL_RX_TIER11_BLOCK9_PRICE_ATTRIBUTE_ID (0x84B8) +#define ZCL_RX_TIER11_BLOCK10_PRICE_ATTRIBUTE_ID (0x84B9) +#define ZCL_RX_TIER11_BLOCK11_PRICE_ATTRIBUTE_ID (0x84BA) +#define ZCL_RX_TIER11_BLOCK12_PRICE_ATTRIBUTE_ID (0x84BB) +#define ZCL_RX_TIER11_BLOCK13_PRICE_ATTRIBUTE_ID (0x84BC) +#define ZCL_RX_TIER11_BLOCK14_PRICE_ATTRIBUTE_ID (0x84BD) +#define ZCL_RX_TIER11_BLOCK15_PRICE_ATTRIBUTE_ID (0x84BE) +#define ZCL_RX_TIER11_BLOCK16_PRICE_ATTRIBUTE_ID (0x84BF) +#define ZCL_RX_TIER12_BLOCK1_PRICE_ATTRIBUTE_ID (0x84C0) +#define ZCL_RX_TIER12_BLOCK2_PRICE_ATTRIBUTE_ID (0x84C1) +#define ZCL_RX_TIER12_BLOCK3_PRICE_ATTRIBUTE_ID (0x84C2) +#define ZCL_RX_TIER12_BLOCK4_PRICE_ATTRIBUTE_ID (0x84C3) +#define ZCL_RX_TIER12_BLOCK5_PRICE_ATTRIBUTE_ID (0x84C4) +#define ZCL_RX_TIER12_BLOCK6_PRICE_ATTRIBUTE_ID (0x84C5) +#define ZCL_RX_TIER12_BLOCK7_PRICE_ATTRIBUTE_ID (0x84C6) +#define ZCL_RX_TIER12_BLOCK8_PRICE_ATTRIBUTE_ID (0x84C7) +#define ZCL_RX_TIER12_BLOCK9_PRICE_ATTRIBUTE_ID (0x84C8) +#define ZCL_RX_TIER12_BLOCK10_PRICE_ATTRIBUTE_ID (0x84C9) +#define ZCL_RX_TIER12_BLOCK11_PRICE_ATTRIBUTE_ID (0x84CA) +#define ZCL_RX_TIER12_BLOCK12_PRICE_ATTRIBUTE_ID (0x84CB) +#define ZCL_RX_TIER12_BLOCK13_PRICE_ATTRIBUTE_ID (0x84CC) +#define ZCL_RX_TIER12_BLOCK14_PRICE_ATTRIBUTE_ID (0x84CD) +#define ZCL_RX_TIER12_BLOCK15_PRICE_ATTRIBUTE_ID (0x84CE) +#define ZCL_RX_TIER12_BLOCK16_PRICE_ATTRIBUTE_ID (0x84CF) +#define ZCL_RX_TIER13_BLOCK1_PRICE_ATTRIBUTE_ID (0x84D0) +#define ZCL_RX_TIER13_BLOCK2_PRICE_ATTRIBUTE_ID (0x84D1) +#define ZCL_RX_TIER13_BLOCK3_PRICE_ATTRIBUTE_ID (0x84D2) +#define ZCL_RX_TIER13_BLOCK4_PRICE_ATTRIBUTE_ID (0x84D3) +#define ZCL_RX_TIER13_BLOCK5_PRICE_ATTRIBUTE_ID (0x84D4) +#define ZCL_RX_TIER13_BLOCK6_PRICE_ATTRIBUTE_ID (0x84D5) +#define ZCL_RX_TIER13_BLOCK7_PRICE_ATTRIBUTE_ID (0x84D6) +#define ZCL_RX_TIER13_BLOCK8_PRICE_ATTRIBUTE_ID (0x84D7) +#define ZCL_RX_TIER13_BLOCK9_PRICE_ATTRIBUTE_ID (0x84D8) +#define ZCL_RX_TIER13_BLOCK10_PRICE_ATTRIBUTE_ID (0x84D9) +#define ZCL_RX_TIER13_BLOCK11_PRICE_ATTRIBUTE_ID (0x84DA) +#define ZCL_RX_TIER13_BLOCK12_PRICE_ATTRIBUTE_ID (0x84DB) +#define ZCL_RX_TIER13_BLOCK13_PRICE_ATTRIBUTE_ID (0x84DC) +#define ZCL_RX_TIER13_BLOCK14_PRICE_ATTRIBUTE_ID (0x84DD) +#define ZCL_RX_TIER13_BLOCK15_PRICE_ATTRIBUTE_ID (0x84DE) +#define ZCL_RX_TIER13_BLOCK16_PRICE_ATTRIBUTE_ID (0x84DF) +#define ZCL_RX_TIER14_BLOCK1_PRICE_ATTRIBUTE_ID (0x84E0) +#define ZCL_RX_TIER14_BLOCK2_PRICE_ATTRIBUTE_ID (0x84E1) +#define ZCL_RX_TIER14_BLOCK3_PRICE_ATTRIBUTE_ID (0x84E2) +#define ZCL_RX_TIER14_BLOCK4_PRICE_ATTRIBUTE_ID (0x84E3) +#define ZCL_RX_TIER14_BLOCK5_PRICE_ATTRIBUTE_ID (0x84E4) +#define ZCL_RX_TIER14_BLOCK6_PRICE_ATTRIBUTE_ID (0x84E5) +#define ZCL_RX_TIER14_BLOCK7_PRICE_ATTRIBUTE_ID (0x84E6) +#define ZCL_RX_TIER14_BLOCK8_PRICE_ATTRIBUTE_ID (0x84E7) +#define ZCL_RX_TIER14_BLOCK9_PRICE_ATTRIBUTE_ID (0x84E8) +#define ZCL_RX_TIER14_BLOCK10_PRICE_ATTRIBUTE_ID (0x84E9) +#define ZCL_RX_TIER14_BLOCK11_PRICE_ATTRIBUTE_ID (0x84EA) +#define ZCL_RX_TIER14_BLOCK12_PRICE_ATTRIBUTE_ID (0x84EB) +#define ZCL_RX_TIER14_BLOCK13_PRICE_ATTRIBUTE_ID (0x84EC) +#define ZCL_RX_TIER14_BLOCK14_PRICE_ATTRIBUTE_ID (0x84ED) +#define ZCL_RX_TIER14_BLOCK15_PRICE_ATTRIBUTE_ID (0x84EE) +#define ZCL_RX_TIER14_BLOCK16_PRICE_ATTRIBUTE_ID (0x84EF) +#define ZCL_RX_TIER15_BLOCK1_PRICE_ATTRIBUTE_ID (0x84F0) +#define ZCL_RX_TIER15_BLOCK2_PRICE_ATTRIBUTE_ID (0x84F1) +#define ZCL_RX_TIER15_BLOCK3_PRICE_ATTRIBUTE_ID (0x84F2) +#define ZCL_RX_TIER15_BLOCK4_PRICE_ATTRIBUTE_ID (0x84F3) +#define ZCL_RX_TIER15_BLOCK5_PRICE_ATTRIBUTE_ID (0x84F4) +#define ZCL_RX_TIER15_BLOCK6_PRICE_ATTRIBUTE_ID (0x84F5) +#define ZCL_RX_TIER15_BLOCK7_PRICE_ATTRIBUTE_ID (0x84F6) +#define ZCL_RX_TIER15_BLOCK8_PRICE_ATTRIBUTE_ID (0x84F7) +#define ZCL_RX_TIER15_BLOCK9_PRICE_ATTRIBUTE_ID (0x84F8) +#define ZCL_RX_TIER15_BLOCK10_PRICE_ATTRIBUTE_ID (0x84F9) +#define ZCL_RX_TIER15_BLOCK11_PRICE_ATTRIBUTE_ID (0x84FA) +#define ZCL_RX_TIER15_BLOCK12_PRICE_ATTRIBUTE_ID (0x84FB) +#define ZCL_RX_TIER15_BLOCK13_PRICE_ATTRIBUTE_ID (0x84FC) +#define ZCL_RX_TIER15_BLOCK14_PRICE_ATTRIBUTE_ID (0x84FD) +#define ZCL_RX_TIER15_BLOCK15_PRICE_ATTRIBUTE_ID (0x84FE) +#define ZCL_RX_TIER15_BLOCK16_PRICE_ATTRIBUTE_ID (0x84FF) +#define ZCL_RX_PRICE_TIER16_ATTRIBUTE_ID (0x850F) +#define ZCL_RX_PRICE_TIER17_ATTRIBUTE_ID (0x8510) +#define ZCL_RX_PRICE_TIER18_ATTRIBUTE_ID (0x8511) +#define ZCL_RX_PRICE_TIER19_ATTRIBUTE_ID (0x8512) +#define ZCL_RX_PRICE_TIER20_ATTRIBUTE_ID (0x8513) +#define ZCL_RX_PRICE_TIER21_ATTRIBUTE_ID (0x8514) +#define ZCL_RX_PRICE_TIER22_ATTRIBUTE_ID (0x8515) +#define ZCL_RX_PRICE_TIER23_ATTRIBUTE_ID (0x8516) +#define ZCL_RX_PRICE_TIER24_ATTRIBUTE_ID (0x8517) +#define ZCL_RX_PRICE_TIER25_ATTRIBUTE_ID (0x8518) +#define ZCL_RX_PRICE_TIER26_ATTRIBUTE_ID (0x8519) +#define ZCL_RX_PRICE_TIER27_ATTRIBUTE_ID (0x851A) +#define ZCL_RX_PRICE_TIER28_ATTRIBUTE_ID (0x851B) +#define ZCL_RX_PRICE_TIER29_ATTRIBUTE_ID (0x851C) +#define ZCL_RX_PRICE_TIER30_ATTRIBUTE_ID (0x851D) +#define ZCL_RX_PRICE_TIER31_ATTRIBUTE_ID (0x851E) +#define ZCL_RX_PRICE_TIER32_ATTRIBUTE_ID (0x851F) +#define ZCL_RX_PRICE_TIER33_ATTRIBUTE_ID (0x8520) +#define ZCL_RX_PRICE_TIER34_ATTRIBUTE_ID (0x8521) +#define ZCL_RX_PRICE_TIER35_ATTRIBUTE_ID (0x8522) +#define ZCL_RX_PRICE_TIER36_ATTRIBUTE_ID (0x8523) +#define ZCL_RX_PRICE_TIER37_ATTRIBUTE_ID (0x8524) +#define ZCL_RX_PRICE_TIER38_ATTRIBUTE_ID (0x8525) +#define ZCL_RX_PRICE_TIER39_ATTRIBUTE_ID (0x8526) +#define ZCL_RX_PRICE_TIER40_ATTRIBUTE_ID (0x8527) +#define ZCL_RX_PRICE_TIER41_ATTRIBUTE_ID (0x8528) +#define ZCL_RX_PRICE_TIER42_ATTRIBUTE_ID (0x8529) +#define ZCL_RX_PRICE_TIER43_ATTRIBUTE_ID (0x852A) +#define ZCL_RX_PRICE_TIER44_ATTRIBUTE_ID (0x852B) +#define ZCL_RX_PRICE_TIER45_ATTRIBUTE_ID (0x852C) +#define ZCL_RX_PRICE_TIER46_ATTRIBUTE_ID (0x852D) +#define ZCL_RX_PRICE_TIER47_ATTRIBUTE_ID (0x852E) +#define ZCL_RX_PRICE_TIER48_ATTRIBUTE_ID (0x852F) +#define ZCL_RX_TARIFF_LABEL_ATTRIBUTE_ID (0x8610) +#define ZCL_RX_NUMBER_OF_PRICE_TIERS_IN_USE_ATTRIBUTE_ID (0x8611) +#define ZCL_RX_NUMBER_OF_BLOCK_THRESHOLDS_IN_USE_ATTRIBUTE_ID (0x8612) +#define ZCL_RX_TIER_BLOCK_MODE_ATTRIBUTE_ID (0x8613) +#define ZCL_RX_TARIFF_RESOLUTION_PERIOD_ATTRIBUTE_ID (0x8615) +#define ZCL_RX_CO2_ATTRIBUTE_ID (0x8625) +#define ZCL_RX_CO2_UNIT_ATTRIBUTE_ID (0x8626) +#define ZCL_RX_CO2_TRAILING_DIGIT_ATTRIBUTE_ID (0x8627) +#define ZCL_RX_CURRENT_BILLING_PERIOD_START_ATTRIBUTE_ID (0x8700) +#define ZCL_RX_CURRENT_BILLING_PERIOD_DURATION_ATTRIBUTE_ID (0x8701) +#define ZCL_RX_LAST_BILLING_PERIOD_START_ATTRIBUTE_ID (0x8702) +#define ZCL_RX_LAST_BILLING_PERIOD_DURATION_ATTRIBUTE_ID (0x8703) +#define ZCL_RX_LAST_BILLING_PERIOD_CONSOLIDATED_BILL_ATTRIBUTE_ID (0x8704) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Demand Response and Load Control + +// Client attributes +#define ZCL_UTILITY_ENROLLMENT_GROUP_ATTRIBUTE_ID (0x0000) +#define ZCL_START_RANDOMIZATION_MINUTES_ATTRIBUTE_ID (0x0001) +#define ZCL_DURATION_RANDOMIZATION_MINUTES_ATTRIBUTE_ID (0x0002) +#define ZCL_DEVICE_CLASS_VALUE_ATTRIBUTE_ID (0x0003) +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) + +// Server attributes +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Simple Metering + +// Client attributes +#define ZCL_FUNCTIONAL_NOTIFICATION_FLAGS_ATTRIBUTE_ID (0x0000) +#define ZCL_NOTIFICATION_FLAGS_2_ATTRIBUTE_ID (0x0001) +#define ZCL_NOTIFICATION_FLAGS_3_ATTRIBUTE_ID (0x0002) +#define ZCL_NOTIFICATION_FLAGS_4_ATTRIBUTE_ID (0x0003) +#define ZCL_NOTIFICATION_FLAGS_5_ATTRIBUTE_ID (0x0004) +#define ZCL_NOTIFICATION_FLAGS_6_ATTRIBUTE_ID (0x0005) +#define ZCL_NOTIFICATION_FLAGS_7_ATTRIBUTE_ID (0x0006) +#define ZCL_NOTIFICATION_FLAGS_8_ATTRIBUTE_ID (0x0007) +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) + +// Server attributes +#define ZCL_CURRENT_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0000) +#define ZCL_CURRENT_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0001) +#define ZCL_CURRENT_MAX_DEMAND_DELIVERED_ATTRIBUTE_ID (0x0002) +#define ZCL_CURRENT_MAX_DEMAND_RECEIVED_ATTRIBUTE_ID (0x0003) +#define ZCL_DFT_SUMMATION_ATTRIBUTE_ID (0x0004) +#define ZCL_DAILY_FREEZE_TIME_ATTRIBUTE_ID (0x0005) +#define ZCL_POWER_FACTOR_ATTRIBUTE_ID (0x0006) +#define ZCL_READING_SNAP_SHOT_TIME_ATTRIBUTE_ID (0x0007) +#define ZCL_CURRENT_MAX_DEMAND_DELIVERED_TIME_ATTRIBUTE_ID (0x0008) +#define ZCL_CURRENT_MAX_DEMAND_RECEIVED_TIME_ATTRIBUTE_ID (0x0009) +#define ZCL_DEFAULT_UPDATE_PERIOD_ATTRIBUTE_ID (0x000A) +#define ZCL_FAST_POLL_UPDATE_PERIOD_ATTRIBUTE_ID (0x000B) +#define ZCL_CURRENT_BLOCK_PERIOD_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x000C) +#define ZCL_DAILY_CONSUMPTION_TARGET_ATTRIBUTE_ID (0x000D) +#define ZCL_CURRENT_BLOCK_ATTRIBUTE_ID (0x000E) +#define ZCL_PROFILE_INTERVAL_PERIOD_ATTRIBUTE_ID (0x000F) +#define ZCL_INTERVAL_READ_REPORTING_PERIOD_ATTRIBUTE_ID (0x0010) +#define ZCL_PRESET_READING_TIME_ATTRIBUTE_ID (0x0011) +#define ZCL_VOLUME_PER_REPORT_ATTRIBUTE_ID (0x0012) +#define ZCL_FLOW_RESTRICTION_ATTRIBUTE_ID (0x0013) +#define ZCL_SUPPLY_STATUS_ATTRIBUTE_ID (0x0014) +#define ZCL_CURRENT_INLET_ENERGY_CARRIER_SUMMATION_ATTRIBUTE_ID (0x0015) +#define ZCL_CURRENT_OUTLET_ENERGY_CARRIER_SUMMATION_ATTRIBUTE_ID (0x0016) +#define ZCL_INLET_TEMPERATURE_ATTRIBUTE_ID (0x0017) +#define ZCL_OUTLET_TEMPERATURE_ATTRIBUTE_ID (0x0018) +#define ZCL_CONTROL_TEMPERATURE_ATTRIBUTE_ID (0x0019) +#define ZCL_CURRENT_INLET_ENERGY_CARRIER_DEMAND_ATTRIBUTE_ID (0x001A) +#define ZCL_CURRENT_OUTLET_ENERGY_CARRIER_DEMAND_ATTRIBUTE_ID (0x001B) +#define ZCL_PREVIOUS_BLOCK_PERIOD_CONSUMIPTION_DELIVERED_ATTRIBUTE_ID (0x001C) +#define ZCL_CURRENT_BLOCK_PERIOD_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x001D) +#define ZCL_CURRENT_BLOCK_RECEIVED_ATTRIBUTE_ID (0x001E) +#define ZCL_DFT_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x001F) +#define ZCL_ACTIVE_REGISTER_TIER_DELIVERED_ATTRIBUTE_ID (0x0020) +#define ZCL_ACTIVE_REGISTER_TIER_RECEIVED_ATTRIBUTE_ID (0x0021) +#define ZCL_LAST_BLOCK_SWITCH_TIME_ATTRIBUTE_ID (0x0022) +#define ZCL_CURRENT_TIER1_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0100) +#define ZCL_CURRENT_TIER1_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0101) +#define ZCL_CURRENT_TIER2_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0102) +#define ZCL_CURRENT_TIER2_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0103) +#define ZCL_CURRENT_TIER3_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0104) +#define ZCL_CURRENT_TIER3_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0105) +#define ZCL_CURRENT_TIER4_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0106) +#define ZCL_CURRENT_TIER4_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0107) +#define ZCL_CURRENT_TIER5_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0108) +#define ZCL_CURRENT_TIER5_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0109) +#define ZCL_CURRENT_TIER6_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x010A) +#define ZCL_CURRENT_TIER6_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x010B) +#define ZCL_CURRENT_TIER7_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x010C) +#define ZCL_CURRENT_TIER7_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x010D) +#define ZCL_CURRENT_TIER8_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x010E) +#define ZCL_CURRENT_TIER8_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x010F) +#define ZCL_CURRENT_TIER9_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0110) +#define ZCL_CURRENT_TIER9_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0111) +#define ZCL_CURRENT_TIER10_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0112) +#define ZCL_CURRENT_TIER10_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0113) +#define ZCL_CURRENT_TIER11_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0114) +#define ZCL_CURRENT_TIER11_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0115) +#define ZCL_CURRENT_TIER12_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0116) +#define ZCL_CURRENT_TIER12_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0117) +#define ZCL_CURRENT_TIER13_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0118) +#define ZCL_CURRENT_TIER13_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0119) +#define ZCL_CURRENT_TIER14_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x011A) +#define ZCL_CURRENT_TIER14_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x011B) +#define ZCL_CURRENT_TIER15_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x011C) +#define ZCL_CURRENT_TIER15_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x011D) +#define ZCL_CURRENT_TIER16_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x011E) +#define ZCL_CURRENT_TIER16_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x011F) +#define ZCL_CURRENT_TIER17_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0120) +#define ZCL_CURRENT_TIER17_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0121) +#define ZCL_CURRENT_TIER18_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0122) +#define ZCL_CURRENT_TIER18_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0123) +#define ZCL_CURRENT_TIER19_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0124) +#define ZCL_CURRENT_TIER19_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0125) +#define ZCL_CURRENT_TIER20_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0126) +#define ZCL_CURRENT_TIER20_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0127) +#define ZCL_CURRENT_TIER21_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0128) +#define ZCL_CURRENT_TIER21_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0129) +#define ZCL_CURRENT_TIER22_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x012A) +#define ZCL_CURRENT_TIER22_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x012B) +#define ZCL_CURRENT_TIER23_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x012C) +#define ZCL_CURRENT_TIER23_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x012D) +#define ZCL_CURRENT_TIER24_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x012E) +#define ZCL_CURRENT_TIER24_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x012F) +#define ZCL_CURRENT_TIER25_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0130) +#define ZCL_CURRENT_TIER25_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0131) +#define ZCL_CURRENT_TIER26_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0132) +#define ZCL_CURRENT_TIER26_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0133) +#define ZCL_CURRENT_TIER27_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0134) +#define ZCL_CURRENT_TIER27_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0135) +#define ZCL_CURRENT_TIER28_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0136) +#define ZCL_CURRENT_TIER28_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0137) +#define ZCL_CURRENT_TIER29_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0138) +#define ZCL_CURRENT_TIER29_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0139) +#define ZCL_CURRENT_TIER30_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x013A) +#define ZCL_CURRENT_TIER30_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x013B) +#define ZCL_CURRENT_TIER31_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x013C) +#define ZCL_CURRENT_TIER31_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x013D) +#define ZCL_CURRENT_TIER32_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x013E) +#define ZCL_CURRENT_TIER32_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x013F) +#define ZCL_CURRENT_TIER33_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0140) +#define ZCL_CURRENT_TIER33_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0141) +#define ZCL_CURRENT_TIER34_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0142) +#define ZCL_CURRENT_TIER34_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0143) +#define ZCL_CURRENT_TIER35_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0144) +#define ZCL_CURRENT_TIER35_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0145) +#define ZCL_CURRENT_TIER36_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0146) +#define ZCL_CURRENT_TIER36_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0147) +#define ZCL_CURRENT_TIER37_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0148) +#define ZCL_CURRENT_TIER37_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0149) +#define ZCL_CURRENT_TIER38_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x014A) +#define ZCL_CURRENT_TIER38_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x014B) +#define ZCL_CURRENT_TIER39_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x014C) +#define ZCL_CURRENT_TIER39_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x014D) +#define ZCL_CURRENT_TIER40_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x014E) +#define ZCL_CURRENT_TIER40_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x014F) +#define ZCL_CURRENT_TIER41_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0150) +#define ZCL_CURRENT_TIER41_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0151) +#define ZCL_CURRENT_TIER42_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0152) +#define ZCL_CURRENT_TIER42_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0153) +#define ZCL_CURRENT_TIER43_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0154) +#define ZCL_CURRENT_TIER43_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0155) +#define ZCL_CURRENT_TIER44_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0156) +#define ZCL_CURRENT_TIER44_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0157) +#define ZCL_CURRENT_TIER45_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0158) +#define ZCL_CURRENT_TIER45_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0159) +#define ZCL_CURRENT_TIER46_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x015A) +#define ZCL_CURRENT_TIER46_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x015B) +#define ZCL_CURRENT_TIER47_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x015C) +#define ZCL_CURRENT_TIER47_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x015D) +#define ZCL_CURRENT_TIER48_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x015E) +#define ZCL_CURRENT_TIER48_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x015F) +#define ZCL_CPP1_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x01FC) +#define ZCL_CPP2_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x01FE) +#define ZCL_STATUS_ATTRIBUTE_ID (0x0200) +#define ZCL_REMAINING_BATTERY_LIFE_ATTRIBUTE_ID (0x0201) +#define ZCL_HOURS_IN_OPERATION_ATTRIBUTE_ID (0x0202) +#define ZCL_HOURS_IN_FAULT_ATTRIBUTE_ID (0x0203) +#define ZCL_EXTENDED_STATUS_ATTRIBUTE_ID (0x0204) +#define ZCL_REMAINING_BATTERY_LIFE_IN_DAYS_ATTRIBUTE_ID (0x0205) +#define ZCL_CURRENT_METER_ID_ATTRIBUTE_ID (0x0206) +#define ZCL_AMBIENT_CONSUMPTION_INDICATOR_ATTRIBUTE_ID (0x0207) +#define ZCL_UNIT_OF_MEASURE_ATTRIBUTE_ID (0x0300) +#define ZCL_MULTIPLIER_ATTRIBUTE_ID (0x0301) +#define ZCL_DIVISOR_ATTRIBUTE_ID (0x0302) +#define ZCL_SUMMATION_FORMATTING_ATTRIBUTE_ID (0x0303) +#define ZCL_DEMAND_FORMATTING_ATTRIBUTE_ID (0x0304) +#define ZCL_HISTORICAL_CONSUMPTION_FORMATTING_ATTRIBUTE_ID (0x0305) +#define ZCL_METERING_DEVICE_TYPE_ATTRIBUTE_ID (0x0306) +#define ZCL_SITE_ID_ATTRIBUTE_ID (0x0307) +#define ZCL_METER_SERIAL_NUMBER_ATTRIBUTE_ID (0x0308) +#define ZCL_ENERGY_CARRIER_UNIT_OF_MEASURE_ATTRIBUTE_ID (0x0309) +#define ZCL_ENERGY_CARRIER_SUMMATION_FORMATTING_ATTRIBUTE_ID (0x030A) +#define ZCL_ENERGY_CARRIER_DEMAND_FORMATTING_ATTRIBUTE_ID (0x030B) +#define ZCL_TEMPERATURE_UNIT_OF_MEASURE_ATTRIBUTE_ID (0x030C) +#define ZCL_TEMPERATURE_FORMATTING_ATTRIBUTE_ID (0x030D) +#define ZCL_MODULE_SERIAL_NUMBER_ATTRIBUTE_ID (0x030E) +#define ZCL_OPERATING_TARIFF_LABEL_DELIVERED_ATTRIBUTE_ID (0x030F) +#define ZCL_OPERATING_TARIFF_LABEL_RECEIVED_ATTRIBUTE_ID (0x0310) +#define ZCL_CUSTOMER_ID_NUMBER_ATTRIBUTE_ID (0x0311) +#define ZCL_ALTERNATIVE_UNIT_OF_MEASURE_ATTRIBUTE_ID (0x0312) +#define ZCL_ALTERNATIVE_DEMAND_FORMATTING_ATTRIBUTE_ID (0x0313) +#define ZCL_ALTERNATIVE_CONSUMPTION_FORMATTING_ATTRIBUTE_ID (0x0314) +#define ZCL_INSTANTANEOUS_DEMAND_ATTRIBUTE_ID (0x0400) +#define ZCL_CURRENT_DAY_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0401) +#define ZCL_CURRENT_DAY_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0402) +#define ZCL_PREVIOUS_DAY_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0403) +#define ZCL_PREVIOUS_DAY_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0404) +#define ZCL_CURRENT_PARTIAL_PROFILE_INTERVAL_START_TIME_DELIVERED_ATTRIBUTE_ID (0x0405) +#define ZCL_CURRENT_PARTIAL_PROFILE_INTERVAL_START_TIME_RECEIVED_ATTRIBUTE_ID (0x0406) +#define ZCL_CURRENT_PARTIAL_PROFILE_INTERVAL_VALUE_DELIVERED_ATTRIBUTE_ID (0x0407) +#define ZCL_CURRENT_PARTIAL_PROFILE_INTERVAL_VALUE_RECEIVED_ATTRIBUTE_ID (0x0408) +#define ZCL_CURRENT_DAY_MAX_PRESSURE_ATTRIBUTE_ID (0x0409) +#define ZCL_CURRENT_DAY_MIN_PRESSURE_ATTRIBUTE_ID (0x040A) +#define ZCL_PREVIOUS_DAY_MAX_PRESSURE_ATTRIBUTE_ID (0x040B) +#define ZCL_PREVIOUS_DAY_MIN_PRESSURE_ATTRIBUTE_ID (0x040C) +#define ZCL_CURRENT_DAY_MAX_DEMAND_ATTRIBUTE_ID (0x040D) +#define ZCL_PREVIOUS_DAY_MAX_DEMAND_ATTRIBUTE_ID (0x040E) +#define ZCL_CURRENT_MONTH_MAX_DEMAND_ATTRIBUTE_ID (0x040F) +#define ZCL_CURRENT_YEAR_MAX_DEMAND_ATTRIBUTE_ID (0x0410) +#define ZCL_CURRENT_DAY_MAX_ENERGY_CARRIER_DEMAND_ATTRIBUTE_ID (0x0411) +#define ZCL_PREVIOUS_DAY_MAX_ENERGY_CARRIER_DEMAND_ATTRIBUTE_ID (0x0412) +#define ZCL_CURRENT_MONTH_MAX_ENERGY_CARRIER_DEMAND_ATTRIBUTE_ID (0x0413) +#define ZCL_CURRENT_MONTH_MIN_ENERGY_CARRIER_DEMAND_ATTRIBUTE_ID (0x0414) +#define ZCL_CURRENT_YEAR_MAX_ENERGY_CARRIER_DEMAND_ATTRIBUTE_ID (0x0415) +#define ZCL_CURRENT_YEAR_MIN_ENERGY_CARRIER_DEMAND_ATTRIBUTE_ID (0x0416) +#define ZCL_PREVIOUS_DAY2_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0420) +#define ZCL_PREVIOUS_DAY2_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0421) +#define ZCL_PREVIOUS_DAY3_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0422) +#define ZCL_PREVIOUS_DAY3_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0423) +#define ZCL_PREVIOUS_DAY4_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0424) +#define ZCL_PREVIOUS_DAY4_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0425) +#define ZCL_PREVIOUS_DAY5_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0426) +#define ZCL_PREVIOUS_DAY5_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0427) +#define ZCL_PREVIOUS_DAY6_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0428) +#define ZCL_PREVIOUS_DAY6_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0429) +#define ZCL_PREVIOUS_DAY7_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x042A) +#define ZCL_PREVIOUS_DAY7_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x042B) +#define ZCL_PREVIOUS_DAY8_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x042C) +#define ZCL_PREVIOUS_DAY8_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x042D) +#define ZCL_CURRENT_WEEK_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0430) +#define ZCL_CURRENT_WEEK_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0431) +#define ZCL_PREVIOUS_WEEK_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0432) +#define ZCL_PREVIOUS_WEEK_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0433) +#define ZCL_PREVIOUS_WEEK2_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0434) +#define ZCL_PREVIOUS_WEEK2_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0435) +#define ZCL_PREVIOUS_WEEK3_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0436) +#define ZCL_PREVIOUS_WEEK3_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0437) +#define ZCL_PREVIOUS_WEEK4_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0438) +#define ZCL_PREVIOUS_WEEK4_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0439) +#define ZCL_PREVIOUS_WEEK5_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x043A) +#define ZCL_PREVIOUS_WEEK5_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x043B) +#define ZCL_CURRENT_MONTH_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0440) +#define ZCL_CURRENT_MONTH_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0441) +#define ZCL_PREVIOUS_MONTH_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0442) +#define ZCL_PREVIOUS_MONTH_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0443) +#define ZCL_PREVIOUS_MONTH2_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0444) +#define ZCL_PREVIOUS_MONTH2_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0445) +#define ZCL_PREVIOUS_MONTH3_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0446) +#define ZCL_PREVIOUS_MONTH3_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0447) +#define ZCL_PREVIOUS_MONTH4_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0448) +#define ZCL_PREVIOUS_MONTH4_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0449) +#define ZCL_PREVIOUS_MONTH5_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x044A) +#define ZCL_PREVIOUS_MONTH5_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x044B) +#define ZCL_PREVIOUS_MONTH6_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x044C) +#define ZCL_PREVIOUS_MONTH6_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x044D) +#define ZCL_PREVIOUS_MONTH7_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x044E) +#define ZCL_PREVIOUS_MONTH7_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x044F) +#define ZCL_PREVIOUS_MONTH8_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0450) +#define ZCL_PREVIOUS_MONTH8_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0451) +#define ZCL_PREVIOUS_MONTH9_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0452) +#define ZCL_PREVIOUS_MONTH9_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0453) +#define ZCL_PREVIOUS_MONTH10_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0454) +#define ZCL_PREVIOUS_MONTH10_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0455) +#define ZCL_PREVIOUS_MONTH11_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0456) +#define ZCL_PREVIOUS_MONTH11_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0457) +#define ZCL_PREVIOUS_MONTH12_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0458) +#define ZCL_PREVIOUS_MONTH12_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0459) +#define ZCL_PREVIOUS_MONTH13_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x045A) +#define ZCL_PREVIOUS_MONTH13_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x045B) +#define ZCL_METERING_HISTORICAL_FREEZE_TIME_ATTRIBUTE_ID (0x045C) +#define ZCL_CURRENT_DAY_MAX_DEMAND_DELIVERED_ATTRIBUTE_ID (0x045D) +#define ZCL_CURRENT_DAY_MAX_DEMAND_DELIVERED_TIME_ATTRIBUTE_ID (0x045E) +#define ZCL_CURRENT_DAY_MAX_DEMAND_RECEIVED_ATTRIBUTE_ID (0x045F) +#define ZCL_CURRENT_DAY_MAX_DEMAND_RECEIVED_TIME_ATTRIBUTE_ID (0x0460) +#define ZCL_PREVIOUS_DAY_MAX_DEMAND_DELIVERED_ATTRIBUTE_ID (0x0461) +#define ZCL_PREVIOUS_DAY_MAX_DEMAND_DELIVERED_TIME_ATTRIBUTE_ID (0x0462) +#define ZCL_PREVIOUS_DAY_MAX_DEMAND_RECEIVED_ATTRIBUTE_ID (0x0463) +#define ZCL_PREVIOUS_DAY_MAX_DEMAND_RECEIVED_TIME_ATTRIBUTE_ID (0x0464) +#define ZCL_MAX_NUMBER_OF_PERIODS_DELIVERED_ATTRIBUTE_ID (0x0500) +#define ZCL_CURRENT_DEMAND_DELIVERED_ATTRIBUTE_ID (0x0600) +#define ZCL_DEMAND_LIMIT_ATTRIBUTE_ID (0x0601) +#define ZCL_DEMAND_INTEGRATION_PERIOD_ATTRIBUTE_ID (0x0602) +#define ZCL_NUMBER_OF_DEMAND_SUBINTERVALS_ATTRIBUTE_ID (0x0603) +#define ZCL_DEMAND_LIMIT_ARM_DURATION_IN_MINUTES_ATTRIBUTE_ID (0x0604) +#define ZCL_LOAD_LIMIT_SUPPLY_STATE_ATTRIBUTE_ID (0x0605) +#define ZCL_LOAD_LIMIT_COUNTER_ATTRIBUTE_ID (0x0606) +#define ZCL_SUPPLY_TAMPER_STATE_ATTRIBUTE_ID (0x0607) +#define ZCL_SUPPLY_DEPLETION_STATE_ATTRIBUTE_ID (0x0608) +#define ZCL_SUPPLY_UNCONTROLLED_FLOW_STATE_ATTRIBUTE_ID (0x0609) +#define ZCL_CURRENT_NO_TIER_BLOCK1_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0700) +#define ZCL_CURRENT_NO_TIER_BLOCK2_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0701) +#define ZCL_CURRENT_NO_TIER_BLOCK3_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0702) +#define ZCL_CURRENT_NO_TIER_BLOCK4_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0703) +#define ZCL_CURRENT_NO_TIER_BLOCK5_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0704) +#define ZCL_CURRENT_NO_TIER_BLOCK6_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0705) +#define ZCL_CURRENT_NO_TIER_BLOCK7_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0706) +#define ZCL_CURRENT_NO_TIER_BLOCK8_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0707) +#define ZCL_CURRENT_NO_TIER_BLOCK9_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0708) +#define ZCL_CURRENT_NO_TIER_BLOCK10_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0709) +#define ZCL_CURRENT_NO_TIER_BLOCK11_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x070A) +#define ZCL_CURRENT_NO_TIER_BLOCK12_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x070B) +#define ZCL_CURRENT_NO_TIER_BLOCK13_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x070C) +#define ZCL_CURRENT_NO_TIER_BLOCK14_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x070D) +#define ZCL_CURRENT_NO_TIER_BLOCK15_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x070E) +#define ZCL_CURRENT_NO_TIER_BLOCK16_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x070F) +#define ZCL_CURRENT_TIER1_BLOCK1_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0710) +#define ZCL_CURRENT_TIER1_BLOCK2_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0711) +#define ZCL_CURRENT_TIER1_BLOCK3_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0712) +#define ZCL_CURRENT_TIER1_BLOCK4_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0713) +#define ZCL_CURRENT_TIER1_BLOCK5_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0714) +#define ZCL_CURRENT_TIER1_BLOCK6_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0715) +#define ZCL_CURRENT_TIER1_BLOCK7_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0716) +#define ZCL_CURRENT_TIER1_BLOCK8_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0717) +#define ZCL_CURRENT_TIER1_BLOCK9_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0718) +#define ZCL_CURRENT_TIER1_BLOCK10_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0719) +#define ZCL_CURRENT_TIER1_BLOCK11_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x071A) +#define ZCL_CURRENT_TIER1_BLOCK12_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x071B) +#define ZCL_CURRENT_TIER1_BLOCK13_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x071C) +#define ZCL_CURRENT_TIER1_BLOCK14_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x071D) +#define ZCL_CURRENT_TIER1_BLOCK15_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x071E) +#define ZCL_CURRENT_TIER1_BLOCK16_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x071F) +#define ZCL_CURRENT_TIER2_BLOCK1_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0720) +#define ZCL_CURRENT_TIER2_BLOCK2_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0721) +#define ZCL_CURRENT_TIER2_BLOCK3_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0722) +#define ZCL_CURRENT_TIER2_BLOCK4_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0723) +#define ZCL_CURRENT_TIER2_BLOCK5_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0724) +#define ZCL_CURRENT_TIER2_BLOCK6_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0725) +#define ZCL_CURRENT_TIER2_BLOCK7_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0726) +#define ZCL_CURRENT_TIER2_BLOCK8_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0727) +#define ZCL_CURRENT_TIER2_BLOCK9_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0728) +#define ZCL_CURRENT_TIER2_BLOCK10_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0729) +#define ZCL_CURRENT_TIER2_BLOCK11_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x072A) +#define ZCL_CURRENT_TIER2_BLOCK12_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x072B) +#define ZCL_CURRENT_TIER2_BLOCK13_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x072C) +#define ZCL_CURRENT_TIER2_BLOCK14_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x072D) +#define ZCL_CURRENT_TIER2_BLOCK15_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x072E) +#define ZCL_CURRENT_TIER2_BLOCK16_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x072F) +#define ZCL_CURRENT_TIER3_BLOCK1_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0730) +#define ZCL_CURRENT_TIER3_BLOCK2_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0731) +#define ZCL_CURRENT_TIER3_BLOCK3_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0732) +#define ZCL_CURRENT_TIER3_BLOCK4_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0733) +#define ZCL_CURRENT_TIER3_BLOCK5_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0734) +#define ZCL_CURRENT_TIER3_BLOCK6_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0735) +#define ZCL_CURRENT_TIER3_BLOCK7_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0736) +#define ZCL_CURRENT_TIER3_BLOCK8_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0737) +#define ZCL_CURRENT_TIER3_BLOCK9_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0738) +#define ZCL_CURRENT_TIER3_BLOCK10_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0739) +#define ZCL_CURRENT_TIER3_BLOCK11_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x073A) +#define ZCL_CURRENT_TIER3_BLOCK12_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x073B) +#define ZCL_CURRENT_TIER3_BLOCK13_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x073C) +#define ZCL_CURRENT_TIER3_BLOCK14_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x073D) +#define ZCL_CURRENT_TIER3_BLOCK15_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x073E) +#define ZCL_CURRENT_TIER3_BLOCK16_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x073F) +#define ZCL_CURRENT_TIER4_BLOCK1_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0740) +#define ZCL_CURRENT_TIER4_BLOCK2_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0741) +#define ZCL_CURRENT_TIER4_BLOCK3_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0742) +#define ZCL_CURRENT_TIER4_BLOCK4_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0743) +#define ZCL_CURRENT_TIER4_BLOCK5_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0744) +#define ZCL_CURRENT_TIER4_BLOCK6_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0745) +#define ZCL_CURRENT_TIER4_BLOCK7_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0746) +#define ZCL_CURRENT_TIER4_BLOCK8_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0747) +#define ZCL_CURRENT_TIER4_BLOCK9_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0748) +#define ZCL_CURRENT_TIER4_BLOCK10_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0749) +#define ZCL_CURRENT_TIER4_BLOCK11_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x074A) +#define ZCL_CURRENT_TIER4_BLOCK12_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x074B) +#define ZCL_CURRENT_TIER4_BLOCK13_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x074C) +#define ZCL_CURRENT_TIER4_BLOCK14_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x074D) +#define ZCL_CURRENT_TIER4_BLOCK15_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x074E) +#define ZCL_CURRENT_TIER4_BLOCK16_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x074F) +#define ZCL_CURRENT_TIER5_BLOCK1_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0750) +#define ZCL_CURRENT_TIER5_BLOCK2_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0751) +#define ZCL_CURRENT_TIER5_BLOCK3_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0752) +#define ZCL_CURRENT_TIER5_BLOCK4_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0753) +#define ZCL_CURRENT_TIER5_BLOCK5_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0754) +#define ZCL_CURRENT_TIER5_BLOCK6_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0755) +#define ZCL_CURRENT_TIER5_BLOCK7_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0756) +#define ZCL_CURRENT_TIER5_BLOCK8_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0757) +#define ZCL_CURRENT_TIER5_BLOCK9_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0758) +#define ZCL_CURRENT_TIER5_BLOCK10_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0759) +#define ZCL_CURRENT_TIER5_BLOCK11_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x075A) +#define ZCL_CURRENT_TIER5_BLOCK12_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x075B) +#define ZCL_CURRENT_TIER5_BLOCK13_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x075C) +#define ZCL_CURRENT_TIER5_BLOCK14_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x075D) +#define ZCL_CURRENT_TIER5_BLOCK15_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x075E) +#define ZCL_CURRENT_TIER5_BLOCK16_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x075F) +#define ZCL_CURRENT_TIER6_BLOCK1_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0760) +#define ZCL_CURRENT_TIER6_BLOCK2_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0761) +#define ZCL_CURRENT_TIER6_BLOCK3_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0762) +#define ZCL_CURRENT_TIER6_BLOCK4_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0763) +#define ZCL_CURRENT_TIER6_BLOCK5_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0764) +#define ZCL_CURRENT_TIER6_BLOCK6_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0765) +#define ZCL_CURRENT_TIER6_BLOCK7_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0766) +#define ZCL_CURRENT_TIER6_BLOCK8_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0767) +#define ZCL_CURRENT_TIER6_BLOCK9_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0768) +#define ZCL_CURRENT_TIER6_BLOCK10_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0769) +#define ZCL_CURRENT_TIER6_BLOCK11_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x076A) +#define ZCL_CURRENT_TIER6_BLOCK12_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x076B) +#define ZCL_CURRENT_TIER6_BLOCK13_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x076C) +#define ZCL_CURRENT_TIER6_BLOCK14_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x076D) +#define ZCL_CURRENT_TIER6_BLOCK15_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x076E) +#define ZCL_CURRENT_TIER6_BLOCK16_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x076F) +#define ZCL_CURRENT_TIER7_BLOCK1_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0770) +#define ZCL_CURRENT_TIER7_BLOCK2_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0771) +#define ZCL_CURRENT_TIER7_BLOCK3_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0772) +#define ZCL_CURRENT_TIER7_BLOCK4_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0773) +#define ZCL_CURRENT_TIER7_BLOCK5_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0774) +#define ZCL_CURRENT_TIER7_BLOCK6_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0775) +#define ZCL_CURRENT_TIER7_BLOCK7_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0776) +#define ZCL_CURRENT_TIER7_BLOCK8_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0777) +#define ZCL_CURRENT_TIER7_BLOCK9_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0778) +#define ZCL_CURRENT_TIER7_BLOCK10_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0779) +#define ZCL_CURRENT_TIER7_BLOCK11_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x077A) +#define ZCL_CURRENT_TIER7_BLOCK12_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x077B) +#define ZCL_CURRENT_TIER7_BLOCK13_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x077C) +#define ZCL_CURRENT_TIER7_BLOCK14_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x077D) +#define ZCL_CURRENT_TIER7_BLOCK15_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x077E) +#define ZCL_CURRENT_TIER7_BLOCK16_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x077F) +#define ZCL_CURRENT_TIER8_BLOCK1_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0780) +#define ZCL_CURRENT_TIER8_BLOCK2_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0781) +#define ZCL_CURRENT_TIER8_BLOCK3_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0782) +#define ZCL_CURRENT_TIER8_BLOCK4_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0783) +#define ZCL_CURRENT_TIER8_BLOCK5_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0784) +#define ZCL_CURRENT_TIER8_BLOCK6_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0785) +#define ZCL_CURRENT_TIER8_BLOCK7_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0786) +#define ZCL_CURRENT_TIER8_BLOCK8_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0787) +#define ZCL_CURRENT_TIER8_BLOCK9_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0788) +#define ZCL_CURRENT_TIER8_BLOCK10_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0789) +#define ZCL_CURRENT_TIER8_BLOCK11_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x078A) +#define ZCL_CURRENT_TIER8_BLOCK12_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x078B) +#define ZCL_CURRENT_TIER8_BLOCK13_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x078C) +#define ZCL_CURRENT_TIER8_BLOCK14_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x078D) +#define ZCL_CURRENT_TIER8_BLOCK15_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x078E) +#define ZCL_CURRENT_TIER8_BLOCK16_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x078F) +#define ZCL_CURRENT_TIER9_BLOCK1_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0790) +#define ZCL_CURRENT_TIER9_BLOCK2_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0791) +#define ZCL_CURRENT_TIER9_BLOCK3_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0792) +#define ZCL_CURRENT_TIER9_BLOCK4_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0793) +#define ZCL_CURRENT_TIER9_BLOCK5_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0794) +#define ZCL_CURRENT_TIER9_BLOCK6_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0795) +#define ZCL_CURRENT_TIER9_BLOCK7_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0796) +#define ZCL_CURRENT_TIER9_BLOCK8_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0797) +#define ZCL_CURRENT_TIER9_BLOCK9_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0798) +#define ZCL_CURRENT_TIER9_BLOCK10_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0799) +#define ZCL_CURRENT_TIER9_BLOCK11_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x079A) +#define ZCL_CURRENT_TIER9_BLOCK12_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x079B) +#define ZCL_CURRENT_TIER9_BLOCK13_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x079C) +#define ZCL_CURRENT_TIER9_BLOCK14_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x079D) +#define ZCL_CURRENT_TIER9_BLOCK15_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x079E) +#define ZCL_CURRENT_TIER9_BLOCK16_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x079F) +#define ZCL_CURRENT_TIER10_BLOCK1_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07A0) +#define ZCL_CURRENT_TIER10_BLOCK2_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07A1) +#define ZCL_CURRENT_TIER10_BLOCK3_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07A2) +#define ZCL_CURRENT_TIER10_BLOCK4_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07A3) +#define ZCL_CURRENT_TIER10_BLOCK5_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07A4) +#define ZCL_CURRENT_TIER10_BLOCK6_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07A5) +#define ZCL_CURRENT_TIER10_BLOCK7_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07A6) +#define ZCL_CURRENT_TIER10_BLOCK8_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07A7) +#define ZCL_CURRENT_TIER10_BLOCK9_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07A8) +#define ZCL_CURRENT_TIER10_BLOCK10_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07A9) +#define ZCL_CURRENT_TIER10_BLOCK11_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07AA) +#define ZCL_CURRENT_TIER10_BLOCK12_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07AB) +#define ZCL_CURRENT_TIER10_BLOCK13_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07AC) +#define ZCL_CURRENT_TIER10_BLOCK14_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07AD) +#define ZCL_CURRENT_TIER10_BLOCK15_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07AE) +#define ZCL_CURRENT_TIER10_BLOCK16_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07AF) +#define ZCL_CURRENT_TIER11_BLOCK1_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07B0) +#define ZCL_CURRENT_TIER11_BLOCK2_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07B1) +#define ZCL_CURRENT_TIER11_BLOCK3_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07B2) +#define ZCL_CURRENT_TIER11_BLOCK4_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07B3) +#define ZCL_CURRENT_TIER11_BLOCK5_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07B4) +#define ZCL_CURRENT_TIER11_BLOCK6_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07B5) +#define ZCL_CURRENT_TIER11_BLOCK7_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07B6) +#define ZCL_CURRENT_TIER11_BLOCK8_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07B7) +#define ZCL_CURRENT_TIER11_BLOCK9_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07B8) +#define ZCL_CURRENT_TIER11_BLOCK10_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07B9) +#define ZCL_CURRENT_TIER11_BLOCK11_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07BA) +#define ZCL_CURRENT_TIER11_BLOCK12_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07BB) +#define ZCL_CURRENT_TIER11_BLOCK13_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07BC) +#define ZCL_CURRENT_TIER11_BLOCK14_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07BD) +#define ZCL_CURRENT_TIER11_BLOCK15_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07BE) +#define ZCL_CURRENT_TIER11_BLOCK16_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07BF) +#define ZCL_CURRENT_TIER12_BLOCK1_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07C0) +#define ZCL_CURRENT_TIER12_BLOCK2_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07C1) +#define ZCL_CURRENT_TIER12_BLOCK3_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07C2) +#define ZCL_CURRENT_TIER12_BLOCK4_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07C3) +#define ZCL_CURRENT_TIER12_BLOCK5_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07C4) +#define ZCL_CURRENT_TIER12_BLOCK6_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07C5) +#define ZCL_CURRENT_TIER12_BLOCK7_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07C6) +#define ZCL_CURRENT_TIER12_BLOCK8_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07C7) +#define ZCL_CURRENT_TIER12_BLOCK9_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07C8) +#define ZCL_CURRENT_TIER12_BLOCK10_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07C9) +#define ZCL_CURRENT_TIER12_BLOCK11_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07CA) +#define ZCL_CURRENT_TIER12_BLOCK12_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07CB) +#define ZCL_CURRENT_TIER12_BLOCK13_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07CC) +#define ZCL_CURRENT_TIER12_BLOCK14_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07CD) +#define ZCL_CURRENT_TIER12_BLOCK15_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07CE) +#define ZCL_CURRENT_TIER12_BLOCK16_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07CF) +#define ZCL_CURRENT_TIER13_BLOCK1_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07D0) +#define ZCL_CURRENT_TIER13_BLOCK2_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07D1) +#define ZCL_CURRENT_TIER13_BLOCK3_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07D2) +#define ZCL_CURRENT_TIER13_BLOCK4_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07D3) +#define ZCL_CURRENT_TIER13_BLOCK5_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07D4) +#define ZCL_CURRENT_TIER13_BLOCK6_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07D5) +#define ZCL_CURRENT_TIER13_BLOCK7_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07D6) +#define ZCL_CURRENT_TIER13_BLOCK8_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07D7) +#define ZCL_CURRENT_TIER13_BLOCK9_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07D8) +#define ZCL_CURRENT_TIER13_BLOCK10_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07D9) +#define ZCL_CURRENT_TIER13_BLOCK11_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07DA) +#define ZCL_CURRENT_TIER13_BLOCK12_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07DB) +#define ZCL_CURRENT_TIER13_BLOCK13_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07DC) +#define ZCL_CURRENT_TIER13_BLOCK14_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07DD) +#define ZCL_CURRENT_TIER13_BLOCK15_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07DE) +#define ZCL_CURRENT_TIER13_BLOCK16_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07DF) +#define ZCL_CURRENT_TIER14_BLOCK1_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07E0) +#define ZCL_CURRENT_TIER14_BLOCK2_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07E1) +#define ZCL_CURRENT_TIER14_BLOCK3_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07E2) +#define ZCL_CURRENT_TIER14_BLOCK4_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07E3) +#define ZCL_CURRENT_TIER14_BLOCK5_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07E4) +#define ZCL_CURRENT_TIER14_BLOCK6_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07E5) +#define ZCL_CURRENT_TIER14_BLOCK7_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07E6) +#define ZCL_CURRENT_TIER14_BLOCK8_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07E7) +#define ZCL_CURRENT_TIER14_BLOCK9_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07E8) +#define ZCL_CURRENT_TIER14_BLOCK10_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07E9) +#define ZCL_CURRENT_TIER14_BLOCK11_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07EA) +#define ZCL_CURRENT_TIER14_BLOCK12_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07EB) +#define ZCL_CURRENT_TIER14_BLOCK13_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07EC) +#define ZCL_CURRENT_TIER14_BLOCK14_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07ED) +#define ZCL_CURRENT_TIER14_BLOCK15_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07EE) +#define ZCL_CURRENT_TIER14_BLOCK16_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07EF) +#define ZCL_CURRENT_TIER15_BLOCK1_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07F0) +#define ZCL_CURRENT_TIER15_BLOCK2_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07F1) +#define ZCL_CURRENT_TIER15_BLOCK3_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07F2) +#define ZCL_CURRENT_TIER15_BLOCK4_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07F3) +#define ZCL_CURRENT_TIER15_BLOCK5_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07F4) +#define ZCL_CURRENT_TIER15_BLOCK6_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07F5) +#define ZCL_CURRENT_TIER15_BLOCK7_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07F6) +#define ZCL_CURRENT_TIER15_BLOCK8_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07F7) +#define ZCL_CURRENT_TIER15_BLOCK9_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07F8) +#define ZCL_CURRENT_TIER15_BLOCK10_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07F9) +#define ZCL_CURRENT_TIER15_BLOCK11_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07FA) +#define ZCL_CURRENT_TIER15_BLOCK12_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07FB) +#define ZCL_CURRENT_TIER15_BLOCK13_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07FC) +#define ZCL_CURRENT_TIER15_BLOCK14_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07FD) +#define ZCL_CURRENT_TIER15_BLOCK15_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07FE) +#define ZCL_CURRENT_TIER15_BLOCK16_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07FF) +#define ZCL_GENERIC_ALARM_MASK_ATTRIBUTE_ID (0x0800) +#define ZCL_ELECTRICITY_ALARM_MASK_ATTRIBUTE_ID (0x0801) +#define ZCL_GENERIC_FLOW_PRESSURE_ALARM_MASK_ATTRIBUTE_ID (0x0802) +#define ZCL_WATER_SPECIFIC_ALARM_MASK_ATTRIBUTE_ID (0x0803) +#define ZCL_HEAT_AND_COOLING_SPECIFIC_ALARM_MASK_ATTRIBUTE_ID (0x0804) +#define ZCL_GAS_SPECIFIC_ALARM_MASK_ATTRIBUTE_ID (0x0805) +#define ZCL_METERING_EXTENDED_GENERIC_ALARM_MASK_ATTRIBUTE_ID (0x0806) +#define ZCL_METERING_MANUFACTURE_ALARM_MASK_ATTRIBUTE_ID (0x0807) +#define ZCL_CURRENT_NO_TIER_BLOCK1_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0900) +#define ZCL_CURRENT_NO_TIER_BLOCK2_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0901) +#define ZCL_CURRENT_NO_TIER_BLOCK3_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0902) +#define ZCL_CURRENT_NO_TIER_BLOCK4_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0903) +#define ZCL_CURRENT_NO_TIER_BLOCK5_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0904) +#define ZCL_CURRENT_NO_TIER_BLOCK6_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0905) +#define ZCL_CURRENT_NO_TIER_BLOCK7_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0906) +#define ZCL_CURRENT_NO_TIER_BLOCK8_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0907) +#define ZCL_CURRENT_NO_TIER_BLOCK9_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0908) +#define ZCL_CURRENT_NO_TIER_BLOCK10_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0909) +#define ZCL_CURRENT_NO_TIER_BLOCK11_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x090A) +#define ZCL_CURRENT_NO_TIER_BLOCK12_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x090B) +#define ZCL_CURRENT_NO_TIER_BLOCK13_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x090C) +#define ZCL_CURRENT_NO_TIER_BLOCK14_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x090D) +#define ZCL_CURRENT_NO_TIER_BLOCK15_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x090E) +#define ZCL_CURRENT_NO_TIER_BLOCK16_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x090F) +#define ZCL_CURRENT_TIER1_BLOCK1_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0910) +#define ZCL_CURRENT_TIER1_BLOCK2_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0911) +#define ZCL_CURRENT_TIER1_BLOCK3_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0912) +#define ZCL_CURRENT_TIER1_BLOCK4_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0913) +#define ZCL_CURRENT_TIER1_BLOCK5_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0914) +#define ZCL_CURRENT_TIER1_BLOCK6_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0915) +#define ZCL_CURRENT_TIER1_BLOCK7_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0916) +#define ZCL_CURRENT_TIER1_BLOCK8_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0917) +#define ZCL_CURRENT_TIER1_BLOCK9_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0918) +#define ZCL_CURRENT_TIER1_BLOCK10_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0919) +#define ZCL_CURRENT_TIER1_BLOCK11_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x091A) +#define ZCL_CURRENT_TIER1_BLOCK12_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x091B) +#define ZCL_CURRENT_TIER1_BLOCK13_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x091C) +#define ZCL_CURRENT_TIER1_BLOCK14_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x091D) +#define ZCL_CURRENT_TIER1_BLOCK15_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x091E) +#define ZCL_CURRENT_TIER1_BLOCK16_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x091F) +#define ZCL_CURRENT_TIER2_BLOCK1_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0920) +#define ZCL_CURRENT_TIER2_BLOCK2_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0921) +#define ZCL_CURRENT_TIER2_BLOCK3_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0922) +#define ZCL_CURRENT_TIER2_BLOCK4_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0923) +#define ZCL_CURRENT_TIER2_BLOCK5_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0924) +#define ZCL_CURRENT_TIER2_BLOCK6_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0925) +#define ZCL_CURRENT_TIER2_BLOCK7_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0926) +#define ZCL_CURRENT_TIER2_BLOCK8_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0927) +#define ZCL_CURRENT_TIER2_BLOCK9_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0928) +#define ZCL_CURRENT_TIER2_BLOCK10_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0929) +#define ZCL_CURRENT_TIER2_BLOCK11_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x092A) +#define ZCL_CURRENT_TIER2_BLOCK12_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x092B) +#define ZCL_CURRENT_TIER2_BLOCK13_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x092C) +#define ZCL_CURRENT_TIER2_BLOCK14_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x092D) +#define ZCL_CURRENT_TIER2_BLOCK15_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x092E) +#define ZCL_CURRENT_TIER2_BLOCK16_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x092F) +#define ZCL_CURRENT_TIER3_BLOCK1_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0930) +#define ZCL_CURRENT_TIER3_BLOCK2_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0931) +#define ZCL_CURRENT_TIER3_BLOCK3_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0932) +#define ZCL_CURRENT_TIER3_BLOCK4_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0933) +#define ZCL_CURRENT_TIER3_BLOCK5_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0934) +#define ZCL_CURRENT_TIER3_BLOCK6_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0935) +#define ZCL_CURRENT_TIER3_BLOCK7_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0936) +#define ZCL_CURRENT_TIER3_BLOCK8_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0937) +#define ZCL_CURRENT_TIER3_BLOCK9_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0938) +#define ZCL_CURRENT_TIER3_BLOCK10_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0939) +#define ZCL_CURRENT_TIER3_BLOCK11_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x093A) +#define ZCL_CURRENT_TIER3_BLOCK12_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x093B) +#define ZCL_CURRENT_TIER3_BLOCK13_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x093C) +#define ZCL_CURRENT_TIER3_BLOCK14_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x093D) +#define ZCL_CURRENT_TIER3_BLOCK15_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x093E) +#define ZCL_CURRENT_TIER3_BLOCK16_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x093F) +#define ZCL_CURRENT_TIER4_BLOCK1_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0940) +#define ZCL_CURRENT_TIER4_BLOCK2_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0941) +#define ZCL_CURRENT_TIER4_BLOCK3_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0942) +#define ZCL_CURRENT_TIER4_BLOCK4_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0943) +#define ZCL_CURRENT_TIER4_BLOCK5_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0944) +#define ZCL_CURRENT_TIER4_BLOCK6_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0945) +#define ZCL_CURRENT_TIER4_BLOCK7_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0946) +#define ZCL_CURRENT_TIER4_BLOCK8_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0947) +#define ZCL_CURRENT_TIER4_BLOCK9_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0948) +#define ZCL_CURRENT_TIER4_BLOCK10_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0949) +#define ZCL_CURRENT_TIER4_BLOCK11_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x094A) +#define ZCL_CURRENT_TIER4_BLOCK12_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x094B) +#define ZCL_CURRENT_TIER4_BLOCK13_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x094C) +#define ZCL_CURRENT_TIER4_BLOCK14_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x094D) +#define ZCL_CURRENT_TIER4_BLOCK15_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x094E) +#define ZCL_CURRENT_TIER4_BLOCK16_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x094F) +#define ZCL_CURRENT_TIER5_BLOCK1_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0950) +#define ZCL_CURRENT_TIER5_BLOCK2_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0951) +#define ZCL_CURRENT_TIER5_BLOCK3_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0952) +#define ZCL_CURRENT_TIER5_BLOCK4_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0953) +#define ZCL_CURRENT_TIER5_BLOCK5_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0954) +#define ZCL_CURRENT_TIER5_BLOCK6_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0955) +#define ZCL_CURRENT_TIER5_BLOCK7_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0956) +#define ZCL_CURRENT_TIER5_BLOCK8_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0957) +#define ZCL_CURRENT_TIER5_BLOCK9_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0958) +#define ZCL_CURRENT_TIER5_BLOCK10_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0959) +#define ZCL_CURRENT_TIER5_BLOCK11_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x095A) +#define ZCL_CURRENT_TIER5_BLOCK12_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x095B) +#define ZCL_CURRENT_TIER5_BLOCK13_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x095C) +#define ZCL_CURRENT_TIER5_BLOCK14_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x095D) +#define ZCL_CURRENT_TIER5_BLOCK15_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x095E) +#define ZCL_CURRENT_TIER5_BLOCK16_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x095F) +#define ZCL_CURRENT_TIER6_BLOCK1_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0960) +#define ZCL_CURRENT_TIER6_BLOCK2_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0961) +#define ZCL_CURRENT_TIER6_BLOCK3_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0962) +#define ZCL_CURRENT_TIER6_BLOCK4_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0963) +#define ZCL_CURRENT_TIER6_BLOCK5_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0964) +#define ZCL_CURRENT_TIER6_BLOCK6_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0965) +#define ZCL_CURRENT_TIER6_BLOCK7_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0966) +#define ZCL_CURRENT_TIER6_BLOCK8_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0967) +#define ZCL_CURRENT_TIER6_BLOCK9_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0968) +#define ZCL_CURRENT_TIER6_BLOCK10_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0969) +#define ZCL_CURRENT_TIER6_BLOCK11_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x096A) +#define ZCL_CURRENT_TIER6_BLOCK12_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x096B) +#define ZCL_CURRENT_TIER6_BLOCK13_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x096C) +#define ZCL_CURRENT_TIER6_BLOCK14_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x096D) +#define ZCL_CURRENT_TIER6_BLOCK15_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x096E) +#define ZCL_CURRENT_TIER6_BLOCK16_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x096F) +#define ZCL_CURRENT_TIER7_BLOCK1_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0970) +#define ZCL_CURRENT_TIER7_BLOCK2_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0971) +#define ZCL_CURRENT_TIER7_BLOCK3_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0972) +#define ZCL_CURRENT_TIER7_BLOCK4_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0973) +#define ZCL_CURRENT_TIER7_BLOCK5_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0974) +#define ZCL_CURRENT_TIER7_BLOCK6_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0975) +#define ZCL_CURRENT_TIER7_BLOCK7_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0976) +#define ZCL_CURRENT_TIER7_BLOCK8_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0977) +#define ZCL_CURRENT_TIER7_BLOCK9_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0978) +#define ZCL_CURRENT_TIER7_BLOCK10_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0979) +#define ZCL_CURRENT_TIER7_BLOCK11_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x097A) +#define ZCL_CURRENT_TIER7_BLOCK12_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x097B) +#define ZCL_CURRENT_TIER7_BLOCK13_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x097C) +#define ZCL_CURRENT_TIER7_BLOCK14_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x097D) +#define ZCL_CURRENT_TIER7_BLOCK15_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x097E) +#define ZCL_CURRENT_TIER7_BLOCK16_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x097F) +#define ZCL_CURRENT_TIER8_BLOCK1_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0980) +#define ZCL_CURRENT_TIER8_BLOCK2_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0981) +#define ZCL_CURRENT_TIER8_BLOCK3_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0982) +#define ZCL_CURRENT_TIER8_BLOCK4_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0983) +#define ZCL_CURRENT_TIER8_BLOCK5_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0984) +#define ZCL_CURRENT_TIER8_BLOCK6_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0985) +#define ZCL_CURRENT_TIER8_BLOCK7_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0986) +#define ZCL_CURRENT_TIER8_BLOCK8_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0987) +#define ZCL_CURRENT_TIER8_BLOCK9_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0988) +#define ZCL_CURRENT_TIER8_BLOCK10_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0989) +#define ZCL_CURRENT_TIER8_BLOCK11_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x098A) +#define ZCL_CURRENT_TIER8_BLOCK12_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x098B) +#define ZCL_CURRENT_TIER8_BLOCK13_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x098C) +#define ZCL_CURRENT_TIER8_BLOCK14_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x098D) +#define ZCL_CURRENT_TIER8_BLOCK15_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x098E) +#define ZCL_CURRENT_TIER8_BLOCK16_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x098F) +#define ZCL_CURRENT_TIER9_BLOCK1_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0990) +#define ZCL_CURRENT_TIER9_BLOCK2_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0991) +#define ZCL_CURRENT_TIER9_BLOCK3_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0992) +#define ZCL_CURRENT_TIER9_BLOCK4_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0993) +#define ZCL_CURRENT_TIER9_BLOCK5_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0994) +#define ZCL_CURRENT_TIER9_BLOCK6_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0995) +#define ZCL_CURRENT_TIER9_BLOCK7_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0996) +#define ZCL_CURRENT_TIER9_BLOCK8_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0997) +#define ZCL_CURRENT_TIER9_BLOCK9_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0998) +#define ZCL_CURRENT_TIER9_BLOCK10_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0999) +#define ZCL_CURRENT_TIER9_BLOCK11_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x099A) +#define ZCL_CURRENT_TIER9_BLOCK12_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x099B) +#define ZCL_CURRENT_TIER9_BLOCK13_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x099C) +#define ZCL_CURRENT_TIER9_BLOCK14_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x099D) +#define ZCL_CURRENT_TIER9_BLOCK15_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x099E) +#define ZCL_CURRENT_TIER9_BLOCK16_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x099F) +#define ZCL_CURRENT_TIER10_BLOCK1_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09A0) +#define ZCL_CURRENT_TIER10_BLOCK2_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09A1) +#define ZCL_CURRENT_TIER10_BLOCK3_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09A2) +#define ZCL_CURRENT_TIER10_BLOCK4_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09A3) +#define ZCL_CURRENT_TIER10_BLOCK5_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09A4) +#define ZCL_CURRENT_TIER10_BLOCK6_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09A5) +#define ZCL_CURRENT_TIER10_BLOCK7_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09A6) +#define ZCL_CURRENT_TIER10_BLOCK8_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09A7) +#define ZCL_CURRENT_TIER10_BLOCK9_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09A8) +#define ZCL_CURRENT_TIER10_BLOCK10_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09A9) +#define ZCL_CURRENT_TIER10_BLOCK11_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09AA) +#define ZCL_CURRENT_TIER10_BLOCK12_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09AB) +#define ZCL_CURRENT_TIER10_BLOCK13_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09AC) +#define ZCL_CURRENT_TIER10_BLOCK14_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09AD) +#define ZCL_CURRENT_TIER10_BLOCK15_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09AE) +#define ZCL_CURRENT_TIER10_BLOCK16_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09AF) +#define ZCL_CURRENT_TIER11_BLOCK1_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09B0) +#define ZCL_CURRENT_TIER11_BLOCK2_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09B1) +#define ZCL_CURRENT_TIER11_BLOCK3_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09B2) +#define ZCL_CURRENT_TIER11_BLOCK4_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09B3) +#define ZCL_CURRENT_TIER11_BLOCK5_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09B4) +#define ZCL_CURRENT_TIER11_BLOCK6_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09B5) +#define ZCL_CURRENT_TIER11_BLOCK7_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09B6) +#define ZCL_CURRENT_TIER11_BLOCK8_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09B7) +#define ZCL_CURRENT_TIER11_BLOCK9_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09B8) +#define ZCL_CURRENT_TIER11_BLOCK10_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09B9) +#define ZCL_CURRENT_TIER11_BLOCK11_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09BA) +#define ZCL_CURRENT_TIER11_BLOCK12_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09BB) +#define ZCL_CURRENT_TIER11_BLOCK13_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09BC) +#define ZCL_CURRENT_TIER11_BLOCK14_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09BD) +#define ZCL_CURRENT_TIER11_BLOCK15_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09BE) +#define ZCL_CURRENT_TIER11_BLOCK16_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09BF) +#define ZCL_CURRENT_TIER12_BLOCK1_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09C0) +#define ZCL_CURRENT_TIER12_BLOCK2_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09C1) +#define ZCL_CURRENT_TIER12_BLOCK3_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09C2) +#define ZCL_CURRENT_TIER12_BLOCK4_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09C3) +#define ZCL_CURRENT_TIER12_BLOCK5_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09C4) +#define ZCL_CURRENT_TIER12_BLOCK6_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09C5) +#define ZCL_CURRENT_TIER12_BLOCK7_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09C6) +#define ZCL_CURRENT_TIER12_BLOCK8_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09C7) +#define ZCL_CURRENT_TIER12_BLOCK9_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09C8) +#define ZCL_CURRENT_TIER12_BLOCK10_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09C9) +#define ZCL_CURRENT_TIER12_BLOCK11_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09CA) +#define ZCL_CURRENT_TIER12_BLOCK12_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09CB) +#define ZCL_CURRENT_TIER12_BLOCK13_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09CC) +#define ZCL_CURRENT_TIER12_BLOCK14_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09CD) +#define ZCL_CURRENT_TIER12_BLOCK15_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09CE) +#define ZCL_CURRENT_TIER12_BLOCK16_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09CF) +#define ZCL_CURRENT_TIER13_BLOCK1_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09D0) +#define ZCL_CURRENT_TIER13_BLOCK2_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09D1) +#define ZCL_CURRENT_TIER13_BLOCK3_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09D2) +#define ZCL_CURRENT_TIER13_BLOCK4_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09D3) +#define ZCL_CURRENT_TIER13_BLOCK5_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09D4) +#define ZCL_CURRENT_TIER13_BLOCK6_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09D5) +#define ZCL_CURRENT_TIER13_BLOCK7_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09D6) +#define ZCL_CURRENT_TIER13_BLOCK8_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09D7) +#define ZCL_CURRENT_TIER13_BLOCK9_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09D8) +#define ZCL_CURRENT_TIER13_BLOCK10_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09D9) +#define ZCL_CURRENT_TIER13_BLOCK11_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09DA) +#define ZCL_CURRENT_TIER13_BLOCK12_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09DB) +#define ZCL_CURRENT_TIER13_BLOCK13_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09DC) +#define ZCL_CURRENT_TIER13_BLOCK14_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09DD) +#define ZCL_CURRENT_TIER13_BLOCK15_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09DE) +#define ZCL_CURRENT_TIER13_BLOCK16_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09DF) +#define ZCL_CURRENT_TIER14_BLOCK1_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09E0) +#define ZCL_CURRENT_TIER14_BLOCK2_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09E1) +#define ZCL_CURRENT_TIER14_BLOCK3_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09E2) +#define ZCL_CURRENT_TIER14_BLOCK4_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09E3) +#define ZCL_CURRENT_TIER14_BLOCK5_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09E4) +#define ZCL_CURRENT_TIER14_BLOCK6_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09E5) +#define ZCL_CURRENT_TIER14_BLOCK7_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09E6) +#define ZCL_CURRENT_TIER14_BLOCK8_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09E7) +#define ZCL_CURRENT_TIER14_BLOCK9_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09E8) +#define ZCL_CURRENT_TIER14_BLOCK10_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09E9) +#define ZCL_CURRENT_TIER14_BLOCK11_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09EA) +#define ZCL_CURRENT_TIER14_BLOCK12_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09EB) +#define ZCL_CURRENT_TIER14_BLOCK13_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09EC) +#define ZCL_CURRENT_TIER14_BLOCK14_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09ED) +#define ZCL_CURRENT_TIER14_BLOCK15_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09EE) +#define ZCL_CURRENT_TIER14_BLOCK16_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09EF) +#define ZCL_CURRENT_TIER15_BLOCK1_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09F0) +#define ZCL_CURRENT_TIER15_BLOCK2_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09F1) +#define ZCL_CURRENT_TIER15_BLOCK3_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09F2) +#define ZCL_CURRENT_TIER15_BLOCK4_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09F3) +#define ZCL_CURRENT_TIER15_BLOCK5_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09F4) +#define ZCL_CURRENT_TIER15_BLOCK6_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09F5) +#define ZCL_CURRENT_TIER15_BLOCK7_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09F6) +#define ZCL_CURRENT_TIER15_BLOCK8_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09F7) +#define ZCL_CURRENT_TIER15_BLOCK9_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09F8) +#define ZCL_CURRENT_TIER15_BLOCK10_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09F9) +#define ZCL_CURRENT_TIER15_BLOCK11_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09FA) +#define ZCL_CURRENT_TIER15_BLOCK12_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09FB) +#define ZCL_CURRENT_TIER15_BLOCK13_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09FC) +#define ZCL_CURRENT_TIER15_BLOCK14_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09FD) +#define ZCL_CURRENT_TIER15_BLOCK15_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09FE) +#define ZCL_CURRENT_TIER15_BLOCK16_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09FF) +#define ZCL_BILL_TO_DATE_DELIVERED_ATTRIBUTE_ID (0x0A00) +#define ZCL_BILL_TO_DATE_TIME_STAMP_DELIVERED_ATTRIBUTE_ID (0x0A01) +#define ZCL_PROJECTED_BILL_DELIVERED_ATTRIBUTE_ID (0x0A02) +#define ZCL_PROJECTED_BILL_TIME_STAMP_DELIVERED_ATTRIBUTE_ID (0x0A03) +#define ZCL_BILL_DELIVERED_TRAILING_DIGIT_ATTRIBUTE_ID (0x0A04) +#define ZCL_BILL_TO_DATE_RECEIVED_ATTRIBUTE_ID (0x0A10) +#define ZCL_BILL_TO_DATE_TIME_STAMP_RECEIVED_ATTRIBUTE_ID (0x0A11) +#define ZCL_PROJECTED_BILL_RECEIVED_ATTRIBUTE_ID (0x0A12) +#define ZCL_PROJECTED_BILL_TIME_STAMP_RECEIVED_ATTRIBUTE_ID (0x0A13) +#define ZCL_BILL_RECEIVED_TRAILING_DIGIT_ATTRIBUTE_ID (0x0A14) +#define ZCL_PROPOSED_CHANGE_SUPPLY_IMPLEMENTATION_TIME_ATTRIBUTE_ID (0x0B00) +#define ZCL_PROPOSED_CHANGE_SUPPLY_STATUS_ATTRIBUTE_ID (0x0B01) +#define ZCL_UNCONTROLLED_FLOW_THESHOLD_ATTRIBUTE_ID (0x0B10) +#define ZCL_UNCONTROLLED_FLOW_THESHOLD_UNIT_OF_MEASURE_ATTRIBUTE_ID (0x0B11) +#define ZCL_UNCONTROLLED_FLOW_MULTIPLIER_ATTRIBUTE_ID (0x0B12) +#define ZCL_UNCONTROLLED_FLOW_DIVISOR_ATTRIBUTE_ID (0x0B13) +#define ZCL_FLOW_STABILIZATION_PERIOD_ATTRIBUTE_ID (0x0B14) +#define ZCL_FLOW_MEASUREMENT_PERIOD_ATTRIBUTE_ID (0x0B15) +#define ZCL_ALTERNATIVE_INSTANTANEOUS_DEMAND_ATTRIBUTE_ID (0x0C00) +#define ZCL_CURRENT_ALTERNATIVE_DAY_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0C01) +#define ZCL_CURRENT_ALTERNATIVE_DAY_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0C02) +#define ZCL_PREVIOUS_DAY_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0C03) +#define ZCL_PREVIOUS_DAY_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0C04) +#define ZCL_CURRENT_ALTERNATIVE_PARTIAL_PROFILE_INTERVAL_START_TIME_DELIVERED_ATTRIBUTE_ID (0x0C05) +#define ZCL_CURRENT_ALTERNATIVE_PARTIAL_PROFILE_INTERVAL_START_TIME_RECEIVED_ATTRIBUTE_ID (0x0C06) +#define ZCL_CURRENT_ALTERNATIVE_PARTIAL_PROFILE_INTERVAL_VALUE_DELIVERED_ATTRIBUTE_ID (0x0C07) +#define ZCL_CURRENT_ALTERNATIVE_PARTIAL_PROFILE_INTERVAL_VALUE_RECEIVED_ATTRIBUTE_ID (0x0C08) +#define ZCL_CURRENT_ALTERNATIVE_DAY_MAX_PRESSURE_ATTRIBUTE_ID (0x0C09) +#define ZCL_CURRENT_ALTERNATIVE_DAY_MIN_PRESSURE_ATTRIBUTE_ID (0x0C0A) +#define ZCL_PREVIOUS_DAY_ALTERNATIVE_MAX_PRESSURE_ATTRIBUTE_ID (0x0C0B) +#define ZCL_PREVIOUS_DAY_ALTERNATIVE_MIN_PRESSURE_ATTRIBUTE_ID (0x0C0C) +#define ZCL_CURRENT_ALTERNATIVE_DAY_ALTERNATIVE_MAX_DEMAND_ATTRIBUTE_ID (0x0C0D) +#define ZCL_PREVIOUS_DAY_ALTERNATIVE_MAX_DEMAND_ATTRIBUTE_ID (0x0C0E) +#define ZCL_CURRENT_ALTERNATIVE_MONTH_MAX_DEMAND_ATTRIBUTE_ID (0x0C0F) +#define ZCL_CURRENT_ALTERNATIVE_YEAR_MAX_DEMAND_ATTRIBUTE_ID (0x0C10) +#define ZCL_PREVIOUS_DAY2_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0C20) +#define ZCL_PREVIOUS_DAY2_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0C21) +#define ZCL_PREVIOUS_DAY3_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0C22) +#define ZCL_PREVIOUS_DAY3_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0C23) +#define ZCL_PREVIOUS_DAY4_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0C24) +#define ZCL_PREVIOUS_DAY4_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0C25) +#define ZCL_PREVIOUS_DAY5_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0C26) +#define ZCL_PREVIOUS_DAY5_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0C27) +#define ZCL_PREVIOUS_DAY6_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0C28) +#define ZCL_PREVIOUS_DAY6_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0C29) +#define ZCL_PREVIOUS_DAY7_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0C2A) +#define ZCL_PREVIOUS_DAY7_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0C2B) +#define ZCL_PREVIOUS_DAY8_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0C2C) +#define ZCL_PREVIOUS_DAY8_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0C2D) +#define ZCL_CURRENT_WEEK_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0C30) +#define ZCL_CURRENT_WEEK_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0C31) +#define ZCL_PREVIOUS_WEEK_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0C32) +#define ZCL_PREVIOUS_WEEK_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0C33) +#define ZCL_PREVIOUS_WEEK2_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0C34) +#define ZCL_PREVIOUS_WEEK2_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0C35) +#define ZCL_PREVIOUS_WEEK3_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0C36) +#define ZCL_PREVIOUS_WEEK3_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0C37) +#define ZCL_PREVIOUS_WEEK4_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0C38) +#define ZCL_PREVIOUS_WEEK4_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0C39) +#define ZCL_PREVIOUS_WEEK5_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0C3A) +#define ZCL_PREVIOUS_WEEK5_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0C3B) +#define ZCL_CURRENT_MONTH_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0C40) +#define ZCL_CURRENT_MONTH_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0C41) +#define ZCL_PREVIOUS_MONTH_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0C42) +#define ZCL_PREVIOUS_MONTH_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0C43) +#define ZCL_PREVIOUS_MONTH2_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0C44) +#define ZCL_PREVIOUS_MONTH2_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0C45) +#define ZCL_PREVIOUS_MONTH3_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0C46) +#define ZCL_PREVIOUS_MONTH3_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0C47) +#define ZCL_PREVIOUS_MONTH4_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0C48) +#define ZCL_PREVIOUS_MONTH4_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0C49) +#define ZCL_PREVIOUS_MONTH5_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0C4A) +#define ZCL_PREVIOUS_MONTH5_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0C4B) +#define ZCL_PREVIOUS_MONTH6_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0C4C) +#define ZCL_PREVIOUS_MONTH6_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0C4D) +#define ZCL_PREVIOUS_MONTH7_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0C4E) +#define ZCL_PREVIOUS_MONTH7_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0C4F) +#define ZCL_PREVIOUS_MONTH8_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0C50) +#define ZCL_PREVIOUS_MONTH8_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0C51) +#define ZCL_PREVIOUS_MONTH9_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0C52) +#define ZCL_PREVIOUS_MONTH9_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0C53) +#define ZCL_PREVIOUS_MONTH10_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0C54) +#define ZCL_PREVIOUS_MONTH10_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0C55) +#define ZCL_PREVIOUS_MONTH11_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0C56) +#define ZCL_PREVIOUS_MONTH11_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0C57) +#define ZCL_PREVIOUS_MONTH12_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0C58) +#define ZCL_PREVIOUS_MONTH12_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0C59) +#define ZCL_PREVIOUS_MONTH13_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0C5A) +#define ZCL_PREVIOUS_MONTH13_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0C5B) +#define ZCL_CURRENT_DAY_ALTERNATIVE_MAX_DEMAND_DELIVERED_ATTRIBUTE_ID (0x0C5C) +#define ZCL_CURRENT_DAY_ALTERNATIVE_MAX_DEMAND_DELIVERED_TIME_ATTRIBUTE_ID (0x0C5D) +#define ZCL_CURRENT_DAY_ALTERNATIVE_MAX_DEMAND_RECEIVED_ATTRIBUTE_ID (0x0C5E) +#define ZCL_CURRENT_DAY_ALTERNATIVE_MAX_DEMAND_RECEIVED_TIME_ATTRIBUTE_ID (0x0C5F) +#define ZCL_PREVIOUS_DAY_ALTERNATIVE_MAX_DEMAND_DELIVERED_ATTRIBUTE_ID (0x0C60) +#define ZCL_PREVIOUS_DAY_ALTERNATIVE_MAX_DEMAND_DELIVERED_TIME_ATTRIBUTE_ID (0x0C61) +#define ZCL_PREVIOUS_DAY_ALTERNATIVE_MAX_DEMAND_RECEIVED_ATTRIBUTE_ID (0x0C62) +#define ZCL_PREVIOUS_DAY_ALTERNATIVE_MAX_DEMAND_RECEIVED_TIME_ATTRIBUTE_ID (0x0C63) +#define ZCL_CURRENT_ACTIVE_SUMMATION_Q1_ATTRIBUTE_ID (0x0D01) +#define ZCL_CURRENT_ACTIVE_SUMMATION_Q2_ATTRIBUTE_ID (0x0D02) +#define ZCL_CURRENT_ACTIVE_SUMMATION_Q3_ATTRIBUTE_ID (0x0D03) +#define ZCL_CURRENT_ACTIVE_SUMMATION_Q4_ATTRIBUTE_ID (0x0D04) +#define ZCL_CURRENT_REACTIVE_SUMMATION_Q1_ATTRIBUTE_ID (0x0D05) +#define ZCL_CURRENT_REACTIVE_SUMMATION_Q2_ATTRIBUTE_ID (0x0D06) +#define ZCL_CURRENT_REACTIVE_SUMMATION_Q3_ATTRIBUTE_ID (0x0D07) +#define ZCL_CURRENT_REACTIVE_SUMMATION_Q4_ATTRIBUTE_ID (0x0D08) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Messaging + +// Client attributes +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) + +// Server attributes +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Tunneling + +// Client attributes +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) + +// Server attributes +#define ZCL_CLOSE_TUNNEL_TIMEOUT_ATTRIBUTE_ID (0x0000) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Prepayment + +// Client attributes +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) + +// Server attributes +#define ZCL_PAYMENT_CONTROL_CONFIGURATION_ATTRIBUTE_ID (0x0000) +#define ZCL_CREDIT_REMAINING_ATTRIBUTE_ID (0x0001) +#define ZCL_EMERGENCY_CREDIT_REMAINING_ATTRIBUTE_ID (0x0002) +#define ZCL_CREDIT_STATUS_ATTRIBUTE_ID (0x0003) +#define ZCL_CREDIT_REMAINING_TIMESTAMP_ATTRIBUTE_ID (0x0004) +#define ZCL_ACCUMULATED_DEBT_ATTRIBUTE_ID (0x0005) +#define ZCL_OVERALL_DEBT_CAP_ATTRIBUTE_ID (0x0006) +#define ZCL_EMERGENCY_CREDIT_LIMIT_ALLOWANCE_ATTRIBUTE_ID (0x0010) +#define ZCL_EMERGENCY_CREDIT_THRESHOLD_ATTRIBUTE_ID (0x0011) +#define ZCL_TOTAL_CREDIT_ADDED_ATTRIBUTE_ID (0x0020) +#define ZCL_MAX_CREDIT_LIMIT_ATTRIBUTE_ID (0x0021) +#define ZCL_MAX_CREDIT_PER_TOP_UP_ATTRIBUTE_ID (0x0022) +#define ZCL_FRIENDLY_CREDIT_WARNING_ATTRIBUTE_ID (0x0030) +#define ZCL_LOW_CREDIT_WARNING_ATTRIBUTE_ID (0x0031) +#define ZCL_IHD_LOW_CREDIT_WARNING_ATTRIBUTE_ID (0x0032) +#define ZCL_INTERRUPT_SUSPEND_TIME_ATTRIBUTE_ID (0x0033) +#define ZCL_REMAINING_FRIENDLY_CREDIT_TIME_ATTRIBUTE_ID (0x0034) +#define ZCL_NEXT_FRIENDLY_CREDIT_PERIOD_ATTRIBUTE_ID (0x0035) +#define ZCL_CUT_OFF_VALUE_ATTRIBUTE_ID (0x0040) +#define ZCL_TOKEN_CARRIER_ID_ATTRIBUTE_ID (0x0080) +#define ZCL_TOP_UP_DATE_TIME_1_ATTRIBUTE_ID (0x0100) +#define ZCL_TOP_UP_AMOUNT_1_ATTRIBUTE_ID (0x0101) +#define ZCL_TOP_UP_ORIGINATING_DEVICE_1_ATTRIBUTE_ID (0x0102) +#define ZCL_TOP_UP_CODE_1_ATTRIBUTE_ID (0x0103) +#define ZCL_TOP_UP_DATE_TIME_2_ATTRIBUTE_ID (0x0110) +#define ZCL_TOP_UP_AMOUNT_2_ATTRIBUTE_ID (0x0111) +#define ZCL_TOP_UP_ORIGINATING_DEVICE_2_ATTRIBUTE_ID (0x0112) +#define ZCL_TOP_UP_CODE_2_ATTRIBUTE_ID (0x0113) +#define ZCL_TOP_UP_DATE_TIME_3_ATTRIBUTE_ID (0x0120) +#define ZCL_TOP_UP_AMOUNT_3_ATTRIBUTE_ID (0x0121) +#define ZCL_TOP_UP_ORIGINATING_DEVICE_3_ATTRIBUTE_ID (0x0122) +#define ZCL_TOP_UP_CODE_3_ATTRIBUTE_ID (0x0123) +#define ZCL_TOP_UP_DATE_TIME_4_ATTRIBUTE_ID (0x0130) +#define ZCL_TOP_UP_AMOUNT_4_ATTRIBUTE_ID (0x0131) +#define ZCL_TOP_UP_ORIGINATING_DEVICE_4_ATTRIBUTE_ID (0x0132) +#define ZCL_TOP_UP_CODE_4_ATTRIBUTE_ID (0x0133) +#define ZCL_TOP_UP_DATE_TIME_5_ATTRIBUTE_ID (0x0140) +#define ZCL_TOP_UP_AMOUNT_5_ATTRIBUTE_ID (0x0141) +#define ZCL_TOP_UP_ORIGINATING_DEVICE_5_ATTRIBUTE_ID (0x0142) +#define ZCL_TOP_UP_CODE_5_ATTRIBUTE_ID (0x0143) +#define ZCL_DEBT_LABEL_1_ATTRIBUTE_ID (0x0210) +#define ZCL_DEBT_AMOUNT_1_ATTRIBUTE_ID (0x0211) +#define ZCL_DEBT_RECOVERY_METHOD_1_ATTRIBUTE_ID (0x0212) +#define ZCL_DEBT_RECOVERY_START_TIME_1_ATTRIBUTE_ID (0x0213) +#define ZCL_DEBT_RECOVERY_COLLECTION_TIME_1_ATTRIBUTE_ID (0x0214) +#define ZCL_DEBT_RECOVERY_FREQUENCY_1_ATTRIBUTE_ID (0x0216) +#define ZCL_DEBT_RECOVERY_AMOUNT_1_ATTRIBUTE_ID (0x0217) +#define ZCL_DEBT_RECOVERY_TOP_UP_PERCENTAGE_1_ATTRIBUTE_ID (0x0219) +#define ZCL_DEBT_LABEL_2_ATTRIBUTE_ID (0x0220) +#define ZCL_DEBT_AMOUNT_2_ATTRIBUTE_ID (0x0221) +#define ZCL_DEBT_RECOVERY_METHOD_2_ATTRIBUTE_ID (0x0222) +#define ZCL_DEBT_RECOVERY_START_TIME_2_ATTRIBUTE_ID (0x0223) +#define ZCL_DEBT_RECOVERY_COLLECTION_TIME_2_ATTRIBUTE_ID (0x0224) +#define ZCL_DEBT_RECOVERY_FREQUENCY_2_ATTRIBUTE_ID (0x0226) +#define ZCL_DEBT_RECOVERY_AMOUNT_2_ATTRIBUTE_ID (0x0227) +#define ZCL_DEBT_RECOVERY_TOP_UP_PERCENTAGE_2_ATTRIBUTE_ID (0x0229) +#define ZCL_DEBT_LABEL_3_ATTRIBUTE_ID (0x0230) +#define ZCL_DEBT_AMOUNT_3_ATTRIBUTE_ID (0x0231) +#define ZCL_DEBT_RECOVERY_METHOD_3_ATTRIBUTE_ID (0x0232) +#define ZCL_DEBT_RECOVERY_START_TIME_3_ATTRIBUTE_ID (0x0233) +#define ZCL_DEBT_RECOVERY_COLLECTION_TIME_3_ATTRIBUTE_ID (0x0234) +#define ZCL_DEBT_RECOVERY_FREQUENCY_3_ATTRIBUTE_ID (0x0236) +#define ZCL_DEBT_RECOVERY_AMOUNT_3_ATTRIBUTE_ID (0x0237) +#define ZCL_DEBT_RECOVERY_TOP_UP_PERCENTAGE_3_ATTRIBUTE_ID (0x0239) +#define ZCL_PREPAYMENT_ALARM_STATUS_ATTRIBUTE_ID (0x0400) +#define ZCL_PREPAY_GENERIC_ALARM_MASK_ATTRIBUTE_ID (0x0401) +#define ZCL_PREPAY_SWITCH_ALARM_MASK_ATTRIBUTE_ID (0x0402) +#define ZCL_PREPAY_EVENT_ALARM_MASK_ATTRIBUTE_ID (0x0403) +#define ZCL_HISTORICAL_COST_CONSUMPTION_FORMATTING_ATTRIBUTE_ID (0x0500) +#define ZCL_CONSUMPTION_UNIT_OF_MEASUREMENT_ATTRIBUTE_ID (0x0501) +#define ZCL_CURRENCY_SCALING_FACTOR_ATTRIBUTE_ID (0x0502) +#define ZCL_PREPAYMANT_CURRENCY_ATTRIBUTE_ID (0x0503) +#define ZCL_CURRENT_DAY_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x051C) +#define ZCL_CURRENT_DAY_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x051D) +#define ZCL_PREVIOUS_DAY_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x051E) +#define ZCL_PREVIOUS_DAY_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x051F) +#define ZCL_PREVIOUS_DAY_2_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0520) +#define ZCL_PREVIOUS_DAY_2_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0521) +#define ZCL_PREVIOUS_DAY_3_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0522) +#define ZCL_PREVIOUS_DAY_3_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0523) +#define ZCL_PREVIOUS_DAY_4_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0524) +#define ZCL_PREVIOUS_DAY_4_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0525) +#define ZCL_PREVIOUS_DAY_5_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0526) +#define ZCL_PREVIOUS_DAY_5_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0527) +#define ZCL_PREVIOUS_DAY_6_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0528) +#define ZCL_PREVIOUS_DAY_6_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0529) +#define ZCL_PREVIOUS_DAY_7_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x052A) +#define ZCL_PREVIOUS_DAY_7_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x052B) +#define ZCL_PREVIOUS_DAY_8_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x052C) +#define ZCL_PREVIOUS_DAY_8_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x052D) +#define ZCL_CURRENT_WEEK_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0530) +#define ZCL_CURRENT_WEEK_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0531) +#define ZCL_PREVIOUS_WEEK_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0532) +#define ZCL_PREVIOUS_WEEK_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0533) +#define ZCL_PREVIOUS_WEEK_2_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0534) +#define ZCL_PREVIOUS_WEEK_2_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0535) +#define ZCL_PREVIOUS_WEEK_3_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0536) +#define ZCL_PREVIOUS_WEEK_3_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0537) +#define ZCL_PREVIOUS_WEEK_4_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0538) +#define ZCL_PREVIOUS_WEEK_4_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0539) +#define ZCL_PREVIOUS_WEEK_5_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x053A) +#define ZCL_PREVIOUS_WEEK_5_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x053B) +#define ZCL_CURRENT_MONTH_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0540) +#define ZCL_CURRENT_MONTH_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0541) +#define ZCL_PREVIOUS_MONTH_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0542) +#define ZCL_PREVIOUS_MONTH_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0543) +#define ZCL_PREVIOUS_MONTH_2_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0544) +#define ZCL_PREVIOUS_MONTH_2_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0545) +#define ZCL_PREVIOUS_MONTH_3_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0546) +#define ZCL_PREVIOUS_MONTH_3_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0547) +#define ZCL_PREVIOUS_MONTH_4_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0548) +#define ZCL_PREVIOUS_MONTH_4_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0549) +#define ZCL_PREVIOUS_MONTH_5_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x054A) +#define ZCL_PREVIOUS_MONTH_5_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x054B) +#define ZCL_PREVIOUS_MONTH_6_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x054C) +#define ZCL_PREVIOUS_MONTH_6_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x054D) +#define ZCL_PREVIOUS_MONTH_7_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x054E) +#define ZCL_PREVIOUS_MONTH_7_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x054F) +#define ZCL_PREVIOUS_MONTH_8_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0550) +#define ZCL_PREVIOUS_MONTH_8_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0551) +#define ZCL_PREVIOUS_MONTH_9_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0552) +#define ZCL_PREVIOUS_MONTH_9_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0553) +#define ZCL_PREVIOUS_MONTH_10_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0554) +#define ZCL_PREVIOUS_MONTH_10_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0555) +#define ZCL_PREVIOUS_MONTH_11_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0556) +#define ZCL_PREVIOUS_MONTH_11_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0557) +#define ZCL_PREVIOUS_MONTH_12_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0558) +#define ZCL_PREVIOUS_MONTH_12_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0559) +#define ZCL_PREVIOUS_MONTH_13_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x055A) +#define ZCL_PREVIOUS_MONTH_13_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x055B) +#define ZCL_PREPAYMENT_HISTORICAL_FREEZE_TIME_ATTRIBUTE_ID (0x055C) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Energy Management + +// Client attributes +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) + +// Server attributes +#define ZCL_LOAD_CONTROL_STATE_ATTRIBUTE_ID (0x0000) +#define ZCL_CURRENT_EVENT_ID_ATTRIBUTE_ID (0x0001) +#define ZCL_CURRENT_EVENT_STATUS_ATTRIBUTE_ID (0x0002) +#define ZCL_CONFORMANCE_LEVEL_ATTRIBUTE_ID (0x0003) +#define ZCL_MINIMUM_OFF_TIME_ATTRIBUTE_ID (0x0004) +#define ZCL_MINIMUM_ON_TIME_ATTRIBUTE_ID (0x0005) +#define ZCL_MINIMUM_CYCLE_PERIOD_ATTRIBUTE_ID (0x0006) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Calendar + +// Client attributes +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) + +// Server attributes +#define ZCL_AUXILIARY_SWITCH_1_LABEL_ATTRIBUTE_ID (0x0000) +#define ZCL_AUXILIARY_SWITCH_2_LABEL_ATTRIBUTE_ID (0x0001) +#define ZCL_AUXILIARY_SWITCH_3_LABEL_ATTRIBUTE_ID (0x0002) +#define ZCL_AUXILIARY_SWITCH_4_LABEL_ATTRIBUTE_ID (0x0003) +#define ZCL_AUXILIARY_SWITCH_5_LABEL_ATTRIBUTE_ID (0x0004) +#define ZCL_AUXILIARY_SWITCH_6_LABEL_ATTRIBUTE_ID (0x0005) +#define ZCL_AUXILIARY_SWITCH_7_LABEL_ATTRIBUTE_ID (0x0006) +#define ZCL_AUXILIARY_SWITCH_8_LABEL_ATTRIBUTE_ID (0x0007) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Device Management + +// Client attributes +#define ZCL_PROVIDER_ID_CLIENT_ATTRIBUTE_ID (0x0000) +#define ZCL_RECEIVED_PROVIDER_ID_CLIENT_ATTRIBUTE_ID (0x0010) +#define ZCL_TOU_TARIFF_ACTIVATION_ATTRIBUTE_ID (0x0100) +#define ZCL_BLOCK_TARIFF_ACTIVATED_ATTRIBUTE_ID (0x0101) +#define ZCL_BLOCK_TOU_TARIFF_ACTIVATED_ATTRIBUTE_ID (0x0102) +#define ZCL_SINGLE_TARIFF_RATE_ACTIVATED_ATTRIBUTE_ID (0x0103) +#define ZCL_ASYNCHRONOUS_BILLING_OCCURRED_ATTRIBUTE_ID (0x0104) +#define ZCL_SYNCHRONOUS_BILLING_OCCURRED_ATTRIBUTE_ID (0x0105) +#define ZCL_TARIFF_NOT_SUPPORTED_ATTRIBUTE_ID (0x0106) +#define ZCL_PRICE_CLUSTER_NOT_FOUND_ATTRIBUTE_ID (0x0107) +#define ZCL_CURRENCY_CHANGE_PASSIVE_ACTIVATED_ATTRIBUTE_ID (0x0108) +#define ZCL_CURRENCY_CHANGE_PASSIVE_UPDATED_ATTRIBUTE_ID (0x0109) +#define ZCL_PRICE_MATRIX_PASSIVE_ACTIVATED_ATTRIBUTE_ID (0x010A) +#define ZCL_PRICE_MATRIX_PASSIVE_UPDATED_ATTRIBUTE_ID (0x010B) +#define ZCL_TARIFF_CHANGE_PASSIVE_ACTIVATED_ATTRIBUTE_ID (0x010C) +#define ZCL_TARIFF_CHANGE_PASSIVE_UPDATED_ATTRIBUTE_ID (0x010D) +#define ZCL_PUBLISH_PRICE_RECEIVED_ATTRIBUTE_ID (0x01B0) +#define ZCL_PUBLISH_PRICE_ACTIONED_ATTRIBUTE_ID (0x01B1) +#define ZCL_PUBLISH_PRICE_CANCELLED_ATTRIBUTE_ID (0x01B2) +#define ZCL_PUBLISH_PRICE_REJECTED_ATTRIBUTE_ID (0x01B3) +#define ZCL_PUBLISH_TARIFF_INFO_RECEIVED_ATTRIBUTE_ID (0x01B4) +#define ZCL_PUBLISH_TARIFF_INFO_ACTIONED_ATTRIBUTE_ID (0x01B5) +#define ZCL_PUBLISH_TARIFF_INFO_CANCELLED_ATTRIBUTE_ID (0x01B6) +#define ZCL_PUBLISH_TARIFF_INFO_REJECTED_ATTRIBUTE_ID (0x01B7) +#define ZCL_PUBLISH_PRICE_MATRIX_RECEIVED_ATTRIBUTE_ID (0x01B8) +#define ZCL_PUBLISH_PRICE_MATRIX_ACTIONED_ATTRIBUTE_ID (0x01B9) +#define ZCL_PUBLISH_PRICE_MATRIX_CANCELLED_ATTRIBUTE_ID (0x01BA) +#define ZCL_PUBLISH_PRICE_MATRIX_REJECTED_ATTRIBUTE_ID (0x01BB) +#define ZCL_PUBLISH_BLOCK_THRESHOLDS_RECEIVED_ATTRIBUTE_ID (0x01BC) +#define ZCL_PUBLISH_BLOCK_THRESHOLDS_ACTIONED_ATTRIBUTE_ID (0x01BD) +#define ZCL_PUBLISH_BLOCK_THRESHOLDS_CANCELLED_ATTRIBUTE_ID (0x01BE) +#define ZCL_PUBLISH_BLOCK_THRESHOLDS_REJECTED_ATTRIBUTE_ID (0x01BF) +#define ZCL_PUBLISH_CALORIFIC_VALUE_RECEIVED_ATTRIBUTE_ID (0x01C0) +#define ZCL_PUBLISH_CALORIFIC_VALUE_ACTIONED_ATTRIBUTE_ID (0x01C1) +#define ZCL_PUBLISH_CALORIFIC_VALUE_CANCELLED_ATTRIBUTE_ID (0x01C2) +#define ZCL_PUBLISH_CALORIFIC_VALUE_REJECTED_ATTRIBUTE_ID (0x01C3) +#define ZCL_PUBLISH_CONVERSION_FACTOR_RECEIVED_ATTRIBUTE_ID (0x01C4) +#define ZCL_PUBLISH_CONVERSION_FACTOR_ACTIONED_ATTRIBUTE_ID (0x01C5) +#define ZCL_PUBLISH_CONVERSION_FACTOR_CANCELLED_ATTRIBUTE_ID (0x01C6) +#define ZCL_PUBLISH_CONVERSION_FACTOR_REJECTED_ATTRIBUTE_ID (0x01C7) +#define ZCL_PUBLISH_CO2_VALUE_RECEIVED_ATTRIBUTE_ID (0x01C8) +#define ZCL_PUBLISH_CO2_VALUE_ACTIONED_ATTRIBUTE_ID (0x01C9) +#define ZCL_PUBLISH_CO2_VALUE_CANCELLED_ATTRIBUTE_ID (0x01CA) +#define ZCL_PUBLISH_CO2_VALUE_REJECTED_ATTRIBUTE_ID (0x01CB) +#define ZCL_PUBLISH_CPP_EVENT_RECEIVED_ATTRIBUTE_ID (0x01CC) +#define ZCL_PUBLISH_CPP_EVENT_ACTIONED_ATTRIBUTE_ID (0x01CD) +#define ZCL_PUBLISH_CPP_EVENT_CANCELLED_ATTRIBUTE_ID (0x01CE) +#define ZCL_PUBLISH_CPP_EVENT_REJECTED_ATTRIBUTE_ID (0x01CF) +#define ZCL_PUBLISH_TIER_LABELS_RECEIVED_ATTRIBUTE_ID (0x01D0) +#define ZCL_PUBLISH_TIER_LABELS_ACTIONED_ATTRIBUTE_ID (0x01D1) +#define ZCL_PUBLISH_TIER_LABELS_CANCELLED_ATTRIBUTE_ID (0x01D2) +#define ZCL_PUBLISH_TIER_LABELS_REJECTED_ATTRIBUTE_ID (0x01D3) +#define ZCL_PUBLISH_BILLING_PERIOD_RECEIVED_ATTRIBUTE_ID (0x01D4) +#define ZCL_PUBLISH_BILLING_PERIOD_ACTIONED_ATTRIBUTE_ID (0x01D5) +#define ZCL_PUBLISH_BILLING_PERIOD_CANCELLED_ATTRIBUTE_ID (0x01D6) +#define ZCL_PUBLISH_BILLING_PERIOD_REJECTED_ATTRIBUTE_ID (0x01D7) +#define ZCL_PUBLISH_CONSOLIDATED_BILL_RECEIVED_ATTRIBUTE_ID (0x01D8) +#define ZCL_PUBLISH_CONSOLIDATED_BILL_ACTIONED_ATTRIBUTE_ID (0x01D9) +#define ZCL_PUBLISH_CONSOLIDATED_BILL_CANCELLED_ATTRIBUTE_ID (0x01DA) +#define ZCL_PUBLISH_CONSOLIDATED_BILL_REJECTED_ATTRIBUTE_ID (0x01DB) +#define ZCL_PUBLISH_BLOCK_PERIOD_RECEIVED_ATTRIBUTE_ID (0x01DC) +#define ZCL_PUBLISH_BLOCK_PERIOD_ACTIONED_ATTRIBUTE_ID (0x01DD) +#define ZCL_PUBLISH_BLOCK_PERIOD_CANCELLED_ATTRIBUTE_ID (0x01DE) +#define ZCL_PUBLISH_BLOCK_PERIOD_REJECTED_ATTRIBUTE_ID (0x01DF) +#define ZCL_PUBLISH_CREDIT_PAYMENT_INFO_RECEIVED_ATTRIBUTE_ID (0x01E0) +#define ZCL_PUBLISH_CREDIT_PAYMENT_INFO_ACTIONED_ATTRIBUTE_ID (0x01E1) +#define ZCL_PUBLISH_CREDIT_PAYMENT_INFO_CANCELLED_ATTRIBUTE_ID (0x01E2) +#define ZCL_PUBLISH_CREDIT_PAYMENT_INFO_REJECTED_ATTRIBUTE_ID (0x01E3) +#define ZCL_PUBLISH_CURRENCY_CONVERSION_RECEIVED_ATTRIBUTE_ID (0x01E4) +#define ZCL_PUBLISH_CURRENCY_CONVERSION_ACTIONED_ATTRIBUTE_ID (0x01E5) +#define ZCL_PUBLISH_CURRENCY_CONVERSION_CANCELLED_ATTRIBUTE_ID (0x01E6) +#define ZCL_PUBLISH_CURRENCY_CONVERSION_REJECTED_ATTRIBUTE_ID (0x01E7) +#define ZCL_CHECK_METER_ATTRIBUTE_ID (0x0200) +#define ZCL_LOW_BATTERY_ATTRIBUTE_ID (0x0201) +#define ZCL_TAMPER_DETECT_ATTRIBUTE_ID (0x0202) +#define ZCL_DEVICE_MANAGEMENT_SUPPLY_STATUS_ATTRIBUTE_ID (0x0203) +#define ZCL_SUPPLY_QUALITY_ATTRIBUTE_ID (0x0204) +#define ZCL_LEAK_DETECT_ATTRIBUTE_ID (0x0205) +#define ZCL_SERVICE_DISCONNECT_ATTRIBUTE_ID (0x0206) +#define ZCL_REVERSE_FLOW_GENERAL_ATTRIBUTE_ID (0x0207) +#define ZCL_METER_COVER_REMOVED_ATTRIBUTE_ID (0x0208) +#define ZCL_METER_COVER_CLOSED_ATTRIBUTE_ID (0x0209) +#define ZCL_STRONG_MAGNETIC_FIELD_ATTRIBUTE_ID (0x020A) +#define ZCL_NO_STRONG_MAGNETIC_FIELD_ATTRIBUTE_ID (0x020B) +#define ZCL_BATTERY_FAILURE_ATTRIBUTE_ID (0x020C) +#define ZCL_PROGRAM_MEMORY_ERROR_ATTRIBUTE_ID (0x020D) +#define ZCL_RAM_ERROR_ATTRIBUTE_ID (0x020E) +#define ZCL_NV_MEMORY_ERROR_ATTRIBUTE_ID (0x020F) +#define ZCL_LOW_VOLTAGE_L1_ATTRIBUTE_ID (0x0210) +#define ZCL_HIGH_VOLTAGE_L1_ATTRIBUTE_ID (0x0211) +#define ZCL_LOW_VOLTAGE_L2_ATTRIBUTE_ID (0x0212) +#define ZCL_HIGH_VOLTAGE_L2_ATTRIBUTE_ID (0x0213) +#define ZCL_LOW_VOLTAGE_L3_ATTRIBUTE_ID (0x0214) +#define ZCL_HIGH_VOLTAGE_L3_ATTRIBUTE_ID (0x0215) +#define ZCL_OVER_CURRENT_L1_ATTRIBUTE_ID (0x0216) +#define ZCL_OVER_CURRENT_L2_ATTRIBUTE_ID (0x0217) +#define ZCL_OVER_CURRENT_L3_ATTRIBUTE_ID (0x0218) +#define ZCL_FREQUENCY_TOO_LOW_L1_ATTRIBUTE_ID (0x0219) +#define ZCL_FREQUENCY_TOO_HIGH_L1_ATTRIBUTE_ID (0x021A) +#define ZCL_FREQUENCY_TOO_LOW_L2_ATTRIBUTE_ID (0x021B) +#define ZCL_FREQUENCY_TOO_HIGH_L2_ATTRIBUTE_ID (0x021C) +#define ZCL_FREQUENCY_TOO_LOW_L3_ATTRIBUTE_ID (0x021D) +#define ZCL_FREQUENCY_TOO_HIGH_L3_ATTRIBUTE_ID (0x021E) +#define ZCL_GROUND_FAULT_ATTRIBUTE_ID (0x021F) +#define ZCL_ELECTRIC_TAMPER_DETECT_ATTRIBUTE_ID (0x0220) +#define ZCL_INCORRECT_POLARITY_ATTRIBUTE_ID (0x0221) +#define ZCL_CURRENT_NO_VOLTAGE_ATTRIBUTE_ID (0x0222) +#define ZCL_UNDER_VOLTAGE_ATTRIBUTE_ID (0x0223) +#define ZCL_OVER_VOLTAGE_ATTRIBUTE_ID (0x0224) +#define ZCL_NORMAL_VOLTAGE_ATTRIBUTE_ID (0x0225) +#define ZCL_PF_BELOW_THRESHOLD_ATTRIBUTE_ID (0x0226) +#define ZCL_PF_ABOVE_THRESHOLD_ATTRIBUTE_ID (0x0227) +#define ZCL_TERMINAL_COVER_REMOVED_ATTRIBUTE_ID (0x0228) +#define ZCL_TERMINAL_COVER_CLOSED_ATTRIBUTE_ID (0x0229) +#define ZCL_BURST_DETECT_ATTRIBUTE_ID (0x0230) +#define ZCL_PRESSURE_TOO_LOW_ATTRIBUTE_ID (0x0231) +#define ZCL_PRESSURE_TOO_HIGH_ATTRIBUTE_ID (0x0232) +#define ZCL_FLOW_SENSOR_COMMUNICATION_ERROR_ATTRIBUTE_ID (0x0233) +#define ZCL_FLOW_SENSOR_MEASUREMENT_FAULT_ATTRIBUTE_ID (0x0234) +#define ZCL_FLOW_SENSOR_REVERSE_FLOW_ATTRIBUTE_ID (0x0235) +#define ZCL_FLOW_SENSOR_AIR_DETECT_ATTRIBUTE_ID (0x0236) +#define ZCL_PIPE_EMPTY_ATTRIBUTE_ID (0x0237) +#define ZCL_INLET_TEMP_SENSOR_FAULT_ATTRIBUTE_ID (0x0250) +#define ZCL_OUTLET_TEMP_SENSOR_FAULT_ATTRIBUTE_ID (0x0251) +#define ZCL_REVERSE_FLOW_ATTRIBUTE_ID (0x0260) +#define ZCL_TILT_TAMPER_ATTRIBUTE_ID (0x0261) +#define ZCL_BATTERY_COVER_REMOVED_ATTRIBUTE_ID (0x0262) +#define ZCL_BATTERY_COVER_CLOSED_ATTRIBUTE_ID (0x0263) +#define ZCL_EXCESS_FLOW_ATTRIBUTE_ID (0x0264) +#define ZCL_TILT_TAMPER_ENABLED_ATTRIBUTE_ID (0x0265) +#define ZCL_MEASUREMENT_SYSTEM_ERROR_ATTRIBUTE_ID (0x0270) +#define ZCL_WATCHDOG_ERROR_ATTRIBUTE_ID (0x0271) +#define ZCL_SUPPLY_DISCONNECT_FAILURE_ATTRIBUTE_ID (0x0272) +#define ZCL_SUPPLY_CONNECT_FAILURE_ATTRIBUTE_ID (0x0273) +#define ZCL_MEASUREMENT_SOFTWARE_CHANGED_ATTRIBUTE_ID (0x0274) +#define ZCL_DST_ENABLED_ATTRIBUTE_ID (0x0275) +#define ZCL_DST_DISABLED_ATTRIBUTE_ID (0x0276) +#define ZCL_CLOCK_ADJ_BACKWARD_ATTRIBUTE_ID (0x0277) +#define ZCL_CLOCK_ADJ_FORWARD_ATTRIBUTE_ID (0x0278) +#define ZCL_CLOCK_INVALID_ATTRIBUTE_ID (0x0279) +#define ZCL_COMMUNICATION_ERROR_HAN_ATTRIBUTE_ID (0x027A) +#define ZCL_COMMUNICATION_OK_HAN_ATTRIBUTE_ID (0x027B) +#define ZCL_METER_FRAUD_ATTEMPT_ATTRIBUTE_ID (0x027C) +#define ZCL_POWER_LOSS_ATTRIBUTE_ID (0x027D) +#define ZCL_UNUSUAL_HAN_TRAFFIC_ATTRIBUTE_ID (0x027E) +#define ZCL_UNEXPECTED_CLOCK_CHANGE_ATTRIBUTE_ID (0x027F) +#define ZCL_COMMS_USING_UNAUTHENTICATED_COMPONENT_ATTRIBUTE_ID (0x0280) +#define ZCL_METERING_ERROR_REG_CLEAR_ATTRIBUTE_ID (0x0281) +#define ZCL_METERING_ALARM_REG_CLEAR_ATTRIBUTE_ID (0x0282) +#define ZCL_UNEXPECTED_HW_RESET_ATTRIBUTE_ID (0x0283) +#define ZCL_UNEXPECTED_PROGRAM_EXECUTION_ATTRIBUTE_ID (0x0284) +#define ZCL_LIMIT_THRESHOLD_EXCEEDED_ATTRIBUTE_ID (0x0285) +#define ZCL_LIMIT_THRESHOLD_OK_ATTRIBUTE_ID (0x0286) +#define ZCL_LIMIT_THRESHOLD_CHANGED_ATTRIBUTE_ID (0x0287) +#define ZCL_MAXIMUM_DEMAND_EXCEEDED_ATTRIBUTE_ID (0x0288) +#define ZCL_PROFILE_CLEARED_ATTRIBUTE_ID (0x0289) +#define ZCL_LOAD_PROFILE_CLEARED_ATTRIBUTE_ID (0x028A) +#define ZCL_BATTERY_WARN_ATTRIBUTE_ID (0x028B) +#define ZCL_WRONG_SIGNATURE_ATTRIBUTE_ID (0x028C) +#define ZCL_NO_SIGNATURE_ATTRIBUTE_ID (0x028D) +#define ZCL_SIGNATURE_NOT_VALID_ATTRIBUTE_ID (0x028E) +#define ZCL_UNAUTHORISE_ACTION_FROM_HAN_ATTRIBUTE_ID (0x028F) +#define ZCL_FAST_POLLING_START_ATTRIBUTE_ID (0x0290) +#define ZCL_FAST_POLLING_END_ATTRIBUTE_ID (0x0291) +#define ZCL_METER_REPORTING_INTERVAL_CHANGED_ATTRIBUTE_ID (0x0292) +#define ZCL_DISCONNECT_TO_LOAD_LIMIT_ATTRIBUTE_ID (0x0293) +#define ZCL_METER_SUPPLY_STATUS_REGISTER_CHANGED_ATTRIBUTE_ID (0x0294) +#define ZCL_METER_ALARM_STATUS_REGISTER_CHANGED_ATTRIBUTE_ID (0x0295) +#define ZCL_EXTENDED_METER_ALARM_STATUS_REGISTER_CHANGED_ATTRIBUTE_ID (0x0296) +#define ZCL_DATA_ACCESS_VIA_LOCAL_PORT_ATTRIBUTE_ID (0x0297) +#define ZCL_CONFIGURE_MIRROR_SUCCESS_ATTRIBUTE_ID (0x0298) +#define ZCL_CONFIGURE_MIRROR_FAILURE_ATTRIBUTE_ID (0x0299) +#define ZCL_CONFIGURE_NOTIFICATION_FLAG_SCHEME_SUCCESS_ATTRIBUTE_ID (0x029A) +#define ZCL_CONFIGURE_NOTIFICATION_FLAG_SCHEME_FAILURE_ATTRIBUTE_ID (0x029B) +#define ZCL_CONFIGURE_NOTIFICATION_FLAGS_SUCCESS_ATTRIBUTE_ID (0x029C) +#define ZCL_CONFIGURE_NOTIFICATION_FLAGS_FAILURE_ATTRIBUTE_ID (0x029D) +#define ZCL_STAY_AWAKE_REQUEST_HAN_ATTRIBUTE_ID (0x029E) +#define ZCL_STAY_AWAKE_REQUEST_WAN_ATTRIBUTE_ID (0x029F) +#define ZCL_MANUFACTURER_SPECIFIC_A_ATTRIBUTE_ID (0x02B0) +#define ZCL_MANUFACTURER_SPECIFIC_B_ATTRIBUTE_ID (0x02B1) +#define ZCL_MANUFACTURER_SPECIFIC_C_ATTRIBUTE_ID (0x02B2) +#define ZCL_MANUFACTURER_SPECIFIC_D_ATTRIBUTE_ID (0x02B3) +#define ZCL_MANUFACTURER_SPECIFIC_E_ATTRIBUTE_ID (0x02B4) +#define ZCL_MANUFACTURER_SPECIFIC_F_ATTRIBUTE_ID (0x02B5) +#define ZCL_MANUFACTURER_SPECIFIC_G_ATTRIBUTE_ID (0x02B6) +#define ZCL_MANUFACTURER_SPECIFIC_H_ATTRIBUTE_ID (0x02B7) +#define ZCL_MANUFACTURER_SPECIFIC_I_ATTRIBUTE_ID (0x02B8) +#define ZCL_GET_PROFILE_COMMAND_RECEIVED_ATTRIBUTE_ID (0x02C0) +#define ZCL_GET_PROFILE_COMMAND_ACTIONED_ATTRIBUTE_ID (0x02C1) +#define ZCL_GET_PROFILE_COMMAND_CANCELLED_ATTRIBUTE_ID (0x02C2) +#define ZCL_GET_PROFILE_COMMAND_REJECTED_ATTRIBUTE_ID (0x02C3) +#define ZCL_REQUEST_MIRROR_RESPONSE_COMMAND_RECEIVED_ATTRIBUTE_ID (0x02C4) +#define ZCL_REQUEST_MIRROR_RESPONSE_COMMAND_ACTIONED_ATTRIBUTE_ID (0x02C5) +#define ZCL_REQUEST_MIRROR_RESPONSE_COMMAND_CANCELLED_ATTRIBUTE_ID (0x02C6) +#define ZCL_REQUEST_MIRROR_RESPONSE_COMMAND_REJECTED_ATTRIBUTE_ID (0x02C7) +#define ZCL_MIRROR_REMOVED_COMMAND_RECEIVED_ATTRIBUTE_ID (0x02C8) +#define ZCL_MIRROR_REMOVED_COMMAND_ACTIONED_ATTRIBUTE_ID (0x02C9) +#define ZCL_MIRROR_REMOVED_COMMAND_CANCELLED_ATTRIBUTE_ID (0x02CA) +#define ZCL_MIRROR_REMOVED_COMMAND_REJECTED_ATTRIBUTE_ID (0x02CB) +#define ZCL_GET_SNAPSHOT_COMMAND_RECEIVED_ATTRIBUTE_ID (0x02CC) +#define ZCL_GET_SNAPSHOT_COMMAND_ACTIONED_ATTRIBUTE_ID (0x02CD) +#define ZCL_GET_SNAPSHOT_COMMAND_CANCELLED_ATTRIBUTE_ID (0x02CE) +#define ZCL_GET_SNAPSHOT_COMMAND_REJECTED_ATTRIBUTE_ID (0x02CF) +#define ZCL_TAKE_SNAPSHOT_COMMAND_RECEIVED_ATTRIBUTE_ID (0x02D0) +#define ZCL_TAKE_SNAPSHOT_COMMAND_ACTIONED_ATTRIBUTE_ID (0x02D1) +#define ZCL_TAKE_SNAPSHOT_COMMAND_CANCELLED_ATTRIBUTE_ID (0x02D2) +#define ZCL_TAKE_SNAPSHOT_COMMAND_REJECTED_ATTRIBUTE_ID (0x02D3) +#define ZCL_MIRROR_REPORT_ATTRIBUTE_RESPONSE_COMMAND_RECEIVED_ATTRIBUTE_ID (0x02D4) +#define ZCL_MIRROR_REPORT_ATTRIBUTE_RESPONSE_COMMAND_ACTIONED_ATTRIBUTE_ID (0x02D5) +#define ZCL_MIRROR_REPORT_ATTRIBUTE_RESPONSE_COMMAND_CANCELLED_ATTRIBUTE_ID (0x02D6) +#define ZCL_MIRROR_REPORT_ATTRIBUTE_RESPONSE_COMMAND_REJECTED_ATTRIBUTE_ID (0x02D7) +#define ZCL_SCHEDULE_SNAPSHOT_COMMAND_RECEIVED_ATTRIBUTE_ID (0x02D8) +#define ZCL_SCHEDULE_SNAPSHOT_COMMAND_ACTIONED_ATTRIBUTE_ID (0x02D9) +#define ZCL_SCHEDULE_SNAPSHOT_COMMAND_CANCELLED_ATTRIBUTE_ID (0x02DA) +#define ZCL_SCHEDULE_SNAPSHOT_COMMAND_REJECTED_ATTRIBUTE_ID (0x02DB) +#define ZCL_START_SAMPLING_COMMAND_RECEIVED_ATTRIBUTE_ID (0x02DC) +#define ZCL_START_SAMPLING_COMMAND_ACTIONED_ATTRIBUTE_ID (0x02DD) +#define ZCL_START_SAMPLING_COMMAND_CANCELLED_ATTRIBUTE_ID (0x02DE) +#define ZCL_START_SAMPLING_COMMAND_REJECTED_ATTRIBUTE_ID (0x02DF) +#define ZCL_GET_SAMPLED_DATA_COMMAND_RECEIVED_ATTRIBUTE_ID (0x02E0) +#define ZCL_GET_SAMPLED_DATA_COMMAND_ACTIONED_ATTRIBUTE_ID (0x02E1) +#define ZCL_GET_SAMPLED_DATA_COMMAND_CANCELLED_ATTRIBUTE_ID (0x02E2) +#define ZCL_GET_SAMPLED_DATA_COMMAND_REJECTED_ATTRIBUTE_ID (0x02E3) +#define ZCL_SUPPLY_ON_ATTRIBUTE_ID (0x02E4) +#define ZCL_SUPPLY_ARMED_ATTRIBUTE_ID (0x02E5) +#define ZCL_SUPPLY_OFF_ATTRIBUTE_ID (0x02E6) +#define ZCL_DISCONNECTED_DUE_TO_TAMPER_DETECTED_ATTRIBUTE_ID (0x02E7) +#define ZCL_MANUAL_DISCONNECT_ATTRIBUTE_ID (0x02E8) +#define ZCL_MANUAL_CONNECT_ATTRIBUTE_ID (0x02E9) +#define ZCL_REMOTE_DISCONNECTION_ATTRIBUTE_ID (0x02EA) +#define ZCL_REMOTE_CONNECT_ATTRIBUTE_ID (0x02EB) +#define ZCL_LOCAL_DISCONNECTION_ATTRIBUTE_ID (0x02EC) +#define ZCL_LOCAL_CONNECT_ATTRIBUTE_ID (0x02ED) +#define ZCL_CHANGE_SUPPLY_RECEIVED_ATTRIBUTE_ID (0x02EE) +#define ZCL_CHANGE_SUPPLY_ACTIONED_ATTRIBUTE_ID (0x02EF) +#define ZCL_CHANGE_SUPPLY_CANCELLED_ATTRIBUTE_ID (0x02F0) +#define ZCL_CHANGE_SUPPLY_REJECTED_ATTRIBUTE_ID (0x02F1) +#define ZCL_LOCAL_CHANGE_SUPPLY_RECEIVED_ATTRIBUTE_ID (0x02F2) +#define ZCL_LOCAL_CHANGE_SUPPLY_ACTIONED_ATTRIBUTE_ID (0x02F3) +#define ZCL_LOCAL_CHANGE_SUPPLY_CANCELLED_ATTRIBUTE_ID (0x02F4) +#define ZCL_LOCAL_CHANGE_SUPPLY_REJECTED_ATTRIBUTE_ID (0x02F5) +#define ZCL_PUBLISH_UNCONTROLLED_FLOW_THRESHOLD_RECEIVED_ATTRIBUTE_ID (0x02F6) +#define ZCL_PUBLISH_UNCONTROLLED_FLOW_THRESHOLD_ACTIONED_ATTRIBUTE_ID (0x02F7) +#define ZCL_PUBLISH_UNCONTROLLED_FLOW_THRESHOLD_CANCELLED_ATTRIBUTE_ID (0x02F8) +#define ZCL_PUBLISH_UNCONTROLLED_FLOW_THRESHOLD_REJECTED_ATTRIBUTE_ID (0x02F9) +#define ZCL_MESSAGE_CONFIRMATION_SENT_ATTRIBUTE_ID (0x0300) +#define ZCL_DISPLAY_MESSAGE_RECEIVED_ATTRIBUTE_ID (0x03C0) +#define ZCL_DISPLAY_MESSAGE_ACTIONED_ATTRIBUTE_ID (0x03C1) +#define ZCL_DISPLAY_MESSAGE_CANCELLED_ATTRIBUTE_ID (0x03C2) +#define ZCL_DISPLAY_MESSAGE_REJECTED_ATTRIBUTE_ID (0x03C3) +#define ZCL_CANCEL_MESSAGE_RECEIVED_ATTRIBUTE_ID (0x03C4) +#define ZCL_CANCEL_MESSAGE_ACTIONED_ATTRIBUTE_ID (0x03C5) +#define ZCL_CANCEL_MESSAGE_CANCELLED_ATTRIBUTE_ID (0x03C6) +#define ZCL_CANCEL_MESSAGE_REJECTED_ATTRIBUTE_ID (0x03C7) +#define ZCL_LOW_CREDIT_ATTRIBUTE_ID (0x0400) +#define ZCL_NO_CREDIT_ATTRIBUTE_ID (0x0401) +#define ZCL_CREDIT_EXHAUSTED_ATTRIBUTE_ID (0x0402) +#define ZCL_EMERGENCY_CREDIT_ENABLED_ATTRIBUTE_ID (0x0403) +#define ZCL_EMERGENCY_CREDIT_EXHAUSTED_ATTRIBUTE_ID (0x0404) +#define ZCL_PREPAY_IHD_LOW_CREDIT_WARNING_ATTRIBUTE_ID (0x0405) +#define ZCL_PHYSICAL_ATTACK_ON_THE_PREPAY_METER_ATTRIBUTE_ID (0x0420) +#define ZCL_ELECTRONIC_ATTACK_ON_THE_PREPAY_METER_ATTRIBUTE_ID (0x0421) +#define ZCL_DISCOUNT_APPLIED_ATTRIBUTE_ID (0x0422) +#define ZCL_CREDIT_ADJUSTMENT_ATTRIBUTE_ID (0x0423) +#define ZCL_CREDIT_ADJUST_FAIL_ATTRIBUTE_ID (0x0424) +#define ZCL_DEBT_ADJUSTMENT_ATTRIBUTE_ID (0x0425) +#define ZCL_DEBT_ADJUST_FAIL_ATTRIBUTE_ID (0x0426) +#define ZCL_MODE_CHANGE_ATTRIBUTE_ID (0x0427) +#define ZCL_TOPUP_CODE_ERROR_ATTRIBUTE_ID (0x0428) +#define ZCL_TOPUP_ALREADY_USED_ATTRIBUTE_ID (0x0429) +#define ZCL_TOPUP_CODE_INVALID_ATTRIBUTE_ID (0x042A) +#define ZCL_TOPUP_ACCEPTED_VIA_REMOTE_ATTRIBUTE_ID (0x042B) +#define ZCL_TOPUP_ACCEPTED_VIA_MANUAL_ENTRY_ATTRIBUTE_ID (0x042C) +#define ZCL_FRIENDLY_CREDIT_IN_USE_ATTRIBUTE_ID (0x042D) +#define ZCL_FRIENDLY_CREDIT_END_WARNING_ATTRIBUTE_ID (0x042E) +#define ZCL_FRIENDLY_CREDIT_PERIOD_END_ATTRIBUTE_ID (0x042F) +#define ZCL_PREPAY_ERROR_REG_CLEAR_ATTRIBUTE_ID (0x0430) +#define ZCL_PREPAY_ALARM_REG_CLEAR_ATTRIBUTE_ID (0x0431) +#define ZCL_PREPAY_CLUSTER_NOT_FOUND_ATTRIBUTE_ID (0x0432) +#define ZCL_TOPUP_VALUE_TOO_LARGE_ATTRIBUTE_ID (0x0433) +#define ZCL_MODE_CREDIT_2_PREPAY_ATTRIBUTE_ID (0x0441) +#define ZCL_MODE_PREPAY_2_CREDIT_ATTRIBUTE_ID (0x0442) +#define ZCL_MODE_DEFAULT_ATTRIBUTE_ID (0x0443) +#define ZCL_SELECT_AVAILABLE_EMERGENCY_CREDIT_RECEIVED_ATTRIBUTE_ID (0x04C0) +#define ZCL_SELECT_AVAILABLE_EMERGENCY_CREDIT_ACTIONED_ATTRIBUTE_ID (0x04C1) +#define ZCL_SELECT_AVAILABLE_EMERGENCY_CREDIT_CANCELLED_ATTRIBUTE_ID (0x04C2) +#define ZCL_SELECT_AVAILABLE_EMERGENCY_CREDIT_REJECTED_ATTRIBUTE_ID (0x04C3) +#define ZCL_CHANGE_DEBT_RECEIVED_ATTRIBUTE_ID (0x04C4) +#define ZCL_CHANGE_DEBT_ACTIONED_ATTRIBUTE_ID (0x04C5) +#define ZCL_CHANGE_DEBT_CANCELLED_ATTRIBUTE_ID (0x04C6) +#define ZCL_CHANGE_DEBT_REJECTED_ATTRIBUTE_ID (0x04C7) +#define ZCL_EMERGENCY_CREDIT_SETUP_RECEIVED_ATTRIBUTE_ID (0x04C8) +#define ZCL_EMERGENCY_CREDIT_SETUP_ACTIONED_ATTRIBUTE_ID (0x04C9) +#define ZCL_EMERGENCY_CREDIT_SETUP_CANCELLED_ATTRIBUTE_ID (0x04CA) +#define ZCL_EMERGENCY_CREDIT_SETUP_REJECTED_ATTRIBUTE_ID (0x04CB) +#define ZCL_CONSUMER_TOPUP_RECEIVED_ATTRIBUTE_ID (0x04CC) +#define ZCL_CONSUMER_TOPUP_ACTIONED_ATTRIBUTE_ID (0x04CD) +#define ZCL_CONSUMER_TOPUP_CANCELLED_ATTRIBUTE_ID (0x04CE) +#define ZCL_CONSUMER_TOPUP_REJECTED_ATTRIBUTE_ID (0x04CF) +#define ZCL_CREDIT_ADJUSTMENT_RECEIVED_ATTRIBUTE_ID (0x04D0) +#define ZCL_CREDIT_ADJUSTMENT_ACTIONED_ATTRIBUTE_ID (0x04D1) +#define ZCL_CREDIT_ADJUSTMENT_CANCELLED_ATTRIBUTE_ID (0x04D2) +#define ZCL_CREDIT_ADJUSTMENT_REJECTED_ATTRIBUTE_ID (0x04D3) +#define ZCL_CHANGE_PAYMENT_MODE_RECEIVED_ATTRIBUTE_ID (0x04D4) +#define ZCL_CHANGE_PAYMENT_MODE_ACTIONED_ATTRIBUTE_ID (0x04D5) +#define ZCL_CHANGE_PAYMENT_MODE_CANCELLED_ATTRIBUTE_ID (0x04D6) +#define ZCL_CHANGE_PAYMENT_MODE_REJECTED_ATTRIBUTE_ID (0x04D7) +#define ZCL_GET_PREPAY_SNAPSHOT_RECEIVED_ATTRIBUTE_ID (0x04D8) +#define ZCL_GET_PREPAY_SNAPSHOT_ACTIONED_ATTRIBUTE_ID (0x04D9) +#define ZCL_GET_PREPAY_SNAPSHOT_CANCELLED_ATTRIBUTE_ID (0x04DA) +#define ZCL_GET_PREPAY_SNAPSHOT_REJECTED_ATTRIBUTE_ID (0x04DB) +#define ZCL_GET_TOPUP_LOG_RECEIVED_ATTRIBUTE_ID (0x04DC) +#define ZCL_GET_TOPUP_LOG_ACTIONED_ATTRIBUTE_ID (0x04DD) +#define ZCL_GET_TOPUP_LOG_CANCELLED_ATTRIBUTE_ID (0x04DE) +#define ZCL_GET_TOPUP_LOG_REJECTED_ATTRIBUTE_ID (0x04DF) +#define ZCL_SET_LOW_CREDIT_WARNING_LEVEL_RECEIVED_ATTRIBUTE_ID (0x04E0) +#define ZCL_SET_LOW_CREDIT_WARNING_LEVEL_ACTIONED_ATTRIBUTE_ID (0x04E1) +#define ZCL_SET_LOW_CREDIT_WARNING_LEVEL_CANCELLED_ATTRIBUTE_ID (0x04E2) +#define ZCL_SET_LOW_CREDIT_WARNING_LEVEL_REJECTED_ATTRIBUTE_ID (0x04E3) +#define ZCL_GET_DEBT_REPAY_LOG_RECEIVED_ATTRIBUTE_ID (0x04E4) +#define ZCL_GET_DEBT_REPAY_LOG_ACTIONED_ATTRIBUTE_ID (0x04E5) +#define ZCL_GET_DEBT_REPAY_LOG_CANCELLED_ATTRIBUTE_ID (0x04E6) +#define ZCL_GET_DEBT_REPAY_LOG_REJECTED_ATTRIBUTE_ID (0x04E7) +#define ZCL_SET_MAXIMUM_CREDIT_LIMIT_RECEIVED_ATTRIBUTE_ID (0x04E8) +#define ZCL_SET_MAXIMUM_CREDIT_LIMIT_ACTIONED_ATTRIBUTE_ID (0x04E9) +#define ZCL_SET_MAXIMUM_CREDIT_LIMIT_CANCELLED_ATTRIBUTE_ID (0x04EA) +#define ZCL_SET_MAXIMUM_CREDIT_LIMIT_REJECTED_ATTRIBUTE_ID (0x04EB) +#define ZCL_SET_OVERALL_DEBT_CAP_RECEIVED_ATTRIBUTE_ID (0x04EC) +#define ZCL_SET_OVERALL_DEBT_CAP_ACTIONED_ATTRIBUTE_ID (0x04ED) +#define ZCL_SET_OVERALL_DEBT_CAP_CANCELLED_ATTRIBUTE_ID (0x04EE) +#define ZCL_SET_OVERALL_DEBT_CAP_REJECTED_ATTRIBUTE_ID (0x04EF) +#define ZCL_CALENDAR_CLUSTER_NOT_FOUND_ATTRIBUTE_ID (0x0500) +#define ZCL_CALENDAR_CHANGE_PASSIVE_ACTIVATED_ATTRIBUTE_ID (0x0501) +#define ZCL_CALENDAR_CHANGE_PASSIVE_UPDATED_ATTRIBUTE_ID (0x0502) +#define ZCL_PUBLISH_CALENDAR_RECEIVED_ATTRIBUTE_ID (0x05C0) +#define ZCL_PUBLISH_CALENDAR_ACTIONED_ATTRIBUTE_ID (0x05C1) +#define ZCL_PUBLISH_CALENDAR_CANCELLED_ATTRIBUTE_ID (0x05C2) +#define ZCL_PUBLISH_CALENDAR_REJECTED_ATTRIBUTE_ID (0x05C3) +#define ZCL_PUBLISH_DAY_PROFILE_RECEIVED_ATTRIBUTE_ID (0x05C4) +#define ZCL_PUBLISH_DAY_PROFILE_ACTIONED_ATTRIBUTE_ID (0x05C5) +#define ZCL_PUBLISH_DAY_PROFILE_CANCELLED_ATTRIBUTE_ID (0x05C6) +#define ZCL_PUBLISH_DAY_PROFILE_REJECTED_ATTRIBUTE_ID (0x05C7) +#define ZCL_PUBLISH_WEEK_PROFILE_RECEIVED_ATTRIBUTE_ID (0x05C8) +#define ZCL_PUBLISH_WEEK_PROFILE_ACTIONED_ATTRIBUTE_ID (0x05C9) +#define ZCL_PUBLISH_WEEK_PROFILE_CANCELLED_ATTRIBUTE_ID (0x05CA) +#define ZCL_PUBLISH_WEEK_PROFILE_REJECTED_ATTRIBUTE_ID (0x05CB) +#define ZCL_PUBLISH_SEASONS_RECEIVED_ATTRIBUTE_ID (0x05CC) +#define ZCL_PUBLISH_SEASONS_ACTIONED_ATTRIBUTE_ID (0x05CD) +#define ZCL_PUBLISH_SEASONS_CANCELLED_ATTRIBUTE_ID (0x05CE) +#define ZCL_PUBLISH_SEASONS_REJECTED_ATTRIBUTE_ID (0x05CF) +#define ZCL_PUBLISH_SPECIAL_DAYS_RECEIVED_ATTRIBUTE_ID (0x05D0) +#define ZCL_PUBLISH_SPECIAL_DAYS_ACTIONED_ATTRIBUTE_ID (0x05D1) +#define ZCL_PUBLISH_SPECIAL_DAYS_CANCELLED_ATTRIBUTE_ID (0x05D2) +#define ZCL_PUBLISH_SPECIAL_DAYS_REJECTED_ATTRIBUTE_ID (0x05D3) +#define ZCL_PASSWORD_1_CHANGE_ATTRIBUTE_ID (0x0600) +#define ZCL_PASSWORD_2_CHANGE_ATTRIBUTE_ID (0x0601) +#define ZCL_PASSWORD_3_CHANGE_ATTRIBUTE_ID (0x0602) +#define ZCL_PASSWORD_4_CHANGE_ATTRIBUTE_ID (0x0603) +#define ZCL_EVENT_LOG_CLEARED_ATTRIBUTE_ID (0x0604) +#define ZCL_ZIGBEE_APS_TIMEOUT_ATTRIBUTE_ID (0x0610) +#define ZCL_ZIGBEE_IEEE_TRANSMISSION_FAILURE_OVER_THRESHOLD_ATTRIBUTE_ID (0x0611) +#define ZCL_ZIGBEE_IEEE_FRAME_CHECK_SEQUENCE_THRESHOLD_ATTRIBUTE_ID (0x0612) +#define ZCL_ERROR_CERTIFICATE_ATTRIBUTE_ID (0x0613) +#define ZCL_ERROR_SIGNATURE_ATTRIBUTE_ID (0x0614) +#define ZCL_ERROR_PROGRAM_STORAGE_ATTRIBUTE_ID (0x0615) +#define ZCL_PUBLISH_COT_RECEIVED_ATTRIBUTE_ID (0x06C0) +#define ZCL_PUBLISH_COT_ACTIONED_ATTRIBUTE_ID (0x06C1) +#define ZCL_PUBLISH_COT_CANCELLED_ATTRIBUTE_ID (0x06C2) +#define ZCL_PUBLISH_COT_REJECTED_ATTRIBUTE_ID (0x06C3) +#define ZCL_PUBLISH_COS_RECEIVED_ATTRIBUTE_ID (0x06C4) +#define ZCL_PUBLISH_COS_ACTIONED_ATTRIBUTE_ID (0x06C5) +#define ZCL_PUBLISH_COS_CANCELLED_ATTRIBUTE_ID (0x06C6) +#define ZCL_PUBLISH_COS_REJECTED_ATTRIBUTE_ID (0x06C7) +#define ZCL_CHANGE_PASSWORD_RECEIVED_ATTRIBUTE_ID (0x06C8) +#define ZCL_CHANGE_PASSWORD_ACTIONED_ATTRIBUTE_ID (0x06C9) +#define ZCL_CHANGE_PASSWORD_CANCELLED_ATTRIBUTE_ID (0x06CA) +#define ZCL_CHANGE_PASSWORD_REJECTED_ATTRIBUTE_ID (0x06CB) +#define ZCL_SET_EVENT_CONFIGURATION_RECEIVED_ATTRIBUTE_ID (0x06CC) +#define ZCL_SET_EVENT_CONFIGURATION_ACTIONED_ATTRIBUTE_ID (0x06CD) +#define ZCL_SET_EVENT_CONFIGURATION_CANCELLED_ATTRIBUTE_ID (0x06CE) +#define ZCL_SET_EVENT_CONFIGURATION_REJECTED_ATTRIBUTE_ID (0x06CF) +#define ZCL_UPDATE_SITE_ID_RECEIVED_ATTRIBUTE_ID (0x06D0) +#define ZCL_UPDATE_SITE_ID_ACTIONED_ATTRIBUTE_ID (0x06D1) +#define ZCL_UPDATE_SITE_ID_CANCELLED_ATTRIBUTE_ID (0x06D2) +#define ZCL_UPDATE_SITE_ID_REJECTED_ATTRIBUTE_ID (0x06D3) +#define ZCL_UPDATE_CIN_RECEIVED_ATTRIBUTE_ID (0x06D4) +#define ZCL_UPDATE_CIN_ACTIONED_ATTRIBUTE_ID (0x06D5) +#define ZCL_UPDATE_CIN_CANCELLED_ATTRIBUTE_ID (0x06D6) +#define ZCL_UPDATE_CIN_REJECTED_ATTRIBUTE_ID (0x06D7) +#define ZCL_TUNNELING_CLUSTER_NOT_FOUND_ATTRIBUTE_ID (0x0700) +#define ZCL_UNSUPPORTED_PROTOCOL_ATTRIBUTE_ID (0x0701) +#define ZCL_INCORRECT_PROTOCOL_ATTRIBUTE_ID (0x0702) +#define ZCL_REQUEST_TUNNEL_COMMAND_RECEIVED_ATTRIBUTE_ID (0x07C0) +#define ZCL_REQUEST_TUNNEL_COMMAND_REJECTED_ATTRIBUTE_ID (0x07C1) +#define ZCL_REQUEST_TUNNEL_COMMAND_GENERATED_ATTRIBUTE_ID (0x07C2) +#define ZCL_CLOSE_TUNNEL_COMMAND_RECEIVED_ATTRIBUTE_ID (0x07C3) +#define ZCL_CLOSE_TUNNEL_COMMAND_REJECTED_ATTRIBUTE_ID (0x07C4) +#define ZCL_CLOSE_TUNNEL_COMMAND_GENERATED_ATTRIBUTE_ID (0x07C5) +#define ZCL_TRANSFER_DATA_COMMAND_RECEIVED_ATTRIBUTE_ID (0x07C6) +#define ZCL_TRANSFER_DATA_COMMAND_REJECTED_ATTRIBUTE_ID (0x07C7) +#define ZCL_TRANSFER_DATA_COMMAND_GENERATED_ATTRIBUTE_ID (0x07C8) +#define ZCL_TRANSFER_DATA_ERROR_COMMAND_RECEIVED_ATTRIBUTE_ID (0x07C9) +#define ZCL_TRANSFER_DATA_ERROR_COMMAND_REJECTED_ATTRIBUTE_ID (0x07CA) +#define ZCL_TRANSFER_DATA_ERROR_COMMAND_GENERATED_ATTRIBUTE_ID (0x07CB) +#define ZCL_ACK_TRANSFER_DATA_COMMAND_RECEIVED_ATTRIBUTE_ID (0x07CC) +#define ZCL_ACK_TRANSFER_DATA_COMMAND_REJECTED_ATTRIBUTE_ID (0x07CD) +#define ZCL_ACK_TRANSFER_DATA_COMMAND_GENERATED_ATTRIBUTE_ID (0x07CE) +#define ZCL_READY_DATA_COMMAND_RECEIVED_ATTRIBUTE_ID (0x07CF) +#define ZCL_READY_DATA_COMMAND_REJECTED_ATTRIBUTE_ID (0x07D0) +#define ZCL_READY_DATA_COMMAND_GENERATED_ATTRIBUTE_ID (0x07D1) +#define ZCL_GET_SUPPORTED_TUNNEL_PROTOCOLS_COMMAND_RECEIVED_ATTRIBUTE_ID (0x07D2) +#define ZCL_GET_SUPPORTED_TUNNEL_PROTOCOLS_COMMAND_REJECTED_ATTRIBUTE_ID (0x07D3) +#define ZCL_GET_SUPPORTED_TUNNEL_PROTOCOLS_COMMAND_GENERATED_ATTRIBUTE_ID (0x07D4) +#define ZCL_FIRMWARE_READY_FOR_ACTIVATION_ATTRIBUTE_ID (0x0800) +#define ZCL_FIRMWARE_ACTIVATED_ATTRIBUTE_ID (0x0801) +#define ZCL_FIRMWARE_ACTIVATION_FAILURE_ATTRIBUTE_ID (0x0802) +#define ZCL_PATCH_READY_FOR_ACTIVATION_ATTRIBUTE_ID (0x0803) +#define ZCL_PATCH_ACTIVATED_ATTRIBUTE_ID (0x0804) +#define ZCL_PATCH_FAILURE_ATTRIBUTE_ID (0x0805) +#define ZCL_IMAGE_NOTIFY_COMMAND_RECEIVED_ATTRIBUTE_ID (0x08C0) +#define ZCL_IMAGE_NOTIFY_COMMAND_REJECTED_ATTRIBUTE_ID (0x08C1) +#define ZCL_QUERY_NEXT_IMAGE_REQUEST_GENERATED_ATTRIBUTE_ID (0x08C2) +#define ZCL_QUERY_NEXT_IMAGE_RESPONSE_RECEIVED_ATTRIBUTE_ID (0x08C3) +#define ZCL_QUERY_NEXT_IMAGE_RESPONSE_REJECTED_ATTRIBUTE_ID (0x08C4) +#define ZCL_IMAGE_BLOCK_REQUEST_GENERATED_ATTRIBUTE_ID (0x08C5) +#define ZCL_IMAGE_PAGE_REQUEST_GENERATED_ATTRIBUTE_ID (0x08C6) +#define ZCL_IMAGE_BLOCK_RESPONSE_RECEIVED_ATTRIBUTE_ID (0x08C7) +#define ZCL_IMAGE_BLOCK_RESPONSE_REJECTED_ATTRIBUTE_ID (0x08C8) +#define ZCL_UPGRADE_END_REQUEST_GENERATED_ATTRIBUTE_ID (0x08C9) +#define ZCL_UPGRADE_END_RESPONSE_RECEIVED_ATTRIBUTE_ID (0x08CA) +#define ZCL_UPGRADE_END_RESPONSE_REJECTED_ATTRIBUTE_ID (0x08CB) +#define ZCL_QUERY_SPECIFIC_FILE_REQUEST_GENERATED_ATTRIBUTE_ID (0x08CC) +#define ZCL_QUERY_SPECIFIC_FILE_RESPONSE_RECEIVED_ATTRIBUTE_ID (0x08CD) +#define ZCL_QUERY_SPECIFIC_FILE_RESPONSE_REJECTED_ATTRIBUTE_ID (0x08CE) +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) + +// Server attributes +#define ZCL_PROVIDER_ID_SERVER_ATTRIBUTE_ID (0x0100) +#define ZCL_PROVIDER_NAME_ATTRIBUTE_ID (0x0101) +#define ZCL_PROVIDER_CONTACT_DETAILS_ATTRIBUTE_ID (0x0102) +#define ZCL_PROPOSED_PROVIDER_ID_ATTRIBUTE_ID (0x0110) +#define ZCL_PROPOSED_PROVIDER_NAME_ATTRIBUTE_ID (0x0111) +#define ZCL_PROPOSED_PROVIDER_CHANGE_DATE_TIME_ATTRIBUTE_ID (0x0112) +#define ZCL_PROPOSED_PROVIDER_CHANGE_CONTROL_ATTRIBUTE_ID (0x0113) +#define ZCL_RECEIVED_PROVIDER_ID_SERVER_ATTRIBUTE_ID (0x0120) +#define ZCL_RECEIVED_PROVIDER_NAME_ATTRIBUTE_ID (0x0121) +#define ZCL_RECEIVED_PROVIDER_CONTACT_DETAILS_ATTRIBUTE_ID (0x0122) +#define ZCL_RECEIVED_PROPOSED_PROVIDER_ID_ATTRIBUTE_ID (0x0130) +#define ZCL_RECEIVED_PROPOSED_PROVIDER_NAME_ATTRIBUTE_ID (0x0131) +#define ZCL_RECEIVED_PROPOSED_PROVIDER_CHANGE_DATE_TIME_ATTRIBUTE_ID (0x0132) +#define ZCL_RECEIVED_PROPOSED_PROVIDER_CHANGE_CONTROL_ATTRIBUTE_ID (0x0133) +#define ZCL_CHANGE_OF_TENANCY_UPDATE_DATE_TIME_ATTRIBUTE_ID (0x0200) +#define ZCL_PROPOSED_TENANCY_CHANGE_CONTROL_ATTRIBUTE_ID (0x0201) +#define ZCL_WAN_STATUS_ATTRIBUTE_ID (0x0300) +#define ZCL_LOW_MEDIUM_THRESHOLD_ATTRIBUTE_ID (0x0400) +#define ZCL_MEDIUM_HIGH_THRESHOLD_ATTRIBUTE_ID (0x0401) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Events + +// Client attributes +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) + +// Server attributes +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: MDU Pairing + +// Client attributes +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) + +// Server attributes +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Sub-GHz + +// Client attributes +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) + +// Server attributes +#define ZCL_SUB_GHZ_CLUSTER_CHANNEL_CHANGE_ATTRIBUTE_ID (0x0000) +#define ZCL_SUB_GHZ_CLUSTER_PAGE_28_CHANNEL_MASK_ATTRIBUTE_ID (0x0001) +#define ZCL_SUB_GHZ_CLUSTER_PAGE_29_CHANNEL_MASK_ATTRIBUTE_ID (0x0002) +#define ZCL_SUB_GHZ_CLUSTER_PAGE_30_CHANNEL_MASK_ATTRIBUTE_ID (0x0003) +#define ZCL_SUB_GHZ_CLUSTER_PAGE_31_CHANNEL_MASK_ATTRIBUTE_ID (0x0004) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Key Establishment + +// Client attributes +#define ZCL_KEY_ESTABLISHMENT_SUITE_CLIENT_ATTRIBUTE_ID (0x0000) +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) + +// Server attributes +#define ZCL_KEY_ESTABLISHMENT_SUITE_SERVER_ATTRIBUTE_ID (0x0000) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Information + +// Client attributes +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) + +// Server attributes +#define ZCL_NODE_DESCRIPTION_ATTRIBUTE_ID (0x0000) +#define ZCL_DELIVERY_ENABLE_ATTRIBUTE_ID (0x0001) +#define ZCL_PUSH_INFORMATION_TIMER_ATTRIBUTE_ID (0x0002) +#define ZCL_ENABLE_SECURE_CONFIGURATION_ATTRIBUTE_ID (0x0003) +#define ZCL_NUMBER_OF_CONTENTS_ATTRIBUTE_ID (0x0010) +#define ZCL_CONTENT_ROOT_ID_ATTRIBUTE_ID (0x0011) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Data Sharing + +// Client attributes +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) + +// Server attributes +#define ZCL_DEVICE_NAME_ATTRIBUTE_ID (0x0000) +#define ZCL_DEVICE_DESCRIPTION_ATTRIBUTE_ID (0x0001) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Gaming + +// Client attributes +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) + +// Server attributes +#define ZCL_PLAYER_NAME_ATTRIBUTE_ID (0x0000) +#define ZCL_NB_OF_GAMES_ATTRIBUTE_ID (0x0001) +#define ZCL_LIST_OF_GAMES_ATTRIBUTE_ID (0x0002) +#define ZCL_ANNOUNCEMENT_INTERVAL_ATTRIBUTE_ID (0x0003) +#define ZCL_GAME_ID_ATTRIBUTE_ID (0x0010) +#define ZCL_NAME_OF_GAME_ATTRIBUTE_ID (0x0011) +#define ZCL_GAME_MASTER_ATTRIBUTE_ID (0x0012) +#define ZCL_GAMING_STATUS_ATTRIBUTE_ID (0x0013) +#define ZCL_CURRENT_NB_OF_PLAYERS_ATTRIBUTE_ID (0x0014) +#define ZCL_LIST_OF_CURRENT_PLAYERS_ATTRIBUTE_ID (0x0015) +#define ZCL_MAX_NB_OF_PLAYERS_ATTRIBUTE_ID (0x0016) +#define ZCL_MIN_NB_OF_PLAYERS_ATTRIBUTE_ID (0x0017) +#define ZCL_CURRENT_GAME_LEVEL_ATTRIBUTE_ID (0x0018) +#define ZCL_SCORE_OF_THIS_PLAYER_ATTRIBUTE_ID (0x0019) +#define ZCL_TIMER1_ATTRIBUTE_ID (0x001A) +#define ZCL_TIMER2_ATTRIBUTE_ID (0x001B) +#define ZCL_TIMER3_ATTRIBUTE_ID (0x001C) +#define ZCL_COUNTER1_ATTRIBUTE_ID (0x001D) +#define ZCL_COUNTER2_ATTRIBUTE_ID (0x001E) +#define ZCL_DOWNLOADABLE_ATTRIBUTE_ID (0x001F) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Data Rate Control + +// Client attributes +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) + +// Server attributes +#define ZCL_AVERAGE_LATENCY_REQUIREMENT_ATTRIBUTE_ID (0x0000) +#define ZCL_MAX_LATENCY_REQUIREMENT_ATTRIBUTE_ID (0x0001) +#define ZCL_BANDWIDTH_REQUIREMENT_ATTRIBUTE_ID (0x0002) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Voice over ZigBee + +// Client attributes +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) + +// Server attributes +#define ZCL_CODEC_TYPE_ATTRIBUTE_ID (0x0000) +#define ZCL_SAMPLING_FREQUENCY_ATTRIBUTE_ID (0x0001) +#define ZCL_CODEC_RATE_ATTRIBUTE_ID (0x0002) +#define ZCL_ESTABLISHMENT_TIMEOUT_ATTRIBUTE_ID (0x0003) +#define ZCL_CODEC_TYPE_SUB1_ATTRIBUTE_ID (0x0004) +#define ZCL_CODEC_TYPE_SUB2_ATTRIBUTE_ID (0x0005) +#define ZCL_CODEC_TYPE_SUB3_ATTRIBUTE_ID (0x0006) +#define ZCL_COMPRESSION_TYPE_ATTRIBUTE_ID (0x0007) +#define ZCL_COMPRESSION_RATE_ATTRIBUTE_ID (0x0008) +#define ZCL_OPTION_FLAGS_ATTRIBUTE_ID (0x0009) +#define ZCL_THRESHOLD_ATTRIBUTE_ID (0x000A) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Chatting + +// Client attributes +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) + +// Server attributes +#define ZCL_U_ID_ATTRIBUTE_ID (0x0000) +#define ZCL_NICKNAME_ATTRIBUTE_ID (0x0001) +#define ZCL_C_ID_ATTRIBUTE_ID (0x0010) +#define ZCL_NAME_ATTRIBUTE_ID (0x0011) +#define ZCL_ENABLE_ADD_CHAT_ATTRIBUTE_ID (0x0020) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Payment + +// Client attributes +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) + +// Server attributes +#define ZCL_PAYMENT_USER_ID_ATTRIBUTE_ID (0x0000) +#define ZCL_USER_TYPE_ATTRIBUTE_ID (0x0001) +#define ZCL_PAYMENT_SERVICE_ID_ATTRIBUTE_ID (0x0010) +#define ZCL_PAYMENT_SERVICE_PROVIDER_ID_ATTRIBUTE_ID (0x0011) +#define ZCL_TOTEM_ID_ATTRIBUTE_ID (0x0012) +#define ZCL_CURRENCY_ATTRIBUTE_ID (0x0020) +#define ZCL_PRICE_TRAILING_DIGIT_ATTRIBUTE_ID (0x0021) +#define ZCL_PRICE_ATTRIBUTE_ID (0x0022) +#define ZCL_GOOD_ID_ATTRIBUTE_ID (0x0030) +#define ZCL_SERIAL_NUMBER_ATTRIBUTE_ID (0x0031) +#define ZCL_PAYMENT_TIMESTAMP_ATTRIBUTE_ID (0x0032) +#define ZCL_TRANS_ID_ATTRIBUTE_ID (0x0033) +#define ZCL_TRANS_STATUS_ATTRIBUTE_ID (0x0034) +#define ZCL_PAYMENT_STATUS_ATTRIBUTE_ID (0x0035) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Billing + +// Client attributes +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) + +// Server attributes +#define ZCL_USER_ID_ATTRIBUTE_ID (0x0000) +#define ZCL_SERVICE_ID_ATTRIBUTE_ID (0x0010) +#define ZCL_SERVICE_PROVIDER_ID_ATTRIBUTE_ID (0x0011) +#define ZCL_SESSION_INTERVAL_ATTRIBUTE_ID (0x0012) +#define ZCL_TIMESTAMP_ATTRIBUTE_ID (0x0020) +#define ZCL_DURATION_ATTRIBUTE_ID (0x0021) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Appliance Identification + +// Client attributes +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) + +// Server attributes +#define ZCL_BASIC_IDENTIFICATION_ATTRIBUTE_ID (0x0000) +#define ZCL_APPLIANCE_COMPANY_NAME_ATTRIBUTE_ID (0x0010) +#define ZCL_COMPANY_ID_ATTRIBUTE_ID (0x0011) +#define ZCL_BRAND_NAME_ATTRIBUTE_ID (0x0012) +#define ZCL_BRAND_ID_ATTRIBUTE_ID (0x0013) +#define ZCL_APPLIANCE_MODEL_ATTRIBUTE_ID (0x0014) +#define ZCL_APPLIANCE_PART_NUMBER_ATTRIBUTE_ID (0x0015) +#define ZCL_APPLIANCE_PRODUCT_REVISION_ATTRIBUTE_ID (0x0016) +#define ZCL_APPLIANCE_SOFTWARE_REVISION_ATTRIBUTE_ID (0x0017) +#define ZCL_PRODUCT_TYPE_NAME_ATTRIBUTE_ID (0x0018) +#define ZCL_PRODUCT_TYPE_ID_ATTRIBUTE_ID (0x0019) +#define ZCL_CECED_SPECIFICATION_VERSION_ATTRIBUTE_ID (0x001A) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Meter Identification + +// Client attributes +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) + +// Server attributes +#define ZCL_METER_COMPANY_NAME_ATTRIBUTE_ID (0x0000) +#define ZCL_METER_TYPE_ID_ATTRIBUTE_ID (0x0001) +#define ZCL_DATA_QUALITY_ID_ATTRIBUTE_ID (0x0004) +#define ZCL_CUSTOMER_NAME_ATTRIBUTE_ID (0x0005) +#define ZCL_METER_MODEL_ATTRIBUTE_ID (0x0006) +#define ZCL_METER_PART_NUMBER_ATTRIBUTE_ID (0x0007) +#define ZCL_METER_PRODUCT_REVISION_ATTRIBUTE_ID (0x0008) +#define ZCL_METER_SOFTWARE_REVISION_ATTRIBUTE_ID (0x000A) +#define ZCL_UTILITY_NAME_ATTRIBUTE_ID (0x000B) +#define ZCL_POD_ATTRIBUTE_ID (0x000C) +#define ZCL_AVAILABLE_POWER_ATTRIBUTE_ID (0x000D) +#define ZCL_POWER_THRESHOLD_ATTRIBUTE_ID (0x000E) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Appliance Events and Alert + +// Client attributes +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) + +// Server attributes +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Appliance Statistics + +// Client attributes +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) + +// Server attributes +#define ZCL_LOG_MAX_SIZE_ATTRIBUTE_ID (0x0000) +#define ZCL_LOG_QUEUE_MAX_SIZE_ATTRIBUTE_ID (0x0001) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Electrical Measurement + +// Client attributes +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) + +// Server attributes +#define ZCL_MEASUREMENT_TYPE_ATTRIBUTE_ID (0x0000) +#define ZCL_DC_VOLTAGE_ATTRIBUTE_ID (0x0100) +#define ZCL_DC_VOLTAGE_MIN_ATTRIBUTE_ID (0x0101) +#define ZCL_DC_VOLTAGE_MAX_ATTRIBUTE_ID (0x0102) +#define ZCL_DC_CURRENT_ATTRIBUTE_ID (0x0103) +#define ZCL_DC_CURRENT_MIN_ATTRIBUTE_ID (0x0104) +#define ZCL_DC_CURRENT_MAX_ATTRIBUTE_ID (0x0105) +#define ZCL_DC_POWER_ATTRIBUTE_ID (0x0106) +#define ZCL_DC_POWER_MIN_ATTRIBUTE_ID (0x0107) +#define ZCL_DC_POWER_MAX_ATTRIBUTE_ID (0x0108) +#define ZCL_DC_VOLTAGE_MULTIPLIER_ATTRIBUTE_ID (0x0200) +#define ZCL_DC_VOLTAGE_DIVISOR_ATTRIBUTE_ID (0x0201) +#define ZCL_DC_CURRENT_MULTIPLIER_ATTRIBUTE_ID (0x0202) +#define ZCL_DC_CURRENT_DIVISOR_ATTRIBUTE_ID (0x0203) +#define ZCL_DC_POWER_MULTIPLIER_ATTRIBUTE_ID (0x0204) +#define ZCL_DC_POWER_DIVISOR_ATTRIBUTE_ID (0x0205) +#define ZCL_AC_FREQUENCY_ATTRIBUTE_ID (0x0300) +#define ZCL_AC_FREQUENCY_MIN_ATTRIBUTE_ID (0x0301) +#define ZCL_AC_FREQUENCY_MAX_ATTRIBUTE_ID (0x0302) +#define ZCL_NEUTRAL_CURRENT_ATTRIBUTE_ID (0x0303) +#define ZCL_TOTAL_ACTIVE_POWER_ATTRIBUTE_ID (0x0304) +#define ZCL_TOTAL_REACTIVE_POWER_ATTRIBUTE_ID (0x0305) +#define ZCL_TOTAL_APPARENT_POWER_ATTRIBUTE_ID (0x0306) +#define ZCL_MEASURED_1_ST_HARMONIC_CURRENT_ATTRIBUTE_ID (0x0307) +#define ZCL_MEASURED_3_RD_HARMONIC_CURRENT_ATTRIBUTE_ID (0x0308) +#define ZCL_MEASURED_5_TH_HARMONIC_CURRENT_ATTRIBUTE_ID (0x0309) +#define ZCL_MEASURED_7_TH_HARMONIC_CURRENT_ATTRIBUTE_ID (0x030A) +#define ZCL_MEASURED_9_TH_HARMONIC_CURRENT_ATTRIBUTE_ID (0x030B) +#define ZCL_MEASURED_11_TH_HARMONIC_CURRENT_ATTRIBUTE_ID (0x030C) +#define ZCL_MEASURED_PHASE_1_ST_HARMONIC_CURRENT_ATTRIBUTE_ID (0x030D) +#define ZCL_MEASURED_PHASE_3_RD_HARMONIC_CURRENT_ATTRIBUTE_ID (0x030E) +#define ZCL_MEASURED_PHASE_5_TH_HARMONIC_CURRENT_ATTRIBUTE_ID (0x030F) +#define ZCL_MEASURED_PHASE_7_TH_HARMONIC_CURRENT_ATTRIBUTE_ID (0x0310) +#define ZCL_MEASURED_PHASE_9_TH_HARMONIC_CURRENT_ATTRIBUTE_ID (0x0311) +#define ZCL_MEASURED_PHASE_11_TH_HARMONIC_CURRENT_ATTRIBUTE_ID (0x0312) +#define ZCL_AC_FREQUENCY_MULTIPLIER_ATTRIBUTE_ID (0x0400) +#define ZCL_AC_FREQUENCY_DIVISOR_ATTRIBUTE_ID (0x0401) +#define ZCL_POWER_MULTIPLIER_ATTRIBUTE_ID (0x0402) +#define ZCL_POWER_DIVISOR_ATTRIBUTE_ID (0x0403) +#define ZCL_HARMONIC_CURRENT_MULTIPLIER_ATTRIBUTE_ID (0x0404) +#define ZCL_PHASE_HARMONIC_CURRENT_MULTIPLIER_ATTRIBUTE_ID (0x0405) +#define ZCL_INSTANTANEOUS_VOLTAGE_ATTRIBUTE_ID (0x0500) +#define ZCL_INSTANTANEOUS_LINE_CURRENT_ATTRIBUTE_ID (0x0501) +#define ZCL_INSTANTANEOUS_ACTIVE_CURRENT_ATTRIBUTE_ID (0x0502) +#define ZCL_INSTANTANEOUS_REACTIVE_CURRENT_ATTRIBUTE_ID (0x0503) +#define ZCL_INSTANTANEOUS_POWER_ATTRIBUTE_ID (0x0504) +#define ZCL_RMS_VOLTAGE_ATTRIBUTE_ID (0x0505) +#define ZCL_RMS_VOLTAGE_MIN_ATTRIBUTE_ID (0x0506) +#define ZCL_RMS_VOLTAGE_MAX_ATTRIBUTE_ID (0x0507) +#define ZCL_RMS_CURRENT_ATTRIBUTE_ID (0x0508) +#define ZCL_RMS_CURRENT_MIN_ATTRIBUTE_ID (0x0509) +#define ZCL_RMS_CURRENT_MAX_ATTRIBUTE_ID (0x050A) +#define ZCL_ACTIVE_POWER_ATTRIBUTE_ID (0x050B) +#define ZCL_ACTIVE_POWER_MIN_ATTRIBUTE_ID (0x050C) +#define ZCL_ACTIVE_POWER_MAX_ATTRIBUTE_ID (0x050D) +#define ZCL_REACTIVE_POWER_ATTRIBUTE_ID (0x050E) +#define ZCL_APPARENT_POWER_ATTRIBUTE_ID (0x050F) +#define ZCL_AC_POWER_FACTOR_ATTRIBUTE_ID (0x0510) +#define ZCL_AVERAGE_RMS_VOLTAGE_MEASUREMENT_PERIOD_ATTRIBUTE_ID (0x0511) +#define ZCL_AVERAGE_RMS_UNDER_VOLTAGE_COUNTER_ATTRIBUTE_ID (0x0513) +#define ZCL_RMS_EXTREME_OVER_VOLTAGE_PERIOD_ATTRIBUTE_ID (0x0514) +#define ZCL_RMS_EXTREME_UNDER_VOLTAGE_PERIOD_ATTRIBUTE_ID (0x0515) +#define ZCL_RMS_VOLTAGE_SAG_PERIOD_ATTRIBUTE_ID (0x0516) +#define ZCL_RMS_VOLTAGE_SWELL_PERIOD_ATTRIBUTE_ID (0x0517) +#define ZCL_AC_VOLTAGE_MULTIPLIER_ATTRIBUTE_ID (0x0600) +#define ZCL_AC_VOLTAGE_DIVISOR_ATTRIBUTE_ID (0x0601) +#define ZCL_AC_CURRENT_MULTIPLIER_ATTRIBUTE_ID (0x0602) +#define ZCL_AC_CURRENT_DIVISOR_ATTRIBUTE_ID (0x0603) +#define ZCL_AC_POWER_MULTIPLIER_ATTRIBUTE_ID (0x0604) +#define ZCL_AC_POWER_DIVISOR_ATTRIBUTE_ID (0x0605) +#define ZCL_DC_OVERLOAD_ALARMS_MASK_ATTRIBUTE_ID (0x0700) +#define ZCL_DC_VOLTAGE_OVERLOAD_ATTRIBUTE_ID (0x0701) +#define ZCL_DC_CURRENT_OVERLOAD_ATTRIBUTE_ID (0x0702) +#define ZCL_AC_OVERLOAD_ALARMS_MASK_ATTRIBUTE_ID (0x0800) +#define ZCL_AC_VOLTAGE_OVERLOAD_ATTRIBUTE_ID (0x0801) +#define ZCL_AC_CURRENT_OVERLOAD_ATTRIBUTE_ID (0x0802) +#define ZCL_AC_POWER_OVERLOAD_ATTRIBUTE_ID (0x0803) +#define ZCL_AC_REACTIVE_POWER_OVERLOAD_ATTRIBUTE_ID (0x0804) +#define ZCL_AVERAGE_RMS_OVER_VOLTAGE_ATTRIBUTE_ID (0x0805) +#define ZCL_AVERAGE_RMS_UNDER_VOLTAGE_ATTRIBUTE_ID (0x0806) +#define ZCL_RMS_EXTREME_OVER_VOLTAGE_ATTRIBUTE_ID (0x0807) +#define ZCL_RMS_EXTREME_UNDER_VOLTAGE_ATTRIBUTE_ID (0x0808) +#define ZCL_RMS_VOLTAGE_SAG_ATTRIBUTE_ID (0x0809) +#define ZCL_RMS_VOLTAGE_SWELL_ATTRIBUTE_ID (0x080A) +#define ZCL_LINE_CURRENT_PHASE_B_ATTRIBUTE_ID (0x0901) +#define ZCL_ACTIVE_CURRENT_PHASE_B_ATTRIBUTE_ID (0x0902) +#define ZCL_REACTIVE_CURRENT_PHASE_B_ATTRIBUTE_ID (0x0903) +#define ZCL_RMS_VOLTAGE_PHASE_B_ATTRIBUTE_ID (0x0905) +#define ZCL_RMS_VOLTAGE_MIN_PHASE_B_ATTRIBUTE_ID (0x0906) +#define ZCL_RMS_VOLTAGE_MAX_PHASE_B_ATTRIBUTE_ID (0x0907) +#define ZCL_RMS_CURRENT_PHASE_B_ATTRIBUTE_ID (0x0908) +#define ZCL_RMS_CURRENT_MIN_PHASE_B_ATTRIBUTE_ID (0x0909) +#define ZCL_RMS_CURRENT_MAX_PHASE_B_ATTRIBUTE_ID (0x090A) +#define ZCL_ACTIVE_POWER_PHASE_B_ATTRIBUTE_ID (0x090B) +#define ZCL_ACTIVE_POWER_MIN_PHASE_B_ATTRIBUTE_ID (0x090C) +#define ZCL_ACTIVE_POWER_MAX_PHASE_B_ATTRIBUTE_ID (0x090D) +#define ZCL_REACTIVE_POWER_PHASE_B_ATTRIBUTE_ID (0x090E) +#define ZCL_APPARENT_POWER_PHASE_B_ATTRIBUTE_ID (0x090F) +#define ZCL_POWER_FACTOR_PHASE_B_ATTRIBUTE_ID (0x0910) +#define ZCL_AVERAGE_RMS_VOLTAGE_MEASUREMENT_PERIOD_PHASE_B_ATTRIBUTE_ID (0x0911) +#define ZCL_AVERAGE_RMS_OVER_VOLTAGE_COUNTER_PHASE_B_ATTRIBUTE_ID (0x0912) +#define ZCL_AVERAGE_RMS_UNDER_VOLTAGE_COUNTER_PHASE_B_ATTRIBUTE_ID (0x0913) +#define ZCL_RMS_EXTREME_OVER_VOLTAGE_PERIOD_PHASE_B_ATTRIBUTE_ID (0x0914) +#define ZCL_RMS_EXTREME_UNDER_VOLTAGE_PERIOD_PHASE_B_ATTRIBUTE_ID (0x0915) +#define ZCL_RMS_VOLTAGE_SAG_PERIOD_PHASE_B_ATTRIBUTE_ID (0x0916) +#define ZCL_RMS_VOLTAGE_SWELL_PERIOD_PHASE_B_ATTRIBUTE_ID (0x0917) +#define ZCL_LINE_CURRENT_PHASE_C_ATTRIBUTE_ID (0x0A01) +#define ZCL_ACTIVE_CURRENT_PHASE_C_ATTRIBUTE_ID (0x0A02) +#define ZCL_REACTIVE_CURRENT_PHASE_C_ATTRIBUTE_ID (0x0A03) +#define ZCL_RMS_VOLTAGE_PHASE_C_ATTRIBUTE_ID (0x0A05) +#define ZCL_RMS_VOLTAGE_MIN_PHASE_C_ATTRIBUTE_ID (0x0A06) +#define ZCL_RMS_VOLTAGE_MAX_PHASE_C_ATTRIBUTE_ID (0x0A07) +#define ZCL_RMS_CURRENT_PHASE_C_ATTRIBUTE_ID (0x0A08) +#define ZCL_RMS_CURRENT_MIN_PHASE_C_ATTRIBUTE_ID (0x0A09) +#define ZCL_RMS_CURRENT_MAX_PHASE_C_ATTRIBUTE_ID (0x0A0A) +#define ZCL_ACTIVE_POWER_PHASE_C_ATTRIBUTE_ID (0x0A0B) +#define ZCL_ACTIVE_POWER_MIN_PHASE_C_ATTRIBUTE_ID (0x0A0C) +#define ZCL_ACTIVE_POWER_MAX_PHASE_C_ATTRIBUTE_ID (0x0A0D) +#define ZCL_REACTIVE_POWER_PHASE_C_ATTRIBUTE_ID (0x0A0E) +#define ZCL_APPARENT_POWER_PHASE_C_ATTRIBUTE_ID (0x0A0F) +#define ZCL_POWER_FACTOR_PHASE_C_ATTRIBUTE_ID (0x0A10) +#define ZCL_AVERAGE_RMS_VOLTAGE_MEASUREMENT_PERIOD_PHASE_C_ATTRIBUTE_ID (0x0A11) +#define ZCL_AVERAGE_RMS_OVER_VOLTAGE_COUNTER_PHASE_C_ATTRIBUTE_ID (0x0A12) +#define ZCL_AVERAGE_RMS_UNDER_VOLTAGE_COUNTER_PHASE_C_ATTRIBUTE_ID (0x0A13) +#define ZCL_RMS_EXTREME_OVER_VOLTAGE_PERIOD_PHASE_C_ATTRIBUTE_ID (0x0A14) +#define ZCL_RMS_EXTREME_UNDER_VOLTAGE_PERIOD_PHASE_C_ATTRIBUTE_ID (0x0A15) +#define ZCL_RMS_VOLTAGE_SAG_PERIOD_PHASE_C_ATTRIBUTE_ID (0x0A16) +#define ZCL_RMS_VOLTAGE_SWELL_PERIOD_PHASE_C_ATTRIBUTE_ID (0x0A17) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Diagnostics + +// Client attributes +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) + +// Server attributes +#define ZCL_NUMBER_OF_RESETS_ATTRIBUTE_ID (0x0000) +#define ZCL_PERSISTENT_MEMORY_WRITES_ATTRIBUTE_ID (0x0001) +#define ZCL_MAC_RX_BCAST_ATTRIBUTE_ID (0x0100) +#define ZCL_MAC_TX_BCAST_ATTRIBUTE_ID (0x0101) +#define ZCL_MAC_RX_UCAST_ATTRIBUTE_ID (0x0102) +#define ZCL_MAC_TX_UCAST_ATTRIBUTE_ID (0x0103) +#define ZCL_MAC_TX_UCAST_RETRY_ATTRIBUTE_ID (0x0104) +#define ZCL_MAC_TX_UCAST_FAIL_ATTRIBUTE_ID (0x0105) +#define ZCL_APS_RX_BCAST_ATTRIBUTE_ID (0x0106) +#define ZCL_APS_TX_BCAST_ATTRIBUTE_ID (0x0107) +#define ZCL_APS_RX_UCAST_ATTRIBUTE_ID (0x0108) +#define ZCL_APS_UCAST_SUCCESS_ATTRIBUTE_ID (0x0109) +#define ZCL_APS_TX_UCAST_RETRY_ATTRIBUTE_ID (0x010A) +#define ZCL_APS_TX_UCAST_FAIL_ATTRIBUTE_ID (0x010B) +#define ZCL_ROUTE_DISC_INITIATED_ATTRIBUTE_ID (0x010C) +#define ZCL_NEIGHBOR_ADDED_ATTRIBUTE_ID (0x010D) +#define ZCL_NEIGHBOR_REMOVED_ATTRIBUTE_ID (0x010E) +#define ZCL_NEIGHBOR_STALE_ATTRIBUTE_ID (0x010F) +#define ZCL_JOIN_INDICATION_ATTRIBUTE_ID (0x0110) +#define ZCL_CHILD_MOVED_ATTRIBUTE_ID (0x0111) +#define ZCL_NWK_FC_FAILURE_ATTRIBUTE_ID (0x0112) +#define ZCL_APS_FC_FAILURE_ATTRIBUTE_ID (0x0113) +#define ZCL_APS_UNAUTHORIZED_KEY_ATTRIBUTE_ID (0x0114) +#define ZCL_NWK_DECRYPT_FAILURE_ATTRIBUTE_ID (0x0115) +#define ZCL_APS_DECRYPT_FAILURE_ATTRIBUTE_ID (0x0116) +#define ZCL_PACKET_BUFFER_ALLOC_FAILURES_ATTRIBUTE_ID (0x0117) +#define ZCL_RELAYED_UNICAST_ATTRIBUTE_ID (0x0118) +#define ZCL_PHY_TO_MAC_QUEUE_LIMIT_REACHED_ATTRIBUTE_ID (0x0119) +#define ZCL_PACKET_VALIDATE_DROP_COUNT_ATTRIBUTE_ID (0x011A) +#define ZCL_AVERAGE_MAC_RETRY_PER_APS_MSG_SENT_ATTRIBUTE_ID (0x011B) +#define ZCL_LAST_MESSAGE_LQI_ATTRIBUTE_ID (0x011C) +#define ZCL_LAST_MESSAGE_RSSI_ATTRIBUTE_ID (0x011D) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: ZLL Commissioning + +// Client attributes +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) + +// Server attributes +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Sample Mfg Specific Cluster + +// Client attributes +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) + +// Server attributes +#define ZCL_ATTRIBUTE_ONE_ATTRIBUTE_ID (0x0000) +#define ZCL_ATTRIBUTE_TWO_ATTRIBUTE_ID (0x0001) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Sample Mfg Specific Cluster 2 + +// Client attributes +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) + +// Server attributes +#define ZCL_ATTRIBUTE_THREE_ATTRIBUTE_ID (0x0000) +#define ZCL_ATTRIBUTE_FOUR_ATTRIBUTE_ID (0x0001) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Configuration Cluster + +// Client attributes +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) + +// Server attributes +#define ZCL_TOKENS_LOCKED_ATTRIBUTE_ID (0x0000) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: MFGLIB Cluster + +// Client attributes +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) + +// Server attributes +#define ZCL_PACKETS_RECEIVED_ATTRIBUTE_ID (0x0000) +#define ZCL_SAVED_RSSI_ATTRIBUTE_ID (0x0001) +#define ZCL_SAVED_LQI_ATTRIBUTE_ID (0x0002) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: SL Works With All Hubs + +// Client attributes +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) + +// Server attributes +#define ZCL_SL_DISABLE_OTA_DOWNGRADES_ATTRIBUTE_ID (0x0002) +#define ZCL_SL_MGMT_LEAVE_WITHOUT_REJOIN_ENABLED_ATTRIBUTE_ID (0x0003) +#define ZCL_SL_NWK_RETRY_COUNT_ATTRIBUTE_ID (0x0004) +#define ZCL_SL_MAC_RETRY_COUNT_ATTRIBUTE_ID (0x0005) +#define ZCL_SL_ROUTER_CHECKIN_ENABLED_ATTRIBUTE_ID (0x0006) +#define ZCL_SL_TOUCHLINK_INTERPAN_ENABLED_ATTRIBUTE_ID (0x0007) +#define ZCL_SL_WWAH_PARENT_CLASSIFICATION_ENABLED_ATTRIBUTE_ID (0x0008) +#define ZCL_SL_WWAH_APP_EVENT_RETRY_ENABLED_ATTRIBUTE_ID (0x0009) +#define ZCL_SL_WWAH_APP_EVENT_RETRY_QUEUE_SIZE_ATTRIBUTE_ID (0x000A) +#define ZCL_SL_WWAH_REJOIN_ENABLED_ATTRIBUTE_ID (0x000B) +#define ZCL_SL_MAC_POLL_FAILURE_WAIT_TIME_ATTRIBUTE_ID (0x000C) +#define ZCL_SL_CONFIGURATION_MODE_ENABLED_ATTRIBUTE_ID (0x000D) +#define ZCL_SL_CURRENT_DEBUG_REPORT_ID_ATTRIBUTE_ID (0x000E) +#define ZCL_SL_TC_SECURITY_ON_NTWK_KEY_ROTATION_ENABLED_ATTRIBUTE_ID (0x000F) +#define ZCL_SL_WWAH_BAD_PARENT_RECOVERY_ENABLED_ATTRIBUTE_ID (0x0010) +#define ZCL_SL_PENDING_NETWORK_UPDATE_CHANNEL_ATTRIBUTE_ID (0x0011) +#define ZCL_SL_PENDING_NETWORK_UPDATE_PANID_ATTRIBUTE_ID (0x0012) +#define ZCL_SL_OTA_MAX_OFFLINE_DURATION_ATTRIBUTE_ID (0x0013) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) diff --git a/examples/all-clusters-app/all-clusters-common/gen/attribute-size.h b/examples/all-clusters-app/all-clusters-common/gen/attribute-size.h new file mode 100644 index 00000000000000..8d8659ee7ece2e --- /dev/null +++ b/examples/all-clusters-app/all-clusters-common/gen/attribute-size.h @@ -0,0 +1,34 @@ + +/* + * + * 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. + */ + +// Prevent multiple inclusion +#pragma once + +// ZCL attribute sizes +ZCL_DATA8_ATTRIBUTE_TYPE, 1, ZCL_DATA16_ATTRIBUTE_TYPE, 2, ZCL_DATA24_ATTRIBUTE_TYPE, 3, ZCL_DATA32_ATTRIBUTE_TYPE, 4, + ZCL_DATA40_ATTRIBUTE_TYPE, 5, ZCL_DATA48_ATTRIBUTE_TYPE, 6, ZCL_DATA56_ATTRIBUTE_TYPE, 7, ZCL_DATA64_ATTRIBUTE_TYPE, 8, + ZCL_BOOLEAN_ATTRIBUTE_TYPE, 1, ZCL_BITMAP8_ATTRIBUTE_TYPE, 1, ZCL_BITMAP16_ATTRIBUTE_TYPE, 2, ZCL_BITMAP24_ATTRIBUTE_TYPE, 3, + ZCL_BITMAP32_ATTRIBUTE_TYPE, 4, ZCL_BITMAP40_ATTRIBUTE_TYPE, 5, ZCL_BITMAP48_ATTRIBUTE_TYPE, 6, ZCL_BITMAP56_ATTRIBUTE_TYPE, 7, + ZCL_BITMAP64_ATTRIBUTE_TYPE, 8, ZCL_INT8U_ATTRIBUTE_TYPE, 1, ZCL_INT16U_ATTRIBUTE_TYPE, 2, ZCL_INT24U_ATTRIBUTE_TYPE, 3, + ZCL_INT32U_ATTRIBUTE_TYPE, 4, ZCL_INT40U_ATTRIBUTE_TYPE, 5, ZCL_INT48U_ATTRIBUTE_TYPE, 6, ZCL_INT56U_ATTRIBUTE_TYPE, 7, + ZCL_INT64U_ATTRIBUTE_TYPE, 8, ZCL_INT8S_ATTRIBUTE_TYPE, 1, ZCL_INT16S_ATTRIBUTE_TYPE, 2, ZCL_INT24S_ATTRIBUTE_TYPE, 3, + ZCL_INT32S_ATTRIBUTE_TYPE, 4, ZCL_INT40S_ATTRIBUTE_TYPE, 5, ZCL_INT48S_ATTRIBUTE_TYPE, 6, ZCL_INT56S_ATTRIBUTE_TYPE, 7, + ZCL_INT64S_ATTRIBUTE_TYPE, 8, ZCL_ENUM8_ATTRIBUTE_TYPE, 1, ZCL_ENUM16_ATTRIBUTE_TYPE, 2, ZCL_FLOAT_SEMI_ATTRIBUTE_TYPE, 2, + ZCL_FLOAT_SINGLE_ATTRIBUTE_TYPE, 4, ZCL_FLOAT_DOUBLE_ATTRIBUTE_TYPE, 8, ZCL_TIME_OF_DAY_ATTRIBUTE_TYPE, 4, + ZCL_DATE_ATTRIBUTE_TYPE, 4, ZCL_UTC_TIME_ATTRIBUTE_TYPE, 4, ZCL_CLUSTER_ID_ATTRIBUTE_TYPE, 2, ZCL_ATTRIBUTE_ID_ATTRIBUTE_TYPE, + 2, ZCL_BACNET_OID_ATTRIBUTE_TYPE, 4, ZCL_IEEE_ADDRESS_ATTRIBUTE_TYPE, 8, ZCL_SECURITY_KEY_ATTRIBUTE_TYPE, 16, diff --git a/examples/lock-app/efr32/src/gen/attribute-type.h b/examples/all-clusters-app/all-clusters-common/gen/attribute-type.h similarity index 82% rename from examples/lock-app/efr32/src/gen/attribute-type.h rename to examples/all-clusters-app/all-clusters-common/gen/attribute-type.h index 35879dabb2ed6e..bc5d1bae34b365 100644 --- a/examples/lock-app/efr32/src/gen/attribute-type.h +++ b/examples/all-clusters-app/all-clusters-common/gen/attribute-type.h @@ -1,23 +1,7 @@ -/** - * - * 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 + * 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. @@ -31,13 +15,9 @@ * 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 SILABS_EMBER_AF_ATTRIBUTE_TYPES -#define SILABS_EMBER_AF_ATTRIBUTE_TYPES +// Prevent multiple inclusion +#pragma once // ZCL attribute types enum @@ -97,7 +77,5 @@ enum ZCL_BACNET_OID_ATTRIBUTE_TYPE = 0xEA, // BACnet OID ZCL_IEEE_ADDRESS_ATTRIBUTE_TYPE = 0xF0, // IEEE address ZCL_SECURITY_KEY_ATTRIBUTE_TYPE = 0xF1, // 128-bit security key - ZCL_UNKNOWN_ATTRIBUTE_TYPE = 0xFF // Unknown - + ZCL_UNKNOWN_ATTRIBUTE_TYPE = 0xFF, // Unknown }; -#endif // SILABS_EMBER_AF_ATTRIBUTE_TYPES diff --git a/examples/all-clusters-app/all-clusters-common/gen/call-command-handler.cpp b/examples/all-clusters-app/all-clusters-common/gen/call-command-handler.cpp new file mode 100644 index 00000000000000..9db10b94ef3350 --- /dev/null +++ b/examples/all-clusters-app/all-clusters-common/gen/call-command-handler.cpp @@ -0,0 +1,2239 @@ + +/* + * + * 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. + */ + +#include + +#include "af-structs.h" +#include "call-command-handler.h" +#include "callback.h" +#include "command-id.h" +#include "util.h" + +using namespace chip; + +EmberAfStatus emberAfBarrierControlClusterClientCommandParse(EmberAfClusterCommand * cmd); +EmberAfStatus emberAfBarrierControlClusterServerCommandParse(EmberAfClusterCommand * cmd); +EmberAfStatus emberAfBasicClusterClientCommandParse(EmberAfClusterCommand * cmd); +EmberAfStatus emberAfBasicClusterServerCommandParse(EmberAfClusterCommand * cmd); +EmberAfStatus emberAfColorControlClusterClientCommandParse(EmberAfClusterCommand * cmd); +EmberAfStatus emberAfColorControlClusterServerCommandParse(EmberAfClusterCommand * cmd); +EmberAfStatus emberAfDoorLockClusterClientCommandParse(EmberAfClusterCommand * cmd); +EmberAfStatus emberAfDoorLockClusterServerCommandParse(EmberAfClusterCommand * cmd); +EmberAfStatus emberAfGroupsClusterClientCommandParse(EmberAfClusterCommand * cmd); +EmberAfStatus emberAfGroupsClusterServerCommandParse(EmberAfClusterCommand * cmd); +EmberAfStatus emberAfIasZoneClusterServerCommandParse(EmberAfClusterCommand * cmd); +EmberAfStatus emberAfIdentifyClusterClientCommandParse(EmberAfClusterCommand * cmd); +EmberAfStatus emberAfIdentifyClusterServerCommandParse(EmberAfClusterCommand * cmd); +EmberAfStatus emberAfLevelControlClusterClientCommandParse(EmberAfClusterCommand * cmd); +EmberAfStatus emberAfLevelControlClusterServerCommandParse(EmberAfClusterCommand * cmd); +EmberAfStatus emberAfOnOffClusterClientCommandParse(EmberAfClusterCommand * cmd); +EmberAfStatus emberAfOnOffClusterServerCommandParse(EmberAfClusterCommand * cmd); +EmberAfStatus emberAfScenesClusterClientCommandParse(EmberAfClusterCommand * cmd); +EmberAfStatus emberAfScenesClusterServerCommandParse(EmberAfClusterCommand * cmd); +EmberAfStatus emberAfTemperatureMeasurementClusterServerCommandParse(EmberAfClusterCommand * cmd); + +static EmberAfStatus status(bool wasHandled, bool clusterExists, bool mfgSpecific) +{ + if (wasHandled) + { + return EMBER_ZCL_STATUS_SUCCESS; + } + else if (mfgSpecific) + { + return EMBER_ZCL_STATUS_UNSUP_MANUF_CLUSTER_COMMAND; + } + else if (clusterExists) + { + return EMBER_ZCL_STATUS_UNSUP_COMMAND; + } + else + { + return EMBER_ZCL_STATUS_UNSUPPORTED_CLUSTER; + } +} + +// Main command parsing controller. +EmberAfStatus emberAfClusterSpecificCommandParse(EmberAfClusterCommand * cmd) +{ + EmberAfStatus result = status(false, false, cmd->mfgSpecific); + if (cmd->direction == (uint8_t) ZCL_DIRECTION_SERVER_TO_CLIENT && + emberAfContainsClientWithMfgCode(cmd->apsFrame->destinationEndpoint, cmd->apsFrame->clusterId, cmd->mfgCode)) + { + switch (cmd->apsFrame->clusterId) + { + case ZCL_BARRIER_CONTROL_CLUSTER_ID: + // No commands are enabled for cluster Barrier Control + result = status(false, true, cmd->mfgSpecific); + break; + case ZCL_BASIC_CLUSTER_ID: + // No commands are enabled for cluster Basic + result = status(false, true, cmd->mfgSpecific); + break; + case ZCL_COLOR_CONTROL_CLUSTER_ID: + // No commands are enabled for cluster Color Control + result = status(false, true, cmd->mfgSpecific); + break; + case ZCL_DOOR_LOCK_CLUSTER_ID: + result = emberAfDoorLockClusterClientCommandParse(cmd); + break; + case ZCL_GROUPS_CLUSTER_ID: + result = emberAfGroupsClusterClientCommandParse(cmd); + break; + case ZCL_IDENTIFY_CLUSTER_ID: + result = emberAfIdentifyClusterClientCommandParse(cmd); + break; + case ZCL_LEVEL_CONTROL_CLUSTER_ID: + // No commands are enabled for cluster Level Control + result = status(false, true, cmd->mfgSpecific); + break; + case ZCL_ON_OFF_CLUSTER_ID: + // No commands are enabled for cluster On/off + result = status(false, true, cmd->mfgSpecific); + break; + case ZCL_SCENES_CLUSTER_ID: + result = emberAfScenesClusterClientCommandParse(cmd); + break; + default: + // Unrecognized cluster ID, error status will apply. + break; + } + } + else if (cmd->direction == (uint8_t) ZCL_DIRECTION_CLIENT_TO_SERVER && + emberAfContainsServerWithMfgCode(cmd->apsFrame->destinationEndpoint, cmd->apsFrame->clusterId, cmd->mfgCode)) + { + switch (cmd->apsFrame->clusterId) + { + case ZCL_BARRIER_CONTROL_CLUSTER_ID: + result = emberAfBarrierControlClusterServerCommandParse(cmd); + break; + case ZCL_BASIC_CLUSTER_ID: + result = emberAfBasicClusterServerCommandParse(cmd); + break; + case ZCL_COLOR_CONTROL_CLUSTER_ID: + result = emberAfColorControlClusterServerCommandParse(cmd); + break; + case ZCL_DOOR_LOCK_CLUSTER_ID: + result = emberAfDoorLockClusterServerCommandParse(cmd); + break; + case ZCL_GROUPS_CLUSTER_ID: + result = emberAfGroupsClusterServerCommandParse(cmd); + break; + case ZCL_IAS_ZONE_CLUSTER_ID: + result = emberAfIasZoneClusterServerCommandParse(cmd); + break; + case ZCL_IDENTIFY_CLUSTER_ID: + result = emberAfIdentifyClusterServerCommandParse(cmd); + break; + case ZCL_LEVEL_CONTROL_CLUSTER_ID: + result = emberAfLevelControlClusterServerCommandParse(cmd); + break; + case ZCL_ON_OFF_CLUSTER_ID: + result = emberAfOnOffClusterServerCommandParse(cmd); + break; + case ZCL_SCENES_CLUSTER_ID: + result = emberAfScenesClusterServerCommandParse(cmd); + break; + case ZCL_TEMP_MEASUREMENT_CLUSTER_ID: + // No commands are enabled for cluster Temperature Measurement + result = status(false, true, cmd->mfgSpecific); + break; + default: + // Unrecognized cluster ID, error status will apply. + break; + } + } + return result; +} + +// Cluster specific command parsing + +EmberAfStatus emberAfBarrierControlClusterServerCommandParse(EmberAfClusterCommand * cmd) +{ + bool wasHandled = false; + + if (!cmd->mfgSpecific) + { + switch (cmd->commandId) + { + case ZCL_BARRIER_CONTROL_GO_TO_PERCENT_COMMAND_ID: { + uint32_t payloadOffset = cmd->payloadStartIndex; + uint8_t percentOpen; + + if (cmd->bufLen < payloadOffset + 1) + { + return EMBER_ZCL_STATUS_MALFORMED_COMMAND; + } + percentOpen = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); + + wasHandled = emberAfBarrierControlClusterBarrierControlGoToPercentCallback(percentOpen); + break; + } + case ZCL_BARRIER_CONTROL_STOP_COMMAND_ID: { + wasHandled = emberAfBarrierControlClusterBarrierControlStopCallback(); + break; + } + default: { + // Unrecognized command ID, error status will apply. + break; + } + } + } + return status(wasHandled, true, cmd->mfgSpecific); +} +EmberAfStatus emberAfBasicClusterServerCommandParse(EmberAfClusterCommand * cmd) +{ + bool wasHandled = false; + + if (!cmd->mfgSpecific) + { + switch (cmd->commandId) + { + case ZCL_RESET_TO_FACTORY_DEFAULTS_COMMAND_ID: { + wasHandled = emberAfBasicClusterResetToFactoryDefaultsCallback(); + break; + } + default: { + // Unrecognized command ID, error status will apply. + break; + } + } + } + return status(wasHandled, true, cmd->mfgSpecific); +} +EmberAfStatus emberAfColorControlClusterServerCommandParse(EmberAfClusterCommand * cmd) +{ + bool wasHandled = false; + + if (!cmd->mfgSpecific) + { + switch (cmd->commandId) + { + case ZCL_MOVE_COLOR_COMMAND_ID: { + uint32_t payloadOffset = cmd->payloadStartIndex; + int16_t rateX; + int16_t rateY; + uint8_t optionsMask; + uint8_t optionsOverride; + + if (cmd->bufLen < payloadOffset + 2) + { + return EMBER_ZCL_STATUS_MALFORMED_COMMAND; + } + rateX = emberAfGetInt16u(cmd->buffer, payloadOffset, cmd->bufLen); + payloadOffset += 2; + if (cmd->bufLen < payloadOffset + 2) + { + return EMBER_ZCL_STATUS_MALFORMED_COMMAND; + } + rateY = emberAfGetInt16u(cmd->buffer, payloadOffset, cmd->bufLen); + payloadOffset += 2; + if (cmd->bufLen < payloadOffset + 1) + { + return EMBER_ZCL_STATUS_MALFORMED_COMMAND; + } + optionsMask = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); + payloadOffset += 1; + if (cmd->bufLen < payloadOffset + 1) + { + return EMBER_ZCL_STATUS_MALFORMED_COMMAND; + } + optionsOverride = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); + + wasHandled = emberAfColorControlClusterMoveColorCallback(rateX, rateY, optionsMask, optionsOverride); + break; + } + case ZCL_MOVE_COLOR_TEMPERATURE_COMMAND_ID: { + uint32_t payloadOffset = cmd->payloadStartIndex; + uint8_t moveMode; + uint16_t rate; + uint16_t colorTemperatureMinimum; + uint16_t colorTemperatureMaximum; + uint8_t optionsMask; + uint8_t optionsOverride; + + if (cmd->bufLen < payloadOffset + 1) + { + return EMBER_ZCL_STATUS_MALFORMED_COMMAND; + } + moveMode = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); + payloadOffset += 1; + if (cmd->bufLen < payloadOffset + 2) + { + return EMBER_ZCL_STATUS_MALFORMED_COMMAND; + } + rate = emberAfGetInt16u(cmd->buffer, payloadOffset, cmd->bufLen); + payloadOffset += 2; + if (cmd->bufLen < payloadOffset + 2) + { + return EMBER_ZCL_STATUS_MALFORMED_COMMAND; + } + colorTemperatureMinimum = emberAfGetInt16u(cmd->buffer, payloadOffset, cmd->bufLen); + payloadOffset += 2; + if (cmd->bufLen < payloadOffset + 2) + { + return EMBER_ZCL_STATUS_MALFORMED_COMMAND; + } + colorTemperatureMaximum = emberAfGetInt16u(cmd->buffer, payloadOffset, cmd->bufLen); + payloadOffset += 2; + if (cmd->bufLen < payloadOffset + 1) + { + return EMBER_ZCL_STATUS_MALFORMED_COMMAND; + } + optionsMask = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); + payloadOffset += 1; + if (cmd->bufLen < payloadOffset + 1) + { + return EMBER_ZCL_STATUS_MALFORMED_COMMAND; + } + optionsOverride = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); + + wasHandled = emberAfColorControlClusterMoveColorTemperatureCallback( + moveMode, rate, colorTemperatureMinimum, colorTemperatureMaximum, optionsMask, optionsOverride); + break; + } + case ZCL_MOVE_HUE_COMMAND_ID: { + uint32_t payloadOffset = cmd->payloadStartIndex; + uint8_t moveMode; + uint8_t rate; + uint8_t optionsMask; + uint8_t optionsOverride; + + if (cmd->bufLen < payloadOffset + 1) + { + return EMBER_ZCL_STATUS_MALFORMED_COMMAND; + } + moveMode = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); + payloadOffset += 1; + if (cmd->bufLen < payloadOffset + 1) + { + return EMBER_ZCL_STATUS_MALFORMED_COMMAND; + } + rate = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); + payloadOffset += 1; + if (cmd->bufLen < payloadOffset + 1) + { + return EMBER_ZCL_STATUS_MALFORMED_COMMAND; + } + optionsMask = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); + payloadOffset += 1; + if (cmd->bufLen < payloadOffset + 1) + { + return EMBER_ZCL_STATUS_MALFORMED_COMMAND; + } + optionsOverride = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); + + wasHandled = emberAfColorControlClusterMoveHueCallback(moveMode, rate, optionsMask, optionsOverride); + break; + } + case ZCL_MOVE_SATURATION_COMMAND_ID: { + uint32_t payloadOffset = cmd->payloadStartIndex; + uint8_t moveMode; + uint8_t rate; + uint8_t optionsMask; + uint8_t optionsOverride; + + if (cmd->bufLen < payloadOffset + 1) + { + return EMBER_ZCL_STATUS_MALFORMED_COMMAND; + } + moveMode = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); + payloadOffset += 1; + if (cmd->bufLen < payloadOffset + 1) + { + return EMBER_ZCL_STATUS_MALFORMED_COMMAND; + } + rate = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); + payloadOffset += 1; + if (cmd->bufLen < payloadOffset + 1) + { + return EMBER_ZCL_STATUS_MALFORMED_COMMAND; + } + optionsMask = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); + payloadOffset += 1; + if (cmd->bufLen < payloadOffset + 1) + { + return EMBER_ZCL_STATUS_MALFORMED_COMMAND; + } + optionsOverride = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); + + wasHandled = emberAfColorControlClusterMoveSaturationCallback(moveMode, rate, optionsMask, optionsOverride); + break; + } + case ZCL_MOVE_TO_COLOR_COMMAND_ID: { + uint32_t payloadOffset = cmd->payloadStartIndex; + uint16_t colorX; + uint16_t colorY; + uint16_t transitionTime; + uint8_t optionsMask; + uint8_t optionsOverride; + + if (cmd->bufLen < payloadOffset + 2) + { + return EMBER_ZCL_STATUS_MALFORMED_COMMAND; + } + colorX = emberAfGetInt16u(cmd->buffer, payloadOffset, cmd->bufLen); + payloadOffset += 2; + if (cmd->bufLen < payloadOffset + 2) + { + return EMBER_ZCL_STATUS_MALFORMED_COMMAND; + } + colorY = emberAfGetInt16u(cmd->buffer, payloadOffset, cmd->bufLen); + payloadOffset += 2; + if (cmd->bufLen < payloadOffset + 2) + { + return EMBER_ZCL_STATUS_MALFORMED_COMMAND; + } + transitionTime = emberAfGetInt16u(cmd->buffer, payloadOffset, cmd->bufLen); + payloadOffset += 2; + if (cmd->bufLen < payloadOffset + 1) + { + return EMBER_ZCL_STATUS_MALFORMED_COMMAND; + } + optionsMask = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); + payloadOffset += 1; + if (cmd->bufLen < payloadOffset + 1) + { + return EMBER_ZCL_STATUS_MALFORMED_COMMAND; + } + optionsOverride = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); + + wasHandled = + emberAfColorControlClusterMoveToColorCallback(colorX, colorY, transitionTime, optionsMask, optionsOverride); + break; + } + case ZCL_MOVE_TO_COLOR_TEMPERATURE_COMMAND_ID: { + uint32_t payloadOffset = cmd->payloadStartIndex; + uint16_t colorTemperature; + uint16_t transitionTime; + uint8_t optionsMask; + uint8_t optionsOverride; + + if (cmd->bufLen < payloadOffset + 2) + { + return EMBER_ZCL_STATUS_MALFORMED_COMMAND; + } + colorTemperature = emberAfGetInt16u(cmd->buffer, payloadOffset, cmd->bufLen); + payloadOffset += 2; + if (cmd->bufLen < payloadOffset + 2) + { + return EMBER_ZCL_STATUS_MALFORMED_COMMAND; + } + transitionTime = emberAfGetInt16u(cmd->buffer, payloadOffset, cmd->bufLen); + payloadOffset += 2; + if (cmd->bufLen < payloadOffset + 1) + { + return EMBER_ZCL_STATUS_MALFORMED_COMMAND; + } + optionsMask = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); + payloadOffset += 1; + if (cmd->bufLen < payloadOffset + 1) + { + return EMBER_ZCL_STATUS_MALFORMED_COMMAND; + } + optionsOverride = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); + + wasHandled = emberAfColorControlClusterMoveToColorTemperatureCallback(colorTemperature, transitionTime, optionsMask, + optionsOverride); + break; + } + case ZCL_MOVE_TO_HUE_COMMAND_ID: { + uint32_t payloadOffset = cmd->payloadStartIndex; + uint8_t hue; + uint8_t direction; + uint16_t transitionTime; + uint8_t optionsMask; + uint8_t optionsOverride; + + if (cmd->bufLen < payloadOffset + 1) + { + return EMBER_ZCL_STATUS_MALFORMED_COMMAND; + } + hue = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); + payloadOffset += 1; + if (cmd->bufLen < payloadOffset + 1) + { + return EMBER_ZCL_STATUS_MALFORMED_COMMAND; + } + direction = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); + payloadOffset += 1; + if (cmd->bufLen < payloadOffset + 2) + { + return EMBER_ZCL_STATUS_MALFORMED_COMMAND; + } + transitionTime = emberAfGetInt16u(cmd->buffer, payloadOffset, cmd->bufLen); + payloadOffset += 2; + if (cmd->bufLen < payloadOffset + 1) + { + return EMBER_ZCL_STATUS_MALFORMED_COMMAND; + } + optionsMask = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); + payloadOffset += 1; + if (cmd->bufLen < payloadOffset + 1) + { + return EMBER_ZCL_STATUS_MALFORMED_COMMAND; + } + optionsOverride = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); + + wasHandled = emberAfColorControlClusterMoveToHueCallback(hue, direction, transitionTime, optionsMask, optionsOverride); + break; + } + case ZCL_MOVE_TO_HUE_AND_SATURATION_COMMAND_ID: { + uint32_t payloadOffset = cmd->payloadStartIndex; + uint8_t hue; + uint8_t saturation; + uint16_t transitionTime; + uint8_t optionsMask; + uint8_t optionsOverride; + + if (cmd->bufLen < payloadOffset + 1) + { + return EMBER_ZCL_STATUS_MALFORMED_COMMAND; + } + hue = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); + payloadOffset += 1; + if (cmd->bufLen < payloadOffset + 1) + { + return EMBER_ZCL_STATUS_MALFORMED_COMMAND; + } + saturation = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); + payloadOffset += 1; + if (cmd->bufLen < payloadOffset + 2) + { + return EMBER_ZCL_STATUS_MALFORMED_COMMAND; + } + transitionTime = emberAfGetInt16u(cmd->buffer, payloadOffset, cmd->bufLen); + payloadOffset += 2; + if (cmd->bufLen < payloadOffset + 1) + { + return EMBER_ZCL_STATUS_MALFORMED_COMMAND; + } + optionsMask = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); + payloadOffset += 1; + if (cmd->bufLen < payloadOffset + 1) + { + return EMBER_ZCL_STATUS_MALFORMED_COMMAND; + } + optionsOverride = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); + + wasHandled = emberAfColorControlClusterMoveToHueAndSaturationCallback(hue, saturation, transitionTime, optionsMask, + optionsOverride); + break; + } + case ZCL_MOVE_TO_SATURATION_COMMAND_ID: { + uint32_t payloadOffset = cmd->payloadStartIndex; + uint8_t saturation; + uint16_t transitionTime; + uint8_t optionsMask; + uint8_t optionsOverride; + + if (cmd->bufLen < payloadOffset + 1) + { + return EMBER_ZCL_STATUS_MALFORMED_COMMAND; + } + saturation = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); + payloadOffset += 1; + if (cmd->bufLen < payloadOffset + 2) + { + return EMBER_ZCL_STATUS_MALFORMED_COMMAND; + } + transitionTime = emberAfGetInt16u(cmd->buffer, payloadOffset, cmd->bufLen); + payloadOffset += 2; + if (cmd->bufLen < payloadOffset + 1) + { + return EMBER_ZCL_STATUS_MALFORMED_COMMAND; + } + optionsMask = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); + payloadOffset += 1; + if (cmd->bufLen < payloadOffset + 1) + { + return EMBER_ZCL_STATUS_MALFORMED_COMMAND; + } + optionsOverride = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); + + wasHandled = + emberAfColorControlClusterMoveToSaturationCallback(saturation, transitionTime, optionsMask, optionsOverride); + break; + } + case ZCL_STEP_COLOR_COMMAND_ID: { + uint32_t payloadOffset = cmd->payloadStartIndex; + int16_t stepX; + int16_t stepY; + uint16_t transitionTime; + uint8_t optionsMask; + uint8_t optionsOverride; + + if (cmd->bufLen < payloadOffset + 2) + { + return EMBER_ZCL_STATUS_MALFORMED_COMMAND; + } + stepX = emberAfGetInt16u(cmd->buffer, payloadOffset, cmd->bufLen); + payloadOffset += 2; + if (cmd->bufLen < payloadOffset + 2) + { + return EMBER_ZCL_STATUS_MALFORMED_COMMAND; + } + stepY = emberAfGetInt16u(cmd->buffer, payloadOffset, cmd->bufLen); + payloadOffset += 2; + if (cmd->bufLen < payloadOffset + 2) + { + return EMBER_ZCL_STATUS_MALFORMED_COMMAND; + } + transitionTime = emberAfGetInt16u(cmd->buffer, payloadOffset, cmd->bufLen); + payloadOffset += 2; + if (cmd->bufLen < payloadOffset + 1) + { + return EMBER_ZCL_STATUS_MALFORMED_COMMAND; + } + optionsMask = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); + payloadOffset += 1; + if (cmd->bufLen < payloadOffset + 1) + { + return EMBER_ZCL_STATUS_MALFORMED_COMMAND; + } + optionsOverride = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); + + wasHandled = emberAfColorControlClusterStepColorCallback(stepX, stepY, transitionTime, optionsMask, optionsOverride); + break; + } + case ZCL_STEP_COLOR_TEMPERATURE_COMMAND_ID: { + uint32_t payloadOffset = cmd->payloadStartIndex; + uint8_t stepMode; + uint16_t stepSize; + uint16_t transitionTime; + uint16_t colorTemperatureMinimum; + uint16_t colorTemperatureMaximum; + uint8_t optionsMask; + uint8_t optionsOverride; + + if (cmd->bufLen < payloadOffset + 1) + { + return EMBER_ZCL_STATUS_MALFORMED_COMMAND; + } + stepMode = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); + payloadOffset += 1; + if (cmd->bufLen < payloadOffset + 2) + { + return EMBER_ZCL_STATUS_MALFORMED_COMMAND; + } + stepSize = emberAfGetInt16u(cmd->buffer, payloadOffset, cmd->bufLen); + payloadOffset += 2; + if (cmd->bufLen < payloadOffset + 2) + { + return EMBER_ZCL_STATUS_MALFORMED_COMMAND; + } + transitionTime = emberAfGetInt16u(cmd->buffer, payloadOffset, cmd->bufLen); + payloadOffset += 2; + if (cmd->bufLen < payloadOffset + 2) + { + return EMBER_ZCL_STATUS_MALFORMED_COMMAND; + } + colorTemperatureMinimum = emberAfGetInt16u(cmd->buffer, payloadOffset, cmd->bufLen); + payloadOffset += 2; + if (cmd->bufLen < payloadOffset + 2) + { + return EMBER_ZCL_STATUS_MALFORMED_COMMAND; + } + colorTemperatureMaximum = emberAfGetInt16u(cmd->buffer, payloadOffset, cmd->bufLen); + payloadOffset += 2; + if (cmd->bufLen < payloadOffset + 1) + { + return EMBER_ZCL_STATUS_MALFORMED_COMMAND; + } + optionsMask = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); + payloadOffset += 1; + if (cmd->bufLen < payloadOffset + 1) + { + return EMBER_ZCL_STATUS_MALFORMED_COMMAND; + } + optionsOverride = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); + + wasHandled = emberAfColorControlClusterStepColorTemperatureCallback( + stepMode, stepSize, transitionTime, colorTemperatureMinimum, colorTemperatureMaximum, optionsMask, optionsOverride); + break; + } + case ZCL_STEP_HUE_COMMAND_ID: { + uint32_t payloadOffset = cmd->payloadStartIndex; + uint8_t stepMode; + uint8_t stepSize; + uint8_t transitionTime; + uint8_t optionsMask; + uint8_t optionsOverride; + + if (cmd->bufLen < payloadOffset + 1) + { + return EMBER_ZCL_STATUS_MALFORMED_COMMAND; + } + stepMode = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); + payloadOffset += 1; + if (cmd->bufLen < payloadOffset + 1) + { + return EMBER_ZCL_STATUS_MALFORMED_COMMAND; + } + stepSize = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); + payloadOffset += 1; + if (cmd->bufLen < payloadOffset + 1) + { + return EMBER_ZCL_STATUS_MALFORMED_COMMAND; + } + transitionTime = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); + payloadOffset += 1; + if (cmd->bufLen < payloadOffset + 1) + { + return EMBER_ZCL_STATUS_MALFORMED_COMMAND; + } + optionsMask = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); + payloadOffset += 1; + if (cmd->bufLen < payloadOffset + 1) + { + return EMBER_ZCL_STATUS_MALFORMED_COMMAND; + } + optionsOverride = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); + + wasHandled = + emberAfColorControlClusterStepHueCallback(stepMode, stepSize, transitionTime, optionsMask, optionsOverride); + break; + } + case ZCL_STEP_SATURATION_COMMAND_ID: { + uint32_t payloadOffset = cmd->payloadStartIndex; + uint8_t stepMode; + uint8_t stepSize; + uint8_t transitionTime; + uint8_t optionsMask; + uint8_t optionsOverride; + + if (cmd->bufLen < payloadOffset + 1) + { + return EMBER_ZCL_STATUS_MALFORMED_COMMAND; + } + stepMode = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); + payloadOffset += 1; + if (cmd->bufLen < payloadOffset + 1) + { + return EMBER_ZCL_STATUS_MALFORMED_COMMAND; + } + stepSize = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); + payloadOffset += 1; + if (cmd->bufLen < payloadOffset + 1) + { + return EMBER_ZCL_STATUS_MALFORMED_COMMAND; + } + transitionTime = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); + payloadOffset += 1; + if (cmd->bufLen < payloadOffset + 1) + { + return EMBER_ZCL_STATUS_MALFORMED_COMMAND; + } + optionsMask = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); + payloadOffset += 1; + if (cmd->bufLen < payloadOffset + 1) + { + return EMBER_ZCL_STATUS_MALFORMED_COMMAND; + } + optionsOverride = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); + + wasHandled = + emberAfColorControlClusterStepSaturationCallback(stepMode, stepSize, transitionTime, optionsMask, optionsOverride); + break; + } + case ZCL_STOP_MOVE_STEP_COMMAND_ID: { + uint32_t payloadOffset = cmd->payloadStartIndex; + uint8_t optionsMask; + uint8_t optionsOverride; + + if (cmd->bufLen < payloadOffset + 1) + { + return EMBER_ZCL_STATUS_MALFORMED_COMMAND; + } + optionsMask = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); + payloadOffset += 1; + if (cmd->bufLen < payloadOffset + 1) + { + return EMBER_ZCL_STATUS_MALFORMED_COMMAND; + } + optionsOverride = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); + + wasHandled = emberAfColorControlClusterStopMoveStepCallback(optionsMask, optionsOverride); + break; + } + default: { + // Unrecognized command ID, error status will apply. + break; + } + } + } + return status(wasHandled, true, cmd->mfgSpecific); +} +EmberAfStatus emberAfDoorLockClusterClientCommandParse(EmberAfClusterCommand * cmd) +{ + bool wasHandled = false; + + if (!cmd->mfgSpecific) + { + switch (cmd->commandId) + { + case ZCL_LOCK_DOOR_RESPONSE_COMMAND_ID: { + uint32_t payloadOffset = cmd->payloadStartIndex; + uint8_t status; + + if (cmd->bufLen < payloadOffset + 1) + { + return EMBER_ZCL_STATUS_MALFORMED_COMMAND; + } + status = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); + + wasHandled = emberAfDoorLockClusterLockDoorResponseCallback(status); + break; + } + case ZCL_UNLOCK_DOOR_RESPONSE_COMMAND_ID: { + uint32_t payloadOffset = cmd->payloadStartIndex; + uint8_t status; + + if (cmd->bufLen < payloadOffset + 1) + { + return EMBER_ZCL_STATUS_MALFORMED_COMMAND; + } + status = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); + + wasHandled = emberAfDoorLockClusterUnlockDoorResponseCallback(status); + break; + } + default: { + // Unrecognized command ID, error status will apply. + break; + } + } + } + return status(wasHandled, true, cmd->mfgSpecific); +} +EmberAfStatus emberAfDoorLockClusterServerCommandParse(EmberAfClusterCommand * cmd) +{ + bool wasHandled = false; + + if (!cmd->mfgSpecific) + { + switch (cmd->commandId) + { + case ZCL_CLEAR_ALL_PINS_COMMAND_ID: { + wasHandled = emberAfDoorLockClusterClearAllPinsCallback(); + break; + } + case ZCL_CLEAR_ALL_RFIDS_COMMAND_ID: { + wasHandled = emberAfDoorLockClusterClearAllRfidsCallback(); + break; + } + case ZCL_CLEAR_HOLIDAY_SCHEDULE_COMMAND_ID: { + uint32_t payloadOffset = cmd->payloadStartIndex; + uint8_t scheduleId; + + if (cmd->bufLen < payloadOffset + 1) + { + return EMBER_ZCL_STATUS_MALFORMED_COMMAND; + } + scheduleId = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); + + wasHandled = emberAfDoorLockClusterClearHolidayScheduleCallback(scheduleId); + break; + } + case ZCL_CLEAR_PIN_COMMAND_ID: { + uint32_t payloadOffset = cmd->payloadStartIndex; + uint16_t userId; + + if (cmd->bufLen < payloadOffset + 2) + { + return EMBER_ZCL_STATUS_MALFORMED_COMMAND; + } + userId = emberAfGetInt16u(cmd->buffer, payloadOffset, cmd->bufLen); + + wasHandled = emberAfDoorLockClusterClearPinCallback(userId); + break; + } + case ZCL_CLEAR_RFID_COMMAND_ID: { + uint32_t payloadOffset = cmd->payloadStartIndex; + uint16_t userId; + + if (cmd->bufLen < payloadOffset + 2) + { + return EMBER_ZCL_STATUS_MALFORMED_COMMAND; + } + userId = emberAfGetInt16u(cmd->buffer, payloadOffset, cmd->bufLen); + + wasHandled = emberAfDoorLockClusterClearRfidCallback(userId); + break; + } + case ZCL_CLEAR_WEEKDAY_SCHEDULE_COMMAND_ID: { + uint32_t payloadOffset = cmd->payloadStartIndex; + uint8_t scheduleId; + uint16_t userId; + + if (cmd->bufLen < payloadOffset + 1) + { + return EMBER_ZCL_STATUS_MALFORMED_COMMAND; + } + scheduleId = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); + payloadOffset += 1; + if (cmd->bufLen < payloadOffset + 2) + { + return EMBER_ZCL_STATUS_MALFORMED_COMMAND; + } + userId = emberAfGetInt16u(cmd->buffer, payloadOffset, cmd->bufLen); + + wasHandled = emberAfDoorLockClusterClearWeekdayScheduleCallback(scheduleId, userId); + break; + } + case ZCL_CLEAR_YEARDAY_SCHEDULE_COMMAND_ID: { + uint32_t payloadOffset = cmd->payloadStartIndex; + uint8_t scheduleId; + uint16_t userId; + + if (cmd->bufLen < payloadOffset + 1) + { + return EMBER_ZCL_STATUS_MALFORMED_COMMAND; + } + scheduleId = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); + payloadOffset += 1; + if (cmd->bufLen < payloadOffset + 2) + { + return EMBER_ZCL_STATUS_MALFORMED_COMMAND; + } + userId = emberAfGetInt16u(cmd->buffer, payloadOffset, cmd->bufLen); + + wasHandled = emberAfDoorLockClusterClearYeardayScheduleCallback(scheduleId, userId); + break; + } + case ZCL_GET_HOLIDAY_SCHEDULE_COMMAND_ID: { + uint32_t payloadOffset = cmd->payloadStartIndex; + uint8_t scheduleId; + + if (cmd->bufLen < payloadOffset + 1) + { + return EMBER_ZCL_STATUS_MALFORMED_COMMAND; + } + scheduleId = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); + + wasHandled = emberAfDoorLockClusterGetHolidayScheduleCallback(scheduleId); + break; + } + case ZCL_GET_LOG_RECORD_COMMAND_ID: { + uint32_t payloadOffset = cmd->payloadStartIndex; + uint16_t logIndex; + + if (cmd->bufLen < payloadOffset + 2) + { + return EMBER_ZCL_STATUS_MALFORMED_COMMAND; + } + logIndex = emberAfGetInt16u(cmd->buffer, payloadOffset, cmd->bufLen); + + wasHandled = emberAfDoorLockClusterGetLogRecordCallback(logIndex); + break; + } + case ZCL_GET_PIN_COMMAND_ID: { + uint32_t payloadOffset = cmd->payloadStartIndex; + uint16_t userId; + + if (cmd->bufLen < payloadOffset + 2) + { + return EMBER_ZCL_STATUS_MALFORMED_COMMAND; + } + userId = emberAfGetInt16u(cmd->buffer, payloadOffset, cmd->bufLen); + + wasHandled = emberAfDoorLockClusterGetPinCallback(userId); + break; + } + case ZCL_GET_RFID_COMMAND_ID: { + uint32_t payloadOffset = cmd->payloadStartIndex; + uint16_t userId; + + if (cmd->bufLen < payloadOffset + 2) + { + return EMBER_ZCL_STATUS_MALFORMED_COMMAND; + } + userId = emberAfGetInt16u(cmd->buffer, payloadOffset, cmd->bufLen); + + wasHandled = emberAfDoorLockClusterGetRfidCallback(userId); + break; + } + case ZCL_GET_USER_TYPE_COMMAND_ID: { + uint32_t payloadOffset = cmd->payloadStartIndex; + uint16_t userId; + + if (cmd->bufLen < payloadOffset + 2) + { + return EMBER_ZCL_STATUS_MALFORMED_COMMAND; + } + userId = emberAfGetInt16u(cmd->buffer, payloadOffset, cmd->bufLen); + + wasHandled = emberAfDoorLockClusterGetUserTypeCallback(userId); + break; + } + case ZCL_GET_WEEKDAY_SCHEDULE_COMMAND_ID: { + uint32_t payloadOffset = cmd->payloadStartIndex; + uint8_t scheduleId; + uint16_t userId; + + if (cmd->bufLen < payloadOffset + 1) + { + return EMBER_ZCL_STATUS_MALFORMED_COMMAND; + } + scheduleId = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); + payloadOffset += 1; + if (cmd->bufLen < payloadOffset + 2) + { + return EMBER_ZCL_STATUS_MALFORMED_COMMAND; + } + userId = emberAfGetInt16u(cmd->buffer, payloadOffset, cmd->bufLen); + + wasHandled = emberAfDoorLockClusterGetWeekdayScheduleCallback(scheduleId, userId); + break; + } + case ZCL_GET_YEARDAY_SCHEDULE_COMMAND_ID: { + uint32_t payloadOffset = cmd->payloadStartIndex; + uint8_t scheduleId; + uint16_t userId; + + if (cmd->bufLen < payloadOffset + 1) + { + return EMBER_ZCL_STATUS_MALFORMED_COMMAND; + } + scheduleId = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); + payloadOffset += 1; + if (cmd->bufLen < payloadOffset + 2) + { + return EMBER_ZCL_STATUS_MALFORMED_COMMAND; + } + userId = emberAfGetInt16u(cmd->buffer, payloadOffset, cmd->bufLen); + + wasHandled = emberAfDoorLockClusterGetYeardayScheduleCallback(scheduleId, userId); + break; + } + case ZCL_LOCK_DOOR_COMMAND_ID: { + uint32_t payloadOffset = cmd->payloadStartIndex; + uint8_t * PIN; + + if (cmd->bufLen < payloadOffset + 1u) + { + return EMBER_ZCL_STATUS_MALFORMED_COMMAND; + } + PIN = emberAfGetString(cmd->buffer, payloadOffset, cmd->bufLen); + + wasHandled = emberAfDoorLockClusterLockDoorCallback(PIN); + break; + } + case ZCL_SET_HOLIDAY_SCHEDULE_COMMAND_ID: { + uint32_t payloadOffset = cmd->payloadStartIndex; + uint8_t scheduleId; + uint32_t localStartTime; + uint32_t localEndTime; + uint8_t operatingModeDuringHoliday; + + if (cmd->bufLen < payloadOffset + 1) + { + return EMBER_ZCL_STATUS_MALFORMED_COMMAND; + } + scheduleId = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); + payloadOffset += 1; + if (cmd->bufLen < payloadOffset + 4) + { + return EMBER_ZCL_STATUS_MALFORMED_COMMAND; + } + localStartTime = emberAfGetInt32u(cmd->buffer, payloadOffset, cmd->bufLen); + payloadOffset += 4; + if (cmd->bufLen < payloadOffset + 4) + { + return EMBER_ZCL_STATUS_MALFORMED_COMMAND; + } + localEndTime = emberAfGetInt32u(cmd->buffer, payloadOffset, cmd->bufLen); + payloadOffset += 4; + if (cmd->bufLen < payloadOffset + 1) + { + return EMBER_ZCL_STATUS_MALFORMED_COMMAND; + } + operatingModeDuringHoliday = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); + + wasHandled = emberAfDoorLockClusterSetHolidayScheduleCallback(scheduleId, localStartTime, localEndTime, + operatingModeDuringHoliday); + break; + } + case ZCL_SET_PIN_COMMAND_ID: { + uint32_t payloadOffset = cmd->payloadStartIndex; + uint16_t userId; + uint8_t userStatus; + uint8_t userType; + uint8_t * pin; + + if (cmd->bufLen < payloadOffset + 2) + { + return EMBER_ZCL_STATUS_MALFORMED_COMMAND; + } + userId = emberAfGetInt16u(cmd->buffer, payloadOffset, cmd->bufLen); + payloadOffset += 2; + if (cmd->bufLen < payloadOffset + 1) + { + return EMBER_ZCL_STATUS_MALFORMED_COMMAND; + } + userStatus = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); + payloadOffset += 1; + if (cmd->bufLen < payloadOffset + 1) + { + return EMBER_ZCL_STATUS_MALFORMED_COMMAND; + } + userType = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); + payloadOffset += 1; + if (cmd->bufLen < payloadOffset + 1u) + { + return EMBER_ZCL_STATUS_MALFORMED_COMMAND; + } + pin = emberAfGetString(cmd->buffer, payloadOffset, cmd->bufLen); + + wasHandled = emberAfDoorLockClusterSetPinCallback(userId, userStatus, userType, pin); + break; + } + case ZCL_SET_RFID_COMMAND_ID: { + uint32_t payloadOffset = cmd->payloadStartIndex; + uint16_t userId; + uint8_t userStatus; + uint8_t userType; + uint8_t * id; + + if (cmd->bufLen < payloadOffset + 2) + { + return EMBER_ZCL_STATUS_MALFORMED_COMMAND; + } + userId = emberAfGetInt16u(cmd->buffer, payloadOffset, cmd->bufLen); + payloadOffset += 2; + if (cmd->bufLen < payloadOffset + 1) + { + return EMBER_ZCL_STATUS_MALFORMED_COMMAND; + } + userStatus = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); + payloadOffset += 1; + if (cmd->bufLen < payloadOffset + 1) + { + return EMBER_ZCL_STATUS_MALFORMED_COMMAND; + } + userType = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); + payloadOffset += 1; + if (cmd->bufLen < payloadOffset + 1u) + { + return EMBER_ZCL_STATUS_MALFORMED_COMMAND; + } + id = emberAfGetString(cmd->buffer, payloadOffset, cmd->bufLen); + + wasHandled = emberAfDoorLockClusterSetRfidCallback(userId, userStatus, userType, id); + break; + } + case ZCL_SET_USER_TYPE_COMMAND_ID: { + uint32_t payloadOffset = cmd->payloadStartIndex; + uint16_t userId; + uint8_t userType; + + if (cmd->bufLen < payloadOffset + 2) + { + return EMBER_ZCL_STATUS_MALFORMED_COMMAND; + } + userId = emberAfGetInt16u(cmd->buffer, payloadOffset, cmd->bufLen); + payloadOffset += 2; + if (cmd->bufLen < payloadOffset + 1) + { + return EMBER_ZCL_STATUS_MALFORMED_COMMAND; + } + userType = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); + + wasHandled = emberAfDoorLockClusterSetUserTypeCallback(userId, userType); + break; + } + case ZCL_SET_WEEKDAY_SCHEDULE_COMMAND_ID: { + uint32_t payloadOffset = cmd->payloadStartIndex; + uint8_t scheduleId; + uint16_t userId; + uint8_t daysMask; + uint8_t startHour; + uint8_t startMinute; + uint8_t endHour; + uint8_t endMinute; + + if (cmd->bufLen < payloadOffset + 1) + { + return EMBER_ZCL_STATUS_MALFORMED_COMMAND; + } + scheduleId = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); + payloadOffset += 1; + if (cmd->bufLen < payloadOffset + 2) + { + return EMBER_ZCL_STATUS_MALFORMED_COMMAND; + } + userId = emberAfGetInt16u(cmd->buffer, payloadOffset, cmd->bufLen); + payloadOffset += 2; + if (cmd->bufLen < payloadOffset + 1) + { + return EMBER_ZCL_STATUS_MALFORMED_COMMAND; + } + daysMask = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); + payloadOffset += 1; + if (cmd->bufLen < payloadOffset + 1) + { + return EMBER_ZCL_STATUS_MALFORMED_COMMAND; + } + startHour = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); + payloadOffset += 1; + if (cmd->bufLen < payloadOffset + 1) + { + return EMBER_ZCL_STATUS_MALFORMED_COMMAND; + } + startMinute = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); + payloadOffset += 1; + if (cmd->bufLen < payloadOffset + 1) + { + return EMBER_ZCL_STATUS_MALFORMED_COMMAND; + } + endHour = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); + payloadOffset += 1; + if (cmd->bufLen < payloadOffset + 1) + { + return EMBER_ZCL_STATUS_MALFORMED_COMMAND; + } + endMinute = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); + + wasHandled = emberAfDoorLockClusterSetWeekdayScheduleCallback(scheduleId, userId, daysMask, startHour, startMinute, + endHour, endMinute); + break; + } + case ZCL_SET_YEARDAY_SCHEDULE_COMMAND_ID: { + uint32_t payloadOffset = cmd->payloadStartIndex; + uint8_t scheduleId; + uint16_t userId; + uint32_t localStartTime; + uint32_t localEndTime; + + if (cmd->bufLen < payloadOffset + 1) + { + return EMBER_ZCL_STATUS_MALFORMED_COMMAND; + } + scheduleId = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); + payloadOffset += 1; + if (cmd->bufLen < payloadOffset + 2) + { + return EMBER_ZCL_STATUS_MALFORMED_COMMAND; + } + userId = emberAfGetInt16u(cmd->buffer, payloadOffset, cmd->bufLen); + payloadOffset += 2; + if (cmd->bufLen < payloadOffset + 4) + { + return EMBER_ZCL_STATUS_MALFORMED_COMMAND; + } + localStartTime = emberAfGetInt32u(cmd->buffer, payloadOffset, cmd->bufLen); + payloadOffset += 4; + if (cmd->bufLen < payloadOffset + 4) + { + return EMBER_ZCL_STATUS_MALFORMED_COMMAND; + } + localEndTime = emberAfGetInt32u(cmd->buffer, payloadOffset, cmd->bufLen); + + wasHandled = emberAfDoorLockClusterSetYeardayScheduleCallback(scheduleId, userId, localStartTime, localEndTime); + break; + } + case ZCL_UNLOCK_DOOR_COMMAND_ID: { + uint32_t payloadOffset = cmd->payloadStartIndex; + uint8_t * PIN; + + if (cmd->bufLen < payloadOffset + 1u) + { + return EMBER_ZCL_STATUS_MALFORMED_COMMAND; + } + PIN = emberAfGetString(cmd->buffer, payloadOffset, cmd->bufLen); + + wasHandled = emberAfDoorLockClusterUnlockDoorCallback(PIN); + break; + } + case ZCL_UNLOCK_WITH_TIMEOUT_COMMAND_ID: { + uint32_t payloadOffset = cmd->payloadStartIndex; + uint16_t timeoutInSeconds; + uint8_t * pin; + + if (cmd->bufLen < payloadOffset + 2) + { + return EMBER_ZCL_STATUS_MALFORMED_COMMAND; + } + timeoutInSeconds = emberAfGetInt16u(cmd->buffer, payloadOffset, cmd->bufLen); + payloadOffset += 2; + if (cmd->bufLen < payloadOffset + 1u) + { + return EMBER_ZCL_STATUS_MALFORMED_COMMAND; + } + pin = emberAfGetString(cmd->buffer, payloadOffset, cmd->bufLen); + + wasHandled = emberAfDoorLockClusterUnlockWithTimeoutCallback(timeoutInSeconds, pin); + break; + } + default: { + // Unrecognized command ID, error status will apply. + break; + } + } + } + return status(wasHandled, true, cmd->mfgSpecific); +} +EmberAfStatus emberAfGroupsClusterClientCommandParse(EmberAfClusterCommand * cmd) +{ + bool wasHandled = false; + + if (!cmd->mfgSpecific) + { + switch (cmd->commandId) + { + case ZCL_ADD_GROUP_RESPONSE_COMMAND_ID: { + uint32_t payloadOffset = cmd->payloadStartIndex; + uint8_t status; + uint16_t groupId; + + if (cmd->bufLen < payloadOffset + 1) + { + return EMBER_ZCL_STATUS_MALFORMED_COMMAND; + } + status = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); + payloadOffset += 1; + if (cmd->bufLen < payloadOffset + 2) + { + return EMBER_ZCL_STATUS_MALFORMED_COMMAND; + } + groupId = emberAfGetInt16u(cmd->buffer, payloadOffset, cmd->bufLen); + + wasHandled = emberAfGroupsClusterAddGroupResponseCallback(status, groupId); + break; + } + case ZCL_GET_GROUP_MEMBERSHIP_RESPONSE_COMMAND_ID: { + uint32_t payloadOffset = cmd->payloadStartIndex; + uint8_t capacity; + uint8_t groupCount; + /* TYPE WARNING: array array defaults to */ uint8_t * groupList; + + if (cmd->bufLen < payloadOffset + 1) + { + return EMBER_ZCL_STATUS_MALFORMED_COMMAND; + } + capacity = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); + payloadOffset += 1; + if (cmd->bufLen < payloadOffset + 1) + { + return EMBER_ZCL_STATUS_MALFORMED_COMMAND; + } + groupCount = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); + payloadOffset += 1; + groupList = cmd->buffer + payloadOffset; + + wasHandled = emberAfGroupsClusterGetGroupMembershipResponseCallback(capacity, groupCount, groupList); + break; + } + case ZCL_REMOVE_GROUP_RESPONSE_COMMAND_ID: { + uint32_t payloadOffset = cmd->payloadStartIndex; + uint8_t status; + uint16_t groupId; + + if (cmd->bufLen < payloadOffset + 1) + { + return EMBER_ZCL_STATUS_MALFORMED_COMMAND; + } + status = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); + payloadOffset += 1; + if (cmd->bufLen < payloadOffset + 2) + { + return EMBER_ZCL_STATUS_MALFORMED_COMMAND; + } + groupId = emberAfGetInt16u(cmd->buffer, payloadOffset, cmd->bufLen); + + wasHandled = emberAfGroupsClusterRemoveGroupResponseCallback(status, groupId); + break; + } + case ZCL_VIEW_GROUP_RESPONSE_COMMAND_ID: { + uint32_t payloadOffset = cmd->payloadStartIndex; + uint8_t status; + uint16_t groupId; + uint8_t * groupName; + + if (cmd->bufLen < payloadOffset + 1) + { + return EMBER_ZCL_STATUS_MALFORMED_COMMAND; + } + status = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); + payloadOffset += 1; + if (cmd->bufLen < payloadOffset + 2) + { + return EMBER_ZCL_STATUS_MALFORMED_COMMAND; + } + groupId = emberAfGetInt16u(cmd->buffer, payloadOffset, cmd->bufLen); + payloadOffset += 2; + if (cmd->bufLen < payloadOffset + 1u) + { + return EMBER_ZCL_STATUS_MALFORMED_COMMAND; + } + groupName = emberAfGetString(cmd->buffer, payloadOffset, cmd->bufLen); + + wasHandled = emberAfGroupsClusterViewGroupResponseCallback(status, groupId, groupName); + break; + } + default: { + // Unrecognized command ID, error status will apply. + break; + } + } + } + return status(wasHandled, true, cmd->mfgSpecific); +} +EmberAfStatus emberAfGroupsClusterServerCommandParse(EmberAfClusterCommand * cmd) +{ + bool wasHandled = false; + + if (!cmd->mfgSpecific) + { + switch (cmd->commandId) + { + case ZCL_ADD_GROUP_COMMAND_ID: { + uint32_t payloadOffset = cmd->payloadStartIndex; + uint16_t groupId; + uint8_t * groupName; + + if (cmd->bufLen < payloadOffset + 2) + { + return EMBER_ZCL_STATUS_MALFORMED_COMMAND; + } + groupId = emberAfGetInt16u(cmd->buffer, payloadOffset, cmd->bufLen); + payloadOffset += 2; + if (cmd->bufLen < payloadOffset + 1u) + { + return EMBER_ZCL_STATUS_MALFORMED_COMMAND; + } + groupName = emberAfGetString(cmd->buffer, payloadOffset, cmd->bufLen); + + wasHandled = emberAfGroupsClusterAddGroupCallback(groupId, groupName); + break; + } + case ZCL_ADD_GROUP_IF_IDENTIFYING_COMMAND_ID: { + uint32_t payloadOffset = cmd->payloadStartIndex; + uint16_t groupId; + uint8_t * groupName; + + if (cmd->bufLen < payloadOffset + 2) + { + return EMBER_ZCL_STATUS_MALFORMED_COMMAND; + } + groupId = emberAfGetInt16u(cmd->buffer, payloadOffset, cmd->bufLen); + payloadOffset += 2; + if (cmd->bufLen < payloadOffset + 1u) + { + return EMBER_ZCL_STATUS_MALFORMED_COMMAND; + } + groupName = emberAfGetString(cmd->buffer, payloadOffset, cmd->bufLen); + + wasHandled = emberAfGroupsClusterAddGroupIfIdentifyingCallback(groupId, groupName); + break; + } + case ZCL_GET_GROUP_MEMBERSHIP_COMMAND_ID: { + uint32_t payloadOffset = cmd->payloadStartIndex; + uint8_t groupCount; + /* TYPE WARNING: array array defaults to */ uint8_t * groupList; + + if (cmd->bufLen < payloadOffset + 1) + { + return EMBER_ZCL_STATUS_MALFORMED_COMMAND; + } + groupCount = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); + payloadOffset += 1; + groupList = cmd->buffer + payloadOffset; + + wasHandled = emberAfGroupsClusterGetGroupMembershipCallback(groupCount, groupList); + break; + } + case ZCL_REMOVE_ALL_GROUPS_COMMAND_ID: { + wasHandled = emberAfGroupsClusterRemoveAllGroupsCallback(); + break; + } + case ZCL_REMOVE_GROUP_COMMAND_ID: { + uint32_t payloadOffset = cmd->payloadStartIndex; + uint16_t groupId; + + if (cmd->bufLen < payloadOffset + 2) + { + return EMBER_ZCL_STATUS_MALFORMED_COMMAND; + } + groupId = emberAfGetInt16u(cmd->buffer, payloadOffset, cmd->bufLen); + + wasHandled = emberAfGroupsClusterRemoveGroupCallback(groupId); + break; + } + case ZCL_VIEW_GROUP_COMMAND_ID: { + uint32_t payloadOffset = cmd->payloadStartIndex; + uint16_t groupId; + + if (cmd->bufLen < payloadOffset + 2) + { + return EMBER_ZCL_STATUS_MALFORMED_COMMAND; + } + groupId = emberAfGetInt16u(cmd->buffer, payloadOffset, cmd->bufLen); + + wasHandled = emberAfGroupsClusterViewGroupCallback(groupId); + break; + } + default: { + // Unrecognized command ID, error status will apply. + break; + } + } + } + return status(wasHandled, true, cmd->mfgSpecific); +} +EmberAfStatus emberAfIasZoneClusterServerCommandParse(EmberAfClusterCommand * cmd) +{ + bool wasHandled = false; + + if (!cmd->mfgSpecific) + { + switch (cmd->commandId) + { + case ZCL_ZONE_ENROLL_RESPONSE_COMMAND_ID: { + uint32_t payloadOffset = cmd->payloadStartIndex; + uint8_t enrollResponseCode; + uint8_t zoneId; + + if (cmd->bufLen < payloadOffset + 1) + { + return EMBER_ZCL_STATUS_MALFORMED_COMMAND; + } + enrollResponseCode = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); + payloadOffset += 1; + if (cmd->bufLen < payloadOffset + 1) + { + return EMBER_ZCL_STATUS_MALFORMED_COMMAND; + } + zoneId = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); + + wasHandled = emberAfIasZoneClusterZoneEnrollResponseCallback(enrollResponseCode, zoneId); + break; + } + default: { + // Unrecognized command ID, error status will apply. + break; + } + } + } + return status(wasHandled, true, cmd->mfgSpecific); +} +EmberAfStatus emberAfIdentifyClusterClientCommandParse(EmberAfClusterCommand * cmd) +{ + bool wasHandled = false; + + if (!cmd->mfgSpecific) + { + switch (cmd->commandId) + { + case ZCL_IDENTIFY_QUERY_RESPONSE_COMMAND_ID: { + uint32_t payloadOffset = cmd->payloadStartIndex; + uint16_t timeout; + + if (cmd->bufLen < payloadOffset + 2) + { + return EMBER_ZCL_STATUS_MALFORMED_COMMAND; + } + timeout = emberAfGetInt16u(cmd->buffer, payloadOffset, cmd->bufLen); + + wasHandled = emberAfIdentifyClusterIdentifyQueryResponseCallback(timeout); + break; + } + default: { + // Unrecognized command ID, error status will apply. + break; + } + } + } + return status(wasHandled, true, cmd->mfgSpecific); +} +EmberAfStatus emberAfIdentifyClusterServerCommandParse(EmberAfClusterCommand * cmd) +{ + bool wasHandled = false; + + if (!cmd->mfgSpecific) + { + switch (cmd->commandId) + { + case ZCL_IDENTIFY_COMMAND_ID: { + uint32_t payloadOffset = cmd->payloadStartIndex; + uint16_t identifyTime; + + if (cmd->bufLen < payloadOffset + 2) + { + return EMBER_ZCL_STATUS_MALFORMED_COMMAND; + } + identifyTime = emberAfGetInt16u(cmd->buffer, payloadOffset, cmd->bufLen); + + wasHandled = emberAfIdentifyClusterIdentifyCallback(identifyTime); + break; + } + case ZCL_IDENTIFY_QUERY_COMMAND_ID: { + wasHandled = emberAfIdentifyClusterIdentifyQueryCallback(); + break; + } + default: { + // Unrecognized command ID, error status will apply. + break; + } + } + } + return status(wasHandled, true, cmd->mfgSpecific); +} +EmberAfStatus emberAfLevelControlClusterServerCommandParse(EmberAfClusterCommand * cmd) +{ + bool wasHandled = false; + + if (!cmd->mfgSpecific) + { + switch (cmd->commandId) + { + case ZCL_MOVE_COMMAND_ID: { + uint32_t payloadOffset = cmd->payloadStartIndex; + uint8_t moveMode; + uint8_t rate; + uint8_t optionMask; + uint8_t optionOverride; + + if (cmd->bufLen < payloadOffset + 1) + { + return EMBER_ZCL_STATUS_MALFORMED_COMMAND; + } + moveMode = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); + payloadOffset += 1; + if (cmd->bufLen < payloadOffset + 1) + { + return EMBER_ZCL_STATUS_MALFORMED_COMMAND; + } + rate = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); + payloadOffset += 1; + if (cmd->bufLen < payloadOffset + 1) + { + return EMBER_ZCL_STATUS_MALFORMED_COMMAND; + } + optionMask = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); + payloadOffset += 1; + if (cmd->bufLen < payloadOffset + 1) + { + return EMBER_ZCL_STATUS_MALFORMED_COMMAND; + } + optionOverride = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); + + wasHandled = emberAfLevelControlClusterMoveCallback(moveMode, rate, optionMask, optionOverride); + break; + } + case ZCL_MOVE_TO_LEVEL_COMMAND_ID: { + uint32_t payloadOffset = cmd->payloadStartIndex; + uint8_t level; + uint16_t transitionTime; + uint8_t optionMask; + uint8_t optionOverride; + + if (cmd->bufLen < payloadOffset + 1) + { + return EMBER_ZCL_STATUS_MALFORMED_COMMAND; + } + level = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); + payloadOffset += 1; + if (cmd->bufLen < payloadOffset + 2) + { + return EMBER_ZCL_STATUS_MALFORMED_COMMAND; + } + transitionTime = emberAfGetInt16u(cmd->buffer, payloadOffset, cmd->bufLen); + payloadOffset += 2; + if (cmd->bufLen < payloadOffset + 1) + { + return EMBER_ZCL_STATUS_MALFORMED_COMMAND; + } + optionMask = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); + payloadOffset += 1; + if (cmd->bufLen < payloadOffset + 1) + { + return EMBER_ZCL_STATUS_MALFORMED_COMMAND; + } + optionOverride = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); + + wasHandled = emberAfLevelControlClusterMoveToLevelCallback(level, transitionTime, optionMask, optionOverride); + break; + } + case ZCL_MOVE_TO_LEVEL_WITH_ON_OFF_COMMAND_ID: { + uint32_t payloadOffset = cmd->payloadStartIndex; + uint8_t level; + uint16_t transitionTime; + + if (cmd->bufLen < payloadOffset + 1) + { + return EMBER_ZCL_STATUS_MALFORMED_COMMAND; + } + level = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); + payloadOffset += 1; + if (cmd->bufLen < payloadOffset + 2) + { + return EMBER_ZCL_STATUS_MALFORMED_COMMAND; + } + transitionTime = emberAfGetInt16u(cmd->buffer, payloadOffset, cmd->bufLen); + + wasHandled = emberAfLevelControlClusterMoveToLevelWithOnOffCallback(level, transitionTime); + break; + } + case ZCL_MOVE_WITH_ON_OFF_COMMAND_ID: { + uint32_t payloadOffset = cmd->payloadStartIndex; + uint8_t moveMode; + uint8_t rate; + + if (cmd->bufLen < payloadOffset + 1) + { + return EMBER_ZCL_STATUS_MALFORMED_COMMAND; + } + moveMode = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); + payloadOffset += 1; + if (cmd->bufLen < payloadOffset + 1) + { + return EMBER_ZCL_STATUS_MALFORMED_COMMAND; + } + rate = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); + + wasHandled = emberAfLevelControlClusterMoveWithOnOffCallback(moveMode, rate); + break; + } + case ZCL_STEP_COMMAND_ID: { + uint32_t payloadOffset = cmd->payloadStartIndex; + uint8_t stepMode; + uint8_t stepSize; + uint16_t transitionTime; + uint8_t optionMask; + uint8_t optionOverride; + + if (cmd->bufLen < payloadOffset + 1) + { + return EMBER_ZCL_STATUS_MALFORMED_COMMAND; + } + stepMode = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); + payloadOffset += 1; + if (cmd->bufLen < payloadOffset + 1) + { + return EMBER_ZCL_STATUS_MALFORMED_COMMAND; + } + stepSize = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); + payloadOffset += 1; + if (cmd->bufLen < payloadOffset + 2) + { + return EMBER_ZCL_STATUS_MALFORMED_COMMAND; + } + transitionTime = emberAfGetInt16u(cmd->buffer, payloadOffset, cmd->bufLen); + payloadOffset += 2; + if (cmd->bufLen < payloadOffset + 1) + { + return EMBER_ZCL_STATUS_MALFORMED_COMMAND; + } + optionMask = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); + payloadOffset += 1; + if (cmd->bufLen < payloadOffset + 1) + { + return EMBER_ZCL_STATUS_MALFORMED_COMMAND; + } + optionOverride = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); + + wasHandled = emberAfLevelControlClusterStepCallback(stepMode, stepSize, transitionTime, optionMask, optionOverride); + break; + } + case ZCL_STEP_WITH_ON_OFF_COMMAND_ID: { + uint32_t payloadOffset = cmd->payloadStartIndex; + uint8_t stepMode; + uint8_t stepSize; + uint16_t transitionTime; + + if (cmd->bufLen < payloadOffset + 1) + { + return EMBER_ZCL_STATUS_MALFORMED_COMMAND; + } + stepMode = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); + payloadOffset += 1; + if (cmd->bufLen < payloadOffset + 1) + { + return EMBER_ZCL_STATUS_MALFORMED_COMMAND; + } + stepSize = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); + payloadOffset += 1; + if (cmd->bufLen < payloadOffset + 2) + { + return EMBER_ZCL_STATUS_MALFORMED_COMMAND; + } + transitionTime = emberAfGetInt16u(cmd->buffer, payloadOffset, cmd->bufLen); + + wasHandled = emberAfLevelControlClusterStepWithOnOffCallback(stepMode, stepSize, transitionTime); + break; + } + case ZCL_STOP_COMMAND_ID: { + uint32_t payloadOffset = cmd->payloadStartIndex; + uint8_t optionMask; + uint8_t optionOverride; + + if (cmd->bufLen < payloadOffset + 1) + { + return EMBER_ZCL_STATUS_MALFORMED_COMMAND; + } + optionMask = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); + payloadOffset += 1; + if (cmd->bufLen < payloadOffset + 1) + { + return EMBER_ZCL_STATUS_MALFORMED_COMMAND; + } + optionOverride = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); + + wasHandled = emberAfLevelControlClusterStopCallback(optionMask, optionOverride); + break; + } + case ZCL_STOP_WITH_ON_OFF_COMMAND_ID: { + wasHandled = emberAfLevelControlClusterStopWithOnOffCallback(); + break; + } + default: { + // Unrecognized command ID, error status will apply. + break; + } + } + } + return status(wasHandled, true, cmd->mfgSpecific); +} +EmberAfStatus emberAfOnOffClusterServerCommandParse(EmberAfClusterCommand * cmd) +{ + bool wasHandled = false; + + if (!cmd->mfgSpecific) + { + switch (cmd->commandId) + { + case ZCL_OFF_COMMAND_ID: { + wasHandled = emberAfOnOffClusterOffCallback(); + break; + } + case ZCL_ON_COMMAND_ID: { + wasHandled = emberAfOnOffClusterOnCallback(); + break; + } + case ZCL_TOGGLE_COMMAND_ID: { + wasHandled = emberAfOnOffClusterToggleCallback(); + break; + } + default: { + // Unrecognized command ID, error status will apply. + break; + } + } + } + return status(wasHandled, true, cmd->mfgSpecific); +} +EmberAfStatus emberAfScenesClusterClientCommandParse(EmberAfClusterCommand * cmd) +{ + bool wasHandled = false; + + if (!cmd->mfgSpecific) + { + switch (cmd->commandId) + { + case ZCL_ADD_SCENE_RESPONSE_COMMAND_ID: { + uint32_t payloadOffset = cmd->payloadStartIndex; + uint8_t status; + uint16_t groupId; + uint8_t sceneId; + + if (cmd->bufLen < payloadOffset + 1) + { + return EMBER_ZCL_STATUS_MALFORMED_COMMAND; + } + status = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); + payloadOffset += 1; + if (cmd->bufLen < payloadOffset + 2) + { + return EMBER_ZCL_STATUS_MALFORMED_COMMAND; + } + groupId = emberAfGetInt16u(cmd->buffer, payloadOffset, cmd->bufLen); + payloadOffset += 2; + if (cmd->bufLen < payloadOffset + 1) + { + return EMBER_ZCL_STATUS_MALFORMED_COMMAND; + } + sceneId = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); + + wasHandled = emberAfScenesClusterAddSceneResponseCallback(status, groupId, sceneId); + break; + } + case ZCL_GET_SCENE_MEMBERSHIP_RESPONSE_COMMAND_ID: { + uint32_t payloadOffset = cmd->payloadStartIndex; + uint8_t status; + uint8_t capacity; + uint16_t groupId; + uint8_t sceneCount; + /* TYPE WARNING: array array defaults to */ uint8_t * sceneList; + + if (cmd->bufLen < payloadOffset + 1) + { + return EMBER_ZCL_STATUS_MALFORMED_COMMAND; + } + status = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); + payloadOffset += 1; + if (cmd->bufLen < payloadOffset + 1) + { + return EMBER_ZCL_STATUS_MALFORMED_COMMAND; + } + capacity = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); + payloadOffset += 1; + if (cmd->bufLen < payloadOffset + 2) + { + return EMBER_ZCL_STATUS_MALFORMED_COMMAND; + } + groupId = emberAfGetInt16u(cmd->buffer, payloadOffset, cmd->bufLen); + payloadOffset += 2; + if (status == 0) + { + if (cmd->bufLen < payloadOffset + 1) + { + return EMBER_ZCL_STATUS_MALFORMED_COMMAND; + } + sceneCount = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); + payloadOffset += 1; + } + else + { + sceneCount = UINT8_MAX; + } + if (status == 0) + { + sceneList = cmd->buffer + payloadOffset; + } + else + { + sceneList = NULL; + } + + wasHandled = emberAfScenesClusterGetSceneMembershipResponseCallback(status, capacity, groupId, sceneCount, sceneList); + break; + } + case ZCL_REMOVE_ALL_SCENES_RESPONSE_COMMAND_ID: { + uint32_t payloadOffset = cmd->payloadStartIndex; + uint8_t status; + uint16_t groupId; + + if (cmd->bufLen < payloadOffset + 1) + { + return EMBER_ZCL_STATUS_MALFORMED_COMMAND; + } + status = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); + payloadOffset += 1; + if (cmd->bufLen < payloadOffset + 2) + { + return EMBER_ZCL_STATUS_MALFORMED_COMMAND; + } + groupId = emberAfGetInt16u(cmd->buffer, payloadOffset, cmd->bufLen); + + wasHandled = emberAfScenesClusterRemoveAllScenesResponseCallback(status, groupId); + break; + } + case ZCL_REMOVE_SCENE_RESPONSE_COMMAND_ID: { + uint32_t payloadOffset = cmd->payloadStartIndex; + uint8_t status; + uint16_t groupId; + uint8_t sceneId; + + if (cmd->bufLen < payloadOffset + 1) + { + return EMBER_ZCL_STATUS_MALFORMED_COMMAND; + } + status = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); + payloadOffset += 1; + if (cmd->bufLen < payloadOffset + 2) + { + return EMBER_ZCL_STATUS_MALFORMED_COMMAND; + } + groupId = emberAfGetInt16u(cmd->buffer, payloadOffset, cmd->bufLen); + payloadOffset += 2; + if (cmd->bufLen < payloadOffset + 1) + { + return EMBER_ZCL_STATUS_MALFORMED_COMMAND; + } + sceneId = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); + + wasHandled = emberAfScenesClusterRemoveSceneResponseCallback(status, groupId, sceneId); + break; + } + case ZCL_STORE_SCENE_RESPONSE_COMMAND_ID: { + uint32_t payloadOffset = cmd->payloadStartIndex; + uint8_t status; + uint16_t groupId; + uint8_t sceneId; + + if (cmd->bufLen < payloadOffset + 1) + { + return EMBER_ZCL_STATUS_MALFORMED_COMMAND; + } + status = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); + payloadOffset += 1; + if (cmd->bufLen < payloadOffset + 2) + { + return EMBER_ZCL_STATUS_MALFORMED_COMMAND; + } + groupId = emberAfGetInt16u(cmd->buffer, payloadOffset, cmd->bufLen); + payloadOffset += 2; + if (cmd->bufLen < payloadOffset + 1) + { + return EMBER_ZCL_STATUS_MALFORMED_COMMAND; + } + sceneId = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); + + wasHandled = emberAfScenesClusterStoreSceneResponseCallback(status, groupId, sceneId); + break; + } + case ZCL_VIEW_SCENE_RESPONSE_COMMAND_ID: { + uint32_t payloadOffset = cmd->payloadStartIndex; + uint8_t status; + uint16_t groupId; + uint8_t sceneId; + uint16_t transitionTime; + uint8_t * sceneName; + /* TYPE WARNING: array array defaults to */ uint8_t * extensionFieldSets; + + if (cmd->bufLen < payloadOffset + 1) + { + return EMBER_ZCL_STATUS_MALFORMED_COMMAND; + } + status = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); + payloadOffset += 1; + if (cmd->bufLen < payloadOffset + 2) + { + return EMBER_ZCL_STATUS_MALFORMED_COMMAND; + } + groupId = emberAfGetInt16u(cmd->buffer, payloadOffset, cmd->bufLen); + payloadOffset += 2; + if (cmd->bufLen < payloadOffset + 1) + { + return EMBER_ZCL_STATUS_MALFORMED_COMMAND; + } + sceneId = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); + payloadOffset += 1; + if (status == 0) + { + if (cmd->bufLen < payloadOffset + 2) + { + return EMBER_ZCL_STATUS_MALFORMED_COMMAND; + } + transitionTime = emberAfGetInt16u(cmd->buffer, payloadOffset, cmd->bufLen); + payloadOffset += 2; + } + else + { + transitionTime = UINT16_MAX; + } + if (status == 0) + { + if (cmd->bufLen < payloadOffset + 1u) + { + return EMBER_ZCL_STATUS_MALFORMED_COMMAND; + } + sceneName = emberAfGetString(cmd->buffer, payloadOffset, cmd->bufLen); + payloadOffset += emberAfStringLength(sceneName) + 1u; + } + else + { + sceneName = NULL; + } + if (status == 0) + { + extensionFieldSets = cmd->buffer + payloadOffset; + } + else + { + extensionFieldSets = NULL; + } + + wasHandled = emberAfScenesClusterViewSceneResponseCallback(status, groupId, sceneId, transitionTime, sceneName, + extensionFieldSets); + break; + } + default: { + // Unrecognized command ID, error status will apply. + break; + } + } + } + return status(wasHandled, true, cmd->mfgSpecific); +} +EmberAfStatus emberAfScenesClusterServerCommandParse(EmberAfClusterCommand * cmd) +{ + bool wasHandled = false; + + if (!cmd->mfgSpecific) + { + switch (cmd->commandId) + { + case ZCL_ADD_SCENE_COMMAND_ID: { + uint32_t payloadOffset = cmd->payloadStartIndex; + uint16_t groupId; + uint8_t sceneId; + uint16_t transitionTime; + uint8_t * sceneName; + /* TYPE WARNING: array array defaults to */ uint8_t * extensionFieldSets; + + if (cmd->bufLen < payloadOffset + 2) + { + return EMBER_ZCL_STATUS_MALFORMED_COMMAND; + } + groupId = emberAfGetInt16u(cmd->buffer, payloadOffset, cmd->bufLen); + payloadOffset += 2; + if (cmd->bufLen < payloadOffset + 1) + { + return EMBER_ZCL_STATUS_MALFORMED_COMMAND; + } + sceneId = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); + payloadOffset += 1; + if (cmd->bufLen < payloadOffset + 2) + { + return EMBER_ZCL_STATUS_MALFORMED_COMMAND; + } + transitionTime = emberAfGetInt16u(cmd->buffer, payloadOffset, cmd->bufLen); + payloadOffset += 2; + if (cmd->bufLen < payloadOffset + 1u) + { + return EMBER_ZCL_STATUS_MALFORMED_COMMAND; + } + sceneName = emberAfGetString(cmd->buffer, payloadOffset, cmd->bufLen); + payloadOffset += emberAfStringLength(sceneName) + 1u; + extensionFieldSets = cmd->buffer + payloadOffset; + + wasHandled = emberAfScenesClusterAddSceneCallback(groupId, sceneId, transitionTime, sceneName, extensionFieldSets); + break; + } + case ZCL_GET_SCENE_MEMBERSHIP_COMMAND_ID: { + uint32_t payloadOffset = cmd->payloadStartIndex; + uint16_t groupId; + + if (cmd->bufLen < payloadOffset + 2) + { + return EMBER_ZCL_STATUS_MALFORMED_COMMAND; + } + groupId = emberAfGetInt16u(cmd->buffer, payloadOffset, cmd->bufLen); + + wasHandled = emberAfScenesClusterGetSceneMembershipCallback(groupId); + break; + } + case ZCL_RECALL_SCENE_COMMAND_ID: { + uint32_t payloadOffset = cmd->payloadStartIndex; + uint16_t groupId; + uint8_t sceneId; + uint16_t transitionTime; + + if (cmd->bufLen < payloadOffset + 2) + { + return EMBER_ZCL_STATUS_MALFORMED_COMMAND; + } + groupId = emberAfGetInt16u(cmd->buffer, payloadOffset, cmd->bufLen); + payloadOffset += 2; + if (cmd->bufLen < payloadOffset + 1) + { + return EMBER_ZCL_STATUS_MALFORMED_COMMAND; + } + sceneId = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); + payloadOffset += 1; + if (cmd->bufLen < payloadOffset + 2) + { + return EMBER_ZCL_STATUS_MALFORMED_COMMAND; + } + transitionTime = emberAfGetInt16u(cmd->buffer, payloadOffset, cmd->bufLen); + + wasHandled = emberAfScenesClusterRecallSceneCallback(groupId, sceneId, transitionTime); + break; + } + case ZCL_REMOVE_ALL_SCENES_COMMAND_ID: { + uint32_t payloadOffset = cmd->payloadStartIndex; + uint16_t groupId; + + if (cmd->bufLen < payloadOffset + 2) + { + return EMBER_ZCL_STATUS_MALFORMED_COMMAND; + } + groupId = emberAfGetInt16u(cmd->buffer, payloadOffset, cmd->bufLen); + + wasHandled = emberAfScenesClusterRemoveAllScenesCallback(groupId); + break; + } + case ZCL_REMOVE_SCENE_COMMAND_ID: { + uint32_t payloadOffset = cmd->payloadStartIndex; + uint16_t groupId; + uint8_t sceneId; + + if (cmd->bufLen < payloadOffset + 2) + { + return EMBER_ZCL_STATUS_MALFORMED_COMMAND; + } + groupId = emberAfGetInt16u(cmd->buffer, payloadOffset, cmd->bufLen); + payloadOffset += 2; + if (cmd->bufLen < payloadOffset + 1) + { + return EMBER_ZCL_STATUS_MALFORMED_COMMAND; + } + sceneId = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); + + wasHandled = emberAfScenesClusterRemoveSceneCallback(groupId, sceneId); + break; + } + case ZCL_STORE_SCENE_COMMAND_ID: { + uint32_t payloadOffset = cmd->payloadStartIndex; + uint16_t groupId; + uint8_t sceneId; + + if (cmd->bufLen < payloadOffset + 2) + { + return EMBER_ZCL_STATUS_MALFORMED_COMMAND; + } + groupId = emberAfGetInt16u(cmd->buffer, payloadOffset, cmd->bufLen); + payloadOffset += 2; + if (cmd->bufLen < payloadOffset + 1) + { + return EMBER_ZCL_STATUS_MALFORMED_COMMAND; + } + sceneId = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); + + wasHandled = emberAfScenesClusterStoreSceneCallback(groupId, sceneId); + break; + } + case ZCL_VIEW_SCENE_COMMAND_ID: { + uint32_t payloadOffset = cmd->payloadStartIndex; + uint16_t groupId; + uint8_t sceneId; + + if (cmd->bufLen < payloadOffset + 2) + { + return EMBER_ZCL_STATUS_MALFORMED_COMMAND; + } + groupId = emberAfGetInt16u(cmd->buffer, payloadOffset, cmd->bufLen); + payloadOffset += 2; + if (cmd->bufLen < payloadOffset + 1) + { + return EMBER_ZCL_STATUS_MALFORMED_COMMAND; + } + sceneId = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); + + wasHandled = emberAfScenesClusterViewSceneCallback(groupId, sceneId); + break; + } + default: { + // Unrecognized command ID, error status will apply. + break; + } + } + } + return status(wasHandled, true, cmd->mfgSpecific); +} diff --git a/src/platform/tests/TestMdns.h b/examples/all-clusters-app/all-clusters-common/gen/call-command-handler.h similarity index 92% rename from src/platform/tests/TestMdns.h rename to examples/all-clusters-app/all-clusters-common/gen/call-command-handler.h index f1169ec544208b..c1b06642f07ac9 100644 --- a/src/platform/tests/TestMdns.h +++ b/examples/all-clusters-app/all-clusters-common/gen/call-command-handler.h @@ -1,3 +1,4 @@ + /* * * Copyright (c) 2020 Project CHIP Authors @@ -15,6 +16,7 @@ * limitations under the License. */ +// Prevent multiple inclusion #pragma once -int TestMdns(); +#include "af-types.h" diff --git a/examples/all-clusters-app/all-clusters-common/gen/callback-stub.cpp b/examples/all-clusters-app/all-clusters-common/gen/callback-stub.cpp new file mode 100644 index 00000000000000..e8214b31cc4718 --- /dev/null +++ b/examples/all-clusters-app/all-clusters-common/gen/callback-stub.cpp @@ -0,0 +1,624 @@ + +/* + * + * 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. + */ + +#include "callback.h" +#include "cluster-id.h" + +using namespace chip; + +// Cluster Init Functions +void emberAfClusterInitCallback(EndpointId endpoint, ClusterId clusterId) +{ + switch (clusterId) + { + case ZCL_BARRIER_CONTROL_CLUSTER_ID: + emberAfBarrierControlClusterInitCallback(endpoint); + break; + case ZCL_BASIC_CLUSTER_ID: + emberAfBasicClusterInitCallback(endpoint); + break; + case ZCL_COLOR_CONTROL_CLUSTER_ID: + emberAfColorControlClusterInitCallback(endpoint); + break; + case ZCL_DOOR_LOCK_CLUSTER_ID: + emberAfDoorLockClusterInitCallback(endpoint); + break; + case ZCL_GROUPS_CLUSTER_ID: + emberAfGroupsClusterInitCallback(endpoint); + break; + case ZCL_IAS_ZONE_CLUSTER_ID: + emberAfIasZoneClusterInitCallback(endpoint); + break; + case ZCL_IDENTIFY_CLUSTER_ID: + emberAfIdentifyClusterInitCallback(endpoint); + break; + case ZCL_LEVEL_CONTROL_CLUSTER_ID: + emberAfLevelControlClusterInitCallback(endpoint); + break; + case ZCL_ON_OFF_CLUSTER_ID: + emberAfOnOffClusterInitCallback(endpoint); + break; + case ZCL_SCENES_CLUSTER_ID: + emberAfScenesClusterInitCallback(endpoint); + break; + case ZCL_TEMP_MEASUREMENT_CLUSTER_ID: + emberAfTemperatureMeasurementClusterInitCallback(endpoint); + break; + default: + // Unrecognized cluster ID + break; + } +} + +void __attribute__((weak)) emberAfBarrierControlClusterInitCallback(EndpointId endpoint) +{ + // To prevent warning + (void) endpoint; +} +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)) emberAfDoorLockClusterInitCallback(EndpointId endpoint) +{ + // To prevent warning + (void) endpoint; +} +void __attribute__((weak)) emberAfGroupsClusterInitCallback(EndpointId endpoint) +{ + // To prevent warning + (void) endpoint; +} +void __attribute__((weak)) emberAfIasZoneClusterInitCallback(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)) emberAfOnOffClusterInitCallback(EndpointId endpoint) +{ + // To prevent warning + (void) endpoint; +} +void __attribute__((weak)) emberAfScenesClusterInitCallback(EndpointId endpoint) +{ + // To prevent warning + (void) endpoint; +} +void __attribute__((weak)) emberAfTemperatureMeasurementClusterInitCallback(EndpointId endpoint) +{ + // To prevent warning + (void) endpoint; +} + +// +// Non-Cluster Related Callbacks +// + +/** @brief Add To Current App Tasks + * + * This function is only useful to sleepy end devices. This function will note + * the passed item as part of a set of tasks the application has outstanding + * (e.g. message sent requiring APS acknwoledgement). This will affect how the + * application behaves with regard to sleeping and polling. Until the + * outstanding task is completed, the device may poll more frequently and sleep + * less often. + * + * @param tasks Ver.: always + */ +void emberAfAddToCurrentAppTasksCallback(EmberAfApplicationTask tasks) {} + +/** @brief Remove From Current App Tasks + * + * This function is only useful to sleepy end devices. This function will + * remove the passed item from the set of tasks the application has outstanding + * (e.g. message sent requiring APS acknwoledgement). This will affect how the + * application behaves with regard to sleeping and polling. Removing the item + * from the list of outstanding tasks may allow the device to sleep longer and + * poll less frequently. If there are other outstanding tasks the system may + * still have to stay away and poll more often. + * + * @param tasks Ver.: always + */ +void emberAfRemoveFromCurrentAppTasksCallback(EmberAfApplicationTask tasks) {} + +/** @brief Allow Network Write Attribute + * + * This function is called by the application framework before it writes an + * attribute in response to a write attribute request from an external device. + * The value passed into this callback is the value to which the attribute is to + * be set by the framework. + Example: In mirroring simple metering data + * on an Energy Services Interface (ESI) (formerly called Energy Service Portal + * (ESP) in SE 1.0).), a mirrored simple meter needs to write read-only + * attributes on its mirror. The-meter-mirror sample application, located in + * app/framework/sample-apps, uses this callback to allow the mirrored device to + * write simple metering attributes on the mirror regardless of the fact that + * most simple metering attributes are defined as read-only by the ZigBee + * specification. + Note: The ZCL specification does not (as of this + * writing) specify any permission-level security for writing writeable + * attributes. As far as the ZCL specification is concerned, if an attribute is + * writeable, any device that has a link key for the device should be able to + * write that attribute. Furthermore if an attribute is read only, it should not + * be written over the air. Thus, if you implement permissions for writing + * attributes as a feature, you MAY be operating outside the specification. This + * is unlikely to be a problem for writing read-only attributes, but it may be a + * problem for attributes that are writeable according to the specification but + * restricted by the application implementing this callback. + * + * @param endpoint Ver.: always + * @param clusterId Ver.: always + * @param attributeId Ver.: always + * @param mask Ver.: always + * @param manufacturerCode Ver.: always + * @param value Ver.: always + * @param type Ver.: always + */ +EmberAfAttributeWritePermission emberAfAllowNetworkWriteAttributeCallback(EndpointId endpoint, ClusterId clusterId, + AttributeId attributeId, uint8_t mask, + uint16_t manufacturerCode, uint8_t * value, uint8_t type) +{ + return EMBER_ZCL_ATTRIBUTE_WRITE_PERMISSION_ALLOW_WRITE_NORMAL; // Default +} + +/** @brief Attribute Read Access + * + * This function is called whenever the Application Framework needs to check + * access permission for an attribute read. + * + * @param endpoint Ver.: always + * @param clusterId Ver.: always + * @param manufacturerCode Ver.: always + * @param attributeId Ver.: always + */ +bool emberAfAttributeReadAccessCallback(EndpointId endpoint, ClusterId clusterId, uint16_t manufacturerCode, + AttributeId attributeId) +{ + return true; +} + +/** @brief Attribute Write Access + * + * This function is called whenever the Application Framework needs to check + * access permission for an attribute write. + * + * @param endpoint Ver.: always + * @param clusterId Ver.: always + * @param manufacturerCode Ver.: always + * @param attributeId Ver.: always + */ +bool emberAfAttributeWriteAccessCallback(EndpointId endpoint, ClusterId clusterId, uint16_t manufacturerCode, + AttributeId attributeId) +{ + return true; +} + +/** @brief Default Response + * + * This function is called by the application framework when a Default Response + * command is received from an external device. The application should return + * true if the message was processed or false if it was not. + * + * @param clusterId The cluster identifier of this response. Ver.: always + * @param commandId The command identifier to which this is a response. Ver.: + * always + * @param status Specifies either SUCCESS or the nature of the error that was + * detected in the received command. Ver.: always + */ +bool emberAfDefaultResponseCallback(ClusterId clusterId, CommandId commandId, EmberAfStatus status) +{ + return false; +} + +/** @brief Discover Attributes Response + * + * This function is called by the application framework when a Discover + * Attributes Response or Discover Attributes Extended Response command is + * received from an external device. The Discover Attributes Response command + * contains a bool indicating if discovery is complete and a list of zero or + * more attribute identifier/type records. The final argument indicates whether + * the response is in the extended format or not. The application should return + * true if the message was processed or false if it was not. + * + * @param clusterId The cluster identifier of this response. Ver.: always + * @param discoveryComplete Indicates whether there are more attributes to be + * discovered. true if there are no more attributes to be discovered. Ver.: + * always + * @param buffer Buffer containing the list of attribute identifier/type + * records. Ver.: always + * @param bufLen The length in bytes of the list. Ver.: always + * @param extended Indicates whether the response is in the extended format or + * not. Ver.: always + */ +bool emberAfDiscoverAttributesResponseCallback(ClusterId clusterId, bool discoveryComplete, uint8_t * buffer, uint16_t bufLen, + bool extended) +{ + return false; +} + +/** @brief Discover Commands Generated Response + * + * This function is called by the framework when Discover Commands Generated + * Response is received. + * + * @param clusterId The cluster identifier of this response. Ver.: always + * @param manufacturerCode Manufacturer code Ver.: always + * @param discoveryComplete Indicates whether there are more commands to be + * discovered. Ver.: always + * @param commandIds Buffer containing the list of command identifiers. Ver.: + * always + * @param commandIdCount The length of bytes of the list, whish is the same as + * the number of identifiers. Ver.: always + */ +bool emberAfDiscoverCommandsGeneratedResponseCallback(ClusterId clusterId, uint16_t manufacturerCode, bool discoveryComplete, + CommandId * commandIds, uint16_t commandIdCount) +{ + return false; +} + +/** @brief Discover Commands Received Response + * + * This function is called by the framework when Discover Commands Received + * Response is received. + * + * @param clusterId The cluster identifier of this response. Ver.: always + * @param manufacturerCode Manufacturer code Ver.: always + * @param discoveryComplete Indicates whether there are more commands to be + * discovered. Ver.: always + * @param commandIds Buffer containing the list of command identifiers. Ver.: + * always + * @param commandIdCount The length of bytes of the list, whish is the same as + * the number of identifiers. Ver.: always + */ +bool emberAfDiscoverCommandsReceivedResponseCallback(ClusterId clusterId, uint16_t manufacturerCode, bool discoveryComplete, + CommandId * commandIds, uint16_t commandIdCount) +{ + return false; +} + +/** @brief Pre Command Received + * + * This callback is the second in the Application Framework's message processing + * chain. At this point in the processing of incoming over-the-air messages, the + * application has determined that the incoming message is a ZCL command. It + * parses enough of the message to populate an EmberAfClusterCommand struct. The + * Application Framework defines this struct value in a local scope to the + * command processing but also makes it available through a global pointer + * called emberAfCurrentCommand, in app/framework/util/util.c. When command + * processing is complete, this pointer is cleared. + * + * @param cmd Ver.: always + */ +bool emberAfPreCommandReceivedCallback(EmberAfClusterCommand * cmd) +{ + return false; +} + +/** @brief Pre Message Send + * + * This function is called by the framework when it is about to pass a message + * to the stack primitives for sending. This message may or may not be ZCL, + * ZDO, or some other protocol. This is called prior to + any ZigBee + * fragmentation that may be done. If the function returns true it is assumed + * the callback has consumed and processed the message. The callback must also + * set the EmberStatus status code to be passed back to the caller. The + * framework will do no further processing on the message. + If the + * function returns false then it is assumed that the callback has not processed + * the mesasge and the framework will continue to process accordingly. + * + * @param messageStruct The structure containing the parameters of the APS + * message to be sent. Ver.: always + * @param status A pointer to the status code value that will be returned to the + * caller. Ver.: always + */ +bool emberAfPreMessageSendCallback(EmberAfMessageStruct * messageStruct, EmberStatus * status) +{ + return false; +} + +/** @brief Message Sent + * + * This function is called by the application framework from the message sent + * handler, when it is informed by the stack regarding the message sent status. + * All of the values passed to the emberMessageSentHandler are passed on to this + * callback. This provides an opportunity for the application to verify that its + * message has been sent successfully and take the appropriate action. This + * callback should return a bool value of true or false. A value of true + * indicates that the message sent notification has been handled and should not + * be handled by the application framework. + * + * @param type Ver.: always + * @param indexOrDestination Ver.: always + * @param apsFrame Ver.: always + * @param msgLen Ver.: always + * @param message Ver.: always + * @param status Ver.: always + */ +bool emberAfMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, EmberApsFrame * apsFrame, + uint16_t msgLen, uint8_t * message, EmberStatus status) +{ + return false; +} + +/** @brief Pre Attribute Change + * + * This function is called by the application framework before it changes an + * attribute value. The value passed into this callback is the value to which + * the attribute is to be set by the framework. The application should return + * ::EMBER_ZCL_STATUS_SUCCESS to permit the change or any other ::EmberAfStatus + * to reject it. + * + * @param endpoint Ver.: always + * @param clusterId Ver.: always + * @param attributeId Ver.: always + * @param mask Ver.: always + * @param manufacturerCode Ver.: always + * @param type Ver.: always + * @param size Ver.: always + * @param value Ver.: always + */ +EmberAfStatus emberAfPreAttributeChangeCallback(EndpointId endpoint, ClusterId clusterId, AttributeId attributeId, uint8_t mask, + uint16_t manufacturerCode, uint8_t type, uint8_t size, uint8_t * value) +{ + return EMBER_ZCL_STATUS_SUCCESS; +} + +/** @brief Read Attributes Response + * + * This function is called by the application framework when a Read Attributes + * Response command is received from an external device. The application should + * return true if the message was processed or false if it was not. + * + * @param clusterId The cluster identifier of this response. Ver.: always + * @param buffer Buffer containing the list of read attribute status records. + * Ver.: always + * @param bufLen The length in bytes of the list. Ver.: always + */ +bool emberAfReadAttributesResponseCallback(ClusterId clusterId, uint8_t * buffer, uint16_t bufLen) +{ + return false; +} + +/** @brief External Attribute Read + * + * Like emberAfExternalAttributeWriteCallback above, this function is called + * when the framework needs to read an attribute that is not stored within the + * Application Framework's data structures. + All of the important + * information about the attribute itself is passed as a pointer to an + * EmberAfAttributeMetadata struct, which is stored within the application and + * used to manage the attribute. A complete description of the + * EmberAfAttributeMetadata struct is provided in + * app/framework/include/af-types.h + This function assumes that the + * application is able to read the attribute, write it into the passed buffer, + * and return immediately. Any attributes that require a state machine for + * reading and writing are not really candidates for externalization at the + * present time. The Application Framework does not currently include a state + * machine for reading or writing attributes that must take place across a + * series of application ticks. Attributes that cannot be read in a timely + * manner should be stored within the Application Framework and updated + * occasionally by the application code from within the + * emberAfMainTickCallback. + If the application was successfully able to + * read the attribute and write it into the passed buffer, it should return a + * value of EMBER_ZCL_STATUS_SUCCESS. Ensure that the size of the externally + * managed attribute value is smaller than what the buffer can hold. In the case + * of a buffer overflow throw an appropriate error such as + * EMBER_ZCL_STATUS_INSUFFICIENT_SPACE. Any other return value indicates the + * application was not able to read the attribute. + * + * @param endpoint Ver.: always + * @param clusterId Ver.: always + * @param attributeMetadata Ver.: always + * @param manufacturerCode Ver.: always + * @param buffer Ver.: always + * @param maxReadLength Ver.: always + */ +EmberAfStatus emberAfExternalAttributeReadCallback(EndpointId endpoint, ClusterId clusterId, + EmberAfAttributeMetadata * attributeMetadata, uint16_t manufacturerCode, + uint8_t * buffer, uint16_t maxReadLength) +{ + return EMBER_ZCL_STATUS_FAILURE; +} + +/** @brief Write Attributes Response + * + * This function is called by the application framework when a Write Attributes + * Response command is received from an external device. The application should + * return true if the message was processed or false if it was not. + * + * @param clusterId The cluster identifier of this response. Ver.: always + * @param buffer Buffer containing the list of write attribute status records. + * Ver.: always + * @param bufLen The length in bytes of the list. Ver.: always + */ +bool emberAfWriteAttributesResponseCallback(ClusterId clusterId, uint8_t * buffer, uint16_t bufLen) +{ + return false; +} + +/** @brief External Attribute Write + * + * This function is called whenever the Application Framework needs to write an + * attribute which is not stored within the data structures of the Application + * Framework itself. One of the new features in Version 2 is the ability to + * store attributes outside the Framework. This is particularly useful for + * attributes that do not need to be stored because they can be read off the + * hardware when they are needed, or are stored in some central location used by + * many modules within the system. In this case, you can indicate that the + * attribute is stored externally. When the framework needs to write an external + * attribute, it makes a call to this callback. + This callback is very + * useful for host micros which need to store attributes in persistent memory. + * Because each host micro (used with an Ember NCP) has its own type of + * persistent memory storage, the Application Framework does not include the + * ability to mark attributes as stored in flash the way that it does for Ember + * SoCs like the EM35x. On a host micro, any attributes that need to be stored + * in persistent memory should be marked as external and accessed through the + * external read and write callbacks. Any host code associated with the + * persistent storage should be implemented within this callback. + All of + * the important information about the attribute itself is passed as a pointer + * to an EmberAfAttributeMetadata struct, which is stored within the application + * and used to manage the attribute. A complete description of the + * EmberAfAttributeMetadata struct is provided in + * app/framework/include/af-types.h. + This function assumes that the + * application is able to write the attribute and return immediately. Any + * attributes that require a state machine for reading and writing are not + * candidates for externalization at the present time. The Application Framework + * does not currently include a state machine for reading or writing attributes + * that must take place across a series of application ticks. Attributes that + * cannot be written immediately should be stored within the Application + * Framework and updated occasionally by the application code from within the + * emberAfMainTickCallback. + If the application was successfully able to + * write the attribute, it returns a value of EMBER_ZCL_STATUS_SUCCESS. Any + * other return value indicates the application was not able to write the + * attribute. + * + * @param endpoint Ver.: always + * @param clusterId Ver.: always + * @param attributeMetadata Ver.: always + * @param manufacturerCode Ver.: always + * @param buffer Ver.: always + */ +EmberAfStatus emberAfExternalAttributeWriteCallback(EndpointId endpoint, ClusterId clusterId, + EmberAfAttributeMetadata * attributeMetadata, uint16_t manufacturerCode, + uint8_t * buffer) +{ + return EMBER_ZCL_STATUS_FAILURE; +} + +/** @brief Report Attributes + * + * This function is called by the application framework when a Report Attributes + * command is received from an external device. The application should return + * true if the message was processed or false if it was not. + * + * @param clusterId The cluster identifier of this command. Ver.: always + * @param buffer Buffer containing the list of attribute report records. Ver.: + * always + * @param bufLen The length in bytes of the list. Ver.: always + */ +bool emberAfReportAttributesCallback(ClusterId clusterId, uint8_t * buffer, uint16_t bufLen) +{ + return false; +} + +/** @brief Get Current Time + * + * This callback is called when device attempts to get current time from the + * hardware. If this device has means to retrieve exact time, then this method + * should implement it. If the callback can't provide the exact time it should + * return 0 to indicate failure. Default action is to return 0, which indicates + * that device does not have access to real time. + * + */ +uint32_t emberAfGetCurrentTimeCallback() +{ + return 0; +} + +/** @brief Get Endpoint Info + * + * This function is a callback to an application implemented endpoint that + * operates outside the normal application framework. When the framework wishes + * to perform operations with that endpoint it uses this callback to retrieve + * the endpoint's information. If the endpoint exists and the application can + * provide data then true shall be returned. Otherwise the callback must return + * false. + * + * @param endpoint The endpoint to retrieve data for. Ver.: always + * @param returnNetworkIndex The index corresponding to the ZigBee network the + * endpoint belongs to. If not using a multi-network device, 0 must be + * returned. Otherwise on a multi-network device the stack will switch to this + * network before sending the message. Ver.: always + * @param returnEndpointInfo A pointer to a data struct that will be written + * with information about the endpoint. Ver.: always + */ +bool emberAfGetEndpointInfoCallback(EndpointId endpoint, uint8_t * returnNetworkIndex, + EmberAfEndpointInfoStruct * returnEndpointInfo) +{ + return false; +} + +/** @brief Get Source Route Overhead + * + * This function is called by the framework to determine the overhead required + * in the network frame for source routing to a particular destination. + * + * @param destination The node id of the destination Ver.: always + */ +uint8_t emberAfGetSourceRouteOverheadCallback(EmberNodeId destination) +{ + return 0; +} + +/** @brief Registration Abort + * + * This callback is called when the device should abort the registration + * process. + * + */ +void emberAfRegistrationAbortCallback() {} + +/** @brief Interpan Send Message + * + * This function will send a raw MAC message with interpan frame format using + * the passed parameters. + * + * @param header Interpan header info Ver.: always + * @param messageLength The length of the message received or to send Ver.: + * always + * @param message The message data received or to send. Ver.: always + */ +EmberStatus emberAfInterpanSendMessageCallback(EmberAfInterpanHeader * header, uint16_t messageLength, uint8_t * message) +{ + return EMBER_LIBRARY_NOT_PRESENT; +} + +/** @brief Start Move + * + * This function is called to initiate the process for a device to move (rejoin) + * to a new parent. + * + */ +bool emberAfStartMoveCallback() +{ + return false; +} diff --git a/examples/all-clusters-app/all-clusters-common/gen/callback.h b/examples/all-clusters-app/all-clusters-common/gen/callback.h new file mode 100644 index 00000000000000..7391f06f5fcdf0 --- /dev/null +++ b/examples/all-clusters-app/all-clusters-common/gen/callback.h @@ -0,0 +1,2680 @@ + +/* + * + * 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. + */ + +// Prevent multiple inclusion +#pragma once + +#include "af-structs.h" +#include "af-types.h" +#include "basic-types.h" + +/** @brief Cluster Init + * + * This function is called when a specific cluster is initialized. It gives the + * application an opportunity to take care of cluster initialization procedures. + * It is called exactly once for each endpoint where cluster is present. + * + * @param endpoint Ver.: always + * @param clusterId Ver.: always + */ +void emberAfClusterInitCallback(chip::EndpointId endpoint, chip::ClusterId clusterId); + +// Cluster Init Functions + +/** @brief Barrier Control Cluster Init + * + * Cluster Init + * + * @param endpoint Endpoint that is being initialized + */ +void emberAfBarrierControlClusterInitCallback(chip::EndpointId endpoint); + +/** @brief Basic Cluster Init + * + * Cluster Init + * + * @param endpoint Endpoint that is being initialized + */ +void emberAfBasicClusterInitCallback(chip::EndpointId endpoint); + +/** @brief Color Control Cluster Init + * + * Cluster Init + * + * @param endpoint Endpoint that is being initialized + */ +void emberAfColorControlClusterInitCallback(chip::EndpointId endpoint); + +/** @brief Door Lock Cluster Init + * + * Cluster Init + * + * @param endpoint Endpoint that is being initialized + */ +void emberAfDoorLockClusterInitCallback(chip::EndpointId endpoint); + +/** @brief Groups Cluster Init + * + * Cluster Init + * + * @param endpoint Endpoint that is being initialized + */ +void emberAfGroupsClusterInitCallback(chip::EndpointId endpoint); + +/** @brief IAS Zone Cluster Init + * + * Cluster Init + * + * @param endpoint Endpoint that is being initialized + */ +void emberAfIasZoneClusterInitCallback(chip::EndpointId endpoint); + +/** @brief Identify Cluster Init + * + * Cluster Init + * + * @param endpoint Endpoint that is being initialized + */ +void emberAfIdentifyClusterInitCallback(chip::EndpointId endpoint); + +/** @brief Level Control Cluster Init + * + * Cluster Init + * + * @param endpoint Endpoint that is being initialized + */ +void emberAfLevelControlClusterInitCallback(chip::EndpointId endpoint); + +/** @brief On/off Cluster Init + * + * Cluster Init + * + * @param endpoint Endpoint that is being initialized + */ +void emberAfOnOffClusterInitCallback(chip::EndpointId endpoint); + +/** @brief Scenes Cluster Init + * + * Cluster Init + * + * @param endpoint Endpoint that is being initialized + */ +void emberAfScenesClusterInitCallback(chip::EndpointId endpoint); + +/** @brief Temperature Measurement Cluster Init + * + * Cluster Init + * + * @param endpoint Endpoint that is being initialized + */ +void emberAfTemperatureMeasurementClusterInitCallback(chip::EndpointId endpoint); + +// Cluster Server/Client Init Functions + +// +// Barrier Control Cluster client +// + +/** @brief Barrier Control Cluster Client Init + * + * Client Init + * + * @param endpoint Endpoint that is being initialized + */ +void emberAfBarrierControlClusterClientInitCallback(chip::EndpointId endpoint); + +/** @brief Barrier Control Cluster Client Attribute Changed + * + * Client Attribute Changed + * + * @param endpoint Endpoint that is being initialized + * @param attributeId Attribute that changed + */ +void emberAfBarrierControlClusterClientAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId); + +/** @brief Barrier Control Cluster Client Manufacturer Specific Attribute Changed + * + * Client Manufacturer Specific Attribute Changed + * + * @param endpoint Endpoint that is being initialized + * @param attributeId Attribute that changed + * @param manufacturerCode Manufacturer Code of the attribute that changed + */ +void emberAfBarrierControlClusterClientManufacturerSpecificAttributeChangedCallback(chip::EndpointId endpoint, + chip::AttributeId attributeId, + uint16_t manufacturerCode); + +/** @brief Barrier Control Cluster Client Message Sent + * + * Client Message Sent + * + * @param type The type of message sent + * @param indexOrDestination The destination or address to which the message was sent + * @param apsFrame The APS frame for the message + * @param msgLen The length of the message + * @param message The message that was sent + * @param status The status of the sent message + */ +void emberAfBarrierControlClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint64_t indexOrDestination, + EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, + EmberStatus status); + +/** @brief Barrier Control Cluster Client Pre Attribute Changed + * + * client Pre Attribute Changed + * + * @param endpoint Endpoint that is being initialized + * @param attributeId Attribute to be changed + * @param attributeType Attribute type + * @param size Attribute size + * @param value Attribute value + */ +EmberAfStatus emberAfBarrierControlClusterClientPreAttributeChangedCallback(chip::EndpointId endpoint, + chip::AttributeId attributeId, + EmberAfAttributeType attributeType, uint8_t size, + uint8_t * value); + +/** @brief Barrier Control Cluster Client Tick + * + * client Tick + * + * @param endpoint Endpoint that is being served + */ +void emberAfBarrierControlClusterClientTickCallback(chip::EndpointId endpoint); + +// +// Barrier Control Cluster server +// + +/** @brief Barrier Control Cluster Server Init + * + * Server Init + * + * @param endpoint Endpoint that is being initialized + */ +void emberAfBarrierControlClusterServerInitCallback(chip::EndpointId endpoint); + +/** @brief Barrier Control Cluster Server Attribute Changed + * + * Server Attribute Changed + * + * @param endpoint Endpoint that is being initialized + * @param attributeId Attribute that changed + */ +void emberAfBarrierControlClusterServerAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId); + +/** @brief Barrier Control Cluster Server Manufacturer Specific Attribute Changed + * + * Server Manufacturer Specific Attribute Changed + * + * @param endpoint Endpoint that is being initialized + * @param attributeId Attribute that changed + * @param manufacturerCode Manufacturer Code of the attribute that changed + */ +void emberAfBarrierControlClusterServerManufacturerSpecificAttributeChangedCallback(chip::EndpointId endpoint, + chip::AttributeId attributeId, + uint16_t manufacturerCode); + +/** @brief Barrier Control Cluster Server Message Sent + * + * Server Message Sent + * + * @param type The type of message sent + * @param indexOrDestination The destination or address to which the message was sent + * @param apsFrame The APS frame for the message + * @param msgLen The length of the message + * @param message The message that was sent + * @param status The status of the sent message + */ +void emberAfBarrierControlClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint64_t indexOrDestination, + EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, + EmberStatus status); + +/** @brief Barrier Control Cluster Server Pre Attribute Changed + * + * server Pre Attribute Changed + * + * @param endpoint Endpoint that is being initialized + * @param attributeId Attribute to be changed + * @param attributeType Attribute type + * @param size Attribute size + * @param value Attribute value + */ +EmberAfStatus emberAfBarrierControlClusterServerPreAttributeChangedCallback(chip::EndpointId endpoint, + chip::AttributeId attributeId, + EmberAfAttributeType attributeType, uint8_t size, + uint8_t * value); + +/** @brief Barrier Control Cluster Server Tick + * + * server Tick + * + * @param endpoint Endpoint that is being served + */ +void emberAfBarrierControlClusterServerTickCallback(chip::EndpointId endpoint); + +// +// Basic Cluster client +// + +/** @brief Basic Cluster Client Init + * + * Client Init + * + * @param endpoint Endpoint that is being initialized + */ +void emberAfBasicClusterClientInitCallback(chip::EndpointId endpoint); + +/** @brief Basic Cluster Client Attribute Changed + * + * Client Attribute Changed + * + * @param endpoint Endpoint that is being initialized + * @param attributeId Attribute that changed + */ +void emberAfBasicClusterClientAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId); + +/** @brief Basic Cluster Client Manufacturer Specific Attribute Changed + * + * Client Manufacturer Specific Attribute Changed + * + * @param endpoint Endpoint that is being initialized + * @param attributeId Attribute that changed + * @param manufacturerCode Manufacturer Code of the attribute that changed + */ +void emberAfBasicClusterClientManufacturerSpecificAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId, + uint16_t manufacturerCode); + +/** @brief Basic Cluster Client Message Sent + * + * Client Message Sent + * + * @param type The type of message sent + * @param indexOrDestination The destination or address to which the message was sent + * @param apsFrame The APS frame for the message + * @param msgLen The length of the message + * @param message The message that was sent + * @param status The status of the sent message + */ +void emberAfBasicClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint64_t indexOrDestination, + EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, EmberStatus status); + +/** @brief Basic Cluster Client Pre Attribute Changed + * + * client Pre Attribute Changed + * + * @param endpoint Endpoint that is being initialized + * @param attributeId Attribute to be changed + * @param attributeType Attribute type + * @param size Attribute size + * @param value Attribute value + */ +EmberAfStatus emberAfBasicClusterClientPreAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId, + EmberAfAttributeType attributeType, uint8_t size, + uint8_t * value); + +/** @brief Basic Cluster Client Tick + * + * client Tick + * + * @param endpoint Endpoint that is being served + */ +void emberAfBasicClusterClientTickCallback(chip::EndpointId endpoint); + +// +// Basic Cluster server +// + +/** @brief Basic Cluster Server Init + * + * Server Init + * + * @param endpoint Endpoint that is being initialized + */ +void emberAfBasicClusterServerInitCallback(chip::EndpointId endpoint); + +/** @brief Basic Cluster Server Attribute Changed + * + * Server Attribute Changed + * + * @param endpoint Endpoint that is being initialized + * @param attributeId Attribute that changed + */ +void emberAfBasicClusterServerAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId); + +/** @brief Basic Cluster Server Manufacturer Specific Attribute Changed + * + * Server Manufacturer Specific Attribute Changed + * + * @param endpoint Endpoint that is being initialized + * @param attributeId Attribute that changed + * @param manufacturerCode Manufacturer Code of the attribute that changed + */ +void emberAfBasicClusterServerManufacturerSpecificAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId, + uint16_t manufacturerCode); + +/** @brief Basic Cluster Server Message Sent + * + * Server Message Sent + * + * @param type The type of message sent + * @param indexOrDestination The destination or address to which the message was sent + * @param apsFrame The APS frame for the message + * @param msgLen The length of the message + * @param message The message that was sent + * @param status The status of the sent message + */ +void emberAfBasicClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint64_t indexOrDestination, + EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, EmberStatus status); + +/** @brief Basic Cluster Server Pre Attribute Changed + * + * server Pre Attribute Changed + * + * @param endpoint Endpoint that is being initialized + * @param attributeId Attribute to be changed + * @param attributeType Attribute type + * @param size Attribute size + * @param value Attribute value + */ +EmberAfStatus emberAfBasicClusterServerPreAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId, + EmberAfAttributeType attributeType, uint8_t size, + uint8_t * value); + +/** @brief Basic Cluster Server Tick + * + * server Tick + * + * @param endpoint Endpoint that is being served + */ +void emberAfBasicClusterServerTickCallback(chip::EndpointId endpoint); + +// +// Color Control Cluster client +// + +/** @brief Color Control Cluster Client Init + * + * Client Init + * + * @param endpoint Endpoint that is being initialized + */ +void emberAfColorControlClusterClientInitCallback(chip::EndpointId endpoint); + +/** @brief Color Control Cluster Client Attribute Changed + * + * Client Attribute Changed + * + * @param endpoint Endpoint that is being initialized + * @param attributeId Attribute that changed + */ +void emberAfColorControlClusterClientAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId); + +/** @brief Color Control Cluster Client Manufacturer Specific Attribute Changed + * + * Client Manufacturer Specific Attribute Changed + * + * @param endpoint Endpoint that is being initialized + * @param attributeId Attribute that changed + * @param manufacturerCode Manufacturer Code of the attribute that changed + */ +void emberAfColorControlClusterClientManufacturerSpecificAttributeChangedCallback(chip::EndpointId endpoint, + chip::AttributeId attributeId, + uint16_t manufacturerCode); + +/** @brief Color Control Cluster Client Message Sent + * + * Client Message Sent + * + * @param type The type of message sent + * @param indexOrDestination The destination or address to which the message was sent + * @param apsFrame The APS frame for the message + * @param msgLen The length of the message + * @param message The message that was sent + * @param status The status of the sent message + */ +void emberAfColorControlClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint64_t indexOrDestination, + EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, + EmberStatus status); + +/** @brief Color Control Cluster Client Pre Attribute Changed + * + * client Pre Attribute Changed + * + * @param endpoint Endpoint that is being initialized + * @param attributeId Attribute to be changed + * @param attributeType Attribute type + * @param size Attribute size + * @param value Attribute value + */ +EmberAfStatus emberAfColorControlClusterClientPreAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId, + EmberAfAttributeType attributeType, uint8_t size, + uint8_t * value); + +/** @brief Color Control Cluster Client Tick + * + * client Tick + * + * @param endpoint Endpoint that is being served + */ +void emberAfColorControlClusterClientTickCallback(chip::EndpointId endpoint); + +// +// Color Control Cluster server +// + +/** @brief Color Control Cluster Server Init + * + * Server Init + * + * @param endpoint Endpoint that is being initialized + */ +void emberAfColorControlClusterServerInitCallback(chip::EndpointId endpoint); + +/** @brief Color Control Cluster Server Attribute Changed + * + * Server Attribute Changed + * + * @param endpoint Endpoint that is being initialized + * @param attributeId Attribute that changed + */ +void emberAfColorControlClusterServerAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId); + +/** @brief Color Control Cluster Server Manufacturer Specific Attribute Changed + * + * Server Manufacturer Specific Attribute Changed + * + * @param endpoint Endpoint that is being initialized + * @param attributeId Attribute that changed + * @param manufacturerCode Manufacturer Code of the attribute that changed + */ +void emberAfColorControlClusterServerManufacturerSpecificAttributeChangedCallback(chip::EndpointId endpoint, + chip::AttributeId attributeId, + uint16_t manufacturerCode); + +/** @brief Color Control Cluster Server Message Sent + * + * Server Message Sent + * + * @param type The type of message sent + * @param indexOrDestination The destination or address to which the message was sent + * @param apsFrame The APS frame for the message + * @param msgLen The length of the message + * @param message The message that was sent + * @param status The status of the sent message + */ +void emberAfColorControlClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint64_t indexOrDestination, + EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, + EmberStatus status); + +/** @brief Color Control Cluster Server Pre Attribute Changed + * + * server Pre Attribute Changed + * + * @param endpoint Endpoint that is being initialized + * @param attributeId Attribute to be changed + * @param attributeType Attribute type + * @param size Attribute size + * @param value Attribute value + */ +EmberAfStatus emberAfColorControlClusterServerPreAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId, + EmberAfAttributeType attributeType, uint8_t size, + uint8_t * value); + +/** @brief Color Control Cluster Server Tick + * + * server Tick + * + * @param endpoint Endpoint that is being served + */ +void emberAfColorControlClusterServerTickCallback(chip::EndpointId endpoint); + +// +// Door Lock Cluster client +// + +/** @brief Door Lock Cluster Client Init + * + * Client Init + * + * @param endpoint Endpoint that is being initialized + */ +void emberAfDoorLockClusterClientInitCallback(chip::EndpointId endpoint); + +/** @brief Door Lock Cluster Client Attribute Changed + * + * Client Attribute Changed + * + * @param endpoint Endpoint that is being initialized + * @param attributeId Attribute that changed + */ +void emberAfDoorLockClusterClientAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId); + +/** @brief Door Lock Cluster Client Manufacturer Specific Attribute Changed + * + * Client Manufacturer Specific Attribute Changed + * + * @param endpoint Endpoint that is being initialized + * @param attributeId Attribute that changed + * @param manufacturerCode Manufacturer Code of the attribute that changed + */ +void emberAfDoorLockClusterClientManufacturerSpecificAttributeChangedCallback(chip::EndpointId endpoint, + chip::AttributeId attributeId, + uint16_t manufacturerCode); + +/** @brief Door Lock Cluster Client Message Sent + * + * Client Message Sent + * + * @param type The type of message sent + * @param indexOrDestination The destination or address to which the message was sent + * @param apsFrame The APS frame for the message + * @param msgLen The length of the message + * @param message The message that was sent + * @param status The status of the sent message + */ +void emberAfDoorLockClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint64_t indexOrDestination, + EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, + EmberStatus status); + +/** @brief Door Lock Cluster Client Pre Attribute Changed + * + * client Pre Attribute Changed + * + * @param endpoint Endpoint that is being initialized + * @param attributeId Attribute to be changed + * @param attributeType Attribute type + * @param size Attribute size + * @param value Attribute value + */ +EmberAfStatus emberAfDoorLockClusterClientPreAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId, + EmberAfAttributeType attributeType, uint8_t size, + uint8_t * value); + +/** @brief Door Lock Cluster Client Tick + * + * client Tick + * + * @param endpoint Endpoint that is being served + */ +void emberAfDoorLockClusterClientTickCallback(chip::EndpointId endpoint); + +// +// Door Lock Cluster server +// + +/** @brief Door Lock Cluster Server Init + * + * Server Init + * + * @param endpoint Endpoint that is being initialized + */ +void emberAfDoorLockClusterServerInitCallback(chip::EndpointId endpoint); + +/** @brief Door Lock Cluster Server Attribute Changed + * + * Server Attribute Changed + * + * @param endpoint Endpoint that is being initialized + * @param attributeId Attribute that changed + */ +void emberAfDoorLockClusterServerAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId); + +/** @brief Door Lock Cluster Server Manufacturer Specific Attribute Changed + * + * Server Manufacturer Specific Attribute Changed + * + * @param endpoint Endpoint that is being initialized + * @param attributeId Attribute that changed + * @param manufacturerCode Manufacturer Code of the attribute that changed + */ +void emberAfDoorLockClusterServerManufacturerSpecificAttributeChangedCallback(chip::EndpointId endpoint, + chip::AttributeId attributeId, + uint16_t manufacturerCode); + +/** @brief Door Lock Cluster Server Message Sent + * + * Server Message Sent + * + * @param type The type of message sent + * @param indexOrDestination The destination or address to which the message was sent + * @param apsFrame The APS frame for the message + * @param msgLen The length of the message + * @param message The message that was sent + * @param status The status of the sent message + */ +void emberAfDoorLockClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint64_t indexOrDestination, + EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, + EmberStatus status); + +/** @brief Door Lock Cluster Server Pre Attribute Changed + * + * server Pre Attribute Changed + * + * @param endpoint Endpoint that is being initialized + * @param attributeId Attribute to be changed + * @param attributeType Attribute type + * @param size Attribute size + * @param value Attribute value + */ +EmberAfStatus emberAfDoorLockClusterServerPreAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId, + EmberAfAttributeType attributeType, uint8_t size, + uint8_t * value); + +/** @brief Door Lock Cluster Server Tick + * + * server Tick + * + * @param endpoint Endpoint that is being served + */ +void emberAfDoorLockClusterServerTickCallback(chip::EndpointId endpoint); + +// +// Groups Cluster client +// + +/** @brief Groups Cluster Client Init + * + * Client Init + * + * @param endpoint Endpoint that is being initialized + */ +void emberAfGroupsClusterClientInitCallback(chip::EndpointId endpoint); + +/** @brief Groups Cluster Client Attribute Changed + * + * Client Attribute Changed + * + * @param endpoint Endpoint that is being initialized + * @param attributeId Attribute that changed + */ +void emberAfGroupsClusterClientAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId); + +/** @brief Groups Cluster Client Manufacturer Specific Attribute Changed + * + * Client Manufacturer Specific Attribute Changed + * + * @param endpoint Endpoint that is being initialized + * @param attributeId Attribute that changed + * @param manufacturerCode Manufacturer Code of the attribute that changed + */ +void emberAfGroupsClusterClientManufacturerSpecificAttributeChangedCallback(chip::EndpointId endpoint, + chip::AttributeId attributeId, + uint16_t manufacturerCode); + +/** @brief Groups Cluster Client Message Sent + * + * Client Message Sent + * + * @param type The type of message sent + * @param indexOrDestination The destination or address to which the message was sent + * @param apsFrame The APS frame for the message + * @param msgLen The length of the message + * @param message The message that was sent + * @param status The status of the sent message + */ +void emberAfGroupsClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint64_t indexOrDestination, + EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, + EmberStatus status); + +/** @brief Groups Cluster Client Pre Attribute Changed + * + * client Pre Attribute Changed + * + * @param endpoint Endpoint that is being initialized + * @param attributeId Attribute to be changed + * @param attributeType Attribute type + * @param size Attribute size + * @param value Attribute value + */ +EmberAfStatus emberAfGroupsClusterClientPreAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId, + EmberAfAttributeType attributeType, uint8_t size, + uint8_t * value); + +/** @brief Groups Cluster Client Tick + * + * client Tick + * + * @param endpoint Endpoint that is being served + */ +void emberAfGroupsClusterClientTickCallback(chip::EndpointId endpoint); + +// +// Groups Cluster server +// + +/** @brief Groups Cluster Server Init + * + * Server Init + * + * @param endpoint Endpoint that is being initialized + */ +void emberAfGroupsClusterServerInitCallback(chip::EndpointId endpoint); + +/** @brief Groups Cluster Server Attribute Changed + * + * Server Attribute Changed + * + * @param endpoint Endpoint that is being initialized + * @param attributeId Attribute that changed + */ +void emberAfGroupsClusterServerAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId); + +/** @brief Groups Cluster Server Manufacturer Specific Attribute Changed + * + * Server Manufacturer Specific Attribute Changed + * + * @param endpoint Endpoint that is being initialized + * @param attributeId Attribute that changed + * @param manufacturerCode Manufacturer Code of the attribute that changed + */ +void emberAfGroupsClusterServerManufacturerSpecificAttributeChangedCallback(chip::EndpointId endpoint, + chip::AttributeId attributeId, + uint16_t manufacturerCode); + +/** @brief Groups Cluster Server Message Sent + * + * Server Message Sent + * + * @param type The type of message sent + * @param indexOrDestination The destination or address to which the message was sent + * @param apsFrame The APS frame for the message + * @param msgLen The length of the message + * @param message The message that was sent + * @param status The status of the sent message + */ +void emberAfGroupsClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint64_t indexOrDestination, + EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, + EmberStatus status); + +/** @brief Groups Cluster Server Pre Attribute Changed + * + * server Pre Attribute Changed + * + * @param endpoint Endpoint that is being initialized + * @param attributeId Attribute to be changed + * @param attributeType Attribute type + * @param size Attribute size + * @param value Attribute value + */ +EmberAfStatus emberAfGroupsClusterServerPreAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId, + EmberAfAttributeType attributeType, uint8_t size, + uint8_t * value); + +/** @brief Groups Cluster Server Tick + * + * server Tick + * + * @param endpoint Endpoint that is being served + */ +void emberAfGroupsClusterServerTickCallback(chip::EndpointId endpoint); + +// +// IAS Zone Cluster server +// + +/** @brief IAS Zone Cluster Server Init + * + * Server Init + * + * @param endpoint Endpoint that is being initialized + */ +void emberAfIasZoneClusterServerInitCallback(chip::EndpointId endpoint); + +/** @brief IAS Zone Cluster Server Attribute Changed + * + * Server Attribute Changed + * + * @param endpoint Endpoint that is being initialized + * @param attributeId Attribute that changed + */ +void emberAfIasZoneClusterServerAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId); + +/** @brief IAS Zone Cluster Server Manufacturer Specific Attribute Changed + * + * Server Manufacturer Specific Attribute Changed + * + * @param endpoint Endpoint that is being initialized + * @param attributeId Attribute that changed + * @param manufacturerCode Manufacturer Code of the attribute that changed + */ +void emberAfIasZoneClusterServerManufacturerSpecificAttributeChangedCallback(chip::EndpointId endpoint, + chip::AttributeId attributeId, + uint16_t manufacturerCode); + +/** @brief IAS Zone Cluster Server Message Sent + * + * Server Message Sent + * + * @param type The type of message sent + * @param indexOrDestination The destination or address to which the message was sent + * @param apsFrame The APS frame for the message + * @param msgLen The length of the message + * @param message The message that was sent + * @param status The status of the sent message + */ +void emberAfIasZoneClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint64_t indexOrDestination, + EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, + EmberStatus status); + +/** @brief IAS Zone Cluster Server Pre Attribute Changed + * + * server Pre Attribute Changed + * + * @param endpoint Endpoint that is being initialized + * @param attributeId Attribute to be changed + * @param attributeType Attribute type + * @param size Attribute size + * @param value Attribute value + */ +EmberAfStatus emberAfIasZoneClusterServerPreAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId, + EmberAfAttributeType attributeType, uint8_t size, + uint8_t * value); + +/** @brief IAS Zone Cluster Server Tick + * + * server Tick + * + * @param endpoint Endpoint that is being served + */ +void emberAfIasZoneClusterServerTickCallback(chip::EndpointId endpoint); + +// +// Identify Cluster client +// + +/** @brief Identify Cluster Client Init + * + * Client Init + * + * @param endpoint Endpoint that is being initialized + */ +void emberAfIdentifyClusterClientInitCallback(chip::EndpointId endpoint); + +/** @brief Identify Cluster Client Attribute Changed + * + * Client Attribute Changed + * + * @param endpoint Endpoint that is being initialized + * @param attributeId Attribute that changed + */ +void emberAfIdentifyClusterClientAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId); + +/** @brief Identify Cluster Client Manufacturer Specific Attribute Changed + * + * Client Manufacturer Specific Attribute Changed + * + * @param endpoint Endpoint that is being initialized + * @param attributeId Attribute that changed + * @param manufacturerCode Manufacturer Code of the attribute that changed + */ +void emberAfIdentifyClusterClientManufacturerSpecificAttributeChangedCallback(chip::EndpointId endpoint, + chip::AttributeId attributeId, + uint16_t manufacturerCode); + +/** @brief Identify Cluster Client Message Sent + * + * Client Message Sent + * + * @param type The type of message sent + * @param indexOrDestination The destination or address to which the message was sent + * @param apsFrame The APS frame for the message + * @param msgLen The length of the message + * @param message The message that was sent + * @param status The status of the sent message + */ +void emberAfIdentifyClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint64_t indexOrDestination, + EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, + EmberStatus status); + +/** @brief Identify Cluster Client Pre Attribute Changed + * + * client Pre Attribute Changed + * + * @param endpoint Endpoint that is being initialized + * @param attributeId Attribute to be changed + * @param attributeType Attribute type + * @param size Attribute size + * @param value Attribute value + */ +EmberAfStatus emberAfIdentifyClusterClientPreAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId, + EmberAfAttributeType attributeType, uint8_t size, + uint8_t * value); + +/** @brief Identify Cluster Client Tick + * + * client Tick + * + * @param endpoint Endpoint that is being served + */ +void emberAfIdentifyClusterClientTickCallback(chip::EndpointId endpoint); + +// +// Identify Cluster server +// + +/** @brief Identify Cluster Server Init + * + * Server Init + * + * @param endpoint Endpoint that is being initialized + */ +void emberAfIdentifyClusterServerInitCallback(chip::EndpointId endpoint); + +/** @brief Identify Cluster Server Attribute Changed + * + * Server Attribute Changed + * + * @param endpoint Endpoint that is being initialized + * @param attributeId Attribute that changed + */ +void emberAfIdentifyClusterServerAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId); + +/** @brief Identify Cluster Server Manufacturer Specific Attribute Changed + * + * Server Manufacturer Specific Attribute Changed + * + * @param endpoint Endpoint that is being initialized + * @param attributeId Attribute that changed + * @param manufacturerCode Manufacturer Code of the attribute that changed + */ +void emberAfIdentifyClusterServerManufacturerSpecificAttributeChangedCallback(chip::EndpointId endpoint, + chip::AttributeId attributeId, + uint16_t manufacturerCode); + +/** @brief Identify Cluster Server Message Sent + * + * Server Message Sent + * + * @param type The type of message sent + * @param indexOrDestination The destination or address to which the message was sent + * @param apsFrame The APS frame for the message + * @param msgLen The length of the message + * @param message The message that was sent + * @param status The status of the sent message + */ +void emberAfIdentifyClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint64_t indexOrDestination, + EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, + EmberStatus status); + +/** @brief Identify Cluster Server Pre Attribute Changed + * + * server Pre Attribute Changed + * + * @param endpoint Endpoint that is being initialized + * @param attributeId Attribute to be changed + * @param attributeType Attribute type + * @param size Attribute size + * @param value Attribute value + */ +EmberAfStatus emberAfIdentifyClusterServerPreAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId, + EmberAfAttributeType attributeType, uint8_t size, + uint8_t * value); + +/** @brief Identify Cluster Server Tick + * + * server Tick + * + * @param endpoint Endpoint that is being served + */ +void emberAfIdentifyClusterServerTickCallback(chip::EndpointId endpoint); + +// +// Level Control Cluster client +// + +/** @brief Level Control Cluster Client Init + * + * Client Init + * + * @param endpoint Endpoint that is being initialized + */ +void emberAfLevelControlClusterClientInitCallback(chip::EndpointId endpoint); + +/** @brief Level Control Cluster Client Attribute Changed + * + * Client Attribute Changed + * + * @param endpoint Endpoint that is being initialized + * @param attributeId Attribute that changed + */ +void emberAfLevelControlClusterClientAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId); + +/** @brief Level Control Cluster Client Manufacturer Specific Attribute Changed + * + * Client Manufacturer Specific Attribute Changed + * + * @param endpoint Endpoint that is being initialized + * @param attributeId Attribute that changed + * @param manufacturerCode Manufacturer Code of the attribute that changed + */ +void emberAfLevelControlClusterClientManufacturerSpecificAttributeChangedCallback(chip::EndpointId endpoint, + chip::AttributeId attributeId, + uint16_t manufacturerCode); + +/** @brief Level Control Cluster Client Message Sent + * + * Client Message Sent + * + * @param type The type of message sent + * @param indexOrDestination The destination or address to which the message was sent + * @param apsFrame The APS frame for the message + * @param msgLen The length of the message + * @param message The message that was sent + * @param status The status of the sent message + */ +void emberAfLevelControlClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint64_t indexOrDestination, + EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, + EmberStatus status); + +/** @brief Level Control Cluster Client Pre Attribute Changed + * + * client Pre Attribute Changed + * + * @param endpoint Endpoint that is being initialized + * @param attributeId Attribute to be changed + * @param attributeType Attribute type + * @param size Attribute size + * @param value Attribute value + */ +EmberAfStatus emberAfLevelControlClusterClientPreAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId, + EmberAfAttributeType attributeType, uint8_t size, + uint8_t * value); + +/** @brief Level Control Cluster Client Tick + * + * client Tick + * + * @param endpoint Endpoint that is being served + */ +void emberAfLevelControlClusterClientTickCallback(chip::EndpointId endpoint); + +// +// Level Control Cluster server +// + +/** @brief Level Control Cluster Server Init + * + * Server Init + * + * @param endpoint Endpoint that is being initialized + */ +void emberAfLevelControlClusterServerInitCallback(chip::EndpointId endpoint); + +/** @brief Level Control Cluster Server Attribute Changed + * + * Server Attribute Changed + * + * @param endpoint Endpoint that is being initialized + * @param attributeId Attribute that changed + */ +void emberAfLevelControlClusterServerAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId); + +/** @brief Level Control Cluster Server Manufacturer Specific Attribute Changed + * + * Server Manufacturer Specific Attribute Changed + * + * @param endpoint Endpoint that is being initialized + * @param attributeId Attribute that changed + * @param manufacturerCode Manufacturer Code of the attribute that changed + */ +void emberAfLevelControlClusterServerManufacturerSpecificAttributeChangedCallback(chip::EndpointId endpoint, + chip::AttributeId attributeId, + uint16_t manufacturerCode); + +/** @brief Level Control Cluster Server Message Sent + * + * Server Message Sent + * + * @param type The type of message sent + * @param indexOrDestination The destination or address to which the message was sent + * @param apsFrame The APS frame for the message + * @param msgLen The length of the message + * @param message The message that was sent + * @param status The status of the sent message + */ +void emberAfLevelControlClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint64_t indexOrDestination, + EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, + EmberStatus status); + +/** @brief Level Control Cluster Server Pre Attribute Changed + * + * server Pre Attribute Changed + * + * @param endpoint Endpoint that is being initialized + * @param attributeId Attribute to be changed + * @param attributeType Attribute type + * @param size Attribute size + * @param value Attribute value + */ +EmberAfStatus emberAfLevelControlClusterServerPreAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId, + EmberAfAttributeType attributeType, uint8_t size, + uint8_t * value); + +/** @brief Level Control Cluster Server Tick + * + * server Tick + * + * @param endpoint Endpoint that is being served + */ +void emberAfLevelControlClusterServerTickCallback(chip::EndpointId endpoint); + +// +// On/off Cluster client +// + +/** @brief On/off Cluster Client Init + * + * Client Init + * + * @param endpoint Endpoint that is being initialized + */ +void emberAfOnOffClusterClientInitCallback(chip::EndpointId endpoint); + +/** @brief On/off Cluster Client Attribute Changed + * + * Client Attribute Changed + * + * @param endpoint Endpoint that is being initialized + * @param attributeId Attribute that changed + */ +void emberAfOnOffClusterClientAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId); + +/** @brief On/off Cluster Client Manufacturer Specific Attribute Changed + * + * Client Manufacturer Specific Attribute Changed + * + * @param endpoint Endpoint that is being initialized + * @param attributeId Attribute that changed + * @param manufacturerCode Manufacturer Code of the attribute that changed + */ +void emberAfOnOffClusterClientManufacturerSpecificAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId, + uint16_t manufacturerCode); + +/** @brief On/off Cluster Client Message Sent + * + * Client Message Sent + * + * @param type The type of message sent + * @param indexOrDestination The destination or address to which the message was sent + * @param apsFrame The APS frame for the message + * @param msgLen The length of the message + * @param message The message that was sent + * @param status The status of the sent message + */ +void emberAfOnOffClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint64_t indexOrDestination, + EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, EmberStatus status); + +/** @brief On/off Cluster Client Pre Attribute Changed + * + * client Pre Attribute Changed + * + * @param endpoint Endpoint that is being initialized + * @param attributeId Attribute to be changed + * @param attributeType Attribute type + * @param size Attribute size + * @param value Attribute value + */ +EmberAfStatus emberAfOnOffClusterClientPreAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId, + EmberAfAttributeType attributeType, uint8_t size, + uint8_t * value); + +/** @brief On/off Cluster Client Tick + * + * client Tick + * + * @param endpoint Endpoint that is being served + */ +void emberAfOnOffClusterClientTickCallback(chip::EndpointId endpoint); + +// +// On/off Cluster server +// + +/** @brief On/off Cluster Server Init + * + * Server Init + * + * @param endpoint Endpoint that is being initialized + */ +void emberAfOnOffClusterServerInitCallback(chip::EndpointId endpoint); + +/** @brief On/off Cluster Server Attribute Changed + * + * Server Attribute Changed + * + * @param endpoint Endpoint that is being initialized + * @param attributeId Attribute that changed + */ +void emberAfOnOffClusterServerAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId); + +/** @brief On/off Cluster Server Manufacturer Specific Attribute Changed + * + * Server Manufacturer Specific Attribute Changed + * + * @param endpoint Endpoint that is being initialized + * @param attributeId Attribute that changed + * @param manufacturerCode Manufacturer Code of the attribute that changed + */ +void emberAfOnOffClusterServerManufacturerSpecificAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId, + uint16_t manufacturerCode); + +/** @brief On/off Cluster Server Message Sent + * + * Server Message Sent + * + * @param type The type of message sent + * @param indexOrDestination The destination or address to which the message was sent + * @param apsFrame The APS frame for the message + * @param msgLen The length of the message + * @param message The message that was sent + * @param status The status of the sent message + */ +void emberAfOnOffClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint64_t indexOrDestination, + EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, EmberStatus status); + +/** @brief On/off Cluster Server Pre Attribute Changed + * + * server Pre Attribute Changed + * + * @param endpoint Endpoint that is being initialized + * @param attributeId Attribute to be changed + * @param attributeType Attribute type + * @param size Attribute size + * @param value Attribute value + */ +EmberAfStatus emberAfOnOffClusterServerPreAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId, + EmberAfAttributeType attributeType, uint8_t size, + uint8_t * value); + +/** @brief On/off Cluster Server Tick + * + * server Tick + * + * @param endpoint Endpoint that is being served + */ +void emberAfOnOffClusterServerTickCallback(chip::EndpointId endpoint); + +// +// Scenes Cluster client +// + +/** @brief Scenes Cluster Client Init + * + * Client Init + * + * @param endpoint Endpoint that is being initialized + */ +void emberAfScenesClusterClientInitCallback(chip::EndpointId endpoint); + +/** @brief Scenes Cluster Client Attribute Changed + * + * Client Attribute Changed + * + * @param endpoint Endpoint that is being initialized + * @param attributeId Attribute that changed + */ +void emberAfScenesClusterClientAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId); + +/** @brief Scenes Cluster Client Manufacturer Specific Attribute Changed + * + * Client Manufacturer Specific Attribute Changed + * + * @param endpoint Endpoint that is being initialized + * @param attributeId Attribute that changed + * @param manufacturerCode Manufacturer Code of the attribute that changed + */ +void emberAfScenesClusterClientManufacturerSpecificAttributeChangedCallback(chip::EndpointId endpoint, + chip::AttributeId attributeId, + uint16_t manufacturerCode); + +/** @brief Scenes Cluster Client Message Sent + * + * Client Message Sent + * + * @param type The type of message sent + * @param indexOrDestination The destination or address to which the message was sent + * @param apsFrame The APS frame for the message + * @param msgLen The length of the message + * @param message The message that was sent + * @param status The status of the sent message + */ +void emberAfScenesClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint64_t indexOrDestination, + EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, + EmberStatus status); + +/** @brief Scenes Cluster Client Pre Attribute Changed + * + * client Pre Attribute Changed + * + * @param endpoint Endpoint that is being initialized + * @param attributeId Attribute to be changed + * @param attributeType Attribute type + * @param size Attribute size + * @param value Attribute value + */ +EmberAfStatus emberAfScenesClusterClientPreAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId, + EmberAfAttributeType attributeType, uint8_t size, + uint8_t * value); + +/** @brief Scenes Cluster Client Tick + * + * client Tick + * + * @param endpoint Endpoint that is being served + */ +void emberAfScenesClusterClientTickCallback(chip::EndpointId endpoint); + +// +// Scenes Cluster server +// + +/** @brief Scenes Cluster Server Init + * + * Server Init + * + * @param endpoint Endpoint that is being initialized + */ +void emberAfScenesClusterServerInitCallback(chip::EndpointId endpoint); + +/** @brief Scenes Cluster Server Attribute Changed + * + * Server Attribute Changed + * + * @param endpoint Endpoint that is being initialized + * @param attributeId Attribute that changed + */ +void emberAfScenesClusterServerAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId); + +/** @brief Scenes Cluster Server Manufacturer Specific Attribute Changed + * + * Server Manufacturer Specific Attribute Changed + * + * @param endpoint Endpoint that is being initialized + * @param attributeId Attribute that changed + * @param manufacturerCode Manufacturer Code of the attribute that changed + */ +void emberAfScenesClusterServerManufacturerSpecificAttributeChangedCallback(chip::EndpointId endpoint, + chip::AttributeId attributeId, + uint16_t manufacturerCode); + +/** @brief Scenes Cluster Server Message Sent + * + * Server Message Sent + * + * @param type The type of message sent + * @param indexOrDestination The destination or address to which the message was sent + * @param apsFrame The APS frame for the message + * @param msgLen The length of the message + * @param message The message that was sent + * @param status The status of the sent message + */ +void emberAfScenesClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint64_t indexOrDestination, + EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, + EmberStatus status); + +/** @brief Scenes Cluster Server Pre Attribute Changed + * + * server Pre Attribute Changed + * + * @param endpoint Endpoint that is being initialized + * @param attributeId Attribute to be changed + * @param attributeType Attribute type + * @param size Attribute size + * @param value Attribute value + */ +EmberAfStatus emberAfScenesClusterServerPreAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId, + EmberAfAttributeType attributeType, uint8_t size, + uint8_t * value); + +/** @brief Scenes Cluster Server Tick + * + * server Tick + * + * @param endpoint Endpoint that is being served + */ +void emberAfScenesClusterServerTickCallback(chip::EndpointId endpoint); + +// +// Temperature Measurement Cluster server +// + +/** @brief Temperature Measurement Cluster Server Init + * + * Server Init + * + * @param endpoint Endpoint that is being initialized + */ +void emberAfTemperatureMeasurementClusterServerInitCallback(chip::EndpointId endpoint); + +/** @brief Temperature Measurement Cluster Server Attribute Changed + * + * Server Attribute Changed + * + * @param endpoint Endpoint that is being initialized + * @param attributeId Attribute that changed + */ +void emberAfTemperatureMeasurementClusterServerAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId); + +/** @brief Temperature Measurement Cluster Server Manufacturer Specific Attribute Changed + * + * Server Manufacturer Specific Attribute Changed + * + * @param endpoint Endpoint that is being initialized + * @param attributeId Attribute that changed + * @param manufacturerCode Manufacturer Code of the attribute that changed + */ +void emberAfTemperatureMeasurementClusterServerManufacturerSpecificAttributeChangedCallback(chip::EndpointId endpoint, + chip::AttributeId attributeId, + uint16_t manufacturerCode); + +/** @brief Temperature Measurement Cluster Server Message Sent + * + * Server Message Sent + * + * @param type The type of message sent + * @param indexOrDestination The destination or address to which the message was sent + * @param apsFrame The APS frame for the message + * @param msgLen The length of the message + * @param message The message that was sent + * @param status The status of the sent message + */ +void emberAfTemperatureMeasurementClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint64_t indexOrDestination, + EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, + EmberStatus status); + +/** @brief Temperature Measurement Cluster Server Pre Attribute Changed + * + * server Pre Attribute Changed + * + * @param endpoint Endpoint that is being initialized + * @param attributeId Attribute to be changed + * @param attributeType Attribute type + * @param size Attribute size + * @param value Attribute value + */ +EmberAfStatus emberAfTemperatureMeasurementClusterServerPreAttributeChangedCallback(chip::EndpointId endpoint, + chip::AttributeId attributeId, + EmberAfAttributeType attributeType, + uint8_t size, uint8_t * value); + +/** @brief Temperature Measurement Cluster Server Tick + * + * server Tick + * + * @param endpoint Endpoint that is being served + */ +void emberAfTemperatureMeasurementClusterServerTickCallback(chip::EndpointId endpoint); + +// Cluster Commands Callback + +/** + * @brief Barrier Control Cluster BarrierControlGoToPercent Command callback + * @param percentOpen + */ + +bool emberAfBarrierControlClusterBarrierControlGoToPercentCallback(uint8_t percentOpen); + +/** + * @brief Barrier Control Cluster BarrierControlStop Command callback + */ + +bool emberAfBarrierControlClusterBarrierControlStopCallback(); + +/** + * @brief Basic Cluster ResetToFactoryDefaults Command callback + */ + +bool emberAfBasicClusterResetToFactoryDefaultsCallback(); + +/** + * @brief Color Control Cluster MoveColor Command callback + * @param rateX + * @param rateY + * @param optionsMask + * @param optionsOverride + */ + +bool emberAfColorControlClusterMoveColorCallback(int16_t rateX, int16_t rateY, uint8_t optionsMask, uint8_t optionsOverride); + +/** + * @brief Color Control Cluster MoveColorTemperature Command callback + * @param moveMode + * @param rate + * @param colorTemperatureMinimum + * @param colorTemperatureMaximum + * @param optionsMask + * @param optionsOverride + */ + +bool emberAfColorControlClusterMoveColorTemperatureCallback(uint8_t moveMode, uint16_t rate, uint16_t colorTemperatureMinimum, + uint16_t colorTemperatureMaximum, uint8_t optionsMask, + uint8_t optionsOverride); + +/** + * @brief Color Control Cluster MoveHue Command callback + * @param moveMode + * @param rate + * @param optionsMask + * @param optionsOverride + */ + +bool emberAfColorControlClusterMoveHueCallback(uint8_t moveMode, uint8_t rate, uint8_t optionsMask, uint8_t optionsOverride); + +/** + * @brief Color Control Cluster MoveSaturation Command callback + * @param moveMode + * @param rate + * @param optionsMask + * @param optionsOverride + */ + +bool emberAfColorControlClusterMoveSaturationCallback(uint8_t moveMode, uint8_t rate, uint8_t optionsMask, uint8_t optionsOverride); + +/** + * @brief Color Control Cluster MoveToColor Command callback + * @param colorX + * @param colorY + * @param transitionTime + * @param optionsMask + * @param optionsOverride + */ + +bool emberAfColorControlClusterMoveToColorCallback(uint16_t colorX, uint16_t colorY, uint16_t transitionTime, uint8_t optionsMask, + uint8_t optionsOverride); + +/** + * @brief Color Control Cluster MoveToColorTemperature Command callback + * @param colorTemperature + * @param transitionTime + * @param optionsMask + * @param optionsOverride + */ + +bool emberAfColorControlClusterMoveToColorTemperatureCallback(uint16_t colorTemperature, uint16_t transitionTime, + uint8_t optionsMask, uint8_t optionsOverride); + +/** + * @brief Color Control Cluster MoveToHue Command callback + * @param hue + * @param direction + * @param transitionTime + * @param optionsMask + * @param optionsOverride + */ + +bool emberAfColorControlClusterMoveToHueCallback(uint8_t hue, uint8_t direction, uint16_t transitionTime, uint8_t optionsMask, + uint8_t optionsOverride); + +/** + * @brief Color Control Cluster MoveToHueAndSaturation Command callback + * @param hue + * @param saturation + * @param transitionTime + * @param optionsMask + * @param optionsOverride + */ + +bool emberAfColorControlClusterMoveToHueAndSaturationCallback(uint8_t hue, uint8_t saturation, uint16_t transitionTime, + uint8_t optionsMask, uint8_t optionsOverride); + +/** + * @brief Color Control Cluster MoveToSaturation Command callback + * @param saturation + * @param transitionTime + * @param optionsMask + * @param optionsOverride + */ + +bool emberAfColorControlClusterMoveToSaturationCallback(uint8_t saturation, uint16_t transitionTime, uint8_t optionsMask, + uint8_t optionsOverride); + +/** + * @brief Color Control Cluster StepColor Command callback + * @param stepX + * @param stepY + * @param transitionTime + * @param optionsMask + * @param optionsOverride + */ + +bool emberAfColorControlClusterStepColorCallback(int16_t stepX, int16_t stepY, uint16_t transitionTime, uint8_t optionsMask, + uint8_t optionsOverride); + +/** + * @brief Color Control Cluster StepColorTemperature Command callback + * @param stepMode + * @param stepSize + * @param transitionTime + * @param colorTemperatureMinimum + * @param colorTemperatureMaximum + * @param optionsMask + * @param optionsOverride + */ + +bool emberAfColorControlClusterStepColorTemperatureCallback(uint8_t stepMode, uint16_t stepSize, uint16_t transitionTime, + uint16_t colorTemperatureMinimum, uint16_t colorTemperatureMaximum, + uint8_t optionsMask, uint8_t optionsOverride); + +/** + * @brief Color Control Cluster StepHue Command callback + * @param stepMode + * @param stepSize + * @param transitionTime + * @param optionsMask + * @param optionsOverride + */ + +bool emberAfColorControlClusterStepHueCallback(uint8_t stepMode, uint8_t stepSize, uint8_t transitionTime, uint8_t optionsMask, + uint8_t optionsOverride); + +/** + * @brief Color Control Cluster StepSaturation Command callback + * @param stepMode + * @param stepSize + * @param transitionTime + * @param optionsMask + * @param optionsOverride + */ + +bool emberAfColorControlClusterStepSaturationCallback(uint8_t stepMode, uint8_t stepSize, uint8_t transitionTime, + uint8_t optionsMask, uint8_t optionsOverride); + +/** + * @brief Color Control Cluster StopMoveStep Command callback + * @param optionsMask + * @param optionsOverride + */ + +bool emberAfColorControlClusterStopMoveStepCallback(uint8_t optionsMask, uint8_t optionsOverride); + +/** + * @brief Door Lock Cluster LockDoorResponse Command callback + * @param status + */ + +bool emberAfDoorLockClusterLockDoorResponseCallback(uint8_t status); + +/** + * @brief Door Lock Cluster UnlockDoorResponse Command callback + * @param status + */ + +bool emberAfDoorLockClusterUnlockDoorResponseCallback(uint8_t status); + +/** + * @brief Door Lock Cluster ClearAllPins Command callback + */ + +bool emberAfDoorLockClusterClearAllPinsCallback(); + +/** + * @brief Door Lock Cluster ClearAllRfids Command callback + */ + +bool emberAfDoorLockClusterClearAllRfidsCallback(); + +/** + * @brief Door Lock Cluster ClearHolidaySchedule Command callback + * @param scheduleId + */ + +bool emberAfDoorLockClusterClearHolidayScheduleCallback(uint8_t scheduleId); + +/** + * @brief Door Lock Cluster ClearPin Command callback + * @param userId + */ + +bool emberAfDoorLockClusterClearPinCallback(uint16_t userId); + +/** + * @brief Door Lock Cluster ClearRfid Command callback + * @param userId + */ + +bool emberAfDoorLockClusterClearRfidCallback(uint16_t userId); + +/** + * @brief Door Lock Cluster ClearWeekdaySchedule Command callback + * @param scheduleId + * @param userId + */ + +bool emberAfDoorLockClusterClearWeekdayScheduleCallback(uint8_t scheduleId, uint16_t userId); + +/** + * @brief Door Lock Cluster ClearYeardaySchedule Command callback + * @param scheduleId + * @param userId + */ + +bool emberAfDoorLockClusterClearYeardayScheduleCallback(uint8_t scheduleId, uint16_t userId); + +/** + * @brief Door Lock Cluster GetHolidaySchedule Command callback + * @param scheduleId + */ + +bool emberAfDoorLockClusterGetHolidayScheduleCallback(uint8_t scheduleId); + +/** + * @brief Door Lock Cluster GetLogRecord Command callback + * @param logIndex + */ + +bool emberAfDoorLockClusterGetLogRecordCallback(uint16_t logIndex); + +/** + * @brief Door Lock Cluster GetPin Command callback + * @param userId + */ + +bool emberAfDoorLockClusterGetPinCallback(uint16_t userId); + +/** + * @brief Door Lock Cluster GetRfid Command callback + * @param userId + */ + +bool emberAfDoorLockClusterGetRfidCallback(uint16_t userId); + +/** + * @brief Door Lock Cluster GetUserType Command callback + * @param userId + */ + +bool emberAfDoorLockClusterGetUserTypeCallback(uint16_t userId); + +/** + * @brief Door Lock Cluster GetWeekdaySchedule Command callback + * @param scheduleId + * @param userId + */ + +bool emberAfDoorLockClusterGetWeekdayScheduleCallback(uint8_t scheduleId, uint16_t userId); + +/** + * @brief Door Lock Cluster GetYeardaySchedule Command callback + * @param scheduleId + * @param userId + */ + +bool emberAfDoorLockClusterGetYeardayScheduleCallback(uint8_t scheduleId, uint16_t userId); + +/** + * @brief Door Lock Cluster LockDoor Command callback + * @param pin + */ + +bool emberAfDoorLockClusterLockDoorCallback(uint8_t * PIN); + +/** + * @brief Door Lock Cluster SetHolidaySchedule Command callback + * @param scheduleId + * @param localStartTime + * @param localEndTime + * @param operatingModeDuringHoliday + */ + +bool emberAfDoorLockClusterSetHolidayScheduleCallback(uint8_t scheduleId, uint32_t localStartTime, uint32_t localEndTime, + uint8_t operatingModeDuringHoliday); + +/** + * @brief Door Lock Cluster SetPin Command callback + * @param userId + * @param userStatus + * @param userType + * @param pin + */ + +bool emberAfDoorLockClusterSetPinCallback(uint16_t userId, uint8_t userStatus, uint8_t userType, uint8_t * pin); + +/** + * @brief Door Lock Cluster SetRfid Command callback + * @param userId + * @param userStatus + * @param userType + * @param id + */ + +bool emberAfDoorLockClusterSetRfidCallback(uint16_t userId, uint8_t userStatus, uint8_t userType, uint8_t * id); + +/** + * @brief Door Lock Cluster SetUserType Command callback + * @param userId + * @param userType + */ + +bool emberAfDoorLockClusterSetUserTypeCallback(uint16_t userId, uint8_t userType); + +/** + * @brief Door Lock Cluster SetWeekdaySchedule Command callback + * @param scheduleId + * @param userId + * @param daysMask + * @param startHour + * @param startMinute + * @param endHour + * @param endMinute + */ + +bool emberAfDoorLockClusterSetWeekdayScheduleCallback(uint8_t scheduleId, uint16_t userId, uint8_t daysMask, uint8_t startHour, + uint8_t startMinute, uint8_t endHour, uint8_t endMinute); + +/** + * @brief Door Lock Cluster SetYeardaySchedule Command callback + * @param scheduleId + * @param userId + * @param localStartTime + * @param localEndTime + */ + +bool emberAfDoorLockClusterSetYeardayScheduleCallback(uint8_t scheduleId, uint16_t userId, uint32_t localStartTime, + uint32_t localEndTime); + +/** + * @brief Door Lock Cluster UnlockDoor Command callback + * @param pin + */ + +bool emberAfDoorLockClusterUnlockDoorCallback(uint8_t * PIN); + +/** + * @brief Door Lock Cluster UnlockWithTimeout Command callback + * @param timeoutInSeconds + * @param pin + */ + +bool emberAfDoorLockClusterUnlockWithTimeoutCallback(uint16_t timeoutInSeconds, uint8_t * pin); + +/** + * @brief Groups Cluster AddGroupResponse Command callback + * @param status + * @param groupId + */ + +bool emberAfGroupsClusterAddGroupResponseCallback(uint8_t status, uint16_t groupId); + +/** + * @brief Groups Cluster GetGroupMembershipResponse Command callback + * @param capacity + * @param groupCount + * @param groupList + */ + +bool emberAfGroupsClusterGetGroupMembershipResponseCallback(uint8_t capacity, uint8_t groupCount, + /* TYPE WARNING: array array defaults to */ uint8_t * groupList); + +/** + * @brief Groups Cluster RemoveGroupResponse Command callback + * @param status + * @param groupId + */ + +bool emberAfGroupsClusterRemoveGroupResponseCallback(uint8_t status, uint16_t groupId); + +/** + * @brief Groups Cluster ViewGroupResponse Command callback + * @param status + * @param groupId + * @param groupName + */ + +bool emberAfGroupsClusterViewGroupResponseCallback(uint8_t status, uint16_t groupId, uint8_t * groupName); + +/** + * @brief Groups Cluster AddGroup Command callback + * @param groupId + * @param groupName + */ + +bool emberAfGroupsClusterAddGroupCallback(uint16_t groupId, uint8_t * groupName); + +/** + * @brief Groups Cluster AddGroupIfIdentifying Command callback + * @param groupId + * @param groupName + */ + +bool emberAfGroupsClusterAddGroupIfIdentifyingCallback(uint16_t groupId, uint8_t * groupName); + +/** + * @brief Groups Cluster GetGroupMembership Command callback + * @param groupCount + * @param groupList + */ + +bool emberAfGroupsClusterGetGroupMembershipCallback(uint8_t groupCount, + /* TYPE WARNING: array array defaults to */ uint8_t * groupList); + +/** + * @brief Groups Cluster RemoveAllGroups Command callback + */ + +bool emberAfGroupsClusterRemoveAllGroupsCallback(); + +/** + * @brief Groups Cluster RemoveGroup Command callback + * @param groupId + */ + +bool emberAfGroupsClusterRemoveGroupCallback(uint16_t groupId); + +/** + * @brief Groups Cluster ViewGroup Command callback + * @param groupId + */ + +bool emberAfGroupsClusterViewGroupCallback(uint16_t groupId); + +/** + * @brief IAS Zone Cluster ZoneEnrollResponse Command callback + * @param enrollResponseCode + * @param zoneId + */ + +bool emberAfIasZoneClusterZoneEnrollResponseCallback(uint8_t enrollResponseCode, uint8_t zoneId); + +/** + * @brief Identify Cluster IdentifyQueryResponse Command callback + * @param timeout + */ + +bool emberAfIdentifyClusterIdentifyQueryResponseCallback(uint16_t timeout); + +/** + * @brief Identify Cluster Identify Command callback + * @param identifyTime + */ + +bool emberAfIdentifyClusterIdentifyCallback(uint16_t identifyTime); + +/** + * @brief Identify Cluster IdentifyQuery Command callback + */ + +bool emberAfIdentifyClusterIdentifyQueryCallback(); + +/** + * @brief Level Control Cluster Move Command callback + * @param moveMode + * @param rate + * @param optionMask + * @param optionOverride + */ + +bool emberAfLevelControlClusterMoveCallback(uint8_t moveMode, uint8_t rate, uint8_t optionMask, uint8_t optionOverride); + +/** + * @brief Level Control Cluster MoveToLevel Command callback + * @param level + * @param transitionTime + * @param optionMask + * @param optionOverride + */ + +bool emberAfLevelControlClusterMoveToLevelCallback(uint8_t level, uint16_t transitionTime, uint8_t optionMask, + uint8_t optionOverride); + +/** + * @brief Level Control Cluster MoveToLevelWithOnOff Command callback + * @param level + * @param transitionTime + */ + +bool emberAfLevelControlClusterMoveToLevelWithOnOffCallback(uint8_t level, uint16_t transitionTime); + +/** + * @brief Level Control Cluster MoveWithOnOff Command callback + * @param moveMode + * @param rate + */ + +bool emberAfLevelControlClusterMoveWithOnOffCallback(uint8_t moveMode, uint8_t rate); + +/** + * @brief Level Control Cluster Step Command callback + * @param stepMode + * @param stepSize + * @param transitionTime + * @param optionMask + * @param optionOverride + */ + +bool emberAfLevelControlClusterStepCallback(uint8_t stepMode, uint8_t stepSize, uint16_t transitionTime, uint8_t optionMask, + uint8_t optionOverride); + +/** + * @brief Level Control Cluster StepWithOnOff Command callback + * @param stepMode + * @param stepSize + * @param transitionTime + */ + +bool emberAfLevelControlClusterStepWithOnOffCallback(uint8_t stepMode, uint8_t stepSize, uint16_t transitionTime); + +/** + * @brief Level Control Cluster Stop Command callback + * @param optionMask + * @param optionOverride + */ + +bool emberAfLevelControlClusterStopCallback(uint8_t optionMask, uint8_t optionOverride); + +/** + * @brief Level Control Cluster StopWithOnOff Command callback + */ + +bool emberAfLevelControlClusterStopWithOnOffCallback(); + +/** + * @brief On/off Cluster Off Command callback + */ + +bool emberAfOnOffClusterOffCallback(); + +/** + * @brief On/off Cluster On Command callback + */ + +bool emberAfOnOffClusterOnCallback(); + +/** + * @brief On/off Cluster Toggle Command callback + */ + +bool emberAfOnOffClusterToggleCallback(); + +/** + * @brief Scenes Cluster AddSceneResponse Command callback + * @param status + * @param groupId + * @param sceneId + */ + +bool emberAfScenesClusterAddSceneResponseCallback(uint8_t status, uint16_t groupId, uint8_t sceneId); + +/** + * @brief Scenes Cluster GetSceneMembershipResponse Command callback + * @param status + * @param capacity + * @param groupId + * @param sceneCount + * @param sceneList + */ + +bool emberAfScenesClusterGetSceneMembershipResponseCallback(uint8_t status, uint8_t capacity, uint16_t groupId, uint8_t sceneCount, + /* TYPE WARNING: array array defaults to */ uint8_t * sceneList); + +/** + * @brief Scenes Cluster RemoveAllScenesResponse Command callback + * @param status + * @param groupId + */ + +bool emberAfScenesClusterRemoveAllScenesResponseCallback(uint8_t status, uint16_t groupId); + +/** + * @brief Scenes Cluster RemoveSceneResponse Command callback + * @param status + * @param groupId + * @param sceneId + */ + +bool emberAfScenesClusterRemoveSceneResponseCallback(uint8_t status, uint16_t groupId, uint8_t sceneId); + +/** + * @brief Scenes Cluster StoreSceneResponse Command callback + * @param status + * @param groupId + * @param sceneId + */ + +bool emberAfScenesClusterStoreSceneResponseCallback(uint8_t status, uint16_t groupId, uint8_t sceneId); + +/** + * @brief Scenes Cluster ViewSceneResponse Command callback + * @param status + * @param groupId + * @param sceneId + * @param transitionTime + * @param sceneName + * @param extensionFieldSets + */ + +bool emberAfScenesClusterViewSceneResponseCallback(uint8_t status, uint16_t groupId, uint8_t sceneId, uint16_t transitionTime, + uint8_t * sceneName, + /* TYPE WARNING: array array defaults to */ uint8_t * extensionFieldSets); + +/** + * @brief Scenes Cluster AddScene Command callback + * @param groupId + * @param sceneId + * @param transitionTime + * @param sceneName + * @param extensionFieldSets + */ + +bool emberAfScenesClusterAddSceneCallback(uint16_t groupId, uint8_t sceneId, uint16_t transitionTime, uint8_t * sceneName, + /* TYPE WARNING: array array defaults to */ uint8_t * extensionFieldSets); + +/** + * @brief Scenes Cluster GetSceneMembership Command callback + * @param groupId + */ + +bool emberAfScenesClusterGetSceneMembershipCallback(uint16_t groupId); + +/** + * @brief Scenes Cluster RecallScene Command callback + * @param groupId + * @param sceneId + * @param transitionTime + */ + +bool emberAfScenesClusterRecallSceneCallback(uint16_t groupId, uint8_t sceneId, uint16_t transitionTime); + +/** + * @brief Scenes Cluster RemoveAllScenes Command callback + * @param groupId + */ + +bool emberAfScenesClusterRemoveAllScenesCallback(uint16_t groupId); + +/** + * @brief Scenes Cluster RemoveScene Command callback + * @param groupId + * @param sceneId + */ + +bool emberAfScenesClusterRemoveSceneCallback(uint16_t groupId, uint8_t sceneId); + +/** + * @brief Scenes Cluster StoreScene Command callback + * @param groupId + * @param sceneId + */ + +bool emberAfScenesClusterStoreSceneCallback(uint16_t groupId, uint8_t sceneId); + +/** + * @brief Scenes Cluster ViewScene Command callback + * @param groupId + * @param sceneId + */ + +bool emberAfScenesClusterViewSceneCallback(uint16_t groupId, uint8_t sceneId); + +// +// Non-Cluster Related Callbacks +// + +/** @brief Add To Current App Tasks + * + * This function is only useful to sleepy end devices. This function will note + * the passed item as part of a set of tasks the application has outstanding + * (e.g. message sent requiring APS acknwoledgement). This will affect how the + * application behaves with regard to sleeping and polling. Until the + * outstanding task is completed, the device may poll more frequently and sleep + * less often. + * + * @param tasks Ver.: always + */ +void emberAfAddToCurrentAppTasksCallback(EmberAfApplicationTask tasks); + +/** @brief Remove From Current App Tasks + * + * This function is only useful to sleepy end devices. This function will + * remove the passed item from the set of tasks the application has outstanding + * (e.g. message sent requiring APS acknwoledgement). This will affect how the + * application behaves with regard to sleeping and polling. Removing the item + * from the list of outstanding tasks may allow the device to sleep longer and + * poll less frequently. If there are other outstanding tasks the system may + * still have to stay away and poll more often. + * + * @param tasks Ver.: always + */ +void emberAfRemoveFromCurrentAppTasksCallback(EmberAfApplicationTask tasks); + +/** @brief Allow Network Write Attribute + * + * This function is called by the application framework before it writes an + * attribute in response to a write attribute request from an external device. + * The value passed into this callback is the value to which the attribute is to + * be set by the framework. + Example: In mirroring simple metering data + * on an Energy Services Interface (ESI) (formerly called Energy Service Portal + * (ESP) in SE 1.0).), a mirrored simple meter needs to write read-only + * attributes on its mirror. The-meter-mirror sample application, located in + * app/framework/sample-apps, uses this callback to allow the mirrored device to + * write simple metering attributes on the mirror regardless of the fact that + * most simple metering attributes are defined as read-only by the ZigBee + * specification. + Note: The ZCL specification does not (as of this + * writing) specify any permission-level security for writing writeable + * attributes. As far as the ZCL specification is concerned, if an attribute is + * writeable, any device that has a link key for the device should be able to + * write that attribute. Furthermore if an attribute is read only, it should not + * be written over the air. Thus, if you implement permissions for writing + * attributes as a feature, you MAY be operating outside the specification. This + * is unlikely to be a problem for writing read-only attributes, but it may be a + * problem for attributes that are writeable according to the specification but + * restricted by the application implementing this callback. + * + * @param endpoint Ver.: always + * @param clusterId Ver.: always + * @param attributeId Ver.: always + * @param mask Ver.: always + * @param manufacturerCode Ver.: always + * @param value Ver.: always + * @param type Ver.: always + */ +EmberAfAttributeWritePermission emberAfAllowNetworkWriteAttributeCallback(chip::EndpointId endpoint, chip::ClusterId clusterId, + chip::AttributeId attributeId, uint8_t mask, + uint16_t manufacturerCode, uint8_t * value, uint8_t type); + +/** @brief Attribute Read Access + * + * This function is called whenever the Application Framework needs to check + * access permission for an attribute read. + * + * @param endpoint Ver.: always + * @param clusterId Ver.: always + * @param manufacturerCode Ver.: always + * @param attributeId Ver.: always + */ +bool emberAfAttributeReadAccessCallback(chip::EndpointId endpoint, chip::ClusterId clusterId, uint16_t manufacturerCode, + chip::AttributeId attributeId); + +/** @brief Attribute Write Access + * + * This function is called whenever the Application Framework needs to check + * access permission for an attribute write. + * + * @param endpoint Ver.: always + * @param clusterId Ver.: always + * @param manufacturerCode Ver.: always + * @param attributeId Ver.: always + */ +bool emberAfAttributeWriteAccessCallback(chip::EndpointId endpoint, chip::ClusterId clusterId, uint16_t manufacturerCode, + chip::AttributeId attributeId); + +/** @brief Default Response + * + * This function is called by the application framework when a Default Response + * command is received from an external device. The application should return + * true if the message was processed or false if it was not. + * + * @param clusterId The cluster identifier of this response. Ver.: always + * @param commandId The command identifier to which this is a response. Ver.: + * always + * @param status Specifies either SUCCESS or the nature of the error that was + * detected in the received command. Ver.: always + */ +bool emberAfDefaultResponseCallback(chip::ClusterId clusterId, chip::CommandId commandId, EmberAfStatus status); + +/** @brief Discover Attributes Response + * + * This function is called by the application framework when a Discover + * Attributes Response or Discover Attributes Extended Response command is + * received from an external device. The Discover Attributes Response command + * contains a bool indicating if discovery is complete and a list of zero or + * more attribute identifier/type records. The final argument indicates whether + * the response is in the extended format or not. The application should return + * true if the message was processed or false if it was not. + * + * @param clusterId The cluster identifier of this response. Ver.: always + * @param discoveryComplete Indicates whether there are more attributes to be + * discovered. true if there are no more attributes to be discovered. Ver.: + * always + * @param buffer Buffer containing the list of attribute identifier/type + * records. Ver.: always + * @param bufLen The length in bytes of the list. Ver.: always + * @param extended Indicates whether the response is in the extended format or + * not. Ver.: always + */ +bool emberAfDiscoverAttributesResponseCallback(chip::ClusterId clusterId, bool discoveryComplete, uint8_t * buffer, uint16_t bufLen, + bool extended); + +/** @brief Discover Commands Generated Response + * + * This function is called by the framework when Discover Commands Generated + * Response is received. + * + * @param clusterId The cluster identifier of this response. Ver.: always + * @param manufacturerCode Manufacturer code Ver.: always + * @param discoveryComplete Indicates whether there are more commands to be + * discovered. Ver.: always + * @param commandIds Buffer containing the list of command identifiers. Ver.: + * always + * @param commandIdCount The length of bytes of the list, whish is the same as + * the number of identifiers. Ver.: always + */ +bool emberAfDiscoverCommandsGeneratedResponseCallback(chip::ClusterId clusterId, uint16_t manufacturerCode, bool discoveryComplete, + chip::CommandId * commandIds, uint16_t commandIdCount); + +/** @brief Discover Commands Received Response + * + * This function is called by the framework when Discover Commands Received + * Response is received. + * + * @param clusterId The cluster identifier of this response. Ver.: always + * @param manufacturerCode Manufacturer code Ver.: always + * @param discoveryComplete Indicates whether there are more commands to be + * discovered. Ver.: always + * @param commandIds Buffer containing the list of command identifiers. Ver.: + * always + * @param commandIdCount The length of bytes of the list, whish is the same as + * the number of identifiers. Ver.: always + */ +bool emberAfDiscoverCommandsReceivedResponseCallback(chip::ClusterId clusterId, uint16_t manufacturerCode, bool discoveryComplete, + chip::CommandId * commandIds, uint16_t commandIdCount); + +/** @brief Pre Command Received + * + * This callback is the second in the Application Framework's message processing + * chain. At this point in the processing of incoming over-the-air messages, the + * application has determined that the incoming message is a ZCL command. It + * parses enough of the message to populate an EmberAfClusterCommand struct. The + * Application Framework defines this struct value in a local scope to the + * command processing but also makes it available through a global pointer + * called emberAfCurrentCommand, in app/framework/util/util.c. When command + * processing is complete, this pointer is cleared. + * + * @param cmd Ver.: always + */ +bool emberAfPreCommandReceivedCallback(EmberAfClusterCommand * cmd); + +/** @brief Pre Message Send + * + * This function is called by the framework when it is about to pass a message + * to the stack primitives for sending. This message may or may not be ZCL, + * ZDO, or some other protocol. This is called prior to + any ZigBee + * fragmentation that may be done. If the function returns true it is assumed + * the callback has consumed and processed the message. The callback must also + * set the EmberStatus status code to be passed back to the caller. The + * framework will do no further processing on the message. + If the + * function returns false then it is assumed that the callback has not processed + * the mesasge and the framework will continue to process accordingly. + * + * @param messageStruct The structure containing the parameters of the APS + * message to be sent. Ver.: always + * @param status A pointer to the status code value that will be returned to the + * caller. Ver.: always + */ +bool emberAfPreMessageSendCallback(EmberAfMessageStruct * messageStruct, EmberStatus * status); + +/** @brief Message Sent + * + * This function is called by the application framework from the message sent + * handler, when it is informed by the stack regarding the message sent status. + * All of the values passed to the emberMessageSentHandler are passed on to this + * callback. This provides an opportunity for the application to verify that its + * message has been sent successfully and take the appropriate action. This + * callback should return a bool value of true or false. A value of true + * indicates that the message sent notification has been handled and should not + * be handled by the application framework. + * + * @param type Ver.: always + * @param indexOrDestination Ver.: always + * @param apsFrame Ver.: always + * @param msgLen Ver.: always + * @param message Ver.: always + * @param status Ver.: always + */ +bool emberAfMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, EmberApsFrame * apsFrame, + uint16_t msgLen, uint8_t * message, EmberStatus status); + +/** @brief Pre Attribute Change + * + * This function is called by the application framework before it changes an + * attribute value. The value passed into this callback is the value to which + * the attribute is to be set by the framework. The application should return + * ::EMBER_ZCL_STATUS_SUCCESS to permit the change or any other ::EmberAfStatus + * to reject it. + * + * @param endpoint Ver.: always + * @param clusterId Ver.: always + * @param attributeId Ver.: always + * @param mask Ver.: always + * @param manufacturerCode Ver.: always + * @param type Ver.: always + * @param size Ver.: always + * @param value Ver.: always + */ +EmberAfStatus emberAfPreAttributeChangeCallback(chip::EndpointId endpoint, chip::ClusterId clusterId, chip::AttributeId attributeId, + uint8_t mask, uint16_t manufacturerCode, uint8_t type, uint8_t size, + uint8_t * value); + +/** @brief Post Attribute Change + * + * This function is called by the application framework after it changes an + * attribute value. The value passed into this callback is the value to which + * the attribute was set by the framework. + * + * @param endpoint Ver.: always + * @param clusterId Ver.: always + * @param attributeId Ver.: always + * @param mask Ver.: always + * @param manufacturerCode Ver.: always + * @param type Ver.: always + * @param size Ver.: always + * @param value Ver.: always + */ +void emberAfPostAttributeChangeCallback(chip::EndpointId endpoint, chip::ClusterId clusterId, chip::AttributeId attributeId, + uint8_t mask, uint16_t manufacturerCode, uint8_t type, uint8_t size, uint8_t * value); + +/** @brief Read Attributes Response + * + * This function is called by the application framework when a Read Attributes + * Response command is received from an external device. The application should + * return true if the message was processed or false if it was not. + * + * @param clusterId The cluster identifier of this response. Ver.: always + * @param buffer Buffer containing the list of read attribute status records. + * Ver.: always + * @param bufLen The length in bytes of the list. Ver.: always + */ +bool emberAfReadAttributesResponseCallback(chip::ClusterId clusterId, uint8_t * buffer, uint16_t bufLen); + +/** @brief External Attribute Read + * + * Like emberAfExternalAttributeWriteCallback above, this function is called + * when the framework needs to read an attribute that is not stored within the + * Application Framework's data structures. + All of the important + * information about the attribute itself is passed as a pointer to an + * EmberAfAttributeMetadata struct, which is stored within the application and + * used to manage the attribute. A complete description of the + * EmberAfAttributeMetadata struct is provided in + * app/framework/include/af-types.h + This function assumes that the + * application is able to read the attribute, write it into the passed buffer, + * and return immediately. Any attributes that require a state machine for + * reading and writing are not really candidates for externalization at the + * present time. The Application Framework does not currently include a state + * machine for reading or writing attributes that must take place across a + * series of application ticks. Attributes that cannot be read in a timely + * manner should be stored within the Application Framework and updated + * occasionally by the application code from within the + * emberAfMainTickCallback. + If the application was successfully able to + * read the attribute and write it into the passed buffer, it should return a + * value of EMBER_ZCL_STATUS_SUCCESS. Ensure that the size of the externally + * managed attribute value is smaller than what the buffer can hold. In the case + * of a buffer overflow throw an appropriate error such as + * EMBER_ZCL_STATUS_INSUFFICIENT_SPACE. Any other return value indicates the + * application was not able to read the attribute. + * + * @param endpoint Ver.: always + * @param clusterId Ver.: always + * @param attributeMetadata Ver.: always + * @param manufacturerCode Ver.: always + * @param buffer Ver.: always + * @param maxReadLength Ver.: always + */ +EmberAfStatus emberAfExternalAttributeReadCallback(chip::EndpointId endpoint, chip::ClusterId clusterId, + EmberAfAttributeMetadata * attributeMetadata, uint16_t manufacturerCode, + uint8_t * buffer, uint16_t maxReadLength); + +/** @brief Write Attributes Response + * + * This function is called by the application framework when a Write Attributes + * Response command is received from an external device. The application should + * return true if the message was processed or false if it was not. + * + * @param clusterId The cluster identifier of this response. Ver.: always + * @param buffer Buffer containing the list of write attribute status records. + * Ver.: always + * @param bufLen The length in bytes of the list. Ver.: always + */ +bool emberAfWriteAttributesResponseCallback(chip::ClusterId clusterId, uint8_t * buffer, uint16_t bufLen); + +/** @brief External Attribute Write + * + * This function is called whenever the Application Framework needs to write an + * attribute which is not stored within the data structures of the Application + * Framework itself. One of the new features in Version 2 is the ability to + * store attributes outside the Framework. This is particularly useful for + * attributes that do not need to be stored because they can be read off the + * hardware when they are needed, or are stored in some central location used by + * many modules within the system. In this case, you can indicate that the + * attribute is stored externally. When the framework needs to write an external + * attribute, it makes a call to this callback. + This callback is very + * useful for host micros which need to store attributes in persistent memory. + * Because each host micro (used with an Ember NCP) has its own type of + * persistent memory storage, the Application Framework does not include the + * ability to mark attributes as stored in flash the way that it does for Ember + * SoCs like the EM35x. On a host micro, any attributes that need to be stored + * in persistent memory should be marked as external and accessed through the + * external read and write callbacks. Any host code associated with the + * persistent storage should be implemented within this callback. + All of + * the important information about the attribute itself is passed as a pointer + * to an EmberAfAttributeMetadata struct, which is stored within the application + * and used to manage the attribute. A complete description of the + * EmberAfAttributeMetadata struct is provided in + * app/framework/include/af-types.h. + This function assumes that the + * application is able to write the attribute and return immediately. Any + * attributes that require a state machine for reading and writing are not + * candidates for externalization at the present time. The Application Framework + * does not currently include a state machine for reading or writing attributes + * that must take place across a series of application ticks. Attributes that + * cannot be written immediately should be stored within the Application + * Framework and updated occasionally by the application code from within the + * emberAfMainTickCallback. + If the application was successfully able to + * write the attribute, it returns a value of EMBER_ZCL_STATUS_SUCCESS. Any + * other return value indicates the application was not able to write the + * attribute. + * + * @param endpoint Ver.: always + * @param clusterId Ver.: always + * @param attributeMetadata Ver.: always + * @param manufacturerCode Ver.: always + * @param buffer Ver.: always + */ +EmberAfStatus emberAfExternalAttributeWriteCallback(chip::EndpointId endpoint, chip::ClusterId clusterId, + EmberAfAttributeMetadata * attributeMetadata, uint16_t manufacturerCode, + uint8_t * buffer); + +/** @brief Report Attributes + * + * This function is called by the application framework when a Report Attributes + * command is received from an external device. The application should return + * true if the message was processed or false if it was not. + * + * @param clusterId The cluster identifier of this command. Ver.: always + * @param buffer Buffer containing the list of attribute report records. Ver.: + * always + * @param bufLen The length in bytes of the list. Ver.: always + */ +bool emberAfReportAttributesCallback(chip::ClusterId clusterId, uint8_t * buffer, uint16_t bufLen); + +/** @brief Get Current Time + * + * This callback is called when device attempts to get current time from the + * hardware. If this device has means to retrieve exact time, then this method + * should implement it. If the callback can't provide the exact time it should + * return 0 to indicate failure. Default action is to return 0, which indicates + * that device does not have access to real time. + * + */ +uint32_t emberAfGetCurrentTimeCallback(); + +/** @brief Get Endpoint Info + * + * This function is a callback to an application implemented endpoint that + * operates outside the normal application framework. When the framework wishes + * to perform operations with that endpoint it uses this callback to retrieve + * the endpoint's information. If the endpoint exists and the application can + * provide data then true shall be returned. Otherwise the callback must return + * false. + * + * @param endpoint The endpoint to retrieve data for. Ver.: always + * @param returnNetworkIndex The index corresponding to the ZigBee network the + * endpoint belongs to. If not using a multi-network device, 0 must be + * returned. Otherwise on a multi-network device the stack will switch to this + * network before sending the message. Ver.: always + * @param returnEndpointInfo A pointer to a data struct that will be written + * with information about the endpoint. Ver.: always + */ +bool emberAfGetEndpointInfoCallback(chip::EndpointId endpoint, uint8_t * returnNetworkIndex, + EmberAfEndpointInfoStruct * returnEndpointInfo); + +/** @brief Get Source Route Overhead + * + * This function is called by the framework to determine the overhead required + * in the network frame for source routing to a particular destination. + * + * @param destination The node id of the destination Ver.: always + */ +uint8_t emberAfGetSourceRouteOverheadCallback(EmberNodeId destination); + +/** @brief Registration Abort + * + * This callback is called when the device should abort the registration + * process. + * + */ +void emberAfRegistrationAbortCallback(); + +/** @brief Interpan Send Message + * + * This function will send a raw MAC message with interpan frame format using + * the passed parameters. + * + * @param header Interpan header info Ver.: always + * @param messageLength The length of the message received or to send Ver.: + * always + * @param message The message data received or to send. Ver.: always + */ +EmberStatus emberAfInterpanSendMessageCallback(EmberAfInterpanHeader * header, uint16_t messageLength, uint8_t * message); + +/** @brief Start Move + * + * This function is called to initiate the process for a device to move (rejoin) + * to a new parent. + * + */ +bool emberAfStartMoveCallback(); diff --git a/examples/all-clusters-app/all-clusters-common/gen/client-command-macro.h b/examples/all-clusters-app/all-clusters-common/gen/client-command-macro.h new file mode 100644 index 00000000000000..f1b0c4633a2b14 --- /dev/null +++ b/examples/all-clusters-app/all-clusters-common/gen/client-command-macro.h @@ -0,0 +1,6165 @@ + +/* + * + * 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. + */ + +// Prevent multiple inclusion +#pragma once + +/** @brief Command description for ReadAttributes + * + * Command: ReadAttributes + * @param attributeIds ATTRIBUTE_ID [] + * @param attributeIdsLen int + */ +#define emberAfFillCommandGlobalReadAttributes(clusterId, attributeIds, attributeIdsLen) \ + emberAfFillExternalBuffer(mask, clusterId, ZCL_READ_ATTRIBUTES_COMMAND_ID, "b", attributeIds, attributeIdsLen); + +/** @brief Command description for ReadAttributesResponse + * + * Command: ReadAttributesResponse + * @param readAttributeStatusRecords ReadAttributeStatusRecord [] + * @param readAttributeStatusRecordsLen int + */ +#define emberAfFillCommandGlobalReadAttributesResponse(clusterId, readAttributeStatusRecords, readAttributeStatusRecordsLen) \ + emberAfFillExternalBuffer(mask, clusterId, ZCL_READ_ATTRIBUTES_RESPONSE_COMMAND_ID, "b", readAttributeStatusRecords, \ + readAttributeStatusRecordsLen); + +/** @brief Command description for WriteAttributes + * + * Command: WriteAttributes + * @param writeAttributeRecords WriteAttributeRecord [] + * @param writeAttributeRecordsLen int + */ +#define emberAfFillCommandGlobalWriteAttributes(clusterId, writeAttributeRecords, writeAttributeRecordsLen) \ + emberAfFillExternalBuffer(mask, clusterId, ZCL_WRITE_ATTRIBUTES_COMMAND_ID, "b", writeAttributeRecords, \ + writeAttributeRecordsLen); + +/** @brief Command description for WriteAttributesUndivided + * + * Command: WriteAttributesUndivided + * @param writeAttributeRecords WriteAttributeRecord [] + * @param writeAttributeRecordsLen int + */ +#define emberAfFillCommandGlobalWriteAttributesUndivided(clusterId, writeAttributeRecords, writeAttributeRecordsLen) \ + emberAfFillExternalBuffer(mask, clusterId, ZCL_WRITE_ATTRIBUTES_UNDIVIDED_COMMAND_ID, "b", writeAttributeRecords, \ + writeAttributeRecordsLen); + +/** @brief Command description for WriteAttributesResponse + * + * Command: WriteAttributesResponse + * @param writeAttributeStatusRecords WriteAttributeStatusRecord [] + * @param writeAttributeStatusRecordsLen int + */ +#define emberAfFillCommandGlobalWriteAttributesResponse(clusterId, writeAttributeStatusRecords, writeAttributeStatusRecordsLen) \ + emberAfFillExternalBuffer(mask, clusterId, ZCL_WRITE_ATTRIBUTES_RESPONSE_COMMAND_ID, "b", writeAttributeStatusRecords, \ + writeAttributeStatusRecordsLen); + +/** @brief Command description for WriteAttributesNoResponse + * + * Command: WriteAttributesNoResponse + * @param writeAttributeRecords WriteAttributeRecord [] + * @param writeAttributeRecordsLen int + */ +#define emberAfFillCommandGlobalWriteAttributesNoResponse(clusterId, writeAttributeRecords, writeAttributeRecordsLen) \ + emberAfFillExternalBuffer(mask, clusterId, ZCL_WRITE_ATTRIBUTES_NO_RESPONSE_COMMAND_ID, "b", writeAttributeRecords, \ + writeAttributeRecordsLen); + +/** @brief Command description for ConfigureReporting + * + * Command: ConfigureReporting + * @param configureReportingRecords ConfigureReportingRecord [] + * @param configureReportingRecordsLen int + */ +#define emberAfFillCommandGlobalConfigureReporting(clusterId, configureReportingRecords, configureReportingRecordsLen) \ + emberAfFillExternalBuffer(mask, clusterId, ZCL_CONFIGURE_REPORTING_COMMAND_ID, "b", configureReportingRecords, \ + configureReportingRecordsLen); + +/** @brief Command description for ConfigureReportingResponse + * + * Command: ConfigureReportingResponse + * @param configureReportingStatusRecords ConfigureReportingStatusRecord [] + * @param configureReportingStatusRecordsLen int + */ +#define emberAfFillCommandGlobalConfigureReportingResponse(clusterId, configureReportingStatusRecords, \ + configureReportingStatusRecordsLen) \ + emberAfFillExternalBuffer(mask, clusterId, ZCL_CONFIGURE_REPORTING_RESPONSE_COMMAND_ID, "b", configureReportingStatusRecords, \ + configureReportingStatusRecordsLen); + +/** @brief Command description for ReadReportingConfiguration + * + * Command: ReadReportingConfiguration + * @param readReportingConfigurationAttributeRecords ReadReportingConfigurationAttributeRecord [] + * @param readReportingConfigurationAttributeRecordsLen int + */ +#define emberAfFillCommandGlobalReadReportingConfiguration(clusterId, readReportingConfigurationAttributeRecords, \ + readReportingConfigurationAttributeRecordsLen) \ + emberAfFillExternalBuffer(mask, clusterId, ZCL_READ_REPORTING_CONFIGURATION_COMMAND_ID, "b", \ + readReportingConfigurationAttributeRecords, readReportingConfigurationAttributeRecordsLen); + +/** @brief Command description for ReadReportingConfigurationResponse + * + * Command: ReadReportingConfigurationResponse + * @param readReportingConfigurationRecords ReadReportingConfigurationRecord [] + * @param readReportingConfigurationRecordsLen int + */ +#define emberAfFillCommandGlobalReadReportingConfigurationResponse(clusterId, readReportingConfigurationRecords, \ + readReportingConfigurationRecordsLen) \ + emberAfFillExternalBuffer(mask, clusterId, ZCL_READ_REPORTING_CONFIGURATION_RESPONSE_COMMAND_ID, "b", \ + readReportingConfigurationRecords, readReportingConfigurationRecordsLen); + +/** @brief Command description for ReportAttributes + * + * Command: ReportAttributes + * @param reportAttributeRecords ReportAttributeRecord [] + * @param reportAttributeRecordsLen int + */ +#define emberAfFillCommandGlobalReportAttributes(clusterId, reportAttributeRecords, reportAttributeRecordsLen) \ + emberAfFillExternalBuffer(mask, clusterId, ZCL_REPORT_ATTRIBUTES_COMMAND_ID, "b", reportAttributeRecords, \ + reportAttributeRecordsLen); + +/** @brief Command description for DefaultResponse + * + * Command: DefaultResponse + * @param commandId INT8U + * @param status Status + */ +#define emberAfFillCommandGlobalDefaultResponse(clusterId, commandId, status) \ + emberAfFillExternalBuffer(mask, clusterId, ZCL_DEFAULT_RESPONSE_COMMAND_ID, "uu", commandId, status); + +/** @brief Command description for DiscoverAttributes + * + * Command: DiscoverAttributes + * @param startId ATTRIBUTE_ID + * @param maxAttributeIds INT8U + */ +#define emberAfFillCommandGlobalDiscoverAttributes(clusterId, startId, maxAttributeIds) \ + emberAfFillExternalBuffer(mask, clusterId, ZCL_DISCOVER_ATTRIBUTES_COMMAND_ID, "uu", startId, maxAttributeIds); + +/** @brief Command description for DiscoverAttributesResponse + * + * Command: DiscoverAttributesResponse + * @param discoveryComplete INT8U + * @param discoverAttributesInfoRecords DiscoverAttributesInfoRecord [] + * @param discoverAttributesInfoRecordsLen int + */ +#define emberAfFillCommandGlobalDiscoverAttributesResponse(clusterId, discoveryComplete, discoverAttributesInfoRecords, \ + discoverAttributesInfoRecordsLen) \ + emberAfFillExternalBuffer(mask, clusterId, ZCL_DISCOVER_ATTRIBUTES_RESPONSE_COMMAND_ID, "ub", discoveryComplete, \ + discoverAttributesInfoRecords, discoverAttributesInfoRecordsLen); + +/** @brief Command description for ReadAttributesStructured + * + * Command: ReadAttributesStructured + * @param readStructuredAttributeRecords ReadStructuredAttributeRecord [] + * @param readStructuredAttributeRecordsLen int + */ +#define emberAfFillCommandGlobalReadAttributesStructured(clusterId, readStructuredAttributeRecords, \ + readStructuredAttributeRecordsLen) \ + emberAfFillExternalBuffer(mask, clusterId, ZCL_READ_ATTRIBUTES_STRUCTURED_COMMAND_ID, "b", readStructuredAttributeRecords, \ + readStructuredAttributeRecordsLen); + +/** @brief Command description for WriteAttributesStructured + * + * Command: WriteAttributesStructured + * @param writeStructuredAttributeRecords WriteStructuredAttributeRecord [] + * @param writeStructuredAttributeRecordsLen int + */ +#define emberAfFillCommandGlobalWriteAttributesStructured(clusterId, writeStructuredAttributeRecords, \ + writeStructuredAttributeRecordsLen) \ + emberAfFillExternalBuffer(mask, clusterId, ZCL_WRITE_ATTRIBUTES_STRUCTURED_COMMAND_ID, "b", writeStructuredAttributeRecords, \ + writeStructuredAttributeRecordsLen); + +/** @brief Command description for WriteAttributesStructuredResponse + * + * Command: WriteAttributesStructuredResponse + * @param writeStructuredAttributeStatusRecords WriteStructuredAttributeStatusRecord [] + * @param writeStructuredAttributeStatusRecordsLen int + */ +#define emberAfFillCommandGlobalWriteAttributesStructuredResponse(clusterId, writeStructuredAttributeStatusRecords, \ + writeStructuredAttributeStatusRecordsLen) \ + emberAfFillExternalBuffer(mask, clusterId, ZCL_WRITE_ATTRIBUTES_STRUCTURED_RESPONSE_COMMAND_ID, "b", \ + writeStructuredAttributeStatusRecords, writeStructuredAttributeStatusRecordsLen); + +/** @brief Command description for DiscoverCommandsReceived + * + * Command: DiscoverCommandsReceived + * @param startCommandId INT8U + * @param maxCommandIds INT8U + */ +#define emberAfFillCommandGlobalDiscoverCommandsReceived(clusterId, startCommandId, maxCommandIds) \ + emberAfFillExternalBuffer(mask, clusterId, ZCL_DISCOVER_COMMANDS_RECEIVED_COMMAND_ID, "uu", startCommandId, maxCommandIds); + +/** @brief Command description for DiscoverCommandsReceivedResponse + * + * Command: DiscoverCommandsReceivedResponse + * @param discoveryComplete INT8U + * @param commandIds INT8U [] + * @param commandIdsLen int + */ +#define emberAfFillCommandGlobalDiscoverCommandsReceivedResponse(clusterId, discoveryComplete, commandIds, commandIdsLen) \ + emberAfFillExternalBuffer(mask, clusterId, ZCL_DISCOVER_COMMANDS_RECEIVED_RESPONSE_COMMAND_ID, "ub", discoveryComplete, \ + commandIds, commandIdsLen); + +/** @brief Command description for DiscoverCommandsGenerated + * + * Command: DiscoverCommandsGenerated + * @param startCommandId INT8U + * @param maxCommandIds INT8U + */ +#define emberAfFillCommandGlobalDiscoverCommandsGenerated(clusterId, startCommandId, maxCommandIds) \ + emberAfFillExternalBuffer(mask, clusterId, ZCL_DISCOVER_COMMANDS_GENERATED_COMMAND_ID, "uu", startCommandId, maxCommandIds); + +/** @brief Command description for DiscoverCommandsGeneratedResponse + * + * Command: DiscoverCommandsGeneratedResponse + * @param discoveryComplete INT8U + * @param commandIds INT8U [] + * @param commandIdsLen int + */ +#define emberAfFillCommandGlobalDiscoverCommandsGeneratedResponse(clusterId, discoveryComplete, commandIds, commandIdsLen) \ + emberAfFillExternalBuffer(mask, clusterId, ZCL_DISCOVER_COMMANDS_GENERATED_RESPONSE_COMMAND_ID, "ub", discoveryComplete, \ + commandIds, commandIdsLen); + +/** @brief Command description for DiscoverAttributesExtended + * + * Command: DiscoverAttributesExtended + * @param startId ATTRIBUTE_ID + * @param maxAttributeIds INT8U + */ +#define emberAfFillCommandGlobalDiscoverAttributesExtended(clusterId, startId, maxAttributeIds) \ + emberAfFillExternalBuffer(mask, clusterId, ZCL_DISCOVER_ATTRIBUTES_EXTENDED_COMMAND_ID, "uu", startId, maxAttributeIds); + +/** @brief Command description for DiscoverAttributesExtendedResponse + * + * Command: DiscoverAttributesExtendedResponse + * @param discoveryComplete INT8U + * @param extendedDiscoverAttributesInfoRecords ExtendedDiscoverAttributesInfoRecord [] + * @param extendedDiscoverAttributesInfoRecordsLen int + */ +#define emberAfFillCommandGlobalDiscoverAttributesExtendedResponse( \ + clusterId, discoveryComplete, extendedDiscoverAttributesInfoRecords, extendedDiscoverAttributesInfoRecordsLen) \ + emberAfFillExternalBuffer(mask, clusterId, ZCL_DISCOVER_ATTRIBUTES_EXTENDED_RESPONSE_COMMAND_ID, "ub", discoveryComplete, \ + extendedDiscoverAttributesInfoRecords, extendedDiscoverAttributesInfoRecordsLen); + +/** @brief Command description for ResetToFactoryDefaults + * + * Command: ResetToFactoryDefaults + */ +#define emberAfFillCommandBasicClusterResetToFactoryDefaults() \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_RESET_TO_FACTORY_DEFAULTS_COMMAND_ID, "", ); + +/** @brief Command description for Identify + * + * Command: Identify + * @param identifyTime INT16U + * @param timeout INT16U + */ +#define emberAfFillCommandIdentifyClusterIdentify(identifyTime, timeout) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_IDENTIFY_COMMAND_ID, "uu", identifyTime, timeout); + +/** @brief Command description for IdentifyQuery + * + * Command: IdentifyQuery + */ +#define emberAfFillCommandIdentifyClusterIdentifyQuery() \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_IDENTIFY_QUERY_COMMAND_ID, "", ); + +/** @brief Command description for EZModeInvoke + * + * Command: EZModeInvoke + * @param action BITMAP8 + */ +#define emberAfFillCommandIdentifyClusterEZModeInvoke(action) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_EZ_MODE_INVOKE_COMMAND_ID, "u", action); + +/** @brief Command description for UpdateCommissionState + * + * Command: UpdateCommissionState + * @param action ENUM8 + * @param commissionStateMask BITMAP8 + */ +#define emberAfFillCommandIdentifyClusterUpdateCommissionState(action, commissionStateMask) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_UPDATE_COMMISSION_STATE_COMMAND_ID, "uu", action, commissionStateMask); + +/** @brief Command description for TriggerEffect + * + * Command: TriggerEffect + * @param effectId IdentifyEffectIdentifier + * @param effectVariant IdentifyEffectVariant + */ +#define emberAfFillCommandIdentifyClusterTriggerEffect(effectId, effectVariant) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_TRIGGER_EFFECT_COMMAND_ID, "uu", effectId, effectVariant); + +/** @brief Command description for AddGroup + * + * Command: AddGroup + * @param groupId INT16U + * @param status Status + * @param groupName CHAR_STRING + * @param groupId INT16U + */ +#define emberAfFillCommandGroupsClusterAddGroup(groupId, status, groupName, groupId) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_ADD_GROUP_COMMAND_ID, "uuuu", groupId, status, groupName, groupId); + +/** @brief Command description for ViewGroup + * + * Command: ViewGroup + * @param groupId INT16U + * @param status Status + * @param groupId INT16U + * @param groupName CHAR_STRING + */ +#define emberAfFillCommandGroupsClusterViewGroup(groupId, status, groupId, groupName) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_VIEW_GROUP_COMMAND_ID, "uuuu", groupId, status, groupId, groupName); + +/** @brief Command description for GetGroupMembership + * + * Command: GetGroupMembership + * @param groupCount INT8U + * @param capacity INT8U + * @param groupList INT16U [] + * @param groupListLen int + * @param groupCount INT8U + * @param groupList INT16U [] + * @param groupListLen int + */ +#define emberAfFillCommandGroupsClusterGetGroupMembership(groupCount, capacity, groupList, groupListLen, groupCount, groupList, \ + groupListLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_GET_GROUP_MEMBERSHIP_COMMAND_ID, "uubub", groupCount, capacity, groupList, groupListLen, \ + groupCount, groupList, groupListLen); + +/** @brief Command description for RemoveGroup + * + * Command: RemoveGroup + * @param groupId INT16U + * @param status Status + * @param groupId INT16U + */ +#define emberAfFillCommandGroupsClusterRemoveGroup(groupId, status, groupId) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_REMOVE_GROUP_COMMAND_ID, "uuu", groupId, status, groupId); + +/** @brief Command description for RemoveAllGroups + * + * Command: RemoveAllGroups + */ +#define emberAfFillCommandGroupsClusterRemoveAllGroups() \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_REMOVE_ALL_GROUPS_COMMAND_ID, "", ); + +/** @brief Command description for AddGroupIfIdentifying + * + * Command: AddGroupIfIdentifying + * @param groupId INT16U + * @param groupName CHAR_STRING + */ +#define emberAfFillCommandGroupsClusterAddGroupIfIdentifying(groupId, groupName) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_ADD_GROUP_IF_IDENTIFYING_COMMAND_ID, "uu", groupId, groupName); + +/** @brief Command description for AddScene + * + * Command: AddScene + * @param groupId INT16U + * @param status Status + * @param sceneId INT8U + * @param groupId INT16U + * @param transitionTime INT16U + * @param sceneId INT8U + * @param sceneName CHAR_STRING + * @param extensionFieldSets SceneExtensionFieldSet [] + * @param extensionFieldSetsLen int + */ +#define emberAfFillCommandScenesClusterAddScene(groupId, status, sceneId, groupId, transitionTime, sceneId, sceneName, \ + extensionFieldSets, extensionFieldSetsLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_ADD_SCENE_COMMAND_ID, "uuuuuuub", groupId, status, sceneId, groupId, transitionTime, sceneId, \ + sceneName, extensionFieldSets, extensionFieldSetsLen); + +/** @brief Command description for ViewScene + * + * Command: ViewScene + * @param groupId INT16U + * @param status Status + * @param sceneId INT8U + * @param groupId INT16U + * @param sceneId INT8U + * @param transitionTime INT16U + * @param sceneName CHAR_STRING + * @param extensionFieldSets SceneExtensionFieldSet [] + * @param extensionFieldSetsLen int + */ +#define emberAfFillCommandScenesClusterViewScene(groupId, status, sceneId, groupId, sceneId, transitionTime, sceneName, \ + extensionFieldSets, extensionFieldSetsLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_VIEW_SCENE_COMMAND_ID, "uuuuuuub", groupId, status, sceneId, groupId, sceneId, transitionTime, \ + sceneName, extensionFieldSets, extensionFieldSetsLen); + +/** @brief Command description for RemoveScene + * + * Command: RemoveScene + * @param groupId INT16U + * @param status Status + * @param sceneId INT8U + * @param groupId INT16U + * @param sceneId INT8U + */ +#define emberAfFillCommandScenesClusterRemoveScene(groupId, status, sceneId, groupId, sceneId) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_REMOVE_SCENE_COMMAND_ID, "uuuuu", groupId, status, sceneId, groupId, sceneId); + +/** @brief Command description for RemoveAllScenes + * + * Command: RemoveAllScenes + * @param groupId INT16U + * @param status Status + * @param groupId INT16U + */ +#define emberAfFillCommandScenesClusterRemoveAllScenes(groupId, status, groupId) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_REMOVE_ALL_SCENES_COMMAND_ID, "uuu", groupId, status, groupId); + +/** @brief Command description for StoreScene + * + * Command: StoreScene + * @param groupId INT16U + * @param status Status + * @param sceneId INT8U + * @param groupId INT16U + * @param sceneId INT8U + */ +#define emberAfFillCommandScenesClusterStoreScene(groupId, status, sceneId, groupId, sceneId) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_STORE_SCENE_COMMAND_ID, "uuuuu", groupId, status, sceneId, groupId, sceneId); + +/** @brief Command description for RecallScene + * + * Command: RecallScene + * @param groupId INT16U + * @param sceneId INT8U + * @param transitionTime INT16U + */ +#define emberAfFillCommandScenesClusterRecallScene(groupId, sceneId, transitionTime) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_RECALL_SCENE_COMMAND_ID, "uuu", groupId, sceneId, transitionTime); + +/** @brief Command description for GetSceneMembership + * + * Command: GetSceneMembership + * @param groupId INT16U + * @param status Status + * @param capacity INT8U + * @param groupId INT16U + * @param sceneCount INT8U + * @param sceneList INT8U [] + * @param sceneListLen int + */ +#define emberAfFillCommandScenesClusterGetSceneMembership(groupId, status, capacity, groupId, sceneCount, sceneList, sceneListLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_GET_SCENE_MEMBERSHIP_COMMAND_ID, "uuuuub", groupId, status, capacity, groupId, sceneCount, \ + sceneList, sceneListLen); + +/** @brief Command description for EnhancedAddScene + * + * Command: EnhancedAddScene + * @param groupId INT16U + * @param status Status + * @param sceneId INT8U + * @param groupId INT16U + * @param transitionTime INT16U + * @param sceneId INT8U + * @param sceneName CHAR_STRING + * @param extensionFieldSets SceneExtensionFieldSet [] + * @param extensionFieldSetsLen int + */ +#define emberAfFillCommandScenesClusterEnhancedAddScene(groupId, status, sceneId, groupId, transitionTime, sceneId, sceneName, \ + extensionFieldSets, extensionFieldSetsLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_ENHANCED_ADD_SCENE_COMMAND_ID, "uuuuuuub", groupId, status, sceneId, groupId, transitionTime, \ + sceneId, sceneName, extensionFieldSets, extensionFieldSetsLen); + +/** @brief Command description for EnhancedViewScene + * + * Command: EnhancedViewScene + * @param groupId INT16U + * @param status Status + * @param sceneId INT8U + * @param groupId INT16U + * @param sceneId INT8U + * @param transitionTime INT16U + * @param sceneName CHAR_STRING + * @param extensionFieldSets SceneExtensionFieldSet [] + * @param extensionFieldSetsLen int + */ +#define emberAfFillCommandScenesClusterEnhancedViewScene(groupId, status, sceneId, groupId, sceneId, transitionTime, sceneName, \ + extensionFieldSets, extensionFieldSetsLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_ENHANCED_VIEW_SCENE_COMMAND_ID, "uuuuuuub", groupId, status, sceneId, groupId, sceneId, \ + transitionTime, sceneName, extensionFieldSets, extensionFieldSetsLen); + +/** @brief Command description for CopyScene + * + * Command: CopyScene + * @param mode ScenesCopyMode + * @param status Status + * @param groupIdFrom INT16U + * @param groupIdFrom INT16U + * @param sceneIdFrom INT8U + * @param sceneIdFrom INT8U + * @param groupIdTo INT16U + * @param sceneIdTo INT8U + */ +#define emberAfFillCommandScenesClusterCopyScene(mode, status, groupIdFrom, groupIdFrom, sceneIdFrom, sceneIdFrom, groupIdTo, \ + sceneIdTo) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_COPY_SCENE_COMMAND_ID, "uuuuuuuu", mode, status, groupIdFrom, groupIdFrom, sceneIdFrom, \ + sceneIdFrom, groupIdTo, sceneIdTo); + +/** @brief Command description for Off + * + * Command: Off + */ +#define emberAfFillCommandOn \ + / \ + offClusterOff() emberAfFillExternalBuffer(mask, \ + \ + ZCL_OFF_COMMAND_ID, "", ); + +/** @brief Command description for On + * + * Command: On + */ +#define emberAfFillCommandOn \ + / \ + offClusterOn() emberAfFillExternalBuffer(mask, \ + \ + ZCL_ON_COMMAND_ID, "", ); + +/** @brief Command description for Toggle + * + * Command: Toggle + */ +#define emberAfFillCommandOn \ + / \ + offClusterToggle() emberAfFillExternalBuffer(mask, \ + \ + ZCL_TOGGLE_COMMAND_ID, "", ); + +/** @brief Command description for OffWithEffect + * + * Command: OffWithEffect + * @param effectId OnOffEffectIdentifier + * @param effectVariant ENUM8 + */ +#define emberAfFillCommandOn \ + / \ + offClusterOffWithEffect(effectId, effectVariant) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_OFF_WITH_EFFECT_COMMAND_ID, "uu", effectId, effectVariant); + +/** @brief Command description for OnWithRecallGlobalScene + * + * Command: OnWithRecallGlobalScene + */ +#define emberAfFillCommandOn \ + / \ + offClusterOnWithRecallGlobalScene() emberAfFillExternalBuffer(mask, \ + \ + ZCL_ON_WITH_RECALL_GLOBAL_SCENE_COMMAND_ID, "", ); + +/** @brief Command description for OnWithTimedOff + * + * Command: OnWithTimedOff + * @param onOffControl OnOffControl + * @param onTime INT16U + * @param offWaitTime INT16U + */ +#define emberAfFillCommandOn \ + / \ + offClusterOnWithTimedOff(onOffControl, onTime, offWaitTime) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_ON_WITH_TIMED_OFF_COMMAND_ID, "uuu", onOffControl, onTime, offWaitTime); + +/** @brief Command description for MoveToLevel + * + * Command: MoveToLevel + * @param level INT8U + * @param transitionTime INT16U + * @param optionMask BITMAP8 + * @param optionOverride BITMAP8 + */ +#define emberAfFillCommandLevel \ + ControlClusterMoveToLevel(level, transitionTime, optionMask, optionOverride) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_MOVE_TO_LEVEL_COMMAND_ID, "uuuu", level, transitionTime, optionMask, optionOverride); + +/** @brief Command description for Move + * + * Command: Move + * @param moveMode MoveMode + * @param rate INT8U + * @param optionMask BITMAP8 + * @param optionOverride BITMAP8 + */ +#define emberAfFillCommandLevel \ + ControlClusterMove(moveMode, rate, optionMask, optionOverride) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_MOVE_COMMAND_ID, "uuuu", moveMode, rate, optionMask, optionOverride); + +/** @brief Command description for Step + * + * Command: Step + * @param stepMode StepMode + * @param stepSize INT8U + * @param transitionTime INT16U + * @param optionMask BITMAP8 + * @param optionOverride BITMAP8 + */ +#define emberAfFillCommandLevel \ + ControlClusterStep(stepMode, stepSize, transitionTime, optionMask, optionOverride) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_STEP_COMMAND_ID, "uuuuu", stepMode, stepSize, transitionTime, optionMask, optionOverride); + +/** @brief Command description for Stop + * + * Command: Stop + * @param optionMask BITMAP8 + * @param optionOverride BITMAP8 + */ +#define emberAfFillCommandLevel \ + ControlClusterStop(optionMask, optionOverride) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_STOP_COMMAND_ID, "uu", optionMask, optionOverride); + +/** @brief Command description for MoveToLevelWithOnOff + * + * Command: MoveToLevelWithOnOff + * @param level INT8U + * @param transitionTime INT16U + */ +#define emberAfFillCommandLevel \ + ControlClusterMoveToLevelWithOnOff(level, transitionTime) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_MOVE_TO_LEVEL_WITH_ON_OFF_COMMAND_ID, "uu", level, transitionTime); + +/** @brief Command description for MoveWithOnOff + * + * Command: MoveWithOnOff + * @param moveMode MoveMode + * @param rate INT8U + */ +#define emberAfFillCommandLevel \ + ControlClusterMoveWithOnOff(moveMode, rate) emberAfFillExternalBuffer(mask, \ + \ + ZCL_MOVE_WITH_ON_OFF_COMMAND_ID, "uu", moveMode, rate); + +/** @brief Command description for StepWithOnOff + * + * Command: StepWithOnOff + * @param stepMode StepMode + * @param stepSize INT8U + * @param transitionTime INT16U + */ +#define emberAfFillCommandLevel \ + ControlClusterStepWithOnOff(stepMode, stepSize, transitionTime) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_STEP_WITH_ON_OFF_COMMAND_ID, "uuu", stepMode, stepSize, transitionTime); + +/** @brief Command description for StopWithOnOff + * + * Command: StopWithOnOff + */ +#define emberAfFillCommandLevel \ + ControlClusterStopWithOnOff() emberAfFillExternalBuffer(mask, \ + \ + ZCL_STOP_WITH_ON_OFF_COMMAND_ID, "", ); + +/** @brief Command description for ResetAlarm + * + * Command: ResetAlarm + * @param alarmCode ENUM8 + * @param alarmCode ENUM8 + * @param clusterId CLUSTER_ID + * @param clusterId CLUSTER_ID + */ +#define emberAfFillCommandAlarmsClusterResetAlarm(alarmCode, alarmCode, clusterId, clusterId) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_RESET_ALARM_COMMAND_ID, "uuuu", alarmCode, alarmCode, clusterId, clusterId); + +/** @brief Command description for ResetAllAlarms + * + * Command: ResetAllAlarms + * @param status Status + * @param alarmCode ENUM8 + * @param clusterId CLUSTER_ID + * @param timeStamp INT32U + */ +#define emberAfFillCommandAlarmsClusterResetAllAlarms(status, alarmCode, clusterId, timeStamp) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_RESET_ALL_ALARMS_COMMAND_ID, "uuuu", status, alarmCode, clusterId, timeStamp); + +/** @brief Command description for GetAlarm + * + * Command: GetAlarm + */ +#define emberAfFillCommandAlarmsClusterGetAlarm() \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_GET_ALARM_COMMAND_ID, "", ); + +/** @brief Command description for ResetAlarmLog + * + * Command: ResetAlarmLog + */ +#define emberAfFillCommandAlarmsClusterResetAlarmLog() \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_RESET_ALARM_LOG_COMMAND_ID, "", ); + +/** @brief Command description for SetAbsoluteLocation + * + * Command: SetAbsoluteLocation + * @param coordinate1 INT16S + * @param status Status + * @param coordinate2 INT16S + * @param power INT16S + * @param coordinate3 INT16S + * @param pathLossExponent INT16U + * @param power INT16S + * @param calculationPeriod INT16U + * @param pathLossExponent INT16U + * @param numberRssiMeasurements INT8U + * @param reportingPeriod INT16U + */ +#define emberAfFillCommandRSSI \ + LocationClusterSetAbsoluteLocation(coordinate1, status, coordinate2, power, coordinate3, pathLossExponent, power, \ + calculationPeriod, pathLossExponent, numberRssiMeasurements, reportingPeriod) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_SET_ABSOLUTE_LOCATION_COMMAND_ID, "uuuuuuuuuuu", coordinate1, status, coordinate2, power, \ + coordinate3, pathLossExponent, power, calculationPeriod, pathLossExponent, \ + numberRssiMeasurements, reportingPeriod); + +/** @brief Command description for SetDeviceConfiguration + * + * Command: SetDeviceConfiguration + * @param power INT16S + * @param status Status + * @param pathLossExponent INT16U + * @param locationType LocationType + * @param calculationPeriod INT16U + * @param coordinate1 INT16S + * @param numberRssiMeasurements INT8U + * @param coordinate2 INT16S + * @param reportingPeriod INT16U + * @param coordinate3 INT16S + * @param power INT16S + * @param pathLossExponent INT16U + * @param locationMethod LocationMethod + * @param qualityMeasure INT8U + * @param locationAge INT16U + */ +#define emberAfFillCommandRSSI \ + LocationClusterSetDeviceConfiguration(power, status, pathLossExponent, locationType, calculationPeriod, coordinate1, \ + numberRssiMeasurements, coordinate2, reportingPeriod, coordinate3, power, \ + pathLossExponent, locationMethod, qualityMeasure, locationAge) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_SET_DEVICE_CONFIGURATION_COMMAND_ID, "uuuuuuuuuuuuuuu", power, status, pathLossExponent, \ + locationType, calculationPeriod, coordinate1, numberRssiMeasurements, coordinate2, \ + reportingPeriod, coordinate3, power, pathLossExponent, locationMethod, qualityMeasure, \ + locationAge); + +/** @brief Command description for GetDeviceConfiguration + * + * Command: GetDeviceConfiguration + * @param targetAddress IEEE_ADDRESS + * @param locationType LocationType + * @param coordinate1 INT16S + * @param coordinate2 INT16S + * @param coordinate3 INT16S + * @param power INT16S + * @param pathLossExponent INT16U + * @param locationMethod LocationMethod + * @param qualityMeasure INT8U + * @param locationAge INT16U + */ +#define emberAfFillCommandRSSI \ + LocationClusterGetDeviceConfiguration(targetAddress, locationType, coordinate1, coordinate2, coordinate3, power, \ + pathLossExponent, locationMethod, qualityMeasure, locationAge) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_GET_DEVICE_CONFIGURATION_COMMAND_ID, "uuuuuuuuuu", targetAddress, locationType, coordinate1, \ + coordinate2, coordinate3, power, pathLossExponent, locationMethod, qualityMeasure, locationAge); + +/** @brief Command description for GetLocationData + * + * Command: GetLocationData + * @param flags GetLocationDataFlags + * @param locationType LocationType + * @param numberResponses INT8U + * @param coordinate1 INT16S + * @param targetAddress IEEE_ADDRESS + * @param coordinate2 INT16S + * @param coordinate3 INT16S + * @param qualityMeasure INT8U + * @param locationAge INT16U + */ +#define emberAfFillCommandRSSI \ + LocationClusterGetLocationData(flags, locationType, numberResponses, coordinate1, targetAddress, coordinate2, coordinate3, \ + qualityMeasure, locationAge) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_GET_LOCATION_DATA_COMMAND_ID, "uuuuuuuuu", flags, locationType, numberResponses, \ + coordinate1, targetAddress, coordinate2, coordinate3, qualityMeasure, locationAge); + +/** @brief Command description for RssiResponse + * + * Command: RssiResponse + * @param replyingDevice IEEE_ADDRESS + * @param locationType LocationType + * @param coordinate1 INT16S + * @param coordinate2 INT16S + * @param coordinate3 INT16S + * @param rssi INT8S + * @param numberRssiMeasurements INT8U + */ +#define emberAfFillCommandRSSI \ + LocationClusterRssiResponse(replyingDevice, locationType, coordinate1, coordinate2, coordinate3, rssi, numberRssiMeasurements) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_RSSI_RESPONSE_COMMAND_ID, "uuuuuuu", replyingDevice, locationType, coordinate1, coordinate2, \ + coordinate3, rssi, numberRssiMeasurements); + +/** @brief Command description for RssiRequest + * + * Command: RssiRequest + * @param targetAddress IEEE_ADDRESS + * @param numberRssiMeasurements INT8U + * @param calculationPeriod INT16U + */ +#define emberAfFillCommandRSSI \ + LocationClusterRssiRequest(targetAddress, numberRssiMeasurements, calculationPeriod) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_RSSI_REQUEST_COMMAND_ID, "uuu", targetAddress, numberRssiMeasurements, calculationPeriod); + +/** @brief Command description for AnchorNodeAnnounce + * + * Command: AnchorNodeAnnounce + * @param anchorNodeIeeeAddress IEEE_ADDRESS + * @param measuringDevice IEEE_ADDRESS + * @param coordinate1 INT16S + * @param neighbors INT8U + * @param coordinate2 INT16S + * @param neighborsInfo NeighborInfo [] + * @param neighborsInfoLen int + * @param coordinate3 INT16S + */ +#define emberAfFillCommandRSSI \ + LocationClusterAnchorNodeAnnounce(anchorNodeIeeeAddress, measuringDevice, coordinate1, neighbors, coordinate2, neighborsInfo, \ + neighborsInfoLen, coordinate3) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_ANCHOR_NODE_ANNOUNCE_COMMAND_ID, "uuuuubu", anchorNodeIeeeAddress, measuringDevice, \ + coordinate1, neighbors, coordinate2, neighborsInfo, neighborsInfoLen, coordinate3); + +/** @brief Command description for RequestOwnLocation + * + * Command: RequestOwnLocation + * @param blindNode IEEE_ADDRESS + */ +#define emberAfFillCommandRSSI \ + LocationClusterRequestOwnLocation(blindNode) emberAfFillExternalBuffer(mask, \ + \ + ZCL_REQUEST_OWN_LOCATION_COMMAND_ID, "u", blindNode); + +/** @brief Command description for RestartDevice + * + * Command: RestartDevice + * @param options RestartOptions + * @param status ENUM8 + * @param delay INT8U + * @param jitter INT8U + */ +#define emberAfFillCommandCommissioningClusterRestartDevice(options, status, delay, jitter) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_RESTART_DEVICE_COMMAND_ID, "uuuu", options, status, delay, jitter); + +/** @brief Command description for SaveStartupParameters + * + * Command: SaveStartupParameters + * @param options BITMAP8 + * @param status ENUM8 + * @param index INT8U + */ +#define emberAfFillCommandCommissioningClusterSaveStartupParameters(options, status, index) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_SAVE_STARTUP_PARAMETERS_COMMAND_ID, "uuu", options, status, index); + +/** @brief Command description for RestoreStartupParameters + * + * Command: RestoreStartupParameters + * @param options BITMAP8 + * @param status ENUM8 + * @param index INT8U + */ +#define emberAfFillCommandCommissioningClusterRestoreStartupParameters(options, status, index) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_RESTORE_STARTUP_PARAMETERS_COMMAND_ID, "uuu", options, status, index); + +/** @brief Command description for ResetStartupParameters + * + * Command: ResetStartupParameters + * @param options ResetOptions + * @param status ENUM8 + * @param index INT8U + */ +#define emberAfFillCommandCommissioningClusterResetStartupParameters(options, status, index) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_RESET_STARTUP_PARAMETERS_COMMAND_ID, "uuu", options, status, index); + +/** @brief Command description for TransferPartitionedFrame + * + * Command: TransferPartitionedFrame + * @param fragmentationOptions BITMAP8 + * @param ackOptions BITMAP8 + * @param partitionedIndicatorAndFrame INT8U [] + * @param partitionedIndicatorAndFrameLen int + * @param firstFrameIdAndNackList INT8U [] + * @param firstFrameIdAndNackListLen int + */ +#define emberAfFillCommandPartitionClusterTransferPartitionedFrame(fragmentationOptions, ackOptions, partitionedIndicatorAndFrame, \ + partitionedIndicatorAndFrameLen, firstFrameIdAndNackList, \ + firstFrameIdAndNackListLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_TRANSFER_PARTITIONED_FRAME_COMMAND_ID, "uubb", fragmentationOptions, ackOptions, \ + partitionedIndicatorAndFrame, partitionedIndicatorAndFrameLen, firstFrameIdAndNackList, \ + firstFrameIdAndNackListLen); + +/** @brief Command description for ReadHandshakeParam + * + * Command: ReadHandshakeParam + * @param partitionedClusterId CLUSTER_ID + * @param partitionedClusterId CLUSTER_ID + * @param attributeList ATTRIBUTE_ID [] + * @param attributeListLen int + * @param readAttributeStatusRecords ReadAttributeStatusRecord [] + * @param readAttributeStatusRecordsLen int + */ +#define emberAfFillCommandPartitionClusterReadHandshakeParam(partitionedClusterId, partitionedClusterId, attributeList, \ + attributeListLen, readAttributeStatusRecords, \ + readAttributeStatusRecordsLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_READ_HANDSHAKE_PARAM_COMMAND_ID, "uubb", partitionedClusterId, partitionedClusterId, \ + attributeList, attributeListLen, readAttributeStatusRecords, readAttributeStatusRecordsLen); + +/** @brief Command description for WriteHandshakeParam + * + * Command: WriteHandshakeParam + * @param partitionedClusterId CLUSTER_ID + * @param writeAttributeRecords WriteAttributeRecord [] + * @param writeAttributeRecordsLen int + */ +#define emberAfFillCommandPartitionClusterWriteHandshakeParam(partitionedClusterId, writeAttributeRecords, \ + writeAttributeRecordsLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_WRITE_HANDSHAKE_PARAM_COMMAND_ID, "ub", partitionedClusterId, writeAttributeRecords, \ + writeAttributeRecordsLen); + +/** @brief Command description for ImageNotify + * + * Command: ImageNotify + * @param payloadType ENUM8 + * @param queryJitter INT8U + * @param manufacturerId INT16U + * @param imageType INT16U + * @param newFileVersion INT32U + */ +#define emberAfFillCommandOver \ + the Air BootloadingClusterImageNotify(payloadType, queryJitter, manufacturerId, imageType, newFileVersion) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_IMAGE_NOTIFY_COMMAND_ID, "uuuuu", payloadType, queryJitter, manufacturerId, imageType, \ + newFileVersion); + +/** @brief Command description for QueryNextImageRequest + * + * Command: QueryNextImageRequest + * @param fieldControl INT8U + * @param manufacturerId INT16U + * @param imageType INT16U + * @param currentFileVersion INT32U + * @param hardwareVersion INT16U + */ +#define emberAfFillCommandOver \ + the Air BootloadingClusterQueryNextImageRequest(fieldControl, manufacturerId, imageType, currentFileVersion, hardwareVersion) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_QUERY_NEXT_IMAGE_REQUEST_COMMAND_ID, "uuuuu", fieldControl, manufacturerId, imageType, \ + currentFileVersion, hardwareVersion); + +/** @brief Command description for QueryNextImageResponse + * + * Command: QueryNextImageResponse + * @param status Status + * @param manufacturerId INT16U + * @param imageType INT16U + * @param fileVersion INT32U + * @param imageSize INT32U + */ +#define emberAfFillCommandOver \ + the Air BootloadingClusterQueryNextImageResponse(status, manufacturerId, imageType, fileVersion, imageSize) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_QUERY_NEXT_IMAGE_RESPONSE_COMMAND_ID, "uuuuu", status, manufacturerId, imageType, \ + fileVersion, imageSize); + +/** @brief Command description for ImageBlockRequest + * + * Command: ImageBlockRequest + * @param fieldControl INT8U + * @param manufacturerId INT16U + * @param imageType INT16U + * @param fileVersion INT32U + * @param fileOffset INT32U + * @param maxDataSize INT8U + * @param requestNodeAddress IEEE_ADDRESS + */ +#define emberAfFillCommandOver \ + the Air BootloadingClusterImageBlockRequest(fieldControl, manufacturerId, imageType, fileVersion, fileOffset, maxDataSize, \ + requestNodeAddress) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_IMAGE_BLOCK_REQUEST_COMMAND_ID, "uuuuuuu", fieldControl, manufacturerId, imageType, \ + fileVersion, fileOffset, maxDataSize, requestNodeAddress); + +/** @brief Command description for ImagePageRequest + * + * Command: ImagePageRequest + * @param fieldControl INT8U + * @param manufacturerId INT16U + * @param imageType INT16U + * @param fileVersion INT32U + * @param fileOffset INT32U + * @param maxDataSize INT8U + * @param pageSize INT16U + * @param responseSpacing INT16U + * @param requestNodeAddress IEEE_ADDRESS + */ +#define emberAfFillCommandOver \ + the Air BootloadingClusterImagePageRequest(fieldControl, manufacturerId, imageType, fileVersion, fileOffset, maxDataSize, \ + pageSize, responseSpacing, requestNodeAddress) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_IMAGE_PAGE_REQUEST_COMMAND_ID, "uuuuuuuuu", fieldControl, manufacturerId, imageType, \ + fileVersion, fileOffset, maxDataSize, pageSize, responseSpacing, requestNodeAddress); + +/** @brief Command description for ImageBlockResponse + * + * Command: ImageBlockResponse + * @param status Status + * @param manufacturerId INT16U + * @param imageType INT16U + * @param fileVersion INT32U + * @param fileOffset INT32U + * @param dataSize INT8U + * @param imageData INT8U [] + * @param imageDataLen int + */ +#define emberAfFillCommandOver \ + the Air BootloadingClusterImageBlockResponse(status, manufacturerId, imageType, fileVersion, fileOffset, dataSize, imageData, \ + imageDataLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_IMAGE_BLOCK_RESPONSE_COMMAND_ID, "uuuuuub", status, manufacturerId, imageType, fileVersion, \ + fileOffset, dataSize, imageData, imageDataLen); + +/** @brief Command description for UpgradeEndRequest + * + * Command: UpgradeEndRequest + * @param status Status + * @param manufacturerId INT16U + * @param imageType INT16U + * @param fileVersion INT32U + */ +#define emberAfFillCommandOver \ + the Air BootloadingClusterUpgradeEndRequest(status, manufacturerId, imageType, fileVersion) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_UPGRADE_END_REQUEST_COMMAND_ID, "uuuu", status, manufacturerId, imageType, fileVersion); + +/** @brief Command description for UpgradeEndResponse + * + * Command: UpgradeEndResponse + * @param manufacturerId INT16U + * @param imageType INT16U + * @param fileVersion INT32U + * @param currentTime UTC_TIME + * @param upgradeTime UTC_TIME + */ +#define emberAfFillCommandOver \ + the Air BootloadingClusterUpgradeEndResponse(manufacturerId, imageType, fileVersion, currentTime, upgradeTime) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_UPGRADE_END_RESPONSE_COMMAND_ID, "uuuuu", manufacturerId, imageType, fileVersion, \ + currentTime, upgradeTime); + +/** @brief Command description for QuerySpecificFileRequest + * + * Command: QuerySpecificFileRequest + * @param requestNodeAddress IEEE_ADDRESS + * @param manufacturerId INT16U + * @param imageType INT16U + * @param fileVersion INT32U + * @param currentZigbeeStackVersion INT16U + */ +#define emberAfFillCommandOver \ + the Air BootloadingClusterQuerySpecificFileRequest(requestNodeAddress, manufacturerId, imageType, fileVersion, \ + currentZigbeeStackVersion) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_QUERY_SPECIFIC_FILE_REQUEST_COMMAND_ID, "uuuuu", requestNodeAddress, manufacturerId, \ + imageType, fileVersion, currentZigbeeStackVersion); + +/** @brief Command description for QuerySpecificFileResponse + * + * Command: QuerySpecificFileResponse + * @param status Status + * @param manufacturerId INT16U + * @param imageType INT16U + * @param fileVersion INT32U + * @param imageSize INT32U + */ +#define emberAfFillCommandOver \ + the Air BootloadingClusterQuerySpecificFileResponse(status, manufacturerId, imageType, fileVersion, imageSize) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_QUERY_SPECIFIC_FILE_RESPONSE_COMMAND_ID, "uuuuu", status, manufacturerId, imageType, \ + fileVersion, imageSize); + +/** @brief Command description for PowerProfileRequest + * + * Command: PowerProfileRequest + * @param powerProfileId INT8U + * @param totalProfileNum INT8U + * @param powerProfileId INT8U + * @param numOfTransferredPhases INT8U + * @param transferredPhases TransferredPhase [] + * @param transferredPhasesLen int + */ +#define emberAfFillCommandPower \ + ProfileClusterPowerProfileRequest(powerProfileId, totalProfileNum, powerProfileId, numOfTransferredPhases, transferredPhases, \ + transferredPhasesLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_POWER_PROFILE_REQUEST_COMMAND_ID, "uuuub", powerProfileId, totalProfileNum, powerProfileId, \ + numOfTransferredPhases, transferredPhases, transferredPhasesLen); + +/** @brief Command description for PowerProfileStateRequest + * + * Command: PowerProfileStateRequest + * @param totalProfileNum INT8U + * @param powerProfileId INT8U + * @param numOfTransferredPhases INT8U + * @param transferredPhases TransferredPhase [] + * @param transferredPhasesLen int + */ +#define emberAfFillCommandPower \ + ProfileClusterPowerProfileStateRequest(totalProfileNum, powerProfileId, numOfTransferredPhases, transferredPhases, \ + transferredPhasesLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_POWER_PROFILE_STATE_REQUEST_COMMAND_ID, "uuub", totalProfileNum, powerProfileId, \ + numOfTransferredPhases, transferredPhases, transferredPhasesLen); + +/** @brief Command description for GetPowerProfilePriceResponse + * + * Command: GetPowerProfilePriceResponse + * @param powerProfileId INT8U + * @param powerProfileCount INT8U + * @param currency INT16U + * @param powerProfileRecords PowerProfileRecord [] + * @param powerProfileRecordsLen int + * @param price INT32U + * @param priceTrailingDigit INT8U + */ +#define emberAfFillCommandPower \ + ProfileClusterGetPowerProfilePriceResponse(powerProfileId, powerProfileCount, currency, powerProfileRecords, \ + powerProfileRecordsLen, price, priceTrailingDigit) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_GET_POWER_PROFILE_PRICE_RESPONSE_COMMAND_ID, "uuubuu", powerProfileId, powerProfileCount, \ + currency, powerProfileRecords, powerProfileRecordsLen, price, priceTrailingDigit); + +/** @brief Command description for GetOverallSchedulePriceResponse + * + * Command: GetOverallSchedulePriceResponse + * @param currency INT16U + * @param powerProfileId INT8U + * @param price INT32U + * @param priceTrailingDigit INT8U + */ +#define emberAfFillCommandPower \ + ProfileClusterGetOverallSchedulePriceResponse(currency, powerProfileId, price, priceTrailingDigit) emberAfFillExternalBuffer( \ + mask, \ + \ + ZCL_GET_OVERALL_SCHEDULE_PRICE_RESPONSE_COMMAND_ID, "uuuu", currency, powerProfileId, price, priceTrailingDigit); + +/** @brief Command description for EnergyPhasesScheduleNotification + * + * Command: EnergyPhasesScheduleNotification + * @param powerProfileId INT8U + * @param powerProfileCount INT8U + * @param numOfScheduledPhases INT8U + * @param powerProfileRecords PowerProfileRecord [] + * @param powerProfileRecordsLen int + * @param scheduledPhases ScheduledPhase [] + * @param scheduledPhasesLen int + */ +#define emberAfFillCommandPower \ + ProfileClusterEnergyPhasesScheduleNotification(powerProfileId, powerProfileCount, numOfScheduledPhases, powerProfileRecords, \ + powerProfileRecordsLen, scheduledPhases, scheduledPhasesLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_ENERGY_PHASES_SCHEDULE_NOTIFICATION_COMMAND_ID, "uuubb", powerProfileId, powerProfileCount, \ + numOfScheduledPhases, powerProfileRecords, powerProfileRecordsLen, scheduledPhases, \ + scheduledPhasesLen); + +/** @brief Command description for GetOverallSchedulePrice + * + * Command: GetOverallSchedulePrice + * @param powerProfileId INT8U + * @param numOfScheduledPhases INT8U + * @param scheduledPhases ScheduledPhase [] + * @param scheduledPhasesLen int + */ +#define emberAfFillCommandPower \ + ProfileClusterGetOverallSchedulePrice(powerProfileId, numOfScheduledPhases, scheduledPhases, scheduledPhasesLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_GET_OVERALL_SCHEDULE_PRICE_COMMAND_ID, "uub", powerProfileId, numOfScheduledPhases, \ + scheduledPhases, scheduledPhasesLen); + +/** @brief Command description for PowerProfileScheduleConstraintsRequest + * + * Command: PowerProfileScheduleConstraintsRequest + * @param powerProfileId INT8U + * @param powerProfileId INT8U + */ +#define emberAfFillCommandPower \ + ProfileClusterPowerProfileScheduleConstraintsRequest(powerProfileId, powerProfileId) emberAfFillExternalBuffer( \ + mask, \ + \ + ZCL_POWER_PROFILE_SCHEDULE_CONSTRAINTS_REQUEST_COMMAND_ID, "uu", powerProfileId, powerProfileId); + +/** @brief Command description for EnergyPhasesScheduleStateRequest + * + * Command: EnergyPhasesScheduleStateRequest + * @param powerProfileId INT8U + * @param powerProfileId INT8U + * @param numOfScheduledPhases INT8U + * @param scheduledPhases ScheduledPhase [] + * @param scheduledPhasesLen int + */ +#define emberAfFillCommandPower \ + ProfileClusterEnergyPhasesScheduleStateRequest(powerProfileId, powerProfileId, numOfScheduledPhases, scheduledPhases, \ + scheduledPhasesLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_ENERGY_PHASES_SCHEDULE_STATE_REQUEST_COMMAND_ID, "uuub", powerProfileId, powerProfileId, \ + numOfScheduledPhases, scheduledPhases, scheduledPhasesLen); + +/** @brief Command description for GetPowerProfilePriceExtendedResponse + * + * Command: GetPowerProfilePriceExtendedResponse + * @param powerProfileId INT8U + * @param powerProfileId INT8U + * @param currency INT16U + * @param numOfScheduledPhases INT8U + * @param price INT32U + * @param scheduledPhases ScheduledPhase [] + * @param scheduledPhasesLen int + * @param priceTrailingDigit INT8U + */ +#define emberAfFillCommandPower \ + ProfileClusterGetPowerProfilePriceExtendedResponse(powerProfileId, powerProfileId, currency, numOfScheduledPhases, price, \ + scheduledPhases, scheduledPhasesLen, priceTrailingDigit) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_GET_POWER_PROFILE_PRICE_EXTENDED_RESPONSE_COMMAND_ID, "uuuuubu", powerProfileId, \ + powerProfileId, currency, numOfScheduledPhases, price, scheduledPhases, scheduledPhasesLen, \ + priceTrailingDigit); + +/** @brief Command description for PowerProfileScheduleConstraintsNotification + * + * Command: PowerProfileScheduleConstraintsNotification + * @param powerProfileId INT8U + * @param startAfter INT16U + * @param stopBefore INT16U + */ +#define emberAfFillCommandPower \ + ProfileClusterPowerProfileScheduleConstraintsNotification(powerProfileId, startAfter, stopBefore) emberAfFillExternalBuffer( \ + mask, \ + \ + ZCL_POWER_PROFILE_SCHEDULE_CONSTRAINTS_NOTIFICATION_COMMAND_ID, "uuu", powerProfileId, startAfter, stopBefore); + +/** @brief Command description for PowerProfileScheduleConstraintsResponse + * + * Command: PowerProfileScheduleConstraintsResponse + * @param powerProfileId INT8U + * @param startAfter INT16U + * @param stopBefore INT16U + */ +#define emberAfFillCommandPower \ + ProfileClusterPowerProfileScheduleConstraintsResponse(powerProfileId, startAfter, stopBefore) emberAfFillExternalBuffer( \ + mask, \ + \ + ZCL_POWER_PROFILE_SCHEDULE_CONSTRAINTS_RESPONSE_COMMAND_ID, "uuu", powerProfileId, startAfter, stopBefore); + +/** @brief Command description for GetPowerProfilePriceExtended + * + * Command: GetPowerProfilePriceExtended + * @param options BITMAP8 + * @param powerProfileId INT8U + * @param powerProfileStartTime INT16U + */ +#define emberAfFillCommandPower \ + ProfileClusterGetPowerProfilePriceExtended(options, powerProfileId, powerProfileStartTime) emberAfFillExternalBuffer( \ + mask, \ + \ + ZCL_GET_POWER_PROFILE_PRICE_EXTENDED_COMMAND_ID, "uuu", options, powerProfileId, powerProfileStartTime); + +/** @brief Command description for ExecutionOfACommand + * + * Command: ExecutionOfACommand + * @param commandId CommandIdentification + * @param applianceStatus ApplianceStatus + * @param remoteEnableFlagsAndDeviceStatus2 RemoteEnableFlagsAndDeviceStatus2 + * @param applianceStatus2 INT24U + */ +#define emberAfFillCommandAppliance \ + ControlClusterExecutionOfACommand(commandId, applianceStatus, remoteEnableFlagsAndDeviceStatus2, applianceStatus2) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_EXECUTION_OF_A_COMMAND_COMMAND_ID, "uuuu", commandId, applianceStatus, \ + remoteEnableFlagsAndDeviceStatus2, applianceStatus2); + +/** @brief Command description for SignalState + * + * Command: SignalState + * @param applianceStatus ApplianceStatus + * @param remoteEnableFlagsAndDeviceStatus2 RemoteEnableFlagsAndDeviceStatus2 + * @param applianceStatus2 INT24U + */ +#define emberAfFillCommandAppliance \ + ControlClusterSignalState(applianceStatus, remoteEnableFlagsAndDeviceStatus2, applianceStatus2) emberAfFillExternalBuffer( \ + mask, \ + \ + ZCL_SIGNAL_STATE_COMMAND_ID, "uuu", applianceStatus, remoteEnableFlagsAndDeviceStatus2, applianceStatus2); + +/** @brief Command description for WriteFunctions + * + * Command: WriteFunctions + * @param functionId INT16U + * @param functionDataType ENUM8 + * @param functionData INT8U [] + * @param functionDataLen int + */ +#define emberAfFillCommandAppliance \ + ControlClusterWriteFunctions(functionId, functionDataType, functionData, functionDataLen) emberAfFillExternalBuffer( \ + mask, \ + \ + ZCL_WRITE_FUNCTIONS_COMMAND_ID, "uub", functionId, functionDataType, functionData, functionDataLen); + +/** @brief Command description for OverloadPauseResume + * + * Command: OverloadPauseResume + */ +#define emberAfFillCommandAppliance \ + ControlClusterOverloadPauseResume() emberAfFillExternalBuffer(mask, \ + \ + ZCL_OVERLOAD_PAUSE_RESUME_COMMAND_ID, "", ); + +/** @brief Command description for OverloadPause + * + * Command: OverloadPause + */ +#define emberAfFillCommandAppliance \ + ControlClusterOverloadPause() emberAfFillExternalBuffer(mask, \ + \ + ZCL_OVERLOAD_PAUSE_COMMAND_ID, "", ); + +/** @brief Command description for OverloadWarning + * + * Command: OverloadWarning + * @param warningEvent WarningEvent + */ +#define emberAfFillCommandAppliance \ + ControlClusterOverloadWarning(warningEvent) emberAfFillExternalBuffer(mask, \ + \ + ZCL_OVERLOAD_WARNING_COMMAND_ID, "u", warningEvent); + +/** @brief Command description for CheckIn + * + * Command: CheckIn + * @param startFastPolling BOOLEAN + * @param fastPollTimeout INT16U + */ +#define emberAfFillCommandPoll \ + ControlClusterCheckIn(startFastPolling, fastPollTimeout) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_CHECK_IN_COMMAND_ID, "uu", startFastPolling, fastPollTimeout); + +/** @brief Command description for FastPollStop + * + * Command: FastPollStop + */ +#define emberAfFillCommandPoll \ + ControlClusterFastPollStop() emberAfFillExternalBuffer(mask, \ + \ + ZCL_FAST_POLL_STOP_COMMAND_ID, "", ); + +/** @brief Command description for SetLongPollInterval + * + * Command: SetLongPollInterval + * @param newLongPollInterval INT32U + */ +#define emberAfFillCommandPoll \ + ControlClusterSetLongPollInterval(newLongPollInterval) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_SET_LONG_POLL_INTERVAL_COMMAND_ID, "u", newLongPollInterval); + +/** @brief Command description for SetShortPollInterval + * + * Command: SetShortPollInterval + * @param newShortPollInterval INT16U + */ +#define emberAfFillCommandPoll \ + ControlClusterSetShortPollInterval(newShortPollInterval) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_SET_SHORT_POLL_INTERVAL_COMMAND_ID, "u", newShortPollInterval); + +/** @brief Command description for GpNotification + * + * Command: GpNotification + * @param options GpNotificationOption + * @param options GpNotificationResponseOption + * @param gpdSrcId INT32U + * @param gpdSrcId INT32U + * @param gpdIeee IEEE_ADDRESS + * @param gpdIeee IEEE_ADDRESS + * @param gpdEndpoint INT8U + * @param endpoint INT8U + * @param gpdSecurityFrameCounter INT32U + * @param gpdSecurityFrameCounter INT32U + * @param gpdCommandId INT8U + * @param gpdCommandPayload OCTET_STRING + * @param gppShortAddress INT16U + * @param gppDistance INT8U + */ +#define emberAfFillCommandGreen \ + PowerClusterGpNotification(options, options, gpdSrcId, gpdSrcId, gpdIeee, gpdIeee, gpdEndpoint, endpoint, \ + gpdSecurityFrameCounter, gpdSecurityFrameCounter, gpdCommandId, gpdCommandPayload, gppShortAddress, \ + gppDistance) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_GP_NOTIFICATION_COMMAND_ID, "uuuuuuuuuuuuuu", options, options, gpdSrcId, gpdSrcId, gpdIeee, \ + gpdIeee, gpdEndpoint, endpoint, gpdSecurityFrameCounter, gpdSecurityFrameCounter, gpdCommandId, \ + gpdCommandPayload, gppShortAddress, gppDistance); + +/** @brief Command description for GpPairingSearch + * + * Command: GpPairingSearch + * @param options GpPairingSearchOption + * @param options GpPairingOption + * @param gpdSrcId INT32U + * @param gpdSrcId INT32U + * @param gpdIeee IEEE_ADDRESS + * @param gpdIeee IEEE_ADDRESS + * @param endpoint INT8U + * @param endpoint INT8U + * @param sinkIeeeAddress IEEE_ADDRESS + * @param sinkNwkAddress INT16U + * @param sinkGroupId INT16U + * @param deviceId GpDeviceId + * @param gpdSecurityFrameCounter INT32U + * @param gpdKey SECURITY_KEY + * @param assignedAlias INT16U + * @param groupcastRadius INT8U + */ +#define emberAfFillCommandGreen \ + PowerClusterGpPairingSearch(options, options, gpdSrcId, gpdSrcId, gpdIeee, gpdIeee, endpoint, endpoint, sinkIeeeAddress, \ + sinkNwkAddress, sinkGroupId, deviceId, gpdSecurityFrameCounter, gpdKey, assignedAlias, \ + groupcastRadius) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_GP_PAIRING_SEARCH_COMMAND_ID, "uuuuuuuuuuuuuuuu", options, options, gpdSrcId, gpdSrcId, \ + gpdIeee, gpdIeee, endpoint, endpoint, sinkIeeeAddress, sinkNwkAddress, sinkGroupId, deviceId, \ + gpdSecurityFrameCounter, gpdKey, assignedAlias, groupcastRadius); + +/** @brief Command description for GpProxyCommissioningMode + * + * Command: GpProxyCommissioningMode + * @param options GpProxyCommissioningModeOption + * @param commissioningWindow INT16U + * @param channel INT8U + */ +#define emberAfFillCommandGreen \ + PowerClusterGpProxyCommissioningMode(options, commissioningWindow, channel) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_GP_PROXY_COMMISSIONING_MODE_COMMAND_ID, "uuu", options, commissioningWindow, channel); + +/** @brief Command description for GpTunnelingStop + * + * Command: GpTunnelingStop + * @param options GpTunnelingStopOption + * @param gpdSrcId INT32U + * @param gpdIeee IEEE_ADDRESS + * @param endpoint INT8U + * @param gpdSecurityFrameCounter INT32U + * @param gppShortAddress INT16U + * @param gppDistance INT8S + */ +#define emberAfFillCommandGreen \ + PowerClusterGpTunnelingStop(options, gpdSrcId, gpdIeee, endpoint, gpdSecurityFrameCounter, gppShortAddress, gppDistance) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_GP_TUNNELING_STOP_COMMAND_ID, "uuuuuuu", options, gpdSrcId, gpdIeee, endpoint, \ + gpdSecurityFrameCounter, gppShortAddress, gppDistance); + +/** @brief Command description for GpCommissioningNotification + * + * Command: GpCommissioningNotification + * @param options GpCommissioningNotificationOption + * @param gpdSrcId INT32U + * @param gpdIeee IEEE_ADDRESS + * @param endpoint INT8U + * @param gpdSecurityFrameCounter INT32U + * @param gpdCommandId INT8U + * @param gpdCommandPayload OCTET_STRING + * @param gppShortAddress INT16U + * @param gppLink INT8U + * @param mic INT32U + */ +#define emberAfFillCommandGreen \ + PowerClusterGpCommissioningNotification(options, gpdSrcId, gpdIeee, endpoint, gpdSecurityFrameCounter, gpdCommandId, \ + gpdCommandPayload, gppShortAddress, gppLink, mic) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_GP_COMMISSIONING_NOTIFICATION_COMMAND_ID, "uuuuuuuuuu", options, gpdSrcId, gpdIeee, \ + endpoint, gpdSecurityFrameCounter, gpdCommandId, gpdCommandPayload, gppShortAddress, gppLink, \ + mic); + +/** @brief Command description for GpSinkCommissioningMode + * + * Command: GpSinkCommissioningMode + * @param options GpSinkCommissioningModeOptions + * @param gpmAddrForSecurity INT16U + * @param gpmAddrForPairing INT16U + * @param sinkEndpoint INT8U + */ +#define emberAfFillCommandGreen \ + PowerClusterGpSinkCommissioningMode(options, gpmAddrForSecurity, gpmAddrForPairing, sinkEndpoint) emberAfFillExternalBuffer( \ + mask, \ + \ + ZCL_GP_SINK_COMMISSIONING_MODE_COMMAND_ID, "uuuu", options, gpmAddrForSecurity, gpmAddrForPairing, sinkEndpoint); + +/** @brief Command description for GpResponse + * + * Command: GpResponse + * @param options GpResponseOption + * @param tempMasterShortAddress INT16U + * @param tempMasterTxChannel BITMAP8 + * @param gpdSrcId INT32U + * @param gpdIeee IEEE_ADDRESS + * @param endpoint INT8U + * @param gpdCommandId INT8U + * @param gpdCommandPayload OCTET_STRING + */ +#define emberAfFillCommandGreen \ + PowerClusterGpResponse(options, tempMasterShortAddress, tempMasterTxChannel, gpdSrcId, gpdIeee, endpoint, gpdCommandId, \ + gpdCommandPayload) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_GP_RESPONSE_COMMAND_ID, "uuuuuuuu", options, tempMasterShortAddress, tempMasterTxChannel, \ + gpdSrcId, gpdIeee, endpoint, gpdCommandId, gpdCommandPayload); + +/** @brief Command description for GpTranslationTableUpdate + * + * Command: GpTranslationTableUpdate + * @param options GpTranslationTableUpdateOption + * @param gpdSrcId INT32U + * @param gpdIeee IEEE_ADDRESS + * @param endpoint INT8U + * @param translations GpTranslationTableUpdateTranslation [] + * @param translationsLen int + */ +#define emberAfFillCommandGreen \ + PowerClusterGpTranslationTableUpdate(options, gpdSrcId, gpdIeee, endpoint, translations, translationsLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_GP_TRANSLATION_TABLE_UPDATE_COMMAND_ID, "uuuub", options, gpdSrcId, gpdIeee, endpoint, \ + translations, translationsLen); + +/** @brief Command description for GpTranslationTableRequest + * + * Command: GpTranslationTableRequest + * @param startIndex INT8U + * @param status GpTranslationTableResponseStatus + * @param options GpTranslationTableResponseOption + * @param totalNumberOfEntries INT8U + * @param startIndex INT8U + * @param entriesCount INT8U + * @param translationTableList INT8U [] + * @param translationTableListLen int + */ +#define emberAfFillCommandGreen \ + PowerClusterGpTranslationTableRequest(startIndex, status, options, totalNumberOfEntries, startIndex, entriesCount, \ + translationTableList, translationTableListLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_GP_TRANSLATION_TABLE_REQUEST_COMMAND_ID, "uuuuuub", startIndex, status, options, \ + totalNumberOfEntries, startIndex, entriesCount, translationTableList, translationTableListLen); + +/** @brief Command description for GpPairingConfiguration + * + * Command: GpPairingConfiguration + * @param actions GpPairingConfigurationActions + * @param options GpPairingConfigurationOption + * @param gpdSrcId INT32U + * @param gpdIeee IEEE_ADDRESS + * @param endpoint INT8U + * @param deviceId INT8U + * @param groupListCount INT8U + * @param groupList GpPairingConfigurationGroupList [] + * @param groupListLen int + * @param gpdAssignedAlias INT16U + * @param groupcastRadius INT8U + * @param securityOptions INT8U + * @param gpdSecurityFrameCounter INT32U + * @param gpdSecurityKey SECURITY_KEY + * @param numberOfPairedEndpoints INT8U + * @param pairedEndpoints INT8U [] + * @param pairedEndpointsLen int + * @param applicationInformation GpApplicationInformation + * @param manufacturerId INT16U + * @param modeId INT16U + * @param numberOfGpdCommands INT8U + * @param gpdCommandIdList INT8U [] + * @param gpdCommandIdListLen int + * @param clusterIdListCount INT8U + * @param clusterListServer INT16U [] + * @param clusterListServerLen int + * @param clusterListClient INT16U [] + * @param clusterListClientLen int + * @param switchInformationLength INT8U + * @param switchConfiguration INT8U + * @param currentContactStatus INT8U + * @param totalNumberOfReports INT8U + * @param numberOfReports INT8U + * @param reportDescriptor INT8U [] + * @param reportDescriptorLen int + */ +#define emberAfFillCommandGreen \ + PowerClusterGpPairingConfiguration( \ + actions, options, gpdSrcId, gpdIeee, endpoint, deviceId, groupListCount, groupList, groupListLen, gpdAssignedAlias, \ + groupcastRadius, securityOptions, gpdSecurityFrameCounter, gpdSecurityKey, numberOfPairedEndpoints, pairedEndpoints, \ + pairedEndpointsLen, applicationInformation, manufacturerId, modeId, numberOfGpdCommands, gpdCommandIdList, \ + gpdCommandIdListLen, clusterIdListCount, clusterListServer, clusterListServerLen, clusterListClient, clusterListClientLen, \ + switchInformationLength, switchConfiguration, currentContactStatus, totalNumberOfReports, numberOfReports, \ + reportDescriptor, reportDescriptorLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_GP_PAIRING_CONFIGURATION_COMMAND_ID, "uuuuuuubuuuuuubuuuububbuuuuub", actions, options, \ + gpdSrcId, gpdIeee, endpoint, deviceId, groupListCount, groupList, groupListLen, \ + gpdAssignedAlias, groupcastRadius, securityOptions, gpdSecurityFrameCounter, gpdSecurityKey, \ + numberOfPairedEndpoints, pairedEndpoints, pairedEndpointsLen, applicationInformation, \ + manufacturerId, modeId, numberOfGpdCommands, gpdCommandIdList, gpdCommandIdListLen, \ + clusterIdListCount, clusterListServer, clusterListServerLen, clusterListClient, \ + clusterListClientLen, switchInformationLength, switchConfiguration, currentContactStatus, \ + totalNumberOfReports, numberOfReports, reportDescriptor, reportDescriptorLen); + +/** @brief Command description for GpSinkTableRequest + * + * Command: GpSinkTableRequest + * @param options GpSinkTableRequestOptions + * @param status ENUM8 + * @param gpdSrcId INT32U + * @param totalNumberofNonEmptySinkTableEntries INT8U + * @param gpdIeee INT64U + * @param startIndex INT8U + * @param endpoint INT8U + * @param sinkTableEntriesCount INT8U + * @param index INT8U + * @param sinkTableEntries INT8U [] + * @param sinkTableEntriesLen int + */ +#define emberAfFillCommandGreen \ + PowerClusterGpSinkTableRequest(options, status, gpdSrcId, totalNumberofNonEmptySinkTableEntries, gpdIeee, startIndex, \ + endpoint, sinkTableEntriesCount, index, sinkTableEntries, sinkTableEntriesLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_GP_SINK_TABLE_REQUEST_COMMAND_ID, "uuuuuuuuub", options, status, gpdSrcId, \ + totalNumberofNonEmptySinkTableEntries, gpdIeee, startIndex, endpoint, sinkTableEntriesCount, \ + index, sinkTableEntries, sinkTableEntriesLen); + +/** @brief Command description for GpProxyTableResponse + * + * Command: GpProxyTableResponse + * @param status GpProxyTableResponseStatus + * @param options GpProxyTableRequestOptions + * @param totalNumberOfNonEmptyProxyTableEntries INT8U + * @param gpdSrcId INT32U + * @param startIndex INT8U + * @param gpdIeee INT64U + * @param entriesCount INT8U + * @param endpoint INT8U + * @param proxyTableEntries INT8U [] + * @param proxyTableEntriesLen int + * @param index INT8U + */ +#define emberAfFillCommandGreen \ + PowerClusterGpProxyTableResponse(status, options, totalNumberOfNonEmptyProxyTableEntries, gpdSrcId, startIndex, gpdIeee, \ + entriesCount, endpoint, proxyTableEntries, proxyTableEntriesLen, index) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_GP_PROXY_TABLE_RESPONSE_COMMAND_ID, "uuuuuuuubu", status, options, \ + totalNumberOfNonEmptyProxyTableEntries, gpdSrcId, startIndex, gpdIeee, entriesCount, endpoint, \ + proxyTableEntries, proxyTableEntriesLen, index); + +/** @brief Command description for LockDoor + * + * Command: LockDoor + * @param PIN CHAR_STRING + * @param status INT8U + */ +#define emberAfFillCommandDoor \ + LockClusterLockDoor(PIN, status) emberAfFillExternalBuffer(mask, \ + \ + ZCL_LOCK_DOOR_COMMAND_ID, "uu", PIN, status); + +/** @brief Command description for UnlockDoor + * + * Command: UnlockDoor + * @param PIN CHAR_STRING + * @param status INT8U + */ +#define emberAfFillCommandDoor \ + LockClusterUnlockDoor(PIN, status) emberAfFillExternalBuffer(mask, \ + \ + ZCL_UNLOCK_DOOR_COMMAND_ID, "uu", PIN, status); + +/** @brief Command description for Toggle + * + * Command: Toggle + * @param pin CHAR_STRING + * @param status INT8U + */ +#define emberAfFillCommandDoor \ + LockClusterToggle(pin, status) emberAfFillExternalBuffer(mask, \ + \ + ZCL_TOGGLE_COMMAND_ID, "uu", pin, status); + +/** @brief Command description for UnlockWithTimeout + * + * Command: UnlockWithTimeout + * @param timeoutInSeconds INT16U + * @param status INT8U + * @param pin CHAR_STRING + */ +#define emberAfFillCommandDoor \ + LockClusterUnlockWithTimeout(timeoutInSeconds, status, pin) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_UNLOCK_WITH_TIMEOUT_COMMAND_ID, "uuu", timeoutInSeconds, status, pin); + +/** @brief Command description for GetLogRecord + * + * Command: GetLogRecord + * @param logIndex INT16U + * @param logEntryId INT16U + * @param timestamp INT32U + * @param eventType ENUM8 + * @param source INT8U + * @param eventIdOrAlarmCode INT8U + * @param userId INT16U + * @param pin CHAR_STRING + */ +#define emberAfFillCommandDoor \ + LockClusterGetLogRecord(logIndex, logEntryId, timestamp, eventType, source, eventIdOrAlarmCode, userId, pin) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_GET_LOG_RECORD_COMMAND_ID, "uuuuuuuu", logIndex, logEntryId, timestamp, eventType, source, \ + eventIdOrAlarmCode, userId, pin); + +/** @brief Command description for SetPin + * + * Command: SetPin + * @param userId INT16U + * @param status DoorLockSetPinOrIdStatus + * @param userStatus DoorLockUserStatus + * @param userType DoorLockUserType + * @param pin CHAR_STRING + */ +#define emberAfFillCommandDoor \ + LockClusterSetPin(userId, status, userStatus, userType, pin) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_SET_PIN_COMMAND_ID, "uuuuu", userId, status, userStatus, userType, pin); + +/** @brief Command description for GetPin + * + * Command: GetPin + * @param userId INT16U + * @param userId INT16U + * @param userStatus DoorLockUserStatus + * @param userType DoorLockUserType + * @param pin CHAR_STRING + */ +#define emberAfFillCommandDoor \ + LockClusterGetPin(userId, userId, userStatus, userType, pin) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_GET_PIN_COMMAND_ID, "uuuuu", userId, userId, userStatus, userType, pin); + +/** @brief Command description for ClearPin + * + * Command: ClearPin + * @param userId INT16U + * @param status INT8U + */ +#define emberAfFillCommandDoor \ + LockClusterClearPin(userId, status) emberAfFillExternalBuffer(mask, \ + \ + ZCL_CLEAR_PIN_COMMAND_ID, "uu", userId, status); + +/** @brief Command description for ClearAllPins + * + * Command: ClearAllPins + * @param status INT8U + */ +#define emberAfFillCommandDoor \ + LockClusterClearAllPins(status) emberAfFillExternalBuffer(mask, \ + \ + ZCL_CLEAR_ALL_PINS_COMMAND_ID, "u", status); + +/** @brief Command description for SetUserStatus + * + * Command: SetUserStatus + * @param userId INT16U + * @param status INT8U + * @param userStatus INT8U + */ +#define emberAfFillCommandDoor \ + LockClusterSetUserStatus(userId, status, userStatus) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_SET_USER_STATUS_COMMAND_ID, "uuu", userId, status, userStatus); + +/** @brief Command description for GetUserStatus + * + * Command: GetUserStatus + * @param userId INT16U + * @param userId INT16U + * @param status INT8U + */ +#define emberAfFillCommandDoor \ + LockClusterGetUserStatus(userId, userId, status) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_GET_USER_STATUS_COMMAND_ID, "uuu", userId, userId, status); + +/** @brief Command description for SetWeekdaySchedule + * + * Command: SetWeekdaySchedule + * @param scheduleId INT8U + * @param status INT8U + * @param userId INT16U + * @param daysMask DoorLockDayOfWeek + * @param startHour INT8U + * @param startMinute INT8U + * @param endHour INT8U + * @param endMinute INT8U + */ +#define emberAfFillCommandDoor \ + LockClusterSetWeekdaySchedule(scheduleId, status, userId, daysMask, startHour, startMinute, endHour, endMinute) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_SET_WEEKDAY_SCHEDULE_COMMAND_ID, "uuuuuuuu", scheduleId, status, userId, daysMask, \ + startHour, startMinute, endHour, endMinute); + +/** @brief Command description for GetWeekdaySchedule + * + * Command: GetWeekdaySchedule + * @param scheduleId INT8U + * @param scheduleId INT8U + * @param userId INT16U + * @param userId INT16U + * @param status INT8U + * @param daysMask INT8U + * @param startHour INT8U + * @param startMinute INT8U + * @param endHour INT8U + * @param endMinute INT8U + */ +#define emberAfFillCommandDoor \ + LockClusterGetWeekdaySchedule(scheduleId, scheduleId, userId, userId, status, daysMask, startHour, startMinute, endHour, \ + endMinute) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_GET_WEEKDAY_SCHEDULE_COMMAND_ID, "uuuuuuuuuu", scheduleId, scheduleId, userId, userId, \ + status, daysMask, startHour, startMinute, endHour, endMinute); + +/** @brief Command description for ClearWeekdaySchedule + * + * Command: ClearWeekdaySchedule + * @param scheduleId INT8U + * @param status INT8U + * @param userId INT16U + */ +#define emberAfFillCommandDoor \ + LockClusterClearWeekdaySchedule(scheduleId, status, userId) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_CLEAR_WEEKDAY_SCHEDULE_COMMAND_ID, "uuu", scheduleId, status, userId); + +/** @brief Command description for SetYeardaySchedule + * + * Command: SetYeardaySchedule + * @param scheduleId INT8U + * @param status INT8U + * @param userId INT16U + * @param localStartTime INT32U + * @param localEndTime INT32U + */ +#define emberAfFillCommandDoor \ + LockClusterSetYeardaySchedule(scheduleId, status, userId, localStartTime, localEndTime) emberAfFillExternalBuffer( \ + mask, \ + \ + ZCL_SET_YEARDAY_SCHEDULE_COMMAND_ID, "uuuuu", scheduleId, status, userId, localStartTime, localEndTime); + +/** @brief Command description for GetYeardaySchedule + * + * Command: GetYeardaySchedule + * @param scheduleId INT8U + * @param scheduleId INT8U + * @param userId INT16U + * @param userId INT16U + * @param status INT8U + * @param localStartTime INT32U + * @param localEndTime INT32U + */ +#define emberAfFillCommandDoor \ + LockClusterGetYeardaySchedule(scheduleId, scheduleId, userId, userId, status, localStartTime, localEndTime) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_GET_YEARDAY_SCHEDULE_COMMAND_ID, "uuuuuuu", scheduleId, scheduleId, userId, userId, status, \ + localStartTime, localEndTime); + +/** @brief Command description for ClearYeardaySchedule + * + * Command: ClearYeardaySchedule + * @param scheduleId INT8U + * @param status INT8U + * @param userId INT16U + */ +#define emberAfFillCommandDoor \ + LockClusterClearYeardaySchedule(scheduleId, status, userId) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_CLEAR_YEARDAY_SCHEDULE_COMMAND_ID, "uuu", scheduleId, status, userId); + +/** @brief Command description for SetHolidaySchedule + * + * Command: SetHolidaySchedule + * @param scheduleId INT8U + * @param status INT8U + * @param localStartTime INT32U + * @param localEndTime INT32U + * @param operatingModeDuringHoliday ENUM8 + */ +#define emberAfFillCommandDoor \ + LockClusterSetHolidaySchedule(scheduleId, status, localStartTime, localEndTime, operatingModeDuringHoliday) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_SET_HOLIDAY_SCHEDULE_COMMAND_ID, "uuuuu", scheduleId, status, localStartTime, localEndTime, \ + operatingModeDuringHoliday); + +/** @brief Command description for GetHolidaySchedule + * + * Command: GetHolidaySchedule + * @param scheduleId INT8U + * @param scheduleId INT8U + * @param status INT8U + * @param localStartTime INT32U + * @param localEndTime INT32U + * @param operatingModeDuringHoliday ENUM8 + */ +#define emberAfFillCommandDoor \ + LockClusterGetHolidaySchedule(scheduleId, scheduleId, status, localStartTime, localEndTime, operatingModeDuringHoliday) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_GET_HOLIDAY_SCHEDULE_COMMAND_ID, "uuuuuu", scheduleId, scheduleId, status, localStartTime, \ + localEndTime, operatingModeDuringHoliday); + +/** @brief Command description for ClearHolidaySchedule + * + * Command: ClearHolidaySchedule + * @param scheduleId INT8U + * @param status INT8U + */ +#define emberAfFillCommandDoor \ + LockClusterClearHolidaySchedule(scheduleId, status) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_CLEAR_HOLIDAY_SCHEDULE_COMMAND_ID, "uu", scheduleId, status); + +/** @brief Command description for SetUserType + * + * Command: SetUserType + * @param userId INT16U + * @param status INT8U + * @param userType DoorLockUserType + */ +#define emberAfFillCommandDoor \ + LockClusterSetUserType(userId, status, userType) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_SET_USER_TYPE_COMMAND_ID, "uuu", userId, status, userType); + +/** @brief Command description for GetUserType + * + * Command: GetUserType + * @param userId INT16U + * @param userId INT16U + * @param userType DoorLockUserType + */ +#define emberAfFillCommandDoor \ + LockClusterGetUserType(userId, userId, userType) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_GET_USER_TYPE_COMMAND_ID, "uuu", userId, userId, userType); + +/** @brief Command description for SetRfid + * + * Command: SetRfid + * @param userId INT16U + * @param status DoorLockSetPinOrIdStatus + * @param userStatus DoorLockUserStatus + * @param userType DoorLockUserType + * @param id CHAR_STRING + */ +#define emberAfFillCommandDoor \ + LockClusterSetRfid(userId, status, userStatus, userType, id) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_SET_RFID_COMMAND_ID, "uuuuu", userId, status, userStatus, userType, id); + +/** @brief Command description for GetRfid + * + * Command: GetRfid + * @param userId INT16U + * @param userId INT16U + * @param userStatus DoorLockUserStatus + * @param userType DoorLockUserType + * @param rfid CHAR_STRING + */ +#define emberAfFillCommandDoor \ + LockClusterGetRfid(userId, userId, userStatus, userType, rfid) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_GET_RFID_COMMAND_ID, "uuuuu", userId, userId, userStatus, userType, rfid); + +/** @brief Command description for ClearRfid + * + * Command: ClearRfid + * @param userId INT16U + * @param status INT8U + */ +#define emberAfFillCommandDoor \ + LockClusterClearRfid(userId, status) emberAfFillExternalBuffer(mask, \ + \ + ZCL_CLEAR_RFID_COMMAND_ID, "uu", userId, status); + +/** @brief Command description for ClearAllRfids + * + * Command: ClearAllRfids + * @param status INT8U + */ +#define emberAfFillCommandDoor \ + LockClusterClearAllRfids(status) emberAfFillExternalBuffer(mask, \ + \ + ZCL_CLEAR_ALL_RFIDS_COMMAND_ID, "u", status); + +/** @brief Command description for OperationEventNotification + * + * Command: OperationEventNotification + * @param source INT8U + * @param eventCode DoorLockOperationEventCode + * @param userId INT16U + * @param pin CHAR_STRING + * @param timeStamp INT32U + * @param data CHAR_STRING + */ +#define emberAfFillCommandDoor \ + LockClusterOperationEventNotification(source, eventCode, userId, pin, timeStamp, data) emberAfFillExternalBuffer( \ + mask, \ + \ + ZCL_OPERATION_EVENT_NOTIFICATION_COMMAND_ID, "uuuuuu", source, eventCode, userId, pin, timeStamp, data); + +/** @brief Command description for ProgrammingEventNotification + * + * Command: ProgrammingEventNotification + * @param source INT8U + * @param eventCode DoorLockProgrammingEventCode + * @param userId INT16U + * @param pin CHAR_STRING + * @param userType DoorLockUserType + * @param userStatus DoorLockUserStatus + * @param timeStamp INT32U + * @param data CHAR_STRING + */ +#define emberAfFillCommandDoor \ + LockClusterProgrammingEventNotification(source, eventCode, userId, pin, userType, userStatus, timeStamp, data) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_PROGRAMMING_EVENT_NOTIFICATION_COMMAND_ID, "uuuuuuuu", source, eventCode, userId, pin, \ + userType, userStatus, timeStamp, data); + +/** @brief Command description for WindowCoveringUpOpen + * + * Command: WindowCoveringUpOpen + */ +#define emberAfFillCommandWindow \ + CoveringClusterWindowCoveringUpOpen() emberAfFillExternalBuffer(mask, \ + \ + ZCL_WINDOW_COVERING_UP_OPEN_COMMAND_ID, "", ); + +/** @brief Command description for WindowCoveringDownClose + * + * Command: WindowCoveringDownClose + */ +#define emberAfFillCommandWindow \ + CoveringClusterWindowCoveringDownClose() emberAfFillExternalBuffer(mask, \ + \ + ZCL_WINDOW_COVERING_DOWN_CLOSE_COMMAND_ID, "", ); + +/** @brief Command description for WindowCoveringStop + * + * Command: WindowCoveringStop + */ +#define emberAfFillCommandWindow \ + CoveringClusterWindowCoveringStop() emberAfFillExternalBuffer(mask, \ + \ + ZCL_WINDOW_COVERING_STOP_COMMAND_ID, "", ); + +/** @brief Command description for WindowCoveringGoToLiftValue + * + * Command: WindowCoveringGoToLiftValue + * @param liftValue INT16U + */ +#define emberAfFillCommandWindow \ + CoveringClusterWindowCoveringGoToLiftValue(liftValue) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_WINDOW_COVERING_GO_TO_LIFT_VALUE_COMMAND_ID, "u", liftValue); + +/** @brief Command description for WindowCoveringGoToLiftPercentage + * + * Command: WindowCoveringGoToLiftPercentage + * @param percentageLiftValue INT8U + */ +#define emberAfFillCommandWindow \ + CoveringClusterWindowCoveringGoToLiftPercentage(percentageLiftValue) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_WINDOW_COVERING_GO_TO_LIFT_PERCENTAGE_COMMAND_ID, "u", percentageLiftValue); + +/** @brief Command description for WindowCoveringGoToTiltValue + * + * Command: WindowCoveringGoToTiltValue + * @param tiltValue INT16U + */ +#define emberAfFillCommandWindow \ + CoveringClusterWindowCoveringGoToTiltValue(tiltValue) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_WINDOW_COVERING_GO_TO_TILT_VALUE_COMMAND_ID, "u", tiltValue); + +/** @brief Command description for WindowCoveringGoToTiltPercentage + * + * Command: WindowCoveringGoToTiltPercentage + * @param percentageTiltValue INT8U + */ +#define emberAfFillCommandWindow \ + CoveringClusterWindowCoveringGoToTiltPercentage(percentageTiltValue) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_WINDOW_COVERING_GO_TO_TILT_PERCENTAGE_COMMAND_ID, "u", percentageTiltValue); + +/** @brief Command description for BarrierControlGoToPercent + * + * Command: BarrierControlGoToPercent + * @param percentOpen INT8U + */ +#define emberAfFillCommandBarrier \ + ControlClusterBarrierControlGoToPercent(percentOpen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_BARRIER_CONTROL_GO_TO_PERCENT_COMMAND_ID, "u", percentOpen); + +/** @brief Command description for BarrierControlStop + * + * Command: BarrierControlStop + */ +#define emberAfFillCommandBarrier \ + ControlClusterBarrierControlStop() emberAfFillExternalBuffer(mask, \ + \ + ZCL_BARRIER_CONTROL_STOP_COMMAND_ID, "", ); + +/** @brief Command description for SetpointRaiseLower + * + * Command: SetpointRaiseLower + * @param mode SetpointAdjustMode + * @param numberOfTransitionsForSequence ENUM8 + * @param amount INT8S + * @param dayOfWeekForSequence DayOfWeek + * @param modeForSequence ModeForSequence + * @param payload INT8U [] + * @param payloadLen int + */ +#define emberAfFillCommandThermostatClusterSetpointRaiseLower(mode, numberOfTransitionsForSequence, amount, dayOfWeekForSequence, \ + modeForSequence, payload, payloadLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_SETPOINT_RAISE_LOWER_COMMAND_ID, "uuuuub", mode, numberOfTransitionsForSequence, amount, \ + dayOfWeekForSequence, modeForSequence, payload, payloadLen); + +/** @brief Command description for SetWeeklySchedule + * + * Command: SetWeeklySchedule + * @param numberOfTransitionsForSequence ENUM8 + * @param timeOfDay INT16U + * @param dayOfWeekForSequence DayOfWeek + * @param relayStatus BITMAP16 + * @param modeForSequence ModeForSequence + * @param localTemperature INT16S + * @param payload INT8U [] + * @param payloadLen int + * @param humidityInPercentage INT8U + * @param setpoint INT16S + * @param unreadEntries INT16U + */ +#define emberAfFillCommandThermostatClusterSetWeeklySchedule(numberOfTransitionsForSequence, timeOfDay, dayOfWeekForSequence, \ + relayStatus, modeForSequence, localTemperature, payload, payloadLen, \ + humidityInPercentage, setpoint, unreadEntries) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_SET_WEEKLY_SCHEDULE_COMMAND_ID, "uuuuuubuuu", numberOfTransitionsForSequence, timeOfDay, \ + dayOfWeekForSequence, relayStatus, modeForSequence, localTemperature, payload, payloadLen, \ + humidityInPercentage, setpoint, unreadEntries); + +/** @brief Command description for GetWeeklySchedule + * + * Command: GetWeeklySchedule + * @param daysToReturn DayOfWeek + * @param modeToReturn ModeForSequence + */ +#define emberAfFillCommandThermostatClusterGetWeeklySchedule(daysToReturn, modeToReturn) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_GET_WEEKLY_SCHEDULE_COMMAND_ID, "uu", daysToReturn, modeToReturn); + +/** @brief Command description for ClearWeeklySchedule + * + * Command: ClearWeeklySchedule + */ +#define emberAfFillCommandThermostatClusterClearWeeklySchedule() \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_CLEAR_WEEKLY_SCHEDULE_COMMAND_ID, "", ); + +/** @brief Command description for GetRelayStatusLog + * + * Command: GetRelayStatusLog + */ +#define emberAfFillCommandThermostatClusterGetRelayStatusLog() \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_GET_RELAY_STATUS_LOG_COMMAND_ID, "", ); + +/** @brief Command description for MoveToHue + * + * Command: MoveToHue + * @param hue INT8U + * @param direction HueDirection + * @param transitionTime INT16U + * @param optionsMask BITMAP8 + * @param optionsOverride BITMAP8 + */ +#define emberAfFillCommandColor \ + ControlClusterMoveToHue(hue, direction, transitionTime, optionsMask, optionsOverride) emberAfFillExternalBuffer( \ + mask, \ + \ + ZCL_MOVE_TO_HUE_COMMAND_ID, "uuuuu", hue, direction, transitionTime, optionsMask, optionsOverride); + +/** @brief Command description for MoveHue + * + * Command: MoveHue + * @param moveMode HueMoveMode + * @param rate INT8U + * @param optionsMask BITMAP8 + * @param optionsOverride BITMAP8 + */ +#define emberAfFillCommandColor \ + ControlClusterMoveHue(moveMode, rate, optionsMask, optionsOverride) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_MOVE_HUE_COMMAND_ID, "uuuu", moveMode, rate, optionsMask, optionsOverride); + +/** @brief Command description for StepHue + * + * Command: StepHue + * @param stepMode HueStepMode + * @param stepSize INT8U + * @param transitionTime INT8U + * @param optionsMask BITMAP8 + * @param optionsOverride BITMAP8 + */ +#define emberAfFillCommandColor \ + ControlClusterStepHue(stepMode, stepSize, transitionTime, optionsMask, optionsOverride) emberAfFillExternalBuffer( \ + mask, \ + \ + ZCL_STEP_HUE_COMMAND_ID, "uuuuu", stepMode, stepSize, transitionTime, optionsMask, optionsOverride); + +/** @brief Command description for MoveToSaturation + * + * Command: MoveToSaturation + * @param saturation INT8U + * @param transitionTime INT16U + * @param optionsMask BITMAP8 + * @param optionsOverride BITMAP8 + */ +#define emberAfFillCommandColor \ + ControlClusterMoveToSaturation(saturation, transitionTime, optionsMask, optionsOverride) emberAfFillExternalBuffer( \ + mask, \ + \ + ZCL_MOVE_TO_SATURATION_COMMAND_ID, "uuuu", saturation, transitionTime, optionsMask, optionsOverride); + +/** @brief Command description for MoveSaturation + * + * Command: MoveSaturation + * @param moveMode SaturationMoveMode + * @param rate INT8U + * @param optionsMask BITMAP8 + * @param optionsOverride BITMAP8 + */ +#define emberAfFillCommandColor \ + ControlClusterMoveSaturation(moveMode, rate, optionsMask, optionsOverride) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_MOVE_SATURATION_COMMAND_ID, "uuuu", moveMode, rate, optionsMask, optionsOverride); + +/** @brief Command description for StepSaturation + * + * Command: StepSaturation + * @param stepMode SaturationStepMode + * @param stepSize INT8U + * @param transitionTime INT8U + * @param optionsMask BITMAP8 + * @param optionsOverride BITMAP8 + */ +#define emberAfFillCommandColor \ + ControlClusterStepSaturation(stepMode, stepSize, transitionTime, optionsMask, optionsOverride) emberAfFillExternalBuffer( \ + mask, \ + \ + ZCL_STEP_SATURATION_COMMAND_ID, "uuuuu", stepMode, stepSize, transitionTime, optionsMask, optionsOverride); + +/** @brief Command description for MoveToHueAndSaturation + * + * Command: MoveToHueAndSaturation + * @param hue INT8U + * @param saturation INT8U + * @param transitionTime INT16U + * @param optionsMask BITMAP8 + * @param optionsOverride BITMAP8 + */ +#define emberAfFillCommandColor \ + ControlClusterMoveToHueAndSaturation(hue, saturation, transitionTime, optionsMask, optionsOverride) emberAfFillExternalBuffer( \ + mask, \ + \ + ZCL_MOVE_TO_HUE_AND_SATURATION_COMMAND_ID, "uuuuu", hue, saturation, transitionTime, optionsMask, optionsOverride); + +/** @brief Command description for MoveToColor + * + * Command: MoveToColor + * @param colorX INT16U + * @param colorY INT16U + * @param transitionTime INT16U + * @param optionsMask BITMAP8 + * @param optionsOverride BITMAP8 + */ +#define emberAfFillCommandColor \ + ControlClusterMoveToColor(colorX, colorY, transitionTime, optionsMask, optionsOverride) emberAfFillExternalBuffer( \ + mask, \ + \ + ZCL_MOVE_TO_COLOR_COMMAND_ID, "uuuuu", colorX, colorY, transitionTime, optionsMask, optionsOverride); + +/** @brief Command description for MoveColor + * + * Command: MoveColor + * @param rateX INT16S + * @param rateY INT16S + * @param optionsMask BITMAP8 + * @param optionsOverride BITMAP8 + */ +#define emberAfFillCommandColor \ + ControlClusterMoveColor(rateX, rateY, optionsMask, optionsOverride) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_MOVE_COLOR_COMMAND_ID, "uuuu", rateX, rateY, optionsMask, optionsOverride); + +/** @brief Command description for StepColor + * + * Command: StepColor + * @param stepX INT16S + * @param stepY INT16S + * @param transitionTime INT16U + * @param optionsMask BITMAP8 + * @param optionsOverride BITMAP8 + */ +#define emberAfFillCommandColor \ + ControlClusterStepColor(stepX, stepY, transitionTime, optionsMask, optionsOverride) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_STEP_COLOR_COMMAND_ID, "uuuuu", stepX, stepY, transitionTime, optionsMask, optionsOverride); + +/** @brief Command description for MoveToColorTemperature + * + * Command: MoveToColorTemperature + * @param colorTemperature INT16U + * @param transitionTime INT16U + * @param optionsMask BITMAP8 + * @param optionsOverride BITMAP8 + */ +#define emberAfFillCommandColor \ + ControlClusterMoveToColorTemperature(colorTemperature, transitionTime, optionsMask, optionsOverride) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_MOVE_TO_COLOR_TEMPERATURE_COMMAND_ID, "uuuu", colorTemperature, transitionTime, optionsMask, \ + optionsOverride); + +/** @brief Command description for EnhancedMoveToHue + * + * Command: EnhancedMoveToHue + * @param enhancedHue INT16U + * @param direction HueDirection + * @param transitionTime INT16U + */ +#define emberAfFillCommandColor \ + ControlClusterEnhancedMoveToHue(enhancedHue, direction, transitionTime) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_ENHANCED_MOVE_TO_HUE_COMMAND_ID, "uuu", enhancedHue, direction, transitionTime); + +/** @brief Command description for EnhancedMoveHue + * + * Command: EnhancedMoveHue + * @param moveMode HueMoveMode + * @param rate INT16U + */ +#define emberAfFillCommandColor \ + ControlClusterEnhancedMoveHue(moveMode, rate) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_ENHANCED_MOVE_HUE_COMMAND_ID, "uu", moveMode, rate); + +/** @brief Command description for EnhancedStepHue + * + * Command: EnhancedStepHue + * @param stepMode HueStepMode + * @param stepSize INT16U + * @param transitionTime INT16U + */ +#define emberAfFillCommandColor \ + ControlClusterEnhancedStepHue(stepMode, stepSize, transitionTime) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_ENHANCED_STEP_HUE_COMMAND_ID, "uuu", stepMode, stepSize, transitionTime); + +/** @brief Command description for EnhancedMoveToHueAndSaturation + * + * Command: EnhancedMoveToHueAndSaturation + * @param enhancedHue INT16U + * @param saturation INT8U + * @param transitionTime INT16U + */ +#define emberAfFillCommandColor \ + ControlClusterEnhancedMoveToHueAndSaturation(enhancedHue, saturation, transitionTime) emberAfFillExternalBuffer( \ + mask, \ + \ + ZCL_ENHANCED_MOVE_TO_HUE_AND_SATURATION_COMMAND_ID, "uuu", enhancedHue, saturation, transitionTime); + +/** @brief Command description for ColorLoopSet + * + * Command: ColorLoopSet + * @param updateFlags ColorLoopUpdateFlags + * @param action ColorLoopAction + * @param direction ColorLoopDirection + * @param time INT16U + * @param startHue INT16U + */ +#define emberAfFillCommandColor \ + ControlClusterColorLoopSet(updateFlags, action, direction, time, startHue) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_COLOR_LOOP_SET_COMMAND_ID, "uuuuu", updateFlags, action, direction, time, startHue); + +/** @brief Command description for StopMoveStep + * + * Command: StopMoveStep + * @param optionsMask BITMAP8 + * @param optionsOverride BITMAP8 + */ +#define emberAfFillCommandColor \ + ControlClusterStopMoveStep(optionsMask, optionsOverride) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_STOP_MOVE_STEP_COMMAND_ID, "uu", optionsMask, optionsOverride); + +/** @brief Command description for MoveColorTemperature + * + * Command: MoveColorTemperature + * @param moveMode HueMoveMode + * @param rate INT16U + * @param colorTemperatureMinimum INT16U + * @param colorTemperatureMaximum INT16U + * @param optionsMask BITMAP8 + * @param optionsOverride BITMAP8 + */ +#define emberAfFillCommandColor \ + ControlClusterMoveColorTemperature(moveMode, rate, colorTemperatureMinimum, colorTemperatureMaximum, optionsMask, \ + optionsOverride) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_MOVE_COLOR_TEMPERATURE_COMMAND_ID, "uuuuuu", moveMode, rate, colorTemperatureMinimum, \ + colorTemperatureMaximum, optionsMask, optionsOverride); + +/** @brief Command description for StepColorTemperature + * + * Command: StepColorTemperature + * @param stepMode HueStepMode + * @param stepSize INT16U + * @param transitionTime INT16U + * @param colorTemperatureMinimum INT16U + * @param colorTemperatureMaximum INT16U + * @param optionsMask BITMAP8 + * @param optionsOverride BITMAP8 + */ +#define emberAfFillCommandColor \ + ControlClusterStepColorTemperature(stepMode, stepSize, transitionTime, colorTemperatureMinimum, colorTemperatureMaximum, \ + optionsMask, optionsOverride) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_STEP_COLOR_TEMPERATURE_COMMAND_ID, "uuuuuuu", stepMode, stepSize, transitionTime, \ + colorTemperatureMinimum, colorTemperatureMaximum, optionsMask, optionsOverride); + +/** @brief Command description for ZoneEnrollResponse + * + * Command: ZoneEnrollResponse + * @param enrollResponseCode IasEnrollResponseCode + * @param zoneStatus IasZoneStatus + * @param zoneId INT8U + * @param extendedStatus BITMAP8 + * @param zoneId INT8U + * @param delay INT16U + */ +#define emberAfFillCommandIAS \ + ZoneClusterZoneEnrollResponse(enrollResponseCode, zoneStatus, zoneId, extendedStatus, zoneId, delay) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_ZONE_ENROLL_RESPONSE_COMMAND_ID, "uuuuuu", enrollResponseCode, zoneStatus, zoneId, \ + extendedStatus, zoneId, delay); + +/** @brief Command description for InitiateNormalOperationMode + * + * Command: InitiateNormalOperationMode + * @param zoneType IasZoneType + * @param manufacturerCode INT16U + */ +#define emberAfFillCommandIAS \ + ZoneClusterInitiateNormalOperationMode(zoneType, manufacturerCode) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_INITIATE_NORMAL_OPERATION_MODE_COMMAND_ID, "uu", zoneType, manufacturerCode); + +/** @brief Command description for InitiateNormalOperationModeResponse + * + * Command: InitiateNormalOperationModeResponse + * @param testModeDuration INT8U + * @param currentZoneSensitivityLevel INT8U + */ +#define emberAfFillCommandIAS \ + ZoneClusterInitiateNormalOperationModeResponse(testModeDuration, currentZoneSensitivityLevel) emberAfFillExternalBuffer( \ + mask, \ + \ + ZCL_INITIATE_NORMAL_OPERATION_MODE_RESPONSE_COMMAND_ID, "uu", testModeDuration, currentZoneSensitivityLevel); + +/** @brief Command description for InitiateTestModeResponse + * + * Command: InitiateTestModeResponse + */ +#define emberAfFillCommandIAS \ + ZoneClusterInitiateTestModeResponse() emberAfFillExternalBuffer(mask, \ + \ + ZCL_INITIATE_TEST_MODE_RESPONSE_COMMAND_ID, "", ); + +/** @brief Command description for Arm + * + * Command: Arm + * @param armMode IasAceArmMode + * @param armNotification IasAceArmNotification + * @param armDisarmCode CHAR_STRING + * @param zoneId INT8U + */ +#define emberAfFillCommandIAS \ + ACEClusterArm(armMode, armNotification, armDisarmCode, zoneId) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_ARM_COMMAND_ID, "uuuu", armMode, armNotification, armDisarmCode, zoneId); + +/** @brief Command description for Bypass + * + * Command: Bypass + * @param numberOfZones INT8U + * @param section0 BITMAP16 + * @param zoneIds INT8U [] + * @param zoneIdsLen int + * @param section1 BITMAP16 + * @param armDisarmCode CHAR_STRING + * @param section2 BITMAP16 + * @param section3 BITMAP16 + * @param section4 BITMAP16 + * @param section5 BITMAP16 + * @param section6 BITMAP16 + * @param section7 BITMAP16 + * @param section8 BITMAP16 + * @param section9 BITMAP16 + * @param section10 BITMAP16 + * @param section11 BITMAP16 + * @param section12 BITMAP16 + * @param section13 BITMAP16 + * @param section14 BITMAP16 + * @param section15 BITMAP16 + */ +#define emberAfFillCommandIAS \ + ACEClusterBypass(numberOfZones, section0, zoneIds, zoneIdsLen, section1, armDisarmCode, section2, section3, section4, \ + section5, section6, section7, section8, section9, section10, section11, section12, section13, section14, \ + section15) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_BYPASS_COMMAND_ID, "uubuuuuuuuuuuuuuuuu", numberOfZones, section0, zoneIds, zoneIdsLen, \ + section1, armDisarmCode, section2, section3, section4, section5, section6, section7, section8, \ + section9, section10, section11, section12, section13, section14, section15); + +/** @brief Command description for Emergency + * + * Command: Emergency + * @param zoneId INT8U + * @param zoneType IasZoneType + * @param ieeeAddress IEEE_ADDRESS + * @param zoneLabel CHAR_STRING + */ +#define emberAfFillCommandIAS \ + ACEClusterEmergency(zoneId, zoneType, ieeeAddress, zoneLabel) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_EMERGENCY_COMMAND_ID, "uuuu", zoneId, zoneType, ieeeAddress, zoneLabel); + +/** @brief Command description for Fire + * + * Command: Fire + * @param zoneId INT8U + * @param zoneStatus ENUM16 + * @param audibleNotification IasAceAudibleNotification + * @param zoneLabel CHAR_STRING + */ +#define emberAfFillCommandIAS \ + ACEClusterFire(zoneId, zoneStatus, audibleNotification, zoneLabel) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_FIRE_COMMAND_ID, "uuuu", zoneId, zoneStatus, audibleNotification, zoneLabel); + +/** @brief Command description for Panic + * + * Command: Panic + * @param panelStatus IasAcePanelStatus + * @param secondsRemaining INT8U + * @param audibleNotification IasAceAudibleNotification + * @param alarmStatus IasAceAlarmStatus + */ +#define emberAfFillCommandIAS \ + ACEClusterPanic(panelStatus, secondsRemaining, audibleNotification, alarmStatus) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_PANIC_COMMAND_ID, "uuuu", panelStatus, secondsRemaining, audibleNotification, alarmStatus); + +/** @brief Command description for GetZoneIdMap + * + * Command: GetZoneIdMap + * @param panelStatus IasAcePanelStatus + * @param secondsRemaining INT8U + * @param audibleNotification IasAceAudibleNotification + * @param alarmStatus IasAceAlarmStatus + */ +#define emberAfFillCommandIAS \ + ACEClusterGetZoneIdMap(panelStatus, secondsRemaining, audibleNotification, alarmStatus) emberAfFillExternalBuffer( \ + mask, \ + \ + ZCL_GET_ZONE_ID_MAP_COMMAND_ID, "uuuu", panelStatus, secondsRemaining, audibleNotification, alarmStatus); + +/** @brief Command description for GetZoneInformation + * + * Command: GetZoneInformation + * @param zoneId INT8U + * @param numberOfZones INT8U + * @param zoneIds INT8U [] + * @param zoneIdsLen int + */ +#define emberAfFillCommandIAS \ + ACEClusterGetZoneInformation(zoneId, numberOfZones, zoneIds, zoneIdsLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_GET_ZONE_INFORMATION_COMMAND_ID, "uub", zoneId, numberOfZones, zoneIds, zoneIdsLen); + +/** @brief Command description for GetPanelStatus + * + * Command: GetPanelStatus + * @param numberOfZones INT8U + * @param bypassResult IasAceBypassResult [] + * @param bypassResultLen int + */ +#define emberAfFillCommandIAS \ + ACEClusterGetPanelStatus(numberOfZones, bypassResult, bypassResultLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_GET_PANEL_STATUS_COMMAND_ID, "ub", numberOfZones, bypassResult, bypassResultLen); + +/** @brief Command description for GetBypassedZoneList + * + * Command: GetBypassedZoneList + * @param zoneStatusComplete BOOLEAN + * @param numberOfZones INT8U + * @param zoneStatusResult IasAceZoneStatusResult [] + * @param zoneStatusResultLen int + */ +#define emberAfFillCommandIAS \ + ACEClusterGetBypassedZoneList(zoneStatusComplete, numberOfZones, zoneStatusResult, zoneStatusResultLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_GET_BYPASSED_ZONE_LIST_COMMAND_ID, "uub", zoneStatusComplete, numberOfZones, \ + zoneStatusResult, zoneStatusResultLen); + +/** @brief Command description for GetZoneStatus + * + * Command: GetZoneStatus + * @param startingZoneId INT8U + * @param maxNumberOfZoneIds INT8U + * @param zoneStatusMaskFlag BOOLEAN + * @param zoneStatusMask BITMAP16 + */ +#define emberAfFillCommandIAS \ + ACEClusterGetZoneStatus(startingZoneId, maxNumberOfZoneIds, zoneStatusMaskFlag, zoneStatusMask) emberAfFillExternalBuffer( \ + mask, \ + \ + ZCL_GET_ZONE_STATUS_COMMAND_ID, "uuuu", startingZoneId, maxNumberOfZoneIds, zoneStatusMaskFlag, zoneStatusMask); + +/** @brief Command description for StartWarning + * + * Command: StartWarning + * @param warningInfo WarningInfo + * @param warningDuration INT16U + * @param strobeDutyCycle INT8U + * @param strobeLevel ENUM8 + */ +#define emberAfFillCommandIAS \ + WDClusterStartWarning(warningInfo, warningDuration, strobeDutyCycle, strobeLevel) emberAfFillExternalBuffer( \ + mask, \ + \ + ZCL_START_WARNING_COMMAND_ID, "uuuu", warningInfo, warningDuration, strobeDutyCycle, strobeLevel); + +/** @brief Command description for Squawk + * + * Command: Squawk + * @param squawkInfo SquawkInfo + */ +#define emberAfFillCommandIAS \ + WDClusterSquawk(squawkInfo) emberAfFillExternalBuffer(mask, \ + \ + ZCL_SQUAWK_COMMAND_ID, "u", squawkInfo); + +/** @brief Command description for MatchProtocolAddress + * + * Command: MatchProtocolAddress + * @param protocolAddress OCTET_STRING + * @param deviceIeeeAddress IEEE_ADDRESS + * @param protocolAddress OCTET_STRING + */ +#define emberAfFillCommandGeneric \ + TunnelClusterMatchProtocolAddress(protocolAddress, deviceIeeeAddress, protocolAddress) emberAfFillExternalBuffer( \ + mask, \ + \ + ZCL_MATCH_PROTOCOL_ADDRESS_COMMAND_ID, "uuu", protocolAddress, deviceIeeeAddress, protocolAddress); + +/** @brief Command description for AdvertiseProtocolAddress + * + * Command: AdvertiseProtocolAddress + * @param protocolAddress OCTET_STRING + */ +#define emberAfFillCommandGeneric \ + TunnelClusterAdvertiseProtocolAddress(protocolAddress) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_ADVERTISE_PROTOCOL_ADDRESS_COMMAND_ID, "u", protocolAddress); + +/** @brief Command description for TransferNpdu + * + * Command: TransferNpdu + * @param npdu DATA8 [] + * @param npduLen int + */ +#define emberAfFillCommandBACnet \ + Protocol TunnelClusterTransferNpdu(npdu, npduLen) emberAfFillExternalBuffer(mask, \ + \ + ZCL_TRANSFER_NPDU_COMMAND_ID, "b", npdu, npduLen); + +/** @brief Command description for TransferAPDU + * + * Command: TransferAPDU + * @param apdu OCTET_STRING + */ +#define emberAfFillCommand11073 \ + Protocol TunnelClusterTransferAPDU(apdu) emberAfFillExternalBuffer(mask, \ + \ + ZCL_TRANSFER_APDU_COMMAND_ID, "u", apdu); + +/** @brief Command description for ConnectRequest + * + * Command: ConnectRequest + * @param connectControl 11073ConnectRequestConnectControl + * @param idleTimeout INT16U + * @param managerTarget IEEE_ADDRESS + * @param managerEndpoint INT8U + */ +#define emberAfFillCommand11073 \ + Protocol TunnelClusterConnectRequest(connectControl, idleTimeout, managerTarget, managerEndpoint) emberAfFillExternalBuffer( \ + mask, \ + \ + ZCL_CONNECT_REQUEST_COMMAND_ID, "uuuu", connectControl, idleTimeout, managerTarget, managerEndpoint); + +/** @brief Command description for DisconnectRequest + * + * Command: DisconnectRequest + * @param managerIEEEAddress IEEE_ADDRESS + */ +#define emberAfFillCommand11073 \ + Protocol TunnelClusterDisconnectRequest(managerIEEEAddress) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_DISCONNECT_REQUEST_COMMAND_ID, "u", managerIEEEAddress); + +/** @brief Command description for ConnectStatusNotification + * + * Command: ConnectStatusNotification + * @param connectStatus 11073TunnelConnectionStatus + */ +#define emberAfFillCommand11073 \ + Protocol TunnelClusterConnectStatusNotification(connectStatus) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_CONNECT_STATUS_NOTIFICATION_COMMAND_ID, "u", connectStatus); + +/** @brief Command description for TransferApdu + * + * Command: TransferApdu + * @param apdu OCTET_STRING + */ +#define emberAfFillCommandISO \ + 7816 Protocol TunnelClusterTransferApdu(apdu) emberAfFillExternalBuffer(mask, \ + \ + ZCL_TRANSFER_APDU_COMMAND_ID, "u", apdu); + +/** @brief Command description for InsertSmartCard + * + * Command: InsertSmartCard + */ +#define emberAfFillCommandISO \ + 7816 Protocol TunnelClusterInsertSmartCard() emberAfFillExternalBuffer(mask, \ + \ + ZCL_INSERT_SMART_CARD_COMMAND_ID, "", ); + +/** @brief Command description for ExtractSmartCard + * + * Command: ExtractSmartCard + */ +#define emberAfFillCommandISO \ + 7816 Protocol TunnelClusterExtractSmartCard() emberAfFillExternalBuffer(mask, \ + \ + ZCL_EXTRACT_SMART_CARD_COMMAND_ID, "", ); + +/** @brief Command description for PublishPrice + * + * Command: PublishPrice + * @param providerId INT32U + * @param commandOptions AmiCommandOptions + * @param rateLabel OCTET_STRING + * @param issuerEventId INT32U + * @param currentTime UTC_TIME + * @param unitOfMeasure AmiUnitOfMeasure + * @param currency INT16U + * @param priceTrailingDigitAndPriceTier PriceTrailingDigitAndPriceTier + * @param numberOfPriceTiersAndRegisterTier PriceNumberOfPriceTiersAndRegisterTier + * @param startTime UTC_TIME + * @param durationInMinutes INT16U + * @param price INT32U + * @param priceRatio INT8U + * @param generationPrice INT32U + * @param generationPriceRatio INT8U + * @param alternateCostDelivered INT32U + * @param alternateCostUnit AlternateCostUnit + * @param alternateCostTrailingDigit AlternateCostTrailingDigit + * @param numberOfBlockThresholds INT8U + * @param priceControl PriceControlMask + * @param numberOfGenerationTiers INT8U + * @param generationTier GenerationTier + * @param extendedNumberOfPriceTiers ExtendedNumberOfPriceTiers + * @param extendedPriceTier ExtendedPriceTier + * @param extendedRegisterTier ExtendedRegisterTier + */ +#define emberAfFillCommandPriceClusterPublishPrice( \ + providerId, commandOptions, rateLabel, issuerEventId, currentTime, unitOfMeasure, currency, priceTrailingDigitAndPriceTier, \ + numberOfPriceTiersAndRegisterTier, startTime, durationInMinutes, price, priceRatio, generationPrice, generationPriceRatio, \ + alternateCostDelivered, alternateCostUnit, alternateCostTrailingDigit, numberOfBlockThresholds, priceControl, \ + numberOfGenerationTiers, generationTier, extendedNumberOfPriceTiers, extendedPriceTier, extendedRegisterTier) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_PUBLISH_PRICE_COMMAND_ID, "uuuuuuuuuuuuuuuuuuuuuuuuu", providerId, commandOptions, rateLabel, \ + issuerEventId, currentTime, unitOfMeasure, currency, priceTrailingDigitAndPriceTier, \ + numberOfPriceTiersAndRegisterTier, startTime, durationInMinutes, price, priceRatio, generationPrice, \ + generationPriceRatio, alternateCostDelivered, alternateCostUnit, alternateCostTrailingDigit, \ + numberOfBlockThresholds, priceControl, numberOfGenerationTiers, generationTier, \ + extendedNumberOfPriceTiers, extendedPriceTier, extendedRegisterTier); + +/** @brief Command description for PublishBlockPeriod + * + * Command: PublishBlockPeriod + * @param providerId INT32U + * @param startTime UTC_TIME + * @param issuerEventId INT32U + * @param numberOfEvents INT8U + * @param blockPeriodStartTime UTC_TIME + * @param blockPeriodDuration INT24U + * @param numberOfPriceTiersAndNumberOfBlockThresholds BITMAP8 + * @param blockPeriodControl BlockPeriodControl + * @param blockPeriodDurationType BlockPeriodDurationType + * @param tariffType TariffType + * @param tariffResolutionPeriod TariffResolutionPeriod + */ +#define emberAfFillCommandPriceClusterPublishBlockPeriod( \ + providerId, startTime, issuerEventId, numberOfEvents, blockPeriodStartTime, blockPeriodDuration, \ + numberOfPriceTiersAndNumberOfBlockThresholds, blockPeriodControl, blockPeriodDurationType, tariffType, tariffResolutionPeriod) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_PUBLISH_BLOCK_PERIOD_COMMAND_ID, "uuuuuuuuuuu", providerId, startTime, issuerEventId, \ + numberOfEvents, blockPeriodStartTime, blockPeriodDuration, \ + numberOfPriceTiersAndNumberOfBlockThresholds, blockPeriodControl, blockPeriodDurationType, \ + tariffType, tariffResolutionPeriod); + +/** @brief Command description for PublishConversionFactor + * + * Command: PublishConversionFactor + * @param issuerEventId INT32U + * @param providerId INT32U + * @param startTime UTC_TIME + * @param issuerEventId INT32U + * @param conversionFactor INT32U + * @param priceAckTime UTC_TIME + * @param conversionFactorTrailingDigit ConversionFactorTrailingDigit + * @param control PriceControlMask + */ +#define emberAfFillCommandPriceClusterPublishConversionFactor( \ + issuerEventId, providerId, startTime, issuerEventId, conversionFactor, priceAckTime, conversionFactorTrailingDigit, control) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_PUBLISH_CONVERSION_FACTOR_COMMAND_ID, "uuuuuuuu", issuerEventId, providerId, startTime, \ + issuerEventId, conversionFactor, priceAckTime, conversionFactorTrailingDigit, control); + +/** @brief Command description for PublishCalorificValue + * + * Command: PublishCalorificValue + * @param issuerEventId INT32U + * @param startTime UTC_TIME + * @param startTime UTC_TIME + * @param numberOfEvents INT8U + * @param calorificValue INT32U + * @param tariffType TariffType + * @param calorificValueUnit CalorificValueUnit + * @param calorificValueTrailingDigit CalorificValueTrailingDigit + */ +#define emberAfFillCommandPriceClusterPublishCalorificValue(issuerEventId, startTime, startTime, numberOfEvents, calorificValue, \ + tariffType, calorificValueUnit, calorificValueTrailingDigit) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_PUBLISH_CALORIFIC_VALUE_COMMAND_ID, "uuuuuuuu", issuerEventId, startTime, startTime, \ + numberOfEvents, calorificValue, tariffType, calorificValueUnit, calorificValueTrailingDigit); + +/** @brief Command description for PublishTariffInformation + * + * Command: PublishTariffInformation + * @param providerId INT32U + * @param earliestStartTime UTC_TIME + * @param issuerEventId INT32U + * @param minIssuerEventId INT32U + * @param issuerTariffId INT32U + * @param numberOfCommands INT8U + * @param startTime UTC_TIME + * @param tariffTypeChargingScheme TariffTypeChargingScheme + * @param tariffLabel OCTET_STRING + * @param numberOfPriceTiersInUse INT8U + * @param numberOfBlockThresholdsInUse INT8U + * @param unitOfMeasure AmiUnitOfMeasure + * @param currency INT16U + * @param priceTrailingDigit PriceTrailingDigit + * @param standingCharge INT32U + * @param tierBlockMode TierBlockMode + * @param blockThresholdMultiplier INT24U + * @param blockThresholdDivisor INT24U + */ +#define emberAfFillCommandPriceClusterPublishTariffInformation( \ + providerId, earliestStartTime, issuerEventId, minIssuerEventId, issuerTariffId, numberOfCommands, startTime, \ + tariffTypeChargingScheme, tariffLabel, numberOfPriceTiersInUse, numberOfBlockThresholdsInUse, unitOfMeasure, currency, \ + priceTrailingDigit, standingCharge, tierBlockMode, blockThresholdMultiplier, blockThresholdDivisor) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_PUBLISH_TARIFF_INFORMATION_COMMAND_ID, "uuuuuuuuuuuuuuuuuu", providerId, earliestStartTime, \ + issuerEventId, minIssuerEventId, issuerTariffId, numberOfCommands, startTime, \ + tariffTypeChargingScheme, tariffLabel, numberOfPriceTiersInUse, numberOfBlockThresholdsInUse, \ + unitOfMeasure, currency, priceTrailingDigit, standingCharge, tierBlockMode, \ + blockThresholdMultiplier, blockThresholdDivisor); + +/** @brief Command description for PublishPriceMatrix + * + * Command: PublishPriceMatrix + * @param providerId INT32U + * @param earliestStartTime UTC_TIME + * @param issuerEventId INT32U + * @param minIssuerEventId INT32U + * @param startTime UTC_TIME + * @param numberOfCommands INT8U + * @param issuerTariffId INT32U + * @param commandIndex INT8U + * @param numberOfCommands INT8U + * @param subPayloadControl PriceMatrixSubPayloadControl + * @param payload PriceMatrixSubPayload [] + * @param payloadLen int + */ +#define emberAfFillCommandPriceClusterPublishPriceMatrix(providerId, earliestStartTime, issuerEventId, minIssuerEventId, \ + startTime, numberOfCommands, issuerTariffId, commandIndex, \ + numberOfCommands, subPayloadControl, payload, payloadLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_PUBLISH_PRICE_MATRIX_COMMAND_ID, "uuuuuuuuuub", providerId, earliestStartTime, issuerEventId, \ + minIssuerEventId, startTime, numberOfCommands, issuerTariffId, commandIndex, numberOfCommands, \ + subPayloadControl, payload, payloadLen); + +/** @brief Command description for PublishBlockThresholds + * + * Command: PublishBlockThresholds + * @param providerId INT32U + * @param earliestStartTime UTC_TIME + * @param issuerEventId INT32U + * @param minIssuerEventId INT32U + * @param startTime UTC_TIME + * @param numberOfCommands INT8U + * @param issuerTariffId INT32U + * @param tariffType TariffType + * @param commandIndex INT8U + * @param numberOfCommands INT8U + * @param subPayloadControl BlockThresholdSubPayloadControl + * @param payload BlockThresholdSubPayload [] + * @param payloadLen int + */ +#define emberAfFillCommandPriceClusterPublishBlockThresholds( \ + providerId, earliestStartTime, issuerEventId, minIssuerEventId, startTime, numberOfCommands, issuerTariffId, tariffType, \ + commandIndex, numberOfCommands, subPayloadControl, payload, payloadLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_PUBLISH_BLOCK_THRESHOLDS_COMMAND_ID, "uuuuuuuuuuub", providerId, earliestStartTime, \ + issuerEventId, minIssuerEventId, startTime, numberOfCommands, issuerTariffId, tariffType, \ + commandIndex, numberOfCommands, subPayloadControl, payload, payloadLen); + +/** @brief Command description for PublishCO2Value + * + * Command: PublishCO2Value + * @param providerId INT32U + * @param issuerTariffId INT32U + * @param issuerEventId INT32U + * @param startTime UTC_TIME + * @param tariffType TariffType + * @param cO2Value INT32U + * @param cO2ValueUnit CO2Unit + * @param cO2ValueTrailingDigit CO2TrailingDigit + */ +#define emberAfFillCommandPriceClusterPublishCO2Value(providerId, issuerTariffId, issuerEventId, startTime, tariffType, cO2Value, \ + cO2ValueUnit, cO2ValueTrailingDigit) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_PUBLISH_CO2_VALUE_COMMAND_ID, "uuuuuuuu", providerId, issuerTariffId, issuerEventId, startTime, \ + tariffType, cO2Value, cO2ValueUnit, cO2ValueTrailingDigit); + +/** @brief Command description for PublishTierLabels + * + * Command: PublishTierLabels + * @param providerId INT32U + * @param issuerTariffId INT32U + * @param issuerEventId INT32U + * @param issuerTariffId INT32U + * @param commandIndex INT8U + * @param numberOfCommands INT8U + * @param numberOfLabels INT8U + * @param tierLabelsPayload INT8U [] + * @param tierLabelsPayloadLen int + */ +#define emberAfFillCommandPriceClusterPublishTierLabels(providerId, issuerTariffId, issuerEventId, issuerTariffId, commandIndex, \ + numberOfCommands, numberOfLabels, tierLabelsPayload, tierLabelsPayloadLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_PUBLISH_TIER_LABELS_COMMAND_ID, "uuuuuuub", providerId, issuerTariffId, issuerEventId, \ + issuerTariffId, commandIndex, numberOfCommands, numberOfLabels, tierLabelsPayload, \ + tierLabelsPayloadLen); + +/** @brief Command description for PublishBillingPeriod + * + * Command: PublishBillingPeriod + * @param providerId INT32U + * @param earliestStartTime UTC_TIME + * @param issuerEventId INT32U + * @param minIssuerEventId INT32U + * @param billingPeriodStartTime UTC_TIME + * @param numberOfCommands INT8U + * @param billingPeriodDuration BillingPeriodDuration + * @param tariffType TariffType + * @param billingPeriodDurationType BillingPeriodDurationType + * @param tariffType TariffType + */ +#define emberAfFillCommandPriceClusterPublishBillingPeriod(providerId, earliestStartTime, issuerEventId, minIssuerEventId, \ + billingPeriodStartTime, numberOfCommands, billingPeriodDuration, \ + tariffType, billingPeriodDurationType, tariffType) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_PUBLISH_BILLING_PERIOD_COMMAND_ID, "uuuuuuuuuu", providerId, earliestStartTime, issuerEventId, \ + minIssuerEventId, billingPeriodStartTime, numberOfCommands, billingPeriodDuration, tariffType, \ + billingPeriodDurationType, tariffType); + +/** @brief Command description for PublishConsolidatedBill + * + * Command: PublishConsolidatedBill + * @param providerId INT32U + * @param issuerTariffId INT32U + * @param issuerEventId INT32U + * @param billingPeriodStartTime UTC_TIME + * @param billingPeriodDuration BillingPeriodDuration + * @param billingPeriodDurationType BillingPeriodDurationType + * @param tariffType TariffType + * @param consolidatedBill INT32U + * @param currency INT16U + * @param billTrailingDigit BillTrailingDigit + */ +#define emberAfFillCommandPriceClusterPublishConsolidatedBill(providerId, issuerTariffId, issuerEventId, billingPeriodStartTime, \ + billingPeriodDuration, billingPeriodDurationType, tariffType, \ + consolidatedBill, currency, billTrailingDigit) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_PUBLISH_CONSOLIDATED_BILL_COMMAND_ID, "uuuuuuuuuu", providerId, issuerTariffId, issuerEventId, \ + billingPeriodStartTime, billingPeriodDuration, billingPeriodDurationType, tariffType, \ + consolidatedBill, currency, billTrailingDigit); + +/** @brief Command description for PublishCppEvent + * + * Command: PublishCppEvent + * @param providerId INT32U + * @param earliestStartTime UTC_TIME + * @param issuerEventId INT32U + * @param minIssuerEventId INT32U + * @param startTime UTC_TIME + * @param numberOfCommands INT8U + * @param durationInMinutes INT16U + * @param tariffType TariffType + * @param tariffType TariffType + * @param cppPriceTier CppPriceTier + * @param cppAuth PublishCppEventCppAuth + */ +#define emberAfFillCommandPriceClusterPublishCppEvent(providerId, earliestStartTime, issuerEventId, minIssuerEventId, startTime, \ + numberOfCommands, durationInMinutes, tariffType, tariffType, cppPriceTier, \ + cppAuth) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_PUBLISH_CPP_EVENT_COMMAND_ID, "uuuuuuuuuuu", providerId, earliestStartTime, issuerEventId, \ + minIssuerEventId, startTime, numberOfCommands, durationInMinutes, tariffType, tariffType, \ + cppPriceTier, cppAuth); + +/** @brief Command description for PublishCreditPayment + * + * Command: PublishCreditPayment + * @param providerId INT32U + * @param earliestStartTime UTC_TIME + * @param issuerEventId INT32U + * @param minIssuerEventId INT32U + * @param creditPaymentDueDate UTC_TIME + * @param numberOfCommands INT8U + * @param creditPaymentOverDueAmount INT32U + * @param tariffType TariffType + * @param creditPaymentStatus CreditPaymentStatus + * @param creditPayment INT32U + * @param creditPaymentDate UTC_TIME + * @param creditPaymentRef OCTET_STRING + */ +#define emberAfFillCommandPriceClusterPublishCreditPayment( \ + providerId, earliestStartTime, issuerEventId, minIssuerEventId, creditPaymentDueDate, numberOfCommands, \ + creditPaymentOverDueAmount, tariffType, creditPaymentStatus, creditPayment, creditPaymentDate, creditPaymentRef) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_PUBLISH_CREDIT_PAYMENT_COMMAND_ID, "uuuuuuuuuuuu", providerId, earliestStartTime, issuerEventId, \ + minIssuerEventId, creditPaymentDueDate, numberOfCommands, creditPaymentOverDueAmount, tariffType, \ + creditPaymentStatus, creditPayment, creditPaymentDate, creditPaymentRef); + +/** @brief Command description for PublishCurrencyConversion + * + * Command: PublishCurrencyConversion + * @param providerId INT32U + * @param issuerEventId INT32U + * @param issuerEventId INT32U + * @param cppAuth CppEventResponseCppAuth + * @param startTime UTC_TIME + * @param oldCurrency INT16U + * @param newCurrency INT16U + * @param conversionFactor INT32U + * @param conversionFactorTrailingDigit ConversionFactorTrailingDigit + * @param currencyChangeControlFlags CurrencyChangeControl + */ +#define emberAfFillCommandPriceClusterPublishCurrencyConversion(providerId, issuerEventId, issuerEventId, cppAuth, startTime, \ + oldCurrency, newCurrency, conversionFactor, \ + conversionFactorTrailingDigit, currencyChangeControlFlags) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_PUBLISH_CURRENCY_CONVERSION_COMMAND_ID, "uuuuuuuuuu", providerId, issuerEventId, issuerEventId, \ + cppAuth, startTime, oldCurrency, newCurrency, conversionFactor, conversionFactorTrailingDigit, \ + currencyChangeControlFlags); + +/** @brief Command description for CancelTariff + * + * Command: CancelTariff + * @param providerId INT32U + * @param latestEndTime UTC_TIME + * @param issuerTariffId INT32U + * @param numberOfRecords INT8U + * @param tariffType TariffType + */ +#define emberAfFillCommandPriceClusterCancelTariff(providerId, latestEndTime, issuerTariffId, numberOfRecords, tariffType) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_CANCEL_TARIFF_COMMAND_ID, "uuuuu", providerId, latestEndTime, issuerTariffId, numberOfRecords, \ + tariffType); + +/** @brief Command description for GetCurrencyConversionCommand + * + * Command: GetCurrencyConversionCommand + */ +#define emberAfFillCommandPriceClusterGetCurrencyConversionCommand() \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_GET_CURRENCY_CONVERSION_COMMAND_COMMAND_ID, "", ); + +/** @brief Command description for GetTariffCancellation + * + * Command: GetTariffCancellation + */ +#define emberAfFillCommandPriceClusterGetTariffCancellation() \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_GET_TARIFF_CANCELLATION_COMMAND_ID, "", ); + +/** @brief Command description for LoadControlEvent + * + * Command: LoadControlEvent + * @param issuerEventId INT32U + * @param issuerEventId INT32U + * @param deviceClass AmiDeviceClass + * @param eventStatus AmiEventStatus + * @param utilityEnrollmentGroup INT8U + * @param eventStatusTime UTC_TIME + * @param startTime UTC_TIME + * @param criticalityLevelApplied AmiCriticalityLevel + * @param durationInMinutes INT16U + * @param coolingTemperatureSetPointApplied INT16U + * @param criticalityLevel AmiCriticalityLevel + * @param heatingTemperatureSetPointApplied INT16U + * @param coolingTemperatureOffset INT8U + * @param averageLoadAdjustmentPercentageApplied INT8S + * @param heatingTemperatureOffset INT8U + * @param dutyCycleApplied INT8U + * @param coolingTemperatureSetPoint INT16S + * @param eventControl AmiEventControl + * @param heatingTemperatureSetPoint INT16S + * @param signatureType SignatureType + * @param averageLoadAdjustmentPercentage INT8S + * @param signature Signature + * @param dutyCycle INT8U + * @param eventControl AmiEventControl + */ +#define emberAfFillCommandDemand \ + Response and Load ControlClusterLoadControlEvent( \ + issuerEventId, issuerEventId, deviceClass, eventStatus, utilityEnrollmentGroup, eventStatusTime, startTime, \ + criticalityLevelApplied, durationInMinutes, coolingTemperatureSetPointApplied, criticalityLevel, \ + heatingTemperatureSetPointApplied, coolingTemperatureOffset, averageLoadAdjustmentPercentageApplied, \ + heatingTemperatureOffset, dutyCycleApplied, coolingTemperatureSetPoint, eventControl, heatingTemperatureSetPoint, \ + signatureType, averageLoadAdjustmentPercentage, signature, dutyCycle, eventControl) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_LOAD_CONTROL_EVENT_COMMAND_ID, "uuuuuuuuuuuuuuuuuuuuuuuu", issuerEventId, issuerEventId, \ + deviceClass, eventStatus, utilityEnrollmentGroup, eventStatusTime, startTime, \ + criticalityLevelApplied, durationInMinutes, coolingTemperatureSetPointApplied, criticalityLevel, \ + heatingTemperatureSetPointApplied, coolingTemperatureOffset, \ + averageLoadAdjustmentPercentageApplied, heatingTemperatureOffset, dutyCycleApplied, \ + coolingTemperatureSetPoint, eventControl, heatingTemperatureSetPoint, signatureType, \ + averageLoadAdjustmentPercentage, signature, dutyCycle, eventControl); + +/** @brief Command description for CancelLoadControlEvent + * + * Command: CancelLoadControlEvent + * @param issuerEventId INT32U + * @param startTime UTC_TIME + * @param deviceClass AmiDeviceClass + * @param numberOfEvents INT8U + * @param utilityEnrollmentGroup INT8U + * @param issuerEventId INT32U + * @param cancelControl AmiCancelControl + * @param effectiveTime UTC_TIME + */ +#define emberAfFillCommandDemand \ + Response and Load ControlClusterCancelLoadControlEvent(issuerEventId, startTime, deviceClass, numberOfEvents, \ + utilityEnrollmentGroup, issuerEventId, cancelControl, effectiveTime) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_CANCEL_LOAD_CONTROL_EVENT_COMMAND_ID, "uuuuuuuu", issuerEventId, startTime, deviceClass, \ + numberOfEvents, utilityEnrollmentGroup, issuerEventId, cancelControl, effectiveTime); + +/** @brief Command description for CancelAllLoadControlEvents + * + * Command: CancelAllLoadControlEvents + * @param cancelControl AmiCancelControl + */ +#define emberAfFillCommandDemand \ + Response and Load ControlClusterCancelAllLoadControlEvents(cancelControl) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_CANCEL_ALL_LOAD_CONTROL_EVENTS_COMMAND_ID, "u", cancelControl); + +/** @brief Command description for GetProfileResponse + * + * Command: GetProfileResponse + * @param endTime UTC_TIME + * @param intervalChannel AmiIntervalChannel + * @param status AmiGetProfileStatus + * @param endTime UTC_TIME + * @param profileIntervalPeriod AmiIntervalPeriod + * @param numberOfPeriods INT8U + * @param numberOfPeriodsDelivered INT8U + * @param intervals INT24U [] + * @param intervalsLen int + */ +#define emberAfFillCommandSimple \ + MeteringClusterGetProfileResponse(endTime, intervalChannel, status, endTime, profileIntervalPeriod, numberOfPeriods, \ + numberOfPeriodsDelivered, intervals, intervalsLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_GET_PROFILE_RESPONSE_COMMAND_ID, "uuuuuuub", endTime, intervalChannel, status, endTime, \ + profileIntervalPeriod, numberOfPeriods, numberOfPeriodsDelivered, intervals, intervalsLen); + +/** @brief Command description for RequestMirror + * + * Command: RequestMirror + * @param endpointId INT16U + */ +#define emberAfFillCommandSimple \ + MeteringClusterRequestMirror(endpointId) emberAfFillExternalBuffer(mask, \ + \ + ZCL_REQUEST_MIRROR_COMMAND_ID, "u", endpointId); + +/** @brief Command description for RemoveMirror + * + * Command: RemoveMirror + * @param endpointId INT16U + */ +#define emberAfFillCommandSimple \ + MeteringClusterRemoveMirror(endpointId) emberAfFillExternalBuffer(mask, \ + \ + ZCL_REMOVE_MIRROR_COMMAND_ID, "u", endpointId); + +/** @brief Command description for RequestFastPollModeResponse + * + * Command: RequestFastPollModeResponse + * @param appliedUpdatePeriod INT8U + * @param fastPollUpdatePeriod INT8U + * @param fastPollModeEndtime UTC_TIME + * @param duration INT8U + */ +#define emberAfFillCommandSimple \ + MeteringClusterRequestFastPollModeResponse(appliedUpdatePeriod, fastPollUpdatePeriod, fastPollModeEndtime, duration) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_REQUEST_FAST_POLL_MODE_RESPONSE_COMMAND_ID, "uuuu", appliedUpdatePeriod, \ + fastPollUpdatePeriod, fastPollModeEndtime, duration); + +/** @brief Command description for ScheduleSnapshotResponse + * + * Command: ScheduleSnapshotResponse + * @param issuerEventId INT32U + * @param issuerEventId INT32U + * @param snapshotResponsePayload SnapshotResponsePayload [] + * @param snapshotResponsePayloadLen int + * @param commandIndex INT8U + * @param commandCount INT8U + * @param snapshotSchedulePayload SnapshotSchedulePayload [] + * @param snapshotSchedulePayloadLen int + */ +#define emberAfFillCommandSimple \ + MeteringClusterScheduleSnapshotResponse(issuerEventId, issuerEventId, snapshotResponsePayload, snapshotResponsePayloadLen, \ + commandIndex, commandCount, snapshotSchedulePayload, snapshotSchedulePayloadLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_SCHEDULE_SNAPSHOT_RESPONSE_COMMAND_ID, "uubuub", issuerEventId, issuerEventId, \ + snapshotResponsePayload, snapshotResponsePayloadLen, commandIndex, commandCount, \ + snapshotSchedulePayload, snapshotSchedulePayloadLen); + +/** @brief Command description for TakeSnapshotResponse + * + * Command: TakeSnapshotResponse + * @param snapshotId INT32U + * @param snapshotCause SnapshotCause + * @param snapshotConfirmation SnapshotConfirmation + */ +#define emberAfFillCommandSimple \ + MeteringClusterTakeSnapshotResponse(snapshotId, snapshotCause, snapshotConfirmation) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_TAKE_SNAPSHOT_RESPONSE_COMMAND_ID, "uuu", snapshotId, snapshotCause, snapshotConfirmation); + +/** @brief Command description for PublishSnapshot + * + * Command: PublishSnapshot + * @param snapshotId INT32U + * @param earliestStartTime UTC_TIME + * @param snapshotTime UTC_TIME + * @param latestEndTime UTC_TIME + * @param totalSnapshotsFound INT8U + * @param snapshotOffset INT8U + * @param commandIndex INT8U + * @param snapshotCause SnapshotCause + * @param totalCommands INT8U + * @param snapshotCause SnapshotCause + * @param snapshotPayloadType SnapshotPayloadType + * @param snapshotPayload INT8U [] + * @param snapshotPayloadLen int + */ +#define emberAfFillCommandSimple \ + MeteringClusterPublishSnapshot(snapshotId, earliestStartTime, snapshotTime, latestEndTime, totalSnapshotsFound, \ + snapshotOffset, commandIndex, snapshotCause, totalCommands, snapshotCause, snapshotPayloadType, \ + snapshotPayload, snapshotPayloadLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_PUBLISH_SNAPSHOT_COMMAND_ID, "uuuuuuuuuuub", snapshotId, earliestStartTime, snapshotTime, \ + latestEndTime, totalSnapshotsFound, snapshotOffset, commandIndex, snapshotCause, totalCommands, \ + snapshotCause, snapshotPayloadType, snapshotPayload, snapshotPayloadLen); + +/** @brief Command description for GetSampledDataResponse + * + * Command: GetSampledDataResponse + * @param sampleId INT16U + * @param issuerEventId INT32U + * @param sampleStartTime UTC_TIME + * @param startSamplingTime UTC_TIME + * @param sampleType SampleType + * @param sampleType SampleType + * @param sampleRequestInterval INT16U + * @param sampleRequestInterval INT16U + * @param numberOfSamples INT16U + * @param maxNumberOfSamples INT16U + * @param samples INT24U [] + * @param samplesLen int + */ +#define emberAfFillCommandSimple \ + MeteringClusterGetSampledDataResponse(sampleId, issuerEventId, sampleStartTime, startSamplingTime, sampleType, sampleType, \ + sampleRequestInterval, sampleRequestInterval, numberOfSamples, maxNumberOfSamples, \ + samples, samplesLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_GET_SAMPLED_DATA_RESPONSE_COMMAND_ID, "uuuuuuuuuub", sampleId, issuerEventId, \ + sampleStartTime, startSamplingTime, sampleType, sampleType, sampleRequestInterval, \ + sampleRequestInterval, numberOfSamples, maxNumberOfSamples, samples, samplesLen); + +/** @brief Command description for ConfigureMirror + * + * Command: ConfigureMirror + * @param issuerEventId INT32U + * @param sampleId INT16U + * @param reportingInterval INT24U + * @param earliestSampleTime UTC_TIME + * @param mirrorNotificationReporting BOOLEAN + * @param sampleType SampleType + * @param notificationScheme INT8U + * @param numberOfSamples INT16U + */ +#define emberAfFillCommandSimple \ + MeteringClusterConfigureMirror(issuerEventId, sampleId, reportingInterval, earliestSampleTime, mirrorNotificationReporting, \ + sampleType, notificationScheme, numberOfSamples) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_CONFIGURE_MIRROR_COMMAND_ID, "uuuuuuuu", issuerEventId, sampleId, reportingInterval, \ + earliestSampleTime, mirrorNotificationReporting, sampleType, notificationScheme, \ + numberOfSamples); + +/** @brief Command description for ConfigureNotificationScheme + * + * Command: ConfigureNotificationScheme + * @param issuerEventId INT32U + * @param notificationScheme INT8U + * @param notificationScheme INT8U + * @param notificationFlags BITMAP32 [] + * @param notificationFlagsLen int + * @param notificationFlagOrder BITMAP32 + */ +#define emberAfFillCommandSimple \ + MeteringClusterConfigureNotificationScheme(issuerEventId, notificationScheme, notificationScheme, notificationFlags, \ + notificationFlagsLen, notificationFlagOrder) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_CONFIGURE_NOTIFICATION_SCHEME_COMMAND_ID, "uuubu", issuerEventId, notificationScheme, \ + notificationScheme, notificationFlags, notificationFlagsLen, notificationFlagOrder); + +/** @brief Command description for ConfigureNotificationFlags + * + * Command: ConfigureNotificationFlags + * @param issuerEventId INT32U + * @param providerId INT32U + * @param notificationScheme INT8U + * @param issuerEventId INT32U + * @param notificationFlagAttributeId INT16U + * @param clusterId INT16U + * @param manufacturerCode INT16U + * @param numberOfCommands INT8U + * @param commandIds INT8U [] + * @param commandIdsLen int + */ +#define emberAfFillCommandSimple \ + MeteringClusterConfigureNotificationFlags(issuerEventId, providerId, notificationScheme, issuerEventId, \ + notificationFlagAttributeId, clusterId, manufacturerCode, numberOfCommands, \ + commandIds, commandIdsLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_CONFIGURE_NOTIFICATION_FLAGS_COMMAND_ID, "uuuuuuuub", issuerEventId, providerId, \ + notificationScheme, issuerEventId, notificationFlagAttributeId, clusterId, manufacturerCode, \ + numberOfCommands, commandIds, commandIdsLen); + +/** @brief Command description for GetNotifiedMessage + * + * Command: GetNotifiedMessage + * @param notificationScheme INT8U + * @param providerId INT32U + * @param notificationFlagAttributeId INT16U + * @param issuerEventId INT32U + * @param notificationFlagsN BITMAP32 + * @param requestDateTime UTC_TIME + * @param implementationDateTime UTC_TIME + * @param proposedSupplyStatus MeteringSupplyStatus + * @param supplyControlBits SupplyControlBits + */ +#define emberAfFillCommandSimple \ + MeteringClusterGetNotifiedMessage(notificationScheme, providerId, notificationFlagAttributeId, issuerEventId, \ + notificationFlagsN, requestDateTime, implementationDateTime, proposedSupplyStatus, \ + supplyControlBits) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_GET_NOTIFIED_MESSAGE_COMMAND_ID, "uuuuuuuuu", notificationScheme, providerId, \ + notificationFlagAttributeId, issuerEventId, notificationFlagsN, requestDateTime, \ + implementationDateTime, proposedSupplyStatus, supplyControlBits); + +/** @brief Command description for SupplyStatusResponse + * + * Command: SupplyStatusResponse + * @param providerId INT32U + * @param proposedSupplyStatus ProposedSupplyStatus + * @param issuerEventId INT32U + * @param implementationDateTime UTC_TIME + * @param supplyStatus MeteringSupplyStatus + */ +#define emberAfFillCommandSimple \ + MeteringClusterSupplyStatusResponse(providerId, proposedSupplyStatus, issuerEventId, implementationDateTime, supplyStatus) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_SUPPLY_STATUS_RESPONSE_COMMAND_ID, "uuuuu", providerId, proposedSupplyStatus, issuerEventId, \ + implementationDateTime, supplyStatus); + +/** @brief Command description for StartSamplingResponse + * + * Command: StartSamplingResponse + * @param sampleId INT16U + * @param issuerEventId INT32U + * @param supplyTamperState SupplyStatus + * @param supplyDepletionState SupplyStatus + * @param supplyUncontrolledFlowState SupplyStatus + * @param loadLimitSupplyState SupplyStatus + */ +#define emberAfFillCommandSimple \ + MeteringClusterStartSamplingResponse(sampleId, issuerEventId, supplyTamperState, supplyDepletionState, \ + supplyUncontrolledFlowState, loadLimitSupplyState) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_START_SAMPLING_RESPONSE_COMMAND_ID, "uuuuuu", sampleId, issuerEventId, supplyTamperState, \ + supplyDepletionState, supplyUncontrolledFlowState, loadLimitSupplyState); + +/** @brief Command description for SetUncontrolledFlowThreshold + * + * Command: SetUncontrolledFlowThreshold + * @param providerId INT32U + * @param issuerEventId INT32U + * @param uncontrolledFlowThreshold INT16U + * @param unitOfMeasure AmiUnitOfMeasure + * @param multiplier INT16U + * @param divisor INT16U + * @param stabilisationPeriod INT8U + * @param measurementPeriod INT16U + */ +#define emberAfFillCommandSimple \ + MeteringClusterSetUncontrolledFlowThreshold(providerId, issuerEventId, uncontrolledFlowThreshold, unitOfMeasure, multiplier, \ + divisor, stabilisationPeriod, measurementPeriod) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_SET_UNCONTROLLED_FLOW_THRESHOLD_COMMAND_ID, "uuuuuuuu", providerId, issuerEventId, \ + uncontrolledFlowThreshold, unitOfMeasure, multiplier, divisor, stabilisationPeriod, \ + measurementPeriod); + +/** @brief Command description for GetLastMessage + * + * Command: GetLastMessage + * @param messageId INT32U + * @param messageControl MessagingControlMask + * @param startTime UTC_TIME + * @param durationInMinutes INT16U + * @param message CHAR_STRING + * @param optionalExtendedMessageControl MessagingExtendedControlMask + */ +#define emberAfFillCommandMessagingClusterGetLastMessage(messageId, messageControl, startTime, durationInMinutes, message, \ + optionalExtendedMessageControl) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_GET_LAST_MESSAGE_COMMAND_ID, "uuuuuu", messageId, messageControl, startTime, durationInMinutes, \ + message, optionalExtendedMessageControl); + +/** @brief Command description for CancelMessage + * + * Command: CancelMessage + * @param messageId INT32U + * @param messageId INT32U + * @param messageControl MessagingControlMask + * @param confirmationTime UTC_TIME + * @param messageConfirmationControl BITMAP8 + * @param messageResponse OCTET_STRING + */ +#define emberAfFillCommandMessagingClusterCancelMessage(messageId, messageId, messageControl, confirmationTime, \ + messageConfirmationControl, messageResponse) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_CANCEL_MESSAGE_COMMAND_ID, "uuuuuu", messageId, messageId, messageControl, confirmationTime, \ + messageConfirmationControl, messageResponse); + +/** @brief Command description for DisplayProtectedMessage + * + * Command: DisplayProtectedMessage + * @param messageId INT32U + * @param earliestImplementationTime UTC_TIME + * @param messageControl MessagingControlMask + * @param startTime UTC_TIME + * @param durationInMinutes INT16U + * @param message CHAR_STRING + * @param optionalExtendedMessageControl MessagingExtendedControlMask + */ +#define emberAfFillCommandMessagingClusterDisplayProtectedMessage( \ + messageId, earliestImplementationTime, messageControl, startTime, durationInMinutes, message, optionalExtendedMessageControl) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_DISPLAY_PROTECTED_MESSAGE_COMMAND_ID, "uuuuuuu", messageId, earliestImplementationTime, \ + messageControl, startTime, durationInMinutes, message, optionalExtendedMessageControl); + +/** @brief Command description for CancelAllMessages + * + * Command: CancelAllMessages + * @param implementationDateTime UTC_TIME + */ +#define emberAfFillCommandMessagingClusterCancelAllMessages(implementationDateTime) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_CANCEL_ALL_MESSAGES_COMMAND_ID, "u", implementationDateTime); + +/** @brief Command description for RequestTunnel + * + * Command: RequestTunnel + * @param protocolId INT8U + * @param tunnelId INT16U + * @param manufacturerCode INT16U + * @param tunnelStatus TunnelingTunnelStatus + * @param flowControlSupport BOOLEAN + * @param maximumIncomingTransferSize INT16U + * @param maximumIncomingTransferSize INT16U + */ +#define emberAfFillCommandTunnelingClusterRequestTunnel(protocolId, tunnelId, manufacturerCode, tunnelStatus, flowControlSupport, \ + maximumIncomingTransferSize, maximumIncomingTransferSize) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_REQUEST_TUNNEL_COMMAND_ID, "uuuuuuu", protocolId, tunnelId, manufacturerCode, tunnelStatus, \ + flowControlSupport, maximumIncomingTransferSize, maximumIncomingTransferSize); + +/** @brief Command description for CloseTunnel + * + * Command: CloseTunnel + * @param tunnelId INT16U + * @param tunnelId INT16U + * @param data INT8U [] + * @param dataLen int + */ +#define emberAfFillCommandTunnelingClusterCloseTunnel(tunnelId, tunnelId, data, dataLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_CLOSE_TUNNEL_COMMAND_ID, "uub", tunnelId, tunnelId, data, dataLen); + +/** @brief Command description for TransferDataClientToServer + * + * Command: TransferDataClientToServer + * @param tunnelId INT16U + * @param tunnelId INT16U + * @param data INT8U [] + * @param dataLen int + * @param transferDataStatus TunnelingTransferDataStatus + */ +#define emberAfFillCommandTunnelingClusterTransferDataClientToServer(tunnelId, tunnelId, data, dataLen, transferDataStatus) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_TRANSFER_DATA_CLIENT_TO_SERVER_COMMAND_ID, "uubu", tunnelId, tunnelId, data, dataLen, \ + transferDataStatus); + +/** @brief Command description for TransferDataErrorClientToServer + * + * Command: TransferDataErrorClientToServer + * @param tunnelId INT16U + * @param tunnelId INT16U + * @param transferDataStatus TunnelingTransferDataStatus + * @param numberOfBytesLeft INT16U + */ +#define emberAfFillCommandTunnelingClusterTransferDataErrorClientToServer(tunnelId, tunnelId, transferDataStatus, \ + numberOfBytesLeft) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_TRANSFER_DATA_ERROR_CLIENT_TO_SERVER_COMMAND_ID, "uuuu", tunnelId, tunnelId, transferDataStatus, \ + numberOfBytesLeft); + +/** @brief Command description for AckTransferDataClientToServer + * + * Command: AckTransferDataClientToServer + * @param tunnelId INT16U + * @param tunnelId INT16U + * @param numberOfBytesLeft INT16U + * @param numberOfOctetsLeft INT16U + */ +#define emberAfFillCommandTunnelingClusterAckTransferDataClientToServer(tunnelId, tunnelId, numberOfBytesLeft, numberOfOctetsLeft) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_ACK_TRANSFER_DATA_CLIENT_TO_SERVER_COMMAND_ID, "uuuu", tunnelId, tunnelId, numberOfBytesLeft, \ + numberOfOctetsLeft); + +/** @brief Command description for ReadyDataClientToServer + * + * Command: ReadyDataClientToServer + * @param tunnelId INT16U + * @param protocolListComplete BOOLEAN + * @param numberOfOctetsLeft INT16U + * @param protocolCount INT8U + * @param protocolList Protocol [] + * @param protocolListLen int + */ +#define emberAfFillCommandTunnelingClusterReadyDataClientToServer(tunnelId, protocolListComplete, numberOfOctetsLeft, \ + protocolCount, protocolList, protocolListLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_READY_DATA_CLIENT_TO_SERVER_COMMAND_ID, "uuuub", tunnelId, protocolListComplete, \ + numberOfOctetsLeft, protocolCount, protocolList, protocolListLen); + +/** @brief Command description for GetSupportedTunnelProtocols + * + * Command: GetSupportedTunnelProtocols + * @param protocolOffset INT8U + * @param tunnelId INT16U + */ +#define emberAfFillCommandTunnelingClusterGetSupportedTunnelProtocols(protocolOffset, tunnelId) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_GET_SUPPORTED_TUNNEL_PROTOCOLS_COMMAND_ID, "uu", protocolOffset, tunnelId); + +/** @brief Command description for SelectAvailableEmergencyCredit + * + * Command: SelectAvailableEmergencyCredit + * @param commandIssueDateTime UTC_TIME + * @param originatingDevice OriginatingDevice + * @param siteId OCTET_STRING + * @param meterSerialNumber OCTET_STRING + */ +#define emberAfFillCommandPrepaymentClusterSelectAvailableEmergencyCredit(commandIssueDateTime, originatingDevice, siteId, \ + meterSerialNumber) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_SELECT_AVAILABLE_EMERGENCY_CREDIT_COMMAND_ID, "uuuu", commandIssueDateTime, originatingDevice, \ + siteId, meterSerialNumber); + +/** @brief Command description for PublishPrepaySnapshot + * + * Command: PublishPrepaySnapshot + * @param snapshotId INT32U + * @param snapshotTime UTC_TIME + * @param totalSnapshotsFound INT8U + * @param commandIndex INT8U + * @param totalNumberOfCommands INT8U + * @param snapshotCause PrepaySnapshotPayloadCause + * @param snapshotPayloadType PrepaySnapshotPayloadType + * @param snapshotPayload INT8U [] + * @param snapshotPayloadLen int + */ +#define emberAfFillCommandPrepaymentClusterPublishPrepaySnapshot(snapshotId, snapshotTime, totalSnapshotsFound, commandIndex, \ + totalNumberOfCommands, snapshotCause, snapshotPayloadType, \ + snapshotPayload, snapshotPayloadLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_PUBLISH_PREPAY_SNAPSHOT_COMMAND_ID, "uuuuuuub", snapshotId, snapshotTime, totalSnapshotsFound, \ + commandIndex, totalNumberOfCommands, snapshotCause, snapshotPayloadType, snapshotPayload, \ + snapshotPayloadLen); + +/** @brief Command description for ChangeDebt + * + * Command: ChangeDebt + * @param issuerEventId INT32U + * @param friendlyCredit FriendlyCredit + * @param debtLabel OCTET_STRING + * @param friendlyCreditCalendarId INT32U + * @param debtAmount INT32U + * @param emergencyCreditLimit INT32U + * @param debtRecoveryMethod DebtRecoveryMethod + * @param emergencyCreditThreshold INT32U + * @param debtAmountType DebtAmountType + * @param debtRecoveryStartTime UTC_TIME + * @param debtRecoveryCollectionTime INT16U + * @param debtRecoveryFrequency DebtRecoveryFrequency + * @param debtRecoveryAmount INT32U + * @param debtRecoveryBalancePercentage INT16U + */ +#define emberAfFillCommandPrepaymentClusterChangeDebt( \ + issuerEventId, friendlyCredit, debtLabel, friendlyCreditCalendarId, debtAmount, emergencyCreditLimit, debtRecoveryMethod, \ + emergencyCreditThreshold, debtAmountType, debtRecoveryStartTime, debtRecoveryCollectionTime, debtRecoveryFrequency, \ + debtRecoveryAmount, debtRecoveryBalancePercentage) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_CHANGE_DEBT_COMMAND_ID, "uuuuuuuuuuuuuu", issuerEventId, friendlyCredit, debtLabel, \ + friendlyCreditCalendarId, debtAmount, emergencyCreditLimit, debtRecoveryMethod, \ + emergencyCreditThreshold, debtAmountType, debtRecoveryStartTime, debtRecoveryCollectionTime, \ + debtRecoveryFrequency, debtRecoveryAmount, debtRecoveryBalancePercentage); + +/** @brief Command description for EmergencyCreditSetup + * + * Command: EmergencyCreditSetup + * @param issuerEventId INT32U + * @param resultType ResultType + * @param startTime UTC_TIME + * @param topUpValue INT32U + * @param emergencyCreditLimit INT32U + * @param sourceOfTopUp OriginatingDevice + * @param emergencyCreditThreshold INT32U + * @param creditRemaining INT32U + */ +#define emberAfFillCommandPrepaymentClusterEmergencyCreditSetup(issuerEventId, resultType, startTime, topUpValue, \ + emergencyCreditLimit, sourceOfTopUp, emergencyCreditThreshold, \ + creditRemaining) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_EMERGENCY_CREDIT_SETUP_COMMAND_ID, "uuuuuuuu", issuerEventId, resultType, startTime, topUpValue, \ + emergencyCreditLimit, sourceOfTopUp, emergencyCreditThreshold, creditRemaining); + +/** @brief Command description for ConsumerTopUp + * + * Command: ConsumerTopUp + * @param originatingDevice OriginatingDevice + * @param topUpCode OCTET_STRING + */ +#define emberAfFillCommandPrepaymentClusterConsumerTopUp(originatingDevice, topUpCode) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_CONSUMER_TOP_UP_COMMAND_ID, "uu", originatingDevice, topUpCode); + +/** @brief Command description for CreditAdjustment + * + * Command: CreditAdjustment + * @param issuerEventId INT32U + * @param commandIndex INT8U + * @param startTime UTC_TIME + * @param totalNumberOfCommands INT8U + * @param creditAdjustmentType CreditAdjustmentType + * @param topUpPayload TopUpPayload [] + * @param topUpPayloadLen int + * @param creditAdjustmentValue INT32U + */ +#define emberAfFillCommandPrepaymentClusterCreditAdjustment(issuerEventId, commandIndex, startTime, totalNumberOfCommands, \ + creditAdjustmentType, topUpPayload, topUpPayloadLen, \ + creditAdjustmentValue) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_CREDIT_ADJUSTMENT_COMMAND_ID, "uuuuubu", issuerEventId, commandIndex, startTime, \ + totalNumberOfCommands, creditAdjustmentType, topUpPayload, topUpPayloadLen, creditAdjustmentValue); + +/** @brief Command description for ChangePaymentMode + * + * Command: ChangePaymentMode + * @param providerId INT32U + * @param commandIndex INT8U + * @param issuerEventId INT32U + * @param totalNumberOfCommands INT8U + * @param implementationDateTime UTC_TIME + * @param debtPayload DebtPayload [] + * @param debtPayloadLen int + * @param proposedPaymentControlConfiguration PaymentControlConfiguration + * @param cutOffValue INT32U + */ +#define emberAfFillCommandPrepaymentClusterChangePaymentMode(providerId, commandIndex, issuerEventId, totalNumberOfCommands, \ + implementationDateTime, debtPayload, debtPayloadLen, \ + proposedPaymentControlConfiguration, cutOffValue) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_CHANGE_PAYMENT_MODE_COMMAND_ID, "uuuuubuu", providerId, commandIndex, issuerEventId, \ + totalNumberOfCommands, implementationDateTime, debtPayload, debtPayloadLen, \ + proposedPaymentControlConfiguration, cutOffValue); + +/** @brief Command description for GetPrepaySnapshot + * + * Command: GetPrepaySnapshot + * @param earliestStartTime UTC_TIME + * @param latestEndTime UTC_TIME + * @param snapshotOffset INT8U + * @param snapshotCause PrepaySnapshotPayloadCause + */ +#define emberAfFillCommandPrepaymentClusterGetPrepaySnapshot(earliestStartTime, latestEndTime, snapshotOffset, snapshotCause) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_GET_PREPAY_SNAPSHOT_COMMAND_ID, "uuuu", earliestStartTime, latestEndTime, snapshotOffset, \ + snapshotCause); + +/** @brief Command description for GetTopUpLog + * + * Command: GetTopUpLog + * @param latestEndTime UTC_TIME + * @param numberOfRecords INT8U + */ +#define emberAfFillCommandPrepaymentClusterGetTopUpLog(latestEndTime, numberOfRecords) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_GET_TOP_UP_LOG_COMMAND_ID, "uu", latestEndTime, numberOfRecords); + +/** @brief Command description for SetLowCreditWarningLevel + * + * Command: SetLowCreditWarningLevel + * @param lowCreditWarningLevel INT32U + */ +#define emberAfFillCommandPrepaymentClusterSetLowCreditWarningLevel(lowCreditWarningLevel) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_SET_LOW_CREDIT_WARNING_LEVEL_COMMAND_ID, "u", lowCreditWarningLevel); + +/** @brief Command description for GetDebtRepaymentLog + * + * Command: GetDebtRepaymentLog + * @param latestEndTime UTC_TIME + * @param numberOfDebts INT8U + * @param debtType RepaymentDebtType + */ +#define emberAfFillCommandPrepaymentClusterGetDebtRepaymentLog(latestEndTime, numberOfDebts, debtType) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_GET_DEBT_REPAYMENT_LOG_COMMAND_ID, "uuu", latestEndTime, numberOfDebts, debtType); + +/** @brief Command description for SetMaximumCreditLimit + * + * Command: SetMaximumCreditLimit + * @param providerId INT32U + * @param issuerEventId INT32U + * @param implementationDateTime UTC_TIME + * @param maximumCreditLevel INT32U + * @param maximumCreditPerTopUp INT32U + */ +#define emberAfFillCommandPrepaymentClusterSetMaximumCreditLimit(providerId, issuerEventId, implementationDateTime, \ + maximumCreditLevel, maximumCreditPerTopUp) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_SET_MAXIMUM_CREDIT_LIMIT_COMMAND_ID, "uuuuu", providerId, issuerEventId, implementationDateTime, \ + maximumCreditLevel, maximumCreditPerTopUp); + +/** @brief Command description for SetOverallDebtCap + * + * Command: SetOverallDebtCap + * @param providerId INT32U + * @param issuerEventId INT32U + * @param implementationDateTime UTC_TIME + * @param overallDebtCap INT32U + */ +#define emberAfFillCommandPrepaymentClusterSetOverallDebtCap(providerId, issuerEventId, implementationDateTime, overallDebtCap) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_SET_OVERALL_DEBT_CAP_COMMAND_ID, "uuuu", providerId, issuerEventId, implementationDateTime, \ + overallDebtCap); + +/** @brief Command description for ReportEventStatus + * + * Command: ReportEventStatus + * @param issuerEventId INT32U + * @param issuerEventId INT32U + * @param eventStatus AmiEventStatus + * @param deviceClass AmiDeviceClass + * @param eventStatusTime UTC_TIME + * @param utilityEnrollmentGroup INT8U + * @param criticalityLevelApplied AmiCriticalityLevel + * @param actionRequired INT8U + * @param coolingTemperatureSetPointApplied INT16U + * @param heatingTemperatureSetPointApplied INT16U + * @param averageLoadAdjustmentPercentageApplied INT8S + * @param dutyCycleApplied INT8U + * @param eventControl AmiEventControl + */ +#define emberAfFillCommandEnergy \ + ManagementClusterReportEventStatus(issuerEventId, issuerEventId, eventStatus, deviceClass, eventStatusTime, \ + utilityEnrollmentGroup, criticalityLevelApplied, actionRequired, \ + coolingTemperatureSetPointApplied, heatingTemperatureSetPointApplied, \ + averageLoadAdjustmentPercentageApplied, dutyCycleApplied, eventControl) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_REPORT_EVENT_STATUS_COMMAND_ID, "uuuuuuuuuuuuu", issuerEventId, issuerEventId, eventStatus, \ + deviceClass, eventStatusTime, utilityEnrollmentGroup, criticalityLevelApplied, actionRequired, \ + coolingTemperatureSetPointApplied, heatingTemperatureSetPointApplied, \ + averageLoadAdjustmentPercentageApplied, dutyCycleApplied, eventControl); + +/** @brief Command description for PublishCalendar + * + * Command: PublishCalendar + * @param providerId INT32U + * @param earliestStartTime UTC_TIME + * @param issuerEventId INT32U + * @param minIssuerEventId INT32U + * @param issuerCalendarId INT32U + * @param numberOfCalendars INT8U + * @param startTime UTC_TIME + * @param calendarType CalendarType + * @param calendarType CalendarType + * @param providerId INT32U + * @param calendarTimeReference CalendarTimeReference + * @param calendarName OCTET_STRING + * @param numberOfSeasons INT8U + * @param numberOfWeekProfiles INT8U + * @param numberOfDayProfiles INT8U + */ +#define emberAfFillCommandCalendarClusterPublishCalendar( \ + providerId, earliestStartTime, issuerEventId, minIssuerEventId, issuerCalendarId, numberOfCalendars, startTime, calendarType, \ + calendarType, providerId, calendarTimeReference, calendarName, numberOfSeasons, numberOfWeekProfiles, numberOfDayProfiles) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_PUBLISH_CALENDAR_COMMAND_ID, "uuuuuuuuuuuuuuu", providerId, earliestStartTime, issuerEventId, \ + minIssuerEventId, issuerCalendarId, numberOfCalendars, startTime, calendarType, calendarType, \ + providerId, calendarTimeReference, calendarName, numberOfSeasons, numberOfWeekProfiles, \ + numberOfDayProfiles); + +/** @brief Command description for PublishDayProfile + * + * Command: PublishDayProfile + * @param providerId INT32U + * @param providerId INT32U + * @param issuerEventId INT32U + * @param issuerCalendarId INT32U + * @param issuerCalendarId INT32U + * @param startDayId INT8U + * @param dayId INT8U + * @param numberOfDays INT8U + * @param totalNumberOfScheduleEntries INT8U + * @param commandIndex INT8U + * @param totalNumberOfCommands INT8U + * @param calendarType CalendarType + * @param dayScheduleEntries ScheduleEntry [] + * @param dayScheduleEntriesLen int + */ +#define emberAfFillCommandCalendarClusterPublishDayProfile( \ + providerId, providerId, issuerEventId, issuerCalendarId, issuerCalendarId, startDayId, dayId, numberOfDays, \ + totalNumberOfScheduleEntries, commandIndex, totalNumberOfCommands, calendarType, dayScheduleEntries, dayScheduleEntriesLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_PUBLISH_DAY_PROFILE_COMMAND_ID, "uuuuuuuuuuuub", providerId, providerId, issuerEventId, \ + issuerCalendarId, issuerCalendarId, startDayId, dayId, numberOfDays, totalNumberOfScheduleEntries, \ + commandIndex, totalNumberOfCommands, calendarType, dayScheduleEntries, dayScheduleEntriesLen); + +/** @brief Command description for PublishWeekProfile + * + * Command: PublishWeekProfile + * @param providerId INT32U + * @param providerId INT32U + * @param issuerEventId INT32U + * @param issuerCalendarId INT32U + * @param issuerCalendarId INT32U + * @param startWeekId INT8U + * @param weekId INT8U + * @param numberOfWeeks INT8U + * @param dayIdRefMonday INT8U + * @param dayIdRefTuesday INT8U + * @param dayIdRefWednesday INT8U + * @param dayIdRefThursday INT8U + * @param dayIdRefFriday INT8U + * @param dayIdRefSaturday INT8U + * @param dayIdRefSunday INT8U + */ +#define emberAfFillCommandCalendarClusterPublishWeekProfile( \ + providerId, providerId, issuerEventId, issuerCalendarId, issuerCalendarId, startWeekId, weekId, numberOfWeeks, dayIdRefMonday, \ + dayIdRefTuesday, dayIdRefWednesday, dayIdRefThursday, dayIdRefFriday, dayIdRefSaturday, dayIdRefSunday) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_PUBLISH_WEEK_PROFILE_COMMAND_ID, "uuuuuuuuuuuuuuu", providerId, providerId, issuerEventId, \ + issuerCalendarId, issuerCalendarId, startWeekId, weekId, numberOfWeeks, dayIdRefMonday, \ + dayIdRefTuesday, dayIdRefWednesday, dayIdRefThursday, dayIdRefFriday, dayIdRefSaturday, \ + dayIdRefSunday); + +/** @brief Command description for PublishSeasons + * + * Command: PublishSeasons + * @param providerId INT32U + * @param providerId INT32U + * @param issuerEventId INT32U + * @param issuerCalendarId INT32U + * @param issuerCalendarId INT32U + * @param commandIndex INT8U + * @param totalNumberOfCommands INT8U + * @param seasonEntries SeasonEntry [] + * @param seasonEntriesLen int + */ +#define emberAfFillCommandCalendarClusterPublishSeasons(providerId, providerId, issuerEventId, issuerCalendarId, issuerCalendarId, \ + commandIndex, totalNumberOfCommands, seasonEntries, seasonEntriesLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_PUBLISH_SEASONS_COMMAND_ID, "uuuuuuub", providerId, providerId, issuerEventId, issuerCalendarId, \ + issuerCalendarId, commandIndex, totalNumberOfCommands, seasonEntries, seasonEntriesLen); + +/** @brief Command description for PublishSpecialDays + * + * Command: PublishSpecialDays + * @param providerId INT32U + * @param startTime UTC_TIME + * @param issuerEventId INT32U + * @param numberOfEvents INT8U + * @param issuerCalendarId INT32U + * @param calendarType CalendarType + * @param startTime UTC_TIME + * @param providerId INT32U + * @param calendarType CalendarType + * @param issuerCalendarId INT32U + * @param totalNumberOfSpecialDays INT8U + * @param commandIndex INT8U + * @param totalNumberOfCommands INT8U + * @param specialDayEntries SpecialDay [] + * @param specialDayEntriesLen int + */ +#define emberAfFillCommandCalendarClusterPublishSpecialDays( \ + providerId, startTime, issuerEventId, numberOfEvents, issuerCalendarId, calendarType, startTime, providerId, calendarType, \ + issuerCalendarId, totalNumberOfSpecialDays, commandIndex, totalNumberOfCommands, specialDayEntries, specialDayEntriesLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_PUBLISH_SPECIAL_DAYS_COMMAND_ID, "uuuuuuuuuuuuub", providerId, startTime, issuerEventId, \ + numberOfEvents, issuerCalendarId, calendarType, startTime, providerId, calendarType, \ + issuerCalendarId, totalNumberOfSpecialDays, commandIndex, totalNumberOfCommands, specialDayEntries, \ + specialDayEntriesLen); + +/** @brief Command description for GetCalendarCancellation + * + * Command: GetCalendarCancellation + * @param providerId INT32U + * @param issuerCalendarId INT32U + * @param calendarType CalendarType + */ +#define emberAfFillCommandCalendarClusterGetCalendarCancellation(providerId, issuerCalendarId, calendarType) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_GET_CALENDAR_CANCELLATION_COMMAND_ID, "uuu", providerId, issuerCalendarId, calendarType); + +/** @brief Command description for GetChangeOfTenancy + * + * Command: GetChangeOfTenancy + * @param providerId INT32U + * @param issuerEventId INT32U + * @param tariffType TariffType + * @param implementationDateTime UTC_TIME + * @param proposedTenancyChangeControl ProposedChangeControl + */ +#define emberAfFillCommandDevice \ + ManagementClusterGetChangeOfTenancy(providerId, issuerEventId, tariffType, implementationDateTime, \ + proposedTenancyChangeControl) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_GET_CHANGE_OF_TENANCY_COMMAND_ID, "uuuuu", providerId, issuerEventId, tariffType, \ + implementationDateTime, proposedTenancyChangeControl); + +/** @brief Command description for GetChangeOfSupplier + * + * Command: GetChangeOfSupplier + * @param currentProviderId INT32U + * @param issuerEventId INT32U + * @param tariffType TariffType + * @param proposedProviderId INT32U + * @param providerChangeImplementationTime UTC_TIME + * @param providerChangeControl ProposedChangeControl + * @param proposedProviderName OCTET_STRING + * @param proposedProviderContactDetails OCTET_STRING + */ +#define emberAfFillCommandDevice \ + ManagementClusterGetChangeOfSupplier(currentProviderId, issuerEventId, tariffType, proposedProviderId, \ + providerChangeImplementationTime, providerChangeControl, proposedProviderName, \ + proposedProviderContactDetails) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_GET_CHANGE_OF_SUPPLIER_COMMAND_ID, "uuuuuuuu", currentProviderId, issuerEventId, tariffType, \ + proposedProviderId, providerChangeImplementationTime, providerChangeControl, \ + proposedProviderName, proposedProviderContactDetails); + +/** @brief Command description for RequestNewPassword + * + * Command: RequestNewPassword + * @param passwordType PasswordType + * @param issuerEventId INT32U + * @param implementationDateTime UTC_TIME + * @param durationInMinutes INT16U + * @param passwordType PasswordType + * @param password OCTET_STRING + */ +#define emberAfFillCommandDevice \ + ManagementClusterRequestNewPassword(passwordType, issuerEventId, implementationDateTime, durationInMinutes, passwordType, \ + password) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_REQUEST_NEW_PASSWORD_COMMAND_ID, "uuuuuu", passwordType, issuerEventId, \ + implementationDateTime, durationInMinutes, passwordType, password); + +/** @brief Command description for GetSiteId + * + * Command: GetSiteId + * @param issuerEventId INT32U + * @param siteIdTime UTC_TIME + * @param providerId INT32U + * @param siteId OCTET_STRING + */ +#define emberAfFillCommandDevice \ + ManagementClusterGetSiteId(issuerEventId, siteIdTime, providerId, siteId) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_GET_SITE_ID_COMMAND_ID, "uuuu", issuerEventId, siteIdTime, providerId, siteId); + +/** @brief Command description for ReportEventConfiguration + * + * Command: ReportEventConfiguration + * @param commandIndex INT8U + * @param issuerEventId INT32U + * @param totalCommands INT8U + * @param startDateTime UTC_TIME + * @param eventConfigurationPayload EventConfigurationPayload [] + * @param eventConfigurationPayloadLen int + * @param eventConfiguration EventConfiguration + * @param configurationControl EventConfigurationControl + * @param eventConfigurationPayload INT8U [] + * @param eventConfigurationPayloadLen int + */ +#define emberAfFillCommandDevice \ + ManagementClusterReportEventConfiguration(commandIndex, issuerEventId, totalCommands, startDateTime, \ + eventConfigurationPayload, eventConfigurationPayloadLen, eventConfiguration, \ + configurationControl, eventConfigurationPayload, eventConfigurationPayloadLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_REPORT_EVENT_CONFIGURATION_COMMAND_ID, "uuuubuub", commandIndex, issuerEventId, \ + totalCommands, startDateTime, eventConfigurationPayload, eventConfigurationPayloadLen, \ + eventConfiguration, configurationControl, eventConfigurationPayload, \ + eventConfigurationPayloadLen); + +/** @brief Command description for GetCIN + * + * Command: GetCIN + * @param eventId INT16U + */ +#define emberAfFillCommandDevice \ + ManagementClusterGetCIN(eventId) emberAfFillExternalBuffer(mask, \ + \ + ZCL_GET_CIN_COMMAND_ID, "u", eventId); + +/** @brief Command description for UpdateCIN + * + * Command: UpdateCIN + * @param issuerEventId INT32U + * @param implementationTime UTC_TIME + * @param providerId INT32U + * @param customerIdNumber OCTET_STRING + */ +#define emberAfFillCommandDevice \ + ManagementClusterUpdateCIN(issuerEventId, implementationTime, providerId, customerIdNumber) emberAfFillExternalBuffer( \ + mask, \ + \ + ZCL_UPDATE_CIN_COMMAND_ID, "uuuu", issuerEventId, implementationTime, providerId, customerIdNumber); + +/** @brief Command description for GetEventLog + * + * Command: GetEventLog + * @param eventControlLogId EventControlLogId + * @param logId EventLogId + * @param eventId INT16U + * @param eventId INT16U + * @param startTime UTC_TIME + * @param eventTime UTC_TIME + * @param endTime UTC_TIME + * @param eventControl EventActionControl + * @param numberOfEvents INT8U + * @param eventData OCTET_STRING + * @param eventOffset INT16U + */ +#define emberAfFillCommandEventsClusterGetEventLog(eventControlLogId, logId, eventId, eventId, startTime, eventTime, endTime, \ + eventControl, numberOfEvents, eventData, eventOffset) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_GET_EVENT_LOG_COMMAND_ID, "uuuuuuuuuuu", eventControlLogId, logId, eventId, eventId, startTime, \ + eventTime, endTime, eventControl, numberOfEvents, eventData, eventOffset); + +/** @brief Command description for ClearEventLogRequest + * + * Command: ClearEventLogRequest + * @param logId EventLogId + * @param totalNumberOfEvents INT16U + * @param commandIndex INT8U + * @param totalCommands INT8U + * @param logPayloadControl NumberOfEventsLogPayloadControl + * @param logPayload EventLogPayload [] + * @param logPayloadLen int + */ +#define emberAfFillCommandEventsClusterClearEventLogRequest(logId, totalNumberOfEvents, commandIndex, totalCommands, \ + logPayloadControl, logPayload, logPayloadLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_CLEAR_EVENT_LOG_REQUEST_COMMAND_ID, "uuuuub", logId, totalNumberOfEvents, commandIndex, \ + totalCommands, logPayloadControl, logPayload, logPayloadLen); + +/** @brief Command description for ClearEventLogResponse + * + * Command: ClearEventLogResponse + * @param clearedEventsLogs ClearedEventsLogs + */ +#define emberAfFillCommandEventsClusterClearEventLogResponse(clearedEventsLogs) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_CLEAR_EVENT_LOG_RESPONSE_COMMAND_ID, "u", clearedEventsLogs); + +/** @brief Command description for PairingResponse + * + * Command: PairingResponse + * @param pairingInformationVersion INT32U + * @param localPairingInformationVersion INT32U + * @param totalNumberOfDevices INT8U + * @param eui64OfRequestingDevice IEEE_ADDRESS + * @param commandIndex INT8U + * @param totalNumberOfCommands INT8U + * @param eui64s IEEE_ADDRESS [] + * @param eui64sLen int + */ +#define emberAfFillCommandMDU \ + PairingClusterPairingResponse(pairingInformationVersion, localPairingInformationVersion, totalNumberOfDevices, \ + eui64OfRequestingDevice, commandIndex, totalNumberOfCommands, eui64s, eui64sLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_PAIRING_RESPONSE_COMMAND_ID, "uuuuuub", pairingInformationVersion, \ + localPairingInformationVersion, totalNumberOfDevices, eui64OfRequestingDevice, commandIndex, \ + totalNumberOfCommands, eui64s, eui64sLen); + +/** @brief Command description for GetSuspendZclMessagesStatus + * + * Command: GetSuspendZclMessagesStatus + * @param period INT8U + */ +#define emberAfFillCommandSub \ + -GHzClusterGetSuspendZclMessagesStatus(period) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_GET_SUSPEND_ZCL_MESSAGES_STATUS_COMMAND_ID, "u", period); + +/** @brief Command description for InitiateKeyEstablishmentRequest + * + * Command: InitiateKeyEstablishmentRequest + * @param keyEstablishmentSuite BITMAP16 + * @param requestedKeyEstablishmentSuite BITMAP16 + * @param ephemeralDataGenerateTime INT8U + * @param ephemeralDataGenerateTime INT8U + * @param confirmKeyGenerateTime INT8U + * @param confirmKeyGenerateTime INT8U + * @param identity Identity + * @param identity Identity + */ +#define emberAfFillCommandKey \ + EstablishmentClusterInitiateKeyEstablishmentRequest(keyEstablishmentSuite, requestedKeyEstablishmentSuite, \ + ephemeralDataGenerateTime, ephemeralDataGenerateTime, \ + confirmKeyGenerateTime, confirmKeyGenerateTime, identity, identity) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_INITIATE_KEY_ESTABLISHMENT_REQUEST_COMMAND_ID, "uuuuuuuu", keyEstablishmentSuite, \ + requestedKeyEstablishmentSuite, ephemeralDataGenerateTime, ephemeralDataGenerateTime, \ + confirmKeyGenerateTime, confirmKeyGenerateTime, identity, identity); + +/** @brief Command description for EphemeralDataRequest + * + * Command: EphemeralDataRequest + * @param ephemeralData EphemeralData + * @param ephemeralData EphemeralData + */ +#define emberAfFillCommandKey \ + EstablishmentClusterEphemeralDataRequest(ephemeralData, ephemeralData) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_EPHEMERAL_DATA_REQUEST_COMMAND_ID, "uu", ephemeralData, ephemeralData); + +/** @brief Command description for ConfirmKeyDataRequest + * + * Command: ConfirmKeyDataRequest + * @param secureMessageAuthenticationCode Smac + * @param secureMessageAuthenticationCode Smac + */ +#define emberAfFillCommandKey \ + EstablishmentClusterConfirmKeyDataRequest(secureMessageAuthenticationCode, secureMessageAuthenticationCode) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_CONFIRM_KEY_DATA_REQUEST_COMMAND_ID, "uu", secureMessageAuthenticationCode, \ + secureMessageAuthenticationCode); + +/** @brief Command description for TerminateKeyEstablishment + * + * Command: TerminateKeyEstablishment + * @param statusCode AmiKeyEstablishmentStatus + * @param waitTime INT8U + * @param keyEstablishmentSuite BITMAP16 + */ +#define emberAfFillCommandKey \ + EstablishmentClusterTerminateKeyEstablishment(statusCode, waitTime, keyEstablishmentSuite) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_TERMINATE_KEY_ESTABLISHMENT_COMMAND_ID, "uuu", statusCode, waitTime, keyEstablishmentSuite); + +/** @brief Command description for RequestInformation + * + * Command: RequestInformation + * @param inquiryId ENUM8 + * @param number INT8U + * @param dataTypeId BITMAP8 + * @param buffer INT8U [] + * @param bufferLen int + * @param requestInformationPayload INT8U [] + * @param requestInformationPayloadLen int + */ +#define emberAfFillCommandInformationClusterRequestInformation(inquiryId, number, dataTypeId, buffer, bufferLen, \ + requestInformationPayload, requestInformationPayloadLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_REQUEST_INFORMATION_COMMAND_ID, "uuubb", inquiryId, number, dataTypeId, buffer, bufferLen, \ + requestInformationPayload, requestInformationPayloadLen); + +/** @brief Command description for PushInformationResponse + * + * Command: PushInformationResponse + * @param notificationList Notification [] + * @param notificationListLen int + * @param contents INT8U [] + * @param contentsLen int + */ +#define emberAfFillCommandInformationClusterPushInformationResponse(notificationList, notificationListLen, contents, contentsLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_PUSH_INFORMATION_RESPONSE_COMMAND_ID, "bb", notificationList, notificationListLen, contents, \ + contentsLen); + +/** @brief Command description for SendPreference + * + * Command: SendPreference + * @param preferenceType INT16U + * @param statusFeedbackList Status [] + * @param statusFeedbackListLen int + * @param preferencePayload INT8U [] + * @param preferencePayloadLen int + */ +#define emberAfFillCommandInformationClusterSendPreference(preferenceType, statusFeedbackList, statusFeedbackListLen, \ + preferencePayload, preferencePayloadLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_SEND_PREFERENCE_COMMAND_ID, "ubb", preferenceType, statusFeedbackList, statusFeedbackListLen, \ + preferencePayload, preferencePayloadLen); + +/** @brief Command description for ServerRequestPreference + * + * Command: ServerRequestPreference + * @param statusFeedback Status + * @param preferenceType INT16U + * @param preferencePayload INT8U [] + * @param preferencePayloadLen int + */ +#define emberAfFillCommandInformationClusterServerRequestPreference(statusFeedback, preferenceType, preferencePayload, \ + preferencePayloadLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_SERVER_REQUEST_PREFERENCE_COMMAND_ID, "uub", statusFeedback, preferenceType, preferencePayload, \ + preferencePayloadLen); + +/** @brief Command description for Update + * + * Command: Update + * @param accessControl ENUM8 + * @param statusFeedbackList Status [] + * @param statusFeedbackListLen int + * @param option BITMAP8 + * @param contents INT8U [] + * @param contentsLen int + */ +#define emberAfFillCommandInformationClusterUpdate(accessControl, statusFeedbackList, statusFeedbackListLen, option, contents, \ + contentsLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_UPDATE_COMMAND_ID, "ubub", accessControl, statusFeedbackList, statusFeedbackListLen, option, \ + contents, contentsLen); + +/** @brief Command description for Delete + * + * Command: Delete + * @param deletionOptions BITMAP8 + * @param notificationList Notification [] + * @param notificationListLen int + * @param contentIds INT16U [] + * @param contentIdsLen int + */ +#define emberAfFillCommandInformationClusterDelete(deletionOptions, notificationList, notificationListLen, contentIds, \ + contentIdsLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_DELETE_COMMAND_ID, "ubb", deletionOptions, notificationList, notificationListLen, contentIds, \ + contentIdsLen); + +/** @brief Command description for ConfigureNodeDescription + * + * Command: ConfigureNodeDescription + * @param description CHAR_STRING + * @param notificationList Notification [] + * @param notificationListLen int + */ +#define emberAfFillCommandInformationClusterConfigureNodeDescription(description, notificationList, notificationListLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_CONFIGURE_NODE_DESCRIPTION_COMMAND_ID, "ub", description, notificationList, \ + notificationListLen); + +/** @brief Command description for ConfigureDeliveryEnable + * + * Command: ConfigureDeliveryEnable + * @param enable BOOLEAN + */ +#define emberAfFillCommandInformationClusterConfigureDeliveryEnable(enable) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_CONFIGURE_DELIVERY_ENABLE_COMMAND_ID, "u", enable); + +/** @brief Command description for ConfigurePushInformationTimer + * + * Command: ConfigurePushInformationTimer + * @param timer INT32U + */ +#define emberAfFillCommandInformationClusterConfigurePushInformationTimer(timer) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_CONFIGURE_PUSH_INFORMATION_TIMER_COMMAND_ID, "u", timer); + +/** @brief Command description for ConfigureSetRootId + * + * Command: ConfigureSetRootId + * @param rootId INT16U + */ +#define emberAfFillCommandInformationClusterConfigureSetRootId(rootId) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_CONFIGURE_SET_ROOT_ID_COMMAND_ID, "u", rootId); + +/** @brief Command description for ReadFileRequest + * + * Command: ReadFileRequest + * @param fileIndex INT16U + * @param writeOptions BITMAP8 + * @param fileStartPositionAndRequestedOctetCount INT8U [] + * @param fileStartPositionAndRequestedOctetCountLen int + * @param fileSize INT8U [] + * @param fileSizeLen int + */ +#define emberAfFillCommandData \ + SharingClusterReadFileRequest(fileIndex, writeOptions, fileStartPositionAndRequestedOctetCount, \ + fileStartPositionAndRequestedOctetCountLen, fileSize, fileSizeLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_READ_FILE_REQUEST_COMMAND_ID, "uubb", fileIndex, writeOptions, \ + fileStartPositionAndRequestedOctetCount, fileStartPositionAndRequestedOctetCountLen, fileSize, \ + fileSizeLen); + +/** @brief Command description for ReadRecordRequest + * + * Command: ReadRecordRequest + * @param fileIndex INT16U + * @param fileIndex INT16U + * @param fileStartRecordAndRequestedRecordCount INT8U [] + * @param fileStartRecordAndRequestedRecordCountLen int + * @param fileStartPosition INT32U + * @param octetCount INT32U + */ +#define emberAfFillCommandData \ + SharingClusterReadRecordRequest(fileIndex, fileIndex, fileStartRecordAndRequestedRecordCount, \ + fileStartRecordAndRequestedRecordCountLen, fileStartPosition, octetCount) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_READ_RECORD_REQUEST_COMMAND_ID, "uubuu", fileIndex, fileIndex, \ + fileStartRecordAndRequestedRecordCount, fileStartRecordAndRequestedRecordCountLen, \ + fileStartPosition, octetCount); + +/** @brief Command description for WriteFileResponse + * + * Command: WriteFileResponse + * @param status ENUM8 + * @param fileIndex INT16U + * @param fileIndex INT8U [] + * @param fileIndexLen int + * @param fileStartRecord INT16U + * @param recordCount INT16U + */ +#define emberAfFillCommandData \ + SharingClusterWriteFileResponse(status, fileIndex, fileIndex, fileIndexLen, fileStartRecord, recordCount) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_WRITE_FILE_RESPONSE_COMMAND_ID, "uubuu", status, fileIndex, fileIndex, fileIndexLen, \ + fileStartRecord, recordCount); + +/** @brief Command description for FileTransmission + * + * Command: FileTransmission + * @param transmitOptions BITMAP8 + * @param buffer INT8U [] + * @param bufferLen int + */ +#define emberAfFillCommandData \ + SharingClusterFileTransmission(transmitOptions, buffer, bufferLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_FILE_TRANSMISSION_COMMAND_ID, "ub", transmitOptions, buffer, bufferLen); + +/** @brief Command description for RecordTransmission + * + * Command: RecordTransmission + * @param transmitOptions BITMAP8 + * @param buffer INT8U [] + * @param bufferLen int + */ +#define emberAfFillCommandData \ + SharingClusterRecordTransmission(transmitOptions, buffer, bufferLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_RECORD_TRANSMISSION_COMMAND_ID, "ub", transmitOptions, buffer, bufferLen); + +/** @brief Command description for SearchGame + * + * Command: SearchGame + * @param specificGame ENUM8 + * @param gameId INT16U + * @param gameId INT16U + * @param gameMaster BOOLEAN + * @param listOfGame CHAR_STRING + */ +#define emberAfFillCommandGamingClusterSearchGame(specificGame, gameId, gameId, gameMaster, listOfGame) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_SEARCH_GAME_COMMAND_ID, "uuuuu", specificGame, gameId, gameId, gameMaster, listOfGame); + +/** @brief Command description for JoinGame + * + * Command: JoinGame + * @param gameId INT16U + * @param commandId INT8U + * @param joinAsMaster BOOLEAN + * @param status BITMAP8 + * @param nameOfGame CHAR_STRING + * @param message CHAR_STRING + */ +#define emberAfFillCommandGamingClusterJoinGame(gameId, commandId, joinAsMaster, status, nameOfGame, message) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_JOIN_GAME_COMMAND_ID, "uuuuuu", gameId, commandId, joinAsMaster, status, nameOfGame, message); + +/** @brief Command description for StartGame + * + * Command: StartGame + */ +#define emberAfFillCommandGamingClusterStartGame() \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_START_GAME_COMMAND_ID, "", ); + +/** @brief Command description for PauseGame + * + * Command: PauseGame + */ +#define emberAfFillCommandGamingClusterPauseGame() \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_PAUSE_GAME_COMMAND_ID, "", ); + +/** @brief Command description for ResumeGame + * + * Command: ResumeGame + */ +#define emberAfFillCommandGamingClusterResumeGame() \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_RESUME_GAME_COMMAND_ID, "", ); + +/** @brief Command description for QuitGame + * + * Command: QuitGame + */ +#define emberAfFillCommandGamingClusterQuitGame() \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_QUIT_GAME_COMMAND_ID, "", ); + +/** @brief Command description for EndGame + * + * Command: EndGame + */ +#define emberAfFillCommandGamingClusterEndGame() \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_END_GAME_COMMAND_ID, "", ); + +/** @brief Command description for StartOver + * + * Command: StartOver + */ +#define emberAfFillCommandGamingClusterStartOver() \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_START_OVER_COMMAND_ID, "", ); + +/** @brief Command description for ActionControl + * + * Command: ActionControl + * @param actions BITMAP32 + */ +#define emberAfFillCommandGamingClusterActionControl(actions) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_ACTION_CONTROL_COMMAND_ID, "u", actions); + +/** @brief Command description for DownloadGame + * + * Command: DownloadGame + */ +#define emberAfFillCommandGamingClusterDownloadGame() \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_DOWNLOAD_GAME_COMMAND_ID, "", ); + +/** @brief Command description for PathCreation + * + * Command: PathCreation + * @param originatorAddress DATA16 + * @param originatorAddress DATA16 + * @param destinationAddress DATA16 + * @param destinationAddress DATA16 + * @param dataRate INT8U + * @param dataRate INT8U + */ +#define emberAfFillCommandData \ + Rate ControlClusterPathCreation(originatorAddress, originatorAddress, destinationAddress, destinationAddress, dataRate, \ + dataRate) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_PATH_CREATION_COMMAND_ID, "uuuuuu", originatorAddress, originatorAddress, \ + destinationAddress, destinationAddress, dataRate, dataRate); + +/** @brief Command description for DataRateNotification + * + * Command: DataRateNotification + * @param originatorAddress DATA16 + * @param destinationAddress DATA16 + * @param dataRate INT8U + */ +#define emberAfFillCommandData \ + Rate ControlClusterDataRateNotification(originatorAddress, destinationAddress, dataRate) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_DATA_RATE_NOTIFICATION_COMMAND_ID, "uuu", originatorAddress, destinationAddress, dataRate); + +/** @brief Command description for PathDeletion + * + * Command: PathDeletion + * @param originatorAddress DATA16 + * @param destinationAddress DATA16 + */ +#define emberAfFillCommandData \ + Rate ControlClusterPathDeletion(originatorAddress, destinationAddress) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_PATH_DELETION_COMMAND_ID, "uu", originatorAddress, destinationAddress); + +/** @brief Command description for EstablishmentRequest + * + * Command: EstablishmentRequest + * @param flag BITMAP8 + * @param ackNack ENUM8 + * @param codecType ENUM8 + * @param codecType ENUM8 + * @param sampFreq ENUM8 + * @param codecRate ENUM8 + * @param serviceType ENUM8 + * @param buffer INT8U [] + * @param bufferLen int + */ +#define emberAfFillCommandVoice \ + over ZigBeeClusterEstablishmentRequest(flag, ackNack, codecType, codecType, sampFreq, codecRate, serviceType, buffer, \ + bufferLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_ESTABLISHMENT_REQUEST_COMMAND_ID, "uuuuuuub", flag, ackNack, codecType, codecType, sampFreq, \ + codecRate, serviceType, buffer, bufferLen); + +/** @brief Command description for VoiceTransmission + * + * Command: VoiceTransmission + * @param voiceData INT8U [] + * @param voiceDataLen int + * @param sequenceNumber INT8U + * @param errorFlag ENUM8 + */ +#define emberAfFillCommandVoice \ + over ZigBeeClusterVoiceTransmission(voiceData, voiceDataLen, sequenceNumber, errorFlag) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_VOICE_TRANSMISSION_COMMAND_ID, "buu", voiceData, voiceDataLen, sequenceNumber, errorFlag); + +/** @brief Command description for VoiceTransmissionCompletion + * + * Command: VoiceTransmissionCompletion + * @param controlType ENUM8 + */ +#define emberAfFillCommandVoice \ + over ZigBeeClusterVoiceTransmissionCompletion(controlType) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_VOICE_TRANSMISSION_COMPLETION_COMMAND_ID, "u", controlType); + +/** @brief Command description for ControlResponse + * + * Command: ControlResponse + * @param ackNack ENUM8 + */ +#define emberAfFillCommandVoice \ + over ZigBeeClusterControlResponse(ackNack) emberAfFillExternalBuffer(mask, \ + \ + ZCL_CONTROL_RESPONSE_COMMAND_ID, "u", ackNack); + +/** @brief Command description for JoinChatRequest + * + * Command: JoinChatRequest + * @param uid INT16U + * @param status ENUM8 + * @param nickname CHAR_STRING + * @param cid INT16U + * @param cid INT16U + */ +#define emberAfFillCommandChattingClusterJoinChatRequest(uid, status, nickname, cid, cid) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_JOIN_CHAT_REQUEST_COMMAND_ID, "uuuuu", uid, status, nickname, cid, cid); + +/** @brief Command description for LeaveChatRequest + * + * Command: LeaveChatRequest + * @param cid INT16U + * @param status ENUM8 + * @param uid INT16U + * @param cid INT16U + * @param chatParticipantList ChatParticipant [] + * @param chatParticipantListLen int + */ +#define emberAfFillCommandChattingClusterLeaveChatRequest(cid, status, uid, cid, chatParticipantList, chatParticipantListLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_LEAVE_CHAT_REQUEST_COMMAND_ID, "uuuub", cid, status, uid, cid, chatParticipantList, \ + chatParticipantListLen); + +/** @brief Command description for SearchChatRequest + * + * Command: SearchChatRequest + * @param cid INT16U + * @param uid INT16U + * @param nickname CHAR_STRING + */ +#define emberAfFillCommandChattingClusterSearchChatRequest(cid, uid, nickname) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_SEARCH_CHAT_REQUEST_COMMAND_ID, "uuu", cid, uid, nickname); + +/** @brief Command description for SwitchChairmanResponse + * + * Command: SwitchChairmanResponse + * @param cid INT16U + * @param cid INT16U + * @param uid INT16U + * @param uid INT16U + * @param nickname CHAR_STRING + */ +#define emberAfFillCommandChattingClusterSwitchChairmanResponse(cid, cid, uid, uid, nickname) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_SWITCH_CHAIRMAN_RESPONSE_COMMAND_ID, "uuuuu", cid, cid, uid, uid, nickname); + +/** @brief Command description for StartChatRequest + * + * Command: StartChatRequest + * @param name CHAR_STRING + * @param options BITMAP8 + * @param uid INT16U + * @param chatRoomList ChatRoom [] + * @param chatRoomListLen int + * @param nickname CHAR_STRING + */ +#define emberAfFillCommandChattingClusterStartChatRequest(name, options, uid, chatRoomList, chatRoomListLen, nickname) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_START_CHAT_REQUEST_COMMAND_ID, "uuubu", name, options, uid, chatRoomList, chatRoomListLen, \ + nickname); + +/** @brief Command description for ChatMessage + * + * Command: ChatMessage + * @param destinationUid INT16U + * @param cid INT16U + * @param sourceUid INT16U + * @param cid INT16U + * @param nickname CHAR_STRING + * @param message CHAR_STRING + */ +#define emberAfFillCommandChattingClusterChatMessage(destinationUid, cid, sourceUid, cid, nickname, message) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_CHAT_MESSAGE_COMMAND_ID, "uuuuuu", destinationUid, cid, sourceUid, cid, nickname, message); + +/** @brief Command description for GetNodeInformationRequest + * + * Command: GetNodeInformationRequest + * @param cid INT16U + * @param cid INT16U + * @param uid INT16U + * @param nodeInformationList NodeInformation [] + * @param nodeInformationListLen int + */ +#define emberAfFillCommandChattingClusterGetNodeInformationRequest(cid, cid, uid, nodeInformationList, nodeInformationListLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_GET_NODE_INFORMATION_REQUEST_COMMAND_ID, "uuub", cid, cid, uid, nodeInformationList, \ + nodeInformationListLen); + +/** @brief Command description for SwitchChairmanNotification + * + * Command: SwitchChairmanNotification + * @param cid INT16U + * @param uid INT16U + * @param address DATA16 + * @param endpoint INT8U + */ +#define emberAfFillCommandChattingClusterSwitchChairmanNotification(cid, uid, address, endpoint) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_SWITCH_CHAIRMAN_NOTIFICATION_COMMAND_ID, "uuuu", cid, uid, address, endpoint); + +/** @brief Command description for GetNodeInformationResponse + * + * Command: GetNodeInformationResponse + * @param status ENUM8 + * @param cid INT16U + * @param uid INT16U + * @param addressEndpointAndNickname INT8U [] + * @param addressEndpointAndNicknameLen int + */ +#define emberAfFillCommandChattingClusterGetNodeInformationResponse(status, cid, uid, addressEndpointAndNickname, \ + addressEndpointAndNicknameLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_GET_NODE_INFORMATION_RESPONSE_COMMAND_ID, "uuub", status, cid, uid, addressEndpointAndNickname, \ + addressEndpointAndNicknameLen); + +/** @brief Command description for BuyRequest + * + * Command: BuyRequest + * @param userId OCTET_STRING + * @param serialNumber OCTET_STRING + * @param userType INT16U + * @param currency INT32U + * @param serviceId INT16U + * @param priceTrailingDigit INT8U + * @param goodId OCTET_STRING + * @param price INT32U + * @param timestamp OCTET_STRING + * @param transId INT16U + * @param transStatus ENUM8 + */ +#define emberAfFillCommandPaymentClusterBuyRequest(userId, serialNumber, userType, currency, serviceId, priceTrailingDigit, \ + goodId, price, timestamp, transId, transStatus) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_BUY_REQUEST_COMMAND_ID, "uuuuuuuuuuu", userId, serialNumber, userType, currency, serviceId, \ + priceTrailingDigit, goodId, price, timestamp, transId, transStatus); + +/** @brief Command description for AcceptPayment + * + * Command: AcceptPayment + * @param userId OCTET_STRING + * @param serialNumber OCTET_STRING + * @param userType INT16U + * @param currency INT32U + * @param serviceId INT16U + * @param priceTrailingDigit INT8U + * @param goodId OCTET_STRING + * @param price INT32U + * @param timestamp OCTET_STRING + */ +#define emberAfFillCommandPaymentClusterAcceptPayment(userId, serialNumber, userType, currency, serviceId, priceTrailingDigit, \ + goodId, price, timestamp) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_ACCEPT_PAYMENT_COMMAND_ID, "uuuuuuuuu", userId, serialNumber, userType, currency, serviceId, \ + priceTrailingDigit, goodId, price, timestamp); + +/** @brief Command description for PaymentConfirm + * + * Command: PaymentConfirm + * @param serialNumber OCTET_STRING + * @param serialNumber OCTET_STRING + * @param transId INT16U + * @param status ENUM8 + * @param transStatus ENUM8 + */ +#define emberAfFillCommandPaymentClusterPaymentConfirm(serialNumber, serialNumber, transId, status, transStatus) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_PAYMENT_CONFIRM_COMMAND_ID, "uuuuu", serialNumber, serialNumber, transId, status, transStatus); + +/** @brief Command description for Subscribe + * + * Command: Subscribe + * @param userId OCTET_STRING + * @param userId OCTET_STRING + * @param serviceId INT16U + * @param serviceId INT16U + * @param serviceProviderId INT16U + * @param serviceProviderId INT16U + */ +#define emberAfFillCommandBillingClusterSubscribe(userId, userId, serviceId, serviceId, serviceProviderId, serviceProviderId) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_SUBSCRIBE_COMMAND_ID, "uuuuuu", userId, userId, serviceId, serviceId, serviceProviderId, \ + serviceProviderId); + +/** @brief Command description for Unsubscribe + * + * Command: Unsubscribe + * @param userId OCTET_STRING + * @param userId OCTET_STRING + * @param serviceId INT16U + * @param serviceId INT16U + * @param serviceProviderId INT16U + * @param serviceProviderId INT16U + * @param timestamp OCTET_STRING + * @param duration INT16U + */ +#define emberAfFillCommandBillingClusterUnsubscribe(userId, userId, serviceId, serviceId, serviceProviderId, serviceProviderId, \ + timestamp, duration) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_UNSUBSCRIBE_COMMAND_ID, "uuuuuuuu", userId, userId, serviceId, serviceId, serviceProviderId, \ + serviceProviderId, timestamp, duration); + +/** @brief Command description for StartBillingSession + * + * Command: StartBillingSession + * @param userId OCTET_STRING + * @param serviceId INT16U + * @param serviceProviderId INT16U + */ +#define emberAfFillCommandBillingClusterStartBillingSession(userId, serviceId, serviceProviderId) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_START_BILLING_SESSION_COMMAND_ID, "uuu", userId, serviceId, serviceProviderId); + +/** @brief Command description for StopBillingSession + * + * Command: StopBillingSession + * @param userId OCTET_STRING + * @param serviceId INT16U + * @param serviceProviderId INT16U + */ +#define emberAfFillCommandBillingClusterStopBillingSession(userId, serviceId, serviceProviderId) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_STOP_BILLING_SESSION_COMMAND_ID, "uuu", userId, serviceId, serviceProviderId); + +/** @brief Command description for BillStatusNotification + * + * Command: BillStatusNotification + * @param userId OCTET_STRING + * @param status ENUM8 + */ +#define emberAfFillCommandBillingClusterBillStatusNotification(userId, status) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_BILL_STATUS_NOTIFICATION_COMMAND_ID, "uu", userId, status); + +/** @brief Command description for SessionKeepAlive + * + * Command: SessionKeepAlive + * @param userId OCTET_STRING + * @param serviceId INT16U + * @param serviceProviderId INT16U + */ +#define emberAfFillCommandBillingClusterSessionKeepAlive(userId, serviceId, serviceProviderId) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_SESSION_KEEP_ALIVE_COMMAND_ID, "uuu", userId, serviceId, serviceProviderId); + +/** @brief Command description for GetAlerts + * + * Command: GetAlerts + * @param alertsCount AlertCount + * @param alertStructures AlertStructure [] + * @param alertStructuresLen int + */ +#define emberAfFillCommandAppliance \ + Events and AlertClusterGetAlerts(alertsCount, alertStructures, alertStructuresLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_GET_ALERTS_COMMAND_ID, "ub", alertsCount, alertStructures, alertStructuresLen); + +/** @brief Command description for AlertsNotification + * + * Command: AlertsNotification + * @param alertsCount AlertCount + * @param alertStructures AlertStructure [] + * @param alertStructuresLen int + */ +#define emberAfFillCommandAppliance \ + Events and AlertClusterAlertsNotification(alertsCount, alertStructures, alertStructuresLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_ALERTS_NOTIFICATION_COMMAND_ID, "ub", alertsCount, alertStructures, alertStructuresLen); + +/** @brief Command description for EventsNotification + * + * Command: EventsNotification + * @param eventHeader INT8U + * @param eventId EventIdentification + */ +#define emberAfFillCommandAppliance \ + Events and AlertClusterEventsNotification(eventHeader, eventId) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_EVENTS_NOTIFICATION_COMMAND_ID, "uu", eventHeader, eventId); + +/** @brief Command description for LogNotification + * + * Command: LogNotification + * @param timeStamp TIME_OF_DAY + * @param logId INT32U + * @param logId INT32U + * @param logLength INT32U + * @param logPayload INT8U [] + * @param logPayloadLen int + */ +#define emberAfFillCommandAppliance \ + StatisticsClusterLogNotification(timeStamp, logId, logId, logLength, logPayload, logPayloadLen) emberAfFillExternalBuffer( \ + mask, \ + \ + ZCL_LOG_NOTIFICATION_COMMAND_ID, "uuuub", timeStamp, logId, logId, logLength, logPayload, logPayloadLen); + +/** @brief Command description for LogQueueRequest + * + * Command: LogQueueRequest + * @param timeStamp TIME_OF_DAY + * @param logId INT32U + * @param logLength INT32U + * @param logPayload INT8U [] + * @param logPayloadLen int + */ +#define emberAfFillCommandAppliance \ + StatisticsClusterLogQueueRequest(timeStamp, logId, logLength, logPayload, logPayloadLen) emberAfFillExternalBuffer( \ + mask, \ + \ + ZCL_LOG_QUEUE_REQUEST_COMMAND_ID, "uuub", timeStamp, logId, logLength, logPayload, logPayloadLen); + +/** @brief Command description for LogQueueResponse + * + * Command: LogQueueResponse + * @param logQueueSize INT8U + * @param logIds INT32U [] + * @param logIdsLen int + */ +#define emberAfFillCommandAppliance \ + StatisticsClusterLogQueueResponse(logQueueSize, logIds, logIdsLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_LOG_QUEUE_RESPONSE_COMMAND_ID, "ub", logQueueSize, logIds, logIdsLen); + +/** @brief Command description for StatisticsAvailable + * + * Command: StatisticsAvailable + * @param logQueueSize INT8U + * @param logIds INT32U [] + * @param logIdsLen int + */ +#define emberAfFillCommandAppliance \ + StatisticsClusterStatisticsAvailable(logQueueSize, logIds, logIdsLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_STATISTICS_AVAILABLE_COMMAND_ID, "ub", logQueueSize, logIds, logIdsLen); + +/** @brief Command description for GetProfileInfoCommand + * + * Command: GetProfileInfoCommand + * @param profileCount INT8U + * @param profileIntervalPeriod ENUM8 + * @param maxNumberOfIntervals INT8U + * @param listOfAttributes INT16U [] + * @param listOfAttributesLen int + */ +#define emberAfFillCommandElectrical \ + MeasurementClusterGetProfileInfoCommand(profileCount, profileIntervalPeriod, maxNumberOfIntervals, listOfAttributes, \ + listOfAttributesLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_GET_PROFILE_INFO_COMMAND_COMMAND_ID, "uuub", profileCount, profileIntervalPeriod, \ + maxNumberOfIntervals, listOfAttributes, listOfAttributesLen); + +/** @brief Command description for GetMeasurementProfileResponseCommand + * + * Command: GetMeasurementProfileResponseCommand + * @param startTime INT32U + * @param attributeId INT16U + * @param status ENUM8 + * @param startTime INT32U + * @param profileIntervalPeriod ENUM8 + * @param numberOfIntervals ENUM8 + * @param numberOfIntervalsDelivered INT8U + * @param attributeId INT16U + * @param intervals INT8U [] + * @param intervalsLen int + */ +#define emberAfFillCommandElectrical \ + MeasurementClusterGetMeasurementProfileResponseCommand(startTime, attributeId, status, startTime, profileIntervalPeriod, \ + numberOfIntervals, numberOfIntervalsDelivered, attributeId, intervals, \ + intervalsLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_GET_MEASUREMENT_PROFILE_RESPONSE_COMMAND_COMMAND_ID, "uuuuuuuub", startTime, attributeId, \ + status, startTime, profileIntervalPeriod, numberOfIntervals, numberOfIntervalsDelivered, \ + attributeId, intervals, intervalsLen); + +/** @brief Command description for ScanRequest + * + * Command: ScanRequest + * @param transaction INT32U + * @param zigbeeInformation ZigbeeInformation + * @param zllInformation ZllInformation + */ +#define emberAfFillCommandZLL \ + CommissioningClusterScanRequest(transaction, zigbeeInformation, zllInformation) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_SCAN_REQUEST_COMMAND_ID, "uuu", transaction, zigbeeInformation, zllInformation); + +/** @brief Command description for ScanResponse + * + * Command: ScanResponse + * @param transaction INT32U + * @param rssiCorrection INT8U + * @param zigbeeInformation ZigbeeInformation + * @param zllInformation ZllInformation + * @param keyBitmask KeyBitmask + * @param responseId INT32U + * @param extendedPanId IEEE_ADDRESS + * @param networkUpdateId INT8U + * @param logicalChannel INT8U + * @param panId INT16U + * @param networkAddress INT16U + * @param numberOfSubDevices INT8U + * @param totalGroupIds INT8U + * @param endpointId INT8U + * @param profileId INT16U + * @param deviceId INT16U + * @param version INT8U + * @param groupIdCount INT8U + */ +#define emberAfFillCommandZLL \ + CommissioningClusterScanResponse(transaction, rssiCorrection, zigbeeInformation, zllInformation, keyBitmask, responseId, \ + extendedPanId, networkUpdateId, logicalChannel, panId, networkAddress, numberOfSubDevices, \ + totalGroupIds, endpointId, profileId, deviceId, version, groupIdCount) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_SCAN_RESPONSE_COMMAND_ID, "uuuuuuuuuuuuuuuuuu", transaction, rssiCorrection, \ + zigbeeInformation, zllInformation, keyBitmask, responseId, extendedPanId, networkUpdateId, \ + logicalChannel, panId, networkAddress, numberOfSubDevices, totalGroupIds, endpointId, profileId, \ + deviceId, version, groupIdCount); + +/** @brief Command description for DeviceInformationRequest + * + * Command: DeviceInformationRequest + * @param transaction INT32U + * @param startIndex INT8U + */ +#define emberAfFillCommandZLL \ + CommissioningClusterDeviceInformationRequest(transaction, startIndex) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_DEVICE_INFORMATION_REQUEST_COMMAND_ID, "uu", transaction, startIndex); + +/** @brief Command description for DeviceInformationResponse + * + * Command: DeviceInformationResponse + * @param transaction INT32U + * @param numberOfSubDevices INT8U + * @param startIndex INT8U + * @param deviceInformationRecordCount INT8U + * @param deviceInformationRecordList DeviceInformationRecord [] + * @param deviceInformationRecordListLen int + */ +#define emberAfFillCommandZLL \ + CommissioningClusterDeviceInformationResponse(transaction, numberOfSubDevices, startIndex, deviceInformationRecordCount, \ + deviceInformationRecordList, deviceInformationRecordListLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_DEVICE_INFORMATION_RESPONSE_COMMAND_ID, "uuuub", transaction, numberOfSubDevices, \ + startIndex, deviceInformationRecordCount, deviceInformationRecordList, \ + deviceInformationRecordListLen); + +/** @brief Command description for IdentifyRequest + * + * Command: IdentifyRequest + * @param transaction INT32U + * @param identifyDuration INT16U + */ +#define emberAfFillCommandZLL \ + CommissioningClusterIdentifyRequest(transaction, identifyDuration) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_IDENTIFY_REQUEST_COMMAND_ID, "uu", transaction, identifyDuration); + +/** @brief Command description for ResetToFactoryNewRequest + * + * Command: ResetToFactoryNewRequest + * @param transaction INT32U + */ +#define emberAfFillCommandZLL \ + CommissioningClusterResetToFactoryNewRequest(transaction) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_RESET_TO_FACTORY_NEW_REQUEST_COMMAND_ID, "u", transaction); + +/** @brief Command description for NetworkStartRequest + * + * Command: NetworkStartRequest + * @param transaction INT32U + * @param extendedPanId IEEE_ADDRESS + * @param keyIndex KeyIndex + * @param encryptedNetworkKey SECURITY_KEY + * @param logicalChannel INT8U + * @param panId INT16U + * @param networkAddress INT16U + * @param groupIdentifiersBegin INT16U + * @param groupIdentifiersEnd INT16U + * @param freeNetworkAddressRangeBegin INT16U + * @param freeNetworkAddressRangeEnd INT16U + * @param freeGroupIdentifierRangeBegin INT16U + * @param freeGroupIdentifierRangeEnd INT16U + * @param initiatorIeeeAddress IEEE_ADDRESS + * @param initiatorNetworkAddress INT16U + */ +#define emberAfFillCommandZLL \ + CommissioningClusterNetworkStartRequest( \ + transaction, extendedPanId, keyIndex, encryptedNetworkKey, logicalChannel, panId, networkAddress, groupIdentifiersBegin, \ + groupIdentifiersEnd, freeNetworkAddressRangeBegin, freeNetworkAddressRangeEnd, freeGroupIdentifierRangeBegin, \ + freeGroupIdentifierRangeEnd, initiatorIeeeAddress, initiatorNetworkAddress) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_NETWORK_START_REQUEST_COMMAND_ID, "uuuuuuuuuuuuuuu", transaction, extendedPanId, keyIndex, \ + encryptedNetworkKey, logicalChannel, panId, networkAddress, groupIdentifiersBegin, \ + groupIdentifiersEnd, freeNetworkAddressRangeBegin, freeNetworkAddressRangeEnd, \ + freeGroupIdentifierRangeBegin, freeGroupIdentifierRangeEnd, initiatorIeeeAddress, \ + initiatorNetworkAddress); + +/** @brief Command description for NetworkStartResponse + * + * Command: NetworkStartResponse + * @param transaction INT32U + * @param status ZllStatus + * @param extendedPanId IEEE_ADDRESS + * @param networkUpdateId INT8U + * @param logicalChannel INT8U + * @param panId INT16U + */ +#define emberAfFillCommandZLL \ + CommissioningClusterNetworkStartResponse(transaction, status, extendedPanId, networkUpdateId, logicalChannel, panId) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_NETWORK_START_RESPONSE_COMMAND_ID, "uuuuuu", transaction, status, extendedPanId, \ + networkUpdateId, logicalChannel, panId); + +/** @brief Command description for NetworkJoinRouterRequest + * + * Command: NetworkJoinRouterRequest + * @param transaction INT32U + * @param extendedPanId IEEE_ADDRESS + * @param keyIndex KeyIndex + * @param encryptedNetworkKey SECURITY_KEY + * @param networkUpdateId INT8U + * @param logicalChannel INT8U + * @param panId INT16U + * @param networkAddress INT16U + * @param groupIdentifiersBegin INT16U + * @param groupIdentifiersEnd INT16U + * @param freeNetworkAddressRangeBegin INT16U + * @param freeNetworkAddressRangeEnd INT16U + * @param freeGroupIdentifierRangeBegin INT16U + * @param freeGroupIdentifierRangeEnd INT16U + */ +#define emberAfFillCommandZLL \ + CommissioningClusterNetworkJoinRouterRequest(transaction, extendedPanId, keyIndex, encryptedNetworkKey, networkUpdateId, \ + logicalChannel, panId, networkAddress, groupIdentifiersBegin, \ + groupIdentifiersEnd, freeNetworkAddressRangeBegin, freeNetworkAddressRangeEnd, \ + freeGroupIdentifierRangeBegin, freeGroupIdentifierRangeEnd) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_NETWORK_JOIN_ROUTER_REQUEST_COMMAND_ID, "uuuuuuuuuuuuuu", transaction, extendedPanId, \ + keyIndex, encryptedNetworkKey, networkUpdateId, logicalChannel, panId, networkAddress, \ + groupIdentifiersBegin, groupIdentifiersEnd, freeNetworkAddressRangeBegin, \ + freeNetworkAddressRangeEnd, freeGroupIdentifierRangeBegin, freeGroupIdentifierRangeEnd); + +/** @brief Command description for NetworkJoinRouterResponse + * + * Command: NetworkJoinRouterResponse + * @param transaction INT32U + * @param status ZllStatus + */ +#define emberAfFillCommandZLL \ + CommissioningClusterNetworkJoinRouterResponse(transaction, status) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_NETWORK_JOIN_ROUTER_RESPONSE_COMMAND_ID, "uu", transaction, status); + +/** @brief Command description for NetworkJoinEndDeviceRequest + * + * Command: NetworkJoinEndDeviceRequest + * @param transaction INT32U + * @param extendedPanId IEEE_ADDRESS + * @param keyIndex KeyIndex + * @param encryptedNetworkKey SECURITY_KEY + * @param networkUpdateId INT8U + * @param logicalChannel INT8U + * @param panId INT16U + * @param networkAddress INT16U + * @param groupIdentifiersBegin INT16U + * @param groupIdentifiersEnd INT16U + * @param freeNetworkAddressRangeBegin INT16U + * @param freeNetworkAddressRangeEnd INT16U + * @param freeGroupIdentifierRangeBegin INT16U + * @param freeGroupIdentifierRangeEnd INT16U + */ +#define emberAfFillCommandZLL \ + CommissioningClusterNetworkJoinEndDeviceRequest(transaction, extendedPanId, keyIndex, encryptedNetworkKey, networkUpdateId, \ + logicalChannel, panId, networkAddress, groupIdentifiersBegin, \ + groupIdentifiersEnd, freeNetworkAddressRangeBegin, freeNetworkAddressRangeEnd, \ + freeGroupIdentifierRangeBegin, freeGroupIdentifierRangeEnd) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_NETWORK_JOIN_END_DEVICE_REQUEST_COMMAND_ID, "uuuuuuuuuuuuuu", transaction, extendedPanId, \ + keyIndex, encryptedNetworkKey, networkUpdateId, logicalChannel, panId, networkAddress, \ + groupIdentifiersBegin, groupIdentifiersEnd, freeNetworkAddressRangeBegin, \ + freeNetworkAddressRangeEnd, freeGroupIdentifierRangeBegin, freeGroupIdentifierRangeEnd); + +/** @brief Command description for NetworkJoinEndDeviceResponse + * + * Command: NetworkJoinEndDeviceResponse + * @param transaction INT32U + * @param status ZllStatus + */ +#define emberAfFillCommandZLL \ + CommissioningClusterNetworkJoinEndDeviceResponse(transaction, status) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_NETWORK_JOIN_END_DEVICE_RESPONSE_COMMAND_ID, "uu", transaction, status); + +/** @brief Command description for NetworkUpdateRequest + * + * Command: NetworkUpdateRequest + * @param transaction INT32U + * @param extendedPanId IEEE_ADDRESS + * @param networkUpdateId INT8U + * @param logicalChannel INT8U + * @param panId INT16U + * @param networkAddress INT16U + */ +#define emberAfFillCommandZLL \ + CommissioningClusterNetworkUpdateRequest(transaction, extendedPanId, networkUpdateId, logicalChannel, panId, networkAddress) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_NETWORK_UPDATE_REQUEST_COMMAND_ID, "uuuuuu", transaction, extendedPanId, networkUpdateId, \ + logicalChannel, panId, networkAddress); + +/** @brief Command description for EndpointInformation + * + * Command: EndpointInformation + * @param ieeeAddress IEEE_ADDRESS + * @param networkAddress INT16U + * @param endpointId INT8U + * @param profileId INT16U + * @param deviceId INT16U + * @param version INT8U + */ +#define emberAfFillCommandZLL \ + CommissioningClusterEndpointInformation(ieeeAddress, networkAddress, endpointId, profileId, deviceId, version) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_ENDPOINT_INFORMATION_COMMAND_ID, "uuuuuu", ieeeAddress, networkAddress, endpointId, \ + profileId, deviceId, version); + +/** @brief Command description for GetGroupIdentifiersRequest + * + * Command: GetGroupIdentifiersRequest + * @param startIndex INT8U + * @param total INT8U + * @param startIndex INT8U + * @param count INT8U + * @param groupInformationRecordList GroupInformationRecord [] + * @param groupInformationRecordListLen int + */ +#define emberAfFillCommandZLL \ + CommissioningClusterGetGroupIdentifiersRequest(startIndex, total, startIndex, count, groupInformationRecordList, \ + groupInformationRecordListLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_GET_GROUP_IDENTIFIERS_REQUEST_COMMAND_ID, "uuuub", startIndex, total, startIndex, count, \ + groupInformationRecordList, groupInformationRecordListLen); + +/** @brief Command description for GetEndpointListRequest + * + * Command: GetEndpointListRequest + * @param startIndex INT8U + * @param total INT8U + * @param startIndex INT8U + * @param count INT8U + * @param endpointInformationRecordList EndpointInformationRecord [] + * @param endpointInformationRecordListLen int + */ +#define emberAfFillCommandZLL \ + CommissioningClusterGetEndpointListRequest(startIndex, total, startIndex, count, endpointInformationRecordList, \ + endpointInformationRecordListLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_GET_ENDPOINT_LIST_REQUEST_COMMAND_ID, "uuuub", startIndex, total, startIndex, count, \ + endpointInformationRecordList, endpointInformationRecordListLen); + +/** @brief Command description for CommandOne + * + * Command: CommandOne + * @param argOne INT8U + * @param argOne INT8U + */ +#define emberAfFillCommandSample \ + Mfg Specific ClusterClusterCommandOne(argOne, argOne) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_COMMAND_ONE_COMMAND_ID, "uu", argOne, argOne); + +/** @brief Command description for SetToken + * + * Command: SetToken + * @param token INT16U + * @param token INT16U + * @param data OCTET_STRING + * @param data OCTET_STRING + */ +#define emberAfFillCommandConfiguration \ + ClusterClusterSetToken(token, token, data, data) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_SET_TOKEN_COMMAND_ID, "uuuu", token, token, data, data); + +/** @brief Command description for LockTokens + * + * Command: LockTokens + */ +#define emberAfFillCommandConfiguration \ + ClusterClusterLockTokens() emberAfFillExternalBuffer(mask, \ + \ + ZCL_LOCK_TOKENS_COMMAND_ID, "", ); + +/** @brief Command description for ReadTokens + * + * Command: ReadTokens + * @param token INT16U + */ +#define emberAfFillCommandConfiguration \ + ClusterClusterReadTokens(token) emberAfFillExternalBuffer(mask, \ + \ + ZCL_READ_TOKENS_COMMAND_ID, "u", token); + +/** @brief Command description for UnlockTokens + * + * Command: UnlockTokens + * @param data OCTET_STRING + */ +#define emberAfFillCommandConfiguration \ + ClusterClusterUnlockTokens(data) emberAfFillExternalBuffer(mask, \ + \ + ZCL_UNLOCK_TOKENS_COMMAND_ID, "u", data); + +/** @brief Command description for stream + * + * Command: stream + * @param channel INT8U + * @param power INT8S + * @param time INT16U + */ +#define emberAfFillCommandMFGLIB \ + ClusterClusterstream(channel, power, time) emberAfFillExternalBuffer(mask, \ + \ + ZCL_STREAM_COMMAND_ID, "uuu", channel, power, time); + +/** @brief Command description for tone + * + * Command: tone + * @param channel INT8U + * @param power INT8S + * @param time INT16U + */ +#define emberAfFillCommandMFGLIB \ + ClusterClustertone(channel, power, time) emberAfFillExternalBuffer(mask, \ + \ + ZCL_TONE_COMMAND_ID, "uuu", channel, power, time); + +/** @brief Command description for rxMode + * + * Command: rxMode + * @param channel INT8U + * @param power INT8S + * @param time INT16U + */ +#define emberAfFillCommandMFGLIB \ + ClusterClusterrxMode(channel, power, time) emberAfFillExternalBuffer(mask, \ + \ + ZCL_RX_MODE_COMMAND_ID, "uuu", channel, power, time); + +/** @brief Command description for EnableApsLinkKeyAuthorization + * + * Command: EnableApsLinkKeyAuthorization + * @param numberExemptClusters INT8U + * @param clusterId CLUSTER_ID + * @param clusterId CLUSTER_ID [] + * @param clusterIdLen int + * @param apsLinkKeyAuthStatus BOOLEAN + */ +#define emberAfFillCommandSL \ + Works With All HubsClusterEnableApsLinkKeyAuthorization(numberExemptClusters, clusterId, clusterId, clusterIdLen, \ + apsLinkKeyAuthStatus) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_ENABLE_APS_LINK_KEY_AUTHORIZATION_COMMAND_ID, "uubu", numberExemptClusters, clusterId, \ + clusterId, clusterIdLen, apsLinkKeyAuthStatus); + +/** @brief Command description for DisableApsLinkKeyAuthorization + * + * Command: DisableApsLinkKeyAuthorization + * @param numberExemptClusters INT8U + * @param powerNotificationReason WwahPowerNotificationReason + * @param clusterId CLUSTER_ID [] + * @param clusterIdLen int + * @param manufacturerId INT16U + * @param manufacturerReasonLength INT8U + * @param manufacturerReason INT8U [] + * @param manufacturerReasonLen int + */ +#define emberAfFillCommandSL \ + Works With All HubsClusterDisableApsLinkKeyAuthorization(numberExemptClusters, powerNotificationReason, clusterId, \ + clusterIdLen, manufacturerId, manufacturerReasonLength, \ + manufacturerReason, manufacturerReasonLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_DISABLE_APS_LINK_KEY_AUTHORIZATION_COMMAND_ID, "uubuub", numberExemptClusters, \ + powerNotificationReason, clusterId, clusterIdLen, manufacturerId, manufacturerReasonLength, \ + manufacturerReason, manufacturerReasonLen); + +/** @brief Command description for ApsLinkKeyAuthorizationQuery + * + * Command: ApsLinkKeyAuthorizationQuery + * @param clusterId CLUSTER_ID + * @param powerNotificationReason WwahPowerNotificationReason + * @param manufacturerId INT16U + * @param manufacturerReasonLength INT8U + * @param manufacturerReason INT8U [] + * @param manufacturerReasonLen int + */ +#define emberAfFillCommandSL \ + Works With All HubsClusterApsLinkKeyAuthorizationQuery(clusterId, powerNotificationReason, manufacturerId, \ + manufacturerReasonLength, manufacturerReason, manufacturerReasonLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_APS_LINK_KEY_AUTHORIZATION_QUERY_COMMAND_ID, "uuuub", clusterId, powerNotificationReason, \ + manufacturerId, manufacturerReasonLength, manufacturerReason, manufacturerReasonLen); + +/** @brief Command description for RequestNewApsLinkKey + * + * Command: RequestNewApsLinkKey + * @param deviceEui64 IEEE_ADDRESS + * @param deviceShort INT16U + */ +#define emberAfFillCommandSL \ + Works With All HubsClusterRequestNewApsLinkKey(deviceEui64, deviceShort) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_REQUEST_NEW_APS_LINK_KEY_COMMAND_ID, "uu", deviceEui64, deviceShort); + +/** @brief Command description for EnableWwahAppEventRetryAlgorithm + * + * Command: EnableWwahAppEventRetryAlgorithm + * @param firstBackoffTimeSeconds INT8U + * @param numberExemptClusters INT8U + * @param backoffSeqCommonRatio INT8U + * @param clusterId CLUSTER_ID [] + * @param clusterIdLen int + * @param maxBackoffTimeSeconds INT32U + * @param maxRedeliveryAttempts INT8U + */ +#define emberAfFillCommandSL \ + Works With All HubsClusterEnableWwahAppEventRetryAlgorithm( \ + firstBackoffTimeSeconds, numberExemptClusters, backoffSeqCommonRatio, clusterId, clusterIdLen, maxBackoffTimeSeconds, \ + maxRedeliveryAttempts) emberAfFillExternalBuffer(mask, \ + \ + ZCL_ENABLE_WWAH_APP_EVENT_RETRY_ALGORITHM_COMMAND_ID, "uuubuu", \ + firstBackoffTimeSeconds, numberExemptClusters, backoffSeqCommonRatio, \ + clusterId, clusterIdLen, maxBackoffTimeSeconds, maxRedeliveryAttempts); + +/** @brief Command description for DisableWwahAppEventRetryAlgorithm + * + * Command: DisableWwahAppEventRetryAlgorithm + * @param currentPowerMode INT32U + * @param availablePowerSources INT32U + * @param currentPowerSource INT32U + * @param currentPowerSourceLevel INT32U + */ +#define emberAfFillCommandSL \ + Works With All HubsClusterDisableWwahAppEventRetryAlgorithm(currentPowerMode, availablePowerSources, currentPowerSource, \ + currentPowerSourceLevel) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_DISABLE_WWAH_APP_EVENT_RETRY_ALGORITHM_COMMAND_ID, "uuuu", currentPowerMode, \ + availablePowerSources, currentPowerSource, currentPowerSourceLevel); + +/** @brief Command description for RequestTime + * + * Command: RequestTime + * @param debugReportId INT8U + * @param debugReportSize INT32U + */ +#define emberAfFillCommandSL \ + Works With All HubsClusterRequestTime(debugReportId, debugReportSize) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_REQUEST_TIME_COMMAND_ID, "uu", debugReportId, debugReportSize); + +/** @brief Command description for EnableWwahRejoinAlgorithm + * + * Command: EnableWwahRejoinAlgorithm + * @param fastRejoinTimeoutSeconds INT16U + * @param debugReportId INT8U + * @param durationBetweenRejoinsSeconds INT16U + * @param debugReportData INT8U [] + * @param debugReportDataLen int + * @param fastRejoinFirstBackoffSeconds INT16U + * @param maxBackoffTimeSeconds INT16U + * @param maxBackoffIterations INT16U + */ +#define emberAfFillCommandSL \ + Works With All HubsClusterEnableWwahRejoinAlgorithm(fastRejoinTimeoutSeconds, debugReportId, durationBetweenRejoinsSeconds, \ + debugReportData, debugReportDataLen, fastRejoinFirstBackoffSeconds, \ + maxBackoffTimeSeconds, maxBackoffIterations) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_ENABLE_WWAH_REJOIN_ALGORITHM_COMMAND_ID, "uuubuuu", fastRejoinTimeoutSeconds, debugReportId, \ + durationBetweenRejoinsSeconds, debugReportData, debugReportDataLen, \ + fastRejoinFirstBackoffSeconds, maxBackoffTimeSeconds, maxBackoffIterations); + +/** @brief Command description for DisableWwahRejoinAlgorithm + * + * Command: DisableWwahRejoinAlgorithm + * @param numberOfClusters INT8U + * @param clusterId CLUSTER_ID [] + * @param clusterIdLen int + */ +#define emberAfFillCommandSL \ + Works With All HubsClusterDisableWwahRejoinAlgorithm(numberOfClusters, clusterId, clusterIdLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_DISABLE_WWAH_REJOIN_ALGORITHM_COMMAND_ID, "ub", numberOfClusters, clusterId, clusterIdLen); + +/** @brief Command description for SetIasZoneEnrollmentMethod + * + * Command: SetIasZoneEnrollmentMethod + * @param enrollmentMode WwahIasZoneEnrollmentMode + * @param numberOfBeacons INT8U + * @param beacon WwahBeaconSurvey [] + * @param beaconLen int + */ +#define emberAfFillCommandSL \ + Works With All HubsClusterSetIasZoneEnrollmentMethod(enrollmentMode, numberOfBeacons, beacon, beaconLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_SET_IAS_ZONE_ENROLLMENT_METHOD_COMMAND_ID, "uub", enrollmentMode, numberOfBeacons, beacon, \ + beaconLen); + +/** @brief Command description for ClearBindingTable + * + * Command: ClearBindingTable + */ +#define emberAfFillCommandSL \ + Works With All HubsClusterClearBindingTable() emberAfFillExternalBuffer(mask, \ + \ + ZCL_CLEAR_BINDING_TABLE_COMMAND_ID, "", ); + +/** @brief Command description for EnablePeriodicRouterCheckIns + * + * Command: EnablePeriodicRouterCheckIns + * @param checkInInterval INT16U + */ +#define emberAfFillCommandSL \ + Works With All HubsClusterEnablePeriodicRouterCheckIns(checkInInterval) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_ENABLE_PERIODIC_ROUTER_CHECK_INS_COMMAND_ID, "u", checkInInterval); + +/** @brief Command description for DisablePeriodicRouterCheckIns + * + * Command: DisablePeriodicRouterCheckIns + */ +#define emberAfFillCommandSL \ + Works With All HubsClusterDisablePeriodicRouterCheckIns() \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_DISABLE_PERIODIC_ROUTER_CHECK_INS_COMMAND_ID, "", ); + +/** @brief Command description for SetMacPollFailureWaitTime + * + * Command: SetMacPollFailureWaitTime + * @param waitTime INT8U + */ +#define emberAfFillCommandSL \ + Works With All HubsClusterSetMacPollFailureWaitTime(waitTime) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_SET_MAC_POLL_FAILURE_WAIT_TIME_COMMAND_ID, "u", waitTime); + +/** @brief Command description for SetPendingNetworkUpdate + * + * Command: SetPendingNetworkUpdate + * @param channel INT8U + * @param panId INT16U + */ +#define emberAfFillCommandSL \ + Works With All HubsClusterSetPendingNetworkUpdate(channel, panId) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_SET_PENDING_NETWORK_UPDATE_COMMAND_ID, "uu", channel, panId); + +/** @brief Command description for RequireApsAcksOnUnicasts + * + * Command: RequireApsAcksOnUnicasts + * @param numberExemptClusters INT8U + * @param clusterId CLUSTER_ID [] + * @param clusterIdLen int + */ +#define emberAfFillCommandSL \ + Works With All HubsClusterRequireApsAcksOnUnicasts(numberExemptClusters, clusterId, clusterIdLen) emberAfFillExternalBuffer( \ + mask, \ + \ + ZCL_REQUIRE_APS_ACKS_ON_UNICASTS_COMMAND_ID, "ub", numberExemptClusters, clusterId, clusterIdLen); + +/** @brief Command description for RemoveApsAcksOnUnicastsRequirement + * + * Command: RemoveApsAcksOnUnicastsRequirement + */ +#define emberAfFillCommandSL \ + Works With All HubsClusterRemoveApsAcksOnUnicastsRequirement() \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_REMOVE_APS_ACKS_ON_UNICASTS_REQUIREMENT_COMMAND_ID, "", ); + +/** @brief Command description for ApsAckRequirementQuery + * + * Command: ApsAckRequirementQuery + */ +#define emberAfFillCommandSL \ + Works With All HubsClusterApsAckRequirementQuery() emberAfFillExternalBuffer(mask, \ + \ + ZCL_APS_ACK_REQUIREMENT_QUERY_COMMAND_ID, "", ); + +/** @brief Command description for DebugReportQuery + * + * Command: DebugReportQuery + * @param debugReportId INT8U + */ +#define emberAfFillCommandSL \ + Works With All HubsClusterDebugReportQuery(debugReportId) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_DEBUG_REPORT_QUERY_COMMAND_ID, "u", debugReportId); + +/** @brief Command description for SurveyBeacons + * + * Command: SurveyBeacons + * @param standardBeacons BOOLEAN + */ +#define emberAfFillCommandSL \ + Works With All HubsClusterSurveyBeacons(standardBeacons) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_SURVEY_BEACONS_COMMAND_ID, "u", standardBeacons); + +/** @brief Command description for DisableOtaDowngrades + * + * Command: DisableOtaDowngrades + */ +#define emberAfFillCommandSL \ + Works With All HubsClusterDisableOtaDowngrades() emberAfFillExternalBuffer(mask, \ + \ + ZCL_DISABLE_OTA_DOWNGRADES_COMMAND_ID, "", ); + +/** @brief Command description for DisableMgmtLeaveWithoutRejoin + * + * Command: DisableMgmtLeaveWithoutRejoin + */ +#define emberAfFillCommandSL \ + Works With All HubsClusterDisableMgmtLeaveWithoutRejoin() \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_DISABLE_MGMT_LEAVE_WITHOUT_REJOIN_COMMAND_ID, "", ); + +/** @brief Command description for DisableTouchlinkInterpanMessageSupport + * + * Command: DisableTouchlinkInterpanMessageSupport + */ +#define emberAfFillCommandSL \ + Works With All HubsClusterDisableTouchlinkInterpanMessageSupport() \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_DISABLE_TOUCHLINK_INTERPAN_MESSAGE_SUPPORT_COMMAND_ID, "", ); + +/** @brief Command description for EnableWwahParentClassification + * + * Command: EnableWwahParentClassification + */ +#define emberAfFillCommandSL \ + Works With All HubsClusterEnableWwahParentClassification() \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_ENABLE_WWAH_PARENT_CLASSIFICATION_COMMAND_ID, "", ); + +/** @brief Command description for DisableWwahParentClassification + * + * Command: DisableWwahParentClassification + */ +#define emberAfFillCommandSL \ + Works With All HubsClusterDisableWwahParentClassification() \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_DISABLE_WWAH_PARENT_CLASSIFICATION_COMMAND_ID, "", ); + +/** @brief Command description for EnableTcSecurityOnNtwkKeyRotation + * + * Command: EnableTcSecurityOnNtwkKeyRotation + */ +#define emberAfFillCommandSL \ + Works With All HubsClusterEnableTcSecurityOnNtwkKeyRotation() \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_ENABLE_TC_SECURITY_ON_NTWK_KEY_ROTATION_COMMAND_ID, "", ); + +/** @brief Command description for EnableWwahBadParentRecovery + * + * Command: EnableWwahBadParentRecovery + */ +#define emberAfFillCommandSL \ + Works With All HubsClusterEnableWwahBadParentRecovery() \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_ENABLE_WWAH_BAD_PARENT_RECOVERY_COMMAND_ID, "", ); + +/** @brief Command description for DisableWwahBadParentRecovery + * + * Command: DisableWwahBadParentRecovery + */ +#define emberAfFillCommandSL \ + Works With All HubsClusterDisableWwahBadParentRecovery() \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_DISABLE_WWAH_BAD_PARENT_RECOVERY_COMMAND_ID, "", ); + +/** @brief Command description for EnableConfigurationMode + * + * Command: EnableConfigurationMode + */ +#define emberAfFillCommandSL \ + Works With All HubsClusterEnableConfigurationMode() emberAfFillExternalBuffer(mask, \ + \ + ZCL_ENABLE_CONFIGURATION_MODE_COMMAND_ID, "", ); + +/** @brief Command description for DisableConfigurationMode + * + * Command: DisableConfigurationMode + */ +#define emberAfFillCommandSL \ + Works With All HubsClusterDisableConfigurationMode() \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_DISABLE_CONFIGURATION_MODE_COMMAND_ID, "", ); + +/** @brief Command description for UseTrustCenterForClusterServer + * + * Command: UseTrustCenterForClusterServer + * @param numberOfClusters INT8U + * @param clusterId CLUSTER_ID [] + * @param clusterIdLen int + */ +#define emberAfFillCommandSL \ + Works With All HubsClusterUseTrustCenterForClusterServer(numberOfClusters, clusterId, clusterIdLen) emberAfFillExternalBuffer( \ + mask, \ + \ + ZCL_USE_TRUST_CENTER_FOR_CLUSTER_SERVER_COMMAND_ID, "ub", numberOfClusters, clusterId, clusterIdLen); + +/** @brief Command description for TrustCenterForClusterServerQuery + * + * Command: TrustCenterForClusterServerQuery + */ +#define emberAfFillCommandSL \ + Works With All HubsClusterTrustCenterForClusterServerQuery() \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_TRUST_CENTER_FOR_CLUSTER_SERVER_QUERY_COMMAND_ID, "", ); + +/** @brief Command description for UseTrustCenterForClusterServerResponse + * + * Command: UseTrustCenterForClusterServerResponse + * @param status Status + * @param clusterStatusLength INT8U + * @param clusterStatus WwahClusterStatusToUseTC [] + * @param clusterStatusLen int + */ +#define emberAfFillCommandSL \ + Works With All HubsClusterUseTrustCenterForClusterServerResponse(status, clusterStatusLength, clusterStatus, clusterStatusLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_USE_TRUST_CENTER_FOR_CLUSTER_SERVER_RESPONSE_COMMAND_ID, "uub", status, clusterStatusLength, \ + clusterStatus, clusterStatusLen); diff --git a/examples/all-clusters-app/all-clusters-common/gen/cluster-id.h b/examples/all-clusters-app/all-clusters-common/gen/cluster-id.h new file mode 100644 index 00000000000000..c341b079be401d --- /dev/null +++ b/examples/all-clusters-app/all-clusters-common/gen/cluster-id.h @@ -0,0 +1,347 @@ + +/* + * + * 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. + */ + +// Prevent multiple inclusion +#pragma once + +// Definitions for cluster: Basic +#define ZCL_BASIC_CLUSTER_ID (0x0000) + +// Definitions for cluster: Power Configuration +#define ZCL_POWER_CONFIG_CLUSTER_ID (0x0001) + +// Definitions for cluster: Device Temperature Configuration +#define ZCL_DEVICE_TEMP_CLUSTER_ID (0x0002) + +// Definitions for cluster: Identify +#define ZCL_IDENTIFY_CLUSTER_ID (0x0003) + +// Definitions for cluster: Groups +#define ZCL_GROUPS_CLUSTER_ID (0x0004) + +// Definitions for cluster: Scenes +#define ZCL_SCENES_CLUSTER_ID (0x0005) + +// Definitions for cluster: On/off +#define ZCL_ON_OFF_CLUSTER_ID (0x0006) + +// Definitions for cluster: On/off Switch Configuration +#define ZCL_ON_OFF_SWITCH_CONFIG_CLUSTER_ID (0x0007) + +// Definitions for cluster: Level Control +#define ZCL_LEVEL_CONTROL_CLUSTER_ID (0x0008) + +// Definitions for cluster: Alarms +#define ZCL_ALARM_CLUSTER_ID (0x0009) + +// Definitions for cluster: Time +#define ZCL_TIME_CLUSTER_ID (0x000A) + +// Definitions for cluster: RSSI Location +#define ZCL_RSSI_LOCATION_CLUSTER_ID (0x000B) + +// Definitions for cluster: Binary Input (Basic) +#define ZCL_BINARY_INPUT_BASIC_CLUSTER_ID (0x000F) + +// Definitions for cluster: Commissioning +#define ZCL_COMMISSIONING_CLUSTER_ID (0x0015) + +// Definitions for cluster: Partition +#define ZCL_PARTITION_CLUSTER_ID (0x0016) + +// Definitions for cluster: Over the Air Bootloading +#define ZCL_OTA_BOOTLOAD_CLUSTER_ID (0x0019) + +// Definitions for cluster: Power Profile +#define ZCL_POWER_PROFILE_CLUSTER_ID (0x001A) + +// Definitions for cluster: Appliance Control +#define ZCL_APPLIANCE_CONTROL_CLUSTER_ID (0x001B) + +// Definitions for cluster: Poll Control +#define ZCL_POLL_CONTROL_CLUSTER_ID (0x0020) + +// Definitions for cluster: Green Power +#define ZCL_GREEN_POWER_CLUSTER_ID (0x0021) + +// Definitions for cluster: Keep-Alive +#define ZCL_KEEPALIVE_CLUSTER_ID (0x0025) + +// Definitions for cluster: Shade Configuration +#define ZCL_SHADE_CONFIG_CLUSTER_ID (0x0100) + +// Definitions for cluster: Door Lock +#define ZCL_DOOR_LOCK_CLUSTER_ID (0x0101) + +// Definitions for cluster: Window Covering +#define ZCL_WINDOW_COVERING_CLUSTER_ID (0x0102) + +// Definitions for cluster: Barrier Control +#define ZCL_BARRIER_CONTROL_CLUSTER_ID (0x0103) + +// Definitions for cluster: Pump Configuration and Control +#define ZCL_PUMP_CONFIG_CONTROL_CLUSTER_ID (0x0200) + +// Definitions for cluster: Thermostat +#define ZCL_THERMOSTAT_CLUSTER_ID (0x0201) + +// Definitions for cluster: Fan Control +#define ZCL_FAN_CONTROL_CLUSTER_ID (0x0202) + +// Definitions for cluster: Dehumidification Control +#define ZCL_DEHUMID_CONTROL_CLUSTER_ID (0x0203) + +// Definitions for cluster: Thermostat User Interface Configuration +#define ZCL_THERMOSTAT_UI_CONFIG_CLUSTER_ID (0x0204) + +// Definitions for cluster: Color Control +#define ZCL_COLOR_CONTROL_CLUSTER_ID (0x0300) + +// Definitions for cluster: Ballast Configuration +#define ZCL_BALLAST_CONFIGURATION_CLUSTER_ID (0x0301) + +// Definitions for cluster: Illuminance Measurement +#define ZCL_ILLUM_MEASUREMENT_CLUSTER_ID (0x0400) + +// Definitions for cluster: Illuminance Level Sensing +#define ZCL_ILLUM_LEVEL_SENSING_CLUSTER_ID (0x0401) + +// Definitions for cluster: Temperature Measurement +#define ZCL_TEMP_MEASUREMENT_CLUSTER_ID (0x0402) + +// Definitions for cluster: Pressure Measurement +#define ZCL_PRESSURE_MEASUREMENT_CLUSTER_ID (0x0403) + +// Definitions for cluster: Flow Measurement +#define ZCL_FLOW_MEASUREMENT_CLUSTER_ID (0x0404) + +// Definitions for cluster: Relative Humidity Measurement +#define ZCL_RELATIVE_HUMIDITY_MEASUREMENT_CLUSTER_ID (0x0405) + +// Definitions for cluster: Occupancy Sensing +#define ZCL_OCCUPANCY_SENSING_CLUSTER_ID (0x0406) + +// Definitions for cluster: Carbon Monoxide Concentration Measurement +#define ZCL_CARBON_MONOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_ID (0x040C) + +// Definitions for cluster: Carbon Dioxide Concentration Measurement +#define ZCL_CARBON_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_ID (0x040D) + +// Definitions for cluster: Ethylene Concentration Measurement +#define ZCL_ETHYLENE_CONCENTRATION_MEASUREMENT_CLUSTER_ID (0x040E) + +// Definitions for cluster: Ethylene Oxide Concentration Measurement +#define ZCL_ETHYLENE_OXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_ID (0x040F) + +// Definitions for cluster: Hydrogen Concentration Measurement +#define ZCL_HYDROGEN_CONCENTRATION_MEASUREMENT_CLUSTER_ID (0x0410) + +// Definitions for cluster: Hydrogen Sulphide Concentration Measurement +#define ZCL_HYDROGEN_SULPHIDE_CONCENTRATION_MEASUREMENT_CLUSTER_ID (0x0411) + +// Definitions for cluster: Nitric Oxide Concentration Measurement +#define ZCL_NITRIC_OXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_ID (0x0412) + +// Definitions for cluster: Nitrogen Dioxide Concentration Measurement +#define ZCL_NITROGEN_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_ID (0x0413) + +// Definitions for cluster: Oxygen Concentration Measurement +#define ZCL_OXYGEN_CONCENTRATION_MEASUREMENT_CLUSTER_ID (0x0414) + +// Definitions for cluster: Ozone Concentration Measurement +#define ZCL_OZONE_CONCENTRATION_MEASUREMENT_CLUSTER_ID (0x0415) + +// Definitions for cluster: Sulfur Dioxide Concentration Measurement +#define ZCL_SULFUR_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_ID (0x0416) + +// Definitions for cluster: Dissolved Oxygen Concentration Measurement +#define ZCL_DISSOLVED_OXYGEN_CONCENTRATION_MEASUREMENT_CLUSTER_ID (0x0417) + +// Definitions for cluster: Bromate Concentration Measurement +#define ZCL_BROMATE_CONCENTRATION_MEASUREMENT_CLUSTER_ID (0x0418) + +// Definitions for cluster: Chloramines Concentration Measurement +#define ZCL_CHLORAMINES_CONCENTRATION_MEASUREMENT_CLUSTER_ID (0x0419) + +// Definitions for cluster: Chlorine Concentration Measurement +#define ZCL_CHLORINE_CONCENTRATION_MEASUREMENT_CLUSTER_ID (0x041A) + +// Definitions for cluster: Fecal coliform and E. Coli Concentration Measurement +#define ZCL_FECAL_COLIFORM_AND_E_COLI_CONCENTRATION_MEASUREMENT_CLUSTER_ID (0x041B) + +// Definitions for cluster: Fluoride Concentration Measurement +#define ZCL_FLUORIDE_CONCENTRATION_MEASUREMENT_CLUSTER_ID (0x041C) + +// Definitions for cluster: Haloacetic Acids Concentration Measurement +#define ZCL_HALOACETIC_ACIDS_CONCENTRATION_MEASUREMENT_CLUSTER_ID (0x041D) + +// Definitions for cluster: Total Trihalomethanes Concentration Measurement +#define ZCL_TOTAL_TRIHALOMETHANES_CONCENTRATION_MEASUREMENT_CLUSTER_ID (0x041E) + +// Definitions for cluster: Total Coliform Bacteria Concentration Measurement +#define ZCL_TOTAL_COLIFORM_BACTERIA_CONCENTRATION_MEASUREMENT_CLUSTER_ID (0x041F) + +// Definitions for cluster: Turbidity Concentration Measurement +#define ZCL_TURBIDITY_CONCENTRATION_MEASUREMENT_CLUSTER_ID (0x0420) + +// Definitions for cluster: Copper Concentration Measurement +#define ZCL_COPPER_CONCENTRATION_MEASUREMENT_CLUSTER_ID (0x0421) + +// Definitions for cluster: Lead Concentration Measurement +#define ZCL_LEAD_CONCENTRATION_MEASUREMENT_CLUSTER_ID (0x0422) + +// Definitions for cluster: Manganese Concentration Measurement +#define ZCL_MANGANESE_CONCENTRATION_MEASUREMENT_CLUSTER_ID (0x0423) + +// Definitions for cluster: Sulfate Concentration Measurement +#define ZCL_SULFATE_CONCENTRATION_MEASUREMENT_CLUSTER_ID (0x0424) + +// Definitions for cluster: Bromodichloromethane Concentration Measurement +#define ZCL_BROMODICHLOROMETHANE_CONCENTRATION_MEASUREMENT_CLUSTER_ID (0x0425) + +// Definitions for cluster: Bromoform Concentration Measurement +#define ZCL_BROMOFORM_CONCENTRATION_MEASUREMENT_CLUSTER_ID (0x0426) + +// Definitions for cluster: Chlorodibromomethane Concentration Measurement +#define ZCL_CHLORODIBROMOMETHANE_CONCENTRATION_MEASUREMENT_CLUSTER_ID (0x0427) + +// Definitions for cluster: Chloroform Concentration Measurement +#define ZCL_CHLOROFORM_CONCENTRATION_MEASUREMENT_CLUSTER_ID (0x0428) + +// Definitions for cluster: Sodium Concentration Measurement +#define ZCL_SODIUM_CONCENTRATION_MEASUREMENT_CLUSTER_ID (0x0429) + +// Definitions for cluster: IAS Zone +#define ZCL_IAS_ZONE_CLUSTER_ID (0x0500) + +// Definitions for cluster: IAS ACE +#define ZCL_IAS_ACE_CLUSTER_ID (0x0501) + +// Definitions for cluster: IAS WD +#define ZCL_IAS_WD_CLUSTER_ID (0x0502) + +// Definitions for cluster: Generic Tunnel +#define ZCL_GENERIC_TUNNEL_CLUSTER_ID (0x0600) + +// Definitions for cluster: BACnet Protocol Tunnel +#define ZCL_BACNET_PROTOCOL_TUNNEL_CLUSTER_ID (0x0601) + +// Definitions for cluster: 11073 Protocol Tunnel +#define ZCL_11073_PROTOCOL_TUNNEL_CLUSTER_ID (0x0614) + +// Definitions for cluster: ISO 7816 Protocol Tunnel +#define ZCL_ISO7816_PROTOCOL_TUNNEL_CLUSTER_ID (0x0615) + +// Definitions for cluster: Price +#define ZCL_PRICE_CLUSTER_ID (0x0700) + +// Definitions for cluster: Demand Response and Load Control +#define ZCL_DEMAND_RESPONSE_LOAD_CONTROL_CLUSTER_ID (0x0701) + +// Definitions for cluster: Simple Metering +#define ZCL_SIMPLE_METERING_CLUSTER_ID (0x0702) + +// Definitions for cluster: Messaging +#define ZCL_MESSAGING_CLUSTER_ID (0x0703) + +// Definitions for cluster: Tunneling +#define ZCL_TUNNELING_CLUSTER_ID (0x0704) + +// Definitions for cluster: Prepayment +#define ZCL_PREPAYMENT_CLUSTER_ID (0x0705) + +// Definitions for cluster: Energy Management +#define ZCL_ENERGY_MANAGEMENT_CLUSTER_ID (0x0706) + +// Definitions for cluster: Calendar +#define ZCL_CALENDAR_CLUSTER_ID (0x0707) + +// Definitions for cluster: Device Management +#define ZCL_DEVICE_MANAGEMENT_CLUSTER_ID (0x0708) + +// Definitions for cluster: Events +#define ZCL_EVENTS_CLUSTER_ID (0x0709) + +// Definitions for cluster: MDU Pairing +#define ZCL_MDU_PAIRING_CLUSTER_ID (0x070A) + +// Definitions for cluster: Sub-GHz +#define ZCL_SUB_GHZ_CLUSTER_ID (0x070B) + +// Definitions for cluster: Key Establishment +#define ZCL_KEY_ESTABLISHMENT_CLUSTER_ID (0x0800) + +// Definitions for cluster: Information +#define ZCL_INFORMATION_CLUSTER_ID (0x0900) + +// Definitions for cluster: Data Sharing +#define ZCL_DATA_SHARING_CLUSTER_ID (0x0901) + +// Definitions for cluster: Gaming +#define ZCL_GAMING_CLUSTER_ID (0x0902) + +// Definitions for cluster: Data Rate Control +#define ZCL_DATA_RATE_CONTROL_CLUSTER_ID (0x0903) + +// Definitions for cluster: Voice over ZigBee +#define ZCL_VOICE_OVER_ZIGBEE_CLUSTER_ID (0x0904) + +// Definitions for cluster: Chatting +#define ZCL_CHATTING_CLUSTER_ID (0x0905) + +// Definitions for cluster: Payment +#define ZCL_PAYMENT_CLUSTER_ID (0x0A01) + +// Definitions for cluster: Billing +#define ZCL_BILLING_CLUSTER_ID (0x0A02) + +// Definitions for cluster: Appliance Identification +#define ZCL_APPLIANCE_IDENTIFICATION_CLUSTER_ID (0x0B00) + +// Definitions for cluster: Meter Identification +#define ZCL_METER_IDENTIFICATION_CLUSTER_ID (0x0B01) + +// Definitions for cluster: Appliance Events and Alert +#define ZCL_APPLIANCE_EVENTS_AND_ALERT_CLUSTER_ID (0x0B02) + +// Definitions for cluster: Appliance Statistics +#define ZCL_APPLIANCE_STATISTICS_CLUSTER_ID (0x0B03) + +// Definitions for cluster: Electrical Measurement +#define ZCL_ELECTRICAL_MEASUREMENT_CLUSTER_ID (0x0B04) + +// Definitions for cluster: Diagnostics +#define ZCL_DIAGNOSTICS_CLUSTER_ID (0x0B05) + +// Definitions for cluster: ZLL Commissioning +#define ZCL_ZLL_COMMISSIONING_CLUSTER_ID (0x1000) + +// Definitions for cluster: Sample Mfg Specific Cluster +#define ZCL_SAMPLE_MFG_SPECIFIC_CLUSTER_ID (0xFC00) + +// Definitions for cluster: Sample Mfg Specific Cluster 2 +#define ZCL_SAMPLE_MFG_SPECIFIC_CLUSTER_2_ID (0xFC00) + +// Definitions for cluster: Configuration Cluster +#define ZCL_OTA_CONFIGURATION_CLUSTER_ID (0xFC01) + +// Definitions for cluster: MFGLIB Cluster +#define ZCL_MFGLIB_CLUSTER_ID (0xFC02) + +// Definitions for cluster: SL Works With All Hubs +#define ZCL_SL_WWAH_CLUSTER_ID (0xFC57) diff --git a/examples/all-clusters-app/all-clusters-common/gen/command-id.h b/examples/all-clusters-app/all-clusters-common/gen/command-id.h new file mode 100644 index 00000000000000..940258f4527aa5 --- /dev/null +++ b/examples/all-clusters-app/all-clusters-common/gen/command-id.h @@ -0,0 +1,747 @@ + +/* + * + * 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. + */ + +// Prevent multiple inclusion +#pragma once + +// Global, non-cluster-specific commands +#define ZCL_READ_ATTRIBUTES_COMMAND_ID (0x00) +#define ZCL_READ_ATTRIBUTES_RESPONSE_COMMAND_ID (0x01) +#define ZCL_WRITE_ATTRIBUTES_COMMAND_ID (0x02) +#define ZCL_WRITE_ATTRIBUTES_UNDIVIDED_COMMAND_ID (0x03) +#define ZCL_WRITE_ATTRIBUTES_RESPONSE_COMMAND_ID (0x04) +#define ZCL_WRITE_ATTRIBUTES_NO_RESPONSE_COMMAND_ID (0x05) +#define ZCL_CONFIGURE_REPORTING_COMMAND_ID (0x06) +#define ZCL_CONFIGURE_REPORTING_RESPONSE_COMMAND_ID (0x07) +#define ZCL_READ_REPORTING_CONFIGURATION_COMMAND_ID (0x08) +#define ZCL_READ_REPORTING_CONFIGURATION_RESPONSE_COMMAND_ID (0x09) +#define ZCL_REPORT_ATTRIBUTES_COMMAND_ID (0x0A) +#define ZCL_DEFAULT_RESPONSE_COMMAND_ID (0x0B) +#define ZCL_DISCOVER_ATTRIBUTES_COMMAND_ID (0x0C) +#define ZCL_DISCOVER_ATTRIBUTES_RESPONSE_COMMAND_ID (0x0D) +#define ZCL_READ_ATTRIBUTES_STRUCTURED_COMMAND_ID (0x0E) +#define ZCL_WRITE_ATTRIBUTES_STRUCTURED_COMMAND_ID (0x0F) +#define ZCL_WRITE_ATTRIBUTES_STRUCTURED_RESPONSE_COMMAND_ID (0x10) +#define ZCL_DISCOVER_COMMANDS_RECEIVED_COMMAND_ID (0x11) +#define ZCL_DISCOVER_COMMANDS_RECEIVED_RESPONSE_COMMAND_ID (0x12) +#define ZCL_DISCOVER_COMMANDS_GENERATED_COMMAND_ID (0x13) +#define ZCL_DISCOVER_COMMANDS_GENERATED_RESPONSE_COMMAND_ID (0x14) +#define ZCL_DISCOVER_ATTRIBUTES_EXTENDED_COMMAND_ID (0x15) +#define ZCL_DISCOVER_ATTRIBUTES_EXTENDED_RESPONSE_COMMAND_ID (0x16) + +// Commands for cluster: Basic +#define ZCL_RESET_TO_FACTORY_DEFAULTS_COMMAND_ID (0x00) + +// Commands for cluster: Identify +#define ZCL_IDENTIFY_COMMAND_ID (0x00) +#define ZCL_IDENTIFY_QUERY_RESPONSE_COMMAND_ID (0x00) +#define ZCL_IDENTIFY_QUERY_COMMAND_ID (0x01) +#define ZCL_EZ_MODE_INVOKE_COMMAND_ID (0x02) +#define ZCL_UPDATE_COMMISSION_STATE_COMMAND_ID (0x03) +#define ZCL_TRIGGER_EFFECT_COMMAND_ID (0x40) + +// Commands for cluster: Groups +#define ZCL_ADD_GROUP_COMMAND_ID (0x00) +#define ZCL_ADD_GROUP_RESPONSE_COMMAND_ID (0x00) +#define ZCL_VIEW_GROUP_COMMAND_ID (0x01) +#define ZCL_VIEW_GROUP_RESPONSE_COMMAND_ID (0x01) +#define ZCL_GET_GROUP_MEMBERSHIP_COMMAND_ID (0x02) +#define ZCL_GET_GROUP_MEMBERSHIP_RESPONSE_COMMAND_ID (0x02) +#define ZCL_REMOVE_GROUP_COMMAND_ID (0x03) +#define ZCL_REMOVE_GROUP_RESPONSE_COMMAND_ID (0x03) +#define ZCL_REMOVE_ALL_GROUPS_COMMAND_ID (0x04) +#define ZCL_ADD_GROUP_IF_IDENTIFYING_COMMAND_ID (0x05) + +// Commands for cluster: Scenes +#define ZCL_ADD_SCENE_COMMAND_ID (0x00) +#define ZCL_ADD_SCENE_RESPONSE_COMMAND_ID (0x00) +#define ZCL_VIEW_SCENE_COMMAND_ID (0x01) +#define ZCL_VIEW_SCENE_RESPONSE_COMMAND_ID (0x01) +#define ZCL_REMOVE_SCENE_COMMAND_ID (0x02) +#define ZCL_REMOVE_SCENE_RESPONSE_COMMAND_ID (0x02) +#define ZCL_REMOVE_ALL_SCENES_COMMAND_ID (0x03) +#define ZCL_REMOVE_ALL_SCENES_RESPONSE_COMMAND_ID (0x03) +#define ZCL_STORE_SCENE_COMMAND_ID (0x04) +#define ZCL_STORE_SCENE_RESPONSE_COMMAND_ID (0x04) +#define ZCL_RECALL_SCENE_COMMAND_ID (0x05) +#define ZCL_GET_SCENE_MEMBERSHIP_COMMAND_ID (0x06) +#define ZCL_GET_SCENE_MEMBERSHIP_RESPONSE_COMMAND_ID (0x06) +#define ZCL_ENHANCED_ADD_SCENE_COMMAND_ID (0x40) +#define ZCL_ENHANCED_ADD_SCENE_RESPONSE_COMMAND_ID (0x40) +#define ZCL_ENHANCED_VIEW_SCENE_COMMAND_ID (0x41) +#define ZCL_ENHANCED_VIEW_SCENE_RESPONSE_COMMAND_ID (0x41) +#define ZCL_COPY_SCENE_COMMAND_ID (0x42) +#define ZCL_COPY_SCENE_RESPONSE_COMMAND_ID (0x42) + +// Commands for cluster: On/off +#define ZCL_OFF_COMMAND_ID (0x00) +#define ZCL_SAMPLE_MFG_SPECIFIC_OFF_WITH_TRANSITION_COMMAND_ID (0x00) +#define ZCL_ON_COMMAND_ID (0x01) +#define ZCL_SAMPLE_MFG_SPECIFIC_ON_WITH_TRANSITION_COMMAND_ID (0x01) +#define ZCL_SAMPLE_MFG_SPECIFIC_ON_WITH_TRANSITION2_COMMAND_ID (0x01) +#define ZCL_TOGGLE_COMMAND_ID (0x02) +#define ZCL_SAMPLE_MFG_SPECIFIC_TOGGLE_WITH_TRANSITION_COMMAND_ID (0x02) +#define ZCL_SAMPLE_MFG_SPECIFIC_TOGGLE_WITH_TRANSITION2_COMMAND_ID (0x02) +#define ZCL_OFF_WITH_EFFECT_COMMAND_ID (0x40) +#define ZCL_ON_WITH_RECALL_GLOBAL_SCENE_COMMAND_ID (0x41) +#define ZCL_ON_WITH_TIMED_OFF_COMMAND_ID (0x42) + +// Commands for cluster: Level Control +#define ZCL_MOVE_TO_LEVEL_COMMAND_ID (0x00) +#define ZCL_MOVE_COMMAND_ID (0x01) +#define ZCL_STEP_COMMAND_ID (0x02) +#define ZCL_STOP_COMMAND_ID (0x03) +#define ZCL_MOVE_TO_LEVEL_WITH_ON_OFF_COMMAND_ID (0x04) +#define ZCL_MOVE_WITH_ON_OFF_COMMAND_ID (0x05) +#define ZCL_STEP_WITH_ON_OFF_COMMAND_ID (0x06) +#define ZCL_STOP_WITH_ON_OFF_COMMAND_ID (0x07) + +// Commands for cluster: Alarms +#define ZCL_RESET_ALARM_COMMAND_ID (0x00) +#define ZCL_ALARM_COMMAND_ID (0x00) +#define ZCL_RESET_ALL_ALARMS_COMMAND_ID (0x01) +#define ZCL_GET_ALARM_RESPONSE_COMMAND_ID (0x01) +#define ZCL_GET_ALARM_COMMAND_ID (0x02) +#define ZCL_RESET_ALARM_LOG_COMMAND_ID (0x03) + +// Commands for cluster: RSSI Location +#define ZCL_SET_ABSOLUTE_LOCATION_COMMAND_ID (0x00) +#define ZCL_DEVICE_CONFIGURATION_RESPONSE_COMMAND_ID (0x00) +#define ZCL_SET_DEVICE_CONFIGURATION_COMMAND_ID (0x01) +#define ZCL_LOCATION_DATA_RESPONSE_COMMAND_ID (0x01) +#define ZCL_GET_DEVICE_CONFIGURATION_COMMAND_ID (0x02) +#define ZCL_LOCATION_DATA_NOTIFICATION_COMMAND_ID (0x02) +#define ZCL_GET_LOCATION_DATA_COMMAND_ID (0x03) +#define ZCL_COMPACT_LOCATION_DATA_NOTIFICATION_COMMAND_ID (0x03) +#define ZCL_RSSI_RESPONSE_COMMAND_ID (0x04) +#define ZCL_RSSI_PING_COMMAND_ID (0x04) +#define ZCL_SEND_PINGS_COMMAND_ID (0x05) +#define ZCL_RSSI_REQUEST_COMMAND_ID (0x05) +#define ZCL_ANCHOR_NODE_ANNOUNCE_COMMAND_ID (0x06) +#define ZCL_REPORT_RSSI_MEASUREMENTS_COMMAND_ID (0x06) +#define ZCL_REQUEST_OWN_LOCATION_COMMAND_ID (0x07) + +// Commands for cluster: Commissioning +#define ZCL_RESTART_DEVICE_COMMAND_ID (0x00) +#define ZCL_RESTART_DEVICE_RESPONSE_COMMAND_ID (0x00) +#define ZCL_SAVE_STARTUP_PARAMETERS_COMMAND_ID (0x01) +#define ZCL_SAVE_STARTUP_PARAMETERS_RESPONSE_COMMAND_ID (0x01) +#define ZCL_RESTORE_STARTUP_PARAMETERS_COMMAND_ID (0x02) +#define ZCL_RESTORE_STARTUP_PARAMETERS_RESPONSE_COMMAND_ID (0x02) +#define ZCL_RESET_STARTUP_PARAMETERS_COMMAND_ID (0x03) +#define ZCL_RESET_STARTUP_PARAMETERS_RESPONSE_COMMAND_ID (0x03) + +// Commands for cluster: Partition +#define ZCL_TRANSFER_PARTITIONED_FRAME_COMMAND_ID (0x00) +#define ZCL_MULTIPLE_ACK_COMMAND_ID (0x00) +#define ZCL_READ_HANDSHAKE_PARAM_COMMAND_ID (0x01) +#define ZCL_READ_HANDSHAKE_PARAM_RESPONSE_COMMAND_ID (0x01) +#define ZCL_WRITE_HANDSHAKE_PARAM_COMMAND_ID (0x02) + +// Commands for cluster: Over the Air Bootloading +#define ZCL_IMAGE_NOTIFY_COMMAND_ID (0x00) +#define ZCL_QUERY_NEXT_IMAGE_REQUEST_COMMAND_ID (0x01) +#define ZCL_QUERY_NEXT_IMAGE_RESPONSE_COMMAND_ID (0x02) +#define ZCL_IMAGE_BLOCK_REQUEST_COMMAND_ID (0x03) +#define ZCL_IMAGE_PAGE_REQUEST_COMMAND_ID (0x04) +#define ZCL_IMAGE_BLOCK_RESPONSE_COMMAND_ID (0x05) +#define ZCL_UPGRADE_END_REQUEST_COMMAND_ID (0x06) +#define ZCL_UPGRADE_END_RESPONSE_COMMAND_ID (0x07) +#define ZCL_QUERY_SPECIFIC_FILE_REQUEST_COMMAND_ID (0x08) +#define ZCL_QUERY_SPECIFIC_FILE_RESPONSE_COMMAND_ID (0x09) + +// Commands for cluster: Power Profile +#define ZCL_POWER_PROFILE_REQUEST_COMMAND_ID (0x00) +#define ZCL_POWER_PROFILE_NOTIFICATION_COMMAND_ID (0x00) +#define ZCL_POWER_PROFILE_STATE_REQUEST_COMMAND_ID (0x01) +#define ZCL_POWER_PROFILE_RESPONSE_COMMAND_ID (0x01) +#define ZCL_GET_POWER_PROFILE_PRICE_RESPONSE_COMMAND_ID (0x02) +#define ZCL_POWER_PROFILE_STATE_RESPONSE_COMMAND_ID (0x02) +#define ZCL_GET_OVERALL_SCHEDULE_PRICE_RESPONSE_COMMAND_ID (0x03) +#define ZCL_GET_POWER_PROFILE_PRICE_COMMAND_ID (0x03) +#define ZCL_ENERGY_PHASES_SCHEDULE_NOTIFICATION_COMMAND_ID (0x04) +#define ZCL_POWER_PROFILES_STATE_NOTIFICATION_COMMAND_ID (0x04) +#define ZCL_ENERGY_PHASES_SCHEDULE_RESPONSE_COMMAND_ID (0x05) +#define ZCL_GET_OVERALL_SCHEDULE_PRICE_COMMAND_ID (0x05) +#define ZCL_POWER_PROFILE_SCHEDULE_CONSTRAINTS_REQUEST_COMMAND_ID (0x06) +#define ZCL_ENERGY_PHASES_SCHEDULE_REQUEST_COMMAND_ID (0x06) +#define ZCL_ENERGY_PHASES_SCHEDULE_STATE_REQUEST_COMMAND_ID (0x07) +#define ZCL_ENERGY_PHASES_SCHEDULE_STATE_RESPONSE_COMMAND_ID (0x07) +#define ZCL_GET_POWER_PROFILE_PRICE_EXTENDED_RESPONSE_COMMAND_ID (0x08) +#define ZCL_ENERGY_PHASES_SCHEDULE_STATE_NOTIFICATION_COMMAND_ID (0x08) +#define ZCL_POWER_PROFILE_SCHEDULE_CONSTRAINTS_NOTIFICATION_COMMAND_ID (0x09) +#define ZCL_POWER_PROFILE_SCHEDULE_CONSTRAINTS_RESPONSE_COMMAND_ID (0x0A) +#define ZCL_GET_POWER_PROFILE_PRICE_EXTENDED_COMMAND_ID (0x0B) + +// Commands for cluster: Appliance Control +#define ZCL_EXECUTION_OF_A_COMMAND_COMMAND_ID (0x00) +#define ZCL_SIGNAL_STATE_RESPONSE_COMMAND_ID (0x00) +#define ZCL_SIGNAL_STATE_COMMAND_ID (0x01) +#define ZCL_SIGNAL_STATE_NOTIFICATION_COMMAND_ID (0x01) +#define ZCL_WRITE_FUNCTIONS_COMMAND_ID (0x02) +#define ZCL_OVERLOAD_PAUSE_RESUME_COMMAND_ID (0x03) +#define ZCL_OVERLOAD_PAUSE_COMMAND_ID (0x04) +#define ZCL_OVERLOAD_WARNING_COMMAND_ID (0x05) + +// Commands for cluster: Poll Control +#define ZCL_CHECK_IN_COMMAND_ID (0x00) +#define ZCL_CHECK_IN_RESPONSE_COMMAND_ID (0x00) +#define ZCL_FAST_POLL_STOP_COMMAND_ID (0x01) +#define ZCL_SET_LONG_POLL_INTERVAL_COMMAND_ID (0x02) +#define ZCL_SET_SHORT_POLL_INTERVAL_COMMAND_ID (0x03) + +// Commands for cluster: Green Power +#define ZCL_GP_NOTIFICATION_COMMAND_ID (0x00) +#define ZCL_GP_NOTIFICATION_RESPONSE_COMMAND_ID (0x00) +#define ZCL_GP_PAIRING_SEARCH_COMMAND_ID (0x01) +#define ZCL_GP_PAIRING_COMMAND_ID (0x01) +#define ZCL_GP_PROXY_COMMISSIONING_MODE_COMMAND_ID (0x02) +#define ZCL_GP_TUNNELING_STOP_COMMAND_ID (0x03) +#define ZCL_GP_COMMISSIONING_NOTIFICATION_COMMAND_ID (0x04) +#define ZCL_GP_SINK_COMMISSIONING_MODE_COMMAND_ID (0x05) +#define ZCL_GP_RESPONSE_COMMAND_ID (0x06) +#define ZCL_GP_TRANSLATION_TABLE_UPDATE_COMMAND_ID (0x07) +#define ZCL_GP_TRANSLATION_TABLE_REQUEST_COMMAND_ID (0x08) +#define ZCL_GP_TRANSLATION_TABLE_RESPONSE_COMMAND_ID (0x08) +#define ZCL_GP_PAIRING_CONFIGURATION_COMMAND_ID (0x09) +#define ZCL_GP_SINK_TABLE_REQUEST_COMMAND_ID (0x0A) +#define ZCL_GP_SINK_TABLE_RESPONSE_COMMAND_ID (0x0A) +#define ZCL_GP_PROXY_TABLE_RESPONSE_COMMAND_ID (0x0B) +#define ZCL_GP_PROXY_TABLE_REQUEST_COMMAND_ID (0x0B) + +// Commands for cluster: Door Lock +#define ZCL_LOCK_DOOR_COMMAND_ID (0x00) +#define ZCL_LOCK_DOOR_RESPONSE_COMMAND_ID (0x00) +#define ZCL_UNLOCK_DOOR_COMMAND_ID (0x01) +#define ZCL_UNLOCK_DOOR_RESPONSE_COMMAND_ID (0x01) +#define ZCL_TOGGLE_COMMAND_ID (0x02) +#define ZCL_TOGGLE_RESPONSE_COMMAND_ID (0x02) +#define ZCL_UNLOCK_WITH_TIMEOUT_COMMAND_ID (0x03) +#define ZCL_UNLOCK_WITH_TIMEOUT_RESPONSE_COMMAND_ID (0x03) +#define ZCL_GET_LOG_RECORD_COMMAND_ID (0x04) +#define ZCL_GET_LOG_RECORD_RESPONSE_COMMAND_ID (0x04) +#define ZCL_SET_PIN_COMMAND_ID (0x05) +#define ZCL_SET_PIN_RESPONSE_COMMAND_ID (0x05) +#define ZCL_GET_PIN_COMMAND_ID (0x06) +#define ZCL_GET_PIN_RESPONSE_COMMAND_ID (0x06) +#define ZCL_CLEAR_PIN_COMMAND_ID (0x07) +#define ZCL_CLEAR_PIN_RESPONSE_COMMAND_ID (0x07) +#define ZCL_CLEAR_ALL_PINS_COMMAND_ID (0x08) +#define ZCL_CLEAR_ALL_PINS_RESPONSE_COMMAND_ID (0x08) +#define ZCL_SET_USER_STATUS_COMMAND_ID (0x09) +#define ZCL_SET_USER_STATUS_RESPONSE_COMMAND_ID (0x09) +#define ZCL_GET_USER_STATUS_COMMAND_ID (0x0A) +#define ZCL_GET_USER_STATUS_RESPONSE_COMMAND_ID (0x0A) +#define ZCL_SET_WEEKDAY_SCHEDULE_COMMAND_ID (0x0B) +#define ZCL_SET_WEEKDAY_SCHEDULE_RESPONSE_COMMAND_ID (0x0B) +#define ZCL_GET_WEEKDAY_SCHEDULE_COMMAND_ID (0x0C) +#define ZCL_GET_WEEKDAY_SCHEDULE_RESPONSE_COMMAND_ID (0x0C) +#define ZCL_CLEAR_WEEKDAY_SCHEDULE_COMMAND_ID (0x0D) +#define ZCL_CLEAR_WEEKDAY_SCHEDULE_RESPONSE_COMMAND_ID (0x0D) +#define ZCL_SET_YEARDAY_SCHEDULE_COMMAND_ID (0x0E) +#define ZCL_SET_YEARDAY_SCHEDULE_RESPONSE_COMMAND_ID (0x0E) +#define ZCL_GET_YEARDAY_SCHEDULE_COMMAND_ID (0x0F) +#define ZCL_GET_YEARDAY_SCHEDULE_RESPONSE_COMMAND_ID (0x0F) +#define ZCL_CLEAR_YEARDAY_SCHEDULE_COMMAND_ID (0x10) +#define ZCL_CLEAR_YEARDAY_SCHEDULE_RESPONSE_COMMAND_ID (0x10) +#define ZCL_SET_HOLIDAY_SCHEDULE_COMMAND_ID (0x11) +#define ZCL_SET_HOLIDAY_SCHEDULE_RESPONSE_COMMAND_ID (0x11) +#define ZCL_GET_HOLIDAY_SCHEDULE_COMMAND_ID (0x12) +#define ZCL_GET_HOLIDAY_SCHEDULE_RESPONSE_COMMAND_ID (0x12) +#define ZCL_CLEAR_HOLIDAY_SCHEDULE_COMMAND_ID (0x13) +#define ZCL_CLEAR_HOLIDAY_SCHEDULE_RESPONSE_COMMAND_ID (0x13) +#define ZCL_SET_USER_TYPE_COMMAND_ID (0x14) +#define ZCL_SET_USER_TYPE_RESPONSE_COMMAND_ID (0x14) +#define ZCL_GET_USER_TYPE_COMMAND_ID (0x15) +#define ZCL_GET_USER_TYPE_RESPONSE_COMMAND_ID (0x15) +#define ZCL_SET_RFID_COMMAND_ID (0x16) +#define ZCL_SET_RFID_RESPONSE_COMMAND_ID (0x16) +#define ZCL_GET_RFID_COMMAND_ID (0x17) +#define ZCL_GET_RFID_RESPONSE_COMMAND_ID (0x17) +#define ZCL_CLEAR_RFID_COMMAND_ID (0x18) +#define ZCL_CLEAR_RFID_RESPONSE_COMMAND_ID (0x18) +#define ZCL_CLEAR_ALL_RFIDS_COMMAND_ID (0x19) +#define ZCL_CLEAR_ALL_RFIDS_RESPONSE_COMMAND_ID (0x19) +#define ZCL_OPERATION_EVENT_NOTIFICATION_COMMAND_ID (0x20) +#define ZCL_PROGRAMMING_EVENT_NOTIFICATION_COMMAND_ID (0x21) + +// Commands for cluster: Window Covering +#define ZCL_WINDOW_COVERING_UP_OPEN_COMMAND_ID (0x00) +#define ZCL_WINDOW_COVERING_DOWN_CLOSE_COMMAND_ID (0x01) +#define ZCL_WINDOW_COVERING_STOP_COMMAND_ID (0x02) +#define ZCL_WINDOW_COVERING_GO_TO_LIFT_VALUE_COMMAND_ID (0x04) +#define ZCL_WINDOW_COVERING_GO_TO_LIFT_PERCENTAGE_COMMAND_ID (0x05) +#define ZCL_WINDOW_COVERING_GO_TO_TILT_VALUE_COMMAND_ID (0x07) +#define ZCL_WINDOW_COVERING_GO_TO_TILT_PERCENTAGE_COMMAND_ID (0x08) + +// Commands for cluster: Barrier Control +#define ZCL_BARRIER_CONTROL_GO_TO_PERCENT_COMMAND_ID (0x00) +#define ZCL_BARRIER_CONTROL_STOP_COMMAND_ID (0x01) + +// Commands for cluster: Thermostat +#define ZCL_SETPOINT_RAISE_LOWER_COMMAND_ID (0x00) +#define ZCL_CURRENT_WEEKLY_SCHEDULE_COMMAND_ID (0x00) +#define ZCL_SET_WEEKLY_SCHEDULE_COMMAND_ID (0x01) +#define ZCL_RELAY_STATUS_LOG_COMMAND_ID (0x01) +#define ZCL_GET_WEEKLY_SCHEDULE_COMMAND_ID (0x02) +#define ZCL_CLEAR_WEEKLY_SCHEDULE_COMMAND_ID (0x03) +#define ZCL_GET_RELAY_STATUS_LOG_COMMAND_ID (0x04) + +// Commands for cluster: Color Control +#define ZCL_MOVE_TO_HUE_COMMAND_ID (0x00) +#define ZCL_MOVE_HUE_COMMAND_ID (0x01) +#define ZCL_STEP_HUE_COMMAND_ID (0x02) +#define ZCL_MOVE_TO_SATURATION_COMMAND_ID (0x03) +#define ZCL_MOVE_SATURATION_COMMAND_ID (0x04) +#define ZCL_STEP_SATURATION_COMMAND_ID (0x05) +#define ZCL_MOVE_TO_HUE_AND_SATURATION_COMMAND_ID (0x06) +#define ZCL_MOVE_TO_COLOR_COMMAND_ID (0x07) +#define ZCL_MOVE_COLOR_COMMAND_ID (0x08) +#define ZCL_STEP_COLOR_COMMAND_ID (0x09) +#define ZCL_MOVE_TO_COLOR_TEMPERATURE_COMMAND_ID (0x0A) +#define ZCL_ENHANCED_MOVE_TO_HUE_COMMAND_ID (0x40) +#define ZCL_ENHANCED_MOVE_HUE_COMMAND_ID (0x41) +#define ZCL_ENHANCED_STEP_HUE_COMMAND_ID (0x42) +#define ZCL_ENHANCED_MOVE_TO_HUE_AND_SATURATION_COMMAND_ID (0x43) +#define ZCL_COLOR_LOOP_SET_COMMAND_ID (0x44) +#define ZCL_STOP_MOVE_STEP_COMMAND_ID (0x47) +#define ZCL_MOVE_COLOR_TEMPERATURE_COMMAND_ID (0x4B) +#define ZCL_STEP_COLOR_TEMPERATURE_COMMAND_ID (0x4C) + +// Commands for cluster: IAS Zone +#define ZCL_ZONE_ENROLL_RESPONSE_COMMAND_ID (0x00) +#define ZCL_ZONE_STATUS_CHANGE_NOTIFICATION_COMMAND_ID (0x00) +#define ZCL_INITIATE_NORMAL_OPERATION_MODE_COMMAND_ID (0x01) +#define ZCL_ZONE_ENROLL_REQUEST_COMMAND_ID (0x01) +#define ZCL_INITIATE_TEST_MODE_COMMAND_ID (0x02) +#define ZCL_INITIATE_NORMAL_OPERATION_MODE_RESPONSE_COMMAND_ID (0x02) +#define ZCL_INITIATE_TEST_MODE_RESPONSE_COMMAND_ID (0x03) + +// Commands for cluster: IAS ACE +#define ZCL_ARM_COMMAND_ID (0x00) +#define ZCL_ARM_RESPONSE_COMMAND_ID (0x00) +#define ZCL_BYPASS_COMMAND_ID (0x01) +#define ZCL_GET_ZONE_ID_MAP_RESPONSE_COMMAND_ID (0x01) +#define ZCL_EMERGENCY_COMMAND_ID (0x02) +#define ZCL_GET_ZONE_INFORMATION_RESPONSE_COMMAND_ID (0x02) +#define ZCL_FIRE_COMMAND_ID (0x03) +#define ZCL_ZONE_STATUS_CHANGED_COMMAND_ID (0x03) +#define ZCL_PANIC_COMMAND_ID (0x04) +#define ZCL_PANEL_STATUS_CHANGED_COMMAND_ID (0x04) +#define ZCL_GET_ZONE_ID_MAP_COMMAND_ID (0x05) +#define ZCL_GET_PANEL_STATUS_RESPONSE_COMMAND_ID (0x05) +#define ZCL_GET_ZONE_INFORMATION_COMMAND_ID (0x06) +#define ZCL_SET_BYPASSED_ZONE_LIST_COMMAND_ID (0x06) +#define ZCL_GET_PANEL_STATUS_COMMAND_ID (0x07) +#define ZCL_BYPASS_RESPONSE_COMMAND_ID (0x07) +#define ZCL_GET_BYPASSED_ZONE_LIST_COMMAND_ID (0x08) +#define ZCL_GET_ZONE_STATUS_RESPONSE_COMMAND_ID (0x08) +#define ZCL_GET_ZONE_STATUS_COMMAND_ID (0x09) + +// Commands for cluster: IAS WD +#define ZCL_START_WARNING_COMMAND_ID (0x00) +#define ZCL_SQUAWK_COMMAND_ID (0x01) + +// Commands for cluster: Generic Tunnel +#define ZCL_MATCH_PROTOCOL_ADDRESS_COMMAND_ID (0x00) +#define ZCL_MATCH_PROTOCOL_ADDRESS_RESPONSE_COMMAND_ID (0x00) +#define ZCL_ADVERTISE_PROTOCOL_ADDRESS_COMMAND_ID (0x01) + +// Commands for cluster: BACnet Protocol Tunnel +#define ZCL_TRANSFER_NPDU_COMMAND_ID (0x00) + +// Commands for cluster: 11073 Protocol Tunnel +#define ZCL_TRANSFER_APDU_COMMAND_ID (0x00) +#define ZCL_CONNECT_REQUEST_COMMAND_ID (0x01) +#define ZCL_DISCONNECT_REQUEST_COMMAND_ID (0x02) +#define ZCL_CONNECT_STATUS_NOTIFICATION_COMMAND_ID (0x03) + +// Commands for cluster: ISO 7816 Protocol Tunnel +#define ZCL_TRANSFER_APDU_COMMAND_ID (0x00) +#define ZCL_INSERT_SMART_CARD_COMMAND_ID (0x01) +#define ZCL_EXTRACT_SMART_CARD_COMMAND_ID (0x02) + +// Commands for cluster: Price +#define ZCL_PUBLISH_PRICE_COMMAND_ID (0x00) +#define ZCL_GET_CURRENT_PRICE_COMMAND_ID (0x00) +#define ZCL_PUBLISH_BLOCK_PERIOD_COMMAND_ID (0x01) +#define ZCL_GET_SCHEDULED_PRICES_COMMAND_ID (0x01) +#define ZCL_PUBLISH_CONVERSION_FACTOR_COMMAND_ID (0x02) +#define ZCL_PRICE_ACKNOWLEDGEMENT_COMMAND_ID (0x02) +#define ZCL_PUBLISH_CALORIFIC_VALUE_COMMAND_ID (0x03) +#define ZCL_GET_BLOCK_PERIODS_COMMAND_ID (0x03) +#define ZCL_PUBLISH_TARIFF_INFORMATION_COMMAND_ID (0x04) +#define ZCL_GET_CONVERSION_FACTOR_COMMAND_ID (0x04) +#define ZCL_PUBLISH_PRICE_MATRIX_COMMAND_ID (0x05) +#define ZCL_GET_CALORIFIC_VALUE_COMMAND_ID (0x05) +#define ZCL_PUBLISH_BLOCK_THRESHOLDS_COMMAND_ID (0x06) +#define ZCL_GET_TARIFF_INFORMATION_COMMAND_ID (0x06) +#define ZCL_PUBLISH_CO2_VALUE_COMMAND_ID (0x07) +#define ZCL_GET_PRICE_MATRIX_COMMAND_ID (0x07) +#define ZCL_PUBLISH_TIER_LABELS_COMMAND_ID (0x08) +#define ZCL_GET_BLOCK_THRESHOLDS_COMMAND_ID (0x08) +#define ZCL_PUBLISH_BILLING_PERIOD_COMMAND_ID (0x09) +#define ZCL_GET_CO2_VALUE_COMMAND_ID (0x09) +#define ZCL_PUBLISH_CONSOLIDATED_BILL_COMMAND_ID (0x0A) +#define ZCL_GET_TIER_LABELS_COMMAND_ID (0x0A) +#define ZCL_PUBLISH_CPP_EVENT_COMMAND_ID (0x0B) +#define ZCL_GET_BILLING_PERIOD_COMMAND_ID (0x0B) +#define ZCL_PUBLISH_CREDIT_PAYMENT_COMMAND_ID (0x0C) +#define ZCL_GET_CONSOLIDATED_BILL_COMMAND_ID (0x0C) +#define ZCL_PUBLISH_CURRENCY_CONVERSION_COMMAND_ID (0x0D) +#define ZCL_CPP_EVENT_RESPONSE_COMMAND_ID (0x0D) +#define ZCL_CANCEL_TARIFF_COMMAND_ID (0x0E) +#define ZCL_GET_CREDIT_PAYMENT_COMMAND_ID (0x0E) +#define ZCL_GET_CURRENCY_CONVERSION_COMMAND_COMMAND_ID (0x0F) +#define ZCL_GET_TARIFF_CANCELLATION_COMMAND_ID (0x10) + +// Commands for cluster: Demand Response and Load Control +#define ZCL_LOAD_CONTROL_EVENT_COMMAND_ID (0x00) +#define ZCL_REPORT_EVENT_STATUS_COMMAND_ID (0x00) +#define ZCL_CANCEL_LOAD_CONTROL_EVENT_COMMAND_ID (0x01) +#define ZCL_GET_SCHEDULED_EVENTS_COMMAND_ID (0x01) +#define ZCL_CANCEL_ALL_LOAD_CONTROL_EVENTS_COMMAND_ID (0x02) + +// Commands for cluster: Simple Metering +#define ZCL_GET_PROFILE_RESPONSE_COMMAND_ID (0x00) +#define ZCL_GET_PROFILE_COMMAND_ID (0x00) +#define ZCL_REQUEST_MIRROR_COMMAND_ID (0x01) +#define ZCL_REQUEST_MIRROR_RESPONSE_COMMAND_ID (0x01) +#define ZCL_REMOVE_MIRROR_COMMAND_ID (0x02) +#define ZCL_MIRROR_REMOVED_COMMAND_ID (0x02) +#define ZCL_REQUEST_FAST_POLL_MODE_RESPONSE_COMMAND_ID (0x03) +#define ZCL_REQUEST_FAST_POLL_MODE_COMMAND_ID (0x03) +#define ZCL_SCHEDULE_SNAPSHOT_RESPONSE_COMMAND_ID (0x04) +#define ZCL_SCHEDULE_SNAPSHOT_COMMAND_ID (0x04) +#define ZCL_TAKE_SNAPSHOT_RESPONSE_COMMAND_ID (0x05) +#define ZCL_TAKE_SNAPSHOT_COMMAND_ID (0x05) +#define ZCL_PUBLISH_SNAPSHOT_COMMAND_ID (0x06) +#define ZCL_GET_SNAPSHOT_COMMAND_ID (0x06) +#define ZCL_GET_SAMPLED_DATA_RESPONSE_COMMAND_ID (0x07) +#define ZCL_START_SAMPLING_COMMAND_ID (0x07) +#define ZCL_CONFIGURE_MIRROR_COMMAND_ID (0x08) +#define ZCL_GET_SAMPLED_DATA_COMMAND_ID (0x08) +#define ZCL_CONFIGURE_NOTIFICATION_SCHEME_COMMAND_ID (0x09) +#define ZCL_MIRROR_REPORT_ATTRIBUTE_RESPONSE_COMMAND_ID (0x09) +#define ZCL_CONFIGURE_NOTIFICATION_FLAGS_COMMAND_ID (0x0A) +#define ZCL_RESET_LOAD_LIMIT_COUNTER_COMMAND_ID (0x0A) +#define ZCL_GET_NOTIFIED_MESSAGE_COMMAND_ID (0x0B) +#define ZCL_CHANGE_SUPPLY_COMMAND_ID (0x0B) +#define ZCL_SUPPLY_STATUS_RESPONSE_COMMAND_ID (0x0C) +#define ZCL_LOCAL_CHANGE_SUPPLY_COMMAND_ID (0x0C) +#define ZCL_START_SAMPLING_RESPONSE_COMMAND_ID (0x0D) +#define ZCL_SET_SUPPLY_STATUS_COMMAND_ID (0x0D) +#define ZCL_SET_UNCONTROLLED_FLOW_THRESHOLD_COMMAND_ID (0x0E) + +// Commands for cluster: Messaging +#define ZCL_DISPLAY_MESSAGE_COMMAND_ID (0x00) +#define ZCL_GET_LAST_MESSAGE_COMMAND_ID (0x00) +#define ZCL_CANCEL_MESSAGE_COMMAND_ID (0x01) +#define ZCL_MESSAGE_CONFIRMATION_COMMAND_ID (0x01) +#define ZCL_DISPLAY_PROTECTED_MESSAGE_COMMAND_ID (0x02) +#define ZCL_GET_MESSAGE_CANCELLATION_COMMAND_ID (0x02) +#define ZCL_CANCEL_ALL_MESSAGES_COMMAND_ID (0x03) + +// Commands for cluster: Tunneling +#define ZCL_REQUEST_TUNNEL_COMMAND_ID (0x00) +#define ZCL_REQUEST_TUNNEL_RESPONSE_COMMAND_ID (0x00) +#define ZCL_CLOSE_TUNNEL_COMMAND_ID (0x01) +#define ZCL_TRANSFER_DATA_SERVER_TO_CLIENT_COMMAND_ID (0x01) +#define ZCL_TRANSFER_DATA_CLIENT_TO_SERVER_COMMAND_ID (0x02) +#define ZCL_TRANSFER_DATA_ERROR_SERVER_TO_CLIENT_COMMAND_ID (0x02) +#define ZCL_TRANSFER_DATA_ERROR_CLIENT_TO_SERVER_COMMAND_ID (0x03) +#define ZCL_ACK_TRANSFER_DATA_SERVER_TO_CLIENT_COMMAND_ID (0x03) +#define ZCL_ACK_TRANSFER_DATA_CLIENT_TO_SERVER_COMMAND_ID (0x04) +#define ZCL_READY_DATA_SERVER_TO_CLIENT_COMMAND_ID (0x04) +#define ZCL_READY_DATA_CLIENT_TO_SERVER_COMMAND_ID (0x05) +#define ZCL_SUPPORTED_TUNNEL_PROTOCOLS_RESPONSE_COMMAND_ID (0x05) +#define ZCL_GET_SUPPORTED_TUNNEL_PROTOCOLS_COMMAND_ID (0x06) +#define ZCL_TUNNEL_CLOSURE_NOTIFICATION_COMMAND_ID (0x06) + +// Commands for cluster: Prepayment +#define ZCL_SELECT_AVAILABLE_EMERGENCY_CREDIT_COMMAND_ID (0x00) +#define ZCL_PUBLISH_PREPAY_SNAPSHOT_COMMAND_ID (0x01) +#define ZCL_CHANGE_DEBT_COMMAND_ID (0x02) +#define ZCL_CHANGE_PAYMENT_MODE_RESPONSE_COMMAND_ID (0x02) +#define ZCL_EMERGENCY_CREDIT_SETUP_COMMAND_ID (0x03) +#define ZCL_CONSUMER_TOP_UP_RESPONSE_COMMAND_ID (0x03) +#define ZCL_CONSUMER_TOP_UP_COMMAND_ID (0x04) +#define ZCL_CREDIT_ADJUSTMENT_COMMAND_ID (0x05) +#define ZCL_PUBLISH_TOP_UP_LOG_COMMAND_ID (0x05) +#define ZCL_CHANGE_PAYMENT_MODE_COMMAND_ID (0x06) +#define ZCL_PUBLISH_DEBT_LOG_COMMAND_ID (0x06) +#define ZCL_GET_PREPAY_SNAPSHOT_COMMAND_ID (0x07) +#define ZCL_GET_TOP_UP_LOG_COMMAND_ID (0x08) +#define ZCL_SET_LOW_CREDIT_WARNING_LEVEL_COMMAND_ID (0x09) +#define ZCL_GET_DEBT_REPAYMENT_LOG_COMMAND_ID (0x0A) +#define ZCL_SET_MAXIMUM_CREDIT_LIMIT_COMMAND_ID (0x0B) +#define ZCL_SET_OVERALL_DEBT_CAP_COMMAND_ID (0x0C) + +// Commands for cluster: Energy Management +#define ZCL_REPORT_EVENT_STATUS_COMMAND_ID (0x00) +#define ZCL_MANAGE_EVENT_COMMAND_ID (0x00) + +// Commands for cluster: Calendar +#define ZCL_PUBLISH_CALENDAR_COMMAND_ID (0x00) +#define ZCL_GET_CALENDAR_COMMAND_ID (0x00) +#define ZCL_PUBLISH_DAY_PROFILE_COMMAND_ID (0x01) +#define ZCL_GET_DAY_PROFILES_COMMAND_ID (0x01) +#define ZCL_PUBLISH_WEEK_PROFILE_COMMAND_ID (0x02) +#define ZCL_GET_WEEK_PROFILES_COMMAND_ID (0x02) +#define ZCL_PUBLISH_SEASONS_COMMAND_ID (0x03) +#define ZCL_GET_SEASONS_COMMAND_ID (0x03) +#define ZCL_PUBLISH_SPECIAL_DAYS_COMMAND_ID (0x04) +#define ZCL_GET_SPECIAL_DAYS_COMMAND_ID (0x04) +#define ZCL_CANCEL_CALENDAR_COMMAND_ID (0x05) +#define ZCL_GET_CALENDAR_CANCELLATION_COMMAND_ID (0x05) + +// Commands for cluster: Device Management +#define ZCL_GET_CHANGE_OF_TENANCY_COMMAND_ID (0x00) +#define ZCL_PUBLISH_CHANGE_OF_TENANCY_COMMAND_ID (0x00) +#define ZCL_GET_CHANGE_OF_SUPPLIER_COMMAND_ID (0x01) +#define ZCL_PUBLISH_CHANGE_OF_SUPPLIER_COMMAND_ID (0x01) +#define ZCL_REQUEST_NEW_PASSWORD_COMMAND_ID (0x02) +#define ZCL_REQUEST_NEW_PASSWORD_RESPONSE_COMMAND_ID (0x02) +#define ZCL_GET_SITE_ID_COMMAND_ID (0x03) +#define ZCL_UPDATE_SITE_ID_COMMAND_ID (0x03) +#define ZCL_REPORT_EVENT_CONFIGURATION_COMMAND_ID (0x04) +#define ZCL_SET_EVENT_CONFIGURATION_COMMAND_ID (0x04) +#define ZCL_GET_CIN_COMMAND_ID (0x05) +#define ZCL_GET_EVENT_CONFIGURATION_COMMAND_ID (0x05) +#define ZCL_UPDATE_CIN_COMMAND_ID (0x06) + +// Commands for cluster: Events +#define ZCL_GET_EVENT_LOG_COMMAND_ID (0x00) +#define ZCL_PUBLISH_EVENT_COMMAND_ID (0x00) +#define ZCL_CLEAR_EVENT_LOG_REQUEST_COMMAND_ID (0x01) +#define ZCL_PUBLISH_EVENT_LOG_COMMAND_ID (0x01) +#define ZCL_CLEAR_EVENT_LOG_RESPONSE_COMMAND_ID (0x02) + +// Commands for cluster: MDU Pairing +#define ZCL_PAIRING_RESPONSE_COMMAND_ID (0x00) +#define ZCL_PAIRING_REQUEST_COMMAND_ID (0x00) + +// Commands for cluster: Sub-GHz +#define ZCL_SUSPEND_ZCL_MESSAGES_COMMAND_ID (0x00) +#define ZCL_GET_SUSPEND_ZCL_MESSAGES_STATUS_COMMAND_ID (0x00) + +// Commands for cluster: Key Establishment +#define ZCL_INITIATE_KEY_ESTABLISHMENT_REQUEST_COMMAND_ID (0x00) +#define ZCL_INITIATE_KEY_ESTABLISHMENT_RESPONSE_COMMAND_ID (0x00) +#define ZCL_EPHEMERAL_DATA_REQUEST_COMMAND_ID (0x01) +#define ZCL_EPHEMERAL_DATA_RESPONSE_COMMAND_ID (0x01) +#define ZCL_CONFIRM_KEY_DATA_REQUEST_COMMAND_ID (0x02) +#define ZCL_CONFIRM_KEY_DATA_RESPONSE_COMMAND_ID (0x02) +#define ZCL_TERMINATE_KEY_ESTABLISHMENT_COMMAND_ID (0x03) + +// Commands for cluster: Information +#define ZCL_REQUEST_INFORMATION_COMMAND_ID (0x00) +#define ZCL_REQUEST_INFORMATION_RESPONSE_COMMAND_ID (0x00) +#define ZCL_PUSH_INFORMATION_RESPONSE_COMMAND_ID (0x01) +#define ZCL_PUSH_INFORMATION_COMMAND_ID (0x01) +#define ZCL_SEND_PREFERENCE_COMMAND_ID (0x02) +#define ZCL_SEND_PREFERENCE_RESPONSE_COMMAND_ID (0x02) +#define ZCL_REQUEST_PREFERENCE_RESPONSE_COMMAND_ID (0x03) +#define ZCL_SERVER_REQUEST_PREFERENCE_COMMAND_ID (0x03) +#define ZCL_UPDATE_COMMAND_ID (0x04) +#define ZCL_REQUEST_PREFERENCE_CONFIRMATION_COMMAND_ID (0x04) +#define ZCL_DELETE_COMMAND_ID (0x05) +#define ZCL_UPDATE_RESPONSE_COMMAND_ID (0x05) +#define ZCL_CONFIGURE_NODE_DESCRIPTION_COMMAND_ID (0x06) +#define ZCL_DELETE_RESPONSE_COMMAND_ID (0x06) +#define ZCL_CONFIGURE_DELIVERY_ENABLE_COMMAND_ID (0x07) +#define ZCL_CONFIGURE_PUSH_INFORMATION_TIMER_COMMAND_ID (0x08) +#define ZCL_CONFIGURE_SET_ROOT_ID_COMMAND_ID (0x09) + +// Commands for cluster: Data Sharing +#define ZCL_READ_FILE_REQUEST_COMMAND_ID (0x00) +#define ZCL_WRITE_FILE_REQUEST_COMMAND_ID (0x00) +#define ZCL_READ_RECORD_REQUEST_COMMAND_ID (0x01) +#define ZCL_MODIFY_FILE_REQUEST_COMMAND_ID (0x01) +#define ZCL_WRITE_FILE_RESPONSE_COMMAND_ID (0x02) +#define ZCL_MODIFY_RECORD_REQUEST_COMMAND_ID (0x02) +#define ZCL_FILE_TRANSMISSION_COMMAND_ID (0x03) +#define ZCL_RECORD_TRANSMISSION_COMMAND_ID (0x04) + +// Commands for cluster: Gaming +#define ZCL_SEARCH_GAME_COMMAND_ID (0x00) +#define ZCL_GAME_ANNOUNCEMENT_COMMAND_ID (0x00) +#define ZCL_JOIN_GAME_COMMAND_ID (0x01) +#define ZCL_GENERAL_RESPONSE_COMMAND_ID (0x01) +#define ZCL_START_GAME_COMMAND_ID (0x02) +#define ZCL_PAUSE_GAME_COMMAND_ID (0x03) +#define ZCL_RESUME_GAME_COMMAND_ID (0x04) +#define ZCL_QUIT_GAME_COMMAND_ID (0x05) +#define ZCL_END_GAME_COMMAND_ID (0x06) +#define ZCL_START_OVER_COMMAND_ID (0x07) +#define ZCL_ACTION_CONTROL_COMMAND_ID (0x08) +#define ZCL_DOWNLOAD_GAME_COMMAND_ID (0x09) + +// Commands for cluster: Data Rate Control +#define ZCL_PATH_CREATION_COMMAND_ID (0x00) +#define ZCL_DATA_RATE_CONTROL_COMMAND_ID (0x00) +#define ZCL_DATA_RATE_NOTIFICATION_COMMAND_ID (0x01) +#define ZCL_PATH_DELETION_COMMAND_ID (0x02) + +// Commands for cluster: Voice over ZigBee +#define ZCL_ESTABLISHMENT_REQUEST_COMMAND_ID (0x00) +#define ZCL_ESTABLISHMENT_RESPONSE_COMMAND_ID (0x00) +#define ZCL_VOICE_TRANSMISSION_COMMAND_ID (0x01) +#define ZCL_VOICE_TRANSMISSION_RESPONSE_COMMAND_ID (0x01) +#define ZCL_VOICE_TRANSMISSION_COMPLETION_COMMAND_ID (0x02) +#define ZCL_CONTROL_COMMAND_ID (0x02) +#define ZCL_CONTROL_RESPONSE_COMMAND_ID (0x03) + +// Commands for cluster: Chatting +#define ZCL_JOIN_CHAT_REQUEST_COMMAND_ID (0x00) +#define ZCL_START_CHAT_RESPONSE_COMMAND_ID (0x00) +#define ZCL_LEAVE_CHAT_REQUEST_COMMAND_ID (0x01) +#define ZCL_JOIN_CHAT_RESPONSE_COMMAND_ID (0x01) +#define ZCL_SEARCH_CHAT_REQUEST_COMMAND_ID (0x02) +#define ZCL_USER_LEFT_COMMAND_ID (0x02) +#define ZCL_SWITCH_CHAIRMAN_RESPONSE_COMMAND_ID (0x03) +#define ZCL_USER_JOINED_COMMAND_ID (0x03) +#define ZCL_START_CHAT_REQUEST_COMMAND_ID (0x04) +#define ZCL_SEARCH_CHAT_RESPONSE_COMMAND_ID (0x04) +#define ZCL_CHAT_MESSAGE_COMMAND_ID (0x05) +#define ZCL_SWITCH_CHAIRMAN_REQUEST_COMMAND_ID (0x05) +#define ZCL_GET_NODE_INFORMATION_REQUEST_COMMAND_ID (0x06) +#define ZCL_SWITCH_CHAIRMAN_CONFIRM_COMMAND_ID (0x06) +#define ZCL_SWITCH_CHAIRMAN_NOTIFICATION_COMMAND_ID (0x07) +#define ZCL_GET_NODE_INFORMATION_RESPONSE_COMMAND_ID (0x08) + +// Commands for cluster: Payment +#define ZCL_BUY_REQUEST_COMMAND_ID (0x00) +#define ZCL_BUY_CONFIRM_COMMAND_ID (0x00) +#define ZCL_ACCEPT_PAYMENT_COMMAND_ID (0x01) +#define ZCL_RECEIPT_DELIVERY_COMMAND_ID (0x01) +#define ZCL_PAYMENT_CONFIRM_COMMAND_ID (0x02) +#define ZCL_TRANSACTION_END_COMMAND_ID (0x02) + +// Commands for cluster: Billing +#define ZCL_SUBSCRIBE_COMMAND_ID (0x00) +#define ZCL_CHECK_BILL_STATUS_COMMAND_ID (0x00) +#define ZCL_UNSUBSCRIBE_COMMAND_ID (0x01) +#define ZCL_SEND_BILL_RECORD_COMMAND_ID (0x01) +#define ZCL_START_BILLING_SESSION_COMMAND_ID (0x02) +#define ZCL_STOP_BILLING_SESSION_COMMAND_ID (0x03) +#define ZCL_BILL_STATUS_NOTIFICATION_COMMAND_ID (0x04) +#define ZCL_SESSION_KEEP_ALIVE_COMMAND_ID (0x05) + +// Commands for cluster: Appliance Events and Alert +#define ZCL_GET_ALERTS_COMMAND_ID (0x00) +#define ZCL_GET_ALERTS_RESPONSE_COMMAND_ID (0x00) +#define ZCL_ALERTS_NOTIFICATION_COMMAND_ID (0x01) +#define ZCL_EVENTS_NOTIFICATION_COMMAND_ID (0x02) + +// Commands for cluster: Appliance Statistics +#define ZCL_LOG_NOTIFICATION_COMMAND_ID (0x00) +#define ZCL_LOG_REQUEST_COMMAND_ID (0x00) +#define ZCL_LOG_RESPONSE_COMMAND_ID (0x01) +#define ZCL_LOG_QUEUE_REQUEST_COMMAND_ID (0x01) +#define ZCL_LOG_QUEUE_RESPONSE_COMMAND_ID (0x02) +#define ZCL_STATISTICS_AVAILABLE_COMMAND_ID (0x03) + +// Commands for cluster: Electrical Measurement +#define ZCL_GET_PROFILE_INFO_RESPONSE_COMMAND_COMMAND_ID (0x00) +#define ZCL_GET_PROFILE_INFO_COMMAND_COMMAND_ID (0x00) +#define ZCL_GET_MEASUREMENT_PROFILE_RESPONSE_COMMAND_COMMAND_ID (0x01) +#define ZCL_GET_MEASUREMENT_PROFILE_COMMAND_COMMAND_ID (0x01) + +// Commands for cluster: ZLL Commissioning +#define ZCL_SCAN_REQUEST_COMMAND_ID (0x00) +#define ZCL_SCAN_RESPONSE_COMMAND_ID (0x01) +#define ZCL_DEVICE_INFORMATION_REQUEST_COMMAND_ID (0x02) +#define ZCL_DEVICE_INFORMATION_RESPONSE_COMMAND_ID (0x03) +#define ZCL_IDENTIFY_REQUEST_COMMAND_ID (0x06) +#define ZCL_RESET_TO_FACTORY_NEW_REQUEST_COMMAND_ID (0x07) +#define ZCL_NETWORK_START_REQUEST_COMMAND_ID (0x10) +#define ZCL_NETWORK_START_RESPONSE_COMMAND_ID (0x11) +#define ZCL_NETWORK_JOIN_ROUTER_REQUEST_COMMAND_ID (0x12) +#define ZCL_NETWORK_JOIN_ROUTER_RESPONSE_COMMAND_ID (0x13) +#define ZCL_NETWORK_JOIN_END_DEVICE_REQUEST_COMMAND_ID (0x14) +#define ZCL_NETWORK_JOIN_END_DEVICE_RESPONSE_COMMAND_ID (0x15) +#define ZCL_NETWORK_UPDATE_REQUEST_COMMAND_ID (0x16) +#define ZCL_ENDPOINT_INFORMATION_COMMAND_ID (0x40) +#define ZCL_GET_GROUP_IDENTIFIERS_REQUEST_COMMAND_ID (0x41) +#define ZCL_GET_GROUP_IDENTIFIERS_RESPONSE_COMMAND_ID (0x41) +#define ZCL_GET_ENDPOINT_LIST_REQUEST_COMMAND_ID (0x42) +#define ZCL_GET_ENDPOINT_LIST_RESPONSE_COMMAND_ID (0x42) + +// Commands for cluster: Sample Mfg Specific Cluster +#define ZCL_COMMAND_ONE_COMMAND_ID (0x00) + +// Commands for cluster: Sample Mfg Specific Cluster 2 +#define ZCL_COMMAND_TWO_COMMAND_ID (0x00) + +// Commands for cluster: Configuration Cluster +#define ZCL_SET_TOKEN_COMMAND_ID (0x00) +#define ZCL_RETURN_TOKEN_COMMAND_ID (0x00) +#define ZCL_LOCK_TOKENS_COMMAND_ID (0x01) +#define ZCL_READ_TOKENS_COMMAND_ID (0x02) +#define ZCL_UNLOCK_TOKENS_COMMAND_ID (0x03) + +// Commands for cluster: MFGLIB Cluster +#define ZCL_STREAM_COMMAND_ID (0x00) +#define ZCL_TONE_COMMAND_ID (0x01) +#define ZCL_RX_MODE_COMMAND_ID (0x02) + +// Commands for cluster: SL Works With All Hubs +#define ZCL_ENABLE_APS_LINK_KEY_AUTHORIZATION_COMMAND_ID (0x00) +#define ZCL_APS_LINK_KEY_AUTHORIZATION_QUERY_RESPONSE_COMMAND_ID (0x00) +#define ZCL_DISABLE_APS_LINK_KEY_AUTHORIZATION_COMMAND_ID (0x01) +#define ZCL_POWERING_OFF_NOTIFICATION_COMMAND_ID (0x01) +#define ZCL_APS_LINK_KEY_AUTHORIZATION_QUERY_COMMAND_ID (0x02) +#define ZCL_POWERING_ON_NOTIFICATION_COMMAND_ID (0x02) +#define ZCL_REQUEST_NEW_APS_LINK_KEY_COMMAND_ID (0x03) +#define ZCL_SHORT_ADDRESS_CHANGE_COMMAND_ID (0x03) +#define ZCL_ENABLE_WWAH_APP_EVENT_RETRY_ALGORITHM_COMMAND_ID (0x04) +#define ZCL_APS_ACK_ENABLEMENT_QUERY_RESPONSE_COMMAND_ID (0x04) +#define ZCL_DISABLE_WWAH_APP_EVENT_RETRY_ALGORITHM_COMMAND_ID (0x05) +#define ZCL_POWER_DESCRIPTOR_CHANGE_COMMAND_ID (0x05) +#define ZCL_REQUEST_TIME_COMMAND_ID (0x06) +#define ZCL_NEW_DEBUG_REPORT_NOTIFICATION_COMMAND_ID (0x06) +#define ZCL_ENABLE_WWAH_REJOIN_ALGORITHM_COMMAND_ID (0x07) +#define ZCL_DEBUG_REPORT_QUERY_RESPONSE_COMMAND_ID (0x07) +#define ZCL_DISABLE_WWAH_REJOIN_ALGORITHM_COMMAND_ID (0x08) +#define ZCL_TRUST_CENTER_FOR_CLUSTER_SERVER_QUERY_RESPONSE_COMMAND_ID (0x08) +#define ZCL_SET_IAS_ZONE_ENROLLMENT_METHOD_COMMAND_ID (0x09) +#define ZCL_SURVEY_BEACONS_RESPONSE_COMMAND_ID (0x09) +#define ZCL_CLEAR_BINDING_TABLE_COMMAND_ID (0x0A) +#define ZCL_ENABLE_PERIODIC_ROUTER_CHECK_INS_COMMAND_ID (0x0B) +#define ZCL_DISABLE_PERIODIC_ROUTER_CHECK_INS_COMMAND_ID (0x0C) +#define ZCL_SET_MAC_POLL_FAILURE_WAIT_TIME_COMMAND_ID (0x0D) +#define ZCL_SET_PENDING_NETWORK_UPDATE_COMMAND_ID (0x0E) +#define ZCL_REQUIRE_APS_ACKS_ON_UNICASTS_COMMAND_ID (0x0F) +#define ZCL_REMOVE_APS_ACKS_ON_UNICASTS_REQUIREMENT_COMMAND_ID (0x10) +#define ZCL_APS_ACK_REQUIREMENT_QUERY_COMMAND_ID (0x11) +#define ZCL_DEBUG_REPORT_QUERY_COMMAND_ID (0x12) +#define ZCL_SURVEY_BEACONS_COMMAND_ID (0x13) +#define ZCL_DISABLE_OTA_DOWNGRADES_COMMAND_ID (0x14) +#define ZCL_DISABLE_MGMT_LEAVE_WITHOUT_REJOIN_COMMAND_ID (0x15) +#define ZCL_DISABLE_TOUCHLINK_INTERPAN_MESSAGE_SUPPORT_COMMAND_ID (0x16) +#define ZCL_ENABLE_WWAH_PARENT_CLASSIFICATION_COMMAND_ID (0x17) +#define ZCL_DISABLE_WWAH_PARENT_CLASSIFICATION_COMMAND_ID (0x18) +#define ZCL_ENABLE_TC_SECURITY_ON_NTWK_KEY_ROTATION_COMMAND_ID (0x19) +#define ZCL_ENABLE_WWAH_BAD_PARENT_RECOVERY_COMMAND_ID (0x1A) +#define ZCL_DISABLE_WWAH_BAD_PARENT_RECOVERY_COMMAND_ID (0x1B) +#define ZCL_ENABLE_CONFIGURATION_MODE_COMMAND_ID (0x1C) +#define ZCL_DISABLE_CONFIGURATION_MODE_COMMAND_ID (0x1D) +#define ZCL_USE_TRUST_CENTER_FOR_CLUSTER_SERVER_COMMAND_ID (0x1E) +#define ZCL_TRUST_CENTER_FOR_CLUSTER_SERVER_QUERY_COMMAND_ID (0x1F) +#define ZCL_USE_TRUST_CENTER_FOR_CLUSTER_SERVER_RESPONSE_COMMAND_ID (0x9E) diff --git a/examples/wifi-echo/server/esp32/main/gen/endpoint_config.h b/examples/all-clusters-app/all-clusters-common/gen/endpoint_config.h similarity index 96% rename from examples/wifi-echo/server/esp32/main/gen/endpoint_config.h rename to examples/all-clusters-app/all-clusters-common/gen/endpoint_config.h index 53373679816ff0..8cef47f152fda4 100644 --- a/examples/wifi-echo/server/esp32/main/gen/endpoint_config.h +++ b/examples/all-clusters-app/all-clusters-common/gen/endpoint_config.h @@ -197,17 +197,14 @@ { \ 0xFFFD, ZCL_INT16U_ATTRIBUTE_TYPE, 2, (0x00), { (uint8_t *) 0x0001 } \ }, /* 83 / Temperature Measurement / cluster revision*/ \ - { \ - 0xFFFD, ZCL_INT16U_ATTRIBUTE_TYPE, 2, (ATTRIBUTE_MASK_CLIENT), { (uint8_t *) 0x0001 } \ - }, /* 84 / IAS Zone / cluster revision*/ \ - { 0x0000, ZCL_ENUM8_ATTRIBUTE_TYPE, 1, (0x00), { (uint8_t *) 0x00 } }, /* 85 / IAS Zone / zone state*/ \ - { 0x0001, ZCL_ENUM16_ATTRIBUTE_TYPE, 2, (0x00), { (uint8_t *) 0x0000 } }, /* 86 / IAS Zone / zone type*/ \ - { 0x0002, ZCL_BITMAP16_ATTRIBUTE_TYPE, 2, (0x00), { (uint8_t *) 0x0000 } }, /* 87 / IAS Zone / zone status*/ \ + { 0x0000, ZCL_ENUM8_ATTRIBUTE_TYPE, 1, (0x00), { (uint8_t *) 0x00 } }, /* 84 / IAS Zone / zone state*/ \ + { 0x0001, ZCL_ENUM16_ATTRIBUTE_TYPE, 2, (0x00), { (uint8_t *) 0x0000 } }, /* 85 / IAS Zone / zone type*/ \ + { 0x0002, ZCL_BITMAP16_ATTRIBUTE_TYPE, 2, (0x00), { (uint8_t *) 0x0000 } }, /* 86 / IAS Zone / zone status*/ \ { \ 0x0010, ZCL_IEEE_ADDRESS_ATTRIBUTE_TYPE, 8, (ATTRIBUTE_MASK_WRITABLE), { NULL } \ - }, /* 88 / IAS Zone / IAS CIE address*/ \ - { 0x0011, ZCL_INT8U_ATTRIBUTE_TYPE, 1, (0x00), { (uint8_t *) 0xFF } }, /* 89 / IAS Zone / Zone ID*/ \ - { 0xFFFD, ZCL_INT16U_ATTRIBUTE_TYPE, 2, (0x00), { (uint8_t *) 0x0001 } }, /* 90 / IAS Zone / cluster revision*/ \ + }, /* 87 / IAS Zone / IAS CIE address*/ \ + { 0x0011, ZCL_INT8U_ATTRIBUTE_TYPE, 1, (0x00), { (uint8_t *) 0xFF } }, /* 88 / IAS Zone / Zone ID*/ \ + { 0xFFFD, ZCL_INT16U_ATTRIBUTE_TYPE, 2, (0x00), { (uint8_t *) 0x0001 } }, /* 89 / IAS Zone / cluster revision*/ \ } // Cluster function static arrays @@ -228,8 +225,6 @@ EmberAfGenericClusterFunction) emberAfDoorLockClusterServerAttributeChangedCallback }; \ const EmberAfGenericClusterFunction emberAfFuncArrayColorControlClusterServer[] = { ( \ EmberAfGenericClusterFunction) emberAfColorControlClusterServerInitCallback }; \ - const EmberAfGenericClusterFunction emberAfFuncArrayIasZoneClusterClient[] = { ( \ - EmberAfGenericClusterFunction) emberAfIasZoneClusterClientInitCallback }; \ const EmberAfGenericClusterFunction emberAfFuncArrayIasZoneClusterServer[] = { \ (EmberAfGenericClusterFunction) emberAfIasZoneClusterServerInitCallback, \ (EmberAfGenericClusterFunction) emberAfIasZoneClusterServerMessageSentCallback, \ @@ -316,13 +311,9 @@ { \ 0x0402, (EmberAfAttributeMetadata *) &(generatedAttributes[80]), 4, 8, (CLUSTER_MASK_SERVER), NULL, \ }, \ - { \ - 0x0500, (EmberAfAttributeMetadata *) &(generatedAttributes[84]), 1, \ - 2, (CLUSTER_MASK_CLIENT | CLUSTER_MASK_INIT_FUNCTION), emberAfFuncArrayIasZoneClusterClient, \ - }, \ { \ 0x0500, \ - (EmberAfAttributeMetadata *) &(generatedAttributes[85]), \ + (EmberAfAttributeMetadata *) &(generatedAttributes[84]), \ 6, \ 16, \ (CLUSTER_MASK_SERVER | CLUSTER_MASK_INIT_FUNCTION | CLUSTER_MASK_MESSAGE_SENT_FUNCTION | \ @@ -338,7 +329,7 @@ // Endpoint types #define GENERATED_ENDPOINT_TYPES \ { \ - { (EmberAfCluster *) &(generatedClusters[0]), 24, 149 }, { (EmberAfCluster *) &(generatedClusters[24]), 1, 3 }, \ + { (EmberAfCluster *) &(generatedClusters[0]), 23, 147 }, { (EmberAfCluster *) &(generatedClusters[23]), 1, 3 }, \ } // Cluster manufacturer codes @@ -365,7 +356,7 @@ #define ATTRIBUTE_SINGLETONS_SIZE (6) // Total size of attribute storage -#define ATTRIBUTE_MAX_SIZE 152 +#define ATTRIBUTE_MAX_SIZE 150 // Array of endpoints that are supported #define FIXED_ENDPOINT_ARRAY \ @@ -425,13 +416,6 @@ emberAfPluginTemperatureMeasurementServerStackStatusCallback(status); \ emberAfPluginIasZoneServerStackStatusCallback(status); -#define EMBER_AF_GENERATED_PLUGIN_ZDO_MESSAGE_RECEIVED_FUNCTION_DECLARATIONS \ - void emberAfPluginIasZoneClientZdoMessageReceivedCallback(EmberNodeId sender, EmberApsFrame * apsFrame, uint8_t * message, \ - uint16_t length); - -#define EMBER_AF_GENERATED_PLUGIN_ZDO_MESSAGE_RECEIVED_FUNCTION_CALLS \ - emberAfPluginIasZoneClientZdoMessageReceivedCallback(sender, apsFrame, message, length); - // Generated data for the command discovery #define GENERATED_COMMANDS \ { \ @@ -589,10 +573,9 @@ { 0x0300, 0x47, COMMAND_MASK_OUTGOING_CLIENT | COMMAND_MASK_INCOMING_SERVER }, /* Color Control / StopMoveStep */ \ { 0x0300, 0x4B, COMMAND_MASK_INCOMING_SERVER }, /* Color Control / MoveColorTemperature */ \ { 0x0300, 0x4C, COMMAND_MASK_INCOMING_SERVER }, /* Color Control / StepColorTemperature */ \ - { 0x0500, 0x00, COMMAND_MASK_OUTGOING_CLIENT | COMMAND_MASK_INCOMING_SERVER }, /* IAS Zone / ZoneEnrollResponse */ \ - { 0x0500, 0x00, \ - COMMAND_MASK_OUTGOING_SERVER | COMMAND_MASK_INCOMING_CLIENT }, /* IAS Zone / ZoneStatusChangeNotification */ \ - { 0x0500, 0x01, COMMAND_MASK_OUTGOING_SERVER | COMMAND_MASK_INCOMING_CLIENT }, /* IAS Zone / ZoneEnrollRequest */ \ + { 0x0500, 0x00, COMMAND_MASK_OUTGOING_SERVER }, /* IAS Zone / ZoneStatusChangeNotification */ \ + { 0x0500, 0x00, COMMAND_MASK_INCOMING_SERVER }, /* IAS Zone / ZoneEnrollResponse */ \ + { 0x0500, 0x01, COMMAND_MASK_OUTGOING_SERVER }, /* IAS Zone / ZoneEnrollRequest */ \ { 0x0800, 0x00, COMMAND_MASK_INCOMING_CLIENT }, /* Key Establishment / InitiateKeyEstablishmentResponse */ \ { 0x0800, 0x00, COMMAND_MASK_INCOMING_SERVER }, /* Key Establishment / InitiateKeyEstablishmentRequest */ \ { 0x0800, 0x01, COMMAND_MASK_INCOMING_CLIENT }, /* Key Establishment / EphemeralDataResponse */ \ diff --git a/examples/wifi-echo/server/esp32/main/gen/enums.h b/examples/all-clusters-app/all-clusters-common/gen/enums.h similarity index 79% rename from examples/wifi-echo/server/esp32/main/gen/enums.h rename to examples/all-clusters-app/all-clusters-common/gen/enums.h index c1881b3732b9e3..07c2881e641e97 100644 --- a/examples/wifi-echo/server/esp32/main/gen/enums.h +++ b/examples/all-clusters-app/all-clusters-common/gen/enums.h @@ -1,4 +1,5 @@ -/** + +/* * * Copyright (c) 2020 Project CHIP Authors * @@ -15,43 +16,18 @@ * 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 SILABS_EMBER_AF_ENUMS -#define SILABS_EMBER_AF_ENUMS - -/** - * @addtogroup enums Application Framework Enums Reference - * This header provides Application Framework enum definitions. - * @{ - */ -/** @name Enums */ -// @{ +// Prevent multiple inclusion +#pragma once +// ZCL enums + +// Enum for 11073ConnectRequestConnectControl typedef enum { EMBER_ZCL_11073_CONNECT_REQUEST_CONNECT_CONTROL_PREEMPTIBLE = 0x01, } EmberAf11073ConnectRequestConnectControl; +// Enum for 11073TunnelConnectionStatus typedef enum { EMBER_ZCL_11073_TUNNEL_CONNECTION_STATUS_DISCONNECTED = 0x00, @@ -61,11 +37,13 @@ typedef enum EMBER_ZCL_11073_TUNNEL_CONNECTION_STATUS_ALREADY_CONNECTED = 0x04, } EmberAf11073TunnelConnectionStatus; +// Enum for AlertCountType typedef enum { EMBER_ZCL_ALERT_COUNT_TYPE_UNSTRUCTURED = 0x00, } EmberAfAlertCountType; +// Enum for AlertStructureCategory typedef enum { EMBER_ZCL_ALERT_STRUCTURE_CATEGORY_WARNING = 0x0100, @@ -73,17 +51,20 @@ typedef enum EMBER_ZCL_ALERT_STRUCTURE_CATEGORY_FAILURE = 0x0300, } EmberAfAlertStructureCategory; +// Enum for AlertStructurePresenceRecovery typedef enum { EMBER_ZCL_ALERT_STRUCTURE_PRESENCE_RECOVERY_RECOVERY = 0x0000, EMBER_ZCL_ALERT_STRUCTURE_PRESENCE_RECOVERY_PRESENCE = 0x1000, } EmberAfAlertStructurePresenceRecovery; +// Enum for AlternateCostUnit typedef enum { EMBER_ZCL_ALTERNATE_COST_UNIT_KG_OF_CO2_PER_UNIT_OF_MEASURE = 0x02, } EmberAfAlternateCostUnit; +// Enum for AmiCriticalityLevel typedef enum { EMBER_ZCL_AMI_CRITICALITY_LEVEL_RESERVED = 0x00, @@ -104,6 +85,7 @@ typedef enum EMBER_ZCL_AMI_CRITICALITY_LEVEL_UTILITY_DEFINED6 = 0x0F, } EmberAfAmiCriticalityLevel; +// Enum for AmiEventStatus typedef enum { EMBER_ZCL_AMI_EVENT_STATUS_LOAD_CONTROL_EVENT_COMMAND_RX = 0x01, @@ -125,6 +107,7 @@ typedef enum EMBER_ZCL_AMI_EVENT_STATUS_LOAD_CONTROL_EVENT_COMMAND_REJECTED = 0xFE, } EmberAfAmiEventStatus; +// Enum for AmiGetProfileStatus typedef enum { EMBER_ZCL_AMI_GET_PROFILE_STATUS_SUCCESS = 0x00, @@ -135,12 +118,14 @@ typedef enum EMBER_ZCL_AMI_GET_PROFILE_STATUS_NO_INTERVALS_AVAILABLE_FOR_THE_REQUESTED_TIME = 0x05, } EmberAfAmiGetProfileStatus; +// Enum for AmiIntervalChannel typedef enum { EMBER_ZCL_AMI_INTERVAL_CHANNEL_CONSUMPTION_DELIVERED = 0x00, EMBER_ZCL_AMI_INTERVAL_CHANNEL_CONSUMPTION_RECEIVED = 0x01, } EmberAfAmiIntervalChannel; +// Enum for AmiIntervalPeriod typedef enum { EMBER_ZCL_AMI_INTERVAL_PERIOD_DAILY = 0x00, @@ -153,6 +138,7 @@ typedef enum EMBER_ZCL_AMI_INTERVAL_PERIOD_MINUTES2P5 = 0x07, } EmberAfAmiIntervalPeriod; +// Enum for AmiKeyEstablishmentStatus typedef enum { EMBER_ZCL_AMI_KEY_ESTABLISHMENT_STATUS_SUCCESS = 0x00, @@ -164,17 +150,19 @@ typedef enum EMBER_ZCL_AMI_KEY_ESTABLISHMENT_STATUS_INVALID_KEY_USAGE = 0x06, } EmberAfAmiKeyEstablishmentStatus; +// Enum for AmiRegistrationState typedef enum { - EMBER_ZCL_AMI_REGISTRATION_STATE_UNREGISTERED = 0x00, - EMBER_ZCL_AMI_REGISTRATION_STATE_JOINING_NETWORK = 0x01, - EMBER_ZCL_AMI_REGISTRATION_STATE_JOINED_NETWORK = 0x02, - EMBER_ZCL_AMI_REGISTRATION_STATE_SUBMITTED_REGISTRATION_REQUEST = 0x03, - EMBER_ZCL_AMI_REGISTRATION_STATE_REGISTRATION_REJECTED = 0x04, - EMBER_ZCL_AMI_REGISTRATION_STATE_REGISTERED = 0x05, - EMBER_ZCL_AMI_REGISTRATION_STATE_REGISTERATION_NOT_POSSIBLE = 0x06, + EMBER_ZCL_AMI_REGISTRATION_STATE_UNREGISTERED = 0x0, + EMBER_ZCL_AMI_REGISTRATION_STATE_JOINING_NETWORK = 0x1, + EMBER_ZCL_AMI_REGISTRATION_STATE_JOINED_NETWORK = 0x2, + EMBER_ZCL_AMI_REGISTRATION_STATE_SUBMITTED_REGISTRATION_REQUEST = 0x3, + EMBER_ZCL_AMI_REGISTRATION_STATE_REGISTRATION_REJECTED = 0x4, + EMBER_ZCL_AMI_REGISTRATION_STATE_REGISTERED = 0x5, + EMBER_ZCL_AMI_REGISTRATION_STATE_REGISTERATION_NOT_POSSIBLE = 0x6, } EmberAfAmiRegistrationState; +// Enum for AmiUnitOfMeasure typedef enum { EMBER_ZCL_AMI_UNIT_OF_MEASURE_KILO_WATT_HOURS = 0x00, @@ -207,12 +195,14 @@ typedef enum EMBER_ZCL_AMI_UNIT_OF_MEASURE_K_VAR_OR_K_VAR_HOURS_BCD = 0x8D, } EmberAfAmiUnitOfMeasure; +// Enum for AnonymousDataState typedef enum { - EMBER_ZCL_ANONYMOUS_DATA_STATE_NO_SOURCE_FOUND = 0x00, - EMBER_ZCL_ANONYMOUS_DATA_STATE_SOURCE_FOUND = 0x01, + EMBER_ZCL_ANONYMOUS_DATA_STATE_NO_SOURCE_FOUND = 0x0, + EMBER_ZCL_ANONYMOUS_DATA_STATE_SOURCE_FOUND = 0x1, } EmberAfAnonymousDataState; +// Enum for ApplianceStatus typedef enum { EMBER_ZCL_APPLIANCE_STATUS_OFF = 0x01, @@ -232,12 +222,14 @@ typedef enum EMBER_ZCL_APPLIANCE_STATUS_SUPERHEATING = 0x0F, } EmberAfApplianceStatus; +// Enum for AttributeReportingStatus typedef enum { EMBER_ZCL_ATTRIBUTE_REPORTING_STATUS_PENDING = 0x00, EMBER_ZCL_ATTRIBUTE_REPORTING_STATUS_ATTRIBUTE_REPORTING_COMPLETE = 0x01, } EmberAfAttributeReportingStatus; +// Enum for AttributeWritePermission typedef enum { EMBER_ZCL_ATTRIBUTE_WRITE_PERMISSION_DENY_WRITE = 0x00, @@ -249,13 +241,15 @@ typedef enum EMBER_ZCL_ATTRIBUTE_WRITE_PERMISSION_INVALID_DATA_TYPE = 0x8D, } EmberAfAttributeWritePermission; +// Enum for BarrierControlBarrierPosition typedef enum { - EMBER_ZCL_BARRIER_CONTROL_BARRIER_POSITION_CLOSED = 0x00, - EMBER_ZCL_BARRIER_CONTROL_BARRIER_POSITION_OPEN = 0x64, + EMBER_ZCL_BARRIER_CONTROL_BARRIER_POSITION_CLOSED = 0, + EMBER_ZCL_BARRIER_CONTROL_BARRIER_POSITION_OPEN = 100, EMBER_ZCL_BARRIER_CONTROL_BARRIER_POSITION_UNKNOWN = 0xFF, } EmberAfBarrierControlBarrierPosition; +// Enum for BarrierControlMovingState typedef enum { EMBER_ZCL_BARRIER_CONTROL_MOVING_STATE_STOPPED = 0x00, @@ -263,18 +257,20 @@ typedef enum EMBER_ZCL_BARRIER_CONTROL_MOVING_STATE_OPENING = 0x02, } EmberAfBarrierControlMovingState; +// Enum for BatterySize typedef enum { - EMBER_ZCL_BATTERY_SIZE_NO_BATTERY = 0x00, - EMBER_ZCL_BATTERY_SIZE_BUILT_IN = 0x01, - EMBER_ZCL_BATTERY_SIZE_OTHER = 0x02, - EMBER_ZCL_BATTERY_SIZE_AA = 0x03, - EMBER_ZCL_BATTERY_SIZE_AAA = 0x04, - EMBER_ZCL_BATTERY_SIZE_C = 0x05, - EMBER_ZCL_BATTERY_SIZE_D = 0x06, - EMBER_ZCL_BATTERY_SIZE_UNKNOWN = 0xFF, + EMBER_ZCL_BATTERY_SIZE_NO_BATTERY = 0x0, + EMBER_ZCL_BATTERY_SIZE_BUILT_IN = 0x1, + EMBER_ZCL_BATTERY_SIZE_OTHER = 0x2, + EMBER_ZCL_BATTERY_SIZE_AA = 0x3, + EMBER_ZCL_BATTERY_SIZE_AAA = 0x4, + EMBER_ZCL_BATTERY_SIZE_C = 0x5, + EMBER_ZCL_BATTERY_SIZE_D = 0x6, + EMBER_ZCL_BATTERY_SIZE_UNKNOWN = 0xff, } EmberAfBatterySize; +// Enum for BillingPeriodDurationUnits typedef enum { EMBER_ZCL_BILLING_PERIOD_DURATION_UNITS_MINUTES = 0x000000, @@ -283,6 +279,7 @@ typedef enum EMBER_ZCL_BILLING_PERIOD_DURATION_UNITS_MONTHS = 0xC00000, } EmberAfBillingPeriodDurationUnits; +// Enum for Block typedef enum { EMBER_ZCL_BLOCK_NO_BLOCKS_IN_USE = 0x00, @@ -304,6 +301,7 @@ typedef enum EMBER_ZCL_BLOCK_BLOCK16 = 0x10, } EmberAfBlock; +// Enum for BlockPeriodDurationTypeControl typedef enum { EMBER_ZCL_BLOCK_PERIOD_DURATION_TYPE_CONTROL_START_OF_TIMEBASE = 0x00, @@ -311,6 +309,7 @@ typedef enum EMBER_ZCL_BLOCK_PERIOD_DURATION_TYPE_CONTROL_NOT_SPECIFIED = 0x20, } EmberAfBlockPeriodDurationTypeControl; +// Enum for BlockPeriodDurationTypeTimebase typedef enum { EMBER_ZCL_BLOCK_PERIOD_DURATION_TYPE_TIMEBASE_MINUTES = 0x00, @@ -319,13 +318,15 @@ typedef enum EMBER_ZCL_BLOCK_PERIOD_DURATION_TYPE_TIMEBASE_MONTHS = 0x03, } EmberAfBlockPeriodDurationTypeTimebase; +// Enum for CO2Unit typedef enum { - EMBER_ZCL_C_O2_UNIT_KILOGRAM_PER_KILOWATT_HOUR = 0x01, - EMBER_ZCL_C_O2_UNIT_KILOGRAM_PER_GALLON_OF_GASOLINE = 0x02, - EMBER_ZCL_C_O2_UNIT_KILOGRAM_PER_THERM_OF_NATURAL_GAS = 0x03, + EMBER_ZCL_CO2_UNIT_KILOGRAM_PER_KILOWATT_HOUR = 0x01, + EMBER_ZCL_CO2_UNIT_KILOGRAM_PER_GALLON_OF_GASOLINE = 0x02, + EMBER_ZCL_CO2_UNIT_KILOGRAM_PER_THERM_OF_NATURAL_GAS = 0x03, } EmberAfCO2Unit; +// Enum for CalendarTimeReference typedef enum { EMBER_ZCL_CALENDAR_TIME_REFERENCE_UTC_TIME = 0x00, @@ -333,6 +334,7 @@ typedef enum EMBER_ZCL_CALENDAR_TIME_REFERENCE_LOCAL_TIME = 0x02, } EmberAfCalendarTimeReference; +// Enum for CalendarType typedef enum { EMBER_ZCL_CALENDAR_TYPE_DELIVERED_CALENDAR = 0x00, @@ -342,23 +344,27 @@ typedef enum EMBER_ZCL_CALENDAR_TYPE_AUXILLIARY_LOAD_SWITCH_CALENDAR = 0x04, } EmberAfCalendarType; +// Enum for CalorificValueUnit typedef enum { EMBER_ZCL_CALORIFIC_VALUE_UNIT_MEGAJOULE_PER_CUBIC_METER = 0x01, EMBER_ZCL_CALORIFIC_VALUE_UNIT_MEGAJOULE_PER_KILOGRAM = 0x02, } EmberAfCalorificValueUnit; +// Enum for CecedSpecificationVersion typedef enum { EMBER_ZCL_CECED_SPECIFICATION_VERSION_COMPLIANT_WITH_V10_NOT_CERTIFIED = 0x10, EMBER_ZCL_CECED_SPECIFICATION_VERSION_COMPLIANT_WITH_V10_CERTIFIED = 0x1A, } EmberAfCecedSpecificationVersion; +// Enum for ColorControlOptions typedef enum { - EMBER_ZCL_COLOR_CONTROL_OPTIONS_EXECUTE_IF_OFF = 0x01, + EMBER_ZCL_COLOR_CONTROL_OPTIONS_EXECUTE_IF_OFF = 0x1, } EmberAfColorControlOptions; +// Enum for ColorLoopAction typedef enum { EMBER_ZCL_COLOR_LOOP_ACTION_DEACTIVATE = 0x00, @@ -366,12 +372,14 @@ typedef enum EMBER_ZCL_COLOR_LOOP_ACTION_ACTIVATE_FROM_ENHANCED_CURRENT_HUE = 0x02, } EmberAfColorLoopAction; +// Enum for ColorLoopDirection typedef enum { EMBER_ZCL_COLOR_LOOP_DIRECTION_DECREMENT_HUE = 0x00, EMBER_ZCL_COLOR_LOOP_DIRECTION_INCREMENT_HUE = 0x01, } EmberAfColorLoopDirection; +// Enum for ColorMode typedef enum { EMBER_ZCL_COLOR_MODE_CURRENT_HUE_AND_CURRENT_SATURATION = 0x00, @@ -379,6 +387,7 @@ typedef enum EMBER_ZCL_COLOR_MODE_COLOR_TEMPERATURE = 0x02, } EmberAfColorMode; +// Enum for CommandIdentification typedef enum { EMBER_ZCL_COMMAND_IDENTIFICATION_START = 0x01, @@ -394,6 +403,7 @@ typedef enum EMBER_ZCL_COMMAND_IDENTIFICATION_DISABLE_ENERGY_CONTROL = 0x0B, } EmberAfCommandIdentification; +// Enum for CommissioningStartupControl typedef enum { EMBER_ZCL_COMMISSIONING_STARTUP_CONTROL_NO_ACTION = 0x00, @@ -402,6 +412,7 @@ typedef enum EMBER_ZCL_COMMISSIONING_STARTUP_CONTROL_START_FROM_SCRATCH = 0x03, } EmberAfCommissioningStartupControl; +// Enum for CommodityType typedef enum { EMBER_ZCL_COMMODITY_TYPE_ELECTRIC_METERING = 0x00, @@ -422,24 +433,28 @@ typedef enum EMBER_ZCL_COMMODITY_TYPE_ELECTRIC_METERING_ELEMENT3 = 0x0F, } EmberAfCommodityType; +// Enum for CppEventResponseCppAuth typedef enum { EMBER_ZCL_CPP_EVENT_RESPONSE_CPP_AUTH_ACCEPTED = 0x01, EMBER_ZCL_CPP_EVENT_RESPONSE_CPP_AUTH_REJECTED = 0x02, } EmberAfCppEventResponseCppAuth; +// Enum for CppPriceTier typedef enum { EMBER_ZCL_CPP_PRICE_TIER_CPP1 = 0x00, EMBER_ZCL_CPP_PRICE_TIER_CPP2 = 0x01, } EmberAfCppPriceTier; +// Enum for CreditAdjustmentType typedef enum { EMBER_ZCL_CREDIT_ADJUSTMENT_TYPE_CREDIT_INCREMENTAL = 0x00, EMBER_ZCL_CREDIT_ADJUSTMENT_TYPE_CREDIT_ABSOLUTE = 0x01, } EmberAfCreditAdjustmentType; +// Enum for CreditPaymentStatus typedef enum { EMBER_ZCL_CREDIT_PAYMENT_STATUS_PENDING = 0x00, @@ -449,6 +464,7 @@ typedef enum EMBER_ZCL_CREDIT_PAYMENT_STATUS_3_PAYMENTS_OVERDUE = 0x04, } EmberAfCreditPaymentStatus; +// Enum for DataQualityId typedef enum { EMBER_ZCL_DATA_QUALITY_ID_ALL_DATA_CERTIFIED = 0x0000, @@ -457,6 +473,7 @@ typedef enum EMBER_ZCL_DATA_QUALITY_ID_NOT_CERTIFIED_DATA = 0x0003, } EmberAfDataQualityId; +// Enum for DebtAmountType typedef enum { EMBER_ZCL_DEBT_AMOUNT_TYPE_TYPE1_ABSOLUTE = 0x00, @@ -467,6 +484,7 @@ typedef enum EMBER_ZCL_DEBT_AMOUNT_TYPE_TYPE3_INCREMENTAL = 0x05, } EmberAfDebtAmountType; +// Enum for DebtRecoveryFrequency typedef enum { EMBER_ZCL_DEBT_RECOVERY_FREQUENCY_PER_HOUR = 0x00, @@ -476,6 +494,7 @@ typedef enum EMBER_ZCL_DEBT_RECOVERY_FREQUENCY_PER_QUARTER = 0x04, } EmberAfDebtRecoveryFrequency; +// Enum for DebtRecoveryMethod typedef enum { EMBER_ZCL_DEBT_RECOVERY_METHOD_TIME_BASED = 0x00, @@ -483,23 +502,27 @@ typedef enum EMBER_ZCL_DEBT_RECOVERY_METHOD_CATCH_UP_BASED = 0x02, } EmberAfDebtRecoveryMethod; +// Enum for DehumidifcationLockout typedef enum { - EMBER_ZCL_DEHUMIDIFCATION_LOCKOUT_NOT_ALLOWED = 0x00, - EMBER_ZCL_DEHUMIDIFCATION_LOCKOUT_ALLOWED = 0x01, + EMBER_ZCL_DEHUMIDIFCATION_LOCKOUT_NOT_ALLOWED = 0x0, + EMBER_ZCL_DEHUMIDIFCATION_LOCKOUT_ALLOWED = 0x1, } EmberAfDehumidifcationLockout; +// Enum for DeviceInformationRecordSort typedef enum { EMBER_ZCL_DEVICE_INFORMATION_RECORD_SORT_NOT_SORTED = 0x00, EMBER_ZCL_DEVICE_INFORMATION_RECORD_SORT_TOP_OF_THE_LIST = 0x01, } EmberAfDeviceInformationRecordSort; +// Enum for DeviceStatus2Structure typedef enum { EMBER_ZCL_DEVICE_STATUS2_STRUCTURE_IRIS_SYMPTOM_CODE = 0x20, } EmberAfDeviceStatus2Structure; +// Enum for DoorLockEventSource typedef enum { EMBER_ZCL_DOOR_LOCK_EVENT_SOURCE_KEYPAD = 0x00, @@ -509,6 +532,7 @@ typedef enum EMBER_ZCL_DOOR_LOCK_EVENT_SOURCE_INDETERMINATE = 0xFF, } EmberAfDoorLockEventSource; +// Enum for DoorLockEventType typedef enum { EMBER_ZCL_DOOR_LOCK_EVENT_TYPE_OPERATION = 0x00, @@ -516,6 +540,7 @@ typedef enum EMBER_ZCL_DOOR_LOCK_EVENT_TYPE_ALARM = 0x02, } EmberAfDoorLockEventType; +// Enum for DoorLockOperatingMode typedef enum { EMBER_ZCL_DOOR_LOCK_OPERATING_MODE_NORMAL_MODE = 0x00, @@ -523,9 +548,10 @@ typedef enum EMBER_ZCL_DOOR_LOCK_OPERATING_MODE_PRIVACY_MODE = 0x02, EMBER_ZCL_DOOR_LOCK_OPERATING_MODE_NO_RF_LOCK_OR_UNLOCK = 0x03, EMBER_ZCL_DOOR_LOCK_OPERATING_MODE_LOCAL_PROGRAMMING_MODE = 0x04, - EMBER_ZCL_DOOR_LOCK_OPERATING_MODE_PASSAGE_MODE = 0x05, + EMBER_ZCL_DOOR_LOCK_OPERATING_MODE_PASSAGE_MODE______ = 0x05, } EmberAfDoorLockOperatingMode; +// Enum for DoorLockOperationEventCode typedef enum { EMBER_ZCL_DOOR_LOCK_OPERATION_EVENT_CODE_UNKNOWN_OR_MFG_SPECIFIC = 0x00, @@ -545,6 +571,7 @@ typedef enum EMBER_ZCL_DOOR_LOCK_OPERATION_EVENT_CODE_MANUAL_UNLOCK = 0x0E, } EmberAfDoorLockOperationEventCode; +// Enum for DoorLockProgrammingEventCode typedef enum { EMBER_ZCL_DOOR_LOCK_PROGRAMMING_EVENT_CODE_UNKNOWN_OR_MFG_SPECIFIC = 0x00, @@ -556,12 +583,14 @@ typedef enum EMBER_ZCL_DOOR_LOCK_PROGRAMMING_EVENT_CODE_ID_DELETED = 0x06, } EmberAfDoorLockProgrammingEventCode; +// Enum for DoorLockSecurityLevel typedef enum { EMBER_ZCL_DOOR_LOCK_SECURITY_LEVEL_NETWORK_SECURITY = 0x00, EMBER_ZCL_DOOR_LOCK_SECURITY_LEVEL_APS_SECURITY = 0x01, } EmberAfDoorLockSecurityLevel; +// Enum for DoorLockSetPinOrIdStatus typedef enum { EMBER_ZCL_DOOR_LOCK_SET_PIN_OR_ID_STATUS_SUCCESS = 0x00, @@ -570,6 +599,7 @@ typedef enum EMBER_ZCL_DOOR_LOCK_SET_PIN_OR_ID_STATUS_DUPLICATE_CODE_ERROR = 0x03, } EmberAfDoorLockSetPinOrIdStatus; +// Enum for DoorLockSoundVolume typedef enum { EMBER_ZCL_DOOR_LOCK_SOUND_VOLUME_SILENT = 0x00, @@ -577,6 +607,7 @@ typedef enum EMBER_ZCL_DOOR_LOCK_SOUND_VOLUME_HIGH = 0x02, } EmberAfDoorLockSoundVolume; +// Enum for DoorLockState typedef enum { EMBER_ZCL_DOOR_LOCK_STATE_NOT_FULLY_LOCKED = 0x00, @@ -584,6 +615,7 @@ typedef enum EMBER_ZCL_DOOR_LOCK_STATE_UNLOCKED = 0x02, } EmberAfDoorLockState; +// Enum for DoorLockType typedef enum { EMBER_ZCL_DOOR_LOCK_TYPE_DEAD_BOLT = 0x00, @@ -598,6 +630,7 @@ typedef enum EMBER_ZCL_DOOR_LOCK_TYPE_OTHER = 0x09, } EmberAfDoorLockType; +// Enum for DoorLockUserStatus typedef enum { EMBER_ZCL_DOOR_LOCK_USER_STATUS_AVAILABLE = 0x00, @@ -606,15 +639,18 @@ typedef enum EMBER_ZCL_DOOR_LOCK_USER_STATUS_NOT_SUPPORTED = 0xFF, } EmberAfDoorLockUserStatus; +// Enum for DoorLockUserType typedef enum { - EMBER_ZCL_DOOR_LOCK_USER_TYPE_UNRESTRICTED = 0x00, - EMBER_ZCL_DOOR_LOCK_USER_TYPE_ONE_TIME_USER = 0x01, - EMBER_ZCL_DOOR_LOCK_USER_TYPE_USER_WITH_SCHEDULE = 0x02, - EMBER_ZCL_DOOR_LOCK_USER_TYPE_MASTER_USER = 0x03, - EMBER_ZCL_DOOR_LOCK_USER_TYPE_NOT_SUPPORTED = 0xFF, + EMBER_ZCL_DOOR_LOCK_USER_TYPE_UNRESTRICTED = 0x00, + EMBER_ZCL_DOOR_LOCK_USER_TYPE_YEAR_DAY_SCHEDULE_USER = 0x01, + EMBER_ZCL_DOOR_LOCK_USER_TYPE_WEEK_DAY_SCHEDULE_USER = 0x02, + EMBER_ZCL_DOOR_LOCK_USER_TYPE_MASTER_USER = 0x03, + EMBER_ZCL_DOOR_LOCK_USER_TYPE_NON_ACCESS_USER = 0x04, + EMBER_ZCL_DOOR_LOCK_USER_TYPE_NOT_SUPPORTED = 0xFF, } EmberAfDoorLockUserType; +// Enum for DoorState typedef enum { EMBER_ZCL_DOOR_STATE_OPEN = 0x00, @@ -624,6 +660,7 @@ typedef enum EMBER_ZCL_DOOR_STATE_ERROR_UNSPECIFIED = 0x04, } EmberAfDoorState; +// Enum for ElectricityAlarmGroups typedef enum { EMBER_ZCL_ELECTRICITY_ALARM_GROUPS_LOW_VOLTAGE_L1 = 0x10, @@ -648,12 +685,13 @@ typedef enum EMBER_ZCL_ELECTRICITY_ALARM_GROUPS_UNDER_VOLTAGE = 0x23, EMBER_ZCL_ELECTRICITY_ALARM_GROUPS_OVER_VOLTAGE = 0x24, EMBER_ZCL_ELECTRICITY_ALARM_GROUPS_NORMAL_VOLTAGE = 0x25, - EMBER_ZCL_ELECTRICITY_ALARM_GROUPS_P_F_BELOW_THRESHOLD = 0x26, - EMBER_ZCL_ELECTRICITY_ALARM_GROUPS_P_F_ABOVE_THRESHOLD = 0x27, + EMBER_ZCL_ELECTRICITY_ALARM_GROUPS_PF_BELOW_THRESHOLD = 0x26, + EMBER_ZCL_ELECTRICITY_ALARM_GROUPS_PF_ABOVE_THRESHOLD = 0x27, EMBER_ZCL_ELECTRICITY_ALARM_GROUPS_TERMINAL_COVER_REMOVED = 0x28, EMBER_ZCL_ELECTRICITY_ALARM_GROUPS_TERMINAL_COVER_CLOSED = 0x29, } EmberAfElectricityAlarmGroups; +// Enum for EnhancedColorMode typedef enum { EMBER_ZCL_ENHANCED_COLOR_MODE_CURRENT_HUE_AND_CURRENT_SATURATION = 0x00, @@ -662,6 +700,7 @@ typedef enum EMBER_ZCL_ENHANCED_COLOR_MODE_ENHANCED_CURRENT_HUE_AND_CURRENT_SATURATION = 0x03, } EmberAfEnhancedColorMode; +// Enum for EventConfigurationControl typedef enum { EMBER_ZCL_EVENT_CONFIGURATION_CONTROL_APPLY_BY_LIST = 0x00, @@ -670,6 +709,7 @@ typedef enum EMBER_ZCL_EVENT_CONFIGURATION_CONTROL_APPLY_BY_CONFIGURATION_MATCH = 0x03, } EmberAfEventConfigurationControl; +// Enum for EventConfigurationLogAction typedef enum { EMBER_ZCL_EVENT_CONFIGURATION_LOG_ACTION_DO_NOT_LOG = 0x00, @@ -680,12 +720,14 @@ typedef enum EMBER_ZCL_EVENT_CONFIGURATION_LOG_ACTION_LOG_AS_NETWORK_EVENT = 0x05, } EmberAfEventConfigurationLogAction; +// Enum for EventControl typedef enum { EMBER_ZCL_EVENT_CONTROL_RETRIEVE_MINIMAL_INFORMATION = 0x00, EMBER_ZCL_EVENT_CONTROL_RETRIEVE_FULL_INFORMATION = 0x10, } EmberAfEventControl; +// Enum for EventId typedef enum { EMBER_ZCL_EVENT_ID_METER_COVER_REMOVED = 0x00, @@ -751,6 +793,8 @@ typedef enum EMBER_ZCL_EVENT_ID_BATTERY_COVER_REMOVED = 0xA2, EMBER_ZCL_EVENT_ID_BATTERY_COVER_CLOSED = 0xA3, EMBER_ZCL_EVENT_ID_EXCESS_FLOW = 0xA4, + EMBER_ZCL_EVENT_ID_CREDIT_OK = 0xC0, + EMBER_ZCL_EVENT_ID_LOW_CREDIT = 0xC1, EMBER_ZCL_EVENT_ID_EMERGENCY_CREDIT_IN_USE = 0xC0, EMBER_ZCL_EVENT_ID_EMERGENCY_CREDIT_EXHAUSTED = 0xC1, EMBER_ZCL_EVENT_ID_ZERO_CREDIT_EC_NOT_SELECTED = 0xC2, @@ -769,6 +813,7 @@ typedef enum EMBER_ZCL_EVENT_ID_MANUFACTURER_SPECIFIC_I = 0xE8, } EmberAfEventId; +// Enum for EventIdentification typedef enum { EMBER_ZCL_EVENT_IDENTIFICATION_END_OF_CYCLE = 0x01, @@ -778,6 +823,7 @@ typedef enum EMBER_ZCL_EVENT_IDENTIFICATION_WRONG_DATA = 0x07, } EmberAfEventIdentification; +// Enum for EventLogId typedef enum { EMBER_ZCL_EVENT_LOG_ID_ALL_LOGS = 0x00, @@ -790,12 +836,14 @@ typedef enum EMBER_ZCL_EVENT_LOG_ID_GBCS_SECURITY_EVENT_LOG = 0x07, } EmberAfEventLogId; +// Enum for EventLogPayloadControl typedef enum { EMBER_ZCL_EVENT_LOG_PAYLOAD_CONTROL_EVENTS_DO_NOT_CROSS_FRAME_BOUNDARY = 0x00, EMBER_ZCL_EVENT_LOG_PAYLOAD_CONTROL_EVENT_CROSSES_FRAME_BOUNDARY = 0x01, } EmberAfEventLogPayloadControl; +// Enum for ExtendedGenericAlarmGroups typedef enum { EMBER_ZCL_EXTENDED_GENERIC_ALARM_GROUPS_MEASUREMENT_SYSTEM_ERROR = 0x70, @@ -839,6 +887,7 @@ typedef enum EMBER_ZCL_EXTENDED_GENERIC_ALARM_GROUPS_EXTENDED_METER_ALARM_STATUS_REGISTER_CHANGED = 0x96, } EmberAfExtendedGenericAlarmGroups; +// Enum for ExtendedNumberOfPriceTiers typedef enum { EMBER_ZCL_EXTENDED_NUMBER_OF_PRICE_TIERS_REFER_TO_NUMBER_OF_PRICE_TIERS_FIELD = 0x00, @@ -877,6 +926,7 @@ typedef enum EMBER_ZCL_EXTENDED_NUMBER_OF_PRICE_TIERS_NUMBER_OF_PRICE_TIERS48 = 0x21, } EmberAfExtendedNumberOfPriceTiers; +// Enum for ExtendedPriceTier typedef enum { EMBER_ZCL_EXTENDED_PRICE_TIER_REFER_TO_PRICE_TIER_FIELD = 0x00, @@ -915,6 +965,7 @@ typedef enum EMBER_ZCL_EXTENDED_PRICE_TIER_TIER48_PRICE_LABEL = 0x21, } EmberAfExtendedPriceTier; +// Enum for ExtendedRegisterTier typedef enum { EMBER_ZCL_EXTENDED_REGISTER_TIER_REFER_TO_REGISTER_TIER_FIELD = 0x00, @@ -953,32 +1004,36 @@ typedef enum EMBER_ZCL_EXTENDED_REGISTER_TIER_CURRENT_TIER48_SUMMATION_DELIVERED_ATTRIBUTE = 0x21, } EmberAfExtendedRegisterTier; +// Enum for EzModeCommissioningClusterType typedef enum { EMBER_ZCL_EZ_MODE_COMMISSIONING_CLUSTER_TYPE_SERVER = 0x00, EMBER_ZCL_EZ_MODE_COMMISSIONING_CLUSTER_TYPE_CLIENT = 0x01, } EmberAfEzModeCommissioningClusterType; +// Enum for FanMode typedef enum { - EMBER_ZCL_FAN_MODE_OFF = 0x00, - EMBER_ZCL_FAN_MODE_LOW = 0x01, - EMBER_ZCL_FAN_MODE_MEDIUM = 0x02, - EMBER_ZCL_FAN_MODE_HIGH = 0x03, - EMBER_ZCL_FAN_MODE_ON = 0x04, - EMBER_ZCL_FAN_MODE_AUTO = 0x05, - EMBER_ZCL_FAN_MODE_SMART = 0x06, + EMBER_ZCL_FAN_MODE_OFF = 0x0, + EMBER_ZCL_FAN_MODE_LOW = 0x1, + EMBER_ZCL_FAN_MODE_MEDIUM = 0x2, + EMBER_ZCL_FAN_MODE_HIGH = 0x3, + EMBER_ZCL_FAN_MODE_ON = 0x4, + EMBER_ZCL_FAN_MODE_AUTO = 0x5, + EMBER_ZCL_FAN_MODE_SMART = 0x6, } EmberAfFanMode; +// Enum for FanModeSequence typedef enum { - EMBER_ZCL_FAN_MODE_SEQUENCE_LOW_MED_HIGH = 0x00, - EMBER_ZCL_FAN_MODE_SEQUENCE_LOW_HIGH = 0x01, - EMBER_ZCL_FAN_MODE_SEQUENCE_LOW_MED_HIGH_AUTO = 0x02, - EMBER_ZCL_FAN_MODE_SEQUENCE_LOW_HIGH_AUTO = 0x03, - EMBER_ZCL_FAN_MODE_SEQUENCE_ON_AUTO = 0x04, + EMBER_ZCL_FAN_MODE_SEQUENCE_LOW_MED_HIGH = 0x0, + EMBER_ZCL_FAN_MODE_SEQUENCE_LOW_HIGH = 0x1, + EMBER_ZCL_FAN_MODE_SEQUENCE_LOW_MED_HIGH_AUTO = 0x2, + EMBER_ZCL_FAN_MODE_SEQUENCE_LOW_HIGH_AUTO = 0x3, + EMBER_ZCL_FAN_MODE_SEQUENCE_ON_AUTO = 0x4, } EmberAfFanModeSequence; +// Enum for GasSpecificAlarmGroups typedef enum { EMBER_ZCL_GAS_SPECIFIC_ALARM_GROUPS_TILT_TAMPER = 0x60, @@ -988,6 +1043,7 @@ typedef enum EMBER_ZCL_GAS_SPECIFIC_ALARM_GROUPS_TILT_TAMPER_ENDED = 0x64, } EmberAfGasSpecificAlarmGroups; +// Enum for GenerationTier typedef enum { EMBER_ZCL_GENERATION_TIER_CURRENT_TIER1_SUMMATION_RECEIVED_ATTRIBUTE = 0x01, @@ -1040,6 +1096,7 @@ typedef enum EMBER_ZCL_GENERATION_TIER_CURRENT_TIER48_SUMMATION_RECEIVED_ATTRIBUTE = 0x30, } EmberAfGenerationTier; +// Enum for GenericAlarmGroups typedef enum { EMBER_ZCL_GENERIC_ALARM_GROUPS_CHECK_METER = 0x00, @@ -1053,22 +1110,25 @@ typedef enum EMBER_ZCL_GENERIC_ALARM_GROUPS_NO_STRONG_MAGNETIC_FIELD = 0x0B, EMBER_ZCL_GENERIC_ALARM_GROUPS_BATTERY_FAILURE = 0x0C, EMBER_ZCL_GENERIC_ALARM_GROUPS_PROGRAM_MEMORY_ERROR = 0x0D, - EMBER_ZCL_GENERIC_ALARM_GROUPS_R_A_M_ERROR = 0x0E, - EMBER_ZCL_GENERIC_ALARM_GROUPS_N_V_MEMORY_ERROR = 0x0F, + EMBER_ZCL_GENERIC_ALARM_GROUPS_RAM_ERROR = 0x0E, + EMBER_ZCL_GENERIC_ALARM_GROUPS_NV_MEMORY_ERROR = 0x0F, } EmberAfGenericAlarmGroups; +// Enum for GenericAlarmGroupsElectricity typedef enum { EMBER_ZCL_GENERIC_ALARM_GROUPS_ELECTRICITY_POWER_FAILURE = 0x03, EMBER_ZCL_GENERIC_ALARM_GROUPS_ELECTRICITY_POWER_QUALITY = 0x04, } EmberAfGenericAlarmGroupsElectricity; +// Enum for GenericAlarmGroupsGas typedef enum { EMBER_ZCL_GENERIC_ALARM_GROUPS_GAS_LOW_PRESSURE = 0x04, EMBER_ZCL_GENERIC_ALARM_GROUPS_GAS_REVERSE_FLOW = 0x07, } EmberAfGenericAlarmGroupsGas; +// Enum for GenericAlarmGroupsHeatCooling typedef enum { EMBER_ZCL_GENERIC_ALARM_GROUPS_HEAT_COOLING_TEMPERATURE_SENSOR = 0x03, @@ -1076,6 +1136,7 @@ typedef enum EMBER_ZCL_GENERIC_ALARM_GROUPS_HEAT_COOLING_FLOW_SENSOR = 0x07, } EmberAfGenericAlarmGroupsHeatCooling; +// Enum for GenericAlarmGroupsWater typedef enum { EMBER_ZCL_GENERIC_ALARM_GROUPS_WATER_WATER_PIPE_EMPTY = 0x03, @@ -1083,11 +1144,13 @@ typedef enum EMBER_ZCL_GENERIC_ALARM_GROUPS_WATER_WATER_REVERSE_FLOW = 0x07, } EmberAfGenericAlarmGroupsWater; +// Enum for GenericDeviceClass typedef enum { EMBER_ZCL_GENERIC_DEVICE_CLASS_LIGHTING = 0x00, } EmberAfGenericDeviceClass; +// Enum for GenericDeviceType typedef enum { EMBER_ZCL_GENERIC_DEVICE_TYPE_INCANDESCENT = 0x00, @@ -1113,6 +1176,7 @@ typedef enum EMBER_ZCL_GENERIC_DEVICE_TYPE_UNSPECIFIED = 0xFF, } EmberAfGenericDeviceType; +// Enum for GenericFlowPressureAlarmGroups typedef enum { EMBER_ZCL_GENERIC_FLOW_PRESSURE_ALARM_GROUPS_BURST_DETECT = 0x30, @@ -1125,14 +1189,27 @@ typedef enum EMBER_ZCL_GENERIC_FLOW_PRESSURE_ALARM_GROUPS_PIPE_EMPTY = 0x37, } EmberAfGenericFlowPressureAlarmGroups; -typedef enum -{ - EMBER_ZCL_GP_DEVICE_ID_GP_SIMPLE_GENERICE_TWO_STATE_SWITCH = 0x00, - EMBER_ZCL_GP_DEVICE_ID_GP_ON_OFF_SWITCH = 0x08, - EMBER_ZCL_GP_DEVICE_ID_GP_LEVEL_CONTROL_SWITCH = 0x10, - EMBER_ZCL_GP_DEVICE_ID_GP_INDOOR_ENVIRONMENT_SNESOR = 0x18, +// Enum for GpDeviceId +typedef enum +{ + EMBER_ZCL_GP_DEVICE_ID_GP_SIMPLE_GENERIC_ONE_STATE_SWITCH = 0x00, + EMBER_ZCL_GP_DEVICE_ID_GP_SIMPLE_GENERIC_TWO_STATE_SWITCH = 0x00, + EMBER_ZCL_GP_DEVICE_ID_GP_ON_OFF_SWITCH = 0x08, + EMBER_ZCL_GP_DEVICE_ID_GP_LEVEL_CONTROL_SWITCH = 0x10, + EMBER_ZCL_GP_DEVICE_ID_GP_SIMPLE_SENSOR = 0x18, + EMBER_ZCL_GP_DEVICE_ID_GP_ADVANCED_GENERIC_ONE_STATE_SWITCH = 0x18, + EMBER_ZCL_GP_DEVICE_ID_GP_ADVANCED_GENERIC_TWO_STATE_SWITCH = 0x18, + EMBER_ZCL_GP_DEVICE_ID_GP_COLOR_DIMMER_SWITCH = 0x18, + EMBER_ZCL_GP_DEVICE_ID_GP_LIGHT_SENSOR = 0x18, + EMBER_ZCL_GP_DEVICE_ID_GP_OCCPANCY_SENSOR = 0x18, + EMBER_ZCL_GP_DEVICE_ID_GP_DOOR_LOCK_CONTROLLER = 0x18, + EMBER_ZCL_GP_DEVICE_ID_GP_TEMPERATURE_SENSOR = 0x18, + EMBER_ZCL_GP_DEVICE_ID_GP_PRESSURE_SENSOR = 0x18, + EMBER_ZCL_GP_DEVICE_ID_GP_FLOW_SENSOR = 0x18, + EMBER_ZCL_GP_DEVICE_ID_GP_INDOOR_ENVIRONMENT_SNESOR = 0x18, } EmberAfGpDeviceId; +// Enum for GpGpdf typedef enum { EMBER_ZCL_GP_GPDF_IDENTIFY = 0x00, @@ -1228,6 +1305,7 @@ typedef enum EMBER_ZCL_GP_GPDF_ZCL_TUNNELING = 0xF6, } EmberAfGpGpdf; +// Enum for GpPairingConfigurationAction typedef enum { EMBER_ZCL_GP_PAIRING_CONFIGURATION_ACTION_NO_ACTION = 0x00, @@ -1238,14 +1316,16 @@ typedef enum EMBER_ZCL_GP_PAIRING_CONFIGURATION_ACTION_APPLICATION_DESCRIPTION = 0x05, } EmberAfGpPairingConfigurationAction; +// Enum for GpPairingConfigurationOptionCommunicationMode typedef enum { EMBER_ZCL_GP_PAIRING_CONFIGURATION_OPTION_COMMUNICATION_MODE_UNICAST_FORWARDING = 0x00, - EMBER_ZCL_GP_PAIRING_CONFIGURATION_OPTION_COMMUNICATION_MODE_GROUPCAST_FORWARDING_TO_D_GROUP_I_D = 0x08, + EMBER_ZCL_GP_PAIRING_CONFIGURATION_OPTION_COMMUNICATION_MODE_GROUPCAST_FORWARDING_TO_D_GROUP_ID = 0x08, EMBER_ZCL_GP_PAIRING_CONFIGURATION_OPTION_COMMUNICATION_MODE_GROUPCAST_FORWARDING_TO_PRE_COMMISSIONED = 0x10, EMBER_ZCL_GP_PAIRING_CONFIGURATION_OPTION_COMMUNICATION_MODE_UNICAST_FORWARDING_LIGHTWEIGHT = 0x18, } EmberAfGpPairingConfigurationOptionCommunicationMode; +// Enum for GpPairingOptionsCommunicationMode typedef enum { EMBER_ZCL_GP_PAIRING_OPTIONS_COMMUNICATION_MODE_FULL_UNICAST_FORWARDING = 0x00, @@ -1254,18 +1334,21 @@ typedef enum EMBER_ZCL_GP_PAIRING_OPTIONS_COMMUNICATION_MODE_UNICAST_FORWARDING_BY_PROX_SUPPORT = 0x11, } EmberAfGpPairingOptionsCommunicationMode; +// Enum for GpProxyTableRequestOptionsRequestType typedef enum { EMBER_ZCL_GP_PROXY_TABLE_REQUEST_OPTIONS_REQUEST_TYPE_BY_GPD_ID = 0x00, EMBER_ZCL_GP_PROXY_TABLE_REQUEST_OPTIONS_REQUEST_TYPE_BY_INDEX = 0x01, } EmberAfGpProxyTableRequestOptionsRequestType; +// Enum for GpProxyTableResponseStatus typedef enum { EMBER_ZCL_GP_PROXY_TABLE_RESPONSE_STATUS_SUCCESS = 0x00, EMBER_ZCL_GP_PROXY_TABLE_RESPONSE_STATUS_NOT_FOUND = 0x8B, } EmberAfGpProxyTableResponseStatus; +// Enum for GpSecurityKeyType typedef enum { EMBER_ZCL_GP_SECURITY_KEY_TYPE_NONE = 0x00, @@ -1276,24 +1359,28 @@ typedef enum EMBER_ZCL_GP_SECURITY_KEY_TYPE_DERIVED_INDIVIDUAL_GPD_KEY = 0x07, } EmberAfGpSecurityKeyType; +// Enum for GpSinkTableRequestOptions typedef enum { EMBER_ZCL_GP_SINK_TABLE_REQUEST_OPTIONS_REQUEST_TABLE_ENTRIES_BY_GPD_ID = 0x00, EMBER_ZCL_GP_SINK_TABLE_REQUEST_OPTIONS_REQUEST_TABLE_ENTRIES_BY_INDEX = 0x01, } EmberAfGpSinkTableRequestOptions; +// Enum for GpSinkTableResponseStatus typedef enum { EMBER_ZCL_GP_SINK_TABLE_RESPONSE_STATUS_SUCCESS = 0x00, EMBER_ZCL_GP_SINK_TABLE_RESPONSE_STATUS_NOT_FOUND = 0x8B, } EmberAfGpSinkTableResponseStatus; +// Enum for GpTranslationTableResponseStatus typedef enum { EMBER_ZCL_GP_TRANSLATION_TABLE_RESPONSE_STATUS_SUCCESS = 0x00, EMBER_ZCL_GP_TRANSLATION_TABLE_RESPONSE_STATUS_NOT_FOUND = 0x8B, } EmberAfGpTranslationTableResponseStatus; +// Enum for GpTranslationTableUpdateAction typedef enum { EMBER_ZCL_GP_TRANSLATION_TABLE_UPDATE_ACTION_ADD_TRANSLATION_TABLE_ENTRY = 0x00, @@ -1302,79 +1389,89 @@ typedef enum EMBER_ZCL_GP_TRANSLATION_TABLE_UPDATE_ACTION_RESERVED = 0x18, } EmberAfGpTranslationTableUpdateAction; +// Enum for HeatAndCoolingSpecificAlarmGroups typedef enum { EMBER_ZCL_HEAT_AND_COOLING_SPECIFIC_ALARM_GROUPS_INLET_TEMPERATURE_SENSOR_FAULT = 0x50, EMBER_ZCL_HEAT_AND_COOLING_SPECIFIC_ALARM_GROUPS_OUTLET_TEMPERATURE_SENSOR_FAULT = 0x51, } EmberAfHeatAndCoolingSpecificAlarmGroups; +// Enum for HueDirection typedef enum { - EMBER_ZCL_HUE_DIRECTION_SHORTEST_DISTANCE = 0x00, - EMBER_ZCL_HUE_DIRECTION_LONGEST_DISTANCE = 0x01, - EMBER_ZCL_HUE_DIRECTION_UP = 0x02, - EMBER_ZCL_HUE_DIRECTION_DOWN = 0x03, + EMBER_ZCL_HUE_DIRECTION_SHORTEST_DISTANCE = 0x0, + EMBER_ZCL_HUE_DIRECTION_LONGEST_DISTANCE = 0x1, + EMBER_ZCL_HUE_DIRECTION_UP = 0x2, + EMBER_ZCL_HUE_DIRECTION_DOWN = 0x3, } EmberAfHueDirection; +// Enum for HueMoveMode typedef enum { - EMBER_ZCL_HUE_MOVE_MODE_STOP = 0x00, - EMBER_ZCL_HUE_MOVE_MODE_UP = 0x01, - EMBER_ZCL_HUE_MOVE_MODE_DOWN = 0x03, + EMBER_ZCL_HUE_MOVE_MODE_STOP = 0x0, + EMBER_ZCL_HUE_MOVE_MODE_UP = 0x1, + EMBER_ZCL_HUE_MOVE_MODE_DOWN = 0x3, } EmberAfHueMoveMode; +// Enum for HueStepMode typedef enum { - EMBER_ZCL_HUE_STEP_MODE_UP = 0x01, - EMBER_ZCL_HUE_STEP_MODE_DOWN = 0x03, + EMBER_ZCL_HUE_STEP_MODE_UP = 0x1, + EMBER_ZCL_HUE_STEP_MODE_DOWN = 0x3, } EmberAfHueStepMode; +// Enum for IasAceAlarmStatus typedef enum { - EMBER_ZCL_IAS_ACE_ALARM_STATUS_NO_ALARM = 0x00, - EMBER_ZCL_IAS_ACE_ALARM_STATUS_BURGLAR = 0x01, - EMBER_ZCL_IAS_ACE_ALARM_STATUS_FIRE = 0x02, - EMBER_ZCL_IAS_ACE_ALARM_STATUS_EMERGENCY = 0x03, - EMBER_ZCL_IAS_ACE_ALARM_STATUS_POLICE_PANIC = 0x04, - EMBER_ZCL_IAS_ACE_ALARM_STATUS_FIRE_PANIC = 0x05, - EMBER_ZCL_IAS_ACE_ALARM_STATUS_EMERGENCY_PANIC = 0x06, + EMBER_ZCL_IAS_ACE_ALARM_STATUS_NO_ALARM = 0x0, + EMBER_ZCL_IAS_ACE_ALARM_STATUS_BURGLAR = 0x1, + EMBER_ZCL_IAS_ACE_ALARM_STATUS_FIRE = 0x2, + EMBER_ZCL_IAS_ACE_ALARM_STATUS_EMERGENCY = 0x3, + EMBER_ZCL_IAS_ACE_ALARM_STATUS_POLICE_PANIC = 0x4, + EMBER_ZCL_IAS_ACE_ALARM_STATUS_FIRE_PANIC = 0x5, + EMBER_ZCL_IAS_ACE_ALARM_STATUS_EMERGENCY_PANIC = 0x6, } EmberAfIasAceAlarmStatus; +// Enum for IasAceArmMode typedef enum { - EMBER_ZCL_IAS_ACE_ARM_MODE_DISARM = 0x00, - EMBER_ZCL_IAS_ACE_ARM_MODE_ARM_DAY_HOME_ZONES_ONLY = 0x01, - EMBER_ZCL_IAS_ACE_ARM_MODE_ARM_NIGHT_SLEEP_ZONES_ONLY = 0x02, - EMBER_ZCL_IAS_ACE_ARM_MODE_ARM_ALL_ZONES = 0x03, + EMBER_ZCL_IAS_ACE_ARM_MODE_DISARM = 0x0, + EMBER_ZCL_IAS_ACE_ARM_MODE_ARM_DAY_HOME_ZONES_ONLY = 0x1, + EMBER_ZCL_IAS_ACE_ARM_MODE_ARM_NIGHT_SLEEP_ZONES_ONLY = 0x2, + EMBER_ZCL_IAS_ACE_ARM_MODE_ARM_ALL_ZONES = 0x3, } EmberAfIasAceArmMode; +// Enum for IasAceArmNotification typedef enum { - EMBER_ZCL_IAS_ACE_ARM_NOTIFICATION_ALL_ZONES_DISARMED = 0x00, - EMBER_ZCL_IAS_ACE_ARM_NOTIFICATION_ONLY_DAY_HOME_ZONES_ARMED = 0x01, - EMBER_ZCL_IAS_ACE_ARM_NOTIFICATION_ONLY_NIGHT_SLEEP_ZONES_ARMED = 0x02, - EMBER_ZCL_IAS_ACE_ARM_NOTIFICATION_ALL_ZONES_ARMED = 0x03, + EMBER_ZCL_IAS_ACE_ARM_NOTIFICATION_ALL_ZONES_DISARMED = 0x0, + EMBER_ZCL_IAS_ACE_ARM_NOTIFICATION_ONLY_DAY_HOME_ZONES_ARMED = 0x1, + EMBER_ZCL_IAS_ACE_ARM_NOTIFICATION_ONLY_NIGHT_SLEEP_ZONES_ARMED = 0x2, + EMBER_ZCL_IAS_ACE_ARM_NOTIFICATION_ALL_ZONES_ARMED = 0x3, EMBER_ZCL_IAS_ACE_ARM_NOTIFICATION_INVALID_ARM_DISARM_CODE = 0x04, EMBER_ZCL_IAS_ACE_ARM_NOTIFICATION_NOT_READY_TO_ARM = 0x05, EMBER_ZCL_IAS_ACE_ARM_NOTIFICATION_ALREADY_DISARMED = 0x06, } EmberAfIasAceArmNotification; +// Enum for IasAceAudibleNotification typedef enum { - EMBER_ZCL_IAS_ACE_AUDIBLE_NOTIFICATION_MUTE = 0x00, - EMBER_ZCL_IAS_ACE_AUDIBLE_NOTIFICATION_DEFAULT_SOUND = 0x01, + EMBER_ZCL_IAS_ACE_AUDIBLE_NOTIFICATION_MUTE = 0x0, + EMBER_ZCL_IAS_ACE_AUDIBLE_NOTIFICATION_DEFAULT_SOUND = 0x1, } EmberAfIasAceAudibleNotification; +// Enum for IasAceBypassResult typedef enum { - EMBER_ZCL_IAS_ACE_BYPASS_RESULT_ZONE_BYPASSED = 0x00, - EMBER_ZCL_IAS_ACE_BYPASS_RESULT_ZONE_NOT_BYPASSED = 0x01, - EMBER_ZCL_IAS_ACE_BYPASS_RESULT_NOT_ALLOWED = 0x02, - EMBER_ZCL_IAS_ACE_BYPASS_RESULT_INVALID_ZONE_ID = 0x03, - EMBER_ZCL_IAS_ACE_BYPASS_RESULT_UNKNOWN_ZONE_ID = 0x04, - EMBER_ZCL_IAS_ACE_BYPASS_RESULT_INVALID_ARM_DISARM_CODE = 0x05, + EMBER_ZCL_IAS_ACE_BYPASS_RESULT_ZONE_BYPASSED = 0x0, + EMBER_ZCL_IAS_ACE_BYPASS_RESULT_ZONE_NOT_BYPASSED = 0x1, + EMBER_ZCL_IAS_ACE_BYPASS_RESULT_NOT_ALLOWED = 0x2, + EMBER_ZCL_IAS_ACE_BYPASS_RESULT_INVALID_ZONE_ID = 0x3, + EMBER_ZCL_IAS_ACE_BYPASS_RESULT_UNKNOWN_ZONE_ID = 0x4, + EMBER_ZCL_IAS_ACE_BYPASS_RESULT_INVALID_ARM_DISARM_CODE = 0x5, } EmberAfIasAceBypassResult; +// Enum for IasAcePanelStatus typedef enum { EMBER_ZCL_IAS_ACE_PANEL_STATUS_PANEL_DISARMED = 0x00, @@ -1390,40 +1487,44 @@ typedef enum EMBER_ZCL_IAS_ACE_PANEL_STATUS_ARMING_AWAY = 0x0A, } EmberAfIasAcePanelStatus; +// Enum for IasEnrollResponseCode typedef enum { - EMBER_ZCL_IAS_ENROLL_RESPONSE_CODE_SUCCESS = 0x00, - EMBER_ZCL_IAS_ENROLL_RESPONSE_CODE_NOT_SUPPORTED = 0x01, - EMBER_ZCL_IAS_ENROLL_RESPONSE_CODE_NO_ENROLL_PERMIT = 0x02, - EMBER_ZCL_IAS_ENROLL_RESPONSE_CODE_TOO_MANY_ZONES = 0x03, + EMBER_ZCL_IAS_ENROLL_RESPONSE_CODE_SUCCESS = 0x0, + EMBER_ZCL_IAS_ENROLL_RESPONSE_CODE_NOT_SUPPORTED = 0x1, + EMBER_ZCL_IAS_ENROLL_RESPONSE_CODE_NO_ENROLL_PERMIT = 0x2, + EMBER_ZCL_IAS_ENROLL_RESPONSE_CODE_TOO_MANY_ZONES = 0x3, } EmberAfIasEnrollResponseCode; +// Enum for IasZoneState typedef enum { - EMBER_ZCL_IAS_ZONE_STATE_NOT_ENROLLED = 0x00, - EMBER_ZCL_IAS_ZONE_STATE_ENROLLED = 0x01, + EMBER_ZCL_IAS_ZONE_STATE_NOT_ENROLLED = 0x0, + EMBER_ZCL_IAS_ZONE_STATE_ENROLLED = 0x1, } EmberAfIasZoneState; -typedef enum -{ - EMBER_ZCL_IAS_ZONE_TYPE_STANDARD_CIE = 0x0000, - EMBER_ZCL_IAS_ZONE_TYPE_MOTION_SENSOR = 0x000D, - EMBER_ZCL_IAS_ZONE_TYPE_CONTACT_SWITCH = 0x0015, - EMBER_ZCL_IAS_ZONE_TYPE_FIRE_SENSOR = 0x0028, - EMBER_ZCL_IAS_ZONE_TYPE_WATER_SENSOR = 0x002A, - EMBER_ZCL_IAS_ZONE_TYPE_GAS_SENSOR = 0x002B, - EMBER_ZCL_IAS_ZONE_TYPE_PERSONAL_EMERGENCY_DEVICE = 0x002C, - EMBER_ZCL_IAS_ZONE_TYPE_VIBRATION_MOVEMENT_SENSOR = 0x002D, - EMBER_ZCL_IAS_ZONE_TYPE_REMOTE_CONTROL = 0x010F, - EMBER_ZCL_IAS_ZONE_TYPE_KEY_FOB = 0x0115, - EMBER_ZCL_IAS_ZONE_TYPE_KEYPAD = 0x021D, - EMBER_ZCL_IAS_ZONE_TYPE_STANDARD_WARNING_DEVICE = 0x0225, - EMBER_ZCL_IAS_ZONE_TYPE_GLASS_BREAK_SENSOR = 0x0226, - EMBER_ZCL_IAS_ZONE_TYPE_CARBON_MONOXIDE_SENSOR = 0x0227, +// Enum for IasZoneType +typedef enum +{ + EMBER_ZCL_IAS_ZONE_TYPE_STANDARD_CIE = 0x0, + EMBER_ZCL_IAS_ZONE_TYPE_MOTION_SENSOR = 0xd, + EMBER_ZCL_IAS_ZONE_TYPE_CONTACT_SWITCH = 0x15, + EMBER_ZCL_IAS_ZONE_TYPE_FIRE_SENSOR = 0x28, + EMBER_ZCL_IAS_ZONE_TYPE_WATER_SENSOR = 0x2a, + EMBER_ZCL_IAS_ZONE_TYPE_GAS_SENSOR = 0x2b, + EMBER_ZCL_IAS_ZONE_TYPE_PERSONAL_EMERGENCY_DEVICE = 0x2c, + EMBER_ZCL_IAS_ZONE_TYPE_VIBRATION_MOVEMENT_SENSOR = 0x2d, + EMBER_ZCL_IAS_ZONE_TYPE_REMOTE_CONTROL = 0x10f, + EMBER_ZCL_IAS_ZONE_TYPE_KEY_FOB = 0x115, + EMBER_ZCL_IAS_ZONE_TYPE_KEYPAD = 0x21d, + EMBER_ZCL_IAS_ZONE_TYPE_STANDARD_WARNING_DEVICE = 0x225, + EMBER_ZCL_IAS_ZONE_TYPE_GLASS_BREAK_SENSOR = 0x226, + EMBER_ZCL_IAS_ZONE_TYPE_CARBON_MONOXIDE_SENSOR = 0x227, EMBER_ZCL_IAS_ZONE_TYPE_SECURITY_REPEATER = 0x0229, EMBER_ZCL_IAS_ZONE_TYPE_INVALID_ZONE_TYPE = 0xFFFF, } EmberAfIasZoneType; +// Enum for IdentifyEffectIdentifier typedef enum { EMBER_ZCL_IDENTIFY_EFFECT_IDENTIFIER_BLINK = 0x00, @@ -1434,11 +1535,13 @@ typedef enum EMBER_ZCL_IDENTIFY_EFFECT_IDENTIFIER_STOP_EFFECT = 0xFF, } EmberAfIdentifyEffectIdentifier; +// Enum for IdentifyEffectVariant typedef enum { EMBER_ZCL_IDENTIFY_EFFECT_VARIANT_DEFAULT = 0x00, } EmberAfIdentifyEffectVariant; +// Enum for KeyIndex typedef enum { EMBER_ZCL_KEY_INDEX_DEVELOPMENT = 0x00, @@ -1446,37 +1549,42 @@ typedef enum EMBER_ZCL_KEY_INDEX_CERTIFICATION = 0x0F, } EmberAfKeyIndex; +// Enum for KeypadLockout typedef enum { - EMBER_ZCL_KEYPAD_LOCKOUT_NO_LOCKOUT = 0x00, - EMBER_ZCL_KEYPAD_LOCKOUT_LEVEL_ONE_LOCKOUT = 0x01, - EMBER_ZCL_KEYPAD_LOCKOUT_LEVEL_TWO_LOCKOUT = 0x02, - EMBER_ZCL_KEYPAD_LOCKOUT_LEVEL_THREE_LOCKOUT = 0x03, - EMBER_ZCL_KEYPAD_LOCKOUT_LEVEL_FOUR_LOCKOUT = 0x04, - EMBER_ZCL_KEYPAD_LOCKOUT_LEVELFIVE_LOCKOUT = 0x05, + EMBER_ZCL_KEYPAD_LOCKOUT_NO_LOCKOUT = 0x0, + EMBER_ZCL_KEYPAD_LOCKOUT_LEVEL_ONE_LOCKOUT = 0x1, + EMBER_ZCL_KEYPAD_LOCKOUT_LEVEL_TWO_LOCKOUT = 0x2, + EMBER_ZCL_KEYPAD_LOCKOUT_LEVEL_THREE_LOCKOUT = 0x3, + EMBER_ZCL_KEYPAD_LOCKOUT_LEVEL_FOUR_LOCKOUT = 0x4, + EMBER_ZCL_KEYPAD_LOCKOUT_LEVELFIVE_LOCKOUT = 0x5, } EmberAfKeypadLockout; +// Enum for LevelControlOptions typedef enum { - EMBER_ZCL_LEVEL_CONTROL_OPTIONS_EXECUTE_IF_OFF = 0x01, + EMBER_ZCL_LEVEL_CONTROL_OPTIONS_EXECUTE_IF_OFF = 0x1, EMBER_ZCL_LEVEL_CONTROL_OPTIONS_COUPLE_COLOR_TEMP_TO_LEVEL = 0x02, } EmberAfLevelControlOptions; +// Enum for LevelStatus typedef enum { - EMBER_ZCL_LEVEL_STATUS_ON_TARGET = 0x00, - EMBER_ZCL_LEVEL_STATUS_BELOW_TARGET = 0x01, - EMBER_ZCL_LEVEL_STATUS_ABOVE_TARGET = 0x02, + EMBER_ZCL_LEVEL_STATUS_ON_TARGET = 0x0, + EMBER_ZCL_LEVEL_STATUS_BELOW_TARGET = 0x1, + EMBER_ZCL_LEVEL_STATUS_ABOVE_TARGET = 0x2, } EmberAfLevelStatus; +// Enum for LocationMethod typedef enum { - EMBER_ZCL_LOCATION_METHOD_LATERATION = 0x00, - EMBER_ZCL_LOCATION_METHOD_SIGNPOSTING = 0x01, - EMBER_ZCL_LOCATION_METHOD_RF_FINGERPRINTING = 0x02, - EMBER_ZCL_LOCATION_METHOD_OUT_OF_BAND = 0x03, + EMBER_ZCL_LOCATION_METHOD_LATERATION = 0x0, + EMBER_ZCL_LOCATION_METHOD_SIGNPOSTING = 0x1, + EMBER_ZCL_LOCATION_METHOD_RF_FINGERPRINTING = 0x2, + EMBER_ZCL_LOCATION_METHOD_OUT_OF_BAND = 0x3, } EmberAfLocationMethod; +// Enum for ManufacturerSpecificAlarmGroups typedef enum { EMBER_ZCL_MANUFACTURER_SPECIFIC_ALARM_GROUPS_MANUFACTURER_SPECIFIC_A = 0xB0, @@ -1490,24 +1598,28 @@ typedef enum EMBER_ZCL_MANUFACTURER_SPECIFIC_ALARM_GROUPS_MANUFACTURER_SPECIFIC_I = 0xB8, } EmberAfManufacturerSpecificAlarmGroups; +// Enum for MeasurementLightSensorType typedef enum { - EMBER_ZCL_MEASUREMENT_LIGHT_SENSOR_TYPE_PHOTODIODE = 0x00, - EMBER_ZCL_MEASUREMENT_LIGHT_SENSOR_TYPE_CMOS = 0x01, + EMBER_ZCL_MEASUREMENT_LIGHT_SENSOR_TYPE_PHOTODIODE = 0x0, + EMBER_ZCL_MEASUREMENT_LIGHT_SENSOR_TYPE_CMOS = 0x1, } EmberAfMeasurementLightSensorType; +// Enum for MessagingControlConfirmation typedef enum { EMBER_ZCL_MESSAGING_CONTROL_CONFIRMATION_NOT_REQUIRED = 0x00, EMBER_ZCL_MESSAGING_CONTROL_CONFIRMATION_REQUIRED = 0x80, } EmberAfMessagingControlConfirmation; +// Enum for MessagingControlEnhancedConfirmation typedef enum { EMBER_ZCL_MESSAGING_CONTROL_ENHANCED_CONFIRMATION_NOT_REQUIRED = 0x00, EMBER_ZCL_MESSAGING_CONTROL_ENHANCED_CONFIRMATION_REQUIRED = 0x20, } EmberAfMessagingControlEnhancedConfirmation; +// Enum for MessagingControlImportance typedef enum { EMBER_ZCL_MESSAGING_CONTROL_IMPORTANCE_LOW = 0x00, @@ -1516,6 +1628,7 @@ typedef enum EMBER_ZCL_MESSAGING_CONTROL_IMPORTANCE_CRITICAL = 0x0C, } EmberAfMessagingControlImportance; +// Enum for MessagingControlTransmission typedef enum { EMBER_ZCL_MESSAGING_CONTROL_TRANSMISSION_NORMAL = 0x00, @@ -1524,6 +1637,7 @@ typedef enum EMBER_ZCL_MESSAGING_CONTROL_TRANSMISSION_RESERVED = 0x03, } EmberAfMessagingControlTransmission; +// Enum for MeterDeviceType typedef enum { EMBER_ZCL_METER_DEVICE_TYPE_ELECTRIC_METER = 0x00, @@ -1542,6 +1656,7 @@ typedef enum EMBER_ZCL_METER_DEVICE_TYPE_UNDEFINED_MIRROR_METER = 0xFE, } EmberAfMeterDeviceType; +// Enum for MeterTypeId typedef enum { EMBER_ZCL_METER_TYPE_ID_UTILITY_PRIMARY_METER = 0x0000, @@ -1553,6 +1668,7 @@ typedef enum EMBER_ZCL_METER_TYPE_ID_GENERIC_METER = 0x0110, } EmberAfMeterTypeId; +// Enum for MeteringAlarmCode typedef enum { EMBER_ZCL_METERING_ALARM_CODE_CHECK_METER = 0x00, @@ -1569,8 +1685,8 @@ typedef enum EMBER_ZCL_METERING_ALARM_CODE_NO_STRONG_MAGNETIC_FIELD = 0x0B, EMBER_ZCL_METERING_ALARM_CODE_BATTERY_FAILURE = 0x0C, EMBER_ZCL_METERING_ALARM_CODE_PROGRAM_MEMORY_ERROR = 0x0D, - EMBER_ZCL_METERING_ALARM_CODE_R_A_M_ERROR = 0x0E, - EMBER_ZCL_METERING_ALARM_CODE_N_V_MEMORY_ERROR = 0x0F, + EMBER_ZCL_METERING_ALARM_CODE_RAM_ERROR = 0x0E, + EMBER_ZCL_METERING_ALARM_CODE_NV_MEMORY_ERROR = 0x0F, EMBER_ZCL_METERING_ALARM_CODE_LOW_VOLTAGE_L1 = 0x10, EMBER_ZCL_METERING_ALARM_CODE_HIGH_VOLTAGE_L1 = 0x11, EMBER_ZCL_METERING_ALARM_CODE_LOW_VOLTAGE_L2 = 0x12, @@ -1593,8 +1709,8 @@ typedef enum EMBER_ZCL_METERING_ALARM_CODE_UNDER_VOLTAGE = 0x23, EMBER_ZCL_METERING_ALARM_CODE_OVER_VOLTAGE = 0x24, EMBER_ZCL_METERING_ALARM_CODE_NORMAL_VOLTAGE = 0x25, - EMBER_ZCL_METERING_ALARM_CODE_P_F_BELOW_THRESHOLD = 0x26, - EMBER_ZCL_METERING_ALARM_CODE_P_F_ABOVE_THRESHOLD = 0x27, + EMBER_ZCL_METERING_ALARM_CODE_PF_BELOW_THRESHOLD = 0x26, + EMBER_ZCL_METERING_ALARM_CODE_PF_ABOVE_THRESHOLD = 0x27, EMBER_ZCL_METERING_ALARM_CODE_TERMINAL_COVER_REMOVED = 0x28, EMBER_ZCL_METERING_ALARM_CODE_TERMINAL_COVER_CLOSED = 0x29, EMBER_ZCL_METERING_ALARM_CODE_BURST_DETECT = 0x30, @@ -1662,6 +1778,7 @@ typedef enum EMBER_ZCL_METERING_ALARM_CODE_MANUFACTURER_SPECIFIC_I = 0xB8, } EmberAfMeteringAlarmCode; +// Enum for MeteringBlockEnumerations typedef enum { EMBER_ZCL_METERING_BLOCK_ENUMERATIONS_NO_BLOCKS_IN_USE = 0x00, @@ -1683,6 +1800,7 @@ typedef enum EMBER_ZCL_METERING_BLOCK_ENUMERATIONS_BLOCK16 = 0x10, } EmberAfMeteringBlockEnumerations; +// Enum for MeteringConsumptionStatus typedef enum { EMBER_ZCL_METERING_CONSUMPTION_STATUS_LOW_ENERGY_USAGE = 0x00, @@ -1690,6 +1808,7 @@ typedef enum EMBER_ZCL_METERING_CONSUMPTION_STATUS_HIGH_ENERGY_USAGE = 0x02, } EmberAfMeteringConsumptionStatus; +// Enum for MeteringDeviceType typedef enum { EMBER_ZCL_METERING_DEVICE_TYPE_ELECTRIC_METERING = 0x00, @@ -1727,6 +1846,7 @@ typedef enum EMBER_ZCL_METERING_DEVICE_TYPE_UNDEFINED_MIRROR_METER = 0xFE, } EmberAfMeteringDeviceType; +// Enum for MeteringSupplyStatus typedef enum { EMBER_ZCL_METERING_SUPPLY_STATUS_SUPPLY_OFF = 0x00, @@ -1734,6 +1854,7 @@ typedef enum EMBER_ZCL_METERING_SUPPLY_STATUS_SUPPLY_ON = 0x02, } EmberAfMeteringSupplyStatus; +// Enum for MeteringTemperatureUnitOfMeasure typedef enum { EMBER_ZCL_METERING_TEMPERATURE_UNIT_OF_MEASURE_KELVIN = 0x00, @@ -1744,12 +1865,14 @@ typedef enum EMBER_ZCL_METERING_TEMPERATURE_UNIT_OF_MEASURE_FAHRENHEIT_BCD = 0x82, } EmberAfMeteringTemperatureUnitOfMeasure; +// Enum for MoveMode typedef enum { - EMBER_ZCL_MOVE_MODE_UP = 0x00, - EMBER_ZCL_MOVE_MODE_DOWN = 0x01, + EMBER_ZCL_MOVE_MODE_UP = 0x0, + EMBER_ZCL_MOVE_MODE_DOWN = 0x1, } EmberAfMoveMode; +// Enum for NotificationScheme typedef enum { EMBER_ZCL_NOTIFICATION_SCHEME_NO_NOTIFICATION_SCHEME_DEFINED = 0x00, @@ -1757,14 +1880,16 @@ typedef enum EMBER_ZCL_NOTIFICATION_SCHEME_PREDEFINED_NOTIFICATION_SCHEME_B = 0x02, } EmberAfNotificationScheme; +// Enum for OccupancySensorType typedef enum { - EMBER_ZCL_OCCUPANCY_SENSOR_TYPE_PIR = 0x00, - EMBER_ZCL_OCCUPANCY_SENSOR_TYPE_ULTRASONIC = 0x01, - EMBER_ZCL_OCCUPANCY_SENSOR_TYPE_PIR_AND_ULTRASONIC = 0x02, - EMBER_ZCL_OCCUPANCY_SENSOR_TYPE_PHYSICAL_CONTACT = 0x03, + EMBER_ZCL_OCCUPANCY_SENSOR_TYPE_PIR = 0x0, + EMBER_ZCL_OCCUPANCY_SENSOR_TYPE_ULTRASONIC = 0x1, + EMBER_ZCL_OCCUPANCY_SENSOR_TYPE_PIR_AND_ULTRASONIC = 0x2, + EMBER_ZCL_OCCUPANCY_SENSOR_TYPE_PHYSICAL_CONTACT = 0x3, } EmberAfOccupancySensorType; +// Enum for OnOffDelayedAllOffEffectVariant typedef enum { EMBER_ZCL_ON_OFF_DELAYED_ALL_OFF_EFFECT_VARIANT_FADE_TO_OFF_IN_0P8_SECONDS = 0x00, @@ -1772,23 +1897,27 @@ typedef enum EMBER_ZCL_ON_OFF_DELAYED_ALL_OFF_EFFECT_VARIANT_50_PERCENT_DIM_DOWN_IN_0P8_SECONDS_THEN_FADE_TO_OFF_IN_12_SECONDS = 0x02, } EmberAfOnOffDelayedAllOffEffectVariant; +// Enum for OnOffDyingLightEffectVariant typedef enum { EMBER_ZCL_ON_OFF_DYING_LIGHT_EFFECT_VARIANT_20_PERCENTER_DIM_UP_IN_0P5_SECONDS_THEN_FADE_TO_OFF_IN_1_SECOND = 0x00, } EmberAfOnOffDyingLightEffectVariant; +// Enum for OnOffEffectIdentifier typedef enum { EMBER_ZCL_ON_OFF_EFFECT_IDENTIFIER_DELAYED_ALL_OFF = 0x00, EMBER_ZCL_ON_OFF_EFFECT_IDENTIFIER_DYING_LIGHT = 0x01, } EmberAfOnOffEffectIdentifier; +// Enum for OperatingMode typedef enum { - EMBER_ZCL_OPERATING_MODE_NORMAL = 0x00, - EMBER_ZCL_OPERATING_MODE_CONFIGURE = 0x01, + EMBER_ZCL_OPERATING_MODE_NORMAL = 0x0, + EMBER_ZCL_OPERATING_MODE_CONFIGURE = 0x1, } EmberAfOperatingMode; +// Enum for OriginatingDevice typedef enum { EMBER_ZCL_ORIGINATING_DEVICE_ENERGY_SERVICE_INTERFACE = 0x00, @@ -1796,6 +1925,7 @@ typedef enum EMBER_ZCL_ORIGINATING_DEVICE_IN_HOME_DISPLAY_DEVICE = 0x02, } EmberAfOriginatingDevice; +// Enum for PasswordType typedef enum { EMBER_ZCL_PASSWORD_TYPE_PASSWORD1_SERVICE_MENU_ACCESS = 0x01, @@ -1804,6 +1934,7 @@ typedef enum EMBER_ZCL_PASSWORD_TYPE_PASSWORD4 = 0x04, } EmberAfPasswordType; +// Enum for PaymentDiscountDuration typedef enum { EMBER_ZCL_PAYMENT_DISCOUNT_DURATION_CURRENT_BILLING_PERIOD = 0x00, @@ -1813,14 +1944,16 @@ typedef enum EMBER_ZCL_PAYMENT_DISCOUNT_DURATION_ONE_YEAR = 0x04, } EmberAfPaymentDiscountDuration; +// Enum for PhysicalEnvironment typedef enum { - EMBER_ZCL_PHYSICAL_ENVIRONMENT_UNSPECIFIED = 0x00, - EMBER_ZCL_PHYSICAL_ENVIRONMENT_FIRST_PROFILE_SPECIFIED_VALUE = 0x01, - EMBER_ZCL_PHYSICAL_ENVIRONMENT_LAST_PROFILE_SPECIFIED_VALUE = 0x7F, - EMBER_ZCL_PHYSICAL_ENVIRONMENT_UNKNOWN = 0xFF, + EMBER_ZCL_PHYSICAL_ENVIRONMENT_UNSPECIFIED = 0x0, + EMBER_ZCL_PHYSICAL_ENVIRONMENT_FIRST_PROFILE_SPECIFIED_VALUE = 0x1, + EMBER_ZCL_PHYSICAL_ENVIRONMENT_LAST_PROFILE_SPECIFIED_VALUE = 0x7f, + EMBER_ZCL_PHYSICAL_ENVIRONMENT_UNKNOWN = 0xff, } EmberAfPhysicalEnvironment; +// Enum for PowerProfileState typedef enum { EMBER_ZCL_POWER_PROFILE_STATE_POWER_PROFILE_WAITING_TO_START = 0x01, @@ -1834,18 +1967,20 @@ typedef enum EMBER_ZCL_POWER_PROFILE_STATE_POWER_PROFILE_SCHEDULED = 0x09, } EmberAfPowerProfileState; +// Enum for PowerSource typedef enum { - EMBER_ZCL_POWER_SOURCE_UNKNOWN = 0x00, - EMBER_ZCL_POWER_SOURCE_SINGLE_PHASE_MAINS = 0x01, - EMBER_ZCL_POWER_SOURCE_THREE_PHASE_MAINS = 0x02, - EMBER_ZCL_POWER_SOURCE_BATTERY = 0x03, - EMBER_ZCL_POWER_SOURCE_DC_SOURCE = 0x04, - EMBER_ZCL_POWER_SOURCE_EMERGENCY_MAINS_CONSTANT_POWER = 0x05, - EMBER_ZCL_POWER_SOURCE_EMERGENCY_MAINS_TRANSFER_SWITCH = 0x06, + EMBER_ZCL_POWER_SOURCE_UNKNOWN = 0x0, + EMBER_ZCL_POWER_SOURCE_SINGLE_PHASE_MAINS = 0x1, + EMBER_ZCL_POWER_SOURCE_THREE_PHASE_MAINS = 0x2, + EMBER_ZCL_POWER_SOURCE_BATTERY = 0x3, + EMBER_ZCL_POWER_SOURCE_DC_SOURCE = 0x4, + EMBER_ZCL_POWER_SOURCE_EMERGENCY_MAINS_CONSTANT_POWER = 0x5, + EMBER_ZCL_POWER_SOURCE_EMERGENCY_MAINS_TRANSFER_SWITCH = 0x6, EMBER_ZCL_POWER_SOURCE_BATTERY_BACKUP = 0x80, } EmberAfPowerSource; +// Enum for PrePayGenericAlarmGroup typedef enum { EMBER_ZCL_PRE_PAY_GENERIC_ALARM_GROUP_LOW_CREDIT = 0x00, @@ -1857,6 +1992,7 @@ typedef enum EMBER_ZCL_PRE_PAY_GENERIC_ALARM_GROUP_EVENT_LOG_CLEARED = 0x06, } EmberAfPrePayGenericAlarmGroup; +// Enum for PrepayEventAlarmGroup typedef enum { EMBER_ZCL_PREPAY_EVENT_ALARM_GROUP_PHYSICAL_ATTACK_ON_THE_PREPAY_METER = 0x20, @@ -1881,12 +2017,14 @@ typedef enum EMBER_ZCL_PREPAY_EVENT_ALARM_GROUP_MODE_DEFAULT = 0x43, } EmberAfPrepayEventAlarmGroup; +// Enum for PrepaySnapshotPayloadType typedef enum { EMBER_ZCL_PREPAY_SNAPSHOT_PAYLOAD_TYPE_DEBT_CREDIT_STATUS = 0x00, EMBER_ZCL_PREPAY_SNAPSHOT_PAYLOAD_TYPE_NOT_USED = 0xFF, } EmberAfPrepaySnapshotPayloadType; +// Enum for PrepaySwitchAlarmGroup typedef enum { EMBER_ZCL_PREPAY_SWITCH_ALARM_GROUP_SUPPLY_ON = 0x10, @@ -1898,32 +2036,36 @@ typedef enum EMBER_ZCL_PREPAY_SWITCH_ALARM_GROUP_REMOTE_DISCONNECTED = 0x16, } EmberAfPrepaySwitchAlarmGroup; +// Enum for PriceControlAcknowledgement typedef enum { EMBER_ZCL_PRICE_CONTROL_ACKNOWLEDGEMENT_NOT_REQUIRED = 0x00, EMBER_ZCL_PRICE_CONTROL_ACKNOWLEDGEMENT_REQUIRED = 0x01, } EmberAfPriceControlAcknowledgement; -typedef enum -{ - EMBER_ZCL_PRICE_TIER_NO_TIER_RELATED = 0x00, - EMBER_ZCL_PRICE_TIER_TIER1_PRICE_LABEL = 0x01, - EMBER_ZCL_PRICE_TIER_TIER2_PRICE_LABEL = 0x02, - EMBER_ZCL_PRICE_TIER_TIER3_PRICE_LABEL = 0x03, - EMBER_ZCL_PRICE_TIER_TIER4_PRICE_LABEL = 0x04, - EMBER_ZCL_PRICE_TIER_TIER5_PRICE_LABEL = 0x05, - EMBER_ZCL_PRICE_TIER_TIER6_PRICE_LABEL = 0x06, - EMBER_ZCL_PRICE_TIER_TIER7_PRICE_LABEL = 0x07, - EMBER_ZCL_PRICE_TIER_TIER8_PRICE_LABEL = 0x08, - EMBER_ZCL_PRICE_TIER_TIER9_PRICE_LABEL = 0x09, - EMBER_ZCL_PRICE_TIER_TIER10_PRICE_LABEL = 0x0A, - EMBER_ZCL_PRICE_TIER_TIER11_PRICE_LABEL = 0x0B, - EMBER_ZCL_PRICE_TIER_TIER12_PRICE_LABEL = 0x0C, - EMBER_ZCL_PRICE_TIER_TIER13_PRICE_LABEL = 0x0D, - EMBER_ZCL_PRICE_TIER_TIER14_PRICE_LABEL = 0x0E, - EMBER_ZCL_PRICE_TIER_TIER15_PRICE_LABEL = 0x0F, +// Enum for PriceTier +typedef enum +{ + EMBER_ZCL_PRICE_TIER_NO_TIER_RELATED = 0x00, + EMBER_ZCL_PRICE_TIER_TIER1_PRICE_LABEL = 0x01, + EMBER_ZCL_PRICE_TIER_TIER2_PRICE_LABEL = 0x02, + EMBER_ZCL_PRICE_TIER_TIER3_PRICE_LABEL = 0x03, + EMBER_ZCL_PRICE_TIER_TIER4_PRICE_LABEL = 0x04, + EMBER_ZCL_PRICE_TIER_TIER5_PRICE_LABEL = 0x05, + EMBER_ZCL_PRICE_TIER_TIER6_PRICE_LABEL = 0x06, + EMBER_ZCL_PRICE_TIER_TIER7_PRICE_LABEL = 0x07, + EMBER_ZCL_PRICE_TIER_TIER8_PRICE_LABEL = 0x08, + EMBER_ZCL_PRICE_TIER_TIER9_PRICE_LABEL = 0x09, + EMBER_ZCL_PRICE_TIER_TIER10_PRICE_LABEL = 0x0A, + EMBER_ZCL_PRICE_TIER_TIER11_PRICE_LABEL = 0x0B, + EMBER_ZCL_PRICE_TIER_TIER12_PRICE_LABEL = 0x0C, + EMBER_ZCL_PRICE_TIER_TIER13_PRICE_LABEL = 0x0D, + EMBER_ZCL_PRICE_TIER_TIER14_PRICE_LABEL = 0x0E, + EMBER_ZCL_PRICE_TIER_REFER_TO_EXTENDED_PRICE_TIER_FIELD = 0x0F, + EMBER_ZCL_PRICE_TIER_TIER15_PRICE_LABEL = 0x0F, } EmberAfPriceTier; +// Enum for ProductCode typedef enum { EMBER_ZCL_PRODUCT_CODE_MANUFACTURER_DEFINED = 0x00, @@ -1933,6 +2075,7 @@ typedef enum EMBER_ZCL_PRODUCT_CODE_STOCK_KEEPING_UNIT = 0x04, } EmberAfProductCode; +// Enum for ProductTypeId typedef enum { EMBER_ZCL_PRODUCT_TYPE_ID_WHITE_GOODS = 0x0000, @@ -1947,6 +2090,7 @@ typedef enum EMBER_ZCL_PRODUCT_TYPE_ID_REFRIGERATOR_FREEZER = 0x6601, } EmberAfProductTypeId; +// Enum for ProposedSupplyStatus typedef enum { EMBER_ZCL_PROPOSED_SUPPLY_STATUS_RESERVED = 0x00, @@ -1954,6 +2098,7 @@ typedef enum EMBER_ZCL_PROPOSED_SUPPLY_STATUS_SUPPLY_ON = 0x02, } EmberAfProposedSupplyStatus; +// Enum for PublishCppEventCppAuth typedef enum { EMBER_ZCL_PUBLISH_CPP_EVENT_CPP_AUTH_PENDING = 0x00, @@ -1962,24 +2107,27 @@ typedef enum EMBER_ZCL_PUBLISH_CPP_EVENT_CPP_AUTH_FORCED = 0x03, } EmberAfPublishCppEventCppAuth; +// Enum for PumpControlMode typedef enum { - EMBER_ZCL_PUMP_CONTROL_MODE_CONSTANT_SPEED = 0x00, - EMBER_ZCL_PUMP_CONTROL_MODE_CONSTANT_PRESSURE = 0x01, - EMBER_ZCL_PUMP_CONTROL_MODE_PROPORTIONAL_PRESSURE = 0x02, - EMBER_ZCL_PUMP_CONTROL_MODE_CONSTANT_FLOW = 0x03, - EMBER_ZCL_PUMP_CONTROL_MODE_CONSTANT_TEMPERATURE = 0x05, - EMBER_ZCL_PUMP_CONTROL_MODE_AUTOMATIC = 0x07, + EMBER_ZCL_PUMP_CONTROL_MODE_CONSTANT_SPEED = 0x0, + EMBER_ZCL_PUMP_CONTROL_MODE_CONSTANT_PRESSURE = 0x1, + EMBER_ZCL_PUMP_CONTROL_MODE_PROPORTIONAL_PRESSURE = 0x2, + EMBER_ZCL_PUMP_CONTROL_MODE_CONSTANT_FLOW = 0x3, + EMBER_ZCL_PUMP_CONTROL_MODE_CONSTANT_TEMPERATURE = 0x5, + EMBER_ZCL_PUMP_CONTROL_MODE_AUTOMATIC = 0x7, } EmberAfPumpControlMode; +// Enum for PumpOperationMode typedef enum { - EMBER_ZCL_PUMP_OPERATION_MODE_NORMAL = 0x00, - EMBER_ZCL_PUMP_OPERATION_MODE_MINIMUM = 0x01, - EMBER_ZCL_PUMP_OPERATION_MODE_MAXIMUM = 0x02, - EMBER_ZCL_PUMP_OPERATION_MODE_LOCAL = 0x03, + EMBER_ZCL_PUMP_OPERATION_MODE_NORMAL = 0x0, + EMBER_ZCL_PUMP_OPERATION_MODE_MINIMUM = 0x1, + EMBER_ZCL_PUMP_OPERATION_MODE_MAXIMUM = 0x2, + EMBER_ZCL_PUMP_OPERATION_MODE_LOCAL = 0x3, } EmberAfPumpOperationMode; +// Enum for PushHistoricalMeteringData typedef enum { EMBER_ZCL_PUSH_HISTORICAL_METERING_DATA_DAY = 0x0040, @@ -1988,6 +2136,7 @@ typedef enum EMBER_ZCL_PUSH_HISTORICAL_METERING_DATA_YEAR = 0x01C0, } EmberAfPushHistoricalMeteringData; +// Enum for PushHistoricalPaymentData typedef enum { EMBER_ZCL_PUSH_HISTORICAL_PAYMENT_DATA_DAY = 0x0200, @@ -1996,6 +2145,7 @@ typedef enum EMBER_ZCL_PUSH_HISTORICAL_PAYMENT_DATA_YEAR = 0x0E00, } EmberAfPushHistoricalPaymentData; +// Enum for RegisterTier typedef enum { EMBER_ZCL_REGISTER_TIER_NO_TIER_RELATED = 0x00, @@ -2013,21 +2163,25 @@ typedef enum EMBER_ZCL_REGISTER_TIER_CURRENT_TIER12_SUMMATION_DELIVERED_ATTRIBUTE = 0x0C, EMBER_ZCL_REGISTER_TIER_CURRENT_TIER13_SUMMATION_DELIVERED_ATTRIBUTE = 0x0D, EMBER_ZCL_REGISTER_TIER_CURRENT_TIER14_SUMMATION_DELIVERED_ATTRIBUTE = 0x0E, + EMBER_ZCL_REGISTER_TIER_REFER_TO_EXTENDED_REGISTER_TIER_FIELD = 0x0F, EMBER_ZCL_REGISTER_TIER_CURRENT_TIER15_SUMMATION_DELIVERED_ATTRIBUTE = 0x0F, } EmberAfRegisterTier; +// Enum for RelativeHumidityDisplay typedef enum { - EMBER_ZCL_RELATIVE_HUMIDITY_DISPLAY_NOT_DISPLAYED = 0x00, - EMBER_ZCL_RELATIVE_HUMIDITY_DISPLAY_DISPLAYED = 0x01, + EMBER_ZCL_RELATIVE_HUMIDITY_DISPLAY_NOT_DISPLAYED = 0x0, + EMBER_ZCL_RELATIVE_HUMIDITY_DISPLAY_DISPLAYED = 0x1, } EmberAfRelativeHumidityDisplay; +// Enum for RelativeHumidityMode typedef enum { - EMBER_ZCL_RELATIVE_HUMIDITY_MODE_MEASURE_LOCALLY = 0x00, - EMBER_ZCL_RELATIVE_HUMIDITY_MODE_UPDATED_OVER_THE_NETWORK = 0x01, + EMBER_ZCL_RELATIVE_HUMIDITY_MODE_MEASURE_LOCALLY = 0x0, + EMBER_ZCL_RELATIVE_HUMIDITY_MODE_UPDATED_OVER_THE_NETWORK = 0x1, } EmberAfRelativeHumidityMode; +// Enum for RemoteEnableFlags typedef enum { EMBER_ZCL_REMOTE_ENABLE_FLAGS_DISABLED = 0x00, @@ -2036,6 +2190,7 @@ typedef enum EMBER_ZCL_REMOTE_ENABLE_FLAGS_ENABLED_REMOTE_AND_ENERGY_CONTROL = 0x01, } EmberAfRemoteEnableFlags; +// Enum for RepaymentDebtType typedef enum { EMBER_ZCL_REPAYMENT_DEBT_TYPE_DEBT1 = 0x00, @@ -2044,12 +2199,14 @@ typedef enum EMBER_ZCL_REPAYMENT_DEBT_TYPE_ALL_DEBTS = 0xFF, } EmberAfRepaymentDebtType; +// Enum for ReportingDirection typedef enum { EMBER_ZCL_REPORTING_DIRECTION_REPORTED = 0x00, EMBER_ZCL_REPORTING_DIRECTION_RECEIVED = 0x01, } EmberAfReportingDirection; +// Enum for ResultType typedef enum { EMBER_ZCL_RESULT_TYPE_ACCEPTED = 0x00, @@ -2064,49 +2221,57 @@ typedef enum EMBER_ZCL_RESULT_TYPE_ACCEPTED_SUPPLY_ARMED = 0x12, } EmberAfResultType; +// Enum for SampleType typedef enum { EMBER_ZCL_SAMPLE_TYPE_CONSUMPTION_DELIVERED = 0x00, } EmberAfSampleType; +// Enum for SaturationMoveMode typedef enum { - EMBER_ZCL_SATURATION_MOVE_MODE_STOP = 0x00, - EMBER_ZCL_SATURATION_MOVE_MODE_UP = 0x01, - EMBER_ZCL_SATURATION_MOVE_MODE_DOWN = 0x03, + EMBER_ZCL_SATURATION_MOVE_MODE_STOP = 0x0, + EMBER_ZCL_SATURATION_MOVE_MODE_UP = 0x1, + EMBER_ZCL_SATURATION_MOVE_MODE_DOWN = 0x3, } EmberAfSaturationMoveMode; +// Enum for SaturationStepMode typedef enum { - EMBER_ZCL_SATURATION_STEP_MODE_UP = 0x01, - EMBER_ZCL_SATURATION_STEP_MODE_DOWN = 0x03, + EMBER_ZCL_SATURATION_STEP_MODE_UP = 0x1, + EMBER_ZCL_SATURATION_STEP_MODE_DOWN = 0x3, } EmberAfSaturationStepMode; +// Enum for SensingLightSensorType typedef enum { - EMBER_ZCL_SENSING_LIGHT_SENSOR_TYPE_PHOTODIODE = 0x00, - EMBER_ZCL_SENSING_LIGHT_SENSOR_TYPE_CMOS = 0x01, + EMBER_ZCL_SENSING_LIGHT_SENSOR_TYPE_PHOTODIODE = 0x0, + EMBER_ZCL_SENSING_LIGHT_SENSOR_TYPE_CMOS = 0x1, } EmberAfSensingLightSensorType; +// Enum for SetpointAdjustMode typedef enum { - EMBER_ZCL_SETPOINT_ADJUST_MODE_HEAT_SETPOINT = 0x00, - EMBER_ZCL_SETPOINT_ADJUST_MODE_COOL_SETPOINT = 0x01, - EMBER_ZCL_SETPOINT_ADJUST_MODE_HEAT_AND_COOL_SETPOINTS = 0x02, + EMBER_ZCL_SETPOINT_ADJUST_MODE_HEAT_SETPOINT = 0x0, + EMBER_ZCL_SETPOINT_ADJUST_MODE_COOL_SETPOINT = 0x1, + EMBER_ZCL_SETPOINT_ADJUST_MODE_HEAT_AND_COOL_SETPOINTS = 0x2, } EmberAfSetpointAdjustMode; +// Enum for SignatureType typedef enum { EMBER_ZCL_SIGNATURE_TYPE_RESERVED = 0x00, EMBER_ZCL_SIGNATURE_TYPE_ECDSA = 0x01, } EmberAfSignatureType; +// Enum for SnapshotConfirmation typedef enum { EMBER_ZCL_SNAPSHOT_CONFIRMATION_ACCEPTED = 0x00, EMBER_ZCL_SNAPSHOT_CONFIRMATION_SNAPSHOT_CAUSE_NOT_SUPPORTED = 0x01, } EmberAfSnapshotConfirmation; +// Enum for SnapshotPayloadType typedef enum { EMBER_ZCL_SNAPSHOT_PAYLOAD_TYPE_TOU_INFORMATION_SET_DELIVERED_REGISTERS = 0x00, @@ -2120,6 +2285,7 @@ typedef enum EMBER_ZCL_SNAPSHOT_PAYLOAD_TYPE_DATA_UNAVAILABLE = 0x80, } EmberAfSnapshotPayloadType; +// Enum for SnapshotScheduleConfirmation typedef enum { EMBER_ZCL_SNAPSHOT_SCHEDULE_CONFIRMATION_ACCEPTED = 0x00, @@ -2130,25 +2296,30 @@ typedef enum EMBER_ZCL_SNAPSHOT_SCHEDULE_CONFIRMATION_INSUFFICIENT_SPACE_FOR_SNAPSHOT_SCHEDULE = 0x05, } EmberAfSnapshotScheduleConfirmation; +// Enum for SquawkLevel typedef enum { - EMBER_ZCL_SQUAWK_LEVEL_LOW_LEVEL = 0x00, - EMBER_ZCL_SQUAWK_LEVEL_MEDIUM_LEVEL = 0x01, - EMBER_ZCL_SQUAWK_LEVEL_VERY_HIGH_LEVEL = 0x02, + EMBER_ZCL_SQUAWK_LEVEL_LOW_LEVEL = 0x0, + EMBER_ZCL_SQUAWK_LEVEL_MEDIUM_LEVEL = 0x1, + EMBER_ZCL_SQUAWK_LEVEL_HIGH_LEVEL = 0x2, + EMBER_ZCL_SQUAWK_LEVEL_VERY_HIGH_LEVEL = 0x2, } EmberAfSquawkLevel; +// Enum for SquawkMode typedef enum { - EMBER_ZCL_SQUAWK_MODE_SYSTEM_IS_ARMED = 0x00, - EMBER_ZCL_SQUAWK_MODE_SYSTEM_IS_DISARMED = 0x01, + EMBER_ZCL_SQUAWK_MODE_SYSTEM_IS_ARMED = 0x0, + EMBER_ZCL_SQUAWK_MODE_SYSTEM_IS_DISARMED = 0x1, } EmberAfSquawkMode; +// Enum for SquawkStobe typedef enum { - EMBER_ZCL_SQUAWK_STOBE_NO_STROBE = 0x00, - EMBER_ZCL_SQUAWK_STOBE_USE_STROBE = 0x01, + EMBER_ZCL_SQUAWK_STOBE_NO_STROBE = 0x0, + EMBER_ZCL_SQUAWK_STOBE_USE_STROBE = 0x1, } EmberAfSquawkStobe; +// Enum for StartOfWeek typedef enum { EMBER_ZCL_START_OF_WEEK_SUNDAY = 0x00, @@ -2160,6 +2331,7 @@ typedef enum EMBER_ZCL_START_OF_WEEK_SATURDAY = 0x06, } EmberAfStartOfWeek; +// Enum for StartUpOnOffValue typedef enum { EMBER_ZCL_START_UP_ON_OFF_VALUE_SET_TO_OFF = 0x00, @@ -2168,55 +2340,52 @@ typedef enum EMBER_ZCL_START_UP_ON_OFF_VALUE_SET_TO_PREVIOUS = 0xFF, } EmberAfStartUpOnOffValue; -typedef enum -{ - EMBER_ZCL_STATUS_SUCCESS = 0x00, - EMBER_ZCL_STATUS_FAILURE = 0x01, - EMBER_ZCL_STATUS_REQUEST_DENIED = 0x70, - EMBER_ZCL_STATUS_MULTIPLE_REQUEST_NOT_ALLOWED = 0x71, - EMBER_ZCL_STATUS_INDICATION_REDIRECTION_TO_AP = 0x72, - EMBER_ZCL_STATUS_PREFERENCE_DENIED = 0x73, - EMBER_ZCL_STATUS_PREFERENCE_IGNORED = 0x74, - EMBER_ZCL_STATUS_NOT_AUTHORIZED = 0x7E, - EMBER_ZCL_STATUS_RESERVED_FIELD_NOT_ZERO = 0x7F, - EMBER_ZCL_STATUS_MALFORMED_COMMAND = 0x80, - EMBER_ZCL_STATUS_UNSUP_CLUSTER_COMMAND = 0x81, - EMBER_ZCL_STATUS_UNSUP_GENERAL_COMMAND = 0x82, - EMBER_ZCL_STATUS_UNSUP_MANUF_CLUSTER_COMMAND = 0x83, - EMBER_ZCL_STATUS_UNSUP_MANUF_GENERAL_COMMAND = 0x84, - EMBER_ZCL_STATUS_INVALID_FIELD = 0x85, - EMBER_ZCL_STATUS_UNSUPPORTED_ATTRIBUTE = 0x86, - EMBER_ZCL_STATUS_INVALID_VALUE = 0x87, - EMBER_ZCL_STATUS_READ_ONLY = 0x88, - EMBER_ZCL_STATUS_INSUFFICIENT_SPACE = 0x89, - EMBER_ZCL_STATUS_DUPLICATE_EXISTS = 0x8A, - EMBER_ZCL_STATUS_NOT_FOUND = 0x8B, - EMBER_ZCL_STATUS_UNREPORTABLE_ATTRIBUTE = 0x8C, - EMBER_ZCL_STATUS_INVALID_DATA_TYPE = 0x8D, - EMBER_ZCL_STATUS_INVALID_SELECTOR = 0x8E, - EMBER_ZCL_STATUS_WRITE_ONLY = 0x8F, - EMBER_ZCL_STATUS_INCONSISTENT_STARTUP_STATE = 0x90, - EMBER_ZCL_STATUS_DEFINED_OUT_OF_BAND = 0x91, - EMBER_ZCL_STATUS_INCONSISTENT = 0x92, - EMBER_ZCL_STATUS_ACTION_DENIED = 0x93, - EMBER_ZCL_STATUS_TIMEOUT = 0x94, - EMBER_ZCL_STATUS_ABORT = 0x95, - EMBER_ZCL_STATUS_INVALID_IMAGE = 0x96, - EMBER_ZCL_STATUS_WAIT_FOR_DATA = 0x97, - EMBER_ZCL_STATUS_NO_IMAGE_AVAILABLE = 0x98, - EMBER_ZCL_STATUS_REQUIRE_MORE_IMAGE = 0x99, - EMBER_ZCL_STATUS_HARDWARE_FAILURE = 0xC0, - EMBER_ZCL_STATUS_SOFTWARE_FAILURE = 0xC1, - EMBER_ZCL_STATUS_CALIBRATION_ERROR = 0xC2, - EMBER_ZCL_STATUS_UNSUPPORTED_CLUSTER = 0xC3, +// Enum for Status +typedef enum +{ + EMBER_ZCL_STATUS_SUCCESS = 0x00, + EMBER_ZCL_STATUS_FAILURE = 0x01, + EMBER_ZCL_STATUS_NOT_AUTHORIZED = 0x7E, + EMBER_ZCL_STATUS_MALFORMED_COMMAND = 0x80, + EMBER_ZCL_STATUS_UNSUP_COMMAND = 0x81, + EMBER_ZCL_STATUS_UNSUP_GENERAL_COMMAND = 0x82, + EMBER_ZCL_STATUS_UNSUP_MANUF_CLUSTER_COMMAND = 0x83, + EMBER_ZCL_STATUS_UNSUP_MANUF_GENERAL_COMMAND = 0x84, + EMBER_ZCL_STATUS_INVALID_FIELD = 0x85, + EMBER_ZCL_STATUS_UNSUPPORTED_ATTRIBUTE = 0x86, + EMBER_ZCL_STATUS_INVALID_VALUE = 0x87, + EMBER_ZCL_STATUS_READ_ONLY = 0x88, + EMBER_ZCL_STATUS_INSUFFICIENT_SPACE = 0x89, + EMBER_ZCL_STATUS_DUPLICATE_EXISTS = 0x8A, + EMBER_ZCL_STATUS_NOT_FOUND = 0x8B, + EMBER_ZCL_STATUS_UNREPORTABLE_ATTRIBUTE = 0x8C, + EMBER_ZCL_STATUS_INVALID_DATA_TYPE = 0x8D, + EMBER_ZCL_STATUS_INVALID_SELECTOR = 0x8E, + EMBER_ZCL_STATUS_WRITE_ONLY = 0x8F, + EMBER_ZCL_STATUS_INCONSISTENT_STARTUP_STATE = 0x90, + EMBER_ZCL_STATUS_DEFINED_OUT_OF_BAND = 0x91, + EMBER_ZCL_STATUS_ACTION_DENIED = 0x93, + EMBER_ZCL_STATUS_TIMEOUT = 0x94, + EMBER_ZCL_STATUS_ABORT = 0x95, + EMBER_ZCL_STATUS_INVALID_IMAGE = 0x96, + EMBER_ZCL_STATUS_WAIT_FOR_DATA = 0x97, + EMBER_ZCL_STATUS_NO_IMAGE_AVAILABLE = 0x98, + EMBER_ZCL_STATUS_REQUIRE_MORE_IMAGE = 0x99, + EMBER_ZCL_STATUS_NOTIFICATION_PENDING = 0x9A, + EMBER_ZCL_STATUS_HARDWARE_FAILURE = 0xC0, + EMBER_ZCL_STATUS_SOFTWARE_FAILURE = 0xC1, + EMBER_ZCL_STATUS_UNSUPPORTED_CLUSTER = 0xC3, + EMBER_ZCL_STATUS_LIMIT_REACHED = 0xC4, } EmberAfStatus; +// Enum for StepMode typedef enum { - EMBER_ZCL_STEP_MODE_UP = 0x00, - EMBER_ZCL_STEP_MODE_DOWN = 0x01, + EMBER_ZCL_STEP_MODE_UP = 0x0, + EMBER_ZCL_STEP_MODE_DOWN = 0x1, } EmberAfStepMode; +// Enum for SupplyStatus typedef enum { EMBER_ZCL_SUPPLY_STATUS_SUPPLY_OFF = 0x00, @@ -2225,13 +2394,15 @@ typedef enum EMBER_ZCL_SUPPLY_STATUS_SUPPLY_UNCHANGED = 0x03, } EmberAfSupplyStatus; +// Enum for SwitchActions typedef enum { - EMBER_ZCL_SWITCH_ACTIONS_ON = 0x00, - EMBER_ZCL_SWITCH_ACTIONS_OFF = 0x01, - EMBER_ZCL_SWITCH_ACTIONS_TOGGLE = 0x02, + EMBER_ZCL_SWITCH_ACTIONS_ON = 0x0, + EMBER_ZCL_SWITCH_ACTIONS_OFF = 0x1, + EMBER_ZCL_SWITCH_ACTIONS_TOGGLE = 0x2, } EmberAfSwitchActions; +// Enum for SwitchType typedef enum { EMBER_ZCL_SWITCH_TYPE_TOGGLE = 0x00, @@ -2239,6 +2410,7 @@ typedef enum EMBER_ZCL_SWITCH_TYPE_MULTI_FUNCTION = 0x02, } EmberAfSwitchType; +// Enum for TariffChargingScheme typedef enum { EMBER_ZCL_TARIFF_CHARGING_SCHEME_TOU_TARIFF = 0x00, @@ -2247,6 +2419,7 @@ typedef enum EMBER_ZCL_TARIFF_CHARGING_SCHEME_BLOCK_TOU_TARIFF_WITH_INDIVIDUAL_THRESHOLDS_PER_TIER = 0x30, } EmberAfTariffChargingScheme; +// Enum for TariffResolutionPeriod typedef enum { EMBER_ZCL_TARIFF_RESOLUTION_PERIOD_NOT_DEFINED = 0x00, @@ -2254,6 +2427,7 @@ typedef enum EMBER_ZCL_TARIFF_RESOLUTION_PERIOD_ONE_DAY = 0x02, } EmberAfTariffResolutionPeriod; +// Enum for TariffType typedef enum { EMBER_ZCL_TARIFF_TYPE_DELIVERED_TARIFF = 0x00, @@ -2261,28 +2435,32 @@ typedef enum EMBER_ZCL_TARIFF_TYPE_DELIVERED_AND_RECEIVED_TARIFF = 0x02, } EmberAfTariffType; +// Enum for TemperatureDisplayMode typedef enum { - EMBER_ZCL_TEMPERATURE_DISPLAY_MODE_CELSIUS = 0x00, - EMBER_ZCL_TEMPERATURE_DISPLAY_MODE_FAHRENHEIT = 0x01, + EMBER_ZCL_TEMPERATURE_DISPLAY_MODE_CELSIUS = 0x0, + EMBER_ZCL_TEMPERATURE_DISPLAY_MODE_FAHRENHEIT = 0x1, } EmberAfTemperatureDisplayMode; +// Enum for TemperatureSetpointHold typedef enum { EMBER_ZCL_TEMPERATURE_SETPOINT_HOLD_SETPOINT_HOLD_OFF = 0x00, EMBER_ZCL_TEMPERATURE_SETPOINT_HOLD_SETPOINT_HOLD_ON = 0x01, } EmberAfTemperatureSetpointHold; +// Enum for ThermostatControlSequence typedef enum { - EMBER_ZCL_THERMOSTAT_CONTROL_SEQUENCE_COOLING_ONLY = 0x00, - EMBER_ZCL_THERMOSTAT_CONTROL_SEQUENCE_COOLING_WITH_REHEAT = 0x01, - EMBER_ZCL_THERMOSTAT_CONTROL_SEQUENCE_HEATING_ONLY = 0x02, - EMBER_ZCL_THERMOSTAT_CONTROL_SEQUENCE_HEATING_WITH_REHEAT = 0x03, - EMBER_ZCL_THERMOSTAT_CONTROL_SEQUENCE_COOLING_AND_HEATING = 0x04, - EMBER_ZCL_THERMOSTAT_CONTROL_SEQUENCE_COOLING_AND_HEATING_WITH_REHEAT = 0x05, + EMBER_ZCL_THERMOSTAT_CONTROL_SEQUENCE_COOLING_ONLY = 0x0, + EMBER_ZCL_THERMOSTAT_CONTROL_SEQUENCE_COOLING_WITH_REHEAT = 0x1, + EMBER_ZCL_THERMOSTAT_CONTROL_SEQUENCE_HEATING_ONLY = 0x2, + EMBER_ZCL_THERMOSTAT_CONTROL_SEQUENCE_HEATING_WITH_REHEAT = 0x3, + EMBER_ZCL_THERMOSTAT_CONTROL_SEQUENCE_COOLING_AND_HEATING = 0x4, + EMBER_ZCL_THERMOSTAT_CONTROL_SEQUENCE_COOLING_AND_HEATING_WITH_REHEAT = 0x5, } EmberAfThermostatControlSequence; +// Enum for ThermostatRunningMode typedef enum { EMBER_ZCL_THERMOSTAT_RUNNING_MODE_OFF = 0x00, @@ -2290,17 +2468,19 @@ typedef enum EMBER_ZCL_THERMOSTAT_RUNNING_MODE_HEAT = 0x04, } EmberAfThermostatRunningMode; +// Enum for ThermostatSystemMode typedef enum { - EMBER_ZCL_THERMOSTAT_SYSTEM_MODE_OFF = 0x00, - EMBER_ZCL_THERMOSTAT_SYSTEM_MODE_AUTO = 0x01, - EMBER_ZCL_THERMOSTAT_SYSTEM_MODE_COOL = 0x03, - EMBER_ZCL_THERMOSTAT_SYSTEM_MODE_HEAT = 0x04, - EMBER_ZCL_THERMOSTAT_SYSTEM_MODE_EMERGENCY_HEATING = 0x05, - EMBER_ZCL_THERMOSTAT_SYSTEM_MODE_PRECOOLING = 0x06, - EMBER_ZCL_THERMOSTAT_SYSTEM_MODE_FAN_ONLY = 0x07, + EMBER_ZCL_THERMOSTAT_SYSTEM_MODE_OFF = 0x0, + EMBER_ZCL_THERMOSTAT_SYSTEM_MODE_AUTO = 0x1, + EMBER_ZCL_THERMOSTAT_SYSTEM_MODE_COOL = 0x3, + EMBER_ZCL_THERMOSTAT_SYSTEM_MODE_HEAT = 0x4, + EMBER_ZCL_THERMOSTAT_SYSTEM_MODE_EMERGENCY_HEATING = 0x5, + EMBER_ZCL_THERMOSTAT_SYSTEM_MODE_PRECOOLING = 0x6, + EMBER_ZCL_THERMOSTAT_SYSTEM_MODE_FAN_ONLY = 0x7, } EmberAfThermostatSystemMode; +// Enum for TierBlockMode typedef enum { EMBER_ZCL_TIER_BLOCK_MODE_ACTIVE_BLOCK = 0x00, @@ -2309,12 +2489,14 @@ typedef enum EMBER_ZCL_TIER_BLOCK_MODE_NOT_USED = 0xFF, } EmberAfTierBlockMode; +// Enum for TimeEncoding typedef enum { EMBER_ZCL_TIME_ENCODING_RELATIVE = 0x00, EMBER_ZCL_TIME_ENCODING_ABSOLUTE = 0x40, } EmberAfTimeEncoding; +// Enum for TunnelingProtocolId typedef enum { EMBER_ZCL_TUNNELING_PROTOCOL_ID_DLMS_COSEM = 0x00, @@ -2324,9 +2506,12 @@ typedef enum EMBER_ZCL_TUNNELING_PROTOCOL_ID_SML = 0x04, EMBER_ZCL_TUNNELING_PROTOCOL_ID_CLIMATE_TALK = 0x05, EMBER_ZCL_TUNNELING_PROTOCOL_ID_GB_HRGP = 0x06, + EMBER_ZCL_TUNNELING_PROTOCOL_ID_IP_V4 = 0x07, + EMBER_ZCL_TUNNELING_PROTOCOL_ID_IP_V6 = 0x08, EMBER_ZCL_TUNNELING_PROTOCOL_ID_TEST = 0xC7, } EmberAfTunnelingProtocolId; +// Enum for TunnelingTransferDataStatus typedef enum { EMBER_ZCL_TUNNELING_TRANSFER_DATA_STATUS_NO_SUCH_TUNNEL = 0x00, @@ -2334,6 +2519,7 @@ typedef enum EMBER_ZCL_TUNNELING_TRANSFER_DATA_STATUS_DATA_OVERFLOW = 0x02, } EmberAfTunnelingTransferDataStatus; +// Enum for TunnelingTunnelStatus typedef enum { EMBER_ZCL_TUNNELING_TUNNEL_STATUS_SUCCESS = 0x00, @@ -2343,12 +2529,14 @@ typedef enum EMBER_ZCL_TUNNELING_TUNNEL_STATUS_FLOW_CONTROL_NOT_SUPPORTED = 0x04, } EmberAfTunnelingTunnelStatus; +// Enum for WanStatus typedef enum { EMBER_ZCL_WAN_STATUS_CONNECTION_TO_WAN_IS_NOT_AVAILABLE = 0x00, EMBER_ZCL_WAN_STATUS_CONNECTION_TO_WAN_IS_AVAILABLE = 0x01, } EmberAfWanStatus; +// Enum for WarningEvent typedef enum { EMBER_ZCL_WARNING_EVENT_WARNING1_OVERALL_POWER_ABOVE_AVAILABLE_POWER_LEVEL = 0x00, @@ -2358,23 +2546,26 @@ typedef enum EMBER_ZCL_WARNING_EVENT_WARNING5_OVERALL_POWER_WILL_BE_POTENTIALLY_ABOVE_AVAILABLE_POWER_LEVEL_IF_THE_APPLIANCE_STARTS = 0x04, } EmberAfWarningEvent; +// Enum for WarningMode typedef enum { - EMBER_ZCL_WARNING_MODE_STOP = 0x00, - EMBER_ZCL_WARNING_MODE_BURGLAR = 0x01, - EMBER_ZCL_WARNING_MODE_FIRE = 0x02, - EMBER_ZCL_WARNING_MODE_EMERGENCY = 0x03, - EMBER_ZCL_WARNING_MODE_POLICE_PANIC = 0x04, - EMBER_ZCL_WARNING_MODE_FIRE_PANIC = 0x05, - EMBER_ZCL_WARNING_MODE_EMERGENCY_PANIC = 0x06, + EMBER_ZCL_WARNING_MODE_STOP = 0x0, + EMBER_ZCL_WARNING_MODE_BURGLAR = 0x1, + EMBER_ZCL_WARNING_MODE_FIRE = 0x2, + EMBER_ZCL_WARNING_MODE_EMERGENCY = 0x3, + EMBER_ZCL_WARNING_MODE_POLICE_PANIC = 0x4, + EMBER_ZCL_WARNING_MODE_FIRE_PANIC = 0x5, + EMBER_ZCL_WARNING_MODE_EMERGENCY_PANIC = 0x6, } EmberAfWarningMode; +// Enum for WarningStobe typedef enum { - EMBER_ZCL_WARNING_STOBE_NO_STROBE = 0x00, - EMBER_ZCL_WARNING_STOBE_USE_STROBE = 0x01, + EMBER_ZCL_WARNING_STOBE_NO_STROBE = 0x0, + EMBER_ZCL_WARNING_STOBE_USE_STROBE = 0x1, } EmberAfWarningStobe; +// Enum for WwahIasZoneEnrollmentMode typedef enum { EMBER_ZCL_WWAH_IAS_ZONE_ENROLLMENT_MODE_TRIP_TO_PAIR = 0x00, @@ -2382,6 +2573,7 @@ typedef enum EMBER_ZCL_WWAH_IAS_ZONE_ENROLLMENT_MODE_REQUEST = 0x02, } EmberAfWwahIasZoneEnrollmentMode; +// Enum for WwahPowerNotificationReason typedef enum { EMBER_ZCL_WWAH_POWER_NOTIFICATION_REASON_UNKNOWN = 0x00, @@ -2398,6 +2590,7 @@ typedef enum EMBER_ZCL_WWAH_POWER_NOTIFICATION_REASON_BOOTLOAD_FAILURE = 0x0B, } EmberAfWwahPowerNotificationReason; +// Enum for ZigbeeInformationLogicalType typedef enum { EMBER_ZCL_ZIGBEE_INFORMATION_LOGICAL_TYPE_COORDINATOR = 0x00, @@ -2405,308 +2598,35 @@ typedef enum EMBER_ZCL_ZIGBEE_INFORMATION_LOGICAL_TYPE_END_DEVICE = 0x02, } EmberAfZigbeeInformationLogicalType; +// Enum for ZllStatus typedef enum { EMBER_ZCL_ZLL_STATUS_SUCCESS = 0x00, EMBER_ZCL_ZLL_STATUS_FAILURE = 0x01, } EmberAfZllStatus; -#define EMBER_AF_SHADE_CLOSURE_STATUS_OPERATIONAL (0x01) -#define EMBER_AF_SHADE_CLOSURE_STATUS_ADJUSTING (0x02) -#define EMBER_AF_SHADE_CLOSURE_STATUS_ADJUSTING_OFFSET (1) -#define EMBER_AF_SHADE_CLOSURE_STATUS_OPENING (0x04) -#define EMBER_AF_SHADE_CLOSURE_STATUS_OPENING_OFFSET (2) -#define EMBER_AF_SHADE_CLOSURE_STATUS_MOTOR_OPENING (0x08) -#define EMBER_AF_SHADE_CLOSURE_STATUS_MOTOR_OPENING_OFFSET (3) -#define EMBER_AF_ALARM_MASK_GENERAL_HW_FAULT (0x01) -#define EMBER_AF_ALARM_MASK_GENERAL_SW_FAULT (0x02) +#define EMBER_AF_ALARM_MASK_GENERAL_HW_FAULT (0x1) +#define EMBER_AF_ALARM_MASK_GENERAL_HW_FAULT_OFFSET (0) +#define EMBER_AF_ALARM_MASK_GENERAL_SW_FAULT (0x2) #define EMBER_AF_ALARM_MASK_GENERAL_SW_FAULT_OFFSET (1) -#define EMBER_AF_RESTART_OPTIONS_START_MODE1 (0x01) -#define EMBER_AF_RESTART_OPTIONS_STARTUP_MODE2 (0x02) -#define EMBER_AF_RESTART_OPTIONS_STARTUP_MODE2_OFFSET (1) -#define EMBER_AF_RESTART_OPTIONS_STARTUP_MODE3 (0x04) -#define EMBER_AF_RESTART_OPTIONS_STARTUP_MODE3_OFFSET (2) -#define EMBER_AF_RESTART_OPTIONS_IMMEDIATE (0x08) -#define EMBER_AF_RESTART_OPTIONS_IMMEDIATE_OFFSET (3) -#define EMBER_AF_RESET_OPTIONS_RESET_CURRENT (0x01) -#define EMBER_AF_RESET_OPTIONS_RESET_ALL (0x02) -#define EMBER_AF_RESET_OPTIONS_RESET_ALL_OFFSET (1) -#define EMBER_AF_RESET_OPTIONS_ERASE_INDEX (0x04) -#define EMBER_AF_RESET_OPTIONS_ERASE_INDEX_OFFSET (2) -#define EMBER_AF_MAINS_ALARM_MASK_VOLTAGE_TOO_LOW (0x01) -#define EMBER_AF_MAINS_ALARM_MASK_VOLTAGE_TOO_HIGH (0x02) -#define EMBER_AF_MAINS_ALARM_MASK_VOLTAGE_TOO_HIGH_OFFSET (1) -#define EMBER_AF_MAINS_ALARM_MASK_MAINS_POWER_SUPPLY_LOST (0x04) -#define EMBER_AF_MAINS_ALARM_MASK_MAINS_POWER_SUPPLY_LOST_OFFSET (2) -#define EMBER_AF_BATTERY_ALARM_MASK_VOLTAGE_TOO_LOW (0x01) -#define EMBER_AF_DEVICE_TEMP_ALARM_MASK_TOO_LOW (0x01) -#define EMBER_AF_DEVICE_TEMP_ALARM_MASK_TOO_HIGH (0x02) -#define EMBER_AF_DEVICE_TEMP_ALARM_MASK_TOO_HIGH_OFFSET (1) -#define EMBER_AF_TIME_STATUS_MASK_MASTER_CLOCK (0x01) -#define EMBER_AF_TIME_STATUS_MASK_SYNCHRONIZED (0x02) -#define EMBER_AF_TIME_STATUS_MASK_SYNCHRONIZED_OFFSET (1) -#define EMBER_AF_TIME_STATUS_MASK_MASTER_ZONE_DST (0x04) -#define EMBER_AF_TIME_STATUS_MASK_MASTER_ZONE_DST_OFFSET (2) -#define EMBER_AF_TIME_STATUS_MASK_SUPERSEDING (0x08) -#define EMBER_AF_TIME_STATUS_MASK_SUPERSEDING_OFFSET (3) -#define EMBER_AF_LOCATION_TYPE_ABSOLUTE (0x01) -#define EMBER_AF_LOCATION_TYPE2_D (0x02) -#define EMBER_AF_LOCATION_TYPE2_D_OFFSET (1) -#define EMBER_AF_LOCATION_TYPE_COORDINATE_SYSTEM (0x0C) -#define EMBER_AF_LOCATION_TYPE_COORDINATE_SYSTEM_OFFSET (2) -#define EMBER_AF_GET_LOCATION_DATA_FLAGS_ABSOLUTE_ONLY (0x01) -#define EMBER_AF_GET_LOCATION_DATA_FLAGS_RECALCULATE (0x02) -#define EMBER_AF_GET_LOCATION_DATA_FLAGS_RECALCULATE_OFFSET (1) -#define EMBER_AF_GET_LOCATION_DATA_FLAGS_BROADCAST (0x04) -#define EMBER_AF_GET_LOCATION_DATA_FLAGS_BROADCAST_OFFSET (2) -#define EMBER_AF_GET_LOCATION_DATA_FLAGS_BROADCAST_RESPONSE (0x08) -#define EMBER_AF_GET_LOCATION_DATA_FLAGS_BROADCAST_RESPONSE_OFFSET (3) -#define EMBER_AF_GET_LOCATION_DATA_FLAGS_COMPACT_RESPONSE (0x10) -#define EMBER_AF_GET_LOCATION_DATA_FLAGS_COMPACT_RESPONSE_OFFSET (4) -#define EMBER_AF_PUMP_STATUS_DEVICE_FAULT (0x0001) -#define EMBER_AF_PUMP_STATUS_SUPPLYFAULT (0x0002) -#define EMBER_AF_PUMP_STATUS_SUPPLYFAULT_OFFSET (1) -#define EMBER_AF_PUMP_STATUS_SPEED_LOW (0x0004) -#define EMBER_AF_PUMP_STATUS_SPEED_LOW_OFFSET (2) -#define EMBER_AF_PUMP_STATUS_SPEED_HIGH (0x0008) -#define EMBER_AF_PUMP_STATUS_SPEED_HIGH_OFFSET (3) -#define EMBER_AF_PUMP_STATUS_LOCAL_OVERRIDE (0x0010) -#define EMBER_AF_PUMP_STATUS_LOCAL_OVERRIDE_OFFSET (4) -#define EMBER_AF_PUMP_STATUS_RUNNING (0x0020) -#define EMBER_AF_PUMP_STATUS_RUNNING_OFFSET (5) -#define EMBER_AF_PUMP_STATUS_REMOTE_PRESSURE (0x0040) -#define EMBER_AF_PUMP_STATUS_REMOTE_PRESSURE_OFFSET (6) -#define EMBER_AF_PUMP_STATUS_REMOTE_FLOW (0x0080) -#define EMBER_AF_PUMP_STATUS_REMOTE_FLOW_OFFSET (7) -#define EMBER_AF_PUMP_STATUS_REMOTE_TEMPERATURE (0x0100) -#define EMBER_AF_PUMP_STATUS_REMOTE_TEMPERATURE_OFFSET (8) -#define EMBER_AF_PUMP_ALARM_MASK_SUPPLY_VOLTAGE_TOO_LOW (0x0001) -#define EMBER_AF_PUMP_ALARM_MASK_SUPPLY_VOLTAGE_TOO_HIGH (0x0002) -#define EMBER_AF_PUMP_ALARM_MASK_SUPPLY_VOLTAGE_TOO_HIGH_OFFSET (1) -#define EMBER_AF_PUMP_ALARM_MASK_POWER_MISSING_PHASE (0x0004) -#define EMBER_AF_PUMP_ALARM_MASK_POWER_MISSING_PHASE_OFFSET (2) -#define EMBER_AF_PUMP_ALARM_MASK_SYSTEM_PRESSURE_TOO_LOW (0x0008) -#define EMBER_AF_PUMP_ALARM_MASK_SYSTEM_PRESSURE_TOO_LOW_OFFSET (3) -#define EMBER_AF_PUMP_ALARM_MASK_SYSTEM_PRESSURE_TOO_HIGH (0x0010) -#define EMBER_AF_PUMP_ALARM_MASK_SYSTEM_PRESSURE_TOO_HIGH_OFFSET (4) -#define EMBER_AF_PUMP_ALARM_MASK_DRY_RUNNING (0x0020) -#define EMBER_AF_PUMP_ALARM_MASK_DRY_RUNNING_OFFSET (5) -#define EMBER_AF_PUMP_ALARM_MASK_MOTOR_TEMPERATURE_TOO_HIGH (0x0040) -#define EMBER_AF_PUMP_ALARM_MASK_MOTOR_TEMPERATURE_TOO_HIGH_OFFSET (6) -#define EMBER_AF_PUMP_ALARM_MASK_PUMP_MOTOR_HAS_FATAL_FAILURE (0x0080) -#define EMBER_AF_PUMP_ALARM_MASK_PUMP_MOTOR_HAS_FATAL_FAILURE_OFFSET (7) -#define EMBER_AF_PUMP_ALARM_MASK_ELECTRONIC_TEMPERATURE_TOO_HIGH (0x0100) -#define EMBER_AF_PUMP_ALARM_MASK_ELECTRONIC_TEMPERATURE_TOO_HIGH_OFFSET (8) -#define EMBER_AF_PUMP_ALARM_MASK_PUMP_BLOCKED (0x0200) -#define EMBER_AF_PUMP_ALARM_MASK_PUMP_BLOCKED_OFFSET (9) -#define EMBER_AF_PUMP_ALARM_MASK_SENSOR_FAILURE (0x0400) -#define EMBER_AF_PUMP_ALARM_MASK_SENSOR_FAILURE_OFFSET (10) -#define EMBER_AF_PUMP_ALARM_MASK_ELECTRONIC_NON_FATAL_FAILURE (0x0800) -#define EMBER_AF_PUMP_ALARM_MASK_ELECTRONIC_NON_FATAL_FAILURE_OFFSET (11) -#define EMBER_AF_PUMP_ALARM_MASK_ELECTRONIC_FATAL_FAILURE (0x1000) -#define EMBER_AF_PUMP_ALARM_MASK_ELECTRONIC_FATAL_FAILURE_OFFSET (12) -#define EMBER_AF_PUMP_ALARM_MASK_GENERAL_FAULT (0x2000) -#define EMBER_AF_PUMP_ALARM_MASK_GENERAL_FAULT_OFFSET (13) -#define EMBER_AF_THERMOSTAT_OCCUPANCY_OCCUPIED (0x01) -#define EMBER_AF_THERMOSTAT_SENSING_LOCAL_TEMP_SENSED_REMOTELY (0x01) -#define EMBER_AF_THERMOSTAT_SENSING_OUTDOOR_TEMP_SENSED_REMOTELY (0x02) -#define EMBER_AF_THERMOSTAT_SENSING_OUTDOOR_TEMP_SENSED_REMOTELY_OFFSET (1) -#define EMBER_AF_THERMOSTAT_SENSING_OCCUPANCY_SENSED_REMOTELY (0x04) -#define EMBER_AF_THERMOSTAT_SENSING_OCCUPANCY_SENSED_REMOTELY_OFFSET (2) -#define EMBER_AF_THERMOSTAT_ALARM_MASK_INITIALIZATION_FAILURE (0x01) -#define EMBER_AF_THERMOSTAT_ALARM_MASK_HARDWARE_FAILURE (0x02) -#define EMBER_AF_THERMOSTAT_ALARM_MASK_HARDWARE_FAILURE_OFFSET (1) -#define EMBER_AF_THERMOSTAT_ALARM_MASK_SELFCALIBRATION_FAILURE (0x04) -#define EMBER_AF_THERMOSTAT_ALARM_MASK_SELFCALIBRATION_FAILURE_OFFSET (2) -#define EMBER_AF_BALLAST_STATUS_NON_OPERATIONAL (0x01) -#define EMBER_AF_BALLAST_STATUS_LAMP_NOT_IN_SOCKET (0x02) -#define EMBER_AF_BALLAST_STATUS_LAMP_NOT_IN_SOCKET_OFFSET (1) -#define EMBER_AF_LAMP_ALARM_MODE_LAMP_BURN_HOURS (0x01) -#define EMBER_AF_OCCUPANCY_OCCUPIED (0x01) -#define EMBER_AF_IAS_ZONE_STATUS_ALARM1 (0x0001) -#define EMBER_AF_IAS_ZONE_STATUS_ALARM2 (0x0002) -#define EMBER_AF_IAS_ZONE_STATUS_ALARM2_OFFSET (1) -#define EMBER_AF_IAS_ZONE_STATUS_TAMPER (0x0004) -#define EMBER_AF_IAS_ZONE_STATUS_TAMPER_OFFSET (2) -#define EMBER_AF_IAS_ZONE_STATUS_BATTERY (0x0008) -#define EMBER_AF_IAS_ZONE_STATUS_BATTERY_OFFSET (3) -#define EMBER_AF_IAS_ZONE_STATUS_SUPERVISION_REPORTS (0x0010) -#define EMBER_AF_IAS_ZONE_STATUS_SUPERVISION_REPORTS_OFFSET (4) -#define EMBER_AF_IAS_ZONE_STATUS_RESTORE_REPORTS (0x0020) -#define EMBER_AF_IAS_ZONE_STATUS_RESTORE_REPORTS_OFFSET (5) -#define EMBER_AF_IAS_ZONE_STATUS_TROUBLE (0x0040) -#define EMBER_AF_IAS_ZONE_STATUS_TROUBLE_OFFSET (6) -#define EMBER_AF_IAS_ZONE_STATUS_A_C (0x0080) -#define EMBER_AF_IAS_ZONE_STATUS_A_C_OFFSET (7) -#define EMBER_AF_IAS_ZONE_STATUS_TEST (0x0100) -#define EMBER_AF_IAS_ZONE_STATUS_TEST_OFFSET (8) -#define EMBER_AF_IAS_ZONE_STATUS_BATTERY_DEFECT (0x0200) -#define EMBER_AF_IAS_ZONE_STATUS_BATTERY_DEFECT_OFFSET (9) -#define EMBER_AF_WARNING_INFO_MODE (0xF0) -#define EMBER_AF_WARNING_INFO_MODE_OFFSET (4) -#define EMBER_AF_WARNING_INFO_STROBE (0x0C) -#define EMBER_AF_WARNING_INFO_STROBE_OFFSET (2) -#define EMBER_AF_WARNING_INFO_SIREN_LEVEL (0x03) -#define EMBER_AF_SQUAWK_INFO_MODE (0xF0) -#define EMBER_AF_SQUAWK_INFO_MODE_OFFSET (4) -#define EMBER_AF_SQUAWK_INFO_STROBE (0x08) -#define EMBER_AF_SQUAWK_INFO_STROBE_OFFSET (3) -#define EMBER_AF_SQUAWK_INFO_LEVEL (0x03) -#define EMBER_AF_OCCUPANCY_SENSOR_TYPE_BITMAP_PIR (0x01) -#define EMBER_AF_OCCUPANCY_SENSOR_TYPE_BITMAP_ULTRASONIC (0x02) -#define EMBER_AF_OCCUPANCY_SENSOR_TYPE_BITMAP_ULTRASONIC_OFFSET (1) -#define EMBER_AF_OCCUPANCY_SENSOR_TYPE_BITMAP_PHYSICAL_CONTACT (0x04) -#define EMBER_AF_OCCUPANCY_SENSOR_TYPE_BITMAP_PHYSICAL_CONTACT_OFFSET (2) -#define EMBER_AF_ENERGY_FORMATTING_NUMBER_OF_DIGITS_TO_THE_RIGHT_OF_THE_DECIMAL_POINT (0x07) -#define EMBER_AF_ENERGY_FORMATTING_NUMBER_OF_DIGITS_TO_THE_LEFT_OF_THE_DECIMAL_POINT (0x78) -#define EMBER_AF_ENERGY_FORMATTING_NUMBER_OF_DIGITS_TO_THE_LEFT_OF_THE_DECIMAL_POINT_OFFSET (3) -#define EMBER_AF_ENERGY_FORMATTING_SUPPRESS_LEADING_ZEROS (0x80) -#define EMBER_AF_ENERGY_FORMATTING_SUPPRESS_LEADING_ZEROS_OFFSET (7) -#define EMBER_AF_REMOTE_ENABLE_FLAGS_AND_DEVICE_STATUS2_REMOTE_ENABLE_FLAGS (0x0F) -#define EMBER_AF_REMOTE_ENABLE_FLAGS_AND_DEVICE_STATUS2_DEVICE_STATUS2_STRUCTURE (0xF0) -#define EMBER_AF_REMOTE_ENABLE_FLAGS_AND_DEVICE_STATUS2_DEVICE_STATUS2_STRUCTURE_OFFSET (4) -#define EMBER_AF_START_TIME_MINUTES (0x003F) -#define EMBER_AF_START_TIME_TIME_ENCODING (0x00C0) -#define EMBER_AF_START_TIME_TIME_ENCODING_OFFSET (6) -#define EMBER_AF_START_TIME_HOURS (0xFF00) -#define EMBER_AF_START_TIME_HOURS_OFFSET (8) -#define EMBER_AF_DOOR_LOCK_DAY_OF_WEEK_SUNDAY (0x01) -#define EMBER_AF_DOOR_LOCK_DAY_OF_WEEK_MONDAY (0x02) -#define EMBER_AF_DOOR_LOCK_DAY_OF_WEEK_MONDAY_OFFSET (1) -#define EMBER_AF_DOOR_LOCK_DAY_OF_WEEK_TUESDAY (0x04) -#define EMBER_AF_DOOR_LOCK_DAY_OF_WEEK_TUESDAY_OFFSET (2) -#define EMBER_AF_DOOR_LOCK_DAY_OF_WEEK_WEDNESDAY (0x08) -#define EMBER_AF_DOOR_LOCK_DAY_OF_WEEK_WEDNESDAY_OFFSET (3) -#define EMBER_AF_DOOR_LOCK_DAY_OF_WEEK_THURSDAY (0x10) -#define EMBER_AF_DOOR_LOCK_DAY_OF_WEEK_THURSDAY_OFFSET (4) -#define EMBER_AF_DOOR_LOCK_DAY_OF_WEEK_FRIDAY (0x20) -#define EMBER_AF_DOOR_LOCK_DAY_OF_WEEK_FRIDAY_OFFSET (5) -#define EMBER_AF_DOOR_LOCK_DAY_OF_WEEK_SATURDAY (0x40) -#define EMBER_AF_DOOR_LOCK_DAY_OF_WEEK_SATURDAY_OFFSET (6) -#define EMBER_AF_THERMOSTAT_RUNNING_STATE_HEAT_STATE_ON (0x0001) -#define EMBER_AF_THERMOSTAT_RUNNING_STATE_COOL_STATE_ON (0x0002) -#define EMBER_AF_THERMOSTAT_RUNNING_STATE_COOL_STATE_ON_OFFSET (1) -#define EMBER_AF_THERMOSTAT_RUNNING_STATE_FAN_STATE_ON (0x0004) -#define EMBER_AF_THERMOSTAT_RUNNING_STATE_FAN_STATE_ON_OFFSET (2) -#define EMBER_AF_THERMOSTAT_RUNNING_STATE_HEAT_SECOND_STAGE_STATE_ON (0x0008) -#define EMBER_AF_THERMOSTAT_RUNNING_STATE_HEAT_SECOND_STAGE_STATE_ON_OFFSET (3) -#define EMBER_AF_THERMOSTAT_RUNNING_STATE_COOL_SECOND_STAGE_STATE_ON (0x0010) -#define EMBER_AF_THERMOSTAT_RUNNING_STATE_COOL_SECOND_STAGE_STATE_ON_OFFSET (4) -#define EMBER_AF_THERMOSTAT_RUNNING_STATE_FAN_SECOND_STAGE_STATE_ON (0x0020) -#define EMBER_AF_THERMOSTAT_RUNNING_STATE_FAN_SECOND_STAGE_STATE_ON_OFFSET (5) -#define EMBER_AF_THERMOSTAT_RUNNING_STATE_FAN_THIRD_STAGE_STATE_ON (0x0040) -#define EMBER_AF_THERMOSTAT_RUNNING_STATE_FAN_THIRD_STAGE_STATE_ON_OFFSET (6) -#define EMBER_AF_DAY_OF_WEEK_SUNDAY (0x01) -#define EMBER_AF_DAY_OF_WEEK_MONDAY (0x02) -#define EMBER_AF_DAY_OF_WEEK_MONDAY_OFFSET (1) -#define EMBER_AF_DAY_OF_WEEK_TUESDAY (0x04) -#define EMBER_AF_DAY_OF_WEEK_TUESDAY_OFFSET (2) -#define EMBER_AF_DAY_OF_WEEK_WEDNESDAY (0x08) -#define EMBER_AF_DAY_OF_WEEK_WEDNESDAY_OFFSET (3) -#define EMBER_AF_DAY_OF_WEEK_THURSDAY (0x10) -#define EMBER_AF_DAY_OF_WEEK_THURSDAY_OFFSET (4) -#define EMBER_AF_DAY_OF_WEEK_FRIDAY (0x20) -#define EMBER_AF_DAY_OF_WEEK_FRIDAY_OFFSET (5) -#define EMBER_AF_DAY_OF_WEEK_SATURDAY (0x40) -#define EMBER_AF_DAY_OF_WEEK_SATURDAY_OFFSET (6) -#define EMBER_AF_DAY_OF_WEEK_AWAY_OR_VACATION (0x80) -#define EMBER_AF_DAY_OF_WEEK_AWAY_OR_VACATION_OFFSET (7) -#define EMBER_AF_MODE_FOR_SEQUENCE_HEAT_SETPOINT_FIELD_PRESENT (0x01) -#define EMBER_AF_MODE_FOR_SEQUENCE_COOL_SETPOINT_FIELD_PRESENT (0x02) -#define EMBER_AF_MODE_FOR_SEQUENCE_COOL_SETPOINT_FIELD_PRESENT_OFFSET (1) +#define EMBER_AF_ALERT_COUNT_NUMBER_OF_ALERTS (0x0F) +#define EMBER_AF_ALERT_COUNT_NUMBER_OF_ALERTS_OFFSET (0) +#define EMBER_AF_ALERT_COUNT_TYPE_OF_ALERT (0xF0) +#define EMBER_AF_ALERT_COUNT_TYPE_OF_ALERT_OFFSET (4) #define EMBER_AF_ALERT_STRUCTURE_ALERT_ID (0x0000FF) +#define EMBER_AF_ALERT_STRUCTURE_ALERT_ID_OFFSET (0) #define EMBER_AF_ALERT_STRUCTURE_CATEGORY (0x000F00) #define EMBER_AF_ALERT_STRUCTURE_CATEGORY_OFFSET (8) #define EMBER_AF_ALERT_STRUCTURE_PRESENCE_RECOVERY (0x003000) #define EMBER_AF_ALERT_STRUCTURE_PRESENCE_RECOVERY_OFFSET (12) -#define EMBER_AF_ALERT_COUNT_NUMBER_OF_ALERTS (0x0F) -#define EMBER_AF_ALERT_COUNT_TYPE_OF_ALERT (0xF0) -#define EMBER_AF_ALERT_COUNT_TYPE_OF_ALERT_OFFSET (4) -#define EMBER_AF_BARRIER_CONTROL_CAPABILITIES_PARTIAL_BARRIER (0x01) -#define EMBER_AF_BARRIER_CONTROL_SAFETY_STATUS_REMOTE_LOCKOUT (0x0001) -#define EMBER_AF_BARRIER_CONTROL_SAFETY_STATUS_TEMPER_DETECTED (0x0002) -#define EMBER_AF_BARRIER_CONTROL_SAFETY_STATUS_TEMPER_DETECTED_OFFSET (1) -#define EMBER_AF_BARRIER_CONTROL_SAFETY_STATUS_FAILED_COMMUNICATION (0x0004) -#define EMBER_AF_BARRIER_CONTROL_SAFETY_STATUS_FAILED_COMMUNICATION_OFFSET (2) -#define EMBER_AF_BARRIER_CONTROL_SAFETY_STATUS_POSITION_FAILURE (0x0008) -#define EMBER_AF_BARRIER_CONTROL_SAFETY_STATUS_POSITION_FAILURE_OFFSET (3) -#define EMBER_AF_BLOCK_PERIOD_DURATION_TYPE_TIMEBASE (0x0F) -#define EMBER_AF_BLOCK_PERIOD_DURATION_TYPE_CONTROL (0xF0) -#define EMBER_AF_BLOCK_PERIOD_DURATION_TYPE_CONTROL_OFFSET (4) -#define EMBER_AF_CONVERSION_FACTOR_TRAILING_DIGIT_TRAILING_DIGIT (0xF0) -#define EMBER_AF_CONVERSION_FACTOR_TRAILING_DIGIT_TRAILING_DIGIT_OFFSET (4) -#define EMBER_AF_CALORIFIC_VALUE_TRAILING_DIGIT_TRAILING_DIGIT (0xF0) -#define EMBER_AF_CALORIFIC_VALUE_TRAILING_DIGIT_TRAILING_DIGIT_OFFSET (4) -#define EMBER_AF_PRICE_TRAILING_DIGIT_TRAILING_DIGIT (0xF0) -#define EMBER_AF_PRICE_TRAILING_DIGIT_TRAILING_DIGIT_OFFSET (4) -#define EMBER_AF_C_O2_TRAILING_DIGIT_TRAILING_DIGIT (0xF0) -#define EMBER_AF_C_O2_TRAILING_DIGIT_TRAILING_DIGIT_OFFSET (4) -#define EMBER_AF_PRICE_TRAILING_DIGIT_AND_PRICE_TIER_PRICE_TIER (0x0F) -#define EMBER_AF_PRICE_TRAILING_DIGIT_AND_PRICE_TIER_TRAILING_DIGIT (0xF0) -#define EMBER_AF_PRICE_TRAILING_DIGIT_AND_PRICE_TIER_TRAILING_DIGIT_OFFSET (4) -#define EMBER_AF_PRICE_NUMBER_OF_PRICE_TIERS_AND_REGISTER_TIER_REGISTER_TIER (0x0F) -#define EMBER_AF_PRICE_NUMBER_OF_PRICE_TIERS_AND_REGISTER_TIER_NUMBER_OF_PRICE_TIERS (0xF0) -#define EMBER_AF_PRICE_NUMBER_OF_PRICE_TIERS_AND_REGISTER_TIER_NUMBER_OF_PRICE_TIERS_OFFSET (4) #define EMBER_AF_ALTERNATE_COST_TRAILING_DIGIT_TRAILING_DIGIT (0xF0) #define EMBER_AF_ALTERNATE_COST_TRAILING_DIGIT_TRAILING_DIGIT_OFFSET (4) -#define EMBER_AF_PRICE_CONTROL_MASK_PRICE_ACKNOWLEDGEMENT_REQUIRED (0x01) -#define EMBER_AF_PRICE_CONTROL_MASK_TOTAL_TIERS_EXCEEDS15 (0x02) -#define EMBER_AF_PRICE_CONTROL_MASK_TOTAL_TIERS_EXCEEDS15_OFFSET (1) -#define EMBER_AF_BLOCK_PERIOD_CONTROL_PRICE_ACKNOWLEDGEMENT_REQUIREMENT (0x01) -#define EMBER_AF_BLOCK_PERIOD_CONTROL_REPEATING_BLOCK (0x02) -#define EMBER_AF_BLOCK_PERIOD_CONTROL_REPEATING_BLOCK_OFFSET (1) -#define EMBER_AF_TARIFF_TYPE_CHARGING_SCHEME_TARIFF_TYPE (0x0F) -#define EMBER_AF_TARIFF_TYPE_CHARGING_SCHEME_TARIFF_CHARGING_SCHEME (0xF0) -#define EMBER_AF_TARIFF_TYPE_CHARGING_SCHEME_TARIFF_CHARGING_SCHEME_OFFSET (4) -#define EMBER_AF_PRICE_MATRIX_SUB_PAYLOAD_CONTROL_TOU_BASED (0x01) -#define EMBER_AF_BLOCK_THRESHOLD_SUB_PAYLOAD_CONTROL_APPLY_TO_ALL_TOU_TIERS_OR_WHEN_BLOCK_ONLY_CHARGING (0x01) -#define EMBER_AF_BILLING_PERIOD_DURATION_DURATION (0x3FFFFF) -#define EMBER_AF_BILLING_PERIOD_DURATION_UNITS (0xC00000) -#define EMBER_AF_BILLING_PERIOD_DURATION_UNITS_OFFSET (22) -#define EMBER_AF_BILLING_PERIOD_DURATION_TYPE_TIMEBASE (0x0F) -#define EMBER_AF_BILLING_PERIOD_DURATION_TYPE_CONTROL (0xF0) -#define EMBER_AF_BILLING_PERIOD_DURATION_TYPE_CONTROL_OFFSET (4) -#define EMBER_AF_BILL_TRAILING_DIGIT_TRAILING_DIGIT (0xF0) -#define EMBER_AF_BILL_TRAILING_DIGIT_TRAILING_DIGIT_OFFSET (4) -#define EMBER_AF_CURRENCY_CHANGE_CONTROL_CLEAR_BILLING_INFO (0x00000001) -#define EMBER_AF_CURRENCY_CHANGE_CONTROL_CONVERT_BILLING_INFO_USING_NEW_CURRENCY (0x00000002) -#define EMBER_AF_CURRENCY_CHANGE_CONTROL_CONVERT_BILLING_INFO_USING_NEW_CURRENCY_OFFSET (1) -#define EMBER_AF_CURRENCY_CHANGE_CONTROL_CLEAR_OLD_CONSUMPTION_DATA (0x00000004) -#define EMBER_AF_CURRENCY_CHANGE_CONTROL_CLEAR_OLD_CONSUMPTION_DATA_OFFSET (2) -#define EMBER_AF_CURRENCY_CHANGE_CONTROL_CONVERT_OLD_CONSUMPTION_DATA_USING_NEW_CURRENCY (0x00000008) -#define EMBER_AF_CURRENCY_CHANGE_CONTROL_CONVERT_OLD_CONSUMPTION_DATA_USING_NEW_CURRENCY_OFFSET (3) -#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER1 (0x0002) -#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER1_OFFSET (1) -#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER2 (0x0004) -#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER2_OFFSET (2) -#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER3 (0x0008) -#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER3_OFFSET (3) -#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER4 (0x0010) -#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER4_OFFSET (4) -#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER5 (0x0020) -#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER5_OFFSET (5) -#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER6 (0x0040) -#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER6_OFFSET (6) -#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER7 (0x0080) -#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER7_OFFSET (7) -#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER8 (0x0100) -#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER8_OFFSET (8) -#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER9 (0x0200) -#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER9_OFFSET (9) -#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER10 (0x0400) -#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER10_OFFSET (10) -#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER11 (0x0800) -#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER11_OFFSET (11) -#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER12 (0x1000) -#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER12_OFFSET (12) -#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER13 (0x2000) -#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER13_OFFSET (13) -#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER14 (0x4000) -#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER14_OFFSET (14) -#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER15 (0x8000) -#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER15_OFFSET (15) +#define EMBER_AF_AMI_CANCEL_CONTROL_TERMINATE_WITH_RANDOMIZATION (0x01) +#define EMBER_AF_AMI_CANCEL_CONTROL_TERMINATE_WITH_RANDOMIZATION_OFFSET (0) #define EMBER_AF_AMI_COMMAND_OPTIONS_REQUEST_RX_ON_WHEN_IDLE (0x01) +#define EMBER_AF_AMI_COMMAND_OPTIONS_REQUEST_RX_ON_WHEN_IDLE_OFFSET (0) #define EMBER_AF_AMI_DEVICE_CLASS_HVAC_COMPRESSOR_OR_FURNACE (0x0001) +#define EMBER_AF_AMI_DEVICE_CLASS_HVAC_COMPRESSOR_OR_FURNACE_OFFSET (0) #define EMBER_AF_AMI_DEVICE_CLASS_STRIP_HEAT_BASEBOARD_HEAT (0x0002) #define EMBER_AF_AMI_DEVICE_CLASS_STRIP_HEAT_BASEBOARD_HEAT_OFFSET (1) #define EMBER_AF_AMI_DEVICE_CLASS_WATER_HEATER (0x0004) @@ -2730,10 +2650,11 @@ typedef enum #define EMBER_AF_AMI_DEVICE_CLASS_GENERATION_SYSTEMS (0x0800) #define EMBER_AF_AMI_DEVICE_CLASS_GENERATION_SYSTEMS_OFFSET (11) #define EMBER_AF_AMI_EVENT_CONTROL_RANDOMIZED_START_TIME (0x01) +#define EMBER_AF_AMI_EVENT_CONTROL_RANDOMIZED_START_TIME_OFFSET (0) #define EMBER_AF_AMI_EVENT_CONTROL_RANDOMIZED_END_TIME (0x02) #define EMBER_AF_AMI_EVENT_CONTROL_RANDOMIZED_END_TIME_OFFSET (1) -#define EMBER_AF_AMI_CANCEL_CONTROL_TERMINATE_WITH_RANDOMIZATION (0x01) #define EMBER_AF_AMI_METER_STATUS_CHECK_METER (0x01) +#define EMBER_AF_AMI_METER_STATUS_CHECK_METER_OFFSET (0) #define EMBER_AF_AMI_METER_STATUS_LOW_BATTERY (0x02) #define EMBER_AF_AMI_METER_STATUS_LOW_BATTERY_OFFSET (1) #define EMBER_AF_AMI_METER_STATUS_TAMPER_DETECT (0x04) @@ -2748,324 +2669,8 @@ typedef enum #define EMBER_AF_AMI_METER_STATUS_SERVICE_DISCONNECT_OPEN_OFFSET (6) #define EMBER_AF_AMI_METER_STATUS_RESERVED (0x80) #define EMBER_AF_AMI_METER_STATUS_RESERVED_OFFSET (7) -#define EMBER_AF_METERING_STATUS_ELECTRICITY_CHECK_METER (0x01) -#define EMBER_AF_METERING_STATUS_ELECTRICITY_LOW_BATTERY (0x02) -#define EMBER_AF_METERING_STATUS_ELECTRICITY_LOW_BATTERY_OFFSET (1) -#define EMBER_AF_METERING_STATUS_ELECTRICITY_TAMPER_DETECT (0x04) -#define EMBER_AF_METERING_STATUS_ELECTRICITY_TAMPER_DETECT_OFFSET (2) -#define EMBER_AF_METERING_STATUS_ELECTRICITY_POWER_FAILURE (0x08) -#define EMBER_AF_METERING_STATUS_ELECTRICITY_POWER_FAILURE_OFFSET (3) -#define EMBER_AF_METERING_STATUS_ELECTRICITY_POWER_QUALITY (0x10) -#define EMBER_AF_METERING_STATUS_ELECTRICITY_POWER_QUALITY_OFFSET (4) -#define EMBER_AF_METERING_STATUS_ELECTRICITY_LEAK_DETECT (0x20) -#define EMBER_AF_METERING_STATUS_ELECTRICITY_LEAK_DETECT_OFFSET (5) -#define EMBER_AF_METERING_STATUS_ELECTRICITY_SERVICE_DISCONNECT_OPEN (0x40) -#define EMBER_AF_METERING_STATUS_ELECTRICITY_SERVICE_DISCONNECT_OPEN_OFFSET (6) -#define EMBER_AF_METERING_STATUS_ELECTRICITY_RESERVED (0x80) -#define EMBER_AF_METERING_STATUS_ELECTRICITY_RESERVED_OFFSET (7) -#define EMBER_AF_METERING_STATUS_GAS_CHECK_METER (0x01) -#define EMBER_AF_METERING_STATUS_GAS_LOW_BATTERY (0x02) -#define EMBER_AF_METERING_STATUS_GAS_LOW_BATTERY_OFFSET (1) -#define EMBER_AF_METERING_STATUS_GAS_TAMPER_DETECT (0x04) -#define EMBER_AF_METERING_STATUS_GAS_TAMPER_DETECT_OFFSET (2) -#define EMBER_AF_METERING_STATUS_GAS_NOT_DEFINED (0x08) -#define EMBER_AF_METERING_STATUS_GAS_NOT_DEFINED_OFFSET (3) -#define EMBER_AF_METERING_STATUS_GAS_LOW_PRESSURE (0x10) -#define EMBER_AF_METERING_STATUS_GAS_LOW_PRESSURE_OFFSET (4) -#define EMBER_AF_METERING_STATUS_GAS_LEAK_DETECT (0x20) -#define EMBER_AF_METERING_STATUS_GAS_LEAK_DETECT_OFFSET (5) -#define EMBER_AF_METERING_STATUS_GAS_SERVICE_DISCONNECT (0x40) -#define EMBER_AF_METERING_STATUS_GAS_SERVICE_DISCONNECT_OFFSET (6) -#define EMBER_AF_METERING_STATUS_GAS_REVERSE_FLOW (0x80) -#define EMBER_AF_METERING_STATUS_GAS_REVERSE_FLOW_OFFSET (7) -#define EMBER_AF_METERING_STATUS_WATER_CHECK_METER (0x01) -#define EMBER_AF_METERING_STATUS_WATER_LOW_BATTERY (0x02) -#define EMBER_AF_METERING_STATUS_WATER_LOW_BATTERY_OFFSET (1) -#define EMBER_AF_METERING_STATUS_WATER_TAMPER_DETECT (0x04) -#define EMBER_AF_METERING_STATUS_WATER_TAMPER_DETECT_OFFSET (2) -#define EMBER_AF_METERING_STATUS_WATER_PIPE_EMPTY (0x08) -#define EMBER_AF_METERING_STATUS_WATER_PIPE_EMPTY_OFFSET (3) -#define EMBER_AF_METERING_STATUS_WATER_LOW_PRESSURE (0x10) -#define EMBER_AF_METERING_STATUS_WATER_LOW_PRESSURE_OFFSET (4) -#define EMBER_AF_METERING_STATUS_WATER_LEAK_DETECT (0x20) -#define EMBER_AF_METERING_STATUS_WATER_LEAK_DETECT_OFFSET (5) -#define EMBER_AF_METERING_STATUS_WATER_SERVICE_DISCONNECT (0x40) -#define EMBER_AF_METERING_STATUS_WATER_SERVICE_DISCONNECT_OFFSET (6) -#define EMBER_AF_METERING_STATUS_WATER_REVERSE_FLOW (0x80) -#define EMBER_AF_METERING_STATUS_WATER_REVERSE_FLOW_OFFSET (7) -#define EMBER_AF_METERING_STATUS_HEAT_AND_COOLING_CHECK_METER (0x01) -#define EMBER_AF_METERING_STATUS_HEAT_AND_COOLING_LOW_BATTERY (0x02) -#define EMBER_AF_METERING_STATUS_HEAT_AND_COOLING_LOW_BATTERY_OFFSET (1) -#define EMBER_AF_METERING_STATUS_HEAT_AND_COOLING_TAMPER_DETECT (0x04) -#define EMBER_AF_METERING_STATUS_HEAT_AND_COOLING_TAMPER_DETECT_OFFSET (2) -#define EMBER_AF_METERING_STATUS_HEAT_AND_COOLING_TEMPERATURE_SENSOR (0x08) -#define EMBER_AF_METERING_STATUS_HEAT_AND_COOLING_TEMPERATURE_SENSOR_OFFSET (3) -#define EMBER_AF_METERING_STATUS_HEAT_AND_COOLING_BURST_DETECT (0x10) -#define EMBER_AF_METERING_STATUS_HEAT_AND_COOLING_BURST_DETECT_OFFSET (4) -#define EMBER_AF_METERING_STATUS_HEAT_AND_COOLING_LEAK_DETECT (0x20) -#define EMBER_AF_METERING_STATUS_HEAT_AND_COOLING_LEAK_DETECT_OFFSET (5) -#define EMBER_AF_METERING_STATUS_HEAT_AND_COOLING_SERVICE_DISCONNECT (0x40) -#define EMBER_AF_METERING_STATUS_HEAT_AND_COOLING_SERVICE_DISCONNECT_OFFSET (6) -#define EMBER_AF_METERING_STATUS_HEAT_AND_COOLING_FLOW_SENSOR (0x80) -#define EMBER_AF_METERING_STATUS_HEAT_AND_COOLING_FLOW_SENSOR_OFFSET (7) -#define EMBER_AF_METERING_EXTENDED_STATUS_METER_COVER_REMOVED (0x0000000000000001) -#define EMBER_AF_METERING_EXTENDED_STATUS_STRONG_MAGNETIC_FIELD_DETECTED (0x0000000000000002) -#define EMBER_AF_METERING_EXTENDED_STATUS_STRONG_MAGNETIC_FIELD_DETECTED_OFFSET (1) -#define EMBER_AF_METERING_EXTENDED_STATUS_BATTERY_FAILURE (0x0000000000000004) -#define EMBER_AF_METERING_EXTENDED_STATUS_BATTERY_FAILURE_OFFSET (2) -#define EMBER_AF_METERING_EXTENDED_STATUS_PROGRAM_MEMORY_ERROR (0x0000000000000008) -#define EMBER_AF_METERING_EXTENDED_STATUS_PROGRAM_MEMORY_ERROR_OFFSET (3) -#define EMBER_AF_METERING_EXTENDED_STATUS_RAM_ERROR (0x0000000000000010) -#define EMBER_AF_METERING_EXTENDED_STATUS_RAM_ERROR_OFFSET (4) -#define EMBER_AF_METERING_EXTENDED_STATUS_NV_MEMORY_ERROR (0x0000000000000020) -#define EMBER_AF_METERING_EXTENDED_STATUS_NV_MEMORY_ERROR_OFFSET (5) -#define EMBER_AF_METERING_EXTENDED_STATUS_MEASUREMENT_SYSTEM_ERROR (0x0000000000000040) -#define EMBER_AF_METERING_EXTENDED_STATUS_MEASUREMENT_SYSTEM_ERROR_OFFSET (6) -#define EMBER_AF_METERING_EXTENDED_STATUS_WATCHDOG_ERROR (0x0000000000000080) -#define EMBER_AF_METERING_EXTENDED_STATUS_WATCHDOG_ERROR_OFFSET (7) -#define EMBER_AF_METERING_EXTENDED_STATUS_SUPPLY_DISCONNECT_FAILURE (0x0000000000000100) -#define EMBER_AF_METERING_EXTENDED_STATUS_SUPPLY_DISCONNECT_FAILURE_OFFSET (8) -#define EMBER_AF_METERING_EXTENDED_STATUS_SUPPLY_CONNECT_FAILURE (0x0000000000000200) -#define EMBER_AF_METERING_EXTENDED_STATUS_SUPPLY_CONNECT_FAILURE_OFFSET (9) -#define EMBER_AF_METERING_EXTENDED_STATUS_MEASUREMENT_SW_CHANGED_TAMPERED (0x0000000000000400) -#define EMBER_AF_METERING_EXTENDED_STATUS_MEASUREMENT_SW_CHANGED_TAMPERED_OFFSET (10) -#define EMBER_AF_METERING_EXTENDED_STATUS_CLOCK_INVALID (0x0000000000000800) -#define EMBER_AF_METERING_EXTENDED_STATUS_CLOCK_INVALID_OFFSET (11) -#define EMBER_AF_METERING_EXTENDED_STATUS_TEMPERATURE_EXCEEDED (0x0000000000001000) -#define EMBER_AF_METERING_EXTENDED_STATUS_TEMPERATURE_EXCEEDED_OFFSET (12) -#define EMBER_AF_METERING_EXTENDED_STATUS_MOISTURE_DETECTED (0x0000000000002000) -#define EMBER_AF_METERING_EXTENDED_STATUS_MOISTURE_DETECTED_OFFSET (13) -#define EMBER_AF_METERING_EXTENDED_STATUS_GAS_METER_BATTERY_COVER_REMOVED (0x0000000001000000) -#define EMBER_AF_METERING_EXTENDED_STATUS_GAS_METER_BATTERY_COVER_REMOVED_OFFSET (24) -#define EMBER_AF_METERING_EXTENDED_STATUS_GAS_METER_TILT_TAMPER (0x0000000002000000) -#define EMBER_AF_METERING_EXTENDED_STATUS_GAS_METER_TILT_TAMPER_OFFSET (25) -#define EMBER_AF_METERING_EXTENDED_STATUS_GAS_METER_EXCESS_FLOW (0x0000000004000000) -#define EMBER_AF_METERING_EXTENDED_STATUS_GAS_METER_EXCESS_FLOW_OFFSET (26) -#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_LIMIT_THRESHOLD_EXCEEDED (0x0000000008000000) -#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_LIMIT_THRESHOLD_EXCEEDED_OFFSET (27) -#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_UNDER_VOLTAGE (0x0000000010000000) -#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_UNDER_VOLTAGE_OFFSET (28) -#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_OVER_VOLTAGE (0x0000000020000000) -#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_OVER_VOLTAGE_OFFSET (29) -#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_SERVICE_DISCONNECTION_REASON_OFF_DUE_TO_OVER_POWER (0x0000000040000000) -#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_SERVICE_DISCONNECTION_REASON_OFF_DUE_TO_OVER_POWER_OFFSET (30) -#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_SERVICE_DISCONNECTION_REASON_OFF_DUE_TO_OVER_VOLTAGE \ - (0x0000000080000000) -#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_SERVICE_DISCONNECTION_REASON_OFF_DUE_TO_OVER_VOLTAGE_OFFSET (31) -#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_SERVICE_DISCONNECTION_REASON_OFF_DUE_TO_REMOTE_LOAD_CONTROL \ - (0x00000000C0000000) -#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_SERVICE_DISCONNECTION_REASON_OFF_DUE_TO_REMOTE_LOAD_CONTROL_OFFSET (30) -#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_SERVICE_DISCONNECTION_REASON_OFF_BY_OTHER_REMOTE_COMMAND \ - (0x0000000100000000) -#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_SERVICE_DISCONNECTION_REASON_OFF_BY_OTHER_REMOTE_COMMAND_OFFSET (32) -#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_SERVICE_DISCONNECTION_REASON_OFF_DUE_TO_OVERHEATING_SHORT_CIRCUIT \ - (0x0000000140000000) -#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_SERVICE_DISCONNECTION_REASON_OFF_DUE_TO_OVERHEATING_SHORT_CIRCUIT_OFFSET \ - (30) -#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_SERVICE_DISCONNECTION_REASON_OFF_DUE_TO_OVERHEATING_OTHER \ - (0x0000000180000000) -#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_SERVICE_DISCONNECTION_REASON_OFF_DUE_TO_OVERHEATING_OTHER_OFFSET (31) -#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_BI_DIRECTIONAL_OPERATION (0x0000000400000000) -#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_BI_DIRECTIONAL_OPERATION_OFFSET (34) -#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_ACTIVE_POWER_RECEIVED (0x0000000800000000) -#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_ACTIVE_POWER_RECEIVED_OFFSET (35) -#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_MODE_OF_OPERATION (0x0000001000000000) -#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_MODE_OF_OPERATION_OFFSET (36) -#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_NEW_OTA_FIRMWARE (0x00000001) -#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_CBKE_UPDATE_REQUEST (0x00000002) -#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_CBKE_UPDATE_REQUEST_OFFSET (1) -#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_TIME_SYNC (0x00000004) -#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_TIME_SYNC_OFFSET (2) -#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_STAY_AWAKE_REQUEST_HAN (0x00000010) -#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_STAY_AWAKE_REQUEST_HAN_OFFSET (4) -#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_STAY_AWAKE_REQUEST_WAN (0x00000020) -#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_STAY_AWAKE_REQUEST_WAN_OFFSET (5) -#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_PUSH_HISTORICAL_METERING_DATA_ATTRIBUTE_SET (0x000001C0) -#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_PUSH_HISTORICAL_METERING_DATA_ATTRIBUTE_SET_OFFSET (6) -#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_PUSH_HISTORICAL_PREPAYMENT_DATA_ATTRIBUTE_SET (0x00000E00) -#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_PUSH_HISTORICAL_PREPAYMENT_DATA_ATTRIBUTE_SET_OFFSET (9) -#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_PUSH_ALL_STATIC_DATA_BASIC_CLUSTER (0x00001000) -#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_PUSH_ALL_STATIC_DATA_BASIC_CLUSTER_OFFSET (12) -#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_PUSH_ALL_STATIC_DATA_METERING_CLUSTER (0x00002000) -#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_PUSH_ALL_STATIC_DATA_METERING_CLUSTER_OFFSET (13) -#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_PUSH_ALL_STATIC_DATA_PREPAYMENT_CLUSTER (0x00004000) -#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_PUSH_ALL_STATIC_DATA_PREPAYMENT_CLUSTER_OFFSET (14) -#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_NETWORK_KEY_ACTIVE (0x00008000) -#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_NETWORK_KEY_ACTIVE_OFFSET (15) -#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_DISPLAY_MESSAGE (0x00010000) -#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_DISPLAY_MESSAGE_OFFSET (16) -#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_CANCEL_ALL_MESSAGES (0x00020000) -#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_CANCEL_ALL_MESSAGES_OFFSET (17) -#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_CHANGE_SUPPLY (0x00040000) -#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_CHANGE_SUPPLY_OFFSET (18) -#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_LOCAL_CHANGE_SUPPLY (0x00080000) -#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_LOCAL_CHANGE_SUPPLY_OFFSET (19) -#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_SET_UNCONTROLLED_FLOW_THRESHOLD (0x00100000) -#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_SET_UNCONTROLLED_FLOW_THRESHOLD_OFFSET (20) -#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_TUNNEL_MESSAGE_PENDING (0x00200000) -#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_TUNNEL_MESSAGE_PENDING_OFFSET (21) -#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_GET_SNAPSHOT (0x00400000) -#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_GET_SNAPSHOT_OFFSET (22) -#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_GET_SAMPLED_DATA (0x00800000) -#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_GET_SAMPLED_DATA_OFFSET (23) -#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_NEW_SUB_GHZ_CHANNEL_MASKS_AVAILABLE (0x01000000) -#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_NEW_SUB_GHZ_CHANNEL_MASKS_AVAILABLE_OFFSET (24) -#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_ENERGY_SCAN_PENDING (0x02000000) -#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_ENERGY_SCAN_PENDING_OFFSET (25) -#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_CHANNEL_CHANGE_PENDING (0x04000000) -#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_CHANNEL_CHANGE_PENDING_OFFSET (26) -#define EMBER_AF_SNAPSHOT_CAUSE_GENERAL (0x00000001) -#define EMBER_AF_SNAPSHOT_CAUSE_END_OF_BILLING_PERIOD (0x00000002) -#define EMBER_AF_SNAPSHOT_CAUSE_END_OF_BILLING_PERIOD_OFFSET (1) -#define EMBER_AF_SNAPSHOT_CAUSE_END_OF_BLOCK_PERIOD (0x00000004) -#define EMBER_AF_SNAPSHOT_CAUSE_END_OF_BLOCK_PERIOD_OFFSET (2) -#define EMBER_AF_SNAPSHOT_CAUSE_CHANGE_OF_TARIFF_INFORMATION (0x00000008) -#define EMBER_AF_SNAPSHOT_CAUSE_CHANGE_OF_TARIFF_INFORMATION_OFFSET (3) -#define EMBER_AF_SNAPSHOT_CAUSE_CHANGE_OF_PRICE_MATRIX (0x00000010) -#define EMBER_AF_SNAPSHOT_CAUSE_CHANGE_OF_PRICE_MATRIX_OFFSET (4) -#define EMBER_AF_SNAPSHOT_CAUSE_CHANGE_OF_BLOCK_THRESHOLDS (0x00000020) -#define EMBER_AF_SNAPSHOT_CAUSE_CHANGE_OF_BLOCK_THRESHOLDS_OFFSET (5) -#define EMBER_AF_SNAPSHOT_CAUSE_CHANGE_OF_CV (0x00000040) -#define EMBER_AF_SNAPSHOT_CAUSE_CHANGE_OF_CV_OFFSET (6) -#define EMBER_AF_SNAPSHOT_CAUSE_CHANGE_OF_CF (0x00000080) -#define EMBER_AF_SNAPSHOT_CAUSE_CHANGE_OF_CF_OFFSET (7) -#define EMBER_AF_SNAPSHOT_CAUSE_CHANGE_OF_CALENDAR (0x00000100) -#define EMBER_AF_SNAPSHOT_CAUSE_CHANGE_OF_CALENDAR_OFFSET (8) -#define EMBER_AF_SNAPSHOT_CAUSE_CRITICAL_PEAK_PRICING (0x00000200) -#define EMBER_AF_SNAPSHOT_CAUSE_CRITICAL_PEAK_PRICING_OFFSET (9) -#define EMBER_AF_SNAPSHOT_CAUSE_MANUALLY_TRIGGERED_FROM_CLIENT (0x00000400) -#define EMBER_AF_SNAPSHOT_CAUSE_MANUALLY_TRIGGERED_FROM_CLIENT_OFFSET (10) -#define EMBER_AF_SNAPSHOT_CAUSE_END_OF_RESOLVE_PERIOD (0x00000800) -#define EMBER_AF_SNAPSHOT_CAUSE_END_OF_RESOLVE_PERIOD_OFFSET (11) -#define EMBER_AF_SNAPSHOT_CAUSE_CHANGE_OF_TENANCY (0x00001000) -#define EMBER_AF_SNAPSHOT_CAUSE_CHANGE_OF_TENANCY_OFFSET (12) -#define EMBER_AF_SNAPSHOT_CAUSE_CHANGE_OF_SUPPLIER (0x00002000) -#define EMBER_AF_SNAPSHOT_CAUSE_CHANGE_OF_SUPPLIER_OFFSET (13) -#define EMBER_AF_SNAPSHOT_CAUSE_CHANGE_OF_MODE (0x00004000) -#define EMBER_AF_SNAPSHOT_CAUSE_CHANGE_OF_MODE_OFFSET (14) -#define EMBER_AF_SNAPSHOT_CAUSE_DEBT_PAYMENT (0x00008000) -#define EMBER_AF_SNAPSHOT_CAUSE_DEBT_PAYMENT_OFFSET (15) -#define EMBER_AF_SNAPSHOT_CAUSE_SCHEDULED_SNAPSHOT (0x00010000) -#define EMBER_AF_SNAPSHOT_CAUSE_SCHEDULED_SNAPSHOT_OFFSET (16) -#define EMBER_AF_SNAPSHOT_CAUSE_OTA_FIRMWARE_DOWNLOAD (0x00020000) -#define EMBER_AF_SNAPSHOT_CAUSE_OTA_FIRMWARE_DOWNLOAD_OFFSET (17) -#define EMBER_AF_SUPPLY_CONTROL_BITS_ACKNOWLEDGE_REQUIRED (0x01) -#define EMBER_AF_MESSAGING_CONTROL_MASK_TRANS_MECHANISM (0x03) -#define EMBER_AF_MESSAGING_CONTROL_MASK_MESSAGE_URGENCY (0x0C) -#define EMBER_AF_MESSAGING_CONTROL_MASK_MESSAGE_URGENCY_OFFSET (2) -#define EMBER_AF_MESSAGING_CONTROL_MASK_ENHANCED_CONFIRMATION_REQUEST (0x20) -#define EMBER_AF_MESSAGING_CONTROL_MASK_ENHANCED_CONFIRMATION_REQUEST_OFFSET (5) -#define EMBER_AF_MESSAGING_CONTROL_MASK_MESSAGE_CONFIRMATION (0x80) -#define EMBER_AF_MESSAGING_CONTROL_MASK_MESSAGE_CONFIRMATION_OFFSET (7) -#define EMBER_AF_MESSAGING_EXTENDED_CONTROL_MASK_MESSAGE_CONFIRMATION_STATUS (0x01) -#define EMBER_AF_MESSAGING_CONFIRMATION_CONTROL_NO_RETURNED (0x01) -#define EMBER_AF_MESSAGING_CONFIRMATION_CONTROL_YES_RETURNED (0x02) -#define EMBER_AF_MESSAGING_CONFIRMATION_CONTROL_YES_RETURNED_OFFSET (1) -#define EMBER_AF_PAYMENT_CONTROL_CONFIGURATION_DISCONNECTION_ENABLED (0x0001) -#define EMBER_AF_PAYMENT_CONTROL_CONFIGURATION_PREPAYMENT_ENABLED (0x0002) -#define EMBER_AF_PAYMENT_CONTROL_CONFIGURATION_PREPAYMENT_ENABLED_OFFSET (1) -#define EMBER_AF_PAYMENT_CONTROL_CONFIGURATION_CREDIT_MANAGEMENT_ENABLED (0x0004) -#define EMBER_AF_PAYMENT_CONTROL_CONFIGURATION_CREDIT_MANAGEMENT_ENABLED_OFFSET (2) -#define EMBER_AF_PAYMENT_CONTROL_CONFIGURATION_CREDIT_DISPLAY_ENABLED (0x0010) -#define EMBER_AF_PAYMENT_CONTROL_CONFIGURATION_CREDIT_DISPLAY_ENABLED_OFFSET (4) -#define EMBER_AF_PAYMENT_CONTROL_CONFIGURATION_ACCOUNT_BASE (0x0040) -#define EMBER_AF_PAYMENT_CONTROL_CONFIGURATION_ACCOUNT_BASE_OFFSET (6) -#define EMBER_AF_PAYMENT_CONTROL_CONFIGURATION_CONTACTOR_FITTED (0x0080) -#define EMBER_AF_PAYMENT_CONTROL_CONFIGURATION_CONTACTOR_FITTED_OFFSET (7) -#define EMBER_AF_PAYMENT_CONTROL_CONFIGURATION_STANDING_CHARGE_CONFIGURATION (0x0100) -#define EMBER_AF_PAYMENT_CONTROL_CONFIGURATION_STANDING_CHARGE_CONFIGURATION_OFFSET (8) -#define EMBER_AF_PAYMENT_CONTROL_CONFIGURATION_EMERGENCY_STANDING_CHARGE_CONFIGURATION (0x0200) -#define EMBER_AF_PAYMENT_CONTROL_CONFIGURATION_EMERGENCY_STANDING_CHARGE_CONFIGURATION_OFFSET (9) -#define EMBER_AF_PAYMENT_CONTROL_CONFIGURATION_DEBT_CONFIGURATION (0x0400) -#define EMBER_AF_PAYMENT_CONTROL_CONFIGURATION_DEBT_CONFIGURATION_OFFSET (10) -#define EMBER_AF_PAYMENT_CONTROL_CONFIGURATION_EMERGENCY_DEBT_CONFIGURATION (0x0800) -#define EMBER_AF_PAYMENT_CONTROL_CONFIGURATION_EMERGENCY_DEBT_CONFIGURATION_OFFSET (11) -#define EMBER_AF_CREDIT_STATUS_CREDIT_OK (0x01) -#define EMBER_AF_CREDIT_STATUS_LOW_CREDIT (0x02) -#define EMBER_AF_CREDIT_STATUS_LOW_CREDIT_OFFSET (1) -#define EMBER_AF_CREDIT_STATUS_EMERGENCY_CREDIT_ENABLED (0x04) -#define EMBER_AF_CREDIT_STATUS_EMERGENCY_CREDIT_ENABLED_OFFSET (2) -#define EMBER_AF_CREDIT_STATUS_EMERGENCY_CREDIT_AVAILABLE (0x08) -#define EMBER_AF_CREDIT_STATUS_EMERGENCY_CREDIT_AVAILABLE_OFFSET (3) -#define EMBER_AF_CREDIT_STATUS_EMERGENCY_CREDIT_SELECTED (0x10) -#define EMBER_AF_CREDIT_STATUS_EMERGENCY_CREDIT_SELECTED_OFFSET (4) -#define EMBER_AF_CREDIT_STATUS_EMERGENCY_CREDIT_IN_USE (0x20) -#define EMBER_AF_CREDIT_STATUS_EMERGENCY_CREDIT_IN_USE_OFFSET (5) -#define EMBER_AF_CREDIT_STATUS_CREDIT_EXHAUSTED (0x40) -#define EMBER_AF_CREDIT_STATUS_CREDIT_EXHAUSTED_OFFSET (6) -#define EMBER_AF_PREPAYMENT_ALARM_STATUS_LOW_CREDIT_WARNING (0x0001) -#define EMBER_AF_PREPAYMENT_ALARM_STATUS_TOP_UP_CODE_ERROR (0x0002) -#define EMBER_AF_PREPAYMENT_ALARM_STATUS_TOP_UP_CODE_ERROR_OFFSET (1) -#define EMBER_AF_PREPAYMENT_ALARM_STATUS_TOP_UP_CODE_ALREADY_USED (0x0004) -#define EMBER_AF_PREPAYMENT_ALARM_STATUS_TOP_UP_CODE_ALREADY_USED_OFFSET (2) -#define EMBER_AF_PREPAYMENT_ALARM_STATUS_TOP_UP_CODE_INVALID (0x0008) -#define EMBER_AF_PREPAYMENT_ALARM_STATUS_TOP_UP_CODE_INVALID_OFFSET (3) -#define EMBER_AF_PREPAYMENT_ALARM_STATUS_FRIENDLY_CREDIT_IN_USE (0x0010) -#define EMBER_AF_PREPAYMENT_ALARM_STATUS_FRIENDLY_CREDIT_IN_USE_OFFSET (4) -#define EMBER_AF_PREPAYMENT_ALARM_STATUS_FRIENDLY_CREDIT_PERIOD_END_WARNING (0x0020) -#define EMBER_AF_PREPAYMENT_ALARM_STATUS_FRIENDLY_CREDIT_PERIOD_END_WARNING_OFFSET (5) -#define EMBER_AF_PREPAYMENT_ALARM_STATUS_EC_AVAILABLE (0x0040) -#define EMBER_AF_PREPAYMENT_ALARM_STATUS_EC_AVAILABLE_OFFSET (6) -#define EMBER_AF_PREPAYMENT_ALARM_STATUS_UNAUTHORISED_ENERGY_USE (0x0080) -#define EMBER_AF_PREPAYMENT_ALARM_STATUS_UNAUTHORISED_ENERGY_USE_OFFSET (7) -#define EMBER_AF_PREPAYMENT_ALARM_STATUS_DISCONNECTED_SUPPLY_DUE_TO_CREDIT (0x0100) -#define EMBER_AF_PREPAYMENT_ALARM_STATUS_DISCONNECTED_SUPPLY_DUE_TO_CREDIT_OFFSET (8) -#define EMBER_AF_PREPAYMENT_ALARM_STATUS_DISCONNECTED_SUPPLY_DUE_TO_TAMPER (0x0200) -#define EMBER_AF_PREPAYMENT_ALARM_STATUS_DISCONNECTED_SUPPLY_DUE_TO_TAMPER_OFFSET (9) -#define EMBER_AF_PREPAYMENT_ALARM_STATUS_DISCONNECTED_SUPPLY_DUE_TO_HES (0x0400) -#define EMBER_AF_PREPAYMENT_ALARM_STATUS_DISCONNECTED_SUPPLY_DUE_TO_HES_OFFSET (10) -#define EMBER_AF_PREPAYMENT_ALARM_STATUS_PHYSICAL_ATTACK (0x0800) -#define EMBER_AF_PREPAYMENT_ALARM_STATUS_PHYSICAL_ATTACK_OFFSET (11) -#define EMBER_AF_PREPAYMENT_ALARM_STATUS_ELECTRONIC_ATTACK (0x1000) -#define EMBER_AF_PREPAYMENT_ALARM_STATUS_ELECTRONIC_ATTACK_OFFSET (12) -#define EMBER_AF_PREPAYMENT_ALARM_STATUS_MANUFACTURE_ALARM_CODE_A (0x2000) -#define EMBER_AF_PREPAYMENT_ALARM_STATUS_MANUFACTURE_ALARM_CODE_A_OFFSET (13) -#define EMBER_AF_PREPAYMENT_ALARM_STATUS_MANUFACTURE_ALARM_CODE_B (0x4000) -#define EMBER_AF_PREPAYMENT_ALARM_STATUS_MANUFACTURE_ALARM_CODE_B_OFFSET (14) -#define EMBER_AF_ORIGINATOR_ID_SUPPLY_CONTROL_BITS_ACKNOWLEDGE_REQUIRED (0x01) -#define EMBER_AF_PREPAY_SNAPSHOT_PAYLOAD_CAUSE_GENERAL (0x00000001) -#define EMBER_AF_PREPAY_SNAPSHOT_PAYLOAD_CAUSE_CHANGE_OF_TARIFF_INFORMATION (0x00000008) -#define EMBER_AF_PREPAY_SNAPSHOT_PAYLOAD_CAUSE_CHANGE_OF_TARIFF_INFORMATION_OFFSET (3) -#define EMBER_AF_PREPAY_SNAPSHOT_PAYLOAD_CAUSE_CHANGE_OF_PRICE_MATRIX (0x00000010) -#define EMBER_AF_PREPAY_SNAPSHOT_PAYLOAD_CAUSE_CHANGE_OF_PRICE_MATRIX_OFFSET (4) -#define EMBER_AF_PREPAY_SNAPSHOT_PAYLOAD_CAUSE_MANUALLY_TRIGGERED_FROM_CLIENT (0x00000400) -#define EMBER_AF_PREPAY_SNAPSHOT_PAYLOAD_CAUSE_MANUALLY_TRIGGERED_FROM_CLIENT_OFFSET (10) -#define EMBER_AF_PREPAY_SNAPSHOT_PAYLOAD_CAUSE_CHANGE_OF_TENANCY (0x00001000) -#define EMBER_AF_PREPAY_SNAPSHOT_PAYLOAD_CAUSE_CHANGE_OF_TENANCY_OFFSET (12) -#define EMBER_AF_PREPAY_SNAPSHOT_PAYLOAD_CAUSE_CHANGE_OF_SUPPLIER (0x00002000) -#define EMBER_AF_PREPAY_SNAPSHOT_PAYLOAD_CAUSE_CHANGE_OF_SUPPLIER_OFFSET (13) -#define EMBER_AF_PREPAY_SNAPSHOT_PAYLOAD_CAUSE_CHANGE_OF_METER_MODE (0x00004000) -#define EMBER_AF_PREPAY_SNAPSHOT_PAYLOAD_CAUSE_CHANGE_OF_METER_MODE_OFFSET (14) -#define EMBER_AF_PREPAY_SNAPSHOT_PAYLOAD_CAUSE_TOP_UP_ADDITION (0x00040000) -#define EMBER_AF_PREPAY_SNAPSHOT_PAYLOAD_CAUSE_TOP_UP_ADDITION_OFFSET (18) -#define EMBER_AF_PREPAY_SNAPSHOT_PAYLOAD_CAUSE_DEBT_CREDIT_ADDITION (0x00080000) -#define EMBER_AF_PREPAY_SNAPSHOT_PAYLOAD_CAUSE_DEBT_CREDIT_ADDITION_OFFSET (19) -#define EMBER_AF_FRIENDLY_CREDIT_FRIENDLY_CREDIT_ENABLED (0x01) -#define EMBER_AF_LOAD_CONTROL_STATE_RELAY_OPEN_OR_CONSUMPTION_INTERUPTED (0x01) -#define EMBER_AF_LOAD_CONTROL_STATE_EVENT_IN_PROGRESS (0x02) -#define EMBER_AF_LOAD_CONTROL_STATE_EVENT_IN_PROGRESS_OFFSET (1) -#define EMBER_AF_LOAD_CONTROL_STATE_POWER_STABILIZING (0x04) -#define EMBER_AF_LOAD_CONTROL_STATE_POWER_STABILIZING_OFFSET (2) -#define EMBER_AF_LOAD_CONTROL_STATE_OTHER_LOAD_REDUCTION (0x08) -#define EMBER_AF_LOAD_CONTROL_STATE_OTHER_LOAD_REDUCTION_OFFSET (3) -#define EMBER_AF_LOAD_CONTROL_STATE_CURRENT_FLOW_OR_CONSUMING_COMMODITY (0x10) -#define EMBER_AF_LOAD_CONTROL_STATE_CURRENT_FLOW_OR_CONSUMING_COMMODITY_OFFSET (4) -#define EMBER_AF_LOAD_CONTROL_STATE_LOAD_CALL (0x20) -#define EMBER_AF_LOAD_CONTROL_STATE_LOAD_CALL_OFFSET (5) -#define EMBER_AF_CURRENT_EVENT_STATUS_RANDOMIZED_START_TIME (0x01) -#define EMBER_AF_CURRENT_EVENT_STATUS_RANDOMIZED_DURATION (0x02) -#define EMBER_AF_CURRENT_EVENT_STATUS_RANDOMIZED_DURATION_OFFSET (1) -#define EMBER_AF_CURRENT_EVENT_STATUS_EXTENDED_BITS_PRESENT (0x04) -#define EMBER_AF_CURRENT_EVENT_STATUS_EXTENDED_BITS_PRESENT_OFFSET (2) -#define EMBER_AF_CURRENT_EVENT_STATUS_EVENT_ACTIVE (0x08) -#define EMBER_AF_CURRENT_EVENT_STATUS_EVENT_ACTIVE_OFFSET (3) -#define EMBER_AF_CURRENT_EVENT_STATUS_DEVICE_PARTICIPATING_IN_EVENT (0x10) -#define EMBER_AF_CURRENT_EVENT_STATUS_DEVICE_PARTICIPATING_IN_EVENT_OFFSET (4) -#define EMBER_AF_CURRENT_EVENT_STATUS_REDUCING_LOAD (0x20) -#define EMBER_AF_CURRENT_EVENT_STATUS_REDUCING_LOAD_OFFSET (5) -#define EMBER_AF_CURRENT_EVENT_STATUS_ON_AT_END_OF_EVENT (0x40) -#define EMBER_AF_CURRENT_EVENT_STATUS_ON_AT_END_OF_EVENT_OFFSET (6) #define EMBER_AF_AUXILIARY_LOAD_SWITCH_STATE_AUXILIARY_SWITCH1 (0x01) +#define EMBER_AF_AUXILIARY_LOAD_SWITCH_STATE_AUXILIARY_SWITCH1_OFFSET (0) #define EMBER_AF_AUXILIARY_LOAD_SWITCH_STATE_AUXILIARY_SWITCH2 (0x02) #define EMBER_AF_AUXILIARY_LOAD_SWITCH_STATE_AUXILIARY_SWITCH2_OFFSET (1) #define EMBER_AF_AUXILIARY_LOAD_SWITCH_STATE_AUXILIARY_SWITCH3 (0x04) @@ -3080,52 +2685,314 @@ typedef enum #define EMBER_AF_AUXILIARY_LOAD_SWITCH_STATE_AUXILIARY_SWITCH7_OFFSET (6) #define EMBER_AF_AUXILIARY_LOAD_SWITCH_STATE_AUXILIARY_SWITCH8 (0x80) #define EMBER_AF_AUXILIARY_LOAD_SWITCH_STATE_AUXILIARY_SWITCH8_OFFSET (7) -#define EMBER_AF_PROPOSED_CHANGE_CONTROL_PRE_SNAPSHOTS (0x00000001) -#define EMBER_AF_PROPOSED_CHANGE_CONTROL_POST_SNAPSHOTS (0x00000002) -#define EMBER_AF_PROPOSED_CHANGE_CONTROL_POST_SNAPSHOTS_OFFSET (1) -#define EMBER_AF_PROPOSED_CHANGE_CONTROL_RESET_CREDIT_REGISTER (0x00000004) -#define EMBER_AF_PROPOSED_CHANGE_CONTROL_RESET_CREDIT_REGISTER_OFFSET (2) -#define EMBER_AF_PROPOSED_CHANGE_CONTROL_RESET_DEBIT_REGISTER (0x00000008) -#define EMBER_AF_PROPOSED_CHANGE_CONTROL_RESET_DEBIT_REGISTER_OFFSET (3) -#define EMBER_AF_PROPOSED_CHANGE_CONTROL_RESET_BILLING_PERIOD (0x00000010) -#define EMBER_AF_PROPOSED_CHANGE_CONTROL_RESET_BILLING_PERIOD_OFFSET (4) -#define EMBER_AF_PROPOSED_CHANGE_CONTROL_CLEAR_TARIFF_PLAN (0x00000020) -#define EMBER_AF_PROPOSED_CHANGE_CONTROL_CLEAR_TARIFF_PLAN_OFFSET (5) -#define EMBER_AF_PROPOSED_CHANGE_CONTROL_CLEAR_STANDING_CHARGE (0x00000040) -#define EMBER_AF_PROPOSED_CHANGE_CONTROL_CLEAR_STANDING_CHARGE_OFFSET (6) -#define EMBER_AF_PROPOSED_CHANGE_CONTROL_BLOCK_HISTORICAL_LOAD_PROFILE_INFORMATION (0x00000080) -#define EMBER_AF_PROPOSED_CHANGE_CONTROL_BLOCK_HISTORICAL_LOAD_PROFILE_INFORMATION_OFFSET (7) -#define EMBER_AF_PROPOSED_CHANGE_CONTROL_CLEAR_HISTORICAL_LOAD_PROFILE_INFORMATION (0x00000100) -#define EMBER_AF_PROPOSED_CHANGE_CONTROL_CLEAR_HISTORICAL_LOAD_PROFILE_INFORMATION_OFFSET (8) -#define EMBER_AF_PROPOSED_CHANGE_CONTROL_CLEAR_IHD_DATA_CONSUMER (0x00000200) -#define EMBER_AF_PROPOSED_CHANGE_CONTROL_CLEAR_IHD_DATA_CONSUMER_OFFSET (9) -#define EMBER_AF_PROPOSED_CHANGE_CONTROL_CLEAR_IHD_DATA_SUPPLIER (0x00000400) -#define EMBER_AF_PROPOSED_CHANGE_CONTROL_CLEAR_IHD_DATA_SUPPLIER_OFFSET (10) -#define EMBER_AF_PROPOSED_CHANGE_CONTROL_METER_CONNECTOR_STATE_ON_OFF_ARMED (0x00001800) -#define EMBER_AF_PROPOSED_CHANGE_CONTROL_METER_CONNECTOR_STATE_ON_OFF_ARMED_OFFSET (11) -#define EMBER_AF_PROPOSED_CHANGE_CONTROL_CLEAR_TRANSACTION_LOG (0x00002000) -#define EMBER_AF_PROPOSED_CHANGE_CONTROL_CLEAR_TRANSACTION_LOG_OFFSET (13) -#define EMBER_AF_PROPOSED_CHANGE_CONTROL_CLEAR_PREPAYMENT_LOG (0x00004000) -#define EMBER_AF_PROPOSED_CHANGE_CONTROL_CLEAR_PREPAYMENT_LOG_OFFSET (14) -#define EMBER_AF_EVENT_CONFIGURATION_LOG_ACTION (0x07) -#define EMBER_AF_EVENT_CONFIGURATION_PUSH_EVENT_TO_W_A_N (0x08) -#define EMBER_AF_EVENT_CONFIGURATION_PUSH_EVENT_TO_W_A_N_OFFSET (3) -#define EMBER_AF_EVENT_CONFIGURATION_PUSH_EVENT_TO_H_A_N (0x10) -#define EMBER_AF_EVENT_CONFIGURATION_PUSH_EVENT_TO_H_A_N_OFFSET (4) -#define EMBER_AF_EVENT_CONFIGURATION_RAISE_ALARM_ZIG_BEE (0x20) -#define EMBER_AF_EVENT_CONFIGURATION_RAISE_ALARM_ZIG_BEE_OFFSET (5) -#define EMBER_AF_EVENT_CONFIGURATION_RAISE_ALARM_PHYSICAL (0x40) -#define EMBER_AF_EVENT_CONFIGURATION_RAISE_ALARM_PHYSICAL_OFFSET (6) -#define EMBER_AF_EVENT_CONTROL_LOG_ID_LOG_ID (0x0F) -#define EMBER_AF_EVENT_CONTROL_LOG_ID_EVENT_CONTROL (0xF0) -#define EMBER_AF_EVENT_CONTROL_LOG_ID_EVENT_CONTROL_OFFSET (4) -#define EMBER_AF_EVENT_ACTION_CONTROL_REPORT_EVENT_TO_H_A_N_DEVICES (0x01) -#define EMBER_AF_EVENT_ACTION_CONTROL_REPORT_EVENT_TO_W_A_N (0x02) -#define EMBER_AF_EVENT_ACTION_CONTROL_REPORT_EVENT_TO_W_A_N_OFFSET (1) -#define EMBER_AF_NUMBER_OF_EVENTS_LOG_PAYLOAD_CONTROL_LOG_PAYLOAD_CONTROL (0x0F) -#define EMBER_AF_NUMBER_OF_EVENTS_LOG_PAYLOAD_CONTROL_NUMBER_OF_EVENTS (0xF0) -#define EMBER_AF_NUMBER_OF_EVENTS_LOG_PAYLOAD_CONTROL_NUMBER_OF_EVENTS_OFFSET (4) +#define EMBER_AF_BALLAST_STATUS_NON_OPERATIONAL (0x1) +#define EMBER_AF_BALLAST_STATUS_NON_OPERATIONAL_OFFSET (0) +#define EMBER_AF_BALLAST_STATUS_LAMP_NOT_IN_SOCKET (0x2) +#define EMBER_AF_BALLAST_STATUS_LAMP_NOT_IN_SOCKET_OFFSET (1) +#define EMBER_AF_BARRIER_CONTROL_CAPABILITIES_PARTIAL_BARRIER (0x01) +#define EMBER_AF_BARRIER_CONTROL_CAPABILITIES_PARTIAL_BARRIER_OFFSET (0) +#define EMBER_AF_BARRIER_CONTROL_SAFETY_STATUS_REMOTE_LOCKOUT (0x01) +#define EMBER_AF_BARRIER_CONTROL_SAFETY_STATUS_REMOTE_LOCKOUT_OFFSET (0) +#define EMBER_AF_BARRIER_CONTROL_SAFETY_STATUS_TEMPER_DETECTED (0x02) +#define EMBER_AF_BARRIER_CONTROL_SAFETY_STATUS_TEMPER_DETECTED_OFFSET (1) +#define EMBER_AF_BARRIER_CONTROL_SAFETY_STATUS_FAILED_COMMUNICATION (0x04) +#define EMBER_AF_BARRIER_CONTROL_SAFETY_STATUS_FAILED_COMMUNICATION_OFFSET (2) +#define EMBER_AF_BARRIER_CONTROL_SAFETY_STATUS_POSITION_FAILURE (0x08) +#define EMBER_AF_BARRIER_CONTROL_SAFETY_STATUS_POSITION_FAILURE_OFFSET (3) +#define EMBER_AF_BATTERY_ALARM_MASK_VOLTAGE_TOO_LOW (0x1) +#define EMBER_AF_BATTERY_ALARM_MASK_VOLTAGE_TOO_LOW_OFFSET (0) +#define EMBER_AF_BILL_TRAILING_DIGIT_TRAILING_DIGIT (0xF0) +#define EMBER_AF_BILL_TRAILING_DIGIT_TRAILING_DIGIT_OFFSET (4) +#define EMBER_AF_BILLING_PERIOD_DURATION_DURATION (0x3FFFFF) +#define EMBER_AF_BILLING_PERIOD_DURATION_DURATION_OFFSET (0) +#define EMBER_AF_BILLING_PERIOD_DURATION_UNITS (0xC00000) +#define EMBER_AF_BILLING_PERIOD_DURATION_UNITS_OFFSET (22) +#define EMBER_AF_BILLING_PERIOD_DURATION_TYPE_TIMEBASE (0x0F) +#define EMBER_AF_BILLING_PERIOD_DURATION_TYPE_TIMEBASE_OFFSET (0) +#define EMBER_AF_BILLING_PERIOD_DURATION_TYPE_CONTROL (0xF0) +#define EMBER_AF_BILLING_PERIOD_DURATION_TYPE_CONTROL_OFFSET (4) +#define EMBER_AF_BLOCK_PERIOD_CONTROL_PRICE_ACKNOWLEDGEMENT_REQUIREMENT (0x01) +#define EMBER_AF_BLOCK_PERIOD_CONTROL_PRICE_ACKNOWLEDGEMENT_REQUIREMENT_OFFSET (0) +#define EMBER_AF_BLOCK_PERIOD_CONTROL_REPEATING_BLOCK (0x02) +#define EMBER_AF_BLOCK_PERIOD_CONTROL_REPEATING_BLOCK_OFFSET (1) +#define EMBER_AF_BLOCK_PERIOD_DURATION_TYPE_TIMEBASE (0x0F) +#define EMBER_AF_BLOCK_PERIOD_DURATION_TYPE_TIMEBASE_OFFSET (0) +#define EMBER_AF_BLOCK_PERIOD_DURATION_TYPE_CONTROL (0xF0) +#define EMBER_AF_BLOCK_PERIOD_DURATION_TYPE_CONTROL_OFFSET (4) +#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER1 (0x0002) +#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER1_OFFSET (1) +#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER2 (0x0004) +#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER2_OFFSET (2) +#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER3 (0x0008) +#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER3_OFFSET (3) +#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER4 (0x0010) +#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER4_OFFSET (4) +#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER5 (0x0020) +#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER5_OFFSET (5) +#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER6 (0x0040) +#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER6_OFFSET (6) +#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER7 (0x0080) +#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER7_OFFSET (7) +#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER8 (0x0100) +#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER8_OFFSET (8) +#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER9 (0x0200) +#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER9_OFFSET (9) +#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER10 (0x0400) +#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER10_OFFSET (10) +#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER11 (0x0800) +#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER11_OFFSET (11) +#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER12 (0x1000) +#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER12_OFFSET (12) +#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER13 (0x2000) +#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER13_OFFSET (13) +#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER14 (0x4000) +#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER14_OFFSET (14) +#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER15 (0x8000) +#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER15_OFFSET (15) +#define EMBER_AF_BLOCK_THRESHOLD_SUB_PAYLOAD_CONTROL_APPLY_TO_ALL_TOU_TIERS_OR_WHEN_BLOCK_ONLY_CHARGING (0x01) +#define EMBER_AF_BLOCK_THRESHOLD_SUB_PAYLOAD_CONTROL_APPLY_TO_ALL_TOU_TIERS_OR_WHEN_BLOCK_ONLY_CHARGING_OFFSET (0) +#define EMBER_AF_CO2_TRAILING_DIGIT_TRAILING_DIGIT (0xF0) +#define EMBER_AF_CO2_TRAILING_DIGIT_TRAILING_DIGIT_OFFSET (4) +#define EMBER_AF_CALORIFIC_VALUE_TRAILING_DIGIT_TRAILING_DIGIT (0xF0) +#define EMBER_AF_CALORIFIC_VALUE_TRAILING_DIGIT_TRAILING_DIGIT_OFFSET (4) +#define EMBER_AF_CHANNEL_MASK_CHANNEL0 (0x00000001) +#define EMBER_AF_CHANNEL_MASK_CHANNEL0_OFFSET (0) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL0 (0x00000001) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL0_OFFSET (0) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL27 (0x00000001) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL27_OFFSET (0) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL35 (0x00000001) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL35_OFFSET (0) +#define EMBER_AF_CHANNEL_MASK_915_CHANNEL0 (0x00000001) +#define EMBER_AF_CHANNEL_MASK_915_CHANNEL0_OFFSET (0) +#define EMBER_AF_CHANNEL_MASK_CHANNEL1 (0x00000002) +#define EMBER_AF_CHANNEL_MASK_CHANNEL1_OFFSET (1) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL1 (0x00000002) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL1_OFFSET (1) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL28 (0x00000002) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL28_OFFSET (1) +#define EMBER_AF_CHANNEL_MASK_853_CHANNEL36 (0x00000002) +#define EMBER_AF_CHANNEL_MASK_853_CHANNEL36_OFFSET (1) +#define EMBER_AF_CHANNEL_MASK_915_CHANNEL1 (0x00000002) +#define EMBER_AF_CHANNEL_MASK_915_CHANNEL1_OFFSET (1) +#define EMBER_AF_CHANNEL_MASK_CHANNEL2 (0x00000004) +#define EMBER_AF_CHANNEL_MASK_CHANNEL2_OFFSET (2) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL2 (0x00000004) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL2_OFFSET (2) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL29 (0x00000004) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL29_OFFSET (2) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL37 (0x00000004) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL37_OFFSET (2) +#define EMBER_AF_CHANNEL_MASK_915_CHANNEL2 (0x00000004) +#define EMBER_AF_CHANNEL_MASK_915_CHANNEL2_OFFSET (2) +#define EMBER_AF_CHANNEL_MASK_CHANNEL3 (0x00000008) +#define EMBER_AF_CHANNEL_MASK_CHANNEL3_OFFSET (3) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL3 (0x00000008) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL3_OFFSET (3) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL30 (0x00000008) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL30_OFFSET (3) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL38 (0x00000008) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL38_OFFSET (3) +#define EMBER_AF_CHANNEL_MASK_915_CHANNEL3 (0x00000008) +#define EMBER_AF_CHANNEL_MASK_915_CHANNEL3_OFFSET (3) +#define EMBER_AF_CHANNEL_MASK_CHANNEL4 (0x00000010) +#define EMBER_AF_CHANNEL_MASK_CHANNEL4_OFFSET (4) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL4 (0x00000010) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL4_OFFSET (4) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL31 (0x00000010) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL31_OFFSET (4) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL39 (0x00000010) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL39_OFFSET (4) +#define EMBER_AF_CHANNEL_MASK_915_CHANNEL4 (0x00000010) +#define EMBER_AF_CHANNEL_MASK_915_CHANNEL4_OFFSET (4) +#define EMBER_AF_CHANNEL_MASK_CHANNEL5 (0x00000020) +#define EMBER_AF_CHANNEL_MASK_CHANNEL5_OFFSET (5) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL5 (0x00000020) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL5_OFFSET (5) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL32 (0x00000020) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL32_OFFSET (5) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL40 (0x00000020) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL40_OFFSET (5) +#define EMBER_AF_CHANNEL_MASK_915_CHANNEL5 (0x00000020) +#define EMBER_AF_CHANNEL_MASK_915_CHANNEL5_OFFSET (5) +#define EMBER_AF_CHANNEL_MASK_CHANNEL6 (0x00000040) +#define EMBER_AF_CHANNEL_MASK_CHANNEL6_OFFSET (6) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL6 (0x00000040) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL6_OFFSET (6) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL33 (0x00000040) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL33_OFFSET (6) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL41 (0x00000040) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL41_OFFSET (6) +#define EMBER_AF_CHANNEL_MASK_915_CHANNEL6 (0x00000040) +#define EMBER_AF_CHANNEL_MASK_915_CHANNEL6_OFFSET (6) +#define EMBER_AF_CHANNEL_MASK_CHANNEL7 (0x00000080) +#define EMBER_AF_CHANNEL_MASK_CHANNEL7_OFFSET (7) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL7 (0x00000080) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL7_OFFSET (7) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL34 (0x00000080) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL34_OFFSET (7) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL42 (0x00000080) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL42_OFFSET (7) +#define EMBER_AF_CHANNEL_MASK_915_CHANNEL7 (0x00000080) +#define EMBER_AF_CHANNEL_MASK_915_CHANNEL7_OFFSET (7) +#define EMBER_AF_CHANNEL_MASK_CHANNEL8 (0x00000100) +#define EMBER_AF_CHANNEL_MASK_CHANNEL8_OFFSET (8) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL8 (0x00000100) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL8_OFFSET (8) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL62 (0x00000100) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL62_OFFSET (8) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL43 (0x00000100) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL43_OFFSET (8) +#define EMBER_AF_CHANNEL_MASK_915_CHANNEL8 (0x00000100) +#define EMBER_AF_CHANNEL_MASK_915_CHANNEL8_OFFSET (8) +#define EMBER_AF_CHANNEL_MASK_CHANNEL9 (0x00000200) +#define EMBER_AF_CHANNEL_MASK_CHANNEL9_OFFSET (9) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL9 (0x00000200) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL9_OFFSET (9) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL44 (0x00000200) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL44_OFFSET (9) +#define EMBER_AF_CHANNEL_MASK_915_CHANNEL9 (0x00000200) +#define EMBER_AF_CHANNEL_MASK_915_CHANNEL9_OFFSET (9) +#define EMBER_AF_CHANNEL_MASK_CHANNEL10 (0x00000400) +#define EMBER_AF_CHANNEL_MASK_CHANNEL10_OFFSET (10) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL10 (0x00000400) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL10_OFFSET (10) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL45 (0x00000400) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL45_OFFSET (10) +#define EMBER_AF_CHANNEL_MASK_915_CHANNEL10 (0x00000400) +#define EMBER_AF_CHANNEL_MASK_915_CHANNEL10_OFFSET (10) +#define EMBER_AF_CHANNEL_MASK_CHANNEL11 (0x00000800) +#define EMBER_AF_CHANNEL_MASK_CHANNEL11_OFFSET (11) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL11 (0x00000800) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL11_OFFSET (11) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL46 (0x00000800) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL46_OFFSET (11) +#define EMBER_AF_CHANNEL_MASK_915_CHANNEL11 (0x00000800) +#define EMBER_AF_CHANNEL_MASK_915_CHANNEL11_OFFSET (11) +#define EMBER_AF_CHANNEL_MASK_CHANNEL12 (0x00001000) +#define EMBER_AF_CHANNEL_MASK_CHANNEL12_OFFSET (12) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL12 (0x00001000) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL12_OFFSET (12) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL47 (0x00001000) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL47_OFFSET (12) +#define EMBER_AF_CHANNEL_MASK_915_CHANNEL12 (0x00001000) +#define EMBER_AF_CHANNEL_MASK_915_CHANNEL12_OFFSET (12) +#define EMBER_AF_CHANNEL_MASK_CHANNEL13 (0x00002000) +#define EMBER_AF_CHANNEL_MASK_CHANNEL13_OFFSET (13) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL13 (0x00002000) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL13_OFFSET (13) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL48 (0x00002000) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL48_OFFSET (13) +#define EMBER_AF_CHANNEL_MASK_915_CHANNEL13 (0x00002000) +#define EMBER_AF_CHANNEL_MASK_915_CHANNEL13_OFFSET (13) +#define EMBER_AF_CHANNEL_MASK_CHANNEL14 (0x00004000) +#define EMBER_AF_CHANNEL_MASK_CHANNEL14_OFFSET (14) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL14 (0x00004000) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL14_OFFSET (14) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL49 (0x00004000) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL49_OFFSET (14) +#define EMBER_AF_CHANNEL_MASK_915_CHANNEL14 (0x00004000) +#define EMBER_AF_CHANNEL_MASK_915_CHANNEL14_OFFSET (14) +#define EMBER_AF_CHANNEL_MASK_CHANNEL15 (0x00008000) +#define EMBER_AF_CHANNEL_MASK_CHANNEL15_OFFSET (15) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL15 (0x00008000) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL15_OFFSET (15) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL50 (0x00008000) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL50_OFFSET (15) +#define EMBER_AF_CHANNEL_MASK_915_CHANNEL15 (0x00008000) +#define EMBER_AF_CHANNEL_MASK_915_CHANNEL15_OFFSET (15) +#define EMBER_AF_CHANNEL_MASK_CHANNEL16 (0x00010000) +#define EMBER_AF_CHANNEL_MASK_CHANNEL16_OFFSET (16) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL16 (0x00010000) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL16_OFFSET (16) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL51 (0x00010000) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL51_OFFSET (16) +#define EMBER_AF_CHANNEL_MASK_915_CHANNEL16 (0x00010000) +#define EMBER_AF_CHANNEL_MASK_915_CHANNEL16_OFFSET (16) +#define EMBER_AF_CHANNEL_MASK_CHANNEL17 (0x00020000) +#define EMBER_AF_CHANNEL_MASK_CHANNEL17_OFFSET (17) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL17 (0x00020000) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL17_OFFSET (17) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL52 (0x00020000) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL52_OFFSET (17) +#define EMBER_AF_CHANNEL_MASK_915_CHANNEL17 (0x00020000) +#define EMBER_AF_CHANNEL_MASK_915_CHANNEL17_OFFSET (17) +#define EMBER_AF_CHANNEL_MASK_CHANNEL18 (0x00040000) +#define EMBER_AF_CHANNEL_MASK_CHANNEL18_OFFSET (18) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL18 (0x00040000) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL18_OFFSET (18) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL53 (0x00040000) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL53_OFFSET (18) +#define EMBER_AF_CHANNEL_MASK_915_CHANNEL18 (0x00040000) +#define EMBER_AF_CHANNEL_MASK_915_CHANNEL18_OFFSET (18) +#define EMBER_AF_CHANNEL_MASK_CHANNEL19 (0x00080000) +#define EMBER_AF_CHANNEL_MASK_CHANNEL19_OFFSET (19) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL19 (0x00080000) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL19_OFFSET (19) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL54 (0x00080000) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL54_OFFSET (19) +#define EMBER_AF_CHANNEL_MASK_915_CHANNEL19 (0x00080000) +#define EMBER_AF_CHANNEL_MASK_915_CHANNEL19_OFFSET (19) +#define EMBER_AF_CHANNEL_MASK_CHANNEL20 (0x00100000) +#define EMBER_AF_CHANNEL_MASK_CHANNEL20_OFFSET (20) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL20 (0x00100000) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL20_OFFSET (20) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL55 (0x00100000) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL55_OFFSET (20) +#define EMBER_AF_CHANNEL_MASK_915_CHANNEL20 (0x00100000) +#define EMBER_AF_CHANNEL_MASK_915_CHANNEL20_OFFSET (20) +#define EMBER_AF_CHANNEL_MASK_CHANNEL21 (0x00200000) +#define EMBER_AF_CHANNEL_MASK_CHANNEL21_OFFSET (21) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL21 (0x00200000) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL21_OFFSET (21) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL56 (0x00200000) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL56_OFFSET (21) +#define EMBER_AF_CHANNEL_MASK_915_CHANNEL21 (0x00200000) +#define EMBER_AF_CHANNEL_MASK_915_CHANNEL21_OFFSET (21) +#define EMBER_AF_CHANNEL_MASK_CHANNEL22 (0x00400000) +#define EMBER_AF_CHANNEL_MASK_CHANNEL22_OFFSET (22) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL22 (0x00400000) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL22_OFFSET (22) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL57 (0x00400000) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL57_OFFSET (22) +#define EMBER_AF_CHANNEL_MASK_915_CHANNEL22 (0x00400000) +#define EMBER_AF_CHANNEL_MASK_915_CHANNEL22_OFFSET (22) +#define EMBER_AF_CHANNEL_MASK_CHANNEL23 (0x00800000) +#define EMBER_AF_CHANNEL_MASK_CHANNEL23_OFFSET (23) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL23 (0x00800000) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL23_OFFSET (23) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL58 (0x00800000) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL58_OFFSET (23) +#define EMBER_AF_CHANNEL_MASK_915_CHANNEL23 (0x00800000) +#define EMBER_AF_CHANNEL_MASK_915_CHANNEL23_OFFSET (23) +#define EMBER_AF_CHANNEL_MASK_CHANNEL24 (0x01000000) +#define EMBER_AF_CHANNEL_MASK_CHANNEL24_OFFSET (24) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL24 (0x01000000) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL24_OFFSET (24) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL59 (0x01000000) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL59_OFFSET (24) +#define EMBER_AF_CHANNEL_MASK_915_CHANNEL24 (0x01000000) +#define EMBER_AF_CHANNEL_MASK_915_CHANNEL24_OFFSET (24) +#define EMBER_AF_CHANNEL_MASK_CHANNEL25 (0x02000000) +#define EMBER_AF_CHANNEL_MASK_CHANNEL25_OFFSET (25) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL25 (0x02000000) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL25_OFFSET (25) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL60 (0x02000000) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL60_OFFSET (25) +#define EMBER_AF_CHANNEL_MASK_915_CHANNEL25 (0x02000000) +#define EMBER_AF_CHANNEL_MASK_915_CHANNEL25_OFFSET (25) +#define EMBER_AF_CHANNEL_MASK_CHANNEL26 (0x04000000) +#define EMBER_AF_CHANNEL_MASK_CHANNEL26_OFFSET (26) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL26 (0x04000000) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL26_OFFSET (26) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL61 (0x04000000) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL61_OFFSET (26) +#define EMBER_AF_CHANNEL_MASK_915_CHANNEL26 (0x04000000) +#define EMBER_AF_CHANNEL_MASK_915_CHANNEL26_OFFSET (26) +#define EMBER_AF_CHANNEL_MASK_PAGE (0xF8000000) +#define EMBER_AF_CHANNEL_MASK_PAGE_OFFSET (27) #define EMBER_AF_CLEARED_EVENTS_LOGS_ALL_LOGS_CLEARED (0x01) +#define EMBER_AF_CLEARED_EVENTS_LOGS_ALL_LOGS_CLEARED_OFFSET (0) #define EMBER_AF_CLEARED_EVENTS_LOGS_TAMPER_LOG_CLEARED (0x02) #define EMBER_AF_CLEARED_EVENTS_LOGS_TAMPER_LOG_CLEARED_OFFSET (1) #define EMBER_AF_CLEARED_EVENTS_LOGS_FAULT_LOG_CLEARED (0x04) @@ -3136,97 +3003,254 @@ typedef enum #define EMBER_AF_CLEARED_EVENTS_LOGS_SECURITY_EVENT_LOG_CLEARED_OFFSET (4) #define EMBER_AF_CLEARED_EVENTS_LOGS_NETWORK_EVENT_LOG_CLEARED (0x20) #define EMBER_AF_CLEARED_EVENTS_LOGS_NETWORK_EVENT_LOG_CLEARED_OFFSET (5) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL0 (0x00000001) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL1 (0x00000002) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL1_OFFSET (1) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL2 (0x00000004) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL2_OFFSET (2) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL3 (0x00000008) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL3_OFFSET (3) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL4 (0x00000010) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL4_OFFSET (4) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL5 (0x00000020) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL5_OFFSET (5) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL6 (0x00000040) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL6_OFFSET (6) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL7 (0x00000080) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL7_OFFSET (7) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL8 (0x00000100) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL8_OFFSET (8) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL9 (0x00000200) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL9_OFFSET (9) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL10 (0x00000400) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL10_OFFSET (10) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL11 (0x00000800) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL11_OFFSET (11) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL12 (0x00001000) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL12_OFFSET (12) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL13 (0x00002000) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL13_OFFSET (13) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL14 (0x00004000) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL14_OFFSET (14) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL15 (0x00008000) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL15_OFFSET (15) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL16 (0x00010000) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL16_OFFSET (16) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL17 (0x00020000) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL17_OFFSET (17) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL18 (0x00040000) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL18_OFFSET (18) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL19 (0x00080000) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL19_OFFSET (19) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL20 (0x00100000) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL20_OFFSET (20) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL21 (0x00200000) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL21_OFFSET (21) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL22 (0x00400000) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL22_OFFSET (22) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL23 (0x00800000) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL23_OFFSET (23) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL24 (0x01000000) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL24_OFFSET (24) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL25 (0x02000000) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL25_OFFSET (25) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL26 (0x04000000) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL26_OFFSET (26) -#define EMBER_AF_CHANNEL_MASK_PAGE (0xF8000000) -#define EMBER_AF_CHANNEL_MASK_PAGE_OFFSET (27) -#define EMBER_AF_SCENES_COPY_MODE_COPY_ALL_SCENES (0x01) -#define EMBER_AF_ON_OFF_CONTROL_ACCEPT_ONLY_WHEN_ON (0x01) #define EMBER_AF_COLOR_CAPABILITIES_HUE_SATURATION_SUPPORTED (0x0001) +#define EMBER_AF_COLOR_CAPABILITIES_HUE_SATURATION_SUPPORTED_OFFSET (0) #define EMBER_AF_COLOR_CAPABILITIES_ENHANCED_HUE_SUPPORTED (0x0002) #define EMBER_AF_COLOR_CAPABILITIES_ENHANCED_HUE_SUPPORTED_OFFSET (1) #define EMBER_AF_COLOR_CAPABILITIES_COLOR_LOOP_SUPPORTED (0x0004) #define EMBER_AF_COLOR_CAPABILITIES_COLOR_LOOP_SUPPORTED_OFFSET (2) -#define EMBER_AF_COLOR_CAPABILITIES_X_Y_ATTRIBUTES_SUPPORTED (0x0008) -#define EMBER_AF_COLOR_CAPABILITIES_X_Y_ATTRIBUTES_SUPPORTED_OFFSET (3) +#define EMBER_AF_COLOR_CAPABILITIES_XY_ATTRIBUTES_SUPPORTED (0x0008) +#define EMBER_AF_COLOR_CAPABILITIES_XY_ATTRIBUTES_SUPPORTED_OFFSET (3) #define EMBER_AF_COLOR_CAPABILITIES_COLOR_TEMPERATURE_SUPPORTED (0x0010) #define EMBER_AF_COLOR_CAPABILITIES_COLOR_TEMPERATURE_SUPPORTED_OFFSET (4) #define EMBER_AF_COLOR_LOOP_UPDATE_FLAGS_UPDATE_ACTION (0x01) +#define EMBER_AF_COLOR_LOOP_UPDATE_FLAGS_UPDATE_ACTION_OFFSET (0) #define EMBER_AF_COLOR_LOOP_UPDATE_FLAGS_UPDATE_DIRECTION (0x02) #define EMBER_AF_COLOR_LOOP_UPDATE_FLAGS_UPDATE_DIRECTION_OFFSET (1) #define EMBER_AF_COLOR_LOOP_UPDATE_FLAGS_UPDATE_TIME (0x04) #define EMBER_AF_COLOR_LOOP_UPDATE_FLAGS_UPDATE_TIME_OFFSET (2) #define EMBER_AF_COLOR_LOOP_UPDATE_FLAGS_UPDATE_START_HUE (0x08) #define EMBER_AF_COLOR_LOOP_UPDATE_FLAGS_UPDATE_START_HUE_OFFSET (3) -#define EMBER_AF_ZIGBEE_INFORMATION_LOGICAL_TYPE (0x03) -#define EMBER_AF_ZIGBEE_INFORMATION_RX_ON_WHEN_IDLE (0x04) -#define EMBER_AF_ZIGBEE_INFORMATION_RX_ON_WHEN_IDLE_OFFSET (2) -#define EMBER_AF_ZLL_INFORMATION_FACTORY_NEW (0x01) -#define EMBER_AF_ZLL_INFORMATION_ADDRESS_ASSIGNMENT (0x02) -#define EMBER_AF_ZLL_INFORMATION_ADDRESS_ASSIGNMENT_OFFSET (1) -#define EMBER_AF_ZLL_INFORMATION_TOUCH_LINK_INITIATOR (0x10) -#define EMBER_AF_ZLL_INFORMATION_TOUCH_LINK_INITIATOR_OFFSET (4) -#define EMBER_AF_ZLL_INFORMATION_TOUCH_LINK_PRIORITY_REQUEST (0x20) -#define EMBER_AF_ZLL_INFORMATION_TOUCH_LINK_PRIORITY_REQUEST_OFFSET (5) -#define EMBER_AF_ZLL_INFORMATION_PROFILE_INTEROP (0x80) -#define EMBER_AF_ZLL_INFORMATION_PROFILE_INTEROP_OFFSET (7) -#define EMBER_AF_KEY_BITMASK_DEVELOPMENT (0x0001) -#define EMBER_AF_KEY_BITMASK_MASTER (0x0010) -#define EMBER_AF_KEY_BITMASK_MASTER_OFFSET (4) -#define EMBER_AF_KEY_BITMASK_CERTIFICATION (0x8000) -#define EMBER_AF_KEY_BITMASK_CERTIFICATION_OFFSET (15) +#define EMBER_AF_CONVERSION_FACTOR_TRAILING_DIGIT_TRAILING_DIGIT (0xF0) +#define EMBER_AF_CONVERSION_FACTOR_TRAILING_DIGIT_TRAILING_DIGIT_OFFSET (4) +#define EMBER_AF_CREDIT_STATUS_CREDIT_OK (0x01) +#define EMBER_AF_CREDIT_STATUS_CREDIT_OK_OFFSET (0) +#define EMBER_AF_CREDIT_STATUS_LOW_CREDIT (0x02) +#define EMBER_AF_CREDIT_STATUS_LOW_CREDIT_OFFSET (1) +#define EMBER_AF_CREDIT_STATUS_EMERGENCY_CREDIT_ENABLED (0x04) +#define EMBER_AF_CREDIT_STATUS_EMERGENCY_CREDIT_ENABLED_OFFSET (2) +#define EMBER_AF_CREDIT_STATUS_EMERGENCY_CREDIT_AVAILABLE (0x08) +#define EMBER_AF_CREDIT_STATUS_EMERGENCY_CREDIT_AVAILABLE_OFFSET (3) +#define EMBER_AF_CREDIT_STATUS_EMERGENCY_CREDIT_SELECTED (0x10) +#define EMBER_AF_CREDIT_STATUS_EMERGENCY_CREDIT_SELECTED_OFFSET (4) +#define EMBER_AF_CREDIT_STATUS_EMERGENCY_CREDIT_IN_USE (0x20) +#define EMBER_AF_CREDIT_STATUS_EMERGENCY_CREDIT_IN_USE_OFFSET (5) +#define EMBER_AF_CREDIT_STATUS_CREDIT_EXHAUSTED (0x40) +#define EMBER_AF_CREDIT_STATUS_CREDIT_EXHAUSTED_OFFSET (6) +#define EMBER_AF_CURRENCY_CHANGE_CONTROL_CLEAR_BILLING_INFO (0x01) +#define EMBER_AF_CURRENCY_CHANGE_CONTROL_CLEAR_BILLING_INFO_OFFSET (0) +#define EMBER_AF_CURRENCY_CHANGE_CONTROL_CONVERT_BILLING_INFO_USING_NEW_CURRENCY (0x02) +#define EMBER_AF_CURRENCY_CHANGE_CONTROL_CONVERT_BILLING_INFO_USING_NEW_CURRENCY_OFFSET (1) +#define EMBER_AF_CURRENCY_CHANGE_CONTROL_CLEAR_OLD_CONSUMPTION_DATA (0x04) +#define EMBER_AF_CURRENCY_CHANGE_CONTROL_CLEAR_OLD_CONSUMPTION_DATA_OFFSET (2) +#define EMBER_AF_CURRENCY_CHANGE_CONTROL_CONVERT_OLD_CONSUMPTION_DATA_USING_NEW_CURRENCY (0x08) +#define EMBER_AF_CURRENCY_CHANGE_CONTROL_CONVERT_OLD_CONSUMPTION_DATA_USING_NEW_CURRENCY_OFFSET (3) +#define EMBER_AF_CURRENT_EVENT_STATUS_RANDOMIZED_START_TIME (0x01) +#define EMBER_AF_CURRENT_EVENT_STATUS_RANDOMIZED_START_TIME_OFFSET (0) +#define EMBER_AF_CURRENT_EVENT_STATUS_RANDOMIZED_DURATION (0x02) +#define EMBER_AF_CURRENT_EVENT_STATUS_RANDOMIZED_DURATION_OFFSET (1) +#define EMBER_AF_CURRENT_EVENT_STATUS_EXTENDED_BITS_PRESENT (0x04) +#define EMBER_AF_CURRENT_EVENT_STATUS_EXTENDED_BITS_PRESENT_OFFSET (2) +#define EMBER_AF_CURRENT_EVENT_STATUS_EVENT_ACTIVE (0x08) +#define EMBER_AF_CURRENT_EVENT_STATUS_EVENT_ACTIVE_OFFSET (3) +#define EMBER_AF_CURRENT_EVENT_STATUS_DEVICE_PARTICIPATING_IN_EVENT (0x10) +#define EMBER_AF_CURRENT_EVENT_STATUS_DEVICE_PARTICIPATING_IN_EVENT_OFFSET (4) +#define EMBER_AF_CURRENT_EVENT_STATUS_REDUCING_LOAD (0x20) +#define EMBER_AF_CURRENT_EVENT_STATUS_REDUCING_LOAD_OFFSET (5) +#define EMBER_AF_CURRENT_EVENT_STATUS_ON_AT_END_OF_EVENT (0x40) +#define EMBER_AF_CURRENT_EVENT_STATUS_ON_AT_END_OF_EVENT_OFFSET (6) +#define EMBER_AF_DAY_OF_WEEK_SUNDAY (0x01) +#define EMBER_AF_DAY_OF_WEEK_SUNDAY_OFFSET (0) +#define EMBER_AF_DAY_OF_WEEK_MONDAY (0x02) +#define EMBER_AF_DAY_OF_WEEK_MONDAY_OFFSET (1) +#define EMBER_AF_DAY_OF_WEEK_TUESDAY (0x04) +#define EMBER_AF_DAY_OF_WEEK_TUESDAY_OFFSET (2) +#define EMBER_AF_DAY_OF_WEEK_WEDNESDAY (0x08) +#define EMBER_AF_DAY_OF_WEEK_WEDNESDAY_OFFSET (3) +#define EMBER_AF_DAY_OF_WEEK_THURSDAY (0x10) +#define EMBER_AF_DAY_OF_WEEK_THURSDAY_OFFSET (4) +#define EMBER_AF_DAY_OF_WEEK_FRIDAY (0x20) +#define EMBER_AF_DAY_OF_WEEK_FRIDAY_OFFSET (5) +#define EMBER_AF_DAY_OF_WEEK_SATURDAY (0x40) +#define EMBER_AF_DAY_OF_WEEK_SATURDAY_OFFSET (6) +#define EMBER_AF_DAY_OF_WEEK_AWAY_OR_VACATION (0x80) +#define EMBER_AF_DAY_OF_WEEK_AWAY_OR_VACATION_OFFSET (7) +#define EMBER_AF_DEVICE_TEMP_ALARM_MASK_TOO_LOW (0x1) +#define EMBER_AF_DEVICE_TEMP_ALARM_MASK_TOO_LOW_OFFSET (0) +#define EMBER_AF_DEVICE_TEMP_ALARM_MASK_TOO_HIGH (0x2) +#define EMBER_AF_DEVICE_TEMP_ALARM_MASK_TOO_HIGH_OFFSET (1) +#define EMBER_AF_DOOR_LOCK_DAY_OF_WEEK_SUNDAY (0x01) +#define EMBER_AF_DOOR_LOCK_DAY_OF_WEEK_SUNDAY_OFFSET (0) +#define EMBER_AF_DOOR_LOCK_DAY_OF_WEEK_MONDAY (0x02) +#define EMBER_AF_DOOR_LOCK_DAY_OF_WEEK_MONDAY_OFFSET (1) +#define EMBER_AF_DOOR_LOCK_DAY_OF_WEEK_TUESDAY (0x04) +#define EMBER_AF_DOOR_LOCK_DAY_OF_WEEK_TUESDAY_OFFSET (2) +#define EMBER_AF_DOOR_LOCK_DAY_OF_WEEK_WEDNESDAY (0x08) +#define EMBER_AF_DOOR_LOCK_DAY_OF_WEEK_WEDNESDAY_OFFSET (3) +#define EMBER_AF_DOOR_LOCK_DAY_OF_WEEK_THURSDAY (0x10) +#define EMBER_AF_DOOR_LOCK_DAY_OF_WEEK_THURSDAY_OFFSET (4) +#define EMBER_AF_DOOR_LOCK_DAY_OF_WEEK_FRIDAY (0x20) +#define EMBER_AF_DOOR_LOCK_DAY_OF_WEEK_FRIDAY_OFFSET (5) +#define EMBER_AF_DOOR_LOCK_DAY_OF_WEEK_SATURDAY (0x40) +#define EMBER_AF_DOOR_LOCK_DAY_OF_WEEK_SATURDAY_OFFSET (6) +#define EMBER_AF_ENERGY_FORMATTING_NUMBER_OF_DIGITS_TO_THE_RIGHT_OF_THE_DECIMAL_POINT (0x07) +#define EMBER_AF_ENERGY_FORMATTING_NUMBER_OF_DIGITS_TO_THE_RIGHT_OF_THE_DECIMAL_POINT_OFFSET (0) +#define EMBER_AF_ENERGY_FORMATTING_NUMBER_OF_DIGITS_TO_THE_LEFT_OF_THE_DECIMAL_POINT (0x78) +#define EMBER_AF_ENERGY_FORMATTING_NUMBER_OF_DIGITS_TO_THE_LEFT_OF_THE_DECIMAL_POINT_OFFSET (3) +#define EMBER_AF_ENERGY_FORMATTING_SUPPRESS_LEADING_ZEROS (0x80) +#define EMBER_AF_ENERGY_FORMATTING_SUPPRESS_LEADING_ZEROS_OFFSET (7) +#define EMBER_AF_EVENT_ACTION_CONTROL_REPORT_EVENT_TO_HAN_DEVICES (0x01) +#define EMBER_AF_EVENT_ACTION_CONTROL_REPORT_EVENT_TO_HAN_DEVICES_OFFSET (0) +#define EMBER_AF_EVENT_ACTION_CONTROL_REPORT_EVENT_TO_WAN (0x02) +#define EMBER_AF_EVENT_ACTION_CONTROL_REPORT_EVENT_TO_WAN_OFFSET (1) +#define EMBER_AF_EVENT_CONFIGURATION_LOG_ACTION (0x07) +#define EMBER_AF_EVENT_CONFIGURATION_LOG_ACTION_OFFSET (0) +#define EMBER_AF_EVENT_CONFIGURATION_PUSH_EVENT_TO_WAN (0x08) +#define EMBER_AF_EVENT_CONFIGURATION_PUSH_EVENT_TO_WAN_OFFSET (3) +#define EMBER_AF_EVENT_CONFIGURATION_PUSH_EVENT_TO_HAN (0x10) +#define EMBER_AF_EVENT_CONFIGURATION_PUSH_EVENT_TO_HAN_OFFSET (4) +#define EMBER_AF_EVENT_CONFIGURATION_RAISE_ALARM_ZIG_BEE (0x20) +#define EMBER_AF_EVENT_CONFIGURATION_RAISE_ALARM_ZIG_BEE_OFFSET (5) +#define EMBER_AF_EVENT_CONFIGURATION_RAISE_ALARM_PHYSICAL (0x40) +#define EMBER_AF_EVENT_CONFIGURATION_RAISE_ALARM_PHYSICAL_OFFSET (6) +#define EMBER_AF_EVENT_CONTROL_LOG_ID_LOG_ID (0x0F) +#define EMBER_AF_EVENT_CONTROL_LOG_ID_LOG_ID_OFFSET (0) +#define EMBER_AF_EVENT_CONTROL_LOG_ID_EVENT_CONTROL (0xF0) +#define EMBER_AF_EVENT_CONTROL_LOG_ID_EVENT_CONTROL_OFFSET (4) +#define EMBER_AF_FRIENDLY_CREDIT_FRIENDLY_CREDIT_ENABLED (0x01) +#define EMBER_AF_FRIENDLY_CREDIT_FRIENDLY_CREDIT_ENABLED_OFFSET (0) +#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_NEW_OTA_FIRMWARE (0x00000001) +#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_NEW_OTA_FIRMWARE_OFFSET (0) +#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_CBKE_UPDATE_REQUEST (0x00000002) +#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_CBKE_UPDATE_REQUEST_OFFSET (1) +#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_TIME_SYNC (0x00000004) +#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_TIME_SYNC_OFFSET (2) +#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_STAY_AWAKE_REQUEST_HAN (0x00000010) +#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_STAY_AWAKE_REQUEST_HAN_OFFSET (4) +#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_STAY_AWAKE_REQUEST_WAN (0x00000020) +#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_STAY_AWAKE_REQUEST_WAN_OFFSET (5) +#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_PUSH_HISTORICAL_METERING_DATA_ATTRIBUTE_SET (0x000001C0) +#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_PUSH_HISTORICAL_METERING_DATA_ATTRIBUTE_SET_OFFSET (6) +#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_PUSH_HISTORICAL_PREPAYMENT_DATA_ATTRIBUTE_SET (0x00000E00) +#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_PUSH_HISTORICAL_PREPAYMENT_DATA_ATTRIBUTE_SET_OFFSET (9) +#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_PUSH_ALL_STATIC_DATA_BASIC_CLUSTER (0x00001000) +#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_PUSH_ALL_STATIC_DATA_BASIC_CLUSTER_OFFSET (12) +#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_PUSH_ALL_STATIC_DATA_METERING_CLUSTER (0x00002000) +#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_PUSH_ALL_STATIC_DATA_METERING_CLUSTER_OFFSET (13) +#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_PUSH_ALL_STATIC_DATA_PREPAYMENT_CLUSTER (0x00004000) +#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_PUSH_ALL_STATIC_DATA_PREPAYMENT_CLUSTER_OFFSET (14) +#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_NETWORK_KEY_ACTIVE (0x00008000) +#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_NETWORK_KEY_ACTIVE_OFFSET (15) +#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_DISPLAY_MESSAGE (0x00010000) +#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_DISPLAY_MESSAGE_OFFSET (16) +#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_CANCEL_ALL_MESSAGES (0x00020000) +#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_CANCEL_ALL_MESSAGES_OFFSET (17) +#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_CHANGE_SUPPLY (0x00040000) +#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_CHANGE_SUPPLY_OFFSET (18) +#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_LOCAL_CHANGE_SUPPLY (0x00080000) +#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_LOCAL_CHANGE_SUPPLY_OFFSET (19) +#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_SET_UNCONTROLLED_FLOW_THRESHOLD (0x00100000) +#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_SET_UNCONTROLLED_FLOW_THRESHOLD_OFFSET (20) +#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_TUNNEL_MESSAGE_PENDING (0x00200000) +#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_TUNNEL_MESSAGE_PENDING_OFFSET (21) +#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_GET_SNAPSHOT (0x00400000) +#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_GET_SNAPSHOT_OFFSET (22) +#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_GET_SAMPLED_DATA (0x00800000) +#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_GET_SAMPLED_DATA_OFFSET (23) +#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_NEW_SUB_GHZ_CHANNEL_MASKS_AVAILABLE (0x01000000) +#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_NEW_SUB_GHZ_CHANNEL_MASKS_AVAILABLE_OFFSET (24) +#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_ENERGY_SCAN_PENDING (0x02000000) +#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_ENERGY_SCAN_PENDING_OFFSET (25) +#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_CHANNEL_CHANGE_PENDING (0x04000000) +#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_CHANNEL_CHANGE_PENDING_OFFSET (26) +#define EMBER_AF_GET_LOCATION_DATA_FLAGS_ABSOLUTE_ONLY (0x1) +#define EMBER_AF_GET_LOCATION_DATA_FLAGS_ABSOLUTE_ONLY_OFFSET (0) +#define EMBER_AF_GET_LOCATION_DATA_FLAGS_RECALCULATE (0x2) +#define EMBER_AF_GET_LOCATION_DATA_FLAGS_RECALCULATE_OFFSET (1) +#define EMBER_AF_GET_LOCATION_DATA_FLAGS_BROADCAST (0x4) +#define EMBER_AF_GET_LOCATION_DATA_FLAGS_BROADCAST_OFFSET (2) +#define EMBER_AF_GET_LOCATION_DATA_FLAGS_BROADCAST_RESPONSE (0x8) +#define EMBER_AF_GET_LOCATION_DATA_FLAGS_BROADCAST_RESPONSE_OFFSET (3) +#define EMBER_AF_GET_LOCATION_DATA_FLAGS_COMPACT_RESPONSE (0x10) +#define EMBER_AF_GET_LOCATION_DATA_FLAGS_COMPACT_RESPONSE_OFFSET (4) +#define EMBER_AF_GP_APPLICATION_INFORMATION_MANUFACTURE_ID_PRESENT (0x01) +#define EMBER_AF_GP_APPLICATION_INFORMATION_MANUFACTURE_ID_PRESENT_OFFSET (0) +#define EMBER_AF_GP_APPLICATION_INFORMATION_MODEL_ID_PRESENT (0x02) +#define EMBER_AF_GP_APPLICATION_INFORMATION_MODEL_ID_PRESENT_OFFSET (1) +#define EMBER_AF_GP_APPLICATION_INFORMATION_GPD_COMMANDS_PRESENT (0x04) +#define EMBER_AF_GP_APPLICATION_INFORMATION_GPD_COMMANDS_PRESENT_OFFSET (2) +#define EMBER_AF_GP_APPLICATION_INFORMATION_CLUSTER_LIST_PRESENT (0x08) +#define EMBER_AF_GP_APPLICATION_INFORMATION_CLUSTER_LIST_PRESENT_OFFSET (3) +#define EMBER_AF_GP_APPLICATION_INFORMATION_SWITCH_INFORMATION_PRESENT (0x10) +#define EMBER_AF_GP_APPLICATION_INFORMATION_SWITCH_INFORMATION_PRESENT_OFFSET (4) +#define EMBER_AF_GP_APPLICATION_INFORMATION_APPLICATION_DESCRIPTION_PRESENT (0x20) +#define EMBER_AF_GP_APPLICATION_INFORMATION_APPLICATION_DESCRIPTION_PRESENT_OFFSET (5) +#define EMBER_AF_GP_COMMISSIONING_NOTIFICATION_OPTION_APPLICATION_ID (0x0007) +#define EMBER_AF_GP_COMMISSIONING_NOTIFICATION_OPTION_APPLICATION_ID_OFFSET (0) +#define EMBER_AF_GP_COMMISSIONING_NOTIFICATION_OPTION_RX_AFTER_TX (0x0008) +#define EMBER_AF_GP_COMMISSIONING_NOTIFICATION_OPTION_RX_AFTER_TX_OFFSET (3) +#define EMBER_AF_GP_COMMISSIONING_NOTIFICATION_OPTION_SECURITY_LEVEL (0x0030) +#define EMBER_AF_GP_COMMISSIONING_NOTIFICATION_OPTION_SECURITY_LEVEL_OFFSET (4) +#define EMBER_AF_GP_COMMISSIONING_NOTIFICATION_OPTION_SECURITY_KEY_TYPE (0x01C0) +#define EMBER_AF_GP_COMMISSIONING_NOTIFICATION_OPTION_SECURITY_KEY_TYPE_OFFSET (6) +#define EMBER_AF_GP_COMMISSIONING_NOTIFICATION_OPTION_SECURITY_PROCESSING_FAILED (0x0200) +#define EMBER_AF_GP_COMMISSIONING_NOTIFICATION_OPTION_SECURITY_PROCESSING_FAILED_OFFSET (9) +#define EMBER_AF_GP_COMMISSIONING_NOTIFICATION_OPTION_BIDIRECTIONAL_CAPABILITY (0x0400) +#define EMBER_AF_GP_COMMISSIONING_NOTIFICATION_OPTION_BIDIRECTIONAL_CAPABILITY_OFFSET (10) +#define EMBER_AF_GP_COMMISSIONING_NOTIFICATION_OPTION_PROXY_INFO_PRESENT (0x0800) +#define EMBER_AF_GP_COMMISSIONING_NOTIFICATION_OPTION_PROXY_INFO_PRESENT_OFFSET (11) +#define EMBER_AF_GP_COMMISSIONING_NOTIFICATION_OPTION_RESERVED (0xF000) +#define EMBER_AF_GP_COMMISSIONING_NOTIFICATION_OPTION_RESERVED_OFFSET (12) +#define EMBER_AF_GP_GPD_CHANNEL_CONFIGURATION_CHANNEL_MASK (0x1F) +#define EMBER_AF_GP_GPD_CHANNEL_CONFIGURATION_CHANNEL_MASK_OFFSET (0) +#define EMBER_AF_GP_GPD_CHANNEL_CONFIGURATION_CHANNEL_OPERATIONAL_CHANNEL (0x0F) +#define EMBER_AF_GP_GPD_CHANNEL_CONFIGURATION_CHANNEL_OPERATIONAL_CHANNEL_OFFSET (0) +#define EMBER_AF_GP_GPD_CHANNEL_CONFIGURATION_CHANNEL_BASIC (0x10) +#define EMBER_AF_GP_GPD_CHANNEL_CONFIGURATION_CHANNEL_BASIC_OFFSET (4) +#define EMBER_AF_GP_GPD_CHANNEL_CONFIGURATION_CHANNEL_RESERVED (0xE0) +#define EMBER_AF_GP_GPD_CHANNEL_CONFIGURATION_CHANNEL_RESERVED_OFFSET (5) +#define EMBER_AF_GP_GPD_CHANNEL_REQUEST_CHANNEL_TOGGLING_BEHAVIOUR_RX_CHANNEL_NEXT_ATTEMPT (0x0F) +#define EMBER_AF_GP_GPD_CHANNEL_REQUEST_CHANNEL_TOGGLING_BEHAVIOUR_RX_CHANNEL_NEXT_ATTEMPT_OFFSET (0) +#define EMBER_AF_GP_GPD_CHANNEL_REQUEST_CHANNEL_TOGGLING_BEHAVIOUR_RX_CHANNEL_SECOND_NEXT_ATTEMPT (0xF0) +#define EMBER_AF_GP_GPD_CHANNEL_REQUEST_CHANNEL_TOGGLING_BEHAVIOUR_RX_CHANNEL_SECOND_NEXT_ATTEMPT_OFFSET (4) +#define EMBER_AF_GP_GPD_COMMISSIONING_EXTENDED_OPTIONS_SECURITY_LEVEL_CAPABILITIES (0x03) +#define EMBER_AF_GP_GPD_COMMISSIONING_EXTENDED_OPTIONS_SECURITY_LEVEL_CAPABILITIES_OFFSET (0) +#define EMBER_AF_GP_GPD_COMMISSIONING_EXTENDED_OPTIONS_KEY_TYPE (0x1C) +#define EMBER_AF_GP_GPD_COMMISSIONING_EXTENDED_OPTIONS_KEY_TYPE_OFFSET (2) +#define EMBER_AF_GP_GPD_COMMISSIONING_EXTENDED_OPTIONS_GPD_KEY_PRESENT (0x20) +#define EMBER_AF_GP_GPD_COMMISSIONING_EXTENDED_OPTIONS_GPD_KEY_PRESENT_OFFSET (5) +#define EMBER_AF_GP_GPD_COMMISSIONING_EXTENDED_OPTIONS_GPD_KEY_ENCRYPTION (0x40) +#define EMBER_AF_GP_GPD_COMMISSIONING_EXTENDED_OPTIONS_GPD_KEY_ENCRYPTION_OFFSET (6) +#define EMBER_AF_GP_GPD_COMMISSIONING_EXTENDED_OPTIONS_GPD_OUTGOING_COUNTER_PRESENT (0x80) +#define EMBER_AF_GP_GPD_COMMISSIONING_EXTENDED_OPTIONS_GPD_OUTGOING_COUNTER_PRESENT_OFFSET (7) +#define EMBER_AF_GP_GPD_COMMISSIONING_OPTIONS_MAC_SEQ_NUM_CAP (0x01) +#define EMBER_AF_GP_GPD_COMMISSIONING_OPTIONS_MAC_SEQ_NUM_CAP_OFFSET (0) +#define EMBER_AF_GP_GPD_COMMISSIONING_OPTIONS_RX_ON_CAP (0x02) +#define EMBER_AF_GP_GPD_COMMISSIONING_OPTIONS_RX_ON_CAP_OFFSET (1) +#define EMBER_AF_GP_GPD_COMMISSIONING_OPTIONS_APPLICATION_INFORMATION_PRESENT (0x04) +#define EMBER_AF_GP_GPD_COMMISSIONING_OPTIONS_APPLICATION_INFORMATION_PRESENT_OFFSET (2) +#define EMBER_AF_GP_GPD_COMMISSIONING_OPTIONS_RESERVED (0x08) +#define EMBER_AF_GP_GPD_COMMISSIONING_OPTIONS_RESERVED_OFFSET (3) +#define EMBER_AF_GP_GPD_COMMISSIONING_OPTIONS_PAN_ID_REQUEST (0x10) +#define EMBER_AF_GP_GPD_COMMISSIONING_OPTIONS_PAN_ID_REQUEST_OFFSET (4) +#define EMBER_AF_GP_GPD_COMMISSIONING_OPTIONS_GP_SECURITY_KEY_REQUEST (0x20) +#define EMBER_AF_GP_GPD_COMMISSIONING_OPTIONS_GP_SECURITY_KEY_REQUEST_OFFSET (5) +#define EMBER_AF_GP_GPD_COMMISSIONING_OPTIONS_FIXED_LOCATION (0x40) +#define EMBER_AF_GP_GPD_COMMISSIONING_OPTIONS_FIXED_LOCATION_OFFSET (6) +#define EMBER_AF_GP_GPD_COMMISSIONING_OPTIONS_EXTENDED_OPTIONS_FIELD (0x80) +#define EMBER_AF_GP_GPD_COMMISSIONING_OPTIONS_EXTENDED_OPTIONS_FIELD_OFFSET (7) +#define EMBER_AF_GP_GPD_COMMISSIONING_REPLY_OPTIONS_PAN_ID_PRESENT (0x01) +#define EMBER_AF_GP_GPD_COMMISSIONING_REPLY_OPTIONS_PAN_ID_PRESENT_OFFSET (0) +#define EMBER_AF_GP_GPD_COMMISSIONING_REPLY_OPTIONS_GPD_SECURITY_KEY_PRESENT (0x02) +#define EMBER_AF_GP_GPD_COMMISSIONING_REPLY_OPTIONS_GPD_SECURITY_KEY_PRESENT_OFFSET (1) +#define EMBER_AF_GP_GPD_COMMISSIONING_REPLY_OPTIONS_GPDKEY_ENCRYPTION (0x04) +#define EMBER_AF_GP_GPD_COMMISSIONING_REPLY_OPTIONS_GPDKEY_ENCRYPTION_OFFSET (2) +#define EMBER_AF_GP_GPD_COMMISSIONING_REPLY_OPTIONS_SECURITY_LEVEL (0x18) +#define EMBER_AF_GP_GPD_COMMISSIONING_REPLY_OPTIONS_SECURITY_LEVEL_OFFSET (3) +#define EMBER_AF_GP_GPD_COMMISSIONING_REPLY_OPTIONS_KEY_TYPE (0xE0) +#define EMBER_AF_GP_GPD_COMMISSIONING_REPLY_OPTIONS_KEY_TYPE_OFFSET (5) #define EMBER_AF_GP_GPS_FUNCTIONALITY_GP_FEATURE (0x000001) +#define EMBER_AF_GP_GPS_FUNCTIONALITY_GP_FEATURE_OFFSET (0) #define EMBER_AF_GP_GPS_FUNCTIONALITY_DIRECT_COMMUNICATION (0x000002) #define EMBER_AF_GP_GPS_FUNCTIONALITY_DIRECT_COMMUNICATION_OFFSET (1) #define EMBER_AF_GP_GPS_FUNCTIONALITY_DERIVED_GROUPCAST_COMMUNICATION (0x000004) @@ -3269,74 +3293,8 @@ typedef enum #define EMBER_AF_GP_GPS_FUNCTIONALITY_COMPACT_ATTRIBUTE_REPORTING_OFFSET (20) #define EMBER_AF_GP_GPS_FUNCTIONALITY_RESERVED (0xE00000) #define EMBER_AF_GP_GPS_FUNCTIONALITY_RESERVED_OFFSET (21) -#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_APPLICATION_ID (0x00000007) -#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_ENTRY_ACTIVE (0x00000008) -#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_ENTRY_ACTIVE_OFFSET (3) -#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_ENTRY_VALID (0x00000010) -#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_ENTRY_VALID_OFFSET (4) -#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_SEQUENCE_NUMBER_CAP (0x00000020) -#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_SEQUENCE_NUMBER_CAP_OFFSET (5) -#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_LIGHTWEIGHT_UNICAST_GPS (0x00000040) -#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_LIGHTWEIGHT_UNICAST_GPS_OFFSET (6) -#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_DERIVED_GROUP_GPS (0x00000080) -#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_DERIVED_GROUP_GPS_OFFSET (7) -#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_COMMISIONED_GROUP_GPS (0x00000100) -#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_COMMISIONED_GROUP_GPS_OFFSET (8) -#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_FIRST_TO_FORWARD (0x00000200) -#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_FIRST_TO_FORWARD_OFFSET (9) -#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_IN_RANGE (0x00000400) -#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_IN_RANGE_OFFSET (10) -#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_GPD_FIXED (0x00000800) -#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_GPD_FIXED_OFFSET (11) -#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_HAS_ALL_UNICAST_ROUTES (0x00001000) -#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_HAS_ALL_UNICAST_ROUTES_OFFSET (12) -#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_ASSIGNED_ALIAS (0x00002000) -#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_ASSIGNED_ALIAS_OFFSET (13) -#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_SECURITY_USE (0x00004000) -#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_SECURITY_USE_OFFSET (14) -#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_EXTENSION (0x00008000) -#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_EXTENSION_OFFSET (15) -#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_FULL_UNICAST_GPS (0x00010000) -#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_FULL_UNICAST_GPS_OFFSET (16) -#define EMBER_AF_GP_PROXY_TABLE_ENTRY_SECURITY_OPTIONS_SECURITY_LEVEL (0x03) -#define EMBER_AF_GP_PROXY_TABLE_ENTRY_SECURITY_OPTIONS_SECURITY_KEY_TYPE (0x1C) -#define EMBER_AF_GP_PROXY_TABLE_ENTRY_SECURITY_OPTIONS_SECURITY_KEY_TYPE_OFFSET (2) -#define EMBER_AF_GP_PROXY_TABLE_ENTRY_SECURITY_OPTIONS_RESERVED (0xE0) -#define EMBER_AF_GP_PROXY_TABLE_ENTRY_SECURITY_OPTIONS_RESERVED_OFFSET (5) -#define EMBER_AF_GP_GPD_COMMISSIONING_OPTIONS_MAC_SEQ_NUM_CAP (0x01) -#define EMBER_AF_GP_GPD_COMMISSIONING_OPTIONS_RX_ON_CAP (0x02) -#define EMBER_AF_GP_GPD_COMMISSIONING_OPTIONS_RX_ON_CAP_OFFSET (1) -#define EMBER_AF_GP_GPD_COMMISSIONING_OPTIONS_APPLICATION_INFORMATION_PRESENT (0x04) -#define EMBER_AF_GP_GPD_COMMISSIONING_OPTIONS_APPLICATION_INFORMATION_PRESENT_OFFSET (2) -#define EMBER_AF_GP_GPD_COMMISSIONING_OPTIONS_RESERVED (0x08) -#define EMBER_AF_GP_GPD_COMMISSIONING_OPTIONS_RESERVED_OFFSET (3) -#define EMBER_AF_GP_GPD_COMMISSIONING_OPTIONS_PAN_ID_REQUEST (0x10) -#define EMBER_AF_GP_GPD_COMMISSIONING_OPTIONS_PAN_ID_REQUEST_OFFSET (4) -#define EMBER_AF_GP_GPD_COMMISSIONING_OPTIONS_GP_SECURITY_KEY_REQUEST (0x20) -#define EMBER_AF_GP_GPD_COMMISSIONING_OPTIONS_GP_SECURITY_KEY_REQUEST_OFFSET (5) -#define EMBER_AF_GP_GPD_COMMISSIONING_OPTIONS_FIXED_LOCATION (0x40) -#define EMBER_AF_GP_GPD_COMMISSIONING_OPTIONS_FIXED_LOCATION_OFFSET (6) -#define EMBER_AF_GP_GPD_COMMISSIONING_OPTIONS_EXTENDED_OPTIONS_FIELD (0x80) -#define EMBER_AF_GP_GPD_COMMISSIONING_OPTIONS_EXTENDED_OPTIONS_FIELD_OFFSET (7) -#define EMBER_AF_GP_GPD_COMMISSIONING_EXTENDED_OPTIONS_SECURITY_LEVEL_CAPABILITIES (0x03) -#define EMBER_AF_GP_GPD_COMMISSIONING_EXTENDED_OPTIONS_KEY_TYPE (0x1C) -#define EMBER_AF_GP_GPD_COMMISSIONING_EXTENDED_OPTIONS_KEY_TYPE_OFFSET (2) -#define EMBER_AF_GP_GPD_COMMISSIONING_EXTENDED_OPTIONS_GPD_KEY_PRESENT (0x20) -#define EMBER_AF_GP_GPD_COMMISSIONING_EXTENDED_OPTIONS_GPD_KEY_PRESENT_OFFSET (5) -#define EMBER_AF_GP_GPD_COMMISSIONING_EXTENDED_OPTIONS_GPD_KEY_ENCRYPTION (0x40) -#define EMBER_AF_GP_GPD_COMMISSIONING_EXTENDED_OPTIONS_GPD_KEY_ENCRYPTION_OFFSET (6) -#define EMBER_AF_GP_GPD_COMMISSIONING_EXTENDED_OPTIONS_GPD_OUTGOING_COUNTER_PRESENT (0x80) -#define EMBER_AF_GP_GPD_COMMISSIONING_EXTENDED_OPTIONS_GPD_OUTGOING_COUNTER_PRESENT_OFFSET (7) -#define EMBER_AF_GP_GPD_COMMISSIONING_REPLY_OPTIONS_PAN_ID_PRESENT (0x01) -#define EMBER_AF_GP_GPD_COMMISSIONING_REPLY_OPTIONS_GPD_SECURITY_KEY_PRESENT (0x02) -#define EMBER_AF_GP_GPD_COMMISSIONING_REPLY_OPTIONS_GPD_SECURITY_KEY_PRESENT_OFFSET (1) -#define EMBER_AF_GP_GPD_COMMISSIONING_REPLY_OPTIONS_GPDKEY_ENCRYPTION (0x04) -#define EMBER_AF_GP_GPD_COMMISSIONING_REPLY_OPTIONS_GPDKEY_ENCRYPTION_OFFSET (2) -#define EMBER_AF_GP_GPD_COMMISSIONING_REPLY_OPTIONS_SECURITY_LEVEL (0x18) -#define EMBER_AF_GP_GPD_COMMISSIONING_REPLY_OPTIONS_SECURITY_LEVEL_OFFSET (3) -#define EMBER_AF_GP_GPD_COMMISSIONING_REPLY_OPTIONS_KEY_TYPE (0xE0) -#define EMBER_AF_GP_GPD_COMMISSIONING_REPLY_OPTIONS_KEY_TYPE_OFFSET (5) #define EMBER_AF_GP_NOTIFICATION_OPTION_APPLICATION_ID (0x0007) +#define EMBER_AF_GP_NOTIFICATION_OPTION_APPLICATION_ID_OFFSET (0) #define EMBER_AF_GP_NOTIFICATION_OPTION_ALSO_UNICAST (0x0008) #define EMBER_AF_GP_NOTIFICATION_OPTION_ALSO_UNICAST_OFFSET (3) #define EMBER_AF_GP_NOTIFICATION_OPTION_ALSO_DERIVED_GROUP (0x0010) @@ -3357,86 +3315,22 @@ typedef enum #define EMBER_AF_GP_NOTIFICATION_OPTION_PROXY_INFO_PRESENT_OFFSET (14) #define EMBER_AF_GP_NOTIFICATION_OPTION_RESERVED (0x8000) #define EMBER_AF_GP_NOTIFICATION_OPTION_RESERVED_OFFSET (15) -#define EMBER_AF_GP_PAIRING_SEARCH_OPTION_APPLICATION_ID (0x0007) -#define EMBER_AF_GP_PAIRING_SEARCH_OPTION_REQUEST_UNICAST_SINKS (0x0008) -#define EMBER_AF_GP_PAIRING_SEARCH_OPTION_REQUEST_UNICAST_SINKS_OFFSET (3) -#define EMBER_AF_GP_PAIRING_SEARCH_OPTION_REQUEST_DERIVED_GROUPCAST_SINKS (0x0010) -#define EMBER_AF_GP_PAIRING_SEARCH_OPTION_REQUEST_DERIVED_GROUPCAST_SINKS_OFFSET (4) -#define EMBER_AF_GP_PAIRING_SEARCH_OPTION_REQUEST_COMMISSIONED_GROUPCAST_SINKS (0x0020) -#define EMBER_AF_GP_PAIRING_SEARCH_OPTION_REQUEST_COMMISSIONED_GROUPCAST_SINKS_OFFSET (5) -#define EMBER_AF_GP_PAIRING_SEARCH_OPTION_REQUEST_GPD_SECURITY_FRAME_COUNTER (0x0040) -#define EMBER_AF_GP_PAIRING_SEARCH_OPTION_REQUEST_GPD_SECURITY_FRAME_COUNTER_OFFSET (6) -#define EMBER_AF_GP_PAIRING_SEARCH_OPTION_REQUEST_GPD_SECURITY_KEY (0x0080) -#define EMBER_AF_GP_PAIRING_SEARCH_OPTION_REQUEST_GPD_SECURITY_KEY_OFFSET (7) -#define EMBER_AF_GP_PAIRING_SEARCH_OPTION_RESERVED (0xFF00) -#define EMBER_AF_GP_PAIRING_SEARCH_OPTION_RESERVED_OFFSET (8) -#define EMBER_AF_GP_TUNNELING_STOP_OPTION_APPLICATION_ID (0x07) -#define EMBER_AF_GP_TUNNELING_STOP_OPTION_ALSO_DERIVED_GROUP (0x08) -#define EMBER_AF_GP_TUNNELING_STOP_OPTION_ALSO_DERIVED_GROUP_OFFSET (3) -#define EMBER_AF_GP_TUNNELING_STOP_OPTION_ALSO_COMMISSIONED_GROUP (0x10) -#define EMBER_AF_GP_TUNNELING_STOP_OPTION_ALSO_COMMISSIONED_GROUP_OFFSET (4) -#define EMBER_AF_GP_TUNNELING_STOP_OPTION_RESERVED (0xE0) -#define EMBER_AF_GP_TUNNELING_STOP_OPTION_RESERVED_OFFSET (5) -#define EMBER_AF_GP_COMMISSIONING_NOTIFICATION_OPTION_APPLICATION_ID (0x0007) -#define EMBER_AF_GP_COMMISSIONING_NOTIFICATION_OPTION_RX_AFTER_TX (0x0008) -#define EMBER_AF_GP_COMMISSIONING_NOTIFICATION_OPTION_RX_AFTER_TX_OFFSET (3) -#define EMBER_AF_GP_COMMISSIONING_NOTIFICATION_OPTION_SECURITY_LEVEL (0x0030) -#define EMBER_AF_GP_COMMISSIONING_NOTIFICATION_OPTION_SECURITY_LEVEL_OFFSET (4) -#define EMBER_AF_GP_COMMISSIONING_NOTIFICATION_OPTION_SECURITY_KEY_TYPE (0x01C0) -#define EMBER_AF_GP_COMMISSIONING_NOTIFICATION_OPTION_SECURITY_KEY_TYPE_OFFSET (6) -#define EMBER_AF_GP_COMMISSIONING_NOTIFICATION_OPTION_SECURITY_PROCESSING_FAILED (0x0200) -#define EMBER_AF_GP_COMMISSIONING_NOTIFICATION_OPTION_SECURITY_PROCESSING_FAILED_OFFSET (9) -#define EMBER_AF_GP_COMMISSIONING_NOTIFICATION_OPTION_BIDIRECTIONAL_CAPABILITY (0x0400) -#define EMBER_AF_GP_COMMISSIONING_NOTIFICATION_OPTION_BIDIRECTIONAL_CAPABILITY_OFFSET (10) -#define EMBER_AF_GP_COMMISSIONING_NOTIFICATION_OPTION_PROXY_INFO_PRESENT (0x0800) -#define EMBER_AF_GP_COMMISSIONING_NOTIFICATION_OPTION_PROXY_INFO_PRESENT_OFFSET (11) -#define EMBER_AF_GP_COMMISSIONING_NOTIFICATION_OPTION_RESERVED (0xF000) -#define EMBER_AF_GP_COMMISSIONING_NOTIFICATION_OPTION_RESERVED_OFFSET (12) -#define EMBER_AF_GP_SINK_COMMISSIONING_MODE_OPTIONS_ACTION (0x01) -#define EMBER_AF_GP_SINK_COMMISSIONING_MODE_OPTIONS_INVOLVE_GPM_IN_SECURITY (0x02) -#define EMBER_AF_GP_SINK_COMMISSIONING_MODE_OPTIONS_INVOLVE_GPM_IN_SECURITY_OFFSET (1) -#define EMBER_AF_GP_SINK_COMMISSIONING_MODE_OPTIONS_INVOLVE_GPM_IN_PAIRING (0x04) -#define EMBER_AF_GP_SINK_COMMISSIONING_MODE_OPTIONS_INVOLVE_GPM_IN_PAIRING_OFFSET (2) -#define EMBER_AF_GP_SINK_COMMISSIONING_MODE_OPTIONS_INVOLVE_PROXIES (0x08) -#define EMBER_AF_GP_SINK_COMMISSIONING_MODE_OPTIONS_INVOLVE_PROXIES_OFFSET (3) -#define EMBER_AF_GP_SINK_COMMISSIONING_MODE_OPTIONS_RESERVED (0xF0) -#define EMBER_AF_GP_SINK_COMMISSIONING_MODE_OPTIONS_RESERVED_OFFSET (4) -#define EMBER_AF_GP_SINK_COMMISSIONING_MODE_EXIT_MODE_ON_COMMISSIONING_WINDOW_EXPIRATION (0x01) -#define EMBER_AF_GP_SINK_COMMISSIONING_MODE_EXIT_MODE_ON_FIRST_PAIRING_SUCCESS (0x02) -#define EMBER_AF_GP_SINK_COMMISSIONING_MODE_EXIT_MODE_ON_FIRST_PAIRING_SUCCESS_OFFSET (1) -#define EMBER_AF_GP_SINK_COMMISSIONING_MODE_EXIT_MODE_ON_GP_PROXY_COMMISSIONING_MODE_EXIT (0x04) -#define EMBER_AF_GP_SINK_COMMISSIONING_MODE_EXIT_MODE_ON_GP_PROXY_COMMISSIONING_MODE_EXIT_OFFSET (2) -#define EMBER_AF_GP_SINK_COMMISSIONING_MODE_EXIT_MODE_RESERVED (0xF8) -#define EMBER_AF_GP_SINK_COMMISSIONING_MODE_EXIT_MODE_RESERVED_OFFSET (3) -#define EMBER_AF_GP_SINK_TABLE_REQUEST_OPTIONS_APPLICATION_ID (0x07) -#define EMBER_AF_GP_SINK_TABLE_REQUEST_OPTIONS_REQUEST_TYPE (0x18) -#define EMBER_AF_GP_SINK_TABLE_REQUEST_OPTIONS_REQUEST_TYPE_OFFSET (3) -#define EMBER_AF_GP_SINK_TABLE_REQUEST_OPTIONS_RESERVED (0xE0) -#define EMBER_AF_GP_SINK_TABLE_REQUEST_OPTIONS_RESERVED_OFFSET (5) -#define EMBER_AF_GP_TRANSLATION_TABLE_UPDATE_OPTION_APPLICATION_ID (0x0007) -#define EMBER_AF_GP_TRANSLATION_TABLE_UPDATE_OPTION_ACTION (0x0018) -#define EMBER_AF_GP_TRANSLATION_TABLE_UPDATE_OPTION_ACTION_OFFSET (3) -#define EMBER_AF_GP_TRANSLATION_TABLE_UPDATE_OPTION_NUMBER_OF_TRANSLATIONS (0x00E0) -#define EMBER_AF_GP_TRANSLATION_TABLE_UPDATE_OPTION_NUMBER_OF_TRANSLATIONS_OFFSET (5) -#define EMBER_AF_GP_TRANSLATION_TABLE_UPDATE_OPTION_ADDITIONAL_INFORMATION_BLOCK_PRESENT (0x0100) -#define EMBER_AF_GP_TRANSLATION_TABLE_UPDATE_OPTION_ADDITIONAL_INFORMATION_BLOCK_PRESENT_OFFSET (8) -#define EMBER_AF_GP_TRANSLATION_TABLE_UPDATE_OPTION_RESERVED (0xFE00) -#define EMBER_AF_GP_TRANSLATION_TABLE_UPDATE_OPTION_RESERVED_OFFSET (9) -#define EMBER_AF_GP_TRANSLATION_TABLE_SCAN_LEVEL_GPD_ID (0x01) -#define EMBER_AF_GP_TRANSLATION_TABLE_SCAN_LEVEL_CMD_ID (0x02) -#define EMBER_AF_GP_TRANSLATION_TABLE_SCAN_LEVEL_CMD_ID_OFFSET (1) -#define EMBER_AF_GP_TRANSLATION_TABLE_SCAN_LEVEL_PAYLOAD (0x04) -#define EMBER_AF_GP_TRANSLATION_TABLE_SCAN_LEVEL_PAYLOAD_OFFSET (2) -#define EMBER_AF_GP_TRANSLATION_TABLE_SCAN_LEVEL_ZB_ENDPOINT (0x08) -#define EMBER_AF_GP_TRANSLATION_TABLE_SCAN_LEVEL_ZB_ENDPOINT_OFFSET (3) -#define EMBER_AF_GP_TRANSLATION_TABLE_SCAN_LEVEL_ADDITIONAL_INFO_BLOCK (0x10) -#define EMBER_AF_GP_TRANSLATION_TABLE_SCAN_LEVEL_ADDITIONAL_INFO_BLOCK_OFFSET (4) +#define EMBER_AF_GP_NOTIFICATION_RESPONSE_OPTION_APPLICATION_ID (0x07) +#define EMBER_AF_GP_NOTIFICATION_RESPONSE_OPTION_APPLICATION_ID_OFFSET (0) +#define EMBER_AF_GP_NOTIFICATION_RESPONSE_OPTION_FIRST_TO_FORWARD (0x08) +#define EMBER_AF_GP_NOTIFICATION_RESPONSE_OPTION_FIRST_TO_FORWARD_OFFSET (3) +#define EMBER_AF_GP_NOTIFICATION_RESPONSE_OPTION_NO_PAIRING (0x10) +#define EMBER_AF_GP_NOTIFICATION_RESPONSE_OPTION_NO_PAIRING_OFFSET (4) +#define EMBER_AF_GP_NOTIFICATION_RESPONSE_OPTION_RESERVED (0xE0) +#define EMBER_AF_GP_NOTIFICATION_RESPONSE_OPTION_RESERVED_OFFSET (5) #define EMBER_AF_GP_PAIRING_CONFIGURATION_ACTIONS_ACTION (0x07) +#define EMBER_AF_GP_PAIRING_CONFIGURATION_ACTIONS_ACTION_OFFSET (0) #define EMBER_AF_GP_PAIRING_CONFIGURATION_ACTIONS_SEND_GP_PAIRING (0x08) #define EMBER_AF_GP_PAIRING_CONFIGURATION_ACTIONS_SEND_GP_PAIRING_OFFSET (3) #define EMBER_AF_GP_PAIRING_CONFIGURATION_ACTIONS_RESERVED (0xF0) #define EMBER_AF_GP_PAIRING_CONFIGURATION_ACTIONS_RESERVED_OFFSET (4) #define EMBER_AF_GP_PAIRING_CONFIGURATION_OPTION_APPLICATION_ID (0x0007) +#define EMBER_AF_GP_PAIRING_CONFIGURATION_OPTION_APPLICATION_ID_OFFSET (0) #define EMBER_AF_GP_PAIRING_CONFIGURATION_OPTION_COMMUNICATION_MODE (0x0018) #define EMBER_AF_GP_PAIRING_CONFIGURATION_OPTION_COMMUNICATION_MODE_OFFSET (3) #define EMBER_AF_GP_PAIRING_CONFIGURATION_OPTION_SEQUENCE_NUMBER_CAPABILITIES (0x0020) @@ -3453,25 +3347,8 @@ typedef enum #define EMBER_AF_GP_PAIRING_CONFIGURATION_OPTION_APPLICATION_INFORMATION_PRESENT_OFFSET (10) #define EMBER_AF_GP_PAIRING_CONFIGURATION_OPTION_RESERVED (0xF800) #define EMBER_AF_GP_PAIRING_CONFIGURATION_OPTION_RESERVED_OFFSET (11) -#define EMBER_AF_GP_APPLICATION_INFORMATION_MANUFACTURE_ID_PRESENT (0x01) -#define EMBER_AF_GP_APPLICATION_INFORMATION_MODEL_ID_PRESENT (0x02) -#define EMBER_AF_GP_APPLICATION_INFORMATION_MODEL_ID_PRESENT_OFFSET (1) -#define EMBER_AF_GP_APPLICATION_INFORMATION_GPD_COMMANDS_PRESENT (0x04) -#define EMBER_AF_GP_APPLICATION_INFORMATION_GPD_COMMANDS_PRESENT_OFFSET (2) -#define EMBER_AF_GP_APPLICATION_INFORMATION_CLUSTER_LIST_PRESENT (0x08) -#define EMBER_AF_GP_APPLICATION_INFORMATION_CLUSTER_LIST_PRESENT_OFFSET (3) -#define EMBER_AF_GP_APPLICATION_INFORMATION_SWITCH_INFORMATION_PRESENT (0x10) -#define EMBER_AF_GP_APPLICATION_INFORMATION_SWITCH_INFORMATION_PRESENT_OFFSET (4) -#define EMBER_AF_GP_APPLICATION_INFORMATION_APPLICATION_DESCRIPTION_PRESENT (0x20) -#define EMBER_AF_GP_APPLICATION_INFORMATION_APPLICATION_DESCRIPTION_PRESENT_OFFSET (5) -#define EMBER_AF_GP_NOTIFICATION_RESPONSE_OPTION_APPLICATION_ID (0x07) -#define EMBER_AF_GP_NOTIFICATION_RESPONSE_OPTION_FIRST_TO_FORWARD (0x08) -#define EMBER_AF_GP_NOTIFICATION_RESPONSE_OPTION_FIRST_TO_FORWARD_OFFSET (3) -#define EMBER_AF_GP_NOTIFICATION_RESPONSE_OPTION_NO_PAIRING (0x10) -#define EMBER_AF_GP_NOTIFICATION_RESPONSE_OPTION_NO_PAIRING_OFFSET (4) -#define EMBER_AF_GP_NOTIFICATION_RESPONSE_OPTION_RESERVED (0xE0) -#define EMBER_AF_GP_NOTIFICATION_RESPONSE_OPTION_RESERVED_OFFSET (5) #define EMBER_AF_GP_PAIRING_OPTION_APPLICATION_ID (0x000007) +#define EMBER_AF_GP_PAIRING_OPTION_APPLICATION_ID_OFFSET (0) #define EMBER_AF_GP_PAIRING_OPTION_ADD_SINK (0x000008) #define EMBER_AF_GP_PAIRING_OPTION_ADD_SINK_OFFSET (3) #define EMBER_AF_GP_PAIRING_OPTION_REMOVE_GPD (0x000010) @@ -3496,7 +3373,28 @@ typedef enum #define EMBER_AF_GP_PAIRING_OPTION_GROUPCAST_RADIUS_PRESENT_OFFSET (17) #define EMBER_AF_GP_PAIRING_OPTION_RESERVED (0xFC0000) #define EMBER_AF_GP_PAIRING_OPTION_RESERVED_OFFSET (18) +#define EMBER_AF_GP_PAIRING_SEARCH_OPTION_APPLICATION_ID (0x0007) +#define EMBER_AF_GP_PAIRING_SEARCH_OPTION_APPLICATION_ID_OFFSET (0) +#define EMBER_AF_GP_PAIRING_SEARCH_OPTION_REQUEST_UNICAST_SINKS (0x0008) +#define EMBER_AF_GP_PAIRING_SEARCH_OPTION_REQUEST_UNICAST_SINKS_OFFSET (3) +#define EMBER_AF_GP_PAIRING_SEARCH_OPTION_REQUEST_DERIVED_GROUPCAST_SINKS (0x0010) +#define EMBER_AF_GP_PAIRING_SEARCH_OPTION_REQUEST_DERIVED_GROUPCAST_SINKS_OFFSET (4) +#define EMBER_AF_GP_PAIRING_SEARCH_OPTION_REQUEST_COMMISSIONED_GROUPCAST_SINKS (0x0020) +#define EMBER_AF_GP_PAIRING_SEARCH_OPTION_REQUEST_COMMISSIONED_GROUPCAST_SINKS_OFFSET (5) +#define EMBER_AF_GP_PAIRING_SEARCH_OPTION_REQUEST_GPD_SECURITY_FRAME_COUNTER (0x0040) +#define EMBER_AF_GP_PAIRING_SEARCH_OPTION_REQUEST_GPD_SECURITY_FRAME_COUNTER_OFFSET (6) +#define EMBER_AF_GP_PAIRING_SEARCH_OPTION_REQUEST_GPD_SECURITY_KEY (0x0080) +#define EMBER_AF_GP_PAIRING_SEARCH_OPTION_REQUEST_GPD_SECURITY_KEY_OFFSET (7) +#define EMBER_AF_GP_PAIRING_SEARCH_OPTION_RESERVED (0xFF00) +#define EMBER_AF_GP_PAIRING_SEARCH_OPTION_RESERVED_OFFSET (8) +#define EMBER_AF_GP_PROXY_COMMISSIONING_MODE_EXIT_MODE_ON_COMMISSIONING_WINDOW_EXPIRATION (0x02) +#define EMBER_AF_GP_PROXY_COMMISSIONING_MODE_EXIT_MODE_ON_COMMISSIONING_WINDOW_EXPIRATION_OFFSET (1) +#define EMBER_AF_GP_PROXY_COMMISSIONING_MODE_EXIT_MODE_ON_FIRST_PAIRING_SUCCESS (0x04) +#define EMBER_AF_GP_PROXY_COMMISSIONING_MODE_EXIT_MODE_ON_FIRST_PAIRING_SUCCESS_OFFSET (2) +#define EMBER_AF_GP_PROXY_COMMISSIONING_MODE_EXIT_MODE_ON_GP_PROXY_COMMISSIONING_MODE_EXIT (0x08) +#define EMBER_AF_GP_PROXY_COMMISSIONING_MODE_EXIT_MODE_ON_GP_PROXY_COMMISSIONING_MODE_EXIT_OFFSET (3) #define EMBER_AF_GP_PROXY_COMMISSIONING_MODE_OPTION_ACTION (0x01) +#define EMBER_AF_GP_PROXY_COMMISSIONING_MODE_OPTION_ACTION_OFFSET (0) #define EMBER_AF_GP_PROXY_COMMISSIONING_MODE_OPTION_COMMISSIONING_WINDOW_PRESENT (0x02) #define EMBER_AF_GP_PROXY_COMMISSIONING_MODE_OPTION_COMMISSIONING_WINDOW_PRESENT_OFFSET (1) #define EMBER_AF_GP_PROXY_COMMISSIONING_MODE_OPTION_EXIT_MODE (0x0C) @@ -3507,21 +3405,78 @@ typedef enum #define EMBER_AF_GP_PROXY_COMMISSIONING_MODE_OPTION_UNICAST_COMMUNICATION_OFFSET (5) #define EMBER_AF_GP_PROXY_COMMISSIONING_MODE_OPTION_RESERVED (0xC0) #define EMBER_AF_GP_PROXY_COMMISSIONING_MODE_OPTION_RESERVED_OFFSET (6) -#define EMBER_AF_GP_PROXY_COMMISSIONING_MODE_EXIT_MODE_ON_COMMISSIONING_WINDOW_EXPIRATION (0x02) -#define EMBER_AF_GP_PROXY_COMMISSIONING_MODE_EXIT_MODE_ON_COMMISSIONING_WINDOW_EXPIRATION_OFFSET (1) -#define EMBER_AF_GP_PROXY_COMMISSIONING_MODE_EXIT_MODE_ON_FIRST_PAIRING_SUCCESS (0x04) -#define EMBER_AF_GP_PROXY_COMMISSIONING_MODE_EXIT_MODE_ON_FIRST_PAIRING_SUCCESS_OFFSET (2) -#define EMBER_AF_GP_PROXY_COMMISSIONING_MODE_EXIT_MODE_ON_GP_PROXY_COMMISSIONING_MODE_EXIT (0x08) -#define EMBER_AF_GP_PROXY_COMMISSIONING_MODE_EXIT_MODE_ON_GP_PROXY_COMMISSIONING_MODE_EXIT_OFFSET (3) +#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_APPLICATION_ID (0x00000007) +#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_APPLICATION_ID_OFFSET (0) +#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_ENTRY_ACTIVE (0x00000008) +#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_ENTRY_ACTIVE_OFFSET (3) +#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_ENTRY_VALID (0x00000010) +#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_ENTRY_VALID_OFFSET (4) +#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_SEQUENCE_NUMBER_CAP (0x00000020) +#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_SEQUENCE_NUMBER_CAP_OFFSET (5) +#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_LIGHTWEIGHT_UNICAST_GPS (0x00000040) +#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_LIGHTWEIGHT_UNICAST_GPS_OFFSET (6) +#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_DERIVED_GROUP_GPS (0x00000080) +#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_DERIVED_GROUP_GPS_OFFSET (7) +#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_COMMISIONED_GROUP_GPS (0x00000100) +#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_COMMISIONED_GROUP_GPS_OFFSET (8) +#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_FIRST_TO_FORWARD (0x00000200) +#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_FIRST_TO_FORWARD_OFFSET (9) +#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_IN_RANGE (0x00000400) +#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_IN_RANGE_OFFSET (10) +#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_GPD_FIXED (0x00000800) +#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_GPD_FIXED_OFFSET (11) +#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_HAS_ALL_UNICAST_ROUTES (0x00001000) +#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_HAS_ALL_UNICAST_ROUTES_OFFSET (12) +#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_ASSIGNED_ALIAS (0x00002000) +#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_ASSIGNED_ALIAS_OFFSET (13) +#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_SECURITY_USE (0x00004000) +#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_SECURITY_USE_OFFSET (14) +#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_EXTENSION (0x00008000) +#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_EXTENSION_OFFSET (15) +#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_FULL_UNICAST_GPS (0x00010000) +#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_FULL_UNICAST_GPS_OFFSET (16) +#define EMBER_AF_GP_PROXY_TABLE_ENTRY_SECURITY_OPTIONS_SECURITY_LEVEL (0x03) +#define EMBER_AF_GP_PROXY_TABLE_ENTRY_SECURITY_OPTIONS_SECURITY_LEVEL_OFFSET (0) +#define EMBER_AF_GP_PROXY_TABLE_ENTRY_SECURITY_OPTIONS_SECURITY_KEY_TYPE (0x1C) +#define EMBER_AF_GP_PROXY_TABLE_ENTRY_SECURITY_OPTIONS_SECURITY_KEY_TYPE_OFFSET (2) +#define EMBER_AF_GP_PROXY_TABLE_ENTRY_SECURITY_OPTIONS_RESERVED (0xE0) +#define EMBER_AF_GP_PROXY_TABLE_ENTRY_SECURITY_OPTIONS_RESERVED_OFFSET (5) +#define EMBER_AF_GP_PROXY_TABLE_REQUEST_OPTIONS_APPLICATION_ID (0x07) +#define EMBER_AF_GP_PROXY_TABLE_REQUEST_OPTIONS_APPLICATION_ID_OFFSET (0) +#define EMBER_AF_GP_PROXY_TABLE_REQUEST_OPTIONS_REQUEST_TYPE (0x18) +#define EMBER_AF_GP_PROXY_TABLE_REQUEST_OPTIONS_REQUEST_TYPE_OFFSET (3) +#define EMBER_AF_GP_PROXY_TABLE_REQUEST_OPTIONS_RESERVED (0xE0) +#define EMBER_AF_GP_PROXY_TABLE_REQUEST_OPTIONS_RESERVED_OFFSET (5) #define EMBER_AF_GP_RESPONSE_OPTION_APPLICATION_ID (0x07) +#define EMBER_AF_GP_RESPONSE_OPTION_APPLICATION_ID_OFFSET (0) #define EMBER_AF_GP_RESPONSE_OPTION_TRANSMIT_ON_END_POINT_MATCH (0x08) #define EMBER_AF_GP_RESPONSE_OPTION_TRANSMIT_ON_END_POINT_MATCH_OFFSET (3) #define EMBER_AF_GP_RESPONSE_OPTION_RESERVED (0xF0) #define EMBER_AF_GP_RESPONSE_OPTION_RESERVED_OFFSET (4) #define EMBER_AF_GP_RESPONSE_TEMP_MASTER_TX_CHANNEL_TRANSMIT_CHANNEL (0x0F) +#define EMBER_AF_GP_RESPONSE_TEMP_MASTER_TX_CHANNEL_TRANSMIT_CHANNEL_OFFSET (0) #define EMBER_AF_GP_RESPONSE_TEMP_MASTER_TX_CHANNEL_RESERVED (0xF0) #define EMBER_AF_GP_RESPONSE_TEMP_MASTER_TX_CHANNEL_RESERVED_OFFSET (4) +#define EMBER_AF_GP_SINK_COMMISSIONING_MODE_EXIT_MODE_ON_COMMISSIONING_WINDOW_EXPIRATION (0x01) +#define EMBER_AF_GP_SINK_COMMISSIONING_MODE_EXIT_MODE_ON_COMMISSIONING_WINDOW_EXPIRATION_OFFSET (0) +#define EMBER_AF_GP_SINK_COMMISSIONING_MODE_EXIT_MODE_ON_FIRST_PAIRING_SUCCESS (0x02) +#define EMBER_AF_GP_SINK_COMMISSIONING_MODE_EXIT_MODE_ON_FIRST_PAIRING_SUCCESS_OFFSET (1) +#define EMBER_AF_GP_SINK_COMMISSIONING_MODE_EXIT_MODE_ON_GP_PROXY_COMMISSIONING_MODE_EXIT (0x04) +#define EMBER_AF_GP_SINK_COMMISSIONING_MODE_EXIT_MODE_ON_GP_PROXY_COMMISSIONING_MODE_EXIT_OFFSET (2) +#define EMBER_AF_GP_SINK_COMMISSIONING_MODE_EXIT_MODE_RESERVED (0xF8) +#define EMBER_AF_GP_SINK_COMMISSIONING_MODE_EXIT_MODE_RESERVED_OFFSET (3) +#define EMBER_AF_GP_SINK_COMMISSIONING_MODE_OPTIONS_ACTION (0x01) +#define EMBER_AF_GP_SINK_COMMISSIONING_MODE_OPTIONS_ACTION_OFFSET (0) +#define EMBER_AF_GP_SINK_COMMISSIONING_MODE_OPTIONS_INVOLVE_GPM_IN_SECURITY (0x02) +#define EMBER_AF_GP_SINK_COMMISSIONING_MODE_OPTIONS_INVOLVE_GPM_IN_SECURITY_OFFSET (1) +#define EMBER_AF_GP_SINK_COMMISSIONING_MODE_OPTIONS_INVOLVE_GPM_IN_PAIRING (0x04) +#define EMBER_AF_GP_SINK_COMMISSIONING_MODE_OPTIONS_INVOLVE_GPM_IN_PAIRING_OFFSET (2) +#define EMBER_AF_GP_SINK_COMMISSIONING_MODE_OPTIONS_INVOLVE_PROXIES (0x08) +#define EMBER_AF_GP_SINK_COMMISSIONING_MODE_OPTIONS_INVOLVE_PROXIES_OFFSET (3) +#define EMBER_AF_GP_SINK_COMMISSIONING_MODE_OPTIONS_RESERVED (0xF0) +#define EMBER_AF_GP_SINK_COMMISSIONING_MODE_OPTIONS_RESERVED_OFFSET (4) #define EMBER_AF_GP_SINK_TABLE_ENTRY_OPTIONS_APPLICATION_ID (0x0007) +#define EMBER_AF_GP_SINK_TABLE_ENTRY_OPTIONS_APPLICATION_ID_OFFSET (0) #define EMBER_AF_GP_SINK_TABLE_ENTRY_OPTIONS_COMMUNICATION_MODE (0x0018) #define EMBER_AF_GP_SINK_TABLE_ENTRY_OPTIONS_COMMUNICATION_MODE_OFFSET (3) #define EMBER_AF_GP_SINK_TABLE_ENTRY_OPTIONS_SEQUENCE_NUM_CAPABILITIES (0x0020) @@ -3537,34 +3492,564 @@ typedef enum #define EMBER_AF_GP_SINK_TABLE_ENTRY_OPTIONS_RESERVED (0xFC00) #define EMBER_AF_GP_SINK_TABLE_ENTRY_OPTIONS_RESERVED_OFFSET (10) #define EMBER_AF_GP_SINK_TABLE_ENTRY_SECURITY_OPTIONS_SECURITY_LEVEL (0x03) +#define EMBER_AF_GP_SINK_TABLE_ENTRY_SECURITY_OPTIONS_SECURITY_LEVEL_OFFSET (0) #define EMBER_AF_GP_SINK_TABLE_ENTRY_SECURITY_OPTIONS_SECURITY_KEY_TYPE (0x1C) #define EMBER_AF_GP_SINK_TABLE_ENTRY_SECURITY_OPTIONS_SECURITY_KEY_TYPE_OFFSET (2) #define EMBER_AF_GP_SINK_TABLE_ENTRY_SECURITY_OPTIONS_RESERVED (0xE0) #define EMBER_AF_GP_SINK_TABLE_ENTRY_SECURITY_OPTIONS_RESERVED_OFFSET (5) +#define EMBER_AF_GP_SINK_TABLE_REQUEST_OPTIONS_APPLICATION_ID (0x07) +#define EMBER_AF_GP_SINK_TABLE_REQUEST_OPTIONS_APPLICATION_ID_OFFSET (0) +#define EMBER_AF_GP_SINK_TABLE_REQUEST_OPTIONS_REQUEST_TYPE (0x18) +#define EMBER_AF_GP_SINK_TABLE_REQUEST_OPTIONS_REQUEST_TYPE_OFFSET (3) +#define EMBER_AF_GP_SINK_TABLE_REQUEST_OPTIONS_RESERVED (0xE0) +#define EMBER_AF_GP_SINK_TABLE_REQUEST_OPTIONS_RESERVED_OFFSET (5) #define EMBER_AF_GP_TRANSLATION_TABLE_RESPONSE_OPTION_APPLICATION_ID (0x07) +#define EMBER_AF_GP_TRANSLATION_TABLE_RESPONSE_OPTION_APPLICATION_ID_OFFSET (0) #define EMBER_AF_GP_TRANSLATION_TABLE_RESPONSE_OPTION_ADDITIONAL_INFORMATION_BLOCK_PRESENT (0x08) #define EMBER_AF_GP_TRANSLATION_TABLE_RESPONSE_OPTION_ADDITIONAL_INFORMATION_BLOCK_PRESENT_OFFSET (3) #define EMBER_AF_GP_TRANSLATION_TABLE_RESPONSE_OPTION_RESERVED (0xF0) #define EMBER_AF_GP_TRANSLATION_TABLE_RESPONSE_OPTION_RESERVED_OFFSET (4) -#define EMBER_AF_GP_PROXY_TABLE_REQUEST_OPTIONS_APPLICATION_ID (0x07) -#define EMBER_AF_GP_PROXY_TABLE_REQUEST_OPTIONS_REQUEST_TYPE (0x18) -#define EMBER_AF_GP_PROXY_TABLE_REQUEST_OPTIONS_REQUEST_TYPE_OFFSET (3) -#define EMBER_AF_GP_PROXY_TABLE_REQUEST_OPTIONS_RESERVED (0xE0) -#define EMBER_AF_GP_PROXY_TABLE_REQUEST_OPTIONS_RESERVED_OFFSET (5) -#define EMBER_AF_GP_GPD_CHANNEL_REQUEST_CHANNEL_TOGGLING_BEHAVIOUR_RX_CHANNEL_NEXT_ATTEMPT (0x0F) -#define EMBER_AF_GP_GPD_CHANNEL_REQUEST_CHANNEL_TOGGLING_BEHAVIOUR_RX_CHANNEL_SECOND_NEXT_ATTEMPT (0xF0) -#define EMBER_AF_GP_GPD_CHANNEL_REQUEST_CHANNEL_TOGGLING_BEHAVIOUR_RX_CHANNEL_SECOND_NEXT_ATTEMPT_OFFSET (4) -#define EMBER_AF_GP_GPD_CHANNEL_CONFIGURATION_CHANNEL_MASK (0x1F) -#define EMBER_AF_GP_GPD_CHANNEL_CONFIGURATION_CHANNEL_OPERATIONAL_CHANNEL (0x0F) -#define EMBER_AF_GP_GPD_CHANNEL_CONFIGURATION_CHANNEL_BASIC (0x10) -#define EMBER_AF_GP_GPD_CHANNEL_CONFIGURATION_CHANNEL_BASIC_OFFSET (4) -#define EMBER_AF_GP_GPD_CHANNEL_CONFIGURATION_CHANNEL_RESERVED (0xE0) -#define EMBER_AF_GP_GPD_CHANNEL_CONFIGURATION_CHANNEL_RESERVED_OFFSET (5) -#define EMBER_AF_GP_RESPONSE_OPTION_MASK (0x0F) -#define EMBER_AF_GP_RESPONSE_OPTION_TRANSMIT_ON_END_POINT_MATCH (0x08) -#define EMBER_AF_GP_RESPONSE_OPTION_TRANSMIT_ON_END_POINT_MATCH_OFFSET (3) -#define EMBER_AF_GP_RESPONSE_OPTION_RESERVED (0xF0) -#define EMBER_AF_GP_RESPONSE_OPTION_RESERVED_OFFSET (4) -/** @} END Enums */ -/** @} END addtogroup */ -#endif // SILABS_EMBER_AF_ENUMS +#define EMBER_AF_GP_TRANSLATION_TABLE_SCAN_LEVEL_GPD_ID (0x01) +#define EMBER_AF_GP_TRANSLATION_TABLE_SCAN_LEVEL_GPD_ID_OFFSET (0) +#define EMBER_AF_GP_TRANSLATION_TABLE_SCAN_LEVEL_CMD_ID (0x02) +#define EMBER_AF_GP_TRANSLATION_TABLE_SCAN_LEVEL_CMD_ID_OFFSET (1) +#define EMBER_AF_GP_TRANSLATION_TABLE_SCAN_LEVEL_PAYLOAD (0x04) +#define EMBER_AF_GP_TRANSLATION_TABLE_SCAN_LEVEL_PAYLOAD_OFFSET (2) +#define EMBER_AF_GP_TRANSLATION_TABLE_SCAN_LEVEL_ZB_ENDPOINT (0x08) +#define EMBER_AF_GP_TRANSLATION_TABLE_SCAN_LEVEL_ZB_ENDPOINT_OFFSET (3) +#define EMBER_AF_GP_TRANSLATION_TABLE_SCAN_LEVEL_ADDITIONAL_INFO_BLOCK (0x10) +#define EMBER_AF_GP_TRANSLATION_TABLE_SCAN_LEVEL_ADDITIONAL_INFO_BLOCK_OFFSET (4) +#define EMBER_AF_GP_TRANSLATION_TABLE_UPDATE_OPTION_APPLICATION_ID (0x0007) +#define EMBER_AF_GP_TRANSLATION_TABLE_UPDATE_OPTION_APPLICATION_ID_OFFSET (0) +#define EMBER_AF_GP_TRANSLATION_TABLE_UPDATE_OPTION_ACTION (0x0018) +#define EMBER_AF_GP_TRANSLATION_TABLE_UPDATE_OPTION_ACTION_OFFSET (3) +#define EMBER_AF_GP_TRANSLATION_TABLE_UPDATE_OPTION_NUMBER_OF_TRANSLATIONS (0x00E0) +#define EMBER_AF_GP_TRANSLATION_TABLE_UPDATE_OPTION_NUMBER_OF_TRANSLATIONS_OFFSET (5) +#define EMBER_AF_GP_TRANSLATION_TABLE_UPDATE_OPTION_ADDITIONAL_INFORMATION_BLOCK_PRESENT (0x0100) +#define EMBER_AF_GP_TRANSLATION_TABLE_UPDATE_OPTION_ADDITIONAL_INFORMATION_BLOCK_PRESENT_OFFSET (8) +#define EMBER_AF_GP_TRANSLATION_TABLE_UPDATE_OPTION_RESERVED (0xFE00) +#define EMBER_AF_GP_TRANSLATION_TABLE_UPDATE_OPTION_RESERVED_OFFSET (9) +#define EMBER_AF_GP_TUNNELING_STOP_OPTION_APPLICATION_ID (0x07) +#define EMBER_AF_GP_TUNNELING_STOP_OPTION_APPLICATION_ID_OFFSET (0) +#define EMBER_AF_GP_TUNNELING_STOP_OPTION_ALSO_DERIVED_GROUP (0x08) +#define EMBER_AF_GP_TUNNELING_STOP_OPTION_ALSO_DERIVED_GROUP_OFFSET (3) +#define EMBER_AF_GP_TUNNELING_STOP_OPTION_ALSO_COMMISSIONED_GROUP (0x10) +#define EMBER_AF_GP_TUNNELING_STOP_OPTION_ALSO_COMMISSIONED_GROUP_OFFSET (4) +#define EMBER_AF_GP_TUNNELING_STOP_OPTION_RESERVED (0xE0) +#define EMBER_AF_GP_TUNNELING_STOP_OPTION_RESERVED_OFFSET (5) +#define EMBER_AF_IAS_ZONE_STATUS_ALARM1 (0x1) +#define EMBER_AF_IAS_ZONE_STATUS_ALARM1_OFFSET (0) +#define EMBER_AF_IAS_ZONE_STATUS_ALARM2 (0x2) +#define EMBER_AF_IAS_ZONE_STATUS_ALARM2_OFFSET (1) +#define EMBER_AF_IAS_ZONE_STATUS_TAMPER (0x4) +#define EMBER_AF_IAS_ZONE_STATUS_TAMPER_OFFSET (2) +#define EMBER_AF_IAS_ZONE_STATUS_BATTERY (0x8) +#define EMBER_AF_IAS_ZONE_STATUS_BATTERY_OFFSET (3) +#define EMBER_AF_IAS_ZONE_STATUS_SUPERVISION_REPORTS (0x10) +#define EMBER_AF_IAS_ZONE_STATUS_SUPERVISION_REPORTS_OFFSET (4) +#define EMBER_AF_IAS_ZONE_STATUS_RESTORE_REPORTS (0x20) +#define EMBER_AF_IAS_ZONE_STATUS_RESTORE_REPORTS_OFFSET (5) +#define EMBER_AF_IAS_ZONE_STATUS_TROUBLE (0x40) +#define EMBER_AF_IAS_ZONE_STATUS_TROUBLE_OFFSET (6) +#define EMBER_AF_IAS_ZONE_STATUS_AC (0x80) +#define EMBER_AF_IAS_ZONE_STATUS_AC_OFFSET (7) +#define EMBER_AF_IAS_ZONE_STATUS_TEST (0x100) +#define EMBER_AF_IAS_ZONE_STATUS_TEST_OFFSET (8) +#define EMBER_AF_IAS_ZONE_STATUS_BATTERY_DEFECT (0x200) +#define EMBER_AF_IAS_ZONE_STATUS_BATTERY_DEFECT_OFFSET (9) +#define EMBER_AF_KEY_BITMASK_DEVELOPMENT (0x0001) +#define EMBER_AF_KEY_BITMASK_DEVELOPMENT_OFFSET (0) +#define EMBER_AF_KEY_BITMASK_MASTER (0x0010) +#define EMBER_AF_KEY_BITMASK_MASTER_OFFSET (4) +#define EMBER_AF_KEY_BITMASK_CERTIFICATION (0x8000) +#define EMBER_AF_KEY_BITMASK_CERTIFICATION_OFFSET (15) +#define EMBER_AF_LAMP_ALARM_MODE_LAMP_BURN_HOURS (0x1) +#define EMBER_AF_LAMP_ALARM_MODE_LAMP_BURN_HOURS_OFFSET (0) +#define EMBER_AF_LOAD_CONTROL_STATE_RELAY_OPEN_OR_CONSUMPTION_INTERUPTED (0x01) +#define EMBER_AF_LOAD_CONTROL_STATE_RELAY_OPEN_OR_CONSUMPTION_INTERUPTED_OFFSET (0) +#define EMBER_AF_LOAD_CONTROL_STATE_EVENT_IN_PROGRESS (0x02) +#define EMBER_AF_LOAD_CONTROL_STATE_EVENT_IN_PROGRESS_OFFSET (1) +#define EMBER_AF_LOAD_CONTROL_STATE_POWER_STABILIZING (0x04) +#define EMBER_AF_LOAD_CONTROL_STATE_POWER_STABILIZING_OFFSET (2) +#define EMBER_AF_LOAD_CONTROL_STATE_OTHER_LOAD_REDUCTION (0x08) +#define EMBER_AF_LOAD_CONTROL_STATE_OTHER_LOAD_REDUCTION_OFFSET (3) +#define EMBER_AF_LOAD_CONTROL_STATE_CURRENT_FLOW_OR_CONSUMING_COMMODITY (0x10) +#define EMBER_AF_LOAD_CONTROL_STATE_CURRENT_FLOW_OR_CONSUMING_COMMODITY_OFFSET (4) +#define EMBER_AF_LOAD_CONTROL_STATE_LOAD_CALL (0x20) +#define EMBER_AF_LOAD_CONTROL_STATE_LOAD_CALL_OFFSET (5) +#define EMBER_AF_LOCATION_TYPE_ABSOLUTE (0x1) +#define EMBER_AF_LOCATION_TYPE_ABSOLUTE_OFFSET (0) +#define EMBER_AF_LOCATION_TYPE_2_D (0x2) +#define EMBER_AF_LOCATION_TYPE_2_D_OFFSET (1) +#define EMBER_AF_LOCATION_TYPE_COORDINATE_SYSTEM (0xc) +#define EMBER_AF_LOCATION_TYPE_COORDINATE_SYSTEM_OFFSET (2) +#define EMBER_AF_MAINS_ALARM_MASK_VOLTAGE_TOO_LOW (0x1) +#define EMBER_AF_MAINS_ALARM_MASK_VOLTAGE_TOO_LOW_OFFSET (0) +#define EMBER_AF_MAINS_ALARM_MASK_VOLTAGE_TOO_HIGH (0x2) +#define EMBER_AF_MAINS_ALARM_MASK_VOLTAGE_TOO_HIGH_OFFSET (1) +#define EMBER_AF_MAINS_ALARM_MASK_MAINS_POWER_SUPPLY_LOST (0x4) +#define EMBER_AF_MAINS_ALARM_MASK_MAINS_POWER_SUPPLY_LOST_OFFSET (2) +#define EMBER_AF_MESSAGING_CONFIRMATION_CONTROL_NO_RETURNED (0x01) +#define EMBER_AF_MESSAGING_CONFIRMATION_CONTROL_NO_RETURNED_OFFSET (0) +#define EMBER_AF_MESSAGING_CONFIRMATION_CONTROL_YES_RETURNED (0x02) +#define EMBER_AF_MESSAGING_CONFIRMATION_CONTROL_YES_RETURNED_OFFSET (1) +#define EMBER_AF_MESSAGING_CONTROL_MASK_TRANS_MECHANISM (0x03) +#define EMBER_AF_MESSAGING_CONTROL_MASK_TRANS_MECHANISM_OFFSET (0) +#define EMBER_AF_MESSAGING_CONTROL_MASK_MESSAGE_URGENCY (0x0C) +#define EMBER_AF_MESSAGING_CONTROL_MASK_MESSAGE_URGENCY_OFFSET (2) +#define EMBER_AF_MESSAGING_CONTROL_MASK_ENHANCED_CONFIRMATION_REQUEST (0x20) +#define EMBER_AF_MESSAGING_CONTROL_MASK_ENHANCED_CONFIRMATION_REQUEST_OFFSET (5) +#define EMBER_AF_MESSAGING_CONTROL_MASK_MESSAGE_CONFIRMATION (0x80) +#define EMBER_AF_MESSAGING_CONTROL_MASK_MESSAGE_CONFIRMATION_OFFSET (7) +#define EMBER_AF_MESSAGING_EXTENDED_CONTROL_MASK_MESSAGE_CONFIRMATION_STATUS (0x01) +#define EMBER_AF_MESSAGING_EXTENDED_CONTROL_MASK_MESSAGE_CONFIRMATION_STATUS_OFFSET (0) +#define EMBER_AF_METERING_EXTENDED_STATUS_METER_COVER_REMOVED (0x0000000000000001) +#define EMBER_AF_METERING_EXTENDED_STATUS_METER_COVER_REMOVED_OFFSET (0) +#define EMBER_AF_METERING_EXTENDED_STATUS_STRONG_MAGNETIC_FIELD_DETECTED (0x0000000000000002) +#define EMBER_AF_METERING_EXTENDED_STATUS_STRONG_MAGNETIC_FIELD_DETECTED_OFFSET (1) +#define EMBER_AF_METERING_EXTENDED_STATUS_BATTERY_FAILURE (0x0000000000000004) +#define EMBER_AF_METERING_EXTENDED_STATUS_BATTERY_FAILURE_OFFSET (2) +#define EMBER_AF_METERING_EXTENDED_STATUS_PROGRAM_MEMORY_ERROR (0x0000000000000008) +#define EMBER_AF_METERING_EXTENDED_STATUS_PROGRAM_MEMORY_ERROR_OFFSET (3) +#define EMBER_AF_METERING_EXTENDED_STATUS_RAM_ERROR (0x0000000000000010) +#define EMBER_AF_METERING_EXTENDED_STATUS_RAM_ERROR_OFFSET (4) +#define EMBER_AF_METERING_EXTENDED_STATUS_NV_MEMORY_ERROR (0x0000000000000020) +#define EMBER_AF_METERING_EXTENDED_STATUS_NV_MEMORY_ERROR_OFFSET (5) +#define EMBER_AF_METERING_EXTENDED_STATUS_MEASUREMENT_SYSTEM_ERROR (0x0000000000000040) +#define EMBER_AF_METERING_EXTENDED_STATUS_MEASUREMENT_SYSTEM_ERROR_OFFSET (6) +#define EMBER_AF_METERING_EXTENDED_STATUS_WATCHDOG_ERROR (0x0000000000000080) +#define EMBER_AF_METERING_EXTENDED_STATUS_WATCHDOG_ERROR_OFFSET (7) +#define EMBER_AF_METERING_EXTENDED_STATUS_SUPPLY_DISCONNECT_FAILURE (0x0000000000000100) +#define EMBER_AF_METERING_EXTENDED_STATUS_SUPPLY_DISCONNECT_FAILURE_OFFSET (8) +#define EMBER_AF_METERING_EXTENDED_STATUS_SUPPLY_CONNECT_FAILURE (0x0000000000000200) +#define EMBER_AF_METERING_EXTENDED_STATUS_SUPPLY_CONNECT_FAILURE_OFFSET (9) +#define EMBER_AF_METERING_EXTENDED_STATUS_MEASUREMENT_SW_CHANGED_TAMPERED (0x0000000000000400) +#define EMBER_AF_METERING_EXTENDED_STATUS_MEASUREMENT_SW_CHANGED_TAMPERED_OFFSET (10) +#define EMBER_AF_METERING_EXTENDED_STATUS_CLOCK_INVALID (0x0000000000000800) +#define EMBER_AF_METERING_EXTENDED_STATUS_CLOCK_INVALID_OFFSET (11) +#define EMBER_AF_METERING_EXTENDED_STATUS_TEMPERATURE_EXCEEDED (0x0000000000001000) +#define EMBER_AF_METERING_EXTENDED_STATUS_TEMPERATURE_EXCEEDED_OFFSET (12) +#define EMBER_AF_METERING_EXTENDED_STATUS_MOISTURE_DETECTED (0x0000000000002000) +#define EMBER_AF_METERING_EXTENDED_STATUS_MOISTURE_DETECTED_OFFSET (13) +#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_TERMINAL_COVER_REMOVED (0x0000000001000000) +#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_TERMINAL_COVER_REMOVED_OFFSET (24) +#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_INCORRECT_POLARITY (0x0000000002000000) +#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_INCORRECT_POLARITY_OFFSET (25) +#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_CURRENT_WITH_NO_VOLTAGE (0x0000000004000000) +#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_CURRENT_WITH_NO_VOLTAGE_OFFSET (26) +#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_LIMIT_THRESHOLD_EXCEEDED (0x0000000008000000) +#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_LIMIT_THRESHOLD_EXCEEDED_OFFSET (27) +#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_UNDER_VOLTAGE (0x0000000010000000) +#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_UNDER_VOLTAGE_OFFSET (28) +#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_OVER_VOLTAGE (0x0000000020000000) +#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_OVER_VOLTAGE_OFFSET (29) +#define EMBER_AF_METERING_EXTENDED_STATUS_GAS_METER_BATTERY_COVER_REMOVED (0x0000000001000000) +#define EMBER_AF_METERING_EXTENDED_STATUS_GAS_METER_BATTERY_COVER_REMOVED_OFFSET (24) +#define EMBER_AF_METERING_EXTENDED_STATUS_GAS_METER_TILT_TAMPER (0x0000000002000000) +#define EMBER_AF_METERING_EXTENDED_STATUS_GAS_METER_TILT_TAMPER_OFFSET (25) +#define EMBER_AF_METERING_EXTENDED_STATUS_GAS_METER_EXCESS_FLOW (0x0000000004000000) +#define EMBER_AF_METERING_EXTENDED_STATUS_GAS_METER_EXCESS_FLOW_OFFSET (26) +#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_SERVICE_DISCONNECTION_REASON_OFF_DUE_TO_OVER_POWER (0x0000000040000000) +#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_SERVICE_DISCONNECTION_REASON_OFF_DUE_TO_OVER_POWER_OFFSET (30) +#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_SERVICE_DISCONNECTION_REASON_OFF_DUE_TO_OVER_VOLTAGE \ + (0x0000000080000000) +#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_SERVICE_DISCONNECTION_REASON_OFF_DUE_TO_OVER_VOLTAGE_OFFSET (31) +#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_SERVICE_DISCONNECTION_REASON_OFF_DUE_TO_REMOTE_LOAD_CONTROL \ + (0x00000000C0000000) +#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_SERVICE_DISCONNECTION_REASON_OFF_DUE_TO_REMOTE_LOAD_CONTROL_OFFSET (30) +#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_SERVICE_DISCONNECTION_REASON_OFF_BY_OTHER_REMOTE_COMMAND \ + (0x0000000100000000) +#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_SERVICE_DISCONNECTION_REASON_OFF_BY_OTHER_REMOTE_COMMAND_OFFSET (32) +#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_SERVICE_DISCONNECTION_REASON_OFF_DUE_TO_OVERHEATING_SHORT_CIRCUIT \ + (0x0000000140000000) +#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_SERVICE_DISCONNECTION_REASON_OFF_DUE_TO_OVERHEATING_SHORT_CIRCUIT_OFFSET \ + (30) +#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_SERVICE_DISCONNECTION_REASON_OFF_DUE_TO_OVERHEATING_OTHER \ + (0x0000000180000000) +#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_SERVICE_DISCONNECTION_REASON_OFF_DUE_TO_OVERHEATING_OTHER_OFFSET (31) +#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_BI_DIRECTIONAL_OPERATION (0x0000000400000000) +#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_BI_DIRECTIONAL_OPERATION_OFFSET (34) +#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_ACTIVE_POWER_RECEIVED (0x0000000800000000) +#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_ACTIVE_POWER_RECEIVED_OFFSET (35) +#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_MODE_OF_OPERATION (0x0000001000000000) +#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_MODE_OF_OPERATION_OFFSET (36) +#define EMBER_AF_METERING_STATUS_ELECTRICITY_CHECK_METER (0x01) +#define EMBER_AF_METERING_STATUS_ELECTRICITY_CHECK_METER_OFFSET (0) +#define EMBER_AF_METERING_STATUS_ELECTRICITY_LOW_BATTERY (0x02) +#define EMBER_AF_METERING_STATUS_ELECTRICITY_LOW_BATTERY_OFFSET (1) +#define EMBER_AF_METERING_STATUS_ELECTRICITY_TAMPER_DETECT (0x04) +#define EMBER_AF_METERING_STATUS_ELECTRICITY_TAMPER_DETECT_OFFSET (2) +#define EMBER_AF_METERING_STATUS_ELECTRICITY_POWER_FAILURE (0x08) +#define EMBER_AF_METERING_STATUS_ELECTRICITY_POWER_FAILURE_OFFSET (3) +#define EMBER_AF_METERING_STATUS_ELECTRICITY_POWER_QUALITY (0x10) +#define EMBER_AF_METERING_STATUS_ELECTRICITY_POWER_QUALITY_OFFSET (4) +#define EMBER_AF_METERING_STATUS_ELECTRICITY_LEAK_DETECT (0x20) +#define EMBER_AF_METERING_STATUS_ELECTRICITY_LEAK_DETECT_OFFSET (5) +#define EMBER_AF_METERING_STATUS_ELECTRICITY_SERVICE_DISCONNECT_OPEN (0x40) +#define EMBER_AF_METERING_STATUS_ELECTRICITY_SERVICE_DISCONNECT_OPEN_OFFSET (6) +#define EMBER_AF_METERING_STATUS_ELECTRICITY_RESERVED (0x80) +#define EMBER_AF_METERING_STATUS_ELECTRICITY_RESERVED_OFFSET (7) +#define EMBER_AF_METERING_STATUS_GAS_CHECK_METER (0x01) +#define EMBER_AF_METERING_STATUS_GAS_CHECK_METER_OFFSET (0) +#define EMBER_AF_METERING_STATUS_GAS_LOW_BATTERY (0x02) +#define EMBER_AF_METERING_STATUS_GAS_LOW_BATTERY_OFFSET (1) +#define EMBER_AF_METERING_STATUS_GAS_TAMPER_DETECT (0x04) +#define EMBER_AF_METERING_STATUS_GAS_TAMPER_DETECT_OFFSET (2) +#define EMBER_AF_METERING_STATUS_GAS_NOT_DEFINED (0x08) +#define EMBER_AF_METERING_STATUS_GAS_NOT_DEFINED_OFFSET (3) +#define EMBER_AF_METERING_STATUS_GAS_LOW_PRESSURE (0x10) +#define EMBER_AF_METERING_STATUS_GAS_LOW_PRESSURE_OFFSET (4) +#define EMBER_AF_METERING_STATUS_GAS_LEAK_DETECT (0x20) +#define EMBER_AF_METERING_STATUS_GAS_LEAK_DETECT_OFFSET (5) +#define EMBER_AF_METERING_STATUS_GAS_SERVICE_DISCONNECT (0x40) +#define EMBER_AF_METERING_STATUS_GAS_SERVICE_DISCONNECT_OFFSET (6) +#define EMBER_AF_METERING_STATUS_GAS_REVERSE_FLOW (0x80) +#define EMBER_AF_METERING_STATUS_GAS_REVERSE_FLOW_OFFSET (7) +#define EMBER_AF_METERING_STATUS_HEAT_AND_COOLING_CHECK_METER (0x01) +#define EMBER_AF_METERING_STATUS_HEAT_AND_COOLING_CHECK_METER_OFFSET (0) +#define EMBER_AF_METERING_STATUS_HEAT_AND_COOLING_LOW_BATTERY (0x02) +#define EMBER_AF_METERING_STATUS_HEAT_AND_COOLING_LOW_BATTERY_OFFSET (1) +#define EMBER_AF_METERING_STATUS_HEAT_AND_COOLING_TAMPER_DETECT (0x04) +#define EMBER_AF_METERING_STATUS_HEAT_AND_COOLING_TAMPER_DETECT_OFFSET (2) +#define EMBER_AF_METERING_STATUS_HEAT_AND_COOLING_TEMPERATURE_SENSOR (0x08) +#define EMBER_AF_METERING_STATUS_HEAT_AND_COOLING_TEMPERATURE_SENSOR_OFFSET (3) +#define EMBER_AF_METERING_STATUS_HEAT_AND_COOLING_BURST_DETECT (0x10) +#define EMBER_AF_METERING_STATUS_HEAT_AND_COOLING_BURST_DETECT_OFFSET (4) +#define EMBER_AF_METERING_STATUS_HEAT_AND_COOLING_LEAK_DETECT (0x20) +#define EMBER_AF_METERING_STATUS_HEAT_AND_COOLING_LEAK_DETECT_OFFSET (5) +#define EMBER_AF_METERING_STATUS_HEAT_AND_COOLING_SERVICE_DISCONNECT (0x40) +#define EMBER_AF_METERING_STATUS_HEAT_AND_COOLING_SERVICE_DISCONNECT_OFFSET (6) +#define EMBER_AF_METERING_STATUS_HEAT_AND_COOLING_FLOW_SENSOR (0x80) +#define EMBER_AF_METERING_STATUS_HEAT_AND_COOLING_FLOW_SENSOR_OFFSET (7) +#define EMBER_AF_METERING_STATUS_WATER_CHECK_METER (0x01) +#define EMBER_AF_METERING_STATUS_WATER_CHECK_METER_OFFSET (0) +#define EMBER_AF_METERING_STATUS_WATER_LOW_BATTERY (0x02) +#define EMBER_AF_METERING_STATUS_WATER_LOW_BATTERY_OFFSET (1) +#define EMBER_AF_METERING_STATUS_WATER_TAMPER_DETECT (0x04) +#define EMBER_AF_METERING_STATUS_WATER_TAMPER_DETECT_OFFSET (2) +#define EMBER_AF_METERING_STATUS_WATER_PIPE_EMPTY (0x08) +#define EMBER_AF_METERING_STATUS_WATER_PIPE_EMPTY_OFFSET (3) +#define EMBER_AF_METERING_STATUS_WATER_LOW_PRESSURE (0x10) +#define EMBER_AF_METERING_STATUS_WATER_LOW_PRESSURE_OFFSET (4) +#define EMBER_AF_METERING_STATUS_WATER_LEAK_DETECT (0x20) +#define EMBER_AF_METERING_STATUS_WATER_LEAK_DETECT_OFFSET (5) +#define EMBER_AF_METERING_STATUS_WATER_SERVICE_DISCONNECT (0x40) +#define EMBER_AF_METERING_STATUS_WATER_SERVICE_DISCONNECT_OFFSET (6) +#define EMBER_AF_METERING_STATUS_WATER_REVERSE_FLOW (0x80) +#define EMBER_AF_METERING_STATUS_WATER_REVERSE_FLOW_OFFSET (7) +#define EMBER_AF_MODE_FOR_SEQUENCE_HEAT_SETPOINT_FIELD_PRESENT (0x01) +#define EMBER_AF_MODE_FOR_SEQUENCE_HEAT_SETPOINT_FIELD_PRESENT_OFFSET (0) +#define EMBER_AF_MODE_FOR_SEQUENCE_COOL_SETPOINT_FIELD_PRESENT (0x02) +#define EMBER_AF_MODE_FOR_SEQUENCE_COOL_SETPOINT_FIELD_PRESENT_OFFSET (1) +#define EMBER_AF_NUMBER_OF_EVENTS_LOG_PAYLOAD_CONTROL_LOG_PAYLOAD_CONTROL (0x0F) +#define EMBER_AF_NUMBER_OF_EVENTS_LOG_PAYLOAD_CONTROL_LOG_PAYLOAD_CONTROL_OFFSET (0) +#define EMBER_AF_NUMBER_OF_EVENTS_LOG_PAYLOAD_CONTROL_NUMBER_OF_EVENTS (0xF0) +#define EMBER_AF_NUMBER_OF_EVENTS_LOG_PAYLOAD_CONTROL_NUMBER_OF_EVENTS_OFFSET (4) +#define EMBER_AF_OCCUPANCY_OCCUPIED (0x1) +#define EMBER_AF_OCCUPANCY_OCCUPIED_OFFSET (0) +#define EMBER_AF_OCCUPANCY_SENSOR_TYPE_BITMAP_PIR (0x01) +#define EMBER_AF_OCCUPANCY_SENSOR_TYPE_BITMAP_PIR_OFFSET (0) +#define EMBER_AF_OCCUPANCY_SENSOR_TYPE_BITMAP_ULTRASONIC (0x02) +#define EMBER_AF_OCCUPANCY_SENSOR_TYPE_BITMAP_ULTRASONIC_OFFSET (1) +#define EMBER_AF_OCCUPANCY_SENSOR_TYPE_BITMAP_PHYSICAL_CONTACT (0x04) +#define EMBER_AF_OCCUPANCY_SENSOR_TYPE_BITMAP_PHYSICAL_CONTACT_OFFSET (2) +#define EMBER_AF_ON_OFF_CONTROL_ACCEPT_ONLY_WHEN_ON (0x01) +#define EMBER_AF_ON_OFF_CONTROL_ACCEPT_ONLY_WHEN_ON_OFFSET (0) +#define EMBER_AF_ORIGINATOR_ID_SUPPLY_CONTROL_BITS_ACKNOWLEDGE_REQUIRED (0x01) +#define EMBER_AF_ORIGINATOR_ID_SUPPLY_CONTROL_BITS_ACKNOWLEDGE_REQUIRED_OFFSET (0) +#define EMBER_AF_PAYMENT_CONTROL_CONFIGURATION_DISCONNECTION_ENABLED (0x0001) +#define EMBER_AF_PAYMENT_CONTROL_CONFIGURATION_DISCONNECTION_ENABLED_OFFSET (0) +#define EMBER_AF_PAYMENT_CONTROL_CONFIGURATION_PREPAYMENT_ENABLED (0x0002) +#define EMBER_AF_PAYMENT_CONTROL_CONFIGURATION_PREPAYMENT_ENABLED_OFFSET (1) +#define EMBER_AF_PAYMENT_CONTROL_CONFIGURATION_CREDIT_MANAGEMENT_ENABLED (0x0004) +#define EMBER_AF_PAYMENT_CONTROL_CONFIGURATION_CREDIT_MANAGEMENT_ENABLED_OFFSET (2) +#define EMBER_AF_PAYMENT_CONTROL_CONFIGURATION_CREDIT_DISPLAY_ENABLED (0x0010) +#define EMBER_AF_PAYMENT_CONTROL_CONFIGURATION_CREDIT_DISPLAY_ENABLED_OFFSET (4) +#define EMBER_AF_PAYMENT_CONTROL_CONFIGURATION_ACCOUNT_BASE (0x0040) +#define EMBER_AF_PAYMENT_CONTROL_CONFIGURATION_ACCOUNT_BASE_OFFSET (6) +#define EMBER_AF_PAYMENT_CONTROL_CONFIGURATION_CONTACTOR_FITTED (0x0080) +#define EMBER_AF_PAYMENT_CONTROL_CONFIGURATION_CONTACTOR_FITTED_OFFSET (7) +#define EMBER_AF_PAYMENT_CONTROL_CONFIGURATION_STANDING_CHARGE_CONFIGURATION (0x0100) +#define EMBER_AF_PAYMENT_CONTROL_CONFIGURATION_STANDING_CHARGE_CONFIGURATION_OFFSET (8) +#define EMBER_AF_PAYMENT_CONTROL_CONFIGURATION_EMERGENCY_STANDING_CHARGE_CONFIGURATION (0x0200) +#define EMBER_AF_PAYMENT_CONTROL_CONFIGURATION_EMERGENCY_STANDING_CHARGE_CONFIGURATION_OFFSET (9) +#define EMBER_AF_PAYMENT_CONTROL_CONFIGURATION_DEBT_CONFIGURATION (0x0400) +#define EMBER_AF_PAYMENT_CONTROL_CONFIGURATION_DEBT_CONFIGURATION_OFFSET (10) +#define EMBER_AF_PAYMENT_CONTROL_CONFIGURATION_EMERGENCY_DEBT_CONFIGURATION (0x0800) +#define EMBER_AF_PAYMENT_CONTROL_CONFIGURATION_EMERGENCY_DEBT_CONFIGURATION_OFFSET (11) +#define EMBER_AF_PREPAY_SNAPSHOT_PAYLOAD_CAUSE_GENERAL (0x00000001) +#define EMBER_AF_PREPAY_SNAPSHOT_PAYLOAD_CAUSE_GENERAL_OFFSET (0) +#define EMBER_AF_PREPAY_SNAPSHOT_PAYLOAD_CAUSE_CHANGE_OF_TARIFF_INFORMATION (0x00000008) +#define EMBER_AF_PREPAY_SNAPSHOT_PAYLOAD_CAUSE_CHANGE_OF_TARIFF_INFORMATION_OFFSET (3) +#define EMBER_AF_PREPAY_SNAPSHOT_PAYLOAD_CAUSE_CHANGE_OF_PRICE_MATRIX (0x00000010) +#define EMBER_AF_PREPAY_SNAPSHOT_PAYLOAD_CAUSE_CHANGE_OF_PRICE_MATRIX_OFFSET (4) +#define EMBER_AF_PREPAY_SNAPSHOT_PAYLOAD_CAUSE_MANUALLY_TRIGGERED_FROM_CLIENT (0x00000400) +#define EMBER_AF_PREPAY_SNAPSHOT_PAYLOAD_CAUSE_MANUALLY_TRIGGERED_FROM_CLIENT_OFFSET (10) +#define EMBER_AF_PREPAY_SNAPSHOT_PAYLOAD_CAUSE_CHANGE_OF_TENANCY (0x00001000) +#define EMBER_AF_PREPAY_SNAPSHOT_PAYLOAD_CAUSE_CHANGE_OF_TENANCY_OFFSET (12) +#define EMBER_AF_PREPAY_SNAPSHOT_PAYLOAD_CAUSE_CHANGE_OF_SUPPLIER (0x00002000) +#define EMBER_AF_PREPAY_SNAPSHOT_PAYLOAD_CAUSE_CHANGE_OF_SUPPLIER_OFFSET (13) +#define EMBER_AF_PREPAY_SNAPSHOT_PAYLOAD_CAUSE_CHANGE_OF_METER_MODE (0x00004000) +#define EMBER_AF_PREPAY_SNAPSHOT_PAYLOAD_CAUSE_CHANGE_OF_METER_MODE_OFFSET (14) +#define EMBER_AF_PREPAY_SNAPSHOT_PAYLOAD_CAUSE_TOP_UP_ADDITION (0x00040000) +#define EMBER_AF_PREPAY_SNAPSHOT_PAYLOAD_CAUSE_TOP_UP_ADDITION_OFFSET (18) +#define EMBER_AF_PREPAY_SNAPSHOT_PAYLOAD_CAUSE_DEBT_CREDIT_ADDITION (0x00080000) +#define EMBER_AF_PREPAY_SNAPSHOT_PAYLOAD_CAUSE_DEBT_CREDIT_ADDITION_OFFSET (19) +#define EMBER_AF_PREPAYMENT_ALARM_STATUS_LOW_CREDIT_WARNING (0x0001) +#define EMBER_AF_PREPAYMENT_ALARM_STATUS_LOW_CREDIT_WARNING_OFFSET (0) +#define EMBER_AF_PREPAYMENT_ALARM_STATUS_TOP_UP_CODE_ERROR (0x0002) +#define EMBER_AF_PREPAYMENT_ALARM_STATUS_TOP_UP_CODE_ERROR_OFFSET (1) +#define EMBER_AF_PREPAYMENT_ALARM_STATUS_TOP_UP_CODE_ALREADY_USED (0x0004) +#define EMBER_AF_PREPAYMENT_ALARM_STATUS_TOP_UP_CODE_ALREADY_USED_OFFSET (2) +#define EMBER_AF_PREPAYMENT_ALARM_STATUS_TOP_UP_CODE_INVALID (0x0008) +#define EMBER_AF_PREPAYMENT_ALARM_STATUS_TOP_UP_CODE_INVALID_OFFSET (3) +#define EMBER_AF_PREPAYMENT_ALARM_STATUS_FRIENDLY_CREDIT_IN_USE (0x0010) +#define EMBER_AF_PREPAYMENT_ALARM_STATUS_FRIENDLY_CREDIT_IN_USE_OFFSET (4) +#define EMBER_AF_PREPAYMENT_ALARM_STATUS_FRIENDLY_CREDIT_PERIOD_END_WARNING (0x0020) +#define EMBER_AF_PREPAYMENT_ALARM_STATUS_FRIENDLY_CREDIT_PERIOD_END_WARNING_OFFSET (5) +#define EMBER_AF_PREPAYMENT_ALARM_STATUS_EC_AVAILABLE (0x0040) +#define EMBER_AF_PREPAYMENT_ALARM_STATUS_EC_AVAILABLE_OFFSET (6) +#define EMBER_AF_PREPAYMENT_ALARM_STATUS_UNAUTHORISED_ENERGY_USE (0x0080) +#define EMBER_AF_PREPAYMENT_ALARM_STATUS_UNAUTHORISED_ENERGY_USE_OFFSET (7) +#define EMBER_AF_PREPAYMENT_ALARM_STATUS_DISCONNECTED_SUPPLY_DUE_TO_CREDIT (0x0100) +#define EMBER_AF_PREPAYMENT_ALARM_STATUS_DISCONNECTED_SUPPLY_DUE_TO_CREDIT_OFFSET (8) +#define EMBER_AF_PREPAYMENT_ALARM_STATUS_DISCONNECTED_SUPPLY_DUE_TO_TAMPER (0x0200) +#define EMBER_AF_PREPAYMENT_ALARM_STATUS_DISCONNECTED_SUPPLY_DUE_TO_TAMPER_OFFSET (9) +#define EMBER_AF_PREPAYMENT_ALARM_STATUS_DISCONNECTED_SUPPLY_DUE_TO_HES (0x0400) +#define EMBER_AF_PREPAYMENT_ALARM_STATUS_DISCONNECTED_SUPPLY_DUE_TO_HES_OFFSET (10) +#define EMBER_AF_PREPAYMENT_ALARM_STATUS_PHYSICAL_ATTACK (0x0800) +#define EMBER_AF_PREPAYMENT_ALARM_STATUS_PHYSICAL_ATTACK_OFFSET (11) +#define EMBER_AF_PREPAYMENT_ALARM_STATUS_ELECTRONIC_ATTACK (0x1000) +#define EMBER_AF_PREPAYMENT_ALARM_STATUS_ELECTRONIC_ATTACK_OFFSET (12) +#define EMBER_AF_PREPAYMENT_ALARM_STATUS_MANUFACTURE_ALARM_CODE_A (0x2000) +#define EMBER_AF_PREPAYMENT_ALARM_STATUS_MANUFACTURE_ALARM_CODE_A_OFFSET (13) +#define EMBER_AF_PREPAYMENT_ALARM_STATUS_MANUFACTURE_ALARM_CODE_B (0x4000) +#define EMBER_AF_PREPAYMENT_ALARM_STATUS_MANUFACTURE_ALARM_CODE_B_OFFSET (14) +#define EMBER_AF_PRICE_CONTROL_MASK_PRICE_ACKNOWLEDGEMENT_REQUIRED (0x01) +#define EMBER_AF_PRICE_CONTROL_MASK_PRICE_ACKNOWLEDGEMENT_REQUIRED_OFFSET (0) +#define EMBER_AF_PRICE_CONTROL_MASK_TOTAL_TIERS_EXCEEDS15 (0x02) +#define EMBER_AF_PRICE_CONTROL_MASK_TOTAL_TIERS_EXCEEDS15_OFFSET (1) +#define EMBER_AF_PRICE_MATRIX_SUB_PAYLOAD_CONTROL_TOU_BASED (0x01) +#define EMBER_AF_PRICE_MATRIX_SUB_PAYLOAD_CONTROL_TOU_BASED_OFFSET (0) +#define EMBER_AF_PRICE_NUMBER_OF_PRICE_TIERS_AND_REGISTER_TIER_REGISTER_TIER (0x0F) +#define EMBER_AF_PRICE_NUMBER_OF_PRICE_TIERS_AND_REGISTER_TIER_REGISTER_TIER_OFFSET (0) +#define EMBER_AF_PRICE_NUMBER_OF_PRICE_TIERS_AND_REGISTER_TIER_NUMBER_OF_PRICE_TIERS (0xF0) +#define EMBER_AF_PRICE_NUMBER_OF_PRICE_TIERS_AND_REGISTER_TIER_NUMBER_OF_PRICE_TIERS_OFFSET (4) +#define EMBER_AF_PRICE_TRAILING_DIGIT_TRAILING_DIGIT (0xF0) +#define EMBER_AF_PRICE_TRAILING_DIGIT_TRAILING_DIGIT_OFFSET (4) +#define EMBER_AF_PRICE_TRAILING_DIGIT_AND_PRICE_TIER_PRICE_TIER (0x0F) +#define EMBER_AF_PRICE_TRAILING_DIGIT_AND_PRICE_TIER_PRICE_TIER_OFFSET (0) +#define EMBER_AF_PRICE_TRAILING_DIGIT_AND_PRICE_TIER_TRAILING_DIGIT (0xF0) +#define EMBER_AF_PRICE_TRAILING_DIGIT_AND_PRICE_TIER_TRAILING_DIGIT_OFFSET (4) +#define EMBER_AF_PROPOSED_CHANGE_CONTROL_PRE_SNAPSHOTS (0x00000001) +#define EMBER_AF_PROPOSED_CHANGE_CONTROL_PRE_SNAPSHOTS_OFFSET (0) +#define EMBER_AF_PROPOSED_CHANGE_CONTROL_POST_SNAPSHOTS (0x00000002) +#define EMBER_AF_PROPOSED_CHANGE_CONTROL_POST_SNAPSHOTS_OFFSET (1) +#define EMBER_AF_PROPOSED_CHANGE_CONTROL_RESET_CREDIT_REGISTER (0x00000004) +#define EMBER_AF_PROPOSED_CHANGE_CONTROL_RESET_CREDIT_REGISTER_OFFSET (2) +#define EMBER_AF_PROPOSED_CHANGE_CONTROL_RESET_DEBIT_REGISTER (0x00000008) +#define EMBER_AF_PROPOSED_CHANGE_CONTROL_RESET_DEBIT_REGISTER_OFFSET (3) +#define EMBER_AF_PROPOSED_CHANGE_CONTROL_RESET_BILLING_PERIOD (0x00000010) +#define EMBER_AF_PROPOSED_CHANGE_CONTROL_RESET_BILLING_PERIOD_OFFSET (4) +#define EMBER_AF_PROPOSED_CHANGE_CONTROL_CLEAR_TARIFF_PLAN (0x00000020) +#define EMBER_AF_PROPOSED_CHANGE_CONTROL_CLEAR_TARIFF_PLAN_OFFSET (5) +#define EMBER_AF_PROPOSED_CHANGE_CONTROL_CLEAR_STANDING_CHARGE (0x00000040) +#define EMBER_AF_PROPOSED_CHANGE_CONTROL_CLEAR_STANDING_CHARGE_OFFSET (6) +#define EMBER_AF_PROPOSED_CHANGE_CONTROL_BLOCK_HISTORICAL_LOAD_PROFILE_INFORMATION (0x00000080) +#define EMBER_AF_PROPOSED_CHANGE_CONTROL_BLOCK_HISTORICAL_LOAD_PROFILE_INFORMATION_OFFSET (7) +#define EMBER_AF_PROPOSED_CHANGE_CONTROL_CLEAR_HISTORICAL_LOAD_PROFILE_INFORMATION (0x00000100) +#define EMBER_AF_PROPOSED_CHANGE_CONTROL_CLEAR_HISTORICAL_LOAD_PROFILE_INFORMATION_OFFSET (8) +#define EMBER_AF_PROPOSED_CHANGE_CONTROL_CLEAR_IHD_DATA_CONSUMER (0x00000200) +#define EMBER_AF_PROPOSED_CHANGE_CONTROL_CLEAR_IHD_DATA_CONSUMER_OFFSET (9) +#define EMBER_AF_PROPOSED_CHANGE_CONTROL_CLEAR_IHD_DATA_SUPPLIER (0x00000400) +#define EMBER_AF_PROPOSED_CHANGE_CONTROL_CLEAR_IHD_DATA_SUPPLIER_OFFSET (10) +#define EMBER_AF_PROPOSED_CHANGE_CONTROL_METER_CONNECTOR_STATE_ON_OFF_ARMED (0x00001800) +#define EMBER_AF_PROPOSED_CHANGE_CONTROL_METER_CONNECTOR_STATE_ON_OFF_ARMED_OFFSET (11) +#define EMBER_AF_PROPOSED_CHANGE_CONTROL_CLEAR_TRANSACTION_LOG (0x00002000) +#define EMBER_AF_PROPOSED_CHANGE_CONTROL_CLEAR_TRANSACTION_LOG_OFFSET (13) +#define EMBER_AF_PROPOSED_CHANGE_CONTROL_CLEAR_PREPAYMENT_LOG (0x00004000) +#define EMBER_AF_PROPOSED_CHANGE_CONTROL_CLEAR_PREPAYMENT_LOG_OFFSET (14) +#define EMBER_AF_PUMP_ALARM_MASK_SUPPLY_VOLTAGE_TOO_LOW (0x1) +#define EMBER_AF_PUMP_ALARM_MASK_SUPPLY_VOLTAGE_TOO_LOW_OFFSET (0) +#define EMBER_AF_PUMP_ALARM_MASK_SUPPLY_VOLTAGE_TOO_HIGH (0x2) +#define EMBER_AF_PUMP_ALARM_MASK_SUPPLY_VOLTAGE_TOO_HIGH_OFFSET (1) +#define EMBER_AF_PUMP_ALARM_MASK_POWER_MISSING_PHASE (0x4) +#define EMBER_AF_PUMP_ALARM_MASK_POWER_MISSING_PHASE_OFFSET (2) +#define EMBER_AF_PUMP_ALARM_MASK_SYSTEM_PRESSURE_TOO_LOW (0x8) +#define EMBER_AF_PUMP_ALARM_MASK_SYSTEM_PRESSURE_TOO_LOW_OFFSET (3) +#define EMBER_AF_PUMP_ALARM_MASK_SYSTEM_PRESSURE_TOO_HIGH (0x10) +#define EMBER_AF_PUMP_ALARM_MASK_SYSTEM_PRESSURE_TOO_HIGH_OFFSET (4) +#define EMBER_AF_PUMP_ALARM_MASK_DRY_RUNNING (0x20) +#define EMBER_AF_PUMP_ALARM_MASK_DRY_RUNNING_OFFSET (5) +#define EMBER_AF_PUMP_ALARM_MASK_MOTOR_TEMPERATURE_TOO_HIGH (0x40) +#define EMBER_AF_PUMP_ALARM_MASK_MOTOR_TEMPERATURE_TOO_HIGH_OFFSET (6) +#define EMBER_AF_PUMP_ALARM_MASK_PUMP_MOTOR_HAS_FATAL_FAILURE (0x80) +#define EMBER_AF_PUMP_ALARM_MASK_PUMP_MOTOR_HAS_FATAL_FAILURE_OFFSET (7) +#define EMBER_AF_PUMP_ALARM_MASK_ELECTRONIC_TEMPERATURE_TOO_HIGH (0x100) +#define EMBER_AF_PUMP_ALARM_MASK_ELECTRONIC_TEMPERATURE_TOO_HIGH_OFFSET (8) +#define EMBER_AF_PUMP_ALARM_MASK_PUMP_BLOCKED (0x200) +#define EMBER_AF_PUMP_ALARM_MASK_PUMP_BLOCKED_OFFSET (9) +#define EMBER_AF_PUMP_ALARM_MASK_SENSOR_FAILURE (0x400) +#define EMBER_AF_PUMP_ALARM_MASK_SENSOR_FAILURE_OFFSET (10) +#define EMBER_AF_PUMP_ALARM_MASK_ELECTRONIC_NON_FATAL_FAILURE (0x800) +#define EMBER_AF_PUMP_ALARM_MASK_ELECTRONIC_NON_FATAL_FAILURE_OFFSET (11) +#define EMBER_AF_PUMP_ALARM_MASK_ELECTRONIC_FATAL_FAILURE (0x1000) +#define EMBER_AF_PUMP_ALARM_MASK_ELECTRONIC_FATAL_FAILURE_OFFSET (12) +#define EMBER_AF_PUMP_ALARM_MASK_GENERAL_FAULT (0x2000) +#define EMBER_AF_PUMP_ALARM_MASK_GENERAL_FAULT_OFFSET (13) +#define EMBER_AF_PUMP_STATUS_DEVICE_FAULT (0x1) +#define EMBER_AF_PUMP_STATUS_DEVICE_FAULT_OFFSET (0) +#define EMBER_AF_PUMP_STATUS_SUPPLYFAULT (0x2) +#define EMBER_AF_PUMP_STATUS_SUPPLYFAULT_OFFSET (1) +#define EMBER_AF_PUMP_STATUS_SPEED_LOW (0x4) +#define EMBER_AF_PUMP_STATUS_SPEED_LOW_OFFSET (2) +#define EMBER_AF_PUMP_STATUS_SPEED_HIGH (0x8) +#define EMBER_AF_PUMP_STATUS_SPEED_HIGH_OFFSET (3) +#define EMBER_AF_PUMP_STATUS_LOCAL_OVERRIDE (0x10) +#define EMBER_AF_PUMP_STATUS_LOCAL_OVERRIDE_OFFSET (4) +#define EMBER_AF_PUMP_STATUS_RUNNING (0x20) +#define EMBER_AF_PUMP_STATUS_RUNNING_OFFSET (5) +#define EMBER_AF_PUMP_STATUS_REMOTE_PRESSURE (0x40) +#define EMBER_AF_PUMP_STATUS_REMOTE_PRESSURE_OFFSET (6) +#define EMBER_AF_PUMP_STATUS_REMOTE_FLOW (0x80) +#define EMBER_AF_PUMP_STATUS_REMOTE_FLOW_OFFSET (7) +#define EMBER_AF_PUMP_STATUS_REMOTE_TEMPERATURE (0x100) +#define EMBER_AF_PUMP_STATUS_REMOTE_TEMPERATURE_OFFSET (8) +#define EMBER_AF_REMOTE_ENABLE_FLAGS_AND_DEVICE_STATUS2_REMOTE_ENABLE_FLAGS (0x0F) +#define EMBER_AF_REMOTE_ENABLE_FLAGS_AND_DEVICE_STATUS2_REMOTE_ENABLE_FLAGS_OFFSET (0) +#define EMBER_AF_REMOTE_ENABLE_FLAGS_AND_DEVICE_STATUS2_DEVICE_STATUS2_STRUCTURE (0xF0) +#define EMBER_AF_REMOTE_ENABLE_FLAGS_AND_DEVICE_STATUS2_DEVICE_STATUS2_STRUCTURE_OFFSET (4) +#define EMBER_AF_RESET_OPTIONS_RESET_CURRENT (0x1) +#define EMBER_AF_RESET_OPTIONS_RESET_CURRENT_OFFSET (0) +#define EMBER_AF_RESET_OPTIONS_RESET_ALL (0x2) +#define EMBER_AF_RESET_OPTIONS_RESET_ALL_OFFSET (1) +#define EMBER_AF_RESET_OPTIONS_ERASE_INDEX (0x4) +#define EMBER_AF_RESET_OPTIONS_ERASE_INDEX_OFFSET (2) +#define EMBER_AF_RESTART_OPTIONS_START_MODE1 (0x1) +#define EMBER_AF_RESTART_OPTIONS_START_MODE1_OFFSET (0) +#define EMBER_AF_RESTART_OPTIONS_STARTUP_MODE2 (0x2) +#define EMBER_AF_RESTART_OPTIONS_STARTUP_MODE2_OFFSET (1) +#define EMBER_AF_RESTART_OPTIONS_STARTUP_MODE3 (0x4) +#define EMBER_AF_RESTART_OPTIONS_STARTUP_MODE3_OFFSET (2) +#define EMBER_AF_RESTART_OPTIONS_IMMEDIATE (0x8) +#define EMBER_AF_RESTART_OPTIONS_IMMEDIATE_OFFSET (3) +#define EMBER_AF_SCENES_COPY_MODE_COPY_ALL_SCENES (0x01) +#define EMBER_AF_SCENES_COPY_MODE_COPY_ALL_SCENES_OFFSET (0) +#define EMBER_AF_SHADE_CLOSURE_STATUS_OPERATIONAL (0x1) +#define EMBER_AF_SHADE_CLOSURE_STATUS_OPERATIONAL_OFFSET (0) +#define EMBER_AF_SHADE_CLOSURE_STATUS_ADJUSTING (0x2) +#define EMBER_AF_SHADE_CLOSURE_STATUS_ADJUSTING_OFFSET (1) +#define EMBER_AF_SHADE_CLOSURE_STATUS_OPENING (0x4) +#define EMBER_AF_SHADE_CLOSURE_STATUS_OPENING_OFFSET (2) +#define EMBER_AF_SHADE_CLOSURE_STATUS_MOTOR_OPENING (0x8) +#define EMBER_AF_SHADE_CLOSURE_STATUS_MOTOR_OPENING_OFFSET (3) +#define EMBER_AF_SNAPSHOT_CAUSE_GENERAL (0x00000001) +#define EMBER_AF_SNAPSHOT_CAUSE_GENERAL_OFFSET (0) +#define EMBER_AF_SNAPSHOT_CAUSE_END_OF_BILLING_PERIOD (0x00000002) +#define EMBER_AF_SNAPSHOT_CAUSE_END_OF_BILLING_PERIOD_OFFSET (1) +#define EMBER_AF_SNAPSHOT_CAUSE_END_OF_BLOCK_PERIOD (0x00000004) +#define EMBER_AF_SNAPSHOT_CAUSE_END_OF_BLOCK_PERIOD_OFFSET (2) +#define EMBER_AF_SNAPSHOT_CAUSE_CHANGE_OF_TARIFF_INFORMATION (0x00000008) +#define EMBER_AF_SNAPSHOT_CAUSE_CHANGE_OF_TARIFF_INFORMATION_OFFSET (3) +#define EMBER_AF_SNAPSHOT_CAUSE_CHANGE_OF_PRICE_MATRIX (0x00000010) +#define EMBER_AF_SNAPSHOT_CAUSE_CHANGE_OF_PRICE_MATRIX_OFFSET (4) +#define EMBER_AF_SNAPSHOT_CAUSE_CHANGE_OF_BLOCK_THRESHOLDS (0x00000020) +#define EMBER_AF_SNAPSHOT_CAUSE_CHANGE_OF_BLOCK_THRESHOLDS_OFFSET (5) +#define EMBER_AF_SNAPSHOT_CAUSE_CHANGE_OF_CV (0x00000040) +#define EMBER_AF_SNAPSHOT_CAUSE_CHANGE_OF_CV_OFFSET (6) +#define EMBER_AF_SNAPSHOT_CAUSE_CHANGE_OF_CF (0x00000080) +#define EMBER_AF_SNAPSHOT_CAUSE_CHANGE_OF_CF_OFFSET (7) +#define EMBER_AF_SNAPSHOT_CAUSE_CHANGE_OF_CALENDAR (0x00000100) +#define EMBER_AF_SNAPSHOT_CAUSE_CHANGE_OF_CALENDAR_OFFSET (8) +#define EMBER_AF_SNAPSHOT_CAUSE_CRITICAL_PEAK_PRICING (0x00000200) +#define EMBER_AF_SNAPSHOT_CAUSE_CRITICAL_PEAK_PRICING_OFFSET (9) +#define EMBER_AF_SNAPSHOT_CAUSE_MANUALLY_TRIGGERED_FROM_CLIENT (0x00000400) +#define EMBER_AF_SNAPSHOT_CAUSE_MANUALLY_TRIGGERED_FROM_CLIENT_OFFSET (10) +#define EMBER_AF_SNAPSHOT_CAUSE_END_OF_RESOLVE_PERIOD (0x00000800) +#define EMBER_AF_SNAPSHOT_CAUSE_END_OF_RESOLVE_PERIOD_OFFSET (11) +#define EMBER_AF_SNAPSHOT_CAUSE_CHANGE_OF_TENANCY (0x00001000) +#define EMBER_AF_SNAPSHOT_CAUSE_CHANGE_OF_TENANCY_OFFSET (12) +#define EMBER_AF_SNAPSHOT_CAUSE_CHANGE_OF_SUPPLIER (0x00002000) +#define EMBER_AF_SNAPSHOT_CAUSE_CHANGE_OF_SUPPLIER_OFFSET (13) +#define EMBER_AF_SNAPSHOT_CAUSE_CHANGE_OF_MODE (0x00004000) +#define EMBER_AF_SNAPSHOT_CAUSE_CHANGE_OF_MODE_OFFSET (14) +#define EMBER_AF_SNAPSHOT_CAUSE_DEBT_PAYMENT (0x00008000) +#define EMBER_AF_SNAPSHOT_CAUSE_DEBT_PAYMENT_OFFSET (15) +#define EMBER_AF_SNAPSHOT_CAUSE_SCHEDULED_SNAPSHOT (0x00010000) +#define EMBER_AF_SNAPSHOT_CAUSE_SCHEDULED_SNAPSHOT_OFFSET (16) +#define EMBER_AF_SNAPSHOT_CAUSE_OTA_FIRMWARE_DOWNLOAD (0x00020000) +#define EMBER_AF_SNAPSHOT_CAUSE_OTA_FIRMWARE_DOWNLOAD_OFFSET (17) +#define EMBER_AF_SQUAWK_INFO_MODE (0xf0) +#define EMBER_AF_SQUAWK_INFO_MODE_OFFSET (4) +#define EMBER_AF_SQUAWK_INFO_STROBE (0x08) +#define EMBER_AF_SQUAWK_INFO_STROBE_OFFSET (3) +#define EMBER_AF_SQUAWK_INFO_LEVEL (0x03) +#define EMBER_AF_SQUAWK_INFO_LEVEL_OFFSET (0) +#define EMBER_AF_START_TIME_MINUTES (0x003F) +#define EMBER_AF_START_TIME_MINUTES_OFFSET (0) +#define EMBER_AF_START_TIME_TIME_ENCODING (0x00C0) +#define EMBER_AF_START_TIME_TIME_ENCODING_OFFSET (6) +#define EMBER_AF_START_TIME_HOURS (0xFF00) +#define EMBER_AF_START_TIME_HOURS_OFFSET (8) +#define EMBER_AF_SUPPLY_CONTROL_BITS_ACKNOWLEDGE_REQUIRED (0x01) +#define EMBER_AF_SUPPLY_CONTROL_BITS_ACKNOWLEDGE_REQUIRED_OFFSET (0) +#define EMBER_AF_TARIFF_TYPE_CHARGING_SCHEME_TARIFF_TYPE (0x0F) +#define EMBER_AF_TARIFF_TYPE_CHARGING_SCHEME_TARIFF_TYPE_OFFSET (0) +#define EMBER_AF_TARIFF_TYPE_CHARGING_SCHEME_TARIFF_CHARGING_SCHEME (0xF0) +#define EMBER_AF_TARIFF_TYPE_CHARGING_SCHEME_TARIFF_CHARGING_SCHEME_OFFSET (4) +#define EMBER_AF_THERMOSTAT_ALARM_MASK_INITIALIZATION_FAILURE (0x1) +#define EMBER_AF_THERMOSTAT_ALARM_MASK_INITIALIZATION_FAILURE_OFFSET (0) +#define EMBER_AF_THERMOSTAT_ALARM_MASK_HARDWARE_FAILURE (0x2) +#define EMBER_AF_THERMOSTAT_ALARM_MASK_HARDWARE_FAILURE_OFFSET (1) +#define EMBER_AF_THERMOSTAT_ALARM_MASK_SELFCALIBRATION_FAILURE (0x4) +#define EMBER_AF_THERMOSTAT_ALARM_MASK_SELFCALIBRATION_FAILURE_OFFSET (2) +#define EMBER_AF_THERMOSTAT_OCCUPANCY_OCCUPIED (0x1) +#define EMBER_AF_THERMOSTAT_OCCUPANCY_OCCUPIED_OFFSET (0) +#define EMBER_AF_THERMOSTAT_RUNNING_STATE_HEAT_STATE_ON (0x0001) +#define EMBER_AF_THERMOSTAT_RUNNING_STATE_HEAT_STATE_ON_OFFSET (0) +#define EMBER_AF_THERMOSTAT_RUNNING_STATE_COOL_STATE_ON (0x0002) +#define EMBER_AF_THERMOSTAT_RUNNING_STATE_COOL_STATE_ON_OFFSET (1) +#define EMBER_AF_THERMOSTAT_RUNNING_STATE_FAN_STATE_ON (0x0004) +#define EMBER_AF_THERMOSTAT_RUNNING_STATE_FAN_STATE_ON_OFFSET (2) +#define EMBER_AF_THERMOSTAT_RUNNING_STATE_HEAT_SECOND_STAGE_STATE_ON (0x0008) +#define EMBER_AF_THERMOSTAT_RUNNING_STATE_HEAT_SECOND_STAGE_STATE_ON_OFFSET (3) +#define EMBER_AF_THERMOSTAT_RUNNING_STATE_COOL_SECOND_STAGE_STATE_ON (0x0010) +#define EMBER_AF_THERMOSTAT_RUNNING_STATE_COOL_SECOND_STAGE_STATE_ON_OFFSET (4) +#define EMBER_AF_THERMOSTAT_RUNNING_STATE_FAN_SECOND_STAGE_STATE_ON (0x0020) +#define EMBER_AF_THERMOSTAT_RUNNING_STATE_FAN_SECOND_STAGE_STATE_ON_OFFSET (5) +#define EMBER_AF_THERMOSTAT_RUNNING_STATE_FAN_THIRD_STAGE_STATE_ON (0x0040) +#define EMBER_AF_THERMOSTAT_RUNNING_STATE_FAN_THIRD_STAGE_STATE_ON_OFFSET (6) +#define EMBER_AF_THERMOSTAT_SENSING_LOCAL_TEMP_SENSED_REMOTELY (0x1) +#define EMBER_AF_THERMOSTAT_SENSING_LOCAL_TEMP_SENSED_REMOTELY_OFFSET (0) +#define EMBER_AF_THERMOSTAT_SENSING_OUTDOOR_TEMP_SENSED_REMOTELY (0x2) +#define EMBER_AF_THERMOSTAT_SENSING_OUTDOOR_TEMP_SENSED_REMOTELY_OFFSET (1) +#define EMBER_AF_THERMOSTAT_SENSING_OCCUPANCY_SENSED_REMOTELY (0x4) +#define EMBER_AF_THERMOSTAT_SENSING_OCCUPANCY_SENSED_REMOTELY_OFFSET (2) +#define EMBER_AF_TIME_STATUS_MASK_MASTER_CLOCK (0x1) +#define EMBER_AF_TIME_STATUS_MASK_MASTER_CLOCK_OFFSET (0) +#define EMBER_AF_TIME_STATUS_MASK_SYNCHRONIZED (0x2) +#define EMBER_AF_TIME_STATUS_MASK_SYNCHRONIZED_OFFSET (1) +#define EMBER_AF_TIME_STATUS_MASK_MASTER_ZONE_DST (0x4) +#define EMBER_AF_TIME_STATUS_MASK_MASTER_ZONE_DST_OFFSET (2) +#define EMBER_AF_TIME_STATUS_MASK_SUPERSEDING (0x8) +#define EMBER_AF_TIME_STATUS_MASK_SUPERSEDING_OFFSET (3) +#define EMBER_AF_WARNING_INFO_MODE (0xf0) +#define EMBER_AF_WARNING_INFO_MODE_OFFSET (4) +#define EMBER_AF_WARNING_INFO_STROBE (0x0c) +#define EMBER_AF_WARNING_INFO_STROBE_OFFSET (2) +#define EMBER_AF_WARNING_INFO_SIREN_LEVEL (0x03) +#define EMBER_AF_WARNING_INFO_SIREN_LEVEL_OFFSET (0) +#define EMBER_AF_ZIGBEE_INFORMATION_LOGICAL_TYPE (0x03) +#define EMBER_AF_ZIGBEE_INFORMATION_LOGICAL_TYPE_OFFSET (0) +#define EMBER_AF_ZIGBEE_INFORMATION_RX_ON_WHEN_IDLE (0x04) +#define EMBER_AF_ZIGBEE_INFORMATION_RX_ON_WHEN_IDLE_OFFSET (2) +#define EMBER_AF_ZLL_INFORMATION_FACTORY_NEW (0x01) +#define EMBER_AF_ZLL_INFORMATION_FACTORY_NEW_OFFSET (0) +#define EMBER_AF_ZLL_INFORMATION_ADDRESS_ASSIGNMENT (0x02) +#define EMBER_AF_ZLL_INFORMATION_ADDRESS_ASSIGNMENT_OFFSET (1) +#define EMBER_AF_ZLL_INFORMATION_TOUCH_LINK_INITIATOR (0x10) +#define EMBER_AF_ZLL_INFORMATION_TOUCH_LINK_INITIATOR_OFFSET (4) +#define EMBER_AF_ZLL_INFORMATION_TOUCH_LINK_PRIORITY_REQUEST (0x20) +#define EMBER_AF_ZLL_INFORMATION_TOUCH_LINK_PRIORITY_REQUEST_OFFSET (5) +#define EMBER_AF_ZLL_INFORMATION_PROFILE_INTEROP (0x80) +#define EMBER_AF_ZLL_INFORMATION_PROFILE_INTEROP_OFFSET (7) diff --git a/examples/all-clusters-app/all-clusters-common/gen/gen_config.h b/examples/all-clusters-app/all-clusters-common/gen/gen_config.h new file mode 100644 index 00000000000000..29ebbde513ecbf --- /dev/null +++ b/examples/all-clusters-app/all-clusters-common/gen/gen_config.h @@ -0,0 +1,162 @@ + +/* + * + * 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. + */ + +// Prevent multiple inclusion +#pragma once + +// User options for plugin Binding Table Library +#define EMBER_BINDING_TABLE_SIZE 10 + +/**** Network Section ****/ +#define EMBER_SUPPORTED_NETWORKS (1) + +#define EMBER_APS_UNICAST_MESSAGE_COUNT 10 + +/**** Cluster endpoint counts ****/ +#define EMBER_AF_BARRIER_CONTROL_CLUSTER_CLIENT_ENDPOINT_COUNT (1) +#define EMBER_AF_BARRIER_CONTROL_CLUSTER_SERVER_ENDPOINT_COUNT (1) +#define EMBER_AF_BASIC_CLUSTER_CLIENT_ENDPOINT_COUNT (1) +#define EMBER_AF_BASIC_CLUSTER_SERVER_ENDPOINT_COUNT (1) +#define EMBER_AF_COLOR_CONTROL_CLUSTER_CLIENT_ENDPOINT_COUNT (1) +#define EMBER_AF_COLOR_CONTROL_CLUSTER_SERVER_ENDPOINT_COUNT (1) +#define EMBER_AF_DOOR_LOCK_CLUSTER_CLIENT_ENDPOINT_COUNT (1) +#define EMBER_AF_DOOR_LOCK_CLUSTER_SERVER_ENDPOINT_COUNT (1) +#define EMBER_AF_GROUPS_CLUSTER_CLIENT_ENDPOINT_COUNT (1) +#define EMBER_AF_GROUPS_CLUSTER_SERVER_ENDPOINT_COUNT (1) +#define EMBER_AF_IAS_ZONE_CLUSTER_SERVER_ENDPOINT_COUNT (1) +#define EMBER_AF_IDENTIFY_CLUSTER_CLIENT_ENDPOINT_COUNT (1) +#define EMBER_AF_IDENTIFY_CLUSTER_SERVER_ENDPOINT_COUNT (1) +#define EMBER_AF_LEVEL_CONTROL_CLUSTER_CLIENT_ENDPOINT_COUNT (1) +#define EMBER_AF_LEVEL_CONTROL_CLUSTER_SERVER_ENDPOINT_COUNT (1) +#define EMBER_AF_ON_OFF_CLUSTER_CLIENT_ENDPOINT_COUNT (1) +#define EMBER_AF_ON_OFF_CLUSTER_SERVER_ENDPOINT_COUNT (1) +#define EMBER_AF_SCENES_CLUSTER_CLIENT_ENDPOINT_COUNT (1) +#define EMBER_AF_SCENES_CLUSTER_SERVER_ENDPOINT_COUNT (1) +#define EMBER_AF_TEMP_MEASUREMENT_CLUSTER_SERVER_ENDPOINT_COUNT (1) + +/**** Cluster Plugins ****/ + +// Use this macro to check if the client side of the Barrier Control cluster is included +#define ZCL_USING_BARRIER_CONTROL_CLUSTER_CLIENT +#define EMBER_AF_PLUGIN_BARRIER_CONTROL_CLIENT + +// Use this macro to check if the server side of the Barrier Control cluster is included +#define ZCL_USING_BARRIER_CONTROL_CLUSTER_SERVER +#define EMBER_AF_PLUGIN_BARRIER_CONTROL_SERVER +#define EMBER_AF_PLUGIN_BARRIER_CONTROL + +// Use this macro to check if the client side of the Basic cluster is included +#define ZCL_USING_BASIC_CLUSTER_CLIENT +#define EMBER_AF_PLUGIN_BASIC_CLIENT + +// 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 client side of the Color Control cluster is included +#define ZCL_USING_COLOR_CONTROL_CLUSTER_CLIENT +#define EMBER_AF_PLUGIN_COLOR_CONTROL_CLIENT + +// 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 client side of the Door Lock cluster is included +#define ZCL_USING_DOOR_LOCK_CLUSTER_CLIENT +#define EMBER_AF_PLUGIN_DOOR_LOCK_CLIENT + +// Use this macro to check if the server side of the Door Lock cluster is included +#define ZCL_USING_DOOR_LOCK_CLUSTER_SERVER +#define EMBER_AF_PLUGIN_DOOR_LOCK_SERVER +#define EMBER_AF_PLUGIN_DOOR_LOCK + +// Use this macro to check if the client side of the Groups cluster is included +#define ZCL_USING_GROUPS_CLUSTER_CLIENT +#define EMBER_AF_PLUGIN_GROUPS_CLIENT + +// 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 IAS Zone cluster is included +#define ZCL_USING_IAS_ZONE_CLUSTER_SERVER +#define EMBER_AF_PLUGIN_IAS_ZONE_SERVER +#define EMBER_AF_PLUGIN_IAS_ZONE +// User options for server plugin IAS Zone +#define EMBER_AF_PLUGIN_IAS_ZONE_SERVER_ZONE_TYPE 541 + +// Use this macro to check if the client side of the Identify cluster is included +#define ZCL_USING_IDENTIFY_CLUSTER_CLIENT +#define EMBER_AF_PLUGIN_IDENTIFY_CLIENT + +// 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 client side of the Level Control cluster is included +#define ZCL_USING_LEVEL_CONTROL_CLUSTER_CLIENT +#define EMBER_AF_PLUGIN_LEVEL_CONTROL_CLIENT + +// 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 255 +#define EMBER_AF_PLUGIN_LEVEL_CONTROL_MINIMUM_LEVEL 0 +#define EMBER_AF_PLUGIN_LEVEL_CONTROL_RATE 0 + +// Use this macro to check if the client side of the On/off cluster is included +#define ZCL_USING_ON_OFF_CLUSTER_CLIENT +#define EMBER_AF_PLUGIN_ON_OFF_CLIENT + +// 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 client side of the Scenes cluster is included +#define ZCL_USING_SCENES_CLUSTER_CLIENT +#define EMBER_AF_PLUGIN_SCENES_CLIENT + +// Use this macro to check if the server side of the Scenes cluster is included +#define ZCL_USING_SCENES_CLUSTER_SERVER +#define EMBER_AF_PLUGIN_SCENES_SERVER +#define EMBER_AF_PLUGIN_SCENES +// User options for server plugin Scenes +#define EMBER_AF_PLUGIN_SCENES_TABLE_SIZE 3 + +// Use this macro to check if the server side of the Temperature Measurement cluster is included +#define ZCL_USING_TEMP_MEASUREMENT_CLUSTER_SERVER +#define EMBER_AF_PLUGIN_TEMPERATURE_MEASUREMENT_SERVER +#define EMBER_AF_PLUGIN_TEMPERATURE_MEASUREMENT + +// TODO Issue #3871 Reporting should only be enabled if there are reportable attributes +// Use this macro to check if Reporting plugin is included +#define EMBER_AF_PLUGIN_REPORTING +// User options for plugin Reporting +#define EMBER_AF_PLUGIN_REPORTING_TABLE_SIZE 5 +#define EMBER_AF_PLUGIN_REPORTING_ENABLE_GROUP_BOUND_REPORTS diff --git a/examples/lighting-app/efr32/src/gen/gen_tokens.h b/examples/all-clusters-app/all-clusters-common/gen/gen_tokens.h similarity index 100% rename from examples/lighting-app/efr32/src/gen/gen_tokens.h rename to examples/all-clusters-app/all-clusters-common/gen/gen_tokens.h diff --git a/examples/all-clusters-app/all-clusters-common/gen/print-cluster.h b/examples/all-clusters-app/all-clusters-common/gen/print-cluster.h new file mode 100644 index 00000000000000..a37d7fb0495995 --- /dev/null +++ b/examples/all-clusters-app/all-clusters-common/gen/print-cluster.h @@ -0,0 +1,860 @@ + +/* + * + * 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. + */ + +// Prevent multiple inclusion +#pragma once + +// This is the mapping of IDs to cluster names assuming a format according +// to the "EmberAfClusterName" defined in the ZCL header. +// The names of clusters that are not present, are removed. + +#if defined(ZCL_USING_BASIC_CLUSTER_SERVER) || defined(ZCL_USING_BASIC_CLUSTER_CLIENT) +#define CHIP_PRINTCLUSTER_BASIC_CLUSTER { ZCL_BASIC_CLUSTER_ID, 0, "Basic" }, +#else +#define CHIP_PRINTCLUSTER_BASIC_CLUSTER +#endif + +#if defined(ZCL_USING_POWER_CONFIG_CLUSTER_SERVER) || defined(ZCL_USING_POWER_CONFIG_CLUSTER_CLIENT) +#define CHIP_PRINTCLUSTER_POWER_CONFIG_CLUSTER { ZCL_POWER_CONFIG_CLUSTER_ID, 1, "Power Configuration" }, +#else +#define CHIP_PRINTCLUSTER_POWER_CONFIG_CLUSTER +#endif + +#if defined(ZCL_USING_DEVICE_TEMP_CLUSTER_SERVER) || defined(ZCL_USING_DEVICE_TEMP_CLUSTER_CLIENT) +#define CHIP_PRINTCLUSTER_DEVICE_TEMP_CLUSTER { ZCL_DEVICE_TEMP_CLUSTER_ID, 2, "Device Temperature Configuration" }, +#else +#define CHIP_PRINTCLUSTER_DEVICE_TEMP_CLUSTER +#endif + +#if defined(ZCL_USING_IDENTIFY_CLUSTER_SERVER) || defined(ZCL_USING_IDENTIFY_CLUSTER_CLIENT) +#define CHIP_PRINTCLUSTER_IDENTIFY_CLUSTER { ZCL_IDENTIFY_CLUSTER_ID, 3, "Identify" }, +#else +#define CHIP_PRINTCLUSTER_IDENTIFY_CLUSTER +#endif + +#if defined(ZCL_USING_GROUPS_CLUSTER_SERVER) || defined(ZCL_USING_GROUPS_CLUSTER_CLIENT) +#define CHIP_PRINTCLUSTER_GROUPS_CLUSTER { ZCL_GROUPS_CLUSTER_ID, 4, "Groups" }, +#else +#define CHIP_PRINTCLUSTER_GROUPS_CLUSTER +#endif + +#if defined(ZCL_USING_SCENES_CLUSTER_SERVER) || defined(ZCL_USING_SCENES_CLUSTER_CLIENT) +#define CHIP_PRINTCLUSTER_SCENES_CLUSTER { ZCL_SCENES_CLUSTER_ID, 5, "Scenes" }, +#else +#define CHIP_PRINTCLUSTER_SCENES_CLUSTER +#endif + +#if defined(ZCL_USING_ON_OFF_CLUSTER_SERVER) || defined(ZCL_USING_ON_OFF_CLUSTER_CLIENT) +#define CHIP_PRINTCLUSTER_ON_OFF_CLUSTER { ZCL_ON_OFF_CLUSTER_ID, 6, "On/off" }, +#else +#define CHIP_PRINTCLUSTER_ON_OFF_CLUSTER +#endif + +#if defined(ZCL_USING_ON_OFF_SWITCH_CONFIG_CLUSTER_SERVER) || defined(ZCL_USING_ON_OFF_SWITCH_CONFIG_CLUSTER_CLIENT) +#define CHIP_PRINTCLUSTER_ON_OFF_SWITCH_CONFIG_CLUSTER { ZCL_ON_OFF_SWITCH_CONFIG_CLUSTER_ID, 7, "On/off Switch Configuration" }, +#else +#define CHIP_PRINTCLUSTER_ON_OFF_SWITCH_CONFIG_CLUSTER +#endif + +#if defined(ZCL_USING_LEVEL_CONTROL_CLUSTER_SERVER) || defined(ZCL_USING_LEVEL_CONTROL_CLUSTER_CLIENT) +#define CHIP_PRINTCLUSTER_LEVEL_CONTROL_CLUSTER { ZCL_LEVEL_CONTROL_CLUSTER_ID, 8, "Level Control" }, +#else +#define CHIP_PRINTCLUSTER_LEVEL_CONTROL_CLUSTER +#endif + +#if defined(ZCL_USING_ALARM_CLUSTER_SERVER) || defined(ZCL_USING_ALARM_CLUSTER_CLIENT) +#define CHIP_PRINTCLUSTER_ALARM_CLUSTER { ZCL_ALARM_CLUSTER_ID, 9, "Alarms" }, +#else +#define CHIP_PRINTCLUSTER_ALARM_CLUSTER +#endif + +#if defined(ZCL_USING_TIME_CLUSTER_SERVER) || defined(ZCL_USING_TIME_CLUSTER_CLIENT) +#define CHIP_PRINTCLUSTER_TIME_CLUSTER { ZCL_TIME_CLUSTER_ID, 10, "Time" }, +#else +#define CHIP_PRINTCLUSTER_TIME_CLUSTER +#endif + +#if defined(ZCL_USING_RSSI_LOCATION_CLUSTER_SERVER) || defined(ZCL_USING_RSSI_LOCATION_CLUSTER_CLIENT) +#define CHIP_PRINTCLUSTER_RSSI_LOCATION_CLUSTER { ZCL_RSSI_LOCATION_CLUSTER_ID, 11, "RSSI Location" }, +#else +#define CHIP_PRINTCLUSTER_RSSI_LOCATION_CLUSTER +#endif + +#if defined(ZCL_USING_BINARY_INPUT_BASIC_CLUSTER_SERVER) || defined(ZCL_USING_BINARY_INPUT_BASIC_CLUSTER_CLIENT) +#define CHIP_PRINTCLUSTER_BINARY_INPUT_BASIC_CLUSTER { ZCL_BINARY_INPUT_BASIC_CLUSTER_ID, 15, "Binary Input (Basic)" }, +#else +#define CHIP_PRINTCLUSTER_BINARY_INPUT_BASIC_CLUSTER +#endif + +#if defined(ZCL_USING_COMMISSIONING_CLUSTER_SERVER) || defined(ZCL_USING_COMMISSIONING_CLUSTER_CLIENT) +#define CHIP_PRINTCLUSTER_COMMISSIONING_CLUSTER { ZCL_COMMISSIONING_CLUSTER_ID, 21, "Commissioning" }, +#else +#define CHIP_PRINTCLUSTER_COMMISSIONING_CLUSTER +#endif + +#if defined(ZCL_USING_PARTITION_CLUSTER_SERVER) || defined(ZCL_USING_PARTITION_CLUSTER_CLIENT) +#define CHIP_PRINTCLUSTER_PARTITION_CLUSTER { ZCL_PARTITION_CLUSTER_ID, 22, "Partition" }, +#else +#define CHIP_PRINTCLUSTER_PARTITION_CLUSTER +#endif + +#if defined(ZCL_USING_OTA_BOOTLOAD_CLUSTER_SERVER) || defined(ZCL_USING_OTA_BOOTLOAD_CLUSTER_CLIENT) +#define CHIP_PRINTCLUSTER_OTA_BOOTLOAD_CLUSTER { ZCL_OTA_BOOTLOAD_CLUSTER_ID, 25, "Over the Air Bootloading" }, +#else +#define CHIP_PRINTCLUSTER_OTA_BOOTLOAD_CLUSTER +#endif + +#if defined(ZCL_USING_POWER_PROFILE_CLUSTER_SERVER) || defined(ZCL_USING_POWER_PROFILE_CLUSTER_CLIENT) +#define CHIP_PRINTCLUSTER_POWER_PROFILE_CLUSTER { ZCL_POWER_PROFILE_CLUSTER_ID, 26, "Power Profile" }, +#else +#define CHIP_PRINTCLUSTER_POWER_PROFILE_CLUSTER +#endif + +#if defined(ZCL_USING_APPLIANCE_CONTROL_CLUSTER_SERVER) || defined(ZCL_USING_APPLIANCE_CONTROL_CLUSTER_CLIENT) +#define CHIP_PRINTCLUSTER_APPLIANCE_CONTROL_CLUSTER { ZCL_APPLIANCE_CONTROL_CLUSTER_ID, 27, "Appliance Control" }, +#else +#define CHIP_PRINTCLUSTER_APPLIANCE_CONTROL_CLUSTER +#endif + +#if defined(ZCL_USING_POLL_CONTROL_CLUSTER_SERVER) || defined(ZCL_USING_POLL_CONTROL_CLUSTER_CLIENT) +#define CHIP_PRINTCLUSTER_POLL_CONTROL_CLUSTER { ZCL_POLL_CONTROL_CLUSTER_ID, 32, "Poll Control" }, +#else +#define CHIP_PRINTCLUSTER_POLL_CONTROL_CLUSTER +#endif + +#if defined(ZCL_USING_GREEN_POWER_CLUSTER_SERVER) || defined(ZCL_USING_GREEN_POWER_CLUSTER_CLIENT) +#define CHIP_PRINTCLUSTER_GREEN_POWER_CLUSTER { ZCL_GREEN_POWER_CLUSTER_ID, 33, "Green Power" }, +#else +#define CHIP_PRINTCLUSTER_GREEN_POWER_CLUSTER +#endif + +#if defined(ZCL_USING_KEEPALIVE_CLUSTER_SERVER) || defined(ZCL_USING_KEEPALIVE_CLUSTER_CLIENT) +#define CHIP_PRINTCLUSTER_KEEPALIVE_CLUSTER { ZCL_KEEPALIVE_CLUSTER_ID, 37, "Keep-Alive" }, +#else +#define CHIP_PRINTCLUSTER_KEEPALIVE_CLUSTER +#endif + +#if defined(ZCL_USING_SHADE_CONFIG_CLUSTER_SERVER) || defined(ZCL_USING_SHADE_CONFIG_CLUSTER_CLIENT) +#define CHIP_PRINTCLUSTER_SHADE_CONFIG_CLUSTER { ZCL_SHADE_CONFIG_CLUSTER_ID, 256, "Shade Configuration" }, +#else +#define CHIP_PRINTCLUSTER_SHADE_CONFIG_CLUSTER +#endif + +#if defined(ZCL_USING_DOOR_LOCK_CLUSTER_SERVER) || defined(ZCL_USING_DOOR_LOCK_CLUSTER_CLIENT) +#define CHIP_PRINTCLUSTER_DOOR_LOCK_CLUSTER { ZCL_DOOR_LOCK_CLUSTER_ID, 257, "Door Lock" }, +#else +#define CHIP_PRINTCLUSTER_DOOR_LOCK_CLUSTER +#endif + +#if defined(ZCL_USING_WINDOW_COVERING_CLUSTER_SERVER) || defined(ZCL_USING_WINDOW_COVERING_CLUSTER_CLIENT) +#define CHIP_PRINTCLUSTER_WINDOW_COVERING_CLUSTER { ZCL_WINDOW_COVERING_CLUSTER_ID, 258, "Window Covering" }, +#else +#define CHIP_PRINTCLUSTER_WINDOW_COVERING_CLUSTER +#endif + +#if defined(ZCL_USING_BARRIER_CONTROL_CLUSTER_SERVER) || defined(ZCL_USING_BARRIER_CONTROL_CLUSTER_CLIENT) +#define CHIP_PRINTCLUSTER_BARRIER_CONTROL_CLUSTER { ZCL_BARRIER_CONTROL_CLUSTER_ID, 259, "Barrier Control" }, +#else +#define CHIP_PRINTCLUSTER_BARRIER_CONTROL_CLUSTER +#endif + +#if defined(ZCL_USING_PUMP_CONFIG_CONTROL_CLUSTER_SERVER) || defined(ZCL_USING_PUMP_CONFIG_CONTROL_CLUSTER_CLIENT) +#define CHIP_PRINTCLUSTER_PUMP_CONFIG_CONTROL_CLUSTER { ZCL_PUMP_CONFIG_CONTROL_CLUSTER_ID, 512, "Pump Configuration and Control" }, +#else +#define CHIP_PRINTCLUSTER_PUMP_CONFIG_CONTROL_CLUSTER +#endif + +#if defined(ZCL_USING_THERMOSTAT_CLUSTER_SERVER) || defined(ZCL_USING_THERMOSTAT_CLUSTER_CLIENT) +#define CHIP_PRINTCLUSTER_THERMOSTAT_CLUSTER { ZCL_THERMOSTAT_CLUSTER_ID, 513, "Thermostat" }, +#else +#define CHIP_PRINTCLUSTER_THERMOSTAT_CLUSTER +#endif + +#if defined(ZCL_USING_FAN_CONTROL_CLUSTER_SERVER) || defined(ZCL_USING_FAN_CONTROL_CLUSTER_CLIENT) +#define CHIP_PRINTCLUSTER_FAN_CONTROL_CLUSTER { ZCL_FAN_CONTROL_CLUSTER_ID, 514, "Fan Control" }, +#else +#define CHIP_PRINTCLUSTER_FAN_CONTROL_CLUSTER +#endif + +#if defined(ZCL_USING_DEHUMID_CONTROL_CLUSTER_SERVER) || defined(ZCL_USING_DEHUMID_CONTROL_CLUSTER_CLIENT) +#define CHIP_PRINTCLUSTER_DEHUMID_CONTROL_CLUSTER { ZCL_DEHUMID_CONTROL_CLUSTER_ID, 515, "Dehumidification Control" }, +#else +#define CHIP_PRINTCLUSTER_DEHUMID_CONTROL_CLUSTER +#endif + +#if defined(ZCL_USING_THERMOSTAT_UI_CONFIG_CLUSTER_SERVER) || defined(ZCL_USING_THERMOSTAT_UI_CONFIG_CLUSTER_CLIENT) +#define CHIP_PRINTCLUSTER_THERMOSTAT_UI_CONFIG_CLUSTER \ + { ZCL_THERMOSTAT_UI_CONFIG_CLUSTER_ID, 516, "Thermostat User Interface Configuration" }, +#else +#define CHIP_PRINTCLUSTER_THERMOSTAT_UI_CONFIG_CLUSTER +#endif + +#if defined(ZCL_USING_COLOR_CONTROL_CLUSTER_SERVER) || defined(ZCL_USING_COLOR_CONTROL_CLUSTER_CLIENT) +#define CHIP_PRINTCLUSTER_COLOR_CONTROL_CLUSTER { ZCL_COLOR_CONTROL_CLUSTER_ID, 768, "Color Control" }, +#else +#define CHIP_PRINTCLUSTER_COLOR_CONTROL_CLUSTER +#endif + +#if defined(ZCL_USING_BALLAST_CONFIGURATION_CLUSTER_SERVER) || defined(ZCL_USING_BALLAST_CONFIGURATION_CLUSTER_CLIENT) +#define CHIP_PRINTCLUSTER_BALLAST_CONFIGURATION_CLUSTER { ZCL_BALLAST_CONFIGURATION_CLUSTER_ID, 769, "Ballast Configuration" }, +#else +#define CHIP_PRINTCLUSTER_BALLAST_CONFIGURATION_CLUSTER +#endif + +#if defined(ZCL_USING_ILLUM_MEASUREMENT_CLUSTER_SERVER) || defined(ZCL_USING_ILLUM_MEASUREMENT_CLUSTER_CLIENT) +#define CHIP_PRINTCLUSTER_ILLUM_MEASUREMENT_CLUSTER { ZCL_ILLUM_MEASUREMENT_CLUSTER_ID, 1024, "Illuminance Measurement" }, +#else +#define CHIP_PRINTCLUSTER_ILLUM_MEASUREMENT_CLUSTER +#endif + +#if defined(ZCL_USING_ILLUM_LEVEL_SENSING_CLUSTER_SERVER) || defined(ZCL_USING_ILLUM_LEVEL_SENSING_CLUSTER_CLIENT) +#define CHIP_PRINTCLUSTER_ILLUM_LEVEL_SENSING_CLUSTER { ZCL_ILLUM_LEVEL_SENSING_CLUSTER_ID, 1025, "Illuminance Level Sensing" }, +#else +#define CHIP_PRINTCLUSTER_ILLUM_LEVEL_SENSING_CLUSTER +#endif + +#if defined(ZCL_USING_TEMP_MEASUREMENT_CLUSTER_SERVER) || defined(ZCL_USING_TEMP_MEASUREMENT_CLUSTER_CLIENT) +#define CHIP_PRINTCLUSTER_TEMP_MEASUREMENT_CLUSTER { ZCL_TEMP_MEASUREMENT_CLUSTER_ID, 1026, "Temperature Measurement" }, +#else +#define CHIP_PRINTCLUSTER_TEMP_MEASUREMENT_CLUSTER +#endif + +#if defined(ZCL_USING_PRESSURE_MEASUREMENT_CLUSTER_SERVER) || defined(ZCL_USING_PRESSURE_MEASUREMENT_CLUSTER_CLIENT) +#define CHIP_PRINTCLUSTER_PRESSURE_MEASUREMENT_CLUSTER { ZCL_PRESSURE_MEASUREMENT_CLUSTER_ID, 1027, "Pressure Measurement" }, +#else +#define CHIP_PRINTCLUSTER_PRESSURE_MEASUREMENT_CLUSTER +#endif + +#if defined(ZCL_USING_FLOW_MEASUREMENT_CLUSTER_SERVER) || defined(ZCL_USING_FLOW_MEASUREMENT_CLUSTER_CLIENT) +#define CHIP_PRINTCLUSTER_FLOW_MEASUREMENT_CLUSTER { ZCL_FLOW_MEASUREMENT_CLUSTER_ID, 1028, "Flow Measurement" }, +#else +#define CHIP_PRINTCLUSTER_FLOW_MEASUREMENT_CLUSTER +#endif + +#if defined(ZCL_USING_RELATIVE_HUMIDITY_MEASUREMENT_CLUSTER_SERVER) || \ + defined(ZCL_USING_RELATIVE_HUMIDITY_MEASUREMENT_CLUSTER_CLIENT) +#define CHIP_PRINTCLUSTER_RELATIVE_HUMIDITY_MEASUREMENT_CLUSTER \ + { ZCL_RELATIVE_HUMIDITY_MEASUREMENT_CLUSTER_ID, 1029, "Relative Humidity Measurement" }, +#else +#define CHIP_PRINTCLUSTER_RELATIVE_HUMIDITY_MEASUREMENT_CLUSTER +#endif + +#if defined(ZCL_USING_OCCUPANCY_SENSING_CLUSTER_SERVER) || defined(ZCL_USING_OCCUPANCY_SENSING_CLUSTER_CLIENT) +#define CHIP_PRINTCLUSTER_OCCUPANCY_SENSING_CLUSTER { ZCL_OCCUPANCY_SENSING_CLUSTER_ID, 1030, "Occupancy Sensing" }, +#else +#define CHIP_PRINTCLUSTER_OCCUPANCY_SENSING_CLUSTER +#endif + +#if defined(ZCL_USING_CARBON_MONOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_SERVER) || \ + defined(ZCL_USING_CARBON_MONOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_CLIENT) +#define CHIP_PRINTCLUSTER_CARBON_MONOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER \ + { ZCL_CARBON_MONOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 1036, "Carbon Monoxide Concentration Measurement" }, +#else +#define CHIP_PRINTCLUSTER_CARBON_MONOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER +#endif + +#if defined(ZCL_USING_CARBON_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_SERVER) || \ + defined(ZCL_USING_CARBON_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_CLIENT) +#define CHIP_PRINTCLUSTER_CARBON_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER \ + { ZCL_CARBON_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 1037, "Carbon Dioxide Concentration Measurement" }, +#else +#define CHIP_PRINTCLUSTER_CARBON_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER +#endif + +#if defined(ZCL_USING_ETHYLENE_CONCENTRATION_MEASUREMENT_CLUSTER_SERVER) || \ + defined(ZCL_USING_ETHYLENE_CONCENTRATION_MEASUREMENT_CLUSTER_CLIENT) +#define CHIP_PRINTCLUSTER_ETHYLENE_CONCENTRATION_MEASUREMENT_CLUSTER \ + { ZCL_ETHYLENE_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 1038, "Ethylene Concentration Measurement" }, +#else +#define CHIP_PRINTCLUSTER_ETHYLENE_CONCENTRATION_MEASUREMENT_CLUSTER +#endif + +#if defined(ZCL_USING_ETHYLENE_OXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_SERVER) || \ + defined(ZCL_USING_ETHYLENE_OXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_CLIENT) +#define CHIP_PRINTCLUSTER_ETHYLENE_OXIDE_CONCENTRATION_MEASUREMENT_CLUSTER \ + { ZCL_ETHYLENE_OXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 1039, "Ethylene Oxide Concentration Measurement" }, +#else +#define CHIP_PRINTCLUSTER_ETHYLENE_OXIDE_CONCENTRATION_MEASUREMENT_CLUSTER +#endif + +#if defined(ZCL_USING_HYDROGEN_CONCENTRATION_MEASUREMENT_CLUSTER_SERVER) || \ + defined(ZCL_USING_HYDROGEN_CONCENTRATION_MEASUREMENT_CLUSTER_CLIENT) +#define CHIP_PRINTCLUSTER_HYDROGEN_CONCENTRATION_MEASUREMENT_CLUSTER \ + { ZCL_HYDROGEN_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 1040, "Hydrogen Concentration Measurement" }, +#else +#define CHIP_PRINTCLUSTER_HYDROGEN_CONCENTRATION_MEASUREMENT_CLUSTER +#endif + +#if defined(ZCL_USING_HYDROGEN_SULPHIDE_CONCENTRATION_MEASUREMENT_CLUSTER_SERVER) || \ + defined(ZCL_USING_HYDROGEN_SULPHIDE_CONCENTRATION_MEASUREMENT_CLUSTER_CLIENT) +#define CHIP_PRINTCLUSTER_HYDROGEN_SULPHIDE_CONCENTRATION_MEASUREMENT_CLUSTER \ + { ZCL_HYDROGEN_SULPHIDE_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 1041, "Hydrogen Sulphide Concentration Measurement" }, +#else +#define CHIP_PRINTCLUSTER_HYDROGEN_SULPHIDE_CONCENTRATION_MEASUREMENT_CLUSTER +#endif + +#if defined(ZCL_USING_NITRIC_OXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_SERVER) || \ + defined(ZCL_USING_NITRIC_OXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_CLIENT) +#define CHIP_PRINTCLUSTER_NITRIC_OXIDE_CONCENTRATION_MEASUREMENT_CLUSTER \ + { ZCL_NITRIC_OXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 1042, "Nitric Oxide Concentration Measurement" }, +#else +#define CHIP_PRINTCLUSTER_NITRIC_OXIDE_CONCENTRATION_MEASUREMENT_CLUSTER +#endif + +#if defined(ZCL_USING_NITROGEN_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_SERVER) || \ + defined(ZCL_USING_NITROGEN_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_CLIENT) +#define CHIP_PRINTCLUSTER_NITROGEN_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER \ + { ZCL_NITROGEN_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 1043, "Nitrogen Dioxide Concentration Measurement" }, +#else +#define CHIP_PRINTCLUSTER_NITROGEN_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER +#endif + +#if defined(ZCL_USING_OXYGEN_CONCENTRATION_MEASUREMENT_CLUSTER_SERVER) || \ + defined(ZCL_USING_OXYGEN_CONCENTRATION_MEASUREMENT_CLUSTER_CLIENT) +#define CHIP_PRINTCLUSTER_OXYGEN_CONCENTRATION_MEASUREMENT_CLUSTER \ + { ZCL_OXYGEN_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 1044, "Oxygen Concentration Measurement" }, +#else +#define CHIP_PRINTCLUSTER_OXYGEN_CONCENTRATION_MEASUREMENT_CLUSTER +#endif + +#if defined(ZCL_USING_OZONE_CONCENTRATION_MEASUREMENT_CLUSTER_SERVER) || \ + defined(ZCL_USING_OZONE_CONCENTRATION_MEASUREMENT_CLUSTER_CLIENT) +#define CHIP_PRINTCLUSTER_OZONE_CONCENTRATION_MEASUREMENT_CLUSTER \ + { ZCL_OZONE_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 1045, "Ozone Concentration Measurement" }, +#else +#define CHIP_PRINTCLUSTER_OZONE_CONCENTRATION_MEASUREMENT_CLUSTER +#endif + +#if defined(ZCL_USING_SULFUR_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_SERVER) || \ + defined(ZCL_USING_SULFUR_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_CLIENT) +#define CHIP_PRINTCLUSTER_SULFUR_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER \ + { ZCL_SULFUR_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 1046, "Sulfur Dioxide Concentration Measurement" }, +#else +#define CHIP_PRINTCLUSTER_SULFUR_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER +#endif + +#if defined(ZCL_USING_DISSOLVED_OXYGEN_CONCENTRATION_MEASUREMENT_CLUSTER_SERVER) || \ + defined(ZCL_USING_DISSOLVED_OXYGEN_CONCENTRATION_MEASUREMENT_CLUSTER_CLIENT) +#define CHIP_PRINTCLUSTER_DISSOLVED_OXYGEN_CONCENTRATION_MEASUREMENT_CLUSTER \ + { ZCL_DISSOLVED_OXYGEN_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 1047, "Dissolved Oxygen Concentration Measurement" }, +#else +#define CHIP_PRINTCLUSTER_DISSOLVED_OXYGEN_CONCENTRATION_MEASUREMENT_CLUSTER +#endif + +#if defined(ZCL_USING_BROMATE_CONCENTRATION_MEASUREMENT_CLUSTER_SERVER) || \ + defined(ZCL_USING_BROMATE_CONCENTRATION_MEASUREMENT_CLUSTER_CLIENT) +#define CHIP_PRINTCLUSTER_BROMATE_CONCENTRATION_MEASUREMENT_CLUSTER \ + { ZCL_BROMATE_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 1048, "Bromate Concentration Measurement" }, +#else +#define CHIP_PRINTCLUSTER_BROMATE_CONCENTRATION_MEASUREMENT_CLUSTER +#endif + +#if defined(ZCL_USING_CHLORAMINES_CONCENTRATION_MEASUREMENT_CLUSTER_SERVER) || \ + defined(ZCL_USING_CHLORAMINES_CONCENTRATION_MEASUREMENT_CLUSTER_CLIENT) +#define CHIP_PRINTCLUSTER_CHLORAMINES_CONCENTRATION_MEASUREMENT_CLUSTER \ + { ZCL_CHLORAMINES_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 1049, "Chloramines Concentration Measurement" }, +#else +#define CHIP_PRINTCLUSTER_CHLORAMINES_CONCENTRATION_MEASUREMENT_CLUSTER +#endif + +#if defined(ZCL_USING_CHLORINE_CONCENTRATION_MEASUREMENT_CLUSTER_SERVER) || \ + defined(ZCL_USING_CHLORINE_CONCENTRATION_MEASUREMENT_CLUSTER_CLIENT) +#define CHIP_PRINTCLUSTER_CHLORINE_CONCENTRATION_MEASUREMENT_CLUSTER \ + { ZCL_CHLORINE_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 1050, "Chlorine Concentration Measurement" }, +#else +#define CHIP_PRINTCLUSTER_CHLORINE_CONCENTRATION_MEASUREMENT_CLUSTER +#endif + +#if defined(ZCL_USING_FECAL_COLIFORM_AND_E_COLI_CONCENTRATION_MEASUREMENT_CLUSTER_SERVER) || \ + defined(ZCL_USING_FECAL_COLIFORM_AND_E_COLI_CONCENTRATION_MEASUREMENT_CLUSTER_CLIENT) +#define CHIP_PRINTCLUSTER_FECAL_COLIFORM_AND_E_COLI_CONCENTRATION_MEASUREMENT_CLUSTER \ + { ZCL_FECAL_COLIFORM_AND_E_COLI_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 1051, \ + "Fecal coliform and E. Coli Concentration Measurement" }, +#else +#define CHIP_PRINTCLUSTER_FECAL_COLIFORM_AND_E_COLI_CONCENTRATION_MEASUREMENT_CLUSTER +#endif + +#if defined(ZCL_USING_FLUORIDE_CONCENTRATION_MEASUREMENT_CLUSTER_SERVER) || \ + defined(ZCL_USING_FLUORIDE_CONCENTRATION_MEASUREMENT_CLUSTER_CLIENT) +#define CHIP_PRINTCLUSTER_FLUORIDE_CONCENTRATION_MEASUREMENT_CLUSTER \ + { ZCL_FLUORIDE_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 1052, "Fluoride Concentration Measurement" }, +#else +#define CHIP_PRINTCLUSTER_FLUORIDE_CONCENTRATION_MEASUREMENT_CLUSTER +#endif + +#if defined(ZCL_USING_HALOACETIC_ACIDS_CONCENTRATION_MEASUREMENT_CLUSTER_SERVER) || \ + defined(ZCL_USING_HALOACETIC_ACIDS_CONCENTRATION_MEASUREMENT_CLUSTER_CLIENT) +#define CHIP_PRINTCLUSTER_HALOACETIC_ACIDS_CONCENTRATION_MEASUREMENT_CLUSTER \ + { ZCL_HALOACETIC_ACIDS_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 1053, "Haloacetic Acids Concentration Measurement" }, +#else +#define CHIP_PRINTCLUSTER_HALOACETIC_ACIDS_CONCENTRATION_MEASUREMENT_CLUSTER +#endif + +#if defined(ZCL_USING_TOTAL_TRIHALOMETHANES_CONCENTRATION_MEASUREMENT_CLUSTER_SERVER) || \ + defined(ZCL_USING_TOTAL_TRIHALOMETHANES_CONCENTRATION_MEASUREMENT_CLUSTER_CLIENT) +#define CHIP_PRINTCLUSTER_TOTAL_TRIHALOMETHANES_CONCENTRATION_MEASUREMENT_CLUSTER \ + { ZCL_TOTAL_TRIHALOMETHANES_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 1054, "Total Trihalomethanes Concentration Measurement" }, +#else +#define CHIP_PRINTCLUSTER_TOTAL_TRIHALOMETHANES_CONCENTRATION_MEASUREMENT_CLUSTER +#endif + +#if defined(ZCL_USING_TOTAL_COLIFORM_BACTERIA_CONCENTRATION_MEASUREMENT_CLUSTER_SERVER) || \ + defined(ZCL_USING_TOTAL_COLIFORM_BACTERIA_CONCENTRATION_MEASUREMENT_CLUSTER_CLIENT) +#define CHIP_PRINTCLUSTER_TOTAL_COLIFORM_BACTERIA_CONCENTRATION_MEASUREMENT_CLUSTER \ + { ZCL_TOTAL_COLIFORM_BACTERIA_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 1055, "Total Coliform Bacteria Concentration Measurement" }, +#else +#define CHIP_PRINTCLUSTER_TOTAL_COLIFORM_BACTERIA_CONCENTRATION_MEASUREMENT_CLUSTER +#endif + +#if defined(ZCL_USING_TURBIDITY_CONCENTRATION_MEASUREMENT_CLUSTER_SERVER) || \ + defined(ZCL_USING_TURBIDITY_CONCENTRATION_MEASUREMENT_CLUSTER_CLIENT) +#define CHIP_PRINTCLUSTER_TURBIDITY_CONCENTRATION_MEASUREMENT_CLUSTER \ + { ZCL_TURBIDITY_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 1056, "Turbidity Concentration Measurement" }, +#else +#define CHIP_PRINTCLUSTER_TURBIDITY_CONCENTRATION_MEASUREMENT_CLUSTER +#endif + +#if defined(ZCL_USING_COPPER_CONCENTRATION_MEASUREMENT_CLUSTER_SERVER) || \ + defined(ZCL_USING_COPPER_CONCENTRATION_MEASUREMENT_CLUSTER_CLIENT) +#define CHIP_PRINTCLUSTER_COPPER_CONCENTRATION_MEASUREMENT_CLUSTER \ + { ZCL_COPPER_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 1057, "Copper Concentration Measurement" }, +#else +#define CHIP_PRINTCLUSTER_COPPER_CONCENTRATION_MEASUREMENT_CLUSTER +#endif + +#if defined(ZCL_USING_LEAD_CONCENTRATION_MEASUREMENT_CLUSTER_SERVER) || \ + defined(ZCL_USING_LEAD_CONCENTRATION_MEASUREMENT_CLUSTER_CLIENT) +#define CHIP_PRINTCLUSTER_LEAD_CONCENTRATION_MEASUREMENT_CLUSTER \ + { ZCL_LEAD_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 1058, "Lead Concentration Measurement" }, +#else +#define CHIP_PRINTCLUSTER_LEAD_CONCENTRATION_MEASUREMENT_CLUSTER +#endif + +#if defined(ZCL_USING_MANGANESE_CONCENTRATION_MEASUREMENT_CLUSTER_SERVER) || \ + defined(ZCL_USING_MANGANESE_CONCENTRATION_MEASUREMENT_CLUSTER_CLIENT) +#define CHIP_PRINTCLUSTER_MANGANESE_CONCENTRATION_MEASUREMENT_CLUSTER \ + { ZCL_MANGANESE_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 1059, "Manganese Concentration Measurement" }, +#else +#define CHIP_PRINTCLUSTER_MANGANESE_CONCENTRATION_MEASUREMENT_CLUSTER +#endif + +#if defined(ZCL_USING_SULFATE_CONCENTRATION_MEASUREMENT_CLUSTER_SERVER) || \ + defined(ZCL_USING_SULFATE_CONCENTRATION_MEASUREMENT_CLUSTER_CLIENT) +#define CHIP_PRINTCLUSTER_SULFATE_CONCENTRATION_MEASUREMENT_CLUSTER \ + { ZCL_SULFATE_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 1060, "Sulfate Concentration Measurement" }, +#else +#define CHIP_PRINTCLUSTER_SULFATE_CONCENTRATION_MEASUREMENT_CLUSTER +#endif + +#if defined(ZCL_USING_BROMODICHLOROMETHANE_CONCENTRATION_MEASUREMENT_CLUSTER_SERVER) || \ + defined(ZCL_USING_BROMODICHLOROMETHANE_CONCENTRATION_MEASUREMENT_CLUSTER_CLIENT) +#define CHIP_PRINTCLUSTER_BROMODICHLOROMETHANE_CONCENTRATION_MEASUREMENT_CLUSTER \ + { ZCL_BROMODICHLOROMETHANE_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 1061, "Bromodichloromethane Concentration Measurement" }, +#else +#define CHIP_PRINTCLUSTER_BROMODICHLOROMETHANE_CONCENTRATION_MEASUREMENT_CLUSTER +#endif + +#if defined(ZCL_USING_BROMOFORM_CONCENTRATION_MEASUREMENT_CLUSTER_SERVER) || \ + defined(ZCL_USING_BROMOFORM_CONCENTRATION_MEASUREMENT_CLUSTER_CLIENT) +#define CHIP_PRINTCLUSTER_BROMOFORM_CONCENTRATION_MEASUREMENT_CLUSTER \ + { ZCL_BROMOFORM_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 1062, "Bromoform Concentration Measurement" }, +#else +#define CHIP_PRINTCLUSTER_BROMOFORM_CONCENTRATION_MEASUREMENT_CLUSTER +#endif + +#if defined(ZCL_USING_CHLORODIBROMOMETHANE_CONCENTRATION_MEASUREMENT_CLUSTER_SERVER) || \ + defined(ZCL_USING_CHLORODIBROMOMETHANE_CONCENTRATION_MEASUREMENT_CLUSTER_CLIENT) +#define CHIP_PRINTCLUSTER_CHLORODIBROMOMETHANE_CONCENTRATION_MEASUREMENT_CLUSTER \ + { ZCL_CHLORODIBROMOMETHANE_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 1063, "Chlorodibromomethane Concentration Measurement" }, +#else +#define CHIP_PRINTCLUSTER_CHLORODIBROMOMETHANE_CONCENTRATION_MEASUREMENT_CLUSTER +#endif + +#if defined(ZCL_USING_CHLOROFORM_CONCENTRATION_MEASUREMENT_CLUSTER_SERVER) || \ + defined(ZCL_USING_CHLOROFORM_CONCENTRATION_MEASUREMENT_CLUSTER_CLIENT) +#define CHIP_PRINTCLUSTER_CHLOROFORM_CONCENTRATION_MEASUREMENT_CLUSTER \ + { ZCL_CHLOROFORM_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 1064, "Chloroform Concentration Measurement" }, +#else +#define CHIP_PRINTCLUSTER_CHLOROFORM_CONCENTRATION_MEASUREMENT_CLUSTER +#endif + +#if defined(ZCL_USING_SODIUM_CONCENTRATION_MEASUREMENT_CLUSTER_SERVER) || \ + defined(ZCL_USING_SODIUM_CONCENTRATION_MEASUREMENT_CLUSTER_CLIENT) +#define CHIP_PRINTCLUSTER_SODIUM_CONCENTRATION_MEASUREMENT_CLUSTER \ + { ZCL_SODIUM_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 1065, "Sodium Concentration Measurement" }, +#else +#define CHIP_PRINTCLUSTER_SODIUM_CONCENTRATION_MEASUREMENT_CLUSTER +#endif + +#if defined(ZCL_USING_IAS_ZONE_CLUSTER_SERVER) || defined(ZCL_USING_IAS_ZONE_CLUSTER_CLIENT) +#define CHIP_PRINTCLUSTER_IAS_ZONE_CLUSTER { ZCL_IAS_ZONE_CLUSTER_ID, 1280, "IAS Zone" }, +#else +#define CHIP_PRINTCLUSTER_IAS_ZONE_CLUSTER +#endif + +#if defined(ZCL_USING_IAS_ACE_CLUSTER_SERVER) || defined(ZCL_USING_IAS_ACE_CLUSTER_CLIENT) +#define CHIP_PRINTCLUSTER_IAS_ACE_CLUSTER { ZCL_IAS_ACE_CLUSTER_ID, 1281, "IAS ACE" }, +#else +#define CHIP_PRINTCLUSTER_IAS_ACE_CLUSTER +#endif + +#if defined(ZCL_USING_IAS_WD_CLUSTER_SERVER) || defined(ZCL_USING_IAS_WD_CLUSTER_CLIENT) +#define CHIP_PRINTCLUSTER_IAS_WD_CLUSTER { ZCL_IAS_WD_CLUSTER_ID, 1282, "IAS WD" }, +#else +#define CHIP_PRINTCLUSTER_IAS_WD_CLUSTER +#endif + +#if defined(ZCL_USING_GENERIC_TUNNEL_CLUSTER_SERVER) || defined(ZCL_USING_GENERIC_TUNNEL_CLUSTER_CLIENT) +#define CHIP_PRINTCLUSTER_GENERIC_TUNNEL_CLUSTER { ZCL_GENERIC_TUNNEL_CLUSTER_ID, 1536, "Generic Tunnel" }, +#else +#define CHIP_PRINTCLUSTER_GENERIC_TUNNEL_CLUSTER +#endif + +#if defined(ZCL_USING_BACNET_PROTOCOL_TUNNEL_CLUSTER_SERVER) || defined(ZCL_USING_BACNET_PROTOCOL_TUNNEL_CLUSTER_CLIENT) +#define CHIP_PRINTCLUSTER_BACNET_PROTOCOL_TUNNEL_CLUSTER { ZCL_BACNET_PROTOCOL_TUNNEL_CLUSTER_ID, 1537, "BACnet Protocol Tunnel" }, +#else +#define CHIP_PRINTCLUSTER_BACNET_PROTOCOL_TUNNEL_CLUSTER +#endif + +#if defined(ZCL_USING_11073_PROTOCOL_TUNNEL_CLUSTER_SERVER) || defined(ZCL_USING_11073_PROTOCOL_TUNNEL_CLUSTER_CLIENT) +#define CHIP_PRINTCLUSTER_11073_PROTOCOL_TUNNEL_CLUSTER { ZCL_11073_PROTOCOL_TUNNEL_CLUSTER_ID, 1556, "11073 Protocol Tunnel" }, +#else +#define CHIP_PRINTCLUSTER_11073_PROTOCOL_TUNNEL_CLUSTER +#endif + +#if defined(ZCL_USING_ISO7816_PROTOCOL_TUNNEL_CLUSTER_SERVER) || defined(ZCL_USING_ISO7816_PROTOCOL_TUNNEL_CLUSTER_CLIENT) +#define CHIP_PRINTCLUSTER_ISO7816_PROTOCOL_TUNNEL_CLUSTER \ + { ZCL_ISO7816_PROTOCOL_TUNNEL_CLUSTER_ID, 1557, "ISO 7816 Protocol Tunnel" }, +#else +#define CHIP_PRINTCLUSTER_ISO7816_PROTOCOL_TUNNEL_CLUSTER +#endif + +#if defined(ZCL_USING_PRICE_CLUSTER_SERVER) || defined(ZCL_USING_PRICE_CLUSTER_CLIENT) +#define CHIP_PRINTCLUSTER_PRICE_CLUSTER { ZCL_PRICE_CLUSTER_ID, 1792, "Price" }, +#else +#define CHIP_PRINTCLUSTER_PRICE_CLUSTER +#endif + +#if defined(ZCL_USING_DEMAND_RESPONSE_LOAD_CONTROL_CLUSTER_SERVER) || defined(ZCL_USING_DEMAND_RESPONSE_LOAD_CONTROL_CLUSTER_CLIENT) +#define CHIP_PRINTCLUSTER_DEMAND_RESPONSE_LOAD_CONTROL_CLUSTER \ + { ZCL_DEMAND_RESPONSE_LOAD_CONTROL_CLUSTER_ID, 1793, "Demand Response and Load Control" }, +#else +#define CHIP_PRINTCLUSTER_DEMAND_RESPONSE_LOAD_CONTROL_CLUSTER +#endif + +#if defined(ZCL_USING_SIMPLE_METERING_CLUSTER_SERVER) || defined(ZCL_USING_SIMPLE_METERING_CLUSTER_CLIENT) +#define CHIP_PRINTCLUSTER_SIMPLE_METERING_CLUSTER { ZCL_SIMPLE_METERING_CLUSTER_ID, 1794, "Simple Metering" }, +#else +#define CHIP_PRINTCLUSTER_SIMPLE_METERING_CLUSTER +#endif + +#if defined(ZCL_USING_MESSAGING_CLUSTER_SERVER) || defined(ZCL_USING_MESSAGING_CLUSTER_CLIENT) +#define CHIP_PRINTCLUSTER_MESSAGING_CLUSTER { ZCL_MESSAGING_CLUSTER_ID, 1795, "Messaging" }, +#else +#define CHIP_PRINTCLUSTER_MESSAGING_CLUSTER +#endif + +#if defined(ZCL_USING_TUNNELING_CLUSTER_SERVER) || defined(ZCL_USING_TUNNELING_CLUSTER_CLIENT) +#define CHIP_PRINTCLUSTER_TUNNELING_CLUSTER { ZCL_TUNNELING_CLUSTER_ID, 1796, "Tunneling" }, +#else +#define CHIP_PRINTCLUSTER_TUNNELING_CLUSTER +#endif + +#if defined(ZCL_USING_PREPAYMENT_CLUSTER_SERVER) || defined(ZCL_USING_PREPAYMENT_CLUSTER_CLIENT) +#define CHIP_PRINTCLUSTER_PREPAYMENT_CLUSTER { ZCL_PREPAYMENT_CLUSTER_ID, 1797, "Prepayment" }, +#else +#define CHIP_PRINTCLUSTER_PREPAYMENT_CLUSTER +#endif + +#if defined(ZCL_USING_ENERGY_MANAGEMENT_CLUSTER_SERVER) || defined(ZCL_USING_ENERGY_MANAGEMENT_CLUSTER_CLIENT) +#define CHIP_PRINTCLUSTER_ENERGY_MANAGEMENT_CLUSTER { ZCL_ENERGY_MANAGEMENT_CLUSTER_ID, 1798, "Energy Management" }, +#else +#define CHIP_PRINTCLUSTER_ENERGY_MANAGEMENT_CLUSTER +#endif + +#if defined(ZCL_USING_CALENDAR_CLUSTER_SERVER) || defined(ZCL_USING_CALENDAR_CLUSTER_CLIENT) +#define CHIP_PRINTCLUSTER_CALENDAR_CLUSTER { ZCL_CALENDAR_CLUSTER_ID, 1799, "Calendar" }, +#else +#define CHIP_PRINTCLUSTER_CALENDAR_CLUSTER +#endif + +#if defined(ZCL_USING_DEVICE_MANAGEMENT_CLUSTER_SERVER) || defined(ZCL_USING_DEVICE_MANAGEMENT_CLUSTER_CLIENT) +#define CHIP_PRINTCLUSTER_DEVICE_MANAGEMENT_CLUSTER { ZCL_DEVICE_MANAGEMENT_CLUSTER_ID, 1800, "Device Management" }, +#else +#define CHIP_PRINTCLUSTER_DEVICE_MANAGEMENT_CLUSTER +#endif + +#if defined(ZCL_USING_EVENTS_CLUSTER_SERVER) || defined(ZCL_USING_EVENTS_CLUSTER_CLIENT) +#define CHIP_PRINTCLUSTER_EVENTS_CLUSTER { ZCL_EVENTS_CLUSTER_ID, 1801, "Events" }, +#else +#define CHIP_PRINTCLUSTER_EVENTS_CLUSTER +#endif + +#if defined(ZCL_USING_MDU_PAIRING_CLUSTER_SERVER) || defined(ZCL_USING_MDU_PAIRING_CLUSTER_CLIENT) +#define CHIP_PRINTCLUSTER_MDU_PAIRING_CLUSTER { ZCL_MDU_PAIRING_CLUSTER_ID, 1802, "MDU Pairing" }, +#else +#define CHIP_PRINTCLUSTER_MDU_PAIRING_CLUSTER +#endif + +#if defined(ZCL_USING_SUB_GHZ_CLUSTER_SERVER) || defined(ZCL_USING_SUB_GHZ_CLUSTER_CLIENT) +#define CHIP_PRINTCLUSTER_SUB_GHZ_CLUSTER { ZCL_SUB_GHZ_CLUSTER_ID, 1803, "Sub-GHz" }, +#else +#define CHIP_PRINTCLUSTER_SUB_GHZ_CLUSTER +#endif + +#if defined(ZCL_USING_KEY_ESTABLISHMENT_CLUSTER_SERVER) || defined(ZCL_USING_KEY_ESTABLISHMENT_CLUSTER_CLIENT) +#define CHIP_PRINTCLUSTER_KEY_ESTABLISHMENT_CLUSTER { ZCL_KEY_ESTABLISHMENT_CLUSTER_ID, 2048, "Key Establishment" }, +#else +#define CHIP_PRINTCLUSTER_KEY_ESTABLISHMENT_CLUSTER +#endif + +#if defined(ZCL_USING_INFORMATION_CLUSTER_SERVER) || defined(ZCL_USING_INFORMATION_CLUSTER_CLIENT) +#define CHIP_PRINTCLUSTER_INFORMATION_CLUSTER { ZCL_INFORMATION_CLUSTER_ID, 2304, "Information" }, +#else +#define CHIP_PRINTCLUSTER_INFORMATION_CLUSTER +#endif + +#if defined(ZCL_USING_DATA_SHARING_CLUSTER_SERVER) || defined(ZCL_USING_DATA_SHARING_CLUSTER_CLIENT) +#define CHIP_PRINTCLUSTER_DATA_SHARING_CLUSTER { ZCL_DATA_SHARING_CLUSTER_ID, 2305, "Data Sharing" }, +#else +#define CHIP_PRINTCLUSTER_DATA_SHARING_CLUSTER +#endif + +#if defined(ZCL_USING_GAMING_CLUSTER_SERVER) || defined(ZCL_USING_GAMING_CLUSTER_CLIENT) +#define CHIP_PRINTCLUSTER_GAMING_CLUSTER { ZCL_GAMING_CLUSTER_ID, 2306, "Gaming" }, +#else +#define CHIP_PRINTCLUSTER_GAMING_CLUSTER +#endif + +#if defined(ZCL_USING_DATA_RATE_CONTROL_CLUSTER_SERVER) || defined(ZCL_USING_DATA_RATE_CONTROL_CLUSTER_CLIENT) +#define CHIP_PRINTCLUSTER_DATA_RATE_CONTROL_CLUSTER { ZCL_DATA_RATE_CONTROL_CLUSTER_ID, 2307, "Data Rate Control" }, +#else +#define CHIP_PRINTCLUSTER_DATA_RATE_CONTROL_CLUSTER +#endif + +#if defined(ZCL_USING_VOICE_OVER_ZIGBEE_CLUSTER_SERVER) || defined(ZCL_USING_VOICE_OVER_ZIGBEE_CLUSTER_CLIENT) +#define CHIP_PRINTCLUSTER_VOICE_OVER_ZIGBEE_CLUSTER { ZCL_VOICE_OVER_ZIGBEE_CLUSTER_ID, 2308, "Voice over ZigBee" }, +#else +#define CHIP_PRINTCLUSTER_VOICE_OVER_ZIGBEE_CLUSTER +#endif + +#if defined(ZCL_USING_CHATTING_CLUSTER_SERVER) || defined(ZCL_USING_CHATTING_CLUSTER_CLIENT) +#define CHIP_PRINTCLUSTER_CHATTING_CLUSTER { ZCL_CHATTING_CLUSTER_ID, 2309, "Chatting" }, +#else +#define CHIP_PRINTCLUSTER_CHATTING_CLUSTER +#endif + +#if defined(ZCL_USING_PAYMENT_CLUSTER_SERVER) || defined(ZCL_USING_PAYMENT_CLUSTER_CLIENT) +#define CHIP_PRINTCLUSTER_PAYMENT_CLUSTER { ZCL_PAYMENT_CLUSTER_ID, 2561, "Payment" }, +#else +#define CHIP_PRINTCLUSTER_PAYMENT_CLUSTER +#endif + +#if defined(ZCL_USING_BILLING_CLUSTER_SERVER) || defined(ZCL_USING_BILLING_CLUSTER_CLIENT) +#define CHIP_PRINTCLUSTER_BILLING_CLUSTER { ZCL_BILLING_CLUSTER_ID, 2562, "Billing" }, +#else +#define CHIP_PRINTCLUSTER_BILLING_CLUSTER +#endif + +#if defined(ZCL_USING_APPLIANCE_IDENTIFICATION_CLUSTER_SERVER) || defined(ZCL_USING_APPLIANCE_IDENTIFICATION_CLUSTER_CLIENT) +#define CHIP_PRINTCLUSTER_APPLIANCE_IDENTIFICATION_CLUSTER \ + { ZCL_APPLIANCE_IDENTIFICATION_CLUSTER_ID, 2816, "Appliance Identification" }, +#else +#define CHIP_PRINTCLUSTER_APPLIANCE_IDENTIFICATION_CLUSTER +#endif + +#if defined(ZCL_USING_METER_IDENTIFICATION_CLUSTER_SERVER) || defined(ZCL_USING_METER_IDENTIFICATION_CLUSTER_CLIENT) +#define CHIP_PRINTCLUSTER_METER_IDENTIFICATION_CLUSTER { ZCL_METER_IDENTIFICATION_CLUSTER_ID, 2817, "Meter Identification" }, +#else +#define CHIP_PRINTCLUSTER_METER_IDENTIFICATION_CLUSTER +#endif + +#if defined(ZCL_USING_APPLIANCE_EVENTS_AND_ALERT_CLUSTER_SERVER) || defined(ZCL_USING_APPLIANCE_EVENTS_AND_ALERT_CLUSTER_CLIENT) +#define CHIP_PRINTCLUSTER_APPLIANCE_EVENTS_AND_ALERT_CLUSTER \ + { ZCL_APPLIANCE_EVENTS_AND_ALERT_CLUSTER_ID, 2818, "Appliance Events and Alert" }, +#else +#define CHIP_PRINTCLUSTER_APPLIANCE_EVENTS_AND_ALERT_CLUSTER +#endif + +#if defined(ZCL_USING_APPLIANCE_STATISTICS_CLUSTER_SERVER) || defined(ZCL_USING_APPLIANCE_STATISTICS_CLUSTER_CLIENT) +#define CHIP_PRINTCLUSTER_APPLIANCE_STATISTICS_CLUSTER { ZCL_APPLIANCE_STATISTICS_CLUSTER_ID, 2819, "Appliance Statistics" }, +#else +#define CHIP_PRINTCLUSTER_APPLIANCE_STATISTICS_CLUSTER +#endif + +#if defined(ZCL_USING_ELECTRICAL_MEASUREMENT_CLUSTER_SERVER) || defined(ZCL_USING_ELECTRICAL_MEASUREMENT_CLUSTER_CLIENT) +#define CHIP_PRINTCLUSTER_ELECTRICAL_MEASUREMENT_CLUSTER { ZCL_ELECTRICAL_MEASUREMENT_CLUSTER_ID, 2820, "Electrical Measurement" }, +#else +#define CHIP_PRINTCLUSTER_ELECTRICAL_MEASUREMENT_CLUSTER +#endif + +#if defined(ZCL_USING_DIAGNOSTICS_CLUSTER_SERVER) || defined(ZCL_USING_DIAGNOSTICS_CLUSTER_CLIENT) +#define CHIP_PRINTCLUSTER_DIAGNOSTICS_CLUSTER { ZCL_DIAGNOSTICS_CLUSTER_ID, 2821, "Diagnostics" }, +#else +#define CHIP_PRINTCLUSTER_DIAGNOSTICS_CLUSTER +#endif + +#if defined(ZCL_USING_ZLL_COMMISSIONING_CLUSTER_SERVER) || defined(ZCL_USING_ZLL_COMMISSIONING_CLUSTER_CLIENT) +#define CHIP_PRINTCLUSTER_ZLL_COMMISSIONING_CLUSTER { ZCL_ZLL_COMMISSIONING_CLUSTER_ID, 4096, "ZLL Commissioning" }, +#else +#define CHIP_PRINTCLUSTER_ZLL_COMMISSIONING_CLUSTER +#endif + +#if defined(ZCL_USING_SAMPLE_MFG_SPECIFIC_CLUSTER_SERVER) || defined(ZCL_USING_SAMPLE_MFG_SPECIFIC_CLUSTER_CLIENT) +#define CHIP_PRINTCLUSTER_SAMPLE_MFG_SPECIFIC_CLUSTER { ZCL_SAMPLE_MFG_SPECIFIC_CLUSTER_ID, 64512, "Sample Mfg Specific Cluster" }, +#else +#define CHIP_PRINTCLUSTER_SAMPLE_MFG_SPECIFIC_CLUSTER +#endif + +#if defined(ZCL_USING_SAMPLE_MFG_SPECIFIC_CLUSTER_2_SERVER) || defined(ZCL_USING_SAMPLE_MFG_SPECIFIC_CLUSTER_2_CLIENT) +#define CHIP_PRINTCLUSTER_SAMPLE_MFG_SPECIFIC_CLUSTER_2 \ + { ZCL_SAMPLE_MFG_SPECIFIC_CLUSTER_2_ID, 64512, "Sample Mfg Specific Cluster 2" }, +#else +#define CHIP_PRINTCLUSTER_SAMPLE_MFG_SPECIFIC_CLUSTER_2 +#endif + +#if defined(ZCL_USING_OTA_CONFIGURATION_CLUSTER_SERVER) || defined(ZCL_USING_OTA_CONFIGURATION_CLUSTER_CLIENT) +#define CHIP_PRINTCLUSTER_OTA_CONFIGURATION_CLUSTER { ZCL_OTA_CONFIGURATION_CLUSTER_ID, 64513, "Configuration Cluster" }, +#else +#define CHIP_PRINTCLUSTER_OTA_CONFIGURATION_CLUSTER +#endif + +#if defined(ZCL_USING_MFGLIB_CLUSTER_SERVER) || defined(ZCL_USING_MFGLIB_CLUSTER_CLIENT) +#define CHIP_PRINTCLUSTER_MFGLIB_CLUSTER { ZCL_MFGLIB_CLUSTER_ID, 64514, "MFGLIB Cluster" }, +#else +#define CHIP_PRINTCLUSTER_MFGLIB_CLUSTER +#endif + +#if defined(ZCL_USING_SL_WWAH_CLUSTER_SERVER) || defined(ZCL_USING_SL_WWAH_CLUSTER_CLIENT) +#define CHIP_PRINTCLUSTER_SL_WWAH_CLUSTER { ZCL_SL_WWAH_CLUSTER_ID, 64599, "SL Works With All Hubs" }, +#else +#define CHIP_PRINTCLUSTER_SL_WWAH_CLUSTER +#endif + +#define CLUSTER_IDS_TO_NAMES \ + CHIP_PRINTCLUSTER_BASIC_CLUSTER \ + CHIP_PRINTCLUSTER_POWER_CONFIG_CLUSTER \ + CHIP_PRINTCLUSTER_DEVICE_TEMP_CLUSTER \ + CHIP_PRINTCLUSTER_IDENTIFY_CLUSTER \ + CHIP_PRINTCLUSTER_GROUPS_CLUSTER \ + CHIP_PRINTCLUSTER_SCENES_CLUSTER \ + CHIP_PRINTCLUSTER_ON_OFF_CLUSTER \ + CHIP_PRINTCLUSTER_ON_OFF_SWITCH_CONFIG_CLUSTER \ + CHIP_PRINTCLUSTER_LEVEL_CONTROL_CLUSTER \ + CHIP_PRINTCLUSTER_ALARM_CLUSTER \ + CHIP_PRINTCLUSTER_TIME_CLUSTER \ + CHIP_PRINTCLUSTER_RSSI_LOCATION_CLUSTER \ + CHIP_PRINTCLUSTER_BINARY_INPUT_BASIC_CLUSTER \ + CHIP_PRINTCLUSTER_COMMISSIONING_CLUSTER \ + CHIP_PRINTCLUSTER_PARTITION_CLUSTER \ + CHIP_PRINTCLUSTER_OTA_BOOTLOAD_CLUSTER \ + CHIP_PRINTCLUSTER_POWER_PROFILE_CLUSTER \ + CHIP_PRINTCLUSTER_APPLIANCE_CONTROL_CLUSTER \ + CHIP_PRINTCLUSTER_POLL_CONTROL_CLUSTER \ + CHIP_PRINTCLUSTER_GREEN_POWER_CLUSTER \ + CHIP_PRINTCLUSTER_KEEPALIVE_CLUSTER \ + CHIP_PRINTCLUSTER_SHADE_CONFIG_CLUSTER \ + CHIP_PRINTCLUSTER_DOOR_LOCK_CLUSTER \ + CHIP_PRINTCLUSTER_WINDOW_COVERING_CLUSTER \ + CHIP_PRINTCLUSTER_BARRIER_CONTROL_CLUSTER \ + CHIP_PRINTCLUSTER_PUMP_CONFIG_CONTROL_CLUSTER \ + CHIP_PRINTCLUSTER_THERMOSTAT_CLUSTER \ + CHIP_PRINTCLUSTER_FAN_CONTROL_CLUSTER \ + CHIP_PRINTCLUSTER_DEHUMID_CONTROL_CLUSTER \ + CHIP_PRINTCLUSTER_THERMOSTAT_UI_CONFIG_CLUSTER \ + CHIP_PRINTCLUSTER_COLOR_CONTROL_CLUSTER \ + CHIP_PRINTCLUSTER_BALLAST_CONFIGURATION_CLUSTER \ + CHIP_PRINTCLUSTER_ILLUM_MEASUREMENT_CLUSTER \ + CHIP_PRINTCLUSTER_ILLUM_LEVEL_SENSING_CLUSTER \ + CHIP_PRINTCLUSTER_TEMP_MEASUREMENT_CLUSTER \ + CHIP_PRINTCLUSTER_PRESSURE_MEASUREMENT_CLUSTER \ + CHIP_PRINTCLUSTER_FLOW_MEASUREMENT_CLUSTER \ + CHIP_PRINTCLUSTER_RELATIVE_HUMIDITY_MEASUREMENT_CLUSTER \ + CHIP_PRINTCLUSTER_OCCUPANCY_SENSING_CLUSTER \ + CHIP_PRINTCLUSTER_CARBON_MONOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER \ + CHIP_PRINTCLUSTER_CARBON_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER \ + CHIP_PRINTCLUSTER_ETHYLENE_CONCENTRATION_MEASUREMENT_CLUSTER \ + CHIP_PRINTCLUSTER_ETHYLENE_OXIDE_CONCENTRATION_MEASUREMENT_CLUSTER \ + CHIP_PRINTCLUSTER_HYDROGEN_CONCENTRATION_MEASUREMENT_CLUSTER \ + CHIP_PRINTCLUSTER_HYDROGEN_SULPHIDE_CONCENTRATION_MEASUREMENT_CLUSTER \ + CHIP_PRINTCLUSTER_NITRIC_OXIDE_CONCENTRATION_MEASUREMENT_CLUSTER \ + CHIP_PRINTCLUSTER_NITROGEN_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER \ + CHIP_PRINTCLUSTER_OXYGEN_CONCENTRATION_MEASUREMENT_CLUSTER \ + CHIP_PRINTCLUSTER_OZONE_CONCENTRATION_MEASUREMENT_CLUSTER \ + CHIP_PRINTCLUSTER_SULFUR_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER \ + CHIP_PRINTCLUSTER_DISSOLVED_OXYGEN_CONCENTRATION_MEASUREMENT_CLUSTER \ + CHIP_PRINTCLUSTER_BROMATE_CONCENTRATION_MEASUREMENT_CLUSTER \ + CHIP_PRINTCLUSTER_CHLORAMINES_CONCENTRATION_MEASUREMENT_CLUSTER \ + CHIP_PRINTCLUSTER_CHLORINE_CONCENTRATION_MEASUREMENT_CLUSTER \ + CHIP_PRINTCLUSTER_FECAL_COLIFORM_AND_E_COLI_CONCENTRATION_MEASUREMENT_CLUSTER \ + CHIP_PRINTCLUSTER_FLUORIDE_CONCENTRATION_MEASUREMENT_CLUSTER \ + CHIP_PRINTCLUSTER_HALOACETIC_ACIDS_CONCENTRATION_MEASUREMENT_CLUSTER \ + CHIP_PRINTCLUSTER_TOTAL_TRIHALOMETHANES_CONCENTRATION_MEASUREMENT_CLUSTER \ + CHIP_PRINTCLUSTER_TOTAL_COLIFORM_BACTERIA_CONCENTRATION_MEASUREMENT_CLUSTER \ + CHIP_PRINTCLUSTER_TURBIDITY_CONCENTRATION_MEASUREMENT_CLUSTER \ + CHIP_PRINTCLUSTER_COPPER_CONCENTRATION_MEASUREMENT_CLUSTER \ + CHIP_PRINTCLUSTER_LEAD_CONCENTRATION_MEASUREMENT_CLUSTER \ + CHIP_PRINTCLUSTER_MANGANESE_CONCENTRATION_MEASUREMENT_CLUSTER \ + CHIP_PRINTCLUSTER_SULFATE_CONCENTRATION_MEASUREMENT_CLUSTER \ + CHIP_PRINTCLUSTER_BROMODICHLOROMETHANE_CONCENTRATION_MEASUREMENT_CLUSTER \ + CHIP_PRINTCLUSTER_BROMOFORM_CONCENTRATION_MEASUREMENT_CLUSTER \ + CHIP_PRINTCLUSTER_CHLORODIBROMOMETHANE_CONCENTRATION_MEASUREMENT_CLUSTER \ + CHIP_PRINTCLUSTER_CHLOROFORM_CONCENTRATION_MEASUREMENT_CLUSTER \ + CHIP_PRINTCLUSTER_SODIUM_CONCENTRATION_MEASUREMENT_CLUSTER \ + CHIP_PRINTCLUSTER_IAS_ZONE_CLUSTER \ + CHIP_PRINTCLUSTER_IAS_ACE_CLUSTER \ + CHIP_PRINTCLUSTER_IAS_WD_CLUSTER \ + CHIP_PRINTCLUSTER_GENERIC_TUNNEL_CLUSTER \ + CHIP_PRINTCLUSTER_BACNET_PROTOCOL_TUNNEL_CLUSTER \ + CHIP_PRINTCLUSTER_11073_PROTOCOL_TUNNEL_CLUSTER \ + CHIP_PRINTCLUSTER_ISO7816_PROTOCOL_TUNNEL_CLUSTER \ + CHIP_PRINTCLUSTER_PRICE_CLUSTER \ + CHIP_PRINTCLUSTER_DEMAND_RESPONSE_LOAD_CONTROL_CLUSTER \ + CHIP_PRINTCLUSTER_SIMPLE_METERING_CLUSTER \ + CHIP_PRINTCLUSTER_MESSAGING_CLUSTER \ + CHIP_PRINTCLUSTER_TUNNELING_CLUSTER \ + CHIP_PRINTCLUSTER_PREPAYMENT_CLUSTER \ + CHIP_PRINTCLUSTER_ENERGY_MANAGEMENT_CLUSTER \ + CHIP_PRINTCLUSTER_CALENDAR_CLUSTER \ + CHIP_PRINTCLUSTER_DEVICE_MANAGEMENT_CLUSTER \ + CHIP_PRINTCLUSTER_EVENTS_CLUSTER \ + CHIP_PRINTCLUSTER_MDU_PAIRING_CLUSTER \ + CHIP_PRINTCLUSTER_SUB_GHZ_CLUSTER \ + CHIP_PRINTCLUSTER_KEY_ESTABLISHMENT_CLUSTER \ + CHIP_PRINTCLUSTER_INFORMATION_CLUSTER \ + CHIP_PRINTCLUSTER_DATA_SHARING_CLUSTER \ + CHIP_PRINTCLUSTER_GAMING_CLUSTER \ + CHIP_PRINTCLUSTER_DATA_RATE_CONTROL_CLUSTER \ + CHIP_PRINTCLUSTER_VOICE_OVER_ZIGBEE_CLUSTER \ + CHIP_PRINTCLUSTER_CHATTING_CLUSTER \ + CHIP_PRINTCLUSTER_PAYMENT_CLUSTER \ + CHIP_PRINTCLUSTER_BILLING_CLUSTER \ + CHIP_PRINTCLUSTER_APPLIANCE_IDENTIFICATION_CLUSTER \ + CHIP_PRINTCLUSTER_METER_IDENTIFICATION_CLUSTER \ + CHIP_PRINTCLUSTER_APPLIANCE_EVENTS_AND_ALERT_CLUSTER \ + CHIP_PRINTCLUSTER_APPLIANCE_STATISTICS_CLUSTER \ + CHIP_PRINTCLUSTER_ELECTRICAL_MEASUREMENT_CLUSTER \ + CHIP_PRINTCLUSTER_DIAGNOSTICS_CLUSTER \ + CHIP_PRINTCLUSTER_ZLL_COMMISSIONING_CLUSTER \ + CHIP_PRINTCLUSTER_SAMPLE_MFG_SPECIFIC_CLUSTER \ + CHIP_PRINTCLUSTER_SAMPLE_MFG_SPECIFIC_CLUSTER_2 \ + CHIP_PRINTCLUSTER_OTA_CONFIGURATION_CLUSTER \ + CHIP_PRINTCLUSTER_MFGLIB_CLUSTER \ + CHIP_PRINTCLUSTER_SL_WWAH_CLUSTER + +#define MAX_CLUSTER_NAME_LENGTH 52 diff --git a/examples/wifi-echo/server/esp32/.gitignore b/examples/all-clusters-app/esp32/.gitignore similarity index 100% rename from examples/wifi-echo/server/esp32/.gitignore rename to examples/all-clusters-app/esp32/.gitignore diff --git a/examples/wifi-echo/server/esp32/Makefile b/examples/all-clusters-app/esp32/Makefile similarity index 89% rename from examples/wifi-echo/server/esp32/Makefile rename to examples/all-clusters-app/esp32/Makefile index 4140c5ee5215f6..69689a82e692a1 100644 --- a/examples/wifi-echo/server/esp32/Makefile +++ b/examples/all-clusters-app/esp32/Makefile @@ -19,12 +19,12 @@ # project subdirectory. # -PROJECT_NAME := chip-wifi-echo +PROJECT_NAME := chip-all-clusters-app EXTRA_COMPONENT_DIRS += $(PROJECT_PATH)/third_party/connectedhomeip/config/esp32/components \ - $(PROJECT_PATH)/../../../common/m5stack-tft/repo/components \ - $(PROJECT_PATH)/../../../common/QRCode \ - $(PROJECT_PATH)/../../../common/screen-framework \ + $(PROJECT_PATH)/../../common/m5stack-tft/repo/components \ + $(PROJECT_PATH)/../../common/QRCode \ + $(PROJECT_PATH)/../../common/screen-framework \ CXXFLAGS += -std=c++11 -Os -DLWIP_IPV6_SCOPES=0 CPPFLAGS += -Os -DLWIP_IPV6_SCOPES=0 -DCHIP_HAVE_CONFIG_H diff --git a/examples/wifi-echo/server/esp32/README.md b/examples/all-clusters-app/esp32/README.md similarity index 94% rename from examples/wifi-echo/server/esp32/README.md rename to examples/all-clusters-app/esp32/README.md index a5340392fe4072..38261c6c663b99 100644 --- a/examples/wifi-echo/server/esp32/README.md +++ b/examples/all-clusters-app/esp32/README.md @@ -1,4 +1,4 @@ -# CHIP WiFi Echo Server Example +# CHIP All Clusters Example A prototype appplication that uses CHIP to setup WiFi on the ESP32 and runs an Echo Server. This example will evolve as more complex messaging is supported in @@ -6,7 +6,7 @@ CHIP. --- -- [CHIP WiFi Echo Server Example](#chip-wifi-echo-server-example) +- [CHIP App Server Example](#chip-app-server-example) - [Supported Devices](#supported-devices) - [Building the Example Application](#building-the-example-application) - [To build the application, follow these steps:](#to-build-the-application-follow-these-steps) @@ -33,7 +33,7 @@ Development Framework and the xtensa-esp32-elf toolchain. The VSCode devcontainer has these components pre-installed, so you can skip this step. To install these components manually, follow these steps: -- Clone the Espressif ESP-IDF and checkout release v4.1 +- Clone the Espressif ESP-IDF and checkout release/v4.1 branch $ mkdir ${HOME}/tools $ cd ${HOME}/tools @@ -65,13 +65,13 @@ make sure the IDF_PATH has been exported(See the manual setup steps above). $ idf make menuconfig - Select ESP32 based `Device Type` through `WiFi Echo Demo`->`Device Type`. + Select ESP32 based `Device Type` through `Demo`->`Device Type`. The device types that are currently supported include `ESP32-DevKitC` (default), `ESP32-WROVER-KIT_V4.1` and `M5Stack` If you are using `standalone chip-tool` to communicate with the ESP32, bypass the Rendezvous mode so that the device can communicate over an insecure channel. - This can be done through `WiFi Echo Demo`->`Rendezvous Mode`->`Bypass` + This can be done through `Demo`->`Rendezvous Mode`->`Bypass` To connect the ESP32 to your network, configure the Wi-Fi SSID and Passphrase through `Component config`->`CHIP Device Layer`->`WiFi Station Options`->`Default WiFi SSID` and @@ -163,7 +163,7 @@ Alternatively, you can connect to the ESP32's Soft-AP directly. In addition to the echo server, this demo also supports controlling OnOff cluster (Server) attributes of an endpoint. For `ESP32-DevKitC` and `ESP32-WROVER-KIT_V4.1`, a GPIO (configurable through `STATUS_LED_GPIO_NUM` in -`main/wifi-echo.cpp`) is updated through the on/off/toggle commands from the +`main/main.cpp`) is updated through the on/off/toggle commands from the `chip-tool`. For `M5Stack`, a virtual Green LED on the display is used for the same. diff --git a/examples/wifi-echo/server/esp32/idf.sh b/examples/all-clusters-app/esp32/idf.sh similarity index 100% rename from examples/wifi-echo/server/esp32/idf.sh rename to examples/all-clusters-app/esp32/idf.sh diff --git a/examples/wifi-echo/server/esp32/main/BluetoothWidget.cpp b/examples/all-clusters-app/esp32/main/BluetoothWidget.cpp similarity index 100% rename from examples/wifi-echo/server/esp32/main/BluetoothWidget.cpp rename to examples/all-clusters-app/esp32/main/BluetoothWidget.cpp diff --git a/examples/wifi-echo/server/esp32/main/Button.cpp b/examples/all-clusters-app/esp32/main/Button.cpp similarity index 100% rename from examples/wifi-echo/server/esp32/main/Button.cpp rename to examples/all-clusters-app/esp32/main/Button.cpp diff --git a/examples/wifi-echo/server/esp32/main/CHIPDeviceManager.cpp b/examples/all-clusters-app/esp32/main/CHIPDeviceManager.cpp similarity index 71% rename from examples/wifi-echo/server/esp32/main/CHIPDeviceManager.cpp rename to examples/all-clusters-app/esp32/main/CHIPDeviceManager.cpp index 9b02720efe707c..f7c557062de632 100644 --- a/examples/wifi-echo/server/esp32/main/CHIPDeviceManager.cpp +++ b/examples/all-clusters-app/esp32/main/CHIPDeviceManager.cpp @@ -25,11 +25,14 @@ #include #include "CHIPDeviceManager.h" +#include #include #include #include #include +using namespace ::chip; + namespace chip { namespace DeviceManager { @@ -60,11 +63,11 @@ CHIP_ERROR CHIPDeviceManager::Init(CHIPDeviceManagerCallbacks * cb) switch (static_cast(CONFIG_RENDEZVOUS_MODE)) { case RendezvousInformationFlags::kBLE: - ConnectivityMgr().SetBLEAdvertisingEnabled(ConnectivityManager::kCHIPoBLEServiceMode_Enabled); + ConnectivityMgr().SetBLEAdvertisingEnabled(true); break; case RendezvousInformationFlags::kWiFi: - ConnectivityMgr().SetBLEAdvertisingEnabled(ConnectivityManager::kCHIPoBLEServiceMode_Disabled); + ConnectivityMgr().SetBLEAdvertisingEnabled(false); ConnectivityMgr().SetWiFiAPMode(ConnectivityManager::kWiFiAPMode_Enabled); break; @@ -92,39 +95,16 @@ CHIP_ERROR CHIPDeviceManager::Init(CHIPDeviceManagerCallbacks * cb) exit: return err; } +} // namespace DeviceManager +} // namespace chip -extern "C" { -void emberAfPostAttributeChangeCallback(uint8_t endpointId, EmberAfClusterId clusterId, EmberAfAttributeId attributeId, - uint8_t mask, uint16_t manufacturerCode, uint8_t type, uint8_t size, uint8_t * value) +void emberAfPostAttributeChangeCallback(EndpointId endpointId, ClusterId clusterId, AttributeId attributeId, uint8_t mask, + uint16_t manufacturerCode, uint8_t type, uint8_t size, uint8_t * value) { - CHIPDeviceManagerCallbacks * cb = CHIPDeviceManager::GetInstance().GetCHIPDeviceManagerCallbacks(); + chip::DeviceManager::CHIPDeviceManagerCallbacks * cb = + chip::DeviceManager::CHIPDeviceManager::GetInstance().GetCHIPDeviceManagerCallbacks(); if (cb != nullptr) { cb->PostAttributeChangeCallback(endpointId, clusterId, attributeId, mask, manufacturerCode, type, size, value); } } - -void emberAfPluginBasicResetToFactoryDefaultsCallback(uint8_t endpointId) -{ - CHIPDeviceManagerCallbacks * cb = CHIPDeviceManager::GetInstance().GetCHIPDeviceManagerCallbacks(); - if (cb != nullptr) - { - cb->PluginBasicResetToFactoryDefaultsCallback(endpointId); - } -} - -bool emberAfPluginDoorLockServerActivateDoorLockCallback(bool activate) -{ - CHIPDeviceManagerCallbacks * cb = CHIPDeviceManager::GetInstance().GetCHIPDeviceManagerCallbacks(); - if (cb != nullptr) - { - return cb->PluginDoorLockActivateDoorLockCallback(activate); - } - - return false; -} - -} // extern "C" - -} // namespace DeviceManager -} // namespace chip diff --git a/examples/wifi-echo/server/esp32/main/DeviceCallbacks.cpp b/examples/all-clusters-app/esp32/main/DeviceCallbacks.cpp similarity index 74% rename from examples/wifi-echo/server/esp32/main/DeviceCallbacks.cpp rename to examples/all-clusters-app/esp32/main/DeviceCallbacks.cpp index 701c71c831089e..f40b1fa013e8c3 100644 --- a/examples/wifi-echo/server/esp32/main/DeviceCallbacks.cpp +++ b/examples/all-clusters-app/esp32/main/DeviceCallbacks.cpp @@ -30,16 +30,15 @@ #include "WiFiWidget.h" #include "esp_heap_caps.h" #include "esp_log.h" -#include +#include "gen/attribute-id.h" +#include "gen/cluster-id.h" +#include +#include #include -extern "C" { -#include "../gen/attribute-id.h" -#include "../gen/cluster-id.h" -} // extern "C" - -static const char * TAG = "echo-devicecallbacks"; +static const char * TAG = "app-devicecallbacks"; +using namespace ::chip; using namespace ::chip::Inet; using namespace ::chip::System; using namespace ::chip::DeviceLayer; @@ -63,9 +62,8 @@ void DeviceCallbacks::DeviceEventCallback(const ChipDeviceEvent * event, intptr_ ESP_LOGI(TAG, "Current free heap: %d\n", heap_caps_get_free_size(MALLOC_CAP_8BIT)); } -void DeviceCallbacks::PostAttributeChangeCallback(uint8_t endpointId, EmberAfClusterId clusterId, EmberAfAttributeId attributeId, - uint8_t mask, uint16_t manufacturerCode, uint8_t type, uint8_t size, - uint8_t * value) +void DeviceCallbacks::PostAttributeChangeCallback(EndpointId endpointId, ClusterId clusterId, AttributeId attributeId, uint8_t mask, + uint16_t manufacturerCode, uint8_t type, uint8_t size, uint8_t * value) { ESP_LOGI(TAG, "PostAttributeChangeCallback - Cluster ID: '0x%04x', EndPoint ID: '0x%02x', Attribute ID: '0x%04x'", clusterId, endpointId, attributeId); @@ -94,7 +92,7 @@ void DeviceCallbacks::OnInternetConnectivityChange(const ChipDeviceEvent * event { ESP_LOGI(TAG, "Server ready at: %s:%d", event->InternetConnectivityChange.address, CHIP_PORT); wifiLED.Set(true); - publisher.StartPublishDevice(); + chip::Mdns::DiscoveryManager::GetInstance().StartPublishDevice(); } else if (event->InternetConnectivityChange.IPv4 == kConnectivity_Lost) { @@ -104,7 +102,7 @@ void DeviceCallbacks::OnInternetConnectivityChange(const ChipDeviceEvent * event if (event->InternetConnectivityChange.IPv6 == kConnectivity_Established) { ESP_LOGI(TAG, "IPv6 Server ready..."); - publisher.StartPublishDevice(); + chip::Mdns::DiscoveryManager::GetInstance().StartPublishDevice(); } else if (event->InternetConnectivityChange.IPv6 == kConnectivity_Lost) { @@ -120,7 +118,7 @@ void DeviceCallbacks::OnSessionEstablished(const ChipDeviceEvent * event) } } -void DeviceCallbacks::OnOnOffPostAttributeChangeCallback(uint8_t endpointId, uint16_t attributeId, uint8_t * value) +void DeviceCallbacks::OnOnOffPostAttributeChangeCallback(EndpointId endpointId, AttributeId attributeId, uint8_t * value) { VerifyOrExit(attributeId == ZCL_ON_OFF_ATTRIBUTE_ID, ESP_LOGI(TAG, "Unhandled Attribute ID: '0x%04x", attributeId)); VerifyOrExit(endpointId == 1 || endpointId == 2, ESP_LOGE(TAG, "Unexpected EndPoint ID: `0x%02x'", endpointId)); @@ -136,23 +134,22 @@ void IdentifyTimerHandler(Layer * systemLayer, void * appState, Error error) { statusLED1.Animate(); - // Decrement the timer count. - identifyTimerCount--; - if (identifyTimerCount) { SystemLayer.StartTimer(kIdentifyTimerDelayMS, IdentifyTimerHandler, appState); + // Decrement the timer count. + identifyTimerCount--; } } -void DeviceCallbacks::OnIdentifyPostAttributeChangeCallback(uint8_t endpointId, uint16_t attributeId, uint8_t * value) +void DeviceCallbacks::OnIdentifyPostAttributeChangeCallback(EndpointId endpointId, AttributeId attributeId, uint8_t * value) { VerifyOrExit(attributeId == ZCL_IDENTIFY_TIME_ATTRIBUTE_ID, ESP_LOGI(TAG, "Unhandled Attribute ID: '0x%04x", attributeId)); VerifyOrExit(endpointId == 1, ESP_LOGE(TAG, "Unexpected EndPoint ID: `0x%02x'", endpointId)); statusLED1.Blink(kIdentifyTimerDelayMS * 2); - // timerCount represents the number of callback execution before the we stopped the timer. + // timerCount represents the number of callback executions before we stop the timer. // value is expressed in seconds and the timer is fired every 250ms, so just multiply value by 4. // Also, we want timerCount to be odd number, so the ligth state ends in the same state it starts. identifyTimerCount = (*value) * 4; @@ -163,22 +160,3 @@ void DeviceCallbacks::OnIdentifyPostAttributeChangeCallback(uint8_t endpointId, exit: return; } - -void DeviceCallbacks::PluginBasicResetToFactoryDefaultsCallback(uint8_t endpointId) -{ - ESP_LOGI(TAG, "PluginBasicResetToFactoryDefaultsCallback - EndPoint ID: '0x%02x'", endpointId); - - VerifyOrExit(endpointId == 1, ESP_LOGE(TAG, "Unexpected EndPoint ID: `0x%02x'", endpointId)); - - ConnectivityMgr().ClearWiFiStationProvision(); - -exit: - return; -} - -bool DeviceCallbacks::PluginDoorLockActivateDoorLockCallback(bool activate) -{ - ESP_LOGI(TAG, "PluginDoorLockActivateDoorLockCallback: '0x%02x'", activate); - // Simulate that locking/unlocking the door is always succesful. - return true; -} diff --git a/examples/wifi-echo/server/esp32/main/Globals.cpp b/examples/all-clusters-app/esp32/main/Globals.cpp similarity index 89% rename from examples/wifi-echo/server/esp32/main/Globals.cpp rename to examples/all-clusters-app/esp32/main/Globals.cpp index 5f18629ac810a6..f0d643ab19be1b 100644 --- a/examples/wifi-echo/server/esp32/main/Globals.cpp +++ b/examples/all-clusters-app/esp32/main/Globals.cpp @@ -21,5 +21,3 @@ LEDWidget statusLED1; LEDWidget statusLED2; BluetoothWidget bluetoothLED; WiFiWidget wifiLED; -chip::Protocols::Mdns::Publisher publisher; -const chip::NodeId kLocalNodeId = 12344321; diff --git a/examples/wifi-echo/server/esp32/main/Kconfig.projbuild b/examples/all-clusters-app/esp32/main/Kconfig.projbuild similarity index 99% rename from examples/wifi-echo/server/esp32/main/Kconfig.projbuild rename to examples/all-clusters-app/esp32/main/Kconfig.projbuild index 549e8ebd594228..2577ddba2a66ec 100644 --- a/examples/wifi-echo/server/esp32/main/Kconfig.projbuild +++ b/examples/all-clusters-app/esp32/main/Kconfig.projbuild @@ -18,7 +18,7 @@ # Configuration options CHIP ESP32 demo application. # -menu "WiFi Echo Demo" +menu "Demo" choice prompt "Device Type" diff --git a/examples/wifi-echo/server/esp32/main/LEDWidget.cpp b/examples/all-clusters-app/esp32/main/LEDWidget.cpp similarity index 100% rename from examples/wifi-echo/server/esp32/main/LEDWidget.cpp rename to examples/all-clusters-app/esp32/main/LEDWidget.cpp diff --git a/examples/wifi-echo/server/esp32/main/QRCodeScreen.cpp b/examples/all-clusters-app/esp32/main/QRCodeScreen.cpp similarity index 100% rename from examples/wifi-echo/server/esp32/main/QRCodeScreen.cpp rename to examples/all-clusters-app/esp32/main/QRCodeScreen.cpp diff --git a/examples/wifi-echo/server/esp32/main/WiFiWidget.cpp b/examples/all-clusters-app/esp32/main/WiFiWidget.cpp similarity index 100% rename from examples/wifi-echo/server/esp32/main/WiFiWidget.cpp rename to examples/all-clusters-app/esp32/main/WiFiWidget.cpp diff --git a/examples/wifi-echo/server/esp32/main/component.mk b/examples/all-clusters-app/esp32/main/component.mk similarity index 85% rename from examples/wifi-echo/server/esp32/main/component.mk rename to examples/all-clusters-app/esp32/main/component.mk index 331c2a78590d8f..6eef1d02ab74d7 100644 --- a/examples/wifi-echo/server/esp32/main/component.mk +++ b/examples/all-clusters-app/esp32/main/component.mk @@ -23,11 +23,12 @@ COMPONENT_DEPENDS := chip QRCode tft spidriver COMPONENT_SRCDIRS := \ . \ - gen \ ../third_party/connectedhomeip/examples/common/chip-app-server \ + ../third_party/connectedhomeip/examples/all-clusters-app/all-clusters-common/gen \ ../third_party/connectedhomeip/src/app/util \ ../third_party/connectedhomeip/src/app/clusters/on-off-server \ ../third_party/connectedhomeip/src/app/clusters/level-control \ + ../third_party/connectedhomeip/src/app/clusters/identify-client \ ../third_party/connectedhomeip/src/app/clusters/identify \ ../third_party/connectedhomeip/src/app/clusters/barrier-control-server \ ../third_party/connectedhomeip/src/app/clusters/scenes-client \ @@ -38,13 +39,15 @@ COMPONENT_SRCDIRS := ../third_party/connectedhomeip/src/app/clusters/scenes \ ../third_party/connectedhomeip/src/app/clusters/basic \ ../third_party/connectedhomeip/src/app/reporting \ + ../third_party/connectedhomeip/src/app/clusters/door-lock-client \ ../third_party/connectedhomeip/src/app/clusters/door-lock-server \ ../third_party/connectedhomeip/src/app/clusters/ias-zone-server \ # ../third_party/connectedhomeip/src/app/clusters/ias-zone-client \ -COMPONENT_EXTRA_INCLUDES := $(PROJECT_PATH)/third_party/connectedhomeip/src/app/util \ - $(PROJECT_PATH)/third_party/connectedhomeip/examples/common/chip-app-server/include \ +COMPONENT_EXTRA_INCLUDES := $(PROJECT_PATH)/third_party/connectedhomeip/src/app/util \ + $(PROJECT_PATH)/third_party/connectedhomeip/examples/common/chip-app-server/include \ + $(PROJECT_PATH)/third_party/connectedhomeip/examples/all-clusters-app/all-clusters-common \ $(PROJECT_PATH)/third_party/connectedhomeip/src # So "gen/*" files are found by the src/app bits. diff --git a/examples/wifi-echo/server/esp32/main/include/BluetoothWidget.h b/examples/all-clusters-app/esp32/main/include/BluetoothWidget.h similarity index 100% rename from examples/wifi-echo/server/esp32/main/include/BluetoothWidget.h rename to examples/all-clusters-app/esp32/main/include/BluetoothWidget.h diff --git a/examples/wifi-echo/server/esp32/main/include/Button.h b/examples/all-clusters-app/esp32/main/include/Button.h similarity index 100% rename from examples/wifi-echo/server/esp32/main/include/Button.h rename to examples/all-clusters-app/esp32/main/include/Button.h diff --git a/examples/wifi-echo/server/esp32/main/include/CHIPDeviceManager.h b/examples/all-clusters-app/esp32/main/include/CHIPDeviceManager.h similarity index 83% rename from examples/wifi-echo/server/esp32/main/include/CHIPDeviceManager.h rename to examples/all-clusters-app/esp32/main/include/CHIPDeviceManager.h index 88efa745c8167b..eb5171e70c3a90 100644 --- a/examples/wifi-echo/server/esp32/main/include/CHIPDeviceManager.h +++ b/examples/all-clusters-app/esp32/main/include/CHIPDeviceManager.h @@ -59,25 +59,6 @@ class DLL_EXPORT CHIPDeviceManagerCallbacks */ virtual void DeviceEventCallback(const chip::DeviceLayer::ChipDeviceEvent * event, intptr_t arg); - /** - * @brief - * Called when the ResetToFactoryDefaults method of the Basic cluster object has been called - * - * @param endpoint endpoint id - */ - virtual void PluginBasicResetToFactoryDefaultsCallback(uint8_t endpointId); - - /** - * @brief - * Activate Door Lock Callback - * - * @param activate True if the lock should move to the locked position, - * False if it should move to the unlocked position - * - * @returns true if the callback was able to activate/deactivate the Lock. - */ - virtual bool PluginDoorLockActivateDoorLockCallback(bool activate); - /** * @brief * Called after an attribute has been changed @@ -91,7 +72,7 @@ class DLL_EXPORT CHIPDeviceManagerCallbacks * @param size size of the attribute * @param value pointer to the new value */ - virtual void PostAttributeChangeCallback(uint8_t endpoint, EmberAfClusterId clusterId, EmberAfAttributeId attributeId, + virtual void PostAttributeChangeCallback(chip::EndpointId endpoint, chip::ClusterId clusterId, chip::AttributeId attributeId, uint8_t mask, uint16_t manufacturerCode, uint8_t type, uint8_t size, uint8_t * value) {} virtual ~CHIPDeviceManagerCallbacks() {} diff --git a/examples/wifi-echo/server/esp32/main/include/DeviceCallbacks.h b/examples/all-clusters-app/esp32/main/include/DeviceCallbacks.h similarity index 74% rename from examples/wifi-echo/server/esp32/main/include/DeviceCallbacks.h rename to examples/all-clusters-app/esp32/main/include/DeviceCallbacks.h index ed4cf06da0cd3b..2b8aa5e89e1cac 100644 --- a/examples/wifi-echo/server/esp32/main/include/DeviceCallbacks.h +++ b/examples/all-clusters-app/esp32/main/include/DeviceCallbacks.h @@ -27,20 +27,19 @@ #include "CHIPDeviceManager.h" #include +#include #include class DeviceCallbacks : public chip::DeviceManager::CHIPDeviceManagerCallbacks { public: virtual void DeviceEventCallback(const chip::DeviceLayer::ChipDeviceEvent * event, intptr_t arg); - virtual void PluginBasicResetToFactoryDefaultsCallback(uint8_t endpointId); - virtual bool PluginDoorLockActivateDoorLockCallback(bool activate); - virtual void PostAttributeChangeCallback(uint8_t endpointId, EmberAfClusterId clusterId, EmberAfAttributeId attributeId, + virtual void PostAttributeChangeCallback(chip::EndpointId endpointId, chip::ClusterId clusterId, chip::AttributeId attributeId, uint8_t mask, uint16_t manufacturerCode, uint8_t type, uint8_t size, uint8_t * value); private: void OnInternetConnectivityChange(const chip::DeviceLayer::ChipDeviceEvent * event); void OnSessionEstablished(const chip::DeviceLayer::ChipDeviceEvent * event); - void OnOnOffPostAttributeChangeCallback(uint8_t endpointId, uint16_t attributeId, uint8_t * value); - void OnIdentifyPostAttributeChangeCallback(uint8_t endpointId, uint16_t attributeId, uint8_t * value); + void OnOnOffPostAttributeChangeCallback(chip::EndpointId endpointId, chip::AttributeId attributeId, uint8_t * value); + void OnIdentifyPostAttributeChangeCallback(chip::EndpointId endpointId, chip::AttributeId attributeId, uint8_t * value); }; diff --git a/examples/wifi-echo/server/esp32/main/include/Globals.h b/examples/all-clusters-app/esp32/main/include/Globals.h similarity index 91% rename from examples/wifi-echo/server/esp32/main/include/Globals.h rename to examples/all-clusters-app/esp32/main/include/Globals.h index c69165497dce19..bee1e909ebb346 100644 --- a/examples/wifi-echo/server/esp32/main/include/Globals.h +++ b/examples/all-clusters-app/esp32/main/include/Globals.h @@ -20,12 +20,10 @@ #include "BluetoothWidget.h" #include "LEDWidget.h" #include "WiFiWidget.h" -#include "lib/mdns/Publisher.h" #include "transport/raw/MessageHeader.h" extern LEDWidget statusLED1; extern LEDWidget statusLED2; extern BluetoothWidget bluetoothLED; extern WiFiWidget wifiLED; -extern chip::Protocols::Mdns::Publisher publisher; extern const chip::NodeId kLocalNodeId; diff --git a/examples/wifi-echo/server/esp32/main/include/LEDWidget.h b/examples/all-clusters-app/esp32/main/include/LEDWidget.h similarity index 100% rename from examples/wifi-echo/server/esp32/main/include/LEDWidget.h rename to examples/all-clusters-app/esp32/main/include/LEDWidget.h diff --git a/examples/wifi-echo/server/esp32/main/include/QRCodeScreen.h b/examples/all-clusters-app/esp32/main/include/QRCodeScreen.h similarity index 100% rename from examples/wifi-echo/server/esp32/main/include/QRCodeScreen.h rename to examples/all-clusters-app/esp32/main/include/QRCodeScreen.h diff --git a/examples/wifi-echo/server/esp32/main/include/WiFiWidget.h b/examples/all-clusters-app/esp32/main/include/WiFiWidget.h similarity index 100% rename from examples/wifi-echo/server/esp32/main/include/WiFiWidget.h rename to examples/all-clusters-app/esp32/main/include/WiFiWidget.h diff --git a/examples/wifi-echo/server/esp32/main/wifi-echo.cpp b/examples/all-clusters-app/esp32/main/main.cpp similarity index 88% rename from examples/wifi-echo/server/esp32/main/wifi-echo.cpp rename to examples/all-clusters-app/esp32/main/main.cpp index d8c0db4baf8ddb..b0afc4e1d48585 100644 --- a/examples/wifi-echo/server/esp32/main/wifi-echo.cpp +++ b/examples/all-clusters-app/esp32/main/main.cpp @@ -15,18 +15,19 @@ * limitations under the License. */ +#include "AppDelegate.h" #include "BluetoothWidget.h" #include "Button.h" #include "CHIPDeviceManager.h" -#include "DataModelHandler.h" #include "DeviceCallbacks.h" #include "Display.h" #include "Globals.h" #include "LEDWidget.h" #include "ListScreen.h" #include "QRCodeScreen.h" -#include "RendezvousDeviceDelegate.h" +#include "QRCodeUtil.h" #include "ScreenManager.h" +#include "Server.h" #include "WiFiWidget.h" #include "esp_heap_caps_init.h" #include "esp_log.h" @@ -44,21 +45,16 @@ #include #include -#include -#include #include #include #include #include #include -#include using namespace ::chip; using namespace ::chip::DeviceManager; using namespace ::chip::DeviceLayer; -extern void startServer(); - #define QRCODE_BASE_URL "https://dhrishi.github.io/connectedhomeip/qrcode.html" #if CONFIG_DEVICE_TYPE_M5STACK @@ -85,21 +81,9 @@ extern void startServer(); // Used to indicate that an IP address has been added to the QRCode #define EXAMPLE_VENDOR_TAG_IP 1 -extern void PairingComplete(SecurePairingSession * pairing); - -const char * TAG = "wifi-echo-demo"; +const char * TAG = "all-clusters-app"; static DeviceCallbacks EchoCallbacks; -RendezvousDeviceDelegate * rendezvousDelegate = nullptr; - -namespace chip { -namespace DeviceLayer { -namespace Internal { -const uint64_t TestDeviceId = kLocalNodeId; // For chip::DeviceLayer::GetDeviceId -const uint64_t TestFabricId = 0; // For chip::DeviceLayer::GetFabricId -} // namespace Internal -} // namespace DeviceLayer -} // namespace chip namespace { @@ -353,11 +337,6 @@ bool isRendezvousBLE() return static_cast(CONFIG_RENDEZVOUS_MODE) == RendezvousInformationFlags::kBLE; } -bool isRendezvousBypassed() -{ - return static_cast(CONFIG_RENDEZVOUS_MODE) == RendezvousInformationFlags::kNone; -} - std::string createSetupPayload() { CHIP_ERROR err = CHIP_NO_ERROR; @@ -442,55 +421,19 @@ std::string createSetupPayload() return result; }; -bool inRfc3986UnreservedChar(const char c) -{ - static const char unreserved[] = { '-', '.', '_', '~' }; - return isalpha(c) || isdigit(c) || (strchr(unreserved, c) != NULL); -} - -esp_err_t urlEncode(const char * src, size_t len, char * dest, size_t max_size) +class AppCallbacks : public AppDelegate { - const char upper_xdigits[] = "0123456789ABCDEF"; - size_t i = 0, j = 0; - for (i = 0; i < len; ++i) - { - unsigned char c = src[i]; - if (inRfc3986UnreservedChar(c)) - { - if ((j + 1) < max_size) - { - dest[j++] = c; - } - else - { - return ESP_FAIL; - } - } - else - { - if ((j + 3) < max_size) - { - dest[j++] = '%'; - dest[j++] = upper_xdigits[c >> 4]; - dest[j++] = upper_xdigits[(c & 0x0f)]; - } - else - { - return ESP_FAIL; - } - } - } - dest[j] = '\0'; - return ESP_OK; -} - -static SecurePairingUsingTestSecret gTestPairing; +public: + void OnReceiveError() override { statusLED1.BlinkOnError(); } + void OnRendezvousStarted() override { bluetoothLED.Set(true); } + void OnRendezvousStopped() override { bluetoothLED.Set(false); } +}; } // namespace extern "C" void app_main() { - ESP_LOGI(TAG, "WiFi Echo Demo!"); + ESP_LOGI(TAG, "All Clusters Demo!"); /* Print chip information */ esp_chip_info_t chip_info; @@ -529,8 +472,6 @@ extern "C" void app_main() } SetupPretendDevices(); - publisher.Init(); - publisher.StopPublishDevice(); statusLED1.Init(STATUS_LED_GPIO_NUM); // Our second LED doesn't map to any physical LEDs so far, just to virtual @@ -539,29 +480,19 @@ extern "C" void app_main() bluetoothLED.Init(); wifiLED.Init(); - // Start the Echo Server - InitDataModelHandler(); - startServer(); - - if (isRendezvousBLE()) - { - rendezvousDelegate = chip::Platform::New(); - } - else if (isRendezvousBypassed()) - { - ChipLogProgress(Ble, "Rendezvous and Secure Pairing skipped. Using test secret."); - PairingComplete(&gTestPairing); - } + // Init ZCL Data Model and CHIP App Server + AppCallbacks callbacks; + InitServer(&callbacks); std::string qrCodeText = createSetupPayload(); ESP_LOGI(TAG, "QR CODE Text: '%s'", qrCodeText.c_str()); { std::vector qrCode(3 * qrCodeText.size() + 1); - err = urlEncode(qrCodeText.c_str(), qrCodeText.size(), qrCode.data(), qrCode.max_size()); - if (err == ESP_OK) + err = EncodeQRCodeToUrl(qrCodeText.c_str(), qrCodeText.size(), qrCode.data(), qrCode.max_size()); + if (err == CHIP_NO_ERROR) { - ESP_LOGI(TAG, "Copy paste the below URL in a browser to see the QR CODE:\n\t%s?data=%s", QRCODE_BASE_URL, + ESP_LOGI(TAG, "Copy/paste the below URL in a browser to see the QR CODE:\n\t%s?data=%s", QRCODE_BASE_URL, qrCode.data()); } } diff --git a/examples/wifi-echo/server/esp32/partitions.csv b/examples/all-clusters-app/esp32/partitions.csv similarity index 100% rename from examples/wifi-echo/server/esp32/partitions.csv rename to examples/all-clusters-app/esp32/partitions.csv diff --git a/examples/wifi-echo/server/esp32/sdkconfig.defaults b/examples/all-clusters-app/esp32/sdkconfig.defaults similarity index 100% rename from examples/wifi-echo/server/esp32/sdkconfig.defaults rename to examples/all-clusters-app/esp32/sdkconfig.defaults diff --git a/examples/wifi-echo/server/esp32/sdkconfig_devkit.defaults b/examples/all-clusters-app/esp32/sdkconfig_devkit.defaults similarity index 100% rename from examples/wifi-echo/server/esp32/sdkconfig_devkit.defaults rename to examples/all-clusters-app/esp32/sdkconfig_devkit.defaults diff --git a/examples/wifi-echo/server/esp32/sdkconfig_m5stack.defaults b/examples/all-clusters-app/esp32/sdkconfig_m5stack.defaults similarity index 100% rename from examples/wifi-echo/server/esp32/sdkconfig_m5stack.defaults rename to examples/all-clusters-app/esp32/sdkconfig_m5stack.defaults diff --git a/examples/all-clusters-app/esp32/third_party/connectedhomeip b/examples/all-clusters-app/esp32/third_party/connectedhomeip new file mode 120000 index 00000000000000..11a54ed360106c --- /dev/null +++ b/examples/all-clusters-app/esp32/third_party/connectedhomeip @@ -0,0 +1 @@ +../../../../ \ No newline at end of file diff --git a/examples/all-clusters-app/linux/.gn b/examples/all-clusters-app/linux/.gn new file mode 100644 index 00000000000000..c3cfa5fd40318d --- /dev/null +++ b/examples/all-clusters-app/linux/.gn @@ -0,0 +1,23 @@ +# 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. + +# The location of the build configuration file. +buildconfig = "//build/config/BUILDCONFIG.gn" + +# CHIP uses angle bracket includes. +check_system_includes = true + +default_args = { + import("//args.gni") +} diff --git a/examples/all-clusters-app/linux/BUILD.gn b/examples/all-clusters-app/linux/BUILD.gn new file mode 100644 index 00000000000000..01da5ec0b3b43d --- /dev/null +++ b/examples/all-clusters-app/linux/BUILD.gn @@ -0,0 +1,51 @@ +# 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. + +import("//build_overrides/chip.gni") + +import("${chip_root}/build/chip/tools.gni") + +assert(chip_build_tools) + +config("includes") { + include_dirs = [ + ".", + "include", + "${chip_root}/src/app/util", + ] +} + +executable("all-clusters-server") { + sources = [ "main.cpp" ] + + if (is_debug) { + defines = [ "BUILD_RELEASE=0" ] + } else { + defines = [ "BUILD_RELEASE=1" ] + } + + public_configs = [ ":includes" ] + + deps = [ + "${chip_root}/examples/all-clusters-app/all-clusters-common", + "${chip_root}/examples/common/chip-app-server:chip-app-server", + "${chip_root}/src/lib", + ] + + output_dir = root_out_dir +} + +group("linux") { + deps = [ ":all-clusters-server" ] +} diff --git a/examples/all-clusters-app/linux/Dockerfile b/examples/all-clusters-app/linux/Dockerfile new file mode 100644 index 00000000000000..11630a808b0c19 --- /dev/null +++ b/examples/all-clusters-app/linux/Dockerfile @@ -0,0 +1,23 @@ +# +# Copyright (c) 2020 Project CHIP Authors +# All rights reserved. +# +# 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. +# + +from generic_node_image +RUN apt-get install -y libglib2.0 +COPY out/debug/chip-tool-all-clusters-server /usr/bin/ +COPY entrypoint.sh / + +ENTRYPOINT ["/entrypoint.sh", "server"] diff --git a/examples/all-clusters-app/linux/args.gni b/examples/all-clusters-app/linux/args.gni new file mode 100644 index 00000000000000..311ddab32d5fe5 --- /dev/null +++ b/examples/all-clusters-app/linux/args.gni @@ -0,0 +1,17 @@ +# 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. + +import("//build_overrides/chip.gni") + +import("${chip_root}/config/standalone/args.gni") diff --git a/examples/all-clusters-app/linux/build b/examples/all-clusters-app/linux/build new file mode 120000 index 00000000000000..d56ed62ae4d1ff --- /dev/null +++ b/examples/all-clusters-app/linux/build @@ -0,0 +1 @@ +third_party/connectedhomeip/build \ No newline at end of file diff --git a/examples/all-clusters-app/linux/build_overrides b/examples/all-clusters-app/linux/build_overrides new file mode 120000 index 00000000000000..e578e73312ebd1 --- /dev/null +++ b/examples/all-clusters-app/linux/build_overrides @@ -0,0 +1 @@ +../../build_overrides \ No newline at end of file diff --git a/examples/all-clusters-app/linux/entrypoint.sh b/examples/all-clusters-app/linux/entrypoint.sh new file mode 100755 index 00000000000000..413f2d36b0799c --- /dev/null +++ b/examples/all-clusters-app/linux/entrypoint.sh @@ -0,0 +1,29 @@ +#!/usr/bin/env bash + +# +# 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. +# + +set -ex + +service dbus start +sleep 1 +/usr/sbin/otbr-agent -I wpan0 spinel+hdlc+uart:///dev/ttyUSB0 & +sleep 1 +ot-ctl panid 0x1234 +ot-ctl ifconfig up +ot-ctl thread start + +chip-tool-all-clusters-server diff --git a/examples/all-clusters-app/linux/main.cpp b/examples/all-clusters-app/linux/main.cpp new file mode 100644 index 00000000000000..145ce38a267ffe --- /dev/null +++ b/examples/all-clusters-app/linux/main.cpp @@ -0,0 +1,70 @@ +/* + * + * Copyright (c) 2020 Project CHIP Authors + * All rights reserved. + * + * 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. + */ + +#include +#include + +#include "af.h" +#include "gen/attribute-id.h" +#include "gen/cluster-id.h" +#include +#include +#include +#include +#include +#include +#include + +#include "Server.h" + +#include +#include + +using namespace chip; +using namespace chip::Inet; +using namespace chip::Transport; +using namespace chip::DeviceLayer; + +void emberAfPostAttributeChangeCallback(EndpointId endpoint, ClusterId clusterId, AttributeId attributeId, uint8_t mask, + uint16_t manufacturerCode, uint8_t type, uint8_t size, uint8_t * value) +{} + +int main(int argc, char * argv[]) +{ + CHIP_ERROR err = CHIP_NO_ERROR; + + err = chip::Platform::MemoryInit(); + SuccessOrExit(err); + + err = chip::DeviceLayer::PlatformMgr().InitChipStack(); + SuccessOrExit(err); + + // Init ZCL Data Model and CHIP App Server + InitServer(); + + chip::DeviceLayer::PlatformMgr().RunEventLoop(); + +exit: + if (err != CHIP_NO_ERROR) + { + std::cerr << "Failed to run All Clusters App: " << ErrorStr(err) << std::endl; + // End the program with non zero error code to indicate a error. + return 1; + } + return 0; +} diff --git a/examples/all-clusters-app/linux/third_party/connectedhomeip b/examples/all-clusters-app/linux/third_party/connectedhomeip new file mode 120000 index 00000000000000..11a54ed360106c --- /dev/null +++ b/examples/all-clusters-app/linux/third_party/connectedhomeip @@ -0,0 +1 @@ +../../../../ \ No newline at end of file diff --git a/examples/chip-tool/BUILD.gn b/examples/chip-tool/BUILD.gn index 9f5a4107c0767e..17ed976ef3b89e 100644 --- a/examples/chip-tool/BUILD.gn +++ b/examples/chip-tool/BUILD.gn @@ -20,12 +20,15 @@ assert(chip_build_tools) executable("chip-tool") { sources = [ + "commands/clusters/ModelCommand.cpp", "commands/common/Command.cpp", "commands/common/Commands.cpp", - "commands/common/EchoCommand.cpp", "commands/common/Logging.cpp", - "commands/common/ModelCommand.cpp", "commands/common/NetworkCommand.cpp", + "commands/echo/EchoCommand.cpp", + "commands/pairing/PairingCommand.cpp", + "commands/payload/ParseCommand.cpp", + "config/PersistentStorage.cpp", "main.cpp", ] @@ -37,7 +40,10 @@ executable("chip-tool") { cflags = [ "-Wconversion" ] - public_deps = [ "${chip_root}/src/lib" ] + public_deps = [ + "${chip_root}/src/lib", + "${chip_root}/third_party/inipp", + ] output_dir = root_out_dir } diff --git a/examples/chip-tool/Dockerfile b/examples/chip-tool/Dockerfile index 96a3f15552d221..1651eb36b24204 100644 --- a/examples/chip-tool/Dockerfile +++ b/examples/chip-tool/Dockerfile @@ -15,8 +15,8 @@ # limitations under the License. # -from generic_node_image -RUN apt-get install -y libglib2.0 +from chip-cirque-device-base +RUN apt-get update && apt-get install -y libglib2.0 avahi-daemon libavahi-client3 && rm -rf /var/lib/apt/lists/* COPY out/debug/chip-tool /usr/bin/ COPY entrypoint.sh / diff --git a/examples/chip-tool/README.md b/examples/chip-tool/README.md index b200ec96f0c6b0..bf0cbdff08b5fa 100644 --- a/examples/chip-tool/README.md +++ b/examples/chip-tool/README.md @@ -27,40 +27,53 @@ ninja -C out/debug - After the application is built, it can be found in the build directory as `out/debug/chip-tool` -## Using the Client to Request an Echo +## Using the Client to Pair a device + +In order to send commands to a device, it must be paired with the client. + +#### Pair a device + +To initiate a client pairing request to a device, run the built executable and +choose the pairing mode. + +##### Pair a device configured to bypass Rendezvous -### Ping a device over BLE +The command below pair a device with the provided IP address and port of the +server to talk to. -To initiate a client echo request to a BLE device, run the built executable and -pass it the discriminator and pairing code of the remote device. The command -below uses the default values hard-coded into the debug versions of the ESP32 -wifi-echo app: + $ chip-tool pairing bypass 192.168.0.30 11097 - $ chip-tool echo ble 12345678 3840 +#### Pair a device over BLE -### Ping a device over IP +Run the built executable and pass it the discriminator and pairing code of the +remote device. -To start the Client in echo mode, run the built executable and pass it the IP -address and port of the server to talk to, as well as the command "echo". +The command below uses the default values hard-coded into the debug versions of +the ESP32 all-clusters-app: - $ chip-tool echo ip 192.168.0.30 11097 + $ chip-tool pairing ble 12345678 3840 -If valid values are supplied, it will begin to periodically send messages to the -server address provided. +### Unpair a device -It also verifies that the incoming echo from the server matches what was sent -out. + $ chip-tool pairing unpair -Stop the Client at any time with `Ctrl + C`. +## Using the Client to Request an Echo + +### Ping a device + + $ chip-tool echo ip + +If valid values are supplied, it will send a message to the paired device and +verify that the incoming echo from the server matches what was sent out. ## Using the Client to Send CHIP Commands To use the Client to send a CHIP commands, run the built executable and pass it -the target cluster name, the target command name, the ip address and port of the -server to talk to as well as an endpoint id. The endpoint id must be between 1 -and 240. +the target cluster name, the target command name as well as an endpoint id. + +The endpoint id must be between 1 and 240. - $ chip-tool onoff on 192.168.0.30 11097 1 + $ chip-tool onoff on 1 The client will send a single command packet and then exit. @@ -91,3 +104,24 @@ To get the list of parameters for a specific command, run the built executable with the target cluster name and the target command name $ chip-tool onoff on + +## Using the Client for Setup Payload + +### How to parse a setup code + +To parse a setup code, run the built executable with the `payload` cluster name +and the `parse` command + + $ chip-tool payload parse code + +#### QR Code + + $ chip-tool payload parse "CH:#####" + +#### QR Code with optional Vendor Info + + $ chip-tool chip-tool payload parse "CH:#####" + +#### Manual Setup Code + + $ chip-tool payload parse :#####" diff --git a/examples/chip-tool/commands/clusters/Commands.h b/examples/chip-tool/commands/clusters/Commands.h index 87335ea3880c4b..039c37c0796f5a 100644 --- a/examples/chip-tool/commands/clusters/Commands.h +++ b/examples/chip-tool/commands/clusters/Commands.h @@ -20,8 +20,8 @@ #pragma once -#include "../common/ModelCommand.h" -#include "../common/ModelCommandResponse.h" +#include "ModelCommand.h" +#include "ModelCommandResponse.h" #include @@ -487,8 +487,14 @@ bool ReadAttributeValue(uint8_t *& message, uint16_t & messageLen) | * ReadAttributesResponse | 0x01 | | * WriteAttributesResponse | 0x04 | | * WriteAttributesNoResponse | 0x05 | +| * ConfigureReportingResponse | 0x07 | +| * ReadReportingConfigurationResponse | 0x09 | | * DefaultResponse | 0x0B | | * DiscoverAttributesResponse | 0x0D | +| * WriteAttributesStructuredResponse | 0x10 | +| * DiscoverCommandsReceivedResponse | 0x12 | +| * DiscoverCommandsGeneratedResponse | 0x14 | +| * DiscoverAttributesExtendedResponse | 0x16 | \*----------------------------------------------------------------------------*/ /* @@ -508,10 +514,13 @@ class ReadAttributesResponse : public ModelCommandResponse while (messageLen) { CHECK_MESSAGE_LENGTH(2); - ChipLogProgress(chipTool, " %s: 0x%04x", "attributeId", chip::Encoding::LittleEndian::Read16(message)); // attribId + uint16_t attributeId = chip::Encoding::LittleEndian::Read16(message); // attribId + ChipLogProgress(chipTool, " %s: 0x%04x", "attributeId", attributeId); + CHECK_MESSAGE_LENGTH(1); uint8_t status = chip::Encoding::Read8(message); // zclStatus success = CheckStatus(status); + if (status == 0) { if (!ReadAttributeValue(message, messageLen)) @@ -520,7 +529,6 @@ class ReadAttributesResponse : public ModelCommandResponse } } } - return success; } }; @@ -544,13 +552,14 @@ class WriteAttributesResponse : public ModelCommandResponse CHECK_MESSAGE_LENGTH(1); uint8_t status = chip::Encoding::Read8(message); // zclStatus success = CheckStatus(status); + if (status != 0) { CHECK_MESSAGE_LENGTH(2); - ChipLogProgress(chipTool, " %s: 0x%04x", "attributeId", chip::Encoding::LittleEndian::Read16(message)); // attribId + uint16_t attributeId = chip::Encoding::LittleEndian::Read16(message); // attribId + ChipLogProgress(chipTool, " %s: 0x%04x", "attributeId", attributeId); } } - return success; } }; @@ -572,13 +581,113 @@ class WriteAttributesNoResponse : public ModelCommandResponse while (messageLen) { CHECK_MESSAGE_LENGTH(2); - ChipLogProgress(chipTool, " %s: 0x%04x", "attributeId", chip::Encoding::LittleEndian::Read16(message)); // attribId + uint16_t attributeId = chip::Encoding::LittleEndian::Read16(message); // attribId + ChipLogProgress(chipTool, " %s: 0x%04x", "attributeId", attributeId); + if (!ReadAttributeValue(message, messageLen)) { return false; } } + return success; + } +}; + +/* + * Command ConfigureReportingResponse + */ +class ConfigureReportingResponse : public ModelCommandResponse +{ +public: + ConfigureReportingResponse() : ModelCommandResponse(0x07) {} + + bool HandleResponse(uint8_t * message, uint16_t messageLen) const override + { + bool success = true; + ChipLogProgress(chipTool, "ConfigureReportingResponse (0x07):"); + // struct configureReportingResponseRecord[] + while (messageLen) + { + CHECK_MESSAGE_LENGTH(1); + uint8_t status = chip::Encoding::Read8(message); // zclStatus + success = CheckStatus(status); + + if (status != 0) + { + CHECK_MESSAGE_LENGTH(1); + uint8_t direction = chip::Encoding::Read8(message); // reportingRole + ChipLogProgress(chipTool, " %s: 0x%02x", "direction", direction); + } + + if (status != 0) + { + CHECK_MESSAGE_LENGTH(2); + uint16_t attributeId = chip::Encoding::LittleEndian::Read16(message); // attribId + ChipLogProgress(chipTool, " %s: 0x%04x", "attributeId", attributeId); + } + } + return success; + } +}; + +/* + * Command ReadReportingConfigurationResponse + */ +class ReadReportingConfigurationResponse : public ModelCommandResponse +{ +public: + ReadReportingConfigurationResponse() : ModelCommandResponse(0x09) {} + + bool HandleResponse(uint8_t * message, uint16_t messageLen) const override + { + bool success = true; + ChipLogProgress(chipTool, "ReadReportingConfigurationResponse (0x09):"); + + // struct readReportingConfigurationResponseRecord[] + while (messageLen) + { + CHECK_MESSAGE_LENGTH(1); + uint8_t direction = chip::Encoding::Read8(message); // reportingRole + ChipLogProgress(chipTool, " %s: 0x%02x", "direction", direction); + + CHECK_MESSAGE_LENGTH(2); + uint16_t attributeId = chip::Encoding::LittleEndian::Read16(message); // attribId + ChipLogProgress(chipTool, " %s: 0x%04x", "attributeId", attributeId); + + if (direction == 0) + { + CHECK_MESSAGE_LENGTH(1); + uint8_t attributeType = chip::Encoding::Read8(message); // zclType + ChipLogProgress(chipTool, " %s: 0x%02x", "attributeType", attributeType); + } + + if (direction == 0) + { + CHECK_MESSAGE_LENGTH(2); + uint16_t minimumReportingInterval = chip::Encoding::LittleEndian::Read16(message); // uint16 + ChipLogProgress(chipTool, " %s: 0x%04x", "minimumReportingInterval", minimumReportingInterval); + } + + if (direction == 0) + { + CHECK_MESSAGE_LENGTH(2); + uint16_t maximumReportingInterval = chip::Encoding::LittleEndian::Read16(message); // uint16 + ChipLogProgress(chipTool, " %s: 0x%04x", "maximumReportingInterval", maximumReportingInterval); + } + + if (direction == 0) + { + // FIXME: unk is not supported yet. + } + + if (direction == 1) + { + CHECK_MESSAGE_LENGTH(2); + uint16_t timeout = chip::Encoding::LittleEndian::Read16(message); // uint16 + ChipLogProgress(chipTool, " %s: 0x%04x", "timeout", timeout); + } + } return success; } }; @@ -597,7 +706,9 @@ class DefaultResponse : public ModelCommandResponse ChipLogProgress(chipTool, "DefaultResponse (0x0B):"); CHECK_MESSAGE_LENGTH(1); - ChipLogProgress(chipTool, " %s: 0x%02x", "commandId", chip::Encoding::Read8(message)); // uint8 + uint8_t commandId = chip::Encoding::Read8(message); // uint8 + ChipLogProgress(chipTool, " %s: 0x%02x", "commandId", commandId); + CHECK_MESSAGE_LENGTH(1); uint8_t status = chip::Encoding::Read8(message); // zclStatus success = CheckStatus(status); @@ -620,16 +731,146 @@ class DiscoverAttributesResponse : public ModelCommandResponse ChipLogProgress(chipTool, "DiscoverAttributesResponse (0x0D):"); CHECK_MESSAGE_LENGTH(1); - ChipLogProgress(chipTool, " %s: 0x%02x", "discoveryComplete", chip::Encoding::Read8(message)); // bool + bool discoveryComplete = chip::Encoding::Read8(message); // bool + ChipLogProgress(chipTool, " %s: 0x%02x", "discoveryComplete", discoveryComplete); + // struct discoverAttributesResponseRecord[] while (messageLen) { CHECK_MESSAGE_LENGTH(2); - ChipLogProgress(chipTool, " %s: 0x%04x", "attributeId", chip::Encoding::LittleEndian::Read16(message)); // attribId + uint16_t attributeId = chip::Encoding::LittleEndian::Read16(message); // attribId + ChipLogProgress(chipTool, " %s: 0x%04x", "attributeId", attributeId); + + CHECK_MESSAGE_LENGTH(1); + uint8_t attributeType = chip::Encoding::Read8(message); // zclType + ChipLogProgress(chipTool, " %s: 0x%02x", "attributeType", attributeType); + } + return success; + } +}; + +/* + * Command WriteAttributesStructuredResponse + */ +class WriteAttributesStructuredResponse : public ModelCommandResponse +{ +public: + WriteAttributesStructuredResponse() : ModelCommandResponse(0x10) {} + + bool HandleResponse(uint8_t * message, uint16_t messageLen) const override + { + bool success = true; + ChipLogProgress(chipTool, "WriteAttributesStructuredResponse (0x10):"); + + // struct writeStructuredResponseRecord[] + while (messageLen) + { + CHECK_MESSAGE_LENGTH(1); + uint8_t status = chip::Encoding::Read8(message); // zclStatus + success = CheckStatus(status); + + if (status != 0) + { + CHECK_MESSAGE_LENGTH(2); + uint16_t attributeId = chip::Encoding::LittleEndian::Read16(message); // attribId + ChipLogProgress(chipTool, " %s: 0x%04x", "attributeId", attributeId); + } + + if (status != 0) + { + CHECK_MESSAGE_LENGTH(2); + uint16_t selector = chip::Encoding::LittleEndian::Read16(message); // uint16 + ChipLogProgress(chipTool, " %s: 0x%04x", "selector", selector); + } + } + return success; + } +}; + +/* + * Command DiscoverCommandsReceivedResponse + */ +class DiscoverCommandsReceivedResponse : public ModelCommandResponse +{ +public: + DiscoverCommandsReceivedResponse() : ModelCommandResponse(0x12) {} + + bool HandleResponse(uint8_t * message, uint16_t messageLen) const override + { + bool success = true; + ChipLogProgress(chipTool, "DiscoverCommandsReceivedResponse (0x12):"); + + CHECK_MESSAGE_LENGTH(1); + bool discoveryComplete = chip::Encoding::Read8(message); // bool + ChipLogProgress(chipTool, " %s: 0x%02x", "discoveryComplete", discoveryComplete); + + // uint8_t uint8[] + while (messageLen) + { CHECK_MESSAGE_LENGTH(1); - ChipLogProgress(chipTool, " %s: 0x%02x", "attributeType", chip::Encoding::Read8(message)); // zclType + uint8_t commandId = chip::Encoding::Read8(message); // uint8 + ChipLogProgress(chipTool, " %s: 0x%02x", "commandId", commandId); } + return success; + } +}; + +/* + * Command DiscoverCommandsGeneratedResponse + */ +class DiscoverCommandsGeneratedResponse : public ModelCommandResponse +{ +public: + DiscoverCommandsGeneratedResponse() : ModelCommandResponse(0x14) {} + + bool HandleResponse(uint8_t * message, uint16_t messageLen) const override + { + bool success = true; + ChipLogProgress(chipTool, "DiscoverCommandsGeneratedResponse (0x14):"); + + CHECK_MESSAGE_LENGTH(1); + bool discoveryComplete = chip::Encoding::Read8(message); // bool + ChipLogProgress(chipTool, " %s: 0x%02x", "discoveryComplete", discoveryComplete); + // uint8_t uint8[] + while (messageLen) + { + CHECK_MESSAGE_LENGTH(1); + uint8_t commandId = chip::Encoding::Read8(message); // uint8 + ChipLogProgress(chipTool, " %s: 0x%02x", "commandId", commandId); + } + return success; + } +}; + +/* + * Command DiscoverAttributesExtendedResponse + */ +class DiscoverAttributesExtendedResponse : public ModelCommandResponse +{ +public: + DiscoverAttributesExtendedResponse() : ModelCommandResponse(0x16) {} + + bool HandleResponse(uint8_t * message, uint16_t messageLen) const override + { + bool success = true; + ChipLogProgress(chipTool, "DiscoverAttributesExtendedResponse (0x16):"); + + CHECK_MESSAGE_LENGTH(1); + bool discoveryComplete = chip::Encoding::Read8(message); // bool + ChipLogProgress(chipTool, " %s: 0x%02x", "discoveryComplete", discoveryComplete); + + // struct discoverAttributesExtendedResponseRecord[] + while (messageLen) + { + CHECK_MESSAGE_LENGTH(2); + uint16_t attributeId = chip::Encoding::LittleEndian::Read16(message); // attribId + ChipLogProgress(chipTool, " %s: 0x%04x", "attributeId", attributeId); + + CHECK_MESSAGE_LENGTH(1); + uint8_t accessControl = chip::Encoding::Read8(message); // bitmap8 + ChipLogProgress(chipTool, " %s: 0x%02x", "accessControl", accessControl); + } return success; } }; @@ -642,7 +883,7 @@ class DiscoverAttributesResponse : public ModelCommandResponse | ColorControl | 0x0300 | | DoorLock | 0x0101 | | Groups | 0x0004 | -| IASZone | 0x0500 | +| IasZone | 0x0500 | | Identify | 0x0003 | | Level | 0x0008 | | OnOff | 0x0006 | @@ -655,7 +896,7 @@ constexpr uint16_t kBasicClusterId = 0x0000; constexpr uint16_t kColorControlClusterId = 0x0300; constexpr uint16_t kDoorLockClusterId = 0x0101; constexpr uint16_t kGroupsClusterId = 0x0004; -constexpr uint16_t kIASZoneClusterId = 0x0500; +constexpr uint16_t kIasZoneClusterId = 0x0500; constexpr uint16_t kIdentifyClusterId = 0x0003; constexpr uint16_t kLevelClusterId = 0x0008; constexpr uint16_t kOnOffClusterId = 0x0006; @@ -685,15 +926,15 @@ constexpr uint16_t kTempMeasurementClusterId = 0x0402; class BarrierControlGoToPercent : public ModelCommand { public: - BarrierControlGoToPercent() : ModelCommand("go-to-percent", kBarrierControlClusterId, 0x00) + BarrierControlGoToPercent() : ModelCommand("barrier-control-go-to-percent", kBarrierControlClusterId, 0x00) { AddArgument("percentOpen", 0, UINT8_MAX, &mPercentOpen); ModelCommand::AddArguments(); } - uint16_t EncodeCommand(PacketBuffer * buffer, uint16_t bufferSize, uint8_t endPointId) override + uint16_t EncodeCommand(const PacketBufferHandle & buffer, uint16_t bufferSize, uint8_t endPointId) override { - return encodeBarrierControlClusterGoToPercentCommand(buffer->Start(), bufferSize, endPointId, mPercentOpen); + return encodeBarrierControlClusterBarrierControlGoToPercentCommand(buffer->Start(), bufferSize, endPointId, mPercentOpen); } // Global Response: DefaultResponse @@ -713,11 +954,11 @@ class BarrierControlGoToPercent : public ModelCommand class BarrierControlStop : public ModelCommand { public: - BarrierControlStop() : ModelCommand("stop", kBarrierControlClusterId, 0x01) { ModelCommand::AddArguments(); } + BarrierControlStop() : ModelCommand("barrier-control-stop", kBarrierControlClusterId, 0x01) { ModelCommand::AddArguments(); } - uint16_t EncodeCommand(PacketBuffer * buffer, uint16_t bufferSize, uint8_t endPointId) override + uint16_t EncodeCommand(const PacketBufferHandle & buffer, uint16_t bufferSize, uint8_t endPointId) override { - return encodeBarrierControlClusterStopCommand(buffer->Start(), bufferSize, endPointId); + return encodeBarrierControlClusterBarrierControlStopCommand(buffer->Start(), bufferSize, endPointId); } // Global Response: DefaultResponse @@ -736,7 +977,7 @@ class DiscoverBarrierControlAttributes : public ModelCommand public: DiscoverBarrierControlAttributes() : ModelCommand("discover", kBarrierControlClusterId, 0x0c) { ModelCommand::AddArguments(); } - uint16_t EncodeCommand(PacketBuffer * buffer, uint16_t bufferSize, uint8_t endPointId) override + uint16_t EncodeCommand(const PacketBufferHandle & buffer, uint16_t bufferSize, uint8_t endPointId) override { return encodeBarrierControlClusterDiscoverAttributes(buffer->Start(), bufferSize, endPointId); } @@ -757,13 +998,13 @@ class ReadBarrierControlMovingState : public ModelCommand public: ReadBarrierControlMovingState() : ModelCommand("read", kBarrierControlClusterId, 0x00) { - AddArgument("attr-name", "moving-state"); + AddArgument("attr-name", "barrier-moving-state"); ModelCommand::AddArguments(); } - uint16_t EncodeCommand(PacketBuffer * buffer, uint16_t bufferSize, uint8_t endPointId) override + uint16_t EncodeCommand(const PacketBufferHandle & buffer, uint16_t bufferSize, uint8_t endPointId) override { - return encodeBarrierControlClusterReadMovingStateAttribute(buffer->Start(), bufferSize, endPointId); + return encodeBarrierControlClusterReadBarrierMovingStateAttribute(buffer->Start(), bufferSize, endPointId); } // Global Response: ReadAttributesResponse @@ -782,13 +1023,13 @@ class ReadBarrierControlSafetyStatus : public ModelCommand public: ReadBarrierControlSafetyStatus() : ModelCommand("read", kBarrierControlClusterId, 0x00) { - AddArgument("attr-name", "safety-status"); + AddArgument("attr-name", "barrier-safety-status"); ModelCommand::AddArguments(); } - uint16_t EncodeCommand(PacketBuffer * buffer, uint16_t bufferSize, uint8_t endPointId) override + uint16_t EncodeCommand(const PacketBufferHandle & buffer, uint16_t bufferSize, uint8_t endPointId) override { - return encodeBarrierControlClusterReadSafetyStatusAttribute(buffer->Start(), bufferSize, endPointId); + return encodeBarrierControlClusterReadBarrierSafetyStatusAttribute(buffer->Start(), bufferSize, endPointId); } // Global Response: ReadAttributesResponse @@ -807,13 +1048,13 @@ class ReadBarrierControlCapabilities : public ModelCommand public: ReadBarrierControlCapabilities() : ModelCommand("read", kBarrierControlClusterId, 0x00) { - AddArgument("attr-name", "capabilities"); + AddArgument("attr-name", "barrier-capabilities"); ModelCommand::AddArguments(); } - uint16_t EncodeCommand(PacketBuffer * buffer, uint16_t bufferSize, uint8_t endPointId) override + uint16_t EncodeCommand(const PacketBufferHandle & buffer, uint16_t bufferSize, uint8_t endPointId) override { - return encodeBarrierControlClusterReadCapabilitiesAttribute(buffer->Start(), bufferSize, endPointId); + return encodeBarrierControlClusterReadBarrierCapabilitiesAttribute(buffer->Start(), bufferSize, endPointId); } // Global Response: ReadAttributesResponse @@ -836,7 +1077,7 @@ class ReadBarrierControlBarrierPosition : public ModelCommand ModelCommand::AddArguments(); } - uint16_t EncodeCommand(PacketBuffer * buffer, uint16_t bufferSize, uint8_t endPointId) override + uint16_t EncodeCommand(const PacketBufferHandle & buffer, uint16_t bufferSize, uint8_t endPointId) override { return encodeBarrierControlClusterReadBarrierPositionAttribute(buffer->Start(), bufferSize, endPointId); } @@ -859,7 +1100,7 @@ class ReadBarrierControlBarrierPosition : public ModelCommand | * ResetToFactoryDefaults | 0x00 | |------------------------------------------------------------------------------| | Attributes: | | -| * ZCLVersion | 0x0000 | +| * ZclVersion | 0x0000 | | * PowerSource | 0x0007 | \*----------------------------------------------------------------------------*/ @@ -874,7 +1115,7 @@ class BasicResetToFactoryDefaults : public ModelCommand ModelCommand::AddArguments(); } - uint16_t EncodeCommand(PacketBuffer * buffer, uint16_t bufferSize, uint8_t endPointId) override + uint16_t EncodeCommand(const PacketBufferHandle & buffer, uint16_t bufferSize, uint8_t endPointId) override { return encodeBasicClusterResetToFactoryDefaultsCommand(buffer->Start(), bufferSize, endPointId); } @@ -895,7 +1136,7 @@ class DiscoverBasicAttributes : public ModelCommand public: DiscoverBasicAttributes() : ModelCommand("discover", kBasicClusterId, 0x0c) { ModelCommand::AddArguments(); } - uint16_t EncodeCommand(PacketBuffer * buffer, uint16_t bufferSize, uint8_t endPointId) override + uint16_t EncodeCommand(const PacketBufferHandle & buffer, uint16_t bufferSize, uint8_t endPointId) override { return encodeBasicClusterDiscoverAttributes(buffer->Start(), bufferSize, endPointId); } @@ -909,20 +1150,20 @@ class DiscoverBasicAttributes : public ModelCommand }; /* - * Attribute ZCLVersion + * Attribute ZclVersion */ -class ReadBasicZCLVersion : public ModelCommand +class ReadBasicZclVersion : public ModelCommand { public: - ReadBasicZCLVersion() : ModelCommand("read", kBasicClusterId, 0x00) + ReadBasicZclVersion() : ModelCommand("read", kBasicClusterId, 0x00) { - AddArgument("attr-name", "zclversion"); + AddArgument("attr-name", "zcl-version"); ModelCommand::AddArguments(); } - uint16_t EncodeCommand(PacketBuffer * buffer, uint16_t bufferSize, uint8_t endPointId) override + uint16_t EncodeCommand(const PacketBufferHandle & buffer, uint16_t bufferSize, uint8_t endPointId) override { - return encodeBasicClusterReadZCLVersionAttribute(buffer->Start(), bufferSize, endPointId); + return encodeBasicClusterReadZclVersionAttribute(buffer->Start(), bufferSize, endPointId); } // Global Response: ReadAttributesResponse @@ -945,7 +1186,7 @@ class ReadBasicPowerSource : public ModelCommand ModelCommand::AddArguments(); } - uint16_t EncodeCommand(PacketBuffer * buffer, uint16_t bufferSize, uint8_t endPointId) override + uint16_t EncodeCommand(const PacketBufferHandle & buffer, uint16_t bufferSize, uint8_t endPointId) override { return encodeBasicClusterReadPowerSourceAttribute(buffer->Start(), bufferSize, endPointId); } @@ -986,9 +1227,8 @@ class ReadBasicPowerSource : public ModelCommand | * RemainingTime | 0x0002 | | * CurrentX | 0x0003 | | * CurrentY | 0x0004 | -| * ColorTemperatureMireds | 0x0007 | +| * ColorTemperature | 0x0007 | | * ColorMode | 0x0008 | -| * Options | 0x000F | | * NumberOfPrimaries | 0x0010 | | * Primary1X | 0x0011 | | * Primary1Y | 0x0012 | @@ -1013,11 +1253,9 @@ class ReadBasicPowerSource : public ModelCommand | * ColorLoopActive | 0x4002 | | * ColorLoopDirection | 0x4003 | | * ColorLoopTime | 0x4004 | -| * ColorLoopStartEnhancedHue | 0x4005 | -| * ColorLoopStoredEnhancedHue | 0x4006 | | * ColorCapabilities | 0x400A | -| * ColorTempPhysicalMinMireds | 0x400B | -| * ColorTempPhysicalMaxMireds | 0x400C | +| * ColorTempPhysicalMin | 0x400B | +| * ColorTempPhysicalMax | 0x400C | | * CoupleColorTempToLevelMinMireds | 0x400D | | * StartUpColorTemperatureMireds | 0x4010 | \*----------------------------------------------------------------------------*/ @@ -1037,7 +1275,7 @@ class ColorControlMoveColor : public ModelCommand ModelCommand::AddArguments(); } - uint16_t EncodeCommand(PacketBuffer * buffer, uint16_t bufferSize, uint8_t endPointId) override + uint16_t EncodeCommand(const PacketBufferHandle & buffer, uint16_t bufferSize, uint8_t endPointId) override { return encodeColorControlClusterMoveColorCommand(buffer->Start(), bufferSize, endPointId, mRateX, mRateY, mOptionsMask, mOptionsOverride); @@ -1067,17 +1305,17 @@ class ColorControlMoveColorTemperature : public ModelCommand { AddArgument("moveMode", 0, UINT8_MAX, &mMoveMode); AddArgument("rate", 0, UINT16_MAX, &mRate); - AddArgument("colorTemperatureMinimumMireds", 0, UINT16_MAX, &mColorTemperatureMinimumMireds); - AddArgument("colorTemperatureMaximumMireds", 0, UINT16_MAX, &mColorTemperatureMaximumMireds); + AddArgument("colorTemperatureMinimum", 0, UINT16_MAX, &mColorTemperatureMinimum); + AddArgument("colorTemperatureMaximum", 0, UINT16_MAX, &mColorTemperatureMaximum); AddArgument("optionsMask", 0, UINT8_MAX, &mOptionsMask); AddArgument("optionsOverride", 0, UINT8_MAX, &mOptionsOverride); ModelCommand::AddArguments(); } - uint16_t EncodeCommand(PacketBuffer * buffer, uint16_t bufferSize, uint8_t endPointId) override + uint16_t EncodeCommand(const PacketBufferHandle & buffer, uint16_t bufferSize, uint8_t endPointId) override { return encodeColorControlClusterMoveColorTemperatureCommand(buffer->Start(), bufferSize, endPointId, mMoveMode, mRate, - mColorTemperatureMinimumMireds, mColorTemperatureMaximumMireds, + mColorTemperatureMinimum, mColorTemperatureMaximum, mOptionsMask, mOptionsOverride); } @@ -1091,8 +1329,8 @@ class ColorControlMoveColorTemperature : public ModelCommand private: uint8_t mMoveMode; uint16_t mRate; - uint16_t mColorTemperatureMinimumMireds; - uint16_t mColorTemperatureMaximumMireds; + uint16_t mColorTemperatureMinimum; + uint16_t mColorTemperatureMaximum; uint8_t mOptionsMask; uint8_t mOptionsOverride; }; @@ -1112,7 +1350,7 @@ class ColorControlMoveHue : public ModelCommand ModelCommand::AddArguments(); } - uint16_t EncodeCommand(PacketBuffer * buffer, uint16_t bufferSize, uint8_t endPointId) override + uint16_t EncodeCommand(const PacketBufferHandle & buffer, uint16_t bufferSize, uint8_t endPointId) override { return encodeColorControlClusterMoveHueCommand(buffer->Start(), bufferSize, endPointId, mMoveMode, mRate, mOptionsMask, mOptionsOverride); @@ -1147,7 +1385,7 @@ class ColorControlMoveSaturation : public ModelCommand ModelCommand::AddArguments(); } - uint16_t EncodeCommand(PacketBuffer * buffer, uint16_t bufferSize, uint8_t endPointId) override + uint16_t EncodeCommand(const PacketBufferHandle & buffer, uint16_t bufferSize, uint8_t endPointId) override { return encodeColorControlClusterMoveSaturationCommand(buffer->Start(), bufferSize, endPointId, mMoveMode, mRate, mOptionsMask, mOptionsOverride); @@ -1183,7 +1421,7 @@ class ColorControlMoveToColor : public ModelCommand ModelCommand::AddArguments(); } - uint16_t EncodeCommand(PacketBuffer * buffer, uint16_t bufferSize, uint8_t endPointId) override + uint16_t EncodeCommand(const PacketBufferHandle & buffer, uint16_t bufferSize, uint8_t endPointId) override { return encodeColorControlClusterMoveToColorCommand(buffer->Start(), bufferSize, endPointId, mColorX, mColorY, mTransitionTime, mOptionsMask, mOptionsOverride); @@ -1212,17 +1450,17 @@ class ColorControlMoveToColorTemperature : public ModelCommand public: ColorControlMoveToColorTemperature() : ModelCommand("move-to-color-temperature", kColorControlClusterId, 0x0A) { - AddArgument("colorTemperatureMireds", 0, UINT16_MAX, &mColorTemperatureMireds); + AddArgument("colorTemperature", 0, UINT16_MAX, &mColorTemperature); AddArgument("transitionTime", 0, UINT16_MAX, &mTransitionTime); AddArgument("optionsMask", 0, UINT8_MAX, &mOptionsMask); AddArgument("optionsOverride", 0, UINT8_MAX, &mOptionsOverride); ModelCommand::AddArguments(); } - uint16_t EncodeCommand(PacketBuffer * buffer, uint16_t bufferSize, uint8_t endPointId) override + uint16_t EncodeCommand(const PacketBufferHandle & buffer, uint16_t bufferSize, uint8_t endPointId) override { - return encodeColorControlClusterMoveToColorTemperatureCommand( - buffer->Start(), bufferSize, endPointId, mColorTemperatureMireds, mTransitionTime, mOptionsMask, mOptionsOverride); + return encodeColorControlClusterMoveToColorTemperatureCommand(buffer->Start(), bufferSize, endPointId, mColorTemperature, + mTransitionTime, mOptionsMask, mOptionsOverride); } // Global Response: DefaultResponse @@ -1233,7 +1471,7 @@ class ColorControlMoveToColorTemperature : public ModelCommand } private: - uint16_t mColorTemperatureMireds; + uint16_t mColorTemperature; uint16_t mTransitionTime; uint8_t mOptionsMask; uint8_t mOptionsOverride; @@ -1255,7 +1493,7 @@ class ColorControlMoveToHue : public ModelCommand ModelCommand::AddArguments(); } - uint16_t EncodeCommand(PacketBuffer * buffer, uint16_t bufferSize, uint8_t endPointId) override + uint16_t EncodeCommand(const PacketBufferHandle & buffer, uint16_t bufferSize, uint8_t endPointId) override { return encodeColorControlClusterMoveToHueCommand(buffer->Start(), bufferSize, endPointId, mHue, mDirection, mTransitionTime, mOptionsMask, mOptionsOverride); @@ -1292,7 +1530,7 @@ class ColorControlMoveToHueAndSaturation : public ModelCommand ModelCommand::AddArguments(); } - uint16_t EncodeCommand(PacketBuffer * buffer, uint16_t bufferSize, uint8_t endPointId) override + uint16_t EncodeCommand(const PacketBufferHandle & buffer, uint16_t bufferSize, uint8_t endPointId) override { return encodeColorControlClusterMoveToHueAndSaturationCommand(buffer->Start(), bufferSize, endPointId, mHue, mSaturation, mTransitionTime, mOptionsMask, mOptionsOverride); @@ -1328,7 +1566,7 @@ class ColorControlMoveToSaturation : public ModelCommand ModelCommand::AddArguments(); } - uint16_t EncodeCommand(PacketBuffer * buffer, uint16_t bufferSize, uint8_t endPointId) override + uint16_t EncodeCommand(const PacketBufferHandle & buffer, uint16_t bufferSize, uint8_t endPointId) override { return encodeColorControlClusterMoveToSaturationCommand(buffer->Start(), bufferSize, endPointId, mSaturation, mTransitionTime, mOptionsMask, mOptionsOverride); @@ -1364,7 +1602,7 @@ class ColorControlStepColor : public ModelCommand ModelCommand::AddArguments(); } - uint16_t EncodeCommand(PacketBuffer * buffer, uint16_t bufferSize, uint8_t endPointId) override + uint16_t EncodeCommand(const PacketBufferHandle & buffer, uint16_t bufferSize, uint8_t endPointId) override { return encodeColorControlClusterStepColorCommand(buffer->Start(), bufferSize, endPointId, mStepX, mStepY, mTransitionTime, mOptionsMask, mOptionsOverride); @@ -1396,18 +1634,18 @@ class ColorControlStepColorTemperature : public ModelCommand AddArgument("stepMode", 0, UINT8_MAX, &mStepMode); AddArgument("stepSize", 0, UINT16_MAX, &mStepSize); AddArgument("transitionTime", 0, UINT16_MAX, &mTransitionTime); - AddArgument("colorTemperatureMinimumMireds", 0, UINT16_MAX, &mColorTemperatureMinimumMireds); - AddArgument("colorTemperatureMaximumMireds", 0, UINT16_MAX, &mColorTemperatureMaximumMireds); + AddArgument("colorTemperatureMinimum", 0, UINT16_MAX, &mColorTemperatureMinimum); + AddArgument("colorTemperatureMaximum", 0, UINT16_MAX, &mColorTemperatureMaximum); AddArgument("optionsMask", 0, UINT8_MAX, &mOptionsMask); AddArgument("optionsOverride", 0, UINT8_MAX, &mOptionsOverride); ModelCommand::AddArguments(); } - uint16_t EncodeCommand(PacketBuffer * buffer, uint16_t bufferSize, uint8_t endPointId) override + uint16_t EncodeCommand(const PacketBufferHandle & buffer, uint16_t bufferSize, uint8_t endPointId) override { return encodeColorControlClusterStepColorTemperatureCommand(buffer->Start(), bufferSize, endPointId, mStepMode, mStepSize, - mTransitionTime, mColorTemperatureMinimumMireds, - mColorTemperatureMaximumMireds, mOptionsMask, mOptionsOverride); + mTransitionTime, mColorTemperatureMinimum, + mColorTemperatureMaximum, mOptionsMask, mOptionsOverride); } // Global Response: DefaultResponse @@ -1421,8 +1659,8 @@ class ColorControlStepColorTemperature : public ModelCommand uint8_t mStepMode; uint16_t mStepSize; uint16_t mTransitionTime; - uint16_t mColorTemperatureMinimumMireds; - uint16_t mColorTemperatureMaximumMireds; + uint16_t mColorTemperatureMinimum; + uint16_t mColorTemperatureMaximum; uint8_t mOptionsMask; uint8_t mOptionsOverride; }; @@ -1443,7 +1681,7 @@ class ColorControlStepHue : public ModelCommand ModelCommand::AddArguments(); } - uint16_t EncodeCommand(PacketBuffer * buffer, uint16_t bufferSize, uint8_t endPointId) override + uint16_t EncodeCommand(const PacketBufferHandle & buffer, uint16_t bufferSize, uint8_t endPointId) override { return encodeColorControlClusterStepHueCommand(buffer->Start(), bufferSize, endPointId, mStepMode, mStepSize, mTransitionTime, mOptionsMask, mOptionsOverride); @@ -1480,7 +1718,7 @@ class ColorControlStepSaturation : public ModelCommand ModelCommand::AddArguments(); } - uint16_t EncodeCommand(PacketBuffer * buffer, uint16_t bufferSize, uint8_t endPointId) override + uint16_t EncodeCommand(const PacketBufferHandle & buffer, uint16_t bufferSize, uint8_t endPointId) override { return encodeColorControlClusterStepSaturationCommand(buffer->Start(), bufferSize, endPointId, mStepMode, mStepSize, mTransitionTime, mOptionsMask, mOptionsOverride); @@ -1514,7 +1752,7 @@ class ColorControlStopMoveStep : public ModelCommand ModelCommand::AddArguments(); } - uint16_t EncodeCommand(PacketBuffer * buffer, uint16_t bufferSize, uint8_t endPointId) override + uint16_t EncodeCommand(const PacketBufferHandle & buffer, uint16_t bufferSize, uint8_t endPointId) override { return encodeColorControlClusterStopMoveStepCommand(buffer->Start(), bufferSize, endPointId, mOptionsMask, mOptionsOverride); @@ -1540,7 +1778,7 @@ class DiscoverColorControlAttributes : public ModelCommand public: DiscoverColorControlAttributes() : ModelCommand("discover", kColorControlClusterId, 0x0c) { ModelCommand::AddArguments(); } - uint16_t EncodeCommand(PacketBuffer * buffer, uint16_t bufferSize, uint8_t endPointId) override + uint16_t EncodeCommand(const PacketBufferHandle & buffer, uint16_t bufferSize, uint8_t endPointId) override { return encodeColorControlClusterDiscoverAttributes(buffer->Start(), bufferSize, endPointId); } @@ -1565,7 +1803,7 @@ class ReadColorControlCurrentHue : public ModelCommand ModelCommand::AddArguments(); } - uint16_t EncodeCommand(PacketBuffer * buffer, uint16_t bufferSize, uint8_t endPointId) override + uint16_t EncodeCommand(const PacketBufferHandle & buffer, uint16_t bufferSize, uint8_t endPointId) override { return encodeColorControlClusterReadCurrentHueAttribute(buffer->Start(), bufferSize, endPointId); } @@ -1578,6 +1816,37 @@ class ReadColorControlCurrentHue : public ModelCommand } }; +class ReportColorControlCurrentHue : public ModelCommand +{ +public: + ReportColorControlCurrentHue() : ModelCommand("report", kColorControlClusterId, 0x06) + { + AddArgument("attr-name", "current-hue"); + AddArgument("min-interval", 0, UINT16_MAX, &mMinInterval); + AddArgument("max-interval", 0, UINT16_MAX, &mMaxInterval); + AddArgument("change", 0, UINT8_MAX, &mChange); + ModelCommand::AddArguments(); + } + + uint16_t EncodeCommand(const PacketBufferHandle & buffer, uint16_t bufferSize, uint8_t endPointId) override + { + return encodeColorControlClusterReportCurrentHueAttribute(buffer->Start(), bufferSize, endPointId, mMinInterval, + mMaxInterval, mChange); + } + + // Global Response: ConfigureReportingResponse + bool HandleGlobalResponse(uint8_t commandId, uint8_t * message, uint16_t messageLen) const override + { + ConfigureReportingResponse response; + return response.HandleCommandResponse(commandId, message, messageLen); + } + +private: + uint16_t mMinInterval; + uint16_t mMaxInterval; + uint8_t mChange; +}; + /* * Attribute CurrentSaturation */ @@ -1590,7 +1859,7 @@ class ReadColorControlCurrentSaturation : public ModelCommand ModelCommand::AddArguments(); } - uint16_t EncodeCommand(PacketBuffer * buffer, uint16_t bufferSize, uint8_t endPointId) override + uint16_t EncodeCommand(const PacketBufferHandle & buffer, uint16_t bufferSize, uint8_t endPointId) override { return encodeColorControlClusterReadCurrentSaturationAttribute(buffer->Start(), bufferSize, endPointId); } @@ -1603,6 +1872,37 @@ class ReadColorControlCurrentSaturation : public ModelCommand } }; +class ReportColorControlCurrentSaturation : public ModelCommand +{ +public: + ReportColorControlCurrentSaturation() : ModelCommand("report", kColorControlClusterId, 0x06) + { + AddArgument("attr-name", "current-saturation"); + AddArgument("min-interval", 0, UINT16_MAX, &mMinInterval); + AddArgument("max-interval", 0, UINT16_MAX, &mMaxInterval); + AddArgument("change", 0, UINT8_MAX, &mChange); + ModelCommand::AddArguments(); + } + + uint16_t EncodeCommand(const PacketBufferHandle & buffer, uint16_t bufferSize, uint8_t endPointId) override + { + return encodeColorControlClusterReportCurrentSaturationAttribute(buffer->Start(), bufferSize, endPointId, mMinInterval, + mMaxInterval, mChange); + } + + // Global Response: ConfigureReportingResponse + bool HandleGlobalResponse(uint8_t commandId, uint8_t * message, uint16_t messageLen) const override + { + ConfigureReportingResponse response; + return response.HandleCommandResponse(commandId, message, messageLen); + } + +private: + uint16_t mMinInterval; + uint16_t mMaxInterval; + uint8_t mChange; +}; + /* * Attribute RemainingTime */ @@ -1615,7 +1915,7 @@ class ReadColorControlRemainingTime : public ModelCommand ModelCommand::AddArguments(); } - uint16_t EncodeCommand(PacketBuffer * buffer, uint16_t bufferSize, uint8_t endPointId) override + uint16_t EncodeCommand(const PacketBufferHandle & buffer, uint16_t bufferSize, uint8_t endPointId) override { return encodeColorControlClusterReadRemainingTimeAttribute(buffer->Start(), bufferSize, endPointId); } @@ -1636,11 +1936,11 @@ class ReadColorControlCurrentX : public ModelCommand public: ReadColorControlCurrentX() : ModelCommand("read", kColorControlClusterId, 0x00) { - AddArgument("attr-name", "current-x"); + AddArgument("attr-name", "currentx"); ModelCommand::AddArguments(); } - uint16_t EncodeCommand(PacketBuffer * buffer, uint16_t bufferSize, uint8_t endPointId) override + uint16_t EncodeCommand(const PacketBufferHandle & buffer, uint16_t bufferSize, uint8_t endPointId) override { return encodeColorControlClusterReadCurrentXAttribute(buffer->Start(), bufferSize, endPointId); } @@ -1653,6 +1953,37 @@ class ReadColorControlCurrentX : public ModelCommand } }; +class ReportColorControlCurrentX : public ModelCommand +{ +public: + ReportColorControlCurrentX() : ModelCommand("report", kColorControlClusterId, 0x06) + { + AddArgument("attr-name", "currentx"); + AddArgument("min-interval", 0, UINT16_MAX, &mMinInterval); + AddArgument("max-interval", 0, UINT16_MAX, &mMaxInterval); + AddArgument("change", 0, UINT16_MAX, &mChange); + ModelCommand::AddArguments(); + } + + uint16_t EncodeCommand(const PacketBufferHandle & buffer, uint16_t bufferSize, uint8_t endPointId) override + { + return encodeColorControlClusterReportCurrentXAttribute(buffer->Start(), bufferSize, endPointId, mMinInterval, mMaxInterval, + mChange); + } + + // Global Response: ConfigureReportingResponse + bool HandleGlobalResponse(uint8_t commandId, uint8_t * message, uint16_t messageLen) const override + { + ConfigureReportingResponse response; + return response.HandleCommandResponse(commandId, message, messageLen); + } + +private: + uint16_t mMinInterval; + uint16_t mMaxInterval; + uint16_t mChange; +}; + /* * Attribute CurrentY */ @@ -1661,11 +1992,11 @@ class ReadColorControlCurrentY : public ModelCommand public: ReadColorControlCurrentY() : ModelCommand("read", kColorControlClusterId, 0x00) { - AddArgument("attr-name", "current-y"); + AddArgument("attr-name", "currenty"); ModelCommand::AddArguments(); } - uint16_t EncodeCommand(PacketBuffer * buffer, uint16_t bufferSize, uint8_t endPointId) override + uint16_t EncodeCommand(const PacketBufferHandle & buffer, uint16_t bufferSize, uint8_t endPointId) override { return encodeColorControlClusterReadCurrentYAttribute(buffer->Start(), bufferSize, endPointId); } @@ -1678,46 +2009,52 @@ class ReadColorControlCurrentY : public ModelCommand } }; -/* - * Attribute ColorTemperatureMireds - */ -class ReadColorControlColorTemperatureMireds : public ModelCommand +class ReportColorControlCurrentY : public ModelCommand { public: - ReadColorControlColorTemperatureMireds() : ModelCommand("read", kColorControlClusterId, 0x00) + ReportColorControlCurrentY() : ModelCommand("report", kColorControlClusterId, 0x06) { - AddArgument("attr-name", "color-temperature-mireds"); + AddArgument("attr-name", "currenty"); + AddArgument("min-interval", 0, UINT16_MAX, &mMinInterval); + AddArgument("max-interval", 0, UINT16_MAX, &mMaxInterval); + AddArgument("change", 0, UINT16_MAX, &mChange); ModelCommand::AddArguments(); } - uint16_t EncodeCommand(PacketBuffer * buffer, uint16_t bufferSize, uint8_t endPointId) override + uint16_t EncodeCommand(const PacketBufferHandle & buffer, uint16_t bufferSize, uint8_t endPointId) override { - return encodeColorControlClusterReadColorTemperatureMiredsAttribute(buffer->Start(), bufferSize, endPointId); + return encodeColorControlClusterReportCurrentYAttribute(buffer->Start(), bufferSize, endPointId, mMinInterval, mMaxInterval, + mChange); } - // Global Response: ReadAttributesResponse + // Global Response: ConfigureReportingResponse bool HandleGlobalResponse(uint8_t commandId, uint8_t * message, uint16_t messageLen) const override { - ReadAttributesResponse response; + ConfigureReportingResponse response; return response.HandleCommandResponse(commandId, message, messageLen); } + +private: + uint16_t mMinInterval; + uint16_t mMaxInterval; + uint16_t mChange; }; /* - * Attribute ColorMode + * Attribute ColorTemperature */ -class ReadColorControlColorMode : public ModelCommand +class ReadColorControlColorTemperature : public ModelCommand { public: - ReadColorControlColorMode() : ModelCommand("read", kColorControlClusterId, 0x00) + ReadColorControlColorTemperature() : ModelCommand("read", kColorControlClusterId, 0x00) { - AddArgument("attr-name", "color-mode"); + AddArgument("attr-name", "color-temperature-mireds"); ModelCommand::AddArguments(); } - uint16_t EncodeCommand(PacketBuffer * buffer, uint16_t bufferSize, uint8_t endPointId) override + uint16_t EncodeCommand(const PacketBufferHandle & buffer, uint16_t bufferSize, uint8_t endPointId) override { - return encodeColorControlClusterReadColorModeAttribute(buffer->Start(), bufferSize, endPointId); + return encodeColorControlClusterReadColorTemperatureAttribute(buffer->Start(), bufferSize, endPointId); } // Global Response: ReadAttributesResponse @@ -1728,55 +2065,60 @@ class ReadColorControlColorMode : public ModelCommand } }; -/* - * Attribute Options - */ -class ReadColorControlOptions : public ModelCommand +class ReportColorControlColorTemperature : public ModelCommand { public: - ReadColorControlOptions() : ModelCommand("read", kColorControlClusterId, 0x00) + ReportColorControlColorTemperature() : ModelCommand("report", kColorControlClusterId, 0x06) { - AddArgument("attr-name", "options"); + AddArgument("attr-name", "color-temperature-mireds"); + AddArgument("min-interval", 0, UINT16_MAX, &mMinInterval); + AddArgument("max-interval", 0, UINT16_MAX, &mMaxInterval); + AddArgument("change", 0, UINT16_MAX, &mChange); ModelCommand::AddArguments(); } - uint16_t EncodeCommand(PacketBuffer * buffer, uint16_t bufferSize, uint8_t endPointId) override + uint16_t EncodeCommand(const PacketBufferHandle & buffer, uint16_t bufferSize, uint8_t endPointId) override { - return encodeColorControlClusterReadOptionsAttribute(buffer->Start(), bufferSize, endPointId); + return encodeColorControlClusterReportColorTemperatureAttribute(buffer->Start(), bufferSize, endPointId, mMinInterval, + mMaxInterval, mChange); } - // Global Response: ReadAttributesResponse + // Global Response: ConfigureReportingResponse bool HandleGlobalResponse(uint8_t commandId, uint8_t * message, uint16_t messageLen) const override { - ReadAttributesResponse response; + ConfigureReportingResponse response; return response.HandleCommandResponse(commandId, message, messageLen); } + +private: + uint16_t mMinInterval; + uint16_t mMaxInterval; + uint16_t mChange; }; -class WriteColorControlOptions : public ModelCommand +/* + * Attribute ColorMode + */ +class ReadColorControlColorMode : public ModelCommand { public: - WriteColorControlOptions() : ModelCommand("write", kColorControlClusterId, 0x01) + ReadColorControlColorMode() : ModelCommand("read", kColorControlClusterId, 0x00) { - AddArgument("attr-name", "options"); - AddArgument("attr-value", 0, UINT8_MAX, &mOptions); + AddArgument("attr-name", "color-mode"); ModelCommand::AddArguments(); } - uint16_t EncodeCommand(PacketBuffer * buffer, uint16_t bufferSize, uint8_t endPointId) override + uint16_t EncodeCommand(const PacketBufferHandle & buffer, uint16_t bufferSize, uint8_t endPointId) override { - return encodeColorControlClusterWriteOptionsAttribute(buffer->Start(), bufferSize, endPointId, mOptions); + return encodeColorControlClusterReadColorModeAttribute(buffer->Start(), bufferSize, endPointId); } - // Global Response: WriteAttributesResponse + // Global Response: ReadAttributesResponse bool HandleGlobalResponse(uint8_t commandId, uint8_t * message, uint16_t messageLen) const override { - WriteAttributesResponse response; + ReadAttributesResponse response; return response.HandleCommandResponse(commandId, message, messageLen); } - -private: - uint8_t mOptions; }; /* @@ -1791,7 +2133,7 @@ class ReadColorControlNumberOfPrimaries : public ModelCommand ModelCommand::AddArguments(); } - uint16_t EncodeCommand(PacketBuffer * buffer, uint16_t bufferSize, uint8_t endPointId) override + uint16_t EncodeCommand(const PacketBufferHandle & buffer, uint16_t bufferSize, uint8_t endPointId) override { return encodeColorControlClusterReadNumberOfPrimariesAttribute(buffer->Start(), bufferSize, endPointId); } @@ -1816,7 +2158,7 @@ class ReadColorControlPrimary1X : public ModelCommand ModelCommand::AddArguments(); } - uint16_t EncodeCommand(PacketBuffer * buffer, uint16_t bufferSize, uint8_t endPointId) override + uint16_t EncodeCommand(const PacketBufferHandle & buffer, uint16_t bufferSize, uint8_t endPointId) override { return encodeColorControlClusterReadPrimary1XAttribute(buffer->Start(), bufferSize, endPointId); } @@ -1841,7 +2183,7 @@ class ReadColorControlPrimary1Y : public ModelCommand ModelCommand::AddArguments(); } - uint16_t EncodeCommand(PacketBuffer * buffer, uint16_t bufferSize, uint8_t endPointId) override + uint16_t EncodeCommand(const PacketBufferHandle & buffer, uint16_t bufferSize, uint8_t endPointId) override { return encodeColorControlClusterReadPrimary1YAttribute(buffer->Start(), bufferSize, endPointId); } @@ -1866,7 +2208,7 @@ class ReadColorControlPrimary1Intensity : public ModelCommand ModelCommand::AddArguments(); } - uint16_t EncodeCommand(PacketBuffer * buffer, uint16_t bufferSize, uint8_t endPointId) override + uint16_t EncodeCommand(const PacketBufferHandle & buffer, uint16_t bufferSize, uint8_t endPointId) override { return encodeColorControlClusterReadPrimary1IntensityAttribute(buffer->Start(), bufferSize, endPointId); } @@ -1891,7 +2233,7 @@ class ReadColorControlPrimary2X : public ModelCommand ModelCommand::AddArguments(); } - uint16_t EncodeCommand(PacketBuffer * buffer, uint16_t bufferSize, uint8_t endPointId) override + uint16_t EncodeCommand(const PacketBufferHandle & buffer, uint16_t bufferSize, uint8_t endPointId) override { return encodeColorControlClusterReadPrimary2XAttribute(buffer->Start(), bufferSize, endPointId); } @@ -1916,7 +2258,7 @@ class ReadColorControlPrimary2Y : public ModelCommand ModelCommand::AddArguments(); } - uint16_t EncodeCommand(PacketBuffer * buffer, uint16_t bufferSize, uint8_t endPointId) override + uint16_t EncodeCommand(const PacketBufferHandle & buffer, uint16_t bufferSize, uint8_t endPointId) override { return encodeColorControlClusterReadPrimary2YAttribute(buffer->Start(), bufferSize, endPointId); } @@ -1941,7 +2283,7 @@ class ReadColorControlPrimary2Intensity : public ModelCommand ModelCommand::AddArguments(); } - uint16_t EncodeCommand(PacketBuffer * buffer, uint16_t bufferSize, uint8_t endPointId) override + uint16_t EncodeCommand(const PacketBufferHandle & buffer, uint16_t bufferSize, uint8_t endPointId) override { return encodeColorControlClusterReadPrimary2IntensityAttribute(buffer->Start(), bufferSize, endPointId); } @@ -1966,7 +2308,7 @@ class ReadColorControlPrimary3X : public ModelCommand ModelCommand::AddArguments(); } - uint16_t EncodeCommand(PacketBuffer * buffer, uint16_t bufferSize, uint8_t endPointId) override + uint16_t EncodeCommand(const PacketBufferHandle & buffer, uint16_t bufferSize, uint8_t endPointId) override { return encodeColorControlClusterReadPrimary3XAttribute(buffer->Start(), bufferSize, endPointId); } @@ -1991,7 +2333,7 @@ class ReadColorControlPrimary3Y : public ModelCommand ModelCommand::AddArguments(); } - uint16_t EncodeCommand(PacketBuffer * buffer, uint16_t bufferSize, uint8_t endPointId) override + uint16_t EncodeCommand(const PacketBufferHandle & buffer, uint16_t bufferSize, uint8_t endPointId) override { return encodeColorControlClusterReadPrimary3YAttribute(buffer->Start(), bufferSize, endPointId); } @@ -2016,7 +2358,7 @@ class ReadColorControlPrimary3Intensity : public ModelCommand ModelCommand::AddArguments(); } - uint16_t EncodeCommand(PacketBuffer * buffer, uint16_t bufferSize, uint8_t endPointId) override + uint16_t EncodeCommand(const PacketBufferHandle & buffer, uint16_t bufferSize, uint8_t endPointId) override { return encodeColorControlClusterReadPrimary3IntensityAttribute(buffer->Start(), bufferSize, endPointId); } @@ -2041,7 +2383,7 @@ class ReadColorControlPrimary4X : public ModelCommand ModelCommand::AddArguments(); } - uint16_t EncodeCommand(PacketBuffer * buffer, uint16_t bufferSize, uint8_t endPointId) override + uint16_t EncodeCommand(const PacketBufferHandle & buffer, uint16_t bufferSize, uint8_t endPointId) override { return encodeColorControlClusterReadPrimary4XAttribute(buffer->Start(), bufferSize, endPointId); } @@ -2066,7 +2408,7 @@ class ReadColorControlPrimary4Y : public ModelCommand ModelCommand::AddArguments(); } - uint16_t EncodeCommand(PacketBuffer * buffer, uint16_t bufferSize, uint8_t endPointId) override + uint16_t EncodeCommand(const PacketBufferHandle & buffer, uint16_t bufferSize, uint8_t endPointId) override { return encodeColorControlClusterReadPrimary4YAttribute(buffer->Start(), bufferSize, endPointId); } @@ -2091,7 +2433,7 @@ class ReadColorControlPrimary4Intensity : public ModelCommand ModelCommand::AddArguments(); } - uint16_t EncodeCommand(PacketBuffer * buffer, uint16_t bufferSize, uint8_t endPointId) override + uint16_t EncodeCommand(const PacketBufferHandle & buffer, uint16_t bufferSize, uint8_t endPointId) override { return encodeColorControlClusterReadPrimary4IntensityAttribute(buffer->Start(), bufferSize, endPointId); } @@ -2116,7 +2458,7 @@ class ReadColorControlPrimary5X : public ModelCommand ModelCommand::AddArguments(); } - uint16_t EncodeCommand(PacketBuffer * buffer, uint16_t bufferSize, uint8_t endPointId) override + uint16_t EncodeCommand(const PacketBufferHandle & buffer, uint16_t bufferSize, uint8_t endPointId) override { return encodeColorControlClusterReadPrimary5XAttribute(buffer->Start(), bufferSize, endPointId); } @@ -2141,7 +2483,7 @@ class ReadColorControlPrimary5Y : public ModelCommand ModelCommand::AddArguments(); } - uint16_t EncodeCommand(PacketBuffer * buffer, uint16_t bufferSize, uint8_t endPointId) override + uint16_t EncodeCommand(const PacketBufferHandle & buffer, uint16_t bufferSize, uint8_t endPointId) override { return encodeColorControlClusterReadPrimary5YAttribute(buffer->Start(), bufferSize, endPointId); } @@ -2166,7 +2508,7 @@ class ReadColorControlPrimary5Intensity : public ModelCommand ModelCommand::AddArguments(); } - uint16_t EncodeCommand(PacketBuffer * buffer, uint16_t bufferSize, uint8_t endPointId) override + uint16_t EncodeCommand(const PacketBufferHandle & buffer, uint16_t bufferSize, uint8_t endPointId) override { return encodeColorControlClusterReadPrimary5IntensityAttribute(buffer->Start(), bufferSize, endPointId); } @@ -2191,7 +2533,7 @@ class ReadColorControlPrimary6X : public ModelCommand ModelCommand::AddArguments(); } - uint16_t EncodeCommand(PacketBuffer * buffer, uint16_t bufferSize, uint8_t endPointId) override + uint16_t EncodeCommand(const PacketBufferHandle & buffer, uint16_t bufferSize, uint8_t endPointId) override { return encodeColorControlClusterReadPrimary6XAttribute(buffer->Start(), bufferSize, endPointId); } @@ -2216,7 +2558,7 @@ class ReadColorControlPrimary6Y : public ModelCommand ModelCommand::AddArguments(); } - uint16_t EncodeCommand(PacketBuffer * buffer, uint16_t bufferSize, uint8_t endPointId) override + uint16_t EncodeCommand(const PacketBufferHandle & buffer, uint16_t bufferSize, uint8_t endPointId) override { return encodeColorControlClusterReadPrimary6YAttribute(buffer->Start(), bufferSize, endPointId); } @@ -2241,7 +2583,7 @@ class ReadColorControlPrimary6Intensity : public ModelCommand ModelCommand::AddArguments(); } - uint16_t EncodeCommand(PacketBuffer * buffer, uint16_t bufferSize, uint8_t endPointId) override + uint16_t EncodeCommand(const PacketBufferHandle & buffer, uint16_t bufferSize, uint8_t endPointId) override { return encodeColorControlClusterReadPrimary6IntensityAttribute(buffer->Start(), bufferSize, endPointId); } @@ -2266,7 +2608,7 @@ class ReadColorControlEnhancedCurrentHue : public ModelCommand ModelCommand::AddArguments(); } - uint16_t EncodeCommand(PacketBuffer * buffer, uint16_t bufferSize, uint8_t endPointId) override + uint16_t EncodeCommand(const PacketBufferHandle & buffer, uint16_t bufferSize, uint8_t endPointId) override { return encodeColorControlClusterReadEnhancedCurrentHueAttribute(buffer->Start(), bufferSize, endPointId); } @@ -2291,7 +2633,7 @@ class ReadColorControlEnhancedColorMode : public ModelCommand ModelCommand::AddArguments(); } - uint16_t EncodeCommand(PacketBuffer * buffer, uint16_t bufferSize, uint8_t endPointId) override + uint16_t EncodeCommand(const PacketBufferHandle & buffer, uint16_t bufferSize, uint8_t endPointId) override { return encodeColorControlClusterReadEnhancedColorModeAttribute(buffer->Start(), bufferSize, endPointId); } @@ -2316,7 +2658,7 @@ class ReadColorControlColorLoopActive : public ModelCommand ModelCommand::AddArguments(); } - uint16_t EncodeCommand(PacketBuffer * buffer, uint16_t bufferSize, uint8_t endPointId) override + uint16_t EncodeCommand(const PacketBufferHandle & buffer, uint16_t bufferSize, uint8_t endPointId) override { return encodeColorControlClusterReadColorLoopActiveAttribute(buffer->Start(), bufferSize, endPointId); } @@ -2341,7 +2683,7 @@ class ReadColorControlColorLoopDirection : public ModelCommand ModelCommand::AddArguments(); } - uint16_t EncodeCommand(PacketBuffer * buffer, uint16_t bufferSize, uint8_t endPointId) override + uint16_t EncodeCommand(const PacketBufferHandle & buffer, uint16_t bufferSize, uint8_t endPointId) override { return encodeColorControlClusterReadColorLoopDirectionAttribute(buffer->Start(), bufferSize, endPointId); } @@ -2366,7 +2708,7 @@ class ReadColorControlColorLoopTime : public ModelCommand ModelCommand::AddArguments(); } - uint16_t EncodeCommand(PacketBuffer * buffer, uint16_t bufferSize, uint8_t endPointId) override + uint16_t EncodeCommand(const PacketBufferHandle & buffer, uint16_t bufferSize, uint8_t endPointId) override { return encodeColorControlClusterReadColorLoopTimeAttribute(buffer->Start(), bufferSize, endPointId); } @@ -2379,56 +2721,6 @@ class ReadColorControlColorLoopTime : public ModelCommand } }; -/* - * Attribute ColorLoopStartEnhancedHue - */ -class ReadColorControlColorLoopStartEnhancedHue : public ModelCommand -{ -public: - ReadColorControlColorLoopStartEnhancedHue() : ModelCommand("read", kColorControlClusterId, 0x00) - { - AddArgument("attr-name", "color-loop-start-enhanced-hue"); - ModelCommand::AddArguments(); - } - - uint16_t EncodeCommand(PacketBuffer * buffer, uint16_t bufferSize, uint8_t endPointId) override - { - return encodeColorControlClusterReadColorLoopStartEnhancedHueAttribute(buffer->Start(), bufferSize, endPointId); - } - - // Global Response: ReadAttributesResponse - bool HandleGlobalResponse(uint8_t commandId, uint8_t * message, uint16_t messageLen) const override - { - ReadAttributesResponse response; - return response.HandleCommandResponse(commandId, message, messageLen); - } -}; - -/* - * Attribute ColorLoopStoredEnhancedHue - */ -class ReadColorControlColorLoopStoredEnhancedHue : public ModelCommand -{ -public: - ReadColorControlColorLoopStoredEnhancedHue() : ModelCommand("read", kColorControlClusterId, 0x00) - { - AddArgument("attr-name", "color-loop-stored-enhanced-hue"); - ModelCommand::AddArguments(); - } - - uint16_t EncodeCommand(PacketBuffer * buffer, uint16_t bufferSize, uint8_t endPointId) override - { - return encodeColorControlClusterReadColorLoopStoredEnhancedHueAttribute(buffer->Start(), bufferSize, endPointId); - } - - // Global Response: ReadAttributesResponse - bool HandleGlobalResponse(uint8_t commandId, uint8_t * message, uint16_t messageLen) const override - { - ReadAttributesResponse response; - return response.HandleCommandResponse(commandId, message, messageLen); - } -}; - /* * Attribute ColorCapabilities */ @@ -2441,7 +2733,7 @@ class ReadColorControlColorCapabilities : public ModelCommand ModelCommand::AddArguments(); } - uint16_t EncodeCommand(PacketBuffer * buffer, uint16_t bufferSize, uint8_t endPointId) override + uint16_t EncodeCommand(const PacketBufferHandle & buffer, uint16_t bufferSize, uint8_t endPointId) override { return encodeColorControlClusterReadColorCapabilitiesAttribute(buffer->Start(), bufferSize, endPointId); } @@ -2455,20 +2747,20 @@ class ReadColorControlColorCapabilities : public ModelCommand }; /* - * Attribute ColorTempPhysicalMinMireds + * Attribute ColorTempPhysicalMin */ -class ReadColorControlColorTempPhysicalMinMireds : public ModelCommand +class ReadColorControlColorTempPhysicalMin : public ModelCommand { public: - ReadColorControlColorTempPhysicalMinMireds() : ModelCommand("read", kColorControlClusterId, 0x00) + ReadColorControlColorTempPhysicalMin() : ModelCommand("read", kColorControlClusterId, 0x00) { - AddArgument("attr-name", "color-temp-physical-min-mireds"); + AddArgument("attr-name", "color-temp-physical-min"); ModelCommand::AddArguments(); } - uint16_t EncodeCommand(PacketBuffer * buffer, uint16_t bufferSize, uint8_t endPointId) override + uint16_t EncodeCommand(const PacketBufferHandle & buffer, uint16_t bufferSize, uint8_t endPointId) override { - return encodeColorControlClusterReadColorTempPhysicalMinMiredsAttribute(buffer->Start(), bufferSize, endPointId); + return encodeColorControlClusterReadColorTempPhysicalMinAttribute(buffer->Start(), bufferSize, endPointId); } // Global Response: ReadAttributesResponse @@ -2480,20 +2772,20 @@ class ReadColorControlColorTempPhysicalMinMireds : public ModelCommand }; /* - * Attribute ColorTempPhysicalMaxMireds + * Attribute ColorTempPhysicalMax */ -class ReadColorControlColorTempPhysicalMaxMireds : public ModelCommand +class ReadColorControlColorTempPhysicalMax : public ModelCommand { public: - ReadColorControlColorTempPhysicalMaxMireds() : ModelCommand("read", kColorControlClusterId, 0x00) + ReadColorControlColorTempPhysicalMax() : ModelCommand("read", kColorControlClusterId, 0x00) { - AddArgument("attr-name", "color-temp-physical-max-mireds"); + AddArgument("attr-name", "color-temp-physical-max"); ModelCommand::AddArguments(); } - uint16_t EncodeCommand(PacketBuffer * buffer, uint16_t bufferSize, uint8_t endPointId) override + uint16_t EncodeCommand(const PacketBufferHandle & buffer, uint16_t bufferSize, uint8_t endPointId) override { - return encodeColorControlClusterReadColorTempPhysicalMaxMiredsAttribute(buffer->Start(), bufferSize, endPointId); + return encodeColorControlClusterReadColorTempPhysicalMaxAttribute(buffer->Start(), bufferSize, endPointId); } // Global Response: ReadAttributesResponse @@ -2516,7 +2808,7 @@ class ReadColorControlCoupleColorTempToLevelMinMireds : public ModelCommand ModelCommand::AddArguments(); } - uint16_t EncodeCommand(PacketBuffer * buffer, uint16_t bufferSize, uint8_t endPointId) override + uint16_t EncodeCommand(const PacketBufferHandle & buffer, uint16_t bufferSize, uint8_t endPointId) override { return encodeColorControlClusterReadCoupleColorTempToLevelMinMiredsAttribute(buffer->Start(), bufferSize, endPointId); } @@ -2541,7 +2833,7 @@ class ReadColorControlStartUpColorTemperatureMireds : public ModelCommand ModelCommand::AddArguments(); } - uint16_t EncodeCommand(PacketBuffer * buffer, uint16_t bufferSize, uint8_t endPointId) override + uint16_t EncodeCommand(const PacketBufferHandle & buffer, uint16_t bufferSize, uint8_t endPointId) override { return encodeColorControlClusterReadStartUpColorTemperatureMiredsAttribute(buffer->Start(), bufferSize, endPointId); } @@ -2554,82 +2846,55 @@ class ReadColorControlStartUpColorTemperatureMireds : public ModelCommand } }; -class WriteColorControlStartUpColorTemperatureMireds : public ModelCommand -{ -public: - WriteColorControlStartUpColorTemperatureMireds() : ModelCommand("write", kColorControlClusterId, 0x01) - { - AddArgument("attr-name", "start-up-color-temperature-mireds"); - AddArgument("attr-value", 0, UINT16_MAX, &mStartUpColorTemperatureMireds); - ModelCommand::AddArguments(); - } - - uint16_t EncodeCommand(PacketBuffer * buffer, uint16_t bufferSize, uint8_t endPointId) override - { - return encodeColorControlClusterWriteStartUpColorTemperatureMiredsAttribute(buffer->Start(), bufferSize, endPointId, - mStartUpColorTemperatureMireds); - } - - // Global Response: WriteAttributesResponse - bool HandleGlobalResponse(uint8_t commandId, uint8_t * message, uint16_t messageLen) const override - { - WriteAttributesResponse response; - return response.HandleCommandResponse(commandId, message, messageLen); - } - -private: - uint16_t mStartUpColorTemperatureMireds; -}; - /*----------------------------------------------------------------------------*\ | Cluster DoorLock | 0x0101 | |------------------------------------------------------------------------------| | Responses: | | -| * ClearAllPINCodesResponse | 0x08 | -| * ClearAllRFIDCodesResponse | 0x19 | +| * ClearAllPinsResponse | 0x08 | +| * ClearAllRfidsResponse | 0x19 | | * ClearHolidayScheduleResponse | 0x13 | -| * ClearPINCodeResponse | 0x07 | -| * ClearRFIDCodeResponse | 0x18 | +| * ClearPinResponse | 0x07 | +| * ClearRfidResponse | 0x18 | | * ClearWeekdayScheduleResponse | 0x0D | -| * ClearYearDayScheduleResponse | 0x10 | +| * ClearYeardayScheduleResponse | 0x10 | | * GetHolidayScheduleResponse | 0x12 | -| * GetPINCodeResponse | 0x06 | -| * GetRFIDCodeResponse | 0x17 | +| * GetPinResponse | 0x06 | +| * GetRfidResponse | 0x17 | | * GetUserTypeResponse | 0x15 | | * GetWeekdayScheduleResponse | 0x0C | -| * GetYearDayScheduleResponse | 0x0F | +| * GetYeardayScheduleResponse | 0x0F | | * LockDoorResponse | 0x00 | | * SetHolidayScheduleResponse | 0x11 | -| * SetPINCodeResponse | 0x05 | -| * SetRFIDCodeResponse | 0x16 | +| * SetPinResponse | 0x05 | +| * SetRfidResponse | 0x16 | | * SetUserTypeResponse | 0x14 | | * SetWeekdayScheduleResponse | 0x0B | -| * SetYearDayScheduleResponse | 0x0E | +| * SetYeardayScheduleResponse | 0x0E | | * UnlockDoorResponse | 0x01 | | * UnlockWithTimeoutResponse | 0x03 | | | | |------------------------------------------------------------------------------| | Commands: | | -| * ClearAllPINCodes | 0x08 | -| * ClearAllRFIDCodes | 0x19 | +| * ClearAllPins | 0x08 | +| * ClearAllRfids | 0x19 | | * ClearHolidaySchedule | 0x13 | -| * ClearPINCode | 0x07 | -| * ClearRFIDCode | 0x18 | +| * ClearPin | 0x07 | +| * ClearRfid | 0x18 | | * ClearWeekdaySchedule | 0x0D | -| * ClearYearDaySchedule | 0x10 | +| * ClearYeardaySchedule | 0x10 | | * GetHolidaySchedule | 0x12 | -| * GetPINCode | 0x06 | -| * GetRFIDCode | 0x17 | +| * GetPin | 0x06 | +| * GetRfid | 0x17 | | * GetUserType | 0x15 | | * GetWeekdaySchedule | 0x0C | -| * GetYearDaySchedule | 0x0F | +| * GetYeardaySchedule | 0x0F | | * LockDoor | 0x00 | | * SetHolidaySchedule | 0x11 | -| * SetPINCode | 0x05 | -| * SetRFIDCode | 0x16 | +| * SetPin | 0x05 | +| * SetRfid | 0x16 | | * SetUserType | 0x14 | | * SetWeekdaySchedule | 0x0B | -| * SetYearDaySchedule | 0x0E | +| * SetYeardaySchedule | 0x0E | | * UnlockDoor | 0x01 | | * UnlockWithTimeout | 0x03 | |------------------------------------------------------------------------------| @@ -2640,40 +2905,42 @@ class WriteColorControlStartUpColorTemperatureMireds : public ModelCommand \*----------------------------------------------------------------------------*/ /* - * Command Response ClearAllPINCodesResponse + * Command Response ClearAllPinsResponse */ -class ClearAllPINCodesResponse : public ModelCommandResponse +class ClearAllPinsResponse : public ModelCommandResponse { public: - ClearAllPINCodesResponse() : ModelCommandResponse(0x08) {} + ClearAllPinsResponse() : ModelCommandResponse(0x08) {} bool HandleResponse(uint8_t * message, uint16_t messageLen) const override { bool success = true; - ChipLogProgress(chipTool, "ClearAllPINCodesResponse (0x08):"); + ChipLogProgress(chipTool, "ClearAllPinsResponse (0x08):"); CHECK_MESSAGE_LENGTH(1); - ChipLogProgress(chipTool, " %s: 0x%02x", "status", chip::Encoding::Read8(message)); // DrlkPassFailStatus + uint8_t status = chip::Encoding::Read8(message); // DrlkPassFailStatus + ChipLogProgress(chipTool, " %s: 0x%02x", "status", status); return success; } }; /* - * Command Response ClearAllRFIDCodesResponse + * Command Response ClearAllRfidsResponse */ -class ClearAllRFIDCodesResponse : public ModelCommandResponse +class ClearAllRfidsResponse : public ModelCommandResponse { public: - ClearAllRFIDCodesResponse() : ModelCommandResponse(0x19) {} + ClearAllRfidsResponse() : ModelCommandResponse(0x19) {} bool HandleResponse(uint8_t * message, uint16_t messageLen) const override { bool success = true; - ChipLogProgress(chipTool, "ClearAllRFIDCodesResponse (0x19):"); + ChipLogProgress(chipTool, "ClearAllRfidsResponse (0x19):"); CHECK_MESSAGE_LENGTH(1); - ChipLogProgress(chipTool, " %s: 0x%02x", "status", chip::Encoding::Read8(message)); // DrlkPassFailStatus + uint8_t status = chip::Encoding::Read8(message); // DrlkPassFailStatus + ChipLogProgress(chipTool, " %s: 0x%02x", "status", status); return success; } @@ -2693,47 +2960,50 @@ class ClearHolidayScheduleResponse : public ModelCommandResponse ChipLogProgress(chipTool, "ClearHolidayScheduleResponse (0x13):"); CHECK_MESSAGE_LENGTH(1); - ChipLogProgress(chipTool, " %s: 0x%02x", "status", chip::Encoding::Read8(message)); // DrlkPassFailStatus + uint8_t status = chip::Encoding::Read8(message); // DrlkPassFailStatus + ChipLogProgress(chipTool, " %s: 0x%02x", "status", status); return success; } }; /* - * Command Response ClearPINCodeResponse + * Command Response ClearPinResponse */ -class ClearPINCodeResponse : public ModelCommandResponse +class ClearPinResponse : public ModelCommandResponse { public: - ClearPINCodeResponse() : ModelCommandResponse(0x07) {} + ClearPinResponse() : ModelCommandResponse(0x07) {} bool HandleResponse(uint8_t * message, uint16_t messageLen) const override { bool success = true; - ChipLogProgress(chipTool, "ClearPINCodeResponse (0x07):"); + ChipLogProgress(chipTool, "ClearPinResponse (0x07):"); CHECK_MESSAGE_LENGTH(1); - ChipLogProgress(chipTool, " %s: 0x%02x", "status", chip::Encoding::Read8(message)); // DrlkPassFailStatus + uint8_t status = chip::Encoding::Read8(message); // DrlkPassFailStatus + ChipLogProgress(chipTool, " %s: 0x%02x", "status", status); return success; } }; /* - * Command Response ClearRFIDCodeResponse + * Command Response ClearRfidResponse */ -class ClearRFIDCodeResponse : public ModelCommandResponse +class ClearRfidResponse : public ModelCommandResponse { public: - ClearRFIDCodeResponse() : ModelCommandResponse(0x18) {} + ClearRfidResponse() : ModelCommandResponse(0x18) {} bool HandleResponse(uint8_t * message, uint16_t messageLen) const override { bool success = true; - ChipLogProgress(chipTool, "ClearRFIDCodeResponse (0x18):"); + ChipLogProgress(chipTool, "ClearRfidResponse (0x18):"); CHECK_MESSAGE_LENGTH(1); - ChipLogProgress(chipTool, " %s: 0x%02x", "status", chip::Encoding::Read8(message)); // DrlkPassFailStatus + uint8_t status = chip::Encoding::Read8(message); // DrlkPassFailStatus + ChipLogProgress(chipTool, " %s: 0x%02x", "status", status); return success; } @@ -2753,27 +3023,29 @@ class ClearWeekdayScheduleResponse : public ModelCommandResponse ChipLogProgress(chipTool, "ClearWeekdayScheduleResponse (0x0D):"); CHECK_MESSAGE_LENGTH(1); - ChipLogProgress(chipTool, " %s: 0x%02x", "status", chip::Encoding::Read8(message)); // DrlkPassFailStatus + uint8_t status = chip::Encoding::Read8(message); // DrlkPassFailStatus + ChipLogProgress(chipTool, " %s: 0x%02x", "status", status); return success; } }; /* - * Command Response ClearYearDayScheduleResponse + * Command Response ClearYeardayScheduleResponse */ -class ClearYearDayScheduleResponse : public ModelCommandResponse +class ClearYeardayScheduleResponse : public ModelCommandResponse { public: - ClearYearDayScheduleResponse() : ModelCommandResponse(0x10) {} + ClearYeardayScheduleResponse() : ModelCommandResponse(0x10) {} bool HandleResponse(uint8_t * message, uint16_t messageLen) const override { bool success = true; - ChipLogProgress(chipTool, "ClearYearDayScheduleResponse (0x10):"); + ChipLogProgress(chipTool, "ClearYeardayScheduleResponse (0x10):"); CHECK_MESSAGE_LENGTH(1); - ChipLogProgress(chipTool, " %s: 0x%02x", "status", chip::Encoding::Read8(message)); // DrlkPassFailStatus + uint8_t status = chip::Encoding::Read8(message); // DrlkPassFailStatus + ChipLogProgress(chipTool, " %s: 0x%02x", "status", status); return success; } @@ -2793,24 +3065,32 @@ class GetHolidayScheduleResponse : public ModelCommandResponse ChipLogProgress(chipTool, "GetHolidayScheduleResponse (0x12):"); CHECK_MESSAGE_LENGTH(1); - ChipLogProgress(chipTool, " %s: 0x%02x", "holidayScheduleId", chip::Encoding::Read8(message)); // uint8 + uint8_t holidayScheduleId = chip::Encoding::Read8(message); // uint8 + ChipLogProgress(chipTool, " %s: 0x%02x", "holidayScheduleId", holidayScheduleId); + CHECK_MESSAGE_LENGTH(1); uint8_t status = chip::Encoding::Read8(message); // zclStatus success = CheckStatus(status); + if (status == 0) { CHECK_MESSAGE_LENGTH(4); - ChipLogProgress(chipTool, " %s: 0x%08x", "localStartTime", chip::Encoding::LittleEndian::Read32(message)); // uint32 + uint32_t localStartTime = chip::Encoding::LittleEndian::Read32(message); // uint32 + ChipLogProgress(chipTool, " %s: 0x%08x", "localStartTime", localStartTime); } + if (status == 0) { CHECK_MESSAGE_LENGTH(4); - ChipLogProgress(chipTool, " %s: 0x%08x", "localEndTime", chip::Encoding::LittleEndian::Read32(message)); // uint32 + uint32_t localEndTime = chip::Encoding::LittleEndian::Read32(message); // uint32 + ChipLogProgress(chipTool, " %s: 0x%08x", "localEndTime", localEndTime); } + if (status == 0) { CHECK_MESSAGE_LENGTH(1); - ChipLogProgress(chipTool, " %s: 0x%02x", "operatingModeDuringHoliday", chip::Encoding::Read8(message)); // DrlkOperMode + uint8_t operatingModeDuringHoliday = chip::Encoding::Read8(message); // DrlkOperMode + ChipLogProgress(chipTool, " %s: 0x%02x", "operatingModeDuringHoliday", operatingModeDuringHoliday); } return success; @@ -2818,24 +3098,30 @@ class GetHolidayScheduleResponse : public ModelCommandResponse }; /* - * Command Response GetPINCodeResponse + * Command Response GetPinResponse */ -class GetPINCodeResponse : public ModelCommandResponse +class GetPinResponse : public ModelCommandResponse { public: - GetPINCodeResponse() : ModelCommandResponse(0x06) {} + GetPinResponse() : ModelCommandResponse(0x06) {} bool HandleResponse(uint8_t * message, uint16_t messageLen) const override { bool success = true; - ChipLogProgress(chipTool, "GetPINCodeResponse (0x06):"); + ChipLogProgress(chipTool, "GetPinResponse (0x06):"); CHECK_MESSAGE_LENGTH(2); - ChipLogProgress(chipTool, " %s: 0x%04x", "userId", chip::Encoding::LittleEndian::Read16(message)); // uint16 + uint16_t userId = chip::Encoding::LittleEndian::Read16(message); // uint16 + ChipLogProgress(chipTool, " %s: 0x%04x", "userId", userId); + CHECK_MESSAGE_LENGTH(1); - ChipLogProgress(chipTool, " %s: 0x%02x", "userStatus", chip::Encoding::Read8(message)); // DrlkUserStatus + uint8_t userStatus = chip::Encoding::Read8(message); // DrlkUserStatus + ChipLogProgress(chipTool, " %s: 0x%02x", "userStatus", userStatus); + CHECK_MESSAGE_LENGTH(1); - ChipLogProgress(chipTool, " %s: 0x%02x", "userType", chip::Encoding::Read8(message)); // DrlkUserType + uint8_t userType = chip::Encoding::Read8(message); // DrlkUserType + ChipLogProgress(chipTool, " %s: 0x%02x", "userType", userType); + CHECK_MESSAGE_LENGTH(1); { uint8_t codeLen = chip::Encoding::Read8(message); // octstr @@ -2852,24 +3138,30 @@ class GetPINCodeResponse : public ModelCommandResponse }; /* - * Command Response GetRFIDCodeResponse + * Command Response GetRfidResponse */ -class GetRFIDCodeResponse : public ModelCommandResponse +class GetRfidResponse : public ModelCommandResponse { public: - GetRFIDCodeResponse() : ModelCommandResponse(0x17) {} + GetRfidResponse() : ModelCommandResponse(0x17) {} bool HandleResponse(uint8_t * message, uint16_t messageLen) const override { bool success = true; - ChipLogProgress(chipTool, "GetRFIDCodeResponse (0x17):"); + ChipLogProgress(chipTool, "GetRfidResponse (0x17):"); CHECK_MESSAGE_LENGTH(2); - ChipLogProgress(chipTool, " %s: 0x%04x", "userId", chip::Encoding::LittleEndian::Read16(message)); // uint16 + uint16_t userId = chip::Encoding::LittleEndian::Read16(message); // uint16 + ChipLogProgress(chipTool, " %s: 0x%04x", "userId", userId); + CHECK_MESSAGE_LENGTH(1); - ChipLogProgress(chipTool, " %s: 0x%02x", "userStatus", chip::Encoding::Read8(message)); // DrlkUserStatus + uint8_t userStatus = chip::Encoding::Read8(message); // DrlkUserStatus + ChipLogProgress(chipTool, " %s: 0x%02x", "userStatus", userStatus); + CHECK_MESSAGE_LENGTH(1); - ChipLogProgress(chipTool, " %s: 0x%02x", "userType", chip::Encoding::Read8(message)); // DrlkUserType + uint8_t userType = chip::Encoding::Read8(message); // DrlkUserType + ChipLogProgress(chipTool, " %s: 0x%02x", "userType", userType); + CHECK_MESSAGE_LENGTH(1); { uint8_t rFIdCodeLen = chip::Encoding::Read8(message); // octstr @@ -2899,9 +3191,12 @@ class GetUserTypeResponse : public ModelCommandResponse ChipLogProgress(chipTool, "GetUserTypeResponse (0x15):"); CHECK_MESSAGE_LENGTH(2); - ChipLogProgress(chipTool, " %s: 0x%04x", "userId", chip::Encoding::LittleEndian::Read16(message)); // uint16 + uint16_t userId = chip::Encoding::LittleEndian::Read16(message); // uint16 + ChipLogProgress(chipTool, " %s: 0x%04x", "userId", userId); + CHECK_MESSAGE_LENGTH(1); - ChipLogProgress(chipTool, " %s: 0x%02x", "userType", chip::Encoding::Read8(message)); // DrlkUserType + uint8_t userType = chip::Encoding::Read8(message); // DrlkUserType + ChipLogProgress(chipTool, " %s: 0x%02x", "userType", userType); return success; } @@ -2921,36 +3216,50 @@ class GetWeekdayScheduleResponse : public ModelCommandResponse ChipLogProgress(chipTool, "GetWeekdayScheduleResponse (0x0C):"); CHECK_MESSAGE_LENGTH(1); - ChipLogProgress(chipTool, " %s: 0x%02x", "scheduleId", chip::Encoding::Read8(message)); // uint8 + uint8_t scheduleId = chip::Encoding::Read8(message); // uint8 + ChipLogProgress(chipTool, " %s: 0x%02x", "scheduleId", scheduleId); + CHECK_MESSAGE_LENGTH(2); - ChipLogProgress(chipTool, " %s: 0x%04x", "userId", chip::Encoding::LittleEndian::Read16(message)); // uint16 + uint16_t userId = chip::Encoding::LittleEndian::Read16(message); // uint16 + ChipLogProgress(chipTool, " %s: 0x%04x", "userId", userId); + CHECK_MESSAGE_LENGTH(1); uint8_t status = chip::Encoding::Read8(message); // zclStatus success = CheckStatus(status); + if (status == 0) { CHECK_MESSAGE_LENGTH(1); - ChipLogProgress(chipTool, " %s: 0x%02x", "daysMask", chip::Encoding::Read8(message)); // DrlkDaysMask + uint8_t daysMask = chip::Encoding::Read8(message); // DrlkDaysMask + ChipLogProgress(chipTool, " %s: 0x%02x", "daysMask", daysMask); } + if (status == 0) { CHECK_MESSAGE_LENGTH(1); - ChipLogProgress(chipTool, " %s: 0x%02x", "startHour", chip::Encoding::Read8(message)); // uint8 + uint8_t startHour = chip::Encoding::Read8(message); // uint8 + ChipLogProgress(chipTool, " %s: 0x%02x", "startHour", startHour); } + if (status == 0) { CHECK_MESSAGE_LENGTH(1); - ChipLogProgress(chipTool, " %s: 0x%02x", "startMinute", chip::Encoding::Read8(message)); // uint8 + uint8_t startMinute = chip::Encoding::Read8(message); // uint8 + ChipLogProgress(chipTool, " %s: 0x%02x", "startMinute", startMinute); } + if (status == 0) { CHECK_MESSAGE_LENGTH(1); - ChipLogProgress(chipTool, " %s: 0x%02x", "endHour", chip::Encoding::Read8(message)); // uint8 + uint8_t endHour = chip::Encoding::Read8(message); // uint8 + ChipLogProgress(chipTool, " %s: 0x%02x", "endHour", endHour); } + if (status == 0) { CHECK_MESSAGE_LENGTH(1); - ChipLogProgress(chipTool, " %s: 0x%02x", "endMinute", chip::Encoding::Read8(message)); // uint8 + uint8_t endMinute = chip::Encoding::Read8(message); // uint8 + ChipLogProgress(chipTool, " %s: 0x%02x", "endMinute", endMinute); } return success; @@ -2958,34 +3267,42 @@ class GetWeekdayScheduleResponse : public ModelCommandResponse }; /* - * Command Response GetYearDayScheduleResponse + * Command Response GetYeardayScheduleResponse */ -class GetYearDayScheduleResponse : public ModelCommandResponse +class GetYeardayScheduleResponse : public ModelCommandResponse { public: - GetYearDayScheduleResponse() : ModelCommandResponse(0x0F) {} + GetYeardayScheduleResponse() : ModelCommandResponse(0x0F) {} bool HandleResponse(uint8_t * message, uint16_t messageLen) const override { bool success = true; - ChipLogProgress(chipTool, "GetYearDayScheduleResponse (0x0F):"); + ChipLogProgress(chipTool, "GetYeardayScheduleResponse (0x0F):"); CHECK_MESSAGE_LENGTH(1); - ChipLogProgress(chipTool, " %s: 0x%02x", "scheduleId", chip::Encoding::Read8(message)); // uint8 + uint8_t scheduleId = chip::Encoding::Read8(message); // uint8 + ChipLogProgress(chipTool, " %s: 0x%02x", "scheduleId", scheduleId); + CHECK_MESSAGE_LENGTH(2); - ChipLogProgress(chipTool, " %s: 0x%04x", "userId", chip::Encoding::LittleEndian::Read16(message)); // uint16 + uint16_t userId = chip::Encoding::LittleEndian::Read16(message); // uint16 + ChipLogProgress(chipTool, " %s: 0x%04x", "userId", userId); + CHECK_MESSAGE_LENGTH(1); uint8_t status = chip::Encoding::Read8(message); // zclStatus success = CheckStatus(status); + if (status == 0) { CHECK_MESSAGE_LENGTH(4); - ChipLogProgress(chipTool, " %s: 0x%08x", "localStartTime", chip::Encoding::LittleEndian::Read32(message)); // uint32 + uint32_t localStartTime = chip::Encoding::LittleEndian::Read32(message); // uint32 + ChipLogProgress(chipTool, " %s: 0x%08x", "localStartTime", localStartTime); } + if (status == 0) { CHECK_MESSAGE_LENGTH(4); - ChipLogProgress(chipTool, " %s: 0x%08x", "localEndTime", chip::Encoding::LittleEndian::Read32(message)); // uint32 + uint32_t localEndTime = chip::Encoding::LittleEndian::Read32(message); // uint32 + ChipLogProgress(chipTool, " %s: 0x%08x", "localEndTime", localEndTime); } return success; @@ -3027,47 +3344,50 @@ class SetHolidayScheduleResponse : public ModelCommandResponse ChipLogProgress(chipTool, "SetHolidayScheduleResponse (0x11):"); CHECK_MESSAGE_LENGTH(1); - ChipLogProgress(chipTool, " %s: 0x%02x", "status", chip::Encoding::Read8(message)); // DrlkPassFailStatus + uint8_t status = chip::Encoding::Read8(message); // DrlkPassFailStatus + ChipLogProgress(chipTool, " %s: 0x%02x", "status", status); return success; } }; /* - * Command Response SetPINCodeResponse + * Command Response SetPinResponse */ -class SetPINCodeResponse : public ModelCommandResponse +class SetPinResponse : public ModelCommandResponse { public: - SetPINCodeResponse() : ModelCommandResponse(0x05) {} + SetPinResponse() : ModelCommandResponse(0x05) {} bool HandleResponse(uint8_t * message, uint16_t messageLen) const override { bool success = true; - ChipLogProgress(chipTool, "SetPINCodeResponse (0x05):"); + ChipLogProgress(chipTool, "SetPinResponse (0x05):"); CHECK_MESSAGE_LENGTH(1); - ChipLogProgress(chipTool, " %s: 0x%02x", "status", chip::Encoding::Read8(message)); // DrlkSetCodeStatus + uint8_t status = chip::Encoding::Read8(message); // DrlkSetCodeStatus + ChipLogProgress(chipTool, " %s: 0x%02x", "status", status); return success; } }; /* - * Command Response SetRFIDCodeResponse + * Command Response SetRfidResponse */ -class SetRFIDCodeResponse : public ModelCommandResponse +class SetRfidResponse : public ModelCommandResponse { public: - SetRFIDCodeResponse() : ModelCommandResponse(0x16) {} + SetRfidResponse() : ModelCommandResponse(0x16) {} bool HandleResponse(uint8_t * message, uint16_t messageLen) const override { bool success = true; - ChipLogProgress(chipTool, "SetRFIDCodeResponse (0x16):"); + ChipLogProgress(chipTool, "SetRfidResponse (0x16):"); CHECK_MESSAGE_LENGTH(1); - ChipLogProgress(chipTool, " %s: 0x%02x", "status", chip::Encoding::Read8(message)); // DrlkSetCodeStatus + uint8_t status = chip::Encoding::Read8(message); // DrlkSetCodeStatus + ChipLogProgress(chipTool, " %s: 0x%02x", "status", status); return success; } @@ -3087,7 +3407,8 @@ class SetUserTypeResponse : public ModelCommandResponse ChipLogProgress(chipTool, "SetUserTypeResponse (0x14):"); CHECK_MESSAGE_LENGTH(1); - ChipLogProgress(chipTool, " %s: 0x%02x", "status", chip::Encoding::Read8(message)); // DrlkPassFailStatus + uint8_t status = chip::Encoding::Read8(message); // DrlkPassFailStatus + ChipLogProgress(chipTool, " %s: 0x%02x", "status", status); return success; } @@ -3107,27 +3428,29 @@ class SetWeekdayScheduleResponse : public ModelCommandResponse ChipLogProgress(chipTool, "SetWeekdayScheduleResponse (0x0B):"); CHECK_MESSAGE_LENGTH(1); - ChipLogProgress(chipTool, " %s: 0x%02x", "status", chip::Encoding::Read8(message)); // DrlkPassFailStatus + uint8_t status = chip::Encoding::Read8(message); // DrlkPassFailStatus + ChipLogProgress(chipTool, " %s: 0x%02x", "status", status); return success; } }; /* - * Command Response SetYearDayScheduleResponse + * Command Response SetYeardayScheduleResponse */ -class SetYearDayScheduleResponse : public ModelCommandResponse +class SetYeardayScheduleResponse : public ModelCommandResponse { public: - SetYearDayScheduleResponse() : ModelCommandResponse(0x0E) {} + SetYeardayScheduleResponse() : ModelCommandResponse(0x0E) {} bool HandleResponse(uint8_t * message, uint16_t messageLen) const override { bool success = true; - ChipLogProgress(chipTool, "SetYearDayScheduleResponse (0x0E):"); + ChipLogProgress(chipTool, "SetYeardayScheduleResponse (0x0E):"); CHECK_MESSAGE_LENGTH(1); - ChipLogProgress(chipTool, " %s: 0x%02x", "status", chip::Encoding::Read8(message)); // DrlkPassFailStatus + uint8_t status = chip::Encoding::Read8(message); // DrlkPassFailStatus + ChipLogProgress(chipTool, " %s: 0x%02x", "status", status); return success; } @@ -3176,16 +3499,16 @@ class UnlockWithTimeoutResponse : public ModelCommandResponse }; /* - * Command ClearAllPINCodes + * Command ClearAllPins */ -class DoorLockClearAllPINCodes : public ModelCommand +class DoorLockClearAllPins : public ModelCommand { public: - DoorLockClearAllPINCodes() : ModelCommand("clear-all-pincodes", kDoorLockClusterId, 0x08) { ModelCommand::AddArguments(); } + DoorLockClearAllPins() : ModelCommand("clear-all-pins", kDoorLockClusterId, 0x08) { ModelCommand::AddArguments(); } - uint16_t EncodeCommand(PacketBuffer * buffer, uint16_t bufferSize, uint8_t endPointId) override + uint16_t EncodeCommand(const PacketBufferHandle & buffer, uint16_t bufferSize, uint8_t endPointId) override { - return encodeDoorLockClusterClearAllPINCodesCommand(buffer->Start(), bufferSize, endPointId); + return encodeDoorLockClusterClearAllPinsCommand(buffer->Start(), bufferSize, endPointId); } // Global Response: DefaultResponse @@ -3195,25 +3518,25 @@ class DoorLockClearAllPINCodes : public ModelCommand return response.HandleCommandResponse(commandId, message, messageLen); } - // Specific Response: ClearAllPINCodesResponse + // Specific Response: ClearAllPinsResponse bool HandleSpecificResponse(uint8_t commandId, uint8_t * message, uint16_t messageLen) const override { - ClearAllPINCodesResponse response; + ClearAllPinsResponse response; return response.HandleCommandResponse(commandId, message, messageLen); } }; /* - * Command ClearAllRFIDCodes + * Command ClearAllRfids */ -class DoorLockClearAllRFIDCodes : public ModelCommand +class DoorLockClearAllRfids : public ModelCommand { public: - DoorLockClearAllRFIDCodes() : ModelCommand("clear-all-rfidcodes", kDoorLockClusterId, 0x19) { ModelCommand::AddArguments(); } + DoorLockClearAllRfids() : ModelCommand("clear-all-rfids", kDoorLockClusterId, 0x19) { ModelCommand::AddArguments(); } - uint16_t EncodeCommand(PacketBuffer * buffer, uint16_t bufferSize, uint8_t endPointId) override + uint16_t EncodeCommand(const PacketBufferHandle & buffer, uint16_t bufferSize, uint8_t endPointId) override { - return encodeDoorLockClusterClearAllRFIDCodesCommand(buffer->Start(), bufferSize, endPointId); + return encodeDoorLockClusterClearAllRfidsCommand(buffer->Start(), bufferSize, endPointId); } // Global Response: DefaultResponse @@ -3223,10 +3546,10 @@ class DoorLockClearAllRFIDCodes : public ModelCommand return response.HandleCommandResponse(commandId, message, messageLen); } - // Specific Response: ClearAllRFIDCodesResponse + // Specific Response: ClearAllRfidsResponse bool HandleSpecificResponse(uint8_t commandId, uint8_t * message, uint16_t messageLen) const override { - ClearAllRFIDCodesResponse response; + ClearAllRfidsResponse response; return response.HandleCommandResponse(commandId, message, messageLen); } }; @@ -3243,7 +3566,7 @@ class DoorLockClearHolidaySchedule : public ModelCommand ModelCommand::AddArguments(); } - uint16_t EncodeCommand(PacketBuffer * buffer, uint16_t bufferSize, uint8_t endPointId) override + uint16_t EncodeCommand(const PacketBufferHandle & buffer, uint16_t bufferSize, uint8_t endPointId) override { return encodeDoorLockClusterClearHolidayScheduleCommand(buffer->Start(), bufferSize, endPointId, mHolidayScheduleID); } @@ -3267,20 +3590,20 @@ class DoorLockClearHolidaySchedule : public ModelCommand }; /* - * Command ClearPINCode + * Command ClearPin */ -class DoorLockClearPINCode : public ModelCommand +class DoorLockClearPin : public ModelCommand { public: - DoorLockClearPINCode() : ModelCommand("clear-pincode", kDoorLockClusterId, 0x07) + DoorLockClearPin() : ModelCommand("clear-pin", kDoorLockClusterId, 0x07) { AddArgument("userID", 0, UINT16_MAX, &mUserID); ModelCommand::AddArguments(); } - uint16_t EncodeCommand(PacketBuffer * buffer, uint16_t bufferSize, uint8_t endPointId) override + uint16_t EncodeCommand(const PacketBufferHandle & buffer, uint16_t bufferSize, uint8_t endPointId) override { - return encodeDoorLockClusterClearPINCodeCommand(buffer->Start(), bufferSize, endPointId, mUserID); + return encodeDoorLockClusterClearPinCommand(buffer->Start(), bufferSize, endPointId, mUserID); } // Global Response: DefaultResponse @@ -3290,10 +3613,10 @@ class DoorLockClearPINCode : public ModelCommand return response.HandleCommandResponse(commandId, message, messageLen); } - // Specific Response: ClearPINCodeResponse + // Specific Response: ClearPinResponse bool HandleSpecificResponse(uint8_t commandId, uint8_t * message, uint16_t messageLen) const override { - ClearPINCodeResponse response; + ClearPinResponse response; return response.HandleCommandResponse(commandId, message, messageLen); } @@ -3302,20 +3625,20 @@ class DoorLockClearPINCode : public ModelCommand }; /* - * Command ClearRFIDCode + * Command ClearRfid */ -class DoorLockClearRFIDCode : public ModelCommand +class DoorLockClearRfid : public ModelCommand { public: - DoorLockClearRFIDCode() : ModelCommand("clear-rfidcode", kDoorLockClusterId, 0x18) + DoorLockClearRfid() : ModelCommand("clear-rfid", kDoorLockClusterId, 0x18) { AddArgument("userID", 0, UINT16_MAX, &mUserID); ModelCommand::AddArguments(); } - uint16_t EncodeCommand(PacketBuffer * buffer, uint16_t bufferSize, uint8_t endPointId) override + uint16_t EncodeCommand(const PacketBufferHandle & buffer, uint16_t bufferSize, uint8_t endPointId) override { - return encodeDoorLockClusterClearRFIDCodeCommand(buffer->Start(), bufferSize, endPointId, mUserID); + return encodeDoorLockClusterClearRfidCommand(buffer->Start(), bufferSize, endPointId, mUserID); } // Global Response: DefaultResponse @@ -3325,10 +3648,10 @@ class DoorLockClearRFIDCode : public ModelCommand return response.HandleCommandResponse(commandId, message, messageLen); } - // Specific Response: ClearRFIDCodeResponse + // Specific Response: ClearRfidResponse bool HandleSpecificResponse(uint8_t commandId, uint8_t * message, uint16_t messageLen) const override { - ClearRFIDCodeResponse response; + ClearRfidResponse response; return response.HandleCommandResponse(commandId, message, messageLen); } @@ -3349,7 +3672,7 @@ class DoorLockClearWeekdaySchedule : public ModelCommand ModelCommand::AddArguments(); } - uint16_t EncodeCommand(PacketBuffer * buffer, uint16_t bufferSize, uint8_t endPointId) override + uint16_t EncodeCommand(const PacketBufferHandle & buffer, uint16_t bufferSize, uint8_t endPointId) override { return encodeDoorLockClusterClearWeekdayScheduleCommand(buffer->Start(), bufferSize, endPointId, mScheduleID, mUserID); } @@ -3374,21 +3697,21 @@ class DoorLockClearWeekdaySchedule : public ModelCommand }; /* - * Command ClearYearDaySchedule + * Command ClearYeardaySchedule */ -class DoorLockClearYearDaySchedule : public ModelCommand +class DoorLockClearYeardaySchedule : public ModelCommand { public: - DoorLockClearYearDaySchedule() : ModelCommand("clear-year-day-schedule", kDoorLockClusterId, 0x10) + DoorLockClearYeardaySchedule() : ModelCommand("clear-yearday-schedule", kDoorLockClusterId, 0x10) { AddArgument("scheduleID", 0, UINT8_MAX, &mScheduleID); AddArgument("userID", 0, UINT16_MAX, &mUserID); ModelCommand::AddArguments(); } - uint16_t EncodeCommand(PacketBuffer * buffer, uint16_t bufferSize, uint8_t endPointId) override + uint16_t EncodeCommand(const PacketBufferHandle & buffer, uint16_t bufferSize, uint8_t endPointId) override { - return encodeDoorLockClusterClearYearDayScheduleCommand(buffer->Start(), bufferSize, endPointId, mScheduleID, mUserID); + return encodeDoorLockClusterClearYeardayScheduleCommand(buffer->Start(), bufferSize, endPointId, mScheduleID, mUserID); } // Global Response: DefaultResponse @@ -3398,10 +3721,10 @@ class DoorLockClearYearDaySchedule : public ModelCommand return response.HandleCommandResponse(commandId, message, messageLen); } - // Specific Response: ClearYearDayScheduleResponse + // Specific Response: ClearYeardayScheduleResponse bool HandleSpecificResponse(uint8_t commandId, uint8_t * message, uint16_t messageLen) const override { - ClearYearDayScheduleResponse response; + ClearYeardayScheduleResponse response; return response.HandleCommandResponse(commandId, message, messageLen); } @@ -3422,7 +3745,7 @@ class DoorLockGetHolidaySchedule : public ModelCommand ModelCommand::AddArguments(); } - uint16_t EncodeCommand(PacketBuffer * buffer, uint16_t bufferSize, uint8_t endPointId) override + uint16_t EncodeCommand(const PacketBufferHandle & buffer, uint16_t bufferSize, uint8_t endPointId) override { return encodeDoorLockClusterGetHolidayScheduleCommand(buffer->Start(), bufferSize, endPointId, mHolidayScheduleID); } @@ -3446,20 +3769,20 @@ class DoorLockGetHolidaySchedule : public ModelCommand }; /* - * Command GetPINCode + * Command GetPin */ -class DoorLockGetPINCode : public ModelCommand +class DoorLockGetPin : public ModelCommand { public: - DoorLockGetPINCode() : ModelCommand("get-pincode", kDoorLockClusterId, 0x06) + DoorLockGetPin() : ModelCommand("get-pin", kDoorLockClusterId, 0x06) { AddArgument("userID", 0, UINT16_MAX, &mUserID); ModelCommand::AddArguments(); } - uint16_t EncodeCommand(PacketBuffer * buffer, uint16_t bufferSize, uint8_t endPointId) override + uint16_t EncodeCommand(const PacketBufferHandle & buffer, uint16_t bufferSize, uint8_t endPointId) override { - return encodeDoorLockClusterGetPINCodeCommand(buffer->Start(), bufferSize, endPointId, mUserID); + return encodeDoorLockClusterGetPinCommand(buffer->Start(), bufferSize, endPointId, mUserID); } // Global Response: DefaultResponse @@ -3469,10 +3792,10 @@ class DoorLockGetPINCode : public ModelCommand return response.HandleCommandResponse(commandId, message, messageLen); } - // Specific Response: GetPINCodeResponse + // Specific Response: GetPinResponse bool HandleSpecificResponse(uint8_t commandId, uint8_t * message, uint16_t messageLen) const override { - GetPINCodeResponse response; + GetPinResponse response; return response.HandleCommandResponse(commandId, message, messageLen); } @@ -3481,20 +3804,20 @@ class DoorLockGetPINCode : public ModelCommand }; /* - * Command GetRFIDCode + * Command GetRfid */ -class DoorLockGetRFIDCode : public ModelCommand +class DoorLockGetRfid : public ModelCommand { public: - DoorLockGetRFIDCode() : ModelCommand("get-rfidcode", kDoorLockClusterId, 0x17) + DoorLockGetRfid() : ModelCommand("get-rfid", kDoorLockClusterId, 0x17) { AddArgument("userID", 0, UINT16_MAX, &mUserID); ModelCommand::AddArguments(); } - uint16_t EncodeCommand(PacketBuffer * buffer, uint16_t bufferSize, uint8_t endPointId) override + uint16_t EncodeCommand(const PacketBufferHandle & buffer, uint16_t bufferSize, uint8_t endPointId) override { - return encodeDoorLockClusterGetRFIDCodeCommand(buffer->Start(), bufferSize, endPointId, mUserID); + return encodeDoorLockClusterGetRfidCommand(buffer->Start(), bufferSize, endPointId, mUserID); } // Global Response: DefaultResponse @@ -3504,10 +3827,10 @@ class DoorLockGetRFIDCode : public ModelCommand return response.HandleCommandResponse(commandId, message, messageLen); } - // Specific Response: GetRFIDCodeResponse + // Specific Response: GetRfidResponse bool HandleSpecificResponse(uint8_t commandId, uint8_t * message, uint16_t messageLen) const override { - GetRFIDCodeResponse response; + GetRfidResponse response; return response.HandleCommandResponse(commandId, message, messageLen); } @@ -3527,7 +3850,7 @@ class DoorLockGetUserType : public ModelCommand ModelCommand::AddArguments(); } - uint16_t EncodeCommand(PacketBuffer * buffer, uint16_t bufferSize, uint8_t endPointId) override + uint16_t EncodeCommand(const PacketBufferHandle & buffer, uint16_t bufferSize, uint8_t endPointId) override { return encodeDoorLockClusterGetUserTypeCommand(buffer->Start(), bufferSize, endPointId, mUserID); } @@ -3563,7 +3886,7 @@ class DoorLockGetWeekdaySchedule : public ModelCommand ModelCommand::AddArguments(); } - uint16_t EncodeCommand(PacketBuffer * buffer, uint16_t bufferSize, uint8_t endPointId) override + uint16_t EncodeCommand(const PacketBufferHandle & buffer, uint16_t bufferSize, uint8_t endPointId) override { return encodeDoorLockClusterGetWeekdayScheduleCommand(buffer->Start(), bufferSize, endPointId, mScheduleID, mUserID); } @@ -3588,21 +3911,21 @@ class DoorLockGetWeekdaySchedule : public ModelCommand }; /* - * Command GetYearDaySchedule + * Command GetYeardaySchedule */ -class DoorLockGetYearDaySchedule : public ModelCommand +class DoorLockGetYeardaySchedule : public ModelCommand { public: - DoorLockGetYearDaySchedule() : ModelCommand("get-year-day-schedule", kDoorLockClusterId, 0x0F) + DoorLockGetYeardaySchedule() : ModelCommand("get-yearday-schedule", kDoorLockClusterId, 0x0F) { AddArgument("scheduleID", 0, UINT8_MAX, &mScheduleID); AddArgument("userID", 0, UINT16_MAX, &mUserID); ModelCommand::AddArguments(); } - uint16_t EncodeCommand(PacketBuffer * buffer, uint16_t bufferSize, uint8_t endPointId) override + uint16_t EncodeCommand(const PacketBufferHandle & buffer, uint16_t bufferSize, uint8_t endPointId) override { - return encodeDoorLockClusterGetYearDayScheduleCommand(buffer->Start(), bufferSize, endPointId, mScheduleID, mUserID); + return encodeDoorLockClusterGetYeardayScheduleCommand(buffer->Start(), bufferSize, endPointId, mScheduleID, mUserID); } // Global Response: DefaultResponse @@ -3612,10 +3935,10 @@ class DoorLockGetYearDaySchedule : public ModelCommand return response.HandleCommandResponse(commandId, message, messageLen); } - // Specific Response: GetYearDayScheduleResponse + // Specific Response: GetYeardayScheduleResponse bool HandleSpecificResponse(uint8_t commandId, uint8_t * message, uint16_t messageLen) const override { - GetYearDayScheduleResponse response; + GetYeardayScheduleResponse response; return response.HandleCommandResponse(commandId, message, messageLen); } @@ -3636,7 +3959,7 @@ class DoorLockLockDoor : public ModelCommand ModelCommand::AddArguments(); } - uint16_t EncodeCommand(PacketBuffer * buffer, uint16_t bufferSize, uint8_t endPointId) override + uint16_t EncodeCommand(const PacketBufferHandle & buffer, uint16_t bufferSize, uint8_t endPointId) override { return encodeDoorLockClusterLockDoorCommand(buffer->Start(), bufferSize, endPointId, mPINOrRFIDCode); } @@ -3674,7 +3997,7 @@ class DoorLockSetHolidaySchedule : public ModelCommand ModelCommand::AddArguments(); } - uint16_t EncodeCommand(PacketBuffer * buffer, uint16_t bufferSize, uint8_t endPointId) override + uint16_t EncodeCommand(const PacketBufferHandle & buffer, uint16_t bufferSize, uint8_t endPointId) override { return encodeDoorLockClusterSetHolidayScheduleCommand(buffer->Start(), bufferSize, endPointId, mHolidayScheduleID, mLocalStartTime, mLocalEndTime, mOperatingModeDuringHoliday); @@ -3702,24 +4025,23 @@ class DoorLockSetHolidaySchedule : public ModelCommand }; /* - * Command SetPINCode + * Command SetPin */ -class DoorLockSetPINCode : public ModelCommand +class DoorLockSetPin : public ModelCommand { public: - DoorLockSetPINCode() : ModelCommand("set-pincode", kDoorLockClusterId, 0x05) + DoorLockSetPin() : ModelCommand("set-pin", kDoorLockClusterId, 0x05) { AddArgument("userID", 0, UINT16_MAX, &mUserID); AddArgument("userStatus", 0, UINT8_MAX, &mUserStatus); AddArgument("userType", 0, UINT8_MAX, &mUserType); - AddArgument("pIN", &mPIN); + AddArgument("pin", &mPIN); ModelCommand::AddArguments(); } - uint16_t EncodeCommand(PacketBuffer * buffer, uint16_t bufferSize, uint8_t endPointId) override + uint16_t EncodeCommand(const PacketBufferHandle & buffer, uint16_t bufferSize, uint8_t endPointId) override { - return encodeDoorLockClusterSetPINCodeCommand(buffer->Start(), bufferSize, endPointId, mUserID, mUserStatus, mUserType, - mPIN); + return encodeDoorLockClusterSetPinCommand(buffer->Start(), bufferSize, endPointId, mUserID, mUserStatus, mUserType, mPIN); } // Global Response: DefaultResponse @@ -3729,10 +4051,10 @@ class DoorLockSetPINCode : public ModelCommand return response.HandleCommandResponse(commandId, message, messageLen); } - // Specific Response: SetPINCodeResponse + // Specific Response: SetPinResponse bool HandleSpecificResponse(uint8_t commandId, uint8_t * message, uint16_t messageLen) const override { - SetPINCodeResponse response; + SetPinResponse response; return response.HandleCommandResponse(commandId, message, messageLen); } @@ -3744,24 +4066,23 @@ class DoorLockSetPINCode : public ModelCommand }; /* - * Command SetRFIDCode + * Command SetRfid */ -class DoorLockSetRFIDCode : public ModelCommand +class DoorLockSetRfid : public ModelCommand { public: - DoorLockSetRFIDCode() : ModelCommand("set-rfidcode", kDoorLockClusterId, 0x16) + DoorLockSetRfid() : ModelCommand("set-rfid", kDoorLockClusterId, 0x16) { AddArgument("userID", 0, UINT16_MAX, &mUserID); AddArgument("userStatus", 0, UINT8_MAX, &mUserStatus); AddArgument("userType", 0, UINT8_MAX, &mUserType); - AddArgument("rFIDCode", &mRFIDCode); + AddArgument("rfid", &mRFID); ModelCommand::AddArguments(); } - uint16_t EncodeCommand(PacketBuffer * buffer, uint16_t bufferSize, uint8_t endPointId) override + uint16_t EncodeCommand(const PacketBufferHandle & buffer, uint16_t bufferSize, uint8_t endPointId) override { - return encodeDoorLockClusterSetRFIDCodeCommand(buffer->Start(), bufferSize, endPointId, mUserID, mUserStatus, mUserType, - mRFIDCode); + return encodeDoorLockClusterSetRfidCommand(buffer->Start(), bufferSize, endPointId, mUserID, mUserStatus, mUserType, mRFID); } // Global Response: DefaultResponse @@ -3771,10 +4092,10 @@ class DoorLockSetRFIDCode : public ModelCommand return response.HandleCommandResponse(commandId, message, messageLen); } - // Specific Response: SetRFIDCodeResponse + // Specific Response: SetRfidResponse bool HandleSpecificResponse(uint8_t commandId, uint8_t * message, uint16_t messageLen) const override { - SetRFIDCodeResponse response; + SetRfidResponse response; return response.HandleCommandResponse(commandId, message, messageLen); } @@ -3782,7 +4103,7 @@ class DoorLockSetRFIDCode : public ModelCommand uint16_t mUserID; uint8_t mUserStatus; uint8_t mUserType; - char * mRFIDCode; + char * mRFID; }; /* @@ -3798,7 +4119,7 @@ class DoorLockSetUserType : public ModelCommand ModelCommand::AddArguments(); } - uint16_t EncodeCommand(PacketBuffer * buffer, uint16_t bufferSize, uint8_t endPointId) override + uint16_t EncodeCommand(const PacketBufferHandle & buffer, uint16_t bufferSize, uint8_t endPointId) override { return encodeDoorLockClusterSetUserTypeCommand(buffer->Start(), bufferSize, endPointId, mUserID, mUserType); } @@ -3840,7 +4161,7 @@ class DoorLockSetWeekdaySchedule : public ModelCommand ModelCommand::AddArguments(); } - uint16_t EncodeCommand(PacketBuffer * buffer, uint16_t bufferSize, uint8_t endPointId) override + uint16_t EncodeCommand(const PacketBufferHandle & buffer, uint16_t bufferSize, uint8_t endPointId) override { return encodeDoorLockClusterSetWeekdayScheduleCommand(buffer->Start(), bufferSize, endPointId, mScheduleID, mUserID, mDaysMask, mStartHour, mStartMinute, mEndHour, mEndMinute); @@ -3871,12 +4192,12 @@ class DoorLockSetWeekdaySchedule : public ModelCommand }; /* - * Command SetYearDaySchedule + * Command SetYeardaySchedule */ -class DoorLockSetYearDaySchedule : public ModelCommand +class DoorLockSetYeardaySchedule : public ModelCommand { public: - DoorLockSetYearDaySchedule() : ModelCommand("set-year-day-schedule", kDoorLockClusterId, 0x0E) + DoorLockSetYeardaySchedule() : ModelCommand("set-yearday-schedule", kDoorLockClusterId, 0x0E) { AddArgument("scheduleID", 0, UINT8_MAX, &mScheduleID); AddArgument("userID", 0, UINT16_MAX, &mUserID); @@ -3885,9 +4206,9 @@ class DoorLockSetYearDaySchedule : public ModelCommand ModelCommand::AddArguments(); } - uint16_t EncodeCommand(PacketBuffer * buffer, uint16_t bufferSize, uint8_t endPointId) override + uint16_t EncodeCommand(const PacketBufferHandle & buffer, uint16_t bufferSize, uint8_t endPointId) override { - return encodeDoorLockClusterSetYearDayScheduleCommand(buffer->Start(), bufferSize, endPointId, mScheduleID, mUserID, + return encodeDoorLockClusterSetYeardayScheduleCommand(buffer->Start(), bufferSize, endPointId, mScheduleID, mUserID, mLocalStartTime, mLocalEndTime); } @@ -3898,10 +4219,10 @@ class DoorLockSetYearDaySchedule : public ModelCommand return response.HandleCommandResponse(commandId, message, messageLen); } - // Specific Response: SetYearDayScheduleResponse + // Specific Response: SetYeardayScheduleResponse bool HandleSpecificResponse(uint8_t commandId, uint8_t * message, uint16_t messageLen) const override { - SetYearDayScheduleResponse response; + SetYeardayScheduleResponse response; return response.HandleCommandResponse(commandId, message, messageLen); } @@ -3924,7 +4245,7 @@ class DoorLockUnlockDoor : public ModelCommand ModelCommand::AddArguments(); } - uint16_t EncodeCommand(PacketBuffer * buffer, uint16_t bufferSize, uint8_t endPointId) override + uint16_t EncodeCommand(const PacketBufferHandle & buffer, uint16_t bufferSize, uint8_t endPointId) override { return encodeDoorLockClusterUnlockDoorCommand(buffer->Start(), bufferSize, endPointId, mPINOrRFIDCode); } @@ -3960,7 +4281,7 @@ class DoorLockUnlockWithTimeout : public ModelCommand ModelCommand::AddArguments(); } - uint16_t EncodeCommand(PacketBuffer * buffer, uint16_t bufferSize, uint8_t endPointId) override + uint16_t EncodeCommand(const PacketBufferHandle & buffer, uint16_t bufferSize, uint8_t endPointId) override { return encodeDoorLockClusterUnlockWithTimeoutCommand(buffer->Start(), bufferSize, endPointId, mTimeoutInSeconds, mPINOrRFIDCode); @@ -3993,7 +4314,7 @@ class DiscoverDoorLockAttributes : public ModelCommand public: DiscoverDoorLockAttributes() : ModelCommand("discover", kDoorLockClusterId, 0x0c) { ModelCommand::AddArguments(); } - uint16_t EncodeCommand(PacketBuffer * buffer, uint16_t bufferSize, uint8_t endPointId) override + uint16_t EncodeCommand(const PacketBufferHandle & buffer, uint16_t bufferSize, uint8_t endPointId) override { return encodeDoorLockClusterDiscoverAttributes(buffer->Start(), bufferSize, endPointId); } @@ -4018,7 +4339,7 @@ class ReadDoorLockLockState : public ModelCommand ModelCommand::AddArguments(); } - uint16_t EncodeCommand(PacketBuffer * buffer, uint16_t bufferSize, uint8_t endPointId) override + uint16_t EncodeCommand(const PacketBufferHandle & buffer, uint16_t bufferSize, uint8_t endPointId) override { return encodeDoorLockClusterReadLockStateAttribute(buffer->Start(), bufferSize, endPointId); } @@ -4031,6 +4352,34 @@ class ReadDoorLockLockState : public ModelCommand } }; +class ReportDoorLockLockState : public ModelCommand +{ +public: + ReportDoorLockLockState() : ModelCommand("report", kDoorLockClusterId, 0x06) + { + AddArgument("attr-name", "lock-state"); + AddArgument("min-interval", 0, UINT16_MAX, &mMinInterval); + AddArgument("max-interval", 0, UINT16_MAX, &mMaxInterval); + ModelCommand::AddArguments(); + } + + uint16_t EncodeCommand(const PacketBufferHandle & buffer, uint16_t bufferSize, uint8_t endPointId) override + { + return encodeDoorLockClusterReportLockStateAttribute(buffer->Start(), bufferSize, endPointId, mMinInterval, mMaxInterval); + } + + // Global Response: ConfigureReportingResponse + bool HandleGlobalResponse(uint8_t commandId, uint8_t * message, uint16_t messageLen) const override + { + ConfigureReportingResponse response; + return response.HandleCommandResponse(commandId, message, messageLen); + } + +private: + uint16_t mMinInterval; + uint16_t mMaxInterval; +}; + /* * Attribute LockType */ @@ -4043,7 +4392,7 @@ class ReadDoorLockLockType : public ModelCommand ModelCommand::AddArguments(); } - uint16_t EncodeCommand(PacketBuffer * buffer, uint16_t bufferSize, uint8_t endPointId) override + uint16_t EncodeCommand(const PacketBufferHandle & buffer, uint16_t bufferSize, uint8_t endPointId) override { return encodeDoorLockClusterReadLockTypeAttribute(buffer->Start(), bufferSize, endPointId); } @@ -4068,7 +4417,7 @@ class ReadDoorLockActuatorEnabled : public ModelCommand ModelCommand::AddArguments(); } - uint16_t EncodeCommand(PacketBuffer * buffer, uint16_t bufferSize, uint8_t endPointId) override + uint16_t EncodeCommand(const PacketBufferHandle & buffer, uint16_t bufferSize, uint8_t endPointId) override { return encodeDoorLockClusterReadActuatorEnabledAttribute(buffer->Start(), bufferSize, endPointId); } @@ -4117,9 +4466,12 @@ class AddGroupResponse : public ModelCommandResponse ChipLogProgress(chipTool, "AddGroupResponse (0x00):"); CHECK_MESSAGE_LENGTH(1); - ChipLogProgress(chipTool, " %s: 0x%02x", "status", chip::Encoding::Read8(message)); // enum8 + uint8_t status = chip::Encoding::Read8(message); // enum8 + ChipLogProgress(chipTool, " %s: 0x%02x", "status", status); + CHECK_MESSAGE_LENGTH(2); - ChipLogProgress(chipTool, " %s: 0x%04x", "groupId", chip::Encoding::LittleEndian::Read16(message)); // uint16 + uint16_t groupId = chip::Encoding::LittleEndian::Read16(message); // uint16 + ChipLogProgress(chipTool, " %s: 0x%04x", "groupId", groupId); return success; } @@ -4139,14 +4491,19 @@ class GetGroupMembershipResponse : public ModelCommandResponse ChipLogProgress(chipTool, "GetGroupMembershipResponse (0x02):"); CHECK_MESSAGE_LENGTH(1); - ChipLogProgress(chipTool, " %s: 0x%02x", "capacity", chip::Encoding::Read8(message)); // uint8 + uint8_t capacity = chip::Encoding::Read8(message); // uint8 + ChipLogProgress(chipTool, " %s: 0x%02x", "capacity", capacity); + CHECK_MESSAGE_LENGTH(1); - ChipLogProgress(chipTool, " %s: 0x%02x", "groupCount", chip::Encoding::Read8(message)); // uint8 + uint8_t groupCount = chip::Encoding::Read8(message); // uint8 + ChipLogProgress(chipTool, " %s: 0x%02x", "groupCount", groupCount); + // uint16_t uint16[] while (messageLen) { CHECK_MESSAGE_LENGTH(2); - ChipLogProgress(chipTool, " %s: 0x%04x", "groupList", chip::Encoding::LittleEndian::Read16(message)); // uint16 + uint16_t groupList = chip::Encoding::LittleEndian::Read16(message); // uint16 + ChipLogProgress(chipTool, " %s: 0x%04x", "groupList", groupList); } return success; @@ -4167,9 +4524,12 @@ class RemoveGroupResponse : public ModelCommandResponse ChipLogProgress(chipTool, "RemoveGroupResponse (0x03):"); CHECK_MESSAGE_LENGTH(1); - ChipLogProgress(chipTool, " %s: 0x%02x", "status", chip::Encoding::Read8(message)); // enum8 + uint8_t status = chip::Encoding::Read8(message); // enum8 + ChipLogProgress(chipTool, " %s: 0x%02x", "status", status); + CHECK_MESSAGE_LENGTH(2); - ChipLogProgress(chipTool, " %s: 0x%04x", "groupId", chip::Encoding::LittleEndian::Read16(message)); // uint16 + uint16_t groupId = chip::Encoding::LittleEndian::Read16(message); // uint16 + ChipLogProgress(chipTool, " %s: 0x%04x", "groupId", groupId); return success; } @@ -4189,9 +4549,13 @@ class ViewGroupResponse : public ModelCommandResponse ChipLogProgress(chipTool, "ViewGroupResponse (0x01):"); CHECK_MESSAGE_LENGTH(1); - ChipLogProgress(chipTool, " %s: 0x%02x", "status", chip::Encoding::Read8(message)); // enum8 + uint8_t status = chip::Encoding::Read8(message); // enum8 + ChipLogProgress(chipTool, " %s: 0x%02x", "status", status); + CHECK_MESSAGE_LENGTH(2); - ChipLogProgress(chipTool, " %s: 0x%04x", "groupId", chip::Encoding::LittleEndian::Read16(message)); // uint16 + uint16_t groupId = chip::Encoding::LittleEndian::Read16(message); // uint16 + ChipLogProgress(chipTool, " %s: 0x%04x", "groupId", groupId); + CHECK_MESSAGE_LENGTH(1); { uint8_t groupNameLen = chip::Encoding::Read8(message); // string @@ -4220,7 +4584,7 @@ class GroupsAddGroup : public ModelCommand ModelCommand::AddArguments(); } - uint16_t EncodeCommand(PacketBuffer * buffer, uint16_t bufferSize, uint8_t endPointId) override + uint16_t EncodeCommand(const PacketBufferHandle & buffer, uint16_t bufferSize, uint8_t endPointId) override { return encodeGroupsClusterAddGroupCommand(buffer->Start(), bufferSize, endPointId, mGroupId, mGroupName); } @@ -4257,7 +4621,7 @@ class GroupsAddGroupIfIdentifying : public ModelCommand ModelCommand::AddArguments(); } - uint16_t EncodeCommand(PacketBuffer * buffer, uint16_t bufferSize, uint8_t endPointId) override + uint16_t EncodeCommand(const PacketBufferHandle & buffer, uint16_t bufferSize, uint8_t endPointId) override { return encodeGroupsClusterAddGroupIfIdentifyingCommand(buffer->Start(), bufferSize, endPointId, mGroupId, mGroupName); } @@ -4289,7 +4653,7 @@ class GroupsGetGroupMembership : public ModelCommand ModelCommand::AddArguments(); } - uint16_t EncodeCommand(PacketBuffer * buffer, uint16_t bufferSize, uint8_t endPointId) override + uint16_t EncodeCommand(const PacketBufferHandle & buffer, uint16_t bufferSize, uint8_t endPointId) override { return encodeGroupsClusterGetGroupMembershipCommand(buffer->Start(), bufferSize, endPointId, mGroupCount, mGroupList); } @@ -4321,7 +4685,7 @@ class GroupsRemoveAllGroups : public ModelCommand public: GroupsRemoveAllGroups() : ModelCommand("remove-all-groups", kGroupsClusterId, 0x04) { ModelCommand::AddArguments(); } - uint16_t EncodeCommand(PacketBuffer * buffer, uint16_t bufferSize, uint8_t endPointId) override + uint16_t EncodeCommand(const PacketBufferHandle & buffer, uint16_t bufferSize, uint8_t endPointId) override { return encodeGroupsClusterRemoveAllGroupsCommand(buffer->Start(), bufferSize, endPointId); } @@ -4346,7 +4710,7 @@ class GroupsRemoveGroup : public ModelCommand ModelCommand::AddArguments(); } - uint16_t EncodeCommand(PacketBuffer * buffer, uint16_t bufferSize, uint8_t endPointId) override + uint16_t EncodeCommand(const PacketBufferHandle & buffer, uint16_t bufferSize, uint8_t endPointId) override { return encodeGroupsClusterRemoveGroupCommand(buffer->Start(), bufferSize, endPointId, mGroupId); } @@ -4381,7 +4745,7 @@ class GroupsViewGroup : public ModelCommand ModelCommand::AddArguments(); } - uint16_t EncodeCommand(PacketBuffer * buffer, uint16_t bufferSize, uint8_t endPointId) override + uint16_t EncodeCommand(const PacketBufferHandle & buffer, uint16_t bufferSize, uint8_t endPointId) override { return encodeGroupsClusterViewGroupCommand(buffer->Start(), bufferSize, endPointId, mGroupId); } @@ -4412,7 +4776,7 @@ class DiscoverGroupsAttributes : public ModelCommand public: DiscoverGroupsAttributes() : ModelCommand("discover", kGroupsClusterId, 0x0c) { ModelCommand::AddArguments(); } - uint16_t EncodeCommand(PacketBuffer * buffer, uint16_t bufferSize, uint8_t endPointId) override + uint16_t EncodeCommand(const PacketBufferHandle & buffer, uint16_t bufferSize, uint8_t endPointId) override { return encodeGroupsClusterDiscoverAttributes(buffer->Start(), bufferSize, endPointId); } @@ -4437,7 +4801,7 @@ class ReadGroupsNameSupport : public ModelCommand ModelCommand::AddArguments(); } - uint16_t EncodeCommand(PacketBuffer * buffer, uint16_t bufferSize, uint8_t endPointId) override + uint16_t EncodeCommand(const PacketBufferHandle & buffer, uint16_t bufferSize, uint8_t endPointId) override { return encodeGroupsClusterReadNameSupportAttribute(buffer->Start(), bufferSize, endPointId); } @@ -4451,7 +4815,7 @@ class ReadGroupsNameSupport : public ModelCommand }; /*----------------------------------------------------------------------------*\ -| Cluster IASZone | 0x0500 | +| Cluster IasZone | 0x0500 | |------------------------------------------------------------------------------| | Responses: | | | | | @@ -4462,21 +4826,21 @@ class ReadGroupsNameSupport : public ModelCommand | * ZoneState | 0x0000 | | * ZoneType | 0x0001 | | * ZoneStatus | 0x0002 | -| * IASCIEAddress | 0x0010 | +| * IasCieAddress | 0x0010 | | * ZoneID | 0x0011 | \*----------------------------------------------------------------------------*/ /* * Discover attributes */ -class DiscoverIASZoneAttributes : public ModelCommand +class DiscoverIasZoneAttributes : public ModelCommand { public: - DiscoverIASZoneAttributes() : ModelCommand("discover", kIASZoneClusterId, 0x0c) { ModelCommand::AddArguments(); } + DiscoverIasZoneAttributes() : ModelCommand("discover", kIasZoneClusterId, 0x0c) { ModelCommand::AddArguments(); } - uint16_t EncodeCommand(PacketBuffer * buffer, uint16_t bufferSize, uint8_t endPointId) override + uint16_t EncodeCommand(const PacketBufferHandle & buffer, uint16_t bufferSize, uint8_t endPointId) override { - return encodeIASZoneClusterDiscoverAttributes(buffer->Start(), bufferSize, endPointId); + return encodeIasZoneClusterDiscoverAttributes(buffer->Start(), bufferSize, endPointId); } // Global Response: DiscoverAttributesResponse @@ -4490,18 +4854,18 @@ class DiscoverIASZoneAttributes : public ModelCommand /* * Attribute ZoneState */ -class ReadIASZoneZoneState : public ModelCommand +class ReadIasZoneZoneState : public ModelCommand { public: - ReadIASZoneZoneState() : ModelCommand("read", kIASZoneClusterId, 0x00) + ReadIasZoneZoneState() : ModelCommand("read", kIasZoneClusterId, 0x00) { AddArgument("attr-name", "zone-state"); ModelCommand::AddArguments(); } - uint16_t EncodeCommand(PacketBuffer * buffer, uint16_t bufferSize, uint8_t endPointId) override + uint16_t EncodeCommand(const PacketBufferHandle & buffer, uint16_t bufferSize, uint8_t endPointId) override { - return encodeIASZoneClusterReadZoneStateAttribute(buffer->Start(), bufferSize, endPointId); + return encodeIasZoneClusterReadZoneStateAttribute(buffer->Start(), bufferSize, endPointId); } // Global Response: ReadAttributesResponse @@ -4515,18 +4879,18 @@ class ReadIASZoneZoneState : public ModelCommand /* * Attribute ZoneType */ -class ReadIASZoneZoneType : public ModelCommand +class ReadIasZoneZoneType : public ModelCommand { public: - ReadIASZoneZoneType() : ModelCommand("read", kIASZoneClusterId, 0x00) + ReadIasZoneZoneType() : ModelCommand("read", kIasZoneClusterId, 0x00) { AddArgument("attr-name", "zone-type"); ModelCommand::AddArguments(); } - uint16_t EncodeCommand(PacketBuffer * buffer, uint16_t bufferSize, uint8_t endPointId) override + uint16_t EncodeCommand(const PacketBufferHandle & buffer, uint16_t bufferSize, uint8_t endPointId) override { - return encodeIASZoneClusterReadZoneTypeAttribute(buffer->Start(), bufferSize, endPointId); + return encodeIasZoneClusterReadZoneTypeAttribute(buffer->Start(), bufferSize, endPointId); } // Global Response: ReadAttributesResponse @@ -4540,18 +4904,18 @@ class ReadIASZoneZoneType : public ModelCommand /* * Attribute ZoneStatus */ -class ReadIASZoneZoneStatus : public ModelCommand +class ReadIasZoneZoneStatus : public ModelCommand { public: - ReadIASZoneZoneStatus() : ModelCommand("read", kIASZoneClusterId, 0x00) + ReadIasZoneZoneStatus() : ModelCommand("read", kIasZoneClusterId, 0x00) { AddArgument("attr-name", "zone-status"); ModelCommand::AddArguments(); } - uint16_t EncodeCommand(PacketBuffer * buffer, uint16_t bufferSize, uint8_t endPointId) override + uint16_t EncodeCommand(const PacketBufferHandle & buffer, uint16_t bufferSize, uint8_t endPointId) override { - return encodeIASZoneClusterReadZoneStatusAttribute(buffer->Start(), bufferSize, endPointId); + return encodeIasZoneClusterReadZoneStatusAttribute(buffer->Start(), bufferSize, endPointId); } // Global Response: ReadAttributesResponse @@ -4563,20 +4927,20 @@ class ReadIASZoneZoneStatus : public ModelCommand }; /* - * Attribute IASCIEAddress + * Attribute IasCieAddress */ -class ReadIASZoneIASCIEAddress : public ModelCommand +class ReadIasZoneIasCieAddress : public ModelCommand { public: - ReadIASZoneIASCIEAddress() : ModelCommand("read", kIASZoneClusterId, 0x00) + ReadIasZoneIasCieAddress() : ModelCommand("read", kIasZoneClusterId, 0x00) { - AddArgument("attr-name", "iascieaddress"); + AddArgument("attr-name", "ias-cie-address"); ModelCommand::AddArguments(); } - uint16_t EncodeCommand(PacketBuffer * buffer, uint16_t bufferSize, uint8_t endPointId) override + uint16_t EncodeCommand(const PacketBufferHandle & buffer, uint16_t bufferSize, uint8_t endPointId) override { - return encodeIASZoneClusterReadIASCIEAddressAttribute(buffer->Start(), bufferSize, endPointId); + return encodeIasZoneClusterReadIasCieAddressAttribute(buffer->Start(), bufferSize, endPointId); } // Global Response: ReadAttributesResponse @@ -4587,19 +4951,19 @@ class ReadIASZoneIASCIEAddress : public ModelCommand } }; -class WriteIASZoneIASCIEAddress : public ModelCommand +class WriteIasZoneIasCieAddress : public ModelCommand { public: - WriteIASZoneIASCIEAddress() : ModelCommand("write", kIASZoneClusterId, 0x01) + WriteIasZoneIasCieAddress() : ModelCommand("write", kIasZoneClusterId, 0x01) { - AddArgument("attr-name", "iascieaddress"); - AddArgument("attr-value", 0, UINT64_MAX, &mIASCIEAddress); + AddArgument("attr-name", "ias-cie-address"); + AddArgument("attr-value", 0, UINT64_MAX, &mIasCieAddress); ModelCommand::AddArguments(); } - uint16_t EncodeCommand(PacketBuffer * buffer, uint16_t bufferSize, uint8_t endPointId) override + uint16_t EncodeCommand(const PacketBufferHandle & buffer, uint16_t bufferSize, uint8_t endPointId) override { - return encodeIASZoneClusterWriteIASCIEAddressAttribute(buffer->Start(), bufferSize, endPointId, mIASCIEAddress); + return encodeIasZoneClusterWriteIasCieAddressAttribute(buffer->Start(), bufferSize, endPointId, mIasCieAddress); } // Global Response: WriteAttributesResponse @@ -4610,24 +4974,24 @@ class WriteIASZoneIASCIEAddress : public ModelCommand } private: - uint64_t mIASCIEAddress; + uint64_t mIasCieAddress; }; /* * Attribute ZoneID */ -class ReadIASZoneZoneID : public ModelCommand +class ReadIasZoneZoneID : public ModelCommand { public: - ReadIASZoneZoneID() : ModelCommand("read", kIASZoneClusterId, 0x00) + ReadIasZoneZoneID() : ModelCommand("read", kIasZoneClusterId, 0x00) { AddArgument("attr-name", "zone-id"); ModelCommand::AddArguments(); } - uint16_t EncodeCommand(PacketBuffer * buffer, uint16_t bufferSize, uint8_t endPointId) override + uint16_t EncodeCommand(const PacketBufferHandle & buffer, uint16_t bufferSize, uint8_t endPointId) override { - return encodeIASZoneClusterReadZoneIDAttribute(buffer->Start(), bufferSize, endPointId); + return encodeIasZoneClusterReadZoneIdAttribute(buffer->Start(), bufferSize, endPointId); } // Global Response: ReadAttributesResponse @@ -4667,7 +5031,8 @@ class IdentifyQueryResponse : public ModelCommandResponse ChipLogProgress(chipTool, "IdentifyQueryResponse (0x00):"); CHECK_MESSAGE_LENGTH(2); - ChipLogProgress(chipTool, " %s: 0x%04x", "timeout", chip::Encoding::LittleEndian::Read16(message)); // uint16 + uint16_t timeout = chip::Encoding::LittleEndian::Read16(message); // uint16 + ChipLogProgress(chipTool, " %s: 0x%04x", "timeout", timeout); return success; } @@ -4685,7 +5050,7 @@ class IdentifyIdentify : public ModelCommand ModelCommand::AddArguments(); } - uint16_t EncodeCommand(PacketBuffer * buffer, uint16_t bufferSize, uint8_t endPointId) override + uint16_t EncodeCommand(const PacketBufferHandle & buffer, uint16_t bufferSize, uint8_t endPointId) override { return encodeIdentifyClusterIdentifyCommand(buffer->Start(), bufferSize, endPointId, mIdentifyTime); } @@ -4709,7 +5074,7 @@ class IdentifyIdentifyQuery : public ModelCommand public: IdentifyIdentifyQuery() : ModelCommand("identify-query", kIdentifyClusterId, 0x01) { ModelCommand::AddArguments(); } - uint16_t EncodeCommand(PacketBuffer * buffer, uint16_t bufferSize, uint8_t endPointId) override + uint16_t EncodeCommand(const PacketBufferHandle & buffer, uint16_t bufferSize, uint8_t endPointId) override { return encodeIdentifyClusterIdentifyQueryCommand(buffer->Start(), bufferSize, endPointId); } @@ -4737,7 +5102,7 @@ class DiscoverIdentifyAttributes : public ModelCommand public: DiscoverIdentifyAttributes() : ModelCommand("discover", kIdentifyClusterId, 0x0c) { ModelCommand::AddArguments(); } - uint16_t EncodeCommand(PacketBuffer * buffer, uint16_t bufferSize, uint8_t endPointId) override + uint16_t EncodeCommand(const PacketBufferHandle & buffer, uint16_t bufferSize, uint8_t endPointId) override { return encodeIdentifyClusterDiscoverAttributes(buffer->Start(), bufferSize, endPointId); } @@ -4762,7 +5127,7 @@ class ReadIdentifyIdentifyTime : public ModelCommand ModelCommand::AddArguments(); } - uint16_t EncodeCommand(PacketBuffer * buffer, uint16_t bufferSize, uint8_t endPointId) override + uint16_t EncodeCommand(const PacketBufferHandle & buffer, uint16_t bufferSize, uint8_t endPointId) override { return encodeIdentifyClusterReadIdentifyTimeAttribute(buffer->Start(), bufferSize, endPointId); } @@ -4775,32 +5140,6 @@ class ReadIdentifyIdentifyTime : public ModelCommand } }; -class WriteIdentifyIdentifyTime : public ModelCommand -{ -public: - WriteIdentifyIdentifyTime() : ModelCommand("write", kIdentifyClusterId, 0x01) - { - AddArgument("attr-name", "identify-time"); - AddArgument("attr-value", 0, UINT16_MAX, &mIdentifyTime); - ModelCommand::AddArguments(); - } - - uint16_t EncodeCommand(PacketBuffer * buffer, uint16_t bufferSize, uint8_t endPointId) override - { - return encodeIdentifyClusterWriteIdentifyTimeAttribute(buffer->Start(), bufferSize, endPointId, mIdentifyTime); - } - - // Global Response: WriteAttributesResponse - bool HandleGlobalResponse(uint8_t commandId, uint8_t * message, uint16_t messageLen) const override - { - WriteAttributesResponse response; - return response.HandleCommandResponse(commandId, message, messageLen); - } - -private: - uint16_t mIdentifyTime; -}; - /*----------------------------------------------------------------------------*\ | Cluster Level | 0x0008 | |------------------------------------------------------------------------------| @@ -4836,10 +5175,10 @@ class LevelMove : public ModelCommand ModelCommand::AddArguments(); } - uint16_t EncodeCommand(PacketBuffer * buffer, uint16_t bufferSize, uint8_t endPointId) override + uint16_t EncodeCommand(const PacketBufferHandle & buffer, uint16_t bufferSize, uint8_t endPointId) override { - return encodeLevelClusterMoveCommand(buffer->Start(), bufferSize, endPointId, mMoveMode, mRate, mOptionsMask, - mOptionsOverride); + return encodeLevelControlClusterMoveCommand(buffer->Start(), bufferSize, endPointId, mMoveMode, mRate, mOptionsMask, + mOptionsOverride); } // Global Response: DefaultResponse @@ -4871,10 +5210,10 @@ class LevelMoveToLevel : public ModelCommand ModelCommand::AddArguments(); } - uint16_t EncodeCommand(PacketBuffer * buffer, uint16_t bufferSize, uint8_t endPointId) override + uint16_t EncodeCommand(const PacketBufferHandle & buffer, uint16_t bufferSize, uint8_t endPointId) override { - return encodeLevelClusterMoveToLevelCommand(buffer->Start(), bufferSize, endPointId, mLevel, mTransitionTime, mOptionsMask, - mOptionsOverride); + return encodeLevelControlClusterMoveToLevelCommand(buffer->Start(), bufferSize, endPointId, mLevel, mTransitionTime, + mOptionsMask, mOptionsOverride); } // Global Response: DefaultResponse @@ -4901,15 +5240,13 @@ class LevelMoveToLevelWithOnOff : public ModelCommand { AddArgument("level", 0, UINT8_MAX, &mLevel); AddArgument("transitionTime", 0, UINT16_MAX, &mTransitionTime); - AddArgument("optionsMask", 0, UINT8_MAX, &mOptionsMask); - AddArgument("optionsOverride", 0, UINT8_MAX, &mOptionsOverride); ModelCommand::AddArguments(); } - uint16_t EncodeCommand(PacketBuffer * buffer, uint16_t bufferSize, uint8_t endPointId) override + uint16_t EncodeCommand(const PacketBufferHandle & buffer, uint16_t bufferSize, uint8_t endPointId) override { - return encodeLevelClusterMoveToLevelWithOnOffCommand(buffer->Start(), bufferSize, endPointId, mLevel, mTransitionTime, - mOptionsMask, mOptionsOverride); + return encodeLevelControlClusterMoveToLevelWithOnOffCommand(buffer->Start(), bufferSize, endPointId, mLevel, + mTransitionTime); } // Global Response: DefaultResponse @@ -4922,8 +5259,6 @@ class LevelMoveToLevelWithOnOff : public ModelCommand private: uint8_t mLevel; uint16_t mTransitionTime; - uint8_t mOptionsMask; - uint8_t mOptionsOverride; }; /* @@ -4936,15 +5271,12 @@ class LevelMoveWithOnOff : public ModelCommand { AddArgument("moveMode", 0, UINT8_MAX, &mMoveMode); AddArgument("rate", 0, UINT8_MAX, &mRate); - AddArgument("optionsMask", 0, UINT8_MAX, &mOptionsMask); - AddArgument("optionsOverride", 0, UINT8_MAX, &mOptionsOverride); ModelCommand::AddArguments(); } - uint16_t EncodeCommand(PacketBuffer * buffer, uint16_t bufferSize, uint8_t endPointId) override + uint16_t EncodeCommand(const PacketBufferHandle & buffer, uint16_t bufferSize, uint8_t endPointId) override { - return encodeLevelClusterMoveWithOnOffCommand(buffer->Start(), bufferSize, endPointId, mMoveMode, mRate, mOptionsMask, - mOptionsOverride); + return encodeLevelControlClusterMoveWithOnOffCommand(buffer->Start(), bufferSize, endPointId, mMoveMode, mRate); } // Global Response: DefaultResponse @@ -4957,8 +5289,6 @@ class LevelMoveWithOnOff : public ModelCommand private: uint8_t mMoveMode; uint8_t mRate; - uint8_t mOptionsMask; - uint8_t mOptionsOverride; }; /* @@ -4977,10 +5307,10 @@ class LevelStep : public ModelCommand ModelCommand::AddArguments(); } - uint16_t EncodeCommand(PacketBuffer * buffer, uint16_t bufferSize, uint8_t endPointId) override + uint16_t EncodeCommand(const PacketBufferHandle & buffer, uint16_t bufferSize, uint8_t endPointId) override { - return encodeLevelClusterStepCommand(buffer->Start(), bufferSize, endPointId, mStepMode, mStepSize, mTransitionTime, - mOptionsMask, mOptionsOverride); + return encodeLevelControlClusterStepCommand(buffer->Start(), bufferSize, endPointId, mStepMode, mStepSize, mTransitionTime, + mOptionsMask, mOptionsOverride); } // Global Response: DefaultResponse @@ -5009,15 +5339,13 @@ class LevelStepWithOnOff : public ModelCommand AddArgument("stepMode", 0, UINT8_MAX, &mStepMode); AddArgument("stepSize", 0, UINT8_MAX, &mStepSize); AddArgument("transitionTime", 0, UINT16_MAX, &mTransitionTime); - AddArgument("optionsMask", 0, UINT8_MAX, &mOptionsMask); - AddArgument("optionsOverride", 0, UINT8_MAX, &mOptionsOverride); ModelCommand::AddArguments(); } - uint16_t EncodeCommand(PacketBuffer * buffer, uint16_t bufferSize, uint8_t endPointId) override + uint16_t EncodeCommand(const PacketBufferHandle & buffer, uint16_t bufferSize, uint8_t endPointId) override { - return encodeLevelClusterStepWithOnOffCommand(buffer->Start(), bufferSize, endPointId, mStepMode, mStepSize, - mTransitionTime, mOptionsMask, mOptionsOverride); + return encodeLevelControlClusterStepWithOnOffCommand(buffer->Start(), bufferSize, endPointId, mStepMode, mStepSize, + mTransitionTime); } // Global Response: DefaultResponse @@ -5031,8 +5359,6 @@ class LevelStepWithOnOff : public ModelCommand uint8_t mStepMode; uint8_t mStepSize; uint16_t mTransitionTime; - uint8_t mOptionsMask; - uint8_t mOptionsOverride; }; /* @@ -5048,9 +5374,9 @@ class LevelStop : public ModelCommand ModelCommand::AddArguments(); } - uint16_t EncodeCommand(PacketBuffer * buffer, uint16_t bufferSize, uint8_t endPointId) override + uint16_t EncodeCommand(const PacketBufferHandle & buffer, uint16_t bufferSize, uint8_t endPointId) override { - return encodeLevelClusterStopCommand(buffer->Start(), bufferSize, endPointId, mOptionsMask, mOptionsOverride); + return encodeLevelControlClusterStopCommand(buffer->Start(), bufferSize, endPointId, mOptionsMask, mOptionsOverride); } // Global Response: DefaultResponse @@ -5071,16 +5397,11 @@ class LevelStop : public ModelCommand class LevelStopWithOnOff : public ModelCommand { public: - LevelStopWithOnOff() : ModelCommand("stop-with-on-off", kLevelClusterId, 0x07) - { - AddArgument("optionsMask", 0, UINT8_MAX, &mOptionsMask); - AddArgument("optionsOverride", 0, UINT8_MAX, &mOptionsOverride); - ModelCommand::AddArguments(); - } + LevelStopWithOnOff() : ModelCommand("stop-with-on-off", kLevelClusterId, 0x07) { ModelCommand::AddArguments(); } - uint16_t EncodeCommand(PacketBuffer * buffer, uint16_t bufferSize, uint8_t endPointId) override + uint16_t EncodeCommand(const PacketBufferHandle & buffer, uint16_t bufferSize, uint8_t endPointId) override { - return encodeLevelClusterStopWithOnOffCommand(buffer->Start(), bufferSize, endPointId, mOptionsMask, mOptionsOverride); + return encodeLevelControlClusterStopWithOnOffCommand(buffer->Start(), bufferSize, endPointId); } // Global Response: DefaultResponse @@ -5089,10 +5410,6 @@ class LevelStopWithOnOff : public ModelCommand DefaultResponse response; return response.HandleCommandResponse(commandId, message, messageLen); } - -private: - uint8_t mOptionsMask; - uint8_t mOptionsOverride; }; /* @@ -5103,9 +5420,9 @@ class DiscoverLevelAttributes : public ModelCommand public: DiscoverLevelAttributes() : ModelCommand("discover", kLevelClusterId, 0x0c) { ModelCommand::AddArguments(); } - uint16_t EncodeCommand(PacketBuffer * buffer, uint16_t bufferSize, uint8_t endPointId) override + uint16_t EncodeCommand(const PacketBufferHandle & buffer, uint16_t bufferSize, uint8_t endPointId) override { - return encodeLevelClusterDiscoverAttributes(buffer->Start(), bufferSize, endPointId); + return encodeLevelControlClusterDiscoverAttributes(buffer->Start(), bufferSize, endPointId); } // Global Response: DiscoverAttributesResponse @@ -5128,9 +5445,9 @@ class ReadLevelCurrentLevel : public ModelCommand ModelCommand::AddArguments(); } - uint16_t EncodeCommand(PacketBuffer * buffer, uint16_t bufferSize, uint8_t endPointId) override + uint16_t EncodeCommand(const PacketBufferHandle & buffer, uint16_t bufferSize, uint8_t endPointId) override { - return encodeLevelClusterReadCurrentLevelAttribute(buffer->Start(), bufferSize, endPointId); + return encodeLevelControlClusterReadCurrentLevelAttribute(buffer->Start(), bufferSize, endPointId); } // Global Response: ReadAttributesResponse @@ -5141,6 +5458,37 @@ class ReadLevelCurrentLevel : public ModelCommand } }; +class ReportLevelCurrentLevel : public ModelCommand +{ +public: + ReportLevelCurrentLevel() : ModelCommand("report", kLevelClusterId, 0x06) + { + AddArgument("attr-name", "current-level"); + AddArgument("min-interval", 0, UINT16_MAX, &mMinInterval); + AddArgument("max-interval", 0, UINT16_MAX, &mMaxInterval); + AddArgument("change", 0, UINT8_MAX, &mChange); + ModelCommand::AddArguments(); + } + + uint16_t EncodeCommand(const PacketBufferHandle & buffer, uint16_t bufferSize, uint8_t endPointId) override + { + return encodeLevelControlClusterReportCurrentLevelAttribute(buffer->Start(), bufferSize, endPointId, mMinInterval, + mMaxInterval, mChange); + } + + // Global Response: ConfigureReportingResponse + bool HandleGlobalResponse(uint8_t commandId, uint8_t * message, uint16_t messageLen) const override + { + ConfigureReportingResponse response; + return response.HandleCommandResponse(commandId, message, messageLen); + } + +private: + uint16_t mMinInterval; + uint16_t mMaxInterval; + uint8_t mChange; +}; + /*----------------------------------------------------------------------------*\ | Cluster OnOff | 0x0006 | |------------------------------------------------------------------------------| @@ -5164,7 +5512,7 @@ class OnOffOff : public ModelCommand public: OnOffOff() : ModelCommand("off", kOnOffClusterId, 0x00) { ModelCommand::AddArguments(); } - uint16_t EncodeCommand(PacketBuffer * buffer, uint16_t bufferSize, uint8_t endPointId) override + uint16_t EncodeCommand(const PacketBufferHandle & buffer, uint16_t bufferSize, uint8_t endPointId) override { return encodeOnOffClusterOffCommand(buffer->Start(), bufferSize, endPointId); } @@ -5185,7 +5533,7 @@ class OnOffOn : public ModelCommand public: OnOffOn() : ModelCommand("on", kOnOffClusterId, 0x01) { ModelCommand::AddArguments(); } - uint16_t EncodeCommand(PacketBuffer * buffer, uint16_t bufferSize, uint8_t endPointId) override + uint16_t EncodeCommand(const PacketBufferHandle & buffer, uint16_t bufferSize, uint8_t endPointId) override { return encodeOnOffClusterOnCommand(buffer->Start(), bufferSize, endPointId); } @@ -5206,7 +5554,7 @@ class OnOffToggle : public ModelCommand public: OnOffToggle() : ModelCommand("toggle", kOnOffClusterId, 0x02) { ModelCommand::AddArguments(); } - uint16_t EncodeCommand(PacketBuffer * buffer, uint16_t bufferSize, uint8_t endPointId) override + uint16_t EncodeCommand(const PacketBufferHandle & buffer, uint16_t bufferSize, uint8_t endPointId) override { return encodeOnOffClusterToggleCommand(buffer->Start(), bufferSize, endPointId); } @@ -5227,7 +5575,7 @@ class DiscoverOnOffAttributes : public ModelCommand public: DiscoverOnOffAttributes() : ModelCommand("discover", kOnOffClusterId, 0x0c) { ModelCommand::AddArguments(); } - uint16_t EncodeCommand(PacketBuffer * buffer, uint16_t bufferSize, uint8_t endPointId) override + uint16_t EncodeCommand(const PacketBufferHandle & buffer, uint16_t bufferSize, uint8_t endPointId) override { return encodeOnOffClusterDiscoverAttributes(buffer->Start(), bufferSize, endPointId); } @@ -5252,7 +5600,7 @@ class ReadOnOffOnOff : public ModelCommand ModelCommand::AddArguments(); } - uint16_t EncodeCommand(PacketBuffer * buffer, uint16_t bufferSize, uint8_t endPointId) override + uint16_t EncodeCommand(const PacketBufferHandle & buffer, uint16_t bufferSize, uint8_t endPointId) override { return encodeOnOffClusterReadOnOffAttribute(buffer->Start(), bufferSize, endPointId); } @@ -5265,6 +5613,34 @@ class ReadOnOffOnOff : public ModelCommand } }; +class ReportOnOffOnOff : public ModelCommand +{ +public: + ReportOnOffOnOff() : ModelCommand("report", kOnOffClusterId, 0x06) + { + AddArgument("attr-name", "on-off"); + AddArgument("min-interval", 0, UINT16_MAX, &mMinInterval); + AddArgument("max-interval", 0, UINT16_MAX, &mMaxInterval); + ModelCommand::AddArguments(); + } + + uint16_t EncodeCommand(const PacketBufferHandle & buffer, uint16_t bufferSize, uint8_t endPointId) override + { + return encodeOnOffClusterReportOnOffAttribute(buffer->Start(), bufferSize, endPointId, mMinInterval, mMaxInterval); + } + + // Global Response: ConfigureReportingResponse + bool HandleGlobalResponse(uint8_t commandId, uint8_t * message, uint16_t messageLen) const override + { + ConfigureReportingResponse response; + return response.HandleCommandResponse(commandId, message, messageLen); + } + +private: + uint16_t mMinInterval; + uint16_t mMaxInterval; +}; + /*----------------------------------------------------------------------------*\ | Cluster Scenes | 0x0005 | |------------------------------------------------------------------------------| @@ -5310,10 +5686,14 @@ class AddSceneResponse : public ModelCommandResponse CHECK_MESSAGE_LENGTH(1); uint8_t status = chip::Encoding::Read8(message); // zclStatus success = CheckStatus(status); + CHECK_MESSAGE_LENGTH(2); - ChipLogProgress(chipTool, " %s: 0x%04x", "groupId", chip::Encoding::LittleEndian::Read16(message)); // SGroupId + uint16_t groupId = chip::Encoding::LittleEndian::Read16(message); // SGroupId + ChipLogProgress(chipTool, " %s: 0x%04x", "groupId", groupId); + CHECK_MESSAGE_LENGTH(1); - ChipLogProgress(chipTool, " %s: 0x%02x", "sceneId", chip::Encoding::Read8(message)); // uint8 + uint8_t sceneId = chip::Encoding::Read8(message); // uint8 + ChipLogProgress(chipTool, " %s: 0x%02x", "sceneId", sceneId); return success; } @@ -5335,15 +5715,21 @@ class GetSceneMembershipResponse : public ModelCommandResponse CHECK_MESSAGE_LENGTH(1); uint8_t status = chip::Encoding::Read8(message); // zclStatus success = CheckStatus(status); + CHECK_MESSAGE_LENGTH(1); - ChipLogProgress(chipTool, " %s: 0x%02x", "capacity", chip::Encoding::Read8(message)); // uint8 + uint8_t capacity = chip::Encoding::Read8(message); // uint8 + ChipLogProgress(chipTool, " %s: 0x%02x", "capacity", capacity); + CHECK_MESSAGE_LENGTH(2); - ChipLogProgress(chipTool, " %s: 0x%04x", "groupId", chip::Encoding::LittleEndian::Read16(message)); // SGroupId + uint16_t groupId = chip::Encoding::LittleEndian::Read16(message); // SGroupId + ChipLogProgress(chipTool, " %s: 0x%04x", "groupId", groupId); + // uint8_t uint8[] while (messageLen) { CHECK_MESSAGE_LENGTH(1); - ChipLogProgress(chipTool, " %s: 0x%02x", "sceneList", chip::Encoding::Read8(message)); // uint8 + uint8_t sceneList = chip::Encoding::Read8(message); // uint8 + ChipLogProgress(chipTool, " %s: 0x%02x", "sceneList", sceneList); } return success; @@ -5366,8 +5752,10 @@ class RemoveAllScenesResponse : public ModelCommandResponse CHECK_MESSAGE_LENGTH(1); uint8_t status = chip::Encoding::Read8(message); // zclStatus success = CheckStatus(status); + CHECK_MESSAGE_LENGTH(2); - ChipLogProgress(chipTool, " %s: 0x%04x", "groupId", chip::Encoding::LittleEndian::Read16(message)); // SGroupId + uint16_t groupId = chip::Encoding::LittleEndian::Read16(message); // SGroupId + ChipLogProgress(chipTool, " %s: 0x%04x", "groupId", groupId); return success; } @@ -5389,10 +5777,14 @@ class RemoveSceneResponse : public ModelCommandResponse CHECK_MESSAGE_LENGTH(1); uint8_t status = chip::Encoding::Read8(message); // zclStatus success = CheckStatus(status); + CHECK_MESSAGE_LENGTH(2); - ChipLogProgress(chipTool, " %s: 0x%04x", "groupId", chip::Encoding::LittleEndian::Read16(message)); // SGroupId + uint16_t groupId = chip::Encoding::LittleEndian::Read16(message); // SGroupId + ChipLogProgress(chipTool, " %s: 0x%04x", "groupId", groupId); + CHECK_MESSAGE_LENGTH(1); - ChipLogProgress(chipTool, " %s: 0x%02x", "sceneId", chip::Encoding::Read8(message)); // uint8 + uint8_t sceneId = chip::Encoding::Read8(message); // uint8 + ChipLogProgress(chipTool, " %s: 0x%02x", "sceneId", sceneId); return success; } @@ -5414,10 +5806,14 @@ class StoreSceneResponse : public ModelCommandResponse CHECK_MESSAGE_LENGTH(1); uint8_t status = chip::Encoding::Read8(message); // zclStatus success = CheckStatus(status); + CHECK_MESSAGE_LENGTH(2); - ChipLogProgress(chipTool, " %s: 0x%04x", "groupId", chip::Encoding::LittleEndian::Read16(message)); // SGroupId + uint16_t groupId = chip::Encoding::LittleEndian::Read16(message); // SGroupId + ChipLogProgress(chipTool, " %s: 0x%04x", "groupId", groupId); + CHECK_MESSAGE_LENGTH(1); - ChipLogProgress(chipTool, " %s: 0x%02x", "sceneId", chip::Encoding::Read8(message)); // uint8 + uint8_t sceneId = chip::Encoding::Read8(message); // uint8 + ChipLogProgress(chipTool, " %s: 0x%02x", "sceneId", sceneId); return success; } @@ -5439,12 +5835,19 @@ class ViewSceneResponse : public ModelCommandResponse CHECK_MESSAGE_LENGTH(1); uint8_t status = chip::Encoding::Read8(message); // zclStatus success = CheckStatus(status); + CHECK_MESSAGE_LENGTH(2); - ChipLogProgress(chipTool, " %s: 0x%04x", "groupId", chip::Encoding::LittleEndian::Read16(message)); // SGroupId + uint16_t groupId = chip::Encoding::LittleEndian::Read16(message); // SGroupId + ChipLogProgress(chipTool, " %s: 0x%04x", "groupId", groupId); + CHECK_MESSAGE_LENGTH(1); - ChipLogProgress(chipTool, " %s: 0x%02x", "sceneId", chip::Encoding::Read8(message)); // uint8 + uint8_t sceneId = chip::Encoding::Read8(message); // uint8 + ChipLogProgress(chipTool, " %s: 0x%02x", "sceneId", sceneId); + CHECK_MESSAGE_LENGTH(2); - ChipLogProgress(chipTool, " %s: 0x%04x", "transitionTime", chip::Encoding::LittleEndian::Read16(message)); // uint16 + uint16_t transitionTime = chip::Encoding::LittleEndian::Read16(message); // uint16 + ChipLogProgress(chipTool, " %s: 0x%04x", "transitionTime", transitionTime); + CHECK_MESSAGE_LENGTH(1); { uint8_t sceneNameLen = chip::Encoding::Read8(message); // SSceneName @@ -5455,11 +5858,14 @@ class ViewSceneResponse : public ModelCommandResponse CHECK_MESSAGE_LENGTH(sceneNameLen); message += sceneNameLen; } + // struct SExtensionFieldSetList[] while (messageLen) { CHECK_MESSAGE_LENGTH(2); - ChipLogProgress(chipTool, " %s: 0x%04x", "clusterId", chip::Encoding::LittleEndian::Read16(message)); // uint16 + uint16_t clusterId = chip::Encoding::LittleEndian::Read16(message); // uint16 + ChipLogProgress(chipTool, " %s: 0x%04x", "clusterId", clusterId); + CHECK_MESSAGE_LENGTH(1); { uint8_t extensionFieldSetLen = chip::Encoding::Read8(message); // octstr @@ -5491,14 +5897,15 @@ class ScenesAddScene : public ModelCommand // extensionFieldSets is an array, but since chip-tool does not support variable // number of arguments, only a single instance is supported. AddArgument("clusterId", 0, UINT16_MAX, &mClusterId); - AddArgument("extensionFieldSet", &mExtensionFieldSet); + AddArgument("length", 0, UINT8_MAX, &mLength); + AddArgument("value", 0, UINT8_MAX, &mValue); ModelCommand::AddArguments(); } - uint16_t EncodeCommand(PacketBuffer * buffer, uint16_t bufferSize, uint8_t endPointId) override + uint16_t EncodeCommand(const PacketBufferHandle & buffer, uint16_t bufferSize, uint8_t endPointId) override { return encodeScenesClusterAddSceneCommand(buffer->Start(), bufferSize, endPointId, mGroupID, mSceneID, mTransitionTime, - mSceneName, mClusterId, mExtensionFieldSet); + mSceneName, mClusterId, mLength, mValue); } // Global Response: DefaultResponse @@ -5521,7 +5928,8 @@ class ScenesAddScene : public ModelCommand uint16_t mTransitionTime; char * mSceneName; uint16_t mClusterId; - char * mExtensionFieldSet; + uint8_t mLength; + uint8_t mValue; }; /* @@ -5536,7 +5944,7 @@ class ScenesGetSceneMembership : public ModelCommand ModelCommand::AddArguments(); } - uint16_t EncodeCommand(PacketBuffer * buffer, uint16_t bufferSize, uint8_t endPointId) override + uint16_t EncodeCommand(const PacketBufferHandle & buffer, uint16_t bufferSize, uint8_t endPointId) override { return encodeScenesClusterGetSceneMembershipCommand(buffer->Start(), bufferSize, endPointId, mGroupID); } @@ -5573,7 +5981,7 @@ class ScenesRecallScene : public ModelCommand ModelCommand::AddArguments(); } - uint16_t EncodeCommand(PacketBuffer * buffer, uint16_t bufferSize, uint8_t endPointId) override + uint16_t EncodeCommand(const PacketBufferHandle & buffer, uint16_t bufferSize, uint8_t endPointId) override { return encodeScenesClusterRecallSceneCommand(buffer->Start(), bufferSize, endPointId, mGroupID, mSceneID, mTransitionTime); } @@ -5603,7 +6011,7 @@ class ScenesRemoveAllScenes : public ModelCommand ModelCommand::AddArguments(); } - uint16_t EncodeCommand(PacketBuffer * buffer, uint16_t bufferSize, uint8_t endPointId) override + uint16_t EncodeCommand(const PacketBufferHandle & buffer, uint16_t bufferSize, uint8_t endPointId) override { return encodeScenesClusterRemoveAllScenesCommand(buffer->Start(), bufferSize, endPointId, mGroupID); } @@ -5639,7 +6047,7 @@ class ScenesRemoveScene : public ModelCommand ModelCommand::AddArguments(); } - uint16_t EncodeCommand(PacketBuffer * buffer, uint16_t bufferSize, uint8_t endPointId) override + uint16_t EncodeCommand(const PacketBufferHandle & buffer, uint16_t bufferSize, uint8_t endPointId) override { return encodeScenesClusterRemoveSceneCommand(buffer->Start(), bufferSize, endPointId, mGroupID, mSceneID); } @@ -5676,7 +6084,7 @@ class ScenesStoreScene : public ModelCommand ModelCommand::AddArguments(); } - uint16_t EncodeCommand(PacketBuffer * buffer, uint16_t bufferSize, uint8_t endPointId) override + uint16_t EncodeCommand(const PacketBufferHandle & buffer, uint16_t bufferSize, uint8_t endPointId) override { return encodeScenesClusterStoreSceneCommand(buffer->Start(), bufferSize, endPointId, mGroupID, mSceneID); } @@ -5713,7 +6121,7 @@ class ScenesViewScene : public ModelCommand ModelCommand::AddArguments(); } - uint16_t EncodeCommand(PacketBuffer * buffer, uint16_t bufferSize, uint8_t endPointId) override + uint16_t EncodeCommand(const PacketBufferHandle & buffer, uint16_t bufferSize, uint8_t endPointId) override { return encodeScenesClusterViewSceneCommand(buffer->Start(), bufferSize, endPointId, mGroupID, mSceneID); } @@ -5745,7 +6153,7 @@ class DiscoverScenesAttributes : public ModelCommand public: DiscoverScenesAttributes() : ModelCommand("discover", kScenesClusterId, 0x0c) { ModelCommand::AddArguments(); } - uint16_t EncodeCommand(PacketBuffer * buffer, uint16_t bufferSize, uint8_t endPointId) override + uint16_t EncodeCommand(const PacketBufferHandle & buffer, uint16_t bufferSize, uint8_t endPointId) override { return encodeScenesClusterDiscoverAttributes(buffer->Start(), bufferSize, endPointId); } @@ -5770,7 +6178,7 @@ class ReadScenesSceneCount : public ModelCommand ModelCommand::AddArguments(); } - uint16_t EncodeCommand(PacketBuffer * buffer, uint16_t bufferSize, uint8_t endPointId) override + uint16_t EncodeCommand(const PacketBufferHandle & buffer, uint16_t bufferSize, uint8_t endPointId) override { return encodeScenesClusterReadSceneCountAttribute(buffer->Start(), bufferSize, endPointId); } @@ -5795,7 +6203,7 @@ class ReadScenesCurrentScene : public ModelCommand ModelCommand::AddArguments(); } - uint16_t EncodeCommand(PacketBuffer * buffer, uint16_t bufferSize, uint8_t endPointId) override + uint16_t EncodeCommand(const PacketBufferHandle & buffer, uint16_t bufferSize, uint8_t endPointId) override { return encodeScenesClusterReadCurrentSceneAttribute(buffer->Start(), bufferSize, endPointId); } @@ -5820,7 +6228,7 @@ class ReadScenesCurrentGroup : public ModelCommand ModelCommand::AddArguments(); } - uint16_t EncodeCommand(PacketBuffer * buffer, uint16_t bufferSize, uint8_t endPointId) override + uint16_t EncodeCommand(const PacketBufferHandle & buffer, uint16_t bufferSize, uint8_t endPointId) override { return encodeScenesClusterReadCurrentGroupAttribute(buffer->Start(), bufferSize, endPointId); } @@ -5845,7 +6253,7 @@ class ReadScenesSceneValid : public ModelCommand ModelCommand::AddArguments(); } - uint16_t EncodeCommand(PacketBuffer * buffer, uint16_t bufferSize, uint8_t endPointId) override + uint16_t EncodeCommand(const PacketBufferHandle & buffer, uint16_t bufferSize, uint8_t endPointId) override { return encodeScenesClusterReadSceneValidAttribute(buffer->Start(), bufferSize, endPointId); } @@ -5870,7 +6278,7 @@ class ReadScenesNameSupport : public ModelCommand ModelCommand::AddArguments(); } - uint16_t EncodeCommand(PacketBuffer * buffer, uint16_t bufferSize, uint8_t endPointId) override + uint16_t EncodeCommand(const PacketBufferHandle & buffer, uint16_t bufferSize, uint8_t endPointId) override { return encodeScenesClusterReadNameSupportAttribute(buffer->Start(), bufferSize, endPointId); } @@ -5908,7 +6316,7 @@ class DiscoverTemperatureMeasurementAttributes : public ModelCommand ModelCommand::AddArguments(); } - uint16_t EncodeCommand(PacketBuffer * buffer, uint16_t bufferSize, uint8_t endPointId) override + uint16_t EncodeCommand(const PacketBufferHandle & buffer, uint16_t bufferSize, uint8_t endPointId) override { return encodeTemperatureMeasurementClusterDiscoverAttributes(buffer->Start(), bufferSize, endPointId); } @@ -5933,7 +6341,7 @@ class ReadTemperatureMeasurementMeasuredValue : public ModelCommand ModelCommand::AddArguments(); } - uint16_t EncodeCommand(PacketBuffer * buffer, uint16_t bufferSize, uint8_t endPointId) override + uint16_t EncodeCommand(const PacketBufferHandle & buffer, uint16_t bufferSize, uint8_t endPointId) override { return encodeTemperatureMeasurementClusterReadMeasuredValueAttribute(buffer->Start(), bufferSize, endPointId); } @@ -5946,6 +6354,37 @@ class ReadTemperatureMeasurementMeasuredValue : public ModelCommand } }; +class ReportTemperatureMeasurementMeasuredValue : public ModelCommand +{ +public: + ReportTemperatureMeasurementMeasuredValue() : ModelCommand("report", kTempMeasurementClusterId, 0x06) + { + AddArgument("attr-name", "measured-value"); + AddArgument("min-interval", 0, UINT16_MAX, &mMinInterval); + AddArgument("max-interval", 0, UINT16_MAX, &mMaxInterval); + AddArgument("change", INT16_MIN, INT16_MAX, &mChange); + ModelCommand::AddArguments(); + } + + uint16_t EncodeCommand(const PacketBufferHandle & buffer, uint16_t bufferSize, uint8_t endPointId) override + { + return encodeTemperatureMeasurementClusterReportMeasuredValueAttribute(buffer->Start(), bufferSize, endPointId, + mMinInterval, mMaxInterval, mChange); + } + + // Global Response: ConfigureReportingResponse + bool HandleGlobalResponse(uint8_t commandId, uint8_t * message, uint16_t messageLen) const override + { + ConfigureReportingResponse response; + return response.HandleCommandResponse(commandId, message, messageLen); + } + +private: + uint16_t mMinInterval; + uint16_t mMaxInterval; + int16_t mChange; +}; + /* * Attribute MinMeasuredValue */ @@ -5958,7 +6397,7 @@ class ReadTemperatureMeasurementMinMeasuredValue : public ModelCommand ModelCommand::AddArguments(); } - uint16_t EncodeCommand(PacketBuffer * buffer, uint16_t bufferSize, uint8_t endPointId) override + uint16_t EncodeCommand(const PacketBufferHandle & buffer, uint16_t bufferSize, uint8_t endPointId) override { return encodeTemperatureMeasurementClusterReadMinMeasuredValueAttribute(buffer->Start(), bufferSize, endPointId); } @@ -5983,7 +6422,7 @@ class ReadTemperatureMeasurementMaxMeasuredValue : public ModelCommand ModelCommand::AddArguments(); } - uint16_t EncodeCommand(PacketBuffer * buffer, uint16_t bufferSize, uint8_t endPointId) override + uint16_t EncodeCommand(const PacketBufferHandle & buffer, uint16_t bufferSize, uint8_t endPointId) override { return encodeTemperatureMeasurementClusterReadMaxMeasuredValueAttribute(buffer->Start(), bufferSize, endPointId); } @@ -6020,7 +6459,7 @@ void registerClusterBasic(Commands & commands) commands_list clusterCommands = { make_unique(), make_unique(), - make_unique(), + make_unique(), make_unique(), }; @@ -6048,14 +6487,17 @@ void registerClusterColorControl(Commands & commands) make_unique(), make_unique(), make_unique(), + make_unique(), make_unique(), + make_unique(), make_unique(), make_unique(), + make_unique(), make_unique(), - make_unique(), + make_unique(), + make_unique(), + make_unique(), make_unique(), - make_unique(), - make_unique(), make_unique(), make_unique(), make_unique(), @@ -6080,14 +6522,11 @@ void registerClusterColorControl(Commands & commands) make_unique(), make_unique(), make_unique(), - make_unique(), - make_unique(), make_unique(), - make_unique(), - make_unique(), + make_unique(), + make_unique(), make_unique(), make_unique(), - make_unique(), }; commands.Register(clusterName, clusterCommands); @@ -6098,19 +6537,33 @@ void registerClusterDoorLock(Commands & commands) const char * clusterName = "DoorLock"; commands_list clusterCommands = { - make_unique(), make_unique(), - make_unique(), make_unique(), - make_unique(), make_unique(), - make_unique(), make_unique(), - make_unique(), make_unique(), - make_unique(), make_unique(), - make_unique(), make_unique(), - make_unique(), make_unique(), - make_unique(), make_unique(), - make_unique(), make_unique(), - make_unique(), make_unique(), - make_unique(), make_unique(), - make_unique(), make_unique(), + make_unique(), + make_unique(), + make_unique(), + make_unique(), + make_unique(), + make_unique(), + make_unique(), + make_unique(), + make_unique(), + make_unique(), + make_unique(), + make_unique(), + make_unique(), + make_unique(), + make_unique(), + make_unique(), + make_unique(), + make_unique(), + make_unique(), + make_unique(), + make_unique(), + make_unique(), + make_unique(), + make_unique(), + make_unique(), + make_unique(), + make_unique(), }; commands.Register(clusterName, clusterCommands); @@ -6130,14 +6583,14 @@ void registerClusterGroups(Commands & commands) commands.Register(clusterName, clusterCommands); } -void registerClusterIASZone(Commands & commands) +void registerClusterIasZone(Commands & commands) { - const char * clusterName = "IASZone"; + const char * clusterName = "IasZone"; commands_list clusterCommands = { - make_unique(), make_unique(), make_unique(), - make_unique(), make_unique(), make_unique(), - make_unique(), + make_unique(), make_unique(), make_unique(), + make_unique(), make_unique(), make_unique(), + make_unique(), }; commands.Register(clusterName, clusterCommands); @@ -6148,9 +6601,10 @@ void registerClusterIdentify(Commands & commands) const char * clusterName = "Identify"; commands_list clusterCommands = { - make_unique(), make_unique(), - make_unique(), make_unique(), - make_unique(), + make_unique(), + make_unique(), + make_unique(), + make_unique(), }; commands.Register(clusterName, clusterCommands); @@ -6158,7 +6612,7 @@ void registerClusterIdentify(Commands & commands) void registerClusterLevel(Commands & commands) { - const char * clusterName = "Level"; + const char * clusterName = "LevelControl"; commands_list clusterCommands = { make_unique(), @@ -6171,6 +6625,7 @@ void registerClusterLevel(Commands & commands) make_unique(), make_unique(), make_unique(), + make_unique(), }; commands.Register(clusterName, clusterCommands); @@ -6181,8 +6636,9 @@ void registerClusterOnOff(Commands & commands) const char * clusterName = "OnOff"; commands_list clusterCommands = { - make_unique(), make_unique(), make_unique(), make_unique(), - make_unique(), + make_unique(), make_unique(), + make_unique(), make_unique(), + make_unique(), make_unique(), }; commands.Register(clusterName, clusterCommands); @@ -6208,9 +6664,8 @@ void registerClusterTempMeasurement(Commands & commands) const char * clusterName = "TemperatureMeasurement"; commands_list clusterCommands = { - make_unique(), - make_unique(), - make_unique(), + make_unique(), make_unique(), + make_unique(), make_unique(), make_unique(), }; @@ -6224,7 +6679,7 @@ void registerClusters(Commands & commands) registerClusterColorControl(commands); registerClusterDoorLock(commands); registerClusterGroups(commands); - registerClusterIASZone(commands); + registerClusterIasZone(commands); registerClusterIdentify(commands); registerClusterLevel(commands); registerClusterOnOff(commands); diff --git a/examples/chip-tool/commands/common/ModelCommand.cpp b/examples/chip-tool/commands/clusters/ModelCommand.cpp similarity index 50% rename from examples/chip-tool/commands/common/ModelCommand.cpp rename to examples/chip-tool/commands/clusters/ModelCommand.cpp index 0cfb50107bfa05..5d3bf097f2a901 100644 --- a/examples/chip-tool/commands/common/ModelCommand.cpp +++ b/examples/chip-tool/commands/clusters/ModelCommand.cpp @@ -18,15 +18,7 @@ #include "ModelCommand.h" -#include -#include -#include -#include - using namespace ::chip; -using namespace ::chip::DeviceController; - -constexpr std::chrono::seconds kWaitingForResponseTimeout(10); namespace { constexpr uint8_t kZCLGlobalCmdFrameControlHeader = 8; @@ -44,77 +36,15 @@ bool isGlobalCommand(uint8_t frameControl) } } // namespace -void ModelCommand::OnConnect(ChipDeviceController * dc) -{ - if (SendCommand(dc)) - { - UpdateWaitForResponse(true); - WaitForResponse(); - } -} - -void ModelCommand::OnError(ChipDeviceController * dc, CHIP_ERROR err) -{ - UpdateWaitForResponse(false); -} - -void ModelCommand::OnMessage(ChipDeviceController * dc, PacketBuffer * buffer) +uint16_t ModelCommand::Encode(PacketBufferHandle & buffer, uint16_t bufferSize) { - SetCommandExitStatus(ReceiveCommandResponse(dc, buffer)); - UpdateWaitForResponse(false); -} - -CHIP_ERROR ModelCommand::Run(ChipDeviceController * dc, NodeId remoteId) -{ - CHIP_ERROR err = CHIP_NO_ERROR; - - err = NetworkCommand::Run(dc, remoteId); - SuccessOrExit(err); - - err = dc->ServiceEventSignal(); - SuccessOrExit(err); - - VerifyOrExit(GetCommandExitStatus(), err = CHIP_ERROR_INTERNAL); - -exit: - return err; -} - -bool ModelCommand::SendCommand(ChipDeviceController * dc) -{ - // Make sure our buffer is big enough, but this will need a better setup! - static const uint16_t bufferSize = 1024; - auto * buffer = PacketBuffer::NewWithAvailableSize(bufferSize); - - if (buffer == nullptr) - { - ChipLogError(chipTool, "Failed to allocate memory for packet data."); - return false; - } - ChipLogProgress(chipTool, "Endpoint id: '0x%02x', Cluster id: '0x%04x', Command id: '0x%02x'", mEndPointId, mClusterId, mCommandId); - uint16_t dataLength = EncodeCommand(buffer, bufferSize, mEndPointId); - if (dataLength == 0) - { - PacketBuffer::Free(buffer); - ChipLogError(chipTool, "Error while encoding data for command: %s", GetName()); - return false; - } - - buffer->SetDataLength(dataLength); - ChipLogDetail(chipTool, "Encoded data of length %d", dataLength); - -#ifdef DEBUG - PrintBuffer(buffer); -#endif - - dc->SendMessage(NULL, buffer); - return true; + return EncodeCommand(buffer, bufferSize, mEndPointId); } -bool ModelCommand::ReceiveCommandResponse(ChipDeviceController * dc, PacketBuffer * buffer) const +bool ModelCommand::Decode(PacketBufferHandle & buffer) const { EmberApsFrame frame; uint8_t * message; @@ -127,7 +57,6 @@ bool ModelCommand::ReceiveCommandResponse(ChipDeviceController * dc, PacketBuffe if (extractApsFrame(buffer->Start(), buffer->DataLength(), &frame) == 0) { ChipLogError(chipTool, "APS frame processing failure!"); - PacketBuffer::Free(buffer); ExitNow(); } ChipLogDetail(chipTool, "APS frame processing success!"); @@ -152,34 +81,3 @@ bool ModelCommand::ReceiveCommandResponse(ChipDeviceController * dc, PacketBuffe exit: return success; } - -void ModelCommand::UpdateWaitForResponse(bool value) -{ - { - std::lock_guard lk(cvWaitingForResponseMutex); - mWaitingForResponse = value; - } - cvWaitingForResponse.notify_all(); -} - -void ModelCommand::WaitForResponse() -{ - std::unique_lock lk(cvWaitingForResponseMutex); - auto waitingUntil = std::chrono::system_clock::now() + kWaitingForResponseTimeout; - if (!cvWaitingForResponse.wait_until(lk, waitingUntil, [this]() { return !this->mWaitingForResponse; })) - { - ChipLogError(chipTool, "No response from device"); - } -} - -void ModelCommand::PrintBuffer(PacketBuffer * buffer) const -{ - const size_t data_len = buffer->DataLength(); - - fprintf(stderr, "SENDING: %zu ", data_len); - for (size_t i = 0; i < data_len; ++i) - { - fprintf(stderr, "%d ", buffer->Start()[i]); - } - fprintf(stderr, "\n"); -} diff --git a/examples/chip-tool/commands/common/ModelCommand.h b/examples/chip-tool/commands/clusters/ModelCommand.h similarity index 52% rename from examples/chip-tool/commands/common/ModelCommand.h rename to examples/chip-tool/commands/clusters/ModelCommand.h index 0907f719b9bf62..b8d159d182a0af 100644 --- a/examples/chip-tool/commands/common/ModelCommand.h +++ b/examples/chip-tool/commands/clusters/ModelCommand.h @@ -18,10 +18,7 @@ #pragma once -#include "NetworkCommand.h" - -#include -#include +#include "../common/NetworkCommand.h" #include #include @@ -35,38 +32,20 @@ class ModelCommand : public NetworkCommand { public: ModelCommand(const char * commandName, uint16_t clusterId, uint8_t commandId) : - NetworkCommand(commandName, NetworkType::UDP), mClusterId(clusterId), mCommandId(commandId) + NetworkCommand(commandName), mClusterId(clusterId), mCommandId(commandId) {} - void AddArguments() - { - NetworkCommand::AddArguments(); - AddArgument("endpoint-id", CHIP_ZCL_ENDPOINT_MIN, CHIP_ZCL_ENDPOINT_MAX, &mEndPointId); - } - - /////////// Command Interface ///////// - CHIP_ERROR Run(ChipDeviceController * dc, NodeId remoteId) override; + void AddArguments() { AddArgument("endpoint-id", CHIP_ZCL_ENDPOINT_MIN, CHIP_ZCL_ENDPOINT_MAX, &mEndPointId); } - /////////// IPCommand Interface ///////// - void OnConnect(ChipDeviceController * dc) override; - void OnError(ChipDeviceController * dc, CHIP_ERROR err) override; - void OnMessage(ChipDeviceController * dc, chip::System::PacketBuffer * buffer) override; + /////////// NetworkCommand Interface ///////// + uint16_t Encode(PacketBufferHandle & buffer, uint16_t bufferSize) override; + bool Decode(PacketBufferHandle & buffer) const override; - virtual uint16_t EncodeCommand(chip::System::PacketBuffer * buffer, uint16_t bufferSize, uint8_t endPointId) = 0; + virtual uint16_t EncodeCommand(const PacketBufferHandle & buffer, uint16_t bufferSize, uint8_t endPointId) = 0; virtual bool HandleGlobalResponse(uint8_t commandId, uint8_t * message, uint16_t messageLen) const { return false; } virtual bool HandleSpecificResponse(uint8_t commandId, uint8_t * message, uint16_t messageLen) const { return false; } private: - bool SendCommand(ChipDeviceController * dc); - bool ReceiveCommandResponse(ChipDeviceController * dc, chip::System::PacketBuffer * buffer) const; - - void UpdateWaitForResponse(bool value); - void WaitForResponse(void); - void PrintBuffer(chip::System::PacketBuffer * buffer) const; - - std::condition_variable cvWaitingForResponse; - std::mutex cvWaitingForResponseMutex; - bool mWaitingForResponse{ false }; const uint16_t mClusterId; const uint8_t mCommandId; uint8_t mEndPointId; diff --git a/examples/chip-tool/commands/common/ModelCommandResponse.h b/examples/chip-tool/commands/clusters/ModelCommandResponse.h similarity index 100% rename from examples/chip-tool/commands/common/ModelCommandResponse.h rename to examples/chip-tool/commands/clusters/ModelCommandResponse.h diff --git a/examples/chip-tool/commands/common/Command.cpp b/examples/chip-tool/commands/common/Command.cpp index f10e96f791da5e..a0df8493a50417 100644 --- a/examples/chip-tool/commands/common/Command.cpp +++ b/examples/chip-tool/commands/common/Command.cpp @@ -295,3 +295,23 @@ const char * Command::GetAttribute(void) const return nullptr; } + +void Command::UpdateWaitForResponse(bool value) +{ + { + std::lock_guard lk(cvWaitingForResponseMutex); + mWaitingForResponse = value; + } + cvWaitingForResponse.notify_all(); +} + +void Command::WaitForResponse(uint16_t duration) +{ + std::chrono::seconds waitingForResponseTimeout(duration); + std::unique_lock lk(cvWaitingForResponseMutex); + auto waitingUntil = std::chrono::system_clock::now() + waitingForResponseTimeout; + if (!cvWaitingForResponse.wait_until(lk, waitingUntil, [this]() { return !this->mWaitingForResponse; })) + { + ChipLogError(chipTool, "No response from device"); + } +} diff --git a/examples/chip-tool/commands/common/Command.h b/examples/chip-tool/commands/common/Command.h index 8c81731d486726..28557d34951374 100644 --- a/examples/chip-tool/commands/common/Command.h +++ b/examples/chip-tool/commands/common/Command.h @@ -22,10 +22,14 @@ #include #include +#include +#include #include +#include #include class Command; +class PersistentStorage; template std::unique_ptr make_unique(Args &&... args) @@ -69,10 +73,14 @@ struct Argument class Command { public: - using ChipDeviceController = ::chip::DeviceController::ChipDeviceController; - using IPAddress = ::chip::Inet::IPAddress; - using PacketBuffer = ::chip::System::PacketBuffer; - using NodeId = ::chip::NodeId; + using ChipDeviceCommissioner = ::chip::Controller::DeviceCommissioner; + using ChipSerializedDevice = ::chip::Controller::SerializedDevice; + using ChipDevice = ::chip::Controller::Device; + using PeerAddress = ::chip::Transport::PeerAddress; + using IPAddress = ::chip::Inet::IPAddress; + using PacketBuffer = ::chip::System::PacketBuffer; + using PacketBufferHandle = ::chip::System::PacketBufferHandle; + using NodeId = ::chip::NodeId; struct AddressWithInterface { @@ -133,11 +141,14 @@ class Command return AddArgument(name, min, max, reinterpret_cast(out), Number_uint64); } - virtual CHIP_ERROR Run(ChipDeviceController * dc, NodeId remoteId) = 0; + virtual CHIP_ERROR Run(PersistentStorage & storage, NodeId localId, NodeId remoteId) = 0; bool GetCommandExitStatus() const { return mCommandExitStatus; } void SetCommandExitStatus(bool status) { mCommandExitStatus = status; } + void UpdateWaitForResponse(bool value); + void WaitForResponse(uint16_t duration); + private: bool InitArgument(size_t argIndex, const char * argValue); size_t AddArgument(const char * name, int64_t min, uint64_t max, void * out, ArgumentType type); @@ -146,4 +157,8 @@ class Command bool mCommandExitStatus = false; const char * mName = nullptr; std::vector mArgs; + + std::condition_variable cvWaitingForResponse; + std::mutex cvWaitingForResponseMutex; + bool mWaitingForResponse{ false }; }; diff --git a/examples/chip-tool/commands/common/Commands.cpp b/examples/chip-tool/commands/common/Commands.cpp index b87344b387529c..346d507fa34aba 100644 --- a/examples/chip-tool/commands/common/Commands.cpp +++ b/examples/chip-tool/commands/common/Commands.cpp @@ -36,35 +36,24 @@ void Commands::Register(const char * clusterName, commands_list commandsList) int Commands::Run(NodeId localId, NodeId remoteId, int argc, char ** argv) { + CHIP_ERROR err = CHIP_NO_ERROR; + PersistentStorage storage; ConfigureChipLogging(); - CHIP_ERROR err = chip::Platform::MemoryInit(); - if (err != CHIP_NO_ERROR) - { - ChipLogError(Controller, "Init Memory failure: %s", chip::ErrorStr(err)); - } - else - { - - ChipDeviceController dc; - - err = dc.Init(localId); - VerifyOrExit(err == CHIP_NO_ERROR, ChipLogError(Controller, "Init failure: %s", chip::ErrorStr(err))); + err = chip::Platform::MemoryInit(); + VerifyOrExit(err == CHIP_NO_ERROR, ChipLogError(Controller, "Init Memory failure: %s", chip::ErrorStr(err))); - err = dc.ServiceEvents(); - VerifyOrExit(err == CHIP_NO_ERROR, ChipLogError(Controller, "Init Run Loop failure: %s", chip::ErrorStr(err))); + err = storage.Init(); + VerifyOrExit(err == CHIP_NO_ERROR, ChipLogError(Controller, "Init Storage failure: %s", chip::ErrorStr(err))); - err = RunCommand(dc, remoteId, argc, argv); - SuccessOrExit(err); + err = RunCommand(storage, localId, remoteId, argc, argv); + SuccessOrExit(err); - exit: - dc.ServiceEventSignal(); - dc.Shutdown(); - } +exit: return (err == CHIP_NO_ERROR) ? EXIT_SUCCESS : EXIT_FAILURE; } -CHIP_ERROR Commands::RunCommand(ChipDeviceController & dc, NodeId remoteId, int argc, char ** argv) +CHIP_ERROR Commands::RunCommand(PersistentStorage & storage, NodeId localId, NodeId remoteId, int argc, char ** argv) { CHIP_ERROR err = CHIP_NO_ERROR; std::map::iterator cluster; @@ -126,7 +115,7 @@ CHIP_ERROR Commands::RunCommand(ChipDeviceController & dc, NodeId remoteId, int ExitNow(err = CHIP_ERROR_INVALID_ARGUMENT); } - err = command->Run(&dc, remoteId); + err = command->Run(storage, localId, remoteId); if (err != CHIP_NO_ERROR) { ChipLogError(chipTool, "Run command failure: %s", chip::ErrorStr(err)); diff --git a/examples/chip-tool/commands/common/Commands.h b/examples/chip-tool/commands/common/Commands.h index 531b557994ada7..68dcb5a6d5aefb 100644 --- a/examples/chip-tool/commands/common/Commands.h +++ b/examples/chip-tool/commands/common/Commands.h @@ -18,23 +18,21 @@ #pragma once +#include "../../config/PersistentStorage.h" #include "Command.h" #include -#include - class Commands { public: - using ChipDeviceController = ::chip::DeviceController::ChipDeviceController; - using NodeId = ::chip::NodeId; - using CommandsVector = ::std::vector>; + using NodeId = ::chip::NodeId; + using CommandsVector = ::std::vector>; void Register(const char * clusterName, commands_list commandsList); int Run(NodeId localId, NodeId remoteId, int argc, char ** argv); private: - CHIP_ERROR RunCommand(ChipDeviceController & dc, NodeId remoteId, int argc, char ** argv); + CHIP_ERROR RunCommand(PersistentStorage & storage, NodeId localId, NodeId remoteId, int argc, char ** argv); std::map::iterator GetCluster(std::string clusterName); Command * GetCommand(CommandsVector & commands, std::string commandName); Command * GetGlobalCommand(CommandsVector & commands, std::string commandName, std::string attributeName); diff --git a/examples/chip-tool/commands/common/EchoCommand.cpp b/examples/chip-tool/commands/common/EchoCommand.cpp deleted file mode 100644 index 10de3016edb082..00000000000000 --- a/examples/chip-tool/commands/common/EchoCommand.cpp +++ /dev/null @@ -1,97 +0,0 @@ -/* - * Copyright (c) 2020 Project CHIP Authors - * All rights reserved. - * - * 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. - * - */ - -#include "EchoCommand.h" - -using namespace ::chip; -using namespace ::chip::DeviceController; - -#define SEND_DELAY 5 -static const char * PAYLOAD = "Message from Standalone CHIP echo client!"; - -void EchoCommand::SendEcho() const -{ - size_t payloadLen = strlen(PAYLOAD); - if (payloadLen > UINT16_MAX) - { - ChipLogError(chipTool, "PAYLOAD length too big for PacketBuffer (> UINT16_MAX)"); - return; - } - - // Reallocate buffer on each run, as the secure transport encrypts and - // overwrites the buffer from previous iteration. - auto * buffer = PacketBuffer::NewWithAvailableSize(static_cast(payloadLen)); - if (buffer == nullptr) - { - ChipLogError(chipTool, "Failed to allocate memory for packet data."); - return; - } - - memcpy(buffer->Start(), PAYLOAD, payloadLen); - buffer->SetDataLength(static_cast(payloadLen)); - - CHIP_ERROR err = mController->SendMessage(NULL, buffer); - if (err == CHIP_NO_ERROR) - { - ChipLogProgress(chipTool, "Echo (%s): Message sent to server", GetNetworkName()); - } - else - { - ChipLogError(chipTool, "Echo (%s): %s", GetNetworkName(), ErrorStr(err)); - } -} - -void EchoCommand::ReceiveEcho(PacketBuffer * buffer) const -{ - // attempt to print the incoming message - size_t data_len = buffer->DataLength(); - char msg_buffer[data_len]; - msg_buffer[data_len] = 0; // Null-terminate whatever we received and treat like a string... - memcpy(msg_buffer, buffer->Start(), data_len); - - bool isEchoIdenticalToMessage = strncmp(msg_buffer, PAYLOAD, data_len) == 0; - if (isEchoIdenticalToMessage) - { - ChipLogProgress(chipTool, "Echo (%s): Received expected message !", GetNetworkName()); - } - else - { - ChipLogError(chipTool, "Echo: (%s): Error \nSend: %s \nRecv: %s", GetNetworkName(), PAYLOAD, msg_buffer); - } -} - -CHIP_ERROR EchoCommand::Run(ChipDeviceController * dc, NodeId remoteId) -{ - CHIP_ERROR err = CHIP_NO_ERROR; - - err = NetworkCommand::Run(dc, remoteId); - SuccessOrExit(err); - - // Run command until the user exits the process - while (1) - { - if (mController != nullptr) - { - SendEcho(); - } - sleep(SEND_DELAY); - } - -exit: - return err; -} diff --git a/examples/chip-tool/commands/common/EchoCommand.h b/examples/chip-tool/commands/common/EchoCommand.h deleted file mode 100644 index 97a2adb34b0109..00000000000000 --- a/examples/chip-tool/commands/common/EchoCommand.h +++ /dev/null @@ -1,41 +0,0 @@ -/* - * Copyright (c) 2020 Project CHIP Authors - * All rights reserved. - * - * 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. - * - */ - -#pragma once - -#include "NetworkCommand.h" - -class EchoCommand : public NetworkCommand -{ -public: - EchoCommand(const char * name, NetworkType type) : NetworkCommand(name, type) {} - - /////////// Command Interface ///////// - CHIP_ERROR Run(ChipDeviceController * dc, NodeId remoteId) override; - - /////////// IPCommand Interface ///////// - void OnConnect(ChipDeviceController * dc) override { mController = dc; } - void OnMessage(ChipDeviceController * dc, chip::System::PacketBuffer * buffer) override { ReceiveEcho(buffer); } - void OnError(ChipDeviceController * dc, CHIP_ERROR err) override { mController = nullptr; } - -private: - void SendEcho(void) const; - void ReceiveEcho(chip::System::PacketBuffer * buffer) const; - - ChipDeviceController * mController = nullptr; -}; diff --git a/examples/chip-tool/commands/common/NetworkCommand.cpp b/examples/chip-tool/commands/common/NetworkCommand.cpp index a49be61ceb9a9b..e79cc7f11c8bfb 100644 --- a/examples/chip-tool/commands/common/NetworkCommand.cpp +++ b/examples/chip-tool/commands/common/NetworkCommand.cpp @@ -19,77 +19,96 @@ #include "NetworkCommand.h" using namespace ::chip; -using namespace ::chip::DeviceController; -using namespace ::chip::System; -static void onConnect(ChipDeviceController * dc, Transport::PeerConnectionState * state, void * appReqState) -{ - ChipLogDetail(chipTool, "OnConnect"); +constexpr uint16_t kWaitDurationInSeconds = 10; - NetworkCommand * command = reinterpret_cast(dc->AppState); - command->OnConnect(dc); -} +// Make sure our buffer is big enough, but this will need a better setup! +constexpr uint16_t kMaxBufferSize = 1024; -static void onError(ChipDeviceController * dc, void * appReqState, CHIP_ERROR err, const Inet::IPPacketInfo * pi) +CHIP_ERROR NetworkCommand::Run(PersistentStorage & storage, NodeId localId, NodeId remoteId) { - ChipLogError(chipTool, "OnError: %s", ErrorStr(err)); + CHIP_ERROR err = CHIP_NO_ERROR; + + err = mCommissioner.Init(localId, &storage); + VerifyOrExit(err == CHIP_NO_ERROR, ChipLogError(Controller, "Init failure! Commissioner: %s", chip::ErrorStr(err))); + + err = mCommissioner.ServiceEvents(); + VerifyOrExit(err == CHIP_NO_ERROR, ChipLogError(Controller, "Init failure! Run Loop: %s", chip::ErrorStr(err))); + + err = RunInternal(remoteId); + SuccessOrExit(err); + + VerifyOrExit(GetCommandExitStatus(), err = CHIP_ERROR_INTERNAL); - NetworkCommand * command = reinterpret_cast(dc->AppState); - command->OnError(dc, err); +exit: + mCommissioner.ServiceEventSignal(); + mCommissioner.Shutdown(); + return err; } -static void onMessage(ChipDeviceController * dc, void * appReqState, PacketBuffer * buffer) +CHIP_ERROR NetworkCommand::RunInternal(NodeId remoteId) { - ChipLogDetail(chipTool, "OnMessage: Received %zu bytes", buffer->DataLength()); + ChipDevice * device; + CHIP_ERROR err = mCommissioner.GetDevice(remoteId, &device); + VerifyOrExit(err == CHIP_NO_ERROR, ChipLogError(chipTool, "Could not find a paired device. Are you sure it has been paired ?")); - NetworkCommand * command = reinterpret_cast(dc->AppState); - command->OnMessage(dc, buffer); + device->SetDelegate(this); - PacketBuffer::Free(buffer); + err = RunCommandInternal(device); + SuccessOrExit(err); + + UpdateWaitForResponse(true); + WaitForResponse(kWaitDurationInSeconds); + +exit: + return err; } -CHIP_ERROR NetworkCommand::Run(ChipDeviceController * dc, NodeId remoteId) +CHIP_ERROR NetworkCommand::RunCommandInternal(ChipDevice * device) { - CHIP_ERROR err = CHIP_NO_ERROR; + CHIP_ERROR err = CHIP_NO_ERROR; + uint16_t payloadLen = 0; - dc->AppState = reinterpret_cast(this); + PacketBufferHandle buffer = PacketBuffer::NewWithAvailableSize(kMaxBufferSize); + VerifyOrExit(!buffer.IsNull(), err = CHIP_ERROR_NO_MEMORY); - switch (mNetworkType) - { - case NetworkType::BLE: - err = ConnectBLE(dc, remoteId); - break; - - case NetworkType::UDP: - err = ConnectUDP(dc, remoteId); - break; - - case NetworkType::ALL: - ChipLogError(chipTool, "Not implemented yet."); - err = CHIP_ERROR_UNSUPPORTED_CHIP_FEATURE; - break; - } + payloadLen = Encode(buffer, kMaxBufferSize); + VerifyOrExit(payloadLen != 0, err = CHIP_ERROR_INVALID_MESSAGE_LENGTH); + + buffer->SetDataLength(payloadLen); + +#ifdef DEBUG + PrintBuffer(buffer); +#endif - VerifyOrExit(err == CHIP_NO_ERROR, ChipLogError(chipTool, "Failed to connect to the device")); + err = device->SendMessage(std::move(buffer)); + VerifyOrExit(err == CHIP_NO_ERROR, ChipLogError(chipTool, "Failed to send message: %s", ErrorStr(err))); exit: return err; } -CHIP_ERROR NetworkCommand::ConnectBLE(ChipDeviceController * dc, NodeId remoteId) +void NetworkCommand::OnMessage(PacketBufferHandle buffer) { - snprintf(mName, sizeof(mName), "BLE:%u", mDiscriminator); + ChipLogDetail(chipTool, "OnMessage: Received %zu bytes", buffer->DataLength()); + + SetCommandExitStatus(Decode(buffer)); + UpdateWaitForResponse(false); +} - RendezvousParameters params = RendezvousParameters().SetSetupPINCode(mSetupPINCode).SetDiscriminator(mDiscriminator); - return dc->ConnectDevice(remoteId, params, NULL, onConnect, onMessage, onError); +void NetworkCommand::OnStatusChange(void) +{ + ChipLogProgress(chipTool, "DeviceStatusDelegate::OnStatusChange"); } -CHIP_ERROR NetworkCommand::ConnectUDP(ChipDeviceController * dc, NodeId remoteId) +void NetworkCommand::PrintBuffer(PacketBufferHandle & buffer) const { - char hostIpStr[40]; - mRemoteAddr.address.ToString(hostIpStr, sizeof(hostIpStr)); - snprintf(mName, sizeof(mName), "%s:%d", hostIpStr, mRemotePort); + const size_t data_len = buffer->DataLength(); - return dc->ConnectDeviceWithoutSecurePairing(remoteId, mRemoteAddr.address, nullptr, onConnect, onMessage, onError, mRemotePort, - mRemoteAddr.interfaceId); + fprintf(stderr, "SENDING: %zu ", data_len); + for (size_t i = 0; i < data_len; ++i) + { + fprintf(stderr, "%d ", buffer->Start()[i]); + } + fprintf(stderr, "\n"); } diff --git a/examples/chip-tool/commands/common/NetworkCommand.h b/examples/chip-tool/commands/common/NetworkCommand.h index 5ba729c709e46a..d520f6d7dfd0e5 100644 --- a/examples/chip-tool/commands/common/NetworkCommand.h +++ b/examples/chip-tool/commands/common/NetworkCommand.h @@ -18,51 +18,29 @@ #pragma once +#include "../../config/PersistentStorage.h" #include "Command.h" -enum NetworkType -{ - UDP, - BLE, - ALL -}; - -class NetworkCommand : public Command +class NetworkCommand : public Command, public chip::Controller::DeviceStatusDelegate { public: - NetworkCommand(const char * commandName, NetworkType type) : Command(commandName), mNetworkType(type) {} + NetworkCommand(const char * commandName) : Command(commandName) {} - void AddArguments() - { - if (mNetworkType == NetworkType::UDP || mNetworkType == NetworkType::ALL) - { - AddArgument("device-remote-ip", &mRemoteAddr); - AddArgument("device-remote-port", 0, UINT16_MAX, &mRemotePort); - } + virtual uint16_t Encode(PacketBufferHandle & buffer, uint16_t bufferSize) = 0; + virtual bool Decode(PacketBufferHandle & buffer) const = 0; - if (mNetworkType == NetworkType::BLE || mNetworkType == NetworkType::ALL) - { - AddArgument("setup-pin-code", 0, 134217727, &mSetupPINCode); - AddArgument("discriminator", 0, 4096, &mDiscriminator); - } - } + /////////// Command Interface ///////// + CHIP_ERROR Run(PersistentStorage & storage, NodeId localId, NodeId remoteId) override; - const char * GetNetworkName(void) const { return mName; } - - virtual void OnConnect(ChipDeviceController * dc) = 0; - virtual void OnError(ChipDeviceController * dc, CHIP_ERROR err) = 0; - virtual void OnMessage(ChipDeviceController * dc, chip::System::PacketBuffer * buffer) = 0; - - CHIP_ERROR Run(ChipDeviceController * dc, NodeId remoteId) override; + /////////// DeviceStatusDelegate Interface ///////// + void OnMessage(PacketBufferHandle buffer) override; + void OnStatusChange(void) override; private: - const NetworkType mNetworkType; - CHIP_ERROR ConnectBLE(ChipDeviceController * dc, NodeId remoteId); - CHIP_ERROR ConnectUDP(ChipDeviceController * dc, NodeId remoteId); + CHIP_ERROR RunInternal(NodeId remoteId); + CHIP_ERROR RunCommandInternal(ChipDevice * device); + + void PrintBuffer(PacketBufferHandle & buffer) const; - char mName[46]; - Command::AddressWithInterface mRemoteAddr; - uint16_t mRemotePort; - uint16_t mDiscriminator; - uint32_t mSetupPINCode; + ChipDeviceCommissioner mCommissioner; }; diff --git a/examples/chip-tool/commands/echo/Commands.h b/examples/chip-tool/commands/echo/Commands.h index 94490fe6e68286..a9702dbe3d607b 100644 --- a/examples/chip-tool/commands/echo/Commands.h +++ b/examples/chip-tool/commands/echo/Commands.h @@ -18,18 +18,12 @@ #pragma once -#include "../common/EchoCommand.h" +#include "EchoCommand.h" class Echo : public EchoCommand { public: - Echo() : EchoCommand("ip", NetworkType::UDP) { NetworkCommand::AddArguments(); } -}; - -class EchoBle : public EchoCommand -{ -public: - EchoBle() : EchoCommand("ble", NetworkType::BLE) { NetworkCommand::AddArguments(); } + Echo() : EchoCommand("ip") {} }; void registerCommandsEcho(Commands & commands) @@ -38,7 +32,6 @@ void registerCommandsEcho(Commands & commands) commands_list clusterCommands = { make_unique(), - make_unique(), }; commands.Register(clusterName, clusterCommands); diff --git a/examples/chip-tool/commands/echo/EchoCommand.cpp b/examples/chip-tool/commands/echo/EchoCommand.cpp new file mode 100644 index 00000000000000..04e2fe20ab49b0 --- /dev/null +++ b/examples/chip-tool/commands/echo/EchoCommand.cpp @@ -0,0 +1,60 @@ +/* + * Copyright (c) 2020 Project CHIP Authors + * All rights reserved. + * + * 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. + * + */ + +#include "EchoCommand.h" + +using namespace ::chip; + +namespace { +static const char PAYLOAD[] = "Message from Standalone CHIP echo client!"; + +bool IsIdenticalMessage(System::PacketBufferHandle & buffer) +{ + size_t dataLen = buffer->DataLength(); + return (dataLen + 1 == sizeof PAYLOAD) && (memcmp(buffer->Start(), PAYLOAD, dataLen) == 0); +} +} // namespace + +uint16_t EchoCommand::Encode(PacketBufferHandle & buffer, uint16_t bufferSize) +{ + uint16_t payloadLen = 0; + + if (strlen(PAYLOAD) > bufferSize) + { + ChipLogError(chipTool, "PAYLOAD length too big for PacketBuffer (> bufferSize)"); + } + else + { + payloadLen = static_cast(strlen(PAYLOAD)); + memcpy(buffer->Start(), PAYLOAD, payloadLen); + } + + return payloadLen; +} + +bool EchoCommand::Decode(PacketBufferHandle & buffer) const +{ + bool success = IsIdenticalMessage(buffer); + + if (!success) + { + ChipLogError(chipTool, "Echo: Error \nSend: %s \nRecv: %.*s", PAYLOAD, buffer->DataLength(), buffer->Start()); + } + + return success; +} diff --git a/src/controller/java/AndroidDevicePairingDelegate.h b/examples/chip-tool/commands/echo/EchoCommand.h similarity index 61% rename from src/controller/java/AndroidDevicePairingDelegate.h rename to examples/chip-tool/commands/echo/EchoCommand.h index 5aac026e8439f9..5ce008d68ff8b0 100644 --- a/src/controller/java/AndroidDevicePairingDelegate.h +++ b/examples/chip-tool/commands/echo/EchoCommand.h @@ -18,12 +18,14 @@ #pragma once -#include +#include "../common/NetworkCommand.h" -class AndroidDevicePairingDelegate : public chip::DeviceController::DevicePairingDelegate +class EchoCommand : public NetworkCommand { public: - void OnNetworkCredentialsRequested(chip::RendezvousDeviceCredentialsDelegate * callback) override; - void OnOperationalCredentialsRequested(const char * csr, size_t csr_length, - chip::RendezvousDeviceCredentialsDelegate * callback) override; + EchoCommand(const char * commandName) : NetworkCommand(commandName) {} + + /////////// NetworkCommand Interface ///////// + uint16_t Encode(PacketBufferHandle & buffer, uint16_t bufferSize) override; + bool Decode(PacketBufferHandle & buffer) const override; }; diff --git a/examples/chip-tool/commands/pairing/Commands.h b/examples/chip-tool/commands/pairing/Commands.h new file mode 100644 index 00000000000000..3f760d93a554e7 --- /dev/null +++ b/examples/chip-tool/commands/pairing/Commands.h @@ -0,0 +1,59 @@ +/* + * Copyright (c) 2020 Project CHIP Authors + * All rights reserved. + * + * 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. + * + */ + +#pragma once + +#include "PairingCommand.h" + +class Unpair : public PairingCommand +{ +public: + Unpair() : PairingCommand("unpair", PairingMode::None) {} +}; + +class PairBypass : public PairingCommand +{ +public: + PairBypass() : PairingCommand("bypass", PairingMode::Bypass) {} +}; + +class PairBle : public PairingCommand +{ +public: + PairBle() : PairingCommand("ble", PairingMode::Ble) {} +}; + +class PairSoftAP : public PairingCommand +{ +public: + PairSoftAP() : PairingCommand("softap", PairingMode::SoftAP) {} +}; + +void registerCommandsPairing(Commands & commands) +{ + const char * clusterName = "Pairing"; + + commands_list clusterCommands = { + make_unique(), + make_unique(), + make_unique(), + make_unique(), + }; + + commands.Register(clusterName, clusterCommands); +} diff --git a/examples/chip-tool/commands/pairing/PairingCommand.cpp b/examples/chip-tool/commands/pairing/PairingCommand.cpp new file mode 100644 index 00000000000000..6be2b74925d600 --- /dev/null +++ b/examples/chip-tool/commands/pairing/PairingCommand.cpp @@ -0,0 +1,149 @@ +/* + * Copyright (c) 2020 Project CHIP Authors + * All rights reserved. + * + * 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. + * + */ + +#include "PairingCommand.h" + +using namespace ::chip; + +constexpr uint16_t kWaitDurationInSeconds = 120; + +CHIP_ERROR PairingCommand::Run(PersistentStorage & storage, NodeId localId, NodeId remoteId) +{ + CHIP_ERROR err = CHIP_NO_ERROR; + + err = mCommissioner.Init(localId, &storage, this); + VerifyOrExit(err == CHIP_NO_ERROR, ChipLogError(Controller, "Init failure! Commissioner: %s", chip::ErrorStr(err))); + + err = mCommissioner.ServiceEvents(); + VerifyOrExit(err == CHIP_NO_ERROR, ChipLogError(Controller, "Init failure! Run Loop: %s", chip::ErrorStr(err))); + + err = RunInternal(remoteId); + VerifyOrExit(err == CHIP_NO_ERROR, ChipLogError(chipTool, "Init Failure! PairDevice: %s", chip::ErrorStr(err))); + +exit: + mCommissioner.ServiceEventSignal(); + mCommissioner.Shutdown(); + return err; +} + +CHIP_ERROR PairingCommand::RunInternal(NodeId remoteId) +{ + CHIP_ERROR err = CHIP_NO_ERROR; + + UpdateWaitForResponse(true); + switch (mPairingMode) + { + case PairingMode::None: + err = Unpair(remoteId); + break; + case PairingMode::Bypass: + err = PairWithoutSecurity(remoteId, PeerAddress::UDP(mRemoteAddr.address, mRemotePort)); + break; + case PairingMode::Ble: + err = Pair(remoteId, PeerAddress::BLE()); + break; + case PairingMode::SoftAP: + err = Pair(remoteId, PeerAddress::UDP(mRemoteAddr.address, mRemotePort)); + break; + } + WaitForResponse(kWaitDurationInSeconds); + + return err; +} + +CHIP_ERROR PairingCommand::Pair(NodeId remoteId, PeerAddress address) +{ + RendezvousParameters params = + RendezvousParameters().SetSetupPINCode(mSetupPINCode).SetDiscriminator(mDiscriminator).SetPeerAddress(address); + + return mCommissioner.PairDevice(remoteId, params); +} + +CHIP_ERROR PairingCommand::PairWithoutSecurity(NodeId remoteId, PeerAddress address) +{ + ChipSerializedDevice serializedTestDevice; + return mCommissioner.PairTestDeviceWithoutSecurity(remoteId, address.GetIPAddress(), serializedTestDevice, address.GetPort()); +} + +CHIP_ERROR PairingCommand::Unpair(NodeId remoteId) +{ + UpdateWaitForResponse(false); + return mCommissioner.UnpairDevice(remoteId); +} + +void PairingCommand::OnStatusUpdate(RendezvousSessionDelegate::Status status) +{ + switch (status) + { + case RendezvousSessionDelegate::Status::SecurePairingSuccess: + ChipLogProgress(chipTool, "Secure Pairing Success"); + break; + case RendezvousSessionDelegate::Status::SecurePairingFailed: + ChipLogError(chipTool, "Secure Pairing Failed"); + break; + case RendezvousSessionDelegate::Status::NetworkProvisioningSuccess: + ChipLogProgress(chipTool, "Network Provisioning Success"); + break; + case RendezvousSessionDelegate::Status::NetworkProvisioningFailed: + ChipLogError(chipTool, "Network Provisioning Failed"); + break; + } +} + +void PairingCommand::OnNetworkCredentialsRequested(RendezvousDeviceCredentialsDelegate * callback) +{ + ChipLogProgress(chipTool, "OnNetworkCredentialsRequested"); + callback->SendNetworkCredentials(mSSID, mPassword); +} + +void PairingCommand::OnOperationalCredentialsRequested(const char * csr, size_t csr_length, + RendezvousDeviceCredentialsDelegate * callback) +{ + // TODO Implement this + ChipLogProgress(chipTool, "OnOperationalCredentialsRequested"); +} + +void PairingCommand::OnPairingComplete(CHIP_ERROR err) +{ + if (err == CHIP_NO_ERROR) + { + ChipLogProgress(chipTool, "Pairing Success"); + } + else + { + ChipLogProgress(chipTool, "Pairing Failure: %s", chip::ErrorStr(err)); + } + + SetCommandExitStatus(err == CHIP_NO_ERROR); + UpdateWaitForResponse(false); +} + +void PairingCommand::OnPairingDeleted(CHIP_ERROR err) +{ + if (err == CHIP_NO_ERROR) + { + ChipLogProgress(chipTool, "Pairing Deleted Success"); + } + else + { + ChipLogProgress(chipTool, "Pairing Deleted Failure: %s", chip::ErrorStr(err)); + } + + SetCommandExitStatus(err == CHIP_NO_ERROR); + UpdateWaitForResponse(false); +} diff --git a/examples/chip-tool/commands/pairing/PairingCommand.h b/examples/chip-tool/commands/pairing/PairingCommand.h new file mode 100644 index 00000000000000..e91fc8d8caf1b0 --- /dev/null +++ b/examples/chip-tool/commands/pairing/PairingCommand.h @@ -0,0 +1,89 @@ +/* + * Copyright (c) 2020 Project CHIP Authors + * All rights reserved. + * + * 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. + * + */ + +#pragma once + +#include "../../config/PersistentStorage.h" +#include "../common/Command.h" + +enum class PairingMode +{ + None, + Bypass, + Ble, + SoftAP, +}; + +class PairingCommand : public Command, public chip::Controller::DevicePairingDelegate +{ +public: + PairingCommand(const char * commandName, PairingMode mode) : + Command(commandName), mPairingMode(mode), mRemoteAddr{ IPAddress::Any, INET_NULL_INTERFACEID } + { + switch (mode) + { + case PairingMode::None: + break; + case PairingMode::Bypass: + AddArgument("device-remote-ip", &mRemoteAddr); + AddArgument("device-remote-port", 0, UINT16_MAX, &mRemotePort); + break; + case PairingMode::Ble: + AddArgument("ssid", &mSSID); + AddArgument("password", &mPassword); + AddArgument("setup-pin-code", 0, 134217727, &mSetupPINCode); + AddArgument("discriminator", 0, 4096, &mDiscriminator); + break; + case PairingMode::SoftAP: + AddArgument("ssid", &mSSID); + AddArgument("password", &mPassword); + AddArgument("setup-pin-code", 0, 134217727, &mSetupPINCode); + AddArgument("discriminator", 0, 4096, &mDiscriminator); + AddArgument("device-remote-ip", &mRemoteAddr); + AddArgument("device-remote-port", 0, UINT16_MAX, &mRemotePort); + break; + } + } + + /////////// Command Interface ///////// + CHIP_ERROR Run(PersistentStorage & storage, NodeId localId, NodeId remoteId) override; + + /////////// DevicePairingDelegate Interface ///////// + void OnStatusUpdate(chip::RendezvousSessionDelegate::Status status) override; + void OnNetworkCredentialsRequested(chip::RendezvousDeviceCredentialsDelegate * callback) override; + void OnOperationalCredentialsRequested(const char * csr, size_t csr_length, + chip::RendezvousDeviceCredentialsDelegate * callback) override; + void OnPairingComplete(CHIP_ERROR error) override; + void OnPairingDeleted(CHIP_ERROR error) override; + +private: + CHIP_ERROR RunInternal(NodeId remoteId); + CHIP_ERROR Pair(NodeId remoteId, PeerAddress address); + CHIP_ERROR PairWithoutSecurity(NodeId remoteId, PeerAddress address); + CHIP_ERROR Unpair(NodeId remoteId); + + const PairingMode mPairingMode; + Command::AddressWithInterface mRemoteAddr; + uint16_t mRemotePort; + uint16_t mDiscriminator; + uint32_t mSetupPINCode; + char * mSSID; + char * mPassword; + + ChipDeviceCommissioner mCommissioner; +}; diff --git a/examples/chip-tool/commands/payload/Commands.h b/examples/chip-tool/commands/payload/Commands.h new file mode 100644 index 00000000000000..83c1124af44910 --- /dev/null +++ b/examples/chip-tool/commands/payload/Commands.h @@ -0,0 +1,31 @@ +/* + * Copyright (c) 2020 Project CHIP Authors + * All rights reserved. + * + * 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. + * + */ + +#pragma once + +#include "ParseCommand.h" + +void registerCommandsPayload(Commands & commands) +{ + const char * clusterName = "Payload"; + commands_list clusterCommands = { + make_unique(), + }; + + commands.Register(clusterName, clusterCommands); +} diff --git a/examples/chip-tool/commands/payload/ParseCommand.cpp b/examples/chip-tool/commands/payload/ParseCommand.cpp new file mode 100644 index 00000000000000..534efb14e2acc9 --- /dev/null +++ b/examples/chip-tool/commands/payload/ParseCommand.cpp @@ -0,0 +1,104 @@ +/* + * Copyright (c) 2020 Project CHIP Authors + * All rights reserved. + * + * 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. + * + */ + +#include "ParseCommand.h" +#include +#include +#include + +using namespace ::chip; + +CHIP_ERROR ParseCommand::Run(PersistentStorage & storage, NodeId localId, NodeId remoteId) +{ + std::string codeString(mCode); + SetupPayload payload; + + CHIP_ERROR err = CHIP_NO_ERROR; + err = Parse(codeString, payload); + SuccessOrExit(err); + + err = Print(payload); + SuccessOrExit(err); +exit: + return err; +} + +CHIP_ERROR ParseCommand::Print(chip::SetupPayload payload) +{ + std::string serialNumber; + std::vector optionalVendorData; + CHIP_ERROR err = CHIP_NO_ERROR; + + ChipLogProgress(SetupPayload, "RequiresCustomFlow: %u", payload.requiresCustomFlow); + ChipLogProgress(SetupPayload, "VendorID: %u", payload.vendorID); + ChipLogProgress(SetupPayload, "Version: %u", payload.version); + ChipLogProgress(SetupPayload, "ProductID: %u", payload.productID); + ChipLogProgress(SetupPayload, "Discriminator: %u", payload.discriminator); + ChipLogProgress(SetupPayload, "SetUpPINCode: %u", payload.setUpPINCode); + ChipLogProgress(SetupPayload, "RendezvousInformation: %u", payload.rendezvousInformation); + + if (payload.getSerialNumber(serialNumber) == CHIP_NO_ERROR) + { + ChipLogProgress(SetupPayload, "SerialNumber: %s", serialNumber.c_str()); + } + + optionalVendorData = payload.getAllOptionalVendorData(); + for (const OptionalQRCodeInfo & info : optionalVendorData) + { + if (info.type == optionalQRCodeInfoTypeString) + { + ChipLogProgress(SetupPayload, "OptionalQRCodeInfo: tag=%u,string value=%s", info.tag, info.data.c_str()); + } + else if (info.type == optionalQRCodeInfoTypeInt32) + { + ChipLogProgress(SetupPayload, "OptionalQRCodeInfo: tag=%u,int value=%u", info.tag, info.int32); + } + else + { + err = CHIP_ERROR_INVALID_ARGUMENT; + } + } + + SuccessOrExit(err); + +exit: + return err; +} + +CHIP_ERROR ParseCommand::Parse(std::string codeString, chip::SetupPayload & payload) +{ + + CHIP_ERROR err = CHIP_NO_ERROR; + if (IsQRCode(codeString)) + { + ChipLogDetail(SetupPayload, "Parsing base41Representation: %s", codeString.c_str()); + err = QRCodeSetupPayloadParser(codeString).populatePayload(payload); + } + else + { + ChipLogDetail(SetupPayload, "Parsing decimalRepresentation: %s", codeString.c_str()); + err = ManualSetupPayloadParser(codeString).populatePayload(payload); + } + + return err; +} + +bool ParseCommand::IsQRCode(std::string codeString) +{ + return codeString.rfind(QRCODE_PREFIX) == 0; +} diff --git a/examples/chip-tool/commands/payload/ParseCommand.h b/examples/chip-tool/commands/payload/ParseCommand.h new file mode 100644 index 00000000000000..f7d2a41a7ad8cc --- /dev/null +++ b/examples/chip-tool/commands/payload/ParseCommand.h @@ -0,0 +1,36 @@ +/* + * Copyright (c) 2020 Project CHIP Authors + * All rights reserved. + * + * 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. + * + */ + +#pragma once + +#include "../common/Command.h" +#include + +class ParseCommand : public Command +{ +public: + ParseCommand() : Command("parse") { AddArgument("code", &mCode); } + CHIP_ERROR Run(PersistentStorage & storage, NodeId localId, NodeId remoteId) override; + +private: + char * mCode; + CHIP_ERROR Parse(std::string codeString, chip::SetupPayload & payload); + CHIP_ERROR Print(chip::SetupPayload payload); + bool IsQRCode(std::string codeString); + const std::string QRCODE_PREFIX = "CH:"; +}; diff --git a/examples/chip-tool/config/PersistentStorage.cpp b/examples/chip-tool/config/PersistentStorage.cpp new file mode 100644 index 00000000000000..24d270f3c68d38 --- /dev/null +++ b/examples/chip-tool/config/PersistentStorage.cpp @@ -0,0 +1,114 @@ +/* + * Copyright (c) 2020 Project CHIP Authors + * All rights reserved. + * + * 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. + * + */ +#include "PersistentStorage.h" + +#include + +using String = std::basic_string; +using Section = std::map; +using Sections = std::map; + +using namespace ::chip; +using namespace ::chip::Controller; + +constexpr const char kFilename[] = "/tmp/chip_tool_config.ini"; +constexpr const char kDefaultSectionName[] = "Default"; + +CHIP_ERROR PersistentStorage::Init() +{ + CHIP_ERROR err = CHIP_NO_ERROR; + + std::ifstream ifs; + ifs.open(kFilename, std::ifstream::in); + if (!ifs.good()) + { + CommitConfig(); + ifs.open(kFilename, std::ifstream::in); + } + VerifyOrExit(ifs.is_open(), err = CHIP_ERROR_OPEN_FAILED); + + mConfig.parse(ifs); + ifs.close(); + +exit: + return err; +} + +void PersistentStorage::SetDelegate(PersistentStorageResultDelegate * delegate) {} + +void PersistentStorage::GetKeyValue(const char * key) {} + +CHIP_ERROR PersistentStorage::GetKeyValue(const char * key, char * value, uint16_t & size) +{ + CHIP_ERROR err = CHIP_NO_ERROR; + std::string iniValue; + size_t iniValueLength = 0; + + auto section = mConfig.sections[kDefaultSectionName]; + auto it = section.find(key); + VerifyOrExit(it != section.end(), err = CHIP_ERROR_KEY_NOT_FOUND); + + VerifyOrExit(inipp::extract(section[key], iniValue), err = CHIP_ERROR_INVALID_ARGUMENT); + + iniValueLength = iniValue.size(); + VerifyOrExit(iniValueLength < static_cast(size) - 1, err = CHIP_ERROR_BUFFER_TOO_SMALL); + + iniValueLength = iniValue.copy(value, iniValueLength); + value[iniValueLength] = '\0'; + +exit: + return err; +} + +void PersistentStorage::SetKeyValue(const char * key, const char * value) +{ + auto section = mConfig.sections[kDefaultSectionName]; + section[key] = std::string(value); + + mConfig.sections[kDefaultSectionName] = section; + CommitConfig(); +} + +void PersistentStorage::DeleteKeyValue(const char * key) +{ + auto section = mConfig.sections[kDefaultSectionName]; + section.erase(key); + + mConfig.sections[kDefaultSectionName] = section; + CommitConfig(); +} + +CHIP_ERROR PersistentStorage::CommitConfig() +{ + CHIP_ERROR err = CHIP_NO_ERROR; + + std::ofstream ofs; + std::string tmpPath = kFilename; + tmpPath.append(".tmp"); + ofs.open(tmpPath, std::ofstream::out | std::ofstream::trunc); + VerifyOrExit(ofs.good(), err = CHIP_ERROR_WRITE_FAILED); + + mConfig.generate(ofs); + ofs.close(); + VerifyOrExit(ofs.good(), err = CHIP_ERROR_WRITE_FAILED); + + VerifyOrExit(rename(tmpPath.c_str(), kFilename) == 0, err = CHIP_ERROR_WRITE_FAILED); + +exit: + return err; +} diff --git a/examples/chip-tool/config/PersistentStorage.h b/examples/chip-tool/config/PersistentStorage.h new file mode 100644 index 00000000000000..e4b0d0ec0bea58 --- /dev/null +++ b/examples/chip-tool/config/PersistentStorage.h @@ -0,0 +1,39 @@ +/* + * Copyright (c) 2020 Project CHIP Authors + * All rights reserved. + * + * 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. + * + */ + +#pragma once + +#include +#include + +class PersistentStorage : public chip::Controller::PersistentStorageDelegate +{ +public: + CHIP_ERROR Init(); + + /////////// PersistentStorageDelegate Interface ///////// + void SetDelegate(chip::Controller::PersistentStorageResultDelegate * delegate) override; + void GetKeyValue(const char * key) override; + CHIP_ERROR GetKeyValue(const char * key, char * value, uint16_t & size) override; + void SetKeyValue(const char * key, const char * value) override; + void DeleteKeyValue(const char * key) override; + +private: + CHIP_ERROR CommitConfig(); + inipp::Ini mConfig; +}; diff --git a/examples/chip-tool/entrypoint.sh b/examples/chip-tool/entrypoint.sh index b31c5bdf1552a3..2f0bfb3b7224aa 100755 --- a/examples/chip-tool/entrypoint.sh +++ b/examples/chip-tool/entrypoint.sh @@ -2,6 +2,7 @@ service dbus start sleep 1 +service avahi-daemon start /usr/sbin/otbr-agent -I wpan0 spinel+hdlc+uart:///dev/ttyUSB0 & sleep 1 ot-ctl panid 0x1234 diff --git a/examples/chip-tool/main.cpp b/examples/chip-tool/main.cpp index 43847874a16748..a7bf3ec9b1f478 100644 --- a/examples/chip-tool/main.cpp +++ b/examples/chip-tool/main.cpp @@ -20,12 +20,10 @@ #include "commands/clusters/Commands.h" #include "commands/echo/Commands.h" +#include "commands/pairing/Commands.h" +#include "commands/payload/Commands.h" -// NOTE: Remote device ID is in sync with the echo server device id -// At some point, we may want to add an option to connect to a device without -// knowing its id, because the ID can be learned on the first response that is received. -constexpr chip::NodeId kLocalDeviceId = 112233; -constexpr chip::NodeId kRemoteDeviceId = 12344321; +#include // ================================================================================ // Main Code @@ -33,9 +31,10 @@ constexpr chip::NodeId kRemoteDeviceId = 12344321; int main(int argc, char * argv[]) { Commands commands; - registerCommandsEcho(commands); + registerCommandsPayload(commands); + registerCommandsPairing(commands); registerClusters(commands); - return commands.Run(kLocalDeviceId, kRemoteDeviceId, argc, argv); + return commands.Run(chip::kTestControllerNodeId, chip::kTestDeviceNodeId, argc, argv); } diff --git a/examples/common/QRCode/BUILD.gn b/examples/common/QRCode/BUILD.gn new file mode 100644 index 00000000000000..f954876835f0bb --- /dev/null +++ b/examples/common/QRCode/BUILD.gn @@ -0,0 +1,29 @@ +# 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. + +config("qrcode-common_config") { + include_dirs = [ "repo/c" ] + + cflags = [ "-Wno-type-limits" ] +} + +static_library("QRCode") { + output_name = "libqrcode-common" + + output_dir = "${root_out_dir}/lib" + + sources = [ "repo/c/qrcodegen.c" ] + + public_configs = [ ":qrcode-common_config" ] +} diff --git a/examples/common/chip-app-server/BUILD.gn b/examples/common/chip-app-server/BUILD.gn index 9028d413190ee2..1f9ed65cd1f5cf 100644 --- a/examples/common/chip-app-server/BUILD.gn +++ b/examples/common/chip-app-server/BUILD.gn @@ -21,11 +21,6 @@ config("includes") { ] } -declare_args() { - # By pass provision and secure session - bypass_rendezvous = false -} - static_library("chip-app-server") { output_name = "chip-app-server" @@ -39,11 +34,10 @@ static_library("chip-app-server") { "Server.cpp", ] - if (bypass_rendezvous) { - defines = [ "BYPASS_RENDEZVOUS=1" ] - } - - deps = [ "${chip_root}/src/lib" ] + deps = [ + "${chip_root}/src/lib", + "${chip_root}/src/lib/mdns", + ] public_configs = [ ":includes" ] diff --git a/examples/common/chip-app-server/DataModelHandler.cpp b/examples/common/chip-app-server/DataModelHandler.cpp index 5b7445568d1d6b..9aa86739d7736e 100644 --- a/examples/common/chip-app-server/DataModelHandler.cpp +++ b/examples/common/chip-app-server/DataModelHandler.cpp @@ -20,28 +20,125 @@ * This file implements the handler for data model messages. */ -#include -#include -#include - #include "DataModelHandler.h" #include #include #include #include +#include +#include +#include using namespace ::chip; -extern "C" { /** - * Handle a message that should be processed via our data model processing - * codepath. This function will free the packet buffer. + * A data model message has nonzero length and always has a first byte whose + * value is one of: 0x00, 0x01, 0x02, 0x03. See chipZclEncodeZclHeader for the + * construction of the message and in particular the first byte. * - * @param [in] buffer The buffer holding the message. This function guarantees - * that it will free the buffer before returning. + * Echo messages should generally not have a first byte with those values, so we + * can use that to try to distinguish between the two. + */ +bool ContentMayBeADataModelMessage(const System::PacketBufferHandle & buffer) +{ + const size_t data_len = buffer->DataLength(); + const uint8_t * data = buffer->Start(); + bool maybeDataModelMessage = true; + + // Has to have nonzero length. + VerifyOrExit(data_len > 0, maybeDataModelMessage = false); + + // Has to have a valid first byte value. + VerifyOrExit(data[0] < 0x04, maybeDataModelMessage = false); + +exit: + return maybeDataModelMessage; +} + +/** + * @brief implements something like "od -c", changes an arbitrary byte string + * into a single-line of ascii. Destroys any byte-wise encoding that + * might be present, e.g. utf-8. + * + * @param bytes potentially unprintable buffer + * @param bytes_len length of bytes + * @param out where to put the printable string + * @param out_len length of out + * @return size_t required size of output buffer, including null-termination */ -void HandleDataModelMessage(const PacketHeader & header, System::PacketBuffer * buffer, SecureSessionMgrBase * mgr) +static size_t BinaryBytesToPrintableString(const uint8_t * bytes, size_t bytes_len, char * out, size_t out_len) +{ + size_t required = 1; // always need null termination + memset(out, 0, out_len); + // count and print + for (; bytes_len > 0; bytes_len--, bytes++) + { + uint8_t byte = *bytes; + + if ((byte >= '\t' && byte <= '\r') || byte == '\\') + { + static const char * kCodes = "tnvfr"; + char code = (byte == '\\') ? '\\' : kCodes[byte - '\t']; + required += 2; + if (out_len > 2) + { + *out++ = '\\'; + *out++ = code; + out_len -= 2; + } + } + else if (byte >= ' ' && byte <= '~') + { + required += 1; + if (out_len > 1) + { + *out++ = byte; + out_len--; + } + } + else + { + static const size_t kBinCodeLen = sizeof("\\xFF") - 1; + static const char * kCodes = "0123456789ABCDEF"; + + required += kBinCodeLen; + if (out_len > kBinCodeLen) + { + *out++ = '\\'; + *out++ = 'x'; + *out++ = kCodes[(byte & 0xf0) >> 4]; + *out++ = kCodes[byte & 0xf]; + out_len -= kBinCodeLen; + } + } + } + + return required; +} + +void ProcessOthersMessage(const PacketHeader & header, System::PacketBufferHandle & buffer, SecureSessionMgr * mgr) +{ + CHIP_ERROR err; + char logmsg[512]; + + BinaryBytesToPrintableString(buffer->Start(), buffer->DataLength(), logmsg, sizeof(logmsg)); + + ChipLogProgress(AppServer, "Client sent: %s", logmsg); + + // Attempt to echo back + err = mgr->SendMessage(header.GetSourceNodeId().Value(), std::move(buffer)); + if (err != CHIP_NO_ERROR) + { + ChipLogProgress(AppServer, "Unable to echo back to client: %s", ErrorStr(err)); + } + else + { + ChipLogProgress(AppServer, "Echo sent"); + } +} + +void ProcessDataModelMessage(const PacketHeader & header, System::PacketBufferHandle & buffer) { EmberApsFrame frame; bool ok = extractApsFrame(buffer->Start(), buffer->DataLength(), &frame) > 0; @@ -52,7 +149,6 @@ void HandleDataModelMessage(const PacketHeader & header, System::PacketBuffer * else { ChipLogProgress(Zcl, "APS frame processing failure!"); - System::PacketBuffer::Free(buffer); return; } @@ -64,8 +160,6 @@ void HandleDataModelMessage(const PacketHeader & header, System::PacketBuffer * header.GetSourceNodeId().Value(), // source identifier NULL); - System::PacketBuffer::Free(buffer); - if (ok) { ChipLogProgress(Zcl, "Data model processing success!"); @@ -76,9 +170,32 @@ void HandleDataModelMessage(const PacketHeader & header, System::PacketBuffer * } } +/** + * Handle a message that should be processed via our data model processing + * codepath. This function will free the packet buffer. + * + * @param [in] buffer The buffer holding the message. This function guarantees + * that it will free the buffer before returning. + */ +void HandleDataModelMessage(const PacketHeader & header, System::PacketBufferHandle buffer, SecureSessionMgr * mgr) +{ + // FIXME: Long-term we shouldn't be guessing what sort of message this is + // based on the message bytes. We're doing this for now to support both + // data model messages and text echo messages, but in the long term we + // should either do echo via a data model command or do echo on a separate + // port from data model processing. + if (ContentMayBeADataModelMessage(buffer)) + { + ProcessDataModelMessage(header, buffer); + } + else + { + ProcessOthersMessage(header, buffer, mgr); + } +} + void InitDataModelHandler() { emberAfEndpointConfigure(); emberAfInit(); } -} diff --git a/examples/common/chip-app-server/QRCodeUtil.cpp b/examples/common/chip-app-server/QRCodeUtil.cpp index 681a6f83f65db9..9a38a084019e4a 100644 --- a/examples/common/chip-app-server/QRCodeUtil.cpp +++ b/examples/common/chip-app-server/QRCodeUtil.cpp @@ -22,8 +22,12 @@ #include #include +#include #include +constexpr char qrCodeBaseUrl[] = "https://dhrishi.github.io/connectedhomeip/qrcode.html"; +constexpr char specialCharsUnreservedInRfc3986[] = "-._~"; + void PrintQRCode(chip::RendezvousInformationFlags rendezvousFlags) { uint32_t setupPinCode; @@ -33,6 +37,15 @@ void PrintQRCode(chip::RendezvousInformationFlags rendezvousFlags) { ChipLogProgress(AppServer, "SetupPINCode: [%" PRIu32 "]", setupPinCode); ChipLogProgress(AppServer, "SetupQRCode: [%s]", QRCode.c_str()); + + chip::Platform::ScopedMemoryBuffer qrCodeBuffer; + const size_t qrCodeBufferMaxSize = 3 * QRCode.size() + 1; + qrCodeBuffer.Alloc(qrCodeBufferMaxSize); + if (EncodeQRCodeToUrl(QRCode.c_str(), QRCode.size(), &qrCodeBuffer[0], qrCodeBufferMaxSize) == CHIP_NO_ERROR) + { + ChipLogProgress(AppServer, "Copy/paste the below URL in a browser to see the QR Code:\n\t%s?data=%s", qrCodeBaseUrl, + &qrCodeBuffer[0]); + } } else { @@ -75,3 +88,43 @@ CHIP_ERROR GetQRCode(uint32_t & setupPinCode, std::string & QRCode, chip::Rendez exit: return err; } + +static inline bool isCharUnreservedInRfc3986(const char c) +{ + return isalpha(c) || isdigit(c) || (strchr(specialCharsUnreservedInRfc3986, c) != nullptr); +} + +CHIP_ERROR EncodeQRCodeToUrl(const char * QRCode, size_t len, char * url, size_t maxSize) +{ + const char upperHexDigits[] = "0123456789ABCDEF"; + CHIP_ERROR err = CHIP_NO_ERROR; + size_t i = 0, j = 0; + + VerifyOrExit((QRCode != nullptr) && (url != nullptr), err = CHIP_ERROR_INVALID_ARGUMENT); + + for (i = 0; i < len; ++i) + { + unsigned char c = QRCode[i]; + if (isCharUnreservedInRfc3986(c)) + { + + VerifyOrExit((j + 1) < maxSize, err = CHIP_ERROR_BUFFER_TOO_SMALL); + + url[j++] = c; + } + else + { + + VerifyOrExit((j + 3) < maxSize, err = CHIP_ERROR_BUFFER_TOO_SMALL); + + url[j++] = '%'; + url[j++] = upperHexDigits[(c & 0xf0) >> 4]; + url[j++] = upperHexDigits[(c & 0x0f)]; + } + } + + url[j] = '\0'; + +exit: + return err; +} diff --git a/examples/common/chip-app-server/RendezvousServer.cpp b/examples/common/chip-app-server/RendezvousServer.cpp index 03d8e4cbe6d86b..ead0cf85d46088 100644 --- a/examples/common/chip-app-server/RendezvousServer.cpp +++ b/examples/common/chip-app-server/RendezvousServer.cpp @@ -18,7 +18,6 @@ #include "RendezvousServer.h" #include "SessionManager.h" - #include #include #include @@ -26,6 +25,7 @@ #if CHIP_ENABLE_OPENTHREAD #include #endif +#include using namespace ::chip::Inet; using namespace ::chip::Transport; @@ -35,9 +35,9 @@ namespace chip { RendezvousServer::RendezvousServer() : mRendezvousSession(this) {} -CHIP_ERROR RendezvousServer::Init(const RendezvousParameters & params) +CHIP_ERROR RendezvousServer::Init(const RendezvousParameters & params, TransportMgrBase * transportMgr) { - return mRendezvousSession.Init(params); + return mRendezvousSession.Init(params, transportMgr); } void RendezvousServer::OnRendezvousError(CHIP_ERROR err) @@ -55,9 +55,22 @@ void RendezvousServer::OnRendezvousConnectionClosed() ChipLogProgress(AppServer, "OnRendezvousConnectionClosed"); } -void RendezvousServer::OnRendezvousMessageReceived(PacketBuffer * buffer) +void RendezvousServer::OnRendezvousMessageReceived(const PacketHeader & packetHeader, const PeerAddress & peerAddress, + System::PacketBufferHandle buffer) +{} + +void RendezvousServer::OnRendezvousComplete() { - chip::System::PacketBuffer::Free(buffer); + ChipLogProgress(AppServer, "Device completed Rendezvous process"); + if (mRendezvousSession.GetRemoteNodeId().HasValue()) + { + SessionManager().NewPairing(Optional{}, mRendezvousSession.GetRemoteNodeId().Value(), + &mRendezvousSession.GetPairingSession()); + } + else + { + ChipLogError(AppServer, "Commissioner did not assign a node ID to the device!!!"); + } } void RendezvousServer::OnRendezvousStatusUpdate(Status status, CHIP_ERROR err) @@ -68,11 +81,37 @@ void RendezvousServer::OnRendezvousStatusUpdate(Status status, CHIP_ERROR err) { case RendezvousSessionDelegate::SecurePairingSuccess: ChipLogProgress(AppServer, "Device completed SPAKE2+ handshake"); - SessionManager().NewPairing(Optional{}, &mRendezvousSession.GetPairingSession()); + if (mDelegate != nullptr) + { + mDelegate->OnRendezvousStarted(); + } + break; + + case RendezvousSessionDelegate::SecurePairingFailed: + ChipLogProgress(AppServer, "Failed in SPAKE2+ handshake"); + if (mDelegate != nullptr) + { + mDelegate->OnRendezvousStopped(); + } break; + case RendezvousSessionDelegate::NetworkProvisioningSuccess: ChipLogProgress(AppServer, "Device was assigned network credentials"); + chip::Mdns::DiscoveryManager::GetInstance().StartPublishDevice(); + if (mDelegate != nullptr) + { + mDelegate->OnRendezvousStopped(); + } + break; + + case RendezvousSessionDelegate::NetworkProvisioningFailed: + ChipLogProgress(AppServer, "Failed in network provisioning"); + if (mDelegate != nullptr) + { + mDelegate->OnRendezvousStopped(); + } break; + default: break; }; @@ -80,5 +119,4 @@ void RendezvousServer::OnRendezvousStatusUpdate(Status status, CHIP_ERROR err) exit: return; } - } // namespace chip diff --git a/examples/common/chip-app-server/Server.cpp b/examples/common/chip-app-server/Server.cpp index a651db2b29f249..0667f37c0a0dbb 100644 --- a/examples/common/chip-app-server/Server.cpp +++ b/examples/common/chip-app-server/Server.cpp @@ -25,37 +25,50 @@ #include #include #include +#include #include +#include #include #include #include #include #include #include -#include using namespace ::chip; using namespace ::chip::Inet; using namespace ::chip::Transport; using namespace ::chip::DeviceLayer; -#ifndef EXAMPLE_SERVER_NODEID -#define EXAMPLE_SERVER_NODEID 12344321 -#endif // EXAMPLE_SERVER_NODEID - namespace { +bool isRendezvousBypassed() +{ + RendezvousInformationFlags rendezvousMode = RendezvousInformationFlags::kBLE; + +#ifdef CONFIG_RENDEZVOUS_MODE + rendezvousMode = static_cast(CONFIG_RENDEZVOUS_MODE); +#endif + +#ifdef CHIP_BYPASS_RENDEZVOUS + rendezvousMode = RendezvousInformationFlags::kNone; +#endif + + return rendezvousMode == RendezvousInformationFlags::kNone; +} + class ServerCallback : public SecureSessionMgrDelegate { public: - void OnMessageReceived(const PacketHeader & header, const PayloadHeader & payloadHeader, Transport::PeerConnectionState * state, - System::PacketBuffer * buffer, SecureSessionMgrBase * mgr) override + void OnMessageReceived(const PacketHeader & header, const PayloadHeader & payloadHeader, + const Transport::PeerConnectionState * state, System::PacketBufferHandle buffer, + SecureSessionMgr * mgr) override { const size_t data_len = buffer->DataLength(); char src_addr[PeerAddress::kMaxToStringSize]; // as soon as a client connects, assume it is connected - VerifyOrExit(buffer != NULL, ChipLogProgress(AppServer, "Received data but couldn't process it...")); + VerifyOrExit(!buffer.IsNull(), ChipLogProgress(AppServer, "Received data but couldn't process it...")); VerifyOrExit(header.GetSourceNodeId().HasValue(), ChipLogProgress(AppServer, "Unknown source for received message")); VerifyOrExit(state->GetPeerNodeId() != kUndefinedNodeId, ChipLogProgress(AppServer, "Unknown source for received message")); @@ -64,68 +77,92 @@ class ServerCallback : public SecureSessionMgrDelegate ChipLogProgress(AppServer, "Packet received from %s: %zu bytes", src_addr, static_cast(data_len)); - HandleDataModelMessage(header, buffer, mgr); - buffer = NULL; + HandleDataModelMessage(header, std::move(buffer), mgr); + + exit:; + } - exit: - // HandleDataModelMessage calls Free on the buffer without an AddRef, if HandleDataModelMessage was not called, free the - // buffer. - if (buffer != NULL) + void OnReceiveError(CHIP_ERROR error, const Transport::PeerAddress & source, SecureSessionMgr * mgr) override + { + ChipLogProgress(AppServer, "Packet received error: %s", ErrorStr(error)); + if (mDelegate != nullptr) { - System::PacketBuffer::Free(buffer); + mDelegate->OnReceiveError(); } } - void OnNewConnection(Transport::PeerConnectionState * state, SecureSessionMgrBase * mgr) override + void OnNewConnection(const Transport::PeerConnectionState * state, SecureSessionMgr * mgr) override { ChipLogProgress(AppServer, "Received a new connection."); } + + void SetDelegate(AppDelegate * delegate) { mDelegate = delegate; } + +private: + AppDelegate * mDelegate = nullptr; }; -DemoSessionManager gSessions; +DemoTransportMgr gTransports; +SecureSessionMgr gSessions; ServerCallback gCallbacks; SecurePairingUsingTestSecret gTestPairing; RendezvousServer gRendezvousServer; } // namespace -SecureSessionMgrBase & chip::SessionManager() +SecureSessionMgr & chip::SessionManager() { return gSessions; } // The function will initialize datamodel handler and then start the server // The server assumes the platform's networking has been setup already -void InitServer() +void InitServer(AppDelegate * delegate) { CHIP_ERROR err = CHIP_NO_ERROR; Optional peer(Transport::Type::kUndefined); InitDataModelHandler(); + gCallbacks.SetDelegate(delegate); + gRendezvousServer.SetDelegate(delegate); + + // Init transport before operations with secure session mgr. +#if INET_CONFIG_ENABLE_IPV4 + err = gTransports.Init(UdpListenParameters(&DeviceLayer::InetLayer).SetAddressType(kIPAddressType_IPv6), + UdpListenParameters(&DeviceLayer::InetLayer).SetAddressType(kIPAddressType_IPv4)); +#else + err = gTransports.Init(UdpListenParameters(&DeviceLayer::InetLayer).SetAddressType(kIPAddressType_IPv6)); +#endif + SuccessOrExit(err); - err = gSessions.Init(EXAMPLE_SERVER_NODEID, &DeviceLayer::SystemLayer, - UdpListenParameters(&DeviceLayer::InetLayer).SetAddressType(kIPAddressType_IPv6)); + err = gSessions.Init(chip::kTestDeviceNodeId, &DeviceLayer::SystemLayer, &gTransports); SuccessOrExit(err); // This flag is used to bypass BLE in the cirque test // Only in the cirque test this is enabled with --args='bypass_rendezvous=true' -#ifndef BYPASS_RENDEZVOUS + if (isRendezvousBypassed()) + { + ChipLogProgress(AppServer, "Rendezvous and Secure Pairing skipped. Using test secret."); + err = gSessions.NewPairing(peer, chip::kTestControllerNodeId, &gTestPairing); + SuccessOrExit(err); + } + else { RendezvousParameters params; uint32_t pinCode; SuccessOrExit(err = DeviceLayer::ConfigurationMgr().GetSetupPinCode(pinCode)); params.SetSetupPINCode(pinCode) - .SetLocalNodeId(EXAMPLE_SERVER_NODEID) - .SetBleLayer(DeviceLayer::ConnectivityMgr().GetBleLayer()); - SuccessOrExit(err = gRendezvousServer.Init(params)); + .SetBleLayer(DeviceLayer::ConnectivityMgr().GetBleLayer()) + .SetPeerAddress(Transport::PeerAddress::BLE()); + SuccessOrExit(err = gRendezvousServer.Init(params, &gTransports)); } -#endif - err = gSessions.NewPairing(peer, &gTestPairing); + err = gSessions.NewPairing(peer, chip::kTestControllerNodeId, &gTestPairing); SuccessOrExit(err); gSessions.SetDelegate(&gCallbacks); + chip::Mdns::DiscoveryManager::GetInstance().StartPublishDevice(kIPAddressType_IPv6); exit: if (err != CHIP_NO_ERROR) diff --git a/src/platform/tests/TestConfigurationMgr.h b/examples/common/chip-app-server/include/AppDelegate.h similarity index 72% rename from src/platform/tests/TestConfigurationMgr.h rename to examples/common/chip-app-server/include/AppDelegate.h index a86c7e9b88460d..dbeea37286d533 100644 --- a/src/platform/tests/TestConfigurationMgr.h +++ b/examples/common/chip-app-server/include/AppDelegate.h @@ -16,11 +16,17 @@ */ /** - * @file - * This file declares test entry point for CHIP Configuration Manager code unit tests. - * + * @file + * This file defines the API for application specific callbacks. */ #pragma once -int TestConfigurationMgr(); +class AppDelegate +{ +public: + virtual ~AppDelegate() {} + virtual void OnReceiveError(){}; + virtual void OnRendezvousStarted(){}; + virtual void OnRendezvousStopped(){}; +}; diff --git a/examples/common/chip-app-server/include/DataModelHandler.h b/examples/common/chip-app-server/include/DataModelHandler.h index 61493a72d84ca3..39854b8d55606f 100644 --- a/examples/common/chip-app-server/include/DataModelHandler.h +++ b/examples/common/chip-app-server/include/DataModelHandler.h @@ -26,7 +26,6 @@ #include #include -extern "C" { /** * Handle a message that should be processed via our data model processing * codepath. @@ -34,7 +33,6 @@ extern "C" { * @param [in] buffer The buffer holding the message. This function guarantees * that it will free the buffer before returning. */ -void HandleDataModelMessage(const chip::PacketHeader & header, chip::System::PacketBuffer * buffer, - chip::SecureSessionMgrBase * mgr); +void HandleDataModelMessage(const chip::PacketHeader & header, chip::System::PacketBufferHandle buffer, + chip::SecureSessionMgr * mgr); void InitDataModelHandler(); -} diff --git a/examples/common/chip-app-server/include/QRCodeUtil.h b/examples/common/chip-app-server/include/QRCodeUtil.h index 7712a43cdabb07..a27ead18aa7f70 100644 --- a/examples/common/chip-app-server/include/QRCodeUtil.h +++ b/examples/common/chip-app-server/include/QRCodeUtil.h @@ -21,3 +21,18 @@ void PrintQRCode(chip::RendezvousInformationFlags rendezvousFlags); CHIP_ERROR GetQRCode(uint32_t & setupPinCode, std::string & QRCode, chip::RendezvousInformationFlags rendezvousFlags); + +/** + * Initialize DataModelHandler and start CHIP datamodel server, the server + * assumes the platform's networking has been setup already. + * + * Method verifies if every character of the QR Code is valid for the url encoding + * and otherwise it encodes the invalid character using available ones. + * + * @param QRCode address of the array storing QR Code to encode. + * @param len length of the given QR Code. + * @param url address of the location where encoded url should be stored. + * @param maxSize maximal size of the array where encoded url should be stored. + * @return CHIP_NO_ERROR on success and other values on error. + */ +CHIP_ERROR EncodeQRCodeToUrl(const char * QRCode, size_t len, char * url, size_t maxSize); diff --git a/examples/common/chip-app-server/include/RendezvousServer.h b/examples/common/chip-app-server/include/RendezvousServer.h index 3b44690d39bfa6..54d097620ce928 100644 --- a/examples/common/chip-app-server/include/RendezvousServer.h +++ b/examples/common/chip-app-server/include/RendezvousServer.h @@ -17,6 +17,7 @@ #pragma once +#include "AppDelegate.h" #include #include @@ -27,18 +28,23 @@ class RendezvousServer : public RendezvousSessionDelegate public: RendezvousServer(); - CHIP_ERROR Init(const RendezvousParameters & params); + CHIP_ERROR Init(const RendezvousParameters & params, TransportMgrBase * transportMgr); + void SetDelegate(AppDelegate * delegate) { mDelegate = delegate; }; //////////////// RendezvousSessionDelegate Implementation /////////////////// void OnRendezvousConnectionOpened() override; void OnRendezvousConnectionClosed() override; void OnRendezvousError(CHIP_ERROR err) override; - void OnRendezvousMessageReceived(System::PacketBuffer * buffer) override; + void OnRendezvousMessageReceived(const PacketHeader & packetHeader, const Transport::PeerAddress & peerAddress, + System::PacketBufferHandle buffer) override; + void OnRendezvousComplete() override; void OnRendezvousStatusUpdate(Status status, CHIP_ERROR err) override; + RendezvousSession * GetRendezvousSession() { return &mRendezvousSession; }; private: RendezvousSession mRendezvousSession; + AppDelegate * mDelegate; }; } // namespace chip diff --git a/examples/common/chip-app-server/include/Server.h b/examples/common/chip-app-server/include/Server.h index b4be5aba1f53ac..c149bb4d5eeeeb 100644 --- a/examples/common/chip-app-server/include/Server.h +++ b/examples/common/chip-app-server/include/Server.h @@ -17,15 +17,21 @@ #pragma once -#include +#include "AppDelegate.h" +#include +#include #include -using DemoSessionManager = chip::SecureSessionMgr; +#if INET_CONFIG_ENABLE_IPV4 +using DemoTransportMgr = chip::TransportMgr; +#else +using DemoTransportMgr = chip::TransportMgr; +#endif /** * Initialize DataModelHandler and start CHIP datamodel server, the server * assumes the platform's networking has been setup already. * - * @param [in] sessions The demo's session manager. + * @param [in] delegate An optional AppDelegate */ -void InitServer(); +void InitServer(AppDelegate * delegate = nullptr); diff --git a/examples/common/chip-app-server/include/SessionManager.h b/examples/common/chip-app-server/include/SessionManager.h index ebfc2d8c78f9f5..17d78a987de5ab 100644 --- a/examples/common/chip-app-server/include/SessionManager.h +++ b/examples/common/chip-app-server/include/SessionManager.h @@ -20,5 +20,5 @@ #include namespace chip { -SecureSessionMgrBase & SessionManager(); +SecureSessionMgr & SessionManager(); } // namespace chip diff --git a/examples/lighting-app/efr32/BUILD.gn b/examples/lighting-app/efr32/BUILD.gn index b84c0da5cbab10..afc819bc2480f2 100644 --- a/examples/lighting-app/efr32/BUILD.gn +++ b/examples/lighting-app/efr32/BUILD.gn @@ -67,7 +67,9 @@ efr32_executable("lighting_app") { public_deps = [ ":sdk", + "${chip_root}/examples/common/QRCode", "${chip_root}/examples/common/chip-app-server:chip-app-server", + "${chip_root}/examples/lighting-app/lighting-common", "${chip_root}/src/lib", "${chip_root}/src/setup_payload", "${chip_root}/third_party/openthread/platforms:libopenthread-platform", @@ -80,26 +82,9 @@ efr32_executable("lighting_app") { "${efr32_project_dir}/include", "${chip_root}/src/app/util", "${examples_plat_dir}", - "${chip_root}/examples/common/QRCode/repo/c", ] sources = [ - "${chip_root}/examples/common/QRCode/repo/c/qrcodegen.c", - "${chip_root}/examples/common/chip-app-server/DataModelHandler.cpp", - "${chip_root}/src/app/clusters/on-off-server/on-off.cpp", - "${chip_root}/src/app/util/af-event.cpp", - "${chip_root}/src/app/util/af-main-common.cpp", - "${chip_root}/src/app/util/attribute-size.cpp", - "${chip_root}/src/app/util/attribute-storage.cpp", - "${chip_root}/src/app/util/attribute-table.cpp", - "${chip_root}/src/app/util/binding-table.cpp", - "${chip_root}/src/app/util/chip-message-send.cpp", - "${chip_root}/src/app/util/client-api.cpp", - "${chip_root}/src/app/util/ember-print.cpp", - "${chip_root}/src/app/util/message.cpp", - "${chip_root}/src/app/util/process-cluster-message.cpp", - "${chip_root}/src/app/util/process-global-message.cpp", - "${chip_root}/src/app/util/util.cpp", "${examples_plat_dir}/${efr32_family}/${efr32_board}/hal-config.h", "${examples_plat_dir}/${efr32_family}/${efr32_board}/init_board.c", "${examples_plat_dir}/${efr32_family}/${efr32_board}/init_mcu.c", @@ -110,8 +95,6 @@ efr32_executable("lighting_app") { "src/ButtonHandler.cpp", "src/LightingManager.cpp", "src/ZclCallbacks.cpp", - "src/gen/call-command-handler.c", - "src/gen/callback-stub.c", "src/main.cpp", ] diff --git a/examples/lighting-app/efr32/src/ZclCallbacks.cpp b/examples/lighting-app/efr32/src/ZclCallbacks.cpp index 7233d74481f454..5201c463445d6b 100644 --- a/examples/lighting-app/efr32/src/ZclCallbacks.cpp +++ b/examples/lighting-app/efr32/src/ZclCallbacks.cpp @@ -29,11 +29,10 @@ #include -// using namespace ::chip; +using namespace ::chip; -extern "C" void emberAfPostAttributeChangeCallback(uint8_t endpoint, EmberAfClusterId clusterId, EmberAfAttributeId attributeId, - uint8_t mask, uint16_t manufacturerCode, uint8_t type, uint8_t size, - uint8_t * value) +void emberAfPostAttributeChangeCallback(EndpointId endpoint, ClusterId clusterId, AttributeId attributeId, uint8_t mask, + uint16_t manufacturerCode, uint8_t type, uint8_t size, uint8_t * value) { if (clusterId != ZCL_ON_OFF_CLUSTER_ID) { @@ -57,15 +56,22 @@ extern "C" void emberAfPostAttributeChangeCallback(uint8_t endpoint, EmberAfClus } } -/** @brief On/off Cluster Server Post Init +/** @brief OnOff Cluster Init * - * Following resolution of the On/Off state at startup for this endpoint, - * perform any additional initialization needed; e.g., synchronize hardware - * state. + * This function is called when a specific cluster is initialized. It gives the + * application an opportunity to take care of cluster initialization procedures. + * It is called exactly once for each endpoint where cluster is present. + * + * @param endpoint Ver.: always + * + * TODO Issue #3841 + * emberAfOnOffClusterInitCallback happens before the stack initialize the cluster + * attributes to the default value. + * The logic here expects something similar to the deprecated Plugins callback + * emberAfPluginOnOffClusterServerPostInitCallback. * - * @param endpoint Endpoint that is being initialized Ver.: always */ -extern "C" void emberAfPluginOnOffClusterServerPostInitCallback(uint8_t endpoint) +void emberAfOnOffClusterInitCallback(EndpointId endpoint) { - // TODO: implement any additional On/off Cluster Server post init actions + // TODO: implement any additional Cluster Server init actions } diff --git a/examples/lighting-app/efr32/src/gen/attribute-id.h b/examples/lighting-app/efr32/src/gen/attribute-id.h deleted file mode 100644 index 442f72e97e2232..00000000000000 --- a/examples/lighting-app/efr32/src/gen/attribute-id.h +++ /dev/null @@ -1,4786 +0,0 @@ -/** - * - * 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 SILABS_EMBER_AF_ATTRIBUTE_ID -#define SILABS_EMBER_AF_ATTRIBUTE_ID - -// Attribute types for cluster: Basic -// Cluster specification level: zcl-7.0-07-5123-07 - -// Client attributes -#define ZCL_BASIC_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_BASIC_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_VERSION_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_APPLICATION_VERSION_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_STACK_VERSION_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_HW_VERSION_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_MANUFACTURER_NAME_ATTRIBUTE_ID 0x0004 // Ver.: always -#define ZCL_MODEL_IDENTIFIER_ATTRIBUTE_ID 0x0005 // Ver.: always -#define ZCL_DATE_CODE_ATTRIBUTE_ID 0x0006 // Ver.: always -#define ZCL_POWER_SOURCE_ATTRIBUTE_ID 0x0007 // Ver.: always -#define ZCL_GENERIC_DEVICE_CLASS_ATTRIBUTE_ID 0x0008 // Ver.: since l&o-1.0-15-0014-04 -#define ZCL_GENERIC_DEVICE_TYPE_ATTRIBUTE_ID 0x0009 // Ver.: since l&o-1.0-15-0014-04 -#define ZCL_PRODUCT_CODE_ATTRIBUTE_ID 0x000A // Ver.: since l&o-1.0-15-0014-04 -#define ZCL_PRODUCT_URL_ATTRIBUTE_ID 0x000B // Ver.: since l&o-1.0-15-0014-04 -#define ZCL_LOCATION_DESCRIPTION_ATTRIBUTE_ID 0x0010 // Ver.: always -#define ZCL_PHYSICAL_ENVIRONMENT_ATTRIBUTE_ID 0x0011 // Ver.: always -#define ZCL_DEVICE_ENABLED_ATTRIBUTE_ID 0x0012 // Ver.: always -#define ZCL_ALARM_MASK_ATTRIBUTE_ID 0x0013 // Ver.: always -#define ZCL_DISABLE_LOCAL_CONFIG_ATTRIBUTE_ID 0x0014 // Ver.: always -#define ZCL_CURRENT_LOCALE_ATTRIBUTE_ID 0x0015 // Ver.: always -#define ZCL_SW_BUILD_ID_ATTRIBUTE_ID 0x4000 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_BASIC_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_BASIC_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Power Configuration -// Cluster specification level: zcl-7.0-07-5123-07 - -// Client attributes -#define ZCL_POWER_CONFIG_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_POWER_CONFIG_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_MAINS_VOLTAGE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_MAINS_FREQUENCY_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_MAINS_ALARM_MASK_ATTRIBUTE_ID 0x0010 // Ver.: always -#define ZCL_MAINS_VOLTAGE_MIN_THRESHOLD_ATTRIBUTE_ID 0x0011 // Ver.: always -#define ZCL_MAINS_VOLTAGE_MAX_THRESHOLD_ATTRIBUTE_ID 0x0012 // Ver.: always -#define ZCL_MAINS_VOLTAGE_DWELL_TRIP_POINT_ATTRIBUTE_ID 0x0013 // Ver.: always -#define ZCL_BATTERY_VOLTAGE_ATTRIBUTE_ID 0x0020 // Ver.: always -#define ZCL_BATTERY_PERCENTAGE_REMAINING_ATTRIBUTE_ID 0x0021 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_MANUFACTURER_ATTRIBUTE_ID 0x0030 // Ver.: always -#define ZCL_BATTERY_SIZE_ATTRIBUTE_ID 0x0031 // Ver.: always -#define ZCL_BATTERY_AHR_RATING_ATTRIBUTE_ID 0x0032 // Ver.: always -#define ZCL_BATTERY_QUANTITY_ATTRIBUTE_ID 0x0033 // Ver.: always -#define ZCL_BATTERY_RATED_VOLTAGE_ATTRIBUTE_ID 0x0034 // Ver.: always -#define ZCL_BATTERY_ALARM_MASK_ATTRIBUTE_ID 0x0035 // Ver.: always -#define ZCL_BATTERY_VOLTAGE_MIN_THRESHOLD_ATTRIBUTE_ID 0x0036 // Ver.: always -#define ZCL_BATTERY_VOLTAGE_THRESHOLD_1_ATTRIBUTE_ID 0x0037 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_VOLTAGE_THRESHOLD_2_ATTRIBUTE_ID 0x0038 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_VOLTAGE_THRESHOLD_3_ATTRIBUTE_ID 0x0039 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_PERCENTAGE_MIN_THRESHOLD_ATTRIBUTE_ID 0x003A // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_PERCENTAGE_THRESHOLD_1_ATTRIBUTE_ID 0x003B // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_PERCENTAGE_THRESHOLD_2_ATTRIBUTE_ID 0x003C // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_PERCENTAGE_THRESHOLD_3_ATTRIBUTE_ID 0x003D // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_ALARM_STATE_ATTRIBUTE_ID 0x003E // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_2_VOLTAGE_ATTRIBUTE_ID 0x0040 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_2_PERCENTAGE_REMAINING_ATTRIBUTE_ID 0x0041 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_2_MANUFACTURER_ATTRIBUTE_ID 0x0050 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_2_SIZE_ATTRIBUTE_ID 0x0051 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_2_AHR_RATING_ATTRIBUTE_ID 0x0052 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_2_QUANTITY_ATTRIBUTE_ID 0x0053 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_2_RATED_VOLTAGE_ATTRIBUTE_ID 0x0054 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_2_ALARM_MASK_ATTRIBUTE_ID 0x0055 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_2_VOLTAGE_MIN_THRESHOLD_ATTRIBUTE_ID 0x0056 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_2_VOLTAGE_THRESHOLD_1_ATTRIBUTE_ID 0x0057 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_2_VOLTAGE_THRESHOLD_2_ATTRIBUTE_ID 0x0058 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_2_VOLTAGE_THRESHOLD_3_ATTRIBUTE_ID 0x0059 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_2_PERCENTAGE_MIN_THRESHOLD_ATTRIBUTE_ID 0x005A // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_2_PERCENTAGE_THRESHOLD_1_ATTRIBUTE_ID 0x005B // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_2_PERCENTAGE_THRESHOLD_2_ATTRIBUTE_ID 0x005C // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_2_PERCENTAGE_THRESHOLD_3_ATTRIBUTE_ID 0x005D // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_2_ALARM_STATE_ATTRIBUTE_ID 0x005E // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_3_VOLTAGE_ATTRIBUTE_ID 0x0060 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_3_PERCENTAGE_REMAINING_ATTRIBUTE_ID 0x0061 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_3_MANUFACTURER_ATTRIBUTE_ID 0x0070 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_3_SIZE_ATTRIBUTE_ID 0x0071 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_3_AHR_RATING_ATTRIBUTE_ID 0x0072 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_3_QUANTITY_ATTRIBUTE_ID 0x0073 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_3_RATED_VOLTAGE_ATTRIBUTE_ID 0x0074 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_3_ALARM_MASK_ATTRIBUTE_ID 0x0075 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_3_VOLTAGE_MIN_THRESHOLD_ATTRIBUTE_ID 0x0076 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_3_VOLTAGE_THRESHOLD_1_ATTRIBUTE_ID 0x0077 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_3_VOLTAGE_THRESHOLD_2_ATTRIBUTE_ID 0x0078 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_3_VOLTAGE_THRESHOLD_3_ATTRIBUTE_ID 0x0079 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_3_PERCENTAGE_MIN_THRESHOLD_ATTRIBUTE_ID 0x007A // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_3_PERCENTAGE_THRESHOLD_1_ATTRIBUTE_ID 0x007B // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_3_PERCENTAGE_THRESHOLD_2_ATTRIBUTE_ID 0x007C // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_3_PERCENTAGE_THRESHOLD_3_ATTRIBUTE_ID 0x007D // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_3_ALARM_STATE_ATTRIBUTE_ID 0x007E // Ver.: since ha-1.2-05-3520-29 -#define ZCL_POWER_CONFIG_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_POWER_CONFIG_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Device Temperature Configuration -// Cluster specification level: zcl-7.0-07-5123-07 - -// Client attributes -#define ZCL_DEVICE_TEMP_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_DEVICE_TEMP_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_CURRENT_TEMPERATURE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_MIN_TEMP_EXPERIENCED_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_MAX_TEMP_EXPERIENCED_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_OVER_TEMP_TOTAL_DWELL_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_DEVICE_TEMP_ALARM_MASK_ATTRIBUTE_ID 0x0010 // Ver.: always -#define ZCL_LOW_TEMP_THRESHOLD_ATTRIBUTE_ID 0x0011 // Ver.: always -#define ZCL_HIGH_TEMP_THRESHOLD_ATTRIBUTE_ID 0x0012 // Ver.: always -#define ZCL_LOW_TEMP_DWELL_TRIP_POINT_ATTRIBUTE_ID 0x0013 // Ver.: always -#define ZCL_HIGH_TEMP_DWELL_TRIP_POINT_ATTRIBUTE_ID 0x0014 // Ver.: always -#define ZCL_DEVICE_TEMP_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_DEVICE_TEMP_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Identify -// Cluster specification level: zcl-7.0-07-5123-07 - -// Client attributes -#define ZCL_IDENTIFY_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_IDENTIFY_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_IDENTIFY_TIME_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_COMMISSION_STATE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_IDENTIFY_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_IDENTIFY_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Groups -// Cluster specification level: zcl-7.0-07-5123-07 - -// Client attributes -#define ZCL_GROUPS_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_GROUPS_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_GROUP_NAME_SUPPORT_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_GROUPS_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_GROUPS_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Scenes -// Cluster specification level: zcl-7.0-07-5123-07 - -// Client attributes -#define ZCL_SCENES_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_SCENES_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_SCENE_COUNT_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_CURRENT_SCENE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_CURRENT_GROUP_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_SCENE_VALID_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_SCENE_NAME_SUPPORT_ATTRIBUTE_ID 0x0004 // Ver.: always -#define ZCL_LAST_CONFIGURED_BY_ATTRIBUTE_ID 0x0005 // Ver.: always -#define ZCL_SCENES_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_SCENES_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: On/off -// Cluster specification level: zcl-7.0-07-5123-07 - -// Client attributes -#define ZCL_ON_OFF_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_ON_OFF_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_ON_OFF_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_SAMPLE_MFG_SPECIFIC_TRANSITION_TIME_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_SAMPLE_MFG_SPECIFIC_TRANSITION_TIME_2_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_SAMPLE_MFG_SPECIFIC_TRANSITION_TIME_3_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_SAMPLE_MFG_SPECIFIC_TRANSITION_TIME_4_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_GLOBAL_SCENE_CONTROL_ATTRIBUTE_ID 0x4000 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_ON_TIME_ATTRIBUTE_ID 0x4001 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_OFF_WAIT_TIME_ATTRIBUTE_ID 0x4002 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_START_UP_ON_OFF_ATTRIBUTE_ID 0x4003 // Ver.: since l&o-1.0-15-0014-04 -#define ZCL_ON_OFF_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_ON_OFF_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: On/off Switch Configuration -// Cluster specification level: zcl-7.0-07-5123-07 - -// Client attributes -#define ZCL_ON_OFF_SWITCH_CONFIG_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_ON_OFF_SWITCH_CONFIG_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_SWITCH_TYPE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_SWITCH_ACTIONS_ATTRIBUTE_ID 0x0010 // Ver.: always -#define ZCL_ON_OFF_SWITCH_CONFIG_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_ON_OFF_SWITCH_CONFIG_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Level Control -// Cluster specification level: zcl-7.0-07-5123-07 - -// Client attributes -#define ZCL_LEVEL_CONTROL_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_LEVEL_CONTROL_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_CURRENT_LEVEL_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_LEVEL_CONTROL_REMAINING_TIME_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_OPTIONS_ATTRIBUTE_ID 0x000F // Ver.: since l&o-1.0-15-0014-04 -#define ZCL_ON_OFF_TRANSITION_TIME_ATTRIBUTE_ID 0x0010 // Ver.: always -#define ZCL_ON_LEVEL_ATTRIBUTE_ID 0x0011 // Ver.: always -#define ZCL_ON_TRANSITION_TIME_ATTRIBUTE_ID 0x0012 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_OFF_TRANSITION_TIME_ATTRIBUTE_ID 0x0013 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_DEFAULT_MOVE_RATE_ATTRIBUTE_ID 0x0014 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_START_UP_CURRENT_LEVEL_ATTRIBUTE_ID 0x4000 // Ver.: since l&o-1.0-15-0014-04 -#define ZCL_LEVEL_CONTROL_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_LEVEL_CONTROL_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Alarms -// Cluster specification level: zcl-7.0-07-5123-07 - -// Client attributes -#define ZCL_ALARM_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_ALARM_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_ALARM_COUNT_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_ALARM_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_ALARM_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Time -// Cluster specification level: zcl-7.0-07-5123-07 - -// Client attributes -#define ZCL_TIME_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_TIME_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_TIME_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_TIME_STATUS_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_TIME_ZONE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_DST_START_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_DST_END_ATTRIBUTE_ID 0x0004 // Ver.: always -#define ZCL_DST_SHIFT_ATTRIBUTE_ID 0x0005 // Ver.: always -#define ZCL_STANDARD_TIME_ATTRIBUTE_ID 0x0006 // Ver.: always -#define ZCL_LOCAL_TIME_ATTRIBUTE_ID 0x0007 // Ver.: always -#define ZCL_LAST_SET_TIME_ATTRIBUTE_ID 0x0008 // Ver.: always -#define ZCL_VALID_UNTIL_TIME_ATTRIBUTE_ID 0x0009 // Ver.: always -#define ZCL_TIME_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_TIME_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: RSSI Location -// Cluster specification level: zcl-7.0-07-5123-07 - -// Client attributes -#define ZCL_RSSI_LOCATION_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_RSSI_LOCATION_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_LOCATION_TYPE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_LOCATION_METHOD_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_LOCATION_AGE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_QUALITY_MEASURE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_NUMBER_OF_DEVICES_ATTRIBUTE_ID 0x0004 // Ver.: always -#define ZCL_COORDINATE1_ATTRIBUTE_ID 0x0010 // Ver.: always -#define ZCL_COORDINATE2_ATTRIBUTE_ID 0x0011 // Ver.: always -#define ZCL_COORDINATE3_ATTRIBUTE_ID 0x0012 // Ver.: always -#define ZCL_POWER_ATTRIBUTE_ID 0x0013 // Ver.: always -#define ZCL_PATH_LOSS_EXPONENT_ATTRIBUTE_ID 0x0014 // Ver.: always -#define ZCL_REPORTING_PERIOD_ATTRIBUTE_ID 0x0015 // Ver.: always -#define ZCL_CALCULATION_PERIOD_ATTRIBUTE_ID 0x0016 // Ver.: always -#define ZCL_NUMBER_RSSI_MEASUREMENTS_ATTRIBUTE_ID 0x0017 // Ver.: always -#define ZCL_RSSI_LOCATION_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_RSSI_LOCATION_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Binary Input (Basic) -// Cluster specification level: zcl-7.0-07-5123-07 - -// Client attributes -#define ZCL_BINARY_INPUT_BASIC_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_BINARY_INPUT_BASIC_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_ACTIVE_TEXT_ATTRIBUTE_ID 0x0004 // Ver.: always -#define ZCL_DESCRIPTION_ATTRIBUTE_ID 0x001C // Ver.: always -#define ZCL_INACTIVE_TEXT_ATTRIBUTE_ID 0x002E // Ver.: always -#define ZCL_OUT_OF_SERVICE_ATTRIBUTE_ID 0x0051 // Ver.: always -#define ZCL_POLARITY_ATTRIBUTE_ID 0x0054 // Ver.: always -#define ZCL_PRESENT_VALUE_ATTRIBUTE_ID 0x0055 // Ver.: always -#define ZCL_RELIABILITY_ATTRIBUTE_ID 0x0067 // Ver.: always -#define ZCL_STATUS_FLAGS_ATTRIBUTE_ID 0x006F // Ver.: always -#define ZCL_APPLICATION_TYPE_ATTRIBUTE_ID 0x0100 // Ver.: always -#define ZCL_BINARY_INPUT_BASIC_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_BINARY_INPUT_BASIC_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Commissioning -// Cluster specification level: zcl-7.0-07-5123-07 - -// Client attributes -#define ZCL_COMMISSIONING_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_COMMISSIONING_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_SHORT_ADDRESS_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_EXTENDED_PAN_ID_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_PAN_ID_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_CHANNEL_MASK_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_PROTOCOL_VERSION_ATTRIBUTE_ID 0x0004 // Ver.: always -#define ZCL_STACK_PROFILE_ATTRIBUTE_ID 0x0005 // Ver.: always -#define ZCL_STARTUP_CONTROL_ATTRIBUTE_ID 0x0006 // Ver.: always -#define ZCL_TRUST_CENTER_ADDRESS_ATTRIBUTE_ID 0x0010 // Ver.: always -#define ZCL_TRUST_CENTER_MASTER_KEY_ATTRIBUTE_ID 0x0011 // Ver.: always -#define ZCL_NETWORK_KEY_ATTRIBUTE_ID 0x0012 // Ver.: always -#define ZCL_USE_INSECURE_JOIN_ATTRIBUTE_ID 0x0013 // Ver.: always -#define ZCL_PRECONFIGURED_LINK_KEY_ATTRIBUTE_ID 0x0014 // Ver.: always -#define ZCL_NETWORK_KEY_SEQUENCE_NUMBER_ATTRIBUTE_ID 0x0015 // Ver.: always -#define ZCL_NETWORK_KEY_TYPE_ATTRIBUTE_ID 0x0016 // Ver.: always -#define ZCL_NETWORK_MANAGER_ADDRESS_ATTRIBUTE_ID 0x0017 // Ver.: always -#define ZCL_SCAN_ATTEMPTS_ATTRIBUTE_ID 0x0020 // Ver.: always -#define ZCL_TIME_BETWEEN_SCANS_ATTRIBUTE_ID 0x0021 // Ver.: always -#define ZCL_REJOIN_INTERVAL_ATTRIBUTE_ID 0x0022 // Ver.: always -#define ZCL_MAX_REJOIN_INTERVAL_ATTRIBUTE_ID 0x0023 // Ver.: always -#define ZCL_INDIRECT_POLL_RATE_ATTRIBUTE_ID 0x0030 // Ver.: always -#define ZCL_PARENT_RETRY_THRESHOLD_ATTRIBUTE_ID 0x0031 // Ver.: always -#define ZCL_CONCENTRATOR_FLAG_ATTRIBUTE_ID 0x0040 // Ver.: always -#define ZCL_CONCENTRATOR_RADIUS_ATTRIBUTE_ID 0x0041 // Ver.: always -#define ZCL_CONCENTRATOR_DISCOVERY_TIME_ATTRIBUTE_ID 0x0042 // Ver.: always -#define ZCL_COMMISSIONING_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_COMMISSIONING_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Partition -// Cluster specification level: zcl-7.0-07-5123-07 - -// Client attributes -#define ZCL_PARTITION_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_PARTITION_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_PARTITION_MAXIMUM_INCOMING_TRANSFER_SIZE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_PARTITION_MAXIMUM_OUTGOING_TRANSFER_SIZE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_PARTIONED_FRAME_SIZE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_LARGE_FRAME_SIZE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_NUMBER_OF_ACK_FRAME_ATTRIBUTE_ID 0x0004 // Ver.: always -#define ZCL_NACK_TIMEOUT_ATTRIBUTE_ID 0x0005 // Ver.: always -#define ZCL_INTERFRAME_DELAY_ATTRIBUTE_ID 0x0006 // Ver.: always -#define ZCL_NUMBER_OF_SEND_RETRIES_ATTRIBUTE_ID 0x0007 // Ver.: always -#define ZCL_SENDER_TIMEOUT_ATTRIBUTE_ID 0x0008 // Ver.: always -#define ZCL_RECEIVER_TIMEOUT_ATTRIBUTE_ID 0x0009 // Ver.: always -#define ZCL_PARTITION_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_PARTITION_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Over the Air Bootloading -// Cluster specification level: zcl-7.0-07-5123-07 - -// Client attributes -#define ZCL_UPGRADE_SERVER_ID_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_FILE_OFFSET_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_CURRENT_FILE_VERSION_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_CURRENT_ZIGBEE_STACK_VERSION_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_DOWNLOADED_FILE_VERSION_ATTRIBUTE_ID 0x0004 // Ver.: always -#define ZCL_DOWNLOADED_ZIGBEE_STACK_VERSION_ATTRIBUTE_ID 0x0005 // Ver.: always -#define ZCL_IMAGE_UPGRADE_STATUS_ATTRIBUTE_ID 0x0006 // Ver.: always -#define ZCL_MANUFACTURER_ID_ATTRIBUTE_ID 0x0007 // Ver.: always -#define ZCL_IMAGE_TYPE_ID_ATTRIBUTE_ID 0x0008 // Ver.: always -#define ZCL_MINIMUM_BLOCK_REQUEST_PERIOD_ATTRIBUTE_ID 0x0009 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_IMAGE_STAMP_ATTRIBUTE_ID 0x000A // Ver.: since ha-1.2-05-3520-29 -#define ZCL_UPGRADE_ACTIVATION_POLICY_ATTRIBUTE_ID 0x000B // Ver.: since se-1.2b-15-0131-02 -#define ZCL_UPGRADE_TIMEOUT_POLICY_ATTRIBUTE_ID 0x000C // Ver.: since se-1.2b-15-0131-02 -#define ZCL_OTA_BOOTLOAD_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_OTA_BOOTLOAD_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_OTA_BOOTLOAD_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_OTA_BOOTLOAD_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Power Profile -// Cluster specification level: zcl-7.0-07-5123-07 - -// Client attributes -#define ZCL_POWER_PROFILE_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_POWER_PROFILE_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_TOTAL_PROFILE_NUM_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_MULTIPLE_SCHEDULING_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_ENERGY_FORMATTING_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_ENERGY_REMOTE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_SCHEDULE_MODE_ATTRIBUTE_ID 0x0004 // Ver.: always -#define ZCL_POWER_PROFILE_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_POWER_PROFILE_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Appliance Control -// Cluster specification level: zcl-7.0-07-5123-07 - -// Client attributes -#define ZCL_APPLIANCE_CONTROL_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_APPLIANCE_CONTROL_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_START_TIME_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_FINISH_TIME_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_REMAINING_TIME_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_APPLIANCE_CONTROL_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_APPLIANCE_CONTROL_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Poll Control -// Cluster specification level: zcl-7.0-07-5123-07 - -// Client attributes -#define ZCL_POLL_CONTROL_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_POLL_CONTROL_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_CHECK_IN_INTERVAL_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_LONG_POLL_INTERVAL_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_SHORT_POLL_INTERVAL_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_FAST_POLL_TIMEOUT_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_CHECK_IN_INTERVAL_MIN_ATTRIBUTE_ID 0x0004 // Ver.: always -#define ZCL_LONG_POLL_INTERVAL_MIN_ATTRIBUTE_ID 0x0005 // Ver.: always -#define ZCL_FAST_POLL_TIMEOUT_MAX_ATTRIBUTE_ID 0x0006 // Ver.: always -#define ZCL_POLL_CONTROL_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_POLL_CONTROL_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Green Power -// Cluster specification level: gp-1.0a-09-5499-26 - -// Client attributes -#define ZCL_GP_CLIENT_GPP_MAX_PROXY_TABLE_ENTRIES_ATTRIBUTE_ID 0x0010 // Ver.: since gp-1.0-09-5499-24 -#define ZCL_GP_CLIENT_PROXY_TABLE_ATTRIBUTE_ID 0x0011 // Ver.: since gp-1.0-09-5499-24 -#define ZCL_GP_CLIENT_GPP_NOTIFICATION_RETRY_NUMBER_ATTRIBUTE_ID 0x0012 // Ver.: since gp-1.0-09-5499-24 -#define ZCL_GP_CLIENT_GPP_NOTIFICATION_RETRY_TIMER_ATTRIBUTE_ID 0x0013 // Ver.: since gp-1.0-09-5499-24 -#define ZCL_GP_CLIENT_GPP_MAX_SEARCH_COUNTER_ATTRIBUTE_ID 0x0014 // Ver.: since gp-1.0-09-5499-24 -#define ZCL_GP_CLIENT_GPP_BLOCKED_GPD_ID_ATTRIBUTE_ID 0x0015 // Ver.: since gp-1.0-09-5499-24 -#define ZCL_GP_CLIENT_GPP_FUNCTIONALITY_ATTRIBUTE_ID 0x0016 // Ver.: since gp-1.0-09-5499-24 -#define ZCL_GP_CLIENT_GPP_ACTIVE_FUNCTIONALITY_ATTRIBUTE_ID 0x0017 // Ver.: since gp-1.0-09-5499-24 -#define ZCL_GP_CLIENT_GP_SHARED_SECURITY_KEY_TYPE_ATTRIBUTE_ID 0x0020 // Ver.: since gp-1.0-09-5499-24 -#define ZCL_GP_CLIENT_GP_SHARED_SECURITY_KEY_ATTRIBUTE_ID 0x0021 // Ver.: since gp-1.0-09-5499-24 -#define ZCL_GP_CLIENT_GP_LINK_KEY_ATTRIBUTE_ID 0x0022 // Ver.: since gp-1.0-09-5499-24 -#define ZCL_GREEN_POWER_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_GREEN_POWER_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_GP_SERVER_GPS_MAX_SINK_TABLE_ENTRIES_ATTRIBUTE_ID 0x0000 // Ver.: since gp-1.0-09-5499-24 -#define ZCL_GP_SERVER_SINK_TABLE_ATTRIBUTE_ID 0x0001 // Ver.: since gp-1.0-09-5499-24 -#define ZCL_GP_SERVER_GPS_COMMUNICATION_MODE_ATTRIBUTE_ID 0x0002 // Ver.: since gp-1.0-09-5499-24 -#define ZCL_GP_SERVER_GPS_COMMISSIONING_EXIT_MODE_ATTRIBUTE_ID 0x0003 // Ver.: since gp-1.0-09-5499-24 -#define ZCL_GP_SERVER_GPS_COMMISSIONING_WINDOW_ATTRIBUTE_ID 0x0004 // Ver.: since gp-1.0-09-5499-24 -#define ZCL_GP_SERVER_GPS_SECURITY_LEVEL_ATTRIBUTE_ID 0x0005 // Ver.: since gp-1.0-09-5499-24 -#define ZCL_GP_SERVER_GPS_FUNCTIONALITY_ATTRIBUTE_ID 0x0006 // Ver.: since gp-1.0-09-5499-24 -#define ZCL_GP_SERVER_GPS_ACTIVE_FUNCTIONALITY_ATTRIBUTE_ID 0x0007 // Ver.: since gp-1.0-09-5499-24 -#define ZCL_GP_SERVER_GP_SHARED_SECURITY_KEY_TYPE_ATTRIBUTE_ID 0x0020 // Ver.: since gp-1.0-09-5499-24 -#define ZCL_GP_SERVER_GP_SHARED_SECURITY_KEY_ATTRIBUTE_ID 0x0021 // Ver.: since gp-1.0-09-5499-24 -#define ZCL_GP_SERVER_GP_LINK_KEY_ATTRIBUTE_ID 0x0022 // Ver.: since gp-1.0-09-5499-24 -#define ZCL_GREEN_POWER_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_GREEN_POWER_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Keep-Alive -// Cluster specification level: se-1.2b-15-0131-02 - -// Client attributes -#define ZCL_KEEPALIVE_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_KEEPALIVE_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_KEEPALIVE_BASE_ATTRIBUTE_ID 0x0000 // Ver.: since se-1.2b-15-0131-02 -#define ZCL_KEEPALIVE_JITTER_ATTRIBUTE_ID 0x0001 // Ver.: since se-1.2b-15-0131-02 -#define ZCL_KEEPALIVE_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_KEEPALIVE_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Shade Configuration -// Cluster specification level: zcl-6.0-15-02018-001 - -// Client attributes -#define ZCL_SHADE_CONFIG_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_SHADE_CONFIG_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_SHADE_CONFIG_PHYSICAL_CLOSED_LIMIT_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_SHADE_CONFIG_MOTOR_STEP_SIZE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_SHADE_CONFIG_STATUS_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_SHADE_CONFIG_CLOSED_LIMIT_ATTRIBUTE_ID 0x0010 // Ver.: always -#define ZCL_SHADE_CONFIG_MODE_ATTRIBUTE_ID 0x0011 // Ver.: always -#define ZCL_SHADE_CONFIG_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_SHADE_CONFIG_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Door Lock -// Cluster specification level: zcl-6.0-15-02018-001 - -// Client attributes -#define ZCL_DOOR_LOCK_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_DOOR_LOCK_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_LOCK_STATE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_LOCK_TYPE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_ACTUATOR_ENABLED_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_DOOR_STATE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_DOOR_OPEN_EVENTS_ATTRIBUTE_ID 0x0004 // Ver.: always -#define ZCL_DOOR_CLOSED_EVENTS_ATTRIBUTE_ID 0x0005 // Ver.: always -#define ZCL_OPEN_PERIOD_ATTRIBUTE_ID 0x0006 // Ver.: always -#define ZCL_NUM_LOCK_RECORDS_SUPPORTED_ATTRIBUTE_ID 0x0010 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_NUM_TOTAL_USERS_SUPPORTED_ATTRIBUTE_ID 0x0011 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_NUM_PIN_USERS_SUPPORTED_ATTRIBUTE_ID 0x0012 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_NUM_RFID_USERS_SUPPORTED_ATTRIBUTE_ID 0x0013 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_NUM_WEEKDAY_SCHEDULES_SUPPORTED_PER_USER_ATTRIBUTE_ID 0x0014 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_NUM_YEARDAY_SCHEDULES_SUPPORTED_PER_USER_ATTRIBUTE_ID 0x0015 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_NUM_HOLIDAY_SCHEDULES_SUPPORTED_PER_USER_ATTRIBUTE_ID 0x0016 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_MAX_PIN_LENGTH_ATTRIBUTE_ID 0x0017 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_MIN_PIN_LENGTH_ATTRIBUTE_ID 0x0018 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_MAX_RFID_CODE_LENGTH_ATTRIBUTE_ID 0x0019 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_MIN_RFID_CODE_LENGTH_ATTRIBUTE_ID 0x001A // Ver.: since ha-1.2-05-3520-29 -#define ZCL_ENABLE_LOGGING_ATTRIBUTE_ID 0x0020 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_LANGUAGE_ATTRIBUTE_ID 0x0021 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_LED_SETTINGS_ATTRIBUTE_ID 0x0022 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_AUTO_RELOCK_TIME_ATTRIBUTE_ID 0x0023 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_SOUND_VOLUME_ATTRIBUTE_ID 0x0024 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_OPERATING_MODE_ATTRIBUTE_ID 0x0025 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_SUPPORTED_OPERATING_MODES_ATTRIBUTE_ID 0x0026 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_DEFAULT_CONFIGURATION_REGISTER_ATTRIBUTE_ID 0x0027 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_ENABLE_LOCAL_PROGRAMMING_ATTRIBUTE_ID 0x0028 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_ENABLE_ONE_TOUCH_LOCKING_ATTRIBUTE_ID 0x0029 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_ENABLE_INSIDE_STATUS_LED_ATTRIBUTE_ID 0x002A // Ver.: since ha-1.2-05-3520-29 -#define ZCL_ENABLE_PRIVACY_MODE_BUTTON_ATTRIBUTE_ID 0x002B // Ver.: since ha-1.2-05-3520-29 -#define ZCL_WRONG_CODE_ENTRY_LIMIT_ATTRIBUTE_ID 0x0030 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_USER_CODE_TEMPORARY_DISABLE_TIME_ATTRIBUTE_ID 0x0031 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_SEND_PIN_OVER_THE_AIR_ATTRIBUTE_ID 0x0032 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_REQUIRE_PIN_FOR_RF_OPERATION_ATTRIBUTE_ID 0x0033 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_ZIGBEE_SECURITY_LEVEL_ATTRIBUTE_ID 0x0034 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_DOOR_LOCK_ALARM_MASK_ATTRIBUTE_ID 0x0040 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_KEYPAD_OPERATION_EVENT_MASK_ATTRIBUTE_ID 0x0041 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_RF_OPERATION_EVENT_MASK_ATTRIBUTE_ID 0x0042 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_MANUAL_OPERATION_EVENT_MASK_ATTRIBUTE_ID 0x0043 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_RFID_OPERATION_EVENT_MASK_ATTRIBUTE_ID 0x0044 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_KEYPAD_PROGRAMMING_EVENT_MASK_ATTRIBUTE_ID 0x0045 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_RF_PROGRAMMING_EVENT_MASK_ATTRIBUTE_ID 0x0046 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_RFID_PROGRAMMING_EVENT_MASK_ATTRIBUTE_ID 0x0047 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_DOOR_LOCK_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_DOOR_LOCK_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Window Covering -// Cluster specification level: zcl-6.0-15-02018-001 - -// Client attributes -#define ZCL_WINDOW_COVERING_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_WINDOW_COVERING_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_COVERING_TYPE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_LIMIT_LIFT_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_LIMIT_TILT_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_CURRENT_LIFT_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_CURRENT_TILT_ATTRIBUTE_ID 0x0004 // Ver.: always -#define ZCL_NUMBER_LIFT_ATTRIBUTE_ID 0x0005 // Ver.: always -#define ZCL_NUMBER_TILT_ATTRIBUTE_ID 0x0006 // Ver.: always -#define ZCL_CONFIG_STATUS_ATTRIBUTE_ID 0x0007 // Ver.: always -#define ZCL_CURRENT_LIFT_PERCENTAGE_ATTRIBUTE_ID 0x0008 // Ver.: always -#define ZCL_CURRENT_TILT_PERCENTAGE_ATTRIBUTE_ID 0x0009 // Ver.: always -#define ZCL_OPEN_LIMIT_LIFT_ATTRIBUTE_ID 0x0010 // Ver.: always -#define ZCL_CLOSED_LIMIT_LIFT_ATTRIBUTE_ID 0x0011 // Ver.: always -#define ZCL_OPEN_LIMIT_TILT_ATTRIBUTE_ID 0x0012 // Ver.: always -#define ZCL_CLOSED_LIMIT_TILT_ATTRIBUTE_ID 0x0013 // Ver.: always -#define ZCL_VELOCITY_LIFT_ATTRIBUTE_ID 0x0014 // Ver.: always -#define ZCL_ACCELERATION_LIFT_ATTRIBUTE_ID 0x0015 // Ver.: always -#define ZCL_DECELERATION_LIFT_ATTRIBUTE_ID 0x0016 // Ver.: always -#define ZCL_MODE_ATTRIBUTE_ID 0x0017 // Ver.: always -#define ZCL_SETPOINTS_LIFT_ATTRIBUTE_ID 0x0018 // Ver.: always -#define ZCL_SETPOINTS_TILT_ATTRIBUTE_ID 0x0019 // Ver.: always -#define ZCL_WINDOW_COVERING_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_WINDOW_COVERING_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Barrier Control -// Cluster specification level: zcl-6.0-15-02018-001 - -// Client attributes -#define ZCL_BARRIER_CONTROL_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_BARRIER_CONTROL_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_BARRIER_MOVING_STATE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_BARRIER_SAFETY_STATUS_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_BARRIER_CAPABILITIES_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_BARRIER_OPEN_EVENTS_ATTRIBUTE_ID 0x0004 // Ver.: always -#define ZCL_BARRIER_CLOSE_EVENTS_ATTRIBUTE_ID 0x0005 // Ver.: always -#define ZCL_BARRIER_COMMAND_OPEN_EVENTS_ATTRIBUTE_ID 0x0006 // Ver.: always -#define ZCL_BARRIER_COMMAND_CLOSE_EVENTS_ATTRIBUTE_ID 0x0007 // Ver.: always -#define ZCL_BARRIER_OPEN_PERIOD_ATTRIBUTE_ID 0x0008 // Ver.: always -#define ZCL_BARRIER_CLOSE_PERIOD_ATTRIBUTE_ID 0x0009 // Ver.: always -#define ZCL_BARRIER_POSITION_ATTRIBUTE_ID 0x000A // Ver.: always -#define ZCL_BARRIER_CONTROL_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_BARRIER_CONTROL_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Pump Configuration and Control -// Cluster specification level: zcl-6.0-15-02018-001 - -// Client attributes -#define ZCL_PUMP_CONFIG_CONTROL_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_PUMP_CONFIG_CONTROL_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_MAX_PRESSURE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_MAX_SPEED_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_MAX_FLOW_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_MIN_CONST_PRESSURE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_MAX_CONST_PRESSURE_ATTRIBUTE_ID 0x0004 // Ver.: always -#define ZCL_MIN_COMP_PRESSURE_ATTRIBUTE_ID 0x0005 // Ver.: always -#define ZCL_MAX_COMP_PRESSURE_ATTRIBUTE_ID 0x0006 // Ver.: always -#define ZCL_MIN_CONST_SPEED_ATTRIBUTE_ID 0x0007 // Ver.: always -#define ZCL_MAX_CONST_SPEED_ATTRIBUTE_ID 0x0008 // Ver.: always -#define ZCL_MIN_CONST_FLOW_ATTRIBUTE_ID 0x0009 // Ver.: always -#define ZCL_MAX_CONST_FLOW_ATTRIBUTE_ID 0x000A // Ver.: always -#define ZCL_MIN_CONST_TEMP_ATTRIBUTE_ID 0x000B // Ver.: always -#define ZCL_MAX_CONST_TEMP_ATTRIBUTE_ID 0x000C // Ver.: always -#define ZCL_PUMP_STATUS_ATTRIBUTE_ID 0x0010 // Ver.: always -#define ZCL_EFFECTIVE_OPERATION_MODE_ATTRIBUTE_ID 0x0011 // Ver.: always -#define ZCL_EFFECTIVE_CONTROL_MODE_ATTRIBUTE_ID 0x0012 // Ver.: always -#define ZCL_CAPACITY_ATTRIBUTE_ID 0x0013 // Ver.: always -#define ZCL_SPEED_ATTRIBUTE_ID 0x0014 // Ver.: always -#define ZCL_LIFETIME_RUNNING_HOURS_ATTRIBUTE_ID 0x0015 // Ver.: always -#define ZCL_PUMP_POWER_ATTRIBUTE_ID 0x0016 // Ver.: always -#define ZCL_LIFETIME_ENERGY_CONSUMED_ATTRIBUTE_ID 0x0017 // Ver.: always -#define ZCL_OPERATION_MODE_ATTRIBUTE_ID 0x0020 // Ver.: always -#define ZCL_CONTROL_MODE_ATTRIBUTE_ID 0x0021 // Ver.: always -#define ZCL_PUMP_ALARM_MASK_ATTRIBUTE_ID 0x0022 // Ver.: always -#define ZCL_PUMP_CONFIG_CONTROL_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_PUMP_CONFIG_CONTROL_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Thermostat -// Cluster specification level: zcl-6.0-15-02018-001 - -// Client attributes -#define ZCL_THERMOSTAT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_THERMOSTAT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_LOCAL_TEMPERATURE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_OUTDOOR_TEMPERATURE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_THERMOSTAT_OCCUPANCY_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_ABS_MIN_HEAT_SETPOINT_LIMIT_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_ABS_MAX_HEAT_SETPOINT_LIMIT_ATTRIBUTE_ID 0x0004 // Ver.: always -#define ZCL_ABS_MIN_COOL_SETPOINT_LIMIT_ATTRIBUTE_ID 0x0005 // Ver.: always -#define ZCL_ABS_MAX_COOL_SETPOINT_LIMIT_ATTRIBUTE_ID 0x0006 // Ver.: always -#define ZCL_PI_COOLING_DEMAND_ATTRIBUTE_ID 0x0007 // Ver.: always -#define ZCL_PI_HEATING_DEMAND_ATTRIBUTE_ID 0x0008 // Ver.: always -#define ZCL_HVAC_SYSTEM_TYPE_CONFIGURATION_ATTRIBUTE_ID 0x0009 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_LOCAL_TEMPERATURE_CALIBRATION_ATTRIBUTE_ID 0x0010 // Ver.: always -#define ZCL_OCCUPIED_COOLING_SETPOINT_ATTRIBUTE_ID 0x0011 // Ver.: always -#define ZCL_OCCUPIED_HEATING_SETPOINT_ATTRIBUTE_ID 0x0012 // Ver.: always -#define ZCL_UNOCCUPIED_COOLING_SETPOINT_ATTRIBUTE_ID 0x0013 // Ver.: always -#define ZCL_UNOCCUPIED_HEATING_SETPOINT_ATTRIBUTE_ID 0x0014 // Ver.: always -#define ZCL_MIN_HEAT_SETPOINT_LIMIT_ATTRIBUTE_ID 0x0015 // Ver.: always -#define ZCL_MAX_HEAT_SETPOINT_LIMIT_ATTRIBUTE_ID 0x0016 // Ver.: always -#define ZCL_MIN_COOL_SETPOINT_LIMIT_ATTRIBUTE_ID 0x0017 // Ver.: always -#define ZCL_MAX_COOL_SETPOINT_LIMIT_ATTRIBUTE_ID 0x0018 // Ver.: always -#define ZCL_MIN_SETPOINT_DEAD_BAND_ATTRIBUTE_ID 0x0019 // Ver.: always -#define ZCL_REMOTE_SENSING_ATTRIBUTE_ID 0x001A // Ver.: always -#define ZCL_CONTROL_SEQUENCE_OF_OPERATION_ATTRIBUTE_ID 0x001B // Ver.: always -#define ZCL_SYSTEM_MODE_ATTRIBUTE_ID 0x001C // Ver.: always -#define ZCL_THERMOSTAT_ALARM_MASK_ATTRIBUTE_ID 0x001D // Ver.: always -#define ZCL_THERMOSTAT_RUNNING_MODE_ATTRIBUTE_ID 0x001E // Ver.: since ha-1.2-05-3520-29 -#define ZCL_START_OF_WEEK_ATTRIBUTE_ID 0x0020 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_NUMBER_OF_WEEKLY_TRANSITIONS_ATTRIBUTE_ID 0x0021 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_NUMBER_OF_DAILY_TRANSITIONS_ATTRIBUTE_ID 0x0022 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_TEMPERATURE_SETPOINT_HOLD_ATTRIBUTE_ID 0x0023 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_TEMPERATURE_SETPOINT_HOLD_DURATION_ATTRIBUTE_ID 0x0024 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_THERMOSTAT_PROGRAMMING_OPERATION_MODE_ATTRIBUTE_ID 0x0025 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_THERMOSTAT_RUNNING_STATE_ATTRIBUTE_ID 0x0029 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_SETPOINT_CHANGE_SOURCE_ATTRIBUTE_ID 0x0030 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_SETPOINT_CHANGE_AMOUNT_ATTRIBUTE_ID 0x0031 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_SETPOINT_CHANGE_SOURCE_TIMESTAMP_ATTRIBUTE_ID 0x0032 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_OCCUPIED_SETBACK_ATTRIBUTE_ID 0x0034 // Ver.: always -#define ZCL_OCCUPIED_SETBACK_MIN_ATTRIBUTE_ID 0x0035 // Ver.: always -#define ZCL_OCCUPIED_SETBACK_MAX_ATTRIBUTE_ID 0x0036 // Ver.: always -#define ZCL_UNOCCUPIED_SETBACK_ATTRIBUTE_ID 0x0037 // Ver.: always -#define ZCL_UNOCCUPIED_SETBACK_MIN_ATTRIBUTE_ID 0x0038 // Ver.: always -#define ZCL_UNOCCUPIED_SETBACK_MAX_ATTRIBUTE_ID 0x0039 // Ver.: always -#define ZCL_EMERGENCY_HEAT_DELTA_ATTRIBUTE_ID 0x003A // Ver.: always -#define ZCL_AC_TYPE_ATTRIBUTE_ID 0x0040 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_AC_CAPACITY_ATTRIBUTE_ID 0x0041 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_AC_REFRIGERANT_TYPE_ATTRIBUTE_ID 0x0042 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_AC_COMPRESSOR_ATTRIBUTE_ID 0x0043 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_AC_ERROR_CODE_ATTRIBUTE_ID 0x0044 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_AC_LOUVER_POSITION_ATTRIBUTE_ID 0x0045 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_AC_COIL_TEMPERATURE_ATTRIBUTE_ID 0x0046 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_AC_CAPACITY_FORMAT_ATTRIBUTE_ID 0x0047 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_THERMOSTAT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_THERMOSTAT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Fan Control -// Cluster specification level: zcl-6.0-15-02018-001 - -// Client attributes -#define ZCL_FAN_CONTROL_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_FAN_CONTROL_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_FAN_CONTROL_FAN_MODE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_FAN_CONTROL_FAN_MODE_SEQUENCE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_FAN_DELAY_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_FAN_CONTROL_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_FAN_CONTROL_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Dehumidification Control -// Cluster specification level: zcl-6.0-15-02018-001 - -// Client attributes -#define ZCL_DEHUMID_CONTROL_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_DEHUMID_CONTROL_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_RELATIVE_HUMIDITY_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_DEHUMIDIFICATION_COOLING_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_RH_DEHUMIDIFICATION_SETPOINT_ATTRIBUTE_ID 0x0010 // Ver.: always -#define ZCL_RELATIVE_HUMIDITY_MODE_ATTRIBUTE_ID 0x0011 // Ver.: always -#define ZCL_DEHUMIDIFICATION_LOCKOUT_ATTRIBUTE_ID 0x0012 // Ver.: always -#define ZCL_DEHUMIDIFICATION_HYSTERESIS_ATTRIBUTE_ID 0x0013 // Ver.: always -#define ZCL_DEHUMIDIFICATION_MAX_COOL_ATTRIBUTE_ID 0x0014 // Ver.: always -#define ZCL_RELATIVE_HUMIDITY_DISPLAY_ATTRIBUTE_ID 0x0015 // Ver.: always -#define ZCL_DEHUMID_CONTROL_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_DEHUMID_CONTROL_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Thermostat User Interface Configuration -// Cluster specification level: zcl-6.0-15-02018-001 - -// Client attributes -#define ZCL_THERMOSTAT_UI_CONFIG_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_THERMOSTAT_UI_CONFIG_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_TEMPERATURE_DISPLAY_MODE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_KEYPAD_LOCKOUT_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_SCHEDULE_PROGRAMMING_VISIBILITY_ATTRIBUTE_ID 0x0002 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BACKLIGHT_TIMEOUT_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_SETPOINT_SOURCE_INDICATION_ATTRIBUTE_ID 0x0004 // Ver.: always -#define ZCL_THERMOSTAT_UI_CONFIG_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_THERMOSTAT_UI_CONFIG_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Color Control -// Cluster specification level: zcl6-errata-14-0129-15 - -// Client attributes -#define ZCL_COLOR_CONTROL_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_COLOR_CONTROL_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_COLOR_CONTROL_CURRENT_HUE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_COLOR_CONTROL_CURRENT_SATURATION_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_COLOR_CONTROL_REMAINING_TIME_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_COLOR_CONTROL_CURRENT_X_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_COLOR_CONTROL_CURRENT_Y_ATTRIBUTE_ID 0x0004 // Ver.: always -#define ZCL_COLOR_CONTROL_DRIFT_COMPENSATION_ATTRIBUTE_ID 0x0005 // Ver.: always -#define ZCL_COLOR_CONTROL_COMPENSATION_TEXT_ATTRIBUTE_ID 0x0006 // Ver.: always -#define ZCL_COLOR_CONTROL_COLOR_TEMPERATURE_ATTRIBUTE_ID 0x0007 // Ver.: always -#define ZCL_COLOR_CONTROL_COLOR_MODE_ATTRIBUTE_ID 0x0008 // Ver.: always -#define ZCL_COLOR_CONTROL_OPTIONS_ATTRIBUTE_ID 0x000F // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_COLOR_CONTROL_NUMBER_OF_PRIMARIES_ATTRIBUTE_ID 0x0010 // Ver.: always -#define ZCL_COLOR_CONTROL_PRIMARY_1_X_ATTRIBUTE_ID 0x0011 // Ver.: always -#define ZCL_COLOR_CONTROL_PRIMARY_1_Y_ATTRIBUTE_ID 0x0012 // Ver.: always -#define ZCL_COLOR_CONTROL_PRIMARY_1_INTENSITY_ATTRIBUTE_ID 0x0013 // Ver.: always -#define ZCL_COLOR_CONTROL_PRIMARY_2_X_ATTRIBUTE_ID 0x0015 // Ver.: always -#define ZCL_COLOR_CONTROL_PRIMARY_2_Y_ATTRIBUTE_ID 0x0016 // Ver.: always -#define ZCL_COLOR_CONTROL_PRIMARY_2_INTENSITY_ATTRIBUTE_ID 0x0017 // Ver.: always -#define ZCL_COLOR_CONTROL_PRIMARY_3_X_ATTRIBUTE_ID 0x0019 // Ver.: always -#define ZCL_COLOR_CONTROL_PRIMARY_3_Y_ATTRIBUTE_ID 0x001A // Ver.: always -#define ZCL_COLOR_CONTROL_PRIMARY_3_INTENSITY_ATTRIBUTE_ID 0x001B // Ver.: always -#define ZCL_COLOR_CONTROL_PRIMARY_4_X_ATTRIBUTE_ID 0x0020 // Ver.: always -#define ZCL_COLOR_CONTROL_PRIMARY_4_Y_ATTRIBUTE_ID 0x0021 // Ver.: always -#define ZCL_COLOR_CONTROL_PRIMARY_4_INTENSITY_ATTRIBUTE_ID 0x0022 // Ver.: always -#define ZCL_COLOR_CONTROL_PRIMARY_5_X_ATTRIBUTE_ID 0x0024 // Ver.: always -#define ZCL_COLOR_CONTROL_PRIMARY_5_Y_ATTRIBUTE_ID 0x0025 // Ver.: always -#define ZCL_COLOR_CONTROL_PRIMARY_5_INTENSITY_ATTRIBUTE_ID 0x0026 // Ver.: always -#define ZCL_COLOR_CONTROL_PRIMARY_6_X_ATTRIBUTE_ID 0x0028 // Ver.: always -#define ZCL_COLOR_CONTROL_PRIMARY_6_Y_ATTRIBUTE_ID 0x0029 // Ver.: always -#define ZCL_COLOR_CONTROL_PRIMARY_6_INTENSITY_ATTRIBUTE_ID 0x002A // Ver.: always -#define ZCL_COLOR_CONTROL_WHITE_POINT_X_ATTRIBUTE_ID 0x0030 // Ver.: always -#define ZCL_COLOR_CONTROL_WHITE_POINT_Y_ATTRIBUTE_ID 0x0031 // Ver.: always -#define ZCL_COLOR_CONTROL_COLOR_POINT_R_X_ATTRIBUTE_ID 0x0032 // Ver.: always -#define ZCL_COLOR_CONTROL_COLOR_POINT_R_Y_ATTRIBUTE_ID 0x0033 // Ver.: always -#define ZCL_COLOR_CONTROL_COLOR_POINT_R_INTENSITY_ATTRIBUTE_ID 0x0034 // Ver.: always -#define ZCL_COLOR_CONTROL_COLOR_POINT_G_X_ATTRIBUTE_ID 0x0036 // Ver.: always -#define ZCL_COLOR_CONTROL_COLOR_POINT_G_Y_ATTRIBUTE_ID 0x0037 // Ver.: always -#define ZCL_COLOR_CONTROL_COLOR_POINT_G_INTENSITY_ATTRIBUTE_ID 0x0038 // Ver.: always -#define ZCL_COLOR_CONTROL_COLOR_POINT_B_X_ATTRIBUTE_ID 0x003A // Ver.: always -#define ZCL_COLOR_CONTROL_COLOR_POINT_B_Y_ATTRIBUTE_ID 0x003B // Ver.: always -#define ZCL_COLOR_CONTROL_COLOR_POINT_B_INTENSITY_ATTRIBUTE_ID 0x003C // Ver.: always -#define ZCL_COLOR_CONTROL_ENHANCED_CURRENT_HUE_ATTRIBUTE_ID 0x4000 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_COLOR_CONTROL_ENHANCED_COLOR_MODE_ATTRIBUTE_ID 0x4001 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_COLOR_CONTROL_COLOR_LOOP_ACTIVE_ATTRIBUTE_ID 0x4002 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_COLOR_CONTROL_COLOR_LOOP_DIRECTION_ATTRIBUTE_ID 0x4003 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_COLOR_CONTROL_COLOR_LOOP_TIME_ATTRIBUTE_ID 0x4004 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_COLOR_CONTROL_COLOR_LOOP_START_ENHANCED_HUE_ATTRIBUTE_ID 0x4005 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_COLOR_CONTROL_COLOR_LOOP_STORED_ENHANCED_HUE_ATTRIBUTE_ID 0x4006 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_COLOR_CONTROL_COLOR_CAPABILITIES_ATTRIBUTE_ID 0x400A // Ver.: since zll-1.0-11-0037-10 -#define ZCL_COLOR_CONTROL_COLOR_TEMP_PHYSICAL_MIN_ATTRIBUTE_ID 0x400B // Ver.: since zll-1.0-11-0037-10 -#define ZCL_COLOR_CONTROL_COLOR_TEMP_PHYSICAL_MAX_ATTRIBUTE_ID 0x400C // Ver.: since zll-1.0-11-0037-10 -#define ZCL_COLOR_CONTROL_TEMPERATURE_LEVEL_MIN_MIREDS_ATTRIBUTE_ID 0x400D // Ver.: since l&o-1.0-15-0014-04 -#define ZCL_START_UP_COLOR_TEMPERATURE_MIREDS_ATTRIBUTE_ID 0x4010 // Ver.: since l&o-1.0-15-0014-04 -#define ZCL_COLOR_CONTROL_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_COLOR_CONTROL_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Ballast Configuration -// Cluster specification level: zcl6-errata-14-0129-15 - -// Client attributes -#define ZCL_BALLAST_CONFIGURATION_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_BALLAST_CONFIGURATION_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_PHYSICAL_MIN_LEVEL_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_PHYSICAL_MAX_LEVEL_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_BALLAST_STATUS_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_MIN_LEVEL_ATTRIBUTE_ID 0x0010 // Ver.: always -#define ZCL_MAX_LEVEL_ATTRIBUTE_ID 0x0011 // Ver.: always -#define ZCL_POWER_ON_LEVEL_ATTRIBUTE_ID 0x0012 // Ver.: always -#define ZCL_POWER_ON_FADE_TIME_ATTRIBUTE_ID 0x0013 // Ver.: always -#define ZCL_INTRINSIC_BALLAST_FACTOR_ATTRIBUTE_ID 0x0014 // Ver.: always -#define ZCL_BALLAST_FACTOR_ADJUSTMENT_ATTRIBUTE_ID 0x0015 // Ver.: always -#define ZCL_LAMP_QUALITY_ATTRIBUTE_ID 0x0020 // Ver.: always -#define ZCL_LAMP_TYPE_ATTRIBUTE_ID 0x0030 // Ver.: always -#define ZCL_LAMP_MANUFACTURER_ATTRIBUTE_ID 0x0031 // Ver.: always -#define ZCL_LAMP_RATED_HOURS_ATTRIBUTE_ID 0x0032 // Ver.: always -#define ZCL_LAMP_BURN_HOURS_ATTRIBUTE_ID 0x0033 // Ver.: always -#define ZCL_LAMP_ALARM_MODE_ATTRIBUTE_ID 0x0034 // Ver.: always -#define ZCL_LAMP_BURN_HOURS_TRIP_POINT_ATTRIBUTE_ID 0x0035 // Ver.: always -#define ZCL_BALLAST_CONFIGURATION_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_BALLAST_CONFIGURATION_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Illuminance Measurement -// Cluster specification level: zcl-6.0-15-02018-001 - -// Client attributes -#define ZCL_ILLUM_MEASUREMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_ILLUM_MEASUREMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_ILLUM_MEASURED_VALUE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_ILLUM_MIN_MEASURED_VALUE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_ILLUM_MAX_MEASURED_VALUE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_ILLUM_TOLERANCE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_MEASUREMENT_LIGHT_SENSOR_TYPE_ATTRIBUTE_ID 0x0004 // Ver.: always -#define ZCL_ILLUM_MEASUREMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_ILLUM_MEASUREMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Illuminance Level Sensing -// Cluster specification level: zcl-6.0-15-02018-001 - -// Client attributes -#define ZCL_ILLUM_LEVEL_SENSING_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_ILLUM_LEVEL_SENSING_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_LEVEL_STATUS_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_SENSING_LIGHT_SENSOR_TYPE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_ILLUMINANCE_TARGET_LEVEL_ATTRIBUTE_ID 0x0010 // Ver.: always -#define ZCL_ILLUM_LEVEL_SENSING_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_ILLUM_LEVEL_SENSING_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Temperature Measurement -// Cluster specification level: zcl-6.0-15-02018-001 - -// Client attributes -#define ZCL_TEMP_MEASUREMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_TEMP_MEASUREMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_TEMP_MEASURED_VALUE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_TEMP_MIN_MEASURED_VALUE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_TEMP_MAX_MEASURED_VALUE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_TEMP_TOLERANCE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_TEMP_MEASUREMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_TEMP_MEASUREMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Pressure Measurement -// Cluster specification level: zcl-6.0-15-02018-001 - -// Client attributes -#define ZCL_PRESSURE_MEASUREMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_PRESSURE_MEASUREMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_PRESSURE_MEASURED_VALUE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_PRESSURE_MIN_MEASURED_VALUE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_PRESSURE_MAX_MEASURED_VALUE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_PRESSURE_TOLERANCE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_PRESSURE_SCALED_VALUE_ATTRIBUTE_ID 0x0010 // Ver.: always -#define ZCL_PRESSURE_MIN_SCALED_VALUE_ATTRIBUTE_ID 0x0011 // Ver.: always -#define ZCL_PRESSURE_MAX_SCALED_VALUE_ATTRIBUTE_ID 0x0012 // Ver.: always -#define ZCL_PRESSURE_SCALED_TOLERANCE_ATTRIBUTE_ID 0x0013 // Ver.: always -#define ZCL_PRESSURE_SCALE_ATTRIBUTE_ID 0x0014 // Ver.: always -#define ZCL_PRESSURE_MEASUREMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_PRESSURE_MEASUREMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Flow Measurement -// Cluster specification level: zcl-6.0-15-02018-001 - -// Client attributes -#define ZCL_FLOW_MEASUREMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_FLOW_MEASUREMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_FLOW_MEASURED_VALUE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_FLOW_MIN_MEASURED_VALUE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_FLOW_MAX_MEASURED_VALUE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_FLOW_TOLERANCE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_FLOW_MEASUREMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_FLOW_MEASUREMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Relative Humidity Measurement -// Cluster specification level: zcl-6.0-15-02018-001 - -// Client attributes -#define ZCL_RELATIVE_HUMIDITY_MEASUREMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_RELATIVE_HUMIDITY_MEASUREMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_RELATIVE_HUMIDITY_MEASURED_VALUE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_RELATIVE_HUMIDITY_MIN_MEASURED_VALUE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_RELATIVE_HUMIDITY_MAX_MEASURED_VALUE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_RELATIVE_HUMIDITY_TOLERANCE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_RELATIVE_HUMIDITY_MEASUREMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_RELATIVE_HUMIDITY_MEASUREMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Occupancy Sensing -// Cluster specification level: zcl-6.0-15-02018-001 - -// Client attributes -#define ZCL_OCCUPANCY_SENSING_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_OCCUPANCY_SENSING_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_OCCUPANCY_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_OCCUPANCY_SENSOR_TYPE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_OCCUPANCY_SENSOR_TYPE_BITMAP_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_PIR_OCCUPIED_TO_UNOCCUPIED_DELAY_ATTRIBUTE_ID 0x0010 // Ver.: always -#define ZCL_PIR_UNOCCUPIED_TO_OCCUPIED_DELAY_ATTRIBUTE_ID 0x0011 // Ver.: always -#define ZCL_PIR_UNOCCUPIED_TO_OCCUPIED_THRESHOLD_ATTRIBUTE_ID 0x0012 // Ver.: always -#define ZCL_ULTRASONIC_OCCUPIED_TO_UNOCCUPIED_DELAY_ATTRIBUTE_ID 0x0020 // Ver.: always -#define ZCL_ULTRASONIC_UNOCCUPIED_TO_OCCUPIED_DELAY_ATTRIBUTE_ID 0x0021 // Ver.: always -#define ZCL_ULTRASONIC_UNOCCUPIED_TO_OCCUPIED_THRESHOLD_ATTRIBUTE_ID 0x0022 // Ver.: always -#define ZCL_PHYSICAL_CONTACT_OCCUPIED_TO_UNOCCUPIED_DELAY_ATTRIBUTE_ID 0x0030 // Ver.: always -#define ZCL_PHYSICAL_CONTACT_UNOCCUPIED_TO_OCCUPIED_DELAY_ATTRIBUTE_ID 0x0031 // Ver.: always -#define ZCL_PHYSICAL_CONTACT_UNOCCUPIED_TO_OCCUPIED_THRESHOLD_ATTRIBUTE_ID 0x0032 // Ver.: always -#define ZCL_OCCUPANCY_SENSING_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_OCCUPANCY_SENSING_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Carbon Monoxide Concentration Measurement -// Cluster specification level: zcl-6.0-15-02018-001 - -// Client attributes -#define ZCL_CARBON_MONOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_CARBON_MONOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_CARBON_MONOXIDE_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_CARBON_MONOXIDE_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_CARBON_MONOXIDE_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_CARBON_MONOXIDE_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_CARBON_MONOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_CARBON_MONOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Carbon Dioxide Concentration Measurement -// Cluster specification level: zcl-6.0-15-02018-001 - -// Client attributes -#define ZCL_CARBON_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_CARBON_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_CARBON_DIOXIDE_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_CARBON_DIOXIDE_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_CARBON_DIOXIDE_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_CARBON_DIOXIDE_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_CARBON_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_CARBON_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Ethylene Concentration Measurement -// Cluster specification level: zcl-6.0-15-02018-001 - -// Client attributes -#define ZCL_ETHYLENE_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_ETHYLENE_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_ETHYLENE_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_ETHYLENE_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_ETHYLENE_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_ETHYLENE_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_ETHYLENE_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_ETHYLENE_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Ethylene Oxide Concentration Measurement -// Cluster specification level: zcl-6.0-15-02018-001 - -// Client attributes -#define ZCL_ETHYLENE_OXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_ETHYLENE_OXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_ETHYLENE_OXIDE_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_ETHYLENE_OXIDE_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_ETHYLENE_OXIDE_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_ETHYLENE_OXIDE_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_ETHYLENE_OXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_ETHYLENE_OXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Hydrogen Concentration Measurement -// Cluster specification level: zcl-6.0-15-02018-001 - -// Client attributes -#define ZCL_HYDROGEN_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_HYDROGEN_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_HYDROGEN_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_HYDROGEN_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_HYDROGEN_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_HYDROGEN_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_HYDROGEN_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_HYDROGEN_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Hydrogen Sulphide Concentration Measurement -// Cluster specification level: zcl-6.0-15-02018-001 - -// Client attributes -#define ZCL_HYDROGEN_SULPHIDE_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_HYDROGEN_SULPHIDE_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_HYDROGEN_SULPHIDE_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_HYDROGEN_SULPHIDE_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_HYDROGEN_SULPHIDE_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_HYDROGEN_SULPHIDE_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_HYDROGEN_SULPHIDE_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_HYDROGEN_SULPHIDE_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Nitric Oxide Concentration Measurement -// Cluster specification level: zcl-6.0-15-02018-001 - -// Client attributes -#define ZCL_NITRIC_OXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_NITRIC_OXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_NITRIC_OXIDE_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_NITRIC_OXIDE_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_NITRIC_OXIDE_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_NITRIC_OXIDE_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_NITRIC_OXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_NITRIC_OXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Nitrogen Dioxide Concentration Measurement -// Cluster specification level: zcl-6.0-15-02018-001 - -// Client attributes -#define ZCL_NITROGEN_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_NITROGEN_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_NITROGEN_DIOXIDE_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_NITROGEN_DIOXIDE_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_NITROGEN_DIOXIDE_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_NITROGEN_DIOXIDE_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_NITROGEN_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_NITROGEN_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Oxygen Concentration Measurement -// Cluster specification level: zcl-6.0-15-02018-001 - -// Client attributes -#define ZCL_OXYGEN_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_OXYGEN_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_OXYGEN_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_OXYGEN_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_OXYGEN_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_OXYGEN_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_OXYGEN_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_OXYGEN_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Ozone Concentration Measurement -// Cluster specification level: zcl-6.0-15-02018-001 - -// Client attributes -#define ZCL_OZONE_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_OZONE_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_OZONE_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_OZONE_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_OZONE_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_OZONE_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_OZONE_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_OZONE_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Sulfur Dioxide Concentration Measurement -// Cluster specification level: zcl-6.0-15-02018-001 - -// Client attributes -#define ZCL_SULFUR_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_SULFUR_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_SULFUR_DIOXIDE_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_SULFUR_DIOXIDE_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_SULFUR_DIOXIDE_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_SULFUR_DIOXIDE_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_SULFUR_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_SULFUR_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Dissolved Oxygen Concentration Measurement -// Cluster specification level: zcl-6.0-15-02018-001 - -// Client attributes -#define ZCL_DISSOLVED_OXYGEN_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_DISSOLVED_OXYGEN_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_DISSOLVED_OXYGEN_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_DISSOLVED_OXYGEN_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_DISSOLVED_OXYGEN_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_DISSOLVED_OXYGEN_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_DISSOLVED_OXYGEN_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_DISSOLVED_OXYGEN_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Bromate Concentration Measurement -// Cluster specification level: zcl-6.0-15-02018-001 - -// Client attributes -#define ZCL_BROMATE_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_BROMATE_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_BROMATE_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_BROMATE_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_BROMATE_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_BROMATE_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_BROMATE_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_BROMATE_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Chloramines Concentration Measurement -// Cluster specification level: zcl-6.0-15-02018-001 - -// Client attributes -#define ZCL_CHLORAMINES_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_CHLORAMINES_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_CHLORAMINES_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_CHLORAMINES_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_CHLORAMINES_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_CHLORAMINES_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_CHLORAMINES_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_CHLORAMINES_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Chlorine Concentration Measurement -// Cluster specification level: zcl-6.0-15-02018-001 - -// Client attributes -#define ZCL_CHLORINE_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_CHLORINE_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_CHLORINE_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_CHLORINE_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_CHLORINE_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_CHLORINE_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_CHLORINE_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_CHLORINE_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Fecal coliform and E. Coli Concentration Measurement -// Cluster specification level: zcl-6.0-15-02018-001 - -// Client attributes -#define ZCL_FECAL_COLIFORM_AND_E_COLI_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_FECAL_COLIFORM_AND_E_COLI_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_FECAL_COLIFORM_AND_E_COLI_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_FECAL_COLIFORM_AND_E_COLI_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_FECAL_COLIFORM_AND_E_COLI_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_FECAL_COLIFORM_AND_E_COLI_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_FECAL_COLIFORM_AND_E_COLI_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_FECAL_COLIFORM_AND_E_COLI_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Fluoride Concentration Measurement -// Cluster specification level: zcl-6.0-15-02018-001 - -// Client attributes -#define ZCL_FLUORIDE_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_FLUORIDE_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_FLUORIDE_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_FLUORIDE_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_FLUORIDE_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_FLUORIDE_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_FLUORIDE_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_FLUORIDE_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Haloacetic Acids Concentration Measurement -// Cluster specification level: zcl-6.0-15-02018-001 - -// Client attributes -#define ZCL_HALOACETIC_ACIDS_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_HALOACETIC_ACIDS_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_HALOACETIC_ACIDS_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_HALOACETIC_ACIDS_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_HALOACETIC_ACIDS_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_HALOACETIC_ACIDS_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_HALOACETIC_ACIDS_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_HALOACETIC_ACIDS_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Total Trihalomethanes Concentration Measurement -// Cluster specification level: zcl-6.0-15-02018-001 - -// Client attributes -#define ZCL_TOTAL_TRIHALOMETHANES_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_TOTAL_TRIHALOMETHANES_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_TOTAL_TRIHALOMETHANES_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_TOTAL_TRIHALOMETHANES_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_TOTAL_TRIHALOMETHANES_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_TOTAL_TRIHALOMETHANES_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_TOTAL_TRIHALOMETHANES_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_TOTAL_TRIHALOMETHANES_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Total Coliform Bacteria Concentration Measurement -// Cluster specification level: zcl-6.0-15-02018-001 - -// Client attributes -#define ZCL_TOTAL_COLIFORM_BACTERIA_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_TOTAL_COLIFORM_BACTERIA_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_TOTAL_COLIFORM_BACTERIA_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_TOTAL_COLIFORM_BACTERIA_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_TOTAL_COLIFORM_BACTERIA_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_TOTAL_COLIFORM_BACTERIA_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_TOTAL_COLIFORM_BACTERIA_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_TOTAL_COLIFORM_BACTERIA_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Turbidity Concentration Measurement -// Cluster specification level: zcl-6.0-15-02018-001 - -// Client attributes -#define ZCL_TURBIDITY_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_TURBIDITY_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_TURBIDITY_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_TURBIDITY_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_TURBIDITY_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_TURBIDITY_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_TURBIDITY_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_TURBIDITY_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Copper Concentration Measurement -// Cluster specification level: zcl-6.0-15-02018-001 - -// Client attributes -#define ZCL_COPPER_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_COPPER_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_COPPER_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_COPPER_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_COPPER_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_COPPER_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_COPPER_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_COPPER_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Lead Concentration Measurement -// Cluster specification level: zcl-6.0-15-02018-001 - -// Client attributes -#define ZCL_LEAD_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_LEAD_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_LEAD_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_LEAD_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_LEAD_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_LEAD_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_LEAD_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_LEAD_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Manganese Concentration Measurement -// Cluster specification level: zcl-6.0-15-02018-001 - -// Client attributes -#define ZCL_MANGANESE_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_MANGANESE_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_MANGANESE_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_MANGANESE_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_MANGANESE_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_MANGANESE_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_MANGANESE_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_MANGANESE_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Sulfate Concentration Measurement -// Cluster specification level: zcl-6.0-15-02018-001 - -// Client attributes -#define ZCL_SULFATE_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_SULFATE_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_SULFATE_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_SULFATE_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_SULFATE_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_SULFATE_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_SULFATE_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_SULFATE_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Bromodichloromethane Concentration Measurement -// Cluster specification level: zcl-6.0-15-02018-001 - -// Client attributes -#define ZCL_BROMODICHLOROMETHANE_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_BROMODICHLOROMETHANE_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_BROMODICHLOROMETHANE_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_BROMODICHLOROMETHANE_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_BROMODICHLOROMETHANE_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_BROMODICHLOROMETHANE_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_BROMODICHLOROMETHANE_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_BROMODICHLOROMETHANE_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Bromoform Concentration Measurement -// Cluster specification level: zcl-6.0-15-02018-001 - -// Client attributes -#define ZCL_BROMOFORM_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_BROMOFORM_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_BROMOFORM_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_BROMOFORM_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_BROMOFORM_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_BROMOFORM_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_BROMOFORM_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_BROMOFORM_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Chlorodibromomethane Concentration Measurement -// Cluster specification level: zcl-6.0-15-02018-001 - -// Client attributes -#define ZCL_CHLORODIBROMOMETHANE_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_CHLORODIBROMOMETHANE_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_CHLORODIBROMOMETHANE_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_CHLORODIBROMOMETHANE_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_CHLORODIBROMOMETHANE_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_CHLORODIBROMOMETHANE_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_CHLORODIBROMOMETHANE_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_CHLORODIBROMOMETHANE_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Chloroform Concentration Measurement -// Cluster specification level: zcl-6.0-15-02018-001 - -// Client attributes -#define ZCL_CHLOROFORM_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_CHLOROFORM_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_CHLOROFORM_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_CHLOROFORM_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_CHLOROFORM_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_CHLOROFORM_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_CHLOROFORM_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_CHLOROFORM_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Sodium Concentration Measurement -// Cluster specification level: zcl-6.0-15-02018-001 - -// Client attributes -#define ZCL_SODIUM_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_SODIUM_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_SODIUM_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_SODIUM_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_SODIUM_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_SODIUM_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_SODIUM_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_SODIUM_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: IAS Zone -// Cluster specification level: zcl-6.0-15-02018-001 - -// Client attributes -#define ZCL_IAS_ZONE_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_IAS_ZONE_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_ZONE_STATE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_ZONE_TYPE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_ZONE_STATUS_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_IAS_CIE_ADDRESS_ATTRIBUTE_ID 0x0010 // Ver.: always -#define ZCL_ZONE_ID_ATTRIBUTE_ID 0x0011 // Ver.: always -#define ZCL_NUMBER_OF_ZONE_SENSITIVITY_LEVELS_SUPPORTED_ATTRIBUTE_ID 0x0012 // Ver.: always -#define ZCL_CURRENT_ZONE_SENSITIVITY_LEVEL_ATTRIBUTE_ID 0x0013 // Ver.: always -#define ZCL_IAS_ZONE_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_IAS_ZONE_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: IAS ACE -// Cluster specification level: zcl-6.0-15-02018-001 - -// Client attributes -#define ZCL_IAS_ACE_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_IAS_ACE_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_IAS_ACE_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_IAS_ACE_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: IAS WD -// Cluster specification level: zcl-6.0-15-02018-001 - -// Client attributes -#define ZCL_IAS_WD_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_IAS_WD_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_MAX_DURATION_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_IAS_WD_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_IAS_WD_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Generic Tunnel -// Cluster specification level: cba-1.0-05-3516-12 - -// Client attributes -#define ZCL_GENERIC_TUNNEL_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_GENERIC_TUNNEL_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_MAXIMUM_INCOMING_TRANSFER_SIZE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_MAXIMUM_OUTGOING_TRANSFER_SIZE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_PROTOCOL_ADDRESS_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_GENERIC_TUNNEL_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_GENERIC_TUNNEL_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: BACnet Protocol Tunnel -// Cluster specification level: cba-1.0-05-3516-12 - -// Client attributes -#define ZCL_BACNET_PROTOCOL_TUNNEL_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_BACNET_PROTOCOL_TUNNEL_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_BACNET_PROTOCOL_TUNNEL_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_BACNET_PROTOCOL_TUNNEL_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: 11073 Protocol Tunnel -// Cluster specification level: hc-1.0-07-5360-15 - -// Client attributes -#define ZCL_11073_PROTOCOL_TUNNEL_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_11073_PROTOCOL_TUNNEL_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_DEVICE_ID_LIST_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_MANAGER_TARGET_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_MANAGER_ENDPOINT_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_CONNECTED_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_PREEMPTIBLE_ATTRIBUTE_ID 0x0004 // Ver.: always -#define ZCL_IDLE_TIMEOUT_ATTRIBUTE_ID 0x0005 // Ver.: always -#define ZCL_11073_PROTOCOL_TUNNEL_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_11073_PROTOCOL_TUNNEL_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: ISO 7816 Protocol Tunnel -// Cluster specification level: ta-1.0-07-5307-07 - -// Client attributes -#define ZCL_ISO7816_PROTOCOL_TUNNEL_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_ISO7816_PROTOCOL_TUNNEL_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_ISO7816_PROTOCOL_TUNNEL_STATUS_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_ISO7816_PROTOCOL_TUNNEL_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_ISO7816_PROTOCOL_TUNNEL_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Price -// Cluster specification level: se-1.2b-15-0131-02 - -// Client attributes -#define ZCL_PRICE_INCREASE_RANDOMIZE_MINUTES_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_PRICE_DECREASE_RANDOMIZE_MINUTES_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_COMMODITY_TYPE_CLIENT_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_PRICE_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_PRICE_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_TIER1_PRICE_LABEL_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_TIER2_PRICE_LABEL_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_TIER3_PRICE_LABEL_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_TIER4_PRICE_LABEL_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_TIER5_PRICE_LABEL_ATTRIBUTE_ID 0x0004 // Ver.: always -#define ZCL_TIER6_PRICE_LABEL_ATTRIBUTE_ID 0x0005 // Ver.: always -#define ZCL_TIER7_PRICE_LABEL_ATTRIBUTE_ID 0x0006 // Ver.: always -#define ZCL_TIER8_PRICE_LABEL_ATTRIBUTE_ID 0x0007 // Ver.: always -#define ZCL_TIER9_PRICE_LABEL_ATTRIBUTE_ID 0x0008 // Ver.: always -#define ZCL_TIER10_PRICE_LABEL_ATTRIBUTE_ID 0x0009 // Ver.: always -#define ZCL_TIER11_PRICE_LABEL_ATTRIBUTE_ID 0x000A // Ver.: always -#define ZCL_TIER12_PRICE_LABEL_ATTRIBUTE_ID 0x000B // Ver.: always -#define ZCL_TIER13_PRICE_LABEL_ATTRIBUTE_ID 0x000C // Ver.: always -#define ZCL_TIER14_PRICE_LABEL_ATTRIBUTE_ID 0x000D // Ver.: always -#define ZCL_TIER15_PRICE_LABEL_ATTRIBUTE_ID 0x000E // Ver.: always -#define ZCL_TIER16_PRICE_LABEL_ATTRIBUTE_ID 0x000F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER17_PRICE_LABEL_ATTRIBUTE_ID 0x0010 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER18_PRICE_LABEL_ATTRIBUTE_ID 0x0011 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER19_PRICE_LABEL_ATTRIBUTE_ID 0x0012 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER20_PRICE_LABEL_ATTRIBUTE_ID 0x0013 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER21_PRICE_LABEL_ATTRIBUTE_ID 0x0014 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER22_PRICE_LABEL_ATTRIBUTE_ID 0x0015 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER23_PRICE_LABEL_ATTRIBUTE_ID 0x0016 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER24_PRICE_LABEL_ATTRIBUTE_ID 0x0017 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER25_PRICE_LABEL_ATTRIBUTE_ID 0x0018 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER26_PRICE_LABEL_ATTRIBUTE_ID 0x0019 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER27_PRICE_LABEL_ATTRIBUTE_ID 0x001A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER28_PRICE_LABEL_ATTRIBUTE_ID 0x001B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER29_PRICE_LABEL_ATTRIBUTE_ID 0x001C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER30_PRICE_LABEL_ATTRIBUTE_ID 0x001D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER31_PRICE_LABEL_ATTRIBUTE_ID 0x001E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER32_PRICE_LABEL_ATTRIBUTE_ID 0x001F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER33_PRICE_LABEL_ATTRIBUTE_ID 0x0020 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER34_PRICE_LABEL_ATTRIBUTE_ID 0x0021 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER35_PRICE_LABEL_ATTRIBUTE_ID 0x0022 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER36_PRICE_LABEL_ATTRIBUTE_ID 0x0023 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER37_PRICE_LABEL_ATTRIBUTE_ID 0x0024 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER38_PRICE_LABEL_ATTRIBUTE_ID 0x0025 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER39_PRICE_LABEL_ATTRIBUTE_ID 0x0026 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER40_PRICE_LABEL_ATTRIBUTE_ID 0x0027 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER41_PRICE_LABEL_ATTRIBUTE_ID 0x0028 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER42_PRICE_LABEL_ATTRIBUTE_ID 0x0029 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER43_PRICE_LABEL_ATTRIBUTE_ID 0x002A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER44_PRICE_LABEL_ATTRIBUTE_ID 0x002B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER45_PRICE_LABEL_ATTRIBUTE_ID 0x002C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER46_PRICE_LABEL_ATTRIBUTE_ID 0x002D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER47_PRICE_LABEL_ATTRIBUTE_ID 0x002E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER48_PRICE_LABEL_ATTRIBUTE_ID 0x002F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_BLOCK1_THRESHOLD_ATTRIBUTE_ID 0x0100 // Ver.: always -#define ZCL_BLOCK2_THRESHOLD_ATTRIBUTE_ID 0x0101 // Ver.: always -#define ZCL_BLOCK3_THRESHOLD_ATTRIBUTE_ID 0x0102 // Ver.: always -#define ZCL_BLOCK4_THRESHOLD_ATTRIBUTE_ID 0x0103 // Ver.: always -#define ZCL_BLOCK5_THRESHOLD_ATTRIBUTE_ID 0x0104 // Ver.: always -#define ZCL_BLOCK6_THRESHOLD_ATTRIBUTE_ID 0x0105 // Ver.: always -#define ZCL_BLOCK7_THRESHOLD_ATTRIBUTE_ID 0x0106 // Ver.: always -#define ZCL_BLOCK8_THRESHOLD_ATTRIBUTE_ID 0x0107 // Ver.: always -#define ZCL_BLOCK9_THRESHOLD_ATTRIBUTE_ID 0x0108 // Ver.: always -#define ZCL_BLOCK10_THRESHOLD_ATTRIBUTE_ID 0x0109 // Ver.: always -#define ZCL_BLOCK11_THRESHOLD_ATTRIBUTE_ID 0x010A // Ver.: always -#define ZCL_BLOCK12_THRESHOLD_ATTRIBUTE_ID 0x010B // Ver.: always -#define ZCL_BLOCK13_THRESHOLD_ATTRIBUTE_ID 0x010C // Ver.: always -#define ZCL_BLOCK14_THRESHOLD_ATTRIBUTE_ID 0x010D // Ver.: always -#define ZCL_BLOCK15_THRESHOLD_ATTRIBUTE_ID 0x010E // Ver.: always -#define ZCL_BLOCK_THRESHOLD_COUNT_ATTRIBUTE_ID 0x010F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER1_BLOCK1_THRESHOLD_ATTRIBUTE_ID 0x0110 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER1_BLOCK2_THRESHOLD_ATTRIBUTE_ID 0x0111 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER1_BLOCK3_THRESHOLD_ATTRIBUTE_ID 0x0112 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER1_BLOCK4_THRESHOLD_ATTRIBUTE_ID 0x0113 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER1_BLOCK5_THRESHOLD_ATTRIBUTE_ID 0x0114 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER1_BLOCK6_THRESHOLD_ATTRIBUTE_ID 0x0115 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER1_BLOCK7_THRESHOLD_ATTRIBUTE_ID 0x0116 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER1_BLOCK8_THRESHOLD_ATTRIBUTE_ID 0x0117 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER1_BLOCK9_THRESHOLD_ATTRIBUTE_ID 0x0118 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER1_BLOCK10_THRESHOLD_ATTRIBUTE_ID 0x0119 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER1_BLOCK11_THRESHOLD_ATTRIBUTE_ID 0x011A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER1_BLOCK12_THRESHOLD_ATTRIBUTE_ID 0x011B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER1_BLOCK13_THRESHOLD_ATTRIBUTE_ID 0x011C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER1_BLOCK14_THRESHOLD_ATTRIBUTE_ID 0x011D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER1_BLOCK15_THRESHOLD_ATTRIBUTE_ID 0x011E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER1_BLOCK_THRESHOLD_COUNT_ATTRIBUTE_ID 0x011F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER2_BLOCK1_THRESHOLD_ATTRIBUTE_ID 0x0120 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER2_BLOCK2_THRESHOLD_ATTRIBUTE_ID 0x0121 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER2_BLOCK3_THRESHOLD_ATTRIBUTE_ID 0x0122 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER2_BLOCK4_THRESHOLD_ATTRIBUTE_ID 0x0123 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER2_BLOCK5_THRESHOLD_ATTRIBUTE_ID 0x0124 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER2_BLOCK6_THRESHOLD_ATTRIBUTE_ID 0x0125 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER2_BLOCK7_THRESHOLD_ATTRIBUTE_ID 0x0126 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER2_BLOCK8_THRESHOLD_ATTRIBUTE_ID 0x0127 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER2_BLOCK9_THRESHOLD_ATTRIBUTE_ID 0x0128 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER2_BLOCK10_THRESHOLD_ATTRIBUTE_ID 0x0129 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER2_BLOCK11_THRESHOLD_ATTRIBUTE_ID 0x012A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER2_BLOCK12_THRESHOLD_ATTRIBUTE_ID 0x012B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER2_BLOCK13_THRESHOLD_ATTRIBUTE_ID 0x012C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER2_BLOCK14_THRESHOLD_ATTRIBUTE_ID 0x012D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER2_BLOCK15_THRESHOLD_ATTRIBUTE_ID 0x012E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER2_BLOCK_THRESHOLD_COUNT_ATTRIBUTE_ID 0x012F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER3_BLOCK1_THRESHOLD_ATTRIBUTE_ID 0x0130 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER3_BLOCK2_THRESHOLD_ATTRIBUTE_ID 0x0131 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER3_BLOCK3_THRESHOLD_ATTRIBUTE_ID 0x0132 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER3_BLOCK4_THRESHOLD_ATTRIBUTE_ID 0x0133 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER3_BLOCK5_THRESHOLD_ATTRIBUTE_ID 0x0134 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER3_BLOCK6_THRESHOLD_ATTRIBUTE_ID 0x0135 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER3_BLOCK7_THRESHOLD_ATTRIBUTE_ID 0x0136 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER3_BLOCK8_THRESHOLD_ATTRIBUTE_ID 0x0137 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER3_BLOCK9_THRESHOLD_ATTRIBUTE_ID 0x0138 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER3_BLOCK10_THRESHOLD_ATTRIBUTE_ID 0x0139 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER3_BLOCK11_THRESHOLD_ATTRIBUTE_ID 0x013A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER3_BLOCK12_THRESHOLD_ATTRIBUTE_ID 0x013B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER3_BLOCK13_THRESHOLD_ATTRIBUTE_ID 0x013C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER3_BLOCK14_THRESHOLD_ATTRIBUTE_ID 0x013D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER3_BLOCK15_THRESHOLD_ATTRIBUTE_ID 0x013E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER3_BLOCK_THRESHOLD_COUNT_ATTRIBUTE_ID 0x013F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER4_BLOCK1_THRESHOLD_ATTRIBUTE_ID 0x0140 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER4_BLOCK2_THRESHOLD_ATTRIBUTE_ID 0x0141 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER4_BLOCK3_THRESHOLD_ATTRIBUTE_ID 0x0142 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER4_BLOCK4_THRESHOLD_ATTRIBUTE_ID 0x0143 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER4_BLOCK5_THRESHOLD_ATTRIBUTE_ID 0x0144 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER4_BLOCK6_THRESHOLD_ATTRIBUTE_ID 0x0145 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER4_BLOCK7_THRESHOLD_ATTRIBUTE_ID 0x0146 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER4_BLOCK8_THRESHOLD_ATTRIBUTE_ID 0x0147 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER4_BLOCK9_THRESHOLD_ATTRIBUTE_ID 0x0148 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER4_BLOCK10_THRESHOLD_ATTRIBUTE_ID 0x0149 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER4_BLOCK11_THRESHOLD_ATTRIBUTE_ID 0x014A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER4_BLOCK12_THRESHOLD_ATTRIBUTE_ID 0x014B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER4_BLOCK13_THRESHOLD_ATTRIBUTE_ID 0x014C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER4_BLOCK14_THRESHOLD_ATTRIBUTE_ID 0x014D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER4_BLOCK15_THRESHOLD_ATTRIBUTE_ID 0x014E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER4_BLOCK_THRESHOLD_COUNT_ATTRIBUTE_ID 0x014F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER5_BLOCK1_THRESHOLD_ATTRIBUTE_ID 0x0150 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER5_BLOCK2_THRESHOLD_ATTRIBUTE_ID 0x0151 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER5_BLOCK3_THRESHOLD_ATTRIBUTE_ID 0x0152 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER5_BLOCK4_THRESHOLD_ATTRIBUTE_ID 0x0153 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER5_BLOCK5_THRESHOLD_ATTRIBUTE_ID 0x0154 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER5_BLOCK6_THRESHOLD_ATTRIBUTE_ID 0x0155 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER5_BLOCK7_THRESHOLD_ATTRIBUTE_ID 0x0156 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER5_BLOCK8_THRESHOLD_ATTRIBUTE_ID 0x0157 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER5_BLOCK9_THRESHOLD_ATTRIBUTE_ID 0x0158 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER5_BLOCK10_THRESHOLD_ATTRIBUTE_ID 0x0159 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER5_BLOCK11_THRESHOLD_ATTRIBUTE_ID 0x015A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER5_BLOCK12_THRESHOLD_ATTRIBUTE_ID 0x015B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER5_BLOCK13_THRESHOLD_ATTRIBUTE_ID 0x015C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER5_BLOCK14_THRESHOLD_ATTRIBUTE_ID 0x015D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER5_BLOCK15_THRESHOLD_ATTRIBUTE_ID 0x015E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER5_BLOCK_THRESHOLD_COUNT_ATTRIBUTE_ID 0x015F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER6_BLOCK1_THRESHOLD_ATTRIBUTE_ID 0x0160 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER6_BLOCK2_THRESHOLD_ATTRIBUTE_ID 0x0161 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER6_BLOCK3_THRESHOLD_ATTRIBUTE_ID 0x0162 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER6_BLOCK4_THRESHOLD_ATTRIBUTE_ID 0x0163 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER6_BLOCK5_THRESHOLD_ATTRIBUTE_ID 0x0164 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER6_BLOCK6_THRESHOLD_ATTRIBUTE_ID 0x0165 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER6_BLOCK7_THRESHOLD_ATTRIBUTE_ID 0x0166 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER6_BLOCK8_THRESHOLD_ATTRIBUTE_ID 0x0167 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER6_BLOCK9_THRESHOLD_ATTRIBUTE_ID 0x0168 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER6_BLOCK10_THRESHOLD_ATTRIBUTE_ID 0x0169 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER6_BLOCK11_THRESHOLD_ATTRIBUTE_ID 0x016A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER6_BLOCK12_THRESHOLD_ATTRIBUTE_ID 0x016B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER6_BLOCK13_THRESHOLD_ATTRIBUTE_ID 0x016C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER6_BLOCK14_THRESHOLD_ATTRIBUTE_ID 0x016D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER6_BLOCK15_THRESHOLD_ATTRIBUTE_ID 0x016E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER6_BLOCK_THRESHOLD_COUNT_ATTRIBUTE_ID 0x016F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER7_BLOCK1_THRESHOLD_ATTRIBUTE_ID 0x0170 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER7_BLOCK2_THRESHOLD_ATTRIBUTE_ID 0x0171 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER7_BLOCK3_THRESHOLD_ATTRIBUTE_ID 0x0172 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER7_BLOCK4_THRESHOLD_ATTRIBUTE_ID 0x0173 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER7_BLOCK5_THRESHOLD_ATTRIBUTE_ID 0x0174 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER7_BLOCK6_THRESHOLD_ATTRIBUTE_ID 0x0175 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER7_BLOCK7_THRESHOLD_ATTRIBUTE_ID 0x0176 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER7_BLOCK8_THRESHOLD_ATTRIBUTE_ID 0x0177 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER7_BLOCK9_THRESHOLD_ATTRIBUTE_ID 0x0178 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER7_BLOCK10_THRESHOLD_ATTRIBUTE_ID 0x0179 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER7_BLOCK11_THRESHOLD_ATTRIBUTE_ID 0x017A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER7_BLOCK12_THRESHOLD_ATTRIBUTE_ID 0x017B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER7_BLOCK13_THRESHOLD_ATTRIBUTE_ID 0x017C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER7_BLOCK14_THRESHOLD_ATTRIBUTE_ID 0x017D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER7_BLOCK15_THRESHOLD_ATTRIBUTE_ID 0x017E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER7_BLOCK_THRESHOLD_COUNT_ATTRIBUTE_ID 0x017F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER8_BLOCK1_THRESHOLD_ATTRIBUTE_ID 0x0180 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER8_BLOCK2_THRESHOLD_ATTRIBUTE_ID 0x0181 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER8_BLOCK3_THRESHOLD_ATTRIBUTE_ID 0x0182 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER8_BLOCK4_THRESHOLD_ATTRIBUTE_ID 0x0183 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER8_BLOCK5_THRESHOLD_ATTRIBUTE_ID 0x0184 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER8_BLOCK6_THRESHOLD_ATTRIBUTE_ID 0x0185 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER8_BLOCK7_THRESHOLD_ATTRIBUTE_ID 0x0186 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER8_BLOCK8_THRESHOLD_ATTRIBUTE_ID 0x0187 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER8_BLOCK9_THRESHOLD_ATTRIBUTE_ID 0x0188 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER8_BLOCK10_THRESHOLD_ATTRIBUTE_ID 0x0189 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER8_BLOCK11_THRESHOLD_ATTRIBUTE_ID 0x018A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER8_BLOCK12_THRESHOLD_ATTRIBUTE_ID 0x018B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER8_BLOCK13_THRESHOLD_ATTRIBUTE_ID 0x018C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER8_BLOCK14_THRESHOLD_ATTRIBUTE_ID 0x018D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER8_BLOCK15_THRESHOLD_ATTRIBUTE_ID 0x018E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER8_BLOCK_THRESHOLD_COUNT_ATTRIBUTE_ID 0x018F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER9_BLOCK1_THRESHOLD_ATTRIBUTE_ID 0x0190 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER9_BLOCK2_THRESHOLD_ATTRIBUTE_ID 0x0191 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER9_BLOCK3_THRESHOLD_ATTRIBUTE_ID 0x0192 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER9_BLOCK4_THRESHOLD_ATTRIBUTE_ID 0x0193 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER9_BLOCK5_THRESHOLD_ATTRIBUTE_ID 0x0194 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER9_BLOCK6_THRESHOLD_ATTRIBUTE_ID 0x0195 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER9_BLOCK7_THRESHOLD_ATTRIBUTE_ID 0x0196 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER9_BLOCK8_THRESHOLD_ATTRIBUTE_ID 0x0197 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER9_BLOCK9_THRESHOLD_ATTRIBUTE_ID 0x0198 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER9_BLOCK10_THRESHOLD_ATTRIBUTE_ID 0x0199 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER9_BLOCK11_THRESHOLD_ATTRIBUTE_ID 0x019A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER9_BLOCK12_THRESHOLD_ATTRIBUTE_ID 0x019B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER9_BLOCK13_THRESHOLD_ATTRIBUTE_ID 0x019C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER9_BLOCK14_THRESHOLD_ATTRIBUTE_ID 0x019D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER9_BLOCK15_THRESHOLD_ATTRIBUTE_ID 0x019E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER9_BLOCK_THRESHOLD_COUNT_ATTRIBUTE_ID 0x019F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER10_BLOCK1_THRESHOLD_ATTRIBUTE_ID 0x01A0 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER10_BLOCK2_THRESHOLD_ATTRIBUTE_ID 0x01A1 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER10_BLOCK3_THRESHOLD_ATTRIBUTE_ID 0x01A2 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER10_BLOCK4_THRESHOLD_ATTRIBUTE_ID 0x01A3 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER10_BLOCK5_THRESHOLD_ATTRIBUTE_ID 0x01A4 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER10_BLOCK6_THRESHOLD_ATTRIBUTE_ID 0x01A5 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER10_BLOCK7_THRESHOLD_ATTRIBUTE_ID 0x01A6 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER10_BLOCK8_THRESHOLD_ATTRIBUTE_ID 0x01A7 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER10_BLOCK9_THRESHOLD_ATTRIBUTE_ID 0x01A8 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER10_BLOCK10_THRESHOLD_ATTRIBUTE_ID 0x01A9 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER10_BLOCK11_THRESHOLD_ATTRIBUTE_ID 0x01AA // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER10_BLOCK12_THRESHOLD_ATTRIBUTE_ID 0x01AB // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER10_BLOCK13_THRESHOLD_ATTRIBUTE_ID 0x01AC // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER10_BLOCK14_THRESHOLD_ATTRIBUTE_ID 0x01AD // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER10_BLOCK15_THRESHOLD_ATTRIBUTE_ID 0x01AE // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER10_BLOCK_THRESHOLD_COUNT_ATTRIBUTE_ID 0x01AF // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER11_BLOCK1_THRESHOLD_ATTRIBUTE_ID 0x01B0 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER11_BLOCK2_THRESHOLD_ATTRIBUTE_ID 0x01B1 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER11_BLOCK3_THRESHOLD_ATTRIBUTE_ID 0x01B2 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER11_BLOCK4_THRESHOLD_ATTRIBUTE_ID 0x01B3 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER11_BLOCK5_THRESHOLD_ATTRIBUTE_ID 0x01B4 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER11_BLOCK6_THRESHOLD_ATTRIBUTE_ID 0x01B5 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER11_BLOCK7_THRESHOLD_ATTRIBUTE_ID 0x01B6 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER11_BLOCK8_THRESHOLD_ATTRIBUTE_ID 0x01B7 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER11_BLOCK9_THRESHOLD_ATTRIBUTE_ID 0x01B8 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER11_BLOCK10_THRESHOLD_ATTRIBUTE_ID 0x01B9 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER11_BLOCK11_THRESHOLD_ATTRIBUTE_ID 0x01BA // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER11_BLOCK12_THRESHOLD_ATTRIBUTE_ID 0x01BB // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER11_BLOCK13_THRESHOLD_ATTRIBUTE_ID 0x01BC // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER11_BLOCK14_THRESHOLD_ATTRIBUTE_ID 0x01BD // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER11_BLOCK15_THRESHOLD_ATTRIBUTE_ID 0x01BE // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER11_BLOCK_THRESHOLD_COUNT_ATTRIBUTE_ID 0x01BF // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER12_BLOCK1_THRESHOLD_ATTRIBUTE_ID 0x01C0 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER12_BLOCK2_THRESHOLD_ATTRIBUTE_ID 0x01C1 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER12_BLOCK3_THRESHOLD_ATTRIBUTE_ID 0x01C2 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER12_BLOCK4_THRESHOLD_ATTRIBUTE_ID 0x01C3 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER12_BLOCK5_THRESHOLD_ATTRIBUTE_ID 0x01C4 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER12_BLOCK6_THRESHOLD_ATTRIBUTE_ID 0x01C5 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER12_BLOCK7_THRESHOLD_ATTRIBUTE_ID 0x01C6 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER12_BLOCK8_THRESHOLD_ATTRIBUTE_ID 0x01C7 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER12_BLOCK9_THRESHOLD_ATTRIBUTE_ID 0x01C8 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER12_BLOCK10_THRESHOLD_ATTRIBUTE_ID 0x01C9 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER12_BLOCK11_THRESHOLD_ATTRIBUTE_ID 0x01CA // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER12_BLOCK12_THRESHOLD_ATTRIBUTE_ID 0x01CB // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER12_BLOCK13_THRESHOLD_ATTRIBUTE_ID 0x01CC // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER12_BLOCK14_THRESHOLD_ATTRIBUTE_ID 0x01CD // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER12_BLOCK15_THRESHOLD_ATTRIBUTE_ID 0x01CE // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER12_BLOCK_THRESHOLD_COUNT_ATTRIBUTE_ID 0x01CF // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER13_BLOCK1_THRESHOLD_ATTRIBUTE_ID 0x01D0 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER13_BLOCK2_THRESHOLD_ATTRIBUTE_ID 0x01D1 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER13_BLOCK3_THRESHOLD_ATTRIBUTE_ID 0x01D2 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER13_BLOCK4_THRESHOLD_ATTRIBUTE_ID 0x01D3 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER13_BLOCK5_THRESHOLD_ATTRIBUTE_ID 0x01D4 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER13_BLOCK6_THRESHOLD_ATTRIBUTE_ID 0x01D5 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER13_BLOCK7_THRESHOLD_ATTRIBUTE_ID 0x01D6 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER13_BLOCK8_THRESHOLD_ATTRIBUTE_ID 0x01D7 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER13_BLOCK9_THRESHOLD_ATTRIBUTE_ID 0x01D8 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER13_BLOCK10_THRESHOLD_ATTRIBUTE_ID 0x01D9 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER13_BLOCK11_THRESHOLD_ATTRIBUTE_ID 0x01DA // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER13_BLOCK12_THRESHOLD_ATTRIBUTE_ID 0x01DB // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER13_BLOCK13_THRESHOLD_ATTRIBUTE_ID 0x01DC // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER13_BLOCK14_THRESHOLD_ATTRIBUTE_ID 0x01DD // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER13_BLOCK15_THRESHOLD_ATTRIBUTE_ID 0x01DE // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER13_BLOCK_THRESHOLD_COUNT_ATTRIBUTE_ID 0x01DF // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER14_BLOCK1_THRESHOLD_ATTRIBUTE_ID 0x01E0 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER14_BLOCK2_THRESHOLD_ATTRIBUTE_ID 0x01E1 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER14_BLOCK3_THRESHOLD_ATTRIBUTE_ID 0x01E2 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER14_BLOCK4_THRESHOLD_ATTRIBUTE_ID 0x01E3 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER14_BLOCK5_THRESHOLD_ATTRIBUTE_ID 0x01E4 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER14_BLOCK6_THRESHOLD_ATTRIBUTE_ID 0x01E5 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER14_BLOCK7_THRESHOLD_ATTRIBUTE_ID 0x01E6 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER14_BLOCK8_THRESHOLD_ATTRIBUTE_ID 0x01E7 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER14_BLOCK9_THRESHOLD_ATTRIBUTE_ID 0x01E8 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER14_BLOCK10_THRESHOLD_ATTRIBUTE_ID 0x01E9 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER14_BLOCK11_THRESHOLD_ATTRIBUTE_ID 0x01EA // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER14_BLOCK12_THRESHOLD_ATTRIBUTE_ID 0x01EB // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER14_BLOCK13_THRESHOLD_ATTRIBUTE_ID 0x01EC // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER14_BLOCK14_THRESHOLD_ATTRIBUTE_ID 0x01ED // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER14_BLOCK15_THRESHOLD_ATTRIBUTE_ID 0x01EE // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER14_BLOCK_THRESHOLD_COUNT_ATTRIBUTE_ID 0x01EF // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER15_BLOCK1_THRESHOLD_ATTRIBUTE_ID 0x01F0 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER15_BLOCK2_THRESHOLD_ATTRIBUTE_ID 0x01F1 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER15_BLOCK3_THRESHOLD_ATTRIBUTE_ID 0x01F2 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER15_BLOCK4_THRESHOLD_ATTRIBUTE_ID 0x01F3 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER15_BLOCK5_THRESHOLD_ATTRIBUTE_ID 0x01F4 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER15_BLOCK6_THRESHOLD_ATTRIBUTE_ID 0x01F5 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER15_BLOCK7_THRESHOLD_ATTRIBUTE_ID 0x01F6 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER15_BLOCK8_THRESHOLD_ATTRIBUTE_ID 0x01F7 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER15_BLOCK9_THRESHOLD_ATTRIBUTE_ID 0x01F8 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER15_BLOCK10_THRESHOLD_ATTRIBUTE_ID 0x01F9 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER15_BLOCK11_THRESHOLD_ATTRIBUTE_ID 0x01FA // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER15_BLOCK12_THRESHOLD_ATTRIBUTE_ID 0x01FB // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER15_BLOCK13_THRESHOLD_ATTRIBUTE_ID 0x01FC // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER15_BLOCK14_THRESHOLD_ATTRIBUTE_ID 0x01FD // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER15_BLOCK15_THRESHOLD_ATTRIBUTE_ID 0x01FE // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER15_BLOCK_THRESHOLD_COUNT_ATTRIBUTE_ID 0x01FF // Ver.: since se-1.2a-07-5356-19 -#define ZCL_START_OF_BLOCK_PERIOD_ATTRIBUTE_ID 0x0200 // Ver.: always -#define ZCL_BLOCK_PERIOD_DURATION_MINUTES_ATTRIBUTE_ID 0x0201 // Ver.: always -#define ZCL_THRESHOLD_MULTIPLIER_ATTRIBUTE_ID 0x0202 // Ver.: always -#define ZCL_THRESHOLD_DIVISOR_ATTRIBUTE_ID 0x0203 // Ver.: always -#define ZCL_BLOCK_PERIOD_DURATION_TYPE_ATTRIBUTE_ID 0x0204 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_COMMODITY_TYPE_SERVER_ATTRIBUTE_ID 0x0300 // Ver.: always -#define ZCL_STANDING_CHARGE_ATTRIBUTE_ID 0x0301 // Ver.: always -#define ZCL_CONVERSION_FACTOR_ATTRIBUTE_ID 0x0302 // Ver.: since se-1.1a-07-5356-17 -#define ZCL_CONVERSION_FACTOR_TRAILING_DIGIT_ATTRIBUTE_ID 0x0303 // Ver.: since se-1.1a-07-5356-17 -#define ZCL_CALORIFIC_VALUE_ATTRIBUTE_ID 0x0304 // Ver.: since se-1.1a-07-5356-17 -#define ZCL_CALORIFIC_VALUE_UNIT_ATTRIBUTE_ID 0x0305 // Ver.: since se-1.1a-07-5356-17 -#define ZCL_CALORIFIC_VALUE_TRAILING_DIGIT_ATTRIBUTE_ID 0x0306 // Ver.: since se-1.1a-07-5356-17 -#define ZCL_NO_TIER_BLOCK1_PRICE_ATTRIBUTE_ID 0x0400 // Ver.: always -#define ZCL_NO_TIER_BLOCK2_PRICE_ATTRIBUTE_ID 0x0401 // Ver.: always -#define ZCL_NO_TIER_BLOCK3_PRICE_ATTRIBUTE_ID 0x0402 // Ver.: always -#define ZCL_NO_TIER_BLOCK4_PRICE_ATTRIBUTE_ID 0x0403 // Ver.: always -#define ZCL_NO_TIER_BLOCK5_PRICE_ATTRIBUTE_ID 0x0404 // Ver.: always -#define ZCL_NO_TIER_BLOCK6_PRICE_ATTRIBUTE_ID 0x0405 // Ver.: always -#define ZCL_NO_TIER_BLOCK7_PRICE_ATTRIBUTE_ID 0x0406 // Ver.: always -#define ZCL_NO_TIER_BLOCK8_PRICE_ATTRIBUTE_ID 0x0407 // Ver.: always -#define ZCL_NO_TIER_BLOCK9_PRICE_ATTRIBUTE_ID 0x0408 // Ver.: always -#define ZCL_NO_TIER_BLOCK10_PRICE_ATTRIBUTE_ID 0x0409 // Ver.: always -#define ZCL_NO_TIER_BLOCK11_PRICE_ATTRIBUTE_ID 0x040A // Ver.: always -#define ZCL_NO_TIER_BLOCK12_PRICE_ATTRIBUTE_ID 0x040B // Ver.: always -#define ZCL_NO_TIER_BLOCK13_PRICE_ATTRIBUTE_ID 0x040C // Ver.: always -#define ZCL_NO_TIER_BLOCK14_PRICE_ATTRIBUTE_ID 0x040D // Ver.: always -#define ZCL_NO_TIER_BLOCK15_PRICE_ATTRIBUTE_ID 0x040E // Ver.: always -#define ZCL_NO_TIER_BLOCK16_PRICE_ATTRIBUTE_ID 0x040F // Ver.: always -#define ZCL_TIER1_BLOCK1_PRICE_ATTRIBUTE_ID 0x0410 // Ver.: always -#define ZCL_TIER1_BLOCK2_PRICE_ATTRIBUTE_ID 0x0411 // Ver.: always -#define ZCL_TIER1_BLOCK3_PRICE_ATTRIBUTE_ID 0x0412 // Ver.: always -#define ZCL_TIER1_BLOCK4_PRICE_ATTRIBUTE_ID 0x0413 // Ver.: always -#define ZCL_TIER1_BLOCK5_PRICE_ATTRIBUTE_ID 0x0414 // Ver.: always -#define ZCL_TIER1_BLOCK6_PRICE_ATTRIBUTE_ID 0x0415 // Ver.: always -#define ZCL_TIER1_BLOCK7_PRICE_ATTRIBUTE_ID 0x0416 // Ver.: always -#define ZCL_TIER1_BLOCK8_PRICE_ATTRIBUTE_ID 0x0417 // Ver.: always -#define ZCL_TIER1_BLOCK9_PRICE_ATTRIBUTE_ID 0x0418 // Ver.: always -#define ZCL_TIER1_BLOCK10_PRICE_ATTRIBUTE_ID 0x0419 // Ver.: always -#define ZCL_TIER1_BLOCK11_PRICE_ATTRIBUTE_ID 0x041A // Ver.: always -#define ZCL_TIER1_BLOCK12_PRICE_ATTRIBUTE_ID 0x041B // Ver.: always -#define ZCL_TIER1_BLOCK13_PRICE_ATTRIBUTE_ID 0x041C // Ver.: always -#define ZCL_TIER1_BLOCK14_PRICE_ATTRIBUTE_ID 0x041D // Ver.: always -#define ZCL_TIER1_BLOCK15_PRICE_ATTRIBUTE_ID 0x041E // Ver.: always -#define ZCL_TIER1_BLOCK16_PRICE_ATTRIBUTE_ID 0x041F // Ver.: always -#define ZCL_TIER2_BLOCK1_PRICE_ATTRIBUTE_ID 0x0420 // Ver.: always -#define ZCL_TIER2_BLOCK2_PRICE_ATTRIBUTE_ID 0x0421 // Ver.: always -#define ZCL_TIER2_BLOCK3_PRICE_ATTRIBUTE_ID 0x0422 // Ver.: always -#define ZCL_TIER2_BLOCK4_PRICE_ATTRIBUTE_ID 0x0423 // Ver.: always -#define ZCL_TIER2_BLOCK5_PRICE_ATTRIBUTE_ID 0x0424 // Ver.: always -#define ZCL_TIER2_BLOCK6_PRICE_ATTRIBUTE_ID 0x0425 // Ver.: always -#define ZCL_TIER2_BLOCK7_PRICE_ATTRIBUTE_ID 0x0426 // Ver.: always -#define ZCL_TIER2_BLOCK8_PRICE_ATTRIBUTE_ID 0x0427 // Ver.: always -#define ZCL_TIER2_BLOCK9_PRICE_ATTRIBUTE_ID 0x0428 // Ver.: always -#define ZCL_TIER2_BLOCK10_PRICE_ATTRIBUTE_ID 0x0429 // Ver.: always -#define ZCL_TIER2_BLOCK11_PRICE_ATTRIBUTE_ID 0x042A // Ver.: always -#define ZCL_TIER2_BLOCK12_PRICE_ATTRIBUTE_ID 0x042B // Ver.: always -#define ZCL_TIER2_BLOCK13_PRICE_ATTRIBUTE_ID 0x042C // Ver.: always -#define ZCL_TIER2_BLOCK14_PRICE_ATTRIBUTE_ID 0x042D // Ver.: always -#define ZCL_TIER2_BLOCK15_PRICE_ATTRIBUTE_ID 0x042E // Ver.: always -#define ZCL_TIER2_BLOCK16_PRICE_ATTRIBUTE_ID 0x042F // Ver.: always -#define ZCL_TIER3_BLOCK1_PRICE_ATTRIBUTE_ID 0x0430 // Ver.: always -#define ZCL_TIER3_BLOCK2_PRICE_ATTRIBUTE_ID 0x0431 // Ver.: always -#define ZCL_TIER3_BLOCK3_PRICE_ATTRIBUTE_ID 0x0432 // Ver.: always -#define ZCL_TIER3_BLOCK4_PRICE_ATTRIBUTE_ID 0x0433 // Ver.: always -#define ZCL_TIER3_BLOCK5_PRICE_ATTRIBUTE_ID 0x0434 // Ver.: always -#define ZCL_TIER3_BLOCK6_PRICE_ATTRIBUTE_ID 0x0435 // Ver.: always -#define ZCL_TIER3_BLOCK7_PRICE_ATTRIBUTE_ID 0x0436 // Ver.: always -#define ZCL_TIER3_BLOCK8_PRICE_ATTRIBUTE_ID 0x0437 // Ver.: always -#define ZCL_TIER3_BLOCK9_PRICE_ATTRIBUTE_ID 0x0438 // Ver.: always -#define ZCL_TIER3_BLOCK10_PRICE_ATTRIBUTE_ID 0x0439 // Ver.: always -#define ZCL_TIER3_BLOCK11_PRICE_ATTRIBUTE_ID 0x043A // Ver.: always -#define ZCL_TIER3_BLOCK12_PRICE_ATTRIBUTE_ID 0x043B // Ver.: always -#define ZCL_TIER3_BLOCK13_PRICE_ATTRIBUTE_ID 0x043C // Ver.: always -#define ZCL_TIER3_BLOCK14_PRICE_ATTRIBUTE_ID 0x043D // Ver.: always -#define ZCL_TIER3_BLOCK15_PRICE_ATTRIBUTE_ID 0x043E // Ver.: always -#define ZCL_TIER3_BLOCK16_PRICE_ATTRIBUTE_ID 0x043F // Ver.: always -#define ZCL_TIER4_BLOCK1_PRICE_ATTRIBUTE_ID 0x0440 // Ver.: always -#define ZCL_TIER4_BLOCK2_PRICE_ATTRIBUTE_ID 0x0441 // Ver.: always -#define ZCL_TIER4_BLOCK3_PRICE_ATTRIBUTE_ID 0x0442 // Ver.: always -#define ZCL_TIER4_BLOCK4_PRICE_ATTRIBUTE_ID 0x0443 // Ver.: always -#define ZCL_TIER4_BLOCK5_PRICE_ATTRIBUTE_ID 0x0444 // Ver.: always -#define ZCL_TIER4_BLOCK6_PRICE_ATTRIBUTE_ID 0x0445 // Ver.: always -#define ZCL_TIER4_BLOCK7_PRICE_ATTRIBUTE_ID 0x0446 // Ver.: always -#define ZCL_TIER4_BLOCK8_PRICE_ATTRIBUTE_ID 0x0447 // Ver.: always -#define ZCL_TIER4_BLOCK9_PRICE_ATTRIBUTE_ID 0x0448 // Ver.: always -#define ZCL_TIER4_BLOCK10_PRICE_ATTRIBUTE_ID 0x0449 // Ver.: always -#define ZCL_TIER4_BLOCK11_PRICE_ATTRIBUTE_ID 0x044A // Ver.: always -#define ZCL_TIER4_BLOCK12_PRICE_ATTRIBUTE_ID 0x044B // Ver.: always -#define ZCL_TIER4_BLOCK13_PRICE_ATTRIBUTE_ID 0x044C // Ver.: always -#define ZCL_TIER4_BLOCK14_PRICE_ATTRIBUTE_ID 0x044D // Ver.: always -#define ZCL_TIER4_BLOCK15_PRICE_ATTRIBUTE_ID 0x044E // Ver.: always -#define ZCL_TIER4_BLOCK16_PRICE_ATTRIBUTE_ID 0x044F // Ver.: always -#define ZCL_TIER5_BLOCK1_PRICE_ATTRIBUTE_ID 0x0450 // Ver.: always -#define ZCL_TIER5_BLOCK2_PRICE_ATTRIBUTE_ID 0x0451 // Ver.: always -#define ZCL_TIER5_BLOCK3_PRICE_ATTRIBUTE_ID 0x0452 // Ver.: always -#define ZCL_TIER5_BLOCK4_PRICE_ATTRIBUTE_ID 0x0453 // Ver.: always -#define ZCL_TIER5_BLOCK5_PRICE_ATTRIBUTE_ID 0x0454 // Ver.: always -#define ZCL_TIER5_BLOCK6_PRICE_ATTRIBUTE_ID 0x0455 // Ver.: always -#define ZCL_TIER5_BLOCK7_PRICE_ATTRIBUTE_ID 0x0456 // Ver.: always -#define ZCL_TIER5_BLOCK8_PRICE_ATTRIBUTE_ID 0x0457 // Ver.: always -#define ZCL_TIER5_BLOCK9_PRICE_ATTRIBUTE_ID 0x0458 // Ver.: always -#define ZCL_TIER5_BLOCK10_PRICE_ATTRIBUTE_ID 0x0459 // Ver.: always -#define ZCL_TIER5_BLOCK11_PRICE_ATTRIBUTE_ID 0x045A // Ver.: always -#define ZCL_TIER5_BLOCK12_PRICE_ATTRIBUTE_ID 0x045B // Ver.: always -#define ZCL_TIER5_BLOCK13_PRICE_ATTRIBUTE_ID 0x045C // Ver.: always -#define ZCL_TIER5_BLOCK14_PRICE_ATTRIBUTE_ID 0x045D // Ver.: always -#define ZCL_TIER5_BLOCK15_PRICE_ATTRIBUTE_ID 0x045E // Ver.: always -#define ZCL_TIER5_BLOCK16_PRICE_ATTRIBUTE_ID 0x045F // Ver.: always -#define ZCL_TIER6_BLOCK1_PRICE_ATTRIBUTE_ID 0x0460 // Ver.: always -#define ZCL_TIER6_BLOCK2_PRICE_ATTRIBUTE_ID 0x0461 // Ver.: always -#define ZCL_TIER6_BLOCK3_PRICE_ATTRIBUTE_ID 0x0462 // Ver.: always -#define ZCL_TIER6_BLOCK4_PRICE_ATTRIBUTE_ID 0x0463 // Ver.: always -#define ZCL_TIER6_BLOCK5_PRICE_ATTRIBUTE_ID 0x0464 // Ver.: always -#define ZCL_TIER6_BLOCK6_PRICE_ATTRIBUTE_ID 0x0465 // Ver.: always -#define ZCL_TIER6_BLOCK7_PRICE_ATTRIBUTE_ID 0x0466 // Ver.: always -#define ZCL_TIER6_BLOCK8_PRICE_ATTRIBUTE_ID 0x0467 // Ver.: always -#define ZCL_TIER6_BLOCK9_PRICE_ATTRIBUTE_ID 0x0468 // Ver.: always -#define ZCL_TIER6_BLOCK10_PRICE_ATTRIBUTE_ID 0x0469 // Ver.: always -#define ZCL_TIER6_BLOCK11_PRICE_ATTRIBUTE_ID 0x046A // Ver.: always -#define ZCL_TIER6_BLOCK12_PRICE_ATTRIBUTE_ID 0x046B // Ver.: always -#define ZCL_TIER6_BLOCK13_PRICE_ATTRIBUTE_ID 0x046C // Ver.: always -#define ZCL_TIER6_BLOCK14_PRICE_ATTRIBUTE_ID 0x046D // Ver.: always -#define ZCL_TIER6_BLOCK15_PRICE_ATTRIBUTE_ID 0x046E // Ver.: always -#define ZCL_TIER6_BLOCK16_PRICE_ATTRIBUTE_ID 0x046F // Ver.: always -#define ZCL_TIER7_BLOCK1_PRICE_ATTRIBUTE_ID 0x0470 // Ver.: always -#define ZCL_TIER7_BLOCK2_PRICE_ATTRIBUTE_ID 0x0471 // Ver.: always -#define ZCL_TIER7_BLOCK3_PRICE_ATTRIBUTE_ID 0x0472 // Ver.: always -#define ZCL_TIER7_BLOCK4_PRICE_ATTRIBUTE_ID 0x0473 // Ver.: always -#define ZCL_TIER7_BLOCK5_PRICE_ATTRIBUTE_ID 0x0474 // Ver.: always -#define ZCL_TIER7_BLOCK6_PRICE_ATTRIBUTE_ID 0x0475 // Ver.: always -#define ZCL_TIER7_BLOCK7_PRICE_ATTRIBUTE_ID 0x0476 // Ver.: always -#define ZCL_TIER7_BLOCK8_PRICE_ATTRIBUTE_ID 0x0477 // Ver.: always -#define ZCL_TIER7_BLOCK9_PRICE_ATTRIBUTE_ID 0x0478 // Ver.: always -#define ZCL_TIER7_BLOCK10_PRICE_ATTRIBUTE_ID 0x0479 // Ver.: always -#define ZCL_TIER7_BLOCK11_PRICE_ATTRIBUTE_ID 0x047A // Ver.: always -#define ZCL_TIER7_BLOCK12_PRICE_ATTRIBUTE_ID 0x047B // Ver.: always -#define ZCL_TIER7_BLOCK13_PRICE_ATTRIBUTE_ID 0x047C // Ver.: always -#define ZCL_TIER7_BLOCK14_PRICE_ATTRIBUTE_ID 0x047D // Ver.: always -#define ZCL_TIER7_BLOCK15_PRICE_ATTRIBUTE_ID 0x047E // Ver.: always -#define ZCL_TIER7_BLOCK16_PRICE_ATTRIBUTE_ID 0x047F // Ver.: always -#define ZCL_TIER8_BLOCK1_PRICE_ATTRIBUTE_ID 0x0480 // Ver.: always -#define ZCL_TIER8_BLOCK2_PRICE_ATTRIBUTE_ID 0x0481 // Ver.: always -#define ZCL_TIER8_BLOCK3_PRICE_ATTRIBUTE_ID 0x0482 // Ver.: always -#define ZCL_TIER8_BLOCK4_PRICE_ATTRIBUTE_ID 0x0483 // Ver.: always -#define ZCL_TIER8_BLOCK5_PRICE_ATTRIBUTE_ID 0x0484 // Ver.: always -#define ZCL_TIER8_BLOCK6_PRICE_ATTRIBUTE_ID 0x0485 // Ver.: always -#define ZCL_TIER8_BLOCK7_PRICE_ATTRIBUTE_ID 0x0486 // Ver.: always -#define ZCL_TIER8_BLOCK8_PRICE_ATTRIBUTE_ID 0x0487 // Ver.: always -#define ZCL_TIER8_BLOCK9_PRICE_ATTRIBUTE_ID 0x0488 // Ver.: always -#define ZCL_TIER8_BLOCK10_PRICE_ATTRIBUTE_ID 0x0489 // Ver.: always -#define ZCL_TIER8_BLOCK11_PRICE_ATTRIBUTE_ID 0x048A // Ver.: always -#define ZCL_TIER8_BLOCK12_PRICE_ATTRIBUTE_ID 0x048B // Ver.: always -#define ZCL_TIER8_BLOCK13_PRICE_ATTRIBUTE_ID 0x048C // Ver.: always -#define ZCL_TIER8_BLOCK14_PRICE_ATTRIBUTE_ID 0x048D // Ver.: always -#define ZCL_TIER8_BLOCK15_PRICE_ATTRIBUTE_ID 0x048E // Ver.: always -#define ZCL_TIER8_BLOCK16_PRICE_ATTRIBUTE_ID 0x048F // Ver.: always -#define ZCL_TIER9_BLOCK1_PRICE_ATTRIBUTE_ID 0x0490 // Ver.: always -#define ZCL_TIER9_BLOCK2_PRICE_ATTRIBUTE_ID 0x0491 // Ver.: always -#define ZCL_TIER9_BLOCK3_PRICE_ATTRIBUTE_ID 0x0492 // Ver.: always -#define ZCL_TIER9_BLOCK4_PRICE_ATTRIBUTE_ID 0x0493 // Ver.: always -#define ZCL_TIER9_BLOCK5_PRICE_ATTRIBUTE_ID 0x0494 // Ver.: always -#define ZCL_TIER9_BLOCK6_PRICE_ATTRIBUTE_ID 0x0495 // Ver.: always -#define ZCL_TIER9_BLOCK7_PRICE_ATTRIBUTE_ID 0x0496 // Ver.: always -#define ZCL_TIER9_BLOCK8_PRICE_ATTRIBUTE_ID 0x0497 // Ver.: always -#define ZCL_TIER9_BLOCK9_PRICE_ATTRIBUTE_ID 0x0498 // Ver.: always -#define ZCL_TIER9_BLOCK10_PRICE_ATTRIBUTE_ID 0x0499 // Ver.: always -#define ZCL_TIER9_BLOCK11_PRICE_ATTRIBUTE_ID 0x049A // Ver.: always -#define ZCL_TIER9_BLOCK12_PRICE_ATTRIBUTE_ID 0x049B // Ver.: always -#define ZCL_TIER9_BLOCK13_PRICE_ATTRIBUTE_ID 0x049C // Ver.: always -#define ZCL_TIER9_BLOCK14_PRICE_ATTRIBUTE_ID 0x049D // Ver.: always -#define ZCL_TIER9_BLOCK15_PRICE_ATTRIBUTE_ID 0x049E // Ver.: always -#define ZCL_TIER9_BLOCK16_PRICE_ATTRIBUTE_ID 0x049F // Ver.: always -#define ZCL_TIER10_BLOCK1_PRICE_ATTRIBUTE_ID 0x04A0 // Ver.: always -#define ZCL_TIER10_BLOCK2_PRICE_ATTRIBUTE_ID 0x04A1 // Ver.: always -#define ZCL_TIER10_BLOCK3_PRICE_ATTRIBUTE_ID 0x04A2 // Ver.: always -#define ZCL_TIER10_BLOCK4_PRICE_ATTRIBUTE_ID 0x04A3 // Ver.: always -#define ZCL_TIER10_BLOCK5_PRICE_ATTRIBUTE_ID 0x04A4 // Ver.: always -#define ZCL_TIER10_BLOCK6_PRICE_ATTRIBUTE_ID 0x04A5 // Ver.: always -#define ZCL_TIER10_BLOCK7_PRICE_ATTRIBUTE_ID 0x04A6 // Ver.: always -#define ZCL_TIER10_BLOCK8_PRICE_ATTRIBUTE_ID 0x04A7 // Ver.: always -#define ZCL_TIER10_BLOCK9_PRICE_ATTRIBUTE_ID 0x04A8 // Ver.: always -#define ZCL_TIER10_BLOCK10_PRICE_ATTRIBUTE_ID 0x04A9 // Ver.: always -#define ZCL_TIER10_BLOCK11_PRICE_ATTRIBUTE_ID 0x04AA // Ver.: always -#define ZCL_TIER10_BLOCK12_PRICE_ATTRIBUTE_ID 0x04AB // Ver.: always -#define ZCL_TIER10_BLOCK13_PRICE_ATTRIBUTE_ID 0x04AC // Ver.: always -#define ZCL_TIER10_BLOCK14_PRICE_ATTRIBUTE_ID 0x04AD // Ver.: always -#define ZCL_TIER10_BLOCK15_PRICE_ATTRIBUTE_ID 0x04AE // Ver.: always -#define ZCL_TIER10_BLOCK16_PRICE_ATTRIBUTE_ID 0x04AF // Ver.: always -#define ZCL_TIER11_BLOCK1_PRICE_ATTRIBUTE_ID 0x04B0 // Ver.: always -#define ZCL_TIER11_BLOCK2_PRICE_ATTRIBUTE_ID 0x04B1 // Ver.: always -#define ZCL_TIER11_BLOCK3_PRICE_ATTRIBUTE_ID 0x04B2 // Ver.: always -#define ZCL_TIER11_BLOCK4_PRICE_ATTRIBUTE_ID 0x04B3 // Ver.: always -#define ZCL_TIER11_BLOCK5_PRICE_ATTRIBUTE_ID 0x04B4 // Ver.: always -#define ZCL_TIER11_BLOCK6_PRICE_ATTRIBUTE_ID 0x04B5 // Ver.: always -#define ZCL_TIER11_BLOCK7_PRICE_ATTRIBUTE_ID 0x04B6 // Ver.: always -#define ZCL_TIER11_BLOCK8_PRICE_ATTRIBUTE_ID 0x04B7 // Ver.: always -#define ZCL_TIER11_BLOCK9_PRICE_ATTRIBUTE_ID 0x04B8 // Ver.: always -#define ZCL_TIER11_BLOCK10_PRICE_ATTRIBUTE_ID 0x04B9 // Ver.: always -#define ZCL_TIER11_BLOCK11_PRICE_ATTRIBUTE_ID 0x04BA // Ver.: always -#define ZCL_TIER11_BLOCK12_PRICE_ATTRIBUTE_ID 0x04BB // Ver.: always -#define ZCL_TIER11_BLOCK13_PRICE_ATTRIBUTE_ID 0x04BC // Ver.: always -#define ZCL_TIER11_BLOCK14_PRICE_ATTRIBUTE_ID 0x04BD // Ver.: always -#define ZCL_TIER11_BLOCK15_PRICE_ATTRIBUTE_ID 0x04BE // Ver.: always -#define ZCL_TIER11_BLOCK16_PRICE_ATTRIBUTE_ID 0x04BF // Ver.: always -#define ZCL_TIER12_BLOCK1_PRICE_ATTRIBUTE_ID 0x04C0 // Ver.: always -#define ZCL_TIER12_BLOCK2_PRICE_ATTRIBUTE_ID 0x04C1 // Ver.: always -#define ZCL_TIER12_BLOCK3_PRICE_ATTRIBUTE_ID 0x04C2 // Ver.: always -#define ZCL_TIER12_BLOCK4_PRICE_ATTRIBUTE_ID 0x04C3 // Ver.: always -#define ZCL_TIER12_BLOCK5_PRICE_ATTRIBUTE_ID 0x04C4 // Ver.: always -#define ZCL_TIER12_BLOCK6_PRICE_ATTRIBUTE_ID 0x04C5 // Ver.: always -#define ZCL_TIER12_BLOCK7_PRICE_ATTRIBUTE_ID 0x04C6 // Ver.: always -#define ZCL_TIER12_BLOCK8_PRICE_ATTRIBUTE_ID 0x04C7 // Ver.: always -#define ZCL_TIER12_BLOCK9_PRICE_ATTRIBUTE_ID 0x04C8 // Ver.: always -#define ZCL_TIER12_BLOCK10_PRICE_ATTRIBUTE_ID 0x04C9 // Ver.: always -#define ZCL_TIER12_BLOCK11_PRICE_ATTRIBUTE_ID 0x04CA // Ver.: always -#define ZCL_TIER12_BLOCK12_PRICE_ATTRIBUTE_ID 0x04CB // Ver.: always -#define ZCL_TIER12_BLOCK13_PRICE_ATTRIBUTE_ID 0x04CC // Ver.: always -#define ZCL_TIER12_BLOCK14_PRICE_ATTRIBUTE_ID 0x04CD // Ver.: always -#define ZCL_TIER12_BLOCK15_PRICE_ATTRIBUTE_ID 0x04CE // Ver.: always -#define ZCL_TIER12_BLOCK16_PRICE_ATTRIBUTE_ID 0x04CF // Ver.: always -#define ZCL_TIER13_BLOCK1_PRICE_ATTRIBUTE_ID 0x04D0 // Ver.: always -#define ZCL_TIER13_BLOCK2_PRICE_ATTRIBUTE_ID 0x04D1 // Ver.: always -#define ZCL_TIER13_BLOCK3_PRICE_ATTRIBUTE_ID 0x04D2 // Ver.: always -#define ZCL_TIER13_BLOCK4_PRICE_ATTRIBUTE_ID 0x04D3 // Ver.: always -#define ZCL_TIER13_BLOCK5_PRICE_ATTRIBUTE_ID 0x04D4 // Ver.: always -#define ZCL_TIER13_BLOCK6_PRICE_ATTRIBUTE_ID 0x04D5 // Ver.: always -#define ZCL_TIER13_BLOCK7_PRICE_ATTRIBUTE_ID 0x04D6 // Ver.: always -#define ZCL_TIER13_BLOCK8_PRICE_ATTRIBUTE_ID 0x04D7 // Ver.: always -#define ZCL_TIER13_BLOCK9_PRICE_ATTRIBUTE_ID 0x04D8 // Ver.: always -#define ZCL_TIER13_BLOCK10_PRICE_ATTRIBUTE_ID 0x04D9 // Ver.: always -#define ZCL_TIER13_BLOCK11_PRICE_ATTRIBUTE_ID 0x04DA // Ver.: always -#define ZCL_TIER13_BLOCK12_PRICE_ATTRIBUTE_ID 0x04DB // Ver.: always -#define ZCL_TIER13_BLOCK13_PRICE_ATTRIBUTE_ID 0x04DC // Ver.: always -#define ZCL_TIER13_BLOCK14_PRICE_ATTRIBUTE_ID 0x04DD // Ver.: always -#define ZCL_TIER13_BLOCK15_PRICE_ATTRIBUTE_ID 0x04DE // Ver.: always -#define ZCL_TIER13_BLOCK16_PRICE_ATTRIBUTE_ID 0x04DF // Ver.: always -#define ZCL_TIER14_BLOCK1_PRICE_ATTRIBUTE_ID 0x04E0 // Ver.: always -#define ZCL_TIER14_BLOCK2_PRICE_ATTRIBUTE_ID 0x04E1 // Ver.: always -#define ZCL_TIER14_BLOCK3_PRICE_ATTRIBUTE_ID 0x04E2 // Ver.: always -#define ZCL_TIER14_BLOCK4_PRICE_ATTRIBUTE_ID 0x04E3 // Ver.: always -#define ZCL_TIER14_BLOCK5_PRICE_ATTRIBUTE_ID 0x04E4 // Ver.: always -#define ZCL_TIER14_BLOCK6_PRICE_ATTRIBUTE_ID 0x04E5 // Ver.: always -#define ZCL_TIER14_BLOCK7_PRICE_ATTRIBUTE_ID 0x04E6 // Ver.: always -#define ZCL_TIER14_BLOCK8_PRICE_ATTRIBUTE_ID 0x04E7 // Ver.: always -#define ZCL_TIER14_BLOCK9_PRICE_ATTRIBUTE_ID 0x04E8 // Ver.: always -#define ZCL_TIER14_BLOCK10_PRICE_ATTRIBUTE_ID 0x04E9 // Ver.: always -#define ZCL_TIER14_BLOCK11_PRICE_ATTRIBUTE_ID 0x04EA // Ver.: always -#define ZCL_TIER14_BLOCK12_PRICE_ATTRIBUTE_ID 0x04EB // Ver.: always -#define ZCL_TIER14_BLOCK13_PRICE_ATTRIBUTE_ID 0x04EC // Ver.: always -#define ZCL_TIER14_BLOCK14_PRICE_ATTRIBUTE_ID 0x04ED // Ver.: always -#define ZCL_TIER14_BLOCK15_PRICE_ATTRIBUTE_ID 0x04EE // Ver.: always -#define ZCL_TIER14_BLOCK16_PRICE_ATTRIBUTE_ID 0x04EF // Ver.: always -#define ZCL_TIER15_BLOCK1_PRICE_ATTRIBUTE_ID 0x04F0 // Ver.: always -#define ZCL_TIER15_BLOCK2_PRICE_ATTRIBUTE_ID 0x04F1 // Ver.: always -#define ZCL_TIER15_BLOCK3_PRICE_ATTRIBUTE_ID 0x04F2 // Ver.: always -#define ZCL_TIER15_BLOCK4_PRICE_ATTRIBUTE_ID 0x04F3 // Ver.: always -#define ZCL_TIER15_BLOCK5_PRICE_ATTRIBUTE_ID 0x04F4 // Ver.: always -#define ZCL_TIER15_BLOCK6_PRICE_ATTRIBUTE_ID 0x04F5 // Ver.: always -#define ZCL_TIER15_BLOCK7_PRICE_ATTRIBUTE_ID 0x04F6 // Ver.: always -#define ZCL_TIER15_BLOCK8_PRICE_ATTRIBUTE_ID 0x04F7 // Ver.: always -#define ZCL_TIER15_BLOCK9_PRICE_ATTRIBUTE_ID 0x04F8 // Ver.: always -#define ZCL_TIER15_BLOCK10_PRICE_ATTRIBUTE_ID 0x04F9 // Ver.: always -#define ZCL_TIER15_BLOCK11_PRICE_ATTRIBUTE_ID 0x04FA // Ver.: always -#define ZCL_TIER15_BLOCK12_PRICE_ATTRIBUTE_ID 0x04FB // Ver.: always -#define ZCL_TIER15_BLOCK13_PRICE_ATTRIBUTE_ID 0x04FC // Ver.: always -#define ZCL_TIER15_BLOCK14_PRICE_ATTRIBUTE_ID 0x04FD // Ver.: always -#define ZCL_TIER15_BLOCK15_PRICE_ATTRIBUTE_ID 0x04FE // Ver.: always -#define ZCL_TIER15_BLOCK16_PRICE_ATTRIBUTE_ID 0x04FF // Ver.: always -#define ZCL_PRICE_TIER16_ATTRIBUTE_ID 0x050F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PRICE_TIER17_ATTRIBUTE_ID 0x0510 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PRICE_TIER18_ATTRIBUTE_ID 0x0511 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PRICE_TIER19_ATTRIBUTE_ID 0x0512 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PRICE_TIER20_ATTRIBUTE_ID 0x0513 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PRICE_TIER21_ATTRIBUTE_ID 0x0514 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PRICE_TIER22_ATTRIBUTE_ID 0x0515 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PRICE_TIER23_ATTRIBUTE_ID 0x0516 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PRICE_TIER24_ATTRIBUTE_ID 0x0517 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PRICE_TIER25_ATTRIBUTE_ID 0x0518 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PRICE_TIER26_ATTRIBUTE_ID 0x0519 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PRICE_TIER27_ATTRIBUTE_ID 0x051A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PRICE_TIER28_ATTRIBUTE_ID 0x051B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PRICE_TIER29_ATTRIBUTE_ID 0x051C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PRICE_TIER30_ATTRIBUTE_ID 0x051D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PRICE_TIER31_ATTRIBUTE_ID 0x051E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PRICE_TIER32_ATTRIBUTE_ID 0x051F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PRICE_TIER33_ATTRIBUTE_ID 0x0520 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PRICE_TIER34_ATTRIBUTE_ID 0x0521 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PRICE_TIER35_ATTRIBUTE_ID 0x0522 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PRICE_TIER36_ATTRIBUTE_ID 0x0523 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PRICE_TIER37_ATTRIBUTE_ID 0x0524 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PRICE_TIER38_ATTRIBUTE_ID 0x0525 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PRICE_TIER39_ATTRIBUTE_ID 0x0526 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PRICE_TIER40_ATTRIBUTE_ID 0x0527 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PRICE_TIER41_ATTRIBUTE_ID 0x0528 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PRICE_TIER42_ATTRIBUTE_ID 0x0529 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PRICE_TIER43_ATTRIBUTE_ID 0x052A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PRICE_TIER44_ATTRIBUTE_ID 0x052B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PRICE_TIER45_ATTRIBUTE_ID 0x052C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PRICE_TIER46_ATTRIBUTE_ID 0x052D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PRICE_TIER47_ATTRIBUTE_ID 0x052E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PRICE_TIER48_ATTRIBUTE_ID 0x052F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CPP1_PRICE_ATTRIBUTE_ID 0x05FE // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CPP2_PRICE_ATTRIBUTE_ID 0x05FF // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TARIFF_LABEL_ATTRIBUTE_ID 0x0610 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_NUMBER_OF_PRICE_TIERS_IN_USE_ATTRIBUTE_ID 0x0611 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_NUMBER_OF_BLOCK_THRESHOLDS_IN_USE_ATTRIBUTE_ID 0x0612 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER_BLOCK_MODE_ATTRIBUTE_ID 0x0613 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TARIFF_UNIT_OF_MEASURE_ATTRIBUTE_ID 0x0615 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TARIFF_CURRENCY_ATTRIBUTE_ID 0x0616 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TARIFF_PRICE_TRAILING_DIGIT_ATTRIBUTE_ID 0x0617 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TARIFF_RESOLUTION_PERIOD_ATTRIBUTE_ID 0x0619 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TARIFF_CO2_ATTRIBUTE_ID 0x0620 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TARIFF_CO2_UNIT_ATTRIBUTE_ID 0x0621 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TARIFF_CO2_TRAILING_DIGIT_ATTRIBUTE_ID 0x0622 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_BILLING_PERIOD_START_ATTRIBUTE_ID 0x0700 // Ver.: since se-1.1b-07-5356-18 -#define ZCL_CURRENT_BILLING_PERIOD_DURATION_ATTRIBUTE_ID 0x0701 // Ver.: since se-1.1b-07-5356-18 -#define ZCL_LAST_BILLING_PERIOD_START_ATTRIBUTE_ID 0x0702 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_LAST_BILLING_PERIOD_DURATION_ATTRIBUTE_ID 0x0703 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_LAST_BILLING_PERIOD_CONSOLIDATED_BILL_ATTRIBUTE_ID 0x0704 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CREDIT_PAYMENT_DUE_DATE_ATTRIBUTE_ID 0x0800 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CREDIT_PAYMENT_STATUS_ATTRIBUTE_ID 0x0801 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CREDIT_PAYMENT_OVER_DUE_AMOUNT_ATTRIBUTE_ID 0x0802 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PAYMENT_DISCOUNT_ATTRIBUTE_ID 0x080A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PAYMENT_DISCOUNT_PERIOD_ATTRIBUTE_ID 0x080B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CREDIT_PAYMENT_1_ATTRIBUTE_ID 0x0810 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CREDIT_PAYMENT_DATE_1_ATTRIBUTE_ID 0x0811 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CREDIT_PAYMENT_REF_1_ATTRIBUTE_ID 0x0812 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CREDIT_PAYMENT_2_ATTRIBUTE_ID 0x0820 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CREDIT_PAYMENT_DATE_2_ATTRIBUTE_ID 0x0821 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CREDIT_PAYMENT_REF_2_ATTRIBUTE_ID 0x0822 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CREDIT_PAYMENT_3_ATTRIBUTE_ID 0x0830 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CREDIT_PAYMENT_DATE_3_ATTRIBUTE_ID 0x0831 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CREDIT_PAYMENT_REF_3_ATTRIBUTE_ID 0x0832 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CREDIT_PAYMENT_4_ATTRIBUTE_ID 0x0840 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CREDIT_PAYMENT_DATE_4_ATTRIBUTE_ID 0x0841 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CREDIT_PAYMENT_REF_4_ATTRIBUTE_ID 0x0842 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CREDIT_PAYMENT_5_ATTRIBUTE_ID 0x0850 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CREDIT_PAYMENT_DATE_5_ATTRIBUTE_ID 0x0851 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CREDIT_PAYMENT_REF_5_ATTRIBUTE_ID 0x0852 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER1_PRICE_LABEL_ATTRIBUTE_ID 0x8000 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER2_PRICE_LABEL_ATTRIBUTE_ID 0x8001 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER3_PRICE_LABEL_ATTRIBUTE_ID 0x8002 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER4_PRICE_LABEL_ATTRIBUTE_ID 0x8003 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER5_PRICE_LABEL_ATTRIBUTE_ID 0x8004 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER6_PRICE_LABEL_ATTRIBUTE_ID 0x8005 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER7_PRICE_LABEL_ATTRIBUTE_ID 0x8006 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER8_PRICE_LABEL_ATTRIBUTE_ID 0x8007 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER9_PRICE_LABEL_ATTRIBUTE_ID 0x8008 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER10_PRICE_LABEL_ATTRIBUTE_ID 0x8009 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER11_PRICE_LABEL_ATTRIBUTE_ID 0x800A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER12_PRICE_LABEL_ATTRIBUTE_ID 0x800B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER13_PRICE_LABEL_ATTRIBUTE_ID 0x800C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER14_PRICE_LABEL_ATTRIBUTE_ID 0x800D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER15_PRICE_LABEL_ATTRIBUTE_ID 0x800E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER16_PRICE_LABEL_ATTRIBUTE_ID 0x800F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER17_PRICE_LABEL_ATTRIBUTE_ID 0x8010 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER18_PRICE_LABEL_ATTRIBUTE_ID 0x8011 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER19_PRICE_LABEL_ATTRIBUTE_ID 0x8012 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER20_PRICE_LABEL_ATTRIBUTE_ID 0x8013 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER21_PRICE_LABEL_ATTRIBUTE_ID 0x8014 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER22_PRICE_LABEL_ATTRIBUTE_ID 0x8015 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER23_PRICE_LABEL_ATTRIBUTE_ID 0x8016 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER24_PRICE_LABEL_ATTRIBUTE_ID 0x8017 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER25_PRICE_LABEL_ATTRIBUTE_ID 0x8018 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER26_PRICE_LABEL_ATTRIBUTE_ID 0x8019 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER27_PRICE_LABEL_ATTRIBUTE_ID 0x801A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER28_PRICE_LABEL_ATTRIBUTE_ID 0x801B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER29_PRICE_LABEL_ATTRIBUTE_ID 0x801C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER30_PRICE_LABEL_ATTRIBUTE_ID 0x801D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER31_PRICE_LABEL_ATTRIBUTE_ID 0x801E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER32_PRICE_LABEL_ATTRIBUTE_ID 0x801F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER33_PRICE_LABEL_ATTRIBUTE_ID 0x8020 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER34_PRICE_LABEL_ATTRIBUTE_ID 0x8021 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER35_PRICE_LABEL_ATTRIBUTE_ID 0x8022 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER36_PRICE_LABEL_ATTRIBUTE_ID 0x8023 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER37_PRICE_LABEL_ATTRIBUTE_ID 0x8024 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER38_PRICE_LABEL_ATTRIBUTE_ID 0x8025 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER39_PRICE_LABEL_ATTRIBUTE_ID 0x8026 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER40_PRICE_LABEL_ATTRIBUTE_ID 0x8027 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER41_PRICE_LABEL_ATTRIBUTE_ID 0x8028 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER42_PRICE_LABEL_ATTRIBUTE_ID 0x8029 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER43_PRICE_LABEL_ATTRIBUTE_ID 0x802A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER44_PRICE_LABEL_ATTRIBUTE_ID 0x802B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER45_PRICE_LABEL_ATTRIBUTE_ID 0x802C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER46_PRICE_LABEL_ATTRIBUTE_ID 0x802D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER47_PRICE_LABEL_ATTRIBUTE_ID 0x802E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER48_PRICE_LABEL_ATTRIBUTE_ID 0x802F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_BLOCK1_THRESHOLD_ATTRIBUTE_ID 0x8100 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_BLOCK2_THRESHOLD_ATTRIBUTE_ID 0x8101 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_BLOCK3_THRESHOLD_ATTRIBUTE_ID 0x8102 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_BLOCK4_THRESHOLD_ATTRIBUTE_ID 0x8103 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_BLOCK5_THRESHOLD_ATTRIBUTE_ID 0x8104 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_BLOCK6_THRESHOLD_ATTRIBUTE_ID 0x8105 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_BLOCK7_THRESHOLD_ATTRIBUTE_ID 0x8106 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_BLOCK8_THRESHOLD_ATTRIBUTE_ID 0x8107 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_BLOCK9_THRESHOLD_ATTRIBUTE_ID 0x8108 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_BLOCK10_THRESHOLD_ATTRIBUTE_ID 0x8109 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_BLOCK11_THRESHOLD_ATTRIBUTE_ID 0x810A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_BLOCK12_THRESHOLD_ATTRIBUTE_ID 0x810B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_BLOCK13_THRESHOLD_ATTRIBUTE_ID 0x810C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_BLOCK14_THRESHOLD_ATTRIBUTE_ID 0x810D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_BLOCK15_THRESHOLD_ATTRIBUTE_ID 0x810E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_START_OF_BLOCK_PERIOD_ATTRIBUTE_ID 0x8200 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_BLOCK_PERIOD_DURATION_ATTRIBUTE_ID 0x8201 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_THRESHOLD_MULTIPLIER_ATTRIBUTE_ID 0x8202 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_THRESHOLD_DIVISOR_ATTRIBUTE_ID 0x8203 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_NO_TIER_BLOCK1_PRICE_ATTRIBUTE_ID 0x8400 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_NO_TIER_BLOCK2_PRICE_ATTRIBUTE_ID 0x8401 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_NO_TIER_BLOCK3_PRICE_ATTRIBUTE_ID 0x8402 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_NO_TIER_BLOCK4_PRICE_ATTRIBUTE_ID 0x8403 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_NO_TIER_BLOCK5_PRICE_ATTRIBUTE_ID 0x8404 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_NO_TIER_BLOCK6_PRICE_ATTRIBUTE_ID 0x8405 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_NO_TIER_BLOCK7_PRICE_ATTRIBUTE_ID 0x8406 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_NO_TIER_BLOCK8_PRICE_ATTRIBUTE_ID 0x8407 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_NO_TIER_BLOCK9_PRICE_ATTRIBUTE_ID 0x8408 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_NO_TIER_BLOCK10_PRICE_ATTRIBUTE_ID 0x8409 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_NO_TIER_BLOCK11_PRICE_ATTRIBUTE_ID 0x840A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_NO_TIER_BLOCK12_PRICE_ATTRIBUTE_ID 0x840B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_NO_TIER_BLOCK13_PRICE_ATTRIBUTE_ID 0x840C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_NO_TIER_BLOCK14_PRICE_ATTRIBUTE_ID 0x840D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_NO_TIER_BLOCK15_PRICE_ATTRIBUTE_ID 0x840E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_NO_TIER_BLOCK16_PRICE_ATTRIBUTE_ID 0x840F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER1_BLOCK1_PRICE_ATTRIBUTE_ID 0x8410 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER1_BLOCK2_PRICE_ATTRIBUTE_ID 0x8411 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER1_BLOCK3_PRICE_ATTRIBUTE_ID 0x8412 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER1_BLOCK4_PRICE_ATTRIBUTE_ID 0x8413 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER1_BLOCK5_PRICE_ATTRIBUTE_ID 0x8414 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER1_BLOCK6_PRICE_ATTRIBUTE_ID 0x8415 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER1_BLOCK7_PRICE_ATTRIBUTE_ID 0x8416 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER1_BLOCK8_PRICE_ATTRIBUTE_ID 0x8417 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER1_BLOCK9_PRICE_ATTRIBUTE_ID 0x8418 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER1_BLOCK10_PRICE_ATTRIBUTE_ID 0x8419 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER1_BLOCK11_PRICE_ATTRIBUTE_ID 0x841A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER1_BLOCK12_PRICE_ATTRIBUTE_ID 0x841B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER1_BLOCK13_PRICE_ATTRIBUTE_ID 0x841C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER1_BLOCK14_PRICE_ATTRIBUTE_ID 0x841D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER1_BLOCK15_PRICE_ATTRIBUTE_ID 0x841E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER1_BLOCK16_PRICE_ATTRIBUTE_ID 0x841F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER2_BLOCK1_PRICE_ATTRIBUTE_ID 0x8420 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER2_BLOCK2_PRICE_ATTRIBUTE_ID 0x8421 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER2_BLOCK3_PRICE_ATTRIBUTE_ID 0x8422 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER2_BLOCK4_PRICE_ATTRIBUTE_ID 0x8423 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER2_BLOCK5_PRICE_ATTRIBUTE_ID 0x8424 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER2_BLOCK6_PRICE_ATTRIBUTE_ID 0x8425 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER2_BLOCK7_PRICE_ATTRIBUTE_ID 0x8426 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER2_BLOCK8_PRICE_ATTRIBUTE_ID 0x8427 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER2_BLOCK9_PRICE_ATTRIBUTE_ID 0x8428 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER2_BLOCK10_PRICE_ATTRIBUTE_ID 0x8429 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER2_BLOCK11_PRICE_ATTRIBUTE_ID 0x842A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER2_BLOCK12_PRICE_ATTRIBUTE_ID 0x842B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER2_BLOCK13_PRICE_ATTRIBUTE_ID 0x842C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER2_BLOCK14_PRICE_ATTRIBUTE_ID 0x842D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER2_BLOCK15_PRICE_ATTRIBUTE_ID 0x842E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER2_BLOCK16_PRICE_ATTRIBUTE_ID 0x842F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER3_BLOCK1_PRICE_ATTRIBUTE_ID 0x8430 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER3_BLOCK2_PRICE_ATTRIBUTE_ID 0x8431 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER3_BLOCK3_PRICE_ATTRIBUTE_ID 0x8432 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER3_BLOCK4_PRICE_ATTRIBUTE_ID 0x8433 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER3_BLOCK5_PRICE_ATTRIBUTE_ID 0x8434 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER3_BLOCK6_PRICE_ATTRIBUTE_ID 0x8435 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER3_BLOCK7_PRICE_ATTRIBUTE_ID 0x8436 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER3_BLOCK8_PRICE_ATTRIBUTE_ID 0x8437 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER3_BLOCK9_PRICE_ATTRIBUTE_ID 0x8438 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER3_BLOCK10_PRICE_ATTRIBUTE_ID 0x8439 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER3_BLOCK11_PRICE_ATTRIBUTE_ID 0x843A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER3_BLOCK12_PRICE_ATTRIBUTE_ID 0x843B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER3_BLOCK13_PRICE_ATTRIBUTE_ID 0x843C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER3_BLOCK14_PRICE_ATTRIBUTE_ID 0x843D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER3_BLOCK15_PRICE_ATTRIBUTE_ID 0x843E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER3_BLOCK16_PRICE_ATTRIBUTE_ID 0x843F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER4_BLOCK1_PRICE_ATTRIBUTE_ID 0x8440 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER4_BLOCK2_PRICE_ATTRIBUTE_ID 0x8441 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER4_BLOCK3_PRICE_ATTRIBUTE_ID 0x8442 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER4_BLOCK4_PRICE_ATTRIBUTE_ID 0x8443 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER4_BLOCK5_PRICE_ATTRIBUTE_ID 0x8444 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER4_BLOCK6_PRICE_ATTRIBUTE_ID 0x8445 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER4_BLOCK7_PRICE_ATTRIBUTE_ID 0x8446 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER4_BLOCK8_PRICE_ATTRIBUTE_ID 0x8447 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER4_BLOCK9_PRICE_ATTRIBUTE_ID 0x8448 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER4_BLOCK10_PRICE_ATTRIBUTE_ID 0x8449 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER4_BLOCK11_PRICE_ATTRIBUTE_ID 0x844A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER4_BLOCK12_PRICE_ATTRIBUTE_ID 0x844B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER4_BLOCK13_PRICE_ATTRIBUTE_ID 0x844C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER4_BLOCK14_PRICE_ATTRIBUTE_ID 0x844D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER4_BLOCK15_PRICE_ATTRIBUTE_ID 0x844E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER4_BLOCK16_PRICE_ATTRIBUTE_ID 0x844F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER5_BLOCK1_PRICE_ATTRIBUTE_ID 0x8450 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER5_BLOCK2_PRICE_ATTRIBUTE_ID 0x8451 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER5_BLOCK3_PRICE_ATTRIBUTE_ID 0x8452 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER5_BLOCK4_PRICE_ATTRIBUTE_ID 0x8453 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER5_BLOCK5_PRICE_ATTRIBUTE_ID 0x8454 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER5_BLOCK6_PRICE_ATTRIBUTE_ID 0x8455 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER5_BLOCK7_PRICE_ATTRIBUTE_ID 0x8456 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER5_BLOCK8_PRICE_ATTRIBUTE_ID 0x8457 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER5_BLOCK9_PRICE_ATTRIBUTE_ID 0x8458 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER5_BLOCK10_PRICE_ATTRIBUTE_ID 0x8459 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER5_BLOCK11_PRICE_ATTRIBUTE_ID 0x845A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER5_BLOCK12_PRICE_ATTRIBUTE_ID 0x845B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER5_BLOCK13_PRICE_ATTRIBUTE_ID 0x845C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER5_BLOCK14_PRICE_ATTRIBUTE_ID 0x845D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER5_BLOCK15_PRICE_ATTRIBUTE_ID 0x845E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER5_BLOCK16_PRICE_ATTRIBUTE_ID 0x845F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER6_BLOCK1_PRICE_ATTRIBUTE_ID 0x8460 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER6_BLOCK2_PRICE_ATTRIBUTE_ID 0x8461 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER6_BLOCK3_PRICE_ATTRIBUTE_ID 0x8462 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER6_BLOCK4_PRICE_ATTRIBUTE_ID 0x8463 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER6_BLOCK5_PRICE_ATTRIBUTE_ID 0x8464 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER6_BLOCK6_PRICE_ATTRIBUTE_ID 0x8465 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER6_BLOCK7_PRICE_ATTRIBUTE_ID 0x8466 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER6_BLOCK8_PRICE_ATTRIBUTE_ID 0x8467 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER6_BLOCK9_PRICE_ATTRIBUTE_ID 0x8468 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER6_BLOCK10_PRICE_ATTRIBUTE_ID 0x8469 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER6_BLOCK11_PRICE_ATTRIBUTE_ID 0x846A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER6_BLOCK12_PRICE_ATTRIBUTE_ID 0x846B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER6_BLOCK13_PRICE_ATTRIBUTE_ID 0x846C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER6_BLOCK14_PRICE_ATTRIBUTE_ID 0x846D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER6_BLOCK15_PRICE_ATTRIBUTE_ID 0x846E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER6_BLOCK16_PRICE_ATTRIBUTE_ID 0x846F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER7_BLOCK1_PRICE_ATTRIBUTE_ID 0x8470 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER7_BLOCK2_PRICE_ATTRIBUTE_ID 0x8471 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER7_BLOCK3_PRICE_ATTRIBUTE_ID 0x8472 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER7_BLOCK4_PRICE_ATTRIBUTE_ID 0x8473 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER7_BLOCK5_PRICE_ATTRIBUTE_ID 0x8474 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER7_BLOCK6_PRICE_ATTRIBUTE_ID 0x8475 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER7_BLOCK7_PRICE_ATTRIBUTE_ID 0x8476 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER7_BLOCK8_PRICE_ATTRIBUTE_ID 0x8477 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER7_BLOCK9_PRICE_ATTRIBUTE_ID 0x8478 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER7_BLOCK10_PRICE_ATTRIBUTE_ID 0x8479 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER7_BLOCK11_PRICE_ATTRIBUTE_ID 0x847A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER7_BLOCK12_PRICE_ATTRIBUTE_ID 0x847B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER7_BLOCK13_PRICE_ATTRIBUTE_ID 0x847C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER7_BLOCK14_PRICE_ATTRIBUTE_ID 0x847D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER7_BLOCK15_PRICE_ATTRIBUTE_ID 0x847E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER7_BLOCK16_PRICE_ATTRIBUTE_ID 0x847F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER8_BLOCK1_PRICE_ATTRIBUTE_ID 0x8480 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER8_BLOCK2_PRICE_ATTRIBUTE_ID 0x8481 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER8_BLOCK3_PRICE_ATTRIBUTE_ID 0x8482 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER8_BLOCK4_PRICE_ATTRIBUTE_ID 0x8483 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER8_BLOCK5_PRICE_ATTRIBUTE_ID 0x8484 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER8_BLOCK6_PRICE_ATTRIBUTE_ID 0x8485 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER8_BLOCK7_PRICE_ATTRIBUTE_ID 0x8486 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER8_BLOCK8_PRICE_ATTRIBUTE_ID 0x8487 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER8_BLOCK9_PRICE_ATTRIBUTE_ID 0x8488 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER8_BLOCK10_PRICE_ATTRIBUTE_ID 0x8489 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER8_BLOCK11_PRICE_ATTRIBUTE_ID 0x848A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER8_BLOCK12_PRICE_ATTRIBUTE_ID 0x848B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER8_BLOCK13_PRICE_ATTRIBUTE_ID 0x848C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER8_BLOCK14_PRICE_ATTRIBUTE_ID 0x848D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER8_BLOCK15_PRICE_ATTRIBUTE_ID 0x848E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER8_BLOCK16_PRICE_ATTRIBUTE_ID 0x848F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER9_BLOCK1_PRICE_ATTRIBUTE_ID 0x8490 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER9_BLOCK2_PRICE_ATTRIBUTE_ID 0x8491 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER9_BLOCK3_PRICE_ATTRIBUTE_ID 0x8492 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER9_BLOCK4_PRICE_ATTRIBUTE_ID 0x8493 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER9_BLOCK5_PRICE_ATTRIBUTE_ID 0x8494 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER9_BLOCK6_PRICE_ATTRIBUTE_ID 0x8495 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER9_BLOCK7_PRICE_ATTRIBUTE_ID 0x8496 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER9_BLOCK8_PRICE_ATTRIBUTE_ID 0x8497 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER9_BLOCK9_PRICE_ATTRIBUTE_ID 0x8498 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER9_BLOCK10_PRICE_ATTRIBUTE_ID 0x8499 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER9_BLOCK11_PRICE_ATTRIBUTE_ID 0x849A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER9_BLOCK12_PRICE_ATTRIBUTE_ID 0x849B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER9_BLOCK13_PRICE_ATTRIBUTE_ID 0x849C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER9_BLOCK14_PRICE_ATTRIBUTE_ID 0x849D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER9_BLOCK15_PRICE_ATTRIBUTE_ID 0x849E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER9_BLOCK16_PRICE_ATTRIBUTE_ID 0x849F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER10_BLOCK1_PRICE_ATTRIBUTE_ID 0x84A0 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER10_BLOCK2_PRICE_ATTRIBUTE_ID 0x84A1 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER10_BLOCK3_PRICE_ATTRIBUTE_ID 0x84A2 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER10_BLOCK4_PRICE_ATTRIBUTE_ID 0x84A3 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER10_BLOCK5_PRICE_ATTRIBUTE_ID 0x84A4 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER10_BLOCK6_PRICE_ATTRIBUTE_ID 0x84A5 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER10_BLOCK7_PRICE_ATTRIBUTE_ID 0x84A6 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER10_BLOCK8_PRICE_ATTRIBUTE_ID 0x84A7 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER10_BLOCK9_PRICE_ATTRIBUTE_ID 0x84A8 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER10_BLOCK10_PRICE_ATTRIBUTE_ID 0x84A9 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER10_BLOCK11_PRICE_ATTRIBUTE_ID 0x84AA // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER10_BLOCK12_PRICE_ATTRIBUTE_ID 0x84AB // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER10_BLOCK13_PRICE_ATTRIBUTE_ID 0x84AC // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER10_BLOCK14_PRICE_ATTRIBUTE_ID 0x84AD // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER10_BLOCK15_PRICE_ATTRIBUTE_ID 0x84AE // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER10_BLOCK16_PRICE_ATTRIBUTE_ID 0x84AF // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER11_BLOCK1_PRICE_ATTRIBUTE_ID 0x84B0 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER11_BLOCK2_PRICE_ATTRIBUTE_ID 0x84B1 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER11_BLOCK3_PRICE_ATTRIBUTE_ID 0x84B2 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER11_BLOCK4_PRICE_ATTRIBUTE_ID 0x84B3 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER11_BLOCK5_PRICE_ATTRIBUTE_ID 0x84B4 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER11_BLOCK6_PRICE_ATTRIBUTE_ID 0x84B5 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER11_BLOCK7_PRICE_ATTRIBUTE_ID 0x84B6 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER11_BLOCK8_PRICE_ATTRIBUTE_ID 0x84B7 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER11_BLOCK9_PRICE_ATTRIBUTE_ID 0x84B8 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER11_BLOCK10_PRICE_ATTRIBUTE_ID 0x84B9 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER11_BLOCK11_PRICE_ATTRIBUTE_ID 0x84BA // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER11_BLOCK12_PRICE_ATTRIBUTE_ID 0x84BB // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER11_BLOCK13_PRICE_ATTRIBUTE_ID 0x84BC // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER11_BLOCK14_PRICE_ATTRIBUTE_ID 0x84BD // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER11_BLOCK15_PRICE_ATTRIBUTE_ID 0x84BE // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER11_BLOCK16_PRICE_ATTRIBUTE_ID 0x84BF // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER12_BLOCK1_PRICE_ATTRIBUTE_ID 0x84C0 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER12_BLOCK2_PRICE_ATTRIBUTE_ID 0x84C1 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER12_BLOCK3_PRICE_ATTRIBUTE_ID 0x84C2 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER12_BLOCK4_PRICE_ATTRIBUTE_ID 0x84C3 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER12_BLOCK5_PRICE_ATTRIBUTE_ID 0x84C4 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER12_BLOCK6_PRICE_ATTRIBUTE_ID 0x84C5 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER12_BLOCK7_PRICE_ATTRIBUTE_ID 0x84C6 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER12_BLOCK8_PRICE_ATTRIBUTE_ID 0x84C7 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER12_BLOCK9_PRICE_ATTRIBUTE_ID 0x84C8 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER12_BLOCK10_PRICE_ATTRIBUTE_ID 0x84C9 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER12_BLOCK11_PRICE_ATTRIBUTE_ID 0x84CA // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER12_BLOCK12_PRICE_ATTRIBUTE_ID 0x84CB // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER12_BLOCK13_PRICE_ATTRIBUTE_ID 0x84CC // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER12_BLOCK14_PRICE_ATTRIBUTE_ID 0x84CD // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER12_BLOCK15_PRICE_ATTRIBUTE_ID 0x84CE // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER12_BLOCK16_PRICE_ATTRIBUTE_ID 0x84CF // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER13_BLOCK1_PRICE_ATTRIBUTE_ID 0x84D0 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER13_BLOCK2_PRICE_ATTRIBUTE_ID 0x84D1 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER13_BLOCK3_PRICE_ATTRIBUTE_ID 0x84D2 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER13_BLOCK4_PRICE_ATTRIBUTE_ID 0x84D3 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER13_BLOCK5_PRICE_ATTRIBUTE_ID 0x84D4 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER13_BLOCK6_PRICE_ATTRIBUTE_ID 0x84D5 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER13_BLOCK7_PRICE_ATTRIBUTE_ID 0x84D6 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER13_BLOCK8_PRICE_ATTRIBUTE_ID 0x84D7 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER13_BLOCK9_PRICE_ATTRIBUTE_ID 0x84D8 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER13_BLOCK10_PRICE_ATTRIBUTE_ID 0x84D9 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER13_BLOCK11_PRICE_ATTRIBUTE_ID 0x84DA // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER13_BLOCK12_PRICE_ATTRIBUTE_ID 0x84DB // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER13_BLOCK13_PRICE_ATTRIBUTE_ID 0x84DC // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER13_BLOCK14_PRICE_ATTRIBUTE_ID 0x84DD // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER13_BLOCK15_PRICE_ATTRIBUTE_ID 0x84DE // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER13_BLOCK16_PRICE_ATTRIBUTE_ID 0x84DF // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER14_BLOCK1_PRICE_ATTRIBUTE_ID 0x84E0 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER14_BLOCK2_PRICE_ATTRIBUTE_ID 0x84E1 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER14_BLOCK3_PRICE_ATTRIBUTE_ID 0x84E2 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER14_BLOCK4_PRICE_ATTRIBUTE_ID 0x84E3 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER14_BLOCK5_PRICE_ATTRIBUTE_ID 0x84E4 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER14_BLOCK6_PRICE_ATTRIBUTE_ID 0x84E5 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER14_BLOCK7_PRICE_ATTRIBUTE_ID 0x84E6 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER14_BLOCK8_PRICE_ATTRIBUTE_ID 0x84E7 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER14_BLOCK9_PRICE_ATTRIBUTE_ID 0x84E8 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER14_BLOCK10_PRICE_ATTRIBUTE_ID 0x84E9 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER14_BLOCK11_PRICE_ATTRIBUTE_ID 0x84EA // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER14_BLOCK12_PRICE_ATTRIBUTE_ID 0x84EB // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER14_BLOCK13_PRICE_ATTRIBUTE_ID 0x84EC // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER14_BLOCK14_PRICE_ATTRIBUTE_ID 0x84ED // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER14_BLOCK15_PRICE_ATTRIBUTE_ID 0x84EE // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER14_BLOCK16_PRICE_ATTRIBUTE_ID 0x84EF // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER15_BLOCK1_PRICE_ATTRIBUTE_ID 0x84F0 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER15_BLOCK2_PRICE_ATTRIBUTE_ID 0x84F1 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER15_BLOCK3_PRICE_ATTRIBUTE_ID 0x84F2 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER15_BLOCK4_PRICE_ATTRIBUTE_ID 0x84F3 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER15_BLOCK5_PRICE_ATTRIBUTE_ID 0x84F4 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER15_BLOCK6_PRICE_ATTRIBUTE_ID 0x84F5 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER15_BLOCK7_PRICE_ATTRIBUTE_ID 0x84F6 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER15_BLOCK8_PRICE_ATTRIBUTE_ID 0x84F7 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER15_BLOCK9_PRICE_ATTRIBUTE_ID 0x84F8 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER15_BLOCK10_PRICE_ATTRIBUTE_ID 0x84F9 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER15_BLOCK11_PRICE_ATTRIBUTE_ID 0x84FA // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER15_BLOCK12_PRICE_ATTRIBUTE_ID 0x84FB // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER15_BLOCK13_PRICE_ATTRIBUTE_ID 0x84FC // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER15_BLOCK14_PRICE_ATTRIBUTE_ID 0x84FD // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER15_BLOCK15_PRICE_ATTRIBUTE_ID 0x84FE // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER15_BLOCK16_PRICE_ATTRIBUTE_ID 0x84FF // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_PRICE_TIER16_ATTRIBUTE_ID 0x850F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_PRICE_TIER17_ATTRIBUTE_ID 0x8510 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_PRICE_TIER18_ATTRIBUTE_ID 0x8511 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_PRICE_TIER19_ATTRIBUTE_ID 0x8512 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_PRICE_TIER20_ATTRIBUTE_ID 0x8513 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_PRICE_TIER21_ATTRIBUTE_ID 0x8514 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_PRICE_TIER22_ATTRIBUTE_ID 0x8515 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_PRICE_TIER23_ATTRIBUTE_ID 0x8516 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_PRICE_TIER24_ATTRIBUTE_ID 0x8517 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_PRICE_TIER25_ATTRIBUTE_ID 0x8518 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_PRICE_TIER26_ATTRIBUTE_ID 0x8519 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_PRICE_TIER27_ATTRIBUTE_ID 0x851A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_PRICE_TIER28_ATTRIBUTE_ID 0x851B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_PRICE_TIER29_ATTRIBUTE_ID 0x851C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_PRICE_TIER30_ATTRIBUTE_ID 0x851D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_PRICE_TIER31_ATTRIBUTE_ID 0x851E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_PRICE_TIER32_ATTRIBUTE_ID 0x851F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_PRICE_TIER33_ATTRIBUTE_ID 0x8520 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_PRICE_TIER34_ATTRIBUTE_ID 0x8521 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_PRICE_TIER35_ATTRIBUTE_ID 0x8522 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_PRICE_TIER36_ATTRIBUTE_ID 0x8523 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_PRICE_TIER37_ATTRIBUTE_ID 0x8524 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_PRICE_TIER38_ATTRIBUTE_ID 0x8525 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_PRICE_TIER39_ATTRIBUTE_ID 0x8526 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_PRICE_TIER40_ATTRIBUTE_ID 0x8527 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_PRICE_TIER41_ATTRIBUTE_ID 0x8528 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_PRICE_TIER42_ATTRIBUTE_ID 0x8529 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_PRICE_TIER43_ATTRIBUTE_ID 0x852A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_PRICE_TIER44_ATTRIBUTE_ID 0x852B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_PRICE_TIER45_ATTRIBUTE_ID 0x852C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_PRICE_TIER46_ATTRIBUTE_ID 0x852D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_PRICE_TIER47_ATTRIBUTE_ID 0x852E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_PRICE_TIER48_ATTRIBUTE_ID 0x852F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TARIFF_LABEL_ATTRIBUTE_ID 0x8610 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_NUMBER_OF_PRICE_TIERS_IN_USE_ATTRIBUTE_ID 0x8611 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_NUMBER_OF_BLOCK_THRESHOLDS_IN_USE_ATTRIBUTE_ID 0x8612 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER_BLOCK_MODE_ATTRIBUTE_ID 0x8613 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TARIFF_RESOLUTION_PERIOD_ATTRIBUTE_ID 0x8615 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_CO2_ATTRIBUTE_ID 0x8625 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_CO2_UNIT_ATTRIBUTE_ID 0x8626 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_CO2_TRAILING_DIGIT_ATTRIBUTE_ID 0x8627 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_CURRENT_BILLING_PERIOD_START_ATTRIBUTE_ID 0x8700 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_CURRENT_BILLING_PERIOD_DURATION_ATTRIBUTE_ID 0x8701 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_LAST_BILLING_PERIOD_START_ATTRIBUTE_ID 0x8702 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_LAST_BILLING_PERIOD_DURATION_ATTRIBUTE_ID 0x8703 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_LAST_BILLING_PERIOD_CONSOLIDATED_BILL_ATTRIBUTE_ID 0x8704 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PRICE_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_PRICE_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Demand Response and Load Control -// Cluster specification level: se-1.2b-15-0131-02 - -// Client attributes -#define ZCL_UTILITY_ENROLLMENT_GROUP_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_START_RANDOMIZATION_MINUTES_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_DURATION_RANDOMIZATION_MINUTES_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_DEVICE_CLASS_VALUE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_DEMAND_RESPONSE_LOAD_CONTROL_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_DEMAND_RESPONSE_LOAD_CONTROL_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_DEMAND_RESPONSE_LOAD_CONTROL_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_DEMAND_RESPONSE_LOAD_CONTROL_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Simple Metering -// Cluster specification level: se-1.2b-15-0131-02 - -// Client attributes -#define ZCL_FUNCTIONAL_NOTIFICATION_FLAGS_ATTRIBUTE_ID 0x0000 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_NOTIFICATION_FLAGS_2_ATTRIBUTE_ID 0x0001 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_NOTIFICATION_FLAGS_3_ATTRIBUTE_ID 0x0002 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_NOTIFICATION_FLAGS_4_ATTRIBUTE_ID 0x0003 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_NOTIFICATION_FLAGS_5_ATTRIBUTE_ID 0x0004 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_NOTIFICATION_FLAGS_6_ATTRIBUTE_ID 0x0005 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_NOTIFICATION_FLAGS_7_ATTRIBUTE_ID 0x0006 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_NOTIFICATION_FLAGS_8_ATTRIBUTE_ID 0x0007 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_SIMPLE_METERING_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_SIMPLE_METERING_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_CURRENT_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_CURRENT_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_CURRENT_MAX_DEMAND_DELIVERED_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_CURRENT_MAX_DEMAND_RECEIVED_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_DFT_SUMMATION_ATTRIBUTE_ID 0x0004 // Ver.: always -#define ZCL_DAILY_FREEZE_TIME_ATTRIBUTE_ID 0x0005 // Ver.: always -#define ZCL_POWER_FACTOR_ATTRIBUTE_ID 0x0006 // Ver.: always -#define ZCL_READING_SNAP_SHOT_TIME_ATTRIBUTE_ID 0x0007 // Ver.: always -#define ZCL_CURRENT_MAX_DEMAND_DELIVERED_TIME_ATTRIBUTE_ID 0x0008 // Ver.: always -#define ZCL_CURRENT_MAX_DEMAND_RECEIVED_TIME_ATTRIBUTE_ID 0x0009 // Ver.: always -#define ZCL_DEFAULT_UPDATE_PERIOD_ATTRIBUTE_ID 0x000A // Ver.: since se-1.1-07-5356-16 -#define ZCL_FAST_POLL_UPDATE_PERIOD_ATTRIBUTE_ID 0x000B // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_BLOCK_PERIOD_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x000C // Ver.: since se-1.1-07-5356-16 -#define ZCL_DAILY_CONSUMPTION_TARGET_ATTRIBUTE_ID 0x000D // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_BLOCK_ATTRIBUTE_ID 0x000E // Ver.: since se-1.1-07-5356-16 -#define ZCL_PROFILE_INTERVAL_PERIOD_ATTRIBUTE_ID 0x000F // Ver.: since se-1.1-07-5356-16 -#define ZCL_INTERVAL_READ_REPORTING_PERIOD_ATTRIBUTE_ID 0x0010 // Ver.: since se-1.1-07-5356-16 -#define ZCL_PRESET_READING_TIME_ATTRIBUTE_ID 0x0011 // Ver.: since se-1.1-07-5356-16 -#define ZCL_VOLUME_PER_REPORT_ATTRIBUTE_ID 0x0012 // Ver.: since se-1.1-07-5356-16 -#define ZCL_FLOW_RESTRICTION_ATTRIBUTE_ID 0x0013 // Ver.: since se-1.1-07-5356-16 -#define ZCL_SUPPLY_STATUS_ATTRIBUTE_ID 0x0014 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_INLET_ENERGY_CARRIER_SUMMATION_ATTRIBUTE_ID 0x0015 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_OUTLET_ENERGY_CARRIER_SUMMATION_ATTRIBUTE_ID 0x0016 // Ver.: since se-1.1-07-5356-16 -#define ZCL_INLET_TEMPERATURE_ATTRIBUTE_ID 0x0017 // Ver.: since se-1.1-07-5356-16 -#define ZCL_OUTLET_TEMPERATURE_ATTRIBUTE_ID 0x0018 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CONTROL_TEMPERATURE_ATTRIBUTE_ID 0x0019 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_INLET_ENERGY_CARRIER_DEMAND_ATTRIBUTE_ID 0x001A // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_OUTLET_ENERGY_CARRIER_DEMAND_ATTRIBUTE_ID 0x001B // Ver.: since se-1.1-07-5356-16 -#define ZCL_PREVIOUS_BLOCK_PERIOD_CONSUMIPTION_DELIVERED_ATTRIBUTE_ID 0x001C // Ver.: since se-1.1b-07-5356-18 -#define ZCL_CURRENT_BLOCK_PERIOD_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x001D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_BLOCK_RECEIVED_ATTRIBUTE_ID 0x001E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_DFT_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x001F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_ACTIVE_REGISTER_TIER_DELIVERED_ATTRIBUTE_ID 0x0020 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_ACTIVE_REGISTER_TIER_RECEIVED_ATTRIBUTE_ID 0x0021 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_LAST_BLOCK_SWITCH_TIME_ATTRIBUTE_ID 0x0022 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER1_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0100 // Ver.: always -#define ZCL_CURRENT_TIER1_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0101 // Ver.: always -#define ZCL_CURRENT_TIER2_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0102 // Ver.: always -#define ZCL_CURRENT_TIER2_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0103 // Ver.: always -#define ZCL_CURRENT_TIER3_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0104 // Ver.: always -#define ZCL_CURRENT_TIER3_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0105 // Ver.: always -#define ZCL_CURRENT_TIER4_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0106 // Ver.: always -#define ZCL_CURRENT_TIER4_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0107 // Ver.: always -#define ZCL_CURRENT_TIER5_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0108 // Ver.: always -#define ZCL_CURRENT_TIER5_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0109 // Ver.: always -#define ZCL_CURRENT_TIER6_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x010A // Ver.: always -#define ZCL_CURRENT_TIER6_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x010B // Ver.: always -#define ZCL_CURRENT_TIER7_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x010C // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER7_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x010D // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER8_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x010E // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER8_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x010F // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER9_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0110 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER9_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0111 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER10_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0112 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER10_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0113 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER11_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0114 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER11_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0115 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER12_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0116 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER12_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0117 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER13_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0118 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER13_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0119 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER14_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x011A // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER14_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x011B // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER15_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x011C // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER15_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x011D // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER16_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x011E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER16_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x011F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER17_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0120 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER17_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0121 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER18_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0122 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER18_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0123 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER19_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0124 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER19_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0125 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER20_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0126 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER20_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0127 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER21_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0128 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER21_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0129 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER22_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x012A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER22_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x012B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER23_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x012C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER23_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x012D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER24_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x012E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER24_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x012F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER25_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0130 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER25_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0131 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER26_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0132 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER26_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0133 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER27_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0134 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER27_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0135 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER28_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0136 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER28_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0137 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER29_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0138 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER29_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0139 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER30_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x013A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER30_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x013B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER31_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x013C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER31_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x013D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER32_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x013E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER32_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x013F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER33_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0140 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER33_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0141 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER34_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0142 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER34_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0143 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER35_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0144 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER35_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0145 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER36_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0146 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER36_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0147 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER37_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0148 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER37_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0149 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER38_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x014A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER38_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x014B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER39_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x014C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER39_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x014D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER40_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x014E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER40_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x014F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER41_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0150 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER41_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0151 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER42_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0152 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER42_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0153 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER43_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0154 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER43_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0155 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER44_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0156 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER44_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0157 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER45_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0158 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER45_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0159 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER46_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x015A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER46_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x015B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER47_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x015C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER47_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x015D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER48_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x015E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER48_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x015F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CPP1_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x01FC // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CPP2_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x01FE // Ver.: since se-1.2a-07-5356-19 -#define ZCL_STATUS_ATTRIBUTE_ID 0x0200 // Ver.: always -#define ZCL_REMAINING_BATTERY_LIFE_ATTRIBUTE_ID 0x0201 // Ver.: since se-1.1-07-5356-16 -#define ZCL_HOURS_IN_OPERATION_ATTRIBUTE_ID 0x0202 // Ver.: since se-1.1-07-5356-16 -#define ZCL_HOURS_IN_FAULT_ATTRIBUTE_ID 0x0203 // Ver.: since se-1.1-07-5356-16 -#define ZCL_EXTENDED_STATUS_ATTRIBUTE_ID 0x0204 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_REMAINING_BATTERY_LIFE_IN_DAYS_ATTRIBUTE_ID 0x0205 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_METER_ID_ATTRIBUTE_ID 0x0206 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_AMBIENT_CONSUMPTION_INDICATOR_ATTRIBUTE_ID 0x0207 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_UNIT_OF_MEASURE_ATTRIBUTE_ID 0x0300 // Ver.: always -#define ZCL_MULTIPLIER_ATTRIBUTE_ID 0x0301 // Ver.: always -#define ZCL_DIVISOR_ATTRIBUTE_ID 0x0302 // Ver.: always -#define ZCL_SUMMATION_FORMATTING_ATTRIBUTE_ID 0x0303 // Ver.: always -#define ZCL_DEMAND_FORMATTING_ATTRIBUTE_ID 0x0304 // Ver.: always -#define ZCL_HISTORICAL_CONSUMPTION_FORMATTING_ATTRIBUTE_ID 0x0305 // Ver.: always -#define ZCL_METERING_DEVICE_TYPE_ATTRIBUTE_ID 0x0306 // Ver.: always -#define ZCL_SITE_ID_ATTRIBUTE_ID 0x0307 // Ver.: since se-1.1-07-5356-16 -#define ZCL_METER_SERIAL_NUMBER_ATTRIBUTE_ID 0x0308 // Ver.: since se-1.1-07-5356-16 -#define ZCL_ENERGY_CARRIER_UNIT_OF_MEASURE_ATTRIBUTE_ID 0x0309 // Ver.: since se-1.1-07-5356-16 -#define ZCL_ENERGY_CARRIER_SUMMATION_FORMATTING_ATTRIBUTE_ID 0x030A // Ver.: since se-1.1-07-5356-16 -#define ZCL_ENERGY_CARRIER_DEMAND_FORMATTING_ATTRIBUTE_ID 0x030B // Ver.: since se-1.1-07-5356-16 -#define ZCL_TEMPERATURE_UNIT_OF_MEASURE_ATTRIBUTE_ID 0x030C // Ver.: since se-1.1-07-5356-16 -#define ZCL_TEMPERATURE_FORMATTING_ATTRIBUTE_ID 0x030D // Ver.: since se-1.1-07-5356-16 -#define ZCL_MODULE_SERIAL_NUMBER_ATTRIBUTE_ID 0x030E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_OPERATING_TARIFF_LABEL_DELIVERED_ATTRIBUTE_ID 0x030F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_OPERATING_TARIFF_LABEL_RECEIVED_ATTRIBUTE_ID 0x0310 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CUSTOMER_ID_NUMBER_ATTRIBUTE_ID 0x0311 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_ALTERNATIVE_UNIT_OF_MEASURE_ATTRIBUTE_ID 0x0312 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_ALTERNATIVE_DEMAND_FORMATTING_ATTRIBUTE_ID 0x0313 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_ALTERNATIVE_CONSUMPTION_FORMATTING_ATTRIBUTE_ID 0x0314 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_INSTANTANEOUS_DEMAND_ATTRIBUTE_ID 0x0400 // Ver.: always -#define ZCL_CURRENT_DAY_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0401 // Ver.: always -#define ZCL_CURRENT_DAY_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0402 // Ver.: always -#define ZCL_PREVIOUS_DAY_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0403 // Ver.: always -#define ZCL_PREVIOUS_DAY_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0404 // Ver.: always -#define ZCL_CURRENT_PARTIAL_PROFILE_INTERVAL_START_TIME_DELIVERED_ATTRIBUTE_ID 0x0405 // Ver.: always -#define ZCL_CURRENT_PARTIAL_PROFILE_INTERVAL_START_TIME_RECEIVED_ATTRIBUTE_ID 0x0406 // Ver.: always -#define ZCL_CURRENT_PARTIAL_PROFILE_INTERVAL_VALUE_DELIVERED_ATTRIBUTE_ID 0x0407 // Ver.: always -#define ZCL_CURRENT_PARTIAL_PROFILE_INTERVAL_VALUE_RECEIVED_ATTRIBUTE_ID 0x0408 // Ver.: always -#define ZCL_CURRENT_DAY_MAX_PRESSURE_ATTRIBUTE_ID 0x0409 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_DAY_MIN_PRESSURE_ATTRIBUTE_ID 0x040A // Ver.: since se-1.1-07-5356-16 -#define ZCL_PREVIOUS_DAY_MAX_PRESSURE_ATTRIBUTE_ID 0x040B // Ver.: since se-1.1-07-5356-16 -#define ZCL_PREVIOUS_DAY_MIN_PRESSURE_ATTRIBUTE_ID 0x040C // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_DAY_MAX_DEMAND_ATTRIBUTE_ID 0x040D // Ver.: since se-1.1-07-5356-16 -#define ZCL_PREVIOUS_DAY_MAX_DEMAND_ATTRIBUTE_ID 0x040E // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_MONTH_MAX_DEMAND_ATTRIBUTE_ID 0x040F // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_YEAR_MAX_DEMAND_ATTRIBUTE_ID 0x0410 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_DAY_MAX_ENERGY_CARRIER_DEMAND_ATTRIBUTE_ID 0x0411 // Ver.: since se-1.1-07-5356-16 -#define ZCL_PREVIOUS_DAY_MAX_ENERGY_CARRIER_DEMAND_ATTRIBUTE_ID 0x0412 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_MONTH_MAX_ENERGY_CARRIER_DEMAND_ATTRIBUTE_ID 0x0413 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_MONTH_MIN_ENERGY_CARRIER_DEMAND_ATTRIBUTE_ID 0x0414 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_YEAR_MAX_ENERGY_CARRIER_DEMAND_ATTRIBUTE_ID 0x0415 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_YEAR_MIN_ENERGY_CARRIER_DEMAND_ATTRIBUTE_ID 0x0416 // Ver.: since se-1.1-07-5356-16 -#define ZCL_PREVIOUS_DAY2_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0420 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY2_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0421 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY3_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0422 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY3_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0423 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY4_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0424 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY4_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0425 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY5_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0426 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY5_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0427 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY6_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0428 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY6_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0429 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY7_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x042A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY7_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x042B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY8_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x042C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY8_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x042D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_WEEK_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0430 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_WEEK_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0431 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_WEEK_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0432 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_WEEK_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0433 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_WEEK2_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0434 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_WEEK2_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0435 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_WEEK3_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0436 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_WEEK3_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0437 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_WEEK4_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0438 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_WEEK4_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0439 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_WEEK5_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x043A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_WEEK5_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x043B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_MONTH_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0440 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_MONTH_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0441 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0442 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0443 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH2_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0444 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH2_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0445 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH3_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0446 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH3_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0447 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH4_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0448 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH4_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0449 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH5_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x044A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH5_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x044B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH6_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x044C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH6_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x044D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH7_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x044E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH7_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x044F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH8_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0450 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH8_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0451 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH9_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0452 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH9_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0453 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH10_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0454 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH10_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0455 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH11_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0456 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH11_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0457 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH12_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0458 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH12_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0459 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH13_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x045A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH13_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x045B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_METERING_HISTORICAL_FREEZE_TIME_ATTRIBUTE_ID 0x045C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_DAY_MAX_DEMAND_DELIVERED_ATTRIBUTE_ID 0x045D // Ver.: since se-1.4-17-05019-001 -#define ZCL_CURRENT_DAY_MAX_DEMAND_DELIVERED_TIME_ATTRIBUTE_ID 0x045E // Ver.: since se-1.4-17-05019-001 -#define ZCL_CURRENT_DAY_MAX_DEMAND_RECEIVED_ATTRIBUTE_ID 0x045F // Ver.: since se-1.4-17-05019-001 -#define ZCL_CURRENT_DAY_MAX_DEMAND_RECEIVED_TIME_ATTRIBUTE_ID 0x0460 // Ver.: since se-1.4-17-05019-001 -#define ZCL_PREVIOUS_DAY_MAX_DEMAND_DELIVERED_ATTRIBUTE_ID 0x0461 // Ver.: since se-1.4-17-05019-001 -#define ZCL_PREVIOUS_DAY_MAX_DEMAND_DELIVERED_TIME_ATTRIBUTE_ID 0x0462 // Ver.: since se-1.4-17-05019-001 -#define ZCL_PREVIOUS_DAY_MAX_DEMAND_RECEIVED_ATTRIBUTE_ID 0x0463 // Ver.: since se-1.4-17-05019-001 -#define ZCL_PREVIOUS_DAY_MAX_DEMAND_RECEIVED_TIME_ATTRIBUTE_ID 0x0464 // Ver.: since se-1.4-17-05019-001 -#define ZCL_MAX_NUMBER_OF_PERIODS_DELIVERED_ATTRIBUTE_ID 0x0500 // Ver.: always -#define ZCL_CURRENT_DEMAND_DELIVERED_ATTRIBUTE_ID 0x0600 // Ver.: always -#define ZCL_DEMAND_LIMIT_ATTRIBUTE_ID 0x0601 // Ver.: always -#define ZCL_DEMAND_INTEGRATION_PERIOD_ATTRIBUTE_ID 0x0602 // Ver.: always -#define ZCL_NUMBER_OF_DEMAND_SUBINTERVALS_ATTRIBUTE_ID 0x0603 // Ver.: always -#define ZCL_DEMAND_LIMIT_ARM_DURATION_IN_MINUTES_ATTRIBUTE_ID 0x0604 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_LOAD_LIMIT_SUPPLY_STATE_ATTRIBUTE_ID 0x0605 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_LOAD_LIMIT_COUNTER_ATTRIBUTE_ID 0x0606 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_SUPPLY_TAMPER_STATE_ATTRIBUTE_ID 0x0607 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_SUPPLY_DEPLETION_STATE_ATTRIBUTE_ID 0x0608 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_SUPPLY_UNCONTROLLED_FLOW_STATE_ATTRIBUTE_ID 0x0609 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_NO_TIER_BLOCK1_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0700 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_NO_TIER_BLOCK2_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0701 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_NO_TIER_BLOCK3_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0702 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_NO_TIER_BLOCK4_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0703 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_NO_TIER_BLOCK5_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0704 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_NO_TIER_BLOCK6_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0705 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_NO_TIER_BLOCK7_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0706 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_NO_TIER_BLOCK8_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0707 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_NO_TIER_BLOCK9_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0708 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_NO_TIER_BLOCK10_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0709 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_NO_TIER_BLOCK11_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x070A // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_NO_TIER_BLOCK12_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x070B // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_NO_TIER_BLOCK13_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x070C // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_NO_TIER_BLOCK14_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x070D // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_NO_TIER_BLOCK15_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x070E // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_NO_TIER_BLOCK16_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x070F // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER1_BLOCK1_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0710 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER1_BLOCK2_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0711 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER1_BLOCK3_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0712 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER1_BLOCK4_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0713 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER1_BLOCK5_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0714 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER1_BLOCK6_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0715 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER1_BLOCK7_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0716 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER1_BLOCK8_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0717 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER1_BLOCK9_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0718 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER1_BLOCK10_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0719 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER1_BLOCK11_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x071A // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER1_BLOCK12_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x071B // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER1_BLOCK13_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x071C // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER1_BLOCK14_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x071D // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER1_BLOCK15_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x071E // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER1_BLOCK16_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x071F // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER2_BLOCK1_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0720 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER2_BLOCK2_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0721 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER2_BLOCK3_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0722 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER2_BLOCK4_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0723 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER2_BLOCK5_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0724 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER2_BLOCK6_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0725 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER2_BLOCK7_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0726 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER2_BLOCK8_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0727 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER2_BLOCK9_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0728 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER2_BLOCK10_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0729 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER2_BLOCK11_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x072A // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER2_BLOCK12_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x072B // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER2_BLOCK13_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x072C // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER2_BLOCK14_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x072D // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER2_BLOCK15_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x072E // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER2_BLOCK16_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x072F // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER3_BLOCK1_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0730 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER3_BLOCK2_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0731 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER3_BLOCK3_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0732 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER3_BLOCK4_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0733 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER3_BLOCK5_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0734 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER3_BLOCK6_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0735 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER3_BLOCK7_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0736 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER3_BLOCK8_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0737 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER3_BLOCK9_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0738 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER3_BLOCK10_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0739 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER3_BLOCK11_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x073A // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER3_BLOCK12_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x073B // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER3_BLOCK13_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x073C // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER3_BLOCK14_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x073D // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER3_BLOCK15_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x073E // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER3_BLOCK16_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x073F // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER4_BLOCK1_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0740 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER4_BLOCK2_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0741 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER4_BLOCK3_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0742 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER4_BLOCK4_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0743 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER4_BLOCK5_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0744 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER4_BLOCK6_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0745 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER4_BLOCK7_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0746 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER4_BLOCK8_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0747 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER4_BLOCK9_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0748 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER4_BLOCK10_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0749 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER4_BLOCK11_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x074A // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER4_BLOCK12_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x074B // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER4_BLOCK13_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x074C // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER4_BLOCK14_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x074D // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER4_BLOCK15_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x074E // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER4_BLOCK16_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x074F // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER5_BLOCK1_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0750 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER5_BLOCK2_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0751 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER5_BLOCK3_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0752 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER5_BLOCK4_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0753 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER5_BLOCK5_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0754 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER5_BLOCK6_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0755 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER5_BLOCK7_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0756 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER5_BLOCK8_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0757 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER5_BLOCK9_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0758 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER5_BLOCK10_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0759 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER5_BLOCK11_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x075A // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER5_BLOCK12_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x075B // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER5_BLOCK13_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x075C // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER5_BLOCK14_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x075D // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER5_BLOCK15_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x075E // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER5_BLOCK16_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x075F // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER6_BLOCK1_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0760 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER6_BLOCK2_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0761 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER6_BLOCK3_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0762 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER6_BLOCK4_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0763 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER6_BLOCK5_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0764 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER6_BLOCK6_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0765 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER6_BLOCK7_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0766 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER6_BLOCK8_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0767 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER6_BLOCK9_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0768 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER6_BLOCK10_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0769 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER6_BLOCK11_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x076A // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER6_BLOCK12_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x076B // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER6_BLOCK13_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x076C // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER6_BLOCK14_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x076D // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER6_BLOCK15_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x076E // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER6_BLOCK16_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x076F // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER7_BLOCK1_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0770 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER7_BLOCK2_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0771 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER7_BLOCK3_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0772 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER7_BLOCK4_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0773 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER7_BLOCK5_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0774 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER7_BLOCK6_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0775 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER7_BLOCK7_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0776 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER7_BLOCK8_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0777 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER7_BLOCK9_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0778 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER7_BLOCK10_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0779 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER7_BLOCK11_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x077A // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER7_BLOCK12_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x077B // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER7_BLOCK13_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x077C // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER7_BLOCK14_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x077D // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER7_BLOCK15_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x077E // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER7_BLOCK16_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x077F // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER8_BLOCK1_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0780 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER8_BLOCK2_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0781 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER8_BLOCK3_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0782 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER8_BLOCK4_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0783 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER8_BLOCK5_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0784 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER8_BLOCK6_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0785 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER8_BLOCK7_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0786 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER8_BLOCK8_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0787 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER8_BLOCK9_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0788 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER8_BLOCK10_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0789 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER8_BLOCK11_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x078A // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER8_BLOCK12_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x078B // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER8_BLOCK13_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x078C // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER8_BLOCK14_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x078D // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER8_BLOCK15_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x078E // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER8_BLOCK16_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x078F // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER9_BLOCK1_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0790 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER9_BLOCK2_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0791 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER9_BLOCK3_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0792 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER9_BLOCK4_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0793 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER9_BLOCK5_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0794 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER9_BLOCK6_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0795 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER9_BLOCK7_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0796 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER9_BLOCK8_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0797 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER9_BLOCK9_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0798 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER9_BLOCK10_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0799 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER9_BLOCK11_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x079A // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER9_BLOCK12_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x079B // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER9_BLOCK13_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x079C // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER9_BLOCK14_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x079D // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER9_BLOCK15_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x079E // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER9_BLOCK16_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x079F // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER10_BLOCK1_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07A0 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER10_BLOCK2_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07A1 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER10_BLOCK3_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07A2 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER10_BLOCK4_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07A3 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER10_BLOCK5_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07A4 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER10_BLOCK6_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07A5 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER10_BLOCK7_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07A6 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER10_BLOCK8_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07A7 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER10_BLOCK9_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07A8 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER10_BLOCK10_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07A9 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER10_BLOCK11_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07AA // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER10_BLOCK12_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07AB // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER10_BLOCK13_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07AC // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER10_BLOCK14_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07AD // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER10_BLOCK15_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07AE // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER10_BLOCK16_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07AF // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER11_BLOCK1_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07B0 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER11_BLOCK2_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07B1 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER11_BLOCK3_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07B2 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER11_BLOCK4_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07B3 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER11_BLOCK5_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07B4 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER11_BLOCK6_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07B5 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER11_BLOCK7_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07B6 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER11_BLOCK8_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07B7 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER11_BLOCK9_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07B8 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER11_BLOCK10_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07B9 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER11_BLOCK11_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07BA // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER11_BLOCK12_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07BB // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER11_BLOCK13_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07BC // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER11_BLOCK14_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07BD // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER11_BLOCK15_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07BE // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER11_BLOCK16_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07BF // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER12_BLOCK1_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07C0 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER12_BLOCK2_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07C1 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER12_BLOCK3_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07C2 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER12_BLOCK4_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07C3 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER12_BLOCK5_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07C4 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER12_BLOCK6_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07C5 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER12_BLOCK7_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07C6 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER12_BLOCK8_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07C7 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER12_BLOCK9_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07C8 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER12_BLOCK10_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07C9 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER12_BLOCK11_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07CA // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER12_BLOCK12_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07CB // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER12_BLOCK13_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07CC // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER12_BLOCK14_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07CD // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER12_BLOCK15_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07CE // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER12_BLOCK16_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07CF // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER13_BLOCK1_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07D0 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER13_BLOCK2_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07D1 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER13_BLOCK3_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07D2 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER13_BLOCK4_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07D3 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER13_BLOCK5_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07D4 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER13_BLOCK6_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07D5 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER13_BLOCK7_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07D6 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER13_BLOCK8_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07D7 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER13_BLOCK9_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07D8 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER13_BLOCK10_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07D9 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER13_BLOCK11_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07DA // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER13_BLOCK12_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07DB // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER13_BLOCK13_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07DC // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER13_BLOCK14_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07DD // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER13_BLOCK15_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07DE // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER13_BLOCK16_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07DF // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER14_BLOCK1_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07E0 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER14_BLOCK2_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07E1 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER14_BLOCK3_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07E2 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER14_BLOCK4_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07E3 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER14_BLOCK5_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07E4 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER14_BLOCK6_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07E5 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER14_BLOCK7_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07E6 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER14_BLOCK8_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07E7 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER14_BLOCK9_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07E8 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER14_BLOCK10_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07E9 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER14_BLOCK11_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07EA // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER14_BLOCK12_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07EB // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER14_BLOCK13_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07EC // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER14_BLOCK14_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07ED // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER14_BLOCK15_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07EE // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER14_BLOCK16_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07EF // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER15_BLOCK1_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07F0 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER15_BLOCK2_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07F1 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER15_BLOCK3_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07F2 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER15_BLOCK4_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07F3 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER15_BLOCK5_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07F4 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER15_BLOCK6_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07F5 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER15_BLOCK7_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07F6 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER15_BLOCK8_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07F7 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER15_BLOCK9_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07F8 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER15_BLOCK10_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07F9 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER15_BLOCK11_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07FA // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER15_BLOCK12_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07FB // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER15_BLOCK13_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07FC // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER15_BLOCK14_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07FD // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER15_BLOCK15_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07FE // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER15_BLOCK16_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07FF // Ver.: since se-1.1-07-5356-16 -#define ZCL_GENERIC_ALARM_MASK_ATTRIBUTE_ID 0x0800 // Ver.: since se-1.1-07-5356-16 -#define ZCL_ELECTRICITY_ALARM_MASK_ATTRIBUTE_ID 0x0801 // Ver.: since se-1.1-07-5356-16 -#define ZCL_GENERIC_FLOW_PRESSURE_ALARM_MASK_ATTRIBUTE_ID 0x0802 // Ver.: since se-1.1-07-5356-16 -#define ZCL_WATER_SPECIFIC_ALARM_MASK_ATTRIBUTE_ID 0x0803 // Ver.: since se-1.1-07-5356-16 -#define ZCL_HEAT_AND_COOLING_SPECIFIC_ALARM_MASK_ATTRIBUTE_ID 0x0804 // Ver.: since se-1.1-07-5356-16 -#define ZCL_GAS_SPECIFIC_ALARM_MASK_ATTRIBUTE_ID 0x0805 // Ver.: since se-1.1-07-5356-16 -#define ZCL_METERING_EXTENDED_GENERIC_ALARM_MASK_ATTRIBUTE_ID 0x0806 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_METERING_MANUFACTURE_ALARM_MASK_ATTRIBUTE_ID 0x0807 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_NO_TIER_BLOCK1_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0900 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_NO_TIER_BLOCK2_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0901 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_NO_TIER_BLOCK3_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0902 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_NO_TIER_BLOCK4_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0903 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_NO_TIER_BLOCK5_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0904 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_NO_TIER_BLOCK6_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0905 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_NO_TIER_BLOCK7_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0906 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_NO_TIER_BLOCK8_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0907 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_NO_TIER_BLOCK9_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0908 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_NO_TIER_BLOCK10_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0909 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_NO_TIER_BLOCK11_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x090A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_NO_TIER_BLOCK12_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x090B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_NO_TIER_BLOCK13_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x090C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_NO_TIER_BLOCK14_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x090D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_NO_TIER_BLOCK15_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x090E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_NO_TIER_BLOCK16_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x090F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER1_BLOCK1_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0910 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER1_BLOCK2_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0911 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER1_BLOCK3_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0912 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER1_BLOCK4_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0913 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER1_BLOCK5_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0914 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER1_BLOCK6_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0915 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER1_BLOCK7_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0916 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER1_BLOCK8_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0917 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER1_BLOCK9_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0918 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER1_BLOCK10_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0919 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER1_BLOCK11_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x091A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER1_BLOCK12_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x091B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER1_BLOCK13_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x091C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER1_BLOCK14_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x091D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER1_BLOCK15_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x091E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER1_BLOCK16_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x091F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER2_BLOCK1_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0920 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER2_BLOCK2_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0921 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER2_BLOCK3_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0922 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER2_BLOCK4_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0923 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER2_BLOCK5_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0924 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER2_BLOCK6_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0925 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER2_BLOCK7_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0926 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER2_BLOCK8_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0927 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER2_BLOCK9_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0928 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER2_BLOCK10_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0929 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER2_BLOCK11_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x092A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER2_BLOCK12_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x092B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER2_BLOCK13_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x092C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER2_BLOCK14_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x092D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER2_BLOCK15_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x092E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER2_BLOCK16_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x092F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER3_BLOCK1_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0930 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER3_BLOCK2_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0931 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER3_BLOCK3_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0932 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER3_BLOCK4_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0933 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER3_BLOCK5_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0934 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER3_BLOCK6_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0935 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER3_BLOCK7_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0936 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER3_BLOCK8_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0937 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER3_BLOCK9_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0938 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER3_BLOCK10_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0939 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER3_BLOCK11_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x093A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER3_BLOCK12_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x093B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER3_BLOCK13_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x093C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER3_BLOCK14_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x093D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER3_BLOCK15_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x093E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER3_BLOCK16_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x093F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER4_BLOCK1_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0940 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER4_BLOCK2_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0941 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER4_BLOCK3_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0942 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER4_BLOCK4_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0943 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER4_BLOCK5_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0944 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER4_BLOCK6_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0945 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER4_BLOCK7_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0946 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER4_BLOCK8_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0947 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER4_BLOCK9_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0948 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER4_BLOCK10_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0949 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER4_BLOCK11_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x094A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER4_BLOCK12_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x094B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER4_BLOCK13_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x094C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER4_BLOCK14_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x094D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER4_BLOCK15_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x094E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER4_BLOCK16_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x094F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER5_BLOCK1_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0950 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER5_BLOCK2_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0951 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER5_BLOCK3_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0952 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER5_BLOCK4_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0953 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER5_BLOCK5_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0954 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER5_BLOCK6_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0955 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER5_BLOCK7_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0956 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER5_BLOCK8_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0957 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER5_BLOCK9_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0958 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER5_BLOCK10_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0959 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER5_BLOCK11_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x095A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER5_BLOCK12_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x095B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER5_BLOCK13_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x095C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER5_BLOCK14_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x095D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER5_BLOCK15_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x095E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER5_BLOCK16_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x095F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER6_BLOCK1_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0960 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER6_BLOCK2_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0961 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER6_BLOCK3_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0962 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER6_BLOCK4_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0963 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER6_BLOCK5_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0964 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER6_BLOCK6_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0965 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER6_BLOCK7_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0966 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER6_BLOCK8_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0967 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER6_BLOCK9_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0968 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER6_BLOCK10_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0969 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER6_BLOCK11_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x096A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER6_BLOCK12_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x096B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER6_BLOCK13_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x096C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER6_BLOCK14_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x096D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER6_BLOCK15_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x096E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER6_BLOCK16_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x096F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER7_BLOCK1_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0970 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER7_BLOCK2_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0971 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER7_BLOCK3_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0972 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER7_BLOCK4_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0973 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER7_BLOCK5_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0974 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER7_BLOCK6_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0975 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER7_BLOCK7_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0976 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER7_BLOCK8_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0977 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER7_BLOCK9_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0978 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER7_BLOCK10_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0979 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER7_BLOCK11_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x097A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER7_BLOCK12_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x097B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER7_BLOCK13_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x097C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER7_BLOCK14_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x097D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER7_BLOCK15_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x097E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER7_BLOCK16_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x097F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER8_BLOCK1_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0980 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER8_BLOCK2_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0981 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER8_BLOCK3_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0982 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER8_BLOCK4_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0983 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER8_BLOCK5_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0984 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER8_BLOCK6_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0985 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER8_BLOCK7_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0986 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER8_BLOCK8_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0987 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER8_BLOCK9_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0988 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER8_BLOCK10_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0989 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER8_BLOCK11_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x098A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER8_BLOCK12_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x098B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER8_BLOCK13_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x098C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER8_BLOCK14_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x098D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER8_BLOCK15_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x098E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER8_BLOCK16_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x098F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER9_BLOCK1_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0990 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER9_BLOCK2_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0991 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER9_BLOCK3_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0992 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER9_BLOCK4_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0993 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER9_BLOCK5_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0994 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER9_BLOCK6_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0995 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER9_BLOCK7_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0996 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER9_BLOCK8_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0997 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER9_BLOCK9_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0998 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER9_BLOCK10_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0999 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER9_BLOCK11_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x099A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER9_BLOCK12_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x099B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER9_BLOCK13_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x099C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER9_BLOCK14_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x099D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER9_BLOCK15_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x099E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER9_BLOCK16_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x099F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER10_BLOCK1_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09A0 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER10_BLOCK2_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09A1 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER10_BLOCK3_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09A2 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER10_BLOCK4_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09A3 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER10_BLOCK5_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09A4 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER10_BLOCK6_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09A5 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER10_BLOCK7_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09A6 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER10_BLOCK8_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09A7 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER10_BLOCK9_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09A8 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER10_BLOCK10_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09A9 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER10_BLOCK11_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09AA // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER10_BLOCK12_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09AB // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER10_BLOCK13_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09AC // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER10_BLOCK14_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09AD // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER10_BLOCK15_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09AE // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER10_BLOCK16_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09AF // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER11_BLOCK1_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09B0 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER11_BLOCK2_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09B1 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER11_BLOCK3_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09B2 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER11_BLOCK4_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09B3 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER11_BLOCK5_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09B4 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER11_BLOCK6_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09B5 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER11_BLOCK7_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09B6 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER11_BLOCK8_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09B7 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER11_BLOCK9_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09B8 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER11_BLOCK10_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09B9 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER11_BLOCK11_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09BA // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER11_BLOCK12_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09BB // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER11_BLOCK13_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09BC // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER11_BLOCK14_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09BD // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER11_BLOCK15_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09BE // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER11_BLOCK16_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09BF // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER12_BLOCK1_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09C0 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER12_BLOCK2_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09C1 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER12_BLOCK3_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09C2 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER12_BLOCK4_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09C3 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER12_BLOCK5_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09C4 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER12_BLOCK6_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09C5 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER12_BLOCK7_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09C6 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER12_BLOCK8_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09C7 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER12_BLOCK9_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09C8 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER12_BLOCK10_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09C9 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER12_BLOCK11_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09CA // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER12_BLOCK12_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09CB // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER12_BLOCK13_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09CC // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER12_BLOCK14_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09CD // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER12_BLOCK15_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09CE // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER12_BLOCK16_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09CF // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER13_BLOCK1_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09D0 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER13_BLOCK2_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09D1 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER13_BLOCK3_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09D2 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER13_BLOCK4_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09D3 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER13_BLOCK5_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09D4 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER13_BLOCK6_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09D5 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER13_BLOCK7_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09D6 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER13_BLOCK8_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09D7 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER13_BLOCK9_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09D8 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER13_BLOCK10_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09D9 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER13_BLOCK11_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09DA // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER13_BLOCK12_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09DB // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER13_BLOCK13_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09DC // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER13_BLOCK14_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09DD // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER13_BLOCK15_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09DE // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER13_BLOCK16_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09DF // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER14_BLOCK1_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09E0 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER14_BLOCK2_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09E1 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER14_BLOCK3_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09E2 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER14_BLOCK4_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09E3 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER14_BLOCK5_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09E4 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER14_BLOCK6_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09E5 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER14_BLOCK7_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09E6 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER14_BLOCK8_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09E7 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER14_BLOCK9_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09E8 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER14_BLOCK10_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09E9 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER14_BLOCK11_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09EA // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER14_BLOCK12_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09EB // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER14_BLOCK13_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09EC // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER14_BLOCK14_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09ED // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER14_BLOCK15_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09EE // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER14_BLOCK16_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09EF // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER15_BLOCK1_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09F0 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER15_BLOCK2_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09F1 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER15_BLOCK3_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09F2 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER15_BLOCK4_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09F3 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER15_BLOCK5_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09F4 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER15_BLOCK6_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09F5 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER15_BLOCK7_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09F6 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER15_BLOCK8_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09F7 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER15_BLOCK9_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09F8 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER15_BLOCK10_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09F9 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER15_BLOCK11_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09FA // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER15_BLOCK12_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09FB // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER15_BLOCK13_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09FC // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER15_BLOCK14_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09FD // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER15_BLOCK15_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09FE // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER15_BLOCK16_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09FF // Ver.: since se-1.2a-07-5356-19 -#define ZCL_BILL_TO_DATE_DELIVERED_ATTRIBUTE_ID 0x0A00 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_BILL_TO_DATE_TIME_STAMP_DELIVERED_ATTRIBUTE_ID 0x0A01 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PROJECTED_BILL_DELIVERED_ATTRIBUTE_ID 0x0A02 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PROJECTED_BILL_TIME_STAMP_DELIVERED_ATTRIBUTE_ID 0x0A03 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_BILL_DELIVERED_TRAILING_DIGIT_ATTRIBUTE_ID 0x0A04 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_BILL_TO_DATE_RECEIVED_ATTRIBUTE_ID 0x0A10 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_BILL_TO_DATE_TIME_STAMP_RECEIVED_ATTRIBUTE_ID 0x0A11 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PROJECTED_BILL_RECEIVED_ATTRIBUTE_ID 0x0A12 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PROJECTED_BILL_TIME_STAMP_RECEIVED_ATTRIBUTE_ID 0x0A13 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_BILL_RECEIVED_TRAILING_DIGIT_ATTRIBUTE_ID 0x0A14 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PROPOSED_CHANGE_SUPPLY_IMPLEMENTATION_TIME_ATTRIBUTE_ID 0x0B00 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PROPOSED_CHANGE_SUPPLY_STATUS_ATTRIBUTE_ID 0x0B01 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_UNCONTROLLED_FLOW_THESHOLD_ATTRIBUTE_ID 0x0B10 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_UNCONTROLLED_FLOW_THESHOLD_UNIT_OF_MEASURE_ATTRIBUTE_ID 0x0B11 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_UNCONTROLLED_FLOW_MULTIPLIER_ATTRIBUTE_ID 0x0B12 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_UNCONTROLLED_FLOW_DIVISOR_ATTRIBUTE_ID 0x0B13 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_FLOW_STABILIZATION_PERIOD_ATTRIBUTE_ID 0x0B14 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_FLOW_MEASUREMENT_PERIOD_ATTRIBUTE_ID 0x0B15 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_ALTERNATIVE_INSTANTANEOUS_DEMAND_ATTRIBUTE_ID 0x0C00 // Ver.: always -#define ZCL_CURRENT_ALTERNATIVE_DAY_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0C01 // Ver.: always -#define ZCL_CURRENT_ALTERNATIVE_DAY_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0C02 // Ver.: always -#define ZCL_PREVIOUS_DAY_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0C03 // Ver.: always -#define ZCL_PREVIOUS_DAY_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0C04 // Ver.: always -#define ZCL_CURRENT_ALTERNATIVE_PARTIAL_PROFILE_INTERVAL_START_TIME_DELIVERED_ATTRIBUTE_ID 0x0C05 // Ver.: always -#define ZCL_CURRENT_ALTERNATIVE_PARTIAL_PROFILE_INTERVAL_START_TIME_RECEIVED_ATTRIBUTE_ID 0x0C06 // Ver.: always -#define ZCL_CURRENT_ALTERNATIVE_PARTIAL_PROFILE_INTERVAL_VALUE_DELIVERED_ATTRIBUTE_ID 0x0C07 // Ver.: always -#define ZCL_CURRENT_ALTERNATIVE_PARTIAL_PROFILE_INTERVAL_VALUE_RECEIVED_ATTRIBUTE_ID 0x0C08 // Ver.: always -#define ZCL_CURRENT_ALTERNATIVE_DAY_MAX_PRESSURE_ATTRIBUTE_ID 0x0C09 // Ver.: always -#define ZCL_CURRENT_ALTERNATIVE_DAY_MIN_PRESSURE_ATTRIBUTE_ID 0x0C0A // Ver.: always -#define ZCL_PREVIOUS_DAY_ALTERNATIVE_MAX_PRESSURE_ATTRIBUTE_ID 0x0C0B // Ver.: always -#define ZCL_PREVIOUS_DAY_ALTERNATIVE_MIN_PRESSURE_ATTRIBUTE_ID 0x0C0C // Ver.: always -#define ZCL_CURRENT_ALTERNATIVE_DAY_ALTERNATIVE_MAX_DEMAND_ATTRIBUTE_ID 0x0C0D // Ver.: always -#define ZCL_PREVIOUS_DAY_ALTERNATIVE_MAX_DEMAND_ATTRIBUTE_ID 0x0C0E // Ver.: always -#define ZCL_CURRENT_ALTERNATIVE_MONTH_MAX_DEMAND_ATTRIBUTE_ID 0x0C0F // Ver.: always -#define ZCL_CURRENT_ALTERNATIVE_YEAR_MAX_DEMAND_ATTRIBUTE_ID 0x0C10 // Ver.: always -#define ZCL_PREVIOUS_DAY2_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0C20 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY2_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0C21 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY3_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0C22 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY3_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0C23 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY4_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0C24 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY4_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0C25 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY5_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0C26 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY5_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0C27 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY6_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0C28 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY6_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0C29 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY7_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0C2A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY7_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0C2B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY8_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0C2C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY8_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0C2D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_WEEK_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0C30 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_WEEK_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0C31 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_WEEK_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0C32 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_WEEK_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0C33 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_WEEK2_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0C34 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_WEEK2_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0C35 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_WEEK3_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0C36 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_WEEK3_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0C37 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_WEEK4_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0C38 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_WEEK4_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0C39 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_WEEK5_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0C3A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_WEEK5_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0C3B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_MONTH_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0C40 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_MONTH_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0C41 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0C42 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0C43 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH2_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0C44 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH2_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0C45 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH3_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0C46 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH3_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0C47 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH4_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0C48 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH4_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0C49 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH5_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0C4A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH5_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0C4B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH6_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0C4C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH6_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0C4D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH7_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0C4E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH7_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0C4F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH8_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0C50 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH8_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0C51 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH9_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0C52 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH9_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0C53 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH10_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0C54 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH10_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0C55 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH11_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0C56 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH11_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0C57 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH12_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0C58 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH12_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0C59 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH13_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0C5A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH13_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0C5B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_DAY_ALTERNATIVE_MAX_DEMAND_DELIVERED_ATTRIBUTE_ID 0x0C5C // Ver.: since se-1.4-17-05019-001 -#define ZCL_CURRENT_DAY_ALTERNATIVE_MAX_DEMAND_DELIVERED_TIME_ATTRIBUTE_ID 0x0C5D // Ver.: since se-1.4-17-05019-001 -#define ZCL_CURRENT_DAY_ALTERNATIVE_MAX_DEMAND_RECEIVED_ATTRIBUTE_ID 0x0C5E // Ver.: since se-1.4-17-05019-001 -#define ZCL_CURRENT_DAY_ALTERNATIVE_MAX_DEMAND_RECEIVED_TIME_ATTRIBUTE_ID 0x0C5F // Ver.: since se-1.4-17-05019-001 -#define ZCL_PREVIOUS_DAY_ALTERNATIVE_MAX_DEMAND_DELIVERED_ATTRIBUTE_ID 0x0C60 // Ver.: since se-1.4-17-05019-001 -#define ZCL_PREVIOUS_DAY_ALTERNATIVE_MAX_DEMAND_DELIVERED_TIME_ATTRIBUTE_ID 0x0C61 // Ver.: since se-1.4-17-05019-001 -#define ZCL_PREVIOUS_DAY_ALTERNATIVE_MAX_DEMAND_RECEIVED_ATTRIBUTE_ID 0x0C62 // Ver.: since se-1.4-17-05019-001 -#define ZCL_PREVIOUS_DAY_ALTERNATIVE_MAX_DEMAND_RECEIVED_TIME_ATTRIBUTE_ID 0x0C63 // Ver.: since se-1.4-17-05019-001 -#define ZCL_CURRENT_ACTIVE_SUMMATION_Q1_ATTRIBUTE_ID 0x0D01 // Ver.: since se-1.4-17-05019-001 -#define ZCL_CURRENT_ACTIVE_SUMMATION_Q2_ATTRIBUTE_ID 0x0D02 // Ver.: since se-1.4-17-05019-001 -#define ZCL_CURRENT_ACTIVE_SUMMATION_Q3_ATTRIBUTE_ID 0x0D03 // Ver.: since se-1.4-17-05019-001 -#define ZCL_CURRENT_ACTIVE_SUMMATION_Q4_ATTRIBUTE_ID 0x0D04 // Ver.: since se-1.4-17-05019-001 -#define ZCL_CURRENT_REACTIVE_SUMMATION_Q1_ATTRIBUTE_ID 0x0D05 // Ver.: since se-1.4-17-05019-001 -#define ZCL_CURRENT_REACTIVE_SUMMATION_Q2_ATTRIBUTE_ID 0x0D06 // Ver.: since se-1.4-17-05019-001 -#define ZCL_CURRENT_REACTIVE_SUMMATION_Q3_ATTRIBUTE_ID 0x0D07 // Ver.: since se-1.4-17-05019-001 -#define ZCL_CURRENT_REACTIVE_SUMMATION_Q4_ATTRIBUTE_ID 0x0D08 // Ver.: since se-1.4-17-05019-001 -#define ZCL_SIMPLE_METERING_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_SIMPLE_METERING_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Messaging -// Cluster specification level: se-1.2b-15-0131-02 - -// Client attributes -#define ZCL_MESSAGING_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_MESSAGING_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_MESSAGING_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_MESSAGING_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Tunneling -// Cluster specification level: se-1.2b-15-0131-02 - -// Client attributes -#define ZCL_TUNNELING_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_TUNNELING_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_CLOSE_TUNNEL_TIMEOUT_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_TUNNELING_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_TUNNELING_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Prepayment -// Cluster specification level: se-1.2b-15-0131-02 - -// Client attributes -#define ZCL_PREPAYMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_PREPAYMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_PAYMENT_CONTROL_CONFIGURATION_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_CREDIT_REMAINING_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_EMERGENCY_CREDIT_REMAINING_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_CREDIT_STATUS_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_CREDIT_REMAINING_TIMESTAMP_ATTRIBUTE_ID 0x0004 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_ACCUMULATED_DEBT_ATTRIBUTE_ID 0x0005 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_OVERALL_DEBT_CAP_ATTRIBUTE_ID 0x0006 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_EMERGENCY_CREDIT_LIMIT_ALLOWANCE_ATTRIBUTE_ID 0x0010 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_EMERGENCY_CREDIT_THRESHOLD_ATTRIBUTE_ID 0x0011 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TOTAL_CREDIT_ADDED_ATTRIBUTE_ID 0x0020 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_MAX_CREDIT_LIMIT_ATTRIBUTE_ID 0x0021 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_MAX_CREDIT_PER_TOP_UP_ATTRIBUTE_ID 0x0022 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_FRIENDLY_CREDIT_WARNING_ATTRIBUTE_ID 0x0030 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_LOW_CREDIT_WARNING_ATTRIBUTE_ID 0x0031 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_IHD_LOW_CREDIT_WARNING_ATTRIBUTE_ID 0x0032 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_INTERRUPT_SUSPEND_TIME_ATTRIBUTE_ID 0x0033 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_REMAINING_FRIENDLY_CREDIT_TIME_ATTRIBUTE_ID 0x0034 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_NEXT_FRIENDLY_CREDIT_PERIOD_ATTRIBUTE_ID 0x0035 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CUT_OFF_VALUE_ATTRIBUTE_ID 0x0040 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TOKEN_CARRIER_ID_ATTRIBUTE_ID 0x0080 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TOP_UP_DATE_TIME_1_ATTRIBUTE_ID 0x0100 // Ver.: always -#define ZCL_TOP_UP_AMOUNT_1_ATTRIBUTE_ID 0x0101 // Ver.: always -#define ZCL_TOP_UP_ORIGINATING_DEVICE_1_ATTRIBUTE_ID 0x0102 // Ver.: always -#define ZCL_TOP_UP_CODE_1_ATTRIBUTE_ID 0x0103 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TOP_UP_DATE_TIME_2_ATTRIBUTE_ID 0x0110 // Ver.: always -#define ZCL_TOP_UP_AMOUNT_2_ATTRIBUTE_ID 0x0111 // Ver.: always -#define ZCL_TOP_UP_ORIGINATING_DEVICE_2_ATTRIBUTE_ID 0x0112 // Ver.: always -#define ZCL_TOP_UP_CODE_2_ATTRIBUTE_ID 0x0113 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TOP_UP_DATE_TIME_3_ATTRIBUTE_ID 0x0120 // Ver.: always -#define ZCL_TOP_UP_AMOUNT_3_ATTRIBUTE_ID 0x0121 // Ver.: always -#define ZCL_TOP_UP_ORIGINATING_DEVICE_3_ATTRIBUTE_ID 0x0122 // Ver.: always -#define ZCL_TOP_UP_CODE_3_ATTRIBUTE_ID 0x0123 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TOP_UP_DATE_TIME_4_ATTRIBUTE_ID 0x0130 // Ver.: always -#define ZCL_TOP_UP_AMOUNT_4_ATTRIBUTE_ID 0x0131 // Ver.: always -#define ZCL_TOP_UP_ORIGINATING_DEVICE_4_ATTRIBUTE_ID 0x0132 // Ver.: always -#define ZCL_TOP_UP_CODE_4_ATTRIBUTE_ID 0x0133 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TOP_UP_DATE_TIME_5_ATTRIBUTE_ID 0x0140 // Ver.: always -#define ZCL_TOP_UP_AMOUNT_5_ATTRIBUTE_ID 0x0141 // Ver.: always -#define ZCL_TOP_UP_ORIGINATING_DEVICE_5_ATTRIBUTE_ID 0x0142 // Ver.: always -#define ZCL_TOP_UP_CODE_5_ATTRIBUTE_ID 0x0143 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_DEBT_LABEL_1_ATTRIBUTE_ID 0x0210 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_DEBT_AMOUNT_1_ATTRIBUTE_ID 0x0211 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_DEBT_RECOVERY_METHOD_1_ATTRIBUTE_ID 0x0212 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_DEBT_RECOVERY_START_TIME_1_ATTRIBUTE_ID 0x0213 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_DEBT_RECOVERY_COLLECTION_TIME_1_ATTRIBUTE_ID 0x0214 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_DEBT_RECOVERY_FREQUENCY_1_ATTRIBUTE_ID 0x0216 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_DEBT_RECOVERY_AMOUNT_1_ATTRIBUTE_ID 0x0217 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_DEBT_RECOVERY_TOP_UP_PERCENTAGE_1_ATTRIBUTE_ID 0x0219 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_DEBT_LABEL_2_ATTRIBUTE_ID 0x0220 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_DEBT_AMOUNT_2_ATTRIBUTE_ID 0x0221 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_DEBT_RECOVERY_METHOD_2_ATTRIBUTE_ID 0x0222 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_DEBT_RECOVERY_START_TIME_2_ATTRIBUTE_ID 0x0223 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_DEBT_RECOVERY_COLLECTION_TIME_2_ATTRIBUTE_ID 0x0224 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_DEBT_RECOVERY_FREQUENCY_2_ATTRIBUTE_ID 0x0226 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_DEBT_RECOVERY_AMOUNT_2_ATTRIBUTE_ID 0x0227 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_DEBT_RECOVERY_TOP_UP_PERCENTAGE_2_ATTRIBUTE_ID 0x0229 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_DEBT_LABEL_3_ATTRIBUTE_ID 0x0230 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_DEBT_AMOUNT_3_ATTRIBUTE_ID 0x0231 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_DEBT_RECOVERY_METHOD_3_ATTRIBUTE_ID 0x0232 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_DEBT_RECOVERY_START_TIME_3_ATTRIBUTE_ID 0x0233 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_DEBT_RECOVERY_COLLECTION_TIME_3_ATTRIBUTE_ID 0x0234 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_DEBT_RECOVERY_FREQUENCY_3_ATTRIBUTE_ID 0x0236 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_DEBT_RECOVERY_AMOUNT_3_ATTRIBUTE_ID 0x0237 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_DEBT_RECOVERY_TOP_UP_PERCENTAGE_3_ATTRIBUTE_ID 0x0239 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREPAYMENT_ALARM_STATUS_ATTRIBUTE_ID 0x0400 // Ver.: since se-1.2a-07-5356-21 -#define ZCL_PREPAY_GENERIC_ALARM_MASK_ATTRIBUTE_ID 0x0401 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREPAY_SWITCH_ALARM_MASK_ATTRIBUTE_ID 0x0402 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREPAY_EVENT_ALARM_MASK_ATTRIBUTE_ID 0x0403 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_HISTORICAL_COST_CONSUMPTION_FORMATTING_ATTRIBUTE_ID 0x0500 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CONSUMPTION_UNIT_OF_MEASUREMENT_ATTRIBUTE_ID 0x0501 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENCY_SCALING_FACTOR_ATTRIBUTE_ID 0x0502 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREPAYMANT_CURRENCY_ATTRIBUTE_ID 0x0503 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_DAY_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x051C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_DAY_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x051D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x051E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x051F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY_2_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0520 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY_2_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0521 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY_3_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0522 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY_3_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0523 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY_4_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0524 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY_4_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0525 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY_5_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0526 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY_5_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0527 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY_6_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0528 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY_6_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0529 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY_7_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x052A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY_7_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x052B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY_8_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x052C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY_8_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x052D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_WEEK_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0530 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_WEEK_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0531 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_WEEK_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0532 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_WEEK_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0533 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_WEEK_2_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0534 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_WEEK_2_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0535 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_WEEK_3_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0536 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_WEEK_3_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0537 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_WEEK_4_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0538 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_WEEK_4_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0539 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_WEEK_5_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x053A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_WEEK_5_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x053B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_MONTH_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0540 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_MONTH_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0541 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0542 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0543 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH_2_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0544 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH_2_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0545 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH_3_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0546 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH_3_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0547 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH_4_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0548 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH_4_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0549 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH_5_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x054A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH_5_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x054B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH_6_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x054C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH_6_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x054D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH_7_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x054E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH_7_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x054F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH_8_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0550 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH_8_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0551 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH_9_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0552 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH_9_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0553 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH_10_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0554 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH_10_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0555 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH_11_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0556 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH_11_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0557 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH_12_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0558 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH_12_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0559 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH_13_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x055A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH_13_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x055B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREPAYMENT_HISTORICAL_FREEZE_TIME_ATTRIBUTE_ID 0x055C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREPAYMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_PREPAYMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Energy Management -// Cluster specification level: se-1.2b-15-0131-02 - -// Client attributes -#define ZCL_ENERGY_MANAGEMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_ENERGY_MANAGEMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_LOAD_CONTROL_STATE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_CURRENT_EVENT_ID_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_CURRENT_EVENT_STATUS_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_CONFORMANCE_LEVEL_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_MINIMUM_OFF_TIME_ATTRIBUTE_ID 0x0004 // Ver.: always -#define ZCL_MINIMUM_ON_TIME_ATTRIBUTE_ID 0x0005 // Ver.: always -#define ZCL_MINIMUM_CYCLE_PERIOD_ATTRIBUTE_ID 0x0006 // Ver.: always -#define ZCL_ENERGY_MANAGEMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_ENERGY_MANAGEMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Calendar -// Cluster specification level: se-1.2b-15-0131-02 - -// Client attributes -#define ZCL_CALENDAR_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_CALENDAR_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_AUXILIARY_SWITCH_1_LABEL_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_AUXILIARY_SWITCH_2_LABEL_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_AUXILIARY_SWITCH_3_LABEL_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_AUXILIARY_SWITCH_4_LABEL_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_AUXILIARY_SWITCH_5_LABEL_ATTRIBUTE_ID 0x0004 // Ver.: always -#define ZCL_AUXILIARY_SWITCH_6_LABEL_ATTRIBUTE_ID 0x0005 // Ver.: always -#define ZCL_AUXILIARY_SWITCH_7_LABEL_ATTRIBUTE_ID 0x0006 // Ver.: always -#define ZCL_AUXILIARY_SWITCH_8_LABEL_ATTRIBUTE_ID 0x0007 // Ver.: always -#define ZCL_CALENDAR_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_CALENDAR_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Device Management -// Cluster specification level: se-1.2b-15-0131-02 - -// Client attributes -#define ZCL_PROVIDER_ID_CLIENT_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_RECEIVED_PROVIDER_ID_CLIENT_ATTRIBUTE_ID 0x0010 // Ver.: always -#define ZCL_TOU_TARIFF_ACTIVATION_ATTRIBUTE_ID 0x0100 // Ver.: always -#define ZCL_BLOCK_TARIFF_ACTIVATED_ATTRIBUTE_ID 0x0101 // Ver.: always -#define ZCL_BLOCK_TOU_TARIFF_ACTIVATED_ATTRIBUTE_ID 0x0102 // Ver.: always -#define ZCL_SINGLE_TARIFF_RATE_ACTIVATED_ATTRIBUTE_ID 0x0103 // Ver.: always -#define ZCL_ASYNCHRONOUS_BILLING_OCCURRED_ATTRIBUTE_ID 0x0104 // Ver.: always -#define ZCL_SYNCHRONOUS_BILLING_OCCURRED_ATTRIBUTE_ID 0x0105 // Ver.: always -#define ZCL_TARIFF_NOT_SUPPORTED_ATTRIBUTE_ID 0x0106 // Ver.: always -#define ZCL_PRICE_CLUSTER_NOT_FOUND_ATTRIBUTE_ID 0x0107 // Ver.: always -#define ZCL_CURRENCY_CHANGE_PASSIVE_ACTIVATED_ATTRIBUTE_ID 0x0108 // Ver.: always -#define ZCL_CURRENCY_CHANGE_PASSIVE_UPDATED_ATTRIBUTE_ID 0x0109 // Ver.: always -#define ZCL_PRICE_MATRIX_PASSIVE_ACTIVATED_ATTRIBUTE_ID 0x010A // Ver.: always -#define ZCL_PRICE_MATRIX_PASSIVE_UPDATED_ATTRIBUTE_ID 0x010B // Ver.: always -#define ZCL_TARIFF_CHANGE_PASSIVE_ACTIVATED_ATTRIBUTE_ID 0x010C // Ver.: always -#define ZCL_TARIFF_CHANGE_PASSIVE_UPDATED_ATTRIBUTE_ID 0x010D // Ver.: always -#define ZCL_PUBLISH_PRICE_RECEIVED_ATTRIBUTE_ID 0x01B0 // Ver.: always -#define ZCL_PUBLISH_PRICE_ACTIONED_ATTRIBUTE_ID 0x01B1 // Ver.: always -#define ZCL_PUBLISH_PRICE_CANCELLED_ATTRIBUTE_ID 0x01B2 // Ver.: always -#define ZCL_PUBLISH_PRICE_REJECTED_ATTRIBUTE_ID 0x01B3 // Ver.: always -#define ZCL_PUBLISH_TARIFF_INFO_RECEIVED_ATTRIBUTE_ID 0x01B4 // Ver.: always -#define ZCL_PUBLISH_TARIFF_INFO_ACTIONED_ATTRIBUTE_ID 0x01B5 // Ver.: always -#define ZCL_PUBLISH_TARIFF_INFO_CANCELLED_ATTRIBUTE_ID 0x01B6 // Ver.: always -#define ZCL_PUBLISH_TARIFF_INFO_REJECTED_ATTRIBUTE_ID 0x01B7 // Ver.: always -#define ZCL_PUBLISH_PRICE_MATRIX_RECEIVED_ATTRIBUTE_ID 0x01B8 // Ver.: always -#define ZCL_PUBLISH_PRICE_MATRIX_ACTIONED_ATTRIBUTE_ID 0x01B9 // Ver.: always -#define ZCL_PUBLISH_PRICE_MATRIX_CANCELLED_ATTRIBUTE_ID 0x01BA // Ver.: always -#define ZCL_PUBLISH_PRICE_MATRIX_REJECTED_ATTRIBUTE_ID 0x01BB // Ver.: always -#define ZCL_PUBLISH_BLOCK_THRESHOLDS_RECEIVED_ATTRIBUTE_ID 0x01BC // Ver.: always -#define ZCL_PUBLISH_BLOCK_THRESHOLDS_ACTIONED_ATTRIBUTE_ID 0x01BD // Ver.: always -#define ZCL_PUBLISH_BLOCK_THRESHOLDS_CANCELLED_ATTRIBUTE_ID 0x01BE // Ver.: always -#define ZCL_PUBLISH_BLOCK_THRESHOLDS_REJECTED_ATTRIBUTE_ID 0x01BF // Ver.: always -#define ZCL_PUBLISH_CALORIFIC_VALUE_RECEIVED_ATTRIBUTE_ID 0x01C0 // Ver.: always -#define ZCL_PUBLISH_CALORIFIC_VALUE_ACTIONED_ATTRIBUTE_ID 0x01C1 // Ver.: always -#define ZCL_PUBLISH_CALORIFIC_VALUE_CANCELLED_ATTRIBUTE_ID 0x01C2 // Ver.: always -#define ZCL_PUBLISH_CALORIFIC_VALUE_REJECTED_ATTRIBUTE_ID 0x01C3 // Ver.: always -#define ZCL_PUBLISH_CONVERSION_FACTOR_RECEIVED_ATTRIBUTE_ID 0x01C4 // Ver.: always -#define ZCL_PUBLISH_CONVERSION_FACTOR_ACTIONED_ATTRIBUTE_ID 0x01C5 // Ver.: always -#define ZCL_PUBLISH_CONVERSION_FACTOR_CANCELLED_ATTRIBUTE_ID 0x01C6 // Ver.: always -#define ZCL_PUBLISH_CONVERSION_FACTOR_REJECTED_ATTRIBUTE_ID 0x01C7 // Ver.: always -#define ZCL_PUBLISH_CO2_VALUE_RECEIVED_ATTRIBUTE_ID 0x01C8 // Ver.: always -#define ZCL_PUBLISH_CO2_VALUE_ACTIONED_ATTRIBUTE_ID 0x01C9 // Ver.: always -#define ZCL_PUBLISH_CO2_VALUE_CANCELLED_ATTRIBUTE_ID 0x01CA // Ver.: always -#define ZCL_PUBLISH_CO2_VALUE_REJECTED_ATTRIBUTE_ID 0x01CB // Ver.: always -#define ZCL_PUBLISH_CPP_EVENT_RECEIVED_ATTRIBUTE_ID 0x01CC // Ver.: always -#define ZCL_PUBLISH_CPP_EVENT_ACTIONED_ATTRIBUTE_ID 0x01CD // Ver.: always -#define ZCL_PUBLISH_CPP_EVENT_CANCELLED_ATTRIBUTE_ID 0x01CE // Ver.: always -#define ZCL_PUBLISH_CPP_EVENT_REJECTED_ATTRIBUTE_ID 0x01CF // Ver.: always -#define ZCL_PUBLISH_TIER_LABELS_RECEIVED_ATTRIBUTE_ID 0x01D0 // Ver.: always -#define ZCL_PUBLISH_TIER_LABELS_ACTIONED_ATTRIBUTE_ID 0x01D1 // Ver.: always -#define ZCL_PUBLISH_TIER_LABELS_CANCELLED_ATTRIBUTE_ID 0x01D2 // Ver.: always -#define ZCL_PUBLISH_TIER_LABELS_REJECTED_ATTRIBUTE_ID 0x01D3 // Ver.: always -#define ZCL_PUBLISH_BILLING_PERIOD_RECEIVED_ATTRIBUTE_ID 0x01D4 // Ver.: always -#define ZCL_PUBLISH_BILLING_PERIOD_ACTIONED_ATTRIBUTE_ID 0x01D5 // Ver.: always -#define ZCL_PUBLISH_BILLING_PERIOD_CANCELLED_ATTRIBUTE_ID 0x01D6 // Ver.: always -#define ZCL_PUBLISH_BILLING_PERIOD_REJECTED_ATTRIBUTE_ID 0x01D7 // Ver.: always -#define ZCL_PUBLISH_CONSOLIDATED_BILL_RECEIVED_ATTRIBUTE_ID 0x01D8 // Ver.: always -#define ZCL_PUBLISH_CONSOLIDATED_BILL_ACTIONED_ATTRIBUTE_ID 0x01D9 // Ver.: always -#define ZCL_PUBLISH_CONSOLIDATED_BILL_CANCELLED_ATTRIBUTE_ID 0x01DA // Ver.: always -#define ZCL_PUBLISH_CONSOLIDATED_BILL_REJECTED_ATTRIBUTE_ID 0x01DB // Ver.: always -#define ZCL_PUBLISH_BLOCK_PERIOD_RECEIVED_ATTRIBUTE_ID 0x01DC // Ver.: always -#define ZCL_PUBLISH_BLOCK_PERIOD_ACTIONED_ATTRIBUTE_ID 0x01DD // Ver.: always -#define ZCL_PUBLISH_BLOCK_PERIOD_CANCELLED_ATTRIBUTE_ID 0x01DE // Ver.: always -#define ZCL_PUBLISH_BLOCK_PERIOD_REJECTED_ATTRIBUTE_ID 0x01DF // Ver.: always -#define ZCL_PUBLISH_CREDIT_PAYMENT_INFO_RECEIVED_ATTRIBUTE_ID 0x01E0 // Ver.: always -#define ZCL_PUBLISH_CREDIT_PAYMENT_INFO_ACTIONED_ATTRIBUTE_ID 0x01E1 // Ver.: always -#define ZCL_PUBLISH_CREDIT_PAYMENT_INFO_CANCELLED_ATTRIBUTE_ID 0x01E2 // Ver.: always -#define ZCL_PUBLISH_CREDIT_PAYMENT_INFO_REJECTED_ATTRIBUTE_ID 0x01E3 // Ver.: always -#define ZCL_PUBLISH_CURRENCY_CONVERSION_RECEIVED_ATTRIBUTE_ID 0x01E4 // Ver.: always -#define ZCL_PUBLISH_CURRENCY_CONVERSION_ACTIONED_ATTRIBUTE_ID 0x01E5 // Ver.: always -#define ZCL_PUBLISH_CURRENCY_CONVERSION_CANCELLED_ATTRIBUTE_ID 0x01E6 // Ver.: always -#define ZCL_PUBLISH_CURRENCY_CONVERSION_REJECTED_ATTRIBUTE_ID 0x01E7 // Ver.: always -#define ZCL_CHECK_METER_ATTRIBUTE_ID 0x0200 // Ver.: always -#define ZCL_LOW_BATTERY_ATTRIBUTE_ID 0x0201 // Ver.: always -#define ZCL_TAMPER_DETECT_ATTRIBUTE_ID 0x0202 // Ver.: always -#define ZCL_DEVICE_MANAGEMENT_SUPPLY_STATUS_ATTRIBUTE_ID 0x0203 // Ver.: always -#define ZCL_SUPPLY_QUALITY_ATTRIBUTE_ID 0x0204 // Ver.: always -#define ZCL_LEAK_DETECT_ATTRIBUTE_ID 0x0205 // Ver.: always -#define ZCL_SERVICE_DISCONNECT_ATTRIBUTE_ID 0x0206 // Ver.: always -#define ZCL_REVERSE_FLOW_GENERAL_ATTRIBUTE_ID 0x0207 // Ver.: always -#define ZCL_METER_COVER_REMOVED_ATTRIBUTE_ID 0x0208 // Ver.: always -#define ZCL_METER_COVER_CLOSED_ATTRIBUTE_ID 0x0209 // Ver.: always -#define ZCL_STRONG_MAGNETIC_FIELD_ATTRIBUTE_ID 0x020A // Ver.: always -#define ZCL_NO_STRONG_MAGNETIC_FIELD_ATTRIBUTE_ID 0x020B // Ver.: always -#define ZCL_BATTERY_FAILURE_ATTRIBUTE_ID 0x020C // Ver.: always -#define ZCL_PROGRAM_MEMORY_ERROR_ATTRIBUTE_ID 0x020D // Ver.: always -#define ZCL_RAM_ERROR_ATTRIBUTE_ID 0x020E // Ver.: always -#define ZCL_NV_MEMORY_ERROR_ATTRIBUTE_ID 0x020F // Ver.: always -#define ZCL_LOW_VOLTAGE_L1_ATTRIBUTE_ID 0x0210 // Ver.: always -#define ZCL_HIGH_VOLTAGE_L1_ATTRIBUTE_ID 0x0211 // Ver.: always -#define ZCL_LOW_VOLTAGE_L2_ATTRIBUTE_ID 0x0212 // Ver.: always -#define ZCL_HIGH_VOLTAGE_L2_ATTRIBUTE_ID 0x0213 // Ver.: always -#define ZCL_LOW_VOLTAGE_L3_ATTRIBUTE_ID 0x0214 // Ver.: always -#define ZCL_HIGH_VOLTAGE_L3_ATTRIBUTE_ID 0x0215 // Ver.: always -#define ZCL_OVER_CURRENT_L1_ATTRIBUTE_ID 0x0216 // Ver.: always -#define ZCL_OVER_CURRENT_L2_ATTRIBUTE_ID 0x0217 // Ver.: always -#define ZCL_OVER_CURRENT_L3_ATTRIBUTE_ID 0x0218 // Ver.: always -#define ZCL_FREQUENCY_TOO_LOW_L1_ATTRIBUTE_ID 0x0219 // Ver.: always -#define ZCL_FREQUENCY_TOO_HIGH_L1_ATTRIBUTE_ID 0x021A // Ver.: always -#define ZCL_FREQUENCY_TOO_LOW_L2_ATTRIBUTE_ID 0x021B // Ver.: always -#define ZCL_FREQUENCY_TOO_HIGH_L2_ATTRIBUTE_ID 0x021C // Ver.: always -#define ZCL_FREQUENCY_TOO_LOW_L3_ATTRIBUTE_ID 0x021D // Ver.: always -#define ZCL_FREQUENCY_TOO_HIGH_L3_ATTRIBUTE_ID 0x021E // Ver.: always -#define ZCL_GROUND_FAULT_ATTRIBUTE_ID 0x021F // Ver.: always -#define ZCL_ELECTRIC_TAMPER_DETECT_ATTRIBUTE_ID 0x0220 // Ver.: always -#define ZCL_INCORRECT_POLARITY_ATTRIBUTE_ID 0x0221 // Ver.: always -#define ZCL_CURRENT_NO_VOLTAGE_ATTRIBUTE_ID 0x0222 // Ver.: always -#define ZCL_UNDER_VOLTAGE_ATTRIBUTE_ID 0x0223 // Ver.: always -#define ZCL_OVER_VOLTAGE_ATTRIBUTE_ID 0x0224 // Ver.: always -#define ZCL_NORMAL_VOLTAGE_ATTRIBUTE_ID 0x0225 // Ver.: always -#define ZCL_PF_BELOW_THRESHOLD_ATTRIBUTE_ID 0x0226 // Ver.: always -#define ZCL_PF_ABOVE_THRESHOLD_ATTRIBUTE_ID 0x0227 // Ver.: always -#define ZCL_TERMINAL_COVER_REMOVED_ATTRIBUTE_ID 0x0228 // Ver.: always -#define ZCL_TERMINAL_COVER_CLOSED_ATTRIBUTE_ID 0x0229 // Ver.: always -#define ZCL_BURST_DETECT_ATTRIBUTE_ID 0x0230 // Ver.: always -#define ZCL_PRESSURE_TOO_LOW_ATTRIBUTE_ID 0x0231 // Ver.: always -#define ZCL_PRESSURE_TOO_HIGH_ATTRIBUTE_ID 0x0232 // Ver.: always -#define ZCL_FLOW_SENSOR_COMMUNICATION_ERROR_ATTRIBUTE_ID 0x0233 // Ver.: always -#define ZCL_FLOW_SENSOR_MEASUREMENT_FAULT_ATTRIBUTE_ID 0x0234 // Ver.: always -#define ZCL_FLOW_SENSOR_REVERSE_FLOW_ATTRIBUTE_ID 0x0235 // Ver.: always -#define ZCL_FLOW_SENSOR_AIR_DETECT_ATTRIBUTE_ID 0x0236 // Ver.: always -#define ZCL_PIPE_EMPTY_ATTRIBUTE_ID 0x0237 // Ver.: always -#define ZCL_INLET_TEMP_SENSOR_FAULT_ATTRIBUTE_ID 0x0250 // Ver.: always -#define ZCL_OUTLET_TEMP_SENSOR_FAULT_ATTRIBUTE_ID 0x0251 // Ver.: always -#define ZCL_REVERSE_FLOW_ATTRIBUTE_ID 0x0260 // Ver.: always -#define ZCL_TILT_TAMPER_ATTRIBUTE_ID 0x0261 // Ver.: always -#define ZCL_BATTERY_COVER_REMOVED_ATTRIBUTE_ID 0x0262 // Ver.: always -#define ZCL_BATTERY_COVER_CLOSED_ATTRIBUTE_ID 0x0263 // Ver.: always -#define ZCL_EXCESS_FLOW_ATTRIBUTE_ID 0x0264 // Ver.: always -#define ZCL_TILT_TAMPER_ENABLED_ATTRIBUTE_ID 0x0265 // Ver.: always -#define ZCL_MEASUREMENT_SYSTEM_ERROR_ATTRIBUTE_ID 0x0270 // Ver.: always -#define ZCL_WATCHDOG_ERROR_ATTRIBUTE_ID 0x0271 // Ver.: always -#define ZCL_SUPPLY_DISCONNECT_FAILURE_ATTRIBUTE_ID 0x0272 // Ver.: always -#define ZCL_SUPPLY_CONNECT_FAILURE_ATTRIBUTE_ID 0x0273 // Ver.: always -#define ZCL_MEASUREMENT_SOFTWARE_CHANGED_ATTRIBUTE_ID 0x0274 // Ver.: always -#define ZCL_DST_ENABLED_ATTRIBUTE_ID 0x0275 // Ver.: always -#define ZCL_DST_DISABLED_ATTRIBUTE_ID 0x0276 // Ver.: always -#define ZCL_CLOCK_ADJ_BACKWARD_ATTRIBUTE_ID 0x0277 // Ver.: always -#define ZCL_CLOCK_ADJ_FORWARD_ATTRIBUTE_ID 0x0278 // Ver.: always -#define ZCL_CLOCK_INVALID_ATTRIBUTE_ID 0x0279 // Ver.: always -#define ZCL_COMMUNICATION_ERROR_HAN_ATTRIBUTE_ID 0x027A // Ver.: always -#define ZCL_COMMUNICATION_OK_HAN_ATTRIBUTE_ID 0x027B // Ver.: always -#define ZCL_METER_FRAUD_ATTEMPT_ATTRIBUTE_ID 0x027C // Ver.: always -#define ZCL_POWER_LOSS_ATTRIBUTE_ID 0x027D // Ver.: always -#define ZCL_UNUSUAL_HAN_TRAFFIC_ATTRIBUTE_ID 0x027E // Ver.: always -#define ZCL_UNEXPECTED_CLOCK_CHANGE_ATTRIBUTE_ID 0x027F // Ver.: always -#define ZCL_COMMS_USING_UNAUTHENTICATED_COMPONENT_ATTRIBUTE_ID 0x0280 // Ver.: always -#define ZCL_METERING_ERROR_REG_CLEAR_ATTRIBUTE_ID 0x0281 // Ver.: always -#define ZCL_METERING_ALARM_REG_CLEAR_ATTRIBUTE_ID 0x0282 // Ver.: always -#define ZCL_UNEXPECTED_HW_RESET_ATTRIBUTE_ID 0x0283 // Ver.: always -#define ZCL_UNEXPECTED_PROGRAM_EXECUTION_ATTRIBUTE_ID 0x0284 // Ver.: always -#define ZCL_LIMIT_THRESHOLD_EXCEEDED_ATTRIBUTE_ID 0x0285 // Ver.: always -#define ZCL_LIMIT_THRESHOLD_OK_ATTRIBUTE_ID 0x0286 // Ver.: always -#define ZCL_LIMIT_THRESHOLD_CHANGED_ATTRIBUTE_ID 0x0287 // Ver.: always -#define ZCL_MAXIMUM_DEMAND_EXCEEDED_ATTRIBUTE_ID 0x0288 // Ver.: always -#define ZCL_PROFILE_CLEARED_ATTRIBUTE_ID 0x0289 // Ver.: always -#define ZCL_LOAD_PROFILE_CLEARED_ATTRIBUTE_ID 0x028A // Ver.: always -#define ZCL_BATTERY_WARN_ATTRIBUTE_ID 0x028B // Ver.: always -#define ZCL_WRONG_SIGNATURE_ATTRIBUTE_ID 0x028C // Ver.: always -#define ZCL_NO_SIGNATURE_ATTRIBUTE_ID 0x028D // Ver.: always -#define ZCL_SIGNATURE_NOT_VALID_ATTRIBUTE_ID 0x028E // Ver.: always -#define ZCL_UNAUTHORISE_ACTION_FROM_HAN_ATTRIBUTE_ID 0x028F // Ver.: always -#define ZCL_FAST_POLLING_START_ATTRIBUTE_ID 0x0290 // Ver.: always -#define ZCL_FAST_POLLING_END_ATTRIBUTE_ID 0x0291 // Ver.: always -#define ZCL_METER_REPORTING_INTERVAL_CHANGED_ATTRIBUTE_ID 0x0292 // Ver.: always -#define ZCL_DISCONNECT_TO_LOAD_LIMIT_ATTRIBUTE_ID 0x0293 // Ver.: always -#define ZCL_METER_SUPPLY_STATUS_REGISTER_CHANGED_ATTRIBUTE_ID 0x0294 // Ver.: always -#define ZCL_METER_ALARM_STATUS_REGISTER_CHANGED_ATTRIBUTE_ID 0x0295 // Ver.: always -#define ZCL_EXTENDED_METER_ALARM_STATUS_REGISTER_CHANGED_ATTRIBUTE_ID 0x0296 // Ver.: always -#define ZCL_DATA_ACCESS_VIA_LOCAL_PORT_ATTRIBUTE_ID 0x0297 // Ver.: always -#define ZCL_CONFIGURE_MIRROR_SUCCESS_ATTRIBUTE_ID 0x0298 // Ver.: always -#define ZCL_CONFIGURE_MIRROR_FAILURE_ATTRIBUTE_ID 0x0299 // Ver.: always -#define ZCL_CONFIGURE_NOTIFICATION_FLAG_SCHEME_SUCCESS_ATTRIBUTE_ID 0x029A // Ver.: always -#define ZCL_CONFIGURE_NOTIFICATION_FLAG_SCHEME_FAILURE_ATTRIBUTE_ID 0x029B // Ver.: always -#define ZCL_CONFIGURE_NOTIFICATION_FLAGS_SUCCESS_ATTRIBUTE_ID 0x029C // Ver.: always -#define ZCL_CONFIGURE_NOTIFICATION_FLAGS_FAILURE_ATTRIBUTE_ID 0x029D // Ver.: always -#define ZCL_STAY_AWAKE_REQUEST_HAN_ATTRIBUTE_ID 0x029E // Ver.: always -#define ZCL_STAY_AWAKE_REQUEST_WAN_ATTRIBUTE_ID 0x029F // Ver.: always -#define ZCL_MANUFACTURER_SPECIFIC_A_ATTRIBUTE_ID 0x02B0 // Ver.: always -#define ZCL_MANUFACTURER_SPECIFIC_B_ATTRIBUTE_ID 0x02B1 // Ver.: always -#define ZCL_MANUFACTURER_SPECIFIC_C_ATTRIBUTE_ID 0x02B2 // Ver.: always -#define ZCL_MANUFACTURER_SPECIFIC_D_ATTRIBUTE_ID 0x02B3 // Ver.: always -#define ZCL_MANUFACTURER_SPECIFIC_E_ATTRIBUTE_ID 0x02B4 // Ver.: always -#define ZCL_MANUFACTURER_SPECIFIC_F_ATTRIBUTE_ID 0x02B5 // Ver.: always -#define ZCL_MANUFACTURER_SPECIFIC_G_ATTRIBUTE_ID 0x02B6 // Ver.: always -#define ZCL_MANUFACTURER_SPECIFIC_H_ATTRIBUTE_ID 0x02B7 // Ver.: always -#define ZCL_MANUFACTURER_SPECIFIC_I_ATTRIBUTE_ID 0x02B8 // Ver.: always -#define ZCL_GET_PROFILE_COMMAND_RECEIVED_ATTRIBUTE_ID 0x02C0 // Ver.: always -#define ZCL_GET_PROFILE_COMMAND_ACTIONED_ATTRIBUTE_ID 0x02C1 // Ver.: always -#define ZCL_GET_PROFILE_COMMAND_CANCELLED_ATTRIBUTE_ID 0x02C2 // Ver.: always -#define ZCL_GET_PROFILE_COMMAND_REJECTED_ATTRIBUTE_ID 0x02C3 // Ver.: always -#define ZCL_REQUEST_MIRROR_RESPONSE_COMMAND_RECEIVED_ATTRIBUTE_ID 0x02C4 // Ver.: always -#define ZCL_REQUEST_MIRROR_RESPONSE_COMMAND_ACTIONED_ATTRIBUTE_ID 0x02C5 // Ver.: always -#define ZCL_REQUEST_MIRROR_RESPONSE_COMMAND_CANCELLED_ATTRIBUTE_ID 0x02C6 // Ver.: always -#define ZCL_REQUEST_MIRROR_RESPONSE_COMMAND_REJECTED_ATTRIBUTE_ID 0x02C7 // Ver.: always -#define ZCL_MIRROR_REMOVED_COMMAND_RECEIVED_ATTRIBUTE_ID 0x02C8 // Ver.: always -#define ZCL_MIRROR_REMOVED_COMMAND_ACTIONED_ATTRIBUTE_ID 0x02C9 // Ver.: always -#define ZCL_MIRROR_REMOVED_COMMAND_CANCELLED_ATTRIBUTE_ID 0x02CA // Ver.: always -#define ZCL_MIRROR_REMOVED_COMMAND_REJECTED_ATTRIBUTE_ID 0x02CB // Ver.: always -#define ZCL_GET_SNAPSHOT_COMMAND_RECEIVED_ATTRIBUTE_ID 0x02CC // Ver.: always -#define ZCL_GET_SNAPSHOT_COMMAND_ACTIONED_ATTRIBUTE_ID 0x02CD // Ver.: always -#define ZCL_GET_SNAPSHOT_COMMAND_CANCELLED_ATTRIBUTE_ID 0x02CE // Ver.: always -#define ZCL_GET_SNAPSHOT_COMMAND_REJECTED_ATTRIBUTE_ID 0x02CF // Ver.: always -#define ZCL_TAKE_SNAPSHOT_COMMAND_RECEIVED_ATTRIBUTE_ID 0x02D0 // Ver.: always -#define ZCL_TAKE_SNAPSHOT_COMMAND_ACTIONED_ATTRIBUTE_ID 0x02D1 // Ver.: always -#define ZCL_TAKE_SNAPSHOT_COMMAND_CANCELLED_ATTRIBUTE_ID 0x02D2 // Ver.: always -#define ZCL_TAKE_SNAPSHOT_COMMAND_REJECTED_ATTRIBUTE_ID 0x02D3 // Ver.: always -#define ZCL_MIRROR_REPORT_ATTRIBUTE_RESPONSE_COMMAND_RECEIVED_ATTRIBUTE_ID 0x02D4 // Ver.: always -#define ZCL_MIRROR_REPORT_ATTRIBUTE_RESPONSE_COMMAND_ACTIONED_ATTRIBUTE_ID 0x02D5 // Ver.: always -#define ZCL_MIRROR_REPORT_ATTRIBUTE_RESPONSE_COMMAND_CANCELLED_ATTRIBUTE_ID 0x02D6 // Ver.: always -#define ZCL_MIRROR_REPORT_ATTRIBUTE_RESPONSE_COMMAND_REJECTED_ATTRIBUTE_ID 0x02D7 // Ver.: always -#define ZCL_SCHEDULE_SNAPSHOT_COMMAND_RECEIVED_ATTRIBUTE_ID 0x02D8 // Ver.: always -#define ZCL_SCHEDULE_SNAPSHOT_COMMAND_ACTIONED_ATTRIBUTE_ID 0x02D9 // Ver.: always -#define ZCL_SCHEDULE_SNAPSHOT_COMMAND_CANCELLED_ATTRIBUTE_ID 0x02DA // Ver.: always -#define ZCL_SCHEDULE_SNAPSHOT_COMMAND_REJECTED_ATTRIBUTE_ID 0x02DB // Ver.: always -#define ZCL_START_SAMPLING_COMMAND_RECEIVED_ATTRIBUTE_ID 0x02DC // Ver.: always -#define ZCL_START_SAMPLING_COMMAND_ACTIONED_ATTRIBUTE_ID 0x02DD // Ver.: always -#define ZCL_START_SAMPLING_COMMAND_CANCELLED_ATTRIBUTE_ID 0x02DE // Ver.: always -#define ZCL_START_SAMPLING_COMMAND_REJECTED_ATTRIBUTE_ID 0x02DF // Ver.: always -#define ZCL_GET_SAMPLED_DATA_COMMAND_RECEIVED_ATTRIBUTE_ID 0x02E0 // Ver.: always -#define ZCL_GET_SAMPLED_DATA_COMMAND_ACTIONED_ATTRIBUTE_ID 0x02E1 // Ver.: always -#define ZCL_GET_SAMPLED_DATA_COMMAND_CANCELLED_ATTRIBUTE_ID 0x02E2 // Ver.: always -#define ZCL_GET_SAMPLED_DATA_COMMAND_REJECTED_ATTRIBUTE_ID 0x02E3 // Ver.: always -#define ZCL_SUPPLY_ON_ATTRIBUTE_ID 0x02E4 // Ver.: always -#define ZCL_SUPPLY_ARMED_ATTRIBUTE_ID 0x02E5 // Ver.: always -#define ZCL_SUPPLY_OFF_ATTRIBUTE_ID 0x02E6 // Ver.: always -#define ZCL_DISCONNECTED_DUE_TO_TAMPER_DETECTED_ATTRIBUTE_ID 0x02E7 // Ver.: always -#define ZCL_MANUAL_DISCONNECT_ATTRIBUTE_ID 0x02E8 // Ver.: always -#define ZCL_MANUAL_CONNECT_ATTRIBUTE_ID 0x02E9 // Ver.: always -#define ZCL_REMOTE_DISCONNECTION_ATTRIBUTE_ID 0x02EA // Ver.: always -#define ZCL_REMOTE_CONNECT_ATTRIBUTE_ID 0x02EB // Ver.: always -#define ZCL_LOCAL_DISCONNECTION_ATTRIBUTE_ID 0x02EC // Ver.: always -#define ZCL_LOCAL_CONNECT_ATTRIBUTE_ID 0x02ED // Ver.: always -#define ZCL_CHANGE_SUPPLY_RECEIVED_ATTRIBUTE_ID 0x02EE // Ver.: always -#define ZCL_CHANGE_SUPPLY_ACTIONED_ATTRIBUTE_ID 0x02EF // Ver.: always -#define ZCL_CHANGE_SUPPLY_CANCELLED_ATTRIBUTE_ID 0x02F0 // Ver.: always -#define ZCL_CHANGE_SUPPLY_REJECTED_ATTRIBUTE_ID 0x02F1 // Ver.: always -#define ZCL_LOCAL_CHANGE_SUPPLY_RECEIVED_ATTRIBUTE_ID 0x02F2 // Ver.: always -#define ZCL_LOCAL_CHANGE_SUPPLY_ACTIONED_ATTRIBUTE_ID 0x02F3 // Ver.: always -#define ZCL_LOCAL_CHANGE_SUPPLY_CANCELLED_ATTRIBUTE_ID 0x02F4 // Ver.: always -#define ZCL_LOCAL_CHANGE_SUPPLY_REJECTED_ATTRIBUTE_ID 0x02F5 // Ver.: always -#define ZCL_PUBLISH_UNCONTROLLED_FLOW_THRESHOLD_RECEIVED_ATTRIBUTE_ID 0x02F6 // Ver.: always -#define ZCL_PUBLISH_UNCONTROLLED_FLOW_THRESHOLD_ACTIONED_ATTRIBUTE_ID 0x02F7 // Ver.: always -#define ZCL_PUBLISH_UNCONTROLLED_FLOW_THRESHOLD_CANCELLED_ATTRIBUTE_ID 0x02F8 // Ver.: always -#define ZCL_PUBLISH_UNCONTROLLED_FLOW_THRESHOLD_REJECTED_ATTRIBUTE_ID 0x02F9 // Ver.: always -#define ZCL_MESSAGE_CONFIRMATION_SENT_ATTRIBUTE_ID 0x0300 // Ver.: always -#define ZCL_DISPLAY_MESSAGE_RECEIVED_ATTRIBUTE_ID 0x03C0 // Ver.: always -#define ZCL_DISPLAY_MESSAGE_ACTIONED_ATTRIBUTE_ID 0x03C1 // Ver.: always -#define ZCL_DISPLAY_MESSAGE_CANCELLED_ATTRIBUTE_ID 0x03C2 // Ver.: always -#define ZCL_DISPLAY_MESSAGE_REJECTED_ATTRIBUTE_ID 0x03C3 // Ver.: always -#define ZCL_CANCEL_MESSAGE_RECEIVED_ATTRIBUTE_ID 0x03C4 // Ver.: always -#define ZCL_CANCEL_MESSAGE_ACTIONED_ATTRIBUTE_ID 0x03C5 // Ver.: always -#define ZCL_CANCEL_MESSAGE_CANCELLED_ATTRIBUTE_ID 0x03C6 // Ver.: always -#define ZCL_CANCEL_MESSAGE_REJECTED_ATTRIBUTE_ID 0x03C7 // Ver.: always -#define ZCL_LOW_CREDIT_ATTRIBUTE_ID 0x0400 // Ver.: always -#define ZCL_NO_CREDIT_ATTRIBUTE_ID 0x0401 // Ver.: always -#define ZCL_CREDIT_EXHAUSTED_ATTRIBUTE_ID 0x0402 // Ver.: always -#define ZCL_EMERGENCY_CREDIT_ENABLED_ATTRIBUTE_ID 0x0403 // Ver.: always -#define ZCL_EMERGENCY_CREDIT_EXHAUSTED_ATTRIBUTE_ID 0x0404 // Ver.: always -#define ZCL_PREPAY_IHD_LOW_CREDIT_WARNING_ATTRIBUTE_ID 0x0405 // Ver.: always -#define ZCL_PHYSICAL_ATTACK_ON_THE_PREPAY_METER_ATTRIBUTE_ID 0x0420 // Ver.: always -#define ZCL_ELECTRONIC_ATTACK_ON_THE_PREPAY_METER_ATTRIBUTE_ID 0x0421 // Ver.: always -#define ZCL_DISCOUNT_APPLIED_ATTRIBUTE_ID 0x0422 // Ver.: always -#define ZCL_CREDIT_ADJUSTMENT_ATTRIBUTE_ID 0x0423 // Ver.: always -#define ZCL_CREDIT_ADJUST_FAIL_ATTRIBUTE_ID 0x0424 // Ver.: always -#define ZCL_DEBT_ADJUSTMENT_ATTRIBUTE_ID 0x0425 // Ver.: always -#define ZCL_DEBT_ADJUST_FAIL_ATTRIBUTE_ID 0x0426 // Ver.: always -#define ZCL_MODE_CHANGE_ATTRIBUTE_ID 0x0427 // Ver.: always -#define ZCL_TOPUP_CODE_ERROR_ATTRIBUTE_ID 0x0428 // Ver.: always -#define ZCL_TOPUP_ALREADY_USED_ATTRIBUTE_ID 0x0429 // Ver.: always -#define ZCL_TOPUP_CODE_INVALID_ATTRIBUTE_ID 0x042A // Ver.: always -#define ZCL_TOPUP_ACCEPTED_VIA_REMOTE_ATTRIBUTE_ID 0x042B // Ver.: always -#define ZCL_TOPUP_ACCEPTED_VIA_MANUAL_ENTRY_ATTRIBUTE_ID 0x042C // Ver.: always -#define ZCL_FRIENDLY_CREDIT_IN_USE_ATTRIBUTE_ID 0x042D // Ver.: always -#define ZCL_FRIENDLY_CREDIT_END_WARNING_ATTRIBUTE_ID 0x042E // Ver.: always -#define ZCL_FRIENDLY_CREDIT_PERIOD_END_ATTRIBUTE_ID 0x042F // Ver.: always -#define ZCL_PREPAY_ERROR_REG_CLEAR_ATTRIBUTE_ID 0x0430 // Ver.: always -#define ZCL_PREPAY_ALARM_REG_CLEAR_ATTRIBUTE_ID 0x0431 // Ver.: always -#define ZCL_PREPAY_CLUSTER_NOT_FOUND_ATTRIBUTE_ID 0x0432 // Ver.: always -#define ZCL_TOPUP_VALUE_TOO_LARGE_ATTRIBUTE_ID 0x0433 // Ver.: always -#define ZCL_MODE_CREDIT_2_PREPAY_ATTRIBUTE_ID 0x0441 // Ver.: always -#define ZCL_MODE_PREPAY_2_CREDIT_ATTRIBUTE_ID 0x0442 // Ver.: always -#define ZCL_MODE_DEFAULT_ATTRIBUTE_ID 0x0443 // Ver.: always -#define ZCL_SELECT_AVAILABLE_EMERGENCY_CREDIT_RECEIVED_ATTRIBUTE_ID 0x04C0 // Ver.: always -#define ZCL_SELECT_AVAILABLE_EMERGENCY_CREDIT_ACTIONED_ATTRIBUTE_ID 0x04C1 // Ver.: always -#define ZCL_SELECT_AVAILABLE_EMERGENCY_CREDIT_CANCELLED_ATTRIBUTE_ID 0x04C2 // Ver.: always -#define ZCL_SELECT_AVAILABLE_EMERGENCY_CREDIT_REJECTED_ATTRIBUTE_ID 0x04C3 // Ver.: always -#define ZCL_CHANGE_DEBT_RECEIVED_ATTRIBUTE_ID 0x04C4 // Ver.: always -#define ZCL_CHANGE_DEBT_ACTIONED_ATTRIBUTE_ID 0x04C5 // Ver.: always -#define ZCL_CHANGE_DEBT_CANCELLED_ATTRIBUTE_ID 0x04C6 // Ver.: always -#define ZCL_CHANGE_DEBT_REJECTED_ATTRIBUTE_ID 0x04C7 // Ver.: always -#define ZCL_EMERGENCY_CREDIT_SETUP_RECEIVED_ATTRIBUTE_ID 0x04C8 // Ver.: always -#define ZCL_EMERGENCY_CREDIT_SETUP_ACTIONED_ATTRIBUTE_ID 0x04C9 // Ver.: always -#define ZCL_EMERGENCY_CREDIT_SETUP_CANCELLED_ATTRIBUTE_ID 0x04CA // Ver.: always -#define ZCL_EMERGENCY_CREDIT_SETUP_REJECTED_ATTRIBUTE_ID 0x04CB // Ver.: always -#define ZCL_CONSUMER_TOPUP_RECEIVED_ATTRIBUTE_ID 0x04CC // Ver.: always -#define ZCL_CONSUMER_TOPUP_ACTIONED_ATTRIBUTE_ID 0x04CD // Ver.: always -#define ZCL_CONSUMER_TOPUP_CANCELLED_ATTRIBUTE_ID 0x04CE // Ver.: always -#define ZCL_CONSUMER_TOPUP_REJECTED_ATTRIBUTE_ID 0x04CF // Ver.: always -#define ZCL_CREDIT_ADJUSTMENT_RECEIVED_ATTRIBUTE_ID 0x04D0 // Ver.: always -#define ZCL_CREDIT_ADJUSTMENT_ACTIONED_ATTRIBUTE_ID 0x04D1 // Ver.: always -#define ZCL_CREDIT_ADJUSTMENT_CANCELLED_ATTRIBUTE_ID 0x04D2 // Ver.: always -#define ZCL_CREDIT_ADJUSTMENT_REJECTED_ATTRIBUTE_ID 0x04D3 // Ver.: always -#define ZCL_CHANGE_PAYMENT_MODE_RECEIVED_ATTRIBUTE_ID 0x04D4 // Ver.: always -#define ZCL_CHANGE_PAYMENT_MODE_ACTIONED_ATTRIBUTE_ID 0x04D5 // Ver.: always -#define ZCL_CHANGE_PAYMENT_MODE_CANCELLED_ATTRIBUTE_ID 0x04D6 // Ver.: always -#define ZCL_CHANGE_PAYMENT_MODE_REJECTED_ATTRIBUTE_ID 0x04D7 // Ver.: always -#define ZCL_GET_PREPAY_SNAPSHOT_RECEIVED_ATTRIBUTE_ID 0x04D8 // Ver.: always -#define ZCL_GET_PREPAY_SNAPSHOT_ACTIONED_ATTRIBUTE_ID 0x04D9 // Ver.: always -#define ZCL_GET_PREPAY_SNAPSHOT_CANCELLED_ATTRIBUTE_ID 0x04DA // Ver.: always -#define ZCL_GET_PREPAY_SNAPSHOT_REJECTED_ATTRIBUTE_ID 0x04DB // Ver.: always -#define ZCL_GET_TOPUP_LOG_RECEIVED_ATTRIBUTE_ID 0x04DC // Ver.: always -#define ZCL_GET_TOPUP_LOG_ACTIONED_ATTRIBUTE_ID 0x04DD // Ver.: always -#define ZCL_GET_TOPUP_LOG_CANCELLED_ATTRIBUTE_ID 0x04DE // Ver.: always -#define ZCL_GET_TOPUP_LOG_REJECTED_ATTRIBUTE_ID 0x04DF // Ver.: always -#define ZCL_SET_LOW_CREDIT_WARNING_LEVEL_RECEIVED_ATTRIBUTE_ID 0x04E0 // Ver.: always -#define ZCL_SET_LOW_CREDIT_WARNING_LEVEL_ACTIONED_ATTRIBUTE_ID 0x04E1 // Ver.: always -#define ZCL_SET_LOW_CREDIT_WARNING_LEVEL_CANCELLED_ATTRIBUTE_ID 0x04E2 // Ver.: always -#define ZCL_SET_LOW_CREDIT_WARNING_LEVEL_REJECTED_ATTRIBUTE_ID 0x04E3 // Ver.: always -#define ZCL_GET_DEBT_REPAY_LOG_RECEIVED_ATTRIBUTE_ID 0x04E4 // Ver.: always -#define ZCL_GET_DEBT_REPAY_LOG_ACTIONED_ATTRIBUTE_ID 0x04E5 // Ver.: always -#define ZCL_GET_DEBT_REPAY_LOG_CANCELLED_ATTRIBUTE_ID 0x04E6 // Ver.: always -#define ZCL_GET_DEBT_REPAY_LOG_REJECTED_ATTRIBUTE_ID 0x04E7 // Ver.: always -#define ZCL_SET_MAXIMUM_CREDIT_LIMIT_RECEIVED_ATTRIBUTE_ID 0x04E8 // Ver.: always -#define ZCL_SET_MAXIMUM_CREDIT_LIMIT_ACTIONED_ATTRIBUTE_ID 0x04E9 // Ver.: always -#define ZCL_SET_MAXIMUM_CREDIT_LIMIT_CANCELLED_ATTRIBUTE_ID 0x04EA // Ver.: always -#define ZCL_SET_MAXIMUM_CREDIT_LIMIT_REJECTED_ATTRIBUTE_ID 0x04EB // Ver.: always -#define ZCL_SET_OVERALL_DEBT_CAP_RECEIVED_ATTRIBUTE_ID 0x04EC // Ver.: always -#define ZCL_SET_OVERALL_DEBT_CAP_ACTIONED_ATTRIBUTE_ID 0x04ED // Ver.: always -#define ZCL_SET_OVERALL_DEBT_CAP_CANCELLED_ATTRIBUTE_ID 0x04EE // Ver.: always -#define ZCL_SET_OVERALL_DEBT_CAP_REJECTED_ATTRIBUTE_ID 0x04EF // Ver.: always -#define ZCL_CALENDAR_CLUSTER_NOT_FOUND_ATTRIBUTE_ID 0x0500 // Ver.: always -#define ZCL_CALENDAR_CHANGE_PASSIVE_ACTIVATED_ATTRIBUTE_ID 0x0501 // Ver.: always -#define ZCL_CALENDAR_CHANGE_PASSIVE_UPDATED_ATTRIBUTE_ID 0x0502 // Ver.: always -#define ZCL_PUBLISH_CALENDAR_RECEIVED_ATTRIBUTE_ID 0x05C0 // Ver.: always -#define ZCL_PUBLISH_CALENDAR_ACTIONED_ATTRIBUTE_ID 0x05C1 // Ver.: always -#define ZCL_PUBLISH_CALENDAR_CANCELLED_ATTRIBUTE_ID 0x05C2 // Ver.: always -#define ZCL_PUBLISH_CALENDAR_REJECTED_ATTRIBUTE_ID 0x05C3 // Ver.: always -#define ZCL_PUBLISH_DAY_PROFILE_RECEIVED_ATTRIBUTE_ID 0x05C4 // Ver.: always -#define ZCL_PUBLISH_DAY_PROFILE_ACTIONED_ATTRIBUTE_ID 0x05C5 // Ver.: always -#define ZCL_PUBLISH_DAY_PROFILE_CANCELLED_ATTRIBUTE_ID 0x05C6 // Ver.: always -#define ZCL_PUBLISH_DAY_PROFILE_REJECTED_ATTRIBUTE_ID 0x05C7 // Ver.: always -#define ZCL_PUBLISH_WEEK_PROFILE_RECEIVED_ATTRIBUTE_ID 0x05C8 // Ver.: always -#define ZCL_PUBLISH_WEEK_PROFILE_ACTIONED_ATTRIBUTE_ID 0x05C9 // Ver.: always -#define ZCL_PUBLISH_WEEK_PROFILE_CANCELLED_ATTRIBUTE_ID 0x05CA // Ver.: always -#define ZCL_PUBLISH_WEEK_PROFILE_REJECTED_ATTRIBUTE_ID 0x05CB // Ver.: always -#define ZCL_PUBLISH_SEASONS_RECEIVED_ATTRIBUTE_ID 0x05CC // Ver.: always -#define ZCL_PUBLISH_SEASONS_ACTIONED_ATTRIBUTE_ID 0x05CD // Ver.: always -#define ZCL_PUBLISH_SEASONS_CANCELLED_ATTRIBUTE_ID 0x05CE // Ver.: always -#define ZCL_PUBLISH_SEASONS_REJECTED_ATTRIBUTE_ID 0x05CF // Ver.: always -#define ZCL_PUBLISH_SPECIAL_DAYS_RECEIVED_ATTRIBUTE_ID 0x05D0 // Ver.: always -#define ZCL_PUBLISH_SPECIAL_DAYS_ACTIONED_ATTRIBUTE_ID 0x05D1 // Ver.: always -#define ZCL_PUBLISH_SPECIAL_DAYS_CANCELLED_ATTRIBUTE_ID 0x05D2 // Ver.: always -#define ZCL_PUBLISH_SPECIAL_DAYS_REJECTED_ATTRIBUTE_ID 0x05D3 // Ver.: always -#define ZCL_PASSWORD_1_CHANGE_ATTRIBUTE_ID 0x0600 // Ver.: always -#define ZCL_PASSWORD_2_CHANGE_ATTRIBUTE_ID 0x0601 // Ver.: always -#define ZCL_PASSWORD_3_CHANGE_ATTRIBUTE_ID 0x0602 // Ver.: always -#define ZCL_PASSWORD_4_CHANGE_ATTRIBUTE_ID 0x0603 // Ver.: always -#define ZCL_EVENT_LOG_CLEARED_ATTRIBUTE_ID 0x0604 // Ver.: always -#define ZCL_ZIGBEE_APS_TIMEOUT_ATTRIBUTE_ID 0x0610 // Ver.: always -#define ZCL_ZIGBEE_IEEE_TRANSMISSION_FAILURE_OVER_THRESHOLD_ATTRIBUTE_ID 0x0611 // Ver.: always -#define ZCL_ZIGBEE_IEEE_FRAME_CHECK_SEQUENCE_THRESHOLD_ATTRIBUTE_ID 0x0612 // Ver.: always -#define ZCL_ERROR_CERTIFICATE_ATTRIBUTE_ID 0x0613 // Ver.: always -#define ZCL_ERROR_SIGNATURE_ATTRIBUTE_ID 0x0614 // Ver.: always -#define ZCL_ERROR_PROGRAM_STORAGE_ATTRIBUTE_ID 0x0615 // Ver.: always -#define ZCL_PUBLISH_COT_RECEIVED_ATTRIBUTE_ID 0x06C0 // Ver.: always -#define ZCL_PUBLISH_COT_ACTIONED_ATTRIBUTE_ID 0x06C1 // Ver.: always -#define ZCL_PUBLISH_COT_CANCELLED_ATTRIBUTE_ID 0x06C2 // Ver.: always -#define ZCL_PUBLISH_COT_REJECTED_ATTRIBUTE_ID 0x06C3 // Ver.: always -#define ZCL_PUBLISH_COS_RECEIVED_ATTRIBUTE_ID 0x06C4 // Ver.: always -#define ZCL_PUBLISH_COS_ACTIONED_ATTRIBUTE_ID 0x06C5 // Ver.: always -#define ZCL_PUBLISH_COS_CANCELLED_ATTRIBUTE_ID 0x06C6 // Ver.: always -#define ZCL_PUBLISH_COS_REJECTED_ATTRIBUTE_ID 0x06C7 // Ver.: always -#define ZCL_CHANGE_PASSWORD_RECEIVED_ATTRIBUTE_ID 0x06C8 // Ver.: always -#define ZCL_CHANGE_PASSWORD_ACTIONED_ATTRIBUTE_ID 0x06C9 // Ver.: always -#define ZCL_CHANGE_PASSWORD_CANCELLED_ATTRIBUTE_ID 0x06CA // Ver.: always -#define ZCL_CHANGE_PASSWORD_REJECTED_ATTRIBUTE_ID 0x06CB // Ver.: always -#define ZCL_SET_EVENT_CONFIGURATION_RECEIVED_ATTRIBUTE_ID 0x06CC // Ver.: always -#define ZCL_SET_EVENT_CONFIGURATION_ACTIONED_ATTRIBUTE_ID 0x06CD // Ver.: always -#define ZCL_SET_EVENT_CONFIGURATION_CANCELLED_ATTRIBUTE_ID 0x06CE // Ver.: always -#define ZCL_SET_EVENT_CONFIGURATION_REJECTED_ATTRIBUTE_ID 0x06CF // Ver.: always -#define ZCL_UPDATE_SITE_ID_RECEIVED_ATTRIBUTE_ID 0x06D0 // Ver.: always -#define ZCL_UPDATE_SITE_ID_ACTIONED_ATTRIBUTE_ID 0x06D1 // Ver.: always -#define ZCL_UPDATE_SITE_ID_CANCELLED_ATTRIBUTE_ID 0x06D2 // Ver.: always -#define ZCL_UPDATE_SITE_ID_REJECTED_ATTRIBUTE_ID 0x06D3 // Ver.: always -#define ZCL_UPDATE_CIN_RECEIVED_ATTRIBUTE_ID 0x06D4 // Ver.: always -#define ZCL_UPDATE_CIN_ACTIONED_ATTRIBUTE_ID 0x06D5 // Ver.: always -#define ZCL_UPDATE_CIN_CANCELLED_ATTRIBUTE_ID 0x06D6 // Ver.: always -#define ZCL_UPDATE_CIN_REJECTED_ATTRIBUTE_ID 0x06D7 // Ver.: always -#define ZCL_TUNNELING_CLUSTER_NOT_FOUND_ATTRIBUTE_ID 0x0700 // Ver.: always -#define ZCL_UNSUPPORTED_PROTOCOL_ATTRIBUTE_ID 0x0701 // Ver.: always -#define ZCL_INCORRECT_PROTOCOL_ATTRIBUTE_ID 0x0702 // Ver.: always -#define ZCL_REQUEST_TUNNEL_COMMAND_RECEIVED_ATTRIBUTE_ID 0x07C0 // Ver.: always -#define ZCL_REQUEST_TUNNEL_COMMAND_REJECTED_ATTRIBUTE_ID 0x07C1 // Ver.: always -#define ZCL_REQUEST_TUNNEL_COMMAND_GENERATED_ATTRIBUTE_ID 0x07C2 // Ver.: always -#define ZCL_CLOSE_TUNNEL_COMMAND_RECEIVED_ATTRIBUTE_ID 0x07C3 // Ver.: always -#define ZCL_CLOSE_TUNNEL_COMMAND_REJECTED_ATTRIBUTE_ID 0x07C4 // Ver.: always -#define ZCL_CLOSE_TUNNEL_COMMAND_GENERATED_ATTRIBUTE_ID 0x07C5 // Ver.: always -#define ZCL_TRANSFER_DATA_COMMAND_RECEIVED_ATTRIBUTE_ID 0x07C6 // Ver.: always -#define ZCL_TRANSFER_DATA_COMMAND_REJECTED_ATTRIBUTE_ID 0x07C7 // Ver.: always -#define ZCL_TRANSFER_DATA_COMMAND_GENERATED_ATTRIBUTE_ID 0x07C8 // Ver.: always -#define ZCL_TRANSFER_DATA_ERROR_COMMAND_RECEIVED_ATTRIBUTE_ID 0x07C9 // Ver.: always -#define ZCL_TRANSFER_DATA_ERROR_COMMAND_REJECTED_ATTRIBUTE_ID 0x07CA // Ver.: always -#define ZCL_TRANSFER_DATA_ERROR_COMMAND_GENERATED_ATTRIBUTE_ID 0x07CB // Ver.: always -#define ZCL_ACK_TRANSFER_DATA_COMMAND_RECEIVED_ATTRIBUTE_ID 0x07CC // Ver.: always -#define ZCL_ACK_TRANSFER_DATA_COMMAND_REJECTED_ATTRIBUTE_ID 0x07CD // Ver.: always -#define ZCL_ACK_TRANSFER_DATA_COMMAND_GENERATED_ATTRIBUTE_ID 0x07CE // Ver.: always -#define ZCL_READY_DATA_COMMAND_RECEIVED_ATTRIBUTE_ID 0x07CF // Ver.: always -#define ZCL_READY_DATA_COMMAND_REJECTED_ATTRIBUTE_ID 0x07D0 // Ver.: always -#define ZCL_READY_DATA_COMMAND_GENERATED_ATTRIBUTE_ID 0x07D1 // Ver.: always -#define ZCL_GET_SUPPORTED_TUNNEL_PROTOCOLS_COMMAND_RECEIVED_ATTRIBUTE_ID 0x07D2 // Ver.: always -#define ZCL_GET_SUPPORTED_TUNNEL_PROTOCOLS_COMMAND_REJECTED_ATTRIBUTE_ID 0x07D3 // Ver.: always -#define ZCL_GET_SUPPORTED_TUNNEL_PROTOCOLS_COMMAND_GENERATED_ATTRIBUTE_ID 0x07D4 // Ver.: always -#define ZCL_FIRMWARE_READY_FOR_ACTIVATION_ATTRIBUTE_ID 0x0800 // Ver.: always -#define ZCL_FIRMWARE_ACTIVATED_ATTRIBUTE_ID 0x0801 // Ver.: always -#define ZCL_FIRMWARE_ACTIVATION_FAILURE_ATTRIBUTE_ID 0x0802 // Ver.: always -#define ZCL_PATCH_READY_FOR_ACTIVATION_ATTRIBUTE_ID 0x0803 // Ver.: always -#define ZCL_PATCH_ACTIVATED_ATTRIBUTE_ID 0x0804 // Ver.: always -#define ZCL_PATCH_FAILURE_ATTRIBUTE_ID 0x0805 // Ver.: always -#define ZCL_IMAGE_NOTIFY_COMMAND_RECEIVED_ATTRIBUTE_ID 0x08C0 // Ver.: always -#define ZCL_IMAGE_NOTIFY_COMMAND_REJECTED_ATTRIBUTE_ID 0x08C1 // Ver.: always -#define ZCL_QUERY_NEXT_IMAGE_REQUEST_GENERATED_ATTRIBUTE_ID 0x08C2 // Ver.: always -#define ZCL_QUERY_NEXT_IMAGE_RESPONSE_RECEIVED_ATTRIBUTE_ID 0x08C3 // Ver.: always -#define ZCL_QUERY_NEXT_IMAGE_RESPONSE_REJECTED_ATTRIBUTE_ID 0x08C4 // Ver.: always -#define ZCL_IMAGE_BLOCK_REQUEST_GENERATED_ATTRIBUTE_ID 0x08C5 // Ver.: always -#define ZCL_IMAGE_PAGE_REQUEST_GENERATED_ATTRIBUTE_ID 0x08C6 // Ver.: always -#define ZCL_IMAGE_BLOCK_RESPONSE_RECEIVED_ATTRIBUTE_ID 0x08C7 // Ver.: always -#define ZCL_IMAGE_BLOCK_RESPONSE_REJECTED_ATTRIBUTE_ID 0x08C8 // Ver.: always -#define ZCL_UPGRADE_END_REQUEST_GENERATED_ATTRIBUTE_ID 0x08C9 // Ver.: always -#define ZCL_UPGRADE_END_RESPONSE_RECEIVED_ATTRIBUTE_ID 0x08CA // Ver.: always -#define ZCL_UPGRADE_END_RESPONSE_REJECTED_ATTRIBUTE_ID 0x08CB // Ver.: always -#define ZCL_QUERY_SPECIFIC_FILE_REQUEST_GENERATED_ATTRIBUTE_ID 0x08CC // Ver.: always -#define ZCL_QUERY_SPECIFIC_FILE_RESPONSE_RECEIVED_ATTRIBUTE_ID 0x08CD // Ver.: always -#define ZCL_QUERY_SPECIFIC_FILE_RESPONSE_REJECTED_ATTRIBUTE_ID 0x08CE // Ver.: always -#define ZCL_DEVICE_MANAGEMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_DEVICE_MANAGEMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_PROVIDER_ID_SERVER_ATTRIBUTE_ID 0x0100 // Ver.: always -#define ZCL_PROVIDER_NAME_ATTRIBUTE_ID 0x0101 // Ver.: always -#define ZCL_PROVIDER_CONTACT_DETAILS_ATTRIBUTE_ID 0x0102 // Ver.: always -#define ZCL_PROPOSED_PROVIDER_ID_ATTRIBUTE_ID 0x0110 // Ver.: always -#define ZCL_PROPOSED_PROVIDER_NAME_ATTRIBUTE_ID 0x0111 // Ver.: always -#define ZCL_PROPOSED_PROVIDER_CHANGE_DATE_TIME_ATTRIBUTE_ID 0x0112 // Ver.: always -#define ZCL_PROPOSED_PROVIDER_CHANGE_CONTROL_ATTRIBUTE_ID 0x0113 // Ver.: always -#define ZCL_RECEIVED_PROVIDER_ID_SERVER_ATTRIBUTE_ID 0x0120 // Ver.: always -#define ZCL_RECEIVED_PROVIDER_NAME_ATTRIBUTE_ID 0x0121 // Ver.: always -#define ZCL_RECEIVED_PROVIDER_CONTACT_DETAILS_ATTRIBUTE_ID 0x0122 // Ver.: always -#define ZCL_RECEIVED_PROPOSED_PROVIDER_ID_ATTRIBUTE_ID 0x0130 // Ver.: always -#define ZCL_RECEIVED_PROPOSED_PROVIDER_NAME_ATTRIBUTE_ID 0x0131 // Ver.: always -#define ZCL_RECEIVED_PROPOSED_PROVIDER_CHANGE_DATE_TIME_ATTRIBUTE_ID 0x0132 // Ver.: always -#define ZCL_RECEIVED_PROPOSED_PROVIDER_CHANGE_CONTROL_ATTRIBUTE_ID 0x0133 // Ver.: always -#define ZCL_CHANGE_OF_TENANCY_UPDATE_DATE_TIME_ATTRIBUTE_ID 0x0200 // Ver.: always -#define ZCL_PROPOSED_TENANCY_CHANGE_CONTROL_ATTRIBUTE_ID 0x0201 // Ver.: always -#define ZCL_WAN_STATUS_ATTRIBUTE_ID 0x0300 // Ver.: always -#define ZCL_LOW_MEDIUM_THRESHOLD_ATTRIBUTE_ID 0x0400 // Ver.: always -#define ZCL_MEDIUM_HIGH_THRESHOLD_ATTRIBUTE_ID 0x0401 // Ver.: always -#define ZCL_DEVICE_MANAGEMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_DEVICE_MANAGEMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Events -// Cluster specification level: se-1.2b-15-0131-02 - -// Client attributes -#define ZCL_EVENTS_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_EVENTS_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_EVENTS_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_EVENTS_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: MDU Pairing -// Cluster specification level: se-1.2b-15-0131-02 - -// Client attributes -#define ZCL_MDU_PAIRING_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_MDU_PAIRING_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_MDU_PAIRING_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_MDU_PAIRING_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Sub-GHz -// Cluster specification level: se-1.2b-15-0131-02 - -// Client attributes -#define ZCL_SUB_GHZ_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_SUB_GHZ_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_SUB_GHZ_CLUSTER_CHANNEL_CHANGE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_SUB_GHZ_CLUSTER_PAGE_28_CHANNEL_MASK_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_SUB_GHZ_CLUSTER_PAGE_29_CHANNEL_MASK_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_SUB_GHZ_CLUSTER_PAGE_30_CHANNEL_MASK_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_SUB_GHZ_CLUSTER_PAGE_31_CHANNEL_MASK_ATTRIBUTE_ID 0x0004 // Ver.: always -#define ZCL_SUB_GHZ_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_SUB_GHZ_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Key Establishment -// Cluster specification level: zcl-7.0-07-5123-07 - -// Client attributes -#define ZCL_KEY_ESTABLISHMENT_SUITE_CLIENT_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_KEY_ESTABLISHMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_KEY_ESTABLISHMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_KEY_ESTABLISHMENT_SUITE_SERVER_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_KEY_ESTABLISHMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_KEY_ESTABLISHMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Information -// Cluster specification level: ta-1.0-07-5307-07 - -// Client attributes -#define ZCL_INFORMATION_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_INFORMATION_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_NODE_DESCRIPTION_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_DELIVERY_ENABLE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_PUSH_INFORMATION_TIMER_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_ENABLE_SECURE_CONFIGURATION_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_NUMBER_OF_CONTENTS_ATTRIBUTE_ID 0x0010 // Ver.: always -#define ZCL_CONTENT_ROOT_ID_ATTRIBUTE_ID 0x0011 // Ver.: always -#define ZCL_INFORMATION_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_INFORMATION_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Data Sharing -// Cluster specification level: ta-1.0-07-5307-07 - -// Client attributes -#define ZCL_DATA_SHARING_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_DATA_SHARING_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_DEVICE_NAME_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_DEVICE_DESCRIPTION_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_DATA_SHARING_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_DATA_SHARING_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Gaming -// Cluster specification level: ta-1.0-07-5307-07 - -// Client attributes -#define ZCL_GAMING_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_GAMING_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_PLAYER_NAME_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_NB_OF_GAMES_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_LIST_OF_GAMES_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_ANNOUNCEMENT_INTERVAL_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_GAME_ID_ATTRIBUTE_ID 0x0010 // Ver.: always -#define ZCL_NAME_OF_GAME_ATTRIBUTE_ID 0x0011 // Ver.: always -#define ZCL_GAME_MASTER_ATTRIBUTE_ID 0x0012 // Ver.: always -#define ZCL_GAMING_STATUS_ATTRIBUTE_ID 0x0013 // Ver.: always -#define ZCL_CURRENT_NB_OF_PLAYERS_ATTRIBUTE_ID 0x0014 // Ver.: always -#define ZCL_LIST_OF_CURRENT_PLAYERS_ATTRIBUTE_ID 0x0015 // Ver.: always -#define ZCL_MAX_NB_OF_PLAYERS_ATTRIBUTE_ID 0x0016 // Ver.: always -#define ZCL_MIN_NB_OF_PLAYERS_ATTRIBUTE_ID 0x0017 // Ver.: always -#define ZCL_CURRENT_GAME_LEVEL_ATTRIBUTE_ID 0x0018 // Ver.: always -#define ZCL_SCORE_OF_THIS_PLAYER_ATTRIBUTE_ID 0x0019 // Ver.: always -#define ZCL_TIMER1_ATTRIBUTE_ID 0x001A // Ver.: always -#define ZCL_TIMER2_ATTRIBUTE_ID 0x001B // Ver.: always -#define ZCL_TIMER3_ATTRIBUTE_ID 0x001C // Ver.: always -#define ZCL_COUNTER1_ATTRIBUTE_ID 0x001D // Ver.: always -#define ZCL_COUNTER2_ATTRIBUTE_ID 0x001E // Ver.: always -#define ZCL_DOWNLOADABLE_ATTRIBUTE_ID 0x001F // Ver.: always -#define ZCL_GAMING_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_GAMING_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Data Rate Control -// Cluster specification level: ta-1.0-07-5307-07 - -// Client attributes -#define ZCL_DATA_RATE_CONTROL_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_DATA_RATE_CONTROL_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_AVERAGE_LATENCY_REQUIREMENT_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_MAX_LATENCY_REQUIREMENT_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_BANDWIDTH_REQUIREMENT_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_DATA_RATE_CONTROL_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_DATA_RATE_CONTROL_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Voice over ZigBee -// Cluster specification level: ta-1.0-07-5307-07 - -// Client attributes -#define ZCL_VOICE_OVER_ZIGBEE_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_VOICE_OVER_ZIGBEE_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_CODEC_TYPE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_SAMPLING_FREQUENCY_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_CODEC_RATE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_ESTABLISHMENT_TIMEOUT_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_CODEC_TYPE_SUB1_ATTRIBUTE_ID 0x0004 // Ver.: always -#define ZCL_CODEC_TYPE_SUB2_ATTRIBUTE_ID 0x0005 // Ver.: always -#define ZCL_CODEC_TYPE_SUB3_ATTRIBUTE_ID 0x0006 // Ver.: always -#define ZCL_COMPRESSION_TYPE_ATTRIBUTE_ID 0x0007 // Ver.: always -#define ZCL_COMPRESSION_RATE_ATTRIBUTE_ID 0x0008 // Ver.: always -#define ZCL_OPTION_FLAGS_ATTRIBUTE_ID 0x0009 // Ver.: always -#define ZCL_THRESHOLD_ATTRIBUTE_ID 0x000A // Ver.: always -#define ZCL_VOICE_OVER_ZIGBEE_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_VOICE_OVER_ZIGBEE_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Chatting -// Cluster specification level: ta-1.0-07-5307-07 - -// Client attributes -#define ZCL_CHATTING_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_CHATTING_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_U_ID_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_NICKNAME_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_C_ID_ATTRIBUTE_ID 0x0010 // Ver.: always -#define ZCL_NAME_ATTRIBUTE_ID 0x0011 // Ver.: always -#define ZCL_ENABLE_ADD_CHAT_ATTRIBUTE_ID 0x0020 // Ver.: always -#define ZCL_CHATTING_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_CHATTING_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Payment -// Cluster specification level: ta-1.0-07-5307-07 - -// Client attributes -#define ZCL_PAYMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_PAYMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_PAYMENT_USER_ID_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_USER_TYPE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_PAYMENT_SERVICE_ID_ATTRIBUTE_ID 0x0010 // Ver.: always -#define ZCL_PAYMENT_SERVICE_PROVIDER_ID_ATTRIBUTE_ID 0x0011 // Ver.: always -#define ZCL_TOTEM_ID_ATTRIBUTE_ID 0x0012 // Ver.: always -#define ZCL_CURRENCY_ATTRIBUTE_ID 0x0020 // Ver.: always -#define ZCL_PRICE_TRAILING_DIGIT_ATTRIBUTE_ID 0x0021 // Ver.: always -#define ZCL_PRICE_ATTRIBUTE_ID 0x0022 // Ver.: always -#define ZCL_GOOD_ID_ATTRIBUTE_ID 0x0030 // Ver.: always -#define ZCL_SERIAL_NUMBER_ATTRIBUTE_ID 0x0031 // Ver.: always -#define ZCL_PAYMENT_TIMESTAMP_ATTRIBUTE_ID 0x0032 // Ver.: always -#define ZCL_TRANS_ID_ATTRIBUTE_ID 0x0033 // Ver.: always -#define ZCL_TRANS_STATUS_ATTRIBUTE_ID 0x0034 // Ver.: always -#define ZCL_PAYMENT_STATUS_ATTRIBUTE_ID 0x0035 // Ver.: always -#define ZCL_PAYMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_PAYMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Billing -// Cluster specification level: ta-1.0-07-5307-07 - -// Client attributes -#define ZCL_BILLING_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_BILLING_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_USER_ID_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_SERVICE_ID_ATTRIBUTE_ID 0x0010 // Ver.: always -#define ZCL_SERVICE_PROVIDER_ID_ATTRIBUTE_ID 0x0011 // Ver.: always -#define ZCL_SESSION_INTERVAL_ATTRIBUTE_ID 0x0012 // Ver.: always -#define ZCL_TIMESTAMP_ATTRIBUTE_ID 0x0020 // Ver.: always -#define ZCL_DURATION_ATTRIBUTE_ID 0x0021 // Ver.: always -#define ZCL_BILLING_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_BILLING_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Appliance Identification -// Cluster specification level: UNKNOWN - -// Client attributes -#define ZCL_APPLIANCE_IDENTIFICATION_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_APPLIANCE_IDENTIFICATION_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_BASIC_IDENTIFICATION_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_APPLIANCE_COMPANY_NAME_ATTRIBUTE_ID 0x0010 // Ver.: always -#define ZCL_COMPANY_ID_ATTRIBUTE_ID 0x0011 // Ver.: always -#define ZCL_BRAND_NAME_ATTRIBUTE_ID 0x0012 // Ver.: always -#define ZCL_BRAND_ID_ATTRIBUTE_ID 0x0013 // Ver.: always -#define ZCL_APPLIANCE_MODEL_ATTRIBUTE_ID 0x0014 // Ver.: always -#define ZCL_APPLIANCE_PART_NUMBER_ATTRIBUTE_ID 0x0015 // Ver.: always -#define ZCL_APPLIANCE_PRODUCT_REVISION_ATTRIBUTE_ID 0x0016 // Ver.: always -#define ZCL_APPLIANCE_SOFTWARE_REVISION_ATTRIBUTE_ID 0x0017 // Ver.: always -#define ZCL_PRODUCT_TYPE_NAME_ATTRIBUTE_ID 0x0018 // Ver.: always -#define ZCL_PRODUCT_TYPE_ID_ATTRIBUTE_ID 0x0019 // Ver.: always -#define ZCL_CECED_SPECIFICATION_VERSION_ATTRIBUTE_ID 0x001A // Ver.: always -#define ZCL_APPLIANCE_IDENTIFICATION_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_APPLIANCE_IDENTIFICATION_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Meter Identification -// Cluster specification level: UNKNOWN - -// Client attributes -#define ZCL_METER_IDENTIFICATION_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_METER_IDENTIFICATION_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_METER_COMPANY_NAME_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_METER_TYPE_ID_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_DATA_QUALITY_ID_ATTRIBUTE_ID 0x0004 // Ver.: always -#define ZCL_CUSTOMER_NAME_ATTRIBUTE_ID 0x0005 // Ver.: always -#define ZCL_METER_MODEL_ATTRIBUTE_ID 0x0006 // Ver.: always -#define ZCL_METER_PART_NUMBER_ATTRIBUTE_ID 0x0007 // Ver.: always -#define ZCL_METER_PRODUCT_REVISION_ATTRIBUTE_ID 0x0008 // Ver.: always -#define ZCL_METER_SOFTWARE_REVISION_ATTRIBUTE_ID 0x000A // Ver.: always -#define ZCL_UTILITY_NAME_ATTRIBUTE_ID 0x000B // Ver.: always -#define ZCL_POD_ATTRIBUTE_ID 0x000C // Ver.: always -#define ZCL_AVAILABLE_POWER_ATTRIBUTE_ID 0x000D // Ver.: always -#define ZCL_POWER_THRESHOLD_ATTRIBUTE_ID 0x000E // Ver.: always -#define ZCL_METER_IDENTIFICATION_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_METER_IDENTIFICATION_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Appliance Events and Alert -// Cluster specification level: UNKNOWN - -// Client attributes -#define ZCL_APPLIANCE_EVENTS_AND_ALERT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_APPLIANCE_EVENTS_AND_ALERT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_APPLIANCE_EVENTS_AND_ALERT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_APPLIANCE_EVENTS_AND_ALERT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Appliance Statistics -// Cluster specification level: UNKNOWN - -// Client attributes -#define ZCL_APPLIANCE_STATISTICS_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_APPLIANCE_STATISTICS_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_LOG_MAX_SIZE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_LOG_QUEUE_MAX_SIZE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_APPLIANCE_STATISTICS_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_APPLIANCE_STATISTICS_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Electrical Measurement -// Cluster specification level: UNKNOWN - -// Client attributes -#define ZCL_ELECTRICAL_MEASUREMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_ELECTRICAL_MEASUREMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_MEASUREMENT_TYPE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_DC_VOLTAGE_ATTRIBUTE_ID 0x0100 // Ver.: always -#define ZCL_DC_VOLTAGE_MIN_ATTRIBUTE_ID 0x0101 // Ver.: always -#define ZCL_DC_VOLTAGE_MAX_ATTRIBUTE_ID 0x0102 // Ver.: always -#define ZCL_DC_CURRENT_ATTRIBUTE_ID 0x0103 // Ver.: always -#define ZCL_DC_CURRENT_MIN_ATTRIBUTE_ID 0x0104 // Ver.: always -#define ZCL_DC_CURRENT_MAX_ATTRIBUTE_ID 0x0105 // Ver.: always -#define ZCL_DC_POWER_ATTRIBUTE_ID 0x0106 // Ver.: always -#define ZCL_DC_POWER_MIN_ATTRIBUTE_ID 0x0107 // Ver.: always -#define ZCL_DC_POWER_MAX_ATTRIBUTE_ID 0x0108 // Ver.: always -#define ZCL_DC_VOLTAGE_MULTIPLIER_ATTRIBUTE_ID 0x0200 // Ver.: always -#define ZCL_DC_VOLTAGE_DIVISOR_ATTRIBUTE_ID 0x0201 // Ver.: always -#define ZCL_DC_CURRENT_MULTIPLIER_ATTRIBUTE_ID 0x0202 // Ver.: always -#define ZCL_DC_CURRENT_DIVISOR_ATTRIBUTE_ID 0x0203 // Ver.: always -#define ZCL_DC_POWER_MULTIPLIER_ATTRIBUTE_ID 0x0204 // Ver.: always -#define ZCL_DC_POWER_DIVISOR_ATTRIBUTE_ID 0x0205 // Ver.: always -#define ZCL_AC_FREQUENCY_ATTRIBUTE_ID 0x0300 // Ver.: always -#define ZCL_AC_FREQUENCY_MIN_ATTRIBUTE_ID 0x0301 // Ver.: always -#define ZCL_AC_FREQUENCY_MAX_ATTRIBUTE_ID 0x0302 // Ver.: always -#define ZCL_NEUTRAL_CURRENT_ATTRIBUTE_ID 0x0303 // Ver.: always -#define ZCL_TOTAL_ACTIVE_POWER_ATTRIBUTE_ID 0x0304 // Ver.: always -#define ZCL_TOTAL_REACTIVE_POWER_ATTRIBUTE_ID 0x0305 // Ver.: always -#define ZCL_TOTAL_APPARENT_POWER_ATTRIBUTE_ID 0x0306 // Ver.: always -#define ZCL_MEASURED_1ST_HARMONIC_CURRENT_ATTRIBUTE_ID 0x0307 // Ver.: always -#define ZCL_MEASURED_3RD_HARMONIC_CURRENT_ATTRIBUTE_ID 0x0308 // Ver.: always -#define ZCL_MEASURED_5TH_HARMONIC_CURRENT_ATTRIBUTE_ID 0x0309 // Ver.: always -#define ZCL_MEASURED_7TH_HARMONIC_CURRENT_ATTRIBUTE_ID 0x030A // Ver.: always -#define ZCL_MEASURED_9TH_HARMONIC_CURRENT_ATTRIBUTE_ID 0x030B // Ver.: always -#define ZCL_MEASURED_11TH_HARMONIC_CURRENT_ATTRIBUTE_ID 0x030C // Ver.: always -#define ZCL_MEASURED_PHASE_1ST_HARMONIC_CURRENT_ATTRIBUTE_ID 0x030D // Ver.: always -#define ZCL_MEASURED_PHASE_3RD_HARMONIC_CURRENT_ATTRIBUTE_ID 0x030E // Ver.: always -#define ZCL_MEASURED_PHASE_5TH_HARMONIC_CURRENT_ATTRIBUTE_ID 0x030F // Ver.: always -#define ZCL_MEASURED_PHASE_7TH_HARMONIC_CURRENT_ATTRIBUTE_ID 0x0310 // Ver.: always -#define ZCL_MEASURED_PHASE_9TH_HARMONIC_CURRENT_ATTRIBUTE_ID 0x0311 // Ver.: always -#define ZCL_MEASURED_PHASE_11TH_HARMONIC_CURRENT_ATTRIBUTE_ID 0x0312 // Ver.: always -#define ZCL_AC_FREQUENCY_MULTIPLIER_ATTRIBUTE_ID 0x0400 // Ver.: always -#define ZCL_AC_FREQUENCY_DIVISOR_ATTRIBUTE_ID 0x0401 // Ver.: always -#define ZCL_POWER_MULTIPLIER_ATTRIBUTE_ID 0x0402 // Ver.: always -#define ZCL_POWER_DIVISOR_ATTRIBUTE_ID 0x0403 // Ver.: always -#define ZCL_HARMONIC_CURRENT_MULTIPLIER_ATTRIBUTE_ID 0x0404 // Ver.: always -#define ZCL_PHASE_HARMONIC_CURRENT_MULTIPLIER_ATTRIBUTE_ID 0x0405 // Ver.: always -#define ZCL_INSTANTANEOUS_VOLTAGE_ATTRIBUTE_ID 0x0500 // Ver.: always -#define ZCL_INSTANTANEOUS_LINE_CURRENT_ATTRIBUTE_ID 0x0501 // Ver.: always -#define ZCL_INSTANTANEOUS_ACTIVE_CURRENT_ATTRIBUTE_ID 0x0502 // Ver.: always -#define ZCL_INSTANTANEOUS_REACTIVE_CURRENT_ATTRIBUTE_ID 0x0503 // Ver.: always -#define ZCL_INSTANTANEOUS_POWER_ATTRIBUTE_ID 0x0504 // Ver.: always -#define ZCL_RMS_VOLTAGE_ATTRIBUTE_ID 0x0505 // Ver.: always -#define ZCL_RMS_VOLTAGE_MIN_ATTRIBUTE_ID 0x0506 // Ver.: always -#define ZCL_RMS_VOLTAGE_MAX_ATTRIBUTE_ID 0x0507 // Ver.: always -#define ZCL_RMS_CURRENT_ATTRIBUTE_ID 0x0508 // Ver.: always -#define ZCL_RMS_CURRENT_MIN_ATTRIBUTE_ID 0x0509 // Ver.: always -#define ZCL_RMS_CURRENT_MAX_ATTRIBUTE_ID 0x050A // Ver.: always -#define ZCL_ACTIVE_POWER_ATTRIBUTE_ID 0x050B // Ver.: always -#define ZCL_ACTIVE_POWER_MIN_ATTRIBUTE_ID 0x050C // Ver.: always -#define ZCL_ACTIVE_POWER_MAX_ATTRIBUTE_ID 0x050D // Ver.: always -#define ZCL_REACTIVE_POWER_ATTRIBUTE_ID 0x050E // Ver.: always -#define ZCL_APPARENT_POWER_ATTRIBUTE_ID 0x050F // Ver.: always -#define ZCL_AC_POWER_FACTOR_ATTRIBUTE_ID 0x0510 // Ver.: always -#define ZCL_AVERAGE_RMS_VOLTAGE_MEASUREMENT_PERIOD_ATTRIBUTE_ID 0x0511 // Ver.: always -#define ZCL_AVERAGE_RMS_UNDER_VOLTAGE_COUNTER_ATTRIBUTE_ID 0x0513 // Ver.: always -#define ZCL_RMS_EXTREME_OVER_VOLTAGE_PERIOD_ATTRIBUTE_ID 0x0514 // Ver.: always -#define ZCL_RMS_EXTREME_UNDER_VOLTAGE_PERIOD_ATTRIBUTE_ID 0x0515 // Ver.: always -#define ZCL_RMS_VOLTAGE_SAG_PERIOD_ATTRIBUTE_ID 0x0516 // Ver.: always -#define ZCL_RMS_VOLTAGE_SWELL_PERIOD_ATTRIBUTE_ID 0x0517 // Ver.: always -#define ZCL_AC_VOLTAGE_MULTIPLIER_ATTRIBUTE_ID 0x0600 // Ver.: always -#define ZCL_AC_VOLTAGE_DIVISOR_ATTRIBUTE_ID 0x0601 // Ver.: always -#define ZCL_AC_CURRENT_MULTIPLIER_ATTRIBUTE_ID 0x0602 // Ver.: always -#define ZCL_AC_CURRENT_DIVISOR_ATTRIBUTE_ID 0x0603 // Ver.: always -#define ZCL_AC_POWER_MULTIPLIER_ATTRIBUTE_ID 0x0604 // Ver.: always -#define ZCL_AC_POWER_DIVISOR_ATTRIBUTE_ID 0x0605 // Ver.: always -#define ZCL_DC_OVERLOAD_ALARMS_MASK_ATTRIBUTE_ID 0x0700 // Ver.: always -#define ZCL_DC_VOLTAGE_OVERLOAD_ATTRIBUTE_ID 0x0701 // Ver.: always -#define ZCL_DC_CURRENT_OVERLOAD_ATTRIBUTE_ID 0x0702 // Ver.: always -#define ZCL_AC_OVERLOAD_ALARMS_MASK_ATTRIBUTE_ID 0x0800 // Ver.: always -#define ZCL_AC_VOLTAGE_OVERLOAD_ATTRIBUTE_ID 0x0801 // Ver.: always -#define ZCL_AC_CURRENT_OVERLOAD_ATTRIBUTE_ID 0x0802 // Ver.: always -#define ZCL_AC_POWER_OVERLOAD_ATTRIBUTE_ID 0x0803 // Ver.: always -#define ZCL_AC_REACTIVE_POWER_OVERLOAD_ATTRIBUTE_ID 0x0804 // Ver.: always -#define ZCL_AVERAGE_RMS_OVER_VOLTAGE_ATTRIBUTE_ID 0x0805 // Ver.: always -#define ZCL_AVERAGE_RMS_UNDER_VOLTAGE_ATTRIBUTE_ID 0x0806 // Ver.: always -#define ZCL_RMS_EXTREME_OVER_VOLTAGE_ATTRIBUTE_ID 0x0807 // Ver.: always -#define ZCL_RMS_EXTREME_UNDER_VOLTAGE_ATTRIBUTE_ID 0x0808 // Ver.: always -#define ZCL_RMS_VOLTAGE_SAG_ATTRIBUTE_ID 0x0809 // Ver.: always -#define ZCL_RMS_VOLTAGE_SWELL_ATTRIBUTE_ID 0x080A // Ver.: always -#define ZCL_LINE_CURRENT_PHASE_B_ATTRIBUTE_ID 0x0901 // Ver.: always -#define ZCL_ACTIVE_CURRENT_PHASE_B_ATTRIBUTE_ID 0x0902 // Ver.: always -#define ZCL_REACTIVE_CURRENT_PHASE_B_ATTRIBUTE_ID 0x0903 // Ver.: always -#define ZCL_RMS_VOLTAGE_PHASE_B_ATTRIBUTE_ID 0x0905 // Ver.: always -#define ZCL_RMS_VOLTAGE_MIN_PHASE_B_ATTRIBUTE_ID 0x0906 // Ver.: always -#define ZCL_RMS_VOLTAGE_MAX_PHASE_B_ATTRIBUTE_ID 0x0907 // Ver.: always -#define ZCL_RMS_CURRENT_PHASE_B_ATTRIBUTE_ID 0x0908 // Ver.: always -#define ZCL_RMS_CURRENT_MIN_PHASE_B_ATTRIBUTE_ID 0x0909 // Ver.: always -#define ZCL_RMS_CURRENT_MAX_PHASE_B_ATTRIBUTE_ID 0x090A // Ver.: always -#define ZCL_ACTIVE_POWER_PHASE_B_ATTRIBUTE_ID 0x090B // Ver.: always -#define ZCL_ACTIVE_POWER_MIN_PHASE_B_ATTRIBUTE_ID 0x090C // Ver.: always -#define ZCL_ACTIVE_POWER_MAX_PHASE_B_ATTRIBUTE_ID 0x090D // Ver.: always -#define ZCL_REACTIVE_POWER_PHASE_B_ATTRIBUTE_ID 0x090E // Ver.: always -#define ZCL_APPARENT_POWER_PHASE_B_ATTRIBUTE_ID 0x090F // Ver.: always -#define ZCL_POWER_FACTOR_PHASE_B_ATTRIBUTE_ID 0x0910 // Ver.: always -#define ZCL_AVERAGE_RMS_VOLTAGE_MEASUREMENT_PERIOD_PHASE_B_ATTRIBUTE_ID 0x0911 // Ver.: always -#define ZCL_AVERAGE_RMS_OVER_VOLTAGE_COUNTER_PHASE_B_ATTRIBUTE_ID 0x0912 // Ver.: always -#define ZCL_AVERAGE_RMS_UNDER_VOLTAGE_COUNTER_PHASE_B_ATTRIBUTE_ID 0x0913 // Ver.: always -#define ZCL_RMS_EXTREME_OVER_VOLTAGE_PERIOD_PHASE_B_ATTRIBUTE_ID 0x0914 // Ver.: always -#define ZCL_RMS_EXTREME_UNDER_VOLTAGE_PERIOD_PHASE_B_ATTRIBUTE_ID 0x0915 // Ver.: always -#define ZCL_RMS_VOLTAGE_SAG_PERIOD_PHASE_B_ATTRIBUTE_ID 0x0916 // Ver.: always -#define ZCL_RMS_VOLTAGE_SWELL_PERIOD_PHASE_B_ATTRIBUTE_ID 0x0917 // Ver.: always -#define ZCL_LINE_CURRENT_PHASE_C_ATTRIBUTE_ID 0x0A01 // Ver.: always -#define ZCL_ACTIVE_CURRENT_PHASE_C_ATTRIBUTE_ID 0x0A02 // Ver.: always -#define ZCL_REACTIVE_CURRENT_PHASE_C_ATTRIBUTE_ID 0x0A03 // Ver.: always -#define ZCL_RMS_VOLTAGE_PHASE_C_ATTRIBUTE_ID 0x0A05 // Ver.: always -#define ZCL_RMS_VOLTAGE_MIN_PHASE_C_ATTRIBUTE_ID 0x0A06 // Ver.: always -#define ZCL_RMS_VOLTAGE_MAX_PHASE_C_ATTRIBUTE_ID 0x0A07 // Ver.: always -#define ZCL_RMS_CURRENT_PHASE_C_ATTRIBUTE_ID 0x0A08 // Ver.: always -#define ZCL_RMS_CURRENT_MIN_PHASE_C_ATTRIBUTE_ID 0x0A09 // Ver.: always -#define ZCL_RMS_CURRENT_MAX_PHASE_C_ATTRIBUTE_ID 0x0A0A // Ver.: always -#define ZCL_ACTIVE_POWER_PHASE_C_ATTRIBUTE_ID 0x0A0B // Ver.: always -#define ZCL_ACTIVE_POWER_MIN_PHASE_C_ATTRIBUTE_ID 0x0A0C // Ver.: always -#define ZCL_ACTIVE_POWER_MAX_PHASE_C_ATTRIBUTE_ID 0x0A0D // Ver.: always -#define ZCL_REACTIVE_POWER_PHASE_C_ATTRIBUTE_ID 0x0A0E // Ver.: always -#define ZCL_APPARENT_POWER_PHASE_C_ATTRIBUTE_ID 0x0A0F // Ver.: always -#define ZCL_POWER_FACTOR_PHASE_C_ATTRIBUTE_ID 0x0A10 // Ver.: always -#define ZCL_AVERAGE_RMS_VOLTAGE_MEASUREMENT_PERIOD_PHASE_C_ATTRIBUTE_ID 0x0A11 // Ver.: always -#define ZCL_AVERAGE_RMS_OVER_VOLTAGE_COUNTER_PHASE_C_ATTRIBUTE_ID 0x0A12 // Ver.: always -#define ZCL_AVERAGE_RMS_UNDER_VOLTAGE_COUNTER_PHASE_C_ATTRIBUTE_ID 0x0A13 // Ver.: always -#define ZCL_RMS_EXTREME_OVER_VOLTAGE_PERIOD_PHASE_C_ATTRIBUTE_ID 0x0A14 // Ver.: always -#define ZCL_RMS_EXTREME_UNDER_VOLTAGE_PERIOD_PHASE_C_ATTRIBUTE_ID 0x0A15 // Ver.: always -#define ZCL_RMS_VOLTAGE_SAG_PERIOD_PHASE_C_ATTRIBUTE_ID 0x0A16 // Ver.: always -#define ZCL_RMS_VOLTAGE_SWELL_PERIOD_PHASE_C_ATTRIBUTE_ID 0x0A17 // Ver.: always -#define ZCL_ELECTRICAL_MEASUREMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_ELECTRICAL_MEASUREMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Diagnostics -// Cluster specification level: UNKNOWN - -// Client attributes -#define ZCL_DIAGNOSTICS_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_DIAGNOSTICS_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_NUMBER_OF_RESETS_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_PERSISTENT_MEMORY_WRITES_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_MAC_RX_BCAST_ATTRIBUTE_ID 0x0100 // Ver.: always -#define ZCL_MAC_TX_BCAST_ATTRIBUTE_ID 0x0101 // Ver.: always -#define ZCL_MAC_RX_UCAST_ATTRIBUTE_ID 0x0102 // Ver.: always -#define ZCL_MAC_TX_UCAST_ATTRIBUTE_ID 0x0103 // Ver.: always -#define ZCL_MAC_TX_UCAST_RETRY_ATTRIBUTE_ID 0x0104 // Ver.: always -#define ZCL_MAC_TX_UCAST_FAIL_ATTRIBUTE_ID 0x0105 // Ver.: always -#define ZCL_APS_RX_BCAST_ATTRIBUTE_ID 0x0106 // Ver.: always -#define ZCL_APS_TX_BCAST_ATTRIBUTE_ID 0x0107 // Ver.: always -#define ZCL_APS_RX_UCAST_ATTRIBUTE_ID 0x0108 // Ver.: always -#define ZCL_APS_UCAST_SUCCESS_ATTRIBUTE_ID 0x0109 // Ver.: always -#define ZCL_APS_TX_UCAST_RETRY_ATTRIBUTE_ID 0x010A // Ver.: always -#define ZCL_APS_TX_UCAST_FAIL_ATTRIBUTE_ID 0x010B // Ver.: always -#define ZCL_ROUTE_DISC_INITIATED_ATTRIBUTE_ID 0x010C // Ver.: always -#define ZCL_NEIGHBOR_ADDED_ATTRIBUTE_ID 0x010D // Ver.: always -#define ZCL_NEIGHBOR_REMOVED_ATTRIBUTE_ID 0x010E // Ver.: always -#define ZCL_NEIGHBOR_STALE_ATTRIBUTE_ID 0x010F // Ver.: always -#define ZCL_JOIN_INDICATION_ATTRIBUTE_ID 0x0110 // Ver.: always -#define ZCL_CHILD_MOVED_ATTRIBUTE_ID 0x0111 // Ver.: always -#define ZCL_NWK_FC_FAILURE_ATTRIBUTE_ID 0x0112 // Ver.: always -#define ZCL_APS_FC_FAILURE_ATTRIBUTE_ID 0x0113 // Ver.: always -#define ZCL_APS_UNAUTHORIZED_KEY_ATTRIBUTE_ID 0x0114 // Ver.: always -#define ZCL_NWK_DECRYPT_FAILURE_ATTRIBUTE_ID 0x0115 // Ver.: always -#define ZCL_APS_DECRYPT_FAILURE_ATTRIBUTE_ID 0x0116 // Ver.: always -#define ZCL_PACKET_BUFFER_ALLOC_FAILURES_ATTRIBUTE_ID 0x0117 // Ver.: always -#define ZCL_RELAYED_UNICAST_ATTRIBUTE_ID 0x0118 // Ver.: always -#define ZCL_PHY_TO_MAC_QUEUE_LIMIT_REACHED_ATTRIBUTE_ID 0x0119 // Ver.: always -#define ZCL_PACKET_VALIDATE_DROP_COUNT_ATTRIBUTE_ID 0x011A // Ver.: always -#define ZCL_AVERAGE_MAC_RETRY_PER_APS_MSG_SENT_ATTRIBUTE_ID 0x011B // Ver.: always -#define ZCL_LAST_MESSAGE_LQI_ATTRIBUTE_ID 0x011C // Ver.: always -#define ZCL_LAST_MESSAGE_RSSI_ATTRIBUTE_ID 0x011D // Ver.: always -#define ZCL_DIAGNOSTICS_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_DIAGNOSTICS_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: ZLL Commissioning -// Cluster specification level: zll-1.0-11-0037-10 - -// Client attributes -#define ZCL_ZLL_COMMISSIONING_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_ZLL_COMMISSIONING_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_ZLL_COMMISSIONING_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_ZLL_COMMISSIONING_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Sample Mfg Specific Cluster -// Cluster specification level: UNKNOWN - -// Client attributes -#define ZCL_SAMPLE_MFG_SPECIFIC_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_SAMPLE_MFG_SPECIFIC_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_ATTRIBUTE_ONE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_ATTRIBUTE_TWO_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_SAMPLE_MFG_SPECIFIC_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_SAMPLE_MFG_SPECIFIC_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Sample Mfg Specific Cluster 2 -// Cluster specification level: UNKNOWN - -// Client attributes -#define ZCL_SAMPLE_MFG_SPECIFIC_CLUSTER_2_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_SAMPLE_MFG_SPECIFIC_CLUSTER_2_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_ATTRIBUTE_THREE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_ATTRIBUTE_FOUR_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_SAMPLE_MFG_SPECIFIC_CLUSTER_2_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_SAMPLE_MFG_SPECIFIC_CLUSTER_2_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Configuration Cluster -// Cluster specification level: UNKNOWN - -// Client attributes -#define ZCL_OTA_CONFIGURATION_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_OTA_CONFIGURATION_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_TOKENS_LOCKED_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_OTA_CONFIGURATION_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_OTA_CONFIGURATION_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: MFGLIB Cluster -// Cluster specification level: UNKNOWN - -// Client attributes -#define ZCL_MFGLIB_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_MFGLIB_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_PACKETS_RECEIVED_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_SAVED_RSSI_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_SAVED_LQI_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_MFGLIB_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_MFGLIB_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: SL Works With All Hubs -// Cluster specification level: UNKNOWN - -// Client attributes -#define ZCL_SL_WWAH_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_SL_WWAH_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_SL_DISABLE_OTA_DOWNGRADES_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_SL_MGMT_LEAVE_WITHOUT_REJOIN_ENABLED_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_SL_NWK_RETRY_COUNT_ATTRIBUTE_ID 0x0004 // Ver.: always -#define ZCL_SL_MAC_RETRY_COUNT_ATTRIBUTE_ID 0x0005 // Ver.: always -#define ZCL_SL_ROUTER_CHECKIN_ENABLED_ATTRIBUTE_ID 0x0006 // Ver.: always -#define ZCL_SL_TOUCHLINK_INTERPAN_ENABLED_ATTRIBUTE_ID 0x0007 // Ver.: always -#define ZCL_SL_WWAH_PARENT_CLASSIFICATION_ENABLED_ATTRIBUTE_ID 0x0008 // Ver.: always -#define ZCL_SL_WWAH_APP_EVENT_RETRY_ENABLED_ATTRIBUTE_ID 0x0009 // Ver.: always -#define ZCL_SL_WWAH_APP_EVENT_RETRY_QUEUE_SIZE_ATTRIBUTE_ID 0x000A // Ver.: always -#define ZCL_SL_WWAH_REJOIN_ENABLED_ATTRIBUTE_ID 0x000B // Ver.: always -#define ZCL_SL_MAC_POLL_FAILURE_WAIT_TIME_ATTRIBUTE_ID 0x000C // Ver.: always -#define ZCL_SL_CONFIGURATION_MODE_ENABLED_ATTRIBUTE_ID 0x000D // Ver.: always -#define ZCL_SL_CURRENT_DEBUG_REPORT_ID_ATTRIBUTE_ID 0x000E // Ver.: always -#define ZCL_SL_TC_SECURITY_ON_NTWK_KEY_ROTATION_ENABLED_ATTRIBUTE_ID 0x000F // Ver.: always -#define ZCL_SL_WWAH_BAD_PARENT_RECOVERY_ENABLED_ATTRIBUTE_ID 0x0010 // Ver.: always -#define ZCL_SL_PENDING_NETWORK_UPDATE_CHANNEL_ATTRIBUTE_ID 0x0011 // Ver.: always -#define ZCL_SL_PENDING_NETWORK_UPDATE_PANID_ATTRIBUTE_ID 0x0012 // Ver.: always -#define ZCL_SL_OTA_MAX_OFFLINE_DURATION_ATTRIBUTE_ID 0x0013 // Ver.: always -#define ZCL_SL_WWAH_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_SL_WWAH_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -#endif // SILABS_EMBER_AF_ATTRIBUTE_ID diff --git a/examples/lighting-app/efr32/src/gen/attribute-size.h b/examples/lighting-app/efr32/src/gen/attribute-size.h deleted file mode 100644 index 8ab0dae3944631..00000000000000 --- a/examples/lighting-app/efr32/src/gen/attribute-size.h +++ /dev/null @@ -1,49 +0,0 @@ -/** - * - * 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 SILABS_ATTRIBUTE_SIZE -#define SILABS_ATTRIBUTE_SIZE - -// Used ZCL attribute type sizes -ZCL_BITMAP16_ATTRIBUTE_TYPE, 2, ZCL_BITMAP24_ATTRIBUTE_TYPE, 3, ZCL_BITMAP32_ATTRIBUTE_TYPE, 4, ZCL_BITMAP48_ATTRIBUTE_TYPE, 6, - ZCL_BITMAP64_ATTRIBUTE_TYPE, 8, ZCL_BITMAP8_ATTRIBUTE_TYPE, 1, ZCL_BOOLEAN_ATTRIBUTE_TYPE, 1, ZCL_DATA8_ATTRIBUTE_TYPE, 1, - ZCL_ENUM16_ATTRIBUTE_TYPE, 2, ZCL_ENUM8_ATTRIBUTE_TYPE, 1, ZCL_FLOAT_SINGLE_ATTRIBUTE_TYPE, 4, ZCL_IEEE_ADDRESS_ATTRIBUTE_TYPE, - 8, ZCL_INT16S_ATTRIBUTE_TYPE, 2, ZCL_INT16U_ATTRIBUTE_TYPE, 2, ZCL_INT24S_ATTRIBUTE_TYPE, 3, ZCL_INT24U_ATTRIBUTE_TYPE, 3, - ZCL_INT32S_ATTRIBUTE_TYPE, 4, ZCL_INT32U_ATTRIBUTE_TYPE, 4, ZCL_INT48U_ATTRIBUTE_TYPE, 6, ZCL_INT56U_ATTRIBUTE_TYPE, 7, - ZCL_INT8S_ATTRIBUTE_TYPE, 1, ZCL_INT8U_ATTRIBUTE_TYPE, 1, ZCL_SECURITY_KEY_ATTRIBUTE_TYPE, 16, ZCL_UTC_TIME_ATTRIBUTE_TYPE, 4, -#endif // SILABS_ATTRIBUTE_SIZE diff --git a/examples/lighting-app/efr32/src/gen/attribute-type.h b/examples/lighting-app/efr32/src/gen/attribute-type.h deleted file mode 100644 index 35879dabb2ed6e..00000000000000 --- a/examples/lighting-app/efr32/src/gen/attribute-type.h +++ /dev/null @@ -1,103 +0,0 @@ -/** - * - * 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 SILABS_EMBER_AF_ATTRIBUTE_TYPES -#define SILABS_EMBER_AF_ATTRIBUTE_TYPES - -// ZCL attribute types -enum -{ - ZCL_NO_DATA_ATTRIBUTE_TYPE = 0x00, // No data - ZCL_DATA8_ATTRIBUTE_TYPE = 0x08, // 8-bit data - ZCL_DATA16_ATTRIBUTE_TYPE = 0x09, // 16-bit data - ZCL_DATA24_ATTRIBUTE_TYPE = 0x0A, // 24-bit data - ZCL_DATA32_ATTRIBUTE_TYPE = 0x0B, // 32-bit data - ZCL_DATA40_ATTRIBUTE_TYPE = 0x0C, // 40-bit data - ZCL_DATA48_ATTRIBUTE_TYPE = 0x0D, // 48-bit data - ZCL_DATA56_ATTRIBUTE_TYPE = 0x0E, // 56-bit data - ZCL_DATA64_ATTRIBUTE_TYPE = 0x0F, // 64-bit data - ZCL_BOOLEAN_ATTRIBUTE_TYPE = 0x10, // Boolean - ZCL_BITMAP8_ATTRIBUTE_TYPE = 0x18, // 8-bit bitmap - ZCL_BITMAP16_ATTRIBUTE_TYPE = 0x19, // 16-bit bitmap - ZCL_BITMAP24_ATTRIBUTE_TYPE = 0x1A, // 24-bit bitmap - ZCL_BITMAP32_ATTRIBUTE_TYPE = 0x1B, // 32-bit bitmap - ZCL_BITMAP40_ATTRIBUTE_TYPE = 0x1C, // 40-bit bitmap - ZCL_BITMAP48_ATTRIBUTE_TYPE = 0x1D, // 48-bit bitmap - ZCL_BITMAP56_ATTRIBUTE_TYPE = 0x1E, // 56-bit bitmap - ZCL_BITMAP64_ATTRIBUTE_TYPE = 0x1F, // 64-bit bitmap - ZCL_INT8U_ATTRIBUTE_TYPE = 0x20, // Unsigned 8-bit integer - ZCL_INT16U_ATTRIBUTE_TYPE = 0x21, // Unsigned 16-bit integer - ZCL_INT24U_ATTRIBUTE_TYPE = 0x22, // Unsigned 24-bit integer - ZCL_INT32U_ATTRIBUTE_TYPE = 0x23, // Unsigned 32-bit integer - ZCL_INT40U_ATTRIBUTE_TYPE = 0x24, // Unsigned 40-bit integer - ZCL_INT48U_ATTRIBUTE_TYPE = 0x25, // Unsigned 48-bit integer - ZCL_INT56U_ATTRIBUTE_TYPE = 0x26, // Unsigned 56-bit integer - ZCL_INT64U_ATTRIBUTE_TYPE = 0x27, // Unsigned 64-bit integer - ZCL_INT8S_ATTRIBUTE_TYPE = 0x28, // Signed 8-bit integer - ZCL_INT16S_ATTRIBUTE_TYPE = 0x29, // Signed 16-bit integer - ZCL_INT24S_ATTRIBUTE_TYPE = 0x2A, // Signed 24-bit integer - ZCL_INT32S_ATTRIBUTE_TYPE = 0x2B, // Signed 32-bit integer - ZCL_INT40S_ATTRIBUTE_TYPE = 0x2C, // Signed 40-bit integer - ZCL_INT48S_ATTRIBUTE_TYPE = 0x2D, // Signed 48-bit integer - ZCL_INT56S_ATTRIBUTE_TYPE = 0x2E, // Signed 56-bit integer - ZCL_INT64S_ATTRIBUTE_TYPE = 0x2F, // Signed 64-bit integer - ZCL_ENUM8_ATTRIBUTE_TYPE = 0x30, // 8-bit enumeration - ZCL_ENUM16_ATTRIBUTE_TYPE = 0x31, // 16-bit enumeration - ZCL_FLOAT_SEMI_ATTRIBUTE_TYPE = 0x38, // Semi-precision - ZCL_FLOAT_SINGLE_ATTRIBUTE_TYPE = 0x39, // Single precision - ZCL_FLOAT_DOUBLE_ATTRIBUTE_TYPE = 0x3A, // Double precision - ZCL_OCTET_STRING_ATTRIBUTE_TYPE = 0x41, // Octet string - ZCL_CHAR_STRING_ATTRIBUTE_TYPE = 0x42, // Character string - ZCL_LONG_OCTET_STRING_ATTRIBUTE_TYPE = 0x43, // Long octet string - ZCL_LONG_CHAR_STRING_ATTRIBUTE_TYPE = 0x44, // Long character string - ZCL_ARRAY_ATTRIBUTE_TYPE = 0x48, // Array - ZCL_STRUCT_ATTRIBUTE_TYPE = 0x4C, // Structure - ZCL_SET_ATTRIBUTE_TYPE = 0x50, // Set - ZCL_BAG_ATTRIBUTE_TYPE = 0x51, // Bag - ZCL_TIME_OF_DAY_ATTRIBUTE_TYPE = 0xE0, // Time of day - ZCL_DATE_ATTRIBUTE_TYPE = 0xE1, // Date - ZCL_UTC_TIME_ATTRIBUTE_TYPE = 0xE2, // UTC Time - ZCL_CLUSTER_ID_ATTRIBUTE_TYPE = 0xE8, // Cluster ID - ZCL_ATTRIBUTE_ID_ATTRIBUTE_TYPE = 0xE9, // Attribute ID - ZCL_BACNET_OID_ATTRIBUTE_TYPE = 0xEA, // BACnet OID - ZCL_IEEE_ADDRESS_ATTRIBUTE_TYPE = 0xF0, // IEEE address - ZCL_SECURITY_KEY_ATTRIBUTE_TYPE = 0xF1, // 128-bit security key - ZCL_UNKNOWN_ATTRIBUTE_TYPE = 0xFF // Unknown - -}; -#endif // SILABS_EMBER_AF_ATTRIBUTE_TYPES diff --git a/examples/lighting-app/efr32/src/gen/call-command-handler.c b/examples/lighting-app/efr32/src/gen/call-command-handler.c deleted file mode 100644 index 41782ce01ad83b..00000000000000 --- a/examples/lighting-app/efr32/src/gen/call-command-handler.c +++ /dev/null @@ -1,143 +0,0 @@ -/** - * - * 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. -// -// - -// This is a set of generated functions that parse the -// the incomming message, and call appropriate command handler. - -// #include PLATFORM_HEADER -#ifdef EZSP_HOST -// Includes needed for ember related functions for the EZSP host -#include "app/util/ezsp/ezsp-protocol.h" -#include "app/util/ezsp/ezsp-utils.h" -#include "app/util/ezsp/ezsp.h" -#include "app/util/ezsp/serial-interface.h" -#include "stack/include/ember-types.h" -#include "stack/include/error.h" -#else -// Includes needed for ember related functions for the EM250 -// #include "stack/include/ember.h" -#endif // EZSP_HOST - -#include - -#include "af-structs.h" -#include "call-command-handler.h" -#include "callback.h" -#include "command-id.h" -#include "util.h" - -static EmberAfStatus status(bool wasHandled, bool clusterExists, bool mfgSpecific) -{ - if (wasHandled) - { - return EMBER_ZCL_STATUS_SUCCESS; - } - else if (mfgSpecific) - { - return EMBER_ZCL_STATUS_UNSUP_MANUF_CLUSTER_COMMAND; - } - else if (clusterExists) - { - return EMBER_ZCL_STATUS_UNSUP_CLUSTER_COMMAND; - } - else - { - return EMBER_ZCL_STATUS_UNSUPPORTED_CLUSTER; - } -} - -// Main command parsing controller. -EmberAfStatus emberAfClusterSpecificCommandParse(EmberAfClusterCommand * cmd) -{ - EmberAfStatus result = status(false, false, cmd->mfgSpecific); - if (cmd->direction == (uint8_t) ZCL_DIRECTION_SERVER_TO_CLIENT && - emberAfContainsClientWithMfgCode(cmd->apsFrame->destinationEndpoint, cmd->apsFrame->clusterId, cmd->mfgCode)) - { - switch (cmd->apsFrame->clusterId) - { - default: - // Unrecognized cluster ID, error status will apply. - break; - } - } - else if (cmd->direction == (uint8_t) ZCL_DIRECTION_CLIENT_TO_SERVER && - emberAfContainsServerWithMfgCode(cmd->apsFrame->destinationEndpoint, cmd->apsFrame->clusterId, cmd->mfgCode)) - { - switch (cmd->apsFrame->clusterId) - { - case ZCL_ON_OFF_CLUSTER_ID: - result = emberAfOnOffClusterServerCommandParse(cmd); - break; - default: - // Unrecognized cluster ID, error status will apply. - break; - } - } - return result; -} - -// Cluster: On/off, server -EmberAfStatus emberAfOnOffClusterServerCommandParse(EmberAfClusterCommand * cmd) -{ - bool wasHandled = false; - if (!cmd->mfgSpecific) - { - switch (cmd->commandId) - { - case ZCL_OFF_COMMAND_ID: { - // Command is fixed length: 0 - wasHandled = emberAfOnOffClusterOffCallback(); - break; - } - case ZCL_ON_COMMAND_ID: { - // Command is fixed length: 0 - wasHandled = emberAfOnOffClusterOnCallback(); - break; - } - case ZCL_TOGGLE_COMMAND_ID: { - // Command is fixed length: 0 - wasHandled = emberAfOnOffClusterToggleCallback(); - break; - } - default: { - // Unrecognized command ID, error status will apply. - break; - } - } - } - return status(wasHandled, true, cmd->mfgSpecific); -} diff --git a/examples/lighting-app/efr32/src/gen/call-command-handler.h b/examples/lighting-app/efr32/src/gen/call-command-handler.h deleted file mode 100644 index 56c84133c3f612..00000000000000 --- a/examples/lighting-app/efr32/src/gen/call-command-handler.h +++ /dev/null @@ -1,50 +0,0 @@ -/** - * - * 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 SILABS_EMBER_AF_COMMAND_PARSE_HEADER -#define SILABS_EMBER_AF_COMMAND_PARSE_HEADER - -#include "af-types.h" - -// This is a set of generated prototype for functions that parse the -// the incomming message, and call appropriate command handler. - -// Cluster: On/off, server -EmberAfStatus emberAfOnOffClusterServerCommandParse(EmberAfClusterCommand * cmd); - -#endif // SILABS_EMBER_AF_COMMAND_PARSE_HEADER diff --git a/examples/lighting-app/efr32/src/gen/callback-stub.c b/examples/lighting-app/efr32/src/gen/callback-stub.c deleted file mode 100644 index 7d08f5cab34431..00000000000000 --- a/examples/lighting-app/efr32/src/gen/callback-stub.c +++ /dev/null @@ -1,2462 +0,0 @@ -/** - * - * 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. -// -// - -// This c file provides stubs for all callbacks. These stubs -// will be used in the case where user defined implementations -// of the callbacks have not been provided. -#include "af.h" -#include -//#include "hal/hal.h" -//#include EMBER_AF_API_NETWORK_STEERING - -/** @brief Add To Current App Tasks - * - * This function is only useful to sleepy end devices. This function will note - * the passed item as part of a set of tasks the application has outstanding - * (e.g. message sent requiring APS acknwoledgement). This will affect how the - * application behaves with regard to sleeping and polling. Until the - * outstanding task is completed, the device may poll more frequently and sleep - * less often. - * - * @param tasks Ver.: always - */ -void emberAfAddToCurrentAppTasksCallback(EmberAfApplicationTask tasks) {} - -/** @brief Allow Network Write Attribute - * - * This function is called by the application framework before it writes an - * attribute in response to a write attribute request from an external device. - * The value passed into this callback is the value to which the attribute is to - * be set by the framework. - Example: In mirroring simple metering data - * on an Energy Services Interface (ESI) (formerly called Energy Service Portal - * (ESP) in SE 1.0).), a mirrored simple meter needs to write read-only - * attributes on its mirror. The-meter-mirror sample application, located in - * app/framework/sample-apps, uses this callback to allow the mirrored device to - * write simple metering attributes on the mirror regardless of the fact that - * most simple metering attributes are defined as read-only by the ZigBee - * specification. - Note: The ZCL specification does not (as of this - * writing) specify any permission-level security for writing writeable - * attributes. As far as the ZCL specification is concerned, if an attribute is - * writeable, any device that has a link key for the device should be able to - * write that attribute. Furthermore if an attribute is read only, it should not - * be written over the air. Thus, if you implement permissions for writing - * attributes as a feature, you MAY be operating outside the specification. This - * is unlikely to be a problem for writing read-only attributes, but it may be a - * problem for attributes that are writeable according to the specification but - * restricted by the application implementing this callback. - * - * @param endpoint Ver.: always - * @param clusterId Ver.: always - * @param attributeId Ver.: always - * @param mask Ver.: always - * @param manufacturerCode Ver.: always - * @param value Ver.: always - * @param type Ver.: always - */ -EmberAfAttributeWritePermission emberAfAllowNetworkWriteAttributeCallback(uint8_t endpoint, EmberAfClusterId clusterId, - EmberAfAttributeId attributeId, uint8_t mask, - uint16_t manufacturerCode, uint8_t * value, uint8_t type) -{ - return EMBER_ZCL_ATTRIBUTE_WRITE_PERMISSION_ALLOW_WRITE_NORMAL; // Default -} - -/** @brief Attribute Read Access - * - * This function is called whenever the Application Framework needs to check - * access permission for an attribute read. - * - * @param endpoint Ver.: always - * @param clusterId Ver.: always - * @param manufacturerCode Ver.: always - * @param attributeId Ver.: always - */ -bool emberAfAttributeReadAccessCallback(uint8_t endpoint, EmberAfClusterId clusterId, uint16_t manufacturerCode, - uint16_t attributeId) -{ - return true; -} - -/** @brief Attribute Write Access - * - * This function is called whenever the Application Framework needs to check - * access permission for an attribute write. - * - * @param endpoint Ver.: always - * @param clusterId Ver.: always - * @param manufacturerCode Ver.: always - * @param attributeId Ver.: always - */ -bool emberAfAttributeWriteAccessCallback(uint8_t endpoint, EmberAfClusterId clusterId, uint16_t manufacturerCode, - uint16_t attributeId) -{ - return true; -} - -/** @brief Groups Cluster Clear Group Table - * - * This function is called by the framework when the application should clear - * the group table. - * - * @param endpoint The endpoint. Ver.: always - */ -void emberAfGroupsClusterClearGroupTableCallback(uint8_t endpoint) {} - -/** @brief Clear Report Table - * - * This function is called by the framework when the application should clear - * the report table. - * - */ -EmberStatus emberAfClearReportTableCallback(void) -{ - return EMBER_LIBRARY_NOT_PRESENT; -} - -/** @brief Scenes Cluster ClearSceneTable - * - * This function is called by the framework when the application should clear - * the scene table. - * - * @param endpoint The endpoint. Ver.: always - */ -void emberAfScenesClusterClearSceneTableCallback(uint8_t endpoint) {} - -/** @brief Key Establishment Cluster Client Command Received - * - * This function is called by the application framework when a server-to-client - * key establishment command is received but has yet to be handled by the - * framework code. This function should return a bool value indicating whether - * the command has been handled by the application code and should not be - * further processed by the framework. - * - * @param cmd Ver.: always - */ -bool emberAfKeyEstablishmentClusterClientCommandReceivedCallback(EmberAfClusterCommand * cmd) -{ - return false; -} - -/** @brief Cluster Init - * - * This function is called when a specific cluster is initialized. It gives the - * application an opportunity to take care of cluster initialization procedures. - * It is called exactly once for each endpoint where cluster is present. - * - * @param endpoint Ver.: always - * @param clusterId Ver.: always - */ -void emberAfClusterInitCallback(uint8_t endpoint, EmberAfClusterId clusterId) {} - -/** @brief Cluster Security Custom - * - * This callback is fired when determining if APS encryption is required for a - * cluster outside of the specification's required clusters. In other words, - * for the Smart Energy profile this would be a cluster beyond the list that - * normally requires APS encryption. - * - * @param profileId The profile ID Ver.: always - * @param clusterId The cluster ID Ver.: always - * @param incoming Whether this is an incoming or outgoing message. Ver.: - * always - * @param commandId The ZCL command ID being sent/received. Ver.: always - */ -bool emberAfClusterSecurityCustomCallback(EmberAfProfileId profileId, EmberAfClusterId clusterId, bool incoming, uint8_t commandId) -{ - // By default, assume APS encryption is not required. - return false; -} - -/** @brief Configure Reporting Command - * - * This function is called by the application framework when a Configure - * Reporting command is received from an external device. The Configure - * Reporting command contains a series of attribute reporting configuration - * records. The application should return true if the message was processed or - * false if it was not. - * - * @param cmd Ver.: always - */ -bool emberAfConfigureReportingCommandCallback(const EmberAfClusterCommand * cmd) -{ - return false; -} - -/** @brief Configure Reporting Response - * - * This function is called by the application framework when a Configure - * Reporting Response command is received from an external device. The - * application should return true if the message was processed or false if it - * was not. - * - * @param clusterId The cluster identifier of this response. Ver.: always - * @param buffer Buffer containing the list of attribute status records. Ver.: - * always - * @param bufLen The length in bytes of the list. Ver.: always - */ -bool emberAfConfigureReportingResponseCallback(EmberAfClusterId clusterId, uint8_t * buffer, uint16_t bufLen) -{ - return false; -} - -/** @brief Default Response - * - * This function is called by the application framework when a Default Response - * command is received from an external device. The application should return - * true if the message was processed or false if it was not. - * - * @param clusterId The cluster identifier of this response. Ver.: always - * @param commandId The command identifier to which this is a response. Ver.: - * always - * @param status Specifies either SUCCESS or the nature of the error that was - * detected in the received command. Ver.: always - */ -bool emberAfDefaultResponseCallback(EmberAfClusterId clusterId, uint8_t commandId, EmberAfStatus status) -{ - return false; -} - -/** @brief Discover Attributes Response - * - * This function is called by the application framework when a Discover - * Attributes Response or Discover Attributes Extended Response command is - * received from an external device. The Discover Attributes Response command - * contains a bool indicating if discovery is complete and a list of zero or - * more attribute identifier/type records. The final argument indicates whether - * the response is in the extended format or not. The application should return - * true if the message was processed or false if it was not. - * - * @param clusterId The cluster identifier of this response. Ver.: always - * @param discoveryComplete Indicates whether there are more attributes to be - * discovered. true if there are no more attributes to be discovered. Ver.: - * always - * @param buffer Buffer containing the list of attribute identifier/type - * records. Ver.: always - * @param bufLen The length in bytes of the list. Ver.: always - * @param extended Indicates whether the response is in the extended format or - * not. Ver.: always - */ -bool emberAfDiscoverAttributesResponseCallback(EmberAfClusterId clusterId, bool discoveryComplete, uint8_t * buffer, - uint16_t bufLen, bool extended) -{ - return false; -} - -/** @brief Discover Commands Generated Response - * - * This function is called by the framework when Discover Commands Generated - * Response is received. - * - * @param clusterId The cluster identifier of this response. Ver.: always - * @param manufacturerCode Manufacturer code Ver.: always - * @param discoveryComplete Indicates whether there are more commands to be - * discovered. Ver.: always - * @param commandIds Buffer containing the list of command identifiers. Ver.: - * always - * @param commandIdCount The length of bytes of the list, whish is the same as - * the number of identifiers. Ver.: always - */ -bool emberAfDiscoverCommandsGeneratedResponseCallback(EmberAfClusterId clusterId, uint16_t manufacturerCode, bool discoveryComplete, - uint8_t * commandIds, uint16_t commandIdCount) -{ - return false; -} - -/** @brief Discover Commands Received Response - * - * This function is called by the framework when Discover Commands Received - * Response is received. - * - * @param clusterId The cluster identifier of this response. Ver.: always - * @param manufacturerCode Manufacturer code Ver.: always - * @param discoveryComplete Indicates whether there are more commands to be - * discovered. Ver.: always - * @param commandIds Buffer containing the list of command identifiers. Ver.: - * always - * @param commandIdCount The length of bytes of the list, whish is the same as - * the number of identifiers. Ver.: always - */ -bool emberAfDiscoverCommandsReceivedResponseCallback(EmberAfClusterId clusterId, uint16_t manufacturerCode, bool discoveryComplete, - uint8_t * commandIds, uint16_t commandIdCount) -{ - return false; -} - -/** @brief Eeprom Init - * - * Tells the system to initialize the EEPROM if it is not already initialized. - * - */ -void emberAfEepromInitCallback(void) {} - -/** @brief Eeprom Note Initialized State - * - * Records the state of the EEPROM so that an intelligent driver (like the - * EEPROM plugin) can re-initialize the driver prior to any calls to it. - * - * @param state The state of the EEPROM, false=re-initalization needed, - * true=no-re-init needed Ver.: always - */ -void emberAfEepromNoteInitializedStateCallback(bool state) {} - -/** @brief Eeprom Shutdown - * - * Tells the system to shutdown the EEPROM if it is not already shutdown. - * - */ -void emberAfEepromShutdownCallback(void) {} - -/** @brief Groups Cluster Endpoint In Group - * - * This function is called by the framework when it needs to determine if an - * endpoint is a member of a group. The application should return true if the - * endpoint is a member of the group and false otherwise. - * - * @param endpoint The endpoint. Ver.: always - * @param groupId The group identifier. Ver.: always - */ -bool emberAfGroupsClusterEndpointInGroupCallback(uint8_t endpoint, uint16_t groupId) -{ - return false; -} - -/** @brief External Attribute Read - * - * Like emberAfExternalAttributeWriteCallback above, this function is called - * when the framework needs to read an attribute that is not stored within the - * Application Framework's data structures. - All of the important - * information about the attribute itself is passed as a pointer to an - * EmberAfAttributeMetadata struct, which is stored within the application and - * used to manage the attribute. A complete description of the - * EmberAfAttributeMetadata struct is provided in - * app/framework/include/af-types.h - This function assumes that the - * application is able to read the attribute, write it into the passed buffer, - * and return immediately. Any attributes that require a state machine for - * reading and writing are not really candidates for externalization at the - * present time. The Application Framework does not currently include a state - * machine for reading or writing attributes that must take place across a - * series of application ticks. Attributes that cannot be read in a timely - * manner should be stored within the Application Framework and updated - * occasionally by the application code from within the - * emberAfMainTickCallback. - If the application was successfully able to - * read the attribute and write it into the passed buffer, it should return a - * value of EMBER_ZCL_STATUS_SUCCESS. Ensure that the size of the externally - * managed attribute value is smaller than what the buffer can hold. In the case - * of a buffer overflow throw an appropriate error such as - * EMBER_ZCL_STATUS_INSUFFICIENT_SPACE. Any other return value indicates the - * application was not able to read the attribute. - * - * @param endpoint Ver.: always - * @param clusterId Ver.: always - * @param attributeMetadata Ver.: always - * @param manufacturerCode Ver.: always - * @param buffer Ver.: always - * @param maxReadLength Ver.: always - */ -EmberAfStatus emberAfExternalAttributeReadCallback(uint8_t endpoint, EmberAfClusterId clusterId, - EmberAfAttributeMetadata * attributeMetadata, uint16_t manufacturerCode, - uint8_t * buffer, uint16_t maxReadLength) -{ - return EMBER_ZCL_STATUS_FAILURE; -} - -/** @brief External Attribute Write - * - * This function is called whenever the Application Framework needs to write an - * attribute which is not stored within the data structures of the Application - * Framework itself. One of the new features in Version 2 is the ability to - * store attributes outside the Framework. This is particularly useful for - * attributes that do not need to be stored because they can be read off the - * hardware when they are needed, or are stored in some central location used by - * many modules within the system. In this case, you can indicate that the - * attribute is stored externally. When the framework needs to write an external - * attribute, it makes a call to this callback. - This callback is very - * useful for host micros which need to store attributes in persistent memory. - * Because each host micro (used with an Ember NCP) has its own type of - * persistent memory storage, the Application Framework does not include the - * ability to mark attributes as stored in flash the way that it does for Ember - * SoCs like the EM35x. On a host micro, any attributes that need to be stored - * in persistent memory should be marked as external and accessed through the - * external read and write callbacks. Any host code associated with the - * persistent storage should be implemented within this callback. - All of - * the important information about the attribute itself is passed as a pointer - * to an EmberAfAttributeMetadata struct, which is stored within the application - * and used to manage the attribute. A complete description of the - * EmberAfAttributeMetadata struct is provided in - * app/framework/include/af-types.h. - This function assumes that the - * application is able to write the attribute and return immediately. Any - * attributes that require a state machine for reading and writing are not - * candidates for externalization at the present time. The Application Framework - * does not currently include a state machine for reading or writing attributes - * that must take place across a series of application ticks. Attributes that - * cannot be written immediately should be stored within the Application - * Framework and updated occasionally by the application code from within the - * emberAfMainTickCallback. - If the application was successfully able to - * write the attribute, it returns a value of EMBER_ZCL_STATUS_SUCCESS. Any - * other return value indicates the application was not able to write the - * attribute. - * - * @param endpoint Ver.: always - * @param clusterId Ver.: always - * @param attributeMetadata Ver.: always - * @param manufacturerCode Ver.: always - * @param buffer Ver.: always - */ -EmberAfStatus emberAfExternalAttributeWriteCallback(uint8_t endpoint, EmberAfClusterId clusterId, - EmberAfAttributeMetadata * attributeMetadata, uint16_t manufacturerCode, - uint8_t * buffer) -{ - return EMBER_ZCL_STATUS_FAILURE; -} - -/** @brief Find Unused Pan Id And Form - * - * This function is called by the framework to search for an unused PAN id and - * form a new network. The application should return EMBER_SUCCESS if the - * operation was initiated successfully. - * - */ -EmberStatus emberAfFindUnusedPanIdAndFormCallback(void) -{ - return EMBER_LIBRARY_NOT_PRESENT; -} - -/** @brief Get Current App Tasks - * - * This function is only useful to sleepy end devices. This function will - * return the set of tasks the application has outstanding. These tasks affect - * how the application behaves with regard to sleeping and polling. - * - */ -EmberAfApplicationTask emberAfGetCurrentAppTasksCallback(void) -{ - return 0; -} - -/** @brief Get Current Poll Control - * - * This function will retrieve the current poll control that the system is using - * for the current network. This is determined by examining all the scheduled - * events and obtaining the most restrictive poll control context across all - * events. The most restrictive poll control is EMBER_AF_SHORT_POLL followed by - * EMBER_AF_LONG_POLL. - * - */ -EmberAfEventPollControl emberAfGetCurrentPollControlCallback(void) -{ - return EMBER_AF_LONG_POLL; -} - -/** @brief Get Current Poll Interval Ms - * - * This function is only useful to end devices. This function will return the - * current poll interval (in milliseconds) for the current network. This - * interval is the maximum amount of time a child is currently waiting between - * polls of its parent. - * - */ -uint32_t emberAfGetCurrentPollIntervalMsCallback(void) -{ - return 0; -} - -/** @brief Get Current Poll Interval Qs - * - * This function is only useful to end devices. This function will return the - * current poll interval (in quarter seconds) for the current network. This - * interval is the maximum amount of time a child is currently waiting between - * polls of its parent. - * - */ -uint32_t emberAfGetCurrentPollIntervalQsCallback(void) -{ - return 0; -} - -/** @brief Get Current Sleep Control - * - * This function will retrieve the current sleep control that the system is - * using. This is determined by examining all the scheduled events and - * obtaining the most restrictive sleep control context across all events. The - * most restrictive sleep control is EMBER_AF_STAY_AWAKE followed by - * EMBER_AF_OK_TO_SLEEP. - * - */ -EmberAfEventSleepControl emberAfGetCurrentSleepControlCallback(void) -{ - return EMBER_AF_OK_TO_SLEEP; -} - -/** @brief Get Current Time - * - * This callback is called when device attempts to get current time from the - * hardware. If this device has means to retrieve exact time, then this method - * should implement it. If the callback can't provide the exact time it should - * return 0 to indicate failure. Default action is to return 0, which indicates - * that device does not have access to real time. - * - */ -uint32_t emberAfGetCurrentTimeCallback(void) -{ - return 0; -} - -/** @brief Get Default Poll Control - * - * This function will retrieve the default poll control for the current network - * as previously set by emberAfSetDefaultPollControlCallback(). The default - * poll control will limit whether the network can long poll. - * - */ -EmberAfEventPollControl emberAfGetDefaultPollControlCallback(void) -{ - return EMBER_AF_LONG_POLL; -} - -/** @brief Get Default Sleep Control - * - * This function will retrieve the default sleep control the system is using as - * previously set by emberAfSetDefaultSleepControlCallback(). The default sleep - * control will limit whether the device can sleep. - * - */ -EmberAfEventSleepControl emberAfGetDefaultSleepControlCallback(void) -{ - return EMBER_AF_OK_TO_SLEEP; -} - -/** @brief Get Endpoint By Index - * - * Get the endpoint number based on the passed index. By default the framework - * handles this by managing endpoints based on the precompiled configuration - * defined in AppBuilder. This callback can override this behavior at runtime - * and provide additional endpoints or different data than the compiled values. - * If the index is overridden than the callback shall return true and set the - * endpointReturn parameter accordingly. A value of 0xFF means the endpoint - * doesn't exist at that index. - Otherwise false must be returned by the - * callback and the default framework behavior will be executed. This is only - * applicable to the SOC devices. - * - * @param index The index of the endpoint. Ver.: always - * @param endpointReturn The value of endpoint. Ver.: always - */ -bool emberAfGetEndpointByIndexCallback(uint8_t index, uint8_t * endpointReturn) -{ - return false; -} - -/** @brief Get Endpoint Description - * - * This callback is called by the framework whenever it receives a ZDO request - * to enumerate the details about an endpoint. By default the framework - * provides the information based on the precompiled endpoint information as - * defined in AppBuilder. This callback can override that behavior at runtime - * and return different information. If the endpoint information is being - * overridden then the callback must return true. Otherwise it should return - * false, which allows the framework to perform its default behavior. This is - * only applicable to SOC devices. - * - * @param endpoint The endpoint number that is being queried. Ver.: always - * @param result This is a pointer to a data structure where the endpoint - * information is written if the callback is providing the information. Ver.: - * always - */ -bool emberAfGetEndpointDescriptionCallback(uint8_t endpoint, EmberEndpointDescription * result) -{ - return false; -} - -/** @brief Get Endpoint Info - * - * This function is a callback to an application implemented endpoint that - * operates outside the normal application framework. When the framework wishes - * to perform operations with that endpoint it uses this callback to retrieve - * the endpoint's information. If the endpoint exists and the application can - * provide data then true shall be returned. Otherwise the callback must return - * false. - * - * @param endpoint The endpoint to retrieve data for. Ver.: always - * @param returnNetworkIndex The index corresponding to the ZigBee network the - * endpoint belongs to. If not using a multi-network device, 0 must be - * returned. Otherwise on a multi-network device the stack will switch to this - * network before sending the message. Ver.: always - * @param returnEndpointInfo A pointer to a data struct that will be written - * with information about the endpoint. Ver.: always - */ -bool emberAfGetEndpointInfoCallback(uint8_t endpoint, uint8_t * returnNetworkIndex, EmberAfEndpointInfoStruct * returnEndpointInfo) -{ - return false; -} - -/** @brief Get Form And Join Extended Pan Id - * - * This callback is called by the framework to get the extended PAN ID used by - * the current network for forming and joining. The extended PAN ID used for - * forming and joining is not necessarily the same extended PAN ID actually in - * use on the network. - * - * @param resultLocation Ver.: always - */ -void emberAfGetFormAndJoinExtendedPanIdCallback(uint8_t * resultLocation) {} - -/** @brief Get Long Poll Interval Ms - * - * This function is only useful to end devices. This function will return the - * long poll interval (in milliseconds) for the current network. This interval - * is the maximum amount of time a child will wait between polls of its parent - * when it is not expecting data. - * - */ -uint32_t emberAfGetLongPollIntervalMsCallback(void) -{ - return 0; -} - -/** @brief Get Long Poll Interval Qs - * - * This function is only useful to end devices. This function will return the - * long poll interval (in quarter seconds) for the current network. This - * interval is the maximum amount of time a child will wait between polls of its - * parent when it is not expecting data. - * - */ -uint32_t emberAfGetLongPollIntervalQsCallback(void) -{ - return 0; -} - -/** @brief Get Short Poll Interval Ms - * - * This function is only useful to sleepy end devices. This function will - * return the short poll interval (in milliseconds) for the current network. - * This interval is the maximum amount of time a child will wait between polls - * of its parent when it is expecting data. - * - */ -uint16_t emberAfGetShortPollIntervalMsCallback(void) -{ - return 0; -} - -/** @brief Get Short Poll Interval Qs - * - * This function is only useful to sleepy end devices. This function will - * return the short poll interval (in quarter seconds) for the current network. - * This interval is the maximum amount of time a child will wait between polls - * of its parent when it is expecting data. - * - */ -uint16_t emberAfGetShortPollIntervalQsCallback(void) -{ - return 0; -} - -/** @brief Get Source Route Overhead - * - * This function is called by the framework to determine the overhead required - * in the network frame for source routing to a particular destination. - * - * @param destination The node id of the destination Ver.: always - */ -uint8_t emberAfGetSourceRouteOverheadCallback(EmberNodeId destination) -{ - return 0; -} - -/** @brief Get Wake Timeout Bitmask - * - * This function is only useful to sleepy end devices. This function will - * return the wake timeout bitmask for the current network. The bitmask - * determines which tasks will timeout automatically and which tasks require - * manual removal from the task list. - * - */ -EmberAfApplicationTask emberAfGetWakeTimeoutBitmaskCallback(void) -{ - return 0; -} - -/** @brief Get Wake Timeout Ms - * - * This function is only useful to sleepy end devices. This function will - * return the wake timeout (in milliseconds) for the current network. This - * timeout is the maximum amount of time a child will wait for a task in the - * wake bitmask to finish. While waiting, the device will short poll. - * - */ -uint16_t emberAfGetWakeTimeoutMsCallback(void) -{ - return 0; -} - -/** @brief Get Wake Timeout Qs - * - * This function is only useful to sleepy end devices. This function will - * return the wake timeout (in quarter seconds) for the current network. This - * timeout is the maximum amount of time a child will wait for a task in the - * wake bitmask to finish. While waiting, the device will short poll. - * - */ -uint16_t emberAfGetWakeTimeoutQsCallback(void) -{ - return 0; -} - -/** @brief Hal Button Isr - * - * This callback is called by the framework whenever a button is pressed on the - * device. This callback is called within ISR context. - * - * @param button The button which has changed state, either BUTTON0 or BUTTON1 - * as defined in the appropriate BOARD_HEADER. Ver.: always - * @param state The new state of the button referenced by the button parameter, - * either ::BUTTON_PRESSED if the button has been pressed or ::BUTTON_RELEASED - * if the button has been released. Ver.: always - */ -void emberAfHalButtonIsrCallback(uint8_t button, uint8_t state) {} - -/** @brief Incoming Packet Filter - * - * ** REQUIRES INCLUDING THE PACKET-HANDOFF PLUGIN ** - - This is called by - * the Packet Handoff plugin when the stack receives a packet from one of the - * protocol layers specified in ::EmberZigbeePacketType. - - The packetType - * argument is one of the values of the ::EmberZigbeePacketType enum. If the - * stack receives an 802.15.4 MAC beacon, it will call this function with the - * packetType argument set to ::EMBER_ZIGBEE_PACKET_TYPE_BEACON. - - The - * implementation of this callback may alter the data contained in packetData, - * modify options and flags in the auxillary data, or consume the packet itself, - * either sending the message, or discarding it as it sees fit. - * - * @param packetType the type of packet and associated protocol layer Ver.: - * always - * @param packetData flat buffer containing the packet data associated with the - * packet type Ver.: always - * @param size_p a pointer containing the size value of the packet Ver.: always - * @param data auxillary data included with the packet Ver.: always - */ -EmberPacketAction emberAfIncomingPacketFilterCallback(EmberZigbeePacketType packetType, uint8_t * packetData, uint8_t * size_p, - void * data) -{ - return EMBER_ACCEPT_PACKET; -} - -/** @brief Initiate Inter Pan Key Establishment - * - * This function is called by the framework to initiate key establishment with a - * remote device on a different PAN. The application should return - * EMBER_SUCCESS if key establishment was initiated successfully. The - * application should call ::emberAfInterPanKeyEstablishmentCallback as events - * occur. - * - * @param panId The PAN id of the remote device. Ver.: always - * @param eui64 The EUI64 of the remote device. Ver.: always - */ -EmberStatus emberAfInitiateInterPanKeyEstablishmentCallback(EmberPanId panId, const EmberEUI64 eui64) -{ - return EMBER_LIBRARY_NOT_PRESENT; -} - -/** @brief Initiate Key Establishment - * - * This function is called by the framework to initiate key establishment with a - * remote device. The application should return EMBER_SUCCESS if key - * establishment was initiated successfully. The application should call - * ::emberAfKeyEstablishmentCallback as events occur. - * - * @param nodeId The node id of the remote device. Ver.: always - * @param endpoint The endpoint on the remote device. Ver.: always - */ -EmberStatus emberAfInitiateKeyEstablishmentCallback(EmberNodeId nodeId, uint8_t endpoint) -{ - return EMBER_LIBRARY_NOT_PRESENT; -} - -/** @brief Initiate Partner Link Key Exchange - * - * This function is called by the framework to initiate a partner link key - * exchange with a remote device. The application should return EMBER_SUCCESS - * if the partner link key exchange was initiated successfully. When the - * partner link key exchange completes, the application should call the given - * callback. - * - * @param target The node id of the remote device. Ver.: always - * @param endpoint The key establishment endpoint of the remote device. Ver.: - * always - * @param callback The callback that should be called when the partner link key - * exchange completse. Ver.: always - */ -EmberStatus emberAfInitiatePartnerLinkKeyExchangeCallback(EmberNodeId target, uint8_t endpoint, - EmberAfPartnerLinkKeyExchangeCallback * callback) -{ - return EMBER_LIBRARY_NOT_PRESENT; -} - -/** @brief Inter Pan Key Establishment - * - * A callback by the key-establishment code to indicate an event has occurred. - * For error codes this is purely a notification. For non-error status codes - * (besides LINK_KEY_ESTABLISHED), it is the application's chance to allow or - * disallow the operation. If the application returns true then the key - * establishment is allowed to proceed. If it returns false, then key - * establishment is aborted. LINK_KEY_ESTABLISHED is a notification of success. - * - * @param status Ver.: always - * @param amInitiator Ver.: always - * @param panId Ver.: always - * @param eui64 Ver.: always - * @param delayInSeconds Ver.: always - */ -bool emberAfInterPanKeyEstablishmentCallback(EmberAfKeyEstablishmentNotifyMessage status, bool amInitiator, EmberPanId panId, - const EmberEUI64 eui64, uint8_t delayInSeconds) -{ - return true; -} - -/** @brief Interpan Send Message - * - * This function will send a raw MAC message with interpan frame format using - * the passed parameters. - * - * @param header Interpan header info Ver.: always - * @param messageLength The length of the message received or to send Ver.: - * always - * @param message The message data received or to send. Ver.: always - */ -EmberStatus emberAfInterpanSendMessageCallback(EmberAfInterpanHeader * header, uint16_t messageLength, uint8_t * message) -{ - return EMBER_LIBRARY_NOT_PRESENT; -} - -/** @brief Key Establishment - * - * A callback by the key-establishment code to indicate an event has occurred. - * For error codes this is purely a notification. For non-error status codes - * (besides LINK_KEY_ESTABLISHED), it is the application's chance to allow or - * disallow the operation. If the application returns true then the key - * establishment is allowed to proceed. If it returns false, then key - * establishment is aborted. LINK_KEY_ESTABLISHED is a notification of success. - * - * @param status Ver.: always - * @param amInitiator Ver.: always - * @param partnerShortId Ver.: always - * @param delayInSeconds Ver.: always - */ -bool emberAfKeyEstablishmentCallback(EmberAfKeyEstablishmentNotifyMessage status, bool amInitiator, EmberNodeId partnerShortId, - uint8_t delayInSeconds) -{ - return true; -} - -/** @brief On/off Cluster Level Control Effect - * - * This is called by the framework when the on/off cluster initiates a command - * that must effect a level control change. The implementation assumes that the - * client will handle any effect on the On/Off Cluster. - * - * @param endpoint Ver.: always - * @param newValue Ver.: always - */ -void emberAfOnOffClusterLevelControlEffectCallback(uint8_t endpoint, bool newValue) {} - -/** @brief Main Init - * - * This function is called from the application's main function. It gives the - * application a chance to do any initialization required at system startup. Any - * code that you would normally put into the top of the application's main() - * routine should be put into this function. This is called before the clusters, - * plugins, and the network are initialized so some functionality is not yet - * available. - Note: No callback in the Application Framework is - * associated with resource cleanup. If you are implementing your application on - * a Unix host where resource cleanup is a consideration, we expect that you - * will use the standard Posix system calls, including the use of atexit() and - * handlers for signals such as SIGTERM, SIGINT, SIGCHLD, SIGPIPE and so on. If - * you use the signal() function to register your signal handler, please mind - * the returned value which may be an Application Framework function. If the - * return value is non-null, please make sure that you call the returned - * function from your handler to avoid negating the resource cleanup of the - * Application Framework itself. - * - */ -void emberAfMainInitCallback(void) {} - -/** @brief Main Start - * - * This function is called at the start of main after the HAL has been - * initialized. The standard main function arguments of argc and argv are - * passed in. However not all platforms have support for main() function - * arguments. Those that do not are passed NULL for argv, therefore argv should - * be checked for NULL before using it. If the callback determines that the - * program must exit, it should return true. The value returned by main() will - * be the value written to the returnCode pointer. Otherwise the callback - * should return false to let normal execution continue. - * - * @param returnCode Ver.: always - * @param argc Ver.: always - * @param argv Ver.: always - */ -bool emberAfMainStartCallback(int * returnCode, int argc, char ** argv) -{ - // NOTE: argc and argv may not be supported on all platforms, so argv MUST be - // checked for NULL before referencing it. On those platforms without argc - // and argv "0" and "NULL" are passed respectively. - - return false; // exit? -} - -/** @brief Main Tick - * - * Whenever main application tick is called, this callback will be called at the - * end of the main tick execution. - * - */ -void emberAfMainTickCallback(void) {} - -/** @brief Scenes Cluster Make Invalid - * - * This function is called to invalidate the valid attribute in the Scenes - * cluster. - * - * @param endpoint Ver.: always - */ -EmberAfStatus emberAfScenesClusterMakeInvalidCallback(uint8_t endpoint) -{ - return EMBER_ZCL_STATUS_UNSUP_CLUSTER_COMMAND; -} - -/** @brief Mark Buffers - * - * This function is called when the garbage collector runs. Any buffers held by - * the application must be marked. - * - */ -void emberAfMarkBuffersCallback(void) -{ - // emMarkBuffer(&bufferUsed); -} - -/** @brief Message Sent - * - * This function is called by the application framework from the message sent - * handler, when it is informed by the stack regarding the message sent status. - * All of the values passed to the emberMessageSentHandler are passed on to this - * callback. This provides an opportunity for the application to verify that its - * message has been sent successfully and take the appropriate action. This - * callback should return a bool value of true or false. A value of true - * indicates that the message sent notification has been handled and should not - * be handled by the application framework. - * - * @param type Ver.: always - * @param indexOrDestination Ver.: always - * @param apsFrame Ver.: always - * @param msgLen Ver.: always - * @param message Ver.: always - * @param status Ver.: always - */ -bool emberAfMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, EmberApsFrame * apsFrame, - uint16_t msgLen, uint8_t * message, EmberStatus status) -{ - return false; -} - -/** @brief Ncp Init - * - * This function is called when the network coprocessor is being initialized, - * either at startup or upon reset. It provides applications on opportunity to - * perform additional configuration of the NCP. The function is always called - * twice when the NCP is initialized. In the first invocation, memoryAllocation - * will be true and the application should only issue EZSP commands that affect - * memory allocation on the NCP. For example, tables on the NCP can be resized - * in the first call. In the second invocation, memoryAllocation will be false - * and the application should only issue EZSP commands that do not affect memory - * allocation. For example, tables on the NCP can be populated in the second - * call. This callback is not called on SoCs. - * - * @param memoryAllocation Ver.: always - */ -void emberAfNcpInitCallback(bool memoryAllocation) {} - -/** @brief Ncp Is Awake Isr - * - * This function is called IN ISR CONTEXT. It notes that the NCP is awake after - * sleeping. Care should be taken to do minimal processing in this ISR handler - * function. - * - */ -void emberAfNcpIsAwakeIsrCallback(void) {} - -/** @brief Network Key Update Complete - * - * This is called by the framework when a network key update operation started - * by the trust center is complete. - * - * @param status Ver.: always - */ -void emberAfNetworkKeyUpdateCompleteCallback(EmberStatus status) {} - -/** @brief Ota Bootload - * - * The platform specific routine to bootload the device from a ZigBee - * over-the-air upgrade file. - * - * @param id A pointer to the structure that contains the information about what - * OTA image to bootload. Ver.: always - * @param ncpUpgradeTagId The tag ID of the upgrade data that will be used to - * bootload the device. Ver.: always - */ -uint8_t emberAfOtaBootloadCallback(const EmberAfOtaImageId * id, uint16_t ncpUpgradeTagId) -{ - // Please implement me - emberAfCorePrintln("Not supported."); - return 1; -} - -/** @brief Ota Client Bootload - * - * This callback is fired when the OTA Client recevies a command to bootload the - * newly downloaded OTA image. This callback will perform the platform specific - * to bootload their device. - * - * @param id This is the identifier relating to the image that has been - * downloaded and is ready for bootload. Ver.: always - */ -void emberAfOtaClientBootloadCallback(const EmberAfOtaImageId * id) -{ - // Any final preperation prior to the bootload should be done here. - // It is assumed that the device will reset in most all cases. - // Please implement me. -} - -/** @brief Ota Client Custom Verify - * - * This callback is executed by the OTA client after the signature verification - * has successfully completed. It allows the device to do its own custom - * verification of the image (such as verifying that the EBL is intact). - * - * @param newVerification This indicates if a new verification should be - * started. Ver.: always - * @param id This is ID of the image to be verified. Ver.: always - */ -EmberAfImageVerifyStatus emberAfOtaClientCustomVerifyCallback(bool newVerification, const EmberAfOtaImageId * id) -{ - // Manufacturing specific checks can be made to the image in this function to - // determine if it is valid. This function is called AFTER cryptographic - // checks have passed. If the cryptographic checks failed, this function will - // never be called. - - // The function shall return one of the following based on its own - // verification process. - // 1) EMBER_AF_IMAGE_GOOD - the image has passed all checks - // 2) EMBER_AF_IMAGE_BAD - the image is not valid - // 3) EMBER_AF_IMAGE_VERIFY_IN_PROGRESS - the image is valid so far, but more - // checks are needed. This callback shall be re-executed later to - // continue verification. This allows other code in the framework to run. - return EMBER_AF_IMAGE_GOOD; -} - -/** @brief Ota Client Download Complete - * - * This callback indicates that the OTA client has completed the download of a - * file. If the file has been completely downloaded and cryptographic checks - * have been turned on, then those will be performed prior to this callback and - * that outcome included in the 'success' result. On failure, this callback is - * merely informative, and the return type is ignored. On succesful download, - * this callback allows the client to perform any additional verification of the - * downloaded image and return that result to the OTA server. - * - * @param success This indicates the success or failure of the download and - * cryptographic verification process (if applicable). Ver.: always - * @param id This is the image identifier information that corresponds to the - * download result. Ver.: always - */ -bool emberAfOtaClientDownloadCompleteCallback(EmberAfOtaDownloadResult success, const EmberAfOtaImageId * id) -{ - // At this point the image has been completely downloaded and cryptographic - // checks (if applicable) have been performed. - - if (!success) - { - emberAfOtaBootloadClusterPrintln("Download failed."); - return true; // return value is ignored - } - - // This is for any additional validation that needs to be performed - // on the image by the application. - - // The results of checks here will be returned back to the OTA server - // in the Upgrade End request. - return true; -} - -/** @brief Ota Client Incoming Message Raw - * - * This callback is for processing incoming messages for the Over-the-air - * bootload cluster client. ZCL will not process the message and instead hand - * the raw over the air data to the callback for its own processing. - * - * @param message A pointer to the structure containing the message buffer and - * other information about it. Ver.: always - */ -bool emberAfOtaClientIncomingMessageRawCallback(EmberAfClusterCommand * message) -{ - return false; -} - -/** @brief Ota Client Start - * - * This callback should be called when the profile specific registration has - * completed successfully. It will start the client's state machine that will - * find the OTA server, query it for the next image, download the image, wait - * for the bootload message, and kick off the bootload. - * - */ -void emberAfOtaClientStartCallback(void) {} - -/** @brief Ota Client Version Info - * - * This function is called by the OTA client when a new query will occur to the - * server asking what the next version of firmware is. The client can inform - * the cluster software as to what information to use in the query (and - * subsequent download). - * - * @param currentImageInfo This is the information to use in the next query by - * the client cluster code. It contains the manufacturer ID, image type ID, and - * the firmware version to be specified in the query message sent to the server. - * Ver.: always - * @param hardwareVersion This is a pointer to the hardware version to use in - * the query. If no hardware version should be used, then - * EMBER_AF_INVALID_HARDWARE_VERSION should be used. Ver.: always - */ -void emberAfOtaClientVersionInfoCallback(EmberAfOtaImageId * currentImageInfo, uint16_t * hardwareVersion) -{ - // Customer will fill in the image info with their manufacturer ID, - // image type ID, and current software version number. - // The deviceSpecificFileEui64 can be ignored. - - // It may be necessary to dynamically determine this by talking to - // another device, as is the case with a host talking to an NCP device. - - // However, this routine will be called repeatedly so it may be wise - // to cache the data! - - /* This is commented out since the #defines below are not defined. - - if (currentImageInfo != NULL) { - MEMSET(currentImageInfo, 0, sizeof(EmberAfOtaImageId)); - currentImageInfo->manufacturerId = EMBER_AF_MANUFACTURER_CODE; - currentImageInfo->imageTypeId = EMBER_AF_IMAGE_TYPE_ID; - currentImageInfo->firmwareVersion = EMBER_AF_CUSTOM_FIRMWARE_VERSION; - } - - if (hardwareVersion != NULL) { - *hardwareVersion = EMBER_AF_INVALID_HARDWARE_VERSION; - } - - assert(false); - */ -} - -/** @brief Ota Page Request Server Policy - * - * This callback is called by the OTA server page request code when it wants to - * determine if it is allowed for an OTA client to make a page request. It is - * only called if page request support has been enabled on the server. It - * should return EMBER_ZCL_STATUS_SUCCESS if it allows the page request, and - * EMBER_ZCL_STATUS_UNSUP_CLUSTER_COMMAND if it does not want to allow it. - * - */ -uint8_t emberAfOtaPageRequestServerPolicyCallback(void) -{ - return EMBER_ZCL_STATUS_SUCCESS; -} - -/** @brief Ota Server Block Size - * - * This function provides a way for the server to adjust the block size of its - * response to an Image block request by a client. - * - * @param clientNodeId The node Id of OTA client making an image block request. - * Ver.: always - */ -uint8_t emberAfOtaServerBlockSizeCallback(EmberNodeId clientNodeId) -{ - // This function provides a way for the server to potentially - // adjust the block size based on the client who is requesting. - // In other words if we are using source routing we will limit - // data returned by enough to put a source route into the message. - - // Image Block Response Message Format - // Status Code: 1-byte - // Manuf Code: 2-bytes - // Image Type: 2-bytes - // File Ver: 4-bytes - // File Offset: 4-bytes - // Data Size: 1-byte - // Data: variable - const uint8_t IMAGE_BLOCK_RESPONSE_OVERHEAD = (EMBER_AF_ZCL_OVERHEAD + 14); - - EmberApsFrame apsFrame; - uint8_t maxSize; - apsFrame.options = EMBER_APS_OPTION_NONE; - - if (emberAfIsCurrentSecurityProfileSmartEnergy()) - { - apsFrame.options |= EMBER_APS_OPTION_ENCRYPTION; - } - - maxSize = emberAfMaximumApsPayloadLength(EMBER_OUTGOING_DIRECT, clientNodeId, &apsFrame); - maxSize -= IMAGE_BLOCK_RESPONSE_OVERHEAD; - return maxSize; -} - -/** @brief Ota Server Incoming Message Raw - * - * This callback is for processing incoming messages for the Over-the-air - * bootload cluster server. ZCL will not process the message and instead hand - * the raw over the air data to the callback for its own processing. - * - * @param message A pointer to the structure containing the message buffer and - * other information about it. Ver.: always - */ -bool emberAfOtaServerIncomingMessageRawCallback(EmberAfClusterCommand * message) -{ - return false; -} - -/** @brief Ota Server Query - * - * This callback is fired when the OTA server receives a query request by the - * client. The callback lets the server application indicate to the client what - * the 'next' version of software is for the device, or if there is not one - * available. - * - * @param currentImageId This is the current software image that the client - * hase. Ver.: always - * @param hardwareVersion If this value is non-NULL, it indicates the hardware - * version of the client device. If NULL, the client did not specify a hardware - * version. Ver.: always - * @param nextUpgradeImageId This is a pointer to a data structure containing - * the 'next' software version for the client to download. Ver.: always - */ -uint8_t emberAfOtaServerQueryCallback(const EmberAfOtaImageId * currentImageId, uint16_t * hardwareVersion, - EmberAfOtaImageId * nextUpgradeImageId) -{ - // If a new software image is available, this function should return EMBER_ZCL_STATUS_SUCCESS - // and populate the 'nextUpgradeImageId' structure with the appropriate values. - // If no new software image is available (i.e. the client should not download a firmware image) - // then the server should return EMBER_ZCL_STATUS_NO_IMAGE_AVAILABLE. - return EMBER_ZCL_STATUS_NO_IMAGE_AVAILABLE; -} - -/** @brief Ota Server Send Image Notify - * - * This callback is an indication to the OTA server that it should send out - * notification about an OTA file that is available for download. - * - * @param dest The destination of the image notify message. May be a broadcast - * address. Ver.: always - * @param endpoint The destination endpoint of the image notify message. May be - * a broadcast endpoint. Ver.: always - * @param payloadType The type of data the image notify message will contain. 0 - * = no data. 1 = Manufacturer ID. 2 = Manufacturer ID and the image type ID. - * 3 = Manufacturer ID, image type ID, and firmware version. Ver.: always - * @param queryJitter The percentage of nodes that should respond to this - * message, from 1-100. On receipt of this message, each recipient will - * randomly choose a percentage and only query the server if their percentage is - * below this value. Ver.: always - * @param id The image information that will be put in the message. The data - * within this struct that will be appended to the message is determined by the - * previous 'payloadType' argument. Ver.: always - */ -bool emberAfOtaServerSendImageNotifyCallback(EmberNodeId dest, uint8_t endpoint, uint8_t payloadType, uint8_t queryJitter, - const EmberAfOtaImageId * id) -{ - return false; -} - -/** @brief Ota Server Upgrade End Request - * - * This function is called when the OTA server receives a request an upgrade end - * request. If the request indicated a successful download by the client, the - * server must tell the client when and if to upgrade to the downloaded image. - * - * @param source The node ID of the device that sent the upgrade end request. - * Ver.: always - * @param status This is the ZCL status sent by the client indicating the result - * of its attempt to download the new upgrade image. If the status is not - * EMBER_ZCL_STATUS_SUCCESS then this callback is merely informative and no - * response mesasge will be generated by the server. Ver.: always - * @param returnValue If the server returns true indicating that the client - * should apply the upgrade, this time value indicates when in the future the - * client should apply the upgrade. Ver.: always - * @param imageId This variable indicates the software version that the client - * successfully downloaded and is asking to upgrade to. Ver.: always - */ -bool emberAfOtaServerUpgradeEndRequestCallback(EmberNodeId source, uint8_t status, uint32_t * returnValue, - const EmberAfOtaImageId * imageId) -{ - // If the status value is not EMBER_ZCL_STATUS_SUCCESS, then this callback is - // merely informative and no response message will be generated by the server. - // If the server wants the client to NOT apply the upgrade, then it should - // return false. - // If the server wants the client to apply the upgrade, it should return true - // and set the 'returnValue' parameter to when it wants the client to - // apply the upgrade. There are three possible values: - // 0 = Apply the upgrade now - // 0xFFFFFFFF = Don't apply yet, ask again later. - // (anything-else) = Apply the upgrade X minutes from now. - *returnValue = 0; - return true; -} - -/** @brief Ota Storage Check Temp Data - * - * This callback will validate temporary data in the storage device to determine - * whether it is a complete file, a partially downloaded file, or there is no - * file present. When a complete or partial file is found it will return - * EMBER_AF_OTA_STORAGE_SUCCESS or EMBER_AF_OTA_STORAGE_PARTIAL_FILE_FOUND, - * respectively. In that case, the currentOffset, totalImageSize, and - * newFileInfo will be populated with data. When EMBER_AF_OTA_STORAGE_ERROR is - * returned, no temporary data is present. - * - * @param currentOffset A pointer to a value that will be written with the - * offset within the total file size that has been successfully stored in the - * storage device. This will indicate how much data has been currently - * dowloaded. Ver.: always - * @param totalImageSize A pointer to a value that will be written with the - * total image size of the OTA file when a download has completed. This does - * not indicate how much data has actually been downloaded currently. Ver.: - * always - * @param newFileInfo This is the image id of the temporary file data stored in - * the storage device. Ver.: always - */ -EmberAfOtaStorageStatus emberAfOtaStorageCheckTempDataCallback(uint32_t * currentOffset, uint32_t * totalImageSize, - EmberAfOtaImageId * newFileInfo) -{ - // If the image data cannot be successfully verified, an error should be returned. - return EMBER_AF_OTA_STORAGE_ERROR; -} - -/** @brief Ota Storage Clear Temp Data - * - * This function clears any existing temp data that was downloaed. It is used - * immediately prior to downloading a raw image over the air. - * - */ -EmberAfOtaStorageStatus emberAfOtaStorageClearTempDataCallback(void) -{ - // If the image data cannot be stored, an error should be returned. - return EMBER_AF_OTA_STORAGE_ERROR; -} - -/** @brief Ota Storage Close - * - * This callback shuts down the ZigBee Over-the-air storage module. - * - */ -void emberAfOtaStorageCloseCallback(void) -{ - // Please implement me. - assert(false); -} - -/** @brief Ota Storage Driver Download Finish - * - * This callback defines the low-level means by which a device records the final - * offset value of the download image. - * - * @param offset The value of the final offset of the image download. Ver.: - * always - */ -void emberAfOtaStorageDriverDownloadFinishCallback(uint32_t offset) -{ - // The storage driver and the rest of the OTA bootload code will not function correctly unless it is implemnted. - // Please implement me. - assert(false); -} - -/** @brief Ota Storage Driver Init - * - * The initialization code for the OTA storage driver. - * - */ -bool emberAfOtaStorageDriverInitCallback(void) -{ - // The storage driver and the rest of the OTA bootload code will not function correctly unless it is implemnted. - // Please implement me. - assert(false); - return false; -} - -/** @brief Ota Storage Driver Invalidate Image - * - * This callback invalidates the image stored on disk so that it will not be - * bootloaded, and it will not be a valid image that is in the middle of - * downloading. - * - */ -EmberAfOtaStorageStatus emberAfOtaStorageDriverInvalidateImageCallback(void) -{ - // The storage driver and the rest of the OTA bootload code will not function correctly unless it is implemnted. - // Please implement me. - assert(false); - return EMBER_AF_OTA_STORAGE_ERROR; -} - -/** @brief Ota Storage Driver Prepare To Resume Download - * - * This callback allows the underlying storage driver to prepare to resume the - * OTA file download. For example, the driver may exceute a page erase to - * insure the next page is ready to be written to. - * - */ -EmberAfOtaStorageStatus emberAfOtaStorageDriverPrepareToResumeDownloadCallback(void) -{ - assert(false); - return EMBER_AF_OTA_STORAGE_ERROR; -} - -/** @brief Ota Storage Driver Read - * - * This callback defines the low-level means by which a device reads from the - * OTA storage device. - * - * @param offset The address offset from the start of the storage device where - * data is to be read. Ver.: always - * @param length The length of the data to be read from the storage device. - * Ver.: always - * @param returnData A pointer where the data read from the device should be - * written to. Ver.: always - */ -bool emberAfOtaStorageDriverReadCallback(uint32_t offset, uint32_t length, uint8_t * returnData) -{ - // The storage driver and the rest of the OTA bootload code will not function correctly unless it is implemnted. - // Please implement me. - assert(false); - return false; -} - -/** @brief Ota Storage Driver Retrieve Last Stored Offset - * - * This callback defines the low-level means by which a device retrieves the - * last persistently recorded download offset. This may be different than last - * actual download offset. - * - */ -uint32_t emberAfOtaStorageDriverRetrieveLastStoredOffsetCallback(void) -{ - // The storage driver and the rest of the OTA bootload code will not function correctly unless it is implemnted. - // Please implement me. - assert(false); - return 0; -} - -/** @brief Ota Storage Driver Write - * - * This callback defines the low-level means by which a device reads from the - * OTA storage device. - * - * @param dataToWrite A pointer to the data that will be written to the storage - * device. Ver.: always - * @param offset The address offset from the start of the storage device where - * data will be written. Ver.: always - * @param length The length of the data to be written to the storage device. - * Ver.: always - */ -bool emberAfOtaStorageDriverWriteCallback(const uint8_t * dataToWrite, uint32_t offset, uint32_t length) -{ - // The storage driver and the rest of the OTA bootload code will not function correctly unless it is implemnted. - // Please implement me. - assert(false); - return false; -} - -/** @brief Ota Storage Finish Download - * - * This function indicates to the storage module that the download has finished. - * - * @param offset The final offset of the downloaded file (i.e. the total size) - * Ver.: always - */ -EmberAfOtaStorageStatus emberAfOtaStorageFinishDownloadCallback(uint32_t offset) -{ - return EMBER_AF_OTA_STORAGE_SUCCESS; -} - -/** @brief Ota Storage Get Count - * - * This callback returns the total number of ZigBee Over-the-air upgrade images - * stored in the storage module. - * - */ -uint8_t emberAfOtaStorageGetCountCallback(void) -{ - return 0; -} - -/** @brief Ota Storage Get Full Header - * - * This callback populates the EmberAfOtaHeader structure pointed to by the - * returnData with data about the OTA file stored in the storage module. - * - * @param id This is a pointer to the image id for the OTA file to retrieve - * information about. Ver.: always - * @param returnData This is a pointer to the location of the structure that - * will be populated with data. Ver.: always - */ -EmberAfOtaStorageStatus emberAfOtaStorageGetFullHeaderCallback(const EmberAfOtaImageId * id, EmberAfOtaHeader * returnData) -{ - // If the requested image cannot be found, then an error shouldb e returned. - return EMBER_AF_OTA_STORAGE_ERROR; -} - -/** @brief Ota Storage Get Total Image Size - * - * This function returns the total size of the ZigBee Over-the-air file with the - * passed parameters. If no file is found with those parameters, 0 is returned. - * - * @param id A pointer to the image identifier for the OTA file to retrieve - * information for. Ver.: always - */ -uint32_t emberAfOtaStorageGetTotalImageSizeCallback(const EmberAfOtaImageId * id) -{ - // On failure this should return an image size of zero. - return 0; -} - -/** @brief Ota Storage Init - * - * This callback initializes the ZigBee Over-the-air storage module. - * - */ -EmberAfOtaStorageStatus emberAfOtaStorageInitCallback(void) -{ - return EMBER_AF_OTA_STORAGE_SUCCESS; -} - -/** @brief Ota Storage Iterator First - * - * This callback lets you walk through the list of all OTA files by jumping to - * the first file in the list maintained by the storage module. If there is no - * file then emberAfOtaInvalidImageId is returned. - * - */ -EmberAfOtaImageId emberAfOtaStorageIteratorFirstCallback(void) -{ - // It is expected that the storage module maintain its own internal iterator that the 'first' and 'next' functions will - // manipulate. - - // If there are no images at all, this function should return the invalid image id. - return emberAfInvalidImageId; -} - -/** @brief Ota Storage Iterator Next - * - * This callback lets you walk through the list of all OTA files by jumping to - * the next file in the list maintained by the storage module. If there is no - * next file then emberAfOtaInvalidImageId is returned. - * - */ -EmberAfOtaImageId emberAfOtaStorageIteratorNextCallback(void) -{ - // It is expected that the storage module maintain its own internal iterator that the 'first' and 'next' functions will - // manipulate. - - // If there are no more images, this function should return the invalid image id. - return emberAfInvalidImageId; -} - -/** @brief Ota Storage Read Image Data - * - * This callback reads data from the specified OTA file and returns that data to - * the caller. - * - * @param id This is a pointer to the image id for the OTA file to retrieve data - * from. Ver.: always - * @param offset This is the offset relative to the start of the image where the - * data should be read from. Ver.: always - * @param length This is the length of data that will be read. Ver.: always - * @param returnData This is a pointer to where the data read out of the file - * will be written to Ver.: always - * @param returnedLength This is a pointer to a variable where the actual length - * of data read will be written to. A short read may occur if the end of file - * was reached. Ver.: always - */ -EmberAfOtaStorageStatus emberAfOtaStorageReadImageDataCallback(const EmberAfOtaImageId * id, uint32_t offset, uint32_t length, - uint8_t * returnData, uint32_t * returnedLength) -{ - // If the requested image cannot be found, then an error should be returned. - return EMBER_AF_OTA_STORAGE_ERROR; -} - -/** @brief Ota Storage Search - * - * This callback searches through the list of all images for one that matches - * the passed parameters. On success an image identifier is returned with a - * matching image. On failure emberAfInvalidImageId is returned. - * - * @param manufacturerId The ZigBee assigned identifier of the manufacturer - * contained in the OTA image being searched for. Ver.: always - * @param imageTypeId The image type identifier contained in the OTA image being - * searched for. Ver.: always - * @param hardwareVersion This is a pointer to the hardware version that will be - * used in the search. If the pointer is NULL, hardware version will not be - * considered when searching for matching images. If it points to a value, the - * search will only consider images where that value falls between the minimum - * and maxmimum hardware version specified in the OTA file. If no hardware - * version is present in an OTA file but the other parameters match, the file - * will be considered a match Ver.: always - */ -EmberAfOtaImageId emberAfOtaStorageSearchCallback(uint16_t manufacturerId, uint16_t imageTypeId, const uint16_t * hardwareVersion) -{ - // If no image is found that matches the search criteria, this function should return the invalid image id. - return emberAfInvalidImageId; -} - -/** @brief Ota Storage Write Temp Data - * - * This function writes to the temporary data in the storage device at the - * specified offset. It is used when downloading a raw image over the air. - * - * @param offset The location within the download image file where to write the - * data. Ver.: always - * @param length The length of data to write. Ver.: always - * @param data A pointer to the temporary data that will be written to the - * storage device. Ver.: always - */ -EmberAfOtaStorageStatus emberAfOtaStorageWriteTempDataCallback(uint32_t offset, uint32_t length, const uint8_t * data) -{ - // If the image data cannot be stored, an error should be returned. - return EMBER_AF_OTA_STORAGE_ERROR; -} - -/** @brief Outgoing Packet Filter - * - * ** REQUIRES INCLUDING THE PACKET-HANDOFF PLUGIN ** - - This is called by - * the Packet Handoff plugin when the stack prepares to send a packet from one - * of the protocol layers specified in ::EmberZigbeePacketType. - - The - * packetType argument is one of the values of the ::EmberZigbeePacketType enum. - * If the stack receives an 802.15.4 MAC beacon, it will call this function with - * the packetType argument set to ::EMBER_ZIGBEE_PACKET_TYPE_BEACON. - - - * The implementation of this callback may alter the data contained in - * packetData, modify options and flags in the auxillary data, or consume the - * packet itself, either sending the message, or discarding it as it sees fit. - * - * @param packetType the type of packet and associated protocol layer Ver.: - * always - * @param packetData flat buffer containing the packet data associated with the - * packet type Ver.: always - * @param size_p a pointer containing the size value of the packet Ver.: always - * @param data auxillary data included with the packet Ver.: always - */ -EmberPacketAction emberAfOutgoingPacketFilterCallback(EmberZigbeePacketType packetType, uint8_t * packetData, uint8_t * size_p, - void * data) -{ - return EMBER_ACCEPT_PACKET; -} - -/** @brief Partner Link Key Exchange Request - * - * This function is called by the framework on SOC platforms when a remote node - * requests a partner link key exchange. The application should return - * EMBER_SUCCESS to accept the request or any other status to reject it. On - * network coprocessor platforms, this function will not be called because the - * NCP handles partner link key exchange requests based on the binding policy. - * - * @param partner The EUI of the remote node. Ver.: always - */ -EmberZdoStatus emberAfPartnerLinkKeyExchangeRequestCallback(EmberEUI64 partner) -{ - return EMBER_ZDP_NOT_SUPPORTED; -} - -/** @brief Partner Link Key Exchange Response - * - * This function is called by the framework when a remote node requests a - * partner link key exchange. The application should return true to accept the - * request or false to reject it. On network coprocessor platforms, this - * function will not be called because the NCP handles partner link key exchange - * requests based on the binding policy. - * - * @param sender The EUI of the remote node. Ver.: always - * @param status The ZDO response status. Ver.: always - */ -void emberAfPartnerLinkKeyExchangeResponseCallback(EmberNodeId sender, EmberZdoStatus status) {} - -/** @brief Performing Key Establishment - * - * This function is called by the framework to determine if the device is - * performing key establishment. The application should return true if key - * establishment is in progress. - * - */ -bool emberAfPerformingKeyEstablishmentCallback(void) -{ - return false; -} - -/** @brief Get Distributed Key - * - * This callback is fired when the Network Steering plugin needs to set the distributed - * key. The application set the distributed key from Zigbee Alliance thru this callback - * or the network steering will use the default test key. - * - * @param pointer to the distributed key struct - * @return true if the key is loaded successfully, otherwise false. - * level. Ver.: always - */ -bool emberAfPluginNetworkSteeringGetDistributedKeyCallback(EmberKeyData * key) -{ - return false; -} - -/** @brief Get Power For Radio Channel - * - * This callback is fired when the Network Steering plugin needs to set the - * power level. The application has the ability to change the max power level - * used for this particular channel. - * - * @param channel The channel that the plugin is inquiring about the power - * level. Ver.: always - */ -int8_t emberAfPluginNetworkSteeringGetPowerForRadioChannelCallback(uint8_t channel) -{ - return emberAfMaxPowerLevel(); -} - -// Ifdef out the attribute change callback, since we implement it in -// DataModelHandler -#if 0 -/** @brief Post Attribute Change - * - * This function is called by the application framework after it changes an - * attribute value. The value passed into this callback is the value to which - * the attribute was set by the framework. - * - * @param endpoint Ver.: always - * @param clusterId Ver.: always - * @param attributeId Ver.: always - * @param mask Ver.: always - * @param manufacturerCode Ver.: always - * @param type Ver.: always - * @param size Ver.: always - * @param value Ver.: always - */ -void emberAfPostAttributeChangeCallback(uint8_t endpoint, EmberAfClusterId clusterId, EmberAfAttributeId attributeId, uint8_t mask, - uint16_t manufacturerCode, uint8_t type, uint8_t size, uint8_t * value) -{} -#endif - -/** @brief Post Em4 Reset - * - * A callback called by application framework, and implemented by em4 plugin - * - */ -void emberAfPostEm4ResetCallback(void) -{ - return; -} - -/** @brief Pre Attribute Change - * - * This function is called by the application framework before it changes an - * attribute value. The value passed into this callback is the value to which - * the attribute is to be set by the framework. The application should return - * ::EMBER_ZCL_STATUS_SUCCESS to permit the change or any other ::EmberAfStatus - * to reject it. - * - * @param endpoint Ver.: always - * @param clusterId Ver.: always - * @param attributeId Ver.: always - * @param mask Ver.: always - * @param manufacturerCode Ver.: always - * @param type Ver.: always - * @param size Ver.: always - * @param value Ver.: always - */ -EmberAfStatus emberAfPreAttributeChangeCallback(uint8_t endpoint, EmberAfClusterId clusterId, EmberAfAttributeId attributeId, - uint8_t mask, uint16_t manufacturerCode, uint8_t type, uint8_t size, - uint8_t * value) -{ - return EMBER_ZCL_STATUS_SUCCESS; -} - -/** @brief Pre Cli Send - * - * This function is called by the framework when it is about to pass a message - * constructed over CLI to the stack primitives for sending. If the function - * returns true it is assumed that the callback has consumed and processed the - * message. The framework will not do any further processing on the message. - - * If the function returns false then it is assumed that the callback has - * not processed the message and the framework will continue to process - * accordingly. - * - * @param apsFrame The structure containing the APS frame Ver.: always - * @param source Source Node Id Ver.: always - * @param destination Destintion Node Id Ver.: always - * @param message Pointer to the message payload Ver.: always - * @param messageLength Length of the message payload Ver.: always - */ -bool emberAfPreCliSendCallback(EmberApsFrame * apsFrame, EmberNodeId source, EmberNodeId destination, uint8_t * message, - uint16_t messageLength) -{ - return false; -} - -/** @brief Pre Command Received - * - * This callback is the second in the Application Framework's message processing - * chain. At this point in the processing of incoming over-the-air messages, the - * application has determined that the incoming message is a ZCL command. It - * parses enough of the message to populate an EmberAfClusterCommand struct. The - * Application Framework defines this struct value in a local scope to the - * command processing but also makes it available through a global pointer - * called emberAfCurrentCommand, in app/framework/util/util.c. When command - * processing is complete, this pointer is cleared. - * - * @param cmd Ver.: always - */ -bool emberAfPreCommandReceivedCallback(EmberAfClusterCommand * cmd) -{ - return false; -} - -/** @brief Pre Message Received - * - * This callback is the first in the Application Framework's message processing - * chain. The Application Framework calls it when a message has been received - * over the air but has not yet been parsed by the ZCL command-handling code. If - * you wish to parse some messages that are completely outside the ZCL - * specification or are not handled by the Application Framework's command - * handling code, you should intercept them for parsing in this callback. - - * This callback returns a Boolean value indicating whether or not the message - * has been handled. If the callback returns a value of true, then the - * Application Framework assumes that the message has been handled and it does - * nothing else with it. If the callback returns a value of false, then the - * application framework continues to process the message as it would with any - * incoming message. - Note: This callback receives a pointer to an - * incoming message struct. This struct allows the application framework to - * provide a unified interface between both Host devices, which receive their - * message through the ezspIncomingMessageHandler, and SoC devices, which - * receive their message through emberIncomingMessageHandler. - * - * @param incomingMessage Ver.: always - */ -bool emberAfPreMessageReceivedCallback(EmberAfIncomingMessage * incomingMessage) -{ - return false; -} - -/** @brief Pre Message Send - * - * This function is called by the framework when it is about to pass a message - * to the stack primitives for sending. This message may or may not be ZCL, - * ZDO, or some other protocol. This is called prior to - any ZigBee - * fragmentation that may be done. If the function returns true it is assumed - * the callback has consumed and processed the message. The callback must also - * set the EmberStatus status code to be passed back to the caller. The - * framework will do no further processing on the message. - If the - * function returns false then it is assumed that the callback has not processed - * the mesasge and the framework will continue to process accordingly. - * - * @param messageStruct The structure containing the parameters of the APS - * message to be sent. Ver.: always - * @param status A pointer to the status code value that will be returned to the - * caller. Ver.: always - */ -bool emberAfPreMessageSendCallback(EmberAfMessageStruct * messageStruct, EmberStatus * status) -{ - return false; -} - -/** @brief Pre Ncp Reset - * - * This function will be called prior to the reset of the NCP by the host. - * - */ -void emberAfPreNcpResetCallback(void) {} - -/** @brief Pre ZDO Message Received - * - * This function passes the application an incoming ZDO message and gives the - * appictation the opportunity to handle it. By default, this callback returns - * false indicating that the incoming ZDO message has not been handled and - * should be handled by the Application Framework. - * - * @param emberNodeId Ver.: always - * @param apsFrame Ver.: always - * @param message Ver.: always - * @param length Ver.: always - */ -bool emberAfPreZDOMessageReceivedCallback(EmberNodeId emberNodeId, EmberApsFrame * apsFrame, uint8_t * message, uint16_t length) -{ - return false; -} - -/** @brief Read Attributes Response - * - * This function is called by the application framework when a Read Attributes - * Response command is received from an external device. The application should - * return true if the message was processed or false if it was not. - * - * @param clusterId The cluster identifier of this response. Ver.: always - * @param buffer Buffer containing the list of read attribute status records. - * Ver.: always - * @param bufLen The length in bytes of the list. Ver.: always - */ -bool emberAfReadAttributesResponseCallback(EmberAfClusterId clusterId, uint8_t * buffer, uint16_t bufLen) -{ - return false; -} - -/** @brief Read Reporting Configuration Command - * - * This function is called by the application framework when a Read Reporting - * Configuration command is received from an external device. The application - * should return true if the message was processed or false if it was not. - * - * @param cmd Ver.: always - */ -bool emberAfReadReportingConfigurationCommandCallback(const EmberAfClusterCommand * cmd) -{ - return false; -} - -/** @brief Read Reporting Configuration Response - * - * This function is called by the application framework when a Read Reporting - * Configuration Response command is received from an external device. The - * application should return true if the message was processed or false if it - * was not. - * - * @param clusterId The cluster identifier of this response. Ver.: always - * @param buffer Buffer containing the list of attribute reporting configuration - * records. Ver.: always - * @param bufLen The length in bytes of the list. Ver.: always - */ -bool emberAfReadReportingConfigurationResponseCallback(EmberAfClusterId clusterId, uint8_t * buffer, uint16_t bufLen) -{ - return false; -} - -/** @brief Scenes Cluster Recall Saved Scene - * - * This function is called by the framework when the application should recall a - * saved scene. - * - * @param endpoint The endpoint. Ver.: always - * @param groupId The group identifier. Ver.: always - * @param sceneId The scene identifier. Ver.: always - */ -EmberAfStatus emberAfScenesClusterRecallSavedSceneCallback(uint8_t endpoint, uint16_t groupId, uint8_t sceneId) -{ - return EMBER_ZCL_STATUS_FAILURE; -} - -/** @brief Registration Abort - * - * This callback is called when the device should abort the registration - * process. - * - */ -void emberAfRegistrationAbortCallback(void) {} - -/** @brief Registration - * - * This callback is called when the device joins a network and the process of - * registration is complete. This callback provides a success value of true if - * the registration process was successful and a value of false if registration - * failed. - * - * @param success true if registration succeeded, false otherwise. Ver.: always - */ -void emberAfRegistrationCallback(bool success) {} - -/** @brief Registration Start - * - * This callback is called when the device joins a network and the registration - * process should begin. The application should return EMBER_SUCCESS if the - * registration process started successfully. When registration is complete, - * the application should call emberAfRegistrationCallback with an indication of - * success or failure. - * - */ -EmberStatus emberAfRegistrationStartCallback(void) -{ - return EMBER_LIBRARY_NOT_PRESENT; -} - -/** @brief Remote Delete Binding Permission - * - * This function is called by the framework to request permission to service the - * remote delete binding request. Return EMBER_SUCCESS to allow request, - * anything else to disallow request. - * - * @param index index to an Ember binding table entry Ver.: always - */ -EmberStatus emberAfRemoteDeleteBindingPermissionCallback(uint8_t index) -{ - return EMBER_SUCCESS; // default -} - -/** @brief Remote Set Binding Permission - * - * This function is called by the framework to request permission to service the - * remote set binding request. Return EMBER_SUCCESS to allow request, anything - * else to disallow request. - * - * @param entry Ember Binding Tablet Entry Ver.: always - */ -EmberStatus emberAfRemoteSetBindingPermissionCallback(const EmberBindingTableEntry * entry) -{ - return EMBER_SUCCESS; // default -} - -/** @brief Remove From Current App Tasks - * - * This function is only useful to sleepy end devices. This function will - * remove the passed item from the set of tasks the application has outstanding - * (e.g. message sent requiring APS acknwoledgement). This will affect how the - * application behaves with regard to sleeping and polling. Removing the item - * from the list of outstanding tasks may allow the device to sleep longer and - * poll less frequently. If there are other outstanding tasks the system may - * still have to stay away and poll more often. - * - * @param tasks Ver.: always - */ -void emberAfRemoveFromCurrentAppTasksCallback(EmberAfApplicationTask tasks) {} - -/** @brief Scenes Cluster Remove Scenes In Group - * - * This function removes the scenes from a specified group. - * - * @param endpoint Endpoint Ver.: always - * @param groupId Group ID Ver.: always - */ -void emberAfScenesClusterRemoveScenesInGroupCallback(uint8_t endpoint, uint16_t groupId) {} - -/** @brief Report Attributes - * - * This function is called by the application framework when a Report Attributes - * command is received from an external device. The application should return - * true if the message was processed or false if it was not. - * - * @param clusterId The cluster identifier of this command. Ver.: always - * @param buffer Buffer containing the list of attribute report records. Ver.: - * always - * @param bufLen The length in bytes of the list. Ver.: always - */ -bool emberAfReportAttributesCallback(EmberAfClusterId clusterId, uint8_t * buffer, uint16_t bufLen) -{ - return false; -} - -/** @brief Reporting Attribute Change - * - * This function is called by the framework when an attribute managed by the - * framework changes. The application should call this function when an - * externally-managed attribute changes. The application should use the change - * notification to inform its reporting decisions. - * - * @param endpoint Ver.: always - * @param clusterId Ver.: always - * @param attributeId Ver.: always - * @param mask Ver.: always - * @param manufacturerCode Ver.: always - * @param type Ver.: always - * @param data Ver.: always - */ -void emberAfReportingAttributeChangeCallback(uint8_t endpoint, EmberAfClusterId clusterId, EmberAfAttributeId attributeId, - uint8_t mask, uint16_t manufacturerCode, EmberAfAttributeType type, uint8_t * data) -{} - -/** @brief Scan Error - * - * This is called by the framework on behalf of the form-and-join library to - * notify the application if an error occurs while scanning. See form-and-join - * documentation for more information. - * - * @param status The status of the scan. Ver.: always - */ -void emberAfScanErrorCallback(EmberStatus status) {} - -/** @brief Security Init - * - * This callback is called by the framework to give the application a chance to - * modify the security settings of the node during network initialization. - * Depending on the context when this callback is called, the pointer to the - * initial security state may be NULL, which means the initial security state - * can no longer be modified as the node is already operating on the network. - * - * @param state Ver.: always - * @param extended Ver.: always - * @param trustCenter Ver.: always - */ -void emberAfSecurityInitCallback(EmberInitialSecurityState * state, EmberExtendedSecurityBitmask * extended, bool trustCenter) {} - -/** @brief Key Establishment Cluster Server Command Received - * - * This function is called by the application framework when a client-to-server - * key establishment command is received but has yet to be handled by the - * framework code. This function should return a bool value indicating whether - * the command has been handled by the application code and should not be - * further processed by the framework. - * - * @param cmd Ver.: always - */ -bool emberAfKeyEstablishmentClusterServerCommandReceivedCallback(EmberAfClusterCommand * cmd) -{ - return false; -} - -/** @brief Set Default Poll Control - * - * This function will set the default poll control for the current network to - * control whether or not it can long poll. - * - * @param control Ver.: always - */ -void emberAfSetDefaultPollControlCallback(EmberAfEventPollControl control) {} - -/** @brief Set Default Sleep Control - * - * This function will set the default behavior of a sleeping device to control - * whether or not it must stay awake. A device that stays awake does not sleep - * at all. Otherwise, the device can sleep between events when appropriate. - * - * @param control Ver.: always - */ -void emberAfSetDefaultSleepControlCallback(EmberAfEventSleepControl control) {} - -/** @brief Set Form And Join Extended Pan Id - * - * This callback is called by the framework to set the extended PAN ID used by - * the current network for forming and joining. The extended PAN ID used for - * forming and joining is not necessarily the same extended PAN ID actually in - * use on the network. - * - * @param extendedPanId Ver.: always - */ -void emberAfSetFormAndJoinExtendedPanIdCallback(const uint8_t * extendedPanId) {} - -/** @brief Set Long Poll Interval Ms - * - * This function is only useful to end devices. This function will set the long - * poll interval (in milliseconds) for the current network. This interval is - * the maximum amount of time a child will wait between polls of its parent when - * it is not expecting data. - * - * @param longPollIntervalMs Ver.: always - */ -void emberAfSetLongPollIntervalMsCallback(uint32_t longPollIntervalMs) {} - -/** @brief Set Long Poll Interval Qs - * - * This function is only useful to end devices. This function will set the long - * poll interval (in quarter seconds) for the current network. This interval is - * the maximum amount of time a child will wait between polls of its parent when - * it is not expecting data. - * - * @param longPollIntervalQs Ver.: always - */ -void emberAfSetLongPollIntervalQsCallback(uint32_t longPollIntervalQs) {} - -/** @brief Set Short Poll Interval Ms - * - * This function is only useful to sleepy end devices. This function will set - * the short poll interval (in milliseconds) for the current network. This - * interval is the maximum amount of time a child will wait between polls of its - * parent when it is expecting data. - * - * @param shortPollIntervalMs Ver.: always - */ -void emberAfSetShortPollIntervalMsCallback(uint16_t shortPollIntervalMs) {} - -/** @brief Set Short Poll Interval Qs - * - * This function is only useful to sleepy end devices. This function will set - * the short poll interval (in quarter seconds) for the current network. This - * interval is the maximum amount of time a child will wait between polls of its - * parent when it is expecting data. - * - * @param shortPollIntervalQs Ver.: always - */ -void emberAfSetShortPollIntervalQsCallback(uint16_t shortPollIntervalQs) {} - -/** @brief Set Source Route Overhead - * - * This function is called by the framework when it has information about the - * source route overhead to a particular destination. The application may use - * this information to cache the source route overhead. - * - * @param destination The node id of the destination Ver.: always - * @param overhead The overhead in bytes Ver.: always - */ -void emberAfSetSourceRouteOverheadCallback(EmberNodeId destination, uint8_t overhead) {} - -/** @brief Set Time - * - * This callback should be implemented, if the device has access to real time - * clock, and has an ability to update that clock. The application framework - * expects to be passed the utcTime which is the number of seconds since the - * year 2000. Default implementation does nothing. Note: This function used to - * take time in year, month, day, hour, min, sec. We have changed this to - * utcTime in order to conserve code space. - * - * @param utcTime Ver.: always - */ -void emberAfSetTimeCallback(uint32_t utcTime) {} - -// Ifdef out emberAfOnOffClusterSetValueCallback, since it's implemented by -// on-off.c -#if 0 -/** @brief On/off Cluster Set Value - * - * This function is called when the on/off value needs to be set, either through - * normal channels or as a result of a level change. - * - * @param endpoint Ver.: always - * @param command Ver.: always - * @param initiatedByLevelChange Ver.: always - */ -EmberAfStatus emberAfOnOffClusterSetValueCallback(uint8_t endpoint, uint8_t command, bool initiatedByLevelChange) -{ - return EMBER_ZCL_STATUS_UNSUP_CLUSTER_COMMAND; -} -#endif - -/** @brief Set Wake Timeout Bitmask - * - * This function is only useful to sleepy end devices. This function will set - * the wake timeout bitmask for the current network. The bitmask determines - * which tasks will timeout automatically and which tasks require manual removal - * from the task list. - * - * @param tasks Ver.: always - */ -void emberAfSetWakeTimeoutBitmaskCallback(EmberAfApplicationTask tasks) {} - -/** @brief Set Wake Timeout Ms - * - * This function is only useful to sleepy end devices. This function will set - * the wake timeout (in milliseconds) for the current network. This timeout is - * the maximum amount of time a child will wait for a task in the wake bitmask - * to finish. While waiting, the device will short poll. - * - * @param wakeTimeoutMs Ver.: always - */ -void emberAfSetWakeTimeoutMsCallback(uint16_t wakeTimeoutMs) {} - -/** @brief Set Wake Timeout Qs - * - * This function is only useful to sleepy end devices. This function will set - * the wake timeout (in quarter seconds) for the current network. This timeout - * is the maximum amount of time a child will wait for a task in the wake - * bitmask to finish. While waiting, the device will short poll. - * - * @param wakeTimeoutQs Ver.: always - */ -void emberAfSetWakeTimeoutQsCallback(uint16_t wakeTimeoutQs) {} - -/** @brief Start Move - * - * This function is called to initiate the process for a device to move (rejoin) - * to a new parent. - * - */ -bool emberAfStartMoveCallback(void) -{ - return false; -} - -/** @brief Start Search For Joinable Network - * - * This function is called by the framework to search for joinable networks and - * join a network. The application should return EMBER_SUCCESS if the operation - * was initiated successfully. - * - */ -EmberStatus emberAfStartSearchForJoinableNetworkCallback(void) -{ - return EMBER_LIBRARY_NOT_PRESENT; -} - -/** @brief Stop Move - * - * This function is called to cancel a previously scheduled move (rejoin) to a - * new parent. - * - */ -void emberAfStopMoveCallback(void) {} - -/** @brief Scenes Cluster Store Current Scene - * - * This function is called by the framework when the application should store - * the current scene. If an entry already exists in the scene table with the - * same scene and group ids, the application should update the entry with the - * current scene. Otherwise, a new entry should be adde to the scene table, if - * possible. - * - * @param endpoint The endpoint. Ver.: always - * @param groupId The group identifier. Ver.: always - * @param sceneId The scene identifier. Ver.: always - */ -EmberAfStatus emberAfScenesClusterStoreCurrentSceneCallback(uint8_t endpoint, uint16_t groupId, uint8_t sceneId) -{ - return EMBER_ZCL_STATUS_FAILURE; -} - -/** @brief Trust Center Join - * - * This callback is called from within the application framework's - * implementation of emberTrustCenterJoinHandler or ezspTrustCenterJoinHandler. - * This callback provides the same arguments passed to the - * TrustCenterJoinHandler. For more information about the TrustCenterJoinHandler - * please see documentation included in stack/include/trust-center.h. - * - * @param newNodeId Ver.: always - * @param newNodeEui64 Ver.: always - * @param parentOfNewNode Ver.: always - * @param status Ver.: always - * @param decision Ver.: always - */ -void emberAfTrustCenterJoinCallback(EmberNodeId newNodeId, EmberEUI64 newNodeEui64, EmberNodeId parentOfNewNode, - EmberDeviceUpdate status, EmberJoinDecision decision) -{} - -/** @brief Trust Center Keepalive Abort - * - * This callback is called when the device should abort the trust center - * keepalive process. - * - */ -void emberAfTrustCenterKeepaliveAbortCallback(void) {} - -/** @brief Trust Center Keepalive Update - * - * This callback is called when the device finishes registration (successfully - * or otherwise) and the trust center keepalive process must be updated. If the - * keepalive process has not been started, then it is started. Otherwise if the - * keepalive is in the process of searching for the TC, it will process the - * result of that Trust Center search operation. - * - * @param registrationComplete Ver.: always - */ -void emberAfTrustCenterKeepaliveUpdateCallback(bool registrationComplete) {} - -/** @brief Unused Pan Id Found - * - * This is called by the framework on behalf of the form-and-join library to - * notify the application of the PAN id and channel found following a call to - * ::emberScanForUnusedPanId(). See form-and-join documentation for more - * information. - * - * @param panId Ver.: always - * @param channel Ver.: always - */ -void emberAfUnusedPanIdFoundCallback(EmberPanId panId, uint8_t channel) {} - -/** @brief Write Attributes Response - * - * This function is called by the application framework when a Write Attributes - * Response command is received from an external device. The application should - * return true if the message was processed or false if it was not. - * - * @param clusterId The cluster identifier of this response. Ver.: always - * @param buffer Buffer containing the list of write attribute status records. - * Ver.: always - * @param bufLen The length in bytes of the list. Ver.: always - */ -bool emberAfWriteAttributesResponseCallback(EmberAfClusterId clusterId, uint8_t * buffer, uint16_t bufLen) -{ - return false; -} - -/** @brief Zigbee Key Establishment - * - * A callback to the application to notify it of the status of the request for a - * Link Key. - * - * @param partner partner The IEEE address of the partner device. Or all zeros - * if the Key establishment failed. Ver.: always - * @param status The status of the key establishment. Ver.: always - */ -void emberAfZigbeeKeyEstablishmentCallback(EmberEUI64 partner, EmberKeyStatus status) {} - -/** - * @brief Called whenever the radio is powered off. - */ -void halRadioPowerDownHandler(void) {} - -/** - * @brief Called whenever the radio is powered on. - */ -void halRadioPowerUpHandler(void) {} - -/** - * @brief Called whenever the microcontroller enters/exits a idle/sleep mode - * - * @param enter True if entering idle/sleep, False if exiting - * @param sleepMode Idle/sleep mode - */ -void halSleepCallback(bool enter, SleepModes sleepMode) {} diff --git a/examples/lighting-app/efr32/src/gen/callback.h b/examples/lighting-app/efr32/src/gen/callback.h deleted file mode 100644 index 97a07d0e7dd08a..00000000000000 --- a/examples/lighting-app/efr32/src/gen/callback.h +++ /dev/null @@ -1,23777 +0,0 @@ -/** - * - * 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 SILABS_EMBER_AF_CALLBACK_PROTOTYPES -#define SILABS_EMBER_AF_CALLBACK_PROTOTYPES - -/** - * @addtogroup callback Application Framework callback interface Reference - * This header provides callback function prototypes to interface the - * developer's application code with the Ember Application Framework. - * @{ - */ - -#include "af-types.h" -//#include "hal/hal.h" -//#include EMBER_AF_API_NETWORK_STEERING - -/** @name Non-Cluster Related Callbacks */ -// @{ -/** @brief Add To Current App Tasks - * - * This function is only useful to sleepy end devices. This function will note - * the passed item as part of a set of tasks the application has outstanding - * (e.g. message sent requiring APS acknwoledgement). This will affect how the - * application behaves with regard to sleeping and polling. Until the - * outstanding task is completed, the device may poll more frequently and sleep - * less often. - * - * @param tasks Ver.: always - */ -void emberAfAddToCurrentAppTasksCallback(EmberAfApplicationTask tasks); -/** @brief Allow Network Write Attribute - * - * This function is called by the application framework before it writes an - * attribute in response to a write attribute request from an external device. - * The value passed into this callback is the value to which the attribute is to - * be set by the framework. - Example: In mirroring simple metering data - * on an Energy Services Interface (ESI) (formerly called Energy Service Portal - * (ESP) in SE 1.0).), a mirrored simple meter needs to write read-only - * attributes on its mirror. The-meter-mirror sample application, located in - * app/framework/sample-apps, uses this callback to allow the mirrored device to - * write simple metering attributes on the mirror regardless of the fact that - * most simple metering attributes are defined as read-only by the ZigBee - * specification. - Note: The ZCL specification does not (as of this - * writing) specify any permission-level security for writing writeable - * attributes. As far as the ZCL specification is concerned, if an attribute is - * writeable, any device that has a link key for the device should be able to - * write that attribute. Furthermore if an attribute is read only, it should not - * be written over the air. Thus, if you implement permissions for writing - * attributes as a feature, you MAY be operating outside the specification. This - * is unlikely to be a problem for writing read-only attributes, but it may be a - * problem for attributes that are writeable according to the specification but - * restricted by the application implementing this callback. - * - * @param endpoint Ver.: always - * @param clusterId Ver.: always - * @param attributeId Ver.: always - * @param mask Ver.: always - * @param manufacturerCode Ver.: always - * @param value Ver.: always - * @param type Ver.: always - */ -EmberAfAttributeWritePermission emberAfAllowNetworkWriteAttributeCallback(uint8_t endpoint, EmberAfClusterId clusterId, - EmberAfAttributeId attributeId, uint8_t mask, - uint16_t manufacturerCode, uint8_t * value, uint8_t type); -/** @brief Attribute Read Access - * - * This function is called whenever the Application Framework needs to check - * access permission for an attribute read. - * - * @param endpoint Ver.: always - * @param clusterId Ver.: always - * @param manufacturerCode Ver.: always - * @param attributeId Ver.: always - */ -bool emberAfAttributeReadAccessCallback(uint8_t endpoint, EmberAfClusterId clusterId, uint16_t manufacturerCode, - uint16_t attributeId); -/** @brief Attribute Write Access - * - * This function is called whenever the Application Framework needs to check - * access permission for an attribute write. - * - * @param endpoint Ver.: always - * @param clusterId Ver.: always - * @param manufacturerCode Ver.: always - * @param attributeId Ver.: always - */ -bool emberAfAttributeWriteAccessCallback(uint8_t endpoint, EmberAfClusterId clusterId, uint16_t manufacturerCode, - uint16_t attributeId); -/** @brief Clear Report Table - * - * This function is called by the framework when the application should clear - * the report table. - * - */ -EmberStatus emberAfClearReportTableCallback(void); -/** @brief Cluster Init - * - * This function is called when a specific cluster is initialized. It gives the - * application an opportunity to take care of cluster initialization procedures. - * It is called exactly once for each endpoint where cluster is present. - * - * @param endpoint Ver.: always - * @param clusterId Ver.: always - */ -void emberAfClusterInitCallback(uint8_t endpoint, EmberAfClusterId clusterId); -/** @brief Cluster Security Custom - * - * This callback is fired when determining if APS encryption is required for a - * cluster outside of the specification's required clusters. In other words, - * for the Smart Energy profile this would be a cluster beyond the list that - * normally requires APS encryption. - * - * @param profileId The profile ID Ver.: always - * @param clusterId The cluster ID Ver.: always - * @param incoming Whether this is an incoming or outgoing message. Ver.: - * always - * @param commandId The ZCL command ID being sent/received. Ver.: always - */ -bool emberAfClusterSecurityCustomCallback(EmberAfProfileId profileId, EmberAfClusterId clusterId, bool incoming, uint8_t commandId); -/** @brief Configure Reporting Command - * - * This function is called by the application framework when a Configure - * Reporting command is received from an external device. The Configure - * Reporting command contains a series of attribute reporting configuration - * records. The application should return true if the message was processed or - * false if it was not. - * - * @param cmd Ver.: always - */ -bool emberAfConfigureReportingCommandCallback(const EmberAfClusterCommand * cmd); -/** @brief Configure Reporting Response - * - * This function is called by the application framework when a Configure - * Reporting Response command is received from an external device. The - * application should return true if the message was processed or false if it - * was not. - * - * @param clusterId The cluster identifier of this response. Ver.: always - * @param buffer Buffer containing the list of attribute status records. Ver.: - * always - * @param bufLen The length in bytes of the list. Ver.: always - */ -bool emberAfConfigureReportingResponseCallback(EmberAfClusterId clusterId, uint8_t * buffer, uint16_t bufLen); -/** @brief Default Response - * - * This function is called by the application framework when a Default Response - * command is received from an external device. The application should return - * true if the message was processed or false if it was not. - * - * @param clusterId The cluster identifier of this response. Ver.: always - * @param commandId The command identifier to which this is a response. Ver.: - * always - * @param status Specifies either SUCCESS or the nature of the error that was - * detected in the received command. Ver.: always - */ -bool emberAfDefaultResponseCallback(EmberAfClusterId clusterId, uint8_t commandId, EmberAfStatus status); -/** @brief Discover Attributes Response - * - * This function is called by the application framework when a Discover - * Attributes Response or Discover Attributes Extended Response command is - * received from an external device. The Discover Attributes Response command - * contains a bool indicating if discovery is complete and a list of zero or - * more attribute identifier/type records. The final argument indicates whether - * the response is in the extended format or not. The application should return - * true if the message was processed or false if it was not. - * - * @param clusterId The cluster identifier of this response. Ver.: always - * @param discoveryComplete Indicates whether there are more attributes to be - * discovered. true if there are no more attributes to be discovered. Ver.: - * always - * @param buffer Buffer containing the list of attribute identifier/type - * records. Ver.: always - * @param bufLen The length in bytes of the list. Ver.: always - * @param extended Indicates whether the response is in the extended format or - * not. Ver.: always - */ -bool emberAfDiscoverAttributesResponseCallback(EmberAfClusterId clusterId, bool discoveryComplete, uint8_t * buffer, - uint16_t bufLen, bool extended); -/** @brief Discover Commands Generated Response - * - * This function is called by the framework when Discover Commands Generated - * Response is received. - * - * @param clusterId The cluster identifier of this response. Ver.: always - * @param manufacturerCode Manufacturer code Ver.: always - * @param discoveryComplete Indicates whether there are more commands to be - * discovered. Ver.: always - * @param commandIds Buffer containing the list of command identifiers. Ver.: - * always - * @param commandIdCount The length of bytes of the list, whish is the same as - * the number of identifiers. Ver.: always - */ -bool emberAfDiscoverCommandsGeneratedResponseCallback(EmberAfClusterId clusterId, uint16_t manufacturerCode, bool discoveryComplete, - uint8_t * commandIds, uint16_t commandIdCount); -/** @brief Discover Commands Received Response - * - * This function is called by the framework when Discover Commands Received - * Response is received. - * - * @param clusterId The cluster identifier of this response. Ver.: always - * @param manufacturerCode Manufacturer code Ver.: always - * @param discoveryComplete Indicates whether there are more commands to be - * discovered. Ver.: always - * @param commandIds Buffer containing the list of command identifiers. Ver.: - * always - * @param commandIdCount The length of bytes of the list, whish is the same as - * the number of identifiers. Ver.: always - */ -bool emberAfDiscoverCommandsReceivedResponseCallback(EmberAfClusterId clusterId, uint16_t manufacturerCode, bool discoveryComplete, - uint8_t * commandIds, uint16_t commandIdCount); -/** @brief Eeprom Init - * - * Tells the system to initialize the EEPROM if it is not already initialized. - * - */ -void emberAfEepromInitCallback(void); -/** @brief Eeprom Note Initialized State - * - * Records the state of the EEPROM so that an intelligent driver (like the - * EEPROM plugin) can re-initialize the driver prior to any calls to it. - * - * @param state The state of the EEPROM, false=re-initalization needed, - * true=no-re-init needed Ver.: always - */ -void emberAfEepromNoteInitializedStateCallback(bool state); -/** @brief Eeprom Shutdown - * - * Tells the system to shutdown the EEPROM if it is not already shutdown. - * - */ -void emberAfEepromShutdownCallback(void); -/** @brief Energy Scan Result - * - * This is called by the low-level stack code when an 802.15.4 energy scan - * completes. - * - * @param channel The channel where the energy scan took place. Ver.: always - * @param rssi The receive signal strength indicator for the channel. Ver.: - * always - */ -void emberAfEnergyScanResultCallback(uint8_t channel, int8_t rssi); -/** @brief External Attribute Read - * - * Like emberAfExternalAttributeWriteCallback above, this function is called - * when the framework needs to read an attribute that is not stored within the - * Application Framework's data structures. - All of the important - * information about the attribute itself is passed as a pointer to an - * EmberAfAttributeMetadata struct, which is stored within the application and - * used to manage the attribute. A complete description of the - * EmberAfAttributeMetadata struct is provided in - * app/framework/include/af-types.h - This function assumes that the - * application is able to read the attribute, write it into the passed buffer, - * and return immediately. Any attributes that require a state machine for - * reading and writing are not really candidates for externalization at the - * present time. The Application Framework does not currently include a state - * machine for reading or writing attributes that must take place across a - * series of application ticks. Attributes that cannot be read in a timely - * manner should be stored within the Application Framework and updated - * occasionally by the application code from within the - * emberAfMainTickCallback. - If the application was successfully able to - * read the attribute and write it into the passed buffer, it should return a - * value of EMBER_ZCL_STATUS_SUCCESS. Ensure that the size of the externally - * managed attribute value is smaller than what the buffer can hold. In the case - * of a buffer overflow throw an appropriate error such as - * EMBER_ZCL_STATUS_INSUFFICIENT_SPACE. Any other return value indicates the - * application was not able to read the attribute. - * - * @param endpoint Ver.: always - * @param clusterId Ver.: always - * @param attributeMetadata Ver.: always - * @param manufacturerCode Ver.: always - * @param buffer Ver.: always - * @param maxReadLength Ver.: always - */ -EmberAfStatus emberAfExternalAttributeReadCallback(uint8_t endpoint, EmberAfClusterId clusterId, - EmberAfAttributeMetadata * attributeMetadata, uint16_t manufacturerCode, - uint8_t * buffer, uint16_t maxReadLength); -/** @brief External Attribute Write - * - * This function is called whenever the Application Framework needs to write an - * attribute which is not stored within the data structures of the Application - * Framework itself. One of the new features in Version 2 is the ability to - * store attributes outside the Framework. This is particularly useful for - * attributes that do not need to be stored because they can be read off the - * hardware when they are needed, or are stored in some central location used by - * many modules within the system. In this case, you can indicate that the - * attribute is stored externally. When the framework needs to write an external - * attribute, it makes a call to this callback. - This callback is very - * useful for host micros which need to store attributes in persistent memory. - * Because each host micro (used with an Ember NCP) has its own type of - * persistent memory storage, the Application Framework does not include the - * ability to mark attributes as stored in flash the way that it does for Ember - * SoCs like the EM35x. On a host micro, any attributes that need to be stored - * in persistent memory should be marked as external and accessed through the - * external read and write callbacks. Any host code associated with the - * persistent storage should be implemented within this callback. - All of - * the important information about the attribute itself is passed as a pointer - * to an EmberAfAttributeMetadata struct, which is stored within the application - * and used to manage the attribute. A complete description of the - * EmberAfAttributeMetadata struct is provided in - * app/framework/include/af-types.h. - This function assumes that the - * application is able to write the attribute and return immediately. Any - * attributes that require a state machine for reading and writing are not - * candidates for externalization at the present time. The Application Framework - * does not currently include a state machine for reading or writing attributes - * that must take place across a series of application ticks. Attributes that - * cannot be written immediately should be stored within the Application - * Framework and updated occasionally by the application code from within the - * emberAfMainTickCallback. - If the application was successfully able to - * write the attribute, it returns a value of EMBER_ZCL_STATUS_SUCCESS. Any - * other return value indicates the application was not able to write the - * attribute. - * - * @param endpoint Ver.: always - * @param clusterId Ver.: always - * @param attributeMetadata Ver.: always - * @param manufacturerCode Ver.: always - * @param buffer Ver.: always - */ -EmberAfStatus emberAfExternalAttributeWriteCallback(uint8_t endpoint, EmberAfClusterId clusterId, - EmberAfAttributeMetadata * attributeMetadata, uint16_t manufacturerCode, - uint8_t * buffer); -/** @brief Find Unused Pan Id And Form - * - * This function is called by the framework to search for an unused PAN id and - * form a new network. The application should return EMBER_SUCCESS if the - * operation was initiated successfully. - * - */ -EmberStatus emberAfFindUnusedPanIdAndFormCallback(void); -/** @brief Get Current App Tasks - * - * This function is only useful to sleepy end devices. This function will - * return the set of tasks the application has outstanding. These tasks affect - * how the application behaves with regard to sleeping and polling. - * - */ -EmberAfApplicationTask emberAfGetCurrentAppTasksCallback(void); -/** @brief Get Current Poll Control - * - * This function will retrieve the current poll control that the system is using - * for the current network. This is determined by examining all the scheduled - * events and obtaining the most restrictive poll control context across all - * events. The most restrictive poll control is EMBER_AF_SHORT_POLL followed by - * EMBER_AF_LONG_POLL. - * - */ -EmberAfEventPollControl emberAfGetCurrentPollControlCallback(void); -/** @brief Get Current Poll Interval Ms - * - * This function is only useful to end devices. This function will return the - * current poll interval (in milliseconds) for the current network. This - * interval is the maximum amount of time a child is currently waiting between - * polls of its parent. - * - */ -uint32_t emberAfGetCurrentPollIntervalMsCallback(void); -/** @brief Get Current Poll Interval Qs - * - * This function is only useful to end devices. This function will return the - * current poll interval (in quarter seconds) for the current network. This - * interval is the maximum amount of time a child is currently waiting between - * polls of its parent. - * - */ -uint32_t emberAfGetCurrentPollIntervalQsCallback(void); -/** @brief Get Current Sleep Control - * - * This function will retrieve the current sleep control that the system is - * using. This is determined by examining all the scheduled events and - * obtaining the most restrictive sleep control context across all events. The - * most restrictive sleep control is EMBER_AF_STAY_AWAKE followed by - * EMBER_AF_OK_TO_SLEEP. - * - */ -EmberAfEventSleepControl emberAfGetCurrentSleepControlCallback(void); -/** @brief Get Current Time - * - * This callback is called when device attempts to get current time from the - * hardware. If this device has means to retrieve exact time, then this method - * should implement it. If the callback can't provide the exact time it should - * return 0 to indicate failure. Default action is to return 0, which indicates - * that device does not have access to real time. - * - */ -uint32_t emberAfGetCurrentTimeCallback(void); -/** @brief Get Default Poll Control - * - * This function will retrieve the default poll control for the current network - * as previously set by emberAfSetDefaultPollControlCallback(). The default - * poll control will limit whether the network can long poll. - * - */ -EmberAfEventPollControl emberAfGetDefaultPollControlCallback(void); -/** @brief Get Default Sleep Control - * - * This function will retrieve the default sleep control the system is using as - * previously set by emberAfSetDefaultSleepControlCallback(). The default sleep - * control will limit whether the device can sleep. - * - */ -EmberAfEventSleepControl emberAfGetDefaultSleepControlCallback(void); -/** @brief Get Endpoint By Index - * - * Get the endpoint number based on the passed index. By default the framework - * handles this by managing endpoints based on the precompiled configuration - * defined in AppBuilder. This callback can override this behavior at runtime - * and provide additional endpoints or different data than the compiled values. - * If the index is overridden than the callback shall return true and set the - * endpointReturn parameter accordingly. A value of 0xFF means the endpoint - * doesn't exist at that index. - Otherwise false must be returned by the - * callback and the default framework behavior will be executed. This is only - * applicable to the SOC devices. - * - * @param index The index of the endpoint. Ver.: always - * @param endpointReturn The value of endpoint. Ver.: always - */ -bool emberAfGetEndpointByIndexCallback(uint8_t index, uint8_t * endpointReturn); -/** @brief Get Endpoint Description - * - * This callback is called by the framework whenever it receives a ZDO request - * to enumerate the details about an endpoint. By default the framework - * provides the information based on the precompiled endpoint information as - * defined in AppBuilder. This callback can override that behavior at runtime - * and return different information. If the endpoint information is being - * overridden then the callback must return true. Otherwise it should return - * false, which allows the framework to perform its default behavior. This is - * only applicable to SOC devices. - * - * @param endpoint The endpoint number that is being queried. Ver.: always - * @param result This is a pointer to a data structure where the endpoint - * information is written if the callback is providing the information. Ver.: - * always - */ -bool emberAfGetEndpointDescriptionCallback(uint8_t endpoint, EmberEndpointDescription * result); -/** @brief Get Endpoint Info - * - * This function is a callback to an application implemented endpoint that - * operates outside the normal application framework. When the framework wishes - * to perform operations with that endpoint it uses this callback to retrieve - * the endpoint's information. If the endpoint exists and the application can - * provide data then true shall be returned. Otherwise the callback must return - * false. - * - * @param endpoint The endpoint to retrieve data for. Ver.: always - * @param returnNetworkIndex The index corresponding to the ZigBee network the - * endpoint belongs to. If not using a multi-network device, 0 must be - * returned. Otherwise on a multi-network device the stack will switch to this - * network before sending the message. Ver.: always - * @param returnEndpointInfo A pointer to a data struct that will be written - * with information about the endpoint. Ver.: always - */ -bool emberAfGetEndpointInfoCallback(uint8_t endpoint, uint8_t * returnNetworkIndex, EmberAfEndpointInfoStruct * returnEndpointInfo); -/** @brief Get Form And Join Extended Pan Id - * - * This callback is called by the framework to get the extended PAN ID used by - * the current network for forming and joining. The extended PAN ID used for - * forming and joining is not necessarily the same extended PAN ID actually in - * use on the network. - * - * @param resultLocation Ver.: always - */ -void emberAfGetFormAndJoinExtendedPanIdCallback(uint8_t * resultLocation); -/** @brief Get Long Poll Interval Ms - * - * This function is only useful to end devices. This function will return the - * long poll interval (in milliseconds) for the current network. This interval - * is the maximum amount of time a child will wait between polls of its parent - * when it is not expecting data. - * - */ -uint32_t emberAfGetLongPollIntervalMsCallback(void); -/** @brief Get Long Poll Interval Qs - * - * This function is only useful to end devices. This function will return the - * long poll interval (in quarter seconds) for the current network. This - * interval is the maximum amount of time a child will wait between polls of its - * parent when it is not expecting data. - * - */ -uint32_t emberAfGetLongPollIntervalQsCallback(void); -/** @brief Get Short Poll Interval Ms - * - * This function is only useful to sleepy end devices. This function will - * return the short poll interval (in milliseconds) for the current network. - * This interval is the maximum amount of time a child will wait between polls - * of its parent when it is expecting data. - * - */ -uint16_t emberAfGetShortPollIntervalMsCallback(void); -/** @brief Get Short Poll Interval Qs - * - * This function is only useful to sleepy end devices. This function will - * return the short poll interval (in quarter seconds) for the current network. - * This interval is the maximum amount of time a child will wait between polls - * of its parent when it is expecting data. - * - */ -uint16_t emberAfGetShortPollIntervalQsCallback(void); -/** @brief Get Source Route Overhead - * - * This function is called by the framework to determine the overhead required - * in the network frame for source routing to a particular destination. - * - * @param destination The node id of the destination Ver.: always - */ -uint8_t emberAfGetSourceRouteOverheadCallback(EmberNodeId destination); -/** @brief Get Wake Timeout Bitmask - * - * This function is only useful to sleepy end devices. This function will - * return the wake timeout bitmask for the current network. The bitmask - * determines which tasks will timeout automatically and which tasks require - * manual removal from the task list. - * - */ -EmberAfApplicationTask emberAfGetWakeTimeoutBitmaskCallback(void); -/** @brief Get Wake Timeout Ms - * - * This function is only useful to sleepy end devices. This function will - * return the wake timeout (in milliseconds) for the current network. This - * timeout is the maximum amount of time a child will wait for a task in the - * wake bitmask to finish. While waiting, the device will short poll. - * - */ -uint16_t emberAfGetWakeTimeoutMsCallback(void); -/** @brief Get Wake Timeout Qs - * - * This function is only useful to sleepy end devices. This function will - * return the wake timeout (in quarter seconds) for the current network. This - * timeout is the maximum amount of time a child will wait for a task in the - * wake bitmask to finish. While waiting, the device will short poll. - * - */ -uint16_t emberAfGetWakeTimeoutQsCallback(void); -/** @brief Hal Button Isr - * - * This callback is called by the framework whenever a button is pressed on the - * device. This callback is called within ISR context. - * - * @param button The button which has changed state, either BUTTON0 or BUTTON1 - * as defined in the appropriate BOARD_HEADER. Ver.: always - * @param state The new state of the button referenced by the button parameter, - * either ::BUTTON_PRESSED if the button has been pressed or ::BUTTON_RELEASED - * if the button has been released. Ver.: always - */ -void emberAfHalButtonIsrCallback(uint8_t button, uint8_t state); -/** @brief Incoming Packet Filter - * - * ** REQUIRES INCLUDING THE PACKET-HANDOFF PLUGIN ** - - This is called by - * the Packet Handoff plugin when the stack receives a packet from one of the - * protocol layers specified in ::EmberZigbeePacketType. - - The packetType - * argument is one of the values of the ::EmberZigbeePacketType enum. If the - * stack receives an 802.15.4 MAC beacon, it will call this function with the - * packetType argument set to ::EMBER_ZIGBEE_PACKET_TYPE_BEACON. - - The - * implementation of this callback may alter the data contained in packetData, - * modify options and flags in the auxillary data, or consume the packet itself, - * either sending the message, or discarding it as it sees fit. - * - * @param packetType the type of packet and associated protocol layer Ver.: - * always - * @param packetData flat buffer containing the packet data associated with the - * packet type Ver.: always - * @param size_p a pointer containing the size value of the packet Ver.: always - * @param data auxillary data included with the packet Ver.: always - */ -EmberPacketAction emberAfIncomingPacketFilterCallback(EmberZigbeePacketType packetType, uint8_t * packetData, uint8_t * size_p, - void * data); -/** @brief Initiate Inter Pan Key Establishment - * - * This function is called by the framework to initiate key establishment with a - * remote device on a different PAN. The application should return - * EMBER_SUCCESS if key establishment was initiated successfully. The - * application should call ::emberAfInterPanKeyEstablishmentCallback as events - * occur. - * - * @param panId The PAN id of the remote device. Ver.: always - * @param eui64 The EUI64 of the remote device. Ver.: always - */ -EmberStatus emberAfInitiateInterPanKeyEstablishmentCallback(EmberPanId panId, const EmberEUI64 eui64); -/** @brief Initiate Key Establishment - * - * This function is called by the framework to initiate key establishment with a - * remote device. The application should return EMBER_SUCCESS if key - * establishment was initiated successfully. The application should call - * ::emberAfKeyEstablishmentCallback as events occur. - * - * @param nodeId The node id of the remote device. Ver.: always - * @param endpoint The endpoint on the remote device. Ver.: always - */ -EmberStatus emberAfInitiateKeyEstablishmentCallback(EmberNodeId nodeId, uint8_t endpoint); -/** @brief Initiate Partner Link Key Exchange - * - * This function is called by the framework to initiate a partner link key - * exchange with a remote device. The application should return EMBER_SUCCESS - * if the partner link key exchange was initiated successfully. When the - * partner link key exchange completes, the application should call the given - * callback. - * - * @param target The node id of the remote device. Ver.: always - * @param endpoint The key establishment endpoint of the remote device. Ver.: - * always - * @param callback The callback that should be called when the partner link key - * exchange completse. Ver.: always - */ -EmberStatus emberAfInitiatePartnerLinkKeyExchangeCallback(EmberNodeId target, uint8_t endpoint, - EmberAfPartnerLinkKeyExchangeCallback * callback); -/** @brief Inter Pan Key Establishment - * - * A callback by the key-establishment code to indicate an event has occurred. - * For error codes this is purely a notification. For non-error status codes - * (besides LINK_KEY_ESTABLISHED), it is the application's chance to allow or - * disallow the operation. If the application returns true then the key - * establishment is allowed to proceed. If it returns false, then key - * establishment is aborted. LINK_KEY_ESTABLISHED is a notification of success. - * - * @param status Ver.: always - * @param amInitiator Ver.: always - * @param panId Ver.: always - * @param eui64 Ver.: always - * @param delayInSeconds Ver.: always - */ -bool emberAfInterPanKeyEstablishmentCallback(EmberAfKeyEstablishmentNotifyMessage status, bool amInitiator, EmberPanId panId, - const EmberEUI64 eui64, uint8_t delayInSeconds); -/** @brief Interpan Send Message - * - * This function will send a raw MAC message with interpan frame format using - * the passed parameters. - * - * @param header Interpan header info Ver.: always - * @param messageLength The length of the message received or to send Ver.: - * always - * @param message The message data received or to send. Ver.: always - */ -EmberStatus emberAfInterpanSendMessageCallback(EmberAfInterpanHeader * header, uint16_t messageLength, uint8_t * message); -/** @brief Key Establishment - * - * A callback by the key-establishment code to indicate an event has occurred. - * For error codes this is purely a notification. For non-error status codes - * (besides LINK_KEY_ESTABLISHED), it is the application's chance to allow or - * disallow the operation. If the application returns true then the key - * establishment is allowed to proceed. If it returns false, then key - * establishment is aborted. LINK_KEY_ESTABLISHED is a notification of success. - * - * @param status Ver.: always - * @param amInitiator Ver.: always - * @param partnerShortId Ver.: always - * @param delayInSeconds Ver.: always - */ -bool emberAfKeyEstablishmentCallback(EmberAfKeyEstablishmentNotifyMessage status, bool amInitiator, EmberNodeId partnerShortId, - uint8_t delayInSeconds); -/** @brief Main Init - * - * This function is called from the application's main function. It gives the - * application a chance to do any initialization required at system startup. Any - * code that you would normally put into the top of the application's main() - * routine should be put into this function. This is called before the clusters, - * plugins, and the network are initialized so some functionality is not yet - * available. - Note: No callback in the Application Framework is - * associated with resource cleanup. If you are implementing your application on - * a Unix host where resource cleanup is a consideration, we expect that you - * will use the standard Posix system calls, including the use of atexit() and - * handlers for signals such as SIGTERM, SIGINT, SIGCHLD, SIGPIPE and so on. If - * you use the signal() function to register your signal handler, please mind - * the returned value which may be an Application Framework function. If the - * return value is non-null, please make sure that you call the returned - * function from your handler to avoid negating the resource cleanup of the - * Application Framework itself. - * - */ -void emberAfMainInitCallback(void); -/** @brief Main Start - * - * This function is called at the start of main after the HAL has been - * initialized. The standard main function arguments of argc and argv are - * passed in. However not all platforms have support for main() function - * arguments. Those that do not are passed NULL for argv, therefore argv should - * be checked for NULL before using it. If the callback determines that the - * program must exit, it should return true. The value returned by main() will - * be the value written to the returnCode pointer. Otherwise the callback - * should return false to let normal execution continue. - * - * @param returnCode Ver.: always - * @param argc Ver.: always - * @param argv Ver.: always - */ -bool emberAfMainStartCallback(int * returnCode, int argc, char ** argv); -/** @brief Main Tick - * - * Whenever main application tick is called, this callback will be called at the - * end of the main tick execution. - * - */ -void emberAfMainTickCallback(void); -/** @brief Mark Buffers - * - * This function is called when the garbage collector runs. Any buffers held by - * the application must be marked. - * - */ -void emberAfMarkBuffersCallback(void); -/** @brief Message Sent - * - * This function is called by the application framework from the message sent - * handler, when it is informed by the stack regarding the message sent status. - * All of the values passed to the emberMessageSentHandler are passed on to this - * callback. This provides an opportunity for the application to verify that its - * message has been sent successfully and take the appropriate action. This - * callback should return a bool value of true or false. A value of true - * indicates that the message sent notification has been handled and should not - * be handled by the application framework. - * - * @param type Ver.: always - * @param indexOrDestination Ver.: always - * @param apsFrame Ver.: always - * @param msgLen Ver.: always - * @param message Ver.: always - * @param status Ver.: always - */ -bool emberAfMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, EmberApsFrame * apsFrame, - uint16_t msgLen, uint8_t * message, EmberStatus status); -/** @brief Ncp Init - * - * This function is called when the network coprocessor is being initialized, - * either at startup or upon reset. It provides applications on opportunity to - * perform additional configuration of the NCP. The function is always called - * twice when the NCP is initialized. In the first invocation, memoryAllocation - * will be true and the application should only issue EZSP commands that affect - * memory allocation on the NCP. For example, tables on the NCP can be resized - * in the first call. In the second invocation, memoryAllocation will be false - * and the application should only issue EZSP commands that do not affect memory - * allocation. For example, tables on the NCP can be populated in the second - * call. This callback is not called on SoCs. - * - * @param memoryAllocation Ver.: always - */ -void emberAfNcpInitCallback(bool memoryAllocation); -/** @brief Ncp Is Awake Isr - * - * This function is called IN ISR CONTEXT. It notes that the NCP is awake after - * sleeping. Care should be taken to do minimal processing in this ISR handler - * function. - * - */ -void emberAfNcpIsAwakeIsrCallback(void); -/** @brief Network Found - * - * This callback is generated when an active scan finds a 802.15.4 network. - * - * @param networkFound A struct containing information about the network found. - * Ver.: always - * @param lqi The link quality indication of the network found. Ver.: always - * @param rssi The received signal strength indication of the network found. - * Ver.: always - */ -void emberAfNetworkFoundCallback(EmberZigbeeNetwork * networkFound, uint8_t lqi, int8_t rssi); -/** @brief Network Key Update Complete - * - * This is called by the framework when a network key update operation started - * by the trust center is complete. - * - * @param status Ver.: always - */ -void emberAfNetworkKeyUpdateCompleteCallback(EmberStatus status); -/** @brief Ota Bootload - * - * The platform specific routine to bootload the device from a ZigBee - * over-the-air upgrade file. - * - * @param id A pointer to the structure that contains the information about what - * OTA image to bootload. Ver.: always - * @param ncpUpgradeTagId The tag ID of the upgrade data that will be used to - * bootload the device. Ver.: always - */ -uint8_t emberAfOtaBootloadCallback(const EmberAfOtaImageId * id, uint16_t ncpUpgradeTagId); -/** @brief Ota Client Bootload - * - * This callback is fired when the OTA Client recevies a command to bootload the - * newly downloaded OTA image. This callback will perform the platform specific - * to bootload their device. - * - * @param id This is the identifier relating to the image that has been - * downloaded and is ready for bootload. Ver.: always - */ -void emberAfOtaClientBootloadCallback(const EmberAfOtaImageId * id); -/** @brief Ota Client Custom Verify - * - * This callback is executed by the OTA client after the signature verification - * has successfully completed. It allows the device to do its own custom - * verification of the image (such as verifying that the EBL is intact). - * - * @param newVerification This indicates if a new verification should be - * started. Ver.: always - * @param id This is ID of the image to be verified. Ver.: always - */ -EmberAfImageVerifyStatus emberAfOtaClientCustomVerifyCallback(bool newVerification, const EmberAfOtaImageId * id); -/** @brief Ota Client Download Complete - * - * This callback indicates that the OTA client has completed the download of a - * file. If the file has been completely downloaded and cryptographic checks - * have been turned on, then those will be performed prior to this callback and - * that outcome included in the 'success' result. On failure, this callback is - * merely informative, and the return type is ignored. On succesful download, - * this callback allows the client to perform any additional verification of the - * downloaded image and return that result to the OTA server. - * - * @param success This indicates the success or failure of the download and - * cryptographic verification process (if applicable). Ver.: always - * @param id This is the image identifier information that corresponds to the - * download result. Ver.: always - */ -bool emberAfOtaClientDownloadCompleteCallback(EmberAfOtaDownloadResult success, const EmberAfOtaImageId * id); -/** @brief Ota Client Incoming Message Raw - * - * This callback is for processing incoming messages for the Over-the-air - * bootload cluster client. ZCL will not process the message and instead hand - * the raw over the air data to the callback for its own processing. - * - * @param message A pointer to the structure containing the message buffer and - * other information about it. Ver.: always - */ -bool emberAfOtaClientIncomingMessageRawCallback(EmberAfClusterCommand * message); -/** @brief Ota Client Start - * - * This callback should be called when the profile specific registration has - * completed successfully. It will start the client's state machine that will - * find the OTA server, query it for the next image, download the image, wait - * for the bootload message, and kick off the bootload. - * - */ -void emberAfOtaClientStartCallback(void); -/** @brief Ota Client Version Info - * - * This function is called by the OTA client when a new query will occur to the - * server asking what the next version of firmware is. The client can inform - * the cluster software as to what information to use in the query (and - * subsequent download). - * - * @param currentImageInfo This is the information to use in the next query by - * the client cluster code. It contains the manufacturer ID, image type ID, and - * the firmware version to be specified in the query message sent to the server. - * Ver.: always - * @param hardwareVersion This is a pointer to the hardware version to use in - * the query. If no hardware version should be used, then - * EMBER_AF_INVALID_HARDWARE_VERSION should be used. Ver.: always - */ -void emberAfOtaClientVersionInfoCallback(EmberAfOtaImageId * currentImageInfo, uint16_t * hardwareVersion); -/** @brief Ota Page Request Server Policy - * - * This callback is called by the OTA server page request code when it wants to - * determine if it is allowed for an OTA client to make a page request. It is - * only called if page request support has been enabled on the server. It - * should return EMBER_ZCL_STATUS_SUCCESS if it allows the page request, and - * EMBER_ZCL_STATUS_UNSUP_CLUSTER_COMMAND if it does not want to allow it. - * - */ -uint8_t emberAfOtaPageRequestServerPolicyCallback(void); -/** @brief Ota Server Block Size - * - * This function provides a way for the server to adjust the block size of its - * response to an Image block request by a client. - * - * @param clientNodeId The node Id of OTA client making an image block request. - * Ver.: always - */ -uint8_t emberAfOtaServerBlockSizeCallback(EmberNodeId clientNodeId); -/** @brief Ota Server Incoming Message Raw - * - * This callback is for processing incoming messages for the Over-the-air - * bootload cluster server. ZCL will not process the message and instead hand - * the raw over the air data to the callback for its own processing. - * - * @param message A pointer to the structure containing the message buffer and - * other information about it. Ver.: always - */ -bool emberAfOtaServerIncomingMessageRawCallback(EmberAfClusterCommand * message); -/** @brief Ota Server Query - * - * This callback is fired when the OTA server receives a query request by the - * client. The callback lets the server application indicate to the client what - * the 'next' version of software is for the device, or if there is not one - * available. - * - * @param currentImageId This is the current software image that the client - * hase. Ver.: always - * @param hardwareVersion If this value is non-NULL, it indicates the hardware - * version of the client device. If NULL, the client did not specify a hardware - * version. Ver.: always - * @param nextUpgradeImageId This is a pointer to a data structure containing - * the 'next' software version for the client to download. Ver.: always - */ -uint8_t emberAfOtaServerQueryCallback(const EmberAfOtaImageId * currentImageId, uint16_t * hardwareVersion, - EmberAfOtaImageId * nextUpgradeImageId); -/** @brief Ota Server Send Image Notify - * - * This callback is an indication to the OTA server that it should send out - * notification about an OTA file that is available for download. - * - * @param dest The destination of the image notify message. May be a broadcast - * address. Ver.: always - * @param endpoint The destination endpoint of the image notify message. May be - * a broadcast endpoint. Ver.: always - * @param payloadType The type of data the image notify message will contain. 0 - * = no data. 1 = Manufacturer ID. 2 = Manufacturer ID and the image type ID. - * 3 = Manufacturer ID, image type ID, and firmware version. Ver.: always - * @param queryJitter The percentage of nodes that should respond to this - * message, from 1-100. On receipt of this message, each recipient will - * randomly choose a percentage and only query the server if their percentage is - * below this value. Ver.: always - * @param id The image information that will be put in the message. The data - * within this struct that will be appended to the message is determined by the - * previous 'payloadType' argument. Ver.: always - */ -bool emberAfOtaServerSendImageNotifyCallback(EmberNodeId dest, uint8_t endpoint, uint8_t payloadType, uint8_t queryJitter, - const EmberAfOtaImageId * id); -/** @brief Ota Server Upgrade End Request - * - * This function is called when the OTA server receives a request an upgrade end - * request. If the request indicated a successful download by the client, the - * server must tell the client when and if to upgrade to the downloaded image. - * - * @param source The node ID of the device that sent the upgrade end request. - * Ver.: always - * @param status This is the ZCL status sent by the client indicating the result - * of its attempt to download the new upgrade image. If the status is not - * EMBER_ZCL_STATUS_SUCCESS then this callback is merely informative and no - * response mesasge will be generated by the server. Ver.: always - * @param returnValue If the server returns true indicating that the client - * should apply the upgrade, this time value indicates when in the future the - * client should apply the upgrade. Ver.: always - * @param imageId This variable indicates the software version that the client - * successfully downloaded and is asking to upgrade to. Ver.: always - */ -bool emberAfOtaServerUpgradeEndRequestCallback(EmberNodeId source, uint8_t status, uint32_t * returnValue, - const EmberAfOtaImageId * imageId); -/** @brief Ota Storage Check Temp Data - * - * This callback will validate temporary data in the storage device to determine - * whether it is a complete file, a partially downloaded file, or there is no - * file present. When a complete or partial file is found it will return - * EMBER_AF_OTA_STORAGE_SUCCESS or EMBER_AF_OTA_STORAGE_PARTIAL_FILE_FOUND, - * respectively. In that case, the currentOffset, totalImageSize, and - * newFileInfo will be populated with data. When EMBER_AF_OTA_STORAGE_ERROR is - * returned, no temporary data is present. - * - * @param currentOffset A pointer to a value that will be written with the - * offset within the total file size that has been successfully stored in the - * storage device. This will indicate how much data has been currently - * dowloaded. Ver.: always - * @param totalImageSize A pointer to a value that will be written with the - * total image size of the OTA file when a download has completed. This does - * not indicate how much data has actually been downloaded currently. Ver.: - * always - * @param newFileInfo This is the image id of the temporary file data stored in - * the storage device. Ver.: always - */ -EmberAfOtaStorageStatus emberAfOtaStorageCheckTempDataCallback(uint32_t * currentOffset, uint32_t * totalImageSize, - EmberAfOtaImageId * newFileInfo); -/** @brief Ota Storage Clear Temp Data - * - * This function clears any existing temp data that was downloaed. It is used - * immediately prior to downloading a raw image over the air. - * - */ -EmberAfOtaStorageStatus emberAfOtaStorageClearTempDataCallback(void); -/** @brief Ota Storage Close - * - * This callback shuts down the ZigBee Over-the-air storage module. - * - */ -void emberAfOtaStorageCloseCallback(void); -/** @brief Ota Storage Driver Download Finish - * - * This callback defines the low-level means by which a device records the final - * offset value of the download image. - * - * @param offset The value of the final offset of the image download. Ver.: - * always - */ -void emberAfOtaStorageDriverDownloadFinishCallback(uint32_t offset); -/** @brief Ota Storage Driver Init - * - * The initialization code for the OTA storage driver. - * - */ -bool emberAfOtaStorageDriverInitCallback(void); -/** @brief Ota Storage Driver Invalidate Image - * - * This callback invalidates the image stored on disk so that it will not be - * bootloaded, and it will not be a valid image that is in the middle of - * downloading. - * - */ -EmberAfOtaStorageStatus emberAfOtaStorageDriverInvalidateImageCallback(void); -/** @brief Ota Storage Driver Prepare To Resume Download - * - * This callback allows the underlying storage driver to prepare to resume the - * OTA file download. For example, the driver may exceute a page erase to - * insure the next page is ready to be written to. - * - */ -EmberAfOtaStorageStatus emberAfOtaStorageDriverPrepareToResumeDownloadCallback(void); -/** @brief Ota Storage Driver Read - * - * This callback defines the low-level means by which a device reads from the - * OTA storage device. - * - * @param offset The address offset from the start of the storage device where - * data is to be read. Ver.: always - * @param length The length of the data to be read from the storage device. - * Ver.: always - * @param returnData A pointer where the data read from the device should be - * written to. Ver.: always - */ -bool emberAfOtaStorageDriverReadCallback(uint32_t offset, uint32_t length, uint8_t * returnData); -/** @brief Ota Storage Driver Retrieve Last Stored Offset - * - * This callback defines the low-level means by which a device retrieves the - * last persistently recorded download offset. This may be different than last - * actual download offset. - * - */ -uint32_t emberAfOtaStorageDriverRetrieveLastStoredOffsetCallback(void); -/** @brief Ota Storage Driver Write - * - * This callback defines the low-level means by which a device reads from the - * OTA storage device. - * - * @param dataToWrite A pointer to the data that will be written to the storage - * device. Ver.: always - * @param offset The address offset from the start of the storage device where - * data will be written. Ver.: always - * @param length The length of the data to be written to the storage device. - * Ver.: always - */ -bool emberAfOtaStorageDriverWriteCallback(const uint8_t * dataToWrite, uint32_t offset, uint32_t length); -/** @brief Ota Storage Finish Download - * - * This function indicates to the storage module that the download has finished. - * - * @param offset The final offset of the downloaded file (i.e. the total size) - * Ver.: always - */ -EmberAfOtaStorageStatus emberAfOtaStorageFinishDownloadCallback(uint32_t offset); -/** @brief Ota Storage Get Count - * - * This callback returns the total number of ZigBee Over-the-air upgrade images - * stored in the storage module. - * - */ -uint8_t emberAfOtaStorageGetCountCallback(void); -/** @brief Ota Storage Get Full Header - * - * This callback populates the EmberAfOtaHeader structure pointed to by the - * returnData with data about the OTA file stored in the storage module. - * - * @param id This is a pointer to the image id for the OTA file to retrieve - * information about. Ver.: always - * @param returnData This is a pointer to the location of the structure that - * will be populated with data. Ver.: always - */ -EmberAfOtaStorageStatus emberAfOtaStorageGetFullHeaderCallback(const EmberAfOtaImageId * id, EmberAfOtaHeader * returnData); -/** @brief Ota Storage Get Total Image Size - * - * This function returns the total size of the ZigBee Over-the-air file with the - * passed parameters. If no file is found with those parameters, 0 is returned. - * - * @param id A pointer to the image identifier for the OTA file to retrieve - * information for. Ver.: always - */ -uint32_t emberAfOtaStorageGetTotalImageSizeCallback(const EmberAfOtaImageId * id); -/** @brief Ota Storage Init - * - * This callback initializes the ZigBee Over-the-air storage module. - * - */ -EmberAfOtaStorageStatus emberAfOtaStorageInitCallback(void); -/** @brief Ota Storage Iterator First - * - * This callback lets you walk through the list of all OTA files by jumping to - * the first file in the list maintained by the storage module. If there is no - * file then emberAfOtaInvalidImageId is returned. - * - */ -EmberAfOtaImageId emberAfOtaStorageIteratorFirstCallback(void); -/** @brief Ota Storage Iterator Next - * - * This callback lets you walk through the list of all OTA files by jumping to - * the next file in the list maintained by the storage module. If there is no - * next file then emberAfOtaInvalidImageId is returned. - * - */ -EmberAfOtaImageId emberAfOtaStorageIteratorNextCallback(void); -/** @brief Ota Storage Read Image Data - * - * This callback reads data from the specified OTA file and returns that data to - * the caller. - * - * @param id This is a pointer to the image id for the OTA file to retrieve data - * from. Ver.: always - * @param offset This is the offset relative to the start of the image where the - * data should be read from. Ver.: always - * @param length This is the length of data that will be read. Ver.: always - * @param returnData This is a pointer to where the data read out of the file - * will be written to Ver.: always - * @param returnedLength This is a pointer to a variable where the actual length - * of data read will be written to. A short read may occur if the end of file - * was reached. Ver.: always - */ -EmberAfOtaStorageStatus emberAfOtaStorageReadImageDataCallback(const EmberAfOtaImageId * id, uint32_t offset, uint32_t length, - uint8_t * returnData, uint32_t * returnedLength); -/** @brief Ota Storage Search - * - * This callback searches through the list of all images for one that matches - * the passed parameters. On success an image identifier is returned with a - * matching image. On failure emberAfInvalidImageId is returned. - * - * @param manufacturerId The ZigBee assigned identifier of the manufacturer - * contained in the OTA image being searched for. Ver.: always - * @param imageTypeId The image type identifier contained in the OTA image being - * searched for. Ver.: always - * @param hardwareVersion This is a pointer to the hardware version that will be - * used in the search. If the pointer is NULL, hardware version will not be - * considered when searching for matching images. If it points to a value, the - * search will only consider images where that value falls between the minimum - * and maxmimum hardware version specified in the OTA file. If no hardware - * version is present in an OTA file but the other parameters match, the file - * will be considered a match Ver.: always - */ -EmberAfOtaImageId emberAfOtaStorageSearchCallback(uint16_t manufacturerId, uint16_t imageTypeId, const uint16_t * hardwareVersion); -/** @brief Ota Storage Write Temp Data - * - * This function writes to the temporary data in the storage device at the - * specified offset. It is used when downloading a raw image over the air. - * - * @param offset The location within the download image file where to write the - * data. Ver.: always - * @param length The length of data to write. Ver.: always - * @param data A pointer to the temporary data that will be written to the - * storage device. Ver.: always - */ -EmberAfOtaStorageStatus emberAfOtaStorageWriteTempDataCallback(uint32_t offset, uint32_t length, const uint8_t * data); -/** @brief Outgoing Packet Filter - * - * ** REQUIRES INCLUDING THE PACKET-HANDOFF PLUGIN ** - - This is called by - * the Packet Handoff plugin when the stack prepares to send a packet from one - * of the protocol layers specified in ::EmberZigbeePacketType. - - The - * packetType argument is one of the values of the ::EmberZigbeePacketType enum. - * If the stack receives an 802.15.4 MAC beacon, it will call this function with - * the packetType argument set to ::EMBER_ZIGBEE_PACKET_TYPE_BEACON. - - - * The implementation of this callback may alter the data contained in - * packetData, modify options and flags in the auxillary data, or consume the - * packet itself, either sending the message, or discarding it as it sees fit. - * - * @param packetType the type of packet and associated protocol layer Ver.: - * always - * @param packetData flat buffer containing the packet data associated with the - * packet type Ver.: always - * @param size_p a pointer containing the size value of the packet Ver.: always - * @param data auxillary data included with the packet Ver.: always - */ -EmberPacketAction emberAfOutgoingPacketFilterCallback(EmberZigbeePacketType packetType, uint8_t * packetData, uint8_t * size_p, - void * data); -/** @brief Partner Link Key Exchange Request - * - * This function is called by the framework on SOC platforms when a remote node - * requests a partner link key exchange. The application should return - * EMBER_SUCCESS to accept the request or any other status to reject it. On - * network coprocessor platforms, this function will not be called because the - * NCP handles partner link key exchange requests based on the binding policy. - * - * @param partner The EUI of the remote node. Ver.: always - */ -EmberZdoStatus emberAfPartnerLinkKeyExchangeRequestCallback(EmberEUI64 partner); -/** @brief Partner Link Key Exchange Response - * - * This function is called by the framework when a remote node requests a - * partner link key exchange. The application should return true to accept the - * request or false to reject it. On network coprocessor platforms, this - * function will not be called because the NCP handles partner link key exchange - * requests based on the binding policy. - * - * @param sender The EUI of the remote node. Ver.: always - * @param status The ZDO response status. Ver.: always - */ -void emberAfPartnerLinkKeyExchangeResponseCallback(EmberNodeId sender, EmberZdoStatus status); -/** @brief Performing Key Establishment - * - * This function is called by the framework to determine if the device is - * performing key establishment. The application should return true if key - * establishment is in progress. - * - */ -bool emberAfPerformingKeyEstablishmentCallback(void); -/** @brief Post Attribute Change - * - * This function is called by the application framework after it changes an - * attribute value. The value passed into this callback is the value to which - * the attribute was set by the framework. - * - * @param endpoint Ver.: always - * @param clusterId Ver.: always - * @param attributeId Ver.: always - * @param mask Ver.: always - * @param manufacturerCode Ver.: always - * @param type Ver.: always - * @param size Ver.: always - * @param value Ver.: always - */ -void emberAfPostAttributeChangeCallback(uint8_t endpoint, EmberAfClusterId clusterId, EmberAfAttributeId attributeId, uint8_t mask, - uint16_t manufacturerCode, uint8_t type, uint8_t size, uint8_t * value); -/** @brief Post Em4 Reset - * - * A callback called by application framework, and implemented by em4 plugin - * - */ -void emberAfPostEm4ResetCallback(void); -/** @brief Pre Attribute Change - * - * This function is called by the application framework before it changes an - * attribute value. The value passed into this callback is the value to which - * the attribute is to be set by the framework. The application should return - * ::EMBER_ZCL_STATUS_SUCCESS to permit the change or any other ::EmberAfStatus - * to reject it. - * - * @param endpoint Ver.: always - * @param clusterId Ver.: always - * @param attributeId Ver.: always - * @param mask Ver.: always - * @param manufacturerCode Ver.: always - * @param type Ver.: always - * @param size Ver.: always - * @param value Ver.: always - */ -EmberAfStatus emberAfPreAttributeChangeCallback(uint8_t endpoint, EmberAfClusterId clusterId, EmberAfAttributeId attributeId, - uint8_t mask, uint16_t manufacturerCode, uint8_t type, uint8_t size, - uint8_t * value); -/** @brief Pre Cli Send - * - * This function is called by the framework when it is about to pass a message - * constructed over CLI to the stack primitives for sending. If the function - * returns true it is assumed that the callback has consumed and processed the - * message. The framework will not do any further processing on the message. - - * If the function returns false then it is assumed that the callback has - * not processed the message and the framework will continue to process - * accordingly. - * - * @param apsFrame The structure containing the APS frame Ver.: always - * @param source Source Node Id Ver.: always - * @param destination Destintion Node Id Ver.: always - * @param message Pointer to the message payload Ver.: always - * @param messageLength Length of the message payload Ver.: always - */ -bool emberAfPreCliSendCallback(EmberApsFrame * apsFrame, EmberNodeId source, EmberNodeId destination, uint8_t * message, - uint16_t messageLength); -/** @brief Pre Command Received - * - * This callback is the second in the Application Framework's message processing - * chain. At this point in the processing of incoming over-the-air messages, the - * application has determined that the incoming message is a ZCL command. It - * parses enough of the message to populate an EmberAfClusterCommand struct. The - * Application Framework defines this struct value in a local scope to the - * command processing but also makes it available through a global pointer - * called emberAfCurrentCommand, in app/framework/util/util.c. When command - * processing is complete, this pointer is cleared. - * - * @param cmd Ver.: always - */ -bool emberAfPreCommandReceivedCallback(EmberAfClusterCommand * cmd); -/** @brief Pre Message Received - * - * This callback is the first in the Application Framework's message processing - * chain. The Application Framework calls it when a message has been received - * over the air but has not yet been parsed by the ZCL command-handling code. If - * you wish to parse some messages that are completely outside the ZCL - * specification or are not handled by the Application Framework's command - * handling code, you should intercept them for parsing in this callback. - - * This callback returns a Boolean value indicating whether or not the message - * has been handled. If the callback returns a value of true, then the - * Application Framework assumes that the message has been handled and it does - * nothing else with it. If the callback returns a value of false, then the - * application framework continues to process the message as it would with any - * incoming message. - Note: This callback receives a pointer to an - * incoming message struct. This struct allows the application framework to - * provide a unified interface between both Host devices, which receive their - * message through the ezspIncomingMessageHandler, and SoC devices, which - * receive their message through emberIncomingMessageHandler. - * - * @param incomingMessage Ver.: always - */ -bool emberAfPreMessageReceivedCallback(EmberAfIncomingMessage * incomingMessage); -/** @brief Pre Message Send - * - * This function is called by the framework when it is about to pass a message - * to the stack primitives for sending. This message may or may not be ZCL, - * ZDO, or some other protocol. This is called prior to - any ZigBee - * fragmentation that may be done. If the function returns true it is assumed - * the callback has consumed and processed the message. The callback must also - * set the EmberStatus status code to be passed back to the caller. The - * framework will do no further processing on the message. - If the - * function returns false then it is assumed that the callback has not processed - * the mesasge and the framework will continue to process accordingly. - * - * @param messageStruct The structure containing the parameters of the APS - * message to be sent. Ver.: always - * @param status A pointer to the status code value that will be returned to the - * caller. Ver.: always - */ -bool emberAfPreMessageSendCallback(EmberAfMessageStruct * messageStruct, EmberStatus * status); -/** @brief Pre Ncp Reset - * - * This function will be called prior to the reset of the NCP by the host. - * - */ -void emberAfPreNcpResetCallback(void); -/** @brief Pre ZDO Message Received - * - * This function passes the application an incoming ZDO message and gives the - * appictation the opportunity to handle it. By default, this callback returns - * false indicating that the incoming ZDO message has not been handled and - * should be handled by the Application Framework. - * - * @param emberNodeId Ver.: always - * @param apsFrame Ver.: always - * @param message Ver.: always - * @param length Ver.: always - */ -bool emberAfPreZDOMessageReceivedCallback(EmberNodeId emberNodeId, EmberApsFrame * apsFrame, uint8_t * message, uint16_t length); -/** @brief Read Attributes Response - * - * This function is called by the application framework when a Read Attributes - * Response command is received from an external device. The application should - * return true if the message was processed or false if it was not. - * - * @param clusterId The cluster identifier of this response. Ver.: always - * @param buffer Buffer containing the list of read attribute status records. - * Ver.: always - * @param bufLen The length in bytes of the list. Ver.: always - */ -bool emberAfReadAttributesResponseCallback(EmberAfClusterId clusterId, uint8_t * buffer, uint16_t bufLen); -/** @brief Read Reporting Configuration Command - * - * This function is called by the application framework when a Read Reporting - * Configuration command is received from an external device. The application - * should return true if the message was processed or false if it was not. - * - * @param cmd Ver.: always - */ -bool emberAfReadReportingConfigurationCommandCallback(const EmberAfClusterCommand * cmd); -/** @brief Read Reporting Configuration Response - * - * This function is called by the application framework when a Read Reporting - * Configuration Response command is received from an external device. The - * application should return true if the message was processed or false if it - * was not. - * - * @param clusterId The cluster identifier of this response. Ver.: always - * @param buffer Buffer containing the list of attribute reporting configuration - * records. Ver.: always - * @param bufLen The length in bytes of the list. Ver.: always - */ -bool emberAfReadReportingConfigurationResponseCallback(EmberAfClusterId clusterId, uint8_t * buffer, uint16_t bufLen); -/** @brief Registration Abort - * - * This callback is called when the device should abort the registration - * process. - * - */ -void emberAfRegistrationAbortCallback(void); -/** @brief Registration - * - * This callback is called when the device joins a network and the process of - * registration is complete. This callback provides a success value of true if - * the registration process was successful and a value of false if registration - * failed. - * - * @param success true if registration succeeded, false otherwise. Ver.: always - */ -void emberAfRegistrationCallback(bool success); -/** @brief Registration Start - * - * This callback is called when the device joins a network and the registration - * process should begin. The application should return EMBER_SUCCESS if the - * registration process started successfully. When registration is complete, - * the application should call emberAfRegistrationCallback with an indication of - * success or failure. - * - */ -EmberStatus emberAfRegistrationStartCallback(void); -/** @brief Remote Delete Binding Permission - * - * This function is called by the framework to request permission to service the - * remote delete binding request. Return EMBER_SUCCESS to allow request, - * anything else to disallow request. - * - * @param index index to an Ember binding table entry Ver.: always - */ -EmberStatus emberAfRemoteDeleteBindingPermissionCallback(uint8_t index); -/** @brief Remote Set Binding Permission - * - * This function is called by the framework to request permission to service the - * remote set binding request. Return EMBER_SUCCESS to allow request, anything - * else to disallow request. - * - * @param entry Ember Binding Tablet Entry Ver.: always - */ -EmberStatus emberAfRemoteSetBindingPermissionCallback(const EmberBindingTableEntry * entry); -/** @brief Remove From Current App Tasks - * - * This function is only useful to sleepy end devices. This function will - * remove the passed item from the set of tasks the application has outstanding - * (e.g. message sent requiring APS acknwoledgement). This will affect how the - * application behaves with regard to sleeping and polling. Removing the item - * from the list of outstanding tasks may allow the device to sleep longer and - * poll less frequently. If there are other outstanding tasks the system may - * still have to stay away and poll more often. - * - * @param tasks Ver.: always - */ -void emberAfRemoveFromCurrentAppTasksCallback(EmberAfApplicationTask tasks); -/** @brief Report Attributes - * - * This function is called by the application framework when a Report Attributes - * command is received from an external device. The application should return - * true if the message was processed or false if it was not. - * - * @param clusterId The cluster identifier of this command. Ver.: always - * @param buffer Buffer containing the list of attribute report records. Ver.: - * always - * @param bufLen The length in bytes of the list. Ver.: always - */ -bool emberAfReportAttributesCallback(EmberAfClusterId clusterId, uint8_t * buffer, uint16_t bufLen); -/** @brief Reporting Attribute Change - * - * This function is called by the framework when an attribute managed by the - * framework changes. The application should call this function when an - * externally-managed attribute changes. The application should use the change - * notification to inform its reporting decisions. - * - * @param endpoint Ver.: always - * @param clusterId Ver.: always - * @param attributeId Ver.: always - * @param mask Ver.: always - * @param manufacturerCode Ver.: always - * @param type Ver.: always - * @param data Ver.: always - */ -void emberAfReportingAttributeChangeCallback(uint8_t endpoint, EmberAfClusterId clusterId, EmberAfAttributeId attributeId, - uint8_t mask, uint16_t manufacturerCode, EmberAfAttributeType type, uint8_t * data); -/** @brief Scan Complete - * - * This is called by the low-level stack code when an 802.15.4 active scan - * completes. - * - * @param channel If the status indicates an error, the channel on which the - * error occurred. Otherwise it is undefined for EMBER_SUCCESS. Ver.: always - * @param status The status of the scan. Ver.: always - */ -void emberAfScanCompleteCallback(uint8_t channel, EmberStatus status); -/** @brief Scan Error - * - * This is called by the framework on behalf of the form-and-join library to - * notify the application if an error occurs while scanning. See form-and-join - * documentation for more information. - * - * @param status The status of the scan. Ver.: always - */ -void emberAfScanErrorCallback(EmberStatus status); -/** @brief Security Init - * - * This callback is called by the framework to give the application a chance to - * modify the security settings of the node during network initialization. - * Depending on the context when this callback is called, the pointer to the - * initial security state may be NULL, which means the initial security state - * can no longer be modified as the node is already operating on the network. - * - * @param state Ver.: always - * @param extended Ver.: always - * @param trustCenter Ver.: always - */ -void emberAfSecurityInitCallback(EmberInitialSecurityState * state, EmberExtendedSecurityBitmask * extended, bool trustCenter); -/** @brief Set Default Poll Control - * - * This function will set the default poll control for the current network to - * control whether or not it can long poll. - * - * @param control Ver.: always - */ -void emberAfSetDefaultPollControlCallback(EmberAfEventPollControl control); -/** @brief Set Default Sleep Control - * - * This function will set the default behavior of a sleeping device to control - * whether or not it must stay awake. A device that stays awake does not sleep - * at all. Otherwise, the device can sleep between events when appropriate. - * - * @param control Ver.: always - */ -void emberAfSetDefaultSleepControlCallback(EmberAfEventSleepControl control); -/** @brief Set Form And Join Extended Pan Id - * - * This callback is called by the framework to set the extended PAN ID used by - * the current network for forming and joining. The extended PAN ID used for - * forming and joining is not necessarily the same extended PAN ID actually in - * use on the network. - * - * @param extendedPanId Ver.: always - */ -void emberAfSetFormAndJoinExtendedPanIdCallback(const uint8_t * extendedPanId); -/** @brief Set Long Poll Interval Ms - * - * This function is only useful to end devices. This function will set the long - * poll interval (in milliseconds) for the current network. This interval is - * the maximum amount of time a child will wait between polls of its parent when - * it is not expecting data. - * - * @param longPollIntervalMs Ver.: always - */ -void emberAfSetLongPollIntervalMsCallback(uint32_t longPollIntervalMs); -/** @brief Set Long Poll Interval Qs - * - * This function is only useful to end devices. This function will set the long - * poll interval (in quarter seconds) for the current network. This interval is - * the maximum amount of time a child will wait between polls of its parent when - * it is not expecting data. - * - * @param longPollIntervalQs Ver.: always - */ -void emberAfSetLongPollIntervalQsCallback(uint32_t longPollIntervalQs); -/** @brief Set Short Poll Interval Ms - * - * This function is only useful to sleepy end devices. This function will set - * the short poll interval (in milliseconds) for the current network. This - * interval is the maximum amount of time a child will wait between polls of its - * parent when it is expecting data. - * - * @param shortPollIntervalMs Ver.: always - */ -void emberAfSetShortPollIntervalMsCallback(uint16_t shortPollIntervalMs); -/** @brief Set Short Poll Interval Qs - * - * This function is only useful to sleepy end devices. This function will set - * the short poll interval (in quarter seconds) for the current network. This - * interval is the maximum amount of time a child will wait between polls of its - * parent when it is expecting data. - * - * @param shortPollIntervalQs Ver.: always - */ -void emberAfSetShortPollIntervalQsCallback(uint16_t shortPollIntervalQs); -/** @brief Set Source Route Overhead - * - * This function is called by the framework when it has information about the - * source route overhead to a particular destination. The application may use - * this information to cache the source route overhead. - * - * @param destination The node id of the destination Ver.: always - * @param overhead The overhead in bytes Ver.: always - */ -void emberAfSetSourceRouteOverheadCallback(EmberNodeId destination, uint8_t overhead); -/** @brief Set Time - * - * This callback should be implemented, if the device has access to real time - * clock, and has an ability to update that clock. The application framework - * expects to be passed the utcTime which is the number of seconds since the - * year 2000. Default implementation does nothing. Note: This function used to - * take time in year, month, day, hour, min, sec. We have changed this to - * utcTime in order to conserve code space. - * - * @param utcTime Ver.: always - */ -void emberAfSetTimeCallback(uint32_t utcTime); -/** @brief Set Wake Timeout Bitmask - * - * This function is only useful to sleepy end devices. This function will set - * the wake timeout bitmask for the current network. The bitmask determines - * which tasks will timeout automatically and which tasks require manual removal - * from the task list. - * - * @param tasks Ver.: always - */ -void emberAfSetWakeTimeoutBitmaskCallback(EmberAfApplicationTask tasks); -/** @brief Set Wake Timeout Ms - * - * This function is only useful to sleepy end devices. This function will set - * the wake timeout (in milliseconds) for the current network. This timeout is - * the maximum amount of time a child will wait for a task in the wake bitmask - * to finish. While waiting, the device will short poll. - * - * @param wakeTimeoutMs Ver.: always - */ -void emberAfSetWakeTimeoutMsCallback(uint16_t wakeTimeoutMs); -/** @brief Set Wake Timeout Qs - * - * This function is only useful to sleepy end devices. This function will set - * the wake timeout (in quarter seconds) for the current network. This timeout - * is the maximum amount of time a child will wait for a task in the wake - * bitmask to finish. While waiting, the device will short poll. - * - * @param wakeTimeoutQs Ver.: always - */ -void emberAfSetWakeTimeoutQsCallback(uint16_t wakeTimeoutQs); -/** @brief Stack Status - * - * This function is called by the application framework from the stack status - * handler. This callbacks provides applications an opportunity to be notified - * of changes to the stack status and take appropriate action. The return code - * from this callback is ignored by the framework. The framework will always - * process the stack status after the callback returns. - * - * @param status Ver.: always - */ -bool emberAfStackStatusCallback(EmberStatus status); -/** @brief Start Move - * - * This function is called to initiate the process for a device to move (rejoin) - * to a new parent. - * - */ -bool emberAfStartMoveCallback(void); -/** @brief Start Search For Joinable Network - * - * This function is called by the framework to search for joinable networks and - * join a network. The application should return EMBER_SUCCESS if the operation - * was initiated successfully. - * - */ -EmberStatus emberAfStartSearchForJoinableNetworkCallback(void); -/** @brief Stop Move - * - * This function is called to cancel a previously scheduled move (rejoin) to a - * new parent. - * - */ -void emberAfStopMoveCallback(void); -/** @brief Trust Center Join - * - * This callback is called from within the application framework's - * implementation of emberTrustCenterJoinHandler or ezspTrustCenterJoinHandler. - * This callback provides the same arguments passed to the - * TrustCenterJoinHandler. For more information about the TrustCenterJoinHandler - * please see documentation included in stack/include/trust-center.h. - * - * @param newNodeId Ver.: always - * @param newNodeEui64 Ver.: always - * @param parentOfNewNode Ver.: always - * @param status Ver.: always - * @param decision Ver.: always - */ -void emberAfTrustCenterJoinCallback(EmberNodeId newNodeId, EmberEUI64 newNodeEui64, EmberNodeId parentOfNewNode, - EmberDeviceUpdate status, EmberJoinDecision decision); -/** @brief Trust Center Keepalive Abort - * - * This callback is called when the device should abort the trust center - * keepalive process. - * - */ -void emberAfTrustCenterKeepaliveAbortCallback(void); -/** @brief Trust Center Keepalive Update - * - * This callback is called when the device finishes registration (successfully - * or otherwise) and the trust center keepalive process must be updated. If the - * keepalive process has not been started, then it is started. Otherwise if the - * keepalive is in the process of searching for the TC, it will process the - * result of that Trust Center search operation. - * - * @param registrationComplete Ver.: always - */ -void emberAfTrustCenterKeepaliveUpdateCallback(bool registrationComplete); -/** @brief Unused Pan Id Found - * - * This is called by the framework on behalf of the form-and-join library to - * notify the application of the PAN id and channel found following a call to - * ::emberScanForUnusedPanId(). See form-and-join documentation for more - * information. - * - * @param panId Ver.: always - * @param channel Ver.: always - */ -void emberAfUnusedPanIdFoundCallback(EmberPanId panId, uint8_t channel); -/** @brief Write Attributes Response - * - * This function is called by the application framework when a Write Attributes - * Response command is received from an external device. The application should - * return true if the message was processed or false if it was not. - * - * @param clusterId The cluster identifier of this response. Ver.: always - * @param buffer Buffer containing the list of write attribute status records. - * Ver.: always - * @param bufLen The length in bytes of the list. Ver.: always - */ -bool emberAfWriteAttributesResponseCallback(EmberAfClusterId clusterId, uint8_t * buffer, uint16_t bufLen); -/** @brief Zigbee Key Establishment - * - * A callback to the application to notify it of the status of the request for a - * Link Key. - * - * @param partner partner The IEEE address of the partner device. Or all zeros - * if the Key establishment failed. Ver.: always - * @param status The status of the key establishment. Ver.: always - */ -void emberAfZigbeeKeyEstablishmentCallback(EmberEUI64 partner, EmberKeyStatus status); -/** @} END Non-Cluster Related Callbacks */ - -/** @name Basic Cluster Callbacks */ -// @{ - -/** @brief Basic Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfBasicClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Basic Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfBasicClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Basic Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfBasicClusterClientInitCallback(uint8_t endpoint); -/** @brief Basic Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfBasicClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Basic Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfBasicClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, EmberStatus status); -/** @brief Basic Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfBasicClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Basic Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfBasicClusterClientTickCallback(uint8_t endpoint); -/** @brief Basic Cluster Get Locales Supported - * - * - * - * @param startLocale Ver.: always - * @param maxLocalesRequested Ver.: always - */ -bool emberAfBasicClusterGetLocalesSupportedCallback(uint8_t * startLocale, uint8_t maxLocalesRequested); -/** @brief Basic Cluster Get Locales Supported Response - * - * - * - * @param discoveryComplete Ver.: always - * @param localeSupported Ver.: always - */ -bool emberAfBasicClusterGetLocalesSupportedResponseCallback(uint8_t discoveryComplete, uint8_t * localeSupported); -/** @brief Basic Cluster Reset To Factory Defaults - * - * - * - */ -bool emberAfBasicClusterResetToFactoryDefaultsCallback(void); -/** @brief Basic Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfBasicClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Basic Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfBasicClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Basic Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfBasicClusterServerInitCallback(uint8_t endpoint); -/** @brief Basic Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfBasicClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Basic Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfBasicClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, EmberStatus status); -/** @brief Basic Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfBasicClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Basic Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfBasicClusterServerTickCallback(uint8_t endpoint); - -/** @} END Basic Cluster Callbacks */ - -/** @name Power Configuration Cluster Callbacks */ -// @{ - -/** @brief Power Configuration Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfPowerConfigClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Power Configuration Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfPowerConfigClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Power Configuration Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfPowerConfigClusterClientInitCallback(uint8_t endpoint); -/** @brief Power Configuration Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfPowerConfigClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Power Configuration Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfPowerConfigClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Power Configuration Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfPowerConfigClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Power Configuration Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfPowerConfigClusterClientTickCallback(uint8_t endpoint); -/** @brief Power Configuration Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfPowerConfigClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Power Configuration Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfPowerConfigClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Power Configuration Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfPowerConfigClusterServerInitCallback(uint8_t endpoint); -/** @brief Power Configuration Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfPowerConfigClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Power Configuration Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfPowerConfigClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Power Configuration Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfPowerConfigClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Power Configuration Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfPowerConfigClusterServerTickCallback(uint8_t endpoint); - -/** @} END Power Configuration Cluster Callbacks */ - -/** @name Device Temperature Configuration Cluster Callbacks */ -// @{ - -/** @brief Device Temperature Configuration Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfDeviceTempClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Device Temperature Configuration Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfDeviceTempClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Device Temperature Configuration Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfDeviceTempClusterClientInitCallback(uint8_t endpoint); -/** @brief Device Temperature Configuration Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfDeviceTempClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Device Temperature Configuration Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfDeviceTempClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Device Temperature Configuration Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfDeviceTempClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Device Temperature Configuration Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfDeviceTempClusterClientTickCallback(uint8_t endpoint); -/** @brief Device Temperature Configuration Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfDeviceTempClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Device Temperature Configuration Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfDeviceTempClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Device Temperature Configuration Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfDeviceTempClusterServerInitCallback(uint8_t endpoint); -/** @brief Device Temperature Configuration Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfDeviceTempClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Device Temperature Configuration Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfDeviceTempClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Device Temperature Configuration Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfDeviceTempClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Device Temperature Configuration Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfDeviceTempClusterServerTickCallback(uint8_t endpoint); - -/** @} END Device Temperature Configuration Cluster Callbacks */ - -/** @name Identify Cluster Callbacks */ -// @{ - -/** @brief Identify Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfIdentifyClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Identify Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfIdentifyClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Identify Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfIdentifyClusterClientInitCallback(uint8_t endpoint); -/** @brief Identify Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfIdentifyClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Identify Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfIdentifyClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Identify Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfIdentifyClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Identify Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfIdentifyClusterClientTickCallback(uint8_t endpoint); -/** @brief Identify Cluster E Z Mode Invoke - * - * - * - * @param action Ver.: always - */ -bool emberAfIdentifyClusterEZModeInvokeCallback(uint8_t action); -/** @brief Identify Cluster Identify - * - * - * - * @param identifyTime Ver.: always - */ -bool emberAfIdentifyClusterIdentifyCallback(uint16_t identifyTime); -/** @brief Identify Cluster Identify Query - * - * - * - */ -bool emberAfIdentifyClusterIdentifyQueryCallback(void); -/** @brief Identify Cluster Identify Query Response - * - * - * - * @param timeout Ver.: always - */ -bool emberAfIdentifyClusterIdentifyQueryResponseCallback(uint16_t timeout); -/** @brief Identify Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfIdentifyClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Identify Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfIdentifyClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Identify Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfIdentifyClusterServerInitCallback(uint8_t endpoint); -/** @brief Identify Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfIdentifyClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Identify Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfIdentifyClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Identify Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfIdentifyClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Identify Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfIdentifyClusterServerTickCallback(uint8_t endpoint); -/** @brief Identify Cluster Trigger Effect - * - * - * - * @param effectId Ver.: always - * @param effectVariant Ver.: always - */ -bool emberAfIdentifyClusterTriggerEffectCallback(uint8_t effectId, uint8_t effectVariant); -/** @brief Identify Cluster Update Commission State - * - * - * - * @param action Ver.: always - * @param commissionStateMask Ver.: always - */ -bool emberAfIdentifyClusterUpdateCommissionStateCallback(uint8_t action, uint8_t commissionStateMask); - -/** @} END Identify Cluster Callbacks */ - -/** @name Groups Cluster Callbacks */ -// @{ - -/** @brief Groups Cluster Clear Group Table - * - * This function is called by the framework when the application should clear - * the group table. - * - * @param endpoint The endpoint. Ver.: always - */ -void emberAfGroupsClusterClearGroupTableCallback(uint8_t endpoint); -/** @brief Groups Cluster Endpoint In Group - * - * This function is called by the framework when it needs to determine if an - * endpoint is a member of a group. The application should return true if the - * endpoint is a member of the group and false otherwise. - * - * @param endpoint The endpoint. Ver.: always - * @param groupId The group identifier. Ver.: always - */ -bool emberAfGroupsClusterEndpointInGroupCallback(uint8_t endpoint, uint16_t groupId); -/** @brief Groups Cluster Add Group - * - * - * - * @param groupId Ver.: always - * @param groupName Ver.: always - */ -bool emberAfGroupsClusterAddGroupCallback(uint16_t groupId, uint8_t * groupName); -/** @brief Groups Cluster Add Group If Identifying - * - * - * - * @param groupId Ver.: always - * @param groupName Ver.: always - */ -bool emberAfGroupsClusterAddGroupIfIdentifyingCallback(uint16_t groupId, uint8_t * groupName); -/** @brief Groups Cluster Add Group Response - * - * - * - * @param status Ver.: always - * @param groupId Ver.: always - */ -bool emberAfGroupsClusterAddGroupResponseCallback(uint8_t status, uint16_t groupId); -/** @brief Groups Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfGroupsClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Groups Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfGroupsClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Groups Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfGroupsClusterClientInitCallback(uint8_t endpoint); -/** @brief Groups Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfGroupsClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Groups Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfGroupsClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Groups Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfGroupsClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Groups Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfGroupsClusterClientTickCallback(uint8_t endpoint); -/** @brief Groups Cluster Get Group Membership - * - * - * - * @param groupCount Ver.: always - * @param groupList Ver.: always - */ -bool emberAfGroupsClusterGetGroupMembershipCallback(uint8_t groupCount, uint8_t * groupList); -/** @brief Groups Cluster Get Group Membership Response - * - * - * - * @param capacity Ver.: always - * @param groupCount Ver.: always - * @param groupList Ver.: always - */ -bool emberAfGroupsClusterGetGroupMembershipResponseCallback(uint8_t capacity, uint8_t groupCount, uint8_t * groupList); -/** @brief Groups Cluster Remove All Groups - * - * - * - */ -bool emberAfGroupsClusterRemoveAllGroupsCallback(void); -/** @brief Groups Cluster Remove Group - * - * - * - * @param groupId Ver.: always - */ -bool emberAfGroupsClusterRemoveGroupCallback(uint16_t groupId); -/** @brief Groups Cluster Remove Group Response - * - * - * - * @param status Ver.: always - * @param groupId Ver.: always - */ -bool emberAfGroupsClusterRemoveGroupResponseCallback(uint8_t status, uint16_t groupId); -/** @brief Groups Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfGroupsClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Groups Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfGroupsClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Groups Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfGroupsClusterServerInitCallback(uint8_t endpoint); -/** @brief Groups Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfGroupsClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Groups Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfGroupsClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Groups Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfGroupsClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Groups Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfGroupsClusterServerTickCallback(uint8_t endpoint); -/** @brief Groups Cluster View Group - * - * - * - * @param groupId Ver.: always - */ -bool emberAfGroupsClusterViewGroupCallback(uint16_t groupId); -/** @brief Groups Cluster View Group Response - * - * - * - * @param status Ver.: always - * @param groupId Ver.: always - * @param groupName Ver.: always - */ -bool emberAfGroupsClusterViewGroupResponseCallback(uint8_t status, uint16_t groupId, uint8_t * groupName); - -/** @} END Groups Cluster Callbacks */ - -/** @name Scenes Cluster Callbacks */ -// @{ - -/** @brief Scenes Cluster ClearSceneTable - * - * This function is called by the framework when the application should clear - * the scene table. - * - * @param endpoint The endpoint. Ver.: always - */ -void emberAfScenesClusterClearSceneTableCallback(uint8_t endpoint); -/** @brief Scenes Cluster Make Invalid - * - * This function is called to invalidate the valid attribute in the Scenes - * cluster. - * - * @param endpoint Ver.: always - */ -EmberAfStatus emberAfScenesClusterMakeInvalidCallback(uint8_t endpoint); -/** @brief Scenes Cluster Recall Saved Scene - * - * This function is called by the framework when the application should recall a - * saved scene. - * - * @param endpoint The endpoint. Ver.: always - * @param groupId The group identifier. Ver.: always - * @param sceneId The scene identifier. Ver.: always - */ -EmberAfStatus emberAfScenesClusterRecallSavedSceneCallback(uint8_t endpoint, uint16_t groupId, uint8_t sceneId); -/** @brief Scenes Cluster Remove Scenes In Group - * - * This function removes the scenes from a specified group. - * - * @param endpoint Endpoint Ver.: always - * @param groupId Group ID Ver.: always - */ -void emberAfScenesClusterRemoveScenesInGroupCallback(uint8_t endpoint, uint16_t groupId); -/** @brief Scenes Cluster Add Scene - * - * - * - * @param groupId Ver.: always - * @param sceneId Ver.: always - * @param transitionTime Ver.: always - * @param sceneName Ver.: always - * @param extensionFieldSets Ver.: always - */ -bool emberAfScenesClusterAddSceneCallback(uint16_t groupId, uint8_t sceneId, uint16_t transitionTime, uint8_t * sceneName, - uint8_t * extensionFieldSets); -/** @brief Scenes Cluster Add Scene Response - * - * - * - * @param status Ver.: always - * @param groupId Ver.: always - * @param sceneId Ver.: always - */ -bool emberAfScenesClusterAddSceneResponseCallback(uint8_t status, uint16_t groupId, uint8_t sceneId); -/** @brief Scenes Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfScenesClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Scenes Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfScenesClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Scenes Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfScenesClusterClientInitCallback(uint8_t endpoint); -/** @brief Scenes Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfScenesClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Scenes Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfScenesClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Scenes Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfScenesClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Scenes Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfScenesClusterClientTickCallback(uint8_t endpoint); -/** @brief Scenes Cluster Copy Scene - * - * - * - * @param mode Ver.: always - * @param groupIdFrom Ver.: always - * @param sceneIdFrom Ver.: always - * @param groupIdTo Ver.: always - * @param sceneIdTo Ver.: always - */ -bool emberAfScenesClusterCopySceneCallback(uint8_t mode, uint16_t groupIdFrom, uint8_t sceneIdFrom, uint16_t groupIdTo, - uint8_t sceneIdTo); -/** @brief Scenes Cluster Copy Scene Response - * - * - * - * @param status Ver.: always - * @param groupIdFrom Ver.: always - * @param sceneIdFrom Ver.: always - */ -bool emberAfScenesClusterCopySceneResponseCallback(uint8_t status, uint16_t groupIdFrom, uint8_t sceneIdFrom); -/** @brief Scenes Cluster Enhanced Add Scene - * - * - * - * @param groupId Ver.: always - * @param sceneId Ver.: always - * @param transitionTime Ver.: always - * @param sceneName Ver.: always - * @param extensionFieldSets Ver.: always - */ -bool emberAfScenesClusterEnhancedAddSceneCallback(uint16_t groupId, uint8_t sceneId, uint16_t transitionTime, uint8_t * sceneName, - uint8_t * extensionFieldSets); -/** @brief Scenes Cluster Enhanced Add Scene Response - * - * - * - * @param status Ver.: always - * @param groupId Ver.: always - * @param sceneId Ver.: always - */ -bool emberAfScenesClusterEnhancedAddSceneResponseCallback(uint8_t status, uint16_t groupId, uint8_t sceneId); -/** @brief Scenes Cluster Enhanced View Scene - * - * - * - * @param groupId Ver.: always - * @param sceneId Ver.: always - */ -bool emberAfScenesClusterEnhancedViewSceneCallback(uint16_t groupId, uint8_t sceneId); -/** @brief Scenes Cluster Enhanced View Scene Response - * - * - * - * @param status Ver.: always - * @param groupId Ver.: always - * @param sceneId Ver.: always - * @param transitionTime Ver.: always - * @param sceneName Ver.: always - * @param extensionFieldSets Ver.: always - */ -bool emberAfScenesClusterEnhancedViewSceneResponseCallback(uint8_t status, uint16_t groupId, uint8_t sceneId, - uint16_t transitionTime, uint8_t * sceneName, - uint8_t * extensionFieldSets); -/** @brief Scenes Cluster Get Scene Membership - * - * - * - * @param groupId Ver.: always - */ -bool emberAfScenesClusterGetSceneMembershipCallback(uint16_t groupId); -/** @brief Scenes Cluster Get Scene Membership Response - * - * - * - * @param status Ver.: always - * @param capacity Ver.: always - * @param groupId Ver.: always - * @param sceneCount Ver.: always - * @param sceneList Ver.: always - */ -bool emberAfScenesClusterGetSceneMembershipResponseCallback(uint8_t status, uint8_t capacity, uint16_t groupId, uint8_t sceneCount, - uint8_t * sceneList); -/** @brief Scenes Cluster Recall Scene - * - * - * - * @param groupId Ver.: always - * @param sceneId Ver.: always - * @param transitionTime Ver.: since zcl-7.0-07-5123-07 - */ -bool emberAfScenesClusterRecallSceneCallback(uint16_t groupId, uint8_t sceneId, uint16_t transitionTime); -/** @brief Scenes Cluster Remove All Scenes - * - * - * - * @param groupId Ver.: always - */ -bool emberAfScenesClusterRemoveAllScenesCallback(uint16_t groupId); -/** @brief Scenes Cluster Remove All Scenes Response - * - * - * - * @param status Ver.: always - * @param groupId Ver.: always - */ -bool emberAfScenesClusterRemoveAllScenesResponseCallback(uint8_t status, uint16_t groupId); -/** @brief Scenes Cluster Remove Scene - * - * - * - * @param groupId Ver.: always - * @param sceneId Ver.: always - */ -bool emberAfScenesClusterRemoveSceneCallback(uint16_t groupId, uint8_t sceneId); -/** @brief Scenes Cluster Remove Scene Response - * - * - * - * @param status Ver.: always - * @param groupId Ver.: always - * @param sceneId Ver.: always - */ -bool emberAfScenesClusterRemoveSceneResponseCallback(uint8_t status, uint16_t groupId, uint8_t sceneId); -/** @brief Scenes Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfScenesClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Scenes Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfScenesClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Scenes Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfScenesClusterServerInitCallback(uint8_t endpoint); -/** @brief Scenes Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfScenesClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Scenes Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfScenesClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Scenes Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfScenesClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Scenes Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfScenesClusterServerTickCallback(uint8_t endpoint); -/** @brief Scenes Cluster Store Scene - * - * - * - * @param groupId Ver.: always - * @param sceneId Ver.: always - */ -bool emberAfScenesClusterStoreSceneCallback(uint16_t groupId, uint8_t sceneId); -/** @brief Scenes Cluster Store Scene Response - * - * - * - * @param status Ver.: always - * @param groupId Ver.: always - * @param sceneId Ver.: always - */ -bool emberAfScenesClusterStoreSceneResponseCallback(uint8_t status, uint16_t groupId, uint8_t sceneId); -/** @brief Scenes Cluster View Scene - * - * - * - * @param groupId Ver.: always - * @param sceneId Ver.: always - */ -bool emberAfScenesClusterViewSceneCallback(uint16_t groupId, uint8_t sceneId); -/** @brief Scenes Cluster View Scene Response - * - * - * - * @param status Ver.: always - * @param groupId Ver.: always - * @param sceneId Ver.: always - * @param transitionTime Ver.: always - * @param sceneName Ver.: always - * @param extensionFieldSets Ver.: always - */ -bool emberAfScenesClusterViewSceneResponseCallback(uint8_t status, uint16_t groupId, uint8_t sceneId, uint16_t transitionTime, - uint8_t * sceneName, uint8_t * extensionFieldSets); -/** @brief Scenes Cluster Store Current Scene - * - * This function is called by the framework when the application should store - * the current scene. If an entry already exists in the scene table with the - * same scene and group ids, the application should update the entry with the - * current scene. Otherwise, a new entry should be adde to the scene table, if - * possible. - * - * @param endpoint The endpoint. Ver.: always - * @param groupId The group identifier. Ver.: always - * @param sceneId The scene identifier. Ver.: always - */ -EmberAfStatus emberAfScenesClusterStoreCurrentSceneCallback(uint8_t endpoint, uint16_t groupId, uint8_t sceneId); - -/** @} END Scenes Cluster Callbacks */ - -/** @name On/off Cluster Callbacks */ -// @{ - -/** @brief On/off Cluster Level Control Effect - * - * This is called by the framework when the on/off cluster initiates a command - * that must effect a level control change. The implementation assumes that the - * client will handle any effect on the On/Off Cluster. - * - * @param endpoint Ver.: always - * @param newValue Ver.: always - */ -void emberAfOnOffClusterLevelControlEffectCallback(uint8_t endpoint, bool newValue); -/** @brief On/off Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfOnOffClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief On/off Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfOnOffClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief On/off Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfOnOffClusterClientInitCallback(uint8_t endpoint); -/** @brief On/off Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfOnOffClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief On/off Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfOnOffClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, EmberStatus status); -/** @brief On/off Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfOnOffClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief On/off Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfOnOffClusterClientTickCallback(uint8_t endpoint); -/** @brief On/off Cluster Off - * - * - * - */ -bool emberAfOnOffClusterOffCallback(void); -/** @brief On/off Cluster Off With Effect - * - * - * - * @param effectId Ver.: always - * @param effectVariant Ver.: always - */ -bool emberAfOnOffClusterOffWithEffectCallback(uint8_t effectId, uint8_t effectVariant); -/** @brief On/off Cluster On - * - * - * - */ -bool emberAfOnOffClusterOnCallback(void); -/** @brief On/off Cluster On With Recall Global Scene - * - * - * - */ -bool emberAfOnOffClusterOnWithRecallGlobalSceneCallback(void); -/** @brief On/off Cluster On With Timed Off - * - * - * - * @param onOffControl Ver.: always - * @param onTime Ver.: always - * @param offWaitTime Ver.: always - */ -bool emberAfOnOffClusterOnWithTimedOffCallback(uint8_t onOffControl, uint16_t onTime, uint16_t offWaitTime); -/** @brief On/off Cluster Sample Mfg Specific Off With Transition - * - * - * - */ -bool emberAfOnOffClusterSampleMfgSpecificOffWithTransitionCallback(void); -/** @brief On/off Cluster Sample Mfg Specific On With Transition2 - * - * - * - */ -bool emberAfOnOffClusterSampleMfgSpecificOnWithTransition2Callback(void); -/** @brief On/off Cluster Sample Mfg Specific On With Transition - * - * - * - */ -bool emberAfOnOffClusterSampleMfgSpecificOnWithTransitionCallback(void); -/** @brief On/off Cluster Sample Mfg Specific Toggle With Transition2 - * - * - * - */ -bool emberAfOnOffClusterSampleMfgSpecificToggleWithTransition2Callback(void); -/** @brief On/off Cluster Sample Mfg Specific Toggle With Transition - * - * - * - */ -bool emberAfOnOffClusterSampleMfgSpecificToggleWithTransitionCallback(void); -/** @brief On/off Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfOnOffClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief On/off Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfOnOffClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief On/off Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfOnOffClusterServerInitCallback(uint8_t endpoint); -/** @brief On/off Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfOnOffClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief On/off Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfOnOffClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, EmberStatus status); -/** @brief On/off Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfOnOffClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief On/off Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfOnOffClusterServerTickCallback(uint8_t endpoint); -/** @brief On/off Cluster Toggle - * - * - * - */ -bool emberAfOnOffClusterToggleCallback(void); -/** @brief On/off Cluster Set Value - * - * This function is called when the on/off value needs to be set, either through - * normal channels or as a result of a level change. - * - * @param endpoint Ver.: always - * @param command Ver.: always - * @param initiatedByLevelChange Ver.: always - */ -EmberAfStatus emberAfOnOffClusterSetValueCallback(uint8_t endpoint, uint8_t command, bool initiatedByLevelChange); -/** @brief On/off Cluster Server Post Init - * - * Following resolution of the On/Off state at startup for this endpoint, perform any - * additional initialization needed; e.g., synchronize hardware state. - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfPluginOnOffClusterServerPostInitCallback(uint8_t endpoint); - -/** @} END On/off Cluster Callbacks */ - -/** @name On/off Switch Configuration Cluster Callbacks */ -// @{ - -/** @brief On/off Switch Configuration Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfOnOffSwitchConfigClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief On/off Switch Configuration Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfOnOffSwitchConfigClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief On/off Switch Configuration Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfOnOffSwitchConfigClusterClientInitCallback(uint8_t endpoint); -/** @brief On/off Switch Configuration Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfOnOffSwitchConfigClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief On/off Switch Configuration Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfOnOffSwitchConfigClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief On/off Switch Configuration Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfOnOffSwitchConfigClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief On/off Switch Configuration Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfOnOffSwitchConfigClusterClientTickCallback(uint8_t endpoint); -/** @brief On/off Switch Configuration Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfOnOffSwitchConfigClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief On/off Switch Configuration Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfOnOffSwitchConfigClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief On/off Switch Configuration Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfOnOffSwitchConfigClusterServerInitCallback(uint8_t endpoint); -/** @brief On/off Switch Configuration Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfOnOffSwitchConfigClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief On/off Switch Configuration Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfOnOffSwitchConfigClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief On/off Switch Configuration Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfOnOffSwitchConfigClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief On/off Switch Configuration Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfOnOffSwitchConfigClusterServerTickCallback(uint8_t endpoint); - -/** @} END On/off Switch Configuration Cluster Callbacks */ - -/** @name Level Control Cluster Callbacks */ -// @{ - -/** @brief Level Control Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfLevelControlClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Level Control Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfLevelControlClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Level Control Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfLevelControlClusterClientInitCallback(uint8_t endpoint); -/** @brief Level Control Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfLevelControlClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Level Control Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfLevelControlClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Level Control Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfLevelControlClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Level Control Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfLevelControlClusterClientTickCallback(uint8_t endpoint); -/** @brief Level Control Cluster Move - * - * - * - * @param moveMode Ver.: always - * @param rate Ver.: always - * @param optionMask Ver.: since zcl6-errata-14-0129-15 - * @param optionOverride Ver.: since zcl6-errata-14-0129-15 - */ -bool emberAfLevelControlClusterMoveCallback(uint8_t moveMode, uint8_t rate, uint8_t optionMask, uint8_t optionOverride); -/** @brief Level Control Cluster Move To Level - * - * - * - * @param level Ver.: always - * @param transitionTime Ver.: always - * @param optionMask Ver.: since zcl6-errata-14-0129-15 - * @param optionOverride Ver.: since zcl6-errata-14-0129-15 - */ -bool emberAfLevelControlClusterMoveToLevelCallback(uint8_t level, uint16_t transitionTime, uint8_t optionMask, - uint8_t optionOverride); -/** @brief Level Control Cluster Move To Level With On Off - * - * - * - * @param level Ver.: always - * @param transitionTime Ver.: always - */ -bool emberAfLevelControlClusterMoveToLevelWithOnOffCallback(uint8_t level, uint16_t transitionTime); -/** @brief Level Control Cluster Move With On Off - * - * - * - * @param moveMode Ver.: always - * @param rate Ver.: always - */ -bool emberAfLevelControlClusterMoveWithOnOffCallback(uint8_t moveMode, uint8_t rate); -/** @brief Level Control Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfLevelControlClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Level Control Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfLevelControlClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Level Control Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfLevelControlClusterServerInitCallback(uint8_t endpoint); -/** @brief Level Control Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfLevelControlClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Level Control Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfLevelControlClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Level Control Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfLevelControlClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Level Control Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfLevelControlClusterServerTickCallback(uint8_t endpoint); -/** @brief Level Control Cluster Step - * - * - * - * @param stepMode Ver.: always - * @param stepSize Ver.: always - * @param transitionTime Ver.: always - * @param optionMask Ver.: since zcl6-errata-14-0129-15 - * @param optionOverride Ver.: since zcl6-errata-14-0129-15 - */ -bool emberAfLevelControlClusterStepCallback(uint8_t stepMode, uint8_t stepSize, uint16_t transitionTime, uint8_t optionMask, - uint8_t optionOverride); -/** @brief Level Control Cluster Step With On Off - * - * - * - * @param stepMode Ver.: always - * @param stepSize Ver.: always - * @param transitionTime Ver.: always - */ -bool emberAfLevelControlClusterStepWithOnOffCallback(uint8_t stepMode, uint8_t stepSize, uint16_t transitionTime); -/** @brief Level Control Cluster Stop - * - * - * - * @param optionMask Ver.: since zcl6-errata-14-0129-15 - * @param optionOverride Ver.: since zcl6-errata-14-0129-15 - */ -bool emberAfLevelControlClusterStopCallback(uint8_t optionMask, uint8_t optionOverride); -/** @brief Level Control Cluster Stop With On Off - * - * - * - */ -bool emberAfLevelControlClusterStopWithOnOffCallback(void); - -/** @} END Level Control Cluster Callbacks */ - -/** @name Alarms Cluster Callbacks */ -// @{ - -/** @brief Alarms Cluster Alarm - * - * - * - * @param alarmCode Ver.: always - * @param clusterId Ver.: always - */ -bool emberAfAlarmClusterAlarmCallback(uint8_t alarmCode, uint16_t clusterId); -/** @brief Alarms Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfAlarmClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Alarms Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfAlarmClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Alarms Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfAlarmClusterClientInitCallback(uint8_t endpoint); -/** @brief Alarms Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfAlarmClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Alarms Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfAlarmClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, EmberStatus status); -/** @brief Alarms Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfAlarmClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Alarms Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfAlarmClusterClientTickCallback(uint8_t endpoint); -/** @brief Alarms Cluster Get Alarm - * - * - * - */ -bool emberAfAlarmClusterGetAlarmCallback(void); -/** @brief Alarms Cluster Get Alarm Response - * - * - * - * @param status Ver.: always - * @param alarmCode Ver.: always - * @param clusterId Ver.: always - * @param timeStamp Ver.: always - */ -bool emberAfAlarmClusterGetAlarmResponseCallback(uint8_t status, uint8_t alarmCode, uint16_t clusterId, uint32_t timeStamp); -/** @brief Alarms Cluster Reset Alarm - * - * - * - * @param alarmCode Ver.: always - * @param clusterId Ver.: always - */ -bool emberAfAlarmClusterResetAlarmCallback(uint8_t alarmCode, uint16_t clusterId); -/** @brief Alarms Cluster Reset Alarm Log - * - * - * - */ -bool emberAfAlarmClusterResetAlarmLogCallback(void); -/** @brief Alarms Cluster Reset All Alarms - * - * - * - */ -bool emberAfAlarmClusterResetAllAlarmsCallback(void); -/** @brief Alarms Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfAlarmClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Alarms Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfAlarmClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Alarms Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfAlarmClusterServerInitCallback(uint8_t endpoint); -/** @brief Alarms Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfAlarmClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Alarms Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfAlarmClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, EmberStatus status); -/** @brief Alarms Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfAlarmClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Alarms Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfAlarmClusterServerTickCallback(uint8_t endpoint); - -/** @} END Alarms Cluster Callbacks */ - -/** @name Time Cluster Callbacks */ -// @{ - -/** @brief Time Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfTimeClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Time Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfTimeClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Time Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfTimeClusterClientInitCallback(uint8_t endpoint); -/** @brief Time Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfTimeClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Time Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfTimeClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, EmberStatus status); -/** @brief Time Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfTimeClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Time Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfTimeClusterClientTickCallback(uint8_t endpoint); -/** @brief Time Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfTimeClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Time Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfTimeClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Time Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfTimeClusterServerInitCallback(uint8_t endpoint); -/** @brief Time Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfTimeClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Time Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfTimeClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, EmberStatus status); -/** @brief Time Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfTimeClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Time Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfTimeClusterServerTickCallback(uint8_t endpoint); - -/** @} END Time Cluster Callbacks */ - -/** @name RSSI Location Cluster Callbacks */ -// @{ - -/** @brief RSSI Location Cluster Anchor Node Announce - * - * - * - * @param anchorNodeIeeeAddress Ver.: always - * @param coordinate1 Ver.: always - * @param coordinate2 Ver.: always - * @param coordinate3 Ver.: always - */ -bool emberAfRssiLocationClusterAnchorNodeAnnounceCallback(uint8_t * anchorNodeIeeeAddress, int16_t coordinate1, int16_t coordinate2, - int16_t coordinate3); -/** @brief RSSI Location Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfRssiLocationClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief RSSI Location Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfRssiLocationClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief RSSI Location Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfRssiLocationClusterClientInitCallback(uint8_t endpoint); -/** @brief RSSI Location Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfRssiLocationClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief RSSI Location Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfRssiLocationClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief RSSI Location Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfRssiLocationClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief RSSI Location Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfRssiLocationClusterClientTickCallback(uint8_t endpoint); -/** @brief RSSI Location Cluster Compact Location Data Notification - * - * - * - * @param locationType Ver.: always - * @param coordinate1 Ver.: always - * @param coordinate2 Ver.: always - * @param coordinate3 Ver.: always - * @param qualityMeasure Ver.: always - * @param locationAge Ver.: always - */ -bool emberAfRssiLocationClusterCompactLocationDataNotificationCallback(uint8_t locationType, int16_t coordinate1, - int16_t coordinate2, int16_t coordinate3, - uint8_t qualityMeasure, uint16_t locationAge); -/** @brief RSSI Location Cluster Device Configuration Response - * - * - * - * @param status Ver.: always - * @param power Ver.: always - * @param pathLossExponent Ver.: always - * @param calculationPeriod Ver.: always - * @param numberRssiMeasurements Ver.: always - * @param reportingPeriod Ver.: always - */ -bool emberAfRssiLocationClusterDeviceConfigurationResponseCallback(uint8_t status, int16_t power, uint16_t pathLossExponent, - uint16_t calculationPeriod, uint8_t numberRssiMeasurements, - uint16_t reportingPeriod); -/** @brief RSSI Location Cluster Get Device Configuration - * - * - * - * @param targetAddress Ver.: always - */ -bool emberAfRssiLocationClusterGetDeviceConfigurationCallback(uint8_t * targetAddress); -/** @brief RSSI Location Cluster Get Location Data - * - * - * - * @param flags Ver.: always - * @param numberResponses Ver.: always - * @param targetAddress Ver.: always - */ -bool emberAfRssiLocationClusterGetLocationDataCallback(uint8_t flags, uint8_t numberResponses, uint8_t * targetAddress); -/** @brief RSSI Location Cluster Location Data Notification - * - * - * - * @param locationType Ver.: always - * @param coordinate1 Ver.: always - * @param coordinate2 Ver.: always - * @param coordinate3 Ver.: always - * @param power Ver.: always - * @param pathLossExponent Ver.: always - * @param locationMethod Ver.: always - * @param qualityMeasure Ver.: always - * @param locationAge Ver.: always - */ -bool emberAfRssiLocationClusterLocationDataNotificationCallback(uint8_t locationType, int16_t coordinate1, int16_t coordinate2, - int16_t coordinate3, int16_t power, uint16_t pathLossExponent, - uint8_t locationMethod, uint8_t qualityMeasure, - uint16_t locationAge); -/** @brief RSSI Location Cluster Location Data Response - * - * - * - * @param status Ver.: always - * @param locationType Ver.: always - * @param coordinate1 Ver.: always - * @param coordinate2 Ver.: always - * @param coordinate3 Ver.: always - * @param power Ver.: always - * @param pathLossExponent Ver.: always - * @param locationMethod Ver.: always - * @param qualityMeasure Ver.: always - * @param locationAge Ver.: always - */ -bool emberAfRssiLocationClusterLocationDataResponseCallback(uint8_t status, uint8_t locationType, int16_t coordinate1, - int16_t coordinate2, int16_t coordinate3, int16_t power, - uint16_t pathLossExponent, uint8_t locationMethod, - uint8_t qualityMeasure, uint16_t locationAge); -/** @brief RSSI Location Cluster Report Rssi Measurements - * - * - * - * @param measuringDevice Ver.: always - * @param neighbors Ver.: always - * @param neighborsInfo Ver.: always - */ -bool emberAfRssiLocationClusterReportRssiMeasurementsCallback(uint8_t * measuringDevice, uint8_t neighbors, - uint8_t * neighborsInfo); -/** @brief RSSI Location Cluster Request Own Location - * - * - * - * @param blindNode Ver.: always - */ -bool emberAfRssiLocationClusterRequestOwnLocationCallback(uint8_t * blindNode); -/** @brief RSSI Location Cluster Rssi Ping - * - * - * - * @param locationType Ver.: always - */ -bool emberAfRssiLocationClusterRssiPingCallback(uint8_t locationType); -/** @brief RSSI Location Cluster Rssi Request - * - * - * - */ -bool emberAfRssiLocationClusterRssiRequestCallback(void); -/** @brief RSSI Location Cluster Rssi Response - * - * - * - * @param replyingDevice Ver.: always - * @param coordinate1 Ver.: always - * @param coordinate2 Ver.: always - * @param coordinate3 Ver.: always - * @param rssi Ver.: always - * @param numberRssiMeasurements Ver.: always - */ -bool emberAfRssiLocationClusterRssiResponseCallback(uint8_t * replyingDevice, int16_t coordinate1, int16_t coordinate2, - int16_t coordinate3, int8_t rssi, uint8_t numberRssiMeasurements); -/** @brief RSSI Location Cluster Send Pings - * - * - * - * @param targetAddress Ver.: always - * @param numberRssiMeasurements Ver.: always - * @param calculationPeriod Ver.: always - */ -bool emberAfRssiLocationClusterSendPingsCallback(uint8_t * targetAddress, uint8_t numberRssiMeasurements, - uint16_t calculationPeriod); -/** @brief RSSI Location Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfRssiLocationClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief RSSI Location Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfRssiLocationClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief RSSI Location Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfRssiLocationClusterServerInitCallback(uint8_t endpoint); -/** @brief RSSI Location Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfRssiLocationClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief RSSI Location Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfRssiLocationClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief RSSI Location Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfRssiLocationClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief RSSI Location Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfRssiLocationClusterServerTickCallback(uint8_t endpoint); -/** @brief RSSI Location Cluster Set Absolute Location - * - * - * - * @param coordinate1 Ver.: always - * @param coordinate2 Ver.: always - * @param coordinate3 Ver.: always - * @param power Ver.: always - * @param pathLossExponent Ver.: always - */ -bool emberAfRssiLocationClusterSetAbsoluteLocationCallback(int16_t coordinate1, int16_t coordinate2, int16_t coordinate3, - int16_t power, uint16_t pathLossExponent); -/** @brief RSSI Location Cluster Set Device Configuration - * - * - * - * @param power Ver.: always - * @param pathLossExponent Ver.: always - * @param calculationPeriod Ver.: always - * @param numberRssiMeasurements Ver.: always - * @param reportingPeriod Ver.: always - */ -bool emberAfRssiLocationClusterSetDeviceConfigurationCallback(int16_t power, uint16_t pathLossExponent, uint16_t calculationPeriod, - uint8_t numberRssiMeasurements, uint16_t reportingPeriod); - -/** @} END RSSI Location Cluster Callbacks */ - -/** @name Binary Input (Basic) Cluster Callbacks */ -// @{ - -/** @brief Binary Input (Basic) Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfBinaryInputBasicClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Binary Input (Basic) Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfBinaryInputBasicClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Binary Input (Basic) Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfBinaryInputBasicClusterClientInitCallback(uint8_t endpoint); -/** @brief Binary Input (Basic) Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfBinaryInputBasicClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Binary Input (Basic) Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfBinaryInputBasicClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Binary Input (Basic) Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfBinaryInputBasicClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Binary Input (Basic) Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfBinaryInputBasicClusterClientTickCallback(uint8_t endpoint); -/** @brief Binary Input (Basic) Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfBinaryInputBasicClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Binary Input (Basic) Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfBinaryInputBasicClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Binary Input (Basic) Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfBinaryInputBasicClusterServerInitCallback(uint8_t endpoint); -/** @brief Binary Input (Basic) Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfBinaryInputBasicClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Binary Input (Basic) Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfBinaryInputBasicClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Binary Input (Basic) Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfBinaryInputBasicClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Binary Input (Basic) Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfBinaryInputBasicClusterServerTickCallback(uint8_t endpoint); - -/** @} END Binary Input (Basic) Cluster Callbacks */ - -/** @name Commissioning Cluster Callbacks */ -// @{ - -/** @brief Commissioning Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfCommissioningClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Commissioning Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfCommissioningClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Commissioning Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfCommissioningClusterClientInitCallback(uint8_t endpoint); -/** @brief Commissioning Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfCommissioningClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Commissioning Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfCommissioningClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Commissioning Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfCommissioningClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Commissioning Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfCommissioningClusterClientTickCallback(uint8_t endpoint); -/** @brief Commissioning Cluster Reset Startup Parameters - * - * - * - * @param options Ver.: always - * @param index Ver.: always - */ -bool emberAfCommissioningClusterResetStartupParametersCallback(uint8_t options, uint8_t index); -/** @brief Commissioning Cluster Reset Startup Parameters Response - * - * - * - * @param status Ver.: always - */ -bool emberAfCommissioningClusterResetStartupParametersResponseCallback(uint8_t status); -/** @brief Commissioning Cluster Restart Device - * - * - * - * @param options Ver.: always - * @param delay Ver.: always - * @param jitter Ver.: always - */ -bool emberAfCommissioningClusterRestartDeviceCallback(uint8_t options, uint8_t delay, uint8_t jitter); -/** @brief Commissioning Cluster Restart Device Response - * - * - * - * @param status Ver.: always - */ -bool emberAfCommissioningClusterRestartDeviceResponseCallback(uint8_t status); -/** @brief Commissioning Cluster Restore Startup Parameters - * - * - * - * @param options Ver.: always - * @param index Ver.: always - */ -bool emberAfCommissioningClusterRestoreStartupParametersCallback(uint8_t options, uint8_t index); -/** @brief Commissioning Cluster Restore Startup Parameters Response - * - * - * - * @param status Ver.: always - */ -bool emberAfCommissioningClusterRestoreStartupParametersResponseCallback(uint8_t status); -/** @brief Commissioning Cluster Save Startup Parameters - * - * - * - * @param options Ver.: always - * @param index Ver.: always - */ -bool emberAfCommissioningClusterSaveStartupParametersCallback(uint8_t options, uint8_t index); -/** @brief Commissioning Cluster Save Startup Parameters Response - * - * - * - * @param status Ver.: always - */ -bool emberAfCommissioningClusterSaveStartupParametersResponseCallback(uint8_t status); -/** @brief Commissioning Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfCommissioningClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Commissioning Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfCommissioningClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Commissioning Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfCommissioningClusterServerInitCallback(uint8_t endpoint); -/** @brief Commissioning Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfCommissioningClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Commissioning Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfCommissioningClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Commissioning Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfCommissioningClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Commissioning Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfCommissioningClusterServerTickCallback(uint8_t endpoint); - -/** @} END Commissioning Cluster Callbacks */ - -/** @name Partition Cluster Callbacks */ -// @{ - -/** @brief Partition Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfPartitionClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Partition Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfPartitionClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Partition Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfPartitionClusterClientInitCallback(uint8_t endpoint); -/** @brief Partition Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfPartitionClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Partition Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfPartitionClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Partition Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfPartitionClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Partition Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfPartitionClusterClientTickCallback(uint8_t endpoint); -/** @brief Partition Cluster Multiple Ack - * - * - * - * @param ackOptions Ver.: always - * @param firstFrameIdAndNackList Ver.: always - */ -bool emberAfPartitionClusterMultipleAckCallback(uint8_t ackOptions, uint8_t * firstFrameIdAndNackList); -/** @brief Partition Cluster Read Handshake Param - * - * - * - * @param partitionedClusterId Ver.: always - * @param attributeList Ver.: always - */ -bool emberAfPartitionClusterReadHandshakeParamCallback(uint16_t partitionedClusterId, uint8_t * attributeList); -/** @brief Partition Cluster Read Handshake Param Response - * - * - * - * @param partitionedClusterId Ver.: always - * @param readAttributeStatusRecords Ver.: always - */ -bool emberAfPartitionClusterReadHandshakeParamResponseCallback(uint16_t partitionedClusterId, uint8_t * readAttributeStatusRecords); -/** @brief Partition Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfPartitionClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Partition Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfPartitionClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Partition Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfPartitionClusterServerInitCallback(uint8_t endpoint); -/** @brief Partition Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfPartitionClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Partition Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfPartitionClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Partition Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfPartitionClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Partition Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfPartitionClusterServerTickCallback(uint8_t endpoint); -/** @brief Partition Cluster Transfer Partitioned Frame - * - * - * - * @param fragmentationOptions Ver.: always - * @param partitionedIndicatorAndFrame Ver.: always - */ -bool emberAfPartitionClusterTransferPartitionedFrameCallback(uint8_t fragmentationOptions, uint8_t * partitionedIndicatorAndFrame); -/** @brief Partition Cluster Write Handshake Param - * - * - * - * @param partitionedClusterId Ver.: always - * @param writeAttributeRecords Ver.: always - */ -bool emberAfPartitionClusterWriteHandshakeParamCallback(uint16_t partitionedClusterId, uint8_t * writeAttributeRecords); - -/** @} END Partition Cluster Callbacks */ - -/** @name Over the Air Bootloading Cluster Callbacks */ -// @{ - -/** @brief Over the Air Bootloading Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfOtaBootloadClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Over the Air Bootloading Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfOtaBootloadClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Over the Air Bootloading Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfOtaBootloadClusterClientInitCallback(uint8_t endpoint); -/** @brief Over the Air Bootloading Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfOtaBootloadClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Over the Air Bootloading Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfOtaBootloadClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Over the Air Bootloading Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfOtaBootloadClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Over the Air Bootloading Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfOtaBootloadClusterClientTickCallback(uint8_t endpoint); -/** @brief Over the Air Bootloading Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfOtaBootloadClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Over the Air Bootloading Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfOtaBootloadClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Over the Air Bootloading Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfOtaBootloadClusterServerInitCallback(uint8_t endpoint); -/** @brief Over the Air Bootloading Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfOtaBootloadClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Over the Air Bootloading Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfOtaBootloadClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Over the Air Bootloading Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfOtaBootloadClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Over the Air Bootloading Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfOtaBootloadClusterServerTickCallback(uint8_t endpoint); - -/** @} END Over the Air Bootloading Cluster Callbacks */ - -/** @name Power Profile Cluster Callbacks */ -// @{ - -/** @brief Power Profile Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfPowerProfileClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Power Profile Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfPowerProfileClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Power Profile Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfPowerProfileClusterClientInitCallback(uint8_t endpoint); -/** @brief Power Profile Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfPowerProfileClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Power Profile Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfPowerProfileClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Power Profile Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfPowerProfileClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Power Profile Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfPowerProfileClusterClientTickCallback(uint8_t endpoint); -/** @brief Power Profile Cluster Energy Phases Schedule Notification - * - * - * - * @param powerProfileId Ver.: always - * @param numOfScheduledPhases Ver.: always - * @param scheduledPhases Ver.: always - */ -bool emberAfPowerProfileClusterEnergyPhasesScheduleNotificationCallback(uint8_t powerProfileId, uint8_t numOfScheduledPhases, - uint8_t * scheduledPhases); -/** @brief Power Profile Cluster Energy Phases Schedule Request - * - * - * - * @param powerProfileId Ver.: always - */ -bool emberAfPowerProfileClusterEnergyPhasesScheduleRequestCallback(uint8_t powerProfileId); -/** @brief Power Profile Cluster Energy Phases Schedule Response - * - * - * - * @param powerProfileId Ver.: always - * @param numOfScheduledPhases Ver.: always - * @param scheduledPhases Ver.: always - */ -bool emberAfPowerProfileClusterEnergyPhasesScheduleResponseCallback(uint8_t powerProfileId, uint8_t numOfScheduledPhases, - uint8_t * scheduledPhases); -/** @brief Power Profile Cluster Energy Phases Schedule State Notification - * - * - * - * @param powerProfileId Ver.: always - * @param numOfScheduledPhases Ver.: always - * @param scheduledPhases Ver.: always - */ -bool emberAfPowerProfileClusterEnergyPhasesScheduleStateNotificationCallback(uint8_t powerProfileId, uint8_t numOfScheduledPhases, - uint8_t * scheduledPhases); -/** @brief Power Profile Cluster Energy Phases Schedule State Request - * - * - * - * @param powerProfileId Ver.: always - */ -bool emberAfPowerProfileClusterEnergyPhasesScheduleStateRequestCallback(uint8_t powerProfileId); -/** @brief Power Profile Cluster Energy Phases Schedule State Response - * - * - * - * @param powerProfileId Ver.: always - * @param numOfScheduledPhases Ver.: always - * @param scheduledPhases Ver.: always - */ -bool emberAfPowerProfileClusterEnergyPhasesScheduleStateResponseCallback(uint8_t powerProfileId, uint8_t numOfScheduledPhases, - uint8_t * scheduledPhases); -/** @brief Power Profile Cluster Get Overall Schedule Price - * - * - * - */ -bool emberAfPowerProfileClusterGetOverallSchedulePriceCallback(void); -/** @brief Power Profile Cluster Get Overall Schedule Price Response - * - * - * - * @param currency Ver.: always - * @param price Ver.: always - * @param priceTrailingDigit Ver.: always - */ -bool emberAfPowerProfileClusterGetOverallSchedulePriceResponseCallback(uint16_t currency, uint32_t price, - uint8_t priceTrailingDigit); -/** @brief Power Profile Cluster Get Power Profile Price - * - * - * - * @param powerProfileId Ver.: always - */ -bool emberAfPowerProfileClusterGetPowerProfilePriceCallback(uint8_t powerProfileId); -/** @brief Power Profile Cluster Get Power Profile Price Extended - * - * - * - * @param options Ver.: always - * @param powerProfileId Ver.: always - * @param powerProfileStartTime Ver.: always - */ -bool emberAfPowerProfileClusterGetPowerProfilePriceExtendedCallback(uint8_t options, uint8_t powerProfileId, - uint16_t powerProfileStartTime); -/** @brief Power Profile Cluster Get Power Profile Price Extended Response - * - * - * - * @param powerProfileId Ver.: always - * @param currency Ver.: always - * @param price Ver.: always - * @param priceTrailingDigit Ver.: always - */ -bool emberAfPowerProfileClusterGetPowerProfilePriceExtendedResponseCallback(uint8_t powerProfileId, uint16_t currency, - uint32_t price, uint8_t priceTrailingDigit); -/** @brief Power Profile Cluster Get Power Profile Price Response - * - * - * - * @param powerProfileId Ver.: always - * @param currency Ver.: always - * @param price Ver.: always - * @param priceTrailingDigit Ver.: always - */ -bool emberAfPowerProfileClusterGetPowerProfilePriceResponseCallback(uint8_t powerProfileId, uint16_t currency, uint32_t price, - uint8_t priceTrailingDigit); -/** @brief Power Profile Cluster Power Profile Notification - * - * - * - * @param totalProfileNum Ver.: always - * @param powerProfileId Ver.: always - * @param numOfTransferredPhases Ver.: always - * @param transferredPhases Ver.: always - */ -bool emberAfPowerProfileClusterPowerProfileNotificationCallback(uint8_t totalProfileNum, uint8_t powerProfileId, - uint8_t numOfTransferredPhases, uint8_t * transferredPhases); -/** @brief Power Profile Cluster Power Profile Request - * - * - * - * @param powerProfileId Ver.: always - */ -bool emberAfPowerProfileClusterPowerProfileRequestCallback(uint8_t powerProfileId); -/** @brief Power Profile Cluster Power Profile Response - * - * - * - * @param totalProfileNum Ver.: always - * @param powerProfileId Ver.: always - * @param numOfTransferredPhases Ver.: always - * @param transferredPhases Ver.: always - */ -bool emberAfPowerProfileClusterPowerProfileResponseCallback(uint8_t totalProfileNum, uint8_t powerProfileId, - uint8_t numOfTransferredPhases, uint8_t * transferredPhases); -/** @brief Power Profile Cluster Power Profile Schedule Constraints Notification - * - * - * - * @param powerProfileId Ver.: always - * @param startAfter Ver.: always - * @param stopBefore Ver.: always - */ -bool emberAfPowerProfileClusterPowerProfileScheduleConstraintsNotificationCallback(uint8_t powerProfileId, uint16_t startAfter, - uint16_t stopBefore); -/** @brief Power Profile Cluster Power Profile Schedule Constraints Request - * - * - * - * @param powerProfileId Ver.: always - */ -bool emberAfPowerProfileClusterPowerProfileScheduleConstraintsRequestCallback(uint8_t powerProfileId); -/** @brief Power Profile Cluster Power Profile Schedule Constraints Response - * - * - * - * @param powerProfileId Ver.: always - * @param startAfter Ver.: always - * @param stopBefore Ver.: always - */ -bool emberAfPowerProfileClusterPowerProfileScheduleConstraintsResponseCallback(uint8_t powerProfileId, uint16_t startAfter, - uint16_t stopBefore); -/** @brief Power Profile Cluster Power Profile State Request - * - * - * - */ -bool emberAfPowerProfileClusterPowerProfileStateRequestCallback(void); -/** @brief Power Profile Cluster Power Profile State Response - * - * - * - * @param powerProfileCount Ver.: always - * @param powerProfileRecords Ver.: always - */ -bool emberAfPowerProfileClusterPowerProfileStateResponseCallback(uint8_t powerProfileCount, uint8_t * powerProfileRecords); -/** @brief Power Profile Cluster Power Profiles State Notification - * - * - * - * @param powerProfileCount Ver.: always - * @param powerProfileRecords Ver.: always - */ -bool emberAfPowerProfileClusterPowerProfilesStateNotificationCallback(uint8_t powerProfileCount, uint8_t * powerProfileRecords); -/** @brief Power Profile Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfPowerProfileClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Power Profile Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfPowerProfileClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Power Profile Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfPowerProfileClusterServerInitCallback(uint8_t endpoint); -/** @brief Power Profile Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfPowerProfileClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Power Profile Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfPowerProfileClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Power Profile Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfPowerProfileClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Power Profile Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfPowerProfileClusterServerTickCallback(uint8_t endpoint); - -/** @} END Power Profile Cluster Callbacks */ - -/** @name Appliance Control Cluster Callbacks */ -// @{ - -/** @brief Appliance Control Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfApplianceControlClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Appliance Control Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfApplianceControlClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Appliance Control Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfApplianceControlClusterClientInitCallback(uint8_t endpoint); -/** @brief Appliance Control Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfApplianceControlClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Appliance Control Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfApplianceControlClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Appliance Control Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfApplianceControlClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Appliance Control Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfApplianceControlClusterClientTickCallback(uint8_t endpoint); -/** @brief Appliance Control Cluster Execution Of A Command - * - * - * - * @param commandId Ver.: always - */ -bool emberAfApplianceControlClusterExecutionOfACommandCallback(uint8_t commandId); -/** @brief Appliance Control Cluster Overload Pause - * - * - * - */ -bool emberAfApplianceControlClusterOverloadPauseCallback(void); -/** @brief Appliance Control Cluster Overload Pause Resume - * - * - * - */ -bool emberAfApplianceControlClusterOverloadPauseResumeCallback(void); -/** @brief Appliance Control Cluster Overload Warning - * - * - * - * @param warningEvent Ver.: always - */ -bool emberAfApplianceControlClusterOverloadWarningCallback(uint8_t warningEvent); -/** @brief Appliance Control Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfApplianceControlClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Appliance Control Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfApplianceControlClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Appliance Control Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfApplianceControlClusterServerInitCallback(uint8_t endpoint); -/** @brief Appliance Control Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfApplianceControlClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Appliance Control Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfApplianceControlClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Appliance Control Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfApplianceControlClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Appliance Control Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfApplianceControlClusterServerTickCallback(uint8_t endpoint); -/** @brief Appliance Control Cluster Signal State - * - * - * - */ -bool emberAfApplianceControlClusterSignalStateCallback(void); -/** @brief Appliance Control Cluster Signal State Notification - * - * - * - * @param applianceStatus Ver.: always - * @param remoteEnableFlagsAndDeviceStatus2 Ver.: always - * @param applianceStatus2 Ver.: always - */ -bool emberAfApplianceControlClusterSignalStateNotificationCallback(uint8_t applianceStatus, - uint8_t remoteEnableFlagsAndDeviceStatus2, - uint32_t applianceStatus2); -/** @brief Appliance Control Cluster Signal State Response - * - * - * - * @param applianceStatus Ver.: always - * @param remoteEnableFlagsAndDeviceStatus2 Ver.: always - * @param applianceStatus2 Ver.: always - */ -bool emberAfApplianceControlClusterSignalStateResponseCallback(uint8_t applianceStatus, uint8_t remoteEnableFlagsAndDeviceStatus2, - uint32_t applianceStatus2); -/** @brief Appliance Control Cluster Write Functions - * - * - * - * @param functionId Ver.: always - * @param functionDataType Ver.: always - * @param functionData Ver.: always - */ -bool emberAfApplianceControlClusterWriteFunctionsCallback(uint16_t functionId, uint8_t functionDataType, uint8_t * functionData); - -/** @} END Appliance Control Cluster Callbacks */ - -/** @name Poll Control Cluster Callbacks */ -// @{ - -/** @brief Poll Control Cluster Check In - * - * - * - */ -bool emberAfPollControlClusterCheckInCallback(void); -/** @brief Poll Control Cluster Check In Response - * - * - * - * @param startFastPolling Ver.: always - * @param fastPollTimeout Ver.: always - */ -bool emberAfPollControlClusterCheckInResponseCallback(uint8_t startFastPolling, uint16_t fastPollTimeout); -/** @brief Poll Control Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfPollControlClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Poll Control Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfPollControlClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Poll Control Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfPollControlClusterClientInitCallback(uint8_t endpoint); -/** @brief Poll Control Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfPollControlClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Poll Control Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfPollControlClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Poll Control Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfPollControlClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Poll Control Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfPollControlClusterClientTickCallback(uint8_t endpoint); -/** @brief Poll Control Cluster Fast Poll Stop - * - * - * - */ -bool emberAfPollControlClusterFastPollStopCallback(void); -/** @brief Poll Control Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfPollControlClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Poll Control Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfPollControlClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Poll Control Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfPollControlClusterServerInitCallback(uint8_t endpoint); -/** @brief Poll Control Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfPollControlClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Poll Control Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfPollControlClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Poll Control Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfPollControlClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Poll Control Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfPollControlClusterServerTickCallback(uint8_t endpoint); -/** @brief Poll Control Cluster Set Long Poll Interval - * - * - * - * @param newLongPollInterval Ver.: always - */ -bool emberAfPollControlClusterSetLongPollIntervalCallback(uint32_t newLongPollInterval); -/** @brief Poll Control Cluster Set Short Poll Interval - * - * - * - * @param newShortPollInterval Ver.: always - */ -bool emberAfPollControlClusterSetShortPollIntervalCallback(uint16_t newShortPollInterval); - -/** @} END Poll Control Cluster Callbacks */ - -/** @name Green Power Cluster Callbacks */ -// @{ - -/** @brief Green Power Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfGreenPowerClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Green Power Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfGreenPowerClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Green Power Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfGreenPowerClusterClientInitCallback(uint8_t endpoint); -/** @brief Green Power Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfGreenPowerClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Green Power Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfGreenPowerClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Green Power Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfGreenPowerClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Green Power Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfGreenPowerClusterClientTickCallback(uint8_t endpoint); -/** @brief Green Power Cluster Gp Commissioning Notification - * - * - * - * @param options Ver.: since gp-1.0-09-5499-24 - * @param gpdSrcId Ver.: since gp-1.0-09-5499-24 - * @param gpdIeee Ver.: since gp-1.0-09-5499-24 - * @param endpoint Ver.: since gp-1.0-09-5499-24 - * @param gpdSecurityFrameCounter Ver.: since gp-1.0-09-5499-24 - * @param gpdCommandId Ver.: since gp-1.0-09-5499-24 - * @param gpdCommandPayload Ver.: since gp-1.0-09-5499-24 - * @param gppShortAddress Ver.: since gp-1.0-09-5499-24 - * @param gppLink Ver.: since gp-1.0-09-5499-24 - * @param mic Ver.: since gp-1.0-09-5499-24 - */ -bool emberAfGreenPowerClusterGpCommissioningNotificationCallback(uint16_t options, uint32_t gpdSrcId, uint8_t * gpdIeee, - uint8_t endpoint, uint32_t gpdSecurityFrameCounter, - uint8_t gpdCommandId, uint8_t * gpdCommandPayload, - uint16_t gppShortAddress, uint8_t gppLink, uint32_t mic); -/** @brief Green Power Cluster Gp Notification - * - * - * - * @param options Ver.: since gp-1.0-09-5499-24 - * @param gpdSrcId Ver.: since gp-1.0-09-5499-24 - * @param gpdIeee Ver.: since gp-1.0-09-5499-24 - * @param gpdEndpoint Ver.: since gp-1.0-09-5499-24 - * @param gpdSecurityFrameCounter Ver.: since gp-1.0-09-5499-24 - * @param gpdCommandId Ver.: since gp-1.0-09-5499-24 - * @param gpdCommandPayload Ver.: since gp-1.0-09-5499-24 - * @param gppShortAddress Ver.: since gp-1.0-09-5499-24 - * @param gppDistance Ver.: since gp-1.0-09-5499-24 - */ -bool emberAfGreenPowerClusterGpNotificationCallback(uint16_t options, uint32_t gpdSrcId, uint8_t * gpdIeee, uint8_t gpdEndpoint, - uint32_t gpdSecurityFrameCounter, uint8_t gpdCommandId, - uint8_t * gpdCommandPayload, uint16_t gppShortAddress, uint8_t gppDistance); -/** @brief Green Power Cluster Gp Notification Response - * - * - * - * @param options Ver.: since gp-1.0-09-5499-24 - * @param gpdSrcId Ver.: since gp-1.0-09-5499-24 - * @param gpdIeee Ver.: since gp-1.0-09-5499-24 - * @param endpoint Ver.: since gp-1.0-09-5499-24 - * @param gpdSecurityFrameCounter Ver.: since gp-1.0-09-5499-24 - */ -bool emberAfGreenPowerClusterGpNotificationResponseCallback(uint8_t options, uint32_t gpdSrcId, uint8_t * gpdIeee, uint8_t endpoint, - uint32_t gpdSecurityFrameCounter); -/** @brief Green Power Cluster Gp Pairing - * - * - * - * @param options Ver.: since gp-1.0-09-5499-24 - * @param gpdSrcId Ver.: since gp-1.0-09-5499-24 - * @param gpdIeee Ver.: since gp-1.0-09-5499-24 - * @param endpoint Ver.: since gp-1.0-09-5499-24 - * @param sinkIeeeAddress Ver.: since gp-1.0-09-5499-24 - * @param sinkNwkAddress Ver.: since gp-1.0-09-5499-24 - * @param sinkGroupId Ver.: since gp-1.0-09-5499-24 - * @param deviceId Ver.: since gp-1.0-09-5499-24 - * @param gpdSecurityFrameCounter Ver.: since gp-1.0-09-5499-24 - * @param gpdKey Ver.: since gp-1.0-09-5499-24 - * @param assignedAlias Ver.: since gp-1.0-09-5499-24 - * @param groupcastRadius Ver.: since gp-1.0-09-5499-24 - */ -bool emberAfGreenPowerClusterGpPairingCallback(uint32_t options, uint32_t gpdSrcId, uint8_t * gpdIeee, uint8_t endpoint, - uint8_t * sinkIeeeAddress, uint16_t sinkNwkAddress, uint16_t sinkGroupId, - uint8_t deviceId, uint32_t gpdSecurityFrameCounter, uint8_t * gpdKey, - uint16_t assignedAlias, uint8_t groupcastRadius); -/** @brief Green Power Cluster Gp Pairing Configuration - * - * - * - * @param actions Ver.: since gp-1.0-09-5499-24 - * @param options Ver.: since gp-1.0-09-5499-24 - * @param gpdSrcId Ver.: since gp-1.0-09-5499-24 - * @param gpdIeee Ver.: since gp-1.0-09-5499-24 - * @param endpoint Ver.: since gp-1.0-09-5499-24 - * @param deviceId Ver.: since gp-1.0-09-5499-24 - * @param groupListCount Ver.: since gp-1.0-09-5499-24 - * @param groupList Ver.: since gp-1.0-09-5499-24 - * @param gpdAssignedAlias Ver.: since gp-1.0-09-5499-24 - * @param groupcastRadius Ver.: since gp-1.0-15-2014-05-CCB2180 - * @param securityOptions Ver.: since gp-1.0-09-5499-24 - * @param gpdSecurityFrameCounter Ver.: since gp-1.0-09-5499-24 - * @param gpdSecurityKey Ver.: since gp-1.0-09-5499-24 - * @param numberOfPairedEndpoints Ver.: since gp-1.0-09-5499-24 - * @param pairedEndpoints Ver.: since gp-1.0-09-5499-24 - * @param applicationInformation Ver.: always - * @param manufacturerId Ver.: always - * @param modeId Ver.: always - * @param numberOfGpdCommands Ver.: always - * @param gpdCommandIdList Ver.: always - * @param clusterIdListCount Ver.: always - * @param clusterListServer Ver.: always - * @param clusterListClient Ver.: always - * @param switchInformationLength Ver.: always - * @param switchConfiguration Ver.: always - * @param currentContactStatus Ver.: always - * @param totalNumberOfReports Ver.: always - * @param numberOfReports Ver.: always - * @param reportDescriptor Ver.: always - */ -bool emberAfGreenPowerClusterGpPairingConfigurationCallback( - uint8_t actions, uint16_t options, uint32_t gpdSrcId, uint8_t * gpdIeee, uint8_t endpoint, uint8_t deviceId, - uint8_t groupListCount, uint8_t * groupList, uint16_t gpdAssignedAlias, uint8_t groupcastRadius, uint8_t securityOptions, - uint32_t gpdSecurityFrameCounter, uint8_t * gpdSecurityKey, uint8_t numberOfPairedEndpoints, uint8_t * pairedEndpoints, - uint8_t applicationInformation, uint16_t manufacturerId, uint16_t modeId, uint8_t numberOfGpdCommands, - uint8_t * gpdCommandIdList, uint8_t clusterIdListCount, uint8_t * clusterListServer, uint8_t * clusterListClient, - uint8_t switchInformationLength, uint8_t switchConfiguration, uint8_t currentContactStatus, uint8_t totalNumberOfReports, - uint8_t numberOfReports, uint8_t * reportDescriptor); -/** @brief Green Power Cluster Gp Pairing Search - * - * - * - * @param options Ver.: since gp-1.0-09-5499-24 - * @param gpdSrcId Ver.: since gp-1.0-09-5499-24 - * @param gpdIeee Ver.: since gp-1.0-09-5499-24 - * @param endpoint Ver.: always - */ -bool emberAfGreenPowerClusterGpPairingSearchCallback(uint16_t options, uint32_t gpdSrcId, uint8_t * gpdIeee, uint8_t endpoint); -/** @brief Green Power Cluster Gp Proxy Commissioning Mode - * - * - * - * @param options Ver.: since gp-1.0-09-5499-24 - * @param commissioningWindow Ver.: since gp-1.0-15-02014-011 - * @param channel Ver.: since gp-1.0-09-5499-24 - */ -bool emberAfGreenPowerClusterGpProxyCommissioningModeCallback(uint8_t options, uint16_t commissioningWindow, uint8_t channel); -/** @brief Green Power Cluster Gp Proxy Table Request - * - * - * - * @param options Ver.: always - * @param gpdSrcId Ver.: always - * @param gpdIeee Ver.: always - * @param endpoint Ver.: always - * @param index Ver.: always - */ -bool emberAfGreenPowerClusterGpProxyTableRequestCallback(uint8_t options, uint32_t gpdSrcId, uint8_t * gpdIeee, uint8_t endpoint, - uint8_t index); -/** @brief Green Power Cluster Gp Proxy Table Response - * - * - * - * @param status Ver.: always - * @param totalNumberOfNonEmptyProxyTableEntries Ver.: always - * @param startIndex Ver.: always - * @param entriesCount Ver.: always - * @param proxyTableEntries Ver.: always - */ -bool emberAfGreenPowerClusterGpProxyTableResponseCallback(uint8_t status, uint8_t totalNumberOfNonEmptyProxyTableEntries, - uint8_t startIndex, uint8_t entriesCount, uint8_t * proxyTableEntries); -/** @brief Green Power Cluster Gp Response - * - * - * - * @param options Ver.: since gp-1.0-09-5499-24 - * @param tempMasterShortAddress Ver.: since gp-1.0-09-5499-24 - * @param tempMasterTxChannel Ver.: since gp-1.0-09-5499-24 - * @param gpdSrcId Ver.: since gp-1.0-09-5499-24 - * @param gpdIeee Ver.: since gp-1.0-09-5499-24 - * @param endpoint Ver.: always - * @param gpdCommandId Ver.: since gp-1.0-09-5499-24 - * @param gpdCommandPayload Ver.: always - */ -bool emberAfGreenPowerClusterGpResponseCallback(uint8_t options, uint16_t tempMasterShortAddress, uint8_t tempMasterTxChannel, - uint32_t gpdSrcId, uint8_t * gpdIeee, uint8_t endpoint, uint8_t gpdCommandId, - uint8_t * gpdCommandPayload); -/** @brief Green Power Cluster Gp Sink Commissioning Mode - * - * - * - * @param options Ver.: always - * @param gpmAddrForSecurity Ver.: always - * @param gpmAddrForPairing Ver.: always - * @param sinkEndpoint Ver.: always - */ -bool emberAfGreenPowerClusterGpSinkCommissioningModeCallback(uint8_t options, uint16_t gpmAddrForSecurity, - uint16_t gpmAddrForPairing, uint8_t sinkEndpoint); -/** @brief Green Power Cluster Gp Sink Table Request - * - * - * - * @param options Ver.: always - * @param gpdSrcId Ver.: always - * @param gpdIeee Ver.: always - * @param endpoint Ver.: always - * @param index Ver.: always - */ -bool emberAfGreenPowerClusterGpSinkTableRequestCallback(uint8_t options, uint32_t gpdSrcId, uint8_t * gpdIeee, uint8_t endpoint, - uint8_t index); -/** @brief Green Power Cluster Gp Sink Table Response - * - * - * - * @param status Ver.: always - * @param totalNumberofNonEmptySinkTableEntries Ver.: always - * @param startIndex Ver.: always - * @param sinkTableEntriesCount Ver.: always - * @param sinkTableEntries Ver.: always - */ -bool emberAfGreenPowerClusterGpSinkTableResponseCallback(uint8_t status, uint8_t totalNumberofNonEmptySinkTableEntries, - uint8_t startIndex, uint8_t sinkTableEntriesCount, - uint8_t * sinkTableEntries); -/** @brief Green Power Cluster Gp Translation Table Request - * - * - * - * @param startIndex Ver.: since gp-1.0-09-5499-24 - */ -bool emberAfGreenPowerClusterGpTranslationTableRequestCallback(uint8_t startIndex); -/** @brief Green Power Cluster Gp Translation Table Response - * - * - * - * @param status Ver.: since gp-1.0-09-5499-24 - * @param options Ver.: since gp-1.0-09-5499-24 - * @param totalNumberOfEntries Ver.: since gp-1.0-09-5499-24 - * @param startIndex Ver.: since gp-1.0-09-5499-24 - * @param entriesCount Ver.: since gp-1.0-09-5499-24 - * @param translationTableList Ver.: since gp-1.0-09-5499-24 - */ -bool emberAfGreenPowerClusterGpTranslationTableResponseCallback(uint8_t status, uint8_t options, uint8_t totalNumberOfEntries, - uint8_t startIndex, uint8_t entriesCount, - uint8_t * translationTableList); -/** @brief Green Power Cluster Gp Translation Table Update - * - * - * - * @param options Ver.: since gp-1.0-09-5499-24 - * @param gpdSrcId Ver.: since gp-1.0-09-5499-24 - * @param gpdIeee Ver.: since gp-1.0-09-5499-24 - * @param endpoint Ver.: since gp-1.0-09-5499-24 - * @param translations Ver.: since gp-1.0-09-5499-24 - */ -bool emberAfGreenPowerClusterGpTranslationTableUpdateCallback(uint16_t options, uint32_t gpdSrcId, uint8_t * gpdIeee, - uint8_t endpoint, uint8_t * translations); -/** @brief Green Power Cluster Gp Tunneling Stop - * - * - * - * @param options Ver.: since gp-1.0-09-5499-24 - * @param gpdSrcId Ver.: since gp-1.0-09-5499-24 - * @param gpdIeee Ver.: since gp-1.0-09-5499-24 - * @param endpoint Ver.: since gp-1.0-09-5499-24 - * @param gpdSecurityFrameCounter Ver.: since gp-1.0-09-5499-24 - * @param gppShortAddress Ver.: since gp-1.0-09-5499-24 - * @param gppDistance Ver.: since gp-1.0-09-5499-24 - */ -bool emberAfGreenPowerClusterGpTunnelingStopCallback(uint8_t options, uint32_t gpdSrcId, uint8_t * gpdIeee, uint8_t endpoint, - uint32_t gpdSecurityFrameCounter, uint16_t gppShortAddress, - int8_t gppDistance); -/** @brief Green Power Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfGreenPowerClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Green Power Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfGreenPowerClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Green Power Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfGreenPowerClusterServerInitCallback(uint8_t endpoint); -/** @brief Green Power Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfGreenPowerClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Green Power Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfGreenPowerClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Green Power Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfGreenPowerClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Green Power Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfGreenPowerClusterServerTickCallback(uint8_t endpoint); - -/** @} END Green Power Cluster Callbacks */ - -/** @name Keep-Alive Cluster Callbacks */ -// @{ - -/** @brief Keep-Alive Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfKeepaliveClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Keep-Alive Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfKeepaliveClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Keep-Alive Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfKeepaliveClusterClientInitCallback(uint8_t endpoint); -/** @brief Keep-Alive Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfKeepaliveClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Keep-Alive Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfKeepaliveClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Keep-Alive Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfKeepaliveClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Keep-Alive Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfKeepaliveClusterClientTickCallback(uint8_t endpoint); -/** @brief Keep-Alive Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfKeepaliveClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Keep-Alive Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfKeepaliveClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Keep-Alive Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfKeepaliveClusterServerInitCallback(uint8_t endpoint); -/** @brief Keep-Alive Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfKeepaliveClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Keep-Alive Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfKeepaliveClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Keep-Alive Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfKeepaliveClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Keep-Alive Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfKeepaliveClusterServerTickCallback(uint8_t endpoint); - -/** @} END Keep-Alive Cluster Callbacks */ - -/** @name Shade Configuration Cluster Callbacks */ -// @{ - -/** @brief Shade Configuration Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfShadeConfigClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Shade Configuration Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfShadeConfigClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Shade Configuration Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfShadeConfigClusterClientInitCallback(uint8_t endpoint); -/** @brief Shade Configuration Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfShadeConfigClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Shade Configuration Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfShadeConfigClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Shade Configuration Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfShadeConfigClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Shade Configuration Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfShadeConfigClusterClientTickCallback(uint8_t endpoint); -/** @brief Shade Configuration Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfShadeConfigClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Shade Configuration Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfShadeConfigClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Shade Configuration Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfShadeConfigClusterServerInitCallback(uint8_t endpoint); -/** @brief Shade Configuration Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfShadeConfigClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Shade Configuration Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfShadeConfigClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Shade Configuration Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfShadeConfigClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Shade Configuration Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfShadeConfigClusterServerTickCallback(uint8_t endpoint); - -/** @} END Shade Configuration Cluster Callbacks */ - -/** @name Door Lock Cluster Callbacks */ -// @{ - -/** @brief Door Lock Cluster Clear All Pins - * - * - * - */ -bool emberAfDoorLockClusterClearAllPinsCallback(void); -/** @brief Door Lock Cluster Clear All Pins Response - * - * - * - * @param status Ver.: always - */ -bool emberAfDoorLockClusterClearAllPinsResponseCallback(uint8_t status); -/** @brief Door Lock Cluster Clear All Rfids - * - * - * - */ -bool emberAfDoorLockClusterClearAllRfidsCallback(void); -/** @brief Door Lock Cluster Clear All Rfids Response - * - * - * - * @param status Ver.: always - */ -bool emberAfDoorLockClusterClearAllRfidsResponseCallback(uint8_t status); -/** @brief Door Lock Cluster Clear Holiday Schedule - * - * - * - * @param scheduleId Ver.: always - */ -bool emberAfDoorLockClusterClearHolidayScheduleCallback(uint8_t scheduleId); -/** @brief Door Lock Cluster Clear Holiday Schedule Response - * - * - * - * @param status Ver.: always - */ -bool emberAfDoorLockClusterClearHolidayScheduleResponseCallback(uint8_t status); -/** @brief Door Lock Cluster Clear Pin - * - * - * - * @param userId Ver.: always - */ -bool emberAfDoorLockClusterClearPinCallback(uint16_t userId); -/** @brief Door Lock Cluster Clear Pin Response - * - * - * - * @param status Ver.: always - */ -bool emberAfDoorLockClusterClearPinResponseCallback(uint8_t status); -/** @brief Door Lock Cluster Clear Rfid - * - * - * - * @param userId Ver.: always - */ -bool emberAfDoorLockClusterClearRfidCallback(uint16_t userId); -/** @brief Door Lock Cluster Clear Rfid Response - * - * - * - * @param status Ver.: always - */ -bool emberAfDoorLockClusterClearRfidResponseCallback(uint8_t status); -/** @brief Door Lock Cluster Clear Weekday Schedule - * - * - * - * @param scheduleId Ver.: always - * @param userId Ver.: always - */ -bool emberAfDoorLockClusterClearWeekdayScheduleCallback(uint8_t scheduleId, uint16_t userId); -/** @brief Door Lock Cluster Clear Weekday Schedule Response - * - * - * - * @param status Ver.: always - */ -bool emberAfDoorLockClusterClearWeekdayScheduleResponseCallback(uint8_t status); -/** @brief Door Lock Cluster Clear Yearday Schedule - * - * - * - * @param scheduleId Ver.: always - * @param userId Ver.: always - */ -bool emberAfDoorLockClusterClearYeardayScheduleCallback(uint8_t scheduleId, uint16_t userId); -/** @brief Door Lock Cluster Clear Yearday Schedule Response - * - * - * - * @param status Ver.: always - */ -bool emberAfDoorLockClusterClearYeardayScheduleResponseCallback(uint8_t status); -/** @brief Door Lock Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfDoorLockClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Door Lock Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfDoorLockClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Door Lock Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfDoorLockClusterClientInitCallback(uint8_t endpoint); -/** @brief Door Lock Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfDoorLockClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Door Lock Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfDoorLockClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Door Lock Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfDoorLockClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Door Lock Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfDoorLockClusterClientTickCallback(uint8_t endpoint); -/** @brief Door Lock Cluster Get Holiday Schedule - * - * - * - * @param scheduleId Ver.: always - */ -bool emberAfDoorLockClusterGetHolidayScheduleCallback(uint8_t scheduleId); -/** @brief Door Lock Cluster Get Holiday Schedule Response - * - * - * - * @param scheduleId Ver.: always - * @param status Ver.: always - * @param localStartTime Ver.: since ha-1.2-05-3520-29 - * @param localEndTime Ver.: since ha-1.2-05-3520-29 - * @param operatingModeDuringHoliday Ver.: since ha-1.2-05-3520-29 - */ -bool emberAfDoorLockClusterGetHolidayScheduleResponseCallback(uint8_t scheduleId, uint8_t status, uint32_t localStartTime, - uint32_t localEndTime, uint8_t operatingModeDuringHoliday); -/** @brief Door Lock Cluster Get Log Record - * - * - * - * @param logIndex Ver.: always - */ -bool emberAfDoorLockClusterGetLogRecordCallback(uint16_t logIndex); -/** @brief Door Lock Cluster Get Log Record Response - * - * - * - * @param logEntryId Ver.: always - * @param timestamp Ver.: always - * @param eventType Ver.: always - * @param source Ver.: always - * @param eventIdOrAlarmCode Ver.: always - * @param userId Ver.: always - * @param pin Ver.: always - */ -bool emberAfDoorLockClusterGetLogRecordResponseCallback(uint16_t logEntryId, uint32_t timestamp, uint8_t eventType, uint8_t source, - uint8_t eventIdOrAlarmCode, uint16_t userId, uint8_t * pin); -/** @brief Door Lock Cluster Get Pin - * - * - * - * @param userId Ver.: always - */ -bool emberAfDoorLockClusterGetPinCallback(uint16_t userId); -/** @brief Door Lock Cluster Get Pin Response - * - * - * - * @param userId Ver.: always - * @param userStatus Ver.: always - * @param userType Ver.: always - * @param pin Ver.: always - */ -bool emberAfDoorLockClusterGetPinResponseCallback(uint16_t userId, uint8_t userStatus, uint8_t userType, uint8_t * pin); -/** @brief Door Lock Cluster Get Rfid - * - * - * - * @param userId Ver.: always - */ -bool emberAfDoorLockClusterGetRfidCallback(uint16_t userId); -/** @brief Door Lock Cluster Get Rfid Response - * - * - * - * @param userId Ver.: always - * @param userStatus Ver.: always - * @param userType Ver.: always - * @param rfid Ver.: always - */ -bool emberAfDoorLockClusterGetRfidResponseCallback(uint16_t userId, uint8_t userStatus, uint8_t userType, uint8_t * rfid); -/** @brief Door Lock Cluster Get User Status - * - * - * - * @param userId Ver.: always - */ -bool emberAfDoorLockClusterGetUserStatusCallback(uint16_t userId); -/** @brief Door Lock Cluster Get User Status Response - * - * - * - * @param userId Ver.: always - * @param status Ver.: always - */ -bool emberAfDoorLockClusterGetUserStatusResponseCallback(uint16_t userId, uint8_t status); -/** @brief Door Lock Cluster Get User Type - * - * - * - * @param userId Ver.: always - */ -bool emberAfDoorLockClusterGetUserTypeCallback(uint16_t userId); -/** @brief Door Lock Cluster Get User Type Response - * - * - * - * @param userId Ver.: always - * @param userType Ver.: always - */ -bool emberAfDoorLockClusterGetUserTypeResponseCallback(uint16_t userId, uint8_t userType); -/** @brief Door Lock Cluster Get Weekday Schedule - * - * - * - * @param scheduleId Ver.: always - * @param userId Ver.: always - */ -bool emberAfDoorLockClusterGetWeekdayScheduleCallback(uint8_t scheduleId, uint16_t userId); -/** @brief Door Lock Cluster Get Weekday Schedule Response - * - * - * - * @param scheduleId Ver.: always - * @param userId Ver.: always - * @param status Ver.: always - * @param daysMask Ver.: since ha-1.2-05-3520-29 - * @param startHour Ver.: since ha-1.2-05-3520-29 - * @param startMinute Ver.: since ha-1.2-05-3520-29 - * @param endHour Ver.: since ha-1.2-05-3520-29 - * @param endMinute Ver.: since ha-1.2-05-3520-29 - */ -bool emberAfDoorLockClusterGetWeekdayScheduleResponseCallback(uint8_t scheduleId, uint16_t userId, uint8_t status, uint8_t daysMask, - uint8_t startHour, uint8_t startMinute, uint8_t endHour, - uint8_t endMinute); -/** @brief Door Lock Cluster Get Yearday Schedule - * - * - * - * @param scheduleId Ver.: always - * @param userId Ver.: always - */ -bool emberAfDoorLockClusterGetYeardayScheduleCallback(uint8_t scheduleId, uint16_t userId); -/** @brief Door Lock Cluster Get Yearday Schedule Response - * - * - * - * @param scheduleId Ver.: always - * @param userId Ver.: always - * @param status Ver.: always - * @param localStartTime Ver.: since ha-1.2-05-3520-29 - * @param localEndTime Ver.: since ha-1.2-05-3520-29 - */ -bool emberAfDoorLockClusterGetYeardayScheduleResponseCallback(uint8_t scheduleId, uint16_t userId, uint8_t status, - uint32_t localStartTime, uint32_t localEndTime); -/** @brief Door Lock Cluster Lock Door - * - * - * - * @param PIN Ver.: since ha-1.2-05-3520-29 - */ -bool emberAfDoorLockClusterLockDoorCallback(uint8_t * PIN); -/** @brief Door Lock Cluster Lock Door Response - * - * - * - * @param status Ver.: always - */ -bool emberAfDoorLockClusterLockDoorResponseCallback(uint8_t status); -/** @brief Door Lock Cluster Operation Event Notification - * - * - * - * @param source Ver.: always - * @param eventCode Ver.: always - * @param userId Ver.: always - * @param pin Ver.: always - * @param timeStamp Ver.: always - * @param data Ver.: since ha-1.2-05-3520-29 - */ -bool emberAfDoorLockClusterOperationEventNotificationCallback(uint8_t source, uint8_t eventCode, uint16_t userId, uint8_t * pin, - uint32_t timeStamp, uint8_t * data); -/** @brief Door Lock Cluster Programming Event Notification - * - * - * - * @param source Ver.: always - * @param eventCode Ver.: always - * @param userId Ver.: always - * @param pin Ver.: always - * @param userType Ver.: always - * @param userStatus Ver.: always - * @param timeStamp Ver.: always - * @param data Ver.: since ha-1.2-05-3520-29 - */ -bool emberAfDoorLockClusterProgrammingEventNotificationCallback(uint8_t source, uint8_t eventCode, uint16_t userId, uint8_t * pin, - uint8_t userType, uint8_t userStatus, uint32_t timeStamp, - uint8_t * data); -/** @brief Door Lock Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfDoorLockClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Door Lock Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfDoorLockClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Door Lock Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfDoorLockClusterServerInitCallback(uint8_t endpoint); -/** @brief Door Lock Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfDoorLockClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Door Lock Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfDoorLockClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Door Lock Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfDoorLockClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Door Lock Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfDoorLockClusterServerTickCallback(uint8_t endpoint); -/** @brief Door Lock Cluster Set Holiday Schedule - * - * - * - * @param scheduleId Ver.: always - * @param localStartTime Ver.: always - * @param localEndTime Ver.: always - * @param operatingModeDuringHoliday Ver.: always - */ -bool emberAfDoorLockClusterSetHolidayScheduleCallback(uint8_t scheduleId, uint32_t localStartTime, uint32_t localEndTime, - uint8_t operatingModeDuringHoliday); -/** @brief Door Lock Cluster Set Holiday Schedule Response - * - * - * - * @param status Ver.: always - */ -bool emberAfDoorLockClusterSetHolidayScheduleResponseCallback(uint8_t status); -/** @brief Door Lock Cluster Set Pin - * - * - * - * @param userId Ver.: always - * @param userStatus Ver.: always - * @param userType Ver.: always - * @param pin Ver.: always - */ -bool emberAfDoorLockClusterSetPinCallback(uint16_t userId, uint8_t userStatus, uint8_t userType, uint8_t * pin); -/** @brief Door Lock Cluster Set Pin Response - * - * - * - * @param status Ver.: always - */ -bool emberAfDoorLockClusterSetPinResponseCallback(uint8_t status); -/** @brief Door Lock Cluster Set Rfid - * - * - * - * @param userId Ver.: always - * @param userStatus Ver.: always - * @param userType Ver.: always - * @param id Ver.: always - */ -bool emberAfDoorLockClusterSetRfidCallback(uint16_t userId, uint8_t userStatus, uint8_t userType, uint8_t * id); -/** @brief Door Lock Cluster Set Rfid Response - * - * - * - * @param status Ver.: always - */ -bool emberAfDoorLockClusterSetRfidResponseCallback(uint8_t status); -/** @brief Door Lock Cluster Set User Status - * - * - * - * @param userId Ver.: always - * @param userStatus Ver.: always - */ -bool emberAfDoorLockClusterSetUserStatusCallback(uint16_t userId, uint8_t userStatus); -/** @brief Door Lock Cluster Set User Status Response - * - * - * - * @param status Ver.: always - */ -bool emberAfDoorLockClusterSetUserStatusResponseCallback(uint8_t status); -/** @brief Door Lock Cluster Set User Type - * - * - * - * @param userId Ver.: always - * @param userType Ver.: always - */ -bool emberAfDoorLockClusterSetUserTypeCallback(uint16_t userId, uint8_t userType); -/** @brief Door Lock Cluster Set User Type Response - * - * - * - * @param status Ver.: always - */ -bool emberAfDoorLockClusterSetUserTypeResponseCallback(uint8_t status); -/** @brief Door Lock Cluster Set Weekday Schedule - * - * - * - * @param scheduleId Ver.: always - * @param userId Ver.: always - * @param daysMask Ver.: always - * @param startHour Ver.: always - * @param startMinute Ver.: always - * @param endHour Ver.: always - * @param endMinute Ver.: always - */ -bool emberAfDoorLockClusterSetWeekdayScheduleCallback(uint8_t scheduleId, uint16_t userId, uint8_t daysMask, uint8_t startHour, - uint8_t startMinute, uint8_t endHour, uint8_t endMinute); -/** @brief Door Lock Cluster Set Weekday Schedule Response - * - * - * - * @param status Ver.: always - */ -bool emberAfDoorLockClusterSetWeekdayScheduleResponseCallback(uint8_t status); -/** @brief Door Lock Cluster Set Yearday Schedule - * - * - * - * @param scheduleId Ver.: always - * @param userId Ver.: always - * @param localStartTime Ver.: always - * @param localEndTime Ver.: always - */ -bool emberAfDoorLockClusterSetYeardayScheduleCallback(uint8_t scheduleId, uint16_t userId, uint32_t localStartTime, - uint32_t localEndTime); -/** @brief Door Lock Cluster Set Yearday Schedule Response - * - * - * - * @param status Ver.: always - */ -bool emberAfDoorLockClusterSetYeardayScheduleResponseCallback(uint8_t status); -/** @brief Door Lock Cluster Toggle - * - * - * - * @param pin Ver.: since ha-1.2-05-3520-29 - */ -bool emberAfDoorLockClusterToggleCallback(uint8_t * pin); -/** @brief Door Lock Cluster Toggle Response - * - * - * - * @param status Ver.: always - */ -bool emberAfDoorLockClusterToggleResponseCallback(uint8_t status); -/** @brief Door Lock Cluster Unlock Door - * - * - * - * @param PIN Ver.: since ha-1.2-05-3520-29 - */ -bool emberAfDoorLockClusterUnlockDoorCallback(uint8_t * PIN); -/** @brief Door Lock Cluster Unlock Door Response - * - * - * - * @param status Ver.: always - */ -bool emberAfDoorLockClusterUnlockDoorResponseCallback(uint8_t status); -/** @brief Door Lock Cluster Unlock With Timeout - * - * - * - * @param timeoutInSeconds Ver.: always - * @param pin Ver.: since ha-1.2-05-3520-29 - */ -bool emberAfDoorLockClusterUnlockWithTimeoutCallback(uint16_t timeoutInSeconds, uint8_t * pin); -/** @brief Door Lock Cluster Unlock With Timeout Response - * - * - * - * @param status Ver.: always - */ -bool emberAfDoorLockClusterUnlockWithTimeoutResponseCallback(uint8_t status); - -/** @} END Door Lock Cluster Callbacks */ - -/** @name Window Covering Cluster Callbacks */ -// @{ - -/** @brief Window Covering Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfWindowCoveringClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Window Covering Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfWindowCoveringClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Window Covering Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfWindowCoveringClusterClientInitCallback(uint8_t endpoint); -/** @brief Window Covering Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfWindowCoveringClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Window Covering Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfWindowCoveringClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Window Covering Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfWindowCoveringClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Window Covering Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfWindowCoveringClusterClientTickCallback(uint8_t endpoint); -/** @brief Window Covering Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfWindowCoveringClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Window Covering Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfWindowCoveringClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Window Covering Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfWindowCoveringClusterServerInitCallback(uint8_t endpoint); -/** @brief Window Covering Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfWindowCoveringClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Window Covering Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfWindowCoveringClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Window Covering Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfWindowCoveringClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Window Covering Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfWindowCoveringClusterServerTickCallback(uint8_t endpoint); -/** @brief Window Covering Cluster Window Covering Down Close - * - * - * - */ -bool emberAfWindowCoveringClusterWindowCoveringDownCloseCallback(void); -/** @brief Window Covering Cluster Window Covering Go To Lift Percentage - * - * - * - * @param percentageLiftValue Ver.: always - */ -bool emberAfWindowCoveringClusterWindowCoveringGoToLiftPercentageCallback(uint8_t percentageLiftValue); -/** @brief Window Covering Cluster Window Covering Go To Lift Value - * - * - * - * @param liftValue Ver.: always - */ -bool emberAfWindowCoveringClusterWindowCoveringGoToLiftValueCallback(uint16_t liftValue); -/** @brief Window Covering Cluster Window Covering Go To Tilt Percentage - * - * - * - * @param percentageTiltValue Ver.: always - */ -bool emberAfWindowCoveringClusterWindowCoveringGoToTiltPercentageCallback(uint8_t percentageTiltValue); -/** @brief Window Covering Cluster Window Covering Go To Tilt Value - * - * - * - * @param tiltValue Ver.: always - */ -bool emberAfWindowCoveringClusterWindowCoveringGoToTiltValueCallback(uint16_t tiltValue); -/** @brief Window Covering Cluster Window Covering Stop - * - * - * - */ -bool emberAfWindowCoveringClusterWindowCoveringStopCallback(void); -/** @brief Window Covering Cluster Window Covering Up Open - * - * - * - */ -bool emberAfWindowCoveringClusterWindowCoveringUpOpenCallback(void); - -/** @} END Window Covering Cluster Callbacks */ - -/** @name Barrier Control Cluster Callbacks */ -// @{ - -/** @brief Barrier Control Cluster Barrier Control Go To Percent - * - * - * - * @param percentOpen Ver.: always - */ -bool emberAfBarrierControlClusterBarrierControlGoToPercentCallback(uint8_t percentOpen); -/** @brief Barrier Control Cluster Barrier Control Stop - * - * - * - */ -bool emberAfBarrierControlClusterBarrierControlStopCallback(void); -/** @brief Barrier Control Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfBarrierControlClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Barrier Control Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfBarrierControlClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Barrier Control Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfBarrierControlClusterClientInitCallback(uint8_t endpoint); -/** @brief Barrier Control Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfBarrierControlClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Barrier Control Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfBarrierControlClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Barrier Control Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfBarrierControlClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Barrier Control Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfBarrierControlClusterClientTickCallback(uint8_t endpoint); -/** @brief Barrier Control Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfBarrierControlClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Barrier Control Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfBarrierControlClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Barrier Control Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfBarrierControlClusterServerInitCallback(uint8_t endpoint); -/** @brief Barrier Control Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfBarrierControlClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Barrier Control Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfBarrierControlClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Barrier Control Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfBarrierControlClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Barrier Control Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfBarrierControlClusterServerTickCallback(uint8_t endpoint); - -/** @} END Barrier Control Cluster Callbacks */ - -/** @name Pump Configuration and Control Cluster Callbacks */ -// @{ - -/** @brief Pump Configuration and Control Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfPumpConfigControlClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Pump Configuration and Control Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfPumpConfigControlClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Pump Configuration and Control Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfPumpConfigControlClusterClientInitCallback(uint8_t endpoint); -/** @brief Pump Configuration and Control Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfPumpConfigControlClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Pump Configuration and Control Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfPumpConfigControlClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Pump Configuration and Control Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfPumpConfigControlClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Pump Configuration and Control Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfPumpConfigControlClusterClientTickCallback(uint8_t endpoint); -/** @brief Pump Configuration and Control Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfPumpConfigControlClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Pump Configuration and Control Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfPumpConfigControlClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Pump Configuration and Control Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfPumpConfigControlClusterServerInitCallback(uint8_t endpoint); -/** @brief Pump Configuration and Control Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfPumpConfigControlClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Pump Configuration and Control Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfPumpConfigControlClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Pump Configuration and Control Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfPumpConfigControlClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Pump Configuration and Control Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfPumpConfigControlClusterServerTickCallback(uint8_t endpoint); - -/** @} END Pump Configuration and Control Cluster Callbacks */ - -/** @name Thermostat Cluster Callbacks */ -// @{ - -/** @brief Thermostat Cluster Clear Weekly Schedule - * - * - * - */ -bool emberAfThermostatClusterClearWeeklyScheduleCallback(void); -/** @brief Thermostat Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfThermostatClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Thermostat Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfThermostatClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Thermostat Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfThermostatClusterClientInitCallback(uint8_t endpoint); -/** @brief Thermostat Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfThermostatClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Thermostat Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfThermostatClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Thermostat Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfThermostatClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Thermostat Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfThermostatClusterClientTickCallback(uint8_t endpoint); -/** @brief Thermostat Cluster Current Weekly Schedule - * - * - * - * @param numberOfTransitionsForSequence Ver.: always - * @param dayOfWeekForSequence Ver.: always - * @param modeForSequence Ver.: always - * @param payload Ver.: always - */ -bool emberAfThermostatClusterCurrentWeeklyScheduleCallback(uint8_t numberOfTransitionsForSequence, uint8_t dayOfWeekForSequence, - uint8_t modeForSequence, uint8_t * payload); -/** @brief Thermostat Cluster Get Relay Status Log - * - * - * - */ -bool emberAfThermostatClusterGetRelayStatusLogCallback(void); -/** @brief Thermostat Cluster Get Weekly Schedule - * - * - * - * @param daysToReturn Ver.: always - * @param modeToReturn Ver.: always - */ -bool emberAfThermostatClusterGetWeeklyScheduleCallback(uint8_t daysToReturn, uint8_t modeToReturn); -/** @brief Thermostat Cluster Relay Status Log - * - * - * - * @param timeOfDay Ver.: always - * @param relayStatus Ver.: always - * @param localTemperature Ver.: always - * @param humidityInPercentage Ver.: always - * @param setpoint Ver.: always - * @param unreadEntries Ver.: always - */ -bool emberAfThermostatClusterRelayStatusLogCallback(uint16_t timeOfDay, uint16_t relayStatus, int16_t localTemperature, - uint8_t humidityInPercentage, int16_t setpoint, uint16_t unreadEntries); -/** @brief Thermostat Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfThermostatClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Thermostat Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfThermostatClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Thermostat Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfThermostatClusterServerInitCallback(uint8_t endpoint); -/** @brief Thermostat Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfThermostatClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Thermostat Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfThermostatClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Thermostat Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfThermostatClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Thermostat Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfThermostatClusterServerTickCallback(uint8_t endpoint); -/** @brief Thermostat Cluster Set Weekly Schedule - * - * - * - * @param numberOfTransitionsForSequence Ver.: always - * @param dayOfWeekForSequence Ver.: always - * @param modeForSequence Ver.: always - * @param payload Ver.: always - */ -bool emberAfThermostatClusterSetWeeklyScheduleCallback(uint8_t numberOfTransitionsForSequence, uint8_t dayOfWeekForSequence, - uint8_t modeForSequence, uint8_t * payload); -/** @brief Thermostat Cluster Setpoint Raise Lower - * - * - * - * @param mode Ver.: always - * @param amount Ver.: always - */ -bool emberAfThermostatClusterSetpointRaiseLowerCallback(uint8_t mode, int8_t amount); - -/** @} END Thermostat Cluster Callbacks */ - -/** @name Fan Control Cluster Callbacks */ -// @{ - -/** @brief Fan Control Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfFanControlClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Fan Control Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfFanControlClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Fan Control Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfFanControlClusterClientInitCallback(uint8_t endpoint); -/** @brief Fan Control Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfFanControlClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Fan Control Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfFanControlClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Fan Control Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfFanControlClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Fan Control Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfFanControlClusterClientTickCallback(uint8_t endpoint); -/** @brief Fan Control Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfFanControlClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Fan Control Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfFanControlClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Fan Control Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfFanControlClusterServerInitCallback(uint8_t endpoint); -/** @brief Fan Control Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfFanControlClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Fan Control Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfFanControlClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Fan Control Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfFanControlClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Fan Control Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfFanControlClusterServerTickCallback(uint8_t endpoint); - -/** @} END Fan Control Cluster Callbacks */ - -/** @name Dehumidification Control Cluster Callbacks */ -// @{ - -/** @brief Dehumidification Control Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfDehumidControlClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Dehumidification Control Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfDehumidControlClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Dehumidification Control Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfDehumidControlClusterClientInitCallback(uint8_t endpoint); -/** @brief Dehumidification Control Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfDehumidControlClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Dehumidification Control Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfDehumidControlClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Dehumidification Control Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfDehumidControlClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Dehumidification Control Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfDehumidControlClusterClientTickCallback(uint8_t endpoint); -/** @brief Dehumidification Control Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfDehumidControlClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Dehumidification Control Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfDehumidControlClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Dehumidification Control Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfDehumidControlClusterServerInitCallback(uint8_t endpoint); -/** @brief Dehumidification Control Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfDehumidControlClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Dehumidification Control Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfDehumidControlClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Dehumidification Control Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfDehumidControlClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Dehumidification Control Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfDehumidControlClusterServerTickCallback(uint8_t endpoint); - -/** @} END Dehumidification Control Cluster Callbacks */ - -/** @name Thermostat User Interface Configuration Cluster Callbacks */ -// @{ - -/** @brief Thermostat User Interface Configuration Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfThermostatUiConfigClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Thermostat User Interface Configuration Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfThermostatUiConfigClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Thermostat User Interface Configuration Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfThermostatUiConfigClusterClientInitCallback(uint8_t endpoint); -/** @brief Thermostat User Interface Configuration Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfThermostatUiConfigClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Thermostat User Interface Configuration Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfThermostatUiConfigClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Thermostat User Interface Configuration Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfThermostatUiConfigClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Thermostat User Interface Configuration Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfThermostatUiConfigClusterClientTickCallback(uint8_t endpoint); -/** @brief Thermostat User Interface Configuration Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfThermostatUiConfigClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Thermostat User Interface Configuration Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfThermostatUiConfigClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Thermostat User Interface Configuration Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfThermostatUiConfigClusterServerInitCallback(uint8_t endpoint); -/** @brief Thermostat User Interface Configuration Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfThermostatUiConfigClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Thermostat User Interface Configuration Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfThermostatUiConfigClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Thermostat User Interface Configuration Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfThermostatUiConfigClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Thermostat User Interface Configuration Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfThermostatUiConfigClusterServerTickCallback(uint8_t endpoint); - -/** @} END Thermostat User Interface Configuration Cluster Callbacks */ - -/** @name Color Control Cluster Callbacks */ -// @{ - -/** @brief Color Control Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfColorControlClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Color Control Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfColorControlClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Color Control Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfColorControlClusterClientInitCallback(uint8_t endpoint); -/** @brief Color Control Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfColorControlClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Color Control Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfColorControlClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Color Control Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfColorControlClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Color Control Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfColorControlClusterClientTickCallback(uint8_t endpoint); -/** @brief Color Control Cluster Color Loop Set - * - * - * - * @param updateFlags Ver.: always - * @param action Ver.: always - * @param direction Ver.: always - * @param time Ver.: always - * @param startHue Ver.: always - */ -bool emberAfColorControlClusterColorLoopSetCallback(uint8_t updateFlags, uint8_t action, uint8_t direction, uint16_t time, - uint16_t startHue); -/** @brief Color Control Cluster Enhanced Move Hue - * - * - * - * @param moveMode Ver.: always - * @param rate Ver.: always - */ -bool emberAfColorControlClusterEnhancedMoveHueCallback(uint8_t moveMode, uint16_t rate); -/** @brief Color Control Cluster Enhanced Move To Hue And Saturation - * - * - * - * @param enhancedHue Ver.: always - * @param saturation Ver.: always - * @param transitionTime Ver.: always - */ -bool emberAfColorControlClusterEnhancedMoveToHueAndSaturationCallback(uint16_t enhancedHue, uint8_t saturation, - uint16_t transitionTime); -/** @brief Color Control Cluster Enhanced Move To Hue - * - * - * - * @param enhancedHue Ver.: always - * @param direction Ver.: always - * @param transitionTime Ver.: always - */ -bool emberAfColorControlClusterEnhancedMoveToHueCallback(uint16_t enhancedHue, uint8_t direction, uint16_t transitionTime); -/** @brief Color Control Cluster Enhanced Step Hue - * - * - * - * @param stepMode Ver.: always - * @param stepSize Ver.: always - * @param transitionTime Ver.: always - */ -bool emberAfColorControlClusterEnhancedStepHueCallback(uint8_t stepMode, uint16_t stepSize, uint16_t transitionTime); -/** @brief Color Control Cluster Move Color - * - * - * - * @param rateX Ver.: always - * @param rateY Ver.: always - * @param optionsMask Ver.: since zcl6-errata-14-0129-15 - * @param optionsOverride Ver.: since zcl6-errata-14-0129-15 - */ -bool emberAfColorControlClusterMoveColorCallback(int16_t rateX, int16_t rateY, uint8_t optionsMask, uint8_t optionsOverride); -/** @brief Color Control Cluster Move Color Temperature - * - * - * - * @param moveMode Ver.: always - * @param rate Ver.: always - * @param colorTemperatureMinimum Ver.: always - * @param colorTemperatureMaximum Ver.: always - * @param optionsMask Ver.: since zcl6-errata-14-0129-15 - * @param optionsOverride Ver.: since zcl6-errata-14-0129-15 - */ -bool emberAfColorControlClusterMoveColorTemperatureCallback(uint8_t moveMode, uint16_t rate, uint16_t colorTemperatureMinimum, - uint16_t colorTemperatureMaximum, uint8_t optionsMask, - uint8_t optionsOverride); -/** @brief Color Control Cluster Move Hue - * - * - * - * @param moveMode Ver.: always - * @param rate Ver.: always - * @param optionsMask Ver.: since zcl6-errata-14-0129-15 - * @param optionsOverride Ver.: since zcl6-errata-14-0129-15 - */ -bool emberAfColorControlClusterMoveHueCallback(uint8_t moveMode, uint8_t rate, uint8_t optionsMask, uint8_t optionsOverride); -/** @brief Color Control Cluster Move Saturation - * - * - * - * @param moveMode Ver.: always - * @param rate Ver.: always - * @param optionsMask Ver.: since zcl6-errata-14-0129-15 - * @param optionsOverride Ver.: since zcl6-errata-14-0129-15 - */ -bool emberAfColorControlClusterMoveSaturationCallback(uint8_t moveMode, uint8_t rate, uint8_t optionsMask, uint8_t optionsOverride); -/** @brief Color Control Cluster Move To Color - * - * - * - * @param colorX Ver.: always - * @param colorY Ver.: always - * @param transitionTime Ver.: always - * @param optionsMask Ver.: since zcl6-errata-14-0129-15 - * @param optionsOverride Ver.: since zcl6-errata-14-0129-15 - */ -bool emberAfColorControlClusterMoveToColorCallback(uint16_t colorX, uint16_t colorY, uint16_t transitionTime, uint8_t optionsMask, - uint8_t optionsOverride); -/** @brief Color Control Cluster Move To Color Temperature - * - * - * - * @param colorTemperature Ver.: always - * @param transitionTime Ver.: always - * @param optionsMask Ver.: since zcl6-errata-14-0129-15 - * @param optionsOverride Ver.: since zcl6-errata-14-0129-15 - */ -bool emberAfColorControlClusterMoveToColorTemperatureCallback(uint16_t colorTemperature, uint16_t transitionTime, - uint8_t optionsMask, uint8_t optionsOverride); -/** @brief Color Control Cluster Move To Hue And Saturation - * - * - * - * @param hue Ver.: always - * @param saturation Ver.: always - * @param transitionTime Ver.: always - * @param optionsMask Ver.: since zcl6-errata-14-0129-15 - * @param optionsOverride Ver.: since zcl6-errata-14-0129-15 - */ -bool emberAfColorControlClusterMoveToHueAndSaturationCallback(uint8_t hue, uint8_t saturation, uint16_t transitionTime, - uint8_t optionsMask, uint8_t optionsOverride); -/** @brief Color Control Cluster Move To Hue - * - * - * - * @param hue Ver.: always - * @param direction Ver.: always - * @param transitionTime Ver.: always - * @param optionsMask Ver.: since zcl6-errata-14-0129-15 - * @param optionsOverride Ver.: since zcl6-errata-14-0129-15 - */ -bool emberAfColorControlClusterMoveToHueCallback(uint8_t hue, uint8_t direction, uint16_t transitionTime, uint8_t optionsMask, - uint8_t optionsOverride); -/** @brief Color Control Cluster Move To Saturation - * - * - * - * @param saturation Ver.: always - * @param transitionTime Ver.: always - * @param optionsMask Ver.: since zcl6-errata-14-0129-15 - * @param optionsOverride Ver.: since zcl6-errata-14-0129-15 - */ -bool emberAfColorControlClusterMoveToSaturationCallback(uint8_t saturation, uint16_t transitionTime, uint8_t optionsMask, - uint8_t optionsOverride); -/** @brief Color Control Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfColorControlClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Color Control Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfColorControlClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Color Control Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfColorControlClusterServerInitCallback(uint8_t endpoint); -/** @brief Color Control Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfColorControlClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Color Control Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfColorControlClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Color Control Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfColorControlClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Color Control Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfColorControlClusterServerTickCallback(uint8_t endpoint); -/** @brief Color Control Cluster Step Color - * - * - * - * @param stepX Ver.: always - * @param stepY Ver.: always - * @param transitionTime Ver.: always - * @param optionsMask Ver.: since zcl6-errata-14-0129-15 - * @param optionsOverride Ver.: since zcl6-errata-14-0129-15 - */ -bool emberAfColorControlClusterStepColorCallback(int16_t stepX, int16_t stepY, uint16_t transitionTime, uint8_t optionsMask, - uint8_t optionsOverride); -/** @brief Color Control Cluster Step Color Temperature - * - * - * - * @param stepMode Ver.: always - * @param stepSize Ver.: always - * @param transitionTime Ver.: always - * @param colorTemperatureMinimum Ver.: always - * @param colorTemperatureMaximum Ver.: always - * @param optionsMask Ver.: since zcl6-errata-14-0129-15 - * @param optionsOverride Ver.: since zcl6-errata-14-0129-15 - */ -bool emberAfColorControlClusterStepColorTemperatureCallback(uint8_t stepMode, uint16_t stepSize, uint16_t transitionTime, - uint16_t colorTemperatureMinimum, uint16_t colorTemperatureMaximum, - uint8_t optionsMask, uint8_t optionsOverride); -/** @brief Color Control Cluster Step Hue - * - * - * - * @param stepMode Ver.: always - * @param stepSize Ver.: always - * @param transitionTime Ver.: always - * @param optionsMask Ver.: since zcl6-errata-14-0129-15 - * @param optionsOverride Ver.: since zcl6-errata-14-0129-15 - */ -bool emberAfColorControlClusterStepHueCallback(uint8_t stepMode, uint8_t stepSize, uint8_t transitionTime, uint8_t optionsMask, - uint8_t optionsOverride); -/** @brief Color Control Cluster Step Saturation - * - * - * - * @param stepMode Ver.: always - * @param stepSize Ver.: always - * @param transitionTime Ver.: always - * @param optionsMask Ver.: since zcl6-errata-14-0129-15 - * @param optionsOverride Ver.: since zcl6-errata-14-0129-15 - */ -bool emberAfColorControlClusterStepSaturationCallback(uint8_t stepMode, uint8_t stepSize, uint8_t transitionTime, - uint8_t optionsMask, uint8_t optionsOverride); -/** @brief Color Control Cluster Stop Move Step - * - * - * - * @param optionsMask Ver.: since zcl6-errata-14-0129-15 - * @param optionsOverride Ver.: since zcl6-errata-14-0129-15 - */ -bool emberAfColorControlClusterStopMoveStepCallback(uint8_t optionsMask, uint8_t optionsOverride); - -/** @} END Color Control Cluster Callbacks */ - -/** @name Ballast Configuration Cluster Callbacks */ -// @{ - -/** @brief Ballast Configuration Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfBallastConfigurationClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Ballast Configuration Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfBallastConfigurationClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Ballast Configuration Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfBallastConfigurationClusterClientInitCallback(uint8_t endpoint); -/** @brief Ballast Configuration Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfBallastConfigurationClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Ballast Configuration Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfBallastConfigurationClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Ballast Configuration Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfBallastConfigurationClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Ballast Configuration Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfBallastConfigurationClusterClientTickCallback(uint8_t endpoint); -/** @brief Ballast Configuration Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfBallastConfigurationClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Ballast Configuration Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfBallastConfigurationClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Ballast Configuration Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfBallastConfigurationClusterServerInitCallback(uint8_t endpoint); -/** @brief Ballast Configuration Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfBallastConfigurationClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Ballast Configuration Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfBallastConfigurationClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Ballast Configuration Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfBallastConfigurationClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Ballast Configuration Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfBallastConfigurationClusterServerTickCallback(uint8_t endpoint); - -/** @} END Ballast Configuration Cluster Callbacks */ - -/** @name Illuminance Measurement Cluster Callbacks */ -// @{ - -/** @brief Illuminance Measurement Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfIllumMeasurementClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Illuminance Measurement Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfIllumMeasurementClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Illuminance Measurement Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfIllumMeasurementClusterClientInitCallback(uint8_t endpoint); -/** @brief Illuminance Measurement Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfIllumMeasurementClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Illuminance Measurement Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfIllumMeasurementClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Illuminance Measurement Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfIllumMeasurementClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Illuminance Measurement Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfIllumMeasurementClusterClientTickCallback(uint8_t endpoint); -/** @brief Illuminance Measurement Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfIllumMeasurementClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Illuminance Measurement Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfIllumMeasurementClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Illuminance Measurement Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfIllumMeasurementClusterServerInitCallback(uint8_t endpoint); -/** @brief Illuminance Measurement Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfIllumMeasurementClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Illuminance Measurement Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfIllumMeasurementClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Illuminance Measurement Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfIllumMeasurementClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Illuminance Measurement Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfIllumMeasurementClusterServerTickCallback(uint8_t endpoint); - -/** @} END Illuminance Measurement Cluster Callbacks */ - -/** @name Illuminance Level Sensing Cluster Callbacks */ -// @{ - -/** @brief Illuminance Level Sensing Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfIllumLevelSensingClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Illuminance Level Sensing Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfIllumLevelSensingClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Illuminance Level Sensing Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfIllumLevelSensingClusterClientInitCallback(uint8_t endpoint); -/** @brief Illuminance Level Sensing Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfIllumLevelSensingClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Illuminance Level Sensing Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfIllumLevelSensingClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Illuminance Level Sensing Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfIllumLevelSensingClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Illuminance Level Sensing Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfIllumLevelSensingClusterClientTickCallback(uint8_t endpoint); -/** @brief Illuminance Level Sensing Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfIllumLevelSensingClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Illuminance Level Sensing Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfIllumLevelSensingClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Illuminance Level Sensing Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfIllumLevelSensingClusterServerInitCallback(uint8_t endpoint); -/** @brief Illuminance Level Sensing Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfIllumLevelSensingClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Illuminance Level Sensing Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfIllumLevelSensingClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Illuminance Level Sensing Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfIllumLevelSensingClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Illuminance Level Sensing Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfIllumLevelSensingClusterServerTickCallback(uint8_t endpoint); - -/** @} END Illuminance Level Sensing Cluster Callbacks */ - -/** @name Temperature Measurement Cluster Callbacks */ -// @{ - -/** @brief Temperature Measurement Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfTempMeasurementClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Temperature Measurement Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfTempMeasurementClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Temperature Measurement Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfTempMeasurementClusterClientInitCallback(uint8_t endpoint); -/** @brief Temperature Measurement Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfTempMeasurementClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Temperature Measurement Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfTempMeasurementClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Temperature Measurement Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfTempMeasurementClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Temperature Measurement Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfTempMeasurementClusterClientTickCallback(uint8_t endpoint); -/** @brief Temperature Measurement Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfTempMeasurementClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Temperature Measurement Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfTempMeasurementClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Temperature Measurement Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfTempMeasurementClusterServerInitCallback(uint8_t endpoint); -/** @brief Temperature Measurement Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfTempMeasurementClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Temperature Measurement Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfTempMeasurementClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Temperature Measurement Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfTempMeasurementClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Temperature Measurement Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfTempMeasurementClusterServerTickCallback(uint8_t endpoint); - -/** @} END Temperature Measurement Cluster Callbacks */ - -/** @name Pressure Measurement Cluster Callbacks */ -// @{ - -/** @brief Pressure Measurement Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfPressureMeasurementClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Pressure Measurement Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfPressureMeasurementClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Pressure Measurement Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfPressureMeasurementClusterClientInitCallback(uint8_t endpoint); -/** @brief Pressure Measurement Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfPressureMeasurementClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Pressure Measurement Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfPressureMeasurementClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Pressure Measurement Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfPressureMeasurementClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Pressure Measurement Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfPressureMeasurementClusterClientTickCallback(uint8_t endpoint); -/** @brief Pressure Measurement Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfPressureMeasurementClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Pressure Measurement Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfPressureMeasurementClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Pressure Measurement Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfPressureMeasurementClusterServerInitCallback(uint8_t endpoint); -/** @brief Pressure Measurement Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfPressureMeasurementClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Pressure Measurement Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfPressureMeasurementClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Pressure Measurement Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfPressureMeasurementClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Pressure Measurement Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfPressureMeasurementClusterServerTickCallback(uint8_t endpoint); - -/** @} END Pressure Measurement Cluster Callbacks */ - -/** @name Flow Measurement Cluster Callbacks */ -// @{ - -/** @brief Flow Measurement Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfFlowMeasurementClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Flow Measurement Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfFlowMeasurementClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Flow Measurement Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfFlowMeasurementClusterClientInitCallback(uint8_t endpoint); -/** @brief Flow Measurement Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfFlowMeasurementClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Flow Measurement Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfFlowMeasurementClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Flow Measurement Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfFlowMeasurementClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Flow Measurement Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfFlowMeasurementClusterClientTickCallback(uint8_t endpoint); -/** @brief Flow Measurement Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfFlowMeasurementClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Flow Measurement Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfFlowMeasurementClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Flow Measurement Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfFlowMeasurementClusterServerInitCallback(uint8_t endpoint); -/** @brief Flow Measurement Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfFlowMeasurementClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Flow Measurement Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfFlowMeasurementClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Flow Measurement Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfFlowMeasurementClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Flow Measurement Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfFlowMeasurementClusterServerTickCallback(uint8_t endpoint); - -/** @} END Flow Measurement Cluster Callbacks */ - -/** @name Relative Humidity Measurement Cluster Callbacks */ -// @{ - -/** @brief Relative Humidity Measurement Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfRelativeHumidityMeasurementClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Relative Humidity Measurement Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfRelativeHumidityMeasurementClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Relative Humidity Measurement Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfRelativeHumidityMeasurementClusterClientInitCallback(uint8_t endpoint); -/** @brief Relative Humidity Measurement Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfRelativeHumidityMeasurementClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Relative Humidity Measurement Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfRelativeHumidityMeasurementClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, - uint8_t * message, EmberStatus status); -/** @brief Relative Humidity Measurement Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfRelativeHumidityMeasurementClusterClientPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Relative Humidity Measurement Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfRelativeHumidityMeasurementClusterClientTickCallback(uint8_t endpoint); -/** @brief Relative Humidity Measurement Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfRelativeHumidityMeasurementClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Relative Humidity Measurement Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfRelativeHumidityMeasurementClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Relative Humidity Measurement Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfRelativeHumidityMeasurementClusterServerInitCallback(uint8_t endpoint); -/** @brief Relative Humidity Measurement Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfRelativeHumidityMeasurementClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Relative Humidity Measurement Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfRelativeHumidityMeasurementClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, - uint8_t * message, EmberStatus status); -/** @brief Relative Humidity Measurement Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfRelativeHumidityMeasurementClusterServerPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Relative Humidity Measurement Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfRelativeHumidityMeasurementClusterServerTickCallback(uint8_t endpoint); - -/** @} END Relative Humidity Measurement Cluster Callbacks */ - -/** @name Occupancy Sensing Cluster Callbacks */ -// @{ - -/** @brief Occupancy Sensing Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfOccupancySensingClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Occupancy Sensing Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfOccupancySensingClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Occupancy Sensing Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfOccupancySensingClusterClientInitCallback(uint8_t endpoint); -/** @brief Occupancy Sensing Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfOccupancySensingClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Occupancy Sensing Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfOccupancySensingClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Occupancy Sensing Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfOccupancySensingClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Occupancy Sensing Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfOccupancySensingClusterClientTickCallback(uint8_t endpoint); -/** @brief Occupancy Sensing Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfOccupancySensingClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Occupancy Sensing Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfOccupancySensingClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Occupancy Sensing Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfOccupancySensingClusterServerInitCallback(uint8_t endpoint); -/** @brief Occupancy Sensing Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfOccupancySensingClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Occupancy Sensing Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfOccupancySensingClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Occupancy Sensing Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfOccupancySensingClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Occupancy Sensing Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfOccupancySensingClusterServerTickCallback(uint8_t endpoint); - -/** @} END Occupancy Sensing Cluster Callbacks */ - -/** @name Carbon Monoxide Concentration Measurement Cluster Callbacks */ -// @{ - -/** @brief Carbon Monoxide Concentration Measurement Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfCarbonMonoxideConcentrationMeasurementClusterClientAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId); -/** @brief Carbon Monoxide Concentration Measurement Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfCarbonMonoxideConcentrationMeasurementClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Carbon Monoxide Concentration Measurement Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfCarbonMonoxideConcentrationMeasurementClusterClientInitCallback(uint8_t endpoint); -/** @brief Carbon Monoxide Concentration Measurement Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfCarbonMonoxideConcentrationMeasurementClusterClientManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Carbon Monoxide Concentration Measurement Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfCarbonMonoxideConcentrationMeasurementClusterClientMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, - uint8_t * message, EmberStatus status); -/** @brief Carbon Monoxide Concentration Measurement Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfCarbonMonoxideConcentrationMeasurementClusterClientPreAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, EmberAfAttributeType attributeType, uint8_t size, uint8_t * value); -/** @brief Carbon Monoxide Concentration Measurement Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfCarbonMonoxideConcentrationMeasurementClusterClientTickCallback(uint8_t endpoint); -/** @brief Carbon Monoxide Concentration Measurement Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfCarbonMonoxideConcentrationMeasurementClusterServerAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId); -/** @brief Carbon Monoxide Concentration Measurement Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfCarbonMonoxideConcentrationMeasurementClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Carbon Monoxide Concentration Measurement Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfCarbonMonoxideConcentrationMeasurementClusterServerInitCallback(uint8_t endpoint); -/** @brief Carbon Monoxide Concentration Measurement Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfCarbonMonoxideConcentrationMeasurementClusterServerManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Carbon Monoxide Concentration Measurement Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfCarbonMonoxideConcentrationMeasurementClusterServerMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, - uint8_t * message, EmberStatus status); -/** @brief Carbon Monoxide Concentration Measurement Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfCarbonMonoxideConcentrationMeasurementClusterServerPreAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, EmberAfAttributeType attributeType, uint8_t size, uint8_t * value); -/** @brief Carbon Monoxide Concentration Measurement Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfCarbonMonoxideConcentrationMeasurementClusterServerTickCallback(uint8_t endpoint); - -/** @} END Carbon Monoxide Concentration Measurement Cluster Callbacks */ - -/** @name Carbon Dioxide Concentration Measurement Cluster Callbacks */ -// @{ - -/** @brief Carbon Dioxide Concentration Measurement Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfCarbonDioxideConcentrationMeasurementClusterClientAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId); -/** @brief Carbon Dioxide Concentration Measurement Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfCarbonDioxideConcentrationMeasurementClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Carbon Dioxide Concentration Measurement Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfCarbonDioxideConcentrationMeasurementClusterClientInitCallback(uint8_t endpoint); -/** @brief Carbon Dioxide Concentration Measurement Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfCarbonDioxideConcentrationMeasurementClusterClientManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Carbon Dioxide Concentration Measurement Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfCarbonDioxideConcentrationMeasurementClusterClientMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, - uint8_t * message, EmberStatus status); -/** @brief Carbon Dioxide Concentration Measurement Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfCarbonDioxideConcentrationMeasurementClusterClientPreAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, EmberAfAttributeType attributeType, uint8_t size, uint8_t * value); -/** @brief Carbon Dioxide Concentration Measurement Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfCarbonDioxideConcentrationMeasurementClusterClientTickCallback(uint8_t endpoint); -/** @brief Carbon Dioxide Concentration Measurement Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfCarbonDioxideConcentrationMeasurementClusterServerAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId); -/** @brief Carbon Dioxide Concentration Measurement Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfCarbonDioxideConcentrationMeasurementClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Carbon Dioxide Concentration Measurement Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfCarbonDioxideConcentrationMeasurementClusterServerInitCallback(uint8_t endpoint); -/** @brief Carbon Dioxide Concentration Measurement Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfCarbonDioxideConcentrationMeasurementClusterServerManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Carbon Dioxide Concentration Measurement Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfCarbonDioxideConcentrationMeasurementClusterServerMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, - uint8_t * message, EmberStatus status); -/** @brief Carbon Dioxide Concentration Measurement Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfCarbonDioxideConcentrationMeasurementClusterServerPreAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, EmberAfAttributeType attributeType, uint8_t size, uint8_t * value); -/** @brief Carbon Dioxide Concentration Measurement Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfCarbonDioxideConcentrationMeasurementClusterServerTickCallback(uint8_t endpoint); - -/** @} END Carbon Dioxide Concentration Measurement Cluster Callbacks */ - -/** @name Ethylene Concentration Measurement Cluster Callbacks */ -// @{ - -/** @brief Ethylene Concentration Measurement Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfEthyleneConcentrationMeasurementClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Ethylene Concentration Measurement Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfEthyleneConcentrationMeasurementClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Ethylene Concentration Measurement Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfEthyleneConcentrationMeasurementClusterClientInitCallback(uint8_t endpoint); -/** @brief Ethylene Concentration Measurement Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfEthyleneConcentrationMeasurementClusterClientManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Ethylene Concentration Measurement Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfEthyleneConcentrationMeasurementClusterClientMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, EmberApsFrame * apsFrame, - uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Ethylene Concentration Measurement Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfEthyleneConcentrationMeasurementClusterClientPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Ethylene Concentration Measurement Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfEthyleneConcentrationMeasurementClusterClientTickCallback(uint8_t endpoint); -/** @brief Ethylene Concentration Measurement Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfEthyleneConcentrationMeasurementClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Ethylene Concentration Measurement Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfEthyleneConcentrationMeasurementClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Ethylene Concentration Measurement Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfEthyleneConcentrationMeasurementClusterServerInitCallback(uint8_t endpoint); -/** @brief Ethylene Concentration Measurement Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfEthyleneConcentrationMeasurementClusterServerManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Ethylene Concentration Measurement Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfEthyleneConcentrationMeasurementClusterServerMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, EmberApsFrame * apsFrame, - uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Ethylene Concentration Measurement Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfEthyleneConcentrationMeasurementClusterServerPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Ethylene Concentration Measurement Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfEthyleneConcentrationMeasurementClusterServerTickCallback(uint8_t endpoint); - -/** @} END Ethylene Concentration Measurement Cluster Callbacks */ - -/** @name Ethylene Oxide Concentration Measurement Cluster Callbacks */ -// @{ - -/** @brief Ethylene Oxide Concentration Measurement Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfEthyleneOxideConcentrationMeasurementClusterClientAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId); -/** @brief Ethylene Oxide Concentration Measurement Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfEthyleneOxideConcentrationMeasurementClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Ethylene Oxide Concentration Measurement Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfEthyleneOxideConcentrationMeasurementClusterClientInitCallback(uint8_t endpoint); -/** @brief Ethylene Oxide Concentration Measurement Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfEthyleneOxideConcentrationMeasurementClusterClientManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Ethylene Oxide Concentration Measurement Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfEthyleneOxideConcentrationMeasurementClusterClientMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, - uint8_t * message, EmberStatus status); -/** @brief Ethylene Oxide Concentration Measurement Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfEthyleneOxideConcentrationMeasurementClusterClientPreAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, EmberAfAttributeType attributeType, uint8_t size, uint8_t * value); -/** @brief Ethylene Oxide Concentration Measurement Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfEthyleneOxideConcentrationMeasurementClusterClientTickCallback(uint8_t endpoint); -/** @brief Ethylene Oxide Concentration Measurement Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfEthyleneOxideConcentrationMeasurementClusterServerAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId); -/** @brief Ethylene Oxide Concentration Measurement Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfEthyleneOxideConcentrationMeasurementClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Ethylene Oxide Concentration Measurement Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfEthyleneOxideConcentrationMeasurementClusterServerInitCallback(uint8_t endpoint); -/** @brief Ethylene Oxide Concentration Measurement Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfEthyleneOxideConcentrationMeasurementClusterServerManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Ethylene Oxide Concentration Measurement Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfEthyleneOxideConcentrationMeasurementClusterServerMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, - uint8_t * message, EmberStatus status); -/** @brief Ethylene Oxide Concentration Measurement Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfEthyleneOxideConcentrationMeasurementClusterServerPreAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, EmberAfAttributeType attributeType, uint8_t size, uint8_t * value); -/** @brief Ethylene Oxide Concentration Measurement Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfEthyleneOxideConcentrationMeasurementClusterServerTickCallback(uint8_t endpoint); - -/** @} END Ethylene Oxide Concentration Measurement Cluster Callbacks */ - -/** @name Hydrogen Concentration Measurement Cluster Callbacks */ -// @{ - -/** @brief Hydrogen Concentration Measurement Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfHydrogenConcentrationMeasurementClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Hydrogen Concentration Measurement Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfHydrogenConcentrationMeasurementClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Hydrogen Concentration Measurement Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfHydrogenConcentrationMeasurementClusterClientInitCallback(uint8_t endpoint); -/** @brief Hydrogen Concentration Measurement Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfHydrogenConcentrationMeasurementClusterClientManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Hydrogen Concentration Measurement Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfHydrogenConcentrationMeasurementClusterClientMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, EmberApsFrame * apsFrame, - uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Hydrogen Concentration Measurement Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfHydrogenConcentrationMeasurementClusterClientPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Hydrogen Concentration Measurement Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfHydrogenConcentrationMeasurementClusterClientTickCallback(uint8_t endpoint); -/** @brief Hydrogen Concentration Measurement Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfHydrogenConcentrationMeasurementClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Hydrogen Concentration Measurement Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfHydrogenConcentrationMeasurementClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Hydrogen Concentration Measurement Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfHydrogenConcentrationMeasurementClusterServerInitCallback(uint8_t endpoint); -/** @brief Hydrogen Concentration Measurement Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfHydrogenConcentrationMeasurementClusterServerManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Hydrogen Concentration Measurement Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfHydrogenConcentrationMeasurementClusterServerMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, EmberApsFrame * apsFrame, - uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Hydrogen Concentration Measurement Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfHydrogenConcentrationMeasurementClusterServerPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Hydrogen Concentration Measurement Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfHydrogenConcentrationMeasurementClusterServerTickCallback(uint8_t endpoint); - -/** @} END Hydrogen Concentration Measurement Cluster Callbacks */ - -/** @name Hydrogen Sulphide Concentration Measurement Cluster Callbacks */ -// @{ - -/** @brief Hydrogen Sulphide Concentration Measurement Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfHydrogenSulphideConcentrationMeasurementClusterClientAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId); -/** @brief Hydrogen Sulphide Concentration Measurement Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfHydrogenSulphideConcentrationMeasurementClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Hydrogen Sulphide Concentration Measurement Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfHydrogenSulphideConcentrationMeasurementClusterClientInitCallback(uint8_t endpoint); -/** @brief Hydrogen Sulphide Concentration Measurement Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfHydrogenSulphideConcentrationMeasurementClusterClientManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Hydrogen Sulphide Concentration Measurement Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfHydrogenSulphideConcentrationMeasurementClusterClientMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, - uint8_t * message, EmberStatus status); -/** @brief Hydrogen Sulphide Concentration Measurement Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfHydrogenSulphideConcentrationMeasurementClusterClientPreAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, EmberAfAttributeType attributeType, uint8_t size, uint8_t * value); -/** @brief Hydrogen Sulphide Concentration Measurement Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfHydrogenSulphideConcentrationMeasurementClusterClientTickCallback(uint8_t endpoint); -/** @brief Hydrogen Sulphide Concentration Measurement Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfHydrogenSulphideConcentrationMeasurementClusterServerAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId); -/** @brief Hydrogen Sulphide Concentration Measurement Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfHydrogenSulphideConcentrationMeasurementClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Hydrogen Sulphide Concentration Measurement Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfHydrogenSulphideConcentrationMeasurementClusterServerInitCallback(uint8_t endpoint); -/** @brief Hydrogen Sulphide Concentration Measurement Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfHydrogenSulphideConcentrationMeasurementClusterServerManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Hydrogen Sulphide Concentration Measurement Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfHydrogenSulphideConcentrationMeasurementClusterServerMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, - uint8_t * message, EmberStatus status); -/** @brief Hydrogen Sulphide Concentration Measurement Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfHydrogenSulphideConcentrationMeasurementClusterServerPreAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, EmberAfAttributeType attributeType, uint8_t size, uint8_t * value); -/** @brief Hydrogen Sulphide Concentration Measurement Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfHydrogenSulphideConcentrationMeasurementClusterServerTickCallback(uint8_t endpoint); - -/** @} END Hydrogen Sulphide Concentration Measurement Cluster Callbacks */ - -/** @name Nitric Oxide Concentration Measurement Cluster Callbacks */ -// @{ - -/** @brief Nitric Oxide Concentration Measurement Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfNitricOxideConcentrationMeasurementClusterClientAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId); -/** @brief Nitric Oxide Concentration Measurement Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfNitricOxideConcentrationMeasurementClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Nitric Oxide Concentration Measurement Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfNitricOxideConcentrationMeasurementClusterClientInitCallback(uint8_t endpoint); -/** @brief Nitric Oxide Concentration Measurement Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfNitricOxideConcentrationMeasurementClusterClientManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Nitric Oxide Concentration Measurement Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfNitricOxideConcentrationMeasurementClusterClientMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, - uint8_t * message, EmberStatus status); -/** @brief Nitric Oxide Concentration Measurement Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfNitricOxideConcentrationMeasurementClusterClientPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Nitric Oxide Concentration Measurement Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfNitricOxideConcentrationMeasurementClusterClientTickCallback(uint8_t endpoint); -/** @brief Nitric Oxide Concentration Measurement Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfNitricOxideConcentrationMeasurementClusterServerAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId); -/** @brief Nitric Oxide Concentration Measurement Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfNitricOxideConcentrationMeasurementClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Nitric Oxide Concentration Measurement Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfNitricOxideConcentrationMeasurementClusterServerInitCallback(uint8_t endpoint); -/** @brief Nitric Oxide Concentration Measurement Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfNitricOxideConcentrationMeasurementClusterServerManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Nitric Oxide Concentration Measurement Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfNitricOxideConcentrationMeasurementClusterServerMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, - uint8_t * message, EmberStatus status); -/** @brief Nitric Oxide Concentration Measurement Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfNitricOxideConcentrationMeasurementClusterServerPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Nitric Oxide Concentration Measurement Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfNitricOxideConcentrationMeasurementClusterServerTickCallback(uint8_t endpoint); - -/** @} END Nitric Oxide Concentration Measurement Cluster Callbacks */ - -/** @name Nitrogen Dioxide Concentration Measurement Cluster Callbacks */ -// @{ - -/** @brief Nitrogen Dioxide Concentration Measurement Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfNitrogenDioxideConcentrationMeasurementClusterClientAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId); -/** @brief Nitrogen Dioxide Concentration Measurement Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfNitrogenDioxideConcentrationMeasurementClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Nitrogen Dioxide Concentration Measurement Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfNitrogenDioxideConcentrationMeasurementClusterClientInitCallback(uint8_t endpoint); -/** @brief Nitrogen Dioxide Concentration Measurement Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfNitrogenDioxideConcentrationMeasurementClusterClientManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Nitrogen Dioxide Concentration Measurement Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfNitrogenDioxideConcentrationMeasurementClusterClientMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, - uint8_t * message, EmberStatus status); -/** @brief Nitrogen Dioxide Concentration Measurement Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfNitrogenDioxideConcentrationMeasurementClusterClientPreAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, EmberAfAttributeType attributeType, uint8_t size, uint8_t * value); -/** @brief Nitrogen Dioxide Concentration Measurement Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfNitrogenDioxideConcentrationMeasurementClusterClientTickCallback(uint8_t endpoint); -/** @brief Nitrogen Dioxide Concentration Measurement Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfNitrogenDioxideConcentrationMeasurementClusterServerAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId); -/** @brief Nitrogen Dioxide Concentration Measurement Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfNitrogenDioxideConcentrationMeasurementClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Nitrogen Dioxide Concentration Measurement Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfNitrogenDioxideConcentrationMeasurementClusterServerInitCallback(uint8_t endpoint); -/** @brief Nitrogen Dioxide Concentration Measurement Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfNitrogenDioxideConcentrationMeasurementClusterServerManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Nitrogen Dioxide Concentration Measurement Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfNitrogenDioxideConcentrationMeasurementClusterServerMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, - uint8_t * message, EmberStatus status); -/** @brief Nitrogen Dioxide Concentration Measurement Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfNitrogenDioxideConcentrationMeasurementClusterServerPreAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, EmberAfAttributeType attributeType, uint8_t size, uint8_t * value); -/** @brief Nitrogen Dioxide Concentration Measurement Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfNitrogenDioxideConcentrationMeasurementClusterServerTickCallback(uint8_t endpoint); - -/** @} END Nitrogen Dioxide Concentration Measurement Cluster Callbacks */ - -/** @name Oxygen Concentration Measurement Cluster Callbacks */ -// @{ - -/** @brief Oxygen Concentration Measurement Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfOxygenConcentrationMeasurementClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Oxygen Concentration Measurement Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfOxygenConcentrationMeasurementClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Oxygen Concentration Measurement Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfOxygenConcentrationMeasurementClusterClientInitCallback(uint8_t endpoint); -/** @brief Oxygen Concentration Measurement Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfOxygenConcentrationMeasurementClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Oxygen Concentration Measurement Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfOxygenConcentrationMeasurementClusterClientMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, EmberApsFrame * apsFrame, - uint16_t msgLen, uint8_t * message, EmberStatus status); -/** @brief Oxygen Concentration Measurement Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfOxygenConcentrationMeasurementClusterClientPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Oxygen Concentration Measurement Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfOxygenConcentrationMeasurementClusterClientTickCallback(uint8_t endpoint); -/** @brief Oxygen Concentration Measurement Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfOxygenConcentrationMeasurementClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Oxygen Concentration Measurement Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfOxygenConcentrationMeasurementClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Oxygen Concentration Measurement Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfOxygenConcentrationMeasurementClusterServerInitCallback(uint8_t endpoint); -/** @brief Oxygen Concentration Measurement Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfOxygenConcentrationMeasurementClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Oxygen Concentration Measurement Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfOxygenConcentrationMeasurementClusterServerMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, EmberApsFrame * apsFrame, - uint16_t msgLen, uint8_t * message, EmberStatus status); -/** @brief Oxygen Concentration Measurement Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfOxygenConcentrationMeasurementClusterServerPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Oxygen Concentration Measurement Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfOxygenConcentrationMeasurementClusterServerTickCallback(uint8_t endpoint); - -/** @} END Oxygen Concentration Measurement Cluster Callbacks */ - -/** @name Ozone Concentration Measurement Cluster Callbacks */ -// @{ - -/** @brief Ozone Concentration Measurement Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfOzoneConcentrationMeasurementClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Ozone Concentration Measurement Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfOzoneConcentrationMeasurementClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Ozone Concentration Measurement Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfOzoneConcentrationMeasurementClusterClientInitCallback(uint8_t endpoint); -/** @brief Ozone Concentration Measurement Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfOzoneConcentrationMeasurementClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Ozone Concentration Measurement Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfOzoneConcentrationMeasurementClusterClientMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, EmberApsFrame * apsFrame, - uint16_t msgLen, uint8_t * message, EmberStatus status); -/** @brief Ozone Concentration Measurement Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfOzoneConcentrationMeasurementClusterClientPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Ozone Concentration Measurement Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfOzoneConcentrationMeasurementClusterClientTickCallback(uint8_t endpoint); -/** @brief Ozone Concentration Measurement Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfOzoneConcentrationMeasurementClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Ozone Concentration Measurement Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfOzoneConcentrationMeasurementClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Ozone Concentration Measurement Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfOzoneConcentrationMeasurementClusterServerInitCallback(uint8_t endpoint); -/** @brief Ozone Concentration Measurement Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfOzoneConcentrationMeasurementClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Ozone Concentration Measurement Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfOzoneConcentrationMeasurementClusterServerMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, EmberApsFrame * apsFrame, - uint16_t msgLen, uint8_t * message, EmberStatus status); -/** @brief Ozone Concentration Measurement Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfOzoneConcentrationMeasurementClusterServerPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Ozone Concentration Measurement Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfOzoneConcentrationMeasurementClusterServerTickCallback(uint8_t endpoint); - -/** @} END Ozone Concentration Measurement Cluster Callbacks */ - -/** @name Sulfur Dioxide Concentration Measurement Cluster Callbacks */ -// @{ - -/** @brief Sulfur Dioxide Concentration Measurement Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfSulfurDioxideConcentrationMeasurementClusterClientAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId); -/** @brief Sulfur Dioxide Concentration Measurement Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfSulfurDioxideConcentrationMeasurementClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Sulfur Dioxide Concentration Measurement Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfSulfurDioxideConcentrationMeasurementClusterClientInitCallback(uint8_t endpoint); -/** @brief Sulfur Dioxide Concentration Measurement Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfSulfurDioxideConcentrationMeasurementClusterClientManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Sulfur Dioxide Concentration Measurement Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfSulfurDioxideConcentrationMeasurementClusterClientMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, - uint8_t * message, EmberStatus status); -/** @brief Sulfur Dioxide Concentration Measurement Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfSulfurDioxideConcentrationMeasurementClusterClientPreAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, EmberAfAttributeType attributeType, uint8_t size, uint8_t * value); -/** @brief Sulfur Dioxide Concentration Measurement Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfSulfurDioxideConcentrationMeasurementClusterClientTickCallback(uint8_t endpoint); -/** @brief Sulfur Dioxide Concentration Measurement Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfSulfurDioxideConcentrationMeasurementClusterServerAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId); -/** @brief Sulfur Dioxide Concentration Measurement Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfSulfurDioxideConcentrationMeasurementClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Sulfur Dioxide Concentration Measurement Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfSulfurDioxideConcentrationMeasurementClusterServerInitCallback(uint8_t endpoint); -/** @brief Sulfur Dioxide Concentration Measurement Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfSulfurDioxideConcentrationMeasurementClusterServerManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Sulfur Dioxide Concentration Measurement Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfSulfurDioxideConcentrationMeasurementClusterServerMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, - uint8_t * message, EmberStatus status); -/** @brief Sulfur Dioxide Concentration Measurement Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfSulfurDioxideConcentrationMeasurementClusterServerPreAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, EmberAfAttributeType attributeType, uint8_t size, uint8_t * value); -/** @brief Sulfur Dioxide Concentration Measurement Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfSulfurDioxideConcentrationMeasurementClusterServerTickCallback(uint8_t endpoint); - -/** @} END Sulfur Dioxide Concentration Measurement Cluster Callbacks */ - -/** @name Dissolved Oxygen Concentration Measurement Cluster Callbacks */ -// @{ - -/** @brief Dissolved Oxygen Concentration Measurement Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfDissolvedOxygenConcentrationMeasurementClusterClientAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId); -/** @brief Dissolved Oxygen Concentration Measurement Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfDissolvedOxygenConcentrationMeasurementClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Dissolved Oxygen Concentration Measurement Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfDissolvedOxygenConcentrationMeasurementClusterClientInitCallback(uint8_t endpoint); -/** @brief Dissolved Oxygen Concentration Measurement Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfDissolvedOxygenConcentrationMeasurementClusterClientManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Dissolved Oxygen Concentration Measurement Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfDissolvedOxygenConcentrationMeasurementClusterClientMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, - uint8_t * message, EmberStatus status); -/** @brief Dissolved Oxygen Concentration Measurement Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfDissolvedOxygenConcentrationMeasurementClusterClientPreAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, EmberAfAttributeType attributeType, uint8_t size, uint8_t * value); -/** @brief Dissolved Oxygen Concentration Measurement Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfDissolvedOxygenConcentrationMeasurementClusterClientTickCallback(uint8_t endpoint); -/** @brief Dissolved Oxygen Concentration Measurement Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfDissolvedOxygenConcentrationMeasurementClusterServerAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId); -/** @brief Dissolved Oxygen Concentration Measurement Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfDissolvedOxygenConcentrationMeasurementClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Dissolved Oxygen Concentration Measurement Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfDissolvedOxygenConcentrationMeasurementClusterServerInitCallback(uint8_t endpoint); -/** @brief Dissolved Oxygen Concentration Measurement Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfDissolvedOxygenConcentrationMeasurementClusterServerManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Dissolved Oxygen Concentration Measurement Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfDissolvedOxygenConcentrationMeasurementClusterServerMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, - uint8_t * message, EmberStatus status); -/** @brief Dissolved Oxygen Concentration Measurement Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfDissolvedOxygenConcentrationMeasurementClusterServerPreAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, EmberAfAttributeType attributeType, uint8_t size, uint8_t * value); -/** @brief Dissolved Oxygen Concentration Measurement Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfDissolvedOxygenConcentrationMeasurementClusterServerTickCallback(uint8_t endpoint); - -/** @} END Dissolved Oxygen Concentration Measurement Cluster Callbacks */ - -/** @name Bromate Concentration Measurement Cluster Callbacks */ -// @{ - -/** @brief Bromate Concentration Measurement Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfBromateConcentrationMeasurementClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Bromate Concentration Measurement Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfBromateConcentrationMeasurementClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Bromate Concentration Measurement Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfBromateConcentrationMeasurementClusterClientInitCallback(uint8_t endpoint); -/** @brief Bromate Concentration Measurement Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfBromateConcentrationMeasurementClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Bromate Concentration Measurement Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfBromateConcentrationMeasurementClusterClientMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, EmberApsFrame * apsFrame, - uint16_t msgLen, uint8_t * message, EmberStatus status); -/** @brief Bromate Concentration Measurement Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfBromateConcentrationMeasurementClusterClientPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Bromate Concentration Measurement Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfBromateConcentrationMeasurementClusterClientTickCallback(uint8_t endpoint); -/** @brief Bromate Concentration Measurement Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfBromateConcentrationMeasurementClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Bromate Concentration Measurement Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfBromateConcentrationMeasurementClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Bromate Concentration Measurement Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfBromateConcentrationMeasurementClusterServerInitCallback(uint8_t endpoint); -/** @brief Bromate Concentration Measurement Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfBromateConcentrationMeasurementClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Bromate Concentration Measurement Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfBromateConcentrationMeasurementClusterServerMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, EmberApsFrame * apsFrame, - uint16_t msgLen, uint8_t * message, EmberStatus status); -/** @brief Bromate Concentration Measurement Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfBromateConcentrationMeasurementClusterServerPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Bromate Concentration Measurement Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfBromateConcentrationMeasurementClusterServerTickCallback(uint8_t endpoint); - -/** @} END Bromate Concentration Measurement Cluster Callbacks */ - -/** @name Chloramines Concentration Measurement Cluster Callbacks */ -// @{ - -/** @brief Chloramines Concentration Measurement Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfChloraminesConcentrationMeasurementClusterClientAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId); -/** @brief Chloramines Concentration Measurement Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfChloraminesConcentrationMeasurementClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Chloramines Concentration Measurement Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfChloraminesConcentrationMeasurementClusterClientInitCallback(uint8_t endpoint); -/** @brief Chloramines Concentration Measurement Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfChloraminesConcentrationMeasurementClusterClientManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Chloramines Concentration Measurement Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfChloraminesConcentrationMeasurementClusterClientMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, - uint8_t * message, EmberStatus status); -/** @brief Chloramines Concentration Measurement Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfChloraminesConcentrationMeasurementClusterClientPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Chloramines Concentration Measurement Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfChloraminesConcentrationMeasurementClusterClientTickCallback(uint8_t endpoint); -/** @brief Chloramines Concentration Measurement Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfChloraminesConcentrationMeasurementClusterServerAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId); -/** @brief Chloramines Concentration Measurement Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfChloraminesConcentrationMeasurementClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Chloramines Concentration Measurement Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfChloraminesConcentrationMeasurementClusterServerInitCallback(uint8_t endpoint); -/** @brief Chloramines Concentration Measurement Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfChloraminesConcentrationMeasurementClusterServerManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Chloramines Concentration Measurement Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfChloraminesConcentrationMeasurementClusterServerMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, - uint8_t * message, EmberStatus status); -/** @brief Chloramines Concentration Measurement Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfChloraminesConcentrationMeasurementClusterServerPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Chloramines Concentration Measurement Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfChloraminesConcentrationMeasurementClusterServerTickCallback(uint8_t endpoint); - -/** @} END Chloramines Concentration Measurement Cluster Callbacks */ - -/** @name Chlorine Concentration Measurement Cluster Callbacks */ -// @{ - -/** @brief Chlorine Concentration Measurement Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfChlorineConcentrationMeasurementClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Chlorine Concentration Measurement Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfChlorineConcentrationMeasurementClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Chlorine Concentration Measurement Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfChlorineConcentrationMeasurementClusterClientInitCallback(uint8_t endpoint); -/** @brief Chlorine Concentration Measurement Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfChlorineConcentrationMeasurementClusterClientManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Chlorine Concentration Measurement Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfChlorineConcentrationMeasurementClusterClientMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, EmberApsFrame * apsFrame, - uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Chlorine Concentration Measurement Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfChlorineConcentrationMeasurementClusterClientPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Chlorine Concentration Measurement Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfChlorineConcentrationMeasurementClusterClientTickCallback(uint8_t endpoint); -/** @brief Chlorine Concentration Measurement Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfChlorineConcentrationMeasurementClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Chlorine Concentration Measurement Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfChlorineConcentrationMeasurementClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Chlorine Concentration Measurement Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfChlorineConcentrationMeasurementClusterServerInitCallback(uint8_t endpoint); -/** @brief Chlorine Concentration Measurement Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfChlorineConcentrationMeasurementClusterServerManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Chlorine Concentration Measurement Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfChlorineConcentrationMeasurementClusterServerMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, EmberApsFrame * apsFrame, - uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Chlorine Concentration Measurement Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfChlorineConcentrationMeasurementClusterServerPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Chlorine Concentration Measurement Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfChlorineConcentrationMeasurementClusterServerTickCallback(uint8_t endpoint); - -/** @} END Chlorine Concentration Measurement Cluster Callbacks */ - -/** @name Fecal coliform and E. Coli Concentration Measurement Cluster Callbacks */ -// @{ - -/** @brief Fecal coliform and E. Coli Concentration Measurement Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfFecalColiformAndEColiConcentrationMeasurementClusterClientAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId); -/** @brief Fecal coliform and E. Coli Concentration Measurement Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfFecalColiformAndEColiConcentrationMeasurementClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Fecal coliform and E. Coli Concentration Measurement Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfFecalColiformAndEColiConcentrationMeasurementClusterClientInitCallback(uint8_t endpoint); -/** @brief Fecal coliform and E. Coli Concentration Measurement Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfFecalColiformAndEColiConcentrationMeasurementClusterClientManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Fecal coliform and E. Coli Concentration Measurement Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfFecalColiformAndEColiConcentrationMeasurementClusterClientMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, - uint8_t * message, EmberStatus status); -/** @brief Fecal coliform and E. Coli Concentration Measurement Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfFecalColiformAndEColiConcentrationMeasurementClusterClientPreAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, EmberAfAttributeType attributeType, uint8_t size, uint8_t * value); -/** @brief Fecal coliform and E. Coli Concentration Measurement Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfFecalColiformAndEColiConcentrationMeasurementClusterClientTickCallback(uint8_t endpoint); -/** @brief Fecal coliform and E. Coli Concentration Measurement Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfFecalColiformAndEColiConcentrationMeasurementClusterServerAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId); -/** @brief Fecal coliform and E. Coli Concentration Measurement Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfFecalColiformAndEColiConcentrationMeasurementClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Fecal coliform and E. Coli Concentration Measurement Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfFecalColiformAndEColiConcentrationMeasurementClusterServerInitCallback(uint8_t endpoint); -/** @brief Fecal coliform and E. Coli Concentration Measurement Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfFecalColiformAndEColiConcentrationMeasurementClusterServerManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Fecal coliform and E. Coli Concentration Measurement Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfFecalColiformAndEColiConcentrationMeasurementClusterServerMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, - uint8_t * message, EmberStatus status); -/** @brief Fecal coliform and E. Coli Concentration Measurement Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfFecalColiformAndEColiConcentrationMeasurementClusterServerPreAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, EmberAfAttributeType attributeType, uint8_t size, uint8_t * value); -/** @brief Fecal coliform and E. Coli Concentration Measurement Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfFecalColiformAndEColiConcentrationMeasurementClusterServerTickCallback(uint8_t endpoint); - -/** @} END Fecal coliform and E. Coli Concentration Measurement Cluster Callbacks */ - -/** @name Fluoride Concentration Measurement Cluster Callbacks */ -// @{ - -/** @brief Fluoride Concentration Measurement Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfFluorideConcentrationMeasurementClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Fluoride Concentration Measurement Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfFluorideConcentrationMeasurementClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Fluoride Concentration Measurement Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfFluorideConcentrationMeasurementClusterClientInitCallback(uint8_t endpoint); -/** @brief Fluoride Concentration Measurement Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfFluorideConcentrationMeasurementClusterClientManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Fluoride Concentration Measurement Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfFluorideConcentrationMeasurementClusterClientMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, EmberApsFrame * apsFrame, - uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Fluoride Concentration Measurement Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfFluorideConcentrationMeasurementClusterClientPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Fluoride Concentration Measurement Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfFluorideConcentrationMeasurementClusterClientTickCallback(uint8_t endpoint); -/** @brief Fluoride Concentration Measurement Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfFluorideConcentrationMeasurementClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Fluoride Concentration Measurement Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfFluorideConcentrationMeasurementClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Fluoride Concentration Measurement Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfFluorideConcentrationMeasurementClusterServerInitCallback(uint8_t endpoint); -/** @brief Fluoride Concentration Measurement Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfFluorideConcentrationMeasurementClusterServerManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Fluoride Concentration Measurement Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfFluorideConcentrationMeasurementClusterServerMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, EmberApsFrame * apsFrame, - uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Fluoride Concentration Measurement Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfFluorideConcentrationMeasurementClusterServerPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Fluoride Concentration Measurement Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfFluorideConcentrationMeasurementClusterServerTickCallback(uint8_t endpoint); - -/** @} END Fluoride Concentration Measurement Cluster Callbacks */ - -/** @name Haloacetic Acids Concentration Measurement Cluster Callbacks */ -// @{ - -/** @brief Haloacetic Acids Concentration Measurement Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfHaloaceticAcidsConcentrationMeasurementClusterClientAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId); -/** @brief Haloacetic Acids Concentration Measurement Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfHaloaceticAcidsConcentrationMeasurementClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Haloacetic Acids Concentration Measurement Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfHaloaceticAcidsConcentrationMeasurementClusterClientInitCallback(uint8_t endpoint); -/** @brief Haloacetic Acids Concentration Measurement Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfHaloaceticAcidsConcentrationMeasurementClusterClientManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Haloacetic Acids Concentration Measurement Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfHaloaceticAcidsConcentrationMeasurementClusterClientMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, - uint8_t * message, EmberStatus status); -/** @brief Haloacetic Acids Concentration Measurement Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfHaloaceticAcidsConcentrationMeasurementClusterClientPreAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, EmberAfAttributeType attributeType, uint8_t size, uint8_t * value); -/** @brief Haloacetic Acids Concentration Measurement Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfHaloaceticAcidsConcentrationMeasurementClusterClientTickCallback(uint8_t endpoint); -/** @brief Haloacetic Acids Concentration Measurement Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfHaloaceticAcidsConcentrationMeasurementClusterServerAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId); -/** @brief Haloacetic Acids Concentration Measurement Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfHaloaceticAcidsConcentrationMeasurementClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Haloacetic Acids Concentration Measurement Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfHaloaceticAcidsConcentrationMeasurementClusterServerInitCallback(uint8_t endpoint); -/** @brief Haloacetic Acids Concentration Measurement Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfHaloaceticAcidsConcentrationMeasurementClusterServerManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Haloacetic Acids Concentration Measurement Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfHaloaceticAcidsConcentrationMeasurementClusterServerMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, - uint8_t * message, EmberStatus status); -/** @brief Haloacetic Acids Concentration Measurement Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfHaloaceticAcidsConcentrationMeasurementClusterServerPreAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, EmberAfAttributeType attributeType, uint8_t size, uint8_t * value); -/** @brief Haloacetic Acids Concentration Measurement Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfHaloaceticAcidsConcentrationMeasurementClusterServerTickCallback(uint8_t endpoint); - -/** @} END Haloacetic Acids Concentration Measurement Cluster Callbacks */ - -/** @name Total Trihalomethanes Concentration Measurement Cluster Callbacks */ -// @{ - -/** @brief Total Trihalomethanes Concentration Measurement Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfTotalTrihalomethanesConcentrationMeasurementClusterClientAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId); -/** @brief Total Trihalomethanes Concentration Measurement Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfTotalTrihalomethanesConcentrationMeasurementClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Total Trihalomethanes Concentration Measurement Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfTotalTrihalomethanesConcentrationMeasurementClusterClientInitCallback(uint8_t endpoint); -/** @brief Total Trihalomethanes Concentration Measurement Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfTotalTrihalomethanesConcentrationMeasurementClusterClientManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Total Trihalomethanes Concentration Measurement Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfTotalTrihalomethanesConcentrationMeasurementClusterClientMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, - uint8_t * message, EmberStatus status); -/** @brief Total Trihalomethanes Concentration Measurement Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfTotalTrihalomethanesConcentrationMeasurementClusterClientPreAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, EmberAfAttributeType attributeType, uint8_t size, uint8_t * value); -/** @brief Total Trihalomethanes Concentration Measurement Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfTotalTrihalomethanesConcentrationMeasurementClusterClientTickCallback(uint8_t endpoint); -/** @brief Total Trihalomethanes Concentration Measurement Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfTotalTrihalomethanesConcentrationMeasurementClusterServerAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId); -/** @brief Total Trihalomethanes Concentration Measurement Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfTotalTrihalomethanesConcentrationMeasurementClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Total Trihalomethanes Concentration Measurement Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfTotalTrihalomethanesConcentrationMeasurementClusterServerInitCallback(uint8_t endpoint); -/** @brief Total Trihalomethanes Concentration Measurement Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfTotalTrihalomethanesConcentrationMeasurementClusterServerManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Total Trihalomethanes Concentration Measurement Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfTotalTrihalomethanesConcentrationMeasurementClusterServerMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, - uint8_t * message, EmberStatus status); -/** @brief Total Trihalomethanes Concentration Measurement Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfTotalTrihalomethanesConcentrationMeasurementClusterServerPreAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, EmberAfAttributeType attributeType, uint8_t size, uint8_t * value); -/** @brief Total Trihalomethanes Concentration Measurement Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfTotalTrihalomethanesConcentrationMeasurementClusterServerTickCallback(uint8_t endpoint); - -/** @} END Total Trihalomethanes Concentration Measurement Cluster Callbacks */ - -/** @name Total Coliform Bacteria Concentration Measurement Cluster Callbacks */ -// @{ - -/** @brief Total Coliform Bacteria Concentration Measurement Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfTotalColiformBacteriaConcentrationMeasurementClusterClientAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId); -/** @brief Total Coliform Bacteria Concentration Measurement Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfTotalColiformBacteriaConcentrationMeasurementClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Total Coliform Bacteria Concentration Measurement Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfTotalColiformBacteriaConcentrationMeasurementClusterClientInitCallback(uint8_t endpoint); -/** @brief Total Coliform Bacteria Concentration Measurement Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfTotalColiformBacteriaConcentrationMeasurementClusterClientManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Total Coliform Bacteria Concentration Measurement Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfTotalColiformBacteriaConcentrationMeasurementClusterClientMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, - uint8_t * message, EmberStatus status); -/** @brief Total Coliform Bacteria Concentration Measurement Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfTotalColiformBacteriaConcentrationMeasurementClusterClientPreAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, EmberAfAttributeType attributeType, uint8_t size, uint8_t * value); -/** @brief Total Coliform Bacteria Concentration Measurement Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfTotalColiformBacteriaConcentrationMeasurementClusterClientTickCallback(uint8_t endpoint); -/** @brief Total Coliform Bacteria Concentration Measurement Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfTotalColiformBacteriaConcentrationMeasurementClusterServerAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId); -/** @brief Total Coliform Bacteria Concentration Measurement Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfTotalColiformBacteriaConcentrationMeasurementClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Total Coliform Bacteria Concentration Measurement Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfTotalColiformBacteriaConcentrationMeasurementClusterServerInitCallback(uint8_t endpoint); -/** @brief Total Coliform Bacteria Concentration Measurement Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfTotalColiformBacteriaConcentrationMeasurementClusterServerManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Total Coliform Bacteria Concentration Measurement Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfTotalColiformBacteriaConcentrationMeasurementClusterServerMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, - uint8_t * message, EmberStatus status); -/** @brief Total Coliform Bacteria Concentration Measurement Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfTotalColiformBacteriaConcentrationMeasurementClusterServerPreAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, EmberAfAttributeType attributeType, uint8_t size, uint8_t * value); -/** @brief Total Coliform Bacteria Concentration Measurement Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfTotalColiformBacteriaConcentrationMeasurementClusterServerTickCallback(uint8_t endpoint); - -/** @} END Total Coliform Bacteria Concentration Measurement Cluster Callbacks */ - -/** @name Turbidity Concentration Measurement Cluster Callbacks */ -// @{ - -/** @brief Turbidity Concentration Measurement Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfTurbidityConcentrationMeasurementClusterClientAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId); -/** @brief Turbidity Concentration Measurement Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfTurbidityConcentrationMeasurementClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Turbidity Concentration Measurement Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfTurbidityConcentrationMeasurementClusterClientInitCallback(uint8_t endpoint); -/** @brief Turbidity Concentration Measurement Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfTurbidityConcentrationMeasurementClusterClientManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Turbidity Concentration Measurement Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfTurbidityConcentrationMeasurementClusterClientMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, EmberApsFrame * apsFrame, - uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Turbidity Concentration Measurement Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfTurbidityConcentrationMeasurementClusterClientPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Turbidity Concentration Measurement Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfTurbidityConcentrationMeasurementClusterClientTickCallback(uint8_t endpoint); -/** @brief Turbidity Concentration Measurement Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfTurbidityConcentrationMeasurementClusterServerAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId); -/** @brief Turbidity Concentration Measurement Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfTurbidityConcentrationMeasurementClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Turbidity Concentration Measurement Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfTurbidityConcentrationMeasurementClusterServerInitCallback(uint8_t endpoint); -/** @brief Turbidity Concentration Measurement Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfTurbidityConcentrationMeasurementClusterServerManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Turbidity Concentration Measurement Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfTurbidityConcentrationMeasurementClusterServerMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, EmberApsFrame * apsFrame, - uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Turbidity Concentration Measurement Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfTurbidityConcentrationMeasurementClusterServerPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Turbidity Concentration Measurement Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfTurbidityConcentrationMeasurementClusterServerTickCallback(uint8_t endpoint); - -/** @} END Turbidity Concentration Measurement Cluster Callbacks */ - -/** @name Copper Concentration Measurement Cluster Callbacks */ -// @{ - -/** @brief Copper Concentration Measurement Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfCopperConcentrationMeasurementClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Copper Concentration Measurement Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfCopperConcentrationMeasurementClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Copper Concentration Measurement Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfCopperConcentrationMeasurementClusterClientInitCallback(uint8_t endpoint); -/** @brief Copper Concentration Measurement Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfCopperConcentrationMeasurementClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Copper Concentration Measurement Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfCopperConcentrationMeasurementClusterClientMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, EmberApsFrame * apsFrame, - uint16_t msgLen, uint8_t * message, EmberStatus status); -/** @brief Copper Concentration Measurement Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfCopperConcentrationMeasurementClusterClientPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Copper Concentration Measurement Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfCopperConcentrationMeasurementClusterClientTickCallback(uint8_t endpoint); -/** @brief Copper Concentration Measurement Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfCopperConcentrationMeasurementClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Copper Concentration Measurement Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfCopperConcentrationMeasurementClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Copper Concentration Measurement Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfCopperConcentrationMeasurementClusterServerInitCallback(uint8_t endpoint); -/** @brief Copper Concentration Measurement Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfCopperConcentrationMeasurementClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Copper Concentration Measurement Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfCopperConcentrationMeasurementClusterServerMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, EmberApsFrame * apsFrame, - uint16_t msgLen, uint8_t * message, EmberStatus status); -/** @brief Copper Concentration Measurement Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfCopperConcentrationMeasurementClusterServerPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Copper Concentration Measurement Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfCopperConcentrationMeasurementClusterServerTickCallback(uint8_t endpoint); - -/** @} END Copper Concentration Measurement Cluster Callbacks */ - -/** @name Lead Concentration Measurement Cluster Callbacks */ -// @{ - -/** @brief Lead Concentration Measurement Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfLeadConcentrationMeasurementClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Lead Concentration Measurement Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfLeadConcentrationMeasurementClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Lead Concentration Measurement Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfLeadConcentrationMeasurementClusterClientInitCallback(uint8_t endpoint); -/** @brief Lead Concentration Measurement Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfLeadConcentrationMeasurementClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Lead Concentration Measurement Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfLeadConcentrationMeasurementClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, - uint8_t * message, EmberStatus status); -/** @brief Lead Concentration Measurement Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfLeadConcentrationMeasurementClusterClientPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Lead Concentration Measurement Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfLeadConcentrationMeasurementClusterClientTickCallback(uint8_t endpoint); -/** @brief Lead Concentration Measurement Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfLeadConcentrationMeasurementClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Lead Concentration Measurement Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfLeadConcentrationMeasurementClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Lead Concentration Measurement Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfLeadConcentrationMeasurementClusterServerInitCallback(uint8_t endpoint); -/** @brief Lead Concentration Measurement Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfLeadConcentrationMeasurementClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Lead Concentration Measurement Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfLeadConcentrationMeasurementClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, - uint8_t * message, EmberStatus status); -/** @brief Lead Concentration Measurement Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfLeadConcentrationMeasurementClusterServerPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Lead Concentration Measurement Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfLeadConcentrationMeasurementClusterServerTickCallback(uint8_t endpoint); - -/** @} END Lead Concentration Measurement Cluster Callbacks */ - -/** @name Manganese Concentration Measurement Cluster Callbacks */ -// @{ - -/** @brief Manganese Concentration Measurement Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfManganeseConcentrationMeasurementClusterClientAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId); -/** @brief Manganese Concentration Measurement Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfManganeseConcentrationMeasurementClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Manganese Concentration Measurement Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfManganeseConcentrationMeasurementClusterClientInitCallback(uint8_t endpoint); -/** @brief Manganese Concentration Measurement Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfManganeseConcentrationMeasurementClusterClientManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Manganese Concentration Measurement Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfManganeseConcentrationMeasurementClusterClientMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, EmberApsFrame * apsFrame, - uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Manganese Concentration Measurement Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfManganeseConcentrationMeasurementClusterClientPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Manganese Concentration Measurement Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfManganeseConcentrationMeasurementClusterClientTickCallback(uint8_t endpoint); -/** @brief Manganese Concentration Measurement Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfManganeseConcentrationMeasurementClusterServerAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId); -/** @brief Manganese Concentration Measurement Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfManganeseConcentrationMeasurementClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Manganese Concentration Measurement Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfManganeseConcentrationMeasurementClusterServerInitCallback(uint8_t endpoint); -/** @brief Manganese Concentration Measurement Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfManganeseConcentrationMeasurementClusterServerManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Manganese Concentration Measurement Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfManganeseConcentrationMeasurementClusterServerMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, EmberApsFrame * apsFrame, - uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Manganese Concentration Measurement Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfManganeseConcentrationMeasurementClusterServerPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Manganese Concentration Measurement Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfManganeseConcentrationMeasurementClusterServerTickCallback(uint8_t endpoint); - -/** @} END Manganese Concentration Measurement Cluster Callbacks */ - -/** @name Sulfate Concentration Measurement Cluster Callbacks */ -// @{ - -/** @brief Sulfate Concentration Measurement Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfSulfateConcentrationMeasurementClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Sulfate Concentration Measurement Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfSulfateConcentrationMeasurementClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Sulfate Concentration Measurement Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfSulfateConcentrationMeasurementClusterClientInitCallback(uint8_t endpoint); -/** @brief Sulfate Concentration Measurement Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfSulfateConcentrationMeasurementClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Sulfate Concentration Measurement Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfSulfateConcentrationMeasurementClusterClientMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, EmberApsFrame * apsFrame, - uint16_t msgLen, uint8_t * message, EmberStatus status); -/** @brief Sulfate Concentration Measurement Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfSulfateConcentrationMeasurementClusterClientPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Sulfate Concentration Measurement Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfSulfateConcentrationMeasurementClusterClientTickCallback(uint8_t endpoint); -/** @brief Sulfate Concentration Measurement Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfSulfateConcentrationMeasurementClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Sulfate Concentration Measurement Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfSulfateConcentrationMeasurementClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Sulfate Concentration Measurement Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfSulfateConcentrationMeasurementClusterServerInitCallback(uint8_t endpoint); -/** @brief Sulfate Concentration Measurement Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfSulfateConcentrationMeasurementClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Sulfate Concentration Measurement Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfSulfateConcentrationMeasurementClusterServerMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, EmberApsFrame * apsFrame, - uint16_t msgLen, uint8_t * message, EmberStatus status); -/** @brief Sulfate Concentration Measurement Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfSulfateConcentrationMeasurementClusterServerPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Sulfate Concentration Measurement Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfSulfateConcentrationMeasurementClusterServerTickCallback(uint8_t endpoint); - -/** @} END Sulfate Concentration Measurement Cluster Callbacks */ - -/** @name Bromodichloromethane Concentration Measurement Cluster Callbacks */ -// @{ - -/** @brief Bromodichloromethane Concentration Measurement Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfBromodichloromethaneConcentrationMeasurementClusterClientAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId); -/** @brief Bromodichloromethane Concentration Measurement Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfBromodichloromethaneConcentrationMeasurementClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Bromodichloromethane Concentration Measurement Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfBromodichloromethaneConcentrationMeasurementClusterClientInitCallback(uint8_t endpoint); -/** @brief Bromodichloromethane Concentration Measurement Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfBromodichloromethaneConcentrationMeasurementClusterClientManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Bromodichloromethane Concentration Measurement Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfBromodichloromethaneConcentrationMeasurementClusterClientMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, - uint8_t * message, EmberStatus status); -/** @brief Bromodichloromethane Concentration Measurement Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfBromodichloromethaneConcentrationMeasurementClusterClientPreAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, EmberAfAttributeType attributeType, uint8_t size, uint8_t * value); -/** @brief Bromodichloromethane Concentration Measurement Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfBromodichloromethaneConcentrationMeasurementClusterClientTickCallback(uint8_t endpoint); -/** @brief Bromodichloromethane Concentration Measurement Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfBromodichloromethaneConcentrationMeasurementClusterServerAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId); -/** @brief Bromodichloromethane Concentration Measurement Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfBromodichloromethaneConcentrationMeasurementClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Bromodichloromethane Concentration Measurement Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfBromodichloromethaneConcentrationMeasurementClusterServerInitCallback(uint8_t endpoint); -/** @brief Bromodichloromethane Concentration Measurement Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfBromodichloromethaneConcentrationMeasurementClusterServerManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Bromodichloromethane Concentration Measurement Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfBromodichloromethaneConcentrationMeasurementClusterServerMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, - uint8_t * message, EmberStatus status); -/** @brief Bromodichloromethane Concentration Measurement Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfBromodichloromethaneConcentrationMeasurementClusterServerPreAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, EmberAfAttributeType attributeType, uint8_t size, uint8_t * value); -/** @brief Bromodichloromethane Concentration Measurement Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfBromodichloromethaneConcentrationMeasurementClusterServerTickCallback(uint8_t endpoint); - -/** @} END Bromodichloromethane Concentration Measurement Cluster Callbacks */ - -/** @name Bromoform Concentration Measurement Cluster Callbacks */ -// @{ - -/** @brief Bromoform Concentration Measurement Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfBromoformConcentrationMeasurementClusterClientAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId); -/** @brief Bromoform Concentration Measurement Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfBromoformConcentrationMeasurementClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Bromoform Concentration Measurement Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfBromoformConcentrationMeasurementClusterClientInitCallback(uint8_t endpoint); -/** @brief Bromoform Concentration Measurement Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfBromoformConcentrationMeasurementClusterClientManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Bromoform Concentration Measurement Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfBromoformConcentrationMeasurementClusterClientMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, EmberApsFrame * apsFrame, - uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Bromoform Concentration Measurement Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfBromoformConcentrationMeasurementClusterClientPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Bromoform Concentration Measurement Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfBromoformConcentrationMeasurementClusterClientTickCallback(uint8_t endpoint); -/** @brief Bromoform Concentration Measurement Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfBromoformConcentrationMeasurementClusterServerAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId); -/** @brief Bromoform Concentration Measurement Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfBromoformConcentrationMeasurementClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Bromoform Concentration Measurement Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfBromoformConcentrationMeasurementClusterServerInitCallback(uint8_t endpoint); -/** @brief Bromoform Concentration Measurement Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfBromoformConcentrationMeasurementClusterServerManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Bromoform Concentration Measurement Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfBromoformConcentrationMeasurementClusterServerMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, EmberApsFrame * apsFrame, - uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Bromoform Concentration Measurement Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfBromoformConcentrationMeasurementClusterServerPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Bromoform Concentration Measurement Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfBromoformConcentrationMeasurementClusterServerTickCallback(uint8_t endpoint); - -/** @} END Bromoform Concentration Measurement Cluster Callbacks */ - -/** @name Chlorodibromomethane Concentration Measurement Cluster Callbacks */ -// @{ - -/** @brief Chlorodibromomethane Concentration Measurement Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfChlorodibromomethaneConcentrationMeasurementClusterClientAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId); -/** @brief Chlorodibromomethane Concentration Measurement Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfChlorodibromomethaneConcentrationMeasurementClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Chlorodibromomethane Concentration Measurement Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfChlorodibromomethaneConcentrationMeasurementClusterClientInitCallback(uint8_t endpoint); -/** @brief Chlorodibromomethane Concentration Measurement Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfChlorodibromomethaneConcentrationMeasurementClusterClientManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Chlorodibromomethane Concentration Measurement Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfChlorodibromomethaneConcentrationMeasurementClusterClientMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, - uint8_t * message, EmberStatus status); -/** @brief Chlorodibromomethane Concentration Measurement Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfChlorodibromomethaneConcentrationMeasurementClusterClientPreAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, EmberAfAttributeType attributeType, uint8_t size, uint8_t * value); -/** @brief Chlorodibromomethane Concentration Measurement Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfChlorodibromomethaneConcentrationMeasurementClusterClientTickCallback(uint8_t endpoint); -/** @brief Chlorodibromomethane Concentration Measurement Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfChlorodibromomethaneConcentrationMeasurementClusterServerAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId); -/** @brief Chlorodibromomethane Concentration Measurement Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfChlorodibromomethaneConcentrationMeasurementClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Chlorodibromomethane Concentration Measurement Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfChlorodibromomethaneConcentrationMeasurementClusterServerInitCallback(uint8_t endpoint); -/** @brief Chlorodibromomethane Concentration Measurement Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfChlorodibromomethaneConcentrationMeasurementClusterServerManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Chlorodibromomethane Concentration Measurement Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfChlorodibromomethaneConcentrationMeasurementClusterServerMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, - uint8_t * message, EmberStatus status); -/** @brief Chlorodibromomethane Concentration Measurement Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfChlorodibromomethaneConcentrationMeasurementClusterServerPreAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, EmberAfAttributeType attributeType, uint8_t size, uint8_t * value); -/** @brief Chlorodibromomethane Concentration Measurement Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfChlorodibromomethaneConcentrationMeasurementClusterServerTickCallback(uint8_t endpoint); - -/** @} END Chlorodibromomethane Concentration Measurement Cluster Callbacks */ - -/** @name Chloroform Concentration Measurement Cluster Callbacks */ -// @{ - -/** @brief Chloroform Concentration Measurement Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfChloroformConcentrationMeasurementClusterClientAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId); -/** @brief Chloroform Concentration Measurement Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfChloroformConcentrationMeasurementClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Chloroform Concentration Measurement Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfChloroformConcentrationMeasurementClusterClientInitCallback(uint8_t endpoint); -/** @brief Chloroform Concentration Measurement Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfChloroformConcentrationMeasurementClusterClientManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Chloroform Concentration Measurement Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfChloroformConcentrationMeasurementClusterClientMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, - uint8_t * message, EmberStatus status); -/** @brief Chloroform Concentration Measurement Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfChloroformConcentrationMeasurementClusterClientPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Chloroform Concentration Measurement Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfChloroformConcentrationMeasurementClusterClientTickCallback(uint8_t endpoint); -/** @brief Chloroform Concentration Measurement Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfChloroformConcentrationMeasurementClusterServerAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId); -/** @brief Chloroform Concentration Measurement Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfChloroformConcentrationMeasurementClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Chloroform Concentration Measurement Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfChloroformConcentrationMeasurementClusterServerInitCallback(uint8_t endpoint); -/** @brief Chloroform Concentration Measurement Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfChloroformConcentrationMeasurementClusterServerManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Chloroform Concentration Measurement Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfChloroformConcentrationMeasurementClusterServerMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, - uint8_t * message, EmberStatus status); -/** @brief Chloroform Concentration Measurement Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfChloroformConcentrationMeasurementClusterServerPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Chloroform Concentration Measurement Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfChloroformConcentrationMeasurementClusterServerTickCallback(uint8_t endpoint); - -/** @} END Chloroform Concentration Measurement Cluster Callbacks */ - -/** @name Sodium Concentration Measurement Cluster Callbacks */ -// @{ - -/** @brief Sodium Concentration Measurement Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfSodiumConcentrationMeasurementClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Sodium Concentration Measurement Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfSodiumConcentrationMeasurementClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Sodium Concentration Measurement Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfSodiumConcentrationMeasurementClusterClientInitCallback(uint8_t endpoint); -/** @brief Sodium Concentration Measurement Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfSodiumConcentrationMeasurementClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Sodium Concentration Measurement Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfSodiumConcentrationMeasurementClusterClientMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, EmberApsFrame * apsFrame, - uint16_t msgLen, uint8_t * message, EmberStatus status); -/** @brief Sodium Concentration Measurement Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfSodiumConcentrationMeasurementClusterClientPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Sodium Concentration Measurement Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfSodiumConcentrationMeasurementClusterClientTickCallback(uint8_t endpoint); -/** @brief Sodium Concentration Measurement Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfSodiumConcentrationMeasurementClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Sodium Concentration Measurement Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfSodiumConcentrationMeasurementClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Sodium Concentration Measurement Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfSodiumConcentrationMeasurementClusterServerInitCallback(uint8_t endpoint); -/** @brief Sodium Concentration Measurement Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfSodiumConcentrationMeasurementClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Sodium Concentration Measurement Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfSodiumConcentrationMeasurementClusterServerMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, EmberApsFrame * apsFrame, - uint16_t msgLen, uint8_t * message, EmberStatus status); -/** @brief Sodium Concentration Measurement Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfSodiumConcentrationMeasurementClusterServerPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Sodium Concentration Measurement Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfSodiumConcentrationMeasurementClusterServerTickCallback(uint8_t endpoint); - -/** @} END Sodium Concentration Measurement Cluster Callbacks */ - -/** @name IAS Zone Cluster Callbacks */ -// @{ - -/** @brief IAS Zone Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfIasZoneClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief IAS Zone Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfIasZoneClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief IAS Zone Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfIasZoneClusterClientInitCallback(uint8_t endpoint); -/** @brief IAS Zone Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfIasZoneClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief IAS Zone Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfIasZoneClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief IAS Zone Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfIasZoneClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief IAS Zone Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfIasZoneClusterClientTickCallback(uint8_t endpoint); -/** @brief IAS Zone Cluster Initiate Normal Operation Mode - * - * - * - */ -bool emberAfIasZoneClusterInitiateNormalOperationModeCallback(void); -/** @brief IAS Zone Cluster Initiate Normal Operation Mode Response - * - * - * - */ -bool emberAfIasZoneClusterInitiateNormalOperationModeResponseCallback(void); -/** @brief IAS Zone Cluster Initiate Test Mode - * - * - * - * @param testModeDuration Ver.: always - * @param currentZoneSensitivityLevel Ver.: always - */ -bool emberAfIasZoneClusterInitiateTestModeCallback(uint8_t testModeDuration, uint8_t currentZoneSensitivityLevel); -/** @brief IAS Zone Cluster Initiate Test Mode Response - * - * - * - */ -bool emberAfIasZoneClusterInitiateTestModeResponseCallback(void); -/** @brief IAS Zone Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfIasZoneClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief IAS Zone Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfIasZoneClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief IAS Zone Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfIasZoneClusterServerInitCallback(uint8_t endpoint); -/** @brief IAS Zone Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfIasZoneClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief IAS Zone Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfIasZoneClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief IAS Zone Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfIasZoneClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief IAS Zone Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfIasZoneClusterServerTickCallback(uint8_t endpoint); -/** @brief IAS Zone Cluster Zone Enroll Request - * - * - * - * @param zoneType Ver.: always - * @param manufacturerCode Ver.: always - */ -bool emberAfIasZoneClusterZoneEnrollRequestCallback(uint16_t zoneType, uint16_t manufacturerCode); -/** @brief IAS Zone Cluster Zone Enroll Response - * - * - * - * @param enrollResponseCode Ver.: always - * @param zoneId Ver.: always - */ -bool emberAfIasZoneClusterZoneEnrollResponseCallback(uint8_t enrollResponseCode, uint8_t zoneId); -/** @brief IAS Zone Cluster Zone Status Change Notification - * - * - * - * @param zoneStatus Ver.: always - * @param extendedStatus Ver.: always - * @param zoneId Ver.: since ha-1.2-05-3520-29 - * @param delay Ver.: since ha-1.2-05-3520-29 - */ -bool emberAfIasZoneClusterZoneStatusChangeNotificationCallback(uint16_t zoneStatus, uint8_t extendedStatus, uint8_t zoneId, - uint16_t delay); - -/** @} END IAS Zone Cluster Callbacks */ - -/** @name IAS ACE Cluster Callbacks */ -// @{ - -/** @brief IAS ACE Cluster Arm - * - * - * - * @param armMode Ver.: always - * @param armDisarmCode Ver.: since ha-1.2-05-3520-29 - * @param zoneId Ver.: since ha-1.2-05-3520-29 - */ -bool emberAfIasAceClusterArmCallback(uint8_t armMode, uint8_t * armDisarmCode, uint8_t zoneId); -/** @brief IAS ACE Cluster Arm Response - * - * - * - * @param armNotification Ver.: always - */ -bool emberAfIasAceClusterArmResponseCallback(uint8_t armNotification); -/** @brief IAS ACE Cluster Bypass - * - * - * - * @param numberOfZones Ver.: always - * @param zoneIds Ver.: always - * @param armDisarmCode Ver.: since ha-1.2.1-05-3520-30 - */ -bool emberAfIasAceClusterBypassCallback(uint8_t numberOfZones, uint8_t * zoneIds, uint8_t * armDisarmCode); -/** @brief IAS ACE Cluster Bypass Response - * - * - * - * @param numberOfZones Ver.: always - * @param bypassResult Ver.: always - */ -bool emberAfIasAceClusterBypassResponseCallback(uint8_t numberOfZones, uint8_t * bypassResult); -/** @brief IAS ACE Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfIasAceClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief IAS ACE Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfIasAceClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief IAS ACE Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfIasAceClusterClientInitCallback(uint8_t endpoint); -/** @brief IAS ACE Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfIasAceClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief IAS ACE Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfIasAceClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief IAS ACE Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfIasAceClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief IAS ACE Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfIasAceClusterClientTickCallback(uint8_t endpoint); -/** @brief IAS ACE Cluster Emergency - * - * - * - */ -bool emberAfIasAceClusterEmergencyCallback(void); -/** @brief IAS ACE Cluster Fire - * - * - * - */ -bool emberAfIasAceClusterFireCallback(void); -/** @brief IAS ACE Cluster Get Bypassed Zone List - * - * - * - */ -bool emberAfIasAceClusterGetBypassedZoneListCallback(void); -/** @brief IAS ACE Cluster Get Panel Status - * - * - * - */ -bool emberAfIasAceClusterGetPanelStatusCallback(void); -/** @brief IAS ACE Cluster Get Panel Status Response - * - * - * - * @param panelStatus Ver.: always - * @param secondsRemaining Ver.: always - * @param audibleNotification Ver.: always - * @param alarmStatus Ver.: always - */ -bool emberAfIasAceClusterGetPanelStatusResponseCallback(uint8_t panelStatus, uint8_t secondsRemaining, uint8_t audibleNotification, - uint8_t alarmStatus); -/** @brief IAS ACE Cluster Get Zone Id Map - * - * - * - */ -bool emberAfIasAceClusterGetZoneIdMapCallback(void); -/** @brief IAS ACE Cluster Get Zone Id Map Response - * - * - * - * @param section0 Ver.: always - * @param section1 Ver.: always - * @param section2 Ver.: always - * @param section3 Ver.: always - * @param section4 Ver.: always - * @param section5 Ver.: always - * @param section6 Ver.: always - * @param section7 Ver.: always - * @param section8 Ver.: always - * @param section9 Ver.: always - * @param section10 Ver.: always - * @param section11 Ver.: always - * @param section12 Ver.: always - * @param section13 Ver.: always - * @param section14 Ver.: always - * @param section15 Ver.: always - */ -bool emberAfIasAceClusterGetZoneIdMapResponseCallback(uint16_t section0, uint16_t section1, uint16_t section2, uint16_t section3, - uint16_t section4, uint16_t section5, uint16_t section6, uint16_t section7, - uint16_t section8, uint16_t section9, uint16_t section10, uint16_t section11, - uint16_t section12, uint16_t section13, uint16_t section14, - uint16_t section15); -/** @brief IAS ACE Cluster Get Zone Information - * - * - * - * @param zoneId Ver.: always - */ -bool emberAfIasAceClusterGetZoneInformationCallback(uint8_t zoneId); -/** @brief IAS ACE Cluster Get Zone Information Response - * - * - * - * @param zoneId Ver.: always - * @param zoneType Ver.: always - * @param ieeeAddress Ver.: always - * @param zoneLabel Ver.: since ha-1.2.1-05-3520-30 - */ -bool emberAfIasAceClusterGetZoneInformationResponseCallback(uint8_t zoneId, uint16_t zoneType, uint8_t * ieeeAddress, - uint8_t * zoneLabel); -/** @brief IAS ACE Cluster Get Zone Status - * - * - * - * @param startingZoneId Ver.: always - * @param maxNumberOfZoneIds Ver.: always - * @param zoneStatusMaskFlag Ver.: always - * @param zoneStatusMask Ver.: always - */ -bool emberAfIasAceClusterGetZoneStatusCallback(uint8_t startingZoneId, uint8_t maxNumberOfZoneIds, uint8_t zoneStatusMaskFlag, - uint16_t zoneStatusMask); -/** @brief IAS ACE Cluster Get Zone Status Response - * - * - * - * @param zoneStatusComplete Ver.: always - * @param numberOfZones Ver.: always - * @param zoneStatusResult Ver.: always - */ -bool emberAfIasAceClusterGetZoneStatusResponseCallback(uint8_t zoneStatusComplete, uint8_t numberOfZones, - uint8_t * zoneStatusResult); -/** @brief IAS ACE Cluster Panel Status Changed - * - * - * - * @param panelStatus Ver.: always - * @param secondsRemaining Ver.: always - * @param audibleNotification Ver.: since ha-1.2.1-05-3520-30 - * @param alarmStatus Ver.: since ha-1.2.1-05-3520-30 - */ -bool emberAfIasAceClusterPanelStatusChangedCallback(uint8_t panelStatus, uint8_t secondsRemaining, uint8_t audibleNotification, - uint8_t alarmStatus); -/** @brief IAS ACE Cluster Panic - * - * - * - */ -bool emberAfIasAceClusterPanicCallback(void); -/** @brief IAS ACE Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfIasAceClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief IAS ACE Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfIasAceClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief IAS ACE Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfIasAceClusterServerInitCallback(uint8_t endpoint); -/** @brief IAS ACE Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfIasAceClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief IAS ACE Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfIasAceClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief IAS ACE Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfIasAceClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief IAS ACE Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfIasAceClusterServerTickCallback(uint8_t endpoint); -/** @brief IAS ACE Cluster Set Bypassed Zone List - * - * - * - * @param numberOfZones Ver.: always - * @param zoneIds Ver.: always - */ -bool emberAfIasAceClusterSetBypassedZoneListCallback(uint8_t numberOfZones, uint8_t * zoneIds); -/** @brief IAS ACE Cluster Zone Status Changed - * - * - * - * @param zoneId Ver.: always - * @param zoneStatus Ver.: always - * @param audibleNotification Ver.: since ha-1.2.1-05-3520-30 - * @param zoneLabel Ver.: since ha-1.2.1-05-3520-30 - */ -bool emberAfIasAceClusterZoneStatusChangedCallback(uint8_t zoneId, uint16_t zoneStatus, uint8_t audibleNotification, - uint8_t * zoneLabel); - -/** @} END IAS ACE Cluster Callbacks */ - -/** @name IAS WD Cluster Callbacks */ -// @{ - -/** @brief IAS WD Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfIasWdClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief IAS WD Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfIasWdClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief IAS WD Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfIasWdClusterClientInitCallback(uint8_t endpoint); -/** @brief IAS WD Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfIasWdClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief IAS WD Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfIasWdClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, EmberStatus status); -/** @brief IAS WD Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfIasWdClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief IAS WD Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfIasWdClusterClientTickCallback(uint8_t endpoint); -/** @brief IAS WD Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfIasWdClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief IAS WD Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfIasWdClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief IAS WD Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfIasWdClusterServerInitCallback(uint8_t endpoint); -/** @brief IAS WD Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfIasWdClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief IAS WD Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfIasWdClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, EmberStatus status); -/** @brief IAS WD Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfIasWdClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief IAS WD Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfIasWdClusterServerTickCallback(uint8_t endpoint); -/** @brief IAS WD Cluster Squawk - * - * - * - * @param squawkInfo Ver.: always - */ -bool emberAfIasWdClusterSquawkCallback(uint8_t squawkInfo); -/** @brief IAS WD Cluster Start Warning - * - * - * - * @param warningInfo Ver.: always - * @param warningDuration Ver.: always - * @param strobeDutyCycle Ver.: since ha-1.2-05-3520-29 - * @param strobeLevel Ver.: since ha-1.2-05-3520-29 - */ -bool emberAfIasWdClusterStartWarningCallback(uint8_t warningInfo, uint16_t warningDuration, uint8_t strobeDutyCycle, - uint8_t strobeLevel); - -/** @} END IAS WD Cluster Callbacks */ - -/** @name Generic Tunnel Cluster Callbacks */ -// @{ - -/** @brief Generic Tunnel Cluster Advertise Protocol Address - * - * - * - * @param protocolAddress Ver.: always - */ -bool emberAfGenericTunnelClusterAdvertiseProtocolAddressCallback(uint8_t * protocolAddress); -/** @brief Generic Tunnel Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfGenericTunnelClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Generic Tunnel Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfGenericTunnelClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Generic Tunnel Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfGenericTunnelClusterClientInitCallback(uint8_t endpoint); -/** @brief Generic Tunnel Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfGenericTunnelClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Generic Tunnel Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfGenericTunnelClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Generic Tunnel Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfGenericTunnelClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Generic Tunnel Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfGenericTunnelClusterClientTickCallback(uint8_t endpoint); -/** @brief Generic Tunnel Cluster Match Protocol Address - * - * - * - * @param protocolAddress Ver.: always - */ -bool emberAfGenericTunnelClusterMatchProtocolAddressCallback(uint8_t * protocolAddress); -/** @brief Generic Tunnel Cluster Match Protocol Address Response - * - * - * - * @param deviceIeeeAddress Ver.: always - * @param protocolAddress Ver.: always - */ -bool emberAfGenericTunnelClusterMatchProtocolAddressResponseCallback(uint8_t * deviceIeeeAddress, uint8_t * protocolAddress); -/** @brief Generic Tunnel Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfGenericTunnelClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Generic Tunnel Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfGenericTunnelClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Generic Tunnel Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfGenericTunnelClusterServerInitCallback(uint8_t endpoint); -/** @brief Generic Tunnel Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfGenericTunnelClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Generic Tunnel Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfGenericTunnelClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Generic Tunnel Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfGenericTunnelClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Generic Tunnel Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfGenericTunnelClusterServerTickCallback(uint8_t endpoint); - -/** @} END Generic Tunnel Cluster Callbacks */ - -/** @name BACnet Protocol Tunnel Cluster Callbacks */ -// @{ - -/** @brief BACnet Protocol Tunnel Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfBacnetProtocolTunnelClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief BACnet Protocol Tunnel Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfBacnetProtocolTunnelClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief BACnet Protocol Tunnel Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfBacnetProtocolTunnelClusterClientInitCallback(uint8_t endpoint); -/** @brief BACnet Protocol Tunnel Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfBacnetProtocolTunnelClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief BACnet Protocol Tunnel Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfBacnetProtocolTunnelClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief BACnet Protocol Tunnel Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfBacnetProtocolTunnelClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief BACnet Protocol Tunnel Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfBacnetProtocolTunnelClusterClientTickCallback(uint8_t endpoint); -/** @brief BACnet Protocol Tunnel Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfBacnetProtocolTunnelClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief BACnet Protocol Tunnel Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfBacnetProtocolTunnelClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief BACnet Protocol Tunnel Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfBacnetProtocolTunnelClusterServerInitCallback(uint8_t endpoint); -/** @brief BACnet Protocol Tunnel Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfBacnetProtocolTunnelClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief BACnet Protocol Tunnel Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfBacnetProtocolTunnelClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief BACnet Protocol Tunnel Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfBacnetProtocolTunnelClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief BACnet Protocol Tunnel Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfBacnetProtocolTunnelClusterServerTickCallback(uint8_t endpoint); -/** @brief BACnet Protocol Tunnel Cluster Transfer Npdu - * - * - * - * @param npdu Ver.: always - */ -bool emberAfBacnetProtocolTunnelClusterTransferNpduCallback(uint8_t * npdu); - -/** @} END BACnet Protocol Tunnel Cluster Callbacks */ - -/** @name 11073 Protocol Tunnel Cluster Callbacks */ -// @{ - -/** @brief 11073 Protocol Tunnel Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAf11073ProtocolTunnelClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief 11073 Protocol Tunnel Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAf11073ProtocolTunnelClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief 11073 Protocol Tunnel Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAf11073ProtocolTunnelClusterClientInitCallback(uint8_t endpoint); -/** @brief 11073 Protocol Tunnel Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAf11073ProtocolTunnelClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief 11073 Protocol Tunnel Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAf11073ProtocolTunnelClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief 11073 Protocol Tunnel Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAf11073ProtocolTunnelClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief 11073 Protocol Tunnel Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAf11073ProtocolTunnelClusterClientTickCallback(uint8_t endpoint); -/** @brief 11073 Protocol Tunnel Cluster Connect Request - * - * - * - * @param connectControl Ver.: always - * @param idleTimeout Ver.: always - * @param managerTarget Ver.: always - * @param managerEndpoint Ver.: always - */ -bool emberAf11073ProtocolTunnelClusterConnectRequestCallback(uint8_t connectControl, uint16_t idleTimeout, uint8_t * managerTarget, - uint8_t managerEndpoint); -/** @brief 11073 Protocol Tunnel Cluster Connect Status Notification - * - * - * - * @param connectStatus Ver.: always - */ -bool emberAf11073ProtocolTunnelClusterConnectStatusNotificationCallback(uint8_t connectStatus); -/** @brief 11073 Protocol Tunnel Cluster Disconnect Request - * - * - * - * @param managerIEEEAddress Ver.: always - */ -bool emberAf11073ProtocolTunnelClusterDisconnectRequestCallback(uint8_t * managerIEEEAddress); -/** @brief 11073 Protocol Tunnel Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAf11073ProtocolTunnelClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief 11073 Protocol Tunnel Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAf11073ProtocolTunnelClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief 11073 Protocol Tunnel Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAf11073ProtocolTunnelClusterServerInitCallback(uint8_t endpoint); -/** @brief 11073 Protocol Tunnel Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAf11073ProtocolTunnelClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief 11073 Protocol Tunnel Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAf11073ProtocolTunnelClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief 11073 Protocol Tunnel Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAf11073ProtocolTunnelClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief 11073 Protocol Tunnel Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAf11073ProtocolTunnelClusterServerTickCallback(uint8_t endpoint); -/** @brief 11073 Protocol Tunnel Cluster Transfer A P D U - * - * - * - * @param apdu Ver.: always - */ -bool emberAf11073ProtocolTunnelClusterTransferAPDUCallback(uint8_t * apdu); - -/** @} END 11073 Protocol Tunnel Cluster Callbacks */ - -/** @name ISO 7816 Protocol Tunnel Cluster Callbacks */ -// @{ - -/** @brief ISO 7816 Protocol Tunnel Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfIso7816ProtocolTunnelClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief ISO 7816 Protocol Tunnel Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfIso7816ProtocolTunnelClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief ISO 7816 Protocol Tunnel Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfIso7816ProtocolTunnelClusterClientInitCallback(uint8_t endpoint); -/** @brief ISO 7816 Protocol Tunnel Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfIso7816ProtocolTunnelClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief ISO 7816 Protocol Tunnel Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfIso7816ProtocolTunnelClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief ISO 7816 Protocol Tunnel Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfIso7816ProtocolTunnelClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief ISO 7816 Protocol Tunnel Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfIso7816ProtocolTunnelClusterClientTickCallback(uint8_t endpoint); -/** @brief ISO 7816 Protocol Tunnel Cluster Extract Smart Card - * - * - * - */ -bool emberAfIso7816ProtocolTunnelClusterExtractSmartCardCallback(void); -/** @brief ISO 7816 Protocol Tunnel Cluster Insert Smart Card - * - * - * - */ -bool emberAfIso7816ProtocolTunnelClusterInsertSmartCardCallback(void); -/** @brief ISO 7816 Protocol Tunnel Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfIso7816ProtocolTunnelClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief ISO 7816 Protocol Tunnel Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfIso7816ProtocolTunnelClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief ISO 7816 Protocol Tunnel Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfIso7816ProtocolTunnelClusterServerInitCallback(uint8_t endpoint); -/** @brief ISO 7816 Protocol Tunnel Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfIso7816ProtocolTunnelClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief ISO 7816 Protocol Tunnel Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfIso7816ProtocolTunnelClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief ISO 7816 Protocol Tunnel Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfIso7816ProtocolTunnelClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief ISO 7816 Protocol Tunnel Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfIso7816ProtocolTunnelClusterServerTickCallback(uint8_t endpoint); -/** @brief ISO 7816 Protocol Tunnel Cluster Transfer Apdu - * - * - * - * @param apdu Ver.: always - */ -bool emberAfIso7816ProtocolTunnelClusterTransferApduCallback(uint8_t * apdu); - -/** @} END ISO 7816 Protocol Tunnel Cluster Callbacks */ - -/** @name Price Cluster Callbacks */ -// @{ - -/** @brief Price Cluster Cancel Tariff - * - * - * - * @param providerId Ver.: always - * @param issuerTariffId Ver.: always - * @param tariffType Ver.: always - */ -bool emberAfPriceClusterCancelTariffCallback(uint32_t providerId, uint32_t issuerTariffId, uint8_t tariffType); -/** @brief Price Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfPriceClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Price Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfPriceClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Price Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfPriceClusterClientInitCallback(uint8_t endpoint); -/** @brief Price Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfPriceClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Price Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfPriceClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, EmberStatus status); -/** @brief Price Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfPriceClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Price Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfPriceClusterClientTickCallback(uint8_t endpoint); -/** @brief Price Cluster Cpp Event Response - * - * - * - * @param issuerEventId Ver.: always - * @param cppAuth Ver.: always - */ -bool emberAfPriceClusterCppEventResponseCallback(uint32_t issuerEventId, uint8_t cppAuth); -/** @brief Price Cluster Get Billing Period - * - * - * - * @param earliestStartTime Ver.: always - * @param minIssuerEventId Ver.: always - * @param numberOfCommands Ver.: always - * @param tariffType Ver.: always - */ -bool emberAfPriceClusterGetBillingPeriodCallback(uint32_t earliestStartTime, uint32_t minIssuerEventId, uint8_t numberOfCommands, - uint8_t tariffType); -/** @brief Price Cluster Get Block Periods - * - * - * - * @param startTime Ver.: always - * @param numberOfEvents Ver.: always - * @param tariffType Ver.: always - */ -bool emberAfPriceClusterGetBlockPeriodsCallback(uint32_t startTime, uint8_t numberOfEvents, uint8_t tariffType); -/** @brief Price Cluster Get Block Thresholds - * - * - * - * @param issuerTariffId Ver.: always - */ -bool emberAfPriceClusterGetBlockThresholdsCallback(uint32_t issuerTariffId); -/** @brief Price Cluster Get C O2 Value - * - * - * - * @param earliestStartTime Ver.: always - * @param minIssuerEventId Ver.: always - * @param numberOfCommands Ver.: always - * @param tariffType Ver.: always - */ -bool emberAfPriceClusterGetCO2ValueCallback(uint32_t earliestStartTime, uint32_t minIssuerEventId, uint8_t numberOfCommands, - uint8_t tariffType); -/** @brief Price Cluster Get Calorific Value - * - * - * - * @param earliestStartTime Ver.: always - * @param minIssuerEventId Ver.: always - * @param numberOfCommands Ver.: always - */ -bool emberAfPriceClusterGetCalorificValueCallback(uint32_t earliestStartTime, uint32_t minIssuerEventId, uint8_t numberOfCommands); -/** @brief Price Cluster Get Consolidated Bill - * - * - * - * @param earliestStartTime Ver.: always - * @param minIssuerEventId Ver.: always - * @param numberOfCommands Ver.: always - * @param tariffType Ver.: always - */ -bool emberAfPriceClusterGetConsolidatedBillCallback(uint32_t earliestStartTime, uint32_t minIssuerEventId, uint8_t numberOfCommands, - uint8_t tariffType); -/** @brief Price Cluster Get Conversion Factor - * - * - * - * @param earliestStartTime Ver.: always - * @param minIssuerEventId Ver.: always - * @param numberOfCommands Ver.: always - */ -bool emberAfPriceClusterGetConversionFactorCallback(uint32_t earliestStartTime, uint32_t minIssuerEventId, - uint8_t numberOfCommands); -/** @brief Price Cluster Get Credit Payment - * - * - * - * @param latestEndTime Ver.: always - * @param numberOfRecords Ver.: always - */ -bool emberAfPriceClusterGetCreditPaymentCallback(uint32_t latestEndTime, uint8_t numberOfRecords); -/** @brief Price Cluster Get Currency Conversion Command - * - * - * - */ -bool emberAfPriceClusterGetCurrencyConversionCommandCallback(void); -/** @brief Price Cluster Get Current Price - * - * - * - * @param commandOptions Ver.: always - */ -bool emberAfPriceClusterGetCurrentPriceCallback(uint8_t commandOptions); -/** @brief Price Cluster Get Price Matrix - * - * - * - * @param issuerTariffId Ver.: always - */ -bool emberAfPriceClusterGetPriceMatrixCallback(uint32_t issuerTariffId); -/** @brief Price Cluster Get Scheduled Prices - * - * - * - * @param startTime Ver.: always - * @param numberOfEvents Ver.: always - */ -bool emberAfPriceClusterGetScheduledPricesCallback(uint32_t startTime, uint8_t numberOfEvents); -/** @brief Price Cluster Get Tariff Cancellation - * - * - * - */ -bool emberAfPriceClusterGetTariffCancellationCallback(void); -/** @brief Price Cluster Get Tariff Information - * - * - * - * @param earliestStartTime Ver.: always - * @param minIssuerEventId Ver.: always - * @param numberOfCommands Ver.: always - * @param tariffType Ver.: always - */ -bool emberAfPriceClusterGetTariffInformationCallback(uint32_t earliestStartTime, uint32_t minIssuerEventId, - uint8_t numberOfCommands, uint8_t tariffType); -/** @brief Price Cluster Get Tier Labels - * - * - * - * @param issuerTariffId Ver.: always - */ -bool emberAfPriceClusterGetTierLabelsCallback(uint32_t issuerTariffId); -/** @brief Price Cluster Price Acknowledgement - * - * - * - * @param providerId Ver.: always - * @param issuerEventId Ver.: always - * @param priceAckTime Ver.: always - * @param control Ver.: always - */ -bool emberAfPriceClusterPriceAcknowledgementCallback(uint32_t providerId, uint32_t issuerEventId, uint32_t priceAckTime, - uint8_t control); -/** @brief Price Cluster Publish Billing Period - * - * - * - * @param providerId Ver.: always - * @param issuerEventId Ver.: always - * @param billingPeriodStartTime Ver.: always - * @param billingPeriodDuration Ver.: always - * @param billingPeriodDurationType Ver.: always - * @param tariffType Ver.: always - */ -bool emberAfPriceClusterPublishBillingPeriodCallback(uint32_t providerId, uint32_t issuerEventId, uint32_t billingPeriodStartTime, - uint32_t billingPeriodDuration, uint8_t billingPeriodDurationType, - uint8_t tariffType); -/** @brief Price Cluster Publish Block Period - * - * - * - * @param providerId Ver.: always - * @param issuerEventId Ver.: always - * @param blockPeriodStartTime Ver.: always - * @param blockPeriodDuration Ver.: always - * @param blockPeriodControl Ver.: always - * @param blockPeriodDurationType Ver.: since se-1.2a-07-5356-19 - * @param tariffType Ver.: since se-1.2a-07-5356-19 - * @param tariffResolutionPeriod Ver.: since se-1.2a-07-5356-19 - */ -bool emberAfPriceClusterPublishBlockPeriodCallback(uint32_t providerId, uint32_t issuerEventId, uint32_t blockPeriodStartTime, - uint32_t blockPeriodDuration, uint8_t blockPeriodControl, - uint8_t blockPeriodDurationType, uint8_t tariffType, - uint8_t tariffResolutionPeriod); -/** @brief Price Cluster Publish Block Thresholds - * - * - * - * @param providerId Ver.: always - * @param issuerEventId Ver.: always - * @param startTime Ver.: always - * @param issuerTariffId Ver.: always - * @param commandIndex Ver.: always - * @param numberOfCommands Ver.: always - * @param subPayloadControl Ver.: always - * @param payload Ver.: always - */ -bool emberAfPriceClusterPublishBlockThresholdsCallback(uint32_t providerId, uint32_t issuerEventId, uint32_t startTime, - uint32_t issuerTariffId, uint8_t commandIndex, uint8_t numberOfCommands, - uint8_t subPayloadControl, uint8_t * payload); -/** @brief Price Cluster Publish C O2 Value - * - * - * - * @param providerId Ver.: always - * @param issuerEventId Ver.: always - * @param startTime Ver.: always - * @param tariffType Ver.: always - * @param cO2Value Ver.: always - * @param cO2ValueUnit Ver.: always - * @param cO2ValueTrailingDigit Ver.: always - */ -bool emberAfPriceClusterPublishCO2ValueCallback(uint32_t providerId, uint32_t issuerEventId, uint32_t startTime, uint8_t tariffType, - uint32_t cO2Value, uint8_t cO2ValueUnit, uint8_t cO2ValueTrailingDigit); -/** @brief Price Cluster Publish Calorific Value - * - * - * - * @param issuerEventId Ver.: always - * @param startTime Ver.: always - * @param calorificValue Ver.: always - * @param calorificValueUnit Ver.: always - * @param calorificValueTrailingDigit Ver.: always - */ -bool emberAfPriceClusterPublishCalorificValueCallback(uint32_t issuerEventId, uint32_t startTime, uint32_t calorificValue, - uint8_t calorificValueUnit, uint8_t calorificValueTrailingDigit); -/** @brief Price Cluster Publish Consolidated Bill - * - * - * - * @param providerId Ver.: always - * @param issuerEventId Ver.: always - * @param billingPeriodStartTime Ver.: always - * @param billingPeriodDuration Ver.: always - * @param billingPeriodDurationType Ver.: always - * @param tariffType Ver.: always - * @param consolidatedBill Ver.: always - * @param currency Ver.: always - * @param billTrailingDigit Ver.: always - */ -bool emberAfPriceClusterPublishConsolidatedBillCallback(uint32_t providerId, uint32_t issuerEventId, - uint32_t billingPeriodStartTime, uint32_t billingPeriodDuration, - uint8_t billingPeriodDurationType, uint8_t tariffType, - uint32_t consolidatedBill, uint16_t currency, uint8_t billTrailingDigit); -/** @brief Price Cluster Publish Conversion Factor - * - * - * - * @param issuerEventId Ver.: always - * @param startTime Ver.: always - * @param conversionFactor Ver.: always - * @param conversionFactorTrailingDigit Ver.: always - */ -bool emberAfPriceClusterPublishConversionFactorCallback(uint32_t issuerEventId, uint32_t startTime, uint32_t conversionFactor, - uint8_t conversionFactorTrailingDigit); -/** @brief Price Cluster Publish Cpp Event - * - * - * - * @param providerId Ver.: always - * @param issuerEventId Ver.: always - * @param startTime Ver.: always - * @param durationInMinutes Ver.: always - * @param tariffType Ver.: always - * @param cppPriceTier Ver.: always - * @param cppAuth Ver.: always - */ -bool emberAfPriceClusterPublishCppEventCallback(uint32_t providerId, uint32_t issuerEventId, uint32_t startTime, - uint16_t durationInMinutes, uint8_t tariffType, uint8_t cppPriceTier, - uint8_t cppAuth); -/** @brief Price Cluster Publish Credit Payment - * - * - * - * @param providerId Ver.: always - * @param issuerEventId Ver.: always - * @param creditPaymentDueDate Ver.: always - * @param creditPaymentOverDueAmount Ver.: always - * @param creditPaymentStatus Ver.: always - * @param creditPayment Ver.: always - * @param creditPaymentDate Ver.: always - * @param creditPaymentRef Ver.: always - */ -bool emberAfPriceClusterPublishCreditPaymentCallback(uint32_t providerId, uint32_t issuerEventId, uint32_t creditPaymentDueDate, - uint32_t creditPaymentOverDueAmount, uint8_t creditPaymentStatus, - uint32_t creditPayment, uint32_t creditPaymentDate, - uint8_t * creditPaymentRef); -/** @brief Price Cluster Publish Currency Conversion - * - * - * - * @param providerId Ver.: always - * @param issuerEventId Ver.: always - * @param startTime Ver.: always - * @param oldCurrency Ver.: always - * @param newCurrency Ver.: always - * @param conversionFactor Ver.: always - * @param conversionFactorTrailingDigit Ver.: always - * @param currencyChangeControlFlags Ver.: always - */ -bool emberAfPriceClusterPublishCurrencyConversionCallback(uint32_t providerId, uint32_t issuerEventId, uint32_t startTime, - uint16_t oldCurrency, uint16_t newCurrency, uint32_t conversionFactor, - uint8_t conversionFactorTrailingDigit, - uint32_t currencyChangeControlFlags); -/** @brief Price Cluster Publish Price - * - * - * - * @param providerId Ver.: always - * @param rateLabel Ver.: always - * @param issuerEventId Ver.: always - * @param currentTime Ver.: always - * @param unitOfMeasure Ver.: always - * @param currency Ver.: always - * @param priceTrailingDigitAndPriceTier Ver.: always - * @param numberOfPriceTiersAndRegisterTier Ver.: always - * @param startTime Ver.: always - * @param durationInMinutes Ver.: always - * @param price Ver.: always - * @param priceRatio Ver.: always - * @param generationPrice Ver.: always - * @param generationPriceRatio Ver.: always - * @param alternateCostDelivered Ver.: since se-1.0-07-5356-15 - * @param alternateCostUnit Ver.: since se-1.0-07-5356-15 - * @param alternateCostTrailingDigit Ver.: since se-1.0-07-5356-15 - * @param numberOfBlockThresholds Ver.: since se-1.1-07-5356-16 - * @param priceControl Ver.: since se-1.1-07-5356-16 - * @param numberOfGenerationTiers Ver.: since se-1.2a-07-5356-19 - * @param generationTier Ver.: since se-1.2a-07-5356-19 - * @param extendedNumberOfPriceTiers Ver.: since se-1.2a-07-5356-19 - * @param extendedPriceTier Ver.: since se-1.2a-07-5356-19 - * @param extendedRegisterTier Ver.: since se-1.2a-07-5356-19 - */ -bool emberAfPriceClusterPublishPriceCallback( - uint32_t providerId, uint8_t * rateLabel, uint32_t issuerEventId, uint32_t currentTime, uint8_t unitOfMeasure, - uint16_t currency, uint8_t priceTrailingDigitAndPriceTier, uint8_t numberOfPriceTiersAndRegisterTier, uint32_t startTime, - uint16_t durationInMinutes, uint32_t price, uint8_t priceRatio, uint32_t generationPrice, uint8_t generationPriceRatio, - uint32_t alternateCostDelivered, uint8_t alternateCostUnit, uint8_t alternateCostTrailingDigit, uint8_t numberOfBlockThresholds, - uint8_t priceControl, uint8_t numberOfGenerationTiers, uint8_t generationTier, uint8_t extendedNumberOfPriceTiers, - uint8_t extendedPriceTier, uint8_t extendedRegisterTier); -/** @brief Price Cluster Publish Price Matrix - * - * - * - * @param providerId Ver.: always - * @param issuerEventId Ver.: always - * @param startTime Ver.: always - * @param issuerTariffId Ver.: always - * @param commandIndex Ver.: always - * @param numberOfCommands Ver.: always - * @param subPayloadControl Ver.: always - * @param payload Ver.: always - */ -bool emberAfPriceClusterPublishPriceMatrixCallback(uint32_t providerId, uint32_t issuerEventId, uint32_t startTime, - uint32_t issuerTariffId, uint8_t commandIndex, uint8_t numberOfCommands, - uint8_t subPayloadControl, uint8_t * payload); -/** @brief Price Cluster Publish Tariff Information - * - * - * - * @param providerId Ver.: always - * @param issuerEventId Ver.: always - * @param issuerTariffId Ver.: always - * @param startTime Ver.: always - * @param tariffTypeChargingScheme Ver.: always - * @param tariffLabel Ver.: always - * @param numberOfPriceTiersInUse Ver.: always - * @param numberOfBlockThresholdsInUse Ver.: always - * @param unitOfMeasure Ver.: always - * @param currency Ver.: always - * @param priceTrailingDigit Ver.: always - * @param standingCharge Ver.: always - * @param tierBlockMode Ver.: always - * @param blockThresholdMultiplier Ver.: always - * @param blockThresholdDivisor Ver.: always - */ -bool emberAfPriceClusterPublishTariffInformationCallback(uint32_t providerId, uint32_t issuerEventId, uint32_t issuerTariffId, - uint32_t startTime, uint8_t tariffTypeChargingScheme, - uint8_t * tariffLabel, uint8_t numberOfPriceTiersInUse, - uint8_t numberOfBlockThresholdsInUse, uint8_t unitOfMeasure, - uint16_t currency, uint8_t priceTrailingDigit, uint32_t standingCharge, - uint8_t tierBlockMode, uint32_t blockThresholdMultiplier, - uint32_t blockThresholdDivisor); -/** @brief Price Cluster Publish Tier Labels - * - * - * - * @param providerId Ver.: always - * @param issuerEventId Ver.: always - * @param issuerTariffId Ver.: always - * @param commandIndex Ver.: always - * @param numberOfCommands Ver.: always - * @param numberOfLabels Ver.: always - * @param tierLabelsPayload Ver.: always - */ -bool emberAfPriceClusterPublishTierLabelsCallback(uint32_t providerId, uint32_t issuerEventId, uint32_t issuerTariffId, - uint8_t commandIndex, uint8_t numberOfCommands, uint8_t numberOfLabels, - uint8_t * tierLabelsPayload); -/** @brief Price Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfPriceClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Price Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfPriceClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Price Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfPriceClusterServerInitCallback(uint8_t endpoint); -/** @brief Price Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfPriceClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Price Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfPriceClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, EmberStatus status); -/** @brief Price Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfPriceClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Price Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfPriceClusterServerTickCallback(uint8_t endpoint); - -/** @} END Price Cluster Callbacks */ - -/** @name Demand Response and Load Control Cluster Callbacks */ -// @{ - -/** @brief Demand Response and Load Control Cluster Cancel All Load Control Events - * - * - * - * @param cancelControl Ver.: always - */ -bool emberAfDemandResponseLoadControlClusterCancelAllLoadControlEventsCallback(uint8_t cancelControl); -/** @brief Demand Response and Load Control Cluster Cancel Load Control Event - * - * - * - * @param issuerEventId Ver.: always - * @param deviceClass Ver.: always - * @param utilityEnrollmentGroup Ver.: always - * @param cancelControl Ver.: always - * @param effectiveTime Ver.: always - */ -bool emberAfDemandResponseLoadControlClusterCancelLoadControlEventCallback(uint32_t issuerEventId, uint16_t deviceClass, - uint8_t utilityEnrollmentGroup, uint8_t cancelControl, - uint32_t effectiveTime); -/** @brief Demand Response and Load Control Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfDemandResponseLoadControlClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Demand Response and Load Control Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfDemandResponseLoadControlClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Demand Response and Load Control Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfDemandResponseLoadControlClusterClientInitCallback(uint8_t endpoint); -/** @brief Demand Response and Load Control Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfDemandResponseLoadControlClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Demand Response and Load Control Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfDemandResponseLoadControlClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Demand Response and Load Control Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfDemandResponseLoadControlClusterClientPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Demand Response and Load Control Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfDemandResponseLoadControlClusterClientTickCallback(uint8_t endpoint); -/** @brief Demand Response and Load Control Cluster Get Scheduled Events - * - * - * - * @param startTime Ver.: always - * @param numberOfEvents Ver.: always - * @param issuerEventId Ver.: since se-1.2b-15-0131-02 - */ -bool emberAfDemandResponseLoadControlClusterGetScheduledEventsCallback(uint32_t startTime, uint8_t numberOfEvents, - uint32_t issuerEventId); -/** @brief Demand Response and Load Control Cluster Load Control Event - * - * - * - * @param issuerEventId Ver.: always - * @param deviceClass Ver.: always - * @param utilityEnrollmentGroup Ver.: always - * @param startTime Ver.: always - * @param durationInMinutes Ver.: always - * @param criticalityLevel Ver.: always - * @param coolingTemperatureOffset Ver.: always - * @param heatingTemperatureOffset Ver.: always - * @param coolingTemperatureSetPoint Ver.: always - * @param heatingTemperatureSetPoint Ver.: always - * @param averageLoadAdjustmentPercentage Ver.: always - * @param dutyCycle Ver.: always - * @param eventControl Ver.: always - */ -bool emberAfDemandResponseLoadControlClusterLoadControlEventCallback( - uint32_t issuerEventId, uint16_t deviceClass, uint8_t utilityEnrollmentGroup, uint32_t startTime, uint16_t durationInMinutes, - uint8_t criticalityLevel, uint8_t coolingTemperatureOffset, uint8_t heatingTemperatureOffset, - int16_t coolingTemperatureSetPoint, int16_t heatingTemperatureSetPoint, int8_t averageLoadAdjustmentPercentage, - uint8_t dutyCycle, uint8_t eventControl); -/** @brief Demand Response and Load Control Cluster Report Event Status - * - * - * - * @param issuerEventId Ver.: always - * @param eventStatus Ver.: always - * @param eventStatusTime Ver.: always - * @param criticalityLevelApplied Ver.: always - * @param coolingTemperatureSetPointApplied Ver.: always - * @param heatingTemperatureSetPointApplied Ver.: always - * @param averageLoadAdjustmentPercentageApplied Ver.: always - * @param dutyCycleApplied Ver.: always - * @param eventControl Ver.: always - * @param signatureType Ver.: always - * @param signature Ver.: always - */ -bool emberAfDemandResponseLoadControlClusterReportEventStatusCallback(uint32_t issuerEventId, uint8_t eventStatus, - uint32_t eventStatusTime, uint8_t criticalityLevelApplied, - uint16_t coolingTemperatureSetPointApplied, - uint16_t heatingTemperatureSetPointApplied, - int8_t averageLoadAdjustmentPercentageApplied, - uint8_t dutyCycleApplied, uint8_t eventControl, - uint8_t signatureType, uint8_t * signature); -/** @brief Demand Response and Load Control Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfDemandResponseLoadControlClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Demand Response and Load Control Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfDemandResponseLoadControlClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Demand Response and Load Control Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfDemandResponseLoadControlClusterServerInitCallback(uint8_t endpoint); -/** @brief Demand Response and Load Control Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfDemandResponseLoadControlClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Demand Response and Load Control Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfDemandResponseLoadControlClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Demand Response and Load Control Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfDemandResponseLoadControlClusterServerPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Demand Response and Load Control Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfDemandResponseLoadControlClusterServerTickCallback(uint8_t endpoint); - -/** @} END Demand Response and Load Control Cluster Callbacks */ - -/** @name Simple Metering Cluster Callbacks */ -// @{ - -/** @brief Simple Metering Cluster Change Supply - * - * - * - * @param providerId Ver.: always - * @param issuerEventId Ver.: always - * @param requestDateTime Ver.: always - * @param implementationDateTime Ver.: always - * @param proposedSupplyStatus Ver.: always - * @param supplyControlBits Ver.: always - */ -bool emberAfSimpleMeteringClusterChangeSupplyCallback(uint32_t providerId, uint32_t issuerEventId, uint32_t requestDateTime, - uint32_t implementationDateTime, uint8_t proposedSupplyStatus, - uint8_t supplyControlBits); -/** @brief Simple Metering Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfSimpleMeteringClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Simple Metering Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfSimpleMeteringClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Simple Metering Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfSimpleMeteringClusterClientInitCallback(uint8_t endpoint); -/** @brief Simple Metering Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfSimpleMeteringClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Simple Metering Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfSimpleMeteringClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Simple Metering Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfSimpleMeteringClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Simple Metering Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfSimpleMeteringClusterClientTickCallback(uint8_t endpoint); -/** @brief Simple Metering Cluster Configure Mirror - * - * - * - * @param issuerEventId Ver.: always - * @param reportingInterval Ver.: always - * @param mirrorNotificationReporting Ver.: always - * @param notificationScheme Ver.: always - */ -bool emberAfSimpleMeteringClusterConfigureMirrorCallback(uint32_t issuerEventId, uint32_t reportingInterval, - uint8_t mirrorNotificationReporting, uint8_t notificationScheme); -/** @brief Simple Metering Cluster Configure Notification Flags - * - * - * - * @param issuerEventId Ver.: always - * @param notificationScheme Ver.: always - * @param notificationFlagAttributeId Ver.: always - * @param clusterId Ver.: always - * @param manufacturerCode Ver.: always - * @param numberOfCommands Ver.: always - * @param commandIds Ver.: always - */ -bool emberAfSimpleMeteringClusterConfigureNotificationFlagsCallback(uint32_t issuerEventId, uint8_t notificationScheme, - uint16_t notificationFlagAttributeId, uint16_t clusterId, - uint16_t manufacturerCode, uint8_t numberOfCommands, - uint8_t * commandIds); -/** @brief Simple Metering Cluster Configure Notification Scheme - * - * - * - * @param issuerEventId Ver.: always - * @param notificationScheme Ver.: always - * @param notificationFlagOrder Ver.: always - */ -bool emberAfSimpleMeteringClusterConfigureNotificationSchemeCallback(uint32_t issuerEventId, uint8_t notificationScheme, - uint32_t notificationFlagOrder); -/** @brief Simple Metering Cluster Get Notified Message - * - * - * - * @param notificationScheme Ver.: always - * @param notificationFlagAttributeId Ver.: always - * @param notificationFlagsN Ver.: always - */ -bool emberAfSimpleMeteringClusterGetNotifiedMessageCallback(uint8_t notificationScheme, uint16_t notificationFlagAttributeId, - uint32_t notificationFlagsN); -/** @brief Simple Metering Cluster Get Profile - * - * - * - * @param intervalChannel Ver.: always - * @param endTime Ver.: always - * @param numberOfPeriods Ver.: always - */ -bool emberAfSimpleMeteringClusterGetProfileCallback(uint8_t intervalChannel, uint32_t endTime, uint8_t numberOfPeriods); -/** @brief Simple Metering Cluster Get Profile Response - * - * - * - * @param endTime Ver.: always - * @param status Ver.: always - * @param profileIntervalPeriod Ver.: always - * @param numberOfPeriodsDelivered Ver.: always - * @param intervals Ver.: always - */ -bool emberAfSimpleMeteringClusterGetProfileResponseCallback(uint32_t endTime, uint8_t status, uint8_t profileIntervalPeriod, - uint8_t numberOfPeriodsDelivered, uint8_t * intervals); -/** @brief Simple Metering Cluster Get Sampled Data - * - * - * - * @param sampleId Ver.: always - * @param earliestSampleTime Ver.: always - * @param sampleType Ver.: always - * @param numberOfSamples Ver.: always - */ -bool emberAfSimpleMeteringClusterGetSampledDataCallback(uint16_t sampleId, uint32_t earliestSampleTime, uint8_t sampleType, - uint16_t numberOfSamples); -/** @brief Simple Metering Cluster Get Sampled Data Response - * - * - * - * @param sampleId Ver.: always - * @param sampleStartTime Ver.: always - * @param sampleType Ver.: always - * @param sampleRequestInterval Ver.: always - * @param numberOfSamples Ver.: always - * @param samples Ver.: always - */ -bool emberAfSimpleMeteringClusterGetSampledDataResponseCallback(uint16_t sampleId, uint32_t sampleStartTime, uint8_t sampleType, - uint16_t sampleRequestInterval, uint16_t numberOfSamples, - uint8_t * samples); -/** @brief Simple Metering Cluster Get Snapshot - * - * - * - * @param earliestStartTime Ver.: always - * @param latestEndTime Ver.: always - * @param snapshotOffset Ver.: always - * @param snapshotCause Ver.: always - */ -bool emberAfSimpleMeteringClusterGetSnapshotCallback(uint32_t earliestStartTime, uint32_t latestEndTime, uint8_t snapshotOffset, - uint32_t snapshotCause); -/** @brief Simple Metering Cluster Local Change Supply - * - * - * - * @param proposedSupplyStatus Ver.: always - */ -bool emberAfSimpleMeteringClusterLocalChangeSupplyCallback(uint8_t proposedSupplyStatus); -/** @brief Simple Metering Cluster Mirror Removed - * - * - * - * @param endpointId Ver.: always - */ -bool emberAfSimpleMeteringClusterMirrorRemovedCallback(uint16_t endpointId); -/** @brief Simple Metering Cluster Mirror Report Attribute Response - * - * - * - * @param notificationScheme Ver.: always - * @param notificationFlags Ver.: always - */ -bool emberAfSimpleMeteringClusterMirrorReportAttributeResponseCallback(uint8_t notificationScheme, uint8_t * notificationFlags); -/** @brief Simple Metering Cluster Publish Snapshot - * - * - * - * @param snapshotId Ver.: always - * @param snapshotTime Ver.: always - * @param totalSnapshotsFound Ver.: always - * @param commandIndex Ver.: always - * @param totalCommands Ver.: always - * @param snapshotCause Ver.: always - * @param snapshotPayloadType Ver.: always - * @param snapshotPayload Ver.: always - */ -bool emberAfSimpleMeteringClusterPublishSnapshotCallback(uint32_t snapshotId, uint32_t snapshotTime, uint8_t totalSnapshotsFound, - uint8_t commandIndex, uint8_t totalCommands, uint32_t snapshotCause, - uint8_t snapshotPayloadType, uint8_t * snapshotPayload); -/** @brief Simple Metering Cluster Remove Mirror - * - * - * - */ -bool emberAfSimpleMeteringClusterRemoveMirrorCallback(void); -/** @brief Simple Metering Cluster Request Fast Poll Mode - * - * - * - * @param fastPollUpdatePeriod Ver.: always - * @param duration Ver.: always - */ -bool emberAfSimpleMeteringClusterRequestFastPollModeCallback(uint8_t fastPollUpdatePeriod, uint8_t duration); -/** @brief Simple Metering Cluster Request Fast Poll Mode Response - * - * - * - * @param appliedUpdatePeriod Ver.: always - * @param fastPollModeEndtime Ver.: always - */ -bool emberAfSimpleMeteringClusterRequestFastPollModeResponseCallback(uint8_t appliedUpdatePeriod, uint32_t fastPollModeEndtime); -/** @brief Simple Metering Cluster Request Mirror - * - * - * - */ -bool emberAfSimpleMeteringClusterRequestMirrorCallback(void); -/** @brief Simple Metering Cluster Request Mirror Response - * - * - * - * @param endpointId Ver.: always - */ -bool emberAfSimpleMeteringClusterRequestMirrorResponseCallback(uint16_t endpointId); -/** @brief Simple Metering Cluster Reset Load Limit Counter - * - * - * - * @param providerId Ver.: always - * @param issuerEventId Ver.: always - */ -bool emberAfSimpleMeteringClusterResetLoadLimitCounterCallback(uint32_t providerId, uint32_t issuerEventId); -/** @brief Simple Metering Cluster Schedule Snapshot - * - * - * - * @param issuerEventId Ver.: always - * @param commandIndex Ver.: always - * @param commandCount Ver.: always - * @param snapshotSchedulePayload Ver.: always - */ -bool emberAfSimpleMeteringClusterScheduleSnapshotCallback(uint32_t issuerEventId, uint8_t commandIndex, uint8_t commandCount, - uint8_t * snapshotSchedulePayload); -/** @brief Simple Metering Cluster Schedule Snapshot Response - * - * - * - * @param issuerEventId Ver.: always - * @param snapshotResponsePayload Ver.: always - */ -bool emberAfSimpleMeteringClusterScheduleSnapshotResponseCallback(uint32_t issuerEventId, uint8_t * snapshotResponsePayload); -/** @brief Simple Metering Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfSimpleMeteringClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Simple Metering Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfSimpleMeteringClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Simple Metering Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfSimpleMeteringClusterServerInitCallback(uint8_t endpoint); -/** @brief Simple Metering Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfSimpleMeteringClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Simple Metering Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfSimpleMeteringClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Simple Metering Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfSimpleMeteringClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Simple Metering Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfSimpleMeteringClusterServerTickCallback(uint8_t endpoint); -/** @brief Simple Metering Cluster Set Supply Status - * - * - * - * @param issuerEventId Ver.: always - * @param supplyTamperState Ver.: always - * @param supplyDepletionState Ver.: always - * @param supplyUncontrolledFlowState Ver.: always - * @param loadLimitSupplyState Ver.: always - */ -bool emberAfSimpleMeteringClusterSetSupplyStatusCallback(uint32_t issuerEventId, uint8_t supplyTamperState, - uint8_t supplyDepletionState, uint8_t supplyUncontrolledFlowState, - uint8_t loadLimitSupplyState); -/** @brief Simple Metering Cluster Set Uncontrolled Flow Threshold - * - * - * - * @param providerId Ver.: always - * @param issuerEventId Ver.: always - * @param uncontrolledFlowThreshold Ver.: always - * @param unitOfMeasure Ver.: always - * @param multiplier Ver.: always - * @param divisor Ver.: always - * @param stabilisationPeriod Ver.: always - * @param measurementPeriod Ver.: always - */ -bool emberAfSimpleMeteringClusterSetUncontrolledFlowThresholdCallback(uint32_t providerId, uint32_t issuerEventId, - uint16_t uncontrolledFlowThreshold, uint8_t unitOfMeasure, - uint16_t multiplier, uint16_t divisor, - uint8_t stabilisationPeriod, uint16_t measurementPeriod); -/** @brief Simple Metering Cluster Start Sampling - * - * - * - * @param issuerEventId Ver.: always - * @param startSamplingTime Ver.: always - * @param sampleType Ver.: always - * @param sampleRequestInterval Ver.: always - * @param maxNumberOfSamples Ver.: always - */ -bool emberAfSimpleMeteringClusterStartSamplingCallback(uint32_t issuerEventId, uint32_t startSamplingTime, uint8_t sampleType, - uint16_t sampleRequestInterval, uint16_t maxNumberOfSamples); -/** @brief Simple Metering Cluster Start Sampling Response - * - * - * - * @param sampleId Ver.: always - */ -bool emberAfSimpleMeteringClusterStartSamplingResponseCallback(uint16_t sampleId); -/** @brief Simple Metering Cluster Supply Status Response - * - * - * - * @param providerId Ver.: always - * @param issuerEventId Ver.: always - * @param implementationDateTime Ver.: always - * @param supplyStatus Ver.: always - */ -bool emberAfSimpleMeteringClusterSupplyStatusResponseCallback(uint32_t providerId, uint32_t issuerEventId, - uint32_t implementationDateTime, uint8_t supplyStatus); -/** @brief Simple Metering Cluster Take Snapshot - * - * - * - * @param snapshotCause Ver.: always - */ -bool emberAfSimpleMeteringClusterTakeSnapshotCallback(uint32_t snapshotCause); -/** @brief Simple Metering Cluster Take Snapshot Response - * - * - * - * @param snapshotId Ver.: always - * @param snapshotConfirmation Ver.: always - */ -bool emberAfSimpleMeteringClusterTakeSnapshotResponseCallback(uint32_t snapshotId, uint8_t snapshotConfirmation); - -/** @} END Simple Metering Cluster Callbacks */ - -/** @name Messaging Cluster Callbacks */ -// @{ - -/** @brief Messaging Cluster Cancel All Messages - * - * - * - * @param implementationDateTime Ver.: always - */ -bool emberAfMessagingClusterCancelAllMessagesCallback(uint32_t implementationDateTime); -/** @brief Messaging Cluster Cancel Message - * - * - * - * @param messageId Ver.: always - * @param messageControl Ver.: always - */ -bool emberAfMessagingClusterCancelMessageCallback(uint32_t messageId, uint8_t messageControl); -/** @brief Messaging Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfMessagingClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Messaging Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfMessagingClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Messaging Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfMessagingClusterClientInitCallback(uint8_t endpoint); -/** @brief Messaging Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfMessagingClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Messaging Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfMessagingClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Messaging Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfMessagingClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Messaging Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfMessagingClusterClientTickCallback(uint8_t endpoint); -/** @brief Messaging Cluster Display Message - * - * - * - * @param messageId Ver.: always - * @param messageControl Ver.: always - * @param startTime Ver.: always - * @param durationInMinutes Ver.: always - * @param message Ver.: always - * @param optionalExtendedMessageControl Ver.: since se-1.2a-07-5356-19 - */ -bool emberAfMessagingClusterDisplayMessageCallback(uint32_t messageId, uint8_t messageControl, uint32_t startTime, - uint16_t durationInMinutes, uint8_t * message, - uint8_t optionalExtendedMessageControl); -/** @brief Messaging Cluster Display Protected Message - * - * - * - * @param messageId Ver.: always - * @param messageControl Ver.: always - * @param startTime Ver.: always - * @param durationInMinutes Ver.: always - * @param message Ver.: always - * @param optionalExtendedMessageControl Ver.: always - */ -bool emberAfMessagingClusterDisplayProtectedMessageCallback(uint32_t messageId, uint8_t messageControl, uint32_t startTime, - uint16_t durationInMinutes, uint8_t * message, - uint8_t optionalExtendedMessageControl); -/** @brief Messaging Cluster Get Last Message - * - * - * - */ -bool emberAfMessagingClusterGetLastMessageCallback(void); -/** @brief Messaging Cluster Get Message Cancellation - * - * - * - * @param earliestImplementationTime Ver.: always - */ -bool emberAfMessagingClusterGetMessageCancellationCallback(uint32_t earliestImplementationTime); -/** @brief Messaging Cluster Message Confirmation - * - * - * - * @param messageId Ver.: always - * @param confirmationTime Ver.: always - * @param messageConfirmationControl Ver.: since se-1.2a-07-5356-19 - * @param messageResponse Ver.: since se-1.2a-07-5356-19 - */ -bool emberAfMessagingClusterMessageConfirmationCallback(uint32_t messageId, uint32_t confirmationTime, - uint8_t messageConfirmationControl, uint8_t * messageResponse); -/** @brief Messaging Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfMessagingClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Messaging Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfMessagingClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Messaging Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfMessagingClusterServerInitCallback(uint8_t endpoint); -/** @brief Messaging Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfMessagingClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Messaging Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfMessagingClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Messaging Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfMessagingClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Messaging Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfMessagingClusterServerTickCallback(uint8_t endpoint); - -/** @} END Messaging Cluster Callbacks */ - -/** @name Tunneling Cluster Callbacks */ -// @{ - -/** @brief Tunneling Cluster Ack Transfer Data Client To Server - * - * - * - * @param tunnelId Ver.: always - * @param numberOfBytesLeft Ver.: always - */ -bool emberAfTunnelingClusterAckTransferDataClientToServerCallback(uint16_t tunnelId, uint16_t numberOfBytesLeft); -/** @brief Tunneling Cluster Ack Transfer Data Server To Client - * - * - * - * @param tunnelId Ver.: always - * @param numberOfBytesLeft Ver.: always - */ -bool emberAfTunnelingClusterAckTransferDataServerToClientCallback(uint16_t tunnelId, uint16_t numberOfBytesLeft); -/** @brief Tunneling Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfTunnelingClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Tunneling Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfTunnelingClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Tunneling Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfTunnelingClusterClientInitCallback(uint8_t endpoint); -/** @brief Tunneling Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfTunnelingClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Tunneling Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfTunnelingClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Tunneling Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfTunnelingClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Tunneling Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfTunnelingClusterClientTickCallback(uint8_t endpoint); -/** @brief Tunneling Cluster Close Tunnel - * - * - * - * @param tunnelId Ver.: always - */ -bool emberAfTunnelingClusterCloseTunnelCallback(uint16_t tunnelId); -/** @brief Tunneling Cluster Get Supported Tunnel Protocols - * - * - * - * @param protocolOffset Ver.: always - */ -bool emberAfTunnelingClusterGetSupportedTunnelProtocolsCallback(uint8_t protocolOffset); -/** @brief Tunneling Cluster Ready Data Client To Server - * - * - * - * @param tunnelId Ver.: always - * @param numberOfOctetsLeft Ver.: always - */ -bool emberAfTunnelingClusterReadyDataClientToServerCallback(uint16_t tunnelId, uint16_t numberOfOctetsLeft); -/** @brief Tunneling Cluster Ready Data Server To Client - * - * - * - * @param tunnelId Ver.: always - * @param numberOfOctetsLeft Ver.: always - */ -bool emberAfTunnelingClusterReadyDataServerToClientCallback(uint16_t tunnelId, uint16_t numberOfOctetsLeft); -/** @brief Tunneling Cluster Request Tunnel - * - * - * - * @param protocolId Ver.: always - * @param manufacturerCode Ver.: always - * @param flowControlSupport Ver.: always - * @param maximumIncomingTransferSize Ver.: since se-1.1a-07-5356-17 - */ -bool emberAfTunnelingClusterRequestTunnelCallback(uint8_t protocolId, uint16_t manufacturerCode, uint8_t flowControlSupport, - uint16_t maximumIncomingTransferSize); -/** @brief Tunneling Cluster Request Tunnel Response - * - * - * - * @param tunnelId Ver.: always - * @param tunnelStatus Ver.: always - * @param maximumIncomingTransferSize Ver.: since se-1.1a-07-5356-17 - */ -bool emberAfTunnelingClusterRequestTunnelResponseCallback(uint16_t tunnelId, uint8_t tunnelStatus, - uint16_t maximumIncomingTransferSize); -/** @brief Tunneling Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfTunnelingClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Tunneling Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfTunnelingClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Tunneling Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfTunnelingClusterServerInitCallback(uint8_t endpoint); -/** @brief Tunneling Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfTunnelingClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Tunneling Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfTunnelingClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Tunneling Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfTunnelingClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Tunneling Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfTunnelingClusterServerTickCallback(uint8_t endpoint); -/** @brief Tunneling Cluster Supported Tunnel Protocols Response - * - * - * - * @param protocolListComplete Ver.: always - * @param protocolCount Ver.: always - * @param protocolList Ver.: always - */ -bool emberAfTunnelingClusterSupportedTunnelProtocolsResponseCallback(uint8_t protocolListComplete, uint8_t protocolCount, - uint8_t * protocolList); -/** @brief Tunneling Cluster Transfer Data Client To Server - * - * - * - * @param tunnelId Ver.: always - * @param data Ver.: always - */ -bool emberAfTunnelingClusterTransferDataClientToServerCallback(uint16_t tunnelId, uint8_t * data); -/** @brief Tunneling Cluster Transfer Data Error Client To Server - * - * - * - * @param tunnelId Ver.: always - * @param transferDataStatus Ver.: always - */ -bool emberAfTunnelingClusterTransferDataErrorClientToServerCallback(uint16_t tunnelId, uint8_t transferDataStatus); -/** @brief Tunneling Cluster Transfer Data Error Server To Client - * - * - * - * @param tunnelId Ver.: always - * @param transferDataStatus Ver.: always - */ -bool emberAfTunnelingClusterTransferDataErrorServerToClientCallback(uint16_t tunnelId, uint8_t transferDataStatus); -/** @brief Tunneling Cluster Transfer Data Server To Client - * - * - * - * @param tunnelId Ver.: always - * @param data Ver.: always - */ -bool emberAfTunnelingClusterTransferDataServerToClientCallback(uint16_t tunnelId, uint8_t * data); -/** @brief Tunneling Cluster Tunnel Closure Notification - * - * - * - * @param tunnelId Ver.: always - */ -bool emberAfTunnelingClusterTunnelClosureNotificationCallback(uint16_t tunnelId); - -/** @} END Tunneling Cluster Callbacks */ - -/** @name Prepayment Cluster Callbacks */ -// @{ - -/** @brief Prepayment Cluster Change Debt - * - * - * - * @param issuerEventId Ver.: always - * @param debtLabel Ver.: always - * @param debtAmount Ver.: always - * @param debtRecoveryMethod Ver.: always - * @param debtAmountType Ver.: always - * @param debtRecoveryStartTime Ver.: always - * @param debtRecoveryCollectionTime Ver.: always - * @param debtRecoveryFrequency Ver.: always - * @param debtRecoveryAmount Ver.: always - * @param debtRecoveryBalancePercentage Ver.: always - */ -bool emberAfPrepaymentClusterChangeDebtCallback(uint32_t issuerEventId, uint8_t * debtLabel, uint32_t debtAmount, - uint8_t debtRecoveryMethod, uint8_t debtAmountType, uint32_t debtRecoveryStartTime, - uint16_t debtRecoveryCollectionTime, uint8_t debtRecoveryFrequency, - uint32_t debtRecoveryAmount, uint16_t debtRecoveryBalancePercentage); -/** @brief Prepayment Cluster Change Payment Mode - * - * - * - * @param providerId Ver.: always - * @param issuerEventId Ver.: always - * @param implementationDateTime Ver.: always - * @param proposedPaymentControlConfiguration Ver.: always - * @param cutOffValue Ver.: always - */ -bool emberAfPrepaymentClusterChangePaymentModeCallback(uint32_t providerId, uint32_t issuerEventId, uint32_t implementationDateTime, - uint16_t proposedPaymentControlConfiguration, uint32_t cutOffValue); -/** @brief Prepayment Cluster Change Payment Mode Response - * - * - * - * @param friendlyCredit Ver.: always - * @param friendlyCreditCalendarId Ver.: always - * @param emergencyCreditLimit Ver.: always - * @param emergencyCreditThreshold Ver.: always - */ -bool emberAfPrepaymentClusterChangePaymentModeResponseCallback(uint8_t friendlyCredit, uint32_t friendlyCreditCalendarId, - uint32_t emergencyCreditLimit, uint32_t emergencyCreditThreshold); -/** @brief Prepayment Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfPrepaymentClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Prepayment Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfPrepaymentClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Prepayment Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfPrepaymentClusterClientInitCallback(uint8_t endpoint); -/** @brief Prepayment Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfPrepaymentClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Prepayment Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfPrepaymentClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Prepayment Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfPrepaymentClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Prepayment Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfPrepaymentClusterClientTickCallback(uint8_t endpoint); -/** @brief Prepayment Cluster Consumer Top Up - * - * - * - * @param originatingDevice Ver.: always - * @param topUpCode Ver.: always - */ -bool emberAfPrepaymentClusterConsumerTopUpCallback(uint8_t originatingDevice, uint8_t * topUpCode); -/** @brief Prepayment Cluster Consumer Top Up Response - * - * - * - * @param resultType Ver.: always - * @param topUpValue Ver.: always - * @param sourceOfTopUp Ver.: always - * @param creditRemaining Ver.: always - */ -bool emberAfPrepaymentClusterConsumerTopUpResponseCallback(uint8_t resultType, uint32_t topUpValue, uint8_t sourceOfTopUp, - uint32_t creditRemaining); -/** @brief Prepayment Cluster Credit Adjustment - * - * - * - * @param issuerEventId Ver.: always - * @param startTime Ver.: always - * @param creditAdjustmentType Ver.: always - * @param creditAdjustmentValue Ver.: always - */ -bool emberAfPrepaymentClusterCreditAdjustmentCallback(uint32_t issuerEventId, uint32_t startTime, uint8_t creditAdjustmentType, - uint32_t creditAdjustmentValue); -/** @brief Prepayment Cluster Emergency Credit Setup - * - * - * - * @param issuerEventId Ver.: always - * @param startTime Ver.: always - * @param emergencyCreditLimit Ver.: always - * @param emergencyCreditThreshold Ver.: always - */ -bool emberAfPrepaymentClusterEmergencyCreditSetupCallback(uint32_t issuerEventId, uint32_t startTime, uint32_t emergencyCreditLimit, - uint32_t emergencyCreditThreshold); -/** @brief Prepayment Cluster Get Debt Repayment Log - * - * - * - * @param latestEndTime Ver.: always - * @param numberOfDebts Ver.: always - * @param debtType Ver.: always - */ -bool emberAfPrepaymentClusterGetDebtRepaymentLogCallback(uint32_t latestEndTime, uint8_t numberOfDebts, uint8_t debtType); -/** @brief Prepayment Cluster Get Prepay Snapshot - * - * - * - * @param earliestStartTime Ver.: always - * @param latestEndTime Ver.: always - * @param snapshotOffset Ver.: always - * @param snapshotCause Ver.: always - */ -bool emberAfPrepaymentClusterGetPrepaySnapshotCallback(uint32_t earliestStartTime, uint32_t latestEndTime, uint8_t snapshotOffset, - uint32_t snapshotCause); -/** @brief Prepayment Cluster Get Top Up Log - * - * - * - * @param latestEndTime Ver.: always - * @param numberOfRecords Ver.: always - */ -bool emberAfPrepaymentClusterGetTopUpLogCallback(uint32_t latestEndTime, uint8_t numberOfRecords); -/** @brief Prepayment Cluster Publish Debt Log - * - * - * - * @param commandIndex Ver.: always - * @param totalNumberOfCommands Ver.: always - * @param debtPayload Ver.: always - */ -bool emberAfPrepaymentClusterPublishDebtLogCallback(uint8_t commandIndex, uint8_t totalNumberOfCommands, uint8_t * debtPayload); -/** @brief Prepayment Cluster Publish Prepay Snapshot - * - * - * - * @param snapshotId Ver.: always - * @param snapshotTime Ver.: always - * @param totalSnapshotsFound Ver.: always - * @param commandIndex Ver.: always - * @param totalNumberOfCommands Ver.: always - * @param snapshotCause Ver.: always - * @param snapshotPayloadType Ver.: always - * @param snapshotPayload Ver.: always - */ -bool emberAfPrepaymentClusterPublishPrepaySnapshotCallback(uint32_t snapshotId, uint32_t snapshotTime, uint8_t totalSnapshotsFound, - uint8_t commandIndex, uint8_t totalNumberOfCommands, - uint32_t snapshotCause, uint8_t snapshotPayloadType, - uint8_t * snapshotPayload); -/** @brief Prepayment Cluster Publish Top Up Log - * - * - * - * @param commandIndex Ver.: always - * @param totalNumberOfCommands Ver.: always - * @param topUpPayload Ver.: always - */ -bool emberAfPrepaymentClusterPublishTopUpLogCallback(uint8_t commandIndex, uint8_t totalNumberOfCommands, uint8_t * topUpPayload); -/** @brief Prepayment Cluster Select Available Emergency Credit - * - * - * - * @param commandIssueDateTime Ver.: always - * @param originatingDevice Ver.: always - */ -bool emberAfPrepaymentClusterSelectAvailableEmergencyCreditCallback(uint32_t commandIssueDateTime, uint8_t originatingDevice); -/** @brief Prepayment Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfPrepaymentClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Prepayment Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfPrepaymentClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Prepayment Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfPrepaymentClusterServerInitCallback(uint8_t endpoint); -/** @brief Prepayment Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfPrepaymentClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Prepayment Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfPrepaymentClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Prepayment Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfPrepaymentClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Prepayment Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfPrepaymentClusterServerTickCallback(uint8_t endpoint); -/** @brief Prepayment Cluster Set Low Credit Warning Level - * - * - * - * @param lowCreditWarningLevel Ver.: always - */ -bool emberAfPrepaymentClusterSetLowCreditWarningLevelCallback(uint32_t lowCreditWarningLevel); -/** @brief Prepayment Cluster Set Maximum Credit Limit - * - * - * - * @param providerId Ver.: always - * @param issuerEventId Ver.: always - * @param implementationDateTime Ver.: always - * @param maximumCreditLevel Ver.: always - * @param maximumCreditPerTopUp Ver.: always - */ -bool emberAfPrepaymentClusterSetMaximumCreditLimitCallback(uint32_t providerId, uint32_t issuerEventId, - uint32_t implementationDateTime, uint32_t maximumCreditLevel, - uint32_t maximumCreditPerTopUp); -/** @brief Prepayment Cluster Set Overall Debt Cap - * - * - * - * @param providerId Ver.: always - * @param issuerEventId Ver.: always - * @param implementationDateTime Ver.: always - * @param overallDebtCap Ver.: always - */ -bool emberAfPrepaymentClusterSetOverallDebtCapCallback(uint32_t providerId, uint32_t issuerEventId, uint32_t implementationDateTime, - uint32_t overallDebtCap); - -/** @} END Prepayment Cluster Callbacks */ - -/** @name Energy Management Cluster Callbacks */ -// @{ - -/** @brief Energy Management Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfEnergyManagementClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Energy Management Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfEnergyManagementClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Energy Management Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfEnergyManagementClusterClientInitCallback(uint8_t endpoint); -/** @brief Energy Management Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfEnergyManagementClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Energy Management Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfEnergyManagementClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Energy Management Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfEnergyManagementClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Energy Management Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfEnergyManagementClusterClientTickCallback(uint8_t endpoint); -/** @brief Energy Management Cluster Manage Event - * - * - * - * @param issuerEventId Ver.: always - * @param deviceClass Ver.: always - * @param utilityEnrollmentGroup Ver.: always - * @param actionRequired Ver.: always - */ -bool emberAfEnergyManagementClusterManageEventCallback(uint32_t issuerEventId, uint16_t deviceClass, uint8_t utilityEnrollmentGroup, - uint8_t actionRequired); -/** @brief Energy Management Cluster Report Event Status - * - * - * - * @param issuerEventId Ver.: always - * @param eventStatus Ver.: always - * @param eventStatusTime Ver.: always - * @param criticalityLevelApplied Ver.: always - * @param coolingTemperatureSetPointApplied Ver.: always - * @param heatingTemperatureSetPointApplied Ver.: always - * @param averageLoadAdjustmentPercentageApplied Ver.: always - * @param dutyCycleApplied Ver.: always - * @param eventControl Ver.: always - */ -bool emberAfEnergyManagementClusterReportEventStatusCallback(uint32_t issuerEventId, uint8_t eventStatus, uint32_t eventStatusTime, - uint8_t criticalityLevelApplied, - uint16_t coolingTemperatureSetPointApplied, - uint16_t heatingTemperatureSetPointApplied, - int8_t averageLoadAdjustmentPercentageApplied, - uint8_t dutyCycleApplied, uint8_t eventControl); -/** @brief Energy Management Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfEnergyManagementClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Energy Management Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfEnergyManagementClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Energy Management Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfEnergyManagementClusterServerInitCallback(uint8_t endpoint); -/** @brief Energy Management Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfEnergyManagementClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Energy Management Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfEnergyManagementClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Energy Management Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfEnergyManagementClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Energy Management Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfEnergyManagementClusterServerTickCallback(uint8_t endpoint); - -/** @} END Energy Management Cluster Callbacks */ - -/** @name Calendar Cluster Callbacks */ -// @{ - -/** @brief Calendar Cluster Cancel Calendar - * - * - * - * @param providerId Ver.: always - * @param issuerCalendarId Ver.: always - * @param calendarType Ver.: always - */ -bool emberAfCalendarClusterCancelCalendarCallback(uint32_t providerId, uint32_t issuerCalendarId, uint8_t calendarType); -/** @brief Calendar Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfCalendarClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Calendar Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfCalendarClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Calendar Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfCalendarClusterClientInitCallback(uint8_t endpoint); -/** @brief Calendar Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfCalendarClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Calendar Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfCalendarClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Calendar Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfCalendarClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Calendar Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfCalendarClusterClientTickCallback(uint8_t endpoint); -/** @brief Calendar Cluster Get Calendar - * - * - * - * @param earliestStartTime Ver.: always - * @param minIssuerEventId Ver.: always - * @param numberOfCalendars Ver.: always - * @param calendarType Ver.: always - * @param providerId Ver.: always - */ -bool emberAfCalendarClusterGetCalendarCallback(uint32_t earliestStartTime, uint32_t minIssuerEventId, uint8_t numberOfCalendars, - uint8_t calendarType, uint32_t providerId); -/** @brief Calendar Cluster Get Calendar Cancellation - * - * - * - */ -bool emberAfCalendarClusterGetCalendarCancellationCallback(void); -/** @brief Calendar Cluster Get Day Profiles - * - * - * - * @param providerId Ver.: always - * @param issuerCalendarId Ver.: always - * @param startDayId Ver.: always - * @param numberOfDays Ver.: always - */ -bool emberAfCalendarClusterGetDayProfilesCallback(uint32_t providerId, uint32_t issuerCalendarId, uint8_t startDayId, - uint8_t numberOfDays); -/** @brief Calendar Cluster Get Seasons - * - * - * - * @param providerId Ver.: always - * @param issuerCalendarId Ver.: always - */ -bool emberAfCalendarClusterGetSeasonsCallback(uint32_t providerId, uint32_t issuerCalendarId); -/** @brief Calendar Cluster Get Special Days - * - * - * - * @param startTime Ver.: always - * @param numberOfEvents Ver.: always - * @param calendarType Ver.: always - * @param providerId Ver.: always - * @param issuerCalendarId Ver.: always - */ -bool emberAfCalendarClusterGetSpecialDaysCallback(uint32_t startTime, uint8_t numberOfEvents, uint8_t calendarType, - uint32_t providerId, uint32_t issuerCalendarId); -/** @brief Calendar Cluster Get Week Profiles - * - * - * - * @param providerId Ver.: always - * @param issuerCalendarId Ver.: always - * @param startWeekId Ver.: always - * @param numberOfWeeks Ver.: always - */ -bool emberAfCalendarClusterGetWeekProfilesCallback(uint32_t providerId, uint32_t issuerCalendarId, uint8_t startWeekId, - uint8_t numberOfWeeks); -/** @brief Calendar Cluster Publish Calendar - * - * - * - * @param providerId Ver.: always - * @param issuerEventId Ver.: always - * @param issuerCalendarId Ver.: always - * @param startTime Ver.: always - * @param calendarType Ver.: always - * @param calendarTimeReference Ver.: always - * @param calendarName Ver.: always - * @param numberOfSeasons Ver.: always - * @param numberOfWeekProfiles Ver.: always - * @param numberOfDayProfiles Ver.: always - */ -bool emberAfCalendarClusterPublishCalendarCallback(uint32_t providerId, uint32_t issuerEventId, uint32_t issuerCalendarId, - uint32_t startTime, uint8_t calendarType, uint8_t calendarTimeReference, - uint8_t * calendarName, uint8_t numberOfSeasons, uint8_t numberOfWeekProfiles, - uint8_t numberOfDayProfiles); -/** @brief Calendar Cluster Publish Day Profile - * - * - * - * @param providerId Ver.: always - * @param issuerEventId Ver.: always - * @param issuerCalendarId Ver.: always - * @param dayId Ver.: always - * @param totalNumberOfScheduleEntries Ver.: always - * @param commandIndex Ver.: always - * @param totalNumberOfCommands Ver.: always - * @param calendarType Ver.: always - * @param dayScheduleEntries Ver.: always - */ -bool emberAfCalendarClusterPublishDayProfileCallback(uint32_t providerId, uint32_t issuerEventId, uint32_t issuerCalendarId, - uint8_t dayId, uint8_t totalNumberOfScheduleEntries, uint8_t commandIndex, - uint8_t totalNumberOfCommands, uint8_t calendarType, - uint8_t * dayScheduleEntries); -/** @brief Calendar Cluster Publish Seasons - * - * - * - * @param providerId Ver.: always - * @param issuerEventId Ver.: always - * @param issuerCalendarId Ver.: always - * @param commandIndex Ver.: always - * @param totalNumberOfCommands Ver.: always - * @param seasonEntries Ver.: always - */ -bool emberAfCalendarClusterPublishSeasonsCallback(uint32_t providerId, uint32_t issuerEventId, uint32_t issuerCalendarId, - uint8_t commandIndex, uint8_t totalNumberOfCommands, uint8_t * seasonEntries); -/** @brief Calendar Cluster Publish Special Days - * - * - * - * @param providerId Ver.: always - * @param issuerEventId Ver.: always - * @param issuerCalendarId Ver.: always - * @param startTime Ver.: always - * @param calendarType Ver.: always - * @param totalNumberOfSpecialDays Ver.: always - * @param commandIndex Ver.: always - * @param totalNumberOfCommands Ver.: always - * @param specialDayEntries Ver.: always - */ -bool emberAfCalendarClusterPublishSpecialDaysCallback(uint32_t providerId, uint32_t issuerEventId, uint32_t issuerCalendarId, - uint32_t startTime, uint8_t calendarType, uint8_t totalNumberOfSpecialDays, - uint8_t commandIndex, uint8_t totalNumberOfCommands, - uint8_t * specialDayEntries); -/** @brief Calendar Cluster Publish Week Profile - * - * - * - * @param providerId Ver.: always - * @param issuerEventId Ver.: always - * @param issuerCalendarId Ver.: always - * @param weekId Ver.: always - * @param dayIdRefMonday Ver.: always - * @param dayIdRefTuesday Ver.: always - * @param dayIdRefWednesday Ver.: always - * @param dayIdRefThursday Ver.: always - * @param dayIdRefFriday Ver.: always - * @param dayIdRefSaturday Ver.: always - * @param dayIdRefSunday Ver.: always - */ -bool emberAfCalendarClusterPublishWeekProfileCallback(uint32_t providerId, uint32_t issuerEventId, uint32_t issuerCalendarId, - uint8_t weekId, uint8_t dayIdRefMonday, uint8_t dayIdRefTuesday, - uint8_t dayIdRefWednesday, uint8_t dayIdRefThursday, uint8_t dayIdRefFriday, - uint8_t dayIdRefSaturday, uint8_t dayIdRefSunday); -/** @brief Calendar Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfCalendarClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Calendar Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfCalendarClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Calendar Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfCalendarClusterServerInitCallback(uint8_t endpoint); -/** @brief Calendar Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfCalendarClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Calendar Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfCalendarClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Calendar Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfCalendarClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Calendar Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfCalendarClusterServerTickCallback(uint8_t endpoint); - -/** @} END Calendar Cluster Callbacks */ - -/** @name Device Management Cluster Callbacks */ -// @{ - -/** @brief Device Management Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfDeviceManagementClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Device Management Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfDeviceManagementClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Device Management Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfDeviceManagementClusterClientInitCallback(uint8_t endpoint); -/** @brief Device Management Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfDeviceManagementClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Device Management Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfDeviceManagementClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Device Management Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfDeviceManagementClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Device Management Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfDeviceManagementClusterClientTickCallback(uint8_t endpoint); -/** @brief Device Management Cluster Get C I N - * - * - * - */ -bool emberAfDeviceManagementClusterGetCINCallback(void); -/** @brief Device Management Cluster Get Change Of Supplier - * - * - * - */ -bool emberAfDeviceManagementClusterGetChangeOfSupplierCallback(void); -/** @brief Device Management Cluster Get Change Of Tenancy - * - * - * - */ -bool emberAfDeviceManagementClusterGetChangeOfTenancyCallback(void); -/** @brief Device Management Cluster Get Event Configuration - * - * - * - * @param eventId Ver.: always - */ -bool emberAfDeviceManagementClusterGetEventConfigurationCallback(uint16_t eventId); -/** @brief Device Management Cluster Get Site Id - * - * - * - */ -bool emberAfDeviceManagementClusterGetSiteIdCallback(void); -/** @brief Device Management Cluster Publish Change Of Supplier - * - * - * - * @param currentProviderId Ver.: always - * @param issuerEventId Ver.: always - * @param tariffType Ver.: always - * @param proposedProviderId Ver.: always - * @param providerChangeImplementationTime Ver.: always - * @param providerChangeControl Ver.: always - * @param proposedProviderName Ver.: always - * @param proposedProviderContactDetails Ver.: always - */ -bool emberAfDeviceManagementClusterPublishChangeOfSupplierCallback(uint32_t currentProviderId, uint32_t issuerEventId, - uint8_t tariffType, uint32_t proposedProviderId, - uint32_t providerChangeImplementationTime, - uint32_t providerChangeControl, uint8_t * proposedProviderName, - uint8_t * proposedProviderContactDetails); -/** @brief Device Management Cluster Publish Change Of Tenancy - * - * - * - * @param providerId Ver.: always - * @param issuerEventId Ver.: always - * @param tariffType Ver.: always - * @param implementationDateTime Ver.: always - * @param proposedTenancyChangeControl Ver.: always - */ -bool emberAfDeviceManagementClusterPublishChangeOfTenancyCallback(uint32_t providerId, uint32_t issuerEventId, uint8_t tariffType, - uint32_t implementationDateTime, - uint32_t proposedTenancyChangeControl); -/** @brief Device Management Cluster Report Event Configuration - * - * - * - * @param commandIndex Ver.: always - * @param totalCommands Ver.: always - * @param eventConfigurationPayload Ver.: always - */ -bool emberAfDeviceManagementClusterReportEventConfigurationCallback(uint8_t commandIndex, uint8_t totalCommands, - uint8_t * eventConfigurationPayload); -/** @brief Device Management Cluster Request New Password - * - * - * - * @param passwordType Ver.: always - */ -bool emberAfDeviceManagementClusterRequestNewPasswordCallback(uint8_t passwordType); -/** @brief Device Management Cluster Request New Password Response - * - * - * - * @param issuerEventId Ver.: always - * @param implementationDateTime Ver.: always - * @param durationInMinutes Ver.: always - * @param passwordType Ver.: always - * @param password Ver.: always - */ -bool emberAfDeviceManagementClusterRequestNewPasswordResponseCallback(uint32_t issuerEventId, uint32_t implementationDateTime, - uint16_t durationInMinutes, uint8_t passwordType, - uint8_t * password); -/** @brief Device Management Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfDeviceManagementClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Device Management Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfDeviceManagementClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Device Management Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfDeviceManagementClusterServerInitCallback(uint8_t endpoint); -/** @brief Device Management Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfDeviceManagementClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Device Management Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfDeviceManagementClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Device Management Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfDeviceManagementClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Device Management Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfDeviceManagementClusterServerTickCallback(uint8_t endpoint); -/** @brief Device Management Cluster Set Event Configuration - * - * - * - * @param issuerEventId Ver.: always - * @param startDateTime Ver.: always - * @param eventConfiguration Ver.: always - * @param configurationControl Ver.: always - * @param eventConfigurationPayload Ver.: always - */ -bool emberAfDeviceManagementClusterSetEventConfigurationCallback(uint32_t issuerEventId, uint32_t startDateTime, - uint8_t eventConfiguration, uint8_t configurationControl, - uint8_t * eventConfigurationPayload); -/** @brief Device Management Cluster Update C I N - * - * - * - * @param issuerEventId Ver.: always - * @param implementationTime Ver.: always - * @param providerId Ver.: always - * @param customerIdNumber Ver.: always - */ -bool emberAfDeviceManagementClusterUpdateCINCallback(uint32_t issuerEventId, uint32_t implementationTime, uint32_t providerId, - uint8_t * customerIdNumber); -/** @brief Device Management Cluster Update Site Id - * - * - * - * @param issuerEventId Ver.: always - * @param siteIdTime Ver.: always - * @param providerId Ver.: always - * @param siteId Ver.: always - */ -bool emberAfDeviceManagementClusterUpdateSiteIdCallback(uint32_t issuerEventId, uint32_t siteIdTime, uint32_t providerId, - uint8_t * siteId); - -/** @} END Device Management Cluster Callbacks */ - -/** @name Events Cluster Callbacks */ -// @{ - -/** @brief Events Cluster Clear Event Log Request - * - * - * - * @param logId Ver.: always - */ -bool emberAfEventsClusterClearEventLogRequestCallback(uint8_t logId); -/** @brief Events Cluster Clear Event Log Response - * - * - * - * @param clearedEventsLogs Ver.: always - */ -bool emberAfEventsClusterClearEventLogResponseCallback(uint8_t clearedEventsLogs); -/** @brief Events Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfEventsClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Events Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfEventsClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Events Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfEventsClusterClientInitCallback(uint8_t endpoint); -/** @brief Events Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfEventsClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Events Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfEventsClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Events Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfEventsClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Events Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfEventsClusterClientTickCallback(uint8_t endpoint); -/** @brief Events Cluster Get Event Log - * - * - * - * @param eventControlLogId Ver.: always - * @param eventId Ver.: always - * @param startTime Ver.: always - * @param endTime Ver.: always - * @param numberOfEvents Ver.: always - * @param eventOffset Ver.: always - */ -bool emberAfEventsClusterGetEventLogCallback(uint8_t eventControlLogId, uint16_t eventId, uint32_t startTime, uint32_t endTime, - uint8_t numberOfEvents, uint16_t eventOffset); -/** @brief Events Cluster Publish Event - * - * - * - * @param logId Ver.: always - * @param eventId Ver.: always - * @param eventTime Ver.: always - * @param eventControl Ver.: always - * @param eventData Ver.: always - */ -bool emberAfEventsClusterPublishEventCallback(uint8_t logId, uint16_t eventId, uint32_t eventTime, uint8_t eventControl, - uint8_t * eventData); -/** @brief Events Cluster Publish Event Log - * - * - * - * @param totalNumberOfEvents Ver.: always - * @param commandIndex Ver.: always - * @param totalCommands Ver.: always - * @param logPayloadControl Ver.: always - * @param logPayload Ver.: always - */ -bool emberAfEventsClusterPublishEventLogCallback(uint16_t totalNumberOfEvents, uint8_t commandIndex, uint8_t totalCommands, - uint8_t logPayloadControl, uint8_t * logPayload); -/** @brief Events Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfEventsClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Events Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfEventsClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Events Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfEventsClusterServerInitCallback(uint8_t endpoint); -/** @brief Events Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfEventsClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Events Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfEventsClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Events Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfEventsClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Events Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfEventsClusterServerTickCallback(uint8_t endpoint); - -/** @} END Events Cluster Callbacks */ - -/** @name MDU Pairing Cluster Callbacks */ -// @{ - -/** @brief MDU Pairing Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfMduPairingClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief MDU Pairing Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfMduPairingClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief MDU Pairing Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfMduPairingClusterClientInitCallback(uint8_t endpoint); -/** @brief MDU Pairing Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfMduPairingClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief MDU Pairing Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfMduPairingClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief MDU Pairing Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfMduPairingClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief MDU Pairing Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfMduPairingClusterClientTickCallback(uint8_t endpoint); -/** @brief MDU Pairing Cluster Pairing Request - * - * - * - * @param localPairingInformationVersion Ver.: always - * @param eui64OfRequestingDevice Ver.: always - */ -bool emberAfMduPairingClusterPairingRequestCallback(uint32_t localPairingInformationVersion, uint8_t * eui64OfRequestingDevice); -/** @brief MDU Pairing Cluster Pairing Response - * - * - * - * @param pairingInformationVersion Ver.: always - * @param totalNumberOfDevices Ver.: always - * @param commandIndex Ver.: always - * @param totalNumberOfCommands Ver.: always - * @param eui64s Ver.: always - */ -bool emberAfMduPairingClusterPairingResponseCallback(uint32_t pairingInformationVersion, uint8_t totalNumberOfDevices, - uint8_t commandIndex, uint8_t totalNumberOfCommands, uint8_t * eui64s); -/** @brief MDU Pairing Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfMduPairingClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief MDU Pairing Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfMduPairingClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief MDU Pairing Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfMduPairingClusterServerInitCallback(uint8_t endpoint); -/** @brief MDU Pairing Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfMduPairingClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief MDU Pairing Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfMduPairingClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief MDU Pairing Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfMduPairingClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief MDU Pairing Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfMduPairingClusterServerTickCallback(uint8_t endpoint); - -/** @} END MDU Pairing Cluster Callbacks */ - -/** @name Sub-GHz Cluster Callbacks */ -// @{ - -/** @brief Sub-GHz Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfSubGhzClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Sub-GHz Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfSubGhzClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Sub-GHz Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfSubGhzClusterClientInitCallback(uint8_t endpoint); -/** @brief Sub-GHz Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfSubGhzClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Sub-GHz Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfSubGhzClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Sub-GHz Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfSubGhzClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Sub-GHz Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfSubGhzClusterClientTickCallback(uint8_t endpoint); -/** @brief Sub-GHz Cluster Get Suspend Zcl Messages Status - * - * - * - */ -bool emberAfSubGhzClusterGetSuspendZclMessagesStatusCallback(void); -/** @brief Sub-GHz Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfSubGhzClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Sub-GHz Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfSubGhzClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Sub-GHz Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfSubGhzClusterServerInitCallback(uint8_t endpoint); -/** @brief Sub-GHz Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfSubGhzClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Sub-GHz Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfSubGhzClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Sub-GHz Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfSubGhzClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Sub-GHz Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfSubGhzClusterServerTickCallback(uint8_t endpoint); -/** @brief Sub-GHz Cluster Suspend Zcl Messages - * - * - * - * @param period Ver.: always - */ -bool emberAfSubGhzClusterSuspendZclMessagesCallback(uint8_t period); - -/** @} END Sub-GHz Cluster Callbacks */ - -/** @name Key Establishment Cluster Callbacks */ -// @{ - -/** @brief Key Establishment Cluster Client Command Received - * - * This function is called by the application framework when a server-to-client - * key establishment command is received but has yet to be handled by the - * framework code. This function should return a bool value indicating whether - * the command has been handled by the application code and should not be - * further processed by the framework. - * - * @param cmd Ver.: always - */ -bool emberAfKeyEstablishmentClusterClientCommandReceivedCallback(EmberAfClusterCommand * cmd); -/** @brief Key Establishment Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfKeyEstablishmentClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Key Establishment Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfKeyEstablishmentClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Key Establishment Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfKeyEstablishmentClusterClientInitCallback(uint8_t endpoint); -/** @brief Key Establishment Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfKeyEstablishmentClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Key Establishment Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfKeyEstablishmentClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Key Establishment Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfKeyEstablishmentClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Key Establishment Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfKeyEstablishmentClusterClientTickCallback(uint8_t endpoint); -/** @brief Key Establishment Cluster Confirm Key Data Request - * - * - * - * @param secureMessageAuthenticationCode Ver.: always - */ -bool emberAfKeyEstablishmentClusterConfirmKeyDataRequestCallback(uint8_t * secureMessageAuthenticationCode); -/** @brief Key Establishment Cluster Confirm Key Data Response - * - * - * - * @param secureMessageAuthenticationCode Ver.: always - */ -bool emberAfKeyEstablishmentClusterConfirmKeyDataResponseCallback(uint8_t * secureMessageAuthenticationCode); -/** @brief Key Establishment Cluster Ephemeral Data Request - * - * - * - * @param ephemeralData Ver.: always - */ -bool emberAfKeyEstablishmentClusterEphemeralDataRequestCallback(uint8_t * ephemeralData); -/** @brief Key Establishment Cluster Ephemeral Data Response - * - * - * - * @param ephemeralData Ver.: always - */ -bool emberAfKeyEstablishmentClusterEphemeralDataResponseCallback(uint8_t * ephemeralData); -/** @brief Key Establishment Cluster Initiate Key Establishment Request - * - * - * - * @param keyEstablishmentSuite Ver.: always - * @param ephemeralDataGenerateTime Ver.: always - * @param confirmKeyGenerateTime Ver.: always - * @param identity Ver.: always - */ -bool emberAfKeyEstablishmentClusterInitiateKeyEstablishmentRequestCallback(uint16_t keyEstablishmentSuite, - uint8_t ephemeralDataGenerateTime, - uint8_t confirmKeyGenerateTime, uint8_t * identity); -/** @brief Key Establishment Cluster Initiate Key Establishment Response - * - * - * - * @param requestedKeyEstablishmentSuite Ver.: always - * @param ephemeralDataGenerateTime Ver.: always - * @param confirmKeyGenerateTime Ver.: always - * @param identity Ver.: always - */ -bool emberAfKeyEstablishmentClusterInitiateKeyEstablishmentResponseCallback(uint16_t requestedKeyEstablishmentSuite, - uint8_t ephemeralDataGenerateTime, - uint8_t confirmKeyGenerateTime, uint8_t * identity); -/** @brief Key Establishment Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfKeyEstablishmentClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Key Establishment Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfKeyEstablishmentClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Key Establishment Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfKeyEstablishmentClusterServerInitCallback(uint8_t endpoint); -/** @brief Key Establishment Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfKeyEstablishmentClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Key Establishment Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfKeyEstablishmentClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Key Establishment Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfKeyEstablishmentClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Key Establishment Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfKeyEstablishmentClusterServerTickCallback(uint8_t endpoint); -/** @brief Key Establishment Cluster Terminate Key Establishment - * - * - * - * @param statusCode Ver.: always - * @param waitTime Ver.: always - * @param keyEstablishmentSuite Ver.: always - */ -bool emberAfKeyEstablishmentClusterTerminateKeyEstablishmentCallback(uint8_t statusCode, uint8_t waitTime, - uint16_t keyEstablishmentSuite); -/** @brief Key Establishment Cluster Server Command Received - * - * This function is called by the application framework when a client-to-server - * key establishment command is received but has yet to be handled by the - * framework code. This function should return a bool value indicating whether - * the command has been handled by the application code and should not be - * further processed by the framework. - * - * @param cmd Ver.: always - */ -bool emberAfKeyEstablishmentClusterServerCommandReceivedCallback(EmberAfClusterCommand * cmd); - -/** @} END Key Establishment Cluster Callbacks */ - -/** @name Information Cluster Callbacks */ -// @{ - -/** @brief Information Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfInformationClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Information Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfInformationClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Information Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfInformationClusterClientInitCallback(uint8_t endpoint); -/** @brief Information Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfInformationClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Information Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfInformationClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Information Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfInformationClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Information Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfInformationClusterClientTickCallback(uint8_t endpoint); -/** @brief Information Cluster Configure Delivery Enable - * - * - * - * @param enable Ver.: always - */ -bool emberAfInformationClusterConfigureDeliveryEnableCallback(uint8_t enable); -/** @brief Information Cluster Configure Node Description - * - * - * - * @param description Ver.: always - */ -bool emberAfInformationClusterConfigureNodeDescriptionCallback(uint8_t * description); -/** @brief Information Cluster Configure Push Information Timer - * - * - * - * @param timer Ver.: always - */ -bool emberAfInformationClusterConfigurePushInformationTimerCallback(uint32_t timer); -/** @brief Information Cluster Configure Set Root Id - * - * - * - * @param rootId Ver.: always - */ -bool emberAfInformationClusterConfigureSetRootIdCallback(uint16_t rootId); -/** @brief Information Cluster Delete - * - * - * - * @param deletionOptions Ver.: always - * @param contentIds Ver.: always - */ -bool emberAfInformationClusterDeleteCallback(uint8_t deletionOptions, uint8_t * contentIds); -/** @brief Information Cluster Delete Response - * - * - * - * @param notificationList Ver.: always - */ -bool emberAfInformationClusterDeleteResponseCallback(uint8_t * notificationList); -/** @brief Information Cluster Push Information - * - * - * - * @param contents Ver.: always - */ -bool emberAfInformationClusterPushInformationCallback(uint8_t * contents); -/** @brief Information Cluster Push Information Response - * - * - * - * @param notificationList Ver.: always - */ -bool emberAfInformationClusterPushInformationResponseCallback(uint8_t * notificationList); -/** @brief Information Cluster Request Information - * - * - * - * @param inquiryId Ver.: always - * @param dataTypeId Ver.: always - * @param requestInformationPayload Ver.: always - */ -bool emberAfInformationClusterRequestInformationCallback(uint8_t inquiryId, uint8_t dataTypeId, - uint8_t * requestInformationPayload); -/** @brief Information Cluster Request Information Response - * - * - * - * @param number Ver.: always - * @param buffer Ver.: always - */ -bool emberAfInformationClusterRequestInformationResponseCallback(uint8_t number, uint8_t * buffer); -/** @brief Information Cluster Request Preference Confirmation - * - * - * - * @param statusFeedbackList Ver.: always - */ -bool emberAfInformationClusterRequestPreferenceConfirmationCallback(uint8_t * statusFeedbackList); -/** @brief Information Cluster Request Preference Response - * - * - * - * @param statusFeedback Ver.: always - * @param preferenceType Ver.: always - * @param preferencePayload Ver.: always - */ -bool emberAfInformationClusterRequestPreferenceResponseCallback(uint8_t statusFeedback, uint16_t preferenceType, - uint8_t * preferencePayload); -/** @brief Information Cluster Send Preference - * - * - * - * @param preferenceType Ver.: always - * @param preferencePayload Ver.: always - */ -bool emberAfInformationClusterSendPreferenceCallback(uint16_t preferenceType, uint8_t * preferencePayload); -/** @brief Information Cluster Send Preference Response - * - * - * - * @param statusFeedbackList Ver.: always - */ -bool emberAfInformationClusterSendPreferenceResponseCallback(uint8_t * statusFeedbackList); -/** @brief Information Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfInformationClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Information Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfInformationClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Information Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfInformationClusterServerInitCallback(uint8_t endpoint); -/** @brief Information Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfInformationClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Information Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfInformationClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Information Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfInformationClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Information Cluster Server Request Preference - * - * - * - */ -bool emberAfInformationClusterServerRequestPreferenceCallback(void); -/** @brief Information Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfInformationClusterServerTickCallback(uint8_t endpoint); -/** @brief Information Cluster Update - * - * - * - * @param accessControl Ver.: always - * @param option Ver.: always - * @param contents Ver.: always - */ -bool emberAfInformationClusterUpdateCallback(uint8_t accessControl, uint8_t option, uint8_t * contents); -/** @brief Information Cluster Update Response - * - * - * - * @param notificationList Ver.: always - */ -bool emberAfInformationClusterUpdateResponseCallback(uint8_t * notificationList); - -/** @} END Information Cluster Callbacks */ - -/** @name Data Sharing Cluster Callbacks */ -// @{ - -/** @brief Data Sharing Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfDataSharingClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Data Sharing Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfDataSharingClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Data Sharing Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfDataSharingClusterClientInitCallback(uint8_t endpoint); -/** @brief Data Sharing Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfDataSharingClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Data Sharing Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfDataSharingClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Data Sharing Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfDataSharingClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Data Sharing Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfDataSharingClusterClientTickCallback(uint8_t endpoint); -/** @brief Data Sharing Cluster File Transmission - * - * - * - * @param transmitOptions Ver.: always - * @param buffer Ver.: always - */ -bool emberAfDataSharingClusterFileTransmissionCallback(uint8_t transmitOptions, uint8_t * buffer); -/** @brief Data Sharing Cluster Modify File Request - * - * - * - * @param fileIndex Ver.: always - * @param fileStartPosition Ver.: always - * @param octetCount Ver.: always - */ -bool emberAfDataSharingClusterModifyFileRequestCallback(uint16_t fileIndex, uint32_t fileStartPosition, uint32_t octetCount); -/** @brief Data Sharing Cluster Modify Record Request - * - * - * - * @param fileIndex Ver.: always - * @param fileStartRecord Ver.: always - * @param recordCount Ver.: always - */ -bool emberAfDataSharingClusterModifyRecordRequestCallback(uint16_t fileIndex, uint16_t fileStartRecord, uint16_t recordCount); -/** @brief Data Sharing Cluster Read File Request - * - * - * - * @param fileIndex Ver.: always - * @param fileStartPositionAndRequestedOctetCount Ver.: always - */ -bool emberAfDataSharingClusterReadFileRequestCallback(uint16_t fileIndex, uint8_t * fileStartPositionAndRequestedOctetCount); -/** @brief Data Sharing Cluster Read Record Request - * - * - * - * @param fileIndex Ver.: always - * @param fileStartRecordAndRequestedRecordCount Ver.: always - */ -bool emberAfDataSharingClusterReadRecordRequestCallback(uint16_t fileIndex, uint8_t * fileStartRecordAndRequestedRecordCount); -/** @brief Data Sharing Cluster Record Transmission - * - * - * - * @param transmitOptions Ver.: always - * @param buffer Ver.: always - */ -bool emberAfDataSharingClusterRecordTransmissionCallback(uint8_t transmitOptions, uint8_t * buffer); -/** @brief Data Sharing Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfDataSharingClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Data Sharing Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfDataSharingClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Data Sharing Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfDataSharingClusterServerInitCallback(uint8_t endpoint); -/** @brief Data Sharing Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfDataSharingClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Data Sharing Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfDataSharingClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Data Sharing Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfDataSharingClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Data Sharing Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfDataSharingClusterServerTickCallback(uint8_t endpoint); -/** @brief Data Sharing Cluster Write File Request - * - * - * - * @param writeOptions Ver.: always - * @param fileSize Ver.: always - */ -bool emberAfDataSharingClusterWriteFileRequestCallback(uint8_t writeOptions, uint8_t * fileSize); -/** @brief Data Sharing Cluster Write File Response - * - * - * - * @param status Ver.: always - * @param fileIndex Ver.: always - */ -bool emberAfDataSharingClusterWriteFileResponseCallback(uint8_t status, uint8_t * fileIndex); - -/** @} END Data Sharing Cluster Callbacks */ - -/** @name Gaming Cluster Callbacks */ -// @{ - -/** @brief Gaming Cluster Action Control - * - * - * - * @param actions Ver.: always - */ -bool emberAfGamingClusterActionControlCallback(uint32_t actions); -/** @brief Gaming Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfGamingClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Gaming Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfGamingClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Gaming Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfGamingClusterClientInitCallback(uint8_t endpoint); -/** @brief Gaming Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfGamingClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Gaming Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfGamingClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Gaming Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfGamingClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Gaming Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfGamingClusterClientTickCallback(uint8_t endpoint); -/** @brief Gaming Cluster Download Game - * - * - * - */ -bool emberAfGamingClusterDownloadGameCallback(void); -/** @brief Gaming Cluster End Game - * - * - * - */ -bool emberAfGamingClusterEndGameCallback(void); -/** @brief Gaming Cluster Game Announcement - * - * - * - * @param gameId Ver.: always - * @param gameMaster Ver.: always - * @param listOfGame Ver.: always - */ -bool emberAfGamingClusterGameAnnouncementCallback(uint16_t gameId, uint8_t gameMaster, uint8_t * listOfGame); -/** @brief Gaming Cluster General Response - * - * - * - * @param commandId Ver.: always - * @param status Ver.: always - * @param message Ver.: always - */ -bool emberAfGamingClusterGeneralResponseCallback(uint8_t commandId, uint8_t status, uint8_t * message); -/** @brief Gaming Cluster Join Game - * - * - * - * @param gameId Ver.: always - * @param joinAsMaster Ver.: always - * @param nameOfGame Ver.: always - */ -bool emberAfGamingClusterJoinGameCallback(uint16_t gameId, uint8_t joinAsMaster, uint8_t * nameOfGame); -/** @brief Gaming Cluster Pause Game - * - * - * - */ -bool emberAfGamingClusterPauseGameCallback(void); -/** @brief Gaming Cluster Quit Game - * - * - * - */ -bool emberAfGamingClusterQuitGameCallback(void); -/** @brief Gaming Cluster Resume Game - * - * - * - */ -bool emberAfGamingClusterResumeGameCallback(void); -/** @brief Gaming Cluster Search Game - * - * - * - * @param specificGame Ver.: always - * @param gameId Ver.: always - */ -bool emberAfGamingClusterSearchGameCallback(uint8_t specificGame, uint16_t gameId); -/** @brief Gaming Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfGamingClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Gaming Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfGamingClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Gaming Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfGamingClusterServerInitCallback(uint8_t endpoint); -/** @brief Gaming Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfGamingClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Gaming Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfGamingClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Gaming Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfGamingClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Gaming Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfGamingClusterServerTickCallback(uint8_t endpoint); -/** @brief Gaming Cluster Start Game - * - * - * - */ -bool emberAfGamingClusterStartGameCallback(void); -/** @brief Gaming Cluster Start Over - * - * - * - */ -bool emberAfGamingClusterStartOverCallback(void); - -/** @} END Gaming Cluster Callbacks */ - -/** @name Data Rate Control Cluster Callbacks */ -// @{ - -/** @brief Data Rate Control Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfDataRateControlClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Data Rate Control Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfDataRateControlClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Data Rate Control Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfDataRateControlClusterClientInitCallback(uint8_t endpoint); -/** @brief Data Rate Control Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfDataRateControlClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Data Rate Control Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfDataRateControlClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Data Rate Control Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfDataRateControlClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Data Rate Control Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfDataRateControlClusterClientTickCallback(uint8_t endpoint); -/** @brief Data Rate Control Cluster Data Rate Control - * - * - * - * @param originatorAddress Ver.: always - * @param destinationAddress Ver.: always - * @param dataRate Ver.: always - */ -bool emberAfDataRateControlClusterDataRateControlCallback(uint16_t originatorAddress, uint16_t destinationAddress, - uint8_t dataRate); -/** @brief Data Rate Control Cluster Data Rate Notification - * - * - * - * @param originatorAddress Ver.: always - * @param destinationAddress Ver.: always - * @param dataRate Ver.: always - */ -bool emberAfDataRateControlClusterDataRateNotificationCallback(uint16_t originatorAddress, uint16_t destinationAddress, - uint8_t dataRate); -/** @brief Data Rate Control Cluster Path Creation - * - * - * - * @param originatorAddress Ver.: always - * @param destinationAddress Ver.: always - * @param dataRate Ver.: always - */ -bool emberAfDataRateControlClusterPathCreationCallback(uint16_t originatorAddress, uint16_t destinationAddress, uint8_t dataRate); -/** @brief Data Rate Control Cluster Path Deletion - * - * - * - * @param originatorAddress Ver.: always - * @param destinationAddress Ver.: always - */ -bool emberAfDataRateControlClusterPathDeletionCallback(uint16_t originatorAddress, uint16_t destinationAddress); -/** @brief Data Rate Control Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfDataRateControlClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Data Rate Control Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfDataRateControlClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Data Rate Control Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfDataRateControlClusterServerInitCallback(uint8_t endpoint); -/** @brief Data Rate Control Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfDataRateControlClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Data Rate Control Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfDataRateControlClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Data Rate Control Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfDataRateControlClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Data Rate Control Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfDataRateControlClusterServerTickCallback(uint8_t endpoint); - -/** @} END Data Rate Control Cluster Callbacks */ - -/** @name Voice over ZigBee Cluster Callbacks */ -// @{ - -/** @brief Voice over ZigBee Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfVoiceOverZigbeeClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Voice over ZigBee Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfVoiceOverZigbeeClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Voice over ZigBee Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfVoiceOverZigbeeClusterClientInitCallback(uint8_t endpoint); -/** @brief Voice over ZigBee Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfVoiceOverZigbeeClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Voice over ZigBee Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfVoiceOverZigbeeClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Voice over ZigBee Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfVoiceOverZigbeeClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Voice over ZigBee Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfVoiceOverZigbeeClusterClientTickCallback(uint8_t endpoint); -/** @brief Voice over ZigBee Cluster Control - * - * - * - * @param controlType Ver.: always - */ -bool emberAfVoiceOverZigbeeClusterControlCallback(uint8_t controlType); -/** @brief Voice over ZigBee Cluster Control Response - * - * - * - * @param ackNack Ver.: always - */ -bool emberAfVoiceOverZigbeeClusterControlResponseCallback(uint8_t ackNack); -/** @brief Voice over ZigBee Cluster Establishment Request - * - * - * - * @param flag Ver.: always - * @param codecType Ver.: always - * @param sampFreq Ver.: always - * @param codecRate Ver.: always - * @param serviceType Ver.: always - * @param buffer Ver.: always - */ -bool emberAfVoiceOverZigbeeClusterEstablishmentRequestCallback(uint8_t flag, uint8_t codecType, uint8_t sampFreq, uint8_t codecRate, - uint8_t serviceType, uint8_t * buffer); -/** @brief Voice over ZigBee Cluster Establishment Response - * - * - * - * @param ackNack Ver.: always - * @param codecType Ver.: always - */ -bool emberAfVoiceOverZigbeeClusterEstablishmentResponseCallback(uint8_t ackNack, uint8_t codecType); -/** @brief Voice over ZigBee Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfVoiceOverZigbeeClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Voice over ZigBee Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfVoiceOverZigbeeClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Voice over ZigBee Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfVoiceOverZigbeeClusterServerInitCallback(uint8_t endpoint); -/** @brief Voice over ZigBee Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfVoiceOverZigbeeClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Voice over ZigBee Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfVoiceOverZigbeeClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Voice over ZigBee Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfVoiceOverZigbeeClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Voice over ZigBee Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfVoiceOverZigbeeClusterServerTickCallback(uint8_t endpoint); -/** @brief Voice over ZigBee Cluster Voice Transmission - * - * - * - * @param voiceData Ver.: always - */ -bool emberAfVoiceOverZigbeeClusterVoiceTransmissionCallback(uint8_t * voiceData); -/** @brief Voice over ZigBee Cluster Voice Transmission Completion - * - * - * - */ -bool emberAfVoiceOverZigbeeClusterVoiceTransmissionCompletionCallback(void); -/** @brief Voice over ZigBee Cluster Voice Transmission Response - * - * - * - * @param sequenceNumber Ver.: always - * @param errorFlag Ver.: always - */ -bool emberAfVoiceOverZigbeeClusterVoiceTransmissionResponseCallback(uint8_t sequenceNumber, uint8_t errorFlag); - -/** @} END Voice over ZigBee Cluster Callbacks */ - -/** @name Chatting Cluster Callbacks */ -// @{ - -/** @brief Chatting Cluster Chat Message - * - * - * - * @param destinationUid Ver.: always - * @param sourceUid Ver.: always - * @param cid Ver.: always - * @param nickname Ver.: always - * @param message Ver.: always - */ -bool emberAfChattingClusterChatMessageCallback(uint16_t destinationUid, uint16_t sourceUid, uint16_t cid, uint8_t * nickname, - uint8_t * message); -/** @brief Chatting Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfChattingClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Chatting Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfChattingClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Chatting Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfChattingClusterClientInitCallback(uint8_t endpoint); -/** @brief Chatting Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfChattingClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Chatting Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfChattingClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Chatting Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfChattingClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Chatting Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfChattingClusterClientTickCallback(uint8_t endpoint); -/** @brief Chatting Cluster Get Node Information Request - * - * - * - * @param cid Ver.: always - * @param uid Ver.: always - */ -bool emberAfChattingClusterGetNodeInformationRequestCallback(uint16_t cid, uint16_t uid); -/** @brief Chatting Cluster Get Node Information Response - * - * - * - * @param status Ver.: always - * @param cid Ver.: always - * @param uid Ver.: always - * @param addressEndpointAndNickname Ver.: always - */ -bool emberAfChattingClusterGetNodeInformationResponseCallback(uint8_t status, uint16_t cid, uint16_t uid, - uint8_t * addressEndpointAndNickname); -/** @brief Chatting Cluster Join Chat Request - * - * - * - * @param uid Ver.: always - * @param nickname Ver.: always - * @param cid Ver.: always - */ -bool emberAfChattingClusterJoinChatRequestCallback(uint16_t uid, uint8_t * nickname, uint16_t cid); -/** @brief Chatting Cluster Join Chat Response - * - * - * - * @param status Ver.: always - * @param cid Ver.: always - * @param chatParticipantList Ver.: always - */ -bool emberAfChattingClusterJoinChatResponseCallback(uint8_t status, uint16_t cid, uint8_t * chatParticipantList); -/** @brief Chatting Cluster Leave Chat Request - * - * - * - * @param cid Ver.: always - * @param uid Ver.: always - */ -bool emberAfChattingClusterLeaveChatRequestCallback(uint16_t cid, uint16_t uid); -/** @brief Chatting Cluster Search Chat Request - * - * - * - */ -bool emberAfChattingClusterSearchChatRequestCallback(void); -/** @brief Chatting Cluster Search Chat Response - * - * - * - * @param options Ver.: always - * @param chatRoomList Ver.: always - */ -bool emberAfChattingClusterSearchChatResponseCallback(uint8_t options, uint8_t * chatRoomList); -/** @brief Chatting Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfChattingClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Chatting Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfChattingClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Chatting Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfChattingClusterServerInitCallback(uint8_t endpoint); -/** @brief Chatting Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfChattingClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Chatting Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfChattingClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Chatting Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfChattingClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Chatting Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfChattingClusterServerTickCallback(uint8_t endpoint); -/** @brief Chatting Cluster Start Chat Request - * - * - * - * @param name Ver.: always - * @param uid Ver.: always - * @param nickname Ver.: always - */ -bool emberAfChattingClusterStartChatRequestCallback(uint8_t * name, uint16_t uid, uint8_t * nickname); -/** @brief Chatting Cluster Start Chat Response - * - * - * - * @param status Ver.: always - * @param cid Ver.: always - */ -bool emberAfChattingClusterStartChatResponseCallback(uint8_t status, uint16_t cid); -/** @brief Chatting Cluster Switch Chairman Confirm - * - * - * - * @param cid Ver.: always - * @param nodeInformationList Ver.: always - */ -bool emberAfChattingClusterSwitchChairmanConfirmCallback(uint16_t cid, uint8_t * nodeInformationList); -/** @brief Chatting Cluster Switch Chairman Notification - * - * - * - * @param cid Ver.: always - * @param uid Ver.: always - * @param address Ver.: always - * @param endpoint Ver.: always - */ -bool emberAfChattingClusterSwitchChairmanNotificationCallback(uint16_t cid, uint16_t uid, uint16_t address, uint8_t endpoint); -/** @brief Chatting Cluster Switch Chairman Request - * - * - * - * @param cid Ver.: always - */ -bool emberAfChattingClusterSwitchChairmanRequestCallback(uint16_t cid); -/** @brief Chatting Cluster Switch Chairman Response - * - * - * - * @param cid Ver.: always - * @param uid Ver.: always - */ -bool emberAfChattingClusterSwitchChairmanResponseCallback(uint16_t cid, uint16_t uid); -/** @brief Chatting Cluster User Joined - * - * - * - * @param cid Ver.: always - * @param uid Ver.: always - * @param nickname Ver.: always - */ -bool emberAfChattingClusterUserJoinedCallback(uint16_t cid, uint16_t uid, uint8_t * nickname); -/** @brief Chatting Cluster User Left - * - * - * - * @param cid Ver.: always - * @param uid Ver.: always - * @param nickname Ver.: always - */ -bool emberAfChattingClusterUserLeftCallback(uint16_t cid, uint16_t uid, uint8_t * nickname); - -/** @} END Chatting Cluster Callbacks */ - -/** @name Payment Cluster Callbacks */ -// @{ - -/** @brief Payment Cluster Accept Payment - * - * - * - * @param userId Ver.: always - * @param userType Ver.: always - * @param serviceId Ver.: always - * @param goodId Ver.: always - */ -bool emberAfPaymentClusterAcceptPaymentCallback(uint8_t * userId, uint16_t userType, uint16_t serviceId, uint8_t * goodId); -/** @brief Payment Cluster Buy Confirm - * - * - * - * @param serialNumber Ver.: always - * @param currency Ver.: always - * @param priceTrailingDigit Ver.: always - * @param price Ver.: always - * @param timestamp Ver.: always - * @param transId Ver.: always - * @param transStatus Ver.: always - */ -bool emberAfPaymentClusterBuyConfirmCallback(uint8_t * serialNumber, uint32_t currency, uint8_t priceTrailingDigit, uint32_t price, - uint8_t * timestamp, uint16_t transId, uint8_t transStatus); -/** @brief Payment Cluster Buy Request - * - * - * - * @param userId Ver.: always - * @param userType Ver.: always - * @param serviceId Ver.: always - * @param goodId Ver.: always - */ -bool emberAfPaymentClusterBuyRequestCallback(uint8_t * userId, uint16_t userType, uint16_t serviceId, uint8_t * goodId); -/** @brief Payment Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfPaymentClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Payment Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfPaymentClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Payment Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfPaymentClusterClientInitCallback(uint8_t endpoint); -/** @brief Payment Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfPaymentClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Payment Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfPaymentClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Payment Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfPaymentClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Payment Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfPaymentClusterClientTickCallback(uint8_t endpoint); -/** @brief Payment Cluster Payment Confirm - * - * - * - * @param serialNumber Ver.: always - * @param transId Ver.: always - * @param transStatus Ver.: always - */ -bool emberAfPaymentClusterPaymentConfirmCallback(uint8_t * serialNumber, uint16_t transId, uint8_t transStatus); -/** @brief Payment Cluster Receipt Delivery - * - * - * - * @param serialNumber Ver.: always - * @param currency Ver.: always - * @param priceTrailingDigit Ver.: always - * @param price Ver.: always - * @param timestamp Ver.: always - */ -bool emberAfPaymentClusterReceiptDeliveryCallback(uint8_t * serialNumber, uint32_t currency, uint8_t priceTrailingDigit, - uint32_t price, uint8_t * timestamp); -/** @brief Payment Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfPaymentClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Payment Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfPaymentClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Payment Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfPaymentClusterServerInitCallback(uint8_t endpoint); -/** @brief Payment Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfPaymentClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Payment Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfPaymentClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Payment Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfPaymentClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Payment Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfPaymentClusterServerTickCallback(uint8_t endpoint); -/** @brief Payment Cluster Transaction End - * - * - * - * @param serialNumber Ver.: always - * @param status Ver.: always - */ -bool emberAfPaymentClusterTransactionEndCallback(uint8_t * serialNumber, uint8_t status); - -/** @} END Payment Cluster Callbacks */ - -/** @name Billing Cluster Callbacks */ -// @{ - -/** @brief Billing Cluster Bill Status Notification - * - * - * - * @param userId Ver.: always - * @param status Ver.: always - */ -bool emberAfBillingClusterBillStatusNotificationCallback(uint8_t * userId, uint8_t status); -/** @brief Billing Cluster Check Bill Status - * - * - * - * @param userId Ver.: always - * @param serviceId Ver.: always - * @param serviceProviderId Ver.: always - */ -bool emberAfBillingClusterCheckBillStatusCallback(uint8_t * userId, uint16_t serviceId, uint16_t serviceProviderId); -/** @brief Billing Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfBillingClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Billing Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfBillingClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Billing Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfBillingClusterClientInitCallback(uint8_t endpoint); -/** @brief Billing Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfBillingClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Billing Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfBillingClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Billing Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfBillingClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Billing Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfBillingClusterClientTickCallback(uint8_t endpoint); -/** @brief Billing Cluster Send Bill Record - * - * - * - * @param userId Ver.: always - * @param serviceId Ver.: always - * @param serviceProviderId Ver.: always - * @param timestamp Ver.: always - * @param duration Ver.: always - */ -bool emberAfBillingClusterSendBillRecordCallback(uint8_t * userId, uint16_t serviceId, uint16_t serviceProviderId, - uint8_t * timestamp, uint16_t duration); -/** @brief Billing Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfBillingClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Billing Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfBillingClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Billing Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfBillingClusterServerInitCallback(uint8_t endpoint); -/** @brief Billing Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfBillingClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Billing Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfBillingClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Billing Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfBillingClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Billing Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfBillingClusterServerTickCallback(uint8_t endpoint); -/** @brief Billing Cluster Session Keep Alive - * - * - * - * @param userId Ver.: always - * @param serviceId Ver.: always - * @param serviceProviderId Ver.: always - */ -bool emberAfBillingClusterSessionKeepAliveCallback(uint8_t * userId, uint16_t serviceId, uint16_t serviceProviderId); -/** @brief Billing Cluster Start Billing Session - * - * - * - * @param userId Ver.: always - * @param serviceId Ver.: always - * @param serviceProviderId Ver.: always - */ -bool emberAfBillingClusterStartBillingSessionCallback(uint8_t * userId, uint16_t serviceId, uint16_t serviceProviderId); -/** @brief Billing Cluster Stop Billing Session - * - * - * - * @param userId Ver.: always - * @param serviceId Ver.: always - * @param serviceProviderId Ver.: always - */ -bool emberAfBillingClusterStopBillingSessionCallback(uint8_t * userId, uint16_t serviceId, uint16_t serviceProviderId); -/** @brief Billing Cluster Subscribe - * - * - * - * @param userId Ver.: always - * @param serviceId Ver.: always - * @param serviceProviderId Ver.: always - */ -bool emberAfBillingClusterSubscribeCallback(uint8_t * userId, uint16_t serviceId, uint16_t serviceProviderId); -/** @brief Billing Cluster Unsubscribe - * - * - * - * @param userId Ver.: always - * @param serviceId Ver.: always - * @param serviceProviderId Ver.: always - */ -bool emberAfBillingClusterUnsubscribeCallback(uint8_t * userId, uint16_t serviceId, uint16_t serviceProviderId); - -/** @} END Billing Cluster Callbacks */ - -/** @name Appliance Identification Cluster Callbacks */ -// @{ - -/** @brief Appliance Identification Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfApplianceIdentificationClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Appliance Identification Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfApplianceIdentificationClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Appliance Identification Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfApplianceIdentificationClusterClientInitCallback(uint8_t endpoint); -/** @brief Appliance Identification Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfApplianceIdentificationClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Appliance Identification Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfApplianceIdentificationClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Appliance Identification Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfApplianceIdentificationClusterClientPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Appliance Identification Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfApplianceIdentificationClusterClientTickCallback(uint8_t endpoint); -/** @brief Appliance Identification Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfApplianceIdentificationClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Appliance Identification Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfApplianceIdentificationClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Appliance Identification Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfApplianceIdentificationClusterServerInitCallback(uint8_t endpoint); -/** @brief Appliance Identification Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfApplianceIdentificationClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Appliance Identification Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfApplianceIdentificationClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Appliance Identification Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfApplianceIdentificationClusterServerPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Appliance Identification Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfApplianceIdentificationClusterServerTickCallback(uint8_t endpoint); - -/** @} END Appliance Identification Cluster Callbacks */ - -/** @name Meter Identification Cluster Callbacks */ -// @{ - -/** @brief Meter Identification Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfMeterIdentificationClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Meter Identification Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfMeterIdentificationClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Meter Identification Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfMeterIdentificationClusterClientInitCallback(uint8_t endpoint); -/** @brief Meter Identification Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfMeterIdentificationClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Meter Identification Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfMeterIdentificationClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Meter Identification Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfMeterIdentificationClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Meter Identification Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfMeterIdentificationClusterClientTickCallback(uint8_t endpoint); -/** @brief Meter Identification Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfMeterIdentificationClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Meter Identification Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfMeterIdentificationClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Meter Identification Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfMeterIdentificationClusterServerInitCallback(uint8_t endpoint); -/** @brief Meter Identification Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfMeterIdentificationClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Meter Identification Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfMeterIdentificationClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Meter Identification Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfMeterIdentificationClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Meter Identification Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfMeterIdentificationClusterServerTickCallback(uint8_t endpoint); - -/** @} END Meter Identification Cluster Callbacks */ - -/** @name Appliance Events and Alert Cluster Callbacks */ -// @{ - -/** @brief Appliance Events and Alert Cluster Alerts Notification - * - * - * - * @param alertsCount Ver.: always - * @param alertStructures Ver.: always - */ -bool emberAfApplianceEventsAndAlertClusterAlertsNotificationCallback(uint8_t alertsCount, uint8_t * alertStructures); -/** @brief Appliance Events and Alert Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfApplianceEventsAndAlertClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Appliance Events and Alert Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfApplianceEventsAndAlertClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Appliance Events and Alert Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfApplianceEventsAndAlertClusterClientInitCallback(uint8_t endpoint); -/** @brief Appliance Events and Alert Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfApplianceEventsAndAlertClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Appliance Events and Alert Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfApplianceEventsAndAlertClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Appliance Events and Alert Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfApplianceEventsAndAlertClusterClientPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Appliance Events and Alert Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfApplianceEventsAndAlertClusterClientTickCallback(uint8_t endpoint); -/** @brief Appliance Events and Alert Cluster Events Notification - * - * - * - * @param eventHeader Ver.: always - * @param eventId Ver.: always - */ -bool emberAfApplianceEventsAndAlertClusterEventsNotificationCallback(uint8_t eventHeader, uint8_t eventId); -/** @brief Appliance Events and Alert Cluster Get Alerts - * - * - * - */ -bool emberAfApplianceEventsAndAlertClusterGetAlertsCallback(void); -/** @brief Appliance Events and Alert Cluster Get Alerts Response - * - * - * - * @param alertsCount Ver.: always - * @param alertStructures Ver.: always - */ -bool emberAfApplianceEventsAndAlertClusterGetAlertsResponseCallback(uint8_t alertsCount, uint8_t * alertStructures); -/** @brief Appliance Events and Alert Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfApplianceEventsAndAlertClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Appliance Events and Alert Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfApplianceEventsAndAlertClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Appliance Events and Alert Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfApplianceEventsAndAlertClusterServerInitCallback(uint8_t endpoint); -/** @brief Appliance Events and Alert Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfApplianceEventsAndAlertClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Appliance Events and Alert Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfApplianceEventsAndAlertClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Appliance Events and Alert Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfApplianceEventsAndAlertClusterServerPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Appliance Events and Alert Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfApplianceEventsAndAlertClusterServerTickCallback(uint8_t endpoint); - -/** @} END Appliance Events and Alert Cluster Callbacks */ - -/** @name Appliance Statistics Cluster Callbacks */ -// @{ - -/** @brief Appliance Statistics Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfApplianceStatisticsClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Appliance Statistics Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfApplianceStatisticsClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Appliance Statistics Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfApplianceStatisticsClusterClientInitCallback(uint8_t endpoint); -/** @brief Appliance Statistics Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfApplianceStatisticsClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Appliance Statistics Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfApplianceStatisticsClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Appliance Statistics Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfApplianceStatisticsClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Appliance Statistics Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfApplianceStatisticsClusterClientTickCallback(uint8_t endpoint); -/** @brief Appliance Statistics Cluster Log Notification - * - * - * - * @param timeStamp Ver.: always - * @param logId Ver.: always - * @param logLength Ver.: always - * @param logPayload Ver.: always - */ -bool emberAfApplianceStatisticsClusterLogNotificationCallback(uint32_t timeStamp, uint32_t logId, uint32_t logLength, - uint8_t * logPayload); -/** @brief Appliance Statistics Cluster Log Queue Request - * - * - * - */ -bool emberAfApplianceStatisticsClusterLogQueueRequestCallback(void); -/** @brief Appliance Statistics Cluster Log Queue Response - * - * - * - * @param logQueueSize Ver.: always - * @param logIds Ver.: always - */ -bool emberAfApplianceStatisticsClusterLogQueueResponseCallback(uint8_t logQueueSize, uint8_t * logIds); -/** @brief Appliance Statistics Cluster Log Request - * - * - * - * @param logId Ver.: always - */ -bool emberAfApplianceStatisticsClusterLogRequestCallback(uint32_t logId); -/** @brief Appliance Statistics Cluster Log Response - * - * - * - * @param timeStamp Ver.: always - * @param logId Ver.: always - * @param logLength Ver.: always - * @param logPayload Ver.: always - */ -bool emberAfApplianceStatisticsClusterLogResponseCallback(uint32_t timeStamp, uint32_t logId, uint32_t logLength, - uint8_t * logPayload); -/** @brief Appliance Statistics Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfApplianceStatisticsClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Appliance Statistics Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfApplianceStatisticsClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Appliance Statistics Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfApplianceStatisticsClusterServerInitCallback(uint8_t endpoint); -/** @brief Appliance Statistics Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfApplianceStatisticsClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Appliance Statistics Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfApplianceStatisticsClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Appliance Statistics Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfApplianceStatisticsClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Appliance Statistics Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfApplianceStatisticsClusterServerTickCallback(uint8_t endpoint); -/** @brief Appliance Statistics Cluster Statistics Available - * - * - * - * @param logQueueSize Ver.: always - * @param logIds Ver.: always - */ -bool emberAfApplianceStatisticsClusterStatisticsAvailableCallback(uint8_t logQueueSize, uint8_t * logIds); - -/** @} END Appliance Statistics Cluster Callbacks */ - -/** @name Electrical Measurement Cluster Callbacks */ -// @{ - -/** @brief Electrical Measurement Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfElectricalMeasurementClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Electrical Measurement Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfElectricalMeasurementClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Electrical Measurement Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfElectricalMeasurementClusterClientInitCallback(uint8_t endpoint); -/** @brief Electrical Measurement Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfElectricalMeasurementClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Electrical Measurement Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfElectricalMeasurementClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Electrical Measurement Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfElectricalMeasurementClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Electrical Measurement Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfElectricalMeasurementClusterClientTickCallback(uint8_t endpoint); -/** @brief Electrical Measurement Cluster Get Measurement Profile Command - * - * - * - * @param attributeId Ver.: always - * @param startTime Ver.: always - * @param numberOfIntervals Ver.: always - */ -bool emberAfElectricalMeasurementClusterGetMeasurementProfileCommandCallback(uint16_t attributeId, uint32_t startTime, - uint8_t numberOfIntervals); -/** @brief Electrical Measurement Cluster Get Measurement Profile Response Command - * - * - * - * @param startTime Ver.: always - * @param status Ver.: always - * @param profileIntervalPeriod Ver.: always - * @param numberOfIntervalsDelivered Ver.: always - * @param attributeId Ver.: always - * @param intervals Ver.: always - */ -bool emberAfElectricalMeasurementClusterGetMeasurementProfileResponseCommandCallback(uint32_t startTime, uint8_t status, - uint8_t profileIntervalPeriod, - uint8_t numberOfIntervalsDelivered, - uint16_t attributeId, uint8_t * intervals); -/** @brief Electrical Measurement Cluster Get Profile Info Command - * - * - * - */ -bool emberAfElectricalMeasurementClusterGetProfileInfoCommandCallback(void); -/** @brief Electrical Measurement Cluster Get Profile Info Response Command - * - * - * - * @param profileCount Ver.: always - * @param profileIntervalPeriod Ver.: always - * @param maxNumberOfIntervals Ver.: always - * @param listOfAttributes Ver.: always - */ -bool emberAfElectricalMeasurementClusterGetProfileInfoResponseCommandCallback(uint8_t profileCount, uint8_t profileIntervalPeriod, - uint8_t maxNumberOfIntervals, - uint8_t * listOfAttributes); -/** @brief Electrical Measurement Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfElectricalMeasurementClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Electrical Measurement Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfElectricalMeasurementClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Electrical Measurement Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfElectricalMeasurementClusterServerInitCallback(uint8_t endpoint); -/** @brief Electrical Measurement Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfElectricalMeasurementClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Electrical Measurement Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfElectricalMeasurementClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Electrical Measurement Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfElectricalMeasurementClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Electrical Measurement Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfElectricalMeasurementClusterServerTickCallback(uint8_t endpoint); - -/** @} END Electrical Measurement Cluster Callbacks */ - -/** @name Diagnostics Cluster Callbacks */ -// @{ - -/** @brief Diagnostics Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfDiagnosticsClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Diagnostics Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfDiagnosticsClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Diagnostics Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfDiagnosticsClusterClientInitCallback(uint8_t endpoint); -/** @brief Diagnostics Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfDiagnosticsClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Diagnostics Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfDiagnosticsClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Diagnostics Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfDiagnosticsClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Diagnostics Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfDiagnosticsClusterClientTickCallback(uint8_t endpoint); -/** @brief Diagnostics Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfDiagnosticsClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Diagnostics Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfDiagnosticsClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Diagnostics Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfDiagnosticsClusterServerInitCallback(uint8_t endpoint); -/** @brief Diagnostics Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfDiagnosticsClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Diagnostics Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfDiagnosticsClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Diagnostics Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfDiagnosticsClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Diagnostics Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfDiagnosticsClusterServerTickCallback(uint8_t endpoint); - -/** @} END Diagnostics Cluster Callbacks */ - -/** @name ZLL Commissioning Cluster Callbacks */ -// @{ - -/** @brief ZLL Commissioning Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfZllCommissioningClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief ZLL Commissioning Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfZllCommissioningClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief ZLL Commissioning Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfZllCommissioningClusterClientInitCallback(uint8_t endpoint); -/** @brief ZLL Commissioning Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfZllCommissioningClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief ZLL Commissioning Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfZllCommissioningClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief ZLL Commissioning Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfZllCommissioningClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief ZLL Commissioning Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfZllCommissioningClusterClientTickCallback(uint8_t endpoint); -/** @brief ZLL Commissioning Cluster Device Information Request - * - * - * - * @param transaction Ver.: always - * @param startIndex Ver.: always - */ -bool emberAfZllCommissioningClusterDeviceInformationRequestCallback(uint32_t transaction, uint8_t startIndex); -/** @brief ZLL Commissioning Cluster Device Information Response - * - * - * - * @param transaction Ver.: always - * @param numberOfSubDevices Ver.: always - * @param startIndex Ver.: always - * @param deviceInformationRecordCount Ver.: always - * @param deviceInformationRecordList Ver.: always - */ -bool emberAfZllCommissioningClusterDeviceInformationResponseCallback(uint32_t transaction, uint8_t numberOfSubDevices, - uint8_t startIndex, uint8_t deviceInformationRecordCount, - uint8_t * deviceInformationRecordList); -/** @brief ZLL Commissioning Cluster Endpoint Information - * - * - * - * @param ieeeAddress Ver.: always - * @param networkAddress Ver.: always - * @param endpointId Ver.: always - * @param profileId Ver.: always - * @param deviceId Ver.: always - * @param version Ver.: always - */ -bool emberAfZllCommissioningClusterEndpointInformationCallback(uint8_t * ieeeAddress, uint16_t networkAddress, uint8_t endpointId, - uint16_t profileId, uint16_t deviceId, uint8_t version); -/** @brief ZLL Commissioning Cluster Get Endpoint List Request - * - * - * - * @param startIndex Ver.: always - */ -bool emberAfZllCommissioningClusterGetEndpointListRequestCallback(uint8_t startIndex); -/** @brief ZLL Commissioning Cluster Get Endpoint List Response - * - * - * - * @param total Ver.: always - * @param startIndex Ver.: always - * @param count Ver.: always - * @param endpointInformationRecordList Ver.: always - */ -bool emberAfZllCommissioningClusterGetEndpointListResponseCallback(uint8_t total, uint8_t startIndex, uint8_t count, - uint8_t * endpointInformationRecordList); -/** @brief ZLL Commissioning Cluster Get Group Identifiers Request - * - * - * - * @param startIndex Ver.: always - */ -bool emberAfZllCommissioningClusterGetGroupIdentifiersRequestCallback(uint8_t startIndex); -/** @brief ZLL Commissioning Cluster Get Group Identifiers Response - * - * - * - * @param total Ver.: always - * @param startIndex Ver.: always - * @param count Ver.: always - * @param groupInformationRecordList Ver.: always - */ -bool emberAfZllCommissioningClusterGetGroupIdentifiersResponseCallback(uint8_t total, uint8_t startIndex, uint8_t count, - uint8_t * groupInformationRecordList); -/** @brief ZLL Commissioning Cluster Identify Request - * - * - * - * @param transaction Ver.: always - * @param identifyDuration Ver.: always - */ -bool emberAfZllCommissioningClusterIdentifyRequestCallback(uint32_t transaction, uint16_t identifyDuration); -/** @brief ZLL Commissioning Cluster Network Join End Device Request - * - * - * - * @param transaction Ver.: always - * @param extendedPanId Ver.: always - * @param keyIndex Ver.: always - * @param encryptedNetworkKey Ver.: always - * @param networkUpdateId Ver.: always - * @param logicalChannel Ver.: always - * @param panId Ver.: always - * @param networkAddress Ver.: always - * @param groupIdentifiersBegin Ver.: always - * @param groupIdentifiersEnd Ver.: always - * @param freeNetworkAddressRangeBegin Ver.: always - * @param freeNetworkAddressRangeEnd Ver.: always - * @param freeGroupIdentifierRangeBegin Ver.: always - * @param freeGroupIdentifierRangeEnd Ver.: always - */ -bool emberAfZllCommissioningClusterNetworkJoinEndDeviceRequestCallback( - uint32_t transaction, uint8_t * extendedPanId, uint8_t keyIndex, uint8_t * encryptedNetworkKey, uint8_t networkUpdateId, - uint8_t logicalChannel, uint16_t panId, uint16_t networkAddress, uint16_t groupIdentifiersBegin, uint16_t groupIdentifiersEnd, - uint16_t freeNetworkAddressRangeBegin, uint16_t freeNetworkAddressRangeEnd, uint16_t freeGroupIdentifierRangeBegin, - uint16_t freeGroupIdentifierRangeEnd); -/** @brief ZLL Commissioning Cluster Network Join End Device Response - * - * - * - * @param transaction Ver.: always - * @param status Ver.: always - */ -bool emberAfZllCommissioningClusterNetworkJoinEndDeviceResponseCallback(uint32_t transaction, uint8_t status); -/** @brief ZLL Commissioning Cluster Network Join Router Request - * - * - * - * @param transaction Ver.: always - * @param extendedPanId Ver.: always - * @param keyIndex Ver.: always - * @param encryptedNetworkKey Ver.: always - * @param networkUpdateId Ver.: always - * @param logicalChannel Ver.: always - * @param panId Ver.: always - * @param networkAddress Ver.: always - * @param groupIdentifiersBegin Ver.: always - * @param groupIdentifiersEnd Ver.: always - * @param freeNetworkAddressRangeBegin Ver.: always - * @param freeNetworkAddressRangeEnd Ver.: always - * @param freeGroupIdentifierRangeBegin Ver.: always - * @param freeGroupIdentifierRangeEnd Ver.: always - */ -bool emberAfZllCommissioningClusterNetworkJoinRouterRequestCallback( - uint32_t transaction, uint8_t * extendedPanId, uint8_t keyIndex, uint8_t * encryptedNetworkKey, uint8_t networkUpdateId, - uint8_t logicalChannel, uint16_t panId, uint16_t networkAddress, uint16_t groupIdentifiersBegin, uint16_t groupIdentifiersEnd, - uint16_t freeNetworkAddressRangeBegin, uint16_t freeNetworkAddressRangeEnd, uint16_t freeGroupIdentifierRangeBegin, - uint16_t freeGroupIdentifierRangeEnd); -/** @brief ZLL Commissioning Cluster Network Join Router Response - * - * - * - * @param transaction Ver.: always - * @param status Ver.: always - */ -bool emberAfZllCommissioningClusterNetworkJoinRouterResponseCallback(uint32_t transaction, uint8_t status); -/** @brief ZLL Commissioning Cluster Network Start Request - * - * - * - * @param transaction Ver.: always - * @param extendedPanId Ver.: always - * @param keyIndex Ver.: always - * @param encryptedNetworkKey Ver.: always - * @param logicalChannel Ver.: always - * @param panId Ver.: always - * @param networkAddress Ver.: always - * @param groupIdentifiersBegin Ver.: always - * @param groupIdentifiersEnd Ver.: always - * @param freeNetworkAddressRangeBegin Ver.: always - * @param freeNetworkAddressRangeEnd Ver.: always - * @param freeGroupIdentifierRangeBegin Ver.: always - * @param freeGroupIdentifierRangeEnd Ver.: always - * @param initiatorIeeeAddress Ver.: always - * @param initiatorNetworkAddress Ver.: always - */ -bool emberAfZllCommissioningClusterNetworkStartRequestCallback( - uint32_t transaction, uint8_t * extendedPanId, uint8_t keyIndex, uint8_t * encryptedNetworkKey, uint8_t logicalChannel, - uint16_t panId, uint16_t networkAddress, uint16_t groupIdentifiersBegin, uint16_t groupIdentifiersEnd, - uint16_t freeNetworkAddressRangeBegin, uint16_t freeNetworkAddressRangeEnd, uint16_t freeGroupIdentifierRangeBegin, - uint16_t freeGroupIdentifierRangeEnd, uint8_t * initiatorIeeeAddress, uint16_t initiatorNetworkAddress); -/** @brief ZLL Commissioning Cluster Network Start Response - * - * - * - * @param transaction Ver.: always - * @param status Ver.: always - * @param extendedPanId Ver.: always - * @param networkUpdateId Ver.: always - * @param logicalChannel Ver.: always - * @param panId Ver.: always - */ -bool emberAfZllCommissioningClusterNetworkStartResponseCallback(uint32_t transaction, uint8_t status, uint8_t * extendedPanId, - uint8_t networkUpdateId, uint8_t logicalChannel, uint16_t panId); -/** @brief ZLL Commissioning Cluster Network Update Request - * - * - * - * @param transaction Ver.: always - * @param extendedPanId Ver.: always - * @param networkUpdateId Ver.: always - * @param logicalChannel Ver.: always - * @param panId Ver.: always - * @param networkAddress Ver.: always - */ -bool emberAfZllCommissioningClusterNetworkUpdateRequestCallback(uint32_t transaction, uint8_t * extendedPanId, - uint8_t networkUpdateId, uint8_t logicalChannel, uint16_t panId, - uint16_t networkAddress); -/** @brief ZLL Commissioning Cluster Reset To Factory New Request - * - * - * - * @param transaction Ver.: always - */ -bool emberAfZllCommissioningClusterResetToFactoryNewRequestCallback(uint32_t transaction); -/** @brief ZLL Commissioning Cluster Scan Request - * - * - * - * @param transaction Ver.: always - * @param zigbeeInformation Ver.: always - * @param zllInformation Ver.: always - */ -bool emberAfZllCommissioningClusterScanRequestCallback(uint32_t transaction, uint8_t zigbeeInformation, uint8_t zllInformation); -/** @brief ZLL Commissioning Cluster Scan Response - * - * - * - * @param transaction Ver.: always - * @param rssiCorrection Ver.: always - * @param zigbeeInformation Ver.: always - * @param zllInformation Ver.: always - * @param keyBitmask Ver.: always - * @param responseId Ver.: always - * @param extendedPanId Ver.: always - * @param networkUpdateId Ver.: always - * @param logicalChannel Ver.: always - * @param panId Ver.: always - * @param networkAddress Ver.: always - * @param numberOfSubDevices Ver.: always - * @param totalGroupIds Ver.: always - * @param endpointId Ver.: always - * @param profileId Ver.: always - * @param deviceId Ver.: always - * @param version Ver.: always - * @param groupIdCount Ver.: always - */ -bool emberAfZllCommissioningClusterScanResponseCallback(uint32_t transaction, uint8_t rssiCorrection, uint8_t zigbeeInformation, - uint8_t zllInformation, uint16_t keyBitmask, uint32_t responseId, - uint8_t * extendedPanId, uint8_t networkUpdateId, uint8_t logicalChannel, - uint16_t panId, uint16_t networkAddress, uint8_t numberOfSubDevices, - uint8_t totalGroupIds, uint8_t endpointId, uint16_t profileId, - uint16_t deviceId, uint8_t version, uint8_t groupIdCount); -/** @brief ZLL Commissioning Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfZllCommissioningClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief ZLL Commissioning Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfZllCommissioningClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief ZLL Commissioning Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfZllCommissioningClusterServerInitCallback(uint8_t endpoint); -/** @brief ZLL Commissioning Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfZllCommissioningClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief ZLL Commissioning Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfZllCommissioningClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief ZLL Commissioning Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfZllCommissioningClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief ZLL Commissioning Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfZllCommissioningClusterServerTickCallback(uint8_t endpoint); - -/** @} END ZLL Commissioning Cluster Callbacks */ - -/** @name Sample Mfg Specific Cluster Cluster Callbacks */ -// @{ - -/** @brief Sample Mfg Specific Cluster Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfSampleMfgSpecificClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Sample Mfg Specific Cluster Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfSampleMfgSpecificClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Sample Mfg Specific Cluster Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfSampleMfgSpecificClusterClientInitCallback(uint8_t endpoint); -/** @brief Sample Mfg Specific Cluster Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfSampleMfgSpecificClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Sample Mfg Specific Cluster Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfSampleMfgSpecificClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Sample Mfg Specific Cluster Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfSampleMfgSpecificClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Sample Mfg Specific Cluster Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfSampleMfgSpecificClusterClientTickCallback(uint8_t endpoint); -/** @brief Sample Mfg Specific Cluster Cluster Command One - * - * - * - * @param argOne Ver.: always - */ -bool emberAfSampleMfgSpecificClusterCommandOneCallback(uint8_t argOne); -/** @brief Sample Mfg Specific Cluster Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfSampleMfgSpecificClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Sample Mfg Specific Cluster Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfSampleMfgSpecificClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Sample Mfg Specific Cluster Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfSampleMfgSpecificClusterServerInitCallback(uint8_t endpoint); -/** @brief Sample Mfg Specific Cluster Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfSampleMfgSpecificClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Sample Mfg Specific Cluster Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfSampleMfgSpecificClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Sample Mfg Specific Cluster Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfSampleMfgSpecificClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Sample Mfg Specific Cluster Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfSampleMfgSpecificClusterServerTickCallback(uint8_t endpoint); - -/** @} END Sample Mfg Specific Cluster Cluster Callbacks */ - -/** @name Sample Mfg Specific Cluster 2 Cluster Callbacks */ -// @{ - -/** @brief Sample Mfg Specific Cluster 2 Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfSampleMfgSpecificCluster2ClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Sample Mfg Specific Cluster 2 Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfSampleMfgSpecificCluster2ClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Sample Mfg Specific Cluster 2 Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfSampleMfgSpecificCluster2ClientInitCallback(uint8_t endpoint); -/** @brief Sample Mfg Specific Cluster 2 Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfSampleMfgSpecificCluster2ClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Sample Mfg Specific Cluster 2 Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfSampleMfgSpecificCluster2ClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Sample Mfg Specific Cluster 2 Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfSampleMfgSpecificCluster2ClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Sample Mfg Specific Cluster 2 Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfSampleMfgSpecificCluster2ClientTickCallback(uint8_t endpoint); -/** @brief Sample Mfg Specific Cluster 2 Cluster Command Two - * - * - * - * @param argOne Ver.: always - */ -bool emberAfSampleMfgSpecificCluster2CommandTwoCallback(uint8_t argOne); -/** @brief Sample Mfg Specific Cluster 2 Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfSampleMfgSpecificCluster2ServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Sample Mfg Specific Cluster 2 Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfSampleMfgSpecificCluster2ServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Sample Mfg Specific Cluster 2 Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfSampleMfgSpecificCluster2ServerInitCallback(uint8_t endpoint); -/** @brief Sample Mfg Specific Cluster 2 Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfSampleMfgSpecificCluster2ServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Sample Mfg Specific Cluster 2 Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfSampleMfgSpecificCluster2ServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Sample Mfg Specific Cluster 2 Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfSampleMfgSpecificCluster2ServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Sample Mfg Specific Cluster 2 Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfSampleMfgSpecificCluster2ServerTickCallback(uint8_t endpoint); - -/** @} END Sample Mfg Specific Cluster 2 Cluster Callbacks */ - -/** @name Configuration Cluster Cluster Callbacks */ -// @{ - -/** @brief Configuration Cluster Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfOtaConfigurationClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Configuration Cluster Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfOtaConfigurationClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Configuration Cluster Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfOtaConfigurationClusterClientInitCallback(uint8_t endpoint); -/** @brief Configuration Cluster Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfOtaConfigurationClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Configuration Cluster Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfOtaConfigurationClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Configuration Cluster Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfOtaConfigurationClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Configuration Cluster Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfOtaConfigurationClusterClientTickCallback(uint8_t endpoint); -/** @brief Configuration Cluster Cluster Lock Tokens - * - * - * - */ -bool emberAfOtaConfigurationClusterLockTokensCallback(void); -/** @brief Configuration Cluster Cluster Read Tokens - * - * - * - * @param token Ver.: always - */ -bool emberAfOtaConfigurationClusterReadTokensCallback(uint16_t token); -/** @brief Configuration Cluster Cluster Return Token - * - * - * - * @param token Ver.: always - * @param data Ver.: always - */ -bool emberAfOtaConfigurationClusterReturnTokenCallback(uint16_t token, uint8_t * data); -/** @brief Configuration Cluster Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfOtaConfigurationClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Configuration Cluster Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfOtaConfigurationClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Configuration Cluster Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfOtaConfigurationClusterServerInitCallback(uint8_t endpoint); -/** @brief Configuration Cluster Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfOtaConfigurationClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Configuration Cluster Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfOtaConfigurationClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Configuration Cluster Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfOtaConfigurationClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Configuration Cluster Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfOtaConfigurationClusterServerTickCallback(uint8_t endpoint); -/** @brief Configuration Cluster Cluster Set Token - * - * - * - * @param token Ver.: always - * @param data Ver.: always - */ -bool emberAfOtaConfigurationClusterSetTokenCallback(uint16_t token, uint8_t * data); -/** @brief Configuration Cluster Cluster Unlock Tokens - * - * - * - * @param data Ver.: always - */ -bool emberAfOtaConfigurationClusterUnlockTokensCallback(uint8_t * data); - -/** @} END Configuration Cluster Cluster Callbacks */ - -/** @name MFGLIB Cluster Cluster Callbacks */ -// @{ - -/** @brief MFGLIB Cluster Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfMfglibClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief MFGLIB Cluster Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfMfglibClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief MFGLIB Cluster Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfMfglibClusterClientInitCallback(uint8_t endpoint); -/** @brief MFGLIB Cluster Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfMfglibClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief MFGLIB Cluster Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfMfglibClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief MFGLIB Cluster Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfMfglibClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief MFGLIB Cluster Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfMfglibClusterClientTickCallback(uint8_t endpoint); -/** @brief MFGLIB Cluster Cluster Rx Mode - * - * - * - * @param channel Ver.: always - * @param power Ver.: always - * @param time Ver.: always - */ -bool emberAfMfglibClusterRxModeCallback(uint8_t channel, int8_t power, uint16_t time); -/** @brief MFGLIB Cluster Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfMfglibClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief MFGLIB Cluster Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfMfglibClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief MFGLIB Cluster Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfMfglibClusterServerInitCallback(uint8_t endpoint); -/** @brief MFGLIB Cluster Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfMfglibClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief MFGLIB Cluster Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfMfglibClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief MFGLIB Cluster Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfMfglibClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief MFGLIB Cluster Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfMfglibClusterServerTickCallback(uint8_t endpoint); -/** @brief MFGLIB Cluster Cluster Stream - * - * - * - * @param channel Ver.: always - * @param power Ver.: always - * @param time Ver.: always - */ -bool emberAfMfglibClusterStreamCallback(uint8_t channel, int8_t power, uint16_t time); -/** @brief MFGLIB Cluster Cluster Tone - * - * - * - * @param channel Ver.: always - * @param power Ver.: always - * @param time Ver.: always - */ -bool emberAfMfglibClusterToneCallback(uint8_t channel, int8_t power, uint16_t time); - -/** @} END MFGLIB Cluster Cluster Callbacks */ - -/** @name SL Works With All Hubs Cluster Callbacks */ -// @{ - -/** @brief SL Works With All Hubs Cluster Aps Ack Enablement Query Response - * - * - * - * @param numberExemptClusters Ver.: always - * @param clusterId Ver.: always - */ -bool emberAfSlWwahClusterApsAckEnablementQueryResponseCallback(uint8_t numberExemptClusters, uint8_t * clusterId); -/** @brief SL Works With All Hubs Cluster Aps Ack Requirement Query - * - * - * - */ -bool emberAfSlWwahClusterApsAckRequirementQueryCallback(void); -/** @brief SL Works With All Hubs Cluster Aps Link Key Authorization Query - * - * - * - * @param clusterId Ver.: always - */ -bool emberAfSlWwahClusterApsLinkKeyAuthorizationQueryCallback(uint16_t clusterId); -/** @brief SL Works With All Hubs Cluster Aps Link Key Authorization Query Response - * - * - * - * @param clusterId Ver.: always - * @param apsLinkKeyAuthStatus Ver.: always - */ -bool emberAfSlWwahClusterApsLinkKeyAuthorizationQueryResponseCallback(uint16_t clusterId, uint8_t apsLinkKeyAuthStatus); -/** @brief SL Works With All Hubs Cluster Clear Binding Table - * - * - * - */ -bool emberAfSlWwahClusterClearBindingTableCallback(void); -/** @brief SL Works With All Hubs Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfSlWwahClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief SL Works With All Hubs Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfSlWwahClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief SL Works With All Hubs Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfSlWwahClusterClientInitCallback(uint8_t endpoint); -/** @brief SL Works With All Hubs Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfSlWwahClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief SL Works With All Hubs Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfSlWwahClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief SL Works With All Hubs Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfSlWwahClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief SL Works With All Hubs Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfSlWwahClusterClientTickCallback(uint8_t endpoint); -/** @brief SL Works With All Hubs Cluster Debug Report Query - * - * - * - * @param debugReportId Ver.: always - */ -bool emberAfSlWwahClusterDebugReportQueryCallback(uint8_t debugReportId); -/** @brief SL Works With All Hubs Cluster Debug Report Query Response - * - * - * - * @param debugReportId Ver.: always - * @param debugReportData Ver.: always - */ -bool emberAfSlWwahClusterDebugReportQueryResponseCallback(uint8_t debugReportId, uint8_t * debugReportData); -/** @brief SL Works With All Hubs Cluster Disable Aps Link Key Authorization - * - * - * - * @param numberExemptClusters Ver.: always - * @param clusterId Ver.: always - */ -bool emberAfSlWwahClusterDisableApsLinkKeyAuthorizationCallback(uint8_t numberExemptClusters, uint8_t * clusterId); -/** @brief SL Works With All Hubs Cluster Disable Configuration Mode - * - * - * - */ -bool emberAfSlWwahClusterDisableConfigurationModeCallback(void); -/** @brief SL Works With All Hubs Cluster Disable Mgmt Leave Without Rejoin - * - * - * - */ -bool emberAfSlWwahClusterDisableMgmtLeaveWithoutRejoinCallback(void); -/** @brief SL Works With All Hubs Cluster Disable Ota Downgrades - * - * - * - */ -bool emberAfSlWwahClusterDisableOtaDowngradesCallback(void); -/** @brief SL Works With All Hubs Cluster Disable Periodic Router Check Ins - * - * - * - */ -bool emberAfSlWwahClusterDisablePeriodicRouterCheckInsCallback(void); -/** @brief SL Works With All Hubs Cluster Disable Touchlink Interpan Message Support - * - * - * - */ -bool emberAfSlWwahClusterDisableTouchlinkInterpanMessageSupportCallback(void); -/** @brief SL Works With All Hubs Cluster Disable Wwah App Event Retry Algorithm - * - * - * - */ -bool emberAfSlWwahClusterDisableWwahAppEventRetryAlgorithmCallback(void); -/** @brief SL Works With All Hubs Cluster Disable Wwah Bad Parent Recovery - * - * - * - */ -bool emberAfSlWwahClusterDisableWwahBadParentRecoveryCallback(void); -/** @brief SL Works With All Hubs Cluster Disable Wwah Parent Classification - * - * - * - */ -bool emberAfSlWwahClusterDisableWwahParentClassificationCallback(void); -/** @brief SL Works With All Hubs Cluster Disable Wwah Rejoin Algorithm - * - * - * - */ -bool emberAfSlWwahClusterDisableWwahRejoinAlgorithmCallback(void); -/** @brief SL Works With All Hubs Cluster Enable Aps Link Key Authorization - * - * - * - * @param numberExemptClusters Ver.: always - * @param clusterId Ver.: always - */ -bool emberAfSlWwahClusterEnableApsLinkKeyAuthorizationCallback(uint8_t numberExemptClusters, uint8_t * clusterId); -/** @brief SL Works With All Hubs Cluster Enable Configuration Mode - * - * - * - */ -bool emberAfSlWwahClusterEnableConfigurationModeCallback(void); -/** @brief SL Works With All Hubs Cluster Enable Periodic Router Check Ins - * - * - * - * @param checkInInterval Ver.: always - */ -bool emberAfSlWwahClusterEnablePeriodicRouterCheckInsCallback(uint16_t checkInInterval); -/** @brief SL Works With All Hubs Cluster Enable Tc Security On Ntwk Key Rotation - * - * - * - */ -bool emberAfSlWwahClusterEnableTcSecurityOnNtwkKeyRotationCallback(void); -/** @brief SL Works With All Hubs Cluster Enable Wwah App Event Retry Algorithm - * - * - * - * @param firstBackoffTimeSeconds Ver.: always - * @param backoffSeqCommonRatio Ver.: always - * @param maxBackoffTimeSeconds Ver.: always - * @param maxRedeliveryAttempts Ver.: always - */ -bool emberAfSlWwahClusterEnableWwahAppEventRetryAlgorithmCallback(uint8_t firstBackoffTimeSeconds, uint8_t backoffSeqCommonRatio, - uint32_t maxBackoffTimeSeconds, uint8_t maxRedeliveryAttempts); -/** @brief SL Works With All Hubs Cluster Enable Wwah Bad Parent Recovery - * - * - * - */ -bool emberAfSlWwahClusterEnableWwahBadParentRecoveryCallback(void); -/** @brief SL Works With All Hubs Cluster Enable Wwah Parent Classification - * - * - * - */ -bool emberAfSlWwahClusterEnableWwahParentClassificationCallback(void); -/** @brief SL Works With All Hubs Cluster Enable Wwah Rejoin Algorithm - * - * - * - * @param fastRejoinTimeoutSeconds Ver.: always - * @param durationBetweenRejoinsSeconds Ver.: always - * @param fastRejoinFirstBackoffSeconds Ver.: always - * @param maxBackoffTimeSeconds Ver.: always - * @param maxBackoffIterations Ver.: always - */ -bool emberAfSlWwahClusterEnableWwahRejoinAlgorithmCallback(uint16_t fastRejoinTimeoutSeconds, - uint16_t durationBetweenRejoinsSeconds, - uint16_t fastRejoinFirstBackoffSeconds, uint16_t maxBackoffTimeSeconds, - uint16_t maxBackoffIterations); -/** @brief SL Works With All Hubs Cluster New Debug Report Notification - * - * - * - * @param debugReportId Ver.: always - * @param debugReportSize Ver.: always - */ -bool emberAfSlWwahClusterNewDebugReportNotificationCallback(uint8_t debugReportId, uint32_t debugReportSize); -/** @brief SL Works With All Hubs Cluster Power Descriptor Change - * - * - * - * @param currentPowerMode Ver.: always - * @param availablePowerSources Ver.: always - * @param currentPowerSource Ver.: always - * @param currentPowerSourceLevel Ver.: always - */ -bool emberAfSlWwahClusterPowerDescriptorChangeCallback(uint32_t currentPowerMode, uint32_t availablePowerSources, - uint32_t currentPowerSource, uint32_t currentPowerSourceLevel); -/** @brief SL Works With All Hubs Cluster Powering Off Notification - * - * - * - * @param powerNotificationReason Ver.: always - * @param manufacturerId Ver.: always - * @param manufacturerReasonLength Ver.: always - * @param manufacturerReason Ver.: always - */ -bool emberAfSlWwahClusterPoweringOffNotificationCallback(uint8_t powerNotificationReason, uint16_t manufacturerId, - uint8_t manufacturerReasonLength, uint8_t * manufacturerReason); -/** @brief SL Works With All Hubs Cluster Powering On Notification - * - * - * - * @param powerNotificationReason Ver.: always - * @param manufacturerId Ver.: always - * @param manufacturerReasonLength Ver.: always - * @param manufacturerReason Ver.: always - */ -bool emberAfSlWwahClusterPoweringOnNotificationCallback(uint8_t powerNotificationReason, uint16_t manufacturerId, - uint8_t manufacturerReasonLength, uint8_t * manufacturerReason); -/** @brief SL Works With All Hubs Cluster Remove Aps Acks On Unicasts Requirement - * - * - * - */ -bool emberAfSlWwahClusterRemoveApsAcksOnUnicastsRequirementCallback(void); -/** @brief SL Works With All Hubs Cluster Request New Aps Link Key - * - * - * - */ -bool emberAfSlWwahClusterRequestNewApsLinkKeyCallback(void); -/** @brief SL Works With All Hubs Cluster Request Time - * - * - * - */ -bool emberAfSlWwahClusterRequestTimeCallback(void); -/** @brief SL Works With All Hubs Cluster Require Aps Acks On Unicasts - * - * - * - * @param numberExemptClusters Ver.: always - * @param clusterId Ver.: always - */ -bool emberAfSlWwahClusterRequireApsAcksOnUnicastsCallback(uint8_t numberExemptClusters, uint8_t * clusterId); -/** @brief SL Works With All Hubs Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfSlWwahClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief SL Works With All Hubs Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfSlWwahClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief SL Works With All Hubs Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfSlWwahClusterServerInitCallback(uint8_t endpoint); -/** @brief SL Works With All Hubs Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfSlWwahClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief SL Works With All Hubs Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfSlWwahClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief SL Works With All Hubs Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfSlWwahClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief SL Works With All Hubs Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfSlWwahClusterServerTickCallback(uint8_t endpoint); -/** @brief SL Works With All Hubs Cluster Set Ias Zone Enrollment Method - * - * - * - * @param enrollmentMode Ver.: always - */ -bool emberAfSlWwahClusterSetIasZoneEnrollmentMethodCallback(uint8_t enrollmentMode); -/** @brief SL Works With All Hubs Cluster Set Mac Poll Failure Wait Time - * - * - * - * @param waitTime Ver.: always - */ -bool emberAfSlWwahClusterSetMacPollFailureWaitTimeCallback(uint8_t waitTime); -/** @brief SL Works With All Hubs Cluster Set Pending Network Update - * - * - * - * @param channel Ver.: always - * @param panId Ver.: always - */ -bool emberAfSlWwahClusterSetPendingNetworkUpdateCallback(uint8_t channel, uint16_t panId); -/** @brief SL Works With All Hubs Cluster Short Address Change - * - * - * - * @param deviceEui64 Ver.: always - * @param deviceShort Ver.: always - */ -bool emberAfSlWwahClusterShortAddressChangeCallback(uint8_t * deviceEui64, uint16_t deviceShort); -/** @brief SL Works With All Hubs Cluster Survey Beacons - * - * - * - * @param standardBeacons Ver.: always - */ -bool emberAfSlWwahClusterSurveyBeaconsCallback(uint8_t standardBeacons); -/** @brief SL Works With All Hubs Cluster Survey Beacons Response - * - * - * - * @param numberOfBeacons Ver.: always - * @param beacon Ver.: always - */ -bool emberAfSlWwahClusterSurveyBeaconsResponseCallback(uint8_t numberOfBeacons, uint8_t * beacon); -/** @brief SL Works With All Hubs Cluster Trust Center For Cluster Server Query - * - * - * - */ -bool emberAfSlWwahClusterTrustCenterForClusterServerQueryCallback(void); -/** @brief SL Works With All Hubs Cluster Trust Center For Cluster Server Query Response - * - * - * - * @param numberOfClusters Ver.: always - * @param clusterId Ver.: always - */ -bool emberAfSlWwahClusterTrustCenterForClusterServerQueryResponseCallback(uint8_t numberOfClusters, uint8_t * clusterId); -/** @brief SL Works With All Hubs Cluster Use Trust Center For Cluster Server - * - * - * - * @param numberOfClusters Ver.: always - * @param clusterId Ver.: always - */ -bool emberAfSlWwahClusterUseTrustCenterForClusterServerCallback(uint8_t numberOfClusters, uint8_t * clusterId); -/** @brief SL Works With All Hubs Cluster Use Trust Center For Cluster Server Response - * - * - * - * @param status Ver.: always - * @param clusterStatusLength Ver.: always - * @param clusterStatus Ver.: always - */ -bool emberAfSlWwahClusterUseTrustCenterForClusterServerResponseCallback(uint8_t status, uint8_t clusterStatusLength, - uint8_t * clusterStatus); - -/** @} END SL Works With All Hubs Cluster Callbacks */ - -/** @name Update TC Link Key Plugin Callbacks */ -// @{ - -/** @brief Status - * - * This callback is fired when the Update Link Key exchange process is updated - * with a status from the stack. Implementations will know that the Update TC - * Link Key plugin has completed its link key request when the keyStatus - * parameter is EMBER_VERIFY_LINK_KEY_SUCCESS. - * - * @param keyStatus An ::EmberKeyStatus value describing the success or failure - * of the key exchange process. Ver.: always - */ -void emberAfPluginUpdateTcLinkKeyStatusCallback(EmberKeyStatus keyStatus); -/** @} END Update TC Link Key Plugin Callbacks */ - -/** @name Network Steering Plugin Callbacks */ -// @{ - -/** @brief Complete - * - * This callback is fired when the Network Steering plugin is complete. - * - * @param status On success this will be set to EMBER_SUCCESS to indicate a - * network was joined successfully. On failure this will be the status code of - * the last join or scan attempt. Ver.: always - * @param totalBeacons The total number of 802.15.4 beacons that were heard, - * including beacons from different devices with the same PAN ID. Ver.: always - * @param joinAttempts The number of join attempts that were made to get onto - * an open Zigbee network. Ver.: always - * @param finalState The finishing state of the network steering process. From - * this, one is able to tell on which channel mask and with which key the - * process was complete. Ver.: always - */ -void emberAfPluginNetworkSteeringCompleteCallback(EmberStatus status, uint8_t totalBeacons, uint8_t joinAttempts, - uint8_t finalState); -/** @brief Get Power For Radio Channel - * - * This callback is fired when the Network Steering plugin needs to set the - * power level. The application has the ability to change the max power level - * used for this particular channel. - * - * @param channel The channel that the plugin is inquiring about the power - * level. Ver.: always - */ -int8_t emberAfPluginNetworkSteeringGetPowerForRadioChannelCallback(uint8_t channel); -/** @brief Get Distributed Key - * - * This callback is fired when the Network Steering plugin needs to set the distributed - * key. The application set the distributed key from Zigbee Alliance thru this callback - * or the network steering will use the default test key. - * - * @param pointer to the distributed key struct - * @return true if the key is loaded successfully, otherwise false. - * level. Ver.: always - */ -bool emberAfPluginNetworkSteeringGetDistributedKeyCallback(EmberKeyData * key); -/** @brief Get Node Type - * - * This callback allows the application to set the node type that the network - * steering process will use in joining a network. - * - * @param state The current ::EmberAfPluginNetworkSteeringJoiningState. - * - * @return An ::EmberNodeType value that the network steering process will - * try to join a network as. - */ -EmberNodeType emberAfPluginNetworkSteeringGetNodeTypeCallback(EmberAfPluginNetworkSteeringJoiningState state); -/** @} END Network Steering Plugin Callbacks */ - -/** @name HAL Library Plugin Callbacks */ -// @{ - -/** - * @brief Called whenever the radio is powered on. - */ -void halRadioPowerUpHandler(void); -/** - * @brief Called whenever the radio is powered off. - */ -void halRadioPowerDownHandler(void); -/** - * @brief Called whenever the microcontroller enters/exits a idle/sleep mode - * - * @param enter True if entering idle/sleep, False if exiting - * @param sleepMode Idle/sleep mode - */ -void halSleepCallback(bool enter, SleepModes sleepMode); -/** @} END HAL Library Plugin Callbacks */ - -/** @} END addtogroup */ -#endif // SILABS_EMBER_AF_CALLBACK_PROTOTYPES diff --git a/examples/lighting-app/efr32/src/gen/cluster-id.h b/examples/lighting-app/efr32/src/gen/cluster-id.h deleted file mode 100644 index 7462d4e9cf279b..00000000000000 --- a/examples/lighting-app/efr32/src/gen/cluster-id.h +++ /dev/null @@ -1,174 +0,0 @@ -/** - * - * 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 SILABS_EMBER_AF_CLUSTER_ID -#define SILABS_EMBER_AF_CLUSTER_ID - -// Cluster domain specification levels: -// * General: zcl-7.0-07-5123-07 -// * Lighting & Occupancy: l&o-1.0-15-0014-04 -// * HA: ha-1.2.1-05-3520-30 -// * Closures: zcl-6.0-15-02018-001 -// * HVAC: zcl-6.0-15-02018-001 -// * Lighting: zcl6-errata-14-0129-15 -// * Measurement & Sensing: zcl-6.0-15-02018-001 -// * Security & Safety: zcl-6.0-15-02018-001 -// * Home Automation: UNKNOWN -// * CBA: cba-1.0-05-3516-12 -// * SE: se-1.2b-15-0131-02 -// * ZLL: zll-1.0-11-0037-10 -// * Telecom Applications: ta-1.0-07-5307-07 -// * Protocol Interfaces: ta-1.0-07-5307-07 -// * Telecommunication: ta-1.0-07-5307-07 -// * Financial: ta-1.0-07-5307-07 -// * Ember: UNKNOWN -// * HC: hc-1.0-07-5360-15 -// * GP: gp-1.0a-09-5499-26 -// * LO: UNKNOWN -// * Works With All Hubs: UNKNOWN -// * WWAH: UNKNOWN -#define ZCL_BASIC_CLUSTER_ID 0x0000 -#define ZCL_POWER_CONFIG_CLUSTER_ID 0x0001 -#define ZCL_DEVICE_TEMP_CLUSTER_ID 0x0002 -#define ZCL_IDENTIFY_CLUSTER_ID 0x0003 -#define ZCL_GROUPS_CLUSTER_ID 0x0004 -#define ZCL_SCENES_CLUSTER_ID 0x0005 -#define ZCL_ON_OFF_CLUSTER_ID 0x0006 -#define ZCL_ON_OFF_SWITCH_CONFIG_CLUSTER_ID 0x0007 -#define ZCL_LEVEL_CONTROL_CLUSTER_ID 0x0008 -#define ZCL_ALARM_CLUSTER_ID 0x0009 -#define ZCL_TIME_CLUSTER_ID 0x000A -#define ZCL_RSSI_LOCATION_CLUSTER_ID 0x000B -#define ZCL_BINARY_INPUT_BASIC_CLUSTER_ID 0x000F -#define ZCL_COMMISSIONING_CLUSTER_ID 0x0015 -#define ZCL_PARTITION_CLUSTER_ID 0x0016 -#define ZCL_OTA_BOOTLOAD_CLUSTER_ID 0x0019 -#define ZCL_POWER_PROFILE_CLUSTER_ID 0x001A -#define ZCL_APPLIANCE_CONTROL_CLUSTER_ID 0x001B -#define ZCL_POLL_CONTROL_CLUSTER_ID 0x0020 -#define ZCL_GREEN_POWER_CLUSTER_ID 0x0021 -#define ZCL_KEEPALIVE_CLUSTER_ID 0x0025 -#define ZCL_SHADE_CONFIG_CLUSTER_ID 0x0100 -#define ZCL_DOOR_LOCK_CLUSTER_ID 0x0101 -#define ZCL_WINDOW_COVERING_CLUSTER_ID 0x0102 -#define ZCL_BARRIER_CONTROL_CLUSTER_ID 0x0103 -#define ZCL_PUMP_CONFIG_CONTROL_CLUSTER_ID 0x0200 -#define ZCL_THERMOSTAT_CLUSTER_ID 0x0201 -#define ZCL_FAN_CONTROL_CLUSTER_ID 0x0202 -#define ZCL_DEHUMID_CONTROL_CLUSTER_ID 0x0203 -#define ZCL_THERMOSTAT_UI_CONFIG_CLUSTER_ID 0x0204 -#define ZCL_COLOR_CONTROL_CLUSTER_ID 0x0300 -#define ZCL_BALLAST_CONFIGURATION_CLUSTER_ID 0x0301 -#define ZCL_ILLUM_MEASUREMENT_CLUSTER_ID 0x0400 -#define ZCL_ILLUM_LEVEL_SENSING_CLUSTER_ID 0x0401 -#define ZCL_TEMP_MEASUREMENT_CLUSTER_ID 0x0402 -#define ZCL_PRESSURE_MEASUREMENT_CLUSTER_ID 0x0403 -#define ZCL_FLOW_MEASUREMENT_CLUSTER_ID 0x0404 -#define ZCL_RELATIVE_HUMIDITY_MEASUREMENT_CLUSTER_ID 0x0405 -#define ZCL_OCCUPANCY_SENSING_CLUSTER_ID 0x0406 -#define ZCL_CARBON_MONOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_ID 0x040C -#define ZCL_CARBON_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_ID 0x040D -#define ZCL_ETHYLENE_CONCENTRATION_MEASUREMENT_CLUSTER_ID 0x040E -#define ZCL_ETHYLENE_OXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_ID 0x040F -#define ZCL_HYDROGEN_CONCENTRATION_MEASUREMENT_CLUSTER_ID 0x0410 -#define ZCL_HYDROGEN_SULPHIDE_CONCENTRATION_MEASUREMENT_CLUSTER_ID 0x0411 -#define ZCL_NITRIC_OXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_ID 0x0412 -#define ZCL_NITROGEN_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_ID 0x0413 -#define ZCL_OXYGEN_CONCENTRATION_MEASUREMENT_CLUSTER_ID 0x0414 -#define ZCL_OZONE_CONCENTRATION_MEASUREMENT_CLUSTER_ID 0x0415 -#define ZCL_SULFUR_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_ID 0x0416 -#define ZCL_DISSOLVED_OXYGEN_CONCENTRATION_MEASUREMENT_CLUSTER_ID 0x0417 -#define ZCL_BROMATE_CONCENTRATION_MEASUREMENT_CLUSTER_ID 0x0418 -#define ZCL_CHLORAMINES_CONCENTRATION_MEASUREMENT_CLUSTER_ID 0x0419 -#define ZCL_CHLORINE_CONCENTRATION_MEASUREMENT_CLUSTER_ID 0x041A -#define ZCL_FECAL_COLIFORM_AND_E_COLI_CONCENTRATION_MEASUREMENT_CLUSTER_ID 0x041B -#define ZCL_FLUORIDE_CONCENTRATION_MEASUREMENT_CLUSTER_ID 0x041C -#define ZCL_HALOACETIC_ACIDS_CONCENTRATION_MEASUREMENT_CLUSTER_ID 0x041D -#define ZCL_TOTAL_TRIHALOMETHANES_CONCENTRATION_MEASUREMENT_CLUSTER_ID 0x041E -#define ZCL_TOTAL_COLIFORM_BACTERIA_CONCENTRATION_MEASUREMENT_CLUSTER_ID 0x041F -#define ZCL_TURBIDITY_CONCENTRATION_MEASUREMENT_CLUSTER_ID 0x0420 -#define ZCL_COPPER_CONCENTRATION_MEASUREMENT_CLUSTER_ID 0x0421 -#define ZCL_LEAD_CONCENTRATION_MEASUREMENT_CLUSTER_ID 0x0422 -#define ZCL_MANGANESE_CONCENTRATION_MEASUREMENT_CLUSTER_ID 0x0423 -#define ZCL_SULFATE_CONCENTRATION_MEASUREMENT_CLUSTER_ID 0x0424 -#define ZCL_BROMODICHLOROMETHANE_CONCENTRATION_MEASUREMENT_CLUSTER_ID 0x0425 -#define ZCL_BROMOFORM_CONCENTRATION_MEASUREMENT_CLUSTER_ID 0x0426 -#define ZCL_CHLORODIBROMOMETHANE_CONCENTRATION_MEASUREMENT_CLUSTER_ID 0x0427 -#define ZCL_CHLOROFORM_CONCENTRATION_MEASUREMENT_CLUSTER_ID 0x0428 -#define ZCL_SODIUM_CONCENTRATION_MEASUREMENT_CLUSTER_ID 0x0429 -#define ZCL_IAS_ZONE_CLUSTER_ID 0x0500 -#define ZCL_IAS_ACE_CLUSTER_ID 0x0501 -#define ZCL_IAS_WD_CLUSTER_ID 0x0502 -#define ZCL_GENERIC_TUNNEL_CLUSTER_ID 0x0600 -#define ZCL_BACNET_PROTOCOL_TUNNEL_CLUSTER_ID 0x0601 -#define ZCL_11073_PROTOCOL_TUNNEL_CLUSTER_ID 0x0614 -#define ZCL_ISO7816_PROTOCOL_TUNNEL_CLUSTER_ID 0x0615 -#define ZCL_PRICE_CLUSTER_ID 0x0700 -#define ZCL_DEMAND_RESPONSE_LOAD_CONTROL_CLUSTER_ID 0x0701 -#define ZCL_SIMPLE_METERING_CLUSTER_ID 0x0702 -#define ZCL_MESSAGING_CLUSTER_ID 0x0703 -#define ZCL_TUNNELING_CLUSTER_ID 0x0704 -#define ZCL_PREPAYMENT_CLUSTER_ID 0x0705 -#define ZCL_ENERGY_MANAGEMENT_CLUSTER_ID 0x0706 -#define ZCL_CALENDAR_CLUSTER_ID 0x0707 -#define ZCL_DEVICE_MANAGEMENT_CLUSTER_ID 0x0708 -#define ZCL_EVENTS_CLUSTER_ID 0x0709 -#define ZCL_MDU_PAIRING_CLUSTER_ID 0x070A -#define ZCL_SUB_GHZ_CLUSTER_ID 0x070B -#define ZCL_KEY_ESTABLISHMENT_CLUSTER_ID 0x0800 -#define ZCL_INFORMATION_CLUSTER_ID 0x0900 -#define ZCL_DATA_SHARING_CLUSTER_ID 0x0901 -#define ZCL_GAMING_CLUSTER_ID 0x0902 -#define ZCL_DATA_RATE_CONTROL_CLUSTER_ID 0x0903 -#define ZCL_VOICE_OVER_ZIGBEE_CLUSTER_ID 0x0904 -#define ZCL_CHATTING_CLUSTER_ID 0x0905 -#define ZCL_PAYMENT_CLUSTER_ID 0x0A01 -#define ZCL_BILLING_CLUSTER_ID 0x0A02 -#define ZCL_APPLIANCE_IDENTIFICATION_CLUSTER_ID 0x0B00 -#define ZCL_METER_IDENTIFICATION_CLUSTER_ID 0x0B01 -#define ZCL_APPLIANCE_EVENTS_AND_ALERT_CLUSTER_ID 0x0B02 -#define ZCL_APPLIANCE_STATISTICS_CLUSTER_ID 0x0B03 -#define ZCL_ELECTRICAL_MEASUREMENT_CLUSTER_ID 0x0B04 -#define ZCL_DIAGNOSTICS_CLUSTER_ID 0x0B05 -#define ZCL_ZLL_COMMISSIONING_CLUSTER_ID 0x1000 -#define ZCL_SAMPLE_MFG_SPECIFIC_CLUSTER_ID 0xFC00 -#define ZCL_SAMPLE_MFG_SPECIFIC_CLUSTER_2_ID 0xFC00 -#define ZCL_OTA_CONFIGURATION_CLUSTER_ID 0xFC01 -#define ZCL_MFGLIB_CLUSTER_ID 0xFC02 -#define ZCL_SL_WWAH_CLUSTER_ID 0xFC57 -#endif // SILABS_EMBER_AF_CLUSTER_ID diff --git a/examples/lighting-app/efr32/src/gen/command-id.h b/examples/lighting-app/efr32/src/gen/command-id.h deleted file mode 100644 index 823914d0466035..00000000000000 --- a/examples/lighting-app/efr32/src/gen/command-id.h +++ /dev/null @@ -1,1037 +0,0 @@ -/** - * - * 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 SILABS_EMBER_AF_COMMAND_ID -#define SILABS_EMBER_AF_COMMAND_ID - -// Global commands - -// Either direction -#define ZCL_READ_ATTRIBUTES_COMMAND_ID 0x00 // Ver.: always -#define ZCL_READ_ATTRIBUTES_RESPONSE_COMMAND_ID 0x01 // Ver.: always -#define ZCL_WRITE_ATTRIBUTES_COMMAND_ID 0x02 // Ver.: always -#define ZCL_WRITE_ATTRIBUTES_UNDIVIDED_COMMAND_ID 0x03 // Ver.: always -#define ZCL_WRITE_ATTRIBUTES_RESPONSE_COMMAND_ID 0x04 // Ver.: always -#define ZCL_WRITE_ATTRIBUTES_NO_RESPONSE_COMMAND_ID 0x05 // Ver.: always -#define ZCL_CONFIGURE_REPORTING_COMMAND_ID 0x06 // Ver.: always -#define ZCL_CONFIGURE_REPORTING_RESPONSE_COMMAND_ID 0x07 // Ver.: always -#define ZCL_READ_REPORTING_CONFIGURATION_COMMAND_ID 0x08 // Ver.: always -#define ZCL_READ_REPORTING_CONFIGURATION_RESPONSE_COMMAND_ID 0x09 // Ver.: always -#define ZCL_REPORT_ATTRIBUTES_COMMAND_ID 0x0A // Ver.: always -#define ZCL_DEFAULT_RESPONSE_COMMAND_ID 0x0B // Ver.: always -#define ZCL_DISCOVER_ATTRIBUTES_COMMAND_ID 0x0C // Ver.: always -#define ZCL_DISCOVER_ATTRIBUTES_RESPONSE_COMMAND_ID 0x0D // Ver.: always -#define ZCL_READ_ATTRIBUTES_STRUCTURED_COMMAND_ID 0x0E // Ver.: always -#define ZCL_WRITE_ATTRIBUTES_STRUCTURED_COMMAND_ID 0x0F // Ver.: always -#define ZCL_WRITE_ATTRIBUTES_STRUCTURED_RESPONSE_COMMAND_ID 0x10 // Ver.: always -#define ZCL_DISCOVER_COMMANDS_RECEIVED_COMMAND_ID 0x11 // Ver.: always -#define ZCL_DISCOVER_COMMANDS_RECEIVED_RESPONSE_COMMAND_ID 0x12 // Ver.: always -#define ZCL_DISCOVER_COMMANDS_GENERATED_COMMAND_ID 0x13 // Ver.: always -#define ZCL_DISCOVER_COMMANDS_GENERATED_RESPONSE_COMMAND_ID 0x14 // Ver.: always -#define ZCL_DISCOVER_ATTRIBUTES_EXTENDED_COMMAND_ID 0x15 // Ver.: always -#define ZCL_DISCOVER_ATTRIBUTES_EXTENDED_RESPONSE_COMMAND_ID 0x16 // Ver.: always -// Command types for cluster: Basic -// Cluster specification level: zcl-7.0-07-5123-07 - -// Server to client -#define ZCL_GET_LOCALES_SUPPORTED_RESPONSE_COMMAND_ID 0x01 // Ver.: always - -// Client to server -#define ZCL_RESET_TO_FACTORY_DEFAULTS_COMMAND_ID 0x00 // Ver.: always -#define ZCL_GET_LOCALES_SUPPORTED_COMMAND_ID 0x01 // Ver.: always - -// Command types for cluster: Identify -// Cluster specification level: zcl-7.0-07-5123-07 - -// Server to client -#define ZCL_IDENTIFY_QUERY_RESPONSE_COMMAND_ID 0x00 // Ver.: always - -// Client to server -#define ZCL_IDENTIFY_COMMAND_ID 0x00 // Ver.: always -#define ZCL_IDENTIFY_QUERY_COMMAND_ID 0x01 // Ver.: always -#define ZCL_E_Z_MODE_INVOKE_COMMAND_ID 0x02 // Ver.: always -#define ZCL_UPDATE_COMMISSION_STATE_COMMAND_ID 0x03 // Ver.: always -#define ZCL_TRIGGER_EFFECT_COMMAND_ID 0x40 // Ver.: since zll-1.0-11-0037-10 - -// Command types for cluster: Groups -// Cluster specification level: zcl-7.0-07-5123-07 - -// Server to client -#define ZCL_ADD_GROUP_RESPONSE_COMMAND_ID 0x00 // Ver.: always -#define ZCL_VIEW_GROUP_RESPONSE_COMMAND_ID 0x01 // Ver.: always -#define ZCL_GET_GROUP_MEMBERSHIP_RESPONSE_COMMAND_ID 0x02 // Ver.: always -#define ZCL_REMOVE_GROUP_RESPONSE_COMMAND_ID 0x03 // Ver.: always - -// Client to server -#define ZCL_ADD_GROUP_COMMAND_ID 0x00 // Ver.: always -#define ZCL_VIEW_GROUP_COMMAND_ID 0x01 // Ver.: always -#define ZCL_GET_GROUP_MEMBERSHIP_COMMAND_ID 0x02 // Ver.: always -#define ZCL_REMOVE_GROUP_COMMAND_ID 0x03 // Ver.: always -#define ZCL_REMOVE_ALL_GROUPS_COMMAND_ID 0x04 // Ver.: always -#define ZCL_ADD_GROUP_IF_IDENTIFYING_COMMAND_ID 0x05 // Ver.: always - -// Command types for cluster: Scenes -// Cluster specification level: zcl-7.0-07-5123-07 - -// Server to client -#define ZCL_ADD_SCENE_RESPONSE_COMMAND_ID 0x00 // Ver.: always -#define ZCL_VIEW_SCENE_RESPONSE_COMMAND_ID 0x01 // Ver.: always -#define ZCL_REMOVE_SCENE_RESPONSE_COMMAND_ID 0x02 // Ver.: always -#define ZCL_REMOVE_ALL_SCENES_RESPONSE_COMMAND_ID 0x03 // Ver.: always -#define ZCL_STORE_SCENE_RESPONSE_COMMAND_ID 0x04 // Ver.: always -#define ZCL_GET_SCENE_MEMBERSHIP_RESPONSE_COMMAND_ID 0x06 // Ver.: always -#define ZCL_ENHANCED_ADD_SCENE_RESPONSE_COMMAND_ID 0x40 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_ENHANCED_VIEW_SCENE_RESPONSE_COMMAND_ID 0x41 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_COPY_SCENE_RESPONSE_COMMAND_ID 0x42 // Ver.: since zll-1.0-11-0037-10 - -// Client to server -#define ZCL_ADD_SCENE_COMMAND_ID 0x00 // Ver.: always -#define ZCL_VIEW_SCENE_COMMAND_ID 0x01 // Ver.: always -#define ZCL_REMOVE_SCENE_COMMAND_ID 0x02 // Ver.: always -#define ZCL_REMOVE_ALL_SCENES_COMMAND_ID 0x03 // Ver.: always -#define ZCL_STORE_SCENE_COMMAND_ID 0x04 // Ver.: always -#define ZCL_RECALL_SCENE_COMMAND_ID 0x05 // Ver.: always -#define ZCL_GET_SCENE_MEMBERSHIP_COMMAND_ID 0x06 // Ver.: always -#define ZCL_ENHANCED_ADD_SCENE_COMMAND_ID 0x40 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_ENHANCED_VIEW_SCENE_COMMAND_ID 0x41 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_COPY_SCENE_COMMAND_ID 0x42 // Ver.: since zll-1.0-11-0037-10 - -// Command types for cluster: On/off -// Cluster specification level: zcl-7.0-07-5123-07 - -// Client to server -#define ZCL_OFF_COMMAND_ID 0x00 // Ver.: always -#define ZCL_ON_COMMAND_ID 0x01 // Ver.: always -#define ZCL_TOGGLE_COMMAND_ID 0x02 // Ver.: always -#define ZCL_OFF_WITH_EFFECT_COMMAND_ID 0x40 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_ON_WITH_RECALL_GLOBAL_SCENE_COMMAND_ID 0x41 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_ON_WITH_TIMED_OFF_COMMAND_ID 0x42 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_SAMPLE_MFG_SPECIFIC_OFF_WITH_TRANSITION_COMMAND_ID 0x00 // Ver.: always mfgCode: 0x1002 -#define ZCL_SAMPLE_MFG_SPECIFIC_ON_WITH_TRANSITION_COMMAND_ID 0x01 // Ver.: always mfgCode: 0x1002 -#define ZCL_SAMPLE_MFG_SPECIFIC_TOGGLE_WITH_TRANSITION_COMMAND_ID 0x02 // Ver.: always mfgCode: 0x1002 -#define ZCL_SAMPLE_MFG_SPECIFIC_ON_WITH_TRANSITION2_COMMAND_ID 0x01 // Ver.: always mfgCode: 0x1049 -#define ZCL_SAMPLE_MFG_SPECIFIC_TOGGLE_WITH_TRANSITION2_COMMAND_ID 0x02 // Ver.: always mfgCode: 0x1049 - -// Command types for cluster: Level Control -// Cluster specification level: zcl-7.0-07-5123-07 - -// Client to server -#define ZCL_MOVE_TO_LEVEL_COMMAND_ID 0x00 // Ver.: always -#define ZCL_MOVE_COMMAND_ID 0x01 // Ver.: always -#define ZCL_STEP_COMMAND_ID 0x02 // Ver.: always -#define ZCL_STOP_COMMAND_ID 0x03 // Ver.: always -#define ZCL_MOVE_TO_LEVEL_WITH_ON_OFF_COMMAND_ID 0x04 // Ver.: always -#define ZCL_MOVE_WITH_ON_OFF_COMMAND_ID 0x05 // Ver.: always -#define ZCL_STEP_WITH_ON_OFF_COMMAND_ID 0x06 // Ver.: always -#define ZCL_STOP_WITH_ON_OFF_COMMAND_ID 0x07 // Ver.: always - -// Command types for cluster: Alarms -// Cluster specification level: zcl-7.0-07-5123-07 - -// Server to client -#define ZCL_ALARM_COMMAND_ID 0x00 // Ver.: always -#define ZCL_GET_ALARM_RESPONSE_COMMAND_ID 0x01 // Ver.: always - -// Client to server -#define ZCL_RESET_ALARM_COMMAND_ID 0x00 // Ver.: always -#define ZCL_RESET_ALL_ALARMS_COMMAND_ID 0x01 // Ver.: always -#define ZCL_GET_ALARM_COMMAND_ID 0x02 // Ver.: always -#define ZCL_RESET_ALARM_LOG_COMMAND_ID 0x03 // Ver.: always - -// Command types for cluster: RSSI Location -// Cluster specification level: zcl-7.0-07-5123-07 - -// Server to client -#define ZCL_DEVICE_CONFIGURATION_RESPONSE_COMMAND_ID 0x00 // Ver.: always -#define ZCL_LOCATION_DATA_RESPONSE_COMMAND_ID 0x01 // Ver.: always -#define ZCL_LOCATION_DATA_NOTIFICATION_COMMAND_ID 0x02 // Ver.: always -#define ZCL_COMPACT_LOCATION_DATA_NOTIFICATION_COMMAND_ID 0x03 // Ver.: always -#define ZCL_RSSI_PING_COMMAND_ID 0x04 // Ver.: always -#define ZCL_RSSI_REQUEST_COMMAND_ID 0x05 // Ver.: always -#define ZCL_REPORT_RSSI_MEASUREMENTS_COMMAND_ID 0x06 // Ver.: always -#define ZCL_REQUEST_OWN_LOCATION_COMMAND_ID 0x07 // Ver.: always - -// Client to server -#define ZCL_SET_ABSOLUTE_LOCATION_COMMAND_ID 0x00 // Ver.: always -#define ZCL_SET_DEVICE_CONFIGURATION_COMMAND_ID 0x01 // Ver.: always -#define ZCL_GET_DEVICE_CONFIGURATION_COMMAND_ID 0x02 // Ver.: always -#define ZCL_GET_LOCATION_DATA_COMMAND_ID 0x03 // Ver.: always -#define ZCL_RSSI_RESPONSE_COMMAND_ID 0x04 // Ver.: always -#define ZCL_SEND_PINGS_COMMAND_ID 0x05 // Ver.: always -#define ZCL_ANCHOR_NODE_ANNOUNCE_COMMAND_ID 0x06 // Ver.: always - -// Command types for cluster: Commissioning -// Cluster specification level: zcl-7.0-07-5123-07 - -// Server to client -#define ZCL_RESTART_DEVICE_RESPONSE_COMMAND_ID 0x00 // Ver.: always -#define ZCL_SAVE_STARTUP_PARAMETERS_RESPONSE_COMMAND_ID 0x01 // Ver.: always -#define ZCL_RESTORE_STARTUP_PARAMETERS_RESPONSE_COMMAND_ID 0x02 // Ver.: always -#define ZCL_RESET_STARTUP_PARAMETERS_RESPONSE_COMMAND_ID 0x03 // Ver.: always - -// Client to server -#define ZCL_RESTART_DEVICE_COMMAND_ID 0x00 // Ver.: always -#define ZCL_SAVE_STARTUP_PARAMETERS_COMMAND_ID 0x01 // Ver.: always -#define ZCL_RESTORE_STARTUP_PARAMETERS_COMMAND_ID 0x02 // Ver.: always -#define ZCL_RESET_STARTUP_PARAMETERS_COMMAND_ID 0x03 // Ver.: always - -// Command types for cluster: Partition -// Cluster specification level: zcl-7.0-07-5123-07 - -// Server to client -#define ZCL_MULTIPLE_ACK_COMMAND_ID 0x00 // Ver.: always -#define ZCL_READ_HANDSHAKE_PARAM_RESPONSE_COMMAND_ID 0x01 // Ver.: always - -// Client to server -#define ZCL_TRANSFER_PARTITIONED_FRAME_COMMAND_ID 0x00 // Ver.: always -#define ZCL_READ_HANDSHAKE_PARAM_COMMAND_ID 0x01 // Ver.: always -#define ZCL_WRITE_HANDSHAKE_PARAM_COMMAND_ID 0x02 // Ver.: always - -// Command types for cluster: Over the Air Bootloading -// Cluster specification level: zcl-7.0-07-5123-07 - -// Server to client -#define ZCL_IMAGE_NOTIFY_COMMAND_ID 0x00 // Ver.: always -#define ZCL_QUERY_NEXT_IMAGE_RESPONSE_COMMAND_ID 0x02 // Ver.: always -#define ZCL_IMAGE_BLOCK_RESPONSE_COMMAND_ID 0x05 // Ver.: always -#define ZCL_UPGRADE_END_RESPONSE_COMMAND_ID 0x07 // Ver.: always -#define ZCL_QUERY_SPECIFIC_FILE_RESPONSE_COMMAND_ID 0x09 // Ver.: always - -// Client to server -#define ZCL_QUERY_NEXT_IMAGE_REQUEST_COMMAND_ID 0x01 // Ver.: always -#define ZCL_IMAGE_BLOCK_REQUEST_COMMAND_ID 0x03 // Ver.: always -#define ZCL_IMAGE_PAGE_REQUEST_COMMAND_ID 0x04 // Ver.: always -#define ZCL_UPGRADE_END_REQUEST_COMMAND_ID 0x06 // Ver.: always -#define ZCL_QUERY_SPECIFIC_FILE_REQUEST_COMMAND_ID 0x08 // Ver.: always - -// Command types for cluster: Power Profile -// Cluster specification level: zcl-7.0-07-5123-07 - -// Server to client -#define ZCL_POWER_PROFILE_NOTIFICATION_COMMAND_ID 0x00 // Ver.: always -#define ZCL_POWER_PROFILE_RESPONSE_COMMAND_ID 0x01 // Ver.: always -#define ZCL_POWER_PROFILE_STATE_RESPONSE_COMMAND_ID 0x02 // Ver.: always -#define ZCL_GET_POWER_PROFILE_PRICE_COMMAND_ID 0x03 // Ver.: always -#define ZCL_POWER_PROFILES_STATE_NOTIFICATION_COMMAND_ID 0x04 // Ver.: always -#define ZCL_GET_OVERALL_SCHEDULE_PRICE_COMMAND_ID 0x05 // Ver.: always -#define ZCL_ENERGY_PHASES_SCHEDULE_REQUEST_COMMAND_ID 0x06 // Ver.: always -#define ZCL_ENERGY_PHASES_SCHEDULE_STATE_RESPONSE_COMMAND_ID 0x07 // Ver.: always -#define ZCL_ENERGY_PHASES_SCHEDULE_STATE_NOTIFICATION_COMMAND_ID 0x08 // Ver.: always -#define ZCL_POWER_PROFILE_SCHEDULE_CONSTRAINTS_NOTIFICATION_COMMAND_ID 0x09 // Ver.: always -#define ZCL_POWER_PROFILE_SCHEDULE_CONSTRAINTS_RESPONSE_COMMAND_ID 0x0A // Ver.: always -#define ZCL_GET_POWER_PROFILE_PRICE_EXTENDED_COMMAND_ID 0x0B // Ver.: always - -// Client to server -#define ZCL_POWER_PROFILE_REQUEST_COMMAND_ID 0x00 // Ver.: always -#define ZCL_POWER_PROFILE_STATE_REQUEST_COMMAND_ID 0x01 // Ver.: always -#define ZCL_GET_POWER_PROFILE_PRICE_RESPONSE_COMMAND_ID 0x02 // Ver.: always -#define ZCL_GET_OVERALL_SCHEDULE_PRICE_RESPONSE_COMMAND_ID 0x03 // Ver.: always -#define ZCL_ENERGY_PHASES_SCHEDULE_NOTIFICATION_COMMAND_ID 0x04 // Ver.: always -#define ZCL_ENERGY_PHASES_SCHEDULE_RESPONSE_COMMAND_ID 0x05 // Ver.: always -#define ZCL_POWER_PROFILE_SCHEDULE_CONSTRAINTS_REQUEST_COMMAND_ID 0x06 // Ver.: always -#define ZCL_ENERGY_PHASES_SCHEDULE_STATE_REQUEST_COMMAND_ID 0x07 // Ver.: always -#define ZCL_GET_POWER_PROFILE_PRICE_EXTENDED_RESPONSE_COMMAND_ID 0x08 // Ver.: always - -// Command types for cluster: Appliance Control -// Cluster specification level: zcl-7.0-07-5123-07 - -// Server to client -#define ZCL_SIGNAL_STATE_RESPONSE_COMMAND_ID 0x00 // Ver.: always -#define ZCL_SIGNAL_STATE_NOTIFICATION_COMMAND_ID 0x01 // Ver.: always - -// Client to server -#define ZCL_EXECUTION_OF_A_COMMAND_COMMAND_ID 0x00 // Ver.: always -#define ZCL_SIGNAL_STATE_COMMAND_ID 0x01 // Ver.: always -#define ZCL_WRITE_FUNCTIONS_COMMAND_ID 0x02 // Ver.: always -#define ZCL_OVERLOAD_PAUSE_RESUME_COMMAND_ID 0x03 // Ver.: always -#define ZCL_OVERLOAD_PAUSE_COMMAND_ID 0x04 // Ver.: always -#define ZCL_OVERLOAD_WARNING_COMMAND_ID 0x05 // Ver.: always - -// Command types for cluster: Poll Control -// Cluster specification level: zcl-7.0-07-5123-07 - -// Server to client -#define ZCL_CHECK_IN_COMMAND_ID 0x00 // Ver.: always - -// Client to server -#define ZCL_CHECK_IN_RESPONSE_COMMAND_ID 0x00 // Ver.: always -#define ZCL_FAST_POLL_STOP_COMMAND_ID 0x01 // Ver.: always -#define ZCL_SET_LONG_POLL_INTERVAL_COMMAND_ID 0x02 // Ver.: always -#define ZCL_SET_SHORT_POLL_INTERVAL_COMMAND_ID 0x03 // Ver.: always - -// Command types for cluster: Green Power -// Cluster specification level: gp-1.0a-09-5499-26 - -// Server to client -#define ZCL_GP_NOTIFICATION_RESPONSE_COMMAND_ID 0x00 // Ver.: since gp-1.0-09-5499-24 -#define ZCL_GP_PAIRING_COMMAND_ID 0x01 // Ver.: since gp-1.0-09-5499-24 -#define ZCL_GP_PROXY_COMMISSIONING_MODE_COMMAND_ID 0x02 // Ver.: since gp-1.0-09-5499-24 -#define ZCL_GP_RESPONSE_COMMAND_ID 0x06 // Ver.: since gp-1.0-09-5499-24 -#define ZCL_GP_TRANSLATION_TABLE_RESPONSE_COMMAND_ID 0x08 // Ver.: since gp-1.0-09-5499-24 -#define ZCL_GP_SINK_TABLE_RESPONSE_COMMAND_ID 0x0A // Ver.: always -#define ZCL_GP_PROXY_TABLE_REQUEST_COMMAND_ID 0x0B // Ver.: always - -// Client to server -#define ZCL_GP_NOTIFICATION_COMMAND_ID 0x00 // Ver.: since gp-1.0-09-5499-24 -#define ZCL_GP_PAIRING_SEARCH_COMMAND_ID 0x01 // Ver.: since gp-1.0-09-5499-24 -#define ZCL_GP_TUNNELING_STOP_COMMAND_ID 0x03 // Ver.: since gp-1.0-09-5499-24 -#define ZCL_GP_COMMISSIONING_NOTIFICATION_COMMAND_ID 0x04 // Ver.: since gp-1.0-09-5499-24 -#define ZCL_GP_SINK_COMMISSIONING_MODE_COMMAND_ID 0x05 // Ver.: always -#define ZCL_GP_TRANSLATION_TABLE_UPDATE_COMMAND_ID 0x07 // Ver.: since gp-1.0-09-5499-24 -#define ZCL_GP_TRANSLATION_TABLE_REQUEST_COMMAND_ID 0x08 // Ver.: always -#define ZCL_GP_PAIRING_CONFIGURATION_COMMAND_ID 0x09 // Ver.: since gp-1.0-09-5499-24 -#define ZCL_GP_SINK_TABLE_REQUEST_COMMAND_ID 0x0A // Ver.: always -#define ZCL_GP_PROXY_TABLE_RESPONSE_COMMAND_ID 0x0B // Ver.: always - -// Command types for cluster: Door Lock -// Cluster specification level: zcl-6.0-15-02018-001 - -// Server to client -#define ZCL_LOCK_DOOR_RESPONSE_COMMAND_ID 0x00 // Ver.: always -#define ZCL_UNLOCK_DOOR_RESPONSE_COMMAND_ID 0x01 // Ver.: always -#define ZCL_TOGGLE_RESPONSE_COMMAND_ID 0x02 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_UNLOCK_WITH_TIMEOUT_RESPONSE_COMMAND_ID 0x03 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_GET_LOG_RECORD_RESPONSE_COMMAND_ID 0x04 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_SET_PIN_RESPONSE_COMMAND_ID 0x05 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_GET_PIN_RESPONSE_COMMAND_ID 0x06 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_CLEAR_PIN_RESPONSE_COMMAND_ID 0x07 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_CLEAR_ALL_PINS_RESPONSE_COMMAND_ID 0x08 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_SET_USER_STATUS_RESPONSE_COMMAND_ID 0x09 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_GET_USER_STATUS_RESPONSE_COMMAND_ID 0x0A // Ver.: since ha-1.2-05-3520-29 -#define ZCL_SET_WEEKDAY_SCHEDULE_RESPONSE_COMMAND_ID 0x0B // Ver.: since ha-1.2-05-3520-29 -#define ZCL_GET_WEEKDAY_SCHEDULE_RESPONSE_COMMAND_ID 0x0C // Ver.: since ha-1.2-05-3520-29 -#define ZCL_CLEAR_WEEKDAY_SCHEDULE_RESPONSE_COMMAND_ID 0x0D // Ver.: since ha-1.2-05-3520-29 -#define ZCL_SET_YEARDAY_SCHEDULE_RESPONSE_COMMAND_ID 0x0E // Ver.: since ha-1.2-05-3520-29 -#define ZCL_GET_YEARDAY_SCHEDULE_RESPONSE_COMMAND_ID 0x0F // Ver.: since ha-1.2-05-3520-29 -#define ZCL_CLEAR_YEARDAY_SCHEDULE_RESPONSE_COMMAND_ID 0x10 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_SET_HOLIDAY_SCHEDULE_RESPONSE_COMMAND_ID 0x11 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_GET_HOLIDAY_SCHEDULE_RESPONSE_COMMAND_ID 0x12 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_CLEAR_HOLIDAY_SCHEDULE_RESPONSE_COMMAND_ID 0x13 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_SET_USER_TYPE_RESPONSE_COMMAND_ID 0x14 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_GET_USER_TYPE_RESPONSE_COMMAND_ID 0x15 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_SET_RFID_RESPONSE_COMMAND_ID 0x16 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_GET_RFID_RESPONSE_COMMAND_ID 0x17 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_CLEAR_RFID_RESPONSE_COMMAND_ID 0x18 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_CLEAR_ALL_RFIDS_RESPONSE_COMMAND_ID 0x19 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_OPERATION_EVENT_NOTIFICATION_COMMAND_ID 0x20 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_PROGRAMMING_EVENT_NOTIFICATION_COMMAND_ID 0x21 // Ver.: since ha-1.2-05-3520-29 - -// Client to server -#define ZCL_LOCK_DOOR_COMMAND_ID 0x00 // Ver.: always -#define ZCL_UNLOCK_DOOR_COMMAND_ID 0x01 // Ver.: always -#define ZCL_TOGGLE_COMMAND_ID 0x02 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_UNLOCK_WITH_TIMEOUT_COMMAND_ID 0x03 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_GET_LOG_RECORD_COMMAND_ID 0x04 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_SET_PIN_COMMAND_ID 0x05 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_GET_PIN_COMMAND_ID 0x06 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_CLEAR_PIN_COMMAND_ID 0x07 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_CLEAR_ALL_PINS_COMMAND_ID 0x08 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_SET_USER_STATUS_COMMAND_ID 0x09 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_GET_USER_STATUS_COMMAND_ID 0x0A // Ver.: since ha-1.2-05-3520-29 -#define ZCL_SET_WEEKDAY_SCHEDULE_COMMAND_ID 0x0B // Ver.: since ha-1.2-05-3520-29 -#define ZCL_GET_WEEKDAY_SCHEDULE_COMMAND_ID 0x0C // Ver.: since ha-1.2-05-3520-29 -#define ZCL_CLEAR_WEEKDAY_SCHEDULE_COMMAND_ID 0x0D // Ver.: since ha-1.2-05-3520-29 -#define ZCL_SET_YEARDAY_SCHEDULE_COMMAND_ID 0x0E // Ver.: since ha-1.2-05-3520-29 -#define ZCL_GET_YEARDAY_SCHEDULE_COMMAND_ID 0x0F // Ver.: since ha-1.2-05-3520-29 -#define ZCL_CLEAR_YEARDAY_SCHEDULE_COMMAND_ID 0x10 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_SET_HOLIDAY_SCHEDULE_COMMAND_ID 0x11 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_GET_HOLIDAY_SCHEDULE_COMMAND_ID 0x12 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_CLEAR_HOLIDAY_SCHEDULE_COMMAND_ID 0x13 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_SET_USER_TYPE_COMMAND_ID 0x14 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_GET_USER_TYPE_COMMAND_ID 0x15 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_SET_RFID_COMMAND_ID 0x16 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_GET_RFID_COMMAND_ID 0x17 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_CLEAR_RFID_COMMAND_ID 0x18 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_CLEAR_ALL_RFIDS_COMMAND_ID 0x19 // Ver.: since ha-1.2-05-3520-29 - -// Command types for cluster: Window Covering -// Cluster specification level: zcl-6.0-15-02018-001 - -// Client to server -#define ZCL_WINDOW_COVERING_UP_OPEN_COMMAND_ID 0x00 // Ver.: always -#define ZCL_WINDOW_COVERING_DOWN_CLOSE_COMMAND_ID 0x01 // Ver.: always -#define ZCL_WINDOW_COVERING_STOP_COMMAND_ID 0x02 // Ver.: always -#define ZCL_WINDOW_COVERING_GO_TO_LIFT_VALUE_COMMAND_ID 0x04 // Ver.: always -#define ZCL_WINDOW_COVERING_GO_TO_LIFT_PERCENTAGE_COMMAND_ID 0x05 // Ver.: always -#define ZCL_WINDOW_COVERING_GO_TO_TILT_VALUE_COMMAND_ID 0x07 // Ver.: always -#define ZCL_WINDOW_COVERING_GO_TO_TILT_PERCENTAGE_COMMAND_ID 0x08 // Ver.: always - -// Command types for cluster: Barrier Control -// Cluster specification level: zcl-6.0-15-02018-001 - -// Client to server -#define ZCL_BARRIER_CONTROL_GO_TO_PERCENT_COMMAND_ID 0x00 // Ver.: always -#define ZCL_BARRIER_CONTROL_STOP_COMMAND_ID 0x01 // Ver.: always - -// Command types for cluster: Thermostat -// Cluster specification level: zcl-6.0-15-02018-001 - -// Server to client -#define ZCL_CURRENT_WEEKLY_SCHEDULE_COMMAND_ID 0x00 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_RELAY_STATUS_LOG_COMMAND_ID 0x01 // Ver.: since ha-1.2-05-3520-29 - -// Client to server -#define ZCL_SETPOINT_RAISE_LOWER_COMMAND_ID 0x00 // Ver.: always -#define ZCL_SET_WEEKLY_SCHEDULE_COMMAND_ID 0x01 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_GET_WEEKLY_SCHEDULE_COMMAND_ID 0x02 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_CLEAR_WEEKLY_SCHEDULE_COMMAND_ID 0x03 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_GET_RELAY_STATUS_LOG_COMMAND_ID 0x04 // Ver.: since ha-1.2-05-3520-29 - -// Command types for cluster: Color Control -// Cluster specification level: zcl6-errata-14-0129-15 - -// Client to server -#define ZCL_MOVE_TO_HUE_COMMAND_ID 0x00 // Ver.: always -#define ZCL_MOVE_HUE_COMMAND_ID 0x01 // Ver.: always -#define ZCL_STEP_HUE_COMMAND_ID 0x02 // Ver.: always -#define ZCL_MOVE_TO_SATURATION_COMMAND_ID 0x03 // Ver.: always -#define ZCL_MOVE_SATURATION_COMMAND_ID 0x04 // Ver.: always -#define ZCL_STEP_SATURATION_COMMAND_ID 0x05 // Ver.: always -#define ZCL_MOVE_TO_HUE_AND_SATURATION_COMMAND_ID 0x06 // Ver.: always -#define ZCL_MOVE_TO_COLOR_COMMAND_ID 0x07 // Ver.: always -#define ZCL_MOVE_COLOR_COMMAND_ID 0x08 // Ver.: always -#define ZCL_STEP_COLOR_COMMAND_ID 0x09 // Ver.: always -#define ZCL_MOVE_TO_COLOR_TEMPERATURE_COMMAND_ID 0x0A // Ver.: always -#define ZCL_ENHANCED_MOVE_TO_HUE_COMMAND_ID 0x40 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_ENHANCED_MOVE_HUE_COMMAND_ID 0x41 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_ENHANCED_STEP_HUE_COMMAND_ID 0x42 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_ENHANCED_MOVE_TO_HUE_AND_SATURATION_COMMAND_ID 0x43 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_COLOR_LOOP_SET_COMMAND_ID 0x44 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_STOP_MOVE_STEP_COMMAND_ID 0x47 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_MOVE_COLOR_TEMPERATURE_COMMAND_ID 0x4B // Ver.: since zll-1.0-11-0037-10 -#define ZCL_STEP_COLOR_TEMPERATURE_COMMAND_ID 0x4C // Ver.: since zll-1.0-11-0037-10 - -// Command types for cluster: IAS Zone -// Cluster specification level: zcl-6.0-15-02018-001 - -// Server to client -#define ZCL_ZONE_STATUS_CHANGE_NOTIFICATION_COMMAND_ID 0x00 // Ver.: always -#define ZCL_ZONE_ENROLL_REQUEST_COMMAND_ID 0x01 // Ver.: always -#define ZCL_INITIATE_NORMAL_OPERATION_MODE_RESPONSE_COMMAND_ID 0x02 // Ver.: always -#define ZCL_INITIATE_TEST_MODE_RESPONSE_COMMAND_ID 0x03 // Ver.: always - -// Client to server -#define ZCL_ZONE_ENROLL_RESPONSE_COMMAND_ID 0x00 // Ver.: always -#define ZCL_INITIATE_NORMAL_OPERATION_MODE_COMMAND_ID 0x01 // Ver.: always -#define ZCL_INITIATE_TEST_MODE_COMMAND_ID 0x02 // Ver.: always - -// Command types for cluster: IAS ACE -// Cluster specification level: zcl-6.0-15-02018-001 - -// Server to client -#define ZCL_ARM_RESPONSE_COMMAND_ID 0x00 // Ver.: always -#define ZCL_GET_ZONE_ID_MAP_RESPONSE_COMMAND_ID 0x01 // Ver.: always -#define ZCL_GET_ZONE_INFORMATION_RESPONSE_COMMAND_ID 0x02 // Ver.: always -#define ZCL_ZONE_STATUS_CHANGED_COMMAND_ID 0x03 // Ver.: always -#define ZCL_PANEL_STATUS_CHANGED_COMMAND_ID 0x04 // Ver.: always -#define ZCL_GET_PANEL_STATUS_RESPONSE_COMMAND_ID 0x05 // Ver.: since ha-1.2.1-05-3520-30 -#define ZCL_SET_BYPASSED_ZONE_LIST_COMMAND_ID 0x06 // Ver.: since ha-1.2.1-05-3520-30 -#define ZCL_BYPASS_RESPONSE_COMMAND_ID 0x07 // Ver.: since ha-1.2.1-05-3520-30 -#define ZCL_GET_ZONE_STATUS_RESPONSE_COMMAND_ID 0x08 // Ver.: since ha-1.2.1-05-3520-30 - -// Client to server -#define ZCL_ARM_COMMAND_ID 0x00 // Ver.: always -#define ZCL_BYPASS_COMMAND_ID 0x01 // Ver.: always -#define ZCL_EMERGENCY_COMMAND_ID 0x02 // Ver.: always -#define ZCL_FIRE_COMMAND_ID 0x03 // Ver.: always -#define ZCL_PANIC_COMMAND_ID 0x04 // Ver.: always -#define ZCL_GET_ZONE_ID_MAP_COMMAND_ID 0x05 // Ver.: always -#define ZCL_GET_ZONE_INFORMATION_COMMAND_ID 0x06 // Ver.: always -#define ZCL_GET_PANEL_STATUS_COMMAND_ID 0x07 // Ver.: since ha-1.2.1-05-3520-30 -#define ZCL_GET_BYPASSED_ZONE_LIST_COMMAND_ID 0x08 // Ver.: since ha-1.2.1-05-3520-30 -#define ZCL_GET_ZONE_STATUS_COMMAND_ID 0x09 // Ver.: since ha-1.2.1-05-3520-30 - -// Command types for cluster: IAS WD -// Cluster specification level: zcl-6.0-15-02018-001 - -// Client to server -#define ZCL_START_WARNING_COMMAND_ID 0x00 // Ver.: always -#define ZCL_SQUAWK_COMMAND_ID 0x01 // Ver.: always - -// Command types for cluster: Generic Tunnel -// Cluster specification level: cba-1.0-05-3516-12 - -// Server to client -#define ZCL_MATCH_PROTOCOL_ADDRESS_RESPONSE_COMMAND_ID 0x00 // Ver.: always -#define ZCL_ADVERTISE_PROTOCOL_ADDRESS_COMMAND_ID 0x01 // Ver.: always - -// Client to server -#define ZCL_MATCH_PROTOCOL_ADDRESS_COMMAND_ID 0x00 // Ver.: always - -// Command types for cluster: BACnet Protocol Tunnel -// Cluster specification level: cba-1.0-05-3516-12 - -// Client to server -#define ZCL_TRANSFER_NPDU_COMMAND_ID 0x00 // Ver.: always - -// Command types for cluster: 11073 Protocol Tunnel -// Cluster specification level: hc-1.0-07-5360-15 - -// Client to server -#define ZCL_TRANSFER_A_P_D_U_COMMAND_ID 0x00 // Ver.: always -#define ZCL_CONNECT_REQUEST_COMMAND_ID 0x01 // Ver.: always -#define ZCL_DISCONNECT_REQUEST_COMMAND_ID 0x02 // Ver.: always -#define ZCL_CONNECT_STATUS_NOTIFICATION_COMMAND_ID 0x03 // Ver.: always - -// Command types for cluster: ISO 7816 Protocol Tunnel -// Cluster specification level: ta-1.0-07-5307-07 - -// Client to server -#define ZCL_INSERT_SMART_CARD_COMMAND_ID 0x01 // Ver.: always -#define ZCL_EXTRACT_SMART_CARD_COMMAND_ID 0x02 // Ver.: always - -// Either direction -#define ZCL_TRANSFER_APDU_COMMAND_ID 0x00 // Ver.: always - -// Command types for cluster: Price -// Cluster specification level: se-1.2b-15-0131-02 - -// Server to client -#define ZCL_PUBLISH_PRICE_COMMAND_ID 0x00 // Ver.: always -#define ZCL_PUBLISH_BLOCK_PERIOD_COMMAND_ID 0x01 // Ver.: since se-1.1-07-5356-16 -#define ZCL_PUBLISH_CONVERSION_FACTOR_COMMAND_ID 0x02 // Ver.: since se-1.1a-07-5356-17 -#define ZCL_PUBLISH_CALORIFIC_VALUE_COMMAND_ID 0x03 // Ver.: since se-1.1a-07-5356-17 -#define ZCL_PUBLISH_TARIFF_INFORMATION_COMMAND_ID 0x04 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PUBLISH_PRICE_MATRIX_COMMAND_ID 0x05 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PUBLISH_BLOCK_THRESHOLDS_COMMAND_ID 0x06 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PUBLISH_C_O2_VALUE_COMMAND_ID 0x07 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PUBLISH_TIER_LABELS_COMMAND_ID 0x08 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PUBLISH_BILLING_PERIOD_COMMAND_ID 0x09 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PUBLISH_CONSOLIDATED_BILL_COMMAND_ID 0x0A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PUBLISH_CPP_EVENT_COMMAND_ID 0x0B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PUBLISH_CREDIT_PAYMENT_COMMAND_ID 0x0C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PUBLISH_CURRENCY_CONVERSION_COMMAND_ID 0x0D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CANCEL_TARIFF_COMMAND_ID 0x0E // Ver.: since se-1.2a-07-5356-19 - -// Client to server -#define ZCL_GET_CURRENT_PRICE_COMMAND_ID 0x00 // Ver.: always -#define ZCL_GET_SCHEDULED_PRICES_COMMAND_ID 0x01 // Ver.: always -#define ZCL_PRICE_ACKNOWLEDGEMENT_COMMAND_ID 0x02 // Ver.: since se-1.1-07-5356-16 -#define ZCL_GET_BLOCK_PERIODS_COMMAND_ID 0x03 // Ver.: since se-1.1-07-5356-16 -#define ZCL_GET_CONVERSION_FACTOR_COMMAND_ID 0x04 // Ver.: since se-1.1a-07-5356-17 -#define ZCL_GET_CALORIFIC_VALUE_COMMAND_ID 0x05 // Ver.: since se-1.1a-07-5356-17 -#define ZCL_GET_TARIFF_INFORMATION_COMMAND_ID 0x06 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_GET_PRICE_MATRIX_COMMAND_ID 0x07 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_GET_BLOCK_THRESHOLDS_COMMAND_ID 0x08 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_GET_C_O2_VALUE_COMMAND_ID 0x09 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_GET_TIER_LABELS_COMMAND_ID 0x0A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_GET_BILLING_PERIOD_COMMAND_ID 0x0B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_GET_CONSOLIDATED_BILL_COMMAND_ID 0x0C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CPP_EVENT_RESPONSE_COMMAND_ID 0x0D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_GET_CREDIT_PAYMENT_COMMAND_ID 0x0E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_GET_CURRENCY_CONVERSION_COMMAND_COMMAND_ID 0x0F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_GET_TARIFF_CANCELLATION_COMMAND_ID 0x10 // Ver.: since se-1.2a-07-5356-19 - -// Command types for cluster: Demand Response and Load Control -// Cluster specification level: se-1.2b-15-0131-02 - -// Server to client -#define ZCL_LOAD_CONTROL_EVENT_COMMAND_ID 0x00 // Ver.: always -#define ZCL_CANCEL_LOAD_CONTROL_EVENT_COMMAND_ID 0x01 // Ver.: always -#define ZCL_CANCEL_ALL_LOAD_CONTROL_EVENTS_COMMAND_ID 0x02 // Ver.: always - -// Client to server -#define ZCL_REPORT_EVENT_STATUS_COMMAND_ID 0x00 // Ver.: always -#define ZCL_GET_SCHEDULED_EVENTS_COMMAND_ID 0x01 // Ver.: always - -// Command types for cluster: Simple Metering -// Cluster specification level: se-1.2b-15-0131-02 - -// Server to client -#define ZCL_GET_PROFILE_RESPONSE_COMMAND_ID 0x00 // Ver.: always -#define ZCL_REQUEST_MIRROR_COMMAND_ID 0x01 // Ver.: always -#define ZCL_REMOVE_MIRROR_COMMAND_ID 0x02 // Ver.: always -#define ZCL_REQUEST_FAST_POLL_MODE_RESPONSE_COMMAND_ID 0x03 // Ver.: since se-1.1-07-5356-16 -#define ZCL_SCHEDULE_SNAPSHOT_RESPONSE_COMMAND_ID 0x04 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TAKE_SNAPSHOT_RESPONSE_COMMAND_ID 0x05 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PUBLISH_SNAPSHOT_COMMAND_ID 0x06 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_GET_SAMPLED_DATA_RESPONSE_COMMAND_ID 0x07 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CONFIGURE_MIRROR_COMMAND_ID 0x08 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CONFIGURE_NOTIFICATION_SCHEME_COMMAND_ID 0x09 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CONFIGURE_NOTIFICATION_FLAGS_COMMAND_ID 0x0A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_GET_NOTIFIED_MESSAGE_COMMAND_ID 0x0B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_SUPPLY_STATUS_RESPONSE_COMMAND_ID 0x0C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_START_SAMPLING_RESPONSE_COMMAND_ID 0x0D // Ver.: since se-1.2a-07-5356-19 - -// Client to server -#define ZCL_GET_PROFILE_COMMAND_ID 0x00 // Ver.: always -#define ZCL_REQUEST_MIRROR_RESPONSE_COMMAND_ID 0x01 // Ver.: always -#define ZCL_MIRROR_REMOVED_COMMAND_ID 0x02 // Ver.: always -#define ZCL_REQUEST_FAST_POLL_MODE_COMMAND_ID 0x03 // Ver.: since se-1.1-07-5356-16 -#define ZCL_SCHEDULE_SNAPSHOT_COMMAND_ID 0x04 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TAKE_SNAPSHOT_COMMAND_ID 0x05 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_GET_SNAPSHOT_COMMAND_ID 0x06 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_START_SAMPLING_COMMAND_ID 0x07 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_GET_SAMPLED_DATA_COMMAND_ID 0x08 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_MIRROR_REPORT_ATTRIBUTE_RESPONSE_COMMAND_ID 0x09 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RESET_LOAD_LIMIT_COUNTER_COMMAND_ID 0x0A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CHANGE_SUPPLY_COMMAND_ID 0x0B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_LOCAL_CHANGE_SUPPLY_COMMAND_ID 0x0C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_SET_SUPPLY_STATUS_COMMAND_ID 0x0D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_SET_UNCONTROLLED_FLOW_THRESHOLD_COMMAND_ID 0x0E // Ver.: since se-1.2a-07-5356-19 - -// Command types for cluster: Messaging -// Cluster specification level: se-1.2b-15-0131-02 - -// Server to client -#define ZCL_DISPLAY_MESSAGE_COMMAND_ID 0x00 // Ver.: always -#define ZCL_CANCEL_MESSAGE_COMMAND_ID 0x01 // Ver.: always -#define ZCL_DISPLAY_PROTECTED_MESSAGE_COMMAND_ID 0x02 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CANCEL_ALL_MESSAGES_COMMAND_ID 0x03 // Ver.: since se-1.2a-07-5356-19 - -// Client to server -#define ZCL_GET_LAST_MESSAGE_COMMAND_ID 0x00 // Ver.: always -#define ZCL_MESSAGE_CONFIRMATION_COMMAND_ID 0x01 // Ver.: always -#define ZCL_GET_MESSAGE_CANCELLATION_COMMAND_ID 0x02 // Ver.: since se-1.2a-07-5356-19 - -// Command types for cluster: Tunneling -// Cluster specification level: se-1.2b-15-0131-02 - -// Server to client -#define ZCL_REQUEST_TUNNEL_RESPONSE_COMMAND_ID 0x00 // Ver.: always -#define ZCL_TRANSFER_DATA_SERVER_TO_CLIENT_COMMAND_ID 0x01 // Ver.: always -#define ZCL_TRANSFER_DATA_ERROR_SERVER_TO_CLIENT_COMMAND_ID 0x02 // Ver.: always -#define ZCL_ACK_TRANSFER_DATA_SERVER_TO_CLIENT_COMMAND_ID 0x03 // Ver.: always -#define ZCL_READY_DATA_SERVER_TO_CLIENT_COMMAND_ID 0x04 // Ver.: always -#define ZCL_SUPPORTED_TUNNEL_PROTOCOLS_RESPONSE_COMMAND_ID 0x05 // Ver.: since se-1.1a-07-5356-17 -#define ZCL_TUNNEL_CLOSURE_NOTIFICATION_COMMAND_ID 0x06 // Ver.: since se-1.1a-07-5356-17 - -// Client to server -#define ZCL_REQUEST_TUNNEL_COMMAND_ID 0x00 // Ver.: always -#define ZCL_CLOSE_TUNNEL_COMMAND_ID 0x01 // Ver.: always -#define ZCL_TRANSFER_DATA_CLIENT_TO_SERVER_COMMAND_ID 0x02 // Ver.: always -#define ZCL_TRANSFER_DATA_ERROR_CLIENT_TO_SERVER_COMMAND_ID 0x03 // Ver.: always -#define ZCL_ACK_TRANSFER_DATA_CLIENT_TO_SERVER_COMMAND_ID 0x04 // Ver.: always -#define ZCL_READY_DATA_CLIENT_TO_SERVER_COMMAND_ID 0x05 // Ver.: always -#define ZCL_GET_SUPPORTED_TUNNEL_PROTOCOLS_COMMAND_ID 0x06 // Ver.: since se-1.1a-07-5356-17 - -// Command types for cluster: Prepayment -// Cluster specification level: se-1.2b-15-0131-02 - -// Server to client -#define ZCL_PUBLISH_PREPAY_SNAPSHOT_COMMAND_ID 0x01 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CHANGE_PAYMENT_MODE_RESPONSE_COMMAND_ID 0x02 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CONSUMER_TOP_UP_RESPONSE_COMMAND_ID 0x03 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PUBLISH_TOP_UP_LOG_COMMAND_ID 0x05 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PUBLISH_DEBT_LOG_COMMAND_ID 0x06 // Ver.: since se-1.2a-07-5356-19 - -// Client to server -#define ZCL_SELECT_AVAILABLE_EMERGENCY_CREDIT_COMMAND_ID 0x00 // Ver.: always -#define ZCL_CHANGE_DEBT_COMMAND_ID 0x02 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_EMERGENCY_CREDIT_SETUP_COMMAND_ID 0x03 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CONSUMER_TOP_UP_COMMAND_ID 0x04 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CREDIT_ADJUSTMENT_COMMAND_ID 0x05 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CHANGE_PAYMENT_MODE_COMMAND_ID 0x06 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_GET_PREPAY_SNAPSHOT_COMMAND_ID 0x07 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_GET_TOP_UP_LOG_COMMAND_ID 0x08 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_SET_LOW_CREDIT_WARNING_LEVEL_COMMAND_ID 0x09 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_GET_DEBT_REPAYMENT_LOG_COMMAND_ID 0x0A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_SET_MAXIMUM_CREDIT_LIMIT_COMMAND_ID 0x0B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_SET_OVERALL_DEBT_CAP_COMMAND_ID 0x0C // Ver.: since se-1.2a-07-5356-19 - -// Command types for cluster: Energy Management -// Cluster specification level: se-1.2b-15-0131-02 - -// Server to client -#define ZCL_REPORT_EVENT_STATUS_COMMAND_ID 0x00 // Ver.: always - -// Client to server -#define ZCL_MANAGE_EVENT_COMMAND_ID 0x00 // Ver.: always - -// Command types for cluster: Calendar -// Cluster specification level: se-1.2b-15-0131-02 - -// Server to client -#define ZCL_PUBLISH_CALENDAR_COMMAND_ID 0x00 // Ver.: always -#define ZCL_PUBLISH_DAY_PROFILE_COMMAND_ID 0x01 // Ver.: always -#define ZCL_PUBLISH_WEEK_PROFILE_COMMAND_ID 0x02 // Ver.: always -#define ZCL_PUBLISH_SEASONS_COMMAND_ID 0x03 // Ver.: always -#define ZCL_PUBLISH_SPECIAL_DAYS_COMMAND_ID 0x04 // Ver.: always -#define ZCL_CANCEL_CALENDAR_COMMAND_ID 0x05 // Ver.: always - -// Client to server -#define ZCL_GET_CALENDAR_COMMAND_ID 0x00 // Ver.: always -#define ZCL_GET_DAY_PROFILES_COMMAND_ID 0x01 // Ver.: always -#define ZCL_GET_WEEK_PROFILES_COMMAND_ID 0x02 // Ver.: always -#define ZCL_GET_SEASONS_COMMAND_ID 0x03 // Ver.: always -#define ZCL_GET_SPECIAL_DAYS_COMMAND_ID 0x04 // Ver.: always -#define ZCL_GET_CALENDAR_CANCELLATION_COMMAND_ID 0x05 // Ver.: always - -// Command types for cluster: Device Management -// Cluster specification level: se-1.2b-15-0131-02 - -// Server to client -#define ZCL_PUBLISH_CHANGE_OF_TENANCY_COMMAND_ID 0x00 // Ver.: always -#define ZCL_PUBLISH_CHANGE_OF_SUPPLIER_COMMAND_ID 0x01 // Ver.: always -#define ZCL_REQUEST_NEW_PASSWORD_RESPONSE_COMMAND_ID 0x02 // Ver.: always -#define ZCL_UPDATE_SITE_ID_COMMAND_ID 0x03 // Ver.: always -#define ZCL_SET_EVENT_CONFIGURATION_COMMAND_ID 0x04 // Ver.: always -#define ZCL_GET_EVENT_CONFIGURATION_COMMAND_ID 0x05 // Ver.: always -#define ZCL_UPDATE_C_I_N_COMMAND_ID 0x06 // Ver.: always - -// Client to server -#define ZCL_GET_CHANGE_OF_TENANCY_COMMAND_ID 0x00 // Ver.: always -#define ZCL_GET_CHANGE_OF_SUPPLIER_COMMAND_ID 0x01 // Ver.: always -#define ZCL_REQUEST_NEW_PASSWORD_COMMAND_ID 0x02 // Ver.: always -#define ZCL_GET_SITE_ID_COMMAND_ID 0x03 // Ver.: always -#define ZCL_REPORT_EVENT_CONFIGURATION_COMMAND_ID 0x04 // Ver.: always -#define ZCL_GET_C_I_N_COMMAND_ID 0x05 // Ver.: always - -// Command types for cluster: Events -// Cluster specification level: se-1.2b-15-0131-02 - -// Server to client -#define ZCL_PUBLISH_EVENT_COMMAND_ID 0x00 // Ver.: always -#define ZCL_PUBLISH_EVENT_LOG_COMMAND_ID 0x01 // Ver.: always -#define ZCL_CLEAR_EVENT_LOG_RESPONSE_COMMAND_ID 0x02 // Ver.: always - -// Client to server -#define ZCL_GET_EVENT_LOG_COMMAND_ID 0x00 // Ver.: always -#define ZCL_CLEAR_EVENT_LOG_REQUEST_COMMAND_ID 0x01 // Ver.: always - -// Command types for cluster: MDU Pairing -// Cluster specification level: se-1.2b-15-0131-02 - -// Server to client -#define ZCL_PAIRING_RESPONSE_COMMAND_ID 0x00 // Ver.: always - -// Client to server -#define ZCL_PAIRING_REQUEST_COMMAND_ID 0x00 // Ver.: always - -// Command types for cluster: Sub-GHz -// Cluster specification level: se-1.2b-15-0131-02 - -// Server to client -#define ZCL_SUSPEND_ZCL_MESSAGES_COMMAND_ID 0x00 // Ver.: always - -// Client to server -#define ZCL_GET_SUSPEND_ZCL_MESSAGES_STATUS_COMMAND_ID 0x00 // Ver.: always - -// Command types for cluster: Key Establishment -// Cluster specification level: zcl-7.0-07-5123-07 - -// Server to client -#define ZCL_INITIATE_KEY_ESTABLISHMENT_RESPONSE_COMMAND_ID 0x00 // Ver.: always -#define ZCL_EPHEMERAL_DATA_RESPONSE_COMMAND_ID 0x01 // Ver.: always -#define ZCL_CONFIRM_KEY_DATA_RESPONSE_COMMAND_ID 0x02 // Ver.: always - -// Client to server -#define ZCL_INITIATE_KEY_ESTABLISHMENT_REQUEST_COMMAND_ID 0x00 // Ver.: always -#define ZCL_EPHEMERAL_DATA_REQUEST_COMMAND_ID 0x01 // Ver.: always -#define ZCL_CONFIRM_KEY_DATA_REQUEST_COMMAND_ID 0x02 // Ver.: always - -// Either direction -#define ZCL_TERMINATE_KEY_ESTABLISHMENT_COMMAND_ID 0x03 // Ver.: always - -// Command types for cluster: Information -// Cluster specification level: ta-1.0-07-5307-07 - -// Server to client -#define ZCL_REQUEST_INFORMATION_RESPONSE_COMMAND_ID 0x00 // Ver.: always -#define ZCL_PUSH_INFORMATION_COMMAND_ID 0x01 // Ver.: always -#define ZCL_SEND_PREFERENCE_RESPONSE_COMMAND_ID 0x02 // Ver.: always -#define ZCL_SERVER_REQUEST_PREFERENCE_COMMAND_ID 0x03 // Ver.: always -#define ZCL_REQUEST_PREFERENCE_CONFIRMATION_COMMAND_ID 0x04 // Ver.: always -#define ZCL_UPDATE_RESPONSE_COMMAND_ID 0x05 // Ver.: always -#define ZCL_DELETE_RESPONSE_COMMAND_ID 0x06 // Ver.: always - -// Client to server -#define ZCL_REQUEST_INFORMATION_COMMAND_ID 0x00 // Ver.: always -#define ZCL_PUSH_INFORMATION_RESPONSE_COMMAND_ID 0x01 // Ver.: always -#define ZCL_SEND_PREFERENCE_COMMAND_ID 0x02 // Ver.: always -#define ZCL_REQUEST_PREFERENCE_RESPONSE_COMMAND_ID 0x03 // Ver.: always -#define ZCL_UPDATE_COMMAND_ID 0x04 // Ver.: always -#define ZCL_DELETE_COMMAND_ID 0x05 // Ver.: always -#define ZCL_CONFIGURE_NODE_DESCRIPTION_COMMAND_ID 0x06 // Ver.: always -#define ZCL_CONFIGURE_DELIVERY_ENABLE_COMMAND_ID 0x07 // Ver.: always -#define ZCL_CONFIGURE_PUSH_INFORMATION_TIMER_COMMAND_ID 0x08 // Ver.: always -#define ZCL_CONFIGURE_SET_ROOT_ID_COMMAND_ID 0x09 // Ver.: always - -// Command types for cluster: Data Sharing -// Cluster specification level: ta-1.0-07-5307-07 - -// Server to client -#define ZCL_WRITE_FILE_REQUEST_COMMAND_ID 0x00 // Ver.: always -#define ZCL_MODIFY_FILE_REQUEST_COMMAND_ID 0x01 // Ver.: always -#define ZCL_MODIFY_RECORD_REQUEST_COMMAND_ID 0x02 // Ver.: always -#define ZCL_FILE_TRANSMISSION_COMMAND_ID 0x03 // Ver.: always -#define ZCL_RECORD_TRANSMISSION_COMMAND_ID 0x04 // Ver.: always - -// Client to server -#define ZCL_READ_FILE_REQUEST_COMMAND_ID 0x00 // Ver.: always -#define ZCL_READ_RECORD_REQUEST_COMMAND_ID 0x01 // Ver.: always -#define ZCL_WRITE_FILE_RESPONSE_COMMAND_ID 0x02 // Ver.: always - -// Command types for cluster: Gaming -// Cluster specification level: ta-1.0-07-5307-07 - -// Server to client -#define ZCL_GAME_ANNOUNCEMENT_COMMAND_ID 0x00 // Ver.: always -#define ZCL_GENERAL_RESPONSE_COMMAND_ID 0x01 // Ver.: always - -// Client to server -#define ZCL_SEARCH_GAME_COMMAND_ID 0x00 // Ver.: always -#define ZCL_JOIN_GAME_COMMAND_ID 0x01 // Ver.: always -#define ZCL_START_GAME_COMMAND_ID 0x02 // Ver.: always -#define ZCL_PAUSE_GAME_COMMAND_ID 0x03 // Ver.: always -#define ZCL_RESUME_GAME_COMMAND_ID 0x04 // Ver.: always -#define ZCL_QUIT_GAME_COMMAND_ID 0x05 // Ver.: always -#define ZCL_END_GAME_COMMAND_ID 0x06 // Ver.: always -#define ZCL_START_OVER_COMMAND_ID 0x07 // Ver.: always -#define ZCL_ACTION_CONTROL_COMMAND_ID 0x08 // Ver.: always -#define ZCL_DOWNLOAD_GAME_COMMAND_ID 0x09 // Ver.: always - -// Command types for cluster: Data Rate Control -// Cluster specification level: ta-1.0-07-5307-07 - -// Server to client -#define ZCL_DATA_RATE_CONTROL_COMMAND_ID 0x00 // Ver.: always - -// Client to server -#define ZCL_PATH_CREATION_COMMAND_ID 0x00 // Ver.: always -#define ZCL_DATA_RATE_NOTIFICATION_COMMAND_ID 0x01 // Ver.: always -#define ZCL_PATH_DELETION_COMMAND_ID 0x02 // Ver.: always - -// Command types for cluster: Voice over ZigBee -// Cluster specification level: ta-1.0-07-5307-07 - -// Server to client -#define ZCL_ESTABLISHMENT_RESPONSE_COMMAND_ID 0x00 // Ver.: always -#define ZCL_VOICE_TRANSMISSION_RESPONSE_COMMAND_ID 0x01 // Ver.: always -#define ZCL_CONTROL_COMMAND_ID 0x02 // Ver.: always - -// Client to server -#define ZCL_ESTABLISHMENT_REQUEST_COMMAND_ID 0x00 // Ver.: always -#define ZCL_VOICE_TRANSMISSION_COMMAND_ID 0x01 // Ver.: always -#define ZCL_VOICE_TRANSMISSION_COMPLETION_COMMAND_ID 0x02 // Ver.: always -#define ZCL_CONTROL_RESPONSE_COMMAND_ID 0x03 // Ver.: always - -// Command types for cluster: Chatting -// Cluster specification level: ta-1.0-07-5307-07 - -// Server to client -#define ZCL_START_CHAT_RESPONSE_COMMAND_ID 0x00 // Ver.: always -#define ZCL_JOIN_CHAT_RESPONSE_COMMAND_ID 0x01 // Ver.: always -#define ZCL_USER_LEFT_COMMAND_ID 0x02 // Ver.: always -#define ZCL_USER_JOINED_COMMAND_ID 0x03 // Ver.: always -#define ZCL_SEARCH_CHAT_RESPONSE_COMMAND_ID 0x04 // Ver.: always -#define ZCL_SWITCH_CHAIRMAN_REQUEST_COMMAND_ID 0x05 // Ver.: always -#define ZCL_SWITCH_CHAIRMAN_CONFIRM_COMMAND_ID 0x06 // Ver.: always -#define ZCL_SWITCH_CHAIRMAN_NOTIFICATION_COMMAND_ID 0x07 // Ver.: always -#define ZCL_GET_NODE_INFORMATION_RESPONSE_COMMAND_ID 0x08 // Ver.: always - -// Client to server -#define ZCL_JOIN_CHAT_REQUEST_COMMAND_ID 0x00 // Ver.: always -#define ZCL_LEAVE_CHAT_REQUEST_COMMAND_ID 0x01 // Ver.: always -#define ZCL_SEARCH_CHAT_REQUEST_COMMAND_ID 0x02 // Ver.: always -#define ZCL_SWITCH_CHAIRMAN_RESPONSE_COMMAND_ID 0x03 // Ver.: always -#define ZCL_START_CHAT_REQUEST_COMMAND_ID 0x04 // Ver.: always -#define ZCL_CHAT_MESSAGE_COMMAND_ID 0x05 // Ver.: always -#define ZCL_GET_NODE_INFORMATION_REQUEST_COMMAND_ID 0x06 // Ver.: always - -// Command types for cluster: Payment -// Cluster specification level: ta-1.0-07-5307-07 - -// Server to client -#define ZCL_BUY_CONFIRM_COMMAND_ID 0x00 // Ver.: always -#define ZCL_RECEIPT_DELIVERY_COMMAND_ID 0x01 // Ver.: always -#define ZCL_TRANSACTION_END_COMMAND_ID 0x02 // Ver.: always - -// Client to server -#define ZCL_BUY_REQUEST_COMMAND_ID 0x00 // Ver.: always -#define ZCL_ACCEPT_PAYMENT_COMMAND_ID 0x01 // Ver.: always -#define ZCL_PAYMENT_CONFIRM_COMMAND_ID 0x02 // Ver.: always - -// Command types for cluster: Billing -// Cluster specification level: ta-1.0-07-5307-07 - -// Server to client -#define ZCL_CHECK_BILL_STATUS_COMMAND_ID 0x00 // Ver.: always -#define ZCL_SEND_BILL_RECORD_COMMAND_ID 0x01 // Ver.: always - -// Client to server -#define ZCL_SUBSCRIBE_COMMAND_ID 0x00 // Ver.: always -#define ZCL_UNSUBSCRIBE_COMMAND_ID 0x01 // Ver.: always -#define ZCL_START_BILLING_SESSION_COMMAND_ID 0x02 // Ver.: always -#define ZCL_STOP_BILLING_SESSION_COMMAND_ID 0x03 // Ver.: always -#define ZCL_BILL_STATUS_NOTIFICATION_COMMAND_ID 0x04 // Ver.: always -#define ZCL_SESSION_KEEP_ALIVE_COMMAND_ID 0x05 // Ver.: always - -// Command types for cluster: Appliance Events and Alert -// Cluster specification level: UNKNOWN - -// Server to client -#define ZCL_GET_ALERTS_RESPONSE_COMMAND_ID 0x00 // Ver.: always -#define ZCL_ALERTS_NOTIFICATION_COMMAND_ID 0x01 // Ver.: always -#define ZCL_EVENTS_NOTIFICATION_COMMAND_ID 0x02 // Ver.: always - -// Client to server -#define ZCL_GET_ALERTS_COMMAND_ID 0x00 // Ver.: always - -// Command types for cluster: Appliance Statistics -// Cluster specification level: UNKNOWN - -// Server to client -#define ZCL_LOG_NOTIFICATION_COMMAND_ID 0x00 // Ver.: always -#define ZCL_LOG_RESPONSE_COMMAND_ID 0x01 // Ver.: always -#define ZCL_LOG_QUEUE_RESPONSE_COMMAND_ID 0x02 // Ver.: always -#define ZCL_STATISTICS_AVAILABLE_COMMAND_ID 0x03 // Ver.: always - -// Client to server -#define ZCL_LOG_REQUEST_COMMAND_ID 0x00 // Ver.: always -#define ZCL_LOG_QUEUE_REQUEST_COMMAND_ID 0x01 // Ver.: always - -// Command types for cluster: Electrical Measurement -// Cluster specification level: UNKNOWN - -// Server to client -#define ZCL_GET_PROFILE_INFO_RESPONSE_COMMAND_COMMAND_ID 0x00 // Ver.: always -#define ZCL_GET_MEASUREMENT_PROFILE_RESPONSE_COMMAND_COMMAND_ID 0x01 // Ver.: always - -// Client to server -#define ZCL_GET_PROFILE_INFO_COMMAND_COMMAND_ID 0x00 // Ver.: always -#define ZCL_GET_MEASUREMENT_PROFILE_COMMAND_COMMAND_ID 0x01 // Ver.: always - -// Command types for cluster: ZLL Commissioning -// Cluster specification level: zll-1.0-11-0037-10 - -// Server to client -#define ZCL_SCAN_RESPONSE_COMMAND_ID 0x01 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_DEVICE_INFORMATION_RESPONSE_COMMAND_ID 0x03 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_NETWORK_START_RESPONSE_COMMAND_ID 0x11 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_NETWORK_JOIN_ROUTER_RESPONSE_COMMAND_ID 0x13 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_NETWORK_JOIN_END_DEVICE_RESPONSE_COMMAND_ID 0x15 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_ENDPOINT_INFORMATION_COMMAND_ID 0x40 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_GET_GROUP_IDENTIFIERS_RESPONSE_COMMAND_ID 0x41 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_GET_ENDPOINT_LIST_RESPONSE_COMMAND_ID 0x42 // Ver.: since zll-1.0-11-0037-10 - -// Client to server -#define ZCL_SCAN_REQUEST_COMMAND_ID 0x00 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_DEVICE_INFORMATION_REQUEST_COMMAND_ID 0x02 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_IDENTIFY_REQUEST_COMMAND_ID 0x06 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_RESET_TO_FACTORY_NEW_REQUEST_COMMAND_ID 0x07 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_NETWORK_START_REQUEST_COMMAND_ID 0x10 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_NETWORK_JOIN_ROUTER_REQUEST_COMMAND_ID 0x12 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_NETWORK_JOIN_END_DEVICE_REQUEST_COMMAND_ID 0x14 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_NETWORK_UPDATE_REQUEST_COMMAND_ID 0x16 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_GET_GROUP_IDENTIFIERS_REQUEST_COMMAND_ID 0x41 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_GET_ENDPOINT_LIST_REQUEST_COMMAND_ID 0x42 // Ver.: since zll-1.0-11-0037-10 - -// Command types for cluster: Sample Mfg Specific Cluster -// Cluster specification level: UNKNOWN - -// Client to server -#define ZCL_COMMAND_ONE_COMMAND_ID 0x00 // Ver.: always mfgCode: 0x1002 - -// Command types for cluster: Sample Mfg Specific Cluster 2 -// Cluster specification level: UNKNOWN - -// Client to server -#define ZCL_COMMAND_TWO_COMMAND_ID 0x00 // Ver.: always mfgCode: 0x1049 - -// Command types for cluster: Configuration Cluster -// Cluster specification level: UNKNOWN - -// Server to client -#define ZCL_RETURN_TOKEN_COMMAND_ID 0x00 // Ver.: always mfgCode: 0x1002 - -// Client to server -#define ZCL_SET_TOKEN_COMMAND_ID 0x00 // Ver.: always mfgCode: 0x1002 -#define ZCL_LOCK_TOKENS_COMMAND_ID 0x01 // Ver.: always mfgCode: 0x1002 -#define ZCL_READ_TOKENS_COMMAND_ID 0x02 // Ver.: always mfgCode: 0x1002 -#define ZCL_UNLOCK_TOKENS_COMMAND_ID 0x03 // Ver.: always mfgCode: 0x1002 - -// Command types for cluster: MFGLIB Cluster -// Cluster specification level: UNKNOWN - -// Client to server -#define ZCL_STREAM_COMMAND_ID 0x00 // Ver.: always mfgCode: 0x1002 -#define ZCL_TONE_COMMAND_ID 0x01 // Ver.: always mfgCode: 0x1002 -#define ZCL_RX_MODE_COMMAND_ID 0x02 // Ver.: always mfgCode: 0x1002 - -// Command types for cluster: SL Works With All Hubs -// Cluster specification level: UNKNOWN - -// Server to client -#define ZCL_APS_LINK_KEY_AUTHORIZATION_QUERY_RESPONSE_COMMAND_ID 0x00 // Ver.: always mfgCode: 0x1217 -#define ZCL_POWERING_OFF_NOTIFICATION_COMMAND_ID 0x01 // Ver.: always mfgCode: 0x1217 -#define ZCL_POWERING_ON_NOTIFICATION_COMMAND_ID 0x02 // Ver.: always mfgCode: 0x1217 -#define ZCL_SHORT_ADDRESS_CHANGE_COMMAND_ID 0x03 // Ver.: always mfgCode: 0x1217 -#define ZCL_APS_ACK_ENABLEMENT_QUERY_RESPONSE_COMMAND_ID 0x04 // Ver.: always mfgCode: 0x1217 -#define ZCL_POWER_DESCRIPTOR_CHANGE_COMMAND_ID 0x05 // Ver.: always mfgCode: 0x1217 -#define ZCL_NEW_DEBUG_REPORT_NOTIFICATION_COMMAND_ID 0x06 // Ver.: always mfgCode: 0x1217 -#define ZCL_DEBUG_REPORT_QUERY_RESPONSE_COMMAND_ID 0x07 // Ver.: always mfgCode: 0x1217 -#define ZCL_TRUST_CENTER_FOR_CLUSTER_SERVER_QUERY_RESPONSE_COMMAND_ID 0x08 // Ver.: always mfgCode: 0x1217 -#define ZCL_SURVEY_BEACONS_RESPONSE_COMMAND_ID 0x09 // Ver.: always mfgCode: 0x1217 -#define ZCL_USE_TRUST_CENTER_FOR_CLUSTER_SERVER_RESPONSE_COMMAND_ID 0x9E // Ver.: always mfgCode: 0x1217 - -// Client to server -#define ZCL_ENABLE_APS_LINK_KEY_AUTHORIZATION_COMMAND_ID 0x00 // Ver.: always mfgCode: 0x1217 -#define ZCL_DISABLE_APS_LINK_KEY_AUTHORIZATION_COMMAND_ID 0x01 // Ver.: always mfgCode: 0x1217 -#define ZCL_APS_LINK_KEY_AUTHORIZATION_QUERY_COMMAND_ID 0x02 // Ver.: always mfgCode: 0x1217 -#define ZCL_REQUEST_NEW_APS_LINK_KEY_COMMAND_ID 0x03 // Ver.: always mfgCode: 0x1217 -#define ZCL_ENABLE_WWAH_APP_EVENT_RETRY_ALGORITHM_COMMAND_ID 0x04 // Ver.: always mfgCode: 0x1217 -#define ZCL_DISABLE_WWAH_APP_EVENT_RETRY_ALGORITHM_COMMAND_ID 0x05 // Ver.: always mfgCode: 0x1217 -#define ZCL_REQUEST_TIME_COMMAND_ID 0x06 // Ver.: always mfgCode: 0x1217 -#define ZCL_ENABLE_WWAH_REJOIN_ALGORITHM_COMMAND_ID 0x07 // Ver.: always mfgCode: 0x1217 -#define ZCL_DISABLE_WWAH_REJOIN_ALGORITHM_COMMAND_ID 0x08 // Ver.: always mfgCode: 0x1217 -#define ZCL_SET_IAS_ZONE_ENROLLMENT_METHOD_COMMAND_ID 0x09 // Ver.: always mfgCode: 0x1217 -#define ZCL_CLEAR_BINDING_TABLE_COMMAND_ID 0x0A // Ver.: always mfgCode: 0x1217 -#define ZCL_ENABLE_PERIODIC_ROUTER_CHECK_INS_COMMAND_ID 0x0B // Ver.: always mfgCode: 0x1217 -#define ZCL_DISABLE_PERIODIC_ROUTER_CHECK_INS_COMMAND_ID 0x0C // Ver.: always mfgCode: 0x1217 -#define ZCL_SET_MAC_POLL_FAILURE_WAIT_TIME_COMMAND_ID 0x0D // Ver.: always mfgCode: 0x1217 -#define ZCL_SET_PENDING_NETWORK_UPDATE_COMMAND_ID 0x0E // Ver.: always mfgCode: 0x1217 -#define ZCL_REQUIRE_APS_ACKS_ON_UNICASTS_COMMAND_ID 0x0F // Ver.: always mfgCode: 0x1217 -#define ZCL_REMOVE_APS_ACKS_ON_UNICASTS_REQUIREMENT_COMMAND_ID 0x10 // Ver.: always mfgCode: 0x1217 -#define ZCL_APS_ACK_REQUIREMENT_QUERY_COMMAND_ID 0x11 // Ver.: always mfgCode: 0x1217 -#define ZCL_DEBUG_REPORT_QUERY_COMMAND_ID 0x12 // Ver.: always mfgCode: 0x1217 -#define ZCL_SURVEY_BEACONS_COMMAND_ID 0x13 // Ver.: always mfgCode: 0x1217 -#define ZCL_DISABLE_OTA_DOWNGRADES_COMMAND_ID 0x14 // Ver.: always mfgCode: 0x1217 -#define ZCL_DISABLE_MGMT_LEAVE_WITHOUT_REJOIN_COMMAND_ID 0x15 // Ver.: always mfgCode: 0x1217 -#define ZCL_DISABLE_TOUCHLINK_INTERPAN_MESSAGE_SUPPORT_COMMAND_ID 0x16 // Ver.: always mfgCode: 0x1217 -#define ZCL_ENABLE_WWAH_PARENT_CLASSIFICATION_COMMAND_ID 0x17 // Ver.: always mfgCode: 0x1217 -#define ZCL_DISABLE_WWAH_PARENT_CLASSIFICATION_COMMAND_ID 0x18 // Ver.: always mfgCode: 0x1217 -#define ZCL_ENABLE_TC_SECURITY_ON_NTWK_KEY_ROTATION_COMMAND_ID 0x19 // Ver.: always mfgCode: 0x1217 -#define ZCL_ENABLE_WWAH_BAD_PARENT_RECOVERY_COMMAND_ID 0x1A // Ver.: always mfgCode: 0x1217 -#define ZCL_DISABLE_WWAH_BAD_PARENT_RECOVERY_COMMAND_ID 0x1B // Ver.: always mfgCode: 0x1217 -#define ZCL_ENABLE_CONFIGURATION_MODE_COMMAND_ID 0x1C // Ver.: always mfgCode: 0x1217 -#define ZCL_DISABLE_CONFIGURATION_MODE_COMMAND_ID 0x1D // Ver.: always mfgCode: 0x1217 -#define ZCL_USE_TRUST_CENTER_FOR_CLUSTER_SERVER_COMMAND_ID 0x1E // Ver.: always mfgCode: 0x1217 -#define ZCL_TRUST_CENTER_FOR_CLUSTER_SERVER_QUERY_COMMAND_ID 0x1F // Ver.: always mfgCode: 0x1217 - -#endif // SILABS_EMBER_AF_COMMAND_ID diff --git a/examples/lighting-app/efr32/src/gen/endpoint_config.h b/examples/lighting-app/efr32/src/gen/endpoint_config.h deleted file mode 100644 index 70c37bde9d2ec9..00000000000000 --- a/examples/lighting-app/efr32/src/gen/endpoint_config.h +++ /dev/null @@ -1,160 +0,0 @@ -/** - * - * 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 SILABS_AF_ENDPOINT_CONFIG -#define SILABS_AF_ENDPOINT_CONFIG - -// Fixed number of defined endpoints -#define FIXED_ENDPOINT_COUNT (1) - -// Generated attributes -#define GENERATED_ATTRIBUTES \ - { \ - { 0x0000, ZCL_BOOLEAN_ATTRIBUTE_TYPE, 1, (0x00), { (uint8_t *) 0x00 } }, /* 0 / On/off / on/off*/ \ - { 0xFFFD, ZCL_INT16U_ATTRIBUTE_TYPE, 2, (0x00), { (uint8_t *) 0x0001 } }, /* 1 / On/off / cluster revision*/ \ - } - -// Cluster function static arrays -#define GENERATED_FUNCTION_ARRAYS - -// Clusters definitions -#define GENERATED_CLUSTERS \ - { \ - { \ - 0x0006, (EmberAfAttributeMetadata *) &(generatedAttributes[0]), 2, 3, (CLUSTER_MASK_SERVER), NULL, \ - }, \ - } - -// Endpoint types -#define GENERATED_ENDPOINT_TYPES \ - { \ - { (EmberAfCluster *) &(generatedClusters[0]), 1, 3 }, \ - } - -// Cluster manufacturer codes -#define GENERATED_CLUSTER_MANUFACTURER_CODES \ - { \ - { \ - 0x00, 0x00 \ - } \ - } -#define GENERATED_CLUSTER_MANUFACTURER_CODE_COUNT (0) - -// Attribute manufacturer codes -#define GENERATED_ATTRIBUTE_MANUFACTURER_CODES \ - { \ - { \ - 0x00, 0x00 \ - } \ - } -#define GENERATED_ATTRIBUTE_MANUFACTURER_CODE_COUNT (0) - -// Largest attribute size is needed for various buffers -#define ATTRIBUTE_LARGEST (2) -// Total size of singleton attributes -#define ATTRIBUTE_SINGLETONS_SIZE (0) - -// Total size of attribute storage -#define ATTRIBUTE_MAX_SIZE 3 - -// Array of endpoints that are supported -#define FIXED_ENDPOINT_ARRAY \ - { \ - 1 \ - } - -// Array of profile ids -#define FIXED_PROFILE_IDS \ - { \ - 65535 \ - } - -// Array of device ids -#define FIXED_DEVICE_IDS \ - { \ - 65535 \ - } - -// Array of device versions -#define FIXED_DEVICE_VERSIONS \ - { \ - 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 \ - } - -#define EMBER_AF_GENERATED_PLUGIN_STACK_STATUS_FUNCTION_DECLARATIONS \ - void emberAfPluginNetworkSteeringStackStatusCallback(EmberStatus status); - -#define EMBER_AF_GENERATED_PLUGIN_STACK_STATUS_FUNCTION_CALLS emberAfPluginNetworkSteeringStackStatusCallback(status); - -// Generated data for the command discovery -#define GENERATED_COMMANDS \ - { \ - { 0x0006, 0x00, COMMAND_MASK_INCOMING_SERVER }, /* On/off / Off */ \ - { 0x0006, 0x01, COMMAND_MASK_INCOMING_SERVER }, /* On/off / On */ \ - { 0x0006, 0x02, COMMAND_MASK_INCOMING_SERVER }, /* On/off / Toggle */ \ - } -#define EMBER_AF_GENERATED_COMMAND_COUNT (3) - -// Command manufacturer codes -#define GENERATED_COMMAND_MANUFACTURER_CODES \ - { \ - { \ - 0x00, 0x00 \ - } \ - } -#define GENERATED_COMMAND_MANUFACTURER_CODE_COUNT (0) - -// Generated reporting configuration defaults -#define EMBER_AF_GENERATED_REPORTING_CONFIG_DEFAULTS \ - { \ - { EMBER_ZCL_REPORTING_DIRECTION_REPORTED, 1, 0x0006, 0x0000, CLUSTER_MASK_SERVER, 0x0000, 1, 65534, 0 }, \ - } -#define EMBER_AF_GENERATED_REPORTING_CONFIG_DEFAULTS_TABLE_SIZE (1) -#endif // SILABS_AF_ENDPOINT_CONFIG diff --git a/examples/lighting-app/efr32/src/gen/enums.h b/examples/lighting-app/efr32/src/gen/enums.h deleted file mode 100644 index 80b950a7ee2c29..00000000000000 --- a/examples/lighting-app/efr32/src/gen/enums.h +++ /dev/null @@ -1,3570 +0,0 @@ -/** - * - * 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 SILABS_EMBER_AF_ENUMS -#define SILABS_EMBER_AF_ENUMS - -/** - * @addtogroup enums Application Framework Enums Reference - * This header provides Application Framework enum definitions. - * @{ - */ -/** @name Enums */ -// @{ - -typedef enum -{ - EMBER_ZCL_11073_CONNECT_REQUEST_CONNECT_CONTROL_PREEMPTIBLE = 0x01, -} EmberAf11073ConnectRequestConnectControl; - -typedef enum -{ - EMBER_ZCL_11073_TUNNEL_CONNECTION_STATUS_DISCONNECTED = 0x00, - EMBER_ZCL_11073_TUNNEL_CONNECTION_STATUS_CONNECTED = 0x01, - EMBER_ZCL_11073_TUNNEL_CONNECTION_STATUS_NOT_AUTHORIZED = 0x02, - EMBER_ZCL_11073_TUNNEL_CONNECTION_STATUS_RECONNECT_REQUEST = 0x03, - EMBER_ZCL_11073_TUNNEL_CONNECTION_STATUS_ALREADY_CONNECTED = 0x04, -} EmberAf11073TunnelConnectionStatus; - -typedef enum -{ - EMBER_ZCL_ALERT_COUNT_TYPE_UNSTRUCTURED = 0x00, -} EmberAfAlertCountType; - -typedef enum -{ - EMBER_ZCL_ALERT_STRUCTURE_CATEGORY_WARNING = 0x0100, - EMBER_ZCL_ALERT_STRUCTURE_CATEGORY_DANGER = 0x0200, - EMBER_ZCL_ALERT_STRUCTURE_CATEGORY_FAILURE = 0x0300, -} EmberAfAlertStructureCategory; - -typedef enum -{ - EMBER_ZCL_ALERT_STRUCTURE_PRESENCE_RECOVERY_RECOVERY = 0x0000, - EMBER_ZCL_ALERT_STRUCTURE_PRESENCE_RECOVERY_PRESENCE = 0x1000, -} EmberAfAlertStructurePresenceRecovery; - -typedef enum -{ - EMBER_ZCL_ALTERNATE_COST_UNIT_KG_OF_CO2_PER_UNIT_OF_MEASURE = 0x02, -} EmberAfAlternateCostUnit; - -typedef enum -{ - EMBER_ZCL_AMI_CRITICALITY_LEVEL_RESERVED = 0x00, - EMBER_ZCL_AMI_CRITICALITY_LEVEL_GREEN = 0x01, - EMBER_ZCL_AMI_CRITICALITY_LEVEL_1 = 0x02, - EMBER_ZCL_AMI_CRITICALITY_LEVEL_2 = 0x03, - EMBER_ZCL_AMI_CRITICALITY_LEVEL_3 = 0x04, - EMBER_ZCL_AMI_CRITICALITY_LEVEL_4 = 0x05, - EMBER_ZCL_AMI_CRITICALITY_LEVEL_5 = 0x06, - EMBER_ZCL_AMI_CRITICALITY_LEVEL_EMERGENCY = 0x07, - EMBER_ZCL_AMI_CRITICALITY_LEVEL_PLANNED_OUTAGE = 0x08, - EMBER_ZCL_AMI_CRITICALITY_LEVEL_SERVICE_DISCONNECT = 0x09, - EMBER_ZCL_AMI_CRITICALITY_LEVEL_UTILITY_DEFINED1 = 0x0A, - EMBER_ZCL_AMI_CRITICALITY_LEVEL_UTILITY_DEFINED2 = 0x0B, - EMBER_ZCL_AMI_CRITICALITY_LEVEL_UTILITY_DEFINED3 = 0x0C, - EMBER_ZCL_AMI_CRITICALITY_LEVEL_UTILITY_DEFINED4 = 0x0D, - EMBER_ZCL_AMI_CRITICALITY_LEVEL_UTILITY_DEFINED5 = 0x0E, - EMBER_ZCL_AMI_CRITICALITY_LEVEL_UTILITY_DEFINED6 = 0x0F, -} EmberAfAmiCriticalityLevel; - -typedef enum -{ - EMBER_ZCL_AMI_EVENT_STATUS_LOAD_CONTROL_EVENT_COMMAND_RX = 0x01, - EMBER_ZCL_AMI_EVENT_STATUS_EVENT_STARTED = 0x02, - EMBER_ZCL_AMI_EVENT_STATUS_EVENT_COMPLETED = 0x03, - EMBER_ZCL_AMI_EVENT_STATUS_USER_HAS_CHOOSE_TO_OPT_OUT = 0x04, - EMBER_ZCL_AMI_EVENT_STATUS_USER_HAS_CHOOSE_TO_OPT_IN = 0x05, - EMBER_ZCL_AMI_EVENT_STATUS_THE_EVENT_HAS_BEEN_CANCELED = 0x06, - EMBER_ZCL_AMI_EVENT_STATUS_THE_EVENT_HAS_BEEN_SUPERSEDED = 0x07, - EMBER_ZCL_AMI_EVENT_STATUS_EVENT_PARTIALLY_COMPLETED_WITH_USER_OPT_OUT = 0x08, - EMBER_ZCL_AMI_EVENT_STATUS_EVENT_PARTIALLY_COMPLETED_DUE_TO_USER_OPT_IN = 0x09, - EMBER_ZCL_AMI_EVENT_STATUS_EVENT_COMPLETED_NO_USER_PARTICIPATION_PREVIOUS_OPT_OUT = 0x0A, - EMBER_ZCL_AMI_EVENT_STATUS_INVALID_OPT_OUT = 0xF6, - EMBER_ZCL_AMI_EVENT_STATUS_EVENT_NOT_FOUND = 0xF7, - EMBER_ZCL_AMI_EVENT_STATUS_REJECTED_INVALID_CANCEL_COMMAND = 0xF8, - EMBER_ZCL_AMI_EVENT_STATUS_REJECTED_INVALID_CANCEL_COMMAND_INVALID_EFFECTIVE_TIME = 0xF9, - EMBER_ZCL_AMI_EVENT_STATUS_REJECTED_EVENT_EXPIRED = 0xFB, - EMBER_ZCL_AMI_EVENT_STATUS_REJECTED_INVALID_CANCEL_UNDEFINED_EVENT = 0xFD, - EMBER_ZCL_AMI_EVENT_STATUS_LOAD_CONTROL_EVENT_COMMAND_REJECTED = 0xFE, -} EmberAfAmiEventStatus; - -typedef enum -{ - EMBER_ZCL_AMI_GET_PROFILE_STATUS_SUCCESS = 0x00, - EMBER_ZCL_AMI_GET_PROFILE_STATUS_UNDEFINED_INTERVAL_CHANNEL_REQUESTED = 0x01, - EMBER_ZCL_AMI_GET_PROFILE_STATUS_INTERVAL_CHANNEL_NOT_SUPPORTED = 0x02, - EMBER_ZCL_AMI_GET_PROFILE_STATUS_INVALID_END_TIME = 0x03, - EMBER_ZCL_AMI_GET_PROFILE_STATUS_MORE_PERIODS_REQUESTED_THAN_CAN_BE_RETURNED = 0x04, - EMBER_ZCL_AMI_GET_PROFILE_STATUS_NO_INTERVALS_AVAILABLE_FOR_THE_REQUESTED_TIME = 0x05, -} EmberAfAmiGetProfileStatus; - -typedef enum -{ - EMBER_ZCL_AMI_INTERVAL_CHANNEL_CONSUMPTION_DELIVERED = 0x00, - EMBER_ZCL_AMI_INTERVAL_CHANNEL_CONSUMPTION_RECEIVED = 0x01, -} EmberAfAmiIntervalChannel; - -typedef enum -{ - EMBER_ZCL_AMI_INTERVAL_PERIOD_DAILY = 0x00, - EMBER_ZCL_AMI_INTERVAL_PERIOD_MINUTES60 = 0x01, - EMBER_ZCL_AMI_INTERVAL_PERIOD_MINUTES30 = 0x02, - EMBER_ZCL_AMI_INTERVAL_PERIOD_MINUTES15 = 0x03, - EMBER_ZCL_AMI_INTERVAL_PERIOD_MINUTES10 = 0x04, - EMBER_ZCL_AMI_INTERVAL_PERIOD_MINUTES7P5 = 0x05, - EMBER_ZCL_AMI_INTERVAL_PERIOD_MINUTES5 = 0x06, - EMBER_ZCL_AMI_INTERVAL_PERIOD_MINUTES2P5 = 0x07, -} EmberAfAmiIntervalPeriod; - -typedef enum -{ - EMBER_ZCL_AMI_KEY_ESTABLISHMENT_STATUS_SUCCESS = 0x00, - EMBER_ZCL_AMI_KEY_ESTABLISHMENT_STATUS_UNKNOWN_ISSUER = 0x01, - EMBER_ZCL_AMI_KEY_ESTABLISHMENT_STATUS_BAD_KEY_CONFIRM = 0x02, - EMBER_ZCL_AMI_KEY_ESTABLISHMENT_STATUS_BAD_MESSAGE = 0x03, - EMBER_ZCL_AMI_KEY_ESTABLISHMENT_STATUS_NO_RESOURCES = 0x04, - EMBER_ZCL_AMI_KEY_ESTABLISHMENT_STATUS_UNSUPPORTED_SUITE = 0x05, - EMBER_ZCL_AMI_KEY_ESTABLISHMENT_STATUS_INVALID_KEY_USAGE = 0x06, -} EmberAfAmiKeyEstablishmentStatus; - -typedef enum -{ - EMBER_ZCL_AMI_REGISTRATION_STATE_UNREGISTERED = 0x00, - EMBER_ZCL_AMI_REGISTRATION_STATE_JOINING_NETWORK = 0x01, - EMBER_ZCL_AMI_REGISTRATION_STATE_JOINED_NETWORK = 0x02, - EMBER_ZCL_AMI_REGISTRATION_STATE_SUBMITTED_REGISTRATION_REQUEST = 0x03, - EMBER_ZCL_AMI_REGISTRATION_STATE_REGISTRATION_REJECTED = 0x04, - EMBER_ZCL_AMI_REGISTRATION_STATE_REGISTERED = 0x05, - EMBER_ZCL_AMI_REGISTRATION_STATE_REGISTERATION_NOT_POSSIBLE = 0x06, -} EmberAfAmiRegistrationState; - -typedef enum -{ - EMBER_ZCL_AMI_UNIT_OF_MEASURE_KILO_WATT_HOURS = 0x00, - EMBER_ZCL_AMI_UNIT_OF_MEASURE_CUBIC_METER_PER_HOUR = 0x01, - EMBER_ZCL_AMI_UNIT_OF_MEASURE_CUBIC_FEET_PER_HOUR = 0x02, - EMBER_ZCL_AMI_UNIT_OF_MEASURE_CENTUM_CUBIC_FEET_PER_HOUR = 0x03, - EMBER_ZCL_AMI_UNIT_OF_MEASURE_US_GALLONS_PER_HOUR = 0x04, - EMBER_ZCL_AMI_UNIT_OF_MEASURE_IMPERIAL_GALLONS_PER_HOUR = 0x05, - EMBER_ZCL_AMI_UNIT_OF_MEASURE_BT_US_OR_BTU_PER_HOUR = 0x06, - EMBER_ZCL_AMI_UNIT_OF_MEASURE_LITERS_OR_LITERS_PER_HOUR = 0x07, - EMBER_ZCL_AMI_UNIT_OF_MEASURE_KPA_GAUGE = 0x08, - EMBER_ZCL_AMI_UNIT_OF_MEASURE_KPA_ABSOLUTE = 0x09, - EMBER_ZCL_AMI_UNIT_OF_MEASURE_MCF_OR_MCF_PER_SECOND = 0x0A, - EMBER_ZCL_AMI_UNIT_OF_MEASURE_UNITLESS = 0x0B, - EMBER_ZCL_AMI_UNIT_OF_MEASURE_MJ_OR_MJ_PER_SECOND = 0x0C, - EMBER_ZCL_AMI_UNIT_OF_MEASURE_K_VAR_OR_K_VAR_HOURS = 0x0D, - EMBER_ZCL_AMI_UNIT_OF_MEASURE_KILO_WATT_HOURS_BCD = 0x80, - EMBER_ZCL_AMI_UNIT_OF_MEASURE_CUBIC_METER_PER_HOUR_BCD = 0x81, - EMBER_ZCL_AMI_UNIT_OF_MEASURE_CUBIC_FEET_PER_HOUR_BCD = 0x82, - EMBER_ZCL_AMI_UNIT_OF_MEASURE_CENTUM_CUBIC_FEET_PER_HOUR_BCD = 0x83, - EMBER_ZCL_AMI_UNIT_OF_MEASURE_US_GALLONS_PER_HOUR_BCD = 0x84, - EMBER_ZCL_AMI_UNIT_OF_MEASURE_IMPERIAL_GALLONS_PER_HOUR_BCD = 0x85, - EMBER_ZCL_AMI_UNIT_OF_MEASURE_BT_US_OR_BTU_PER_HOUR_BCD = 0x86, - EMBER_ZCL_AMI_UNIT_OF_MEASURE_LITERS_OR_LITERS_PER_HOUR_BCD = 0x87, - EMBER_ZCL_AMI_UNIT_OF_MEASURE_KPA_GUAGE_BCD = 0x88, - EMBER_ZCL_AMI_UNIT_OF_MEASURE_KPA_ABSOLUTE_BCD = 0x89, - EMBER_ZCL_AMI_UNIT_OF_MEASURE_MCF_OR_MCF_PER_SECOND_BCD = 0x8A, - EMBER_ZCL_AMI_UNIT_OF_MEASURE_UNITLESS_BCD = 0x8B, - EMBER_ZCL_AMI_UNIT_OF_MEASURE_MJ_OR_MJ_PER_SECOND_BCD = 0x8C, - EMBER_ZCL_AMI_UNIT_OF_MEASURE_K_VAR_OR_K_VAR_HOURS_BCD = 0x8D, -} EmberAfAmiUnitOfMeasure; - -typedef enum -{ - EMBER_ZCL_ANONYMOUS_DATA_STATE_NO_SOURCE_FOUND = 0x00, - EMBER_ZCL_ANONYMOUS_DATA_STATE_SOURCE_FOUND = 0x01, -} EmberAfAnonymousDataState; - -typedef enum -{ - EMBER_ZCL_APPLIANCE_STATUS_OFF = 0x01, - EMBER_ZCL_APPLIANCE_STATUS_STAND_BY = 0x02, - EMBER_ZCL_APPLIANCE_STATUS_PROGRAMMED = 0x03, - EMBER_ZCL_APPLIANCE_STATUS_PROGRAMMED_WAITING_TO_START = 0x04, - EMBER_ZCL_APPLIANCE_STATUS_RUNNING = 0x05, - EMBER_ZCL_APPLIANCE_STATUS_PAUSE = 0x06, - EMBER_ZCL_APPLIANCE_STATUS_END_PROGRAMMED = 0x07, - EMBER_ZCL_APPLIANCE_STATUS_FAILURE = 0x08, - EMBER_ZCL_APPLIANCE_STATUS_PROGRAMME_INTERRUPTED = 0x09, - EMBER_ZCL_APPLIANCE_STATUS_IDLE = 0x0A, - EMBER_ZCL_APPLIANCE_STATUS_RINSE_HOLD = 0x0B, - EMBER_ZCL_APPLIANCE_STATUS_SERVICE = 0x0C, - EMBER_ZCL_APPLIANCE_STATUS_SUPERFREEZING = 0x0D, - EMBER_ZCL_APPLIANCE_STATUS_SUPERCOOLING = 0x0E, - EMBER_ZCL_APPLIANCE_STATUS_SUPERHEATING = 0x0F, -} EmberAfApplianceStatus; - -typedef enum -{ - EMBER_ZCL_ATTRIBUTE_REPORTING_STATUS_PENDING = 0x00, - EMBER_ZCL_ATTRIBUTE_REPORTING_STATUS_ATTRIBUTE_REPORTING_COMPLETE = 0x01, -} EmberAfAttributeReportingStatus; - -typedef enum -{ - EMBER_ZCL_ATTRIBUTE_WRITE_PERMISSION_DENY_WRITE = 0x00, - EMBER_ZCL_ATTRIBUTE_WRITE_PERMISSION_ALLOW_WRITE_NORMAL = 0x01, - EMBER_ZCL_ATTRIBUTE_WRITE_PERMISSION_ALLOW_WRITE_OF_READ_ONLY = 0x02, - EMBER_ZCL_ATTRIBUTE_WRITE_PERMISSION_UNSUPPORTED_ATTRIBUTE = 0x86, - EMBER_ZCL_ATTRIBUTE_WRITE_PERMISSION_INVALID_VALUE = 0x87, - EMBER_ZCL_ATTRIBUTE_WRITE_PERMISSION_READ_ONLY = 0x88, - EMBER_ZCL_ATTRIBUTE_WRITE_PERMISSION_INVALID_DATA_TYPE = 0x8D, -} EmberAfAttributeWritePermission; - -typedef enum -{ - EMBER_ZCL_BARRIER_CONTROL_BARRIER_POSITION_CLOSED = 0x00, - EMBER_ZCL_BARRIER_CONTROL_BARRIER_POSITION_OPEN = 0x64, - EMBER_ZCL_BARRIER_CONTROL_BARRIER_POSITION_UNKNOWN = 0xFF, -} EmberAfBarrierControlBarrierPosition; - -typedef enum -{ - EMBER_ZCL_BARRIER_CONTROL_MOVING_STATE_STOPPED = 0x00, - EMBER_ZCL_BARRIER_CONTROL_MOVING_STATE_CLOSING = 0x01, - EMBER_ZCL_BARRIER_CONTROL_MOVING_STATE_OPENING = 0x02, -} EmberAfBarrierControlMovingState; - -typedef enum -{ - EMBER_ZCL_BATTERY_SIZE_NO_BATTERY = 0x00, - EMBER_ZCL_BATTERY_SIZE_BUILT_IN = 0x01, - EMBER_ZCL_BATTERY_SIZE_OTHER = 0x02, - EMBER_ZCL_BATTERY_SIZE_AA = 0x03, - EMBER_ZCL_BATTERY_SIZE_AAA = 0x04, - EMBER_ZCL_BATTERY_SIZE_C = 0x05, - EMBER_ZCL_BATTERY_SIZE_D = 0x06, - EMBER_ZCL_BATTERY_SIZE_UNKNOWN = 0xFF, -} EmberAfBatterySize; - -typedef enum -{ - EMBER_ZCL_BILLING_PERIOD_DURATION_UNITS_MINUTES = 0x000000, - EMBER_ZCL_BILLING_PERIOD_DURATION_UNITS_DAYS = 0x400000, - EMBER_ZCL_BILLING_PERIOD_DURATION_UNITS_WEEKS = 0x800000, - EMBER_ZCL_BILLING_PERIOD_DURATION_UNITS_MONTHS = 0xC00000, -} EmberAfBillingPeriodDurationUnits; - -typedef enum -{ - EMBER_ZCL_BLOCK_NO_BLOCKS_IN_USE = 0x00, - EMBER_ZCL_BLOCK_BLOCK1 = 0x01, - EMBER_ZCL_BLOCK_BLOCK2 = 0x02, - EMBER_ZCL_BLOCK_BLOCK3 = 0x03, - EMBER_ZCL_BLOCK_BLOCK4 = 0x04, - EMBER_ZCL_BLOCK_BLOCK5 = 0x05, - EMBER_ZCL_BLOCK_BLOCK6 = 0x06, - EMBER_ZCL_BLOCK_BLOCK7 = 0x07, - EMBER_ZCL_BLOCK_BLOCK8 = 0x08, - EMBER_ZCL_BLOCK_BLOCK9 = 0x09, - EMBER_ZCL_BLOCK_BLOCK10 = 0x0A, - EMBER_ZCL_BLOCK_BLOCK11 = 0x0B, - EMBER_ZCL_BLOCK_BLOCK12 = 0x0C, - EMBER_ZCL_BLOCK_BLOCK13 = 0x0D, - EMBER_ZCL_BLOCK_BLOCK14 = 0x0E, - EMBER_ZCL_BLOCK_BLOCK15 = 0x0F, - EMBER_ZCL_BLOCK_BLOCK16 = 0x10, -} EmberAfBlock; - -typedef enum -{ - EMBER_ZCL_BLOCK_PERIOD_DURATION_TYPE_CONTROL_START_OF_TIMEBASE = 0x00, - EMBER_ZCL_BLOCK_PERIOD_DURATION_TYPE_CONTROL_END_OF_TIMEBASE = 0x10, - EMBER_ZCL_BLOCK_PERIOD_DURATION_TYPE_CONTROL_NOT_SPECIFIED = 0x20, -} EmberAfBlockPeriodDurationTypeControl; - -typedef enum -{ - EMBER_ZCL_BLOCK_PERIOD_DURATION_TYPE_TIMEBASE_MINUTES = 0x00, - EMBER_ZCL_BLOCK_PERIOD_DURATION_TYPE_TIMEBASE_DAYS = 0x01, - EMBER_ZCL_BLOCK_PERIOD_DURATION_TYPE_TIMEBASE_WEEKS = 0x02, - EMBER_ZCL_BLOCK_PERIOD_DURATION_TYPE_TIMEBASE_MONTHS = 0x03, -} EmberAfBlockPeriodDurationTypeTimebase; - -typedef enum -{ - EMBER_ZCL_C_O2_UNIT_KILOGRAM_PER_KILOWATT_HOUR = 0x01, - EMBER_ZCL_C_O2_UNIT_KILOGRAM_PER_GALLON_OF_GASOLINE = 0x02, - EMBER_ZCL_C_O2_UNIT_KILOGRAM_PER_THERM_OF_NATURAL_GAS = 0x03, -} EmberAfCO2Unit; - -typedef enum -{ - EMBER_ZCL_CALENDAR_TIME_REFERENCE_UTC_TIME = 0x00, - EMBER_ZCL_CALENDAR_TIME_REFERENCE_STANDARD_TIME = 0x01, - EMBER_ZCL_CALENDAR_TIME_REFERENCE_LOCAL_TIME = 0x02, -} EmberAfCalendarTimeReference; - -typedef enum -{ - EMBER_ZCL_CALENDAR_TYPE_DELIVERED_CALENDAR = 0x00, - EMBER_ZCL_CALENDAR_TYPE_RECEIVED_CALENDAR = 0x01, - EMBER_ZCL_CALENDAR_TYPE_DELIVERED_AND_RECEIVED_CALENDAR = 0x02, - EMBER_ZCL_CALENDAR_TYPE_FRIENDLY_CREDIT_CALENDAR = 0x03, - EMBER_ZCL_CALENDAR_TYPE_AUXILLIARY_LOAD_SWITCH_CALENDAR = 0x04, -} EmberAfCalendarType; - -typedef enum -{ - EMBER_ZCL_CALORIFIC_VALUE_UNIT_MEGAJOULE_PER_CUBIC_METER = 0x01, - EMBER_ZCL_CALORIFIC_VALUE_UNIT_MEGAJOULE_PER_KILOGRAM = 0x02, -} EmberAfCalorificValueUnit; - -typedef enum -{ - EMBER_ZCL_CECED_SPECIFICATION_VERSION_COMPLIANT_WITH_V10_NOT_CERTIFIED = 0x10, - EMBER_ZCL_CECED_SPECIFICATION_VERSION_COMPLIANT_WITH_V10_CERTIFIED = 0x1A, -} EmberAfCecedSpecificationVersion; - -typedef enum -{ - EMBER_ZCL_COLOR_CONTROL_OPTIONS_EXECUTE_IF_OFF = 0x01, -} EmberAfColorControlOptions; - -typedef enum -{ - EMBER_ZCL_COLOR_LOOP_ACTION_DEACTIVATE = 0x00, - EMBER_ZCL_COLOR_LOOP_ACTION_ACTIVATE_FROM_COLOR_LOOP_START_ENHANCED_HUE = 0x01, - EMBER_ZCL_COLOR_LOOP_ACTION_ACTIVATE_FROM_ENHANCED_CURRENT_HUE = 0x02, -} EmberAfColorLoopAction; - -typedef enum -{ - EMBER_ZCL_COLOR_LOOP_DIRECTION_DECREMENT_HUE = 0x00, - EMBER_ZCL_COLOR_LOOP_DIRECTION_INCREMENT_HUE = 0x01, -} EmberAfColorLoopDirection; - -typedef enum -{ - EMBER_ZCL_COLOR_MODE_CURRENT_HUE_AND_CURRENT_SATURATION = 0x00, - EMBER_ZCL_COLOR_MODE_CURRENT_X_AND_CURRENT_Y = 0x01, - EMBER_ZCL_COLOR_MODE_COLOR_TEMPERATURE = 0x02, -} EmberAfColorMode; - -typedef enum -{ - EMBER_ZCL_COMMAND_IDENTIFICATION_START = 0x01, - EMBER_ZCL_COMMAND_IDENTIFICATION_STOP = 0x02, - EMBER_ZCL_COMMAND_IDENTIFICATION_PAUSE = 0x03, - EMBER_ZCL_COMMAND_IDENTIFICATION_START_SUPERFREEZING = 0x04, - EMBER_ZCL_COMMAND_IDENTIFICATION_STOP_SUPERFREEZING = 0x05, - EMBER_ZCL_COMMAND_IDENTIFICATION_START_SUPERCOOLING = 0x06, - EMBER_ZCL_COMMAND_IDENTIFICATION_STOP_SUPERCOOLING = 0x07, - EMBER_ZCL_COMMAND_IDENTIFICATION_DISABLE_GAS = 0x08, - EMBER_ZCL_COMMAND_IDENTIFICATION_ENABLE_GAS = 0x09, - EMBER_ZCL_COMMAND_IDENTIFICATION_ENABLE_ENERGY_CONTROL = 0x0A, - EMBER_ZCL_COMMAND_IDENTIFICATION_DISABLE_ENERGY_CONTROL = 0x0B, -} EmberAfCommandIdentification; - -typedef enum -{ - EMBER_ZCL_COMMISSIONING_STARTUP_CONTROL_NO_ACTION = 0x00, - EMBER_ZCL_COMMISSIONING_STARTUP_CONTROL_FORM_NETWORK = 0x01, - EMBER_ZCL_COMMISSIONING_STARTUP_CONTROL_REJOIN_NETWORK = 0x02, - EMBER_ZCL_COMMISSIONING_STARTUP_CONTROL_START_FROM_SCRATCH = 0x03, -} EmberAfCommissioningStartupControl; - -typedef enum -{ - EMBER_ZCL_COMMODITY_TYPE_ELECTRIC_METERING = 0x00, - EMBER_ZCL_COMMODITY_TYPE_GAS_METERING = 0x01, - EMBER_ZCL_COMMODITY_TYPE_WATER_METERING = 0x02, - EMBER_ZCL_COMMODITY_TYPE_THERMAL_METERING = 0x03, - EMBER_ZCL_COMMODITY_TYPE_PRESSURE_METERING = 0x04, - EMBER_ZCL_COMMODITY_TYPE_HEAT_METERING = 0x05, - EMBER_ZCL_COMMODITY_TYPE_COOLING_METERING = 0x06, - EMBER_ZCL_COMMODITY_TYPE_ELECTRIC_VEHICLE_CHARGING_METERING = 0x07, - EMBER_ZCL_COMMODITY_TYPE_PV_GENERATION_METERING = 0x08, - EMBER_ZCL_COMMODITY_TYPE_WIND_TURBINE_GENERATION_METERING = 0x09, - EMBER_ZCL_COMMODITY_TYPE_WATER_TURBINE_GENERATION_METERING = 0x0A, - EMBER_ZCL_COMMODITY_TYPE_MICRO_GENERATION_METERING = 0x0B, - EMBER_ZCL_COMMODITY_TYPE_SOLAR_HOT_WATER_GENERATION_METERING = 0x0C, - EMBER_ZCL_COMMODITY_TYPE_ELECTRIC_METERING_ELEMENT1 = 0x0D, - EMBER_ZCL_COMMODITY_TYPE_ELECTRIC_METERING_ELEMENT2 = 0x0E, - EMBER_ZCL_COMMODITY_TYPE_ELECTRIC_METERING_ELEMENT3 = 0x0F, -} EmberAfCommodityType; - -typedef enum -{ - EMBER_ZCL_CPP_EVENT_RESPONSE_CPP_AUTH_ACCEPTED = 0x01, - EMBER_ZCL_CPP_EVENT_RESPONSE_CPP_AUTH_REJECTED = 0x02, -} EmberAfCppEventResponseCppAuth; - -typedef enum -{ - EMBER_ZCL_CPP_PRICE_TIER_CPP1 = 0x00, - EMBER_ZCL_CPP_PRICE_TIER_CPP2 = 0x01, -} EmberAfCppPriceTier; - -typedef enum -{ - EMBER_ZCL_CREDIT_ADJUSTMENT_TYPE_CREDIT_INCREMENTAL = 0x00, - EMBER_ZCL_CREDIT_ADJUSTMENT_TYPE_CREDIT_ABSOLUTE = 0x01, -} EmberAfCreditAdjustmentType; - -typedef enum -{ - EMBER_ZCL_CREDIT_PAYMENT_STATUS_PENDING = 0x00, - EMBER_ZCL_CREDIT_PAYMENT_STATUS_RECEIVED_PAID = 0x01, - EMBER_ZCL_CREDIT_PAYMENT_STATUS_OVERDUE = 0x02, - EMBER_ZCL_CREDIT_PAYMENT_STATUS_2_PAYMENTS_OVERDUE = 0x03, - EMBER_ZCL_CREDIT_PAYMENT_STATUS_3_PAYMENTS_OVERDUE = 0x04, -} EmberAfCreditPaymentStatus; - -typedef enum -{ - EMBER_ZCL_DATA_QUALITY_ID_ALL_DATA_CERTIFIED = 0x0000, - EMBER_ZCL_DATA_QUALITY_ID_ONLY_INSTANTANEOUS_POWER_NOT_CERTIFIED = 0x0001, - EMBER_ZCL_DATA_QUALITY_ID_ONLY_CUMULATED_CONSUMPTION_NOT_CERTIFIED = 0x0002, - EMBER_ZCL_DATA_QUALITY_ID_NOT_CERTIFIED_DATA = 0x0003, -} EmberAfDataQualityId; - -typedef enum -{ - EMBER_ZCL_DEBT_AMOUNT_TYPE_TYPE1_ABSOLUTE = 0x00, - EMBER_ZCL_DEBT_AMOUNT_TYPE_TYPE1_INCREMENTAL = 0x01, - EMBER_ZCL_DEBT_AMOUNT_TYPE_TYPE2_ABSOLUTE = 0x02, - EMBER_ZCL_DEBT_AMOUNT_TYPE_TYPE2_INCREMENTAL = 0x03, - EMBER_ZCL_DEBT_AMOUNT_TYPE_TYPE3_ABSOLUTE = 0x04, - EMBER_ZCL_DEBT_AMOUNT_TYPE_TYPE3_INCREMENTAL = 0x05, -} EmberAfDebtAmountType; - -typedef enum -{ - EMBER_ZCL_DEBT_RECOVERY_FREQUENCY_PER_HOUR = 0x00, - EMBER_ZCL_DEBT_RECOVERY_FREQUENCY_PER_DAY = 0x01, - EMBER_ZCL_DEBT_RECOVERY_FREQUENCY_PER_WEEK = 0x02, - EMBER_ZCL_DEBT_RECOVERY_FREQUENCY_PER_MONTH = 0x03, - EMBER_ZCL_DEBT_RECOVERY_FREQUENCY_PER_QUARTER = 0x04, -} EmberAfDebtRecoveryFrequency; - -typedef enum -{ - EMBER_ZCL_DEBT_RECOVERY_METHOD_TIME_BASED = 0x00, - EMBER_ZCL_DEBT_RECOVERY_METHOD_PERCENTAGE_BASED = 0x01, - EMBER_ZCL_DEBT_RECOVERY_METHOD_CATCH_UP_BASED = 0x02, -} EmberAfDebtRecoveryMethod; - -typedef enum -{ - EMBER_ZCL_DEHUMIDIFCATION_LOCKOUT_NOT_ALLOWED = 0x00, - EMBER_ZCL_DEHUMIDIFCATION_LOCKOUT_ALLOWED = 0x01, -} EmberAfDehumidifcationLockout; - -typedef enum -{ - EMBER_ZCL_DEVICE_INFORMATION_RECORD_SORT_NOT_SORTED = 0x00, - EMBER_ZCL_DEVICE_INFORMATION_RECORD_SORT_TOP_OF_THE_LIST = 0x01, -} EmberAfDeviceInformationRecordSort; - -typedef enum -{ - EMBER_ZCL_DEVICE_STATUS2_STRUCTURE_IRIS_SYMPTOM_CODE = 0x20, -} EmberAfDeviceStatus2Structure; - -typedef enum -{ - EMBER_ZCL_DOOR_LOCK_EVENT_SOURCE_KEYPAD = 0x00, - EMBER_ZCL_DOOR_LOCK_EVENT_SOURCE_RF = 0x01, - EMBER_ZCL_DOOR_LOCK_EVENT_SOURCE_MANUAL = 0x02, - EMBER_ZCL_DOOR_LOCK_EVENT_SOURCE_RFID = 0x03, - EMBER_ZCL_DOOR_LOCK_EVENT_SOURCE_INDETERMINATE = 0xFF, -} EmberAfDoorLightEventSource; - -typedef enum -{ - EMBER_ZCL_DOOR_LOCK_EVENT_TYPE_OPERATION = 0x00, - EMBER_ZCL_DOOR_LOCK_EVENT_TYPE_PROGRAMMING = 0x01, - EMBER_ZCL_DOOR_LOCK_EVENT_TYPE_ALARM = 0x02, -} EmberAfDoorLightEventType; - -typedef enum -{ - EMBER_ZCL_DOOR_LOCK_OPERATING_MODE_NORMAL_MODE = 0x00, - EMBER_ZCL_DOOR_LOCK_OPERATING_MODE_VACATION_MODE = 0x01, - EMBER_ZCL_DOOR_LOCK_OPERATING_MODE_PRIVACY_MODE = 0x02, - EMBER_ZCL_DOOR_LOCK_OPERATING_MODE_NO_RF_LOCK_OR_UNLOCK = 0x03, - EMBER_ZCL_DOOR_LOCK_OPERATING_MODE_LOCAL_PROGRAMMING_MODE = 0x04, - EMBER_ZCL_DOOR_LOCK_OPERATING_MODE_PASSAGE_MODE = 0x05, -} EmberAfDoorLockOperatingMode; - -typedef enum -{ - EMBER_ZCL_DOOR_LOCK_OPERATION_EVENT_CODE_UNKNOWN_OR_MFG_SPECIFIC = 0x00, - EMBER_ZCL_DOOR_LOCK_OPERATION_EVENT_CODE_LOCK = 0x01, - EMBER_ZCL_DOOR_LOCK_OPERATION_EVENT_CODE_UNLOCK = 0x02, - EMBER_ZCL_DOOR_LOCK_OPERATION_EVENT_CODE_LOCK_INVALID_PIN_OR_ID = 0x03, - EMBER_ZCL_DOOR_LOCK_OPERATION_EVENT_CODE_LOCK_INVALID_SCHEDULE = 0x04, - EMBER_ZCL_DOOR_LOCK_OPERATION_EVENT_CODE_UNLOCK_INVALID_PIN_OR_ID = 0x05, - EMBER_ZCL_DOOR_LOCK_OPERATION_EVENT_CODE_UNLOCK_INVALID_SCHEDULE = 0x06, - EMBER_ZCL_DOOR_LOCK_OPERATION_EVENT_CODE_ONE_TOUCH_LOCK = 0x07, - EMBER_ZCL_DOOR_LOCK_OPERATION_EVENT_CODE_KEY_LOCK = 0x08, - EMBER_ZCL_DOOR_LOCK_OPERATION_EVENT_CODE_KEY_UNLOCK = 0x09, - EMBER_ZCL_DOOR_LOCK_OPERATION_EVENT_CODE_AUTO_LOCK = 0x0A, - EMBER_ZCL_DOOR_LOCK_OPERATION_EVENT_CODE_SCHEDULE_LOCK = 0x0B, - EMBER_ZCL_DOOR_LOCK_OPERATION_EVENT_CODE_SCHEDULE_UNLOCK = 0x0C, - EMBER_ZCL_DOOR_LOCK_OPERATION_EVENT_CODE_MANUAL_LOCK = 0x0D, - EMBER_ZCL_DOOR_LOCK_OPERATION_EVENT_CODE_MANUAL_UNLOCK = 0x0E, -} EmberAfDoorLockOperationEventCode; - -typedef enum -{ - EMBER_ZCL_DOOR_LOCK_PROGRAMMING_EVENT_CODE_UNKNOWN_OR_MFG_SPECIFIC = 0x00, - EMBER_ZCL_DOOR_LOCK_PROGRAMMING_EVENT_CODE_MASTER_CODE_CHANGED = 0x01, - EMBER_ZCL_DOOR_LOCK_PROGRAMMING_EVENT_CODE_PIN_ADDED = 0x02, - EMBER_ZCL_DOOR_LOCK_PROGRAMMING_EVENT_CODE_PIN_DELETED = 0x03, - EMBER_ZCL_DOOR_LOCK_PROGRAMMING_EVENT_CODE_PIN_CHANGED = 0x04, - EMBER_ZCL_DOOR_LOCK_PROGRAMMING_EVENT_CODE_ID_ADDED = 0x05, - EMBER_ZCL_DOOR_LOCK_PROGRAMMING_EVENT_CODE_ID_DELETED = 0x06, -} EmberAfDoorLockProgrammingEventCode; - -typedef enum -{ - EMBER_ZCL_DOOR_LOCK_SECURITY_LEVEL_NETWORK_SECURITY = 0x00, - EMBER_ZCL_DOOR_LOCK_SECURITY_LEVEL_APS_SECURITY = 0x01, -} EmberAfDoorLockSecurityLevel; - -typedef enum -{ - EMBER_ZCL_DOOR_LOCK_SET_PIN_OR_ID_STATUS_SUCCESS = 0x00, - EMBER_ZCL_DOOR_LOCK_SET_PIN_OR_ID_STATUS_GENERAL_FAILURE = 0x01, - EMBER_ZCL_DOOR_LOCK_SET_PIN_OR_ID_STATUS_MEMORY_FULL = 0x02, - EMBER_ZCL_DOOR_LOCK_SET_PIN_OR_ID_STATUS_DUPLICATE_CODE_ERROR = 0x03, -} EmberAfDoorLockSetPinOrIdStatus; - -typedef enum -{ - EMBER_ZCL_DOOR_LOCK_SOUND_VOLUME_SILENT = 0x00, - EMBER_ZCL_DOOR_LOCK_SOUND_VOLUME_LOW = 0x01, - EMBER_ZCL_DOOR_LOCK_SOUND_VOLUME_HIGH = 0x02, -} EmberAfDoorLockSoundVolume; - -typedef enum -{ - EMBER_ZCL_DOOR_LOCK_STATE_NOT_FULLY_LOCKED = 0x00, - EMBER_ZCL_DOOR_LOCK_STATE_LOCKED = 0x01, - EMBER_ZCL_DOOR_LOCK_STATE_UNLOCKED = 0x02, -} EmberAfDoorLockState; - -typedef enum -{ - EMBER_ZCL_DOOR_LOCK_TYPE_DEAD_BOLT = 0x00, - EMBER_ZCL_DOOR_LOCK_TYPE_MAGNETIC = 0x01, - EMBER_ZCL_DOOR_LOCK_TYPE_MORTISE = 0x02, - EMBER_ZCL_DOOR_LOCK_TYPE_RIM = 0x03, - EMBER_ZCL_DOOR_LOCK_TYPE_LATCH_BOLT = 0x04, - EMBER_ZCL_DOOR_LOCK_TYPE_CYLINDRICAL = 0x05, - EMBER_ZCL_DOOR_LOCK_TYPE_TUBULAR = 0x06, - EMBER_ZCL_DOOR_LOCK_TYPE_INTERCONNECTED = 0x07, - EMBER_ZCL_DOOR_LOCK_TYPE_DEAD_LATCH = 0x08, - EMBER_ZCL_DOOR_LOCK_TYPE_OTHER = 0x09, -} EmberAfDoorLockType; - -typedef enum -{ - EMBER_ZCL_DOOR_LOCK_USER_STATUS_AVAILABLE = 0x00, - EMBER_ZCL_DOOR_LOCK_USER_STATUS_OCCUPIED_ENABLED = 0x01, - EMBER_ZCL_DOOR_LOCK_USER_STATUS_OCCUPIED_DISABLED = 0x03, - EMBER_ZCL_DOOR_LOCK_USER_STATUS_NOT_SUPPORTED = 0xFF, -} EmberAfDoorLockUserStatus; - -typedef enum -{ - EMBER_ZCL_DOOR_LOCK_USER_TYPE_UNRESTRICTED = 0x00, - EMBER_ZCL_DOOR_LOCK_USER_TYPE_ONE_TIME_USER = 0x01, - EMBER_ZCL_DOOR_LOCK_USER_TYPE_USER_WITH_SCHEDULE = 0x02, - EMBER_ZCL_DOOR_LOCK_USER_TYPE_MASTER_USER = 0x03, - EMBER_ZCL_DOOR_LOCK_USER_TYPE_NOT_SUPPORTED = 0xFF, -} EmberAfDoorLockUserType; - -typedef enum -{ - EMBER_ZCL_DOOR_STATE_OPEN = 0x00, - EMBER_ZCL_DOOR_STATE_CLOSED = 0x01, - EMBER_ZCL_DOOR_STATE_ERROR_JAMMED = 0x02, - EMBER_ZCL_DOOR_STATE_ERROR_FORCED_OPEN = 0x03, - EMBER_ZCL_DOOR_STATE_ERROR_UNSPECIFIED = 0x04, -} EmberAfDoorState; - -typedef enum -{ - EMBER_ZCL_ELECTRICITY_ALARM_GROUPS_LOW_VOLTAGE_L1 = 0x10, - EMBER_ZCL_ELECTRICITY_ALARM_GROUPS_HIGH_VOLTAGE_L1 = 0x11, - EMBER_ZCL_ELECTRICITY_ALARM_GROUPS_LOW_VOLTAGE_L2 = 0x12, - EMBER_ZCL_ELECTRICITY_ALARM_GROUPS_HIGH_VOLTAGE_L2 = 0x13, - EMBER_ZCL_ELECTRICITY_ALARM_GROUPS_LOW_VOLTAGE_L3 = 0x14, - EMBER_ZCL_ELECTRICITY_ALARM_GROUPS_HIGH_VOLTAGE_L3 = 0x15, - EMBER_ZCL_ELECTRICITY_ALARM_GROUPS_OVER_CURRENT_L1 = 0x16, - EMBER_ZCL_ELECTRICITY_ALARM_GROUPS_OVER_CURRENT_L2 = 0x17, - EMBER_ZCL_ELECTRICITY_ALARM_GROUPS_OVER_CURRENT_L3 = 0x18, - EMBER_ZCL_ELECTRICITY_ALARM_GROUPS_FREQUENCY_TOO_LOW_L1 = 0x19, - EMBER_ZCL_ELECTRICITY_ALARM_GROUPS_FREQUENCY_TOO_HIGH_L1 = 0x1A, - EMBER_ZCL_ELECTRICITY_ALARM_GROUPS_FREQUENCY_TOO_LOW_L2 = 0x1B, - EMBER_ZCL_ELECTRICITY_ALARM_GROUPS_FREQUENCY_TOO_HIGH_L2 = 0x1C, - EMBER_ZCL_ELECTRICITY_ALARM_GROUPS_FREQUENCY_TOO_LOW_L3 = 0x1D, - EMBER_ZCL_ELECTRICITY_ALARM_GROUPS_FREQUENCY_TOO_HIGH_L3 = 0x1E, - EMBER_ZCL_ELECTRICITY_ALARM_GROUPS_GROUND_FAULT = 0x1F, - EMBER_ZCL_ELECTRICITY_ALARM_GROUPS_ELECTRIC_TAMPER_DETECT = 0x20, - EMBER_ZCL_ELECTRICITY_ALARM_GROUPS_INCORRECT_POLARITY = 0x21, - EMBER_ZCL_ELECTRICITY_ALARM_GROUPS_CURRENT_NO_VOLTAGE = 0x22, - EMBER_ZCL_ELECTRICITY_ALARM_GROUPS_UNDER_VOLTAGE = 0x23, - EMBER_ZCL_ELECTRICITY_ALARM_GROUPS_OVER_VOLTAGE = 0x24, - EMBER_ZCL_ELECTRICITY_ALARM_GROUPS_NORMAL_VOLTAGE = 0x25, - EMBER_ZCL_ELECTRICITY_ALARM_GROUPS_P_F_BELOW_THRESHOLD = 0x26, - EMBER_ZCL_ELECTRICITY_ALARM_GROUPS_P_F_ABOVE_THRESHOLD = 0x27, - EMBER_ZCL_ELECTRICITY_ALARM_GROUPS_TERMINAL_COVER_REMOVED = 0x28, - EMBER_ZCL_ELECTRICITY_ALARM_GROUPS_TERMINAL_COVER_CLOSED = 0x29, -} EmberAfElectricityAlarmGroups; - -typedef enum -{ - EMBER_ZCL_ENHANCED_COLOR_MODE_CURRENT_HUE_AND_CURRENT_SATURATION = 0x00, - EMBER_ZCL_ENHANCED_COLOR_MODE_CURRENT_X_AND_CURRENT_Y = 0x01, - EMBER_ZCL_ENHANCED_COLOR_MODE_COLOR_TEMPERATURE = 0x02, - EMBER_ZCL_ENHANCED_COLOR_MODE_ENHANCED_CURRENT_HUE_AND_CURRENT_SATURATION = 0x03, -} EmberAfEnhancedColorMode; - -typedef enum -{ - EMBER_ZCL_EVENT_CONFIGURATION_CONTROL_APPLY_BY_LIST = 0x00, - EMBER_ZCL_EVENT_CONFIGURATION_CONTROL_APPLY_BY_EVENT_GROUP = 0x01, - EMBER_ZCL_EVENT_CONFIGURATION_CONTROL_APPLY_BY_LOG_TYPE = 0x02, - EMBER_ZCL_EVENT_CONFIGURATION_CONTROL_APPLY_BY_CONFIGURATION_MATCH = 0x03, -} EmberAfEventConfigurationControl; - -typedef enum -{ - EMBER_ZCL_EVENT_CONFIGURATION_LOG_ACTION_DO_NOT_LOG = 0x00, - EMBER_ZCL_EVENT_CONFIGURATION_LOG_ACTION_LOG_AS_TAMPER = 0x01, - EMBER_ZCL_EVENT_CONFIGURATION_LOG_ACTION_LOG_AS_FAULT = 0x02, - EMBER_ZCL_EVENT_CONFIGURATION_LOG_ACTION_LOG_AS_GENERAL_EVENT = 0x03, - EMBER_ZCL_EVENT_CONFIGURATION_LOG_ACTION_LOG_AS_SECURITY_EVENT = 0x04, - EMBER_ZCL_EVENT_CONFIGURATION_LOG_ACTION_LOG_AS_NETWORK_EVENT = 0x05, -} EmberAfEventConfigurationLogAction; - -typedef enum -{ - EMBER_ZCL_EVENT_CONTROL_RETRIEVE_MINIMAL_INFORMATION = 0x00, - EMBER_ZCL_EVENT_CONTROL_RETRIEVE_FULL_INFORMATION = 0x10, -} EmberAfEventControl; - -typedef enum -{ - EMBER_ZCL_EVENT_ID_METER_COVER_REMOVED = 0x00, - EMBER_ZCL_EVENT_ID_METER_COVER_CLOSED = 0x01, - EMBER_ZCL_EVENT_ID_STRONG_MAGNETIC_FIELD = 0x02, - EMBER_ZCL_EVENT_ID_NO_STRONG_MAGNETIC_FIELD = 0x03, - EMBER_ZCL_EVENT_ID_BATTERY_FAILURE = 0x04, - EMBER_ZCL_EVENT_ID_LOW_BATTERY = 0x05, - EMBER_ZCL_EVENT_ID_PROGRAM_MEMORY_ERROR = 0x06, - EMBER_ZCL_EVENT_ID_RAM_ERROR = 0x07, - EMBER_ZCL_EVENT_ID_NV_MEMORY_ERROR = 0x08, - EMBER_ZCL_EVENT_ID_MEASUREMENT_SYSTEM_ERROR = 0x09, - EMBER_ZCL_EVENT_ID_WATCHDOG_ERROR = 0x0A, - EMBER_ZCL_EVENT_ID_SUPPLY_DISCONNECT_FAILURE = 0x0B, - EMBER_ZCL_EVENT_ID_SUPPLY_CONNECT_FAILURE = 0x0C, - EMBER_ZCL_EVENT_ID_MEASURMENT_SOFTWARE_CHANGED = 0x0D, - EMBER_ZCL_EVENT_ID_DST_ENABLED = 0x0E, - EMBER_ZCL_EVENT_ID_DST_DISABLED = 0x0F, - EMBER_ZCL_EVENT_ID_CLOCK_ADJ_BACKWARD = 0x10, - EMBER_ZCL_EVENT_ID_CLOCK_ADJ_FORWARD = 0x11, - EMBER_ZCL_EVENT_ID_CLOCK_INVALID = 0x12, - EMBER_ZCL_EVENT_ID_COMMS_ERROR_HAN = 0x13, - EMBER_ZCL_EVENT_ID_COMMS_OK_HAN = 0x14, - EMBER_ZCL_EVENT_ID_FRAUD_ATTEMPT = 0x15, - EMBER_ZCL_EVENT_ID_POWER_LOSS = 0x16, - EMBER_ZCL_EVENT_ID_INCORRECT_PROTOCOL = 0x17, - EMBER_ZCL_EVENT_ID_UNUSUAL_HAN_TRAFFIC = 0x18, - EMBER_ZCL_EVENT_ID_UNEXPECTED_CLOCK_CHANGE = 0x19, - EMBER_ZCL_EVENT_ID_COMMS_USING_UNAUTHENTICATED_COMPONENT = 0x1A, - EMBER_ZCL_EVENT_ID_ERROR_REG_CLEAR = 0x1B, - EMBER_ZCL_EVENT_ID_ALARM_REG_CLEAR = 0x1C, - EMBER_ZCL_EVENT_ID_UNEXPECTED_HW_RESET = 0x1D, - EMBER_ZCL_EVENT_ID_UNEXPECTED_PROGRAM_EXECUTION = 0x1E, - EMBER_ZCL_EVENT_ID_EVENT_LOG_CLEARED = 0x1F, - EMBER_ZCL_EVENT_ID_MANUAL_DISCONNECT = 0x20, - EMBER_ZCL_EVENT_ID_MANUAL_CONNECT = 0x21, - EMBER_ZCL_EVENT_ID_REMOTE_DISCONNECTION = 0x22, - EMBER_ZCL_EVENT_ID_LOCAL_DISCONNECTION = 0x23, - EMBER_ZCL_EVENT_ID_LIMIT_THRESHOLD_EXCEEDED = 0x24, - EMBER_ZCL_EVENT_ID_LIMIT_THRESHOLD_OK = 0x25, - EMBER_ZCL_EVENT_ID_LIMIT_THRESHOLD_CHANGED = 0x26, - EMBER_ZCL_EVENT_ID_MAXIMUM_DEMAND_EXCEEDED = 0x27, - EMBER_ZCL_EVENT_ID_PROFILE_CLEARED = 0x28, - EMBER_ZCL_EVENT_ID_FIRMWARE_READY_FOR_ACTIVATION = 0x29, - EMBER_ZCL_EVENT_ID_FIRMWARE_ACTIVATED = 0x2A, - EMBER_ZCL_EVENT_ID_PATCH_FAILURE = 0x2B, - EMBER_ZCL_EVENT_ID_TOU_TARIFF_ACTIVATION = 0x2C, - EMBER_ZCL_EVENT_ID_8X8_TARIFFACTIVATED = 0x2D, - EMBER_ZCL_EVENT_ID_SINGLE_TARIFF_RATE_ACTIVATED = 0x2E, - EMBER_ZCL_EVENT_ID_ASYNCHRONOUS_BILLING_OCCURRED = 0x2F, - EMBER_ZCL_EVENT_ID_SYNCHRONOUS_BILLING_OCCURRED = 0x30, - EMBER_ZCL_EVENT_ID_INCORRECT_POLARITY = 0x80, - EMBER_ZCL_EVENT_ID_CURRENT_NO_VOLTAGE = 0x81, - EMBER_ZCL_EVENT_ID_UNDER_VOLTAGE = 0x82, - EMBER_ZCL_EVENT_ID_OVER_VOLTAGE = 0x83, - EMBER_ZCL_EVENT_ID_NORMAL_VOLTAGE = 0x84, - EMBER_ZCL_EVENT_ID_PF_BELOW_THRESHOLD = 0x85, - EMBER_ZCL_EVENT_ID_PF_ABOVE_THRESHOLD = 0x86, - EMBER_ZCL_EVENT_ID_TERMINAL_COVER_REMOVED = 0x87, - EMBER_ZCL_EVENT_ID_TERMINAL_COVER_CLOSED = 0x88, - EMBER_ZCL_EVENT_ID_REVERSE_FLOW = 0xA0, - EMBER_ZCL_EVENT_ID_TILT_TAMPER = 0xA1, - EMBER_ZCL_EVENT_ID_BATTERY_COVER_REMOVED = 0xA2, - EMBER_ZCL_EVENT_ID_BATTERY_COVER_CLOSED = 0xA3, - EMBER_ZCL_EVENT_ID_EXCESS_FLOW = 0xA4, - EMBER_ZCL_EVENT_ID_EMERGENCY_CREDIT_IN_USE = 0xC0, - EMBER_ZCL_EVENT_ID_EMERGENCY_CREDIT_EXHAUSTED = 0xC1, - EMBER_ZCL_EVENT_ID_ZERO_CREDIT_EC_NOT_SELECTED = 0xC2, - EMBER_ZCL_EVENT_ID_SUPPLY_ON = 0xC3, - EMBER_ZCL_EVENT_ID_SUPPLY_OFF_AARMED = 0xC4, - EMBER_ZCL_EVENT_ID_SUPPLY_OFF = 0xC5, - EMBER_ZCL_EVENT_ID_DISCOUNT_APPLIED = 0xC6, - EMBER_ZCL_EVENT_ID_MANUFACTURER_SPECIFIC_A = 0xE0, - EMBER_ZCL_EVENT_ID_MANUFACTURER_SPECIFIC_B = 0xE1, - EMBER_ZCL_EVENT_ID_MANUFACTURER_SPECIFIC_C = 0xE2, - EMBER_ZCL_EVENT_ID_MANUFACTURER_SPECIFIC_D = 0xE3, - EMBER_ZCL_EVENT_ID_MANUFACTURER_SPECIFIC_E = 0xE4, - EMBER_ZCL_EVENT_ID_MANUFACTURER_SPECIFIC_F = 0xE5, - EMBER_ZCL_EVENT_ID_MANUFACTURER_SPECIFIC_G = 0xE6, - EMBER_ZCL_EVENT_ID_MANUFACTURER_SPECIFIC_H = 0xE7, - EMBER_ZCL_EVENT_ID_MANUFACTURER_SPECIFIC_I = 0xE8, -} EmberAfEventId; - -typedef enum -{ - EMBER_ZCL_EVENT_IDENTIFICATION_END_OF_CYCLE = 0x01, - EMBER_ZCL_EVENT_IDENTIFICATION_TEMPERATURE_REACHED = 0x04, - EMBER_ZCL_EVENT_IDENTIFICATION_END_OF_COOKING = 0x05, - EMBER_ZCL_EVENT_IDENTIFICATION_SWITCHING_OFF = 0x06, - EMBER_ZCL_EVENT_IDENTIFICATION_WRONG_DATA = 0x07, -} EmberAfEventIdentification; - -typedef enum -{ - EMBER_ZCL_EVENT_LOG_ID_ALL_LOGS = 0x00, - EMBER_ZCL_EVENT_LOG_ID_TAMPER_LOG = 0x01, - EMBER_ZCL_EVENT_LOG_ID_FAULT_LOG = 0x02, - EMBER_ZCL_EVENT_LOG_ID_GENERAL_EVENT_LOG = 0x03, - EMBER_ZCL_EVENT_LOG_ID_SECURITY_EVENT_LOG = 0x04, - EMBER_ZCL_EVENT_LOG_ID_NETWORK_EVENT_LOG = 0x05, - EMBER_ZCL_EVENT_LOG_ID_GBCS_GENERAL_EVENT_LOG = 0x06, - EMBER_ZCL_EVENT_LOG_ID_GBCS_SECURITY_EVENT_LOG = 0x07, -} EmberAfEventLogId; - -typedef enum -{ - EMBER_ZCL_EVENT_LOG_PAYLOAD_CONTROL_EVENTS_DO_NOT_CROSS_FRAME_BOUNDARY = 0x00, - EMBER_ZCL_EVENT_LOG_PAYLOAD_CONTROL_EVENT_CROSSES_FRAME_BOUNDARY = 0x01, -} EmberAfEventLogPayloadControl; - -typedef enum -{ - EMBER_ZCL_EXTENDED_GENERIC_ALARM_GROUPS_MEASUREMENT_SYSTEM_ERROR = 0x70, - EMBER_ZCL_EXTENDED_GENERIC_ALARM_GROUPS_WATCHDOG_ERROR = 0x71, - EMBER_ZCL_EXTENDED_GENERIC_ALARM_GROUPS_SUPPLY_DISCONNECT_FAILURE = 0x72, - EMBER_ZCL_EXTENDED_GENERIC_ALARM_GROUPS_SUPPLY_CONNECT_FAILURE = 0x73, - EMBER_ZCL_EXTENDED_GENERIC_ALARM_GROUPS_MEASURMENT_SOFTWARE_CHANGED = 0x74, - EMBER_ZCL_EXTENDED_GENERIC_ALARM_GROUPS_DST_ENABLED = 0x75, - EMBER_ZCL_EXTENDED_GENERIC_ALARM_GROUPS_DST_DISABLED = 0x76, - EMBER_ZCL_EXTENDED_GENERIC_ALARM_GROUPS_CLOCK_ADJ_BACKWARD = 0x77, - EMBER_ZCL_EXTENDED_GENERIC_ALARM_GROUPS_CLOCK_ADJ_FORWARD = 0x78, - EMBER_ZCL_EXTENDED_GENERIC_ALARM_GROUPS_CLOCK_INVALID = 0x79, - EMBER_ZCL_EXTENDED_GENERIC_ALARM_GROUPS_COMMUNICATION_ERROR_HAN = 0x7A, - EMBER_ZCL_EXTENDED_GENERIC_ALARM_GROUPS_COMMUNICATION_OK_H_AN = 0x7B, - EMBER_ZCL_EXTENDED_GENERIC_ALARM_GROUPS_METER_FRAUD_ATTEMPT = 0x7C, - EMBER_ZCL_EXTENDED_GENERIC_ALARM_GROUPS_POWER_LOSS = 0x7D, - EMBER_ZCL_EXTENDED_GENERIC_ALARM_GROUPS_UNUSUAL_HAN_TRAFFIC = 0x7E, - EMBER_ZCL_EXTENDED_GENERIC_ALARM_GROUPS_UNEXPECTED_CLOCK_CHANGE = 0x7F, - EMBER_ZCL_EXTENDED_GENERIC_ALARM_GROUPS_COMMS_USING_UNAUTHENTICATED_COMPONENT = 0x80, - EMBER_ZCL_EXTENDED_GENERIC_ALARM_GROUPS_ERROR_REG_CLEAR = 0x81, - EMBER_ZCL_EXTENDED_GENERIC_ALARM_GROUPS_ALARM_REG_CLEAR = 0x82, - EMBER_ZCL_EXTENDED_GENERIC_ALARM_GROUPS_UNEXPECTED_HW_RESET = 0x83, - EMBER_ZCL_EXTENDED_GENERIC_ALARM_GROUPS_UNEXPECTED_PROGRAM_EXECUTION = 0x84, - EMBER_ZCL_EXTENDED_GENERIC_ALARM_GROUPS_EVENT_LOG_CLEARED = 0x85, - EMBER_ZCL_EXTENDED_GENERIC_ALARM_GROUPS_LIMIT_THRESHOLD_EXCEEDED = 0x86, - EMBER_ZCL_EXTENDED_GENERIC_ALARM_GROUPS_LIMIT_THRESHOLD_OK = 0x87, - EMBER_ZCL_EXTENDED_GENERIC_ALARM_GROUPS_LIMIT_THRESHOLD_CHANGED = 0x88, - EMBER_ZCL_EXTENDED_GENERIC_ALARM_GROUPS_MAXIMUM_DEMAND_EXCEEDED = 0x89, - EMBER_ZCL_EXTENDED_GENERIC_ALARM_GROUPS_PROFILE_CLEARED = 0x8A, - EMBER_ZCL_EXTENDED_GENERIC_ALARM_GROUPS_SAMPLING_BUFFERCLEARED = 0x8B, - EMBER_ZCL_EXTENDED_GENERIC_ALARM_GROUPS_BATTERY_WARNING = 0x8C, - EMBER_ZCL_EXTENDED_GENERIC_ALARM_GROUPS_WRONG_SIGNATURE = 0x8D, - EMBER_ZCL_EXTENDED_GENERIC_ALARM_GROUPS_NO_SIGNATURE = 0x8E, - EMBER_ZCL_EXTENDED_GENERIC_ALARM_GROUPS_UNAUTHORISED_ACTIONFROM_HAN = 0x8F, - EMBER_ZCL_EXTENDED_GENERIC_ALARM_GROUPS_FAST_POLLING_START = 0x90, - EMBER_ZCL_EXTENDED_GENERIC_ALARM_GROUPS_FAST_POLLING_END = 0x91, - EMBER_ZCL_EXTENDED_GENERIC_ALARM_GROUPS_METER_REPORTING_INTERVAL_CHANGED = 0x92, - EMBER_ZCL_EXTENDED_GENERIC_ALARM_GROUPS_DISCONNECT_DUETO_LOAD_LIMIT = 0x93, - EMBER_ZCL_EXTENDED_GENERIC_ALARM_GROUPS_METER_SUPPLY_STATUS_REGISTER_CHANGED = 0x94, - EMBER_ZCL_EXTENDED_GENERIC_ALARM_GROUPS_METER_ALARM_STATUS_REGISTER_CHANGED = 0x95, - EMBER_ZCL_EXTENDED_GENERIC_ALARM_GROUPS_EXTENDED_METER_ALARM_STATUS_REGISTER_CHANGED = 0x96, -} EmberAfExtendedGenericAlarmGroups; - -typedef enum -{ - EMBER_ZCL_EXTENDED_NUMBER_OF_PRICE_TIERS_REFER_TO_NUMBER_OF_PRICE_TIERS_FIELD = 0x00, - EMBER_ZCL_EXTENDED_NUMBER_OF_PRICE_TIERS_NUMBER_OF_PRICE_TIERS16 = 0x01, - EMBER_ZCL_EXTENDED_NUMBER_OF_PRICE_TIERS_NUMBER_OF_PRICE_TIERS17 = 0x02, - EMBER_ZCL_EXTENDED_NUMBER_OF_PRICE_TIERS_NUMBER_OF_PRICE_TIERS18 = 0x03, - EMBER_ZCL_EXTENDED_NUMBER_OF_PRICE_TIERS_NUMBER_OF_PRICE_TIERS19 = 0x04, - EMBER_ZCL_EXTENDED_NUMBER_OF_PRICE_TIERS_NUMBER_OF_PRICE_TIERS20 = 0x05, - EMBER_ZCL_EXTENDED_NUMBER_OF_PRICE_TIERS_NUMBER_OF_PRICE_TIERS21 = 0x06, - EMBER_ZCL_EXTENDED_NUMBER_OF_PRICE_TIERS_NUMBER_OF_PRICE_TIERS22 = 0x07, - EMBER_ZCL_EXTENDED_NUMBER_OF_PRICE_TIERS_NUMBER_OF_PRICE_TIERS23 = 0x08, - EMBER_ZCL_EXTENDED_NUMBER_OF_PRICE_TIERS_NUMBER_OF_PRICE_TIERS24 = 0x09, - EMBER_ZCL_EXTENDED_NUMBER_OF_PRICE_TIERS_NUMBER_OF_PRICE_TIERS25 = 0x0A, - EMBER_ZCL_EXTENDED_NUMBER_OF_PRICE_TIERS_NUMBER_OF_PRICE_TIERS26 = 0x0B, - EMBER_ZCL_EXTENDED_NUMBER_OF_PRICE_TIERS_NUMBER_OF_PRICE_TIERS27 = 0x0C, - EMBER_ZCL_EXTENDED_NUMBER_OF_PRICE_TIERS_NUMBER_OF_PRICE_TIERS28 = 0x0D, - EMBER_ZCL_EXTENDED_NUMBER_OF_PRICE_TIERS_NUMBER_OF_PRICE_TIERS29 = 0x0E, - EMBER_ZCL_EXTENDED_NUMBER_OF_PRICE_TIERS_NUMBER_OF_PRICE_TIERS30 = 0x0F, - EMBER_ZCL_EXTENDED_NUMBER_OF_PRICE_TIERS_NUMBER_OF_PRICE_TIERS31 = 0x10, - EMBER_ZCL_EXTENDED_NUMBER_OF_PRICE_TIERS_NUMBER_OF_PRICE_TIERS32 = 0x11, - EMBER_ZCL_EXTENDED_NUMBER_OF_PRICE_TIERS_NUMBER_OF_PRICE_TIERS33 = 0x12, - EMBER_ZCL_EXTENDED_NUMBER_OF_PRICE_TIERS_NUMBER_OF_PRICE_TIERS34 = 0x13, - EMBER_ZCL_EXTENDED_NUMBER_OF_PRICE_TIERS_NUMBER_OF_PRICE_TIERS35 = 0x14, - EMBER_ZCL_EXTENDED_NUMBER_OF_PRICE_TIERS_NUMBER_OF_PRICE_TIERS36 = 0x15, - EMBER_ZCL_EXTENDED_NUMBER_OF_PRICE_TIERS_NUMBER_OF_PRICE_TIERS37 = 0x16, - EMBER_ZCL_EXTENDED_NUMBER_OF_PRICE_TIERS_NUMBER_OF_PRICE_TIERS38 = 0x17, - EMBER_ZCL_EXTENDED_NUMBER_OF_PRICE_TIERS_NUMBER_OF_PRICE_TIERS39 = 0x18, - EMBER_ZCL_EXTENDED_NUMBER_OF_PRICE_TIERS_NUMBER_OF_PRICE_TIERS40 = 0x19, - EMBER_ZCL_EXTENDED_NUMBER_OF_PRICE_TIERS_NUMBER_OF_PRICE_TIERS41 = 0x1A, - EMBER_ZCL_EXTENDED_NUMBER_OF_PRICE_TIERS_NUMBER_OF_PRICE_TIERS42 = 0x1B, - EMBER_ZCL_EXTENDED_NUMBER_OF_PRICE_TIERS_NUMBER_OF_PRICE_TIERS43 = 0x1C, - EMBER_ZCL_EXTENDED_NUMBER_OF_PRICE_TIERS_NUMBER_OF_PRICE_TIERS44 = 0x1D, - EMBER_ZCL_EXTENDED_NUMBER_OF_PRICE_TIERS_NUMBER_OF_PRICE_TIERS45 = 0x1E, - EMBER_ZCL_EXTENDED_NUMBER_OF_PRICE_TIERS_NUMBER_OF_PRICE_TIERS46 = 0x1F, - EMBER_ZCL_EXTENDED_NUMBER_OF_PRICE_TIERS_NUMBER_OF_PRICE_TIERS47 = 0x20, - EMBER_ZCL_EXTENDED_NUMBER_OF_PRICE_TIERS_NUMBER_OF_PRICE_TIERS48 = 0x21, -} EmberAfExtendedNumberOfPriceTiers; - -typedef enum -{ - EMBER_ZCL_EXTENDED_PRICE_TIER_REFER_TO_PRICE_TIER_FIELD = 0x00, - EMBER_ZCL_EXTENDED_PRICE_TIER_TIER16_PRICE_LABEL = 0x01, - EMBER_ZCL_EXTENDED_PRICE_TIER_TIER17_PRICE_LABEL = 0x02, - EMBER_ZCL_EXTENDED_PRICE_TIER_TIER18_PRICE_LABEL = 0x03, - EMBER_ZCL_EXTENDED_PRICE_TIER_TIER19_PRICE_LABEL = 0x04, - EMBER_ZCL_EXTENDED_PRICE_TIER_TIER20_PRICE_LABEL = 0x05, - EMBER_ZCL_EXTENDED_PRICE_TIER_TIER21_PRICE_LABEL = 0x06, - EMBER_ZCL_EXTENDED_PRICE_TIER_TIER22_PRICE_LABEL = 0x07, - EMBER_ZCL_EXTENDED_PRICE_TIER_TIER23_PRICE_LABEL = 0x08, - EMBER_ZCL_EXTENDED_PRICE_TIER_TIER24_PRICE_LABEL = 0x09, - EMBER_ZCL_EXTENDED_PRICE_TIER_TIER25_PRICE_LABEL = 0x0A, - EMBER_ZCL_EXTENDED_PRICE_TIER_TIER26_PRICE_LABEL = 0x0B, - EMBER_ZCL_EXTENDED_PRICE_TIER_TIER27_PRICE_LABEL = 0x0C, - EMBER_ZCL_EXTENDED_PRICE_TIER_TIER28_PRICE_LABEL = 0x0D, - EMBER_ZCL_EXTENDED_PRICE_TIER_TIER29_PRICE_LABEL = 0x0E, - EMBER_ZCL_EXTENDED_PRICE_TIER_TIER30_PRICE_LABEL = 0x0F, - EMBER_ZCL_EXTENDED_PRICE_TIER_TIER31_PRICE_LABEL = 0x10, - EMBER_ZCL_EXTENDED_PRICE_TIER_TIER32_PRICE_LABEL = 0x11, - EMBER_ZCL_EXTENDED_PRICE_TIER_TIER33_PRICE_LABEL = 0x12, - EMBER_ZCL_EXTENDED_PRICE_TIER_TIER34_PRICE_LABEL = 0x13, - EMBER_ZCL_EXTENDED_PRICE_TIER_TIER35_PRICE_LABEL = 0x14, - EMBER_ZCL_EXTENDED_PRICE_TIER_TIER36_PRICE_LABEL = 0x15, - EMBER_ZCL_EXTENDED_PRICE_TIER_TIER37_PRICE_LABEL = 0x16, - EMBER_ZCL_EXTENDED_PRICE_TIER_TIER38_PRICE_LABEL = 0x17, - EMBER_ZCL_EXTENDED_PRICE_TIER_TIER39_PRICE_LABEL = 0x18, - EMBER_ZCL_EXTENDED_PRICE_TIER_TIER40_PRICE_LABEL = 0x19, - EMBER_ZCL_EXTENDED_PRICE_TIER_TIER41_PRICE_LABEL = 0x1A, - EMBER_ZCL_EXTENDED_PRICE_TIER_TIER42_PRICE_LABEL = 0x1B, - EMBER_ZCL_EXTENDED_PRICE_TIER_TIER43_PRICE_LABEL = 0x1C, - EMBER_ZCL_EXTENDED_PRICE_TIER_TIER44_PRICE_LABEL = 0x1D, - EMBER_ZCL_EXTENDED_PRICE_TIER_TIER45_PRICE_LABEL = 0x1E, - EMBER_ZCL_EXTENDED_PRICE_TIER_TIER46_PRICE_LABEL = 0x1F, - EMBER_ZCL_EXTENDED_PRICE_TIER_TIER47_PRICE_LABEL = 0x20, - EMBER_ZCL_EXTENDED_PRICE_TIER_TIER48_PRICE_LABEL = 0x21, -} EmberAfExtendedPriceTier; - -typedef enum -{ - EMBER_ZCL_EXTENDED_REGISTER_TIER_REFER_TO_REGISTER_TIER_FIELD = 0x00, - EMBER_ZCL_EXTENDED_REGISTER_TIER_CURRENT_TIER16_SUMMATION_DELIVERED_ATTRIBUTE = 0x01, - EMBER_ZCL_EXTENDED_REGISTER_TIER_CURRENT_TIER17_SUMMATION_DELIVERED_ATTRIBUTE = 0x02, - EMBER_ZCL_EXTENDED_REGISTER_TIER_CURRENT_TIER18_SUMMATION_DELIVERED_ATTRIBUTE = 0x03, - EMBER_ZCL_EXTENDED_REGISTER_TIER_CURRENT_TIER19_SUMMATION_DELIVERED_ATTRIBUTE = 0x04, - EMBER_ZCL_EXTENDED_REGISTER_TIER_CURRENT_TIER20_SUMMATION_DELIVERED_ATTRIBUTE = 0x05, - EMBER_ZCL_EXTENDED_REGISTER_TIER_CURRENT_TIER21_SUMMATION_DELIVERED_ATTRIBUTE = 0x06, - EMBER_ZCL_EXTENDED_REGISTER_TIER_CURRENT_TIER22_SUMMATION_DELIVERED_ATTRIBUTE = 0x07, - EMBER_ZCL_EXTENDED_REGISTER_TIER_CURRENT_TIER23_SUMMATION_DELIVERED_ATTRIBUTE = 0x08, - EMBER_ZCL_EXTENDED_REGISTER_TIER_CURRENT_TIER24_SUMMATION_DELIVERED_ATTRIBUTE = 0x09, - EMBER_ZCL_EXTENDED_REGISTER_TIER_CURRENT_TIER25_SUMMATION_DELIVERED_ATTRIBUTE = 0x0A, - EMBER_ZCL_EXTENDED_REGISTER_TIER_CURRENT_TIER26_SUMMATION_DELIVERED_ATTRIBUTE = 0x0B, - EMBER_ZCL_EXTENDED_REGISTER_TIER_CURRENT_TIER27_SUMMATION_DELIVERED_ATTRIBUTE = 0x0C, - EMBER_ZCL_EXTENDED_REGISTER_TIER_CURRENT_TIER28_SUMMATION_DELIVERED_ATTRIBUTE = 0x0D, - EMBER_ZCL_EXTENDED_REGISTER_TIER_CURRENT_TIER29_SUMMATION_DELIVERED_ATTRIBUTE = 0x0E, - EMBER_ZCL_EXTENDED_REGISTER_TIER_CURRENT_TIER30_SUMMATION_DELIVERED_ATTRIBUTE = 0x0F, - EMBER_ZCL_EXTENDED_REGISTER_TIER_CURRENT_TIER31_SUMMATION_DELIVERED_ATTRIBUTE = 0x10, - EMBER_ZCL_EXTENDED_REGISTER_TIER_CURRENT_TIER32_SUMMATION_DELIVERED_ATTRIBUTE = 0x11, - EMBER_ZCL_EXTENDED_REGISTER_TIER_CURRENT_TIER33_SUMMATION_DELIVERED_ATTRIBUTE = 0x12, - EMBER_ZCL_EXTENDED_REGISTER_TIER_CURRENT_TIER34_SUMMATION_DELIVERED_ATTRIBUTE = 0x13, - EMBER_ZCL_EXTENDED_REGISTER_TIER_CURRENT_TIER35_SUMMATION_DELIVERED_ATTRIBUTE = 0x14, - EMBER_ZCL_EXTENDED_REGISTER_TIER_CURRENT_TIER36_SUMMATION_DELIVERED_ATTRIBUTE = 0x15, - EMBER_ZCL_EXTENDED_REGISTER_TIER_CURRENT_TIER37_SUMMATION_DELIVERED_ATTRIBUTE = 0x16, - EMBER_ZCL_EXTENDED_REGISTER_TIER_CURRENT_TIER38_SUMMATION_DELIVERED_ATTRIBUTE = 0x17, - EMBER_ZCL_EXTENDED_REGISTER_TIER_CURRENT_TIER39_SUMMATION_DELIVERED_ATTRIBUTE = 0x18, - EMBER_ZCL_EXTENDED_REGISTER_TIER_CURRENT_TIER40_SUMMATION_DELIVERED_ATTRIBUTE = 0x19, - EMBER_ZCL_EXTENDED_REGISTER_TIER_CURRENT_TIER41_SUMMATION_DELIVERED_ATTRIBUTE = 0x1A, - EMBER_ZCL_EXTENDED_REGISTER_TIER_CURRENT_TIER42_SUMMATION_DELIVERED_ATTRIBUTE = 0x1B, - EMBER_ZCL_EXTENDED_REGISTER_TIER_CURRENT_TIER43_SUMMATION_DELIVERED_ATTRIBUTE = 0x1C, - EMBER_ZCL_EXTENDED_REGISTER_TIER_CURRENT_TIER44_SUMMATION_DELIVERED_ATTRIBUTE = 0x1D, - EMBER_ZCL_EXTENDED_REGISTER_TIER_CURRENT_TIER45_SUMMATION_DELIVERED_ATTRIBUTE = 0x1E, - EMBER_ZCL_EXTENDED_REGISTER_TIER_CURRENT_TIER46_SUMMATION_DELIVERED_ATTRIBUTE = 0x1F, - EMBER_ZCL_EXTENDED_REGISTER_TIER_CURRENT_TIER47_SUMMATION_DELIVERED_ATTRIBUTE = 0x20, - EMBER_ZCL_EXTENDED_REGISTER_TIER_CURRENT_TIER48_SUMMATION_DELIVERED_ATTRIBUTE = 0x21, -} EmberAfExtendedRegisterTier; - -typedef enum -{ - EMBER_ZCL_EZ_MODE_COMMISSIONING_CLUSTER_TYPE_SERVER = 0x00, - EMBER_ZCL_EZ_MODE_COMMISSIONING_CLUSTER_TYPE_CLIENT = 0x01, -} EmberAfEzModeCommissioningClusterType; - -typedef enum -{ - EMBER_ZCL_FAN_MODE_OFF = 0x00, - EMBER_ZCL_FAN_MODE_LOW = 0x01, - EMBER_ZCL_FAN_MODE_MEDIUM = 0x02, - EMBER_ZCL_FAN_MODE_HIGH = 0x03, - EMBER_ZCL_FAN_MODE_ON = 0x04, - EMBER_ZCL_FAN_MODE_AUTO = 0x05, - EMBER_ZCL_FAN_MODE_SMART = 0x06, -} EmberAfFanMode; - -typedef enum -{ - EMBER_ZCL_FAN_MODE_SEQUENCE_LOW_MED_HIGH = 0x00, - EMBER_ZCL_FAN_MODE_SEQUENCE_LOW_HIGH = 0x01, - EMBER_ZCL_FAN_MODE_SEQUENCE_LOW_MED_HIGH_AUTO = 0x02, - EMBER_ZCL_FAN_MODE_SEQUENCE_LOW_HIGH_AUTO = 0x03, - EMBER_ZCL_FAN_MODE_SEQUENCE_ON_AUTO = 0x04, -} EmberAfFanModeSequence; - -typedef enum -{ - EMBER_ZCL_GAS_SPECIFIC_ALARM_GROUPS_TILT_TAMPER = 0x60, - EMBER_ZCL_GAS_SPECIFIC_ALARM_GROUPS_BATTERY_COVER_REMOVED = 0x61, - EMBER_ZCL_GAS_SPECIFIC_ALARM_GROUPS_BATTERY_COVER_CLOSED = 0x62, - EMBER_ZCL_GAS_SPECIFIC_ALARM_GROUPS_EXCESS_FLOW = 0x63, - EMBER_ZCL_GAS_SPECIFIC_ALARM_GROUPS_TILT_TAMPER_ENDED = 0x64, -} EmberAfGasSpecificAlarmGroups; - -typedef enum -{ - EMBER_ZCL_GENERATION_TIER_CURRENT_TIER1_SUMMATION_RECEIVED_ATTRIBUTE = 0x01, - EMBER_ZCL_GENERATION_TIER_CURRENT_TIER2_SUMMATION_RECEIVED_ATTRIBUTE = 0x02, - EMBER_ZCL_GENERATION_TIER_CURRENT_TIER3_SUMMATION_RECEIVED_ATTRIBUTE = 0x03, - EMBER_ZCL_GENERATION_TIER_CURRENT_TIER4_SUMMATION_RECEIVED_ATTRIBUTE = 0x04, - EMBER_ZCL_GENERATION_TIER_CURRENT_TIER5_SUMMATION_RECEIVED_ATTRIBUTE = 0x05, - EMBER_ZCL_GENERATION_TIER_CURRENT_TIER6_SUMMATION_RECEIVED_ATTRIBUTE = 0x06, - EMBER_ZCL_GENERATION_TIER_CURRENT_TIER7_SUMMATION_RECEIVED_ATTRIBUTE = 0x07, - EMBER_ZCL_GENERATION_TIER_CURRENT_TIER8_SUMMATION_RECEIVED_ATTRIBUTE = 0x08, - EMBER_ZCL_GENERATION_TIER_CURRENT_TIER9_SUMMATION_RECEIVED_ATTRIBUTE = 0x09, - EMBER_ZCL_GENERATION_TIER_CURRENT_TIER10_SUMMATION_RECEIVED_ATTRIBUTE = 0x0A, - EMBER_ZCL_GENERATION_TIER_CURRENT_TIER11_SUMMATION_RECEIVED_ATTRIBUTE = 0x0B, - EMBER_ZCL_GENERATION_TIER_CURRENT_TIER12_SUMMATION_RECEIVED_ATTRIBUTE = 0x0C, - EMBER_ZCL_GENERATION_TIER_CURRENT_TIER13_SUMMATION_RECEIVED_ATTRIBUTE = 0x0D, - EMBER_ZCL_GENERATION_TIER_CURRENT_TIER14_SUMMATION_RECEIVED_ATTRIBUTE = 0x0E, - EMBER_ZCL_GENERATION_TIER_CURRENT_TIER15_SUMMATION_RECEIVED_ATTRIBUTE = 0x0F, - EMBER_ZCL_GENERATION_TIER_CURRENT_TIER16_SUMMATION_RECEIVED_ATTRIBUTE = 0x10, - EMBER_ZCL_GENERATION_TIER_CURRENT_TIER17_SUMMATION_RECEIVED_ATTRIBUTE = 0x11, - EMBER_ZCL_GENERATION_TIER_CURRENT_TIER18_SUMMATION_RECEIVED_ATTRIBUTE = 0x12, - EMBER_ZCL_GENERATION_TIER_CURRENT_TIER19_SUMMATION_RECEIVED_ATTRIBUTE = 0x13, - EMBER_ZCL_GENERATION_TIER_CURRENT_TIER20_SUMMATION_RECEIVED_ATTRIBUTE = 0x14, - EMBER_ZCL_GENERATION_TIER_CURRENT_TIER21_SUMMATION_RECEIVED_ATTRIBUTE = 0x15, - EMBER_ZCL_GENERATION_TIER_CURRENT_TIER22_SUMMATION_RECEIVED_ATTRIBUTE = 0x16, - EMBER_ZCL_GENERATION_TIER_CURRENT_TIER23_SUMMATION_RECEIVED_ATTRIBUTE = 0x17, - EMBER_ZCL_GENERATION_TIER_CURRENT_TIER24_SUMMATION_RECEIVED_ATTRIBUTE = 0x18, - EMBER_ZCL_GENERATION_TIER_CURRENT_TIER25_SUMMATION_RECEIVED_ATTRIBUTE = 0x19, - EMBER_ZCL_GENERATION_TIER_CURRENT_TIER26_SUMMATION_RECEIVED_ATTRIBUTE = 0x1A, - EMBER_ZCL_GENERATION_TIER_CURRENT_TIER27_SUMMATION_RECEIVED_ATTRIBUTE = 0x1B, - EMBER_ZCL_GENERATION_TIER_CURRENT_TIER28_SUMMATION_RECEIVED_ATTRIBUTE = 0x1C, - EMBER_ZCL_GENERATION_TIER_CURRENT_TIER29_SUMMATION_RECEIVED_ATTRIBUTE = 0x1D, - EMBER_ZCL_GENERATION_TIER_CURRENT_TIER30_SUMMATION_RECEIVED_ATTRIBUTE = 0x1E, - EMBER_ZCL_GENERATION_TIER_CURRENT_TIER31_SUMMATION_RECEIVED_ATTRIBUTE = 0x1F, - EMBER_ZCL_GENERATION_TIER_CURRENT_TIER32_SUMMATION_RECEIVED_ATTRIBUTE = 0x20, - EMBER_ZCL_GENERATION_TIER_CURRENT_TIER33_SUMMATION_RECEIVED_ATTRIBUTE = 0x21, - EMBER_ZCL_GENERATION_TIER_CURRENT_TIER34_SUMMATION_RECEIVED_ATTRIBUTE = 0x22, - EMBER_ZCL_GENERATION_TIER_CURRENT_TIER35_SUMMATION_RECEIVED_ATTRIBUTE = 0x23, - EMBER_ZCL_GENERATION_TIER_CURRENT_TIER36_SUMMATION_RECEIVED_ATTRIBUTE = 0x24, - EMBER_ZCL_GENERATION_TIER_CURRENT_TIER37_SUMMATION_RECEIVED_ATTRIBUTE = 0x25, - EMBER_ZCL_GENERATION_TIER_CURRENT_TIER38_SUMMATION_RECEIVED_ATTRIBUTE = 0x26, - EMBER_ZCL_GENERATION_TIER_CURRENT_TIER39_SUMMATION_RECEIVED_ATTRIBUTE = 0x27, - EMBER_ZCL_GENERATION_TIER_CURRENT_TIER40_SUMMATION_RECEIVED_ATTRIBUTE = 0x28, - EMBER_ZCL_GENERATION_TIER_CURRENT_TIER41_SUMMATION_RECEIVED_ATTRIBUTE = 0x29, - EMBER_ZCL_GENERATION_TIER_CURRENT_TIER42_SUMMATION_RECEIVED_ATTRIBUTE = 0x2A, - EMBER_ZCL_GENERATION_TIER_CURRENT_TIER43_SUMMATION_RECEIVED_ATTRIBUTE = 0x2B, - EMBER_ZCL_GENERATION_TIER_CURRENT_TIER44_SUMMATION_RECEIVED_ATTRIBUTE = 0x2C, - EMBER_ZCL_GENERATION_TIER_CURRENT_TIER45_SUMMATION_RECEIVED_ATTRIBUTE = 0x2D, - EMBER_ZCL_GENERATION_TIER_CURRENT_TIER46_SUMMATION_RECEIVED_ATTRIBUTE = 0x2E, - EMBER_ZCL_GENERATION_TIER_CURRENT_TIER47_SUMMATION_RECEIVED_ATTRIBUTE = 0x2F, - EMBER_ZCL_GENERATION_TIER_CURRENT_TIER48_SUMMATION_RECEIVED_ATTRIBUTE = 0x30, -} EmberAfGenerationTier; - -typedef enum -{ - EMBER_ZCL_GENERIC_ALARM_GROUPS_CHECK_METER = 0x00, - EMBER_ZCL_GENERIC_ALARM_GROUPS_LOW_BATTERY = 0x01, - EMBER_ZCL_GENERIC_ALARM_GROUPS_TAMPER_DETECT = 0x02, - EMBER_ZCL_GENERIC_ALARM_GROUPS_LEAK_DETECT = 0x05, - EMBER_ZCL_GENERIC_ALARM_GROUPS_SERVICE_DISCONNECT = 0x06, - EMBER_ZCL_GENERIC_ALARM_GROUPS_METER_COVER_REMOVED = 0x08, - EMBER_ZCL_GENERIC_ALARM_GROUPS_METER_COVER_CLOSED = 0x09, - EMBER_ZCL_GENERIC_ALARM_GROUPS_STRONG_MAGNETIC_FIELD = 0x0A, - EMBER_ZCL_GENERIC_ALARM_GROUPS_NO_STRONG_MAGNETIC_FIELD = 0x0B, - EMBER_ZCL_GENERIC_ALARM_GROUPS_BATTERY_FAILURE = 0x0C, - EMBER_ZCL_GENERIC_ALARM_GROUPS_PROGRAM_MEMORY_ERROR = 0x0D, - EMBER_ZCL_GENERIC_ALARM_GROUPS_R_A_M_ERROR = 0x0E, - EMBER_ZCL_GENERIC_ALARM_GROUPS_N_V_MEMORY_ERROR = 0x0F, -} EmberAfGenericAlarmGroups; - -typedef enum -{ - EMBER_ZCL_GENERIC_ALARM_GROUPS_ELECTRICITY_POWER_FAILURE = 0x03, - EMBER_ZCL_GENERIC_ALARM_GROUPS_ELECTRICITY_POWER_QUALITY = 0x04, -} EmberAfGenericAlarmGroupsElectricity; - -typedef enum -{ - EMBER_ZCL_GENERIC_ALARM_GROUPS_GAS_LOW_PRESSURE = 0x04, - EMBER_ZCL_GENERIC_ALARM_GROUPS_GAS_REVERSE_FLOW = 0x07, -} EmberAfGenericAlarmGroupsGas; - -typedef enum -{ - EMBER_ZCL_GENERIC_ALARM_GROUPS_HEAT_COOLING_TEMPERATURE_SENSOR = 0x03, - EMBER_ZCL_GENERIC_ALARM_GROUPS_HEAT_COOLING_BURST_DETECT = 0x04, - EMBER_ZCL_GENERIC_ALARM_GROUPS_HEAT_COOLING_FLOW_SENSOR = 0x07, -} EmberAfGenericAlarmGroupsHeatCooling; - -typedef enum -{ - EMBER_ZCL_GENERIC_ALARM_GROUPS_WATER_WATER_PIPE_EMPTY = 0x03, - EMBER_ZCL_GENERIC_ALARM_GROUPS_WATER_WATER_LOW_PRESSURE = 0x04, - EMBER_ZCL_GENERIC_ALARM_GROUPS_WATER_WATER_REVERSE_FLOW = 0x07, -} EmberAfGenericAlarmGroupsWater; - -typedef enum -{ - EMBER_ZCL_GENERIC_DEVICE_CLASS_LIGHTING = 0x00, -} EmberAfGenericDeviceClass; - -typedef enum -{ - EMBER_ZCL_GENERIC_DEVICE_TYPE_INCANDESCENT = 0x00, - EMBER_ZCL_GENERIC_DEVICE_TYPE_SPOTLIGHT_HALOGEN = 0x01, - EMBER_ZCL_GENERIC_DEVICE_TYPE_HALOGEN_BULB = 0x02, - EMBER_ZCL_GENERIC_DEVICE_TYPE_CFL = 0x03, - EMBER_ZCL_GENERIC_DEVICE_TYPE_LINEAR_FLOURESCENT = 0x04, - EMBER_ZCL_GENERIC_DEVICE_TYPE_LED_BULB = 0x05, - EMBER_ZCL_GENERIC_DEVICE_TYPE_SPOTLIGHT_LED = 0x06, - EMBER_ZCL_GENERIC_DEVICE_TYPE_LED_STRIP = 0x07, - EMBER_ZCL_GENERIC_DEVICE_TYPE_LED_TUBE = 0x08, - EMBER_ZCL_GENERIC_DEVICE_TYPE_GENERIC_INDOOR_FIXTURE = 0x09, - EMBER_ZCL_GENERIC_DEVICE_TYPE_GENERIC_OUTDOOR_FIXTURE = 0x0A, - EMBER_ZCL_GENERIC_DEVICE_TYPE_PENDANT_FIXTURE = 0x0B, - EMBER_ZCL_GENERIC_DEVICE_TYPE_FLOOR_STANDING_FIXTURE = 0x0C, - EMBER_ZCL_GENERIC_DEVICE_TYPE_GENERIC_CONTROLLER = 0xE0, - EMBER_ZCL_GENERIC_DEVICE_TYPE_WALL_SWITCH = 0xE1, - EMBER_ZCL_GENERIC_DEVICE_TYPE_PORTABLE_REMOTE_CONTROLLER = 0xE2, - EMBER_ZCL_GENERIC_DEVICE_TYPE_MOTION_OR_LIGHT_SENSOR = 0xE3, - EMBER_ZCL_GENERIC_DEVICE_TYPE_GENERIC_ACTUATOR = 0xF0, - EMBER_ZCL_GENERIC_DEVICE_TYPE_PLUGIN_UNIT = 0xF1, - EMBER_ZCL_GENERIC_DEVICE_TYPE_RETROFIT_ACTUATOR = 0xF2, - EMBER_ZCL_GENERIC_DEVICE_TYPE_UNSPECIFIED = 0xFF, -} EmberAfGenericDeviceType; - -typedef enum -{ - EMBER_ZCL_GENERIC_FLOW_PRESSURE_ALARM_GROUPS_BURST_DETECT = 0x30, - EMBER_ZCL_GENERIC_FLOW_PRESSURE_ALARM_GROUPS_PRESSURE_TOO_LOW = 0x31, - EMBER_ZCL_GENERIC_FLOW_PRESSURE_ALARM_GROUPS_PRESSURE_TOO_HIGH = 0x32, - EMBER_ZCL_GENERIC_FLOW_PRESSURE_ALARM_GROUPS_FLOW_SENSOR_COMMUNICATION_ERROR = 0x33, - EMBER_ZCL_GENERIC_FLOW_PRESSURE_ALARM_GROUPS_FLOW_SENSOR_MEASUREMENT_FAULT = 0x34, - EMBER_ZCL_GENERIC_FLOW_PRESSURE_ALARM_GROUPS_FLOW_SENSOR_REVERSE_FLOW = 0x35, - EMBER_ZCL_GENERIC_FLOW_PRESSURE_ALARM_GROUPS_FLOW_SENSOR_AIR_DETECT = 0x36, - EMBER_ZCL_GENERIC_FLOW_PRESSURE_ALARM_GROUPS_PIPE_EMPTY = 0x37, -} EmberAfGenericFlowPressureAlarmGroups; - -typedef enum -{ - EMBER_ZCL_GP_DEVICE_ID_GP_SIMPLE_GENERICE_TWO_STATE_SWITCH = 0x00, - EMBER_ZCL_GP_DEVICE_ID_GP_ON_OFF_SWITCH = 0x08, - EMBER_ZCL_GP_DEVICE_ID_GP_LEVEL_CONTROL_SWITCH = 0x10, - EMBER_ZCL_GP_DEVICE_ID_GP_INDOOR_ENVIRONMENT_SNESOR = 0x18, -} EmberAfGpDeviceId; - -typedef enum -{ - EMBER_ZCL_GP_GPDF_IDENTIFY = 0x00, - EMBER_ZCL_GP_GPDF_MATCH_ONLY_ON_GPD_ADDRESS = 0x02, - EMBER_ZCL_GP_GPDF_RECALL_SCENE0 = 0x10, - EMBER_ZCL_GP_GPDF_RECALL_SCENE1 = 0x11, - EMBER_ZCL_GP_GPDF_RECALL_SCENE2 = 0x12, - EMBER_ZCL_GP_GPDF_RECALL_SCENE3 = 0x13, - EMBER_ZCL_GP_GPDF_RECALL_SCENE4 = 0x14, - EMBER_ZCL_GP_GPDF_RECALL_SCENE5 = 0x15, - EMBER_ZCL_GP_GPDF_RECALL_SCENE6 = 0x16, - EMBER_ZCL_GP_GPDF_RECALL_SCENE7 = 0x17, - EMBER_ZCL_GP_GPDF_STORE_SCENE0 = 0x18, - EMBER_ZCL_GP_GPDF_STORE_SCENE1 = 0x19, - EMBER_ZCL_GP_GPDF_STORE_SCENE2 = 0x1A, - EMBER_ZCL_GP_GPDF_STORE_SCENE3 = 0x1B, - EMBER_ZCL_GP_GPDF_STORE_SCENE4 = 0x1C, - EMBER_ZCL_GP_GPDF_STORE_SCENE5 = 0x1D, - EMBER_ZCL_GP_GPDF_STORE_SCENE6 = 0x1E, - EMBER_ZCL_GP_GPDF_STORE_SCENE7 = 0x1F, - EMBER_ZCL_GP_GPDF_OFF = 0x20, - EMBER_ZCL_GP_GPDF_ON = 0x21, - EMBER_ZCL_GP_GPDF_TOGGLE = 0x22, - EMBER_ZCL_GP_GPDF_RELEASE = 0x23, - EMBER_ZCL_GP_GPDF_MOVE_UP = 0x30, - EMBER_ZCL_GP_GPDF_MOVE_DOWN = 0x31, - EMBER_ZCL_GP_GPDF_STEP_UP = 0x32, - EMBER_ZCL_GP_GPDF_STEP_DOWN = 0x33, - EMBER_ZCL_GP_GPDF_LEVEL_CONTROL_STOP = 0x34, - EMBER_ZCL_GP_GPDF_MOVE_UP_WITH_ON_OFF = 0x35, - EMBER_ZCL_GP_GPDF_MOVE_DOWN_WITH_ON_OFF = 0x36, - EMBER_ZCL_GP_GPDF_STEP_UP_WITH_ON_OFF = 0x37, - EMBER_ZCL_GP_GPDF_STEP_DOWN_WITH_ON_OFF = 0x38, - EMBER_ZCL_GP_GPDF_MOVE_HUE_STOP = 0x40, - EMBER_ZCL_GP_GPDF_MOVE_HUE_UP = 0x41, - EMBER_ZCL_GP_GPDF_MOVE_HUE_DOWN = 0x42, - EMBER_ZCL_GP_GPDF_STEP_HUE_UP = 0x43, - EMBER_ZCL_GP_GPDF_STEP_HUE_DOWN = 0x44, - EMBER_ZCL_GP_GPDF_MOVE_SATURATION_STOP = 0x45, - EMBER_ZCL_GP_GPDF_MOVE_SATURATION_UP = 0x46, - EMBER_ZCL_GP_GPDF_MOVE_SATURATION_DOWN = 0x47, - EMBER_ZCL_GP_GPDF_STEP_SATURATION_UP = 0x48, - EMBER_ZCL_GP_GPDF_STEP_SATURATION_DOWN = 0x49, - EMBER_ZCL_GP_GPDF_MOVE_COLOR = 0x4A, - EMBER_ZCL_GP_GPDF_STEP_COLOR = 0x4B, - EMBER_ZCL_GP_GPDF_LOCK_DOOR = 0x50, - EMBER_ZCL_GP_GPDF_UNLOCK_DOOR = 0x51, - EMBER_ZCL_GP_GPDF_PRESS1_OF1 = 0x60, - EMBER_ZCL_GP_GPDF_RELEASE1_OF1 = 0x61, - EMBER_ZCL_GP_GPDF_PRESS1_OF2 = 0x62, - EMBER_ZCL_GP_GPDF_RELEASE1_OF2 = 0x63, - EMBER_ZCL_GP_GPDF_PRESS2_OF2 = 0x64, - EMBER_ZCL_GP_GPDF_RELEASE2_OF2 = 0x65, - EMBER_ZCL_GP_GPDF_SHORT_PRESS1_OF1 = 0x66, - EMBER_ZCL_GP_GPDF_SHORT_PRESS1_OF2 = 0x67, - EMBER_ZCL_GP_GPDF_SHORT_PRESS2_OF2 = 0x68, - EMBER_ZCL_GP_GPDF_8BITS_VECTOR_PRESS = 0x69, - EMBER_ZCL_GP_GPDF_8BITS_VECTOR_RELEASE = 0x6A, - EMBER_ZCL_GP_GPDF_ATTRIBUTE_REPORTING = 0xA0, - EMBER_ZCL_GP_GPDF_MFR_SP_ATTR_RPTG = 0xA1, - EMBER_ZCL_GP_GPDF_MULTI_CLUSTER_RPTG = 0xA2, - EMBER_ZCL_GP_GPDF_MFR_SP_MULTI_CLUSTER_RPTG = 0xA3, - EMBER_ZCL_GP_GPDF_REQUEST_ATTRIBUTE = 0xA4, - EMBER_ZCL_GP_GPDF_READ_ATTR_RESPONSE = 0xA5, - EMBER_ZCL_GP_GPDF_ZCL_TUNNELING_WITH_PAYLOAD = 0xA6, - EMBER_ZCL_GP_GPDF_COMPACT_ATTRIBUTE_REPORTING = 0xA8, - EMBER_ZCL_GP_GPDF_ANY_GPD_SENSOR_CMD = 0xAF, - EMBER_ZCL_GP_GPDF_MFR_DEF_GPD_CMD0 = 0xB0, - EMBER_ZCL_GP_GPDF_MFR_DEF_GPD_CMD1 = 0xB1, - EMBER_ZCL_GP_GPDF_MFR_DEF_GPD_CMD2 = 0xB2, - EMBER_ZCL_GP_GPDF_MFR_DEF_GPD_CMD3 = 0xB3, - EMBER_ZCL_GP_GPDF_MFR_DEF_GPD_CMD4 = 0xB4, - EMBER_ZCL_GP_GPDF_MFR_DEF_GPD_CMD5 = 0xB5, - EMBER_ZCL_GP_GPDF_MFR_DEF_GPD_CMD6 = 0xB6, - EMBER_ZCL_GP_GPDF_MFR_DEF_GPD_CMD7 = 0xB7, - EMBER_ZCL_GP_GPDF_MFR_DEF_GPD_CMD8 = 0xB8, - EMBER_ZCL_GP_GPDF_MFR_DEF_GPD_CMD9 = 0xB9, - EMBER_ZCL_GP_GPDF_MFR_DEF_GPD_CMD_A = 0xBA, - EMBER_ZCL_GP_GPDF_MFR_DEF_GPD_CMD_B = 0xBB, - EMBER_ZCL_GP_GPDF_MFR_DEF_GPD_CMD_C = 0xBC, - EMBER_ZCL_GP_GPDF_MFR_DEF_GPD_CMD_D = 0xBD, - EMBER_ZCL_GP_GPDF_MFR_DEF_GPD_CMD_E = 0xBE, - EMBER_ZCL_GP_GPDF_MFR_DEF_GPD_CMD_F = 0xBF, - EMBER_ZCL_GP_GPDF_COMMISSIONING = 0xE0, - EMBER_ZCL_GP_GPDF_DECOMMISSIONING = 0xE1, - EMBER_ZCL_GP_GPDF_SUCCESS = 0xE2, - EMBER_ZCL_GP_GPDF_CHANNEL_REQUEST = 0xE3, - EMBER_ZCL_GP_GPDF_APPLICATION_DESCRIPTION = 0xE4, - EMBER_ZCL_GP_GPDF_COMMISSIONING_REPLY = 0xF0, - EMBER_ZCL_GP_GPDF_WRITE_ATTRIBUTES = 0xF1, - EMBER_ZCL_GP_GPDF_READ_ATTRIBUTES = 0xF2, - EMBER_ZCL_GP_GPDF_CHANNEL_CONFIGURATION = 0xF3, - EMBER_ZCL_GP_GPDF_ZCL_TUNNELING = 0xF6, -} EmberAfGpGpdf; - -typedef enum -{ - EMBER_ZCL_GP_PAIRING_CONFIGURATION_ACTION_NO_ACTION = 0x00, - EMBER_ZCL_GP_PAIRING_CONFIGURATION_ACTION_EXTEND_SINK_TABLE_ENTRY = 0x01, - EMBER_ZCL_GP_PAIRING_CONFIGURATION_ACTION_REPLACE_SINK_TABLE_ENTRY = 0x02, - EMBER_ZCL_GP_PAIRING_CONFIGURATION_ACTION_REMOVE_A_PAIRING = 0x03, - EMBER_ZCL_GP_PAIRING_CONFIGURATION_ACTION_REMOVE_GPD = 0x04, - EMBER_ZCL_GP_PAIRING_CONFIGURATION_ACTION_APPLICATION_DESCRIPTION = 0x05, -} EmberAfGpPairingConfigurationAction; - -typedef enum -{ - EMBER_ZCL_GP_PAIRING_CONFIGURATION_OPTION_COMMUNICATION_MODE_UNICAST_FORWARDING = 0x00, - EMBER_ZCL_GP_PAIRING_CONFIGURATION_OPTION_COMMUNICATION_MODE_GROUPCAST_FORWARDING_TO_D_GROUP_I_D = 0x08, - EMBER_ZCL_GP_PAIRING_CONFIGURATION_OPTION_COMMUNICATION_MODE_GROUPCAST_FORWARDING_TO_PRE_COMMISSIONED = 0x10, - EMBER_ZCL_GP_PAIRING_CONFIGURATION_OPTION_COMMUNICATION_MODE_UNICAST_FORWARDING_LIGHTWEIGHT = 0x18, -} EmberAfGpPairingConfigurationOptionCommunicationMode; - -typedef enum -{ - EMBER_ZCL_GP_PAIRING_OPTIONS_COMMUNICATION_MODE_FULL_UNICAST_FORWARDING = 0x00, - EMBER_ZCL_GP_PAIRING_OPTIONS_COMMUNICATION_MODE_GROUPCAST_FORWARDING_TO_D_GROUP_ID = 0x01, - EMBER_ZCL_GP_PAIRING_OPTIONS_COMMUNICATION_MODE_GROUPCAST_FORWARDING_TO_PRE_COMM_UNIT = 0x10, - EMBER_ZCL_GP_PAIRING_OPTIONS_COMMUNICATION_MODE_UNICAST_FORWARDING_BY_PROX_SUPPORT = 0x11, -} EmberAfGpPairingOptionsCommunicationMode; - -typedef enum -{ - EMBER_ZCL_GP_PROXY_TABLE_REQUEST_OPTIONS_REQUEST_TYPE_BY_GPD_ID = 0x00, - EMBER_ZCL_GP_PROXY_TABLE_REQUEST_OPTIONS_REQUEST_TYPE_BY_INDEX = 0x01, -} EmberAfGpProxyTableRequestOptionsRequestType; - -typedef enum -{ - EMBER_ZCL_GP_PROXY_TABLE_RESPONSE_STATUS_SUCCESS = 0x00, - EMBER_ZCL_GP_PROXY_TABLE_RESPONSE_STATUS_NOT_FOUND = 0x8B, -} EmberAfGpProxyTableResponseStatus; - -typedef enum -{ - EMBER_ZCL_GP_SECURITY_KEY_TYPE_NONE = 0x00, - EMBER_ZCL_GP_SECURITY_KEY_TYPE_ZIGBEE_NETWORK_KEY = 0x01, - EMBER_ZCL_GP_SECURITY_KEY_TYPE_GPD_GROUP_KEY = 0x02, - EMBER_ZCL_GP_SECURITY_KEY_TYPE_NETWORK_DERIVED_GROUP_KEY = 0x03, - EMBER_ZCL_GP_SECURITY_KEY_TYPE_INDIVIDIGUAL_GPD_KEY = 0x04, - EMBER_ZCL_GP_SECURITY_KEY_TYPE_DERIVED_INDIVIDUAL_GPD_KEY = 0x07, -} EmberAfGpSecurityKeyType; - -typedef enum -{ - EMBER_ZCL_GP_SINK_TABLE_REQUEST_OPTIONS_REQUEST_TABLE_ENTRIES_BY_GPD_ID = 0x00, - EMBER_ZCL_GP_SINK_TABLE_REQUEST_OPTIONS_REQUEST_TABLE_ENTRIES_BY_INDEX = 0x01, -} EmberAfGpSinkTableRequestOptions; - -typedef enum -{ - EMBER_ZCL_GP_SINK_TABLE_RESPONSE_STATUS_SUCCESS = 0x00, - EMBER_ZCL_GP_SINK_TABLE_RESPONSE_STATUS_NOT_FOUND = 0x8B, -} EmberAfGpSinkTableResponseStatus; - -typedef enum -{ - EMBER_ZCL_GP_TRANSLATION_TABLE_RESPONSE_STATUS_SUCCESS = 0x00, - EMBER_ZCL_GP_TRANSLATION_TABLE_RESPONSE_STATUS_NOT_FOUND = 0x8B, -} EmberAfGpTranslationTableResponseStatus; - -typedef enum -{ - EMBER_ZCL_GP_TRANSLATION_TABLE_UPDATE_ACTION_ADD_TRANSLATION_TABLE_ENTRY = 0x00, - EMBER_ZCL_GP_TRANSLATION_TABLE_UPDATE_ACTION_REPLACE_TRANSLATION_TABLE_ENTRY = 0x08, - EMBER_ZCL_GP_TRANSLATION_TABLE_UPDATE_ACTION_REMOVE_TRANSLATION_TABLE_ENTRY = 0x10, - EMBER_ZCL_GP_TRANSLATION_TABLE_UPDATE_ACTION_RESERVED = 0x18, -} EmberAfGpTranslationTableUpdateAction; - -typedef enum -{ - EMBER_ZCL_HEAT_AND_COOLING_SPECIFIC_ALARM_GROUPS_INLET_TEMPERATURE_SENSOR_FAULT = 0x50, - EMBER_ZCL_HEAT_AND_COOLING_SPECIFIC_ALARM_GROUPS_OUTLET_TEMPERATURE_SENSOR_FAULT = 0x51, -} EmberAfHeatAndCoolingSpecificAlarmGroups; - -typedef enum -{ - EMBER_ZCL_HUE_DIRECTION_SHORTEST_DISTANCE = 0x00, - EMBER_ZCL_HUE_DIRECTION_LONGEST_DISTANCE = 0x01, - EMBER_ZCL_HUE_DIRECTION_UP = 0x02, - EMBER_ZCL_HUE_DIRECTION_DOWN = 0x03, -} EmberAfHueDirection; - -typedef enum -{ - EMBER_ZCL_HUE_MOVE_MODE_STOP = 0x00, - EMBER_ZCL_HUE_MOVE_MODE_UP = 0x01, - EMBER_ZCL_HUE_MOVE_MODE_DOWN = 0x03, -} EmberAfHueMoveMode; - -typedef enum -{ - EMBER_ZCL_HUE_STEP_MODE_UP = 0x01, - EMBER_ZCL_HUE_STEP_MODE_DOWN = 0x03, -} EmberAfHueStepMode; - -typedef enum -{ - EMBER_ZCL_IAS_ACE_ALARM_STATUS_NO_ALARM = 0x00, - EMBER_ZCL_IAS_ACE_ALARM_STATUS_BURGLAR = 0x01, - EMBER_ZCL_IAS_ACE_ALARM_STATUS_FIRE = 0x02, - EMBER_ZCL_IAS_ACE_ALARM_STATUS_EMERGENCY = 0x03, - EMBER_ZCL_IAS_ACE_ALARM_STATUS_POLICE_PANIC = 0x04, - EMBER_ZCL_IAS_ACE_ALARM_STATUS_FIRE_PANIC = 0x05, - EMBER_ZCL_IAS_ACE_ALARM_STATUS_EMERGENCY_PANIC = 0x06, -} EmberAfIasAceAlarmStatus; - -typedef enum -{ - EMBER_ZCL_IAS_ACE_ARM_MODE_DISARM = 0x00, - EMBER_ZCL_IAS_ACE_ARM_MODE_ARM_DAY_HOME_ZONES_ONLY = 0x01, - EMBER_ZCL_IAS_ACE_ARM_MODE_ARM_NIGHT_SLEEP_ZONES_ONLY = 0x02, - EMBER_ZCL_IAS_ACE_ARM_MODE_ARM_ALL_ZONES = 0x03, -} EmberAfIasAceArmMode; - -typedef enum -{ - EMBER_ZCL_IAS_ACE_ARM_NOTIFICATION_ALL_ZONES_DISARMED = 0x00, - EMBER_ZCL_IAS_ACE_ARM_NOTIFICATION_ONLY_DAY_HOME_ZONES_ARMED = 0x01, - EMBER_ZCL_IAS_ACE_ARM_NOTIFICATION_ONLY_NIGHT_SLEEP_ZONES_ARMED = 0x02, - EMBER_ZCL_IAS_ACE_ARM_NOTIFICATION_ALL_ZONES_ARMED = 0x03, - EMBER_ZCL_IAS_ACE_ARM_NOTIFICATION_INVALID_ARM_DISARM_CODE = 0x04, - EMBER_ZCL_IAS_ACE_ARM_NOTIFICATION_NOT_READY_TO_ARM = 0x05, - EMBER_ZCL_IAS_ACE_ARM_NOTIFICATION_ALREADY_DISARMED = 0x06, -} EmberAfIasAceArmNotification; - -typedef enum -{ - EMBER_ZCL_IAS_ACE_AUDIBLE_NOTIFICATION_MUTE = 0x00, - EMBER_ZCL_IAS_ACE_AUDIBLE_NOTIFICATION_DEFAULT_SOUND = 0x01, -} EmberAfIasAceAudibleNotification; - -typedef enum -{ - EMBER_ZCL_IAS_ACE_BYPASS_RESULT_ZONE_BYPASSED = 0x00, - EMBER_ZCL_IAS_ACE_BYPASS_RESULT_ZONE_NOT_BYPASSED = 0x01, - EMBER_ZCL_IAS_ACE_BYPASS_RESULT_NOT_ALLOWED = 0x02, - EMBER_ZCL_IAS_ACE_BYPASS_RESULT_INVALID_ZONE_ID = 0x03, - EMBER_ZCL_IAS_ACE_BYPASS_RESULT_UNKNOWN_ZONE_ID = 0x04, - EMBER_ZCL_IAS_ACE_BYPASS_RESULT_INVALID_ARM_DISARM_CODE = 0x05, -} EmberAfIasAceBypassResult; - -typedef enum -{ - EMBER_ZCL_IAS_ACE_PANEL_STATUS_PANEL_DISARMED = 0x00, - EMBER_ZCL_IAS_ACE_PANEL_STATUS_ARMED_STAY = 0x01, - EMBER_ZCL_IAS_ACE_PANEL_STATUS_ARMED_NIGHT = 0x02, - EMBER_ZCL_IAS_ACE_PANEL_STATUS_ARMED_AWAY = 0x03, - EMBER_ZCL_IAS_ACE_PANEL_STATUS_EXIT_DELAY = 0x04, - EMBER_ZCL_IAS_ACE_PANEL_STATUS_ENTRY_DELAY = 0x05, - EMBER_ZCL_IAS_ACE_PANEL_STATUS_NOT_READY_TO_ARM = 0x06, - EMBER_ZCL_IAS_ACE_PANEL_STATUS_IN_ALARM = 0x07, - EMBER_ZCL_IAS_ACE_PANEL_STATUS_ARMING_STAY = 0x08, - EMBER_ZCL_IAS_ACE_PANEL_STATUS_ARMING_NIGHT = 0x09, - EMBER_ZCL_IAS_ACE_PANEL_STATUS_ARMING_AWAY = 0x0A, -} EmberAfIasAcePanelStatus; - -typedef enum -{ - EMBER_ZCL_IAS_ENROLL_RESPONSE_CODE_SUCCESS = 0x00, - EMBER_ZCL_IAS_ENROLL_RESPONSE_CODE_NOT_SUPPORTED = 0x01, - EMBER_ZCL_IAS_ENROLL_RESPONSE_CODE_NO_ENROLL_PERMIT = 0x02, - EMBER_ZCL_IAS_ENROLL_RESPONSE_CODE_TOO_MANY_ZONES = 0x03, -} EmberAfIasEnrollResponseCode; - -typedef enum -{ - EMBER_ZCL_IAS_ZONE_STATE_NOT_ENROLLED = 0x00, - EMBER_ZCL_IAS_ZONE_STATE_ENROLLED = 0x01, -} EmberAfIasZoneState; - -typedef enum -{ - EMBER_ZCL_IAS_ZONE_TYPE_STANDARD_CIE = 0x0000, - EMBER_ZCL_IAS_ZONE_TYPE_MOTION_SENSOR = 0x000D, - EMBER_ZCL_IAS_ZONE_TYPE_CONTACT_SWITCH = 0x0015, - EMBER_ZCL_IAS_ZONE_TYPE_FIRE_SENSOR = 0x0028, - EMBER_ZCL_IAS_ZONE_TYPE_WATER_SENSOR = 0x002A, - EMBER_ZCL_IAS_ZONE_TYPE_GAS_SENSOR = 0x002B, - EMBER_ZCL_IAS_ZONE_TYPE_PERSONAL_EMERGENCY_DEVICE = 0x002C, - EMBER_ZCL_IAS_ZONE_TYPE_VIBRATION_MOVEMENT_SENSOR = 0x002D, - EMBER_ZCL_IAS_ZONE_TYPE_REMOTE_CONTROL = 0x010F, - EMBER_ZCL_IAS_ZONE_TYPE_KEY_FOB = 0x0115, - EMBER_ZCL_IAS_ZONE_TYPE_KEYPAD = 0x021D, - EMBER_ZCL_IAS_ZONE_TYPE_STANDARD_WARNING_DEVICE = 0x0225, - EMBER_ZCL_IAS_ZONE_TYPE_GLASS_BREAK_SENSOR = 0x0226, - EMBER_ZCL_IAS_ZONE_TYPE_CARBON_MONOXIDE_SENSOR = 0x0227, - EMBER_ZCL_IAS_ZONE_TYPE_SECURITY_REPEATER = 0x0229, - EMBER_ZCL_IAS_ZONE_TYPE_INVALID_ZONE_TYPE = 0xFFFF, -} EmberAfIasZoneType; - -typedef enum -{ - EMBER_ZCL_IDENTIFY_EFFECT_IDENTIFIER_BLINK = 0x00, - EMBER_ZCL_IDENTIFY_EFFECT_IDENTIFIER_BREATHE = 0x01, - EMBER_ZCL_IDENTIFY_EFFECT_IDENTIFIER_OKAY = 0x02, - EMBER_ZCL_IDENTIFY_EFFECT_IDENTIFIER_CHANNEL_CHANGE = 0x0B, - EMBER_ZCL_IDENTIFY_EFFECT_IDENTIFIER_FINISH_EFFECT = 0xFE, - EMBER_ZCL_IDENTIFY_EFFECT_IDENTIFIER_STOP_EFFECT = 0xFF, -} EmberAfIdentifyEffectIdentifier; - -typedef enum -{ - EMBER_ZCL_IDENTIFY_EFFECT_VARIANT_DEFAULT = 0x00, -} EmberAfIdentifyEffectVariant; - -typedef enum -{ - EMBER_ZCL_KEY_INDEX_DEVELOPMENT = 0x00, - EMBER_ZCL_KEY_INDEX_MASTER = 0x04, - EMBER_ZCL_KEY_INDEX_CERTIFICATION = 0x0F, -} EmberAfKeyIndex; - -typedef enum -{ - EMBER_ZCL_KEYPAD_LOCKOUT_NO_LOCKOUT = 0x00, - EMBER_ZCL_KEYPAD_LOCKOUT_LEVEL_ONE_LOCKOUT = 0x01, - EMBER_ZCL_KEYPAD_LOCKOUT_LEVEL_TWO_LOCKOUT = 0x02, - EMBER_ZCL_KEYPAD_LOCKOUT_LEVEL_THREE_LOCKOUT = 0x03, - EMBER_ZCL_KEYPAD_LOCKOUT_LEVEL_FOUR_LOCKOUT = 0x04, - EMBER_ZCL_KEYPAD_LOCKOUT_LEVELFIVE_LOCKOUT = 0x05, -} EmberAfKeypadLockout; - -typedef enum -{ - EMBER_ZCL_LEVEL_CONTROL_OPTIONS_EXECUTE_IF_OFF = 0x01, - EMBER_ZCL_LEVEL_CONTROL_OPTIONS_COUPLE_COLOR_TEMP_TO_LEVEL = 0x02, -} EmberAfLevelControlOptions; - -typedef enum -{ - EMBER_ZCL_LEVEL_STATUS_ON_TARGET = 0x00, - EMBER_ZCL_LEVEL_STATUS_BELOW_TARGET = 0x01, - EMBER_ZCL_LEVEL_STATUS_ABOVE_TARGET = 0x02, -} EmberAfLevelStatus; - -typedef enum -{ - EMBER_ZCL_LOCATION_METHOD_LATERATION = 0x00, - EMBER_ZCL_LOCATION_METHOD_SIGNPOSTING = 0x01, - EMBER_ZCL_LOCATION_METHOD_RF_FINGERPRINTING = 0x02, - EMBER_ZCL_LOCATION_METHOD_OUT_OF_BAND = 0x03, -} EmberAfLocationMethod; - -typedef enum -{ - EMBER_ZCL_MANUFACTURER_SPECIFIC_ALARM_GROUPS_MANUFACTURER_SPECIFIC_A = 0xB0, - EMBER_ZCL_MANUFACTURER_SPECIFIC_ALARM_GROUPS_MANUFACTURER_SPECIFIC_B = 0xB1, - EMBER_ZCL_MANUFACTURER_SPECIFIC_ALARM_GROUPS_MANUFACTURER_SPECIFIC_C = 0xB2, - EMBER_ZCL_MANUFACTURER_SPECIFIC_ALARM_GROUPS_MANUFACTURER_SPECIFIC_D = 0xB3, - EMBER_ZCL_MANUFACTURER_SPECIFIC_ALARM_GROUPS_MANUFACTURER_SPECIFIC_E = 0xB4, - EMBER_ZCL_MANUFACTURER_SPECIFIC_ALARM_GROUPS_MANUFACTURER_SPECIFIC_F = 0xB5, - EMBER_ZCL_MANUFACTURER_SPECIFIC_ALARM_GROUPS_MANUFACTURER_SPECIFIC_G = 0xB6, - EMBER_ZCL_MANUFACTURER_SPECIFIC_ALARM_GROUPS_MANUFACTURER_SPECIFIC_H = 0xB7, - EMBER_ZCL_MANUFACTURER_SPECIFIC_ALARM_GROUPS_MANUFACTURER_SPECIFIC_I = 0xB8, -} EmberAfManufacturerSpecificAlarmGroups; - -typedef enum -{ - EMBER_ZCL_MEASUREMENT_LIGHT_SENSOR_TYPE_PHOTODIODE = 0x00, - EMBER_ZCL_MEASUREMENT_LIGHT_SENSOR_TYPE_CMOS = 0x01, -} EmberAfMeasurementLightSensorType; - -typedef enum -{ - EMBER_ZCL_MESSAGING_CONTROL_CONFIRMATION_NOT_REQUIRED = 0x00, - EMBER_ZCL_MESSAGING_CONTROL_CONFIRMATION_REQUIRED = 0x80, -} EmberAfMessagingControlConfirmation; - -typedef enum -{ - EMBER_ZCL_MESSAGING_CONTROL_ENHANCED_CONFIRMATION_NOT_REQUIRED = 0x00, - EMBER_ZCL_MESSAGING_CONTROL_ENHANCED_CONFIRMATION_REQUIRED = 0x20, -} EmberAfMessagingControlEnhancedConfirmation; - -typedef enum -{ - EMBER_ZCL_MESSAGING_CONTROL_IMPORTANCE_LOW = 0x00, - EMBER_ZCL_MESSAGING_CONTROL_IMPORTANCE_MEDIUM = 0x04, - EMBER_ZCL_MESSAGING_CONTROL_IMPORTANCE_HIGH = 0x08, - EMBER_ZCL_MESSAGING_CONTROL_IMPORTANCE_CRITICAL = 0x0C, -} EmberAfMessagingControlImportance; - -typedef enum -{ - EMBER_ZCL_MESSAGING_CONTROL_TRANSMISSION_NORMAL = 0x00, - EMBER_ZCL_MESSAGING_CONTROL_TRANSMISSION_NORMAL_AND_ANONYMOUS = 0x01, - EMBER_ZCL_MESSAGING_CONTROL_TRANSMISSION_ANONYMOUS = 0x02, - EMBER_ZCL_MESSAGING_CONTROL_TRANSMISSION_RESERVED = 0x03, -} EmberAfMessagingControlTransmission; - -typedef enum -{ - EMBER_ZCL_METER_DEVICE_TYPE_ELECTRIC_METER = 0x00, - EMBER_ZCL_METER_DEVICE_TYPE_GAS_METER = 0x01, - EMBER_ZCL_METER_DEVICE_TYPE_WATER_METER = 0x02, - EMBER_ZCL_METER_DEVICE_TYPE_THERMAL_METER = 0x03, - EMBER_ZCL_METER_DEVICE_TYPE_PRESSURE_METER = 0x04, - EMBER_ZCL_METER_DEVICE_TYPE_HEAT_METER = 0x05, - EMBER_ZCL_METER_DEVICE_TYPE_COOLING_METER = 0x06, - EMBER_ZCL_METER_DEVICE_TYPE_MIRRORED_GAS_METER = 0x80, - EMBER_ZCL_METER_DEVICE_TYPE_MIRRORED_WATER_METER = 0x81, - EMBER_ZCL_METER_DEVICE_TYPE_MIRRORED_THERMAL_METER = 0x82, - EMBER_ZCL_METER_DEVICE_TYPE_MIRRORED_PRESSURE_METER = 0x83, - EMBER_ZCL_METER_DEVICE_TYPE_MIRRORED_HEAT_METER = 0x84, - EMBER_ZCL_METER_DEVICE_TYPE_MIRRORED_COOLING_METER = 0x85, - EMBER_ZCL_METER_DEVICE_TYPE_UNDEFINED_MIRROR_METER = 0xFE, -} EmberAfMeterDeviceType; - -typedef enum -{ - EMBER_ZCL_METER_TYPE_ID_UTILITY_PRIMARY_METER = 0x0000, - EMBER_ZCL_METER_TYPE_ID_UTILITY_PRODUCTION_METER = 0x0001, - EMBER_ZCL_METER_TYPE_ID_UTILITY_SECONDARY_METER = 0x0002, - EMBER_ZCL_METER_TYPE_ID_PRIVATE_PRIMARY_METER = 0x0100, - EMBER_ZCL_METER_TYPE_ID_PRIVATE_PRODUCTION_METER = 0x0101, - EMBER_ZCL_METER_TYPE_ID_PRIVATE_SECONDARY_METERS = 0x0102, - EMBER_ZCL_METER_TYPE_ID_GENERIC_METER = 0x0110, -} EmberAfMeterTypeId; - -typedef enum -{ - EMBER_ZCL_METERING_ALARM_CODE_CHECK_METER = 0x00, - EMBER_ZCL_METERING_ALARM_CODE_LOW_BATTERY = 0x01, - EMBER_ZCL_METERING_ALARM_CODE_TAMPER_DETECT = 0x02, - EMBER_ZCL_METERING_ALARM_CODE_POWER_FAILURE_PIPE_EMPTY_TEMPERATURE_SENSOR = 0x03, - EMBER_ZCL_METERING_ALARM_CODE_POWER_QUALITY_LOW_PRESSURE_BURST_DETECT = 0x04, - EMBER_ZCL_METERING_ALARM_CODE_LEAK_DETECT = 0x05, - EMBER_ZCL_METERING_ALARM_CODE_SERVICE_DISCONNECT = 0x06, - EMBER_ZCL_METERING_ALARM_CODE_REVERSE_FLOW_FLOW_SENSOR = 0x07, - EMBER_ZCL_METERING_ALARM_CODE_METER_COVER_REMOVED = 0x08, - EMBER_ZCL_METERING_ALARM_CODE_METER_COVER_CLOSED = 0x09, - EMBER_ZCL_METERING_ALARM_CODE_STRONG_MAGNETIC_FIELD = 0x0A, - EMBER_ZCL_METERING_ALARM_CODE_NO_STRONG_MAGNETIC_FIELD = 0x0B, - EMBER_ZCL_METERING_ALARM_CODE_BATTERY_FAILURE = 0x0C, - EMBER_ZCL_METERING_ALARM_CODE_PROGRAM_MEMORY_ERROR = 0x0D, - EMBER_ZCL_METERING_ALARM_CODE_R_A_M_ERROR = 0x0E, - EMBER_ZCL_METERING_ALARM_CODE_N_V_MEMORY_ERROR = 0x0F, - EMBER_ZCL_METERING_ALARM_CODE_LOW_VOLTAGE_L1 = 0x10, - EMBER_ZCL_METERING_ALARM_CODE_HIGH_VOLTAGE_L1 = 0x11, - EMBER_ZCL_METERING_ALARM_CODE_LOW_VOLTAGE_L2 = 0x12, - EMBER_ZCL_METERING_ALARM_CODE_HIGH_VOLTAGE_L2 = 0x13, - EMBER_ZCL_METERING_ALARM_CODE_LOW_VOLTAGE_L3 = 0x14, - EMBER_ZCL_METERING_ALARM_CODE_HIGH_VOLTAGE_L3 = 0x15, - EMBER_ZCL_METERING_ALARM_CODE_OVER_CURRENT_L1 = 0x16, - EMBER_ZCL_METERING_ALARM_CODE_OVER_CURRENT_L2 = 0x17, - EMBER_ZCL_METERING_ALARM_CODE_OVER_CURRENT_L3 = 0x18, - EMBER_ZCL_METERING_ALARM_CODE_FREQUENCY_TOO_LOW_L1 = 0x19, - EMBER_ZCL_METERING_ALARM_CODE_FREQUENCY_TOO_HIGH_L1 = 0x1A, - EMBER_ZCL_METERING_ALARM_CODE_FREQUENCY_TOO_LOW_L2 = 0x1B, - EMBER_ZCL_METERING_ALARM_CODE_FREQUENCY_TOO_HIGH_L2 = 0x1C, - EMBER_ZCL_METERING_ALARM_CODE_FREQUENCY_TOO_LOW_L3 = 0x1D, - EMBER_ZCL_METERING_ALARM_CODE_FREQUENCY_TOO_HIGH_L3 = 0x1E, - EMBER_ZCL_METERING_ALARM_CODE_GROUND_FAULT = 0x1F, - EMBER_ZCL_METERING_ALARM_CODE_ELECTRIC_TAMPER_DETECT = 0x20, - EMBER_ZCL_METERING_ALARM_CODE_INCORRECT_POLARITY = 0x21, - EMBER_ZCL_METERING_ALARM_CODE_CURRENT_NO_VOLTAGE = 0x22, - EMBER_ZCL_METERING_ALARM_CODE_UNDER_VOLTAGE = 0x23, - EMBER_ZCL_METERING_ALARM_CODE_OVER_VOLTAGE = 0x24, - EMBER_ZCL_METERING_ALARM_CODE_NORMAL_VOLTAGE = 0x25, - EMBER_ZCL_METERING_ALARM_CODE_P_F_BELOW_THRESHOLD = 0x26, - EMBER_ZCL_METERING_ALARM_CODE_P_F_ABOVE_THRESHOLD = 0x27, - EMBER_ZCL_METERING_ALARM_CODE_TERMINAL_COVER_REMOVED = 0x28, - EMBER_ZCL_METERING_ALARM_CODE_TERMINAL_COVER_CLOSED = 0x29, - EMBER_ZCL_METERING_ALARM_CODE_BURST_DETECT = 0x30, - EMBER_ZCL_METERING_ALARM_CODE_PRESSURE_TOO_LOW = 0x31, - EMBER_ZCL_METERING_ALARM_CODE_PRESSURE_TOO_HIGH = 0x32, - EMBER_ZCL_METERING_ALARM_CODE_FLOW_SENSOR_COMMUNICATION_ERROR = 0x33, - EMBER_ZCL_METERING_ALARM_CODE_FLOW_SENSOR_MEASUREMENT_FAULT = 0x34, - EMBER_ZCL_METERING_ALARM_CODE_FLOW_SENSOR_REVERSE_FLOW = 0x35, - EMBER_ZCL_METERING_ALARM_CODE_FLOW_SENSOR_AIR_DETECT = 0x36, - EMBER_ZCL_METERING_ALARM_CODE_PIPE_EMPTY = 0x37, - EMBER_ZCL_METERING_ALARM_CODE_INLET_TEMPERATURE_SENSOR_FAULT = 0x50, - EMBER_ZCL_METERING_ALARM_CODE_OUTLET_TEMPERATURE_SENSOR_FAULT = 0x51, - EMBER_ZCL_METERING_ALARM_CODE_TILT_TAMPER = 0x60, - EMBER_ZCL_METERING_ALARM_CODE_BATTERY_COVER_REMOVED = 0x61, - EMBER_ZCL_METERING_ALARM_CODE_BATTERY_COVER_CLOSED = 0x62, - EMBER_ZCL_METERING_ALARM_CODE_EXCESS_FLOW = 0x63, - EMBER_ZCL_METERING_ALARM_CODE_TILT_TAMPER_ENDED = 0x64, - EMBER_ZCL_METERING_ALARM_CODE_MEASUREMENT_SYSTEM_ERROR = 0x70, - EMBER_ZCL_METERING_ALARM_CODE_WATCHDOG_ERROR = 0x71, - EMBER_ZCL_METERING_ALARM_CODE_SUPPLY_DISCONNECT_FAILURE = 0x72, - EMBER_ZCL_METERING_ALARM_CODE_SUPPLY_CONNECT_FAILURE = 0x73, - EMBER_ZCL_METERING_ALARM_CODE_MEASURMENT_SOFTWARE_CHANGED = 0x74, - EMBER_ZCL_METERING_ALARM_CODE_DST_ENABLED = 0x75, - EMBER_ZCL_METERING_ALARM_CODE_DST_DISABLED = 0x76, - EMBER_ZCL_METERING_ALARM_CODE_CLOCK_ADJ_BACKWARD = 0x77, - EMBER_ZCL_METERING_ALARM_CODE_CLOCK_ADJ_FORWARD = 0x78, - EMBER_ZCL_METERING_ALARM_CODE_CLOCK_INVALID = 0x79, - EMBER_ZCL_METERING_ALARM_CODE_COMMUNICATION_ERROR_HAN = 0x7A, - EMBER_ZCL_METERING_ALARM_CODE_COMMUNICATION_OK_H_AN = 0x7B, - EMBER_ZCL_METERING_ALARM_CODE_METER_FRAUD_ATTEMPT = 0x7C, - EMBER_ZCL_METERING_ALARM_CODE_POWER_LOSS = 0x7D, - EMBER_ZCL_METERING_ALARM_CODE_UNUSUAL_HAN_TRAFFIC = 0x7E, - EMBER_ZCL_METERING_ALARM_CODE_UNEXPECTED_CLOCK_CHANGE = 0x7F, - EMBER_ZCL_METERING_ALARM_CODE_COMMS_USING_UNAUTHENTICATED_COMPONENT = 0x80, - EMBER_ZCL_METERING_ALARM_CODE_ERROR_REG_CLEAR = 0x81, - EMBER_ZCL_METERING_ALARM_CODE_ALARM_REG_CLEAR = 0x82, - EMBER_ZCL_METERING_ALARM_CODE_UNEXPECTED_HW_RESET = 0x83, - EMBER_ZCL_METERING_ALARM_CODE_UNEXPECTED_PROGRAM_EXECUTION = 0x84, - EMBER_ZCL_METERING_ALARM_CODE_EVENT_LOG_CLEARED = 0x85, - EMBER_ZCL_METERING_ALARM_CODE_LIMIT_THRESHOLD_EXCEEDED = 0x86, - EMBER_ZCL_METERING_ALARM_CODE_LIMIT_THRESHOLD_OK = 0x87, - EMBER_ZCL_METERING_ALARM_CODE_LIMIT_THRESHOLD_CHANGED = 0x88, - EMBER_ZCL_METERING_ALARM_CODE_MAXIMUM_DEMAND_EXCEEDED = 0x89, - EMBER_ZCL_METERING_ALARM_CODE_PROFILE_CLEARED = 0x8A, - EMBER_ZCL_METERING_ALARM_CODE_SAMPLING_BUFFERCLEARED = 0x8B, - EMBER_ZCL_METERING_ALARM_CODE_BATTERY_WARNING = 0x8C, - EMBER_ZCL_METERING_ALARM_CODE_WRONG_SIGNATURE = 0x8D, - EMBER_ZCL_METERING_ALARM_CODE_NO_SIGNATURE = 0x8E, - EMBER_ZCL_METERING_ALARM_CODE_UNAUTHORISED_ACTIONFROM_HAN = 0x8F, - EMBER_ZCL_METERING_ALARM_CODE_FAST_POLLING_START = 0x90, - EMBER_ZCL_METERING_ALARM_CODE_FAST_POLLING_END = 0x91, - EMBER_ZCL_METERING_ALARM_CODE_METER_REPORTING_INTERVAL_CHANGED = 0x92, - EMBER_ZCL_METERING_ALARM_CODE_DISCONNECT_DUETO_LOAD_LIMIT = 0x93, - EMBER_ZCL_METERING_ALARM_CODE_METER_SUPPLY_STATUS_REGISTER_CHANGED = 0x94, - EMBER_ZCL_METERING_ALARM_CODE_METER_ALARM_STATUS_REGISTER_CHANGED = 0x95, - EMBER_ZCL_METERING_ALARM_CODE_EXTENDED_METER_ALARM_STATUS_REGISTER_CHANGED = 0x96, - EMBER_ZCL_METERING_ALARM_CODE_MANUFACTURER_SPECIFIC_A = 0xB0, - EMBER_ZCL_METERING_ALARM_CODE_MANUFACTURER_SPECIFIC_B = 0xB1, - EMBER_ZCL_METERING_ALARM_CODE_MANUFACTURER_SPECIFIC_C = 0xB2, - EMBER_ZCL_METERING_ALARM_CODE_MANUFACTURER_SPECIFIC_D = 0xB3, - EMBER_ZCL_METERING_ALARM_CODE_MANUFACTURER_SPECIFIC_E = 0xB4, - EMBER_ZCL_METERING_ALARM_CODE_MANUFACTURER_SPECIFIC_F = 0xB5, - EMBER_ZCL_METERING_ALARM_CODE_MANUFACTURER_SPECIFIC_G = 0xB6, - EMBER_ZCL_METERING_ALARM_CODE_MANUFACTURER_SPECIFIC_H = 0xB7, - EMBER_ZCL_METERING_ALARM_CODE_MANUFACTURER_SPECIFIC_I = 0xB8, -} EmberAfMeteringAlarmCode; - -typedef enum -{ - EMBER_ZCL_METERING_BLOCK_ENUMERATIONS_NO_BLOCKS_IN_USE = 0x00, - EMBER_ZCL_METERING_BLOCK_ENUMERATIONS_BLOCK1 = 0x01, - EMBER_ZCL_METERING_BLOCK_ENUMERATIONS_BLOCK2 = 0x02, - EMBER_ZCL_METERING_BLOCK_ENUMERATIONS_BLOCK3 = 0x03, - EMBER_ZCL_METERING_BLOCK_ENUMERATIONS_BLOCK4 = 0x04, - EMBER_ZCL_METERING_BLOCK_ENUMERATIONS_BLOCK5 = 0x05, - EMBER_ZCL_METERING_BLOCK_ENUMERATIONS_BLOCK6 = 0x06, - EMBER_ZCL_METERING_BLOCK_ENUMERATIONS_BLOCK7 = 0x07, - EMBER_ZCL_METERING_BLOCK_ENUMERATIONS_BLOCK8 = 0x08, - EMBER_ZCL_METERING_BLOCK_ENUMERATIONS_BLOCK9 = 0x09, - EMBER_ZCL_METERING_BLOCK_ENUMERATIONS_BLOCK10 = 0x0A, - EMBER_ZCL_METERING_BLOCK_ENUMERATIONS_BLOCK11 = 0x0B, - EMBER_ZCL_METERING_BLOCK_ENUMERATIONS_BLOCK12 = 0x0C, - EMBER_ZCL_METERING_BLOCK_ENUMERATIONS_BLOCK13 = 0x0D, - EMBER_ZCL_METERING_BLOCK_ENUMERATIONS_BLOCK14 = 0x0E, - EMBER_ZCL_METERING_BLOCK_ENUMERATIONS_BLOCK15 = 0x0F, - EMBER_ZCL_METERING_BLOCK_ENUMERATIONS_BLOCK16 = 0x10, -} EmberAfMeteringBlockEnumerations; - -typedef enum -{ - EMBER_ZCL_METERING_CONSUMPTION_STATUS_LOW_ENERGY_USAGE = 0x00, - EMBER_ZCL_METERING_CONSUMPTION_STATUS_MEDIUM_ENERGY_USAGE = 0x01, - EMBER_ZCL_METERING_CONSUMPTION_STATUS_HIGH_ENERGY_USAGE = 0x02, -} EmberAfMeteringConsumptionStatus; - -typedef enum -{ - EMBER_ZCL_METERING_DEVICE_TYPE_ELECTRIC_METERING = 0x00, - EMBER_ZCL_METERING_DEVICE_TYPE_GAS_METERING = 0x01, - EMBER_ZCL_METERING_DEVICE_TYPE_WATER_METERING = 0x02, - EMBER_ZCL_METERING_DEVICE_TYPE_THERMAL_METERING = 0x03, - EMBER_ZCL_METERING_DEVICE_TYPE_PRESSURE_METERING = 0x04, - EMBER_ZCL_METERING_DEVICE_TYPE_HEAT_METERING = 0x05, - EMBER_ZCL_METERING_DEVICE_TYPE_COOLING_METERING = 0x06, - EMBER_ZCL_METERING_DEVICE_TYPE_ELECTRIC_VEHICLE_CHARGING_METERING = 0x07, - EMBER_ZCL_METERING_DEVICE_TYPE_PV_GENERATION_METERING = 0x08, - EMBER_ZCL_METERING_DEVICE_TYPE_WIND_TURBINE_GENERATION_METERING = 0x09, - EMBER_ZCL_METERING_DEVICE_TYPE_WATER_TURBINE_GENERATION_METERING = 0x0A, - EMBER_ZCL_METERING_DEVICE_TYPE_MICRO_GENERATION_METERING = 0x0B, - EMBER_ZCL_METERING_DEVICE_TYPE_SOLAR_HOT_WATER_GENERATION_METERING = 0x0C, - EMBER_ZCL_METERING_DEVICE_TYPE_ELECTRIC_METERING_ELEMENT1 = 0x0D, - EMBER_ZCL_METERING_DEVICE_TYPE_ELECTRIC_METERING_ELEMENT2 = 0x0E, - EMBER_ZCL_METERING_DEVICE_TYPE_ELECTRIC_METERING_ELEMENT3 = 0x0F, - EMBER_ZCL_METERING_DEVICE_TYPE_MIRRORED_ELECTRIC_METERING = 0x7F, - EMBER_ZCL_METERING_DEVICE_TYPE_MIRRORED_GAS_METERING = 0x80, - EMBER_ZCL_METERING_DEVICE_TYPE_MIRRORED_WATER_METERING = 0x81, - EMBER_ZCL_METERING_DEVICE_TYPE_MIRRORED_THERMAL_METERING = 0x82, - EMBER_ZCL_METERING_DEVICE_TYPE_MIRRORED_PRESSURE_METERING = 0x83, - EMBER_ZCL_METERING_DEVICE_TYPE_MIRRORED_HEAT_METERING = 0x84, - EMBER_ZCL_METERING_DEVICE_TYPE_MIRRORED_COOLING_METERING = 0x85, - EMBER_ZCL_METERING_DEVICE_TYPE_MIRRORED_ELECTRIC_VEHICLE_CHARGING_METERING = 0x86, - EMBER_ZCL_METERING_DEVICE_TYPE_MIRRORED_PV_GENERATION_METERING = 0x87, - EMBER_ZCL_METERING_DEVICE_TYPE_MIRRORED_WIND_TURBINE_GENERATION_METERING = 0x88, - EMBER_ZCL_METERING_DEVICE_TYPE_MIRRORED_WATER_TURBINE_GENERATION_METERING = 0x89, - EMBER_ZCL_METERING_DEVICE_TYPE_MIRRORED_MICRO_GENERATION_METERING = 0x8A, - EMBER_ZCL_METERING_DEVICE_TYPE_MIRRORED_SOLAR_HOT_WATER_GENERATION_METERING = 0x8B, - EMBER_ZCL_METERING_DEVICE_TYPE_MIRRORED_ELECTRIC_METERING_ELEMENT1 = 0x8C, - EMBER_ZCL_METERING_DEVICE_TYPE_MIRRORED_ELECTRIC_METERING_ELEMENT2 = 0x8D, - EMBER_ZCL_METERING_DEVICE_TYPE_MIRRORED_ELECTRIC_METERING_ELEMENT3 = 0x8E, - EMBER_ZCL_METERING_DEVICE_TYPE_UNDEFINED_MIRROR_METER = 0xFE, -} EmberAfMeteringDeviceType; - -typedef enum -{ - EMBER_ZCL_METERING_SUPPLY_STATUS_SUPPLY_OFF = 0x00, - EMBER_ZCL_METERING_SUPPLY_STATUS_SUPPLY_OFF_ARMED = 0x01, - EMBER_ZCL_METERING_SUPPLY_STATUS_SUPPLY_ON = 0x02, -} EmberAfMeteringSupplyStatus; - -typedef enum -{ - EMBER_ZCL_METERING_TEMPERATURE_UNIT_OF_MEASURE_KELVIN = 0x00, - EMBER_ZCL_METERING_TEMPERATURE_UNIT_OF_MEASURE_CELSIUS = 0x01, - EMBER_ZCL_METERING_TEMPERATURE_UNIT_OF_MEASURE_FAHRENHEIT = 0x02, - EMBER_ZCL_METERING_TEMPERATURE_UNIT_OF_MEASURE_KELVIN_BCD = 0x80, - EMBER_ZCL_METERING_TEMPERATURE_UNIT_OF_MEASURE_CELSIUS_BCD = 0x81, - EMBER_ZCL_METERING_TEMPERATURE_UNIT_OF_MEASURE_FAHRENHEIT_BCD = 0x82, -} EmberAfMeteringTemperatureUnitOfMeasure; - -typedef enum -{ - EMBER_ZCL_MOVE_MODE_UP = 0x00, - EMBER_ZCL_MOVE_MODE_DOWN = 0x01, -} EmberAfMoveMode; - -typedef enum -{ - EMBER_ZCL_NOTIFICATION_SCHEME_NO_NOTIFICATION_SCHEME_DEFINED = 0x00, - EMBER_ZCL_NOTIFICATION_SCHEME_PREDEFINED_NOTIFICATION_SCHEME_A = 0x01, - EMBER_ZCL_NOTIFICATION_SCHEME_PREDEFINED_NOTIFICATION_SCHEME_B = 0x02, -} EmberAfNotificationScheme; - -typedef enum -{ - EMBER_ZCL_OCCUPANCY_SENSOR_TYPE_PIR = 0x00, - EMBER_ZCL_OCCUPANCY_SENSOR_TYPE_ULTRASONIC = 0x01, - EMBER_ZCL_OCCUPANCY_SENSOR_TYPE_PIR_AND_ULTRASONIC = 0x02, - EMBER_ZCL_OCCUPANCY_SENSOR_TYPE_PHYSICAL_CONTACT = 0x03, -} EmberAfOccupancySensorType; - -typedef enum -{ - EMBER_ZCL_ON_OFF_DELAYED_ALL_OFF_EFFECT_VARIANT_FADE_TO_OFF_IN_0P8_SECONDS = 0x00, - EMBER_ZCL_ON_OFF_DELAYED_ALL_OFF_EFFECT_VARIANT_NO_FADE = 0x01, - EMBER_ZCL_ON_OFF_DELAYED_ALL_OFF_EFFECT_VARIANT_50_PERCENT_DIM_DOWN_IN_0P8_SECONDS_THEN_FADE_TO_OFF_IN_12_SECONDS = 0x02, -} EmberAfOnOffDelayedAllOffEffectVariant; - -typedef enum -{ - EMBER_ZCL_ON_OFF_DYING_LIGHT_EFFECT_VARIANT_20_PERCENTER_DIM_UP_IN_0P5_SECONDS_THEN_FADE_TO_OFF_IN_1_SECOND = 0x00, -} EmberAfOnOffDyingLightEffectVariant; - -typedef enum -{ - EMBER_ZCL_ON_OFF_EFFECT_IDENTIFIER_DELAYED_ALL_OFF = 0x00, - EMBER_ZCL_ON_OFF_EFFECT_IDENTIFIER_DYING_LIGHT = 0x01, -} EmberAfOnOffEffectIdentifier; - -typedef enum -{ - EMBER_ZCL_OPERATING_MODE_NORMAL = 0x00, - EMBER_ZCL_OPERATING_MODE_CONFIGURE = 0x01, -} EmberAfOperatingMode; - -typedef enum -{ - EMBER_ZCL_ORIGINATING_DEVICE_ENERGY_SERVICE_INTERFACE = 0x00, - EMBER_ZCL_ORIGINATING_DEVICE_METER = 0x01, - EMBER_ZCL_ORIGINATING_DEVICE_IN_HOME_DISPLAY_DEVICE = 0x02, -} EmberAfOriginatingDevice; - -typedef enum -{ - EMBER_ZCL_PASSWORD_TYPE_PASSWORD1_SERVICE_MENU_ACCESS = 0x01, - EMBER_ZCL_PASSWORD_TYPE_PASSWORD2_CONSUMER_MENU_ACCESS = 0x02, - EMBER_ZCL_PASSWORD_TYPE_PASSWORD3 = 0x03, - EMBER_ZCL_PASSWORD_TYPE_PASSWORD4 = 0x04, -} EmberAfPasswordType; - -typedef enum -{ - EMBER_ZCL_PAYMENT_DISCOUNT_DURATION_CURRENT_BILLING_PERIOD = 0x00, - EMBER_ZCL_PAYMENT_DISCOUNT_DURATION_CURRENT_CONSOLIDATED_BILL = 0x01, - EMBER_ZCL_PAYMENT_DISCOUNT_DURATION_ONE_MONTH = 0x02, - EMBER_ZCL_PAYMENT_DISCOUNT_DURATION_ONE_QUARTER = 0x03, - EMBER_ZCL_PAYMENT_DISCOUNT_DURATION_ONE_YEAR = 0x04, -} EmberAfPaymentDiscountDuration; - -typedef enum -{ - EMBER_ZCL_PHYSICAL_ENVIRONMENT_UNSPECIFIED = 0x00, - EMBER_ZCL_PHYSICAL_ENVIRONMENT_FIRST_PROFILE_SPECIFIED_VALUE = 0x01, - EMBER_ZCL_PHYSICAL_ENVIRONMENT_LAST_PROFILE_SPECIFIED_VALUE = 0x7F, - EMBER_ZCL_PHYSICAL_ENVIRONMENT_UNKNOWN = 0xFF, -} EmberAfPhysicalEnvironment; - -typedef enum -{ - EMBER_ZCL_POWER_PROFILE_STATE_POWER_PROFILE_WAITING_TO_START = 0x01, - EMBER_ZCL_POWER_PROFILE_STATE_POWER_PROFILE_STARTED = 0x02, - EMBER_ZCL_POWER_PROFILE_STATE_ENERGY_PHASE_RUNNING = 0x03, - EMBER_ZCL_POWER_PROFILE_STATE_ENERGY_PHASE_ENDED = 0x04, - EMBER_ZCL_POWER_PROFILE_STATE_ENERGY_PHASE_WAITING_TO_START = 0x05, - EMBER_ZCL_POWER_PROFILE_STATE_ENERGY_PHASE_STARTED = 0x06, - EMBER_ZCL_POWER_PROFILE_STATE_POWER_PROFILE_ENDED = 0x07, - EMBER_ZCL_POWER_PROFILE_STATE_PROFILE_READY_FOR_SCHEDULING = 0x08, - EMBER_ZCL_POWER_PROFILE_STATE_POWER_PROFILE_SCHEDULED = 0x09, -} EmberAfPowerProfileState; - -typedef enum -{ - EMBER_ZCL_POWER_SOURCE_UNKNOWN = 0x00, - EMBER_ZCL_POWER_SOURCE_SINGLE_PHASE_MAINS = 0x01, - EMBER_ZCL_POWER_SOURCE_THREE_PHASE_MAINS = 0x02, - EMBER_ZCL_POWER_SOURCE_BATTERY = 0x03, - EMBER_ZCL_POWER_SOURCE_DC_SOURCE = 0x04, - EMBER_ZCL_POWER_SOURCE_EMERGENCY_MAINS_CONSTANT_POWER = 0x05, - EMBER_ZCL_POWER_SOURCE_EMERGENCY_MAINS_TRANSFER_SWITCH = 0x06, - EMBER_ZCL_POWER_SOURCE_BATTERY_BACKUP = 0x80, -} EmberAfPowerSource; - -typedef enum -{ - EMBER_ZCL_PRE_PAY_GENERIC_ALARM_GROUP_LOW_CREDIT = 0x00, - EMBER_ZCL_PRE_PAY_GENERIC_ALARM_GROUP_NO_CREDIT = 0x01, - EMBER_ZCL_PRE_PAY_GENERIC_ALARM_GROUP_CREDIT_EXHAUSTED = 0x02, - EMBER_ZCL_PRE_PAY_GENERIC_ALARM_GROUP_EMERGENCY_CREDIT_ENABLED = 0x03, - EMBER_ZCL_PRE_PAY_GENERIC_ALARM_GROUP_EMERGENCY_CREDIT_EXHAUSTED = 0x04, - EMBER_ZCL_PRE_PAY_GENERIC_ALARM_GROUP_IHD_LOW_CREDIT_WARNING = 0x05, - EMBER_ZCL_PRE_PAY_GENERIC_ALARM_GROUP_EVENT_LOG_CLEARED = 0x06, -} EmberAfPrePayGenericAlarmGroup; - -typedef enum -{ - EMBER_ZCL_PREPAY_EVENT_ALARM_GROUP_PHYSICAL_ATTACK_ON_THE_PREPAY_METER = 0x20, - EMBER_ZCL_PREPAY_EVENT_ALARM_GROUP_ELECTRONIC_ATTACK_ON_THE_PREPAY_METER = 0x21, - EMBER_ZCL_PREPAY_EVENT_ALARM_GROUP_DISCOUNT_APPLIED = 0x22, - EMBER_ZCL_PREPAY_EVENT_ALARM_GROUP_CREDIT_ADJUSTMENT = 0x23, - EMBER_ZCL_PREPAY_EVENT_ALARM_GROUP_CREDIT_ADJUSTMENT_FAIL = 0x24, - EMBER_ZCL_PREPAY_EVENT_ALARM_GROUP_DEBT_ADJUSTMENT = 0x25, - EMBER_ZCL_PREPAY_EVENT_ALARM_GROUP_DEBT_ADJUSTMENT_FAIL = 0x26, - EMBER_ZCL_PREPAY_EVENT_ALARM_GROUP_MODE_CHANGE = 0x27, - EMBER_ZCL_PREPAY_EVENT_ALARM_GROUP_TOPUP_CODE_ERROR = 0x28, - EMBER_ZCL_PREPAY_EVENT_ALARM_GROUP_TOPUP_ALREADY_USED = 0x29, - EMBER_ZCL_PREPAY_EVENT_ALARM_GROUP_TOPUP_CODE_INVALID = 0x2A, - EMBER_ZCL_PREPAY_EVENT_ALARM_GROUP_FRIENDLY_CREDIT_IN_USE = 0x2B, - EMBER_ZCL_PREPAY_EVENT_ALARM_GROUP_FRIENDLY_CREDIT_PERIOD_END_WARNING = 0x2C, - EMBER_ZCL_PREPAY_EVENT_ALARM_GROUP_FRIENDLY_CREDIT_PERIOD_END = 0x2D, - EMBER_ZCL_PREPAY_EVENT_ALARM_GROUP_ERROR_REG_CLEAR = 0x30, - EMBER_ZCL_PREPAY_EVENT_ALARM_GROUP_ALARM_REG_CLEAR = 0x31, - EMBER_ZCL_PREPAY_EVENT_ALARM_GROUP_PREPAY_CLUSTER_NOT_FOUND = 0x32, - EMBER_ZCL_PREPAY_EVENT_ALARM_GROUP_MODE_CREDIT2_PREPAY = 0x41, - EMBER_ZCL_PREPAY_EVENT_ALARM_GROUP_MODE_PREPAY2_CREDIT = 0x42, - EMBER_ZCL_PREPAY_EVENT_ALARM_GROUP_MODE_DEFAULT = 0x43, -} EmberAfPrepayEventAlarmGroup; - -typedef enum -{ - EMBER_ZCL_PREPAY_SNAPSHOT_PAYLOAD_TYPE_DEBT_CREDIT_STATUS = 0x00, - EMBER_ZCL_PREPAY_SNAPSHOT_PAYLOAD_TYPE_NOT_USED = 0xFF, -} EmberAfPrepaySnapshotPayloadType; - -typedef enum -{ - EMBER_ZCL_PREPAY_SWITCH_ALARM_GROUP_SUPPLY_ON = 0x10, - EMBER_ZCL_PREPAY_SWITCH_ALARM_GROUP_SUPPLY_ARM = 0x11, - EMBER_ZCL_PREPAY_SWITCH_ALARM_GROUP_SUPPLY_OFF = 0x12, - EMBER_ZCL_PREPAY_SWITCH_ALARM_GROUP_DISCONNECTION_FAILURE = 0x13, - EMBER_ZCL_PREPAY_SWITCH_ALARM_GROUP_DISCONNECTED_DUE_TO_TAMPER_DETECTED = 0x14, - EMBER_ZCL_PREPAY_SWITCH_ALARM_GROUP_DISCONNECTED_DUE_TO_CUT_OFF_VALUE = 0x15, - EMBER_ZCL_PREPAY_SWITCH_ALARM_GROUP_REMOTE_DISCONNECTED = 0x16, -} EmberAfPrepaySwitchAlarmGroup; - -typedef enum -{ - EMBER_ZCL_PRICE_CONTROL_ACKNOWLEDGEMENT_NOT_REQUIRED = 0x00, - EMBER_ZCL_PRICE_CONTROL_ACKNOWLEDGEMENT_REQUIRED = 0x01, -} EmberAfPriceControlAcknowledgement; - -typedef enum -{ - EMBER_ZCL_PRICE_TIER_NO_TIER_RELATED = 0x00, - EMBER_ZCL_PRICE_TIER_TIER1_PRICE_LABEL = 0x01, - EMBER_ZCL_PRICE_TIER_TIER2_PRICE_LABEL = 0x02, - EMBER_ZCL_PRICE_TIER_TIER3_PRICE_LABEL = 0x03, - EMBER_ZCL_PRICE_TIER_TIER4_PRICE_LABEL = 0x04, - EMBER_ZCL_PRICE_TIER_TIER5_PRICE_LABEL = 0x05, - EMBER_ZCL_PRICE_TIER_TIER6_PRICE_LABEL = 0x06, - EMBER_ZCL_PRICE_TIER_TIER7_PRICE_LABEL = 0x07, - EMBER_ZCL_PRICE_TIER_TIER8_PRICE_LABEL = 0x08, - EMBER_ZCL_PRICE_TIER_TIER9_PRICE_LABEL = 0x09, - EMBER_ZCL_PRICE_TIER_TIER10_PRICE_LABEL = 0x0A, - EMBER_ZCL_PRICE_TIER_TIER11_PRICE_LABEL = 0x0B, - EMBER_ZCL_PRICE_TIER_TIER12_PRICE_LABEL = 0x0C, - EMBER_ZCL_PRICE_TIER_TIER13_PRICE_LABEL = 0x0D, - EMBER_ZCL_PRICE_TIER_TIER14_PRICE_LABEL = 0x0E, - EMBER_ZCL_PRICE_TIER_TIER15_PRICE_LABEL = 0x0F, -} EmberAfPriceTier; - -typedef enum -{ - EMBER_ZCL_PRODUCT_CODE_MANUFACTURER_DEFINED = 0x00, - EMBER_ZCL_PRODUCT_CODE_ITERNATIONAL_ARTICLE_NUMBER = 0x01, - EMBER_ZCL_PRODUCT_CODE_GLOBAL_TRADE_ITEM_NUMBER = 0x02, - EMBER_ZCL_PRODUCT_CODE_UNIVERSAL_PRODUCT_CODE = 0x03, - EMBER_ZCL_PRODUCT_CODE_STOCK_KEEPING_UNIT = 0x04, -} EmberAfProductCode; - -typedef enum -{ - EMBER_ZCL_PRODUCT_TYPE_ID_WHITE_GOODS = 0x0000, - EMBER_ZCL_PRODUCT_TYPE_ID_DISHWASHER = 0x5601, - EMBER_ZCL_PRODUCT_TYPE_ID_TUMBLE_DRYER = 0x5602, - EMBER_ZCL_PRODUCT_TYPE_ID_WASHER_DRYER = 0x5603, - EMBER_ZCL_PRODUCT_TYPE_ID_WASHING_MACHINE = 0x5604, - EMBER_ZCL_PRODUCT_TYPE_ID_HOBS = 0x5E03, - EMBER_ZCL_PRODUCT_TYPE_ID_INDUCTION_HOBS = 0x5E09, - EMBER_ZCL_PRODUCT_TYPE_ID_OVEN = 0x5E01, - EMBER_ZCL_PRODUCT_TYPE_ID_ELECTRICAL_OVEN = 0x5E06, - EMBER_ZCL_PRODUCT_TYPE_ID_REFRIGERATOR_FREEZER = 0x6601, -} EmberAfProductTypeId; - -typedef enum -{ - EMBER_ZCL_PROPOSED_SUPPLY_STATUS_RESERVED = 0x00, - EMBER_ZCL_PROPOSED_SUPPLY_STATUS_SUPPLY_OFF_ARMED = 0x01, - EMBER_ZCL_PROPOSED_SUPPLY_STATUS_SUPPLY_ON = 0x02, -} EmberAfProposedSupplyStatus; - -typedef enum -{ - EMBER_ZCL_PUBLISH_CPP_EVENT_CPP_AUTH_PENDING = 0x00, - EMBER_ZCL_PUBLISH_CPP_EVENT_CPP_AUTH_ACCEPTED = 0x01, - EMBER_ZCL_PUBLISH_CPP_EVENT_CPP_AUTH_REJECTED = 0x02, - EMBER_ZCL_PUBLISH_CPP_EVENT_CPP_AUTH_FORCED = 0x03, -} EmberAfPublishCppEventCppAuth; - -typedef enum -{ - EMBER_ZCL_PUMP_CONTROL_MODE_CONSTANT_SPEED = 0x00, - EMBER_ZCL_PUMP_CONTROL_MODE_CONSTANT_PRESSURE = 0x01, - EMBER_ZCL_PUMP_CONTROL_MODE_PROPORTIONAL_PRESSURE = 0x02, - EMBER_ZCL_PUMP_CONTROL_MODE_CONSTANT_FLOW = 0x03, - EMBER_ZCL_PUMP_CONTROL_MODE_CONSTANT_TEMPERATURE = 0x05, - EMBER_ZCL_PUMP_CONTROL_MODE_AUTOMATIC = 0x07, -} EmberAfPumpControlMode; - -typedef enum -{ - EMBER_ZCL_PUMP_OPERATION_MODE_NORMAL = 0x00, - EMBER_ZCL_PUMP_OPERATION_MODE_MINIMUM = 0x01, - EMBER_ZCL_PUMP_OPERATION_MODE_MAXIMUM = 0x02, - EMBER_ZCL_PUMP_OPERATION_MODE_LOCAL = 0x03, -} EmberAfPumpOperationMode; - -typedef enum -{ - EMBER_ZCL_PUSH_HISTORICAL_METERING_DATA_DAY = 0x0040, - EMBER_ZCL_PUSH_HISTORICAL_METERING_DATA_WEEK = 0x0080, - EMBER_ZCL_PUSH_HISTORICAL_METERING_DATA_MONTH = 0x0180, - EMBER_ZCL_PUSH_HISTORICAL_METERING_DATA_YEAR = 0x01C0, -} EmberAfPushHistoricalMeteringData; - -typedef enum -{ - EMBER_ZCL_PUSH_HISTORICAL_PAYMENT_DATA_DAY = 0x0200, - EMBER_ZCL_PUSH_HISTORICAL_PAYMENT_DATA_WEEK = 0x0400, - EMBER_ZCL_PUSH_HISTORICAL_PAYMENT_DATA_MONTH = 0x0C00, - EMBER_ZCL_PUSH_HISTORICAL_PAYMENT_DATA_YEAR = 0x0E00, -} EmberAfPushHistoricalPaymentData; - -typedef enum -{ - EMBER_ZCL_REGISTER_TIER_NO_TIER_RELATED = 0x00, - EMBER_ZCL_REGISTER_TIER_CURRENT_TIER1_SUMMATION_DELIVERED_ATTRIBUTE = 0x01, - EMBER_ZCL_REGISTER_TIER_CURRENT_TIER2_SUMMATION_DELIVERED_ATTRIBUTE = 0x02, - EMBER_ZCL_REGISTER_TIER_CURRENT_TIER3_SUMMATION_DELIVERED_ATTRIBUTE = 0x03, - EMBER_ZCL_REGISTER_TIER_CURRENT_TIER4_SUMMATION_DELIVERED_ATTRIBUTE = 0x04, - EMBER_ZCL_REGISTER_TIER_CURRENT_TIER5_SUMMATION_DELIVERED_ATTRIBUTE = 0x05, - EMBER_ZCL_REGISTER_TIER_CURRENT_TIER6_SUMMATION_DELIVERED_ATTRIBUTE = 0x06, - EMBER_ZCL_REGISTER_TIER_CURRENT_TIER7_SUMMATION_DELIVERED_ATTRIBUTE = 0x07, - EMBER_ZCL_REGISTER_TIER_CURRENT_TIER8_SUMMATION_DELIVERED_ATTRIBUTE = 0x08, - EMBER_ZCL_REGISTER_TIER_CURRENT_TIER9_SUMMATION_DELIVERED_ATTRIBUTE = 0x09, - EMBER_ZCL_REGISTER_TIER_CURRENT_TIER10_SUMMATION_DELIVERED_ATTRIBUTE = 0x0A, - EMBER_ZCL_REGISTER_TIER_CURRENT_TIER11_SUMMATION_DELIVERED_ATTRIBUTE = 0x0B, - EMBER_ZCL_REGISTER_TIER_CURRENT_TIER12_SUMMATION_DELIVERED_ATTRIBUTE = 0x0C, - EMBER_ZCL_REGISTER_TIER_CURRENT_TIER13_SUMMATION_DELIVERED_ATTRIBUTE = 0x0D, - EMBER_ZCL_REGISTER_TIER_CURRENT_TIER14_SUMMATION_DELIVERED_ATTRIBUTE = 0x0E, - EMBER_ZCL_REGISTER_TIER_CURRENT_TIER15_SUMMATION_DELIVERED_ATTRIBUTE = 0x0F, -} EmberAfRegisterTier; - -typedef enum -{ - EMBER_ZCL_RELATIVE_HUMIDITY_DISPLAY_NOT_DISPLAYED = 0x00, - EMBER_ZCL_RELATIVE_HUMIDITY_DISPLAY_DISPLAYED = 0x01, -} EmberAfRelativeHumidityDisplay; - -typedef enum -{ - EMBER_ZCL_RELATIVE_HUMIDITY_MODE_MEASURE_LOCALLY = 0x00, - EMBER_ZCL_RELATIVE_HUMIDITY_MODE_UPDATED_OVER_THE_NETWORK = 0x01, -} EmberAfRelativeHumidityMode; - -typedef enum -{ - EMBER_ZCL_REMOTE_ENABLE_FLAGS_DISABLED = 0x00, - EMBER_ZCL_REMOTE_ENABLE_FLAGS_TEMPORARILY_LOCKED_DISABLED = 0x07, - EMBER_ZCL_REMOTE_ENABLE_FLAGS_ENABLED_REMOTE_CONTROL = 0x0F, - EMBER_ZCL_REMOTE_ENABLE_FLAGS_ENABLED_REMOTE_AND_ENERGY_CONTROL = 0x01, -} EmberAfRemoteEnableFlags; - -typedef enum -{ - EMBER_ZCL_REPAYMENT_DEBT_TYPE_DEBT1 = 0x00, - EMBER_ZCL_REPAYMENT_DEBT_TYPE_DEBT2 = 0x01, - EMBER_ZCL_REPAYMENT_DEBT_TYPE_DEBT3 = 0x02, - EMBER_ZCL_REPAYMENT_DEBT_TYPE_ALL_DEBTS = 0xFF, -} EmberAfRepaymentDebtType; - -typedef enum -{ - EMBER_ZCL_REPORTING_DIRECTION_REPORTED = 0x00, - EMBER_ZCL_REPORTING_DIRECTION_RECEIVED = 0x01, -} EmberAfReportingDirection; - -typedef enum -{ - EMBER_ZCL_RESULT_TYPE_ACCEPTED = 0x00, - EMBER_ZCL_RESULT_TYPE_REJECTED_INVALID_TOP_UP = 0x01, - EMBER_ZCL_RESULT_TYPE_REJECTED_DUPLICATE_TOP_UP = 0x02, - EMBER_ZCL_RESULT_TYPE_REJECTED_ERROR = 0x03, - EMBER_ZCL_RESULT_TYPE_REJECTED_MAX_CREDIT_REACHED = 0x04, - EMBER_ZCL_RESULT_TYPE_REJECTED_KEYPAD_LOCK = 0x05, - EMBER_ZCL_RESULT_TYPE_REJECTED_TOP_UP_VALUE_TOO_LARGE = 0x06, - EMBER_ZCL_RESULT_TYPE_ACCEPTED_SUPPLY_ENABLED = 0x10, - EMBER_ZCL_RESULT_TYPE_ACCEPTED_SUPPLY_DISABLED = 0x11, - EMBER_ZCL_RESULT_TYPE_ACCEPTED_SUPPLY_ARMED = 0x12, -} EmberAfResultType; - -typedef enum -{ - EMBER_ZCL_SAMPLE_TYPE_CONSUMPTION_DELIVERED = 0x00, -} EmberAfSampleType; - -typedef enum -{ - EMBER_ZCL_SATURATION_MOVE_MODE_STOP = 0x00, - EMBER_ZCL_SATURATION_MOVE_MODE_UP = 0x01, - EMBER_ZCL_SATURATION_MOVE_MODE_DOWN = 0x03, -} EmberAfSaturationMoveMode; - -typedef enum -{ - EMBER_ZCL_SATURATION_STEP_MODE_UP = 0x01, - EMBER_ZCL_SATURATION_STEP_MODE_DOWN = 0x03, -} EmberAfSaturationStepMode; - -typedef enum -{ - EMBER_ZCL_SENSING_LIGHT_SENSOR_TYPE_PHOTODIODE = 0x00, - EMBER_ZCL_SENSING_LIGHT_SENSOR_TYPE_CMOS = 0x01, -} EmberAfSensingLightSensorType; - -typedef enum -{ - EMBER_ZCL_SETPOINT_ADJUST_MODE_HEAT_SETPOINT = 0x00, - EMBER_ZCL_SETPOINT_ADJUST_MODE_COOL_SETPOINT = 0x01, - EMBER_ZCL_SETPOINT_ADJUST_MODE_HEAT_AND_COOL_SETPOINTS = 0x02, -} EmberAfSetpointAdjustMode; - -typedef enum -{ - EMBER_ZCL_SIGNATURE_TYPE_RESERVED = 0x00, - EMBER_ZCL_SIGNATURE_TYPE_ECDSA = 0x01, -} EmberAfSignatureType; - -typedef enum -{ - EMBER_ZCL_SNAPSHOT_CONFIRMATION_ACCEPTED = 0x00, - EMBER_ZCL_SNAPSHOT_CONFIRMATION_SNAPSHOT_CAUSE_NOT_SUPPORTED = 0x01, -} EmberAfSnapshotConfirmation; - -typedef enum -{ - EMBER_ZCL_SNAPSHOT_PAYLOAD_TYPE_TOU_INFORMATION_SET_DELIVERED_REGISTERS = 0x00, - EMBER_ZCL_SNAPSHOT_PAYLOAD_TYPE_TOU_INFORMATION_SET_RECEIVED_REGISTERS = 0x01, - EMBER_ZCL_SNAPSHOT_PAYLOAD_TYPE_BLOCK_TIER_INFORMATION_SET_DELIVERED = 0x02, - EMBER_ZCL_SNAPSHOT_PAYLOAD_TYPE_BLOCK_TIER_INFORMATION_SET_RECEIVED = 0x03, - EMBER_ZCL_SNAPSHOT_PAYLOAD_TYPE_TOU_INFORMATION_SET_DELIVERED_REGISTERS_NO_BILLING = 0x04, - EMBER_ZCL_SNAPSHOT_PAYLOAD_TYPE_TOU_INFORMATION_SET_RECEIVED_REGISTER_NO_BILLINGS = 0x05, - EMBER_ZCL_SNAPSHOT_PAYLOAD_TYPE_BLOCK_TIER_INFORMATION_SET_DELIVERED_NO_BILLING = 0x06, - EMBER_ZCL_SNAPSHOT_PAYLOAD_TYPE_BLOCK_TIER_INFORMATION_SET_RECEIVED_NO_BILLING = 0x07, - EMBER_ZCL_SNAPSHOT_PAYLOAD_TYPE_DATA_UNAVAILABLE = 0x80, -} EmberAfSnapshotPayloadType; - -typedef enum -{ - EMBER_ZCL_SNAPSHOT_SCHEDULE_CONFIRMATION_ACCEPTED = 0x00, - EMBER_ZCL_SNAPSHOT_SCHEDULE_CONFIRMATION_SNAPSHOT_TYPE_NOT_SUPPORTED = 0x01, - EMBER_ZCL_SNAPSHOT_SCHEDULE_CONFIRMATION_SNAPSHOT_CAUSE_NOT_SUPPORTED = 0x02, - EMBER_ZCL_SNAPSHOT_SCHEDULE_CONFIRMATION_SNAPSHOT_SCHEDULE_NOT_CURRENTLY_AVAILABLE = 0x03, - EMBER_ZCL_SNAPSHOT_SCHEDULE_CONFIRMATION_SNAPSHOT_SCHEDULES_NOT_SUPPORTED_BY_DEVICE = 0x04, - EMBER_ZCL_SNAPSHOT_SCHEDULE_CONFIRMATION_INSUFFICIENT_SPACE_FOR_SNAPSHOT_SCHEDULE = 0x05, -} EmberAfSnapshotScheduleConfirmation; - -typedef enum -{ - EMBER_ZCL_SQUAWK_LEVEL_LOW_LEVEL = 0x00, - EMBER_ZCL_SQUAWK_LEVEL_MEDIUM_LEVEL = 0x01, - EMBER_ZCL_SQUAWK_LEVEL_VERY_HIGH_LEVEL = 0x02, -} EmberAfSquawkLevel; - -typedef enum -{ - EMBER_ZCL_SQUAWK_MODE_SYSTEM_IS_ARMED = 0x00, - EMBER_ZCL_SQUAWK_MODE_SYSTEM_IS_DISARMED = 0x01, -} EmberAfSquawkMode; - -typedef enum -{ - EMBER_ZCL_SQUAWK_STOBE_NO_STROBE = 0x00, - EMBER_ZCL_SQUAWK_STOBE_USE_STROBE = 0x01, -} EmberAfSquawkStobe; - -typedef enum -{ - EMBER_ZCL_START_OF_WEEK_SUNDAY = 0x00, - EMBER_ZCL_START_OF_WEEK_MONDAY = 0x01, - EMBER_ZCL_START_OF_WEEK_TUESDAY = 0x02, - EMBER_ZCL_START_OF_WEEK_WEDNESDAY = 0x03, - EMBER_ZCL_START_OF_WEEK_THURSDAY = 0x04, - EMBER_ZCL_START_OF_WEEK_FRIDAY = 0x05, - EMBER_ZCL_START_OF_WEEK_SATURDAY = 0x06, -} EmberAfStartOfWeek; - -typedef enum -{ - EMBER_ZCL_START_UP_ON_OFF_VALUE_SET_TO_OFF = 0x00, - EMBER_ZCL_START_UP_ON_OFF_VALUE_SET_TO_ON = 0x01, - EMBER_ZCL_START_UP_ON_OFF_VALUE_SET_TO_TOGGLE = 0x02, - EMBER_ZCL_START_UP_ON_OFF_VALUE_SET_TO_PREVIOUS = 0xFF, -} EmberAfStartUpOnOffValue; - -typedef enum -{ - EMBER_ZCL_STATUS_SUCCESS = 0x00, - EMBER_ZCL_STATUS_FAILURE = 0x01, - EMBER_ZCL_STATUS_REQUEST_DENIED = 0x70, - EMBER_ZCL_STATUS_MULTIPLE_REQUEST_NOT_ALLOWED = 0x71, - EMBER_ZCL_STATUS_INDICATION_REDIRECTION_TO_AP = 0x72, - EMBER_ZCL_STATUS_PREFERENCE_DENIED = 0x73, - EMBER_ZCL_STATUS_PREFERENCE_IGNORED = 0x74, - EMBER_ZCL_STATUS_NOT_AUTHORIZED = 0x7E, - EMBER_ZCL_STATUS_RESERVED_FIELD_NOT_ZERO = 0x7F, - EMBER_ZCL_STATUS_MALFORMED_COMMAND = 0x80, - EMBER_ZCL_STATUS_UNSUP_CLUSTER_COMMAND = 0x81, - EMBER_ZCL_STATUS_UNSUP_GENERAL_COMMAND = 0x82, - EMBER_ZCL_STATUS_UNSUP_MANUF_CLUSTER_COMMAND = 0x83, - EMBER_ZCL_STATUS_UNSUP_MANUF_GENERAL_COMMAND = 0x84, - EMBER_ZCL_STATUS_INVALID_FIELD = 0x85, - EMBER_ZCL_STATUS_UNSUPPORTED_ATTRIBUTE = 0x86, - EMBER_ZCL_STATUS_INVALID_VALUE = 0x87, - EMBER_ZCL_STATUS_READ_ONLY = 0x88, - EMBER_ZCL_STATUS_INSUFFICIENT_SPACE = 0x89, - EMBER_ZCL_STATUS_DUPLICATE_EXISTS = 0x8A, - EMBER_ZCL_STATUS_NOT_FOUND = 0x8B, - EMBER_ZCL_STATUS_UNREPORTABLE_ATTRIBUTE = 0x8C, - EMBER_ZCL_STATUS_INVALID_DATA_TYPE = 0x8D, - EMBER_ZCL_STATUS_INVALID_SELECTOR = 0x8E, - EMBER_ZCL_STATUS_WRITE_ONLY = 0x8F, - EMBER_ZCL_STATUS_INCONSISTENT_STARTUP_STATE = 0x90, - EMBER_ZCL_STATUS_DEFINED_OUT_OF_BAND = 0x91, - EMBER_ZCL_STATUS_INCONSISTENT = 0x92, - EMBER_ZCL_STATUS_ACTION_DENIED = 0x93, - EMBER_ZCL_STATUS_TIMEOUT = 0x94, - EMBER_ZCL_STATUS_ABORT = 0x95, - EMBER_ZCL_STATUS_INVALID_IMAGE = 0x96, - EMBER_ZCL_STATUS_WAIT_FOR_DATA = 0x97, - EMBER_ZCL_STATUS_NO_IMAGE_AVAILABLE = 0x98, - EMBER_ZCL_STATUS_REQUIRE_MORE_IMAGE = 0x99, - EMBER_ZCL_STATUS_HARDWARE_FAILURE = 0xC0, - EMBER_ZCL_STATUS_SOFTWARE_FAILURE = 0xC1, - EMBER_ZCL_STATUS_CALIBRATION_ERROR = 0xC2, - EMBER_ZCL_STATUS_UNSUPPORTED_CLUSTER = 0xC3, -} EmberAfStatus; - -typedef enum -{ - EMBER_ZCL_STEP_MODE_UP = 0x00, - EMBER_ZCL_STEP_MODE_DOWN = 0x01, -} EmberAfStepMode; - -typedef enum -{ - EMBER_ZCL_SUPPLY_STATUS_SUPPLY_OFF = 0x00, - EMBER_ZCL_SUPPLY_STATUS_SUPPLY_OFF_ARMED = 0x01, - EMBER_ZCL_SUPPLY_STATUS_SUPPLY_ON = 0x02, - EMBER_ZCL_SUPPLY_STATUS_SUPPLY_UNCHANGED = 0x03, -} EmberAfSupplyStatus; - -typedef enum -{ - EMBER_ZCL_SWITCH_ACTIONS_ON = 0x00, - EMBER_ZCL_SWITCH_ACTIONS_OFF = 0x01, - EMBER_ZCL_SWITCH_ACTIONS_TOGGLE = 0x02, -} EmberAfSwitchActions; - -typedef enum -{ - EMBER_ZCL_SWITCH_TYPE_TOGGLE = 0x00, - EMBER_ZCL_SWITCH_TYPE_MOMENTARY = 0x01, - EMBER_ZCL_SWITCH_TYPE_MULTI_FUNCTION = 0x02, -} EmberAfSwitchType; - -typedef enum -{ - EMBER_ZCL_TARIFF_CHARGING_SCHEME_TOU_TARIFF = 0x00, - EMBER_ZCL_TARIFF_CHARGING_SCHEME_BLOCK_TARIFF = 0x10, - EMBER_ZCL_TARIFF_CHARGING_SCHEME_BLOCK_TOU_TARIFF_WITH_COMMON_THRESHOLDS = 0x20, - EMBER_ZCL_TARIFF_CHARGING_SCHEME_BLOCK_TOU_TARIFF_WITH_INDIVIDUAL_THRESHOLDS_PER_TIER = 0x30, -} EmberAfTariffChargingScheme; - -typedef enum -{ - EMBER_ZCL_TARIFF_RESOLUTION_PERIOD_NOT_DEFINED = 0x00, - EMBER_ZCL_TARIFF_RESOLUTION_PERIOD_BLOCK_PERIOD = 0x01, - EMBER_ZCL_TARIFF_RESOLUTION_PERIOD_ONE_DAY = 0x02, -} EmberAfTariffResolutionPeriod; - -typedef enum -{ - EMBER_ZCL_TARIFF_TYPE_DELIVERED_TARIFF = 0x00, - EMBER_ZCL_TARIFF_TYPE_RECEIVED_TARIFF = 0x01, - EMBER_ZCL_TARIFF_TYPE_DELIVERED_AND_RECEIVED_TARIFF = 0x02, -} EmberAfTariffType; - -typedef enum -{ - EMBER_ZCL_TEMPERATURE_DISPLAY_MODE_CELSIUS = 0x00, - EMBER_ZCL_TEMPERATURE_DISPLAY_MODE_FAHRENHEIT = 0x01, -} EmberAfTemperatureDisplayMode; - -typedef enum -{ - EMBER_ZCL_TEMPERATURE_SETPOINT_HOLD_SETPOINT_HOLD_OFF = 0x00, - EMBER_ZCL_TEMPERATURE_SETPOINT_HOLD_SETPOINT_HOLD_ON = 0x01, -} EmberAfTemperatureSetpointHold; - -typedef enum -{ - EMBER_ZCL_THERMOSTAT_CONTROL_SEQUENCE_COOLING_ONLY = 0x00, - EMBER_ZCL_THERMOSTAT_CONTROL_SEQUENCE_COOLING_WITH_REHEAT = 0x01, - EMBER_ZCL_THERMOSTAT_CONTROL_SEQUENCE_HEATING_ONLY = 0x02, - EMBER_ZCL_THERMOSTAT_CONTROL_SEQUENCE_HEATING_WITH_REHEAT = 0x03, - EMBER_ZCL_THERMOSTAT_CONTROL_SEQUENCE_COOLING_AND_HEATING = 0x04, - EMBER_ZCL_THERMOSTAT_CONTROL_SEQUENCE_COOLING_AND_HEATING_WITH_REHEAT = 0x05, -} EmberAfThermostatControlSequence; - -typedef enum -{ - EMBER_ZCL_THERMOSTAT_RUNNING_MODE_OFF = 0x00, - EMBER_ZCL_THERMOSTAT_RUNNING_MODE_COOL = 0x03, - EMBER_ZCL_THERMOSTAT_RUNNING_MODE_HEAT = 0x04, -} EmberAfThermostatRunningMode; - -typedef enum -{ - EMBER_ZCL_THERMOSTAT_SYSTEM_MODE_OFF = 0x00, - EMBER_ZCL_THERMOSTAT_SYSTEM_MODE_AUTO = 0x01, - EMBER_ZCL_THERMOSTAT_SYSTEM_MODE_COOL = 0x03, - EMBER_ZCL_THERMOSTAT_SYSTEM_MODE_HEAT = 0x04, - EMBER_ZCL_THERMOSTAT_SYSTEM_MODE_EMERGENCY_HEATING = 0x05, - EMBER_ZCL_THERMOSTAT_SYSTEM_MODE_PRECOOLING = 0x06, - EMBER_ZCL_THERMOSTAT_SYSTEM_MODE_FAN_ONLY = 0x07, -} EmberAfThermostatSystemMode; - -typedef enum -{ - EMBER_ZCL_TIER_BLOCK_MODE_ACTIVE_BLOCK = 0x00, - EMBER_ZCL_TIER_BLOCK_MODE_ACTIVE_BLOCK_PRICE_TIER = 0x01, - EMBER_ZCL_TIER_BLOCK_MODE_ACTIVE_BLOCK_PRICE_TIER_THRESHOLD = 0x02, - EMBER_ZCL_TIER_BLOCK_MODE_NOT_USED = 0xFF, -} EmberAfTierBlockMode; - -typedef enum -{ - EMBER_ZCL_TIME_ENCODING_RELATIVE = 0x00, - EMBER_ZCL_TIME_ENCODING_ABSOLUTE = 0x40, -} EmberAfTimeEncoding; - -typedef enum -{ - EMBER_ZCL_TUNNELING_PROTOCOL_ID_DLMS_COSEM = 0x00, - EMBER_ZCL_TUNNELING_PROTOCOL_ID_IEC_61107 = 0x01, - EMBER_ZCL_TUNNELING_PROTOCOL_ID_ANSI_C12 = 0x02, - EMBER_ZCL_TUNNELING_PROTOCOL_ID_M_BUS = 0x03, - EMBER_ZCL_TUNNELING_PROTOCOL_ID_SML = 0x04, - EMBER_ZCL_TUNNELING_PROTOCOL_ID_CLIMATE_TALK = 0x05, - EMBER_ZCL_TUNNELING_PROTOCOL_ID_GB_HRGP = 0x06, - EMBER_ZCL_TUNNELING_PROTOCOL_ID_TEST = 0xC7, -} EmberAfTunnelingProtocolId; - -typedef enum -{ - EMBER_ZCL_TUNNELING_TRANSFER_DATA_STATUS_NO_SUCH_TUNNEL = 0x00, - EMBER_ZCL_TUNNELING_TRANSFER_DATA_STATUS_WRONG_DEVICE = 0x01, - EMBER_ZCL_TUNNELING_TRANSFER_DATA_STATUS_DATA_OVERFLOW = 0x02, -} EmberAfTunnelingTransferDataStatus; - -typedef enum -{ - EMBER_ZCL_TUNNELING_TUNNEL_STATUS_SUCCESS = 0x00, - EMBER_ZCL_TUNNELING_TUNNEL_STATUS_BUSY = 0x01, - EMBER_ZCL_TUNNELING_TUNNEL_STATUS_NO_MORE_TUNNEL_IDS = 0x02, - EMBER_ZCL_TUNNELING_TUNNEL_STATUS_PROTOCOL_NOT_SUPPORTED = 0x03, - EMBER_ZCL_TUNNELING_TUNNEL_STATUS_FLOW_CONTROL_NOT_SUPPORTED = 0x04, -} EmberAfTunnelingTunnelStatus; - -typedef enum -{ - EMBER_ZCL_WAN_STATUS_CONNECTION_TO_WAN_IS_NOT_AVAILABLE = 0x00, - EMBER_ZCL_WAN_STATUS_CONNECTION_TO_WAN_IS_AVAILABLE = 0x01, -} EmberAfWanStatus; - -typedef enum -{ - EMBER_ZCL_WARNING_EVENT_WARNING1_OVERALL_POWER_ABOVE_AVAILABLE_POWER_LEVEL = 0x00, - EMBER_ZCL_WARNING_EVENT_WARNING2_OVERALL_POWER_ABOVE_POWER_THRESHOLD_LEVEL = 0x01, - EMBER_ZCL_WARNING_EVENT_WARNING3_OVERALL_POWER_BACK_BELOW_THE_AVAILABLE_POWER_LEVEL = 0x02, - EMBER_ZCL_WARNING_EVENT_WARNING4_OVERALL_POWER_BACK_BELOW_THE_POWER_THRESHOLD_LEVEL = 0x03, - EMBER_ZCL_WARNING_EVENT_WARNING5_OVERALL_POWER_WILL_BE_POTENTIALLY_ABOVE_AVAILABLE_POWER_LEVEL_IF_THE_APPLIANCE_STARTS = 0x04, -} EmberAfWarningEvent; - -typedef enum -{ - EMBER_ZCL_WARNING_MODE_STOP = 0x00, - EMBER_ZCL_WARNING_MODE_BURGLAR = 0x01, - EMBER_ZCL_WARNING_MODE_FIRE = 0x02, - EMBER_ZCL_WARNING_MODE_EMERGENCY = 0x03, - EMBER_ZCL_WARNING_MODE_POLICE_PANIC = 0x04, - EMBER_ZCL_WARNING_MODE_FIRE_PANIC = 0x05, - EMBER_ZCL_WARNING_MODE_EMERGENCY_PANIC = 0x06, -} EmberAfWarningMode; - -typedef enum -{ - EMBER_ZCL_WARNING_STOBE_NO_STROBE = 0x00, - EMBER_ZCL_WARNING_STOBE_USE_STROBE = 0x01, -} EmberAfWarningStobe; - -typedef enum -{ - EMBER_ZCL_WWAH_IAS_ZONE_ENROLLMENT_MODE_TRIP_TO_PAIR = 0x00, - EMBER_ZCL_WWAH_IAS_ZONE_ENROLLMENT_MODE_AUTO_ENROLLMENT_RESPONSE = 0x01, - EMBER_ZCL_WWAH_IAS_ZONE_ENROLLMENT_MODE_REQUEST = 0x02, -} EmberAfWwahIasZoneEnrollmentMode; - -typedef enum -{ - EMBER_ZCL_WWAH_POWER_NOTIFICATION_REASON_UNKNOWN = 0x00, - EMBER_ZCL_WWAH_POWER_NOTIFICATION_REASON_BATTERY = 0x01, - EMBER_ZCL_WWAH_POWER_NOTIFICATION_REASON_BROWNOUT = 0x02, - EMBER_ZCL_WWAH_POWER_NOTIFICATION_REASON_WATCHDOG = 0x03, - EMBER_ZCL_WWAH_POWER_NOTIFICATION_REASON_RESET_PIN = 0x04, - EMBER_ZCL_WWAH_POWER_NOTIFICATION_REASON_MEMORY_HARDWARE_FAULT = 0x05, - EMBER_ZCL_WWAH_POWER_NOTIFICATION_REASON_SOFWARE_EXCEPTION = 0x06, - EMBER_ZCL_WWAH_POWER_NOTIFICATION_REASON_OTA_BOOTLOAD_SUCCESS = 0x07, - EMBER_ZCL_WWAH_POWER_NOTIFICATION_REASON_SOFTWARE_RESET = 0x08, - EMBER_ZCL_WWAH_POWER_NOTIFICATION_REASON_POWER_BUTTON = 0x09, - EMBER_ZCL_WWAH_POWER_NOTIFICATION_REASON_TEMPERATURE = 0x0A, - EMBER_ZCL_WWAH_POWER_NOTIFICATION_REASON_BOOTLOAD_FAILURE = 0x0B, -} EmberAfWwahPowerNotificationReason; - -typedef enum -{ - EMBER_ZCL_ZIGBEE_INFORMATION_LOGICAL_TYPE_COORDINATOR = 0x00, - EMBER_ZCL_ZIGBEE_INFORMATION_LOGICAL_TYPE_ROUTER = 0x01, - EMBER_ZCL_ZIGBEE_INFORMATION_LOGICAL_TYPE_END_DEVICE = 0x02, -} EmberAfZigbeeInformationLogicalType; - -typedef enum -{ - EMBER_ZCL_ZLL_STATUS_SUCCESS = 0x00, - EMBER_ZCL_ZLL_STATUS_FAILURE = 0x01, -} EmberAfZllStatus; - -#define EMBER_AF_SHADE_CLOSURE_STATUS_OPERATIONAL (0x01) -#define EMBER_AF_SHADE_CLOSURE_STATUS_ADJUSTING (0x02) -#define EMBER_AF_SHADE_CLOSURE_STATUS_ADJUSTING_OFFSET (1) -#define EMBER_AF_SHADE_CLOSURE_STATUS_OPENING (0x04) -#define EMBER_AF_SHADE_CLOSURE_STATUS_OPENING_OFFSET (2) -#define EMBER_AF_SHADE_CLOSURE_STATUS_MOTOR_OPENING (0x08) -#define EMBER_AF_SHADE_CLOSURE_STATUS_MOTOR_OPENING_OFFSET (3) -#define EMBER_AF_ALARM_MASK_GENERAL_HW_FAULT (0x01) -#define EMBER_AF_ALARM_MASK_GENERAL_SW_FAULT (0x02) -#define EMBER_AF_ALARM_MASK_GENERAL_SW_FAULT_OFFSET (1) -#define EMBER_AF_RESTART_OPTIONS_START_MODE1 (0x01) -#define EMBER_AF_RESTART_OPTIONS_STARTUP_MODE2 (0x02) -#define EMBER_AF_RESTART_OPTIONS_STARTUP_MODE2_OFFSET (1) -#define EMBER_AF_RESTART_OPTIONS_STARTUP_MODE3 (0x04) -#define EMBER_AF_RESTART_OPTIONS_STARTUP_MODE3_OFFSET (2) -#define EMBER_AF_RESTART_OPTIONS_IMMEDIATE (0x08) -#define EMBER_AF_RESTART_OPTIONS_IMMEDIATE_OFFSET (3) -#define EMBER_AF_RESET_OPTIONS_RESET_CURRENT (0x01) -#define EMBER_AF_RESET_OPTIONS_RESET_ALL (0x02) -#define EMBER_AF_RESET_OPTIONS_RESET_ALL_OFFSET (1) -#define EMBER_AF_RESET_OPTIONS_ERASE_INDEX (0x04) -#define EMBER_AF_RESET_OPTIONS_ERASE_INDEX_OFFSET (2) -#define EMBER_AF_MAINS_ALARM_MASK_VOLTAGE_TOO_LOW (0x01) -#define EMBER_AF_MAINS_ALARM_MASK_VOLTAGE_TOO_HIGH (0x02) -#define EMBER_AF_MAINS_ALARM_MASK_VOLTAGE_TOO_HIGH_OFFSET (1) -#define EMBER_AF_MAINS_ALARM_MASK_MAINS_POWER_SUPPLY_LOST (0x04) -#define EMBER_AF_MAINS_ALARM_MASK_MAINS_POWER_SUPPLY_LOST_OFFSET (2) -#define EMBER_AF_BATTERY_ALARM_MASK_VOLTAGE_TOO_LOW (0x01) -#define EMBER_AF_DEVICE_TEMP_ALARM_MASK_TOO_LOW (0x01) -#define EMBER_AF_DEVICE_TEMP_ALARM_MASK_TOO_HIGH (0x02) -#define EMBER_AF_DEVICE_TEMP_ALARM_MASK_TOO_HIGH_OFFSET (1) -#define EMBER_AF_TIME_STATUS_MASK_MASTER_CLOCK (0x01) -#define EMBER_AF_TIME_STATUS_MASK_SYNCHRONIZED (0x02) -#define EMBER_AF_TIME_STATUS_MASK_SYNCHRONIZED_OFFSET (1) -#define EMBER_AF_TIME_STATUS_MASK_MASTER_ZONE_DST (0x04) -#define EMBER_AF_TIME_STATUS_MASK_MASTER_ZONE_DST_OFFSET (2) -#define EMBER_AF_TIME_STATUS_MASK_SUPERSEDING (0x08) -#define EMBER_AF_TIME_STATUS_MASK_SUPERSEDING_OFFSET (3) -#define EMBER_AF_LOCATION_TYPE_ABSOLUTE (0x01) -#define EMBER_AF_LOCATION_TYPE2_D (0x02) -#define EMBER_AF_LOCATION_TYPE2_D_OFFSET (1) -#define EMBER_AF_LOCATION_TYPE_COORDINATE_SYSTEM (0x0C) -#define EMBER_AF_LOCATION_TYPE_COORDINATE_SYSTEM_OFFSET (2) -#define EMBER_AF_GET_LOCATION_DATA_FLAGS_ABSOLUTE_ONLY (0x01) -#define EMBER_AF_GET_LOCATION_DATA_FLAGS_RECALCULATE (0x02) -#define EMBER_AF_GET_LOCATION_DATA_FLAGS_RECALCULATE_OFFSET (1) -#define EMBER_AF_GET_LOCATION_DATA_FLAGS_BROADCAST (0x04) -#define EMBER_AF_GET_LOCATION_DATA_FLAGS_BROADCAST_OFFSET (2) -#define EMBER_AF_GET_LOCATION_DATA_FLAGS_BROADCAST_RESPONSE (0x08) -#define EMBER_AF_GET_LOCATION_DATA_FLAGS_BROADCAST_RESPONSE_OFFSET (3) -#define EMBER_AF_GET_LOCATION_DATA_FLAGS_COMPACT_RESPONSE (0x10) -#define EMBER_AF_GET_LOCATION_DATA_FLAGS_COMPACT_RESPONSE_OFFSET (4) -#define EMBER_AF_PUMP_STATUS_DEVICE_FAULT (0x0001) -#define EMBER_AF_PUMP_STATUS_SUPPLYFAULT (0x0002) -#define EMBER_AF_PUMP_STATUS_SUPPLYFAULT_OFFSET (1) -#define EMBER_AF_PUMP_STATUS_SPEED_LOW (0x0004) -#define EMBER_AF_PUMP_STATUS_SPEED_LOW_OFFSET (2) -#define EMBER_AF_PUMP_STATUS_SPEED_HIGH (0x0008) -#define EMBER_AF_PUMP_STATUS_SPEED_HIGH_OFFSET (3) -#define EMBER_AF_PUMP_STATUS_LOCAL_OVERRIDE (0x0010) -#define EMBER_AF_PUMP_STATUS_LOCAL_OVERRIDE_OFFSET (4) -#define EMBER_AF_PUMP_STATUS_RUNNING (0x0020) -#define EMBER_AF_PUMP_STATUS_RUNNING_OFFSET (5) -#define EMBER_AF_PUMP_STATUS_REMOTE_PRESSURE (0x0040) -#define EMBER_AF_PUMP_STATUS_REMOTE_PRESSURE_OFFSET (6) -#define EMBER_AF_PUMP_STATUS_REMOTE_FLOW (0x0080) -#define EMBER_AF_PUMP_STATUS_REMOTE_FLOW_OFFSET (7) -#define EMBER_AF_PUMP_STATUS_REMOTE_TEMPERATURE (0x0100) -#define EMBER_AF_PUMP_STATUS_REMOTE_TEMPERATURE_OFFSET (8) -#define EMBER_AF_PUMP_ALARM_MASK_SUPPLY_VOLTAGE_TOO_LOW (0x0001) -#define EMBER_AF_PUMP_ALARM_MASK_SUPPLY_VOLTAGE_TOO_HIGH (0x0002) -#define EMBER_AF_PUMP_ALARM_MASK_SUPPLY_VOLTAGE_TOO_HIGH_OFFSET (1) -#define EMBER_AF_PUMP_ALARM_MASK_POWER_MISSING_PHASE (0x0004) -#define EMBER_AF_PUMP_ALARM_MASK_POWER_MISSING_PHASE_OFFSET (2) -#define EMBER_AF_PUMP_ALARM_MASK_SYSTEM_PRESSURE_TOO_LOW (0x0008) -#define EMBER_AF_PUMP_ALARM_MASK_SYSTEM_PRESSURE_TOO_LOW_OFFSET (3) -#define EMBER_AF_PUMP_ALARM_MASK_SYSTEM_PRESSURE_TOO_HIGH (0x0010) -#define EMBER_AF_PUMP_ALARM_MASK_SYSTEM_PRESSURE_TOO_HIGH_OFFSET (4) -#define EMBER_AF_PUMP_ALARM_MASK_DRY_RUNNING (0x0020) -#define EMBER_AF_PUMP_ALARM_MASK_DRY_RUNNING_OFFSET (5) -#define EMBER_AF_PUMP_ALARM_MASK_MOTOR_TEMPERATURE_TOO_HIGH (0x0040) -#define EMBER_AF_PUMP_ALARM_MASK_MOTOR_TEMPERATURE_TOO_HIGH_OFFSET (6) -#define EMBER_AF_PUMP_ALARM_MASK_PUMP_MOTOR_HAS_FATAL_FAILURE (0x0080) -#define EMBER_AF_PUMP_ALARM_MASK_PUMP_MOTOR_HAS_FATAL_FAILURE_OFFSET (7) -#define EMBER_AF_PUMP_ALARM_MASK_ELECTRONIC_TEMPERATURE_TOO_HIGH (0x0100) -#define EMBER_AF_PUMP_ALARM_MASK_ELECTRONIC_TEMPERATURE_TOO_HIGH_OFFSET (8) -#define EMBER_AF_PUMP_ALARM_MASK_PUMP_BLOCKED (0x0200) -#define EMBER_AF_PUMP_ALARM_MASK_PUMP_BLOCKED_OFFSET (9) -#define EMBER_AF_PUMP_ALARM_MASK_SENSOR_FAILURE (0x0400) -#define EMBER_AF_PUMP_ALARM_MASK_SENSOR_FAILURE_OFFSET (10) -#define EMBER_AF_PUMP_ALARM_MASK_ELECTRONIC_NON_FATAL_FAILURE (0x0800) -#define EMBER_AF_PUMP_ALARM_MASK_ELECTRONIC_NON_FATAL_FAILURE_OFFSET (11) -#define EMBER_AF_PUMP_ALARM_MASK_ELECTRONIC_FATAL_FAILURE (0x1000) -#define EMBER_AF_PUMP_ALARM_MASK_ELECTRONIC_FATAL_FAILURE_OFFSET (12) -#define EMBER_AF_PUMP_ALARM_MASK_GENERAL_FAULT (0x2000) -#define EMBER_AF_PUMP_ALARM_MASK_GENERAL_FAULT_OFFSET (13) -#define EMBER_AF_THERMOSTAT_OCCUPANCY_OCCUPIED (0x01) -#define EMBER_AF_THERMOSTAT_SENSING_LOCAL_TEMP_SENSED_REMOTELY (0x01) -#define EMBER_AF_THERMOSTAT_SENSING_OUTDOOR_TEMP_SENSED_REMOTELY (0x02) -#define EMBER_AF_THERMOSTAT_SENSING_OUTDOOR_TEMP_SENSED_REMOTELY_OFFSET (1) -#define EMBER_AF_THERMOSTAT_SENSING_OCCUPANCY_SENSED_REMOTELY (0x04) -#define EMBER_AF_THERMOSTAT_SENSING_OCCUPANCY_SENSED_REMOTELY_OFFSET (2) -#define EMBER_AF_THERMOSTAT_ALARM_MASK_INITIALIZATION_FAILURE (0x01) -#define EMBER_AF_THERMOSTAT_ALARM_MASK_HARDWARE_FAILURE (0x02) -#define EMBER_AF_THERMOSTAT_ALARM_MASK_HARDWARE_FAILURE_OFFSET (1) -#define EMBER_AF_THERMOSTAT_ALARM_MASK_SELFCALIBRATION_FAILURE (0x04) -#define EMBER_AF_THERMOSTAT_ALARM_MASK_SELFCALIBRATION_FAILURE_OFFSET (2) -#define EMBER_AF_BALLAST_STATUS_NON_OPERATIONAL (0x01) -#define EMBER_AF_BALLAST_STATUS_LAMP_NOT_IN_SOCKET (0x02) -#define EMBER_AF_BALLAST_STATUS_LAMP_NOT_IN_SOCKET_OFFSET (1) -#define EMBER_AF_LAMP_ALARM_MODE_LAMP_BURN_HOURS (0x01) -#define EMBER_AF_OCCUPANCY_OCCUPIED (0x01) -#define EMBER_AF_IAS_ZONE_STATUS_ALARM1 (0x0001) -#define EMBER_AF_IAS_ZONE_STATUS_ALARM2 (0x0002) -#define EMBER_AF_IAS_ZONE_STATUS_ALARM2_OFFSET (1) -#define EMBER_AF_IAS_ZONE_STATUS_TAMPER (0x0004) -#define EMBER_AF_IAS_ZONE_STATUS_TAMPER_OFFSET (2) -#define EMBER_AF_IAS_ZONE_STATUS_BATTERY (0x0008) -#define EMBER_AF_IAS_ZONE_STATUS_BATTERY_OFFSET (3) -#define EMBER_AF_IAS_ZONE_STATUS_SUPERVISION_REPORTS (0x0010) -#define EMBER_AF_IAS_ZONE_STATUS_SUPERVISION_REPORTS_OFFSET (4) -#define EMBER_AF_IAS_ZONE_STATUS_RESTORE_REPORTS (0x0020) -#define EMBER_AF_IAS_ZONE_STATUS_RESTORE_REPORTS_OFFSET (5) -#define EMBER_AF_IAS_ZONE_STATUS_TROUBLE (0x0040) -#define EMBER_AF_IAS_ZONE_STATUS_TROUBLE_OFFSET (6) -#define EMBER_AF_IAS_ZONE_STATUS_A_C (0x0080) -#define EMBER_AF_IAS_ZONE_STATUS_A_C_OFFSET (7) -#define EMBER_AF_IAS_ZONE_STATUS_TEST (0x0100) -#define EMBER_AF_IAS_ZONE_STATUS_TEST_OFFSET (8) -#define EMBER_AF_IAS_ZONE_STATUS_BATTERY_DEFECT (0x0200) -#define EMBER_AF_IAS_ZONE_STATUS_BATTERY_DEFECT_OFFSET (9) -#define EMBER_AF_WARNING_INFO_MODE (0xF0) -#define EMBER_AF_WARNING_INFO_MODE_OFFSET (4) -#define EMBER_AF_WARNING_INFO_STROBE (0x0C) -#define EMBER_AF_WARNING_INFO_STROBE_OFFSET (2) -#define EMBER_AF_WARNING_INFO_SIREN_LEVEL (0x03) -#define EMBER_AF_SQUAWK_INFO_MODE (0xF0) -#define EMBER_AF_SQUAWK_INFO_MODE_OFFSET (4) -#define EMBER_AF_SQUAWK_INFO_STROBE (0x08) -#define EMBER_AF_SQUAWK_INFO_STROBE_OFFSET (3) -#define EMBER_AF_SQUAWK_INFO_LEVEL (0x03) -#define EMBER_AF_OCCUPANCY_SENSOR_TYPE_BITMAP_PIR (0x01) -#define EMBER_AF_OCCUPANCY_SENSOR_TYPE_BITMAP_ULTRASONIC (0x02) -#define EMBER_AF_OCCUPANCY_SENSOR_TYPE_BITMAP_ULTRASONIC_OFFSET (1) -#define EMBER_AF_OCCUPANCY_SENSOR_TYPE_BITMAP_PHYSICAL_CONTACT (0x04) -#define EMBER_AF_OCCUPANCY_SENSOR_TYPE_BITMAP_PHYSICAL_CONTACT_OFFSET (2) -#define EMBER_AF_ENERGY_FORMATTING_NUMBER_OF_DIGITS_TO_THE_RIGHT_OF_THE_DECIMAL_POINT (0x07) -#define EMBER_AF_ENERGY_FORMATTING_NUMBER_OF_DIGITS_TO_THE_LEFT_OF_THE_DECIMAL_POINT (0x78) -#define EMBER_AF_ENERGY_FORMATTING_NUMBER_OF_DIGITS_TO_THE_LEFT_OF_THE_DECIMAL_POINT_OFFSET (3) -#define EMBER_AF_ENERGY_FORMATTING_SUPPRESS_LEADING_ZEROS (0x80) -#define EMBER_AF_ENERGY_FORMATTING_SUPPRESS_LEADING_ZEROS_OFFSET (7) -#define EMBER_AF_REMOTE_ENABLE_FLAGS_AND_DEVICE_STATUS2_REMOTE_ENABLE_FLAGS (0x0F) -#define EMBER_AF_REMOTE_ENABLE_FLAGS_AND_DEVICE_STATUS2_DEVICE_STATUS2_STRUCTURE (0xF0) -#define EMBER_AF_REMOTE_ENABLE_FLAGS_AND_DEVICE_STATUS2_DEVICE_STATUS2_STRUCTURE_OFFSET (4) -#define EMBER_AF_START_TIME_MINUTES (0x003F) -#define EMBER_AF_START_TIME_TIME_ENCODING (0x00C0) -#define EMBER_AF_START_TIME_TIME_ENCODING_OFFSET (6) -#define EMBER_AF_START_TIME_HOURS (0xFF00) -#define EMBER_AF_START_TIME_HOURS_OFFSET (8) -#define EMBER_AF_DOOR_LOCK_DAY_OF_WEEK_SUNDAY (0x01) -#define EMBER_AF_DOOR_LOCK_DAY_OF_WEEK_MONDAY (0x02) -#define EMBER_AF_DOOR_LOCK_DAY_OF_WEEK_MONDAY_OFFSET (1) -#define EMBER_AF_DOOR_LOCK_DAY_OF_WEEK_TUESDAY (0x04) -#define EMBER_AF_DOOR_LOCK_DAY_OF_WEEK_TUESDAY_OFFSET (2) -#define EMBER_AF_DOOR_LOCK_DAY_OF_WEEK_WEDNESDAY (0x08) -#define EMBER_AF_DOOR_LOCK_DAY_OF_WEEK_WEDNESDAY_OFFSET (3) -#define EMBER_AF_DOOR_LOCK_DAY_OF_WEEK_THURSDAY (0x10) -#define EMBER_AF_DOOR_LOCK_DAY_OF_WEEK_THURSDAY_OFFSET (4) -#define EMBER_AF_DOOR_LOCK_DAY_OF_WEEK_FRIDAY (0x20) -#define EMBER_AF_DOOR_LOCK_DAY_OF_WEEK_FRIDAY_OFFSET (5) -#define EMBER_AF_DOOR_LOCK_DAY_OF_WEEK_SATURDAY (0x40) -#define EMBER_AF_DOOR_LOCK_DAY_OF_WEEK_SATURDAY_OFFSET (6) -#define EMBER_AF_THERMOSTAT_RUNNING_STATE_HEAT_STATE_ON (0x0001) -#define EMBER_AF_THERMOSTAT_RUNNING_STATE_COOL_STATE_ON (0x0002) -#define EMBER_AF_THERMOSTAT_RUNNING_STATE_COOL_STATE_ON_OFFSET (1) -#define EMBER_AF_THERMOSTAT_RUNNING_STATE_FAN_STATE_ON (0x0004) -#define EMBER_AF_THERMOSTAT_RUNNING_STATE_FAN_STATE_ON_OFFSET (2) -#define EMBER_AF_THERMOSTAT_RUNNING_STATE_HEAT_SECOND_STAGE_STATE_ON (0x0008) -#define EMBER_AF_THERMOSTAT_RUNNING_STATE_HEAT_SECOND_STAGE_STATE_ON_OFFSET (3) -#define EMBER_AF_THERMOSTAT_RUNNING_STATE_COOL_SECOND_STAGE_STATE_ON (0x0010) -#define EMBER_AF_THERMOSTAT_RUNNING_STATE_COOL_SECOND_STAGE_STATE_ON_OFFSET (4) -#define EMBER_AF_THERMOSTAT_RUNNING_STATE_FAN_SECOND_STAGE_STATE_ON (0x0020) -#define EMBER_AF_THERMOSTAT_RUNNING_STATE_FAN_SECOND_STAGE_STATE_ON_OFFSET (5) -#define EMBER_AF_THERMOSTAT_RUNNING_STATE_FAN_THIRD_STAGE_STATE_ON (0x0040) -#define EMBER_AF_THERMOSTAT_RUNNING_STATE_FAN_THIRD_STAGE_STATE_ON_OFFSET (6) -#define EMBER_AF_DAY_OF_WEEK_SUNDAY (0x01) -#define EMBER_AF_DAY_OF_WEEK_MONDAY (0x02) -#define EMBER_AF_DAY_OF_WEEK_MONDAY_OFFSET (1) -#define EMBER_AF_DAY_OF_WEEK_TUESDAY (0x04) -#define EMBER_AF_DAY_OF_WEEK_TUESDAY_OFFSET (2) -#define EMBER_AF_DAY_OF_WEEK_WEDNESDAY (0x08) -#define EMBER_AF_DAY_OF_WEEK_WEDNESDAY_OFFSET (3) -#define EMBER_AF_DAY_OF_WEEK_THURSDAY (0x10) -#define EMBER_AF_DAY_OF_WEEK_THURSDAY_OFFSET (4) -#define EMBER_AF_DAY_OF_WEEK_FRIDAY (0x20) -#define EMBER_AF_DAY_OF_WEEK_FRIDAY_OFFSET (5) -#define EMBER_AF_DAY_OF_WEEK_SATURDAY (0x40) -#define EMBER_AF_DAY_OF_WEEK_SATURDAY_OFFSET (6) -#define EMBER_AF_DAY_OF_WEEK_AWAY_OR_VACATION (0x80) -#define EMBER_AF_DAY_OF_WEEK_AWAY_OR_VACATION_OFFSET (7) -#define EMBER_AF_MODE_FOR_SEQUENCE_HEAT_SETPOINT_FIELD_PRESENT (0x01) -#define EMBER_AF_MODE_FOR_SEQUENCE_COOL_SETPOINT_FIELD_PRESENT (0x02) -#define EMBER_AF_MODE_FOR_SEQUENCE_COOL_SETPOINT_FIELD_PRESENT_OFFSET (1) -#define EMBER_AF_ALERT_STRUCTURE_ALERT_ID (0x0000FF) -#define EMBER_AF_ALERT_STRUCTURE_CATEGORY (0x000F00) -#define EMBER_AF_ALERT_STRUCTURE_CATEGORY_OFFSET (8) -#define EMBER_AF_ALERT_STRUCTURE_PRESENCE_RECOVERY (0x003000) -#define EMBER_AF_ALERT_STRUCTURE_PRESENCE_RECOVERY_OFFSET (12) -#define EMBER_AF_ALERT_COUNT_NUMBER_OF_ALERTS (0x0F) -#define EMBER_AF_ALERT_COUNT_TYPE_OF_ALERT (0xF0) -#define EMBER_AF_ALERT_COUNT_TYPE_OF_ALERT_OFFSET (4) -#define EMBER_AF_BARRIER_CONTROL_CAPABILITIES_PARTIAL_BARRIER (0x01) -#define EMBER_AF_BARRIER_CONTROL_SAFETY_STATUS_REMOTE_LOCKOUT (0x0001) -#define EMBER_AF_BARRIER_CONTROL_SAFETY_STATUS_TEMPER_DETECTED (0x0002) -#define EMBER_AF_BARRIER_CONTROL_SAFETY_STATUS_TEMPER_DETECTED_OFFSET (1) -#define EMBER_AF_BARRIER_CONTROL_SAFETY_STATUS_FAILED_COMMUNICATION (0x0004) -#define EMBER_AF_BARRIER_CONTROL_SAFETY_STATUS_FAILED_COMMUNICATION_OFFSET (2) -#define EMBER_AF_BARRIER_CONTROL_SAFETY_STATUS_POSITION_FAILURE (0x0008) -#define EMBER_AF_BARRIER_CONTROL_SAFETY_STATUS_POSITION_FAILURE_OFFSET (3) -#define EMBER_AF_BLOCK_PERIOD_DURATION_TYPE_TIMEBASE (0x0F) -#define EMBER_AF_BLOCK_PERIOD_DURATION_TYPE_CONTROL (0xF0) -#define EMBER_AF_BLOCK_PERIOD_DURATION_TYPE_CONTROL_OFFSET (4) -#define EMBER_AF_CONVERSION_FACTOR_TRAILING_DIGIT_TRAILING_DIGIT (0xF0) -#define EMBER_AF_CONVERSION_FACTOR_TRAILING_DIGIT_TRAILING_DIGIT_OFFSET (4) -#define EMBER_AF_CALORIFIC_VALUE_TRAILING_DIGIT_TRAILING_DIGIT (0xF0) -#define EMBER_AF_CALORIFIC_VALUE_TRAILING_DIGIT_TRAILING_DIGIT_OFFSET (4) -#define EMBER_AF_PRICE_TRAILING_DIGIT_TRAILING_DIGIT (0xF0) -#define EMBER_AF_PRICE_TRAILING_DIGIT_TRAILING_DIGIT_OFFSET (4) -#define EMBER_AF_C_O2_TRAILING_DIGIT_TRAILING_DIGIT (0xF0) -#define EMBER_AF_C_O2_TRAILING_DIGIT_TRAILING_DIGIT_OFFSET (4) -#define EMBER_AF_PRICE_TRAILING_DIGIT_AND_PRICE_TIER_PRICE_TIER (0x0F) -#define EMBER_AF_PRICE_TRAILING_DIGIT_AND_PRICE_TIER_TRAILING_DIGIT (0xF0) -#define EMBER_AF_PRICE_TRAILING_DIGIT_AND_PRICE_TIER_TRAILING_DIGIT_OFFSET (4) -#define EMBER_AF_PRICE_NUMBER_OF_PRICE_TIERS_AND_REGISTER_TIER_REGISTER_TIER (0x0F) -#define EMBER_AF_PRICE_NUMBER_OF_PRICE_TIERS_AND_REGISTER_TIER_NUMBER_OF_PRICE_TIERS (0xF0) -#define EMBER_AF_PRICE_NUMBER_OF_PRICE_TIERS_AND_REGISTER_TIER_NUMBER_OF_PRICE_TIERS_OFFSET (4) -#define EMBER_AF_ALTERNATE_COST_TRAILING_DIGIT_TRAILING_DIGIT (0xF0) -#define EMBER_AF_ALTERNATE_COST_TRAILING_DIGIT_TRAILING_DIGIT_OFFSET (4) -#define EMBER_AF_PRICE_CONTROL_MASK_PRICE_ACKNOWLEDGEMENT_REQUIRED (0x01) -#define EMBER_AF_PRICE_CONTROL_MASK_TOTAL_TIERS_EXCEEDS15 (0x02) -#define EMBER_AF_PRICE_CONTROL_MASK_TOTAL_TIERS_EXCEEDS15_OFFSET (1) -#define EMBER_AF_BLOCK_PERIOD_CONTROL_PRICE_ACKNOWLEDGEMENT_REQUIREMENT (0x01) -#define EMBER_AF_BLOCK_PERIOD_CONTROL_REPEATING_BLOCK (0x02) -#define EMBER_AF_BLOCK_PERIOD_CONTROL_REPEATING_BLOCK_OFFSET (1) -#define EMBER_AF_TARIFF_TYPE_CHARGING_SCHEME_TARIFF_TYPE (0x0F) -#define EMBER_AF_TARIFF_TYPE_CHARGING_SCHEME_TARIFF_CHARGING_SCHEME (0xF0) -#define EMBER_AF_TARIFF_TYPE_CHARGING_SCHEME_TARIFF_CHARGING_SCHEME_OFFSET (4) -#define EMBER_AF_PRICE_MATRIX_SUB_PAYLOAD_CONTROL_TOU_BASED (0x01) -#define EMBER_AF_BLOCK_THRESHOLD_SUB_PAYLOAD_CONTROL_APPLY_TO_ALL_TOU_TIERS_OR_WHEN_BLOCK_ONLY_CHARGING (0x01) -#define EMBER_AF_BILLING_PERIOD_DURATION_DURATION (0x3FFFFF) -#define EMBER_AF_BILLING_PERIOD_DURATION_UNITS (0xC00000) -#define EMBER_AF_BILLING_PERIOD_DURATION_UNITS_OFFSET (22) -#define EMBER_AF_BILLING_PERIOD_DURATION_TYPE_TIMEBASE (0x0F) -#define EMBER_AF_BILLING_PERIOD_DURATION_TYPE_CONTROL (0xF0) -#define EMBER_AF_BILLING_PERIOD_DURATION_TYPE_CONTROL_OFFSET (4) -#define EMBER_AF_BILL_TRAILING_DIGIT_TRAILING_DIGIT (0xF0) -#define EMBER_AF_BILL_TRAILING_DIGIT_TRAILING_DIGIT_OFFSET (4) -#define EMBER_AF_CURRENCY_CHANGE_CONTROL_CLEAR_BILLING_INFO (0x00000001) -#define EMBER_AF_CURRENCY_CHANGE_CONTROL_CONVERT_BILLING_INFO_USING_NEW_CURRENCY (0x00000002) -#define EMBER_AF_CURRENCY_CHANGE_CONTROL_CONVERT_BILLING_INFO_USING_NEW_CURRENCY_OFFSET (1) -#define EMBER_AF_CURRENCY_CHANGE_CONTROL_CLEAR_OLD_CONSUMPTION_DATA (0x00000004) -#define EMBER_AF_CURRENCY_CHANGE_CONTROL_CLEAR_OLD_CONSUMPTION_DATA_OFFSET (2) -#define EMBER_AF_CURRENCY_CHANGE_CONTROL_CONVERT_OLD_CONSUMPTION_DATA_USING_NEW_CURRENCY (0x00000008) -#define EMBER_AF_CURRENCY_CHANGE_CONTROL_CONVERT_OLD_CONSUMPTION_DATA_USING_NEW_CURRENCY_OFFSET (3) -#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER1 (0x0002) -#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER1_OFFSET (1) -#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER2 (0x0004) -#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER2_OFFSET (2) -#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER3 (0x0008) -#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER3_OFFSET (3) -#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER4 (0x0010) -#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER4_OFFSET (4) -#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER5 (0x0020) -#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER5_OFFSET (5) -#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER6 (0x0040) -#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER6_OFFSET (6) -#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER7 (0x0080) -#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER7_OFFSET (7) -#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER8 (0x0100) -#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER8_OFFSET (8) -#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER9 (0x0200) -#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER9_OFFSET (9) -#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER10 (0x0400) -#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER10_OFFSET (10) -#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER11 (0x0800) -#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER11_OFFSET (11) -#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER12 (0x1000) -#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER12_OFFSET (12) -#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER13 (0x2000) -#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER13_OFFSET (13) -#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER14 (0x4000) -#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER14_OFFSET (14) -#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER15 (0x8000) -#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER15_OFFSET (15) -#define EMBER_AF_AMI_COMMAND_OPTIONS_REQUEST_RX_ON_WHEN_IDLE (0x01) -#define EMBER_AF_AMI_DEVICE_CLASS_HVAC_COMPRESSOR_OR_FURNACE (0x0001) -#define EMBER_AF_AMI_DEVICE_CLASS_STRIP_HEAT_BASEBOARD_HEAT (0x0002) -#define EMBER_AF_AMI_DEVICE_CLASS_STRIP_HEAT_BASEBOARD_HEAT_OFFSET (1) -#define EMBER_AF_AMI_DEVICE_CLASS_WATER_HEATER (0x0004) -#define EMBER_AF_AMI_DEVICE_CLASS_WATER_HEATER_OFFSET (2) -#define EMBER_AF_AMI_DEVICE_CLASS_POOL_PUMP_SPA_JACUZZI (0x0008) -#define EMBER_AF_AMI_DEVICE_CLASS_POOL_PUMP_SPA_JACUZZI_OFFSET (3) -#define EMBER_AF_AMI_DEVICE_CLASS_SMART_APPLIANCES (0x0010) -#define EMBER_AF_AMI_DEVICE_CLASS_SMART_APPLIANCES_OFFSET (4) -#define EMBER_AF_AMI_DEVICE_CLASS_IRRIGATION_PUMP (0x0020) -#define EMBER_AF_AMI_DEVICE_CLASS_IRRIGATION_PUMP_OFFSET (5) -#define EMBER_AF_AMI_DEVICE_CLASS_MANAGED_C_AND_I_LOADS (0x0040) -#define EMBER_AF_AMI_DEVICE_CLASS_MANAGED_C_AND_I_LOADS_OFFSET (6) -#define EMBER_AF_AMI_DEVICE_CLASS_SIMPLE_MISC_LOADS (0x0080) -#define EMBER_AF_AMI_DEVICE_CLASS_SIMPLE_MISC_LOADS_OFFSET (7) -#define EMBER_AF_AMI_DEVICE_CLASS_EXTERIOR_LIGHTING (0x0100) -#define EMBER_AF_AMI_DEVICE_CLASS_EXTERIOR_LIGHTING_OFFSET (8) -#define EMBER_AF_AMI_DEVICE_CLASS_INTERIOR_LIGHTING (0x0200) -#define EMBER_AF_AMI_DEVICE_CLASS_INTERIOR_LIGHTING_OFFSET (9) -#define EMBER_AF_AMI_DEVICE_CLASS_ELECTRIC_VEHICLE (0x0400) -#define EMBER_AF_AMI_DEVICE_CLASS_ELECTRIC_VEHICLE_OFFSET (10) -#define EMBER_AF_AMI_DEVICE_CLASS_GENERATION_SYSTEMS (0x0800) -#define EMBER_AF_AMI_DEVICE_CLASS_GENERATION_SYSTEMS_OFFSET (11) -#define EMBER_AF_AMI_EVENT_CONTROL_RANDOMIZED_START_TIME (0x01) -#define EMBER_AF_AMI_EVENT_CONTROL_RANDOMIZED_END_TIME (0x02) -#define EMBER_AF_AMI_EVENT_CONTROL_RANDOMIZED_END_TIME_OFFSET (1) -#define EMBER_AF_AMI_CANCEL_CONTROL_TERMINATE_WITH_RANDOMIZATION (0x01) -#define EMBER_AF_AMI_METER_STATUS_CHECK_METER (0x01) -#define EMBER_AF_AMI_METER_STATUS_LOW_BATTERY (0x02) -#define EMBER_AF_AMI_METER_STATUS_LOW_BATTERY_OFFSET (1) -#define EMBER_AF_AMI_METER_STATUS_TAMPER_DETECT (0x04) -#define EMBER_AF_AMI_METER_STATUS_TAMPER_DETECT_OFFSET (2) -#define EMBER_AF_AMI_METER_STATUS_POWER_FAILURE (0x08) -#define EMBER_AF_AMI_METER_STATUS_POWER_FAILURE_OFFSET (3) -#define EMBER_AF_AMI_METER_STATUS_POWER_QUALITY (0x10) -#define EMBER_AF_AMI_METER_STATUS_POWER_QUALITY_OFFSET (4) -#define EMBER_AF_AMI_METER_STATUS_LEAK_DETECT (0x20) -#define EMBER_AF_AMI_METER_STATUS_LEAK_DETECT_OFFSET (5) -#define EMBER_AF_AMI_METER_STATUS_SERVICE_DISCONNECT_OPEN (0x40) -#define EMBER_AF_AMI_METER_STATUS_SERVICE_DISCONNECT_OPEN_OFFSET (6) -#define EMBER_AF_AMI_METER_STATUS_RESERVED (0x80) -#define EMBER_AF_AMI_METER_STATUS_RESERVED_OFFSET (7) -#define EMBER_AF_METERING_STATUS_ELECTRICITY_CHECK_METER (0x01) -#define EMBER_AF_METERING_STATUS_ELECTRICITY_LOW_BATTERY (0x02) -#define EMBER_AF_METERING_STATUS_ELECTRICITY_LOW_BATTERY_OFFSET (1) -#define EMBER_AF_METERING_STATUS_ELECTRICITY_TAMPER_DETECT (0x04) -#define EMBER_AF_METERING_STATUS_ELECTRICITY_TAMPER_DETECT_OFFSET (2) -#define EMBER_AF_METERING_STATUS_ELECTRICITY_POWER_FAILURE (0x08) -#define EMBER_AF_METERING_STATUS_ELECTRICITY_POWER_FAILURE_OFFSET (3) -#define EMBER_AF_METERING_STATUS_ELECTRICITY_POWER_QUALITY (0x10) -#define EMBER_AF_METERING_STATUS_ELECTRICITY_POWER_QUALITY_OFFSET (4) -#define EMBER_AF_METERING_STATUS_ELECTRICITY_LEAK_DETECT (0x20) -#define EMBER_AF_METERING_STATUS_ELECTRICITY_LEAK_DETECT_OFFSET (5) -#define EMBER_AF_METERING_STATUS_ELECTRICITY_SERVICE_DISCONNECT_OPEN (0x40) -#define EMBER_AF_METERING_STATUS_ELECTRICITY_SERVICE_DISCONNECT_OPEN_OFFSET (6) -#define EMBER_AF_METERING_STATUS_ELECTRICITY_RESERVED (0x80) -#define EMBER_AF_METERING_STATUS_ELECTRICITY_RESERVED_OFFSET (7) -#define EMBER_AF_METERING_STATUS_GAS_CHECK_METER (0x01) -#define EMBER_AF_METERING_STATUS_GAS_LOW_BATTERY (0x02) -#define EMBER_AF_METERING_STATUS_GAS_LOW_BATTERY_OFFSET (1) -#define EMBER_AF_METERING_STATUS_GAS_TAMPER_DETECT (0x04) -#define EMBER_AF_METERING_STATUS_GAS_TAMPER_DETECT_OFFSET (2) -#define EMBER_AF_METERING_STATUS_GAS_NOT_DEFINED (0x08) -#define EMBER_AF_METERING_STATUS_GAS_NOT_DEFINED_OFFSET (3) -#define EMBER_AF_METERING_STATUS_GAS_LOW_PRESSURE (0x10) -#define EMBER_AF_METERING_STATUS_GAS_LOW_PRESSURE_OFFSET (4) -#define EMBER_AF_METERING_STATUS_GAS_LEAK_DETECT (0x20) -#define EMBER_AF_METERING_STATUS_GAS_LEAK_DETECT_OFFSET (5) -#define EMBER_AF_METERING_STATUS_GAS_SERVICE_DISCONNECT (0x40) -#define EMBER_AF_METERING_STATUS_GAS_SERVICE_DISCONNECT_OFFSET (6) -#define EMBER_AF_METERING_STATUS_GAS_REVERSE_FLOW (0x80) -#define EMBER_AF_METERING_STATUS_GAS_REVERSE_FLOW_OFFSET (7) -#define EMBER_AF_METERING_STATUS_WATER_CHECK_METER (0x01) -#define EMBER_AF_METERING_STATUS_WATER_LOW_BATTERY (0x02) -#define EMBER_AF_METERING_STATUS_WATER_LOW_BATTERY_OFFSET (1) -#define EMBER_AF_METERING_STATUS_WATER_TAMPER_DETECT (0x04) -#define EMBER_AF_METERING_STATUS_WATER_TAMPER_DETECT_OFFSET (2) -#define EMBER_AF_METERING_STATUS_WATER_PIPE_EMPTY (0x08) -#define EMBER_AF_METERING_STATUS_WATER_PIPE_EMPTY_OFFSET (3) -#define EMBER_AF_METERING_STATUS_WATER_LOW_PRESSURE (0x10) -#define EMBER_AF_METERING_STATUS_WATER_LOW_PRESSURE_OFFSET (4) -#define EMBER_AF_METERING_STATUS_WATER_LEAK_DETECT (0x20) -#define EMBER_AF_METERING_STATUS_WATER_LEAK_DETECT_OFFSET (5) -#define EMBER_AF_METERING_STATUS_WATER_SERVICE_DISCONNECT (0x40) -#define EMBER_AF_METERING_STATUS_WATER_SERVICE_DISCONNECT_OFFSET (6) -#define EMBER_AF_METERING_STATUS_WATER_REVERSE_FLOW (0x80) -#define EMBER_AF_METERING_STATUS_WATER_REVERSE_FLOW_OFFSET (7) -#define EMBER_AF_METERING_STATUS_HEAT_AND_COOLING_CHECK_METER (0x01) -#define EMBER_AF_METERING_STATUS_HEAT_AND_COOLING_LOW_BATTERY (0x02) -#define EMBER_AF_METERING_STATUS_HEAT_AND_COOLING_LOW_BATTERY_OFFSET (1) -#define EMBER_AF_METERING_STATUS_HEAT_AND_COOLING_TAMPER_DETECT (0x04) -#define EMBER_AF_METERING_STATUS_HEAT_AND_COOLING_TAMPER_DETECT_OFFSET (2) -#define EMBER_AF_METERING_STATUS_HEAT_AND_COOLING_TEMPERATURE_SENSOR (0x08) -#define EMBER_AF_METERING_STATUS_HEAT_AND_COOLING_TEMPERATURE_SENSOR_OFFSET (3) -#define EMBER_AF_METERING_STATUS_HEAT_AND_COOLING_BURST_DETECT (0x10) -#define EMBER_AF_METERING_STATUS_HEAT_AND_COOLING_BURST_DETECT_OFFSET (4) -#define EMBER_AF_METERING_STATUS_HEAT_AND_COOLING_LEAK_DETECT (0x20) -#define EMBER_AF_METERING_STATUS_HEAT_AND_COOLING_LEAK_DETECT_OFFSET (5) -#define EMBER_AF_METERING_STATUS_HEAT_AND_COOLING_SERVICE_DISCONNECT (0x40) -#define EMBER_AF_METERING_STATUS_HEAT_AND_COOLING_SERVICE_DISCONNECT_OFFSET (6) -#define EMBER_AF_METERING_STATUS_HEAT_AND_COOLING_FLOW_SENSOR (0x80) -#define EMBER_AF_METERING_STATUS_HEAT_AND_COOLING_FLOW_SENSOR_OFFSET (7) -#define EMBER_AF_METERING_EXTENDED_STATUS_METER_COVER_REMOVED (0x0000000000000001) -#define EMBER_AF_METERING_EXTENDED_STATUS_STRONG_MAGNETIC_FIELD_DETECTED (0x0000000000000002) -#define EMBER_AF_METERING_EXTENDED_STATUS_STRONG_MAGNETIC_FIELD_DETECTED_OFFSET (1) -#define EMBER_AF_METERING_EXTENDED_STATUS_BATTERY_FAILURE (0x0000000000000004) -#define EMBER_AF_METERING_EXTENDED_STATUS_BATTERY_FAILURE_OFFSET (2) -#define EMBER_AF_METERING_EXTENDED_STATUS_PROGRAM_MEMORY_ERROR (0x0000000000000008) -#define EMBER_AF_METERING_EXTENDED_STATUS_PROGRAM_MEMORY_ERROR_OFFSET (3) -#define EMBER_AF_METERING_EXTENDED_STATUS_RAM_ERROR (0x0000000000000010) -#define EMBER_AF_METERING_EXTENDED_STATUS_RAM_ERROR_OFFSET (4) -#define EMBER_AF_METERING_EXTENDED_STATUS_NV_MEMORY_ERROR (0x0000000000000020) -#define EMBER_AF_METERING_EXTENDED_STATUS_NV_MEMORY_ERROR_OFFSET (5) -#define EMBER_AF_METERING_EXTENDED_STATUS_MEASUREMENT_SYSTEM_ERROR (0x0000000000000040) -#define EMBER_AF_METERING_EXTENDED_STATUS_MEASUREMENT_SYSTEM_ERROR_OFFSET (6) -#define EMBER_AF_METERING_EXTENDED_STATUS_WATCHDOG_ERROR (0x0000000000000080) -#define EMBER_AF_METERING_EXTENDED_STATUS_WATCHDOG_ERROR_OFFSET (7) -#define EMBER_AF_METERING_EXTENDED_STATUS_SUPPLY_DISCONNECT_FAILURE (0x0000000000000100) -#define EMBER_AF_METERING_EXTENDED_STATUS_SUPPLY_DISCONNECT_FAILURE_OFFSET (8) -#define EMBER_AF_METERING_EXTENDED_STATUS_SUPPLY_CONNECT_FAILURE (0x0000000000000200) -#define EMBER_AF_METERING_EXTENDED_STATUS_SUPPLY_CONNECT_FAILURE_OFFSET (9) -#define EMBER_AF_METERING_EXTENDED_STATUS_MEASUREMENT_SW_CHANGED_TAMPERED (0x0000000000000400) -#define EMBER_AF_METERING_EXTENDED_STATUS_MEASUREMENT_SW_CHANGED_TAMPERED_OFFSET (10) -#define EMBER_AF_METERING_EXTENDED_STATUS_CLOCK_INVALID (0x0000000000000800) -#define EMBER_AF_METERING_EXTENDED_STATUS_CLOCK_INVALID_OFFSET (11) -#define EMBER_AF_METERING_EXTENDED_STATUS_TEMPERATURE_EXCEEDED (0x0000000000001000) -#define EMBER_AF_METERING_EXTENDED_STATUS_TEMPERATURE_EXCEEDED_OFFSET (12) -#define EMBER_AF_METERING_EXTENDED_STATUS_MOISTURE_DETECTED (0x0000000000002000) -#define EMBER_AF_METERING_EXTENDED_STATUS_MOISTURE_DETECTED_OFFSET (13) -#define EMBER_AF_METERING_EXTENDED_STATUS_GAS_METER_BATTERY_COVER_REMOVED (0x0000000001000000) -#define EMBER_AF_METERING_EXTENDED_STATUS_GAS_METER_BATTERY_COVER_REMOVED_OFFSET (24) -#define EMBER_AF_METERING_EXTENDED_STATUS_GAS_METER_TILT_TAMPER (0x0000000002000000) -#define EMBER_AF_METERING_EXTENDED_STATUS_GAS_METER_TILT_TAMPER_OFFSET (25) -#define EMBER_AF_METERING_EXTENDED_STATUS_GAS_METER_EXCESS_FLOW (0x0000000004000000) -#define EMBER_AF_METERING_EXTENDED_STATUS_GAS_METER_EXCESS_FLOW_OFFSET (26) -#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_LIMIT_THRESHOLD_EXCEEDED (0x0000000008000000) -#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_LIMIT_THRESHOLD_EXCEEDED_OFFSET (27) -#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_UNDER_VOLTAGE (0x0000000010000000) -#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_UNDER_VOLTAGE_OFFSET (28) -#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_OVER_VOLTAGE (0x0000000020000000) -#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_OVER_VOLTAGE_OFFSET (29) -#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_SERVICE_DISCONNECTION_REASON_OFF_DUE_TO_OVER_POWER (0x0000000040000000) -#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_SERVICE_DISCONNECTION_REASON_OFF_DUE_TO_OVER_POWER_OFFSET (30) -#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_SERVICE_DISCONNECTION_REASON_OFF_DUE_TO_OVER_VOLTAGE \ - (0x0000000080000000) -#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_SERVICE_DISCONNECTION_REASON_OFF_DUE_TO_OVER_VOLTAGE_OFFSET (31) -#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_SERVICE_DISCONNECTION_REASON_OFF_DUE_TO_REMOTE_LOAD_CONTROL \ - (0x00000000C0000000) -#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_SERVICE_DISCONNECTION_REASON_OFF_DUE_TO_REMOTE_LOAD_CONTROL_OFFSET (30) -#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_SERVICE_DISCONNECTION_REASON_OFF_BY_OTHER_REMOTE_COMMAND \ - (0x0000000100000000) -#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_SERVICE_DISCONNECTION_REASON_OFF_BY_OTHER_REMOTE_COMMAND_OFFSET (32) -#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_SERVICE_DISCONNECTION_REASON_OFF_DUE_TO_OVERHEATING_SHORT_CIRCUIT \ - (0x0000000140000000) -#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_SERVICE_DISCONNECTION_REASON_OFF_DUE_TO_OVERHEATING_SHORT_CIRCUIT_OFFSET \ - (30) -#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_SERVICE_DISCONNECTION_REASON_OFF_DUE_TO_OVERHEATING_OTHER \ - (0x0000000180000000) -#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_SERVICE_DISCONNECTION_REASON_OFF_DUE_TO_OVERHEATING_OTHER_OFFSET (31) -#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_BI_DIRECTIONAL_OPERATION (0x0000000400000000) -#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_BI_DIRECTIONAL_OPERATION_OFFSET (34) -#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_ACTIVE_POWER_RECEIVED (0x0000000800000000) -#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_ACTIVE_POWER_RECEIVED_OFFSET (35) -#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_MODE_OF_OPERATION (0x0000001000000000) -#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_MODE_OF_OPERATION_OFFSET (36) -#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_NEW_OTA_FIRMWARE (0x00000001) -#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_CBKE_UPDATE_REQUEST (0x00000002) -#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_CBKE_UPDATE_REQUEST_OFFSET (1) -#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_TIME_SYNC (0x00000004) -#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_TIME_SYNC_OFFSET (2) -#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_STAY_AWAKE_REQUEST_HAN (0x00000010) -#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_STAY_AWAKE_REQUEST_HAN_OFFSET (4) -#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_STAY_AWAKE_REQUEST_WAN (0x00000020) -#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_STAY_AWAKE_REQUEST_WAN_OFFSET (5) -#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_PUSH_HISTORICAL_METERING_DATA_ATTRIBUTE_SET (0x000001C0) -#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_PUSH_HISTORICAL_METERING_DATA_ATTRIBUTE_SET_OFFSET (6) -#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_PUSH_HISTORICAL_PREPAYMENT_DATA_ATTRIBUTE_SET (0x00000E00) -#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_PUSH_HISTORICAL_PREPAYMENT_DATA_ATTRIBUTE_SET_OFFSET (9) -#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_PUSH_ALL_STATIC_DATA_BASIC_CLUSTER (0x00001000) -#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_PUSH_ALL_STATIC_DATA_BASIC_CLUSTER_OFFSET (12) -#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_PUSH_ALL_STATIC_DATA_METERING_CLUSTER (0x00002000) -#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_PUSH_ALL_STATIC_DATA_METERING_CLUSTER_OFFSET (13) -#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_PUSH_ALL_STATIC_DATA_PREPAYMENT_CLUSTER (0x00004000) -#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_PUSH_ALL_STATIC_DATA_PREPAYMENT_CLUSTER_OFFSET (14) -#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_NETWORK_KEY_ACTIVE (0x00008000) -#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_NETWORK_KEY_ACTIVE_OFFSET (15) -#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_DISPLAY_MESSAGE (0x00010000) -#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_DISPLAY_MESSAGE_OFFSET (16) -#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_CANCEL_ALL_MESSAGES (0x00020000) -#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_CANCEL_ALL_MESSAGES_OFFSET (17) -#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_CHANGE_SUPPLY (0x00040000) -#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_CHANGE_SUPPLY_OFFSET (18) -#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_LOCAL_CHANGE_SUPPLY (0x00080000) -#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_LOCAL_CHANGE_SUPPLY_OFFSET (19) -#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_SET_UNCONTROLLED_FLOW_THRESHOLD (0x00100000) -#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_SET_UNCONTROLLED_FLOW_THRESHOLD_OFFSET (20) -#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_TUNNEL_MESSAGE_PENDING (0x00200000) -#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_TUNNEL_MESSAGE_PENDING_OFFSET (21) -#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_GET_SNAPSHOT (0x00400000) -#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_GET_SNAPSHOT_OFFSET (22) -#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_GET_SAMPLED_DATA (0x00800000) -#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_GET_SAMPLED_DATA_OFFSET (23) -#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_NEW_SUB_GHZ_CHANNEL_MASKS_AVAILABLE (0x01000000) -#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_NEW_SUB_GHZ_CHANNEL_MASKS_AVAILABLE_OFFSET (24) -#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_ENERGY_SCAN_PENDING (0x02000000) -#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_ENERGY_SCAN_PENDING_OFFSET (25) -#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_CHANNEL_CHANGE_PENDING (0x04000000) -#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_CHANNEL_CHANGE_PENDING_OFFSET (26) -#define EMBER_AF_SNAPSHOT_CAUSE_GENERAL (0x00000001) -#define EMBER_AF_SNAPSHOT_CAUSE_END_OF_BILLING_PERIOD (0x00000002) -#define EMBER_AF_SNAPSHOT_CAUSE_END_OF_BILLING_PERIOD_OFFSET (1) -#define EMBER_AF_SNAPSHOT_CAUSE_END_OF_BLOCK_PERIOD (0x00000004) -#define EMBER_AF_SNAPSHOT_CAUSE_END_OF_BLOCK_PERIOD_OFFSET (2) -#define EMBER_AF_SNAPSHOT_CAUSE_CHANGE_OF_TARIFF_INFORMATION (0x00000008) -#define EMBER_AF_SNAPSHOT_CAUSE_CHANGE_OF_TARIFF_INFORMATION_OFFSET (3) -#define EMBER_AF_SNAPSHOT_CAUSE_CHANGE_OF_PRICE_MATRIX (0x00000010) -#define EMBER_AF_SNAPSHOT_CAUSE_CHANGE_OF_PRICE_MATRIX_OFFSET (4) -#define EMBER_AF_SNAPSHOT_CAUSE_CHANGE_OF_BLOCK_THRESHOLDS (0x00000020) -#define EMBER_AF_SNAPSHOT_CAUSE_CHANGE_OF_BLOCK_THRESHOLDS_OFFSET (5) -#define EMBER_AF_SNAPSHOT_CAUSE_CHANGE_OF_CV (0x00000040) -#define EMBER_AF_SNAPSHOT_CAUSE_CHANGE_OF_CV_OFFSET (6) -#define EMBER_AF_SNAPSHOT_CAUSE_CHANGE_OF_CF (0x00000080) -#define EMBER_AF_SNAPSHOT_CAUSE_CHANGE_OF_CF_OFFSET (7) -#define EMBER_AF_SNAPSHOT_CAUSE_CHANGE_OF_CALENDAR (0x00000100) -#define EMBER_AF_SNAPSHOT_CAUSE_CHANGE_OF_CALENDAR_OFFSET (8) -#define EMBER_AF_SNAPSHOT_CAUSE_CRITICAL_PEAK_PRICING (0x00000200) -#define EMBER_AF_SNAPSHOT_CAUSE_CRITICAL_PEAK_PRICING_OFFSET (9) -#define EMBER_AF_SNAPSHOT_CAUSE_MANUALLY_TRIGGERED_FROM_CLIENT (0x00000400) -#define EMBER_AF_SNAPSHOT_CAUSE_MANUALLY_TRIGGERED_FROM_CLIENT_OFFSET (10) -#define EMBER_AF_SNAPSHOT_CAUSE_END_OF_RESOLVE_PERIOD (0x00000800) -#define EMBER_AF_SNAPSHOT_CAUSE_END_OF_RESOLVE_PERIOD_OFFSET (11) -#define EMBER_AF_SNAPSHOT_CAUSE_CHANGE_OF_TENANCY (0x00001000) -#define EMBER_AF_SNAPSHOT_CAUSE_CHANGE_OF_TENANCY_OFFSET (12) -#define EMBER_AF_SNAPSHOT_CAUSE_CHANGE_OF_SUPPLIER (0x00002000) -#define EMBER_AF_SNAPSHOT_CAUSE_CHANGE_OF_SUPPLIER_OFFSET (13) -#define EMBER_AF_SNAPSHOT_CAUSE_CHANGE_OF_MODE (0x00004000) -#define EMBER_AF_SNAPSHOT_CAUSE_CHANGE_OF_MODE_OFFSET (14) -#define EMBER_AF_SNAPSHOT_CAUSE_DEBT_PAYMENT (0x00008000) -#define EMBER_AF_SNAPSHOT_CAUSE_DEBT_PAYMENT_OFFSET (15) -#define EMBER_AF_SNAPSHOT_CAUSE_SCHEDULED_SNAPSHOT (0x00010000) -#define EMBER_AF_SNAPSHOT_CAUSE_SCHEDULED_SNAPSHOT_OFFSET (16) -#define EMBER_AF_SNAPSHOT_CAUSE_OTA_FIRMWARE_DOWNLOAD (0x00020000) -#define EMBER_AF_SNAPSHOT_CAUSE_OTA_FIRMWARE_DOWNLOAD_OFFSET (17) -#define EMBER_AF_SUPPLY_CONTROL_BITS_ACKNOWLEDGE_REQUIRED (0x01) -#define EMBER_AF_MESSAGING_CONTROL_MASK_TRANS_MECHANISM (0x03) -#define EMBER_AF_MESSAGING_CONTROL_MASK_MESSAGE_URGENCY (0x0C) -#define EMBER_AF_MESSAGING_CONTROL_MASK_MESSAGE_URGENCY_OFFSET (2) -#define EMBER_AF_MESSAGING_CONTROL_MASK_ENHANCED_CONFIRMATION_REQUEST (0x20) -#define EMBER_AF_MESSAGING_CONTROL_MASK_ENHANCED_CONFIRMATION_REQUEST_OFFSET (5) -#define EMBER_AF_MESSAGING_CONTROL_MASK_MESSAGE_CONFIRMATION (0x80) -#define EMBER_AF_MESSAGING_CONTROL_MASK_MESSAGE_CONFIRMATION_OFFSET (7) -#define EMBER_AF_MESSAGING_EXTENDED_CONTROL_MASK_MESSAGE_CONFIRMATION_STATUS (0x01) -#define EMBER_AF_MESSAGING_CONFIRMATION_CONTROL_NO_RETURNED (0x01) -#define EMBER_AF_MESSAGING_CONFIRMATION_CONTROL_YES_RETURNED (0x02) -#define EMBER_AF_MESSAGING_CONFIRMATION_CONTROL_YES_RETURNED_OFFSET (1) -#define EMBER_AF_PAYMENT_CONTROL_CONFIGURATION_DISCONNECTION_ENABLED (0x0001) -#define EMBER_AF_PAYMENT_CONTROL_CONFIGURATION_PREPAYMENT_ENABLED (0x0002) -#define EMBER_AF_PAYMENT_CONTROL_CONFIGURATION_PREPAYMENT_ENABLED_OFFSET (1) -#define EMBER_AF_PAYMENT_CONTROL_CONFIGURATION_CREDIT_MANAGEMENT_ENABLED (0x0004) -#define EMBER_AF_PAYMENT_CONTROL_CONFIGURATION_CREDIT_MANAGEMENT_ENABLED_OFFSET (2) -#define EMBER_AF_PAYMENT_CONTROL_CONFIGURATION_CREDIT_DISPLAY_ENABLED (0x0010) -#define EMBER_AF_PAYMENT_CONTROL_CONFIGURATION_CREDIT_DISPLAY_ENABLED_OFFSET (4) -#define EMBER_AF_PAYMENT_CONTROL_CONFIGURATION_ACCOUNT_BASE (0x0040) -#define EMBER_AF_PAYMENT_CONTROL_CONFIGURATION_ACCOUNT_BASE_OFFSET (6) -#define EMBER_AF_PAYMENT_CONTROL_CONFIGURATION_CONTACTOR_FITTED (0x0080) -#define EMBER_AF_PAYMENT_CONTROL_CONFIGURATION_CONTACTOR_FITTED_OFFSET (7) -#define EMBER_AF_PAYMENT_CONTROL_CONFIGURATION_STANDING_CHARGE_CONFIGURATION (0x0100) -#define EMBER_AF_PAYMENT_CONTROL_CONFIGURATION_STANDING_CHARGE_CONFIGURATION_OFFSET (8) -#define EMBER_AF_PAYMENT_CONTROL_CONFIGURATION_EMERGENCY_STANDING_CHARGE_CONFIGURATION (0x0200) -#define EMBER_AF_PAYMENT_CONTROL_CONFIGURATION_EMERGENCY_STANDING_CHARGE_CONFIGURATION_OFFSET (9) -#define EMBER_AF_PAYMENT_CONTROL_CONFIGURATION_DEBT_CONFIGURATION (0x0400) -#define EMBER_AF_PAYMENT_CONTROL_CONFIGURATION_DEBT_CONFIGURATION_OFFSET (10) -#define EMBER_AF_PAYMENT_CONTROL_CONFIGURATION_EMERGENCY_DEBT_CONFIGURATION (0x0800) -#define EMBER_AF_PAYMENT_CONTROL_CONFIGURATION_EMERGENCY_DEBT_CONFIGURATION_OFFSET (11) -#define EMBER_AF_CREDIT_STATUS_CREDIT_OK (0x01) -#define EMBER_AF_CREDIT_STATUS_LOW_CREDIT (0x02) -#define EMBER_AF_CREDIT_STATUS_LOW_CREDIT_OFFSET (1) -#define EMBER_AF_CREDIT_STATUS_EMERGENCY_CREDIT_ENABLED (0x04) -#define EMBER_AF_CREDIT_STATUS_EMERGENCY_CREDIT_ENABLED_OFFSET (2) -#define EMBER_AF_CREDIT_STATUS_EMERGENCY_CREDIT_AVAILABLE (0x08) -#define EMBER_AF_CREDIT_STATUS_EMERGENCY_CREDIT_AVAILABLE_OFFSET (3) -#define EMBER_AF_CREDIT_STATUS_EMERGENCY_CREDIT_SELECTED (0x10) -#define EMBER_AF_CREDIT_STATUS_EMERGENCY_CREDIT_SELECTED_OFFSET (4) -#define EMBER_AF_CREDIT_STATUS_EMERGENCY_CREDIT_IN_USE (0x20) -#define EMBER_AF_CREDIT_STATUS_EMERGENCY_CREDIT_IN_USE_OFFSET (5) -#define EMBER_AF_CREDIT_STATUS_CREDIT_EXHAUSTED (0x40) -#define EMBER_AF_CREDIT_STATUS_CREDIT_EXHAUSTED_OFFSET (6) -#define EMBER_AF_PREPAYMENT_ALARM_STATUS_LOW_CREDIT_WARNING (0x0001) -#define EMBER_AF_PREPAYMENT_ALARM_STATUS_TOP_UP_CODE_ERROR (0x0002) -#define EMBER_AF_PREPAYMENT_ALARM_STATUS_TOP_UP_CODE_ERROR_OFFSET (1) -#define EMBER_AF_PREPAYMENT_ALARM_STATUS_TOP_UP_CODE_ALREADY_USED (0x0004) -#define EMBER_AF_PREPAYMENT_ALARM_STATUS_TOP_UP_CODE_ALREADY_USED_OFFSET (2) -#define EMBER_AF_PREPAYMENT_ALARM_STATUS_TOP_UP_CODE_INVALID (0x0008) -#define EMBER_AF_PREPAYMENT_ALARM_STATUS_TOP_UP_CODE_INVALID_OFFSET (3) -#define EMBER_AF_PREPAYMENT_ALARM_STATUS_FRIENDLY_CREDIT_IN_USE (0x0010) -#define EMBER_AF_PREPAYMENT_ALARM_STATUS_FRIENDLY_CREDIT_IN_USE_OFFSET (4) -#define EMBER_AF_PREPAYMENT_ALARM_STATUS_FRIENDLY_CREDIT_PERIOD_END_WARNING (0x0020) -#define EMBER_AF_PREPAYMENT_ALARM_STATUS_FRIENDLY_CREDIT_PERIOD_END_WARNING_OFFSET (5) -#define EMBER_AF_PREPAYMENT_ALARM_STATUS_EC_AVAILABLE (0x0040) -#define EMBER_AF_PREPAYMENT_ALARM_STATUS_EC_AVAILABLE_OFFSET (6) -#define EMBER_AF_PREPAYMENT_ALARM_STATUS_UNAUTHORISED_ENERGY_USE (0x0080) -#define EMBER_AF_PREPAYMENT_ALARM_STATUS_UNAUTHORISED_ENERGY_USE_OFFSET (7) -#define EMBER_AF_PREPAYMENT_ALARM_STATUS_DISCONNECTED_SUPPLY_DUE_TO_CREDIT (0x0100) -#define EMBER_AF_PREPAYMENT_ALARM_STATUS_DISCONNECTED_SUPPLY_DUE_TO_CREDIT_OFFSET (8) -#define EMBER_AF_PREPAYMENT_ALARM_STATUS_DISCONNECTED_SUPPLY_DUE_TO_TAMPER (0x0200) -#define EMBER_AF_PREPAYMENT_ALARM_STATUS_DISCONNECTED_SUPPLY_DUE_TO_TAMPER_OFFSET (9) -#define EMBER_AF_PREPAYMENT_ALARM_STATUS_DISCONNECTED_SUPPLY_DUE_TO_HES (0x0400) -#define EMBER_AF_PREPAYMENT_ALARM_STATUS_DISCONNECTED_SUPPLY_DUE_TO_HES_OFFSET (10) -#define EMBER_AF_PREPAYMENT_ALARM_STATUS_PHYSICAL_ATTACK (0x0800) -#define EMBER_AF_PREPAYMENT_ALARM_STATUS_PHYSICAL_ATTACK_OFFSET (11) -#define EMBER_AF_PREPAYMENT_ALARM_STATUS_ELECTRONIC_ATTACK (0x1000) -#define EMBER_AF_PREPAYMENT_ALARM_STATUS_ELECTRONIC_ATTACK_OFFSET (12) -#define EMBER_AF_PREPAYMENT_ALARM_STATUS_MANUFACTURE_ALARM_CODE_A (0x2000) -#define EMBER_AF_PREPAYMENT_ALARM_STATUS_MANUFACTURE_ALARM_CODE_A_OFFSET (13) -#define EMBER_AF_PREPAYMENT_ALARM_STATUS_MANUFACTURE_ALARM_CODE_B (0x4000) -#define EMBER_AF_PREPAYMENT_ALARM_STATUS_MANUFACTURE_ALARM_CODE_B_OFFSET (14) -#define EMBER_AF_ORIGINATOR_ID_SUPPLY_CONTROL_BITS_ACKNOWLEDGE_REQUIRED (0x01) -#define EMBER_AF_PREPAY_SNAPSHOT_PAYLOAD_CAUSE_GENERAL (0x00000001) -#define EMBER_AF_PREPAY_SNAPSHOT_PAYLOAD_CAUSE_CHANGE_OF_TARIFF_INFORMATION (0x00000008) -#define EMBER_AF_PREPAY_SNAPSHOT_PAYLOAD_CAUSE_CHANGE_OF_TARIFF_INFORMATION_OFFSET (3) -#define EMBER_AF_PREPAY_SNAPSHOT_PAYLOAD_CAUSE_CHANGE_OF_PRICE_MATRIX (0x00000010) -#define EMBER_AF_PREPAY_SNAPSHOT_PAYLOAD_CAUSE_CHANGE_OF_PRICE_MATRIX_OFFSET (4) -#define EMBER_AF_PREPAY_SNAPSHOT_PAYLOAD_CAUSE_MANUALLY_TRIGGERED_FROM_CLIENT (0x00000400) -#define EMBER_AF_PREPAY_SNAPSHOT_PAYLOAD_CAUSE_MANUALLY_TRIGGERED_FROM_CLIENT_OFFSET (10) -#define EMBER_AF_PREPAY_SNAPSHOT_PAYLOAD_CAUSE_CHANGE_OF_TENANCY (0x00001000) -#define EMBER_AF_PREPAY_SNAPSHOT_PAYLOAD_CAUSE_CHANGE_OF_TENANCY_OFFSET (12) -#define EMBER_AF_PREPAY_SNAPSHOT_PAYLOAD_CAUSE_CHANGE_OF_SUPPLIER (0x00002000) -#define EMBER_AF_PREPAY_SNAPSHOT_PAYLOAD_CAUSE_CHANGE_OF_SUPPLIER_OFFSET (13) -#define EMBER_AF_PREPAY_SNAPSHOT_PAYLOAD_CAUSE_CHANGE_OF_METER_MODE (0x00004000) -#define EMBER_AF_PREPAY_SNAPSHOT_PAYLOAD_CAUSE_CHANGE_OF_METER_MODE_OFFSET (14) -#define EMBER_AF_PREPAY_SNAPSHOT_PAYLOAD_CAUSE_TOP_UP_ADDITION (0x00040000) -#define EMBER_AF_PREPAY_SNAPSHOT_PAYLOAD_CAUSE_TOP_UP_ADDITION_OFFSET (18) -#define EMBER_AF_PREPAY_SNAPSHOT_PAYLOAD_CAUSE_DEBT_CREDIT_ADDITION (0x00080000) -#define EMBER_AF_PREPAY_SNAPSHOT_PAYLOAD_CAUSE_DEBT_CREDIT_ADDITION_OFFSET (19) -#define EMBER_AF_FRIENDLY_CREDIT_FRIENDLY_CREDIT_ENABLED (0x01) -#define EMBER_AF_LOAD_CONTROL_STATE_RELAY_OPEN_OR_CONSUMPTION_INTERUPTED (0x01) -#define EMBER_AF_LOAD_CONTROL_STATE_EVENT_IN_PROGRESS (0x02) -#define EMBER_AF_LOAD_CONTROL_STATE_EVENT_IN_PROGRESS_OFFSET (1) -#define EMBER_AF_LOAD_CONTROL_STATE_POWER_STABILIZING (0x04) -#define EMBER_AF_LOAD_CONTROL_STATE_POWER_STABILIZING_OFFSET (2) -#define EMBER_AF_LOAD_CONTROL_STATE_OTHER_LOAD_REDUCTION (0x08) -#define EMBER_AF_LOAD_CONTROL_STATE_OTHER_LOAD_REDUCTION_OFFSET (3) -#define EMBER_AF_LOAD_CONTROL_STATE_CURRENT_FLOW_OR_CONSUMING_COMMODITY (0x10) -#define EMBER_AF_LOAD_CONTROL_STATE_CURRENT_FLOW_OR_CONSUMING_COMMODITY_OFFSET (4) -#define EMBER_AF_LOAD_CONTROL_STATE_LOAD_CALL (0x20) -#define EMBER_AF_LOAD_CONTROL_STATE_LOAD_CALL_OFFSET (5) -#define EMBER_AF_CURRENT_EVENT_STATUS_RANDOMIZED_START_TIME (0x01) -#define EMBER_AF_CURRENT_EVENT_STATUS_RANDOMIZED_DURATION (0x02) -#define EMBER_AF_CURRENT_EVENT_STATUS_RANDOMIZED_DURATION_OFFSET (1) -#define EMBER_AF_CURRENT_EVENT_STATUS_EXTENDED_BITS_PRESENT (0x04) -#define EMBER_AF_CURRENT_EVENT_STATUS_EXTENDED_BITS_PRESENT_OFFSET (2) -#define EMBER_AF_CURRENT_EVENT_STATUS_EVENT_ACTIVE (0x08) -#define EMBER_AF_CURRENT_EVENT_STATUS_EVENT_ACTIVE_OFFSET (3) -#define EMBER_AF_CURRENT_EVENT_STATUS_DEVICE_PARTICIPATING_IN_EVENT (0x10) -#define EMBER_AF_CURRENT_EVENT_STATUS_DEVICE_PARTICIPATING_IN_EVENT_OFFSET (4) -#define EMBER_AF_CURRENT_EVENT_STATUS_REDUCING_LOAD (0x20) -#define EMBER_AF_CURRENT_EVENT_STATUS_REDUCING_LOAD_OFFSET (5) -#define EMBER_AF_CURRENT_EVENT_STATUS_ON_AT_END_OF_EVENT (0x40) -#define EMBER_AF_CURRENT_EVENT_STATUS_ON_AT_END_OF_EVENT_OFFSET (6) -#define EMBER_AF_AUXILIARY_LOAD_SWITCH_STATE_AUXILIARY_SWITCH1 (0x01) -#define EMBER_AF_AUXILIARY_LOAD_SWITCH_STATE_AUXILIARY_SWITCH2 (0x02) -#define EMBER_AF_AUXILIARY_LOAD_SWITCH_STATE_AUXILIARY_SWITCH2_OFFSET (1) -#define EMBER_AF_AUXILIARY_LOAD_SWITCH_STATE_AUXILIARY_SWITCH3 (0x04) -#define EMBER_AF_AUXILIARY_LOAD_SWITCH_STATE_AUXILIARY_SWITCH3_OFFSET (2) -#define EMBER_AF_AUXILIARY_LOAD_SWITCH_STATE_AUXILIARY_SWITCH4 (0x08) -#define EMBER_AF_AUXILIARY_LOAD_SWITCH_STATE_AUXILIARY_SWITCH4_OFFSET (3) -#define EMBER_AF_AUXILIARY_LOAD_SWITCH_STATE_AUXILIARY_SWITCH5 (0x10) -#define EMBER_AF_AUXILIARY_LOAD_SWITCH_STATE_AUXILIARY_SWITCH5_OFFSET (4) -#define EMBER_AF_AUXILIARY_LOAD_SWITCH_STATE_AUXILIARY_SWITCH6 (0x20) -#define EMBER_AF_AUXILIARY_LOAD_SWITCH_STATE_AUXILIARY_SWITCH6_OFFSET (5) -#define EMBER_AF_AUXILIARY_LOAD_SWITCH_STATE_AUXILIARY_SWITCH7 (0x40) -#define EMBER_AF_AUXILIARY_LOAD_SWITCH_STATE_AUXILIARY_SWITCH7_OFFSET (6) -#define EMBER_AF_AUXILIARY_LOAD_SWITCH_STATE_AUXILIARY_SWITCH8 (0x80) -#define EMBER_AF_AUXILIARY_LOAD_SWITCH_STATE_AUXILIARY_SWITCH8_OFFSET (7) -#define EMBER_AF_PROPOSED_CHANGE_CONTROL_PRE_SNAPSHOTS (0x00000001) -#define EMBER_AF_PROPOSED_CHANGE_CONTROL_POST_SNAPSHOTS (0x00000002) -#define EMBER_AF_PROPOSED_CHANGE_CONTROL_POST_SNAPSHOTS_OFFSET (1) -#define EMBER_AF_PROPOSED_CHANGE_CONTROL_RESET_CREDIT_REGISTER (0x00000004) -#define EMBER_AF_PROPOSED_CHANGE_CONTROL_RESET_CREDIT_REGISTER_OFFSET (2) -#define EMBER_AF_PROPOSED_CHANGE_CONTROL_RESET_DEBIT_REGISTER (0x00000008) -#define EMBER_AF_PROPOSED_CHANGE_CONTROL_RESET_DEBIT_REGISTER_OFFSET (3) -#define EMBER_AF_PROPOSED_CHANGE_CONTROL_RESET_BILLING_PERIOD (0x00000010) -#define EMBER_AF_PROPOSED_CHANGE_CONTROL_RESET_BILLING_PERIOD_OFFSET (4) -#define EMBER_AF_PROPOSED_CHANGE_CONTROL_CLEAR_TARIFF_PLAN (0x00000020) -#define EMBER_AF_PROPOSED_CHANGE_CONTROL_CLEAR_TARIFF_PLAN_OFFSET (5) -#define EMBER_AF_PROPOSED_CHANGE_CONTROL_CLEAR_STANDING_CHARGE (0x00000040) -#define EMBER_AF_PROPOSED_CHANGE_CONTROL_CLEAR_STANDING_CHARGE_OFFSET (6) -#define EMBER_AF_PROPOSED_CHANGE_CONTROL_BLOCK_HISTORICAL_LOAD_PROFILE_INFORMATION (0x00000080) -#define EMBER_AF_PROPOSED_CHANGE_CONTROL_BLOCK_HISTORICAL_LOAD_PROFILE_INFORMATION_OFFSET (7) -#define EMBER_AF_PROPOSED_CHANGE_CONTROL_CLEAR_HISTORICAL_LOAD_PROFILE_INFORMATION (0x00000100) -#define EMBER_AF_PROPOSED_CHANGE_CONTROL_CLEAR_HISTORICAL_LOAD_PROFILE_INFORMATION_OFFSET (8) -#define EMBER_AF_PROPOSED_CHANGE_CONTROL_CLEAR_IHD_DATA_CONSUMER (0x00000200) -#define EMBER_AF_PROPOSED_CHANGE_CONTROL_CLEAR_IHD_DATA_CONSUMER_OFFSET (9) -#define EMBER_AF_PROPOSED_CHANGE_CONTROL_CLEAR_IHD_DATA_SUPPLIER (0x00000400) -#define EMBER_AF_PROPOSED_CHANGE_CONTROL_CLEAR_IHD_DATA_SUPPLIER_OFFSET (10) -#define EMBER_AF_PROPOSED_CHANGE_CONTROL_METER_CONNECTOR_STATE_ON_OFF_ARMED (0x00001800) -#define EMBER_AF_PROPOSED_CHANGE_CONTROL_METER_CONNECTOR_STATE_ON_OFF_ARMED_OFFSET (11) -#define EMBER_AF_PROPOSED_CHANGE_CONTROL_CLEAR_TRANSACTION_LOG (0x00002000) -#define EMBER_AF_PROPOSED_CHANGE_CONTROL_CLEAR_TRANSACTION_LOG_OFFSET (13) -#define EMBER_AF_PROPOSED_CHANGE_CONTROL_CLEAR_PREPAYMENT_LOG (0x00004000) -#define EMBER_AF_PROPOSED_CHANGE_CONTROL_CLEAR_PREPAYMENT_LOG_OFFSET (14) -#define EMBER_AF_EVENT_CONFIGURATION_LOG_ACTION (0x07) -#define EMBER_AF_EVENT_CONFIGURATION_PUSH_EVENT_TO_W_A_N (0x08) -#define EMBER_AF_EVENT_CONFIGURATION_PUSH_EVENT_TO_W_A_N_OFFSET (3) -#define EMBER_AF_EVENT_CONFIGURATION_PUSH_EVENT_TO_H_A_N (0x10) -#define EMBER_AF_EVENT_CONFIGURATION_PUSH_EVENT_TO_H_A_N_OFFSET (4) -#define EMBER_AF_EVENT_CONFIGURATION_RAISE_ALARM_ZIG_BEE (0x20) -#define EMBER_AF_EVENT_CONFIGURATION_RAISE_ALARM_ZIG_BEE_OFFSET (5) -#define EMBER_AF_EVENT_CONFIGURATION_RAISE_ALARM_PHYSICAL (0x40) -#define EMBER_AF_EVENT_CONFIGURATION_RAISE_ALARM_PHYSICAL_OFFSET (6) -#define EMBER_AF_EVENT_CONTROL_LOG_ID_LOG_ID (0x0F) -#define EMBER_AF_EVENT_CONTROL_LOG_ID_EVENT_CONTROL (0xF0) -#define EMBER_AF_EVENT_CONTROL_LOG_ID_EVENT_CONTROL_OFFSET (4) -#define EMBER_AF_EVENT_ACTION_CONTROL_REPORT_EVENT_TO_H_A_N_DEVICES (0x01) -#define EMBER_AF_EVENT_ACTION_CONTROL_REPORT_EVENT_TO_W_A_N (0x02) -#define EMBER_AF_EVENT_ACTION_CONTROL_REPORT_EVENT_TO_W_A_N_OFFSET (1) -#define EMBER_AF_NUMBER_OF_EVENTS_LOG_PAYLOAD_CONTROL_LOG_PAYLOAD_CONTROL (0x0F) -#define EMBER_AF_NUMBER_OF_EVENTS_LOG_PAYLOAD_CONTROL_NUMBER_OF_EVENTS (0xF0) -#define EMBER_AF_NUMBER_OF_EVENTS_LOG_PAYLOAD_CONTROL_NUMBER_OF_EVENTS_OFFSET (4) -#define EMBER_AF_CLEARED_EVENTS_LOGS_ALL_LOGS_CLEARED (0x01) -#define EMBER_AF_CLEARED_EVENTS_LOGS_TAMPER_LOG_CLEARED (0x02) -#define EMBER_AF_CLEARED_EVENTS_LOGS_TAMPER_LOG_CLEARED_OFFSET (1) -#define EMBER_AF_CLEARED_EVENTS_LOGS_FAULT_LOG_CLEARED (0x04) -#define EMBER_AF_CLEARED_EVENTS_LOGS_FAULT_LOG_CLEARED_OFFSET (2) -#define EMBER_AF_CLEARED_EVENTS_LOGS_GENERAL_EVENT_LOG_CLEARED (0x08) -#define EMBER_AF_CLEARED_EVENTS_LOGS_GENERAL_EVENT_LOG_CLEARED_OFFSET (3) -#define EMBER_AF_CLEARED_EVENTS_LOGS_SECURITY_EVENT_LOG_CLEARED (0x10) -#define EMBER_AF_CLEARED_EVENTS_LOGS_SECURITY_EVENT_LOG_CLEARED_OFFSET (4) -#define EMBER_AF_CLEARED_EVENTS_LOGS_NETWORK_EVENT_LOG_CLEARED (0x20) -#define EMBER_AF_CLEARED_EVENTS_LOGS_NETWORK_EVENT_LOG_CLEARED_OFFSET (5) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL0 (0x00000001) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL1 (0x00000002) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL1_OFFSET (1) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL2 (0x00000004) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL2_OFFSET (2) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL3 (0x00000008) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL3_OFFSET (3) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL4 (0x00000010) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL4_OFFSET (4) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL5 (0x00000020) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL5_OFFSET (5) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL6 (0x00000040) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL6_OFFSET (6) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL7 (0x00000080) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL7_OFFSET (7) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL8 (0x00000100) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL8_OFFSET (8) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL9 (0x00000200) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL9_OFFSET (9) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL10 (0x00000400) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL10_OFFSET (10) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL11 (0x00000800) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL11_OFFSET (11) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL12 (0x00001000) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL12_OFFSET (12) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL13 (0x00002000) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL13_OFFSET (13) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL14 (0x00004000) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL14_OFFSET (14) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL15 (0x00008000) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL15_OFFSET (15) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL16 (0x00010000) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL16_OFFSET (16) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL17 (0x00020000) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL17_OFFSET (17) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL18 (0x00040000) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL18_OFFSET (18) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL19 (0x00080000) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL19_OFFSET (19) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL20 (0x00100000) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL20_OFFSET (20) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL21 (0x00200000) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL21_OFFSET (21) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL22 (0x00400000) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL22_OFFSET (22) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL23 (0x00800000) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL23_OFFSET (23) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL24 (0x01000000) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL24_OFFSET (24) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL25 (0x02000000) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL25_OFFSET (25) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL26 (0x04000000) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL26_OFFSET (26) -#define EMBER_AF_CHANNEL_MASK_PAGE (0xF8000000) -#define EMBER_AF_CHANNEL_MASK_PAGE_OFFSET (27) -#define EMBER_AF_SCENES_COPY_MODE_COPY_ALL_SCENES (0x01) -#define EMBER_AF_ON_OFF_CONTROL_ACCEPT_ONLY_WHEN_ON (0x01) -#define EMBER_AF_COLOR_CAPABILITIES_HUE_SATURATION_SUPPORTED (0x0001) -#define EMBER_AF_COLOR_CAPABILITIES_ENHANCED_HUE_SUPPORTED (0x0002) -#define EMBER_AF_COLOR_CAPABILITIES_ENHANCED_HUE_SUPPORTED_OFFSET (1) -#define EMBER_AF_COLOR_CAPABILITIES_COLOR_LOOP_SUPPORTED (0x0004) -#define EMBER_AF_COLOR_CAPABILITIES_COLOR_LOOP_SUPPORTED_OFFSET (2) -#define EMBER_AF_COLOR_CAPABILITIES_X_Y_ATTRIBUTES_SUPPORTED (0x0008) -#define EMBER_AF_COLOR_CAPABILITIES_X_Y_ATTRIBUTES_SUPPORTED_OFFSET (3) -#define EMBER_AF_COLOR_CAPABILITIES_COLOR_TEMPERATURE_SUPPORTED (0x0010) -#define EMBER_AF_COLOR_CAPABILITIES_COLOR_TEMPERATURE_SUPPORTED_OFFSET (4) -#define EMBER_AF_COLOR_LOOP_UPDATE_FLAGS_UPDATE_ACTION (0x01) -#define EMBER_AF_COLOR_LOOP_UPDATE_FLAGS_UPDATE_DIRECTION (0x02) -#define EMBER_AF_COLOR_LOOP_UPDATE_FLAGS_UPDATE_DIRECTION_OFFSET (1) -#define EMBER_AF_COLOR_LOOP_UPDATE_FLAGS_UPDATE_TIME (0x04) -#define EMBER_AF_COLOR_LOOP_UPDATE_FLAGS_UPDATE_TIME_OFFSET (2) -#define EMBER_AF_COLOR_LOOP_UPDATE_FLAGS_UPDATE_START_HUE (0x08) -#define EMBER_AF_COLOR_LOOP_UPDATE_FLAGS_UPDATE_START_HUE_OFFSET (3) -#define EMBER_AF_ZIGBEE_INFORMATION_LOGICAL_TYPE (0x03) -#define EMBER_AF_ZIGBEE_INFORMATION_RX_ON_WHEN_IDLE (0x04) -#define EMBER_AF_ZIGBEE_INFORMATION_RX_ON_WHEN_IDLE_OFFSET (2) -#define EMBER_AF_ZLL_INFORMATION_FACTORY_NEW (0x01) -#define EMBER_AF_ZLL_INFORMATION_ADDRESS_ASSIGNMENT (0x02) -#define EMBER_AF_ZLL_INFORMATION_ADDRESS_ASSIGNMENT_OFFSET (1) -#define EMBER_AF_ZLL_INFORMATION_TOUCH_LINK_INITIATOR (0x10) -#define EMBER_AF_ZLL_INFORMATION_TOUCH_LINK_INITIATOR_OFFSET (4) -#define EMBER_AF_ZLL_INFORMATION_TOUCH_LINK_PRIORITY_REQUEST (0x20) -#define EMBER_AF_ZLL_INFORMATION_TOUCH_LINK_PRIORITY_REQUEST_OFFSET (5) -#define EMBER_AF_ZLL_INFORMATION_PROFILE_INTEROP (0x80) -#define EMBER_AF_ZLL_INFORMATION_PROFILE_INTEROP_OFFSET (7) -#define EMBER_AF_KEY_BITMASK_DEVELOPMENT (0x0001) -#define EMBER_AF_KEY_BITMASK_MASTER (0x0010) -#define EMBER_AF_KEY_BITMASK_MASTER_OFFSET (4) -#define EMBER_AF_KEY_BITMASK_CERTIFICATION (0x8000) -#define EMBER_AF_KEY_BITMASK_CERTIFICATION_OFFSET (15) -#define EMBER_AF_GP_GPS_FUNCTIONALITY_GP_FEATURE (0x000001) -#define EMBER_AF_GP_GPS_FUNCTIONALITY_DIRECT_COMMUNICATION (0x000002) -#define EMBER_AF_GP_GPS_FUNCTIONALITY_DIRECT_COMMUNICATION_OFFSET (1) -#define EMBER_AF_GP_GPS_FUNCTIONALITY_DERIVED_GROUPCAST_COMMUNICATION (0x000004) -#define EMBER_AF_GP_GPS_FUNCTIONALITY_DERIVED_GROUPCAST_COMMUNICATION_OFFSET (2) -#define EMBER_AF_GP_GPS_FUNCTIONALITY_PRE_COMMISSIONED_GROUPCAST_COMMUNICATION (0x000008) -#define EMBER_AF_GP_GPS_FUNCTIONALITY_PRE_COMMISSIONED_GROUPCAST_COMMUNICATION_OFFSET (3) -#define EMBER_AF_GP_GPS_FUNCTIONALITY_FULL_UNICAST_COMMUNICATION (0x000010) -#define EMBER_AF_GP_GPS_FUNCTIONALITY_FULL_UNICAST_COMMUNICATION_OFFSET (4) -#define EMBER_AF_GP_GPS_FUNCTIONALITY_LIGHTWEIGHT_UNICAST_COMMUNICATION (0x000020) -#define EMBER_AF_GP_GPS_FUNCTIONALITY_LIGHTWEIGHT_UNICAST_COMMUNICATION_OFFSET (5) -#define EMBER_AF_GP_GPS_FUNCTIONALITY_PROXIMITY_BIDIRECTIONAL_COMMUNICATION (0x000040) -#define EMBER_AF_GP_GPS_FUNCTIONALITY_PROXIMITY_BIDIRECTIONAL_COMMUNICATION_OFFSET (6) -#define EMBER_AF_GP_GPS_FUNCTIONALITY_MULTIHOP_BIDIRECTIONAL_COMMUNICATION (0x000080) -#define EMBER_AF_GP_GPS_FUNCTIONALITY_MULTIHOP_BIDIRECTIONAL_COMMUNICATION_OFFSET (7) -#define EMBER_AF_GP_GPS_FUNCTIONALITY_PROXY_TABLE_MAINTAINANCE (0x000100) -#define EMBER_AF_GP_GPS_FUNCTIONALITY_PROXY_TABLE_MAINTAINANCE_OFFSET (8) -#define EMBER_AF_GP_GPS_FUNCTIONALITY_PROXIMITY_COMMUNICATION (0x000200) -#define EMBER_AF_GP_GPS_FUNCTIONALITY_PROXIMITY_COMMUNICATION_OFFSET (9) -#define EMBER_AF_GP_GPS_FUNCTIONALITY_MULTIHOP_COMMUNICATION (0x000400) -#define EMBER_AF_GP_GPS_FUNCTIONALITY_MULTIHOP_COMMUNICATION_OFFSET (10) -#define EMBER_AF_GP_GPS_FUNCTIONALITY_CT_BASED_COMMISSIONING (0x000800) -#define EMBER_AF_GP_GPS_FUNCTIONALITY_CT_BASED_COMMISSIONING_OFFSET (11) -#define EMBER_AF_GP_GPS_FUNCTIONALITY_MAINTAINANCE_GPDF (0x001000) -#define EMBER_AF_GP_GPS_FUNCTIONALITY_MAINTAINANCE_GPDF_OFFSET (12) -#define EMBER_AF_GP_GPS_FUNCTIONALITY_GPD_SECURITY_LEVEL0_IN_OPERATION (0x002000) -#define EMBER_AF_GP_GPS_FUNCTIONALITY_GPD_SECURITY_LEVEL0_IN_OPERATION_OFFSET (13) -#define EMBER_AF_GP_GPS_FUNCTIONALITY_GPD_SECURITY_LEVEL1_IN_OPERATION (0x004000) -#define EMBER_AF_GP_GPS_FUNCTIONALITY_GPD_SECURITY_LEVEL1_IN_OPERATION_OFFSET (14) -#define EMBER_AF_GP_GPS_FUNCTIONALITY_GPD_SECURITY_LEVEL2_IN_OPERATION (0x008000) -#define EMBER_AF_GP_GPS_FUNCTIONALITY_GPD_SECURITY_LEVEL2_IN_OPERATION_OFFSET (15) -#define EMBER_AF_GP_GPS_FUNCTIONALITY_GPD_SECURITY_LEVEL3_IN_OPERATION (0x010000) -#define EMBER_AF_GP_GPS_FUNCTIONALITY_GPD_SECURITY_LEVEL3_IN_OPERATION_OFFSET (16) -#define EMBER_AF_GP_GPS_FUNCTIONALITY_SINK_TABLE_BASED_GROUPCAST_FORWARDING (0x020000) -#define EMBER_AF_GP_GPS_FUNCTIONALITY_SINK_TABLE_BASED_GROUPCAST_FORWARDING_OFFSET (17) -#define EMBER_AF_GP_GPS_FUNCTIONALITY_TRANSLATION_TABLE (0x040000) -#define EMBER_AF_GP_GPS_FUNCTIONALITY_TRANSLATION_TABLE_OFFSET (18) -#define EMBER_AF_GP_GPS_FUNCTIONALITY_GPD_IEEE_ADDRESS (0x080000) -#define EMBER_AF_GP_GPS_FUNCTIONALITY_GPD_IEEE_ADDRESS_OFFSET (19) -#define EMBER_AF_GP_GPS_FUNCTIONALITY_COMPACT_ATTRIBUTE_REPORTING (0x100000) -#define EMBER_AF_GP_GPS_FUNCTIONALITY_COMPACT_ATTRIBUTE_REPORTING_OFFSET (20) -#define EMBER_AF_GP_GPS_FUNCTIONALITY_RESERVED (0xE00000) -#define EMBER_AF_GP_GPS_FUNCTIONALITY_RESERVED_OFFSET (21) -#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_APPLICATION_ID (0x00000007) -#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_ENTRY_ACTIVE (0x00000008) -#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_ENTRY_ACTIVE_OFFSET (3) -#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_ENTRY_VALID (0x00000010) -#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_ENTRY_VALID_OFFSET (4) -#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_SEQUENCE_NUMBER_CAP (0x00000020) -#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_SEQUENCE_NUMBER_CAP_OFFSET (5) -#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_LIGHTWEIGHT_UNICAST_GPS (0x00000040) -#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_LIGHTWEIGHT_UNICAST_GPS_OFFSET (6) -#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_DERIVED_GROUP_GPS (0x00000080) -#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_DERIVED_GROUP_GPS_OFFSET (7) -#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_COMMISIONED_GROUP_GPS (0x00000100) -#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_COMMISIONED_GROUP_GPS_OFFSET (8) -#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_FIRST_TO_FORWARD (0x00000200) -#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_FIRST_TO_FORWARD_OFFSET (9) -#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_IN_RANGE (0x00000400) -#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_IN_RANGE_OFFSET (10) -#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_GPD_FIXED (0x00000800) -#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_GPD_FIXED_OFFSET (11) -#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_HAS_ALL_UNICAST_ROUTES (0x00001000) -#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_HAS_ALL_UNICAST_ROUTES_OFFSET (12) -#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_ASSIGNED_ALIAS (0x00002000) -#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_ASSIGNED_ALIAS_OFFSET (13) -#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_SECURITY_USE (0x00004000) -#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_SECURITY_USE_OFFSET (14) -#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_EXTENSION (0x00008000) -#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_EXTENSION_OFFSET (15) -#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_FULL_UNICAST_GPS (0x00010000) -#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_FULL_UNICAST_GPS_OFFSET (16) -#define EMBER_AF_GP_PROXY_TABLE_ENTRY_SECURITY_OPTIONS_SECURITY_LEVEL (0x03) -#define EMBER_AF_GP_PROXY_TABLE_ENTRY_SECURITY_OPTIONS_SECURITY_KEY_TYPE (0x1C) -#define EMBER_AF_GP_PROXY_TABLE_ENTRY_SECURITY_OPTIONS_SECURITY_KEY_TYPE_OFFSET (2) -#define EMBER_AF_GP_PROXY_TABLE_ENTRY_SECURITY_OPTIONS_RESERVED (0xE0) -#define EMBER_AF_GP_PROXY_TABLE_ENTRY_SECURITY_OPTIONS_RESERVED_OFFSET (5) -#define EMBER_AF_GP_GPD_COMMISSIONING_OPTIONS_MAC_SEQ_NUM_CAP (0x01) -#define EMBER_AF_GP_GPD_COMMISSIONING_OPTIONS_RX_ON_CAP (0x02) -#define EMBER_AF_GP_GPD_COMMISSIONING_OPTIONS_RX_ON_CAP_OFFSET (1) -#define EMBER_AF_GP_GPD_COMMISSIONING_OPTIONS_APPLICATION_INFORMATION_PRESENT (0x04) -#define EMBER_AF_GP_GPD_COMMISSIONING_OPTIONS_APPLICATION_INFORMATION_PRESENT_OFFSET (2) -#define EMBER_AF_GP_GPD_COMMISSIONING_OPTIONS_RESERVED (0x08) -#define EMBER_AF_GP_GPD_COMMISSIONING_OPTIONS_RESERVED_OFFSET (3) -#define EMBER_AF_GP_GPD_COMMISSIONING_OPTIONS_PAN_ID_REQUEST (0x10) -#define EMBER_AF_GP_GPD_COMMISSIONING_OPTIONS_PAN_ID_REQUEST_OFFSET (4) -#define EMBER_AF_GP_GPD_COMMISSIONING_OPTIONS_GP_SECURITY_KEY_REQUEST (0x20) -#define EMBER_AF_GP_GPD_COMMISSIONING_OPTIONS_GP_SECURITY_KEY_REQUEST_OFFSET (5) -#define EMBER_AF_GP_GPD_COMMISSIONING_OPTIONS_FIXED_LOCATION (0x40) -#define EMBER_AF_GP_GPD_COMMISSIONING_OPTIONS_FIXED_LOCATION_OFFSET (6) -#define EMBER_AF_GP_GPD_COMMISSIONING_OPTIONS_EXTENDED_OPTIONS_FIELD (0x80) -#define EMBER_AF_GP_GPD_COMMISSIONING_OPTIONS_EXTENDED_OPTIONS_FIELD_OFFSET (7) -#define EMBER_AF_GP_GPD_COMMISSIONING_EXTENDED_OPTIONS_SECURITY_LEVEL_CAPABILITIES (0x03) -#define EMBER_AF_GP_GPD_COMMISSIONING_EXTENDED_OPTIONS_KEY_TYPE (0x1C) -#define EMBER_AF_GP_GPD_COMMISSIONING_EXTENDED_OPTIONS_KEY_TYPE_OFFSET (2) -#define EMBER_AF_GP_GPD_COMMISSIONING_EXTENDED_OPTIONS_GPD_KEY_PRESENT (0x20) -#define EMBER_AF_GP_GPD_COMMISSIONING_EXTENDED_OPTIONS_GPD_KEY_PRESENT_OFFSET (5) -#define EMBER_AF_GP_GPD_COMMISSIONING_EXTENDED_OPTIONS_GPD_KEY_ENCRYPTION (0x40) -#define EMBER_AF_GP_GPD_COMMISSIONING_EXTENDED_OPTIONS_GPD_KEY_ENCRYPTION_OFFSET (6) -#define EMBER_AF_GP_GPD_COMMISSIONING_EXTENDED_OPTIONS_GPD_OUTGOING_COUNTER_PRESENT (0x80) -#define EMBER_AF_GP_GPD_COMMISSIONING_EXTENDED_OPTIONS_GPD_OUTGOING_COUNTER_PRESENT_OFFSET (7) -#define EMBER_AF_GP_GPD_COMMISSIONING_REPLY_OPTIONS_PAN_ID_PRESENT (0x01) -#define EMBER_AF_GP_GPD_COMMISSIONING_REPLY_OPTIONS_GPD_SECURITY_KEY_PRESENT (0x02) -#define EMBER_AF_GP_GPD_COMMISSIONING_REPLY_OPTIONS_GPD_SECURITY_KEY_PRESENT_OFFSET (1) -#define EMBER_AF_GP_GPD_COMMISSIONING_REPLY_OPTIONS_GPDKEY_ENCRYPTION (0x04) -#define EMBER_AF_GP_GPD_COMMISSIONING_REPLY_OPTIONS_GPDKEY_ENCRYPTION_OFFSET (2) -#define EMBER_AF_GP_GPD_COMMISSIONING_REPLY_OPTIONS_SECURITY_LEVEL (0x18) -#define EMBER_AF_GP_GPD_COMMISSIONING_REPLY_OPTIONS_SECURITY_LEVEL_OFFSET (3) -#define EMBER_AF_GP_GPD_COMMISSIONING_REPLY_OPTIONS_KEY_TYPE (0xE0) -#define EMBER_AF_GP_GPD_COMMISSIONING_REPLY_OPTIONS_KEY_TYPE_OFFSET (5) -#define EMBER_AF_GP_NOTIFICATION_OPTION_APPLICATION_ID (0x0007) -#define EMBER_AF_GP_NOTIFICATION_OPTION_ALSO_UNICAST (0x0008) -#define EMBER_AF_GP_NOTIFICATION_OPTION_ALSO_UNICAST_OFFSET (3) -#define EMBER_AF_GP_NOTIFICATION_OPTION_ALSO_DERIVED_GROUP (0x0010) -#define EMBER_AF_GP_NOTIFICATION_OPTION_ALSO_DERIVED_GROUP_OFFSET (4) -#define EMBER_AF_GP_NOTIFICATION_OPTION_ALSO_COMMISSIONED_GROUP (0x0020) -#define EMBER_AF_GP_NOTIFICATION_OPTION_ALSO_COMMISSIONED_GROUP_OFFSET (5) -#define EMBER_AF_GP_NOTIFICATION_OPTION_SECURITY_LEVEL (0x00C0) -#define EMBER_AF_GP_NOTIFICATION_OPTION_SECURITY_LEVEL_OFFSET (6) -#define EMBER_AF_GP_NOTIFICATION_OPTION_SECURITY_KEY_TYPE (0x0700) -#define EMBER_AF_GP_NOTIFICATION_OPTION_SECURITY_KEY_TYPE_OFFSET (8) -#define EMBER_AF_GP_NOTIFICATION_OPTION_RX_AFTER_TX (0x0800) -#define EMBER_AF_GP_NOTIFICATION_OPTION_RX_AFTER_TX_OFFSET (11) -#define EMBER_AF_GP_NOTIFICATION_OPTION_GP_TX_QUEUE_FULL (0x1000) -#define EMBER_AF_GP_NOTIFICATION_OPTION_GP_TX_QUEUE_FULL_OFFSET (12) -#define EMBER_AF_GP_NOTIFICATION_OPTION_BIDIRECTIONAL_CAPABILITY (0x2000) -#define EMBER_AF_GP_NOTIFICATION_OPTION_BIDIRECTIONAL_CAPABILITY_OFFSET (13) -#define EMBER_AF_GP_NOTIFICATION_OPTION_PROXY_INFO_PRESENT (0x4000) -#define EMBER_AF_GP_NOTIFICATION_OPTION_PROXY_INFO_PRESENT_OFFSET (14) -#define EMBER_AF_GP_NOTIFICATION_OPTION_RESERVED (0x8000) -#define EMBER_AF_GP_NOTIFICATION_OPTION_RESERVED_OFFSET (15) -#define EMBER_AF_GP_PAIRING_SEARCH_OPTION_APPLICATION_ID (0x0007) -#define EMBER_AF_GP_PAIRING_SEARCH_OPTION_REQUEST_UNICAST_SINKS (0x0008) -#define EMBER_AF_GP_PAIRING_SEARCH_OPTION_REQUEST_UNICAST_SINKS_OFFSET (3) -#define EMBER_AF_GP_PAIRING_SEARCH_OPTION_REQUEST_DERIVED_GROUPCAST_SINKS (0x0010) -#define EMBER_AF_GP_PAIRING_SEARCH_OPTION_REQUEST_DERIVED_GROUPCAST_SINKS_OFFSET (4) -#define EMBER_AF_GP_PAIRING_SEARCH_OPTION_REQUEST_COMMISSIONED_GROUPCAST_SINKS (0x0020) -#define EMBER_AF_GP_PAIRING_SEARCH_OPTION_REQUEST_COMMISSIONED_GROUPCAST_SINKS_OFFSET (5) -#define EMBER_AF_GP_PAIRING_SEARCH_OPTION_REQUEST_GPD_SECURITY_FRAME_COUNTER (0x0040) -#define EMBER_AF_GP_PAIRING_SEARCH_OPTION_REQUEST_GPD_SECURITY_FRAME_COUNTER_OFFSET (6) -#define EMBER_AF_GP_PAIRING_SEARCH_OPTION_REQUEST_GPD_SECURITY_KEY (0x0080) -#define EMBER_AF_GP_PAIRING_SEARCH_OPTION_REQUEST_GPD_SECURITY_KEY_OFFSET (7) -#define EMBER_AF_GP_PAIRING_SEARCH_OPTION_RESERVED (0xFF00) -#define EMBER_AF_GP_PAIRING_SEARCH_OPTION_RESERVED_OFFSET (8) -#define EMBER_AF_GP_TUNNELING_STOP_OPTION_APPLICATION_ID (0x07) -#define EMBER_AF_GP_TUNNELING_STOP_OPTION_ALSO_DERIVED_GROUP (0x08) -#define EMBER_AF_GP_TUNNELING_STOP_OPTION_ALSO_DERIVED_GROUP_OFFSET (3) -#define EMBER_AF_GP_TUNNELING_STOP_OPTION_ALSO_COMMISSIONED_GROUP (0x10) -#define EMBER_AF_GP_TUNNELING_STOP_OPTION_ALSO_COMMISSIONED_GROUP_OFFSET (4) -#define EMBER_AF_GP_TUNNELING_STOP_OPTION_RESERVED (0xE0) -#define EMBER_AF_GP_TUNNELING_STOP_OPTION_RESERVED_OFFSET (5) -#define EMBER_AF_GP_COMMISSIONING_NOTIFICATION_OPTION_APPLICATION_ID (0x0007) -#define EMBER_AF_GP_COMMISSIONING_NOTIFICATION_OPTION_RX_AFTER_TX (0x0008) -#define EMBER_AF_GP_COMMISSIONING_NOTIFICATION_OPTION_RX_AFTER_TX_OFFSET (3) -#define EMBER_AF_GP_COMMISSIONING_NOTIFICATION_OPTION_SECURITY_LEVEL (0x0030) -#define EMBER_AF_GP_COMMISSIONING_NOTIFICATION_OPTION_SECURITY_LEVEL_OFFSET (4) -#define EMBER_AF_GP_COMMISSIONING_NOTIFICATION_OPTION_SECURITY_KEY_TYPE (0x01C0) -#define EMBER_AF_GP_COMMISSIONING_NOTIFICATION_OPTION_SECURITY_KEY_TYPE_OFFSET (6) -#define EMBER_AF_GP_COMMISSIONING_NOTIFICATION_OPTION_SECURITY_PROCESSING_FAILED (0x0200) -#define EMBER_AF_GP_COMMISSIONING_NOTIFICATION_OPTION_SECURITY_PROCESSING_FAILED_OFFSET (9) -#define EMBER_AF_GP_COMMISSIONING_NOTIFICATION_OPTION_BIDIRECTIONAL_CAPABILITY (0x0400) -#define EMBER_AF_GP_COMMISSIONING_NOTIFICATION_OPTION_BIDIRECTIONAL_CAPABILITY_OFFSET (10) -#define EMBER_AF_GP_COMMISSIONING_NOTIFICATION_OPTION_PROXY_INFO_PRESENT (0x0800) -#define EMBER_AF_GP_COMMISSIONING_NOTIFICATION_OPTION_PROXY_INFO_PRESENT_OFFSET (11) -#define EMBER_AF_GP_COMMISSIONING_NOTIFICATION_OPTION_RESERVED (0xF000) -#define EMBER_AF_GP_COMMISSIONING_NOTIFICATION_OPTION_RESERVED_OFFSET (12) -#define EMBER_AF_GP_SINK_COMMISSIONING_MODE_OPTIONS_ACTION (0x01) -#define EMBER_AF_GP_SINK_COMMISSIONING_MODE_OPTIONS_INVOLVE_GPM_IN_SECURITY (0x02) -#define EMBER_AF_GP_SINK_COMMISSIONING_MODE_OPTIONS_INVOLVE_GPM_IN_SECURITY_OFFSET (1) -#define EMBER_AF_GP_SINK_COMMISSIONING_MODE_OPTIONS_INVOLVE_GPM_IN_PAIRING (0x04) -#define EMBER_AF_GP_SINK_COMMISSIONING_MODE_OPTIONS_INVOLVE_GPM_IN_PAIRING_OFFSET (2) -#define EMBER_AF_GP_SINK_COMMISSIONING_MODE_OPTIONS_INVOLVE_PROXIES (0x08) -#define EMBER_AF_GP_SINK_COMMISSIONING_MODE_OPTIONS_INVOLVE_PROXIES_OFFSET (3) -#define EMBER_AF_GP_SINK_COMMISSIONING_MODE_OPTIONS_RESERVED (0xF0) -#define EMBER_AF_GP_SINK_COMMISSIONING_MODE_OPTIONS_RESERVED_OFFSET (4) -#define EMBER_AF_GP_SINK_COMMISSIONING_MODE_EXIT_MODE_ON_COMMISSIONING_WINDOW_EXPIRATION (0x01) -#define EMBER_AF_GP_SINK_COMMISSIONING_MODE_EXIT_MODE_ON_FIRST_PAIRING_SUCCESS (0x02) -#define EMBER_AF_GP_SINK_COMMISSIONING_MODE_EXIT_MODE_ON_FIRST_PAIRING_SUCCESS_OFFSET (1) -#define EMBER_AF_GP_SINK_COMMISSIONING_MODE_EXIT_MODE_ON_GP_PROXY_COMMISSIONING_MODE_EXIT (0x04) -#define EMBER_AF_GP_SINK_COMMISSIONING_MODE_EXIT_MODE_ON_GP_PROXY_COMMISSIONING_MODE_EXIT_OFFSET (2) -#define EMBER_AF_GP_SINK_COMMISSIONING_MODE_EXIT_MODE_RESERVED (0xF8) -#define EMBER_AF_GP_SINK_COMMISSIONING_MODE_EXIT_MODE_RESERVED_OFFSET (3) -#define EMBER_AF_GP_SINK_TABLE_REQUEST_OPTIONS_APPLICATION_ID (0x07) -#define EMBER_AF_GP_SINK_TABLE_REQUEST_OPTIONS_REQUEST_TYPE (0x18) -#define EMBER_AF_GP_SINK_TABLE_REQUEST_OPTIONS_REQUEST_TYPE_OFFSET (3) -#define EMBER_AF_GP_SINK_TABLE_REQUEST_OPTIONS_RESERVED (0xE0) -#define EMBER_AF_GP_SINK_TABLE_REQUEST_OPTIONS_RESERVED_OFFSET (5) -#define EMBER_AF_GP_TRANSLATION_TABLE_UPDATE_OPTION_APPLICATION_ID (0x0007) -#define EMBER_AF_GP_TRANSLATION_TABLE_UPDATE_OPTION_ACTION (0x0018) -#define EMBER_AF_GP_TRANSLATION_TABLE_UPDATE_OPTION_ACTION_OFFSET (3) -#define EMBER_AF_GP_TRANSLATION_TABLE_UPDATE_OPTION_NUMBER_OF_TRANSLATIONS (0x00E0) -#define EMBER_AF_GP_TRANSLATION_TABLE_UPDATE_OPTION_NUMBER_OF_TRANSLATIONS_OFFSET (5) -#define EMBER_AF_GP_TRANSLATION_TABLE_UPDATE_OPTION_ADDITIONAL_INFORMATION_BLOCK_PRESENT (0x0100) -#define EMBER_AF_GP_TRANSLATION_TABLE_UPDATE_OPTION_ADDITIONAL_INFORMATION_BLOCK_PRESENT_OFFSET (8) -#define EMBER_AF_GP_TRANSLATION_TABLE_UPDATE_OPTION_RESERVED (0xFE00) -#define EMBER_AF_GP_TRANSLATION_TABLE_UPDATE_OPTION_RESERVED_OFFSET (9) -#define EMBER_AF_GP_TRANSLATION_TABLE_SCAN_LEVEL_GPD_ID (0x01) -#define EMBER_AF_GP_TRANSLATION_TABLE_SCAN_LEVEL_CMD_ID (0x02) -#define EMBER_AF_GP_TRANSLATION_TABLE_SCAN_LEVEL_CMD_ID_OFFSET (1) -#define EMBER_AF_GP_TRANSLATION_TABLE_SCAN_LEVEL_PAYLOAD (0x04) -#define EMBER_AF_GP_TRANSLATION_TABLE_SCAN_LEVEL_PAYLOAD_OFFSET (2) -#define EMBER_AF_GP_TRANSLATION_TABLE_SCAN_LEVEL_ZB_ENDPOINT (0x08) -#define EMBER_AF_GP_TRANSLATION_TABLE_SCAN_LEVEL_ZB_ENDPOINT_OFFSET (3) -#define EMBER_AF_GP_TRANSLATION_TABLE_SCAN_LEVEL_ADDITIONAL_INFO_BLOCK (0x10) -#define EMBER_AF_GP_TRANSLATION_TABLE_SCAN_LEVEL_ADDITIONAL_INFO_BLOCK_OFFSET (4) -#define EMBER_AF_GP_PAIRING_CONFIGURATION_ACTIONS_ACTION (0x07) -#define EMBER_AF_GP_PAIRING_CONFIGURATION_ACTIONS_SEND_GP_PAIRING (0x08) -#define EMBER_AF_GP_PAIRING_CONFIGURATION_ACTIONS_SEND_GP_PAIRING_OFFSET (3) -#define EMBER_AF_GP_PAIRING_CONFIGURATION_ACTIONS_RESERVED (0xF0) -#define EMBER_AF_GP_PAIRING_CONFIGURATION_ACTIONS_RESERVED_OFFSET (4) -#define EMBER_AF_GP_PAIRING_CONFIGURATION_OPTION_APPLICATION_ID (0x0007) -#define EMBER_AF_GP_PAIRING_CONFIGURATION_OPTION_COMMUNICATION_MODE (0x0018) -#define EMBER_AF_GP_PAIRING_CONFIGURATION_OPTION_COMMUNICATION_MODE_OFFSET (3) -#define EMBER_AF_GP_PAIRING_CONFIGURATION_OPTION_SEQUENCE_NUMBER_CAPABILITIES (0x0020) -#define EMBER_AF_GP_PAIRING_CONFIGURATION_OPTION_SEQUENCE_NUMBER_CAPABILITIES_OFFSET (5) -#define EMBER_AF_GP_PAIRING_CONFIGURATION_OPTION_RX_ON_CAPABILITY (0x0040) -#define EMBER_AF_GP_PAIRING_CONFIGURATION_OPTION_RX_ON_CAPABILITY_OFFSET (6) -#define EMBER_AF_GP_PAIRING_CONFIGURATION_OPTION_FIXED_LOCATION (0x0080) -#define EMBER_AF_GP_PAIRING_CONFIGURATION_OPTION_FIXED_LOCATION_OFFSET (7) -#define EMBER_AF_GP_PAIRING_CONFIGURATION_OPTION_ASSIGNED_ALIAS (0x0100) -#define EMBER_AF_GP_PAIRING_CONFIGURATION_OPTION_ASSIGNED_ALIAS_OFFSET (8) -#define EMBER_AF_GP_PAIRING_CONFIGURATION_OPTION_SECURITY_USE (0x0200) -#define EMBER_AF_GP_PAIRING_CONFIGURATION_OPTION_SECURITY_USE_OFFSET (9) -#define EMBER_AF_GP_PAIRING_CONFIGURATION_OPTION_APPLICATION_INFORMATION_PRESENT (0x0400) -#define EMBER_AF_GP_PAIRING_CONFIGURATION_OPTION_APPLICATION_INFORMATION_PRESENT_OFFSET (10) -#define EMBER_AF_GP_PAIRING_CONFIGURATION_OPTION_RESERVED (0xF800) -#define EMBER_AF_GP_PAIRING_CONFIGURATION_OPTION_RESERVED_OFFSET (11) -#define EMBER_AF_GP_APPLICATION_INFORMATION_MANUFACTURE_ID_PRESENT (0x01) -#define EMBER_AF_GP_APPLICATION_INFORMATION_MODEL_ID_PRESENT (0x02) -#define EMBER_AF_GP_APPLICATION_INFORMATION_MODEL_ID_PRESENT_OFFSET (1) -#define EMBER_AF_GP_APPLICATION_INFORMATION_GPD_COMMANDS_PRESENT (0x04) -#define EMBER_AF_GP_APPLICATION_INFORMATION_GPD_COMMANDS_PRESENT_OFFSET (2) -#define EMBER_AF_GP_APPLICATION_INFORMATION_CLUSTER_LIST_PRESENT (0x08) -#define EMBER_AF_GP_APPLICATION_INFORMATION_CLUSTER_LIST_PRESENT_OFFSET (3) -#define EMBER_AF_GP_APPLICATION_INFORMATION_SWITCH_INFORMATION_PRESENT (0x10) -#define EMBER_AF_GP_APPLICATION_INFORMATION_SWITCH_INFORMATION_PRESENT_OFFSET (4) -#define EMBER_AF_GP_APPLICATION_INFORMATION_APPLICATION_DESCRIPTION_PRESENT (0x20) -#define EMBER_AF_GP_APPLICATION_INFORMATION_APPLICATION_DESCRIPTION_PRESENT_OFFSET (5) -#define EMBER_AF_GP_NOTIFICATION_RESPONSE_OPTION_APPLICATION_ID (0x07) -#define EMBER_AF_GP_NOTIFICATION_RESPONSE_OPTION_FIRST_TO_FORWARD (0x08) -#define EMBER_AF_GP_NOTIFICATION_RESPONSE_OPTION_FIRST_TO_FORWARD_OFFSET (3) -#define EMBER_AF_GP_NOTIFICATION_RESPONSE_OPTION_NO_PAIRING (0x10) -#define EMBER_AF_GP_NOTIFICATION_RESPONSE_OPTION_NO_PAIRING_OFFSET (4) -#define EMBER_AF_GP_NOTIFICATION_RESPONSE_OPTION_RESERVED (0xE0) -#define EMBER_AF_GP_NOTIFICATION_RESPONSE_OPTION_RESERVED_OFFSET (5) -#define EMBER_AF_GP_PAIRING_OPTION_APPLICATION_ID (0x000007) -#define EMBER_AF_GP_PAIRING_OPTION_ADD_SINK (0x000008) -#define EMBER_AF_GP_PAIRING_OPTION_ADD_SINK_OFFSET (3) -#define EMBER_AF_GP_PAIRING_OPTION_REMOVE_GPD (0x000010) -#define EMBER_AF_GP_PAIRING_OPTION_REMOVE_GPD_OFFSET (4) -#define EMBER_AF_GP_PAIRING_OPTION_COMMUNICATION_MODE (0x000060) -#define EMBER_AF_GP_PAIRING_OPTION_COMMUNICATION_MODE_OFFSET (5) -#define EMBER_AF_GP_PAIRING_OPTION_GPD_FIXED (0x000080) -#define EMBER_AF_GP_PAIRING_OPTION_GPD_FIXED_OFFSET (7) -#define EMBER_AF_GP_PAIRING_OPTION_GPD_MAC_SEQUENCE_NUMBER_CAPABILITIES (0x000100) -#define EMBER_AF_GP_PAIRING_OPTION_GPD_MAC_SEQUENCE_NUMBER_CAPABILITIES_OFFSET (8) -#define EMBER_AF_GP_PAIRING_OPTION_SECURITY_LEVEL (0x000600) -#define EMBER_AF_GP_PAIRING_OPTION_SECURITY_LEVEL_OFFSET (9) -#define EMBER_AF_GP_PAIRING_OPTION_SECURITY_KEY_TYPE (0x003800) -#define EMBER_AF_GP_PAIRING_OPTION_SECURITY_KEY_TYPE_OFFSET (11) -#define EMBER_AF_GP_PAIRING_OPTION_GPD_SECURITY_FRAME_COUNTER_PRESENT (0x004000) -#define EMBER_AF_GP_PAIRING_OPTION_GPD_SECURITY_FRAME_COUNTER_PRESENT_OFFSET (14) -#define EMBER_AF_GP_PAIRING_OPTION_GPD_SECURITY_KEY_PRESENT (0x008000) -#define EMBER_AF_GP_PAIRING_OPTION_GPD_SECURITY_KEY_PRESENT_OFFSET (15) -#define EMBER_AF_GP_PAIRING_OPTION_ASSIGNED_ALIAS_PRESENT (0x010000) -#define EMBER_AF_GP_PAIRING_OPTION_ASSIGNED_ALIAS_PRESENT_OFFSET (16) -#define EMBER_AF_GP_PAIRING_OPTION_GROUPCAST_RADIUS_PRESENT (0x020000) -#define EMBER_AF_GP_PAIRING_OPTION_GROUPCAST_RADIUS_PRESENT_OFFSET (17) -#define EMBER_AF_GP_PAIRING_OPTION_RESERVED (0xFC0000) -#define EMBER_AF_GP_PAIRING_OPTION_RESERVED_OFFSET (18) -#define EMBER_AF_GP_PROXY_COMMISSIONING_MODE_OPTION_ACTION (0x01) -#define EMBER_AF_GP_PROXY_COMMISSIONING_MODE_OPTION_COMMISSIONING_WINDOW_PRESENT (0x02) -#define EMBER_AF_GP_PROXY_COMMISSIONING_MODE_OPTION_COMMISSIONING_WINDOW_PRESENT_OFFSET (1) -#define EMBER_AF_GP_PROXY_COMMISSIONING_MODE_OPTION_EXIT_MODE (0x0C) -#define EMBER_AF_GP_PROXY_COMMISSIONING_MODE_OPTION_EXIT_MODE_OFFSET (2) -#define EMBER_AF_GP_PROXY_COMMISSIONING_MODE_OPTION_CHANNEL_PRESENT (0x10) -#define EMBER_AF_GP_PROXY_COMMISSIONING_MODE_OPTION_CHANNEL_PRESENT_OFFSET (4) -#define EMBER_AF_GP_PROXY_COMMISSIONING_MODE_OPTION_UNICAST_COMMUNICATION (0x20) -#define EMBER_AF_GP_PROXY_COMMISSIONING_MODE_OPTION_UNICAST_COMMUNICATION_OFFSET (5) -#define EMBER_AF_GP_PROXY_COMMISSIONING_MODE_OPTION_RESERVED (0xC0) -#define EMBER_AF_GP_PROXY_COMMISSIONING_MODE_OPTION_RESERVED_OFFSET (6) -#define EMBER_AF_GP_PROXY_COMMISSIONING_MODE_EXIT_MODE_ON_COMMISSIONING_WINDOW_EXPIRATION (0x02) -#define EMBER_AF_GP_PROXY_COMMISSIONING_MODE_EXIT_MODE_ON_COMMISSIONING_WINDOW_EXPIRATION_OFFSET (1) -#define EMBER_AF_GP_PROXY_COMMISSIONING_MODE_EXIT_MODE_ON_FIRST_PAIRING_SUCCESS (0x04) -#define EMBER_AF_GP_PROXY_COMMISSIONING_MODE_EXIT_MODE_ON_FIRST_PAIRING_SUCCESS_OFFSET (2) -#define EMBER_AF_GP_PROXY_COMMISSIONING_MODE_EXIT_MODE_ON_GP_PROXY_COMMISSIONING_MODE_EXIT (0x08) -#define EMBER_AF_GP_PROXY_COMMISSIONING_MODE_EXIT_MODE_ON_GP_PROXY_COMMISSIONING_MODE_EXIT_OFFSET (3) -#define EMBER_AF_GP_RESPONSE_OPTION_APPLICATION_ID (0x07) -#define EMBER_AF_GP_RESPONSE_OPTION_TRANSMIT_ON_END_POINT_MATCH (0x08) -#define EMBER_AF_GP_RESPONSE_OPTION_TRANSMIT_ON_END_POINT_MATCH_OFFSET (3) -#define EMBER_AF_GP_RESPONSE_OPTION_RESERVED (0xF0) -#define EMBER_AF_GP_RESPONSE_OPTION_RESERVED_OFFSET (4) -#define EMBER_AF_GP_RESPONSE_TEMP_MASTER_TX_CHANNEL_TRANSMIT_CHANNEL (0x0F) -#define EMBER_AF_GP_RESPONSE_TEMP_MASTER_TX_CHANNEL_RESERVED (0xF0) -#define EMBER_AF_GP_RESPONSE_TEMP_MASTER_TX_CHANNEL_RESERVED_OFFSET (4) -#define EMBER_AF_GP_SINK_TABLE_ENTRY_OPTIONS_APPLICATION_ID (0x0007) -#define EMBER_AF_GP_SINK_TABLE_ENTRY_OPTIONS_COMMUNICATION_MODE (0x0018) -#define EMBER_AF_GP_SINK_TABLE_ENTRY_OPTIONS_COMMUNICATION_MODE_OFFSET (3) -#define EMBER_AF_GP_SINK_TABLE_ENTRY_OPTIONS_SEQUENCE_NUM_CAPABILITIES (0x0020) -#define EMBER_AF_GP_SINK_TABLE_ENTRY_OPTIONS_SEQUENCE_NUM_CAPABILITIES_OFFSET (5) -#define EMBER_AF_GP_SINK_TABLE_ENTRY_OPTIONS_RX_ON_CAPABILITY (0x0040) -#define EMBER_AF_GP_SINK_TABLE_ENTRY_OPTIONS_RX_ON_CAPABILITY_OFFSET (6) -#define EMBER_AF_GP_SINK_TABLE_ENTRY_OPTIONS_FIXED_LOCATION (0x0080) -#define EMBER_AF_GP_SINK_TABLE_ENTRY_OPTIONS_FIXED_LOCATION_OFFSET (7) -#define EMBER_AF_GP_SINK_TABLE_ENTRY_OPTIONS_ASSIGNED_ALIAS (0x0100) -#define EMBER_AF_GP_SINK_TABLE_ENTRY_OPTIONS_ASSIGNED_ALIAS_OFFSET (8) -#define EMBER_AF_GP_SINK_TABLE_ENTRY_OPTIONS_SECURITY_USE (0x0200) -#define EMBER_AF_GP_SINK_TABLE_ENTRY_OPTIONS_SECURITY_USE_OFFSET (9) -#define EMBER_AF_GP_SINK_TABLE_ENTRY_OPTIONS_RESERVED (0xFC00) -#define EMBER_AF_GP_SINK_TABLE_ENTRY_OPTIONS_RESERVED_OFFSET (10) -#define EMBER_AF_GP_SINK_TABLE_ENTRY_SECURITY_OPTIONS_SECURITY_LEVEL (0x03) -#define EMBER_AF_GP_SINK_TABLE_ENTRY_SECURITY_OPTIONS_SECURITY_KEY_TYPE (0x1C) -#define EMBER_AF_GP_SINK_TABLE_ENTRY_SECURITY_OPTIONS_SECURITY_KEY_TYPE_OFFSET (2) -#define EMBER_AF_GP_SINK_TABLE_ENTRY_SECURITY_OPTIONS_RESERVED (0xE0) -#define EMBER_AF_GP_SINK_TABLE_ENTRY_SECURITY_OPTIONS_RESERVED_OFFSET (5) -#define EMBER_AF_GP_TRANSLATION_TABLE_RESPONSE_OPTION_APPLICATION_ID (0x07) -#define EMBER_AF_GP_TRANSLATION_TABLE_RESPONSE_OPTION_ADDITIONAL_INFORMATION_BLOCK_PRESENT (0x08) -#define EMBER_AF_GP_TRANSLATION_TABLE_RESPONSE_OPTION_ADDITIONAL_INFORMATION_BLOCK_PRESENT_OFFSET (3) -#define EMBER_AF_GP_TRANSLATION_TABLE_RESPONSE_OPTION_RESERVED (0xF0) -#define EMBER_AF_GP_TRANSLATION_TABLE_RESPONSE_OPTION_RESERVED_OFFSET (4) -#define EMBER_AF_GP_PROXY_TABLE_REQUEST_OPTIONS_APPLICATION_ID (0x07) -#define EMBER_AF_GP_PROXY_TABLE_REQUEST_OPTIONS_REQUEST_TYPE (0x18) -#define EMBER_AF_GP_PROXY_TABLE_REQUEST_OPTIONS_REQUEST_TYPE_OFFSET (3) -#define EMBER_AF_GP_PROXY_TABLE_REQUEST_OPTIONS_RESERVED (0xE0) -#define EMBER_AF_GP_PROXY_TABLE_REQUEST_OPTIONS_RESERVED_OFFSET (5) -#define EMBER_AF_GP_GPD_CHANNEL_REQUEST_CHANNEL_TOGGLING_BEHAVIOUR_RX_CHANNEL_NEXT_ATTEMPT (0x0F) -#define EMBER_AF_GP_GPD_CHANNEL_REQUEST_CHANNEL_TOGGLING_BEHAVIOUR_RX_CHANNEL_SECOND_NEXT_ATTEMPT (0xF0) -#define EMBER_AF_GP_GPD_CHANNEL_REQUEST_CHANNEL_TOGGLING_BEHAVIOUR_RX_CHANNEL_SECOND_NEXT_ATTEMPT_OFFSET (4) -#define EMBER_AF_GP_GPD_CHANNEL_CONFIGURATION_CHANNEL_MASK (0x1F) -#define EMBER_AF_GP_GPD_CHANNEL_CONFIGURATION_CHANNEL_OPERATIONAL_CHANNEL (0x0F) -#define EMBER_AF_GP_GPD_CHANNEL_CONFIGURATION_CHANNEL_BASIC (0x10) -#define EMBER_AF_GP_GPD_CHANNEL_CONFIGURATION_CHANNEL_BASIC_OFFSET (4) -#define EMBER_AF_GP_GPD_CHANNEL_CONFIGURATION_CHANNEL_RESERVED (0xE0) -#define EMBER_AF_GP_GPD_CHANNEL_CONFIGURATION_CHANNEL_RESERVED_OFFSET (5) -#define EMBER_AF_GP_RESPONSE_OPTION_MASK (0x0F) -#define EMBER_AF_GP_RESPONSE_OPTION_TRANSMIT_ON_END_POINT_MATCH (0x08) -#define EMBER_AF_GP_RESPONSE_OPTION_TRANSMIT_ON_END_POINT_MATCH_OFFSET (3) -#define EMBER_AF_GP_RESPONSE_OPTION_RESERVED (0xF0) -#define EMBER_AF_GP_RESPONSE_OPTION_RESERVED_OFFSET (4) -/** @} END Enums */ -/** @} END addtogroup */ -#endif // SILABS_EMBER_AF_ENUMS diff --git a/examples/lighting-app/efr32/src/gen/gen_config.h b/examples/lighting-app/efr32/src/gen/gen_config.h deleted file mode 100644 index b1b1add4cd37b2..00000000000000 --- a/examples/lighting-app/efr32/src/gen/gen_config.h +++ /dev/null @@ -1,270 +0,0 @@ -/** - * - * 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 SILABS_ZNET_CONFIG -#define SILABS_ZNET_CONFIG - -#include "debug-printing-test.h" - -/**** Included Header Section ****/ - -// Networks -#define EM_AF_GENERATED_NETWORK_TYPES \ - { \ - EM_AF_NETWORK_TYPE_ZIGBEE_PRO, /* Primary */ \ - } -#define EM_AF_GENERATED_ZIGBEE_PRO_NETWORKS \ - { \ - { \ - /* Primary */ \ - ZA_ROUTER, \ - EMBER_AF_SECURITY_PROFILE_Z3, \ - }, \ - } -#define EM_AF_GENERATED_NETWORK_STRINGS "Primary (pro)", /**** ZCL Section ****/ -#define ZA_PROMPT "ZigbeeMinimalSoc" -#define ZCL_USING_ON_OFF_CLUSTER_SERVER -#define EMBER_AF_MANUFACTURER_CODE 0x1002 -#define EMBER_AF_DEFAULT_RESPONSE_POLICY_ALWAYS - -/**** Cluster endpoint counts ****/ -#define EMBER_AF_ON_OFF_CLUSTER_SERVER_ENDPOINT_COUNT (1) - -/**** Cluster Endpoint Summaries ****/ -#define EMBER_AF_MAX_SERVER_CLUSTER_COUNT (1) -#define EMBER_AF_MAX_CLIENT_CLUSTER_COUNT (0) -#define EMBER_AF_MAX_TOTAL_CLUSTER_COUNT (1) - -/**** CLI Section ****/ -#define EMBER_AF_GENERATE_CLI - -/**** Security Section ****/ -#define EMBER_AF_HAS_SECURITY_PROFILE_Z3 - -/**** Network Section ****/ -#define EMBER_SUPPORTED_NETWORKS (1) -#define EMBER_AF_NETWORK_INDEX_PRIMARY (0) -#define EMBER_AF_DEFAULT_NETWORK_INDEX EMBER_AF_NETWORK_INDEX_PRIMARY -#define EMBER_AF_HAS_ROUTER_NETWORK -#define EMBER_AF_HAS_RX_ON_WHEN_IDLE_NETWORK -#define EMBER_AF_TX_POWER_MODE EMBER_TX_POWER_MODE_USE_TOKEN - -/**** Callback Section ****/ -#define EMBER_CALLBACK_STACK_STATUS -#define EMBER_CALLBACK_ON_OFF_CLUSTER_OFF -#define EMBER_CALLBACK_ON_OFF_CLUSTER_ON -#define EMBER_CALLBACK_ON_OFF_CLUSTER_TOGGLE -#define EMBER_CALLBACK_ENERGY_SCAN_RESULT -#define EMBER_CALLBACK_SCAN_COMPLETE -#define EMBER_CALLBACK_NETWORK_FOUND -/**** Debug printing section ****/ - -// Global switch -#define EMBER_AF_PRINT_ENABLE - -#define EMBER_AF_SUPPORT_COMMAND_DISCOVERY - -// Generated plugin macros - -// Use this macro to check if Antenna Stub plugin is included -#define EMBER_AF_PLUGIN_ANTENNA_STUB - -// Use this macro to check if Binding Table Library plugin is included -#define EMBER_AF_PLUGIN_BINDING_TABLE_LIBRARY -// User options for plugin Binding Table Library -#define EMBER_BINDING_TABLE_SIZE 10 - -// Use this macro to check if CCM* Encryption plugin is included -#define EMBER_AF_PLUGIN_CCM_ENCRYPTION -// User options for plugin CCM* Encryption -#define EMBER_AF_PLUGIN_CCM_ENCRYPTION_SOFTWARE_CCM -#define USE_SOFTWARE_CCM - -// Use this macro to check if Radio Coexistence Stub plugin is included -#define EMBER_AF_PLUGIN_COEXISTENCE_STUB - -// Use this macro to check if Debug Basic Library plugin is included -#define EMBER_AF_PLUGIN_DEBUG_BASIC_LIBRARY - -// Use this macro to check if Debug JTAG plugin is included -#define EMBER_AF_PLUGIN_DEBUG_JTAG - -// Use this macro to check if Ember Minimal Printf plugin is included -#define EMBER_AF_PLUGIN_EMBER_MINIMAL_PRINTF - -// Use this macro to check if HAL Library plugin is included -#define EMBER_AF_PLUGIN_HAL_LIBRARY - -// Use this macro to check if mbed TLS plugin is included -#define EMBER_AF_PLUGIN_MBEDTLS -// User options for plugin mbed TLS -#define EMBER_AF_PLUGIN_MBEDTLS_CONF_DEVICE_ACCELERATION -#define EMBER_AF_PLUGIN_MBEDTLS_CONF_DEVICE_ACCELERATION_APP - -// Use this macro to check if Network Steering plugin is included -#define EMBER_AF_PLUGIN_NETWORK_STEERING -// User options for plugin Network Steering -#define EMBER_AF_PLUGIN_NETWORK_STEERING_CHANNEL_MASK 0x0318C800 -#define EMBER_AF_PLUGIN_NETWORK_STEERING_RADIO_TX_POWER 3 -#define EMBER_AF_PLUGIN_NETWORK_STEERING_SCAN_DURATION 4 -#define EMBER_AF_PLUGIN_NETWORK_STEERING_COMMISSIONING_TIME_S 180 -#define EMBER_AF_PLUGIN_NETWORK_STEERING_OPTIMIZE_SCANS - -// Use this macro to check if NVM3 Library plugin is included -#define EMBER_AF_PLUGIN_NVM3 -// User options for plugin NVM3 Library -#define EMBER_AF_PLUGIN_NVM3_FLASH_PAGES 18 -#define EMBER_AF_PLUGIN_NVM3_CACHE_SIZE 200 -#define EMBER_AF_PLUGIN_NVM3_MAX_OBJECT_SIZE 254 -#define EMBER_AF_PLUGIN_NVM3_USER_REPACK_HEADROOM 0 - -// Use this macro to check if Packet Validate Library plugin is included -#define EMBER_AF_PLUGIN_PACKET_VALIDATE_LIBRARY - -// Use this macro to check if RAIL Library plugin is included -#define EMBER_AF_PLUGIN_RAIL_LIBRARY -// User options for plugin RAIL Library -#define EMBER_AF_PLUGIN_RAIL_LIBRARY_RAILPHYDEF 1 - -// Use this macro to check if Scan Dispatch plugin is included -#define EMBER_AF_PLUGIN_SCAN_DISPATCH -// User options for plugin Scan Dispatch -#define EMBER_AF_PLUGIN_SCAN_DISPATCH_SCAN_QUEUE_SIZE 10 - -// Use this macro to check if Serial plugin is included -#define EMBER_AF_PLUGIN_SERIAL - -// Use this macro to check if Simulated EEPROM version 2 to NVM3 Upgrade Stub plugin is included -#define EMBER_AF_PLUGIN_SIM_EEPROM2_TO_NVM3_UPGRADE_STUB - -// Use this macro to check if Simple Main plugin is included -#define EMBER_AF_PLUGIN_SIMPLE_MAIN - -// Use this macro to check if Strong Random plugin is included -#define EMBER_AF_PLUGIN_STRONG_RANDOM -// User options for plugin Strong Random -#define EMBER_AF_PLUGIN_STRONG_RANDOM_RADIO_PRNG -#define USE_RADIO_API_FOR_TRNG - -// Use this macro to check if Update TC Link Key plugin is included -#define EMBER_AF_PLUGIN_UPDATE_TC_LINK_KEY -// User options for plugin Update TC Link Key -#define EMBER_AF_PLUGIN_UPDATE_TC_LINK_KEY_MAX_ATTEMPTS 3 - -// Use this macro to check if ZCL Framework Core plugin is included -#define EMBER_AF_PLUGIN_ZCL_FRAMEWORK_CORE -// User options for plugin ZCL Framework Core -#define EMBER_AF_PLUGIN_ZCL_FRAMEWORK_CORE_CLI_ENABLED -#define ZA_CLI_FULL - -// Use this macro to check if ZigBee PRO Stack Library plugin is included -#define EMBER_AF_PLUGIN_ZIGBEE_PRO_LIBRARY -// User options for plugin ZigBee PRO Stack Library -#define EMBER_MAX_END_DEVICE_CHILDREN 6 -#define EMBER_PACKET_BUFFER_COUNT 75 -#define EMBER_END_DEVICE_KEEP_ALIVE_SUPPORT_MODE EMBER_KEEP_ALIVE_SUPPORT_ALL -#define EMBER_END_DEVICE_POLL_TIMEOUT MINUTES_256 -#define EMBER_END_DEVICE_POLL_TIMEOUT_SHIFT 6 -#define EMBER_LINK_POWER_DELTA_INTERVAL 300 -#define EMBER_APS_UNICAST_MESSAGE_COUNT 10 -#define EMBER_BROADCAST_TABLE_SIZE 15 -#define EMBER_NEIGHBOR_TABLE_SIZE 16 - -// Generated API headers - -// API antenna from Antenna Stub plugin -#define EMBER_AF_API_ANTENNA \ - "../../../../../Applications/Simplicity " \ - "Studio.app/Contents/Eclipse/developer/sdks/gecko_sdk_suite/v3.0/platform/base/hal/plugin/antenna/antenna.h" - -// API coexistence from Radio Coexistence Stub plugin -#define EMBER_AF_API_COEXISTENCE \ - "../../../../../Applications/Simplicity " \ - "Studio.app/Contents/Eclipse/developer/sdks/gecko_sdk_suite/v3.0/platform/radio/rail_lib/plugin/coexistence/protocol/" \ - "ieee802154/coexistence-802154.h" - -// API network-steering from Network Steering plugin -#define EMBER_AF_API_NETWORK_STEERING \ - "../../../../../Applications/Simplicity " \ - "Studio.app/Contents/Eclipse/developer/sdks/gecko_sdk_suite/v3.0/protocol/zigbee/app/framework/plugin/network-steering/" \ - "network-steering.h" - -// API nvm3 from NVM3 Library plugin -#define EMBER_AF_API_NVM3 \ - "../../../../../Applications/Simplicity " \ - "Studio.app/Contents/Eclipse/developer/sdks/gecko_sdk_suite/v3.0/platform/base/hal/plugin/nvm3/nvm3-token.h" - -// API rail-library from RAIL Library plugin -#define EMBER_AF_API_RAIL_LIBRARY \ - "../../../../../Applications/Simplicity " \ - "Studio.app/Contents/Eclipse/developer/sdks/gecko_sdk_suite/v3.0/platform/radio/rail_lib/common/rail.h" - -// API scan-dispatch from Scan Dispatch plugin -#define EMBER_AF_API_SCAN_DISPATCH \ - "../../../../../Applications/Simplicity " \ - "Studio.app/Contents/Eclipse/developer/sdks/gecko_sdk_suite/v3.0/protocol/zigbee/app/framework/plugin/scan-dispatch/" \ - "scan-dispatch.h" - -// API serial from Serial plugin -#define EMBER_AF_API_SERIAL \ - "../../../../../Applications/Simplicity " \ - "Studio.app/Contents/Eclipse/developer/sdks/gecko_sdk_suite/v3.0/platform/base/hal/plugin/serial/serial.h" - -// API update-tc-link-key from Update TC Link Key plugin -#define EMBER_AF_API_UPDATE_TC_LINK_KEY \ - "../../../../../Applications/Simplicity " \ - "Studio.app/Contents/Eclipse/developer/sdks/gecko_sdk_suite/v3.0/protocol/zigbee/app/framework/plugin/update-tc-link-key/" \ - "update-tc-link-key.h" - -// API command-interpreter2 from ZCL Framework Core plugin -#define EMBER_AF_API_COMMAND_INTERPRETER2 \ - "../../../../../Applications/Simplicity " \ - "Studio.app/Contents/Eclipse/developer/sdks/gecko_sdk_suite/v3.0/protocol/zigbee/app/util/serial/command-interpreter2.h" - -// Custom macros -#ifdef TRANSITION_TIME_DS -#undef TRANSITION_TIME_DS -#endif -#define TRANSITION_TIME_DS 20 - -#ifdef FINDING_AND_BINDING_DELAY_MS -#undef FINDING_AND_BINDING_DELAY_MS -#endif -#define FINDING_AND_BINDING_DELAY_MS 3000 - -#endif // SILABS_ZNET_CONFIG diff --git a/examples/lighting-app/efr32/src/gen/print-cluster.h b/examples/lighting-app/efr32/src/gen/print-cluster.h deleted file mode 100644 index 87d2771f942629..00000000000000 --- a/examples/lighting-app/efr32/src/gen/print-cluster.h +++ /dev/null @@ -1,778 +0,0 @@ -/** - * - * 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 SILABS_PRINT_CLUSTER -#define SILABS_PRINT_CLUSTER - -// This is the mapping of IDs to cluster names assuming a format according -// to the "EmberAfClusterName" defined in the ZCL header. -// The names of clusters that are not present, are removed. - -#if defined(ZCL_USING_BASIC_CLUSTER_SERVER) || defined(ZCL_USING_BASIC_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_BASIC_CLUSTER { ZCL_BASIC_CLUSTER_ID, 0x0000, "Basic" }, -#else -#define SILABS_PRINTCLUSTER_BASIC_CLUSTER -#endif -#if defined(ZCL_USING_POWER_CONFIG_CLUSTER_SERVER) || defined(ZCL_USING_POWER_CONFIG_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_POWER_CONFIG_CLUSTER { ZCL_POWER_CONFIG_CLUSTER_ID, 0x0000, "Power Configuration" }, -#else -#define SILABS_PRINTCLUSTER_POWER_CONFIG_CLUSTER -#endif -#if defined(ZCL_USING_DEVICE_TEMP_CLUSTER_SERVER) || defined(ZCL_USING_DEVICE_TEMP_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_DEVICE_TEMP_CLUSTER { ZCL_DEVICE_TEMP_CLUSTER_ID, 0x0000, "Device Temperature Configuration" }, -#else -#define SILABS_PRINTCLUSTER_DEVICE_TEMP_CLUSTER -#endif -#if defined(ZCL_USING_IDENTIFY_CLUSTER_SERVER) || defined(ZCL_USING_IDENTIFY_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_IDENTIFY_CLUSTER { ZCL_IDENTIFY_CLUSTER_ID, 0x0000, "Identify" }, -#else -#define SILABS_PRINTCLUSTER_IDENTIFY_CLUSTER -#endif -#if defined(ZCL_USING_GROUPS_CLUSTER_SERVER) || defined(ZCL_USING_GROUPS_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_GROUPS_CLUSTER { ZCL_GROUPS_CLUSTER_ID, 0x0000, "Groups" }, -#else -#define SILABS_PRINTCLUSTER_GROUPS_CLUSTER -#endif -#if defined(ZCL_USING_SCENES_CLUSTER_SERVER) || defined(ZCL_USING_SCENES_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_SCENES_CLUSTER { ZCL_SCENES_CLUSTER_ID, 0x0000, "Scenes" }, -#else -#define SILABS_PRINTCLUSTER_SCENES_CLUSTER -#endif -#if defined(ZCL_USING_ON_OFF_CLUSTER_SERVER) || defined(ZCL_USING_ON_OFF_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_ON_OFF_CLUSTER { ZCL_ON_OFF_CLUSTER_ID, 0x0000, "On/off" }, -#else -#define SILABS_PRINTCLUSTER_ON_OFF_CLUSTER -#endif -#if defined(ZCL_USING_ON_OFF_SWITCH_CONFIG_CLUSTER_SERVER) || defined(ZCL_USING_ON_OFF_SWITCH_CONFIG_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_ON_OFF_SWITCH_CONFIG_CLUSTER \ - { ZCL_ON_OFF_SWITCH_CONFIG_CLUSTER_ID, 0x0000, "On/off Switch Configuration" }, -#else -#define SILABS_PRINTCLUSTER_ON_OFF_SWITCH_CONFIG_CLUSTER -#endif -#if defined(ZCL_USING_LEVEL_CONTROL_CLUSTER_SERVER) || defined(ZCL_USING_LEVEL_CONTROL_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_LEVEL_CONTROL_CLUSTER { ZCL_LEVEL_CONTROL_CLUSTER_ID, 0x0000, "Level Control" }, -#else -#define SILABS_PRINTCLUSTER_LEVEL_CONTROL_CLUSTER -#endif -#if defined(ZCL_USING_ALARM_CLUSTER_SERVER) || defined(ZCL_USING_ALARM_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_ALARM_CLUSTER { ZCL_ALARM_CLUSTER_ID, 0x0000, "Alarms" }, -#else -#define SILABS_PRINTCLUSTER_ALARM_CLUSTER -#endif -#if defined(ZCL_USING_TIME_CLUSTER_SERVER) || defined(ZCL_USING_TIME_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_TIME_CLUSTER { ZCL_TIME_CLUSTER_ID, 0x0000, "Time" }, -#else -#define SILABS_PRINTCLUSTER_TIME_CLUSTER -#endif -#if defined(ZCL_USING_RSSI_LOCATION_CLUSTER_SERVER) || defined(ZCL_USING_RSSI_LOCATION_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_RSSI_LOCATION_CLUSTER { ZCL_RSSI_LOCATION_CLUSTER_ID, 0x0000, "RSSI Location" }, -#else -#define SILABS_PRINTCLUSTER_RSSI_LOCATION_CLUSTER -#endif -#if defined(ZCL_USING_BINARY_INPUT_BASIC_CLUSTER_SERVER) || defined(ZCL_USING_BINARY_INPUT_BASIC_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_BINARY_INPUT_BASIC_CLUSTER { ZCL_BINARY_INPUT_BASIC_CLUSTER_ID, 0x0000, "Binary Input (Basic)" }, -#else -#define SILABS_PRINTCLUSTER_BINARY_INPUT_BASIC_CLUSTER -#endif -#if defined(ZCL_USING_COMMISSIONING_CLUSTER_SERVER) || defined(ZCL_USING_COMMISSIONING_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_COMMISSIONING_CLUSTER { ZCL_COMMISSIONING_CLUSTER_ID, 0x0000, "Commissioning" }, -#else -#define SILABS_PRINTCLUSTER_COMMISSIONING_CLUSTER -#endif -#if defined(ZCL_USING_PARTITION_CLUSTER_SERVER) || defined(ZCL_USING_PARTITION_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_PARTITION_CLUSTER { ZCL_PARTITION_CLUSTER_ID, 0x0000, "Partition" }, -#else -#define SILABS_PRINTCLUSTER_PARTITION_CLUSTER -#endif -#if defined(ZCL_USING_OTA_BOOTLOAD_CLUSTER_SERVER) || defined(ZCL_USING_OTA_BOOTLOAD_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_OTA_BOOTLOAD_CLUSTER { ZCL_OTA_BOOTLOAD_CLUSTER_ID, 0x0000, "Over the Air Bootloading" }, -#else -#define SILABS_PRINTCLUSTER_OTA_BOOTLOAD_CLUSTER -#endif -#if defined(ZCL_USING_POWER_PROFILE_CLUSTER_SERVER) || defined(ZCL_USING_POWER_PROFILE_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_POWER_PROFILE_CLUSTER { ZCL_POWER_PROFILE_CLUSTER_ID, 0x0000, "Power Profile" }, -#else -#define SILABS_PRINTCLUSTER_POWER_PROFILE_CLUSTER -#endif -#if defined(ZCL_USING_APPLIANCE_CONTROL_CLUSTER_SERVER) || defined(ZCL_USING_APPLIANCE_CONTROL_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_APPLIANCE_CONTROL_CLUSTER { ZCL_APPLIANCE_CONTROL_CLUSTER_ID, 0x0000, "Appliance Control" }, -#else -#define SILABS_PRINTCLUSTER_APPLIANCE_CONTROL_CLUSTER -#endif -#if defined(ZCL_USING_POLL_CONTROL_CLUSTER_SERVER) || defined(ZCL_USING_POLL_CONTROL_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_POLL_CONTROL_CLUSTER { ZCL_POLL_CONTROL_CLUSTER_ID, 0x0000, "Poll Control" }, -#else -#define SILABS_PRINTCLUSTER_POLL_CONTROL_CLUSTER -#endif -#if defined(ZCL_USING_GREEN_POWER_CLUSTER_SERVER) || defined(ZCL_USING_GREEN_POWER_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_GREEN_POWER_CLUSTER { ZCL_GREEN_POWER_CLUSTER_ID, 0x0000, "Green Power" }, -#else -#define SILABS_PRINTCLUSTER_GREEN_POWER_CLUSTER -#endif -#if defined(ZCL_USING_KEEPALIVE_CLUSTER_SERVER) || defined(ZCL_USING_KEEPALIVE_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_KEEPALIVE_CLUSTER { ZCL_KEEPALIVE_CLUSTER_ID, 0x0000, "Keep-Alive" }, -#else -#define SILABS_PRINTCLUSTER_KEEPALIVE_CLUSTER -#endif -#if defined(ZCL_USING_SHADE_CONFIG_CLUSTER_SERVER) || defined(ZCL_USING_SHADE_CONFIG_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_SHADE_CONFIG_CLUSTER { ZCL_SHADE_CONFIG_CLUSTER_ID, 0x0000, "Shade Configuration" }, -#else -#define SILABS_PRINTCLUSTER_SHADE_CONFIG_CLUSTER -#endif -#if defined(ZCL_USING_DOOR_LOCK_CLUSTER_SERVER) || defined(ZCL_USING_DOOR_LOCK_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_DOOR_LOCK_CLUSTER { ZCL_DOOR_LOCK_CLUSTER_ID, 0x0000, "Door Lock" }, -#else -#define SILABS_PRINTCLUSTER_DOOR_LOCK_CLUSTER -#endif -#if defined(ZCL_USING_WINDOW_COVERING_CLUSTER_SERVER) || defined(ZCL_USING_WINDOW_COVERING_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_WINDOW_COVERING_CLUSTER { ZCL_WINDOW_COVERING_CLUSTER_ID, 0x0000, "Window Covering" }, -#else -#define SILABS_PRINTCLUSTER_WINDOW_COVERING_CLUSTER -#endif -#if defined(ZCL_USING_BARRIER_CONTROL_CLUSTER_SERVER) || defined(ZCL_USING_BARRIER_CONTROL_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_BARRIER_CONTROL_CLUSTER { ZCL_BARRIER_CONTROL_CLUSTER_ID, 0x0000, "Barrier Control" }, -#else -#define SILABS_PRINTCLUSTER_BARRIER_CONTROL_CLUSTER -#endif -#if defined(ZCL_USING_PUMP_CONFIG_CONTROL_CLUSTER_SERVER) || defined(ZCL_USING_PUMP_CONFIG_CONTROL_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_PUMP_CONFIG_CONTROL_CLUSTER \ - { ZCL_PUMP_CONFIG_CONTROL_CLUSTER_ID, 0x0000, "Pump Configuration and Control" }, -#else -#define SILABS_PRINTCLUSTER_PUMP_CONFIG_CONTROL_CLUSTER -#endif -#if defined(ZCL_USING_THERMOSTAT_CLUSTER_SERVER) || defined(ZCL_USING_THERMOSTAT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_THERMOSTAT_CLUSTER { ZCL_THERMOSTAT_CLUSTER_ID, 0x0000, "Thermostat" }, -#else -#define SILABS_PRINTCLUSTER_THERMOSTAT_CLUSTER -#endif -#if defined(ZCL_USING_FAN_CONTROL_CLUSTER_SERVER) || defined(ZCL_USING_FAN_CONTROL_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_FAN_CONTROL_CLUSTER { ZCL_FAN_CONTROL_CLUSTER_ID, 0x0000, "Fan Control" }, -#else -#define SILABS_PRINTCLUSTER_FAN_CONTROL_CLUSTER -#endif -#if defined(ZCL_USING_DEHUMID_CONTROL_CLUSTER_SERVER) || defined(ZCL_USING_DEHUMID_CONTROL_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_DEHUMID_CONTROL_CLUSTER { ZCL_DEHUMID_CONTROL_CLUSTER_ID, 0x0000, "Dehumidification Control" }, -#else -#define SILABS_PRINTCLUSTER_DEHUMID_CONTROL_CLUSTER -#endif -#if defined(ZCL_USING_THERMOSTAT_UI_CONFIG_CLUSTER_SERVER) || defined(ZCL_USING_THERMOSTAT_UI_CONFIG_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_THERMOSTAT_UI_CONFIG_CLUSTER \ - { ZCL_THERMOSTAT_UI_CONFIG_CLUSTER_ID, 0x0000, "Thermostat User Interface Configuration" }, -#else -#define SILABS_PRINTCLUSTER_THERMOSTAT_UI_CONFIG_CLUSTER -#endif -#if defined(ZCL_USING_COLOR_CONTROL_CLUSTER_SERVER) || defined(ZCL_USING_COLOR_CONTROL_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_COLOR_CONTROL_CLUSTER { ZCL_COLOR_CONTROL_CLUSTER_ID, 0x0000, "Color Control" }, -#else -#define SILABS_PRINTCLUSTER_COLOR_CONTROL_CLUSTER -#endif -#if defined(ZCL_USING_BALLAST_CONFIGURATION_CLUSTER_SERVER) || defined(ZCL_USING_BALLAST_CONFIGURATION_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_BALLAST_CONFIGURATION_CLUSTER { ZCL_BALLAST_CONFIGURATION_CLUSTER_ID, 0x0000, "Ballast Configuration" }, -#else -#define SILABS_PRINTCLUSTER_BALLAST_CONFIGURATION_CLUSTER -#endif -#if defined(ZCL_USING_ILLUM_MEASUREMENT_CLUSTER_SERVER) || defined(ZCL_USING_ILLUM_MEASUREMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_ILLUM_MEASUREMENT_CLUSTER { ZCL_ILLUM_MEASUREMENT_CLUSTER_ID, 0x0000, "Illuminance Measurement" }, -#else -#define SILABS_PRINTCLUSTER_ILLUM_MEASUREMENT_CLUSTER -#endif -#if defined(ZCL_USING_ILLUM_LEVEL_SENSING_CLUSTER_SERVER) || defined(ZCL_USING_ILLUM_LEVEL_SENSING_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_ILLUM_LEVEL_SENSING_CLUSTER { ZCL_ILLUM_LEVEL_SENSING_CLUSTER_ID, 0x0000, "Illuminance Level Sensing" }, -#else -#define SILABS_PRINTCLUSTER_ILLUM_LEVEL_SENSING_CLUSTER -#endif -#if defined(ZCL_USING_TEMP_MEASUREMENT_CLUSTER_SERVER) || defined(ZCL_USING_TEMP_MEASUREMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_TEMP_MEASUREMENT_CLUSTER { ZCL_TEMP_MEASUREMENT_CLUSTER_ID, 0x0000, "Temperature Measurement" }, -#else -#define SILABS_PRINTCLUSTER_TEMP_MEASUREMENT_CLUSTER -#endif -#if defined(ZCL_USING_PRESSURE_MEASUREMENT_CLUSTER_SERVER) || defined(ZCL_USING_PRESSURE_MEASUREMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_PRESSURE_MEASUREMENT_CLUSTER { ZCL_PRESSURE_MEASUREMENT_CLUSTER_ID, 0x0000, "Pressure Measurement" }, -#else -#define SILABS_PRINTCLUSTER_PRESSURE_MEASUREMENT_CLUSTER -#endif -#if defined(ZCL_USING_FLOW_MEASUREMENT_CLUSTER_SERVER) || defined(ZCL_USING_FLOW_MEASUREMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_FLOW_MEASUREMENT_CLUSTER { ZCL_FLOW_MEASUREMENT_CLUSTER_ID, 0x0000, "Flow Measurement" }, -#else -#define SILABS_PRINTCLUSTER_FLOW_MEASUREMENT_CLUSTER -#endif -#if defined(ZCL_USING_RELATIVE_HUMIDITY_MEASUREMENT_CLUSTER_SERVER) || \ - defined(ZCL_USING_RELATIVE_HUMIDITY_MEASUREMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_RELATIVE_HUMIDITY_MEASUREMENT_CLUSTER \ - { ZCL_RELATIVE_HUMIDITY_MEASUREMENT_CLUSTER_ID, 0x0000, "Relative Humidity Measurement" }, -#else -#define SILABS_PRINTCLUSTER_RELATIVE_HUMIDITY_MEASUREMENT_CLUSTER -#endif -#if defined(ZCL_USING_OCCUPANCY_SENSING_CLUSTER_SERVER) || defined(ZCL_USING_OCCUPANCY_SENSING_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_OCCUPANCY_SENSING_CLUSTER { ZCL_OCCUPANCY_SENSING_CLUSTER_ID, 0x0000, "Occupancy Sensing" }, -#else -#define SILABS_PRINTCLUSTER_OCCUPANCY_SENSING_CLUSTER -#endif -#if defined(ZCL_USING_CARBON_MONOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_SERVER) || \ - defined(ZCL_USING_CARBON_MONOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_CARBON_MONOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER \ - { ZCL_CARBON_MONOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 0x0000, "Carbon Monoxide Concentration Measurement" }, -#else -#define SILABS_PRINTCLUSTER_CARBON_MONOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER -#endif -#if defined(ZCL_USING_CARBON_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_SERVER) || \ - defined(ZCL_USING_CARBON_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_CARBON_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER \ - { ZCL_CARBON_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 0x0000, "Carbon Dioxide Concentration Measurement" }, -#else -#define SILABS_PRINTCLUSTER_CARBON_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER -#endif -#if defined(ZCL_USING_ETHYLENE_CONCENTRATION_MEASUREMENT_CLUSTER_SERVER) || \ - defined(ZCL_USING_ETHYLENE_CONCENTRATION_MEASUREMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_ETHYLENE_CONCENTRATION_MEASUREMENT_CLUSTER \ - { ZCL_ETHYLENE_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 0x0000, "Ethylene Concentration Measurement" }, -#else -#define SILABS_PRINTCLUSTER_ETHYLENE_CONCENTRATION_MEASUREMENT_CLUSTER -#endif -#if defined(ZCL_USING_ETHYLENE_OXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_SERVER) || \ - defined(ZCL_USING_ETHYLENE_OXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_ETHYLENE_OXIDE_CONCENTRATION_MEASUREMENT_CLUSTER \ - { ZCL_ETHYLENE_OXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 0x0000, "Ethylene Oxide Concentration Measurement" }, -#else -#define SILABS_PRINTCLUSTER_ETHYLENE_OXIDE_CONCENTRATION_MEASUREMENT_CLUSTER -#endif -#if defined(ZCL_USING_HYDROGEN_CONCENTRATION_MEASUREMENT_CLUSTER_SERVER) || \ - defined(ZCL_USING_HYDROGEN_CONCENTRATION_MEASUREMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_HYDROGEN_CONCENTRATION_MEASUREMENT_CLUSTER \ - { ZCL_HYDROGEN_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 0x0000, "Hydrogen Concentration Measurement" }, -#else -#define SILABS_PRINTCLUSTER_HYDROGEN_CONCENTRATION_MEASUREMENT_CLUSTER -#endif -#if defined(ZCL_USING_HYDROGEN_SULPHIDE_CONCENTRATION_MEASUREMENT_CLUSTER_SERVER) || \ - defined(ZCL_USING_HYDROGEN_SULPHIDE_CONCENTRATION_MEASUREMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_HYDROGEN_SULPHIDE_CONCENTRATION_MEASUREMENT_CLUSTER \ - { ZCL_HYDROGEN_SULPHIDE_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 0x0000, "Hydrogen Sulphide Concentration Measurement" }, -#else -#define SILABS_PRINTCLUSTER_HYDROGEN_SULPHIDE_CONCENTRATION_MEASUREMENT_CLUSTER -#endif -#if defined(ZCL_USING_NITRIC_OXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_SERVER) || \ - defined(ZCL_USING_NITRIC_OXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_NITRIC_OXIDE_CONCENTRATION_MEASUREMENT_CLUSTER \ - { ZCL_NITRIC_OXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 0x0000, "Nitric Oxide Concentration Measurement" }, -#else -#define SILABS_PRINTCLUSTER_NITRIC_OXIDE_CONCENTRATION_MEASUREMENT_CLUSTER -#endif -#if defined(ZCL_USING_NITROGEN_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_SERVER) || \ - defined(ZCL_USING_NITROGEN_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_NITROGEN_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER \ - { ZCL_NITROGEN_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 0x0000, "Nitrogen Dioxide Concentration Measurement" }, -#else -#define SILABS_PRINTCLUSTER_NITROGEN_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER -#endif -#if defined(ZCL_USING_OXYGEN_CONCENTRATION_MEASUREMENT_CLUSTER_SERVER) || \ - defined(ZCL_USING_OXYGEN_CONCENTRATION_MEASUREMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_OXYGEN_CONCENTRATION_MEASUREMENT_CLUSTER \ - { ZCL_OXYGEN_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 0x0000, "Oxygen Concentration Measurement" }, -#else -#define SILABS_PRINTCLUSTER_OXYGEN_CONCENTRATION_MEASUREMENT_CLUSTER -#endif -#if defined(ZCL_USING_OZONE_CONCENTRATION_MEASUREMENT_CLUSTER_SERVER) || \ - defined(ZCL_USING_OZONE_CONCENTRATION_MEASUREMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_OZONE_CONCENTRATION_MEASUREMENT_CLUSTER \ - { ZCL_OZONE_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 0x0000, "Ozone Concentration Measurement" }, -#else -#define SILABS_PRINTCLUSTER_OZONE_CONCENTRATION_MEASUREMENT_CLUSTER -#endif -#if defined(ZCL_USING_SULFUR_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_SERVER) || \ - defined(ZCL_USING_SULFUR_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_SULFUR_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER \ - { ZCL_SULFUR_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 0x0000, "Sulfur Dioxide Concentration Measurement" }, -#else -#define SILABS_PRINTCLUSTER_SULFUR_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER -#endif -#if defined(ZCL_USING_DISSOLVED_OXYGEN_CONCENTRATION_MEASUREMENT_CLUSTER_SERVER) || \ - defined(ZCL_USING_DISSOLVED_OXYGEN_CONCENTRATION_MEASUREMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_DISSOLVED_OXYGEN_CONCENTRATION_MEASUREMENT_CLUSTER \ - { ZCL_DISSOLVED_OXYGEN_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 0x0000, "Dissolved Oxygen Concentration Measurement" }, -#else -#define SILABS_PRINTCLUSTER_DISSOLVED_OXYGEN_CONCENTRATION_MEASUREMENT_CLUSTER -#endif -#if defined(ZCL_USING_BROMATE_CONCENTRATION_MEASUREMENT_CLUSTER_SERVER) || \ - defined(ZCL_USING_BROMATE_CONCENTRATION_MEASUREMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_BROMATE_CONCENTRATION_MEASUREMENT_CLUSTER \ - { ZCL_BROMATE_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 0x0000, "Bromate Concentration Measurement" }, -#else -#define SILABS_PRINTCLUSTER_BROMATE_CONCENTRATION_MEASUREMENT_CLUSTER -#endif -#if defined(ZCL_USING_CHLORAMINES_CONCENTRATION_MEASUREMENT_CLUSTER_SERVER) || \ - defined(ZCL_USING_CHLORAMINES_CONCENTRATION_MEASUREMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_CHLORAMINES_CONCENTRATION_MEASUREMENT_CLUSTER \ - { ZCL_CHLORAMINES_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 0x0000, "Chloramines Concentration Measurement" }, -#else -#define SILABS_PRINTCLUSTER_CHLORAMINES_CONCENTRATION_MEASUREMENT_CLUSTER -#endif -#if defined(ZCL_USING_CHLORINE_CONCENTRATION_MEASUREMENT_CLUSTER_SERVER) || \ - defined(ZCL_USING_CHLORINE_CONCENTRATION_MEASUREMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_CHLORINE_CONCENTRATION_MEASUREMENT_CLUSTER \ - { ZCL_CHLORINE_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 0x0000, "Chlorine Concentration Measurement" }, -#else -#define SILABS_PRINTCLUSTER_CHLORINE_CONCENTRATION_MEASUREMENT_CLUSTER -#endif -#if defined(ZCL_USING_FECAL_COLIFORM_AND_E_COLI_CONCENTRATION_MEASUREMENT_CLUSTER_SERVER) || \ - defined(ZCL_USING_FECAL_COLIFORM_AND_E_COLI_CONCENTRATION_MEASUREMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_FECAL_COLIFORM_AND_E_COLI_CONCENTRATION_MEASUREMENT_CLUSTER \ - { ZCL_FECAL_COLIFORM_AND_E_COLI_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 0x0000, \ - "Fecal coliform and E. Coli Concentration Measurement" }, -#else -#define SILABS_PRINTCLUSTER_FECAL_COLIFORM_AND_E_COLI_CONCENTRATION_MEASUREMENT_CLUSTER -#endif -#if defined(ZCL_USING_FLUORIDE_CONCENTRATION_MEASUREMENT_CLUSTER_SERVER) || \ - defined(ZCL_USING_FLUORIDE_CONCENTRATION_MEASUREMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_FLUORIDE_CONCENTRATION_MEASUREMENT_CLUSTER \ - { ZCL_FLUORIDE_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 0x0000, "Fluoride Concentration Measurement" }, -#else -#define SILABS_PRINTCLUSTER_FLUORIDE_CONCENTRATION_MEASUREMENT_CLUSTER -#endif -#if defined(ZCL_USING_HALOACETIC_ACIDS_CONCENTRATION_MEASUREMENT_CLUSTER_SERVER) || \ - defined(ZCL_USING_HALOACETIC_ACIDS_CONCENTRATION_MEASUREMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_HALOACETIC_ACIDS_CONCENTRATION_MEASUREMENT_CLUSTER \ - { ZCL_HALOACETIC_ACIDS_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 0x0000, "Haloacetic Acids Concentration Measurement" }, -#else -#define SILABS_PRINTCLUSTER_HALOACETIC_ACIDS_CONCENTRATION_MEASUREMENT_CLUSTER -#endif -#if defined(ZCL_USING_TOTAL_TRIHALOMETHANES_CONCENTRATION_MEASUREMENT_CLUSTER_SERVER) || \ - defined(ZCL_USING_TOTAL_TRIHALOMETHANES_CONCENTRATION_MEASUREMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_TOTAL_TRIHALOMETHANES_CONCENTRATION_MEASUREMENT_CLUSTER \ - { ZCL_TOTAL_TRIHALOMETHANES_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 0x0000, "Total Trihalomethanes Concentration Measurement" }, -#else -#define SILABS_PRINTCLUSTER_TOTAL_TRIHALOMETHANES_CONCENTRATION_MEASUREMENT_CLUSTER -#endif -#if defined(ZCL_USING_TOTAL_COLIFORM_BACTERIA_CONCENTRATION_MEASUREMENT_CLUSTER_SERVER) || \ - defined(ZCL_USING_TOTAL_COLIFORM_BACTERIA_CONCENTRATION_MEASUREMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_TOTAL_COLIFORM_BACTERIA_CONCENTRATION_MEASUREMENT_CLUSTER \ - { ZCL_TOTAL_COLIFORM_BACTERIA_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 0x0000, \ - "Total Coliform Bacteria Concentration Measurement" }, -#else -#define SILABS_PRINTCLUSTER_TOTAL_COLIFORM_BACTERIA_CONCENTRATION_MEASUREMENT_CLUSTER -#endif -#if defined(ZCL_USING_TURBIDITY_CONCENTRATION_MEASUREMENT_CLUSTER_SERVER) || \ - defined(ZCL_USING_TURBIDITY_CONCENTRATION_MEASUREMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_TURBIDITY_CONCENTRATION_MEASUREMENT_CLUSTER \ - { ZCL_TURBIDITY_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 0x0000, "Turbidity Concentration Measurement" }, -#else -#define SILABS_PRINTCLUSTER_TURBIDITY_CONCENTRATION_MEASUREMENT_CLUSTER -#endif -#if defined(ZCL_USING_COPPER_CONCENTRATION_MEASUREMENT_CLUSTER_SERVER) || \ - defined(ZCL_USING_COPPER_CONCENTRATION_MEASUREMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_COPPER_CONCENTRATION_MEASUREMENT_CLUSTER \ - { ZCL_COPPER_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 0x0000, "Copper Concentration Measurement" }, -#else -#define SILABS_PRINTCLUSTER_COPPER_CONCENTRATION_MEASUREMENT_CLUSTER -#endif -#if defined(ZCL_USING_LEAD_CONCENTRATION_MEASUREMENT_CLUSTER_SERVER) || \ - defined(ZCL_USING_LEAD_CONCENTRATION_MEASUREMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_LEAD_CONCENTRATION_MEASUREMENT_CLUSTER \ - { ZCL_LEAD_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 0x0000, "Lead Concentration Measurement" }, -#else -#define SILABS_PRINTCLUSTER_LEAD_CONCENTRATION_MEASUREMENT_CLUSTER -#endif -#if defined(ZCL_USING_MANGANESE_CONCENTRATION_MEASUREMENT_CLUSTER_SERVER) || \ - defined(ZCL_USING_MANGANESE_CONCENTRATION_MEASUREMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_MANGANESE_CONCENTRATION_MEASUREMENT_CLUSTER \ - { ZCL_MANGANESE_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 0x0000, "Manganese Concentration Measurement" }, -#else -#define SILABS_PRINTCLUSTER_MANGANESE_CONCENTRATION_MEASUREMENT_CLUSTER -#endif -#if defined(ZCL_USING_SULFATE_CONCENTRATION_MEASUREMENT_CLUSTER_SERVER) || \ - defined(ZCL_USING_SULFATE_CONCENTRATION_MEASUREMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_SULFATE_CONCENTRATION_MEASUREMENT_CLUSTER \ - { ZCL_SULFATE_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 0x0000, "Sulfate Concentration Measurement" }, -#else -#define SILABS_PRINTCLUSTER_SULFATE_CONCENTRATION_MEASUREMENT_CLUSTER -#endif -#if defined(ZCL_USING_BROMODICHLOROMETHANE_CONCENTRATION_MEASUREMENT_CLUSTER_SERVER) || \ - defined(ZCL_USING_BROMODICHLOROMETHANE_CONCENTRATION_MEASUREMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_BROMODICHLOROMETHANE_CONCENTRATION_MEASUREMENT_CLUSTER \ - { ZCL_BROMODICHLOROMETHANE_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 0x0000, "Bromodichloromethane Concentration Measurement" }, -#else -#define SILABS_PRINTCLUSTER_BROMODICHLOROMETHANE_CONCENTRATION_MEASUREMENT_CLUSTER -#endif -#if defined(ZCL_USING_BROMOFORM_CONCENTRATION_MEASUREMENT_CLUSTER_SERVER) || \ - defined(ZCL_USING_BROMOFORM_CONCENTRATION_MEASUREMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_BROMOFORM_CONCENTRATION_MEASUREMENT_CLUSTER \ - { ZCL_BROMOFORM_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 0x0000, "Bromoform Concentration Measurement" }, -#else -#define SILABS_PRINTCLUSTER_BROMOFORM_CONCENTRATION_MEASUREMENT_CLUSTER -#endif -#if defined(ZCL_USING_CHLORODIBROMOMETHANE_CONCENTRATION_MEASUREMENT_CLUSTER_SERVER) || \ - defined(ZCL_USING_CHLORODIBROMOMETHANE_CONCENTRATION_MEASUREMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_CHLORODIBROMOMETHANE_CONCENTRATION_MEASUREMENT_CLUSTER \ - { ZCL_CHLORODIBROMOMETHANE_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 0x0000, "Chlorodibromomethane Concentration Measurement" }, -#else -#define SILABS_PRINTCLUSTER_CHLORODIBROMOMETHANE_CONCENTRATION_MEASUREMENT_CLUSTER -#endif -#if defined(ZCL_USING_CHLOROFORM_CONCENTRATION_MEASUREMENT_CLUSTER_SERVER) || \ - defined(ZCL_USING_CHLOROFORM_CONCENTRATION_MEASUREMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_CHLOROFORM_CONCENTRATION_MEASUREMENT_CLUSTER \ - { ZCL_CHLOROFORM_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 0x0000, "Chloroform Concentration Measurement" }, -#else -#define SILABS_PRINTCLUSTER_CHLOROFORM_CONCENTRATION_MEASUREMENT_CLUSTER -#endif -#if defined(ZCL_USING_SODIUM_CONCENTRATION_MEASUREMENT_CLUSTER_SERVER) || \ - defined(ZCL_USING_SODIUM_CONCENTRATION_MEASUREMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_SODIUM_CONCENTRATION_MEASUREMENT_CLUSTER \ - { ZCL_SODIUM_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 0x0000, "Sodium Concentration Measurement" }, -#else -#define SILABS_PRINTCLUSTER_SODIUM_CONCENTRATION_MEASUREMENT_CLUSTER -#endif -#if defined(ZCL_USING_IAS_ZONE_CLUSTER_SERVER) || defined(ZCL_USING_IAS_ZONE_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_IAS_ZONE_CLUSTER { ZCL_IAS_ZONE_CLUSTER_ID, 0x0000, "IAS Zone" }, -#else -#define SILABS_PRINTCLUSTER_IAS_ZONE_CLUSTER -#endif -#if defined(ZCL_USING_IAS_ACE_CLUSTER_SERVER) || defined(ZCL_USING_IAS_ACE_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_IAS_ACE_CLUSTER { ZCL_IAS_ACE_CLUSTER_ID, 0x0000, "IAS ACE" }, -#else -#define SILABS_PRINTCLUSTER_IAS_ACE_CLUSTER -#endif -#if defined(ZCL_USING_IAS_WD_CLUSTER_SERVER) || defined(ZCL_USING_IAS_WD_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_IAS_WD_CLUSTER { ZCL_IAS_WD_CLUSTER_ID, 0x0000, "IAS WD" }, -#else -#define SILABS_PRINTCLUSTER_IAS_WD_CLUSTER -#endif -#if defined(ZCL_USING_GENERIC_TUNNEL_CLUSTER_SERVER) || defined(ZCL_USING_GENERIC_TUNNEL_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_GENERIC_TUNNEL_CLUSTER { ZCL_GENERIC_TUNNEL_CLUSTER_ID, 0x0000, "Generic Tunnel" }, -#else -#define SILABS_PRINTCLUSTER_GENERIC_TUNNEL_CLUSTER -#endif -#if defined(ZCL_USING_BACNET_PROTOCOL_TUNNEL_CLUSTER_SERVER) || defined(ZCL_USING_BACNET_PROTOCOL_TUNNEL_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_BACNET_PROTOCOL_TUNNEL_CLUSTER \ - { ZCL_BACNET_PROTOCOL_TUNNEL_CLUSTER_ID, 0x0000, "BACnet Protocol Tunnel" }, -#else -#define SILABS_PRINTCLUSTER_BACNET_PROTOCOL_TUNNEL_CLUSTER -#endif -#if defined(ZCL_USING_11073_PROTOCOL_TUNNEL_CLUSTER_SERVER) || defined(ZCL_USING_11073_PROTOCOL_TUNNEL_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_11073_PROTOCOL_TUNNEL_CLUSTER { ZCL_11073_PROTOCOL_TUNNEL_CLUSTER_ID, 0x0000, "11073 Protocol Tunnel" }, -#else -#define SILABS_PRINTCLUSTER_11073_PROTOCOL_TUNNEL_CLUSTER -#endif -#if defined(ZCL_USING_ISO7816_PROTOCOL_TUNNEL_CLUSTER_SERVER) || defined(ZCL_USING_ISO7816_PROTOCOL_TUNNEL_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_ISO7816_PROTOCOL_TUNNEL_CLUSTER \ - { ZCL_ISO7816_PROTOCOL_TUNNEL_CLUSTER_ID, 0x0000, "ISO 7816 Protocol Tunnel" }, -#else -#define SILABS_PRINTCLUSTER_ISO7816_PROTOCOL_TUNNEL_CLUSTER -#endif -#if defined(ZCL_USING_PRICE_CLUSTER_SERVER) || defined(ZCL_USING_PRICE_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_PRICE_CLUSTER { ZCL_PRICE_CLUSTER_ID, 0x0000, "Price" }, -#else -#define SILABS_PRINTCLUSTER_PRICE_CLUSTER -#endif -#if defined(ZCL_USING_DEMAND_RESPONSE_LOAD_CONTROL_CLUSTER_SERVER) || defined(ZCL_USING_DEMAND_RESPONSE_LOAD_CONTROL_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_DEMAND_RESPONSE_LOAD_CONTROL_CLUSTER \ - { ZCL_DEMAND_RESPONSE_LOAD_CONTROL_CLUSTER_ID, 0x0000, "Demand Response and Load Control" }, -#else -#define SILABS_PRINTCLUSTER_DEMAND_RESPONSE_LOAD_CONTROL_CLUSTER -#endif -#if defined(ZCL_USING_SIMPLE_METERING_CLUSTER_SERVER) || defined(ZCL_USING_SIMPLE_METERING_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_SIMPLE_METERING_CLUSTER { ZCL_SIMPLE_METERING_CLUSTER_ID, 0x0000, "Simple Metering" }, -#else -#define SILABS_PRINTCLUSTER_SIMPLE_METERING_CLUSTER -#endif -#if defined(ZCL_USING_MESSAGING_CLUSTER_SERVER) || defined(ZCL_USING_MESSAGING_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_MESSAGING_CLUSTER { ZCL_MESSAGING_CLUSTER_ID, 0x0000, "Messaging" }, -#else -#define SILABS_PRINTCLUSTER_MESSAGING_CLUSTER -#endif -#if defined(ZCL_USING_TUNNELING_CLUSTER_SERVER) || defined(ZCL_USING_TUNNELING_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_TUNNELING_CLUSTER { ZCL_TUNNELING_CLUSTER_ID, 0x0000, "Tunneling" }, -#else -#define SILABS_PRINTCLUSTER_TUNNELING_CLUSTER -#endif -#if defined(ZCL_USING_PREPAYMENT_CLUSTER_SERVER) || defined(ZCL_USING_PREPAYMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_PREPAYMENT_CLUSTER { ZCL_PREPAYMENT_CLUSTER_ID, 0x0000, "Prepayment" }, -#else -#define SILABS_PRINTCLUSTER_PREPAYMENT_CLUSTER -#endif -#if defined(ZCL_USING_ENERGY_MANAGEMENT_CLUSTER_SERVER) || defined(ZCL_USING_ENERGY_MANAGEMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_ENERGY_MANAGEMENT_CLUSTER { ZCL_ENERGY_MANAGEMENT_CLUSTER_ID, 0x0000, "Energy Management" }, -#else -#define SILABS_PRINTCLUSTER_ENERGY_MANAGEMENT_CLUSTER -#endif -#if defined(ZCL_USING_CALENDAR_CLUSTER_SERVER) || defined(ZCL_USING_CALENDAR_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_CALENDAR_CLUSTER { ZCL_CALENDAR_CLUSTER_ID, 0x0000, "Calendar" }, -#else -#define SILABS_PRINTCLUSTER_CALENDAR_CLUSTER -#endif -#if defined(ZCL_USING_DEVICE_MANAGEMENT_CLUSTER_SERVER) || defined(ZCL_USING_DEVICE_MANAGEMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_DEVICE_MANAGEMENT_CLUSTER { ZCL_DEVICE_MANAGEMENT_CLUSTER_ID, 0x0000, "Device Management" }, -#else -#define SILABS_PRINTCLUSTER_DEVICE_MANAGEMENT_CLUSTER -#endif -#if defined(ZCL_USING_EVENTS_CLUSTER_SERVER) || defined(ZCL_USING_EVENTS_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_EVENTS_CLUSTER { ZCL_EVENTS_CLUSTER_ID, 0x0000, "Events" }, -#else -#define SILABS_PRINTCLUSTER_EVENTS_CLUSTER -#endif -#if defined(ZCL_USING_MDU_PAIRING_CLUSTER_SERVER) || defined(ZCL_USING_MDU_PAIRING_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_MDU_PAIRING_CLUSTER { ZCL_MDU_PAIRING_CLUSTER_ID, 0x0000, "MDU Pairing" }, -#else -#define SILABS_PRINTCLUSTER_MDU_PAIRING_CLUSTER -#endif -#if defined(ZCL_USING_SUB_GHZ_CLUSTER_SERVER) || defined(ZCL_USING_SUB_GHZ_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_SUB_GHZ_CLUSTER { ZCL_SUB_GHZ_CLUSTER_ID, 0x0000, "Sub-GHz" }, -#else -#define SILABS_PRINTCLUSTER_SUB_GHZ_CLUSTER -#endif -#if defined(ZCL_USING_KEY_ESTABLISHMENT_CLUSTER_SERVER) || defined(ZCL_USING_KEY_ESTABLISHMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_KEY_ESTABLISHMENT_CLUSTER { ZCL_KEY_ESTABLISHMENT_CLUSTER_ID, 0x0000, "Key Establishment" }, -#else -#define SILABS_PRINTCLUSTER_KEY_ESTABLISHMENT_CLUSTER -#endif -#if defined(ZCL_USING_INFORMATION_CLUSTER_SERVER) || defined(ZCL_USING_INFORMATION_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_INFORMATION_CLUSTER { ZCL_INFORMATION_CLUSTER_ID, 0x0000, "Information" }, -#else -#define SILABS_PRINTCLUSTER_INFORMATION_CLUSTER -#endif -#if defined(ZCL_USING_DATA_SHARING_CLUSTER_SERVER) || defined(ZCL_USING_DATA_SHARING_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_DATA_SHARING_CLUSTER { ZCL_DATA_SHARING_CLUSTER_ID, 0x0000, "Data Sharing" }, -#else -#define SILABS_PRINTCLUSTER_DATA_SHARING_CLUSTER -#endif -#if defined(ZCL_USING_GAMING_CLUSTER_SERVER) || defined(ZCL_USING_GAMING_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_GAMING_CLUSTER { ZCL_GAMING_CLUSTER_ID, 0x0000, "Gaming" }, -#else -#define SILABS_PRINTCLUSTER_GAMING_CLUSTER -#endif -#if defined(ZCL_USING_DATA_RATE_CONTROL_CLUSTER_SERVER) || defined(ZCL_USING_DATA_RATE_CONTROL_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_DATA_RATE_CONTROL_CLUSTER { ZCL_DATA_RATE_CONTROL_CLUSTER_ID, 0x0000, "Data Rate Control" }, -#else -#define SILABS_PRINTCLUSTER_DATA_RATE_CONTROL_CLUSTER -#endif -#if defined(ZCL_USING_VOICE_OVER_ZIGBEE_CLUSTER_SERVER) || defined(ZCL_USING_VOICE_OVER_ZIGBEE_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_VOICE_OVER_ZIGBEE_CLUSTER { ZCL_VOICE_OVER_ZIGBEE_CLUSTER_ID, 0x0000, "Voice over ZigBee" }, -#else -#define SILABS_PRINTCLUSTER_VOICE_OVER_ZIGBEE_CLUSTER -#endif -#if defined(ZCL_USING_CHATTING_CLUSTER_SERVER) || defined(ZCL_USING_CHATTING_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_CHATTING_CLUSTER { ZCL_CHATTING_CLUSTER_ID, 0x0000, "Chatting" }, -#else -#define SILABS_PRINTCLUSTER_CHATTING_CLUSTER -#endif -#if defined(ZCL_USING_PAYMENT_CLUSTER_SERVER) || defined(ZCL_USING_PAYMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_PAYMENT_CLUSTER { ZCL_PAYMENT_CLUSTER_ID, 0x0000, "Payment" }, -#else -#define SILABS_PRINTCLUSTER_PAYMENT_CLUSTER -#endif -#if defined(ZCL_USING_BILLING_CLUSTER_SERVER) || defined(ZCL_USING_BILLING_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_BILLING_CLUSTER { ZCL_BILLING_CLUSTER_ID, 0x0000, "Billing" }, -#else -#define SILABS_PRINTCLUSTER_BILLING_CLUSTER -#endif -#if defined(ZCL_USING_APPLIANCE_IDENTIFICATION_CLUSTER_SERVER) || defined(ZCL_USING_APPLIANCE_IDENTIFICATION_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_APPLIANCE_IDENTIFICATION_CLUSTER \ - { ZCL_APPLIANCE_IDENTIFICATION_CLUSTER_ID, 0x0000, "Appliance Identification" }, -#else -#define SILABS_PRINTCLUSTER_APPLIANCE_IDENTIFICATION_CLUSTER -#endif -#if defined(ZCL_USING_METER_IDENTIFICATION_CLUSTER_SERVER) || defined(ZCL_USING_METER_IDENTIFICATION_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_METER_IDENTIFICATION_CLUSTER { ZCL_METER_IDENTIFICATION_CLUSTER_ID, 0x0000, "Meter Identification" }, -#else -#define SILABS_PRINTCLUSTER_METER_IDENTIFICATION_CLUSTER -#endif -#if defined(ZCL_USING_APPLIANCE_EVENTS_AND_ALERT_CLUSTER_SERVER) || defined(ZCL_USING_APPLIANCE_EVENTS_AND_ALERT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_APPLIANCE_EVENTS_AND_ALERT_CLUSTER \ - { ZCL_APPLIANCE_EVENTS_AND_ALERT_CLUSTER_ID, 0x0000, "Appliance Events and Alert" }, -#else -#define SILABS_PRINTCLUSTER_APPLIANCE_EVENTS_AND_ALERT_CLUSTER -#endif -#if defined(ZCL_USING_APPLIANCE_STATISTICS_CLUSTER_SERVER) || defined(ZCL_USING_APPLIANCE_STATISTICS_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_APPLIANCE_STATISTICS_CLUSTER { ZCL_APPLIANCE_STATISTICS_CLUSTER_ID, 0x0000, "Appliance Statistics" }, -#else -#define SILABS_PRINTCLUSTER_APPLIANCE_STATISTICS_CLUSTER -#endif -#if defined(ZCL_USING_ELECTRICAL_MEASUREMENT_CLUSTER_SERVER) || defined(ZCL_USING_ELECTRICAL_MEASUREMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_ELECTRICAL_MEASUREMENT_CLUSTER \ - { ZCL_ELECTRICAL_MEASUREMENT_CLUSTER_ID, 0x0000, "Electrical Measurement" }, -#else -#define SILABS_PRINTCLUSTER_ELECTRICAL_MEASUREMENT_CLUSTER -#endif -#if defined(ZCL_USING_DIAGNOSTICS_CLUSTER_SERVER) || defined(ZCL_USING_DIAGNOSTICS_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_DIAGNOSTICS_CLUSTER { ZCL_DIAGNOSTICS_CLUSTER_ID, 0x0000, "Diagnostics" }, -#else -#define SILABS_PRINTCLUSTER_DIAGNOSTICS_CLUSTER -#endif -#if defined(ZCL_USING_ZLL_COMMISSIONING_CLUSTER_SERVER) || defined(ZCL_USING_ZLL_COMMISSIONING_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_ZLL_COMMISSIONING_CLUSTER { ZCL_ZLL_COMMISSIONING_CLUSTER_ID, 0x0000, "ZLL Commissioning" }, -#else -#define SILABS_PRINTCLUSTER_ZLL_COMMISSIONING_CLUSTER -#endif -#if defined(ZCL_USING_SAMPLE_MFG_SPECIFIC_CLUSTER_SERVER) || defined(ZCL_USING_SAMPLE_MFG_SPECIFIC_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_SAMPLE_MFG_SPECIFIC_CLUSTER \ - { ZCL_SAMPLE_MFG_SPECIFIC_CLUSTER_ID, 0x1002, "Sample Mfg Specific Cluster" }, -#else -#define SILABS_PRINTCLUSTER_SAMPLE_MFG_SPECIFIC_CLUSTER -#endif -#if defined(ZCL_USING_SAMPLE_MFG_SPECIFIC_CLUSTER_2_SERVER) || defined(ZCL_USING_SAMPLE_MFG_SPECIFIC_CLUSTER_2_CLIENT) -#define SILABS_PRINTCLUSTER_SAMPLE_MFG_SPECIFIC_CLUSTER_2 \ - { ZCL_SAMPLE_MFG_SPECIFIC_CLUSTER_2_ID, 0x1049, "Sample Mfg Specific Cluster 2" }, -#else -#define SILABS_PRINTCLUSTER_SAMPLE_MFG_SPECIFIC_CLUSTER_2 -#endif -#if defined(ZCL_USING_OTA_CONFIGURATION_CLUSTER_SERVER) || defined(ZCL_USING_OTA_CONFIGURATION_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_OTA_CONFIGURATION_CLUSTER { ZCL_OTA_CONFIGURATION_CLUSTER_ID, 0x1002, "Configuration Cluster" }, -#else -#define SILABS_PRINTCLUSTER_OTA_CONFIGURATION_CLUSTER -#endif -#if defined(ZCL_USING_MFGLIB_CLUSTER_SERVER) || defined(ZCL_USING_MFGLIB_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_MFGLIB_CLUSTER { ZCL_MFGLIB_CLUSTER_ID, 0x1002, "MFGLIB Cluster" }, -#else -#define SILABS_PRINTCLUSTER_MFGLIB_CLUSTER -#endif -#if defined(ZCL_USING_SL_WWAH_CLUSTER_SERVER) || defined(ZCL_USING_SL_WWAH_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_SL_WWAH_CLUSTER { ZCL_SL_WWAH_CLUSTER_ID, 0x1217, "SL Works With All Hubs" }, -#else -#define SILABS_PRINTCLUSTER_SL_WWAH_CLUSTER -#endif -#define CLUSTER_IDS_TO_NAMES \ - SILABS_PRINTCLUSTER_BASIC_CLUSTER \ - SILABS_PRINTCLUSTER_POWER_CONFIG_CLUSTER \ - SILABS_PRINTCLUSTER_DEVICE_TEMP_CLUSTER \ - SILABS_PRINTCLUSTER_IDENTIFY_CLUSTER \ - SILABS_PRINTCLUSTER_GROUPS_CLUSTER \ - SILABS_PRINTCLUSTER_SCENES_CLUSTER \ - SILABS_PRINTCLUSTER_ON_OFF_CLUSTER \ - SILABS_PRINTCLUSTER_ON_OFF_SWITCH_CONFIG_CLUSTER \ - SILABS_PRINTCLUSTER_LEVEL_CONTROL_CLUSTER \ - SILABS_PRINTCLUSTER_ALARM_CLUSTER \ - SILABS_PRINTCLUSTER_TIME_CLUSTER \ - SILABS_PRINTCLUSTER_RSSI_LOCATION_CLUSTER \ - SILABS_PRINTCLUSTER_BINARY_INPUT_BASIC_CLUSTER \ - SILABS_PRINTCLUSTER_COMMISSIONING_CLUSTER \ - SILABS_PRINTCLUSTER_PARTITION_CLUSTER \ - SILABS_PRINTCLUSTER_OTA_BOOTLOAD_CLUSTER \ - SILABS_PRINTCLUSTER_POWER_PROFILE_CLUSTER \ - SILABS_PRINTCLUSTER_APPLIANCE_CONTROL_CLUSTER \ - SILABS_PRINTCLUSTER_POLL_CONTROL_CLUSTER \ - SILABS_PRINTCLUSTER_GREEN_POWER_CLUSTER \ - SILABS_PRINTCLUSTER_KEEPALIVE_CLUSTER \ - SILABS_PRINTCLUSTER_SHADE_CONFIG_CLUSTER \ - SILABS_PRINTCLUSTER_DOOR_LOCK_CLUSTER \ - SILABS_PRINTCLUSTER_WINDOW_COVERING_CLUSTER \ - SILABS_PRINTCLUSTER_BARRIER_CONTROL_CLUSTER \ - SILABS_PRINTCLUSTER_PUMP_CONFIG_CONTROL_CLUSTER \ - SILABS_PRINTCLUSTER_THERMOSTAT_CLUSTER \ - SILABS_PRINTCLUSTER_FAN_CONTROL_CLUSTER \ - SILABS_PRINTCLUSTER_DEHUMID_CONTROL_CLUSTER \ - SILABS_PRINTCLUSTER_THERMOSTAT_UI_CONFIG_CLUSTER \ - SILABS_PRINTCLUSTER_COLOR_CONTROL_CLUSTER \ - SILABS_PRINTCLUSTER_BALLAST_CONFIGURATION_CLUSTER \ - SILABS_PRINTCLUSTER_ILLUM_MEASUREMENT_CLUSTER \ - SILABS_PRINTCLUSTER_ILLUM_LEVEL_SENSING_CLUSTER \ - SILABS_PRINTCLUSTER_TEMP_MEASUREMENT_CLUSTER \ - SILABS_PRINTCLUSTER_PRESSURE_MEASUREMENT_CLUSTER \ - SILABS_PRINTCLUSTER_FLOW_MEASUREMENT_CLUSTER \ - SILABS_PRINTCLUSTER_RELATIVE_HUMIDITY_MEASUREMENT_CLUSTER \ - SILABS_PRINTCLUSTER_OCCUPANCY_SENSING_CLUSTER \ - SILABS_PRINTCLUSTER_CARBON_MONOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER \ - SILABS_PRINTCLUSTER_CARBON_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER \ - SILABS_PRINTCLUSTER_ETHYLENE_CONCENTRATION_MEASUREMENT_CLUSTER \ - SILABS_PRINTCLUSTER_ETHYLENE_OXIDE_CONCENTRATION_MEASUREMENT_CLUSTER \ - SILABS_PRINTCLUSTER_HYDROGEN_CONCENTRATION_MEASUREMENT_CLUSTER \ - SILABS_PRINTCLUSTER_HYDROGEN_SULPHIDE_CONCENTRATION_MEASUREMENT_CLUSTER \ - SILABS_PRINTCLUSTER_NITRIC_OXIDE_CONCENTRATION_MEASUREMENT_CLUSTER \ - SILABS_PRINTCLUSTER_NITROGEN_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER \ - SILABS_PRINTCLUSTER_OXYGEN_CONCENTRATION_MEASUREMENT_CLUSTER \ - SILABS_PRINTCLUSTER_OZONE_CONCENTRATION_MEASUREMENT_CLUSTER \ - SILABS_PRINTCLUSTER_SULFUR_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER \ - SILABS_PRINTCLUSTER_DISSOLVED_OXYGEN_CONCENTRATION_MEASUREMENT_CLUSTER \ - SILABS_PRINTCLUSTER_BROMATE_CONCENTRATION_MEASUREMENT_CLUSTER \ - SILABS_PRINTCLUSTER_CHLORAMINES_CONCENTRATION_MEASUREMENT_CLUSTER \ - SILABS_PRINTCLUSTER_CHLORINE_CONCENTRATION_MEASUREMENT_CLUSTER \ - SILABS_PRINTCLUSTER_FECAL_COLIFORM_AND_E_COLI_CONCENTRATION_MEASUREMENT_CLUSTER \ - SILABS_PRINTCLUSTER_FLUORIDE_CONCENTRATION_MEASUREMENT_CLUSTER \ - SILABS_PRINTCLUSTER_HALOACETIC_ACIDS_CONCENTRATION_MEASUREMENT_CLUSTER \ - SILABS_PRINTCLUSTER_TOTAL_TRIHALOMETHANES_CONCENTRATION_MEASUREMENT_CLUSTER \ - SILABS_PRINTCLUSTER_TOTAL_COLIFORM_BACTERIA_CONCENTRATION_MEASUREMENT_CLUSTER \ - SILABS_PRINTCLUSTER_TURBIDITY_CONCENTRATION_MEASUREMENT_CLUSTER \ - SILABS_PRINTCLUSTER_COPPER_CONCENTRATION_MEASUREMENT_CLUSTER \ - SILABS_PRINTCLUSTER_LEAD_CONCENTRATION_MEASUREMENT_CLUSTER \ - SILABS_PRINTCLUSTER_MANGANESE_CONCENTRATION_MEASUREMENT_CLUSTER \ - SILABS_PRINTCLUSTER_SULFATE_CONCENTRATION_MEASUREMENT_CLUSTER \ - SILABS_PRINTCLUSTER_BROMODICHLOROMETHANE_CONCENTRATION_MEASUREMENT_CLUSTER \ - SILABS_PRINTCLUSTER_BROMOFORM_CONCENTRATION_MEASUREMENT_CLUSTER \ - SILABS_PRINTCLUSTER_CHLORODIBROMOMETHANE_CONCENTRATION_MEASUREMENT_CLUSTER \ - SILABS_PRINTCLUSTER_CHLOROFORM_CONCENTRATION_MEASUREMENT_CLUSTER \ - SILABS_PRINTCLUSTER_SODIUM_CONCENTRATION_MEASUREMENT_CLUSTER \ - SILABS_PRINTCLUSTER_IAS_ZONE_CLUSTER \ - SILABS_PRINTCLUSTER_IAS_ACE_CLUSTER \ - SILABS_PRINTCLUSTER_IAS_WD_CLUSTER \ - SILABS_PRINTCLUSTER_GENERIC_TUNNEL_CLUSTER \ - SILABS_PRINTCLUSTER_BACNET_PROTOCOL_TUNNEL_CLUSTER \ - SILABS_PRINTCLUSTER_11073_PROTOCOL_TUNNEL_CLUSTER \ - SILABS_PRINTCLUSTER_ISO7816_PROTOCOL_TUNNEL_CLUSTER \ - SILABS_PRINTCLUSTER_PRICE_CLUSTER \ - SILABS_PRINTCLUSTER_DEMAND_RESPONSE_LOAD_CONTROL_CLUSTER \ - SILABS_PRINTCLUSTER_SIMPLE_METERING_CLUSTER \ - SILABS_PRINTCLUSTER_MESSAGING_CLUSTER \ - SILABS_PRINTCLUSTER_TUNNELING_CLUSTER \ - SILABS_PRINTCLUSTER_PREPAYMENT_CLUSTER \ - SILABS_PRINTCLUSTER_ENERGY_MANAGEMENT_CLUSTER \ - SILABS_PRINTCLUSTER_CALENDAR_CLUSTER \ - SILABS_PRINTCLUSTER_DEVICE_MANAGEMENT_CLUSTER \ - SILABS_PRINTCLUSTER_EVENTS_CLUSTER \ - SILABS_PRINTCLUSTER_MDU_PAIRING_CLUSTER \ - SILABS_PRINTCLUSTER_SUB_GHZ_CLUSTER \ - SILABS_PRINTCLUSTER_KEY_ESTABLISHMENT_CLUSTER \ - SILABS_PRINTCLUSTER_INFORMATION_CLUSTER \ - SILABS_PRINTCLUSTER_DATA_SHARING_CLUSTER \ - SILABS_PRINTCLUSTER_GAMING_CLUSTER \ - SILABS_PRINTCLUSTER_DATA_RATE_CONTROL_CLUSTER \ - SILABS_PRINTCLUSTER_VOICE_OVER_ZIGBEE_CLUSTER \ - SILABS_PRINTCLUSTER_CHATTING_CLUSTER \ - SILABS_PRINTCLUSTER_PAYMENT_CLUSTER \ - SILABS_PRINTCLUSTER_BILLING_CLUSTER \ - SILABS_PRINTCLUSTER_APPLIANCE_IDENTIFICATION_CLUSTER \ - SILABS_PRINTCLUSTER_METER_IDENTIFICATION_CLUSTER \ - SILABS_PRINTCLUSTER_APPLIANCE_EVENTS_AND_ALERT_CLUSTER \ - SILABS_PRINTCLUSTER_APPLIANCE_STATISTICS_CLUSTER \ - SILABS_PRINTCLUSTER_ELECTRICAL_MEASUREMENT_CLUSTER \ - SILABS_PRINTCLUSTER_DIAGNOSTICS_CLUSTER \ - SILABS_PRINTCLUSTER_ZLL_COMMISSIONING_CLUSTER \ - SILABS_PRINTCLUSTER_SAMPLE_MFG_SPECIFIC_CLUSTER \ - SILABS_PRINTCLUSTER_SAMPLE_MFG_SPECIFIC_CLUSTER_2 \ - SILABS_PRINTCLUSTER_OTA_CONFIGURATION_CLUSTER \ - SILABS_PRINTCLUSTER_MFGLIB_CLUSTER \ - SILABS_PRINTCLUSTER_SL_WWAH_CLUSTER - -#define MAX_CLUSTER_NAME_LENGTH 52 -#endif // SILABS_PRINT_CLUSTER diff --git a/examples/lighting-app/lighting-common/BUILD.gn b/examples/lighting-app/lighting-common/BUILD.gn index 1186774b4b7a8f..3678a2e4381f93 100644 --- a/examples/lighting-app/lighting-common/BUILD.gn +++ b/examples/lighting-app/lighting-common/BUILD.gn @@ -24,7 +24,10 @@ config("includes") { source_set("lighting-common") { sources = [ "${chip_root}/examples/common/chip-app-server/DataModelHandler.cpp", + "${chip_root}/src/app/clusters/level-control/level-control.cpp", "${chip_root}/src/app/clusters/on-off-server/on-off.cpp", + "${chip_root}/src/app/reporting/reporting-default-configuration.cpp", + "${chip_root}/src/app/reporting/reporting.cpp", "${chip_root}/src/app/util/af-event.cpp", "${chip_root}/src/app/util/af-main-common.cpp", "${chip_root}/src/app/util/attribute-size.cpp", @@ -38,8 +41,8 @@ source_set("lighting-common") { "${chip_root}/src/app/util/process-cluster-message.cpp", "${chip_root}/src/app/util/process-global-message.cpp", "${chip_root}/src/app/util/util.cpp", - "gen/call-command-handler.c", - "gen/callback-stub.c", + "gen/call-command-handler.cpp", + "gen/callback-stub.cpp", ] deps = [ diff --git a/examples/lighting-app/lighting-common/gen/af-gen-event.h b/examples/lighting-app/lighting-common/gen/af-gen-event.h index e69de29bb2d1d6..2d3bbadcfbce8c 100644 --- a/examples/lighting-app/lighting-common/gen/af-gen-event.h +++ b/examples/lighting-app/lighting-common/gen/af-gen-event.h @@ -0,0 +1,72 @@ +/** + * + * 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 4 + +// 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/examples/lighting-app/lighting-common/gen/af-structs.h b/examples/lighting-app/lighting-common/gen/af-structs.h index 8009281c7692c6..6d04f3faa8e82d 100644 --- a/examples/lighting-app/lighting-common/gen/af-structs.h +++ b/examples/lighting-app/lighting-common/gen/af-structs.h @@ -1,4 +1,5 @@ -/** + +/* * * Copyright (c) 2020 Project CHIP Authors * @@ -15,236 +16,195 @@ * 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. -// -// +// Prevent multiple inclusion +#pragma once -// Enclosing macro to prevent multiple inclusion -#ifndef SILABS_EMBER_AF_STRUCTS -#define SILABS_EMBER_AF_STRUCTS +#include "basic-types.h" +#include "enums.h" +#include -// Generated structs from the metadata -// Struct for IasAceZoneStatusResult -typedef struct _IasAceZoneStatusResult +// Struct for BlockThreshold +typedef struct _BlockThreshold { - uint8_t zoneId; - uint16_t zoneStatus; -} IasAceZoneStatusResult; + uint8_t blockThreshold; + uint8_t priceControl; + uint32_t blockPeriodStartTime; + uint32_t blockPeriodDurationMinutes; + uint8_t fuelType; + uint32_t standingCharge; +} EmberAfBlockThreshold; -// Struct for ReadAttributeStatusRecord -typedef struct _ReadAttributeStatusRecord +// Struct for BlockThresholdSubPayload +typedef struct _BlockThresholdSubPayload { - uint16_t attributeId; - uint8_t status; - uint8_t attributeType; - uint8_t * attributeLocation; -} ReadAttributeStatusRecord; + uint8_t tierNumberOfBlockThresholds; + uint8_t * blockThreshold; +} EmberAfBlockThresholdSubPayload; -// Struct for WriteAttributeRecord -typedef struct _WriteAttributeRecord +// Struct for ChatParticipant +typedef struct _ChatParticipant { - uint16_t attributeId; - uint8_t attributeType; - uint8_t * attributeLocation; -} WriteAttributeRecord; + uint16_t uid; + uint8_t * nickname; +} EmberAfChatParticipant; -// Struct for WriteAttributeStatusRecord -typedef struct _WriteAttributeStatusRecord +// Struct for ChatRoom +typedef struct _ChatRoom { - uint8_t status; - uint16_t attributeId; -} WriteAttributeStatusRecord; + uint16_t cid; + uint8_t * name; +} EmberAfChatRoom; // Struct for ConfigureReportingRecord typedef struct _ConfigureReportingRecord { uint8_t direction; - uint16_t attributeId; + chip::AttributeId attributeId; uint8_t attributeType; uint16_t minimumReportingInterval; uint16_t maximumReportingInterval; uint8_t * reportableChangeLocation; uint16_t timeoutPeriod; -} ConfigureReportingRecord; +} EmberAfConfigureReportingRecord; // Struct for ConfigureReportingStatusRecord typedef struct _ConfigureReportingStatusRecord { uint8_t status; uint8_t direction; - uint16_t attributeId; -} ConfigureReportingStatusRecord; - -// Struct for ReadReportingConfigurationRecord -typedef struct _ReadReportingConfigurationRecord -{ - uint8_t status; - uint8_t direction; - uint16_t attributeId; - uint8_t attributeType; - uint16_t minimumReportingInterval; - uint16_t maximumReportingInterval; - uint8_t * reportableChangeLocation; - uint16_t timeoutPeriod; -} ReadReportingConfigurationRecord; + chip::AttributeId attributeId; +} EmberAfConfigureReportingStatusRecord; -// Struct for ReadReportingConfigurationAttributeRecord -typedef struct _ReadReportingConfigurationAttributeRecord +// Struct for DebtPayload +typedef struct _DebtPayload { - uint8_t direction; - uint16_t attributeId; -} ReadReportingConfigurationAttributeRecord; + uint32_t collectionTime; + uint32_t amountCollected; + uint8_t debtType; + uint32_t outstandingDebt; +} EmberAfDebtPayload; -// Struct for ReportAttributeRecord -typedef struct _ReportAttributeRecord +// Struct for DeviceInformationRecord +typedef struct _DeviceInformationRecord { - uint16_t attributeId; - uint8_t attributeType; - uint8_t * attributeLocation; -} ReportAttributeRecord; + uint64_t ieeeAddress; + chip::EndpointId endpointId; + uint16_t profileId; + uint16_t deviceId; + uint8_t version; + uint8_t groupIdCount; + uint8_t sort; +} EmberAfDeviceInformationRecord; // Struct for DiscoverAttributesInfoRecord typedef struct _DiscoverAttributesInfoRecord { - uint16_t attributeId; + chip::AttributeId attributeId; uint8_t attributeType; -} DiscoverAttributesInfoRecord; +} EmberAfDiscoverAttributesInfoRecord; -// Struct for ExtendedDiscoverAttributesInfoRecord -typedef struct _ExtendedDiscoverAttributesInfoRecord +// Struct for EndpointInformationRecord +typedef struct _EndpointInformationRecord { - uint16_t attributeId; - uint8_t attributeType; - uint8_t attributeAccessControl; -} ExtendedDiscoverAttributesInfoRecord; + uint16_t networkAddress; + chip::EndpointId endpointId; + uint16_t profileId; + uint16_t deviceId; + uint8_t version; +} EmberAfEndpointInformationRecord; -// Struct for ReadStructuredAttributeRecord -typedef struct _ReadStructuredAttributeRecord -{ - uint16_t attributeId; - uint8_t indicator; - uint16_t indicies; -} ReadStructuredAttributeRecord; +// Void typedef for EmberAfEphemeralData which is empty. +// this will result in all the references to the data being as uint8_t* +typedef uint8_t EmberAfEphemeralData; -// Struct for WriteStructuredAttributeRecord -typedef struct _WriteStructuredAttributeRecord +// Struct for EventConfigurationPayload +typedef struct _EventConfigurationPayload { - uint16_t attributeId; - uint8_t indicator; - uint16_t indicies; - uint8_t attributeType; - uint8_t * attributeLocation; -} WriteStructuredAttributeRecord; + uint16_t eventId; + uint8_t eventConfiguration; +} EmberAfEventConfigurationPayload; -// Struct for WriteStructuredAttributeStatusRecord -typedef struct _WriteStructuredAttributeStatusRecord +// Struct for EventLogPayload +typedef struct _EventLogPayload { - uint8_t status; - uint16_t attributeId; - uint8_t indicator; - uint16_t indicies; -} WriteStructuredAttributeStatusRecord; + uint8_t logId; + uint16_t eventId; + uint32_t eventTime; + uint8_t * eventData; +} EmberAfEventLogPayload; -// Struct for SceneExtensionAttributeInfo -typedef struct _SceneExtensionAttributeInfo +// Struct for ExtendedDiscoverAttributesInfoRecord +typedef struct _ExtendedDiscoverAttributesInfoRecord { + chip::AttributeId attributeId; uint8_t attributeType; - uint8_t * attributeLocation; -} SceneExtensionAttributeInfo; + uint8_t attributeAccessControl; +} EmberAfExtendedDiscoverAttributesInfoRecord; -// Struct for SceneExtensionFieldSet -typedef struct _SceneExtensionFieldSet +// Struct for GpPairingConfigurationGroupList +typedef struct _GpPairingConfigurationGroupList { - uint16_t clusterId; - uint8_t length; - uint8_t value; -} SceneExtensionFieldSet; + uint16_t SinkGroup; + uint16_t Alias; +} EmberAfGpPairingConfigurationGroupList; -// Struct for BlockThreshold -typedef struct _BlockThreshold +// Struct for GpTranslationTableUpdateTranslation +typedef struct _GpTranslationTableUpdateTranslation { - uint8_t blockThreshold; - uint8_t priceControl; - uint32_t blockPeriodStartTime; - uint32_t blockPeriodDurationMinutes; - uint8_t fuelType; - uint32_t standingCharge; -} BlockThreshold; + uint8_t index; + uint8_t gpdCommandId; + chip::EndpointId endpoint; + uint16_t profile; + uint16_t cluster; + uint8_t zigbeeCommandId; + uint8_t * zigbeeCommandPayload; + uint8_t * additionalInfoBlock; +} EmberAfGpTranslationTableUpdateTranslation; -// Struct for Notification -typedef struct _Notification +// Struct for GroupInformationRecord +typedef struct _GroupInformationRecord { - uint16_t contentId; - uint8_t statusFeedback; -} Notification; + chip::GroupId groupId; + uint8_t groupType; +} EmberAfGroupInformationRecord; + +// Struct for IasAceZoneStatusResult +typedef struct _IasAceZoneStatusResult +{ + uint8_t zoneId; + uint16_t zoneStatus; +} EmberAfIasAceZoneStatusResult; + +// Void typedef for EmberAfIdentity which is empty. +// this will result in all the references to the data being as uint8_t* +typedef uint8_t EmberAfIdentity; // Struct for NeighborInfo typedef struct _NeighborInfo { - uint8_t * neighbor; + uint64_t neighbor; int16_t x; int16_t y; int16_t z; int8_t rssi; uint8_t numberRssiMeasurements; -} NeighborInfo; - -// Struct for ChatParticipant -typedef struct _ChatParticipant -{ - uint16_t uid; - uint8_t * nickname; -} ChatParticipant; - -// Struct for ChatRoom -typedef struct _ChatRoom -{ - uint16_t cid; - uint8_t * name; -} ChatRoom; +} EmberAfNeighborInfo; // Struct for NodeInformation typedef struct _NodeInformation { uint16_t uid; uint16_t address; - uint8_t endpoint; + chip::EndpointId endpoint; uint8_t * nickname; -} NodeInformation; - -// Struct for ScheduledPhase -typedef struct _ScheduledPhase -{ - uint8_t energyPhaseId; - uint16_t scheduledTime; -} ScheduledPhase; +} EmberAfNodeInformation; -// Struct for TransferredPhase -typedef struct _TransferredPhase +// Struct for Notification +typedef struct _Notification { - uint8_t energyPhaseId; - uint8_t macroPhaseId; - uint16_t expectedDuration; - uint16_t peakPower; - uint16_t energy; - uint16_t maxActivationDelay; -} TransferredPhase; + uint16_t contentId; + uint8_t statusFeedback; +} EmberAfNotification; // Struct for PowerProfileRecord typedef struct _PowerProfileRecord @@ -253,192 +213,215 @@ typedef struct _PowerProfileRecord uint8_t energyPhaseId; uint8_t powerProfileRemoteControl; uint8_t powerProfileState; -} PowerProfileRecord; +} EmberAfPowerProfileRecord; // Struct for PriceMatrixSubPayload typedef struct _PriceMatrixSubPayload { uint8_t tierBlockId; uint32_t price; -} PriceMatrixSubPayload; +} EmberAfPriceMatrixSubPayload; -// Struct for BlockThresholdSubPayload -typedef struct _BlockThresholdSubPayload +// Struct for Protocol +typedef struct _Protocol { - uint8_t tierNumberOfBlockThresholds; - uint8_t * blockThreshold; -} BlockThresholdSubPayload; + uint16_t manufacturerCode; + uint8_t protocolId; +} EmberAfProtocol; -// Struct for TierLabelsPayload -typedef struct _TierLabelsPayload +// Struct for ReadAttributeStatusRecord +typedef struct _ReadAttributeStatusRecord { - uint8_t tierId; - uint8_t * tierLabel; -} TierLabelsPayload; + chip::AttributeId attributeId; + uint8_t status; + uint8_t attributeType; + uint8_t * attributeLocation; +} EmberAfReadAttributeStatusRecord; -// Void typedef for Signature which is empty. -// this will result in all the references to the data being as uint8_t* -typedef uint8_t Signature; +// Struct for ReadReportingConfigurationAttributeRecord +typedef struct _ReadReportingConfigurationAttributeRecord +{ + uint8_t direction; + chip::AttributeId attributeId; +} EmberAfReadReportingConfigurationAttributeRecord; -// Struct for SnapshotResponsePayload -typedef struct _SnapshotResponsePayload +// Struct for ReadReportingConfigurationRecord +typedef struct _ReadReportingConfigurationRecord { - uint8_t snapshotScheduleId; - uint8_t snapshotScheduleConfirmation; -} SnapshotResponsePayload; + uint8_t status; + uint8_t direction; + chip::AttributeId attributeId; + uint8_t attributeType; + uint16_t minimumReportingInterval; + uint16_t maximumReportingInterval; + uint8_t * reportableChangeLocation; + uint16_t timeoutPeriod; +} EmberAfReadReportingConfigurationRecord; -// Struct for SnapshotSchedulePayload -typedef struct _SnapshotSchedulePayload +// Struct for ReadStructuredAttributeRecord +typedef struct _ReadStructuredAttributeRecord { - uint8_t snapshotScheduleId; - uint32_t snapshotStartTime; - uint32_t snapshotSchedule; - uint8_t snapshotPayloadType; - uint32_t snapshotCause; -} SnapshotSchedulePayload; + chip::AttributeId attributeId; + uint8_t indicator; + uint16_t indicies; +} EmberAfReadStructuredAttributeRecord; -// Struct for Protocol -typedef struct _Protocol +// Struct for ReportAttributeRecord +typedef struct _ReportAttributeRecord { - uint16_t manufacturerCode; - uint8_t protocolId; -} Protocol; + chip::AttributeId attributeId; + uint8_t attributeType; + uint8_t * attributeLocation; +} EmberAfReportAttributeRecord; -// Struct for TopUpPayload -typedef struct _TopUpPayload +// Struct for SceneExtensionAttributeInfo +typedef struct _SceneExtensionAttributeInfo { - uint8_t * topUpCode; - int32_t topUpAmount; - uint32_t topUpTime; -} TopUpPayload; + uint8_t attributeType; + uint8_t * attributeLocation; +} EmberAfSceneExtensionAttributeInfo; -// Struct for DebtPayload -typedef struct _DebtPayload +// Struct for SceneExtensionFieldSet +typedef struct _SceneExtensionFieldSet { - uint32_t collectionTime; - uint32_t amountCollected; - uint8_t debtType; - uint32_t outstandingDebt; -} DebtPayload; + chip::ClusterId clusterId; + uint8_t length; + uint8_t value; +} EmberAfSceneExtensionFieldSet; // Struct for ScheduleEntry typedef struct _ScheduleEntry { uint16_t startTime; uint8_t activePriceTierOrFriendlyCreditEnable; -} ScheduleEntry; +} EmberAfScheduleEntry; -// Struct for ScheduleEntryRateSwitchTimes -typedef struct _ScheduleEntryRateSwitchTimes +// Struct for ScheduleEntryAuxilliaryLoadSwitchTimes +typedef struct _ScheduleEntryAuxilliaryLoadSwitchTimes { uint16_t startTime; - uint8_t priceTier; -} ScheduleEntryRateSwitchTimes; + uint8_t auxiliaryLoadSwitchState; +} EmberAfScheduleEntryAuxilliaryLoadSwitchTimes; // Struct for ScheduleEntryFriendlyCreditSwitchTimes typedef struct _ScheduleEntryFriendlyCreditSwitchTimes { uint16_t startTime; uint8_t friendlyCreditEnable; -} ScheduleEntryFriendlyCreditSwitchTimes; +} EmberAfScheduleEntryFriendlyCreditSwitchTimes; -// Struct for ScheduleEntryAuxilliaryLoadSwitchTimes -typedef struct _ScheduleEntryAuxilliaryLoadSwitchTimes +// Struct for ScheduleEntryRateSwitchTimes +typedef struct _ScheduleEntryRateSwitchTimes { uint16_t startTime; - uint8_t auxiliaryLoadSwitchState; -} ScheduleEntryAuxilliaryLoadSwitchTimes; + uint8_t priceTier; +} EmberAfScheduleEntryRateSwitchTimes; + +// Struct for ScheduledPhase +typedef struct _ScheduledPhase +{ + uint8_t energyPhaseId; + uint16_t scheduledTime; +} EmberAfScheduledPhase; // Struct for SeasonEntry typedef struct _SeasonEntry { uint32_t seasonStartDate; uint8_t weekIdRef; -} SeasonEntry; +} EmberAfSeasonEntry; + +// Void typedef for EmberAfSignature which is empty. +// this will result in all the references to the data being as uint8_t* +typedef uint8_t EmberAfSignature; + +// Void typedef for EmberAfSmac which is empty. +// this will result in all the references to the data being as uint8_t* +typedef uint8_t EmberAfSmac; + +// Struct for SnapshotResponsePayload +typedef struct _SnapshotResponsePayload +{ + uint8_t snapshotScheduleId; + uint8_t snapshotScheduleConfirmation; +} EmberAfSnapshotResponsePayload; + +// Struct for SnapshotSchedulePayload +typedef struct _SnapshotSchedulePayload +{ + uint8_t snapshotScheduleId; + uint32_t snapshotStartTime; + uint32_t snapshotSchedule; + uint8_t snapshotPayloadType; + uint32_t snapshotCause; +} EmberAfSnapshotSchedulePayload; // Struct for SpecialDay typedef struct _SpecialDay { uint32_t specialDayDate; uint8_t dayIdRef; -} SpecialDay; +} EmberAfSpecialDay; -// Struct for EventConfigurationPayload -typedef struct _EventConfigurationPayload +// Struct for TierLabelsPayload +typedef struct _TierLabelsPayload { - uint16_t eventId; - uint8_t eventConfiguration; -} EventConfigurationPayload; + uint8_t tierId; + uint8_t * tierLabel; +} EmberAfTierLabelsPayload; -// Struct for EventLogPayload -typedef struct _EventLogPayload +// Struct for TopUpPayload +typedef struct _TopUpPayload { - uint8_t logId; - uint16_t eventId; - uint32_t eventTime; - uint8_t * eventData; -} EventLogPayload; - -// Void typedef for Identity which is empty. -// this will result in all the references to the data being as uint8_t* -typedef uint8_t Identity; - -// Void typedef for EphemeralData which is empty. -// this will result in all the references to the data being as uint8_t* -typedef uint8_t EphemeralData; - -// Void typedef for Smac which is empty. -// this will result in all the references to the data being as uint8_t* -typedef uint8_t Smac; + uint8_t * topUpCode; + int32_t topUpAmount; + uint32_t topUpTime; +} EmberAfTopUpPayload; -// Struct for DeviceInformationRecord -typedef struct _DeviceInformationRecord +// Struct for TransferredPhase +typedef struct _TransferredPhase { - uint8_t * ieeeAddress; - uint8_t endpointId; - uint16_t profileId; - uint16_t deviceId; - uint8_t version; - uint8_t groupIdCount; - uint8_t sort; -} DeviceInformationRecord; + uint8_t energyPhaseId; + uint8_t macroPhaseId; + uint16_t expectedDuration; + uint16_t peakPower; + uint16_t energy; + uint16_t maxActivationDelay; +} EmberAfTransferredPhase; -// Struct for GroupInformationRecord -typedef struct _GroupInformationRecord +// Struct for WriteAttributeRecord +typedef struct _WriteAttributeRecord { - uint16_t groupId; - uint8_t groupType; -} GroupInformationRecord; + chip::AttributeId attributeId; + uint8_t attributeType; + uint8_t * attributeLocation; +} EmberAfWriteAttributeRecord; -// Struct for EndpointInformationRecord -typedef struct _EndpointInformationRecord +// Struct for WriteAttributeStatusRecord +typedef struct _WriteAttributeStatusRecord { - uint16_t networkAddress; - uint8_t endpointId; - uint16_t profileId; - uint16_t deviceId; - uint8_t version; -} EndpointInformationRecord; + uint8_t status; + chip::AttributeId attributeId; +} EmberAfWriteAttributeStatusRecord; -// Struct for GpTranslationTableUpdateTranslation -typedef struct _GpTranslationTableUpdateTranslation +// Struct for WriteStructuredAttributeRecord +typedef struct _WriteStructuredAttributeRecord { - uint8_t index; - uint8_t gpdCommandId; - uint8_t endpoint; - uint16_t profile; - uint16_t cluster; - uint8_t zigbeeCommandId; - uint8_t * zigbeeCommandPayload; - uint8_t * additionalInfoBlock; -} GpTranslationTableUpdateTranslation; + chip::AttributeId attributeId; + uint8_t indicator; + uint16_t indicies; + uint8_t attributeType; + uint8_t * attributeLocation; +} EmberAfWriteStructuredAttributeRecord; -// Struct for GpPairingConfigurationGroupList -typedef struct _GpPairingConfigurationGroupList +// Struct for WriteStructuredAttributeStatusRecord +typedef struct _WriteStructuredAttributeStatusRecord { - uint16_t SinkGroup; - uint16_t Alias; -} GpPairingConfigurationGroupList; + uint8_t status; + chip::AttributeId attributeId; + uint8_t indicator; + uint16_t indicies; +} EmberAfWriteStructuredAttributeStatusRecord; // Struct for WwahBeaconSurvey typedef struct _WwahBeaconSurvey @@ -446,13 +429,11 @@ typedef struct _WwahBeaconSurvey uint16_t deviceShort; uint8_t rssi; uint8_t classificationMask; -} WwahBeaconSurvey; +} EmberAfWwahBeaconSurvey; // Struct for WwahClusterStatusToUseTC typedef struct _WwahClusterStatusToUseTC { - uint16_t clusterId; + chip::ClusterId clusterId; uint8_t status; -} WwahClusterStatusToUseTC; - -#endif // SILABS_EMBER_AF_STRUCTS +} EmberAfWwahClusterStatusToUseTC; diff --git a/examples/lighting-app/lighting-common/gen/att-storage.h b/examples/lighting-app/lighting-common/gen/att-storage.h index 40a1a0088b4872..7572c8cbc338fb 100644 --- a/examples/lighting-app/lighting-common/gen/att-storage.h +++ b/examples/lighting-app/lighting-common/gen/att-storage.h @@ -1,23 +1,7 @@ -/** - * - * 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 + * 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. @@ -31,15 +15,12 @@ * 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 SILABS_ATTRIBUTE_STORAGE_GEN -#define SILABS_ATTRIBUTE_STORAGE_GEN +// Prevent multiple inclusion +#pragma once // Attribute masks modify how attributes are used by the framework +// // Attribute that has this mask is NOT read-only #define ATTRIBUTE_MASK_WRITABLE (0x01) // Attribute that has this mask is saved to a token @@ -56,6 +37,7 @@ #define ATTRIBUTE_MASK_CLIENT (0x40) // Cluster masks modify how clusters are used by the framework +// // Does this cluster have init function? #define CLUSTER_MASK_INIT_FUNCTION (0x01) // Does this cluster have attribute changed function? @@ -64,7 +46,7 @@ #define CLUSTER_MASK_DEFAULT_RESPONSE_FUNCTION (0x04) // Does this cluster have message sent function? #define CLUSTER_MASK_MESSAGE_SENT_FUNCTION (0x08) -// Does this cluster have manufacturer specific attribute changed funciton? +// Does this cluster have manufacturer specific attribute changed function? #define CLUSTER_MASK_MANUFACTURER_SPECIFIC_ATTRIBUTE_CHANGED_FUNCTION (0x10) // Does this cluster have pre-attribute changed function? #define CLUSTER_MASK_PRE_ATTRIBUTE_CHANGED_FUNCTION (0x20) @@ -74,6 +56,7 @@ #define CLUSTER_MASK_CLIENT (0x80) // Command masks modify meanings of commands +// // Is sending of this client command supported #define COMMAND_MASK_OUTGOING_CLIENT (0x01) // Is sending of this server command supported @@ -84,4 +67,3 @@ #define COMMAND_MASK_INCOMING_SERVER (0x08) // Is this command manufacturer specific? #define COMMAND_MASK_MANUFACTURER_SPECIFIC (0x10) -#endif // SILABS_ATTRIBUTE_STORAGE_GEN diff --git a/examples/lighting-app/lighting-common/gen/attribute-id.h b/examples/lighting-app/lighting-common/gen/attribute-id.h index 442f72e97e2232..648809ca67cd83 100644 --- a/examples/lighting-app/lighting-common/gen/attribute-id.h +++ b/examples/lighting-app/lighting-common/gen/attribute-id.h @@ -1,23 +1,7 @@ -/** - * - * 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 + * 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. @@ -31,4756 +15,4530 @@ * 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 SILABS_EMBER_AF_ATTRIBUTE_ID -#define SILABS_EMBER_AF_ATTRIBUTE_ID +// Prevent multiple inclusion +#pragma once -// Attribute types for cluster: Basic -// Cluster specification level: zcl-7.0-07-5123-07 +// Attribute ids for cluster: Basic // Client attributes -#define ZCL_BASIC_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_BASIC_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_VERSION_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_APPLICATION_VERSION_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_STACK_VERSION_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_HW_VERSION_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_MANUFACTURER_NAME_ATTRIBUTE_ID 0x0004 // Ver.: always -#define ZCL_MODEL_IDENTIFIER_ATTRIBUTE_ID 0x0005 // Ver.: always -#define ZCL_DATE_CODE_ATTRIBUTE_ID 0x0006 // Ver.: always -#define ZCL_POWER_SOURCE_ATTRIBUTE_ID 0x0007 // Ver.: always -#define ZCL_GENERIC_DEVICE_CLASS_ATTRIBUTE_ID 0x0008 // Ver.: since l&o-1.0-15-0014-04 -#define ZCL_GENERIC_DEVICE_TYPE_ATTRIBUTE_ID 0x0009 // Ver.: since l&o-1.0-15-0014-04 -#define ZCL_PRODUCT_CODE_ATTRIBUTE_ID 0x000A // Ver.: since l&o-1.0-15-0014-04 -#define ZCL_PRODUCT_URL_ATTRIBUTE_ID 0x000B // Ver.: since l&o-1.0-15-0014-04 -#define ZCL_LOCATION_DESCRIPTION_ATTRIBUTE_ID 0x0010 // Ver.: always -#define ZCL_PHYSICAL_ENVIRONMENT_ATTRIBUTE_ID 0x0011 // Ver.: always -#define ZCL_DEVICE_ENABLED_ATTRIBUTE_ID 0x0012 // Ver.: always -#define ZCL_ALARM_MASK_ATTRIBUTE_ID 0x0013 // Ver.: always -#define ZCL_DISABLE_LOCAL_CONFIG_ATTRIBUTE_ID 0x0014 // Ver.: always -#define ZCL_CURRENT_LOCALE_ATTRIBUTE_ID 0x0015 // Ver.: always -#define ZCL_SW_BUILD_ID_ATTRIBUTE_ID 0x4000 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_BASIC_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_BASIC_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Power Configuration -// Cluster specification level: zcl-7.0-07-5123-07 +#define ZCL_VERSION_ATTRIBUTE_ID (0x0000) +#define ZCL_APPLICATION_VERSION_ATTRIBUTE_ID (0x0001) +#define ZCL_STACK_VERSION_ATTRIBUTE_ID (0x0002) +#define ZCL_HW_VERSION_ATTRIBUTE_ID (0x0003) +#define ZCL_MANUFACTURER_NAME_ATTRIBUTE_ID (0x0004) +#define ZCL_MODEL_IDENTIFIER_ATTRIBUTE_ID (0x0005) +#define ZCL_DATE_CODE_ATTRIBUTE_ID (0x0006) +#define ZCL_POWER_SOURCE_ATTRIBUTE_ID (0x0007) +#define ZCL_GENERIC_DEVICE_CLASS_ATTRIBUTE_ID (0x0008) +#define ZCL_GENERIC_DEVICE_TYPE_ATTRIBUTE_ID (0x0009) +#define ZCL_PRODUCT_CODE_ATTRIBUTE_ID (0x000A) +#define ZCL_PRODUCT_URL_ATTRIBUTE_ID (0x000B) +#define ZCL_LOCATION_DESCRIPTION_ATTRIBUTE_ID (0x0010) +#define ZCL_PHYSICAL_ENVIRONMENT_ATTRIBUTE_ID (0x0011) +#define ZCL_DEVICE_ENABLED_ATTRIBUTE_ID (0x0012) +#define ZCL_ALARM_MASK_ATTRIBUTE_ID (0x0013) +#define ZCL_DISABLE_LOCAL_CONFIG_ATTRIBUTE_ID (0x0014) +#define ZCL_SW_BUILD_ID_ATTRIBUTE_ID (0x4000) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Power Configuration // Client attributes -#define ZCL_POWER_CONFIG_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_POWER_CONFIG_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_MAINS_VOLTAGE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_MAINS_FREQUENCY_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_MAINS_ALARM_MASK_ATTRIBUTE_ID 0x0010 // Ver.: always -#define ZCL_MAINS_VOLTAGE_MIN_THRESHOLD_ATTRIBUTE_ID 0x0011 // Ver.: always -#define ZCL_MAINS_VOLTAGE_MAX_THRESHOLD_ATTRIBUTE_ID 0x0012 // Ver.: always -#define ZCL_MAINS_VOLTAGE_DWELL_TRIP_POINT_ATTRIBUTE_ID 0x0013 // Ver.: always -#define ZCL_BATTERY_VOLTAGE_ATTRIBUTE_ID 0x0020 // Ver.: always -#define ZCL_BATTERY_PERCENTAGE_REMAINING_ATTRIBUTE_ID 0x0021 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_MANUFACTURER_ATTRIBUTE_ID 0x0030 // Ver.: always -#define ZCL_BATTERY_SIZE_ATTRIBUTE_ID 0x0031 // Ver.: always -#define ZCL_BATTERY_AHR_RATING_ATTRIBUTE_ID 0x0032 // Ver.: always -#define ZCL_BATTERY_QUANTITY_ATTRIBUTE_ID 0x0033 // Ver.: always -#define ZCL_BATTERY_RATED_VOLTAGE_ATTRIBUTE_ID 0x0034 // Ver.: always -#define ZCL_BATTERY_ALARM_MASK_ATTRIBUTE_ID 0x0035 // Ver.: always -#define ZCL_BATTERY_VOLTAGE_MIN_THRESHOLD_ATTRIBUTE_ID 0x0036 // Ver.: always -#define ZCL_BATTERY_VOLTAGE_THRESHOLD_1_ATTRIBUTE_ID 0x0037 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_VOLTAGE_THRESHOLD_2_ATTRIBUTE_ID 0x0038 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_VOLTAGE_THRESHOLD_3_ATTRIBUTE_ID 0x0039 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_PERCENTAGE_MIN_THRESHOLD_ATTRIBUTE_ID 0x003A // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_PERCENTAGE_THRESHOLD_1_ATTRIBUTE_ID 0x003B // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_PERCENTAGE_THRESHOLD_2_ATTRIBUTE_ID 0x003C // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_PERCENTAGE_THRESHOLD_3_ATTRIBUTE_ID 0x003D // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_ALARM_STATE_ATTRIBUTE_ID 0x003E // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_2_VOLTAGE_ATTRIBUTE_ID 0x0040 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_2_PERCENTAGE_REMAINING_ATTRIBUTE_ID 0x0041 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_2_MANUFACTURER_ATTRIBUTE_ID 0x0050 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_2_SIZE_ATTRIBUTE_ID 0x0051 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_2_AHR_RATING_ATTRIBUTE_ID 0x0052 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_2_QUANTITY_ATTRIBUTE_ID 0x0053 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_2_RATED_VOLTAGE_ATTRIBUTE_ID 0x0054 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_2_ALARM_MASK_ATTRIBUTE_ID 0x0055 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_2_VOLTAGE_MIN_THRESHOLD_ATTRIBUTE_ID 0x0056 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_2_VOLTAGE_THRESHOLD_1_ATTRIBUTE_ID 0x0057 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_2_VOLTAGE_THRESHOLD_2_ATTRIBUTE_ID 0x0058 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_2_VOLTAGE_THRESHOLD_3_ATTRIBUTE_ID 0x0059 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_2_PERCENTAGE_MIN_THRESHOLD_ATTRIBUTE_ID 0x005A // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_2_PERCENTAGE_THRESHOLD_1_ATTRIBUTE_ID 0x005B // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_2_PERCENTAGE_THRESHOLD_2_ATTRIBUTE_ID 0x005C // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_2_PERCENTAGE_THRESHOLD_3_ATTRIBUTE_ID 0x005D // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_2_ALARM_STATE_ATTRIBUTE_ID 0x005E // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_3_VOLTAGE_ATTRIBUTE_ID 0x0060 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_3_PERCENTAGE_REMAINING_ATTRIBUTE_ID 0x0061 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_3_MANUFACTURER_ATTRIBUTE_ID 0x0070 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_3_SIZE_ATTRIBUTE_ID 0x0071 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_3_AHR_RATING_ATTRIBUTE_ID 0x0072 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_3_QUANTITY_ATTRIBUTE_ID 0x0073 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_3_RATED_VOLTAGE_ATTRIBUTE_ID 0x0074 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_3_ALARM_MASK_ATTRIBUTE_ID 0x0075 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_3_VOLTAGE_MIN_THRESHOLD_ATTRIBUTE_ID 0x0076 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_3_VOLTAGE_THRESHOLD_1_ATTRIBUTE_ID 0x0077 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_3_VOLTAGE_THRESHOLD_2_ATTRIBUTE_ID 0x0078 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_3_VOLTAGE_THRESHOLD_3_ATTRIBUTE_ID 0x0079 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_3_PERCENTAGE_MIN_THRESHOLD_ATTRIBUTE_ID 0x007A // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_3_PERCENTAGE_THRESHOLD_1_ATTRIBUTE_ID 0x007B // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_3_PERCENTAGE_THRESHOLD_2_ATTRIBUTE_ID 0x007C // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_3_PERCENTAGE_THRESHOLD_3_ATTRIBUTE_ID 0x007D // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_3_ALARM_STATE_ATTRIBUTE_ID 0x007E // Ver.: since ha-1.2-05-3520-29 -#define ZCL_POWER_CONFIG_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_POWER_CONFIG_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Device Temperature Configuration -// Cluster specification level: zcl-7.0-07-5123-07 +#define ZCL_MAINS_VOLTAGE_ATTRIBUTE_ID (0x0000) +#define ZCL_MAINS_FREQUENCY_ATTRIBUTE_ID (0x0001) +#define ZCL_MAINS_ALARM_MASK_ATTRIBUTE_ID (0x0010) +#define ZCL_MAINS_VOLTAGE_MIN_THRESHOLD_ATTRIBUTE_ID (0x0011) +#define ZCL_MAINS_VOLTAGE_MAX_THRESHOLD_ATTRIBUTE_ID (0x0012) +#define ZCL_MAINS_VOLTAGE_DWELL_TRIP_POINT_ATTRIBUTE_ID (0x0013) +#define ZCL_BATTERY_VOLTAGE_ATTRIBUTE_ID (0x0020) +#define ZCL_BATTERY_PERCENTAGE_REMAINING_ATTRIBUTE_ID (0x0021) +#define ZCL_BATTERY_MANUFACTURER_ATTRIBUTE_ID (0x0030) +#define ZCL_BATTERY_SIZE_ATTRIBUTE_ID (0x0031) +#define ZCL_BATTERY_AHR_RATING_ATTRIBUTE_ID (0x0032) +#define ZCL_BATTERY_QUANTITY_ATTRIBUTE_ID (0x0033) +#define ZCL_BATTERY_RATED_VOLTAGE_ATTRIBUTE_ID (0x0034) +#define ZCL_BATTERY_ALARM_MASK_ATTRIBUTE_ID (0x0035) +#define ZCL_BATTERY_VOLTAGE_MIN_THRESHOLD_ATTRIBUTE_ID (0x0036) +#define ZCL_BATTERY_VOLTAGE_THRESHOLD_1_ATTRIBUTE_ID (0x0037) +#define ZCL_BATTERY_VOLTAGE_THRESHOLD_2_ATTRIBUTE_ID (0x0038) +#define ZCL_BATTERY_VOLTAGE_THRESHOLD_3_ATTRIBUTE_ID (0x0039) +#define ZCL_BATTERY_PERCENTAGE_MIN_THRESHOLD_ATTRIBUTE_ID (0x003A) +#define ZCL_BATTERY_PERCENTAGE_THRESHOLD_1_ATTRIBUTE_ID (0x003B) +#define ZCL_BATTERY_PERCENTAGE_THRESHOLD_2_ATTRIBUTE_ID (0x003C) +#define ZCL_BATTERY_PERCENTAGE_THRESHOLD_3_ATTRIBUTE_ID (0x003D) +#define ZCL_BATTERY_ALARM_STATE_ATTRIBUTE_ID (0x003E) +#define ZCL_BATTERY_2_VOLTAGE_ATTRIBUTE_ID (0x0040) +#define ZCL_BATTERY_2_PERCENTAGE_REMAINING_ATTRIBUTE_ID (0x0041) +#define ZCL_BATTERY_2_MANUFACTURER_ATTRIBUTE_ID (0x0050) +#define ZCL_BATTERY_2_SIZE_ATTRIBUTE_ID (0x0051) +#define ZCL_BATTERY_2_AHR_RATING_ATTRIBUTE_ID (0x0052) +#define ZCL_BATTERY_2_QUANTITY_ATTRIBUTE_ID (0x0053) +#define ZCL_BATTERY_2_RATED_VOLTAGE_ATTRIBUTE_ID (0x0054) +#define ZCL_BATTERY_2_ALARM_MASK_ATTRIBUTE_ID (0x0055) +#define ZCL_BATTERY_2_VOLTAGE_MIN_THRESHOLD_ATTRIBUTE_ID (0x0056) +#define ZCL_BATTERY_2_VOLTAGE_THRESHOLD_1_ATTRIBUTE_ID (0x0057) +#define ZCL_BATTERY_2_VOLTAGE_THRESHOLD_2_ATTRIBUTE_ID (0x0058) +#define ZCL_BATTERY_2_VOLTAGE_THRESHOLD_3_ATTRIBUTE_ID (0x0059) +#define ZCL_BATTERY_2_PERCENTAGE_MIN_THRESHOLD_ATTRIBUTE_ID (0x005A) +#define ZCL_BATTERY_2_PERCENTAGE_THRESHOLD_1_ATTRIBUTE_ID (0x005B) +#define ZCL_BATTERY_2_PERCENTAGE_THRESHOLD_2_ATTRIBUTE_ID (0x005C) +#define ZCL_BATTERY_2_PERCENTAGE_THRESHOLD_3_ATTRIBUTE_ID (0x005D) +#define ZCL_BATTERY_2_ALARM_STATE_ATTRIBUTE_ID (0x005E) +#define ZCL_BATTERY_3_VOLTAGE_ATTRIBUTE_ID (0x0060) +#define ZCL_BATTERY_3_PERCENTAGE_REMAINING_ATTRIBUTE_ID (0x0061) +#define ZCL_BATTERY_3_MANUFACTURER_ATTRIBUTE_ID (0x0070) +#define ZCL_BATTERY_3_SIZE_ATTRIBUTE_ID (0x0071) +#define ZCL_BATTERY_3_AHR_RATING_ATTRIBUTE_ID (0x0072) +#define ZCL_BATTERY_3_QUANTITY_ATTRIBUTE_ID (0x0073) +#define ZCL_BATTERY_3_RATED_VOLTAGE_ATTRIBUTE_ID (0x0074) +#define ZCL_BATTERY_3_ALARM_MASK_ATTRIBUTE_ID (0x0075) +#define ZCL_BATTERY_3_VOLTAGE_MIN_THRESHOLD_ATTRIBUTE_ID (0x0076) +#define ZCL_BATTERY_3_VOLTAGE_THRESHOLD_1_ATTRIBUTE_ID (0x0077) +#define ZCL_BATTERY_3_VOLTAGE_THRESHOLD_2_ATTRIBUTE_ID (0x0078) +#define ZCL_BATTERY_3_VOLTAGE_THRESHOLD_3_ATTRIBUTE_ID (0x0079) +#define ZCL_BATTERY_3_PERCENTAGE_MIN_THRESHOLD_ATTRIBUTE_ID (0x007A) +#define ZCL_BATTERY_3_PERCENTAGE_THRESHOLD_1_ATTRIBUTE_ID (0x007B) +#define ZCL_BATTERY_3_PERCENTAGE_THRESHOLD_2_ATTRIBUTE_ID (0x007C) +#define ZCL_BATTERY_3_PERCENTAGE_THRESHOLD_3_ATTRIBUTE_ID (0x007D) +#define ZCL_BATTERY_3_ALARM_STATE_ATTRIBUTE_ID (0x007E) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Device Temperature Configuration // Client attributes -#define ZCL_DEVICE_TEMP_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_DEVICE_TEMP_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_CURRENT_TEMPERATURE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_MIN_TEMP_EXPERIENCED_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_MAX_TEMP_EXPERIENCED_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_OVER_TEMP_TOTAL_DWELL_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_DEVICE_TEMP_ALARM_MASK_ATTRIBUTE_ID 0x0010 // Ver.: always -#define ZCL_LOW_TEMP_THRESHOLD_ATTRIBUTE_ID 0x0011 // Ver.: always -#define ZCL_HIGH_TEMP_THRESHOLD_ATTRIBUTE_ID 0x0012 // Ver.: always -#define ZCL_LOW_TEMP_DWELL_TRIP_POINT_ATTRIBUTE_ID 0x0013 // Ver.: always -#define ZCL_HIGH_TEMP_DWELL_TRIP_POINT_ATTRIBUTE_ID 0x0014 // Ver.: always -#define ZCL_DEVICE_TEMP_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_DEVICE_TEMP_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Identify -// Cluster specification level: zcl-7.0-07-5123-07 +#define ZCL_CURRENT_TEMPERATURE_ATTRIBUTE_ID (0x0000) +#define ZCL_MIN_TEMP_EXPERIENCED_ATTRIBUTE_ID (0x0001) +#define ZCL_MAX_TEMP_EXPERIENCED_ATTRIBUTE_ID (0x0002) +#define ZCL_OVER_TEMP_TOTAL_DWELL_ATTRIBUTE_ID (0x0003) +#define ZCL_DEVICE_TEMP_ALARM_MASK_ATTRIBUTE_ID (0x0010) +#define ZCL_LOW_TEMP_THRESHOLD_ATTRIBUTE_ID (0x0011) +#define ZCL_HIGH_TEMP_THRESHOLD_ATTRIBUTE_ID (0x0012) +#define ZCL_LOW_TEMP_DWELL_TRIP_POINT_ATTRIBUTE_ID (0x0013) +#define ZCL_HIGH_TEMP_DWELL_TRIP_POINT_ATTRIBUTE_ID (0x0014) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Identify // Client attributes -#define ZCL_IDENTIFY_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_IDENTIFY_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_IDENTIFY_TIME_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_COMMISSION_STATE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_IDENTIFY_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_IDENTIFY_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_IDENTIFY_TIME_ATTRIBUTE_ID (0x0000) +#define ZCL_COMMISSION_STATE_ATTRIBUTE_ID (0x0001) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) -// Attribute types for cluster: Groups -// Cluster specification level: zcl-7.0-07-5123-07 +// Attribute ids for cluster: Groups // Client attributes -#define ZCL_GROUPS_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_GROUPS_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_GROUP_NAME_SUPPORT_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_GROUPS_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_GROUPS_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_GROUP_NAME_SUPPORT_ATTRIBUTE_ID (0x0000) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) -// Attribute types for cluster: Scenes -// Cluster specification level: zcl-7.0-07-5123-07 +// Attribute ids for cluster: Scenes // Client attributes -#define ZCL_SCENES_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_SCENES_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_SCENE_COUNT_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_CURRENT_SCENE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_CURRENT_GROUP_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_SCENE_VALID_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_SCENE_NAME_SUPPORT_ATTRIBUTE_ID 0x0004 // Ver.: always -#define ZCL_LAST_CONFIGURED_BY_ATTRIBUTE_ID 0x0005 // Ver.: always -#define ZCL_SCENES_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_SCENES_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: On/off -// Cluster specification level: zcl-7.0-07-5123-07 +#define ZCL_SCENE_COUNT_ATTRIBUTE_ID (0x0000) +#define ZCL_CURRENT_SCENE_ATTRIBUTE_ID (0x0001) +#define ZCL_CURRENT_GROUP_ATTRIBUTE_ID (0x0002) +#define ZCL_SCENE_VALID_ATTRIBUTE_ID (0x0003) +#define ZCL_SCENE_NAME_SUPPORT_ATTRIBUTE_ID (0x0004) +#define ZCL_LAST_CONFIGURED_BY_ATTRIBUTE_ID (0x0005) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: On/off // Client attributes -#define ZCL_ON_OFF_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_ON_OFF_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_ON_OFF_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_SAMPLE_MFG_SPECIFIC_TRANSITION_TIME_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_SAMPLE_MFG_SPECIFIC_TRANSITION_TIME_2_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_SAMPLE_MFG_SPECIFIC_TRANSITION_TIME_3_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_SAMPLE_MFG_SPECIFIC_TRANSITION_TIME_4_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_GLOBAL_SCENE_CONTROL_ATTRIBUTE_ID 0x4000 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_ON_TIME_ATTRIBUTE_ID 0x4001 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_OFF_WAIT_TIME_ATTRIBUTE_ID 0x4002 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_START_UP_ON_OFF_ATTRIBUTE_ID 0x4003 // Ver.: since l&o-1.0-15-0014-04 -#define ZCL_ON_OFF_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_ON_OFF_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: On/off Switch Configuration -// Cluster specification level: zcl-7.0-07-5123-07 +#define ZCL_ON_OFF_ATTRIBUTE_ID (0x0000) +#define ZCL_SAMPLE_MFG_SPECIFIC_TRANSITION_TIME_ATTRIBUTE_ID (0x0000) +#define ZCL_SAMPLE_MFG_SPECIFIC_TRANSITION_TIME_2_ATTRIBUTE_ID (0x0000) +#define ZCL_SAMPLE_MFG_SPECIFIC_TRANSITION_TIME_3_ATTRIBUTE_ID (0x0001) +#define ZCL_SAMPLE_MFG_SPECIFIC_TRANSITION_TIME_4_ATTRIBUTE_ID (0x0001) +#define ZCL_GLOBAL_SCENE_CONTROL_ATTRIBUTE_ID (0x4000) +#define ZCL_ON_TIME_ATTRIBUTE_ID (0x4001) +#define ZCL_OFF_WAIT_TIME_ATTRIBUTE_ID (0x4002) +#define ZCL_START_UP_ON_OFF_ATTRIBUTE_ID (0x4003) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: On/off Switch Configuration // Client attributes -#define ZCL_ON_OFF_SWITCH_CONFIG_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_ON_OFF_SWITCH_CONFIG_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_SWITCH_TYPE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_SWITCH_ACTIONS_ATTRIBUTE_ID 0x0010 // Ver.: always -#define ZCL_ON_OFF_SWITCH_CONFIG_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_ON_OFF_SWITCH_CONFIG_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_SWITCH_TYPE_ATTRIBUTE_ID (0x0000) +#define ZCL_SWITCH_ACTIONS_ATTRIBUTE_ID (0x0010) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) -// Attribute types for cluster: Level Control -// Cluster specification level: zcl-7.0-07-5123-07 +// Attribute ids for cluster: Level Control // Client attributes -#define ZCL_LEVEL_CONTROL_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_LEVEL_CONTROL_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_CURRENT_LEVEL_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_LEVEL_CONTROL_REMAINING_TIME_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_OPTIONS_ATTRIBUTE_ID 0x000F // Ver.: since l&o-1.0-15-0014-04 -#define ZCL_ON_OFF_TRANSITION_TIME_ATTRIBUTE_ID 0x0010 // Ver.: always -#define ZCL_ON_LEVEL_ATTRIBUTE_ID 0x0011 // Ver.: always -#define ZCL_ON_TRANSITION_TIME_ATTRIBUTE_ID 0x0012 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_OFF_TRANSITION_TIME_ATTRIBUTE_ID 0x0013 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_DEFAULT_MOVE_RATE_ATTRIBUTE_ID 0x0014 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_START_UP_CURRENT_LEVEL_ATTRIBUTE_ID 0x4000 // Ver.: since l&o-1.0-15-0014-04 -#define ZCL_LEVEL_CONTROL_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_LEVEL_CONTROL_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Alarms -// Cluster specification level: zcl-7.0-07-5123-07 +#define ZCL_CURRENT_LEVEL_ATTRIBUTE_ID (0x0000) +#define ZCL_LEVEL_CONTROL_REMAINING_TIME_ATTRIBUTE_ID (0x0001) +#define ZCL_OPTIONS_ATTRIBUTE_ID (0x000F) +#define ZCL_ON_OFF_TRANSITION_TIME_ATTRIBUTE_ID (0x0010) +#define ZCL_ON_LEVEL_ATTRIBUTE_ID (0x0011) +#define ZCL_ON_TRANSITION_TIME_ATTRIBUTE_ID (0x0012) +#define ZCL_OFF_TRANSITION_TIME_ATTRIBUTE_ID (0x0013) +#define ZCL_DEFAULT_MOVE_RATE_ATTRIBUTE_ID (0x0014) +#define ZCL_START_UP_CURRENT_LEVEL_ATTRIBUTE_ID (0x4000) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Alarms // Client attributes -#define ZCL_ALARM_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_ALARM_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_ALARM_COUNT_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_ALARM_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_ALARM_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_ALARM_COUNT_ATTRIBUTE_ID (0x0000) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) -// Attribute types for cluster: Time -// Cluster specification level: zcl-7.0-07-5123-07 +// Attribute ids for cluster: Time // Client attributes -#define ZCL_TIME_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_TIME_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_TIME_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_TIME_STATUS_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_TIME_ZONE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_DST_START_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_DST_END_ATTRIBUTE_ID 0x0004 // Ver.: always -#define ZCL_DST_SHIFT_ATTRIBUTE_ID 0x0005 // Ver.: always -#define ZCL_STANDARD_TIME_ATTRIBUTE_ID 0x0006 // Ver.: always -#define ZCL_LOCAL_TIME_ATTRIBUTE_ID 0x0007 // Ver.: always -#define ZCL_LAST_SET_TIME_ATTRIBUTE_ID 0x0008 // Ver.: always -#define ZCL_VALID_UNTIL_TIME_ATTRIBUTE_ID 0x0009 // Ver.: always -#define ZCL_TIME_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_TIME_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: RSSI Location -// Cluster specification level: zcl-7.0-07-5123-07 +#define ZCL_TIME_ATTRIBUTE_ID (0x0000) +#define ZCL_TIME_STATUS_ATTRIBUTE_ID (0x0001) +#define ZCL_TIME_ZONE_ATTRIBUTE_ID (0x0002) +#define ZCL_DST_START_ATTRIBUTE_ID (0x0003) +#define ZCL_DST_END_ATTRIBUTE_ID (0x0004) +#define ZCL_DST_SHIFT_ATTRIBUTE_ID (0x0005) +#define ZCL_STANDARD_TIME_ATTRIBUTE_ID (0x0006) +#define ZCL_LOCAL_TIME_ATTRIBUTE_ID (0x0007) +#define ZCL_LAST_SET_TIME_ATTRIBUTE_ID (0x0008) +#define ZCL_VALID_UNTIL_TIME_ATTRIBUTE_ID (0x0009) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: RSSI Location // Client attributes -#define ZCL_RSSI_LOCATION_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_RSSI_LOCATION_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_LOCATION_TYPE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_LOCATION_METHOD_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_LOCATION_AGE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_QUALITY_MEASURE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_NUMBER_OF_DEVICES_ATTRIBUTE_ID 0x0004 // Ver.: always -#define ZCL_COORDINATE1_ATTRIBUTE_ID 0x0010 // Ver.: always -#define ZCL_COORDINATE2_ATTRIBUTE_ID 0x0011 // Ver.: always -#define ZCL_COORDINATE3_ATTRIBUTE_ID 0x0012 // Ver.: always -#define ZCL_POWER_ATTRIBUTE_ID 0x0013 // Ver.: always -#define ZCL_PATH_LOSS_EXPONENT_ATTRIBUTE_ID 0x0014 // Ver.: always -#define ZCL_REPORTING_PERIOD_ATTRIBUTE_ID 0x0015 // Ver.: always -#define ZCL_CALCULATION_PERIOD_ATTRIBUTE_ID 0x0016 // Ver.: always -#define ZCL_NUMBER_RSSI_MEASUREMENTS_ATTRIBUTE_ID 0x0017 // Ver.: always -#define ZCL_RSSI_LOCATION_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_RSSI_LOCATION_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Binary Input (Basic) -// Cluster specification level: zcl-7.0-07-5123-07 +#define ZCL_LOCATION_TYPE_ATTRIBUTE_ID (0x0000) +#define ZCL_LOCATION_METHOD_ATTRIBUTE_ID (0x0001) +#define ZCL_LOCATION_AGE_ATTRIBUTE_ID (0x0002) +#define ZCL_QUALITY_MEASURE_ATTRIBUTE_ID (0x0003) +#define ZCL_NUMBER_OF_DEVICES_ATTRIBUTE_ID (0x0004) +#define ZCL_COORDINATE1_ATTRIBUTE_ID (0x0010) +#define ZCL_COORDINATE2_ATTRIBUTE_ID (0x0011) +#define ZCL_COORDINATE3_ATTRIBUTE_ID (0x0012) +#define ZCL_POWER_ATTRIBUTE_ID (0x0013) +#define ZCL_PATH_LOSS_EXPONENT_ATTRIBUTE_ID (0x0014) +#define ZCL_REPORTING_PERIOD_ATTRIBUTE_ID (0x0015) +#define ZCL_CALCULATION_PERIOD_ATTRIBUTE_ID (0x0016) +#define ZCL_NUMBER_RSSI_MEASUREMENTS_ATTRIBUTE_ID (0x0017) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Binary Input (Basic) // Client attributes -#define ZCL_BINARY_INPUT_BASIC_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_BINARY_INPUT_BASIC_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_ACTIVE_TEXT_ATTRIBUTE_ID 0x0004 // Ver.: always -#define ZCL_DESCRIPTION_ATTRIBUTE_ID 0x001C // Ver.: always -#define ZCL_INACTIVE_TEXT_ATTRIBUTE_ID 0x002E // Ver.: always -#define ZCL_OUT_OF_SERVICE_ATTRIBUTE_ID 0x0051 // Ver.: always -#define ZCL_POLARITY_ATTRIBUTE_ID 0x0054 // Ver.: always -#define ZCL_PRESENT_VALUE_ATTRIBUTE_ID 0x0055 // Ver.: always -#define ZCL_RELIABILITY_ATTRIBUTE_ID 0x0067 // Ver.: always -#define ZCL_STATUS_FLAGS_ATTRIBUTE_ID 0x006F // Ver.: always -#define ZCL_APPLICATION_TYPE_ATTRIBUTE_ID 0x0100 // Ver.: always -#define ZCL_BINARY_INPUT_BASIC_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_BINARY_INPUT_BASIC_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Commissioning -// Cluster specification level: zcl-7.0-07-5123-07 +#define ZCL_ACTIVE_TEXT_ATTRIBUTE_ID (0x0004) +#define ZCL_DESCRIPTION_ATTRIBUTE_ID (0x001C) +#define ZCL_INACTIVE_TEXT_ATTRIBUTE_ID (0x002E) +#define ZCL_OUT_OF_SERVICE_ATTRIBUTE_ID (0x0051) +#define ZCL_POLARITY_ATTRIBUTE_ID (0x0054) +#define ZCL_PRESENT_VALUE_ATTRIBUTE_ID (0x0055) +#define ZCL_RELIABILITY_ATTRIBUTE_ID (0x0067) +#define ZCL_STATUS_FLAGS_ATTRIBUTE_ID (0x006F) +#define ZCL_APPLICATION_TYPE_ATTRIBUTE_ID (0x0100) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Commissioning // Client attributes -#define ZCL_COMMISSIONING_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_COMMISSIONING_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_SHORT_ADDRESS_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_EXTENDED_PAN_ID_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_PAN_ID_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_CHANNEL_MASK_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_PROTOCOL_VERSION_ATTRIBUTE_ID 0x0004 // Ver.: always -#define ZCL_STACK_PROFILE_ATTRIBUTE_ID 0x0005 // Ver.: always -#define ZCL_STARTUP_CONTROL_ATTRIBUTE_ID 0x0006 // Ver.: always -#define ZCL_TRUST_CENTER_ADDRESS_ATTRIBUTE_ID 0x0010 // Ver.: always -#define ZCL_TRUST_CENTER_MASTER_KEY_ATTRIBUTE_ID 0x0011 // Ver.: always -#define ZCL_NETWORK_KEY_ATTRIBUTE_ID 0x0012 // Ver.: always -#define ZCL_USE_INSECURE_JOIN_ATTRIBUTE_ID 0x0013 // Ver.: always -#define ZCL_PRECONFIGURED_LINK_KEY_ATTRIBUTE_ID 0x0014 // Ver.: always -#define ZCL_NETWORK_KEY_SEQUENCE_NUMBER_ATTRIBUTE_ID 0x0015 // Ver.: always -#define ZCL_NETWORK_KEY_TYPE_ATTRIBUTE_ID 0x0016 // Ver.: always -#define ZCL_NETWORK_MANAGER_ADDRESS_ATTRIBUTE_ID 0x0017 // Ver.: always -#define ZCL_SCAN_ATTEMPTS_ATTRIBUTE_ID 0x0020 // Ver.: always -#define ZCL_TIME_BETWEEN_SCANS_ATTRIBUTE_ID 0x0021 // Ver.: always -#define ZCL_REJOIN_INTERVAL_ATTRIBUTE_ID 0x0022 // Ver.: always -#define ZCL_MAX_REJOIN_INTERVAL_ATTRIBUTE_ID 0x0023 // Ver.: always -#define ZCL_INDIRECT_POLL_RATE_ATTRIBUTE_ID 0x0030 // Ver.: always -#define ZCL_PARENT_RETRY_THRESHOLD_ATTRIBUTE_ID 0x0031 // Ver.: always -#define ZCL_CONCENTRATOR_FLAG_ATTRIBUTE_ID 0x0040 // Ver.: always -#define ZCL_CONCENTRATOR_RADIUS_ATTRIBUTE_ID 0x0041 // Ver.: always -#define ZCL_CONCENTRATOR_DISCOVERY_TIME_ATTRIBUTE_ID 0x0042 // Ver.: always -#define ZCL_COMMISSIONING_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_COMMISSIONING_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Partition -// Cluster specification level: zcl-7.0-07-5123-07 +#define ZCL_SHORT_ADDRESS_ATTRIBUTE_ID (0x0000) +#define ZCL_EXTENDED_PAN_ID_ATTRIBUTE_ID (0x0001) +#define ZCL_PAN_ID_ATTRIBUTE_ID (0x0002) +#define ZCL_CHANNEL_MASK_ATTRIBUTE_ID (0x0003) +#define ZCL_PROTOCOL_VERSION_ATTRIBUTE_ID (0x0004) +#define ZCL_STACK_PROFILE_ATTRIBUTE_ID (0x0005) +#define ZCL_STARTUP_CONTROL_ATTRIBUTE_ID (0x0006) +#define ZCL_TRUST_CENTER_ADDRESS_ATTRIBUTE_ID (0x0010) +#define ZCL_TRUST_CENTER_MASTER_KEY_ATTRIBUTE_ID (0x0011) +#define ZCL_NETWORK_KEY_ATTRIBUTE_ID (0x0012) +#define ZCL_USE_INSECURE_JOIN_ATTRIBUTE_ID (0x0013) +#define ZCL_PRECONFIGURED_LINK_KEY_ATTRIBUTE_ID (0x0014) +#define ZCL_NETWORK_KEY_SEQUENCE_NUMBER_ATTRIBUTE_ID (0x0015) +#define ZCL_NETWORK_KEY_TYPE_ATTRIBUTE_ID (0x0016) +#define ZCL_NETWORK_MANAGER_ADDRESS_ATTRIBUTE_ID (0x0017) +#define ZCL_SCAN_ATTEMPTS_ATTRIBUTE_ID (0x0020) +#define ZCL_TIME_BETWEEN_SCANS_ATTRIBUTE_ID (0x0021) +#define ZCL_REJOIN_INTERVAL_ATTRIBUTE_ID (0x0022) +#define ZCL_MAX_REJOIN_INTERVAL_ATTRIBUTE_ID (0x0023) +#define ZCL_INDIRECT_POLL_RATE_ATTRIBUTE_ID (0x0030) +#define ZCL_PARENT_RETRY_THRESHOLD_ATTRIBUTE_ID (0x0031) +#define ZCL_CONCENTRATOR_FLAG_ATTRIBUTE_ID (0x0040) +#define ZCL_CONCENTRATOR_RADIUS_ATTRIBUTE_ID (0x0041) +#define ZCL_CONCENTRATOR_DISCOVERY_TIME_ATTRIBUTE_ID (0x0042) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Partition // Client attributes -#define ZCL_PARTITION_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_PARTITION_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_PARTITION_MAXIMUM_INCOMING_TRANSFER_SIZE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_PARTITION_MAXIMUM_OUTGOING_TRANSFER_SIZE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_PARTIONED_FRAME_SIZE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_LARGE_FRAME_SIZE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_NUMBER_OF_ACK_FRAME_ATTRIBUTE_ID 0x0004 // Ver.: always -#define ZCL_NACK_TIMEOUT_ATTRIBUTE_ID 0x0005 // Ver.: always -#define ZCL_INTERFRAME_DELAY_ATTRIBUTE_ID 0x0006 // Ver.: always -#define ZCL_NUMBER_OF_SEND_RETRIES_ATTRIBUTE_ID 0x0007 // Ver.: always -#define ZCL_SENDER_TIMEOUT_ATTRIBUTE_ID 0x0008 // Ver.: always -#define ZCL_RECEIVER_TIMEOUT_ATTRIBUTE_ID 0x0009 // Ver.: always -#define ZCL_PARTITION_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_PARTITION_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Over the Air Bootloading -// Cluster specification level: zcl-7.0-07-5123-07 +#define ZCL_PARTITION_MAXIMUM_INCOMING_TRANSFER_SIZE_ATTRIBUTE_ID (0x0000) +#define ZCL_PARTITION_MAXIMUM_OUTGOING_TRANSFER_SIZE_ATTRIBUTE_ID (0x0001) +#define ZCL_PARTIONED_FRAME_SIZE_ATTRIBUTE_ID (0x0002) +#define ZCL_LARGE_FRAME_SIZE_ATTRIBUTE_ID (0x0003) +#define ZCL_NUMBER_OF_ACK_FRAME_ATTRIBUTE_ID (0x0004) +#define ZCL_NACK_TIMEOUT_ATTRIBUTE_ID (0x0005) +#define ZCL_INTERFRAME_DELAY_ATTRIBUTE_ID (0x0006) +#define ZCL_NUMBER_OF_SEND_RETRIES_ATTRIBUTE_ID (0x0007) +#define ZCL_SENDER_TIMEOUT_ATTRIBUTE_ID (0x0008) +#define ZCL_RECEIVER_TIMEOUT_ATTRIBUTE_ID (0x0009) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Over the Air Bootloading // Client attributes -#define ZCL_UPGRADE_SERVER_ID_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_FILE_OFFSET_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_CURRENT_FILE_VERSION_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_CURRENT_ZIGBEE_STACK_VERSION_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_DOWNLOADED_FILE_VERSION_ATTRIBUTE_ID 0x0004 // Ver.: always -#define ZCL_DOWNLOADED_ZIGBEE_STACK_VERSION_ATTRIBUTE_ID 0x0005 // Ver.: always -#define ZCL_IMAGE_UPGRADE_STATUS_ATTRIBUTE_ID 0x0006 // Ver.: always -#define ZCL_MANUFACTURER_ID_ATTRIBUTE_ID 0x0007 // Ver.: always -#define ZCL_IMAGE_TYPE_ID_ATTRIBUTE_ID 0x0008 // Ver.: always -#define ZCL_MINIMUM_BLOCK_REQUEST_PERIOD_ATTRIBUTE_ID 0x0009 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_IMAGE_STAMP_ATTRIBUTE_ID 0x000A // Ver.: since ha-1.2-05-3520-29 -#define ZCL_UPGRADE_ACTIVATION_POLICY_ATTRIBUTE_ID 0x000B // Ver.: since se-1.2b-15-0131-02 -#define ZCL_UPGRADE_TIMEOUT_POLICY_ATTRIBUTE_ID 0x000C // Ver.: since se-1.2b-15-0131-02 -#define ZCL_OTA_BOOTLOAD_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_OTA_BOOTLOAD_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_UPGRADE_SERVER_ID_ATTRIBUTE_ID (0x0000) +#define ZCL_FILE_OFFSET_ATTRIBUTE_ID (0x0001) +#define ZCL_CURRENT_FILE_VERSION_ATTRIBUTE_ID (0x0002) +#define ZCL_CURRENT_ZIGBEE_STACK_VERSION_ATTRIBUTE_ID (0x0003) +#define ZCL_DOWNLOADED_FILE_VERSION_ATTRIBUTE_ID (0x0004) +#define ZCL_DOWNLOADED_ZIGBEE_STACK_VERSION_ATTRIBUTE_ID (0x0005) +#define ZCL_IMAGE_UPGRADE_STATUS_ATTRIBUTE_ID (0x0006) +#define ZCL_MANUFACTURER_ID_ATTRIBUTE_ID (0x0007) +#define ZCL_IMAGE_TYPE_ID_ATTRIBUTE_ID (0x0008) +#define ZCL_MINIMUM_BLOCK_REQUEST_PERIOD_ATTRIBUTE_ID (0x0009) +#define ZCL_IMAGE_STAMP_ATTRIBUTE_ID (0x000A) +#define ZCL_UPGRADE_ACTIVATION_POLICY_ATTRIBUTE_ID (0x000B) +#define ZCL_UPGRADE_TIMEOUT_POLICY_ATTRIBUTE_ID (0x000C) +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_OTA_BOOTLOAD_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_OTA_BOOTLOAD_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) -// Attribute types for cluster: Power Profile -// Cluster specification level: zcl-7.0-07-5123-07 +// Attribute ids for cluster: Power Profile // Client attributes -#define ZCL_POWER_PROFILE_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_POWER_PROFILE_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_TOTAL_PROFILE_NUM_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_MULTIPLE_SCHEDULING_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_ENERGY_FORMATTING_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_ENERGY_REMOTE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_SCHEDULE_MODE_ATTRIBUTE_ID 0x0004 // Ver.: always -#define ZCL_POWER_PROFILE_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_POWER_PROFILE_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_TOTAL_PROFILE_NUM_ATTRIBUTE_ID (0x0000) +#define ZCL_MULTIPLE_SCHEDULING_ATTRIBUTE_ID (0x0001) +#define ZCL_ENERGY_FORMATTING_ATTRIBUTE_ID (0x0002) +#define ZCL_ENERGY_REMOTE_ATTRIBUTE_ID (0x0003) +#define ZCL_SCHEDULE_MODE_ATTRIBUTE_ID (0x0004) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) -// Attribute types for cluster: Appliance Control -// Cluster specification level: zcl-7.0-07-5123-07 +// Attribute ids for cluster: Appliance Control // Client attributes -#define ZCL_APPLIANCE_CONTROL_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_APPLIANCE_CONTROL_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_START_TIME_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_FINISH_TIME_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_REMAINING_TIME_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_APPLIANCE_CONTROL_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_APPLIANCE_CONTROL_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_START_TIME_ATTRIBUTE_ID (0x0000) +#define ZCL_FINISH_TIME_ATTRIBUTE_ID (0x0001) +#define ZCL_REMAINING_TIME_ATTRIBUTE_ID (0x0002) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) -// Attribute types for cluster: Poll Control -// Cluster specification level: zcl-7.0-07-5123-07 +// Attribute ids for cluster: Poll Control // Client attributes -#define ZCL_POLL_CONTROL_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_POLL_CONTROL_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_CHECK_IN_INTERVAL_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_LONG_POLL_INTERVAL_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_SHORT_POLL_INTERVAL_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_FAST_POLL_TIMEOUT_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_CHECK_IN_INTERVAL_MIN_ATTRIBUTE_ID 0x0004 // Ver.: always -#define ZCL_LONG_POLL_INTERVAL_MIN_ATTRIBUTE_ID 0x0005 // Ver.: always -#define ZCL_FAST_POLL_TIMEOUT_MAX_ATTRIBUTE_ID 0x0006 // Ver.: always -#define ZCL_POLL_CONTROL_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_POLL_CONTROL_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Green Power -// Cluster specification level: gp-1.0a-09-5499-26 +#define ZCL_CHECK_IN_INTERVAL_ATTRIBUTE_ID (0x0000) +#define ZCL_LONG_POLL_INTERVAL_ATTRIBUTE_ID (0x0001) +#define ZCL_SHORT_POLL_INTERVAL_ATTRIBUTE_ID (0x0002) +#define ZCL_FAST_POLL_TIMEOUT_ATTRIBUTE_ID (0x0003) +#define ZCL_CHECK_IN_INTERVAL_MIN_ATTRIBUTE_ID (0x0004) +#define ZCL_LONG_POLL_INTERVAL_MIN_ATTRIBUTE_ID (0x0005) +#define ZCL_FAST_POLL_TIMEOUT_MAX_ATTRIBUTE_ID (0x0006) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Green Power // Client attributes -#define ZCL_GP_CLIENT_GPP_MAX_PROXY_TABLE_ENTRIES_ATTRIBUTE_ID 0x0010 // Ver.: since gp-1.0-09-5499-24 -#define ZCL_GP_CLIENT_PROXY_TABLE_ATTRIBUTE_ID 0x0011 // Ver.: since gp-1.0-09-5499-24 -#define ZCL_GP_CLIENT_GPP_NOTIFICATION_RETRY_NUMBER_ATTRIBUTE_ID 0x0012 // Ver.: since gp-1.0-09-5499-24 -#define ZCL_GP_CLIENT_GPP_NOTIFICATION_RETRY_TIMER_ATTRIBUTE_ID 0x0013 // Ver.: since gp-1.0-09-5499-24 -#define ZCL_GP_CLIENT_GPP_MAX_SEARCH_COUNTER_ATTRIBUTE_ID 0x0014 // Ver.: since gp-1.0-09-5499-24 -#define ZCL_GP_CLIENT_GPP_BLOCKED_GPD_ID_ATTRIBUTE_ID 0x0015 // Ver.: since gp-1.0-09-5499-24 -#define ZCL_GP_CLIENT_GPP_FUNCTIONALITY_ATTRIBUTE_ID 0x0016 // Ver.: since gp-1.0-09-5499-24 -#define ZCL_GP_CLIENT_GPP_ACTIVE_FUNCTIONALITY_ATTRIBUTE_ID 0x0017 // Ver.: since gp-1.0-09-5499-24 -#define ZCL_GP_CLIENT_GP_SHARED_SECURITY_KEY_TYPE_ATTRIBUTE_ID 0x0020 // Ver.: since gp-1.0-09-5499-24 -#define ZCL_GP_CLIENT_GP_SHARED_SECURITY_KEY_ATTRIBUTE_ID 0x0021 // Ver.: since gp-1.0-09-5499-24 -#define ZCL_GP_CLIENT_GP_LINK_KEY_ATTRIBUTE_ID 0x0022 // Ver.: since gp-1.0-09-5499-24 -#define ZCL_GREEN_POWER_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_GREEN_POWER_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_GP_CLIENT_GPP_MAX_PROXY_TABLE_ENTRIES_ATTRIBUTE_ID (0x0010) +#define ZCL_GP_CLIENT_PROXY_TABLE_ATTRIBUTE_ID (0x0011) +#define ZCL_GP_CLIENT_GPP_NOTIFICATION_RETRY_NUMBER_ATTRIBUTE_ID (0x0012) +#define ZCL_GP_CLIENT_GPP_NOTIFICATION_RETRY_TIMER_ATTRIBUTE_ID (0x0013) +#define ZCL_GP_CLIENT_GPP_MAX_SEARCH_COUNTER_ATTRIBUTE_ID (0x0014) +#define ZCL_GP_CLIENT_GPP_BLOCKED_GPD_ID_ATTRIBUTE_ID (0x0015) +#define ZCL_GP_CLIENT_GPP_FUNCTIONALITY_ATTRIBUTE_ID (0x0016) +#define ZCL_GP_CLIENT_GPP_ACTIVE_FUNCTIONALITY_ATTRIBUTE_ID (0x0017) +#define ZCL_GP_CLIENT_GP_SHARED_SECURITY_KEY_TYPE_ATTRIBUTE_ID (0x0020) +#define ZCL_GP_CLIENT_GP_SHARED_SECURITY_KEY_ATTRIBUTE_ID (0x0021) +#define ZCL_GP_CLIENT_GP_LINK_KEY_ATTRIBUTE_ID (0x0022) +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_GP_SERVER_GPS_MAX_SINK_TABLE_ENTRIES_ATTRIBUTE_ID 0x0000 // Ver.: since gp-1.0-09-5499-24 -#define ZCL_GP_SERVER_SINK_TABLE_ATTRIBUTE_ID 0x0001 // Ver.: since gp-1.0-09-5499-24 -#define ZCL_GP_SERVER_GPS_COMMUNICATION_MODE_ATTRIBUTE_ID 0x0002 // Ver.: since gp-1.0-09-5499-24 -#define ZCL_GP_SERVER_GPS_COMMISSIONING_EXIT_MODE_ATTRIBUTE_ID 0x0003 // Ver.: since gp-1.0-09-5499-24 -#define ZCL_GP_SERVER_GPS_COMMISSIONING_WINDOW_ATTRIBUTE_ID 0x0004 // Ver.: since gp-1.0-09-5499-24 -#define ZCL_GP_SERVER_GPS_SECURITY_LEVEL_ATTRIBUTE_ID 0x0005 // Ver.: since gp-1.0-09-5499-24 -#define ZCL_GP_SERVER_GPS_FUNCTIONALITY_ATTRIBUTE_ID 0x0006 // Ver.: since gp-1.0-09-5499-24 -#define ZCL_GP_SERVER_GPS_ACTIVE_FUNCTIONALITY_ATTRIBUTE_ID 0x0007 // Ver.: since gp-1.0-09-5499-24 -#define ZCL_GP_SERVER_GP_SHARED_SECURITY_KEY_TYPE_ATTRIBUTE_ID 0x0020 // Ver.: since gp-1.0-09-5499-24 -#define ZCL_GP_SERVER_GP_SHARED_SECURITY_KEY_ATTRIBUTE_ID 0x0021 // Ver.: since gp-1.0-09-5499-24 -#define ZCL_GP_SERVER_GP_LINK_KEY_ATTRIBUTE_ID 0x0022 // Ver.: since gp-1.0-09-5499-24 -#define ZCL_GREEN_POWER_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_GREEN_POWER_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Keep-Alive -// Cluster specification level: se-1.2b-15-0131-02 +#define ZCL_GP_SERVER_GPS_MAX_SINK_TABLE_ENTRIES_ATTRIBUTE_ID (0x0000) +#define ZCL_GP_SERVER_SINK_TABLE_ATTRIBUTE_ID (0x0001) +#define ZCL_GP_SERVER_GPS_COMMUNICATION_MODE_ATTRIBUTE_ID (0x0002) +#define ZCL_GP_SERVER_GPS_COMMISSIONING_EXIT_MODE_ATTRIBUTE_ID (0x0003) +#define ZCL_GP_SERVER_GPS_COMMISSIONING_WINDOW_ATTRIBUTE_ID (0x0004) +#define ZCL_GP_SERVER_GPS_SECURITY_LEVEL_ATTRIBUTE_ID (0x0005) +#define ZCL_GP_SERVER_GPS_FUNCTIONALITY_ATTRIBUTE_ID (0x0006) +#define ZCL_GP_SERVER_GPS_ACTIVE_FUNCTIONALITY_ATTRIBUTE_ID (0x0007) +#define ZCL_GP_SERVER_GP_SHARED_SECURITY_KEY_TYPE_ATTRIBUTE_ID (0x0020) +#define ZCL_GP_SERVER_GP_SHARED_SECURITY_KEY_ATTRIBUTE_ID (0x0021) +#define ZCL_GP_SERVER_GP_LINK_KEY_ATTRIBUTE_ID (0x0022) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Keep-Alive // Client attributes -#define ZCL_KEEPALIVE_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_KEEPALIVE_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_KEEPALIVE_BASE_ATTRIBUTE_ID 0x0000 // Ver.: since se-1.2b-15-0131-02 -#define ZCL_KEEPALIVE_JITTER_ATTRIBUTE_ID 0x0001 // Ver.: since se-1.2b-15-0131-02 -#define ZCL_KEEPALIVE_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_KEEPALIVE_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_KEEPALIVE_BASE_ATTRIBUTE_ID (0x0000) +#define ZCL_KEEPALIVE_JITTER_ATTRIBUTE_ID (0x0001) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) -// Attribute types for cluster: Shade Configuration -// Cluster specification level: zcl-6.0-15-02018-001 +// Attribute ids for cluster: Shade Configuration // Client attributes -#define ZCL_SHADE_CONFIG_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_SHADE_CONFIG_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_SHADE_CONFIG_PHYSICAL_CLOSED_LIMIT_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_SHADE_CONFIG_MOTOR_STEP_SIZE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_SHADE_CONFIG_STATUS_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_SHADE_CONFIG_CLOSED_LIMIT_ATTRIBUTE_ID 0x0010 // Ver.: always -#define ZCL_SHADE_CONFIG_MODE_ATTRIBUTE_ID 0x0011 // Ver.: always -#define ZCL_SHADE_CONFIG_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_SHADE_CONFIG_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_SHADE_CONFIG_PHYSICAL_CLOSED_LIMIT_ATTRIBUTE_ID (0x0000) +#define ZCL_SHADE_CONFIG_MOTOR_STEP_SIZE_ATTRIBUTE_ID (0x0001) +#define ZCL_SHADE_CONFIG_STATUS_ATTRIBUTE_ID (0x0002) +#define ZCL_SHADE_CONFIG_CLOSED_LIMIT_ATTRIBUTE_ID (0x0010) +#define ZCL_SHADE_CONFIG_MODE_ATTRIBUTE_ID (0x0011) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) -// Attribute types for cluster: Door Lock -// Cluster specification level: zcl-6.0-15-02018-001 +// Attribute ids for cluster: Door Lock // Client attributes -#define ZCL_DOOR_LOCK_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_DOOR_LOCK_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_LOCK_STATE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_LOCK_TYPE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_ACTUATOR_ENABLED_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_DOOR_STATE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_DOOR_OPEN_EVENTS_ATTRIBUTE_ID 0x0004 // Ver.: always -#define ZCL_DOOR_CLOSED_EVENTS_ATTRIBUTE_ID 0x0005 // Ver.: always -#define ZCL_OPEN_PERIOD_ATTRIBUTE_ID 0x0006 // Ver.: always -#define ZCL_NUM_LOCK_RECORDS_SUPPORTED_ATTRIBUTE_ID 0x0010 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_NUM_TOTAL_USERS_SUPPORTED_ATTRIBUTE_ID 0x0011 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_NUM_PIN_USERS_SUPPORTED_ATTRIBUTE_ID 0x0012 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_NUM_RFID_USERS_SUPPORTED_ATTRIBUTE_ID 0x0013 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_NUM_WEEKDAY_SCHEDULES_SUPPORTED_PER_USER_ATTRIBUTE_ID 0x0014 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_NUM_YEARDAY_SCHEDULES_SUPPORTED_PER_USER_ATTRIBUTE_ID 0x0015 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_NUM_HOLIDAY_SCHEDULES_SUPPORTED_PER_USER_ATTRIBUTE_ID 0x0016 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_MAX_PIN_LENGTH_ATTRIBUTE_ID 0x0017 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_MIN_PIN_LENGTH_ATTRIBUTE_ID 0x0018 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_MAX_RFID_CODE_LENGTH_ATTRIBUTE_ID 0x0019 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_MIN_RFID_CODE_LENGTH_ATTRIBUTE_ID 0x001A // Ver.: since ha-1.2-05-3520-29 -#define ZCL_ENABLE_LOGGING_ATTRIBUTE_ID 0x0020 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_LANGUAGE_ATTRIBUTE_ID 0x0021 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_LED_SETTINGS_ATTRIBUTE_ID 0x0022 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_AUTO_RELOCK_TIME_ATTRIBUTE_ID 0x0023 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_SOUND_VOLUME_ATTRIBUTE_ID 0x0024 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_OPERATING_MODE_ATTRIBUTE_ID 0x0025 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_SUPPORTED_OPERATING_MODES_ATTRIBUTE_ID 0x0026 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_DEFAULT_CONFIGURATION_REGISTER_ATTRIBUTE_ID 0x0027 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_ENABLE_LOCAL_PROGRAMMING_ATTRIBUTE_ID 0x0028 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_ENABLE_ONE_TOUCH_LOCKING_ATTRIBUTE_ID 0x0029 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_ENABLE_INSIDE_STATUS_LED_ATTRIBUTE_ID 0x002A // Ver.: since ha-1.2-05-3520-29 -#define ZCL_ENABLE_PRIVACY_MODE_BUTTON_ATTRIBUTE_ID 0x002B // Ver.: since ha-1.2-05-3520-29 -#define ZCL_WRONG_CODE_ENTRY_LIMIT_ATTRIBUTE_ID 0x0030 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_USER_CODE_TEMPORARY_DISABLE_TIME_ATTRIBUTE_ID 0x0031 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_SEND_PIN_OVER_THE_AIR_ATTRIBUTE_ID 0x0032 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_REQUIRE_PIN_FOR_RF_OPERATION_ATTRIBUTE_ID 0x0033 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_ZIGBEE_SECURITY_LEVEL_ATTRIBUTE_ID 0x0034 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_DOOR_LOCK_ALARM_MASK_ATTRIBUTE_ID 0x0040 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_KEYPAD_OPERATION_EVENT_MASK_ATTRIBUTE_ID 0x0041 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_RF_OPERATION_EVENT_MASK_ATTRIBUTE_ID 0x0042 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_MANUAL_OPERATION_EVENT_MASK_ATTRIBUTE_ID 0x0043 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_RFID_OPERATION_EVENT_MASK_ATTRIBUTE_ID 0x0044 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_KEYPAD_PROGRAMMING_EVENT_MASK_ATTRIBUTE_ID 0x0045 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_RF_PROGRAMMING_EVENT_MASK_ATTRIBUTE_ID 0x0046 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_RFID_PROGRAMMING_EVENT_MASK_ATTRIBUTE_ID 0x0047 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_DOOR_LOCK_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_DOOR_LOCK_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Window Covering -// Cluster specification level: zcl-6.0-15-02018-001 +#define ZCL_LOCK_STATE_ATTRIBUTE_ID (0x0000) +#define ZCL_LOCK_TYPE_ATTRIBUTE_ID (0x0001) +#define ZCL_ACTUATOR_ENABLED_ATTRIBUTE_ID (0x0002) +#define ZCL_DOOR_STATE_ATTRIBUTE_ID (0x0003) +#define ZCL_DOOR_OPEN_EVENTS_ATTRIBUTE_ID (0x0004) +#define ZCL_DOOR_CLOSED_EVENTS_ATTRIBUTE_ID (0x0005) +#define ZCL_OPEN_PERIOD_ATTRIBUTE_ID (0x0006) +#define ZCL_NUM_LOCK_RECORDS_SUPPORTED_ATTRIBUTE_ID (0x0010) +#define ZCL_NUM_TOTAL_USERS_SUPPORTED_ATTRIBUTE_ID (0x0011) +#define ZCL_NUM_PIN_USERS_SUPPORTED_ATTRIBUTE_ID (0x0012) +#define ZCL_NUM_RFID_USERS_SUPPORTED_ATTRIBUTE_ID (0x0013) +#define ZCL_NUM_WEEKDAY_SCHEDULES_SUPPORTED_PER_USER_ATTRIBUTE_ID (0x0014) +#define ZCL_NUM_YEARDAY_SCHEDULES_SUPPORTED_PER_USER_ATTRIBUTE_ID (0x0015) +#define ZCL_NUM_HOLIDAY_SCHEDULES_SUPPORTED_PER_USER_ATTRIBUTE_ID (0x0016) +#define ZCL_MAX_PIN_LENGTH_ATTRIBUTE_ID (0x0017) +#define ZCL_MIN_PIN_LENGTH_ATTRIBUTE_ID (0x0018) +#define ZCL_MAX_RFID_CODE_LENGTH_ATTRIBUTE_ID (0x0019) +#define ZCL_MIN_RFID_CODE_LENGTH_ATTRIBUTE_ID (0x001A) +#define ZCL_ENABLE_LOGGING_ATTRIBUTE_ID (0x0020) +#define ZCL_LANGUAGE_ATTRIBUTE_ID (0x0021) +#define ZCL_LED_SETTINGS_ATTRIBUTE_ID (0x0022) +#define ZCL_AUTO_RELOCK_TIME_ATTRIBUTE_ID (0x0023) +#define ZCL_SOUND_VOLUME_ATTRIBUTE_ID (0x0024) +#define ZCL_OPERATING_MODE_ATTRIBUTE_ID (0x0025) +#define ZCL_SUPPORTED_OPERATING_MODES_ATTRIBUTE_ID (0x0026) +#define ZCL_DEFAULT_CONFIGURATION_REGISTER_ATTRIBUTE_ID (0x0027) +#define ZCL_ENABLE_LOCAL_PROGRAMMING_ATTRIBUTE_ID (0x0028) +#define ZCL_ENABLE_ONE_TOUCH_LOCKING_ATTRIBUTE_ID (0x0029) +#define ZCL_ENABLE_INSIDE_STATUS_LED_ATTRIBUTE_ID (0x002A) +#define ZCL_ENABLE_PRIVACY_MODE_BUTTON_ATTRIBUTE_ID (0x002B) +#define ZCL_WRONG_CODE_ENTRY_LIMIT_ATTRIBUTE_ID (0x0030) +#define ZCL_USER_CODE_TEMPORARY_DISABLE_TIME_ATTRIBUTE_ID (0x0031) +#define ZCL_SEND_PIN_OVER_THE_AIR_ATTRIBUTE_ID (0x0032) +#define ZCL_REQUIRE_PIN_FOR_RF_OPERATION_ATTRIBUTE_ID (0x0033) +#define ZCL_ZIGBEE_SECURITY_LEVEL_ATTRIBUTE_ID (0x0034) +#define ZCL_DOOR_LOCK_ALARM_MASK_ATTRIBUTE_ID (0x0040) +#define ZCL_KEYPAD_OPERATION_EVENT_MASK_ATTRIBUTE_ID (0x0041) +#define ZCL_RF_OPERATION_EVENT_MASK_ATTRIBUTE_ID (0x0042) +#define ZCL_MANUAL_OPERATION_EVENT_MASK_ATTRIBUTE_ID (0x0043) +#define ZCL_RFID_OPERATION_EVENT_MASK_ATTRIBUTE_ID (0x0044) +#define ZCL_KEYPAD_PROGRAMMING_EVENT_MASK_ATTRIBUTE_ID (0x0045) +#define ZCL_RF_PROGRAMMING_EVENT_MASK_ATTRIBUTE_ID (0x0046) +#define ZCL_RFID_PROGRAMMING_EVENT_MASK_ATTRIBUTE_ID (0x0047) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Window Covering // Client attributes -#define ZCL_WINDOW_COVERING_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_WINDOW_COVERING_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_COVERING_TYPE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_LIMIT_LIFT_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_LIMIT_TILT_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_CURRENT_LIFT_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_CURRENT_TILT_ATTRIBUTE_ID 0x0004 // Ver.: always -#define ZCL_NUMBER_LIFT_ATTRIBUTE_ID 0x0005 // Ver.: always -#define ZCL_NUMBER_TILT_ATTRIBUTE_ID 0x0006 // Ver.: always -#define ZCL_CONFIG_STATUS_ATTRIBUTE_ID 0x0007 // Ver.: always -#define ZCL_CURRENT_LIFT_PERCENTAGE_ATTRIBUTE_ID 0x0008 // Ver.: always -#define ZCL_CURRENT_TILT_PERCENTAGE_ATTRIBUTE_ID 0x0009 // Ver.: always -#define ZCL_OPEN_LIMIT_LIFT_ATTRIBUTE_ID 0x0010 // Ver.: always -#define ZCL_CLOSED_LIMIT_LIFT_ATTRIBUTE_ID 0x0011 // Ver.: always -#define ZCL_OPEN_LIMIT_TILT_ATTRIBUTE_ID 0x0012 // Ver.: always -#define ZCL_CLOSED_LIMIT_TILT_ATTRIBUTE_ID 0x0013 // Ver.: always -#define ZCL_VELOCITY_LIFT_ATTRIBUTE_ID 0x0014 // Ver.: always -#define ZCL_ACCELERATION_LIFT_ATTRIBUTE_ID 0x0015 // Ver.: always -#define ZCL_DECELERATION_LIFT_ATTRIBUTE_ID 0x0016 // Ver.: always -#define ZCL_MODE_ATTRIBUTE_ID 0x0017 // Ver.: always -#define ZCL_SETPOINTS_LIFT_ATTRIBUTE_ID 0x0018 // Ver.: always -#define ZCL_SETPOINTS_TILT_ATTRIBUTE_ID 0x0019 // Ver.: always -#define ZCL_WINDOW_COVERING_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_WINDOW_COVERING_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Barrier Control -// Cluster specification level: zcl-6.0-15-02018-001 +#define ZCL_COVERING_TYPE_ATTRIBUTE_ID (0x0000) +#define ZCL_LIMIT_LIFT_ATTRIBUTE_ID (0x0001) +#define ZCL_LIMIT_TILT_ATTRIBUTE_ID (0x0002) +#define ZCL_CURRENT_LIFT_ATTRIBUTE_ID (0x0003) +#define ZCL_CURRENT_TILT_ATTRIBUTE_ID (0x0004) +#define ZCL_NUMBER_LIFT_ATTRIBUTE_ID (0x0005) +#define ZCL_NUMBER_TILT_ATTRIBUTE_ID (0x0006) +#define ZCL_CONFIG_STATUS_ATTRIBUTE_ID (0x0007) +#define ZCL_CURRENT_LIFT_PERCENTAGE_ATTRIBUTE_ID (0x0008) +#define ZCL_CURRENT_TILT_PERCENTAGE_ATTRIBUTE_ID (0x0009) +#define ZCL_OPEN_LIMIT_LIFT_ATTRIBUTE_ID (0x0010) +#define ZCL_CLOSED_LIMIT_LIFT_ATTRIBUTE_ID (0x0011) +#define ZCL_OPEN_LIMIT_TILT_ATTRIBUTE_ID (0x0012) +#define ZCL_CLOSED_LIMIT_TILT_ATTRIBUTE_ID (0x0013) +#define ZCL_VELOCITY_LIFT_ATTRIBUTE_ID (0x0014) +#define ZCL_ACCELERATION_LIFT_ATTRIBUTE_ID (0x0015) +#define ZCL_DECELERATION_LIFT_ATTRIBUTE_ID (0x0016) +#define ZCL_MODE_ATTRIBUTE_ID (0x0017) +#define ZCL_SETPOINTS_LIFT_ATTRIBUTE_ID (0x0018) +#define ZCL_SETPOINTS_TILT_ATTRIBUTE_ID (0x0019) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Barrier Control // Client attributes -#define ZCL_BARRIER_CONTROL_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_BARRIER_CONTROL_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_BARRIER_MOVING_STATE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_BARRIER_SAFETY_STATUS_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_BARRIER_CAPABILITIES_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_BARRIER_OPEN_EVENTS_ATTRIBUTE_ID 0x0004 // Ver.: always -#define ZCL_BARRIER_CLOSE_EVENTS_ATTRIBUTE_ID 0x0005 // Ver.: always -#define ZCL_BARRIER_COMMAND_OPEN_EVENTS_ATTRIBUTE_ID 0x0006 // Ver.: always -#define ZCL_BARRIER_COMMAND_CLOSE_EVENTS_ATTRIBUTE_ID 0x0007 // Ver.: always -#define ZCL_BARRIER_OPEN_PERIOD_ATTRIBUTE_ID 0x0008 // Ver.: always -#define ZCL_BARRIER_CLOSE_PERIOD_ATTRIBUTE_ID 0x0009 // Ver.: always -#define ZCL_BARRIER_POSITION_ATTRIBUTE_ID 0x000A // Ver.: always -#define ZCL_BARRIER_CONTROL_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_BARRIER_CONTROL_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Pump Configuration and Control -// Cluster specification level: zcl-6.0-15-02018-001 +#define ZCL_BARRIER_MOVING_STATE_ATTRIBUTE_ID (0x0001) +#define ZCL_BARRIER_SAFETY_STATUS_ATTRIBUTE_ID (0x0002) +#define ZCL_BARRIER_CAPABILITIES_ATTRIBUTE_ID (0x0003) +#define ZCL_BARRIER_OPEN_EVENTS_ATTRIBUTE_ID (0x0004) +#define ZCL_BARRIER_CLOSE_EVENTS_ATTRIBUTE_ID (0x0005) +#define ZCL_BARRIER_COMMAND_OPEN_EVENTS_ATTRIBUTE_ID (0x0006) +#define ZCL_BARRIER_COMMAND_CLOSE_EVENTS_ATTRIBUTE_ID (0x0007) +#define ZCL_BARRIER_OPEN_PERIOD_ATTRIBUTE_ID (0x0008) +#define ZCL_BARRIER_CLOSE_PERIOD_ATTRIBUTE_ID (0x0009) +#define ZCL_BARRIER_POSITION_ATTRIBUTE_ID (0x000A) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Pump Configuration and Control // Client attributes -#define ZCL_PUMP_CONFIG_CONTROL_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_PUMP_CONFIG_CONTROL_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_MAX_PRESSURE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_MAX_SPEED_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_MAX_FLOW_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_MIN_CONST_PRESSURE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_MAX_CONST_PRESSURE_ATTRIBUTE_ID 0x0004 // Ver.: always -#define ZCL_MIN_COMP_PRESSURE_ATTRIBUTE_ID 0x0005 // Ver.: always -#define ZCL_MAX_COMP_PRESSURE_ATTRIBUTE_ID 0x0006 // Ver.: always -#define ZCL_MIN_CONST_SPEED_ATTRIBUTE_ID 0x0007 // Ver.: always -#define ZCL_MAX_CONST_SPEED_ATTRIBUTE_ID 0x0008 // Ver.: always -#define ZCL_MIN_CONST_FLOW_ATTRIBUTE_ID 0x0009 // Ver.: always -#define ZCL_MAX_CONST_FLOW_ATTRIBUTE_ID 0x000A // Ver.: always -#define ZCL_MIN_CONST_TEMP_ATTRIBUTE_ID 0x000B // Ver.: always -#define ZCL_MAX_CONST_TEMP_ATTRIBUTE_ID 0x000C // Ver.: always -#define ZCL_PUMP_STATUS_ATTRIBUTE_ID 0x0010 // Ver.: always -#define ZCL_EFFECTIVE_OPERATION_MODE_ATTRIBUTE_ID 0x0011 // Ver.: always -#define ZCL_EFFECTIVE_CONTROL_MODE_ATTRIBUTE_ID 0x0012 // Ver.: always -#define ZCL_CAPACITY_ATTRIBUTE_ID 0x0013 // Ver.: always -#define ZCL_SPEED_ATTRIBUTE_ID 0x0014 // Ver.: always -#define ZCL_LIFETIME_RUNNING_HOURS_ATTRIBUTE_ID 0x0015 // Ver.: always -#define ZCL_PUMP_POWER_ATTRIBUTE_ID 0x0016 // Ver.: always -#define ZCL_LIFETIME_ENERGY_CONSUMED_ATTRIBUTE_ID 0x0017 // Ver.: always -#define ZCL_OPERATION_MODE_ATTRIBUTE_ID 0x0020 // Ver.: always -#define ZCL_CONTROL_MODE_ATTRIBUTE_ID 0x0021 // Ver.: always -#define ZCL_PUMP_ALARM_MASK_ATTRIBUTE_ID 0x0022 // Ver.: always -#define ZCL_PUMP_CONFIG_CONTROL_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_PUMP_CONFIG_CONTROL_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Thermostat -// Cluster specification level: zcl-6.0-15-02018-001 +#define ZCL_MAX_PRESSURE_ATTRIBUTE_ID (0x0000) +#define ZCL_MAX_SPEED_ATTRIBUTE_ID (0x0001) +#define ZCL_MAX_FLOW_ATTRIBUTE_ID (0x0002) +#define ZCL_MIN_CONST_PRESSURE_ATTRIBUTE_ID (0x0003) +#define ZCL_MAX_CONST_PRESSURE_ATTRIBUTE_ID (0x0004) +#define ZCL_MIN_COMP_PRESSURE_ATTRIBUTE_ID (0x0005) +#define ZCL_MAX_COMP_PRESSURE_ATTRIBUTE_ID (0x0006) +#define ZCL_MIN_CONST_SPEED_ATTRIBUTE_ID (0x0007) +#define ZCL_MAX_CONST_SPEED_ATTRIBUTE_ID (0x0008) +#define ZCL_MIN_CONST_FLOW_ATTRIBUTE_ID (0x0009) +#define ZCL_MAX_CONST_FLOW_ATTRIBUTE_ID (0x000A) +#define ZCL_MIN_CONST_TEMP_ATTRIBUTE_ID (0x000B) +#define ZCL_MAX_CONST_TEMP_ATTRIBUTE_ID (0x000C) +#define ZCL_PUMP_STATUS_ATTRIBUTE_ID (0x0010) +#define ZCL_EFFECTIVE_OPERATION_MODE_ATTRIBUTE_ID (0x0011) +#define ZCL_EFFECTIVE_CONTROL_MODE_ATTRIBUTE_ID (0x0012) +#define ZCL_CAPACITY_ATTRIBUTE_ID (0x0013) +#define ZCL_SPEED_ATTRIBUTE_ID (0x0014) +#define ZCL_LIFETIME_RUNNING_HOURS_ATTRIBUTE_ID (0x0015) +#define ZCL_PUMP_POWER_ATTRIBUTE_ID (0x0016) +#define ZCL_LIFETIME_ENERGY_CONSUMED_ATTRIBUTE_ID (0x0017) +#define ZCL_OPERATION_MODE_ATTRIBUTE_ID (0x0020) +#define ZCL_CONTROL_MODE_ATTRIBUTE_ID (0x0021) +#define ZCL_PUMP_ALARM_MASK_ATTRIBUTE_ID (0x0022) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Thermostat // Client attributes -#define ZCL_THERMOSTAT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_THERMOSTAT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_LOCAL_TEMPERATURE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_OUTDOOR_TEMPERATURE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_THERMOSTAT_OCCUPANCY_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_ABS_MIN_HEAT_SETPOINT_LIMIT_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_ABS_MAX_HEAT_SETPOINT_LIMIT_ATTRIBUTE_ID 0x0004 // Ver.: always -#define ZCL_ABS_MIN_COOL_SETPOINT_LIMIT_ATTRIBUTE_ID 0x0005 // Ver.: always -#define ZCL_ABS_MAX_COOL_SETPOINT_LIMIT_ATTRIBUTE_ID 0x0006 // Ver.: always -#define ZCL_PI_COOLING_DEMAND_ATTRIBUTE_ID 0x0007 // Ver.: always -#define ZCL_PI_HEATING_DEMAND_ATTRIBUTE_ID 0x0008 // Ver.: always -#define ZCL_HVAC_SYSTEM_TYPE_CONFIGURATION_ATTRIBUTE_ID 0x0009 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_LOCAL_TEMPERATURE_CALIBRATION_ATTRIBUTE_ID 0x0010 // Ver.: always -#define ZCL_OCCUPIED_COOLING_SETPOINT_ATTRIBUTE_ID 0x0011 // Ver.: always -#define ZCL_OCCUPIED_HEATING_SETPOINT_ATTRIBUTE_ID 0x0012 // Ver.: always -#define ZCL_UNOCCUPIED_COOLING_SETPOINT_ATTRIBUTE_ID 0x0013 // Ver.: always -#define ZCL_UNOCCUPIED_HEATING_SETPOINT_ATTRIBUTE_ID 0x0014 // Ver.: always -#define ZCL_MIN_HEAT_SETPOINT_LIMIT_ATTRIBUTE_ID 0x0015 // Ver.: always -#define ZCL_MAX_HEAT_SETPOINT_LIMIT_ATTRIBUTE_ID 0x0016 // Ver.: always -#define ZCL_MIN_COOL_SETPOINT_LIMIT_ATTRIBUTE_ID 0x0017 // Ver.: always -#define ZCL_MAX_COOL_SETPOINT_LIMIT_ATTRIBUTE_ID 0x0018 // Ver.: always -#define ZCL_MIN_SETPOINT_DEAD_BAND_ATTRIBUTE_ID 0x0019 // Ver.: always -#define ZCL_REMOTE_SENSING_ATTRIBUTE_ID 0x001A // Ver.: always -#define ZCL_CONTROL_SEQUENCE_OF_OPERATION_ATTRIBUTE_ID 0x001B // Ver.: always -#define ZCL_SYSTEM_MODE_ATTRIBUTE_ID 0x001C // Ver.: always -#define ZCL_THERMOSTAT_ALARM_MASK_ATTRIBUTE_ID 0x001D // Ver.: always -#define ZCL_THERMOSTAT_RUNNING_MODE_ATTRIBUTE_ID 0x001E // Ver.: since ha-1.2-05-3520-29 -#define ZCL_START_OF_WEEK_ATTRIBUTE_ID 0x0020 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_NUMBER_OF_WEEKLY_TRANSITIONS_ATTRIBUTE_ID 0x0021 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_NUMBER_OF_DAILY_TRANSITIONS_ATTRIBUTE_ID 0x0022 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_TEMPERATURE_SETPOINT_HOLD_ATTRIBUTE_ID 0x0023 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_TEMPERATURE_SETPOINT_HOLD_DURATION_ATTRIBUTE_ID 0x0024 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_THERMOSTAT_PROGRAMMING_OPERATION_MODE_ATTRIBUTE_ID 0x0025 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_THERMOSTAT_RUNNING_STATE_ATTRIBUTE_ID 0x0029 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_SETPOINT_CHANGE_SOURCE_ATTRIBUTE_ID 0x0030 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_SETPOINT_CHANGE_AMOUNT_ATTRIBUTE_ID 0x0031 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_SETPOINT_CHANGE_SOURCE_TIMESTAMP_ATTRIBUTE_ID 0x0032 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_OCCUPIED_SETBACK_ATTRIBUTE_ID 0x0034 // Ver.: always -#define ZCL_OCCUPIED_SETBACK_MIN_ATTRIBUTE_ID 0x0035 // Ver.: always -#define ZCL_OCCUPIED_SETBACK_MAX_ATTRIBUTE_ID 0x0036 // Ver.: always -#define ZCL_UNOCCUPIED_SETBACK_ATTRIBUTE_ID 0x0037 // Ver.: always -#define ZCL_UNOCCUPIED_SETBACK_MIN_ATTRIBUTE_ID 0x0038 // Ver.: always -#define ZCL_UNOCCUPIED_SETBACK_MAX_ATTRIBUTE_ID 0x0039 // Ver.: always -#define ZCL_EMERGENCY_HEAT_DELTA_ATTRIBUTE_ID 0x003A // Ver.: always -#define ZCL_AC_TYPE_ATTRIBUTE_ID 0x0040 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_AC_CAPACITY_ATTRIBUTE_ID 0x0041 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_AC_REFRIGERANT_TYPE_ATTRIBUTE_ID 0x0042 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_AC_COMPRESSOR_ATTRIBUTE_ID 0x0043 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_AC_ERROR_CODE_ATTRIBUTE_ID 0x0044 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_AC_LOUVER_POSITION_ATTRIBUTE_ID 0x0045 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_AC_COIL_TEMPERATURE_ATTRIBUTE_ID 0x0046 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_AC_CAPACITY_FORMAT_ATTRIBUTE_ID 0x0047 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_THERMOSTAT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_THERMOSTAT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Fan Control -// Cluster specification level: zcl-6.0-15-02018-001 +#define ZCL_LOCAL_TEMPERATURE_ATTRIBUTE_ID (0x0000) +#define ZCL_OUTDOOR_TEMPERATURE_ATTRIBUTE_ID (0x0001) +#define ZCL_THERMOSTAT_OCCUPANCY_ATTRIBUTE_ID (0x0002) +#define ZCL_ABS_MIN_HEAT_SETPOINT_LIMIT_ATTRIBUTE_ID (0x0003) +#define ZCL_ABS_MAX_HEAT_SETPOINT_LIMIT_ATTRIBUTE_ID (0x0004) +#define ZCL_ABS_MIN_COOL_SETPOINT_LIMIT_ATTRIBUTE_ID (0x0005) +#define ZCL_ABS_MAX_COOL_SETPOINT_LIMIT_ATTRIBUTE_ID (0x0006) +#define ZCL_PI_COOLING_DEMAND_ATTRIBUTE_ID (0x0007) +#define ZCL_PI_HEATING_DEMAND_ATTRIBUTE_ID (0x0008) +#define ZCL_HVAC_SYSTEM_TYPE_CONFIGURATION_ATTRIBUTE_ID (0x0009) +#define ZCL_LOCAL_TEMPERATURE_CALIBRATION_ATTRIBUTE_ID (0x0010) +#define ZCL_OCCUPIED_COOLING_SETPOINT_ATTRIBUTE_ID (0x0011) +#define ZCL_OCCUPIED_HEATING_SETPOINT_ATTRIBUTE_ID (0x0012) +#define ZCL_UNOCCUPIED_COOLING_SETPOINT_ATTRIBUTE_ID (0x0013) +#define ZCL_UNOCCUPIED_HEATING_SETPOINT_ATTRIBUTE_ID (0x0014) +#define ZCL_MIN_HEAT_SETPOINT_LIMIT_ATTRIBUTE_ID (0x0015) +#define ZCL_MAX_HEAT_SETPOINT_LIMIT_ATTRIBUTE_ID (0x0016) +#define ZCL_MIN_COOL_SETPOINT_LIMIT_ATTRIBUTE_ID (0x0017) +#define ZCL_MAX_COOL_SETPOINT_LIMIT_ATTRIBUTE_ID (0x0018) +#define ZCL_MIN_SETPOINT_DEAD_BAND_ATTRIBUTE_ID (0x0019) +#define ZCL_REMOTE_SENSING_ATTRIBUTE_ID (0x001A) +#define ZCL_CONTROL_SEQUENCE_OF_OPERATION_ATTRIBUTE_ID (0x001B) +#define ZCL_SYSTEM_MODE_ATTRIBUTE_ID (0x001C) +#define ZCL_THERMOSTAT_ALARM_MASK_ATTRIBUTE_ID (0x001D) +#define ZCL_THERMOSTAT_RUNNING_MODE_ATTRIBUTE_ID (0x001E) +#define ZCL_START_OF_WEEK_ATTRIBUTE_ID (0x0020) +#define ZCL_NUMBER_OF_WEEKLY_TRANSITIONS_ATTRIBUTE_ID (0x0021) +#define ZCL_NUMBER_OF_DAILY_TRANSITIONS_ATTRIBUTE_ID (0x0022) +#define ZCL_TEMPERATURE_SETPOINT_HOLD_ATTRIBUTE_ID (0x0023) +#define ZCL_TEMPERATURE_SETPOINT_HOLD_DURATION_ATTRIBUTE_ID (0x0024) +#define ZCL_THERMOSTAT_PROGRAMMING_OPERATION_MODE_ATTRIBUTE_ID (0x0025) +#define ZCL_THERMOSTAT_RUNNING_STATE_ATTRIBUTE_ID (0x0029) +#define ZCL_SETPOINT_CHANGE_SOURCE_ATTRIBUTE_ID (0x0030) +#define ZCL_SETPOINT_CHANGE_AMOUNT_ATTRIBUTE_ID (0x0031) +#define ZCL_SETPOINT_CHANGE_SOURCE_TIMESTAMP_ATTRIBUTE_ID (0x0032) +#define ZCL_AC_TYPE_ATTRIBUTE_ID (0x0040) +#define ZCL_AC_CAPACITY_ATTRIBUTE_ID (0x0041) +#define ZCL_AC_REFRIGERANT_TYPE_ATTRIBUTE_ID (0x0042) +#define ZCL_AC_COMPRESSOR_ATTRIBUTE_ID (0x0043) +#define ZCL_AC_ERROR_CODE_ATTRIBUTE_ID (0x0044) +#define ZCL_AC_LOUVER_POSITION_ATTRIBUTE_ID (0x0045) +#define ZCL_AC_COIL_TEMPERATURE_ATTRIBUTE_ID (0x0046) +#define ZCL_AC_CAPACITY_FORMAT_ATTRIBUTE_ID (0x0047) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Fan Control // Client attributes -#define ZCL_FAN_CONTROL_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_FAN_CONTROL_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_FAN_CONTROL_FAN_MODE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_FAN_CONTROL_FAN_MODE_SEQUENCE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_FAN_DELAY_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_FAN_CONTROL_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_FAN_CONTROL_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_FAN_CONTROL_FAN_MODE_ATTRIBUTE_ID (0x0000) +#define ZCL_FAN_CONTROL_FAN_MODE_SEQUENCE_ATTRIBUTE_ID (0x0001) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) -// Attribute types for cluster: Dehumidification Control -// Cluster specification level: zcl-6.0-15-02018-001 +// Attribute ids for cluster: Dehumidification Control // Client attributes -#define ZCL_DEHUMID_CONTROL_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_DEHUMID_CONTROL_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_RELATIVE_HUMIDITY_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_DEHUMIDIFICATION_COOLING_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_RH_DEHUMIDIFICATION_SETPOINT_ATTRIBUTE_ID 0x0010 // Ver.: always -#define ZCL_RELATIVE_HUMIDITY_MODE_ATTRIBUTE_ID 0x0011 // Ver.: always -#define ZCL_DEHUMIDIFICATION_LOCKOUT_ATTRIBUTE_ID 0x0012 // Ver.: always -#define ZCL_DEHUMIDIFICATION_HYSTERESIS_ATTRIBUTE_ID 0x0013 // Ver.: always -#define ZCL_DEHUMIDIFICATION_MAX_COOL_ATTRIBUTE_ID 0x0014 // Ver.: always -#define ZCL_RELATIVE_HUMIDITY_DISPLAY_ATTRIBUTE_ID 0x0015 // Ver.: always -#define ZCL_DEHUMID_CONTROL_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_DEHUMID_CONTROL_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Thermostat User Interface Configuration -// Cluster specification level: zcl-6.0-15-02018-001 +#define ZCL_RELATIVE_HUMIDITY_ATTRIBUTE_ID (0x0000) +#define ZCL_DEHUMIDIFICATION_COOLING_ATTRIBUTE_ID (0x0001) +#define ZCL_RH_DEHUMIDIFICATION_SETPOINT_ATTRIBUTE_ID (0x0010) +#define ZCL_RELATIVE_HUMIDITY_MODE_ATTRIBUTE_ID (0x0011) +#define ZCL_DEHUMIDIFICATION_LOCKOUT_ATTRIBUTE_ID (0x0012) +#define ZCL_DEHUMIDIFICATION_HYSTERESIS_ATTRIBUTE_ID (0x0013) +#define ZCL_DEHUMIDIFICATION_MAX_COOL_ATTRIBUTE_ID (0x0014) +#define ZCL_RELATIVE_HUMIDITY_DISPLAY_ATTRIBUTE_ID (0x0015) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Thermostat User Interface Configuration // Client attributes -#define ZCL_THERMOSTAT_UI_CONFIG_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_THERMOSTAT_UI_CONFIG_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_TEMPERATURE_DISPLAY_MODE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_KEYPAD_LOCKOUT_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_SCHEDULE_PROGRAMMING_VISIBILITY_ATTRIBUTE_ID 0x0002 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BACKLIGHT_TIMEOUT_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_SETPOINT_SOURCE_INDICATION_ATTRIBUTE_ID 0x0004 // Ver.: always -#define ZCL_THERMOSTAT_UI_CONFIG_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_THERMOSTAT_UI_CONFIG_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_TEMPERATURE_DISPLAY_MODE_ATTRIBUTE_ID (0x0000) +#define ZCL_KEYPAD_LOCKOUT_ATTRIBUTE_ID (0x0001) +#define ZCL_SCHEDULE_PROGRAMMING_VISIBILITY_ATTRIBUTE_ID (0x0002) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) -// Attribute types for cluster: Color Control -// Cluster specification level: zcl6-errata-14-0129-15 +// Attribute ids for cluster: Color Control // Client attributes -#define ZCL_COLOR_CONTROL_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_COLOR_CONTROL_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_COLOR_CONTROL_CURRENT_HUE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_COLOR_CONTROL_CURRENT_SATURATION_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_COLOR_CONTROL_REMAINING_TIME_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_COLOR_CONTROL_CURRENT_X_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_COLOR_CONTROL_CURRENT_Y_ATTRIBUTE_ID 0x0004 // Ver.: always -#define ZCL_COLOR_CONTROL_DRIFT_COMPENSATION_ATTRIBUTE_ID 0x0005 // Ver.: always -#define ZCL_COLOR_CONTROL_COMPENSATION_TEXT_ATTRIBUTE_ID 0x0006 // Ver.: always -#define ZCL_COLOR_CONTROL_COLOR_TEMPERATURE_ATTRIBUTE_ID 0x0007 // Ver.: always -#define ZCL_COLOR_CONTROL_COLOR_MODE_ATTRIBUTE_ID 0x0008 // Ver.: always -#define ZCL_COLOR_CONTROL_OPTIONS_ATTRIBUTE_ID 0x000F // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_COLOR_CONTROL_NUMBER_OF_PRIMARIES_ATTRIBUTE_ID 0x0010 // Ver.: always -#define ZCL_COLOR_CONTROL_PRIMARY_1_X_ATTRIBUTE_ID 0x0011 // Ver.: always -#define ZCL_COLOR_CONTROL_PRIMARY_1_Y_ATTRIBUTE_ID 0x0012 // Ver.: always -#define ZCL_COLOR_CONTROL_PRIMARY_1_INTENSITY_ATTRIBUTE_ID 0x0013 // Ver.: always -#define ZCL_COLOR_CONTROL_PRIMARY_2_X_ATTRIBUTE_ID 0x0015 // Ver.: always -#define ZCL_COLOR_CONTROL_PRIMARY_2_Y_ATTRIBUTE_ID 0x0016 // Ver.: always -#define ZCL_COLOR_CONTROL_PRIMARY_2_INTENSITY_ATTRIBUTE_ID 0x0017 // Ver.: always -#define ZCL_COLOR_CONTROL_PRIMARY_3_X_ATTRIBUTE_ID 0x0019 // Ver.: always -#define ZCL_COLOR_CONTROL_PRIMARY_3_Y_ATTRIBUTE_ID 0x001A // Ver.: always -#define ZCL_COLOR_CONTROL_PRIMARY_3_INTENSITY_ATTRIBUTE_ID 0x001B // Ver.: always -#define ZCL_COLOR_CONTROL_PRIMARY_4_X_ATTRIBUTE_ID 0x0020 // Ver.: always -#define ZCL_COLOR_CONTROL_PRIMARY_4_Y_ATTRIBUTE_ID 0x0021 // Ver.: always -#define ZCL_COLOR_CONTROL_PRIMARY_4_INTENSITY_ATTRIBUTE_ID 0x0022 // Ver.: always -#define ZCL_COLOR_CONTROL_PRIMARY_5_X_ATTRIBUTE_ID 0x0024 // Ver.: always -#define ZCL_COLOR_CONTROL_PRIMARY_5_Y_ATTRIBUTE_ID 0x0025 // Ver.: always -#define ZCL_COLOR_CONTROL_PRIMARY_5_INTENSITY_ATTRIBUTE_ID 0x0026 // Ver.: always -#define ZCL_COLOR_CONTROL_PRIMARY_6_X_ATTRIBUTE_ID 0x0028 // Ver.: always -#define ZCL_COLOR_CONTROL_PRIMARY_6_Y_ATTRIBUTE_ID 0x0029 // Ver.: always -#define ZCL_COLOR_CONTROL_PRIMARY_6_INTENSITY_ATTRIBUTE_ID 0x002A // Ver.: always -#define ZCL_COLOR_CONTROL_WHITE_POINT_X_ATTRIBUTE_ID 0x0030 // Ver.: always -#define ZCL_COLOR_CONTROL_WHITE_POINT_Y_ATTRIBUTE_ID 0x0031 // Ver.: always -#define ZCL_COLOR_CONTROL_COLOR_POINT_R_X_ATTRIBUTE_ID 0x0032 // Ver.: always -#define ZCL_COLOR_CONTROL_COLOR_POINT_R_Y_ATTRIBUTE_ID 0x0033 // Ver.: always -#define ZCL_COLOR_CONTROL_COLOR_POINT_R_INTENSITY_ATTRIBUTE_ID 0x0034 // Ver.: always -#define ZCL_COLOR_CONTROL_COLOR_POINT_G_X_ATTRIBUTE_ID 0x0036 // Ver.: always -#define ZCL_COLOR_CONTROL_COLOR_POINT_G_Y_ATTRIBUTE_ID 0x0037 // Ver.: always -#define ZCL_COLOR_CONTROL_COLOR_POINT_G_INTENSITY_ATTRIBUTE_ID 0x0038 // Ver.: always -#define ZCL_COLOR_CONTROL_COLOR_POINT_B_X_ATTRIBUTE_ID 0x003A // Ver.: always -#define ZCL_COLOR_CONTROL_COLOR_POINT_B_Y_ATTRIBUTE_ID 0x003B // Ver.: always -#define ZCL_COLOR_CONTROL_COLOR_POINT_B_INTENSITY_ATTRIBUTE_ID 0x003C // Ver.: always -#define ZCL_COLOR_CONTROL_ENHANCED_CURRENT_HUE_ATTRIBUTE_ID 0x4000 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_COLOR_CONTROL_ENHANCED_COLOR_MODE_ATTRIBUTE_ID 0x4001 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_COLOR_CONTROL_COLOR_LOOP_ACTIVE_ATTRIBUTE_ID 0x4002 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_COLOR_CONTROL_COLOR_LOOP_DIRECTION_ATTRIBUTE_ID 0x4003 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_COLOR_CONTROL_COLOR_LOOP_TIME_ATTRIBUTE_ID 0x4004 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_COLOR_CONTROL_COLOR_LOOP_START_ENHANCED_HUE_ATTRIBUTE_ID 0x4005 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_COLOR_CONTROL_COLOR_LOOP_STORED_ENHANCED_HUE_ATTRIBUTE_ID 0x4006 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_COLOR_CONTROL_COLOR_CAPABILITIES_ATTRIBUTE_ID 0x400A // Ver.: since zll-1.0-11-0037-10 -#define ZCL_COLOR_CONTROL_COLOR_TEMP_PHYSICAL_MIN_ATTRIBUTE_ID 0x400B // Ver.: since zll-1.0-11-0037-10 -#define ZCL_COLOR_CONTROL_COLOR_TEMP_PHYSICAL_MAX_ATTRIBUTE_ID 0x400C // Ver.: since zll-1.0-11-0037-10 -#define ZCL_COLOR_CONTROL_TEMPERATURE_LEVEL_MIN_MIREDS_ATTRIBUTE_ID 0x400D // Ver.: since l&o-1.0-15-0014-04 -#define ZCL_START_UP_COLOR_TEMPERATURE_MIREDS_ATTRIBUTE_ID 0x4010 // Ver.: since l&o-1.0-15-0014-04 -#define ZCL_COLOR_CONTROL_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_COLOR_CONTROL_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Ballast Configuration -// Cluster specification level: zcl6-errata-14-0129-15 +#define ZCL_COLOR_CONTROL_CURRENT_HUE_ATTRIBUTE_ID (0x0000) +#define ZCL_COLOR_CONTROL_CURRENT_SATURATION_ATTRIBUTE_ID (0x0001) +#define ZCL_COLOR_CONTROL_REMAINING_TIME_ATTRIBUTE_ID (0x0002) +#define ZCL_COLOR_CONTROL_CURRENT_X_ATTRIBUTE_ID (0x0003) +#define ZCL_COLOR_CONTROL_CURRENT_Y_ATTRIBUTE_ID (0x0004) +#define ZCL_COLOR_CONTROL_DRIFT_COMPENSATION_ATTRIBUTE_ID (0x0005) +#define ZCL_COLOR_CONTROL_COMPENSATION_TEXT_ATTRIBUTE_ID (0x0006) +#define ZCL_COLOR_CONTROL_COLOR_TEMPERATURE_ATTRIBUTE_ID (0x0007) +#define ZCL_COLOR_CONTROL_COLOR_MODE_ATTRIBUTE_ID (0x0008) +#define ZCL_COLOR_CONTROL_OPTIONS_ATTRIBUTE_ID (0x000F) +#define ZCL_COLOR_CONTROL_NUMBER_OF_PRIMARIES_ATTRIBUTE_ID (0x0010) +#define ZCL_COLOR_CONTROL_PRIMARY_1_X_ATTRIBUTE_ID (0x0011) +#define ZCL_COLOR_CONTROL_PRIMARY_1_Y_ATTRIBUTE_ID (0x0012) +#define ZCL_COLOR_CONTROL_PRIMARY_1_INTENSITY_ATTRIBUTE_ID (0x0013) +#define ZCL_COLOR_CONTROL_PRIMARY_2_X_ATTRIBUTE_ID (0x0015) +#define ZCL_COLOR_CONTROL_PRIMARY_2_Y_ATTRIBUTE_ID (0x0016) +#define ZCL_COLOR_CONTROL_PRIMARY_2_INTENSITY_ATTRIBUTE_ID (0x0017) +#define ZCL_COLOR_CONTROL_PRIMARY_3_X_ATTRIBUTE_ID (0x0019) +#define ZCL_COLOR_CONTROL_PRIMARY_3_Y_ATTRIBUTE_ID (0x001A) +#define ZCL_COLOR_CONTROL_PRIMARY_3_INTENSITY_ATTRIBUTE_ID (0x001B) +#define ZCL_COLOR_CONTROL_PRIMARY_4_X_ATTRIBUTE_ID (0x0020) +#define ZCL_COLOR_CONTROL_PRIMARY_4_Y_ATTRIBUTE_ID (0x0021) +#define ZCL_COLOR_CONTROL_PRIMARY_4_INTENSITY_ATTRIBUTE_ID (0x0022) +#define ZCL_COLOR_CONTROL_PRIMARY_5_X_ATTRIBUTE_ID (0x0024) +#define ZCL_COLOR_CONTROL_PRIMARY_5_Y_ATTRIBUTE_ID (0x0025) +#define ZCL_COLOR_CONTROL_PRIMARY_5_INTENSITY_ATTRIBUTE_ID (0x0026) +#define ZCL_COLOR_CONTROL_PRIMARY_6_X_ATTRIBUTE_ID (0x0028) +#define ZCL_COLOR_CONTROL_PRIMARY_6_Y_ATTRIBUTE_ID (0x0029) +#define ZCL_COLOR_CONTROL_PRIMARY_6_INTENSITY_ATTRIBUTE_ID (0x002A) +#define ZCL_COLOR_CONTROL_WHITE_POINT_X_ATTRIBUTE_ID (0x0030) +#define ZCL_COLOR_CONTROL_WHITE_POINT_Y_ATTRIBUTE_ID (0x0031) +#define ZCL_COLOR_CONTROL_COLOR_POINT_R_X_ATTRIBUTE_ID (0x0032) +#define ZCL_COLOR_CONTROL_COLOR_POINT_R_Y_ATTRIBUTE_ID (0x0033) +#define ZCL_COLOR_CONTROL_COLOR_POINT_R_INTENSITY_ATTRIBUTE_ID (0x0034) +#define ZCL_COLOR_CONTROL_COLOR_POINT_G_X_ATTRIBUTE_ID (0x0036) +#define ZCL_COLOR_CONTROL_COLOR_POINT_G_Y_ATTRIBUTE_ID (0x0037) +#define ZCL_COLOR_CONTROL_COLOR_POINT_G_INTENSITY_ATTRIBUTE_ID (0x0038) +#define ZCL_COLOR_CONTROL_COLOR_POINT_B_X_ATTRIBUTE_ID (0x003A) +#define ZCL_COLOR_CONTROL_COLOR_POINT_B_Y_ATTRIBUTE_ID (0x003B) +#define ZCL_COLOR_CONTROL_COLOR_POINT_B_INTENSITY_ATTRIBUTE_ID (0x003C) +#define ZCL_COLOR_CONTROL_ENHANCED_CURRENT_HUE_ATTRIBUTE_ID (0x4000) +#define ZCL_COLOR_CONTROL_ENHANCED_COLOR_MODE_ATTRIBUTE_ID (0x4001) +#define ZCL_COLOR_CONTROL_COLOR_LOOP_ACTIVE_ATTRIBUTE_ID (0x4002) +#define ZCL_COLOR_CONTROL_COLOR_LOOP_DIRECTION_ATTRIBUTE_ID (0x4003) +#define ZCL_COLOR_CONTROL_COLOR_LOOP_TIME_ATTRIBUTE_ID (0x4004) +#define ZCL_COLOR_CONTROL_COLOR_LOOP_START_ENHANCED_HUE_ATTRIBUTE_ID (0x4005) +#define ZCL_COLOR_CONTROL_COLOR_LOOP_STORED_ENHANCED_HUE_ATTRIBUTE_ID (0x4006) +#define ZCL_COLOR_CONTROL_COLOR_CAPABILITIES_ATTRIBUTE_ID (0x400A) +#define ZCL_COLOR_CONTROL_COLOR_TEMP_PHYSICAL_MIN_ATTRIBUTE_ID (0x400B) +#define ZCL_COLOR_CONTROL_COLOR_TEMP_PHYSICAL_MAX_ATTRIBUTE_ID (0x400C) +#define ZCL_COLOR_CONTROL_TEMPERATURE_LEVEL_MIN_MIREDS_ATTRIBUTE_ID (0x400D) +#define ZCL_START_UP_COLOR_TEMPERATURE_MIREDS_ATTRIBUTE_ID (0x4010) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Ballast Configuration // Client attributes -#define ZCL_BALLAST_CONFIGURATION_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_BALLAST_CONFIGURATION_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_PHYSICAL_MIN_LEVEL_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_PHYSICAL_MAX_LEVEL_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_BALLAST_STATUS_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_MIN_LEVEL_ATTRIBUTE_ID 0x0010 // Ver.: always -#define ZCL_MAX_LEVEL_ATTRIBUTE_ID 0x0011 // Ver.: always -#define ZCL_POWER_ON_LEVEL_ATTRIBUTE_ID 0x0012 // Ver.: always -#define ZCL_POWER_ON_FADE_TIME_ATTRIBUTE_ID 0x0013 // Ver.: always -#define ZCL_INTRINSIC_BALLAST_FACTOR_ATTRIBUTE_ID 0x0014 // Ver.: always -#define ZCL_BALLAST_FACTOR_ADJUSTMENT_ATTRIBUTE_ID 0x0015 // Ver.: always -#define ZCL_LAMP_QUALITY_ATTRIBUTE_ID 0x0020 // Ver.: always -#define ZCL_LAMP_TYPE_ATTRIBUTE_ID 0x0030 // Ver.: always -#define ZCL_LAMP_MANUFACTURER_ATTRIBUTE_ID 0x0031 // Ver.: always -#define ZCL_LAMP_RATED_HOURS_ATTRIBUTE_ID 0x0032 // Ver.: always -#define ZCL_LAMP_BURN_HOURS_ATTRIBUTE_ID 0x0033 // Ver.: always -#define ZCL_LAMP_ALARM_MODE_ATTRIBUTE_ID 0x0034 // Ver.: always -#define ZCL_LAMP_BURN_HOURS_TRIP_POINT_ATTRIBUTE_ID 0x0035 // Ver.: always -#define ZCL_BALLAST_CONFIGURATION_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_BALLAST_CONFIGURATION_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Illuminance Measurement -// Cluster specification level: zcl-6.0-15-02018-001 +#define ZCL_PHYSICAL_MIN_LEVEL_ATTRIBUTE_ID (0x0000) +#define ZCL_PHYSICAL_MAX_LEVEL_ATTRIBUTE_ID (0x0001) +#define ZCL_BALLAST_STATUS_ATTRIBUTE_ID (0x0002) +#define ZCL_MIN_LEVEL_ATTRIBUTE_ID (0x0010) +#define ZCL_MAX_LEVEL_ATTRIBUTE_ID (0x0011) +#define ZCL_POWER_ON_LEVEL_ATTRIBUTE_ID (0x0012) +#define ZCL_POWER_ON_FADE_TIME_ATTRIBUTE_ID (0x0013) +#define ZCL_INTRINSIC_BALLAST_FACTOR_ATTRIBUTE_ID (0x0014) +#define ZCL_BALLAST_FACTOR_ADJUSTMENT_ATTRIBUTE_ID (0x0015) +#define ZCL_LAMP_QUALITY_ATTRIBUTE_ID (0x0020) +#define ZCL_LAMP_TYPE_ATTRIBUTE_ID (0x0030) +#define ZCL_LAMP_MANUFACTURER_ATTRIBUTE_ID (0x0031) +#define ZCL_LAMP_RATED_HOURS_ATTRIBUTE_ID (0x0032) +#define ZCL_LAMP_BURN_HOURS_ATTRIBUTE_ID (0x0033) +#define ZCL_LAMP_ALARM_MODE_ATTRIBUTE_ID (0x0034) +#define ZCL_LAMP_BURN_HOURS_TRIP_POINT_ATTRIBUTE_ID (0x0035) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Illuminance Measurement // Client attributes -#define ZCL_ILLUM_MEASUREMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_ILLUM_MEASUREMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_ILLUM_MEASURED_VALUE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_ILLUM_MIN_MEASURED_VALUE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_ILLUM_MAX_MEASURED_VALUE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_ILLUM_TOLERANCE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_MEASUREMENT_LIGHT_SENSOR_TYPE_ATTRIBUTE_ID 0x0004 // Ver.: always -#define ZCL_ILLUM_MEASUREMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_ILLUM_MEASUREMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_ILLUM_MEASURED_VALUE_ATTRIBUTE_ID (0x0000) +#define ZCL_ILLUM_MIN_MEASURED_VALUE_ATTRIBUTE_ID (0x0001) +#define ZCL_ILLUM_MAX_MEASURED_VALUE_ATTRIBUTE_ID (0x0002) +#define ZCL_ILLUM_TOLERANCE_ATTRIBUTE_ID (0x0003) +#define ZCL_MEASUREMENT_LIGHT_SENSOR_TYPE_ATTRIBUTE_ID (0x0004) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) -// Attribute types for cluster: Illuminance Level Sensing -// Cluster specification level: zcl-6.0-15-02018-001 +// Attribute ids for cluster: Illuminance Level Sensing // Client attributes -#define ZCL_ILLUM_LEVEL_SENSING_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_ILLUM_LEVEL_SENSING_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_LEVEL_STATUS_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_SENSING_LIGHT_SENSOR_TYPE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_ILLUMINANCE_TARGET_LEVEL_ATTRIBUTE_ID 0x0010 // Ver.: always -#define ZCL_ILLUM_LEVEL_SENSING_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_ILLUM_LEVEL_SENSING_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_LEVEL_STATUS_ATTRIBUTE_ID (0x0000) +#define ZCL_SENSING_LIGHT_SENSOR_TYPE_ATTRIBUTE_ID (0x0001) +#define ZCL_ILLUMINANCE_TARGET_LEVEL_ATTRIBUTE_ID (0x0010) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) -// Attribute types for cluster: Temperature Measurement -// Cluster specification level: zcl-6.0-15-02018-001 +// Attribute ids for cluster: Temperature Measurement // Client attributes -#define ZCL_TEMP_MEASUREMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_TEMP_MEASUREMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_TEMP_MEASURED_VALUE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_TEMP_MIN_MEASURED_VALUE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_TEMP_MAX_MEASURED_VALUE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_TEMP_TOLERANCE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_TEMP_MEASUREMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_TEMP_MEASUREMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_TEMP_MEASURED_VALUE_ATTRIBUTE_ID (0x0000) +#define ZCL_TEMP_MIN_MEASURED_VALUE_ATTRIBUTE_ID (0x0001) +#define ZCL_TEMP_MAX_MEASURED_VALUE_ATTRIBUTE_ID (0x0002) +#define ZCL_TEMP_TOLERANCE_ATTRIBUTE_ID (0x0003) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) -// Attribute types for cluster: Pressure Measurement -// Cluster specification level: zcl-6.0-15-02018-001 +// Attribute ids for cluster: Pressure Measurement // Client attributes -#define ZCL_PRESSURE_MEASUREMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_PRESSURE_MEASUREMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_PRESSURE_MEASURED_VALUE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_PRESSURE_MIN_MEASURED_VALUE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_PRESSURE_MAX_MEASURED_VALUE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_PRESSURE_TOLERANCE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_PRESSURE_SCALED_VALUE_ATTRIBUTE_ID 0x0010 // Ver.: always -#define ZCL_PRESSURE_MIN_SCALED_VALUE_ATTRIBUTE_ID 0x0011 // Ver.: always -#define ZCL_PRESSURE_MAX_SCALED_VALUE_ATTRIBUTE_ID 0x0012 // Ver.: always -#define ZCL_PRESSURE_SCALED_TOLERANCE_ATTRIBUTE_ID 0x0013 // Ver.: always -#define ZCL_PRESSURE_SCALE_ATTRIBUTE_ID 0x0014 // Ver.: always -#define ZCL_PRESSURE_MEASUREMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_PRESSURE_MEASUREMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Flow Measurement -// Cluster specification level: zcl-6.0-15-02018-001 +#define ZCL_PRESSURE_MEASURED_VALUE_ATTRIBUTE_ID (0x0000) +#define ZCL_PRESSURE_MIN_MEASURED_VALUE_ATTRIBUTE_ID (0x0001) +#define ZCL_PRESSURE_MAX_MEASURED_VALUE_ATTRIBUTE_ID (0x0002) +#define ZCL_PRESSURE_TOLERANCE_ATTRIBUTE_ID (0x0003) +#define ZCL_PRESSURE_SCALED_VALUE_ATTRIBUTE_ID (0x0010) +#define ZCL_PRESSURE_MIN_SCALED_VALUE_ATTRIBUTE_ID (0x0011) +#define ZCL_PRESSURE_MAX_SCALED_VALUE_ATTRIBUTE_ID (0x0012) +#define ZCL_PRESSURE_SCALED_TOLERANCE_ATTRIBUTE_ID (0x0013) +#define ZCL_PRESSURE_SCALE_ATTRIBUTE_ID (0x0014) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Flow Measurement // Client attributes -#define ZCL_FLOW_MEASUREMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_FLOW_MEASUREMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_FLOW_MEASURED_VALUE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_FLOW_MIN_MEASURED_VALUE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_FLOW_MAX_MEASURED_VALUE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_FLOW_TOLERANCE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_FLOW_MEASUREMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_FLOW_MEASUREMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_FLOW_MEASURED_VALUE_ATTRIBUTE_ID (0x0000) +#define ZCL_FLOW_MIN_MEASURED_VALUE_ATTRIBUTE_ID (0x0001) +#define ZCL_FLOW_MAX_MEASURED_VALUE_ATTRIBUTE_ID (0x0002) +#define ZCL_FLOW_TOLERANCE_ATTRIBUTE_ID (0x0003) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) -// Attribute types for cluster: Relative Humidity Measurement -// Cluster specification level: zcl-6.0-15-02018-001 +// Attribute ids for cluster: Relative Humidity Measurement // Client attributes -#define ZCL_RELATIVE_HUMIDITY_MEASUREMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_RELATIVE_HUMIDITY_MEASUREMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_RELATIVE_HUMIDITY_MEASURED_VALUE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_RELATIVE_HUMIDITY_MIN_MEASURED_VALUE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_RELATIVE_HUMIDITY_MAX_MEASURED_VALUE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_RELATIVE_HUMIDITY_TOLERANCE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_RELATIVE_HUMIDITY_MEASUREMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_RELATIVE_HUMIDITY_MEASUREMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_RELATIVE_HUMIDITY_MEASURED_VALUE_ATTRIBUTE_ID (0x0000) +#define ZCL_RELATIVE_HUMIDITY_MIN_MEASURED_VALUE_ATTRIBUTE_ID (0x0001) +#define ZCL_RELATIVE_HUMIDITY_MAX_MEASURED_VALUE_ATTRIBUTE_ID (0x0002) +#define ZCL_RELATIVE_HUMIDITY_TOLERANCE_ATTRIBUTE_ID (0x0003) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) -// Attribute types for cluster: Occupancy Sensing -// Cluster specification level: zcl-6.0-15-02018-001 +// Attribute ids for cluster: Occupancy Sensing // Client attributes -#define ZCL_OCCUPANCY_SENSING_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_OCCUPANCY_SENSING_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_OCCUPANCY_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_OCCUPANCY_SENSOR_TYPE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_OCCUPANCY_SENSOR_TYPE_BITMAP_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_PIR_OCCUPIED_TO_UNOCCUPIED_DELAY_ATTRIBUTE_ID 0x0010 // Ver.: always -#define ZCL_PIR_UNOCCUPIED_TO_OCCUPIED_DELAY_ATTRIBUTE_ID 0x0011 // Ver.: always -#define ZCL_PIR_UNOCCUPIED_TO_OCCUPIED_THRESHOLD_ATTRIBUTE_ID 0x0012 // Ver.: always -#define ZCL_ULTRASONIC_OCCUPIED_TO_UNOCCUPIED_DELAY_ATTRIBUTE_ID 0x0020 // Ver.: always -#define ZCL_ULTRASONIC_UNOCCUPIED_TO_OCCUPIED_DELAY_ATTRIBUTE_ID 0x0021 // Ver.: always -#define ZCL_ULTRASONIC_UNOCCUPIED_TO_OCCUPIED_THRESHOLD_ATTRIBUTE_ID 0x0022 // Ver.: always -#define ZCL_PHYSICAL_CONTACT_OCCUPIED_TO_UNOCCUPIED_DELAY_ATTRIBUTE_ID 0x0030 // Ver.: always -#define ZCL_PHYSICAL_CONTACT_UNOCCUPIED_TO_OCCUPIED_DELAY_ATTRIBUTE_ID 0x0031 // Ver.: always -#define ZCL_PHYSICAL_CONTACT_UNOCCUPIED_TO_OCCUPIED_THRESHOLD_ATTRIBUTE_ID 0x0032 // Ver.: always -#define ZCL_OCCUPANCY_SENSING_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_OCCUPANCY_SENSING_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Carbon Monoxide Concentration Measurement -// Cluster specification level: zcl-6.0-15-02018-001 +#define ZCL_OCCUPANCY_ATTRIBUTE_ID (0x0000) +#define ZCL_OCCUPANCY_SENSOR_TYPE_ATTRIBUTE_ID (0x0001) +#define ZCL_OCCUPANCY_SENSOR_TYPE_BITMAP_ATTRIBUTE_ID (0x0002) +#define ZCL_PIR_OCCUPIED_TO_UNOCCUPIED_DELAY_ATTRIBUTE_ID (0x0010) +#define ZCL_PIR_UNOCCUPIED_TO_OCCUPIED_DELAY_ATTRIBUTE_ID (0x0011) +#define ZCL_PIR_UNOCCUPIED_TO_OCCUPIED_THRESHOLD_ATTRIBUTE_ID (0x0012) +#define ZCL_ULTRASONIC_OCCUPIED_TO_UNOCCUPIED_DELAY_ATTRIBUTE_ID (0x0020) +#define ZCL_ULTRASONIC_UNOCCUPIED_TO_OCCUPIED_DELAY_ATTRIBUTE_ID (0x0021) +#define ZCL_ULTRASONIC_UNOCCUPIED_TO_OCCUPIED_THRESHOLD_ATTRIBUTE_ID (0x0022) +#define ZCL_PHYSICAL_CONTACT_OCCUPIED_TO_UNOCCUPIED_DELAY_ATTRIBUTE_ID (0x0030) +#define ZCL_PHYSICAL_CONTACT_UNOCCUPIED_TO_OCCUPIED_DELAY_ATTRIBUTE_ID (0x0031) +#define ZCL_PHYSICAL_CONTACT_UNOCCUPIED_TO_OCCUPIED_THRESHOLD_ATTRIBUTE_ID (0x0032) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Carbon Monoxide Concentration Measurement // Client attributes -#define ZCL_CARBON_MONOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_CARBON_MONOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_CARBON_MONOXIDE_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_CARBON_MONOXIDE_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_CARBON_MONOXIDE_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_CARBON_MONOXIDE_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_CARBON_MONOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_CARBON_MONOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Carbon Dioxide Concentration Measurement -// Cluster specification level: zcl-6.0-15-02018-001 +#define ZCL_CARBON_MONOXIDE_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID (0x0000) +#define ZCL_CARBON_MONOXIDE_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID (0x0001) +#define ZCL_CARBON_MONOXIDE_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID (0x0002) +#define ZCL_CARBON_MONOXIDE_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID (0x0003) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Carbon Dioxide Concentration Measurement // Client attributes -#define ZCL_CARBON_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_CARBON_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_CARBON_DIOXIDE_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_CARBON_DIOXIDE_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_CARBON_DIOXIDE_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_CARBON_DIOXIDE_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_CARBON_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_CARBON_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Ethylene Concentration Measurement -// Cluster specification level: zcl-6.0-15-02018-001 +#define ZCL_CARBON_DIOXIDE_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID (0x0000) +#define ZCL_CARBON_DIOXIDE_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID (0x0001) +#define ZCL_CARBON_DIOXIDE_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID (0x0002) +#define ZCL_CARBON_DIOXIDE_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID (0x0003) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Ethylene Concentration Measurement // Client attributes -#define ZCL_ETHYLENE_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_ETHYLENE_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_ETHYLENE_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_ETHYLENE_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_ETHYLENE_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_ETHYLENE_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_ETHYLENE_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_ETHYLENE_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Ethylene Oxide Concentration Measurement -// Cluster specification level: zcl-6.0-15-02018-001 +#define ZCL_ETHYLENE_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID (0x0000) +#define ZCL_ETHYLENE_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID (0x0001) +#define ZCL_ETHYLENE_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID (0x0002) +#define ZCL_ETHYLENE_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID (0x0003) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Ethylene Oxide Concentration Measurement // Client attributes -#define ZCL_ETHYLENE_OXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_ETHYLENE_OXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_ETHYLENE_OXIDE_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_ETHYLENE_OXIDE_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_ETHYLENE_OXIDE_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_ETHYLENE_OXIDE_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_ETHYLENE_OXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_ETHYLENE_OXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Hydrogen Concentration Measurement -// Cluster specification level: zcl-6.0-15-02018-001 +#define ZCL_ETHYLENE_OXIDE_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID (0x0000) +#define ZCL_ETHYLENE_OXIDE_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID (0x0001) +#define ZCL_ETHYLENE_OXIDE_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID (0x0002) +#define ZCL_ETHYLENE_OXIDE_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID (0x0003) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Hydrogen Concentration Measurement // Client attributes -#define ZCL_HYDROGEN_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_HYDROGEN_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_HYDROGEN_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_HYDROGEN_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_HYDROGEN_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_HYDROGEN_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_HYDROGEN_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_HYDROGEN_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Hydrogen Sulphide Concentration Measurement -// Cluster specification level: zcl-6.0-15-02018-001 +#define ZCL_HYDROGEN_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID (0x0000) +#define ZCL_HYDROGEN_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID (0x0001) +#define ZCL_HYDROGEN_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID (0x0002) +#define ZCL_HYDROGEN_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID (0x0003) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Hydrogen Sulphide Concentration Measurement // Client attributes -#define ZCL_HYDROGEN_SULPHIDE_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_HYDROGEN_SULPHIDE_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_HYDROGEN_SULPHIDE_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_HYDROGEN_SULPHIDE_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_HYDROGEN_SULPHIDE_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_HYDROGEN_SULPHIDE_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_HYDROGEN_SULPHIDE_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_HYDROGEN_SULPHIDE_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Nitric Oxide Concentration Measurement -// Cluster specification level: zcl-6.0-15-02018-001 +#define ZCL_HYDROGEN_SULPHIDE_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID (0x0000) +#define ZCL_HYDROGEN_SULPHIDE_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID (0x0001) +#define ZCL_HYDROGEN_SULPHIDE_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID (0x0002) +#define ZCL_HYDROGEN_SULPHIDE_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID (0x0003) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Nitric Oxide Concentration Measurement // Client attributes -#define ZCL_NITRIC_OXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_NITRIC_OXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_NITRIC_OXIDE_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_NITRIC_OXIDE_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_NITRIC_OXIDE_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_NITRIC_OXIDE_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_NITRIC_OXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_NITRIC_OXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Nitrogen Dioxide Concentration Measurement -// Cluster specification level: zcl-6.0-15-02018-001 +#define ZCL_NITRIC_OXIDE_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID (0x0000) +#define ZCL_NITRIC_OXIDE_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID (0x0001) +#define ZCL_NITRIC_OXIDE_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID (0x0002) +#define ZCL_NITRIC_OXIDE_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID (0x0003) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Nitrogen Dioxide Concentration Measurement // Client attributes -#define ZCL_NITROGEN_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_NITROGEN_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_NITROGEN_DIOXIDE_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_NITROGEN_DIOXIDE_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_NITROGEN_DIOXIDE_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_NITROGEN_DIOXIDE_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_NITROGEN_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_NITROGEN_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Oxygen Concentration Measurement -// Cluster specification level: zcl-6.0-15-02018-001 +#define ZCL_NITROGEN_DIOXIDE_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID (0x0000) +#define ZCL_NITROGEN_DIOXIDE_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID (0x0001) +#define ZCL_NITROGEN_DIOXIDE_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID (0x0002) +#define ZCL_NITROGEN_DIOXIDE_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID (0x0003) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Oxygen Concentration Measurement // Client attributes -#define ZCL_OXYGEN_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_OXYGEN_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_OXYGEN_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_OXYGEN_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_OXYGEN_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_OXYGEN_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_OXYGEN_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_OXYGEN_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_OXYGEN_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID (0x0000) +#define ZCL_OXYGEN_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID (0x0001) +#define ZCL_OXYGEN_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID (0x0002) +#define ZCL_OXYGEN_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID (0x0003) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) -// Attribute types for cluster: Ozone Concentration Measurement -// Cluster specification level: zcl-6.0-15-02018-001 +// Attribute ids for cluster: Ozone Concentration Measurement // Client attributes -#define ZCL_OZONE_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_OZONE_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_OZONE_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_OZONE_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_OZONE_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_OZONE_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_OZONE_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_OZONE_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_OZONE_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID (0x0000) +#define ZCL_OZONE_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID (0x0001) +#define ZCL_OZONE_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID (0x0002) +#define ZCL_OZONE_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID (0x0003) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) -// Attribute types for cluster: Sulfur Dioxide Concentration Measurement -// Cluster specification level: zcl-6.0-15-02018-001 +// Attribute ids for cluster: Sulfur Dioxide Concentration Measurement // Client attributes -#define ZCL_SULFUR_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_SULFUR_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_SULFUR_DIOXIDE_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_SULFUR_DIOXIDE_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_SULFUR_DIOXIDE_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_SULFUR_DIOXIDE_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_SULFUR_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_SULFUR_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Dissolved Oxygen Concentration Measurement -// Cluster specification level: zcl-6.0-15-02018-001 +#define ZCL_SULFUR_DIOXIDE_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID (0x0000) +#define ZCL_SULFUR_DIOXIDE_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID (0x0001) +#define ZCL_SULFUR_DIOXIDE_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID (0x0002) +#define ZCL_SULFUR_DIOXIDE_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID (0x0003) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Dissolved Oxygen Concentration Measurement // Client attributes -#define ZCL_DISSOLVED_OXYGEN_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_DISSOLVED_OXYGEN_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_DISSOLVED_OXYGEN_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_DISSOLVED_OXYGEN_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_DISSOLVED_OXYGEN_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_DISSOLVED_OXYGEN_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_DISSOLVED_OXYGEN_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_DISSOLVED_OXYGEN_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Bromate Concentration Measurement -// Cluster specification level: zcl-6.0-15-02018-001 +#define ZCL_DISSOLVED_OXYGEN_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID (0x0000) +#define ZCL_DISSOLVED_OXYGEN_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID (0x0001) +#define ZCL_DISSOLVED_OXYGEN_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID (0x0002) +#define ZCL_DISSOLVED_OXYGEN_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID (0x0003) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Bromate Concentration Measurement // Client attributes -#define ZCL_BROMATE_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_BROMATE_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_BROMATE_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_BROMATE_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_BROMATE_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_BROMATE_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_BROMATE_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_BROMATE_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Chloramines Concentration Measurement -// Cluster specification level: zcl-6.0-15-02018-001 +#define ZCL_BROMATE_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID (0x0000) +#define ZCL_BROMATE_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID (0x0001) +#define ZCL_BROMATE_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID (0x0002) +#define ZCL_BROMATE_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID (0x0003) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Chloramines Concentration Measurement // Client attributes -#define ZCL_CHLORAMINES_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_CHLORAMINES_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_CHLORAMINES_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_CHLORAMINES_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_CHLORAMINES_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_CHLORAMINES_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_CHLORAMINES_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_CHLORAMINES_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Chlorine Concentration Measurement -// Cluster specification level: zcl-6.0-15-02018-001 +#define ZCL_CHLORAMINES_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID (0x0000) +#define ZCL_CHLORAMINES_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID (0x0001) +#define ZCL_CHLORAMINES_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID (0x0002) +#define ZCL_CHLORAMINES_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID (0x0003) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Chlorine Concentration Measurement // Client attributes -#define ZCL_CHLORINE_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_CHLORINE_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_CHLORINE_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_CHLORINE_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_CHLORINE_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_CHLORINE_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_CHLORINE_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_CHLORINE_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Fecal coliform and E. Coli Concentration Measurement -// Cluster specification level: zcl-6.0-15-02018-001 +#define ZCL_CHLORINE_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID (0x0000) +#define ZCL_CHLORINE_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID (0x0001) +#define ZCL_CHLORINE_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID (0x0002) +#define ZCL_CHLORINE_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID (0x0003) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Fecal coliform and E. Coli Concentration Measurement // Client attributes -#define ZCL_FECAL_COLIFORM_AND_E_COLI_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_FECAL_COLIFORM_AND_E_COLI_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_FECAL_COLIFORM_AND_E_COLI_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_FECAL_COLIFORM_AND_E_COLI_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_FECAL_COLIFORM_AND_E_COLI_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_FECAL_COLIFORM_AND_E_COLI_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_FECAL_COLIFORM_AND_E_COLI_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_FECAL_COLIFORM_AND_E_COLI_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Fluoride Concentration Measurement -// Cluster specification level: zcl-6.0-15-02018-001 +#define ZCL_FECAL_COLIFORM_AND_E_COLI_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID (0x0000) +#define ZCL_FECAL_COLIFORM_AND_E_COLI_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID (0x0001) +#define ZCL_FECAL_COLIFORM_AND_E_COLI_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID (0x0002) +#define ZCL_FECAL_COLIFORM_AND_E_COLI_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID (0x0003) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Fluoride Concentration Measurement // Client attributes -#define ZCL_FLUORIDE_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_FLUORIDE_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_FLUORIDE_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_FLUORIDE_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_FLUORIDE_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_FLUORIDE_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_FLUORIDE_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_FLUORIDE_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Haloacetic Acids Concentration Measurement -// Cluster specification level: zcl-6.0-15-02018-001 +#define ZCL_FLUORIDE_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID (0x0000) +#define ZCL_FLUORIDE_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID (0x0001) +#define ZCL_FLUORIDE_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID (0x0002) +#define ZCL_FLUORIDE_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID (0x0003) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Haloacetic Acids Concentration Measurement // Client attributes -#define ZCL_HALOACETIC_ACIDS_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_HALOACETIC_ACIDS_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_HALOACETIC_ACIDS_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_HALOACETIC_ACIDS_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_HALOACETIC_ACIDS_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_HALOACETIC_ACIDS_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_HALOACETIC_ACIDS_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_HALOACETIC_ACIDS_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Total Trihalomethanes Concentration Measurement -// Cluster specification level: zcl-6.0-15-02018-001 +#define ZCL_HALOACETIC_ACIDS_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID (0x0000) +#define ZCL_HALOACETIC_ACIDS_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID (0x0001) +#define ZCL_HALOACETIC_ACIDS_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID (0x0002) +#define ZCL_HALOACETIC_ACIDS_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID (0x0003) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Total Trihalomethanes Concentration Measurement // Client attributes -#define ZCL_TOTAL_TRIHALOMETHANES_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_TOTAL_TRIHALOMETHANES_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_TOTAL_TRIHALOMETHANES_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_TOTAL_TRIHALOMETHANES_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_TOTAL_TRIHALOMETHANES_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_TOTAL_TRIHALOMETHANES_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_TOTAL_TRIHALOMETHANES_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_TOTAL_TRIHALOMETHANES_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Total Coliform Bacteria Concentration Measurement -// Cluster specification level: zcl-6.0-15-02018-001 +#define ZCL_TOTAL_TRIHALOMETHANES_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID (0x0000) +#define ZCL_TOTAL_TRIHALOMETHANES_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID (0x0001) +#define ZCL_TOTAL_TRIHALOMETHANES_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID (0x0002) +#define ZCL_TOTAL_TRIHALOMETHANES_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID (0x0003) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Total Coliform Bacteria Concentration Measurement // Client attributes -#define ZCL_TOTAL_COLIFORM_BACTERIA_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_TOTAL_COLIFORM_BACTERIA_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_TOTAL_COLIFORM_BACTERIA_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_TOTAL_COLIFORM_BACTERIA_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_TOTAL_COLIFORM_BACTERIA_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_TOTAL_COLIFORM_BACTERIA_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_TOTAL_COLIFORM_BACTERIA_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_TOTAL_COLIFORM_BACTERIA_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Turbidity Concentration Measurement -// Cluster specification level: zcl-6.0-15-02018-001 +#define ZCL_TOTAL_COLIFORM_BACTERIA_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID (0x0000) +#define ZCL_TOTAL_COLIFORM_BACTERIA_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID (0x0001) +#define ZCL_TOTAL_COLIFORM_BACTERIA_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID (0x0002) +#define ZCL_TOTAL_COLIFORM_BACTERIA_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID (0x0003) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Turbidity Concentration Measurement // Client attributes -#define ZCL_TURBIDITY_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_TURBIDITY_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_TURBIDITY_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_TURBIDITY_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_TURBIDITY_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_TURBIDITY_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_TURBIDITY_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_TURBIDITY_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Copper Concentration Measurement -// Cluster specification level: zcl-6.0-15-02018-001 +#define ZCL_TURBIDITY_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID (0x0000) +#define ZCL_TURBIDITY_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID (0x0001) +#define ZCL_TURBIDITY_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID (0x0002) +#define ZCL_TURBIDITY_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID (0x0003) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Copper Concentration Measurement // Client attributes -#define ZCL_COPPER_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_COPPER_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_COPPER_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_COPPER_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_COPPER_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_COPPER_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_COPPER_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_COPPER_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_COPPER_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID (0x0000) +#define ZCL_COPPER_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID (0x0001) +#define ZCL_COPPER_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID (0x0002) +#define ZCL_COPPER_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID (0x0003) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) -// Attribute types for cluster: Lead Concentration Measurement -// Cluster specification level: zcl-6.0-15-02018-001 +// Attribute ids for cluster: Lead Concentration Measurement // Client attributes -#define ZCL_LEAD_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_LEAD_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_LEAD_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_LEAD_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_LEAD_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_LEAD_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_LEAD_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_LEAD_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_LEAD_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID (0x0000) +#define ZCL_LEAD_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID (0x0001) +#define ZCL_LEAD_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID (0x0002) +#define ZCL_LEAD_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID (0x0003) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) -// Attribute types for cluster: Manganese Concentration Measurement -// Cluster specification level: zcl-6.0-15-02018-001 +// Attribute ids for cluster: Manganese Concentration Measurement // Client attributes -#define ZCL_MANGANESE_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_MANGANESE_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_MANGANESE_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_MANGANESE_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_MANGANESE_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_MANGANESE_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_MANGANESE_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_MANGANESE_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Sulfate Concentration Measurement -// Cluster specification level: zcl-6.0-15-02018-001 +#define ZCL_MANGANESE_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID (0x0000) +#define ZCL_MANGANESE_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID (0x0001) +#define ZCL_MANGANESE_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID (0x0002) +#define ZCL_MANGANESE_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID (0x0003) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Sulfate Concentration Measurement // Client attributes -#define ZCL_SULFATE_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_SULFATE_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_SULFATE_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_SULFATE_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_SULFATE_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_SULFATE_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_SULFATE_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_SULFATE_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Bromodichloromethane Concentration Measurement -// Cluster specification level: zcl-6.0-15-02018-001 +#define ZCL_SULFATE_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID (0x0000) +#define ZCL_SULFATE_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID (0x0001) +#define ZCL_SULFATE_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID (0x0002) +#define ZCL_SULFATE_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID (0x0003) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Bromodichloromethane Concentration Measurement // Client attributes -#define ZCL_BROMODICHLOROMETHANE_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_BROMODICHLOROMETHANE_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_BROMODICHLOROMETHANE_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_BROMODICHLOROMETHANE_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_BROMODICHLOROMETHANE_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_BROMODICHLOROMETHANE_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_BROMODICHLOROMETHANE_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_BROMODICHLOROMETHANE_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Bromoform Concentration Measurement -// Cluster specification level: zcl-6.0-15-02018-001 +#define ZCL_BROMODICHLOROMETHANE_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID (0x0000) +#define ZCL_BROMODICHLOROMETHANE_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID (0x0001) +#define ZCL_BROMODICHLOROMETHANE_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID (0x0002) +#define ZCL_BROMODICHLOROMETHANE_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID (0x0003) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Bromoform Concentration Measurement // Client attributes -#define ZCL_BROMOFORM_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_BROMOFORM_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_BROMOFORM_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_BROMOFORM_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_BROMOFORM_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_BROMOFORM_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_BROMOFORM_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_BROMOFORM_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Chlorodibromomethane Concentration Measurement -// Cluster specification level: zcl-6.0-15-02018-001 +#define ZCL_BROMOFORM_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID (0x0000) +#define ZCL_BROMOFORM_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID (0x0001) +#define ZCL_BROMOFORM_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID (0x0002) +#define ZCL_BROMOFORM_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID (0x0003) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Chlorodibromomethane Concentration Measurement // Client attributes -#define ZCL_CHLORODIBROMOMETHANE_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_CHLORODIBROMOMETHANE_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_CHLORODIBROMOMETHANE_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_CHLORODIBROMOMETHANE_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_CHLORODIBROMOMETHANE_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_CHLORODIBROMOMETHANE_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_CHLORODIBROMOMETHANE_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_CHLORODIBROMOMETHANE_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Chloroform Concentration Measurement -// Cluster specification level: zcl-6.0-15-02018-001 +#define ZCL_CHLORODIBROMOMETHANE_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID (0x0000) +#define ZCL_CHLORODIBROMOMETHANE_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID (0x0001) +#define ZCL_CHLORODIBROMOMETHANE_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID (0x0002) +#define ZCL_CHLORODIBROMOMETHANE_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID (0x0003) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Chloroform Concentration Measurement // Client attributes -#define ZCL_CHLOROFORM_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_CHLOROFORM_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_CHLOROFORM_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_CHLOROFORM_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_CHLOROFORM_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_CHLOROFORM_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_CHLOROFORM_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_CHLOROFORM_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Sodium Concentration Measurement -// Cluster specification level: zcl-6.0-15-02018-001 +#define ZCL_CHLOROFORM_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID (0x0000) +#define ZCL_CHLOROFORM_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID (0x0001) +#define ZCL_CHLOROFORM_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID (0x0002) +#define ZCL_CHLOROFORM_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID (0x0003) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Sodium Concentration Measurement // Client attributes -#define ZCL_SODIUM_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_SODIUM_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_SODIUM_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_SODIUM_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_SODIUM_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_SODIUM_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_SODIUM_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_SODIUM_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_SODIUM_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID (0x0000) +#define ZCL_SODIUM_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID (0x0001) +#define ZCL_SODIUM_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID (0x0002) +#define ZCL_SODIUM_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID (0x0003) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) -// Attribute types for cluster: IAS Zone -// Cluster specification level: zcl-6.0-15-02018-001 +// Attribute ids for cluster: IAS Zone // Client attributes -#define ZCL_IAS_ZONE_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_IAS_ZONE_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_ZONE_STATE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_ZONE_TYPE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_ZONE_STATUS_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_IAS_CIE_ADDRESS_ATTRIBUTE_ID 0x0010 // Ver.: always -#define ZCL_ZONE_ID_ATTRIBUTE_ID 0x0011 // Ver.: always -#define ZCL_NUMBER_OF_ZONE_SENSITIVITY_LEVELS_SUPPORTED_ATTRIBUTE_ID 0x0012 // Ver.: always -#define ZCL_CURRENT_ZONE_SENSITIVITY_LEVEL_ATTRIBUTE_ID 0x0013 // Ver.: always -#define ZCL_IAS_ZONE_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_IAS_ZONE_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: IAS ACE -// Cluster specification level: zcl-6.0-15-02018-001 +#define ZCL_ZONE_STATE_ATTRIBUTE_ID (0x0000) +#define ZCL_ZONE_TYPE_ATTRIBUTE_ID (0x0001) +#define ZCL_ZONE_STATUS_ATTRIBUTE_ID (0x0002) +#define ZCL_IAS_CIE_ADDRESS_ATTRIBUTE_ID (0x0010) +#define ZCL_ZONE_ID_ATTRIBUTE_ID (0x0011) +#define ZCL_NUMBER_OF_ZONE_SENSITIVITY_LEVELS_SUPPORTED_ATTRIBUTE_ID (0x0012) +#define ZCL_CURRENT_ZONE_SENSITIVITY_LEVEL_ATTRIBUTE_ID (0x0013) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: IAS ACE // Client attributes -#define ZCL_IAS_ACE_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_IAS_ACE_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_IAS_ACE_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_IAS_ACE_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) -// Attribute types for cluster: IAS WD -// Cluster specification level: zcl-6.0-15-02018-001 +// Attribute ids for cluster: IAS WD // Client attributes -#define ZCL_IAS_WD_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_IAS_WD_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_MAX_DURATION_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_IAS_WD_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_IAS_WD_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_MAX_DURATION_ATTRIBUTE_ID (0x0000) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) -// Attribute types for cluster: Generic Tunnel -// Cluster specification level: cba-1.0-05-3516-12 +// Attribute ids for cluster: Generic Tunnel // Client attributes -#define ZCL_GENERIC_TUNNEL_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_GENERIC_TUNNEL_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_MAXIMUM_INCOMING_TRANSFER_SIZE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_MAXIMUM_OUTGOING_TRANSFER_SIZE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_PROTOCOL_ADDRESS_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_GENERIC_TUNNEL_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_GENERIC_TUNNEL_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_MAXIMUM_INCOMING_TRANSFER_SIZE_ATTRIBUTE_ID (0x0001) +#define ZCL_MAXIMUM_OUTGOING_TRANSFER_SIZE_ATTRIBUTE_ID (0x0002) +#define ZCL_PROTOCOL_ADDRESS_ATTRIBUTE_ID (0x0003) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) -// Attribute types for cluster: BACnet Protocol Tunnel -// Cluster specification level: cba-1.0-05-3516-12 +// Attribute ids for cluster: BACnet Protocol Tunnel // Client attributes -#define ZCL_BACNET_PROTOCOL_TUNNEL_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_BACNET_PROTOCOL_TUNNEL_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_BACNET_PROTOCOL_TUNNEL_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_BACNET_PROTOCOL_TUNNEL_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) -// Attribute types for cluster: 11073 Protocol Tunnel -// Cluster specification level: hc-1.0-07-5360-15 +// Attribute ids for cluster: 11073 Protocol Tunnel // Client attributes -#define ZCL_11073_PROTOCOL_TUNNEL_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_11073_PROTOCOL_TUNNEL_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_DEVICE_ID_LIST_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_MANAGER_TARGET_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_MANAGER_ENDPOINT_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_CONNECTED_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_PREEMPTIBLE_ATTRIBUTE_ID 0x0004 // Ver.: always -#define ZCL_IDLE_TIMEOUT_ATTRIBUTE_ID 0x0005 // Ver.: always -#define ZCL_11073_PROTOCOL_TUNNEL_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_11073_PROTOCOL_TUNNEL_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: ISO 7816 Protocol Tunnel -// Cluster specification level: ta-1.0-07-5307-07 +#define ZCL_DEVICE_ID_LIST_ATTRIBUTE_ID (0x0000) +#define ZCL_MANAGER_TARGET_ATTRIBUTE_ID (0x0001) +#define ZCL_MANAGER_ENDPOINT_ATTRIBUTE_ID (0x0002) +#define ZCL_CONNECTED_ATTRIBUTE_ID (0x0003) +#define ZCL_PREEMPTIBLE_ATTRIBUTE_ID (0x0004) +#define ZCL_IDLE_TIMEOUT_ATTRIBUTE_ID (0x0005) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: ISO 7816 Protocol Tunnel // Client attributes -#define ZCL_ISO7816_PROTOCOL_TUNNEL_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_ISO7816_PROTOCOL_TUNNEL_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_ISO7816_PROTOCOL_TUNNEL_STATUS_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_ISO7816_PROTOCOL_TUNNEL_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_ISO7816_PROTOCOL_TUNNEL_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_ISO7816_PROTOCOL_TUNNEL_STATUS_ATTRIBUTE_ID (0x0000) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) -// Attribute types for cluster: Price -// Cluster specification level: se-1.2b-15-0131-02 +// Attribute ids for cluster: Price // Client attributes -#define ZCL_PRICE_INCREASE_RANDOMIZE_MINUTES_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_PRICE_DECREASE_RANDOMIZE_MINUTES_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_COMMODITY_TYPE_CLIENT_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_PRICE_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_PRICE_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_PRICE_INCREASE_RANDOMIZE_MINUTES_ATTRIBUTE_ID (0x0000) +#define ZCL_PRICE_DECREASE_RANDOMIZE_MINUTES_ATTRIBUTE_ID (0x0001) +#define ZCL_COMMODITY_TYPE_CLIENT_ATTRIBUTE_ID (0x0002) +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_TIER1_PRICE_LABEL_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_TIER2_PRICE_LABEL_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_TIER3_PRICE_LABEL_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_TIER4_PRICE_LABEL_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_TIER5_PRICE_LABEL_ATTRIBUTE_ID 0x0004 // Ver.: always -#define ZCL_TIER6_PRICE_LABEL_ATTRIBUTE_ID 0x0005 // Ver.: always -#define ZCL_TIER7_PRICE_LABEL_ATTRIBUTE_ID 0x0006 // Ver.: always -#define ZCL_TIER8_PRICE_LABEL_ATTRIBUTE_ID 0x0007 // Ver.: always -#define ZCL_TIER9_PRICE_LABEL_ATTRIBUTE_ID 0x0008 // Ver.: always -#define ZCL_TIER10_PRICE_LABEL_ATTRIBUTE_ID 0x0009 // Ver.: always -#define ZCL_TIER11_PRICE_LABEL_ATTRIBUTE_ID 0x000A // Ver.: always -#define ZCL_TIER12_PRICE_LABEL_ATTRIBUTE_ID 0x000B // Ver.: always -#define ZCL_TIER13_PRICE_LABEL_ATTRIBUTE_ID 0x000C // Ver.: always -#define ZCL_TIER14_PRICE_LABEL_ATTRIBUTE_ID 0x000D // Ver.: always -#define ZCL_TIER15_PRICE_LABEL_ATTRIBUTE_ID 0x000E // Ver.: always -#define ZCL_TIER16_PRICE_LABEL_ATTRIBUTE_ID 0x000F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER17_PRICE_LABEL_ATTRIBUTE_ID 0x0010 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER18_PRICE_LABEL_ATTRIBUTE_ID 0x0011 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER19_PRICE_LABEL_ATTRIBUTE_ID 0x0012 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER20_PRICE_LABEL_ATTRIBUTE_ID 0x0013 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER21_PRICE_LABEL_ATTRIBUTE_ID 0x0014 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER22_PRICE_LABEL_ATTRIBUTE_ID 0x0015 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER23_PRICE_LABEL_ATTRIBUTE_ID 0x0016 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER24_PRICE_LABEL_ATTRIBUTE_ID 0x0017 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER25_PRICE_LABEL_ATTRIBUTE_ID 0x0018 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER26_PRICE_LABEL_ATTRIBUTE_ID 0x0019 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER27_PRICE_LABEL_ATTRIBUTE_ID 0x001A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER28_PRICE_LABEL_ATTRIBUTE_ID 0x001B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER29_PRICE_LABEL_ATTRIBUTE_ID 0x001C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER30_PRICE_LABEL_ATTRIBUTE_ID 0x001D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER31_PRICE_LABEL_ATTRIBUTE_ID 0x001E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER32_PRICE_LABEL_ATTRIBUTE_ID 0x001F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER33_PRICE_LABEL_ATTRIBUTE_ID 0x0020 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER34_PRICE_LABEL_ATTRIBUTE_ID 0x0021 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER35_PRICE_LABEL_ATTRIBUTE_ID 0x0022 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER36_PRICE_LABEL_ATTRIBUTE_ID 0x0023 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER37_PRICE_LABEL_ATTRIBUTE_ID 0x0024 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER38_PRICE_LABEL_ATTRIBUTE_ID 0x0025 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER39_PRICE_LABEL_ATTRIBUTE_ID 0x0026 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER40_PRICE_LABEL_ATTRIBUTE_ID 0x0027 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER41_PRICE_LABEL_ATTRIBUTE_ID 0x0028 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER42_PRICE_LABEL_ATTRIBUTE_ID 0x0029 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER43_PRICE_LABEL_ATTRIBUTE_ID 0x002A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER44_PRICE_LABEL_ATTRIBUTE_ID 0x002B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER45_PRICE_LABEL_ATTRIBUTE_ID 0x002C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER46_PRICE_LABEL_ATTRIBUTE_ID 0x002D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER47_PRICE_LABEL_ATTRIBUTE_ID 0x002E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER48_PRICE_LABEL_ATTRIBUTE_ID 0x002F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_BLOCK1_THRESHOLD_ATTRIBUTE_ID 0x0100 // Ver.: always -#define ZCL_BLOCK2_THRESHOLD_ATTRIBUTE_ID 0x0101 // Ver.: always -#define ZCL_BLOCK3_THRESHOLD_ATTRIBUTE_ID 0x0102 // Ver.: always -#define ZCL_BLOCK4_THRESHOLD_ATTRIBUTE_ID 0x0103 // Ver.: always -#define ZCL_BLOCK5_THRESHOLD_ATTRIBUTE_ID 0x0104 // Ver.: always -#define ZCL_BLOCK6_THRESHOLD_ATTRIBUTE_ID 0x0105 // Ver.: always -#define ZCL_BLOCK7_THRESHOLD_ATTRIBUTE_ID 0x0106 // Ver.: always -#define ZCL_BLOCK8_THRESHOLD_ATTRIBUTE_ID 0x0107 // Ver.: always -#define ZCL_BLOCK9_THRESHOLD_ATTRIBUTE_ID 0x0108 // Ver.: always -#define ZCL_BLOCK10_THRESHOLD_ATTRIBUTE_ID 0x0109 // Ver.: always -#define ZCL_BLOCK11_THRESHOLD_ATTRIBUTE_ID 0x010A // Ver.: always -#define ZCL_BLOCK12_THRESHOLD_ATTRIBUTE_ID 0x010B // Ver.: always -#define ZCL_BLOCK13_THRESHOLD_ATTRIBUTE_ID 0x010C // Ver.: always -#define ZCL_BLOCK14_THRESHOLD_ATTRIBUTE_ID 0x010D // Ver.: always -#define ZCL_BLOCK15_THRESHOLD_ATTRIBUTE_ID 0x010E // Ver.: always -#define ZCL_BLOCK_THRESHOLD_COUNT_ATTRIBUTE_ID 0x010F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER1_BLOCK1_THRESHOLD_ATTRIBUTE_ID 0x0110 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER1_BLOCK2_THRESHOLD_ATTRIBUTE_ID 0x0111 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER1_BLOCK3_THRESHOLD_ATTRIBUTE_ID 0x0112 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER1_BLOCK4_THRESHOLD_ATTRIBUTE_ID 0x0113 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER1_BLOCK5_THRESHOLD_ATTRIBUTE_ID 0x0114 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER1_BLOCK6_THRESHOLD_ATTRIBUTE_ID 0x0115 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER1_BLOCK7_THRESHOLD_ATTRIBUTE_ID 0x0116 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER1_BLOCK8_THRESHOLD_ATTRIBUTE_ID 0x0117 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER1_BLOCK9_THRESHOLD_ATTRIBUTE_ID 0x0118 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER1_BLOCK10_THRESHOLD_ATTRIBUTE_ID 0x0119 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER1_BLOCK11_THRESHOLD_ATTRIBUTE_ID 0x011A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER1_BLOCK12_THRESHOLD_ATTRIBUTE_ID 0x011B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER1_BLOCK13_THRESHOLD_ATTRIBUTE_ID 0x011C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER1_BLOCK14_THRESHOLD_ATTRIBUTE_ID 0x011D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER1_BLOCK15_THRESHOLD_ATTRIBUTE_ID 0x011E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER1_BLOCK_THRESHOLD_COUNT_ATTRIBUTE_ID 0x011F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER2_BLOCK1_THRESHOLD_ATTRIBUTE_ID 0x0120 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER2_BLOCK2_THRESHOLD_ATTRIBUTE_ID 0x0121 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER2_BLOCK3_THRESHOLD_ATTRIBUTE_ID 0x0122 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER2_BLOCK4_THRESHOLD_ATTRIBUTE_ID 0x0123 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER2_BLOCK5_THRESHOLD_ATTRIBUTE_ID 0x0124 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER2_BLOCK6_THRESHOLD_ATTRIBUTE_ID 0x0125 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER2_BLOCK7_THRESHOLD_ATTRIBUTE_ID 0x0126 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER2_BLOCK8_THRESHOLD_ATTRIBUTE_ID 0x0127 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER2_BLOCK9_THRESHOLD_ATTRIBUTE_ID 0x0128 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER2_BLOCK10_THRESHOLD_ATTRIBUTE_ID 0x0129 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER2_BLOCK11_THRESHOLD_ATTRIBUTE_ID 0x012A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER2_BLOCK12_THRESHOLD_ATTRIBUTE_ID 0x012B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER2_BLOCK13_THRESHOLD_ATTRIBUTE_ID 0x012C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER2_BLOCK14_THRESHOLD_ATTRIBUTE_ID 0x012D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER2_BLOCK15_THRESHOLD_ATTRIBUTE_ID 0x012E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER2_BLOCK_THRESHOLD_COUNT_ATTRIBUTE_ID 0x012F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER3_BLOCK1_THRESHOLD_ATTRIBUTE_ID 0x0130 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER3_BLOCK2_THRESHOLD_ATTRIBUTE_ID 0x0131 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER3_BLOCK3_THRESHOLD_ATTRIBUTE_ID 0x0132 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER3_BLOCK4_THRESHOLD_ATTRIBUTE_ID 0x0133 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER3_BLOCK5_THRESHOLD_ATTRIBUTE_ID 0x0134 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER3_BLOCK6_THRESHOLD_ATTRIBUTE_ID 0x0135 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER3_BLOCK7_THRESHOLD_ATTRIBUTE_ID 0x0136 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER3_BLOCK8_THRESHOLD_ATTRIBUTE_ID 0x0137 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER3_BLOCK9_THRESHOLD_ATTRIBUTE_ID 0x0138 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER3_BLOCK10_THRESHOLD_ATTRIBUTE_ID 0x0139 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER3_BLOCK11_THRESHOLD_ATTRIBUTE_ID 0x013A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER3_BLOCK12_THRESHOLD_ATTRIBUTE_ID 0x013B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER3_BLOCK13_THRESHOLD_ATTRIBUTE_ID 0x013C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER3_BLOCK14_THRESHOLD_ATTRIBUTE_ID 0x013D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER3_BLOCK15_THRESHOLD_ATTRIBUTE_ID 0x013E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER3_BLOCK_THRESHOLD_COUNT_ATTRIBUTE_ID 0x013F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER4_BLOCK1_THRESHOLD_ATTRIBUTE_ID 0x0140 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER4_BLOCK2_THRESHOLD_ATTRIBUTE_ID 0x0141 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER4_BLOCK3_THRESHOLD_ATTRIBUTE_ID 0x0142 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER4_BLOCK4_THRESHOLD_ATTRIBUTE_ID 0x0143 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER4_BLOCK5_THRESHOLD_ATTRIBUTE_ID 0x0144 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER4_BLOCK6_THRESHOLD_ATTRIBUTE_ID 0x0145 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER4_BLOCK7_THRESHOLD_ATTRIBUTE_ID 0x0146 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER4_BLOCK8_THRESHOLD_ATTRIBUTE_ID 0x0147 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER4_BLOCK9_THRESHOLD_ATTRIBUTE_ID 0x0148 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER4_BLOCK10_THRESHOLD_ATTRIBUTE_ID 0x0149 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER4_BLOCK11_THRESHOLD_ATTRIBUTE_ID 0x014A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER4_BLOCK12_THRESHOLD_ATTRIBUTE_ID 0x014B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER4_BLOCK13_THRESHOLD_ATTRIBUTE_ID 0x014C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER4_BLOCK14_THRESHOLD_ATTRIBUTE_ID 0x014D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER4_BLOCK15_THRESHOLD_ATTRIBUTE_ID 0x014E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER4_BLOCK_THRESHOLD_COUNT_ATTRIBUTE_ID 0x014F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER5_BLOCK1_THRESHOLD_ATTRIBUTE_ID 0x0150 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER5_BLOCK2_THRESHOLD_ATTRIBUTE_ID 0x0151 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER5_BLOCK3_THRESHOLD_ATTRIBUTE_ID 0x0152 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER5_BLOCK4_THRESHOLD_ATTRIBUTE_ID 0x0153 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER5_BLOCK5_THRESHOLD_ATTRIBUTE_ID 0x0154 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER5_BLOCK6_THRESHOLD_ATTRIBUTE_ID 0x0155 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER5_BLOCK7_THRESHOLD_ATTRIBUTE_ID 0x0156 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER5_BLOCK8_THRESHOLD_ATTRIBUTE_ID 0x0157 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER5_BLOCK9_THRESHOLD_ATTRIBUTE_ID 0x0158 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER5_BLOCK10_THRESHOLD_ATTRIBUTE_ID 0x0159 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER5_BLOCK11_THRESHOLD_ATTRIBUTE_ID 0x015A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER5_BLOCK12_THRESHOLD_ATTRIBUTE_ID 0x015B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER5_BLOCK13_THRESHOLD_ATTRIBUTE_ID 0x015C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER5_BLOCK14_THRESHOLD_ATTRIBUTE_ID 0x015D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER5_BLOCK15_THRESHOLD_ATTRIBUTE_ID 0x015E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER5_BLOCK_THRESHOLD_COUNT_ATTRIBUTE_ID 0x015F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER6_BLOCK1_THRESHOLD_ATTRIBUTE_ID 0x0160 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER6_BLOCK2_THRESHOLD_ATTRIBUTE_ID 0x0161 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER6_BLOCK3_THRESHOLD_ATTRIBUTE_ID 0x0162 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER6_BLOCK4_THRESHOLD_ATTRIBUTE_ID 0x0163 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER6_BLOCK5_THRESHOLD_ATTRIBUTE_ID 0x0164 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER6_BLOCK6_THRESHOLD_ATTRIBUTE_ID 0x0165 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER6_BLOCK7_THRESHOLD_ATTRIBUTE_ID 0x0166 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER6_BLOCK8_THRESHOLD_ATTRIBUTE_ID 0x0167 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER6_BLOCK9_THRESHOLD_ATTRIBUTE_ID 0x0168 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER6_BLOCK10_THRESHOLD_ATTRIBUTE_ID 0x0169 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER6_BLOCK11_THRESHOLD_ATTRIBUTE_ID 0x016A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER6_BLOCK12_THRESHOLD_ATTRIBUTE_ID 0x016B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER6_BLOCK13_THRESHOLD_ATTRIBUTE_ID 0x016C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER6_BLOCK14_THRESHOLD_ATTRIBUTE_ID 0x016D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER6_BLOCK15_THRESHOLD_ATTRIBUTE_ID 0x016E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER6_BLOCK_THRESHOLD_COUNT_ATTRIBUTE_ID 0x016F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER7_BLOCK1_THRESHOLD_ATTRIBUTE_ID 0x0170 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER7_BLOCK2_THRESHOLD_ATTRIBUTE_ID 0x0171 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER7_BLOCK3_THRESHOLD_ATTRIBUTE_ID 0x0172 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER7_BLOCK4_THRESHOLD_ATTRIBUTE_ID 0x0173 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER7_BLOCK5_THRESHOLD_ATTRIBUTE_ID 0x0174 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER7_BLOCK6_THRESHOLD_ATTRIBUTE_ID 0x0175 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER7_BLOCK7_THRESHOLD_ATTRIBUTE_ID 0x0176 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER7_BLOCK8_THRESHOLD_ATTRIBUTE_ID 0x0177 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER7_BLOCK9_THRESHOLD_ATTRIBUTE_ID 0x0178 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER7_BLOCK10_THRESHOLD_ATTRIBUTE_ID 0x0179 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER7_BLOCK11_THRESHOLD_ATTRIBUTE_ID 0x017A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER7_BLOCK12_THRESHOLD_ATTRIBUTE_ID 0x017B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER7_BLOCK13_THRESHOLD_ATTRIBUTE_ID 0x017C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER7_BLOCK14_THRESHOLD_ATTRIBUTE_ID 0x017D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER7_BLOCK15_THRESHOLD_ATTRIBUTE_ID 0x017E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER7_BLOCK_THRESHOLD_COUNT_ATTRIBUTE_ID 0x017F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER8_BLOCK1_THRESHOLD_ATTRIBUTE_ID 0x0180 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER8_BLOCK2_THRESHOLD_ATTRIBUTE_ID 0x0181 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER8_BLOCK3_THRESHOLD_ATTRIBUTE_ID 0x0182 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER8_BLOCK4_THRESHOLD_ATTRIBUTE_ID 0x0183 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER8_BLOCK5_THRESHOLD_ATTRIBUTE_ID 0x0184 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER8_BLOCK6_THRESHOLD_ATTRIBUTE_ID 0x0185 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER8_BLOCK7_THRESHOLD_ATTRIBUTE_ID 0x0186 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER8_BLOCK8_THRESHOLD_ATTRIBUTE_ID 0x0187 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER8_BLOCK9_THRESHOLD_ATTRIBUTE_ID 0x0188 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER8_BLOCK10_THRESHOLD_ATTRIBUTE_ID 0x0189 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER8_BLOCK11_THRESHOLD_ATTRIBUTE_ID 0x018A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER8_BLOCK12_THRESHOLD_ATTRIBUTE_ID 0x018B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER8_BLOCK13_THRESHOLD_ATTRIBUTE_ID 0x018C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER8_BLOCK14_THRESHOLD_ATTRIBUTE_ID 0x018D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER8_BLOCK15_THRESHOLD_ATTRIBUTE_ID 0x018E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER8_BLOCK_THRESHOLD_COUNT_ATTRIBUTE_ID 0x018F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER9_BLOCK1_THRESHOLD_ATTRIBUTE_ID 0x0190 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER9_BLOCK2_THRESHOLD_ATTRIBUTE_ID 0x0191 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER9_BLOCK3_THRESHOLD_ATTRIBUTE_ID 0x0192 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER9_BLOCK4_THRESHOLD_ATTRIBUTE_ID 0x0193 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER9_BLOCK5_THRESHOLD_ATTRIBUTE_ID 0x0194 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER9_BLOCK6_THRESHOLD_ATTRIBUTE_ID 0x0195 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER9_BLOCK7_THRESHOLD_ATTRIBUTE_ID 0x0196 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER9_BLOCK8_THRESHOLD_ATTRIBUTE_ID 0x0197 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER9_BLOCK9_THRESHOLD_ATTRIBUTE_ID 0x0198 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER9_BLOCK10_THRESHOLD_ATTRIBUTE_ID 0x0199 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER9_BLOCK11_THRESHOLD_ATTRIBUTE_ID 0x019A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER9_BLOCK12_THRESHOLD_ATTRIBUTE_ID 0x019B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER9_BLOCK13_THRESHOLD_ATTRIBUTE_ID 0x019C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER9_BLOCK14_THRESHOLD_ATTRIBUTE_ID 0x019D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER9_BLOCK15_THRESHOLD_ATTRIBUTE_ID 0x019E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER9_BLOCK_THRESHOLD_COUNT_ATTRIBUTE_ID 0x019F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER10_BLOCK1_THRESHOLD_ATTRIBUTE_ID 0x01A0 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER10_BLOCK2_THRESHOLD_ATTRIBUTE_ID 0x01A1 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER10_BLOCK3_THRESHOLD_ATTRIBUTE_ID 0x01A2 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER10_BLOCK4_THRESHOLD_ATTRIBUTE_ID 0x01A3 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER10_BLOCK5_THRESHOLD_ATTRIBUTE_ID 0x01A4 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER10_BLOCK6_THRESHOLD_ATTRIBUTE_ID 0x01A5 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER10_BLOCK7_THRESHOLD_ATTRIBUTE_ID 0x01A6 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER10_BLOCK8_THRESHOLD_ATTRIBUTE_ID 0x01A7 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER10_BLOCK9_THRESHOLD_ATTRIBUTE_ID 0x01A8 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER10_BLOCK10_THRESHOLD_ATTRIBUTE_ID 0x01A9 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER10_BLOCK11_THRESHOLD_ATTRIBUTE_ID 0x01AA // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER10_BLOCK12_THRESHOLD_ATTRIBUTE_ID 0x01AB // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER10_BLOCK13_THRESHOLD_ATTRIBUTE_ID 0x01AC // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER10_BLOCK14_THRESHOLD_ATTRIBUTE_ID 0x01AD // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER10_BLOCK15_THRESHOLD_ATTRIBUTE_ID 0x01AE // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER10_BLOCK_THRESHOLD_COUNT_ATTRIBUTE_ID 0x01AF // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER11_BLOCK1_THRESHOLD_ATTRIBUTE_ID 0x01B0 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER11_BLOCK2_THRESHOLD_ATTRIBUTE_ID 0x01B1 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER11_BLOCK3_THRESHOLD_ATTRIBUTE_ID 0x01B2 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER11_BLOCK4_THRESHOLD_ATTRIBUTE_ID 0x01B3 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER11_BLOCK5_THRESHOLD_ATTRIBUTE_ID 0x01B4 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER11_BLOCK6_THRESHOLD_ATTRIBUTE_ID 0x01B5 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER11_BLOCK7_THRESHOLD_ATTRIBUTE_ID 0x01B6 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER11_BLOCK8_THRESHOLD_ATTRIBUTE_ID 0x01B7 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER11_BLOCK9_THRESHOLD_ATTRIBUTE_ID 0x01B8 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER11_BLOCK10_THRESHOLD_ATTRIBUTE_ID 0x01B9 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER11_BLOCK11_THRESHOLD_ATTRIBUTE_ID 0x01BA // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER11_BLOCK12_THRESHOLD_ATTRIBUTE_ID 0x01BB // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER11_BLOCK13_THRESHOLD_ATTRIBUTE_ID 0x01BC // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER11_BLOCK14_THRESHOLD_ATTRIBUTE_ID 0x01BD // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER11_BLOCK15_THRESHOLD_ATTRIBUTE_ID 0x01BE // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER11_BLOCK_THRESHOLD_COUNT_ATTRIBUTE_ID 0x01BF // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER12_BLOCK1_THRESHOLD_ATTRIBUTE_ID 0x01C0 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER12_BLOCK2_THRESHOLD_ATTRIBUTE_ID 0x01C1 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER12_BLOCK3_THRESHOLD_ATTRIBUTE_ID 0x01C2 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER12_BLOCK4_THRESHOLD_ATTRIBUTE_ID 0x01C3 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER12_BLOCK5_THRESHOLD_ATTRIBUTE_ID 0x01C4 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER12_BLOCK6_THRESHOLD_ATTRIBUTE_ID 0x01C5 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER12_BLOCK7_THRESHOLD_ATTRIBUTE_ID 0x01C6 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER12_BLOCK8_THRESHOLD_ATTRIBUTE_ID 0x01C7 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER12_BLOCK9_THRESHOLD_ATTRIBUTE_ID 0x01C8 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER12_BLOCK10_THRESHOLD_ATTRIBUTE_ID 0x01C9 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER12_BLOCK11_THRESHOLD_ATTRIBUTE_ID 0x01CA // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER12_BLOCK12_THRESHOLD_ATTRIBUTE_ID 0x01CB // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER12_BLOCK13_THRESHOLD_ATTRIBUTE_ID 0x01CC // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER12_BLOCK14_THRESHOLD_ATTRIBUTE_ID 0x01CD // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER12_BLOCK15_THRESHOLD_ATTRIBUTE_ID 0x01CE // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER12_BLOCK_THRESHOLD_COUNT_ATTRIBUTE_ID 0x01CF // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER13_BLOCK1_THRESHOLD_ATTRIBUTE_ID 0x01D0 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER13_BLOCK2_THRESHOLD_ATTRIBUTE_ID 0x01D1 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER13_BLOCK3_THRESHOLD_ATTRIBUTE_ID 0x01D2 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER13_BLOCK4_THRESHOLD_ATTRIBUTE_ID 0x01D3 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER13_BLOCK5_THRESHOLD_ATTRIBUTE_ID 0x01D4 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER13_BLOCK6_THRESHOLD_ATTRIBUTE_ID 0x01D5 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER13_BLOCK7_THRESHOLD_ATTRIBUTE_ID 0x01D6 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER13_BLOCK8_THRESHOLD_ATTRIBUTE_ID 0x01D7 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER13_BLOCK9_THRESHOLD_ATTRIBUTE_ID 0x01D8 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER13_BLOCK10_THRESHOLD_ATTRIBUTE_ID 0x01D9 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER13_BLOCK11_THRESHOLD_ATTRIBUTE_ID 0x01DA // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER13_BLOCK12_THRESHOLD_ATTRIBUTE_ID 0x01DB // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER13_BLOCK13_THRESHOLD_ATTRIBUTE_ID 0x01DC // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER13_BLOCK14_THRESHOLD_ATTRIBUTE_ID 0x01DD // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER13_BLOCK15_THRESHOLD_ATTRIBUTE_ID 0x01DE // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER13_BLOCK_THRESHOLD_COUNT_ATTRIBUTE_ID 0x01DF // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER14_BLOCK1_THRESHOLD_ATTRIBUTE_ID 0x01E0 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER14_BLOCK2_THRESHOLD_ATTRIBUTE_ID 0x01E1 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER14_BLOCK3_THRESHOLD_ATTRIBUTE_ID 0x01E2 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER14_BLOCK4_THRESHOLD_ATTRIBUTE_ID 0x01E3 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER14_BLOCK5_THRESHOLD_ATTRIBUTE_ID 0x01E4 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER14_BLOCK6_THRESHOLD_ATTRIBUTE_ID 0x01E5 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER14_BLOCK7_THRESHOLD_ATTRIBUTE_ID 0x01E6 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER14_BLOCK8_THRESHOLD_ATTRIBUTE_ID 0x01E7 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER14_BLOCK9_THRESHOLD_ATTRIBUTE_ID 0x01E8 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER14_BLOCK10_THRESHOLD_ATTRIBUTE_ID 0x01E9 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER14_BLOCK11_THRESHOLD_ATTRIBUTE_ID 0x01EA // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER14_BLOCK12_THRESHOLD_ATTRIBUTE_ID 0x01EB // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER14_BLOCK13_THRESHOLD_ATTRIBUTE_ID 0x01EC // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER14_BLOCK14_THRESHOLD_ATTRIBUTE_ID 0x01ED // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER14_BLOCK15_THRESHOLD_ATTRIBUTE_ID 0x01EE // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER14_BLOCK_THRESHOLD_COUNT_ATTRIBUTE_ID 0x01EF // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER15_BLOCK1_THRESHOLD_ATTRIBUTE_ID 0x01F0 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER15_BLOCK2_THRESHOLD_ATTRIBUTE_ID 0x01F1 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER15_BLOCK3_THRESHOLD_ATTRIBUTE_ID 0x01F2 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER15_BLOCK4_THRESHOLD_ATTRIBUTE_ID 0x01F3 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER15_BLOCK5_THRESHOLD_ATTRIBUTE_ID 0x01F4 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER15_BLOCK6_THRESHOLD_ATTRIBUTE_ID 0x01F5 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER15_BLOCK7_THRESHOLD_ATTRIBUTE_ID 0x01F6 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER15_BLOCK8_THRESHOLD_ATTRIBUTE_ID 0x01F7 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER15_BLOCK9_THRESHOLD_ATTRIBUTE_ID 0x01F8 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER15_BLOCK10_THRESHOLD_ATTRIBUTE_ID 0x01F9 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER15_BLOCK11_THRESHOLD_ATTRIBUTE_ID 0x01FA // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER15_BLOCK12_THRESHOLD_ATTRIBUTE_ID 0x01FB // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER15_BLOCK13_THRESHOLD_ATTRIBUTE_ID 0x01FC // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER15_BLOCK14_THRESHOLD_ATTRIBUTE_ID 0x01FD // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER15_BLOCK15_THRESHOLD_ATTRIBUTE_ID 0x01FE // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER15_BLOCK_THRESHOLD_COUNT_ATTRIBUTE_ID 0x01FF // Ver.: since se-1.2a-07-5356-19 -#define ZCL_START_OF_BLOCK_PERIOD_ATTRIBUTE_ID 0x0200 // Ver.: always -#define ZCL_BLOCK_PERIOD_DURATION_MINUTES_ATTRIBUTE_ID 0x0201 // Ver.: always -#define ZCL_THRESHOLD_MULTIPLIER_ATTRIBUTE_ID 0x0202 // Ver.: always -#define ZCL_THRESHOLD_DIVISOR_ATTRIBUTE_ID 0x0203 // Ver.: always -#define ZCL_BLOCK_PERIOD_DURATION_TYPE_ATTRIBUTE_ID 0x0204 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_COMMODITY_TYPE_SERVER_ATTRIBUTE_ID 0x0300 // Ver.: always -#define ZCL_STANDING_CHARGE_ATTRIBUTE_ID 0x0301 // Ver.: always -#define ZCL_CONVERSION_FACTOR_ATTRIBUTE_ID 0x0302 // Ver.: since se-1.1a-07-5356-17 -#define ZCL_CONVERSION_FACTOR_TRAILING_DIGIT_ATTRIBUTE_ID 0x0303 // Ver.: since se-1.1a-07-5356-17 -#define ZCL_CALORIFIC_VALUE_ATTRIBUTE_ID 0x0304 // Ver.: since se-1.1a-07-5356-17 -#define ZCL_CALORIFIC_VALUE_UNIT_ATTRIBUTE_ID 0x0305 // Ver.: since se-1.1a-07-5356-17 -#define ZCL_CALORIFIC_VALUE_TRAILING_DIGIT_ATTRIBUTE_ID 0x0306 // Ver.: since se-1.1a-07-5356-17 -#define ZCL_NO_TIER_BLOCK1_PRICE_ATTRIBUTE_ID 0x0400 // Ver.: always -#define ZCL_NO_TIER_BLOCK2_PRICE_ATTRIBUTE_ID 0x0401 // Ver.: always -#define ZCL_NO_TIER_BLOCK3_PRICE_ATTRIBUTE_ID 0x0402 // Ver.: always -#define ZCL_NO_TIER_BLOCK4_PRICE_ATTRIBUTE_ID 0x0403 // Ver.: always -#define ZCL_NO_TIER_BLOCK5_PRICE_ATTRIBUTE_ID 0x0404 // Ver.: always -#define ZCL_NO_TIER_BLOCK6_PRICE_ATTRIBUTE_ID 0x0405 // Ver.: always -#define ZCL_NO_TIER_BLOCK7_PRICE_ATTRIBUTE_ID 0x0406 // Ver.: always -#define ZCL_NO_TIER_BLOCK8_PRICE_ATTRIBUTE_ID 0x0407 // Ver.: always -#define ZCL_NO_TIER_BLOCK9_PRICE_ATTRIBUTE_ID 0x0408 // Ver.: always -#define ZCL_NO_TIER_BLOCK10_PRICE_ATTRIBUTE_ID 0x0409 // Ver.: always -#define ZCL_NO_TIER_BLOCK11_PRICE_ATTRIBUTE_ID 0x040A // Ver.: always -#define ZCL_NO_TIER_BLOCK12_PRICE_ATTRIBUTE_ID 0x040B // Ver.: always -#define ZCL_NO_TIER_BLOCK13_PRICE_ATTRIBUTE_ID 0x040C // Ver.: always -#define ZCL_NO_TIER_BLOCK14_PRICE_ATTRIBUTE_ID 0x040D // Ver.: always -#define ZCL_NO_TIER_BLOCK15_PRICE_ATTRIBUTE_ID 0x040E // Ver.: always -#define ZCL_NO_TIER_BLOCK16_PRICE_ATTRIBUTE_ID 0x040F // Ver.: always -#define ZCL_TIER1_BLOCK1_PRICE_ATTRIBUTE_ID 0x0410 // Ver.: always -#define ZCL_TIER1_BLOCK2_PRICE_ATTRIBUTE_ID 0x0411 // Ver.: always -#define ZCL_TIER1_BLOCK3_PRICE_ATTRIBUTE_ID 0x0412 // Ver.: always -#define ZCL_TIER1_BLOCK4_PRICE_ATTRIBUTE_ID 0x0413 // Ver.: always -#define ZCL_TIER1_BLOCK5_PRICE_ATTRIBUTE_ID 0x0414 // Ver.: always -#define ZCL_TIER1_BLOCK6_PRICE_ATTRIBUTE_ID 0x0415 // Ver.: always -#define ZCL_TIER1_BLOCK7_PRICE_ATTRIBUTE_ID 0x0416 // Ver.: always -#define ZCL_TIER1_BLOCK8_PRICE_ATTRIBUTE_ID 0x0417 // Ver.: always -#define ZCL_TIER1_BLOCK9_PRICE_ATTRIBUTE_ID 0x0418 // Ver.: always -#define ZCL_TIER1_BLOCK10_PRICE_ATTRIBUTE_ID 0x0419 // Ver.: always -#define ZCL_TIER1_BLOCK11_PRICE_ATTRIBUTE_ID 0x041A // Ver.: always -#define ZCL_TIER1_BLOCK12_PRICE_ATTRIBUTE_ID 0x041B // Ver.: always -#define ZCL_TIER1_BLOCK13_PRICE_ATTRIBUTE_ID 0x041C // Ver.: always -#define ZCL_TIER1_BLOCK14_PRICE_ATTRIBUTE_ID 0x041D // Ver.: always -#define ZCL_TIER1_BLOCK15_PRICE_ATTRIBUTE_ID 0x041E // Ver.: always -#define ZCL_TIER1_BLOCK16_PRICE_ATTRIBUTE_ID 0x041F // Ver.: always -#define ZCL_TIER2_BLOCK1_PRICE_ATTRIBUTE_ID 0x0420 // Ver.: always -#define ZCL_TIER2_BLOCK2_PRICE_ATTRIBUTE_ID 0x0421 // Ver.: always -#define ZCL_TIER2_BLOCK3_PRICE_ATTRIBUTE_ID 0x0422 // Ver.: always -#define ZCL_TIER2_BLOCK4_PRICE_ATTRIBUTE_ID 0x0423 // Ver.: always -#define ZCL_TIER2_BLOCK5_PRICE_ATTRIBUTE_ID 0x0424 // Ver.: always -#define ZCL_TIER2_BLOCK6_PRICE_ATTRIBUTE_ID 0x0425 // Ver.: always -#define ZCL_TIER2_BLOCK7_PRICE_ATTRIBUTE_ID 0x0426 // Ver.: always -#define ZCL_TIER2_BLOCK8_PRICE_ATTRIBUTE_ID 0x0427 // Ver.: always -#define ZCL_TIER2_BLOCK9_PRICE_ATTRIBUTE_ID 0x0428 // Ver.: always -#define ZCL_TIER2_BLOCK10_PRICE_ATTRIBUTE_ID 0x0429 // Ver.: always -#define ZCL_TIER2_BLOCK11_PRICE_ATTRIBUTE_ID 0x042A // Ver.: always -#define ZCL_TIER2_BLOCK12_PRICE_ATTRIBUTE_ID 0x042B // Ver.: always -#define ZCL_TIER2_BLOCK13_PRICE_ATTRIBUTE_ID 0x042C // Ver.: always -#define ZCL_TIER2_BLOCK14_PRICE_ATTRIBUTE_ID 0x042D // Ver.: always -#define ZCL_TIER2_BLOCK15_PRICE_ATTRIBUTE_ID 0x042E // Ver.: always -#define ZCL_TIER2_BLOCK16_PRICE_ATTRIBUTE_ID 0x042F // Ver.: always -#define ZCL_TIER3_BLOCK1_PRICE_ATTRIBUTE_ID 0x0430 // Ver.: always -#define ZCL_TIER3_BLOCK2_PRICE_ATTRIBUTE_ID 0x0431 // Ver.: always -#define ZCL_TIER3_BLOCK3_PRICE_ATTRIBUTE_ID 0x0432 // Ver.: always -#define ZCL_TIER3_BLOCK4_PRICE_ATTRIBUTE_ID 0x0433 // Ver.: always -#define ZCL_TIER3_BLOCK5_PRICE_ATTRIBUTE_ID 0x0434 // Ver.: always -#define ZCL_TIER3_BLOCK6_PRICE_ATTRIBUTE_ID 0x0435 // Ver.: always -#define ZCL_TIER3_BLOCK7_PRICE_ATTRIBUTE_ID 0x0436 // Ver.: always -#define ZCL_TIER3_BLOCK8_PRICE_ATTRIBUTE_ID 0x0437 // Ver.: always -#define ZCL_TIER3_BLOCK9_PRICE_ATTRIBUTE_ID 0x0438 // Ver.: always -#define ZCL_TIER3_BLOCK10_PRICE_ATTRIBUTE_ID 0x0439 // Ver.: always -#define ZCL_TIER3_BLOCK11_PRICE_ATTRIBUTE_ID 0x043A // Ver.: always -#define ZCL_TIER3_BLOCK12_PRICE_ATTRIBUTE_ID 0x043B // Ver.: always -#define ZCL_TIER3_BLOCK13_PRICE_ATTRIBUTE_ID 0x043C // Ver.: always -#define ZCL_TIER3_BLOCK14_PRICE_ATTRIBUTE_ID 0x043D // Ver.: always -#define ZCL_TIER3_BLOCK15_PRICE_ATTRIBUTE_ID 0x043E // Ver.: always -#define ZCL_TIER3_BLOCK16_PRICE_ATTRIBUTE_ID 0x043F // Ver.: always -#define ZCL_TIER4_BLOCK1_PRICE_ATTRIBUTE_ID 0x0440 // Ver.: always -#define ZCL_TIER4_BLOCK2_PRICE_ATTRIBUTE_ID 0x0441 // Ver.: always -#define ZCL_TIER4_BLOCK3_PRICE_ATTRIBUTE_ID 0x0442 // Ver.: always -#define ZCL_TIER4_BLOCK4_PRICE_ATTRIBUTE_ID 0x0443 // Ver.: always -#define ZCL_TIER4_BLOCK5_PRICE_ATTRIBUTE_ID 0x0444 // Ver.: always -#define ZCL_TIER4_BLOCK6_PRICE_ATTRIBUTE_ID 0x0445 // Ver.: always -#define ZCL_TIER4_BLOCK7_PRICE_ATTRIBUTE_ID 0x0446 // Ver.: always -#define ZCL_TIER4_BLOCK8_PRICE_ATTRIBUTE_ID 0x0447 // Ver.: always -#define ZCL_TIER4_BLOCK9_PRICE_ATTRIBUTE_ID 0x0448 // Ver.: always -#define ZCL_TIER4_BLOCK10_PRICE_ATTRIBUTE_ID 0x0449 // Ver.: always -#define ZCL_TIER4_BLOCK11_PRICE_ATTRIBUTE_ID 0x044A // Ver.: always -#define ZCL_TIER4_BLOCK12_PRICE_ATTRIBUTE_ID 0x044B // Ver.: always -#define ZCL_TIER4_BLOCK13_PRICE_ATTRIBUTE_ID 0x044C // Ver.: always -#define ZCL_TIER4_BLOCK14_PRICE_ATTRIBUTE_ID 0x044D // Ver.: always -#define ZCL_TIER4_BLOCK15_PRICE_ATTRIBUTE_ID 0x044E // Ver.: always -#define ZCL_TIER4_BLOCK16_PRICE_ATTRIBUTE_ID 0x044F // Ver.: always -#define ZCL_TIER5_BLOCK1_PRICE_ATTRIBUTE_ID 0x0450 // Ver.: always -#define ZCL_TIER5_BLOCK2_PRICE_ATTRIBUTE_ID 0x0451 // Ver.: always -#define ZCL_TIER5_BLOCK3_PRICE_ATTRIBUTE_ID 0x0452 // Ver.: always -#define ZCL_TIER5_BLOCK4_PRICE_ATTRIBUTE_ID 0x0453 // Ver.: always -#define ZCL_TIER5_BLOCK5_PRICE_ATTRIBUTE_ID 0x0454 // Ver.: always -#define ZCL_TIER5_BLOCK6_PRICE_ATTRIBUTE_ID 0x0455 // Ver.: always -#define ZCL_TIER5_BLOCK7_PRICE_ATTRIBUTE_ID 0x0456 // Ver.: always -#define ZCL_TIER5_BLOCK8_PRICE_ATTRIBUTE_ID 0x0457 // Ver.: always -#define ZCL_TIER5_BLOCK9_PRICE_ATTRIBUTE_ID 0x0458 // Ver.: always -#define ZCL_TIER5_BLOCK10_PRICE_ATTRIBUTE_ID 0x0459 // Ver.: always -#define ZCL_TIER5_BLOCK11_PRICE_ATTRIBUTE_ID 0x045A // Ver.: always -#define ZCL_TIER5_BLOCK12_PRICE_ATTRIBUTE_ID 0x045B // Ver.: always -#define ZCL_TIER5_BLOCK13_PRICE_ATTRIBUTE_ID 0x045C // Ver.: always -#define ZCL_TIER5_BLOCK14_PRICE_ATTRIBUTE_ID 0x045D // Ver.: always -#define ZCL_TIER5_BLOCK15_PRICE_ATTRIBUTE_ID 0x045E // Ver.: always -#define ZCL_TIER5_BLOCK16_PRICE_ATTRIBUTE_ID 0x045F // Ver.: always -#define ZCL_TIER6_BLOCK1_PRICE_ATTRIBUTE_ID 0x0460 // Ver.: always -#define ZCL_TIER6_BLOCK2_PRICE_ATTRIBUTE_ID 0x0461 // Ver.: always -#define ZCL_TIER6_BLOCK3_PRICE_ATTRIBUTE_ID 0x0462 // Ver.: always -#define ZCL_TIER6_BLOCK4_PRICE_ATTRIBUTE_ID 0x0463 // Ver.: always -#define ZCL_TIER6_BLOCK5_PRICE_ATTRIBUTE_ID 0x0464 // Ver.: always -#define ZCL_TIER6_BLOCK6_PRICE_ATTRIBUTE_ID 0x0465 // Ver.: always -#define ZCL_TIER6_BLOCK7_PRICE_ATTRIBUTE_ID 0x0466 // Ver.: always -#define ZCL_TIER6_BLOCK8_PRICE_ATTRIBUTE_ID 0x0467 // Ver.: always -#define ZCL_TIER6_BLOCK9_PRICE_ATTRIBUTE_ID 0x0468 // Ver.: always -#define ZCL_TIER6_BLOCK10_PRICE_ATTRIBUTE_ID 0x0469 // Ver.: always -#define ZCL_TIER6_BLOCK11_PRICE_ATTRIBUTE_ID 0x046A // Ver.: always -#define ZCL_TIER6_BLOCK12_PRICE_ATTRIBUTE_ID 0x046B // Ver.: always -#define ZCL_TIER6_BLOCK13_PRICE_ATTRIBUTE_ID 0x046C // Ver.: always -#define ZCL_TIER6_BLOCK14_PRICE_ATTRIBUTE_ID 0x046D // Ver.: always -#define ZCL_TIER6_BLOCK15_PRICE_ATTRIBUTE_ID 0x046E // Ver.: always -#define ZCL_TIER6_BLOCK16_PRICE_ATTRIBUTE_ID 0x046F // Ver.: always -#define ZCL_TIER7_BLOCK1_PRICE_ATTRIBUTE_ID 0x0470 // Ver.: always -#define ZCL_TIER7_BLOCK2_PRICE_ATTRIBUTE_ID 0x0471 // Ver.: always -#define ZCL_TIER7_BLOCK3_PRICE_ATTRIBUTE_ID 0x0472 // Ver.: always -#define ZCL_TIER7_BLOCK4_PRICE_ATTRIBUTE_ID 0x0473 // Ver.: always -#define ZCL_TIER7_BLOCK5_PRICE_ATTRIBUTE_ID 0x0474 // Ver.: always -#define ZCL_TIER7_BLOCK6_PRICE_ATTRIBUTE_ID 0x0475 // Ver.: always -#define ZCL_TIER7_BLOCK7_PRICE_ATTRIBUTE_ID 0x0476 // Ver.: always -#define ZCL_TIER7_BLOCK8_PRICE_ATTRIBUTE_ID 0x0477 // Ver.: always -#define ZCL_TIER7_BLOCK9_PRICE_ATTRIBUTE_ID 0x0478 // Ver.: always -#define ZCL_TIER7_BLOCK10_PRICE_ATTRIBUTE_ID 0x0479 // Ver.: always -#define ZCL_TIER7_BLOCK11_PRICE_ATTRIBUTE_ID 0x047A // Ver.: always -#define ZCL_TIER7_BLOCK12_PRICE_ATTRIBUTE_ID 0x047B // Ver.: always -#define ZCL_TIER7_BLOCK13_PRICE_ATTRIBUTE_ID 0x047C // Ver.: always -#define ZCL_TIER7_BLOCK14_PRICE_ATTRIBUTE_ID 0x047D // Ver.: always -#define ZCL_TIER7_BLOCK15_PRICE_ATTRIBUTE_ID 0x047E // Ver.: always -#define ZCL_TIER7_BLOCK16_PRICE_ATTRIBUTE_ID 0x047F // Ver.: always -#define ZCL_TIER8_BLOCK1_PRICE_ATTRIBUTE_ID 0x0480 // Ver.: always -#define ZCL_TIER8_BLOCK2_PRICE_ATTRIBUTE_ID 0x0481 // Ver.: always -#define ZCL_TIER8_BLOCK3_PRICE_ATTRIBUTE_ID 0x0482 // Ver.: always -#define ZCL_TIER8_BLOCK4_PRICE_ATTRIBUTE_ID 0x0483 // Ver.: always -#define ZCL_TIER8_BLOCK5_PRICE_ATTRIBUTE_ID 0x0484 // Ver.: always -#define ZCL_TIER8_BLOCK6_PRICE_ATTRIBUTE_ID 0x0485 // Ver.: always -#define ZCL_TIER8_BLOCK7_PRICE_ATTRIBUTE_ID 0x0486 // Ver.: always -#define ZCL_TIER8_BLOCK8_PRICE_ATTRIBUTE_ID 0x0487 // Ver.: always -#define ZCL_TIER8_BLOCK9_PRICE_ATTRIBUTE_ID 0x0488 // Ver.: always -#define ZCL_TIER8_BLOCK10_PRICE_ATTRIBUTE_ID 0x0489 // Ver.: always -#define ZCL_TIER8_BLOCK11_PRICE_ATTRIBUTE_ID 0x048A // Ver.: always -#define ZCL_TIER8_BLOCK12_PRICE_ATTRIBUTE_ID 0x048B // Ver.: always -#define ZCL_TIER8_BLOCK13_PRICE_ATTRIBUTE_ID 0x048C // Ver.: always -#define ZCL_TIER8_BLOCK14_PRICE_ATTRIBUTE_ID 0x048D // Ver.: always -#define ZCL_TIER8_BLOCK15_PRICE_ATTRIBUTE_ID 0x048E // Ver.: always -#define ZCL_TIER8_BLOCK16_PRICE_ATTRIBUTE_ID 0x048F // Ver.: always -#define ZCL_TIER9_BLOCK1_PRICE_ATTRIBUTE_ID 0x0490 // Ver.: always -#define ZCL_TIER9_BLOCK2_PRICE_ATTRIBUTE_ID 0x0491 // Ver.: always -#define ZCL_TIER9_BLOCK3_PRICE_ATTRIBUTE_ID 0x0492 // Ver.: always -#define ZCL_TIER9_BLOCK4_PRICE_ATTRIBUTE_ID 0x0493 // Ver.: always -#define ZCL_TIER9_BLOCK5_PRICE_ATTRIBUTE_ID 0x0494 // Ver.: always -#define ZCL_TIER9_BLOCK6_PRICE_ATTRIBUTE_ID 0x0495 // Ver.: always -#define ZCL_TIER9_BLOCK7_PRICE_ATTRIBUTE_ID 0x0496 // Ver.: always -#define ZCL_TIER9_BLOCK8_PRICE_ATTRIBUTE_ID 0x0497 // Ver.: always -#define ZCL_TIER9_BLOCK9_PRICE_ATTRIBUTE_ID 0x0498 // Ver.: always -#define ZCL_TIER9_BLOCK10_PRICE_ATTRIBUTE_ID 0x0499 // Ver.: always -#define ZCL_TIER9_BLOCK11_PRICE_ATTRIBUTE_ID 0x049A // Ver.: always -#define ZCL_TIER9_BLOCK12_PRICE_ATTRIBUTE_ID 0x049B // Ver.: always -#define ZCL_TIER9_BLOCK13_PRICE_ATTRIBUTE_ID 0x049C // Ver.: always -#define ZCL_TIER9_BLOCK14_PRICE_ATTRIBUTE_ID 0x049D // Ver.: always -#define ZCL_TIER9_BLOCK15_PRICE_ATTRIBUTE_ID 0x049E // Ver.: always -#define ZCL_TIER9_BLOCK16_PRICE_ATTRIBUTE_ID 0x049F // Ver.: always -#define ZCL_TIER10_BLOCK1_PRICE_ATTRIBUTE_ID 0x04A0 // Ver.: always -#define ZCL_TIER10_BLOCK2_PRICE_ATTRIBUTE_ID 0x04A1 // Ver.: always -#define ZCL_TIER10_BLOCK3_PRICE_ATTRIBUTE_ID 0x04A2 // Ver.: always -#define ZCL_TIER10_BLOCK4_PRICE_ATTRIBUTE_ID 0x04A3 // Ver.: always -#define ZCL_TIER10_BLOCK5_PRICE_ATTRIBUTE_ID 0x04A4 // Ver.: always -#define ZCL_TIER10_BLOCK6_PRICE_ATTRIBUTE_ID 0x04A5 // Ver.: always -#define ZCL_TIER10_BLOCK7_PRICE_ATTRIBUTE_ID 0x04A6 // Ver.: always -#define ZCL_TIER10_BLOCK8_PRICE_ATTRIBUTE_ID 0x04A7 // Ver.: always -#define ZCL_TIER10_BLOCK9_PRICE_ATTRIBUTE_ID 0x04A8 // Ver.: always -#define ZCL_TIER10_BLOCK10_PRICE_ATTRIBUTE_ID 0x04A9 // Ver.: always -#define ZCL_TIER10_BLOCK11_PRICE_ATTRIBUTE_ID 0x04AA // Ver.: always -#define ZCL_TIER10_BLOCK12_PRICE_ATTRIBUTE_ID 0x04AB // Ver.: always -#define ZCL_TIER10_BLOCK13_PRICE_ATTRIBUTE_ID 0x04AC // Ver.: always -#define ZCL_TIER10_BLOCK14_PRICE_ATTRIBUTE_ID 0x04AD // Ver.: always -#define ZCL_TIER10_BLOCK15_PRICE_ATTRIBUTE_ID 0x04AE // Ver.: always -#define ZCL_TIER10_BLOCK16_PRICE_ATTRIBUTE_ID 0x04AF // Ver.: always -#define ZCL_TIER11_BLOCK1_PRICE_ATTRIBUTE_ID 0x04B0 // Ver.: always -#define ZCL_TIER11_BLOCK2_PRICE_ATTRIBUTE_ID 0x04B1 // Ver.: always -#define ZCL_TIER11_BLOCK3_PRICE_ATTRIBUTE_ID 0x04B2 // Ver.: always -#define ZCL_TIER11_BLOCK4_PRICE_ATTRIBUTE_ID 0x04B3 // Ver.: always -#define ZCL_TIER11_BLOCK5_PRICE_ATTRIBUTE_ID 0x04B4 // Ver.: always -#define ZCL_TIER11_BLOCK6_PRICE_ATTRIBUTE_ID 0x04B5 // Ver.: always -#define ZCL_TIER11_BLOCK7_PRICE_ATTRIBUTE_ID 0x04B6 // Ver.: always -#define ZCL_TIER11_BLOCK8_PRICE_ATTRIBUTE_ID 0x04B7 // Ver.: always -#define ZCL_TIER11_BLOCK9_PRICE_ATTRIBUTE_ID 0x04B8 // Ver.: always -#define ZCL_TIER11_BLOCK10_PRICE_ATTRIBUTE_ID 0x04B9 // Ver.: always -#define ZCL_TIER11_BLOCK11_PRICE_ATTRIBUTE_ID 0x04BA // Ver.: always -#define ZCL_TIER11_BLOCK12_PRICE_ATTRIBUTE_ID 0x04BB // Ver.: always -#define ZCL_TIER11_BLOCK13_PRICE_ATTRIBUTE_ID 0x04BC // Ver.: always -#define ZCL_TIER11_BLOCK14_PRICE_ATTRIBUTE_ID 0x04BD // Ver.: always -#define ZCL_TIER11_BLOCK15_PRICE_ATTRIBUTE_ID 0x04BE // Ver.: always -#define ZCL_TIER11_BLOCK16_PRICE_ATTRIBUTE_ID 0x04BF // Ver.: always -#define ZCL_TIER12_BLOCK1_PRICE_ATTRIBUTE_ID 0x04C0 // Ver.: always -#define ZCL_TIER12_BLOCK2_PRICE_ATTRIBUTE_ID 0x04C1 // Ver.: always -#define ZCL_TIER12_BLOCK3_PRICE_ATTRIBUTE_ID 0x04C2 // Ver.: always -#define ZCL_TIER12_BLOCK4_PRICE_ATTRIBUTE_ID 0x04C3 // Ver.: always -#define ZCL_TIER12_BLOCK5_PRICE_ATTRIBUTE_ID 0x04C4 // Ver.: always -#define ZCL_TIER12_BLOCK6_PRICE_ATTRIBUTE_ID 0x04C5 // Ver.: always -#define ZCL_TIER12_BLOCK7_PRICE_ATTRIBUTE_ID 0x04C6 // Ver.: always -#define ZCL_TIER12_BLOCK8_PRICE_ATTRIBUTE_ID 0x04C7 // Ver.: always -#define ZCL_TIER12_BLOCK9_PRICE_ATTRIBUTE_ID 0x04C8 // Ver.: always -#define ZCL_TIER12_BLOCK10_PRICE_ATTRIBUTE_ID 0x04C9 // Ver.: always -#define ZCL_TIER12_BLOCK11_PRICE_ATTRIBUTE_ID 0x04CA // Ver.: always -#define ZCL_TIER12_BLOCK12_PRICE_ATTRIBUTE_ID 0x04CB // Ver.: always -#define ZCL_TIER12_BLOCK13_PRICE_ATTRIBUTE_ID 0x04CC // Ver.: always -#define ZCL_TIER12_BLOCK14_PRICE_ATTRIBUTE_ID 0x04CD // Ver.: always -#define ZCL_TIER12_BLOCK15_PRICE_ATTRIBUTE_ID 0x04CE // Ver.: always -#define ZCL_TIER12_BLOCK16_PRICE_ATTRIBUTE_ID 0x04CF // Ver.: always -#define ZCL_TIER13_BLOCK1_PRICE_ATTRIBUTE_ID 0x04D0 // Ver.: always -#define ZCL_TIER13_BLOCK2_PRICE_ATTRIBUTE_ID 0x04D1 // Ver.: always -#define ZCL_TIER13_BLOCK3_PRICE_ATTRIBUTE_ID 0x04D2 // Ver.: always -#define ZCL_TIER13_BLOCK4_PRICE_ATTRIBUTE_ID 0x04D3 // Ver.: always -#define ZCL_TIER13_BLOCK5_PRICE_ATTRIBUTE_ID 0x04D4 // Ver.: always -#define ZCL_TIER13_BLOCK6_PRICE_ATTRIBUTE_ID 0x04D5 // Ver.: always -#define ZCL_TIER13_BLOCK7_PRICE_ATTRIBUTE_ID 0x04D6 // Ver.: always -#define ZCL_TIER13_BLOCK8_PRICE_ATTRIBUTE_ID 0x04D7 // Ver.: always -#define ZCL_TIER13_BLOCK9_PRICE_ATTRIBUTE_ID 0x04D8 // Ver.: always -#define ZCL_TIER13_BLOCK10_PRICE_ATTRIBUTE_ID 0x04D9 // Ver.: always -#define ZCL_TIER13_BLOCK11_PRICE_ATTRIBUTE_ID 0x04DA // Ver.: always -#define ZCL_TIER13_BLOCK12_PRICE_ATTRIBUTE_ID 0x04DB // Ver.: always -#define ZCL_TIER13_BLOCK13_PRICE_ATTRIBUTE_ID 0x04DC // Ver.: always -#define ZCL_TIER13_BLOCK14_PRICE_ATTRIBUTE_ID 0x04DD // Ver.: always -#define ZCL_TIER13_BLOCK15_PRICE_ATTRIBUTE_ID 0x04DE // Ver.: always -#define ZCL_TIER13_BLOCK16_PRICE_ATTRIBUTE_ID 0x04DF // Ver.: always -#define ZCL_TIER14_BLOCK1_PRICE_ATTRIBUTE_ID 0x04E0 // Ver.: always -#define ZCL_TIER14_BLOCK2_PRICE_ATTRIBUTE_ID 0x04E1 // Ver.: always -#define ZCL_TIER14_BLOCK3_PRICE_ATTRIBUTE_ID 0x04E2 // Ver.: always -#define ZCL_TIER14_BLOCK4_PRICE_ATTRIBUTE_ID 0x04E3 // Ver.: always -#define ZCL_TIER14_BLOCK5_PRICE_ATTRIBUTE_ID 0x04E4 // Ver.: always -#define ZCL_TIER14_BLOCK6_PRICE_ATTRIBUTE_ID 0x04E5 // Ver.: always -#define ZCL_TIER14_BLOCK7_PRICE_ATTRIBUTE_ID 0x04E6 // Ver.: always -#define ZCL_TIER14_BLOCK8_PRICE_ATTRIBUTE_ID 0x04E7 // Ver.: always -#define ZCL_TIER14_BLOCK9_PRICE_ATTRIBUTE_ID 0x04E8 // Ver.: always -#define ZCL_TIER14_BLOCK10_PRICE_ATTRIBUTE_ID 0x04E9 // Ver.: always -#define ZCL_TIER14_BLOCK11_PRICE_ATTRIBUTE_ID 0x04EA // Ver.: always -#define ZCL_TIER14_BLOCK12_PRICE_ATTRIBUTE_ID 0x04EB // Ver.: always -#define ZCL_TIER14_BLOCK13_PRICE_ATTRIBUTE_ID 0x04EC // Ver.: always -#define ZCL_TIER14_BLOCK14_PRICE_ATTRIBUTE_ID 0x04ED // Ver.: always -#define ZCL_TIER14_BLOCK15_PRICE_ATTRIBUTE_ID 0x04EE // Ver.: always -#define ZCL_TIER14_BLOCK16_PRICE_ATTRIBUTE_ID 0x04EF // Ver.: always -#define ZCL_TIER15_BLOCK1_PRICE_ATTRIBUTE_ID 0x04F0 // Ver.: always -#define ZCL_TIER15_BLOCK2_PRICE_ATTRIBUTE_ID 0x04F1 // Ver.: always -#define ZCL_TIER15_BLOCK3_PRICE_ATTRIBUTE_ID 0x04F2 // Ver.: always -#define ZCL_TIER15_BLOCK4_PRICE_ATTRIBUTE_ID 0x04F3 // Ver.: always -#define ZCL_TIER15_BLOCK5_PRICE_ATTRIBUTE_ID 0x04F4 // Ver.: always -#define ZCL_TIER15_BLOCK6_PRICE_ATTRIBUTE_ID 0x04F5 // Ver.: always -#define ZCL_TIER15_BLOCK7_PRICE_ATTRIBUTE_ID 0x04F6 // Ver.: always -#define ZCL_TIER15_BLOCK8_PRICE_ATTRIBUTE_ID 0x04F7 // Ver.: always -#define ZCL_TIER15_BLOCK9_PRICE_ATTRIBUTE_ID 0x04F8 // Ver.: always -#define ZCL_TIER15_BLOCK10_PRICE_ATTRIBUTE_ID 0x04F9 // Ver.: always -#define ZCL_TIER15_BLOCK11_PRICE_ATTRIBUTE_ID 0x04FA // Ver.: always -#define ZCL_TIER15_BLOCK12_PRICE_ATTRIBUTE_ID 0x04FB // Ver.: always -#define ZCL_TIER15_BLOCK13_PRICE_ATTRIBUTE_ID 0x04FC // Ver.: always -#define ZCL_TIER15_BLOCK14_PRICE_ATTRIBUTE_ID 0x04FD // Ver.: always -#define ZCL_TIER15_BLOCK15_PRICE_ATTRIBUTE_ID 0x04FE // Ver.: always -#define ZCL_TIER15_BLOCK16_PRICE_ATTRIBUTE_ID 0x04FF // Ver.: always -#define ZCL_PRICE_TIER16_ATTRIBUTE_ID 0x050F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PRICE_TIER17_ATTRIBUTE_ID 0x0510 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PRICE_TIER18_ATTRIBUTE_ID 0x0511 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PRICE_TIER19_ATTRIBUTE_ID 0x0512 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PRICE_TIER20_ATTRIBUTE_ID 0x0513 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PRICE_TIER21_ATTRIBUTE_ID 0x0514 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PRICE_TIER22_ATTRIBUTE_ID 0x0515 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PRICE_TIER23_ATTRIBUTE_ID 0x0516 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PRICE_TIER24_ATTRIBUTE_ID 0x0517 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PRICE_TIER25_ATTRIBUTE_ID 0x0518 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PRICE_TIER26_ATTRIBUTE_ID 0x0519 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PRICE_TIER27_ATTRIBUTE_ID 0x051A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PRICE_TIER28_ATTRIBUTE_ID 0x051B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PRICE_TIER29_ATTRIBUTE_ID 0x051C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PRICE_TIER30_ATTRIBUTE_ID 0x051D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PRICE_TIER31_ATTRIBUTE_ID 0x051E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PRICE_TIER32_ATTRIBUTE_ID 0x051F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PRICE_TIER33_ATTRIBUTE_ID 0x0520 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PRICE_TIER34_ATTRIBUTE_ID 0x0521 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PRICE_TIER35_ATTRIBUTE_ID 0x0522 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PRICE_TIER36_ATTRIBUTE_ID 0x0523 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PRICE_TIER37_ATTRIBUTE_ID 0x0524 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PRICE_TIER38_ATTRIBUTE_ID 0x0525 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PRICE_TIER39_ATTRIBUTE_ID 0x0526 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PRICE_TIER40_ATTRIBUTE_ID 0x0527 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PRICE_TIER41_ATTRIBUTE_ID 0x0528 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PRICE_TIER42_ATTRIBUTE_ID 0x0529 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PRICE_TIER43_ATTRIBUTE_ID 0x052A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PRICE_TIER44_ATTRIBUTE_ID 0x052B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PRICE_TIER45_ATTRIBUTE_ID 0x052C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PRICE_TIER46_ATTRIBUTE_ID 0x052D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PRICE_TIER47_ATTRIBUTE_ID 0x052E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PRICE_TIER48_ATTRIBUTE_ID 0x052F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CPP1_PRICE_ATTRIBUTE_ID 0x05FE // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CPP2_PRICE_ATTRIBUTE_ID 0x05FF // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TARIFF_LABEL_ATTRIBUTE_ID 0x0610 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_NUMBER_OF_PRICE_TIERS_IN_USE_ATTRIBUTE_ID 0x0611 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_NUMBER_OF_BLOCK_THRESHOLDS_IN_USE_ATTRIBUTE_ID 0x0612 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER_BLOCK_MODE_ATTRIBUTE_ID 0x0613 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TARIFF_UNIT_OF_MEASURE_ATTRIBUTE_ID 0x0615 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TARIFF_CURRENCY_ATTRIBUTE_ID 0x0616 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TARIFF_PRICE_TRAILING_DIGIT_ATTRIBUTE_ID 0x0617 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TARIFF_RESOLUTION_PERIOD_ATTRIBUTE_ID 0x0619 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TARIFF_CO2_ATTRIBUTE_ID 0x0620 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TARIFF_CO2_UNIT_ATTRIBUTE_ID 0x0621 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TARIFF_CO2_TRAILING_DIGIT_ATTRIBUTE_ID 0x0622 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_BILLING_PERIOD_START_ATTRIBUTE_ID 0x0700 // Ver.: since se-1.1b-07-5356-18 -#define ZCL_CURRENT_BILLING_PERIOD_DURATION_ATTRIBUTE_ID 0x0701 // Ver.: since se-1.1b-07-5356-18 -#define ZCL_LAST_BILLING_PERIOD_START_ATTRIBUTE_ID 0x0702 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_LAST_BILLING_PERIOD_DURATION_ATTRIBUTE_ID 0x0703 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_LAST_BILLING_PERIOD_CONSOLIDATED_BILL_ATTRIBUTE_ID 0x0704 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CREDIT_PAYMENT_DUE_DATE_ATTRIBUTE_ID 0x0800 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CREDIT_PAYMENT_STATUS_ATTRIBUTE_ID 0x0801 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CREDIT_PAYMENT_OVER_DUE_AMOUNT_ATTRIBUTE_ID 0x0802 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PAYMENT_DISCOUNT_ATTRIBUTE_ID 0x080A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PAYMENT_DISCOUNT_PERIOD_ATTRIBUTE_ID 0x080B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CREDIT_PAYMENT_1_ATTRIBUTE_ID 0x0810 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CREDIT_PAYMENT_DATE_1_ATTRIBUTE_ID 0x0811 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CREDIT_PAYMENT_REF_1_ATTRIBUTE_ID 0x0812 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CREDIT_PAYMENT_2_ATTRIBUTE_ID 0x0820 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CREDIT_PAYMENT_DATE_2_ATTRIBUTE_ID 0x0821 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CREDIT_PAYMENT_REF_2_ATTRIBUTE_ID 0x0822 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CREDIT_PAYMENT_3_ATTRIBUTE_ID 0x0830 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CREDIT_PAYMENT_DATE_3_ATTRIBUTE_ID 0x0831 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CREDIT_PAYMENT_REF_3_ATTRIBUTE_ID 0x0832 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CREDIT_PAYMENT_4_ATTRIBUTE_ID 0x0840 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CREDIT_PAYMENT_DATE_4_ATTRIBUTE_ID 0x0841 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CREDIT_PAYMENT_REF_4_ATTRIBUTE_ID 0x0842 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CREDIT_PAYMENT_5_ATTRIBUTE_ID 0x0850 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CREDIT_PAYMENT_DATE_5_ATTRIBUTE_ID 0x0851 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CREDIT_PAYMENT_REF_5_ATTRIBUTE_ID 0x0852 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER1_PRICE_LABEL_ATTRIBUTE_ID 0x8000 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER2_PRICE_LABEL_ATTRIBUTE_ID 0x8001 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER3_PRICE_LABEL_ATTRIBUTE_ID 0x8002 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER4_PRICE_LABEL_ATTRIBUTE_ID 0x8003 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER5_PRICE_LABEL_ATTRIBUTE_ID 0x8004 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER6_PRICE_LABEL_ATTRIBUTE_ID 0x8005 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER7_PRICE_LABEL_ATTRIBUTE_ID 0x8006 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER8_PRICE_LABEL_ATTRIBUTE_ID 0x8007 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER9_PRICE_LABEL_ATTRIBUTE_ID 0x8008 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER10_PRICE_LABEL_ATTRIBUTE_ID 0x8009 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER11_PRICE_LABEL_ATTRIBUTE_ID 0x800A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER12_PRICE_LABEL_ATTRIBUTE_ID 0x800B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER13_PRICE_LABEL_ATTRIBUTE_ID 0x800C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER14_PRICE_LABEL_ATTRIBUTE_ID 0x800D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER15_PRICE_LABEL_ATTRIBUTE_ID 0x800E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER16_PRICE_LABEL_ATTRIBUTE_ID 0x800F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER17_PRICE_LABEL_ATTRIBUTE_ID 0x8010 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER18_PRICE_LABEL_ATTRIBUTE_ID 0x8011 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER19_PRICE_LABEL_ATTRIBUTE_ID 0x8012 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER20_PRICE_LABEL_ATTRIBUTE_ID 0x8013 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER21_PRICE_LABEL_ATTRIBUTE_ID 0x8014 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER22_PRICE_LABEL_ATTRIBUTE_ID 0x8015 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER23_PRICE_LABEL_ATTRIBUTE_ID 0x8016 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER24_PRICE_LABEL_ATTRIBUTE_ID 0x8017 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER25_PRICE_LABEL_ATTRIBUTE_ID 0x8018 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER26_PRICE_LABEL_ATTRIBUTE_ID 0x8019 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER27_PRICE_LABEL_ATTRIBUTE_ID 0x801A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER28_PRICE_LABEL_ATTRIBUTE_ID 0x801B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER29_PRICE_LABEL_ATTRIBUTE_ID 0x801C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER30_PRICE_LABEL_ATTRIBUTE_ID 0x801D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER31_PRICE_LABEL_ATTRIBUTE_ID 0x801E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER32_PRICE_LABEL_ATTRIBUTE_ID 0x801F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER33_PRICE_LABEL_ATTRIBUTE_ID 0x8020 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER34_PRICE_LABEL_ATTRIBUTE_ID 0x8021 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER35_PRICE_LABEL_ATTRIBUTE_ID 0x8022 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER36_PRICE_LABEL_ATTRIBUTE_ID 0x8023 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER37_PRICE_LABEL_ATTRIBUTE_ID 0x8024 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER38_PRICE_LABEL_ATTRIBUTE_ID 0x8025 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER39_PRICE_LABEL_ATTRIBUTE_ID 0x8026 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER40_PRICE_LABEL_ATTRIBUTE_ID 0x8027 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER41_PRICE_LABEL_ATTRIBUTE_ID 0x8028 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER42_PRICE_LABEL_ATTRIBUTE_ID 0x8029 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER43_PRICE_LABEL_ATTRIBUTE_ID 0x802A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER44_PRICE_LABEL_ATTRIBUTE_ID 0x802B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER45_PRICE_LABEL_ATTRIBUTE_ID 0x802C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER46_PRICE_LABEL_ATTRIBUTE_ID 0x802D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER47_PRICE_LABEL_ATTRIBUTE_ID 0x802E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER48_PRICE_LABEL_ATTRIBUTE_ID 0x802F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_BLOCK1_THRESHOLD_ATTRIBUTE_ID 0x8100 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_BLOCK2_THRESHOLD_ATTRIBUTE_ID 0x8101 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_BLOCK3_THRESHOLD_ATTRIBUTE_ID 0x8102 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_BLOCK4_THRESHOLD_ATTRIBUTE_ID 0x8103 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_BLOCK5_THRESHOLD_ATTRIBUTE_ID 0x8104 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_BLOCK6_THRESHOLD_ATTRIBUTE_ID 0x8105 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_BLOCK7_THRESHOLD_ATTRIBUTE_ID 0x8106 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_BLOCK8_THRESHOLD_ATTRIBUTE_ID 0x8107 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_BLOCK9_THRESHOLD_ATTRIBUTE_ID 0x8108 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_BLOCK10_THRESHOLD_ATTRIBUTE_ID 0x8109 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_BLOCK11_THRESHOLD_ATTRIBUTE_ID 0x810A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_BLOCK12_THRESHOLD_ATTRIBUTE_ID 0x810B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_BLOCK13_THRESHOLD_ATTRIBUTE_ID 0x810C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_BLOCK14_THRESHOLD_ATTRIBUTE_ID 0x810D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_BLOCK15_THRESHOLD_ATTRIBUTE_ID 0x810E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_START_OF_BLOCK_PERIOD_ATTRIBUTE_ID 0x8200 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_BLOCK_PERIOD_DURATION_ATTRIBUTE_ID 0x8201 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_THRESHOLD_MULTIPLIER_ATTRIBUTE_ID 0x8202 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_THRESHOLD_DIVISOR_ATTRIBUTE_ID 0x8203 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_NO_TIER_BLOCK1_PRICE_ATTRIBUTE_ID 0x8400 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_NO_TIER_BLOCK2_PRICE_ATTRIBUTE_ID 0x8401 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_NO_TIER_BLOCK3_PRICE_ATTRIBUTE_ID 0x8402 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_NO_TIER_BLOCK4_PRICE_ATTRIBUTE_ID 0x8403 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_NO_TIER_BLOCK5_PRICE_ATTRIBUTE_ID 0x8404 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_NO_TIER_BLOCK6_PRICE_ATTRIBUTE_ID 0x8405 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_NO_TIER_BLOCK7_PRICE_ATTRIBUTE_ID 0x8406 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_NO_TIER_BLOCK8_PRICE_ATTRIBUTE_ID 0x8407 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_NO_TIER_BLOCK9_PRICE_ATTRIBUTE_ID 0x8408 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_NO_TIER_BLOCK10_PRICE_ATTRIBUTE_ID 0x8409 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_NO_TIER_BLOCK11_PRICE_ATTRIBUTE_ID 0x840A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_NO_TIER_BLOCK12_PRICE_ATTRIBUTE_ID 0x840B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_NO_TIER_BLOCK13_PRICE_ATTRIBUTE_ID 0x840C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_NO_TIER_BLOCK14_PRICE_ATTRIBUTE_ID 0x840D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_NO_TIER_BLOCK15_PRICE_ATTRIBUTE_ID 0x840E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_NO_TIER_BLOCK16_PRICE_ATTRIBUTE_ID 0x840F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER1_BLOCK1_PRICE_ATTRIBUTE_ID 0x8410 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER1_BLOCK2_PRICE_ATTRIBUTE_ID 0x8411 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER1_BLOCK3_PRICE_ATTRIBUTE_ID 0x8412 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER1_BLOCK4_PRICE_ATTRIBUTE_ID 0x8413 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER1_BLOCK5_PRICE_ATTRIBUTE_ID 0x8414 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER1_BLOCK6_PRICE_ATTRIBUTE_ID 0x8415 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER1_BLOCK7_PRICE_ATTRIBUTE_ID 0x8416 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER1_BLOCK8_PRICE_ATTRIBUTE_ID 0x8417 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER1_BLOCK9_PRICE_ATTRIBUTE_ID 0x8418 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER1_BLOCK10_PRICE_ATTRIBUTE_ID 0x8419 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER1_BLOCK11_PRICE_ATTRIBUTE_ID 0x841A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER1_BLOCK12_PRICE_ATTRIBUTE_ID 0x841B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER1_BLOCK13_PRICE_ATTRIBUTE_ID 0x841C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER1_BLOCK14_PRICE_ATTRIBUTE_ID 0x841D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER1_BLOCK15_PRICE_ATTRIBUTE_ID 0x841E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER1_BLOCK16_PRICE_ATTRIBUTE_ID 0x841F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER2_BLOCK1_PRICE_ATTRIBUTE_ID 0x8420 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER2_BLOCK2_PRICE_ATTRIBUTE_ID 0x8421 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER2_BLOCK3_PRICE_ATTRIBUTE_ID 0x8422 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER2_BLOCK4_PRICE_ATTRIBUTE_ID 0x8423 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER2_BLOCK5_PRICE_ATTRIBUTE_ID 0x8424 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER2_BLOCK6_PRICE_ATTRIBUTE_ID 0x8425 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER2_BLOCK7_PRICE_ATTRIBUTE_ID 0x8426 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER2_BLOCK8_PRICE_ATTRIBUTE_ID 0x8427 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER2_BLOCK9_PRICE_ATTRIBUTE_ID 0x8428 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER2_BLOCK10_PRICE_ATTRIBUTE_ID 0x8429 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER2_BLOCK11_PRICE_ATTRIBUTE_ID 0x842A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER2_BLOCK12_PRICE_ATTRIBUTE_ID 0x842B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER2_BLOCK13_PRICE_ATTRIBUTE_ID 0x842C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER2_BLOCK14_PRICE_ATTRIBUTE_ID 0x842D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER2_BLOCK15_PRICE_ATTRIBUTE_ID 0x842E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER2_BLOCK16_PRICE_ATTRIBUTE_ID 0x842F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER3_BLOCK1_PRICE_ATTRIBUTE_ID 0x8430 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER3_BLOCK2_PRICE_ATTRIBUTE_ID 0x8431 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER3_BLOCK3_PRICE_ATTRIBUTE_ID 0x8432 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER3_BLOCK4_PRICE_ATTRIBUTE_ID 0x8433 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER3_BLOCK5_PRICE_ATTRIBUTE_ID 0x8434 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER3_BLOCK6_PRICE_ATTRIBUTE_ID 0x8435 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER3_BLOCK7_PRICE_ATTRIBUTE_ID 0x8436 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER3_BLOCK8_PRICE_ATTRIBUTE_ID 0x8437 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER3_BLOCK9_PRICE_ATTRIBUTE_ID 0x8438 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER3_BLOCK10_PRICE_ATTRIBUTE_ID 0x8439 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER3_BLOCK11_PRICE_ATTRIBUTE_ID 0x843A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER3_BLOCK12_PRICE_ATTRIBUTE_ID 0x843B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER3_BLOCK13_PRICE_ATTRIBUTE_ID 0x843C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER3_BLOCK14_PRICE_ATTRIBUTE_ID 0x843D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER3_BLOCK15_PRICE_ATTRIBUTE_ID 0x843E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER3_BLOCK16_PRICE_ATTRIBUTE_ID 0x843F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER4_BLOCK1_PRICE_ATTRIBUTE_ID 0x8440 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER4_BLOCK2_PRICE_ATTRIBUTE_ID 0x8441 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER4_BLOCK3_PRICE_ATTRIBUTE_ID 0x8442 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER4_BLOCK4_PRICE_ATTRIBUTE_ID 0x8443 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER4_BLOCK5_PRICE_ATTRIBUTE_ID 0x8444 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER4_BLOCK6_PRICE_ATTRIBUTE_ID 0x8445 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER4_BLOCK7_PRICE_ATTRIBUTE_ID 0x8446 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER4_BLOCK8_PRICE_ATTRIBUTE_ID 0x8447 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER4_BLOCK9_PRICE_ATTRIBUTE_ID 0x8448 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER4_BLOCK10_PRICE_ATTRIBUTE_ID 0x8449 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER4_BLOCK11_PRICE_ATTRIBUTE_ID 0x844A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER4_BLOCK12_PRICE_ATTRIBUTE_ID 0x844B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER4_BLOCK13_PRICE_ATTRIBUTE_ID 0x844C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER4_BLOCK14_PRICE_ATTRIBUTE_ID 0x844D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER4_BLOCK15_PRICE_ATTRIBUTE_ID 0x844E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER4_BLOCK16_PRICE_ATTRIBUTE_ID 0x844F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER5_BLOCK1_PRICE_ATTRIBUTE_ID 0x8450 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER5_BLOCK2_PRICE_ATTRIBUTE_ID 0x8451 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER5_BLOCK3_PRICE_ATTRIBUTE_ID 0x8452 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER5_BLOCK4_PRICE_ATTRIBUTE_ID 0x8453 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER5_BLOCK5_PRICE_ATTRIBUTE_ID 0x8454 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER5_BLOCK6_PRICE_ATTRIBUTE_ID 0x8455 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER5_BLOCK7_PRICE_ATTRIBUTE_ID 0x8456 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER5_BLOCK8_PRICE_ATTRIBUTE_ID 0x8457 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER5_BLOCK9_PRICE_ATTRIBUTE_ID 0x8458 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER5_BLOCK10_PRICE_ATTRIBUTE_ID 0x8459 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER5_BLOCK11_PRICE_ATTRIBUTE_ID 0x845A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER5_BLOCK12_PRICE_ATTRIBUTE_ID 0x845B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER5_BLOCK13_PRICE_ATTRIBUTE_ID 0x845C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER5_BLOCK14_PRICE_ATTRIBUTE_ID 0x845D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER5_BLOCK15_PRICE_ATTRIBUTE_ID 0x845E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER5_BLOCK16_PRICE_ATTRIBUTE_ID 0x845F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER6_BLOCK1_PRICE_ATTRIBUTE_ID 0x8460 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER6_BLOCK2_PRICE_ATTRIBUTE_ID 0x8461 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER6_BLOCK3_PRICE_ATTRIBUTE_ID 0x8462 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER6_BLOCK4_PRICE_ATTRIBUTE_ID 0x8463 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER6_BLOCK5_PRICE_ATTRIBUTE_ID 0x8464 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER6_BLOCK6_PRICE_ATTRIBUTE_ID 0x8465 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER6_BLOCK7_PRICE_ATTRIBUTE_ID 0x8466 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER6_BLOCK8_PRICE_ATTRIBUTE_ID 0x8467 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER6_BLOCK9_PRICE_ATTRIBUTE_ID 0x8468 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER6_BLOCK10_PRICE_ATTRIBUTE_ID 0x8469 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER6_BLOCK11_PRICE_ATTRIBUTE_ID 0x846A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER6_BLOCK12_PRICE_ATTRIBUTE_ID 0x846B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER6_BLOCK13_PRICE_ATTRIBUTE_ID 0x846C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER6_BLOCK14_PRICE_ATTRIBUTE_ID 0x846D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER6_BLOCK15_PRICE_ATTRIBUTE_ID 0x846E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER6_BLOCK16_PRICE_ATTRIBUTE_ID 0x846F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER7_BLOCK1_PRICE_ATTRIBUTE_ID 0x8470 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER7_BLOCK2_PRICE_ATTRIBUTE_ID 0x8471 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER7_BLOCK3_PRICE_ATTRIBUTE_ID 0x8472 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER7_BLOCK4_PRICE_ATTRIBUTE_ID 0x8473 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER7_BLOCK5_PRICE_ATTRIBUTE_ID 0x8474 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER7_BLOCK6_PRICE_ATTRIBUTE_ID 0x8475 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER7_BLOCK7_PRICE_ATTRIBUTE_ID 0x8476 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER7_BLOCK8_PRICE_ATTRIBUTE_ID 0x8477 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER7_BLOCK9_PRICE_ATTRIBUTE_ID 0x8478 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER7_BLOCK10_PRICE_ATTRIBUTE_ID 0x8479 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER7_BLOCK11_PRICE_ATTRIBUTE_ID 0x847A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER7_BLOCK12_PRICE_ATTRIBUTE_ID 0x847B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER7_BLOCK13_PRICE_ATTRIBUTE_ID 0x847C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER7_BLOCK14_PRICE_ATTRIBUTE_ID 0x847D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER7_BLOCK15_PRICE_ATTRIBUTE_ID 0x847E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER7_BLOCK16_PRICE_ATTRIBUTE_ID 0x847F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER8_BLOCK1_PRICE_ATTRIBUTE_ID 0x8480 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER8_BLOCK2_PRICE_ATTRIBUTE_ID 0x8481 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER8_BLOCK3_PRICE_ATTRIBUTE_ID 0x8482 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER8_BLOCK4_PRICE_ATTRIBUTE_ID 0x8483 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER8_BLOCK5_PRICE_ATTRIBUTE_ID 0x8484 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER8_BLOCK6_PRICE_ATTRIBUTE_ID 0x8485 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER8_BLOCK7_PRICE_ATTRIBUTE_ID 0x8486 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER8_BLOCK8_PRICE_ATTRIBUTE_ID 0x8487 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER8_BLOCK9_PRICE_ATTRIBUTE_ID 0x8488 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER8_BLOCK10_PRICE_ATTRIBUTE_ID 0x8489 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER8_BLOCK11_PRICE_ATTRIBUTE_ID 0x848A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER8_BLOCK12_PRICE_ATTRIBUTE_ID 0x848B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER8_BLOCK13_PRICE_ATTRIBUTE_ID 0x848C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER8_BLOCK14_PRICE_ATTRIBUTE_ID 0x848D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER8_BLOCK15_PRICE_ATTRIBUTE_ID 0x848E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER8_BLOCK16_PRICE_ATTRIBUTE_ID 0x848F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER9_BLOCK1_PRICE_ATTRIBUTE_ID 0x8490 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER9_BLOCK2_PRICE_ATTRIBUTE_ID 0x8491 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER9_BLOCK3_PRICE_ATTRIBUTE_ID 0x8492 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER9_BLOCK4_PRICE_ATTRIBUTE_ID 0x8493 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER9_BLOCK5_PRICE_ATTRIBUTE_ID 0x8494 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER9_BLOCK6_PRICE_ATTRIBUTE_ID 0x8495 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER9_BLOCK7_PRICE_ATTRIBUTE_ID 0x8496 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER9_BLOCK8_PRICE_ATTRIBUTE_ID 0x8497 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER9_BLOCK9_PRICE_ATTRIBUTE_ID 0x8498 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER9_BLOCK10_PRICE_ATTRIBUTE_ID 0x8499 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER9_BLOCK11_PRICE_ATTRIBUTE_ID 0x849A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER9_BLOCK12_PRICE_ATTRIBUTE_ID 0x849B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER9_BLOCK13_PRICE_ATTRIBUTE_ID 0x849C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER9_BLOCK14_PRICE_ATTRIBUTE_ID 0x849D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER9_BLOCK15_PRICE_ATTRIBUTE_ID 0x849E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER9_BLOCK16_PRICE_ATTRIBUTE_ID 0x849F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER10_BLOCK1_PRICE_ATTRIBUTE_ID 0x84A0 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER10_BLOCK2_PRICE_ATTRIBUTE_ID 0x84A1 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER10_BLOCK3_PRICE_ATTRIBUTE_ID 0x84A2 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER10_BLOCK4_PRICE_ATTRIBUTE_ID 0x84A3 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER10_BLOCK5_PRICE_ATTRIBUTE_ID 0x84A4 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER10_BLOCK6_PRICE_ATTRIBUTE_ID 0x84A5 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER10_BLOCK7_PRICE_ATTRIBUTE_ID 0x84A6 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER10_BLOCK8_PRICE_ATTRIBUTE_ID 0x84A7 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER10_BLOCK9_PRICE_ATTRIBUTE_ID 0x84A8 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER10_BLOCK10_PRICE_ATTRIBUTE_ID 0x84A9 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER10_BLOCK11_PRICE_ATTRIBUTE_ID 0x84AA // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER10_BLOCK12_PRICE_ATTRIBUTE_ID 0x84AB // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER10_BLOCK13_PRICE_ATTRIBUTE_ID 0x84AC // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER10_BLOCK14_PRICE_ATTRIBUTE_ID 0x84AD // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER10_BLOCK15_PRICE_ATTRIBUTE_ID 0x84AE // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER10_BLOCK16_PRICE_ATTRIBUTE_ID 0x84AF // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER11_BLOCK1_PRICE_ATTRIBUTE_ID 0x84B0 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER11_BLOCK2_PRICE_ATTRIBUTE_ID 0x84B1 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER11_BLOCK3_PRICE_ATTRIBUTE_ID 0x84B2 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER11_BLOCK4_PRICE_ATTRIBUTE_ID 0x84B3 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER11_BLOCK5_PRICE_ATTRIBUTE_ID 0x84B4 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER11_BLOCK6_PRICE_ATTRIBUTE_ID 0x84B5 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER11_BLOCK7_PRICE_ATTRIBUTE_ID 0x84B6 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER11_BLOCK8_PRICE_ATTRIBUTE_ID 0x84B7 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER11_BLOCK9_PRICE_ATTRIBUTE_ID 0x84B8 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER11_BLOCK10_PRICE_ATTRIBUTE_ID 0x84B9 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER11_BLOCK11_PRICE_ATTRIBUTE_ID 0x84BA // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER11_BLOCK12_PRICE_ATTRIBUTE_ID 0x84BB // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER11_BLOCK13_PRICE_ATTRIBUTE_ID 0x84BC // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER11_BLOCK14_PRICE_ATTRIBUTE_ID 0x84BD // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER11_BLOCK15_PRICE_ATTRIBUTE_ID 0x84BE // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER11_BLOCK16_PRICE_ATTRIBUTE_ID 0x84BF // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER12_BLOCK1_PRICE_ATTRIBUTE_ID 0x84C0 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER12_BLOCK2_PRICE_ATTRIBUTE_ID 0x84C1 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER12_BLOCK3_PRICE_ATTRIBUTE_ID 0x84C2 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER12_BLOCK4_PRICE_ATTRIBUTE_ID 0x84C3 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER12_BLOCK5_PRICE_ATTRIBUTE_ID 0x84C4 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER12_BLOCK6_PRICE_ATTRIBUTE_ID 0x84C5 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER12_BLOCK7_PRICE_ATTRIBUTE_ID 0x84C6 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER12_BLOCK8_PRICE_ATTRIBUTE_ID 0x84C7 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER12_BLOCK9_PRICE_ATTRIBUTE_ID 0x84C8 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER12_BLOCK10_PRICE_ATTRIBUTE_ID 0x84C9 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER12_BLOCK11_PRICE_ATTRIBUTE_ID 0x84CA // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER12_BLOCK12_PRICE_ATTRIBUTE_ID 0x84CB // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER12_BLOCK13_PRICE_ATTRIBUTE_ID 0x84CC // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER12_BLOCK14_PRICE_ATTRIBUTE_ID 0x84CD // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER12_BLOCK15_PRICE_ATTRIBUTE_ID 0x84CE // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER12_BLOCK16_PRICE_ATTRIBUTE_ID 0x84CF // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER13_BLOCK1_PRICE_ATTRIBUTE_ID 0x84D0 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER13_BLOCK2_PRICE_ATTRIBUTE_ID 0x84D1 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER13_BLOCK3_PRICE_ATTRIBUTE_ID 0x84D2 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER13_BLOCK4_PRICE_ATTRIBUTE_ID 0x84D3 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER13_BLOCK5_PRICE_ATTRIBUTE_ID 0x84D4 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER13_BLOCK6_PRICE_ATTRIBUTE_ID 0x84D5 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER13_BLOCK7_PRICE_ATTRIBUTE_ID 0x84D6 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER13_BLOCK8_PRICE_ATTRIBUTE_ID 0x84D7 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER13_BLOCK9_PRICE_ATTRIBUTE_ID 0x84D8 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER13_BLOCK10_PRICE_ATTRIBUTE_ID 0x84D9 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER13_BLOCK11_PRICE_ATTRIBUTE_ID 0x84DA // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER13_BLOCK12_PRICE_ATTRIBUTE_ID 0x84DB // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER13_BLOCK13_PRICE_ATTRIBUTE_ID 0x84DC // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER13_BLOCK14_PRICE_ATTRIBUTE_ID 0x84DD // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER13_BLOCK15_PRICE_ATTRIBUTE_ID 0x84DE // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER13_BLOCK16_PRICE_ATTRIBUTE_ID 0x84DF // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER14_BLOCK1_PRICE_ATTRIBUTE_ID 0x84E0 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER14_BLOCK2_PRICE_ATTRIBUTE_ID 0x84E1 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER14_BLOCK3_PRICE_ATTRIBUTE_ID 0x84E2 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER14_BLOCK4_PRICE_ATTRIBUTE_ID 0x84E3 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER14_BLOCK5_PRICE_ATTRIBUTE_ID 0x84E4 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER14_BLOCK6_PRICE_ATTRIBUTE_ID 0x84E5 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER14_BLOCK7_PRICE_ATTRIBUTE_ID 0x84E6 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER14_BLOCK8_PRICE_ATTRIBUTE_ID 0x84E7 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER14_BLOCK9_PRICE_ATTRIBUTE_ID 0x84E8 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER14_BLOCK10_PRICE_ATTRIBUTE_ID 0x84E9 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER14_BLOCK11_PRICE_ATTRIBUTE_ID 0x84EA // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER14_BLOCK12_PRICE_ATTRIBUTE_ID 0x84EB // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER14_BLOCK13_PRICE_ATTRIBUTE_ID 0x84EC // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER14_BLOCK14_PRICE_ATTRIBUTE_ID 0x84ED // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER14_BLOCK15_PRICE_ATTRIBUTE_ID 0x84EE // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER14_BLOCK16_PRICE_ATTRIBUTE_ID 0x84EF // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER15_BLOCK1_PRICE_ATTRIBUTE_ID 0x84F0 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER15_BLOCK2_PRICE_ATTRIBUTE_ID 0x84F1 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER15_BLOCK3_PRICE_ATTRIBUTE_ID 0x84F2 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER15_BLOCK4_PRICE_ATTRIBUTE_ID 0x84F3 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER15_BLOCK5_PRICE_ATTRIBUTE_ID 0x84F4 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER15_BLOCK6_PRICE_ATTRIBUTE_ID 0x84F5 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER15_BLOCK7_PRICE_ATTRIBUTE_ID 0x84F6 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER15_BLOCK8_PRICE_ATTRIBUTE_ID 0x84F7 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER15_BLOCK9_PRICE_ATTRIBUTE_ID 0x84F8 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER15_BLOCK10_PRICE_ATTRIBUTE_ID 0x84F9 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER15_BLOCK11_PRICE_ATTRIBUTE_ID 0x84FA // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER15_BLOCK12_PRICE_ATTRIBUTE_ID 0x84FB // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER15_BLOCK13_PRICE_ATTRIBUTE_ID 0x84FC // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER15_BLOCK14_PRICE_ATTRIBUTE_ID 0x84FD // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER15_BLOCK15_PRICE_ATTRIBUTE_ID 0x84FE // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER15_BLOCK16_PRICE_ATTRIBUTE_ID 0x84FF // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_PRICE_TIER16_ATTRIBUTE_ID 0x850F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_PRICE_TIER17_ATTRIBUTE_ID 0x8510 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_PRICE_TIER18_ATTRIBUTE_ID 0x8511 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_PRICE_TIER19_ATTRIBUTE_ID 0x8512 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_PRICE_TIER20_ATTRIBUTE_ID 0x8513 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_PRICE_TIER21_ATTRIBUTE_ID 0x8514 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_PRICE_TIER22_ATTRIBUTE_ID 0x8515 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_PRICE_TIER23_ATTRIBUTE_ID 0x8516 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_PRICE_TIER24_ATTRIBUTE_ID 0x8517 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_PRICE_TIER25_ATTRIBUTE_ID 0x8518 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_PRICE_TIER26_ATTRIBUTE_ID 0x8519 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_PRICE_TIER27_ATTRIBUTE_ID 0x851A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_PRICE_TIER28_ATTRIBUTE_ID 0x851B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_PRICE_TIER29_ATTRIBUTE_ID 0x851C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_PRICE_TIER30_ATTRIBUTE_ID 0x851D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_PRICE_TIER31_ATTRIBUTE_ID 0x851E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_PRICE_TIER32_ATTRIBUTE_ID 0x851F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_PRICE_TIER33_ATTRIBUTE_ID 0x8520 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_PRICE_TIER34_ATTRIBUTE_ID 0x8521 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_PRICE_TIER35_ATTRIBUTE_ID 0x8522 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_PRICE_TIER36_ATTRIBUTE_ID 0x8523 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_PRICE_TIER37_ATTRIBUTE_ID 0x8524 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_PRICE_TIER38_ATTRIBUTE_ID 0x8525 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_PRICE_TIER39_ATTRIBUTE_ID 0x8526 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_PRICE_TIER40_ATTRIBUTE_ID 0x8527 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_PRICE_TIER41_ATTRIBUTE_ID 0x8528 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_PRICE_TIER42_ATTRIBUTE_ID 0x8529 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_PRICE_TIER43_ATTRIBUTE_ID 0x852A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_PRICE_TIER44_ATTRIBUTE_ID 0x852B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_PRICE_TIER45_ATTRIBUTE_ID 0x852C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_PRICE_TIER46_ATTRIBUTE_ID 0x852D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_PRICE_TIER47_ATTRIBUTE_ID 0x852E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_PRICE_TIER48_ATTRIBUTE_ID 0x852F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TARIFF_LABEL_ATTRIBUTE_ID 0x8610 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_NUMBER_OF_PRICE_TIERS_IN_USE_ATTRIBUTE_ID 0x8611 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_NUMBER_OF_BLOCK_THRESHOLDS_IN_USE_ATTRIBUTE_ID 0x8612 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER_BLOCK_MODE_ATTRIBUTE_ID 0x8613 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TARIFF_RESOLUTION_PERIOD_ATTRIBUTE_ID 0x8615 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_CO2_ATTRIBUTE_ID 0x8625 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_CO2_UNIT_ATTRIBUTE_ID 0x8626 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_CO2_TRAILING_DIGIT_ATTRIBUTE_ID 0x8627 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_CURRENT_BILLING_PERIOD_START_ATTRIBUTE_ID 0x8700 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_CURRENT_BILLING_PERIOD_DURATION_ATTRIBUTE_ID 0x8701 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_LAST_BILLING_PERIOD_START_ATTRIBUTE_ID 0x8702 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_LAST_BILLING_PERIOD_DURATION_ATTRIBUTE_ID 0x8703 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_LAST_BILLING_PERIOD_CONSOLIDATED_BILL_ATTRIBUTE_ID 0x8704 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PRICE_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_PRICE_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Demand Response and Load Control -// Cluster specification level: se-1.2b-15-0131-02 +#define ZCL_TIER1_PRICE_LABEL_ATTRIBUTE_ID (0x0000) +#define ZCL_TIER2_PRICE_LABEL_ATTRIBUTE_ID (0x0001) +#define ZCL_TIER3_PRICE_LABEL_ATTRIBUTE_ID (0x0002) +#define ZCL_TIER4_PRICE_LABEL_ATTRIBUTE_ID (0x0003) +#define ZCL_TIER5_PRICE_LABEL_ATTRIBUTE_ID (0x0004) +#define ZCL_TIER6_PRICE_LABEL_ATTRIBUTE_ID (0x0005) +#define ZCL_TIER7_PRICE_LABEL_ATTRIBUTE_ID (0x0006) +#define ZCL_TIER8_PRICE_LABEL_ATTRIBUTE_ID (0x0007) +#define ZCL_TIER9_PRICE_LABEL_ATTRIBUTE_ID (0x0008) +#define ZCL_TIER10_PRICE_LABEL_ATTRIBUTE_ID (0x0009) +#define ZCL_TIER11_PRICE_LABEL_ATTRIBUTE_ID (0x000A) +#define ZCL_TIER12_PRICE_LABEL_ATTRIBUTE_ID (0x000B) +#define ZCL_TIER13_PRICE_LABEL_ATTRIBUTE_ID (0x000C) +#define ZCL_TIER14_PRICE_LABEL_ATTRIBUTE_ID (0x000D) +#define ZCL_TIER15_PRICE_LABEL_ATTRIBUTE_ID (0x000E) +#define ZCL_TIER16_PRICE_LABEL_ATTRIBUTE_ID (0x000F) +#define ZCL_TIER17_PRICE_LABEL_ATTRIBUTE_ID (0x0010) +#define ZCL_TIER18_PRICE_LABEL_ATTRIBUTE_ID (0x0011) +#define ZCL_TIER19_PRICE_LABEL_ATTRIBUTE_ID (0x0012) +#define ZCL_TIER20_PRICE_LABEL_ATTRIBUTE_ID (0x0013) +#define ZCL_TIER21_PRICE_LABEL_ATTRIBUTE_ID (0x0014) +#define ZCL_TIER22_PRICE_LABEL_ATTRIBUTE_ID (0x0015) +#define ZCL_TIER23_PRICE_LABEL_ATTRIBUTE_ID (0x0016) +#define ZCL_TIER24_PRICE_LABEL_ATTRIBUTE_ID (0x0017) +#define ZCL_TIER25_PRICE_LABEL_ATTRIBUTE_ID (0x0018) +#define ZCL_TIER26_PRICE_LABEL_ATTRIBUTE_ID (0x0019) +#define ZCL_TIER27_PRICE_LABEL_ATTRIBUTE_ID (0x001A) +#define ZCL_TIER28_PRICE_LABEL_ATTRIBUTE_ID (0x001B) +#define ZCL_TIER29_PRICE_LABEL_ATTRIBUTE_ID (0x001C) +#define ZCL_TIER30_PRICE_LABEL_ATTRIBUTE_ID (0x001D) +#define ZCL_TIER31_PRICE_LABEL_ATTRIBUTE_ID (0x001E) +#define ZCL_TIER32_PRICE_LABEL_ATTRIBUTE_ID (0x001F) +#define ZCL_TIER33_PRICE_LABEL_ATTRIBUTE_ID (0x0020) +#define ZCL_TIER34_PRICE_LABEL_ATTRIBUTE_ID (0x0021) +#define ZCL_TIER35_PRICE_LABEL_ATTRIBUTE_ID (0x0022) +#define ZCL_TIER36_PRICE_LABEL_ATTRIBUTE_ID (0x0023) +#define ZCL_TIER37_PRICE_LABEL_ATTRIBUTE_ID (0x0024) +#define ZCL_TIER38_PRICE_LABEL_ATTRIBUTE_ID (0x0025) +#define ZCL_TIER39_PRICE_LABEL_ATTRIBUTE_ID (0x0026) +#define ZCL_TIER40_PRICE_LABEL_ATTRIBUTE_ID (0x0027) +#define ZCL_TIER41_PRICE_LABEL_ATTRIBUTE_ID (0x0028) +#define ZCL_TIER42_PRICE_LABEL_ATTRIBUTE_ID (0x0029) +#define ZCL_TIER43_PRICE_LABEL_ATTRIBUTE_ID (0x002A) +#define ZCL_TIER44_PRICE_LABEL_ATTRIBUTE_ID (0x002B) +#define ZCL_TIER45_PRICE_LABEL_ATTRIBUTE_ID (0x002C) +#define ZCL_TIER46_PRICE_LABEL_ATTRIBUTE_ID (0x002D) +#define ZCL_TIER47_PRICE_LABEL_ATTRIBUTE_ID (0x002E) +#define ZCL_TIER48_PRICE_LABEL_ATTRIBUTE_ID (0x002F) +#define ZCL_BLOCK1_THRESHOLD_ATTRIBUTE_ID (0x0100) +#define ZCL_BLOCK2_THRESHOLD_ATTRIBUTE_ID (0x0101) +#define ZCL_BLOCK3_THRESHOLD_ATTRIBUTE_ID (0x0102) +#define ZCL_BLOCK4_THRESHOLD_ATTRIBUTE_ID (0x0103) +#define ZCL_BLOCK5_THRESHOLD_ATTRIBUTE_ID (0x0104) +#define ZCL_BLOCK6_THRESHOLD_ATTRIBUTE_ID (0x0105) +#define ZCL_BLOCK7_THRESHOLD_ATTRIBUTE_ID (0x0106) +#define ZCL_BLOCK8_THRESHOLD_ATTRIBUTE_ID (0x0107) +#define ZCL_BLOCK9_THRESHOLD_ATTRIBUTE_ID (0x0108) +#define ZCL_BLOCK10_THRESHOLD_ATTRIBUTE_ID (0x0109) +#define ZCL_BLOCK11_THRESHOLD_ATTRIBUTE_ID (0x010A) +#define ZCL_BLOCK12_THRESHOLD_ATTRIBUTE_ID (0x010B) +#define ZCL_BLOCK13_THRESHOLD_ATTRIBUTE_ID (0x010C) +#define ZCL_BLOCK14_THRESHOLD_ATTRIBUTE_ID (0x010D) +#define ZCL_BLOCK15_THRESHOLD_ATTRIBUTE_ID (0x010E) +#define ZCL_BLOCK_THRESHOLD_COUNT_ATTRIBUTE_ID (0x010F) +#define ZCL_TIER1_BLOCK1_THRESHOLD_ATTRIBUTE_ID (0x0110) +#define ZCL_TIER1_BLOCK2_THRESHOLD_ATTRIBUTE_ID (0x0111) +#define ZCL_TIER1_BLOCK3_THRESHOLD_ATTRIBUTE_ID (0x0112) +#define ZCL_TIER1_BLOCK4_THRESHOLD_ATTRIBUTE_ID (0x0113) +#define ZCL_TIER1_BLOCK5_THRESHOLD_ATTRIBUTE_ID (0x0114) +#define ZCL_TIER1_BLOCK6_THRESHOLD_ATTRIBUTE_ID (0x0115) +#define ZCL_TIER1_BLOCK7_THRESHOLD_ATTRIBUTE_ID (0x0116) +#define ZCL_TIER1_BLOCK8_THRESHOLD_ATTRIBUTE_ID (0x0117) +#define ZCL_TIER1_BLOCK9_THRESHOLD_ATTRIBUTE_ID (0x0118) +#define ZCL_TIER1_BLOCK10_THRESHOLD_ATTRIBUTE_ID (0x0119) +#define ZCL_TIER1_BLOCK11_THRESHOLD_ATTRIBUTE_ID (0x011A) +#define ZCL_TIER1_BLOCK12_THRESHOLD_ATTRIBUTE_ID (0x011B) +#define ZCL_TIER1_BLOCK13_THRESHOLD_ATTRIBUTE_ID (0x011C) +#define ZCL_TIER1_BLOCK14_THRESHOLD_ATTRIBUTE_ID (0x011D) +#define ZCL_TIER1_BLOCK15_THRESHOLD_ATTRIBUTE_ID (0x011E) +#define ZCL_TIER1_BLOCK_THRESHOLD_COUNT_ATTRIBUTE_ID (0x011F) +#define ZCL_TIER2_BLOCK1_THRESHOLD_ATTRIBUTE_ID (0x0120) +#define ZCL_TIER2_BLOCK2_THRESHOLD_ATTRIBUTE_ID (0x0121) +#define ZCL_TIER2_BLOCK3_THRESHOLD_ATTRIBUTE_ID (0x0122) +#define ZCL_TIER2_BLOCK4_THRESHOLD_ATTRIBUTE_ID (0x0123) +#define ZCL_TIER2_BLOCK5_THRESHOLD_ATTRIBUTE_ID (0x0124) +#define ZCL_TIER2_BLOCK6_THRESHOLD_ATTRIBUTE_ID (0x0125) +#define ZCL_TIER2_BLOCK7_THRESHOLD_ATTRIBUTE_ID (0x0126) +#define ZCL_TIER2_BLOCK8_THRESHOLD_ATTRIBUTE_ID (0x0127) +#define ZCL_TIER2_BLOCK9_THRESHOLD_ATTRIBUTE_ID (0x0128) +#define ZCL_TIER2_BLOCK10_THRESHOLD_ATTRIBUTE_ID (0x0129) +#define ZCL_TIER2_BLOCK11_THRESHOLD_ATTRIBUTE_ID (0x012A) +#define ZCL_TIER2_BLOCK12_THRESHOLD_ATTRIBUTE_ID (0x012B) +#define ZCL_TIER2_BLOCK13_THRESHOLD_ATTRIBUTE_ID (0x012C) +#define ZCL_TIER2_BLOCK14_THRESHOLD_ATTRIBUTE_ID (0x012D) +#define ZCL_TIER2_BLOCK15_THRESHOLD_ATTRIBUTE_ID (0x012E) +#define ZCL_TIER2_BLOCK_THRESHOLD_COUNT_ATTRIBUTE_ID (0x012F) +#define ZCL_TIER3_BLOCK1_THRESHOLD_ATTRIBUTE_ID (0x0130) +#define ZCL_TIER3_BLOCK2_THRESHOLD_ATTRIBUTE_ID (0x0131) +#define ZCL_TIER3_BLOCK3_THRESHOLD_ATTRIBUTE_ID (0x0132) +#define ZCL_TIER3_BLOCK4_THRESHOLD_ATTRIBUTE_ID (0x0133) +#define ZCL_TIER3_BLOCK5_THRESHOLD_ATTRIBUTE_ID (0x0134) +#define ZCL_TIER3_BLOCK6_THRESHOLD_ATTRIBUTE_ID (0x0135) +#define ZCL_TIER3_BLOCK7_THRESHOLD_ATTRIBUTE_ID (0x0136) +#define ZCL_TIER3_BLOCK8_THRESHOLD_ATTRIBUTE_ID (0x0137) +#define ZCL_TIER3_BLOCK9_THRESHOLD_ATTRIBUTE_ID (0x0138) +#define ZCL_TIER3_BLOCK10_THRESHOLD_ATTRIBUTE_ID (0x0139) +#define ZCL_TIER3_BLOCK11_THRESHOLD_ATTRIBUTE_ID (0x013A) +#define ZCL_TIER3_BLOCK12_THRESHOLD_ATTRIBUTE_ID (0x013B) +#define ZCL_TIER3_BLOCK13_THRESHOLD_ATTRIBUTE_ID (0x013C) +#define ZCL_TIER3_BLOCK14_THRESHOLD_ATTRIBUTE_ID (0x013D) +#define ZCL_TIER3_BLOCK15_THRESHOLD_ATTRIBUTE_ID (0x013E) +#define ZCL_TIER3_BLOCK_THRESHOLD_COUNT_ATTRIBUTE_ID (0x013F) +#define ZCL_TIER4_BLOCK1_THRESHOLD_ATTRIBUTE_ID (0x0140) +#define ZCL_TIER4_BLOCK2_THRESHOLD_ATTRIBUTE_ID (0x0141) +#define ZCL_TIER4_BLOCK3_THRESHOLD_ATTRIBUTE_ID (0x0142) +#define ZCL_TIER4_BLOCK4_THRESHOLD_ATTRIBUTE_ID (0x0143) +#define ZCL_TIER4_BLOCK5_THRESHOLD_ATTRIBUTE_ID (0x0144) +#define ZCL_TIER4_BLOCK6_THRESHOLD_ATTRIBUTE_ID (0x0145) +#define ZCL_TIER4_BLOCK7_THRESHOLD_ATTRIBUTE_ID (0x0146) +#define ZCL_TIER4_BLOCK8_THRESHOLD_ATTRIBUTE_ID (0x0147) +#define ZCL_TIER4_BLOCK9_THRESHOLD_ATTRIBUTE_ID (0x0148) +#define ZCL_TIER4_BLOCK10_THRESHOLD_ATTRIBUTE_ID (0x0149) +#define ZCL_TIER4_BLOCK11_THRESHOLD_ATTRIBUTE_ID (0x014A) +#define ZCL_TIER4_BLOCK12_THRESHOLD_ATTRIBUTE_ID (0x014B) +#define ZCL_TIER4_BLOCK13_THRESHOLD_ATTRIBUTE_ID (0x014C) +#define ZCL_TIER4_BLOCK14_THRESHOLD_ATTRIBUTE_ID (0x014D) +#define ZCL_TIER4_BLOCK15_THRESHOLD_ATTRIBUTE_ID (0x014E) +#define ZCL_TIER4_BLOCK_THRESHOLD_COUNT_ATTRIBUTE_ID (0x014F) +#define ZCL_TIER5_BLOCK1_THRESHOLD_ATTRIBUTE_ID (0x0150) +#define ZCL_TIER5_BLOCK2_THRESHOLD_ATTRIBUTE_ID (0x0151) +#define ZCL_TIER5_BLOCK3_THRESHOLD_ATTRIBUTE_ID (0x0152) +#define ZCL_TIER5_BLOCK4_THRESHOLD_ATTRIBUTE_ID (0x0153) +#define ZCL_TIER5_BLOCK5_THRESHOLD_ATTRIBUTE_ID (0x0154) +#define ZCL_TIER5_BLOCK6_THRESHOLD_ATTRIBUTE_ID (0x0155) +#define ZCL_TIER5_BLOCK7_THRESHOLD_ATTRIBUTE_ID (0x0156) +#define ZCL_TIER5_BLOCK8_THRESHOLD_ATTRIBUTE_ID (0x0157) +#define ZCL_TIER5_BLOCK9_THRESHOLD_ATTRIBUTE_ID (0x0158) +#define ZCL_TIER5_BLOCK10_THRESHOLD_ATTRIBUTE_ID (0x0159) +#define ZCL_TIER5_BLOCK11_THRESHOLD_ATTRIBUTE_ID (0x015A) +#define ZCL_TIER5_BLOCK12_THRESHOLD_ATTRIBUTE_ID (0x015B) +#define ZCL_TIER5_BLOCK13_THRESHOLD_ATTRIBUTE_ID (0x015C) +#define ZCL_TIER5_BLOCK14_THRESHOLD_ATTRIBUTE_ID (0x015D) +#define ZCL_TIER5_BLOCK15_THRESHOLD_ATTRIBUTE_ID (0x015E) +#define ZCL_TIER5_BLOCK_THRESHOLD_COUNT_ATTRIBUTE_ID (0x015F) +#define ZCL_TIER6_BLOCK1_THRESHOLD_ATTRIBUTE_ID (0x0160) +#define ZCL_TIER6_BLOCK2_THRESHOLD_ATTRIBUTE_ID (0x0161) +#define ZCL_TIER6_BLOCK3_THRESHOLD_ATTRIBUTE_ID (0x0162) +#define ZCL_TIER6_BLOCK4_THRESHOLD_ATTRIBUTE_ID (0x0163) +#define ZCL_TIER6_BLOCK5_THRESHOLD_ATTRIBUTE_ID (0x0164) +#define ZCL_TIER6_BLOCK6_THRESHOLD_ATTRIBUTE_ID (0x0165) +#define ZCL_TIER6_BLOCK7_THRESHOLD_ATTRIBUTE_ID (0x0166) +#define ZCL_TIER6_BLOCK8_THRESHOLD_ATTRIBUTE_ID (0x0167) +#define ZCL_TIER6_BLOCK9_THRESHOLD_ATTRIBUTE_ID (0x0168) +#define ZCL_TIER6_BLOCK10_THRESHOLD_ATTRIBUTE_ID (0x0169) +#define ZCL_TIER6_BLOCK11_THRESHOLD_ATTRIBUTE_ID (0x016A) +#define ZCL_TIER6_BLOCK12_THRESHOLD_ATTRIBUTE_ID (0x016B) +#define ZCL_TIER6_BLOCK13_THRESHOLD_ATTRIBUTE_ID (0x016C) +#define ZCL_TIER6_BLOCK14_THRESHOLD_ATTRIBUTE_ID (0x016D) +#define ZCL_TIER6_BLOCK15_THRESHOLD_ATTRIBUTE_ID (0x016E) +#define ZCL_TIER6_BLOCK_THRESHOLD_COUNT_ATTRIBUTE_ID (0x016F) +#define ZCL_TIER7_BLOCK1_THRESHOLD_ATTRIBUTE_ID (0x0170) +#define ZCL_TIER7_BLOCK2_THRESHOLD_ATTRIBUTE_ID (0x0171) +#define ZCL_TIER7_BLOCK3_THRESHOLD_ATTRIBUTE_ID (0x0172) +#define ZCL_TIER7_BLOCK4_THRESHOLD_ATTRIBUTE_ID (0x0173) +#define ZCL_TIER7_BLOCK5_THRESHOLD_ATTRIBUTE_ID (0x0174) +#define ZCL_TIER7_BLOCK6_THRESHOLD_ATTRIBUTE_ID (0x0175) +#define ZCL_TIER7_BLOCK7_THRESHOLD_ATTRIBUTE_ID (0x0176) +#define ZCL_TIER7_BLOCK8_THRESHOLD_ATTRIBUTE_ID (0x0177) +#define ZCL_TIER7_BLOCK9_THRESHOLD_ATTRIBUTE_ID (0x0178) +#define ZCL_TIER7_BLOCK10_THRESHOLD_ATTRIBUTE_ID (0x0179) +#define ZCL_TIER7_BLOCK11_THRESHOLD_ATTRIBUTE_ID (0x017A) +#define ZCL_TIER7_BLOCK12_THRESHOLD_ATTRIBUTE_ID (0x017B) +#define ZCL_TIER7_BLOCK13_THRESHOLD_ATTRIBUTE_ID (0x017C) +#define ZCL_TIER7_BLOCK14_THRESHOLD_ATTRIBUTE_ID (0x017D) +#define ZCL_TIER7_BLOCK15_THRESHOLD_ATTRIBUTE_ID (0x017E) +#define ZCL_TIER7_BLOCK_THRESHOLD_COUNT_ATTRIBUTE_ID (0x017F) +#define ZCL_TIER8_BLOCK1_THRESHOLD_ATTRIBUTE_ID (0x0180) +#define ZCL_TIER8_BLOCK2_THRESHOLD_ATTRIBUTE_ID (0x0181) +#define ZCL_TIER8_BLOCK3_THRESHOLD_ATTRIBUTE_ID (0x0182) +#define ZCL_TIER8_BLOCK4_THRESHOLD_ATTRIBUTE_ID (0x0183) +#define ZCL_TIER8_BLOCK5_THRESHOLD_ATTRIBUTE_ID (0x0184) +#define ZCL_TIER8_BLOCK6_THRESHOLD_ATTRIBUTE_ID (0x0185) +#define ZCL_TIER8_BLOCK7_THRESHOLD_ATTRIBUTE_ID (0x0186) +#define ZCL_TIER8_BLOCK8_THRESHOLD_ATTRIBUTE_ID (0x0187) +#define ZCL_TIER8_BLOCK9_THRESHOLD_ATTRIBUTE_ID (0x0188) +#define ZCL_TIER8_BLOCK10_THRESHOLD_ATTRIBUTE_ID (0x0189) +#define ZCL_TIER8_BLOCK11_THRESHOLD_ATTRIBUTE_ID (0x018A) +#define ZCL_TIER8_BLOCK12_THRESHOLD_ATTRIBUTE_ID (0x018B) +#define ZCL_TIER8_BLOCK13_THRESHOLD_ATTRIBUTE_ID (0x018C) +#define ZCL_TIER8_BLOCK14_THRESHOLD_ATTRIBUTE_ID (0x018D) +#define ZCL_TIER8_BLOCK15_THRESHOLD_ATTRIBUTE_ID (0x018E) +#define ZCL_TIER8_BLOCK_THRESHOLD_COUNT_ATTRIBUTE_ID (0x018F) +#define ZCL_TIER9_BLOCK1_THRESHOLD_ATTRIBUTE_ID (0x0190) +#define ZCL_TIER9_BLOCK2_THRESHOLD_ATTRIBUTE_ID (0x0191) +#define ZCL_TIER9_BLOCK3_THRESHOLD_ATTRIBUTE_ID (0x0192) +#define ZCL_TIER9_BLOCK4_THRESHOLD_ATTRIBUTE_ID (0x0193) +#define ZCL_TIER9_BLOCK5_THRESHOLD_ATTRIBUTE_ID (0x0194) +#define ZCL_TIER9_BLOCK6_THRESHOLD_ATTRIBUTE_ID (0x0195) +#define ZCL_TIER9_BLOCK7_THRESHOLD_ATTRIBUTE_ID (0x0196) +#define ZCL_TIER9_BLOCK8_THRESHOLD_ATTRIBUTE_ID (0x0197) +#define ZCL_TIER9_BLOCK9_THRESHOLD_ATTRIBUTE_ID (0x0198) +#define ZCL_TIER9_BLOCK10_THRESHOLD_ATTRIBUTE_ID (0x0199) +#define ZCL_TIER9_BLOCK11_THRESHOLD_ATTRIBUTE_ID (0x019A) +#define ZCL_TIER9_BLOCK12_THRESHOLD_ATTRIBUTE_ID (0x019B) +#define ZCL_TIER9_BLOCK13_THRESHOLD_ATTRIBUTE_ID (0x019C) +#define ZCL_TIER9_BLOCK14_THRESHOLD_ATTRIBUTE_ID (0x019D) +#define ZCL_TIER9_BLOCK15_THRESHOLD_ATTRIBUTE_ID (0x019E) +#define ZCL_TIER9_BLOCK_THRESHOLD_COUNT_ATTRIBUTE_ID (0x019F) +#define ZCL_TIER10_BLOCK1_THRESHOLD_ATTRIBUTE_ID (0x01A0) +#define ZCL_TIER10_BLOCK2_THRESHOLD_ATTRIBUTE_ID (0x01A1) +#define ZCL_TIER10_BLOCK3_THRESHOLD_ATTRIBUTE_ID (0x01A2) +#define ZCL_TIER10_BLOCK4_THRESHOLD_ATTRIBUTE_ID (0x01A3) +#define ZCL_TIER10_BLOCK5_THRESHOLD_ATTRIBUTE_ID (0x01A4) +#define ZCL_TIER10_BLOCK6_THRESHOLD_ATTRIBUTE_ID (0x01A5) +#define ZCL_TIER10_BLOCK7_THRESHOLD_ATTRIBUTE_ID (0x01A6) +#define ZCL_TIER10_BLOCK8_THRESHOLD_ATTRIBUTE_ID (0x01A7) +#define ZCL_TIER10_BLOCK9_THRESHOLD_ATTRIBUTE_ID (0x01A8) +#define ZCL_TIER10_BLOCK10_THRESHOLD_ATTRIBUTE_ID (0x01A9) +#define ZCL_TIER10_BLOCK11_THRESHOLD_ATTRIBUTE_ID (0x01AA) +#define ZCL_TIER10_BLOCK12_THRESHOLD_ATTRIBUTE_ID (0x01AB) +#define ZCL_TIER10_BLOCK13_THRESHOLD_ATTRIBUTE_ID (0x01AC) +#define ZCL_TIER10_BLOCK14_THRESHOLD_ATTRIBUTE_ID (0x01AD) +#define ZCL_TIER10_BLOCK15_THRESHOLD_ATTRIBUTE_ID (0x01AE) +#define ZCL_TIER10_BLOCK_THRESHOLD_COUNT_ATTRIBUTE_ID (0x01AF) +#define ZCL_TIER11_BLOCK1_THRESHOLD_ATTRIBUTE_ID (0x01B0) +#define ZCL_TIER11_BLOCK2_THRESHOLD_ATTRIBUTE_ID (0x01B1) +#define ZCL_TIER11_BLOCK3_THRESHOLD_ATTRIBUTE_ID (0x01B2) +#define ZCL_TIER11_BLOCK4_THRESHOLD_ATTRIBUTE_ID (0x01B3) +#define ZCL_TIER11_BLOCK5_THRESHOLD_ATTRIBUTE_ID (0x01B4) +#define ZCL_TIER11_BLOCK6_THRESHOLD_ATTRIBUTE_ID (0x01B5) +#define ZCL_TIER11_BLOCK7_THRESHOLD_ATTRIBUTE_ID (0x01B6) +#define ZCL_TIER11_BLOCK8_THRESHOLD_ATTRIBUTE_ID (0x01B7) +#define ZCL_TIER11_BLOCK9_THRESHOLD_ATTRIBUTE_ID (0x01B8) +#define ZCL_TIER11_BLOCK10_THRESHOLD_ATTRIBUTE_ID (0x01B9) +#define ZCL_TIER11_BLOCK11_THRESHOLD_ATTRIBUTE_ID (0x01BA) +#define ZCL_TIER11_BLOCK12_THRESHOLD_ATTRIBUTE_ID (0x01BB) +#define ZCL_TIER11_BLOCK13_THRESHOLD_ATTRIBUTE_ID (0x01BC) +#define ZCL_TIER11_BLOCK14_THRESHOLD_ATTRIBUTE_ID (0x01BD) +#define ZCL_TIER11_BLOCK15_THRESHOLD_ATTRIBUTE_ID (0x01BE) +#define ZCL_TIER11_BLOCK_THRESHOLD_COUNT_ATTRIBUTE_ID (0x01BF) +#define ZCL_TIER12_BLOCK1_THRESHOLD_ATTRIBUTE_ID (0x01C0) +#define ZCL_TIER12_BLOCK2_THRESHOLD_ATTRIBUTE_ID (0x01C1) +#define ZCL_TIER12_BLOCK3_THRESHOLD_ATTRIBUTE_ID (0x01C2) +#define ZCL_TIER12_BLOCK4_THRESHOLD_ATTRIBUTE_ID (0x01C3) +#define ZCL_TIER12_BLOCK5_THRESHOLD_ATTRIBUTE_ID (0x01C4) +#define ZCL_TIER12_BLOCK6_THRESHOLD_ATTRIBUTE_ID (0x01C5) +#define ZCL_TIER12_BLOCK7_THRESHOLD_ATTRIBUTE_ID (0x01C6) +#define ZCL_TIER12_BLOCK8_THRESHOLD_ATTRIBUTE_ID (0x01C7) +#define ZCL_TIER12_BLOCK9_THRESHOLD_ATTRIBUTE_ID (0x01C8) +#define ZCL_TIER12_BLOCK10_THRESHOLD_ATTRIBUTE_ID (0x01C9) +#define ZCL_TIER12_BLOCK11_THRESHOLD_ATTRIBUTE_ID (0x01CA) +#define ZCL_TIER12_BLOCK12_THRESHOLD_ATTRIBUTE_ID (0x01CB) +#define ZCL_TIER12_BLOCK13_THRESHOLD_ATTRIBUTE_ID (0x01CC) +#define ZCL_TIER12_BLOCK14_THRESHOLD_ATTRIBUTE_ID (0x01CD) +#define ZCL_TIER12_BLOCK15_THRESHOLD_ATTRIBUTE_ID (0x01CE) +#define ZCL_TIER12_BLOCK_THRESHOLD_COUNT_ATTRIBUTE_ID (0x01CF) +#define ZCL_TIER13_BLOCK1_THRESHOLD_ATTRIBUTE_ID (0x01D0) +#define ZCL_TIER13_BLOCK2_THRESHOLD_ATTRIBUTE_ID (0x01D1) +#define ZCL_TIER13_BLOCK3_THRESHOLD_ATTRIBUTE_ID (0x01D2) +#define ZCL_TIER13_BLOCK4_THRESHOLD_ATTRIBUTE_ID (0x01D3) +#define ZCL_TIER13_BLOCK5_THRESHOLD_ATTRIBUTE_ID (0x01D4) +#define ZCL_TIER13_BLOCK6_THRESHOLD_ATTRIBUTE_ID (0x01D5) +#define ZCL_TIER13_BLOCK7_THRESHOLD_ATTRIBUTE_ID (0x01D6) +#define ZCL_TIER13_BLOCK8_THRESHOLD_ATTRIBUTE_ID (0x01D7) +#define ZCL_TIER13_BLOCK9_THRESHOLD_ATTRIBUTE_ID (0x01D8) +#define ZCL_TIER13_BLOCK10_THRESHOLD_ATTRIBUTE_ID (0x01D9) +#define ZCL_TIER13_BLOCK11_THRESHOLD_ATTRIBUTE_ID (0x01DA) +#define ZCL_TIER13_BLOCK12_THRESHOLD_ATTRIBUTE_ID (0x01DB) +#define ZCL_TIER13_BLOCK13_THRESHOLD_ATTRIBUTE_ID (0x01DC) +#define ZCL_TIER13_BLOCK14_THRESHOLD_ATTRIBUTE_ID (0x01DD) +#define ZCL_TIER13_BLOCK15_THRESHOLD_ATTRIBUTE_ID (0x01DE) +#define ZCL_TIER13_BLOCK_THRESHOLD_COUNT_ATTRIBUTE_ID (0x01DF) +#define ZCL_TIER14_BLOCK1_THRESHOLD_ATTRIBUTE_ID (0x01E0) +#define ZCL_TIER14_BLOCK2_THRESHOLD_ATTRIBUTE_ID (0x01E1) +#define ZCL_TIER14_BLOCK3_THRESHOLD_ATTRIBUTE_ID (0x01E2) +#define ZCL_TIER14_BLOCK4_THRESHOLD_ATTRIBUTE_ID (0x01E3) +#define ZCL_TIER14_BLOCK5_THRESHOLD_ATTRIBUTE_ID (0x01E4) +#define ZCL_TIER14_BLOCK6_THRESHOLD_ATTRIBUTE_ID (0x01E5) +#define ZCL_TIER14_BLOCK7_THRESHOLD_ATTRIBUTE_ID (0x01E6) +#define ZCL_TIER14_BLOCK8_THRESHOLD_ATTRIBUTE_ID (0x01E7) +#define ZCL_TIER14_BLOCK9_THRESHOLD_ATTRIBUTE_ID (0x01E8) +#define ZCL_TIER14_BLOCK10_THRESHOLD_ATTRIBUTE_ID (0x01E9) +#define ZCL_TIER14_BLOCK11_THRESHOLD_ATTRIBUTE_ID (0x01EA) +#define ZCL_TIER14_BLOCK12_THRESHOLD_ATTRIBUTE_ID (0x01EB) +#define ZCL_TIER14_BLOCK13_THRESHOLD_ATTRIBUTE_ID (0x01EC) +#define ZCL_TIER14_BLOCK14_THRESHOLD_ATTRIBUTE_ID (0x01ED) +#define ZCL_TIER14_BLOCK15_THRESHOLD_ATTRIBUTE_ID (0x01EE) +#define ZCL_TIER14_BLOCK_THRESHOLD_COUNT_ATTRIBUTE_ID (0x01EF) +#define ZCL_TIER15_BLOCK1_THRESHOLD_ATTRIBUTE_ID (0x01F0) +#define ZCL_TIER15_BLOCK2_THRESHOLD_ATTRIBUTE_ID (0x01F1) +#define ZCL_TIER15_BLOCK3_THRESHOLD_ATTRIBUTE_ID (0x01F2) +#define ZCL_TIER15_BLOCK4_THRESHOLD_ATTRIBUTE_ID (0x01F3) +#define ZCL_TIER15_BLOCK5_THRESHOLD_ATTRIBUTE_ID (0x01F4) +#define ZCL_TIER15_BLOCK6_THRESHOLD_ATTRIBUTE_ID (0x01F5) +#define ZCL_TIER15_BLOCK7_THRESHOLD_ATTRIBUTE_ID (0x01F6) +#define ZCL_TIER15_BLOCK8_THRESHOLD_ATTRIBUTE_ID (0x01F7) +#define ZCL_TIER15_BLOCK9_THRESHOLD_ATTRIBUTE_ID (0x01F8) +#define ZCL_TIER15_BLOCK10_THRESHOLD_ATTRIBUTE_ID (0x01F9) +#define ZCL_TIER15_BLOCK11_THRESHOLD_ATTRIBUTE_ID (0x01FA) +#define ZCL_TIER15_BLOCK12_THRESHOLD_ATTRIBUTE_ID (0x01FB) +#define ZCL_TIER15_BLOCK13_THRESHOLD_ATTRIBUTE_ID (0x01FC) +#define ZCL_TIER15_BLOCK14_THRESHOLD_ATTRIBUTE_ID (0x01FD) +#define ZCL_TIER15_BLOCK15_THRESHOLD_ATTRIBUTE_ID (0x01FE) +#define ZCL_TIER15_BLOCK_THRESHOLD_COUNT_ATTRIBUTE_ID (0x01FF) +#define ZCL_START_OF_BLOCK_PERIOD_ATTRIBUTE_ID (0x0200) +#define ZCL_BLOCK_PERIOD_DURATION_MINUTES_ATTRIBUTE_ID (0x0201) +#define ZCL_THRESHOLD_MULTIPLIER_ATTRIBUTE_ID (0x0202) +#define ZCL_THRESHOLD_DIVISOR_ATTRIBUTE_ID (0x0203) +#define ZCL_BLOCK_PERIOD_DURATION_TYPE_ATTRIBUTE_ID (0x0204) +#define ZCL_COMMODITY_TYPE_SERVER_ATTRIBUTE_ID (0x0300) +#define ZCL_STANDING_CHARGE_ATTRIBUTE_ID (0x0301) +#define ZCL_CONVERSION_FACTOR_ATTRIBUTE_ID (0x0302) +#define ZCL_CONVERSION_FACTOR_TRAILING_DIGIT_ATTRIBUTE_ID (0x0303) +#define ZCL_CALORIFIC_VALUE_ATTRIBUTE_ID (0x0304) +#define ZCL_CALORIFIC_VALUE_UNIT_ATTRIBUTE_ID (0x0305) +#define ZCL_CALORIFIC_VALUE_TRAILING_DIGIT_ATTRIBUTE_ID (0x0306) +#define ZCL_NO_TIER_BLOCK1_PRICE_ATTRIBUTE_ID (0x0400) +#define ZCL_NO_TIER_BLOCK2_PRICE_ATTRIBUTE_ID (0x0401) +#define ZCL_NO_TIER_BLOCK3_PRICE_ATTRIBUTE_ID (0x0402) +#define ZCL_NO_TIER_BLOCK4_PRICE_ATTRIBUTE_ID (0x0403) +#define ZCL_NO_TIER_BLOCK5_PRICE_ATTRIBUTE_ID (0x0404) +#define ZCL_NO_TIER_BLOCK6_PRICE_ATTRIBUTE_ID (0x0405) +#define ZCL_NO_TIER_BLOCK7_PRICE_ATTRIBUTE_ID (0x0406) +#define ZCL_NO_TIER_BLOCK8_PRICE_ATTRIBUTE_ID (0x0407) +#define ZCL_NO_TIER_BLOCK9_PRICE_ATTRIBUTE_ID (0x0408) +#define ZCL_NO_TIER_BLOCK10_PRICE_ATTRIBUTE_ID (0x0409) +#define ZCL_NO_TIER_BLOCK11_PRICE_ATTRIBUTE_ID (0x040A) +#define ZCL_NO_TIER_BLOCK12_PRICE_ATTRIBUTE_ID (0x040B) +#define ZCL_NO_TIER_BLOCK13_PRICE_ATTRIBUTE_ID (0x040C) +#define ZCL_NO_TIER_BLOCK14_PRICE_ATTRIBUTE_ID (0x040D) +#define ZCL_NO_TIER_BLOCK15_PRICE_ATTRIBUTE_ID (0x040E) +#define ZCL_NO_TIER_BLOCK16_PRICE_ATTRIBUTE_ID (0x040F) +#define ZCL_TIER1_BLOCK1_PRICE_ATTRIBUTE_ID (0x0410) +#define ZCL_TIER1_BLOCK2_PRICE_ATTRIBUTE_ID (0x0411) +#define ZCL_TIER1_BLOCK3_PRICE_ATTRIBUTE_ID (0x0412) +#define ZCL_TIER1_BLOCK4_PRICE_ATTRIBUTE_ID (0x0413) +#define ZCL_TIER1_BLOCK5_PRICE_ATTRIBUTE_ID (0x0414) +#define ZCL_TIER1_BLOCK6_PRICE_ATTRIBUTE_ID (0x0415) +#define ZCL_TIER1_BLOCK7_PRICE_ATTRIBUTE_ID (0x0416) +#define ZCL_TIER1_BLOCK8_PRICE_ATTRIBUTE_ID (0x0417) +#define ZCL_TIER1_BLOCK9_PRICE_ATTRIBUTE_ID (0x0418) +#define ZCL_TIER1_BLOCK10_PRICE_ATTRIBUTE_ID (0x0419) +#define ZCL_TIER1_BLOCK11_PRICE_ATTRIBUTE_ID (0x041A) +#define ZCL_TIER1_BLOCK12_PRICE_ATTRIBUTE_ID (0x041B) +#define ZCL_TIER1_BLOCK13_PRICE_ATTRIBUTE_ID (0x041C) +#define ZCL_TIER1_BLOCK14_PRICE_ATTRIBUTE_ID (0x041D) +#define ZCL_TIER1_BLOCK15_PRICE_ATTRIBUTE_ID (0x041E) +#define ZCL_TIER1_BLOCK16_PRICE_ATTRIBUTE_ID (0x041F) +#define ZCL_TIER2_BLOCK1_PRICE_ATTRIBUTE_ID (0x0420) +#define ZCL_TIER2_BLOCK2_PRICE_ATTRIBUTE_ID (0x0421) +#define ZCL_TIER2_BLOCK3_PRICE_ATTRIBUTE_ID (0x0422) +#define ZCL_TIER2_BLOCK4_PRICE_ATTRIBUTE_ID (0x0423) +#define ZCL_TIER2_BLOCK5_PRICE_ATTRIBUTE_ID (0x0424) +#define ZCL_TIER2_BLOCK6_PRICE_ATTRIBUTE_ID (0x0425) +#define ZCL_TIER2_BLOCK7_PRICE_ATTRIBUTE_ID (0x0426) +#define ZCL_TIER2_BLOCK8_PRICE_ATTRIBUTE_ID (0x0427) +#define ZCL_TIER2_BLOCK9_PRICE_ATTRIBUTE_ID (0x0428) +#define ZCL_TIER2_BLOCK10_PRICE_ATTRIBUTE_ID (0x0429) +#define ZCL_TIER2_BLOCK11_PRICE_ATTRIBUTE_ID (0x042A) +#define ZCL_TIER2_BLOCK12_PRICE_ATTRIBUTE_ID (0x042B) +#define ZCL_TIER2_BLOCK13_PRICE_ATTRIBUTE_ID (0x042C) +#define ZCL_TIER2_BLOCK14_PRICE_ATTRIBUTE_ID (0x042D) +#define ZCL_TIER2_BLOCK15_PRICE_ATTRIBUTE_ID (0x042E) +#define ZCL_TIER2_BLOCK16_PRICE_ATTRIBUTE_ID (0x042F) +#define ZCL_TIER3_BLOCK1_PRICE_ATTRIBUTE_ID (0x0430) +#define ZCL_TIER3_BLOCK2_PRICE_ATTRIBUTE_ID (0x0431) +#define ZCL_TIER3_BLOCK3_PRICE_ATTRIBUTE_ID (0x0432) +#define ZCL_TIER3_BLOCK4_PRICE_ATTRIBUTE_ID (0x0433) +#define ZCL_TIER3_BLOCK5_PRICE_ATTRIBUTE_ID (0x0434) +#define ZCL_TIER3_BLOCK6_PRICE_ATTRIBUTE_ID (0x0435) +#define ZCL_TIER3_BLOCK7_PRICE_ATTRIBUTE_ID (0x0436) +#define ZCL_TIER3_BLOCK8_PRICE_ATTRIBUTE_ID (0x0437) +#define ZCL_TIER3_BLOCK9_PRICE_ATTRIBUTE_ID (0x0438) +#define ZCL_TIER3_BLOCK10_PRICE_ATTRIBUTE_ID (0x0439) +#define ZCL_TIER3_BLOCK11_PRICE_ATTRIBUTE_ID (0x043A) +#define ZCL_TIER3_BLOCK12_PRICE_ATTRIBUTE_ID (0x043B) +#define ZCL_TIER3_BLOCK13_PRICE_ATTRIBUTE_ID (0x043C) +#define ZCL_TIER3_BLOCK14_PRICE_ATTRIBUTE_ID (0x043D) +#define ZCL_TIER3_BLOCK15_PRICE_ATTRIBUTE_ID (0x043E) +#define ZCL_TIER3_BLOCK16_PRICE_ATTRIBUTE_ID (0x043F) +#define ZCL_TIER4_BLOCK1_PRICE_ATTRIBUTE_ID (0x0440) +#define ZCL_TIER4_BLOCK2_PRICE_ATTRIBUTE_ID (0x0441) +#define ZCL_TIER4_BLOCK3_PRICE_ATTRIBUTE_ID (0x0442) +#define ZCL_TIER4_BLOCK4_PRICE_ATTRIBUTE_ID (0x0443) +#define ZCL_TIER4_BLOCK5_PRICE_ATTRIBUTE_ID (0x0444) +#define ZCL_TIER4_BLOCK6_PRICE_ATTRIBUTE_ID (0x0445) +#define ZCL_TIER4_BLOCK7_PRICE_ATTRIBUTE_ID (0x0446) +#define ZCL_TIER4_BLOCK8_PRICE_ATTRIBUTE_ID (0x0447) +#define ZCL_TIER4_BLOCK9_PRICE_ATTRIBUTE_ID (0x0448) +#define ZCL_TIER4_BLOCK10_PRICE_ATTRIBUTE_ID (0x0449) +#define ZCL_TIER4_BLOCK11_PRICE_ATTRIBUTE_ID (0x044A) +#define ZCL_TIER4_BLOCK12_PRICE_ATTRIBUTE_ID (0x044B) +#define ZCL_TIER4_BLOCK13_PRICE_ATTRIBUTE_ID (0x044C) +#define ZCL_TIER4_BLOCK14_PRICE_ATTRIBUTE_ID (0x044D) +#define ZCL_TIER4_BLOCK15_PRICE_ATTRIBUTE_ID (0x044E) +#define ZCL_TIER4_BLOCK16_PRICE_ATTRIBUTE_ID (0x044F) +#define ZCL_TIER5_BLOCK1_PRICE_ATTRIBUTE_ID (0x0450) +#define ZCL_TIER5_BLOCK2_PRICE_ATTRIBUTE_ID (0x0451) +#define ZCL_TIER5_BLOCK3_PRICE_ATTRIBUTE_ID (0x0452) +#define ZCL_TIER5_BLOCK4_PRICE_ATTRIBUTE_ID (0x0453) +#define ZCL_TIER5_BLOCK5_PRICE_ATTRIBUTE_ID (0x0454) +#define ZCL_TIER5_BLOCK6_PRICE_ATTRIBUTE_ID (0x0455) +#define ZCL_TIER5_BLOCK7_PRICE_ATTRIBUTE_ID (0x0456) +#define ZCL_TIER5_BLOCK8_PRICE_ATTRIBUTE_ID (0x0457) +#define ZCL_TIER5_BLOCK9_PRICE_ATTRIBUTE_ID (0x0458) +#define ZCL_TIER5_BLOCK10_PRICE_ATTRIBUTE_ID (0x0459) +#define ZCL_TIER5_BLOCK11_PRICE_ATTRIBUTE_ID (0x045A) +#define ZCL_TIER5_BLOCK12_PRICE_ATTRIBUTE_ID (0x045B) +#define ZCL_TIER5_BLOCK13_PRICE_ATTRIBUTE_ID (0x045C) +#define ZCL_TIER5_BLOCK14_PRICE_ATTRIBUTE_ID (0x045D) +#define ZCL_TIER5_BLOCK15_PRICE_ATTRIBUTE_ID (0x045E) +#define ZCL_TIER5_BLOCK16_PRICE_ATTRIBUTE_ID (0x045F) +#define ZCL_TIER6_BLOCK1_PRICE_ATTRIBUTE_ID (0x0460) +#define ZCL_TIER6_BLOCK2_PRICE_ATTRIBUTE_ID (0x0461) +#define ZCL_TIER6_BLOCK3_PRICE_ATTRIBUTE_ID (0x0462) +#define ZCL_TIER6_BLOCK4_PRICE_ATTRIBUTE_ID (0x0463) +#define ZCL_TIER6_BLOCK5_PRICE_ATTRIBUTE_ID (0x0464) +#define ZCL_TIER6_BLOCK6_PRICE_ATTRIBUTE_ID (0x0465) +#define ZCL_TIER6_BLOCK7_PRICE_ATTRIBUTE_ID (0x0466) +#define ZCL_TIER6_BLOCK8_PRICE_ATTRIBUTE_ID (0x0467) +#define ZCL_TIER6_BLOCK9_PRICE_ATTRIBUTE_ID (0x0468) +#define ZCL_TIER6_BLOCK10_PRICE_ATTRIBUTE_ID (0x0469) +#define ZCL_TIER6_BLOCK11_PRICE_ATTRIBUTE_ID (0x046A) +#define ZCL_TIER6_BLOCK12_PRICE_ATTRIBUTE_ID (0x046B) +#define ZCL_TIER6_BLOCK13_PRICE_ATTRIBUTE_ID (0x046C) +#define ZCL_TIER6_BLOCK14_PRICE_ATTRIBUTE_ID (0x046D) +#define ZCL_TIER6_BLOCK15_PRICE_ATTRIBUTE_ID (0x046E) +#define ZCL_TIER6_BLOCK16_PRICE_ATTRIBUTE_ID (0x046F) +#define ZCL_TIER7_BLOCK1_PRICE_ATTRIBUTE_ID (0x0470) +#define ZCL_TIER7_BLOCK2_PRICE_ATTRIBUTE_ID (0x0471) +#define ZCL_TIER7_BLOCK3_PRICE_ATTRIBUTE_ID (0x0472) +#define ZCL_TIER7_BLOCK4_PRICE_ATTRIBUTE_ID (0x0473) +#define ZCL_TIER7_BLOCK5_PRICE_ATTRIBUTE_ID (0x0474) +#define ZCL_TIER7_BLOCK6_PRICE_ATTRIBUTE_ID (0x0475) +#define ZCL_TIER7_BLOCK7_PRICE_ATTRIBUTE_ID (0x0476) +#define ZCL_TIER7_BLOCK8_PRICE_ATTRIBUTE_ID (0x0477) +#define ZCL_TIER7_BLOCK9_PRICE_ATTRIBUTE_ID (0x0478) +#define ZCL_TIER7_BLOCK10_PRICE_ATTRIBUTE_ID (0x0479) +#define ZCL_TIER7_BLOCK11_PRICE_ATTRIBUTE_ID (0x047A) +#define ZCL_TIER7_BLOCK12_PRICE_ATTRIBUTE_ID (0x047B) +#define ZCL_TIER7_BLOCK13_PRICE_ATTRIBUTE_ID (0x047C) +#define ZCL_TIER7_BLOCK14_PRICE_ATTRIBUTE_ID (0x047D) +#define ZCL_TIER7_BLOCK15_PRICE_ATTRIBUTE_ID (0x047E) +#define ZCL_TIER7_BLOCK16_PRICE_ATTRIBUTE_ID (0x047F) +#define ZCL_TIER8_BLOCK1_PRICE_ATTRIBUTE_ID (0x0480) +#define ZCL_TIER8_BLOCK2_PRICE_ATTRIBUTE_ID (0x0481) +#define ZCL_TIER8_BLOCK3_PRICE_ATTRIBUTE_ID (0x0482) +#define ZCL_TIER8_BLOCK4_PRICE_ATTRIBUTE_ID (0x0483) +#define ZCL_TIER8_BLOCK5_PRICE_ATTRIBUTE_ID (0x0484) +#define ZCL_TIER8_BLOCK6_PRICE_ATTRIBUTE_ID (0x0485) +#define ZCL_TIER8_BLOCK7_PRICE_ATTRIBUTE_ID (0x0486) +#define ZCL_TIER8_BLOCK8_PRICE_ATTRIBUTE_ID (0x0487) +#define ZCL_TIER8_BLOCK9_PRICE_ATTRIBUTE_ID (0x0488) +#define ZCL_TIER8_BLOCK10_PRICE_ATTRIBUTE_ID (0x0489) +#define ZCL_TIER8_BLOCK11_PRICE_ATTRIBUTE_ID (0x048A) +#define ZCL_TIER8_BLOCK12_PRICE_ATTRIBUTE_ID (0x048B) +#define ZCL_TIER8_BLOCK13_PRICE_ATTRIBUTE_ID (0x048C) +#define ZCL_TIER8_BLOCK14_PRICE_ATTRIBUTE_ID (0x048D) +#define ZCL_TIER8_BLOCK15_PRICE_ATTRIBUTE_ID (0x048E) +#define ZCL_TIER8_BLOCK16_PRICE_ATTRIBUTE_ID (0x048F) +#define ZCL_TIER9_BLOCK1_PRICE_ATTRIBUTE_ID (0x0490) +#define ZCL_TIER9_BLOCK2_PRICE_ATTRIBUTE_ID (0x0491) +#define ZCL_TIER9_BLOCK3_PRICE_ATTRIBUTE_ID (0x0492) +#define ZCL_TIER9_BLOCK4_PRICE_ATTRIBUTE_ID (0x0493) +#define ZCL_TIER9_BLOCK5_PRICE_ATTRIBUTE_ID (0x0494) +#define ZCL_TIER9_BLOCK6_PRICE_ATTRIBUTE_ID (0x0495) +#define ZCL_TIER9_BLOCK7_PRICE_ATTRIBUTE_ID (0x0496) +#define ZCL_TIER9_BLOCK8_PRICE_ATTRIBUTE_ID (0x0497) +#define ZCL_TIER9_BLOCK9_PRICE_ATTRIBUTE_ID (0x0498) +#define ZCL_TIER9_BLOCK10_PRICE_ATTRIBUTE_ID (0x0499) +#define ZCL_TIER9_BLOCK11_PRICE_ATTRIBUTE_ID (0x049A) +#define ZCL_TIER9_BLOCK12_PRICE_ATTRIBUTE_ID (0x049B) +#define ZCL_TIER9_BLOCK13_PRICE_ATTRIBUTE_ID (0x049C) +#define ZCL_TIER9_BLOCK14_PRICE_ATTRIBUTE_ID (0x049D) +#define ZCL_TIER9_BLOCK15_PRICE_ATTRIBUTE_ID (0x049E) +#define ZCL_TIER9_BLOCK16_PRICE_ATTRIBUTE_ID (0x049F) +#define ZCL_TIER10_BLOCK1_PRICE_ATTRIBUTE_ID (0x04A0) +#define ZCL_TIER10_BLOCK2_PRICE_ATTRIBUTE_ID (0x04A1) +#define ZCL_TIER10_BLOCK3_PRICE_ATTRIBUTE_ID (0x04A2) +#define ZCL_TIER10_BLOCK4_PRICE_ATTRIBUTE_ID (0x04A3) +#define ZCL_TIER10_BLOCK5_PRICE_ATTRIBUTE_ID (0x04A4) +#define ZCL_TIER10_BLOCK6_PRICE_ATTRIBUTE_ID (0x04A5) +#define ZCL_TIER10_BLOCK7_PRICE_ATTRIBUTE_ID (0x04A6) +#define ZCL_TIER10_BLOCK8_PRICE_ATTRIBUTE_ID (0x04A7) +#define ZCL_TIER10_BLOCK9_PRICE_ATTRIBUTE_ID (0x04A8) +#define ZCL_TIER10_BLOCK10_PRICE_ATTRIBUTE_ID (0x04A9) +#define ZCL_TIER10_BLOCK11_PRICE_ATTRIBUTE_ID (0x04AA) +#define ZCL_TIER10_BLOCK12_PRICE_ATTRIBUTE_ID (0x04AB) +#define ZCL_TIER10_BLOCK13_PRICE_ATTRIBUTE_ID (0x04AC) +#define ZCL_TIER10_BLOCK14_PRICE_ATTRIBUTE_ID (0x04AD) +#define ZCL_TIER10_BLOCK15_PRICE_ATTRIBUTE_ID (0x04AE) +#define ZCL_TIER10_BLOCK16_PRICE_ATTRIBUTE_ID (0x04AF) +#define ZCL_TIER11_BLOCK1_PRICE_ATTRIBUTE_ID (0x04B0) +#define ZCL_TIER11_BLOCK2_PRICE_ATTRIBUTE_ID (0x04B1) +#define ZCL_TIER11_BLOCK3_PRICE_ATTRIBUTE_ID (0x04B2) +#define ZCL_TIER11_BLOCK4_PRICE_ATTRIBUTE_ID (0x04B3) +#define ZCL_TIER11_BLOCK5_PRICE_ATTRIBUTE_ID (0x04B4) +#define ZCL_TIER11_BLOCK6_PRICE_ATTRIBUTE_ID (0x04B5) +#define ZCL_TIER11_BLOCK7_PRICE_ATTRIBUTE_ID (0x04B6) +#define ZCL_TIER11_BLOCK8_PRICE_ATTRIBUTE_ID (0x04B7) +#define ZCL_TIER11_BLOCK9_PRICE_ATTRIBUTE_ID (0x04B8) +#define ZCL_TIER11_BLOCK10_PRICE_ATTRIBUTE_ID (0x04B9) +#define ZCL_TIER11_BLOCK11_PRICE_ATTRIBUTE_ID (0x04BA) +#define ZCL_TIER11_BLOCK12_PRICE_ATTRIBUTE_ID (0x04BB) +#define ZCL_TIER11_BLOCK13_PRICE_ATTRIBUTE_ID (0x04BC) +#define ZCL_TIER11_BLOCK14_PRICE_ATTRIBUTE_ID (0x04BD) +#define ZCL_TIER11_BLOCK15_PRICE_ATTRIBUTE_ID (0x04BE) +#define ZCL_TIER11_BLOCK16_PRICE_ATTRIBUTE_ID (0x04BF) +#define ZCL_TIER12_BLOCK1_PRICE_ATTRIBUTE_ID (0x04C0) +#define ZCL_TIER12_BLOCK2_PRICE_ATTRIBUTE_ID (0x04C1) +#define ZCL_TIER12_BLOCK3_PRICE_ATTRIBUTE_ID (0x04C2) +#define ZCL_TIER12_BLOCK4_PRICE_ATTRIBUTE_ID (0x04C3) +#define ZCL_TIER12_BLOCK5_PRICE_ATTRIBUTE_ID (0x04C4) +#define ZCL_TIER12_BLOCK6_PRICE_ATTRIBUTE_ID (0x04C5) +#define ZCL_TIER12_BLOCK7_PRICE_ATTRIBUTE_ID (0x04C6) +#define ZCL_TIER12_BLOCK8_PRICE_ATTRIBUTE_ID (0x04C7) +#define ZCL_TIER12_BLOCK9_PRICE_ATTRIBUTE_ID (0x04C8) +#define ZCL_TIER12_BLOCK10_PRICE_ATTRIBUTE_ID (0x04C9) +#define ZCL_TIER12_BLOCK11_PRICE_ATTRIBUTE_ID (0x04CA) +#define ZCL_TIER12_BLOCK12_PRICE_ATTRIBUTE_ID (0x04CB) +#define ZCL_TIER12_BLOCK13_PRICE_ATTRIBUTE_ID (0x04CC) +#define ZCL_TIER12_BLOCK14_PRICE_ATTRIBUTE_ID (0x04CD) +#define ZCL_TIER12_BLOCK15_PRICE_ATTRIBUTE_ID (0x04CE) +#define ZCL_TIER12_BLOCK16_PRICE_ATTRIBUTE_ID (0x04CF) +#define ZCL_TIER13_BLOCK1_PRICE_ATTRIBUTE_ID (0x04D0) +#define ZCL_TIER13_BLOCK2_PRICE_ATTRIBUTE_ID (0x04D1) +#define ZCL_TIER13_BLOCK3_PRICE_ATTRIBUTE_ID (0x04D2) +#define ZCL_TIER13_BLOCK4_PRICE_ATTRIBUTE_ID (0x04D3) +#define ZCL_TIER13_BLOCK5_PRICE_ATTRIBUTE_ID (0x04D4) +#define ZCL_TIER13_BLOCK6_PRICE_ATTRIBUTE_ID (0x04D5) +#define ZCL_TIER13_BLOCK7_PRICE_ATTRIBUTE_ID (0x04D6) +#define ZCL_TIER13_BLOCK8_PRICE_ATTRIBUTE_ID (0x04D7) +#define ZCL_TIER13_BLOCK9_PRICE_ATTRIBUTE_ID (0x04D8) +#define ZCL_TIER13_BLOCK10_PRICE_ATTRIBUTE_ID (0x04D9) +#define ZCL_TIER13_BLOCK11_PRICE_ATTRIBUTE_ID (0x04DA) +#define ZCL_TIER13_BLOCK12_PRICE_ATTRIBUTE_ID (0x04DB) +#define ZCL_TIER13_BLOCK13_PRICE_ATTRIBUTE_ID (0x04DC) +#define ZCL_TIER13_BLOCK14_PRICE_ATTRIBUTE_ID (0x04DD) +#define ZCL_TIER13_BLOCK15_PRICE_ATTRIBUTE_ID (0x04DE) +#define ZCL_TIER13_BLOCK16_PRICE_ATTRIBUTE_ID (0x04DF) +#define ZCL_TIER14_BLOCK1_PRICE_ATTRIBUTE_ID (0x04E0) +#define ZCL_TIER14_BLOCK2_PRICE_ATTRIBUTE_ID (0x04E1) +#define ZCL_TIER14_BLOCK3_PRICE_ATTRIBUTE_ID (0x04E2) +#define ZCL_TIER14_BLOCK4_PRICE_ATTRIBUTE_ID (0x04E3) +#define ZCL_TIER14_BLOCK5_PRICE_ATTRIBUTE_ID (0x04E4) +#define ZCL_TIER14_BLOCK6_PRICE_ATTRIBUTE_ID (0x04E5) +#define ZCL_TIER14_BLOCK7_PRICE_ATTRIBUTE_ID (0x04E6) +#define ZCL_TIER14_BLOCK8_PRICE_ATTRIBUTE_ID (0x04E7) +#define ZCL_TIER14_BLOCK9_PRICE_ATTRIBUTE_ID (0x04E8) +#define ZCL_TIER14_BLOCK10_PRICE_ATTRIBUTE_ID (0x04E9) +#define ZCL_TIER14_BLOCK11_PRICE_ATTRIBUTE_ID (0x04EA) +#define ZCL_TIER14_BLOCK12_PRICE_ATTRIBUTE_ID (0x04EB) +#define ZCL_TIER14_BLOCK13_PRICE_ATTRIBUTE_ID (0x04EC) +#define ZCL_TIER14_BLOCK14_PRICE_ATTRIBUTE_ID (0x04ED) +#define ZCL_TIER14_BLOCK15_PRICE_ATTRIBUTE_ID (0x04EE) +#define ZCL_TIER14_BLOCK16_PRICE_ATTRIBUTE_ID (0x04EF) +#define ZCL_TIER15_BLOCK1_PRICE_ATTRIBUTE_ID (0x04F0) +#define ZCL_TIER15_BLOCK2_PRICE_ATTRIBUTE_ID (0x04F1) +#define ZCL_TIER15_BLOCK3_PRICE_ATTRIBUTE_ID (0x04F2) +#define ZCL_TIER15_BLOCK4_PRICE_ATTRIBUTE_ID (0x04F3) +#define ZCL_TIER15_BLOCK5_PRICE_ATTRIBUTE_ID (0x04F4) +#define ZCL_TIER15_BLOCK6_PRICE_ATTRIBUTE_ID (0x04F5) +#define ZCL_TIER15_BLOCK7_PRICE_ATTRIBUTE_ID (0x04F6) +#define ZCL_TIER15_BLOCK8_PRICE_ATTRIBUTE_ID (0x04F7) +#define ZCL_TIER15_BLOCK9_PRICE_ATTRIBUTE_ID (0x04F8) +#define ZCL_TIER15_BLOCK10_PRICE_ATTRIBUTE_ID (0x04F9) +#define ZCL_TIER15_BLOCK11_PRICE_ATTRIBUTE_ID (0x04FA) +#define ZCL_TIER15_BLOCK12_PRICE_ATTRIBUTE_ID (0x04FB) +#define ZCL_TIER15_BLOCK13_PRICE_ATTRIBUTE_ID (0x04FC) +#define ZCL_TIER15_BLOCK14_PRICE_ATTRIBUTE_ID (0x04FD) +#define ZCL_TIER15_BLOCK15_PRICE_ATTRIBUTE_ID (0x04FE) +#define ZCL_TIER15_BLOCK16_PRICE_ATTRIBUTE_ID (0x04FF) +#define ZCL_PRICE_TIER16_ATTRIBUTE_ID (0x050F) +#define ZCL_PRICE_TIER17_ATTRIBUTE_ID (0x0510) +#define ZCL_PRICE_TIER18_ATTRIBUTE_ID (0x0511) +#define ZCL_PRICE_TIER19_ATTRIBUTE_ID (0x0512) +#define ZCL_PRICE_TIER20_ATTRIBUTE_ID (0x0513) +#define ZCL_PRICE_TIER21_ATTRIBUTE_ID (0x0514) +#define ZCL_PRICE_TIER22_ATTRIBUTE_ID (0x0515) +#define ZCL_PRICE_TIER23_ATTRIBUTE_ID (0x0516) +#define ZCL_PRICE_TIER24_ATTRIBUTE_ID (0x0517) +#define ZCL_PRICE_TIER25_ATTRIBUTE_ID (0x0518) +#define ZCL_PRICE_TIER26_ATTRIBUTE_ID (0x0519) +#define ZCL_PRICE_TIER27_ATTRIBUTE_ID (0x051A) +#define ZCL_PRICE_TIER28_ATTRIBUTE_ID (0x051B) +#define ZCL_PRICE_TIER29_ATTRIBUTE_ID (0x051C) +#define ZCL_PRICE_TIER30_ATTRIBUTE_ID (0x051D) +#define ZCL_PRICE_TIER31_ATTRIBUTE_ID (0x051E) +#define ZCL_PRICE_TIER32_ATTRIBUTE_ID (0x051F) +#define ZCL_PRICE_TIER33_ATTRIBUTE_ID (0x0520) +#define ZCL_PRICE_TIER34_ATTRIBUTE_ID (0x0521) +#define ZCL_PRICE_TIER35_ATTRIBUTE_ID (0x0522) +#define ZCL_PRICE_TIER36_ATTRIBUTE_ID (0x0523) +#define ZCL_PRICE_TIER37_ATTRIBUTE_ID (0x0524) +#define ZCL_PRICE_TIER38_ATTRIBUTE_ID (0x0525) +#define ZCL_PRICE_TIER39_ATTRIBUTE_ID (0x0526) +#define ZCL_PRICE_TIER40_ATTRIBUTE_ID (0x0527) +#define ZCL_PRICE_TIER41_ATTRIBUTE_ID (0x0528) +#define ZCL_PRICE_TIER42_ATTRIBUTE_ID (0x0529) +#define ZCL_PRICE_TIER43_ATTRIBUTE_ID (0x052A) +#define ZCL_PRICE_TIER44_ATTRIBUTE_ID (0x052B) +#define ZCL_PRICE_TIER45_ATTRIBUTE_ID (0x052C) +#define ZCL_PRICE_TIER46_ATTRIBUTE_ID (0x052D) +#define ZCL_PRICE_TIER47_ATTRIBUTE_ID (0x052E) +#define ZCL_PRICE_TIER48_ATTRIBUTE_ID (0x052F) +#define ZCL_CPP1_PRICE_ATTRIBUTE_ID (0x05FE) +#define ZCL_CPP2_PRICE_ATTRIBUTE_ID (0x05FF) +#define ZCL_TARIFF_LABEL_ATTRIBUTE_ID (0x0610) +#define ZCL_NUMBER_OF_PRICE_TIERS_IN_USE_ATTRIBUTE_ID (0x0611) +#define ZCL_NUMBER_OF_BLOCK_THRESHOLDS_IN_USE_ATTRIBUTE_ID (0x0612) +#define ZCL_TIER_BLOCK_MODE_ATTRIBUTE_ID (0x0613) +#define ZCL_TARIFF_UNIT_OF_MEASURE_ATTRIBUTE_ID (0x0615) +#define ZCL_TARIFF_CURRENCY_ATTRIBUTE_ID (0x0616) +#define ZCL_TARIFF_PRICE_TRAILING_DIGIT_ATTRIBUTE_ID (0x0617) +#define ZCL_TARIFF_RESOLUTION_PERIOD_ATTRIBUTE_ID (0x0619) +#define ZCL_TARIFF_CO2_ATTRIBUTE_ID (0x0620) +#define ZCL_TARIFF_CO2_UNIT_ATTRIBUTE_ID (0x0621) +#define ZCL_TARIFF_CO2_TRAILING_DIGIT_ATTRIBUTE_ID (0x0622) +#define ZCL_CURRENT_BILLING_PERIOD_START_ATTRIBUTE_ID (0x0700) +#define ZCL_CURRENT_BILLING_PERIOD_DURATION_ATTRIBUTE_ID (0x0701) +#define ZCL_LAST_BILLING_PERIOD_START_ATTRIBUTE_ID (0x0702) +#define ZCL_LAST_BILLING_PERIOD_DURATION_ATTRIBUTE_ID (0x0703) +#define ZCL_LAST_BILLING_PERIOD_CONSOLIDATED_BILL_ATTRIBUTE_ID (0x0704) +#define ZCL_CREDIT_PAYMENT_DUE_DATE_ATTRIBUTE_ID (0x0800) +#define ZCL_CREDIT_PAYMENT_STATUS_ATTRIBUTE_ID (0x0801) +#define ZCL_CREDIT_PAYMENT_OVER_DUE_AMOUNT_ATTRIBUTE_ID (0x0802) +#define ZCL_PAYMENT_DISCOUNT_ATTRIBUTE_ID (0x080A) +#define ZCL_PAYMENT_DISCOUNT_PERIOD_ATTRIBUTE_ID (0x080B) +#define ZCL_CREDIT_PAYMENT_1_ATTRIBUTE_ID (0x0810) +#define ZCL_CREDIT_PAYMENT_DATE_1_ATTRIBUTE_ID (0x0811) +#define ZCL_CREDIT_PAYMENT_REF_1_ATTRIBUTE_ID (0x0812) +#define ZCL_CREDIT_PAYMENT_2_ATTRIBUTE_ID (0x0820) +#define ZCL_CREDIT_PAYMENT_DATE_2_ATTRIBUTE_ID (0x0821) +#define ZCL_CREDIT_PAYMENT_REF_2_ATTRIBUTE_ID (0x0822) +#define ZCL_CREDIT_PAYMENT_3_ATTRIBUTE_ID (0x0830) +#define ZCL_CREDIT_PAYMENT_DATE_3_ATTRIBUTE_ID (0x0831) +#define ZCL_CREDIT_PAYMENT_REF_3_ATTRIBUTE_ID (0x0832) +#define ZCL_CREDIT_PAYMENT_4_ATTRIBUTE_ID (0x0840) +#define ZCL_CREDIT_PAYMENT_DATE_4_ATTRIBUTE_ID (0x0841) +#define ZCL_CREDIT_PAYMENT_REF_4_ATTRIBUTE_ID (0x0842) +#define ZCL_CREDIT_PAYMENT_5_ATTRIBUTE_ID (0x0850) +#define ZCL_CREDIT_PAYMENT_DATE_5_ATTRIBUTE_ID (0x0851) +#define ZCL_CREDIT_PAYMENT_REF_5_ATTRIBUTE_ID (0x0852) +#define ZCL_RX_TIER1_PRICE_LABEL_ATTRIBUTE_ID (0x8000) +#define ZCL_RX_TIER2_PRICE_LABEL_ATTRIBUTE_ID (0x8001) +#define ZCL_RX_TIER3_PRICE_LABEL_ATTRIBUTE_ID (0x8002) +#define ZCL_RX_TIER4_PRICE_LABEL_ATTRIBUTE_ID (0x8003) +#define ZCL_RX_TIER5_PRICE_LABEL_ATTRIBUTE_ID (0x8004) +#define ZCL_RX_TIER6_PRICE_LABEL_ATTRIBUTE_ID (0x8005) +#define ZCL_RX_TIER7_PRICE_LABEL_ATTRIBUTE_ID (0x8006) +#define ZCL_RX_TIER8_PRICE_LABEL_ATTRIBUTE_ID (0x8007) +#define ZCL_RX_TIER9_PRICE_LABEL_ATTRIBUTE_ID (0x8008) +#define ZCL_RX_TIER10_PRICE_LABEL_ATTRIBUTE_ID (0x8009) +#define ZCL_RX_TIER11_PRICE_LABEL_ATTRIBUTE_ID (0x800A) +#define ZCL_RX_TIER12_PRICE_LABEL_ATTRIBUTE_ID (0x800B) +#define ZCL_RX_TIER13_PRICE_LABEL_ATTRIBUTE_ID (0x800C) +#define ZCL_RX_TIER14_PRICE_LABEL_ATTRIBUTE_ID (0x800D) +#define ZCL_RX_TIER15_PRICE_LABEL_ATTRIBUTE_ID (0x800E) +#define ZCL_RX_TIER16_PRICE_LABEL_ATTRIBUTE_ID (0x800F) +#define ZCL_RX_TIER17_PRICE_LABEL_ATTRIBUTE_ID (0x8010) +#define ZCL_RX_TIER18_PRICE_LABEL_ATTRIBUTE_ID (0x8011) +#define ZCL_RX_TIER19_PRICE_LABEL_ATTRIBUTE_ID (0x8012) +#define ZCL_RX_TIER20_PRICE_LABEL_ATTRIBUTE_ID (0x8013) +#define ZCL_RX_TIER21_PRICE_LABEL_ATTRIBUTE_ID (0x8014) +#define ZCL_RX_TIER22_PRICE_LABEL_ATTRIBUTE_ID (0x8015) +#define ZCL_RX_TIER23_PRICE_LABEL_ATTRIBUTE_ID (0x8016) +#define ZCL_RX_TIER24_PRICE_LABEL_ATTRIBUTE_ID (0x8017) +#define ZCL_RX_TIER25_PRICE_LABEL_ATTRIBUTE_ID (0x8018) +#define ZCL_RX_TIER26_PRICE_LABEL_ATTRIBUTE_ID (0x8019) +#define ZCL_RX_TIER27_PRICE_LABEL_ATTRIBUTE_ID (0x801A) +#define ZCL_RX_TIER28_PRICE_LABEL_ATTRIBUTE_ID (0x801B) +#define ZCL_RX_TIER29_PRICE_LABEL_ATTRIBUTE_ID (0x801C) +#define ZCL_RX_TIER30_PRICE_LABEL_ATTRIBUTE_ID (0x801D) +#define ZCL_RX_TIER31_PRICE_LABEL_ATTRIBUTE_ID (0x801E) +#define ZCL_RX_TIER32_PRICE_LABEL_ATTRIBUTE_ID (0x801F) +#define ZCL_RX_TIER33_PRICE_LABEL_ATTRIBUTE_ID (0x8020) +#define ZCL_RX_TIER34_PRICE_LABEL_ATTRIBUTE_ID (0x8021) +#define ZCL_RX_TIER35_PRICE_LABEL_ATTRIBUTE_ID (0x8022) +#define ZCL_RX_TIER36_PRICE_LABEL_ATTRIBUTE_ID (0x8023) +#define ZCL_RX_TIER37_PRICE_LABEL_ATTRIBUTE_ID (0x8024) +#define ZCL_RX_TIER38_PRICE_LABEL_ATTRIBUTE_ID (0x8025) +#define ZCL_RX_TIER39_PRICE_LABEL_ATTRIBUTE_ID (0x8026) +#define ZCL_RX_TIER40_PRICE_LABEL_ATTRIBUTE_ID (0x8027) +#define ZCL_RX_TIER41_PRICE_LABEL_ATTRIBUTE_ID (0x8028) +#define ZCL_RX_TIER42_PRICE_LABEL_ATTRIBUTE_ID (0x8029) +#define ZCL_RX_TIER43_PRICE_LABEL_ATTRIBUTE_ID (0x802A) +#define ZCL_RX_TIER44_PRICE_LABEL_ATTRIBUTE_ID (0x802B) +#define ZCL_RX_TIER45_PRICE_LABEL_ATTRIBUTE_ID (0x802C) +#define ZCL_RX_TIER46_PRICE_LABEL_ATTRIBUTE_ID (0x802D) +#define ZCL_RX_TIER47_PRICE_LABEL_ATTRIBUTE_ID (0x802E) +#define ZCL_RX_TIER48_PRICE_LABEL_ATTRIBUTE_ID (0x802F) +#define ZCL_RX_BLOCK1_THRESHOLD_ATTRIBUTE_ID (0x8100) +#define ZCL_RX_BLOCK2_THRESHOLD_ATTRIBUTE_ID (0x8101) +#define ZCL_RX_BLOCK3_THRESHOLD_ATTRIBUTE_ID (0x8102) +#define ZCL_RX_BLOCK4_THRESHOLD_ATTRIBUTE_ID (0x8103) +#define ZCL_RX_BLOCK5_THRESHOLD_ATTRIBUTE_ID (0x8104) +#define ZCL_RX_BLOCK6_THRESHOLD_ATTRIBUTE_ID (0x8105) +#define ZCL_RX_BLOCK7_THRESHOLD_ATTRIBUTE_ID (0x8106) +#define ZCL_RX_BLOCK8_THRESHOLD_ATTRIBUTE_ID (0x8107) +#define ZCL_RX_BLOCK9_THRESHOLD_ATTRIBUTE_ID (0x8108) +#define ZCL_RX_BLOCK10_THRESHOLD_ATTRIBUTE_ID (0x8109) +#define ZCL_RX_BLOCK11_THRESHOLD_ATTRIBUTE_ID (0x810A) +#define ZCL_RX_BLOCK12_THRESHOLD_ATTRIBUTE_ID (0x810B) +#define ZCL_RX_BLOCK13_THRESHOLD_ATTRIBUTE_ID (0x810C) +#define ZCL_RX_BLOCK14_THRESHOLD_ATTRIBUTE_ID (0x810D) +#define ZCL_RX_BLOCK15_THRESHOLD_ATTRIBUTE_ID (0x810E) +#define ZCL_RX_START_OF_BLOCK_PERIOD_ATTRIBUTE_ID (0x8200) +#define ZCL_RX_BLOCK_PERIOD_DURATION_ATTRIBUTE_ID (0x8201) +#define ZCL_RX_THRESHOLD_MULTIPLIER_ATTRIBUTE_ID (0x8202) +#define ZCL_RX_THRESHOLD_DIVISOR_ATTRIBUTE_ID (0x8203) +#define ZCL_RX_NO_TIER_BLOCK1_PRICE_ATTRIBUTE_ID (0x8400) +#define ZCL_RX_NO_TIER_BLOCK2_PRICE_ATTRIBUTE_ID (0x8401) +#define ZCL_RX_NO_TIER_BLOCK3_PRICE_ATTRIBUTE_ID (0x8402) +#define ZCL_RX_NO_TIER_BLOCK4_PRICE_ATTRIBUTE_ID (0x8403) +#define ZCL_RX_NO_TIER_BLOCK5_PRICE_ATTRIBUTE_ID (0x8404) +#define ZCL_RX_NO_TIER_BLOCK6_PRICE_ATTRIBUTE_ID (0x8405) +#define ZCL_RX_NO_TIER_BLOCK7_PRICE_ATTRIBUTE_ID (0x8406) +#define ZCL_RX_NO_TIER_BLOCK8_PRICE_ATTRIBUTE_ID (0x8407) +#define ZCL_RX_NO_TIER_BLOCK9_PRICE_ATTRIBUTE_ID (0x8408) +#define ZCL_RX_NO_TIER_BLOCK10_PRICE_ATTRIBUTE_ID (0x8409) +#define ZCL_RX_NO_TIER_BLOCK11_PRICE_ATTRIBUTE_ID (0x840A) +#define ZCL_RX_NO_TIER_BLOCK12_PRICE_ATTRIBUTE_ID (0x840B) +#define ZCL_RX_NO_TIER_BLOCK13_PRICE_ATTRIBUTE_ID (0x840C) +#define ZCL_RX_NO_TIER_BLOCK14_PRICE_ATTRIBUTE_ID (0x840D) +#define ZCL_RX_NO_TIER_BLOCK15_PRICE_ATTRIBUTE_ID (0x840E) +#define ZCL_RX_NO_TIER_BLOCK16_PRICE_ATTRIBUTE_ID (0x840F) +#define ZCL_RX_TIER1_BLOCK1_PRICE_ATTRIBUTE_ID (0x8410) +#define ZCL_RX_TIER1_BLOCK2_PRICE_ATTRIBUTE_ID (0x8411) +#define ZCL_RX_TIER1_BLOCK3_PRICE_ATTRIBUTE_ID (0x8412) +#define ZCL_RX_TIER1_BLOCK4_PRICE_ATTRIBUTE_ID (0x8413) +#define ZCL_RX_TIER1_BLOCK5_PRICE_ATTRIBUTE_ID (0x8414) +#define ZCL_RX_TIER1_BLOCK6_PRICE_ATTRIBUTE_ID (0x8415) +#define ZCL_RX_TIER1_BLOCK7_PRICE_ATTRIBUTE_ID (0x8416) +#define ZCL_RX_TIER1_BLOCK8_PRICE_ATTRIBUTE_ID (0x8417) +#define ZCL_RX_TIER1_BLOCK9_PRICE_ATTRIBUTE_ID (0x8418) +#define ZCL_RX_TIER1_BLOCK10_PRICE_ATTRIBUTE_ID (0x8419) +#define ZCL_RX_TIER1_BLOCK11_PRICE_ATTRIBUTE_ID (0x841A) +#define ZCL_RX_TIER1_BLOCK12_PRICE_ATTRIBUTE_ID (0x841B) +#define ZCL_RX_TIER1_BLOCK13_PRICE_ATTRIBUTE_ID (0x841C) +#define ZCL_RX_TIER1_BLOCK14_PRICE_ATTRIBUTE_ID (0x841D) +#define ZCL_RX_TIER1_BLOCK15_PRICE_ATTRIBUTE_ID (0x841E) +#define ZCL_RX_TIER1_BLOCK16_PRICE_ATTRIBUTE_ID (0x841F) +#define ZCL_RX_TIER2_BLOCK1_PRICE_ATTRIBUTE_ID (0x8420) +#define ZCL_RX_TIER2_BLOCK2_PRICE_ATTRIBUTE_ID (0x8421) +#define ZCL_RX_TIER2_BLOCK3_PRICE_ATTRIBUTE_ID (0x8422) +#define ZCL_RX_TIER2_BLOCK4_PRICE_ATTRIBUTE_ID (0x8423) +#define ZCL_RX_TIER2_BLOCK5_PRICE_ATTRIBUTE_ID (0x8424) +#define ZCL_RX_TIER2_BLOCK6_PRICE_ATTRIBUTE_ID (0x8425) +#define ZCL_RX_TIER2_BLOCK7_PRICE_ATTRIBUTE_ID (0x8426) +#define ZCL_RX_TIER2_BLOCK8_PRICE_ATTRIBUTE_ID (0x8427) +#define ZCL_RX_TIER2_BLOCK9_PRICE_ATTRIBUTE_ID (0x8428) +#define ZCL_RX_TIER2_BLOCK10_PRICE_ATTRIBUTE_ID (0x8429) +#define ZCL_RX_TIER2_BLOCK11_PRICE_ATTRIBUTE_ID (0x842A) +#define ZCL_RX_TIER2_BLOCK12_PRICE_ATTRIBUTE_ID (0x842B) +#define ZCL_RX_TIER2_BLOCK13_PRICE_ATTRIBUTE_ID (0x842C) +#define ZCL_RX_TIER2_BLOCK14_PRICE_ATTRIBUTE_ID (0x842D) +#define ZCL_RX_TIER2_BLOCK15_PRICE_ATTRIBUTE_ID (0x842E) +#define ZCL_RX_TIER2_BLOCK16_PRICE_ATTRIBUTE_ID (0x842F) +#define ZCL_RX_TIER3_BLOCK1_PRICE_ATTRIBUTE_ID (0x8430) +#define ZCL_RX_TIER3_BLOCK2_PRICE_ATTRIBUTE_ID (0x8431) +#define ZCL_RX_TIER3_BLOCK3_PRICE_ATTRIBUTE_ID (0x8432) +#define ZCL_RX_TIER3_BLOCK4_PRICE_ATTRIBUTE_ID (0x8433) +#define ZCL_RX_TIER3_BLOCK5_PRICE_ATTRIBUTE_ID (0x8434) +#define ZCL_RX_TIER3_BLOCK6_PRICE_ATTRIBUTE_ID (0x8435) +#define ZCL_RX_TIER3_BLOCK7_PRICE_ATTRIBUTE_ID (0x8436) +#define ZCL_RX_TIER3_BLOCK8_PRICE_ATTRIBUTE_ID (0x8437) +#define ZCL_RX_TIER3_BLOCK9_PRICE_ATTRIBUTE_ID (0x8438) +#define ZCL_RX_TIER3_BLOCK10_PRICE_ATTRIBUTE_ID (0x8439) +#define ZCL_RX_TIER3_BLOCK11_PRICE_ATTRIBUTE_ID (0x843A) +#define ZCL_RX_TIER3_BLOCK12_PRICE_ATTRIBUTE_ID (0x843B) +#define ZCL_RX_TIER3_BLOCK13_PRICE_ATTRIBUTE_ID (0x843C) +#define ZCL_RX_TIER3_BLOCK14_PRICE_ATTRIBUTE_ID (0x843D) +#define ZCL_RX_TIER3_BLOCK15_PRICE_ATTRIBUTE_ID (0x843E) +#define ZCL_RX_TIER3_BLOCK16_PRICE_ATTRIBUTE_ID (0x843F) +#define ZCL_RX_TIER4_BLOCK1_PRICE_ATTRIBUTE_ID (0x8440) +#define ZCL_RX_TIER4_BLOCK2_PRICE_ATTRIBUTE_ID (0x8441) +#define ZCL_RX_TIER4_BLOCK3_PRICE_ATTRIBUTE_ID (0x8442) +#define ZCL_RX_TIER4_BLOCK4_PRICE_ATTRIBUTE_ID (0x8443) +#define ZCL_RX_TIER4_BLOCK5_PRICE_ATTRIBUTE_ID (0x8444) +#define ZCL_RX_TIER4_BLOCK6_PRICE_ATTRIBUTE_ID (0x8445) +#define ZCL_RX_TIER4_BLOCK7_PRICE_ATTRIBUTE_ID (0x8446) +#define ZCL_RX_TIER4_BLOCK8_PRICE_ATTRIBUTE_ID (0x8447) +#define ZCL_RX_TIER4_BLOCK9_PRICE_ATTRIBUTE_ID (0x8448) +#define ZCL_RX_TIER4_BLOCK10_PRICE_ATTRIBUTE_ID (0x8449) +#define ZCL_RX_TIER4_BLOCK11_PRICE_ATTRIBUTE_ID (0x844A) +#define ZCL_RX_TIER4_BLOCK12_PRICE_ATTRIBUTE_ID (0x844B) +#define ZCL_RX_TIER4_BLOCK13_PRICE_ATTRIBUTE_ID (0x844C) +#define ZCL_RX_TIER4_BLOCK14_PRICE_ATTRIBUTE_ID (0x844D) +#define ZCL_RX_TIER4_BLOCK15_PRICE_ATTRIBUTE_ID (0x844E) +#define ZCL_RX_TIER4_BLOCK16_PRICE_ATTRIBUTE_ID (0x844F) +#define ZCL_RX_TIER5_BLOCK1_PRICE_ATTRIBUTE_ID (0x8450) +#define ZCL_RX_TIER5_BLOCK2_PRICE_ATTRIBUTE_ID (0x8451) +#define ZCL_RX_TIER5_BLOCK3_PRICE_ATTRIBUTE_ID (0x8452) +#define ZCL_RX_TIER5_BLOCK4_PRICE_ATTRIBUTE_ID (0x8453) +#define ZCL_RX_TIER5_BLOCK5_PRICE_ATTRIBUTE_ID (0x8454) +#define ZCL_RX_TIER5_BLOCK6_PRICE_ATTRIBUTE_ID (0x8455) +#define ZCL_RX_TIER5_BLOCK7_PRICE_ATTRIBUTE_ID (0x8456) +#define ZCL_RX_TIER5_BLOCK8_PRICE_ATTRIBUTE_ID (0x8457) +#define ZCL_RX_TIER5_BLOCK9_PRICE_ATTRIBUTE_ID (0x8458) +#define ZCL_RX_TIER5_BLOCK10_PRICE_ATTRIBUTE_ID (0x8459) +#define ZCL_RX_TIER5_BLOCK11_PRICE_ATTRIBUTE_ID (0x845A) +#define ZCL_RX_TIER5_BLOCK12_PRICE_ATTRIBUTE_ID (0x845B) +#define ZCL_RX_TIER5_BLOCK13_PRICE_ATTRIBUTE_ID (0x845C) +#define ZCL_RX_TIER5_BLOCK14_PRICE_ATTRIBUTE_ID (0x845D) +#define ZCL_RX_TIER5_BLOCK15_PRICE_ATTRIBUTE_ID (0x845E) +#define ZCL_RX_TIER5_BLOCK16_PRICE_ATTRIBUTE_ID (0x845F) +#define ZCL_RX_TIER6_BLOCK1_PRICE_ATTRIBUTE_ID (0x8460) +#define ZCL_RX_TIER6_BLOCK2_PRICE_ATTRIBUTE_ID (0x8461) +#define ZCL_RX_TIER6_BLOCK3_PRICE_ATTRIBUTE_ID (0x8462) +#define ZCL_RX_TIER6_BLOCK4_PRICE_ATTRIBUTE_ID (0x8463) +#define ZCL_RX_TIER6_BLOCK5_PRICE_ATTRIBUTE_ID (0x8464) +#define ZCL_RX_TIER6_BLOCK6_PRICE_ATTRIBUTE_ID (0x8465) +#define ZCL_RX_TIER6_BLOCK7_PRICE_ATTRIBUTE_ID (0x8466) +#define ZCL_RX_TIER6_BLOCK8_PRICE_ATTRIBUTE_ID (0x8467) +#define ZCL_RX_TIER6_BLOCK9_PRICE_ATTRIBUTE_ID (0x8468) +#define ZCL_RX_TIER6_BLOCK10_PRICE_ATTRIBUTE_ID (0x8469) +#define ZCL_RX_TIER6_BLOCK11_PRICE_ATTRIBUTE_ID (0x846A) +#define ZCL_RX_TIER6_BLOCK12_PRICE_ATTRIBUTE_ID (0x846B) +#define ZCL_RX_TIER6_BLOCK13_PRICE_ATTRIBUTE_ID (0x846C) +#define ZCL_RX_TIER6_BLOCK14_PRICE_ATTRIBUTE_ID (0x846D) +#define ZCL_RX_TIER6_BLOCK15_PRICE_ATTRIBUTE_ID (0x846E) +#define ZCL_RX_TIER6_BLOCK16_PRICE_ATTRIBUTE_ID (0x846F) +#define ZCL_RX_TIER7_BLOCK1_PRICE_ATTRIBUTE_ID (0x8470) +#define ZCL_RX_TIER7_BLOCK2_PRICE_ATTRIBUTE_ID (0x8471) +#define ZCL_RX_TIER7_BLOCK3_PRICE_ATTRIBUTE_ID (0x8472) +#define ZCL_RX_TIER7_BLOCK4_PRICE_ATTRIBUTE_ID (0x8473) +#define ZCL_RX_TIER7_BLOCK5_PRICE_ATTRIBUTE_ID (0x8474) +#define ZCL_RX_TIER7_BLOCK6_PRICE_ATTRIBUTE_ID (0x8475) +#define ZCL_RX_TIER7_BLOCK7_PRICE_ATTRIBUTE_ID (0x8476) +#define ZCL_RX_TIER7_BLOCK8_PRICE_ATTRIBUTE_ID (0x8477) +#define ZCL_RX_TIER7_BLOCK9_PRICE_ATTRIBUTE_ID (0x8478) +#define ZCL_RX_TIER7_BLOCK10_PRICE_ATTRIBUTE_ID (0x8479) +#define ZCL_RX_TIER7_BLOCK11_PRICE_ATTRIBUTE_ID (0x847A) +#define ZCL_RX_TIER7_BLOCK12_PRICE_ATTRIBUTE_ID (0x847B) +#define ZCL_RX_TIER7_BLOCK13_PRICE_ATTRIBUTE_ID (0x847C) +#define ZCL_RX_TIER7_BLOCK14_PRICE_ATTRIBUTE_ID (0x847D) +#define ZCL_RX_TIER7_BLOCK15_PRICE_ATTRIBUTE_ID (0x847E) +#define ZCL_RX_TIER7_BLOCK16_PRICE_ATTRIBUTE_ID (0x847F) +#define ZCL_RX_TIER8_BLOCK1_PRICE_ATTRIBUTE_ID (0x8480) +#define ZCL_RX_TIER8_BLOCK2_PRICE_ATTRIBUTE_ID (0x8481) +#define ZCL_RX_TIER8_BLOCK3_PRICE_ATTRIBUTE_ID (0x8482) +#define ZCL_RX_TIER8_BLOCK4_PRICE_ATTRIBUTE_ID (0x8483) +#define ZCL_RX_TIER8_BLOCK5_PRICE_ATTRIBUTE_ID (0x8484) +#define ZCL_RX_TIER8_BLOCK6_PRICE_ATTRIBUTE_ID (0x8485) +#define ZCL_RX_TIER8_BLOCK7_PRICE_ATTRIBUTE_ID (0x8486) +#define ZCL_RX_TIER8_BLOCK8_PRICE_ATTRIBUTE_ID (0x8487) +#define ZCL_RX_TIER8_BLOCK9_PRICE_ATTRIBUTE_ID (0x8488) +#define ZCL_RX_TIER8_BLOCK10_PRICE_ATTRIBUTE_ID (0x8489) +#define ZCL_RX_TIER8_BLOCK11_PRICE_ATTRIBUTE_ID (0x848A) +#define ZCL_RX_TIER8_BLOCK12_PRICE_ATTRIBUTE_ID (0x848B) +#define ZCL_RX_TIER8_BLOCK13_PRICE_ATTRIBUTE_ID (0x848C) +#define ZCL_RX_TIER8_BLOCK14_PRICE_ATTRIBUTE_ID (0x848D) +#define ZCL_RX_TIER8_BLOCK15_PRICE_ATTRIBUTE_ID (0x848E) +#define ZCL_RX_TIER8_BLOCK16_PRICE_ATTRIBUTE_ID (0x848F) +#define ZCL_RX_TIER9_BLOCK1_PRICE_ATTRIBUTE_ID (0x8490) +#define ZCL_RX_TIER9_BLOCK2_PRICE_ATTRIBUTE_ID (0x8491) +#define ZCL_RX_TIER9_BLOCK3_PRICE_ATTRIBUTE_ID (0x8492) +#define ZCL_RX_TIER9_BLOCK4_PRICE_ATTRIBUTE_ID (0x8493) +#define ZCL_RX_TIER9_BLOCK5_PRICE_ATTRIBUTE_ID (0x8494) +#define ZCL_RX_TIER9_BLOCK6_PRICE_ATTRIBUTE_ID (0x8495) +#define ZCL_RX_TIER9_BLOCK7_PRICE_ATTRIBUTE_ID (0x8496) +#define ZCL_RX_TIER9_BLOCK8_PRICE_ATTRIBUTE_ID (0x8497) +#define ZCL_RX_TIER9_BLOCK9_PRICE_ATTRIBUTE_ID (0x8498) +#define ZCL_RX_TIER9_BLOCK10_PRICE_ATTRIBUTE_ID (0x8499) +#define ZCL_RX_TIER9_BLOCK11_PRICE_ATTRIBUTE_ID (0x849A) +#define ZCL_RX_TIER9_BLOCK12_PRICE_ATTRIBUTE_ID (0x849B) +#define ZCL_RX_TIER9_BLOCK13_PRICE_ATTRIBUTE_ID (0x849C) +#define ZCL_RX_TIER9_BLOCK14_PRICE_ATTRIBUTE_ID (0x849D) +#define ZCL_RX_TIER9_BLOCK15_PRICE_ATTRIBUTE_ID (0x849E) +#define ZCL_RX_TIER9_BLOCK16_PRICE_ATTRIBUTE_ID (0x849F) +#define ZCL_RX_TIER10_BLOCK1_PRICE_ATTRIBUTE_ID (0x84A0) +#define ZCL_RX_TIER10_BLOCK2_PRICE_ATTRIBUTE_ID (0x84A1) +#define ZCL_RX_TIER10_BLOCK3_PRICE_ATTRIBUTE_ID (0x84A2) +#define ZCL_RX_TIER10_BLOCK4_PRICE_ATTRIBUTE_ID (0x84A3) +#define ZCL_RX_TIER10_BLOCK5_PRICE_ATTRIBUTE_ID (0x84A4) +#define ZCL_RX_TIER10_BLOCK6_PRICE_ATTRIBUTE_ID (0x84A5) +#define ZCL_RX_TIER10_BLOCK7_PRICE_ATTRIBUTE_ID (0x84A6) +#define ZCL_RX_TIER10_BLOCK8_PRICE_ATTRIBUTE_ID (0x84A7) +#define ZCL_RX_TIER10_BLOCK9_PRICE_ATTRIBUTE_ID (0x84A8) +#define ZCL_RX_TIER10_BLOCK10_PRICE_ATTRIBUTE_ID (0x84A9) +#define ZCL_RX_TIER10_BLOCK11_PRICE_ATTRIBUTE_ID (0x84AA) +#define ZCL_RX_TIER10_BLOCK12_PRICE_ATTRIBUTE_ID (0x84AB) +#define ZCL_RX_TIER10_BLOCK13_PRICE_ATTRIBUTE_ID (0x84AC) +#define ZCL_RX_TIER10_BLOCK14_PRICE_ATTRIBUTE_ID (0x84AD) +#define ZCL_RX_TIER10_BLOCK15_PRICE_ATTRIBUTE_ID (0x84AE) +#define ZCL_RX_TIER10_BLOCK16_PRICE_ATTRIBUTE_ID (0x84AF) +#define ZCL_RX_TIER11_BLOCK1_PRICE_ATTRIBUTE_ID (0x84B0) +#define ZCL_RX_TIER11_BLOCK2_PRICE_ATTRIBUTE_ID (0x84B1) +#define ZCL_RX_TIER11_BLOCK3_PRICE_ATTRIBUTE_ID (0x84B2) +#define ZCL_RX_TIER11_BLOCK4_PRICE_ATTRIBUTE_ID (0x84B3) +#define ZCL_RX_TIER11_BLOCK5_PRICE_ATTRIBUTE_ID (0x84B4) +#define ZCL_RX_TIER11_BLOCK6_PRICE_ATTRIBUTE_ID (0x84B5) +#define ZCL_RX_TIER11_BLOCK7_PRICE_ATTRIBUTE_ID (0x84B6) +#define ZCL_RX_TIER11_BLOCK8_PRICE_ATTRIBUTE_ID (0x84B7) +#define ZCL_RX_TIER11_BLOCK9_PRICE_ATTRIBUTE_ID (0x84B8) +#define ZCL_RX_TIER11_BLOCK10_PRICE_ATTRIBUTE_ID (0x84B9) +#define ZCL_RX_TIER11_BLOCK11_PRICE_ATTRIBUTE_ID (0x84BA) +#define ZCL_RX_TIER11_BLOCK12_PRICE_ATTRIBUTE_ID (0x84BB) +#define ZCL_RX_TIER11_BLOCK13_PRICE_ATTRIBUTE_ID (0x84BC) +#define ZCL_RX_TIER11_BLOCK14_PRICE_ATTRIBUTE_ID (0x84BD) +#define ZCL_RX_TIER11_BLOCK15_PRICE_ATTRIBUTE_ID (0x84BE) +#define ZCL_RX_TIER11_BLOCK16_PRICE_ATTRIBUTE_ID (0x84BF) +#define ZCL_RX_TIER12_BLOCK1_PRICE_ATTRIBUTE_ID (0x84C0) +#define ZCL_RX_TIER12_BLOCK2_PRICE_ATTRIBUTE_ID (0x84C1) +#define ZCL_RX_TIER12_BLOCK3_PRICE_ATTRIBUTE_ID (0x84C2) +#define ZCL_RX_TIER12_BLOCK4_PRICE_ATTRIBUTE_ID (0x84C3) +#define ZCL_RX_TIER12_BLOCK5_PRICE_ATTRIBUTE_ID (0x84C4) +#define ZCL_RX_TIER12_BLOCK6_PRICE_ATTRIBUTE_ID (0x84C5) +#define ZCL_RX_TIER12_BLOCK7_PRICE_ATTRIBUTE_ID (0x84C6) +#define ZCL_RX_TIER12_BLOCK8_PRICE_ATTRIBUTE_ID (0x84C7) +#define ZCL_RX_TIER12_BLOCK9_PRICE_ATTRIBUTE_ID (0x84C8) +#define ZCL_RX_TIER12_BLOCK10_PRICE_ATTRIBUTE_ID (0x84C9) +#define ZCL_RX_TIER12_BLOCK11_PRICE_ATTRIBUTE_ID (0x84CA) +#define ZCL_RX_TIER12_BLOCK12_PRICE_ATTRIBUTE_ID (0x84CB) +#define ZCL_RX_TIER12_BLOCK13_PRICE_ATTRIBUTE_ID (0x84CC) +#define ZCL_RX_TIER12_BLOCK14_PRICE_ATTRIBUTE_ID (0x84CD) +#define ZCL_RX_TIER12_BLOCK15_PRICE_ATTRIBUTE_ID (0x84CE) +#define ZCL_RX_TIER12_BLOCK16_PRICE_ATTRIBUTE_ID (0x84CF) +#define ZCL_RX_TIER13_BLOCK1_PRICE_ATTRIBUTE_ID (0x84D0) +#define ZCL_RX_TIER13_BLOCK2_PRICE_ATTRIBUTE_ID (0x84D1) +#define ZCL_RX_TIER13_BLOCK3_PRICE_ATTRIBUTE_ID (0x84D2) +#define ZCL_RX_TIER13_BLOCK4_PRICE_ATTRIBUTE_ID (0x84D3) +#define ZCL_RX_TIER13_BLOCK5_PRICE_ATTRIBUTE_ID (0x84D4) +#define ZCL_RX_TIER13_BLOCK6_PRICE_ATTRIBUTE_ID (0x84D5) +#define ZCL_RX_TIER13_BLOCK7_PRICE_ATTRIBUTE_ID (0x84D6) +#define ZCL_RX_TIER13_BLOCK8_PRICE_ATTRIBUTE_ID (0x84D7) +#define ZCL_RX_TIER13_BLOCK9_PRICE_ATTRIBUTE_ID (0x84D8) +#define ZCL_RX_TIER13_BLOCK10_PRICE_ATTRIBUTE_ID (0x84D9) +#define ZCL_RX_TIER13_BLOCK11_PRICE_ATTRIBUTE_ID (0x84DA) +#define ZCL_RX_TIER13_BLOCK12_PRICE_ATTRIBUTE_ID (0x84DB) +#define ZCL_RX_TIER13_BLOCK13_PRICE_ATTRIBUTE_ID (0x84DC) +#define ZCL_RX_TIER13_BLOCK14_PRICE_ATTRIBUTE_ID (0x84DD) +#define ZCL_RX_TIER13_BLOCK15_PRICE_ATTRIBUTE_ID (0x84DE) +#define ZCL_RX_TIER13_BLOCK16_PRICE_ATTRIBUTE_ID (0x84DF) +#define ZCL_RX_TIER14_BLOCK1_PRICE_ATTRIBUTE_ID (0x84E0) +#define ZCL_RX_TIER14_BLOCK2_PRICE_ATTRIBUTE_ID (0x84E1) +#define ZCL_RX_TIER14_BLOCK3_PRICE_ATTRIBUTE_ID (0x84E2) +#define ZCL_RX_TIER14_BLOCK4_PRICE_ATTRIBUTE_ID (0x84E3) +#define ZCL_RX_TIER14_BLOCK5_PRICE_ATTRIBUTE_ID (0x84E4) +#define ZCL_RX_TIER14_BLOCK6_PRICE_ATTRIBUTE_ID (0x84E5) +#define ZCL_RX_TIER14_BLOCK7_PRICE_ATTRIBUTE_ID (0x84E6) +#define ZCL_RX_TIER14_BLOCK8_PRICE_ATTRIBUTE_ID (0x84E7) +#define ZCL_RX_TIER14_BLOCK9_PRICE_ATTRIBUTE_ID (0x84E8) +#define ZCL_RX_TIER14_BLOCK10_PRICE_ATTRIBUTE_ID (0x84E9) +#define ZCL_RX_TIER14_BLOCK11_PRICE_ATTRIBUTE_ID (0x84EA) +#define ZCL_RX_TIER14_BLOCK12_PRICE_ATTRIBUTE_ID (0x84EB) +#define ZCL_RX_TIER14_BLOCK13_PRICE_ATTRIBUTE_ID (0x84EC) +#define ZCL_RX_TIER14_BLOCK14_PRICE_ATTRIBUTE_ID (0x84ED) +#define ZCL_RX_TIER14_BLOCK15_PRICE_ATTRIBUTE_ID (0x84EE) +#define ZCL_RX_TIER14_BLOCK16_PRICE_ATTRIBUTE_ID (0x84EF) +#define ZCL_RX_TIER15_BLOCK1_PRICE_ATTRIBUTE_ID (0x84F0) +#define ZCL_RX_TIER15_BLOCK2_PRICE_ATTRIBUTE_ID (0x84F1) +#define ZCL_RX_TIER15_BLOCK3_PRICE_ATTRIBUTE_ID (0x84F2) +#define ZCL_RX_TIER15_BLOCK4_PRICE_ATTRIBUTE_ID (0x84F3) +#define ZCL_RX_TIER15_BLOCK5_PRICE_ATTRIBUTE_ID (0x84F4) +#define ZCL_RX_TIER15_BLOCK6_PRICE_ATTRIBUTE_ID (0x84F5) +#define ZCL_RX_TIER15_BLOCK7_PRICE_ATTRIBUTE_ID (0x84F6) +#define ZCL_RX_TIER15_BLOCK8_PRICE_ATTRIBUTE_ID (0x84F7) +#define ZCL_RX_TIER15_BLOCK9_PRICE_ATTRIBUTE_ID (0x84F8) +#define ZCL_RX_TIER15_BLOCK10_PRICE_ATTRIBUTE_ID (0x84F9) +#define ZCL_RX_TIER15_BLOCK11_PRICE_ATTRIBUTE_ID (0x84FA) +#define ZCL_RX_TIER15_BLOCK12_PRICE_ATTRIBUTE_ID (0x84FB) +#define ZCL_RX_TIER15_BLOCK13_PRICE_ATTRIBUTE_ID (0x84FC) +#define ZCL_RX_TIER15_BLOCK14_PRICE_ATTRIBUTE_ID (0x84FD) +#define ZCL_RX_TIER15_BLOCK15_PRICE_ATTRIBUTE_ID (0x84FE) +#define ZCL_RX_TIER15_BLOCK16_PRICE_ATTRIBUTE_ID (0x84FF) +#define ZCL_RX_PRICE_TIER16_ATTRIBUTE_ID (0x850F) +#define ZCL_RX_PRICE_TIER17_ATTRIBUTE_ID (0x8510) +#define ZCL_RX_PRICE_TIER18_ATTRIBUTE_ID (0x8511) +#define ZCL_RX_PRICE_TIER19_ATTRIBUTE_ID (0x8512) +#define ZCL_RX_PRICE_TIER20_ATTRIBUTE_ID (0x8513) +#define ZCL_RX_PRICE_TIER21_ATTRIBUTE_ID (0x8514) +#define ZCL_RX_PRICE_TIER22_ATTRIBUTE_ID (0x8515) +#define ZCL_RX_PRICE_TIER23_ATTRIBUTE_ID (0x8516) +#define ZCL_RX_PRICE_TIER24_ATTRIBUTE_ID (0x8517) +#define ZCL_RX_PRICE_TIER25_ATTRIBUTE_ID (0x8518) +#define ZCL_RX_PRICE_TIER26_ATTRIBUTE_ID (0x8519) +#define ZCL_RX_PRICE_TIER27_ATTRIBUTE_ID (0x851A) +#define ZCL_RX_PRICE_TIER28_ATTRIBUTE_ID (0x851B) +#define ZCL_RX_PRICE_TIER29_ATTRIBUTE_ID (0x851C) +#define ZCL_RX_PRICE_TIER30_ATTRIBUTE_ID (0x851D) +#define ZCL_RX_PRICE_TIER31_ATTRIBUTE_ID (0x851E) +#define ZCL_RX_PRICE_TIER32_ATTRIBUTE_ID (0x851F) +#define ZCL_RX_PRICE_TIER33_ATTRIBUTE_ID (0x8520) +#define ZCL_RX_PRICE_TIER34_ATTRIBUTE_ID (0x8521) +#define ZCL_RX_PRICE_TIER35_ATTRIBUTE_ID (0x8522) +#define ZCL_RX_PRICE_TIER36_ATTRIBUTE_ID (0x8523) +#define ZCL_RX_PRICE_TIER37_ATTRIBUTE_ID (0x8524) +#define ZCL_RX_PRICE_TIER38_ATTRIBUTE_ID (0x8525) +#define ZCL_RX_PRICE_TIER39_ATTRIBUTE_ID (0x8526) +#define ZCL_RX_PRICE_TIER40_ATTRIBUTE_ID (0x8527) +#define ZCL_RX_PRICE_TIER41_ATTRIBUTE_ID (0x8528) +#define ZCL_RX_PRICE_TIER42_ATTRIBUTE_ID (0x8529) +#define ZCL_RX_PRICE_TIER43_ATTRIBUTE_ID (0x852A) +#define ZCL_RX_PRICE_TIER44_ATTRIBUTE_ID (0x852B) +#define ZCL_RX_PRICE_TIER45_ATTRIBUTE_ID (0x852C) +#define ZCL_RX_PRICE_TIER46_ATTRIBUTE_ID (0x852D) +#define ZCL_RX_PRICE_TIER47_ATTRIBUTE_ID (0x852E) +#define ZCL_RX_PRICE_TIER48_ATTRIBUTE_ID (0x852F) +#define ZCL_RX_TARIFF_LABEL_ATTRIBUTE_ID (0x8610) +#define ZCL_RX_NUMBER_OF_PRICE_TIERS_IN_USE_ATTRIBUTE_ID (0x8611) +#define ZCL_RX_NUMBER_OF_BLOCK_THRESHOLDS_IN_USE_ATTRIBUTE_ID (0x8612) +#define ZCL_RX_TIER_BLOCK_MODE_ATTRIBUTE_ID (0x8613) +#define ZCL_RX_TARIFF_RESOLUTION_PERIOD_ATTRIBUTE_ID (0x8615) +#define ZCL_RX_CO2_ATTRIBUTE_ID (0x8625) +#define ZCL_RX_CO2_UNIT_ATTRIBUTE_ID (0x8626) +#define ZCL_RX_CO2_TRAILING_DIGIT_ATTRIBUTE_ID (0x8627) +#define ZCL_RX_CURRENT_BILLING_PERIOD_START_ATTRIBUTE_ID (0x8700) +#define ZCL_RX_CURRENT_BILLING_PERIOD_DURATION_ATTRIBUTE_ID (0x8701) +#define ZCL_RX_LAST_BILLING_PERIOD_START_ATTRIBUTE_ID (0x8702) +#define ZCL_RX_LAST_BILLING_PERIOD_DURATION_ATTRIBUTE_ID (0x8703) +#define ZCL_RX_LAST_BILLING_PERIOD_CONSOLIDATED_BILL_ATTRIBUTE_ID (0x8704) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Demand Response and Load Control // Client attributes -#define ZCL_UTILITY_ENROLLMENT_GROUP_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_START_RANDOMIZATION_MINUTES_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_DURATION_RANDOMIZATION_MINUTES_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_DEVICE_CLASS_VALUE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_DEMAND_RESPONSE_LOAD_CONTROL_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_DEMAND_RESPONSE_LOAD_CONTROL_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_UTILITY_ENROLLMENT_GROUP_ATTRIBUTE_ID (0x0000) +#define ZCL_START_RANDOMIZATION_MINUTES_ATTRIBUTE_ID (0x0001) +#define ZCL_DURATION_RANDOMIZATION_MINUTES_ATTRIBUTE_ID (0x0002) +#define ZCL_DEVICE_CLASS_VALUE_ATTRIBUTE_ID (0x0003) +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_DEMAND_RESPONSE_LOAD_CONTROL_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_DEMAND_RESPONSE_LOAD_CONTROL_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) -// Attribute types for cluster: Simple Metering -// Cluster specification level: se-1.2b-15-0131-02 +// Attribute ids for cluster: Simple Metering // Client attributes -#define ZCL_FUNCTIONAL_NOTIFICATION_FLAGS_ATTRIBUTE_ID 0x0000 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_NOTIFICATION_FLAGS_2_ATTRIBUTE_ID 0x0001 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_NOTIFICATION_FLAGS_3_ATTRIBUTE_ID 0x0002 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_NOTIFICATION_FLAGS_4_ATTRIBUTE_ID 0x0003 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_NOTIFICATION_FLAGS_5_ATTRIBUTE_ID 0x0004 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_NOTIFICATION_FLAGS_6_ATTRIBUTE_ID 0x0005 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_NOTIFICATION_FLAGS_7_ATTRIBUTE_ID 0x0006 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_NOTIFICATION_FLAGS_8_ATTRIBUTE_ID 0x0007 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_SIMPLE_METERING_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_SIMPLE_METERING_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_FUNCTIONAL_NOTIFICATION_FLAGS_ATTRIBUTE_ID (0x0000) +#define ZCL_NOTIFICATION_FLAGS_2_ATTRIBUTE_ID (0x0001) +#define ZCL_NOTIFICATION_FLAGS_3_ATTRIBUTE_ID (0x0002) +#define ZCL_NOTIFICATION_FLAGS_4_ATTRIBUTE_ID (0x0003) +#define ZCL_NOTIFICATION_FLAGS_5_ATTRIBUTE_ID (0x0004) +#define ZCL_NOTIFICATION_FLAGS_6_ATTRIBUTE_ID (0x0005) +#define ZCL_NOTIFICATION_FLAGS_7_ATTRIBUTE_ID (0x0006) +#define ZCL_NOTIFICATION_FLAGS_8_ATTRIBUTE_ID (0x0007) +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_CURRENT_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_CURRENT_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_CURRENT_MAX_DEMAND_DELIVERED_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_CURRENT_MAX_DEMAND_RECEIVED_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_DFT_SUMMATION_ATTRIBUTE_ID 0x0004 // Ver.: always -#define ZCL_DAILY_FREEZE_TIME_ATTRIBUTE_ID 0x0005 // Ver.: always -#define ZCL_POWER_FACTOR_ATTRIBUTE_ID 0x0006 // Ver.: always -#define ZCL_READING_SNAP_SHOT_TIME_ATTRIBUTE_ID 0x0007 // Ver.: always -#define ZCL_CURRENT_MAX_DEMAND_DELIVERED_TIME_ATTRIBUTE_ID 0x0008 // Ver.: always -#define ZCL_CURRENT_MAX_DEMAND_RECEIVED_TIME_ATTRIBUTE_ID 0x0009 // Ver.: always -#define ZCL_DEFAULT_UPDATE_PERIOD_ATTRIBUTE_ID 0x000A // Ver.: since se-1.1-07-5356-16 -#define ZCL_FAST_POLL_UPDATE_PERIOD_ATTRIBUTE_ID 0x000B // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_BLOCK_PERIOD_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x000C // Ver.: since se-1.1-07-5356-16 -#define ZCL_DAILY_CONSUMPTION_TARGET_ATTRIBUTE_ID 0x000D // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_BLOCK_ATTRIBUTE_ID 0x000E // Ver.: since se-1.1-07-5356-16 -#define ZCL_PROFILE_INTERVAL_PERIOD_ATTRIBUTE_ID 0x000F // Ver.: since se-1.1-07-5356-16 -#define ZCL_INTERVAL_READ_REPORTING_PERIOD_ATTRIBUTE_ID 0x0010 // Ver.: since se-1.1-07-5356-16 -#define ZCL_PRESET_READING_TIME_ATTRIBUTE_ID 0x0011 // Ver.: since se-1.1-07-5356-16 -#define ZCL_VOLUME_PER_REPORT_ATTRIBUTE_ID 0x0012 // Ver.: since se-1.1-07-5356-16 -#define ZCL_FLOW_RESTRICTION_ATTRIBUTE_ID 0x0013 // Ver.: since se-1.1-07-5356-16 -#define ZCL_SUPPLY_STATUS_ATTRIBUTE_ID 0x0014 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_INLET_ENERGY_CARRIER_SUMMATION_ATTRIBUTE_ID 0x0015 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_OUTLET_ENERGY_CARRIER_SUMMATION_ATTRIBUTE_ID 0x0016 // Ver.: since se-1.1-07-5356-16 -#define ZCL_INLET_TEMPERATURE_ATTRIBUTE_ID 0x0017 // Ver.: since se-1.1-07-5356-16 -#define ZCL_OUTLET_TEMPERATURE_ATTRIBUTE_ID 0x0018 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CONTROL_TEMPERATURE_ATTRIBUTE_ID 0x0019 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_INLET_ENERGY_CARRIER_DEMAND_ATTRIBUTE_ID 0x001A // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_OUTLET_ENERGY_CARRIER_DEMAND_ATTRIBUTE_ID 0x001B // Ver.: since se-1.1-07-5356-16 -#define ZCL_PREVIOUS_BLOCK_PERIOD_CONSUMIPTION_DELIVERED_ATTRIBUTE_ID 0x001C // Ver.: since se-1.1b-07-5356-18 -#define ZCL_CURRENT_BLOCK_PERIOD_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x001D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_BLOCK_RECEIVED_ATTRIBUTE_ID 0x001E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_DFT_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x001F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_ACTIVE_REGISTER_TIER_DELIVERED_ATTRIBUTE_ID 0x0020 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_ACTIVE_REGISTER_TIER_RECEIVED_ATTRIBUTE_ID 0x0021 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_LAST_BLOCK_SWITCH_TIME_ATTRIBUTE_ID 0x0022 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER1_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0100 // Ver.: always -#define ZCL_CURRENT_TIER1_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0101 // Ver.: always -#define ZCL_CURRENT_TIER2_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0102 // Ver.: always -#define ZCL_CURRENT_TIER2_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0103 // Ver.: always -#define ZCL_CURRENT_TIER3_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0104 // Ver.: always -#define ZCL_CURRENT_TIER3_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0105 // Ver.: always -#define ZCL_CURRENT_TIER4_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0106 // Ver.: always -#define ZCL_CURRENT_TIER4_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0107 // Ver.: always -#define ZCL_CURRENT_TIER5_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0108 // Ver.: always -#define ZCL_CURRENT_TIER5_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0109 // Ver.: always -#define ZCL_CURRENT_TIER6_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x010A // Ver.: always -#define ZCL_CURRENT_TIER6_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x010B // Ver.: always -#define ZCL_CURRENT_TIER7_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x010C // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER7_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x010D // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER8_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x010E // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER8_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x010F // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER9_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0110 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER9_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0111 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER10_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0112 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER10_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0113 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER11_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0114 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER11_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0115 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER12_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0116 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER12_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0117 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER13_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0118 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER13_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0119 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER14_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x011A // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER14_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x011B // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER15_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x011C // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER15_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x011D // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER16_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x011E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER16_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x011F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER17_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0120 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER17_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0121 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER18_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0122 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER18_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0123 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER19_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0124 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER19_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0125 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER20_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0126 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER20_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0127 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER21_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0128 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER21_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0129 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER22_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x012A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER22_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x012B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER23_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x012C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER23_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x012D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER24_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x012E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER24_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x012F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER25_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0130 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER25_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0131 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER26_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0132 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER26_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0133 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER27_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0134 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER27_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0135 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER28_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0136 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER28_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0137 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER29_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0138 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER29_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0139 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER30_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x013A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER30_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x013B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER31_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x013C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER31_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x013D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER32_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x013E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER32_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x013F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER33_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0140 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER33_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0141 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER34_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0142 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER34_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0143 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER35_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0144 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER35_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0145 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER36_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0146 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER36_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0147 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER37_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0148 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER37_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0149 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER38_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x014A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER38_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x014B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER39_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x014C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER39_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x014D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER40_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x014E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER40_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x014F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER41_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0150 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER41_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0151 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER42_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0152 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER42_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0153 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER43_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0154 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER43_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0155 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER44_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0156 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER44_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0157 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER45_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0158 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER45_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0159 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER46_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x015A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER46_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x015B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER47_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x015C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER47_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x015D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER48_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x015E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER48_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x015F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CPP1_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x01FC // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CPP2_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x01FE // Ver.: since se-1.2a-07-5356-19 -#define ZCL_STATUS_ATTRIBUTE_ID 0x0200 // Ver.: always -#define ZCL_REMAINING_BATTERY_LIFE_ATTRIBUTE_ID 0x0201 // Ver.: since se-1.1-07-5356-16 -#define ZCL_HOURS_IN_OPERATION_ATTRIBUTE_ID 0x0202 // Ver.: since se-1.1-07-5356-16 -#define ZCL_HOURS_IN_FAULT_ATTRIBUTE_ID 0x0203 // Ver.: since se-1.1-07-5356-16 -#define ZCL_EXTENDED_STATUS_ATTRIBUTE_ID 0x0204 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_REMAINING_BATTERY_LIFE_IN_DAYS_ATTRIBUTE_ID 0x0205 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_METER_ID_ATTRIBUTE_ID 0x0206 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_AMBIENT_CONSUMPTION_INDICATOR_ATTRIBUTE_ID 0x0207 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_UNIT_OF_MEASURE_ATTRIBUTE_ID 0x0300 // Ver.: always -#define ZCL_MULTIPLIER_ATTRIBUTE_ID 0x0301 // Ver.: always -#define ZCL_DIVISOR_ATTRIBUTE_ID 0x0302 // Ver.: always -#define ZCL_SUMMATION_FORMATTING_ATTRIBUTE_ID 0x0303 // Ver.: always -#define ZCL_DEMAND_FORMATTING_ATTRIBUTE_ID 0x0304 // Ver.: always -#define ZCL_HISTORICAL_CONSUMPTION_FORMATTING_ATTRIBUTE_ID 0x0305 // Ver.: always -#define ZCL_METERING_DEVICE_TYPE_ATTRIBUTE_ID 0x0306 // Ver.: always -#define ZCL_SITE_ID_ATTRIBUTE_ID 0x0307 // Ver.: since se-1.1-07-5356-16 -#define ZCL_METER_SERIAL_NUMBER_ATTRIBUTE_ID 0x0308 // Ver.: since se-1.1-07-5356-16 -#define ZCL_ENERGY_CARRIER_UNIT_OF_MEASURE_ATTRIBUTE_ID 0x0309 // Ver.: since se-1.1-07-5356-16 -#define ZCL_ENERGY_CARRIER_SUMMATION_FORMATTING_ATTRIBUTE_ID 0x030A // Ver.: since se-1.1-07-5356-16 -#define ZCL_ENERGY_CARRIER_DEMAND_FORMATTING_ATTRIBUTE_ID 0x030B // Ver.: since se-1.1-07-5356-16 -#define ZCL_TEMPERATURE_UNIT_OF_MEASURE_ATTRIBUTE_ID 0x030C // Ver.: since se-1.1-07-5356-16 -#define ZCL_TEMPERATURE_FORMATTING_ATTRIBUTE_ID 0x030D // Ver.: since se-1.1-07-5356-16 -#define ZCL_MODULE_SERIAL_NUMBER_ATTRIBUTE_ID 0x030E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_OPERATING_TARIFF_LABEL_DELIVERED_ATTRIBUTE_ID 0x030F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_OPERATING_TARIFF_LABEL_RECEIVED_ATTRIBUTE_ID 0x0310 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CUSTOMER_ID_NUMBER_ATTRIBUTE_ID 0x0311 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_ALTERNATIVE_UNIT_OF_MEASURE_ATTRIBUTE_ID 0x0312 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_ALTERNATIVE_DEMAND_FORMATTING_ATTRIBUTE_ID 0x0313 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_ALTERNATIVE_CONSUMPTION_FORMATTING_ATTRIBUTE_ID 0x0314 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_INSTANTANEOUS_DEMAND_ATTRIBUTE_ID 0x0400 // Ver.: always -#define ZCL_CURRENT_DAY_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0401 // Ver.: always -#define ZCL_CURRENT_DAY_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0402 // Ver.: always -#define ZCL_PREVIOUS_DAY_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0403 // Ver.: always -#define ZCL_PREVIOUS_DAY_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0404 // Ver.: always -#define ZCL_CURRENT_PARTIAL_PROFILE_INTERVAL_START_TIME_DELIVERED_ATTRIBUTE_ID 0x0405 // Ver.: always -#define ZCL_CURRENT_PARTIAL_PROFILE_INTERVAL_START_TIME_RECEIVED_ATTRIBUTE_ID 0x0406 // Ver.: always -#define ZCL_CURRENT_PARTIAL_PROFILE_INTERVAL_VALUE_DELIVERED_ATTRIBUTE_ID 0x0407 // Ver.: always -#define ZCL_CURRENT_PARTIAL_PROFILE_INTERVAL_VALUE_RECEIVED_ATTRIBUTE_ID 0x0408 // Ver.: always -#define ZCL_CURRENT_DAY_MAX_PRESSURE_ATTRIBUTE_ID 0x0409 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_DAY_MIN_PRESSURE_ATTRIBUTE_ID 0x040A // Ver.: since se-1.1-07-5356-16 -#define ZCL_PREVIOUS_DAY_MAX_PRESSURE_ATTRIBUTE_ID 0x040B // Ver.: since se-1.1-07-5356-16 -#define ZCL_PREVIOUS_DAY_MIN_PRESSURE_ATTRIBUTE_ID 0x040C // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_DAY_MAX_DEMAND_ATTRIBUTE_ID 0x040D // Ver.: since se-1.1-07-5356-16 -#define ZCL_PREVIOUS_DAY_MAX_DEMAND_ATTRIBUTE_ID 0x040E // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_MONTH_MAX_DEMAND_ATTRIBUTE_ID 0x040F // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_YEAR_MAX_DEMAND_ATTRIBUTE_ID 0x0410 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_DAY_MAX_ENERGY_CARRIER_DEMAND_ATTRIBUTE_ID 0x0411 // Ver.: since se-1.1-07-5356-16 -#define ZCL_PREVIOUS_DAY_MAX_ENERGY_CARRIER_DEMAND_ATTRIBUTE_ID 0x0412 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_MONTH_MAX_ENERGY_CARRIER_DEMAND_ATTRIBUTE_ID 0x0413 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_MONTH_MIN_ENERGY_CARRIER_DEMAND_ATTRIBUTE_ID 0x0414 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_YEAR_MAX_ENERGY_CARRIER_DEMAND_ATTRIBUTE_ID 0x0415 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_YEAR_MIN_ENERGY_CARRIER_DEMAND_ATTRIBUTE_ID 0x0416 // Ver.: since se-1.1-07-5356-16 -#define ZCL_PREVIOUS_DAY2_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0420 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY2_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0421 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY3_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0422 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY3_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0423 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY4_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0424 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY4_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0425 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY5_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0426 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY5_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0427 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY6_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0428 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY6_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0429 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY7_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x042A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY7_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x042B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY8_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x042C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY8_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x042D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_WEEK_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0430 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_WEEK_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0431 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_WEEK_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0432 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_WEEK_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0433 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_WEEK2_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0434 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_WEEK2_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0435 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_WEEK3_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0436 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_WEEK3_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0437 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_WEEK4_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0438 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_WEEK4_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0439 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_WEEK5_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x043A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_WEEK5_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x043B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_MONTH_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0440 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_MONTH_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0441 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0442 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0443 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH2_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0444 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH2_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0445 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH3_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0446 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH3_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0447 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH4_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0448 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH4_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0449 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH5_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x044A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH5_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x044B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH6_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x044C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH6_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x044D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH7_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x044E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH7_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x044F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH8_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0450 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH8_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0451 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH9_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0452 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH9_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0453 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH10_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0454 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH10_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0455 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH11_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0456 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH11_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0457 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH12_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0458 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH12_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0459 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH13_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x045A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH13_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x045B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_METERING_HISTORICAL_FREEZE_TIME_ATTRIBUTE_ID 0x045C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_DAY_MAX_DEMAND_DELIVERED_ATTRIBUTE_ID 0x045D // Ver.: since se-1.4-17-05019-001 -#define ZCL_CURRENT_DAY_MAX_DEMAND_DELIVERED_TIME_ATTRIBUTE_ID 0x045E // Ver.: since se-1.4-17-05019-001 -#define ZCL_CURRENT_DAY_MAX_DEMAND_RECEIVED_ATTRIBUTE_ID 0x045F // Ver.: since se-1.4-17-05019-001 -#define ZCL_CURRENT_DAY_MAX_DEMAND_RECEIVED_TIME_ATTRIBUTE_ID 0x0460 // Ver.: since se-1.4-17-05019-001 -#define ZCL_PREVIOUS_DAY_MAX_DEMAND_DELIVERED_ATTRIBUTE_ID 0x0461 // Ver.: since se-1.4-17-05019-001 -#define ZCL_PREVIOUS_DAY_MAX_DEMAND_DELIVERED_TIME_ATTRIBUTE_ID 0x0462 // Ver.: since se-1.4-17-05019-001 -#define ZCL_PREVIOUS_DAY_MAX_DEMAND_RECEIVED_ATTRIBUTE_ID 0x0463 // Ver.: since se-1.4-17-05019-001 -#define ZCL_PREVIOUS_DAY_MAX_DEMAND_RECEIVED_TIME_ATTRIBUTE_ID 0x0464 // Ver.: since se-1.4-17-05019-001 -#define ZCL_MAX_NUMBER_OF_PERIODS_DELIVERED_ATTRIBUTE_ID 0x0500 // Ver.: always -#define ZCL_CURRENT_DEMAND_DELIVERED_ATTRIBUTE_ID 0x0600 // Ver.: always -#define ZCL_DEMAND_LIMIT_ATTRIBUTE_ID 0x0601 // Ver.: always -#define ZCL_DEMAND_INTEGRATION_PERIOD_ATTRIBUTE_ID 0x0602 // Ver.: always -#define ZCL_NUMBER_OF_DEMAND_SUBINTERVALS_ATTRIBUTE_ID 0x0603 // Ver.: always -#define ZCL_DEMAND_LIMIT_ARM_DURATION_IN_MINUTES_ATTRIBUTE_ID 0x0604 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_LOAD_LIMIT_SUPPLY_STATE_ATTRIBUTE_ID 0x0605 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_LOAD_LIMIT_COUNTER_ATTRIBUTE_ID 0x0606 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_SUPPLY_TAMPER_STATE_ATTRIBUTE_ID 0x0607 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_SUPPLY_DEPLETION_STATE_ATTRIBUTE_ID 0x0608 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_SUPPLY_UNCONTROLLED_FLOW_STATE_ATTRIBUTE_ID 0x0609 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_NO_TIER_BLOCK1_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0700 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_NO_TIER_BLOCK2_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0701 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_NO_TIER_BLOCK3_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0702 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_NO_TIER_BLOCK4_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0703 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_NO_TIER_BLOCK5_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0704 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_NO_TIER_BLOCK6_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0705 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_NO_TIER_BLOCK7_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0706 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_NO_TIER_BLOCK8_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0707 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_NO_TIER_BLOCK9_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0708 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_NO_TIER_BLOCK10_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0709 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_NO_TIER_BLOCK11_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x070A // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_NO_TIER_BLOCK12_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x070B // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_NO_TIER_BLOCK13_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x070C // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_NO_TIER_BLOCK14_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x070D // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_NO_TIER_BLOCK15_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x070E // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_NO_TIER_BLOCK16_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x070F // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER1_BLOCK1_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0710 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER1_BLOCK2_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0711 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER1_BLOCK3_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0712 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER1_BLOCK4_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0713 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER1_BLOCK5_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0714 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER1_BLOCK6_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0715 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER1_BLOCK7_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0716 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER1_BLOCK8_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0717 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER1_BLOCK9_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0718 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER1_BLOCK10_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0719 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER1_BLOCK11_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x071A // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER1_BLOCK12_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x071B // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER1_BLOCK13_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x071C // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER1_BLOCK14_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x071D // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER1_BLOCK15_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x071E // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER1_BLOCK16_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x071F // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER2_BLOCK1_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0720 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER2_BLOCK2_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0721 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER2_BLOCK3_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0722 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER2_BLOCK4_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0723 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER2_BLOCK5_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0724 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER2_BLOCK6_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0725 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER2_BLOCK7_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0726 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER2_BLOCK8_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0727 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER2_BLOCK9_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0728 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER2_BLOCK10_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0729 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER2_BLOCK11_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x072A // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER2_BLOCK12_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x072B // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER2_BLOCK13_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x072C // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER2_BLOCK14_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x072D // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER2_BLOCK15_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x072E // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER2_BLOCK16_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x072F // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER3_BLOCK1_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0730 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER3_BLOCK2_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0731 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER3_BLOCK3_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0732 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER3_BLOCK4_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0733 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER3_BLOCK5_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0734 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER3_BLOCK6_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0735 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER3_BLOCK7_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0736 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER3_BLOCK8_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0737 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER3_BLOCK9_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0738 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER3_BLOCK10_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0739 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER3_BLOCK11_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x073A // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER3_BLOCK12_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x073B // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER3_BLOCK13_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x073C // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER3_BLOCK14_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x073D // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER3_BLOCK15_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x073E // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER3_BLOCK16_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x073F // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER4_BLOCK1_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0740 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER4_BLOCK2_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0741 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER4_BLOCK3_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0742 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER4_BLOCK4_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0743 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER4_BLOCK5_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0744 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER4_BLOCK6_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0745 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER4_BLOCK7_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0746 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER4_BLOCK8_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0747 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER4_BLOCK9_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0748 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER4_BLOCK10_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0749 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER4_BLOCK11_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x074A // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER4_BLOCK12_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x074B // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER4_BLOCK13_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x074C // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER4_BLOCK14_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x074D // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER4_BLOCK15_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x074E // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER4_BLOCK16_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x074F // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER5_BLOCK1_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0750 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER5_BLOCK2_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0751 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER5_BLOCK3_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0752 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER5_BLOCK4_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0753 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER5_BLOCK5_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0754 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER5_BLOCK6_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0755 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER5_BLOCK7_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0756 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER5_BLOCK8_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0757 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER5_BLOCK9_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0758 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER5_BLOCK10_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0759 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER5_BLOCK11_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x075A // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER5_BLOCK12_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x075B // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER5_BLOCK13_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x075C // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER5_BLOCK14_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x075D // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER5_BLOCK15_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x075E // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER5_BLOCK16_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x075F // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER6_BLOCK1_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0760 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER6_BLOCK2_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0761 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER6_BLOCK3_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0762 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER6_BLOCK4_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0763 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER6_BLOCK5_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0764 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER6_BLOCK6_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0765 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER6_BLOCK7_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0766 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER6_BLOCK8_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0767 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER6_BLOCK9_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0768 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER6_BLOCK10_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0769 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER6_BLOCK11_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x076A // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER6_BLOCK12_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x076B // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER6_BLOCK13_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x076C // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER6_BLOCK14_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x076D // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER6_BLOCK15_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x076E // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER6_BLOCK16_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x076F // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER7_BLOCK1_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0770 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER7_BLOCK2_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0771 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER7_BLOCK3_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0772 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER7_BLOCK4_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0773 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER7_BLOCK5_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0774 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER7_BLOCK6_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0775 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER7_BLOCK7_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0776 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER7_BLOCK8_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0777 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER7_BLOCK9_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0778 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER7_BLOCK10_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0779 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER7_BLOCK11_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x077A // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER7_BLOCK12_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x077B // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER7_BLOCK13_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x077C // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER7_BLOCK14_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x077D // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER7_BLOCK15_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x077E // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER7_BLOCK16_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x077F // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER8_BLOCK1_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0780 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER8_BLOCK2_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0781 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER8_BLOCK3_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0782 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER8_BLOCK4_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0783 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER8_BLOCK5_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0784 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER8_BLOCK6_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0785 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER8_BLOCK7_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0786 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER8_BLOCK8_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0787 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER8_BLOCK9_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0788 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER8_BLOCK10_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0789 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER8_BLOCK11_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x078A // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER8_BLOCK12_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x078B // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER8_BLOCK13_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x078C // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER8_BLOCK14_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x078D // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER8_BLOCK15_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x078E // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER8_BLOCK16_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x078F // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER9_BLOCK1_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0790 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER9_BLOCK2_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0791 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER9_BLOCK3_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0792 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER9_BLOCK4_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0793 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER9_BLOCK5_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0794 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER9_BLOCK6_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0795 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER9_BLOCK7_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0796 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER9_BLOCK8_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0797 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER9_BLOCK9_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0798 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER9_BLOCK10_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0799 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER9_BLOCK11_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x079A // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER9_BLOCK12_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x079B // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER9_BLOCK13_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x079C // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER9_BLOCK14_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x079D // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER9_BLOCK15_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x079E // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER9_BLOCK16_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x079F // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER10_BLOCK1_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07A0 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER10_BLOCK2_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07A1 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER10_BLOCK3_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07A2 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER10_BLOCK4_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07A3 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER10_BLOCK5_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07A4 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER10_BLOCK6_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07A5 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER10_BLOCK7_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07A6 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER10_BLOCK8_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07A7 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER10_BLOCK9_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07A8 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER10_BLOCK10_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07A9 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER10_BLOCK11_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07AA // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER10_BLOCK12_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07AB // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER10_BLOCK13_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07AC // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER10_BLOCK14_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07AD // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER10_BLOCK15_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07AE // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER10_BLOCK16_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07AF // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER11_BLOCK1_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07B0 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER11_BLOCK2_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07B1 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER11_BLOCK3_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07B2 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER11_BLOCK4_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07B3 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER11_BLOCK5_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07B4 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER11_BLOCK6_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07B5 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER11_BLOCK7_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07B6 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER11_BLOCK8_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07B7 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER11_BLOCK9_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07B8 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER11_BLOCK10_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07B9 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER11_BLOCK11_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07BA // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER11_BLOCK12_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07BB // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER11_BLOCK13_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07BC // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER11_BLOCK14_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07BD // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER11_BLOCK15_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07BE // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER11_BLOCK16_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07BF // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER12_BLOCK1_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07C0 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER12_BLOCK2_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07C1 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER12_BLOCK3_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07C2 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER12_BLOCK4_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07C3 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER12_BLOCK5_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07C4 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER12_BLOCK6_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07C5 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER12_BLOCK7_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07C6 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER12_BLOCK8_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07C7 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER12_BLOCK9_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07C8 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER12_BLOCK10_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07C9 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER12_BLOCK11_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07CA // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER12_BLOCK12_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07CB // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER12_BLOCK13_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07CC // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER12_BLOCK14_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07CD // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER12_BLOCK15_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07CE // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER12_BLOCK16_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07CF // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER13_BLOCK1_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07D0 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER13_BLOCK2_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07D1 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER13_BLOCK3_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07D2 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER13_BLOCK4_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07D3 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER13_BLOCK5_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07D4 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER13_BLOCK6_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07D5 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER13_BLOCK7_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07D6 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER13_BLOCK8_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07D7 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER13_BLOCK9_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07D8 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER13_BLOCK10_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07D9 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER13_BLOCK11_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07DA // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER13_BLOCK12_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07DB // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER13_BLOCK13_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07DC // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER13_BLOCK14_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07DD // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER13_BLOCK15_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07DE // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER13_BLOCK16_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07DF // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER14_BLOCK1_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07E0 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER14_BLOCK2_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07E1 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER14_BLOCK3_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07E2 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER14_BLOCK4_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07E3 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER14_BLOCK5_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07E4 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER14_BLOCK6_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07E5 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER14_BLOCK7_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07E6 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER14_BLOCK8_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07E7 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER14_BLOCK9_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07E8 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER14_BLOCK10_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07E9 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER14_BLOCK11_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07EA // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER14_BLOCK12_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07EB // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER14_BLOCK13_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07EC // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER14_BLOCK14_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07ED // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER14_BLOCK15_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07EE // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER14_BLOCK16_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07EF // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER15_BLOCK1_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07F0 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER15_BLOCK2_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07F1 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER15_BLOCK3_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07F2 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER15_BLOCK4_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07F3 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER15_BLOCK5_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07F4 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER15_BLOCK6_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07F5 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER15_BLOCK7_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07F6 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER15_BLOCK8_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07F7 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER15_BLOCK9_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07F8 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER15_BLOCK10_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07F9 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER15_BLOCK11_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07FA // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER15_BLOCK12_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07FB // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER15_BLOCK13_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07FC // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER15_BLOCK14_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07FD // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER15_BLOCK15_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07FE // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER15_BLOCK16_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07FF // Ver.: since se-1.1-07-5356-16 -#define ZCL_GENERIC_ALARM_MASK_ATTRIBUTE_ID 0x0800 // Ver.: since se-1.1-07-5356-16 -#define ZCL_ELECTRICITY_ALARM_MASK_ATTRIBUTE_ID 0x0801 // Ver.: since se-1.1-07-5356-16 -#define ZCL_GENERIC_FLOW_PRESSURE_ALARM_MASK_ATTRIBUTE_ID 0x0802 // Ver.: since se-1.1-07-5356-16 -#define ZCL_WATER_SPECIFIC_ALARM_MASK_ATTRIBUTE_ID 0x0803 // Ver.: since se-1.1-07-5356-16 -#define ZCL_HEAT_AND_COOLING_SPECIFIC_ALARM_MASK_ATTRIBUTE_ID 0x0804 // Ver.: since se-1.1-07-5356-16 -#define ZCL_GAS_SPECIFIC_ALARM_MASK_ATTRIBUTE_ID 0x0805 // Ver.: since se-1.1-07-5356-16 -#define ZCL_METERING_EXTENDED_GENERIC_ALARM_MASK_ATTRIBUTE_ID 0x0806 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_METERING_MANUFACTURE_ALARM_MASK_ATTRIBUTE_ID 0x0807 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_NO_TIER_BLOCK1_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0900 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_NO_TIER_BLOCK2_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0901 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_NO_TIER_BLOCK3_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0902 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_NO_TIER_BLOCK4_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0903 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_NO_TIER_BLOCK5_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0904 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_NO_TIER_BLOCK6_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0905 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_NO_TIER_BLOCK7_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0906 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_NO_TIER_BLOCK8_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0907 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_NO_TIER_BLOCK9_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0908 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_NO_TIER_BLOCK10_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0909 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_NO_TIER_BLOCK11_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x090A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_NO_TIER_BLOCK12_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x090B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_NO_TIER_BLOCK13_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x090C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_NO_TIER_BLOCK14_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x090D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_NO_TIER_BLOCK15_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x090E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_NO_TIER_BLOCK16_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x090F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER1_BLOCK1_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0910 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER1_BLOCK2_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0911 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER1_BLOCK3_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0912 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER1_BLOCK4_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0913 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER1_BLOCK5_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0914 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER1_BLOCK6_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0915 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER1_BLOCK7_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0916 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER1_BLOCK8_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0917 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER1_BLOCK9_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0918 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER1_BLOCK10_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0919 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER1_BLOCK11_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x091A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER1_BLOCK12_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x091B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER1_BLOCK13_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x091C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER1_BLOCK14_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x091D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER1_BLOCK15_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x091E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER1_BLOCK16_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x091F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER2_BLOCK1_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0920 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER2_BLOCK2_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0921 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER2_BLOCK3_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0922 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER2_BLOCK4_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0923 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER2_BLOCK5_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0924 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER2_BLOCK6_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0925 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER2_BLOCK7_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0926 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER2_BLOCK8_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0927 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER2_BLOCK9_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0928 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER2_BLOCK10_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0929 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER2_BLOCK11_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x092A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER2_BLOCK12_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x092B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER2_BLOCK13_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x092C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER2_BLOCK14_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x092D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER2_BLOCK15_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x092E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER2_BLOCK16_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x092F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER3_BLOCK1_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0930 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER3_BLOCK2_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0931 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER3_BLOCK3_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0932 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER3_BLOCK4_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0933 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER3_BLOCK5_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0934 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER3_BLOCK6_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0935 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER3_BLOCK7_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0936 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER3_BLOCK8_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0937 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER3_BLOCK9_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0938 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER3_BLOCK10_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0939 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER3_BLOCK11_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x093A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER3_BLOCK12_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x093B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER3_BLOCK13_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x093C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER3_BLOCK14_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x093D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER3_BLOCK15_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x093E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER3_BLOCK16_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x093F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER4_BLOCK1_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0940 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER4_BLOCK2_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0941 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER4_BLOCK3_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0942 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER4_BLOCK4_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0943 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER4_BLOCK5_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0944 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER4_BLOCK6_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0945 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER4_BLOCK7_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0946 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER4_BLOCK8_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0947 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER4_BLOCK9_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0948 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER4_BLOCK10_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0949 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER4_BLOCK11_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x094A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER4_BLOCK12_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x094B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER4_BLOCK13_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x094C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER4_BLOCK14_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x094D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER4_BLOCK15_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x094E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER4_BLOCK16_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x094F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER5_BLOCK1_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0950 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER5_BLOCK2_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0951 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER5_BLOCK3_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0952 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER5_BLOCK4_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0953 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER5_BLOCK5_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0954 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER5_BLOCK6_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0955 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER5_BLOCK7_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0956 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER5_BLOCK8_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0957 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER5_BLOCK9_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0958 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER5_BLOCK10_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0959 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER5_BLOCK11_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x095A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER5_BLOCK12_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x095B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER5_BLOCK13_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x095C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER5_BLOCK14_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x095D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER5_BLOCK15_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x095E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER5_BLOCK16_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x095F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER6_BLOCK1_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0960 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER6_BLOCK2_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0961 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER6_BLOCK3_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0962 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER6_BLOCK4_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0963 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER6_BLOCK5_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0964 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER6_BLOCK6_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0965 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER6_BLOCK7_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0966 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER6_BLOCK8_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0967 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER6_BLOCK9_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0968 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER6_BLOCK10_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0969 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER6_BLOCK11_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x096A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER6_BLOCK12_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x096B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER6_BLOCK13_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x096C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER6_BLOCK14_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x096D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER6_BLOCK15_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x096E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER6_BLOCK16_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x096F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER7_BLOCK1_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0970 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER7_BLOCK2_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0971 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER7_BLOCK3_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0972 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER7_BLOCK4_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0973 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER7_BLOCK5_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0974 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER7_BLOCK6_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0975 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER7_BLOCK7_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0976 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER7_BLOCK8_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0977 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER7_BLOCK9_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0978 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER7_BLOCK10_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0979 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER7_BLOCK11_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x097A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER7_BLOCK12_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x097B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER7_BLOCK13_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x097C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER7_BLOCK14_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x097D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER7_BLOCK15_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x097E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER7_BLOCK16_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x097F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER8_BLOCK1_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0980 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER8_BLOCK2_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0981 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER8_BLOCK3_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0982 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER8_BLOCK4_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0983 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER8_BLOCK5_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0984 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER8_BLOCK6_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0985 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER8_BLOCK7_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0986 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER8_BLOCK8_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0987 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER8_BLOCK9_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0988 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER8_BLOCK10_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0989 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER8_BLOCK11_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x098A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER8_BLOCK12_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x098B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER8_BLOCK13_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x098C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER8_BLOCK14_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x098D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER8_BLOCK15_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x098E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER8_BLOCK16_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x098F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER9_BLOCK1_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0990 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER9_BLOCK2_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0991 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER9_BLOCK3_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0992 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER9_BLOCK4_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0993 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER9_BLOCK5_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0994 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER9_BLOCK6_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0995 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER9_BLOCK7_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0996 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER9_BLOCK8_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0997 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER9_BLOCK9_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0998 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER9_BLOCK10_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0999 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER9_BLOCK11_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x099A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER9_BLOCK12_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x099B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER9_BLOCK13_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x099C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER9_BLOCK14_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x099D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER9_BLOCK15_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x099E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER9_BLOCK16_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x099F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER10_BLOCK1_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09A0 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER10_BLOCK2_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09A1 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER10_BLOCK3_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09A2 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER10_BLOCK4_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09A3 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER10_BLOCK5_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09A4 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER10_BLOCK6_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09A5 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER10_BLOCK7_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09A6 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER10_BLOCK8_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09A7 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER10_BLOCK9_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09A8 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER10_BLOCK10_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09A9 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER10_BLOCK11_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09AA // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER10_BLOCK12_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09AB // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER10_BLOCK13_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09AC // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER10_BLOCK14_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09AD // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER10_BLOCK15_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09AE // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER10_BLOCK16_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09AF // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER11_BLOCK1_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09B0 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER11_BLOCK2_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09B1 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER11_BLOCK3_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09B2 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER11_BLOCK4_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09B3 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER11_BLOCK5_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09B4 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER11_BLOCK6_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09B5 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER11_BLOCK7_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09B6 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER11_BLOCK8_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09B7 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER11_BLOCK9_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09B8 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER11_BLOCK10_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09B9 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER11_BLOCK11_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09BA // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER11_BLOCK12_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09BB // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER11_BLOCK13_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09BC // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER11_BLOCK14_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09BD // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER11_BLOCK15_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09BE // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER11_BLOCK16_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09BF // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER12_BLOCK1_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09C0 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER12_BLOCK2_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09C1 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER12_BLOCK3_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09C2 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER12_BLOCK4_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09C3 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER12_BLOCK5_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09C4 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER12_BLOCK6_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09C5 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER12_BLOCK7_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09C6 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER12_BLOCK8_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09C7 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER12_BLOCK9_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09C8 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER12_BLOCK10_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09C9 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER12_BLOCK11_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09CA // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER12_BLOCK12_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09CB // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER12_BLOCK13_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09CC // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER12_BLOCK14_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09CD // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER12_BLOCK15_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09CE // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER12_BLOCK16_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09CF // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER13_BLOCK1_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09D0 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER13_BLOCK2_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09D1 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER13_BLOCK3_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09D2 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER13_BLOCK4_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09D3 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER13_BLOCK5_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09D4 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER13_BLOCK6_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09D5 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER13_BLOCK7_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09D6 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER13_BLOCK8_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09D7 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER13_BLOCK9_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09D8 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER13_BLOCK10_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09D9 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER13_BLOCK11_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09DA // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER13_BLOCK12_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09DB // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER13_BLOCK13_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09DC // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER13_BLOCK14_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09DD // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER13_BLOCK15_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09DE // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER13_BLOCK16_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09DF // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER14_BLOCK1_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09E0 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER14_BLOCK2_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09E1 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER14_BLOCK3_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09E2 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER14_BLOCK4_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09E3 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER14_BLOCK5_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09E4 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER14_BLOCK6_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09E5 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER14_BLOCK7_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09E6 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER14_BLOCK8_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09E7 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER14_BLOCK9_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09E8 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER14_BLOCK10_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09E9 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER14_BLOCK11_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09EA // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER14_BLOCK12_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09EB // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER14_BLOCK13_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09EC // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER14_BLOCK14_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09ED // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER14_BLOCK15_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09EE // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER14_BLOCK16_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09EF // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER15_BLOCK1_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09F0 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER15_BLOCK2_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09F1 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER15_BLOCK3_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09F2 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER15_BLOCK4_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09F3 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER15_BLOCK5_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09F4 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER15_BLOCK6_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09F5 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER15_BLOCK7_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09F6 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER15_BLOCK8_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09F7 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER15_BLOCK9_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09F8 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER15_BLOCK10_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09F9 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER15_BLOCK11_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09FA // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER15_BLOCK12_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09FB // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER15_BLOCK13_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09FC // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER15_BLOCK14_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09FD // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER15_BLOCK15_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09FE // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER15_BLOCK16_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09FF // Ver.: since se-1.2a-07-5356-19 -#define ZCL_BILL_TO_DATE_DELIVERED_ATTRIBUTE_ID 0x0A00 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_BILL_TO_DATE_TIME_STAMP_DELIVERED_ATTRIBUTE_ID 0x0A01 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PROJECTED_BILL_DELIVERED_ATTRIBUTE_ID 0x0A02 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PROJECTED_BILL_TIME_STAMP_DELIVERED_ATTRIBUTE_ID 0x0A03 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_BILL_DELIVERED_TRAILING_DIGIT_ATTRIBUTE_ID 0x0A04 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_BILL_TO_DATE_RECEIVED_ATTRIBUTE_ID 0x0A10 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_BILL_TO_DATE_TIME_STAMP_RECEIVED_ATTRIBUTE_ID 0x0A11 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PROJECTED_BILL_RECEIVED_ATTRIBUTE_ID 0x0A12 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PROJECTED_BILL_TIME_STAMP_RECEIVED_ATTRIBUTE_ID 0x0A13 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_BILL_RECEIVED_TRAILING_DIGIT_ATTRIBUTE_ID 0x0A14 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PROPOSED_CHANGE_SUPPLY_IMPLEMENTATION_TIME_ATTRIBUTE_ID 0x0B00 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PROPOSED_CHANGE_SUPPLY_STATUS_ATTRIBUTE_ID 0x0B01 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_UNCONTROLLED_FLOW_THESHOLD_ATTRIBUTE_ID 0x0B10 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_UNCONTROLLED_FLOW_THESHOLD_UNIT_OF_MEASURE_ATTRIBUTE_ID 0x0B11 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_UNCONTROLLED_FLOW_MULTIPLIER_ATTRIBUTE_ID 0x0B12 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_UNCONTROLLED_FLOW_DIVISOR_ATTRIBUTE_ID 0x0B13 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_FLOW_STABILIZATION_PERIOD_ATTRIBUTE_ID 0x0B14 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_FLOW_MEASUREMENT_PERIOD_ATTRIBUTE_ID 0x0B15 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_ALTERNATIVE_INSTANTANEOUS_DEMAND_ATTRIBUTE_ID 0x0C00 // Ver.: always -#define ZCL_CURRENT_ALTERNATIVE_DAY_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0C01 // Ver.: always -#define ZCL_CURRENT_ALTERNATIVE_DAY_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0C02 // Ver.: always -#define ZCL_PREVIOUS_DAY_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0C03 // Ver.: always -#define ZCL_PREVIOUS_DAY_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0C04 // Ver.: always -#define ZCL_CURRENT_ALTERNATIVE_PARTIAL_PROFILE_INTERVAL_START_TIME_DELIVERED_ATTRIBUTE_ID 0x0C05 // Ver.: always -#define ZCL_CURRENT_ALTERNATIVE_PARTIAL_PROFILE_INTERVAL_START_TIME_RECEIVED_ATTRIBUTE_ID 0x0C06 // Ver.: always -#define ZCL_CURRENT_ALTERNATIVE_PARTIAL_PROFILE_INTERVAL_VALUE_DELIVERED_ATTRIBUTE_ID 0x0C07 // Ver.: always -#define ZCL_CURRENT_ALTERNATIVE_PARTIAL_PROFILE_INTERVAL_VALUE_RECEIVED_ATTRIBUTE_ID 0x0C08 // Ver.: always -#define ZCL_CURRENT_ALTERNATIVE_DAY_MAX_PRESSURE_ATTRIBUTE_ID 0x0C09 // Ver.: always -#define ZCL_CURRENT_ALTERNATIVE_DAY_MIN_PRESSURE_ATTRIBUTE_ID 0x0C0A // Ver.: always -#define ZCL_PREVIOUS_DAY_ALTERNATIVE_MAX_PRESSURE_ATTRIBUTE_ID 0x0C0B // Ver.: always -#define ZCL_PREVIOUS_DAY_ALTERNATIVE_MIN_PRESSURE_ATTRIBUTE_ID 0x0C0C // Ver.: always -#define ZCL_CURRENT_ALTERNATIVE_DAY_ALTERNATIVE_MAX_DEMAND_ATTRIBUTE_ID 0x0C0D // Ver.: always -#define ZCL_PREVIOUS_DAY_ALTERNATIVE_MAX_DEMAND_ATTRIBUTE_ID 0x0C0E // Ver.: always -#define ZCL_CURRENT_ALTERNATIVE_MONTH_MAX_DEMAND_ATTRIBUTE_ID 0x0C0F // Ver.: always -#define ZCL_CURRENT_ALTERNATIVE_YEAR_MAX_DEMAND_ATTRIBUTE_ID 0x0C10 // Ver.: always -#define ZCL_PREVIOUS_DAY2_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0C20 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY2_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0C21 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY3_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0C22 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY3_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0C23 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY4_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0C24 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY4_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0C25 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY5_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0C26 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY5_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0C27 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY6_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0C28 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY6_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0C29 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY7_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0C2A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY7_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0C2B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY8_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0C2C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY8_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0C2D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_WEEK_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0C30 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_WEEK_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0C31 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_WEEK_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0C32 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_WEEK_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0C33 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_WEEK2_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0C34 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_WEEK2_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0C35 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_WEEK3_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0C36 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_WEEK3_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0C37 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_WEEK4_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0C38 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_WEEK4_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0C39 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_WEEK5_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0C3A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_WEEK5_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0C3B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_MONTH_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0C40 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_MONTH_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0C41 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0C42 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0C43 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH2_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0C44 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH2_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0C45 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH3_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0C46 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH3_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0C47 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH4_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0C48 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH4_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0C49 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH5_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0C4A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH5_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0C4B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH6_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0C4C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH6_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0C4D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH7_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0C4E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH7_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0C4F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH8_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0C50 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH8_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0C51 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH9_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0C52 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH9_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0C53 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH10_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0C54 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH10_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0C55 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH11_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0C56 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH11_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0C57 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH12_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0C58 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH12_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0C59 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH13_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0C5A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH13_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0C5B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_DAY_ALTERNATIVE_MAX_DEMAND_DELIVERED_ATTRIBUTE_ID 0x0C5C // Ver.: since se-1.4-17-05019-001 -#define ZCL_CURRENT_DAY_ALTERNATIVE_MAX_DEMAND_DELIVERED_TIME_ATTRIBUTE_ID 0x0C5D // Ver.: since se-1.4-17-05019-001 -#define ZCL_CURRENT_DAY_ALTERNATIVE_MAX_DEMAND_RECEIVED_ATTRIBUTE_ID 0x0C5E // Ver.: since se-1.4-17-05019-001 -#define ZCL_CURRENT_DAY_ALTERNATIVE_MAX_DEMAND_RECEIVED_TIME_ATTRIBUTE_ID 0x0C5F // Ver.: since se-1.4-17-05019-001 -#define ZCL_PREVIOUS_DAY_ALTERNATIVE_MAX_DEMAND_DELIVERED_ATTRIBUTE_ID 0x0C60 // Ver.: since se-1.4-17-05019-001 -#define ZCL_PREVIOUS_DAY_ALTERNATIVE_MAX_DEMAND_DELIVERED_TIME_ATTRIBUTE_ID 0x0C61 // Ver.: since se-1.4-17-05019-001 -#define ZCL_PREVIOUS_DAY_ALTERNATIVE_MAX_DEMAND_RECEIVED_ATTRIBUTE_ID 0x0C62 // Ver.: since se-1.4-17-05019-001 -#define ZCL_PREVIOUS_DAY_ALTERNATIVE_MAX_DEMAND_RECEIVED_TIME_ATTRIBUTE_ID 0x0C63 // Ver.: since se-1.4-17-05019-001 -#define ZCL_CURRENT_ACTIVE_SUMMATION_Q1_ATTRIBUTE_ID 0x0D01 // Ver.: since se-1.4-17-05019-001 -#define ZCL_CURRENT_ACTIVE_SUMMATION_Q2_ATTRIBUTE_ID 0x0D02 // Ver.: since se-1.4-17-05019-001 -#define ZCL_CURRENT_ACTIVE_SUMMATION_Q3_ATTRIBUTE_ID 0x0D03 // Ver.: since se-1.4-17-05019-001 -#define ZCL_CURRENT_ACTIVE_SUMMATION_Q4_ATTRIBUTE_ID 0x0D04 // Ver.: since se-1.4-17-05019-001 -#define ZCL_CURRENT_REACTIVE_SUMMATION_Q1_ATTRIBUTE_ID 0x0D05 // Ver.: since se-1.4-17-05019-001 -#define ZCL_CURRENT_REACTIVE_SUMMATION_Q2_ATTRIBUTE_ID 0x0D06 // Ver.: since se-1.4-17-05019-001 -#define ZCL_CURRENT_REACTIVE_SUMMATION_Q3_ATTRIBUTE_ID 0x0D07 // Ver.: since se-1.4-17-05019-001 -#define ZCL_CURRENT_REACTIVE_SUMMATION_Q4_ATTRIBUTE_ID 0x0D08 // Ver.: since se-1.4-17-05019-001 -#define ZCL_SIMPLE_METERING_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_SIMPLE_METERING_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Messaging -// Cluster specification level: se-1.2b-15-0131-02 +#define ZCL_CURRENT_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0000) +#define ZCL_CURRENT_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0001) +#define ZCL_CURRENT_MAX_DEMAND_DELIVERED_ATTRIBUTE_ID (0x0002) +#define ZCL_CURRENT_MAX_DEMAND_RECEIVED_ATTRIBUTE_ID (0x0003) +#define ZCL_DFT_SUMMATION_ATTRIBUTE_ID (0x0004) +#define ZCL_DAILY_FREEZE_TIME_ATTRIBUTE_ID (0x0005) +#define ZCL_POWER_FACTOR_ATTRIBUTE_ID (0x0006) +#define ZCL_READING_SNAP_SHOT_TIME_ATTRIBUTE_ID (0x0007) +#define ZCL_CURRENT_MAX_DEMAND_DELIVERED_TIME_ATTRIBUTE_ID (0x0008) +#define ZCL_CURRENT_MAX_DEMAND_RECEIVED_TIME_ATTRIBUTE_ID (0x0009) +#define ZCL_DEFAULT_UPDATE_PERIOD_ATTRIBUTE_ID (0x000A) +#define ZCL_FAST_POLL_UPDATE_PERIOD_ATTRIBUTE_ID (0x000B) +#define ZCL_CURRENT_BLOCK_PERIOD_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x000C) +#define ZCL_DAILY_CONSUMPTION_TARGET_ATTRIBUTE_ID (0x000D) +#define ZCL_CURRENT_BLOCK_ATTRIBUTE_ID (0x000E) +#define ZCL_PROFILE_INTERVAL_PERIOD_ATTRIBUTE_ID (0x000F) +#define ZCL_INTERVAL_READ_REPORTING_PERIOD_ATTRIBUTE_ID (0x0010) +#define ZCL_PRESET_READING_TIME_ATTRIBUTE_ID (0x0011) +#define ZCL_VOLUME_PER_REPORT_ATTRIBUTE_ID (0x0012) +#define ZCL_FLOW_RESTRICTION_ATTRIBUTE_ID (0x0013) +#define ZCL_SUPPLY_STATUS_ATTRIBUTE_ID (0x0014) +#define ZCL_CURRENT_INLET_ENERGY_CARRIER_SUMMATION_ATTRIBUTE_ID (0x0015) +#define ZCL_CURRENT_OUTLET_ENERGY_CARRIER_SUMMATION_ATTRIBUTE_ID (0x0016) +#define ZCL_INLET_TEMPERATURE_ATTRIBUTE_ID (0x0017) +#define ZCL_OUTLET_TEMPERATURE_ATTRIBUTE_ID (0x0018) +#define ZCL_CONTROL_TEMPERATURE_ATTRIBUTE_ID (0x0019) +#define ZCL_CURRENT_INLET_ENERGY_CARRIER_DEMAND_ATTRIBUTE_ID (0x001A) +#define ZCL_CURRENT_OUTLET_ENERGY_CARRIER_DEMAND_ATTRIBUTE_ID (0x001B) +#define ZCL_PREVIOUS_BLOCK_PERIOD_CONSUMIPTION_DELIVERED_ATTRIBUTE_ID (0x001C) +#define ZCL_CURRENT_BLOCK_PERIOD_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x001D) +#define ZCL_CURRENT_BLOCK_RECEIVED_ATTRIBUTE_ID (0x001E) +#define ZCL_DFT_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x001F) +#define ZCL_ACTIVE_REGISTER_TIER_DELIVERED_ATTRIBUTE_ID (0x0020) +#define ZCL_ACTIVE_REGISTER_TIER_RECEIVED_ATTRIBUTE_ID (0x0021) +#define ZCL_LAST_BLOCK_SWITCH_TIME_ATTRIBUTE_ID (0x0022) +#define ZCL_CURRENT_TIER1_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0100) +#define ZCL_CURRENT_TIER1_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0101) +#define ZCL_CURRENT_TIER2_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0102) +#define ZCL_CURRENT_TIER2_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0103) +#define ZCL_CURRENT_TIER3_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0104) +#define ZCL_CURRENT_TIER3_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0105) +#define ZCL_CURRENT_TIER4_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0106) +#define ZCL_CURRENT_TIER4_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0107) +#define ZCL_CURRENT_TIER5_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0108) +#define ZCL_CURRENT_TIER5_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0109) +#define ZCL_CURRENT_TIER6_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x010A) +#define ZCL_CURRENT_TIER6_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x010B) +#define ZCL_CURRENT_TIER7_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x010C) +#define ZCL_CURRENT_TIER7_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x010D) +#define ZCL_CURRENT_TIER8_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x010E) +#define ZCL_CURRENT_TIER8_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x010F) +#define ZCL_CURRENT_TIER9_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0110) +#define ZCL_CURRENT_TIER9_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0111) +#define ZCL_CURRENT_TIER10_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0112) +#define ZCL_CURRENT_TIER10_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0113) +#define ZCL_CURRENT_TIER11_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0114) +#define ZCL_CURRENT_TIER11_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0115) +#define ZCL_CURRENT_TIER12_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0116) +#define ZCL_CURRENT_TIER12_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0117) +#define ZCL_CURRENT_TIER13_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0118) +#define ZCL_CURRENT_TIER13_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0119) +#define ZCL_CURRENT_TIER14_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x011A) +#define ZCL_CURRENT_TIER14_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x011B) +#define ZCL_CURRENT_TIER15_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x011C) +#define ZCL_CURRENT_TIER15_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x011D) +#define ZCL_CURRENT_TIER16_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x011E) +#define ZCL_CURRENT_TIER16_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x011F) +#define ZCL_CURRENT_TIER17_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0120) +#define ZCL_CURRENT_TIER17_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0121) +#define ZCL_CURRENT_TIER18_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0122) +#define ZCL_CURRENT_TIER18_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0123) +#define ZCL_CURRENT_TIER19_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0124) +#define ZCL_CURRENT_TIER19_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0125) +#define ZCL_CURRENT_TIER20_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0126) +#define ZCL_CURRENT_TIER20_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0127) +#define ZCL_CURRENT_TIER21_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0128) +#define ZCL_CURRENT_TIER21_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0129) +#define ZCL_CURRENT_TIER22_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x012A) +#define ZCL_CURRENT_TIER22_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x012B) +#define ZCL_CURRENT_TIER23_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x012C) +#define ZCL_CURRENT_TIER23_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x012D) +#define ZCL_CURRENT_TIER24_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x012E) +#define ZCL_CURRENT_TIER24_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x012F) +#define ZCL_CURRENT_TIER25_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0130) +#define ZCL_CURRENT_TIER25_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0131) +#define ZCL_CURRENT_TIER26_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0132) +#define ZCL_CURRENT_TIER26_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0133) +#define ZCL_CURRENT_TIER27_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0134) +#define ZCL_CURRENT_TIER27_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0135) +#define ZCL_CURRENT_TIER28_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0136) +#define ZCL_CURRENT_TIER28_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0137) +#define ZCL_CURRENT_TIER29_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0138) +#define ZCL_CURRENT_TIER29_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0139) +#define ZCL_CURRENT_TIER30_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x013A) +#define ZCL_CURRENT_TIER30_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x013B) +#define ZCL_CURRENT_TIER31_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x013C) +#define ZCL_CURRENT_TIER31_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x013D) +#define ZCL_CURRENT_TIER32_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x013E) +#define ZCL_CURRENT_TIER32_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x013F) +#define ZCL_CURRENT_TIER33_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0140) +#define ZCL_CURRENT_TIER33_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0141) +#define ZCL_CURRENT_TIER34_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0142) +#define ZCL_CURRENT_TIER34_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0143) +#define ZCL_CURRENT_TIER35_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0144) +#define ZCL_CURRENT_TIER35_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0145) +#define ZCL_CURRENT_TIER36_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0146) +#define ZCL_CURRENT_TIER36_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0147) +#define ZCL_CURRENT_TIER37_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0148) +#define ZCL_CURRENT_TIER37_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0149) +#define ZCL_CURRENT_TIER38_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x014A) +#define ZCL_CURRENT_TIER38_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x014B) +#define ZCL_CURRENT_TIER39_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x014C) +#define ZCL_CURRENT_TIER39_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x014D) +#define ZCL_CURRENT_TIER40_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x014E) +#define ZCL_CURRENT_TIER40_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x014F) +#define ZCL_CURRENT_TIER41_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0150) +#define ZCL_CURRENT_TIER41_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0151) +#define ZCL_CURRENT_TIER42_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0152) +#define ZCL_CURRENT_TIER42_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0153) +#define ZCL_CURRENT_TIER43_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0154) +#define ZCL_CURRENT_TIER43_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0155) +#define ZCL_CURRENT_TIER44_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0156) +#define ZCL_CURRENT_TIER44_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0157) +#define ZCL_CURRENT_TIER45_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0158) +#define ZCL_CURRENT_TIER45_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0159) +#define ZCL_CURRENT_TIER46_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x015A) +#define ZCL_CURRENT_TIER46_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x015B) +#define ZCL_CURRENT_TIER47_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x015C) +#define ZCL_CURRENT_TIER47_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x015D) +#define ZCL_CURRENT_TIER48_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x015E) +#define ZCL_CURRENT_TIER48_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x015F) +#define ZCL_CPP1_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x01FC) +#define ZCL_CPP2_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x01FE) +#define ZCL_STATUS_ATTRIBUTE_ID (0x0200) +#define ZCL_REMAINING_BATTERY_LIFE_ATTRIBUTE_ID (0x0201) +#define ZCL_HOURS_IN_OPERATION_ATTRIBUTE_ID (0x0202) +#define ZCL_HOURS_IN_FAULT_ATTRIBUTE_ID (0x0203) +#define ZCL_EXTENDED_STATUS_ATTRIBUTE_ID (0x0204) +#define ZCL_REMAINING_BATTERY_LIFE_IN_DAYS_ATTRIBUTE_ID (0x0205) +#define ZCL_CURRENT_METER_ID_ATTRIBUTE_ID (0x0206) +#define ZCL_AMBIENT_CONSUMPTION_INDICATOR_ATTRIBUTE_ID (0x0207) +#define ZCL_UNIT_OF_MEASURE_ATTRIBUTE_ID (0x0300) +#define ZCL_MULTIPLIER_ATTRIBUTE_ID (0x0301) +#define ZCL_DIVISOR_ATTRIBUTE_ID (0x0302) +#define ZCL_SUMMATION_FORMATTING_ATTRIBUTE_ID (0x0303) +#define ZCL_DEMAND_FORMATTING_ATTRIBUTE_ID (0x0304) +#define ZCL_HISTORICAL_CONSUMPTION_FORMATTING_ATTRIBUTE_ID (0x0305) +#define ZCL_METERING_DEVICE_TYPE_ATTRIBUTE_ID (0x0306) +#define ZCL_SITE_ID_ATTRIBUTE_ID (0x0307) +#define ZCL_METER_SERIAL_NUMBER_ATTRIBUTE_ID (0x0308) +#define ZCL_ENERGY_CARRIER_UNIT_OF_MEASURE_ATTRIBUTE_ID (0x0309) +#define ZCL_ENERGY_CARRIER_SUMMATION_FORMATTING_ATTRIBUTE_ID (0x030A) +#define ZCL_ENERGY_CARRIER_DEMAND_FORMATTING_ATTRIBUTE_ID (0x030B) +#define ZCL_TEMPERATURE_UNIT_OF_MEASURE_ATTRIBUTE_ID (0x030C) +#define ZCL_TEMPERATURE_FORMATTING_ATTRIBUTE_ID (0x030D) +#define ZCL_MODULE_SERIAL_NUMBER_ATTRIBUTE_ID (0x030E) +#define ZCL_OPERATING_TARIFF_LABEL_DELIVERED_ATTRIBUTE_ID (0x030F) +#define ZCL_OPERATING_TARIFF_LABEL_RECEIVED_ATTRIBUTE_ID (0x0310) +#define ZCL_CUSTOMER_ID_NUMBER_ATTRIBUTE_ID (0x0311) +#define ZCL_ALTERNATIVE_UNIT_OF_MEASURE_ATTRIBUTE_ID (0x0312) +#define ZCL_ALTERNATIVE_DEMAND_FORMATTING_ATTRIBUTE_ID (0x0313) +#define ZCL_ALTERNATIVE_CONSUMPTION_FORMATTING_ATTRIBUTE_ID (0x0314) +#define ZCL_INSTANTANEOUS_DEMAND_ATTRIBUTE_ID (0x0400) +#define ZCL_CURRENT_DAY_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0401) +#define ZCL_CURRENT_DAY_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0402) +#define ZCL_PREVIOUS_DAY_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0403) +#define ZCL_PREVIOUS_DAY_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0404) +#define ZCL_CURRENT_PARTIAL_PROFILE_INTERVAL_START_TIME_DELIVERED_ATTRIBUTE_ID (0x0405) +#define ZCL_CURRENT_PARTIAL_PROFILE_INTERVAL_START_TIME_RECEIVED_ATTRIBUTE_ID (0x0406) +#define ZCL_CURRENT_PARTIAL_PROFILE_INTERVAL_VALUE_DELIVERED_ATTRIBUTE_ID (0x0407) +#define ZCL_CURRENT_PARTIAL_PROFILE_INTERVAL_VALUE_RECEIVED_ATTRIBUTE_ID (0x0408) +#define ZCL_CURRENT_DAY_MAX_PRESSURE_ATTRIBUTE_ID (0x0409) +#define ZCL_CURRENT_DAY_MIN_PRESSURE_ATTRIBUTE_ID (0x040A) +#define ZCL_PREVIOUS_DAY_MAX_PRESSURE_ATTRIBUTE_ID (0x040B) +#define ZCL_PREVIOUS_DAY_MIN_PRESSURE_ATTRIBUTE_ID (0x040C) +#define ZCL_CURRENT_DAY_MAX_DEMAND_ATTRIBUTE_ID (0x040D) +#define ZCL_PREVIOUS_DAY_MAX_DEMAND_ATTRIBUTE_ID (0x040E) +#define ZCL_CURRENT_MONTH_MAX_DEMAND_ATTRIBUTE_ID (0x040F) +#define ZCL_CURRENT_YEAR_MAX_DEMAND_ATTRIBUTE_ID (0x0410) +#define ZCL_CURRENT_DAY_MAX_ENERGY_CARRIER_DEMAND_ATTRIBUTE_ID (0x0411) +#define ZCL_PREVIOUS_DAY_MAX_ENERGY_CARRIER_DEMAND_ATTRIBUTE_ID (0x0412) +#define ZCL_CURRENT_MONTH_MAX_ENERGY_CARRIER_DEMAND_ATTRIBUTE_ID (0x0413) +#define ZCL_CURRENT_MONTH_MIN_ENERGY_CARRIER_DEMAND_ATTRIBUTE_ID (0x0414) +#define ZCL_CURRENT_YEAR_MAX_ENERGY_CARRIER_DEMAND_ATTRIBUTE_ID (0x0415) +#define ZCL_CURRENT_YEAR_MIN_ENERGY_CARRIER_DEMAND_ATTRIBUTE_ID (0x0416) +#define ZCL_PREVIOUS_DAY2_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0420) +#define ZCL_PREVIOUS_DAY2_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0421) +#define ZCL_PREVIOUS_DAY3_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0422) +#define ZCL_PREVIOUS_DAY3_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0423) +#define ZCL_PREVIOUS_DAY4_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0424) +#define ZCL_PREVIOUS_DAY4_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0425) +#define ZCL_PREVIOUS_DAY5_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0426) +#define ZCL_PREVIOUS_DAY5_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0427) +#define ZCL_PREVIOUS_DAY6_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0428) +#define ZCL_PREVIOUS_DAY6_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0429) +#define ZCL_PREVIOUS_DAY7_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x042A) +#define ZCL_PREVIOUS_DAY7_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x042B) +#define ZCL_PREVIOUS_DAY8_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x042C) +#define ZCL_PREVIOUS_DAY8_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x042D) +#define ZCL_CURRENT_WEEK_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0430) +#define ZCL_CURRENT_WEEK_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0431) +#define ZCL_PREVIOUS_WEEK_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0432) +#define ZCL_PREVIOUS_WEEK_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0433) +#define ZCL_PREVIOUS_WEEK2_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0434) +#define ZCL_PREVIOUS_WEEK2_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0435) +#define ZCL_PREVIOUS_WEEK3_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0436) +#define ZCL_PREVIOUS_WEEK3_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0437) +#define ZCL_PREVIOUS_WEEK4_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0438) +#define ZCL_PREVIOUS_WEEK4_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0439) +#define ZCL_PREVIOUS_WEEK5_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x043A) +#define ZCL_PREVIOUS_WEEK5_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x043B) +#define ZCL_CURRENT_MONTH_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0440) +#define ZCL_CURRENT_MONTH_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0441) +#define ZCL_PREVIOUS_MONTH_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0442) +#define ZCL_PREVIOUS_MONTH_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0443) +#define ZCL_PREVIOUS_MONTH2_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0444) +#define ZCL_PREVIOUS_MONTH2_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0445) +#define ZCL_PREVIOUS_MONTH3_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0446) +#define ZCL_PREVIOUS_MONTH3_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0447) +#define ZCL_PREVIOUS_MONTH4_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0448) +#define ZCL_PREVIOUS_MONTH4_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0449) +#define ZCL_PREVIOUS_MONTH5_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x044A) +#define ZCL_PREVIOUS_MONTH5_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x044B) +#define ZCL_PREVIOUS_MONTH6_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x044C) +#define ZCL_PREVIOUS_MONTH6_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x044D) +#define ZCL_PREVIOUS_MONTH7_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x044E) +#define ZCL_PREVIOUS_MONTH7_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x044F) +#define ZCL_PREVIOUS_MONTH8_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0450) +#define ZCL_PREVIOUS_MONTH8_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0451) +#define ZCL_PREVIOUS_MONTH9_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0452) +#define ZCL_PREVIOUS_MONTH9_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0453) +#define ZCL_PREVIOUS_MONTH10_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0454) +#define ZCL_PREVIOUS_MONTH10_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0455) +#define ZCL_PREVIOUS_MONTH11_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0456) +#define ZCL_PREVIOUS_MONTH11_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0457) +#define ZCL_PREVIOUS_MONTH12_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0458) +#define ZCL_PREVIOUS_MONTH12_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0459) +#define ZCL_PREVIOUS_MONTH13_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x045A) +#define ZCL_PREVIOUS_MONTH13_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x045B) +#define ZCL_METERING_HISTORICAL_FREEZE_TIME_ATTRIBUTE_ID (0x045C) +#define ZCL_CURRENT_DAY_MAX_DEMAND_DELIVERED_ATTRIBUTE_ID (0x045D) +#define ZCL_CURRENT_DAY_MAX_DEMAND_DELIVERED_TIME_ATTRIBUTE_ID (0x045E) +#define ZCL_CURRENT_DAY_MAX_DEMAND_RECEIVED_ATTRIBUTE_ID (0x045F) +#define ZCL_CURRENT_DAY_MAX_DEMAND_RECEIVED_TIME_ATTRIBUTE_ID (0x0460) +#define ZCL_PREVIOUS_DAY_MAX_DEMAND_DELIVERED_ATTRIBUTE_ID (0x0461) +#define ZCL_PREVIOUS_DAY_MAX_DEMAND_DELIVERED_TIME_ATTRIBUTE_ID (0x0462) +#define ZCL_PREVIOUS_DAY_MAX_DEMAND_RECEIVED_ATTRIBUTE_ID (0x0463) +#define ZCL_PREVIOUS_DAY_MAX_DEMAND_RECEIVED_TIME_ATTRIBUTE_ID (0x0464) +#define ZCL_MAX_NUMBER_OF_PERIODS_DELIVERED_ATTRIBUTE_ID (0x0500) +#define ZCL_CURRENT_DEMAND_DELIVERED_ATTRIBUTE_ID (0x0600) +#define ZCL_DEMAND_LIMIT_ATTRIBUTE_ID (0x0601) +#define ZCL_DEMAND_INTEGRATION_PERIOD_ATTRIBUTE_ID (0x0602) +#define ZCL_NUMBER_OF_DEMAND_SUBINTERVALS_ATTRIBUTE_ID (0x0603) +#define ZCL_DEMAND_LIMIT_ARM_DURATION_IN_MINUTES_ATTRIBUTE_ID (0x0604) +#define ZCL_LOAD_LIMIT_SUPPLY_STATE_ATTRIBUTE_ID (0x0605) +#define ZCL_LOAD_LIMIT_COUNTER_ATTRIBUTE_ID (0x0606) +#define ZCL_SUPPLY_TAMPER_STATE_ATTRIBUTE_ID (0x0607) +#define ZCL_SUPPLY_DEPLETION_STATE_ATTRIBUTE_ID (0x0608) +#define ZCL_SUPPLY_UNCONTROLLED_FLOW_STATE_ATTRIBUTE_ID (0x0609) +#define ZCL_CURRENT_NO_TIER_BLOCK1_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0700) +#define ZCL_CURRENT_NO_TIER_BLOCK2_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0701) +#define ZCL_CURRENT_NO_TIER_BLOCK3_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0702) +#define ZCL_CURRENT_NO_TIER_BLOCK4_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0703) +#define ZCL_CURRENT_NO_TIER_BLOCK5_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0704) +#define ZCL_CURRENT_NO_TIER_BLOCK6_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0705) +#define ZCL_CURRENT_NO_TIER_BLOCK7_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0706) +#define ZCL_CURRENT_NO_TIER_BLOCK8_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0707) +#define ZCL_CURRENT_NO_TIER_BLOCK9_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0708) +#define ZCL_CURRENT_NO_TIER_BLOCK10_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0709) +#define ZCL_CURRENT_NO_TIER_BLOCK11_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x070A) +#define ZCL_CURRENT_NO_TIER_BLOCK12_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x070B) +#define ZCL_CURRENT_NO_TIER_BLOCK13_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x070C) +#define ZCL_CURRENT_NO_TIER_BLOCK14_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x070D) +#define ZCL_CURRENT_NO_TIER_BLOCK15_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x070E) +#define ZCL_CURRENT_NO_TIER_BLOCK16_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x070F) +#define ZCL_CURRENT_TIER1_BLOCK1_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0710) +#define ZCL_CURRENT_TIER1_BLOCK2_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0711) +#define ZCL_CURRENT_TIER1_BLOCK3_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0712) +#define ZCL_CURRENT_TIER1_BLOCK4_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0713) +#define ZCL_CURRENT_TIER1_BLOCK5_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0714) +#define ZCL_CURRENT_TIER1_BLOCK6_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0715) +#define ZCL_CURRENT_TIER1_BLOCK7_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0716) +#define ZCL_CURRENT_TIER1_BLOCK8_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0717) +#define ZCL_CURRENT_TIER1_BLOCK9_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0718) +#define ZCL_CURRENT_TIER1_BLOCK10_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0719) +#define ZCL_CURRENT_TIER1_BLOCK11_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x071A) +#define ZCL_CURRENT_TIER1_BLOCK12_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x071B) +#define ZCL_CURRENT_TIER1_BLOCK13_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x071C) +#define ZCL_CURRENT_TIER1_BLOCK14_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x071D) +#define ZCL_CURRENT_TIER1_BLOCK15_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x071E) +#define ZCL_CURRENT_TIER1_BLOCK16_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x071F) +#define ZCL_CURRENT_TIER2_BLOCK1_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0720) +#define ZCL_CURRENT_TIER2_BLOCK2_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0721) +#define ZCL_CURRENT_TIER2_BLOCK3_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0722) +#define ZCL_CURRENT_TIER2_BLOCK4_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0723) +#define ZCL_CURRENT_TIER2_BLOCK5_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0724) +#define ZCL_CURRENT_TIER2_BLOCK6_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0725) +#define ZCL_CURRENT_TIER2_BLOCK7_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0726) +#define ZCL_CURRENT_TIER2_BLOCK8_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0727) +#define ZCL_CURRENT_TIER2_BLOCK9_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0728) +#define ZCL_CURRENT_TIER2_BLOCK10_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0729) +#define ZCL_CURRENT_TIER2_BLOCK11_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x072A) +#define ZCL_CURRENT_TIER2_BLOCK12_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x072B) +#define ZCL_CURRENT_TIER2_BLOCK13_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x072C) +#define ZCL_CURRENT_TIER2_BLOCK14_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x072D) +#define ZCL_CURRENT_TIER2_BLOCK15_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x072E) +#define ZCL_CURRENT_TIER2_BLOCK16_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x072F) +#define ZCL_CURRENT_TIER3_BLOCK1_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0730) +#define ZCL_CURRENT_TIER3_BLOCK2_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0731) +#define ZCL_CURRENT_TIER3_BLOCK3_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0732) +#define ZCL_CURRENT_TIER3_BLOCK4_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0733) +#define ZCL_CURRENT_TIER3_BLOCK5_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0734) +#define ZCL_CURRENT_TIER3_BLOCK6_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0735) +#define ZCL_CURRENT_TIER3_BLOCK7_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0736) +#define ZCL_CURRENT_TIER3_BLOCK8_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0737) +#define ZCL_CURRENT_TIER3_BLOCK9_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0738) +#define ZCL_CURRENT_TIER3_BLOCK10_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0739) +#define ZCL_CURRENT_TIER3_BLOCK11_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x073A) +#define ZCL_CURRENT_TIER3_BLOCK12_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x073B) +#define ZCL_CURRENT_TIER3_BLOCK13_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x073C) +#define ZCL_CURRENT_TIER3_BLOCK14_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x073D) +#define ZCL_CURRENT_TIER3_BLOCK15_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x073E) +#define ZCL_CURRENT_TIER3_BLOCK16_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x073F) +#define ZCL_CURRENT_TIER4_BLOCK1_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0740) +#define ZCL_CURRENT_TIER4_BLOCK2_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0741) +#define ZCL_CURRENT_TIER4_BLOCK3_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0742) +#define ZCL_CURRENT_TIER4_BLOCK4_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0743) +#define ZCL_CURRENT_TIER4_BLOCK5_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0744) +#define ZCL_CURRENT_TIER4_BLOCK6_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0745) +#define ZCL_CURRENT_TIER4_BLOCK7_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0746) +#define ZCL_CURRENT_TIER4_BLOCK8_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0747) +#define ZCL_CURRENT_TIER4_BLOCK9_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0748) +#define ZCL_CURRENT_TIER4_BLOCK10_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0749) +#define ZCL_CURRENT_TIER4_BLOCK11_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x074A) +#define ZCL_CURRENT_TIER4_BLOCK12_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x074B) +#define ZCL_CURRENT_TIER4_BLOCK13_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x074C) +#define ZCL_CURRENT_TIER4_BLOCK14_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x074D) +#define ZCL_CURRENT_TIER4_BLOCK15_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x074E) +#define ZCL_CURRENT_TIER4_BLOCK16_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x074F) +#define ZCL_CURRENT_TIER5_BLOCK1_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0750) +#define ZCL_CURRENT_TIER5_BLOCK2_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0751) +#define ZCL_CURRENT_TIER5_BLOCK3_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0752) +#define ZCL_CURRENT_TIER5_BLOCK4_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0753) +#define ZCL_CURRENT_TIER5_BLOCK5_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0754) +#define ZCL_CURRENT_TIER5_BLOCK6_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0755) +#define ZCL_CURRENT_TIER5_BLOCK7_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0756) +#define ZCL_CURRENT_TIER5_BLOCK8_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0757) +#define ZCL_CURRENT_TIER5_BLOCK9_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0758) +#define ZCL_CURRENT_TIER5_BLOCK10_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0759) +#define ZCL_CURRENT_TIER5_BLOCK11_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x075A) +#define ZCL_CURRENT_TIER5_BLOCK12_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x075B) +#define ZCL_CURRENT_TIER5_BLOCK13_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x075C) +#define ZCL_CURRENT_TIER5_BLOCK14_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x075D) +#define ZCL_CURRENT_TIER5_BLOCK15_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x075E) +#define ZCL_CURRENT_TIER5_BLOCK16_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x075F) +#define ZCL_CURRENT_TIER6_BLOCK1_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0760) +#define ZCL_CURRENT_TIER6_BLOCK2_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0761) +#define ZCL_CURRENT_TIER6_BLOCK3_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0762) +#define ZCL_CURRENT_TIER6_BLOCK4_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0763) +#define ZCL_CURRENT_TIER6_BLOCK5_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0764) +#define ZCL_CURRENT_TIER6_BLOCK6_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0765) +#define ZCL_CURRENT_TIER6_BLOCK7_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0766) +#define ZCL_CURRENT_TIER6_BLOCK8_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0767) +#define ZCL_CURRENT_TIER6_BLOCK9_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0768) +#define ZCL_CURRENT_TIER6_BLOCK10_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0769) +#define ZCL_CURRENT_TIER6_BLOCK11_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x076A) +#define ZCL_CURRENT_TIER6_BLOCK12_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x076B) +#define ZCL_CURRENT_TIER6_BLOCK13_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x076C) +#define ZCL_CURRENT_TIER6_BLOCK14_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x076D) +#define ZCL_CURRENT_TIER6_BLOCK15_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x076E) +#define ZCL_CURRENT_TIER6_BLOCK16_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x076F) +#define ZCL_CURRENT_TIER7_BLOCK1_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0770) +#define ZCL_CURRENT_TIER7_BLOCK2_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0771) +#define ZCL_CURRENT_TIER7_BLOCK3_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0772) +#define ZCL_CURRENT_TIER7_BLOCK4_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0773) +#define ZCL_CURRENT_TIER7_BLOCK5_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0774) +#define ZCL_CURRENT_TIER7_BLOCK6_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0775) +#define ZCL_CURRENT_TIER7_BLOCK7_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0776) +#define ZCL_CURRENT_TIER7_BLOCK8_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0777) +#define ZCL_CURRENT_TIER7_BLOCK9_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0778) +#define ZCL_CURRENT_TIER7_BLOCK10_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0779) +#define ZCL_CURRENT_TIER7_BLOCK11_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x077A) +#define ZCL_CURRENT_TIER7_BLOCK12_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x077B) +#define ZCL_CURRENT_TIER7_BLOCK13_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x077C) +#define ZCL_CURRENT_TIER7_BLOCK14_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x077D) +#define ZCL_CURRENT_TIER7_BLOCK15_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x077E) +#define ZCL_CURRENT_TIER7_BLOCK16_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x077F) +#define ZCL_CURRENT_TIER8_BLOCK1_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0780) +#define ZCL_CURRENT_TIER8_BLOCK2_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0781) +#define ZCL_CURRENT_TIER8_BLOCK3_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0782) +#define ZCL_CURRENT_TIER8_BLOCK4_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0783) +#define ZCL_CURRENT_TIER8_BLOCK5_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0784) +#define ZCL_CURRENT_TIER8_BLOCK6_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0785) +#define ZCL_CURRENT_TIER8_BLOCK7_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0786) +#define ZCL_CURRENT_TIER8_BLOCK8_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0787) +#define ZCL_CURRENT_TIER8_BLOCK9_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0788) +#define ZCL_CURRENT_TIER8_BLOCK10_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0789) +#define ZCL_CURRENT_TIER8_BLOCK11_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x078A) +#define ZCL_CURRENT_TIER8_BLOCK12_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x078B) +#define ZCL_CURRENT_TIER8_BLOCK13_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x078C) +#define ZCL_CURRENT_TIER8_BLOCK14_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x078D) +#define ZCL_CURRENT_TIER8_BLOCK15_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x078E) +#define ZCL_CURRENT_TIER8_BLOCK16_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x078F) +#define ZCL_CURRENT_TIER9_BLOCK1_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0790) +#define ZCL_CURRENT_TIER9_BLOCK2_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0791) +#define ZCL_CURRENT_TIER9_BLOCK3_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0792) +#define ZCL_CURRENT_TIER9_BLOCK4_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0793) +#define ZCL_CURRENT_TIER9_BLOCK5_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0794) +#define ZCL_CURRENT_TIER9_BLOCK6_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0795) +#define ZCL_CURRENT_TIER9_BLOCK7_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0796) +#define ZCL_CURRENT_TIER9_BLOCK8_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0797) +#define ZCL_CURRENT_TIER9_BLOCK9_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0798) +#define ZCL_CURRENT_TIER9_BLOCK10_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0799) +#define ZCL_CURRENT_TIER9_BLOCK11_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x079A) +#define ZCL_CURRENT_TIER9_BLOCK12_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x079B) +#define ZCL_CURRENT_TIER9_BLOCK13_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x079C) +#define ZCL_CURRENT_TIER9_BLOCK14_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x079D) +#define ZCL_CURRENT_TIER9_BLOCK15_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x079E) +#define ZCL_CURRENT_TIER9_BLOCK16_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x079F) +#define ZCL_CURRENT_TIER10_BLOCK1_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07A0) +#define ZCL_CURRENT_TIER10_BLOCK2_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07A1) +#define ZCL_CURRENT_TIER10_BLOCK3_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07A2) +#define ZCL_CURRENT_TIER10_BLOCK4_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07A3) +#define ZCL_CURRENT_TIER10_BLOCK5_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07A4) +#define ZCL_CURRENT_TIER10_BLOCK6_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07A5) +#define ZCL_CURRENT_TIER10_BLOCK7_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07A6) +#define ZCL_CURRENT_TIER10_BLOCK8_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07A7) +#define ZCL_CURRENT_TIER10_BLOCK9_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07A8) +#define ZCL_CURRENT_TIER10_BLOCK10_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07A9) +#define ZCL_CURRENT_TIER10_BLOCK11_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07AA) +#define ZCL_CURRENT_TIER10_BLOCK12_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07AB) +#define ZCL_CURRENT_TIER10_BLOCK13_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07AC) +#define ZCL_CURRENT_TIER10_BLOCK14_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07AD) +#define ZCL_CURRENT_TIER10_BLOCK15_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07AE) +#define ZCL_CURRENT_TIER10_BLOCK16_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07AF) +#define ZCL_CURRENT_TIER11_BLOCK1_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07B0) +#define ZCL_CURRENT_TIER11_BLOCK2_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07B1) +#define ZCL_CURRENT_TIER11_BLOCK3_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07B2) +#define ZCL_CURRENT_TIER11_BLOCK4_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07B3) +#define ZCL_CURRENT_TIER11_BLOCK5_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07B4) +#define ZCL_CURRENT_TIER11_BLOCK6_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07B5) +#define ZCL_CURRENT_TIER11_BLOCK7_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07B6) +#define ZCL_CURRENT_TIER11_BLOCK8_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07B7) +#define ZCL_CURRENT_TIER11_BLOCK9_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07B8) +#define ZCL_CURRENT_TIER11_BLOCK10_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07B9) +#define ZCL_CURRENT_TIER11_BLOCK11_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07BA) +#define ZCL_CURRENT_TIER11_BLOCK12_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07BB) +#define ZCL_CURRENT_TIER11_BLOCK13_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07BC) +#define ZCL_CURRENT_TIER11_BLOCK14_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07BD) +#define ZCL_CURRENT_TIER11_BLOCK15_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07BE) +#define ZCL_CURRENT_TIER11_BLOCK16_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07BF) +#define ZCL_CURRENT_TIER12_BLOCK1_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07C0) +#define ZCL_CURRENT_TIER12_BLOCK2_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07C1) +#define ZCL_CURRENT_TIER12_BLOCK3_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07C2) +#define ZCL_CURRENT_TIER12_BLOCK4_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07C3) +#define ZCL_CURRENT_TIER12_BLOCK5_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07C4) +#define ZCL_CURRENT_TIER12_BLOCK6_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07C5) +#define ZCL_CURRENT_TIER12_BLOCK7_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07C6) +#define ZCL_CURRENT_TIER12_BLOCK8_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07C7) +#define ZCL_CURRENT_TIER12_BLOCK9_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07C8) +#define ZCL_CURRENT_TIER12_BLOCK10_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07C9) +#define ZCL_CURRENT_TIER12_BLOCK11_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07CA) +#define ZCL_CURRENT_TIER12_BLOCK12_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07CB) +#define ZCL_CURRENT_TIER12_BLOCK13_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07CC) +#define ZCL_CURRENT_TIER12_BLOCK14_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07CD) +#define ZCL_CURRENT_TIER12_BLOCK15_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07CE) +#define ZCL_CURRENT_TIER12_BLOCK16_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07CF) +#define ZCL_CURRENT_TIER13_BLOCK1_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07D0) +#define ZCL_CURRENT_TIER13_BLOCK2_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07D1) +#define ZCL_CURRENT_TIER13_BLOCK3_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07D2) +#define ZCL_CURRENT_TIER13_BLOCK4_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07D3) +#define ZCL_CURRENT_TIER13_BLOCK5_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07D4) +#define ZCL_CURRENT_TIER13_BLOCK6_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07D5) +#define ZCL_CURRENT_TIER13_BLOCK7_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07D6) +#define ZCL_CURRENT_TIER13_BLOCK8_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07D7) +#define ZCL_CURRENT_TIER13_BLOCK9_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07D8) +#define ZCL_CURRENT_TIER13_BLOCK10_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07D9) +#define ZCL_CURRENT_TIER13_BLOCK11_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07DA) +#define ZCL_CURRENT_TIER13_BLOCK12_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07DB) +#define ZCL_CURRENT_TIER13_BLOCK13_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07DC) +#define ZCL_CURRENT_TIER13_BLOCK14_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07DD) +#define ZCL_CURRENT_TIER13_BLOCK15_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07DE) +#define ZCL_CURRENT_TIER13_BLOCK16_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07DF) +#define ZCL_CURRENT_TIER14_BLOCK1_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07E0) +#define ZCL_CURRENT_TIER14_BLOCK2_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07E1) +#define ZCL_CURRENT_TIER14_BLOCK3_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07E2) +#define ZCL_CURRENT_TIER14_BLOCK4_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07E3) +#define ZCL_CURRENT_TIER14_BLOCK5_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07E4) +#define ZCL_CURRENT_TIER14_BLOCK6_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07E5) +#define ZCL_CURRENT_TIER14_BLOCK7_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07E6) +#define ZCL_CURRENT_TIER14_BLOCK8_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07E7) +#define ZCL_CURRENT_TIER14_BLOCK9_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07E8) +#define ZCL_CURRENT_TIER14_BLOCK10_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07E9) +#define ZCL_CURRENT_TIER14_BLOCK11_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07EA) +#define ZCL_CURRENT_TIER14_BLOCK12_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07EB) +#define ZCL_CURRENT_TIER14_BLOCK13_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07EC) +#define ZCL_CURRENT_TIER14_BLOCK14_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07ED) +#define ZCL_CURRENT_TIER14_BLOCK15_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07EE) +#define ZCL_CURRENT_TIER14_BLOCK16_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07EF) +#define ZCL_CURRENT_TIER15_BLOCK1_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07F0) +#define ZCL_CURRENT_TIER15_BLOCK2_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07F1) +#define ZCL_CURRENT_TIER15_BLOCK3_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07F2) +#define ZCL_CURRENT_TIER15_BLOCK4_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07F3) +#define ZCL_CURRENT_TIER15_BLOCK5_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07F4) +#define ZCL_CURRENT_TIER15_BLOCK6_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07F5) +#define ZCL_CURRENT_TIER15_BLOCK7_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07F6) +#define ZCL_CURRENT_TIER15_BLOCK8_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07F7) +#define ZCL_CURRENT_TIER15_BLOCK9_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07F8) +#define ZCL_CURRENT_TIER15_BLOCK10_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07F9) +#define ZCL_CURRENT_TIER15_BLOCK11_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07FA) +#define ZCL_CURRENT_TIER15_BLOCK12_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07FB) +#define ZCL_CURRENT_TIER15_BLOCK13_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07FC) +#define ZCL_CURRENT_TIER15_BLOCK14_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07FD) +#define ZCL_CURRENT_TIER15_BLOCK15_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07FE) +#define ZCL_CURRENT_TIER15_BLOCK16_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07FF) +#define ZCL_GENERIC_ALARM_MASK_ATTRIBUTE_ID (0x0800) +#define ZCL_ELECTRICITY_ALARM_MASK_ATTRIBUTE_ID (0x0801) +#define ZCL_GENERIC_FLOW_PRESSURE_ALARM_MASK_ATTRIBUTE_ID (0x0802) +#define ZCL_WATER_SPECIFIC_ALARM_MASK_ATTRIBUTE_ID (0x0803) +#define ZCL_HEAT_AND_COOLING_SPECIFIC_ALARM_MASK_ATTRIBUTE_ID (0x0804) +#define ZCL_GAS_SPECIFIC_ALARM_MASK_ATTRIBUTE_ID (0x0805) +#define ZCL_METERING_EXTENDED_GENERIC_ALARM_MASK_ATTRIBUTE_ID (0x0806) +#define ZCL_METERING_MANUFACTURE_ALARM_MASK_ATTRIBUTE_ID (0x0807) +#define ZCL_CURRENT_NO_TIER_BLOCK1_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0900) +#define ZCL_CURRENT_NO_TIER_BLOCK2_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0901) +#define ZCL_CURRENT_NO_TIER_BLOCK3_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0902) +#define ZCL_CURRENT_NO_TIER_BLOCK4_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0903) +#define ZCL_CURRENT_NO_TIER_BLOCK5_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0904) +#define ZCL_CURRENT_NO_TIER_BLOCK6_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0905) +#define ZCL_CURRENT_NO_TIER_BLOCK7_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0906) +#define ZCL_CURRENT_NO_TIER_BLOCK8_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0907) +#define ZCL_CURRENT_NO_TIER_BLOCK9_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0908) +#define ZCL_CURRENT_NO_TIER_BLOCK10_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0909) +#define ZCL_CURRENT_NO_TIER_BLOCK11_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x090A) +#define ZCL_CURRENT_NO_TIER_BLOCK12_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x090B) +#define ZCL_CURRENT_NO_TIER_BLOCK13_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x090C) +#define ZCL_CURRENT_NO_TIER_BLOCK14_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x090D) +#define ZCL_CURRENT_NO_TIER_BLOCK15_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x090E) +#define ZCL_CURRENT_NO_TIER_BLOCK16_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x090F) +#define ZCL_CURRENT_TIER1_BLOCK1_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0910) +#define ZCL_CURRENT_TIER1_BLOCK2_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0911) +#define ZCL_CURRENT_TIER1_BLOCK3_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0912) +#define ZCL_CURRENT_TIER1_BLOCK4_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0913) +#define ZCL_CURRENT_TIER1_BLOCK5_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0914) +#define ZCL_CURRENT_TIER1_BLOCK6_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0915) +#define ZCL_CURRENT_TIER1_BLOCK7_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0916) +#define ZCL_CURRENT_TIER1_BLOCK8_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0917) +#define ZCL_CURRENT_TIER1_BLOCK9_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0918) +#define ZCL_CURRENT_TIER1_BLOCK10_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0919) +#define ZCL_CURRENT_TIER1_BLOCK11_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x091A) +#define ZCL_CURRENT_TIER1_BLOCK12_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x091B) +#define ZCL_CURRENT_TIER1_BLOCK13_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x091C) +#define ZCL_CURRENT_TIER1_BLOCK14_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x091D) +#define ZCL_CURRENT_TIER1_BLOCK15_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x091E) +#define ZCL_CURRENT_TIER1_BLOCK16_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x091F) +#define ZCL_CURRENT_TIER2_BLOCK1_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0920) +#define ZCL_CURRENT_TIER2_BLOCK2_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0921) +#define ZCL_CURRENT_TIER2_BLOCK3_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0922) +#define ZCL_CURRENT_TIER2_BLOCK4_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0923) +#define ZCL_CURRENT_TIER2_BLOCK5_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0924) +#define ZCL_CURRENT_TIER2_BLOCK6_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0925) +#define ZCL_CURRENT_TIER2_BLOCK7_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0926) +#define ZCL_CURRENT_TIER2_BLOCK8_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0927) +#define ZCL_CURRENT_TIER2_BLOCK9_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0928) +#define ZCL_CURRENT_TIER2_BLOCK10_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0929) +#define ZCL_CURRENT_TIER2_BLOCK11_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x092A) +#define ZCL_CURRENT_TIER2_BLOCK12_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x092B) +#define ZCL_CURRENT_TIER2_BLOCK13_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x092C) +#define ZCL_CURRENT_TIER2_BLOCK14_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x092D) +#define ZCL_CURRENT_TIER2_BLOCK15_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x092E) +#define ZCL_CURRENT_TIER2_BLOCK16_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x092F) +#define ZCL_CURRENT_TIER3_BLOCK1_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0930) +#define ZCL_CURRENT_TIER3_BLOCK2_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0931) +#define ZCL_CURRENT_TIER3_BLOCK3_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0932) +#define ZCL_CURRENT_TIER3_BLOCK4_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0933) +#define ZCL_CURRENT_TIER3_BLOCK5_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0934) +#define ZCL_CURRENT_TIER3_BLOCK6_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0935) +#define ZCL_CURRENT_TIER3_BLOCK7_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0936) +#define ZCL_CURRENT_TIER3_BLOCK8_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0937) +#define ZCL_CURRENT_TIER3_BLOCK9_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0938) +#define ZCL_CURRENT_TIER3_BLOCK10_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0939) +#define ZCL_CURRENT_TIER3_BLOCK11_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x093A) +#define ZCL_CURRENT_TIER3_BLOCK12_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x093B) +#define ZCL_CURRENT_TIER3_BLOCK13_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x093C) +#define ZCL_CURRENT_TIER3_BLOCK14_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x093D) +#define ZCL_CURRENT_TIER3_BLOCK15_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x093E) +#define ZCL_CURRENT_TIER3_BLOCK16_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x093F) +#define ZCL_CURRENT_TIER4_BLOCK1_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0940) +#define ZCL_CURRENT_TIER4_BLOCK2_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0941) +#define ZCL_CURRENT_TIER4_BLOCK3_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0942) +#define ZCL_CURRENT_TIER4_BLOCK4_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0943) +#define ZCL_CURRENT_TIER4_BLOCK5_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0944) +#define ZCL_CURRENT_TIER4_BLOCK6_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0945) +#define ZCL_CURRENT_TIER4_BLOCK7_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0946) +#define ZCL_CURRENT_TIER4_BLOCK8_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0947) +#define ZCL_CURRENT_TIER4_BLOCK9_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0948) +#define ZCL_CURRENT_TIER4_BLOCK10_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0949) +#define ZCL_CURRENT_TIER4_BLOCK11_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x094A) +#define ZCL_CURRENT_TIER4_BLOCK12_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x094B) +#define ZCL_CURRENT_TIER4_BLOCK13_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x094C) +#define ZCL_CURRENT_TIER4_BLOCK14_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x094D) +#define ZCL_CURRENT_TIER4_BLOCK15_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x094E) +#define ZCL_CURRENT_TIER4_BLOCK16_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x094F) +#define ZCL_CURRENT_TIER5_BLOCK1_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0950) +#define ZCL_CURRENT_TIER5_BLOCK2_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0951) +#define ZCL_CURRENT_TIER5_BLOCK3_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0952) +#define ZCL_CURRENT_TIER5_BLOCK4_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0953) +#define ZCL_CURRENT_TIER5_BLOCK5_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0954) +#define ZCL_CURRENT_TIER5_BLOCK6_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0955) +#define ZCL_CURRENT_TIER5_BLOCK7_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0956) +#define ZCL_CURRENT_TIER5_BLOCK8_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0957) +#define ZCL_CURRENT_TIER5_BLOCK9_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0958) +#define ZCL_CURRENT_TIER5_BLOCK10_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0959) +#define ZCL_CURRENT_TIER5_BLOCK11_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x095A) +#define ZCL_CURRENT_TIER5_BLOCK12_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x095B) +#define ZCL_CURRENT_TIER5_BLOCK13_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x095C) +#define ZCL_CURRENT_TIER5_BLOCK14_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x095D) +#define ZCL_CURRENT_TIER5_BLOCK15_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x095E) +#define ZCL_CURRENT_TIER5_BLOCK16_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x095F) +#define ZCL_CURRENT_TIER6_BLOCK1_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0960) +#define ZCL_CURRENT_TIER6_BLOCK2_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0961) +#define ZCL_CURRENT_TIER6_BLOCK3_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0962) +#define ZCL_CURRENT_TIER6_BLOCK4_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0963) +#define ZCL_CURRENT_TIER6_BLOCK5_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0964) +#define ZCL_CURRENT_TIER6_BLOCK6_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0965) +#define ZCL_CURRENT_TIER6_BLOCK7_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0966) +#define ZCL_CURRENT_TIER6_BLOCK8_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0967) +#define ZCL_CURRENT_TIER6_BLOCK9_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0968) +#define ZCL_CURRENT_TIER6_BLOCK10_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0969) +#define ZCL_CURRENT_TIER6_BLOCK11_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x096A) +#define ZCL_CURRENT_TIER6_BLOCK12_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x096B) +#define ZCL_CURRENT_TIER6_BLOCK13_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x096C) +#define ZCL_CURRENT_TIER6_BLOCK14_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x096D) +#define ZCL_CURRENT_TIER6_BLOCK15_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x096E) +#define ZCL_CURRENT_TIER6_BLOCK16_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x096F) +#define ZCL_CURRENT_TIER7_BLOCK1_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0970) +#define ZCL_CURRENT_TIER7_BLOCK2_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0971) +#define ZCL_CURRENT_TIER7_BLOCK3_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0972) +#define ZCL_CURRENT_TIER7_BLOCK4_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0973) +#define ZCL_CURRENT_TIER7_BLOCK5_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0974) +#define ZCL_CURRENT_TIER7_BLOCK6_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0975) +#define ZCL_CURRENT_TIER7_BLOCK7_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0976) +#define ZCL_CURRENT_TIER7_BLOCK8_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0977) +#define ZCL_CURRENT_TIER7_BLOCK9_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0978) +#define ZCL_CURRENT_TIER7_BLOCK10_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0979) +#define ZCL_CURRENT_TIER7_BLOCK11_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x097A) +#define ZCL_CURRENT_TIER7_BLOCK12_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x097B) +#define ZCL_CURRENT_TIER7_BLOCK13_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x097C) +#define ZCL_CURRENT_TIER7_BLOCK14_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x097D) +#define ZCL_CURRENT_TIER7_BLOCK15_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x097E) +#define ZCL_CURRENT_TIER7_BLOCK16_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x097F) +#define ZCL_CURRENT_TIER8_BLOCK1_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0980) +#define ZCL_CURRENT_TIER8_BLOCK2_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0981) +#define ZCL_CURRENT_TIER8_BLOCK3_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0982) +#define ZCL_CURRENT_TIER8_BLOCK4_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0983) +#define ZCL_CURRENT_TIER8_BLOCK5_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0984) +#define ZCL_CURRENT_TIER8_BLOCK6_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0985) +#define ZCL_CURRENT_TIER8_BLOCK7_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0986) +#define ZCL_CURRENT_TIER8_BLOCK8_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0987) +#define ZCL_CURRENT_TIER8_BLOCK9_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0988) +#define ZCL_CURRENT_TIER8_BLOCK10_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0989) +#define ZCL_CURRENT_TIER8_BLOCK11_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x098A) +#define ZCL_CURRENT_TIER8_BLOCK12_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x098B) +#define ZCL_CURRENT_TIER8_BLOCK13_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x098C) +#define ZCL_CURRENT_TIER8_BLOCK14_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x098D) +#define ZCL_CURRENT_TIER8_BLOCK15_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x098E) +#define ZCL_CURRENT_TIER8_BLOCK16_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x098F) +#define ZCL_CURRENT_TIER9_BLOCK1_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0990) +#define ZCL_CURRENT_TIER9_BLOCK2_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0991) +#define ZCL_CURRENT_TIER9_BLOCK3_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0992) +#define ZCL_CURRENT_TIER9_BLOCK4_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0993) +#define ZCL_CURRENT_TIER9_BLOCK5_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0994) +#define ZCL_CURRENT_TIER9_BLOCK6_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0995) +#define ZCL_CURRENT_TIER9_BLOCK7_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0996) +#define ZCL_CURRENT_TIER9_BLOCK8_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0997) +#define ZCL_CURRENT_TIER9_BLOCK9_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0998) +#define ZCL_CURRENT_TIER9_BLOCK10_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0999) +#define ZCL_CURRENT_TIER9_BLOCK11_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x099A) +#define ZCL_CURRENT_TIER9_BLOCK12_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x099B) +#define ZCL_CURRENT_TIER9_BLOCK13_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x099C) +#define ZCL_CURRENT_TIER9_BLOCK14_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x099D) +#define ZCL_CURRENT_TIER9_BLOCK15_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x099E) +#define ZCL_CURRENT_TIER9_BLOCK16_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x099F) +#define ZCL_CURRENT_TIER10_BLOCK1_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09A0) +#define ZCL_CURRENT_TIER10_BLOCK2_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09A1) +#define ZCL_CURRENT_TIER10_BLOCK3_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09A2) +#define ZCL_CURRENT_TIER10_BLOCK4_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09A3) +#define ZCL_CURRENT_TIER10_BLOCK5_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09A4) +#define ZCL_CURRENT_TIER10_BLOCK6_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09A5) +#define ZCL_CURRENT_TIER10_BLOCK7_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09A6) +#define ZCL_CURRENT_TIER10_BLOCK8_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09A7) +#define ZCL_CURRENT_TIER10_BLOCK9_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09A8) +#define ZCL_CURRENT_TIER10_BLOCK10_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09A9) +#define ZCL_CURRENT_TIER10_BLOCK11_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09AA) +#define ZCL_CURRENT_TIER10_BLOCK12_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09AB) +#define ZCL_CURRENT_TIER10_BLOCK13_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09AC) +#define ZCL_CURRENT_TIER10_BLOCK14_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09AD) +#define ZCL_CURRENT_TIER10_BLOCK15_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09AE) +#define ZCL_CURRENT_TIER10_BLOCK16_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09AF) +#define ZCL_CURRENT_TIER11_BLOCK1_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09B0) +#define ZCL_CURRENT_TIER11_BLOCK2_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09B1) +#define ZCL_CURRENT_TIER11_BLOCK3_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09B2) +#define ZCL_CURRENT_TIER11_BLOCK4_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09B3) +#define ZCL_CURRENT_TIER11_BLOCK5_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09B4) +#define ZCL_CURRENT_TIER11_BLOCK6_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09B5) +#define ZCL_CURRENT_TIER11_BLOCK7_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09B6) +#define ZCL_CURRENT_TIER11_BLOCK8_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09B7) +#define ZCL_CURRENT_TIER11_BLOCK9_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09B8) +#define ZCL_CURRENT_TIER11_BLOCK10_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09B9) +#define ZCL_CURRENT_TIER11_BLOCK11_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09BA) +#define ZCL_CURRENT_TIER11_BLOCK12_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09BB) +#define ZCL_CURRENT_TIER11_BLOCK13_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09BC) +#define ZCL_CURRENT_TIER11_BLOCK14_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09BD) +#define ZCL_CURRENT_TIER11_BLOCK15_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09BE) +#define ZCL_CURRENT_TIER11_BLOCK16_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09BF) +#define ZCL_CURRENT_TIER12_BLOCK1_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09C0) +#define ZCL_CURRENT_TIER12_BLOCK2_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09C1) +#define ZCL_CURRENT_TIER12_BLOCK3_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09C2) +#define ZCL_CURRENT_TIER12_BLOCK4_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09C3) +#define ZCL_CURRENT_TIER12_BLOCK5_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09C4) +#define ZCL_CURRENT_TIER12_BLOCK6_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09C5) +#define ZCL_CURRENT_TIER12_BLOCK7_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09C6) +#define ZCL_CURRENT_TIER12_BLOCK8_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09C7) +#define ZCL_CURRENT_TIER12_BLOCK9_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09C8) +#define ZCL_CURRENT_TIER12_BLOCK10_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09C9) +#define ZCL_CURRENT_TIER12_BLOCK11_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09CA) +#define ZCL_CURRENT_TIER12_BLOCK12_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09CB) +#define ZCL_CURRENT_TIER12_BLOCK13_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09CC) +#define ZCL_CURRENT_TIER12_BLOCK14_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09CD) +#define ZCL_CURRENT_TIER12_BLOCK15_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09CE) +#define ZCL_CURRENT_TIER12_BLOCK16_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09CF) +#define ZCL_CURRENT_TIER13_BLOCK1_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09D0) +#define ZCL_CURRENT_TIER13_BLOCK2_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09D1) +#define ZCL_CURRENT_TIER13_BLOCK3_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09D2) +#define ZCL_CURRENT_TIER13_BLOCK4_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09D3) +#define ZCL_CURRENT_TIER13_BLOCK5_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09D4) +#define ZCL_CURRENT_TIER13_BLOCK6_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09D5) +#define ZCL_CURRENT_TIER13_BLOCK7_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09D6) +#define ZCL_CURRENT_TIER13_BLOCK8_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09D7) +#define ZCL_CURRENT_TIER13_BLOCK9_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09D8) +#define ZCL_CURRENT_TIER13_BLOCK10_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09D9) +#define ZCL_CURRENT_TIER13_BLOCK11_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09DA) +#define ZCL_CURRENT_TIER13_BLOCK12_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09DB) +#define ZCL_CURRENT_TIER13_BLOCK13_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09DC) +#define ZCL_CURRENT_TIER13_BLOCK14_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09DD) +#define ZCL_CURRENT_TIER13_BLOCK15_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09DE) +#define ZCL_CURRENT_TIER13_BLOCK16_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09DF) +#define ZCL_CURRENT_TIER14_BLOCK1_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09E0) +#define ZCL_CURRENT_TIER14_BLOCK2_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09E1) +#define ZCL_CURRENT_TIER14_BLOCK3_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09E2) +#define ZCL_CURRENT_TIER14_BLOCK4_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09E3) +#define ZCL_CURRENT_TIER14_BLOCK5_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09E4) +#define ZCL_CURRENT_TIER14_BLOCK6_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09E5) +#define ZCL_CURRENT_TIER14_BLOCK7_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09E6) +#define ZCL_CURRENT_TIER14_BLOCK8_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09E7) +#define ZCL_CURRENT_TIER14_BLOCK9_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09E8) +#define ZCL_CURRENT_TIER14_BLOCK10_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09E9) +#define ZCL_CURRENT_TIER14_BLOCK11_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09EA) +#define ZCL_CURRENT_TIER14_BLOCK12_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09EB) +#define ZCL_CURRENT_TIER14_BLOCK13_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09EC) +#define ZCL_CURRENT_TIER14_BLOCK14_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09ED) +#define ZCL_CURRENT_TIER14_BLOCK15_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09EE) +#define ZCL_CURRENT_TIER14_BLOCK16_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09EF) +#define ZCL_CURRENT_TIER15_BLOCK1_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09F0) +#define ZCL_CURRENT_TIER15_BLOCK2_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09F1) +#define ZCL_CURRENT_TIER15_BLOCK3_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09F2) +#define ZCL_CURRENT_TIER15_BLOCK4_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09F3) +#define ZCL_CURRENT_TIER15_BLOCK5_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09F4) +#define ZCL_CURRENT_TIER15_BLOCK6_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09F5) +#define ZCL_CURRENT_TIER15_BLOCK7_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09F6) +#define ZCL_CURRENT_TIER15_BLOCK8_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09F7) +#define ZCL_CURRENT_TIER15_BLOCK9_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09F8) +#define ZCL_CURRENT_TIER15_BLOCK10_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09F9) +#define ZCL_CURRENT_TIER15_BLOCK11_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09FA) +#define ZCL_CURRENT_TIER15_BLOCK12_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09FB) +#define ZCL_CURRENT_TIER15_BLOCK13_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09FC) +#define ZCL_CURRENT_TIER15_BLOCK14_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09FD) +#define ZCL_CURRENT_TIER15_BLOCK15_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09FE) +#define ZCL_CURRENT_TIER15_BLOCK16_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09FF) +#define ZCL_BILL_TO_DATE_DELIVERED_ATTRIBUTE_ID (0x0A00) +#define ZCL_BILL_TO_DATE_TIME_STAMP_DELIVERED_ATTRIBUTE_ID (0x0A01) +#define ZCL_PROJECTED_BILL_DELIVERED_ATTRIBUTE_ID (0x0A02) +#define ZCL_PROJECTED_BILL_TIME_STAMP_DELIVERED_ATTRIBUTE_ID (0x0A03) +#define ZCL_BILL_DELIVERED_TRAILING_DIGIT_ATTRIBUTE_ID (0x0A04) +#define ZCL_BILL_TO_DATE_RECEIVED_ATTRIBUTE_ID (0x0A10) +#define ZCL_BILL_TO_DATE_TIME_STAMP_RECEIVED_ATTRIBUTE_ID (0x0A11) +#define ZCL_PROJECTED_BILL_RECEIVED_ATTRIBUTE_ID (0x0A12) +#define ZCL_PROJECTED_BILL_TIME_STAMP_RECEIVED_ATTRIBUTE_ID (0x0A13) +#define ZCL_BILL_RECEIVED_TRAILING_DIGIT_ATTRIBUTE_ID (0x0A14) +#define ZCL_PROPOSED_CHANGE_SUPPLY_IMPLEMENTATION_TIME_ATTRIBUTE_ID (0x0B00) +#define ZCL_PROPOSED_CHANGE_SUPPLY_STATUS_ATTRIBUTE_ID (0x0B01) +#define ZCL_UNCONTROLLED_FLOW_THESHOLD_ATTRIBUTE_ID (0x0B10) +#define ZCL_UNCONTROLLED_FLOW_THESHOLD_UNIT_OF_MEASURE_ATTRIBUTE_ID (0x0B11) +#define ZCL_UNCONTROLLED_FLOW_MULTIPLIER_ATTRIBUTE_ID (0x0B12) +#define ZCL_UNCONTROLLED_FLOW_DIVISOR_ATTRIBUTE_ID (0x0B13) +#define ZCL_FLOW_STABILIZATION_PERIOD_ATTRIBUTE_ID (0x0B14) +#define ZCL_FLOW_MEASUREMENT_PERIOD_ATTRIBUTE_ID (0x0B15) +#define ZCL_ALTERNATIVE_INSTANTANEOUS_DEMAND_ATTRIBUTE_ID (0x0C00) +#define ZCL_CURRENT_ALTERNATIVE_DAY_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0C01) +#define ZCL_CURRENT_ALTERNATIVE_DAY_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0C02) +#define ZCL_PREVIOUS_DAY_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0C03) +#define ZCL_PREVIOUS_DAY_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0C04) +#define ZCL_CURRENT_ALTERNATIVE_PARTIAL_PROFILE_INTERVAL_START_TIME_DELIVERED_ATTRIBUTE_ID (0x0C05) +#define ZCL_CURRENT_ALTERNATIVE_PARTIAL_PROFILE_INTERVAL_START_TIME_RECEIVED_ATTRIBUTE_ID (0x0C06) +#define ZCL_CURRENT_ALTERNATIVE_PARTIAL_PROFILE_INTERVAL_VALUE_DELIVERED_ATTRIBUTE_ID (0x0C07) +#define ZCL_CURRENT_ALTERNATIVE_PARTIAL_PROFILE_INTERVAL_VALUE_RECEIVED_ATTRIBUTE_ID (0x0C08) +#define ZCL_CURRENT_ALTERNATIVE_DAY_MAX_PRESSURE_ATTRIBUTE_ID (0x0C09) +#define ZCL_CURRENT_ALTERNATIVE_DAY_MIN_PRESSURE_ATTRIBUTE_ID (0x0C0A) +#define ZCL_PREVIOUS_DAY_ALTERNATIVE_MAX_PRESSURE_ATTRIBUTE_ID (0x0C0B) +#define ZCL_PREVIOUS_DAY_ALTERNATIVE_MIN_PRESSURE_ATTRIBUTE_ID (0x0C0C) +#define ZCL_CURRENT_ALTERNATIVE_DAY_ALTERNATIVE_MAX_DEMAND_ATTRIBUTE_ID (0x0C0D) +#define ZCL_PREVIOUS_DAY_ALTERNATIVE_MAX_DEMAND_ATTRIBUTE_ID (0x0C0E) +#define ZCL_CURRENT_ALTERNATIVE_MONTH_MAX_DEMAND_ATTRIBUTE_ID (0x0C0F) +#define ZCL_CURRENT_ALTERNATIVE_YEAR_MAX_DEMAND_ATTRIBUTE_ID (0x0C10) +#define ZCL_PREVIOUS_DAY2_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0C20) +#define ZCL_PREVIOUS_DAY2_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0C21) +#define ZCL_PREVIOUS_DAY3_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0C22) +#define ZCL_PREVIOUS_DAY3_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0C23) +#define ZCL_PREVIOUS_DAY4_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0C24) +#define ZCL_PREVIOUS_DAY4_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0C25) +#define ZCL_PREVIOUS_DAY5_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0C26) +#define ZCL_PREVIOUS_DAY5_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0C27) +#define ZCL_PREVIOUS_DAY6_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0C28) +#define ZCL_PREVIOUS_DAY6_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0C29) +#define ZCL_PREVIOUS_DAY7_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0C2A) +#define ZCL_PREVIOUS_DAY7_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0C2B) +#define ZCL_PREVIOUS_DAY8_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0C2C) +#define ZCL_PREVIOUS_DAY8_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0C2D) +#define ZCL_CURRENT_WEEK_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0C30) +#define ZCL_CURRENT_WEEK_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0C31) +#define ZCL_PREVIOUS_WEEK_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0C32) +#define ZCL_PREVIOUS_WEEK_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0C33) +#define ZCL_PREVIOUS_WEEK2_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0C34) +#define ZCL_PREVIOUS_WEEK2_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0C35) +#define ZCL_PREVIOUS_WEEK3_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0C36) +#define ZCL_PREVIOUS_WEEK3_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0C37) +#define ZCL_PREVIOUS_WEEK4_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0C38) +#define ZCL_PREVIOUS_WEEK4_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0C39) +#define ZCL_PREVIOUS_WEEK5_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0C3A) +#define ZCL_PREVIOUS_WEEK5_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0C3B) +#define ZCL_CURRENT_MONTH_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0C40) +#define ZCL_CURRENT_MONTH_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0C41) +#define ZCL_PREVIOUS_MONTH_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0C42) +#define ZCL_PREVIOUS_MONTH_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0C43) +#define ZCL_PREVIOUS_MONTH2_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0C44) +#define ZCL_PREVIOUS_MONTH2_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0C45) +#define ZCL_PREVIOUS_MONTH3_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0C46) +#define ZCL_PREVIOUS_MONTH3_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0C47) +#define ZCL_PREVIOUS_MONTH4_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0C48) +#define ZCL_PREVIOUS_MONTH4_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0C49) +#define ZCL_PREVIOUS_MONTH5_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0C4A) +#define ZCL_PREVIOUS_MONTH5_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0C4B) +#define ZCL_PREVIOUS_MONTH6_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0C4C) +#define ZCL_PREVIOUS_MONTH6_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0C4D) +#define ZCL_PREVIOUS_MONTH7_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0C4E) +#define ZCL_PREVIOUS_MONTH7_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0C4F) +#define ZCL_PREVIOUS_MONTH8_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0C50) +#define ZCL_PREVIOUS_MONTH8_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0C51) +#define ZCL_PREVIOUS_MONTH9_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0C52) +#define ZCL_PREVIOUS_MONTH9_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0C53) +#define ZCL_PREVIOUS_MONTH10_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0C54) +#define ZCL_PREVIOUS_MONTH10_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0C55) +#define ZCL_PREVIOUS_MONTH11_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0C56) +#define ZCL_PREVIOUS_MONTH11_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0C57) +#define ZCL_PREVIOUS_MONTH12_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0C58) +#define ZCL_PREVIOUS_MONTH12_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0C59) +#define ZCL_PREVIOUS_MONTH13_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0C5A) +#define ZCL_PREVIOUS_MONTH13_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0C5B) +#define ZCL_CURRENT_DAY_ALTERNATIVE_MAX_DEMAND_DELIVERED_ATTRIBUTE_ID (0x0C5C) +#define ZCL_CURRENT_DAY_ALTERNATIVE_MAX_DEMAND_DELIVERED_TIME_ATTRIBUTE_ID (0x0C5D) +#define ZCL_CURRENT_DAY_ALTERNATIVE_MAX_DEMAND_RECEIVED_ATTRIBUTE_ID (0x0C5E) +#define ZCL_CURRENT_DAY_ALTERNATIVE_MAX_DEMAND_RECEIVED_TIME_ATTRIBUTE_ID (0x0C5F) +#define ZCL_PREVIOUS_DAY_ALTERNATIVE_MAX_DEMAND_DELIVERED_ATTRIBUTE_ID (0x0C60) +#define ZCL_PREVIOUS_DAY_ALTERNATIVE_MAX_DEMAND_DELIVERED_TIME_ATTRIBUTE_ID (0x0C61) +#define ZCL_PREVIOUS_DAY_ALTERNATIVE_MAX_DEMAND_RECEIVED_ATTRIBUTE_ID (0x0C62) +#define ZCL_PREVIOUS_DAY_ALTERNATIVE_MAX_DEMAND_RECEIVED_TIME_ATTRIBUTE_ID (0x0C63) +#define ZCL_CURRENT_ACTIVE_SUMMATION_Q1_ATTRIBUTE_ID (0x0D01) +#define ZCL_CURRENT_ACTIVE_SUMMATION_Q2_ATTRIBUTE_ID (0x0D02) +#define ZCL_CURRENT_ACTIVE_SUMMATION_Q3_ATTRIBUTE_ID (0x0D03) +#define ZCL_CURRENT_ACTIVE_SUMMATION_Q4_ATTRIBUTE_ID (0x0D04) +#define ZCL_CURRENT_REACTIVE_SUMMATION_Q1_ATTRIBUTE_ID (0x0D05) +#define ZCL_CURRENT_REACTIVE_SUMMATION_Q2_ATTRIBUTE_ID (0x0D06) +#define ZCL_CURRENT_REACTIVE_SUMMATION_Q3_ATTRIBUTE_ID (0x0D07) +#define ZCL_CURRENT_REACTIVE_SUMMATION_Q4_ATTRIBUTE_ID (0x0D08) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Messaging // Client attributes -#define ZCL_MESSAGING_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_MESSAGING_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_MESSAGING_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_MESSAGING_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) -// Attribute types for cluster: Tunneling -// Cluster specification level: se-1.2b-15-0131-02 +// Attribute ids for cluster: Tunneling // Client attributes -#define ZCL_TUNNELING_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_TUNNELING_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_CLOSE_TUNNEL_TIMEOUT_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_TUNNELING_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_TUNNELING_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLOSE_TUNNEL_TIMEOUT_ATTRIBUTE_ID (0x0000) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) -// Attribute types for cluster: Prepayment -// Cluster specification level: se-1.2b-15-0131-02 +// Attribute ids for cluster: Prepayment // Client attributes -#define ZCL_PREPAYMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_PREPAYMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_PAYMENT_CONTROL_CONFIGURATION_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_CREDIT_REMAINING_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_EMERGENCY_CREDIT_REMAINING_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_CREDIT_STATUS_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_CREDIT_REMAINING_TIMESTAMP_ATTRIBUTE_ID 0x0004 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_ACCUMULATED_DEBT_ATTRIBUTE_ID 0x0005 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_OVERALL_DEBT_CAP_ATTRIBUTE_ID 0x0006 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_EMERGENCY_CREDIT_LIMIT_ALLOWANCE_ATTRIBUTE_ID 0x0010 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_EMERGENCY_CREDIT_THRESHOLD_ATTRIBUTE_ID 0x0011 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TOTAL_CREDIT_ADDED_ATTRIBUTE_ID 0x0020 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_MAX_CREDIT_LIMIT_ATTRIBUTE_ID 0x0021 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_MAX_CREDIT_PER_TOP_UP_ATTRIBUTE_ID 0x0022 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_FRIENDLY_CREDIT_WARNING_ATTRIBUTE_ID 0x0030 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_LOW_CREDIT_WARNING_ATTRIBUTE_ID 0x0031 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_IHD_LOW_CREDIT_WARNING_ATTRIBUTE_ID 0x0032 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_INTERRUPT_SUSPEND_TIME_ATTRIBUTE_ID 0x0033 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_REMAINING_FRIENDLY_CREDIT_TIME_ATTRIBUTE_ID 0x0034 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_NEXT_FRIENDLY_CREDIT_PERIOD_ATTRIBUTE_ID 0x0035 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CUT_OFF_VALUE_ATTRIBUTE_ID 0x0040 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TOKEN_CARRIER_ID_ATTRIBUTE_ID 0x0080 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TOP_UP_DATE_TIME_1_ATTRIBUTE_ID 0x0100 // Ver.: always -#define ZCL_TOP_UP_AMOUNT_1_ATTRIBUTE_ID 0x0101 // Ver.: always -#define ZCL_TOP_UP_ORIGINATING_DEVICE_1_ATTRIBUTE_ID 0x0102 // Ver.: always -#define ZCL_TOP_UP_CODE_1_ATTRIBUTE_ID 0x0103 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TOP_UP_DATE_TIME_2_ATTRIBUTE_ID 0x0110 // Ver.: always -#define ZCL_TOP_UP_AMOUNT_2_ATTRIBUTE_ID 0x0111 // Ver.: always -#define ZCL_TOP_UP_ORIGINATING_DEVICE_2_ATTRIBUTE_ID 0x0112 // Ver.: always -#define ZCL_TOP_UP_CODE_2_ATTRIBUTE_ID 0x0113 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TOP_UP_DATE_TIME_3_ATTRIBUTE_ID 0x0120 // Ver.: always -#define ZCL_TOP_UP_AMOUNT_3_ATTRIBUTE_ID 0x0121 // Ver.: always -#define ZCL_TOP_UP_ORIGINATING_DEVICE_3_ATTRIBUTE_ID 0x0122 // Ver.: always -#define ZCL_TOP_UP_CODE_3_ATTRIBUTE_ID 0x0123 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TOP_UP_DATE_TIME_4_ATTRIBUTE_ID 0x0130 // Ver.: always -#define ZCL_TOP_UP_AMOUNT_4_ATTRIBUTE_ID 0x0131 // Ver.: always -#define ZCL_TOP_UP_ORIGINATING_DEVICE_4_ATTRIBUTE_ID 0x0132 // Ver.: always -#define ZCL_TOP_UP_CODE_4_ATTRIBUTE_ID 0x0133 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TOP_UP_DATE_TIME_5_ATTRIBUTE_ID 0x0140 // Ver.: always -#define ZCL_TOP_UP_AMOUNT_5_ATTRIBUTE_ID 0x0141 // Ver.: always -#define ZCL_TOP_UP_ORIGINATING_DEVICE_5_ATTRIBUTE_ID 0x0142 // Ver.: always -#define ZCL_TOP_UP_CODE_5_ATTRIBUTE_ID 0x0143 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_DEBT_LABEL_1_ATTRIBUTE_ID 0x0210 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_DEBT_AMOUNT_1_ATTRIBUTE_ID 0x0211 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_DEBT_RECOVERY_METHOD_1_ATTRIBUTE_ID 0x0212 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_DEBT_RECOVERY_START_TIME_1_ATTRIBUTE_ID 0x0213 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_DEBT_RECOVERY_COLLECTION_TIME_1_ATTRIBUTE_ID 0x0214 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_DEBT_RECOVERY_FREQUENCY_1_ATTRIBUTE_ID 0x0216 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_DEBT_RECOVERY_AMOUNT_1_ATTRIBUTE_ID 0x0217 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_DEBT_RECOVERY_TOP_UP_PERCENTAGE_1_ATTRIBUTE_ID 0x0219 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_DEBT_LABEL_2_ATTRIBUTE_ID 0x0220 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_DEBT_AMOUNT_2_ATTRIBUTE_ID 0x0221 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_DEBT_RECOVERY_METHOD_2_ATTRIBUTE_ID 0x0222 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_DEBT_RECOVERY_START_TIME_2_ATTRIBUTE_ID 0x0223 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_DEBT_RECOVERY_COLLECTION_TIME_2_ATTRIBUTE_ID 0x0224 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_DEBT_RECOVERY_FREQUENCY_2_ATTRIBUTE_ID 0x0226 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_DEBT_RECOVERY_AMOUNT_2_ATTRIBUTE_ID 0x0227 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_DEBT_RECOVERY_TOP_UP_PERCENTAGE_2_ATTRIBUTE_ID 0x0229 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_DEBT_LABEL_3_ATTRIBUTE_ID 0x0230 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_DEBT_AMOUNT_3_ATTRIBUTE_ID 0x0231 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_DEBT_RECOVERY_METHOD_3_ATTRIBUTE_ID 0x0232 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_DEBT_RECOVERY_START_TIME_3_ATTRIBUTE_ID 0x0233 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_DEBT_RECOVERY_COLLECTION_TIME_3_ATTRIBUTE_ID 0x0234 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_DEBT_RECOVERY_FREQUENCY_3_ATTRIBUTE_ID 0x0236 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_DEBT_RECOVERY_AMOUNT_3_ATTRIBUTE_ID 0x0237 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_DEBT_RECOVERY_TOP_UP_PERCENTAGE_3_ATTRIBUTE_ID 0x0239 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREPAYMENT_ALARM_STATUS_ATTRIBUTE_ID 0x0400 // Ver.: since se-1.2a-07-5356-21 -#define ZCL_PREPAY_GENERIC_ALARM_MASK_ATTRIBUTE_ID 0x0401 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREPAY_SWITCH_ALARM_MASK_ATTRIBUTE_ID 0x0402 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREPAY_EVENT_ALARM_MASK_ATTRIBUTE_ID 0x0403 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_HISTORICAL_COST_CONSUMPTION_FORMATTING_ATTRIBUTE_ID 0x0500 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CONSUMPTION_UNIT_OF_MEASUREMENT_ATTRIBUTE_ID 0x0501 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENCY_SCALING_FACTOR_ATTRIBUTE_ID 0x0502 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREPAYMANT_CURRENCY_ATTRIBUTE_ID 0x0503 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_DAY_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x051C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_DAY_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x051D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x051E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x051F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY_2_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0520 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY_2_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0521 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY_3_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0522 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY_3_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0523 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY_4_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0524 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY_4_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0525 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY_5_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0526 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY_5_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0527 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY_6_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0528 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY_6_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0529 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY_7_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x052A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY_7_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x052B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY_8_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x052C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY_8_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x052D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_WEEK_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0530 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_WEEK_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0531 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_WEEK_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0532 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_WEEK_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0533 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_WEEK_2_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0534 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_WEEK_2_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0535 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_WEEK_3_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0536 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_WEEK_3_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0537 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_WEEK_4_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0538 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_WEEK_4_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0539 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_WEEK_5_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x053A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_WEEK_5_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x053B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_MONTH_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0540 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_MONTH_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0541 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0542 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0543 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH_2_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0544 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH_2_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0545 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH_3_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0546 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH_3_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0547 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH_4_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0548 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH_4_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0549 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH_5_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x054A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH_5_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x054B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH_6_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x054C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH_6_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x054D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH_7_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x054E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH_7_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x054F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH_8_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0550 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH_8_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0551 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH_9_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0552 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH_9_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0553 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH_10_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0554 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH_10_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0555 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH_11_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0556 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH_11_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0557 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH_12_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0558 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH_12_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0559 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH_13_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x055A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH_13_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x055B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREPAYMENT_HISTORICAL_FREEZE_TIME_ATTRIBUTE_ID 0x055C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREPAYMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_PREPAYMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Energy Management -// Cluster specification level: se-1.2b-15-0131-02 +#define ZCL_PAYMENT_CONTROL_CONFIGURATION_ATTRIBUTE_ID (0x0000) +#define ZCL_CREDIT_REMAINING_ATTRIBUTE_ID (0x0001) +#define ZCL_EMERGENCY_CREDIT_REMAINING_ATTRIBUTE_ID (0x0002) +#define ZCL_CREDIT_STATUS_ATTRIBUTE_ID (0x0003) +#define ZCL_CREDIT_REMAINING_TIMESTAMP_ATTRIBUTE_ID (0x0004) +#define ZCL_ACCUMULATED_DEBT_ATTRIBUTE_ID (0x0005) +#define ZCL_OVERALL_DEBT_CAP_ATTRIBUTE_ID (0x0006) +#define ZCL_EMERGENCY_CREDIT_LIMIT_ALLOWANCE_ATTRIBUTE_ID (0x0010) +#define ZCL_EMERGENCY_CREDIT_THRESHOLD_ATTRIBUTE_ID (0x0011) +#define ZCL_TOTAL_CREDIT_ADDED_ATTRIBUTE_ID (0x0020) +#define ZCL_MAX_CREDIT_LIMIT_ATTRIBUTE_ID (0x0021) +#define ZCL_MAX_CREDIT_PER_TOP_UP_ATTRIBUTE_ID (0x0022) +#define ZCL_FRIENDLY_CREDIT_WARNING_ATTRIBUTE_ID (0x0030) +#define ZCL_LOW_CREDIT_WARNING_ATTRIBUTE_ID (0x0031) +#define ZCL_IHD_LOW_CREDIT_WARNING_ATTRIBUTE_ID (0x0032) +#define ZCL_INTERRUPT_SUSPEND_TIME_ATTRIBUTE_ID (0x0033) +#define ZCL_REMAINING_FRIENDLY_CREDIT_TIME_ATTRIBUTE_ID (0x0034) +#define ZCL_NEXT_FRIENDLY_CREDIT_PERIOD_ATTRIBUTE_ID (0x0035) +#define ZCL_CUT_OFF_VALUE_ATTRIBUTE_ID (0x0040) +#define ZCL_TOKEN_CARRIER_ID_ATTRIBUTE_ID (0x0080) +#define ZCL_TOP_UP_DATE_TIME_1_ATTRIBUTE_ID (0x0100) +#define ZCL_TOP_UP_AMOUNT_1_ATTRIBUTE_ID (0x0101) +#define ZCL_TOP_UP_ORIGINATING_DEVICE_1_ATTRIBUTE_ID (0x0102) +#define ZCL_TOP_UP_CODE_1_ATTRIBUTE_ID (0x0103) +#define ZCL_TOP_UP_DATE_TIME_2_ATTRIBUTE_ID (0x0110) +#define ZCL_TOP_UP_AMOUNT_2_ATTRIBUTE_ID (0x0111) +#define ZCL_TOP_UP_ORIGINATING_DEVICE_2_ATTRIBUTE_ID (0x0112) +#define ZCL_TOP_UP_CODE_2_ATTRIBUTE_ID (0x0113) +#define ZCL_TOP_UP_DATE_TIME_3_ATTRIBUTE_ID (0x0120) +#define ZCL_TOP_UP_AMOUNT_3_ATTRIBUTE_ID (0x0121) +#define ZCL_TOP_UP_ORIGINATING_DEVICE_3_ATTRIBUTE_ID (0x0122) +#define ZCL_TOP_UP_CODE_3_ATTRIBUTE_ID (0x0123) +#define ZCL_TOP_UP_DATE_TIME_4_ATTRIBUTE_ID (0x0130) +#define ZCL_TOP_UP_AMOUNT_4_ATTRIBUTE_ID (0x0131) +#define ZCL_TOP_UP_ORIGINATING_DEVICE_4_ATTRIBUTE_ID (0x0132) +#define ZCL_TOP_UP_CODE_4_ATTRIBUTE_ID (0x0133) +#define ZCL_TOP_UP_DATE_TIME_5_ATTRIBUTE_ID (0x0140) +#define ZCL_TOP_UP_AMOUNT_5_ATTRIBUTE_ID (0x0141) +#define ZCL_TOP_UP_ORIGINATING_DEVICE_5_ATTRIBUTE_ID (0x0142) +#define ZCL_TOP_UP_CODE_5_ATTRIBUTE_ID (0x0143) +#define ZCL_DEBT_LABEL_1_ATTRIBUTE_ID (0x0210) +#define ZCL_DEBT_AMOUNT_1_ATTRIBUTE_ID (0x0211) +#define ZCL_DEBT_RECOVERY_METHOD_1_ATTRIBUTE_ID (0x0212) +#define ZCL_DEBT_RECOVERY_START_TIME_1_ATTRIBUTE_ID (0x0213) +#define ZCL_DEBT_RECOVERY_COLLECTION_TIME_1_ATTRIBUTE_ID (0x0214) +#define ZCL_DEBT_RECOVERY_FREQUENCY_1_ATTRIBUTE_ID (0x0216) +#define ZCL_DEBT_RECOVERY_AMOUNT_1_ATTRIBUTE_ID (0x0217) +#define ZCL_DEBT_RECOVERY_TOP_UP_PERCENTAGE_1_ATTRIBUTE_ID (0x0219) +#define ZCL_DEBT_LABEL_2_ATTRIBUTE_ID (0x0220) +#define ZCL_DEBT_AMOUNT_2_ATTRIBUTE_ID (0x0221) +#define ZCL_DEBT_RECOVERY_METHOD_2_ATTRIBUTE_ID (0x0222) +#define ZCL_DEBT_RECOVERY_START_TIME_2_ATTRIBUTE_ID (0x0223) +#define ZCL_DEBT_RECOVERY_COLLECTION_TIME_2_ATTRIBUTE_ID (0x0224) +#define ZCL_DEBT_RECOVERY_FREQUENCY_2_ATTRIBUTE_ID (0x0226) +#define ZCL_DEBT_RECOVERY_AMOUNT_2_ATTRIBUTE_ID (0x0227) +#define ZCL_DEBT_RECOVERY_TOP_UP_PERCENTAGE_2_ATTRIBUTE_ID (0x0229) +#define ZCL_DEBT_LABEL_3_ATTRIBUTE_ID (0x0230) +#define ZCL_DEBT_AMOUNT_3_ATTRIBUTE_ID (0x0231) +#define ZCL_DEBT_RECOVERY_METHOD_3_ATTRIBUTE_ID (0x0232) +#define ZCL_DEBT_RECOVERY_START_TIME_3_ATTRIBUTE_ID (0x0233) +#define ZCL_DEBT_RECOVERY_COLLECTION_TIME_3_ATTRIBUTE_ID (0x0234) +#define ZCL_DEBT_RECOVERY_FREQUENCY_3_ATTRIBUTE_ID (0x0236) +#define ZCL_DEBT_RECOVERY_AMOUNT_3_ATTRIBUTE_ID (0x0237) +#define ZCL_DEBT_RECOVERY_TOP_UP_PERCENTAGE_3_ATTRIBUTE_ID (0x0239) +#define ZCL_PREPAYMENT_ALARM_STATUS_ATTRIBUTE_ID (0x0400) +#define ZCL_PREPAY_GENERIC_ALARM_MASK_ATTRIBUTE_ID (0x0401) +#define ZCL_PREPAY_SWITCH_ALARM_MASK_ATTRIBUTE_ID (0x0402) +#define ZCL_PREPAY_EVENT_ALARM_MASK_ATTRIBUTE_ID (0x0403) +#define ZCL_HISTORICAL_COST_CONSUMPTION_FORMATTING_ATTRIBUTE_ID (0x0500) +#define ZCL_CONSUMPTION_UNIT_OF_MEASUREMENT_ATTRIBUTE_ID (0x0501) +#define ZCL_CURRENCY_SCALING_FACTOR_ATTRIBUTE_ID (0x0502) +#define ZCL_PREPAYMANT_CURRENCY_ATTRIBUTE_ID (0x0503) +#define ZCL_CURRENT_DAY_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x051C) +#define ZCL_CURRENT_DAY_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x051D) +#define ZCL_PREVIOUS_DAY_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x051E) +#define ZCL_PREVIOUS_DAY_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x051F) +#define ZCL_PREVIOUS_DAY_2_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0520) +#define ZCL_PREVIOUS_DAY_2_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0521) +#define ZCL_PREVIOUS_DAY_3_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0522) +#define ZCL_PREVIOUS_DAY_3_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0523) +#define ZCL_PREVIOUS_DAY_4_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0524) +#define ZCL_PREVIOUS_DAY_4_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0525) +#define ZCL_PREVIOUS_DAY_5_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0526) +#define ZCL_PREVIOUS_DAY_5_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0527) +#define ZCL_PREVIOUS_DAY_6_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0528) +#define ZCL_PREVIOUS_DAY_6_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0529) +#define ZCL_PREVIOUS_DAY_7_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x052A) +#define ZCL_PREVIOUS_DAY_7_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x052B) +#define ZCL_PREVIOUS_DAY_8_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x052C) +#define ZCL_PREVIOUS_DAY_8_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x052D) +#define ZCL_CURRENT_WEEK_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0530) +#define ZCL_CURRENT_WEEK_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0531) +#define ZCL_PREVIOUS_WEEK_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0532) +#define ZCL_PREVIOUS_WEEK_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0533) +#define ZCL_PREVIOUS_WEEK_2_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0534) +#define ZCL_PREVIOUS_WEEK_2_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0535) +#define ZCL_PREVIOUS_WEEK_3_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0536) +#define ZCL_PREVIOUS_WEEK_3_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0537) +#define ZCL_PREVIOUS_WEEK_4_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0538) +#define ZCL_PREVIOUS_WEEK_4_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0539) +#define ZCL_PREVIOUS_WEEK_5_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x053A) +#define ZCL_PREVIOUS_WEEK_5_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x053B) +#define ZCL_CURRENT_MONTH_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0540) +#define ZCL_CURRENT_MONTH_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0541) +#define ZCL_PREVIOUS_MONTH_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0542) +#define ZCL_PREVIOUS_MONTH_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0543) +#define ZCL_PREVIOUS_MONTH_2_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0544) +#define ZCL_PREVIOUS_MONTH_2_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0545) +#define ZCL_PREVIOUS_MONTH_3_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0546) +#define ZCL_PREVIOUS_MONTH_3_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0547) +#define ZCL_PREVIOUS_MONTH_4_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0548) +#define ZCL_PREVIOUS_MONTH_4_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0549) +#define ZCL_PREVIOUS_MONTH_5_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x054A) +#define ZCL_PREVIOUS_MONTH_5_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x054B) +#define ZCL_PREVIOUS_MONTH_6_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x054C) +#define ZCL_PREVIOUS_MONTH_6_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x054D) +#define ZCL_PREVIOUS_MONTH_7_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x054E) +#define ZCL_PREVIOUS_MONTH_7_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x054F) +#define ZCL_PREVIOUS_MONTH_8_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0550) +#define ZCL_PREVIOUS_MONTH_8_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0551) +#define ZCL_PREVIOUS_MONTH_9_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0552) +#define ZCL_PREVIOUS_MONTH_9_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0553) +#define ZCL_PREVIOUS_MONTH_10_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0554) +#define ZCL_PREVIOUS_MONTH_10_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0555) +#define ZCL_PREVIOUS_MONTH_11_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0556) +#define ZCL_PREVIOUS_MONTH_11_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0557) +#define ZCL_PREVIOUS_MONTH_12_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0558) +#define ZCL_PREVIOUS_MONTH_12_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0559) +#define ZCL_PREVIOUS_MONTH_13_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x055A) +#define ZCL_PREVIOUS_MONTH_13_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x055B) +#define ZCL_PREPAYMENT_HISTORICAL_FREEZE_TIME_ATTRIBUTE_ID (0x055C) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Energy Management // Client attributes -#define ZCL_ENERGY_MANAGEMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_ENERGY_MANAGEMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_LOAD_CONTROL_STATE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_CURRENT_EVENT_ID_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_CURRENT_EVENT_STATUS_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_CONFORMANCE_LEVEL_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_MINIMUM_OFF_TIME_ATTRIBUTE_ID 0x0004 // Ver.: always -#define ZCL_MINIMUM_ON_TIME_ATTRIBUTE_ID 0x0005 // Ver.: always -#define ZCL_MINIMUM_CYCLE_PERIOD_ATTRIBUTE_ID 0x0006 // Ver.: always -#define ZCL_ENERGY_MANAGEMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_ENERGY_MANAGEMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Calendar -// Cluster specification level: se-1.2b-15-0131-02 +#define ZCL_LOAD_CONTROL_STATE_ATTRIBUTE_ID (0x0000) +#define ZCL_CURRENT_EVENT_ID_ATTRIBUTE_ID (0x0001) +#define ZCL_CURRENT_EVENT_STATUS_ATTRIBUTE_ID (0x0002) +#define ZCL_CONFORMANCE_LEVEL_ATTRIBUTE_ID (0x0003) +#define ZCL_MINIMUM_OFF_TIME_ATTRIBUTE_ID (0x0004) +#define ZCL_MINIMUM_ON_TIME_ATTRIBUTE_ID (0x0005) +#define ZCL_MINIMUM_CYCLE_PERIOD_ATTRIBUTE_ID (0x0006) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Calendar // Client attributes -#define ZCL_CALENDAR_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_CALENDAR_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_AUXILIARY_SWITCH_1_LABEL_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_AUXILIARY_SWITCH_2_LABEL_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_AUXILIARY_SWITCH_3_LABEL_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_AUXILIARY_SWITCH_4_LABEL_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_AUXILIARY_SWITCH_5_LABEL_ATTRIBUTE_ID 0x0004 // Ver.: always -#define ZCL_AUXILIARY_SWITCH_6_LABEL_ATTRIBUTE_ID 0x0005 // Ver.: always -#define ZCL_AUXILIARY_SWITCH_7_LABEL_ATTRIBUTE_ID 0x0006 // Ver.: always -#define ZCL_AUXILIARY_SWITCH_8_LABEL_ATTRIBUTE_ID 0x0007 // Ver.: always -#define ZCL_CALENDAR_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_CALENDAR_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Device Management -// Cluster specification level: se-1.2b-15-0131-02 +#define ZCL_AUXILIARY_SWITCH_1_LABEL_ATTRIBUTE_ID (0x0000) +#define ZCL_AUXILIARY_SWITCH_2_LABEL_ATTRIBUTE_ID (0x0001) +#define ZCL_AUXILIARY_SWITCH_3_LABEL_ATTRIBUTE_ID (0x0002) +#define ZCL_AUXILIARY_SWITCH_4_LABEL_ATTRIBUTE_ID (0x0003) +#define ZCL_AUXILIARY_SWITCH_5_LABEL_ATTRIBUTE_ID (0x0004) +#define ZCL_AUXILIARY_SWITCH_6_LABEL_ATTRIBUTE_ID (0x0005) +#define ZCL_AUXILIARY_SWITCH_7_LABEL_ATTRIBUTE_ID (0x0006) +#define ZCL_AUXILIARY_SWITCH_8_LABEL_ATTRIBUTE_ID (0x0007) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Device Management // Client attributes -#define ZCL_PROVIDER_ID_CLIENT_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_RECEIVED_PROVIDER_ID_CLIENT_ATTRIBUTE_ID 0x0010 // Ver.: always -#define ZCL_TOU_TARIFF_ACTIVATION_ATTRIBUTE_ID 0x0100 // Ver.: always -#define ZCL_BLOCK_TARIFF_ACTIVATED_ATTRIBUTE_ID 0x0101 // Ver.: always -#define ZCL_BLOCK_TOU_TARIFF_ACTIVATED_ATTRIBUTE_ID 0x0102 // Ver.: always -#define ZCL_SINGLE_TARIFF_RATE_ACTIVATED_ATTRIBUTE_ID 0x0103 // Ver.: always -#define ZCL_ASYNCHRONOUS_BILLING_OCCURRED_ATTRIBUTE_ID 0x0104 // Ver.: always -#define ZCL_SYNCHRONOUS_BILLING_OCCURRED_ATTRIBUTE_ID 0x0105 // Ver.: always -#define ZCL_TARIFF_NOT_SUPPORTED_ATTRIBUTE_ID 0x0106 // Ver.: always -#define ZCL_PRICE_CLUSTER_NOT_FOUND_ATTRIBUTE_ID 0x0107 // Ver.: always -#define ZCL_CURRENCY_CHANGE_PASSIVE_ACTIVATED_ATTRIBUTE_ID 0x0108 // Ver.: always -#define ZCL_CURRENCY_CHANGE_PASSIVE_UPDATED_ATTRIBUTE_ID 0x0109 // Ver.: always -#define ZCL_PRICE_MATRIX_PASSIVE_ACTIVATED_ATTRIBUTE_ID 0x010A // Ver.: always -#define ZCL_PRICE_MATRIX_PASSIVE_UPDATED_ATTRIBUTE_ID 0x010B // Ver.: always -#define ZCL_TARIFF_CHANGE_PASSIVE_ACTIVATED_ATTRIBUTE_ID 0x010C // Ver.: always -#define ZCL_TARIFF_CHANGE_PASSIVE_UPDATED_ATTRIBUTE_ID 0x010D // Ver.: always -#define ZCL_PUBLISH_PRICE_RECEIVED_ATTRIBUTE_ID 0x01B0 // Ver.: always -#define ZCL_PUBLISH_PRICE_ACTIONED_ATTRIBUTE_ID 0x01B1 // Ver.: always -#define ZCL_PUBLISH_PRICE_CANCELLED_ATTRIBUTE_ID 0x01B2 // Ver.: always -#define ZCL_PUBLISH_PRICE_REJECTED_ATTRIBUTE_ID 0x01B3 // Ver.: always -#define ZCL_PUBLISH_TARIFF_INFO_RECEIVED_ATTRIBUTE_ID 0x01B4 // Ver.: always -#define ZCL_PUBLISH_TARIFF_INFO_ACTIONED_ATTRIBUTE_ID 0x01B5 // Ver.: always -#define ZCL_PUBLISH_TARIFF_INFO_CANCELLED_ATTRIBUTE_ID 0x01B6 // Ver.: always -#define ZCL_PUBLISH_TARIFF_INFO_REJECTED_ATTRIBUTE_ID 0x01B7 // Ver.: always -#define ZCL_PUBLISH_PRICE_MATRIX_RECEIVED_ATTRIBUTE_ID 0x01B8 // Ver.: always -#define ZCL_PUBLISH_PRICE_MATRIX_ACTIONED_ATTRIBUTE_ID 0x01B9 // Ver.: always -#define ZCL_PUBLISH_PRICE_MATRIX_CANCELLED_ATTRIBUTE_ID 0x01BA // Ver.: always -#define ZCL_PUBLISH_PRICE_MATRIX_REJECTED_ATTRIBUTE_ID 0x01BB // Ver.: always -#define ZCL_PUBLISH_BLOCK_THRESHOLDS_RECEIVED_ATTRIBUTE_ID 0x01BC // Ver.: always -#define ZCL_PUBLISH_BLOCK_THRESHOLDS_ACTIONED_ATTRIBUTE_ID 0x01BD // Ver.: always -#define ZCL_PUBLISH_BLOCK_THRESHOLDS_CANCELLED_ATTRIBUTE_ID 0x01BE // Ver.: always -#define ZCL_PUBLISH_BLOCK_THRESHOLDS_REJECTED_ATTRIBUTE_ID 0x01BF // Ver.: always -#define ZCL_PUBLISH_CALORIFIC_VALUE_RECEIVED_ATTRIBUTE_ID 0x01C0 // Ver.: always -#define ZCL_PUBLISH_CALORIFIC_VALUE_ACTIONED_ATTRIBUTE_ID 0x01C1 // Ver.: always -#define ZCL_PUBLISH_CALORIFIC_VALUE_CANCELLED_ATTRIBUTE_ID 0x01C2 // Ver.: always -#define ZCL_PUBLISH_CALORIFIC_VALUE_REJECTED_ATTRIBUTE_ID 0x01C3 // Ver.: always -#define ZCL_PUBLISH_CONVERSION_FACTOR_RECEIVED_ATTRIBUTE_ID 0x01C4 // Ver.: always -#define ZCL_PUBLISH_CONVERSION_FACTOR_ACTIONED_ATTRIBUTE_ID 0x01C5 // Ver.: always -#define ZCL_PUBLISH_CONVERSION_FACTOR_CANCELLED_ATTRIBUTE_ID 0x01C6 // Ver.: always -#define ZCL_PUBLISH_CONVERSION_FACTOR_REJECTED_ATTRIBUTE_ID 0x01C7 // Ver.: always -#define ZCL_PUBLISH_CO2_VALUE_RECEIVED_ATTRIBUTE_ID 0x01C8 // Ver.: always -#define ZCL_PUBLISH_CO2_VALUE_ACTIONED_ATTRIBUTE_ID 0x01C9 // Ver.: always -#define ZCL_PUBLISH_CO2_VALUE_CANCELLED_ATTRIBUTE_ID 0x01CA // Ver.: always -#define ZCL_PUBLISH_CO2_VALUE_REJECTED_ATTRIBUTE_ID 0x01CB // Ver.: always -#define ZCL_PUBLISH_CPP_EVENT_RECEIVED_ATTRIBUTE_ID 0x01CC // Ver.: always -#define ZCL_PUBLISH_CPP_EVENT_ACTIONED_ATTRIBUTE_ID 0x01CD // Ver.: always -#define ZCL_PUBLISH_CPP_EVENT_CANCELLED_ATTRIBUTE_ID 0x01CE // Ver.: always -#define ZCL_PUBLISH_CPP_EVENT_REJECTED_ATTRIBUTE_ID 0x01CF // Ver.: always -#define ZCL_PUBLISH_TIER_LABELS_RECEIVED_ATTRIBUTE_ID 0x01D0 // Ver.: always -#define ZCL_PUBLISH_TIER_LABELS_ACTIONED_ATTRIBUTE_ID 0x01D1 // Ver.: always -#define ZCL_PUBLISH_TIER_LABELS_CANCELLED_ATTRIBUTE_ID 0x01D2 // Ver.: always -#define ZCL_PUBLISH_TIER_LABELS_REJECTED_ATTRIBUTE_ID 0x01D3 // Ver.: always -#define ZCL_PUBLISH_BILLING_PERIOD_RECEIVED_ATTRIBUTE_ID 0x01D4 // Ver.: always -#define ZCL_PUBLISH_BILLING_PERIOD_ACTIONED_ATTRIBUTE_ID 0x01D5 // Ver.: always -#define ZCL_PUBLISH_BILLING_PERIOD_CANCELLED_ATTRIBUTE_ID 0x01D6 // Ver.: always -#define ZCL_PUBLISH_BILLING_PERIOD_REJECTED_ATTRIBUTE_ID 0x01D7 // Ver.: always -#define ZCL_PUBLISH_CONSOLIDATED_BILL_RECEIVED_ATTRIBUTE_ID 0x01D8 // Ver.: always -#define ZCL_PUBLISH_CONSOLIDATED_BILL_ACTIONED_ATTRIBUTE_ID 0x01D9 // Ver.: always -#define ZCL_PUBLISH_CONSOLIDATED_BILL_CANCELLED_ATTRIBUTE_ID 0x01DA // Ver.: always -#define ZCL_PUBLISH_CONSOLIDATED_BILL_REJECTED_ATTRIBUTE_ID 0x01DB // Ver.: always -#define ZCL_PUBLISH_BLOCK_PERIOD_RECEIVED_ATTRIBUTE_ID 0x01DC // Ver.: always -#define ZCL_PUBLISH_BLOCK_PERIOD_ACTIONED_ATTRIBUTE_ID 0x01DD // Ver.: always -#define ZCL_PUBLISH_BLOCK_PERIOD_CANCELLED_ATTRIBUTE_ID 0x01DE // Ver.: always -#define ZCL_PUBLISH_BLOCK_PERIOD_REJECTED_ATTRIBUTE_ID 0x01DF // Ver.: always -#define ZCL_PUBLISH_CREDIT_PAYMENT_INFO_RECEIVED_ATTRIBUTE_ID 0x01E0 // Ver.: always -#define ZCL_PUBLISH_CREDIT_PAYMENT_INFO_ACTIONED_ATTRIBUTE_ID 0x01E1 // Ver.: always -#define ZCL_PUBLISH_CREDIT_PAYMENT_INFO_CANCELLED_ATTRIBUTE_ID 0x01E2 // Ver.: always -#define ZCL_PUBLISH_CREDIT_PAYMENT_INFO_REJECTED_ATTRIBUTE_ID 0x01E3 // Ver.: always -#define ZCL_PUBLISH_CURRENCY_CONVERSION_RECEIVED_ATTRIBUTE_ID 0x01E4 // Ver.: always -#define ZCL_PUBLISH_CURRENCY_CONVERSION_ACTIONED_ATTRIBUTE_ID 0x01E5 // Ver.: always -#define ZCL_PUBLISH_CURRENCY_CONVERSION_CANCELLED_ATTRIBUTE_ID 0x01E6 // Ver.: always -#define ZCL_PUBLISH_CURRENCY_CONVERSION_REJECTED_ATTRIBUTE_ID 0x01E7 // Ver.: always -#define ZCL_CHECK_METER_ATTRIBUTE_ID 0x0200 // Ver.: always -#define ZCL_LOW_BATTERY_ATTRIBUTE_ID 0x0201 // Ver.: always -#define ZCL_TAMPER_DETECT_ATTRIBUTE_ID 0x0202 // Ver.: always -#define ZCL_DEVICE_MANAGEMENT_SUPPLY_STATUS_ATTRIBUTE_ID 0x0203 // Ver.: always -#define ZCL_SUPPLY_QUALITY_ATTRIBUTE_ID 0x0204 // Ver.: always -#define ZCL_LEAK_DETECT_ATTRIBUTE_ID 0x0205 // Ver.: always -#define ZCL_SERVICE_DISCONNECT_ATTRIBUTE_ID 0x0206 // Ver.: always -#define ZCL_REVERSE_FLOW_GENERAL_ATTRIBUTE_ID 0x0207 // Ver.: always -#define ZCL_METER_COVER_REMOVED_ATTRIBUTE_ID 0x0208 // Ver.: always -#define ZCL_METER_COVER_CLOSED_ATTRIBUTE_ID 0x0209 // Ver.: always -#define ZCL_STRONG_MAGNETIC_FIELD_ATTRIBUTE_ID 0x020A // Ver.: always -#define ZCL_NO_STRONG_MAGNETIC_FIELD_ATTRIBUTE_ID 0x020B // Ver.: always -#define ZCL_BATTERY_FAILURE_ATTRIBUTE_ID 0x020C // Ver.: always -#define ZCL_PROGRAM_MEMORY_ERROR_ATTRIBUTE_ID 0x020D // Ver.: always -#define ZCL_RAM_ERROR_ATTRIBUTE_ID 0x020E // Ver.: always -#define ZCL_NV_MEMORY_ERROR_ATTRIBUTE_ID 0x020F // Ver.: always -#define ZCL_LOW_VOLTAGE_L1_ATTRIBUTE_ID 0x0210 // Ver.: always -#define ZCL_HIGH_VOLTAGE_L1_ATTRIBUTE_ID 0x0211 // Ver.: always -#define ZCL_LOW_VOLTAGE_L2_ATTRIBUTE_ID 0x0212 // Ver.: always -#define ZCL_HIGH_VOLTAGE_L2_ATTRIBUTE_ID 0x0213 // Ver.: always -#define ZCL_LOW_VOLTAGE_L3_ATTRIBUTE_ID 0x0214 // Ver.: always -#define ZCL_HIGH_VOLTAGE_L3_ATTRIBUTE_ID 0x0215 // Ver.: always -#define ZCL_OVER_CURRENT_L1_ATTRIBUTE_ID 0x0216 // Ver.: always -#define ZCL_OVER_CURRENT_L2_ATTRIBUTE_ID 0x0217 // Ver.: always -#define ZCL_OVER_CURRENT_L3_ATTRIBUTE_ID 0x0218 // Ver.: always -#define ZCL_FREQUENCY_TOO_LOW_L1_ATTRIBUTE_ID 0x0219 // Ver.: always -#define ZCL_FREQUENCY_TOO_HIGH_L1_ATTRIBUTE_ID 0x021A // Ver.: always -#define ZCL_FREQUENCY_TOO_LOW_L2_ATTRIBUTE_ID 0x021B // Ver.: always -#define ZCL_FREQUENCY_TOO_HIGH_L2_ATTRIBUTE_ID 0x021C // Ver.: always -#define ZCL_FREQUENCY_TOO_LOW_L3_ATTRIBUTE_ID 0x021D // Ver.: always -#define ZCL_FREQUENCY_TOO_HIGH_L3_ATTRIBUTE_ID 0x021E // Ver.: always -#define ZCL_GROUND_FAULT_ATTRIBUTE_ID 0x021F // Ver.: always -#define ZCL_ELECTRIC_TAMPER_DETECT_ATTRIBUTE_ID 0x0220 // Ver.: always -#define ZCL_INCORRECT_POLARITY_ATTRIBUTE_ID 0x0221 // Ver.: always -#define ZCL_CURRENT_NO_VOLTAGE_ATTRIBUTE_ID 0x0222 // Ver.: always -#define ZCL_UNDER_VOLTAGE_ATTRIBUTE_ID 0x0223 // Ver.: always -#define ZCL_OVER_VOLTAGE_ATTRIBUTE_ID 0x0224 // Ver.: always -#define ZCL_NORMAL_VOLTAGE_ATTRIBUTE_ID 0x0225 // Ver.: always -#define ZCL_PF_BELOW_THRESHOLD_ATTRIBUTE_ID 0x0226 // Ver.: always -#define ZCL_PF_ABOVE_THRESHOLD_ATTRIBUTE_ID 0x0227 // Ver.: always -#define ZCL_TERMINAL_COVER_REMOVED_ATTRIBUTE_ID 0x0228 // Ver.: always -#define ZCL_TERMINAL_COVER_CLOSED_ATTRIBUTE_ID 0x0229 // Ver.: always -#define ZCL_BURST_DETECT_ATTRIBUTE_ID 0x0230 // Ver.: always -#define ZCL_PRESSURE_TOO_LOW_ATTRIBUTE_ID 0x0231 // Ver.: always -#define ZCL_PRESSURE_TOO_HIGH_ATTRIBUTE_ID 0x0232 // Ver.: always -#define ZCL_FLOW_SENSOR_COMMUNICATION_ERROR_ATTRIBUTE_ID 0x0233 // Ver.: always -#define ZCL_FLOW_SENSOR_MEASUREMENT_FAULT_ATTRIBUTE_ID 0x0234 // Ver.: always -#define ZCL_FLOW_SENSOR_REVERSE_FLOW_ATTRIBUTE_ID 0x0235 // Ver.: always -#define ZCL_FLOW_SENSOR_AIR_DETECT_ATTRIBUTE_ID 0x0236 // Ver.: always -#define ZCL_PIPE_EMPTY_ATTRIBUTE_ID 0x0237 // Ver.: always -#define ZCL_INLET_TEMP_SENSOR_FAULT_ATTRIBUTE_ID 0x0250 // Ver.: always -#define ZCL_OUTLET_TEMP_SENSOR_FAULT_ATTRIBUTE_ID 0x0251 // Ver.: always -#define ZCL_REVERSE_FLOW_ATTRIBUTE_ID 0x0260 // Ver.: always -#define ZCL_TILT_TAMPER_ATTRIBUTE_ID 0x0261 // Ver.: always -#define ZCL_BATTERY_COVER_REMOVED_ATTRIBUTE_ID 0x0262 // Ver.: always -#define ZCL_BATTERY_COVER_CLOSED_ATTRIBUTE_ID 0x0263 // Ver.: always -#define ZCL_EXCESS_FLOW_ATTRIBUTE_ID 0x0264 // Ver.: always -#define ZCL_TILT_TAMPER_ENABLED_ATTRIBUTE_ID 0x0265 // Ver.: always -#define ZCL_MEASUREMENT_SYSTEM_ERROR_ATTRIBUTE_ID 0x0270 // Ver.: always -#define ZCL_WATCHDOG_ERROR_ATTRIBUTE_ID 0x0271 // Ver.: always -#define ZCL_SUPPLY_DISCONNECT_FAILURE_ATTRIBUTE_ID 0x0272 // Ver.: always -#define ZCL_SUPPLY_CONNECT_FAILURE_ATTRIBUTE_ID 0x0273 // Ver.: always -#define ZCL_MEASUREMENT_SOFTWARE_CHANGED_ATTRIBUTE_ID 0x0274 // Ver.: always -#define ZCL_DST_ENABLED_ATTRIBUTE_ID 0x0275 // Ver.: always -#define ZCL_DST_DISABLED_ATTRIBUTE_ID 0x0276 // Ver.: always -#define ZCL_CLOCK_ADJ_BACKWARD_ATTRIBUTE_ID 0x0277 // Ver.: always -#define ZCL_CLOCK_ADJ_FORWARD_ATTRIBUTE_ID 0x0278 // Ver.: always -#define ZCL_CLOCK_INVALID_ATTRIBUTE_ID 0x0279 // Ver.: always -#define ZCL_COMMUNICATION_ERROR_HAN_ATTRIBUTE_ID 0x027A // Ver.: always -#define ZCL_COMMUNICATION_OK_HAN_ATTRIBUTE_ID 0x027B // Ver.: always -#define ZCL_METER_FRAUD_ATTEMPT_ATTRIBUTE_ID 0x027C // Ver.: always -#define ZCL_POWER_LOSS_ATTRIBUTE_ID 0x027D // Ver.: always -#define ZCL_UNUSUAL_HAN_TRAFFIC_ATTRIBUTE_ID 0x027E // Ver.: always -#define ZCL_UNEXPECTED_CLOCK_CHANGE_ATTRIBUTE_ID 0x027F // Ver.: always -#define ZCL_COMMS_USING_UNAUTHENTICATED_COMPONENT_ATTRIBUTE_ID 0x0280 // Ver.: always -#define ZCL_METERING_ERROR_REG_CLEAR_ATTRIBUTE_ID 0x0281 // Ver.: always -#define ZCL_METERING_ALARM_REG_CLEAR_ATTRIBUTE_ID 0x0282 // Ver.: always -#define ZCL_UNEXPECTED_HW_RESET_ATTRIBUTE_ID 0x0283 // Ver.: always -#define ZCL_UNEXPECTED_PROGRAM_EXECUTION_ATTRIBUTE_ID 0x0284 // Ver.: always -#define ZCL_LIMIT_THRESHOLD_EXCEEDED_ATTRIBUTE_ID 0x0285 // Ver.: always -#define ZCL_LIMIT_THRESHOLD_OK_ATTRIBUTE_ID 0x0286 // Ver.: always -#define ZCL_LIMIT_THRESHOLD_CHANGED_ATTRIBUTE_ID 0x0287 // Ver.: always -#define ZCL_MAXIMUM_DEMAND_EXCEEDED_ATTRIBUTE_ID 0x0288 // Ver.: always -#define ZCL_PROFILE_CLEARED_ATTRIBUTE_ID 0x0289 // Ver.: always -#define ZCL_LOAD_PROFILE_CLEARED_ATTRIBUTE_ID 0x028A // Ver.: always -#define ZCL_BATTERY_WARN_ATTRIBUTE_ID 0x028B // Ver.: always -#define ZCL_WRONG_SIGNATURE_ATTRIBUTE_ID 0x028C // Ver.: always -#define ZCL_NO_SIGNATURE_ATTRIBUTE_ID 0x028D // Ver.: always -#define ZCL_SIGNATURE_NOT_VALID_ATTRIBUTE_ID 0x028E // Ver.: always -#define ZCL_UNAUTHORISE_ACTION_FROM_HAN_ATTRIBUTE_ID 0x028F // Ver.: always -#define ZCL_FAST_POLLING_START_ATTRIBUTE_ID 0x0290 // Ver.: always -#define ZCL_FAST_POLLING_END_ATTRIBUTE_ID 0x0291 // Ver.: always -#define ZCL_METER_REPORTING_INTERVAL_CHANGED_ATTRIBUTE_ID 0x0292 // Ver.: always -#define ZCL_DISCONNECT_TO_LOAD_LIMIT_ATTRIBUTE_ID 0x0293 // Ver.: always -#define ZCL_METER_SUPPLY_STATUS_REGISTER_CHANGED_ATTRIBUTE_ID 0x0294 // Ver.: always -#define ZCL_METER_ALARM_STATUS_REGISTER_CHANGED_ATTRIBUTE_ID 0x0295 // Ver.: always -#define ZCL_EXTENDED_METER_ALARM_STATUS_REGISTER_CHANGED_ATTRIBUTE_ID 0x0296 // Ver.: always -#define ZCL_DATA_ACCESS_VIA_LOCAL_PORT_ATTRIBUTE_ID 0x0297 // Ver.: always -#define ZCL_CONFIGURE_MIRROR_SUCCESS_ATTRIBUTE_ID 0x0298 // Ver.: always -#define ZCL_CONFIGURE_MIRROR_FAILURE_ATTRIBUTE_ID 0x0299 // Ver.: always -#define ZCL_CONFIGURE_NOTIFICATION_FLAG_SCHEME_SUCCESS_ATTRIBUTE_ID 0x029A // Ver.: always -#define ZCL_CONFIGURE_NOTIFICATION_FLAG_SCHEME_FAILURE_ATTRIBUTE_ID 0x029B // Ver.: always -#define ZCL_CONFIGURE_NOTIFICATION_FLAGS_SUCCESS_ATTRIBUTE_ID 0x029C // Ver.: always -#define ZCL_CONFIGURE_NOTIFICATION_FLAGS_FAILURE_ATTRIBUTE_ID 0x029D // Ver.: always -#define ZCL_STAY_AWAKE_REQUEST_HAN_ATTRIBUTE_ID 0x029E // Ver.: always -#define ZCL_STAY_AWAKE_REQUEST_WAN_ATTRIBUTE_ID 0x029F // Ver.: always -#define ZCL_MANUFACTURER_SPECIFIC_A_ATTRIBUTE_ID 0x02B0 // Ver.: always -#define ZCL_MANUFACTURER_SPECIFIC_B_ATTRIBUTE_ID 0x02B1 // Ver.: always -#define ZCL_MANUFACTURER_SPECIFIC_C_ATTRIBUTE_ID 0x02B2 // Ver.: always -#define ZCL_MANUFACTURER_SPECIFIC_D_ATTRIBUTE_ID 0x02B3 // Ver.: always -#define ZCL_MANUFACTURER_SPECIFIC_E_ATTRIBUTE_ID 0x02B4 // Ver.: always -#define ZCL_MANUFACTURER_SPECIFIC_F_ATTRIBUTE_ID 0x02B5 // Ver.: always -#define ZCL_MANUFACTURER_SPECIFIC_G_ATTRIBUTE_ID 0x02B6 // Ver.: always -#define ZCL_MANUFACTURER_SPECIFIC_H_ATTRIBUTE_ID 0x02B7 // Ver.: always -#define ZCL_MANUFACTURER_SPECIFIC_I_ATTRIBUTE_ID 0x02B8 // Ver.: always -#define ZCL_GET_PROFILE_COMMAND_RECEIVED_ATTRIBUTE_ID 0x02C0 // Ver.: always -#define ZCL_GET_PROFILE_COMMAND_ACTIONED_ATTRIBUTE_ID 0x02C1 // Ver.: always -#define ZCL_GET_PROFILE_COMMAND_CANCELLED_ATTRIBUTE_ID 0x02C2 // Ver.: always -#define ZCL_GET_PROFILE_COMMAND_REJECTED_ATTRIBUTE_ID 0x02C3 // Ver.: always -#define ZCL_REQUEST_MIRROR_RESPONSE_COMMAND_RECEIVED_ATTRIBUTE_ID 0x02C4 // Ver.: always -#define ZCL_REQUEST_MIRROR_RESPONSE_COMMAND_ACTIONED_ATTRIBUTE_ID 0x02C5 // Ver.: always -#define ZCL_REQUEST_MIRROR_RESPONSE_COMMAND_CANCELLED_ATTRIBUTE_ID 0x02C6 // Ver.: always -#define ZCL_REQUEST_MIRROR_RESPONSE_COMMAND_REJECTED_ATTRIBUTE_ID 0x02C7 // Ver.: always -#define ZCL_MIRROR_REMOVED_COMMAND_RECEIVED_ATTRIBUTE_ID 0x02C8 // Ver.: always -#define ZCL_MIRROR_REMOVED_COMMAND_ACTIONED_ATTRIBUTE_ID 0x02C9 // Ver.: always -#define ZCL_MIRROR_REMOVED_COMMAND_CANCELLED_ATTRIBUTE_ID 0x02CA // Ver.: always -#define ZCL_MIRROR_REMOVED_COMMAND_REJECTED_ATTRIBUTE_ID 0x02CB // Ver.: always -#define ZCL_GET_SNAPSHOT_COMMAND_RECEIVED_ATTRIBUTE_ID 0x02CC // Ver.: always -#define ZCL_GET_SNAPSHOT_COMMAND_ACTIONED_ATTRIBUTE_ID 0x02CD // Ver.: always -#define ZCL_GET_SNAPSHOT_COMMAND_CANCELLED_ATTRIBUTE_ID 0x02CE // Ver.: always -#define ZCL_GET_SNAPSHOT_COMMAND_REJECTED_ATTRIBUTE_ID 0x02CF // Ver.: always -#define ZCL_TAKE_SNAPSHOT_COMMAND_RECEIVED_ATTRIBUTE_ID 0x02D0 // Ver.: always -#define ZCL_TAKE_SNAPSHOT_COMMAND_ACTIONED_ATTRIBUTE_ID 0x02D1 // Ver.: always -#define ZCL_TAKE_SNAPSHOT_COMMAND_CANCELLED_ATTRIBUTE_ID 0x02D2 // Ver.: always -#define ZCL_TAKE_SNAPSHOT_COMMAND_REJECTED_ATTRIBUTE_ID 0x02D3 // Ver.: always -#define ZCL_MIRROR_REPORT_ATTRIBUTE_RESPONSE_COMMAND_RECEIVED_ATTRIBUTE_ID 0x02D4 // Ver.: always -#define ZCL_MIRROR_REPORT_ATTRIBUTE_RESPONSE_COMMAND_ACTIONED_ATTRIBUTE_ID 0x02D5 // Ver.: always -#define ZCL_MIRROR_REPORT_ATTRIBUTE_RESPONSE_COMMAND_CANCELLED_ATTRIBUTE_ID 0x02D6 // Ver.: always -#define ZCL_MIRROR_REPORT_ATTRIBUTE_RESPONSE_COMMAND_REJECTED_ATTRIBUTE_ID 0x02D7 // Ver.: always -#define ZCL_SCHEDULE_SNAPSHOT_COMMAND_RECEIVED_ATTRIBUTE_ID 0x02D8 // Ver.: always -#define ZCL_SCHEDULE_SNAPSHOT_COMMAND_ACTIONED_ATTRIBUTE_ID 0x02D9 // Ver.: always -#define ZCL_SCHEDULE_SNAPSHOT_COMMAND_CANCELLED_ATTRIBUTE_ID 0x02DA // Ver.: always -#define ZCL_SCHEDULE_SNAPSHOT_COMMAND_REJECTED_ATTRIBUTE_ID 0x02DB // Ver.: always -#define ZCL_START_SAMPLING_COMMAND_RECEIVED_ATTRIBUTE_ID 0x02DC // Ver.: always -#define ZCL_START_SAMPLING_COMMAND_ACTIONED_ATTRIBUTE_ID 0x02DD // Ver.: always -#define ZCL_START_SAMPLING_COMMAND_CANCELLED_ATTRIBUTE_ID 0x02DE // Ver.: always -#define ZCL_START_SAMPLING_COMMAND_REJECTED_ATTRIBUTE_ID 0x02DF // Ver.: always -#define ZCL_GET_SAMPLED_DATA_COMMAND_RECEIVED_ATTRIBUTE_ID 0x02E0 // Ver.: always -#define ZCL_GET_SAMPLED_DATA_COMMAND_ACTIONED_ATTRIBUTE_ID 0x02E1 // Ver.: always -#define ZCL_GET_SAMPLED_DATA_COMMAND_CANCELLED_ATTRIBUTE_ID 0x02E2 // Ver.: always -#define ZCL_GET_SAMPLED_DATA_COMMAND_REJECTED_ATTRIBUTE_ID 0x02E3 // Ver.: always -#define ZCL_SUPPLY_ON_ATTRIBUTE_ID 0x02E4 // Ver.: always -#define ZCL_SUPPLY_ARMED_ATTRIBUTE_ID 0x02E5 // Ver.: always -#define ZCL_SUPPLY_OFF_ATTRIBUTE_ID 0x02E6 // Ver.: always -#define ZCL_DISCONNECTED_DUE_TO_TAMPER_DETECTED_ATTRIBUTE_ID 0x02E7 // Ver.: always -#define ZCL_MANUAL_DISCONNECT_ATTRIBUTE_ID 0x02E8 // Ver.: always -#define ZCL_MANUAL_CONNECT_ATTRIBUTE_ID 0x02E9 // Ver.: always -#define ZCL_REMOTE_DISCONNECTION_ATTRIBUTE_ID 0x02EA // Ver.: always -#define ZCL_REMOTE_CONNECT_ATTRIBUTE_ID 0x02EB // Ver.: always -#define ZCL_LOCAL_DISCONNECTION_ATTRIBUTE_ID 0x02EC // Ver.: always -#define ZCL_LOCAL_CONNECT_ATTRIBUTE_ID 0x02ED // Ver.: always -#define ZCL_CHANGE_SUPPLY_RECEIVED_ATTRIBUTE_ID 0x02EE // Ver.: always -#define ZCL_CHANGE_SUPPLY_ACTIONED_ATTRIBUTE_ID 0x02EF // Ver.: always -#define ZCL_CHANGE_SUPPLY_CANCELLED_ATTRIBUTE_ID 0x02F0 // Ver.: always -#define ZCL_CHANGE_SUPPLY_REJECTED_ATTRIBUTE_ID 0x02F1 // Ver.: always -#define ZCL_LOCAL_CHANGE_SUPPLY_RECEIVED_ATTRIBUTE_ID 0x02F2 // Ver.: always -#define ZCL_LOCAL_CHANGE_SUPPLY_ACTIONED_ATTRIBUTE_ID 0x02F3 // Ver.: always -#define ZCL_LOCAL_CHANGE_SUPPLY_CANCELLED_ATTRIBUTE_ID 0x02F4 // Ver.: always -#define ZCL_LOCAL_CHANGE_SUPPLY_REJECTED_ATTRIBUTE_ID 0x02F5 // Ver.: always -#define ZCL_PUBLISH_UNCONTROLLED_FLOW_THRESHOLD_RECEIVED_ATTRIBUTE_ID 0x02F6 // Ver.: always -#define ZCL_PUBLISH_UNCONTROLLED_FLOW_THRESHOLD_ACTIONED_ATTRIBUTE_ID 0x02F7 // Ver.: always -#define ZCL_PUBLISH_UNCONTROLLED_FLOW_THRESHOLD_CANCELLED_ATTRIBUTE_ID 0x02F8 // Ver.: always -#define ZCL_PUBLISH_UNCONTROLLED_FLOW_THRESHOLD_REJECTED_ATTRIBUTE_ID 0x02F9 // Ver.: always -#define ZCL_MESSAGE_CONFIRMATION_SENT_ATTRIBUTE_ID 0x0300 // Ver.: always -#define ZCL_DISPLAY_MESSAGE_RECEIVED_ATTRIBUTE_ID 0x03C0 // Ver.: always -#define ZCL_DISPLAY_MESSAGE_ACTIONED_ATTRIBUTE_ID 0x03C1 // Ver.: always -#define ZCL_DISPLAY_MESSAGE_CANCELLED_ATTRIBUTE_ID 0x03C2 // Ver.: always -#define ZCL_DISPLAY_MESSAGE_REJECTED_ATTRIBUTE_ID 0x03C3 // Ver.: always -#define ZCL_CANCEL_MESSAGE_RECEIVED_ATTRIBUTE_ID 0x03C4 // Ver.: always -#define ZCL_CANCEL_MESSAGE_ACTIONED_ATTRIBUTE_ID 0x03C5 // Ver.: always -#define ZCL_CANCEL_MESSAGE_CANCELLED_ATTRIBUTE_ID 0x03C6 // Ver.: always -#define ZCL_CANCEL_MESSAGE_REJECTED_ATTRIBUTE_ID 0x03C7 // Ver.: always -#define ZCL_LOW_CREDIT_ATTRIBUTE_ID 0x0400 // Ver.: always -#define ZCL_NO_CREDIT_ATTRIBUTE_ID 0x0401 // Ver.: always -#define ZCL_CREDIT_EXHAUSTED_ATTRIBUTE_ID 0x0402 // Ver.: always -#define ZCL_EMERGENCY_CREDIT_ENABLED_ATTRIBUTE_ID 0x0403 // Ver.: always -#define ZCL_EMERGENCY_CREDIT_EXHAUSTED_ATTRIBUTE_ID 0x0404 // Ver.: always -#define ZCL_PREPAY_IHD_LOW_CREDIT_WARNING_ATTRIBUTE_ID 0x0405 // Ver.: always -#define ZCL_PHYSICAL_ATTACK_ON_THE_PREPAY_METER_ATTRIBUTE_ID 0x0420 // Ver.: always -#define ZCL_ELECTRONIC_ATTACK_ON_THE_PREPAY_METER_ATTRIBUTE_ID 0x0421 // Ver.: always -#define ZCL_DISCOUNT_APPLIED_ATTRIBUTE_ID 0x0422 // Ver.: always -#define ZCL_CREDIT_ADJUSTMENT_ATTRIBUTE_ID 0x0423 // Ver.: always -#define ZCL_CREDIT_ADJUST_FAIL_ATTRIBUTE_ID 0x0424 // Ver.: always -#define ZCL_DEBT_ADJUSTMENT_ATTRIBUTE_ID 0x0425 // Ver.: always -#define ZCL_DEBT_ADJUST_FAIL_ATTRIBUTE_ID 0x0426 // Ver.: always -#define ZCL_MODE_CHANGE_ATTRIBUTE_ID 0x0427 // Ver.: always -#define ZCL_TOPUP_CODE_ERROR_ATTRIBUTE_ID 0x0428 // Ver.: always -#define ZCL_TOPUP_ALREADY_USED_ATTRIBUTE_ID 0x0429 // Ver.: always -#define ZCL_TOPUP_CODE_INVALID_ATTRIBUTE_ID 0x042A // Ver.: always -#define ZCL_TOPUP_ACCEPTED_VIA_REMOTE_ATTRIBUTE_ID 0x042B // Ver.: always -#define ZCL_TOPUP_ACCEPTED_VIA_MANUAL_ENTRY_ATTRIBUTE_ID 0x042C // Ver.: always -#define ZCL_FRIENDLY_CREDIT_IN_USE_ATTRIBUTE_ID 0x042D // Ver.: always -#define ZCL_FRIENDLY_CREDIT_END_WARNING_ATTRIBUTE_ID 0x042E // Ver.: always -#define ZCL_FRIENDLY_CREDIT_PERIOD_END_ATTRIBUTE_ID 0x042F // Ver.: always -#define ZCL_PREPAY_ERROR_REG_CLEAR_ATTRIBUTE_ID 0x0430 // Ver.: always -#define ZCL_PREPAY_ALARM_REG_CLEAR_ATTRIBUTE_ID 0x0431 // Ver.: always -#define ZCL_PREPAY_CLUSTER_NOT_FOUND_ATTRIBUTE_ID 0x0432 // Ver.: always -#define ZCL_TOPUP_VALUE_TOO_LARGE_ATTRIBUTE_ID 0x0433 // Ver.: always -#define ZCL_MODE_CREDIT_2_PREPAY_ATTRIBUTE_ID 0x0441 // Ver.: always -#define ZCL_MODE_PREPAY_2_CREDIT_ATTRIBUTE_ID 0x0442 // Ver.: always -#define ZCL_MODE_DEFAULT_ATTRIBUTE_ID 0x0443 // Ver.: always -#define ZCL_SELECT_AVAILABLE_EMERGENCY_CREDIT_RECEIVED_ATTRIBUTE_ID 0x04C0 // Ver.: always -#define ZCL_SELECT_AVAILABLE_EMERGENCY_CREDIT_ACTIONED_ATTRIBUTE_ID 0x04C1 // Ver.: always -#define ZCL_SELECT_AVAILABLE_EMERGENCY_CREDIT_CANCELLED_ATTRIBUTE_ID 0x04C2 // Ver.: always -#define ZCL_SELECT_AVAILABLE_EMERGENCY_CREDIT_REJECTED_ATTRIBUTE_ID 0x04C3 // Ver.: always -#define ZCL_CHANGE_DEBT_RECEIVED_ATTRIBUTE_ID 0x04C4 // Ver.: always -#define ZCL_CHANGE_DEBT_ACTIONED_ATTRIBUTE_ID 0x04C5 // Ver.: always -#define ZCL_CHANGE_DEBT_CANCELLED_ATTRIBUTE_ID 0x04C6 // Ver.: always -#define ZCL_CHANGE_DEBT_REJECTED_ATTRIBUTE_ID 0x04C7 // Ver.: always -#define ZCL_EMERGENCY_CREDIT_SETUP_RECEIVED_ATTRIBUTE_ID 0x04C8 // Ver.: always -#define ZCL_EMERGENCY_CREDIT_SETUP_ACTIONED_ATTRIBUTE_ID 0x04C9 // Ver.: always -#define ZCL_EMERGENCY_CREDIT_SETUP_CANCELLED_ATTRIBUTE_ID 0x04CA // Ver.: always -#define ZCL_EMERGENCY_CREDIT_SETUP_REJECTED_ATTRIBUTE_ID 0x04CB // Ver.: always -#define ZCL_CONSUMER_TOPUP_RECEIVED_ATTRIBUTE_ID 0x04CC // Ver.: always -#define ZCL_CONSUMER_TOPUP_ACTIONED_ATTRIBUTE_ID 0x04CD // Ver.: always -#define ZCL_CONSUMER_TOPUP_CANCELLED_ATTRIBUTE_ID 0x04CE // Ver.: always -#define ZCL_CONSUMER_TOPUP_REJECTED_ATTRIBUTE_ID 0x04CF // Ver.: always -#define ZCL_CREDIT_ADJUSTMENT_RECEIVED_ATTRIBUTE_ID 0x04D0 // Ver.: always -#define ZCL_CREDIT_ADJUSTMENT_ACTIONED_ATTRIBUTE_ID 0x04D1 // Ver.: always -#define ZCL_CREDIT_ADJUSTMENT_CANCELLED_ATTRIBUTE_ID 0x04D2 // Ver.: always -#define ZCL_CREDIT_ADJUSTMENT_REJECTED_ATTRIBUTE_ID 0x04D3 // Ver.: always -#define ZCL_CHANGE_PAYMENT_MODE_RECEIVED_ATTRIBUTE_ID 0x04D4 // Ver.: always -#define ZCL_CHANGE_PAYMENT_MODE_ACTIONED_ATTRIBUTE_ID 0x04D5 // Ver.: always -#define ZCL_CHANGE_PAYMENT_MODE_CANCELLED_ATTRIBUTE_ID 0x04D6 // Ver.: always -#define ZCL_CHANGE_PAYMENT_MODE_REJECTED_ATTRIBUTE_ID 0x04D7 // Ver.: always -#define ZCL_GET_PREPAY_SNAPSHOT_RECEIVED_ATTRIBUTE_ID 0x04D8 // Ver.: always -#define ZCL_GET_PREPAY_SNAPSHOT_ACTIONED_ATTRIBUTE_ID 0x04D9 // Ver.: always -#define ZCL_GET_PREPAY_SNAPSHOT_CANCELLED_ATTRIBUTE_ID 0x04DA // Ver.: always -#define ZCL_GET_PREPAY_SNAPSHOT_REJECTED_ATTRIBUTE_ID 0x04DB // Ver.: always -#define ZCL_GET_TOPUP_LOG_RECEIVED_ATTRIBUTE_ID 0x04DC // Ver.: always -#define ZCL_GET_TOPUP_LOG_ACTIONED_ATTRIBUTE_ID 0x04DD // Ver.: always -#define ZCL_GET_TOPUP_LOG_CANCELLED_ATTRIBUTE_ID 0x04DE // Ver.: always -#define ZCL_GET_TOPUP_LOG_REJECTED_ATTRIBUTE_ID 0x04DF // Ver.: always -#define ZCL_SET_LOW_CREDIT_WARNING_LEVEL_RECEIVED_ATTRIBUTE_ID 0x04E0 // Ver.: always -#define ZCL_SET_LOW_CREDIT_WARNING_LEVEL_ACTIONED_ATTRIBUTE_ID 0x04E1 // Ver.: always -#define ZCL_SET_LOW_CREDIT_WARNING_LEVEL_CANCELLED_ATTRIBUTE_ID 0x04E2 // Ver.: always -#define ZCL_SET_LOW_CREDIT_WARNING_LEVEL_REJECTED_ATTRIBUTE_ID 0x04E3 // Ver.: always -#define ZCL_GET_DEBT_REPAY_LOG_RECEIVED_ATTRIBUTE_ID 0x04E4 // Ver.: always -#define ZCL_GET_DEBT_REPAY_LOG_ACTIONED_ATTRIBUTE_ID 0x04E5 // Ver.: always -#define ZCL_GET_DEBT_REPAY_LOG_CANCELLED_ATTRIBUTE_ID 0x04E6 // Ver.: always -#define ZCL_GET_DEBT_REPAY_LOG_REJECTED_ATTRIBUTE_ID 0x04E7 // Ver.: always -#define ZCL_SET_MAXIMUM_CREDIT_LIMIT_RECEIVED_ATTRIBUTE_ID 0x04E8 // Ver.: always -#define ZCL_SET_MAXIMUM_CREDIT_LIMIT_ACTIONED_ATTRIBUTE_ID 0x04E9 // Ver.: always -#define ZCL_SET_MAXIMUM_CREDIT_LIMIT_CANCELLED_ATTRIBUTE_ID 0x04EA // Ver.: always -#define ZCL_SET_MAXIMUM_CREDIT_LIMIT_REJECTED_ATTRIBUTE_ID 0x04EB // Ver.: always -#define ZCL_SET_OVERALL_DEBT_CAP_RECEIVED_ATTRIBUTE_ID 0x04EC // Ver.: always -#define ZCL_SET_OVERALL_DEBT_CAP_ACTIONED_ATTRIBUTE_ID 0x04ED // Ver.: always -#define ZCL_SET_OVERALL_DEBT_CAP_CANCELLED_ATTRIBUTE_ID 0x04EE // Ver.: always -#define ZCL_SET_OVERALL_DEBT_CAP_REJECTED_ATTRIBUTE_ID 0x04EF // Ver.: always -#define ZCL_CALENDAR_CLUSTER_NOT_FOUND_ATTRIBUTE_ID 0x0500 // Ver.: always -#define ZCL_CALENDAR_CHANGE_PASSIVE_ACTIVATED_ATTRIBUTE_ID 0x0501 // Ver.: always -#define ZCL_CALENDAR_CHANGE_PASSIVE_UPDATED_ATTRIBUTE_ID 0x0502 // Ver.: always -#define ZCL_PUBLISH_CALENDAR_RECEIVED_ATTRIBUTE_ID 0x05C0 // Ver.: always -#define ZCL_PUBLISH_CALENDAR_ACTIONED_ATTRIBUTE_ID 0x05C1 // Ver.: always -#define ZCL_PUBLISH_CALENDAR_CANCELLED_ATTRIBUTE_ID 0x05C2 // Ver.: always -#define ZCL_PUBLISH_CALENDAR_REJECTED_ATTRIBUTE_ID 0x05C3 // Ver.: always -#define ZCL_PUBLISH_DAY_PROFILE_RECEIVED_ATTRIBUTE_ID 0x05C4 // Ver.: always -#define ZCL_PUBLISH_DAY_PROFILE_ACTIONED_ATTRIBUTE_ID 0x05C5 // Ver.: always -#define ZCL_PUBLISH_DAY_PROFILE_CANCELLED_ATTRIBUTE_ID 0x05C6 // Ver.: always -#define ZCL_PUBLISH_DAY_PROFILE_REJECTED_ATTRIBUTE_ID 0x05C7 // Ver.: always -#define ZCL_PUBLISH_WEEK_PROFILE_RECEIVED_ATTRIBUTE_ID 0x05C8 // Ver.: always -#define ZCL_PUBLISH_WEEK_PROFILE_ACTIONED_ATTRIBUTE_ID 0x05C9 // Ver.: always -#define ZCL_PUBLISH_WEEK_PROFILE_CANCELLED_ATTRIBUTE_ID 0x05CA // Ver.: always -#define ZCL_PUBLISH_WEEK_PROFILE_REJECTED_ATTRIBUTE_ID 0x05CB // Ver.: always -#define ZCL_PUBLISH_SEASONS_RECEIVED_ATTRIBUTE_ID 0x05CC // Ver.: always -#define ZCL_PUBLISH_SEASONS_ACTIONED_ATTRIBUTE_ID 0x05CD // Ver.: always -#define ZCL_PUBLISH_SEASONS_CANCELLED_ATTRIBUTE_ID 0x05CE // Ver.: always -#define ZCL_PUBLISH_SEASONS_REJECTED_ATTRIBUTE_ID 0x05CF // Ver.: always -#define ZCL_PUBLISH_SPECIAL_DAYS_RECEIVED_ATTRIBUTE_ID 0x05D0 // Ver.: always -#define ZCL_PUBLISH_SPECIAL_DAYS_ACTIONED_ATTRIBUTE_ID 0x05D1 // Ver.: always -#define ZCL_PUBLISH_SPECIAL_DAYS_CANCELLED_ATTRIBUTE_ID 0x05D2 // Ver.: always -#define ZCL_PUBLISH_SPECIAL_DAYS_REJECTED_ATTRIBUTE_ID 0x05D3 // Ver.: always -#define ZCL_PASSWORD_1_CHANGE_ATTRIBUTE_ID 0x0600 // Ver.: always -#define ZCL_PASSWORD_2_CHANGE_ATTRIBUTE_ID 0x0601 // Ver.: always -#define ZCL_PASSWORD_3_CHANGE_ATTRIBUTE_ID 0x0602 // Ver.: always -#define ZCL_PASSWORD_4_CHANGE_ATTRIBUTE_ID 0x0603 // Ver.: always -#define ZCL_EVENT_LOG_CLEARED_ATTRIBUTE_ID 0x0604 // Ver.: always -#define ZCL_ZIGBEE_APS_TIMEOUT_ATTRIBUTE_ID 0x0610 // Ver.: always -#define ZCL_ZIGBEE_IEEE_TRANSMISSION_FAILURE_OVER_THRESHOLD_ATTRIBUTE_ID 0x0611 // Ver.: always -#define ZCL_ZIGBEE_IEEE_FRAME_CHECK_SEQUENCE_THRESHOLD_ATTRIBUTE_ID 0x0612 // Ver.: always -#define ZCL_ERROR_CERTIFICATE_ATTRIBUTE_ID 0x0613 // Ver.: always -#define ZCL_ERROR_SIGNATURE_ATTRIBUTE_ID 0x0614 // Ver.: always -#define ZCL_ERROR_PROGRAM_STORAGE_ATTRIBUTE_ID 0x0615 // Ver.: always -#define ZCL_PUBLISH_COT_RECEIVED_ATTRIBUTE_ID 0x06C0 // Ver.: always -#define ZCL_PUBLISH_COT_ACTIONED_ATTRIBUTE_ID 0x06C1 // Ver.: always -#define ZCL_PUBLISH_COT_CANCELLED_ATTRIBUTE_ID 0x06C2 // Ver.: always -#define ZCL_PUBLISH_COT_REJECTED_ATTRIBUTE_ID 0x06C3 // Ver.: always -#define ZCL_PUBLISH_COS_RECEIVED_ATTRIBUTE_ID 0x06C4 // Ver.: always -#define ZCL_PUBLISH_COS_ACTIONED_ATTRIBUTE_ID 0x06C5 // Ver.: always -#define ZCL_PUBLISH_COS_CANCELLED_ATTRIBUTE_ID 0x06C6 // Ver.: always -#define ZCL_PUBLISH_COS_REJECTED_ATTRIBUTE_ID 0x06C7 // Ver.: always -#define ZCL_CHANGE_PASSWORD_RECEIVED_ATTRIBUTE_ID 0x06C8 // Ver.: always -#define ZCL_CHANGE_PASSWORD_ACTIONED_ATTRIBUTE_ID 0x06C9 // Ver.: always -#define ZCL_CHANGE_PASSWORD_CANCELLED_ATTRIBUTE_ID 0x06CA // Ver.: always -#define ZCL_CHANGE_PASSWORD_REJECTED_ATTRIBUTE_ID 0x06CB // Ver.: always -#define ZCL_SET_EVENT_CONFIGURATION_RECEIVED_ATTRIBUTE_ID 0x06CC // Ver.: always -#define ZCL_SET_EVENT_CONFIGURATION_ACTIONED_ATTRIBUTE_ID 0x06CD // Ver.: always -#define ZCL_SET_EVENT_CONFIGURATION_CANCELLED_ATTRIBUTE_ID 0x06CE // Ver.: always -#define ZCL_SET_EVENT_CONFIGURATION_REJECTED_ATTRIBUTE_ID 0x06CF // Ver.: always -#define ZCL_UPDATE_SITE_ID_RECEIVED_ATTRIBUTE_ID 0x06D0 // Ver.: always -#define ZCL_UPDATE_SITE_ID_ACTIONED_ATTRIBUTE_ID 0x06D1 // Ver.: always -#define ZCL_UPDATE_SITE_ID_CANCELLED_ATTRIBUTE_ID 0x06D2 // Ver.: always -#define ZCL_UPDATE_SITE_ID_REJECTED_ATTRIBUTE_ID 0x06D3 // Ver.: always -#define ZCL_UPDATE_CIN_RECEIVED_ATTRIBUTE_ID 0x06D4 // Ver.: always -#define ZCL_UPDATE_CIN_ACTIONED_ATTRIBUTE_ID 0x06D5 // Ver.: always -#define ZCL_UPDATE_CIN_CANCELLED_ATTRIBUTE_ID 0x06D6 // Ver.: always -#define ZCL_UPDATE_CIN_REJECTED_ATTRIBUTE_ID 0x06D7 // Ver.: always -#define ZCL_TUNNELING_CLUSTER_NOT_FOUND_ATTRIBUTE_ID 0x0700 // Ver.: always -#define ZCL_UNSUPPORTED_PROTOCOL_ATTRIBUTE_ID 0x0701 // Ver.: always -#define ZCL_INCORRECT_PROTOCOL_ATTRIBUTE_ID 0x0702 // Ver.: always -#define ZCL_REQUEST_TUNNEL_COMMAND_RECEIVED_ATTRIBUTE_ID 0x07C0 // Ver.: always -#define ZCL_REQUEST_TUNNEL_COMMAND_REJECTED_ATTRIBUTE_ID 0x07C1 // Ver.: always -#define ZCL_REQUEST_TUNNEL_COMMAND_GENERATED_ATTRIBUTE_ID 0x07C2 // Ver.: always -#define ZCL_CLOSE_TUNNEL_COMMAND_RECEIVED_ATTRIBUTE_ID 0x07C3 // Ver.: always -#define ZCL_CLOSE_TUNNEL_COMMAND_REJECTED_ATTRIBUTE_ID 0x07C4 // Ver.: always -#define ZCL_CLOSE_TUNNEL_COMMAND_GENERATED_ATTRIBUTE_ID 0x07C5 // Ver.: always -#define ZCL_TRANSFER_DATA_COMMAND_RECEIVED_ATTRIBUTE_ID 0x07C6 // Ver.: always -#define ZCL_TRANSFER_DATA_COMMAND_REJECTED_ATTRIBUTE_ID 0x07C7 // Ver.: always -#define ZCL_TRANSFER_DATA_COMMAND_GENERATED_ATTRIBUTE_ID 0x07C8 // Ver.: always -#define ZCL_TRANSFER_DATA_ERROR_COMMAND_RECEIVED_ATTRIBUTE_ID 0x07C9 // Ver.: always -#define ZCL_TRANSFER_DATA_ERROR_COMMAND_REJECTED_ATTRIBUTE_ID 0x07CA // Ver.: always -#define ZCL_TRANSFER_DATA_ERROR_COMMAND_GENERATED_ATTRIBUTE_ID 0x07CB // Ver.: always -#define ZCL_ACK_TRANSFER_DATA_COMMAND_RECEIVED_ATTRIBUTE_ID 0x07CC // Ver.: always -#define ZCL_ACK_TRANSFER_DATA_COMMAND_REJECTED_ATTRIBUTE_ID 0x07CD // Ver.: always -#define ZCL_ACK_TRANSFER_DATA_COMMAND_GENERATED_ATTRIBUTE_ID 0x07CE // Ver.: always -#define ZCL_READY_DATA_COMMAND_RECEIVED_ATTRIBUTE_ID 0x07CF // Ver.: always -#define ZCL_READY_DATA_COMMAND_REJECTED_ATTRIBUTE_ID 0x07D0 // Ver.: always -#define ZCL_READY_DATA_COMMAND_GENERATED_ATTRIBUTE_ID 0x07D1 // Ver.: always -#define ZCL_GET_SUPPORTED_TUNNEL_PROTOCOLS_COMMAND_RECEIVED_ATTRIBUTE_ID 0x07D2 // Ver.: always -#define ZCL_GET_SUPPORTED_TUNNEL_PROTOCOLS_COMMAND_REJECTED_ATTRIBUTE_ID 0x07D3 // Ver.: always -#define ZCL_GET_SUPPORTED_TUNNEL_PROTOCOLS_COMMAND_GENERATED_ATTRIBUTE_ID 0x07D4 // Ver.: always -#define ZCL_FIRMWARE_READY_FOR_ACTIVATION_ATTRIBUTE_ID 0x0800 // Ver.: always -#define ZCL_FIRMWARE_ACTIVATED_ATTRIBUTE_ID 0x0801 // Ver.: always -#define ZCL_FIRMWARE_ACTIVATION_FAILURE_ATTRIBUTE_ID 0x0802 // Ver.: always -#define ZCL_PATCH_READY_FOR_ACTIVATION_ATTRIBUTE_ID 0x0803 // Ver.: always -#define ZCL_PATCH_ACTIVATED_ATTRIBUTE_ID 0x0804 // Ver.: always -#define ZCL_PATCH_FAILURE_ATTRIBUTE_ID 0x0805 // Ver.: always -#define ZCL_IMAGE_NOTIFY_COMMAND_RECEIVED_ATTRIBUTE_ID 0x08C0 // Ver.: always -#define ZCL_IMAGE_NOTIFY_COMMAND_REJECTED_ATTRIBUTE_ID 0x08C1 // Ver.: always -#define ZCL_QUERY_NEXT_IMAGE_REQUEST_GENERATED_ATTRIBUTE_ID 0x08C2 // Ver.: always -#define ZCL_QUERY_NEXT_IMAGE_RESPONSE_RECEIVED_ATTRIBUTE_ID 0x08C3 // Ver.: always -#define ZCL_QUERY_NEXT_IMAGE_RESPONSE_REJECTED_ATTRIBUTE_ID 0x08C4 // Ver.: always -#define ZCL_IMAGE_BLOCK_REQUEST_GENERATED_ATTRIBUTE_ID 0x08C5 // Ver.: always -#define ZCL_IMAGE_PAGE_REQUEST_GENERATED_ATTRIBUTE_ID 0x08C6 // Ver.: always -#define ZCL_IMAGE_BLOCK_RESPONSE_RECEIVED_ATTRIBUTE_ID 0x08C7 // Ver.: always -#define ZCL_IMAGE_BLOCK_RESPONSE_REJECTED_ATTRIBUTE_ID 0x08C8 // Ver.: always -#define ZCL_UPGRADE_END_REQUEST_GENERATED_ATTRIBUTE_ID 0x08C9 // Ver.: always -#define ZCL_UPGRADE_END_RESPONSE_RECEIVED_ATTRIBUTE_ID 0x08CA // Ver.: always -#define ZCL_UPGRADE_END_RESPONSE_REJECTED_ATTRIBUTE_ID 0x08CB // Ver.: always -#define ZCL_QUERY_SPECIFIC_FILE_REQUEST_GENERATED_ATTRIBUTE_ID 0x08CC // Ver.: always -#define ZCL_QUERY_SPECIFIC_FILE_RESPONSE_RECEIVED_ATTRIBUTE_ID 0x08CD // Ver.: always -#define ZCL_QUERY_SPECIFIC_FILE_RESPONSE_REJECTED_ATTRIBUTE_ID 0x08CE // Ver.: always -#define ZCL_DEVICE_MANAGEMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_DEVICE_MANAGEMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_PROVIDER_ID_CLIENT_ATTRIBUTE_ID (0x0000) +#define ZCL_RECEIVED_PROVIDER_ID_CLIENT_ATTRIBUTE_ID (0x0010) +#define ZCL_TOU_TARIFF_ACTIVATION_ATTRIBUTE_ID (0x0100) +#define ZCL_BLOCK_TARIFF_ACTIVATED_ATTRIBUTE_ID (0x0101) +#define ZCL_BLOCK_TOU_TARIFF_ACTIVATED_ATTRIBUTE_ID (0x0102) +#define ZCL_SINGLE_TARIFF_RATE_ACTIVATED_ATTRIBUTE_ID (0x0103) +#define ZCL_ASYNCHRONOUS_BILLING_OCCURRED_ATTRIBUTE_ID (0x0104) +#define ZCL_SYNCHRONOUS_BILLING_OCCURRED_ATTRIBUTE_ID (0x0105) +#define ZCL_TARIFF_NOT_SUPPORTED_ATTRIBUTE_ID (0x0106) +#define ZCL_PRICE_CLUSTER_NOT_FOUND_ATTRIBUTE_ID (0x0107) +#define ZCL_CURRENCY_CHANGE_PASSIVE_ACTIVATED_ATTRIBUTE_ID (0x0108) +#define ZCL_CURRENCY_CHANGE_PASSIVE_UPDATED_ATTRIBUTE_ID (0x0109) +#define ZCL_PRICE_MATRIX_PASSIVE_ACTIVATED_ATTRIBUTE_ID (0x010A) +#define ZCL_PRICE_MATRIX_PASSIVE_UPDATED_ATTRIBUTE_ID (0x010B) +#define ZCL_TARIFF_CHANGE_PASSIVE_ACTIVATED_ATTRIBUTE_ID (0x010C) +#define ZCL_TARIFF_CHANGE_PASSIVE_UPDATED_ATTRIBUTE_ID (0x010D) +#define ZCL_PUBLISH_PRICE_RECEIVED_ATTRIBUTE_ID (0x01B0) +#define ZCL_PUBLISH_PRICE_ACTIONED_ATTRIBUTE_ID (0x01B1) +#define ZCL_PUBLISH_PRICE_CANCELLED_ATTRIBUTE_ID (0x01B2) +#define ZCL_PUBLISH_PRICE_REJECTED_ATTRIBUTE_ID (0x01B3) +#define ZCL_PUBLISH_TARIFF_INFO_RECEIVED_ATTRIBUTE_ID (0x01B4) +#define ZCL_PUBLISH_TARIFF_INFO_ACTIONED_ATTRIBUTE_ID (0x01B5) +#define ZCL_PUBLISH_TARIFF_INFO_CANCELLED_ATTRIBUTE_ID (0x01B6) +#define ZCL_PUBLISH_TARIFF_INFO_REJECTED_ATTRIBUTE_ID (0x01B7) +#define ZCL_PUBLISH_PRICE_MATRIX_RECEIVED_ATTRIBUTE_ID (0x01B8) +#define ZCL_PUBLISH_PRICE_MATRIX_ACTIONED_ATTRIBUTE_ID (0x01B9) +#define ZCL_PUBLISH_PRICE_MATRIX_CANCELLED_ATTRIBUTE_ID (0x01BA) +#define ZCL_PUBLISH_PRICE_MATRIX_REJECTED_ATTRIBUTE_ID (0x01BB) +#define ZCL_PUBLISH_BLOCK_THRESHOLDS_RECEIVED_ATTRIBUTE_ID (0x01BC) +#define ZCL_PUBLISH_BLOCK_THRESHOLDS_ACTIONED_ATTRIBUTE_ID (0x01BD) +#define ZCL_PUBLISH_BLOCK_THRESHOLDS_CANCELLED_ATTRIBUTE_ID (0x01BE) +#define ZCL_PUBLISH_BLOCK_THRESHOLDS_REJECTED_ATTRIBUTE_ID (0x01BF) +#define ZCL_PUBLISH_CALORIFIC_VALUE_RECEIVED_ATTRIBUTE_ID (0x01C0) +#define ZCL_PUBLISH_CALORIFIC_VALUE_ACTIONED_ATTRIBUTE_ID (0x01C1) +#define ZCL_PUBLISH_CALORIFIC_VALUE_CANCELLED_ATTRIBUTE_ID (0x01C2) +#define ZCL_PUBLISH_CALORIFIC_VALUE_REJECTED_ATTRIBUTE_ID (0x01C3) +#define ZCL_PUBLISH_CONVERSION_FACTOR_RECEIVED_ATTRIBUTE_ID (0x01C4) +#define ZCL_PUBLISH_CONVERSION_FACTOR_ACTIONED_ATTRIBUTE_ID (0x01C5) +#define ZCL_PUBLISH_CONVERSION_FACTOR_CANCELLED_ATTRIBUTE_ID (0x01C6) +#define ZCL_PUBLISH_CONVERSION_FACTOR_REJECTED_ATTRIBUTE_ID (0x01C7) +#define ZCL_PUBLISH_CO2_VALUE_RECEIVED_ATTRIBUTE_ID (0x01C8) +#define ZCL_PUBLISH_CO2_VALUE_ACTIONED_ATTRIBUTE_ID (0x01C9) +#define ZCL_PUBLISH_CO2_VALUE_CANCELLED_ATTRIBUTE_ID (0x01CA) +#define ZCL_PUBLISH_CO2_VALUE_REJECTED_ATTRIBUTE_ID (0x01CB) +#define ZCL_PUBLISH_CPP_EVENT_RECEIVED_ATTRIBUTE_ID (0x01CC) +#define ZCL_PUBLISH_CPP_EVENT_ACTIONED_ATTRIBUTE_ID (0x01CD) +#define ZCL_PUBLISH_CPP_EVENT_CANCELLED_ATTRIBUTE_ID (0x01CE) +#define ZCL_PUBLISH_CPP_EVENT_REJECTED_ATTRIBUTE_ID (0x01CF) +#define ZCL_PUBLISH_TIER_LABELS_RECEIVED_ATTRIBUTE_ID (0x01D0) +#define ZCL_PUBLISH_TIER_LABELS_ACTIONED_ATTRIBUTE_ID (0x01D1) +#define ZCL_PUBLISH_TIER_LABELS_CANCELLED_ATTRIBUTE_ID (0x01D2) +#define ZCL_PUBLISH_TIER_LABELS_REJECTED_ATTRIBUTE_ID (0x01D3) +#define ZCL_PUBLISH_BILLING_PERIOD_RECEIVED_ATTRIBUTE_ID (0x01D4) +#define ZCL_PUBLISH_BILLING_PERIOD_ACTIONED_ATTRIBUTE_ID (0x01D5) +#define ZCL_PUBLISH_BILLING_PERIOD_CANCELLED_ATTRIBUTE_ID (0x01D6) +#define ZCL_PUBLISH_BILLING_PERIOD_REJECTED_ATTRIBUTE_ID (0x01D7) +#define ZCL_PUBLISH_CONSOLIDATED_BILL_RECEIVED_ATTRIBUTE_ID (0x01D8) +#define ZCL_PUBLISH_CONSOLIDATED_BILL_ACTIONED_ATTRIBUTE_ID (0x01D9) +#define ZCL_PUBLISH_CONSOLIDATED_BILL_CANCELLED_ATTRIBUTE_ID (0x01DA) +#define ZCL_PUBLISH_CONSOLIDATED_BILL_REJECTED_ATTRIBUTE_ID (0x01DB) +#define ZCL_PUBLISH_BLOCK_PERIOD_RECEIVED_ATTRIBUTE_ID (0x01DC) +#define ZCL_PUBLISH_BLOCK_PERIOD_ACTIONED_ATTRIBUTE_ID (0x01DD) +#define ZCL_PUBLISH_BLOCK_PERIOD_CANCELLED_ATTRIBUTE_ID (0x01DE) +#define ZCL_PUBLISH_BLOCK_PERIOD_REJECTED_ATTRIBUTE_ID (0x01DF) +#define ZCL_PUBLISH_CREDIT_PAYMENT_INFO_RECEIVED_ATTRIBUTE_ID (0x01E0) +#define ZCL_PUBLISH_CREDIT_PAYMENT_INFO_ACTIONED_ATTRIBUTE_ID (0x01E1) +#define ZCL_PUBLISH_CREDIT_PAYMENT_INFO_CANCELLED_ATTRIBUTE_ID (0x01E2) +#define ZCL_PUBLISH_CREDIT_PAYMENT_INFO_REJECTED_ATTRIBUTE_ID (0x01E3) +#define ZCL_PUBLISH_CURRENCY_CONVERSION_RECEIVED_ATTRIBUTE_ID (0x01E4) +#define ZCL_PUBLISH_CURRENCY_CONVERSION_ACTIONED_ATTRIBUTE_ID (0x01E5) +#define ZCL_PUBLISH_CURRENCY_CONVERSION_CANCELLED_ATTRIBUTE_ID (0x01E6) +#define ZCL_PUBLISH_CURRENCY_CONVERSION_REJECTED_ATTRIBUTE_ID (0x01E7) +#define ZCL_CHECK_METER_ATTRIBUTE_ID (0x0200) +#define ZCL_LOW_BATTERY_ATTRIBUTE_ID (0x0201) +#define ZCL_TAMPER_DETECT_ATTRIBUTE_ID (0x0202) +#define ZCL_DEVICE_MANAGEMENT_SUPPLY_STATUS_ATTRIBUTE_ID (0x0203) +#define ZCL_SUPPLY_QUALITY_ATTRIBUTE_ID (0x0204) +#define ZCL_LEAK_DETECT_ATTRIBUTE_ID (0x0205) +#define ZCL_SERVICE_DISCONNECT_ATTRIBUTE_ID (0x0206) +#define ZCL_REVERSE_FLOW_GENERAL_ATTRIBUTE_ID (0x0207) +#define ZCL_METER_COVER_REMOVED_ATTRIBUTE_ID (0x0208) +#define ZCL_METER_COVER_CLOSED_ATTRIBUTE_ID (0x0209) +#define ZCL_STRONG_MAGNETIC_FIELD_ATTRIBUTE_ID (0x020A) +#define ZCL_NO_STRONG_MAGNETIC_FIELD_ATTRIBUTE_ID (0x020B) +#define ZCL_BATTERY_FAILURE_ATTRIBUTE_ID (0x020C) +#define ZCL_PROGRAM_MEMORY_ERROR_ATTRIBUTE_ID (0x020D) +#define ZCL_RAM_ERROR_ATTRIBUTE_ID (0x020E) +#define ZCL_NV_MEMORY_ERROR_ATTRIBUTE_ID (0x020F) +#define ZCL_LOW_VOLTAGE_L1_ATTRIBUTE_ID (0x0210) +#define ZCL_HIGH_VOLTAGE_L1_ATTRIBUTE_ID (0x0211) +#define ZCL_LOW_VOLTAGE_L2_ATTRIBUTE_ID (0x0212) +#define ZCL_HIGH_VOLTAGE_L2_ATTRIBUTE_ID (0x0213) +#define ZCL_LOW_VOLTAGE_L3_ATTRIBUTE_ID (0x0214) +#define ZCL_HIGH_VOLTAGE_L3_ATTRIBUTE_ID (0x0215) +#define ZCL_OVER_CURRENT_L1_ATTRIBUTE_ID (0x0216) +#define ZCL_OVER_CURRENT_L2_ATTRIBUTE_ID (0x0217) +#define ZCL_OVER_CURRENT_L3_ATTRIBUTE_ID (0x0218) +#define ZCL_FREQUENCY_TOO_LOW_L1_ATTRIBUTE_ID (0x0219) +#define ZCL_FREQUENCY_TOO_HIGH_L1_ATTRIBUTE_ID (0x021A) +#define ZCL_FREQUENCY_TOO_LOW_L2_ATTRIBUTE_ID (0x021B) +#define ZCL_FREQUENCY_TOO_HIGH_L2_ATTRIBUTE_ID (0x021C) +#define ZCL_FREQUENCY_TOO_LOW_L3_ATTRIBUTE_ID (0x021D) +#define ZCL_FREQUENCY_TOO_HIGH_L3_ATTRIBUTE_ID (0x021E) +#define ZCL_GROUND_FAULT_ATTRIBUTE_ID (0x021F) +#define ZCL_ELECTRIC_TAMPER_DETECT_ATTRIBUTE_ID (0x0220) +#define ZCL_INCORRECT_POLARITY_ATTRIBUTE_ID (0x0221) +#define ZCL_CURRENT_NO_VOLTAGE_ATTRIBUTE_ID (0x0222) +#define ZCL_UNDER_VOLTAGE_ATTRIBUTE_ID (0x0223) +#define ZCL_OVER_VOLTAGE_ATTRIBUTE_ID (0x0224) +#define ZCL_NORMAL_VOLTAGE_ATTRIBUTE_ID (0x0225) +#define ZCL_PF_BELOW_THRESHOLD_ATTRIBUTE_ID (0x0226) +#define ZCL_PF_ABOVE_THRESHOLD_ATTRIBUTE_ID (0x0227) +#define ZCL_TERMINAL_COVER_REMOVED_ATTRIBUTE_ID (0x0228) +#define ZCL_TERMINAL_COVER_CLOSED_ATTRIBUTE_ID (0x0229) +#define ZCL_BURST_DETECT_ATTRIBUTE_ID (0x0230) +#define ZCL_PRESSURE_TOO_LOW_ATTRIBUTE_ID (0x0231) +#define ZCL_PRESSURE_TOO_HIGH_ATTRIBUTE_ID (0x0232) +#define ZCL_FLOW_SENSOR_COMMUNICATION_ERROR_ATTRIBUTE_ID (0x0233) +#define ZCL_FLOW_SENSOR_MEASUREMENT_FAULT_ATTRIBUTE_ID (0x0234) +#define ZCL_FLOW_SENSOR_REVERSE_FLOW_ATTRIBUTE_ID (0x0235) +#define ZCL_FLOW_SENSOR_AIR_DETECT_ATTRIBUTE_ID (0x0236) +#define ZCL_PIPE_EMPTY_ATTRIBUTE_ID (0x0237) +#define ZCL_INLET_TEMP_SENSOR_FAULT_ATTRIBUTE_ID (0x0250) +#define ZCL_OUTLET_TEMP_SENSOR_FAULT_ATTRIBUTE_ID (0x0251) +#define ZCL_REVERSE_FLOW_ATTRIBUTE_ID (0x0260) +#define ZCL_TILT_TAMPER_ATTRIBUTE_ID (0x0261) +#define ZCL_BATTERY_COVER_REMOVED_ATTRIBUTE_ID (0x0262) +#define ZCL_BATTERY_COVER_CLOSED_ATTRIBUTE_ID (0x0263) +#define ZCL_EXCESS_FLOW_ATTRIBUTE_ID (0x0264) +#define ZCL_TILT_TAMPER_ENABLED_ATTRIBUTE_ID (0x0265) +#define ZCL_MEASUREMENT_SYSTEM_ERROR_ATTRIBUTE_ID (0x0270) +#define ZCL_WATCHDOG_ERROR_ATTRIBUTE_ID (0x0271) +#define ZCL_SUPPLY_DISCONNECT_FAILURE_ATTRIBUTE_ID (0x0272) +#define ZCL_SUPPLY_CONNECT_FAILURE_ATTRIBUTE_ID (0x0273) +#define ZCL_MEASUREMENT_SOFTWARE_CHANGED_ATTRIBUTE_ID (0x0274) +#define ZCL_DST_ENABLED_ATTRIBUTE_ID (0x0275) +#define ZCL_DST_DISABLED_ATTRIBUTE_ID (0x0276) +#define ZCL_CLOCK_ADJ_BACKWARD_ATTRIBUTE_ID (0x0277) +#define ZCL_CLOCK_ADJ_FORWARD_ATTRIBUTE_ID (0x0278) +#define ZCL_CLOCK_INVALID_ATTRIBUTE_ID (0x0279) +#define ZCL_COMMUNICATION_ERROR_HAN_ATTRIBUTE_ID (0x027A) +#define ZCL_COMMUNICATION_OK_HAN_ATTRIBUTE_ID (0x027B) +#define ZCL_METER_FRAUD_ATTEMPT_ATTRIBUTE_ID (0x027C) +#define ZCL_POWER_LOSS_ATTRIBUTE_ID (0x027D) +#define ZCL_UNUSUAL_HAN_TRAFFIC_ATTRIBUTE_ID (0x027E) +#define ZCL_UNEXPECTED_CLOCK_CHANGE_ATTRIBUTE_ID (0x027F) +#define ZCL_COMMS_USING_UNAUTHENTICATED_COMPONENT_ATTRIBUTE_ID (0x0280) +#define ZCL_METERING_ERROR_REG_CLEAR_ATTRIBUTE_ID (0x0281) +#define ZCL_METERING_ALARM_REG_CLEAR_ATTRIBUTE_ID (0x0282) +#define ZCL_UNEXPECTED_HW_RESET_ATTRIBUTE_ID (0x0283) +#define ZCL_UNEXPECTED_PROGRAM_EXECUTION_ATTRIBUTE_ID (0x0284) +#define ZCL_LIMIT_THRESHOLD_EXCEEDED_ATTRIBUTE_ID (0x0285) +#define ZCL_LIMIT_THRESHOLD_OK_ATTRIBUTE_ID (0x0286) +#define ZCL_LIMIT_THRESHOLD_CHANGED_ATTRIBUTE_ID (0x0287) +#define ZCL_MAXIMUM_DEMAND_EXCEEDED_ATTRIBUTE_ID (0x0288) +#define ZCL_PROFILE_CLEARED_ATTRIBUTE_ID (0x0289) +#define ZCL_LOAD_PROFILE_CLEARED_ATTRIBUTE_ID (0x028A) +#define ZCL_BATTERY_WARN_ATTRIBUTE_ID (0x028B) +#define ZCL_WRONG_SIGNATURE_ATTRIBUTE_ID (0x028C) +#define ZCL_NO_SIGNATURE_ATTRIBUTE_ID (0x028D) +#define ZCL_SIGNATURE_NOT_VALID_ATTRIBUTE_ID (0x028E) +#define ZCL_UNAUTHORISE_ACTION_FROM_HAN_ATTRIBUTE_ID (0x028F) +#define ZCL_FAST_POLLING_START_ATTRIBUTE_ID (0x0290) +#define ZCL_FAST_POLLING_END_ATTRIBUTE_ID (0x0291) +#define ZCL_METER_REPORTING_INTERVAL_CHANGED_ATTRIBUTE_ID (0x0292) +#define ZCL_DISCONNECT_TO_LOAD_LIMIT_ATTRIBUTE_ID (0x0293) +#define ZCL_METER_SUPPLY_STATUS_REGISTER_CHANGED_ATTRIBUTE_ID (0x0294) +#define ZCL_METER_ALARM_STATUS_REGISTER_CHANGED_ATTRIBUTE_ID (0x0295) +#define ZCL_EXTENDED_METER_ALARM_STATUS_REGISTER_CHANGED_ATTRIBUTE_ID (0x0296) +#define ZCL_DATA_ACCESS_VIA_LOCAL_PORT_ATTRIBUTE_ID (0x0297) +#define ZCL_CONFIGURE_MIRROR_SUCCESS_ATTRIBUTE_ID (0x0298) +#define ZCL_CONFIGURE_MIRROR_FAILURE_ATTRIBUTE_ID (0x0299) +#define ZCL_CONFIGURE_NOTIFICATION_FLAG_SCHEME_SUCCESS_ATTRIBUTE_ID (0x029A) +#define ZCL_CONFIGURE_NOTIFICATION_FLAG_SCHEME_FAILURE_ATTRIBUTE_ID (0x029B) +#define ZCL_CONFIGURE_NOTIFICATION_FLAGS_SUCCESS_ATTRIBUTE_ID (0x029C) +#define ZCL_CONFIGURE_NOTIFICATION_FLAGS_FAILURE_ATTRIBUTE_ID (0x029D) +#define ZCL_STAY_AWAKE_REQUEST_HAN_ATTRIBUTE_ID (0x029E) +#define ZCL_STAY_AWAKE_REQUEST_WAN_ATTRIBUTE_ID (0x029F) +#define ZCL_MANUFACTURER_SPECIFIC_A_ATTRIBUTE_ID (0x02B0) +#define ZCL_MANUFACTURER_SPECIFIC_B_ATTRIBUTE_ID (0x02B1) +#define ZCL_MANUFACTURER_SPECIFIC_C_ATTRIBUTE_ID (0x02B2) +#define ZCL_MANUFACTURER_SPECIFIC_D_ATTRIBUTE_ID (0x02B3) +#define ZCL_MANUFACTURER_SPECIFIC_E_ATTRIBUTE_ID (0x02B4) +#define ZCL_MANUFACTURER_SPECIFIC_F_ATTRIBUTE_ID (0x02B5) +#define ZCL_MANUFACTURER_SPECIFIC_G_ATTRIBUTE_ID (0x02B6) +#define ZCL_MANUFACTURER_SPECIFIC_H_ATTRIBUTE_ID (0x02B7) +#define ZCL_MANUFACTURER_SPECIFIC_I_ATTRIBUTE_ID (0x02B8) +#define ZCL_GET_PROFILE_COMMAND_RECEIVED_ATTRIBUTE_ID (0x02C0) +#define ZCL_GET_PROFILE_COMMAND_ACTIONED_ATTRIBUTE_ID (0x02C1) +#define ZCL_GET_PROFILE_COMMAND_CANCELLED_ATTRIBUTE_ID (0x02C2) +#define ZCL_GET_PROFILE_COMMAND_REJECTED_ATTRIBUTE_ID (0x02C3) +#define ZCL_REQUEST_MIRROR_RESPONSE_COMMAND_RECEIVED_ATTRIBUTE_ID (0x02C4) +#define ZCL_REQUEST_MIRROR_RESPONSE_COMMAND_ACTIONED_ATTRIBUTE_ID (0x02C5) +#define ZCL_REQUEST_MIRROR_RESPONSE_COMMAND_CANCELLED_ATTRIBUTE_ID (0x02C6) +#define ZCL_REQUEST_MIRROR_RESPONSE_COMMAND_REJECTED_ATTRIBUTE_ID (0x02C7) +#define ZCL_MIRROR_REMOVED_COMMAND_RECEIVED_ATTRIBUTE_ID (0x02C8) +#define ZCL_MIRROR_REMOVED_COMMAND_ACTIONED_ATTRIBUTE_ID (0x02C9) +#define ZCL_MIRROR_REMOVED_COMMAND_CANCELLED_ATTRIBUTE_ID (0x02CA) +#define ZCL_MIRROR_REMOVED_COMMAND_REJECTED_ATTRIBUTE_ID (0x02CB) +#define ZCL_GET_SNAPSHOT_COMMAND_RECEIVED_ATTRIBUTE_ID (0x02CC) +#define ZCL_GET_SNAPSHOT_COMMAND_ACTIONED_ATTRIBUTE_ID (0x02CD) +#define ZCL_GET_SNAPSHOT_COMMAND_CANCELLED_ATTRIBUTE_ID (0x02CE) +#define ZCL_GET_SNAPSHOT_COMMAND_REJECTED_ATTRIBUTE_ID (0x02CF) +#define ZCL_TAKE_SNAPSHOT_COMMAND_RECEIVED_ATTRIBUTE_ID (0x02D0) +#define ZCL_TAKE_SNAPSHOT_COMMAND_ACTIONED_ATTRIBUTE_ID (0x02D1) +#define ZCL_TAKE_SNAPSHOT_COMMAND_CANCELLED_ATTRIBUTE_ID (0x02D2) +#define ZCL_TAKE_SNAPSHOT_COMMAND_REJECTED_ATTRIBUTE_ID (0x02D3) +#define ZCL_MIRROR_REPORT_ATTRIBUTE_RESPONSE_COMMAND_RECEIVED_ATTRIBUTE_ID (0x02D4) +#define ZCL_MIRROR_REPORT_ATTRIBUTE_RESPONSE_COMMAND_ACTIONED_ATTRIBUTE_ID (0x02D5) +#define ZCL_MIRROR_REPORT_ATTRIBUTE_RESPONSE_COMMAND_CANCELLED_ATTRIBUTE_ID (0x02D6) +#define ZCL_MIRROR_REPORT_ATTRIBUTE_RESPONSE_COMMAND_REJECTED_ATTRIBUTE_ID (0x02D7) +#define ZCL_SCHEDULE_SNAPSHOT_COMMAND_RECEIVED_ATTRIBUTE_ID (0x02D8) +#define ZCL_SCHEDULE_SNAPSHOT_COMMAND_ACTIONED_ATTRIBUTE_ID (0x02D9) +#define ZCL_SCHEDULE_SNAPSHOT_COMMAND_CANCELLED_ATTRIBUTE_ID (0x02DA) +#define ZCL_SCHEDULE_SNAPSHOT_COMMAND_REJECTED_ATTRIBUTE_ID (0x02DB) +#define ZCL_START_SAMPLING_COMMAND_RECEIVED_ATTRIBUTE_ID (0x02DC) +#define ZCL_START_SAMPLING_COMMAND_ACTIONED_ATTRIBUTE_ID (0x02DD) +#define ZCL_START_SAMPLING_COMMAND_CANCELLED_ATTRIBUTE_ID (0x02DE) +#define ZCL_START_SAMPLING_COMMAND_REJECTED_ATTRIBUTE_ID (0x02DF) +#define ZCL_GET_SAMPLED_DATA_COMMAND_RECEIVED_ATTRIBUTE_ID (0x02E0) +#define ZCL_GET_SAMPLED_DATA_COMMAND_ACTIONED_ATTRIBUTE_ID (0x02E1) +#define ZCL_GET_SAMPLED_DATA_COMMAND_CANCELLED_ATTRIBUTE_ID (0x02E2) +#define ZCL_GET_SAMPLED_DATA_COMMAND_REJECTED_ATTRIBUTE_ID (0x02E3) +#define ZCL_SUPPLY_ON_ATTRIBUTE_ID (0x02E4) +#define ZCL_SUPPLY_ARMED_ATTRIBUTE_ID (0x02E5) +#define ZCL_SUPPLY_OFF_ATTRIBUTE_ID (0x02E6) +#define ZCL_DISCONNECTED_DUE_TO_TAMPER_DETECTED_ATTRIBUTE_ID (0x02E7) +#define ZCL_MANUAL_DISCONNECT_ATTRIBUTE_ID (0x02E8) +#define ZCL_MANUAL_CONNECT_ATTRIBUTE_ID (0x02E9) +#define ZCL_REMOTE_DISCONNECTION_ATTRIBUTE_ID (0x02EA) +#define ZCL_REMOTE_CONNECT_ATTRIBUTE_ID (0x02EB) +#define ZCL_LOCAL_DISCONNECTION_ATTRIBUTE_ID (0x02EC) +#define ZCL_LOCAL_CONNECT_ATTRIBUTE_ID (0x02ED) +#define ZCL_CHANGE_SUPPLY_RECEIVED_ATTRIBUTE_ID (0x02EE) +#define ZCL_CHANGE_SUPPLY_ACTIONED_ATTRIBUTE_ID (0x02EF) +#define ZCL_CHANGE_SUPPLY_CANCELLED_ATTRIBUTE_ID (0x02F0) +#define ZCL_CHANGE_SUPPLY_REJECTED_ATTRIBUTE_ID (0x02F1) +#define ZCL_LOCAL_CHANGE_SUPPLY_RECEIVED_ATTRIBUTE_ID (0x02F2) +#define ZCL_LOCAL_CHANGE_SUPPLY_ACTIONED_ATTRIBUTE_ID (0x02F3) +#define ZCL_LOCAL_CHANGE_SUPPLY_CANCELLED_ATTRIBUTE_ID (0x02F4) +#define ZCL_LOCAL_CHANGE_SUPPLY_REJECTED_ATTRIBUTE_ID (0x02F5) +#define ZCL_PUBLISH_UNCONTROLLED_FLOW_THRESHOLD_RECEIVED_ATTRIBUTE_ID (0x02F6) +#define ZCL_PUBLISH_UNCONTROLLED_FLOW_THRESHOLD_ACTIONED_ATTRIBUTE_ID (0x02F7) +#define ZCL_PUBLISH_UNCONTROLLED_FLOW_THRESHOLD_CANCELLED_ATTRIBUTE_ID (0x02F8) +#define ZCL_PUBLISH_UNCONTROLLED_FLOW_THRESHOLD_REJECTED_ATTRIBUTE_ID (0x02F9) +#define ZCL_MESSAGE_CONFIRMATION_SENT_ATTRIBUTE_ID (0x0300) +#define ZCL_DISPLAY_MESSAGE_RECEIVED_ATTRIBUTE_ID (0x03C0) +#define ZCL_DISPLAY_MESSAGE_ACTIONED_ATTRIBUTE_ID (0x03C1) +#define ZCL_DISPLAY_MESSAGE_CANCELLED_ATTRIBUTE_ID (0x03C2) +#define ZCL_DISPLAY_MESSAGE_REJECTED_ATTRIBUTE_ID (0x03C3) +#define ZCL_CANCEL_MESSAGE_RECEIVED_ATTRIBUTE_ID (0x03C4) +#define ZCL_CANCEL_MESSAGE_ACTIONED_ATTRIBUTE_ID (0x03C5) +#define ZCL_CANCEL_MESSAGE_CANCELLED_ATTRIBUTE_ID (0x03C6) +#define ZCL_CANCEL_MESSAGE_REJECTED_ATTRIBUTE_ID (0x03C7) +#define ZCL_LOW_CREDIT_ATTRIBUTE_ID (0x0400) +#define ZCL_NO_CREDIT_ATTRIBUTE_ID (0x0401) +#define ZCL_CREDIT_EXHAUSTED_ATTRIBUTE_ID (0x0402) +#define ZCL_EMERGENCY_CREDIT_ENABLED_ATTRIBUTE_ID (0x0403) +#define ZCL_EMERGENCY_CREDIT_EXHAUSTED_ATTRIBUTE_ID (0x0404) +#define ZCL_PREPAY_IHD_LOW_CREDIT_WARNING_ATTRIBUTE_ID (0x0405) +#define ZCL_PHYSICAL_ATTACK_ON_THE_PREPAY_METER_ATTRIBUTE_ID (0x0420) +#define ZCL_ELECTRONIC_ATTACK_ON_THE_PREPAY_METER_ATTRIBUTE_ID (0x0421) +#define ZCL_DISCOUNT_APPLIED_ATTRIBUTE_ID (0x0422) +#define ZCL_CREDIT_ADJUSTMENT_ATTRIBUTE_ID (0x0423) +#define ZCL_CREDIT_ADJUST_FAIL_ATTRIBUTE_ID (0x0424) +#define ZCL_DEBT_ADJUSTMENT_ATTRIBUTE_ID (0x0425) +#define ZCL_DEBT_ADJUST_FAIL_ATTRIBUTE_ID (0x0426) +#define ZCL_MODE_CHANGE_ATTRIBUTE_ID (0x0427) +#define ZCL_TOPUP_CODE_ERROR_ATTRIBUTE_ID (0x0428) +#define ZCL_TOPUP_ALREADY_USED_ATTRIBUTE_ID (0x0429) +#define ZCL_TOPUP_CODE_INVALID_ATTRIBUTE_ID (0x042A) +#define ZCL_TOPUP_ACCEPTED_VIA_REMOTE_ATTRIBUTE_ID (0x042B) +#define ZCL_TOPUP_ACCEPTED_VIA_MANUAL_ENTRY_ATTRIBUTE_ID (0x042C) +#define ZCL_FRIENDLY_CREDIT_IN_USE_ATTRIBUTE_ID (0x042D) +#define ZCL_FRIENDLY_CREDIT_END_WARNING_ATTRIBUTE_ID (0x042E) +#define ZCL_FRIENDLY_CREDIT_PERIOD_END_ATTRIBUTE_ID (0x042F) +#define ZCL_PREPAY_ERROR_REG_CLEAR_ATTRIBUTE_ID (0x0430) +#define ZCL_PREPAY_ALARM_REG_CLEAR_ATTRIBUTE_ID (0x0431) +#define ZCL_PREPAY_CLUSTER_NOT_FOUND_ATTRIBUTE_ID (0x0432) +#define ZCL_TOPUP_VALUE_TOO_LARGE_ATTRIBUTE_ID (0x0433) +#define ZCL_MODE_CREDIT_2_PREPAY_ATTRIBUTE_ID (0x0441) +#define ZCL_MODE_PREPAY_2_CREDIT_ATTRIBUTE_ID (0x0442) +#define ZCL_MODE_DEFAULT_ATTRIBUTE_ID (0x0443) +#define ZCL_SELECT_AVAILABLE_EMERGENCY_CREDIT_RECEIVED_ATTRIBUTE_ID (0x04C0) +#define ZCL_SELECT_AVAILABLE_EMERGENCY_CREDIT_ACTIONED_ATTRIBUTE_ID (0x04C1) +#define ZCL_SELECT_AVAILABLE_EMERGENCY_CREDIT_CANCELLED_ATTRIBUTE_ID (0x04C2) +#define ZCL_SELECT_AVAILABLE_EMERGENCY_CREDIT_REJECTED_ATTRIBUTE_ID (0x04C3) +#define ZCL_CHANGE_DEBT_RECEIVED_ATTRIBUTE_ID (0x04C4) +#define ZCL_CHANGE_DEBT_ACTIONED_ATTRIBUTE_ID (0x04C5) +#define ZCL_CHANGE_DEBT_CANCELLED_ATTRIBUTE_ID (0x04C6) +#define ZCL_CHANGE_DEBT_REJECTED_ATTRIBUTE_ID (0x04C7) +#define ZCL_EMERGENCY_CREDIT_SETUP_RECEIVED_ATTRIBUTE_ID (0x04C8) +#define ZCL_EMERGENCY_CREDIT_SETUP_ACTIONED_ATTRIBUTE_ID (0x04C9) +#define ZCL_EMERGENCY_CREDIT_SETUP_CANCELLED_ATTRIBUTE_ID (0x04CA) +#define ZCL_EMERGENCY_CREDIT_SETUP_REJECTED_ATTRIBUTE_ID (0x04CB) +#define ZCL_CONSUMER_TOPUP_RECEIVED_ATTRIBUTE_ID (0x04CC) +#define ZCL_CONSUMER_TOPUP_ACTIONED_ATTRIBUTE_ID (0x04CD) +#define ZCL_CONSUMER_TOPUP_CANCELLED_ATTRIBUTE_ID (0x04CE) +#define ZCL_CONSUMER_TOPUP_REJECTED_ATTRIBUTE_ID (0x04CF) +#define ZCL_CREDIT_ADJUSTMENT_RECEIVED_ATTRIBUTE_ID (0x04D0) +#define ZCL_CREDIT_ADJUSTMENT_ACTIONED_ATTRIBUTE_ID (0x04D1) +#define ZCL_CREDIT_ADJUSTMENT_CANCELLED_ATTRIBUTE_ID (0x04D2) +#define ZCL_CREDIT_ADJUSTMENT_REJECTED_ATTRIBUTE_ID (0x04D3) +#define ZCL_CHANGE_PAYMENT_MODE_RECEIVED_ATTRIBUTE_ID (0x04D4) +#define ZCL_CHANGE_PAYMENT_MODE_ACTIONED_ATTRIBUTE_ID (0x04D5) +#define ZCL_CHANGE_PAYMENT_MODE_CANCELLED_ATTRIBUTE_ID (0x04D6) +#define ZCL_CHANGE_PAYMENT_MODE_REJECTED_ATTRIBUTE_ID (0x04D7) +#define ZCL_GET_PREPAY_SNAPSHOT_RECEIVED_ATTRIBUTE_ID (0x04D8) +#define ZCL_GET_PREPAY_SNAPSHOT_ACTIONED_ATTRIBUTE_ID (0x04D9) +#define ZCL_GET_PREPAY_SNAPSHOT_CANCELLED_ATTRIBUTE_ID (0x04DA) +#define ZCL_GET_PREPAY_SNAPSHOT_REJECTED_ATTRIBUTE_ID (0x04DB) +#define ZCL_GET_TOPUP_LOG_RECEIVED_ATTRIBUTE_ID (0x04DC) +#define ZCL_GET_TOPUP_LOG_ACTIONED_ATTRIBUTE_ID (0x04DD) +#define ZCL_GET_TOPUP_LOG_CANCELLED_ATTRIBUTE_ID (0x04DE) +#define ZCL_GET_TOPUP_LOG_REJECTED_ATTRIBUTE_ID (0x04DF) +#define ZCL_SET_LOW_CREDIT_WARNING_LEVEL_RECEIVED_ATTRIBUTE_ID (0x04E0) +#define ZCL_SET_LOW_CREDIT_WARNING_LEVEL_ACTIONED_ATTRIBUTE_ID (0x04E1) +#define ZCL_SET_LOW_CREDIT_WARNING_LEVEL_CANCELLED_ATTRIBUTE_ID (0x04E2) +#define ZCL_SET_LOW_CREDIT_WARNING_LEVEL_REJECTED_ATTRIBUTE_ID (0x04E3) +#define ZCL_GET_DEBT_REPAY_LOG_RECEIVED_ATTRIBUTE_ID (0x04E4) +#define ZCL_GET_DEBT_REPAY_LOG_ACTIONED_ATTRIBUTE_ID (0x04E5) +#define ZCL_GET_DEBT_REPAY_LOG_CANCELLED_ATTRIBUTE_ID (0x04E6) +#define ZCL_GET_DEBT_REPAY_LOG_REJECTED_ATTRIBUTE_ID (0x04E7) +#define ZCL_SET_MAXIMUM_CREDIT_LIMIT_RECEIVED_ATTRIBUTE_ID (0x04E8) +#define ZCL_SET_MAXIMUM_CREDIT_LIMIT_ACTIONED_ATTRIBUTE_ID (0x04E9) +#define ZCL_SET_MAXIMUM_CREDIT_LIMIT_CANCELLED_ATTRIBUTE_ID (0x04EA) +#define ZCL_SET_MAXIMUM_CREDIT_LIMIT_REJECTED_ATTRIBUTE_ID (0x04EB) +#define ZCL_SET_OVERALL_DEBT_CAP_RECEIVED_ATTRIBUTE_ID (0x04EC) +#define ZCL_SET_OVERALL_DEBT_CAP_ACTIONED_ATTRIBUTE_ID (0x04ED) +#define ZCL_SET_OVERALL_DEBT_CAP_CANCELLED_ATTRIBUTE_ID (0x04EE) +#define ZCL_SET_OVERALL_DEBT_CAP_REJECTED_ATTRIBUTE_ID (0x04EF) +#define ZCL_CALENDAR_CLUSTER_NOT_FOUND_ATTRIBUTE_ID (0x0500) +#define ZCL_CALENDAR_CHANGE_PASSIVE_ACTIVATED_ATTRIBUTE_ID (0x0501) +#define ZCL_CALENDAR_CHANGE_PASSIVE_UPDATED_ATTRIBUTE_ID (0x0502) +#define ZCL_PUBLISH_CALENDAR_RECEIVED_ATTRIBUTE_ID (0x05C0) +#define ZCL_PUBLISH_CALENDAR_ACTIONED_ATTRIBUTE_ID (0x05C1) +#define ZCL_PUBLISH_CALENDAR_CANCELLED_ATTRIBUTE_ID (0x05C2) +#define ZCL_PUBLISH_CALENDAR_REJECTED_ATTRIBUTE_ID (0x05C3) +#define ZCL_PUBLISH_DAY_PROFILE_RECEIVED_ATTRIBUTE_ID (0x05C4) +#define ZCL_PUBLISH_DAY_PROFILE_ACTIONED_ATTRIBUTE_ID (0x05C5) +#define ZCL_PUBLISH_DAY_PROFILE_CANCELLED_ATTRIBUTE_ID (0x05C6) +#define ZCL_PUBLISH_DAY_PROFILE_REJECTED_ATTRIBUTE_ID (0x05C7) +#define ZCL_PUBLISH_WEEK_PROFILE_RECEIVED_ATTRIBUTE_ID (0x05C8) +#define ZCL_PUBLISH_WEEK_PROFILE_ACTIONED_ATTRIBUTE_ID (0x05C9) +#define ZCL_PUBLISH_WEEK_PROFILE_CANCELLED_ATTRIBUTE_ID (0x05CA) +#define ZCL_PUBLISH_WEEK_PROFILE_REJECTED_ATTRIBUTE_ID (0x05CB) +#define ZCL_PUBLISH_SEASONS_RECEIVED_ATTRIBUTE_ID (0x05CC) +#define ZCL_PUBLISH_SEASONS_ACTIONED_ATTRIBUTE_ID (0x05CD) +#define ZCL_PUBLISH_SEASONS_CANCELLED_ATTRIBUTE_ID (0x05CE) +#define ZCL_PUBLISH_SEASONS_REJECTED_ATTRIBUTE_ID (0x05CF) +#define ZCL_PUBLISH_SPECIAL_DAYS_RECEIVED_ATTRIBUTE_ID (0x05D0) +#define ZCL_PUBLISH_SPECIAL_DAYS_ACTIONED_ATTRIBUTE_ID (0x05D1) +#define ZCL_PUBLISH_SPECIAL_DAYS_CANCELLED_ATTRIBUTE_ID (0x05D2) +#define ZCL_PUBLISH_SPECIAL_DAYS_REJECTED_ATTRIBUTE_ID (0x05D3) +#define ZCL_PASSWORD_1_CHANGE_ATTRIBUTE_ID (0x0600) +#define ZCL_PASSWORD_2_CHANGE_ATTRIBUTE_ID (0x0601) +#define ZCL_PASSWORD_3_CHANGE_ATTRIBUTE_ID (0x0602) +#define ZCL_PASSWORD_4_CHANGE_ATTRIBUTE_ID (0x0603) +#define ZCL_EVENT_LOG_CLEARED_ATTRIBUTE_ID (0x0604) +#define ZCL_ZIGBEE_APS_TIMEOUT_ATTRIBUTE_ID (0x0610) +#define ZCL_ZIGBEE_IEEE_TRANSMISSION_FAILURE_OVER_THRESHOLD_ATTRIBUTE_ID (0x0611) +#define ZCL_ZIGBEE_IEEE_FRAME_CHECK_SEQUENCE_THRESHOLD_ATTRIBUTE_ID (0x0612) +#define ZCL_ERROR_CERTIFICATE_ATTRIBUTE_ID (0x0613) +#define ZCL_ERROR_SIGNATURE_ATTRIBUTE_ID (0x0614) +#define ZCL_ERROR_PROGRAM_STORAGE_ATTRIBUTE_ID (0x0615) +#define ZCL_PUBLISH_COT_RECEIVED_ATTRIBUTE_ID (0x06C0) +#define ZCL_PUBLISH_COT_ACTIONED_ATTRIBUTE_ID (0x06C1) +#define ZCL_PUBLISH_COT_CANCELLED_ATTRIBUTE_ID (0x06C2) +#define ZCL_PUBLISH_COT_REJECTED_ATTRIBUTE_ID (0x06C3) +#define ZCL_PUBLISH_COS_RECEIVED_ATTRIBUTE_ID (0x06C4) +#define ZCL_PUBLISH_COS_ACTIONED_ATTRIBUTE_ID (0x06C5) +#define ZCL_PUBLISH_COS_CANCELLED_ATTRIBUTE_ID (0x06C6) +#define ZCL_PUBLISH_COS_REJECTED_ATTRIBUTE_ID (0x06C7) +#define ZCL_CHANGE_PASSWORD_RECEIVED_ATTRIBUTE_ID (0x06C8) +#define ZCL_CHANGE_PASSWORD_ACTIONED_ATTRIBUTE_ID (0x06C9) +#define ZCL_CHANGE_PASSWORD_CANCELLED_ATTRIBUTE_ID (0x06CA) +#define ZCL_CHANGE_PASSWORD_REJECTED_ATTRIBUTE_ID (0x06CB) +#define ZCL_SET_EVENT_CONFIGURATION_RECEIVED_ATTRIBUTE_ID (0x06CC) +#define ZCL_SET_EVENT_CONFIGURATION_ACTIONED_ATTRIBUTE_ID (0x06CD) +#define ZCL_SET_EVENT_CONFIGURATION_CANCELLED_ATTRIBUTE_ID (0x06CE) +#define ZCL_SET_EVENT_CONFIGURATION_REJECTED_ATTRIBUTE_ID (0x06CF) +#define ZCL_UPDATE_SITE_ID_RECEIVED_ATTRIBUTE_ID (0x06D0) +#define ZCL_UPDATE_SITE_ID_ACTIONED_ATTRIBUTE_ID (0x06D1) +#define ZCL_UPDATE_SITE_ID_CANCELLED_ATTRIBUTE_ID (0x06D2) +#define ZCL_UPDATE_SITE_ID_REJECTED_ATTRIBUTE_ID (0x06D3) +#define ZCL_UPDATE_CIN_RECEIVED_ATTRIBUTE_ID (0x06D4) +#define ZCL_UPDATE_CIN_ACTIONED_ATTRIBUTE_ID (0x06D5) +#define ZCL_UPDATE_CIN_CANCELLED_ATTRIBUTE_ID (0x06D6) +#define ZCL_UPDATE_CIN_REJECTED_ATTRIBUTE_ID (0x06D7) +#define ZCL_TUNNELING_CLUSTER_NOT_FOUND_ATTRIBUTE_ID (0x0700) +#define ZCL_UNSUPPORTED_PROTOCOL_ATTRIBUTE_ID (0x0701) +#define ZCL_INCORRECT_PROTOCOL_ATTRIBUTE_ID (0x0702) +#define ZCL_REQUEST_TUNNEL_COMMAND_RECEIVED_ATTRIBUTE_ID (0x07C0) +#define ZCL_REQUEST_TUNNEL_COMMAND_REJECTED_ATTRIBUTE_ID (0x07C1) +#define ZCL_REQUEST_TUNNEL_COMMAND_GENERATED_ATTRIBUTE_ID (0x07C2) +#define ZCL_CLOSE_TUNNEL_COMMAND_RECEIVED_ATTRIBUTE_ID (0x07C3) +#define ZCL_CLOSE_TUNNEL_COMMAND_REJECTED_ATTRIBUTE_ID (0x07C4) +#define ZCL_CLOSE_TUNNEL_COMMAND_GENERATED_ATTRIBUTE_ID (0x07C5) +#define ZCL_TRANSFER_DATA_COMMAND_RECEIVED_ATTRIBUTE_ID (0x07C6) +#define ZCL_TRANSFER_DATA_COMMAND_REJECTED_ATTRIBUTE_ID (0x07C7) +#define ZCL_TRANSFER_DATA_COMMAND_GENERATED_ATTRIBUTE_ID (0x07C8) +#define ZCL_TRANSFER_DATA_ERROR_COMMAND_RECEIVED_ATTRIBUTE_ID (0x07C9) +#define ZCL_TRANSFER_DATA_ERROR_COMMAND_REJECTED_ATTRIBUTE_ID (0x07CA) +#define ZCL_TRANSFER_DATA_ERROR_COMMAND_GENERATED_ATTRIBUTE_ID (0x07CB) +#define ZCL_ACK_TRANSFER_DATA_COMMAND_RECEIVED_ATTRIBUTE_ID (0x07CC) +#define ZCL_ACK_TRANSFER_DATA_COMMAND_REJECTED_ATTRIBUTE_ID (0x07CD) +#define ZCL_ACK_TRANSFER_DATA_COMMAND_GENERATED_ATTRIBUTE_ID (0x07CE) +#define ZCL_READY_DATA_COMMAND_RECEIVED_ATTRIBUTE_ID (0x07CF) +#define ZCL_READY_DATA_COMMAND_REJECTED_ATTRIBUTE_ID (0x07D0) +#define ZCL_READY_DATA_COMMAND_GENERATED_ATTRIBUTE_ID (0x07D1) +#define ZCL_GET_SUPPORTED_TUNNEL_PROTOCOLS_COMMAND_RECEIVED_ATTRIBUTE_ID (0x07D2) +#define ZCL_GET_SUPPORTED_TUNNEL_PROTOCOLS_COMMAND_REJECTED_ATTRIBUTE_ID (0x07D3) +#define ZCL_GET_SUPPORTED_TUNNEL_PROTOCOLS_COMMAND_GENERATED_ATTRIBUTE_ID (0x07D4) +#define ZCL_FIRMWARE_READY_FOR_ACTIVATION_ATTRIBUTE_ID (0x0800) +#define ZCL_FIRMWARE_ACTIVATED_ATTRIBUTE_ID (0x0801) +#define ZCL_FIRMWARE_ACTIVATION_FAILURE_ATTRIBUTE_ID (0x0802) +#define ZCL_PATCH_READY_FOR_ACTIVATION_ATTRIBUTE_ID (0x0803) +#define ZCL_PATCH_ACTIVATED_ATTRIBUTE_ID (0x0804) +#define ZCL_PATCH_FAILURE_ATTRIBUTE_ID (0x0805) +#define ZCL_IMAGE_NOTIFY_COMMAND_RECEIVED_ATTRIBUTE_ID (0x08C0) +#define ZCL_IMAGE_NOTIFY_COMMAND_REJECTED_ATTRIBUTE_ID (0x08C1) +#define ZCL_QUERY_NEXT_IMAGE_REQUEST_GENERATED_ATTRIBUTE_ID (0x08C2) +#define ZCL_QUERY_NEXT_IMAGE_RESPONSE_RECEIVED_ATTRIBUTE_ID (0x08C3) +#define ZCL_QUERY_NEXT_IMAGE_RESPONSE_REJECTED_ATTRIBUTE_ID (0x08C4) +#define ZCL_IMAGE_BLOCK_REQUEST_GENERATED_ATTRIBUTE_ID (0x08C5) +#define ZCL_IMAGE_PAGE_REQUEST_GENERATED_ATTRIBUTE_ID (0x08C6) +#define ZCL_IMAGE_BLOCK_RESPONSE_RECEIVED_ATTRIBUTE_ID (0x08C7) +#define ZCL_IMAGE_BLOCK_RESPONSE_REJECTED_ATTRIBUTE_ID (0x08C8) +#define ZCL_UPGRADE_END_REQUEST_GENERATED_ATTRIBUTE_ID (0x08C9) +#define ZCL_UPGRADE_END_RESPONSE_RECEIVED_ATTRIBUTE_ID (0x08CA) +#define ZCL_UPGRADE_END_RESPONSE_REJECTED_ATTRIBUTE_ID (0x08CB) +#define ZCL_QUERY_SPECIFIC_FILE_REQUEST_GENERATED_ATTRIBUTE_ID (0x08CC) +#define ZCL_QUERY_SPECIFIC_FILE_RESPONSE_RECEIVED_ATTRIBUTE_ID (0x08CD) +#define ZCL_QUERY_SPECIFIC_FILE_RESPONSE_REJECTED_ATTRIBUTE_ID (0x08CE) +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_PROVIDER_ID_SERVER_ATTRIBUTE_ID 0x0100 // Ver.: always -#define ZCL_PROVIDER_NAME_ATTRIBUTE_ID 0x0101 // Ver.: always -#define ZCL_PROVIDER_CONTACT_DETAILS_ATTRIBUTE_ID 0x0102 // Ver.: always -#define ZCL_PROPOSED_PROVIDER_ID_ATTRIBUTE_ID 0x0110 // Ver.: always -#define ZCL_PROPOSED_PROVIDER_NAME_ATTRIBUTE_ID 0x0111 // Ver.: always -#define ZCL_PROPOSED_PROVIDER_CHANGE_DATE_TIME_ATTRIBUTE_ID 0x0112 // Ver.: always -#define ZCL_PROPOSED_PROVIDER_CHANGE_CONTROL_ATTRIBUTE_ID 0x0113 // Ver.: always -#define ZCL_RECEIVED_PROVIDER_ID_SERVER_ATTRIBUTE_ID 0x0120 // Ver.: always -#define ZCL_RECEIVED_PROVIDER_NAME_ATTRIBUTE_ID 0x0121 // Ver.: always -#define ZCL_RECEIVED_PROVIDER_CONTACT_DETAILS_ATTRIBUTE_ID 0x0122 // Ver.: always -#define ZCL_RECEIVED_PROPOSED_PROVIDER_ID_ATTRIBUTE_ID 0x0130 // Ver.: always -#define ZCL_RECEIVED_PROPOSED_PROVIDER_NAME_ATTRIBUTE_ID 0x0131 // Ver.: always -#define ZCL_RECEIVED_PROPOSED_PROVIDER_CHANGE_DATE_TIME_ATTRIBUTE_ID 0x0132 // Ver.: always -#define ZCL_RECEIVED_PROPOSED_PROVIDER_CHANGE_CONTROL_ATTRIBUTE_ID 0x0133 // Ver.: always -#define ZCL_CHANGE_OF_TENANCY_UPDATE_DATE_TIME_ATTRIBUTE_ID 0x0200 // Ver.: always -#define ZCL_PROPOSED_TENANCY_CHANGE_CONTROL_ATTRIBUTE_ID 0x0201 // Ver.: always -#define ZCL_WAN_STATUS_ATTRIBUTE_ID 0x0300 // Ver.: always -#define ZCL_LOW_MEDIUM_THRESHOLD_ATTRIBUTE_ID 0x0400 // Ver.: always -#define ZCL_MEDIUM_HIGH_THRESHOLD_ATTRIBUTE_ID 0x0401 // Ver.: always -#define ZCL_DEVICE_MANAGEMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_DEVICE_MANAGEMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Events -// Cluster specification level: se-1.2b-15-0131-02 +#define ZCL_PROVIDER_ID_SERVER_ATTRIBUTE_ID (0x0100) +#define ZCL_PROVIDER_NAME_ATTRIBUTE_ID (0x0101) +#define ZCL_PROVIDER_CONTACT_DETAILS_ATTRIBUTE_ID (0x0102) +#define ZCL_PROPOSED_PROVIDER_ID_ATTRIBUTE_ID (0x0110) +#define ZCL_PROPOSED_PROVIDER_NAME_ATTRIBUTE_ID (0x0111) +#define ZCL_PROPOSED_PROVIDER_CHANGE_DATE_TIME_ATTRIBUTE_ID (0x0112) +#define ZCL_PROPOSED_PROVIDER_CHANGE_CONTROL_ATTRIBUTE_ID (0x0113) +#define ZCL_RECEIVED_PROVIDER_ID_SERVER_ATTRIBUTE_ID (0x0120) +#define ZCL_RECEIVED_PROVIDER_NAME_ATTRIBUTE_ID (0x0121) +#define ZCL_RECEIVED_PROVIDER_CONTACT_DETAILS_ATTRIBUTE_ID (0x0122) +#define ZCL_RECEIVED_PROPOSED_PROVIDER_ID_ATTRIBUTE_ID (0x0130) +#define ZCL_RECEIVED_PROPOSED_PROVIDER_NAME_ATTRIBUTE_ID (0x0131) +#define ZCL_RECEIVED_PROPOSED_PROVIDER_CHANGE_DATE_TIME_ATTRIBUTE_ID (0x0132) +#define ZCL_RECEIVED_PROPOSED_PROVIDER_CHANGE_CONTROL_ATTRIBUTE_ID (0x0133) +#define ZCL_CHANGE_OF_TENANCY_UPDATE_DATE_TIME_ATTRIBUTE_ID (0x0200) +#define ZCL_PROPOSED_TENANCY_CHANGE_CONTROL_ATTRIBUTE_ID (0x0201) +#define ZCL_WAN_STATUS_ATTRIBUTE_ID (0x0300) +#define ZCL_LOW_MEDIUM_THRESHOLD_ATTRIBUTE_ID (0x0400) +#define ZCL_MEDIUM_HIGH_THRESHOLD_ATTRIBUTE_ID (0x0401) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Events // Client attributes -#define ZCL_EVENTS_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_EVENTS_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_EVENTS_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_EVENTS_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) -// Attribute types for cluster: MDU Pairing -// Cluster specification level: se-1.2b-15-0131-02 +// Attribute ids for cluster: MDU Pairing // Client attributes -#define ZCL_MDU_PAIRING_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_MDU_PAIRING_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_MDU_PAIRING_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_MDU_PAIRING_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) -// Attribute types for cluster: Sub-GHz -// Cluster specification level: se-1.2b-15-0131-02 +// Attribute ids for cluster: Sub-GHz // Client attributes -#define ZCL_SUB_GHZ_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_SUB_GHZ_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_SUB_GHZ_CLUSTER_CHANNEL_CHANGE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_SUB_GHZ_CLUSTER_PAGE_28_CHANNEL_MASK_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_SUB_GHZ_CLUSTER_PAGE_29_CHANNEL_MASK_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_SUB_GHZ_CLUSTER_PAGE_30_CHANNEL_MASK_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_SUB_GHZ_CLUSTER_PAGE_31_CHANNEL_MASK_ATTRIBUTE_ID 0x0004 // Ver.: always -#define ZCL_SUB_GHZ_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_SUB_GHZ_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_SUB_GHZ_CLUSTER_CHANNEL_CHANGE_ATTRIBUTE_ID (0x0000) +#define ZCL_SUB_GHZ_CLUSTER_PAGE_28_CHANNEL_MASK_ATTRIBUTE_ID (0x0001) +#define ZCL_SUB_GHZ_CLUSTER_PAGE_29_CHANNEL_MASK_ATTRIBUTE_ID (0x0002) +#define ZCL_SUB_GHZ_CLUSTER_PAGE_30_CHANNEL_MASK_ATTRIBUTE_ID (0x0003) +#define ZCL_SUB_GHZ_CLUSTER_PAGE_31_CHANNEL_MASK_ATTRIBUTE_ID (0x0004) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) -// Attribute types for cluster: Key Establishment -// Cluster specification level: zcl-7.0-07-5123-07 +// Attribute ids for cluster: Key Establishment // Client attributes -#define ZCL_KEY_ESTABLISHMENT_SUITE_CLIENT_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_KEY_ESTABLISHMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_KEY_ESTABLISHMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_KEY_ESTABLISHMENT_SUITE_CLIENT_ATTRIBUTE_ID (0x0000) +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_KEY_ESTABLISHMENT_SUITE_SERVER_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_KEY_ESTABLISHMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_KEY_ESTABLISHMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_KEY_ESTABLISHMENT_SUITE_SERVER_ATTRIBUTE_ID (0x0000) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) -// Attribute types for cluster: Information -// Cluster specification level: ta-1.0-07-5307-07 +// Attribute ids for cluster: Information // Client attributes -#define ZCL_INFORMATION_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_INFORMATION_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_NODE_DESCRIPTION_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_DELIVERY_ENABLE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_PUSH_INFORMATION_TIMER_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_ENABLE_SECURE_CONFIGURATION_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_NUMBER_OF_CONTENTS_ATTRIBUTE_ID 0x0010 // Ver.: always -#define ZCL_CONTENT_ROOT_ID_ATTRIBUTE_ID 0x0011 // Ver.: always -#define ZCL_INFORMATION_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_INFORMATION_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Data Sharing -// Cluster specification level: ta-1.0-07-5307-07 +#define ZCL_NODE_DESCRIPTION_ATTRIBUTE_ID (0x0000) +#define ZCL_DELIVERY_ENABLE_ATTRIBUTE_ID (0x0001) +#define ZCL_PUSH_INFORMATION_TIMER_ATTRIBUTE_ID (0x0002) +#define ZCL_ENABLE_SECURE_CONFIGURATION_ATTRIBUTE_ID (0x0003) +#define ZCL_NUMBER_OF_CONTENTS_ATTRIBUTE_ID (0x0010) +#define ZCL_CONTENT_ROOT_ID_ATTRIBUTE_ID (0x0011) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Data Sharing // Client attributes -#define ZCL_DATA_SHARING_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_DATA_SHARING_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_DEVICE_NAME_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_DEVICE_DESCRIPTION_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_DATA_SHARING_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_DATA_SHARING_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_DEVICE_NAME_ATTRIBUTE_ID (0x0000) +#define ZCL_DEVICE_DESCRIPTION_ATTRIBUTE_ID (0x0001) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) -// Attribute types for cluster: Gaming -// Cluster specification level: ta-1.0-07-5307-07 +// Attribute ids for cluster: Gaming // Client attributes -#define ZCL_GAMING_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_GAMING_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_PLAYER_NAME_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_NB_OF_GAMES_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_LIST_OF_GAMES_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_ANNOUNCEMENT_INTERVAL_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_GAME_ID_ATTRIBUTE_ID 0x0010 // Ver.: always -#define ZCL_NAME_OF_GAME_ATTRIBUTE_ID 0x0011 // Ver.: always -#define ZCL_GAME_MASTER_ATTRIBUTE_ID 0x0012 // Ver.: always -#define ZCL_GAMING_STATUS_ATTRIBUTE_ID 0x0013 // Ver.: always -#define ZCL_CURRENT_NB_OF_PLAYERS_ATTRIBUTE_ID 0x0014 // Ver.: always -#define ZCL_LIST_OF_CURRENT_PLAYERS_ATTRIBUTE_ID 0x0015 // Ver.: always -#define ZCL_MAX_NB_OF_PLAYERS_ATTRIBUTE_ID 0x0016 // Ver.: always -#define ZCL_MIN_NB_OF_PLAYERS_ATTRIBUTE_ID 0x0017 // Ver.: always -#define ZCL_CURRENT_GAME_LEVEL_ATTRIBUTE_ID 0x0018 // Ver.: always -#define ZCL_SCORE_OF_THIS_PLAYER_ATTRIBUTE_ID 0x0019 // Ver.: always -#define ZCL_TIMER1_ATTRIBUTE_ID 0x001A // Ver.: always -#define ZCL_TIMER2_ATTRIBUTE_ID 0x001B // Ver.: always -#define ZCL_TIMER3_ATTRIBUTE_ID 0x001C // Ver.: always -#define ZCL_COUNTER1_ATTRIBUTE_ID 0x001D // Ver.: always -#define ZCL_COUNTER2_ATTRIBUTE_ID 0x001E // Ver.: always -#define ZCL_DOWNLOADABLE_ATTRIBUTE_ID 0x001F // Ver.: always -#define ZCL_GAMING_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_GAMING_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Data Rate Control -// Cluster specification level: ta-1.0-07-5307-07 +#define ZCL_PLAYER_NAME_ATTRIBUTE_ID (0x0000) +#define ZCL_NB_OF_GAMES_ATTRIBUTE_ID (0x0001) +#define ZCL_LIST_OF_GAMES_ATTRIBUTE_ID (0x0002) +#define ZCL_ANNOUNCEMENT_INTERVAL_ATTRIBUTE_ID (0x0003) +#define ZCL_GAME_ID_ATTRIBUTE_ID (0x0010) +#define ZCL_NAME_OF_GAME_ATTRIBUTE_ID (0x0011) +#define ZCL_GAME_MASTER_ATTRIBUTE_ID (0x0012) +#define ZCL_GAMING_STATUS_ATTRIBUTE_ID (0x0013) +#define ZCL_CURRENT_NB_OF_PLAYERS_ATTRIBUTE_ID (0x0014) +#define ZCL_LIST_OF_CURRENT_PLAYERS_ATTRIBUTE_ID (0x0015) +#define ZCL_MAX_NB_OF_PLAYERS_ATTRIBUTE_ID (0x0016) +#define ZCL_MIN_NB_OF_PLAYERS_ATTRIBUTE_ID (0x0017) +#define ZCL_CURRENT_GAME_LEVEL_ATTRIBUTE_ID (0x0018) +#define ZCL_SCORE_OF_THIS_PLAYER_ATTRIBUTE_ID (0x0019) +#define ZCL_TIMER1_ATTRIBUTE_ID (0x001A) +#define ZCL_TIMER2_ATTRIBUTE_ID (0x001B) +#define ZCL_TIMER3_ATTRIBUTE_ID (0x001C) +#define ZCL_COUNTER1_ATTRIBUTE_ID (0x001D) +#define ZCL_COUNTER2_ATTRIBUTE_ID (0x001E) +#define ZCL_DOWNLOADABLE_ATTRIBUTE_ID (0x001F) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Data Rate Control // Client attributes -#define ZCL_DATA_RATE_CONTROL_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_DATA_RATE_CONTROL_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_AVERAGE_LATENCY_REQUIREMENT_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_MAX_LATENCY_REQUIREMENT_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_BANDWIDTH_REQUIREMENT_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_DATA_RATE_CONTROL_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_DATA_RATE_CONTROL_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_AVERAGE_LATENCY_REQUIREMENT_ATTRIBUTE_ID (0x0000) +#define ZCL_MAX_LATENCY_REQUIREMENT_ATTRIBUTE_ID (0x0001) +#define ZCL_BANDWIDTH_REQUIREMENT_ATTRIBUTE_ID (0x0002) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) -// Attribute types for cluster: Voice over ZigBee -// Cluster specification level: ta-1.0-07-5307-07 +// Attribute ids for cluster: Voice over ZigBee // Client attributes -#define ZCL_VOICE_OVER_ZIGBEE_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_VOICE_OVER_ZIGBEE_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_CODEC_TYPE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_SAMPLING_FREQUENCY_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_CODEC_RATE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_ESTABLISHMENT_TIMEOUT_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_CODEC_TYPE_SUB1_ATTRIBUTE_ID 0x0004 // Ver.: always -#define ZCL_CODEC_TYPE_SUB2_ATTRIBUTE_ID 0x0005 // Ver.: always -#define ZCL_CODEC_TYPE_SUB3_ATTRIBUTE_ID 0x0006 // Ver.: always -#define ZCL_COMPRESSION_TYPE_ATTRIBUTE_ID 0x0007 // Ver.: always -#define ZCL_COMPRESSION_RATE_ATTRIBUTE_ID 0x0008 // Ver.: always -#define ZCL_OPTION_FLAGS_ATTRIBUTE_ID 0x0009 // Ver.: always -#define ZCL_THRESHOLD_ATTRIBUTE_ID 0x000A // Ver.: always -#define ZCL_VOICE_OVER_ZIGBEE_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_VOICE_OVER_ZIGBEE_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Chatting -// Cluster specification level: ta-1.0-07-5307-07 +#define ZCL_CODEC_TYPE_ATTRIBUTE_ID (0x0000) +#define ZCL_SAMPLING_FREQUENCY_ATTRIBUTE_ID (0x0001) +#define ZCL_CODEC_RATE_ATTRIBUTE_ID (0x0002) +#define ZCL_ESTABLISHMENT_TIMEOUT_ATTRIBUTE_ID (0x0003) +#define ZCL_CODEC_TYPE_SUB1_ATTRIBUTE_ID (0x0004) +#define ZCL_CODEC_TYPE_SUB2_ATTRIBUTE_ID (0x0005) +#define ZCL_CODEC_TYPE_SUB3_ATTRIBUTE_ID (0x0006) +#define ZCL_COMPRESSION_TYPE_ATTRIBUTE_ID (0x0007) +#define ZCL_COMPRESSION_RATE_ATTRIBUTE_ID (0x0008) +#define ZCL_OPTION_FLAGS_ATTRIBUTE_ID (0x0009) +#define ZCL_THRESHOLD_ATTRIBUTE_ID (0x000A) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Chatting // Client attributes -#define ZCL_CHATTING_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_CHATTING_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_U_ID_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_NICKNAME_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_C_ID_ATTRIBUTE_ID 0x0010 // Ver.: always -#define ZCL_NAME_ATTRIBUTE_ID 0x0011 // Ver.: always -#define ZCL_ENABLE_ADD_CHAT_ATTRIBUTE_ID 0x0020 // Ver.: always -#define ZCL_CHATTING_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_CHATTING_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_U_ID_ATTRIBUTE_ID (0x0000) +#define ZCL_NICKNAME_ATTRIBUTE_ID (0x0001) +#define ZCL_C_ID_ATTRIBUTE_ID (0x0010) +#define ZCL_NAME_ATTRIBUTE_ID (0x0011) +#define ZCL_ENABLE_ADD_CHAT_ATTRIBUTE_ID (0x0020) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) -// Attribute types for cluster: Payment -// Cluster specification level: ta-1.0-07-5307-07 +// Attribute ids for cluster: Payment // Client attributes -#define ZCL_PAYMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_PAYMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_PAYMENT_USER_ID_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_USER_TYPE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_PAYMENT_SERVICE_ID_ATTRIBUTE_ID 0x0010 // Ver.: always -#define ZCL_PAYMENT_SERVICE_PROVIDER_ID_ATTRIBUTE_ID 0x0011 // Ver.: always -#define ZCL_TOTEM_ID_ATTRIBUTE_ID 0x0012 // Ver.: always -#define ZCL_CURRENCY_ATTRIBUTE_ID 0x0020 // Ver.: always -#define ZCL_PRICE_TRAILING_DIGIT_ATTRIBUTE_ID 0x0021 // Ver.: always -#define ZCL_PRICE_ATTRIBUTE_ID 0x0022 // Ver.: always -#define ZCL_GOOD_ID_ATTRIBUTE_ID 0x0030 // Ver.: always -#define ZCL_SERIAL_NUMBER_ATTRIBUTE_ID 0x0031 // Ver.: always -#define ZCL_PAYMENT_TIMESTAMP_ATTRIBUTE_ID 0x0032 // Ver.: always -#define ZCL_TRANS_ID_ATTRIBUTE_ID 0x0033 // Ver.: always -#define ZCL_TRANS_STATUS_ATTRIBUTE_ID 0x0034 // Ver.: always -#define ZCL_PAYMENT_STATUS_ATTRIBUTE_ID 0x0035 // Ver.: always -#define ZCL_PAYMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_PAYMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Billing -// Cluster specification level: ta-1.0-07-5307-07 +#define ZCL_PAYMENT_USER_ID_ATTRIBUTE_ID (0x0000) +#define ZCL_USER_TYPE_ATTRIBUTE_ID (0x0001) +#define ZCL_PAYMENT_SERVICE_ID_ATTRIBUTE_ID (0x0010) +#define ZCL_PAYMENT_SERVICE_PROVIDER_ID_ATTRIBUTE_ID (0x0011) +#define ZCL_TOTEM_ID_ATTRIBUTE_ID (0x0012) +#define ZCL_CURRENCY_ATTRIBUTE_ID (0x0020) +#define ZCL_PRICE_TRAILING_DIGIT_ATTRIBUTE_ID (0x0021) +#define ZCL_PRICE_ATTRIBUTE_ID (0x0022) +#define ZCL_GOOD_ID_ATTRIBUTE_ID (0x0030) +#define ZCL_SERIAL_NUMBER_ATTRIBUTE_ID (0x0031) +#define ZCL_PAYMENT_TIMESTAMP_ATTRIBUTE_ID (0x0032) +#define ZCL_TRANS_ID_ATTRIBUTE_ID (0x0033) +#define ZCL_TRANS_STATUS_ATTRIBUTE_ID (0x0034) +#define ZCL_PAYMENT_STATUS_ATTRIBUTE_ID (0x0035) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Billing // Client attributes -#define ZCL_BILLING_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_BILLING_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_USER_ID_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_SERVICE_ID_ATTRIBUTE_ID 0x0010 // Ver.: always -#define ZCL_SERVICE_PROVIDER_ID_ATTRIBUTE_ID 0x0011 // Ver.: always -#define ZCL_SESSION_INTERVAL_ATTRIBUTE_ID 0x0012 // Ver.: always -#define ZCL_TIMESTAMP_ATTRIBUTE_ID 0x0020 // Ver.: always -#define ZCL_DURATION_ATTRIBUTE_ID 0x0021 // Ver.: always -#define ZCL_BILLING_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_BILLING_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Appliance Identification -// Cluster specification level: UNKNOWN +#define ZCL_USER_ID_ATTRIBUTE_ID (0x0000) +#define ZCL_SERVICE_ID_ATTRIBUTE_ID (0x0010) +#define ZCL_SERVICE_PROVIDER_ID_ATTRIBUTE_ID (0x0011) +#define ZCL_SESSION_INTERVAL_ATTRIBUTE_ID (0x0012) +#define ZCL_TIMESTAMP_ATTRIBUTE_ID (0x0020) +#define ZCL_DURATION_ATTRIBUTE_ID (0x0021) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Appliance Identification // Client attributes -#define ZCL_APPLIANCE_IDENTIFICATION_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_APPLIANCE_IDENTIFICATION_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_BASIC_IDENTIFICATION_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_APPLIANCE_COMPANY_NAME_ATTRIBUTE_ID 0x0010 // Ver.: always -#define ZCL_COMPANY_ID_ATTRIBUTE_ID 0x0011 // Ver.: always -#define ZCL_BRAND_NAME_ATTRIBUTE_ID 0x0012 // Ver.: always -#define ZCL_BRAND_ID_ATTRIBUTE_ID 0x0013 // Ver.: always -#define ZCL_APPLIANCE_MODEL_ATTRIBUTE_ID 0x0014 // Ver.: always -#define ZCL_APPLIANCE_PART_NUMBER_ATTRIBUTE_ID 0x0015 // Ver.: always -#define ZCL_APPLIANCE_PRODUCT_REVISION_ATTRIBUTE_ID 0x0016 // Ver.: always -#define ZCL_APPLIANCE_SOFTWARE_REVISION_ATTRIBUTE_ID 0x0017 // Ver.: always -#define ZCL_PRODUCT_TYPE_NAME_ATTRIBUTE_ID 0x0018 // Ver.: always -#define ZCL_PRODUCT_TYPE_ID_ATTRIBUTE_ID 0x0019 // Ver.: always -#define ZCL_CECED_SPECIFICATION_VERSION_ATTRIBUTE_ID 0x001A // Ver.: always -#define ZCL_APPLIANCE_IDENTIFICATION_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_APPLIANCE_IDENTIFICATION_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Meter Identification -// Cluster specification level: UNKNOWN +#define ZCL_BASIC_IDENTIFICATION_ATTRIBUTE_ID (0x0000) +#define ZCL_APPLIANCE_COMPANY_NAME_ATTRIBUTE_ID (0x0010) +#define ZCL_COMPANY_ID_ATTRIBUTE_ID (0x0011) +#define ZCL_BRAND_NAME_ATTRIBUTE_ID (0x0012) +#define ZCL_BRAND_ID_ATTRIBUTE_ID (0x0013) +#define ZCL_APPLIANCE_MODEL_ATTRIBUTE_ID (0x0014) +#define ZCL_APPLIANCE_PART_NUMBER_ATTRIBUTE_ID (0x0015) +#define ZCL_APPLIANCE_PRODUCT_REVISION_ATTRIBUTE_ID (0x0016) +#define ZCL_APPLIANCE_SOFTWARE_REVISION_ATTRIBUTE_ID (0x0017) +#define ZCL_PRODUCT_TYPE_NAME_ATTRIBUTE_ID (0x0018) +#define ZCL_PRODUCT_TYPE_ID_ATTRIBUTE_ID (0x0019) +#define ZCL_CECED_SPECIFICATION_VERSION_ATTRIBUTE_ID (0x001A) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Meter Identification // Client attributes -#define ZCL_METER_IDENTIFICATION_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_METER_IDENTIFICATION_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_METER_COMPANY_NAME_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_METER_TYPE_ID_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_DATA_QUALITY_ID_ATTRIBUTE_ID 0x0004 // Ver.: always -#define ZCL_CUSTOMER_NAME_ATTRIBUTE_ID 0x0005 // Ver.: always -#define ZCL_METER_MODEL_ATTRIBUTE_ID 0x0006 // Ver.: always -#define ZCL_METER_PART_NUMBER_ATTRIBUTE_ID 0x0007 // Ver.: always -#define ZCL_METER_PRODUCT_REVISION_ATTRIBUTE_ID 0x0008 // Ver.: always -#define ZCL_METER_SOFTWARE_REVISION_ATTRIBUTE_ID 0x000A // Ver.: always -#define ZCL_UTILITY_NAME_ATTRIBUTE_ID 0x000B // Ver.: always -#define ZCL_POD_ATTRIBUTE_ID 0x000C // Ver.: always -#define ZCL_AVAILABLE_POWER_ATTRIBUTE_ID 0x000D // Ver.: always -#define ZCL_POWER_THRESHOLD_ATTRIBUTE_ID 0x000E // Ver.: always -#define ZCL_METER_IDENTIFICATION_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_METER_IDENTIFICATION_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Appliance Events and Alert -// Cluster specification level: UNKNOWN +#define ZCL_METER_COMPANY_NAME_ATTRIBUTE_ID (0x0000) +#define ZCL_METER_TYPE_ID_ATTRIBUTE_ID (0x0001) +#define ZCL_DATA_QUALITY_ID_ATTRIBUTE_ID (0x0004) +#define ZCL_CUSTOMER_NAME_ATTRIBUTE_ID (0x0005) +#define ZCL_METER_MODEL_ATTRIBUTE_ID (0x0006) +#define ZCL_METER_PART_NUMBER_ATTRIBUTE_ID (0x0007) +#define ZCL_METER_PRODUCT_REVISION_ATTRIBUTE_ID (0x0008) +#define ZCL_METER_SOFTWARE_REVISION_ATTRIBUTE_ID (0x000A) +#define ZCL_UTILITY_NAME_ATTRIBUTE_ID (0x000B) +#define ZCL_POD_ATTRIBUTE_ID (0x000C) +#define ZCL_AVAILABLE_POWER_ATTRIBUTE_ID (0x000D) +#define ZCL_POWER_THRESHOLD_ATTRIBUTE_ID (0x000E) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Appliance Events and Alert // Client attributes -#define ZCL_APPLIANCE_EVENTS_AND_ALERT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_APPLIANCE_EVENTS_AND_ALERT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_APPLIANCE_EVENTS_AND_ALERT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_APPLIANCE_EVENTS_AND_ALERT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) -// Attribute types for cluster: Appliance Statistics -// Cluster specification level: UNKNOWN +// Attribute ids for cluster: Appliance Statistics // Client attributes -#define ZCL_APPLIANCE_STATISTICS_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_APPLIANCE_STATISTICS_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_LOG_MAX_SIZE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_LOG_QUEUE_MAX_SIZE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_APPLIANCE_STATISTICS_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_APPLIANCE_STATISTICS_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_LOG_MAX_SIZE_ATTRIBUTE_ID (0x0000) +#define ZCL_LOG_QUEUE_MAX_SIZE_ATTRIBUTE_ID (0x0001) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) -// Attribute types for cluster: Electrical Measurement -// Cluster specification level: UNKNOWN +// Attribute ids for cluster: Electrical Measurement // Client attributes -#define ZCL_ELECTRICAL_MEASUREMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_ELECTRICAL_MEASUREMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_MEASUREMENT_TYPE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_DC_VOLTAGE_ATTRIBUTE_ID 0x0100 // Ver.: always -#define ZCL_DC_VOLTAGE_MIN_ATTRIBUTE_ID 0x0101 // Ver.: always -#define ZCL_DC_VOLTAGE_MAX_ATTRIBUTE_ID 0x0102 // Ver.: always -#define ZCL_DC_CURRENT_ATTRIBUTE_ID 0x0103 // Ver.: always -#define ZCL_DC_CURRENT_MIN_ATTRIBUTE_ID 0x0104 // Ver.: always -#define ZCL_DC_CURRENT_MAX_ATTRIBUTE_ID 0x0105 // Ver.: always -#define ZCL_DC_POWER_ATTRIBUTE_ID 0x0106 // Ver.: always -#define ZCL_DC_POWER_MIN_ATTRIBUTE_ID 0x0107 // Ver.: always -#define ZCL_DC_POWER_MAX_ATTRIBUTE_ID 0x0108 // Ver.: always -#define ZCL_DC_VOLTAGE_MULTIPLIER_ATTRIBUTE_ID 0x0200 // Ver.: always -#define ZCL_DC_VOLTAGE_DIVISOR_ATTRIBUTE_ID 0x0201 // Ver.: always -#define ZCL_DC_CURRENT_MULTIPLIER_ATTRIBUTE_ID 0x0202 // Ver.: always -#define ZCL_DC_CURRENT_DIVISOR_ATTRIBUTE_ID 0x0203 // Ver.: always -#define ZCL_DC_POWER_MULTIPLIER_ATTRIBUTE_ID 0x0204 // Ver.: always -#define ZCL_DC_POWER_DIVISOR_ATTRIBUTE_ID 0x0205 // Ver.: always -#define ZCL_AC_FREQUENCY_ATTRIBUTE_ID 0x0300 // Ver.: always -#define ZCL_AC_FREQUENCY_MIN_ATTRIBUTE_ID 0x0301 // Ver.: always -#define ZCL_AC_FREQUENCY_MAX_ATTRIBUTE_ID 0x0302 // Ver.: always -#define ZCL_NEUTRAL_CURRENT_ATTRIBUTE_ID 0x0303 // Ver.: always -#define ZCL_TOTAL_ACTIVE_POWER_ATTRIBUTE_ID 0x0304 // Ver.: always -#define ZCL_TOTAL_REACTIVE_POWER_ATTRIBUTE_ID 0x0305 // Ver.: always -#define ZCL_TOTAL_APPARENT_POWER_ATTRIBUTE_ID 0x0306 // Ver.: always -#define ZCL_MEASURED_1ST_HARMONIC_CURRENT_ATTRIBUTE_ID 0x0307 // Ver.: always -#define ZCL_MEASURED_3RD_HARMONIC_CURRENT_ATTRIBUTE_ID 0x0308 // Ver.: always -#define ZCL_MEASURED_5TH_HARMONIC_CURRENT_ATTRIBUTE_ID 0x0309 // Ver.: always -#define ZCL_MEASURED_7TH_HARMONIC_CURRENT_ATTRIBUTE_ID 0x030A // Ver.: always -#define ZCL_MEASURED_9TH_HARMONIC_CURRENT_ATTRIBUTE_ID 0x030B // Ver.: always -#define ZCL_MEASURED_11TH_HARMONIC_CURRENT_ATTRIBUTE_ID 0x030C // Ver.: always -#define ZCL_MEASURED_PHASE_1ST_HARMONIC_CURRENT_ATTRIBUTE_ID 0x030D // Ver.: always -#define ZCL_MEASURED_PHASE_3RD_HARMONIC_CURRENT_ATTRIBUTE_ID 0x030E // Ver.: always -#define ZCL_MEASURED_PHASE_5TH_HARMONIC_CURRENT_ATTRIBUTE_ID 0x030F // Ver.: always -#define ZCL_MEASURED_PHASE_7TH_HARMONIC_CURRENT_ATTRIBUTE_ID 0x0310 // Ver.: always -#define ZCL_MEASURED_PHASE_9TH_HARMONIC_CURRENT_ATTRIBUTE_ID 0x0311 // Ver.: always -#define ZCL_MEASURED_PHASE_11TH_HARMONIC_CURRENT_ATTRIBUTE_ID 0x0312 // Ver.: always -#define ZCL_AC_FREQUENCY_MULTIPLIER_ATTRIBUTE_ID 0x0400 // Ver.: always -#define ZCL_AC_FREQUENCY_DIVISOR_ATTRIBUTE_ID 0x0401 // Ver.: always -#define ZCL_POWER_MULTIPLIER_ATTRIBUTE_ID 0x0402 // Ver.: always -#define ZCL_POWER_DIVISOR_ATTRIBUTE_ID 0x0403 // Ver.: always -#define ZCL_HARMONIC_CURRENT_MULTIPLIER_ATTRIBUTE_ID 0x0404 // Ver.: always -#define ZCL_PHASE_HARMONIC_CURRENT_MULTIPLIER_ATTRIBUTE_ID 0x0405 // Ver.: always -#define ZCL_INSTANTANEOUS_VOLTAGE_ATTRIBUTE_ID 0x0500 // Ver.: always -#define ZCL_INSTANTANEOUS_LINE_CURRENT_ATTRIBUTE_ID 0x0501 // Ver.: always -#define ZCL_INSTANTANEOUS_ACTIVE_CURRENT_ATTRIBUTE_ID 0x0502 // Ver.: always -#define ZCL_INSTANTANEOUS_REACTIVE_CURRENT_ATTRIBUTE_ID 0x0503 // Ver.: always -#define ZCL_INSTANTANEOUS_POWER_ATTRIBUTE_ID 0x0504 // Ver.: always -#define ZCL_RMS_VOLTAGE_ATTRIBUTE_ID 0x0505 // Ver.: always -#define ZCL_RMS_VOLTAGE_MIN_ATTRIBUTE_ID 0x0506 // Ver.: always -#define ZCL_RMS_VOLTAGE_MAX_ATTRIBUTE_ID 0x0507 // Ver.: always -#define ZCL_RMS_CURRENT_ATTRIBUTE_ID 0x0508 // Ver.: always -#define ZCL_RMS_CURRENT_MIN_ATTRIBUTE_ID 0x0509 // Ver.: always -#define ZCL_RMS_CURRENT_MAX_ATTRIBUTE_ID 0x050A // Ver.: always -#define ZCL_ACTIVE_POWER_ATTRIBUTE_ID 0x050B // Ver.: always -#define ZCL_ACTIVE_POWER_MIN_ATTRIBUTE_ID 0x050C // Ver.: always -#define ZCL_ACTIVE_POWER_MAX_ATTRIBUTE_ID 0x050D // Ver.: always -#define ZCL_REACTIVE_POWER_ATTRIBUTE_ID 0x050E // Ver.: always -#define ZCL_APPARENT_POWER_ATTRIBUTE_ID 0x050F // Ver.: always -#define ZCL_AC_POWER_FACTOR_ATTRIBUTE_ID 0x0510 // Ver.: always -#define ZCL_AVERAGE_RMS_VOLTAGE_MEASUREMENT_PERIOD_ATTRIBUTE_ID 0x0511 // Ver.: always -#define ZCL_AVERAGE_RMS_UNDER_VOLTAGE_COUNTER_ATTRIBUTE_ID 0x0513 // Ver.: always -#define ZCL_RMS_EXTREME_OVER_VOLTAGE_PERIOD_ATTRIBUTE_ID 0x0514 // Ver.: always -#define ZCL_RMS_EXTREME_UNDER_VOLTAGE_PERIOD_ATTRIBUTE_ID 0x0515 // Ver.: always -#define ZCL_RMS_VOLTAGE_SAG_PERIOD_ATTRIBUTE_ID 0x0516 // Ver.: always -#define ZCL_RMS_VOLTAGE_SWELL_PERIOD_ATTRIBUTE_ID 0x0517 // Ver.: always -#define ZCL_AC_VOLTAGE_MULTIPLIER_ATTRIBUTE_ID 0x0600 // Ver.: always -#define ZCL_AC_VOLTAGE_DIVISOR_ATTRIBUTE_ID 0x0601 // Ver.: always -#define ZCL_AC_CURRENT_MULTIPLIER_ATTRIBUTE_ID 0x0602 // Ver.: always -#define ZCL_AC_CURRENT_DIVISOR_ATTRIBUTE_ID 0x0603 // Ver.: always -#define ZCL_AC_POWER_MULTIPLIER_ATTRIBUTE_ID 0x0604 // Ver.: always -#define ZCL_AC_POWER_DIVISOR_ATTRIBUTE_ID 0x0605 // Ver.: always -#define ZCL_DC_OVERLOAD_ALARMS_MASK_ATTRIBUTE_ID 0x0700 // Ver.: always -#define ZCL_DC_VOLTAGE_OVERLOAD_ATTRIBUTE_ID 0x0701 // Ver.: always -#define ZCL_DC_CURRENT_OVERLOAD_ATTRIBUTE_ID 0x0702 // Ver.: always -#define ZCL_AC_OVERLOAD_ALARMS_MASK_ATTRIBUTE_ID 0x0800 // Ver.: always -#define ZCL_AC_VOLTAGE_OVERLOAD_ATTRIBUTE_ID 0x0801 // Ver.: always -#define ZCL_AC_CURRENT_OVERLOAD_ATTRIBUTE_ID 0x0802 // Ver.: always -#define ZCL_AC_POWER_OVERLOAD_ATTRIBUTE_ID 0x0803 // Ver.: always -#define ZCL_AC_REACTIVE_POWER_OVERLOAD_ATTRIBUTE_ID 0x0804 // Ver.: always -#define ZCL_AVERAGE_RMS_OVER_VOLTAGE_ATTRIBUTE_ID 0x0805 // Ver.: always -#define ZCL_AVERAGE_RMS_UNDER_VOLTAGE_ATTRIBUTE_ID 0x0806 // Ver.: always -#define ZCL_RMS_EXTREME_OVER_VOLTAGE_ATTRIBUTE_ID 0x0807 // Ver.: always -#define ZCL_RMS_EXTREME_UNDER_VOLTAGE_ATTRIBUTE_ID 0x0808 // Ver.: always -#define ZCL_RMS_VOLTAGE_SAG_ATTRIBUTE_ID 0x0809 // Ver.: always -#define ZCL_RMS_VOLTAGE_SWELL_ATTRIBUTE_ID 0x080A // Ver.: always -#define ZCL_LINE_CURRENT_PHASE_B_ATTRIBUTE_ID 0x0901 // Ver.: always -#define ZCL_ACTIVE_CURRENT_PHASE_B_ATTRIBUTE_ID 0x0902 // Ver.: always -#define ZCL_REACTIVE_CURRENT_PHASE_B_ATTRIBUTE_ID 0x0903 // Ver.: always -#define ZCL_RMS_VOLTAGE_PHASE_B_ATTRIBUTE_ID 0x0905 // Ver.: always -#define ZCL_RMS_VOLTAGE_MIN_PHASE_B_ATTRIBUTE_ID 0x0906 // Ver.: always -#define ZCL_RMS_VOLTAGE_MAX_PHASE_B_ATTRIBUTE_ID 0x0907 // Ver.: always -#define ZCL_RMS_CURRENT_PHASE_B_ATTRIBUTE_ID 0x0908 // Ver.: always -#define ZCL_RMS_CURRENT_MIN_PHASE_B_ATTRIBUTE_ID 0x0909 // Ver.: always -#define ZCL_RMS_CURRENT_MAX_PHASE_B_ATTRIBUTE_ID 0x090A // Ver.: always -#define ZCL_ACTIVE_POWER_PHASE_B_ATTRIBUTE_ID 0x090B // Ver.: always -#define ZCL_ACTIVE_POWER_MIN_PHASE_B_ATTRIBUTE_ID 0x090C // Ver.: always -#define ZCL_ACTIVE_POWER_MAX_PHASE_B_ATTRIBUTE_ID 0x090D // Ver.: always -#define ZCL_REACTIVE_POWER_PHASE_B_ATTRIBUTE_ID 0x090E // Ver.: always -#define ZCL_APPARENT_POWER_PHASE_B_ATTRIBUTE_ID 0x090F // Ver.: always -#define ZCL_POWER_FACTOR_PHASE_B_ATTRIBUTE_ID 0x0910 // Ver.: always -#define ZCL_AVERAGE_RMS_VOLTAGE_MEASUREMENT_PERIOD_PHASE_B_ATTRIBUTE_ID 0x0911 // Ver.: always -#define ZCL_AVERAGE_RMS_OVER_VOLTAGE_COUNTER_PHASE_B_ATTRIBUTE_ID 0x0912 // Ver.: always -#define ZCL_AVERAGE_RMS_UNDER_VOLTAGE_COUNTER_PHASE_B_ATTRIBUTE_ID 0x0913 // Ver.: always -#define ZCL_RMS_EXTREME_OVER_VOLTAGE_PERIOD_PHASE_B_ATTRIBUTE_ID 0x0914 // Ver.: always -#define ZCL_RMS_EXTREME_UNDER_VOLTAGE_PERIOD_PHASE_B_ATTRIBUTE_ID 0x0915 // Ver.: always -#define ZCL_RMS_VOLTAGE_SAG_PERIOD_PHASE_B_ATTRIBUTE_ID 0x0916 // Ver.: always -#define ZCL_RMS_VOLTAGE_SWELL_PERIOD_PHASE_B_ATTRIBUTE_ID 0x0917 // Ver.: always -#define ZCL_LINE_CURRENT_PHASE_C_ATTRIBUTE_ID 0x0A01 // Ver.: always -#define ZCL_ACTIVE_CURRENT_PHASE_C_ATTRIBUTE_ID 0x0A02 // Ver.: always -#define ZCL_REACTIVE_CURRENT_PHASE_C_ATTRIBUTE_ID 0x0A03 // Ver.: always -#define ZCL_RMS_VOLTAGE_PHASE_C_ATTRIBUTE_ID 0x0A05 // Ver.: always -#define ZCL_RMS_VOLTAGE_MIN_PHASE_C_ATTRIBUTE_ID 0x0A06 // Ver.: always -#define ZCL_RMS_VOLTAGE_MAX_PHASE_C_ATTRIBUTE_ID 0x0A07 // Ver.: always -#define ZCL_RMS_CURRENT_PHASE_C_ATTRIBUTE_ID 0x0A08 // Ver.: always -#define ZCL_RMS_CURRENT_MIN_PHASE_C_ATTRIBUTE_ID 0x0A09 // Ver.: always -#define ZCL_RMS_CURRENT_MAX_PHASE_C_ATTRIBUTE_ID 0x0A0A // Ver.: always -#define ZCL_ACTIVE_POWER_PHASE_C_ATTRIBUTE_ID 0x0A0B // Ver.: always -#define ZCL_ACTIVE_POWER_MIN_PHASE_C_ATTRIBUTE_ID 0x0A0C // Ver.: always -#define ZCL_ACTIVE_POWER_MAX_PHASE_C_ATTRIBUTE_ID 0x0A0D // Ver.: always -#define ZCL_REACTIVE_POWER_PHASE_C_ATTRIBUTE_ID 0x0A0E // Ver.: always -#define ZCL_APPARENT_POWER_PHASE_C_ATTRIBUTE_ID 0x0A0F // Ver.: always -#define ZCL_POWER_FACTOR_PHASE_C_ATTRIBUTE_ID 0x0A10 // Ver.: always -#define ZCL_AVERAGE_RMS_VOLTAGE_MEASUREMENT_PERIOD_PHASE_C_ATTRIBUTE_ID 0x0A11 // Ver.: always -#define ZCL_AVERAGE_RMS_OVER_VOLTAGE_COUNTER_PHASE_C_ATTRIBUTE_ID 0x0A12 // Ver.: always -#define ZCL_AVERAGE_RMS_UNDER_VOLTAGE_COUNTER_PHASE_C_ATTRIBUTE_ID 0x0A13 // Ver.: always -#define ZCL_RMS_EXTREME_OVER_VOLTAGE_PERIOD_PHASE_C_ATTRIBUTE_ID 0x0A14 // Ver.: always -#define ZCL_RMS_EXTREME_UNDER_VOLTAGE_PERIOD_PHASE_C_ATTRIBUTE_ID 0x0A15 // Ver.: always -#define ZCL_RMS_VOLTAGE_SAG_PERIOD_PHASE_C_ATTRIBUTE_ID 0x0A16 // Ver.: always -#define ZCL_RMS_VOLTAGE_SWELL_PERIOD_PHASE_C_ATTRIBUTE_ID 0x0A17 // Ver.: always -#define ZCL_ELECTRICAL_MEASUREMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_ELECTRICAL_MEASUREMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Diagnostics -// Cluster specification level: UNKNOWN +#define ZCL_MEASUREMENT_TYPE_ATTRIBUTE_ID (0x0000) +#define ZCL_DC_VOLTAGE_ATTRIBUTE_ID (0x0100) +#define ZCL_DC_VOLTAGE_MIN_ATTRIBUTE_ID (0x0101) +#define ZCL_DC_VOLTAGE_MAX_ATTRIBUTE_ID (0x0102) +#define ZCL_DC_CURRENT_ATTRIBUTE_ID (0x0103) +#define ZCL_DC_CURRENT_MIN_ATTRIBUTE_ID (0x0104) +#define ZCL_DC_CURRENT_MAX_ATTRIBUTE_ID (0x0105) +#define ZCL_DC_POWER_ATTRIBUTE_ID (0x0106) +#define ZCL_DC_POWER_MIN_ATTRIBUTE_ID (0x0107) +#define ZCL_DC_POWER_MAX_ATTRIBUTE_ID (0x0108) +#define ZCL_DC_VOLTAGE_MULTIPLIER_ATTRIBUTE_ID (0x0200) +#define ZCL_DC_VOLTAGE_DIVISOR_ATTRIBUTE_ID (0x0201) +#define ZCL_DC_CURRENT_MULTIPLIER_ATTRIBUTE_ID (0x0202) +#define ZCL_DC_CURRENT_DIVISOR_ATTRIBUTE_ID (0x0203) +#define ZCL_DC_POWER_MULTIPLIER_ATTRIBUTE_ID (0x0204) +#define ZCL_DC_POWER_DIVISOR_ATTRIBUTE_ID (0x0205) +#define ZCL_AC_FREQUENCY_ATTRIBUTE_ID (0x0300) +#define ZCL_AC_FREQUENCY_MIN_ATTRIBUTE_ID (0x0301) +#define ZCL_AC_FREQUENCY_MAX_ATTRIBUTE_ID (0x0302) +#define ZCL_NEUTRAL_CURRENT_ATTRIBUTE_ID (0x0303) +#define ZCL_TOTAL_ACTIVE_POWER_ATTRIBUTE_ID (0x0304) +#define ZCL_TOTAL_REACTIVE_POWER_ATTRIBUTE_ID (0x0305) +#define ZCL_TOTAL_APPARENT_POWER_ATTRIBUTE_ID (0x0306) +#define ZCL_MEASURED_1_ST_HARMONIC_CURRENT_ATTRIBUTE_ID (0x0307) +#define ZCL_MEASURED_3_RD_HARMONIC_CURRENT_ATTRIBUTE_ID (0x0308) +#define ZCL_MEASURED_5_TH_HARMONIC_CURRENT_ATTRIBUTE_ID (0x0309) +#define ZCL_MEASURED_7_TH_HARMONIC_CURRENT_ATTRIBUTE_ID (0x030A) +#define ZCL_MEASURED_9_TH_HARMONIC_CURRENT_ATTRIBUTE_ID (0x030B) +#define ZCL_MEASURED_11_TH_HARMONIC_CURRENT_ATTRIBUTE_ID (0x030C) +#define ZCL_MEASURED_PHASE_1_ST_HARMONIC_CURRENT_ATTRIBUTE_ID (0x030D) +#define ZCL_MEASURED_PHASE_3_RD_HARMONIC_CURRENT_ATTRIBUTE_ID (0x030E) +#define ZCL_MEASURED_PHASE_5_TH_HARMONIC_CURRENT_ATTRIBUTE_ID (0x030F) +#define ZCL_MEASURED_PHASE_7_TH_HARMONIC_CURRENT_ATTRIBUTE_ID (0x0310) +#define ZCL_MEASURED_PHASE_9_TH_HARMONIC_CURRENT_ATTRIBUTE_ID (0x0311) +#define ZCL_MEASURED_PHASE_11_TH_HARMONIC_CURRENT_ATTRIBUTE_ID (0x0312) +#define ZCL_AC_FREQUENCY_MULTIPLIER_ATTRIBUTE_ID (0x0400) +#define ZCL_AC_FREQUENCY_DIVISOR_ATTRIBUTE_ID (0x0401) +#define ZCL_POWER_MULTIPLIER_ATTRIBUTE_ID (0x0402) +#define ZCL_POWER_DIVISOR_ATTRIBUTE_ID (0x0403) +#define ZCL_HARMONIC_CURRENT_MULTIPLIER_ATTRIBUTE_ID (0x0404) +#define ZCL_PHASE_HARMONIC_CURRENT_MULTIPLIER_ATTRIBUTE_ID (0x0405) +#define ZCL_INSTANTANEOUS_VOLTAGE_ATTRIBUTE_ID (0x0500) +#define ZCL_INSTANTANEOUS_LINE_CURRENT_ATTRIBUTE_ID (0x0501) +#define ZCL_INSTANTANEOUS_ACTIVE_CURRENT_ATTRIBUTE_ID (0x0502) +#define ZCL_INSTANTANEOUS_REACTIVE_CURRENT_ATTRIBUTE_ID (0x0503) +#define ZCL_INSTANTANEOUS_POWER_ATTRIBUTE_ID (0x0504) +#define ZCL_RMS_VOLTAGE_ATTRIBUTE_ID (0x0505) +#define ZCL_RMS_VOLTAGE_MIN_ATTRIBUTE_ID (0x0506) +#define ZCL_RMS_VOLTAGE_MAX_ATTRIBUTE_ID (0x0507) +#define ZCL_RMS_CURRENT_ATTRIBUTE_ID (0x0508) +#define ZCL_RMS_CURRENT_MIN_ATTRIBUTE_ID (0x0509) +#define ZCL_RMS_CURRENT_MAX_ATTRIBUTE_ID (0x050A) +#define ZCL_ACTIVE_POWER_ATTRIBUTE_ID (0x050B) +#define ZCL_ACTIVE_POWER_MIN_ATTRIBUTE_ID (0x050C) +#define ZCL_ACTIVE_POWER_MAX_ATTRIBUTE_ID (0x050D) +#define ZCL_REACTIVE_POWER_ATTRIBUTE_ID (0x050E) +#define ZCL_APPARENT_POWER_ATTRIBUTE_ID (0x050F) +#define ZCL_AC_POWER_FACTOR_ATTRIBUTE_ID (0x0510) +#define ZCL_AVERAGE_RMS_VOLTAGE_MEASUREMENT_PERIOD_ATTRIBUTE_ID (0x0511) +#define ZCL_AVERAGE_RMS_UNDER_VOLTAGE_COUNTER_ATTRIBUTE_ID (0x0513) +#define ZCL_RMS_EXTREME_OVER_VOLTAGE_PERIOD_ATTRIBUTE_ID (0x0514) +#define ZCL_RMS_EXTREME_UNDER_VOLTAGE_PERIOD_ATTRIBUTE_ID (0x0515) +#define ZCL_RMS_VOLTAGE_SAG_PERIOD_ATTRIBUTE_ID (0x0516) +#define ZCL_RMS_VOLTAGE_SWELL_PERIOD_ATTRIBUTE_ID (0x0517) +#define ZCL_AC_VOLTAGE_MULTIPLIER_ATTRIBUTE_ID (0x0600) +#define ZCL_AC_VOLTAGE_DIVISOR_ATTRIBUTE_ID (0x0601) +#define ZCL_AC_CURRENT_MULTIPLIER_ATTRIBUTE_ID (0x0602) +#define ZCL_AC_CURRENT_DIVISOR_ATTRIBUTE_ID (0x0603) +#define ZCL_AC_POWER_MULTIPLIER_ATTRIBUTE_ID (0x0604) +#define ZCL_AC_POWER_DIVISOR_ATTRIBUTE_ID (0x0605) +#define ZCL_DC_OVERLOAD_ALARMS_MASK_ATTRIBUTE_ID (0x0700) +#define ZCL_DC_VOLTAGE_OVERLOAD_ATTRIBUTE_ID (0x0701) +#define ZCL_DC_CURRENT_OVERLOAD_ATTRIBUTE_ID (0x0702) +#define ZCL_AC_OVERLOAD_ALARMS_MASK_ATTRIBUTE_ID (0x0800) +#define ZCL_AC_VOLTAGE_OVERLOAD_ATTRIBUTE_ID (0x0801) +#define ZCL_AC_CURRENT_OVERLOAD_ATTRIBUTE_ID (0x0802) +#define ZCL_AC_POWER_OVERLOAD_ATTRIBUTE_ID (0x0803) +#define ZCL_AC_REACTIVE_POWER_OVERLOAD_ATTRIBUTE_ID (0x0804) +#define ZCL_AVERAGE_RMS_OVER_VOLTAGE_ATTRIBUTE_ID (0x0805) +#define ZCL_AVERAGE_RMS_UNDER_VOLTAGE_ATTRIBUTE_ID (0x0806) +#define ZCL_RMS_EXTREME_OVER_VOLTAGE_ATTRIBUTE_ID (0x0807) +#define ZCL_RMS_EXTREME_UNDER_VOLTAGE_ATTRIBUTE_ID (0x0808) +#define ZCL_RMS_VOLTAGE_SAG_ATTRIBUTE_ID (0x0809) +#define ZCL_RMS_VOLTAGE_SWELL_ATTRIBUTE_ID (0x080A) +#define ZCL_LINE_CURRENT_PHASE_B_ATTRIBUTE_ID (0x0901) +#define ZCL_ACTIVE_CURRENT_PHASE_B_ATTRIBUTE_ID (0x0902) +#define ZCL_REACTIVE_CURRENT_PHASE_B_ATTRIBUTE_ID (0x0903) +#define ZCL_RMS_VOLTAGE_PHASE_B_ATTRIBUTE_ID (0x0905) +#define ZCL_RMS_VOLTAGE_MIN_PHASE_B_ATTRIBUTE_ID (0x0906) +#define ZCL_RMS_VOLTAGE_MAX_PHASE_B_ATTRIBUTE_ID (0x0907) +#define ZCL_RMS_CURRENT_PHASE_B_ATTRIBUTE_ID (0x0908) +#define ZCL_RMS_CURRENT_MIN_PHASE_B_ATTRIBUTE_ID (0x0909) +#define ZCL_RMS_CURRENT_MAX_PHASE_B_ATTRIBUTE_ID (0x090A) +#define ZCL_ACTIVE_POWER_PHASE_B_ATTRIBUTE_ID (0x090B) +#define ZCL_ACTIVE_POWER_MIN_PHASE_B_ATTRIBUTE_ID (0x090C) +#define ZCL_ACTIVE_POWER_MAX_PHASE_B_ATTRIBUTE_ID (0x090D) +#define ZCL_REACTIVE_POWER_PHASE_B_ATTRIBUTE_ID (0x090E) +#define ZCL_APPARENT_POWER_PHASE_B_ATTRIBUTE_ID (0x090F) +#define ZCL_POWER_FACTOR_PHASE_B_ATTRIBUTE_ID (0x0910) +#define ZCL_AVERAGE_RMS_VOLTAGE_MEASUREMENT_PERIOD_PHASE_B_ATTRIBUTE_ID (0x0911) +#define ZCL_AVERAGE_RMS_OVER_VOLTAGE_COUNTER_PHASE_B_ATTRIBUTE_ID (0x0912) +#define ZCL_AVERAGE_RMS_UNDER_VOLTAGE_COUNTER_PHASE_B_ATTRIBUTE_ID (0x0913) +#define ZCL_RMS_EXTREME_OVER_VOLTAGE_PERIOD_PHASE_B_ATTRIBUTE_ID (0x0914) +#define ZCL_RMS_EXTREME_UNDER_VOLTAGE_PERIOD_PHASE_B_ATTRIBUTE_ID (0x0915) +#define ZCL_RMS_VOLTAGE_SAG_PERIOD_PHASE_B_ATTRIBUTE_ID (0x0916) +#define ZCL_RMS_VOLTAGE_SWELL_PERIOD_PHASE_B_ATTRIBUTE_ID (0x0917) +#define ZCL_LINE_CURRENT_PHASE_C_ATTRIBUTE_ID (0x0A01) +#define ZCL_ACTIVE_CURRENT_PHASE_C_ATTRIBUTE_ID (0x0A02) +#define ZCL_REACTIVE_CURRENT_PHASE_C_ATTRIBUTE_ID (0x0A03) +#define ZCL_RMS_VOLTAGE_PHASE_C_ATTRIBUTE_ID (0x0A05) +#define ZCL_RMS_VOLTAGE_MIN_PHASE_C_ATTRIBUTE_ID (0x0A06) +#define ZCL_RMS_VOLTAGE_MAX_PHASE_C_ATTRIBUTE_ID (0x0A07) +#define ZCL_RMS_CURRENT_PHASE_C_ATTRIBUTE_ID (0x0A08) +#define ZCL_RMS_CURRENT_MIN_PHASE_C_ATTRIBUTE_ID (0x0A09) +#define ZCL_RMS_CURRENT_MAX_PHASE_C_ATTRIBUTE_ID (0x0A0A) +#define ZCL_ACTIVE_POWER_PHASE_C_ATTRIBUTE_ID (0x0A0B) +#define ZCL_ACTIVE_POWER_MIN_PHASE_C_ATTRIBUTE_ID (0x0A0C) +#define ZCL_ACTIVE_POWER_MAX_PHASE_C_ATTRIBUTE_ID (0x0A0D) +#define ZCL_REACTIVE_POWER_PHASE_C_ATTRIBUTE_ID (0x0A0E) +#define ZCL_APPARENT_POWER_PHASE_C_ATTRIBUTE_ID (0x0A0F) +#define ZCL_POWER_FACTOR_PHASE_C_ATTRIBUTE_ID (0x0A10) +#define ZCL_AVERAGE_RMS_VOLTAGE_MEASUREMENT_PERIOD_PHASE_C_ATTRIBUTE_ID (0x0A11) +#define ZCL_AVERAGE_RMS_OVER_VOLTAGE_COUNTER_PHASE_C_ATTRIBUTE_ID (0x0A12) +#define ZCL_AVERAGE_RMS_UNDER_VOLTAGE_COUNTER_PHASE_C_ATTRIBUTE_ID (0x0A13) +#define ZCL_RMS_EXTREME_OVER_VOLTAGE_PERIOD_PHASE_C_ATTRIBUTE_ID (0x0A14) +#define ZCL_RMS_EXTREME_UNDER_VOLTAGE_PERIOD_PHASE_C_ATTRIBUTE_ID (0x0A15) +#define ZCL_RMS_VOLTAGE_SAG_PERIOD_PHASE_C_ATTRIBUTE_ID (0x0A16) +#define ZCL_RMS_VOLTAGE_SWELL_PERIOD_PHASE_C_ATTRIBUTE_ID (0x0A17) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Diagnostics // Client attributes -#define ZCL_DIAGNOSTICS_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_DIAGNOSTICS_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_NUMBER_OF_RESETS_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_PERSISTENT_MEMORY_WRITES_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_MAC_RX_BCAST_ATTRIBUTE_ID 0x0100 // Ver.: always -#define ZCL_MAC_TX_BCAST_ATTRIBUTE_ID 0x0101 // Ver.: always -#define ZCL_MAC_RX_UCAST_ATTRIBUTE_ID 0x0102 // Ver.: always -#define ZCL_MAC_TX_UCAST_ATTRIBUTE_ID 0x0103 // Ver.: always -#define ZCL_MAC_TX_UCAST_RETRY_ATTRIBUTE_ID 0x0104 // Ver.: always -#define ZCL_MAC_TX_UCAST_FAIL_ATTRIBUTE_ID 0x0105 // Ver.: always -#define ZCL_APS_RX_BCAST_ATTRIBUTE_ID 0x0106 // Ver.: always -#define ZCL_APS_TX_BCAST_ATTRIBUTE_ID 0x0107 // Ver.: always -#define ZCL_APS_RX_UCAST_ATTRIBUTE_ID 0x0108 // Ver.: always -#define ZCL_APS_UCAST_SUCCESS_ATTRIBUTE_ID 0x0109 // Ver.: always -#define ZCL_APS_TX_UCAST_RETRY_ATTRIBUTE_ID 0x010A // Ver.: always -#define ZCL_APS_TX_UCAST_FAIL_ATTRIBUTE_ID 0x010B // Ver.: always -#define ZCL_ROUTE_DISC_INITIATED_ATTRIBUTE_ID 0x010C // Ver.: always -#define ZCL_NEIGHBOR_ADDED_ATTRIBUTE_ID 0x010D // Ver.: always -#define ZCL_NEIGHBOR_REMOVED_ATTRIBUTE_ID 0x010E // Ver.: always -#define ZCL_NEIGHBOR_STALE_ATTRIBUTE_ID 0x010F // Ver.: always -#define ZCL_JOIN_INDICATION_ATTRIBUTE_ID 0x0110 // Ver.: always -#define ZCL_CHILD_MOVED_ATTRIBUTE_ID 0x0111 // Ver.: always -#define ZCL_NWK_FC_FAILURE_ATTRIBUTE_ID 0x0112 // Ver.: always -#define ZCL_APS_FC_FAILURE_ATTRIBUTE_ID 0x0113 // Ver.: always -#define ZCL_APS_UNAUTHORIZED_KEY_ATTRIBUTE_ID 0x0114 // Ver.: always -#define ZCL_NWK_DECRYPT_FAILURE_ATTRIBUTE_ID 0x0115 // Ver.: always -#define ZCL_APS_DECRYPT_FAILURE_ATTRIBUTE_ID 0x0116 // Ver.: always -#define ZCL_PACKET_BUFFER_ALLOC_FAILURES_ATTRIBUTE_ID 0x0117 // Ver.: always -#define ZCL_RELAYED_UNICAST_ATTRIBUTE_ID 0x0118 // Ver.: always -#define ZCL_PHY_TO_MAC_QUEUE_LIMIT_REACHED_ATTRIBUTE_ID 0x0119 // Ver.: always -#define ZCL_PACKET_VALIDATE_DROP_COUNT_ATTRIBUTE_ID 0x011A // Ver.: always -#define ZCL_AVERAGE_MAC_RETRY_PER_APS_MSG_SENT_ATTRIBUTE_ID 0x011B // Ver.: always -#define ZCL_LAST_MESSAGE_LQI_ATTRIBUTE_ID 0x011C // Ver.: always -#define ZCL_LAST_MESSAGE_RSSI_ATTRIBUTE_ID 0x011D // Ver.: always -#define ZCL_DIAGNOSTICS_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_DIAGNOSTICS_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: ZLL Commissioning -// Cluster specification level: zll-1.0-11-0037-10 +#define ZCL_NUMBER_OF_RESETS_ATTRIBUTE_ID (0x0000) +#define ZCL_PERSISTENT_MEMORY_WRITES_ATTRIBUTE_ID (0x0001) +#define ZCL_MAC_RX_BCAST_ATTRIBUTE_ID (0x0100) +#define ZCL_MAC_TX_BCAST_ATTRIBUTE_ID (0x0101) +#define ZCL_MAC_RX_UCAST_ATTRIBUTE_ID (0x0102) +#define ZCL_MAC_TX_UCAST_ATTRIBUTE_ID (0x0103) +#define ZCL_MAC_TX_UCAST_RETRY_ATTRIBUTE_ID (0x0104) +#define ZCL_MAC_TX_UCAST_FAIL_ATTRIBUTE_ID (0x0105) +#define ZCL_APS_RX_BCAST_ATTRIBUTE_ID (0x0106) +#define ZCL_APS_TX_BCAST_ATTRIBUTE_ID (0x0107) +#define ZCL_APS_RX_UCAST_ATTRIBUTE_ID (0x0108) +#define ZCL_APS_UCAST_SUCCESS_ATTRIBUTE_ID (0x0109) +#define ZCL_APS_TX_UCAST_RETRY_ATTRIBUTE_ID (0x010A) +#define ZCL_APS_TX_UCAST_FAIL_ATTRIBUTE_ID (0x010B) +#define ZCL_ROUTE_DISC_INITIATED_ATTRIBUTE_ID (0x010C) +#define ZCL_NEIGHBOR_ADDED_ATTRIBUTE_ID (0x010D) +#define ZCL_NEIGHBOR_REMOVED_ATTRIBUTE_ID (0x010E) +#define ZCL_NEIGHBOR_STALE_ATTRIBUTE_ID (0x010F) +#define ZCL_JOIN_INDICATION_ATTRIBUTE_ID (0x0110) +#define ZCL_CHILD_MOVED_ATTRIBUTE_ID (0x0111) +#define ZCL_NWK_FC_FAILURE_ATTRIBUTE_ID (0x0112) +#define ZCL_APS_FC_FAILURE_ATTRIBUTE_ID (0x0113) +#define ZCL_APS_UNAUTHORIZED_KEY_ATTRIBUTE_ID (0x0114) +#define ZCL_NWK_DECRYPT_FAILURE_ATTRIBUTE_ID (0x0115) +#define ZCL_APS_DECRYPT_FAILURE_ATTRIBUTE_ID (0x0116) +#define ZCL_PACKET_BUFFER_ALLOC_FAILURES_ATTRIBUTE_ID (0x0117) +#define ZCL_RELAYED_UNICAST_ATTRIBUTE_ID (0x0118) +#define ZCL_PHY_TO_MAC_QUEUE_LIMIT_REACHED_ATTRIBUTE_ID (0x0119) +#define ZCL_PACKET_VALIDATE_DROP_COUNT_ATTRIBUTE_ID (0x011A) +#define ZCL_AVERAGE_MAC_RETRY_PER_APS_MSG_SENT_ATTRIBUTE_ID (0x011B) +#define ZCL_LAST_MESSAGE_LQI_ATTRIBUTE_ID (0x011C) +#define ZCL_LAST_MESSAGE_RSSI_ATTRIBUTE_ID (0x011D) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: ZLL Commissioning // Client attributes -#define ZCL_ZLL_COMMISSIONING_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_ZLL_COMMISSIONING_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_ZLL_COMMISSIONING_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_ZLL_COMMISSIONING_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) -// Attribute types for cluster: Sample Mfg Specific Cluster -// Cluster specification level: UNKNOWN +// Attribute ids for cluster: Sample Mfg Specific Cluster // Client attributes -#define ZCL_SAMPLE_MFG_SPECIFIC_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_SAMPLE_MFG_SPECIFIC_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_ATTRIBUTE_ONE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_ATTRIBUTE_TWO_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_SAMPLE_MFG_SPECIFIC_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_SAMPLE_MFG_SPECIFIC_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_ATTRIBUTE_ONE_ATTRIBUTE_ID (0x0000) +#define ZCL_ATTRIBUTE_TWO_ATTRIBUTE_ID (0x0001) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) -// Attribute types for cluster: Sample Mfg Specific Cluster 2 -// Cluster specification level: UNKNOWN +// Attribute ids for cluster: Sample Mfg Specific Cluster 2 // Client attributes -#define ZCL_SAMPLE_MFG_SPECIFIC_CLUSTER_2_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_SAMPLE_MFG_SPECIFIC_CLUSTER_2_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_ATTRIBUTE_THREE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_ATTRIBUTE_FOUR_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_SAMPLE_MFG_SPECIFIC_CLUSTER_2_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_SAMPLE_MFG_SPECIFIC_CLUSTER_2_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_ATTRIBUTE_THREE_ATTRIBUTE_ID (0x0000) +#define ZCL_ATTRIBUTE_FOUR_ATTRIBUTE_ID (0x0001) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) -// Attribute types for cluster: Configuration Cluster -// Cluster specification level: UNKNOWN +// Attribute ids for cluster: Configuration Cluster // Client attributes -#define ZCL_OTA_CONFIGURATION_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_OTA_CONFIGURATION_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_TOKENS_LOCKED_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_OTA_CONFIGURATION_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_OTA_CONFIGURATION_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_TOKENS_LOCKED_ATTRIBUTE_ID (0x0000) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) -// Attribute types for cluster: MFGLIB Cluster -// Cluster specification level: UNKNOWN +// Attribute ids for cluster: MFGLIB Cluster // Client attributes -#define ZCL_MFGLIB_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_MFGLIB_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_PACKETS_RECEIVED_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_SAVED_RSSI_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_SAVED_LQI_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_MFGLIB_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_MFGLIB_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_PACKETS_RECEIVED_ATTRIBUTE_ID (0x0000) +#define ZCL_SAVED_RSSI_ATTRIBUTE_ID (0x0001) +#define ZCL_SAVED_LQI_ATTRIBUTE_ID (0x0002) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) -// Attribute types for cluster: SL Works With All Hubs -// Cluster specification level: UNKNOWN +// Attribute ids for cluster: SL Works With All Hubs // Client attributes -#define ZCL_SL_WWAH_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_SL_WWAH_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_SL_DISABLE_OTA_DOWNGRADES_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_SL_MGMT_LEAVE_WITHOUT_REJOIN_ENABLED_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_SL_NWK_RETRY_COUNT_ATTRIBUTE_ID 0x0004 // Ver.: always -#define ZCL_SL_MAC_RETRY_COUNT_ATTRIBUTE_ID 0x0005 // Ver.: always -#define ZCL_SL_ROUTER_CHECKIN_ENABLED_ATTRIBUTE_ID 0x0006 // Ver.: always -#define ZCL_SL_TOUCHLINK_INTERPAN_ENABLED_ATTRIBUTE_ID 0x0007 // Ver.: always -#define ZCL_SL_WWAH_PARENT_CLASSIFICATION_ENABLED_ATTRIBUTE_ID 0x0008 // Ver.: always -#define ZCL_SL_WWAH_APP_EVENT_RETRY_ENABLED_ATTRIBUTE_ID 0x0009 // Ver.: always -#define ZCL_SL_WWAH_APP_EVENT_RETRY_QUEUE_SIZE_ATTRIBUTE_ID 0x000A // Ver.: always -#define ZCL_SL_WWAH_REJOIN_ENABLED_ATTRIBUTE_ID 0x000B // Ver.: always -#define ZCL_SL_MAC_POLL_FAILURE_WAIT_TIME_ATTRIBUTE_ID 0x000C // Ver.: always -#define ZCL_SL_CONFIGURATION_MODE_ENABLED_ATTRIBUTE_ID 0x000D // Ver.: always -#define ZCL_SL_CURRENT_DEBUG_REPORT_ID_ATTRIBUTE_ID 0x000E // Ver.: always -#define ZCL_SL_TC_SECURITY_ON_NTWK_KEY_ROTATION_ENABLED_ATTRIBUTE_ID 0x000F // Ver.: always -#define ZCL_SL_WWAH_BAD_PARENT_RECOVERY_ENABLED_ATTRIBUTE_ID 0x0010 // Ver.: always -#define ZCL_SL_PENDING_NETWORK_UPDATE_CHANNEL_ATTRIBUTE_ID 0x0011 // Ver.: always -#define ZCL_SL_PENDING_NETWORK_UPDATE_PANID_ATTRIBUTE_ID 0x0012 // Ver.: always -#define ZCL_SL_OTA_MAX_OFFLINE_DURATION_ATTRIBUTE_ID 0x0013 // Ver.: always -#define ZCL_SL_WWAH_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_SL_WWAH_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -#endif // SILABS_EMBER_AF_ATTRIBUTE_ID +#define ZCL_SL_DISABLE_OTA_DOWNGRADES_ATTRIBUTE_ID (0x0002) +#define ZCL_SL_MGMT_LEAVE_WITHOUT_REJOIN_ENABLED_ATTRIBUTE_ID (0x0003) +#define ZCL_SL_NWK_RETRY_COUNT_ATTRIBUTE_ID (0x0004) +#define ZCL_SL_MAC_RETRY_COUNT_ATTRIBUTE_ID (0x0005) +#define ZCL_SL_ROUTER_CHECKIN_ENABLED_ATTRIBUTE_ID (0x0006) +#define ZCL_SL_TOUCHLINK_INTERPAN_ENABLED_ATTRIBUTE_ID (0x0007) +#define ZCL_SL_WWAH_PARENT_CLASSIFICATION_ENABLED_ATTRIBUTE_ID (0x0008) +#define ZCL_SL_WWAH_APP_EVENT_RETRY_ENABLED_ATTRIBUTE_ID (0x0009) +#define ZCL_SL_WWAH_APP_EVENT_RETRY_QUEUE_SIZE_ATTRIBUTE_ID (0x000A) +#define ZCL_SL_WWAH_REJOIN_ENABLED_ATTRIBUTE_ID (0x000B) +#define ZCL_SL_MAC_POLL_FAILURE_WAIT_TIME_ATTRIBUTE_ID (0x000C) +#define ZCL_SL_CONFIGURATION_MODE_ENABLED_ATTRIBUTE_ID (0x000D) +#define ZCL_SL_CURRENT_DEBUG_REPORT_ID_ATTRIBUTE_ID (0x000E) +#define ZCL_SL_TC_SECURITY_ON_NTWK_KEY_ROTATION_ENABLED_ATTRIBUTE_ID (0x000F) +#define ZCL_SL_WWAH_BAD_PARENT_RECOVERY_ENABLED_ATTRIBUTE_ID (0x0010) +#define ZCL_SL_PENDING_NETWORK_UPDATE_CHANNEL_ATTRIBUTE_ID (0x0011) +#define ZCL_SL_PENDING_NETWORK_UPDATE_PANID_ATTRIBUTE_ID (0x0012) +#define ZCL_SL_OTA_MAX_OFFLINE_DURATION_ATTRIBUTE_ID (0x0013) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) diff --git a/examples/lighting-app/lighting-common/gen/attribute-size.h b/examples/lighting-app/lighting-common/gen/attribute-size.h index 8ab0dae3944631..8d8659ee7ece2e 100644 --- a/examples/lighting-app/lighting-common/gen/attribute-size.h +++ b/examples/lighting-app/lighting-common/gen/attribute-size.h @@ -1,23 +1,7 @@ -/** - * - * 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 + * 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. @@ -31,19 +15,20 @@ * 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 SILABS_ATTRIBUTE_SIZE -#define SILABS_ATTRIBUTE_SIZE +// Prevent multiple inclusion +#pragma once -// Used ZCL attribute type sizes -ZCL_BITMAP16_ATTRIBUTE_TYPE, 2, ZCL_BITMAP24_ATTRIBUTE_TYPE, 3, ZCL_BITMAP32_ATTRIBUTE_TYPE, 4, ZCL_BITMAP48_ATTRIBUTE_TYPE, 6, - ZCL_BITMAP64_ATTRIBUTE_TYPE, 8, ZCL_BITMAP8_ATTRIBUTE_TYPE, 1, ZCL_BOOLEAN_ATTRIBUTE_TYPE, 1, ZCL_DATA8_ATTRIBUTE_TYPE, 1, - ZCL_ENUM16_ATTRIBUTE_TYPE, 2, ZCL_ENUM8_ATTRIBUTE_TYPE, 1, ZCL_FLOAT_SINGLE_ATTRIBUTE_TYPE, 4, ZCL_IEEE_ADDRESS_ATTRIBUTE_TYPE, - 8, ZCL_INT16S_ATTRIBUTE_TYPE, 2, ZCL_INT16U_ATTRIBUTE_TYPE, 2, ZCL_INT24S_ATTRIBUTE_TYPE, 3, ZCL_INT24U_ATTRIBUTE_TYPE, 3, - ZCL_INT32S_ATTRIBUTE_TYPE, 4, ZCL_INT32U_ATTRIBUTE_TYPE, 4, ZCL_INT48U_ATTRIBUTE_TYPE, 6, ZCL_INT56U_ATTRIBUTE_TYPE, 7, - ZCL_INT8S_ATTRIBUTE_TYPE, 1, ZCL_INT8U_ATTRIBUTE_TYPE, 1, ZCL_SECURITY_KEY_ATTRIBUTE_TYPE, 16, ZCL_UTC_TIME_ATTRIBUTE_TYPE, 4, -#endif // SILABS_ATTRIBUTE_SIZE +// ZCL attribute sizes +ZCL_DATA8_ATTRIBUTE_TYPE, 1, ZCL_DATA16_ATTRIBUTE_TYPE, 2, ZCL_DATA24_ATTRIBUTE_TYPE, 3, ZCL_DATA32_ATTRIBUTE_TYPE, 4, + ZCL_DATA40_ATTRIBUTE_TYPE, 5, ZCL_DATA48_ATTRIBUTE_TYPE, 6, ZCL_DATA56_ATTRIBUTE_TYPE, 7, ZCL_DATA64_ATTRIBUTE_TYPE, 8, + ZCL_BOOLEAN_ATTRIBUTE_TYPE, 1, ZCL_BITMAP8_ATTRIBUTE_TYPE, 1, ZCL_BITMAP16_ATTRIBUTE_TYPE, 2, ZCL_BITMAP24_ATTRIBUTE_TYPE, 3, + ZCL_BITMAP32_ATTRIBUTE_TYPE, 4, ZCL_BITMAP40_ATTRIBUTE_TYPE, 5, ZCL_BITMAP48_ATTRIBUTE_TYPE, 6, ZCL_BITMAP56_ATTRIBUTE_TYPE, 7, + ZCL_BITMAP64_ATTRIBUTE_TYPE, 8, ZCL_INT8U_ATTRIBUTE_TYPE, 1, ZCL_INT16U_ATTRIBUTE_TYPE, 2, ZCL_INT24U_ATTRIBUTE_TYPE, 3, + ZCL_INT32U_ATTRIBUTE_TYPE, 4, ZCL_INT40U_ATTRIBUTE_TYPE, 5, ZCL_INT48U_ATTRIBUTE_TYPE, 6, ZCL_INT56U_ATTRIBUTE_TYPE, 7, + ZCL_INT64U_ATTRIBUTE_TYPE, 8, ZCL_INT8S_ATTRIBUTE_TYPE, 1, ZCL_INT16S_ATTRIBUTE_TYPE, 2, ZCL_INT24S_ATTRIBUTE_TYPE, 3, + ZCL_INT32S_ATTRIBUTE_TYPE, 4, ZCL_INT40S_ATTRIBUTE_TYPE, 5, ZCL_INT48S_ATTRIBUTE_TYPE, 6, ZCL_INT56S_ATTRIBUTE_TYPE, 7, + ZCL_INT64S_ATTRIBUTE_TYPE, 8, ZCL_ENUM8_ATTRIBUTE_TYPE, 1, ZCL_ENUM16_ATTRIBUTE_TYPE, 2, ZCL_FLOAT_SEMI_ATTRIBUTE_TYPE, 2, + ZCL_FLOAT_SINGLE_ATTRIBUTE_TYPE, 4, ZCL_FLOAT_DOUBLE_ATTRIBUTE_TYPE, 8, ZCL_TIME_OF_DAY_ATTRIBUTE_TYPE, 4, + ZCL_DATE_ATTRIBUTE_TYPE, 4, ZCL_UTC_TIME_ATTRIBUTE_TYPE, 4, ZCL_CLUSTER_ID_ATTRIBUTE_TYPE, 2, ZCL_ATTRIBUTE_ID_ATTRIBUTE_TYPE, + 2, ZCL_BACNET_OID_ATTRIBUTE_TYPE, 4, ZCL_IEEE_ADDRESS_ATTRIBUTE_TYPE, 8, ZCL_SECURITY_KEY_ATTRIBUTE_TYPE, 16, diff --git a/examples/lighting-app/lighting-common/gen/attribute-type.h b/examples/lighting-app/lighting-common/gen/attribute-type.h index 35879dabb2ed6e..bc5d1bae34b365 100644 --- a/examples/lighting-app/lighting-common/gen/attribute-type.h +++ b/examples/lighting-app/lighting-common/gen/attribute-type.h @@ -1,23 +1,7 @@ -/** - * - * 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 + * 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. @@ -31,13 +15,9 @@ * 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 SILABS_EMBER_AF_ATTRIBUTE_TYPES -#define SILABS_EMBER_AF_ATTRIBUTE_TYPES +// Prevent multiple inclusion +#pragma once // ZCL attribute types enum @@ -97,7 +77,5 @@ enum ZCL_BACNET_OID_ATTRIBUTE_TYPE = 0xEA, // BACnet OID ZCL_IEEE_ADDRESS_ATTRIBUTE_TYPE = 0xF0, // IEEE address ZCL_SECURITY_KEY_ATTRIBUTE_TYPE = 0xF1, // 128-bit security key - ZCL_UNKNOWN_ATTRIBUTE_TYPE = 0xFF // Unknown - + ZCL_UNKNOWN_ATTRIBUTE_TYPE = 0xFF, // Unknown }; -#endif // SILABS_EMBER_AF_ATTRIBUTE_TYPES diff --git a/examples/lighting-app/lighting-common/gen/call-command-handler.cpp b/examples/lighting-app/lighting-common/gen/call-command-handler.cpp new file mode 100644 index 00000000000000..0b9ff9100e931b --- /dev/null +++ b/examples/lighting-app/lighting-common/gen/call-command-handler.cpp @@ -0,0 +1,330 @@ + +/* + * + * 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. + */ + +#include + +#include "af-structs.h" +#include "call-command-handler.h" +#include "callback.h" +#include "command-id.h" +#include "util.h" + +using namespace chip; + +EmberAfStatus emberAfLevelControlClusterServerCommandParse(EmberAfClusterCommand * cmd); +EmberAfStatus emberAfOnOffClusterServerCommandParse(EmberAfClusterCommand * cmd); + +static EmberAfStatus status(bool wasHandled, bool clusterExists, bool mfgSpecific) +{ + if (wasHandled) + { + return EMBER_ZCL_STATUS_SUCCESS; + } + else if (mfgSpecific) + { + return EMBER_ZCL_STATUS_UNSUP_MANUF_CLUSTER_COMMAND; + } + else if (clusterExists) + { + return EMBER_ZCL_STATUS_UNSUP_COMMAND; + } + else + { + return EMBER_ZCL_STATUS_UNSUPPORTED_CLUSTER; + } +} + +// Main command parsing controller. +EmberAfStatus emberAfClusterSpecificCommandParse(EmberAfClusterCommand * cmd) +{ + EmberAfStatus result = status(false, false, cmd->mfgSpecific); + if (cmd->direction == (uint8_t) ZCL_DIRECTION_SERVER_TO_CLIENT && + emberAfContainsClientWithMfgCode(cmd->apsFrame->destinationEndpoint, cmd->apsFrame->clusterId, cmd->mfgCode)) + { + switch (cmd->apsFrame->clusterId) + { + default: + // Unrecognized cluster ID, error status will apply. + break; + } + } + else if (cmd->direction == (uint8_t) ZCL_DIRECTION_CLIENT_TO_SERVER && + emberAfContainsServerWithMfgCode(cmd->apsFrame->destinationEndpoint, cmd->apsFrame->clusterId, cmd->mfgCode)) + { + switch (cmd->apsFrame->clusterId) + { + case ZCL_LEVEL_CONTROL_CLUSTER_ID: + result = emberAfLevelControlClusterServerCommandParse(cmd); + break; + case ZCL_ON_OFF_CLUSTER_ID: + result = emberAfOnOffClusterServerCommandParse(cmd); + break; + default: + // Unrecognized cluster ID, error status will apply. + break; + } + } + return result; +} + +// Cluster specific command parsing + +EmberAfStatus emberAfLevelControlClusterServerCommandParse(EmberAfClusterCommand * cmd) +{ + bool wasHandled = false; + + if (!cmd->mfgSpecific) + { + switch (cmd->commandId) + { + case ZCL_MOVE_COMMAND_ID: { + uint32_t payloadOffset = cmd->payloadStartIndex; + uint8_t moveMode; + uint8_t rate; + uint8_t optionMask; + uint8_t optionOverride; + + if (cmd->bufLen < payloadOffset + 1) + { + return EMBER_ZCL_STATUS_MALFORMED_COMMAND; + } + moveMode = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); + payloadOffset += 1; + if (cmd->bufLen < payloadOffset + 1) + { + return EMBER_ZCL_STATUS_MALFORMED_COMMAND; + } + rate = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); + payloadOffset += 1; + if (cmd->bufLen < payloadOffset + 1) + { + return EMBER_ZCL_STATUS_MALFORMED_COMMAND; + } + optionMask = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); + payloadOffset += 1; + if (cmd->bufLen < payloadOffset + 1) + { + return EMBER_ZCL_STATUS_MALFORMED_COMMAND; + } + optionOverride = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); + + wasHandled = emberAfLevelControlClusterMoveCallback(moveMode, rate, optionMask, optionOverride); + break; + } + case ZCL_MOVE_TO_LEVEL_COMMAND_ID: { + uint32_t payloadOffset = cmd->payloadStartIndex; + uint8_t level; + uint16_t transitionTime; + uint8_t optionMask; + uint8_t optionOverride; + + if (cmd->bufLen < payloadOffset + 1) + { + return EMBER_ZCL_STATUS_MALFORMED_COMMAND; + } + level = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); + payloadOffset += 1; + if (cmd->bufLen < payloadOffset + 2) + { + return EMBER_ZCL_STATUS_MALFORMED_COMMAND; + } + transitionTime = emberAfGetInt16u(cmd->buffer, payloadOffset, cmd->bufLen); + payloadOffset += 2; + if (cmd->bufLen < payloadOffset + 1) + { + return EMBER_ZCL_STATUS_MALFORMED_COMMAND; + } + optionMask = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); + payloadOffset += 1; + if (cmd->bufLen < payloadOffset + 1) + { + return EMBER_ZCL_STATUS_MALFORMED_COMMAND; + } + optionOverride = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); + + wasHandled = emberAfLevelControlClusterMoveToLevelCallback(level, transitionTime, optionMask, optionOverride); + break; + } + case ZCL_MOVE_TO_LEVEL_WITH_ON_OFF_COMMAND_ID: { + uint32_t payloadOffset = cmd->payloadStartIndex; + uint8_t level; + uint16_t transitionTime; + + if (cmd->bufLen < payloadOffset + 1) + { + return EMBER_ZCL_STATUS_MALFORMED_COMMAND; + } + level = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); + payloadOffset += 1; + if (cmd->bufLen < payloadOffset + 2) + { + return EMBER_ZCL_STATUS_MALFORMED_COMMAND; + } + transitionTime = emberAfGetInt16u(cmd->buffer, payloadOffset, cmd->bufLen); + + wasHandled = emberAfLevelControlClusterMoveToLevelWithOnOffCallback(level, transitionTime); + break; + } + case ZCL_MOVE_WITH_ON_OFF_COMMAND_ID: { + uint32_t payloadOffset = cmd->payloadStartIndex; + uint8_t moveMode; + uint8_t rate; + + if (cmd->bufLen < payloadOffset + 1) + { + return EMBER_ZCL_STATUS_MALFORMED_COMMAND; + } + moveMode = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); + payloadOffset += 1; + if (cmd->bufLen < payloadOffset + 1) + { + return EMBER_ZCL_STATUS_MALFORMED_COMMAND; + } + rate = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); + + wasHandled = emberAfLevelControlClusterMoveWithOnOffCallback(moveMode, rate); + break; + } + case ZCL_STEP_COMMAND_ID: { + uint32_t payloadOffset = cmd->payloadStartIndex; + uint8_t stepMode; + uint8_t stepSize; + uint16_t transitionTime; + uint8_t optionMask; + uint8_t optionOverride; + + if (cmd->bufLen < payloadOffset + 1) + { + return EMBER_ZCL_STATUS_MALFORMED_COMMAND; + } + stepMode = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); + payloadOffset += 1; + if (cmd->bufLen < payloadOffset + 1) + { + return EMBER_ZCL_STATUS_MALFORMED_COMMAND; + } + stepSize = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); + payloadOffset += 1; + if (cmd->bufLen < payloadOffset + 2) + { + return EMBER_ZCL_STATUS_MALFORMED_COMMAND; + } + transitionTime = emberAfGetInt16u(cmd->buffer, payloadOffset, cmd->bufLen); + payloadOffset += 2; + if (cmd->bufLen < payloadOffset + 1) + { + return EMBER_ZCL_STATUS_MALFORMED_COMMAND; + } + optionMask = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); + payloadOffset += 1; + if (cmd->bufLen < payloadOffset + 1) + { + return EMBER_ZCL_STATUS_MALFORMED_COMMAND; + } + optionOverride = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); + + wasHandled = emberAfLevelControlClusterStepCallback(stepMode, stepSize, transitionTime, optionMask, optionOverride); + break; + } + case ZCL_STEP_WITH_ON_OFF_COMMAND_ID: { + uint32_t payloadOffset = cmd->payloadStartIndex; + uint8_t stepMode; + uint8_t stepSize; + uint16_t transitionTime; + + if (cmd->bufLen < payloadOffset + 1) + { + return EMBER_ZCL_STATUS_MALFORMED_COMMAND; + } + stepMode = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); + payloadOffset += 1; + if (cmd->bufLen < payloadOffset + 1) + { + return EMBER_ZCL_STATUS_MALFORMED_COMMAND; + } + stepSize = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); + payloadOffset += 1; + if (cmd->bufLen < payloadOffset + 2) + { + return EMBER_ZCL_STATUS_MALFORMED_COMMAND; + } + transitionTime = emberAfGetInt16u(cmd->buffer, payloadOffset, cmd->bufLen); + + wasHandled = emberAfLevelControlClusterStepWithOnOffCallback(stepMode, stepSize, transitionTime); + break; + } + case ZCL_STOP_COMMAND_ID: { + uint32_t payloadOffset = cmd->payloadStartIndex; + uint8_t optionMask; + uint8_t optionOverride; + + if (cmd->bufLen < payloadOffset + 1) + { + return EMBER_ZCL_STATUS_MALFORMED_COMMAND; + } + optionMask = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); + payloadOffset += 1; + if (cmd->bufLen < payloadOffset + 1) + { + return EMBER_ZCL_STATUS_MALFORMED_COMMAND; + } + optionOverride = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); + + wasHandled = emberAfLevelControlClusterStopCallback(optionMask, optionOverride); + break; + } + case ZCL_STOP_WITH_ON_OFF_COMMAND_ID: { + wasHandled = emberAfLevelControlClusterStopWithOnOffCallback(); + break; + } + default: { + // Unrecognized command ID, error status will apply. + break; + } + } + } + return status(wasHandled, true, cmd->mfgSpecific); +} +EmberAfStatus emberAfOnOffClusterServerCommandParse(EmberAfClusterCommand * cmd) +{ + bool wasHandled = false; + + if (!cmd->mfgSpecific) + { + switch (cmd->commandId) + { + case ZCL_OFF_COMMAND_ID: { + wasHandled = emberAfOnOffClusterOffCallback(); + break; + } + case ZCL_ON_COMMAND_ID: { + wasHandled = emberAfOnOffClusterOnCallback(); + break; + } + case ZCL_TOGGLE_COMMAND_ID: { + wasHandled = emberAfOnOffClusterToggleCallback(); + break; + } + default: { + // Unrecognized command ID, error status will apply. + break; + } + } + } + return status(wasHandled, true, cmd->mfgSpecific); +} diff --git a/examples/lighting-app/lighting-common/gen/call-command-handler.h b/examples/lighting-app/lighting-common/gen/call-command-handler.h index 56c84133c3f612..c1b06642f07ac9 100644 --- a/examples/lighting-app/lighting-common/gen/call-command-handler.h +++ b/examples/lighting-app/lighting-common/gen/call-command-handler.h @@ -1,23 +1,7 @@ -/** - * - * 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 + * 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. @@ -31,20 +15,8 @@ * 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 SILABS_EMBER_AF_COMMAND_PARSE_HEADER -#define SILABS_EMBER_AF_COMMAND_PARSE_HEADER +// Prevent multiple inclusion +#pragma once #include "af-types.h" - -// This is a set of generated prototype for functions that parse the -// the incomming message, and call appropriate command handler. - -// Cluster: On/off, server -EmberAfStatus emberAfOnOffClusterServerCommandParse(EmberAfClusterCommand * cmd); - -#endif // SILABS_EMBER_AF_COMMAND_PARSE_HEADER diff --git a/examples/lighting-app/lighting-common/gen/callback-stub.c b/examples/lighting-app/lighting-common/gen/callback-stub.c deleted file mode 100644 index 855fd78a9ecf95..00000000000000 --- a/examples/lighting-app/lighting-common/gen/callback-stub.c +++ /dev/null @@ -1,2475 +0,0 @@ -/** - * - * 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. -// -// - -// This c file provides stubs for all callbacks. These stubs -// will be used in the case where user defined implementations -// of the callbacks have not been provided. -#include "af.h" -#include -//#include "hal/hal.h" -//#include EMBER_AF_API_NETWORK_STEERING - -/** @brief Add To Current App Tasks - * - * This function is only useful to sleepy end devices. This function will note - * the passed item as part of a set of tasks the application has outstanding - * (e.g. message sent requiring APS acknwoledgement). This will affect how the - * application behaves with regard to sleeping and polling. Until the - * outstanding task is completed, the device may poll more frequently and sleep - * less often. - * - * @param tasks Ver.: always - */ -void emberAfAddToCurrentAppTasksCallback(EmberAfApplicationTask tasks) {} - -/** @brief Allow Network Write Attribute - * - * This function is called by the application framework before it writes an - * attribute in response to a write attribute request from an external device. - * The value passed into this callback is the value to which the attribute is to - * be set by the framework. - Example: In mirroring simple metering data - * on an Energy Services Interface (ESI) (formerly called Energy Service Portal - * (ESP) in SE 1.0).), a mirrored simple meter needs to write read-only - * attributes on its mirror. The-meter-mirror sample application, located in - * app/framework/sample-apps, uses this callback to allow the mirrored device to - * write simple metering attributes on the mirror regardless of the fact that - * most simple metering attributes are defined as read-only by the ZigBee - * specification. - Note: The ZCL specification does not (as of this - * writing) specify any permission-level security for writing writeable - * attributes. As far as the ZCL specification is concerned, if an attribute is - * writeable, any device that has a link key for the device should be able to - * write that attribute. Furthermore if an attribute is read only, it should not - * be written over the air. Thus, if you implement permissions for writing - * attributes as a feature, you MAY be operating outside the specification. This - * is unlikely to be a problem for writing read-only attributes, but it may be a - * problem for attributes that are writeable according to the specification but - * restricted by the application implementing this callback. - * - * @param endpoint Ver.: always - * @param clusterId Ver.: always - * @param attributeId Ver.: always - * @param mask Ver.: always - * @param manufacturerCode Ver.: always - * @param value Ver.: always - * @param type Ver.: always - */ -EmberAfAttributeWritePermission emberAfAllowNetworkWriteAttributeCallback(uint8_t endpoint, EmberAfClusterId clusterId, - EmberAfAttributeId attributeId, uint8_t mask, - uint16_t manufacturerCode, uint8_t * value, uint8_t type) -{ - return EMBER_ZCL_ATTRIBUTE_WRITE_PERMISSION_ALLOW_WRITE_NORMAL; // Default -} - -/** @brief Attribute Read Access - * - * This function is called whenever the Application Framework needs to check - * access permission for an attribute read. - * - * @param endpoint Ver.: always - * @param clusterId Ver.: always - * @param manufacturerCode Ver.: always - * @param attributeId Ver.: always - */ -bool emberAfAttributeReadAccessCallback(uint8_t endpoint, EmberAfClusterId clusterId, uint16_t manufacturerCode, - uint16_t attributeId) -{ - return true; -} - -/** @brief Attribute Write Access - * - * This function is called whenever the Application Framework needs to check - * access permission for an attribute write. - * - * @param endpoint Ver.: always - * @param clusterId Ver.: always - * @param manufacturerCode Ver.: always - * @param attributeId Ver.: always - */ -bool emberAfAttributeWriteAccessCallback(uint8_t endpoint, EmberAfClusterId clusterId, uint16_t manufacturerCode, - uint16_t attributeId) -{ - return true; -} - -/** @brief Groups Cluster Clear Group Table - * - * This function is called by the framework when the application should clear - * the group table. - * - * @param endpoint The endpoint. Ver.: always - */ -void emberAfGroupsClusterClearGroupTableCallback(uint8_t endpoint) {} - -/** @brief Clear Report Table - * - * This function is called by the framework when the application should clear - * the report table. - * - */ -EmberStatus emberAfClearReportTableCallback(void) -{ - return EMBER_LIBRARY_NOT_PRESENT; -} - -/** @brief Scenes Cluster ClearSceneTable - * - * This function is called by the framework when the application should clear - * the scene table. - * - * @param endpoint The endpoint. Ver.: always - */ -void emberAfScenesClusterClearSceneTableCallback(uint8_t endpoint) {} - -/** @brief Key Establishment Cluster Client Command Received - * - * This function is called by the application framework when a server-to-client - * key establishment command is received but has yet to be handled by the - * framework code. This function should return a bool value indicating whether - * the command has been handled by the application code and should not be - * further processed by the framework. - * - * @param cmd Ver.: always - */ -bool emberAfKeyEstablishmentClusterClientCommandReceivedCallback(EmberAfClusterCommand * cmd) -{ - return false; -} - -/** @brief Cluster Init - * - * This function is called when a specific cluster is initialized. It gives the - * application an opportunity to take care of cluster initialization procedures. - * It is called exactly once for each endpoint where cluster is present. - * - * @param endpoint Ver.: always - * @param clusterId Ver.: always - */ -void emberAfClusterInitCallback(uint8_t endpoint, EmberAfClusterId clusterId) {} - -/** @brief Cluster Security Custom - * - * This callback is fired when determining if APS encryption is required for a - * cluster outside of the specification's required clusters. In other words, - * for the Smart Energy profile this would be a cluster beyond the list that - * normally requires APS encryption. - * - * @param profileId The profile ID Ver.: always - * @param clusterId The cluster ID Ver.: always - * @param incoming Whether this is an incoming or outgoing message. Ver.: - * always - * @param commandId The ZCL command ID being sent/received. Ver.: always - */ -bool emberAfClusterSecurityCustomCallback(EmberAfProfileId profileId, EmberAfClusterId clusterId, bool incoming, uint8_t commandId) -{ - // By default, assume APS encryption is not required. - return false; -} - -/** @brief Configure Reporting Command - * - * This function is called by the application framework when a Configure - * Reporting command is received from an external device. The Configure - * Reporting command contains a series of attribute reporting configuration - * records. The application should return true if the message was processed or - * false if it was not. - * - * @param cmd Ver.: always - */ -bool emberAfConfigureReportingCommandCallback(const EmberAfClusterCommand * cmd) -{ - return false; -} - -/** @brief Configure Reporting Response - * - * This function is called by the application framework when a Configure - * Reporting Response command is received from an external device. The - * application should return true if the message was processed or false if it - * was not. - * - * @param clusterId The cluster identifier of this response. Ver.: always - * @param buffer Buffer containing the list of attribute status records. Ver.: - * always - * @param bufLen The length in bytes of the list. Ver.: always - */ -bool emberAfConfigureReportingResponseCallback(EmberAfClusterId clusterId, uint8_t * buffer, uint16_t bufLen) -{ - return false; -} - -/** @brief Default Response - * - * This function is called by the application framework when a Default Response - * command is received from an external device. The application should return - * true if the message was processed or false if it was not. - * - * @param clusterId The cluster identifier of this response. Ver.: always - * @param commandId The command identifier to which this is a response. Ver.: - * always - * @param status Specifies either SUCCESS or the nature of the error that was - * detected in the received command. Ver.: always - */ -bool emberAfDefaultResponseCallback(EmberAfClusterId clusterId, uint8_t commandId, EmberAfStatus status) -{ - return false; -} - -/** @brief Discover Attributes Response - * - * This function is called by the application framework when a Discover - * Attributes Response or Discover Attributes Extended Response command is - * received from an external device. The Discover Attributes Response command - * contains a bool indicating if discovery is complete and a list of zero or - * more attribute identifier/type records. The final argument indicates whether - * the response is in the extended format or not. The application should return - * true if the message was processed or false if it was not. - * - * @param clusterId The cluster identifier of this response. Ver.: always - * @param discoveryComplete Indicates whether there are more attributes to be - * discovered. true if there are no more attributes to be discovered. Ver.: - * always - * @param buffer Buffer containing the list of attribute identifier/type - * records. Ver.: always - * @param bufLen The length in bytes of the list. Ver.: always - * @param extended Indicates whether the response is in the extended format or - * not. Ver.: always - */ -bool emberAfDiscoverAttributesResponseCallback(EmberAfClusterId clusterId, bool discoveryComplete, uint8_t * buffer, - uint16_t bufLen, bool extended) -{ - return false; -} - -/** @brief Discover Commands Generated Response - * - * This function is called by the framework when Discover Commands Generated - * Response is received. - * - * @param clusterId The cluster identifier of this response. Ver.: always - * @param manufacturerCode Manufacturer code Ver.: always - * @param discoveryComplete Indicates whether there are more commands to be - * discovered. Ver.: always - * @param commandIds Buffer containing the list of command identifiers. Ver.: - * always - * @param commandIdCount The length of bytes of the list, whish is the same as - * the number of identifiers. Ver.: always - */ -bool emberAfDiscoverCommandsGeneratedResponseCallback(EmberAfClusterId clusterId, uint16_t manufacturerCode, bool discoveryComplete, - uint8_t * commandIds, uint16_t commandIdCount) -{ - return false; -} - -/** @brief Discover Commands Received Response - * - * This function is called by the framework when Discover Commands Received - * Response is received. - * - * @param clusterId The cluster identifier of this response. Ver.: always - * @param manufacturerCode Manufacturer code Ver.: always - * @param discoveryComplete Indicates whether there are more commands to be - * discovered. Ver.: always - * @param commandIds Buffer containing the list of command identifiers. Ver.: - * always - * @param commandIdCount The length of bytes of the list, whish is the same as - * the number of identifiers. Ver.: always - */ -bool emberAfDiscoverCommandsReceivedResponseCallback(EmberAfClusterId clusterId, uint16_t manufacturerCode, bool discoveryComplete, - uint8_t * commandIds, uint16_t commandIdCount) -{ - return false; -} - -/** @brief Eeprom Init - * - * Tells the system to initialize the EEPROM if it is not already initialized. - * - */ -void emberAfEepromInitCallback(void) {} - -/** @brief Eeprom Note Initialized State - * - * Records the state of the EEPROM so that an intelligent driver (like the - * EEPROM plugin) can re-initialize the driver prior to any calls to it. - * - * @param state The state of the EEPROM, false=re-initalization needed, - * true=no-re-init needed Ver.: always - */ -void emberAfEepromNoteInitializedStateCallback(bool state) {} - -/** @brief Eeprom Shutdown - * - * Tells the system to shutdown the EEPROM if it is not already shutdown. - * - */ -void emberAfEepromShutdownCallback(void) {} - -/** @brief Groups Cluster Endpoint In Group - * - * This function is called by the framework when it needs to determine if an - * endpoint is a member of a group. The application should return true if the - * endpoint is a member of the group and false otherwise. - * - * @param endpoint The endpoint. Ver.: always - * @param groupId The group identifier. Ver.: always - */ -bool emberAfGroupsClusterEndpointInGroupCallback(uint8_t endpoint, uint16_t groupId) -{ - return false; -} - -/** @brief External Attribute Read - * - * Like emberAfExternalAttributeWriteCallback above, this function is called - * when the framework needs to read an attribute that is not stored within the - * Application Framework's data structures. - All of the important - * information about the attribute itself is passed as a pointer to an - * EmberAfAttributeMetadata struct, which is stored within the application and - * used to manage the attribute. A complete description of the - * EmberAfAttributeMetadata struct is provided in - * app/framework/include/af-types.h - This function assumes that the - * application is able to read the attribute, write it into the passed buffer, - * and return immediately. Any attributes that require a state machine for - * reading and writing are not really candidates for externalization at the - * present time. The Application Framework does not currently include a state - * machine for reading or writing attributes that must take place across a - * series of application ticks. Attributes that cannot be read in a timely - * manner should be stored within the Application Framework and updated - * occasionally by the application code from within the - * emberAfMainTickCallback. - If the application was successfully able to - * read the attribute and write it into the passed buffer, it should return a - * value of EMBER_ZCL_STATUS_SUCCESS. Ensure that the size of the externally - * managed attribute value is smaller than what the buffer can hold. In the case - * of a buffer overflow throw an appropriate error such as - * EMBER_ZCL_STATUS_INSUFFICIENT_SPACE. Any other return value indicates the - * application was not able to read the attribute. - * - * @param endpoint Ver.: always - * @param clusterId Ver.: always - * @param attributeMetadata Ver.: always - * @param manufacturerCode Ver.: always - * @param buffer Ver.: always - * @param maxReadLength Ver.: always - */ -EmberAfStatus emberAfExternalAttributeReadCallback(uint8_t endpoint, EmberAfClusterId clusterId, - EmberAfAttributeMetadata * attributeMetadata, uint16_t manufacturerCode, - uint8_t * buffer, uint16_t maxReadLength) -{ - return EMBER_ZCL_STATUS_FAILURE; -} - -/** @brief External Attribute Write - * - * This function is called whenever the Application Framework needs to write an - * attribute which is not stored within the data structures of the Application - * Framework itself. One of the new features in Version 2 is the ability to - * store attributes outside the Framework. This is particularly useful for - * attributes that do not need to be stored because they can be read off the - * hardware when they are needed, or are stored in some central location used by - * many modules within the system. In this case, you can indicate that the - * attribute is stored externally. When the framework needs to write an external - * attribute, it makes a call to this callback. - This callback is very - * useful for host micros which need to store attributes in persistent memory. - * Because each host micro (used with an Ember NCP) has its own type of - * persistent memory storage, the Application Framework does not include the - * ability to mark attributes as stored in flash the way that it does for Ember - * SoCs like the EM35x. On a host micro, any attributes that need to be stored - * in persistent memory should be marked as external and accessed through the - * external read and write callbacks. Any host code associated with the - * persistent storage should be implemented within this callback. - All of - * the important information about the attribute itself is passed as a pointer - * to an EmberAfAttributeMetadata struct, which is stored within the application - * and used to manage the attribute. A complete description of the - * EmberAfAttributeMetadata struct is provided in - * app/framework/include/af-types.h. - This function assumes that the - * application is able to write the attribute and return immediately. Any - * attributes that require a state machine for reading and writing are not - * candidates for externalization at the present time. The Application Framework - * does not currently include a state machine for reading or writing attributes - * that must take place across a series of application ticks. Attributes that - * cannot be written immediately should be stored within the Application - * Framework and updated occasionally by the application code from within the - * emberAfMainTickCallback. - If the application was successfully able to - * write the attribute, it returns a value of EMBER_ZCL_STATUS_SUCCESS. Any - * other return value indicates the application was not able to write the - * attribute. - * - * @param endpoint Ver.: always - * @param clusterId Ver.: always - * @param attributeMetadata Ver.: always - * @param manufacturerCode Ver.: always - * @param buffer Ver.: always - */ -EmberAfStatus emberAfExternalAttributeWriteCallback(uint8_t endpoint, EmberAfClusterId clusterId, - EmberAfAttributeMetadata * attributeMetadata, uint16_t manufacturerCode, - uint8_t * buffer) -{ - return EMBER_ZCL_STATUS_FAILURE; -} - -/** @brief Find Unused Pan Id And Form - * - * This function is called by the framework to search for an unused PAN id and - * form a new network. The application should return EMBER_SUCCESS if the - * operation was initiated successfully. - * - */ -EmberStatus emberAfFindUnusedPanIdAndFormCallback(void) -{ - return EMBER_LIBRARY_NOT_PRESENT; -} - -/** @brief Get Current App Tasks - * - * This function is only useful to sleepy end devices. This function will - * return the set of tasks the application has outstanding. These tasks affect - * how the application behaves with regard to sleeping and polling. - * - */ -EmberAfApplicationTask emberAfGetCurrentAppTasksCallback(void) -{ - return 0; -} - -/** @brief Get Current Poll Control - * - * This function will retrieve the current poll control that the system is using - * for the current network. This is determined by examining all the scheduled - * events and obtaining the most restrictive poll control context across all - * events. The most restrictive poll control is EMBER_AF_SHORT_POLL followed by - * EMBER_AF_LONG_POLL. - * - */ -EmberAfEventPollControl emberAfGetCurrentPollControlCallback(void) -{ - return EMBER_AF_LONG_POLL; -} - -/** @brief Get Current Poll Interval Ms - * - * This function is only useful to end devices. This function will return the - * current poll interval (in milliseconds) for the current network. This - * interval is the maximum amount of time a child is currently waiting between - * polls of its parent. - * - */ -uint32_t emberAfGetCurrentPollIntervalMsCallback(void) -{ - return 0; -} - -/** @brief Get Current Poll Interval Qs - * - * This function is only useful to end devices. This function will return the - * current poll interval (in quarter seconds) for the current network. This - * interval is the maximum amount of time a child is currently waiting between - * polls of its parent. - * - */ -uint32_t emberAfGetCurrentPollIntervalQsCallback(void) -{ - return 0; -} - -/** @brief Get Current Sleep Control - * - * This function will retrieve the current sleep control that the system is - * using. This is determined by examining all the scheduled events and - * obtaining the most restrictive sleep control context across all events. The - * most restrictive sleep control is EMBER_AF_STAY_AWAKE followed by - * EMBER_AF_OK_TO_SLEEP. - * - */ -EmberAfEventSleepControl emberAfGetCurrentSleepControlCallback(void) -{ - return EMBER_AF_OK_TO_SLEEP; -} - -/** @brief Get Current Time - * - * This callback is called when device attempts to get current time from the - * hardware. If this device has means to retrieve exact time, then this method - * should implement it. If the callback can't provide the exact time it should - * return 0 to indicate failure. Default action is to return 0, which indicates - * that device does not have access to real time. - * - */ -uint32_t emberAfGetCurrentTimeCallback(void) -{ - return 0; -} - -/** @brief Get Default Poll Control - * - * This function will retrieve the default poll control for the current network - * as previously set by emberAfSetDefaultPollControlCallback(). The default - * poll control will limit whether the network can long poll. - * - */ -EmberAfEventPollControl emberAfGetDefaultPollControlCallback(void) -{ - return EMBER_AF_LONG_POLL; -} - -/** @brief Get Default Sleep Control - * - * This function will retrieve the default sleep control the system is using as - * previously set by emberAfSetDefaultSleepControlCallback(). The default sleep - * control will limit whether the device can sleep. - * - */ -EmberAfEventSleepControl emberAfGetDefaultSleepControlCallback(void) -{ - return EMBER_AF_OK_TO_SLEEP; -} - -/** @brief Get Endpoint By Index - * - * Get the endpoint number based on the passed index. By default the framework - * handles this by managing endpoints based on the precompiled configuration - * defined in AppBuilder. This callback can override this behavior at runtime - * and provide additional endpoints or different data than the compiled values. - * If the index is overridden than the callback shall return true and set the - * endpointReturn parameter accordingly. A value of 0xFF means the endpoint - * doesn't exist at that index. - Otherwise false must be returned by the - * callback and the default framework behavior will be executed. This is only - * applicable to the SOC devices. - * - * @param index The index of the endpoint. Ver.: always - * @param endpointReturn The value of endpoint. Ver.: always - */ -bool emberAfGetEndpointByIndexCallback(uint8_t index, uint8_t * endpointReturn) -{ - return false; -} - -/** @brief Get Endpoint Description - * - * This callback is called by the framework whenever it receives a ZDO request - * to enumerate the details about an endpoint. By default the framework - * provides the information based on the precompiled endpoint information as - * defined in AppBuilder. This callback can override that behavior at runtime - * and return different information. If the endpoint information is being - * overridden then the callback must return true. Otherwise it should return - * false, which allows the framework to perform its default behavior. This is - * only applicable to SOC devices. - * - * @param endpoint The endpoint number that is being queried. Ver.: always - * @param result This is a pointer to a data structure where the endpoint - * information is written if the callback is providing the information. Ver.: - * always - */ -bool emberAfGetEndpointDescriptionCallback(uint8_t endpoint, EmberEndpointDescription * result) -{ - return false; -} - -/** @brief Get Endpoint Info - * - * This function is a callback to an application implemented endpoint that - * operates outside the normal application framework. When the framework wishes - * to perform operations with that endpoint it uses this callback to retrieve - * the endpoint's information. If the endpoint exists and the application can - * provide data then true shall be returned. Otherwise the callback must return - * false. - * - * @param endpoint The endpoint to retrieve data for. Ver.: always - * @param returnNetworkIndex The index corresponding to the ZigBee network the - * endpoint belongs to. If not using a multi-network device, 0 must be - * returned. Otherwise on a multi-network device the stack will switch to this - * network before sending the message. Ver.: always - * @param returnEndpointInfo A pointer to a data struct that will be written - * with information about the endpoint. Ver.: always - */ -bool emberAfGetEndpointInfoCallback(uint8_t endpoint, uint8_t * returnNetworkIndex, EmberAfEndpointInfoStruct * returnEndpointInfo) -{ - return false; -} - -/** @brief Get Form And Join Extended Pan Id - * - * This callback is called by the framework to get the extended PAN ID used by - * the current network for forming and joining. The extended PAN ID used for - * forming and joining is not necessarily the same extended PAN ID actually in - * use on the network. - * - * @param resultLocation Ver.: always - */ -void emberAfGetFormAndJoinExtendedPanIdCallback(uint8_t * resultLocation) {} - -/** @brief Get Long Poll Interval Ms - * - * This function is only useful to end devices. This function will return the - * long poll interval (in milliseconds) for the current network. This interval - * is the maximum amount of time a child will wait between polls of its parent - * when it is not expecting data. - * - */ -uint32_t emberAfGetLongPollIntervalMsCallback(void) -{ - return 0; -} - -/** @brief Get Long Poll Interval Qs - * - * This function is only useful to end devices. This function will return the - * long poll interval (in quarter seconds) for the current network. This - * interval is the maximum amount of time a child will wait between polls of its - * parent when it is not expecting data. - * - */ -uint32_t emberAfGetLongPollIntervalQsCallback(void) -{ - return 0; -} - -/** @brief Get Short Poll Interval Ms - * - * This function is only useful to sleepy end devices. This function will - * return the short poll interval (in milliseconds) for the current network. - * This interval is the maximum amount of time a child will wait between polls - * of its parent when it is expecting data. - * - */ -uint16_t emberAfGetShortPollIntervalMsCallback(void) -{ - return 0; -} - -/** @brief Get Short Poll Interval Qs - * - * This function is only useful to sleepy end devices. This function will - * return the short poll interval (in quarter seconds) for the current network. - * This interval is the maximum amount of time a child will wait between polls - * of its parent when it is expecting data. - * - */ -uint16_t emberAfGetShortPollIntervalQsCallback(void) -{ - return 0; -} - -/** @brief Get Source Route Overhead - * - * This function is called by the framework to determine the overhead required - * in the network frame for source routing to a particular destination. - * - * @param destination The node id of the destination Ver.: always - */ -uint8_t emberAfGetSourceRouteOverheadCallback(EmberNodeId destination) -{ - return 0; -} - -/** @brief Get Wake Timeout Bitmask - * - * This function is only useful to sleepy end devices. This function will - * return the wake timeout bitmask for the current network. The bitmask - * determines which tasks will timeout automatically and which tasks require - * manual removal from the task list. - * - */ -EmberAfApplicationTask emberAfGetWakeTimeoutBitmaskCallback(void) -{ - return 0; -} - -/** @brief Get Wake Timeout Ms - * - * This function is only useful to sleepy end devices. This function will - * return the wake timeout (in milliseconds) for the current network. This - * timeout is the maximum amount of time a child will wait for a task in the - * wake bitmask to finish. While waiting, the device will short poll. - * - */ -uint16_t emberAfGetWakeTimeoutMsCallback(void) -{ - return 0; -} - -/** @brief Get Wake Timeout Qs - * - * This function is only useful to sleepy end devices. This function will - * return the wake timeout (in quarter seconds) for the current network. This - * timeout is the maximum amount of time a child will wait for a task in the - * wake bitmask to finish. While waiting, the device will short poll. - * - */ -uint16_t emberAfGetWakeTimeoutQsCallback(void) -{ - return 0; -} - -/** @brief Hal Button Isr - * - * This callback is called by the framework whenever a button is pressed on the - * device. This callback is called within ISR context. - * - * @param button The button which has changed state, either BUTTON0 or BUTTON1 - * as defined in the appropriate BOARD_HEADER. Ver.: always - * @param state The new state of the button referenced by the button parameter, - * either ::BUTTON_PRESSED if the button has been pressed or ::BUTTON_RELEASED - * if the button has been released. Ver.: always - */ -void emberAfHalButtonIsrCallback(uint8_t button, uint8_t state) {} - -/** @brief Incoming Packet Filter - * - * ** REQUIRES INCLUDING THE PACKET-HANDOFF PLUGIN ** - - This is called by - * the Packet Handoff plugin when the stack receives a packet from one of the - * protocol layers specified in ::EmberZigbeePacketType. - - The packetType - * argument is one of the values of the ::EmberZigbeePacketType enum. If the - * stack receives an 802.15.4 MAC beacon, it will call this function with the - * packetType argument set to ::EMBER_ZIGBEE_PACKET_TYPE_BEACON. - - The - * implementation of this callback may alter the data contained in packetData, - * modify options and flags in the auxillary data, or consume the packet itself, - * either sending the message, or discarding it as it sees fit. - * - * @param packetType the type of packet and associated protocol layer Ver.: - * always - * @param packetData flat buffer containing the packet data associated with the - * packet type Ver.: always - * @param size_p a pointer containing the size value of the packet Ver.: always - * @param data auxillary data included with the packet Ver.: always - */ -EmberPacketAction emberAfIncomingPacketFilterCallback(EmberZigbeePacketType packetType, uint8_t * packetData, uint8_t * size_p, - void * data) -{ - return EMBER_ACCEPT_PACKET; -} - -/** @brief Initiate Inter Pan Key Establishment - * - * This function is called by the framework to initiate key establishment with a - * remote device on a different PAN. The application should return - * EMBER_SUCCESS if key establishment was initiated successfully. The - * application should call ::emberAfInterPanKeyEstablishmentCallback as events - * occur. - * - * @param panId The PAN id of the remote device. Ver.: always - * @param eui64 The EUI64 of the remote device. Ver.: always - */ -EmberStatus emberAfInitiateInterPanKeyEstablishmentCallback(EmberPanId panId, const EmberEUI64 eui64) -{ - return EMBER_LIBRARY_NOT_PRESENT; -} - -/** @brief Initiate Key Establishment - * - * This function is called by the framework to initiate key establishment with a - * remote device. The application should return EMBER_SUCCESS if key - * establishment was initiated successfully. The application should call - * ::emberAfKeyEstablishmentCallback as events occur. - * - * @param nodeId The node id of the remote device. Ver.: always - * @param endpoint The endpoint on the remote device. Ver.: always - */ -EmberStatus emberAfInitiateKeyEstablishmentCallback(EmberNodeId nodeId, uint8_t endpoint) -{ - return EMBER_LIBRARY_NOT_PRESENT; -} - -/** @brief Initiate Partner Link Key Exchange - * - * This function is called by the framework to initiate a partner link key - * exchange with a remote device. The application should return EMBER_SUCCESS - * if the partner link key exchange was initiated successfully. When the - * partner link key exchange completes, the application should call the given - * callback. - * - * @param target The node id of the remote device. Ver.: always - * @param endpoint The key establishment endpoint of the remote device. Ver.: - * always - * @param callback The callback that should be called when the partner link key - * exchange completse. Ver.: always - */ -EmberStatus emberAfInitiatePartnerLinkKeyExchangeCallback(EmberNodeId target, uint8_t endpoint, - EmberAfPartnerLinkKeyExchangeCallback * callback) -{ - return EMBER_LIBRARY_NOT_PRESENT; -} - -/** @brief Inter Pan Key Establishment - * - * A callback by the key-establishment code to indicate an event has occurred. - * For error codes this is purely a notification. For non-error status codes - * (besides LINK_KEY_ESTABLISHED), it is the application's chance to allow or - * disallow the operation. If the application returns true then the key - * establishment is allowed to proceed. If it returns false, then key - * establishment is aborted. LINK_KEY_ESTABLISHED is a notification of success. - * - * @param status Ver.: always - * @param amInitiator Ver.: always - * @param panId Ver.: always - * @param eui64 Ver.: always - * @param delayInSeconds Ver.: always - */ -bool emberAfInterPanKeyEstablishmentCallback(EmberAfKeyEstablishmentNotifyMessage status, bool amInitiator, EmberPanId panId, - const EmberEUI64 eui64, uint8_t delayInSeconds) -{ - return true; -} - -/** @brief Interpan Send Message - * - * This function will send a raw MAC message with interpan frame format using - * the passed parameters. - * - * @param header Interpan header info Ver.: always - * @param messageLength The length of the message received or to send Ver.: - * always - * @param message The message data received or to send. Ver.: always - */ -EmberStatus emberAfInterpanSendMessageCallback(EmberAfInterpanHeader * header, uint16_t messageLength, uint8_t * message) -{ - return EMBER_LIBRARY_NOT_PRESENT; -} - -/** @brief Key Establishment - * - * A callback by the key-establishment code to indicate an event has occurred. - * For error codes this is purely a notification. For non-error status codes - * (besides LINK_KEY_ESTABLISHED), it is the application's chance to allow or - * disallow the operation. If the application returns true then the key - * establishment is allowed to proceed. If it returns false, then key - * establishment is aborted. LINK_KEY_ESTABLISHED is a notification of success. - * - * @param status Ver.: always - * @param amInitiator Ver.: always - * @param partnerShortId Ver.: always - * @param delayInSeconds Ver.: always - */ -bool emberAfKeyEstablishmentCallback(EmberAfKeyEstablishmentNotifyMessage status, bool amInitiator, EmberNodeId partnerShortId, - uint8_t delayInSeconds) -{ - return true; -} - -/** @brief On/off Cluster Level Control Effect - * - * This is called by the framework when the on/off cluster initiates a command - * that must effect a level control change. The implementation assumes that the - * client will handle any effect on the On/Off Cluster. - * - * @param endpoint Ver.: always - * @param newValue Ver.: always - */ -void emberAfOnOffClusterLevelControlEffectCallback(uint8_t endpoint, bool newValue) {} - -/** @brief Main Init - * - * This function is called from the application's main function. It gives the - * application a chance to do any initialization required at system startup. Any - * code that you would normally put into the top of the application's main() - * routine should be put into this function. This is called before the clusters, - * plugins, and the network are initialized so some functionality is not yet - * available. - Note: No callback in the Application Framework is - * associated with resource cleanup. If you are implementing your application on - * a Unix host where resource cleanup is a consideration, we expect that you - * will use the standard Posix system calls, including the use of atexit() and - * handlers for signals such as SIGTERM, SIGINT, SIGCHLD, SIGPIPE and so on. If - * you use the signal() function to register your signal handler, please mind - * the returned value which may be an Application Framework function. If the - * return value is non-null, please make sure that you call the returned - * function from your handler to avoid negating the resource cleanup of the - * Application Framework itself. - * - */ -void emberAfMainInitCallback(void) {} - -/** @brief Main Start - * - * This function is called at the start of main after the HAL has been - * initialized. The standard main function arguments of argc and argv are - * passed in. However not all platforms have support for main() function - * arguments. Those that do not are passed NULL for argv, therefore argv should - * be checked for NULL before using it. If the callback determines that the - * program must exit, it should return true. The value returned by main() will - * be the value written to the returnCode pointer. Otherwise the callback - * should return false to let normal execution continue. - * - * @param returnCode Ver.: always - * @param argc Ver.: always - * @param argv Ver.: always - */ -bool emberAfMainStartCallback(int * returnCode, int argc, char ** argv) -{ - // NOTE: argc and argv may not be supported on all platforms, so argv MUST be - // checked for NULL before referencing it. On those platforms without argc - // and argv "0" and "NULL" are passed respectively. - - return false; // exit? -} - -/** @brief Main Tick - * - * Whenever main application tick is called, this callback will be called at the - * end of the main tick execution. - * - */ -void emberAfMainTickCallback(void) {} - -/** @brief Scenes Cluster Make Invalid - * - * This function is called to invalidate the valid attribute in the Scenes - * cluster. - * - * @param endpoint Ver.: always - */ -EmberAfStatus emberAfScenesClusterMakeInvalidCallback(uint8_t endpoint) -{ - return EMBER_ZCL_STATUS_UNSUP_CLUSTER_COMMAND; -} - -/** @brief Mark Buffers - * - * This function is called when the garbage collector runs. Any buffers held by - * the application must be marked. - * - */ -void emberAfMarkBuffersCallback(void) -{ - // emMarkBuffer(&bufferUsed); -} - -/** @brief Message Sent - * - * This function is called by the application framework from the message sent - * handler, when it is informed by the stack regarding the message sent status. - * All of the values passed to the emberMessageSentHandler are passed on to this - * callback. This provides an opportunity for the application to verify that its - * message has been sent successfully and take the appropriate action. This - * callback should return a bool value of true or false. A value of true - * indicates that the message sent notification has been handled and should not - * be handled by the application framework. - * - * @param type Ver.: always - * @param indexOrDestination Ver.: always - * @param apsFrame Ver.: always - * @param msgLen Ver.: always - * @param message Ver.: always - * @param status Ver.: always - */ -bool emberAfMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, EmberApsFrame * apsFrame, - uint16_t msgLen, uint8_t * message, EmberStatus status) -{ - return false; -} - -/** @brief Ncp Init - * - * This function is called when the network coprocessor is being initialized, - * either at startup or upon reset. It provides applications on opportunity to - * perform additional configuration of the NCP. The function is always called - * twice when the NCP is initialized. In the first invocation, memoryAllocation - * will be true and the application should only issue EZSP commands that affect - * memory allocation on the NCP. For example, tables on the NCP can be resized - * in the first call. In the second invocation, memoryAllocation will be false - * and the application should only issue EZSP commands that do not affect memory - * allocation. For example, tables on the NCP can be populated in the second - * call. This callback is not called on SoCs. - * - * @param memoryAllocation Ver.: always - */ -void emberAfNcpInitCallback(bool memoryAllocation) {} - -/** @brief Ncp Is Awake Isr - * - * This function is called IN ISR CONTEXT. It notes that the NCP is awake after - * sleeping. Care should be taken to do minimal processing in this ISR handler - * function. - * - */ -void emberAfNcpIsAwakeIsrCallback(void) {} - -/** @brief Network Key Update Complete - * - * This is called by the framework when a network key update operation started - * by the trust center is complete. - * - * @param status Ver.: always - */ -void emberAfNetworkKeyUpdateCompleteCallback(EmberStatus status) {} - -/** @brief Ota Bootload - * - * The platform specific routine to bootload the device from a ZigBee - * over-the-air upgrade file. - * - * @param id A pointer to the structure that contains the information about what - * OTA image to bootload. Ver.: always - * @param ncpUpgradeTagId The tag ID of the upgrade data that will be used to - * bootload the device. Ver.: always - */ -uint8_t emberAfOtaBootloadCallback(const EmberAfOtaImageId * id, uint16_t ncpUpgradeTagId) -{ - // Please implement me - emberAfCorePrintln("Not supported."); - return 1; -} - -/** @brief Ota Client Bootload - * - * This callback is fired when the OTA Client recevies a command to bootload the - * newly downloaded OTA image. This callback will perform the platform specific - * to bootload their device. - * - * @param id This is the identifier relating to the image that has been - * downloaded and is ready for bootload. Ver.: always - */ -void emberAfOtaClientBootloadCallback(const EmberAfOtaImageId * id) -{ - // Any final preperation prior to the bootload should be done here. - // It is assumed that the device will reset in most all cases. - // Please implement me. -} - -/** @brief Ota Client Custom Verify - * - * This callback is executed by the OTA client after the signature verification - * has successfully completed. It allows the device to do its own custom - * verification of the image (such as verifying that the EBL is intact). - * - * @param newVerification This indicates if a new verification should be - * started. Ver.: always - * @param id This is ID of the image to be verified. Ver.: always - */ -EmberAfImageVerifyStatus emberAfOtaClientCustomVerifyCallback(bool newVerification, const EmberAfOtaImageId * id) -{ - // Manufacturing specific checks can be made to the image in this function to - // determine if it is valid. This function is called AFTER cryptographic - // checks have passed. If the cryptographic checks failed, this function will - // never be called. - - // The function shall return one of the following based on its own - // verification process. - // 1) EMBER_AF_IMAGE_GOOD - the image has passed all checks - // 2) EMBER_AF_IMAGE_BAD - the image is not valid - // 3) EMBER_AF_IMAGE_VERIFY_IN_PROGRESS - the image is valid so far, but more - // checks are needed. This callback shall be re-executed later to - // continue verification. This allows other code in the framework to run. - return EMBER_AF_IMAGE_GOOD; -} - -/** @brief Ota Client Download Complete - * - * This callback indicates that the OTA client has completed the download of a - * file. If the file has been completely downloaded and cryptographic checks - * have been turned on, then those will be performed prior to this callback and - * that outcome included in the 'success' result. On failure, this callback is - * merely informative, and the return type is ignored. On succesful download, - * this callback allows the client to perform any additional verification of the - * downloaded image and return that result to the OTA server. - * - * @param success This indicates the success or failure of the download and - * cryptographic verification process (if applicable). Ver.: always - * @param id This is the image identifier information that corresponds to the - * download result. Ver.: always - */ -bool emberAfOtaClientDownloadCompleteCallback(EmberAfOtaDownloadResult success, const EmberAfOtaImageId * id) -{ - // At this point the image has been completely downloaded and cryptographic - // checks (if applicable) have been performed. - - if (!success) - { - emberAfOtaBootloadClusterPrintln("Download failed."); - return true; // return value is ignored - } - - // This is for any additional validation that needs to be performed - // on the image by the application. - - // The results of checks here will be returned back to the OTA server - // in the Upgrade End request. - return true; -} - -/** @brief Ota Client Incoming Message Raw - * - * This callback is for processing incoming messages for the Over-the-air - * bootload cluster client. ZCL will not process the message and instead hand - * the raw over the air data to the callback for its own processing. - * - * @param message A pointer to the structure containing the message buffer and - * other information about it. Ver.: always - */ -bool emberAfOtaClientIncomingMessageRawCallback(EmberAfClusterCommand * message) -{ - return false; -} - -/** @brief Ota Client Start - * - * This callback should be called when the profile specific registration has - * completed successfully. It will start the client's state machine that will - * find the OTA server, query it for the next image, download the image, wait - * for the bootload message, and kick off the bootload. - * - */ -void emberAfOtaClientStartCallback(void) {} - -/** @brief Ota Client Version Info - * - * This function is called by the OTA client when a new query will occur to the - * server asking what the next version of firmware is. The client can inform - * the cluster software as to what information to use in the query (and - * subsequent download). - * - * @param currentImageInfo This is the information to use in the next query by - * the client cluster code. It contains the manufacturer ID, image type ID, and - * the firmware version to be specified in the query message sent to the server. - * Ver.: always - * @param hardwareVersion This is a pointer to the hardware version to use in - * the query. If no hardware version should be used, then - * EMBER_AF_INVALID_HARDWARE_VERSION should be used. Ver.: always - */ -void emberAfOtaClientVersionInfoCallback(EmberAfOtaImageId * currentImageInfo, uint16_t * hardwareVersion) -{ - // Customer will fill in the image info with their manufacturer ID, - // image type ID, and current software version number. - // The deviceSpecificFileEui64 can be ignored. - - // It may be necessary to dynamically determine this by talking to - // another device, as is the case with a host talking to an NCP device. - - // However, this routine will be called repeatedly so it may be wise - // to cache the data! - - /* This is commented out since the #defines below are not defined. - - if (currentImageInfo != NULL) { - memset(currentImageInfo, 0, sizeof(EmberAfOtaImageId)); - currentImageInfo->manufacturerId = EMBER_AF_MANUFACTURER_CODE; - currentImageInfo->imageTypeId = EMBER_AF_IMAGE_TYPE_ID; - currentImageInfo->firmwareVersion = EMBER_AF_CUSTOM_FIRMWARE_VERSION; - } - - if (hardwareVersion != NULL) { - *hardwareVersion = EMBER_AF_INVALID_HARDWARE_VERSION; - } - - assert(false); - */ -} - -/** @brief Ota Page Request Server Policy - * - * This callback is called by the OTA server page request code when it wants to - * determine if it is allowed for an OTA client to make a page request. It is - * only called if page request support has been enabled on the server. It - * should return EMBER_ZCL_STATUS_SUCCESS if it allows the page request, and - * EMBER_ZCL_STATUS_UNSUP_CLUSTER_COMMAND if it does not want to allow it. - * - */ -uint8_t emberAfOtaPageRequestServerPolicyCallback(void) -{ - return EMBER_ZCL_STATUS_SUCCESS; -} - -/** @brief Ota Server Block Size - * - * This function provides a way for the server to adjust the block size of its - * response to an Image block request by a client. - * - * @param clientNodeId The node Id of OTA client making an image block request. - * Ver.: always - */ -uint8_t emberAfOtaServerBlockSizeCallback(EmberNodeId clientNodeId) -{ - // This function provides a way for the server to potentially - // adjust the block size based on the client who is requesting. - // In other words if we are using source routing we will limit - // data returned by enough to put a source route into the message. - - // Image Block Response Message Format - // Status Code: 1-byte - // Manuf Code: 2-bytes - // Image Type: 2-bytes - // File Ver: 4-bytes - // File Offset: 4-bytes - // Data Size: 1-byte - // Data: variable - const uint8_t IMAGE_BLOCK_RESPONSE_OVERHEAD = (EMBER_AF_ZCL_OVERHEAD + 14); - - EmberApsFrame apsFrame; - uint8_t maxSize; - apsFrame.options = EMBER_APS_OPTION_NONE; - - if (emberAfIsCurrentSecurityProfileSmartEnergy()) - { - apsFrame.options |= EMBER_APS_OPTION_ENCRYPTION; - } - - maxSize = emberAfMaximumApsPayloadLength(EMBER_OUTGOING_DIRECT, clientNodeId, &apsFrame); - maxSize -= IMAGE_BLOCK_RESPONSE_OVERHEAD; - return maxSize; -} - -/** @brief Ota Server Incoming Message Raw - * - * This callback is for processing incoming messages for the Over-the-air - * bootload cluster server. ZCL will not process the message and instead hand - * the raw over the air data to the callback for its own processing. - * - * @param message A pointer to the structure containing the message buffer and - * other information about it. Ver.: always - */ -bool emberAfOtaServerIncomingMessageRawCallback(EmberAfClusterCommand * message) -{ - return false; -} - -/** @brief Ota Server Query - * - * This callback is fired when the OTA server receives a query request by the - * client. The callback lets the server application indicate to the client what - * the 'next' version of software is for the device, or if there is not one - * available. - * - * @param currentImageId This is the current software image that the client - * hase. Ver.: always - * @param hardwareVersion If this value is non-NULL, it indicates the hardware - * version of the client device. If NULL, the client did not specify a hardware - * version. Ver.: always - * @param nextUpgradeImageId This is a pointer to a data structure containing - * the 'next' software version for the client to download. Ver.: always - */ -uint8_t emberAfOtaServerQueryCallback(const EmberAfOtaImageId * currentImageId, uint16_t * hardwareVersion, - EmberAfOtaImageId * nextUpgradeImageId) -{ - // If a new software image is available, this function should return EMBER_ZCL_STATUS_SUCCESS - // and populate the 'nextUpgradeImageId' structure with the appropriate values. - // If no new software image is available (i.e. the client should not download a firmware image) - // then the server should return EMBER_ZCL_STATUS_NO_IMAGE_AVAILABLE. - return EMBER_ZCL_STATUS_NO_IMAGE_AVAILABLE; -} - -/** @brief Ota Server Send Image Notify - * - * This callback is an indication to the OTA server that it should send out - * notification about an OTA file that is available for download. - * - * @param dest The destination of the image notify message. May be a broadcast - * address. Ver.: always - * @param endpoint The destination endpoint of the image notify message. May be - * a broadcast endpoint. Ver.: always - * @param payloadType The type of data the image notify message will contain. 0 - * = no data. 1 = Manufacturer ID. 2 = Manufacturer ID and the image type ID. - * 3 = Manufacturer ID, image type ID, and firmware version. Ver.: always - * @param queryJitter The percentage of nodes that should respond to this - * message, from 1-100. On receipt of this message, each recipient will - * randomly choose a percentage and only query the server if their percentage is - * below this value. Ver.: always - * @param id The image information that will be put in the message. The data - * within this struct that will be appended to the message is determined by the - * previous 'payloadType' argument. Ver.: always - */ -bool emberAfOtaServerSendImageNotifyCallback(EmberNodeId dest, uint8_t endpoint, uint8_t payloadType, uint8_t queryJitter, - const EmberAfOtaImageId * id) -{ - return false; -} - -/** @brief Ota Server Upgrade End Request - * - * This function is called when the OTA server receives a request an upgrade end - * request. If the request indicated a successful download by the client, the - * server must tell the client when and if to upgrade to the downloaded image. - * - * @param source The node ID of the device that sent the upgrade end request. - * Ver.: always - * @param status This is the ZCL status sent by the client indicating the result - * of its attempt to download the new upgrade image. If the status is not - * EMBER_ZCL_STATUS_SUCCESS then this callback is merely informative and no - * response mesasge will be generated by the server. Ver.: always - * @param returnValue If the server returns true indicating that the client - * should apply the upgrade, this time value indicates when in the future the - * client should apply the upgrade. Ver.: always - * @param imageId This variable indicates the software version that the client - * successfully downloaded and is asking to upgrade to. Ver.: always - */ -bool emberAfOtaServerUpgradeEndRequestCallback(EmberNodeId source, uint8_t status, uint32_t * returnValue, - const EmberAfOtaImageId * imageId) -{ - // If the status value is not EMBER_ZCL_STATUS_SUCCESS, then this callback is - // merely informative and no response message will be generated by the server. - // If the server wants the client to NOT apply the upgrade, then it should - // return false. - // If the server wants the client to apply the upgrade, it should return true - // and set the 'returnValue' parameter to when it wants the client to - // apply the upgrade. There are three possible values: - // 0 = Apply the upgrade now - // 0xFFFFFFFF = Don't apply yet, ask again later. - // (anything-else) = Apply the upgrade X minutes from now. - *returnValue = 0; - return true; -} - -/** @brief Ota Storage Check Temp Data - * - * This callback will validate temporary data in the storage device to determine - * whether it is a complete file, a partially downloaded file, or there is no - * file present. When a complete or partial file is found it will return - * EMBER_AF_OTA_STORAGE_SUCCESS or EMBER_AF_OTA_STORAGE_PARTIAL_FILE_FOUND, - * respectively. In that case, the currentOffset, totalImageSize, and - * newFileInfo will be populated with data. When EMBER_AF_OTA_STORAGE_ERROR is - * returned, no temporary data is present. - * - * @param currentOffset A pointer to a value that will be written with the - * offset within the total file size that has been successfully stored in the - * storage device. This will indicate how much data has been currently - * dowloaded. Ver.: always - * @param totalImageSize A pointer to a value that will be written with the - * total image size of the OTA file when a download has completed. This does - * not indicate how much data has actually been downloaded currently. Ver.: - * always - * @param newFileInfo This is the image id of the temporary file data stored in - * the storage device. Ver.: always - */ -EmberAfOtaStorageStatus emberAfOtaStorageCheckTempDataCallback(uint32_t * currentOffset, uint32_t * totalImageSize, - EmberAfOtaImageId * newFileInfo) -{ - // If the image data cannot be successfully verified, an error should be returned. - return EMBER_AF_OTA_STORAGE_ERROR; -} - -/** @brief Ota Storage Clear Temp Data - * - * This function clears any existing temp data that was downloaed. It is used - * immediately prior to downloading a raw image over the air. - * - */ -EmberAfOtaStorageStatus emberAfOtaStorageClearTempDataCallback(void) -{ - // If the image data cannot be stored, an error should be returned. - return EMBER_AF_OTA_STORAGE_ERROR; -} - -/** @brief Ota Storage Close - * - * This callback shuts down the ZigBee Over-the-air storage module. - * - */ -void emberAfOtaStorageCloseCallback(void) -{ - // Please implement me. - assert(false); -} - -/** @brief Ota Storage Driver Download Finish - * - * This callback defines the low-level means by which a device records the final - * offset value of the download image. - * - * @param offset The value of the final offset of the image download. Ver.: - * always - */ -void emberAfOtaStorageDriverDownloadFinishCallback(uint32_t offset) -{ - // The storage driver and the rest of the OTA bootload code will not function correctly unless it is implemnted. - // Please implement me. - assert(false); -} - -/** @brief Ota Storage Driver Init - * - * The initialization code for the OTA storage driver. - * - */ -bool emberAfOtaStorageDriverInitCallback(void) -{ - // The storage driver and the rest of the OTA bootload code will not function correctly unless it is implemnted. - // Please implement me. - assert(false); - return false; -} - -/** @brief Ota Storage Driver Invalidate Image - * - * This callback invalidates the image stored on disk so that it will not be - * bootloaded, and it will not be a valid image that is in the middle of - * downloading. - * - */ -EmberAfOtaStorageStatus emberAfOtaStorageDriverInvalidateImageCallback(void) -{ - // The storage driver and the rest of the OTA bootload code will not function correctly unless it is implemnted. - // Please implement me. - assert(false); - return EMBER_AF_OTA_STORAGE_ERROR; -} - -/** @brief Ota Storage Driver Prepare To Resume Download - * - * This callback allows the underlying storage driver to prepare to resume the - * OTA file download. For example, the driver may exceute a page erase to - * insure the next page is ready to be written to. - * - */ -EmberAfOtaStorageStatus emberAfOtaStorageDriverPrepareToResumeDownloadCallback(void) -{ - assert(false); - return EMBER_AF_OTA_STORAGE_ERROR; -} - -/** @brief Ota Storage Driver Read - * - * This callback defines the low-level means by which a device reads from the - * OTA storage device. - * - * @param offset The address offset from the start of the storage device where - * data is to be read. Ver.: always - * @param length The length of the data to be read from the storage device. - * Ver.: always - * @param returnData A pointer where the data read from the device should be - * written to. Ver.: always - */ -bool emberAfOtaStorageDriverReadCallback(uint32_t offset, uint32_t length, uint8_t * returnData) -{ - // The storage driver and the rest of the OTA bootload code will not function correctly unless it is implemnted. - // Please implement me. - assert(false); - return false; -} - -/** @brief Ota Storage Driver Retrieve Last Stored Offset - * - * This callback defines the low-level means by which a device retrieves the - * last persistently recorded download offset. This may be different than last - * actual download offset. - * - */ -uint32_t emberAfOtaStorageDriverRetrieveLastStoredOffsetCallback(void) -{ - // The storage driver and the rest of the OTA bootload code will not function correctly unless it is implemnted. - // Please implement me. - assert(false); - return 0; -} - -/** @brief Ota Storage Driver Write - * - * This callback defines the low-level means by which a device reads from the - * OTA storage device. - * - * @param dataToWrite A pointer to the data that will be written to the storage - * device. Ver.: always - * @param offset The address offset from the start of the storage device where - * data will be written. Ver.: always - * @param length The length of the data to be written to the storage device. - * Ver.: always - */ -bool emberAfOtaStorageDriverWriteCallback(const uint8_t * dataToWrite, uint32_t offset, uint32_t length) -{ - // The storage driver and the rest of the OTA bootload code will not function correctly unless it is implemnted. - // Please implement me. - assert(false); - return false; -} - -/** @brief Ota Storage Finish Download - * - * This function indicates to the storage module that the download has finished. - * - * @param offset The final offset of the downloaded file (i.e. the total size) - * Ver.: always - */ -EmberAfOtaStorageStatus emberAfOtaStorageFinishDownloadCallback(uint32_t offset) -{ - return EMBER_AF_OTA_STORAGE_SUCCESS; -} - -/** @brief Ota Storage Get Count - * - * This callback returns the total number of ZigBee Over-the-air upgrade images - * stored in the storage module. - * - */ -uint8_t emberAfOtaStorageGetCountCallback(void) -{ - return 0; -} - -/** @brief Ota Storage Get Full Header - * - * This callback populates the EmberAfOtaHeader structure pointed to by the - * returnData with data about the OTA file stored in the storage module. - * - * @param id This is a pointer to the image id for the OTA file to retrieve - * information about. Ver.: always - * @param returnData This is a pointer to the location of the structure that - * will be populated with data. Ver.: always - */ -EmberAfOtaStorageStatus emberAfOtaStorageGetFullHeaderCallback(const EmberAfOtaImageId * id, EmberAfOtaHeader * returnData) -{ - // If the requested image cannot be found, then an error shouldb e returned. - return EMBER_AF_OTA_STORAGE_ERROR; -} - -/** @brief Ota Storage Get Total Image Size - * - * This function returns the total size of the ZigBee Over-the-air file with the - * passed parameters. If no file is found with those parameters, 0 is returned. - * - * @param id A pointer to the image identifier for the OTA file to retrieve - * information for. Ver.: always - */ -uint32_t emberAfOtaStorageGetTotalImageSizeCallback(const EmberAfOtaImageId * id) -{ - // On failure this should return an image size of zero. - return 0; -} - -/** @brief Ota Storage Init - * - * This callback initializes the ZigBee Over-the-air storage module. - * - */ -EmberAfOtaStorageStatus emberAfOtaStorageInitCallback(void) -{ - return EMBER_AF_OTA_STORAGE_SUCCESS; -} - -/** @brief Ota Storage Iterator First - * - * This callback lets you walk through the list of all OTA files by jumping to - * the first file in the list maintained by the storage module. If there is no - * file then emberAfOtaInvalidImageId is returned. - * - */ -EmberAfOtaImageId emberAfOtaStorageIteratorFirstCallback(void) -{ - // It is expected that the storage module maintain its own internal iterator that the 'first' and 'next' functions will - // manipulate. - - // If there are no images at all, this function should return the invalid image id. - return emberAfInvalidImageId; -} - -/** @brief Ota Storage Iterator Next - * - * This callback lets you walk through the list of all OTA files by jumping to - * the next file in the list maintained by the storage module. If there is no - * next file then emberAfOtaInvalidImageId is returned. - * - */ -EmberAfOtaImageId emberAfOtaStorageIteratorNextCallback(void) -{ - // It is expected that the storage module maintain its own internal iterator that the 'first' and 'next' functions will - // manipulate. - - // If there are no more images, this function should return the invalid image id. - return emberAfInvalidImageId; -} - -/** @brief Ota Storage Read Image Data - * - * This callback reads data from the specified OTA file and returns that data to - * the caller. - * - * @param id This is a pointer to the image id for the OTA file to retrieve data - * from. Ver.: always - * @param offset This is the offset relative to the start of the image where the - * data should be read from. Ver.: always - * @param length This is the length of data that will be read. Ver.: always - * @param returnData This is a pointer to where the data read out of the file - * will be written to Ver.: always - * @param returnedLength This is a pointer to a variable where the actual length - * of data read will be written to. A short read may occur if the end of file - * was reached. Ver.: always - */ -EmberAfOtaStorageStatus emberAfOtaStorageReadImageDataCallback(const EmberAfOtaImageId * id, uint32_t offset, uint32_t length, - uint8_t * returnData, uint32_t * returnedLength) -{ - // If the requested image cannot be found, then an error should be returned. - return EMBER_AF_OTA_STORAGE_ERROR; -} - -/** @brief Ota Storage Search - * - * This callback searches through the list of all images for one that matches - * the passed parameters. On success an image identifier is returned with a - * matching image. On failure emberAfInvalidImageId is returned. - * - * @param manufacturerId The ZigBee assigned identifier of the manufacturer - * contained in the OTA image being searched for. Ver.: always - * @param imageTypeId The image type identifier contained in the OTA image being - * searched for. Ver.: always - * @param hardwareVersion This is a pointer to the hardware version that will be - * used in the search. If the pointer is NULL, hardware version will not be - * considered when searching for matching images. If it points to a value, the - * search will only consider images where that value falls between the minimum - * and maxmimum hardware version specified in the OTA file. If no hardware - * version is present in an OTA file but the other parameters match, the file - * will be considered a match Ver.: always - */ -EmberAfOtaImageId emberAfOtaStorageSearchCallback(uint16_t manufacturerId, uint16_t imageTypeId, const uint16_t * hardwareVersion) -{ - // If no image is found that matches the search criteria, this function should return the invalid image id. - return emberAfInvalidImageId; -} - -/** @brief Ota Storage Write Temp Data - * - * This function writes to the temporary data in the storage device at the - * specified offset. It is used when downloading a raw image over the air. - * - * @param offset The location within the download image file where to write the - * data. Ver.: always - * @param length The length of data to write. Ver.: always - * @param data A pointer to the temporary data that will be written to the - * storage device. Ver.: always - */ -EmberAfOtaStorageStatus emberAfOtaStorageWriteTempDataCallback(uint32_t offset, uint32_t length, const uint8_t * data) -{ - // If the image data cannot be stored, an error should be returned. - return EMBER_AF_OTA_STORAGE_ERROR; -} - -/** @brief Outgoing Packet Filter - * - * ** REQUIRES INCLUDING THE PACKET-HANDOFF PLUGIN ** - - This is called by - * the Packet Handoff plugin when the stack prepares to send a packet from one - * of the protocol layers specified in ::EmberZigbeePacketType. - - The - * packetType argument is one of the values of the ::EmberZigbeePacketType enum. - * If the stack receives an 802.15.4 MAC beacon, it will call this function with - * the packetType argument set to ::EMBER_ZIGBEE_PACKET_TYPE_BEACON. - - - * The implementation of this callback may alter the data contained in - * packetData, modify options and flags in the auxillary data, or consume the - * packet itself, either sending the message, or discarding it as it sees fit. - * - * @param packetType the type of packet and associated protocol layer Ver.: - * always - * @param packetData flat buffer containing the packet data associated with the - * packet type Ver.: always - * @param size_p a pointer containing the size value of the packet Ver.: always - * @param data auxillary data included with the packet Ver.: always - */ -EmberPacketAction emberAfOutgoingPacketFilterCallback(EmberZigbeePacketType packetType, uint8_t * packetData, uint8_t * size_p, - void * data) -{ - return EMBER_ACCEPT_PACKET; -} - -/** @brief Partner Link Key Exchange Request - * - * This function is called by the framework on SOC platforms when a remote node - * requests a partner link key exchange. The application should return - * EMBER_SUCCESS to accept the request or any other status to reject it. On - * network coprocessor platforms, this function will not be called because the - * NCP handles partner link key exchange requests based on the binding policy. - * - * @param partner The EUI of the remote node. Ver.: always - */ -EmberZdoStatus emberAfPartnerLinkKeyExchangeRequestCallback(EmberEUI64 partner) -{ - return EMBER_ZDP_NOT_SUPPORTED; -} - -/** @brief Partner Link Key Exchange Response - * - * This function is called by the framework when a remote node requests a - * partner link key exchange. The application should return true to accept the - * request or false to reject it. On network coprocessor platforms, this - * function will not be called because the NCP handles partner link key exchange - * requests based on the binding policy. - * - * @param sender The EUI of the remote node. Ver.: always - * @param status The ZDO response status. Ver.: always - */ -void emberAfPartnerLinkKeyExchangeResponseCallback(EmberNodeId sender, EmberZdoStatus status) {} - -/** @brief Performing Key Establishment - * - * This function is called by the framework to determine if the device is - * performing key establishment. The application should return true if key - * establishment is in progress. - * - */ -bool emberAfPerformingKeyEstablishmentCallback(void) -{ - return false; -} - -/** @brief Get Distributed Key - * - * This callback is fired when the Network Steering plugin needs to set the distributed - * key. The application set the distributed key from Zigbee Alliance thru this callback - * or the network steering will use the default test key. - * - * @param pointer to the distributed key struct - * @return true if the key is loaded successfully, otherwise false. - * level. Ver.: always - */ -bool emberAfPluginNetworkSteeringGetDistributedKeyCallback(EmberKeyData * key) -{ - return false; -} - -/** @brief Get Power For Radio Channel - * - * This callback is fired when the Network Steering plugin needs to set the - * power level. The application has the ability to change the max power level - * used for this particular channel. - * - * @param channel The channel that the plugin is inquiring about the power - * level. Ver.: always - */ -int8_t emberAfPluginNetworkSteeringGetPowerForRadioChannelCallback(uint8_t channel) -{ - return emberAfMaxPowerLevel(); -} - -// Ifdef out the attribute change callback, since we implement it in -// DataModelHandler -#if 0 -/** @brief Post Attribute Change - * - * This function is called by the application framework after it changes an - * attribute value. The value passed into this callback is the value to which - * the attribute was set by the framework. - * - * @param endpoint Ver.: always - * @param clusterId Ver.: always - * @param attributeId Ver.: always - * @param mask Ver.: always - * @param manufacturerCode Ver.: always - * @param type Ver.: always - * @param size Ver.: always - * @param value Ver.: always - */ -void emberAfPostAttributeChangeCallback(uint8_t endpoint, EmberAfClusterId clusterId, EmberAfAttributeId attributeId, uint8_t mask, - uint16_t manufacturerCode, uint8_t type, uint8_t size, uint8_t * value) -{} -#endif - -/** @brief Post Em4 Reset - * - * A callback called by application framework, and implemented by em4 plugin - * - */ -void emberAfPostEm4ResetCallback(void) -{ - return; -} - -/** @brief Pre Attribute Change - * - * This function is called by the application framework before it changes an - * attribute value. The value passed into this callback is the value to which - * the attribute is to be set by the framework. The application should return - * ::EMBER_ZCL_STATUS_SUCCESS to permit the change or any other ::EmberAfStatus - * to reject it. - * - * @param endpoint Ver.: always - * @param clusterId Ver.: always - * @param attributeId Ver.: always - * @param mask Ver.: always - * @param manufacturerCode Ver.: always - * @param type Ver.: always - * @param size Ver.: always - * @param value Ver.: always - */ -EmberAfStatus emberAfPreAttributeChangeCallback(uint8_t endpoint, EmberAfClusterId clusterId, EmberAfAttributeId attributeId, - uint8_t mask, uint16_t manufacturerCode, uint8_t type, uint8_t size, - uint8_t * value) -{ - return EMBER_ZCL_STATUS_SUCCESS; -} - -/** @brief Pre Cli Send - * - * This function is called by the framework when it is about to pass a message - * constructed over CLI to the stack primitives for sending. If the function - * returns true it is assumed that the callback has consumed and processed the - * message. The framework will not do any further processing on the message. - - * If the function returns false then it is assumed that the callback has - * not processed the message and the framework will continue to process - * accordingly. - * - * @param apsFrame The structure containing the APS frame Ver.: always - * @param source Source Node Id Ver.: always - * @param destination Destintion Node Id Ver.: always - * @param message Pointer to the message payload Ver.: always - * @param messageLength Length of the message payload Ver.: always - */ -bool emberAfPreCliSendCallback(EmberApsFrame * apsFrame, EmberNodeId source, EmberNodeId destination, uint8_t * message, - uint16_t messageLength) -{ - return false; -} - -/** @brief Pre Command Received - * - * This callback is the second in the Application Framework's message processing - * chain. At this point in the processing of incoming over-the-air messages, the - * application has determined that the incoming message is a ZCL command. It - * parses enough of the message to populate an EmberAfClusterCommand struct. The - * Application Framework defines this struct value in a local scope to the - * command processing but also makes it available through a global pointer - * called emberAfCurrentCommand, in app/framework/util/util.c. When command - * processing is complete, this pointer is cleared. - * - * @param cmd Ver.: always - */ -bool emberAfPreCommandReceivedCallback(EmberAfClusterCommand * cmd) -{ - return false; -} - -/** @brief Pre Message Received - * - * This callback is the first in the Application Framework's message processing - * chain. The Application Framework calls it when a message has been received - * over the air but has not yet been parsed by the ZCL command-handling code. If - * you wish to parse some messages that are completely outside the ZCL - * specification or are not handled by the Application Framework's command - * handling code, you should intercept them for parsing in this callback. - - * This callback returns a Boolean value indicating whether or not the message - * has been handled. If the callback returns a value of true, then the - * Application Framework assumes that the message has been handled and it does - * nothing else with it. If the callback returns a value of false, then the - * application framework continues to process the message as it would with any - * incoming message. - Note: This callback receives a pointer to an - * incoming message struct. This struct allows the application framework to - * provide a unified interface between both Host devices, which receive their - * message through the ezspIncomingMessageHandler, and SoC devices, which - * receive their message through emberIncomingMessageHandler. - * - * @param incomingMessage Ver.: always - */ -bool emberAfPreMessageReceivedCallback(EmberAfIncomingMessage * incomingMessage) -{ - return false; -} - -/** @brief Pre Message Send - * - * This function is called by the framework when it is about to pass a message - * to the stack primitives for sending. This message may or may not be ZCL, - * ZDO, or some other protocol. This is called prior to - any ZigBee - * fragmentation that may be done. If the function returns true it is assumed - * the callback has consumed and processed the message. The callback must also - * set the EmberStatus status code to be passed back to the caller. The - * framework will do no further processing on the message. - If the - * function returns false then it is assumed that the callback has not processed - * the mesasge and the framework will continue to process accordingly. - * - * @param messageStruct The structure containing the parameters of the APS - * message to be sent. Ver.: always - * @param status A pointer to the status code value that will be returned to the - * caller. Ver.: always - */ -bool emberAfPreMessageSendCallback(EmberAfMessageStruct * messageStruct, EmberStatus * status) -{ - return false; -} - -/** @brief Pre Ncp Reset - * - * This function will be called prior to the reset of the NCP by the host. - * - */ -void emberAfPreNcpResetCallback(void) {} - -/** @brief Pre ZDO Message Received - * - * This function passes the application an incoming ZDO message and gives the - * appictation the opportunity to handle it. By default, this callback returns - * false indicating that the incoming ZDO message has not been handled and - * should be handled by the Application Framework. - * - * @param emberNodeId Ver.: always - * @param apsFrame Ver.: always - * @param message Ver.: always - * @param length Ver.: always - */ -bool emberAfPreZDOMessageReceivedCallback(EmberNodeId emberNodeId, EmberApsFrame * apsFrame, uint8_t * message, uint16_t length) -{ - return false; -} - -/** @brief Read Attributes Response - * - * This function is called by the application framework when a Read Attributes - * Response command is received from an external device. The application should - * return true if the message was processed or false if it was not. - * - * @param clusterId The cluster identifier of this response. Ver.: always - * @param buffer Buffer containing the list of read attribute status records. - * Ver.: always - * @param bufLen The length in bytes of the list. Ver.: always - */ -bool emberAfReadAttributesResponseCallback(EmberAfClusterId clusterId, uint8_t * buffer, uint16_t bufLen) -{ - return false; -} - -/** @brief Read Reporting Configuration Command - * - * This function is called by the application framework when a Read Reporting - * Configuration command is received from an external device. The application - * should return true if the message was processed or false if it was not. - * - * @param cmd Ver.: always - */ -bool emberAfReadReportingConfigurationCommandCallback(const EmberAfClusterCommand * cmd) -{ - return false; -} - -/** @brief Read Reporting Configuration Response - * - * This function is called by the application framework when a Read Reporting - * Configuration Response command is received from an external device. The - * application should return true if the message was processed or false if it - * was not. - * - * @param clusterId The cluster identifier of this response. Ver.: always - * @param buffer Buffer containing the list of attribute reporting configuration - * records. Ver.: always - * @param bufLen The length in bytes of the list. Ver.: always - */ -bool emberAfReadReportingConfigurationResponseCallback(EmberAfClusterId clusterId, uint8_t * buffer, uint16_t bufLen) -{ - return false; -} - -/** @brief Scenes Cluster Recall Saved Scene - * - * This function is called by the framework when the application should recall a - * saved scene. - * - * @param endpoint The endpoint. Ver.: always - * @param groupId The group identifier. Ver.: always - * @param sceneId The scene identifier. Ver.: always - */ -EmberAfStatus emberAfScenesClusterRecallSavedSceneCallback(uint8_t endpoint, uint16_t groupId, uint8_t sceneId) -{ - return EMBER_ZCL_STATUS_FAILURE; -} - -/** @brief Registration Abort - * - * This callback is called when the device should abort the registration - * process. - * - */ -void emberAfRegistrationAbortCallback(void) {} - -/** @brief Registration - * - * This callback is called when the device joins a network and the process of - * registration is complete. This callback provides a success value of true if - * the registration process was successful and a value of false if registration - * failed. - * - * @param success true if registration succeeded, false otherwise. Ver.: always - */ -void emberAfRegistrationCallback(bool success) {} - -/** @brief Registration Start - * - * This callback is called when the device joins a network and the registration - * process should begin. The application should return EMBER_SUCCESS if the - * registration process started successfully. When registration is complete, - * the application should call emberAfRegistrationCallback with an indication of - * success or failure. - * - */ -EmberStatus emberAfRegistrationStartCallback(void) -{ - return EMBER_LIBRARY_NOT_PRESENT; -} - -/** @brief Remote Delete Binding Permission - * - * This function is called by the framework to request permission to service the - * remote delete binding request. Return EMBER_SUCCESS to allow request, - * anything else to disallow request. - * - * @param index index to an Ember binding table entry Ver.: always - */ -EmberStatus emberAfRemoteDeleteBindingPermissionCallback(uint8_t index) -{ - return EMBER_SUCCESS; // default -} - -/** @brief Remote Set Binding Permission - * - * This function is called by the framework to request permission to service the - * remote set binding request. Return EMBER_SUCCESS to allow request, anything - * else to disallow request. - * - * @param entry Ember Binding Tablet Entry Ver.: always - */ -EmberStatus emberAfRemoteSetBindingPermissionCallback(const EmberBindingTableEntry * entry) -{ - return EMBER_SUCCESS; // default -} - -/** @brief Remove From Current App Tasks - * - * This function is only useful to sleepy end devices. This function will - * remove the passed item from the set of tasks the application has outstanding - * (e.g. message sent requiring APS acknwoledgement). This will affect how the - * application behaves with regard to sleeping and polling. Removing the item - * from the list of outstanding tasks may allow the device to sleep longer and - * poll less frequently. If there are other outstanding tasks the system may - * still have to stay away and poll more often. - * - * @param tasks Ver.: always - */ -void emberAfRemoveFromCurrentAppTasksCallback(EmberAfApplicationTask tasks) {} - -/** @brief Scenes Cluster Remove Scenes In Group - * - * This function removes the scenes from a specified group. - * - * @param endpoint Endpoint Ver.: always - * @param groupId Group ID Ver.: always - */ -void emberAfScenesClusterRemoveScenesInGroupCallback(uint8_t endpoint, uint16_t groupId) {} - -/** @brief Report Attributes - * - * This function is called by the application framework when a Report Attributes - * command is received from an external device. The application should return - * true if the message was processed or false if it was not. - * - * @param clusterId The cluster identifier of this command. Ver.: always - * @param buffer Buffer containing the list of attribute report records. Ver.: - * always - * @param bufLen The length in bytes of the list. Ver.: always - */ -bool emberAfReportAttributesCallback(EmberAfClusterId clusterId, uint8_t * buffer, uint16_t bufLen) -{ - return false; -} - -/** @brief Reporting Attribute Change - * - * This function is called by the framework when an attribute managed by the - * framework changes. The application should call this function when an - * externally-managed attribute changes. The application should use the change - * notification to inform its reporting decisions. - * - * @param endpoint Ver.: always - * @param clusterId Ver.: always - * @param attributeId Ver.: always - * @param mask Ver.: always - * @param manufacturerCode Ver.: always - * @param type Ver.: always - * @param data Ver.: always - */ -void emberAfReportingAttributeChangeCallback(uint8_t endpoint, EmberAfClusterId clusterId, EmberAfAttributeId attributeId, - uint8_t mask, uint16_t manufacturerCode, EmberAfAttributeType type, uint8_t * data) -{} - -/** @brief Scan Error - * - * This is called by the framework on behalf of the form-and-join library to - * notify the application if an error occurs while scanning. See form-and-join - * documentation for more information. - * - * @param status The status of the scan. Ver.: always - */ -void emberAfScanErrorCallback(EmberStatus status) {} - -/** @brief Security Init - * - * This callback is called by the framework to give the application a chance to - * modify the security settings of the node during network initialization. - * Depending on the context when this callback is called, the pointer to the - * initial security state may be NULL, which means the initial security state - * can no longer be modified as the node is already operating on the network. - * - * @param state Ver.: always - * @param extended Ver.: always - * @param trustCenter Ver.: always - */ -void emberAfSecurityInitCallback(EmberInitialSecurityState * state, EmberExtendedSecurityBitmask * extended, bool trustCenter) {} - -/** @brief Key Establishment Cluster Server Command Received - * - * This function is called by the application framework when a client-to-server - * key establishment command is received but has yet to be handled by the - * framework code. This function should return a bool value indicating whether - * the command has been handled by the application code and should not be - * further processed by the framework. - * - * @param cmd Ver.: always - */ -bool emberAfKeyEstablishmentClusterServerCommandReceivedCallback(EmberAfClusterCommand * cmd) -{ - return false; -} - -/** @brief Set Default Poll Control - * - * This function will set the default poll control for the current network to - * control whether or not it can long poll. - * - * @param control Ver.: always - */ -void emberAfSetDefaultPollControlCallback(EmberAfEventPollControl control) {} - -/** @brief Set Default Sleep Control - * - * This function will set the default behavior of a sleeping device to control - * whether or not it must stay awake. A device that stays awake does not sleep - * at all. Otherwise, the device can sleep between events when appropriate. - * - * @param control Ver.: always - */ -void emberAfSetDefaultSleepControlCallback(EmberAfEventSleepControl control) {} - -/** @brief Set Form And Join Extended Pan Id - * - * This callback is called by the framework to set the extended PAN ID used by - * the current network for forming and joining. The extended PAN ID used for - * forming and joining is not necessarily the same extended PAN ID actually in - * use on the network. - * - * @param extendedPanId Ver.: always - */ -void emberAfSetFormAndJoinExtendedPanIdCallback(const uint8_t * extendedPanId) {} - -/** @brief Set Long Poll Interval Ms - * - * This function is only useful to end devices. This function will set the long - * poll interval (in milliseconds) for the current network. This interval is - * the maximum amount of time a child will wait between polls of its parent when - * it is not expecting data. - * - * @param longPollIntervalMs Ver.: always - */ -void emberAfSetLongPollIntervalMsCallback(uint32_t longPollIntervalMs) {} - -/** @brief Set Long Poll Interval Qs - * - * This function is only useful to end devices. This function will set the long - * poll interval (in quarter seconds) for the current network. This interval is - * the maximum amount of time a child will wait between polls of its parent when - * it is not expecting data. - * - * @param longPollIntervalQs Ver.: always - */ -void emberAfSetLongPollIntervalQsCallback(uint32_t longPollIntervalQs) {} - -/** @brief Set Short Poll Interval Ms - * - * This function is only useful to sleepy end devices. This function will set - * the short poll interval (in milliseconds) for the current network. This - * interval is the maximum amount of time a child will wait between polls of its - * parent when it is expecting data. - * - * @param shortPollIntervalMs Ver.: always - */ -void emberAfSetShortPollIntervalMsCallback(uint16_t shortPollIntervalMs) {} - -/** @brief Set Short Poll Interval Qs - * - * This function is only useful to sleepy end devices. This function will set - * the short poll interval (in quarter seconds) for the current network. This - * interval is the maximum amount of time a child will wait between polls of its - * parent when it is expecting data. - * - * @param shortPollIntervalQs Ver.: always - */ -void emberAfSetShortPollIntervalQsCallback(uint16_t shortPollIntervalQs) {} - -/** @brief Set Source Route Overhead - * - * This function is called by the framework when it has information about the - * source route overhead to a particular destination. The application may use - * this information to cache the source route overhead. - * - * @param destination The node id of the destination Ver.: always - * @param overhead The overhead in bytes Ver.: always - */ -void emberAfSetSourceRouteOverheadCallback(EmberNodeId destination, uint8_t overhead) {} - -/** @brief Set Time - * - * This callback should be implemented, if the device has access to real time - * clock, and has an ability to update that clock. The application framework - * expects to be passed the utcTime which is the number of seconds since the - * year 2000. Default implementation does nothing. Note: This function used to - * take time in year, month, day, hour, min, sec. We have changed this to - * utcTime in order to conserve code space. - * - * @param utcTime Ver.: always - */ -void emberAfSetTimeCallback(uint32_t utcTime) {} - -// Ifdef out emberAfOnOffClusterSetValueCallback, since it's implemented by -// on-off.c -#if 0 -/** @brief On/off Cluster Set Value - * - * This function is called when the on/off value needs to be set, either through - * normal channels or as a result of a level change. - * - * @param endpoint Ver.: always - * @param command Ver.: always - * @param initiatedByLevelChange Ver.: always - */ -EmberAfStatus emberAfOnOffClusterSetValueCallback(uint8_t endpoint, uint8_t command, bool initiatedByLevelChange) -{ - return EMBER_ZCL_STATUS_UNSUP_CLUSTER_COMMAND; -} -#endif - -/** @brief Set Wake Timeout Bitmask - * - * This function is only useful to sleepy end devices. This function will set - * the wake timeout bitmask for the current network. The bitmask determines - * which tasks will timeout automatically and which tasks require manual removal - * from the task list. - * - * @param tasks Ver.: always - */ -void emberAfSetWakeTimeoutBitmaskCallback(EmberAfApplicationTask tasks) {} - -/** @brief Set Wake Timeout Ms - * - * This function is only useful to sleepy end devices. This function will set - * the wake timeout (in milliseconds) for the current network. This timeout is - * the maximum amount of time a child will wait for a task in the wake bitmask - * to finish. While waiting, the device will short poll. - * - * @param wakeTimeoutMs Ver.: always - */ -void emberAfSetWakeTimeoutMsCallback(uint16_t wakeTimeoutMs) {} - -/** @brief Set Wake Timeout Qs - * - * This function is only useful to sleepy end devices. This function will set - * the wake timeout (in quarter seconds) for the current network. This timeout - * is the maximum amount of time a child will wait for a task in the wake - * bitmask to finish. While waiting, the device will short poll. - * - * @param wakeTimeoutQs Ver.: always - */ -void emberAfSetWakeTimeoutQsCallback(uint16_t wakeTimeoutQs) {} - -/** @brief Start Move - * - * This function is called to initiate the process for a device to move (rejoin) - * to a new parent. - * - */ -bool emberAfStartMoveCallback(void) -{ - return false; -} - -/** @brief Start Search For Joinable Network - * - * This function is called by the framework to search for joinable networks and - * join a network. The application should return EMBER_SUCCESS if the operation - * was initiated successfully. - * - */ -EmberStatus emberAfStartSearchForJoinableNetworkCallback(void) -{ - return EMBER_LIBRARY_NOT_PRESENT; -} - -/** @brief Stop Move - * - * This function is called to cancel a previously scheduled move (rejoin) to a - * new parent. - * - */ -void emberAfStopMoveCallback(void) {} - -/** @brief Scenes Cluster Store Current Scene - * - * This function is called by the framework when the application should store - * the current scene. If an entry already exists in the scene table with the - * same scene and group ids, the application should update the entry with the - * current scene. Otherwise, a new entry should be adde to the scene table, if - * possible. - * - * @param endpoint The endpoint. Ver.: always - * @param groupId The group identifier. Ver.: always - * @param sceneId The scene identifier. Ver.: always - */ -EmberAfStatus emberAfScenesClusterStoreCurrentSceneCallback(uint8_t endpoint, uint16_t groupId, uint8_t sceneId) -{ - return EMBER_ZCL_STATUS_FAILURE; -} - -/** @brief Trust Center Join - * - * This callback is called from within the application framework's - * implementation of emberTrustCenterJoinHandler or ezspTrustCenterJoinHandler. - * This callback provides the same arguments passed to the - * TrustCenterJoinHandler. For more information about the TrustCenterJoinHandler - * please see documentation included in stack/include/trust-center.h. - * - * @param newNodeId Ver.: always - * @param newNodeEui64 Ver.: always - * @param parentOfNewNode Ver.: always - * @param status Ver.: always - * @param decision Ver.: always - */ -void emberAfTrustCenterJoinCallback(EmberNodeId newNodeId, EmberEUI64 newNodeEui64, EmberNodeId parentOfNewNode, - EmberDeviceUpdate status, EmberJoinDecision decision) -{} - -/** @brief Trust Center Keepalive Abort - * - * This callback is called when the device should abort the trust center - * keepalive process. - * - */ -void emberAfTrustCenterKeepaliveAbortCallback(void) {} - -/** @brief Trust Center Keepalive Update - * - * This callback is called when the device finishes registration (successfully - * or otherwise) and the trust center keepalive process must be updated. If the - * keepalive process has not been started, then it is started. Otherwise if the - * keepalive is in the process of searching for the TC, it will process the - * result of that Trust Center search operation. - * - * @param registrationComplete Ver.: always - */ -void emberAfTrustCenterKeepaliveUpdateCallback(bool registrationComplete) {} - -/** @brief Unused Pan Id Found - * - * This is called by the framework on behalf of the form-and-join library to - * notify the application of the PAN id and channel found following a call to - * ::emberScanForUnusedPanId(). See form-and-join documentation for more - * information. - * - * @param panId Ver.: always - * @param channel Ver.: always - */ -void emberAfUnusedPanIdFoundCallback(EmberPanId panId, uint8_t channel) {} - -/** @brief Write Attributes Response - * - * This function is called by the application framework when a Write Attributes - * Response command is received from an external device. The application should - * return true if the message was processed or false if it was not. - * - * @param clusterId The cluster identifier of this response. Ver.: always - * @param buffer Buffer containing the list of write attribute status records. - * Ver.: always - * @param bufLen The length in bytes of the list. Ver.: always - */ -bool emberAfWriteAttributesResponseCallback(EmberAfClusterId clusterId, uint8_t * buffer, uint16_t bufLen) -{ - return false; -} - -/** @brief Zigbee Key Establishment - * - * A callback to the application to notify it of the status of the request for a - * Link Key. - * - * @param partner partner The IEEE address of the partner device. Or all zeros - * if the Key establishment failed. Ver.: always - * @param status The status of the key establishment. Ver.: always - */ -void emberAfZigbeeKeyEstablishmentCallback(EmberEUI64 partner, EmberKeyStatus status) {} - -/** - * @brief Called whenever the radio is powered off. - */ -void halRadioPowerDownHandler(void) {} - -/** - * @brief Called whenever the radio is powered on. - */ -void halRadioPowerUpHandler(void) {} - -/** - * @brief Called whenever the microcontroller enters/exits a idle/sleep mode - * - * @param enter True if entering idle/sleep, False if exiting - * @param sleepMode Idle/sleep mode - */ -void halSleepCallback(bool enter, SleepModes sleepMode) {} - -// These functions / constants are added to avoid ld failure when building with GN -// They should be removed if we have zcl updates and nolonger need this or causing other errors -bool emberAfIsCurrentSecurityProfileSmartEnergy(void) -{ - return false; -} - -const EmberAfOtaImageId emberAfInvalidImageId; - -void emberAfPluginUpdateTcLinkKeyZigbeeKeyEstablishmentCallback(EmberEUI64 partner, EmberKeyStatus status) {} - -void emberAfPluginNetworkSteeringMarker(void) {} diff --git a/examples/lighting-app/lighting-common/gen/callback-stub.cpp b/examples/lighting-app/lighting-common/gen/callback-stub.cpp new file mode 100644 index 00000000000000..232854b0ab82d5 --- /dev/null +++ b/examples/lighting-app/lighting-common/gen/callback-stub.cpp @@ -0,0 +1,547 @@ + +/* + * + * 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. + */ + +#include "callback.h" +#include "cluster-id.h" + +using namespace chip; + +// Cluster Init Functions +void emberAfClusterInitCallback(EndpointId endpoint, ClusterId clusterId) +{ + switch (clusterId) + { + case ZCL_LEVEL_CONTROL_CLUSTER_ID: + emberAfLevelControlClusterInitCallback(endpoint); + break; + case ZCL_ON_OFF_CLUSTER_ID: + emberAfOnOffClusterInitCallback(endpoint); + break; + default: + // Unrecognized cluster ID + break; + } +} + +void __attribute__((weak)) emberAfLevelControlClusterInitCallback(EndpointId endpoint) +{ + // To prevent warning + (void) endpoint; +} + +// +// Non-Cluster Related Callbacks +// + +/** @brief Add To Current App Tasks + * + * This function is only useful to sleepy end devices. This function will note + * the passed item as part of a set of tasks the application has outstanding + * (e.g. message sent requiring APS acknwoledgement). This will affect how the + * application behaves with regard to sleeping and polling. Until the + * outstanding task is completed, the device may poll more frequently and sleep + * less often. + * + * @param tasks Ver.: always + */ +void emberAfAddToCurrentAppTasksCallback(EmberAfApplicationTask tasks) {} + +/** @brief Remove From Current App Tasks + * + * This function is only useful to sleepy end devices. This function will + * remove the passed item from the set of tasks the application has outstanding + * (e.g. message sent requiring APS acknwoledgement). This will affect how the + * application behaves with regard to sleeping and polling. Removing the item + * from the list of outstanding tasks may allow the device to sleep longer and + * poll less frequently. If there are other outstanding tasks the system may + * still have to stay away and poll more often. + * + * @param tasks Ver.: always + */ +void emberAfRemoveFromCurrentAppTasksCallback(EmberAfApplicationTask tasks) {} + +/** @brief Allow Network Write Attribute + * + * This function is called by the application framework before it writes an + * attribute in response to a write attribute request from an external device. + * The value passed into this callback is the value to which the attribute is to + * be set by the framework. + Example: In mirroring simple metering data + * on an Energy Services Interface (ESI) (formerly called Energy Service Portal + * (ESP) in SE 1.0).), a mirrored simple meter needs to write read-only + * attributes on its mirror. The-meter-mirror sample application, located in + * app/framework/sample-apps, uses this callback to allow the mirrored device to + * write simple metering attributes on the mirror regardless of the fact that + * most simple metering attributes are defined as read-only by the ZigBee + * specification. + Note: The ZCL specification does not (as of this + * writing) specify any permission-level security for writing writeable + * attributes. As far as the ZCL specification is concerned, if an attribute is + * writeable, any device that has a link key for the device should be able to + * write that attribute. Furthermore if an attribute is read only, it should not + * be written over the air. Thus, if you implement permissions for writing + * attributes as a feature, you MAY be operating outside the specification. This + * is unlikely to be a problem for writing read-only attributes, but it may be a + * problem for attributes that are writeable according to the specification but + * restricted by the application implementing this callback. + * + * @param endpoint Ver.: always + * @param clusterId Ver.: always + * @param attributeId Ver.: always + * @param mask Ver.: always + * @param manufacturerCode Ver.: always + * @param value Ver.: always + * @param type Ver.: always + */ +EmberAfAttributeWritePermission emberAfAllowNetworkWriteAttributeCallback(EndpointId endpoint, ClusterId clusterId, + AttributeId attributeId, uint8_t mask, + uint16_t manufacturerCode, uint8_t * value, uint8_t type) +{ + return EMBER_ZCL_ATTRIBUTE_WRITE_PERMISSION_ALLOW_WRITE_NORMAL; // Default +} + +/** @brief Attribute Read Access + * + * This function is called whenever the Application Framework needs to check + * access permission for an attribute read. + * + * @param endpoint Ver.: always + * @param clusterId Ver.: always + * @param manufacturerCode Ver.: always + * @param attributeId Ver.: always + */ +bool emberAfAttributeReadAccessCallback(EndpointId endpoint, ClusterId clusterId, uint16_t manufacturerCode, + AttributeId attributeId) +{ + return true; +} + +/** @brief Attribute Write Access + * + * This function is called whenever the Application Framework needs to check + * access permission for an attribute write. + * + * @param endpoint Ver.: always + * @param clusterId Ver.: always + * @param manufacturerCode Ver.: always + * @param attributeId Ver.: always + */ +bool emberAfAttributeWriteAccessCallback(EndpointId endpoint, ClusterId clusterId, uint16_t manufacturerCode, + AttributeId attributeId) +{ + return true; +} + +/** @brief Default Response + * + * This function is called by the application framework when a Default Response + * command is received from an external device. The application should return + * true if the message was processed or false if it was not. + * + * @param clusterId The cluster identifier of this response. Ver.: always + * @param commandId The command identifier to which this is a response. Ver.: + * always + * @param status Specifies either SUCCESS or the nature of the error that was + * detected in the received command. Ver.: always + */ +bool emberAfDefaultResponseCallback(ClusterId clusterId, CommandId commandId, EmberAfStatus status) +{ + return false; +} + +/** @brief Discover Attributes Response + * + * This function is called by the application framework when a Discover + * Attributes Response or Discover Attributes Extended Response command is + * received from an external device. The Discover Attributes Response command + * contains a bool indicating if discovery is complete and a list of zero or + * more attribute identifier/type records. The final argument indicates whether + * the response is in the extended format or not. The application should return + * true if the message was processed or false if it was not. + * + * @param clusterId The cluster identifier of this response. Ver.: always + * @param discoveryComplete Indicates whether there are more attributes to be + * discovered. true if there are no more attributes to be discovered. Ver.: + * always + * @param buffer Buffer containing the list of attribute identifier/type + * records. Ver.: always + * @param bufLen The length in bytes of the list. Ver.: always + * @param extended Indicates whether the response is in the extended format or + * not. Ver.: always + */ +bool emberAfDiscoverAttributesResponseCallback(ClusterId clusterId, bool discoveryComplete, uint8_t * buffer, uint16_t bufLen, + bool extended) +{ + return false; +} + +/** @brief Discover Commands Generated Response + * + * This function is called by the framework when Discover Commands Generated + * Response is received. + * + * @param clusterId The cluster identifier of this response. Ver.: always + * @param manufacturerCode Manufacturer code Ver.: always + * @param discoveryComplete Indicates whether there are more commands to be + * discovered. Ver.: always + * @param commandIds Buffer containing the list of command identifiers. Ver.: + * always + * @param commandIdCount The length of bytes of the list, whish is the same as + * the number of identifiers. Ver.: always + */ +bool emberAfDiscoverCommandsGeneratedResponseCallback(ClusterId clusterId, uint16_t manufacturerCode, bool discoveryComplete, + CommandId * commandIds, uint16_t commandIdCount) +{ + return false; +} + +/** @brief Discover Commands Received Response + * + * This function is called by the framework when Discover Commands Received + * Response is received. + * + * @param clusterId The cluster identifier of this response. Ver.: always + * @param manufacturerCode Manufacturer code Ver.: always + * @param discoveryComplete Indicates whether there are more commands to be + * discovered. Ver.: always + * @param commandIds Buffer containing the list of command identifiers. Ver.: + * always + * @param commandIdCount The length of bytes of the list, whish is the same as + * the number of identifiers. Ver.: always + */ +bool emberAfDiscoverCommandsReceivedResponseCallback(ClusterId clusterId, uint16_t manufacturerCode, bool discoveryComplete, + CommandId * commandIds, uint16_t commandIdCount) +{ + return false; +} + +/** @brief Pre Command Received + * + * This callback is the second in the Application Framework's message processing + * chain. At this point in the processing of incoming over-the-air messages, the + * application has determined that the incoming message is a ZCL command. It + * parses enough of the message to populate an EmberAfClusterCommand struct. The + * Application Framework defines this struct value in a local scope to the + * command processing but also makes it available through a global pointer + * called emberAfCurrentCommand, in app/framework/util/util.c. When command + * processing is complete, this pointer is cleared. + * + * @param cmd Ver.: always + */ +bool emberAfPreCommandReceivedCallback(EmberAfClusterCommand * cmd) +{ + return false; +} + +/** @brief Pre Message Send + * + * This function is called by the framework when it is about to pass a message + * to the stack primitives for sending. This message may or may not be ZCL, + * ZDO, or some other protocol. This is called prior to + any ZigBee + * fragmentation that may be done. If the function returns true it is assumed + * the callback has consumed and processed the message. The callback must also + * set the EmberStatus status code to be passed back to the caller. The + * framework will do no further processing on the message. + If the + * function returns false then it is assumed that the callback has not processed + * the mesasge and the framework will continue to process accordingly. + * + * @param messageStruct The structure containing the parameters of the APS + * message to be sent. Ver.: always + * @param status A pointer to the status code value that will be returned to the + * caller. Ver.: always + */ +bool emberAfPreMessageSendCallback(EmberAfMessageStruct * messageStruct, EmberStatus * status) +{ + return false; +} + +/** @brief Message Sent + * + * This function is called by the application framework from the message sent + * handler, when it is informed by the stack regarding the message sent status. + * All of the values passed to the emberMessageSentHandler are passed on to this + * callback. This provides an opportunity for the application to verify that its + * message has been sent successfully and take the appropriate action. This + * callback should return a bool value of true or false. A value of true + * indicates that the message sent notification has been handled and should not + * be handled by the application framework. + * + * @param type Ver.: always + * @param indexOrDestination Ver.: always + * @param apsFrame Ver.: always + * @param msgLen Ver.: always + * @param message Ver.: always + * @param status Ver.: always + */ +bool emberAfMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, EmberApsFrame * apsFrame, + uint16_t msgLen, uint8_t * message, EmberStatus status) +{ + return false; +} + +/** @brief Pre Attribute Change + * + * This function is called by the application framework before it changes an + * attribute value. The value passed into this callback is the value to which + * the attribute is to be set by the framework. The application should return + * ::EMBER_ZCL_STATUS_SUCCESS to permit the change or any other ::EmberAfStatus + * to reject it. + * + * @param endpoint Ver.: always + * @param clusterId Ver.: always + * @param attributeId Ver.: always + * @param mask Ver.: always + * @param manufacturerCode Ver.: always + * @param type Ver.: always + * @param size Ver.: always + * @param value Ver.: always + */ +EmberAfStatus emberAfPreAttributeChangeCallback(EndpointId endpoint, ClusterId clusterId, AttributeId attributeId, uint8_t mask, + uint16_t manufacturerCode, uint8_t type, uint8_t size, uint8_t * value) +{ + return EMBER_ZCL_STATUS_SUCCESS; +} + +/** @brief Read Attributes Response + * + * This function is called by the application framework when a Read Attributes + * Response command is received from an external device. The application should + * return true if the message was processed or false if it was not. + * + * @param clusterId The cluster identifier of this response. Ver.: always + * @param buffer Buffer containing the list of read attribute status records. + * Ver.: always + * @param bufLen The length in bytes of the list. Ver.: always + */ +bool emberAfReadAttributesResponseCallback(ClusterId clusterId, uint8_t * buffer, uint16_t bufLen) +{ + return false; +} + +/** @brief External Attribute Read + * + * Like emberAfExternalAttributeWriteCallback above, this function is called + * when the framework needs to read an attribute that is not stored within the + * Application Framework's data structures. + All of the important + * information about the attribute itself is passed as a pointer to an + * EmberAfAttributeMetadata struct, which is stored within the application and + * used to manage the attribute. A complete description of the + * EmberAfAttributeMetadata struct is provided in + * app/framework/include/af-types.h + This function assumes that the + * application is able to read the attribute, write it into the passed buffer, + * and return immediately. Any attributes that require a state machine for + * reading and writing are not really candidates for externalization at the + * present time. The Application Framework does not currently include a state + * machine for reading or writing attributes that must take place across a + * series of application ticks. Attributes that cannot be read in a timely + * manner should be stored within the Application Framework and updated + * occasionally by the application code from within the + * emberAfMainTickCallback. + If the application was successfully able to + * read the attribute and write it into the passed buffer, it should return a + * value of EMBER_ZCL_STATUS_SUCCESS. Ensure that the size of the externally + * managed attribute value is smaller than what the buffer can hold. In the case + * of a buffer overflow throw an appropriate error such as + * EMBER_ZCL_STATUS_INSUFFICIENT_SPACE. Any other return value indicates the + * application was not able to read the attribute. + * + * @param endpoint Ver.: always + * @param clusterId Ver.: always + * @param attributeMetadata Ver.: always + * @param manufacturerCode Ver.: always + * @param buffer Ver.: always + * @param maxReadLength Ver.: always + */ +EmberAfStatus emberAfExternalAttributeReadCallback(EndpointId endpoint, ClusterId clusterId, + EmberAfAttributeMetadata * attributeMetadata, uint16_t manufacturerCode, + uint8_t * buffer, uint16_t maxReadLength) +{ + return EMBER_ZCL_STATUS_FAILURE; +} + +/** @brief Write Attributes Response + * + * This function is called by the application framework when a Write Attributes + * Response command is received from an external device. The application should + * return true if the message was processed or false if it was not. + * + * @param clusterId The cluster identifier of this response. Ver.: always + * @param buffer Buffer containing the list of write attribute status records. + * Ver.: always + * @param bufLen The length in bytes of the list. Ver.: always + */ +bool emberAfWriteAttributesResponseCallback(ClusterId clusterId, uint8_t * buffer, uint16_t bufLen) +{ + return false; +} + +/** @brief External Attribute Write + * + * This function is called whenever the Application Framework needs to write an + * attribute which is not stored within the data structures of the Application + * Framework itself. One of the new features in Version 2 is the ability to + * store attributes outside the Framework. This is particularly useful for + * attributes that do not need to be stored because they can be read off the + * hardware when they are needed, or are stored in some central location used by + * many modules within the system. In this case, you can indicate that the + * attribute is stored externally. When the framework needs to write an external + * attribute, it makes a call to this callback. + This callback is very + * useful for host micros which need to store attributes in persistent memory. + * Because each host micro (used with an Ember NCP) has its own type of + * persistent memory storage, the Application Framework does not include the + * ability to mark attributes as stored in flash the way that it does for Ember + * SoCs like the EM35x. On a host micro, any attributes that need to be stored + * in persistent memory should be marked as external and accessed through the + * external read and write callbacks. Any host code associated with the + * persistent storage should be implemented within this callback. + All of + * the important information about the attribute itself is passed as a pointer + * to an EmberAfAttributeMetadata struct, which is stored within the application + * and used to manage the attribute. A complete description of the + * EmberAfAttributeMetadata struct is provided in + * app/framework/include/af-types.h. + This function assumes that the + * application is able to write the attribute and return immediately. Any + * attributes that require a state machine for reading and writing are not + * candidates for externalization at the present time. The Application Framework + * does not currently include a state machine for reading or writing attributes + * that must take place across a series of application ticks. Attributes that + * cannot be written immediately should be stored within the Application + * Framework and updated occasionally by the application code from within the + * emberAfMainTickCallback. + If the application was successfully able to + * write the attribute, it returns a value of EMBER_ZCL_STATUS_SUCCESS. Any + * other return value indicates the application was not able to write the + * attribute. + * + * @param endpoint Ver.: always + * @param clusterId Ver.: always + * @param attributeMetadata Ver.: always + * @param manufacturerCode Ver.: always + * @param buffer Ver.: always + */ +EmberAfStatus emberAfExternalAttributeWriteCallback(EndpointId endpoint, ClusterId clusterId, + EmberAfAttributeMetadata * attributeMetadata, uint16_t manufacturerCode, + uint8_t * buffer) +{ + return EMBER_ZCL_STATUS_FAILURE; +} + +/** @brief Report Attributes + * + * This function is called by the application framework when a Report Attributes + * command is received from an external device. The application should return + * true if the message was processed or false if it was not. + * + * @param clusterId The cluster identifier of this command. Ver.: always + * @param buffer Buffer containing the list of attribute report records. Ver.: + * always + * @param bufLen The length in bytes of the list. Ver.: always + */ +bool emberAfReportAttributesCallback(ClusterId clusterId, uint8_t * buffer, uint16_t bufLen) +{ + return false; +} + +/** @brief Get Current Time + * + * This callback is called when device attempts to get current time from the + * hardware. If this device has means to retrieve exact time, then this method + * should implement it. If the callback can't provide the exact time it should + * return 0 to indicate failure. Default action is to return 0, which indicates + * that device does not have access to real time. + * + */ +uint32_t emberAfGetCurrentTimeCallback() +{ + return 0; +} + +/** @brief Get Endpoint Info + * + * This function is a callback to an application implemented endpoint that + * operates outside the normal application framework. When the framework wishes + * to perform operations with that endpoint it uses this callback to retrieve + * the endpoint's information. If the endpoint exists and the application can + * provide data then true shall be returned. Otherwise the callback must return + * false. + * + * @param endpoint The endpoint to retrieve data for. Ver.: always + * @param returnNetworkIndex The index corresponding to the ZigBee network the + * endpoint belongs to. If not using a multi-network device, 0 must be + * returned. Otherwise on a multi-network device the stack will switch to this + * network before sending the message. Ver.: always + * @param returnEndpointInfo A pointer to a data struct that will be written + * with information about the endpoint. Ver.: always + */ +bool emberAfGetEndpointInfoCallback(EndpointId endpoint, uint8_t * returnNetworkIndex, + EmberAfEndpointInfoStruct * returnEndpointInfo) +{ + return false; +} + +/** @brief Get Source Route Overhead + * + * This function is called by the framework to determine the overhead required + * in the network frame for source routing to a particular destination. + * + * @param destination The node id of the destination Ver.: always + */ +uint8_t emberAfGetSourceRouteOverheadCallback(EmberNodeId destination) +{ + return 0; +} + +/** @brief Registration Abort + * + * This callback is called when the device should abort the registration + * process. + * + */ +void emberAfRegistrationAbortCallback() {} + +/** @brief Interpan Send Message + * + * This function will send a raw MAC message with interpan frame format using + * the passed parameters. + * + * @param header Interpan header info Ver.: always + * @param messageLength The length of the message received or to send Ver.: + * always + * @param message The message data received or to send. Ver.: always + */ +EmberStatus emberAfInterpanSendMessageCallback(EmberAfInterpanHeader * header, uint16_t messageLength, uint8_t * message) +{ + return EMBER_LIBRARY_NOT_PRESENT; +} + +/** @brief Start Move + * + * This function is called to initiate the process for a device to move (rejoin) + * to a new parent. + * + */ +bool emberAfStartMoveCallback() +{ + return false; +} diff --git a/examples/lighting-app/lighting-common/gen/callback.h b/examples/lighting-app/lighting-common/gen/callback.h index 667d2dbdd048a9..3172c588538880 100644 --- a/examples/lighting-app/lighting-common/gen/callback.h +++ b/examples/lighting-app/lighting-common/gen/callback.h @@ -1,4 +1,5 @@ -/** + +/* * * Copyright (c) 2020 Project CHIP Authors * @@ -15,43 +16,278 @@ * limitations under the License. */ -/** +// Prevent multiple inclusion +#pragma once + +#include "af-structs.h" +#include "af-types.h" +#include "basic-types.h" + +/** @brief Cluster Init * - * Copyright (c) 2020 Silicon Labs + * This function is called when a specific cluster is initialized. It gives the + * application an opportunity to take care of cluster initialization procedures. + * It is called exactly once for each endpoint where cluster is present. * - * 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 + * @param endpoint Ver.: always + * @param clusterId Ver.: always + */ +void emberAfClusterInitCallback(chip::EndpointId endpoint, chip::ClusterId clusterId); + +// Cluster Init Functions + +/** @brief Level Control Cluster Init * - * http://www.apache.org/licenses/LICENSE-2.0 + * Cluster Init * - * 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. + * @param endpoint Endpoint that is being initialized + */ +void emberAfLevelControlClusterInitCallback(chip::EndpointId endpoint); + +/** @brief On/off Cluster Init + * + * Cluster Init + * + * @param endpoint Endpoint that is being initialized + */ +void emberAfOnOffClusterInitCallback(chip::EndpointId endpoint); + +// Cluster Server/Client Init Functions + +// +// Level Control Cluster server +// + +/** @brief Level Control Cluster Server Init + * + * Server Init + * + * @param endpoint Endpoint that is being initialized + */ +void emberAfLevelControlClusterServerInitCallback(chip::EndpointId endpoint); + +/** @brief Level Control Cluster Server Attribute Changed + * + * Server Attribute Changed + * + * @param endpoint Endpoint that is being initialized + * @param attributeId Attribute that changed + */ +void emberAfLevelControlClusterServerAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId); + +/** @brief Level Control Cluster Server Manufacturer Specific Attribute Changed + * + * Server Manufacturer Specific Attribute Changed + * + * @param endpoint Endpoint that is being initialized + * @param attributeId Attribute that changed + * @param manufacturerCode Manufacturer Code of the attribute that changed + */ +void emberAfLevelControlClusterServerManufacturerSpecificAttributeChangedCallback(chip::EndpointId endpoint, + chip::AttributeId attributeId, + uint16_t manufacturerCode); + +/** @brief Level Control Cluster Server Message Sent + * + * Server Message Sent + * + * @param type The type of message sent + * @param indexOrDestination The destination or address to which the message was sent + * @param apsFrame The APS frame for the message + * @param msgLen The length of the message + * @param message The message that was sent + * @param status The status of the sent message + */ +void emberAfLevelControlClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint64_t indexOrDestination, + EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, + EmberStatus status); + +/** @brief Level Control Cluster Server Pre Attribute Changed + * + * server Pre Attribute Changed + * + * @param endpoint Endpoint that is being initialized + * @param attributeId Attribute to be changed + * @param attributeType Attribute type + * @param size Attribute size + * @param value Attribute value */ -// This file is generated by Simplicity Studio. Please do not edit manually. +EmberAfStatus emberAfLevelControlClusterServerPreAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId, + EmberAfAttributeType attributeType, uint8_t size, + uint8_t * value); + +/** @brief Level Control Cluster Server Tick + * + * server Tick + * + * @param endpoint Endpoint that is being served + */ +void emberAfLevelControlClusterServerTickCallback(chip::EndpointId endpoint); + // +// On/off Cluster server // -// Enclosing macro to prevent multiple inclusion -#ifndef SILABS_EMBER_AF_CALLBACK_PROTOTYPES -#define SILABS_EMBER_AF_CALLBACK_PROTOTYPES +/** @brief On/off Cluster Server Init + * + * Server Init + * + * @param endpoint Endpoint that is being initialized + */ +void emberAfOnOffClusterServerInitCallback(chip::EndpointId endpoint); + +/** @brief On/off Cluster Server Attribute Changed + * + * Server Attribute Changed + * + * @param endpoint Endpoint that is being initialized + * @param attributeId Attribute that changed + */ +void emberAfOnOffClusterServerAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId); + +/** @brief On/off Cluster Server Manufacturer Specific Attribute Changed + * + * Server Manufacturer Specific Attribute Changed + * + * @param endpoint Endpoint that is being initialized + * @param attributeId Attribute that changed + * @param manufacturerCode Manufacturer Code of the attribute that changed + */ +void emberAfOnOffClusterServerManufacturerSpecificAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId, + uint16_t manufacturerCode); + +/** @brief On/off Cluster Server Message Sent + * + * Server Message Sent + * + * @param type The type of message sent + * @param indexOrDestination The destination or address to which the message was sent + * @param apsFrame The APS frame for the message + * @param msgLen The length of the message + * @param message The message that was sent + * @param status The status of the sent message + */ +void emberAfOnOffClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint64_t indexOrDestination, + EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, EmberStatus status); + +/** @brief On/off Cluster Server Pre Attribute Changed + * + * server Pre Attribute Changed + * + * @param endpoint Endpoint that is being initialized + * @param attributeId Attribute to be changed + * @param attributeType Attribute type + * @param size Attribute size + * @param value Attribute value + */ +EmberAfStatus emberAfOnOffClusterServerPreAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId, + EmberAfAttributeType attributeType, uint8_t size, + uint8_t * value); + +/** @brief On/off Cluster Server Tick + * + * server Tick + * + * @param endpoint Endpoint that is being served + */ +void emberAfOnOffClusterServerTickCallback(chip::EndpointId endpoint); + +// Cluster Commands Callback /** - * @addtogroup callback Application Framework callback interface Reference - * This header provides callback function prototypes to interface the - * developer's application code with the Ember Application Framework. - * @{ + * @brief Level Control Cluster Move Command callback + * @param moveMode + * @param rate + * @param optionMask + * @param optionOverride */ -#include "af-types.h" -//#include "hal/hal.h" -//#include EMBER_AF_API_NETWORK_STEERING +bool emberAfLevelControlClusterMoveCallback(uint8_t moveMode, uint8_t rate, uint8_t optionMask, uint8_t optionOverride); + +/** + * @brief Level Control Cluster MoveToLevel Command callback + * @param level + * @param transitionTime + * @param optionMask + * @param optionOverride + */ + +bool emberAfLevelControlClusterMoveToLevelCallback(uint8_t level, uint16_t transitionTime, uint8_t optionMask, + uint8_t optionOverride); + +/** + * @brief Level Control Cluster MoveToLevelWithOnOff Command callback + * @param level + * @param transitionTime + */ + +bool emberAfLevelControlClusterMoveToLevelWithOnOffCallback(uint8_t level, uint16_t transitionTime); + +/** + * @brief Level Control Cluster MoveWithOnOff Command callback + * @param moveMode + * @param rate + */ + +bool emberAfLevelControlClusterMoveWithOnOffCallback(uint8_t moveMode, uint8_t rate); + +/** + * @brief Level Control Cluster Step Command callback + * @param stepMode + * @param stepSize + * @param transitionTime + * @param optionMask + * @param optionOverride + */ + +bool emberAfLevelControlClusterStepCallback(uint8_t stepMode, uint8_t stepSize, uint16_t transitionTime, uint8_t optionMask, + uint8_t optionOverride); + +/** + * @brief Level Control Cluster StepWithOnOff Command callback + * @param stepMode + * @param stepSize + * @param transitionTime + */ + +bool emberAfLevelControlClusterStepWithOnOffCallback(uint8_t stepMode, uint8_t stepSize, uint16_t transitionTime); + +/** + * @brief Level Control Cluster Stop Command callback + * @param optionMask + * @param optionOverride + */ + +bool emberAfLevelControlClusterStopCallback(uint8_t optionMask, uint8_t optionOverride); + +/** + * @brief Level Control Cluster StopWithOnOff Command callback + */ + +bool emberAfLevelControlClusterStopWithOnOffCallback(); + +/** + * @brief On/off Cluster Off Command callback + */ + +bool emberAfOnOffClusterOffCallback(); + +/** + * @brief On/off Cluster On Command callback + */ + +bool emberAfOnOffClusterOnCallback(); + +/** + * @brief On/off Cluster Toggle Command callback + */ + +bool emberAfOnOffClusterToggleCallback(); + +// +// Non-Cluster Related Callbacks +// -/** @name Non-Cluster Related Callbacks */ -// @{ /** @brief Add To Current App Tasks * * This function is only useful to sleepy end devices. This function will note @@ -64,6 +300,21 @@ * @param tasks Ver.: always */ void emberAfAddToCurrentAppTasksCallback(EmberAfApplicationTask tasks); + +/** @brief Remove From Current App Tasks + * + * This function is only useful to sleepy end devices. This function will + * remove the passed item from the set of tasks the application has outstanding + * (e.g. message sent requiring APS acknwoledgement). This will affect how the + * application behaves with regard to sleeping and polling. Removing the item + * from the list of outstanding tasks may allow the device to sleep longer and + * poll less frequently. If there are other outstanding tasks the system may + * still have to stay away and poll more often. + * + * @param tasks Ver.: always + */ +void emberAfRemoveFromCurrentAppTasksCallback(EmberAfApplicationTask tasks); + /** @brief Allow Network Write Attribute * * This function is called by the application framework before it writes an @@ -97,9 +348,10 @@ void emberAfAddToCurrentAppTasksCallback(EmberAfApplicationTask tasks); * @param value Ver.: always * @param type Ver.: always */ -EmberAfAttributeWritePermission emberAfAllowNetworkWriteAttributeCallback(uint8_t endpoint, EmberAfClusterId clusterId, - EmberAfAttributeId attributeId, uint8_t mask, +EmberAfAttributeWritePermission emberAfAllowNetworkWriteAttributeCallback(chip::EndpointId endpoint, chip::ClusterId clusterId, + chip::AttributeId attributeId, uint8_t mask, uint16_t manufacturerCode, uint8_t * value, uint8_t type); + /** @brief Attribute Read Access * * This function is called whenever the Application Framework needs to check @@ -110,8 +362,9 @@ EmberAfAttributeWritePermission emberAfAllowNetworkWriteAttributeCallback(uint8_ * @param manufacturerCode Ver.: always * @param attributeId Ver.: always */ -bool emberAfAttributeReadAccessCallback(uint8_t endpoint, EmberAfClusterId clusterId, uint16_t manufacturerCode, - uint16_t attributeId); +bool emberAfAttributeReadAccessCallback(chip::EndpointId endpoint, chip::ClusterId clusterId, uint16_t manufacturerCode, + chip::AttributeId attributeId); + /** @brief Attribute Write Access * * This function is called whenever the Application Framework needs to check @@ -122,63 +375,9 @@ bool emberAfAttributeReadAccessCallback(uint8_t endpoint, EmberAfClusterId clust * @param manufacturerCode Ver.: always * @param attributeId Ver.: always */ -bool emberAfAttributeWriteAccessCallback(uint8_t endpoint, EmberAfClusterId clusterId, uint16_t manufacturerCode, - uint16_t attributeId); -/** @brief Clear Report Table - * - * This function is called by the framework when the application should clear - * the report table. - * - */ -EmberStatus emberAfClearReportTableCallback(void); -/** @brief Cluster Init - * - * This function is called when a specific cluster is initialized. It gives the - * application an opportunity to take care of cluster initialization procedures. - * It is called exactly once for each endpoint where cluster is present. - * - * @param endpoint Ver.: always - * @param clusterId Ver.: always - */ -void emberAfClusterInitCallback(uint8_t endpoint, EmberAfClusterId clusterId); -/** @brief Cluster Security Custom - * - * This callback is fired when determining if APS encryption is required for a - * cluster outside of the specification's required clusters. In other words, - * for the Smart Energy profile this would be a cluster beyond the list that - * normally requires APS encryption. - * - * @param profileId The profile ID Ver.: always - * @param clusterId The cluster ID Ver.: always - * @param incoming Whether this is an incoming or outgoing message. Ver.: - * always - * @param commandId The ZCL command ID being sent/received. Ver.: always - */ -bool emberAfClusterSecurityCustomCallback(EmberAfProfileId profileId, EmberAfClusterId clusterId, bool incoming, uint8_t commandId); -/** @brief Configure Reporting Command - * - * This function is called by the application framework when a Configure - * Reporting command is received from an external device. The Configure - * Reporting command contains a series of attribute reporting configuration - * records. The application should return true if the message was processed or - * false if it was not. - * - * @param cmd Ver.: always - */ -bool emberAfConfigureReportingCommandCallback(const EmberAfClusterCommand * cmd); -/** @brief Configure Reporting Response - * - * This function is called by the application framework when a Configure - * Reporting Response command is received from an external device. The - * application should return true if the message was processed or false if it - * was not. - * - * @param clusterId The cluster identifier of this response. Ver.: always - * @param buffer Buffer containing the list of attribute status records. Ver.: - * always - * @param bufLen The length in bytes of the list. Ver.: always - */ -bool emberAfConfigureReportingResponseCallback(EmberAfClusterId clusterId, uint8_t * buffer, uint16_t bufLen); +bool emberAfAttributeWriteAccessCallback(chip::EndpointId endpoint, chip::ClusterId clusterId, uint16_t manufacturerCode, + chip::AttributeId attributeId); + /** @brief Default Response * * This function is called by the application framework when a Default Response @@ -191,7 +390,8 @@ bool emberAfConfigureReportingResponseCallback(EmberAfClusterId clusterId, uint8 * @param status Specifies either SUCCESS or the nature of the error that was * detected in the received command. Ver.: always */ -bool emberAfDefaultResponseCallback(EmberAfClusterId clusterId, uint8_t commandId, EmberAfStatus status); +bool emberAfDefaultResponseCallback(chip::ClusterId clusterId, chip::CommandId commandId, EmberAfStatus status); + /** @brief Discover Attributes Response * * This function is called by the application framework when a Discover @@ -212,8 +412,9 @@ bool emberAfDefaultResponseCallback(EmberAfClusterId clusterId, uint8_t commandI * @param extended Indicates whether the response is in the extended format or * not. Ver.: always */ -bool emberAfDiscoverAttributesResponseCallback(EmberAfClusterId clusterId, bool discoveryComplete, uint8_t * buffer, - uint16_t bufLen, bool extended); +bool emberAfDiscoverAttributesResponseCallback(chip::ClusterId clusterId, bool discoveryComplete, uint8_t * buffer, uint16_t bufLen, + bool extended); + /** @brief Discover Commands Generated Response * * This function is called by the framework when Discover Commands Generated @@ -228,8 +429,9 @@ bool emberAfDiscoverAttributesResponseCallback(EmberAfClusterId clusterId, bool * @param commandIdCount The length of bytes of the list, whish is the same as * the number of identifiers. Ver.: always */ -bool emberAfDiscoverCommandsGeneratedResponseCallback(EmberAfClusterId clusterId, uint16_t manufacturerCode, bool discoveryComplete, - uint8_t * commandIds, uint16_t commandIdCount); +bool emberAfDiscoverCommandsGeneratedResponseCallback(chip::ClusterId clusterId, uint16_t manufacturerCode, bool discoveryComplete, + chip::CommandId * commandIds, uint16_t commandIdCount); + /** @brief Discover Commands Received Response * * This function is called by the framework when Discover Commands Received @@ -244,39 +446,118 @@ bool emberAfDiscoverCommandsGeneratedResponseCallback(EmberAfClusterId clusterId * @param commandIdCount The length of bytes of the list, whish is the same as * the number of identifiers. Ver.: always */ -bool emberAfDiscoverCommandsReceivedResponseCallback(EmberAfClusterId clusterId, uint16_t manufacturerCode, bool discoveryComplete, - uint8_t * commandIds, uint16_t commandIdCount); -/** @brief Eeprom Init +bool emberAfDiscoverCommandsReceivedResponseCallback(chip::ClusterId clusterId, uint16_t manufacturerCode, bool discoveryComplete, + chip::CommandId * commandIds, uint16_t commandIdCount); + +/** @brief Pre Command Received * - * Tells the system to initialize the EEPROM if it is not already initialized. + * This callback is the second in the Application Framework's message processing + * chain. At this point in the processing of incoming over-the-air messages, the + * application has determined that the incoming message is a ZCL command. It + * parses enough of the message to populate an EmberAfClusterCommand struct. The + * Application Framework defines this struct value in a local scope to the + * command processing but also makes it available through a global pointer + * called emberAfCurrentCommand, in app/framework/util/util.c. When command + * processing is complete, this pointer is cleared. * + * @param cmd Ver.: always */ -void emberAfEepromInitCallback(void); -/** @brief Eeprom Note Initialized State +bool emberAfPreCommandReceivedCallback(EmberAfClusterCommand * cmd); + +/** @brief Pre Message Send * - * Records the state of the EEPROM so that an intelligent driver (like the - * EEPROM plugin) can re-initialize the driver prior to any calls to it. + * This function is called by the framework when it is about to pass a message + * to the stack primitives for sending. This message may or may not be ZCL, + * ZDO, or some other protocol. This is called prior to + any ZigBee + * fragmentation that may be done. If the function returns true it is assumed + * the callback has consumed and processed the message. The callback must also + * set the EmberStatus status code to be passed back to the caller. The + * framework will do no further processing on the message. + If the + * function returns false then it is assumed that the callback has not processed + * the mesasge and the framework will continue to process accordingly. * - * @param state The state of the EEPROM, false=re-initalization needed, - * true=no-re-init needed Ver.: always + * @param messageStruct The structure containing the parameters of the APS + * message to be sent. Ver.: always + * @param status A pointer to the status code value that will be returned to the + * caller. Ver.: always */ -void emberAfEepromNoteInitializedStateCallback(bool state); -/** @brief Eeprom Shutdown +bool emberAfPreMessageSendCallback(EmberAfMessageStruct * messageStruct, EmberStatus * status); + +/** @brief Message Sent * - * Tells the system to shutdown the EEPROM if it is not already shutdown. + * This function is called by the application framework from the message sent + * handler, when it is informed by the stack regarding the message sent status. + * All of the values passed to the emberMessageSentHandler are passed on to this + * callback. This provides an opportunity for the application to verify that its + * message has been sent successfully and take the appropriate action. This + * callback should return a bool value of true or false. A value of true + * indicates that the message sent notification has been handled and should not + * be handled by the application framework. * + * @param type Ver.: always + * @param indexOrDestination Ver.: always + * @param apsFrame Ver.: always + * @param msgLen Ver.: always + * @param message Ver.: always + * @param status Ver.: always */ -void emberAfEepromShutdownCallback(void); -/** @brief Energy Scan Result +bool emberAfMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, EmberApsFrame * apsFrame, + uint16_t msgLen, uint8_t * message, EmberStatus status); + +/** @brief Pre Attribute Change * - * This is called by the low-level stack code when an 802.15.4 energy scan - * completes. + * This function is called by the application framework before it changes an + * attribute value. The value passed into this callback is the value to which + * the attribute is to be set by the framework. The application should return + * ::EMBER_ZCL_STATUS_SUCCESS to permit the change or any other ::EmberAfStatus + * to reject it. * - * @param channel The channel where the energy scan took place. Ver.: always - * @param rssi The receive signal strength indicator for the channel. Ver.: - * always + * @param endpoint Ver.: always + * @param clusterId Ver.: always + * @param attributeId Ver.: always + * @param mask Ver.: always + * @param manufacturerCode Ver.: always + * @param type Ver.: always + * @param size Ver.: always + * @param value Ver.: always + */ +EmberAfStatus emberAfPreAttributeChangeCallback(chip::EndpointId endpoint, chip::ClusterId clusterId, chip::AttributeId attributeId, + uint8_t mask, uint16_t manufacturerCode, uint8_t type, uint8_t size, + uint8_t * value); + +/** @brief Post Attribute Change + * + * This function is called by the application framework after it changes an + * attribute value. The value passed into this callback is the value to which + * the attribute was set by the framework. + * + * @param endpoint Ver.: always + * @param clusterId Ver.: always + * @param attributeId Ver.: always + * @param mask Ver.: always + * @param manufacturerCode Ver.: always + * @param type Ver.: always + * @param size Ver.: always + * @param value Ver.: always + */ +void emberAfPostAttributeChangeCallback(chip::EndpointId endpoint, chip::ClusterId clusterId, chip::AttributeId attributeId, + uint8_t mask, uint16_t manufacturerCode, uint8_t type, uint8_t size, uint8_t * value); + +/** @brief Read Attributes Response + * + * This function is called by the application framework when a Read Attributes + * Response command is received from an external device. The application should + * return true if the message was processed or false if it was not. + * + * @param clusterId The cluster identifier of this response. Ver.: always + * @param buffer Buffer containing the list of read attribute status records. + * Ver.: always + * @param bufLen The length in bytes of the list. Ver.: always */ -void emberAfEnergyScanResultCallback(uint8_t channel, int8_t rssi); +bool emberAfReadAttributesResponseCallback(chip::ClusterId clusterId, uint8_t * buffer, uint16_t bufLen); + /** @brief External Attribute Read * * Like emberAfExternalAttributeWriteCallback above, this function is called @@ -313,9 +594,23 @@ void emberAfEnergyScanResultCallback(uint8_t channel, int8_t rssi); * @param buffer Ver.: always * @param maxReadLength Ver.: always */ -EmberAfStatus emberAfExternalAttributeReadCallback(uint8_t endpoint, EmberAfClusterId clusterId, +EmberAfStatus emberAfExternalAttributeReadCallback(chip::EndpointId endpoint, chip::ClusterId clusterId, EmberAfAttributeMetadata * attributeMetadata, uint16_t manufacturerCode, uint8_t * buffer, uint16_t maxReadLength); + +/** @brief Write Attributes Response + * + * This function is called by the application framework when a Write Attributes + * Response command is received from an external device. The application should + * return true if the message was processed or false if it was not. + * + * @param clusterId The cluster identifier of this response. Ver.: always + * @param buffer Buffer containing the list of write attribute status records. + * Ver.: always + * @param bufLen The length in bytes of the list. Ver.: always + */ +bool emberAfWriteAttributesResponseCallback(chip::ClusterId clusterId, uint8_t * buffer, uint16_t bufLen); + /** @brief External Attribute Write * * This function is called whenever the Application Framework needs to write an @@ -362,63 +657,23 @@ EmberAfStatus emberAfExternalAttributeReadCallback(uint8_t endpoint, EmberAfClus * @param manufacturerCode Ver.: always * @param buffer Ver.: always */ -EmberAfStatus emberAfExternalAttributeWriteCallback(uint8_t endpoint, EmberAfClusterId clusterId, +EmberAfStatus emberAfExternalAttributeWriteCallback(chip::EndpointId endpoint, chip::ClusterId clusterId, EmberAfAttributeMetadata * attributeMetadata, uint16_t manufacturerCode, uint8_t * buffer); -/** @brief Find Unused Pan Id And Form - * - * This function is called by the framework to search for an unused PAN id and - * form a new network. The application should return EMBER_SUCCESS if the - * operation was initiated successfully. - * - */ -EmberStatus emberAfFindUnusedPanIdAndFormCallback(void); -/** @brief Get Current App Tasks - * - * This function is only useful to sleepy end devices. This function will - * return the set of tasks the application has outstanding. These tasks affect - * how the application behaves with regard to sleeping and polling. - * - */ -EmberAfApplicationTask emberAfGetCurrentAppTasksCallback(void); -/** @brief Get Current Poll Control - * - * This function will retrieve the current poll control that the system is using - * for the current network. This is determined by examining all the scheduled - * events and obtaining the most restrictive poll control context across all - * events. The most restrictive poll control is EMBER_AF_SHORT_POLL followed by - * EMBER_AF_LONG_POLL. - * - */ -EmberAfEventPollControl emberAfGetCurrentPollControlCallback(void); -/** @brief Get Current Poll Interval Ms - * - * This function is only useful to end devices. This function will return the - * current poll interval (in milliseconds) for the current network. This - * interval is the maximum amount of time a child is currently waiting between - * polls of its parent. - * - */ -uint32_t emberAfGetCurrentPollIntervalMsCallback(void); -/** @brief Get Current Poll Interval Qs - * - * This function is only useful to end devices. This function will return the - * current poll interval (in quarter seconds) for the current network. This - * interval is the maximum amount of time a child is currently waiting between - * polls of its parent. - * - */ -uint32_t emberAfGetCurrentPollIntervalQsCallback(void); -/** @brief Get Current Sleep Control + +/** @brief Report Attributes * - * This function will retrieve the current sleep control that the system is - * using. This is determined by examining all the scheduled events and - * obtaining the most restrictive sleep control context across all events. The - * most restrictive sleep control is EMBER_AF_STAY_AWAKE followed by - * EMBER_AF_OK_TO_SLEEP. + * This function is called by the application framework when a Report Attributes + * command is received from an external device. The application should return + * true if the message was processed or false if it was not. * + * @param clusterId The cluster identifier of this command. Ver.: always + * @param buffer Buffer containing the list of attribute report records. Ver.: + * always + * @param bufLen The length in bytes of the list. Ver.: always */ -EmberAfEventSleepControl emberAfGetCurrentSleepControlCallback(void); +bool emberAfReportAttributesCallback(chip::ClusterId clusterId, uint8_t * buffer, uint16_t bufLen); + /** @brief Get Current Time * * This callback is called when device attempts to get current time from the @@ -428,57 +683,8 @@ EmberAfEventSleepControl emberAfGetCurrentSleepControlCallback(void); * that device does not have access to real time. * */ -uint32_t emberAfGetCurrentTimeCallback(void); -/** @brief Get Default Poll Control - * - * This function will retrieve the default poll control for the current network - * as previously set by emberAfSetDefaultPollControlCallback(). The default - * poll control will limit whether the network can long poll. - * - */ -EmberAfEventPollControl emberAfGetDefaultPollControlCallback(void); -/** @brief Get Default Sleep Control - * - * This function will retrieve the default sleep control the system is using as - * previously set by emberAfSetDefaultSleepControlCallback(). The default sleep - * control will limit whether the device can sleep. - * - */ -EmberAfEventSleepControl emberAfGetDefaultSleepControlCallback(void); -/** @brief Get Endpoint By Index - * - * Get the endpoint number based on the passed index. By default the framework - * handles this by managing endpoints based on the precompiled configuration - * defined in AppBuilder. This callback can override this behavior at runtime - * and provide additional endpoints or different data than the compiled values. - * If the index is overridden than the callback shall return true and set the - * endpointReturn parameter accordingly. A value of 0xFF means the endpoint - * doesn't exist at that index. - Otherwise false must be returned by the - * callback and the default framework behavior will be executed. This is only - * applicable to the SOC devices. - * - * @param index The index of the endpoint. Ver.: always - * @param endpointReturn The value of endpoint. Ver.: always - */ -bool emberAfGetEndpointByIndexCallback(uint8_t index, uint8_t * endpointReturn); -/** @brief Get Endpoint Description - * - * This callback is called by the framework whenever it receives a ZDO request - * to enumerate the details about an endpoint. By default the framework - * provides the information based on the precompiled endpoint information as - * defined in AppBuilder. This callback can override that behavior at runtime - * and return different information. If the endpoint information is being - * overridden then the callback must return true. Otherwise it should return - * false, which allows the framework to perform its default behavior. This is - * only applicable to SOC devices. - * - * @param endpoint The endpoint number that is being queried. Ver.: always - * @param result This is a pointer to a data structure where the endpoint - * information is written if the callback is providing the information. Ver.: - * always - */ -bool emberAfGetEndpointDescriptionCallback(uint8_t endpoint, EmberEndpointDescription * result); +uint32_t emberAfGetCurrentTimeCallback(); + /** @brief Get Endpoint Info * * This function is a callback to an application implemented endpoint that @@ -496,53 +702,9 @@ bool emberAfGetEndpointDescriptionCallback(uint8_t endpoint, EmberEndpointDescri * @param returnEndpointInfo A pointer to a data struct that will be written * with information about the endpoint. Ver.: always */ -bool emberAfGetEndpointInfoCallback(uint8_t endpoint, uint8_t * returnNetworkIndex, EmberAfEndpointInfoStruct * returnEndpointInfo); -/** @brief Get Form And Join Extended Pan Id - * - * This callback is called by the framework to get the extended PAN ID used by - * the current network for forming and joining. The extended PAN ID used for - * forming and joining is not necessarily the same extended PAN ID actually in - * use on the network. - * - * @param resultLocation Ver.: always - */ -void emberAfGetFormAndJoinExtendedPanIdCallback(uint8_t * resultLocation); -/** @brief Get Long Poll Interval Ms - * - * This function is only useful to end devices. This function will return the - * long poll interval (in milliseconds) for the current network. This interval - * is the maximum amount of time a child will wait between polls of its parent - * when it is not expecting data. - * - */ -uint32_t emberAfGetLongPollIntervalMsCallback(void); -/** @brief Get Long Poll Interval Qs - * - * This function is only useful to end devices. This function will return the - * long poll interval (in quarter seconds) for the current network. This - * interval is the maximum amount of time a child will wait between polls of its - * parent when it is not expecting data. - * - */ -uint32_t emberAfGetLongPollIntervalQsCallback(void); -/** @brief Get Short Poll Interval Ms - * - * This function is only useful to sleepy end devices. This function will - * return the short poll interval (in milliseconds) for the current network. - * This interval is the maximum amount of time a child will wait between polls - * of its parent when it is expecting data. - * - */ -uint16_t emberAfGetShortPollIntervalMsCallback(void); -/** @brief Get Short Poll Interval Qs - * - * This function is only useful to sleepy end devices. This function will - * return the short poll interval (in quarter seconds) for the current network. - * This interval is the maximum amount of time a child will wait between polls - * of its parent when it is expecting data. - * - */ -uint16_t emberAfGetShortPollIntervalQsCallback(void); +bool emberAfGetEndpointInfoCallback(chip::EndpointId endpoint, uint8_t * returnNetworkIndex, + EmberAfEndpointInfoStruct * returnEndpointInfo); + /** @brief Get Source Route Overhead * * This function is called by the framework to determine the overhead required @@ -551,128 +713,15 @@ uint16_t emberAfGetShortPollIntervalQsCallback(void); * @param destination The node id of the destination Ver.: always */ uint8_t emberAfGetSourceRouteOverheadCallback(EmberNodeId destination); -/** @brief Get Wake Timeout Bitmask - * - * This function is only useful to sleepy end devices. This function will - * return the wake timeout bitmask for the current network. The bitmask - * determines which tasks will timeout automatically and which tasks require - * manual removal from the task list. - * - */ -EmberAfApplicationTask emberAfGetWakeTimeoutBitmaskCallback(void); -/** @brief Get Wake Timeout Ms - * - * This function is only useful to sleepy end devices. This function will - * return the wake timeout (in milliseconds) for the current network. This - * timeout is the maximum amount of time a child will wait for a task in the - * wake bitmask to finish. While waiting, the device will short poll. - * - */ -uint16_t emberAfGetWakeTimeoutMsCallback(void); -/** @brief Get Wake Timeout Qs - * - * This function is only useful to sleepy end devices. This function will - * return the wake timeout (in quarter seconds) for the current network. This - * timeout is the maximum amount of time a child will wait for a task in the - * wake bitmask to finish. While waiting, the device will short poll. - * - */ -uint16_t emberAfGetWakeTimeoutQsCallback(void); -/** @brief Hal Button Isr - * - * This callback is called by the framework whenever a button is pressed on the - * device. This callback is called within ISR context. - * - * @param button The button which has changed state, either BUTTON0 or BUTTON1 - * as defined in the appropriate BOARD_HEADER. Ver.: always - * @param state The new state of the button referenced by the button parameter, - * either ::BUTTON_PRESSED if the button has been pressed or ::BUTTON_RELEASED - * if the button has been released. Ver.: always - */ -void emberAfHalButtonIsrCallback(uint8_t button, uint8_t state); -/** @brief Incoming Packet Filter - * - * ** REQUIRES INCLUDING THE PACKET-HANDOFF PLUGIN ** - This is called by - * the Packet Handoff plugin when the stack receives a packet from one of the - * protocol layers specified in ::EmberZigbeePacketType. - - The packetType - * argument is one of the values of the ::EmberZigbeePacketType enum. If the - * stack receives an 802.15.4 MAC beacon, it will call this function with the - * packetType argument set to ::EMBER_ZIGBEE_PACKET_TYPE_BEACON. - - The - * implementation of this callback may alter the data contained in packetData, - * modify options and flags in the auxillary data, or consume the packet itself, - * either sending the message, or discarding it as it sees fit. - * - * @param packetType the type of packet and associated protocol layer Ver.: - * always - * @param packetData flat buffer containing the packet data associated with the - * packet type Ver.: always - * @param size_p a pointer containing the size value of the packet Ver.: always - * @param data auxillary data included with the packet Ver.: always - */ -EmberPacketAction emberAfIncomingPacketFilterCallback(EmberZigbeePacketType packetType, uint8_t * packetData, uint8_t * size_p, - void * data); -/** @brief Initiate Inter Pan Key Establishment - * - * This function is called by the framework to initiate key establishment with a - * remote device on a different PAN. The application should return - * EMBER_SUCCESS if key establishment was initiated successfully. The - * application should call ::emberAfInterPanKeyEstablishmentCallback as events - * occur. - * - * @param panId The PAN id of the remote device. Ver.: always - * @param eui64 The EUI64 of the remote device. Ver.: always - */ -EmberStatus emberAfInitiateInterPanKeyEstablishmentCallback(EmberPanId panId, const EmberEUI64 eui64); -/** @brief Initiate Key Establishment - * - * This function is called by the framework to initiate key establishment with a - * remote device. The application should return EMBER_SUCCESS if key - * establishment was initiated successfully. The application should call - * ::emberAfKeyEstablishmentCallback as events occur. - * - * @param nodeId The node id of the remote device. Ver.: always - * @param endpoint The endpoint on the remote device. Ver.: always - */ -EmberStatus emberAfInitiateKeyEstablishmentCallback(EmberNodeId nodeId, uint8_t endpoint); -/** @brief Initiate Partner Link Key Exchange - * - * This function is called by the framework to initiate a partner link key - * exchange with a remote device. The application should return EMBER_SUCCESS - * if the partner link key exchange was initiated successfully. When the - * partner link key exchange completes, the application should call the given - * callback. - * - * @param target The node id of the remote device. Ver.: always - * @param endpoint The key establishment endpoint of the remote device. Ver.: - * always - * @param callback The callback that should be called when the partner link key - * exchange completse. Ver.: always - */ -EmberStatus emberAfInitiatePartnerLinkKeyExchangeCallback(EmberNodeId target, uint8_t endpoint, - EmberAfPartnerLinkKeyExchangeCallback * callback); -/** @brief Inter Pan Key Establishment +/** @brief Registration Abort * - * A callback by the key-establishment code to indicate an event has occurred. - * For error codes this is purely a notification. For non-error status codes - * (besides LINK_KEY_ESTABLISHED), it is the application's chance to allow or - * disallow the operation. If the application returns true then the key - * establishment is allowed to proceed. If it returns false, then key - * establishment is aborted. LINK_KEY_ESTABLISHED is a notification of success. + * This callback is called when the device should abort the registration + * process. * - * @param status Ver.: always - * @param amInitiator Ver.: always - * @param panId Ver.: always - * @param eui64 Ver.: always - * @param delayInSeconds Ver.: always */ -bool emberAfInterPanKeyEstablishmentCallback(EmberAfKeyEstablishmentNotifyMessage status, bool amInitiator, EmberPanId panId, - const EmberEUI64 eui64, uint8_t delayInSeconds); +void emberAfRegistrationAbortCallback(); + /** @brief Interpan Send Message * * This function will send a raw MAC message with interpan frame format using @@ -684,23106 +733,11 @@ bool emberAfInterPanKeyEstablishmentCallback(EmberAfKeyEstablishmentNotifyMessag * @param message The message data received or to send. Ver.: always */ EmberStatus emberAfInterpanSendMessageCallback(EmberAfInterpanHeader * header, uint16_t messageLength, uint8_t * message); -/** @brief Key Establishment - * - * A callback by the key-establishment code to indicate an event has occurred. - * For error codes this is purely a notification. For non-error status codes - * (besides LINK_KEY_ESTABLISHED), it is the application's chance to allow or - * disallow the operation. If the application returns true then the key - * establishment is allowed to proceed. If it returns false, then key - * establishment is aborted. LINK_KEY_ESTABLISHED is a notification of success. - * - * @param status Ver.: always - * @param amInitiator Ver.: always - * @param partnerShortId Ver.: always - * @param delayInSeconds Ver.: always - */ -bool emberAfKeyEstablishmentCallback(EmberAfKeyEstablishmentNotifyMessage status, bool amInitiator, EmberNodeId partnerShortId, - uint8_t delayInSeconds); -/** @brief Main Init - * - * This function is called from the application's main function. It gives the - * application a chance to do any initialization required at system startup. Any - * code that you would normally put into the top of the application's main() - * routine should be put into this function. This is called before the clusters, - * plugins, and the network are initialized so some functionality is not yet - * available. - Note: No callback in the Application Framework is - * associated with resource cleanup. If you are implementing your application on - * a Unix host where resource cleanup is a consideration, we expect that you - * will use the standard Posix system calls, including the use of atexit() and - * handlers for signals such as SIGTERM, SIGINT, SIGCHLD, SIGPIPE and so on. If - * you use the signal() function to register your signal handler, please mind - * the returned value which may be an Application Framework function. If the - * return value is non-null, please make sure that you call the returned - * function from your handler to avoid negating the resource cleanup of the - * Application Framework itself. - * - */ -void emberAfMainInitCallback(void); -/** @brief Main Start - * - * This function is called at the start of main after the HAL has been - * initialized. The standard main function arguments of argc and argv are - * passed in. However not all platforms have support for main() function - * arguments. Those that do not are passed NULL for argv, therefore argv should - * be checked for NULL before using it. If the callback determines that the - * program must exit, it should return true. The value returned by main() will - * be the value written to the returnCode pointer. Otherwise the callback - * should return false to let normal execution continue. - * - * @param returnCode Ver.: always - * @param argc Ver.: always - * @param argv Ver.: always - */ -bool emberAfMainStartCallback(int * returnCode, int argc, char ** argv); -/** @brief Main Tick - * - * Whenever main application tick is called, this callback will be called at the - * end of the main tick execution. - * - */ -void emberAfMainTickCallback(void); -/** @brief Mark Buffers - * - * This function is called when the garbage collector runs. Any buffers held by - * the application must be marked. - * - */ -void emberAfMarkBuffersCallback(void); -/** @brief Message Sent - * - * This function is called by the application framework from the message sent - * handler, when it is informed by the stack regarding the message sent status. - * All of the values passed to the emberMessageSentHandler are passed on to this - * callback. This provides an opportunity for the application to verify that its - * message has been sent successfully and take the appropriate action. This - * callback should return a bool value of true or false. A value of true - * indicates that the message sent notification has been handled and should not - * be handled by the application framework. - * - * @param type Ver.: always - * @param indexOrDestination Ver.: always - * @param apsFrame Ver.: always - * @param msgLen Ver.: always - * @param message Ver.: always - * @param status Ver.: always - */ -bool emberAfMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, EmberApsFrame * apsFrame, - uint16_t msgLen, uint8_t * message, EmberStatus status); -/** @brief Ncp Init - * - * This function is called when the network coprocessor is being initialized, - * either at startup or upon reset. It provides applications on opportunity to - * perform additional configuration of the NCP. The function is always called - * twice when the NCP is initialized. In the first invocation, memoryAllocation - * will be true and the application should only issue EZSP commands that affect - * memory allocation on the NCP. For example, tables on the NCP can be resized - * in the first call. In the second invocation, memoryAllocation will be false - * and the application should only issue EZSP commands that do not affect memory - * allocation. For example, tables on the NCP can be populated in the second - * call. This callback is not called on SoCs. - * - * @param memoryAllocation Ver.: always - */ -void emberAfNcpInitCallback(bool memoryAllocation); -/** @brief Ncp Is Awake Isr - * - * This function is called IN ISR CONTEXT. It notes that the NCP is awake after - * sleeping. Care should be taken to do minimal processing in this ISR handler - * function. - * - */ -void emberAfNcpIsAwakeIsrCallback(void); -/** @brief Network Found - * - * This callback is generated when an active scan finds a 802.15.4 network. - * - * @param networkFound A struct containing information about the network found. - * Ver.: always - * @param lqi The link quality indication of the network found. Ver.: always - * @param rssi The received signal strength indication of the network found. - * Ver.: always - */ -void emberAfNetworkFoundCallback(EmberZigbeeNetwork * networkFound, uint8_t lqi, int8_t rssi); -/** @brief Network Key Update Complete - * - * This is called by the framework when a network key update operation started - * by the trust center is complete. - * - * @param status Ver.: always - */ -void emberAfNetworkKeyUpdateCompleteCallback(EmberStatus status); -/** @brief Ota Bootload - * - * The platform specific routine to bootload the device from a ZigBee - * over-the-air upgrade file. - * - * @param id A pointer to the structure that contains the information about what - * OTA image to bootload. Ver.: always - * @param ncpUpgradeTagId The tag ID of the upgrade data that will be used to - * bootload the device. Ver.: always - */ -uint8_t emberAfOtaBootloadCallback(const EmberAfOtaImageId * id, uint16_t ncpUpgradeTagId); -/** @brief Ota Client Bootload - * - * This callback is fired when the OTA Client recevies a command to bootload the - * newly downloaded OTA image. This callback will perform the platform specific - * to bootload their device. - * - * @param id This is the identifier relating to the image that has been - * downloaded and is ready for bootload. Ver.: always - */ -void emberAfOtaClientBootloadCallback(const EmberAfOtaImageId * id); -/** @brief Ota Client Custom Verify - * - * This callback is executed by the OTA client after the signature verification - * has successfully completed. It allows the device to do its own custom - * verification of the image (such as verifying that the EBL is intact). - * - * @param newVerification This indicates if a new verification should be - * started. Ver.: always - * @param id This is ID of the image to be verified. Ver.: always - */ -EmberAfImageVerifyStatus emberAfOtaClientCustomVerifyCallback(bool newVerification, const EmberAfOtaImageId * id); -/** @brief Ota Client Download Complete - * - * This callback indicates that the OTA client has completed the download of a - * file. If the file has been completely downloaded and cryptographic checks - * have been turned on, then those will be performed prior to this callback and - * that outcome included in the 'success' result. On failure, this callback is - * merely informative, and the return type is ignored. On succesful download, - * this callback allows the client to perform any additional verification of the - * downloaded image and return that result to the OTA server. - * - * @param success This indicates the success or failure of the download and - * cryptographic verification process (if applicable). Ver.: always - * @param id This is the image identifier information that corresponds to the - * download result. Ver.: always - */ -bool emberAfOtaClientDownloadCompleteCallback(EmberAfOtaDownloadResult success, const EmberAfOtaImageId * id); -/** @brief Ota Client Incoming Message Raw - * - * This callback is for processing incoming messages for the Over-the-air - * bootload cluster client. ZCL will not process the message and instead hand - * the raw over the air data to the callback for its own processing. - * - * @param message A pointer to the structure containing the message buffer and - * other information about it. Ver.: always - */ -bool emberAfOtaClientIncomingMessageRawCallback(EmberAfClusterCommand * message); -/** @brief Ota Client Start - * - * This callback should be called when the profile specific registration has - * completed successfully. It will start the client's state machine that will - * find the OTA server, query it for the next image, download the image, wait - * for the bootload message, and kick off the bootload. - * - */ -void emberAfOtaClientStartCallback(void); -/** @brief Ota Client Version Info - * - * This function is called by the OTA client when a new query will occur to the - * server asking what the next version of firmware is. The client can inform - * the cluster software as to what information to use in the query (and - * subsequent download). - * - * @param currentImageInfo This is the information to use in the next query by - * the client cluster code. It contains the manufacturer ID, image type ID, and - * the firmware version to be specified in the query message sent to the server. - * Ver.: always - * @param hardwareVersion This is a pointer to the hardware version to use in - * the query. If no hardware version should be used, then - * EMBER_AF_INVALID_HARDWARE_VERSION should be used. Ver.: always - */ -void emberAfOtaClientVersionInfoCallback(EmberAfOtaImageId * currentImageInfo, uint16_t * hardwareVersion); -/** @brief Ota Page Request Server Policy - * - * This callback is called by the OTA server page request code when it wants to - * determine if it is allowed for an OTA client to make a page request. It is - * only called if page request support has been enabled on the server. It - * should return EMBER_ZCL_STATUS_SUCCESS if it allows the page request, and - * EMBER_ZCL_STATUS_UNSUP_CLUSTER_COMMAND if it does not want to allow it. - * - */ -uint8_t emberAfOtaPageRequestServerPolicyCallback(void); -/** @brief Ota Server Block Size - * - * This function provides a way for the server to adjust the block size of its - * response to an Image block request by a client. - * - * @param clientNodeId The node Id of OTA client making an image block request. - * Ver.: always - */ -uint8_t emberAfOtaServerBlockSizeCallback(EmberNodeId clientNodeId); -/** @brief Ota Server Incoming Message Raw - * - * This callback is for processing incoming messages for the Over-the-air - * bootload cluster server. ZCL will not process the message and instead hand - * the raw over the air data to the callback for its own processing. - * - * @param message A pointer to the structure containing the message buffer and - * other information about it. Ver.: always - */ -bool emberAfOtaServerIncomingMessageRawCallback(EmberAfClusterCommand * message); -/** @brief Ota Server Query - * - * This callback is fired when the OTA server receives a query request by the - * client. The callback lets the server application indicate to the client what - * the 'next' version of software is for the device, or if there is not one - * available. - * - * @param currentImageId This is the current software image that the client - * hase. Ver.: always - * @param hardwareVersion If this value is non-NULL, it indicates the hardware - * version of the client device. If NULL, the client did not specify a hardware - * version. Ver.: always - * @param nextUpgradeImageId This is a pointer to a data structure containing - * the 'next' software version for the client to download. Ver.: always - */ -uint8_t emberAfOtaServerQueryCallback(const EmberAfOtaImageId * currentImageId, uint16_t * hardwareVersion, - EmberAfOtaImageId * nextUpgradeImageId); -/** @brief Ota Server Send Image Notify - * - * This callback is an indication to the OTA server that it should send out - * notification about an OTA file that is available for download. - * - * @param dest The destination of the image notify message. May be a broadcast - * address. Ver.: always - * @param endpoint The destination endpoint of the image notify message. May be - * a broadcast endpoint. Ver.: always - * @param payloadType The type of data the image notify message will contain. 0 - * = no data. 1 = Manufacturer ID. 2 = Manufacturer ID and the image type ID. - * 3 = Manufacturer ID, image type ID, and firmware version. Ver.: always - * @param queryJitter The percentage of nodes that should respond to this - * message, from 1-100. On receipt of this message, each recipient will - * randomly choose a percentage and only query the server if their percentage is - * below this value. Ver.: always - * @param id The image information that will be put in the message. The data - * within this struct that will be appended to the message is determined by the - * previous 'payloadType' argument. Ver.: always - */ -bool emberAfOtaServerSendImageNotifyCallback(EmberNodeId dest, uint8_t endpoint, uint8_t payloadType, uint8_t queryJitter, - const EmberAfOtaImageId * id); -/** @brief Ota Server Upgrade End Request - * - * This function is called when the OTA server receives a request an upgrade end - * request. If the request indicated a successful download by the client, the - * server must tell the client when and if to upgrade to the downloaded image. - * - * @param source The node ID of the device that sent the upgrade end request. - * Ver.: always - * @param status This is the ZCL status sent by the client indicating the result - * of its attempt to download the new upgrade image. If the status is not - * EMBER_ZCL_STATUS_SUCCESS then this callback is merely informative and no - * response mesasge will be generated by the server. Ver.: always - * @param returnValue If the server returns true indicating that the client - * should apply the upgrade, this time value indicates when in the future the - * client should apply the upgrade. Ver.: always - * @param imageId This variable indicates the software version that the client - * successfully downloaded and is asking to upgrade to. Ver.: always - */ -bool emberAfOtaServerUpgradeEndRequestCallback(EmberNodeId source, uint8_t status, uint32_t * returnValue, - const EmberAfOtaImageId * imageId); -/** @brief Ota Storage Check Temp Data - * - * This callback will validate temporary data in the storage device to determine - * whether it is a complete file, a partially downloaded file, or there is no - * file present. When a complete or partial file is found it will return - * EMBER_AF_OTA_STORAGE_SUCCESS or EMBER_AF_OTA_STORAGE_PARTIAL_FILE_FOUND, - * respectively. In that case, the currentOffset, totalImageSize, and - * newFileInfo will be populated with data. When EMBER_AF_OTA_STORAGE_ERROR is - * returned, no temporary data is present. - * - * @param currentOffset A pointer to a value that will be written with the - * offset within the total file size that has been successfully stored in the - * storage device. This will indicate how much data has been currently - * dowloaded. Ver.: always - * @param totalImageSize A pointer to a value that will be written with the - * total image size of the OTA file when a download has completed. This does - * not indicate how much data has actually been downloaded currently. Ver.: - * always - * @param newFileInfo This is the image id of the temporary file data stored in - * the storage device. Ver.: always - */ -EmberAfOtaStorageStatus emberAfOtaStorageCheckTempDataCallback(uint32_t * currentOffset, uint32_t * totalImageSize, - EmberAfOtaImageId * newFileInfo); -/** @brief Ota Storage Clear Temp Data + +/** @brief Start Move * - * This function clears any existing temp data that was downloaed. It is used - * immediately prior to downloading a raw image over the air. + * This function is called to initiate the process for a device to move (rejoin) + * to a new parent. * */ -EmberAfOtaStorageStatus emberAfOtaStorageClearTempDataCallback(void); -/** @brief Ota Storage Close - * - * This callback shuts down the ZigBee Over-the-air storage module. - * - */ -void emberAfOtaStorageCloseCallback(void); -/** @brief Ota Storage Driver Download Finish - * - * This callback defines the low-level means by which a device records the final - * offset value of the download image. - * - * @param offset The value of the final offset of the image download. Ver.: - * always - */ -void emberAfOtaStorageDriverDownloadFinishCallback(uint32_t offset); -/** @brief Ota Storage Driver Init - * - * The initialization code for the OTA storage driver. - * - */ -bool emberAfOtaStorageDriverInitCallback(void); -/** @brief Ota Storage Driver Invalidate Image - * - * This callback invalidates the image stored on disk so that it will not be - * bootloaded, and it will not be a valid image that is in the middle of - * downloading. - * - */ -EmberAfOtaStorageStatus emberAfOtaStorageDriverInvalidateImageCallback(void); -/** @brief Ota Storage Driver Prepare To Resume Download - * - * This callback allows the underlying storage driver to prepare to resume the - * OTA file download. For example, the driver may exceute a page erase to - * insure the next page is ready to be written to. - * - */ -EmberAfOtaStorageStatus emberAfOtaStorageDriverPrepareToResumeDownloadCallback(void); -/** @brief Ota Storage Driver Read - * - * This callback defines the low-level means by which a device reads from the - * OTA storage device. - * - * @param offset The address offset from the start of the storage device where - * data is to be read. Ver.: always - * @param length The length of the data to be read from the storage device. - * Ver.: always - * @param returnData A pointer where the data read from the device should be - * written to. Ver.: always - */ -bool emberAfOtaStorageDriverReadCallback(uint32_t offset, uint32_t length, uint8_t * returnData); -/** @brief Ota Storage Driver Retrieve Last Stored Offset - * - * This callback defines the low-level means by which a device retrieves the - * last persistently recorded download offset. This may be different than last - * actual download offset. - * - */ -uint32_t emberAfOtaStorageDriverRetrieveLastStoredOffsetCallback(void); -/** @brief Ota Storage Driver Write - * - * This callback defines the low-level means by which a device reads from the - * OTA storage device. - * - * @param dataToWrite A pointer to the data that will be written to the storage - * device. Ver.: always - * @param offset The address offset from the start of the storage device where - * data will be written. Ver.: always - * @param length The length of the data to be written to the storage device. - * Ver.: always - */ -bool emberAfOtaStorageDriverWriteCallback(const uint8_t * dataToWrite, uint32_t offset, uint32_t length); -/** @brief Ota Storage Finish Download - * - * This function indicates to the storage module that the download has finished. - * - * @param offset The final offset of the downloaded file (i.e. the total size) - * Ver.: always - */ -EmberAfOtaStorageStatus emberAfOtaStorageFinishDownloadCallback(uint32_t offset); -/** @brief Ota Storage Get Count - * - * This callback returns the total number of ZigBee Over-the-air upgrade images - * stored in the storage module. - * - */ -uint8_t emberAfOtaStorageGetCountCallback(void); -/** @brief Ota Storage Get Full Header - * - * This callback populates the EmberAfOtaHeader structure pointed to by the - * returnData with data about the OTA file stored in the storage module. - * - * @param id This is a pointer to the image id for the OTA file to retrieve - * information about. Ver.: always - * @param returnData This is a pointer to the location of the structure that - * will be populated with data. Ver.: always - */ -EmberAfOtaStorageStatus emberAfOtaStorageGetFullHeaderCallback(const EmberAfOtaImageId * id, EmberAfOtaHeader * returnData); -/** @brief Ota Storage Get Total Image Size - * - * This function returns the total size of the ZigBee Over-the-air file with the - * passed parameters. If no file is found with those parameters, 0 is returned. - * - * @param id A pointer to the image identifier for the OTA file to retrieve - * information for. Ver.: always - */ -uint32_t emberAfOtaStorageGetTotalImageSizeCallback(const EmberAfOtaImageId * id); -/** @brief Ota Storage Init - * - * This callback initializes the ZigBee Over-the-air storage module. - * - */ -EmberAfOtaStorageStatus emberAfOtaStorageInitCallback(void); -/** @brief Ota Storage Iterator First - * - * This callback lets you walk through the list of all OTA files by jumping to - * the first file in the list maintained by the storage module. If there is no - * file then emberAfOtaInvalidImageId is returned. - * - */ -EmberAfOtaImageId emberAfOtaStorageIteratorFirstCallback(void); -/** @brief Ota Storage Iterator Next - * - * This callback lets you walk through the list of all OTA files by jumping to - * the next file in the list maintained by the storage module. If there is no - * next file then emberAfOtaInvalidImageId is returned. - * - */ -EmberAfOtaImageId emberAfOtaStorageIteratorNextCallback(void); -/** @brief Ota Storage Read Image Data - * - * This callback reads data from the specified OTA file and returns that data to - * the caller. - * - * @param id This is a pointer to the image id for the OTA file to retrieve data - * from. Ver.: always - * @param offset This is the offset relative to the start of the image where the - * data should be read from. Ver.: always - * @param length This is the length of data that will be read. Ver.: always - * @param returnData This is a pointer to where the data read out of the file - * will be written to Ver.: always - * @param returnedLength This is a pointer to a variable where the actual length - * of data read will be written to. A short read may occur if the end of file - * was reached. Ver.: always - */ -EmberAfOtaStorageStatus emberAfOtaStorageReadImageDataCallback(const EmberAfOtaImageId * id, uint32_t offset, uint32_t length, - uint8_t * returnData, uint32_t * returnedLength); -/** @brief Ota Storage Search - * - * This callback searches through the list of all images for one that matches - * the passed parameters. On success an image identifier is returned with a - * matching image. On failure emberAfInvalidImageId is returned. - * - * @param manufacturerId The ZigBee assigned identifier of the manufacturer - * contained in the OTA image being searched for. Ver.: always - * @param imageTypeId The image type identifier contained in the OTA image being - * searched for. Ver.: always - * @param hardwareVersion This is a pointer to the hardware version that will be - * used in the search. If the pointer is NULL, hardware version will not be - * considered when searching for matching images. If it points to a value, the - * search will only consider images where that value falls between the minimum - * and maxmimum hardware version specified in the OTA file. If no hardware - * version is present in an OTA file but the other parameters match, the file - * will be considered a match Ver.: always - */ -EmberAfOtaImageId emberAfOtaStorageSearchCallback(uint16_t manufacturerId, uint16_t imageTypeId, const uint16_t * hardwareVersion); -/** @brief Ota Storage Write Temp Data - * - * This function writes to the temporary data in the storage device at the - * specified offset. It is used when downloading a raw image over the air. - * - * @param offset The location within the download image file where to write the - * data. Ver.: always - * @param length The length of data to write. Ver.: always - * @param data A pointer to the temporary data that will be written to the - * storage device. Ver.: always - */ -EmberAfOtaStorageStatus emberAfOtaStorageWriteTempDataCallback(uint32_t offset, uint32_t length, const uint8_t * data); -/** @brief Outgoing Packet Filter - * - * ** REQUIRES INCLUDING THE PACKET-HANDOFF PLUGIN ** - - This is called by - * the Packet Handoff plugin when the stack prepares to send a packet from one - * of the protocol layers specified in ::EmberZigbeePacketType. - - The - * packetType argument is one of the values of the ::EmberZigbeePacketType enum. - * If the stack receives an 802.15.4 MAC beacon, it will call this function with - * the packetType argument set to ::EMBER_ZIGBEE_PACKET_TYPE_BEACON. - - - * The implementation of this callback may alter the data contained in - * packetData, modify options and flags in the auxillary data, or consume the - * packet itself, either sending the message, or discarding it as it sees fit. - * - * @param packetType the type of packet and associated protocol layer Ver.: - * always - * @param packetData flat buffer containing the packet data associated with the - * packet type Ver.: always - * @param size_p a pointer containing the size value of the packet Ver.: always - * @param data auxillary data included with the packet Ver.: always - */ -EmberPacketAction emberAfOutgoingPacketFilterCallback(EmberZigbeePacketType packetType, uint8_t * packetData, uint8_t * size_p, - void * data); -/** @brief Partner Link Key Exchange Request - * - * This function is called by the framework on SOC platforms when a remote node - * requests a partner link key exchange. The application should return - * EMBER_SUCCESS to accept the request or any other status to reject it. On - * network coprocessor platforms, this function will not be called because the - * NCP handles partner link key exchange requests based on the binding policy. - * - * @param partner The EUI of the remote node. Ver.: always - */ -EmberZdoStatus emberAfPartnerLinkKeyExchangeRequestCallback(EmberEUI64 partner); -/** @brief Partner Link Key Exchange Response - * - * This function is called by the framework when a remote node requests a - * partner link key exchange. The application should return true to accept the - * request or false to reject it. On network coprocessor platforms, this - * function will not be called because the NCP handles partner link key exchange - * requests based on the binding policy. - * - * @param sender The EUI of the remote node. Ver.: always - * @param status The ZDO response status. Ver.: always - */ -void emberAfPartnerLinkKeyExchangeResponseCallback(EmberNodeId sender, EmberZdoStatus status); -/** @brief Performing Key Establishment - * - * This function is called by the framework to determine if the device is - * performing key establishment. The application should return true if key - * establishment is in progress. - * - */ -bool emberAfPerformingKeyEstablishmentCallback(void); -/** @brief Post Attribute Change - * - * This function is called by the application framework after it changes an - * attribute value. The value passed into this callback is the value to which - * the attribute was set by the framework. - * - * @param endpoint Ver.: always - * @param clusterId Ver.: always - * @param attributeId Ver.: always - * @param mask Ver.: always - * @param manufacturerCode Ver.: always - * @param type Ver.: always - * @param size Ver.: always - * @param value Ver.: always - */ -void emberAfPostAttributeChangeCallback(uint8_t endpoint, EmberAfClusterId clusterId, EmberAfAttributeId attributeId, uint8_t mask, - uint16_t manufacturerCode, uint8_t type, uint8_t size, uint8_t * value); -/** @brief Post Em4 Reset - * - * A callback called by application framework, and implemented by em4 plugin - * - */ -void emberAfPostEm4ResetCallback(void); -/** @brief Pre Attribute Change - * - * This function is called by the application framework before it changes an - * attribute value. The value passed into this callback is the value to which - * the attribute is to be set by the framework. The application should return - * ::EMBER_ZCL_STATUS_SUCCESS to permit the change or any other ::EmberAfStatus - * to reject it. - * - * @param endpoint Ver.: always - * @param clusterId Ver.: always - * @param attributeId Ver.: always - * @param mask Ver.: always - * @param manufacturerCode Ver.: always - * @param type Ver.: always - * @param size Ver.: always - * @param value Ver.: always - */ -EmberAfStatus emberAfPreAttributeChangeCallback(uint8_t endpoint, EmberAfClusterId clusterId, EmberAfAttributeId attributeId, - uint8_t mask, uint16_t manufacturerCode, uint8_t type, uint8_t size, - uint8_t * value); -/** @brief Pre Cli Send - * - * This function is called by the framework when it is about to pass a message - * constructed over CLI to the stack primitives for sending. If the function - * returns true it is assumed that the callback has consumed and processed the - * message. The framework will not do any further processing on the message. - - * If the function returns false then it is assumed that the callback has - * not processed the message and the framework will continue to process - * accordingly. - * - * @param apsFrame The structure containing the APS frame Ver.: always - * @param source Source Node Id Ver.: always - * @param destination Destintion Node Id Ver.: always - * @param message Pointer to the message payload Ver.: always - * @param messageLength Length of the message payload Ver.: always - */ -bool emberAfPreCliSendCallback(EmberApsFrame * apsFrame, EmberNodeId source, EmberNodeId destination, uint8_t * message, - uint16_t messageLength); -/** @brief Pre Command Received - * - * This callback is the second in the Application Framework's message processing - * chain. At this point in the processing of incoming over-the-air messages, the - * application has determined that the incoming message is a ZCL command. It - * parses enough of the message to populate an EmberAfClusterCommand struct. The - * Application Framework defines this struct value in a local scope to the - * command processing but also makes it available through a global pointer - * called emberAfCurrentCommand, in app/framework/util/util.c. When command - * processing is complete, this pointer is cleared. - * - * @param cmd Ver.: always - */ -bool emberAfPreCommandReceivedCallback(EmberAfClusterCommand * cmd); -/** @brief Pre Message Received - * - * This callback is the first in the Application Framework's message processing - * chain. The Application Framework calls it when a message has been received - * over the air but has not yet been parsed by the ZCL command-handling code. If - * you wish to parse some messages that are completely outside the ZCL - * specification or are not handled by the Application Framework's command - * handling code, you should intercept them for parsing in this callback. - - * This callback returns a Boolean value indicating whether or not the message - * has been handled. If the callback returns a value of true, then the - * Application Framework assumes that the message has been handled and it does - * nothing else with it. If the callback returns a value of false, then the - * application framework continues to process the message as it would with any - * incoming message. - Note: This callback receives a pointer to an - * incoming message struct. This struct allows the application framework to - * provide a unified interface between both Host devices, which receive their - * message through the ezspIncomingMessageHandler, and SoC devices, which - * receive their message through emberIncomingMessageHandler. - * - * @param incomingMessage Ver.: always - */ -bool emberAfPreMessageReceivedCallback(EmberAfIncomingMessage * incomingMessage); -/** @brief Pre Message Send - * - * This function is called by the framework when it is about to pass a message - * to the stack primitives for sending. This message may or may not be ZCL, - * ZDO, or some other protocol. This is called prior to - any ZigBee - * fragmentation that may be done. If the function returns true it is assumed - * the callback has consumed and processed the message. The callback must also - * set the EmberStatus status code to be passed back to the caller. The - * framework will do no further processing on the message. - If the - * function returns false then it is assumed that the callback has not processed - * the mesasge and the framework will continue to process accordingly. - * - * @param messageStruct The structure containing the parameters of the APS - * message to be sent. Ver.: always - * @param status A pointer to the status code value that will be returned to the - * caller. Ver.: always - */ -bool emberAfPreMessageSendCallback(EmberAfMessageStruct * messageStruct, EmberStatus * status); -/** @brief Pre Ncp Reset - * - * This function will be called prior to the reset of the NCP by the host. - * - */ -void emberAfPreNcpResetCallback(void); -/** @brief Pre ZDO Message Received - * - * This function passes the application an incoming ZDO message and gives the - * appictation the opportunity to handle it. By default, this callback returns - * false indicating that the incoming ZDO message has not been handled and - * should be handled by the Application Framework. - * - * @param emberNodeId Ver.: always - * @param apsFrame Ver.: always - * @param message Ver.: always - * @param length Ver.: always - */ -bool emberAfPreZDOMessageReceivedCallback(EmberNodeId emberNodeId, EmberApsFrame * apsFrame, uint8_t * message, uint16_t length); -/** @brief Read Attributes Response - * - * This function is called by the application framework when a Read Attributes - * Response command is received from an external device. The application should - * return true if the message was processed or false if it was not. - * - * @param clusterId The cluster identifier of this response. Ver.: always - * @param buffer Buffer containing the list of read attribute status records. - * Ver.: always - * @param bufLen The length in bytes of the list. Ver.: always - */ -bool emberAfReadAttributesResponseCallback(EmberAfClusterId clusterId, uint8_t * buffer, uint16_t bufLen); -/** @brief Read Reporting Configuration Command - * - * This function is called by the application framework when a Read Reporting - * Configuration command is received from an external device. The application - * should return true if the message was processed or false if it was not. - * - * @param cmd Ver.: always - */ -bool emberAfReadReportingConfigurationCommandCallback(const EmberAfClusterCommand * cmd); -/** @brief Read Reporting Configuration Response - * - * This function is called by the application framework when a Read Reporting - * Configuration Response command is received from an external device. The - * application should return true if the message was processed or false if it - * was not. - * - * @param clusterId The cluster identifier of this response. Ver.: always - * @param buffer Buffer containing the list of attribute reporting configuration - * records. Ver.: always - * @param bufLen The length in bytes of the list. Ver.: always - */ -bool emberAfReadReportingConfigurationResponseCallback(EmberAfClusterId clusterId, uint8_t * buffer, uint16_t bufLen); -/** @brief Registration Abort - * - * This callback is called when the device should abort the registration - * process. - * - */ -void emberAfRegistrationAbortCallback(void); -/** @brief Registration - * - * This callback is called when the device joins a network and the process of - * registration is complete. This callback provides a success value of true if - * the registration process was successful and a value of false if registration - * failed. - * - * @param success true if registration succeeded, false otherwise. Ver.: always - */ -void emberAfRegistrationCallback(bool success); -/** @brief Registration Start - * - * This callback is called when the device joins a network and the registration - * process should begin. The application should return EMBER_SUCCESS if the - * registration process started successfully. When registration is complete, - * the application should call emberAfRegistrationCallback with an indication of - * success or failure. - * - */ -EmberStatus emberAfRegistrationStartCallback(void); -/** @brief Remote Delete Binding Permission - * - * This function is called by the framework to request permission to service the - * remote delete binding request. Return EMBER_SUCCESS to allow request, - * anything else to disallow request. - * - * @param index index to an Ember binding table entry Ver.: always - */ -EmberStatus emberAfRemoteDeleteBindingPermissionCallback(uint8_t index); -/** @brief Remote Set Binding Permission - * - * This function is called by the framework to request permission to service the - * remote set binding request. Return EMBER_SUCCESS to allow request, anything - * else to disallow request. - * - * @param entry Ember Binding Tablet Entry Ver.: always - */ -EmberStatus emberAfRemoteSetBindingPermissionCallback(const EmberBindingTableEntry * entry); -/** @brief Remove From Current App Tasks - * - * This function is only useful to sleepy end devices. This function will - * remove the passed item from the set of tasks the application has outstanding - * (e.g. message sent requiring APS acknwoledgement). This will affect how the - * application behaves with regard to sleeping and polling. Removing the item - * from the list of outstanding tasks may allow the device to sleep longer and - * poll less frequently. If there are other outstanding tasks the system may - * still have to stay away and poll more often. - * - * @param tasks Ver.: always - */ -void emberAfRemoveFromCurrentAppTasksCallback(EmberAfApplicationTask tasks); -/** @brief Report Attributes - * - * This function is called by the application framework when a Report Attributes - * command is received from an external device. The application should return - * true if the message was processed or false if it was not. - * - * @param clusterId The cluster identifier of this command. Ver.: always - * @param buffer Buffer containing the list of attribute report records. Ver.: - * always - * @param bufLen The length in bytes of the list. Ver.: always - */ -bool emberAfReportAttributesCallback(EmberAfClusterId clusterId, uint8_t * buffer, uint16_t bufLen); -/** @brief Reporting Attribute Change - * - * This function is called by the framework when an attribute managed by the - * framework changes. The application should call this function when an - * externally-managed attribute changes. The application should use the change - * notification to inform its reporting decisions. - * - * @param endpoint Ver.: always - * @param clusterId Ver.: always - * @param attributeId Ver.: always - * @param mask Ver.: always - * @param manufacturerCode Ver.: always - * @param type Ver.: always - * @param data Ver.: always - */ -void emberAfReportingAttributeChangeCallback(uint8_t endpoint, EmberAfClusterId clusterId, EmberAfAttributeId attributeId, - uint8_t mask, uint16_t manufacturerCode, EmberAfAttributeType type, uint8_t * data); -/** @brief Scan Complete - * - * This is called by the low-level stack code when an 802.15.4 active scan - * completes. - * - * @param channel If the status indicates an error, the channel on which the - * error occurred. Otherwise it is undefined for EMBER_SUCCESS. Ver.: always - * @param status The status of the scan. Ver.: always - */ -void emberAfScanCompleteCallback(uint8_t channel, EmberStatus status); -/** @brief Scan Error - * - * This is called by the framework on behalf of the form-and-join library to - * notify the application if an error occurs while scanning. See form-and-join - * documentation for more information. - * - * @param status The status of the scan. Ver.: always - */ -void emberAfScanErrorCallback(EmberStatus status); -/** @brief Security Init - * - * This callback is called by the framework to give the application a chance to - * modify the security settings of the node during network initialization. - * Depending on the context when this callback is called, the pointer to the - * initial security state may be NULL, which means the initial security state - * can no longer be modified as the node is already operating on the network. - * - * @param state Ver.: always - * @param extended Ver.: always - * @param trustCenter Ver.: always - */ -void emberAfSecurityInitCallback(EmberInitialSecurityState * state, EmberExtendedSecurityBitmask * extended, bool trustCenter); -/** @brief Set Default Poll Control - * - * This function will set the default poll control for the current network to - * control whether or not it can long poll. - * - * @param control Ver.: always - */ -void emberAfSetDefaultPollControlCallback(EmberAfEventPollControl control); -/** @brief Set Default Sleep Control - * - * This function will set the default behavior of a sleeping device to control - * whether or not it must stay awake. A device that stays awake does not sleep - * at all. Otherwise, the device can sleep between events when appropriate. - * - * @param control Ver.: always - */ -void emberAfSetDefaultSleepControlCallback(EmberAfEventSleepControl control); -/** @brief Set Form And Join Extended Pan Id - * - * This callback is called by the framework to set the extended PAN ID used by - * the current network for forming and joining. The extended PAN ID used for - * forming and joining is not necessarily the same extended PAN ID actually in - * use on the network. - * - * @param extendedPanId Ver.: always - */ -void emberAfSetFormAndJoinExtendedPanIdCallback(const uint8_t * extendedPanId); -/** @brief Set Long Poll Interval Ms - * - * This function is only useful to end devices. This function will set the long - * poll interval (in milliseconds) for the current network. This interval is - * the maximum amount of time a child will wait between polls of its parent when - * it is not expecting data. - * - * @param longPollIntervalMs Ver.: always - */ -void emberAfSetLongPollIntervalMsCallback(uint32_t longPollIntervalMs); -/** @brief Set Long Poll Interval Qs - * - * This function is only useful to end devices. This function will set the long - * poll interval (in quarter seconds) for the current network. This interval is - * the maximum amount of time a child will wait between polls of its parent when - * it is not expecting data. - * - * @param longPollIntervalQs Ver.: always - */ -void emberAfSetLongPollIntervalQsCallback(uint32_t longPollIntervalQs); -/** @brief Set Short Poll Interval Ms - * - * This function is only useful to sleepy end devices. This function will set - * the short poll interval (in milliseconds) for the current network. This - * interval is the maximum amount of time a child will wait between polls of its - * parent when it is expecting data. - * - * @param shortPollIntervalMs Ver.: always - */ -void emberAfSetShortPollIntervalMsCallback(uint16_t shortPollIntervalMs); -/** @brief Set Short Poll Interval Qs - * - * This function is only useful to sleepy end devices. This function will set - * the short poll interval (in quarter seconds) for the current network. This - * interval is the maximum amount of time a child will wait between polls of its - * parent when it is expecting data. - * - * @param shortPollIntervalQs Ver.: always - */ -void emberAfSetShortPollIntervalQsCallback(uint16_t shortPollIntervalQs); -/** @brief Set Source Route Overhead - * - * This function is called by the framework when it has information about the - * source route overhead to a particular destination. The application may use - * this information to cache the source route overhead. - * - * @param destination The node id of the destination Ver.: always - * @param overhead The overhead in bytes Ver.: always - */ -void emberAfSetSourceRouteOverheadCallback(EmberNodeId destination, uint8_t overhead); -/** @brief Set Time - * - * This callback should be implemented, if the device has access to real time - * clock, and has an ability to update that clock. The application framework - * expects to be passed the utcTime which is the number of seconds since the - * year 2000. Default implementation does nothing. Note: This function used to - * take time in year, month, day, hour, min, sec. We have changed this to - * utcTime in order to conserve code space. - * - * @param utcTime Ver.: always - */ -void emberAfSetTimeCallback(uint32_t utcTime); -/** @brief Set Wake Timeout Bitmask - * - * This function is only useful to sleepy end devices. This function will set - * the wake timeout bitmask for the current network. The bitmask determines - * which tasks will timeout automatically and which tasks require manual removal - * from the task list. - * - * @param tasks Ver.: always - */ -void emberAfSetWakeTimeoutBitmaskCallback(EmberAfApplicationTask tasks); -/** @brief Set Wake Timeout Ms - * - * This function is only useful to sleepy end devices. This function will set - * the wake timeout (in milliseconds) for the current network. This timeout is - * the maximum amount of time a child will wait for a task in the wake bitmask - * to finish. While waiting, the device will short poll. - * - * @param wakeTimeoutMs Ver.: always - */ -void emberAfSetWakeTimeoutMsCallback(uint16_t wakeTimeoutMs); -/** @brief Set Wake Timeout Qs - * - * This function is only useful to sleepy end devices. This function will set - * the wake timeout (in quarter seconds) for the current network. This timeout - * is the maximum amount of time a child will wait for a task in the wake - * bitmask to finish. While waiting, the device will short poll. - * - * @param wakeTimeoutQs Ver.: always - */ -void emberAfSetWakeTimeoutQsCallback(uint16_t wakeTimeoutQs); -/** @brief Stack Status - * - * This function is called by the application framework from the stack status - * handler. This callbacks provides applications an opportunity to be notified - * of changes to the stack status and take appropriate action. The return code - * from this callback is ignored by the framework. The framework will always - * process the stack status after the callback returns. - * - * @param status Ver.: always - */ -bool emberAfStackStatusCallback(EmberStatus status); -/** @brief Start Move - * - * This function is called to initiate the process for a device to move (rejoin) - * to a new parent. - * - */ -bool emberAfStartMoveCallback(void); -/** @brief Start Search For Joinable Network - * - * This function is called by the framework to search for joinable networks and - * join a network. The application should return EMBER_SUCCESS if the operation - * was initiated successfully. - * - */ -EmberStatus emberAfStartSearchForJoinableNetworkCallback(void); -/** @brief Stop Move - * - * This function is called to cancel a previously scheduled move (rejoin) to a - * new parent. - * - */ -void emberAfStopMoveCallback(void); -/** @brief Trust Center Join - * - * This callback is called from within the application framework's - * implementation of emberTrustCenterJoinHandler or ezspTrustCenterJoinHandler. - * This callback provides the same arguments passed to the - * TrustCenterJoinHandler. For more information about the TrustCenterJoinHandler - * please see documentation included in stack/include/trust-center.h. - * - * @param newNodeId Ver.: always - * @param newNodeEui64 Ver.: always - * @param parentOfNewNode Ver.: always - * @param status Ver.: always - * @param decision Ver.: always - */ -void emberAfTrustCenterJoinCallback(EmberNodeId newNodeId, EmberEUI64 newNodeEui64, EmberNodeId parentOfNewNode, - EmberDeviceUpdate status, EmberJoinDecision decision); -/** @brief Trust Center Keepalive Abort - * - * This callback is called when the device should abort the trust center - * keepalive process. - * - */ -void emberAfTrustCenterKeepaliveAbortCallback(void); -/** @brief Trust Center Keepalive Update - * - * This callback is called when the device finishes registration (successfully - * or otherwise) and the trust center keepalive process must be updated. If the - * keepalive process has not been started, then it is started. Otherwise if the - * keepalive is in the process of searching for the TC, it will process the - * result of that Trust Center search operation. - * - * @param registrationComplete Ver.: always - */ -void emberAfTrustCenterKeepaliveUpdateCallback(bool registrationComplete); -/** @brief Unused Pan Id Found - * - * This is called by the framework on behalf of the form-and-join library to - * notify the application of the PAN id and channel found following a call to - * ::emberScanForUnusedPanId(). See form-and-join documentation for more - * information. - * - * @param panId Ver.: always - * @param channel Ver.: always - */ -void emberAfUnusedPanIdFoundCallback(EmberPanId panId, uint8_t channel); -/** @brief Write Attributes Response - * - * This function is called by the application framework when a Write Attributes - * Response command is received from an external device. The application should - * return true if the message was processed or false if it was not. - * - * @param clusterId The cluster identifier of this response. Ver.: always - * @param buffer Buffer containing the list of write attribute status records. - * Ver.: always - * @param bufLen The length in bytes of the list. Ver.: always - */ -bool emberAfWriteAttributesResponseCallback(EmberAfClusterId clusterId, uint8_t * buffer, uint16_t bufLen); -/** @brief Zigbee Key Establishment - * - * A callback to the application to notify it of the status of the request for a - * Link Key. - * - * @param partner partner The IEEE address of the partner device. Or all zeros - * if the Key establishment failed. Ver.: always - * @param status The status of the key establishment. Ver.: always - */ -void emberAfZigbeeKeyEstablishmentCallback(EmberEUI64 partner, EmberKeyStatus status); -/** @} END Non-Cluster Related Callbacks */ - -/** @name Basic Cluster Callbacks */ -// @{ - -/** @brief Basic Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfBasicClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Basic Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfBasicClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Basic Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfBasicClusterClientInitCallback(uint8_t endpoint); -/** @brief Basic Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfBasicClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Basic Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfBasicClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, EmberStatus status); -/** @brief Basic Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfBasicClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Basic Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfBasicClusterClientTickCallback(uint8_t endpoint); -/** @brief Basic Cluster Get Locales Supported - * - * - * - * @param startLocale Ver.: always - * @param maxLocalesRequested Ver.: always - */ -bool emberAfBasicClusterGetLocalesSupportedCallback(uint8_t * startLocale, uint8_t maxLocalesRequested); -/** @brief Basic Cluster Get Locales Supported Response - * - * - * - * @param discoveryComplete Ver.: always - * @param localeSupported Ver.: always - */ -bool emberAfBasicClusterGetLocalesSupportedResponseCallback(uint8_t discoveryComplete, uint8_t * localeSupported); -/** @brief Basic Cluster Reset To Factory Defaults - * - * - * - */ -bool emberAfBasicClusterResetToFactoryDefaultsCallback(void); -/** @brief Basic Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfBasicClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Basic Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfBasicClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Basic Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfBasicClusterServerInitCallback(uint8_t endpoint); -/** @brief Basic Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfBasicClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Basic Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfBasicClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, EmberStatus status); -/** @brief Basic Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfBasicClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Basic Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfBasicClusterServerTickCallback(uint8_t endpoint); - -/** @} END Basic Cluster Callbacks */ - -/** @name Power Configuration Cluster Callbacks */ -// @{ - -/** @brief Power Configuration Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfPowerConfigClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Power Configuration Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfPowerConfigClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Power Configuration Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfPowerConfigClusterClientInitCallback(uint8_t endpoint); -/** @brief Power Configuration Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfPowerConfigClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Power Configuration Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfPowerConfigClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Power Configuration Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfPowerConfigClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Power Configuration Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfPowerConfigClusterClientTickCallback(uint8_t endpoint); -/** @brief Power Configuration Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfPowerConfigClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Power Configuration Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfPowerConfigClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Power Configuration Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfPowerConfigClusterServerInitCallback(uint8_t endpoint); -/** @brief Power Configuration Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfPowerConfigClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Power Configuration Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfPowerConfigClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Power Configuration Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfPowerConfigClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Power Configuration Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfPowerConfigClusterServerTickCallback(uint8_t endpoint); - -/** @} END Power Configuration Cluster Callbacks */ - -/** @name Device Temperature Configuration Cluster Callbacks */ -// @{ - -/** @brief Device Temperature Configuration Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfDeviceTempClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Device Temperature Configuration Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfDeviceTempClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Device Temperature Configuration Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfDeviceTempClusterClientInitCallback(uint8_t endpoint); -/** @brief Device Temperature Configuration Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfDeviceTempClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Device Temperature Configuration Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfDeviceTempClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Device Temperature Configuration Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfDeviceTempClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Device Temperature Configuration Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfDeviceTempClusterClientTickCallback(uint8_t endpoint); -/** @brief Device Temperature Configuration Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfDeviceTempClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Device Temperature Configuration Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfDeviceTempClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Device Temperature Configuration Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfDeviceTempClusterServerInitCallback(uint8_t endpoint); -/** @brief Device Temperature Configuration Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfDeviceTempClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Device Temperature Configuration Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfDeviceTempClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Device Temperature Configuration Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfDeviceTempClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Device Temperature Configuration Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfDeviceTempClusterServerTickCallback(uint8_t endpoint); - -/** @} END Device Temperature Configuration Cluster Callbacks */ - -/** @name Identify Cluster Callbacks */ -// @{ - -/** @brief Identify Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfIdentifyClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Identify Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfIdentifyClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Identify Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfIdentifyClusterClientInitCallback(uint8_t endpoint); -/** @brief Identify Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfIdentifyClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Identify Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfIdentifyClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Identify Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfIdentifyClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Identify Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfIdentifyClusterClientTickCallback(uint8_t endpoint); -/** @brief Identify Cluster E Z Mode Invoke - * - * - * - * @param action Ver.: always - */ -bool emberAfIdentifyClusterEZModeInvokeCallback(uint8_t action); -/** @brief Identify Cluster Identify - * - * - * - * @param identifyTime Ver.: always - */ -bool emberAfIdentifyClusterIdentifyCallback(uint16_t identifyTime); -/** @brief Identify Cluster Identify Query - * - * - * - */ -bool emberAfIdentifyClusterIdentifyQueryCallback(void); -/** @brief Identify Cluster Identify Query Response - * - * - * - * @param timeout Ver.: always - */ -bool emberAfIdentifyClusterIdentifyQueryResponseCallback(uint16_t timeout); -/** @brief Identify Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfIdentifyClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Identify Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfIdentifyClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Identify Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfIdentifyClusterServerInitCallback(uint8_t endpoint); -/** @brief Identify Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfIdentifyClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Identify Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfIdentifyClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Identify Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfIdentifyClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Identify Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfIdentifyClusterServerTickCallback(uint8_t endpoint); -/** @brief Identify Cluster Trigger Effect - * - * - * - * @param effectId Ver.: always - * @param effectVariant Ver.: always - */ -bool emberAfIdentifyClusterTriggerEffectCallback(uint8_t effectId, uint8_t effectVariant); -/** @brief Identify Cluster Update Commission State - * - * - * - * @param action Ver.: always - * @param commissionStateMask Ver.: always - */ -bool emberAfIdentifyClusterUpdateCommissionStateCallback(uint8_t action, uint8_t commissionStateMask); - -/** @} END Identify Cluster Callbacks */ - -/** @name Groups Cluster Callbacks */ -// @{ - -/** @brief Groups Cluster Clear Group Table - * - * This function is called by the framework when the application should clear - * the group table. - * - * @param endpoint The endpoint. Ver.: always - */ -void emberAfGroupsClusterClearGroupTableCallback(uint8_t endpoint); -/** @brief Groups Cluster Endpoint In Group - * - * This function is called by the framework when it needs to determine if an - * endpoint is a member of a group. The application should return true if the - * endpoint is a member of the group and false otherwise. - * - * @param endpoint The endpoint. Ver.: always - * @param groupId The group identifier. Ver.: always - */ -bool emberAfGroupsClusterEndpointInGroupCallback(uint8_t endpoint, uint16_t groupId); -/** @brief Groups Cluster Add Group - * - * - * - * @param groupId Ver.: always - * @param groupName Ver.: always - */ -bool emberAfGroupsClusterAddGroupCallback(uint16_t groupId, uint8_t * groupName); -/** @brief Groups Cluster Add Group If Identifying - * - * - * - * @param groupId Ver.: always - * @param groupName Ver.: always - */ -bool emberAfGroupsClusterAddGroupIfIdentifyingCallback(uint16_t groupId, uint8_t * groupName); -/** @brief Groups Cluster Add Group Response - * - * - * - * @param status Ver.: always - * @param groupId Ver.: always - */ -bool emberAfGroupsClusterAddGroupResponseCallback(uint8_t status, uint16_t groupId); -/** @brief Groups Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfGroupsClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Groups Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfGroupsClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Groups Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfGroupsClusterClientInitCallback(uint8_t endpoint); -/** @brief Groups Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfGroupsClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Groups Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfGroupsClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Groups Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfGroupsClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Groups Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfGroupsClusterClientTickCallback(uint8_t endpoint); -/** @brief Groups Cluster Get Group Membership - * - * - * - * @param groupCount Ver.: always - * @param groupList Ver.: always - */ -bool emberAfGroupsClusterGetGroupMembershipCallback(uint8_t groupCount, uint8_t * groupList); -/** @brief Groups Cluster Get Group Membership Response - * - * - * - * @param capacity Ver.: always - * @param groupCount Ver.: always - * @param groupList Ver.: always - */ -bool emberAfGroupsClusterGetGroupMembershipResponseCallback(uint8_t capacity, uint8_t groupCount, uint8_t * groupList); -/** @brief Groups Cluster Remove All Groups - * - * - * - */ -bool emberAfGroupsClusterRemoveAllGroupsCallback(void); -/** @brief Groups Cluster Remove Group - * - * - * - * @param groupId Ver.: always - */ -bool emberAfGroupsClusterRemoveGroupCallback(uint16_t groupId); -/** @brief Groups Cluster Remove Group Response - * - * - * - * @param status Ver.: always - * @param groupId Ver.: always - */ -bool emberAfGroupsClusterRemoveGroupResponseCallback(uint8_t status, uint16_t groupId); -/** @brief Groups Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfGroupsClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Groups Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfGroupsClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Groups Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfGroupsClusterServerInitCallback(uint8_t endpoint); -/** @brief Groups Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfGroupsClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Groups Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfGroupsClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Groups Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfGroupsClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Groups Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfGroupsClusterServerTickCallback(uint8_t endpoint); -/** @brief Groups Cluster View Group - * - * - * - * @param groupId Ver.: always - */ -bool emberAfGroupsClusterViewGroupCallback(uint16_t groupId); -/** @brief Groups Cluster View Group Response - * - * - * - * @param status Ver.: always - * @param groupId Ver.: always - * @param groupName Ver.: always - */ -bool emberAfGroupsClusterViewGroupResponseCallback(uint8_t status, uint16_t groupId, uint8_t * groupName); - -/** @} END Groups Cluster Callbacks */ - -/** @name Scenes Cluster Callbacks */ -// @{ - -/** @brief Scenes Cluster ClearSceneTable - * - * This function is called by the framework when the application should clear - * the scene table. - * - * @param endpoint The endpoint. Ver.: always - */ -void emberAfScenesClusterClearSceneTableCallback(uint8_t endpoint); -/** @brief Scenes Cluster Make Invalid - * - * This function is called to invalidate the valid attribute in the Scenes - * cluster. - * - * @param endpoint Ver.: always - */ -EmberAfStatus emberAfScenesClusterMakeInvalidCallback(uint8_t endpoint); -/** @brief Scenes Cluster Recall Saved Scene - * - * This function is called by the framework when the application should recall a - * saved scene. - * - * @param endpoint The endpoint. Ver.: always - * @param groupId The group identifier. Ver.: always - * @param sceneId The scene identifier. Ver.: always - */ -EmberAfStatus emberAfScenesClusterRecallSavedSceneCallback(uint8_t endpoint, uint16_t groupId, uint8_t sceneId); -/** @brief Scenes Cluster Remove Scenes In Group - * - * This function removes the scenes from a specified group. - * - * @param endpoint Endpoint Ver.: always - * @param groupId Group ID Ver.: always - */ -void emberAfScenesClusterRemoveScenesInGroupCallback(uint8_t endpoint, uint16_t groupId); -/** @brief Scenes Cluster Add Scene - * - * - * - * @param groupId Ver.: always - * @param sceneId Ver.: always - * @param transitionTime Ver.: always - * @param sceneName Ver.: always - * @param extensionFieldSets Ver.: always - */ -bool emberAfScenesClusterAddSceneCallback(uint16_t groupId, uint8_t sceneId, uint16_t transitionTime, uint8_t * sceneName, - uint8_t * extensionFieldSets); -/** @brief Scenes Cluster Add Scene Response - * - * - * - * @param status Ver.: always - * @param groupId Ver.: always - * @param sceneId Ver.: always - */ -bool emberAfScenesClusterAddSceneResponseCallback(uint8_t status, uint16_t groupId, uint8_t sceneId); -/** @brief Scenes Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfScenesClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Scenes Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfScenesClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Scenes Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfScenesClusterClientInitCallback(uint8_t endpoint); -/** @brief Scenes Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfScenesClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Scenes Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfScenesClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Scenes Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfScenesClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Scenes Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfScenesClusterClientTickCallback(uint8_t endpoint); -/** @brief Scenes Cluster Copy Scene - * - * - * - * @param mode Ver.: always - * @param groupIdFrom Ver.: always - * @param sceneIdFrom Ver.: always - * @param groupIdTo Ver.: always - * @param sceneIdTo Ver.: always - */ -bool emberAfScenesClusterCopySceneCallback(uint8_t mode, uint16_t groupIdFrom, uint8_t sceneIdFrom, uint16_t groupIdTo, - uint8_t sceneIdTo); -/** @brief Scenes Cluster Copy Scene Response - * - * - * - * @param status Ver.: always - * @param groupIdFrom Ver.: always - * @param sceneIdFrom Ver.: always - */ -bool emberAfScenesClusterCopySceneResponseCallback(uint8_t status, uint16_t groupIdFrom, uint8_t sceneIdFrom); -/** @brief Scenes Cluster Enhanced Add Scene - * - * - * - * @param groupId Ver.: always - * @param sceneId Ver.: always - * @param transitionTime Ver.: always - * @param sceneName Ver.: always - * @param extensionFieldSets Ver.: always - */ -bool emberAfScenesClusterEnhancedAddSceneCallback(uint16_t groupId, uint8_t sceneId, uint16_t transitionTime, uint8_t * sceneName, - uint8_t * extensionFieldSets); -/** @brief Scenes Cluster Enhanced Add Scene Response - * - * - * - * @param status Ver.: always - * @param groupId Ver.: always - * @param sceneId Ver.: always - */ -bool emberAfScenesClusterEnhancedAddSceneResponseCallback(uint8_t status, uint16_t groupId, uint8_t sceneId); -/** @brief Scenes Cluster Enhanced View Scene - * - * - * - * @param groupId Ver.: always - * @param sceneId Ver.: always - */ -bool emberAfScenesClusterEnhancedViewSceneCallback(uint16_t groupId, uint8_t sceneId); -/** @brief Scenes Cluster Enhanced View Scene Response - * - * - * - * @param status Ver.: always - * @param groupId Ver.: always - * @param sceneId Ver.: always - * @param transitionTime Ver.: always - * @param sceneName Ver.: always - * @param extensionFieldSets Ver.: always - */ -bool emberAfScenesClusterEnhancedViewSceneResponseCallback(uint8_t status, uint16_t groupId, uint8_t sceneId, - uint16_t transitionTime, uint8_t * sceneName, - uint8_t * extensionFieldSets); -/** @brief Scenes Cluster Get Scene Membership - * - * - * - * @param groupId Ver.: always - */ -bool emberAfScenesClusterGetSceneMembershipCallback(uint16_t groupId); -/** @brief Scenes Cluster Get Scene Membership Response - * - * - * - * @param status Ver.: always - * @param capacity Ver.: always - * @param groupId Ver.: always - * @param sceneCount Ver.: always - * @param sceneList Ver.: always - */ -bool emberAfScenesClusterGetSceneMembershipResponseCallback(uint8_t status, uint8_t capacity, uint16_t groupId, uint8_t sceneCount, - uint8_t * sceneList); -/** @brief Scenes Cluster Recall Scene - * - * - * - * @param groupId Ver.: always - * @param sceneId Ver.: always - * @param transitionTime Ver.: since zcl-7.0-07-5123-07 - */ -bool emberAfScenesClusterRecallSceneCallback(uint16_t groupId, uint8_t sceneId, uint16_t transitionTime); -/** @brief Scenes Cluster Remove All Scenes - * - * - * - * @param groupId Ver.: always - */ -bool emberAfScenesClusterRemoveAllScenesCallback(uint16_t groupId); -/** @brief Scenes Cluster Remove All Scenes Response - * - * - * - * @param status Ver.: always - * @param groupId Ver.: always - */ -bool emberAfScenesClusterRemoveAllScenesResponseCallback(uint8_t status, uint16_t groupId); -/** @brief Scenes Cluster Remove Scene - * - * - * - * @param groupId Ver.: always - * @param sceneId Ver.: always - */ -bool emberAfScenesClusterRemoveSceneCallback(uint16_t groupId, uint8_t sceneId); -/** @brief Scenes Cluster Remove Scene Response - * - * - * - * @param status Ver.: always - * @param groupId Ver.: always - * @param sceneId Ver.: always - */ -bool emberAfScenesClusterRemoveSceneResponseCallback(uint8_t status, uint16_t groupId, uint8_t sceneId); -/** @brief Scenes Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfScenesClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Scenes Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfScenesClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Scenes Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfScenesClusterServerInitCallback(uint8_t endpoint); -/** @brief Scenes Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfScenesClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Scenes Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfScenesClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Scenes Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfScenesClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Scenes Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfScenesClusterServerTickCallback(uint8_t endpoint); -/** @brief Scenes Cluster Store Scene - * - * - * - * @param groupId Ver.: always - * @param sceneId Ver.: always - */ -bool emberAfScenesClusterStoreSceneCallback(uint16_t groupId, uint8_t sceneId); -/** @brief Scenes Cluster Store Scene Response - * - * - * - * @param status Ver.: always - * @param groupId Ver.: always - * @param sceneId Ver.: always - */ -bool emberAfScenesClusterStoreSceneResponseCallback(uint8_t status, uint16_t groupId, uint8_t sceneId); -/** @brief Scenes Cluster View Scene - * - * - * - * @param groupId Ver.: always - * @param sceneId Ver.: always - */ -bool emberAfScenesClusterViewSceneCallback(uint16_t groupId, uint8_t sceneId); -/** @brief Scenes Cluster View Scene Response - * - * - * - * @param status Ver.: always - * @param groupId Ver.: always - * @param sceneId Ver.: always - * @param transitionTime Ver.: always - * @param sceneName Ver.: always - * @param extensionFieldSets Ver.: always - */ -bool emberAfScenesClusterViewSceneResponseCallback(uint8_t status, uint16_t groupId, uint8_t sceneId, uint16_t transitionTime, - uint8_t * sceneName, uint8_t * extensionFieldSets); -/** @brief Scenes Cluster Store Current Scene - * - * This function is called by the framework when the application should store - * the current scene. If an entry already exists in the scene table with the - * same scene and group ids, the application should update the entry with the - * current scene. Otherwise, a new entry should be adde to the scene table, if - * possible. - * - * @param endpoint The endpoint. Ver.: always - * @param groupId The group identifier. Ver.: always - * @param sceneId The scene identifier. Ver.: always - */ -EmberAfStatus emberAfScenesClusterStoreCurrentSceneCallback(uint8_t endpoint, uint16_t groupId, uint8_t sceneId); - -/** @} END Scenes Cluster Callbacks */ - -/** @name On/off Cluster Callbacks */ -// @{ - -/** @brief On/off Cluster Level Control Effect - * - * This is called by the framework when the on/off cluster initiates a command - * that must effect a level control change. The implementation assumes that the - * client will handle any effect on the On/Off Cluster. - * - * @param endpoint Ver.: always - * @param newValue Ver.: always - */ -void emberAfOnOffClusterLevelControlEffectCallback(uint8_t endpoint, bool newValue); -/** @brief On/off Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfOnOffClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief On/off Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfOnOffClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief On/off Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfOnOffClusterClientInitCallback(uint8_t endpoint); -/** @brief On/off Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfOnOffClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief On/off Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfOnOffClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, EmberStatus status); -/** @brief On/off Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfOnOffClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief On/off Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfOnOffClusterClientTickCallback(uint8_t endpoint); -/** @brief On/off Cluster Off - * - * - * - */ -bool emberAfOnOffClusterOffCallback(void); -/** @brief On/off Cluster Off With Effect - * - * - * - * @param effectId Ver.: always - * @param effectVariant Ver.: always - */ -bool emberAfOnOffClusterOffWithEffectCallback(uint8_t effectId, uint8_t effectVariant); -/** @brief On/off Cluster On - * - * - * - */ -bool emberAfOnOffClusterOnCallback(void); -/** @brief On/off Cluster On With Recall Global Scene - * - * - * - */ -bool emberAfOnOffClusterOnWithRecallGlobalSceneCallback(void); -/** @brief On/off Cluster On With Timed Off - * - * - * - * @param onOffControl Ver.: always - * @param onTime Ver.: always - * @param offWaitTime Ver.: always - */ -bool emberAfOnOffClusterOnWithTimedOffCallback(uint8_t onOffControl, uint16_t onTime, uint16_t offWaitTime); -/** @brief On/off Cluster Sample Mfg Specific Off With Transition - * - * - * - */ -bool emberAfOnOffClusterSampleMfgSpecificOffWithTransitionCallback(void); -/** @brief On/off Cluster Sample Mfg Specific On With Transition2 - * - * - * - */ -bool emberAfOnOffClusterSampleMfgSpecificOnWithTransition2Callback(void); -/** @brief On/off Cluster Sample Mfg Specific On With Transition - * - * - * - */ -bool emberAfOnOffClusterSampleMfgSpecificOnWithTransitionCallback(void); -/** @brief On/off Cluster Sample Mfg Specific Toggle With Transition2 - * - * - * - */ -bool emberAfOnOffClusterSampleMfgSpecificToggleWithTransition2Callback(void); -/** @brief On/off Cluster Sample Mfg Specific Toggle With Transition - * - * - * - */ -bool emberAfOnOffClusterSampleMfgSpecificToggleWithTransitionCallback(void); -/** @brief On/off Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfOnOffClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief On/off Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfOnOffClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief On/off Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfOnOffClusterServerInitCallback(uint8_t endpoint); -/** @brief On/off Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfOnOffClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief On/off Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfOnOffClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, EmberStatus status); -/** @brief On/off Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfOnOffClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief On/off Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfOnOffClusterServerTickCallback(uint8_t endpoint); -/** @brief On/off Cluster Toggle - * - * - * - */ -bool emberAfOnOffClusterToggleCallback(void); -/** @brief On/off Cluster Set Value - * - * This function is called when the on/off value needs to be set, either through - * normal channels or as a result of a level change. - * - * @param endpoint Ver.: always - * @param command Ver.: always - * @param initiatedByLevelChange Ver.: always - */ -EmberAfStatus emberAfOnOffClusterSetValueCallback(uint8_t endpoint, uint8_t command, bool initiatedByLevelChange); -/** @brief On/off Cluster Server Post Init - * - * Following resolution of the On/Off state at startup for this endpoint, perform any - * additional initialization needed; e.g., synchronize hardware state. - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfPluginOnOffClusterServerPostInitCallback(uint8_t endpoint); - -/** @brief Basic Cluster Reset To Factory Defaults - * - * This function is called by the Basic server plugin when a request to - * reset to factory defaults is received. The plugin will reset attributes - * managed by the framework to their default values. - * The application should perform any other necessary reset-related operations - * in this callback, including resetting any externally-stored attributes. - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfPluginBasicResetToFactoryDefaultsCallback(uint8_t endpoint); - -/** @} END On/off Cluster Callbacks */ - -/** @name On/off Switch Configuration Cluster Callbacks */ -// @{ - -/** @brief On/off Switch Configuration Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfOnOffSwitchConfigClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief On/off Switch Configuration Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfOnOffSwitchConfigClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief On/off Switch Configuration Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfOnOffSwitchConfigClusterClientInitCallback(uint8_t endpoint); -/** @brief On/off Switch Configuration Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfOnOffSwitchConfigClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief On/off Switch Configuration Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfOnOffSwitchConfigClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief On/off Switch Configuration Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfOnOffSwitchConfigClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief On/off Switch Configuration Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfOnOffSwitchConfigClusterClientTickCallback(uint8_t endpoint); -/** @brief On/off Switch Configuration Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfOnOffSwitchConfigClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief On/off Switch Configuration Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfOnOffSwitchConfigClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief On/off Switch Configuration Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfOnOffSwitchConfigClusterServerInitCallback(uint8_t endpoint); -/** @brief On/off Switch Configuration Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfOnOffSwitchConfigClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief On/off Switch Configuration Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfOnOffSwitchConfigClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief On/off Switch Configuration Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfOnOffSwitchConfigClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief On/off Switch Configuration Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfOnOffSwitchConfigClusterServerTickCallback(uint8_t endpoint); - -/** @} END On/off Switch Configuration Cluster Callbacks */ - -/** @name Level Control Cluster Callbacks */ -// @{ - -/** @brief Level Control Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfLevelControlClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Level Control Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfLevelControlClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Level Control Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfLevelControlClusterClientInitCallback(uint8_t endpoint); -/** @brief Level Control Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfLevelControlClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Level Control Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfLevelControlClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Level Control Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfLevelControlClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Level Control Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfLevelControlClusterClientTickCallback(uint8_t endpoint); -/** @brief Level Control Cluster Move - * - * - * - * @param moveMode Ver.: always - * @param rate Ver.: always - * @param optionMask Ver.: since zcl6-errata-14-0129-15 - * @param optionOverride Ver.: since zcl6-errata-14-0129-15 - */ -bool emberAfLevelControlClusterMoveCallback(uint8_t moveMode, uint8_t rate, uint8_t optionMask, uint8_t optionOverride); -/** @brief Level Control Cluster Move To Level - * - * - * - * @param level Ver.: always - * @param transitionTime Ver.: always - * @param optionMask Ver.: since zcl6-errata-14-0129-15 - * @param optionOverride Ver.: since zcl6-errata-14-0129-15 - */ -bool emberAfLevelControlClusterMoveToLevelCallback(uint8_t level, uint16_t transitionTime, uint8_t optionMask, - uint8_t optionOverride); -/** @brief Level Control Cluster Move To Level With On Off - * - * - * - * @param level Ver.: always - * @param transitionTime Ver.: always - */ -bool emberAfLevelControlClusterMoveToLevelWithOnOffCallback(uint8_t level, uint16_t transitionTime); -/** @brief Level Control Cluster Move With On Off - * - * - * - * @param moveMode Ver.: always - * @param rate Ver.: always - */ -bool emberAfLevelControlClusterMoveWithOnOffCallback(uint8_t moveMode, uint8_t rate); -/** @brief Level Control Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfLevelControlClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Level Control Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfLevelControlClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Level Control Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfLevelControlClusterServerInitCallback(uint8_t endpoint); -/** @brief Level Control Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfLevelControlClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Level Control Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfLevelControlClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Level Control Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfLevelControlClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Level Control Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfLevelControlClusterServerTickCallback(uint8_t endpoint); -/** @brief Level Control Cluster Step - * - * - * - * @param stepMode Ver.: always - * @param stepSize Ver.: always - * @param transitionTime Ver.: always - * @param optionMask Ver.: since zcl6-errata-14-0129-15 - * @param optionOverride Ver.: since zcl6-errata-14-0129-15 - */ -bool emberAfLevelControlClusterStepCallback(uint8_t stepMode, uint8_t stepSize, uint16_t transitionTime, uint8_t optionMask, - uint8_t optionOverride); -/** @brief Level Control Cluster Step With On Off - * - * - * - * @param stepMode Ver.: always - * @param stepSize Ver.: always - * @param transitionTime Ver.: always - */ -bool emberAfLevelControlClusterStepWithOnOffCallback(uint8_t stepMode, uint8_t stepSize, uint16_t transitionTime); -/** @brief Level Control Cluster Stop - * - * - * - * @param optionMask Ver.: since zcl6-errata-14-0129-15 - * @param optionOverride Ver.: since zcl6-errata-14-0129-15 - */ -bool emberAfLevelControlClusterStopCallback(uint8_t optionMask, uint8_t optionOverride); -/** @brief Level Control Cluster Stop With On Off - * - * - * - */ -bool emberAfLevelControlClusterStopWithOnOffCallback(void); - -/** @} END Level Control Cluster Callbacks */ - -/** @name Alarms Cluster Callbacks */ -// @{ - -/** @brief Alarms Cluster Alarm - * - * - * - * @param alarmCode Ver.: always - * @param clusterId Ver.: always - */ -bool emberAfAlarmClusterAlarmCallback(uint8_t alarmCode, uint16_t clusterId); -/** @brief Alarms Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfAlarmClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Alarms Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfAlarmClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Alarms Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfAlarmClusterClientInitCallback(uint8_t endpoint); -/** @brief Alarms Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfAlarmClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Alarms Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfAlarmClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, EmberStatus status); -/** @brief Alarms Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfAlarmClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Alarms Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfAlarmClusterClientTickCallback(uint8_t endpoint); -/** @brief Alarms Cluster Get Alarm - * - * - * - */ -bool emberAfAlarmClusterGetAlarmCallback(void); -/** @brief Alarms Cluster Get Alarm Response - * - * - * - * @param status Ver.: always - * @param alarmCode Ver.: always - * @param clusterId Ver.: always - * @param timeStamp Ver.: always - */ -bool emberAfAlarmClusterGetAlarmResponseCallback(uint8_t status, uint8_t alarmCode, uint16_t clusterId, uint32_t timeStamp); -/** @brief Alarms Cluster Reset Alarm - * - * - * - * @param alarmCode Ver.: always - * @param clusterId Ver.: always - */ -bool emberAfAlarmClusterResetAlarmCallback(uint8_t alarmCode, uint16_t clusterId); -/** @brief Alarms Cluster Reset Alarm Log - * - * - * - */ -bool emberAfAlarmClusterResetAlarmLogCallback(void); -/** @brief Alarms Cluster Reset All Alarms - * - * - * - */ -bool emberAfAlarmClusterResetAllAlarmsCallback(void); -/** @brief Alarms Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfAlarmClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Alarms Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfAlarmClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Alarms Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfAlarmClusterServerInitCallback(uint8_t endpoint); -/** @brief Alarms Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfAlarmClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Alarms Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfAlarmClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, EmberStatus status); -/** @brief Alarms Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfAlarmClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Alarms Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfAlarmClusterServerTickCallback(uint8_t endpoint); - -/** @} END Alarms Cluster Callbacks */ - -/** @name Time Cluster Callbacks */ -// @{ - -/** @brief Time Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfTimeClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Time Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfTimeClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Time Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfTimeClusterClientInitCallback(uint8_t endpoint); -/** @brief Time Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfTimeClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Time Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfTimeClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, EmberStatus status); -/** @brief Time Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfTimeClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Time Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfTimeClusterClientTickCallback(uint8_t endpoint); -/** @brief Time Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfTimeClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Time Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfTimeClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Time Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfTimeClusterServerInitCallback(uint8_t endpoint); -/** @brief Time Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfTimeClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Time Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfTimeClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, EmberStatus status); -/** @brief Time Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfTimeClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Time Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfTimeClusterServerTickCallback(uint8_t endpoint); - -/** @} END Time Cluster Callbacks */ - -/** @name RSSI Location Cluster Callbacks */ -// @{ - -/** @brief RSSI Location Cluster Anchor Node Announce - * - * - * - * @param anchorNodeIeeeAddress Ver.: always - * @param coordinate1 Ver.: always - * @param coordinate2 Ver.: always - * @param coordinate3 Ver.: always - */ -bool emberAfRssiLocationClusterAnchorNodeAnnounceCallback(uint8_t * anchorNodeIeeeAddress, int16_t coordinate1, int16_t coordinate2, - int16_t coordinate3); -/** @brief RSSI Location Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfRssiLocationClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief RSSI Location Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfRssiLocationClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief RSSI Location Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfRssiLocationClusterClientInitCallback(uint8_t endpoint); -/** @brief RSSI Location Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfRssiLocationClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief RSSI Location Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfRssiLocationClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief RSSI Location Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfRssiLocationClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief RSSI Location Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfRssiLocationClusterClientTickCallback(uint8_t endpoint); -/** @brief RSSI Location Cluster Compact Location Data Notification - * - * - * - * @param locationType Ver.: always - * @param coordinate1 Ver.: always - * @param coordinate2 Ver.: always - * @param coordinate3 Ver.: always - * @param qualityMeasure Ver.: always - * @param locationAge Ver.: always - */ -bool emberAfRssiLocationClusterCompactLocationDataNotificationCallback(uint8_t locationType, int16_t coordinate1, - int16_t coordinate2, int16_t coordinate3, - uint8_t qualityMeasure, uint16_t locationAge); -/** @brief RSSI Location Cluster Device Configuration Response - * - * - * - * @param status Ver.: always - * @param power Ver.: always - * @param pathLossExponent Ver.: always - * @param calculationPeriod Ver.: always - * @param numberRssiMeasurements Ver.: always - * @param reportingPeriod Ver.: always - */ -bool emberAfRssiLocationClusterDeviceConfigurationResponseCallback(uint8_t status, int16_t power, uint16_t pathLossExponent, - uint16_t calculationPeriod, uint8_t numberRssiMeasurements, - uint16_t reportingPeriod); -/** @brief RSSI Location Cluster Get Device Configuration - * - * - * - * @param targetAddress Ver.: always - */ -bool emberAfRssiLocationClusterGetDeviceConfigurationCallback(uint8_t * targetAddress); -/** @brief RSSI Location Cluster Get Location Data - * - * - * - * @param flags Ver.: always - * @param numberResponses Ver.: always - * @param targetAddress Ver.: always - */ -bool emberAfRssiLocationClusterGetLocationDataCallback(uint8_t flags, uint8_t numberResponses, uint8_t * targetAddress); -/** @brief RSSI Location Cluster Location Data Notification - * - * - * - * @param locationType Ver.: always - * @param coordinate1 Ver.: always - * @param coordinate2 Ver.: always - * @param coordinate3 Ver.: always - * @param power Ver.: always - * @param pathLossExponent Ver.: always - * @param locationMethod Ver.: always - * @param qualityMeasure Ver.: always - * @param locationAge Ver.: always - */ -bool emberAfRssiLocationClusterLocationDataNotificationCallback(uint8_t locationType, int16_t coordinate1, int16_t coordinate2, - int16_t coordinate3, int16_t power, uint16_t pathLossExponent, - uint8_t locationMethod, uint8_t qualityMeasure, - uint16_t locationAge); -/** @brief RSSI Location Cluster Location Data Response - * - * - * - * @param status Ver.: always - * @param locationType Ver.: always - * @param coordinate1 Ver.: always - * @param coordinate2 Ver.: always - * @param coordinate3 Ver.: always - * @param power Ver.: always - * @param pathLossExponent Ver.: always - * @param locationMethod Ver.: always - * @param qualityMeasure Ver.: always - * @param locationAge Ver.: always - */ -bool emberAfRssiLocationClusterLocationDataResponseCallback(uint8_t status, uint8_t locationType, int16_t coordinate1, - int16_t coordinate2, int16_t coordinate3, int16_t power, - uint16_t pathLossExponent, uint8_t locationMethod, - uint8_t qualityMeasure, uint16_t locationAge); -/** @brief RSSI Location Cluster Report Rssi Measurements - * - * - * - * @param measuringDevice Ver.: always - * @param neighbors Ver.: always - * @param neighborsInfo Ver.: always - */ -bool emberAfRssiLocationClusterReportRssiMeasurementsCallback(uint8_t * measuringDevice, uint8_t neighbors, - uint8_t * neighborsInfo); -/** @brief RSSI Location Cluster Request Own Location - * - * - * - * @param blindNode Ver.: always - */ -bool emberAfRssiLocationClusterRequestOwnLocationCallback(uint8_t * blindNode); -/** @brief RSSI Location Cluster Rssi Ping - * - * - * - * @param locationType Ver.: always - */ -bool emberAfRssiLocationClusterRssiPingCallback(uint8_t locationType); -/** @brief RSSI Location Cluster Rssi Request - * - * - * - */ -bool emberAfRssiLocationClusterRssiRequestCallback(void); -/** @brief RSSI Location Cluster Rssi Response - * - * - * - * @param replyingDevice Ver.: always - * @param coordinate1 Ver.: always - * @param coordinate2 Ver.: always - * @param coordinate3 Ver.: always - * @param rssi Ver.: always - * @param numberRssiMeasurements Ver.: always - */ -bool emberAfRssiLocationClusterRssiResponseCallback(uint8_t * replyingDevice, int16_t coordinate1, int16_t coordinate2, - int16_t coordinate3, int8_t rssi, uint8_t numberRssiMeasurements); -/** @brief RSSI Location Cluster Send Pings - * - * - * - * @param targetAddress Ver.: always - * @param numberRssiMeasurements Ver.: always - * @param calculationPeriod Ver.: always - */ -bool emberAfRssiLocationClusterSendPingsCallback(uint8_t * targetAddress, uint8_t numberRssiMeasurements, - uint16_t calculationPeriod); -/** @brief RSSI Location Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfRssiLocationClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief RSSI Location Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfRssiLocationClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief RSSI Location Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfRssiLocationClusterServerInitCallback(uint8_t endpoint); -/** @brief RSSI Location Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfRssiLocationClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief RSSI Location Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfRssiLocationClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief RSSI Location Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfRssiLocationClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief RSSI Location Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfRssiLocationClusterServerTickCallback(uint8_t endpoint); -/** @brief RSSI Location Cluster Set Absolute Location - * - * - * - * @param coordinate1 Ver.: always - * @param coordinate2 Ver.: always - * @param coordinate3 Ver.: always - * @param power Ver.: always - * @param pathLossExponent Ver.: always - */ -bool emberAfRssiLocationClusterSetAbsoluteLocationCallback(int16_t coordinate1, int16_t coordinate2, int16_t coordinate3, - int16_t power, uint16_t pathLossExponent); -/** @brief RSSI Location Cluster Set Device Configuration - * - * - * - * @param power Ver.: always - * @param pathLossExponent Ver.: always - * @param calculationPeriod Ver.: always - * @param numberRssiMeasurements Ver.: always - * @param reportingPeriod Ver.: always - */ -bool emberAfRssiLocationClusterSetDeviceConfigurationCallback(int16_t power, uint16_t pathLossExponent, uint16_t calculationPeriod, - uint8_t numberRssiMeasurements, uint16_t reportingPeriod); - -/** @} END RSSI Location Cluster Callbacks */ - -/** @name Binary Input (Basic) Cluster Callbacks */ -// @{ - -/** @brief Binary Input (Basic) Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfBinaryInputBasicClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Binary Input (Basic) Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfBinaryInputBasicClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Binary Input (Basic) Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfBinaryInputBasicClusterClientInitCallback(uint8_t endpoint); -/** @brief Binary Input (Basic) Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfBinaryInputBasicClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Binary Input (Basic) Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfBinaryInputBasicClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Binary Input (Basic) Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfBinaryInputBasicClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Binary Input (Basic) Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfBinaryInputBasicClusterClientTickCallback(uint8_t endpoint); -/** @brief Binary Input (Basic) Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfBinaryInputBasicClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Binary Input (Basic) Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfBinaryInputBasicClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Binary Input (Basic) Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfBinaryInputBasicClusterServerInitCallback(uint8_t endpoint); -/** @brief Binary Input (Basic) Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfBinaryInputBasicClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Binary Input (Basic) Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfBinaryInputBasicClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Binary Input (Basic) Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfBinaryInputBasicClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Binary Input (Basic) Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfBinaryInputBasicClusterServerTickCallback(uint8_t endpoint); - -/** @} END Binary Input (Basic) Cluster Callbacks */ - -/** @name Commissioning Cluster Callbacks */ -// @{ - -/** @brief Commissioning Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfCommissioningClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Commissioning Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfCommissioningClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Commissioning Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfCommissioningClusterClientInitCallback(uint8_t endpoint); -/** @brief Commissioning Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfCommissioningClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Commissioning Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfCommissioningClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Commissioning Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfCommissioningClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Commissioning Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfCommissioningClusterClientTickCallback(uint8_t endpoint); -/** @brief Commissioning Cluster Reset Startup Parameters - * - * - * - * @param options Ver.: always - * @param index Ver.: always - */ -bool emberAfCommissioningClusterResetStartupParametersCallback(uint8_t options, uint8_t index); -/** @brief Commissioning Cluster Reset Startup Parameters Response - * - * - * - * @param status Ver.: always - */ -bool emberAfCommissioningClusterResetStartupParametersResponseCallback(uint8_t status); -/** @brief Commissioning Cluster Restart Device - * - * - * - * @param options Ver.: always - * @param delay Ver.: always - * @param jitter Ver.: always - */ -bool emberAfCommissioningClusterRestartDeviceCallback(uint8_t options, uint8_t delay, uint8_t jitter); -/** @brief Commissioning Cluster Restart Device Response - * - * - * - * @param status Ver.: always - */ -bool emberAfCommissioningClusterRestartDeviceResponseCallback(uint8_t status); -/** @brief Commissioning Cluster Restore Startup Parameters - * - * - * - * @param options Ver.: always - * @param index Ver.: always - */ -bool emberAfCommissioningClusterRestoreStartupParametersCallback(uint8_t options, uint8_t index); -/** @brief Commissioning Cluster Restore Startup Parameters Response - * - * - * - * @param status Ver.: always - */ -bool emberAfCommissioningClusterRestoreStartupParametersResponseCallback(uint8_t status); -/** @brief Commissioning Cluster Save Startup Parameters - * - * - * - * @param options Ver.: always - * @param index Ver.: always - */ -bool emberAfCommissioningClusterSaveStartupParametersCallback(uint8_t options, uint8_t index); -/** @brief Commissioning Cluster Save Startup Parameters Response - * - * - * - * @param status Ver.: always - */ -bool emberAfCommissioningClusterSaveStartupParametersResponseCallback(uint8_t status); -/** @brief Commissioning Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfCommissioningClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Commissioning Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfCommissioningClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Commissioning Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfCommissioningClusterServerInitCallback(uint8_t endpoint); -/** @brief Commissioning Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfCommissioningClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Commissioning Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfCommissioningClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Commissioning Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfCommissioningClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Commissioning Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfCommissioningClusterServerTickCallback(uint8_t endpoint); - -/** @} END Commissioning Cluster Callbacks */ - -/** @name Partition Cluster Callbacks */ -// @{ - -/** @brief Partition Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfPartitionClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Partition Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfPartitionClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Partition Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfPartitionClusterClientInitCallback(uint8_t endpoint); -/** @brief Partition Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfPartitionClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Partition Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfPartitionClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Partition Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfPartitionClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Partition Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfPartitionClusterClientTickCallback(uint8_t endpoint); -/** @brief Partition Cluster Multiple Ack - * - * - * - * @param ackOptions Ver.: always - * @param firstFrameIdAndNackList Ver.: always - */ -bool emberAfPartitionClusterMultipleAckCallback(uint8_t ackOptions, uint8_t * firstFrameIdAndNackList); -/** @brief Partition Cluster Read Handshake Param - * - * - * - * @param partitionedClusterId Ver.: always - * @param attributeList Ver.: always - */ -bool emberAfPartitionClusterReadHandshakeParamCallback(uint16_t partitionedClusterId, uint8_t * attributeList); -/** @brief Partition Cluster Read Handshake Param Response - * - * - * - * @param partitionedClusterId Ver.: always - * @param readAttributeStatusRecords Ver.: always - */ -bool emberAfPartitionClusterReadHandshakeParamResponseCallback(uint16_t partitionedClusterId, uint8_t * readAttributeStatusRecords); -/** @brief Partition Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfPartitionClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Partition Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfPartitionClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Partition Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfPartitionClusterServerInitCallback(uint8_t endpoint); -/** @brief Partition Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfPartitionClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Partition Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfPartitionClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Partition Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfPartitionClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Partition Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfPartitionClusterServerTickCallback(uint8_t endpoint); -/** @brief Partition Cluster Transfer Partitioned Frame - * - * - * - * @param fragmentationOptions Ver.: always - * @param partitionedIndicatorAndFrame Ver.: always - */ -bool emberAfPartitionClusterTransferPartitionedFrameCallback(uint8_t fragmentationOptions, uint8_t * partitionedIndicatorAndFrame); -/** @brief Partition Cluster Write Handshake Param - * - * - * - * @param partitionedClusterId Ver.: always - * @param writeAttributeRecords Ver.: always - */ -bool emberAfPartitionClusterWriteHandshakeParamCallback(uint16_t partitionedClusterId, uint8_t * writeAttributeRecords); - -/** @} END Partition Cluster Callbacks */ - -/** @name Over the Air Bootloading Cluster Callbacks */ -// @{ - -/** @brief Over the Air Bootloading Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfOtaBootloadClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Over the Air Bootloading Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfOtaBootloadClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Over the Air Bootloading Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfOtaBootloadClusterClientInitCallback(uint8_t endpoint); -/** @brief Over the Air Bootloading Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfOtaBootloadClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Over the Air Bootloading Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfOtaBootloadClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Over the Air Bootloading Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfOtaBootloadClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Over the Air Bootloading Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfOtaBootloadClusterClientTickCallback(uint8_t endpoint); -/** @brief Over the Air Bootloading Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfOtaBootloadClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Over the Air Bootloading Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfOtaBootloadClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Over the Air Bootloading Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfOtaBootloadClusterServerInitCallback(uint8_t endpoint); -/** @brief Over the Air Bootloading Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfOtaBootloadClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Over the Air Bootloading Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfOtaBootloadClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Over the Air Bootloading Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfOtaBootloadClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Over the Air Bootloading Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfOtaBootloadClusterServerTickCallback(uint8_t endpoint); - -/** @} END Over the Air Bootloading Cluster Callbacks */ - -/** @name Power Profile Cluster Callbacks */ -// @{ - -/** @brief Power Profile Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfPowerProfileClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Power Profile Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfPowerProfileClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Power Profile Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfPowerProfileClusterClientInitCallback(uint8_t endpoint); -/** @brief Power Profile Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfPowerProfileClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Power Profile Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfPowerProfileClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Power Profile Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfPowerProfileClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Power Profile Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfPowerProfileClusterClientTickCallback(uint8_t endpoint); -/** @brief Power Profile Cluster Energy Phases Schedule Notification - * - * - * - * @param powerProfileId Ver.: always - * @param numOfScheduledPhases Ver.: always - * @param scheduledPhases Ver.: always - */ -bool emberAfPowerProfileClusterEnergyPhasesScheduleNotificationCallback(uint8_t powerProfileId, uint8_t numOfScheduledPhases, - uint8_t * scheduledPhases); -/** @brief Power Profile Cluster Energy Phases Schedule Request - * - * - * - * @param powerProfileId Ver.: always - */ -bool emberAfPowerProfileClusterEnergyPhasesScheduleRequestCallback(uint8_t powerProfileId); -/** @brief Power Profile Cluster Energy Phases Schedule Response - * - * - * - * @param powerProfileId Ver.: always - * @param numOfScheduledPhases Ver.: always - * @param scheduledPhases Ver.: always - */ -bool emberAfPowerProfileClusterEnergyPhasesScheduleResponseCallback(uint8_t powerProfileId, uint8_t numOfScheduledPhases, - uint8_t * scheduledPhases); -/** @brief Power Profile Cluster Energy Phases Schedule State Notification - * - * - * - * @param powerProfileId Ver.: always - * @param numOfScheduledPhases Ver.: always - * @param scheduledPhases Ver.: always - */ -bool emberAfPowerProfileClusterEnergyPhasesScheduleStateNotificationCallback(uint8_t powerProfileId, uint8_t numOfScheduledPhases, - uint8_t * scheduledPhases); -/** @brief Power Profile Cluster Energy Phases Schedule State Request - * - * - * - * @param powerProfileId Ver.: always - */ -bool emberAfPowerProfileClusterEnergyPhasesScheduleStateRequestCallback(uint8_t powerProfileId); -/** @brief Power Profile Cluster Energy Phases Schedule State Response - * - * - * - * @param powerProfileId Ver.: always - * @param numOfScheduledPhases Ver.: always - * @param scheduledPhases Ver.: always - */ -bool emberAfPowerProfileClusterEnergyPhasesScheduleStateResponseCallback(uint8_t powerProfileId, uint8_t numOfScheduledPhases, - uint8_t * scheduledPhases); -/** @brief Power Profile Cluster Get Overall Schedule Price - * - * - * - */ -bool emberAfPowerProfileClusterGetOverallSchedulePriceCallback(void); -/** @brief Power Profile Cluster Get Overall Schedule Price Response - * - * - * - * @param currency Ver.: always - * @param price Ver.: always - * @param priceTrailingDigit Ver.: always - */ -bool emberAfPowerProfileClusterGetOverallSchedulePriceResponseCallback(uint16_t currency, uint32_t price, - uint8_t priceTrailingDigit); -/** @brief Power Profile Cluster Get Power Profile Price - * - * - * - * @param powerProfileId Ver.: always - */ -bool emberAfPowerProfileClusterGetPowerProfilePriceCallback(uint8_t powerProfileId); -/** @brief Power Profile Cluster Get Power Profile Price Extended - * - * - * - * @param options Ver.: always - * @param powerProfileId Ver.: always - * @param powerProfileStartTime Ver.: always - */ -bool emberAfPowerProfileClusterGetPowerProfilePriceExtendedCallback(uint8_t options, uint8_t powerProfileId, - uint16_t powerProfileStartTime); -/** @brief Power Profile Cluster Get Power Profile Price Extended Response - * - * - * - * @param powerProfileId Ver.: always - * @param currency Ver.: always - * @param price Ver.: always - * @param priceTrailingDigit Ver.: always - */ -bool emberAfPowerProfileClusterGetPowerProfilePriceExtendedResponseCallback(uint8_t powerProfileId, uint16_t currency, - uint32_t price, uint8_t priceTrailingDigit); -/** @brief Power Profile Cluster Get Power Profile Price Response - * - * - * - * @param powerProfileId Ver.: always - * @param currency Ver.: always - * @param price Ver.: always - * @param priceTrailingDigit Ver.: always - */ -bool emberAfPowerProfileClusterGetPowerProfilePriceResponseCallback(uint8_t powerProfileId, uint16_t currency, uint32_t price, - uint8_t priceTrailingDigit); -/** @brief Power Profile Cluster Power Profile Notification - * - * - * - * @param totalProfileNum Ver.: always - * @param powerProfileId Ver.: always - * @param numOfTransferredPhases Ver.: always - * @param transferredPhases Ver.: always - */ -bool emberAfPowerProfileClusterPowerProfileNotificationCallback(uint8_t totalProfileNum, uint8_t powerProfileId, - uint8_t numOfTransferredPhases, uint8_t * transferredPhases); -/** @brief Power Profile Cluster Power Profile Request - * - * - * - * @param powerProfileId Ver.: always - */ -bool emberAfPowerProfileClusterPowerProfileRequestCallback(uint8_t powerProfileId); -/** @brief Power Profile Cluster Power Profile Response - * - * - * - * @param totalProfileNum Ver.: always - * @param powerProfileId Ver.: always - * @param numOfTransferredPhases Ver.: always - * @param transferredPhases Ver.: always - */ -bool emberAfPowerProfileClusterPowerProfileResponseCallback(uint8_t totalProfileNum, uint8_t powerProfileId, - uint8_t numOfTransferredPhases, uint8_t * transferredPhases); -/** @brief Power Profile Cluster Power Profile Schedule Constraints Notification - * - * - * - * @param powerProfileId Ver.: always - * @param startAfter Ver.: always - * @param stopBefore Ver.: always - */ -bool emberAfPowerProfileClusterPowerProfileScheduleConstraintsNotificationCallback(uint8_t powerProfileId, uint16_t startAfter, - uint16_t stopBefore); -/** @brief Power Profile Cluster Power Profile Schedule Constraints Request - * - * - * - * @param powerProfileId Ver.: always - */ -bool emberAfPowerProfileClusterPowerProfileScheduleConstraintsRequestCallback(uint8_t powerProfileId); -/** @brief Power Profile Cluster Power Profile Schedule Constraints Response - * - * - * - * @param powerProfileId Ver.: always - * @param startAfter Ver.: always - * @param stopBefore Ver.: always - */ -bool emberAfPowerProfileClusterPowerProfileScheduleConstraintsResponseCallback(uint8_t powerProfileId, uint16_t startAfter, - uint16_t stopBefore); -/** @brief Power Profile Cluster Power Profile State Request - * - * - * - */ -bool emberAfPowerProfileClusterPowerProfileStateRequestCallback(void); -/** @brief Power Profile Cluster Power Profile State Response - * - * - * - * @param powerProfileCount Ver.: always - * @param powerProfileRecords Ver.: always - */ -bool emberAfPowerProfileClusterPowerProfileStateResponseCallback(uint8_t powerProfileCount, uint8_t * powerProfileRecords); -/** @brief Power Profile Cluster Power Profiles State Notification - * - * - * - * @param powerProfileCount Ver.: always - * @param powerProfileRecords Ver.: always - */ -bool emberAfPowerProfileClusterPowerProfilesStateNotificationCallback(uint8_t powerProfileCount, uint8_t * powerProfileRecords); -/** @brief Power Profile Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfPowerProfileClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Power Profile Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfPowerProfileClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Power Profile Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfPowerProfileClusterServerInitCallback(uint8_t endpoint); -/** @brief Power Profile Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfPowerProfileClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Power Profile Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfPowerProfileClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Power Profile Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfPowerProfileClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Power Profile Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfPowerProfileClusterServerTickCallback(uint8_t endpoint); - -/** @} END Power Profile Cluster Callbacks */ - -/** @name Appliance Control Cluster Callbacks */ -// @{ - -/** @brief Appliance Control Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfApplianceControlClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Appliance Control Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfApplianceControlClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Appliance Control Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfApplianceControlClusterClientInitCallback(uint8_t endpoint); -/** @brief Appliance Control Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfApplianceControlClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Appliance Control Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfApplianceControlClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Appliance Control Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfApplianceControlClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Appliance Control Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfApplianceControlClusterClientTickCallback(uint8_t endpoint); -/** @brief Appliance Control Cluster Execution Of A Command - * - * - * - * @param commandId Ver.: always - */ -bool emberAfApplianceControlClusterExecutionOfACommandCallback(uint8_t commandId); -/** @brief Appliance Control Cluster Overload Pause - * - * - * - */ -bool emberAfApplianceControlClusterOverloadPauseCallback(void); -/** @brief Appliance Control Cluster Overload Pause Resume - * - * - * - */ -bool emberAfApplianceControlClusterOverloadPauseResumeCallback(void); -/** @brief Appliance Control Cluster Overload Warning - * - * - * - * @param warningEvent Ver.: always - */ -bool emberAfApplianceControlClusterOverloadWarningCallback(uint8_t warningEvent); -/** @brief Appliance Control Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfApplianceControlClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Appliance Control Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfApplianceControlClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Appliance Control Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfApplianceControlClusterServerInitCallback(uint8_t endpoint); -/** @brief Appliance Control Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfApplianceControlClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Appliance Control Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfApplianceControlClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Appliance Control Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfApplianceControlClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Appliance Control Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfApplianceControlClusterServerTickCallback(uint8_t endpoint); -/** @brief Appliance Control Cluster Signal State - * - * - * - */ -bool emberAfApplianceControlClusterSignalStateCallback(void); -/** @brief Appliance Control Cluster Signal State Notification - * - * - * - * @param applianceStatus Ver.: always - * @param remoteEnableFlagsAndDeviceStatus2 Ver.: always - * @param applianceStatus2 Ver.: always - */ -bool emberAfApplianceControlClusterSignalStateNotificationCallback(uint8_t applianceStatus, - uint8_t remoteEnableFlagsAndDeviceStatus2, - uint32_t applianceStatus2); -/** @brief Appliance Control Cluster Signal State Response - * - * - * - * @param applianceStatus Ver.: always - * @param remoteEnableFlagsAndDeviceStatus2 Ver.: always - * @param applianceStatus2 Ver.: always - */ -bool emberAfApplianceControlClusterSignalStateResponseCallback(uint8_t applianceStatus, uint8_t remoteEnableFlagsAndDeviceStatus2, - uint32_t applianceStatus2); -/** @brief Appliance Control Cluster Write Functions - * - * - * - * @param functionId Ver.: always - * @param functionDataType Ver.: always - * @param functionData Ver.: always - */ -bool emberAfApplianceControlClusterWriteFunctionsCallback(uint16_t functionId, uint8_t functionDataType, uint8_t * functionData); - -/** @} END Appliance Control Cluster Callbacks */ - -/** @name Poll Control Cluster Callbacks */ -// @{ - -/** @brief Poll Control Cluster Check In - * - * - * - */ -bool emberAfPollControlClusterCheckInCallback(void); -/** @brief Poll Control Cluster Check In Response - * - * - * - * @param startFastPolling Ver.: always - * @param fastPollTimeout Ver.: always - */ -bool emberAfPollControlClusterCheckInResponseCallback(uint8_t startFastPolling, uint16_t fastPollTimeout); -/** @brief Poll Control Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfPollControlClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Poll Control Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfPollControlClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Poll Control Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfPollControlClusterClientInitCallback(uint8_t endpoint); -/** @brief Poll Control Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfPollControlClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Poll Control Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfPollControlClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Poll Control Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfPollControlClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Poll Control Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfPollControlClusterClientTickCallback(uint8_t endpoint); -/** @brief Poll Control Cluster Fast Poll Stop - * - * - * - */ -bool emberAfPollControlClusterFastPollStopCallback(void); -/** @brief Poll Control Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfPollControlClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Poll Control Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfPollControlClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Poll Control Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfPollControlClusterServerInitCallback(uint8_t endpoint); -/** @brief Poll Control Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfPollControlClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Poll Control Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfPollControlClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Poll Control Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfPollControlClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Poll Control Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfPollControlClusterServerTickCallback(uint8_t endpoint); -/** @brief Poll Control Cluster Set Long Poll Interval - * - * - * - * @param newLongPollInterval Ver.: always - */ -bool emberAfPollControlClusterSetLongPollIntervalCallback(uint32_t newLongPollInterval); -/** @brief Poll Control Cluster Set Short Poll Interval - * - * - * - * @param newShortPollInterval Ver.: always - */ -bool emberAfPollControlClusterSetShortPollIntervalCallback(uint16_t newShortPollInterval); - -/** @} END Poll Control Cluster Callbacks */ - -/** @name Green Power Cluster Callbacks */ -// @{ - -/** @brief Green Power Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfGreenPowerClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Green Power Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfGreenPowerClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Green Power Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfGreenPowerClusterClientInitCallback(uint8_t endpoint); -/** @brief Green Power Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfGreenPowerClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Green Power Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfGreenPowerClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Green Power Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfGreenPowerClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Green Power Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfGreenPowerClusterClientTickCallback(uint8_t endpoint); -/** @brief Green Power Cluster Gp Commissioning Notification - * - * - * - * @param options Ver.: since gp-1.0-09-5499-24 - * @param gpdSrcId Ver.: since gp-1.0-09-5499-24 - * @param gpdIeee Ver.: since gp-1.0-09-5499-24 - * @param endpoint Ver.: since gp-1.0-09-5499-24 - * @param gpdSecurityFrameCounter Ver.: since gp-1.0-09-5499-24 - * @param gpdCommandId Ver.: since gp-1.0-09-5499-24 - * @param gpdCommandPayload Ver.: since gp-1.0-09-5499-24 - * @param gppShortAddress Ver.: since gp-1.0-09-5499-24 - * @param gppLink Ver.: since gp-1.0-09-5499-24 - * @param mic Ver.: since gp-1.0-09-5499-24 - */ -bool emberAfGreenPowerClusterGpCommissioningNotificationCallback(uint16_t options, uint32_t gpdSrcId, uint8_t * gpdIeee, - uint8_t endpoint, uint32_t gpdSecurityFrameCounter, - uint8_t gpdCommandId, uint8_t * gpdCommandPayload, - uint16_t gppShortAddress, uint8_t gppLink, uint32_t mic); -/** @brief Green Power Cluster Gp Notification - * - * - * - * @param options Ver.: since gp-1.0-09-5499-24 - * @param gpdSrcId Ver.: since gp-1.0-09-5499-24 - * @param gpdIeee Ver.: since gp-1.0-09-5499-24 - * @param gpdEndpoint Ver.: since gp-1.0-09-5499-24 - * @param gpdSecurityFrameCounter Ver.: since gp-1.0-09-5499-24 - * @param gpdCommandId Ver.: since gp-1.0-09-5499-24 - * @param gpdCommandPayload Ver.: since gp-1.0-09-5499-24 - * @param gppShortAddress Ver.: since gp-1.0-09-5499-24 - * @param gppDistance Ver.: since gp-1.0-09-5499-24 - */ -bool emberAfGreenPowerClusterGpNotificationCallback(uint16_t options, uint32_t gpdSrcId, uint8_t * gpdIeee, uint8_t gpdEndpoint, - uint32_t gpdSecurityFrameCounter, uint8_t gpdCommandId, - uint8_t * gpdCommandPayload, uint16_t gppShortAddress, uint8_t gppDistance); -/** @brief Green Power Cluster Gp Notification Response - * - * - * - * @param options Ver.: since gp-1.0-09-5499-24 - * @param gpdSrcId Ver.: since gp-1.0-09-5499-24 - * @param gpdIeee Ver.: since gp-1.0-09-5499-24 - * @param endpoint Ver.: since gp-1.0-09-5499-24 - * @param gpdSecurityFrameCounter Ver.: since gp-1.0-09-5499-24 - */ -bool emberAfGreenPowerClusterGpNotificationResponseCallback(uint8_t options, uint32_t gpdSrcId, uint8_t * gpdIeee, uint8_t endpoint, - uint32_t gpdSecurityFrameCounter); -/** @brief Green Power Cluster Gp Pairing - * - * - * - * @param options Ver.: since gp-1.0-09-5499-24 - * @param gpdSrcId Ver.: since gp-1.0-09-5499-24 - * @param gpdIeee Ver.: since gp-1.0-09-5499-24 - * @param endpoint Ver.: since gp-1.0-09-5499-24 - * @param sinkIeeeAddress Ver.: since gp-1.0-09-5499-24 - * @param sinkNwkAddress Ver.: since gp-1.0-09-5499-24 - * @param sinkGroupId Ver.: since gp-1.0-09-5499-24 - * @param deviceId Ver.: since gp-1.0-09-5499-24 - * @param gpdSecurityFrameCounter Ver.: since gp-1.0-09-5499-24 - * @param gpdKey Ver.: since gp-1.0-09-5499-24 - * @param assignedAlias Ver.: since gp-1.0-09-5499-24 - * @param groupcastRadius Ver.: since gp-1.0-09-5499-24 - */ -bool emberAfGreenPowerClusterGpPairingCallback(uint32_t options, uint32_t gpdSrcId, uint8_t * gpdIeee, uint8_t endpoint, - uint8_t * sinkIeeeAddress, uint16_t sinkNwkAddress, uint16_t sinkGroupId, - uint8_t deviceId, uint32_t gpdSecurityFrameCounter, uint8_t * gpdKey, - uint16_t assignedAlias, uint8_t groupcastRadius); -/** @brief Green Power Cluster Gp Pairing Configuration - * - * - * - * @param actions Ver.: since gp-1.0-09-5499-24 - * @param options Ver.: since gp-1.0-09-5499-24 - * @param gpdSrcId Ver.: since gp-1.0-09-5499-24 - * @param gpdIeee Ver.: since gp-1.0-09-5499-24 - * @param endpoint Ver.: since gp-1.0-09-5499-24 - * @param deviceId Ver.: since gp-1.0-09-5499-24 - * @param groupListCount Ver.: since gp-1.0-09-5499-24 - * @param groupList Ver.: since gp-1.0-09-5499-24 - * @param gpdAssignedAlias Ver.: since gp-1.0-09-5499-24 - * @param groupcastRadius Ver.: since gp-1.0-15-2014-05-CCB2180 - * @param securityOptions Ver.: since gp-1.0-09-5499-24 - * @param gpdSecurityFrameCounter Ver.: since gp-1.0-09-5499-24 - * @param gpdSecurityKey Ver.: since gp-1.0-09-5499-24 - * @param numberOfPairedEndpoints Ver.: since gp-1.0-09-5499-24 - * @param pairedEndpoints Ver.: since gp-1.0-09-5499-24 - * @param applicationInformation Ver.: always - * @param manufacturerId Ver.: always - * @param modeId Ver.: always - * @param numberOfGpdCommands Ver.: always - * @param gpdCommandIdList Ver.: always - * @param clusterIdListCount Ver.: always - * @param clusterListServer Ver.: always - * @param clusterListClient Ver.: always - * @param switchInformationLength Ver.: always - * @param switchConfiguration Ver.: always - * @param currentContactStatus Ver.: always - * @param totalNumberOfReports Ver.: always - * @param numberOfReports Ver.: always - * @param reportDescriptor Ver.: always - */ -bool emberAfGreenPowerClusterGpPairingConfigurationCallback( - uint8_t actions, uint16_t options, uint32_t gpdSrcId, uint8_t * gpdIeee, uint8_t endpoint, uint8_t deviceId, - uint8_t groupListCount, uint8_t * groupList, uint16_t gpdAssignedAlias, uint8_t groupcastRadius, uint8_t securityOptions, - uint32_t gpdSecurityFrameCounter, uint8_t * gpdSecurityKey, uint8_t numberOfPairedEndpoints, uint8_t * pairedEndpoints, - uint8_t applicationInformation, uint16_t manufacturerId, uint16_t modeId, uint8_t numberOfGpdCommands, - uint8_t * gpdCommandIdList, uint8_t clusterIdListCount, uint8_t * clusterListServer, uint8_t * clusterListClient, - uint8_t switchInformationLength, uint8_t switchConfiguration, uint8_t currentContactStatus, uint8_t totalNumberOfReports, - uint8_t numberOfReports, uint8_t * reportDescriptor); -/** @brief Green Power Cluster Gp Pairing Search - * - * - * - * @param options Ver.: since gp-1.0-09-5499-24 - * @param gpdSrcId Ver.: since gp-1.0-09-5499-24 - * @param gpdIeee Ver.: since gp-1.0-09-5499-24 - * @param endpoint Ver.: always - */ -bool emberAfGreenPowerClusterGpPairingSearchCallback(uint16_t options, uint32_t gpdSrcId, uint8_t * gpdIeee, uint8_t endpoint); -/** @brief Green Power Cluster Gp Proxy Commissioning Mode - * - * - * - * @param options Ver.: since gp-1.0-09-5499-24 - * @param commissioningWindow Ver.: since gp-1.0-15-02014-011 - * @param channel Ver.: since gp-1.0-09-5499-24 - */ -bool emberAfGreenPowerClusterGpProxyCommissioningModeCallback(uint8_t options, uint16_t commissioningWindow, uint8_t channel); -/** @brief Green Power Cluster Gp Proxy Table Request - * - * - * - * @param options Ver.: always - * @param gpdSrcId Ver.: always - * @param gpdIeee Ver.: always - * @param endpoint Ver.: always - * @param index Ver.: always - */ -bool emberAfGreenPowerClusterGpProxyTableRequestCallback(uint8_t options, uint32_t gpdSrcId, uint8_t * gpdIeee, uint8_t endpoint, - uint8_t index); -/** @brief Green Power Cluster Gp Proxy Table Response - * - * - * - * @param status Ver.: always - * @param totalNumberOfNonEmptyProxyTableEntries Ver.: always - * @param startIndex Ver.: always - * @param entriesCount Ver.: always - * @param proxyTableEntries Ver.: always - */ -bool emberAfGreenPowerClusterGpProxyTableResponseCallback(uint8_t status, uint8_t totalNumberOfNonEmptyProxyTableEntries, - uint8_t startIndex, uint8_t entriesCount, uint8_t * proxyTableEntries); -/** @brief Green Power Cluster Gp Response - * - * - * - * @param options Ver.: since gp-1.0-09-5499-24 - * @param tempMasterShortAddress Ver.: since gp-1.0-09-5499-24 - * @param tempMasterTxChannel Ver.: since gp-1.0-09-5499-24 - * @param gpdSrcId Ver.: since gp-1.0-09-5499-24 - * @param gpdIeee Ver.: since gp-1.0-09-5499-24 - * @param endpoint Ver.: always - * @param gpdCommandId Ver.: since gp-1.0-09-5499-24 - * @param gpdCommandPayload Ver.: always - */ -bool emberAfGreenPowerClusterGpResponseCallback(uint8_t options, uint16_t tempMasterShortAddress, uint8_t tempMasterTxChannel, - uint32_t gpdSrcId, uint8_t * gpdIeee, uint8_t endpoint, uint8_t gpdCommandId, - uint8_t * gpdCommandPayload); -/** @brief Green Power Cluster Gp Sink Commissioning Mode - * - * - * - * @param options Ver.: always - * @param gpmAddrForSecurity Ver.: always - * @param gpmAddrForPairing Ver.: always - * @param sinkEndpoint Ver.: always - */ -bool emberAfGreenPowerClusterGpSinkCommissioningModeCallback(uint8_t options, uint16_t gpmAddrForSecurity, - uint16_t gpmAddrForPairing, uint8_t sinkEndpoint); -/** @brief Green Power Cluster Gp Sink Table Request - * - * - * - * @param options Ver.: always - * @param gpdSrcId Ver.: always - * @param gpdIeee Ver.: always - * @param endpoint Ver.: always - * @param index Ver.: always - */ -bool emberAfGreenPowerClusterGpSinkTableRequestCallback(uint8_t options, uint32_t gpdSrcId, uint8_t * gpdIeee, uint8_t endpoint, - uint8_t index); -/** @brief Green Power Cluster Gp Sink Table Response - * - * - * - * @param status Ver.: always - * @param totalNumberofNonEmptySinkTableEntries Ver.: always - * @param startIndex Ver.: always - * @param sinkTableEntriesCount Ver.: always - * @param sinkTableEntries Ver.: always - */ -bool emberAfGreenPowerClusterGpSinkTableResponseCallback(uint8_t status, uint8_t totalNumberofNonEmptySinkTableEntries, - uint8_t startIndex, uint8_t sinkTableEntriesCount, - uint8_t * sinkTableEntries); -/** @brief Green Power Cluster Gp Translation Table Request - * - * - * - * @param startIndex Ver.: since gp-1.0-09-5499-24 - */ -bool emberAfGreenPowerClusterGpTranslationTableRequestCallback(uint8_t startIndex); -/** @brief Green Power Cluster Gp Translation Table Response - * - * - * - * @param status Ver.: since gp-1.0-09-5499-24 - * @param options Ver.: since gp-1.0-09-5499-24 - * @param totalNumberOfEntries Ver.: since gp-1.0-09-5499-24 - * @param startIndex Ver.: since gp-1.0-09-5499-24 - * @param entriesCount Ver.: since gp-1.0-09-5499-24 - * @param translationTableList Ver.: since gp-1.0-09-5499-24 - */ -bool emberAfGreenPowerClusterGpTranslationTableResponseCallback(uint8_t status, uint8_t options, uint8_t totalNumberOfEntries, - uint8_t startIndex, uint8_t entriesCount, - uint8_t * translationTableList); -/** @brief Green Power Cluster Gp Translation Table Update - * - * - * - * @param options Ver.: since gp-1.0-09-5499-24 - * @param gpdSrcId Ver.: since gp-1.0-09-5499-24 - * @param gpdIeee Ver.: since gp-1.0-09-5499-24 - * @param endpoint Ver.: since gp-1.0-09-5499-24 - * @param translations Ver.: since gp-1.0-09-5499-24 - */ -bool emberAfGreenPowerClusterGpTranslationTableUpdateCallback(uint16_t options, uint32_t gpdSrcId, uint8_t * gpdIeee, - uint8_t endpoint, uint8_t * translations); -/** @brief Green Power Cluster Gp Tunneling Stop - * - * - * - * @param options Ver.: since gp-1.0-09-5499-24 - * @param gpdSrcId Ver.: since gp-1.0-09-5499-24 - * @param gpdIeee Ver.: since gp-1.0-09-5499-24 - * @param endpoint Ver.: since gp-1.0-09-5499-24 - * @param gpdSecurityFrameCounter Ver.: since gp-1.0-09-5499-24 - * @param gppShortAddress Ver.: since gp-1.0-09-5499-24 - * @param gppDistance Ver.: since gp-1.0-09-5499-24 - */ -bool emberAfGreenPowerClusterGpTunnelingStopCallback(uint8_t options, uint32_t gpdSrcId, uint8_t * gpdIeee, uint8_t endpoint, - uint32_t gpdSecurityFrameCounter, uint16_t gppShortAddress, - int8_t gppDistance); -/** @brief Green Power Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfGreenPowerClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Green Power Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfGreenPowerClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Green Power Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfGreenPowerClusterServerInitCallback(uint8_t endpoint); -/** @brief Green Power Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfGreenPowerClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Green Power Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfGreenPowerClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Green Power Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfGreenPowerClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Green Power Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfGreenPowerClusterServerTickCallback(uint8_t endpoint); - -/** @} END Green Power Cluster Callbacks */ - -/** @name Keep-Alive Cluster Callbacks */ -// @{ - -/** @brief Keep-Alive Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfKeepaliveClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Keep-Alive Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfKeepaliveClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Keep-Alive Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfKeepaliveClusterClientInitCallback(uint8_t endpoint); -/** @brief Keep-Alive Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfKeepaliveClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Keep-Alive Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfKeepaliveClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Keep-Alive Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfKeepaliveClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Keep-Alive Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfKeepaliveClusterClientTickCallback(uint8_t endpoint); -/** @brief Keep-Alive Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfKeepaliveClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Keep-Alive Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfKeepaliveClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Keep-Alive Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfKeepaliveClusterServerInitCallback(uint8_t endpoint); -/** @brief Keep-Alive Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfKeepaliveClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Keep-Alive Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfKeepaliveClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Keep-Alive Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfKeepaliveClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Keep-Alive Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfKeepaliveClusterServerTickCallback(uint8_t endpoint); - -/** @} END Keep-Alive Cluster Callbacks */ - -/** @name Shade Configuration Cluster Callbacks */ -// @{ - -/** @brief Shade Configuration Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfShadeConfigClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Shade Configuration Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfShadeConfigClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Shade Configuration Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfShadeConfigClusterClientInitCallback(uint8_t endpoint); -/** @brief Shade Configuration Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfShadeConfigClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Shade Configuration Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfShadeConfigClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Shade Configuration Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfShadeConfigClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Shade Configuration Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfShadeConfigClusterClientTickCallback(uint8_t endpoint); -/** @brief Shade Configuration Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfShadeConfigClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Shade Configuration Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfShadeConfigClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Shade Configuration Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfShadeConfigClusterServerInitCallback(uint8_t endpoint); -/** @brief Shade Configuration Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfShadeConfigClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Shade Configuration Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfShadeConfigClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Shade Configuration Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfShadeConfigClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Shade Configuration Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfShadeConfigClusterServerTickCallback(uint8_t endpoint); - -/** @} END Shade Configuration Cluster Callbacks */ - -/** @name Door Lock Cluster Callbacks */ -// @{ - -/** @brief Door Lock Cluster Clear All Pins - * - * - * - */ -bool emberAfDoorLockClusterClearAllPinsCallback(void); -/** @brief Door Lock Cluster Clear All Pins Response - * - * - * - * @param status Ver.: always - */ -bool emberAfDoorLockClusterClearAllPinsResponseCallback(uint8_t status); -/** @brief Door Lock Cluster Clear All Rfids - * - * - * - */ -bool emberAfDoorLockClusterClearAllRfidsCallback(void); -/** @brief Door Lock Cluster Clear All Rfids Response - * - * - * - * @param status Ver.: always - */ -bool emberAfDoorLockClusterClearAllRfidsResponseCallback(uint8_t status); -/** @brief Door Lock Cluster Clear Holiday Schedule - * - * - * - * @param scheduleId Ver.: always - */ -bool emberAfDoorLockClusterClearHolidayScheduleCallback(uint8_t scheduleId); -/** @brief Door Lock Cluster Clear Holiday Schedule Response - * - * - * - * @param status Ver.: always - */ -bool emberAfDoorLockClusterClearHolidayScheduleResponseCallback(uint8_t status); -/** @brief Door Lock Cluster Clear Pin - * - * - * - * @param userId Ver.: always - */ -bool emberAfDoorLockClusterClearPinCallback(uint16_t userId); -/** @brief Door Lock Cluster Clear Pin Response - * - * - * - * @param status Ver.: always - */ -bool emberAfDoorLockClusterClearPinResponseCallback(uint8_t status); -/** @brief Door Lock Cluster Clear Rfid - * - * - * - * @param userId Ver.: always - */ -bool emberAfDoorLockClusterClearRfidCallback(uint16_t userId); -/** @brief Door Lock Cluster Clear Rfid Response - * - * - * - * @param status Ver.: always - */ -bool emberAfDoorLockClusterClearRfidResponseCallback(uint8_t status); -/** @brief Door Lock Cluster Clear Weekday Schedule - * - * - * - * @param scheduleId Ver.: always - * @param userId Ver.: always - */ -bool emberAfDoorLockClusterClearWeekdayScheduleCallback(uint8_t scheduleId, uint16_t userId); -/** @brief Door Lock Cluster Clear Weekday Schedule Response - * - * - * - * @param status Ver.: always - */ -bool emberAfDoorLockClusterClearWeekdayScheduleResponseCallback(uint8_t status); -/** @brief Door Lock Cluster Clear Yearday Schedule - * - * - * - * @param scheduleId Ver.: always - * @param userId Ver.: always - */ -bool emberAfDoorLockClusterClearYeardayScheduleCallback(uint8_t scheduleId, uint16_t userId); -/** @brief Door Lock Cluster Clear Yearday Schedule Response - * - * - * - * @param status Ver.: always - */ -bool emberAfDoorLockClusterClearYeardayScheduleResponseCallback(uint8_t status); -/** @brief Door Lock Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfDoorLockClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Door Lock Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfDoorLockClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Door Lock Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfDoorLockClusterClientInitCallback(uint8_t endpoint); -/** @brief Door Lock Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfDoorLockClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Door Lock Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfDoorLockClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Door Lock Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfDoorLockClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Door Lock Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfDoorLockClusterClientTickCallback(uint8_t endpoint); -/** @brief Door Lock Cluster Get Holiday Schedule - * - * - * - * @param scheduleId Ver.: always - */ -bool emberAfDoorLockClusterGetHolidayScheduleCallback(uint8_t scheduleId); -/** @brief Door Lock Cluster Get Holiday Schedule Response - * - * - * - * @param scheduleId Ver.: always - * @param status Ver.: always - * @param localStartTime Ver.: since ha-1.2-05-3520-29 - * @param localEndTime Ver.: since ha-1.2-05-3520-29 - * @param operatingModeDuringHoliday Ver.: since ha-1.2-05-3520-29 - */ -bool emberAfDoorLockClusterGetHolidayScheduleResponseCallback(uint8_t scheduleId, uint8_t status, uint32_t localStartTime, - uint32_t localEndTime, uint8_t operatingModeDuringHoliday); -/** @brief Door Lock Cluster Get Log Record - * - * - * - * @param logIndex Ver.: always - */ -bool emberAfDoorLockClusterGetLogRecordCallback(uint16_t logIndex); -/** @brief Door Lock Cluster Get Log Record Response - * - * - * - * @param logEntryId Ver.: always - * @param timestamp Ver.: always - * @param eventType Ver.: always - * @param source Ver.: always - * @param eventIdOrAlarmCode Ver.: always - * @param userId Ver.: always - * @param pin Ver.: always - */ -bool emberAfDoorLockClusterGetLogRecordResponseCallback(uint16_t logEntryId, uint32_t timestamp, uint8_t eventType, uint8_t source, - uint8_t eventIdOrAlarmCode, uint16_t userId, uint8_t * pin); -/** @brief Door Lock Cluster Get Pin - * - * - * - * @param userId Ver.: always - */ -bool emberAfDoorLockClusterGetPinCallback(uint16_t userId); -/** @brief Door Lock Cluster Get Pin Response - * - * - * - * @param userId Ver.: always - * @param userStatus Ver.: always - * @param userType Ver.: always - * @param pin Ver.: always - */ -bool emberAfDoorLockClusterGetPinResponseCallback(uint16_t userId, uint8_t userStatus, uint8_t userType, uint8_t * pin); -/** @brief Door Lock Cluster Get Rfid - * - * - * - * @param userId Ver.: always - */ -bool emberAfDoorLockClusterGetRfidCallback(uint16_t userId); -/** @brief Door Lock Cluster Get Rfid Response - * - * - * - * @param userId Ver.: always - * @param userStatus Ver.: always - * @param userType Ver.: always - * @param rfid Ver.: always - */ -bool emberAfDoorLockClusterGetRfidResponseCallback(uint16_t userId, uint8_t userStatus, uint8_t userType, uint8_t * rfid); -/** @brief Door Lock Cluster Get User Status - * - * - * - * @param userId Ver.: always - */ -bool emberAfDoorLockClusterGetUserStatusCallback(uint16_t userId); -/** @brief Door Lock Cluster Get User Status Response - * - * - * - * @param userId Ver.: always - * @param status Ver.: always - */ -bool emberAfDoorLockClusterGetUserStatusResponseCallback(uint16_t userId, uint8_t status); -/** @brief Door Lock Cluster Get User Type - * - * - * - * @param userId Ver.: always - */ -bool emberAfDoorLockClusterGetUserTypeCallback(uint16_t userId); -/** @brief Door Lock Cluster Get User Type Response - * - * - * - * @param userId Ver.: always - * @param userType Ver.: always - */ -bool emberAfDoorLockClusterGetUserTypeResponseCallback(uint16_t userId, uint8_t userType); -/** @brief Door Lock Cluster Get Weekday Schedule - * - * - * - * @param scheduleId Ver.: always - * @param userId Ver.: always - */ -bool emberAfDoorLockClusterGetWeekdayScheduleCallback(uint8_t scheduleId, uint16_t userId); -/** @brief Door Lock Cluster Get Weekday Schedule Response - * - * - * - * @param scheduleId Ver.: always - * @param userId Ver.: always - * @param status Ver.: always - * @param daysMask Ver.: since ha-1.2-05-3520-29 - * @param startHour Ver.: since ha-1.2-05-3520-29 - * @param startMinute Ver.: since ha-1.2-05-3520-29 - * @param endHour Ver.: since ha-1.2-05-3520-29 - * @param endMinute Ver.: since ha-1.2-05-3520-29 - */ -bool emberAfDoorLockClusterGetWeekdayScheduleResponseCallback(uint8_t scheduleId, uint16_t userId, uint8_t status, uint8_t daysMask, - uint8_t startHour, uint8_t startMinute, uint8_t endHour, - uint8_t endMinute); -/** @brief Door Lock Cluster Get Yearday Schedule - * - * - * - * @param scheduleId Ver.: always - * @param userId Ver.: always - */ -bool emberAfDoorLockClusterGetYeardayScheduleCallback(uint8_t scheduleId, uint16_t userId); -/** @brief Door Lock Cluster Get Yearday Schedule Response - * - * - * - * @param scheduleId Ver.: always - * @param userId Ver.: always - * @param status Ver.: always - * @param localStartTime Ver.: since ha-1.2-05-3520-29 - * @param localEndTime Ver.: since ha-1.2-05-3520-29 - */ -bool emberAfDoorLockClusterGetYeardayScheduleResponseCallback(uint8_t scheduleId, uint16_t userId, uint8_t status, - uint32_t localStartTime, uint32_t localEndTime); -/** @brief Door Lock Cluster Lock Door - * - * - * - * @param PIN Ver.: since ha-1.2-05-3520-29 - */ -bool emberAfDoorLockClusterLockDoorCallback(uint8_t * PIN); -/** @brief Door Lock Cluster Lock Door Response - * - * - * - * @param status Ver.: always - */ -bool emberAfDoorLockClusterLockDoorResponseCallback(uint8_t status); -/** @brief Door Lock Cluster Operation Event Notification - * - * - * - * @param source Ver.: always - * @param eventCode Ver.: always - * @param userId Ver.: always - * @param pin Ver.: always - * @param timeStamp Ver.: always - * @param data Ver.: since ha-1.2-05-3520-29 - */ -bool emberAfDoorLockClusterOperationEventNotificationCallback(uint8_t source, uint8_t eventCode, uint16_t userId, uint8_t * pin, - uint32_t timeStamp, uint8_t * data); -/** @brief Door Lock Cluster Programming Event Notification - * - * - * - * @param source Ver.: always - * @param eventCode Ver.: always - * @param userId Ver.: always - * @param pin Ver.: always - * @param userType Ver.: always - * @param userStatus Ver.: always - * @param timeStamp Ver.: always - * @param data Ver.: since ha-1.2-05-3520-29 - */ -bool emberAfDoorLockClusterProgrammingEventNotificationCallback(uint8_t source, uint8_t eventCode, uint16_t userId, uint8_t * pin, - uint8_t userType, uint8_t userStatus, uint32_t timeStamp, - uint8_t * data); -/** @brief Door Lock Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfDoorLockClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Door Lock Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfDoorLockClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Door Lock Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfDoorLockClusterServerInitCallback(uint8_t endpoint); -/** @brief Door Lock Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfDoorLockClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Door Lock Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfDoorLockClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Door Lock Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfDoorLockClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Door Lock Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfDoorLockClusterServerTickCallback(uint8_t endpoint); -/** @brief Door Lock Cluster Set Holiday Schedule - * - * - * - * @param scheduleId Ver.: always - * @param localStartTime Ver.: always - * @param localEndTime Ver.: always - * @param operatingModeDuringHoliday Ver.: always - */ -bool emberAfDoorLockClusterSetHolidayScheduleCallback(uint8_t scheduleId, uint32_t localStartTime, uint32_t localEndTime, - uint8_t operatingModeDuringHoliday); -/** @brief Door Lock Cluster Set Holiday Schedule Response - * - * - * - * @param status Ver.: always - */ -bool emberAfDoorLockClusterSetHolidayScheduleResponseCallback(uint8_t status); -/** @brief Door Lock Cluster Set Pin - * - * - * - * @param userId Ver.: always - * @param userStatus Ver.: always - * @param userType Ver.: always - * @param pin Ver.: always - */ -bool emberAfDoorLockClusterSetPinCallback(uint16_t userId, uint8_t userStatus, uint8_t userType, uint8_t * pin); -/** @brief Door Lock Cluster Set Pin Response - * - * - * - * @param status Ver.: always - */ -bool emberAfDoorLockClusterSetPinResponseCallback(uint8_t status); -/** @brief Door Lock Cluster Set Rfid - * - * - * - * @param userId Ver.: always - * @param userStatus Ver.: always - * @param userType Ver.: always - * @param id Ver.: always - */ -bool emberAfDoorLockClusterSetRfidCallback(uint16_t userId, uint8_t userStatus, uint8_t userType, uint8_t * id); -/** @brief Door Lock Cluster Set Rfid Response - * - * - * - * @param status Ver.: always - */ -bool emberAfDoorLockClusterSetRfidResponseCallback(uint8_t status); -/** @brief Door Lock Cluster Set User Status - * - * - * - * @param userId Ver.: always - * @param userStatus Ver.: always - */ -bool emberAfDoorLockClusterSetUserStatusCallback(uint16_t userId, uint8_t userStatus); -/** @brief Door Lock Cluster Set User Status Response - * - * - * - * @param status Ver.: always - */ -bool emberAfDoorLockClusterSetUserStatusResponseCallback(uint8_t status); -/** @brief Door Lock Cluster Set User Type - * - * - * - * @param userId Ver.: always - * @param userType Ver.: always - */ -bool emberAfDoorLockClusterSetUserTypeCallback(uint16_t userId, uint8_t userType); -/** @brief Door Lock Cluster Set User Type Response - * - * - * - * @param status Ver.: always - */ -bool emberAfDoorLockClusterSetUserTypeResponseCallback(uint8_t status); -/** @brief Door Lock Cluster Set Weekday Schedule - * - * - * - * @param scheduleId Ver.: always - * @param userId Ver.: always - * @param daysMask Ver.: always - * @param startHour Ver.: always - * @param startMinute Ver.: always - * @param endHour Ver.: always - * @param endMinute Ver.: always - */ -bool emberAfDoorLockClusterSetWeekdayScheduleCallback(uint8_t scheduleId, uint16_t userId, uint8_t daysMask, uint8_t startHour, - uint8_t startMinute, uint8_t endHour, uint8_t endMinute); -/** @brief Door Lock Cluster Set Weekday Schedule Response - * - * - * - * @param status Ver.: always - */ -bool emberAfDoorLockClusterSetWeekdayScheduleResponseCallback(uint8_t status); -/** @brief Door Lock Cluster Set Yearday Schedule - * - * - * - * @param scheduleId Ver.: always - * @param userId Ver.: always - * @param localStartTime Ver.: always - * @param localEndTime Ver.: always - */ -bool emberAfDoorLockClusterSetYeardayScheduleCallback(uint8_t scheduleId, uint16_t userId, uint32_t localStartTime, - uint32_t localEndTime); -/** @brief Door Lock Cluster Set Yearday Schedule Response - * - * - * - * @param status Ver.: always - */ -bool emberAfDoorLockClusterSetYeardayScheduleResponseCallback(uint8_t status); -/** @brief Door Lock Cluster Toggle - * - * - * - * @param pin Ver.: since ha-1.2-05-3520-29 - */ -bool emberAfDoorLockClusterToggleCallback(uint8_t * pin); -/** @brief Door Lock Cluster Toggle Response - * - * - * - * @param status Ver.: always - */ -bool emberAfDoorLockClusterToggleResponseCallback(uint8_t status); -/** @brief Door Lock Cluster Unlock Door - * - * - * - * @param PIN Ver.: since ha-1.2-05-3520-29 - */ -bool emberAfDoorLockClusterUnlockDoorCallback(uint8_t * PIN); -/** @brief Door Lock Cluster Unlock Door Response - * - * - * - * @param status Ver.: always - */ -bool emberAfDoorLockClusterUnlockDoorResponseCallback(uint8_t status); -/** @brief Door Lock Cluster Unlock With Timeout - * - * - * - * @param timeoutInSeconds Ver.: always - * @param pin Ver.: since ha-1.2-05-3520-29 - */ -bool emberAfDoorLockClusterUnlockWithTimeoutCallback(uint16_t timeoutInSeconds, uint8_t * pin); -/** @brief Door Lock Cluster Unlock With Timeout Response - * - * - * - * @param status Ver.: always - */ -bool emberAfDoorLockClusterUnlockWithTimeoutResponseCallback(uint8_t status); - -/** @} END Door Lock Cluster Callbacks */ - -/** @name Window Covering Cluster Callbacks */ -// @{ - -/** @brief Window Covering Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfWindowCoveringClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Window Covering Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfWindowCoveringClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Window Covering Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfWindowCoveringClusterClientInitCallback(uint8_t endpoint); -/** @brief Window Covering Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfWindowCoveringClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Window Covering Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfWindowCoveringClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Window Covering Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfWindowCoveringClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Window Covering Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfWindowCoveringClusterClientTickCallback(uint8_t endpoint); -/** @brief Window Covering Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfWindowCoveringClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Window Covering Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfWindowCoveringClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Window Covering Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfWindowCoveringClusterServerInitCallback(uint8_t endpoint); -/** @brief Window Covering Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfWindowCoveringClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Window Covering Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfWindowCoveringClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Window Covering Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfWindowCoveringClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Window Covering Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfWindowCoveringClusterServerTickCallback(uint8_t endpoint); -/** @brief Window Covering Cluster Window Covering Down Close - * - * - * - */ -bool emberAfWindowCoveringClusterWindowCoveringDownCloseCallback(void); -/** @brief Window Covering Cluster Window Covering Go To Lift Percentage - * - * - * - * @param percentageLiftValue Ver.: always - */ -bool emberAfWindowCoveringClusterWindowCoveringGoToLiftPercentageCallback(uint8_t percentageLiftValue); -/** @brief Window Covering Cluster Window Covering Go To Lift Value - * - * - * - * @param liftValue Ver.: always - */ -bool emberAfWindowCoveringClusterWindowCoveringGoToLiftValueCallback(uint16_t liftValue); -/** @brief Window Covering Cluster Window Covering Go To Tilt Percentage - * - * - * - * @param percentageTiltValue Ver.: always - */ -bool emberAfWindowCoveringClusterWindowCoveringGoToTiltPercentageCallback(uint8_t percentageTiltValue); -/** @brief Window Covering Cluster Window Covering Go To Tilt Value - * - * - * - * @param tiltValue Ver.: always - */ -bool emberAfWindowCoveringClusterWindowCoveringGoToTiltValueCallback(uint16_t tiltValue); -/** @brief Window Covering Cluster Window Covering Stop - * - * - * - */ -bool emberAfWindowCoveringClusterWindowCoveringStopCallback(void); -/** @brief Window Covering Cluster Window Covering Up Open - * - * - * - */ -bool emberAfWindowCoveringClusterWindowCoveringUpOpenCallback(void); - -/** @} END Window Covering Cluster Callbacks */ - -/** @name Barrier Control Cluster Callbacks */ -// @{ - -/** @brief Barrier Control Cluster Barrier Control Go To Percent - * - * - * - * @param percentOpen Ver.: always - */ -bool emberAfBarrierControlClusterBarrierControlGoToPercentCallback(uint8_t percentOpen); -/** @brief Barrier Control Cluster Barrier Control Stop - * - * - * - */ -bool emberAfBarrierControlClusterBarrierControlStopCallback(void); -/** @brief Barrier Control Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfBarrierControlClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Barrier Control Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfBarrierControlClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Barrier Control Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfBarrierControlClusterClientInitCallback(uint8_t endpoint); -/** @brief Barrier Control Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfBarrierControlClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Barrier Control Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfBarrierControlClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Barrier Control Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfBarrierControlClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Barrier Control Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfBarrierControlClusterClientTickCallback(uint8_t endpoint); -/** @brief Barrier Control Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfBarrierControlClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Barrier Control Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfBarrierControlClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Barrier Control Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfBarrierControlClusterServerInitCallback(uint8_t endpoint); -/** @brief Barrier Control Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfBarrierControlClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Barrier Control Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfBarrierControlClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Barrier Control Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfBarrierControlClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Barrier Control Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfBarrierControlClusterServerTickCallback(uint8_t endpoint); - -/** @} END Barrier Control Cluster Callbacks */ - -/** @name Pump Configuration and Control Cluster Callbacks */ -// @{ - -/** @brief Pump Configuration and Control Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfPumpConfigControlClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Pump Configuration and Control Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfPumpConfigControlClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Pump Configuration and Control Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfPumpConfigControlClusterClientInitCallback(uint8_t endpoint); -/** @brief Pump Configuration and Control Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfPumpConfigControlClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Pump Configuration and Control Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfPumpConfigControlClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Pump Configuration and Control Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfPumpConfigControlClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Pump Configuration and Control Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfPumpConfigControlClusterClientTickCallback(uint8_t endpoint); -/** @brief Pump Configuration and Control Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfPumpConfigControlClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Pump Configuration and Control Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfPumpConfigControlClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Pump Configuration and Control Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfPumpConfigControlClusterServerInitCallback(uint8_t endpoint); -/** @brief Pump Configuration and Control Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfPumpConfigControlClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Pump Configuration and Control Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfPumpConfigControlClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Pump Configuration and Control Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfPumpConfigControlClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Pump Configuration and Control Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfPumpConfigControlClusterServerTickCallback(uint8_t endpoint); - -/** @} END Pump Configuration and Control Cluster Callbacks */ - -/** @name Thermostat Cluster Callbacks */ -// @{ - -/** @brief Thermostat Cluster Clear Weekly Schedule - * - * - * - */ -bool emberAfThermostatClusterClearWeeklyScheduleCallback(void); -/** @brief Thermostat Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfThermostatClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Thermostat Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfThermostatClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Thermostat Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfThermostatClusterClientInitCallback(uint8_t endpoint); -/** @brief Thermostat Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfThermostatClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Thermostat Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfThermostatClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Thermostat Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfThermostatClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Thermostat Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfThermostatClusterClientTickCallback(uint8_t endpoint); -/** @brief Thermostat Cluster Current Weekly Schedule - * - * - * - * @param numberOfTransitionsForSequence Ver.: always - * @param dayOfWeekForSequence Ver.: always - * @param modeForSequence Ver.: always - * @param payload Ver.: always - */ -bool emberAfThermostatClusterCurrentWeeklyScheduleCallback(uint8_t numberOfTransitionsForSequence, uint8_t dayOfWeekForSequence, - uint8_t modeForSequence, uint8_t * payload); -/** @brief Thermostat Cluster Get Relay Status Log - * - * - * - */ -bool emberAfThermostatClusterGetRelayStatusLogCallback(void); -/** @brief Thermostat Cluster Get Weekly Schedule - * - * - * - * @param daysToReturn Ver.: always - * @param modeToReturn Ver.: always - */ -bool emberAfThermostatClusterGetWeeklyScheduleCallback(uint8_t daysToReturn, uint8_t modeToReturn); -/** @brief Thermostat Cluster Relay Status Log - * - * - * - * @param timeOfDay Ver.: always - * @param relayStatus Ver.: always - * @param localTemperature Ver.: always - * @param humidityInPercentage Ver.: always - * @param setpoint Ver.: always - * @param unreadEntries Ver.: always - */ -bool emberAfThermostatClusterRelayStatusLogCallback(uint16_t timeOfDay, uint16_t relayStatus, int16_t localTemperature, - uint8_t humidityInPercentage, int16_t setpoint, uint16_t unreadEntries); -/** @brief Thermostat Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfThermostatClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Thermostat Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfThermostatClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Thermostat Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfThermostatClusterServerInitCallback(uint8_t endpoint); -/** @brief Thermostat Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfThermostatClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Thermostat Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfThermostatClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Thermostat Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfThermostatClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Thermostat Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfThermostatClusterServerTickCallback(uint8_t endpoint); -/** @brief Thermostat Cluster Set Weekly Schedule - * - * - * - * @param numberOfTransitionsForSequence Ver.: always - * @param dayOfWeekForSequence Ver.: always - * @param modeForSequence Ver.: always - * @param payload Ver.: always - */ -bool emberAfThermostatClusterSetWeeklyScheduleCallback(uint8_t numberOfTransitionsForSequence, uint8_t dayOfWeekForSequence, - uint8_t modeForSequence, uint8_t * payload); -/** @brief Thermostat Cluster Setpoint Raise Lower - * - * - * - * @param mode Ver.: always - * @param amount Ver.: always - */ -bool emberAfThermostatClusterSetpointRaiseLowerCallback(uint8_t mode, int8_t amount); - -/** @} END Thermostat Cluster Callbacks */ - -/** @name Fan Control Cluster Callbacks */ -// @{ - -/** @brief Fan Control Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfFanControlClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Fan Control Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfFanControlClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Fan Control Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfFanControlClusterClientInitCallback(uint8_t endpoint); -/** @brief Fan Control Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfFanControlClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Fan Control Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfFanControlClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Fan Control Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfFanControlClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Fan Control Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfFanControlClusterClientTickCallback(uint8_t endpoint); -/** @brief Fan Control Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfFanControlClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Fan Control Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfFanControlClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Fan Control Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfFanControlClusterServerInitCallback(uint8_t endpoint); -/** @brief Fan Control Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfFanControlClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Fan Control Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfFanControlClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Fan Control Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfFanControlClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Fan Control Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfFanControlClusterServerTickCallback(uint8_t endpoint); - -/** @} END Fan Control Cluster Callbacks */ - -/** @name Dehumidification Control Cluster Callbacks */ -// @{ - -/** @brief Dehumidification Control Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfDehumidControlClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Dehumidification Control Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfDehumidControlClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Dehumidification Control Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfDehumidControlClusterClientInitCallback(uint8_t endpoint); -/** @brief Dehumidification Control Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfDehumidControlClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Dehumidification Control Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfDehumidControlClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Dehumidification Control Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfDehumidControlClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Dehumidification Control Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfDehumidControlClusterClientTickCallback(uint8_t endpoint); -/** @brief Dehumidification Control Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfDehumidControlClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Dehumidification Control Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfDehumidControlClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Dehumidification Control Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfDehumidControlClusterServerInitCallback(uint8_t endpoint); -/** @brief Dehumidification Control Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfDehumidControlClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Dehumidification Control Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfDehumidControlClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Dehumidification Control Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfDehumidControlClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Dehumidification Control Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfDehumidControlClusterServerTickCallback(uint8_t endpoint); - -/** @} END Dehumidification Control Cluster Callbacks */ - -/** @name Thermostat User Interface Configuration Cluster Callbacks */ -// @{ - -/** @brief Thermostat User Interface Configuration Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfThermostatUiConfigClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Thermostat User Interface Configuration Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfThermostatUiConfigClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Thermostat User Interface Configuration Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfThermostatUiConfigClusterClientInitCallback(uint8_t endpoint); -/** @brief Thermostat User Interface Configuration Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfThermostatUiConfigClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Thermostat User Interface Configuration Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfThermostatUiConfigClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Thermostat User Interface Configuration Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfThermostatUiConfigClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Thermostat User Interface Configuration Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfThermostatUiConfigClusterClientTickCallback(uint8_t endpoint); -/** @brief Thermostat User Interface Configuration Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfThermostatUiConfigClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Thermostat User Interface Configuration Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfThermostatUiConfigClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Thermostat User Interface Configuration Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfThermostatUiConfigClusterServerInitCallback(uint8_t endpoint); -/** @brief Thermostat User Interface Configuration Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfThermostatUiConfigClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Thermostat User Interface Configuration Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfThermostatUiConfigClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Thermostat User Interface Configuration Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfThermostatUiConfigClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Thermostat User Interface Configuration Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfThermostatUiConfigClusterServerTickCallback(uint8_t endpoint); - -/** @} END Thermostat User Interface Configuration Cluster Callbacks */ - -/** @name Color Control Cluster Callbacks */ -// @{ - -/** @brief Color Control Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfColorControlClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Color Control Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfColorControlClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Color Control Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfColorControlClusterClientInitCallback(uint8_t endpoint); -/** @brief Color Control Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfColorControlClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Color Control Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfColorControlClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Color Control Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfColorControlClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Color Control Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfColorControlClusterClientTickCallback(uint8_t endpoint); -/** @brief Color Control Cluster Color Loop Set - * - * - * - * @param updateFlags Ver.: always - * @param action Ver.: always - * @param direction Ver.: always - * @param time Ver.: always - * @param startHue Ver.: always - */ -bool emberAfColorControlClusterColorLoopSetCallback(uint8_t updateFlags, uint8_t action, uint8_t direction, uint16_t time, - uint16_t startHue); -/** @brief Color Control Cluster Enhanced Move Hue - * - * - * - * @param moveMode Ver.: always - * @param rate Ver.: always - */ -bool emberAfColorControlClusterEnhancedMoveHueCallback(uint8_t moveMode, uint16_t rate); -/** @brief Color Control Cluster Enhanced Move To Hue And Saturation - * - * - * - * @param enhancedHue Ver.: always - * @param saturation Ver.: always - * @param transitionTime Ver.: always - */ -bool emberAfColorControlClusterEnhancedMoveToHueAndSaturationCallback(uint16_t enhancedHue, uint8_t saturation, - uint16_t transitionTime); -/** @brief Color Control Cluster Enhanced Move To Hue - * - * - * - * @param enhancedHue Ver.: always - * @param direction Ver.: always - * @param transitionTime Ver.: always - */ -bool emberAfColorControlClusterEnhancedMoveToHueCallback(uint16_t enhancedHue, uint8_t direction, uint16_t transitionTime); -/** @brief Color Control Cluster Enhanced Step Hue - * - * - * - * @param stepMode Ver.: always - * @param stepSize Ver.: always - * @param transitionTime Ver.: always - */ -bool emberAfColorControlClusterEnhancedStepHueCallback(uint8_t stepMode, uint16_t stepSize, uint16_t transitionTime); -/** @brief Color Control Cluster Move Color - * - * - * - * @param rateX Ver.: always - * @param rateY Ver.: always - * @param optionsMask Ver.: since zcl6-errata-14-0129-15 - * @param optionsOverride Ver.: since zcl6-errata-14-0129-15 - */ -bool emberAfColorControlClusterMoveColorCallback(int16_t rateX, int16_t rateY, uint8_t optionsMask, uint8_t optionsOverride); -/** @brief Color Control Cluster Move Color Temperature - * - * - * - * @param moveMode Ver.: always - * @param rate Ver.: always - * @param colorTemperatureMinimum Ver.: always - * @param colorTemperatureMaximum Ver.: always - * @param optionsMask Ver.: since zcl6-errata-14-0129-15 - * @param optionsOverride Ver.: since zcl6-errata-14-0129-15 - */ -bool emberAfColorControlClusterMoveColorTemperatureCallback(uint8_t moveMode, uint16_t rate, uint16_t colorTemperatureMinimum, - uint16_t colorTemperatureMaximum, uint8_t optionsMask, - uint8_t optionsOverride); -/** @brief Color Control Cluster Move Hue - * - * - * - * @param moveMode Ver.: always - * @param rate Ver.: always - * @param optionsMask Ver.: since zcl6-errata-14-0129-15 - * @param optionsOverride Ver.: since zcl6-errata-14-0129-15 - */ -bool emberAfColorControlClusterMoveHueCallback(uint8_t moveMode, uint8_t rate, uint8_t optionsMask, uint8_t optionsOverride); -/** @brief Color Control Cluster Move Saturation - * - * - * - * @param moveMode Ver.: always - * @param rate Ver.: always - * @param optionsMask Ver.: since zcl6-errata-14-0129-15 - * @param optionsOverride Ver.: since zcl6-errata-14-0129-15 - */ -bool emberAfColorControlClusterMoveSaturationCallback(uint8_t moveMode, uint8_t rate, uint8_t optionsMask, uint8_t optionsOverride); -/** @brief Color Control Cluster Move To Color - * - * - * - * @param colorX Ver.: always - * @param colorY Ver.: always - * @param transitionTime Ver.: always - * @param optionsMask Ver.: since zcl6-errata-14-0129-15 - * @param optionsOverride Ver.: since zcl6-errata-14-0129-15 - */ -bool emberAfColorControlClusterMoveToColorCallback(uint16_t colorX, uint16_t colorY, uint16_t transitionTime, uint8_t optionsMask, - uint8_t optionsOverride); -/** @brief Color Control Cluster Move To Color Temperature - * - * - * - * @param colorTemperature Ver.: always - * @param transitionTime Ver.: always - * @param optionsMask Ver.: since zcl6-errata-14-0129-15 - * @param optionsOverride Ver.: since zcl6-errata-14-0129-15 - */ -bool emberAfColorControlClusterMoveToColorTemperatureCallback(uint16_t colorTemperature, uint16_t transitionTime, - uint8_t optionsMask, uint8_t optionsOverride); -/** @brief Color Control Cluster Move To Hue And Saturation - * - * - * - * @param hue Ver.: always - * @param saturation Ver.: always - * @param transitionTime Ver.: always - * @param optionsMask Ver.: since zcl6-errata-14-0129-15 - * @param optionsOverride Ver.: since zcl6-errata-14-0129-15 - */ -bool emberAfColorControlClusterMoveToHueAndSaturationCallback(uint8_t hue, uint8_t saturation, uint16_t transitionTime, - uint8_t optionsMask, uint8_t optionsOverride); -/** @brief Color Control Cluster Move To Hue - * - * - * - * @param hue Ver.: always - * @param direction Ver.: always - * @param transitionTime Ver.: always - * @param optionsMask Ver.: since zcl6-errata-14-0129-15 - * @param optionsOverride Ver.: since zcl6-errata-14-0129-15 - */ -bool emberAfColorControlClusterMoveToHueCallback(uint8_t hue, uint8_t direction, uint16_t transitionTime, uint8_t optionsMask, - uint8_t optionsOverride); -/** @brief Color Control Cluster Move To Saturation - * - * - * - * @param saturation Ver.: always - * @param transitionTime Ver.: always - * @param optionsMask Ver.: since zcl6-errata-14-0129-15 - * @param optionsOverride Ver.: since zcl6-errata-14-0129-15 - */ -bool emberAfColorControlClusterMoveToSaturationCallback(uint8_t saturation, uint16_t transitionTime, uint8_t optionsMask, - uint8_t optionsOverride); -/** @brief Color Control Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfColorControlClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Color Control Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfColorControlClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Color Control Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfColorControlClusterServerInitCallback(uint8_t endpoint); -/** @brief Color Control Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfColorControlClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Color Control Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfColorControlClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Color Control Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfColorControlClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Color Control Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfColorControlClusterServerTickCallback(uint8_t endpoint); -/** @brief Color Control Cluster Step Color - * - * - * - * @param stepX Ver.: always - * @param stepY Ver.: always - * @param transitionTime Ver.: always - * @param optionsMask Ver.: since zcl6-errata-14-0129-15 - * @param optionsOverride Ver.: since zcl6-errata-14-0129-15 - */ -bool emberAfColorControlClusterStepColorCallback(int16_t stepX, int16_t stepY, uint16_t transitionTime, uint8_t optionsMask, - uint8_t optionsOverride); -/** @brief Color Control Cluster Step Color Temperature - * - * - * - * @param stepMode Ver.: always - * @param stepSize Ver.: always - * @param transitionTime Ver.: always - * @param colorTemperatureMinimum Ver.: always - * @param colorTemperatureMaximum Ver.: always - * @param optionsMask Ver.: since zcl6-errata-14-0129-15 - * @param optionsOverride Ver.: since zcl6-errata-14-0129-15 - */ -bool emberAfColorControlClusterStepColorTemperatureCallback(uint8_t stepMode, uint16_t stepSize, uint16_t transitionTime, - uint16_t colorTemperatureMinimum, uint16_t colorTemperatureMaximum, - uint8_t optionsMask, uint8_t optionsOverride); -/** @brief Color Control Cluster Step Hue - * - * - * - * @param stepMode Ver.: always - * @param stepSize Ver.: always - * @param transitionTime Ver.: always - * @param optionsMask Ver.: since zcl6-errata-14-0129-15 - * @param optionsOverride Ver.: since zcl6-errata-14-0129-15 - */ -bool emberAfColorControlClusterStepHueCallback(uint8_t stepMode, uint8_t stepSize, uint8_t transitionTime, uint8_t optionsMask, - uint8_t optionsOverride); -/** @brief Color Control Cluster Step Saturation - * - * - * - * @param stepMode Ver.: always - * @param stepSize Ver.: always - * @param transitionTime Ver.: always - * @param optionsMask Ver.: since zcl6-errata-14-0129-15 - * @param optionsOverride Ver.: since zcl6-errata-14-0129-15 - */ -bool emberAfColorControlClusterStepSaturationCallback(uint8_t stepMode, uint8_t stepSize, uint8_t transitionTime, - uint8_t optionsMask, uint8_t optionsOverride); -/** @brief Color Control Cluster Stop Move Step - * - * - * - * @param optionsMask Ver.: since zcl6-errata-14-0129-15 - * @param optionsOverride Ver.: since zcl6-errata-14-0129-15 - */ -bool emberAfColorControlClusterStopMoveStepCallback(uint8_t optionsMask, uint8_t optionsOverride); - -/** @} END Color Control Cluster Callbacks */ - -/** @name Ballast Configuration Cluster Callbacks */ -// @{ - -/** @brief Ballast Configuration Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfBallastConfigurationClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Ballast Configuration Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfBallastConfigurationClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Ballast Configuration Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfBallastConfigurationClusterClientInitCallback(uint8_t endpoint); -/** @brief Ballast Configuration Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfBallastConfigurationClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Ballast Configuration Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfBallastConfigurationClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Ballast Configuration Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfBallastConfigurationClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Ballast Configuration Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfBallastConfigurationClusterClientTickCallback(uint8_t endpoint); -/** @brief Ballast Configuration Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfBallastConfigurationClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Ballast Configuration Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfBallastConfigurationClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Ballast Configuration Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfBallastConfigurationClusterServerInitCallback(uint8_t endpoint); -/** @brief Ballast Configuration Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfBallastConfigurationClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Ballast Configuration Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfBallastConfigurationClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Ballast Configuration Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfBallastConfigurationClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Ballast Configuration Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfBallastConfigurationClusterServerTickCallback(uint8_t endpoint); - -/** @} END Ballast Configuration Cluster Callbacks */ - -/** @name Illuminance Measurement Cluster Callbacks */ -// @{ - -/** @brief Illuminance Measurement Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfIllumMeasurementClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Illuminance Measurement Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfIllumMeasurementClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Illuminance Measurement Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfIllumMeasurementClusterClientInitCallback(uint8_t endpoint); -/** @brief Illuminance Measurement Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfIllumMeasurementClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Illuminance Measurement Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfIllumMeasurementClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Illuminance Measurement Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfIllumMeasurementClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Illuminance Measurement Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfIllumMeasurementClusterClientTickCallback(uint8_t endpoint); -/** @brief Illuminance Measurement Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfIllumMeasurementClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Illuminance Measurement Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfIllumMeasurementClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Illuminance Measurement Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfIllumMeasurementClusterServerInitCallback(uint8_t endpoint); -/** @brief Illuminance Measurement Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfIllumMeasurementClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Illuminance Measurement Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfIllumMeasurementClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Illuminance Measurement Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfIllumMeasurementClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Illuminance Measurement Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfIllumMeasurementClusterServerTickCallback(uint8_t endpoint); - -/** @} END Illuminance Measurement Cluster Callbacks */ - -/** @name Illuminance Level Sensing Cluster Callbacks */ -// @{ - -/** @brief Illuminance Level Sensing Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfIllumLevelSensingClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Illuminance Level Sensing Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfIllumLevelSensingClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Illuminance Level Sensing Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfIllumLevelSensingClusterClientInitCallback(uint8_t endpoint); -/** @brief Illuminance Level Sensing Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfIllumLevelSensingClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Illuminance Level Sensing Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfIllumLevelSensingClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Illuminance Level Sensing Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfIllumLevelSensingClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Illuminance Level Sensing Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfIllumLevelSensingClusterClientTickCallback(uint8_t endpoint); -/** @brief Illuminance Level Sensing Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfIllumLevelSensingClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Illuminance Level Sensing Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfIllumLevelSensingClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Illuminance Level Sensing Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfIllumLevelSensingClusterServerInitCallback(uint8_t endpoint); -/** @brief Illuminance Level Sensing Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfIllumLevelSensingClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Illuminance Level Sensing Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfIllumLevelSensingClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Illuminance Level Sensing Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfIllumLevelSensingClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Illuminance Level Sensing Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfIllumLevelSensingClusterServerTickCallback(uint8_t endpoint); - -/** @} END Illuminance Level Sensing Cluster Callbacks */ - -/** @name Temperature Measurement Cluster Callbacks */ -// @{ - -/** @brief Temperature Measurement Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfTempMeasurementClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Temperature Measurement Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfTempMeasurementClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Temperature Measurement Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfTempMeasurementClusterClientInitCallback(uint8_t endpoint); -/** @brief Temperature Measurement Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfTempMeasurementClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Temperature Measurement Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfTempMeasurementClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Temperature Measurement Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfTempMeasurementClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Temperature Measurement Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfTempMeasurementClusterClientTickCallback(uint8_t endpoint); -/** @brief Temperature Measurement Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfTempMeasurementClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Temperature Measurement Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfTempMeasurementClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Temperature Measurement Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfTempMeasurementClusterServerInitCallback(uint8_t endpoint); -/** @brief Temperature Measurement Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfTempMeasurementClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Temperature Measurement Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfTempMeasurementClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Temperature Measurement Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfTempMeasurementClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Temperature Measurement Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfTempMeasurementClusterServerTickCallback(uint8_t endpoint); - -/** @} END Temperature Measurement Cluster Callbacks */ - -/** @name Pressure Measurement Cluster Callbacks */ -// @{ - -/** @brief Pressure Measurement Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfPressureMeasurementClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Pressure Measurement Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfPressureMeasurementClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Pressure Measurement Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfPressureMeasurementClusterClientInitCallback(uint8_t endpoint); -/** @brief Pressure Measurement Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfPressureMeasurementClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Pressure Measurement Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfPressureMeasurementClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Pressure Measurement Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfPressureMeasurementClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Pressure Measurement Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfPressureMeasurementClusterClientTickCallback(uint8_t endpoint); -/** @brief Pressure Measurement Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfPressureMeasurementClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Pressure Measurement Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfPressureMeasurementClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Pressure Measurement Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfPressureMeasurementClusterServerInitCallback(uint8_t endpoint); -/** @brief Pressure Measurement Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfPressureMeasurementClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Pressure Measurement Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfPressureMeasurementClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Pressure Measurement Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfPressureMeasurementClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Pressure Measurement Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfPressureMeasurementClusterServerTickCallback(uint8_t endpoint); - -/** @} END Pressure Measurement Cluster Callbacks */ - -/** @name Flow Measurement Cluster Callbacks */ -// @{ - -/** @brief Flow Measurement Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfFlowMeasurementClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Flow Measurement Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfFlowMeasurementClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Flow Measurement Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfFlowMeasurementClusterClientInitCallback(uint8_t endpoint); -/** @brief Flow Measurement Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfFlowMeasurementClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Flow Measurement Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfFlowMeasurementClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Flow Measurement Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfFlowMeasurementClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Flow Measurement Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfFlowMeasurementClusterClientTickCallback(uint8_t endpoint); -/** @brief Flow Measurement Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfFlowMeasurementClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Flow Measurement Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfFlowMeasurementClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Flow Measurement Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfFlowMeasurementClusterServerInitCallback(uint8_t endpoint); -/** @brief Flow Measurement Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfFlowMeasurementClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Flow Measurement Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfFlowMeasurementClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Flow Measurement Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfFlowMeasurementClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Flow Measurement Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfFlowMeasurementClusterServerTickCallback(uint8_t endpoint); - -/** @} END Flow Measurement Cluster Callbacks */ - -/** @name Relative Humidity Measurement Cluster Callbacks */ -// @{ - -/** @brief Relative Humidity Measurement Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfRelativeHumidityMeasurementClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Relative Humidity Measurement Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfRelativeHumidityMeasurementClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Relative Humidity Measurement Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfRelativeHumidityMeasurementClusterClientInitCallback(uint8_t endpoint); -/** @brief Relative Humidity Measurement Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfRelativeHumidityMeasurementClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Relative Humidity Measurement Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfRelativeHumidityMeasurementClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, - uint8_t * message, EmberStatus status); -/** @brief Relative Humidity Measurement Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfRelativeHumidityMeasurementClusterClientPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Relative Humidity Measurement Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfRelativeHumidityMeasurementClusterClientTickCallback(uint8_t endpoint); -/** @brief Relative Humidity Measurement Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfRelativeHumidityMeasurementClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Relative Humidity Measurement Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfRelativeHumidityMeasurementClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Relative Humidity Measurement Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfRelativeHumidityMeasurementClusterServerInitCallback(uint8_t endpoint); -/** @brief Relative Humidity Measurement Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfRelativeHumidityMeasurementClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Relative Humidity Measurement Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfRelativeHumidityMeasurementClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, - uint8_t * message, EmberStatus status); -/** @brief Relative Humidity Measurement Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfRelativeHumidityMeasurementClusterServerPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Relative Humidity Measurement Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfRelativeHumidityMeasurementClusterServerTickCallback(uint8_t endpoint); - -/** @} END Relative Humidity Measurement Cluster Callbacks */ - -/** @name Occupancy Sensing Cluster Callbacks */ -// @{ - -/** @brief Occupancy Sensing Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfOccupancySensingClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Occupancy Sensing Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfOccupancySensingClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Occupancy Sensing Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfOccupancySensingClusterClientInitCallback(uint8_t endpoint); -/** @brief Occupancy Sensing Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfOccupancySensingClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Occupancy Sensing Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfOccupancySensingClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Occupancy Sensing Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfOccupancySensingClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Occupancy Sensing Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfOccupancySensingClusterClientTickCallback(uint8_t endpoint); -/** @brief Occupancy Sensing Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfOccupancySensingClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Occupancy Sensing Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfOccupancySensingClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Occupancy Sensing Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfOccupancySensingClusterServerInitCallback(uint8_t endpoint); -/** @brief Occupancy Sensing Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfOccupancySensingClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Occupancy Sensing Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfOccupancySensingClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Occupancy Sensing Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfOccupancySensingClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Occupancy Sensing Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfOccupancySensingClusterServerTickCallback(uint8_t endpoint); - -/** @} END Occupancy Sensing Cluster Callbacks */ - -/** @name Carbon Monoxide Concentration Measurement Cluster Callbacks */ -// @{ - -/** @brief Carbon Monoxide Concentration Measurement Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfCarbonMonoxideConcentrationMeasurementClusterClientAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId); -/** @brief Carbon Monoxide Concentration Measurement Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfCarbonMonoxideConcentrationMeasurementClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Carbon Monoxide Concentration Measurement Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfCarbonMonoxideConcentrationMeasurementClusterClientInitCallback(uint8_t endpoint); -/** @brief Carbon Monoxide Concentration Measurement Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfCarbonMonoxideConcentrationMeasurementClusterClientManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Carbon Monoxide Concentration Measurement Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfCarbonMonoxideConcentrationMeasurementClusterClientMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, - uint8_t * message, EmberStatus status); -/** @brief Carbon Monoxide Concentration Measurement Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfCarbonMonoxideConcentrationMeasurementClusterClientPreAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, EmberAfAttributeType attributeType, uint8_t size, uint8_t * value); -/** @brief Carbon Monoxide Concentration Measurement Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfCarbonMonoxideConcentrationMeasurementClusterClientTickCallback(uint8_t endpoint); -/** @brief Carbon Monoxide Concentration Measurement Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfCarbonMonoxideConcentrationMeasurementClusterServerAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId); -/** @brief Carbon Monoxide Concentration Measurement Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfCarbonMonoxideConcentrationMeasurementClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Carbon Monoxide Concentration Measurement Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfCarbonMonoxideConcentrationMeasurementClusterServerInitCallback(uint8_t endpoint); -/** @brief Carbon Monoxide Concentration Measurement Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfCarbonMonoxideConcentrationMeasurementClusterServerManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Carbon Monoxide Concentration Measurement Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfCarbonMonoxideConcentrationMeasurementClusterServerMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, - uint8_t * message, EmberStatus status); -/** @brief Carbon Monoxide Concentration Measurement Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfCarbonMonoxideConcentrationMeasurementClusterServerPreAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, EmberAfAttributeType attributeType, uint8_t size, uint8_t * value); -/** @brief Carbon Monoxide Concentration Measurement Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfCarbonMonoxideConcentrationMeasurementClusterServerTickCallback(uint8_t endpoint); - -/** @} END Carbon Monoxide Concentration Measurement Cluster Callbacks */ - -/** @name Carbon Dioxide Concentration Measurement Cluster Callbacks */ -// @{ - -/** @brief Carbon Dioxide Concentration Measurement Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfCarbonDioxideConcentrationMeasurementClusterClientAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId); -/** @brief Carbon Dioxide Concentration Measurement Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfCarbonDioxideConcentrationMeasurementClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Carbon Dioxide Concentration Measurement Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfCarbonDioxideConcentrationMeasurementClusterClientInitCallback(uint8_t endpoint); -/** @brief Carbon Dioxide Concentration Measurement Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfCarbonDioxideConcentrationMeasurementClusterClientManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Carbon Dioxide Concentration Measurement Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfCarbonDioxideConcentrationMeasurementClusterClientMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, - uint8_t * message, EmberStatus status); -/** @brief Carbon Dioxide Concentration Measurement Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfCarbonDioxideConcentrationMeasurementClusterClientPreAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, EmberAfAttributeType attributeType, uint8_t size, uint8_t * value); -/** @brief Carbon Dioxide Concentration Measurement Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfCarbonDioxideConcentrationMeasurementClusterClientTickCallback(uint8_t endpoint); -/** @brief Carbon Dioxide Concentration Measurement Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfCarbonDioxideConcentrationMeasurementClusterServerAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId); -/** @brief Carbon Dioxide Concentration Measurement Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfCarbonDioxideConcentrationMeasurementClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Carbon Dioxide Concentration Measurement Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfCarbonDioxideConcentrationMeasurementClusterServerInitCallback(uint8_t endpoint); -/** @brief Carbon Dioxide Concentration Measurement Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfCarbonDioxideConcentrationMeasurementClusterServerManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Carbon Dioxide Concentration Measurement Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfCarbonDioxideConcentrationMeasurementClusterServerMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, - uint8_t * message, EmberStatus status); -/** @brief Carbon Dioxide Concentration Measurement Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfCarbonDioxideConcentrationMeasurementClusterServerPreAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, EmberAfAttributeType attributeType, uint8_t size, uint8_t * value); -/** @brief Carbon Dioxide Concentration Measurement Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfCarbonDioxideConcentrationMeasurementClusterServerTickCallback(uint8_t endpoint); - -/** @} END Carbon Dioxide Concentration Measurement Cluster Callbacks */ - -/** @name Ethylene Concentration Measurement Cluster Callbacks */ -// @{ - -/** @brief Ethylene Concentration Measurement Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfEthyleneConcentrationMeasurementClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Ethylene Concentration Measurement Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfEthyleneConcentrationMeasurementClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Ethylene Concentration Measurement Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfEthyleneConcentrationMeasurementClusterClientInitCallback(uint8_t endpoint); -/** @brief Ethylene Concentration Measurement Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfEthyleneConcentrationMeasurementClusterClientManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Ethylene Concentration Measurement Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfEthyleneConcentrationMeasurementClusterClientMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, EmberApsFrame * apsFrame, - uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Ethylene Concentration Measurement Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfEthyleneConcentrationMeasurementClusterClientPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Ethylene Concentration Measurement Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfEthyleneConcentrationMeasurementClusterClientTickCallback(uint8_t endpoint); -/** @brief Ethylene Concentration Measurement Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfEthyleneConcentrationMeasurementClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Ethylene Concentration Measurement Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfEthyleneConcentrationMeasurementClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Ethylene Concentration Measurement Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfEthyleneConcentrationMeasurementClusterServerInitCallback(uint8_t endpoint); -/** @brief Ethylene Concentration Measurement Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfEthyleneConcentrationMeasurementClusterServerManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Ethylene Concentration Measurement Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfEthyleneConcentrationMeasurementClusterServerMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, EmberApsFrame * apsFrame, - uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Ethylene Concentration Measurement Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfEthyleneConcentrationMeasurementClusterServerPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Ethylene Concentration Measurement Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfEthyleneConcentrationMeasurementClusterServerTickCallback(uint8_t endpoint); - -/** @} END Ethylene Concentration Measurement Cluster Callbacks */ - -/** @name Ethylene Oxide Concentration Measurement Cluster Callbacks */ -// @{ - -/** @brief Ethylene Oxide Concentration Measurement Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfEthyleneOxideConcentrationMeasurementClusterClientAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId); -/** @brief Ethylene Oxide Concentration Measurement Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfEthyleneOxideConcentrationMeasurementClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Ethylene Oxide Concentration Measurement Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfEthyleneOxideConcentrationMeasurementClusterClientInitCallback(uint8_t endpoint); -/** @brief Ethylene Oxide Concentration Measurement Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfEthyleneOxideConcentrationMeasurementClusterClientManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Ethylene Oxide Concentration Measurement Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfEthyleneOxideConcentrationMeasurementClusterClientMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, - uint8_t * message, EmberStatus status); -/** @brief Ethylene Oxide Concentration Measurement Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfEthyleneOxideConcentrationMeasurementClusterClientPreAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, EmberAfAttributeType attributeType, uint8_t size, uint8_t * value); -/** @brief Ethylene Oxide Concentration Measurement Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfEthyleneOxideConcentrationMeasurementClusterClientTickCallback(uint8_t endpoint); -/** @brief Ethylene Oxide Concentration Measurement Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfEthyleneOxideConcentrationMeasurementClusterServerAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId); -/** @brief Ethylene Oxide Concentration Measurement Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfEthyleneOxideConcentrationMeasurementClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Ethylene Oxide Concentration Measurement Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfEthyleneOxideConcentrationMeasurementClusterServerInitCallback(uint8_t endpoint); -/** @brief Ethylene Oxide Concentration Measurement Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfEthyleneOxideConcentrationMeasurementClusterServerManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Ethylene Oxide Concentration Measurement Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfEthyleneOxideConcentrationMeasurementClusterServerMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, - uint8_t * message, EmberStatus status); -/** @brief Ethylene Oxide Concentration Measurement Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfEthyleneOxideConcentrationMeasurementClusterServerPreAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, EmberAfAttributeType attributeType, uint8_t size, uint8_t * value); -/** @brief Ethylene Oxide Concentration Measurement Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfEthyleneOxideConcentrationMeasurementClusterServerTickCallback(uint8_t endpoint); - -/** @} END Ethylene Oxide Concentration Measurement Cluster Callbacks */ - -/** @name Hydrogen Concentration Measurement Cluster Callbacks */ -// @{ - -/** @brief Hydrogen Concentration Measurement Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfHydrogenConcentrationMeasurementClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Hydrogen Concentration Measurement Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfHydrogenConcentrationMeasurementClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Hydrogen Concentration Measurement Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfHydrogenConcentrationMeasurementClusterClientInitCallback(uint8_t endpoint); -/** @brief Hydrogen Concentration Measurement Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfHydrogenConcentrationMeasurementClusterClientManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Hydrogen Concentration Measurement Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfHydrogenConcentrationMeasurementClusterClientMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, EmberApsFrame * apsFrame, - uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Hydrogen Concentration Measurement Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfHydrogenConcentrationMeasurementClusterClientPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Hydrogen Concentration Measurement Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfHydrogenConcentrationMeasurementClusterClientTickCallback(uint8_t endpoint); -/** @brief Hydrogen Concentration Measurement Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfHydrogenConcentrationMeasurementClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Hydrogen Concentration Measurement Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfHydrogenConcentrationMeasurementClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Hydrogen Concentration Measurement Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfHydrogenConcentrationMeasurementClusterServerInitCallback(uint8_t endpoint); -/** @brief Hydrogen Concentration Measurement Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfHydrogenConcentrationMeasurementClusterServerManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Hydrogen Concentration Measurement Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfHydrogenConcentrationMeasurementClusterServerMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, EmberApsFrame * apsFrame, - uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Hydrogen Concentration Measurement Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfHydrogenConcentrationMeasurementClusterServerPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Hydrogen Concentration Measurement Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfHydrogenConcentrationMeasurementClusterServerTickCallback(uint8_t endpoint); - -/** @} END Hydrogen Concentration Measurement Cluster Callbacks */ - -/** @name Hydrogen Sulphide Concentration Measurement Cluster Callbacks */ -// @{ - -/** @brief Hydrogen Sulphide Concentration Measurement Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfHydrogenSulphideConcentrationMeasurementClusterClientAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId); -/** @brief Hydrogen Sulphide Concentration Measurement Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfHydrogenSulphideConcentrationMeasurementClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Hydrogen Sulphide Concentration Measurement Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfHydrogenSulphideConcentrationMeasurementClusterClientInitCallback(uint8_t endpoint); -/** @brief Hydrogen Sulphide Concentration Measurement Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfHydrogenSulphideConcentrationMeasurementClusterClientManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Hydrogen Sulphide Concentration Measurement Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfHydrogenSulphideConcentrationMeasurementClusterClientMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, - uint8_t * message, EmberStatus status); -/** @brief Hydrogen Sulphide Concentration Measurement Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfHydrogenSulphideConcentrationMeasurementClusterClientPreAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, EmberAfAttributeType attributeType, uint8_t size, uint8_t * value); -/** @brief Hydrogen Sulphide Concentration Measurement Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfHydrogenSulphideConcentrationMeasurementClusterClientTickCallback(uint8_t endpoint); -/** @brief Hydrogen Sulphide Concentration Measurement Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfHydrogenSulphideConcentrationMeasurementClusterServerAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId); -/** @brief Hydrogen Sulphide Concentration Measurement Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfHydrogenSulphideConcentrationMeasurementClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Hydrogen Sulphide Concentration Measurement Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfHydrogenSulphideConcentrationMeasurementClusterServerInitCallback(uint8_t endpoint); -/** @brief Hydrogen Sulphide Concentration Measurement Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfHydrogenSulphideConcentrationMeasurementClusterServerManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Hydrogen Sulphide Concentration Measurement Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfHydrogenSulphideConcentrationMeasurementClusterServerMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, - uint8_t * message, EmberStatus status); -/** @brief Hydrogen Sulphide Concentration Measurement Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfHydrogenSulphideConcentrationMeasurementClusterServerPreAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, EmberAfAttributeType attributeType, uint8_t size, uint8_t * value); -/** @brief Hydrogen Sulphide Concentration Measurement Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfHydrogenSulphideConcentrationMeasurementClusterServerTickCallback(uint8_t endpoint); - -/** @} END Hydrogen Sulphide Concentration Measurement Cluster Callbacks */ - -/** @name Nitric Oxide Concentration Measurement Cluster Callbacks */ -// @{ - -/** @brief Nitric Oxide Concentration Measurement Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfNitricOxideConcentrationMeasurementClusterClientAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId); -/** @brief Nitric Oxide Concentration Measurement Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfNitricOxideConcentrationMeasurementClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Nitric Oxide Concentration Measurement Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfNitricOxideConcentrationMeasurementClusterClientInitCallback(uint8_t endpoint); -/** @brief Nitric Oxide Concentration Measurement Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfNitricOxideConcentrationMeasurementClusterClientManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Nitric Oxide Concentration Measurement Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfNitricOxideConcentrationMeasurementClusterClientMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, - uint8_t * message, EmberStatus status); -/** @brief Nitric Oxide Concentration Measurement Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfNitricOxideConcentrationMeasurementClusterClientPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Nitric Oxide Concentration Measurement Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfNitricOxideConcentrationMeasurementClusterClientTickCallback(uint8_t endpoint); -/** @brief Nitric Oxide Concentration Measurement Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfNitricOxideConcentrationMeasurementClusterServerAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId); -/** @brief Nitric Oxide Concentration Measurement Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfNitricOxideConcentrationMeasurementClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Nitric Oxide Concentration Measurement Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfNitricOxideConcentrationMeasurementClusterServerInitCallback(uint8_t endpoint); -/** @brief Nitric Oxide Concentration Measurement Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfNitricOxideConcentrationMeasurementClusterServerManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Nitric Oxide Concentration Measurement Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfNitricOxideConcentrationMeasurementClusterServerMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, - uint8_t * message, EmberStatus status); -/** @brief Nitric Oxide Concentration Measurement Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfNitricOxideConcentrationMeasurementClusterServerPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Nitric Oxide Concentration Measurement Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfNitricOxideConcentrationMeasurementClusterServerTickCallback(uint8_t endpoint); - -/** @} END Nitric Oxide Concentration Measurement Cluster Callbacks */ - -/** @name Nitrogen Dioxide Concentration Measurement Cluster Callbacks */ -// @{ - -/** @brief Nitrogen Dioxide Concentration Measurement Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfNitrogenDioxideConcentrationMeasurementClusterClientAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId); -/** @brief Nitrogen Dioxide Concentration Measurement Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfNitrogenDioxideConcentrationMeasurementClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Nitrogen Dioxide Concentration Measurement Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfNitrogenDioxideConcentrationMeasurementClusterClientInitCallback(uint8_t endpoint); -/** @brief Nitrogen Dioxide Concentration Measurement Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfNitrogenDioxideConcentrationMeasurementClusterClientManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Nitrogen Dioxide Concentration Measurement Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfNitrogenDioxideConcentrationMeasurementClusterClientMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, - uint8_t * message, EmberStatus status); -/** @brief Nitrogen Dioxide Concentration Measurement Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfNitrogenDioxideConcentrationMeasurementClusterClientPreAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, EmberAfAttributeType attributeType, uint8_t size, uint8_t * value); -/** @brief Nitrogen Dioxide Concentration Measurement Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfNitrogenDioxideConcentrationMeasurementClusterClientTickCallback(uint8_t endpoint); -/** @brief Nitrogen Dioxide Concentration Measurement Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfNitrogenDioxideConcentrationMeasurementClusterServerAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId); -/** @brief Nitrogen Dioxide Concentration Measurement Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfNitrogenDioxideConcentrationMeasurementClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Nitrogen Dioxide Concentration Measurement Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfNitrogenDioxideConcentrationMeasurementClusterServerInitCallback(uint8_t endpoint); -/** @brief Nitrogen Dioxide Concentration Measurement Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfNitrogenDioxideConcentrationMeasurementClusterServerManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Nitrogen Dioxide Concentration Measurement Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfNitrogenDioxideConcentrationMeasurementClusterServerMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, - uint8_t * message, EmberStatus status); -/** @brief Nitrogen Dioxide Concentration Measurement Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfNitrogenDioxideConcentrationMeasurementClusterServerPreAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, EmberAfAttributeType attributeType, uint8_t size, uint8_t * value); -/** @brief Nitrogen Dioxide Concentration Measurement Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfNitrogenDioxideConcentrationMeasurementClusterServerTickCallback(uint8_t endpoint); - -/** @} END Nitrogen Dioxide Concentration Measurement Cluster Callbacks */ - -/** @name Oxygen Concentration Measurement Cluster Callbacks */ -// @{ - -/** @brief Oxygen Concentration Measurement Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfOxygenConcentrationMeasurementClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Oxygen Concentration Measurement Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfOxygenConcentrationMeasurementClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Oxygen Concentration Measurement Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfOxygenConcentrationMeasurementClusterClientInitCallback(uint8_t endpoint); -/** @brief Oxygen Concentration Measurement Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfOxygenConcentrationMeasurementClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Oxygen Concentration Measurement Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfOxygenConcentrationMeasurementClusterClientMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, EmberApsFrame * apsFrame, - uint16_t msgLen, uint8_t * message, EmberStatus status); -/** @brief Oxygen Concentration Measurement Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfOxygenConcentrationMeasurementClusterClientPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Oxygen Concentration Measurement Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfOxygenConcentrationMeasurementClusterClientTickCallback(uint8_t endpoint); -/** @brief Oxygen Concentration Measurement Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfOxygenConcentrationMeasurementClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Oxygen Concentration Measurement Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfOxygenConcentrationMeasurementClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Oxygen Concentration Measurement Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfOxygenConcentrationMeasurementClusterServerInitCallback(uint8_t endpoint); -/** @brief Oxygen Concentration Measurement Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfOxygenConcentrationMeasurementClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Oxygen Concentration Measurement Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfOxygenConcentrationMeasurementClusterServerMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, EmberApsFrame * apsFrame, - uint16_t msgLen, uint8_t * message, EmberStatus status); -/** @brief Oxygen Concentration Measurement Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfOxygenConcentrationMeasurementClusterServerPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Oxygen Concentration Measurement Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfOxygenConcentrationMeasurementClusterServerTickCallback(uint8_t endpoint); - -/** @} END Oxygen Concentration Measurement Cluster Callbacks */ - -/** @name Ozone Concentration Measurement Cluster Callbacks */ -// @{ - -/** @brief Ozone Concentration Measurement Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfOzoneConcentrationMeasurementClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Ozone Concentration Measurement Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfOzoneConcentrationMeasurementClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Ozone Concentration Measurement Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfOzoneConcentrationMeasurementClusterClientInitCallback(uint8_t endpoint); -/** @brief Ozone Concentration Measurement Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfOzoneConcentrationMeasurementClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Ozone Concentration Measurement Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfOzoneConcentrationMeasurementClusterClientMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, EmberApsFrame * apsFrame, - uint16_t msgLen, uint8_t * message, EmberStatus status); -/** @brief Ozone Concentration Measurement Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfOzoneConcentrationMeasurementClusterClientPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Ozone Concentration Measurement Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfOzoneConcentrationMeasurementClusterClientTickCallback(uint8_t endpoint); -/** @brief Ozone Concentration Measurement Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfOzoneConcentrationMeasurementClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Ozone Concentration Measurement Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfOzoneConcentrationMeasurementClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Ozone Concentration Measurement Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfOzoneConcentrationMeasurementClusterServerInitCallback(uint8_t endpoint); -/** @brief Ozone Concentration Measurement Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfOzoneConcentrationMeasurementClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Ozone Concentration Measurement Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfOzoneConcentrationMeasurementClusterServerMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, EmberApsFrame * apsFrame, - uint16_t msgLen, uint8_t * message, EmberStatus status); -/** @brief Ozone Concentration Measurement Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfOzoneConcentrationMeasurementClusterServerPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Ozone Concentration Measurement Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfOzoneConcentrationMeasurementClusterServerTickCallback(uint8_t endpoint); - -/** @} END Ozone Concentration Measurement Cluster Callbacks */ - -/** @name Sulfur Dioxide Concentration Measurement Cluster Callbacks */ -// @{ - -/** @brief Sulfur Dioxide Concentration Measurement Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfSulfurDioxideConcentrationMeasurementClusterClientAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId); -/** @brief Sulfur Dioxide Concentration Measurement Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfSulfurDioxideConcentrationMeasurementClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Sulfur Dioxide Concentration Measurement Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfSulfurDioxideConcentrationMeasurementClusterClientInitCallback(uint8_t endpoint); -/** @brief Sulfur Dioxide Concentration Measurement Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfSulfurDioxideConcentrationMeasurementClusterClientManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Sulfur Dioxide Concentration Measurement Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfSulfurDioxideConcentrationMeasurementClusterClientMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, - uint8_t * message, EmberStatus status); -/** @brief Sulfur Dioxide Concentration Measurement Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfSulfurDioxideConcentrationMeasurementClusterClientPreAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, EmberAfAttributeType attributeType, uint8_t size, uint8_t * value); -/** @brief Sulfur Dioxide Concentration Measurement Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfSulfurDioxideConcentrationMeasurementClusterClientTickCallback(uint8_t endpoint); -/** @brief Sulfur Dioxide Concentration Measurement Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfSulfurDioxideConcentrationMeasurementClusterServerAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId); -/** @brief Sulfur Dioxide Concentration Measurement Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfSulfurDioxideConcentrationMeasurementClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Sulfur Dioxide Concentration Measurement Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfSulfurDioxideConcentrationMeasurementClusterServerInitCallback(uint8_t endpoint); -/** @brief Sulfur Dioxide Concentration Measurement Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfSulfurDioxideConcentrationMeasurementClusterServerManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Sulfur Dioxide Concentration Measurement Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfSulfurDioxideConcentrationMeasurementClusterServerMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, - uint8_t * message, EmberStatus status); -/** @brief Sulfur Dioxide Concentration Measurement Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfSulfurDioxideConcentrationMeasurementClusterServerPreAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, EmberAfAttributeType attributeType, uint8_t size, uint8_t * value); -/** @brief Sulfur Dioxide Concentration Measurement Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfSulfurDioxideConcentrationMeasurementClusterServerTickCallback(uint8_t endpoint); - -/** @} END Sulfur Dioxide Concentration Measurement Cluster Callbacks */ - -/** @name Dissolved Oxygen Concentration Measurement Cluster Callbacks */ -// @{ - -/** @brief Dissolved Oxygen Concentration Measurement Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfDissolvedOxygenConcentrationMeasurementClusterClientAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId); -/** @brief Dissolved Oxygen Concentration Measurement Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfDissolvedOxygenConcentrationMeasurementClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Dissolved Oxygen Concentration Measurement Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfDissolvedOxygenConcentrationMeasurementClusterClientInitCallback(uint8_t endpoint); -/** @brief Dissolved Oxygen Concentration Measurement Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfDissolvedOxygenConcentrationMeasurementClusterClientManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Dissolved Oxygen Concentration Measurement Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfDissolvedOxygenConcentrationMeasurementClusterClientMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, - uint8_t * message, EmberStatus status); -/** @brief Dissolved Oxygen Concentration Measurement Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfDissolvedOxygenConcentrationMeasurementClusterClientPreAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, EmberAfAttributeType attributeType, uint8_t size, uint8_t * value); -/** @brief Dissolved Oxygen Concentration Measurement Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfDissolvedOxygenConcentrationMeasurementClusterClientTickCallback(uint8_t endpoint); -/** @brief Dissolved Oxygen Concentration Measurement Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfDissolvedOxygenConcentrationMeasurementClusterServerAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId); -/** @brief Dissolved Oxygen Concentration Measurement Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfDissolvedOxygenConcentrationMeasurementClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Dissolved Oxygen Concentration Measurement Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfDissolvedOxygenConcentrationMeasurementClusterServerInitCallback(uint8_t endpoint); -/** @brief Dissolved Oxygen Concentration Measurement Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfDissolvedOxygenConcentrationMeasurementClusterServerManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Dissolved Oxygen Concentration Measurement Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfDissolvedOxygenConcentrationMeasurementClusterServerMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, - uint8_t * message, EmberStatus status); -/** @brief Dissolved Oxygen Concentration Measurement Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfDissolvedOxygenConcentrationMeasurementClusterServerPreAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, EmberAfAttributeType attributeType, uint8_t size, uint8_t * value); -/** @brief Dissolved Oxygen Concentration Measurement Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfDissolvedOxygenConcentrationMeasurementClusterServerTickCallback(uint8_t endpoint); - -/** @} END Dissolved Oxygen Concentration Measurement Cluster Callbacks */ - -/** @name Bromate Concentration Measurement Cluster Callbacks */ -// @{ - -/** @brief Bromate Concentration Measurement Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfBromateConcentrationMeasurementClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Bromate Concentration Measurement Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfBromateConcentrationMeasurementClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Bromate Concentration Measurement Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfBromateConcentrationMeasurementClusterClientInitCallback(uint8_t endpoint); -/** @brief Bromate Concentration Measurement Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfBromateConcentrationMeasurementClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Bromate Concentration Measurement Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfBromateConcentrationMeasurementClusterClientMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, EmberApsFrame * apsFrame, - uint16_t msgLen, uint8_t * message, EmberStatus status); -/** @brief Bromate Concentration Measurement Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfBromateConcentrationMeasurementClusterClientPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Bromate Concentration Measurement Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfBromateConcentrationMeasurementClusterClientTickCallback(uint8_t endpoint); -/** @brief Bromate Concentration Measurement Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfBromateConcentrationMeasurementClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Bromate Concentration Measurement Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfBromateConcentrationMeasurementClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Bromate Concentration Measurement Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfBromateConcentrationMeasurementClusterServerInitCallback(uint8_t endpoint); -/** @brief Bromate Concentration Measurement Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfBromateConcentrationMeasurementClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Bromate Concentration Measurement Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfBromateConcentrationMeasurementClusterServerMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, EmberApsFrame * apsFrame, - uint16_t msgLen, uint8_t * message, EmberStatus status); -/** @brief Bromate Concentration Measurement Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfBromateConcentrationMeasurementClusterServerPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Bromate Concentration Measurement Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfBromateConcentrationMeasurementClusterServerTickCallback(uint8_t endpoint); - -/** @} END Bromate Concentration Measurement Cluster Callbacks */ - -/** @name Chloramines Concentration Measurement Cluster Callbacks */ -// @{ - -/** @brief Chloramines Concentration Measurement Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfChloraminesConcentrationMeasurementClusterClientAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId); -/** @brief Chloramines Concentration Measurement Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfChloraminesConcentrationMeasurementClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Chloramines Concentration Measurement Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfChloraminesConcentrationMeasurementClusterClientInitCallback(uint8_t endpoint); -/** @brief Chloramines Concentration Measurement Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfChloraminesConcentrationMeasurementClusterClientManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Chloramines Concentration Measurement Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfChloraminesConcentrationMeasurementClusterClientMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, - uint8_t * message, EmberStatus status); -/** @brief Chloramines Concentration Measurement Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfChloraminesConcentrationMeasurementClusterClientPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Chloramines Concentration Measurement Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfChloraminesConcentrationMeasurementClusterClientTickCallback(uint8_t endpoint); -/** @brief Chloramines Concentration Measurement Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfChloraminesConcentrationMeasurementClusterServerAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId); -/** @brief Chloramines Concentration Measurement Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfChloraminesConcentrationMeasurementClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Chloramines Concentration Measurement Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfChloraminesConcentrationMeasurementClusterServerInitCallback(uint8_t endpoint); -/** @brief Chloramines Concentration Measurement Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfChloraminesConcentrationMeasurementClusterServerManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Chloramines Concentration Measurement Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfChloraminesConcentrationMeasurementClusterServerMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, - uint8_t * message, EmberStatus status); -/** @brief Chloramines Concentration Measurement Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfChloraminesConcentrationMeasurementClusterServerPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Chloramines Concentration Measurement Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfChloraminesConcentrationMeasurementClusterServerTickCallback(uint8_t endpoint); - -/** @} END Chloramines Concentration Measurement Cluster Callbacks */ - -/** @name Chlorine Concentration Measurement Cluster Callbacks */ -// @{ - -/** @brief Chlorine Concentration Measurement Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfChlorineConcentrationMeasurementClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Chlorine Concentration Measurement Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfChlorineConcentrationMeasurementClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Chlorine Concentration Measurement Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfChlorineConcentrationMeasurementClusterClientInitCallback(uint8_t endpoint); -/** @brief Chlorine Concentration Measurement Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfChlorineConcentrationMeasurementClusterClientManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Chlorine Concentration Measurement Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfChlorineConcentrationMeasurementClusterClientMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, EmberApsFrame * apsFrame, - uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Chlorine Concentration Measurement Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfChlorineConcentrationMeasurementClusterClientPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Chlorine Concentration Measurement Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfChlorineConcentrationMeasurementClusterClientTickCallback(uint8_t endpoint); -/** @brief Chlorine Concentration Measurement Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfChlorineConcentrationMeasurementClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Chlorine Concentration Measurement Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfChlorineConcentrationMeasurementClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Chlorine Concentration Measurement Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfChlorineConcentrationMeasurementClusterServerInitCallback(uint8_t endpoint); -/** @brief Chlorine Concentration Measurement Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfChlorineConcentrationMeasurementClusterServerManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Chlorine Concentration Measurement Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfChlorineConcentrationMeasurementClusterServerMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, EmberApsFrame * apsFrame, - uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Chlorine Concentration Measurement Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfChlorineConcentrationMeasurementClusterServerPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Chlorine Concentration Measurement Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfChlorineConcentrationMeasurementClusterServerTickCallback(uint8_t endpoint); - -/** @} END Chlorine Concentration Measurement Cluster Callbacks */ - -/** @name Fecal coliform and E. Coli Concentration Measurement Cluster Callbacks */ -// @{ - -/** @brief Fecal coliform and E. Coli Concentration Measurement Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfFecalColiformAndEColiConcentrationMeasurementClusterClientAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId); -/** @brief Fecal coliform and E. Coli Concentration Measurement Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfFecalColiformAndEColiConcentrationMeasurementClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Fecal coliform and E. Coli Concentration Measurement Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfFecalColiformAndEColiConcentrationMeasurementClusterClientInitCallback(uint8_t endpoint); -/** @brief Fecal coliform and E. Coli Concentration Measurement Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfFecalColiformAndEColiConcentrationMeasurementClusterClientManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Fecal coliform and E. Coli Concentration Measurement Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfFecalColiformAndEColiConcentrationMeasurementClusterClientMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, - uint8_t * message, EmberStatus status); -/** @brief Fecal coliform and E. Coli Concentration Measurement Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfFecalColiformAndEColiConcentrationMeasurementClusterClientPreAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, EmberAfAttributeType attributeType, uint8_t size, uint8_t * value); -/** @brief Fecal coliform and E. Coli Concentration Measurement Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfFecalColiformAndEColiConcentrationMeasurementClusterClientTickCallback(uint8_t endpoint); -/** @brief Fecal coliform and E. Coli Concentration Measurement Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfFecalColiformAndEColiConcentrationMeasurementClusterServerAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId); -/** @brief Fecal coliform and E. Coli Concentration Measurement Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfFecalColiformAndEColiConcentrationMeasurementClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Fecal coliform and E. Coli Concentration Measurement Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfFecalColiformAndEColiConcentrationMeasurementClusterServerInitCallback(uint8_t endpoint); -/** @brief Fecal coliform and E. Coli Concentration Measurement Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfFecalColiformAndEColiConcentrationMeasurementClusterServerManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Fecal coliform and E. Coli Concentration Measurement Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfFecalColiformAndEColiConcentrationMeasurementClusterServerMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, - uint8_t * message, EmberStatus status); -/** @brief Fecal coliform and E. Coli Concentration Measurement Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfFecalColiformAndEColiConcentrationMeasurementClusterServerPreAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, EmberAfAttributeType attributeType, uint8_t size, uint8_t * value); -/** @brief Fecal coliform and E. Coli Concentration Measurement Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfFecalColiformAndEColiConcentrationMeasurementClusterServerTickCallback(uint8_t endpoint); - -/** @} END Fecal coliform and E. Coli Concentration Measurement Cluster Callbacks */ - -/** @name Fluoride Concentration Measurement Cluster Callbacks */ -// @{ - -/** @brief Fluoride Concentration Measurement Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfFluorideConcentrationMeasurementClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Fluoride Concentration Measurement Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfFluorideConcentrationMeasurementClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Fluoride Concentration Measurement Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfFluorideConcentrationMeasurementClusterClientInitCallback(uint8_t endpoint); -/** @brief Fluoride Concentration Measurement Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfFluorideConcentrationMeasurementClusterClientManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Fluoride Concentration Measurement Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfFluorideConcentrationMeasurementClusterClientMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, EmberApsFrame * apsFrame, - uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Fluoride Concentration Measurement Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfFluorideConcentrationMeasurementClusterClientPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Fluoride Concentration Measurement Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfFluorideConcentrationMeasurementClusterClientTickCallback(uint8_t endpoint); -/** @brief Fluoride Concentration Measurement Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfFluorideConcentrationMeasurementClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Fluoride Concentration Measurement Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfFluorideConcentrationMeasurementClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Fluoride Concentration Measurement Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfFluorideConcentrationMeasurementClusterServerInitCallback(uint8_t endpoint); -/** @brief Fluoride Concentration Measurement Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfFluorideConcentrationMeasurementClusterServerManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Fluoride Concentration Measurement Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfFluorideConcentrationMeasurementClusterServerMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, EmberApsFrame * apsFrame, - uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Fluoride Concentration Measurement Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfFluorideConcentrationMeasurementClusterServerPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Fluoride Concentration Measurement Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfFluorideConcentrationMeasurementClusterServerTickCallback(uint8_t endpoint); - -/** @} END Fluoride Concentration Measurement Cluster Callbacks */ - -/** @name Haloacetic Acids Concentration Measurement Cluster Callbacks */ -// @{ - -/** @brief Haloacetic Acids Concentration Measurement Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfHaloaceticAcidsConcentrationMeasurementClusterClientAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId); -/** @brief Haloacetic Acids Concentration Measurement Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfHaloaceticAcidsConcentrationMeasurementClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Haloacetic Acids Concentration Measurement Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfHaloaceticAcidsConcentrationMeasurementClusterClientInitCallback(uint8_t endpoint); -/** @brief Haloacetic Acids Concentration Measurement Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfHaloaceticAcidsConcentrationMeasurementClusterClientManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Haloacetic Acids Concentration Measurement Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfHaloaceticAcidsConcentrationMeasurementClusterClientMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, - uint8_t * message, EmberStatus status); -/** @brief Haloacetic Acids Concentration Measurement Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfHaloaceticAcidsConcentrationMeasurementClusterClientPreAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, EmberAfAttributeType attributeType, uint8_t size, uint8_t * value); -/** @brief Haloacetic Acids Concentration Measurement Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfHaloaceticAcidsConcentrationMeasurementClusterClientTickCallback(uint8_t endpoint); -/** @brief Haloacetic Acids Concentration Measurement Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfHaloaceticAcidsConcentrationMeasurementClusterServerAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId); -/** @brief Haloacetic Acids Concentration Measurement Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfHaloaceticAcidsConcentrationMeasurementClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Haloacetic Acids Concentration Measurement Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfHaloaceticAcidsConcentrationMeasurementClusterServerInitCallback(uint8_t endpoint); -/** @brief Haloacetic Acids Concentration Measurement Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfHaloaceticAcidsConcentrationMeasurementClusterServerManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Haloacetic Acids Concentration Measurement Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfHaloaceticAcidsConcentrationMeasurementClusterServerMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, - uint8_t * message, EmberStatus status); -/** @brief Haloacetic Acids Concentration Measurement Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfHaloaceticAcidsConcentrationMeasurementClusterServerPreAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, EmberAfAttributeType attributeType, uint8_t size, uint8_t * value); -/** @brief Haloacetic Acids Concentration Measurement Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfHaloaceticAcidsConcentrationMeasurementClusterServerTickCallback(uint8_t endpoint); - -/** @} END Haloacetic Acids Concentration Measurement Cluster Callbacks */ - -/** @name Total Trihalomethanes Concentration Measurement Cluster Callbacks */ -// @{ - -/** @brief Total Trihalomethanes Concentration Measurement Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfTotalTrihalomethanesConcentrationMeasurementClusterClientAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId); -/** @brief Total Trihalomethanes Concentration Measurement Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfTotalTrihalomethanesConcentrationMeasurementClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Total Trihalomethanes Concentration Measurement Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfTotalTrihalomethanesConcentrationMeasurementClusterClientInitCallback(uint8_t endpoint); -/** @brief Total Trihalomethanes Concentration Measurement Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfTotalTrihalomethanesConcentrationMeasurementClusterClientManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Total Trihalomethanes Concentration Measurement Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfTotalTrihalomethanesConcentrationMeasurementClusterClientMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, - uint8_t * message, EmberStatus status); -/** @brief Total Trihalomethanes Concentration Measurement Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfTotalTrihalomethanesConcentrationMeasurementClusterClientPreAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, EmberAfAttributeType attributeType, uint8_t size, uint8_t * value); -/** @brief Total Trihalomethanes Concentration Measurement Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfTotalTrihalomethanesConcentrationMeasurementClusterClientTickCallback(uint8_t endpoint); -/** @brief Total Trihalomethanes Concentration Measurement Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfTotalTrihalomethanesConcentrationMeasurementClusterServerAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId); -/** @brief Total Trihalomethanes Concentration Measurement Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfTotalTrihalomethanesConcentrationMeasurementClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Total Trihalomethanes Concentration Measurement Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfTotalTrihalomethanesConcentrationMeasurementClusterServerInitCallback(uint8_t endpoint); -/** @brief Total Trihalomethanes Concentration Measurement Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfTotalTrihalomethanesConcentrationMeasurementClusterServerManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Total Trihalomethanes Concentration Measurement Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfTotalTrihalomethanesConcentrationMeasurementClusterServerMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, - uint8_t * message, EmberStatus status); -/** @brief Total Trihalomethanes Concentration Measurement Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfTotalTrihalomethanesConcentrationMeasurementClusterServerPreAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, EmberAfAttributeType attributeType, uint8_t size, uint8_t * value); -/** @brief Total Trihalomethanes Concentration Measurement Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfTotalTrihalomethanesConcentrationMeasurementClusterServerTickCallback(uint8_t endpoint); - -/** @} END Total Trihalomethanes Concentration Measurement Cluster Callbacks */ - -/** @name Total Coliform Bacteria Concentration Measurement Cluster Callbacks */ -// @{ - -/** @brief Total Coliform Bacteria Concentration Measurement Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfTotalColiformBacteriaConcentrationMeasurementClusterClientAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId); -/** @brief Total Coliform Bacteria Concentration Measurement Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfTotalColiformBacteriaConcentrationMeasurementClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Total Coliform Bacteria Concentration Measurement Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfTotalColiformBacteriaConcentrationMeasurementClusterClientInitCallback(uint8_t endpoint); -/** @brief Total Coliform Bacteria Concentration Measurement Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfTotalColiformBacteriaConcentrationMeasurementClusterClientManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Total Coliform Bacteria Concentration Measurement Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfTotalColiformBacteriaConcentrationMeasurementClusterClientMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, - uint8_t * message, EmberStatus status); -/** @brief Total Coliform Bacteria Concentration Measurement Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfTotalColiformBacteriaConcentrationMeasurementClusterClientPreAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, EmberAfAttributeType attributeType, uint8_t size, uint8_t * value); -/** @brief Total Coliform Bacteria Concentration Measurement Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfTotalColiformBacteriaConcentrationMeasurementClusterClientTickCallback(uint8_t endpoint); -/** @brief Total Coliform Bacteria Concentration Measurement Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfTotalColiformBacteriaConcentrationMeasurementClusterServerAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId); -/** @brief Total Coliform Bacteria Concentration Measurement Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfTotalColiformBacteriaConcentrationMeasurementClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Total Coliform Bacteria Concentration Measurement Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfTotalColiformBacteriaConcentrationMeasurementClusterServerInitCallback(uint8_t endpoint); -/** @brief Total Coliform Bacteria Concentration Measurement Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfTotalColiformBacteriaConcentrationMeasurementClusterServerManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Total Coliform Bacteria Concentration Measurement Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfTotalColiformBacteriaConcentrationMeasurementClusterServerMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, - uint8_t * message, EmberStatus status); -/** @brief Total Coliform Bacteria Concentration Measurement Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfTotalColiformBacteriaConcentrationMeasurementClusterServerPreAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, EmberAfAttributeType attributeType, uint8_t size, uint8_t * value); -/** @brief Total Coliform Bacteria Concentration Measurement Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfTotalColiformBacteriaConcentrationMeasurementClusterServerTickCallback(uint8_t endpoint); - -/** @} END Total Coliform Bacteria Concentration Measurement Cluster Callbacks */ - -/** @name Turbidity Concentration Measurement Cluster Callbacks */ -// @{ - -/** @brief Turbidity Concentration Measurement Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfTurbidityConcentrationMeasurementClusterClientAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId); -/** @brief Turbidity Concentration Measurement Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfTurbidityConcentrationMeasurementClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Turbidity Concentration Measurement Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfTurbidityConcentrationMeasurementClusterClientInitCallback(uint8_t endpoint); -/** @brief Turbidity Concentration Measurement Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfTurbidityConcentrationMeasurementClusterClientManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Turbidity Concentration Measurement Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfTurbidityConcentrationMeasurementClusterClientMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, EmberApsFrame * apsFrame, - uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Turbidity Concentration Measurement Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfTurbidityConcentrationMeasurementClusterClientPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Turbidity Concentration Measurement Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfTurbidityConcentrationMeasurementClusterClientTickCallback(uint8_t endpoint); -/** @brief Turbidity Concentration Measurement Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfTurbidityConcentrationMeasurementClusterServerAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId); -/** @brief Turbidity Concentration Measurement Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfTurbidityConcentrationMeasurementClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Turbidity Concentration Measurement Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfTurbidityConcentrationMeasurementClusterServerInitCallback(uint8_t endpoint); -/** @brief Turbidity Concentration Measurement Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfTurbidityConcentrationMeasurementClusterServerManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Turbidity Concentration Measurement Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfTurbidityConcentrationMeasurementClusterServerMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, EmberApsFrame * apsFrame, - uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Turbidity Concentration Measurement Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfTurbidityConcentrationMeasurementClusterServerPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Turbidity Concentration Measurement Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfTurbidityConcentrationMeasurementClusterServerTickCallback(uint8_t endpoint); - -/** @} END Turbidity Concentration Measurement Cluster Callbacks */ - -/** @name Copper Concentration Measurement Cluster Callbacks */ -// @{ - -/** @brief Copper Concentration Measurement Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfCopperConcentrationMeasurementClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Copper Concentration Measurement Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfCopperConcentrationMeasurementClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Copper Concentration Measurement Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfCopperConcentrationMeasurementClusterClientInitCallback(uint8_t endpoint); -/** @brief Copper Concentration Measurement Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfCopperConcentrationMeasurementClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Copper Concentration Measurement Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfCopperConcentrationMeasurementClusterClientMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, EmberApsFrame * apsFrame, - uint16_t msgLen, uint8_t * message, EmberStatus status); -/** @brief Copper Concentration Measurement Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfCopperConcentrationMeasurementClusterClientPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Copper Concentration Measurement Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfCopperConcentrationMeasurementClusterClientTickCallback(uint8_t endpoint); -/** @brief Copper Concentration Measurement Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfCopperConcentrationMeasurementClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Copper Concentration Measurement Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfCopperConcentrationMeasurementClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Copper Concentration Measurement Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfCopperConcentrationMeasurementClusterServerInitCallback(uint8_t endpoint); -/** @brief Copper Concentration Measurement Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfCopperConcentrationMeasurementClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Copper Concentration Measurement Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfCopperConcentrationMeasurementClusterServerMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, EmberApsFrame * apsFrame, - uint16_t msgLen, uint8_t * message, EmberStatus status); -/** @brief Copper Concentration Measurement Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfCopperConcentrationMeasurementClusterServerPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Copper Concentration Measurement Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfCopperConcentrationMeasurementClusterServerTickCallback(uint8_t endpoint); - -/** @} END Copper Concentration Measurement Cluster Callbacks */ - -/** @name Lead Concentration Measurement Cluster Callbacks */ -// @{ - -/** @brief Lead Concentration Measurement Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfLeadConcentrationMeasurementClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Lead Concentration Measurement Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfLeadConcentrationMeasurementClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Lead Concentration Measurement Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfLeadConcentrationMeasurementClusterClientInitCallback(uint8_t endpoint); -/** @brief Lead Concentration Measurement Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfLeadConcentrationMeasurementClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Lead Concentration Measurement Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfLeadConcentrationMeasurementClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, - uint8_t * message, EmberStatus status); -/** @brief Lead Concentration Measurement Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfLeadConcentrationMeasurementClusterClientPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Lead Concentration Measurement Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfLeadConcentrationMeasurementClusterClientTickCallback(uint8_t endpoint); -/** @brief Lead Concentration Measurement Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfLeadConcentrationMeasurementClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Lead Concentration Measurement Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfLeadConcentrationMeasurementClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Lead Concentration Measurement Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfLeadConcentrationMeasurementClusterServerInitCallback(uint8_t endpoint); -/** @brief Lead Concentration Measurement Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfLeadConcentrationMeasurementClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Lead Concentration Measurement Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfLeadConcentrationMeasurementClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, - uint8_t * message, EmberStatus status); -/** @brief Lead Concentration Measurement Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfLeadConcentrationMeasurementClusterServerPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Lead Concentration Measurement Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfLeadConcentrationMeasurementClusterServerTickCallback(uint8_t endpoint); - -/** @} END Lead Concentration Measurement Cluster Callbacks */ - -/** @name Manganese Concentration Measurement Cluster Callbacks */ -// @{ - -/** @brief Manganese Concentration Measurement Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfManganeseConcentrationMeasurementClusterClientAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId); -/** @brief Manganese Concentration Measurement Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfManganeseConcentrationMeasurementClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Manganese Concentration Measurement Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfManganeseConcentrationMeasurementClusterClientInitCallback(uint8_t endpoint); -/** @brief Manganese Concentration Measurement Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfManganeseConcentrationMeasurementClusterClientManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Manganese Concentration Measurement Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfManganeseConcentrationMeasurementClusterClientMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, EmberApsFrame * apsFrame, - uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Manganese Concentration Measurement Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfManganeseConcentrationMeasurementClusterClientPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Manganese Concentration Measurement Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfManganeseConcentrationMeasurementClusterClientTickCallback(uint8_t endpoint); -/** @brief Manganese Concentration Measurement Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfManganeseConcentrationMeasurementClusterServerAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId); -/** @brief Manganese Concentration Measurement Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfManganeseConcentrationMeasurementClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Manganese Concentration Measurement Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfManganeseConcentrationMeasurementClusterServerInitCallback(uint8_t endpoint); -/** @brief Manganese Concentration Measurement Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfManganeseConcentrationMeasurementClusterServerManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Manganese Concentration Measurement Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfManganeseConcentrationMeasurementClusterServerMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, EmberApsFrame * apsFrame, - uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Manganese Concentration Measurement Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfManganeseConcentrationMeasurementClusterServerPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Manganese Concentration Measurement Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfManganeseConcentrationMeasurementClusterServerTickCallback(uint8_t endpoint); - -/** @} END Manganese Concentration Measurement Cluster Callbacks */ - -/** @name Sulfate Concentration Measurement Cluster Callbacks */ -// @{ - -/** @brief Sulfate Concentration Measurement Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfSulfateConcentrationMeasurementClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Sulfate Concentration Measurement Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfSulfateConcentrationMeasurementClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Sulfate Concentration Measurement Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfSulfateConcentrationMeasurementClusterClientInitCallback(uint8_t endpoint); -/** @brief Sulfate Concentration Measurement Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfSulfateConcentrationMeasurementClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Sulfate Concentration Measurement Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfSulfateConcentrationMeasurementClusterClientMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, EmberApsFrame * apsFrame, - uint16_t msgLen, uint8_t * message, EmberStatus status); -/** @brief Sulfate Concentration Measurement Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfSulfateConcentrationMeasurementClusterClientPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Sulfate Concentration Measurement Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfSulfateConcentrationMeasurementClusterClientTickCallback(uint8_t endpoint); -/** @brief Sulfate Concentration Measurement Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfSulfateConcentrationMeasurementClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Sulfate Concentration Measurement Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfSulfateConcentrationMeasurementClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Sulfate Concentration Measurement Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfSulfateConcentrationMeasurementClusterServerInitCallback(uint8_t endpoint); -/** @brief Sulfate Concentration Measurement Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfSulfateConcentrationMeasurementClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Sulfate Concentration Measurement Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfSulfateConcentrationMeasurementClusterServerMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, EmberApsFrame * apsFrame, - uint16_t msgLen, uint8_t * message, EmberStatus status); -/** @brief Sulfate Concentration Measurement Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfSulfateConcentrationMeasurementClusterServerPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Sulfate Concentration Measurement Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfSulfateConcentrationMeasurementClusterServerTickCallback(uint8_t endpoint); - -/** @} END Sulfate Concentration Measurement Cluster Callbacks */ - -/** @name Bromodichloromethane Concentration Measurement Cluster Callbacks */ -// @{ - -/** @brief Bromodichloromethane Concentration Measurement Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfBromodichloromethaneConcentrationMeasurementClusterClientAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId); -/** @brief Bromodichloromethane Concentration Measurement Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfBromodichloromethaneConcentrationMeasurementClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Bromodichloromethane Concentration Measurement Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfBromodichloromethaneConcentrationMeasurementClusterClientInitCallback(uint8_t endpoint); -/** @brief Bromodichloromethane Concentration Measurement Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfBromodichloromethaneConcentrationMeasurementClusterClientManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Bromodichloromethane Concentration Measurement Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfBromodichloromethaneConcentrationMeasurementClusterClientMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, - uint8_t * message, EmberStatus status); -/** @brief Bromodichloromethane Concentration Measurement Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfBromodichloromethaneConcentrationMeasurementClusterClientPreAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, EmberAfAttributeType attributeType, uint8_t size, uint8_t * value); -/** @brief Bromodichloromethane Concentration Measurement Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfBromodichloromethaneConcentrationMeasurementClusterClientTickCallback(uint8_t endpoint); -/** @brief Bromodichloromethane Concentration Measurement Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfBromodichloromethaneConcentrationMeasurementClusterServerAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId); -/** @brief Bromodichloromethane Concentration Measurement Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfBromodichloromethaneConcentrationMeasurementClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Bromodichloromethane Concentration Measurement Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfBromodichloromethaneConcentrationMeasurementClusterServerInitCallback(uint8_t endpoint); -/** @brief Bromodichloromethane Concentration Measurement Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfBromodichloromethaneConcentrationMeasurementClusterServerManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Bromodichloromethane Concentration Measurement Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfBromodichloromethaneConcentrationMeasurementClusterServerMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, - uint8_t * message, EmberStatus status); -/** @brief Bromodichloromethane Concentration Measurement Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfBromodichloromethaneConcentrationMeasurementClusterServerPreAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, EmberAfAttributeType attributeType, uint8_t size, uint8_t * value); -/** @brief Bromodichloromethane Concentration Measurement Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfBromodichloromethaneConcentrationMeasurementClusterServerTickCallback(uint8_t endpoint); - -/** @} END Bromodichloromethane Concentration Measurement Cluster Callbacks */ - -/** @name Bromoform Concentration Measurement Cluster Callbacks */ -// @{ - -/** @brief Bromoform Concentration Measurement Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfBromoformConcentrationMeasurementClusterClientAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId); -/** @brief Bromoform Concentration Measurement Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfBromoformConcentrationMeasurementClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Bromoform Concentration Measurement Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfBromoformConcentrationMeasurementClusterClientInitCallback(uint8_t endpoint); -/** @brief Bromoform Concentration Measurement Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfBromoformConcentrationMeasurementClusterClientManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Bromoform Concentration Measurement Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfBromoformConcentrationMeasurementClusterClientMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, EmberApsFrame * apsFrame, - uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Bromoform Concentration Measurement Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfBromoformConcentrationMeasurementClusterClientPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Bromoform Concentration Measurement Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfBromoformConcentrationMeasurementClusterClientTickCallback(uint8_t endpoint); -/** @brief Bromoform Concentration Measurement Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfBromoformConcentrationMeasurementClusterServerAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId); -/** @brief Bromoform Concentration Measurement Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfBromoformConcentrationMeasurementClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Bromoform Concentration Measurement Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfBromoformConcentrationMeasurementClusterServerInitCallback(uint8_t endpoint); -/** @brief Bromoform Concentration Measurement Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfBromoformConcentrationMeasurementClusterServerManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Bromoform Concentration Measurement Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfBromoformConcentrationMeasurementClusterServerMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, EmberApsFrame * apsFrame, - uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Bromoform Concentration Measurement Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfBromoformConcentrationMeasurementClusterServerPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Bromoform Concentration Measurement Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfBromoformConcentrationMeasurementClusterServerTickCallback(uint8_t endpoint); - -/** @} END Bromoform Concentration Measurement Cluster Callbacks */ - -/** @name Chlorodibromomethane Concentration Measurement Cluster Callbacks */ -// @{ - -/** @brief Chlorodibromomethane Concentration Measurement Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfChlorodibromomethaneConcentrationMeasurementClusterClientAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId); -/** @brief Chlorodibromomethane Concentration Measurement Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfChlorodibromomethaneConcentrationMeasurementClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Chlorodibromomethane Concentration Measurement Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfChlorodibromomethaneConcentrationMeasurementClusterClientInitCallback(uint8_t endpoint); -/** @brief Chlorodibromomethane Concentration Measurement Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfChlorodibromomethaneConcentrationMeasurementClusterClientManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Chlorodibromomethane Concentration Measurement Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfChlorodibromomethaneConcentrationMeasurementClusterClientMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, - uint8_t * message, EmberStatus status); -/** @brief Chlorodibromomethane Concentration Measurement Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfChlorodibromomethaneConcentrationMeasurementClusterClientPreAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, EmberAfAttributeType attributeType, uint8_t size, uint8_t * value); -/** @brief Chlorodibromomethane Concentration Measurement Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfChlorodibromomethaneConcentrationMeasurementClusterClientTickCallback(uint8_t endpoint); -/** @brief Chlorodibromomethane Concentration Measurement Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfChlorodibromomethaneConcentrationMeasurementClusterServerAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId); -/** @brief Chlorodibromomethane Concentration Measurement Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfChlorodibromomethaneConcentrationMeasurementClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Chlorodibromomethane Concentration Measurement Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfChlorodibromomethaneConcentrationMeasurementClusterServerInitCallback(uint8_t endpoint); -/** @brief Chlorodibromomethane Concentration Measurement Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfChlorodibromomethaneConcentrationMeasurementClusterServerManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Chlorodibromomethane Concentration Measurement Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfChlorodibromomethaneConcentrationMeasurementClusterServerMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, - uint8_t * message, EmberStatus status); -/** @brief Chlorodibromomethane Concentration Measurement Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfChlorodibromomethaneConcentrationMeasurementClusterServerPreAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, EmberAfAttributeType attributeType, uint8_t size, uint8_t * value); -/** @brief Chlorodibromomethane Concentration Measurement Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfChlorodibromomethaneConcentrationMeasurementClusterServerTickCallback(uint8_t endpoint); - -/** @} END Chlorodibromomethane Concentration Measurement Cluster Callbacks */ - -/** @name Chloroform Concentration Measurement Cluster Callbacks */ -// @{ - -/** @brief Chloroform Concentration Measurement Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfChloroformConcentrationMeasurementClusterClientAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId); -/** @brief Chloroform Concentration Measurement Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfChloroformConcentrationMeasurementClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Chloroform Concentration Measurement Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfChloroformConcentrationMeasurementClusterClientInitCallback(uint8_t endpoint); -/** @brief Chloroform Concentration Measurement Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfChloroformConcentrationMeasurementClusterClientManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Chloroform Concentration Measurement Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfChloroformConcentrationMeasurementClusterClientMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, - uint8_t * message, EmberStatus status); -/** @brief Chloroform Concentration Measurement Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfChloroformConcentrationMeasurementClusterClientPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Chloroform Concentration Measurement Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfChloroformConcentrationMeasurementClusterClientTickCallback(uint8_t endpoint); -/** @brief Chloroform Concentration Measurement Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfChloroformConcentrationMeasurementClusterServerAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId); -/** @brief Chloroform Concentration Measurement Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfChloroformConcentrationMeasurementClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Chloroform Concentration Measurement Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfChloroformConcentrationMeasurementClusterServerInitCallback(uint8_t endpoint); -/** @brief Chloroform Concentration Measurement Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfChloroformConcentrationMeasurementClusterServerManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Chloroform Concentration Measurement Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfChloroformConcentrationMeasurementClusterServerMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, - uint8_t * message, EmberStatus status); -/** @brief Chloroform Concentration Measurement Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfChloroformConcentrationMeasurementClusterServerPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Chloroform Concentration Measurement Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfChloroformConcentrationMeasurementClusterServerTickCallback(uint8_t endpoint); - -/** @} END Chloroform Concentration Measurement Cluster Callbacks */ - -/** @name Sodium Concentration Measurement Cluster Callbacks */ -// @{ - -/** @brief Sodium Concentration Measurement Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfSodiumConcentrationMeasurementClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Sodium Concentration Measurement Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfSodiumConcentrationMeasurementClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Sodium Concentration Measurement Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfSodiumConcentrationMeasurementClusterClientInitCallback(uint8_t endpoint); -/** @brief Sodium Concentration Measurement Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfSodiumConcentrationMeasurementClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Sodium Concentration Measurement Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfSodiumConcentrationMeasurementClusterClientMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, EmberApsFrame * apsFrame, - uint16_t msgLen, uint8_t * message, EmberStatus status); -/** @brief Sodium Concentration Measurement Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfSodiumConcentrationMeasurementClusterClientPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Sodium Concentration Measurement Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfSodiumConcentrationMeasurementClusterClientTickCallback(uint8_t endpoint); -/** @brief Sodium Concentration Measurement Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfSodiumConcentrationMeasurementClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Sodium Concentration Measurement Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfSodiumConcentrationMeasurementClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Sodium Concentration Measurement Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfSodiumConcentrationMeasurementClusterServerInitCallback(uint8_t endpoint); -/** @brief Sodium Concentration Measurement Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfSodiumConcentrationMeasurementClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Sodium Concentration Measurement Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfSodiumConcentrationMeasurementClusterServerMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, EmberApsFrame * apsFrame, - uint16_t msgLen, uint8_t * message, EmberStatus status); -/** @brief Sodium Concentration Measurement Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfSodiumConcentrationMeasurementClusterServerPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Sodium Concentration Measurement Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfSodiumConcentrationMeasurementClusterServerTickCallback(uint8_t endpoint); - -/** @} END Sodium Concentration Measurement Cluster Callbacks */ - -/** @name IAS Zone Cluster Callbacks */ -// @{ - -/** @brief IAS Zone Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfIasZoneClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief IAS Zone Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfIasZoneClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief IAS Zone Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfIasZoneClusterClientInitCallback(uint8_t endpoint); -/** @brief IAS Zone Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfIasZoneClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief IAS Zone Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfIasZoneClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief IAS Zone Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfIasZoneClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief IAS Zone Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfIasZoneClusterClientTickCallback(uint8_t endpoint); -/** @brief IAS Zone Cluster Initiate Normal Operation Mode - * - * - * - */ -bool emberAfIasZoneClusterInitiateNormalOperationModeCallback(void); -/** @brief IAS Zone Cluster Initiate Normal Operation Mode Response - * - * - * - */ -bool emberAfIasZoneClusterInitiateNormalOperationModeResponseCallback(void); -/** @brief IAS Zone Cluster Initiate Test Mode - * - * - * - * @param testModeDuration Ver.: always - * @param currentZoneSensitivityLevel Ver.: always - */ -bool emberAfIasZoneClusterInitiateTestModeCallback(uint8_t testModeDuration, uint8_t currentZoneSensitivityLevel); -/** @brief IAS Zone Cluster Initiate Test Mode Response - * - * - * - */ -bool emberAfIasZoneClusterInitiateTestModeResponseCallback(void); -/** @brief IAS Zone Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfIasZoneClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief IAS Zone Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfIasZoneClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief IAS Zone Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfIasZoneClusterServerInitCallback(uint8_t endpoint); -/** @brief IAS Zone Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfIasZoneClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief IAS Zone Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfIasZoneClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief IAS Zone Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfIasZoneClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief IAS Zone Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfIasZoneClusterServerTickCallback(uint8_t endpoint); -/** @brief IAS Zone Cluster Zone Enroll Request - * - * - * - * @param zoneType Ver.: always - * @param manufacturerCode Ver.: always - */ -bool emberAfIasZoneClusterZoneEnrollRequestCallback(uint16_t zoneType, uint16_t manufacturerCode); -/** @brief IAS Zone Cluster Zone Enroll Response - * - * - * - * @param enrollResponseCode Ver.: always - * @param zoneId Ver.: always - */ -bool emberAfIasZoneClusterZoneEnrollResponseCallback(uint8_t enrollResponseCode, uint8_t zoneId); -/** @brief IAS Zone Cluster Zone Status Change Notification - * - * - * - * @param zoneStatus Ver.: always - * @param extendedStatus Ver.: always - * @param zoneId Ver.: since ha-1.2-05-3520-29 - * @param delay Ver.: since ha-1.2-05-3520-29 - */ -bool emberAfIasZoneClusterZoneStatusChangeNotificationCallback(uint16_t zoneStatus, uint8_t extendedStatus, uint8_t zoneId, - uint16_t delay); - -/** @} END IAS Zone Cluster Callbacks */ - -/** @name IAS ACE Cluster Callbacks */ -// @{ - -/** @brief IAS ACE Cluster Arm - * - * - * - * @param armMode Ver.: always - * @param armDisarmCode Ver.: since ha-1.2-05-3520-29 - * @param zoneId Ver.: since ha-1.2-05-3520-29 - */ -bool emberAfIasAceClusterArmCallback(uint8_t armMode, uint8_t * armDisarmCode, uint8_t zoneId); -/** @brief IAS ACE Cluster Arm Response - * - * - * - * @param armNotification Ver.: always - */ -bool emberAfIasAceClusterArmResponseCallback(uint8_t armNotification); -/** @brief IAS ACE Cluster Bypass - * - * - * - * @param numberOfZones Ver.: always - * @param zoneIds Ver.: always - * @param armDisarmCode Ver.: since ha-1.2.1-05-3520-30 - */ -bool emberAfIasAceClusterBypassCallback(uint8_t numberOfZones, uint8_t * zoneIds, uint8_t * armDisarmCode); -/** @brief IAS ACE Cluster Bypass Response - * - * - * - * @param numberOfZones Ver.: always - * @param bypassResult Ver.: always - */ -bool emberAfIasAceClusterBypassResponseCallback(uint8_t numberOfZones, uint8_t * bypassResult); -/** @brief IAS ACE Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfIasAceClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief IAS ACE Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfIasAceClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief IAS ACE Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfIasAceClusterClientInitCallback(uint8_t endpoint); -/** @brief IAS ACE Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfIasAceClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief IAS ACE Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfIasAceClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief IAS ACE Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfIasAceClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief IAS ACE Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfIasAceClusterClientTickCallback(uint8_t endpoint); -/** @brief IAS ACE Cluster Emergency - * - * - * - */ -bool emberAfIasAceClusterEmergencyCallback(void); -/** @brief IAS ACE Cluster Fire - * - * - * - */ -bool emberAfIasAceClusterFireCallback(void); -/** @brief IAS ACE Cluster Get Bypassed Zone List - * - * - * - */ -bool emberAfIasAceClusterGetBypassedZoneListCallback(void); -/** @brief IAS ACE Cluster Get Panel Status - * - * - * - */ -bool emberAfIasAceClusterGetPanelStatusCallback(void); -/** @brief IAS ACE Cluster Get Panel Status Response - * - * - * - * @param panelStatus Ver.: always - * @param secondsRemaining Ver.: always - * @param audibleNotification Ver.: always - * @param alarmStatus Ver.: always - */ -bool emberAfIasAceClusterGetPanelStatusResponseCallback(uint8_t panelStatus, uint8_t secondsRemaining, uint8_t audibleNotification, - uint8_t alarmStatus); -/** @brief IAS ACE Cluster Get Zone Id Map - * - * - * - */ -bool emberAfIasAceClusterGetZoneIdMapCallback(void); -/** @brief IAS ACE Cluster Get Zone Id Map Response - * - * - * - * @param section0 Ver.: always - * @param section1 Ver.: always - * @param section2 Ver.: always - * @param section3 Ver.: always - * @param section4 Ver.: always - * @param section5 Ver.: always - * @param section6 Ver.: always - * @param section7 Ver.: always - * @param section8 Ver.: always - * @param section9 Ver.: always - * @param section10 Ver.: always - * @param section11 Ver.: always - * @param section12 Ver.: always - * @param section13 Ver.: always - * @param section14 Ver.: always - * @param section15 Ver.: always - */ -bool emberAfIasAceClusterGetZoneIdMapResponseCallback(uint16_t section0, uint16_t section1, uint16_t section2, uint16_t section3, - uint16_t section4, uint16_t section5, uint16_t section6, uint16_t section7, - uint16_t section8, uint16_t section9, uint16_t section10, uint16_t section11, - uint16_t section12, uint16_t section13, uint16_t section14, - uint16_t section15); -/** @brief IAS ACE Cluster Get Zone Information - * - * - * - * @param zoneId Ver.: always - */ -bool emberAfIasAceClusterGetZoneInformationCallback(uint8_t zoneId); -/** @brief IAS ACE Cluster Get Zone Information Response - * - * - * - * @param zoneId Ver.: always - * @param zoneType Ver.: always - * @param ieeeAddress Ver.: always - * @param zoneLabel Ver.: since ha-1.2.1-05-3520-30 - */ -bool emberAfIasAceClusterGetZoneInformationResponseCallback(uint8_t zoneId, uint16_t zoneType, uint8_t * ieeeAddress, - uint8_t * zoneLabel); -/** @brief IAS ACE Cluster Get Zone Status - * - * - * - * @param startingZoneId Ver.: always - * @param maxNumberOfZoneIds Ver.: always - * @param zoneStatusMaskFlag Ver.: always - * @param zoneStatusMask Ver.: always - */ -bool emberAfIasAceClusterGetZoneStatusCallback(uint8_t startingZoneId, uint8_t maxNumberOfZoneIds, uint8_t zoneStatusMaskFlag, - uint16_t zoneStatusMask); -/** @brief IAS ACE Cluster Get Zone Status Response - * - * - * - * @param zoneStatusComplete Ver.: always - * @param numberOfZones Ver.: always - * @param zoneStatusResult Ver.: always - */ -bool emberAfIasAceClusterGetZoneStatusResponseCallback(uint8_t zoneStatusComplete, uint8_t numberOfZones, - uint8_t * zoneStatusResult); -/** @brief IAS ACE Cluster Panel Status Changed - * - * - * - * @param panelStatus Ver.: always - * @param secondsRemaining Ver.: always - * @param audibleNotification Ver.: since ha-1.2.1-05-3520-30 - * @param alarmStatus Ver.: since ha-1.2.1-05-3520-30 - */ -bool emberAfIasAceClusterPanelStatusChangedCallback(uint8_t panelStatus, uint8_t secondsRemaining, uint8_t audibleNotification, - uint8_t alarmStatus); -/** @brief IAS ACE Cluster Panic - * - * - * - */ -bool emberAfIasAceClusterPanicCallback(void); -/** @brief IAS ACE Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfIasAceClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief IAS ACE Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfIasAceClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief IAS ACE Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfIasAceClusterServerInitCallback(uint8_t endpoint); -/** @brief IAS ACE Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfIasAceClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief IAS ACE Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfIasAceClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief IAS ACE Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfIasAceClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief IAS ACE Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfIasAceClusterServerTickCallback(uint8_t endpoint); -/** @brief IAS ACE Cluster Set Bypassed Zone List - * - * - * - * @param numberOfZones Ver.: always - * @param zoneIds Ver.: always - */ -bool emberAfIasAceClusterSetBypassedZoneListCallback(uint8_t numberOfZones, uint8_t * zoneIds); -/** @brief IAS ACE Cluster Zone Status Changed - * - * - * - * @param zoneId Ver.: always - * @param zoneStatus Ver.: always - * @param audibleNotification Ver.: since ha-1.2.1-05-3520-30 - * @param zoneLabel Ver.: since ha-1.2.1-05-3520-30 - */ -bool emberAfIasAceClusterZoneStatusChangedCallback(uint8_t zoneId, uint16_t zoneStatus, uint8_t audibleNotification, - uint8_t * zoneLabel); - -/** @} END IAS ACE Cluster Callbacks */ - -/** @name IAS WD Cluster Callbacks */ -// @{ - -/** @brief IAS WD Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfIasWdClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief IAS WD Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfIasWdClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief IAS WD Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfIasWdClusterClientInitCallback(uint8_t endpoint); -/** @brief IAS WD Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfIasWdClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief IAS WD Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfIasWdClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, EmberStatus status); -/** @brief IAS WD Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfIasWdClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief IAS WD Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfIasWdClusterClientTickCallback(uint8_t endpoint); -/** @brief IAS WD Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfIasWdClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief IAS WD Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfIasWdClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief IAS WD Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfIasWdClusterServerInitCallback(uint8_t endpoint); -/** @brief IAS WD Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfIasWdClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief IAS WD Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfIasWdClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, EmberStatus status); -/** @brief IAS WD Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfIasWdClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief IAS WD Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfIasWdClusterServerTickCallback(uint8_t endpoint); -/** @brief IAS WD Cluster Squawk - * - * - * - * @param squawkInfo Ver.: always - */ -bool emberAfIasWdClusterSquawkCallback(uint8_t squawkInfo); -/** @brief IAS WD Cluster Start Warning - * - * - * - * @param warningInfo Ver.: always - * @param warningDuration Ver.: always - * @param strobeDutyCycle Ver.: since ha-1.2-05-3520-29 - * @param strobeLevel Ver.: since ha-1.2-05-3520-29 - */ -bool emberAfIasWdClusterStartWarningCallback(uint8_t warningInfo, uint16_t warningDuration, uint8_t strobeDutyCycle, - uint8_t strobeLevel); - -/** @} END IAS WD Cluster Callbacks */ - -/** @name Generic Tunnel Cluster Callbacks */ -// @{ - -/** @brief Generic Tunnel Cluster Advertise Protocol Address - * - * - * - * @param protocolAddress Ver.: always - */ -bool emberAfGenericTunnelClusterAdvertiseProtocolAddressCallback(uint8_t * protocolAddress); -/** @brief Generic Tunnel Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfGenericTunnelClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Generic Tunnel Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfGenericTunnelClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Generic Tunnel Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfGenericTunnelClusterClientInitCallback(uint8_t endpoint); -/** @brief Generic Tunnel Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfGenericTunnelClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Generic Tunnel Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfGenericTunnelClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Generic Tunnel Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfGenericTunnelClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Generic Tunnel Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfGenericTunnelClusterClientTickCallback(uint8_t endpoint); -/** @brief Generic Tunnel Cluster Match Protocol Address - * - * - * - * @param protocolAddress Ver.: always - */ -bool emberAfGenericTunnelClusterMatchProtocolAddressCallback(uint8_t * protocolAddress); -/** @brief Generic Tunnel Cluster Match Protocol Address Response - * - * - * - * @param deviceIeeeAddress Ver.: always - * @param protocolAddress Ver.: always - */ -bool emberAfGenericTunnelClusterMatchProtocolAddressResponseCallback(uint8_t * deviceIeeeAddress, uint8_t * protocolAddress); -/** @brief Generic Tunnel Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfGenericTunnelClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Generic Tunnel Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfGenericTunnelClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Generic Tunnel Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfGenericTunnelClusterServerInitCallback(uint8_t endpoint); -/** @brief Generic Tunnel Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfGenericTunnelClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Generic Tunnel Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfGenericTunnelClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Generic Tunnel Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfGenericTunnelClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Generic Tunnel Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfGenericTunnelClusterServerTickCallback(uint8_t endpoint); - -/** @} END Generic Tunnel Cluster Callbacks */ - -/** @name BACnet Protocol Tunnel Cluster Callbacks */ -// @{ - -/** @brief BACnet Protocol Tunnel Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfBacnetProtocolTunnelClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief BACnet Protocol Tunnel Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfBacnetProtocolTunnelClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief BACnet Protocol Tunnel Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfBacnetProtocolTunnelClusterClientInitCallback(uint8_t endpoint); -/** @brief BACnet Protocol Tunnel Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfBacnetProtocolTunnelClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief BACnet Protocol Tunnel Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfBacnetProtocolTunnelClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief BACnet Protocol Tunnel Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfBacnetProtocolTunnelClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief BACnet Protocol Tunnel Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfBacnetProtocolTunnelClusterClientTickCallback(uint8_t endpoint); -/** @brief BACnet Protocol Tunnel Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfBacnetProtocolTunnelClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief BACnet Protocol Tunnel Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfBacnetProtocolTunnelClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief BACnet Protocol Tunnel Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfBacnetProtocolTunnelClusterServerInitCallback(uint8_t endpoint); -/** @brief BACnet Protocol Tunnel Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfBacnetProtocolTunnelClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief BACnet Protocol Tunnel Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfBacnetProtocolTunnelClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief BACnet Protocol Tunnel Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfBacnetProtocolTunnelClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief BACnet Protocol Tunnel Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfBacnetProtocolTunnelClusterServerTickCallback(uint8_t endpoint); -/** @brief BACnet Protocol Tunnel Cluster Transfer Npdu - * - * - * - * @param npdu Ver.: always - */ -bool emberAfBacnetProtocolTunnelClusterTransferNpduCallback(uint8_t * npdu); - -/** @} END BACnet Protocol Tunnel Cluster Callbacks */ - -/** @name 11073 Protocol Tunnel Cluster Callbacks */ -// @{ - -/** @brief 11073 Protocol Tunnel Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAf11073ProtocolTunnelClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief 11073 Protocol Tunnel Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAf11073ProtocolTunnelClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief 11073 Protocol Tunnel Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAf11073ProtocolTunnelClusterClientInitCallback(uint8_t endpoint); -/** @brief 11073 Protocol Tunnel Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAf11073ProtocolTunnelClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief 11073 Protocol Tunnel Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAf11073ProtocolTunnelClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief 11073 Protocol Tunnel Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAf11073ProtocolTunnelClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief 11073 Protocol Tunnel Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAf11073ProtocolTunnelClusterClientTickCallback(uint8_t endpoint); -/** @brief 11073 Protocol Tunnel Cluster Connect Request - * - * - * - * @param connectControl Ver.: always - * @param idleTimeout Ver.: always - * @param managerTarget Ver.: always - * @param managerEndpoint Ver.: always - */ -bool emberAf11073ProtocolTunnelClusterConnectRequestCallback(uint8_t connectControl, uint16_t idleTimeout, uint8_t * managerTarget, - uint8_t managerEndpoint); -/** @brief 11073 Protocol Tunnel Cluster Connect Status Notification - * - * - * - * @param connectStatus Ver.: always - */ -bool emberAf11073ProtocolTunnelClusterConnectStatusNotificationCallback(uint8_t connectStatus); -/** @brief 11073 Protocol Tunnel Cluster Disconnect Request - * - * - * - * @param managerIEEEAddress Ver.: always - */ -bool emberAf11073ProtocolTunnelClusterDisconnectRequestCallback(uint8_t * managerIEEEAddress); -/** @brief 11073 Protocol Tunnel Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAf11073ProtocolTunnelClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief 11073 Protocol Tunnel Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAf11073ProtocolTunnelClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief 11073 Protocol Tunnel Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAf11073ProtocolTunnelClusterServerInitCallback(uint8_t endpoint); -/** @brief 11073 Protocol Tunnel Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAf11073ProtocolTunnelClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief 11073 Protocol Tunnel Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAf11073ProtocolTunnelClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief 11073 Protocol Tunnel Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAf11073ProtocolTunnelClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief 11073 Protocol Tunnel Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAf11073ProtocolTunnelClusterServerTickCallback(uint8_t endpoint); -/** @brief 11073 Protocol Tunnel Cluster Transfer A P D U - * - * - * - * @param apdu Ver.: always - */ -bool emberAf11073ProtocolTunnelClusterTransferAPDUCallback(uint8_t * apdu); - -/** @} END 11073 Protocol Tunnel Cluster Callbacks */ - -/** @name ISO 7816 Protocol Tunnel Cluster Callbacks */ -// @{ - -/** @brief ISO 7816 Protocol Tunnel Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfIso7816ProtocolTunnelClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief ISO 7816 Protocol Tunnel Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfIso7816ProtocolTunnelClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief ISO 7816 Protocol Tunnel Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfIso7816ProtocolTunnelClusterClientInitCallback(uint8_t endpoint); -/** @brief ISO 7816 Protocol Tunnel Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfIso7816ProtocolTunnelClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief ISO 7816 Protocol Tunnel Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfIso7816ProtocolTunnelClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief ISO 7816 Protocol Tunnel Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfIso7816ProtocolTunnelClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief ISO 7816 Protocol Tunnel Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfIso7816ProtocolTunnelClusterClientTickCallback(uint8_t endpoint); -/** @brief ISO 7816 Protocol Tunnel Cluster Extract Smart Card - * - * - * - */ -bool emberAfIso7816ProtocolTunnelClusterExtractSmartCardCallback(void); -/** @brief ISO 7816 Protocol Tunnel Cluster Insert Smart Card - * - * - * - */ -bool emberAfIso7816ProtocolTunnelClusterInsertSmartCardCallback(void); -/** @brief ISO 7816 Protocol Tunnel Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfIso7816ProtocolTunnelClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief ISO 7816 Protocol Tunnel Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfIso7816ProtocolTunnelClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief ISO 7816 Protocol Tunnel Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfIso7816ProtocolTunnelClusterServerInitCallback(uint8_t endpoint); -/** @brief ISO 7816 Protocol Tunnel Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfIso7816ProtocolTunnelClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief ISO 7816 Protocol Tunnel Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfIso7816ProtocolTunnelClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief ISO 7816 Protocol Tunnel Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfIso7816ProtocolTunnelClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief ISO 7816 Protocol Tunnel Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfIso7816ProtocolTunnelClusterServerTickCallback(uint8_t endpoint); -/** @brief ISO 7816 Protocol Tunnel Cluster Transfer Apdu - * - * - * - * @param apdu Ver.: always - */ -bool emberAfIso7816ProtocolTunnelClusterTransferApduCallback(uint8_t * apdu); - -/** @} END ISO 7816 Protocol Tunnel Cluster Callbacks */ - -/** @name Price Cluster Callbacks */ -// @{ - -/** @brief Price Cluster Cancel Tariff - * - * - * - * @param providerId Ver.: always - * @param issuerTariffId Ver.: always - * @param tariffType Ver.: always - */ -bool emberAfPriceClusterCancelTariffCallback(uint32_t providerId, uint32_t issuerTariffId, uint8_t tariffType); -/** @brief Price Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfPriceClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Price Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfPriceClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Price Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfPriceClusterClientInitCallback(uint8_t endpoint); -/** @brief Price Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfPriceClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Price Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfPriceClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, EmberStatus status); -/** @brief Price Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfPriceClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Price Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfPriceClusterClientTickCallback(uint8_t endpoint); -/** @brief Price Cluster Cpp Event Response - * - * - * - * @param issuerEventId Ver.: always - * @param cppAuth Ver.: always - */ -bool emberAfPriceClusterCppEventResponseCallback(uint32_t issuerEventId, uint8_t cppAuth); -/** @brief Price Cluster Get Billing Period - * - * - * - * @param earliestStartTime Ver.: always - * @param minIssuerEventId Ver.: always - * @param numberOfCommands Ver.: always - * @param tariffType Ver.: always - */ -bool emberAfPriceClusterGetBillingPeriodCallback(uint32_t earliestStartTime, uint32_t minIssuerEventId, uint8_t numberOfCommands, - uint8_t tariffType); -/** @brief Price Cluster Get Block Periods - * - * - * - * @param startTime Ver.: always - * @param numberOfEvents Ver.: always - * @param tariffType Ver.: always - */ -bool emberAfPriceClusterGetBlockPeriodsCallback(uint32_t startTime, uint8_t numberOfEvents, uint8_t tariffType); -/** @brief Price Cluster Get Block Thresholds - * - * - * - * @param issuerTariffId Ver.: always - */ -bool emberAfPriceClusterGetBlockThresholdsCallback(uint32_t issuerTariffId); -/** @brief Price Cluster Get C O2 Value - * - * - * - * @param earliestStartTime Ver.: always - * @param minIssuerEventId Ver.: always - * @param numberOfCommands Ver.: always - * @param tariffType Ver.: always - */ -bool emberAfPriceClusterGetCO2ValueCallback(uint32_t earliestStartTime, uint32_t minIssuerEventId, uint8_t numberOfCommands, - uint8_t tariffType); -/** @brief Price Cluster Get Calorific Value - * - * - * - * @param earliestStartTime Ver.: always - * @param minIssuerEventId Ver.: always - * @param numberOfCommands Ver.: always - */ -bool emberAfPriceClusterGetCalorificValueCallback(uint32_t earliestStartTime, uint32_t minIssuerEventId, uint8_t numberOfCommands); -/** @brief Price Cluster Get Consolidated Bill - * - * - * - * @param earliestStartTime Ver.: always - * @param minIssuerEventId Ver.: always - * @param numberOfCommands Ver.: always - * @param tariffType Ver.: always - */ -bool emberAfPriceClusterGetConsolidatedBillCallback(uint32_t earliestStartTime, uint32_t minIssuerEventId, uint8_t numberOfCommands, - uint8_t tariffType); -/** @brief Price Cluster Get Conversion Factor - * - * - * - * @param earliestStartTime Ver.: always - * @param minIssuerEventId Ver.: always - * @param numberOfCommands Ver.: always - */ -bool emberAfPriceClusterGetConversionFactorCallback(uint32_t earliestStartTime, uint32_t minIssuerEventId, - uint8_t numberOfCommands); -/** @brief Price Cluster Get Credit Payment - * - * - * - * @param latestEndTime Ver.: always - * @param numberOfRecords Ver.: always - */ -bool emberAfPriceClusterGetCreditPaymentCallback(uint32_t latestEndTime, uint8_t numberOfRecords); -/** @brief Price Cluster Get Currency Conversion Command - * - * - * - */ -bool emberAfPriceClusterGetCurrencyConversionCommandCallback(void); -/** @brief Price Cluster Get Current Price - * - * - * - * @param commandOptions Ver.: always - */ -bool emberAfPriceClusterGetCurrentPriceCallback(uint8_t commandOptions); -/** @brief Price Cluster Get Price Matrix - * - * - * - * @param issuerTariffId Ver.: always - */ -bool emberAfPriceClusterGetPriceMatrixCallback(uint32_t issuerTariffId); -/** @brief Price Cluster Get Scheduled Prices - * - * - * - * @param startTime Ver.: always - * @param numberOfEvents Ver.: always - */ -bool emberAfPriceClusterGetScheduledPricesCallback(uint32_t startTime, uint8_t numberOfEvents); -/** @brief Price Cluster Get Tariff Cancellation - * - * - * - */ -bool emberAfPriceClusterGetTariffCancellationCallback(void); -/** @brief Price Cluster Get Tariff Information - * - * - * - * @param earliestStartTime Ver.: always - * @param minIssuerEventId Ver.: always - * @param numberOfCommands Ver.: always - * @param tariffType Ver.: always - */ -bool emberAfPriceClusterGetTariffInformationCallback(uint32_t earliestStartTime, uint32_t minIssuerEventId, - uint8_t numberOfCommands, uint8_t tariffType); -/** @brief Price Cluster Get Tier Labels - * - * - * - * @param issuerTariffId Ver.: always - */ -bool emberAfPriceClusterGetTierLabelsCallback(uint32_t issuerTariffId); -/** @brief Price Cluster Price Acknowledgement - * - * - * - * @param providerId Ver.: always - * @param issuerEventId Ver.: always - * @param priceAckTime Ver.: always - * @param control Ver.: always - */ -bool emberAfPriceClusterPriceAcknowledgementCallback(uint32_t providerId, uint32_t issuerEventId, uint32_t priceAckTime, - uint8_t control); -/** @brief Price Cluster Publish Billing Period - * - * - * - * @param providerId Ver.: always - * @param issuerEventId Ver.: always - * @param billingPeriodStartTime Ver.: always - * @param billingPeriodDuration Ver.: always - * @param billingPeriodDurationType Ver.: always - * @param tariffType Ver.: always - */ -bool emberAfPriceClusterPublishBillingPeriodCallback(uint32_t providerId, uint32_t issuerEventId, uint32_t billingPeriodStartTime, - uint32_t billingPeriodDuration, uint8_t billingPeriodDurationType, - uint8_t tariffType); -/** @brief Price Cluster Publish Block Period - * - * - * - * @param providerId Ver.: always - * @param issuerEventId Ver.: always - * @param blockPeriodStartTime Ver.: always - * @param blockPeriodDuration Ver.: always - * @param blockPeriodControl Ver.: always - * @param blockPeriodDurationType Ver.: since se-1.2a-07-5356-19 - * @param tariffType Ver.: since se-1.2a-07-5356-19 - * @param tariffResolutionPeriod Ver.: since se-1.2a-07-5356-19 - */ -bool emberAfPriceClusterPublishBlockPeriodCallback(uint32_t providerId, uint32_t issuerEventId, uint32_t blockPeriodStartTime, - uint32_t blockPeriodDuration, uint8_t blockPeriodControl, - uint8_t blockPeriodDurationType, uint8_t tariffType, - uint8_t tariffResolutionPeriod); -/** @brief Price Cluster Publish Block Thresholds - * - * - * - * @param providerId Ver.: always - * @param issuerEventId Ver.: always - * @param startTime Ver.: always - * @param issuerTariffId Ver.: always - * @param commandIndex Ver.: always - * @param numberOfCommands Ver.: always - * @param subPayloadControl Ver.: always - * @param payload Ver.: always - */ -bool emberAfPriceClusterPublishBlockThresholdsCallback(uint32_t providerId, uint32_t issuerEventId, uint32_t startTime, - uint32_t issuerTariffId, uint8_t commandIndex, uint8_t numberOfCommands, - uint8_t subPayloadControl, uint8_t * payload); -/** @brief Price Cluster Publish C O2 Value - * - * - * - * @param providerId Ver.: always - * @param issuerEventId Ver.: always - * @param startTime Ver.: always - * @param tariffType Ver.: always - * @param cO2Value Ver.: always - * @param cO2ValueUnit Ver.: always - * @param cO2ValueTrailingDigit Ver.: always - */ -bool emberAfPriceClusterPublishCO2ValueCallback(uint32_t providerId, uint32_t issuerEventId, uint32_t startTime, uint8_t tariffType, - uint32_t cO2Value, uint8_t cO2ValueUnit, uint8_t cO2ValueTrailingDigit); -/** @brief Price Cluster Publish Calorific Value - * - * - * - * @param issuerEventId Ver.: always - * @param startTime Ver.: always - * @param calorificValue Ver.: always - * @param calorificValueUnit Ver.: always - * @param calorificValueTrailingDigit Ver.: always - */ -bool emberAfPriceClusterPublishCalorificValueCallback(uint32_t issuerEventId, uint32_t startTime, uint32_t calorificValue, - uint8_t calorificValueUnit, uint8_t calorificValueTrailingDigit); -/** @brief Price Cluster Publish Consolidated Bill - * - * - * - * @param providerId Ver.: always - * @param issuerEventId Ver.: always - * @param billingPeriodStartTime Ver.: always - * @param billingPeriodDuration Ver.: always - * @param billingPeriodDurationType Ver.: always - * @param tariffType Ver.: always - * @param consolidatedBill Ver.: always - * @param currency Ver.: always - * @param billTrailingDigit Ver.: always - */ -bool emberAfPriceClusterPublishConsolidatedBillCallback(uint32_t providerId, uint32_t issuerEventId, - uint32_t billingPeriodStartTime, uint32_t billingPeriodDuration, - uint8_t billingPeriodDurationType, uint8_t tariffType, - uint32_t consolidatedBill, uint16_t currency, uint8_t billTrailingDigit); -/** @brief Price Cluster Publish Conversion Factor - * - * - * - * @param issuerEventId Ver.: always - * @param startTime Ver.: always - * @param conversionFactor Ver.: always - * @param conversionFactorTrailingDigit Ver.: always - */ -bool emberAfPriceClusterPublishConversionFactorCallback(uint32_t issuerEventId, uint32_t startTime, uint32_t conversionFactor, - uint8_t conversionFactorTrailingDigit); -/** @brief Price Cluster Publish Cpp Event - * - * - * - * @param providerId Ver.: always - * @param issuerEventId Ver.: always - * @param startTime Ver.: always - * @param durationInMinutes Ver.: always - * @param tariffType Ver.: always - * @param cppPriceTier Ver.: always - * @param cppAuth Ver.: always - */ -bool emberAfPriceClusterPublishCppEventCallback(uint32_t providerId, uint32_t issuerEventId, uint32_t startTime, - uint16_t durationInMinutes, uint8_t tariffType, uint8_t cppPriceTier, - uint8_t cppAuth); -/** @brief Price Cluster Publish Credit Payment - * - * - * - * @param providerId Ver.: always - * @param issuerEventId Ver.: always - * @param creditPaymentDueDate Ver.: always - * @param creditPaymentOverDueAmount Ver.: always - * @param creditPaymentStatus Ver.: always - * @param creditPayment Ver.: always - * @param creditPaymentDate Ver.: always - * @param creditPaymentRef Ver.: always - */ -bool emberAfPriceClusterPublishCreditPaymentCallback(uint32_t providerId, uint32_t issuerEventId, uint32_t creditPaymentDueDate, - uint32_t creditPaymentOverDueAmount, uint8_t creditPaymentStatus, - uint32_t creditPayment, uint32_t creditPaymentDate, - uint8_t * creditPaymentRef); -/** @brief Price Cluster Publish Currency Conversion - * - * - * - * @param providerId Ver.: always - * @param issuerEventId Ver.: always - * @param startTime Ver.: always - * @param oldCurrency Ver.: always - * @param newCurrency Ver.: always - * @param conversionFactor Ver.: always - * @param conversionFactorTrailingDigit Ver.: always - * @param currencyChangeControlFlags Ver.: always - */ -bool emberAfPriceClusterPublishCurrencyConversionCallback(uint32_t providerId, uint32_t issuerEventId, uint32_t startTime, - uint16_t oldCurrency, uint16_t newCurrency, uint32_t conversionFactor, - uint8_t conversionFactorTrailingDigit, - uint32_t currencyChangeControlFlags); -/** @brief Price Cluster Publish Price - * - * - * - * @param providerId Ver.: always - * @param rateLabel Ver.: always - * @param issuerEventId Ver.: always - * @param currentTime Ver.: always - * @param unitOfMeasure Ver.: always - * @param currency Ver.: always - * @param priceTrailingDigitAndPriceTier Ver.: always - * @param numberOfPriceTiersAndRegisterTier Ver.: always - * @param startTime Ver.: always - * @param durationInMinutes Ver.: always - * @param price Ver.: always - * @param priceRatio Ver.: always - * @param generationPrice Ver.: always - * @param generationPriceRatio Ver.: always - * @param alternateCostDelivered Ver.: since se-1.0-07-5356-15 - * @param alternateCostUnit Ver.: since se-1.0-07-5356-15 - * @param alternateCostTrailingDigit Ver.: since se-1.0-07-5356-15 - * @param numberOfBlockThresholds Ver.: since se-1.1-07-5356-16 - * @param priceControl Ver.: since se-1.1-07-5356-16 - * @param numberOfGenerationTiers Ver.: since se-1.2a-07-5356-19 - * @param generationTier Ver.: since se-1.2a-07-5356-19 - * @param extendedNumberOfPriceTiers Ver.: since se-1.2a-07-5356-19 - * @param extendedPriceTier Ver.: since se-1.2a-07-5356-19 - * @param extendedRegisterTier Ver.: since se-1.2a-07-5356-19 - */ -bool emberAfPriceClusterPublishPriceCallback( - uint32_t providerId, uint8_t * rateLabel, uint32_t issuerEventId, uint32_t currentTime, uint8_t unitOfMeasure, - uint16_t currency, uint8_t priceTrailingDigitAndPriceTier, uint8_t numberOfPriceTiersAndRegisterTier, uint32_t startTime, - uint16_t durationInMinutes, uint32_t price, uint8_t priceRatio, uint32_t generationPrice, uint8_t generationPriceRatio, - uint32_t alternateCostDelivered, uint8_t alternateCostUnit, uint8_t alternateCostTrailingDigit, uint8_t numberOfBlockThresholds, - uint8_t priceControl, uint8_t numberOfGenerationTiers, uint8_t generationTier, uint8_t extendedNumberOfPriceTiers, - uint8_t extendedPriceTier, uint8_t extendedRegisterTier); -/** @brief Price Cluster Publish Price Matrix - * - * - * - * @param providerId Ver.: always - * @param issuerEventId Ver.: always - * @param startTime Ver.: always - * @param issuerTariffId Ver.: always - * @param commandIndex Ver.: always - * @param numberOfCommands Ver.: always - * @param subPayloadControl Ver.: always - * @param payload Ver.: always - */ -bool emberAfPriceClusterPublishPriceMatrixCallback(uint32_t providerId, uint32_t issuerEventId, uint32_t startTime, - uint32_t issuerTariffId, uint8_t commandIndex, uint8_t numberOfCommands, - uint8_t subPayloadControl, uint8_t * payload); -/** @brief Price Cluster Publish Tariff Information - * - * - * - * @param providerId Ver.: always - * @param issuerEventId Ver.: always - * @param issuerTariffId Ver.: always - * @param startTime Ver.: always - * @param tariffTypeChargingScheme Ver.: always - * @param tariffLabel Ver.: always - * @param numberOfPriceTiersInUse Ver.: always - * @param numberOfBlockThresholdsInUse Ver.: always - * @param unitOfMeasure Ver.: always - * @param currency Ver.: always - * @param priceTrailingDigit Ver.: always - * @param standingCharge Ver.: always - * @param tierBlockMode Ver.: always - * @param blockThresholdMultiplier Ver.: always - * @param blockThresholdDivisor Ver.: always - */ -bool emberAfPriceClusterPublishTariffInformationCallback(uint32_t providerId, uint32_t issuerEventId, uint32_t issuerTariffId, - uint32_t startTime, uint8_t tariffTypeChargingScheme, - uint8_t * tariffLabel, uint8_t numberOfPriceTiersInUse, - uint8_t numberOfBlockThresholdsInUse, uint8_t unitOfMeasure, - uint16_t currency, uint8_t priceTrailingDigit, uint32_t standingCharge, - uint8_t tierBlockMode, uint32_t blockThresholdMultiplier, - uint32_t blockThresholdDivisor); -/** @brief Price Cluster Publish Tier Labels - * - * - * - * @param providerId Ver.: always - * @param issuerEventId Ver.: always - * @param issuerTariffId Ver.: always - * @param commandIndex Ver.: always - * @param numberOfCommands Ver.: always - * @param numberOfLabels Ver.: always - * @param tierLabelsPayload Ver.: always - */ -bool emberAfPriceClusterPublishTierLabelsCallback(uint32_t providerId, uint32_t issuerEventId, uint32_t issuerTariffId, - uint8_t commandIndex, uint8_t numberOfCommands, uint8_t numberOfLabels, - uint8_t * tierLabelsPayload); -/** @brief Price Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfPriceClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Price Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfPriceClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Price Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfPriceClusterServerInitCallback(uint8_t endpoint); -/** @brief Price Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfPriceClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Price Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfPriceClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, EmberStatus status); -/** @brief Price Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfPriceClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Price Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfPriceClusterServerTickCallback(uint8_t endpoint); - -/** @} END Price Cluster Callbacks */ - -/** @name Demand Response and Load Control Cluster Callbacks */ -// @{ - -/** @brief Demand Response and Load Control Cluster Cancel All Load Control Events - * - * - * - * @param cancelControl Ver.: always - */ -bool emberAfDemandResponseLoadControlClusterCancelAllLoadControlEventsCallback(uint8_t cancelControl); -/** @brief Demand Response and Load Control Cluster Cancel Load Control Event - * - * - * - * @param issuerEventId Ver.: always - * @param deviceClass Ver.: always - * @param utilityEnrollmentGroup Ver.: always - * @param cancelControl Ver.: always - * @param effectiveTime Ver.: always - */ -bool emberAfDemandResponseLoadControlClusterCancelLoadControlEventCallback(uint32_t issuerEventId, uint16_t deviceClass, - uint8_t utilityEnrollmentGroup, uint8_t cancelControl, - uint32_t effectiveTime); -/** @brief Demand Response and Load Control Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfDemandResponseLoadControlClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Demand Response and Load Control Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfDemandResponseLoadControlClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Demand Response and Load Control Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfDemandResponseLoadControlClusterClientInitCallback(uint8_t endpoint); -/** @brief Demand Response and Load Control Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfDemandResponseLoadControlClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Demand Response and Load Control Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfDemandResponseLoadControlClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Demand Response and Load Control Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfDemandResponseLoadControlClusterClientPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Demand Response and Load Control Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfDemandResponseLoadControlClusterClientTickCallback(uint8_t endpoint); -/** @brief Demand Response and Load Control Cluster Get Scheduled Events - * - * - * - * @param startTime Ver.: always - * @param numberOfEvents Ver.: always - * @param issuerEventId Ver.: since se-1.2b-15-0131-02 - */ -bool emberAfDemandResponseLoadControlClusterGetScheduledEventsCallback(uint32_t startTime, uint8_t numberOfEvents, - uint32_t issuerEventId); -/** @brief Demand Response and Load Control Cluster Load Control Event - * - * - * - * @param issuerEventId Ver.: always - * @param deviceClass Ver.: always - * @param utilityEnrollmentGroup Ver.: always - * @param startTime Ver.: always - * @param durationInMinutes Ver.: always - * @param criticalityLevel Ver.: always - * @param coolingTemperatureOffset Ver.: always - * @param heatingTemperatureOffset Ver.: always - * @param coolingTemperatureSetPoint Ver.: always - * @param heatingTemperatureSetPoint Ver.: always - * @param averageLoadAdjustmentPercentage Ver.: always - * @param dutyCycle Ver.: always - * @param eventControl Ver.: always - */ -bool emberAfDemandResponseLoadControlClusterLoadControlEventCallback( - uint32_t issuerEventId, uint16_t deviceClass, uint8_t utilityEnrollmentGroup, uint32_t startTime, uint16_t durationInMinutes, - uint8_t criticalityLevel, uint8_t coolingTemperatureOffset, uint8_t heatingTemperatureOffset, - int16_t coolingTemperatureSetPoint, int16_t heatingTemperatureSetPoint, int8_t averageLoadAdjustmentPercentage, - uint8_t dutyCycle, uint8_t eventControl); -/** @brief Demand Response and Load Control Cluster Report Event Status - * - * - * - * @param issuerEventId Ver.: always - * @param eventStatus Ver.: always - * @param eventStatusTime Ver.: always - * @param criticalityLevelApplied Ver.: always - * @param coolingTemperatureSetPointApplied Ver.: always - * @param heatingTemperatureSetPointApplied Ver.: always - * @param averageLoadAdjustmentPercentageApplied Ver.: always - * @param dutyCycleApplied Ver.: always - * @param eventControl Ver.: always - * @param signatureType Ver.: always - * @param signature Ver.: always - */ -bool emberAfDemandResponseLoadControlClusterReportEventStatusCallback(uint32_t issuerEventId, uint8_t eventStatus, - uint32_t eventStatusTime, uint8_t criticalityLevelApplied, - uint16_t coolingTemperatureSetPointApplied, - uint16_t heatingTemperatureSetPointApplied, - int8_t averageLoadAdjustmentPercentageApplied, - uint8_t dutyCycleApplied, uint8_t eventControl, - uint8_t signatureType, uint8_t * signature); -/** @brief Demand Response and Load Control Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfDemandResponseLoadControlClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Demand Response and Load Control Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfDemandResponseLoadControlClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Demand Response and Load Control Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfDemandResponseLoadControlClusterServerInitCallback(uint8_t endpoint); -/** @brief Demand Response and Load Control Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfDemandResponseLoadControlClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Demand Response and Load Control Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfDemandResponseLoadControlClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Demand Response and Load Control Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfDemandResponseLoadControlClusterServerPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Demand Response and Load Control Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfDemandResponseLoadControlClusterServerTickCallback(uint8_t endpoint); - -/** @} END Demand Response and Load Control Cluster Callbacks */ - -/** @name Simple Metering Cluster Callbacks */ -// @{ - -/** @brief Simple Metering Cluster Change Supply - * - * - * - * @param providerId Ver.: always - * @param issuerEventId Ver.: always - * @param requestDateTime Ver.: always - * @param implementationDateTime Ver.: always - * @param proposedSupplyStatus Ver.: always - * @param supplyControlBits Ver.: always - */ -bool emberAfSimpleMeteringClusterChangeSupplyCallback(uint32_t providerId, uint32_t issuerEventId, uint32_t requestDateTime, - uint32_t implementationDateTime, uint8_t proposedSupplyStatus, - uint8_t supplyControlBits); -/** @brief Simple Metering Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfSimpleMeteringClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Simple Metering Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfSimpleMeteringClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Simple Metering Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfSimpleMeteringClusterClientInitCallback(uint8_t endpoint); -/** @brief Simple Metering Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfSimpleMeteringClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Simple Metering Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfSimpleMeteringClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Simple Metering Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfSimpleMeteringClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Simple Metering Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfSimpleMeteringClusterClientTickCallback(uint8_t endpoint); -/** @brief Simple Metering Cluster Configure Mirror - * - * - * - * @param issuerEventId Ver.: always - * @param reportingInterval Ver.: always - * @param mirrorNotificationReporting Ver.: always - * @param notificationScheme Ver.: always - */ -bool emberAfSimpleMeteringClusterConfigureMirrorCallback(uint32_t issuerEventId, uint32_t reportingInterval, - uint8_t mirrorNotificationReporting, uint8_t notificationScheme); -/** @brief Simple Metering Cluster Configure Notification Flags - * - * - * - * @param issuerEventId Ver.: always - * @param notificationScheme Ver.: always - * @param notificationFlagAttributeId Ver.: always - * @param clusterId Ver.: always - * @param manufacturerCode Ver.: always - * @param numberOfCommands Ver.: always - * @param commandIds Ver.: always - */ -bool emberAfSimpleMeteringClusterConfigureNotificationFlagsCallback(uint32_t issuerEventId, uint8_t notificationScheme, - uint16_t notificationFlagAttributeId, uint16_t clusterId, - uint16_t manufacturerCode, uint8_t numberOfCommands, - uint8_t * commandIds); -/** @brief Simple Metering Cluster Configure Notification Scheme - * - * - * - * @param issuerEventId Ver.: always - * @param notificationScheme Ver.: always - * @param notificationFlagOrder Ver.: always - */ -bool emberAfSimpleMeteringClusterConfigureNotificationSchemeCallback(uint32_t issuerEventId, uint8_t notificationScheme, - uint32_t notificationFlagOrder); -/** @brief Simple Metering Cluster Get Notified Message - * - * - * - * @param notificationScheme Ver.: always - * @param notificationFlagAttributeId Ver.: always - * @param notificationFlagsN Ver.: always - */ -bool emberAfSimpleMeteringClusterGetNotifiedMessageCallback(uint8_t notificationScheme, uint16_t notificationFlagAttributeId, - uint32_t notificationFlagsN); -/** @brief Simple Metering Cluster Get Profile - * - * - * - * @param intervalChannel Ver.: always - * @param endTime Ver.: always - * @param numberOfPeriods Ver.: always - */ -bool emberAfSimpleMeteringClusterGetProfileCallback(uint8_t intervalChannel, uint32_t endTime, uint8_t numberOfPeriods); -/** @brief Simple Metering Cluster Get Profile Response - * - * - * - * @param endTime Ver.: always - * @param status Ver.: always - * @param profileIntervalPeriod Ver.: always - * @param numberOfPeriodsDelivered Ver.: always - * @param intervals Ver.: always - */ -bool emberAfSimpleMeteringClusterGetProfileResponseCallback(uint32_t endTime, uint8_t status, uint8_t profileIntervalPeriod, - uint8_t numberOfPeriodsDelivered, uint8_t * intervals); -/** @brief Simple Metering Cluster Get Sampled Data - * - * - * - * @param sampleId Ver.: always - * @param earliestSampleTime Ver.: always - * @param sampleType Ver.: always - * @param numberOfSamples Ver.: always - */ -bool emberAfSimpleMeteringClusterGetSampledDataCallback(uint16_t sampleId, uint32_t earliestSampleTime, uint8_t sampleType, - uint16_t numberOfSamples); -/** @brief Simple Metering Cluster Get Sampled Data Response - * - * - * - * @param sampleId Ver.: always - * @param sampleStartTime Ver.: always - * @param sampleType Ver.: always - * @param sampleRequestInterval Ver.: always - * @param numberOfSamples Ver.: always - * @param samples Ver.: always - */ -bool emberAfSimpleMeteringClusterGetSampledDataResponseCallback(uint16_t sampleId, uint32_t sampleStartTime, uint8_t sampleType, - uint16_t sampleRequestInterval, uint16_t numberOfSamples, - uint8_t * samples); -/** @brief Simple Metering Cluster Get Snapshot - * - * - * - * @param earliestStartTime Ver.: always - * @param latestEndTime Ver.: always - * @param snapshotOffset Ver.: always - * @param snapshotCause Ver.: always - */ -bool emberAfSimpleMeteringClusterGetSnapshotCallback(uint32_t earliestStartTime, uint32_t latestEndTime, uint8_t snapshotOffset, - uint32_t snapshotCause); -/** @brief Simple Metering Cluster Local Change Supply - * - * - * - * @param proposedSupplyStatus Ver.: always - */ -bool emberAfSimpleMeteringClusterLocalChangeSupplyCallback(uint8_t proposedSupplyStatus); -/** @brief Simple Metering Cluster Mirror Removed - * - * - * - * @param endpointId Ver.: always - */ -bool emberAfSimpleMeteringClusterMirrorRemovedCallback(uint16_t endpointId); -/** @brief Simple Metering Cluster Mirror Report Attribute Response - * - * - * - * @param notificationScheme Ver.: always - * @param notificationFlags Ver.: always - */ -bool emberAfSimpleMeteringClusterMirrorReportAttributeResponseCallback(uint8_t notificationScheme, uint8_t * notificationFlags); -/** @brief Simple Metering Cluster Publish Snapshot - * - * - * - * @param snapshotId Ver.: always - * @param snapshotTime Ver.: always - * @param totalSnapshotsFound Ver.: always - * @param commandIndex Ver.: always - * @param totalCommands Ver.: always - * @param snapshotCause Ver.: always - * @param snapshotPayloadType Ver.: always - * @param snapshotPayload Ver.: always - */ -bool emberAfSimpleMeteringClusterPublishSnapshotCallback(uint32_t snapshotId, uint32_t snapshotTime, uint8_t totalSnapshotsFound, - uint8_t commandIndex, uint8_t totalCommands, uint32_t snapshotCause, - uint8_t snapshotPayloadType, uint8_t * snapshotPayload); -/** @brief Simple Metering Cluster Remove Mirror - * - * - * - */ -bool emberAfSimpleMeteringClusterRemoveMirrorCallback(void); -/** @brief Simple Metering Cluster Request Fast Poll Mode - * - * - * - * @param fastPollUpdatePeriod Ver.: always - * @param duration Ver.: always - */ -bool emberAfSimpleMeteringClusterRequestFastPollModeCallback(uint8_t fastPollUpdatePeriod, uint8_t duration); -/** @brief Simple Metering Cluster Request Fast Poll Mode Response - * - * - * - * @param appliedUpdatePeriod Ver.: always - * @param fastPollModeEndtime Ver.: always - */ -bool emberAfSimpleMeteringClusterRequestFastPollModeResponseCallback(uint8_t appliedUpdatePeriod, uint32_t fastPollModeEndtime); -/** @brief Simple Metering Cluster Request Mirror - * - * - * - */ -bool emberAfSimpleMeteringClusterRequestMirrorCallback(void); -/** @brief Simple Metering Cluster Request Mirror Response - * - * - * - * @param endpointId Ver.: always - */ -bool emberAfSimpleMeteringClusterRequestMirrorResponseCallback(uint16_t endpointId); -/** @brief Simple Metering Cluster Reset Load Limit Counter - * - * - * - * @param providerId Ver.: always - * @param issuerEventId Ver.: always - */ -bool emberAfSimpleMeteringClusterResetLoadLimitCounterCallback(uint32_t providerId, uint32_t issuerEventId); -/** @brief Simple Metering Cluster Schedule Snapshot - * - * - * - * @param issuerEventId Ver.: always - * @param commandIndex Ver.: always - * @param commandCount Ver.: always - * @param snapshotSchedulePayload Ver.: always - */ -bool emberAfSimpleMeteringClusterScheduleSnapshotCallback(uint32_t issuerEventId, uint8_t commandIndex, uint8_t commandCount, - uint8_t * snapshotSchedulePayload); -/** @brief Simple Metering Cluster Schedule Snapshot Response - * - * - * - * @param issuerEventId Ver.: always - * @param snapshotResponsePayload Ver.: always - */ -bool emberAfSimpleMeteringClusterScheduleSnapshotResponseCallback(uint32_t issuerEventId, uint8_t * snapshotResponsePayload); -/** @brief Simple Metering Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfSimpleMeteringClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Simple Metering Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfSimpleMeteringClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Simple Metering Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfSimpleMeteringClusterServerInitCallback(uint8_t endpoint); -/** @brief Simple Metering Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfSimpleMeteringClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Simple Metering Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfSimpleMeteringClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Simple Metering Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfSimpleMeteringClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Simple Metering Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfSimpleMeteringClusterServerTickCallback(uint8_t endpoint); -/** @brief Simple Metering Cluster Set Supply Status - * - * - * - * @param issuerEventId Ver.: always - * @param supplyTamperState Ver.: always - * @param supplyDepletionState Ver.: always - * @param supplyUncontrolledFlowState Ver.: always - * @param loadLimitSupplyState Ver.: always - */ -bool emberAfSimpleMeteringClusterSetSupplyStatusCallback(uint32_t issuerEventId, uint8_t supplyTamperState, - uint8_t supplyDepletionState, uint8_t supplyUncontrolledFlowState, - uint8_t loadLimitSupplyState); -/** @brief Simple Metering Cluster Set Uncontrolled Flow Threshold - * - * - * - * @param providerId Ver.: always - * @param issuerEventId Ver.: always - * @param uncontrolledFlowThreshold Ver.: always - * @param unitOfMeasure Ver.: always - * @param multiplier Ver.: always - * @param divisor Ver.: always - * @param stabilisationPeriod Ver.: always - * @param measurementPeriod Ver.: always - */ -bool emberAfSimpleMeteringClusterSetUncontrolledFlowThresholdCallback(uint32_t providerId, uint32_t issuerEventId, - uint16_t uncontrolledFlowThreshold, uint8_t unitOfMeasure, - uint16_t multiplier, uint16_t divisor, - uint8_t stabilisationPeriod, uint16_t measurementPeriod); -/** @brief Simple Metering Cluster Start Sampling - * - * - * - * @param issuerEventId Ver.: always - * @param startSamplingTime Ver.: always - * @param sampleType Ver.: always - * @param sampleRequestInterval Ver.: always - * @param maxNumberOfSamples Ver.: always - */ -bool emberAfSimpleMeteringClusterStartSamplingCallback(uint32_t issuerEventId, uint32_t startSamplingTime, uint8_t sampleType, - uint16_t sampleRequestInterval, uint16_t maxNumberOfSamples); -/** @brief Simple Metering Cluster Start Sampling Response - * - * - * - * @param sampleId Ver.: always - */ -bool emberAfSimpleMeteringClusterStartSamplingResponseCallback(uint16_t sampleId); -/** @brief Simple Metering Cluster Supply Status Response - * - * - * - * @param providerId Ver.: always - * @param issuerEventId Ver.: always - * @param implementationDateTime Ver.: always - * @param supplyStatus Ver.: always - */ -bool emberAfSimpleMeteringClusterSupplyStatusResponseCallback(uint32_t providerId, uint32_t issuerEventId, - uint32_t implementationDateTime, uint8_t supplyStatus); -/** @brief Simple Metering Cluster Take Snapshot - * - * - * - * @param snapshotCause Ver.: always - */ -bool emberAfSimpleMeteringClusterTakeSnapshotCallback(uint32_t snapshotCause); -/** @brief Simple Metering Cluster Take Snapshot Response - * - * - * - * @param snapshotId Ver.: always - * @param snapshotConfirmation Ver.: always - */ -bool emberAfSimpleMeteringClusterTakeSnapshotResponseCallback(uint32_t snapshotId, uint8_t snapshotConfirmation); - -/** @} END Simple Metering Cluster Callbacks */ - -/** @name Messaging Cluster Callbacks */ -// @{ - -/** @brief Messaging Cluster Cancel All Messages - * - * - * - * @param implementationDateTime Ver.: always - */ -bool emberAfMessagingClusterCancelAllMessagesCallback(uint32_t implementationDateTime); -/** @brief Messaging Cluster Cancel Message - * - * - * - * @param messageId Ver.: always - * @param messageControl Ver.: always - */ -bool emberAfMessagingClusterCancelMessageCallback(uint32_t messageId, uint8_t messageControl); -/** @brief Messaging Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfMessagingClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Messaging Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfMessagingClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Messaging Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfMessagingClusterClientInitCallback(uint8_t endpoint); -/** @brief Messaging Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfMessagingClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Messaging Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfMessagingClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Messaging Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfMessagingClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Messaging Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfMessagingClusterClientTickCallback(uint8_t endpoint); -/** @brief Messaging Cluster Display Message - * - * - * - * @param messageId Ver.: always - * @param messageControl Ver.: always - * @param startTime Ver.: always - * @param durationInMinutes Ver.: always - * @param message Ver.: always - * @param optionalExtendedMessageControl Ver.: since se-1.2a-07-5356-19 - */ -bool emberAfMessagingClusterDisplayMessageCallback(uint32_t messageId, uint8_t messageControl, uint32_t startTime, - uint16_t durationInMinutes, uint8_t * message, - uint8_t optionalExtendedMessageControl); -/** @brief Messaging Cluster Display Protected Message - * - * - * - * @param messageId Ver.: always - * @param messageControl Ver.: always - * @param startTime Ver.: always - * @param durationInMinutes Ver.: always - * @param message Ver.: always - * @param optionalExtendedMessageControl Ver.: always - */ -bool emberAfMessagingClusterDisplayProtectedMessageCallback(uint32_t messageId, uint8_t messageControl, uint32_t startTime, - uint16_t durationInMinutes, uint8_t * message, - uint8_t optionalExtendedMessageControl); -/** @brief Messaging Cluster Get Last Message - * - * - * - */ -bool emberAfMessagingClusterGetLastMessageCallback(void); -/** @brief Messaging Cluster Get Message Cancellation - * - * - * - * @param earliestImplementationTime Ver.: always - */ -bool emberAfMessagingClusterGetMessageCancellationCallback(uint32_t earliestImplementationTime); -/** @brief Messaging Cluster Message Confirmation - * - * - * - * @param messageId Ver.: always - * @param confirmationTime Ver.: always - * @param messageConfirmationControl Ver.: since se-1.2a-07-5356-19 - * @param messageResponse Ver.: since se-1.2a-07-5356-19 - */ -bool emberAfMessagingClusterMessageConfirmationCallback(uint32_t messageId, uint32_t confirmationTime, - uint8_t messageConfirmationControl, uint8_t * messageResponse); -/** @brief Messaging Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfMessagingClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Messaging Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfMessagingClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Messaging Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfMessagingClusterServerInitCallback(uint8_t endpoint); -/** @brief Messaging Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfMessagingClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Messaging Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfMessagingClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Messaging Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfMessagingClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Messaging Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfMessagingClusterServerTickCallback(uint8_t endpoint); - -/** @} END Messaging Cluster Callbacks */ - -/** @name Tunneling Cluster Callbacks */ -// @{ - -/** @brief Tunneling Cluster Ack Transfer Data Client To Server - * - * - * - * @param tunnelId Ver.: always - * @param numberOfBytesLeft Ver.: always - */ -bool emberAfTunnelingClusterAckTransferDataClientToServerCallback(uint16_t tunnelId, uint16_t numberOfBytesLeft); -/** @brief Tunneling Cluster Ack Transfer Data Server To Client - * - * - * - * @param tunnelId Ver.: always - * @param numberOfBytesLeft Ver.: always - */ -bool emberAfTunnelingClusterAckTransferDataServerToClientCallback(uint16_t tunnelId, uint16_t numberOfBytesLeft); -/** @brief Tunneling Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfTunnelingClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Tunneling Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfTunnelingClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Tunneling Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfTunnelingClusterClientInitCallback(uint8_t endpoint); -/** @brief Tunneling Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfTunnelingClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Tunneling Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfTunnelingClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Tunneling Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfTunnelingClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Tunneling Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfTunnelingClusterClientTickCallback(uint8_t endpoint); -/** @brief Tunneling Cluster Close Tunnel - * - * - * - * @param tunnelId Ver.: always - */ -bool emberAfTunnelingClusterCloseTunnelCallback(uint16_t tunnelId); -/** @brief Tunneling Cluster Get Supported Tunnel Protocols - * - * - * - * @param protocolOffset Ver.: always - */ -bool emberAfTunnelingClusterGetSupportedTunnelProtocolsCallback(uint8_t protocolOffset); -/** @brief Tunneling Cluster Ready Data Client To Server - * - * - * - * @param tunnelId Ver.: always - * @param numberOfOctetsLeft Ver.: always - */ -bool emberAfTunnelingClusterReadyDataClientToServerCallback(uint16_t tunnelId, uint16_t numberOfOctetsLeft); -/** @brief Tunneling Cluster Ready Data Server To Client - * - * - * - * @param tunnelId Ver.: always - * @param numberOfOctetsLeft Ver.: always - */ -bool emberAfTunnelingClusterReadyDataServerToClientCallback(uint16_t tunnelId, uint16_t numberOfOctetsLeft); -/** @brief Tunneling Cluster Request Tunnel - * - * - * - * @param protocolId Ver.: always - * @param manufacturerCode Ver.: always - * @param flowControlSupport Ver.: always - * @param maximumIncomingTransferSize Ver.: since se-1.1a-07-5356-17 - */ -bool emberAfTunnelingClusterRequestTunnelCallback(uint8_t protocolId, uint16_t manufacturerCode, uint8_t flowControlSupport, - uint16_t maximumIncomingTransferSize); -/** @brief Tunneling Cluster Request Tunnel Response - * - * - * - * @param tunnelId Ver.: always - * @param tunnelStatus Ver.: always - * @param maximumIncomingTransferSize Ver.: since se-1.1a-07-5356-17 - */ -bool emberAfTunnelingClusterRequestTunnelResponseCallback(uint16_t tunnelId, uint8_t tunnelStatus, - uint16_t maximumIncomingTransferSize); -/** @brief Tunneling Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfTunnelingClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Tunneling Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfTunnelingClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Tunneling Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfTunnelingClusterServerInitCallback(uint8_t endpoint); -/** @brief Tunneling Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfTunnelingClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Tunneling Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfTunnelingClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Tunneling Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfTunnelingClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Tunneling Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfTunnelingClusterServerTickCallback(uint8_t endpoint); -/** @brief Tunneling Cluster Supported Tunnel Protocols Response - * - * - * - * @param protocolListComplete Ver.: always - * @param protocolCount Ver.: always - * @param protocolList Ver.: always - */ -bool emberAfTunnelingClusterSupportedTunnelProtocolsResponseCallback(uint8_t protocolListComplete, uint8_t protocolCount, - uint8_t * protocolList); -/** @brief Tunneling Cluster Transfer Data Client To Server - * - * - * - * @param tunnelId Ver.: always - * @param data Ver.: always - */ -bool emberAfTunnelingClusterTransferDataClientToServerCallback(uint16_t tunnelId, uint8_t * data); -/** @brief Tunneling Cluster Transfer Data Error Client To Server - * - * - * - * @param tunnelId Ver.: always - * @param transferDataStatus Ver.: always - */ -bool emberAfTunnelingClusterTransferDataErrorClientToServerCallback(uint16_t tunnelId, uint8_t transferDataStatus); -/** @brief Tunneling Cluster Transfer Data Error Server To Client - * - * - * - * @param tunnelId Ver.: always - * @param transferDataStatus Ver.: always - */ -bool emberAfTunnelingClusterTransferDataErrorServerToClientCallback(uint16_t tunnelId, uint8_t transferDataStatus); -/** @brief Tunneling Cluster Transfer Data Server To Client - * - * - * - * @param tunnelId Ver.: always - * @param data Ver.: always - */ -bool emberAfTunnelingClusterTransferDataServerToClientCallback(uint16_t tunnelId, uint8_t * data); -/** @brief Tunneling Cluster Tunnel Closure Notification - * - * - * - * @param tunnelId Ver.: always - */ -bool emberAfTunnelingClusterTunnelClosureNotificationCallback(uint16_t tunnelId); - -/** @} END Tunneling Cluster Callbacks */ - -/** @name Prepayment Cluster Callbacks */ -// @{ - -/** @brief Prepayment Cluster Change Debt - * - * - * - * @param issuerEventId Ver.: always - * @param debtLabel Ver.: always - * @param debtAmount Ver.: always - * @param debtRecoveryMethod Ver.: always - * @param debtAmountType Ver.: always - * @param debtRecoveryStartTime Ver.: always - * @param debtRecoveryCollectionTime Ver.: always - * @param debtRecoveryFrequency Ver.: always - * @param debtRecoveryAmount Ver.: always - * @param debtRecoveryBalancePercentage Ver.: always - */ -bool emberAfPrepaymentClusterChangeDebtCallback(uint32_t issuerEventId, uint8_t * debtLabel, uint32_t debtAmount, - uint8_t debtRecoveryMethod, uint8_t debtAmountType, uint32_t debtRecoveryStartTime, - uint16_t debtRecoveryCollectionTime, uint8_t debtRecoveryFrequency, - uint32_t debtRecoveryAmount, uint16_t debtRecoveryBalancePercentage); -/** @brief Prepayment Cluster Change Payment Mode - * - * - * - * @param providerId Ver.: always - * @param issuerEventId Ver.: always - * @param implementationDateTime Ver.: always - * @param proposedPaymentControlConfiguration Ver.: always - * @param cutOffValue Ver.: always - */ -bool emberAfPrepaymentClusterChangePaymentModeCallback(uint32_t providerId, uint32_t issuerEventId, uint32_t implementationDateTime, - uint16_t proposedPaymentControlConfiguration, uint32_t cutOffValue); -/** @brief Prepayment Cluster Change Payment Mode Response - * - * - * - * @param friendlyCredit Ver.: always - * @param friendlyCreditCalendarId Ver.: always - * @param emergencyCreditLimit Ver.: always - * @param emergencyCreditThreshold Ver.: always - */ -bool emberAfPrepaymentClusterChangePaymentModeResponseCallback(uint8_t friendlyCredit, uint32_t friendlyCreditCalendarId, - uint32_t emergencyCreditLimit, uint32_t emergencyCreditThreshold); -/** @brief Prepayment Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfPrepaymentClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Prepayment Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfPrepaymentClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Prepayment Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfPrepaymentClusterClientInitCallback(uint8_t endpoint); -/** @brief Prepayment Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfPrepaymentClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Prepayment Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfPrepaymentClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Prepayment Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfPrepaymentClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Prepayment Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfPrepaymentClusterClientTickCallback(uint8_t endpoint); -/** @brief Prepayment Cluster Consumer Top Up - * - * - * - * @param originatingDevice Ver.: always - * @param topUpCode Ver.: always - */ -bool emberAfPrepaymentClusterConsumerTopUpCallback(uint8_t originatingDevice, uint8_t * topUpCode); -/** @brief Prepayment Cluster Consumer Top Up Response - * - * - * - * @param resultType Ver.: always - * @param topUpValue Ver.: always - * @param sourceOfTopUp Ver.: always - * @param creditRemaining Ver.: always - */ -bool emberAfPrepaymentClusterConsumerTopUpResponseCallback(uint8_t resultType, uint32_t topUpValue, uint8_t sourceOfTopUp, - uint32_t creditRemaining); -/** @brief Prepayment Cluster Credit Adjustment - * - * - * - * @param issuerEventId Ver.: always - * @param startTime Ver.: always - * @param creditAdjustmentType Ver.: always - * @param creditAdjustmentValue Ver.: always - */ -bool emberAfPrepaymentClusterCreditAdjustmentCallback(uint32_t issuerEventId, uint32_t startTime, uint8_t creditAdjustmentType, - uint32_t creditAdjustmentValue); -/** @brief Prepayment Cluster Emergency Credit Setup - * - * - * - * @param issuerEventId Ver.: always - * @param startTime Ver.: always - * @param emergencyCreditLimit Ver.: always - * @param emergencyCreditThreshold Ver.: always - */ -bool emberAfPrepaymentClusterEmergencyCreditSetupCallback(uint32_t issuerEventId, uint32_t startTime, uint32_t emergencyCreditLimit, - uint32_t emergencyCreditThreshold); -/** @brief Prepayment Cluster Get Debt Repayment Log - * - * - * - * @param latestEndTime Ver.: always - * @param numberOfDebts Ver.: always - * @param debtType Ver.: always - */ -bool emberAfPrepaymentClusterGetDebtRepaymentLogCallback(uint32_t latestEndTime, uint8_t numberOfDebts, uint8_t debtType); -/** @brief Prepayment Cluster Get Prepay Snapshot - * - * - * - * @param earliestStartTime Ver.: always - * @param latestEndTime Ver.: always - * @param snapshotOffset Ver.: always - * @param snapshotCause Ver.: always - */ -bool emberAfPrepaymentClusterGetPrepaySnapshotCallback(uint32_t earliestStartTime, uint32_t latestEndTime, uint8_t snapshotOffset, - uint32_t snapshotCause); -/** @brief Prepayment Cluster Get Top Up Log - * - * - * - * @param latestEndTime Ver.: always - * @param numberOfRecords Ver.: always - */ -bool emberAfPrepaymentClusterGetTopUpLogCallback(uint32_t latestEndTime, uint8_t numberOfRecords); -/** @brief Prepayment Cluster Publish Debt Log - * - * - * - * @param commandIndex Ver.: always - * @param totalNumberOfCommands Ver.: always - * @param debtPayload Ver.: always - */ -bool emberAfPrepaymentClusterPublishDebtLogCallback(uint8_t commandIndex, uint8_t totalNumberOfCommands, uint8_t * debtPayload); -/** @brief Prepayment Cluster Publish Prepay Snapshot - * - * - * - * @param snapshotId Ver.: always - * @param snapshotTime Ver.: always - * @param totalSnapshotsFound Ver.: always - * @param commandIndex Ver.: always - * @param totalNumberOfCommands Ver.: always - * @param snapshotCause Ver.: always - * @param snapshotPayloadType Ver.: always - * @param snapshotPayload Ver.: always - */ -bool emberAfPrepaymentClusterPublishPrepaySnapshotCallback(uint32_t snapshotId, uint32_t snapshotTime, uint8_t totalSnapshotsFound, - uint8_t commandIndex, uint8_t totalNumberOfCommands, - uint32_t snapshotCause, uint8_t snapshotPayloadType, - uint8_t * snapshotPayload); -/** @brief Prepayment Cluster Publish Top Up Log - * - * - * - * @param commandIndex Ver.: always - * @param totalNumberOfCommands Ver.: always - * @param topUpPayload Ver.: always - */ -bool emberAfPrepaymentClusterPublishTopUpLogCallback(uint8_t commandIndex, uint8_t totalNumberOfCommands, uint8_t * topUpPayload); -/** @brief Prepayment Cluster Select Available Emergency Credit - * - * - * - * @param commandIssueDateTime Ver.: always - * @param originatingDevice Ver.: always - */ -bool emberAfPrepaymentClusterSelectAvailableEmergencyCreditCallback(uint32_t commandIssueDateTime, uint8_t originatingDevice); -/** @brief Prepayment Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfPrepaymentClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Prepayment Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfPrepaymentClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Prepayment Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfPrepaymentClusterServerInitCallback(uint8_t endpoint); -/** @brief Prepayment Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfPrepaymentClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Prepayment Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfPrepaymentClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Prepayment Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfPrepaymentClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Prepayment Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfPrepaymentClusterServerTickCallback(uint8_t endpoint); -/** @brief Prepayment Cluster Set Low Credit Warning Level - * - * - * - * @param lowCreditWarningLevel Ver.: always - */ -bool emberAfPrepaymentClusterSetLowCreditWarningLevelCallback(uint32_t lowCreditWarningLevel); -/** @brief Prepayment Cluster Set Maximum Credit Limit - * - * - * - * @param providerId Ver.: always - * @param issuerEventId Ver.: always - * @param implementationDateTime Ver.: always - * @param maximumCreditLevel Ver.: always - * @param maximumCreditPerTopUp Ver.: always - */ -bool emberAfPrepaymentClusterSetMaximumCreditLimitCallback(uint32_t providerId, uint32_t issuerEventId, - uint32_t implementationDateTime, uint32_t maximumCreditLevel, - uint32_t maximumCreditPerTopUp); -/** @brief Prepayment Cluster Set Overall Debt Cap - * - * - * - * @param providerId Ver.: always - * @param issuerEventId Ver.: always - * @param implementationDateTime Ver.: always - * @param overallDebtCap Ver.: always - */ -bool emberAfPrepaymentClusterSetOverallDebtCapCallback(uint32_t providerId, uint32_t issuerEventId, uint32_t implementationDateTime, - uint32_t overallDebtCap); - -/** @} END Prepayment Cluster Callbacks */ - -/** @name Energy Management Cluster Callbacks */ -// @{ - -/** @brief Energy Management Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfEnergyManagementClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Energy Management Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfEnergyManagementClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Energy Management Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfEnergyManagementClusterClientInitCallback(uint8_t endpoint); -/** @brief Energy Management Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfEnergyManagementClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Energy Management Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfEnergyManagementClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Energy Management Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfEnergyManagementClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Energy Management Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfEnergyManagementClusterClientTickCallback(uint8_t endpoint); -/** @brief Energy Management Cluster Manage Event - * - * - * - * @param issuerEventId Ver.: always - * @param deviceClass Ver.: always - * @param utilityEnrollmentGroup Ver.: always - * @param actionRequired Ver.: always - */ -bool emberAfEnergyManagementClusterManageEventCallback(uint32_t issuerEventId, uint16_t deviceClass, uint8_t utilityEnrollmentGroup, - uint8_t actionRequired); -/** @brief Energy Management Cluster Report Event Status - * - * - * - * @param issuerEventId Ver.: always - * @param eventStatus Ver.: always - * @param eventStatusTime Ver.: always - * @param criticalityLevelApplied Ver.: always - * @param coolingTemperatureSetPointApplied Ver.: always - * @param heatingTemperatureSetPointApplied Ver.: always - * @param averageLoadAdjustmentPercentageApplied Ver.: always - * @param dutyCycleApplied Ver.: always - * @param eventControl Ver.: always - */ -bool emberAfEnergyManagementClusterReportEventStatusCallback(uint32_t issuerEventId, uint8_t eventStatus, uint32_t eventStatusTime, - uint8_t criticalityLevelApplied, - uint16_t coolingTemperatureSetPointApplied, - uint16_t heatingTemperatureSetPointApplied, - int8_t averageLoadAdjustmentPercentageApplied, - uint8_t dutyCycleApplied, uint8_t eventControl); -/** @brief Energy Management Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfEnergyManagementClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Energy Management Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfEnergyManagementClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Energy Management Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfEnergyManagementClusterServerInitCallback(uint8_t endpoint); -/** @brief Energy Management Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfEnergyManagementClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Energy Management Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfEnergyManagementClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Energy Management Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfEnergyManagementClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Energy Management Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfEnergyManagementClusterServerTickCallback(uint8_t endpoint); - -/** @} END Energy Management Cluster Callbacks */ - -/** @name Calendar Cluster Callbacks */ -// @{ - -/** @brief Calendar Cluster Cancel Calendar - * - * - * - * @param providerId Ver.: always - * @param issuerCalendarId Ver.: always - * @param calendarType Ver.: always - */ -bool emberAfCalendarClusterCancelCalendarCallback(uint32_t providerId, uint32_t issuerCalendarId, uint8_t calendarType); -/** @brief Calendar Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfCalendarClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Calendar Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfCalendarClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Calendar Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfCalendarClusterClientInitCallback(uint8_t endpoint); -/** @brief Calendar Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfCalendarClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Calendar Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfCalendarClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Calendar Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfCalendarClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Calendar Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfCalendarClusterClientTickCallback(uint8_t endpoint); -/** @brief Calendar Cluster Get Calendar - * - * - * - * @param earliestStartTime Ver.: always - * @param minIssuerEventId Ver.: always - * @param numberOfCalendars Ver.: always - * @param calendarType Ver.: always - * @param providerId Ver.: always - */ -bool emberAfCalendarClusterGetCalendarCallback(uint32_t earliestStartTime, uint32_t minIssuerEventId, uint8_t numberOfCalendars, - uint8_t calendarType, uint32_t providerId); -/** @brief Calendar Cluster Get Calendar Cancellation - * - * - * - */ -bool emberAfCalendarClusterGetCalendarCancellationCallback(void); -/** @brief Calendar Cluster Get Day Profiles - * - * - * - * @param providerId Ver.: always - * @param issuerCalendarId Ver.: always - * @param startDayId Ver.: always - * @param numberOfDays Ver.: always - */ -bool emberAfCalendarClusterGetDayProfilesCallback(uint32_t providerId, uint32_t issuerCalendarId, uint8_t startDayId, - uint8_t numberOfDays); -/** @brief Calendar Cluster Get Seasons - * - * - * - * @param providerId Ver.: always - * @param issuerCalendarId Ver.: always - */ -bool emberAfCalendarClusterGetSeasonsCallback(uint32_t providerId, uint32_t issuerCalendarId); -/** @brief Calendar Cluster Get Special Days - * - * - * - * @param startTime Ver.: always - * @param numberOfEvents Ver.: always - * @param calendarType Ver.: always - * @param providerId Ver.: always - * @param issuerCalendarId Ver.: always - */ -bool emberAfCalendarClusterGetSpecialDaysCallback(uint32_t startTime, uint8_t numberOfEvents, uint8_t calendarType, - uint32_t providerId, uint32_t issuerCalendarId); -/** @brief Calendar Cluster Get Week Profiles - * - * - * - * @param providerId Ver.: always - * @param issuerCalendarId Ver.: always - * @param startWeekId Ver.: always - * @param numberOfWeeks Ver.: always - */ -bool emberAfCalendarClusterGetWeekProfilesCallback(uint32_t providerId, uint32_t issuerCalendarId, uint8_t startWeekId, - uint8_t numberOfWeeks); -/** @brief Calendar Cluster Publish Calendar - * - * - * - * @param providerId Ver.: always - * @param issuerEventId Ver.: always - * @param issuerCalendarId Ver.: always - * @param startTime Ver.: always - * @param calendarType Ver.: always - * @param calendarTimeReference Ver.: always - * @param calendarName Ver.: always - * @param numberOfSeasons Ver.: always - * @param numberOfWeekProfiles Ver.: always - * @param numberOfDayProfiles Ver.: always - */ -bool emberAfCalendarClusterPublishCalendarCallback(uint32_t providerId, uint32_t issuerEventId, uint32_t issuerCalendarId, - uint32_t startTime, uint8_t calendarType, uint8_t calendarTimeReference, - uint8_t * calendarName, uint8_t numberOfSeasons, uint8_t numberOfWeekProfiles, - uint8_t numberOfDayProfiles); -/** @brief Calendar Cluster Publish Day Profile - * - * - * - * @param providerId Ver.: always - * @param issuerEventId Ver.: always - * @param issuerCalendarId Ver.: always - * @param dayId Ver.: always - * @param totalNumberOfScheduleEntries Ver.: always - * @param commandIndex Ver.: always - * @param totalNumberOfCommands Ver.: always - * @param calendarType Ver.: always - * @param dayScheduleEntries Ver.: always - */ -bool emberAfCalendarClusterPublishDayProfileCallback(uint32_t providerId, uint32_t issuerEventId, uint32_t issuerCalendarId, - uint8_t dayId, uint8_t totalNumberOfScheduleEntries, uint8_t commandIndex, - uint8_t totalNumberOfCommands, uint8_t calendarType, - uint8_t * dayScheduleEntries); -/** @brief Calendar Cluster Publish Seasons - * - * - * - * @param providerId Ver.: always - * @param issuerEventId Ver.: always - * @param issuerCalendarId Ver.: always - * @param commandIndex Ver.: always - * @param totalNumberOfCommands Ver.: always - * @param seasonEntries Ver.: always - */ -bool emberAfCalendarClusterPublishSeasonsCallback(uint32_t providerId, uint32_t issuerEventId, uint32_t issuerCalendarId, - uint8_t commandIndex, uint8_t totalNumberOfCommands, uint8_t * seasonEntries); -/** @brief Calendar Cluster Publish Special Days - * - * - * - * @param providerId Ver.: always - * @param issuerEventId Ver.: always - * @param issuerCalendarId Ver.: always - * @param startTime Ver.: always - * @param calendarType Ver.: always - * @param totalNumberOfSpecialDays Ver.: always - * @param commandIndex Ver.: always - * @param totalNumberOfCommands Ver.: always - * @param specialDayEntries Ver.: always - */ -bool emberAfCalendarClusterPublishSpecialDaysCallback(uint32_t providerId, uint32_t issuerEventId, uint32_t issuerCalendarId, - uint32_t startTime, uint8_t calendarType, uint8_t totalNumberOfSpecialDays, - uint8_t commandIndex, uint8_t totalNumberOfCommands, - uint8_t * specialDayEntries); -/** @brief Calendar Cluster Publish Week Profile - * - * - * - * @param providerId Ver.: always - * @param issuerEventId Ver.: always - * @param issuerCalendarId Ver.: always - * @param weekId Ver.: always - * @param dayIdRefMonday Ver.: always - * @param dayIdRefTuesday Ver.: always - * @param dayIdRefWednesday Ver.: always - * @param dayIdRefThursday Ver.: always - * @param dayIdRefFriday Ver.: always - * @param dayIdRefSaturday Ver.: always - * @param dayIdRefSunday Ver.: always - */ -bool emberAfCalendarClusterPublishWeekProfileCallback(uint32_t providerId, uint32_t issuerEventId, uint32_t issuerCalendarId, - uint8_t weekId, uint8_t dayIdRefMonday, uint8_t dayIdRefTuesday, - uint8_t dayIdRefWednesday, uint8_t dayIdRefThursday, uint8_t dayIdRefFriday, - uint8_t dayIdRefSaturday, uint8_t dayIdRefSunday); -/** @brief Calendar Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfCalendarClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Calendar Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfCalendarClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Calendar Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfCalendarClusterServerInitCallback(uint8_t endpoint); -/** @brief Calendar Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfCalendarClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Calendar Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfCalendarClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Calendar Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfCalendarClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Calendar Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfCalendarClusterServerTickCallback(uint8_t endpoint); - -/** @} END Calendar Cluster Callbacks */ - -/** @name Device Management Cluster Callbacks */ -// @{ - -/** @brief Device Management Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfDeviceManagementClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Device Management Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfDeviceManagementClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Device Management Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfDeviceManagementClusterClientInitCallback(uint8_t endpoint); -/** @brief Device Management Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfDeviceManagementClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Device Management Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfDeviceManagementClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Device Management Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfDeviceManagementClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Device Management Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfDeviceManagementClusterClientTickCallback(uint8_t endpoint); -/** @brief Device Management Cluster Get C I N - * - * - * - */ -bool emberAfDeviceManagementClusterGetCINCallback(void); -/** @brief Device Management Cluster Get Change Of Supplier - * - * - * - */ -bool emberAfDeviceManagementClusterGetChangeOfSupplierCallback(void); -/** @brief Device Management Cluster Get Change Of Tenancy - * - * - * - */ -bool emberAfDeviceManagementClusterGetChangeOfTenancyCallback(void); -/** @brief Device Management Cluster Get Event Configuration - * - * - * - * @param eventId Ver.: always - */ -bool emberAfDeviceManagementClusterGetEventConfigurationCallback(uint16_t eventId); -/** @brief Device Management Cluster Get Site Id - * - * - * - */ -bool emberAfDeviceManagementClusterGetSiteIdCallback(void); -/** @brief Device Management Cluster Publish Change Of Supplier - * - * - * - * @param currentProviderId Ver.: always - * @param issuerEventId Ver.: always - * @param tariffType Ver.: always - * @param proposedProviderId Ver.: always - * @param providerChangeImplementationTime Ver.: always - * @param providerChangeControl Ver.: always - * @param proposedProviderName Ver.: always - * @param proposedProviderContactDetails Ver.: always - */ -bool emberAfDeviceManagementClusterPublishChangeOfSupplierCallback(uint32_t currentProviderId, uint32_t issuerEventId, - uint8_t tariffType, uint32_t proposedProviderId, - uint32_t providerChangeImplementationTime, - uint32_t providerChangeControl, uint8_t * proposedProviderName, - uint8_t * proposedProviderContactDetails); -/** @brief Device Management Cluster Publish Change Of Tenancy - * - * - * - * @param providerId Ver.: always - * @param issuerEventId Ver.: always - * @param tariffType Ver.: always - * @param implementationDateTime Ver.: always - * @param proposedTenancyChangeControl Ver.: always - */ -bool emberAfDeviceManagementClusterPublishChangeOfTenancyCallback(uint32_t providerId, uint32_t issuerEventId, uint8_t tariffType, - uint32_t implementationDateTime, - uint32_t proposedTenancyChangeControl); -/** @brief Device Management Cluster Report Event Configuration - * - * - * - * @param commandIndex Ver.: always - * @param totalCommands Ver.: always - * @param eventConfigurationPayload Ver.: always - */ -bool emberAfDeviceManagementClusterReportEventConfigurationCallback(uint8_t commandIndex, uint8_t totalCommands, - uint8_t * eventConfigurationPayload); -/** @brief Device Management Cluster Request New Password - * - * - * - * @param passwordType Ver.: always - */ -bool emberAfDeviceManagementClusterRequestNewPasswordCallback(uint8_t passwordType); -/** @brief Device Management Cluster Request New Password Response - * - * - * - * @param issuerEventId Ver.: always - * @param implementationDateTime Ver.: always - * @param durationInMinutes Ver.: always - * @param passwordType Ver.: always - * @param password Ver.: always - */ -bool emberAfDeviceManagementClusterRequestNewPasswordResponseCallback(uint32_t issuerEventId, uint32_t implementationDateTime, - uint16_t durationInMinutes, uint8_t passwordType, - uint8_t * password); -/** @brief Device Management Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfDeviceManagementClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Device Management Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfDeviceManagementClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Device Management Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfDeviceManagementClusterServerInitCallback(uint8_t endpoint); -/** @brief Device Management Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfDeviceManagementClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Device Management Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfDeviceManagementClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Device Management Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfDeviceManagementClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Device Management Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfDeviceManagementClusterServerTickCallback(uint8_t endpoint); -/** @brief Device Management Cluster Set Event Configuration - * - * - * - * @param issuerEventId Ver.: always - * @param startDateTime Ver.: always - * @param eventConfiguration Ver.: always - * @param configurationControl Ver.: always - * @param eventConfigurationPayload Ver.: always - */ -bool emberAfDeviceManagementClusterSetEventConfigurationCallback(uint32_t issuerEventId, uint32_t startDateTime, - uint8_t eventConfiguration, uint8_t configurationControl, - uint8_t * eventConfigurationPayload); -/** @brief Device Management Cluster Update C I N - * - * - * - * @param issuerEventId Ver.: always - * @param implementationTime Ver.: always - * @param providerId Ver.: always - * @param customerIdNumber Ver.: always - */ -bool emberAfDeviceManagementClusterUpdateCINCallback(uint32_t issuerEventId, uint32_t implementationTime, uint32_t providerId, - uint8_t * customerIdNumber); -/** @brief Device Management Cluster Update Site Id - * - * - * - * @param issuerEventId Ver.: always - * @param siteIdTime Ver.: always - * @param providerId Ver.: always - * @param siteId Ver.: always - */ -bool emberAfDeviceManagementClusterUpdateSiteIdCallback(uint32_t issuerEventId, uint32_t siteIdTime, uint32_t providerId, - uint8_t * siteId); - -/** @} END Device Management Cluster Callbacks */ - -/** @name Events Cluster Callbacks */ -// @{ - -/** @brief Events Cluster Clear Event Log Request - * - * - * - * @param logId Ver.: always - */ -bool emberAfEventsClusterClearEventLogRequestCallback(uint8_t logId); -/** @brief Events Cluster Clear Event Log Response - * - * - * - * @param clearedEventsLogs Ver.: always - */ -bool emberAfEventsClusterClearEventLogResponseCallback(uint8_t clearedEventsLogs); -/** @brief Events Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfEventsClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Events Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfEventsClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Events Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfEventsClusterClientInitCallback(uint8_t endpoint); -/** @brief Events Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfEventsClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Events Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfEventsClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Events Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfEventsClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Events Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfEventsClusterClientTickCallback(uint8_t endpoint); -/** @brief Events Cluster Get Event Log - * - * - * - * @param eventControlLogId Ver.: always - * @param eventId Ver.: always - * @param startTime Ver.: always - * @param endTime Ver.: always - * @param numberOfEvents Ver.: always - * @param eventOffset Ver.: always - */ -bool emberAfEventsClusterGetEventLogCallback(uint8_t eventControlLogId, uint16_t eventId, uint32_t startTime, uint32_t endTime, - uint8_t numberOfEvents, uint16_t eventOffset); -/** @brief Events Cluster Publish Event - * - * - * - * @param logId Ver.: always - * @param eventId Ver.: always - * @param eventTime Ver.: always - * @param eventControl Ver.: always - * @param eventData Ver.: always - */ -bool emberAfEventsClusterPublishEventCallback(uint8_t logId, uint16_t eventId, uint32_t eventTime, uint8_t eventControl, - uint8_t * eventData); -/** @brief Events Cluster Publish Event Log - * - * - * - * @param totalNumberOfEvents Ver.: always - * @param commandIndex Ver.: always - * @param totalCommands Ver.: always - * @param logPayloadControl Ver.: always - * @param logPayload Ver.: always - */ -bool emberAfEventsClusterPublishEventLogCallback(uint16_t totalNumberOfEvents, uint8_t commandIndex, uint8_t totalCommands, - uint8_t logPayloadControl, uint8_t * logPayload); -/** @brief Events Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfEventsClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Events Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfEventsClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Events Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfEventsClusterServerInitCallback(uint8_t endpoint); -/** @brief Events Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfEventsClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Events Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfEventsClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Events Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfEventsClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Events Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfEventsClusterServerTickCallback(uint8_t endpoint); - -/** @} END Events Cluster Callbacks */ - -/** @name MDU Pairing Cluster Callbacks */ -// @{ - -/** @brief MDU Pairing Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfMduPairingClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief MDU Pairing Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfMduPairingClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief MDU Pairing Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfMduPairingClusterClientInitCallback(uint8_t endpoint); -/** @brief MDU Pairing Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfMduPairingClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief MDU Pairing Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfMduPairingClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief MDU Pairing Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfMduPairingClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief MDU Pairing Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfMduPairingClusterClientTickCallback(uint8_t endpoint); -/** @brief MDU Pairing Cluster Pairing Request - * - * - * - * @param localPairingInformationVersion Ver.: always - * @param eui64OfRequestingDevice Ver.: always - */ -bool emberAfMduPairingClusterPairingRequestCallback(uint32_t localPairingInformationVersion, uint8_t * eui64OfRequestingDevice); -/** @brief MDU Pairing Cluster Pairing Response - * - * - * - * @param pairingInformationVersion Ver.: always - * @param totalNumberOfDevices Ver.: always - * @param commandIndex Ver.: always - * @param totalNumberOfCommands Ver.: always - * @param eui64s Ver.: always - */ -bool emberAfMduPairingClusterPairingResponseCallback(uint32_t pairingInformationVersion, uint8_t totalNumberOfDevices, - uint8_t commandIndex, uint8_t totalNumberOfCommands, uint8_t * eui64s); -/** @brief MDU Pairing Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfMduPairingClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief MDU Pairing Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfMduPairingClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief MDU Pairing Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfMduPairingClusterServerInitCallback(uint8_t endpoint); -/** @brief MDU Pairing Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfMduPairingClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief MDU Pairing Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfMduPairingClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief MDU Pairing Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfMduPairingClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief MDU Pairing Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfMduPairingClusterServerTickCallback(uint8_t endpoint); - -/** @} END MDU Pairing Cluster Callbacks */ - -/** @name Sub-GHz Cluster Callbacks */ -// @{ - -/** @brief Sub-GHz Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfSubGhzClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Sub-GHz Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfSubGhzClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Sub-GHz Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfSubGhzClusterClientInitCallback(uint8_t endpoint); -/** @brief Sub-GHz Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfSubGhzClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Sub-GHz Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfSubGhzClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Sub-GHz Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfSubGhzClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Sub-GHz Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfSubGhzClusterClientTickCallback(uint8_t endpoint); -/** @brief Sub-GHz Cluster Get Suspend Zcl Messages Status - * - * - * - */ -bool emberAfSubGhzClusterGetSuspendZclMessagesStatusCallback(void); -/** @brief Sub-GHz Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfSubGhzClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Sub-GHz Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfSubGhzClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Sub-GHz Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfSubGhzClusterServerInitCallback(uint8_t endpoint); -/** @brief Sub-GHz Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfSubGhzClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Sub-GHz Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfSubGhzClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Sub-GHz Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfSubGhzClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Sub-GHz Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfSubGhzClusterServerTickCallback(uint8_t endpoint); -/** @brief Sub-GHz Cluster Suspend Zcl Messages - * - * - * - * @param period Ver.: always - */ -bool emberAfSubGhzClusterSuspendZclMessagesCallback(uint8_t period); - -/** @} END Sub-GHz Cluster Callbacks */ - -/** @name Key Establishment Cluster Callbacks */ -// @{ - -/** @brief Key Establishment Cluster Client Command Received - * - * This function is called by the application framework when a server-to-client - * key establishment command is received but has yet to be handled by the - * framework code. This function should return a bool value indicating whether - * the command has been handled by the application code and should not be - * further processed by the framework. - * - * @param cmd Ver.: always - */ -bool emberAfKeyEstablishmentClusterClientCommandReceivedCallback(EmberAfClusterCommand * cmd); -/** @brief Key Establishment Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfKeyEstablishmentClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Key Establishment Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfKeyEstablishmentClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Key Establishment Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfKeyEstablishmentClusterClientInitCallback(uint8_t endpoint); -/** @brief Key Establishment Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfKeyEstablishmentClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Key Establishment Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfKeyEstablishmentClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Key Establishment Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfKeyEstablishmentClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Key Establishment Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfKeyEstablishmentClusterClientTickCallback(uint8_t endpoint); -/** @brief Key Establishment Cluster Confirm Key Data Request - * - * - * - * @param secureMessageAuthenticationCode Ver.: always - */ -bool emberAfKeyEstablishmentClusterConfirmKeyDataRequestCallback(uint8_t * secureMessageAuthenticationCode); -/** @brief Key Establishment Cluster Confirm Key Data Response - * - * - * - * @param secureMessageAuthenticationCode Ver.: always - */ -bool emberAfKeyEstablishmentClusterConfirmKeyDataResponseCallback(uint8_t * secureMessageAuthenticationCode); -/** @brief Key Establishment Cluster Ephemeral Data Request - * - * - * - * @param ephemeralData Ver.: always - */ -bool emberAfKeyEstablishmentClusterEphemeralDataRequestCallback(uint8_t * ephemeralData); -/** @brief Key Establishment Cluster Ephemeral Data Response - * - * - * - * @param ephemeralData Ver.: always - */ -bool emberAfKeyEstablishmentClusterEphemeralDataResponseCallback(uint8_t * ephemeralData); -/** @brief Key Establishment Cluster Initiate Key Establishment Request - * - * - * - * @param keyEstablishmentSuite Ver.: always - * @param ephemeralDataGenerateTime Ver.: always - * @param confirmKeyGenerateTime Ver.: always - * @param identity Ver.: always - */ -bool emberAfKeyEstablishmentClusterInitiateKeyEstablishmentRequestCallback(uint16_t keyEstablishmentSuite, - uint8_t ephemeralDataGenerateTime, - uint8_t confirmKeyGenerateTime, uint8_t * identity); -/** @brief Key Establishment Cluster Initiate Key Establishment Response - * - * - * - * @param requestedKeyEstablishmentSuite Ver.: always - * @param ephemeralDataGenerateTime Ver.: always - * @param confirmKeyGenerateTime Ver.: always - * @param identity Ver.: always - */ -bool emberAfKeyEstablishmentClusterInitiateKeyEstablishmentResponseCallback(uint16_t requestedKeyEstablishmentSuite, - uint8_t ephemeralDataGenerateTime, - uint8_t confirmKeyGenerateTime, uint8_t * identity); -/** @brief Key Establishment Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfKeyEstablishmentClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Key Establishment Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfKeyEstablishmentClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Key Establishment Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfKeyEstablishmentClusterServerInitCallback(uint8_t endpoint); -/** @brief Key Establishment Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfKeyEstablishmentClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Key Establishment Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfKeyEstablishmentClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Key Establishment Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfKeyEstablishmentClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Key Establishment Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfKeyEstablishmentClusterServerTickCallback(uint8_t endpoint); -/** @brief Key Establishment Cluster Terminate Key Establishment - * - * - * - * @param statusCode Ver.: always - * @param waitTime Ver.: always - * @param keyEstablishmentSuite Ver.: always - */ -bool emberAfKeyEstablishmentClusterTerminateKeyEstablishmentCallback(uint8_t statusCode, uint8_t waitTime, - uint16_t keyEstablishmentSuite); -/** @brief Key Establishment Cluster Server Command Received - * - * This function is called by the application framework when a client-to-server - * key establishment command is received but has yet to be handled by the - * framework code. This function should return a bool value indicating whether - * the command has been handled by the application code and should not be - * further processed by the framework. - * - * @param cmd Ver.: always - */ -bool emberAfKeyEstablishmentClusterServerCommandReceivedCallback(EmberAfClusterCommand * cmd); - -/** @} END Key Establishment Cluster Callbacks */ - -/** @name Information Cluster Callbacks */ -// @{ - -/** @brief Information Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfInformationClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Information Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfInformationClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Information Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfInformationClusterClientInitCallback(uint8_t endpoint); -/** @brief Information Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfInformationClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Information Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfInformationClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Information Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfInformationClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Information Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfInformationClusterClientTickCallback(uint8_t endpoint); -/** @brief Information Cluster Configure Delivery Enable - * - * - * - * @param enable Ver.: always - */ -bool emberAfInformationClusterConfigureDeliveryEnableCallback(uint8_t enable); -/** @brief Information Cluster Configure Node Description - * - * - * - * @param description Ver.: always - */ -bool emberAfInformationClusterConfigureNodeDescriptionCallback(uint8_t * description); -/** @brief Information Cluster Configure Push Information Timer - * - * - * - * @param timer Ver.: always - */ -bool emberAfInformationClusterConfigurePushInformationTimerCallback(uint32_t timer); -/** @brief Information Cluster Configure Set Root Id - * - * - * - * @param rootId Ver.: always - */ -bool emberAfInformationClusterConfigureSetRootIdCallback(uint16_t rootId); -/** @brief Information Cluster Delete - * - * - * - * @param deletionOptions Ver.: always - * @param contentIds Ver.: always - */ -bool emberAfInformationClusterDeleteCallback(uint8_t deletionOptions, uint8_t * contentIds); -/** @brief Information Cluster Delete Response - * - * - * - * @param notificationList Ver.: always - */ -bool emberAfInformationClusterDeleteResponseCallback(uint8_t * notificationList); -/** @brief Information Cluster Push Information - * - * - * - * @param contents Ver.: always - */ -bool emberAfInformationClusterPushInformationCallback(uint8_t * contents); -/** @brief Information Cluster Push Information Response - * - * - * - * @param notificationList Ver.: always - */ -bool emberAfInformationClusterPushInformationResponseCallback(uint8_t * notificationList); -/** @brief Information Cluster Request Information - * - * - * - * @param inquiryId Ver.: always - * @param dataTypeId Ver.: always - * @param requestInformationPayload Ver.: always - */ -bool emberAfInformationClusterRequestInformationCallback(uint8_t inquiryId, uint8_t dataTypeId, - uint8_t * requestInformationPayload); -/** @brief Information Cluster Request Information Response - * - * - * - * @param number Ver.: always - * @param buffer Ver.: always - */ -bool emberAfInformationClusterRequestInformationResponseCallback(uint8_t number, uint8_t * buffer); -/** @brief Information Cluster Request Preference Confirmation - * - * - * - * @param statusFeedbackList Ver.: always - */ -bool emberAfInformationClusterRequestPreferenceConfirmationCallback(uint8_t * statusFeedbackList); -/** @brief Information Cluster Request Preference Response - * - * - * - * @param statusFeedback Ver.: always - * @param preferenceType Ver.: always - * @param preferencePayload Ver.: always - */ -bool emberAfInformationClusterRequestPreferenceResponseCallback(uint8_t statusFeedback, uint16_t preferenceType, - uint8_t * preferencePayload); -/** @brief Information Cluster Send Preference - * - * - * - * @param preferenceType Ver.: always - * @param preferencePayload Ver.: always - */ -bool emberAfInformationClusterSendPreferenceCallback(uint16_t preferenceType, uint8_t * preferencePayload); -/** @brief Information Cluster Send Preference Response - * - * - * - * @param statusFeedbackList Ver.: always - */ -bool emberAfInformationClusterSendPreferenceResponseCallback(uint8_t * statusFeedbackList); -/** @brief Information Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfInformationClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Information Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfInformationClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Information Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfInformationClusterServerInitCallback(uint8_t endpoint); -/** @brief Information Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfInformationClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Information Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfInformationClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Information Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfInformationClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Information Cluster Server Request Preference - * - * - * - */ -bool emberAfInformationClusterServerRequestPreferenceCallback(void); -/** @brief Information Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfInformationClusterServerTickCallback(uint8_t endpoint); -/** @brief Information Cluster Update - * - * - * - * @param accessControl Ver.: always - * @param option Ver.: always - * @param contents Ver.: always - */ -bool emberAfInformationClusterUpdateCallback(uint8_t accessControl, uint8_t option, uint8_t * contents); -/** @brief Information Cluster Update Response - * - * - * - * @param notificationList Ver.: always - */ -bool emberAfInformationClusterUpdateResponseCallback(uint8_t * notificationList); - -/** @} END Information Cluster Callbacks */ - -/** @name Data Sharing Cluster Callbacks */ -// @{ - -/** @brief Data Sharing Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfDataSharingClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Data Sharing Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfDataSharingClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Data Sharing Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfDataSharingClusterClientInitCallback(uint8_t endpoint); -/** @brief Data Sharing Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfDataSharingClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Data Sharing Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfDataSharingClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Data Sharing Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfDataSharingClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Data Sharing Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfDataSharingClusterClientTickCallback(uint8_t endpoint); -/** @brief Data Sharing Cluster File Transmission - * - * - * - * @param transmitOptions Ver.: always - * @param buffer Ver.: always - */ -bool emberAfDataSharingClusterFileTransmissionCallback(uint8_t transmitOptions, uint8_t * buffer); -/** @brief Data Sharing Cluster Modify File Request - * - * - * - * @param fileIndex Ver.: always - * @param fileStartPosition Ver.: always - * @param octetCount Ver.: always - */ -bool emberAfDataSharingClusterModifyFileRequestCallback(uint16_t fileIndex, uint32_t fileStartPosition, uint32_t octetCount); -/** @brief Data Sharing Cluster Modify Record Request - * - * - * - * @param fileIndex Ver.: always - * @param fileStartRecord Ver.: always - * @param recordCount Ver.: always - */ -bool emberAfDataSharingClusterModifyRecordRequestCallback(uint16_t fileIndex, uint16_t fileStartRecord, uint16_t recordCount); -/** @brief Data Sharing Cluster Read File Request - * - * - * - * @param fileIndex Ver.: always - * @param fileStartPositionAndRequestedOctetCount Ver.: always - */ -bool emberAfDataSharingClusterReadFileRequestCallback(uint16_t fileIndex, uint8_t * fileStartPositionAndRequestedOctetCount); -/** @brief Data Sharing Cluster Read Record Request - * - * - * - * @param fileIndex Ver.: always - * @param fileStartRecordAndRequestedRecordCount Ver.: always - */ -bool emberAfDataSharingClusterReadRecordRequestCallback(uint16_t fileIndex, uint8_t * fileStartRecordAndRequestedRecordCount); -/** @brief Data Sharing Cluster Record Transmission - * - * - * - * @param transmitOptions Ver.: always - * @param buffer Ver.: always - */ -bool emberAfDataSharingClusterRecordTransmissionCallback(uint8_t transmitOptions, uint8_t * buffer); -/** @brief Data Sharing Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfDataSharingClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Data Sharing Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfDataSharingClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Data Sharing Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfDataSharingClusterServerInitCallback(uint8_t endpoint); -/** @brief Data Sharing Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfDataSharingClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Data Sharing Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfDataSharingClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Data Sharing Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfDataSharingClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Data Sharing Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfDataSharingClusterServerTickCallback(uint8_t endpoint); -/** @brief Data Sharing Cluster Write File Request - * - * - * - * @param writeOptions Ver.: always - * @param fileSize Ver.: always - */ -bool emberAfDataSharingClusterWriteFileRequestCallback(uint8_t writeOptions, uint8_t * fileSize); -/** @brief Data Sharing Cluster Write File Response - * - * - * - * @param status Ver.: always - * @param fileIndex Ver.: always - */ -bool emberAfDataSharingClusterWriteFileResponseCallback(uint8_t status, uint8_t * fileIndex); - -/** @} END Data Sharing Cluster Callbacks */ - -/** @name Gaming Cluster Callbacks */ -// @{ - -/** @brief Gaming Cluster Action Control - * - * - * - * @param actions Ver.: always - */ -bool emberAfGamingClusterActionControlCallback(uint32_t actions); -/** @brief Gaming Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfGamingClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Gaming Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfGamingClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Gaming Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfGamingClusterClientInitCallback(uint8_t endpoint); -/** @brief Gaming Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfGamingClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Gaming Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfGamingClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Gaming Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfGamingClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Gaming Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfGamingClusterClientTickCallback(uint8_t endpoint); -/** @brief Gaming Cluster Download Game - * - * - * - */ -bool emberAfGamingClusterDownloadGameCallback(void); -/** @brief Gaming Cluster End Game - * - * - * - */ -bool emberAfGamingClusterEndGameCallback(void); -/** @brief Gaming Cluster Game Announcement - * - * - * - * @param gameId Ver.: always - * @param gameMaster Ver.: always - * @param listOfGame Ver.: always - */ -bool emberAfGamingClusterGameAnnouncementCallback(uint16_t gameId, uint8_t gameMaster, uint8_t * listOfGame); -/** @brief Gaming Cluster General Response - * - * - * - * @param commandId Ver.: always - * @param status Ver.: always - * @param message Ver.: always - */ -bool emberAfGamingClusterGeneralResponseCallback(uint8_t commandId, uint8_t status, uint8_t * message); -/** @brief Gaming Cluster Join Game - * - * - * - * @param gameId Ver.: always - * @param joinAsMaster Ver.: always - * @param nameOfGame Ver.: always - */ -bool emberAfGamingClusterJoinGameCallback(uint16_t gameId, uint8_t joinAsMaster, uint8_t * nameOfGame); -/** @brief Gaming Cluster Pause Game - * - * - * - */ -bool emberAfGamingClusterPauseGameCallback(void); -/** @brief Gaming Cluster Quit Game - * - * - * - */ -bool emberAfGamingClusterQuitGameCallback(void); -/** @brief Gaming Cluster Resume Game - * - * - * - */ -bool emberAfGamingClusterResumeGameCallback(void); -/** @brief Gaming Cluster Search Game - * - * - * - * @param specificGame Ver.: always - * @param gameId Ver.: always - */ -bool emberAfGamingClusterSearchGameCallback(uint8_t specificGame, uint16_t gameId); -/** @brief Gaming Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfGamingClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Gaming Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfGamingClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Gaming Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfGamingClusterServerInitCallback(uint8_t endpoint); -/** @brief Gaming Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfGamingClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Gaming Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfGamingClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Gaming Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfGamingClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Gaming Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfGamingClusterServerTickCallback(uint8_t endpoint); -/** @brief Gaming Cluster Start Game - * - * - * - */ -bool emberAfGamingClusterStartGameCallback(void); -/** @brief Gaming Cluster Start Over - * - * - * - */ -bool emberAfGamingClusterStartOverCallback(void); - -/** @} END Gaming Cluster Callbacks */ - -/** @name Data Rate Control Cluster Callbacks */ -// @{ - -/** @brief Data Rate Control Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfDataRateControlClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Data Rate Control Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfDataRateControlClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Data Rate Control Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfDataRateControlClusterClientInitCallback(uint8_t endpoint); -/** @brief Data Rate Control Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfDataRateControlClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Data Rate Control Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfDataRateControlClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Data Rate Control Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfDataRateControlClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Data Rate Control Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfDataRateControlClusterClientTickCallback(uint8_t endpoint); -/** @brief Data Rate Control Cluster Data Rate Control - * - * - * - * @param originatorAddress Ver.: always - * @param destinationAddress Ver.: always - * @param dataRate Ver.: always - */ -bool emberAfDataRateControlClusterDataRateControlCallback(uint16_t originatorAddress, uint16_t destinationAddress, - uint8_t dataRate); -/** @brief Data Rate Control Cluster Data Rate Notification - * - * - * - * @param originatorAddress Ver.: always - * @param destinationAddress Ver.: always - * @param dataRate Ver.: always - */ -bool emberAfDataRateControlClusterDataRateNotificationCallback(uint16_t originatorAddress, uint16_t destinationAddress, - uint8_t dataRate); -/** @brief Data Rate Control Cluster Path Creation - * - * - * - * @param originatorAddress Ver.: always - * @param destinationAddress Ver.: always - * @param dataRate Ver.: always - */ -bool emberAfDataRateControlClusterPathCreationCallback(uint16_t originatorAddress, uint16_t destinationAddress, uint8_t dataRate); -/** @brief Data Rate Control Cluster Path Deletion - * - * - * - * @param originatorAddress Ver.: always - * @param destinationAddress Ver.: always - */ -bool emberAfDataRateControlClusterPathDeletionCallback(uint16_t originatorAddress, uint16_t destinationAddress); -/** @brief Data Rate Control Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfDataRateControlClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Data Rate Control Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfDataRateControlClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Data Rate Control Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfDataRateControlClusterServerInitCallback(uint8_t endpoint); -/** @brief Data Rate Control Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfDataRateControlClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Data Rate Control Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfDataRateControlClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Data Rate Control Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfDataRateControlClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Data Rate Control Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfDataRateControlClusterServerTickCallback(uint8_t endpoint); - -/** @} END Data Rate Control Cluster Callbacks */ - -/** @name Voice over ZigBee Cluster Callbacks */ -// @{ - -/** @brief Voice over ZigBee Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfVoiceOverZigbeeClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Voice over ZigBee Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfVoiceOverZigbeeClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Voice over ZigBee Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfVoiceOverZigbeeClusterClientInitCallback(uint8_t endpoint); -/** @brief Voice over ZigBee Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfVoiceOverZigbeeClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Voice over ZigBee Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfVoiceOverZigbeeClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Voice over ZigBee Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfVoiceOverZigbeeClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Voice over ZigBee Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfVoiceOverZigbeeClusterClientTickCallback(uint8_t endpoint); -/** @brief Voice over ZigBee Cluster Control - * - * - * - * @param controlType Ver.: always - */ -bool emberAfVoiceOverZigbeeClusterControlCallback(uint8_t controlType); -/** @brief Voice over ZigBee Cluster Control Response - * - * - * - * @param ackNack Ver.: always - */ -bool emberAfVoiceOverZigbeeClusterControlResponseCallback(uint8_t ackNack); -/** @brief Voice over ZigBee Cluster Establishment Request - * - * - * - * @param flag Ver.: always - * @param codecType Ver.: always - * @param sampFreq Ver.: always - * @param codecRate Ver.: always - * @param serviceType Ver.: always - * @param buffer Ver.: always - */ -bool emberAfVoiceOverZigbeeClusterEstablishmentRequestCallback(uint8_t flag, uint8_t codecType, uint8_t sampFreq, uint8_t codecRate, - uint8_t serviceType, uint8_t * buffer); -/** @brief Voice over ZigBee Cluster Establishment Response - * - * - * - * @param ackNack Ver.: always - * @param codecType Ver.: always - */ -bool emberAfVoiceOverZigbeeClusterEstablishmentResponseCallback(uint8_t ackNack, uint8_t codecType); -/** @brief Voice over ZigBee Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfVoiceOverZigbeeClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Voice over ZigBee Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfVoiceOverZigbeeClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Voice over ZigBee Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfVoiceOverZigbeeClusterServerInitCallback(uint8_t endpoint); -/** @brief Voice over ZigBee Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfVoiceOverZigbeeClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Voice over ZigBee Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfVoiceOverZigbeeClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Voice over ZigBee Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfVoiceOverZigbeeClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Voice over ZigBee Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfVoiceOverZigbeeClusterServerTickCallback(uint8_t endpoint); -/** @brief Voice over ZigBee Cluster Voice Transmission - * - * - * - * @param voiceData Ver.: always - */ -bool emberAfVoiceOverZigbeeClusterVoiceTransmissionCallback(uint8_t * voiceData); -/** @brief Voice over ZigBee Cluster Voice Transmission Completion - * - * - * - */ -bool emberAfVoiceOverZigbeeClusterVoiceTransmissionCompletionCallback(void); -/** @brief Voice over ZigBee Cluster Voice Transmission Response - * - * - * - * @param sequenceNumber Ver.: always - * @param errorFlag Ver.: always - */ -bool emberAfVoiceOverZigbeeClusterVoiceTransmissionResponseCallback(uint8_t sequenceNumber, uint8_t errorFlag); - -/** @} END Voice over ZigBee Cluster Callbacks */ - -/** @name Chatting Cluster Callbacks */ -// @{ - -/** @brief Chatting Cluster Chat Message - * - * - * - * @param destinationUid Ver.: always - * @param sourceUid Ver.: always - * @param cid Ver.: always - * @param nickname Ver.: always - * @param message Ver.: always - */ -bool emberAfChattingClusterChatMessageCallback(uint16_t destinationUid, uint16_t sourceUid, uint16_t cid, uint8_t * nickname, - uint8_t * message); -/** @brief Chatting Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfChattingClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Chatting Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfChattingClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Chatting Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfChattingClusterClientInitCallback(uint8_t endpoint); -/** @brief Chatting Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfChattingClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Chatting Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfChattingClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Chatting Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfChattingClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Chatting Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfChattingClusterClientTickCallback(uint8_t endpoint); -/** @brief Chatting Cluster Get Node Information Request - * - * - * - * @param cid Ver.: always - * @param uid Ver.: always - */ -bool emberAfChattingClusterGetNodeInformationRequestCallback(uint16_t cid, uint16_t uid); -/** @brief Chatting Cluster Get Node Information Response - * - * - * - * @param status Ver.: always - * @param cid Ver.: always - * @param uid Ver.: always - * @param addressEndpointAndNickname Ver.: always - */ -bool emberAfChattingClusterGetNodeInformationResponseCallback(uint8_t status, uint16_t cid, uint16_t uid, - uint8_t * addressEndpointAndNickname); -/** @brief Chatting Cluster Join Chat Request - * - * - * - * @param uid Ver.: always - * @param nickname Ver.: always - * @param cid Ver.: always - */ -bool emberAfChattingClusterJoinChatRequestCallback(uint16_t uid, uint8_t * nickname, uint16_t cid); -/** @brief Chatting Cluster Join Chat Response - * - * - * - * @param status Ver.: always - * @param cid Ver.: always - * @param chatParticipantList Ver.: always - */ -bool emberAfChattingClusterJoinChatResponseCallback(uint8_t status, uint16_t cid, uint8_t * chatParticipantList); -/** @brief Chatting Cluster Leave Chat Request - * - * - * - * @param cid Ver.: always - * @param uid Ver.: always - */ -bool emberAfChattingClusterLeaveChatRequestCallback(uint16_t cid, uint16_t uid); -/** @brief Chatting Cluster Search Chat Request - * - * - * - */ -bool emberAfChattingClusterSearchChatRequestCallback(void); -/** @brief Chatting Cluster Search Chat Response - * - * - * - * @param options Ver.: always - * @param chatRoomList Ver.: always - */ -bool emberAfChattingClusterSearchChatResponseCallback(uint8_t options, uint8_t * chatRoomList); -/** @brief Chatting Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfChattingClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Chatting Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfChattingClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Chatting Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfChattingClusterServerInitCallback(uint8_t endpoint); -/** @brief Chatting Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfChattingClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Chatting Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfChattingClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Chatting Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfChattingClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Chatting Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfChattingClusterServerTickCallback(uint8_t endpoint); -/** @brief Chatting Cluster Start Chat Request - * - * - * - * @param name Ver.: always - * @param uid Ver.: always - * @param nickname Ver.: always - */ -bool emberAfChattingClusterStartChatRequestCallback(uint8_t * name, uint16_t uid, uint8_t * nickname); -/** @brief Chatting Cluster Start Chat Response - * - * - * - * @param status Ver.: always - * @param cid Ver.: always - */ -bool emberAfChattingClusterStartChatResponseCallback(uint8_t status, uint16_t cid); -/** @brief Chatting Cluster Switch Chairman Confirm - * - * - * - * @param cid Ver.: always - * @param nodeInformationList Ver.: always - */ -bool emberAfChattingClusterSwitchChairmanConfirmCallback(uint16_t cid, uint8_t * nodeInformationList); -/** @brief Chatting Cluster Switch Chairman Notification - * - * - * - * @param cid Ver.: always - * @param uid Ver.: always - * @param address Ver.: always - * @param endpoint Ver.: always - */ -bool emberAfChattingClusterSwitchChairmanNotificationCallback(uint16_t cid, uint16_t uid, uint16_t address, uint8_t endpoint); -/** @brief Chatting Cluster Switch Chairman Request - * - * - * - * @param cid Ver.: always - */ -bool emberAfChattingClusterSwitchChairmanRequestCallback(uint16_t cid); -/** @brief Chatting Cluster Switch Chairman Response - * - * - * - * @param cid Ver.: always - * @param uid Ver.: always - */ -bool emberAfChattingClusterSwitchChairmanResponseCallback(uint16_t cid, uint16_t uid); -/** @brief Chatting Cluster User Joined - * - * - * - * @param cid Ver.: always - * @param uid Ver.: always - * @param nickname Ver.: always - */ -bool emberAfChattingClusterUserJoinedCallback(uint16_t cid, uint16_t uid, uint8_t * nickname); -/** @brief Chatting Cluster User Left - * - * - * - * @param cid Ver.: always - * @param uid Ver.: always - * @param nickname Ver.: always - */ -bool emberAfChattingClusterUserLeftCallback(uint16_t cid, uint16_t uid, uint8_t * nickname); - -/** @} END Chatting Cluster Callbacks */ - -/** @name Payment Cluster Callbacks */ -// @{ - -/** @brief Payment Cluster Accept Payment - * - * - * - * @param userId Ver.: always - * @param userType Ver.: always - * @param serviceId Ver.: always - * @param goodId Ver.: always - */ -bool emberAfPaymentClusterAcceptPaymentCallback(uint8_t * userId, uint16_t userType, uint16_t serviceId, uint8_t * goodId); -/** @brief Payment Cluster Buy Confirm - * - * - * - * @param serialNumber Ver.: always - * @param currency Ver.: always - * @param priceTrailingDigit Ver.: always - * @param price Ver.: always - * @param timestamp Ver.: always - * @param transId Ver.: always - * @param transStatus Ver.: always - */ -bool emberAfPaymentClusterBuyConfirmCallback(uint8_t * serialNumber, uint32_t currency, uint8_t priceTrailingDigit, uint32_t price, - uint8_t * timestamp, uint16_t transId, uint8_t transStatus); -/** @brief Payment Cluster Buy Request - * - * - * - * @param userId Ver.: always - * @param userType Ver.: always - * @param serviceId Ver.: always - * @param goodId Ver.: always - */ -bool emberAfPaymentClusterBuyRequestCallback(uint8_t * userId, uint16_t userType, uint16_t serviceId, uint8_t * goodId); -/** @brief Payment Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfPaymentClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Payment Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfPaymentClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Payment Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfPaymentClusterClientInitCallback(uint8_t endpoint); -/** @brief Payment Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfPaymentClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Payment Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfPaymentClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Payment Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfPaymentClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Payment Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfPaymentClusterClientTickCallback(uint8_t endpoint); -/** @brief Payment Cluster Payment Confirm - * - * - * - * @param serialNumber Ver.: always - * @param transId Ver.: always - * @param transStatus Ver.: always - */ -bool emberAfPaymentClusterPaymentConfirmCallback(uint8_t * serialNumber, uint16_t transId, uint8_t transStatus); -/** @brief Payment Cluster Receipt Delivery - * - * - * - * @param serialNumber Ver.: always - * @param currency Ver.: always - * @param priceTrailingDigit Ver.: always - * @param price Ver.: always - * @param timestamp Ver.: always - */ -bool emberAfPaymentClusterReceiptDeliveryCallback(uint8_t * serialNumber, uint32_t currency, uint8_t priceTrailingDigit, - uint32_t price, uint8_t * timestamp); -/** @brief Payment Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfPaymentClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Payment Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfPaymentClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Payment Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfPaymentClusterServerInitCallback(uint8_t endpoint); -/** @brief Payment Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfPaymentClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Payment Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfPaymentClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Payment Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfPaymentClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Payment Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfPaymentClusterServerTickCallback(uint8_t endpoint); -/** @brief Payment Cluster Transaction End - * - * - * - * @param serialNumber Ver.: always - * @param status Ver.: always - */ -bool emberAfPaymentClusterTransactionEndCallback(uint8_t * serialNumber, uint8_t status); - -/** @} END Payment Cluster Callbacks */ - -/** @name Billing Cluster Callbacks */ -// @{ - -/** @brief Billing Cluster Bill Status Notification - * - * - * - * @param userId Ver.: always - * @param status Ver.: always - */ -bool emberAfBillingClusterBillStatusNotificationCallback(uint8_t * userId, uint8_t status); -/** @brief Billing Cluster Check Bill Status - * - * - * - * @param userId Ver.: always - * @param serviceId Ver.: always - * @param serviceProviderId Ver.: always - */ -bool emberAfBillingClusterCheckBillStatusCallback(uint8_t * userId, uint16_t serviceId, uint16_t serviceProviderId); -/** @brief Billing Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfBillingClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Billing Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfBillingClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Billing Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfBillingClusterClientInitCallback(uint8_t endpoint); -/** @brief Billing Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfBillingClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Billing Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfBillingClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Billing Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfBillingClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Billing Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfBillingClusterClientTickCallback(uint8_t endpoint); -/** @brief Billing Cluster Send Bill Record - * - * - * - * @param userId Ver.: always - * @param serviceId Ver.: always - * @param serviceProviderId Ver.: always - * @param timestamp Ver.: always - * @param duration Ver.: always - */ -bool emberAfBillingClusterSendBillRecordCallback(uint8_t * userId, uint16_t serviceId, uint16_t serviceProviderId, - uint8_t * timestamp, uint16_t duration); -/** @brief Billing Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfBillingClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Billing Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfBillingClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Billing Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfBillingClusterServerInitCallback(uint8_t endpoint); -/** @brief Billing Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfBillingClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Billing Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfBillingClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Billing Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfBillingClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Billing Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfBillingClusterServerTickCallback(uint8_t endpoint); -/** @brief Billing Cluster Session Keep Alive - * - * - * - * @param userId Ver.: always - * @param serviceId Ver.: always - * @param serviceProviderId Ver.: always - */ -bool emberAfBillingClusterSessionKeepAliveCallback(uint8_t * userId, uint16_t serviceId, uint16_t serviceProviderId); -/** @brief Billing Cluster Start Billing Session - * - * - * - * @param userId Ver.: always - * @param serviceId Ver.: always - * @param serviceProviderId Ver.: always - */ -bool emberAfBillingClusterStartBillingSessionCallback(uint8_t * userId, uint16_t serviceId, uint16_t serviceProviderId); -/** @brief Billing Cluster Stop Billing Session - * - * - * - * @param userId Ver.: always - * @param serviceId Ver.: always - * @param serviceProviderId Ver.: always - */ -bool emberAfBillingClusterStopBillingSessionCallback(uint8_t * userId, uint16_t serviceId, uint16_t serviceProviderId); -/** @brief Billing Cluster Subscribe - * - * - * - * @param userId Ver.: always - * @param serviceId Ver.: always - * @param serviceProviderId Ver.: always - */ -bool emberAfBillingClusterSubscribeCallback(uint8_t * userId, uint16_t serviceId, uint16_t serviceProviderId); -/** @brief Billing Cluster Unsubscribe - * - * - * - * @param userId Ver.: always - * @param serviceId Ver.: always - * @param serviceProviderId Ver.: always - */ -bool emberAfBillingClusterUnsubscribeCallback(uint8_t * userId, uint16_t serviceId, uint16_t serviceProviderId); - -/** @} END Billing Cluster Callbacks */ - -/** @name Appliance Identification Cluster Callbacks */ -// @{ - -/** @brief Appliance Identification Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfApplianceIdentificationClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Appliance Identification Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfApplianceIdentificationClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Appliance Identification Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfApplianceIdentificationClusterClientInitCallback(uint8_t endpoint); -/** @brief Appliance Identification Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfApplianceIdentificationClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Appliance Identification Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfApplianceIdentificationClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Appliance Identification Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfApplianceIdentificationClusterClientPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Appliance Identification Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfApplianceIdentificationClusterClientTickCallback(uint8_t endpoint); -/** @brief Appliance Identification Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfApplianceIdentificationClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Appliance Identification Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfApplianceIdentificationClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Appliance Identification Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfApplianceIdentificationClusterServerInitCallback(uint8_t endpoint); -/** @brief Appliance Identification Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfApplianceIdentificationClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Appliance Identification Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfApplianceIdentificationClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Appliance Identification Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfApplianceIdentificationClusterServerPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Appliance Identification Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfApplianceIdentificationClusterServerTickCallback(uint8_t endpoint); - -/** @} END Appliance Identification Cluster Callbacks */ - -/** @name Meter Identification Cluster Callbacks */ -// @{ - -/** @brief Meter Identification Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfMeterIdentificationClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Meter Identification Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfMeterIdentificationClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Meter Identification Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfMeterIdentificationClusterClientInitCallback(uint8_t endpoint); -/** @brief Meter Identification Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfMeterIdentificationClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Meter Identification Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfMeterIdentificationClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Meter Identification Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfMeterIdentificationClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Meter Identification Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfMeterIdentificationClusterClientTickCallback(uint8_t endpoint); -/** @brief Meter Identification Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfMeterIdentificationClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Meter Identification Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfMeterIdentificationClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Meter Identification Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfMeterIdentificationClusterServerInitCallback(uint8_t endpoint); -/** @brief Meter Identification Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfMeterIdentificationClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Meter Identification Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfMeterIdentificationClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Meter Identification Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfMeterIdentificationClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Meter Identification Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfMeterIdentificationClusterServerTickCallback(uint8_t endpoint); - -/** @} END Meter Identification Cluster Callbacks */ - -/** @name Appliance Events and Alert Cluster Callbacks */ -// @{ - -/** @brief Appliance Events and Alert Cluster Alerts Notification - * - * - * - * @param alertsCount Ver.: always - * @param alertStructures Ver.: always - */ -bool emberAfApplianceEventsAndAlertClusterAlertsNotificationCallback(uint8_t alertsCount, uint8_t * alertStructures); -/** @brief Appliance Events and Alert Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfApplianceEventsAndAlertClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Appliance Events and Alert Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfApplianceEventsAndAlertClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Appliance Events and Alert Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfApplianceEventsAndAlertClusterClientInitCallback(uint8_t endpoint); -/** @brief Appliance Events and Alert Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfApplianceEventsAndAlertClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Appliance Events and Alert Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfApplianceEventsAndAlertClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Appliance Events and Alert Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfApplianceEventsAndAlertClusterClientPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Appliance Events and Alert Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfApplianceEventsAndAlertClusterClientTickCallback(uint8_t endpoint); -/** @brief Appliance Events and Alert Cluster Events Notification - * - * - * - * @param eventHeader Ver.: always - * @param eventId Ver.: always - */ -bool emberAfApplianceEventsAndAlertClusterEventsNotificationCallback(uint8_t eventHeader, uint8_t eventId); -/** @brief Appliance Events and Alert Cluster Get Alerts - * - * - * - */ -bool emberAfApplianceEventsAndAlertClusterGetAlertsCallback(void); -/** @brief Appliance Events and Alert Cluster Get Alerts Response - * - * - * - * @param alertsCount Ver.: always - * @param alertStructures Ver.: always - */ -bool emberAfApplianceEventsAndAlertClusterGetAlertsResponseCallback(uint8_t alertsCount, uint8_t * alertStructures); -/** @brief Appliance Events and Alert Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfApplianceEventsAndAlertClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Appliance Events and Alert Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfApplianceEventsAndAlertClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Appliance Events and Alert Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfApplianceEventsAndAlertClusterServerInitCallback(uint8_t endpoint); -/** @brief Appliance Events and Alert Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfApplianceEventsAndAlertClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Appliance Events and Alert Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfApplianceEventsAndAlertClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Appliance Events and Alert Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfApplianceEventsAndAlertClusterServerPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Appliance Events and Alert Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfApplianceEventsAndAlertClusterServerTickCallback(uint8_t endpoint); - -/** @} END Appliance Events and Alert Cluster Callbacks */ - -/** @name Appliance Statistics Cluster Callbacks */ -// @{ - -/** @brief Appliance Statistics Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfApplianceStatisticsClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Appliance Statistics Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfApplianceStatisticsClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Appliance Statistics Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfApplianceStatisticsClusterClientInitCallback(uint8_t endpoint); -/** @brief Appliance Statistics Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfApplianceStatisticsClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Appliance Statistics Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfApplianceStatisticsClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Appliance Statistics Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfApplianceStatisticsClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Appliance Statistics Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfApplianceStatisticsClusterClientTickCallback(uint8_t endpoint); -/** @brief Appliance Statistics Cluster Log Notification - * - * - * - * @param timeStamp Ver.: always - * @param logId Ver.: always - * @param logLength Ver.: always - * @param logPayload Ver.: always - */ -bool emberAfApplianceStatisticsClusterLogNotificationCallback(uint32_t timeStamp, uint32_t logId, uint32_t logLength, - uint8_t * logPayload); -/** @brief Appliance Statistics Cluster Log Queue Request - * - * - * - */ -bool emberAfApplianceStatisticsClusterLogQueueRequestCallback(void); -/** @brief Appliance Statistics Cluster Log Queue Response - * - * - * - * @param logQueueSize Ver.: always - * @param logIds Ver.: always - */ -bool emberAfApplianceStatisticsClusterLogQueueResponseCallback(uint8_t logQueueSize, uint8_t * logIds); -/** @brief Appliance Statistics Cluster Log Request - * - * - * - * @param logId Ver.: always - */ -bool emberAfApplianceStatisticsClusterLogRequestCallback(uint32_t logId); -/** @brief Appliance Statistics Cluster Log Response - * - * - * - * @param timeStamp Ver.: always - * @param logId Ver.: always - * @param logLength Ver.: always - * @param logPayload Ver.: always - */ -bool emberAfApplianceStatisticsClusterLogResponseCallback(uint32_t timeStamp, uint32_t logId, uint32_t logLength, - uint8_t * logPayload); -/** @brief Appliance Statistics Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfApplianceStatisticsClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Appliance Statistics Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfApplianceStatisticsClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Appliance Statistics Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfApplianceStatisticsClusterServerInitCallback(uint8_t endpoint); -/** @brief Appliance Statistics Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfApplianceStatisticsClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Appliance Statistics Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfApplianceStatisticsClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Appliance Statistics Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfApplianceStatisticsClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Appliance Statistics Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfApplianceStatisticsClusterServerTickCallback(uint8_t endpoint); -/** @brief Appliance Statistics Cluster Statistics Available - * - * - * - * @param logQueueSize Ver.: always - * @param logIds Ver.: always - */ -bool emberAfApplianceStatisticsClusterStatisticsAvailableCallback(uint8_t logQueueSize, uint8_t * logIds); - -/** @} END Appliance Statistics Cluster Callbacks */ - -/** @name Electrical Measurement Cluster Callbacks */ -// @{ - -/** @brief Electrical Measurement Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfElectricalMeasurementClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Electrical Measurement Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfElectricalMeasurementClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Electrical Measurement Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfElectricalMeasurementClusterClientInitCallback(uint8_t endpoint); -/** @brief Electrical Measurement Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfElectricalMeasurementClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Electrical Measurement Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfElectricalMeasurementClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Electrical Measurement Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfElectricalMeasurementClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Electrical Measurement Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfElectricalMeasurementClusterClientTickCallback(uint8_t endpoint); -/** @brief Electrical Measurement Cluster Get Measurement Profile Command - * - * - * - * @param attributeId Ver.: always - * @param startTime Ver.: always - * @param numberOfIntervals Ver.: always - */ -bool emberAfElectricalMeasurementClusterGetMeasurementProfileCommandCallback(uint16_t attributeId, uint32_t startTime, - uint8_t numberOfIntervals); -/** @brief Electrical Measurement Cluster Get Measurement Profile Response Command - * - * - * - * @param startTime Ver.: always - * @param status Ver.: always - * @param profileIntervalPeriod Ver.: always - * @param numberOfIntervalsDelivered Ver.: always - * @param attributeId Ver.: always - * @param intervals Ver.: always - */ -bool emberAfElectricalMeasurementClusterGetMeasurementProfileResponseCommandCallback(uint32_t startTime, uint8_t status, - uint8_t profileIntervalPeriod, - uint8_t numberOfIntervalsDelivered, - uint16_t attributeId, uint8_t * intervals); -/** @brief Electrical Measurement Cluster Get Profile Info Command - * - * - * - */ -bool emberAfElectricalMeasurementClusterGetProfileInfoCommandCallback(void); -/** @brief Electrical Measurement Cluster Get Profile Info Response Command - * - * - * - * @param profileCount Ver.: always - * @param profileIntervalPeriod Ver.: always - * @param maxNumberOfIntervals Ver.: always - * @param listOfAttributes Ver.: always - */ -bool emberAfElectricalMeasurementClusterGetProfileInfoResponseCommandCallback(uint8_t profileCount, uint8_t profileIntervalPeriod, - uint8_t maxNumberOfIntervals, - uint8_t * listOfAttributes); -/** @brief Electrical Measurement Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfElectricalMeasurementClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Electrical Measurement Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfElectricalMeasurementClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Electrical Measurement Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfElectricalMeasurementClusterServerInitCallback(uint8_t endpoint); -/** @brief Electrical Measurement Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfElectricalMeasurementClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Electrical Measurement Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfElectricalMeasurementClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Electrical Measurement Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfElectricalMeasurementClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Electrical Measurement Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfElectricalMeasurementClusterServerTickCallback(uint8_t endpoint); - -/** @} END Electrical Measurement Cluster Callbacks */ - -/** @name Diagnostics Cluster Callbacks */ -// @{ - -/** @brief Diagnostics Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfDiagnosticsClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Diagnostics Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfDiagnosticsClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Diagnostics Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfDiagnosticsClusterClientInitCallback(uint8_t endpoint); -/** @brief Diagnostics Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfDiagnosticsClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Diagnostics Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfDiagnosticsClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Diagnostics Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfDiagnosticsClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Diagnostics Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfDiagnosticsClusterClientTickCallback(uint8_t endpoint); -/** @brief Diagnostics Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfDiagnosticsClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Diagnostics Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfDiagnosticsClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Diagnostics Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfDiagnosticsClusterServerInitCallback(uint8_t endpoint); -/** @brief Diagnostics Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfDiagnosticsClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Diagnostics Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfDiagnosticsClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Diagnostics Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfDiagnosticsClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Diagnostics Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfDiagnosticsClusterServerTickCallback(uint8_t endpoint); - -/** @} END Diagnostics Cluster Callbacks */ - -/** @name ZLL Commissioning Cluster Callbacks */ -// @{ - -/** @brief ZLL Commissioning Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfZllCommissioningClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief ZLL Commissioning Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfZllCommissioningClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief ZLL Commissioning Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfZllCommissioningClusterClientInitCallback(uint8_t endpoint); -/** @brief ZLL Commissioning Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfZllCommissioningClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief ZLL Commissioning Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfZllCommissioningClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief ZLL Commissioning Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfZllCommissioningClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief ZLL Commissioning Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfZllCommissioningClusterClientTickCallback(uint8_t endpoint); -/** @brief ZLL Commissioning Cluster Device Information Request - * - * - * - * @param transaction Ver.: always - * @param startIndex Ver.: always - */ -bool emberAfZllCommissioningClusterDeviceInformationRequestCallback(uint32_t transaction, uint8_t startIndex); -/** @brief ZLL Commissioning Cluster Device Information Response - * - * - * - * @param transaction Ver.: always - * @param numberOfSubDevices Ver.: always - * @param startIndex Ver.: always - * @param deviceInformationRecordCount Ver.: always - * @param deviceInformationRecordList Ver.: always - */ -bool emberAfZllCommissioningClusterDeviceInformationResponseCallback(uint32_t transaction, uint8_t numberOfSubDevices, - uint8_t startIndex, uint8_t deviceInformationRecordCount, - uint8_t * deviceInformationRecordList); -/** @brief ZLL Commissioning Cluster Endpoint Information - * - * - * - * @param ieeeAddress Ver.: always - * @param networkAddress Ver.: always - * @param endpointId Ver.: always - * @param profileId Ver.: always - * @param deviceId Ver.: always - * @param version Ver.: always - */ -bool emberAfZllCommissioningClusterEndpointInformationCallback(uint8_t * ieeeAddress, uint16_t networkAddress, uint8_t endpointId, - uint16_t profileId, uint16_t deviceId, uint8_t version); -/** @brief ZLL Commissioning Cluster Get Endpoint List Request - * - * - * - * @param startIndex Ver.: always - */ -bool emberAfZllCommissioningClusterGetEndpointListRequestCallback(uint8_t startIndex); -/** @brief ZLL Commissioning Cluster Get Endpoint List Response - * - * - * - * @param total Ver.: always - * @param startIndex Ver.: always - * @param count Ver.: always - * @param endpointInformationRecordList Ver.: always - */ -bool emberAfZllCommissioningClusterGetEndpointListResponseCallback(uint8_t total, uint8_t startIndex, uint8_t count, - uint8_t * endpointInformationRecordList); -/** @brief ZLL Commissioning Cluster Get Group Identifiers Request - * - * - * - * @param startIndex Ver.: always - */ -bool emberAfZllCommissioningClusterGetGroupIdentifiersRequestCallback(uint8_t startIndex); -/** @brief ZLL Commissioning Cluster Get Group Identifiers Response - * - * - * - * @param total Ver.: always - * @param startIndex Ver.: always - * @param count Ver.: always - * @param groupInformationRecordList Ver.: always - */ -bool emberAfZllCommissioningClusterGetGroupIdentifiersResponseCallback(uint8_t total, uint8_t startIndex, uint8_t count, - uint8_t * groupInformationRecordList); -/** @brief ZLL Commissioning Cluster Identify Request - * - * - * - * @param transaction Ver.: always - * @param identifyDuration Ver.: always - */ -bool emberAfZllCommissioningClusterIdentifyRequestCallback(uint32_t transaction, uint16_t identifyDuration); -/** @brief ZLL Commissioning Cluster Network Join End Device Request - * - * - * - * @param transaction Ver.: always - * @param extendedPanId Ver.: always - * @param keyIndex Ver.: always - * @param encryptedNetworkKey Ver.: always - * @param networkUpdateId Ver.: always - * @param logicalChannel Ver.: always - * @param panId Ver.: always - * @param networkAddress Ver.: always - * @param groupIdentifiersBegin Ver.: always - * @param groupIdentifiersEnd Ver.: always - * @param freeNetworkAddressRangeBegin Ver.: always - * @param freeNetworkAddressRangeEnd Ver.: always - * @param freeGroupIdentifierRangeBegin Ver.: always - * @param freeGroupIdentifierRangeEnd Ver.: always - */ -bool emberAfZllCommissioningClusterNetworkJoinEndDeviceRequestCallback( - uint32_t transaction, uint8_t * extendedPanId, uint8_t keyIndex, uint8_t * encryptedNetworkKey, uint8_t networkUpdateId, - uint8_t logicalChannel, uint16_t panId, uint16_t networkAddress, uint16_t groupIdentifiersBegin, uint16_t groupIdentifiersEnd, - uint16_t freeNetworkAddressRangeBegin, uint16_t freeNetworkAddressRangeEnd, uint16_t freeGroupIdentifierRangeBegin, - uint16_t freeGroupIdentifierRangeEnd); -/** @brief ZLL Commissioning Cluster Network Join End Device Response - * - * - * - * @param transaction Ver.: always - * @param status Ver.: always - */ -bool emberAfZllCommissioningClusterNetworkJoinEndDeviceResponseCallback(uint32_t transaction, uint8_t status); -/** @brief ZLL Commissioning Cluster Network Join Router Request - * - * - * - * @param transaction Ver.: always - * @param extendedPanId Ver.: always - * @param keyIndex Ver.: always - * @param encryptedNetworkKey Ver.: always - * @param networkUpdateId Ver.: always - * @param logicalChannel Ver.: always - * @param panId Ver.: always - * @param networkAddress Ver.: always - * @param groupIdentifiersBegin Ver.: always - * @param groupIdentifiersEnd Ver.: always - * @param freeNetworkAddressRangeBegin Ver.: always - * @param freeNetworkAddressRangeEnd Ver.: always - * @param freeGroupIdentifierRangeBegin Ver.: always - * @param freeGroupIdentifierRangeEnd Ver.: always - */ -bool emberAfZllCommissioningClusterNetworkJoinRouterRequestCallback( - uint32_t transaction, uint8_t * extendedPanId, uint8_t keyIndex, uint8_t * encryptedNetworkKey, uint8_t networkUpdateId, - uint8_t logicalChannel, uint16_t panId, uint16_t networkAddress, uint16_t groupIdentifiersBegin, uint16_t groupIdentifiersEnd, - uint16_t freeNetworkAddressRangeBegin, uint16_t freeNetworkAddressRangeEnd, uint16_t freeGroupIdentifierRangeBegin, - uint16_t freeGroupIdentifierRangeEnd); -/** @brief ZLL Commissioning Cluster Network Join Router Response - * - * - * - * @param transaction Ver.: always - * @param status Ver.: always - */ -bool emberAfZllCommissioningClusterNetworkJoinRouterResponseCallback(uint32_t transaction, uint8_t status); -/** @brief ZLL Commissioning Cluster Network Start Request - * - * - * - * @param transaction Ver.: always - * @param extendedPanId Ver.: always - * @param keyIndex Ver.: always - * @param encryptedNetworkKey Ver.: always - * @param logicalChannel Ver.: always - * @param panId Ver.: always - * @param networkAddress Ver.: always - * @param groupIdentifiersBegin Ver.: always - * @param groupIdentifiersEnd Ver.: always - * @param freeNetworkAddressRangeBegin Ver.: always - * @param freeNetworkAddressRangeEnd Ver.: always - * @param freeGroupIdentifierRangeBegin Ver.: always - * @param freeGroupIdentifierRangeEnd Ver.: always - * @param initiatorIeeeAddress Ver.: always - * @param initiatorNetworkAddress Ver.: always - */ -bool emberAfZllCommissioningClusterNetworkStartRequestCallback( - uint32_t transaction, uint8_t * extendedPanId, uint8_t keyIndex, uint8_t * encryptedNetworkKey, uint8_t logicalChannel, - uint16_t panId, uint16_t networkAddress, uint16_t groupIdentifiersBegin, uint16_t groupIdentifiersEnd, - uint16_t freeNetworkAddressRangeBegin, uint16_t freeNetworkAddressRangeEnd, uint16_t freeGroupIdentifierRangeBegin, - uint16_t freeGroupIdentifierRangeEnd, uint8_t * initiatorIeeeAddress, uint16_t initiatorNetworkAddress); -/** @brief ZLL Commissioning Cluster Network Start Response - * - * - * - * @param transaction Ver.: always - * @param status Ver.: always - * @param extendedPanId Ver.: always - * @param networkUpdateId Ver.: always - * @param logicalChannel Ver.: always - * @param panId Ver.: always - */ -bool emberAfZllCommissioningClusterNetworkStartResponseCallback(uint32_t transaction, uint8_t status, uint8_t * extendedPanId, - uint8_t networkUpdateId, uint8_t logicalChannel, uint16_t panId); -/** @brief ZLL Commissioning Cluster Network Update Request - * - * - * - * @param transaction Ver.: always - * @param extendedPanId Ver.: always - * @param networkUpdateId Ver.: always - * @param logicalChannel Ver.: always - * @param panId Ver.: always - * @param networkAddress Ver.: always - */ -bool emberAfZllCommissioningClusterNetworkUpdateRequestCallback(uint32_t transaction, uint8_t * extendedPanId, - uint8_t networkUpdateId, uint8_t logicalChannel, uint16_t panId, - uint16_t networkAddress); -/** @brief ZLL Commissioning Cluster Reset To Factory New Request - * - * - * - * @param transaction Ver.: always - */ -bool emberAfZllCommissioningClusterResetToFactoryNewRequestCallback(uint32_t transaction); -/** @brief ZLL Commissioning Cluster Scan Request - * - * - * - * @param transaction Ver.: always - * @param zigbeeInformation Ver.: always - * @param zllInformation Ver.: always - */ -bool emberAfZllCommissioningClusterScanRequestCallback(uint32_t transaction, uint8_t zigbeeInformation, uint8_t zllInformation); -/** @brief ZLL Commissioning Cluster Scan Response - * - * - * - * @param transaction Ver.: always - * @param rssiCorrection Ver.: always - * @param zigbeeInformation Ver.: always - * @param zllInformation Ver.: always - * @param keyBitmask Ver.: always - * @param responseId Ver.: always - * @param extendedPanId Ver.: always - * @param networkUpdateId Ver.: always - * @param logicalChannel Ver.: always - * @param panId Ver.: always - * @param networkAddress Ver.: always - * @param numberOfSubDevices Ver.: always - * @param totalGroupIds Ver.: always - * @param endpointId Ver.: always - * @param profileId Ver.: always - * @param deviceId Ver.: always - * @param version Ver.: always - * @param groupIdCount Ver.: always - */ -bool emberAfZllCommissioningClusterScanResponseCallback(uint32_t transaction, uint8_t rssiCorrection, uint8_t zigbeeInformation, - uint8_t zllInformation, uint16_t keyBitmask, uint32_t responseId, - uint8_t * extendedPanId, uint8_t networkUpdateId, uint8_t logicalChannel, - uint16_t panId, uint16_t networkAddress, uint8_t numberOfSubDevices, - uint8_t totalGroupIds, uint8_t endpointId, uint16_t profileId, - uint16_t deviceId, uint8_t version, uint8_t groupIdCount); -/** @brief ZLL Commissioning Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfZllCommissioningClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief ZLL Commissioning Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfZllCommissioningClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief ZLL Commissioning Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfZllCommissioningClusterServerInitCallback(uint8_t endpoint); -/** @brief ZLL Commissioning Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfZllCommissioningClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief ZLL Commissioning Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfZllCommissioningClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief ZLL Commissioning Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfZllCommissioningClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief ZLL Commissioning Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfZllCommissioningClusterServerTickCallback(uint8_t endpoint); - -/** @} END ZLL Commissioning Cluster Callbacks */ - -/** @name Sample Mfg Specific Cluster Cluster Callbacks */ -// @{ - -/** @brief Sample Mfg Specific Cluster Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfSampleMfgSpecificClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Sample Mfg Specific Cluster Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfSampleMfgSpecificClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Sample Mfg Specific Cluster Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfSampleMfgSpecificClusterClientInitCallback(uint8_t endpoint); -/** @brief Sample Mfg Specific Cluster Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfSampleMfgSpecificClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Sample Mfg Specific Cluster Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfSampleMfgSpecificClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Sample Mfg Specific Cluster Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfSampleMfgSpecificClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Sample Mfg Specific Cluster Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfSampleMfgSpecificClusterClientTickCallback(uint8_t endpoint); -/** @brief Sample Mfg Specific Cluster Cluster Command One - * - * - * - * @param argOne Ver.: always - */ -bool emberAfSampleMfgSpecificClusterCommandOneCallback(uint8_t argOne); -/** @brief Sample Mfg Specific Cluster Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfSampleMfgSpecificClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Sample Mfg Specific Cluster Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfSampleMfgSpecificClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Sample Mfg Specific Cluster Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfSampleMfgSpecificClusterServerInitCallback(uint8_t endpoint); -/** @brief Sample Mfg Specific Cluster Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfSampleMfgSpecificClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Sample Mfg Specific Cluster Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfSampleMfgSpecificClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Sample Mfg Specific Cluster Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfSampleMfgSpecificClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Sample Mfg Specific Cluster Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfSampleMfgSpecificClusterServerTickCallback(uint8_t endpoint); - -/** @} END Sample Mfg Specific Cluster Cluster Callbacks */ - -/** @name Sample Mfg Specific Cluster 2 Cluster Callbacks */ -// @{ - -/** @brief Sample Mfg Specific Cluster 2 Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfSampleMfgSpecificCluster2ClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Sample Mfg Specific Cluster 2 Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfSampleMfgSpecificCluster2ClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Sample Mfg Specific Cluster 2 Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfSampleMfgSpecificCluster2ClientInitCallback(uint8_t endpoint); -/** @brief Sample Mfg Specific Cluster 2 Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfSampleMfgSpecificCluster2ClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Sample Mfg Specific Cluster 2 Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfSampleMfgSpecificCluster2ClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Sample Mfg Specific Cluster 2 Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfSampleMfgSpecificCluster2ClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Sample Mfg Specific Cluster 2 Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfSampleMfgSpecificCluster2ClientTickCallback(uint8_t endpoint); -/** @brief Sample Mfg Specific Cluster 2 Cluster Command Two - * - * - * - * @param argOne Ver.: always - */ -bool emberAfSampleMfgSpecificCluster2CommandTwoCallback(uint8_t argOne); -/** @brief Sample Mfg Specific Cluster 2 Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfSampleMfgSpecificCluster2ServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Sample Mfg Specific Cluster 2 Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfSampleMfgSpecificCluster2ServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Sample Mfg Specific Cluster 2 Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfSampleMfgSpecificCluster2ServerInitCallback(uint8_t endpoint); -/** @brief Sample Mfg Specific Cluster 2 Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfSampleMfgSpecificCluster2ServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Sample Mfg Specific Cluster 2 Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfSampleMfgSpecificCluster2ServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Sample Mfg Specific Cluster 2 Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfSampleMfgSpecificCluster2ServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Sample Mfg Specific Cluster 2 Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfSampleMfgSpecificCluster2ServerTickCallback(uint8_t endpoint); - -/** @} END Sample Mfg Specific Cluster 2 Cluster Callbacks */ - -/** @name Configuration Cluster Cluster Callbacks */ -// @{ - -/** @brief Configuration Cluster Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfOtaConfigurationClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Configuration Cluster Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfOtaConfigurationClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Configuration Cluster Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfOtaConfigurationClusterClientInitCallback(uint8_t endpoint); -/** @brief Configuration Cluster Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfOtaConfigurationClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Configuration Cluster Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfOtaConfigurationClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Configuration Cluster Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfOtaConfigurationClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Configuration Cluster Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfOtaConfigurationClusterClientTickCallback(uint8_t endpoint); -/** @brief Configuration Cluster Cluster Lock Tokens - * - * - * - */ -bool emberAfOtaConfigurationClusterLockTokensCallback(void); -/** @brief Configuration Cluster Cluster Read Tokens - * - * - * - * @param token Ver.: always - */ -bool emberAfOtaConfigurationClusterReadTokensCallback(uint16_t token); -/** @brief Configuration Cluster Cluster Return Token - * - * - * - * @param token Ver.: always - * @param data Ver.: always - */ -bool emberAfOtaConfigurationClusterReturnTokenCallback(uint16_t token, uint8_t * data); -/** @brief Configuration Cluster Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfOtaConfigurationClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Configuration Cluster Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfOtaConfigurationClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Configuration Cluster Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfOtaConfigurationClusterServerInitCallback(uint8_t endpoint); -/** @brief Configuration Cluster Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfOtaConfigurationClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Configuration Cluster Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfOtaConfigurationClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Configuration Cluster Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfOtaConfigurationClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Configuration Cluster Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfOtaConfigurationClusterServerTickCallback(uint8_t endpoint); -/** @brief Configuration Cluster Cluster Set Token - * - * - * - * @param token Ver.: always - * @param data Ver.: always - */ -bool emberAfOtaConfigurationClusterSetTokenCallback(uint16_t token, uint8_t * data); -/** @brief Configuration Cluster Cluster Unlock Tokens - * - * - * - * @param data Ver.: always - */ -bool emberAfOtaConfigurationClusterUnlockTokensCallback(uint8_t * data); - -/** @} END Configuration Cluster Cluster Callbacks */ - -/** @name MFGLIB Cluster Cluster Callbacks */ -// @{ - -/** @brief MFGLIB Cluster Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfMfglibClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief MFGLIB Cluster Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfMfglibClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief MFGLIB Cluster Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfMfglibClusterClientInitCallback(uint8_t endpoint); -/** @brief MFGLIB Cluster Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfMfglibClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief MFGLIB Cluster Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfMfglibClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief MFGLIB Cluster Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfMfglibClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief MFGLIB Cluster Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfMfglibClusterClientTickCallback(uint8_t endpoint); -/** @brief MFGLIB Cluster Cluster Rx Mode - * - * - * - * @param channel Ver.: always - * @param power Ver.: always - * @param time Ver.: always - */ -bool emberAfMfglibClusterRxModeCallback(uint8_t channel, int8_t power, uint16_t time); -/** @brief MFGLIB Cluster Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfMfglibClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief MFGLIB Cluster Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfMfglibClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief MFGLIB Cluster Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfMfglibClusterServerInitCallback(uint8_t endpoint); -/** @brief MFGLIB Cluster Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfMfglibClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief MFGLIB Cluster Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfMfglibClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief MFGLIB Cluster Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfMfglibClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief MFGLIB Cluster Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfMfglibClusterServerTickCallback(uint8_t endpoint); -/** @brief MFGLIB Cluster Cluster Stream - * - * - * - * @param channel Ver.: always - * @param power Ver.: always - * @param time Ver.: always - */ -bool emberAfMfglibClusterStreamCallback(uint8_t channel, int8_t power, uint16_t time); -/** @brief MFGLIB Cluster Cluster Tone - * - * - * - * @param channel Ver.: always - * @param power Ver.: always - * @param time Ver.: always - */ -bool emberAfMfglibClusterToneCallback(uint8_t channel, int8_t power, uint16_t time); - -/** @} END MFGLIB Cluster Cluster Callbacks */ - -/** @name SL Works With All Hubs Cluster Callbacks */ -// @{ - -/** @brief SL Works With All Hubs Cluster Aps Ack Enablement Query Response - * - * - * - * @param numberExemptClusters Ver.: always - * @param clusterId Ver.: always - */ -bool emberAfSlWwahClusterApsAckEnablementQueryResponseCallback(uint8_t numberExemptClusters, uint8_t * clusterId); -/** @brief SL Works With All Hubs Cluster Aps Ack Requirement Query - * - * - * - */ -bool emberAfSlWwahClusterApsAckRequirementQueryCallback(void); -/** @brief SL Works With All Hubs Cluster Aps Link Key Authorization Query - * - * - * - * @param clusterId Ver.: always - */ -bool emberAfSlWwahClusterApsLinkKeyAuthorizationQueryCallback(uint16_t clusterId); -/** @brief SL Works With All Hubs Cluster Aps Link Key Authorization Query Response - * - * - * - * @param clusterId Ver.: always - * @param apsLinkKeyAuthStatus Ver.: always - */ -bool emberAfSlWwahClusterApsLinkKeyAuthorizationQueryResponseCallback(uint16_t clusterId, uint8_t apsLinkKeyAuthStatus); -/** @brief SL Works With All Hubs Cluster Clear Binding Table - * - * - * - */ -bool emberAfSlWwahClusterClearBindingTableCallback(void); -/** @brief SL Works With All Hubs Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfSlWwahClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief SL Works With All Hubs Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfSlWwahClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief SL Works With All Hubs Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfSlWwahClusterClientInitCallback(uint8_t endpoint); -/** @brief SL Works With All Hubs Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfSlWwahClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief SL Works With All Hubs Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfSlWwahClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief SL Works With All Hubs Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfSlWwahClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief SL Works With All Hubs Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfSlWwahClusterClientTickCallback(uint8_t endpoint); -/** @brief SL Works With All Hubs Cluster Debug Report Query - * - * - * - * @param debugReportId Ver.: always - */ -bool emberAfSlWwahClusterDebugReportQueryCallback(uint8_t debugReportId); -/** @brief SL Works With All Hubs Cluster Debug Report Query Response - * - * - * - * @param debugReportId Ver.: always - * @param debugReportData Ver.: always - */ -bool emberAfSlWwahClusterDebugReportQueryResponseCallback(uint8_t debugReportId, uint8_t * debugReportData); -/** @brief SL Works With All Hubs Cluster Disable Aps Link Key Authorization - * - * - * - * @param numberExemptClusters Ver.: always - * @param clusterId Ver.: always - */ -bool emberAfSlWwahClusterDisableApsLinkKeyAuthorizationCallback(uint8_t numberExemptClusters, uint8_t * clusterId); -/** @brief SL Works With All Hubs Cluster Disable Configuration Mode - * - * - * - */ -bool emberAfSlWwahClusterDisableConfigurationModeCallback(void); -/** @brief SL Works With All Hubs Cluster Disable Mgmt Leave Without Rejoin - * - * - * - */ -bool emberAfSlWwahClusterDisableMgmtLeaveWithoutRejoinCallback(void); -/** @brief SL Works With All Hubs Cluster Disable Ota Downgrades - * - * - * - */ -bool emberAfSlWwahClusterDisableOtaDowngradesCallback(void); -/** @brief SL Works With All Hubs Cluster Disable Periodic Router Check Ins - * - * - * - */ -bool emberAfSlWwahClusterDisablePeriodicRouterCheckInsCallback(void); -/** @brief SL Works With All Hubs Cluster Disable Touchlink Interpan Message Support - * - * - * - */ -bool emberAfSlWwahClusterDisableTouchlinkInterpanMessageSupportCallback(void); -/** @brief SL Works With All Hubs Cluster Disable Wwah App Event Retry Algorithm - * - * - * - */ -bool emberAfSlWwahClusterDisableWwahAppEventRetryAlgorithmCallback(void); -/** @brief SL Works With All Hubs Cluster Disable Wwah Bad Parent Recovery - * - * - * - */ -bool emberAfSlWwahClusterDisableWwahBadParentRecoveryCallback(void); -/** @brief SL Works With All Hubs Cluster Disable Wwah Parent Classification - * - * - * - */ -bool emberAfSlWwahClusterDisableWwahParentClassificationCallback(void); -/** @brief SL Works With All Hubs Cluster Disable Wwah Rejoin Algorithm - * - * - * - */ -bool emberAfSlWwahClusterDisableWwahRejoinAlgorithmCallback(void); -/** @brief SL Works With All Hubs Cluster Enable Aps Link Key Authorization - * - * - * - * @param numberExemptClusters Ver.: always - * @param clusterId Ver.: always - */ -bool emberAfSlWwahClusterEnableApsLinkKeyAuthorizationCallback(uint8_t numberExemptClusters, uint8_t * clusterId); -/** @brief SL Works With All Hubs Cluster Enable Configuration Mode - * - * - * - */ -bool emberAfSlWwahClusterEnableConfigurationModeCallback(void); -/** @brief SL Works With All Hubs Cluster Enable Periodic Router Check Ins - * - * - * - * @param checkInInterval Ver.: always - */ -bool emberAfSlWwahClusterEnablePeriodicRouterCheckInsCallback(uint16_t checkInInterval); -/** @brief SL Works With All Hubs Cluster Enable Tc Security On Ntwk Key Rotation - * - * - * - */ -bool emberAfSlWwahClusterEnableTcSecurityOnNtwkKeyRotationCallback(void); -/** @brief SL Works With All Hubs Cluster Enable Wwah App Event Retry Algorithm - * - * - * - * @param firstBackoffTimeSeconds Ver.: always - * @param backoffSeqCommonRatio Ver.: always - * @param maxBackoffTimeSeconds Ver.: always - * @param maxRedeliveryAttempts Ver.: always - */ -bool emberAfSlWwahClusterEnableWwahAppEventRetryAlgorithmCallback(uint8_t firstBackoffTimeSeconds, uint8_t backoffSeqCommonRatio, - uint32_t maxBackoffTimeSeconds, uint8_t maxRedeliveryAttempts); -/** @brief SL Works With All Hubs Cluster Enable Wwah Bad Parent Recovery - * - * - * - */ -bool emberAfSlWwahClusterEnableWwahBadParentRecoveryCallback(void); -/** @brief SL Works With All Hubs Cluster Enable Wwah Parent Classification - * - * - * - */ -bool emberAfSlWwahClusterEnableWwahParentClassificationCallback(void); -/** @brief SL Works With All Hubs Cluster Enable Wwah Rejoin Algorithm - * - * - * - * @param fastRejoinTimeoutSeconds Ver.: always - * @param durationBetweenRejoinsSeconds Ver.: always - * @param fastRejoinFirstBackoffSeconds Ver.: always - * @param maxBackoffTimeSeconds Ver.: always - * @param maxBackoffIterations Ver.: always - */ -bool emberAfSlWwahClusterEnableWwahRejoinAlgorithmCallback(uint16_t fastRejoinTimeoutSeconds, - uint16_t durationBetweenRejoinsSeconds, - uint16_t fastRejoinFirstBackoffSeconds, uint16_t maxBackoffTimeSeconds, - uint16_t maxBackoffIterations); -/** @brief SL Works With All Hubs Cluster New Debug Report Notification - * - * - * - * @param debugReportId Ver.: always - * @param debugReportSize Ver.: always - */ -bool emberAfSlWwahClusterNewDebugReportNotificationCallback(uint8_t debugReportId, uint32_t debugReportSize); -/** @brief SL Works With All Hubs Cluster Power Descriptor Change - * - * - * - * @param currentPowerMode Ver.: always - * @param availablePowerSources Ver.: always - * @param currentPowerSource Ver.: always - * @param currentPowerSourceLevel Ver.: always - */ -bool emberAfSlWwahClusterPowerDescriptorChangeCallback(uint32_t currentPowerMode, uint32_t availablePowerSources, - uint32_t currentPowerSource, uint32_t currentPowerSourceLevel); -/** @brief SL Works With All Hubs Cluster Powering Off Notification - * - * - * - * @param powerNotificationReason Ver.: always - * @param manufacturerId Ver.: always - * @param manufacturerReasonLength Ver.: always - * @param manufacturerReason Ver.: always - */ -bool emberAfSlWwahClusterPoweringOffNotificationCallback(uint8_t powerNotificationReason, uint16_t manufacturerId, - uint8_t manufacturerReasonLength, uint8_t * manufacturerReason); -/** @brief SL Works With All Hubs Cluster Powering On Notification - * - * - * - * @param powerNotificationReason Ver.: always - * @param manufacturerId Ver.: always - * @param manufacturerReasonLength Ver.: always - * @param manufacturerReason Ver.: always - */ -bool emberAfSlWwahClusterPoweringOnNotificationCallback(uint8_t powerNotificationReason, uint16_t manufacturerId, - uint8_t manufacturerReasonLength, uint8_t * manufacturerReason); -/** @brief SL Works With All Hubs Cluster Remove Aps Acks On Unicasts Requirement - * - * - * - */ -bool emberAfSlWwahClusterRemoveApsAcksOnUnicastsRequirementCallback(void); -/** @brief SL Works With All Hubs Cluster Request New Aps Link Key - * - * - * - */ -bool emberAfSlWwahClusterRequestNewApsLinkKeyCallback(void); -/** @brief SL Works With All Hubs Cluster Request Time - * - * - * - */ -bool emberAfSlWwahClusterRequestTimeCallback(void); -/** @brief SL Works With All Hubs Cluster Require Aps Acks On Unicasts - * - * - * - * @param numberExemptClusters Ver.: always - * @param clusterId Ver.: always - */ -bool emberAfSlWwahClusterRequireApsAcksOnUnicastsCallback(uint8_t numberExemptClusters, uint8_t * clusterId); -/** @brief SL Works With All Hubs Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfSlWwahClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief SL Works With All Hubs Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfSlWwahClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief SL Works With All Hubs Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfSlWwahClusterServerInitCallback(uint8_t endpoint); -/** @brief SL Works With All Hubs Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfSlWwahClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief SL Works With All Hubs Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfSlWwahClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief SL Works With All Hubs Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfSlWwahClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief SL Works With All Hubs Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfSlWwahClusterServerTickCallback(uint8_t endpoint); -/** @brief SL Works With All Hubs Cluster Set Ias Zone Enrollment Method - * - * - * - * @param enrollmentMode Ver.: always - */ -bool emberAfSlWwahClusterSetIasZoneEnrollmentMethodCallback(uint8_t enrollmentMode); -/** @brief SL Works With All Hubs Cluster Set Mac Poll Failure Wait Time - * - * - * - * @param waitTime Ver.: always - */ -bool emberAfSlWwahClusterSetMacPollFailureWaitTimeCallback(uint8_t waitTime); -/** @brief SL Works With All Hubs Cluster Set Pending Network Update - * - * - * - * @param channel Ver.: always - * @param panId Ver.: always - */ -bool emberAfSlWwahClusterSetPendingNetworkUpdateCallback(uint8_t channel, uint16_t panId); -/** @brief SL Works With All Hubs Cluster Short Address Change - * - * - * - * @param deviceEui64 Ver.: always - * @param deviceShort Ver.: always - */ -bool emberAfSlWwahClusterShortAddressChangeCallback(uint8_t * deviceEui64, uint16_t deviceShort); -/** @brief SL Works With All Hubs Cluster Survey Beacons - * - * - * - * @param standardBeacons Ver.: always - */ -bool emberAfSlWwahClusterSurveyBeaconsCallback(uint8_t standardBeacons); -/** @brief SL Works With All Hubs Cluster Survey Beacons Response - * - * - * - * @param numberOfBeacons Ver.: always - * @param beacon Ver.: always - */ -bool emberAfSlWwahClusterSurveyBeaconsResponseCallback(uint8_t numberOfBeacons, uint8_t * beacon); -/** @brief SL Works With All Hubs Cluster Trust Center For Cluster Server Query - * - * - * - */ -bool emberAfSlWwahClusterTrustCenterForClusterServerQueryCallback(void); -/** @brief SL Works With All Hubs Cluster Trust Center For Cluster Server Query Response - * - * - * - * @param numberOfClusters Ver.: always - * @param clusterId Ver.: always - */ -bool emberAfSlWwahClusterTrustCenterForClusterServerQueryResponseCallback(uint8_t numberOfClusters, uint8_t * clusterId); -/** @brief SL Works With All Hubs Cluster Use Trust Center For Cluster Server - * - * - * - * @param numberOfClusters Ver.: always - * @param clusterId Ver.: always - */ -bool emberAfSlWwahClusterUseTrustCenterForClusterServerCallback(uint8_t numberOfClusters, uint8_t * clusterId); -/** @brief SL Works With All Hubs Cluster Use Trust Center For Cluster Server Response - * - * - * - * @param status Ver.: always - * @param clusterStatusLength Ver.: always - * @param clusterStatus Ver.: always - */ -bool emberAfSlWwahClusterUseTrustCenterForClusterServerResponseCallback(uint8_t status, uint8_t clusterStatusLength, - uint8_t * clusterStatus); - -/** @} END SL Works With All Hubs Cluster Callbacks */ - -/** @name Update TC Link Key Plugin Callbacks */ -// @{ - -/** @brief Status - * - * This callback is fired when the Update Link Key exchange process is updated - * with a status from the stack. Implementations will know that the Update TC - * Link Key plugin has completed its link key request when the keyStatus - * parameter is EMBER_VERIFY_LINK_KEY_SUCCESS. - * - * @param keyStatus An ::EmberKeyStatus value describing the success or failure - * of the key exchange process. Ver.: always - */ -void emberAfPluginUpdateTcLinkKeyStatusCallback(EmberKeyStatus keyStatus); -/** @} END Update TC Link Key Plugin Callbacks */ - -/** @name Network Steering Plugin Callbacks */ -// @{ - -/** @brief Complete - * - * This callback is fired when the Network Steering plugin is complete. - * - * @param status On success this will be set to EMBER_SUCCESS to indicate a - * network was joined successfully. On failure this will be the status code of - * the last join or scan attempt. Ver.: always - * @param totalBeacons The total number of 802.15.4 beacons that were heard, - * including beacons from different devices with the same PAN ID. Ver.: always - * @param joinAttempts The number of join attempts that were made to get onto - * an open Zigbee network. Ver.: always - * @param finalState The finishing state of the network steering process. From - * this, one is able to tell on which channel mask and with which key the - * process was complete. Ver.: always - */ -void emberAfPluginNetworkSteeringCompleteCallback(EmberStatus status, uint8_t totalBeacons, uint8_t joinAttempts, - uint8_t finalState); -/** @brief Get Power For Radio Channel - * - * This callback is fired when the Network Steering plugin needs to set the - * power level. The application has the ability to change the max power level - * used for this particular channel. - * - * @param channel The channel that the plugin is inquiring about the power - * level. Ver.: always - */ -int8_t emberAfPluginNetworkSteeringGetPowerForRadioChannelCallback(uint8_t channel); -/** @brief Get Distributed Key - * - * This callback is fired when the Network Steering plugin needs to set the distributed - * key. The application set the distributed key from Zigbee Alliance thru this callback - * or the network steering will use the default test key. - * - * @param pointer to the distributed key struct - * @return true if the key is loaded successfully, otherwise false. - * level. Ver.: always - */ -bool emberAfPluginNetworkSteeringGetDistributedKeyCallback(EmberKeyData * key); -/** @brief Get Node Type - * - * This callback allows the application to set the node type that the network - * steering process will use in joining a network. - * - * @param state The current ::EmberAfPluginNetworkSteeringJoiningState. - * - * @return An ::EmberNodeType value that the network steering process will - * try to join a network as. - */ -EmberNodeType emberAfPluginNetworkSteeringGetNodeTypeCallback(EmberAfPluginNetworkSteeringJoiningState state); -/** @} END Network Steering Plugin Callbacks */ - -/** @name HAL Library Plugin Callbacks */ -// @{ - -/** - * @brief Called whenever the radio is powered on. - */ -void halRadioPowerUpHandler(void); -/** - * @brief Called whenever the radio is powered off. - */ -void halRadioPowerDownHandler(void); -/** - * @brief Called whenever the microcontroller enters/exits a idle/sleep mode - * - * @param enter True if entering idle/sleep, False if exiting - * @param sleepMode Idle/sleep mode - */ -void halSleepCallback(bool enter, SleepModes sleepMode); -/** @} END HAL Library Plugin Callbacks */ - -/** @} END addtogroup */ -#endif // SILABS_EMBER_AF_CALLBACK_PROTOTYPES +bool emberAfStartMoveCallback(); diff --git a/examples/lighting-app/lighting-common/gen/client-command-macro.h b/examples/lighting-app/lighting-common/gen/client-command-macro.h new file mode 100644 index 00000000000000..f1b0c4633a2b14 --- /dev/null +++ b/examples/lighting-app/lighting-common/gen/client-command-macro.h @@ -0,0 +1,6165 @@ + +/* + * + * 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. + */ + +// Prevent multiple inclusion +#pragma once + +/** @brief Command description for ReadAttributes + * + * Command: ReadAttributes + * @param attributeIds ATTRIBUTE_ID [] + * @param attributeIdsLen int + */ +#define emberAfFillCommandGlobalReadAttributes(clusterId, attributeIds, attributeIdsLen) \ + emberAfFillExternalBuffer(mask, clusterId, ZCL_READ_ATTRIBUTES_COMMAND_ID, "b", attributeIds, attributeIdsLen); + +/** @brief Command description for ReadAttributesResponse + * + * Command: ReadAttributesResponse + * @param readAttributeStatusRecords ReadAttributeStatusRecord [] + * @param readAttributeStatusRecordsLen int + */ +#define emberAfFillCommandGlobalReadAttributesResponse(clusterId, readAttributeStatusRecords, readAttributeStatusRecordsLen) \ + emberAfFillExternalBuffer(mask, clusterId, ZCL_READ_ATTRIBUTES_RESPONSE_COMMAND_ID, "b", readAttributeStatusRecords, \ + readAttributeStatusRecordsLen); + +/** @brief Command description for WriteAttributes + * + * Command: WriteAttributes + * @param writeAttributeRecords WriteAttributeRecord [] + * @param writeAttributeRecordsLen int + */ +#define emberAfFillCommandGlobalWriteAttributes(clusterId, writeAttributeRecords, writeAttributeRecordsLen) \ + emberAfFillExternalBuffer(mask, clusterId, ZCL_WRITE_ATTRIBUTES_COMMAND_ID, "b", writeAttributeRecords, \ + writeAttributeRecordsLen); + +/** @brief Command description for WriteAttributesUndivided + * + * Command: WriteAttributesUndivided + * @param writeAttributeRecords WriteAttributeRecord [] + * @param writeAttributeRecordsLen int + */ +#define emberAfFillCommandGlobalWriteAttributesUndivided(clusterId, writeAttributeRecords, writeAttributeRecordsLen) \ + emberAfFillExternalBuffer(mask, clusterId, ZCL_WRITE_ATTRIBUTES_UNDIVIDED_COMMAND_ID, "b", writeAttributeRecords, \ + writeAttributeRecordsLen); + +/** @brief Command description for WriteAttributesResponse + * + * Command: WriteAttributesResponse + * @param writeAttributeStatusRecords WriteAttributeStatusRecord [] + * @param writeAttributeStatusRecordsLen int + */ +#define emberAfFillCommandGlobalWriteAttributesResponse(clusterId, writeAttributeStatusRecords, writeAttributeStatusRecordsLen) \ + emberAfFillExternalBuffer(mask, clusterId, ZCL_WRITE_ATTRIBUTES_RESPONSE_COMMAND_ID, "b", writeAttributeStatusRecords, \ + writeAttributeStatusRecordsLen); + +/** @brief Command description for WriteAttributesNoResponse + * + * Command: WriteAttributesNoResponse + * @param writeAttributeRecords WriteAttributeRecord [] + * @param writeAttributeRecordsLen int + */ +#define emberAfFillCommandGlobalWriteAttributesNoResponse(clusterId, writeAttributeRecords, writeAttributeRecordsLen) \ + emberAfFillExternalBuffer(mask, clusterId, ZCL_WRITE_ATTRIBUTES_NO_RESPONSE_COMMAND_ID, "b", writeAttributeRecords, \ + writeAttributeRecordsLen); + +/** @brief Command description for ConfigureReporting + * + * Command: ConfigureReporting + * @param configureReportingRecords ConfigureReportingRecord [] + * @param configureReportingRecordsLen int + */ +#define emberAfFillCommandGlobalConfigureReporting(clusterId, configureReportingRecords, configureReportingRecordsLen) \ + emberAfFillExternalBuffer(mask, clusterId, ZCL_CONFIGURE_REPORTING_COMMAND_ID, "b", configureReportingRecords, \ + configureReportingRecordsLen); + +/** @brief Command description for ConfigureReportingResponse + * + * Command: ConfigureReportingResponse + * @param configureReportingStatusRecords ConfigureReportingStatusRecord [] + * @param configureReportingStatusRecordsLen int + */ +#define emberAfFillCommandGlobalConfigureReportingResponse(clusterId, configureReportingStatusRecords, \ + configureReportingStatusRecordsLen) \ + emberAfFillExternalBuffer(mask, clusterId, ZCL_CONFIGURE_REPORTING_RESPONSE_COMMAND_ID, "b", configureReportingStatusRecords, \ + configureReportingStatusRecordsLen); + +/** @brief Command description for ReadReportingConfiguration + * + * Command: ReadReportingConfiguration + * @param readReportingConfigurationAttributeRecords ReadReportingConfigurationAttributeRecord [] + * @param readReportingConfigurationAttributeRecordsLen int + */ +#define emberAfFillCommandGlobalReadReportingConfiguration(clusterId, readReportingConfigurationAttributeRecords, \ + readReportingConfigurationAttributeRecordsLen) \ + emberAfFillExternalBuffer(mask, clusterId, ZCL_READ_REPORTING_CONFIGURATION_COMMAND_ID, "b", \ + readReportingConfigurationAttributeRecords, readReportingConfigurationAttributeRecordsLen); + +/** @brief Command description for ReadReportingConfigurationResponse + * + * Command: ReadReportingConfigurationResponse + * @param readReportingConfigurationRecords ReadReportingConfigurationRecord [] + * @param readReportingConfigurationRecordsLen int + */ +#define emberAfFillCommandGlobalReadReportingConfigurationResponse(clusterId, readReportingConfigurationRecords, \ + readReportingConfigurationRecordsLen) \ + emberAfFillExternalBuffer(mask, clusterId, ZCL_READ_REPORTING_CONFIGURATION_RESPONSE_COMMAND_ID, "b", \ + readReportingConfigurationRecords, readReportingConfigurationRecordsLen); + +/** @brief Command description for ReportAttributes + * + * Command: ReportAttributes + * @param reportAttributeRecords ReportAttributeRecord [] + * @param reportAttributeRecordsLen int + */ +#define emberAfFillCommandGlobalReportAttributes(clusterId, reportAttributeRecords, reportAttributeRecordsLen) \ + emberAfFillExternalBuffer(mask, clusterId, ZCL_REPORT_ATTRIBUTES_COMMAND_ID, "b", reportAttributeRecords, \ + reportAttributeRecordsLen); + +/** @brief Command description for DefaultResponse + * + * Command: DefaultResponse + * @param commandId INT8U + * @param status Status + */ +#define emberAfFillCommandGlobalDefaultResponse(clusterId, commandId, status) \ + emberAfFillExternalBuffer(mask, clusterId, ZCL_DEFAULT_RESPONSE_COMMAND_ID, "uu", commandId, status); + +/** @brief Command description for DiscoverAttributes + * + * Command: DiscoverAttributes + * @param startId ATTRIBUTE_ID + * @param maxAttributeIds INT8U + */ +#define emberAfFillCommandGlobalDiscoverAttributes(clusterId, startId, maxAttributeIds) \ + emberAfFillExternalBuffer(mask, clusterId, ZCL_DISCOVER_ATTRIBUTES_COMMAND_ID, "uu", startId, maxAttributeIds); + +/** @brief Command description for DiscoverAttributesResponse + * + * Command: DiscoverAttributesResponse + * @param discoveryComplete INT8U + * @param discoverAttributesInfoRecords DiscoverAttributesInfoRecord [] + * @param discoverAttributesInfoRecordsLen int + */ +#define emberAfFillCommandGlobalDiscoverAttributesResponse(clusterId, discoveryComplete, discoverAttributesInfoRecords, \ + discoverAttributesInfoRecordsLen) \ + emberAfFillExternalBuffer(mask, clusterId, ZCL_DISCOVER_ATTRIBUTES_RESPONSE_COMMAND_ID, "ub", discoveryComplete, \ + discoverAttributesInfoRecords, discoverAttributesInfoRecordsLen); + +/** @brief Command description for ReadAttributesStructured + * + * Command: ReadAttributesStructured + * @param readStructuredAttributeRecords ReadStructuredAttributeRecord [] + * @param readStructuredAttributeRecordsLen int + */ +#define emberAfFillCommandGlobalReadAttributesStructured(clusterId, readStructuredAttributeRecords, \ + readStructuredAttributeRecordsLen) \ + emberAfFillExternalBuffer(mask, clusterId, ZCL_READ_ATTRIBUTES_STRUCTURED_COMMAND_ID, "b", readStructuredAttributeRecords, \ + readStructuredAttributeRecordsLen); + +/** @brief Command description for WriteAttributesStructured + * + * Command: WriteAttributesStructured + * @param writeStructuredAttributeRecords WriteStructuredAttributeRecord [] + * @param writeStructuredAttributeRecordsLen int + */ +#define emberAfFillCommandGlobalWriteAttributesStructured(clusterId, writeStructuredAttributeRecords, \ + writeStructuredAttributeRecordsLen) \ + emberAfFillExternalBuffer(mask, clusterId, ZCL_WRITE_ATTRIBUTES_STRUCTURED_COMMAND_ID, "b", writeStructuredAttributeRecords, \ + writeStructuredAttributeRecordsLen); + +/** @brief Command description for WriteAttributesStructuredResponse + * + * Command: WriteAttributesStructuredResponse + * @param writeStructuredAttributeStatusRecords WriteStructuredAttributeStatusRecord [] + * @param writeStructuredAttributeStatusRecordsLen int + */ +#define emberAfFillCommandGlobalWriteAttributesStructuredResponse(clusterId, writeStructuredAttributeStatusRecords, \ + writeStructuredAttributeStatusRecordsLen) \ + emberAfFillExternalBuffer(mask, clusterId, ZCL_WRITE_ATTRIBUTES_STRUCTURED_RESPONSE_COMMAND_ID, "b", \ + writeStructuredAttributeStatusRecords, writeStructuredAttributeStatusRecordsLen); + +/** @brief Command description for DiscoverCommandsReceived + * + * Command: DiscoverCommandsReceived + * @param startCommandId INT8U + * @param maxCommandIds INT8U + */ +#define emberAfFillCommandGlobalDiscoverCommandsReceived(clusterId, startCommandId, maxCommandIds) \ + emberAfFillExternalBuffer(mask, clusterId, ZCL_DISCOVER_COMMANDS_RECEIVED_COMMAND_ID, "uu", startCommandId, maxCommandIds); + +/** @brief Command description for DiscoverCommandsReceivedResponse + * + * Command: DiscoverCommandsReceivedResponse + * @param discoveryComplete INT8U + * @param commandIds INT8U [] + * @param commandIdsLen int + */ +#define emberAfFillCommandGlobalDiscoverCommandsReceivedResponse(clusterId, discoveryComplete, commandIds, commandIdsLen) \ + emberAfFillExternalBuffer(mask, clusterId, ZCL_DISCOVER_COMMANDS_RECEIVED_RESPONSE_COMMAND_ID, "ub", discoveryComplete, \ + commandIds, commandIdsLen); + +/** @brief Command description for DiscoverCommandsGenerated + * + * Command: DiscoverCommandsGenerated + * @param startCommandId INT8U + * @param maxCommandIds INT8U + */ +#define emberAfFillCommandGlobalDiscoverCommandsGenerated(clusterId, startCommandId, maxCommandIds) \ + emberAfFillExternalBuffer(mask, clusterId, ZCL_DISCOVER_COMMANDS_GENERATED_COMMAND_ID, "uu", startCommandId, maxCommandIds); + +/** @brief Command description for DiscoverCommandsGeneratedResponse + * + * Command: DiscoverCommandsGeneratedResponse + * @param discoveryComplete INT8U + * @param commandIds INT8U [] + * @param commandIdsLen int + */ +#define emberAfFillCommandGlobalDiscoverCommandsGeneratedResponse(clusterId, discoveryComplete, commandIds, commandIdsLen) \ + emberAfFillExternalBuffer(mask, clusterId, ZCL_DISCOVER_COMMANDS_GENERATED_RESPONSE_COMMAND_ID, "ub", discoveryComplete, \ + commandIds, commandIdsLen); + +/** @brief Command description for DiscoverAttributesExtended + * + * Command: DiscoverAttributesExtended + * @param startId ATTRIBUTE_ID + * @param maxAttributeIds INT8U + */ +#define emberAfFillCommandGlobalDiscoverAttributesExtended(clusterId, startId, maxAttributeIds) \ + emberAfFillExternalBuffer(mask, clusterId, ZCL_DISCOVER_ATTRIBUTES_EXTENDED_COMMAND_ID, "uu", startId, maxAttributeIds); + +/** @brief Command description for DiscoverAttributesExtendedResponse + * + * Command: DiscoverAttributesExtendedResponse + * @param discoveryComplete INT8U + * @param extendedDiscoverAttributesInfoRecords ExtendedDiscoverAttributesInfoRecord [] + * @param extendedDiscoverAttributesInfoRecordsLen int + */ +#define emberAfFillCommandGlobalDiscoverAttributesExtendedResponse( \ + clusterId, discoveryComplete, extendedDiscoverAttributesInfoRecords, extendedDiscoverAttributesInfoRecordsLen) \ + emberAfFillExternalBuffer(mask, clusterId, ZCL_DISCOVER_ATTRIBUTES_EXTENDED_RESPONSE_COMMAND_ID, "ub", discoveryComplete, \ + extendedDiscoverAttributesInfoRecords, extendedDiscoverAttributesInfoRecordsLen); + +/** @brief Command description for ResetToFactoryDefaults + * + * Command: ResetToFactoryDefaults + */ +#define emberAfFillCommandBasicClusterResetToFactoryDefaults() \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_RESET_TO_FACTORY_DEFAULTS_COMMAND_ID, "", ); + +/** @brief Command description for Identify + * + * Command: Identify + * @param identifyTime INT16U + * @param timeout INT16U + */ +#define emberAfFillCommandIdentifyClusterIdentify(identifyTime, timeout) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_IDENTIFY_COMMAND_ID, "uu", identifyTime, timeout); + +/** @brief Command description for IdentifyQuery + * + * Command: IdentifyQuery + */ +#define emberAfFillCommandIdentifyClusterIdentifyQuery() \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_IDENTIFY_QUERY_COMMAND_ID, "", ); + +/** @brief Command description for EZModeInvoke + * + * Command: EZModeInvoke + * @param action BITMAP8 + */ +#define emberAfFillCommandIdentifyClusterEZModeInvoke(action) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_EZ_MODE_INVOKE_COMMAND_ID, "u", action); + +/** @brief Command description for UpdateCommissionState + * + * Command: UpdateCommissionState + * @param action ENUM8 + * @param commissionStateMask BITMAP8 + */ +#define emberAfFillCommandIdentifyClusterUpdateCommissionState(action, commissionStateMask) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_UPDATE_COMMISSION_STATE_COMMAND_ID, "uu", action, commissionStateMask); + +/** @brief Command description for TriggerEffect + * + * Command: TriggerEffect + * @param effectId IdentifyEffectIdentifier + * @param effectVariant IdentifyEffectVariant + */ +#define emberAfFillCommandIdentifyClusterTriggerEffect(effectId, effectVariant) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_TRIGGER_EFFECT_COMMAND_ID, "uu", effectId, effectVariant); + +/** @brief Command description for AddGroup + * + * Command: AddGroup + * @param groupId INT16U + * @param status Status + * @param groupName CHAR_STRING + * @param groupId INT16U + */ +#define emberAfFillCommandGroupsClusterAddGroup(groupId, status, groupName, groupId) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_ADD_GROUP_COMMAND_ID, "uuuu", groupId, status, groupName, groupId); + +/** @brief Command description for ViewGroup + * + * Command: ViewGroup + * @param groupId INT16U + * @param status Status + * @param groupId INT16U + * @param groupName CHAR_STRING + */ +#define emberAfFillCommandGroupsClusterViewGroup(groupId, status, groupId, groupName) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_VIEW_GROUP_COMMAND_ID, "uuuu", groupId, status, groupId, groupName); + +/** @brief Command description for GetGroupMembership + * + * Command: GetGroupMembership + * @param groupCount INT8U + * @param capacity INT8U + * @param groupList INT16U [] + * @param groupListLen int + * @param groupCount INT8U + * @param groupList INT16U [] + * @param groupListLen int + */ +#define emberAfFillCommandGroupsClusterGetGroupMembership(groupCount, capacity, groupList, groupListLen, groupCount, groupList, \ + groupListLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_GET_GROUP_MEMBERSHIP_COMMAND_ID, "uubub", groupCount, capacity, groupList, groupListLen, \ + groupCount, groupList, groupListLen); + +/** @brief Command description for RemoveGroup + * + * Command: RemoveGroup + * @param groupId INT16U + * @param status Status + * @param groupId INT16U + */ +#define emberAfFillCommandGroupsClusterRemoveGroup(groupId, status, groupId) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_REMOVE_GROUP_COMMAND_ID, "uuu", groupId, status, groupId); + +/** @brief Command description for RemoveAllGroups + * + * Command: RemoveAllGroups + */ +#define emberAfFillCommandGroupsClusterRemoveAllGroups() \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_REMOVE_ALL_GROUPS_COMMAND_ID, "", ); + +/** @brief Command description for AddGroupIfIdentifying + * + * Command: AddGroupIfIdentifying + * @param groupId INT16U + * @param groupName CHAR_STRING + */ +#define emberAfFillCommandGroupsClusterAddGroupIfIdentifying(groupId, groupName) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_ADD_GROUP_IF_IDENTIFYING_COMMAND_ID, "uu", groupId, groupName); + +/** @brief Command description for AddScene + * + * Command: AddScene + * @param groupId INT16U + * @param status Status + * @param sceneId INT8U + * @param groupId INT16U + * @param transitionTime INT16U + * @param sceneId INT8U + * @param sceneName CHAR_STRING + * @param extensionFieldSets SceneExtensionFieldSet [] + * @param extensionFieldSetsLen int + */ +#define emberAfFillCommandScenesClusterAddScene(groupId, status, sceneId, groupId, transitionTime, sceneId, sceneName, \ + extensionFieldSets, extensionFieldSetsLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_ADD_SCENE_COMMAND_ID, "uuuuuuub", groupId, status, sceneId, groupId, transitionTime, sceneId, \ + sceneName, extensionFieldSets, extensionFieldSetsLen); + +/** @brief Command description for ViewScene + * + * Command: ViewScene + * @param groupId INT16U + * @param status Status + * @param sceneId INT8U + * @param groupId INT16U + * @param sceneId INT8U + * @param transitionTime INT16U + * @param sceneName CHAR_STRING + * @param extensionFieldSets SceneExtensionFieldSet [] + * @param extensionFieldSetsLen int + */ +#define emberAfFillCommandScenesClusterViewScene(groupId, status, sceneId, groupId, sceneId, transitionTime, sceneName, \ + extensionFieldSets, extensionFieldSetsLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_VIEW_SCENE_COMMAND_ID, "uuuuuuub", groupId, status, sceneId, groupId, sceneId, transitionTime, \ + sceneName, extensionFieldSets, extensionFieldSetsLen); + +/** @brief Command description for RemoveScene + * + * Command: RemoveScene + * @param groupId INT16U + * @param status Status + * @param sceneId INT8U + * @param groupId INT16U + * @param sceneId INT8U + */ +#define emberAfFillCommandScenesClusterRemoveScene(groupId, status, sceneId, groupId, sceneId) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_REMOVE_SCENE_COMMAND_ID, "uuuuu", groupId, status, sceneId, groupId, sceneId); + +/** @brief Command description for RemoveAllScenes + * + * Command: RemoveAllScenes + * @param groupId INT16U + * @param status Status + * @param groupId INT16U + */ +#define emberAfFillCommandScenesClusterRemoveAllScenes(groupId, status, groupId) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_REMOVE_ALL_SCENES_COMMAND_ID, "uuu", groupId, status, groupId); + +/** @brief Command description for StoreScene + * + * Command: StoreScene + * @param groupId INT16U + * @param status Status + * @param sceneId INT8U + * @param groupId INT16U + * @param sceneId INT8U + */ +#define emberAfFillCommandScenesClusterStoreScene(groupId, status, sceneId, groupId, sceneId) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_STORE_SCENE_COMMAND_ID, "uuuuu", groupId, status, sceneId, groupId, sceneId); + +/** @brief Command description for RecallScene + * + * Command: RecallScene + * @param groupId INT16U + * @param sceneId INT8U + * @param transitionTime INT16U + */ +#define emberAfFillCommandScenesClusterRecallScene(groupId, sceneId, transitionTime) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_RECALL_SCENE_COMMAND_ID, "uuu", groupId, sceneId, transitionTime); + +/** @brief Command description for GetSceneMembership + * + * Command: GetSceneMembership + * @param groupId INT16U + * @param status Status + * @param capacity INT8U + * @param groupId INT16U + * @param sceneCount INT8U + * @param sceneList INT8U [] + * @param sceneListLen int + */ +#define emberAfFillCommandScenesClusterGetSceneMembership(groupId, status, capacity, groupId, sceneCount, sceneList, sceneListLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_GET_SCENE_MEMBERSHIP_COMMAND_ID, "uuuuub", groupId, status, capacity, groupId, sceneCount, \ + sceneList, sceneListLen); + +/** @brief Command description for EnhancedAddScene + * + * Command: EnhancedAddScene + * @param groupId INT16U + * @param status Status + * @param sceneId INT8U + * @param groupId INT16U + * @param transitionTime INT16U + * @param sceneId INT8U + * @param sceneName CHAR_STRING + * @param extensionFieldSets SceneExtensionFieldSet [] + * @param extensionFieldSetsLen int + */ +#define emberAfFillCommandScenesClusterEnhancedAddScene(groupId, status, sceneId, groupId, transitionTime, sceneId, sceneName, \ + extensionFieldSets, extensionFieldSetsLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_ENHANCED_ADD_SCENE_COMMAND_ID, "uuuuuuub", groupId, status, sceneId, groupId, transitionTime, \ + sceneId, sceneName, extensionFieldSets, extensionFieldSetsLen); + +/** @brief Command description for EnhancedViewScene + * + * Command: EnhancedViewScene + * @param groupId INT16U + * @param status Status + * @param sceneId INT8U + * @param groupId INT16U + * @param sceneId INT8U + * @param transitionTime INT16U + * @param sceneName CHAR_STRING + * @param extensionFieldSets SceneExtensionFieldSet [] + * @param extensionFieldSetsLen int + */ +#define emberAfFillCommandScenesClusterEnhancedViewScene(groupId, status, sceneId, groupId, sceneId, transitionTime, sceneName, \ + extensionFieldSets, extensionFieldSetsLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_ENHANCED_VIEW_SCENE_COMMAND_ID, "uuuuuuub", groupId, status, sceneId, groupId, sceneId, \ + transitionTime, sceneName, extensionFieldSets, extensionFieldSetsLen); + +/** @brief Command description for CopyScene + * + * Command: CopyScene + * @param mode ScenesCopyMode + * @param status Status + * @param groupIdFrom INT16U + * @param groupIdFrom INT16U + * @param sceneIdFrom INT8U + * @param sceneIdFrom INT8U + * @param groupIdTo INT16U + * @param sceneIdTo INT8U + */ +#define emberAfFillCommandScenesClusterCopyScene(mode, status, groupIdFrom, groupIdFrom, sceneIdFrom, sceneIdFrom, groupIdTo, \ + sceneIdTo) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_COPY_SCENE_COMMAND_ID, "uuuuuuuu", mode, status, groupIdFrom, groupIdFrom, sceneIdFrom, \ + sceneIdFrom, groupIdTo, sceneIdTo); + +/** @brief Command description for Off + * + * Command: Off + */ +#define emberAfFillCommandOn \ + / \ + offClusterOff() emberAfFillExternalBuffer(mask, \ + \ + ZCL_OFF_COMMAND_ID, "", ); + +/** @brief Command description for On + * + * Command: On + */ +#define emberAfFillCommandOn \ + / \ + offClusterOn() emberAfFillExternalBuffer(mask, \ + \ + ZCL_ON_COMMAND_ID, "", ); + +/** @brief Command description for Toggle + * + * Command: Toggle + */ +#define emberAfFillCommandOn \ + / \ + offClusterToggle() emberAfFillExternalBuffer(mask, \ + \ + ZCL_TOGGLE_COMMAND_ID, "", ); + +/** @brief Command description for OffWithEffect + * + * Command: OffWithEffect + * @param effectId OnOffEffectIdentifier + * @param effectVariant ENUM8 + */ +#define emberAfFillCommandOn \ + / \ + offClusterOffWithEffect(effectId, effectVariant) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_OFF_WITH_EFFECT_COMMAND_ID, "uu", effectId, effectVariant); + +/** @brief Command description for OnWithRecallGlobalScene + * + * Command: OnWithRecallGlobalScene + */ +#define emberAfFillCommandOn \ + / \ + offClusterOnWithRecallGlobalScene() emberAfFillExternalBuffer(mask, \ + \ + ZCL_ON_WITH_RECALL_GLOBAL_SCENE_COMMAND_ID, "", ); + +/** @brief Command description for OnWithTimedOff + * + * Command: OnWithTimedOff + * @param onOffControl OnOffControl + * @param onTime INT16U + * @param offWaitTime INT16U + */ +#define emberAfFillCommandOn \ + / \ + offClusterOnWithTimedOff(onOffControl, onTime, offWaitTime) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_ON_WITH_TIMED_OFF_COMMAND_ID, "uuu", onOffControl, onTime, offWaitTime); + +/** @brief Command description for MoveToLevel + * + * Command: MoveToLevel + * @param level INT8U + * @param transitionTime INT16U + * @param optionMask BITMAP8 + * @param optionOverride BITMAP8 + */ +#define emberAfFillCommandLevel \ + ControlClusterMoveToLevel(level, transitionTime, optionMask, optionOverride) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_MOVE_TO_LEVEL_COMMAND_ID, "uuuu", level, transitionTime, optionMask, optionOverride); + +/** @brief Command description for Move + * + * Command: Move + * @param moveMode MoveMode + * @param rate INT8U + * @param optionMask BITMAP8 + * @param optionOverride BITMAP8 + */ +#define emberAfFillCommandLevel \ + ControlClusterMove(moveMode, rate, optionMask, optionOverride) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_MOVE_COMMAND_ID, "uuuu", moveMode, rate, optionMask, optionOverride); + +/** @brief Command description for Step + * + * Command: Step + * @param stepMode StepMode + * @param stepSize INT8U + * @param transitionTime INT16U + * @param optionMask BITMAP8 + * @param optionOverride BITMAP8 + */ +#define emberAfFillCommandLevel \ + ControlClusterStep(stepMode, stepSize, transitionTime, optionMask, optionOverride) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_STEP_COMMAND_ID, "uuuuu", stepMode, stepSize, transitionTime, optionMask, optionOverride); + +/** @brief Command description for Stop + * + * Command: Stop + * @param optionMask BITMAP8 + * @param optionOverride BITMAP8 + */ +#define emberAfFillCommandLevel \ + ControlClusterStop(optionMask, optionOverride) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_STOP_COMMAND_ID, "uu", optionMask, optionOverride); + +/** @brief Command description for MoveToLevelWithOnOff + * + * Command: MoveToLevelWithOnOff + * @param level INT8U + * @param transitionTime INT16U + */ +#define emberAfFillCommandLevel \ + ControlClusterMoveToLevelWithOnOff(level, transitionTime) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_MOVE_TO_LEVEL_WITH_ON_OFF_COMMAND_ID, "uu", level, transitionTime); + +/** @brief Command description for MoveWithOnOff + * + * Command: MoveWithOnOff + * @param moveMode MoveMode + * @param rate INT8U + */ +#define emberAfFillCommandLevel \ + ControlClusterMoveWithOnOff(moveMode, rate) emberAfFillExternalBuffer(mask, \ + \ + ZCL_MOVE_WITH_ON_OFF_COMMAND_ID, "uu", moveMode, rate); + +/** @brief Command description for StepWithOnOff + * + * Command: StepWithOnOff + * @param stepMode StepMode + * @param stepSize INT8U + * @param transitionTime INT16U + */ +#define emberAfFillCommandLevel \ + ControlClusterStepWithOnOff(stepMode, stepSize, transitionTime) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_STEP_WITH_ON_OFF_COMMAND_ID, "uuu", stepMode, stepSize, transitionTime); + +/** @brief Command description for StopWithOnOff + * + * Command: StopWithOnOff + */ +#define emberAfFillCommandLevel \ + ControlClusterStopWithOnOff() emberAfFillExternalBuffer(mask, \ + \ + ZCL_STOP_WITH_ON_OFF_COMMAND_ID, "", ); + +/** @brief Command description for ResetAlarm + * + * Command: ResetAlarm + * @param alarmCode ENUM8 + * @param alarmCode ENUM8 + * @param clusterId CLUSTER_ID + * @param clusterId CLUSTER_ID + */ +#define emberAfFillCommandAlarmsClusterResetAlarm(alarmCode, alarmCode, clusterId, clusterId) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_RESET_ALARM_COMMAND_ID, "uuuu", alarmCode, alarmCode, clusterId, clusterId); + +/** @brief Command description for ResetAllAlarms + * + * Command: ResetAllAlarms + * @param status Status + * @param alarmCode ENUM8 + * @param clusterId CLUSTER_ID + * @param timeStamp INT32U + */ +#define emberAfFillCommandAlarmsClusterResetAllAlarms(status, alarmCode, clusterId, timeStamp) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_RESET_ALL_ALARMS_COMMAND_ID, "uuuu", status, alarmCode, clusterId, timeStamp); + +/** @brief Command description for GetAlarm + * + * Command: GetAlarm + */ +#define emberAfFillCommandAlarmsClusterGetAlarm() \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_GET_ALARM_COMMAND_ID, "", ); + +/** @brief Command description for ResetAlarmLog + * + * Command: ResetAlarmLog + */ +#define emberAfFillCommandAlarmsClusterResetAlarmLog() \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_RESET_ALARM_LOG_COMMAND_ID, "", ); + +/** @brief Command description for SetAbsoluteLocation + * + * Command: SetAbsoluteLocation + * @param coordinate1 INT16S + * @param status Status + * @param coordinate2 INT16S + * @param power INT16S + * @param coordinate3 INT16S + * @param pathLossExponent INT16U + * @param power INT16S + * @param calculationPeriod INT16U + * @param pathLossExponent INT16U + * @param numberRssiMeasurements INT8U + * @param reportingPeriod INT16U + */ +#define emberAfFillCommandRSSI \ + LocationClusterSetAbsoluteLocation(coordinate1, status, coordinate2, power, coordinate3, pathLossExponent, power, \ + calculationPeriod, pathLossExponent, numberRssiMeasurements, reportingPeriod) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_SET_ABSOLUTE_LOCATION_COMMAND_ID, "uuuuuuuuuuu", coordinate1, status, coordinate2, power, \ + coordinate3, pathLossExponent, power, calculationPeriod, pathLossExponent, \ + numberRssiMeasurements, reportingPeriod); + +/** @brief Command description for SetDeviceConfiguration + * + * Command: SetDeviceConfiguration + * @param power INT16S + * @param status Status + * @param pathLossExponent INT16U + * @param locationType LocationType + * @param calculationPeriod INT16U + * @param coordinate1 INT16S + * @param numberRssiMeasurements INT8U + * @param coordinate2 INT16S + * @param reportingPeriod INT16U + * @param coordinate3 INT16S + * @param power INT16S + * @param pathLossExponent INT16U + * @param locationMethod LocationMethod + * @param qualityMeasure INT8U + * @param locationAge INT16U + */ +#define emberAfFillCommandRSSI \ + LocationClusterSetDeviceConfiguration(power, status, pathLossExponent, locationType, calculationPeriod, coordinate1, \ + numberRssiMeasurements, coordinate2, reportingPeriod, coordinate3, power, \ + pathLossExponent, locationMethod, qualityMeasure, locationAge) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_SET_DEVICE_CONFIGURATION_COMMAND_ID, "uuuuuuuuuuuuuuu", power, status, pathLossExponent, \ + locationType, calculationPeriod, coordinate1, numberRssiMeasurements, coordinate2, \ + reportingPeriod, coordinate3, power, pathLossExponent, locationMethod, qualityMeasure, \ + locationAge); + +/** @brief Command description for GetDeviceConfiguration + * + * Command: GetDeviceConfiguration + * @param targetAddress IEEE_ADDRESS + * @param locationType LocationType + * @param coordinate1 INT16S + * @param coordinate2 INT16S + * @param coordinate3 INT16S + * @param power INT16S + * @param pathLossExponent INT16U + * @param locationMethod LocationMethod + * @param qualityMeasure INT8U + * @param locationAge INT16U + */ +#define emberAfFillCommandRSSI \ + LocationClusterGetDeviceConfiguration(targetAddress, locationType, coordinate1, coordinate2, coordinate3, power, \ + pathLossExponent, locationMethod, qualityMeasure, locationAge) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_GET_DEVICE_CONFIGURATION_COMMAND_ID, "uuuuuuuuuu", targetAddress, locationType, coordinate1, \ + coordinate2, coordinate3, power, pathLossExponent, locationMethod, qualityMeasure, locationAge); + +/** @brief Command description for GetLocationData + * + * Command: GetLocationData + * @param flags GetLocationDataFlags + * @param locationType LocationType + * @param numberResponses INT8U + * @param coordinate1 INT16S + * @param targetAddress IEEE_ADDRESS + * @param coordinate2 INT16S + * @param coordinate3 INT16S + * @param qualityMeasure INT8U + * @param locationAge INT16U + */ +#define emberAfFillCommandRSSI \ + LocationClusterGetLocationData(flags, locationType, numberResponses, coordinate1, targetAddress, coordinate2, coordinate3, \ + qualityMeasure, locationAge) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_GET_LOCATION_DATA_COMMAND_ID, "uuuuuuuuu", flags, locationType, numberResponses, \ + coordinate1, targetAddress, coordinate2, coordinate3, qualityMeasure, locationAge); + +/** @brief Command description for RssiResponse + * + * Command: RssiResponse + * @param replyingDevice IEEE_ADDRESS + * @param locationType LocationType + * @param coordinate1 INT16S + * @param coordinate2 INT16S + * @param coordinate3 INT16S + * @param rssi INT8S + * @param numberRssiMeasurements INT8U + */ +#define emberAfFillCommandRSSI \ + LocationClusterRssiResponse(replyingDevice, locationType, coordinate1, coordinate2, coordinate3, rssi, numberRssiMeasurements) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_RSSI_RESPONSE_COMMAND_ID, "uuuuuuu", replyingDevice, locationType, coordinate1, coordinate2, \ + coordinate3, rssi, numberRssiMeasurements); + +/** @brief Command description for RssiRequest + * + * Command: RssiRequest + * @param targetAddress IEEE_ADDRESS + * @param numberRssiMeasurements INT8U + * @param calculationPeriod INT16U + */ +#define emberAfFillCommandRSSI \ + LocationClusterRssiRequest(targetAddress, numberRssiMeasurements, calculationPeriod) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_RSSI_REQUEST_COMMAND_ID, "uuu", targetAddress, numberRssiMeasurements, calculationPeriod); + +/** @brief Command description for AnchorNodeAnnounce + * + * Command: AnchorNodeAnnounce + * @param anchorNodeIeeeAddress IEEE_ADDRESS + * @param measuringDevice IEEE_ADDRESS + * @param coordinate1 INT16S + * @param neighbors INT8U + * @param coordinate2 INT16S + * @param neighborsInfo NeighborInfo [] + * @param neighborsInfoLen int + * @param coordinate3 INT16S + */ +#define emberAfFillCommandRSSI \ + LocationClusterAnchorNodeAnnounce(anchorNodeIeeeAddress, measuringDevice, coordinate1, neighbors, coordinate2, neighborsInfo, \ + neighborsInfoLen, coordinate3) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_ANCHOR_NODE_ANNOUNCE_COMMAND_ID, "uuuuubu", anchorNodeIeeeAddress, measuringDevice, \ + coordinate1, neighbors, coordinate2, neighborsInfo, neighborsInfoLen, coordinate3); + +/** @brief Command description for RequestOwnLocation + * + * Command: RequestOwnLocation + * @param blindNode IEEE_ADDRESS + */ +#define emberAfFillCommandRSSI \ + LocationClusterRequestOwnLocation(blindNode) emberAfFillExternalBuffer(mask, \ + \ + ZCL_REQUEST_OWN_LOCATION_COMMAND_ID, "u", blindNode); + +/** @brief Command description for RestartDevice + * + * Command: RestartDevice + * @param options RestartOptions + * @param status ENUM8 + * @param delay INT8U + * @param jitter INT8U + */ +#define emberAfFillCommandCommissioningClusterRestartDevice(options, status, delay, jitter) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_RESTART_DEVICE_COMMAND_ID, "uuuu", options, status, delay, jitter); + +/** @brief Command description for SaveStartupParameters + * + * Command: SaveStartupParameters + * @param options BITMAP8 + * @param status ENUM8 + * @param index INT8U + */ +#define emberAfFillCommandCommissioningClusterSaveStartupParameters(options, status, index) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_SAVE_STARTUP_PARAMETERS_COMMAND_ID, "uuu", options, status, index); + +/** @brief Command description for RestoreStartupParameters + * + * Command: RestoreStartupParameters + * @param options BITMAP8 + * @param status ENUM8 + * @param index INT8U + */ +#define emberAfFillCommandCommissioningClusterRestoreStartupParameters(options, status, index) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_RESTORE_STARTUP_PARAMETERS_COMMAND_ID, "uuu", options, status, index); + +/** @brief Command description for ResetStartupParameters + * + * Command: ResetStartupParameters + * @param options ResetOptions + * @param status ENUM8 + * @param index INT8U + */ +#define emberAfFillCommandCommissioningClusterResetStartupParameters(options, status, index) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_RESET_STARTUP_PARAMETERS_COMMAND_ID, "uuu", options, status, index); + +/** @brief Command description for TransferPartitionedFrame + * + * Command: TransferPartitionedFrame + * @param fragmentationOptions BITMAP8 + * @param ackOptions BITMAP8 + * @param partitionedIndicatorAndFrame INT8U [] + * @param partitionedIndicatorAndFrameLen int + * @param firstFrameIdAndNackList INT8U [] + * @param firstFrameIdAndNackListLen int + */ +#define emberAfFillCommandPartitionClusterTransferPartitionedFrame(fragmentationOptions, ackOptions, partitionedIndicatorAndFrame, \ + partitionedIndicatorAndFrameLen, firstFrameIdAndNackList, \ + firstFrameIdAndNackListLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_TRANSFER_PARTITIONED_FRAME_COMMAND_ID, "uubb", fragmentationOptions, ackOptions, \ + partitionedIndicatorAndFrame, partitionedIndicatorAndFrameLen, firstFrameIdAndNackList, \ + firstFrameIdAndNackListLen); + +/** @brief Command description for ReadHandshakeParam + * + * Command: ReadHandshakeParam + * @param partitionedClusterId CLUSTER_ID + * @param partitionedClusterId CLUSTER_ID + * @param attributeList ATTRIBUTE_ID [] + * @param attributeListLen int + * @param readAttributeStatusRecords ReadAttributeStatusRecord [] + * @param readAttributeStatusRecordsLen int + */ +#define emberAfFillCommandPartitionClusterReadHandshakeParam(partitionedClusterId, partitionedClusterId, attributeList, \ + attributeListLen, readAttributeStatusRecords, \ + readAttributeStatusRecordsLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_READ_HANDSHAKE_PARAM_COMMAND_ID, "uubb", partitionedClusterId, partitionedClusterId, \ + attributeList, attributeListLen, readAttributeStatusRecords, readAttributeStatusRecordsLen); + +/** @brief Command description for WriteHandshakeParam + * + * Command: WriteHandshakeParam + * @param partitionedClusterId CLUSTER_ID + * @param writeAttributeRecords WriteAttributeRecord [] + * @param writeAttributeRecordsLen int + */ +#define emberAfFillCommandPartitionClusterWriteHandshakeParam(partitionedClusterId, writeAttributeRecords, \ + writeAttributeRecordsLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_WRITE_HANDSHAKE_PARAM_COMMAND_ID, "ub", partitionedClusterId, writeAttributeRecords, \ + writeAttributeRecordsLen); + +/** @brief Command description for ImageNotify + * + * Command: ImageNotify + * @param payloadType ENUM8 + * @param queryJitter INT8U + * @param manufacturerId INT16U + * @param imageType INT16U + * @param newFileVersion INT32U + */ +#define emberAfFillCommandOver \ + the Air BootloadingClusterImageNotify(payloadType, queryJitter, manufacturerId, imageType, newFileVersion) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_IMAGE_NOTIFY_COMMAND_ID, "uuuuu", payloadType, queryJitter, manufacturerId, imageType, \ + newFileVersion); + +/** @brief Command description for QueryNextImageRequest + * + * Command: QueryNextImageRequest + * @param fieldControl INT8U + * @param manufacturerId INT16U + * @param imageType INT16U + * @param currentFileVersion INT32U + * @param hardwareVersion INT16U + */ +#define emberAfFillCommandOver \ + the Air BootloadingClusterQueryNextImageRequest(fieldControl, manufacturerId, imageType, currentFileVersion, hardwareVersion) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_QUERY_NEXT_IMAGE_REQUEST_COMMAND_ID, "uuuuu", fieldControl, manufacturerId, imageType, \ + currentFileVersion, hardwareVersion); + +/** @brief Command description for QueryNextImageResponse + * + * Command: QueryNextImageResponse + * @param status Status + * @param manufacturerId INT16U + * @param imageType INT16U + * @param fileVersion INT32U + * @param imageSize INT32U + */ +#define emberAfFillCommandOver \ + the Air BootloadingClusterQueryNextImageResponse(status, manufacturerId, imageType, fileVersion, imageSize) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_QUERY_NEXT_IMAGE_RESPONSE_COMMAND_ID, "uuuuu", status, manufacturerId, imageType, \ + fileVersion, imageSize); + +/** @brief Command description for ImageBlockRequest + * + * Command: ImageBlockRequest + * @param fieldControl INT8U + * @param manufacturerId INT16U + * @param imageType INT16U + * @param fileVersion INT32U + * @param fileOffset INT32U + * @param maxDataSize INT8U + * @param requestNodeAddress IEEE_ADDRESS + */ +#define emberAfFillCommandOver \ + the Air BootloadingClusterImageBlockRequest(fieldControl, manufacturerId, imageType, fileVersion, fileOffset, maxDataSize, \ + requestNodeAddress) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_IMAGE_BLOCK_REQUEST_COMMAND_ID, "uuuuuuu", fieldControl, manufacturerId, imageType, \ + fileVersion, fileOffset, maxDataSize, requestNodeAddress); + +/** @brief Command description for ImagePageRequest + * + * Command: ImagePageRequest + * @param fieldControl INT8U + * @param manufacturerId INT16U + * @param imageType INT16U + * @param fileVersion INT32U + * @param fileOffset INT32U + * @param maxDataSize INT8U + * @param pageSize INT16U + * @param responseSpacing INT16U + * @param requestNodeAddress IEEE_ADDRESS + */ +#define emberAfFillCommandOver \ + the Air BootloadingClusterImagePageRequest(fieldControl, manufacturerId, imageType, fileVersion, fileOffset, maxDataSize, \ + pageSize, responseSpacing, requestNodeAddress) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_IMAGE_PAGE_REQUEST_COMMAND_ID, "uuuuuuuuu", fieldControl, manufacturerId, imageType, \ + fileVersion, fileOffset, maxDataSize, pageSize, responseSpacing, requestNodeAddress); + +/** @brief Command description for ImageBlockResponse + * + * Command: ImageBlockResponse + * @param status Status + * @param manufacturerId INT16U + * @param imageType INT16U + * @param fileVersion INT32U + * @param fileOffset INT32U + * @param dataSize INT8U + * @param imageData INT8U [] + * @param imageDataLen int + */ +#define emberAfFillCommandOver \ + the Air BootloadingClusterImageBlockResponse(status, manufacturerId, imageType, fileVersion, fileOffset, dataSize, imageData, \ + imageDataLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_IMAGE_BLOCK_RESPONSE_COMMAND_ID, "uuuuuub", status, manufacturerId, imageType, fileVersion, \ + fileOffset, dataSize, imageData, imageDataLen); + +/** @brief Command description for UpgradeEndRequest + * + * Command: UpgradeEndRequest + * @param status Status + * @param manufacturerId INT16U + * @param imageType INT16U + * @param fileVersion INT32U + */ +#define emberAfFillCommandOver \ + the Air BootloadingClusterUpgradeEndRequest(status, manufacturerId, imageType, fileVersion) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_UPGRADE_END_REQUEST_COMMAND_ID, "uuuu", status, manufacturerId, imageType, fileVersion); + +/** @brief Command description for UpgradeEndResponse + * + * Command: UpgradeEndResponse + * @param manufacturerId INT16U + * @param imageType INT16U + * @param fileVersion INT32U + * @param currentTime UTC_TIME + * @param upgradeTime UTC_TIME + */ +#define emberAfFillCommandOver \ + the Air BootloadingClusterUpgradeEndResponse(manufacturerId, imageType, fileVersion, currentTime, upgradeTime) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_UPGRADE_END_RESPONSE_COMMAND_ID, "uuuuu", manufacturerId, imageType, fileVersion, \ + currentTime, upgradeTime); + +/** @brief Command description for QuerySpecificFileRequest + * + * Command: QuerySpecificFileRequest + * @param requestNodeAddress IEEE_ADDRESS + * @param manufacturerId INT16U + * @param imageType INT16U + * @param fileVersion INT32U + * @param currentZigbeeStackVersion INT16U + */ +#define emberAfFillCommandOver \ + the Air BootloadingClusterQuerySpecificFileRequest(requestNodeAddress, manufacturerId, imageType, fileVersion, \ + currentZigbeeStackVersion) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_QUERY_SPECIFIC_FILE_REQUEST_COMMAND_ID, "uuuuu", requestNodeAddress, manufacturerId, \ + imageType, fileVersion, currentZigbeeStackVersion); + +/** @brief Command description for QuerySpecificFileResponse + * + * Command: QuerySpecificFileResponse + * @param status Status + * @param manufacturerId INT16U + * @param imageType INT16U + * @param fileVersion INT32U + * @param imageSize INT32U + */ +#define emberAfFillCommandOver \ + the Air BootloadingClusterQuerySpecificFileResponse(status, manufacturerId, imageType, fileVersion, imageSize) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_QUERY_SPECIFIC_FILE_RESPONSE_COMMAND_ID, "uuuuu", status, manufacturerId, imageType, \ + fileVersion, imageSize); + +/** @brief Command description for PowerProfileRequest + * + * Command: PowerProfileRequest + * @param powerProfileId INT8U + * @param totalProfileNum INT8U + * @param powerProfileId INT8U + * @param numOfTransferredPhases INT8U + * @param transferredPhases TransferredPhase [] + * @param transferredPhasesLen int + */ +#define emberAfFillCommandPower \ + ProfileClusterPowerProfileRequest(powerProfileId, totalProfileNum, powerProfileId, numOfTransferredPhases, transferredPhases, \ + transferredPhasesLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_POWER_PROFILE_REQUEST_COMMAND_ID, "uuuub", powerProfileId, totalProfileNum, powerProfileId, \ + numOfTransferredPhases, transferredPhases, transferredPhasesLen); + +/** @brief Command description for PowerProfileStateRequest + * + * Command: PowerProfileStateRequest + * @param totalProfileNum INT8U + * @param powerProfileId INT8U + * @param numOfTransferredPhases INT8U + * @param transferredPhases TransferredPhase [] + * @param transferredPhasesLen int + */ +#define emberAfFillCommandPower \ + ProfileClusterPowerProfileStateRequest(totalProfileNum, powerProfileId, numOfTransferredPhases, transferredPhases, \ + transferredPhasesLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_POWER_PROFILE_STATE_REQUEST_COMMAND_ID, "uuub", totalProfileNum, powerProfileId, \ + numOfTransferredPhases, transferredPhases, transferredPhasesLen); + +/** @brief Command description for GetPowerProfilePriceResponse + * + * Command: GetPowerProfilePriceResponse + * @param powerProfileId INT8U + * @param powerProfileCount INT8U + * @param currency INT16U + * @param powerProfileRecords PowerProfileRecord [] + * @param powerProfileRecordsLen int + * @param price INT32U + * @param priceTrailingDigit INT8U + */ +#define emberAfFillCommandPower \ + ProfileClusterGetPowerProfilePriceResponse(powerProfileId, powerProfileCount, currency, powerProfileRecords, \ + powerProfileRecordsLen, price, priceTrailingDigit) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_GET_POWER_PROFILE_PRICE_RESPONSE_COMMAND_ID, "uuubuu", powerProfileId, powerProfileCount, \ + currency, powerProfileRecords, powerProfileRecordsLen, price, priceTrailingDigit); + +/** @brief Command description for GetOverallSchedulePriceResponse + * + * Command: GetOverallSchedulePriceResponse + * @param currency INT16U + * @param powerProfileId INT8U + * @param price INT32U + * @param priceTrailingDigit INT8U + */ +#define emberAfFillCommandPower \ + ProfileClusterGetOverallSchedulePriceResponse(currency, powerProfileId, price, priceTrailingDigit) emberAfFillExternalBuffer( \ + mask, \ + \ + ZCL_GET_OVERALL_SCHEDULE_PRICE_RESPONSE_COMMAND_ID, "uuuu", currency, powerProfileId, price, priceTrailingDigit); + +/** @brief Command description for EnergyPhasesScheduleNotification + * + * Command: EnergyPhasesScheduleNotification + * @param powerProfileId INT8U + * @param powerProfileCount INT8U + * @param numOfScheduledPhases INT8U + * @param powerProfileRecords PowerProfileRecord [] + * @param powerProfileRecordsLen int + * @param scheduledPhases ScheduledPhase [] + * @param scheduledPhasesLen int + */ +#define emberAfFillCommandPower \ + ProfileClusterEnergyPhasesScheduleNotification(powerProfileId, powerProfileCount, numOfScheduledPhases, powerProfileRecords, \ + powerProfileRecordsLen, scheduledPhases, scheduledPhasesLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_ENERGY_PHASES_SCHEDULE_NOTIFICATION_COMMAND_ID, "uuubb", powerProfileId, powerProfileCount, \ + numOfScheduledPhases, powerProfileRecords, powerProfileRecordsLen, scheduledPhases, \ + scheduledPhasesLen); + +/** @brief Command description for GetOverallSchedulePrice + * + * Command: GetOverallSchedulePrice + * @param powerProfileId INT8U + * @param numOfScheduledPhases INT8U + * @param scheduledPhases ScheduledPhase [] + * @param scheduledPhasesLen int + */ +#define emberAfFillCommandPower \ + ProfileClusterGetOverallSchedulePrice(powerProfileId, numOfScheduledPhases, scheduledPhases, scheduledPhasesLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_GET_OVERALL_SCHEDULE_PRICE_COMMAND_ID, "uub", powerProfileId, numOfScheduledPhases, \ + scheduledPhases, scheduledPhasesLen); + +/** @brief Command description for PowerProfileScheduleConstraintsRequest + * + * Command: PowerProfileScheduleConstraintsRequest + * @param powerProfileId INT8U + * @param powerProfileId INT8U + */ +#define emberAfFillCommandPower \ + ProfileClusterPowerProfileScheduleConstraintsRequest(powerProfileId, powerProfileId) emberAfFillExternalBuffer( \ + mask, \ + \ + ZCL_POWER_PROFILE_SCHEDULE_CONSTRAINTS_REQUEST_COMMAND_ID, "uu", powerProfileId, powerProfileId); + +/** @brief Command description for EnergyPhasesScheduleStateRequest + * + * Command: EnergyPhasesScheduleStateRequest + * @param powerProfileId INT8U + * @param powerProfileId INT8U + * @param numOfScheduledPhases INT8U + * @param scheduledPhases ScheduledPhase [] + * @param scheduledPhasesLen int + */ +#define emberAfFillCommandPower \ + ProfileClusterEnergyPhasesScheduleStateRequest(powerProfileId, powerProfileId, numOfScheduledPhases, scheduledPhases, \ + scheduledPhasesLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_ENERGY_PHASES_SCHEDULE_STATE_REQUEST_COMMAND_ID, "uuub", powerProfileId, powerProfileId, \ + numOfScheduledPhases, scheduledPhases, scheduledPhasesLen); + +/** @brief Command description for GetPowerProfilePriceExtendedResponse + * + * Command: GetPowerProfilePriceExtendedResponse + * @param powerProfileId INT8U + * @param powerProfileId INT8U + * @param currency INT16U + * @param numOfScheduledPhases INT8U + * @param price INT32U + * @param scheduledPhases ScheduledPhase [] + * @param scheduledPhasesLen int + * @param priceTrailingDigit INT8U + */ +#define emberAfFillCommandPower \ + ProfileClusterGetPowerProfilePriceExtendedResponse(powerProfileId, powerProfileId, currency, numOfScheduledPhases, price, \ + scheduledPhases, scheduledPhasesLen, priceTrailingDigit) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_GET_POWER_PROFILE_PRICE_EXTENDED_RESPONSE_COMMAND_ID, "uuuuubu", powerProfileId, \ + powerProfileId, currency, numOfScheduledPhases, price, scheduledPhases, scheduledPhasesLen, \ + priceTrailingDigit); + +/** @brief Command description for PowerProfileScheduleConstraintsNotification + * + * Command: PowerProfileScheduleConstraintsNotification + * @param powerProfileId INT8U + * @param startAfter INT16U + * @param stopBefore INT16U + */ +#define emberAfFillCommandPower \ + ProfileClusterPowerProfileScheduleConstraintsNotification(powerProfileId, startAfter, stopBefore) emberAfFillExternalBuffer( \ + mask, \ + \ + ZCL_POWER_PROFILE_SCHEDULE_CONSTRAINTS_NOTIFICATION_COMMAND_ID, "uuu", powerProfileId, startAfter, stopBefore); + +/** @brief Command description for PowerProfileScheduleConstraintsResponse + * + * Command: PowerProfileScheduleConstraintsResponse + * @param powerProfileId INT8U + * @param startAfter INT16U + * @param stopBefore INT16U + */ +#define emberAfFillCommandPower \ + ProfileClusterPowerProfileScheduleConstraintsResponse(powerProfileId, startAfter, stopBefore) emberAfFillExternalBuffer( \ + mask, \ + \ + ZCL_POWER_PROFILE_SCHEDULE_CONSTRAINTS_RESPONSE_COMMAND_ID, "uuu", powerProfileId, startAfter, stopBefore); + +/** @brief Command description for GetPowerProfilePriceExtended + * + * Command: GetPowerProfilePriceExtended + * @param options BITMAP8 + * @param powerProfileId INT8U + * @param powerProfileStartTime INT16U + */ +#define emberAfFillCommandPower \ + ProfileClusterGetPowerProfilePriceExtended(options, powerProfileId, powerProfileStartTime) emberAfFillExternalBuffer( \ + mask, \ + \ + ZCL_GET_POWER_PROFILE_PRICE_EXTENDED_COMMAND_ID, "uuu", options, powerProfileId, powerProfileStartTime); + +/** @brief Command description for ExecutionOfACommand + * + * Command: ExecutionOfACommand + * @param commandId CommandIdentification + * @param applianceStatus ApplianceStatus + * @param remoteEnableFlagsAndDeviceStatus2 RemoteEnableFlagsAndDeviceStatus2 + * @param applianceStatus2 INT24U + */ +#define emberAfFillCommandAppliance \ + ControlClusterExecutionOfACommand(commandId, applianceStatus, remoteEnableFlagsAndDeviceStatus2, applianceStatus2) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_EXECUTION_OF_A_COMMAND_COMMAND_ID, "uuuu", commandId, applianceStatus, \ + remoteEnableFlagsAndDeviceStatus2, applianceStatus2); + +/** @brief Command description for SignalState + * + * Command: SignalState + * @param applianceStatus ApplianceStatus + * @param remoteEnableFlagsAndDeviceStatus2 RemoteEnableFlagsAndDeviceStatus2 + * @param applianceStatus2 INT24U + */ +#define emberAfFillCommandAppliance \ + ControlClusterSignalState(applianceStatus, remoteEnableFlagsAndDeviceStatus2, applianceStatus2) emberAfFillExternalBuffer( \ + mask, \ + \ + ZCL_SIGNAL_STATE_COMMAND_ID, "uuu", applianceStatus, remoteEnableFlagsAndDeviceStatus2, applianceStatus2); + +/** @brief Command description for WriteFunctions + * + * Command: WriteFunctions + * @param functionId INT16U + * @param functionDataType ENUM8 + * @param functionData INT8U [] + * @param functionDataLen int + */ +#define emberAfFillCommandAppliance \ + ControlClusterWriteFunctions(functionId, functionDataType, functionData, functionDataLen) emberAfFillExternalBuffer( \ + mask, \ + \ + ZCL_WRITE_FUNCTIONS_COMMAND_ID, "uub", functionId, functionDataType, functionData, functionDataLen); + +/** @brief Command description for OverloadPauseResume + * + * Command: OverloadPauseResume + */ +#define emberAfFillCommandAppliance \ + ControlClusterOverloadPauseResume() emberAfFillExternalBuffer(mask, \ + \ + ZCL_OVERLOAD_PAUSE_RESUME_COMMAND_ID, "", ); + +/** @brief Command description for OverloadPause + * + * Command: OverloadPause + */ +#define emberAfFillCommandAppliance \ + ControlClusterOverloadPause() emberAfFillExternalBuffer(mask, \ + \ + ZCL_OVERLOAD_PAUSE_COMMAND_ID, "", ); + +/** @brief Command description for OverloadWarning + * + * Command: OverloadWarning + * @param warningEvent WarningEvent + */ +#define emberAfFillCommandAppliance \ + ControlClusterOverloadWarning(warningEvent) emberAfFillExternalBuffer(mask, \ + \ + ZCL_OVERLOAD_WARNING_COMMAND_ID, "u", warningEvent); + +/** @brief Command description for CheckIn + * + * Command: CheckIn + * @param startFastPolling BOOLEAN + * @param fastPollTimeout INT16U + */ +#define emberAfFillCommandPoll \ + ControlClusterCheckIn(startFastPolling, fastPollTimeout) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_CHECK_IN_COMMAND_ID, "uu", startFastPolling, fastPollTimeout); + +/** @brief Command description for FastPollStop + * + * Command: FastPollStop + */ +#define emberAfFillCommandPoll \ + ControlClusterFastPollStop() emberAfFillExternalBuffer(mask, \ + \ + ZCL_FAST_POLL_STOP_COMMAND_ID, "", ); + +/** @brief Command description for SetLongPollInterval + * + * Command: SetLongPollInterval + * @param newLongPollInterval INT32U + */ +#define emberAfFillCommandPoll \ + ControlClusterSetLongPollInterval(newLongPollInterval) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_SET_LONG_POLL_INTERVAL_COMMAND_ID, "u", newLongPollInterval); + +/** @brief Command description for SetShortPollInterval + * + * Command: SetShortPollInterval + * @param newShortPollInterval INT16U + */ +#define emberAfFillCommandPoll \ + ControlClusterSetShortPollInterval(newShortPollInterval) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_SET_SHORT_POLL_INTERVAL_COMMAND_ID, "u", newShortPollInterval); + +/** @brief Command description for GpNotification + * + * Command: GpNotification + * @param options GpNotificationOption + * @param options GpNotificationResponseOption + * @param gpdSrcId INT32U + * @param gpdSrcId INT32U + * @param gpdIeee IEEE_ADDRESS + * @param gpdIeee IEEE_ADDRESS + * @param gpdEndpoint INT8U + * @param endpoint INT8U + * @param gpdSecurityFrameCounter INT32U + * @param gpdSecurityFrameCounter INT32U + * @param gpdCommandId INT8U + * @param gpdCommandPayload OCTET_STRING + * @param gppShortAddress INT16U + * @param gppDistance INT8U + */ +#define emberAfFillCommandGreen \ + PowerClusterGpNotification(options, options, gpdSrcId, gpdSrcId, gpdIeee, gpdIeee, gpdEndpoint, endpoint, \ + gpdSecurityFrameCounter, gpdSecurityFrameCounter, gpdCommandId, gpdCommandPayload, gppShortAddress, \ + gppDistance) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_GP_NOTIFICATION_COMMAND_ID, "uuuuuuuuuuuuuu", options, options, gpdSrcId, gpdSrcId, gpdIeee, \ + gpdIeee, gpdEndpoint, endpoint, gpdSecurityFrameCounter, gpdSecurityFrameCounter, gpdCommandId, \ + gpdCommandPayload, gppShortAddress, gppDistance); + +/** @brief Command description for GpPairingSearch + * + * Command: GpPairingSearch + * @param options GpPairingSearchOption + * @param options GpPairingOption + * @param gpdSrcId INT32U + * @param gpdSrcId INT32U + * @param gpdIeee IEEE_ADDRESS + * @param gpdIeee IEEE_ADDRESS + * @param endpoint INT8U + * @param endpoint INT8U + * @param sinkIeeeAddress IEEE_ADDRESS + * @param sinkNwkAddress INT16U + * @param sinkGroupId INT16U + * @param deviceId GpDeviceId + * @param gpdSecurityFrameCounter INT32U + * @param gpdKey SECURITY_KEY + * @param assignedAlias INT16U + * @param groupcastRadius INT8U + */ +#define emberAfFillCommandGreen \ + PowerClusterGpPairingSearch(options, options, gpdSrcId, gpdSrcId, gpdIeee, gpdIeee, endpoint, endpoint, sinkIeeeAddress, \ + sinkNwkAddress, sinkGroupId, deviceId, gpdSecurityFrameCounter, gpdKey, assignedAlias, \ + groupcastRadius) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_GP_PAIRING_SEARCH_COMMAND_ID, "uuuuuuuuuuuuuuuu", options, options, gpdSrcId, gpdSrcId, \ + gpdIeee, gpdIeee, endpoint, endpoint, sinkIeeeAddress, sinkNwkAddress, sinkGroupId, deviceId, \ + gpdSecurityFrameCounter, gpdKey, assignedAlias, groupcastRadius); + +/** @brief Command description for GpProxyCommissioningMode + * + * Command: GpProxyCommissioningMode + * @param options GpProxyCommissioningModeOption + * @param commissioningWindow INT16U + * @param channel INT8U + */ +#define emberAfFillCommandGreen \ + PowerClusterGpProxyCommissioningMode(options, commissioningWindow, channel) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_GP_PROXY_COMMISSIONING_MODE_COMMAND_ID, "uuu", options, commissioningWindow, channel); + +/** @brief Command description for GpTunnelingStop + * + * Command: GpTunnelingStop + * @param options GpTunnelingStopOption + * @param gpdSrcId INT32U + * @param gpdIeee IEEE_ADDRESS + * @param endpoint INT8U + * @param gpdSecurityFrameCounter INT32U + * @param gppShortAddress INT16U + * @param gppDistance INT8S + */ +#define emberAfFillCommandGreen \ + PowerClusterGpTunnelingStop(options, gpdSrcId, gpdIeee, endpoint, gpdSecurityFrameCounter, gppShortAddress, gppDistance) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_GP_TUNNELING_STOP_COMMAND_ID, "uuuuuuu", options, gpdSrcId, gpdIeee, endpoint, \ + gpdSecurityFrameCounter, gppShortAddress, gppDistance); + +/** @brief Command description for GpCommissioningNotification + * + * Command: GpCommissioningNotification + * @param options GpCommissioningNotificationOption + * @param gpdSrcId INT32U + * @param gpdIeee IEEE_ADDRESS + * @param endpoint INT8U + * @param gpdSecurityFrameCounter INT32U + * @param gpdCommandId INT8U + * @param gpdCommandPayload OCTET_STRING + * @param gppShortAddress INT16U + * @param gppLink INT8U + * @param mic INT32U + */ +#define emberAfFillCommandGreen \ + PowerClusterGpCommissioningNotification(options, gpdSrcId, gpdIeee, endpoint, gpdSecurityFrameCounter, gpdCommandId, \ + gpdCommandPayload, gppShortAddress, gppLink, mic) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_GP_COMMISSIONING_NOTIFICATION_COMMAND_ID, "uuuuuuuuuu", options, gpdSrcId, gpdIeee, \ + endpoint, gpdSecurityFrameCounter, gpdCommandId, gpdCommandPayload, gppShortAddress, gppLink, \ + mic); + +/** @brief Command description for GpSinkCommissioningMode + * + * Command: GpSinkCommissioningMode + * @param options GpSinkCommissioningModeOptions + * @param gpmAddrForSecurity INT16U + * @param gpmAddrForPairing INT16U + * @param sinkEndpoint INT8U + */ +#define emberAfFillCommandGreen \ + PowerClusterGpSinkCommissioningMode(options, gpmAddrForSecurity, gpmAddrForPairing, sinkEndpoint) emberAfFillExternalBuffer( \ + mask, \ + \ + ZCL_GP_SINK_COMMISSIONING_MODE_COMMAND_ID, "uuuu", options, gpmAddrForSecurity, gpmAddrForPairing, sinkEndpoint); + +/** @brief Command description for GpResponse + * + * Command: GpResponse + * @param options GpResponseOption + * @param tempMasterShortAddress INT16U + * @param tempMasterTxChannel BITMAP8 + * @param gpdSrcId INT32U + * @param gpdIeee IEEE_ADDRESS + * @param endpoint INT8U + * @param gpdCommandId INT8U + * @param gpdCommandPayload OCTET_STRING + */ +#define emberAfFillCommandGreen \ + PowerClusterGpResponse(options, tempMasterShortAddress, tempMasterTxChannel, gpdSrcId, gpdIeee, endpoint, gpdCommandId, \ + gpdCommandPayload) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_GP_RESPONSE_COMMAND_ID, "uuuuuuuu", options, tempMasterShortAddress, tempMasterTxChannel, \ + gpdSrcId, gpdIeee, endpoint, gpdCommandId, gpdCommandPayload); + +/** @brief Command description for GpTranslationTableUpdate + * + * Command: GpTranslationTableUpdate + * @param options GpTranslationTableUpdateOption + * @param gpdSrcId INT32U + * @param gpdIeee IEEE_ADDRESS + * @param endpoint INT8U + * @param translations GpTranslationTableUpdateTranslation [] + * @param translationsLen int + */ +#define emberAfFillCommandGreen \ + PowerClusterGpTranslationTableUpdate(options, gpdSrcId, gpdIeee, endpoint, translations, translationsLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_GP_TRANSLATION_TABLE_UPDATE_COMMAND_ID, "uuuub", options, gpdSrcId, gpdIeee, endpoint, \ + translations, translationsLen); + +/** @brief Command description for GpTranslationTableRequest + * + * Command: GpTranslationTableRequest + * @param startIndex INT8U + * @param status GpTranslationTableResponseStatus + * @param options GpTranslationTableResponseOption + * @param totalNumberOfEntries INT8U + * @param startIndex INT8U + * @param entriesCount INT8U + * @param translationTableList INT8U [] + * @param translationTableListLen int + */ +#define emberAfFillCommandGreen \ + PowerClusterGpTranslationTableRequest(startIndex, status, options, totalNumberOfEntries, startIndex, entriesCount, \ + translationTableList, translationTableListLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_GP_TRANSLATION_TABLE_REQUEST_COMMAND_ID, "uuuuuub", startIndex, status, options, \ + totalNumberOfEntries, startIndex, entriesCount, translationTableList, translationTableListLen); + +/** @brief Command description for GpPairingConfiguration + * + * Command: GpPairingConfiguration + * @param actions GpPairingConfigurationActions + * @param options GpPairingConfigurationOption + * @param gpdSrcId INT32U + * @param gpdIeee IEEE_ADDRESS + * @param endpoint INT8U + * @param deviceId INT8U + * @param groupListCount INT8U + * @param groupList GpPairingConfigurationGroupList [] + * @param groupListLen int + * @param gpdAssignedAlias INT16U + * @param groupcastRadius INT8U + * @param securityOptions INT8U + * @param gpdSecurityFrameCounter INT32U + * @param gpdSecurityKey SECURITY_KEY + * @param numberOfPairedEndpoints INT8U + * @param pairedEndpoints INT8U [] + * @param pairedEndpointsLen int + * @param applicationInformation GpApplicationInformation + * @param manufacturerId INT16U + * @param modeId INT16U + * @param numberOfGpdCommands INT8U + * @param gpdCommandIdList INT8U [] + * @param gpdCommandIdListLen int + * @param clusterIdListCount INT8U + * @param clusterListServer INT16U [] + * @param clusterListServerLen int + * @param clusterListClient INT16U [] + * @param clusterListClientLen int + * @param switchInformationLength INT8U + * @param switchConfiguration INT8U + * @param currentContactStatus INT8U + * @param totalNumberOfReports INT8U + * @param numberOfReports INT8U + * @param reportDescriptor INT8U [] + * @param reportDescriptorLen int + */ +#define emberAfFillCommandGreen \ + PowerClusterGpPairingConfiguration( \ + actions, options, gpdSrcId, gpdIeee, endpoint, deviceId, groupListCount, groupList, groupListLen, gpdAssignedAlias, \ + groupcastRadius, securityOptions, gpdSecurityFrameCounter, gpdSecurityKey, numberOfPairedEndpoints, pairedEndpoints, \ + pairedEndpointsLen, applicationInformation, manufacturerId, modeId, numberOfGpdCommands, gpdCommandIdList, \ + gpdCommandIdListLen, clusterIdListCount, clusterListServer, clusterListServerLen, clusterListClient, clusterListClientLen, \ + switchInformationLength, switchConfiguration, currentContactStatus, totalNumberOfReports, numberOfReports, \ + reportDescriptor, reportDescriptorLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_GP_PAIRING_CONFIGURATION_COMMAND_ID, "uuuuuuubuuuuuubuuuububbuuuuub", actions, options, \ + gpdSrcId, gpdIeee, endpoint, deviceId, groupListCount, groupList, groupListLen, \ + gpdAssignedAlias, groupcastRadius, securityOptions, gpdSecurityFrameCounter, gpdSecurityKey, \ + numberOfPairedEndpoints, pairedEndpoints, pairedEndpointsLen, applicationInformation, \ + manufacturerId, modeId, numberOfGpdCommands, gpdCommandIdList, gpdCommandIdListLen, \ + clusterIdListCount, clusterListServer, clusterListServerLen, clusterListClient, \ + clusterListClientLen, switchInformationLength, switchConfiguration, currentContactStatus, \ + totalNumberOfReports, numberOfReports, reportDescriptor, reportDescriptorLen); + +/** @brief Command description for GpSinkTableRequest + * + * Command: GpSinkTableRequest + * @param options GpSinkTableRequestOptions + * @param status ENUM8 + * @param gpdSrcId INT32U + * @param totalNumberofNonEmptySinkTableEntries INT8U + * @param gpdIeee INT64U + * @param startIndex INT8U + * @param endpoint INT8U + * @param sinkTableEntriesCount INT8U + * @param index INT8U + * @param sinkTableEntries INT8U [] + * @param sinkTableEntriesLen int + */ +#define emberAfFillCommandGreen \ + PowerClusterGpSinkTableRequest(options, status, gpdSrcId, totalNumberofNonEmptySinkTableEntries, gpdIeee, startIndex, \ + endpoint, sinkTableEntriesCount, index, sinkTableEntries, sinkTableEntriesLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_GP_SINK_TABLE_REQUEST_COMMAND_ID, "uuuuuuuuub", options, status, gpdSrcId, \ + totalNumberofNonEmptySinkTableEntries, gpdIeee, startIndex, endpoint, sinkTableEntriesCount, \ + index, sinkTableEntries, sinkTableEntriesLen); + +/** @brief Command description for GpProxyTableResponse + * + * Command: GpProxyTableResponse + * @param status GpProxyTableResponseStatus + * @param options GpProxyTableRequestOptions + * @param totalNumberOfNonEmptyProxyTableEntries INT8U + * @param gpdSrcId INT32U + * @param startIndex INT8U + * @param gpdIeee INT64U + * @param entriesCount INT8U + * @param endpoint INT8U + * @param proxyTableEntries INT8U [] + * @param proxyTableEntriesLen int + * @param index INT8U + */ +#define emberAfFillCommandGreen \ + PowerClusterGpProxyTableResponse(status, options, totalNumberOfNonEmptyProxyTableEntries, gpdSrcId, startIndex, gpdIeee, \ + entriesCount, endpoint, proxyTableEntries, proxyTableEntriesLen, index) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_GP_PROXY_TABLE_RESPONSE_COMMAND_ID, "uuuuuuuubu", status, options, \ + totalNumberOfNonEmptyProxyTableEntries, gpdSrcId, startIndex, gpdIeee, entriesCount, endpoint, \ + proxyTableEntries, proxyTableEntriesLen, index); + +/** @brief Command description for LockDoor + * + * Command: LockDoor + * @param PIN CHAR_STRING + * @param status INT8U + */ +#define emberAfFillCommandDoor \ + LockClusterLockDoor(PIN, status) emberAfFillExternalBuffer(mask, \ + \ + ZCL_LOCK_DOOR_COMMAND_ID, "uu", PIN, status); + +/** @brief Command description for UnlockDoor + * + * Command: UnlockDoor + * @param PIN CHAR_STRING + * @param status INT8U + */ +#define emberAfFillCommandDoor \ + LockClusterUnlockDoor(PIN, status) emberAfFillExternalBuffer(mask, \ + \ + ZCL_UNLOCK_DOOR_COMMAND_ID, "uu", PIN, status); + +/** @brief Command description for Toggle + * + * Command: Toggle + * @param pin CHAR_STRING + * @param status INT8U + */ +#define emberAfFillCommandDoor \ + LockClusterToggle(pin, status) emberAfFillExternalBuffer(mask, \ + \ + ZCL_TOGGLE_COMMAND_ID, "uu", pin, status); + +/** @brief Command description for UnlockWithTimeout + * + * Command: UnlockWithTimeout + * @param timeoutInSeconds INT16U + * @param status INT8U + * @param pin CHAR_STRING + */ +#define emberAfFillCommandDoor \ + LockClusterUnlockWithTimeout(timeoutInSeconds, status, pin) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_UNLOCK_WITH_TIMEOUT_COMMAND_ID, "uuu", timeoutInSeconds, status, pin); + +/** @brief Command description for GetLogRecord + * + * Command: GetLogRecord + * @param logIndex INT16U + * @param logEntryId INT16U + * @param timestamp INT32U + * @param eventType ENUM8 + * @param source INT8U + * @param eventIdOrAlarmCode INT8U + * @param userId INT16U + * @param pin CHAR_STRING + */ +#define emberAfFillCommandDoor \ + LockClusterGetLogRecord(logIndex, logEntryId, timestamp, eventType, source, eventIdOrAlarmCode, userId, pin) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_GET_LOG_RECORD_COMMAND_ID, "uuuuuuuu", logIndex, logEntryId, timestamp, eventType, source, \ + eventIdOrAlarmCode, userId, pin); + +/** @brief Command description for SetPin + * + * Command: SetPin + * @param userId INT16U + * @param status DoorLockSetPinOrIdStatus + * @param userStatus DoorLockUserStatus + * @param userType DoorLockUserType + * @param pin CHAR_STRING + */ +#define emberAfFillCommandDoor \ + LockClusterSetPin(userId, status, userStatus, userType, pin) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_SET_PIN_COMMAND_ID, "uuuuu", userId, status, userStatus, userType, pin); + +/** @brief Command description for GetPin + * + * Command: GetPin + * @param userId INT16U + * @param userId INT16U + * @param userStatus DoorLockUserStatus + * @param userType DoorLockUserType + * @param pin CHAR_STRING + */ +#define emberAfFillCommandDoor \ + LockClusterGetPin(userId, userId, userStatus, userType, pin) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_GET_PIN_COMMAND_ID, "uuuuu", userId, userId, userStatus, userType, pin); + +/** @brief Command description for ClearPin + * + * Command: ClearPin + * @param userId INT16U + * @param status INT8U + */ +#define emberAfFillCommandDoor \ + LockClusterClearPin(userId, status) emberAfFillExternalBuffer(mask, \ + \ + ZCL_CLEAR_PIN_COMMAND_ID, "uu", userId, status); + +/** @brief Command description for ClearAllPins + * + * Command: ClearAllPins + * @param status INT8U + */ +#define emberAfFillCommandDoor \ + LockClusterClearAllPins(status) emberAfFillExternalBuffer(mask, \ + \ + ZCL_CLEAR_ALL_PINS_COMMAND_ID, "u", status); + +/** @brief Command description for SetUserStatus + * + * Command: SetUserStatus + * @param userId INT16U + * @param status INT8U + * @param userStatus INT8U + */ +#define emberAfFillCommandDoor \ + LockClusterSetUserStatus(userId, status, userStatus) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_SET_USER_STATUS_COMMAND_ID, "uuu", userId, status, userStatus); + +/** @brief Command description for GetUserStatus + * + * Command: GetUserStatus + * @param userId INT16U + * @param userId INT16U + * @param status INT8U + */ +#define emberAfFillCommandDoor \ + LockClusterGetUserStatus(userId, userId, status) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_GET_USER_STATUS_COMMAND_ID, "uuu", userId, userId, status); + +/** @brief Command description for SetWeekdaySchedule + * + * Command: SetWeekdaySchedule + * @param scheduleId INT8U + * @param status INT8U + * @param userId INT16U + * @param daysMask DoorLockDayOfWeek + * @param startHour INT8U + * @param startMinute INT8U + * @param endHour INT8U + * @param endMinute INT8U + */ +#define emberAfFillCommandDoor \ + LockClusterSetWeekdaySchedule(scheduleId, status, userId, daysMask, startHour, startMinute, endHour, endMinute) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_SET_WEEKDAY_SCHEDULE_COMMAND_ID, "uuuuuuuu", scheduleId, status, userId, daysMask, \ + startHour, startMinute, endHour, endMinute); + +/** @brief Command description for GetWeekdaySchedule + * + * Command: GetWeekdaySchedule + * @param scheduleId INT8U + * @param scheduleId INT8U + * @param userId INT16U + * @param userId INT16U + * @param status INT8U + * @param daysMask INT8U + * @param startHour INT8U + * @param startMinute INT8U + * @param endHour INT8U + * @param endMinute INT8U + */ +#define emberAfFillCommandDoor \ + LockClusterGetWeekdaySchedule(scheduleId, scheduleId, userId, userId, status, daysMask, startHour, startMinute, endHour, \ + endMinute) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_GET_WEEKDAY_SCHEDULE_COMMAND_ID, "uuuuuuuuuu", scheduleId, scheduleId, userId, userId, \ + status, daysMask, startHour, startMinute, endHour, endMinute); + +/** @brief Command description for ClearWeekdaySchedule + * + * Command: ClearWeekdaySchedule + * @param scheduleId INT8U + * @param status INT8U + * @param userId INT16U + */ +#define emberAfFillCommandDoor \ + LockClusterClearWeekdaySchedule(scheduleId, status, userId) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_CLEAR_WEEKDAY_SCHEDULE_COMMAND_ID, "uuu", scheduleId, status, userId); + +/** @brief Command description for SetYeardaySchedule + * + * Command: SetYeardaySchedule + * @param scheduleId INT8U + * @param status INT8U + * @param userId INT16U + * @param localStartTime INT32U + * @param localEndTime INT32U + */ +#define emberAfFillCommandDoor \ + LockClusterSetYeardaySchedule(scheduleId, status, userId, localStartTime, localEndTime) emberAfFillExternalBuffer( \ + mask, \ + \ + ZCL_SET_YEARDAY_SCHEDULE_COMMAND_ID, "uuuuu", scheduleId, status, userId, localStartTime, localEndTime); + +/** @brief Command description for GetYeardaySchedule + * + * Command: GetYeardaySchedule + * @param scheduleId INT8U + * @param scheduleId INT8U + * @param userId INT16U + * @param userId INT16U + * @param status INT8U + * @param localStartTime INT32U + * @param localEndTime INT32U + */ +#define emberAfFillCommandDoor \ + LockClusterGetYeardaySchedule(scheduleId, scheduleId, userId, userId, status, localStartTime, localEndTime) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_GET_YEARDAY_SCHEDULE_COMMAND_ID, "uuuuuuu", scheduleId, scheduleId, userId, userId, status, \ + localStartTime, localEndTime); + +/** @brief Command description for ClearYeardaySchedule + * + * Command: ClearYeardaySchedule + * @param scheduleId INT8U + * @param status INT8U + * @param userId INT16U + */ +#define emberAfFillCommandDoor \ + LockClusterClearYeardaySchedule(scheduleId, status, userId) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_CLEAR_YEARDAY_SCHEDULE_COMMAND_ID, "uuu", scheduleId, status, userId); + +/** @brief Command description for SetHolidaySchedule + * + * Command: SetHolidaySchedule + * @param scheduleId INT8U + * @param status INT8U + * @param localStartTime INT32U + * @param localEndTime INT32U + * @param operatingModeDuringHoliday ENUM8 + */ +#define emberAfFillCommandDoor \ + LockClusterSetHolidaySchedule(scheduleId, status, localStartTime, localEndTime, operatingModeDuringHoliday) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_SET_HOLIDAY_SCHEDULE_COMMAND_ID, "uuuuu", scheduleId, status, localStartTime, localEndTime, \ + operatingModeDuringHoliday); + +/** @brief Command description for GetHolidaySchedule + * + * Command: GetHolidaySchedule + * @param scheduleId INT8U + * @param scheduleId INT8U + * @param status INT8U + * @param localStartTime INT32U + * @param localEndTime INT32U + * @param operatingModeDuringHoliday ENUM8 + */ +#define emberAfFillCommandDoor \ + LockClusterGetHolidaySchedule(scheduleId, scheduleId, status, localStartTime, localEndTime, operatingModeDuringHoliday) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_GET_HOLIDAY_SCHEDULE_COMMAND_ID, "uuuuuu", scheduleId, scheduleId, status, localStartTime, \ + localEndTime, operatingModeDuringHoliday); + +/** @brief Command description for ClearHolidaySchedule + * + * Command: ClearHolidaySchedule + * @param scheduleId INT8U + * @param status INT8U + */ +#define emberAfFillCommandDoor \ + LockClusterClearHolidaySchedule(scheduleId, status) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_CLEAR_HOLIDAY_SCHEDULE_COMMAND_ID, "uu", scheduleId, status); + +/** @brief Command description for SetUserType + * + * Command: SetUserType + * @param userId INT16U + * @param status INT8U + * @param userType DoorLockUserType + */ +#define emberAfFillCommandDoor \ + LockClusterSetUserType(userId, status, userType) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_SET_USER_TYPE_COMMAND_ID, "uuu", userId, status, userType); + +/** @brief Command description for GetUserType + * + * Command: GetUserType + * @param userId INT16U + * @param userId INT16U + * @param userType DoorLockUserType + */ +#define emberAfFillCommandDoor \ + LockClusterGetUserType(userId, userId, userType) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_GET_USER_TYPE_COMMAND_ID, "uuu", userId, userId, userType); + +/** @brief Command description for SetRfid + * + * Command: SetRfid + * @param userId INT16U + * @param status DoorLockSetPinOrIdStatus + * @param userStatus DoorLockUserStatus + * @param userType DoorLockUserType + * @param id CHAR_STRING + */ +#define emberAfFillCommandDoor \ + LockClusterSetRfid(userId, status, userStatus, userType, id) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_SET_RFID_COMMAND_ID, "uuuuu", userId, status, userStatus, userType, id); + +/** @brief Command description for GetRfid + * + * Command: GetRfid + * @param userId INT16U + * @param userId INT16U + * @param userStatus DoorLockUserStatus + * @param userType DoorLockUserType + * @param rfid CHAR_STRING + */ +#define emberAfFillCommandDoor \ + LockClusterGetRfid(userId, userId, userStatus, userType, rfid) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_GET_RFID_COMMAND_ID, "uuuuu", userId, userId, userStatus, userType, rfid); + +/** @brief Command description for ClearRfid + * + * Command: ClearRfid + * @param userId INT16U + * @param status INT8U + */ +#define emberAfFillCommandDoor \ + LockClusterClearRfid(userId, status) emberAfFillExternalBuffer(mask, \ + \ + ZCL_CLEAR_RFID_COMMAND_ID, "uu", userId, status); + +/** @brief Command description for ClearAllRfids + * + * Command: ClearAllRfids + * @param status INT8U + */ +#define emberAfFillCommandDoor \ + LockClusterClearAllRfids(status) emberAfFillExternalBuffer(mask, \ + \ + ZCL_CLEAR_ALL_RFIDS_COMMAND_ID, "u", status); + +/** @brief Command description for OperationEventNotification + * + * Command: OperationEventNotification + * @param source INT8U + * @param eventCode DoorLockOperationEventCode + * @param userId INT16U + * @param pin CHAR_STRING + * @param timeStamp INT32U + * @param data CHAR_STRING + */ +#define emberAfFillCommandDoor \ + LockClusterOperationEventNotification(source, eventCode, userId, pin, timeStamp, data) emberAfFillExternalBuffer( \ + mask, \ + \ + ZCL_OPERATION_EVENT_NOTIFICATION_COMMAND_ID, "uuuuuu", source, eventCode, userId, pin, timeStamp, data); + +/** @brief Command description for ProgrammingEventNotification + * + * Command: ProgrammingEventNotification + * @param source INT8U + * @param eventCode DoorLockProgrammingEventCode + * @param userId INT16U + * @param pin CHAR_STRING + * @param userType DoorLockUserType + * @param userStatus DoorLockUserStatus + * @param timeStamp INT32U + * @param data CHAR_STRING + */ +#define emberAfFillCommandDoor \ + LockClusterProgrammingEventNotification(source, eventCode, userId, pin, userType, userStatus, timeStamp, data) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_PROGRAMMING_EVENT_NOTIFICATION_COMMAND_ID, "uuuuuuuu", source, eventCode, userId, pin, \ + userType, userStatus, timeStamp, data); + +/** @brief Command description for WindowCoveringUpOpen + * + * Command: WindowCoveringUpOpen + */ +#define emberAfFillCommandWindow \ + CoveringClusterWindowCoveringUpOpen() emberAfFillExternalBuffer(mask, \ + \ + ZCL_WINDOW_COVERING_UP_OPEN_COMMAND_ID, "", ); + +/** @brief Command description for WindowCoveringDownClose + * + * Command: WindowCoveringDownClose + */ +#define emberAfFillCommandWindow \ + CoveringClusterWindowCoveringDownClose() emberAfFillExternalBuffer(mask, \ + \ + ZCL_WINDOW_COVERING_DOWN_CLOSE_COMMAND_ID, "", ); + +/** @brief Command description for WindowCoveringStop + * + * Command: WindowCoveringStop + */ +#define emberAfFillCommandWindow \ + CoveringClusterWindowCoveringStop() emberAfFillExternalBuffer(mask, \ + \ + ZCL_WINDOW_COVERING_STOP_COMMAND_ID, "", ); + +/** @brief Command description for WindowCoveringGoToLiftValue + * + * Command: WindowCoveringGoToLiftValue + * @param liftValue INT16U + */ +#define emberAfFillCommandWindow \ + CoveringClusterWindowCoveringGoToLiftValue(liftValue) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_WINDOW_COVERING_GO_TO_LIFT_VALUE_COMMAND_ID, "u", liftValue); + +/** @brief Command description for WindowCoveringGoToLiftPercentage + * + * Command: WindowCoveringGoToLiftPercentage + * @param percentageLiftValue INT8U + */ +#define emberAfFillCommandWindow \ + CoveringClusterWindowCoveringGoToLiftPercentage(percentageLiftValue) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_WINDOW_COVERING_GO_TO_LIFT_PERCENTAGE_COMMAND_ID, "u", percentageLiftValue); + +/** @brief Command description for WindowCoveringGoToTiltValue + * + * Command: WindowCoveringGoToTiltValue + * @param tiltValue INT16U + */ +#define emberAfFillCommandWindow \ + CoveringClusterWindowCoveringGoToTiltValue(tiltValue) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_WINDOW_COVERING_GO_TO_TILT_VALUE_COMMAND_ID, "u", tiltValue); + +/** @brief Command description for WindowCoveringGoToTiltPercentage + * + * Command: WindowCoveringGoToTiltPercentage + * @param percentageTiltValue INT8U + */ +#define emberAfFillCommandWindow \ + CoveringClusterWindowCoveringGoToTiltPercentage(percentageTiltValue) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_WINDOW_COVERING_GO_TO_TILT_PERCENTAGE_COMMAND_ID, "u", percentageTiltValue); + +/** @brief Command description for BarrierControlGoToPercent + * + * Command: BarrierControlGoToPercent + * @param percentOpen INT8U + */ +#define emberAfFillCommandBarrier \ + ControlClusterBarrierControlGoToPercent(percentOpen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_BARRIER_CONTROL_GO_TO_PERCENT_COMMAND_ID, "u", percentOpen); + +/** @brief Command description for BarrierControlStop + * + * Command: BarrierControlStop + */ +#define emberAfFillCommandBarrier \ + ControlClusterBarrierControlStop() emberAfFillExternalBuffer(mask, \ + \ + ZCL_BARRIER_CONTROL_STOP_COMMAND_ID, "", ); + +/** @brief Command description for SetpointRaiseLower + * + * Command: SetpointRaiseLower + * @param mode SetpointAdjustMode + * @param numberOfTransitionsForSequence ENUM8 + * @param amount INT8S + * @param dayOfWeekForSequence DayOfWeek + * @param modeForSequence ModeForSequence + * @param payload INT8U [] + * @param payloadLen int + */ +#define emberAfFillCommandThermostatClusterSetpointRaiseLower(mode, numberOfTransitionsForSequence, amount, dayOfWeekForSequence, \ + modeForSequence, payload, payloadLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_SETPOINT_RAISE_LOWER_COMMAND_ID, "uuuuub", mode, numberOfTransitionsForSequence, amount, \ + dayOfWeekForSequence, modeForSequence, payload, payloadLen); + +/** @brief Command description for SetWeeklySchedule + * + * Command: SetWeeklySchedule + * @param numberOfTransitionsForSequence ENUM8 + * @param timeOfDay INT16U + * @param dayOfWeekForSequence DayOfWeek + * @param relayStatus BITMAP16 + * @param modeForSequence ModeForSequence + * @param localTemperature INT16S + * @param payload INT8U [] + * @param payloadLen int + * @param humidityInPercentage INT8U + * @param setpoint INT16S + * @param unreadEntries INT16U + */ +#define emberAfFillCommandThermostatClusterSetWeeklySchedule(numberOfTransitionsForSequence, timeOfDay, dayOfWeekForSequence, \ + relayStatus, modeForSequence, localTemperature, payload, payloadLen, \ + humidityInPercentage, setpoint, unreadEntries) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_SET_WEEKLY_SCHEDULE_COMMAND_ID, "uuuuuubuuu", numberOfTransitionsForSequence, timeOfDay, \ + dayOfWeekForSequence, relayStatus, modeForSequence, localTemperature, payload, payloadLen, \ + humidityInPercentage, setpoint, unreadEntries); + +/** @brief Command description for GetWeeklySchedule + * + * Command: GetWeeklySchedule + * @param daysToReturn DayOfWeek + * @param modeToReturn ModeForSequence + */ +#define emberAfFillCommandThermostatClusterGetWeeklySchedule(daysToReturn, modeToReturn) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_GET_WEEKLY_SCHEDULE_COMMAND_ID, "uu", daysToReturn, modeToReturn); + +/** @brief Command description for ClearWeeklySchedule + * + * Command: ClearWeeklySchedule + */ +#define emberAfFillCommandThermostatClusterClearWeeklySchedule() \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_CLEAR_WEEKLY_SCHEDULE_COMMAND_ID, "", ); + +/** @brief Command description for GetRelayStatusLog + * + * Command: GetRelayStatusLog + */ +#define emberAfFillCommandThermostatClusterGetRelayStatusLog() \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_GET_RELAY_STATUS_LOG_COMMAND_ID, "", ); + +/** @brief Command description for MoveToHue + * + * Command: MoveToHue + * @param hue INT8U + * @param direction HueDirection + * @param transitionTime INT16U + * @param optionsMask BITMAP8 + * @param optionsOverride BITMAP8 + */ +#define emberAfFillCommandColor \ + ControlClusterMoveToHue(hue, direction, transitionTime, optionsMask, optionsOverride) emberAfFillExternalBuffer( \ + mask, \ + \ + ZCL_MOVE_TO_HUE_COMMAND_ID, "uuuuu", hue, direction, transitionTime, optionsMask, optionsOverride); + +/** @brief Command description for MoveHue + * + * Command: MoveHue + * @param moveMode HueMoveMode + * @param rate INT8U + * @param optionsMask BITMAP8 + * @param optionsOverride BITMAP8 + */ +#define emberAfFillCommandColor \ + ControlClusterMoveHue(moveMode, rate, optionsMask, optionsOverride) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_MOVE_HUE_COMMAND_ID, "uuuu", moveMode, rate, optionsMask, optionsOverride); + +/** @brief Command description for StepHue + * + * Command: StepHue + * @param stepMode HueStepMode + * @param stepSize INT8U + * @param transitionTime INT8U + * @param optionsMask BITMAP8 + * @param optionsOverride BITMAP8 + */ +#define emberAfFillCommandColor \ + ControlClusterStepHue(stepMode, stepSize, transitionTime, optionsMask, optionsOverride) emberAfFillExternalBuffer( \ + mask, \ + \ + ZCL_STEP_HUE_COMMAND_ID, "uuuuu", stepMode, stepSize, transitionTime, optionsMask, optionsOverride); + +/** @brief Command description for MoveToSaturation + * + * Command: MoveToSaturation + * @param saturation INT8U + * @param transitionTime INT16U + * @param optionsMask BITMAP8 + * @param optionsOverride BITMAP8 + */ +#define emberAfFillCommandColor \ + ControlClusterMoveToSaturation(saturation, transitionTime, optionsMask, optionsOverride) emberAfFillExternalBuffer( \ + mask, \ + \ + ZCL_MOVE_TO_SATURATION_COMMAND_ID, "uuuu", saturation, transitionTime, optionsMask, optionsOverride); + +/** @brief Command description for MoveSaturation + * + * Command: MoveSaturation + * @param moveMode SaturationMoveMode + * @param rate INT8U + * @param optionsMask BITMAP8 + * @param optionsOverride BITMAP8 + */ +#define emberAfFillCommandColor \ + ControlClusterMoveSaturation(moveMode, rate, optionsMask, optionsOverride) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_MOVE_SATURATION_COMMAND_ID, "uuuu", moveMode, rate, optionsMask, optionsOverride); + +/** @brief Command description for StepSaturation + * + * Command: StepSaturation + * @param stepMode SaturationStepMode + * @param stepSize INT8U + * @param transitionTime INT8U + * @param optionsMask BITMAP8 + * @param optionsOverride BITMAP8 + */ +#define emberAfFillCommandColor \ + ControlClusterStepSaturation(stepMode, stepSize, transitionTime, optionsMask, optionsOverride) emberAfFillExternalBuffer( \ + mask, \ + \ + ZCL_STEP_SATURATION_COMMAND_ID, "uuuuu", stepMode, stepSize, transitionTime, optionsMask, optionsOverride); + +/** @brief Command description for MoveToHueAndSaturation + * + * Command: MoveToHueAndSaturation + * @param hue INT8U + * @param saturation INT8U + * @param transitionTime INT16U + * @param optionsMask BITMAP8 + * @param optionsOverride BITMAP8 + */ +#define emberAfFillCommandColor \ + ControlClusterMoveToHueAndSaturation(hue, saturation, transitionTime, optionsMask, optionsOverride) emberAfFillExternalBuffer( \ + mask, \ + \ + ZCL_MOVE_TO_HUE_AND_SATURATION_COMMAND_ID, "uuuuu", hue, saturation, transitionTime, optionsMask, optionsOverride); + +/** @brief Command description for MoveToColor + * + * Command: MoveToColor + * @param colorX INT16U + * @param colorY INT16U + * @param transitionTime INT16U + * @param optionsMask BITMAP8 + * @param optionsOverride BITMAP8 + */ +#define emberAfFillCommandColor \ + ControlClusterMoveToColor(colorX, colorY, transitionTime, optionsMask, optionsOverride) emberAfFillExternalBuffer( \ + mask, \ + \ + ZCL_MOVE_TO_COLOR_COMMAND_ID, "uuuuu", colorX, colorY, transitionTime, optionsMask, optionsOverride); + +/** @brief Command description for MoveColor + * + * Command: MoveColor + * @param rateX INT16S + * @param rateY INT16S + * @param optionsMask BITMAP8 + * @param optionsOverride BITMAP8 + */ +#define emberAfFillCommandColor \ + ControlClusterMoveColor(rateX, rateY, optionsMask, optionsOverride) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_MOVE_COLOR_COMMAND_ID, "uuuu", rateX, rateY, optionsMask, optionsOverride); + +/** @brief Command description for StepColor + * + * Command: StepColor + * @param stepX INT16S + * @param stepY INT16S + * @param transitionTime INT16U + * @param optionsMask BITMAP8 + * @param optionsOverride BITMAP8 + */ +#define emberAfFillCommandColor \ + ControlClusterStepColor(stepX, stepY, transitionTime, optionsMask, optionsOverride) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_STEP_COLOR_COMMAND_ID, "uuuuu", stepX, stepY, transitionTime, optionsMask, optionsOverride); + +/** @brief Command description for MoveToColorTemperature + * + * Command: MoveToColorTemperature + * @param colorTemperature INT16U + * @param transitionTime INT16U + * @param optionsMask BITMAP8 + * @param optionsOverride BITMAP8 + */ +#define emberAfFillCommandColor \ + ControlClusterMoveToColorTemperature(colorTemperature, transitionTime, optionsMask, optionsOverride) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_MOVE_TO_COLOR_TEMPERATURE_COMMAND_ID, "uuuu", colorTemperature, transitionTime, optionsMask, \ + optionsOverride); + +/** @brief Command description for EnhancedMoveToHue + * + * Command: EnhancedMoveToHue + * @param enhancedHue INT16U + * @param direction HueDirection + * @param transitionTime INT16U + */ +#define emberAfFillCommandColor \ + ControlClusterEnhancedMoveToHue(enhancedHue, direction, transitionTime) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_ENHANCED_MOVE_TO_HUE_COMMAND_ID, "uuu", enhancedHue, direction, transitionTime); + +/** @brief Command description for EnhancedMoveHue + * + * Command: EnhancedMoveHue + * @param moveMode HueMoveMode + * @param rate INT16U + */ +#define emberAfFillCommandColor \ + ControlClusterEnhancedMoveHue(moveMode, rate) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_ENHANCED_MOVE_HUE_COMMAND_ID, "uu", moveMode, rate); + +/** @brief Command description for EnhancedStepHue + * + * Command: EnhancedStepHue + * @param stepMode HueStepMode + * @param stepSize INT16U + * @param transitionTime INT16U + */ +#define emberAfFillCommandColor \ + ControlClusterEnhancedStepHue(stepMode, stepSize, transitionTime) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_ENHANCED_STEP_HUE_COMMAND_ID, "uuu", stepMode, stepSize, transitionTime); + +/** @brief Command description for EnhancedMoveToHueAndSaturation + * + * Command: EnhancedMoveToHueAndSaturation + * @param enhancedHue INT16U + * @param saturation INT8U + * @param transitionTime INT16U + */ +#define emberAfFillCommandColor \ + ControlClusterEnhancedMoveToHueAndSaturation(enhancedHue, saturation, transitionTime) emberAfFillExternalBuffer( \ + mask, \ + \ + ZCL_ENHANCED_MOVE_TO_HUE_AND_SATURATION_COMMAND_ID, "uuu", enhancedHue, saturation, transitionTime); + +/** @brief Command description for ColorLoopSet + * + * Command: ColorLoopSet + * @param updateFlags ColorLoopUpdateFlags + * @param action ColorLoopAction + * @param direction ColorLoopDirection + * @param time INT16U + * @param startHue INT16U + */ +#define emberAfFillCommandColor \ + ControlClusterColorLoopSet(updateFlags, action, direction, time, startHue) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_COLOR_LOOP_SET_COMMAND_ID, "uuuuu", updateFlags, action, direction, time, startHue); + +/** @brief Command description for StopMoveStep + * + * Command: StopMoveStep + * @param optionsMask BITMAP8 + * @param optionsOverride BITMAP8 + */ +#define emberAfFillCommandColor \ + ControlClusterStopMoveStep(optionsMask, optionsOverride) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_STOP_MOVE_STEP_COMMAND_ID, "uu", optionsMask, optionsOverride); + +/** @brief Command description for MoveColorTemperature + * + * Command: MoveColorTemperature + * @param moveMode HueMoveMode + * @param rate INT16U + * @param colorTemperatureMinimum INT16U + * @param colorTemperatureMaximum INT16U + * @param optionsMask BITMAP8 + * @param optionsOverride BITMAP8 + */ +#define emberAfFillCommandColor \ + ControlClusterMoveColorTemperature(moveMode, rate, colorTemperatureMinimum, colorTemperatureMaximum, optionsMask, \ + optionsOverride) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_MOVE_COLOR_TEMPERATURE_COMMAND_ID, "uuuuuu", moveMode, rate, colorTemperatureMinimum, \ + colorTemperatureMaximum, optionsMask, optionsOverride); + +/** @brief Command description for StepColorTemperature + * + * Command: StepColorTemperature + * @param stepMode HueStepMode + * @param stepSize INT16U + * @param transitionTime INT16U + * @param colorTemperatureMinimum INT16U + * @param colorTemperatureMaximum INT16U + * @param optionsMask BITMAP8 + * @param optionsOverride BITMAP8 + */ +#define emberAfFillCommandColor \ + ControlClusterStepColorTemperature(stepMode, stepSize, transitionTime, colorTemperatureMinimum, colorTemperatureMaximum, \ + optionsMask, optionsOverride) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_STEP_COLOR_TEMPERATURE_COMMAND_ID, "uuuuuuu", stepMode, stepSize, transitionTime, \ + colorTemperatureMinimum, colorTemperatureMaximum, optionsMask, optionsOverride); + +/** @brief Command description for ZoneEnrollResponse + * + * Command: ZoneEnrollResponse + * @param enrollResponseCode IasEnrollResponseCode + * @param zoneStatus IasZoneStatus + * @param zoneId INT8U + * @param extendedStatus BITMAP8 + * @param zoneId INT8U + * @param delay INT16U + */ +#define emberAfFillCommandIAS \ + ZoneClusterZoneEnrollResponse(enrollResponseCode, zoneStatus, zoneId, extendedStatus, zoneId, delay) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_ZONE_ENROLL_RESPONSE_COMMAND_ID, "uuuuuu", enrollResponseCode, zoneStatus, zoneId, \ + extendedStatus, zoneId, delay); + +/** @brief Command description for InitiateNormalOperationMode + * + * Command: InitiateNormalOperationMode + * @param zoneType IasZoneType + * @param manufacturerCode INT16U + */ +#define emberAfFillCommandIAS \ + ZoneClusterInitiateNormalOperationMode(zoneType, manufacturerCode) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_INITIATE_NORMAL_OPERATION_MODE_COMMAND_ID, "uu", zoneType, manufacturerCode); + +/** @brief Command description for InitiateNormalOperationModeResponse + * + * Command: InitiateNormalOperationModeResponse + * @param testModeDuration INT8U + * @param currentZoneSensitivityLevel INT8U + */ +#define emberAfFillCommandIAS \ + ZoneClusterInitiateNormalOperationModeResponse(testModeDuration, currentZoneSensitivityLevel) emberAfFillExternalBuffer( \ + mask, \ + \ + ZCL_INITIATE_NORMAL_OPERATION_MODE_RESPONSE_COMMAND_ID, "uu", testModeDuration, currentZoneSensitivityLevel); + +/** @brief Command description for InitiateTestModeResponse + * + * Command: InitiateTestModeResponse + */ +#define emberAfFillCommandIAS \ + ZoneClusterInitiateTestModeResponse() emberAfFillExternalBuffer(mask, \ + \ + ZCL_INITIATE_TEST_MODE_RESPONSE_COMMAND_ID, "", ); + +/** @brief Command description for Arm + * + * Command: Arm + * @param armMode IasAceArmMode + * @param armNotification IasAceArmNotification + * @param armDisarmCode CHAR_STRING + * @param zoneId INT8U + */ +#define emberAfFillCommandIAS \ + ACEClusterArm(armMode, armNotification, armDisarmCode, zoneId) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_ARM_COMMAND_ID, "uuuu", armMode, armNotification, armDisarmCode, zoneId); + +/** @brief Command description for Bypass + * + * Command: Bypass + * @param numberOfZones INT8U + * @param section0 BITMAP16 + * @param zoneIds INT8U [] + * @param zoneIdsLen int + * @param section1 BITMAP16 + * @param armDisarmCode CHAR_STRING + * @param section2 BITMAP16 + * @param section3 BITMAP16 + * @param section4 BITMAP16 + * @param section5 BITMAP16 + * @param section6 BITMAP16 + * @param section7 BITMAP16 + * @param section8 BITMAP16 + * @param section9 BITMAP16 + * @param section10 BITMAP16 + * @param section11 BITMAP16 + * @param section12 BITMAP16 + * @param section13 BITMAP16 + * @param section14 BITMAP16 + * @param section15 BITMAP16 + */ +#define emberAfFillCommandIAS \ + ACEClusterBypass(numberOfZones, section0, zoneIds, zoneIdsLen, section1, armDisarmCode, section2, section3, section4, \ + section5, section6, section7, section8, section9, section10, section11, section12, section13, section14, \ + section15) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_BYPASS_COMMAND_ID, "uubuuuuuuuuuuuuuuuu", numberOfZones, section0, zoneIds, zoneIdsLen, \ + section1, armDisarmCode, section2, section3, section4, section5, section6, section7, section8, \ + section9, section10, section11, section12, section13, section14, section15); + +/** @brief Command description for Emergency + * + * Command: Emergency + * @param zoneId INT8U + * @param zoneType IasZoneType + * @param ieeeAddress IEEE_ADDRESS + * @param zoneLabel CHAR_STRING + */ +#define emberAfFillCommandIAS \ + ACEClusterEmergency(zoneId, zoneType, ieeeAddress, zoneLabel) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_EMERGENCY_COMMAND_ID, "uuuu", zoneId, zoneType, ieeeAddress, zoneLabel); + +/** @brief Command description for Fire + * + * Command: Fire + * @param zoneId INT8U + * @param zoneStatus ENUM16 + * @param audibleNotification IasAceAudibleNotification + * @param zoneLabel CHAR_STRING + */ +#define emberAfFillCommandIAS \ + ACEClusterFire(zoneId, zoneStatus, audibleNotification, zoneLabel) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_FIRE_COMMAND_ID, "uuuu", zoneId, zoneStatus, audibleNotification, zoneLabel); + +/** @brief Command description for Panic + * + * Command: Panic + * @param panelStatus IasAcePanelStatus + * @param secondsRemaining INT8U + * @param audibleNotification IasAceAudibleNotification + * @param alarmStatus IasAceAlarmStatus + */ +#define emberAfFillCommandIAS \ + ACEClusterPanic(panelStatus, secondsRemaining, audibleNotification, alarmStatus) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_PANIC_COMMAND_ID, "uuuu", panelStatus, secondsRemaining, audibleNotification, alarmStatus); + +/** @brief Command description for GetZoneIdMap + * + * Command: GetZoneIdMap + * @param panelStatus IasAcePanelStatus + * @param secondsRemaining INT8U + * @param audibleNotification IasAceAudibleNotification + * @param alarmStatus IasAceAlarmStatus + */ +#define emberAfFillCommandIAS \ + ACEClusterGetZoneIdMap(panelStatus, secondsRemaining, audibleNotification, alarmStatus) emberAfFillExternalBuffer( \ + mask, \ + \ + ZCL_GET_ZONE_ID_MAP_COMMAND_ID, "uuuu", panelStatus, secondsRemaining, audibleNotification, alarmStatus); + +/** @brief Command description for GetZoneInformation + * + * Command: GetZoneInformation + * @param zoneId INT8U + * @param numberOfZones INT8U + * @param zoneIds INT8U [] + * @param zoneIdsLen int + */ +#define emberAfFillCommandIAS \ + ACEClusterGetZoneInformation(zoneId, numberOfZones, zoneIds, zoneIdsLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_GET_ZONE_INFORMATION_COMMAND_ID, "uub", zoneId, numberOfZones, zoneIds, zoneIdsLen); + +/** @brief Command description for GetPanelStatus + * + * Command: GetPanelStatus + * @param numberOfZones INT8U + * @param bypassResult IasAceBypassResult [] + * @param bypassResultLen int + */ +#define emberAfFillCommandIAS \ + ACEClusterGetPanelStatus(numberOfZones, bypassResult, bypassResultLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_GET_PANEL_STATUS_COMMAND_ID, "ub", numberOfZones, bypassResult, bypassResultLen); + +/** @brief Command description for GetBypassedZoneList + * + * Command: GetBypassedZoneList + * @param zoneStatusComplete BOOLEAN + * @param numberOfZones INT8U + * @param zoneStatusResult IasAceZoneStatusResult [] + * @param zoneStatusResultLen int + */ +#define emberAfFillCommandIAS \ + ACEClusterGetBypassedZoneList(zoneStatusComplete, numberOfZones, zoneStatusResult, zoneStatusResultLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_GET_BYPASSED_ZONE_LIST_COMMAND_ID, "uub", zoneStatusComplete, numberOfZones, \ + zoneStatusResult, zoneStatusResultLen); + +/** @brief Command description for GetZoneStatus + * + * Command: GetZoneStatus + * @param startingZoneId INT8U + * @param maxNumberOfZoneIds INT8U + * @param zoneStatusMaskFlag BOOLEAN + * @param zoneStatusMask BITMAP16 + */ +#define emberAfFillCommandIAS \ + ACEClusterGetZoneStatus(startingZoneId, maxNumberOfZoneIds, zoneStatusMaskFlag, zoneStatusMask) emberAfFillExternalBuffer( \ + mask, \ + \ + ZCL_GET_ZONE_STATUS_COMMAND_ID, "uuuu", startingZoneId, maxNumberOfZoneIds, zoneStatusMaskFlag, zoneStatusMask); + +/** @brief Command description for StartWarning + * + * Command: StartWarning + * @param warningInfo WarningInfo + * @param warningDuration INT16U + * @param strobeDutyCycle INT8U + * @param strobeLevel ENUM8 + */ +#define emberAfFillCommandIAS \ + WDClusterStartWarning(warningInfo, warningDuration, strobeDutyCycle, strobeLevel) emberAfFillExternalBuffer( \ + mask, \ + \ + ZCL_START_WARNING_COMMAND_ID, "uuuu", warningInfo, warningDuration, strobeDutyCycle, strobeLevel); + +/** @brief Command description for Squawk + * + * Command: Squawk + * @param squawkInfo SquawkInfo + */ +#define emberAfFillCommandIAS \ + WDClusterSquawk(squawkInfo) emberAfFillExternalBuffer(mask, \ + \ + ZCL_SQUAWK_COMMAND_ID, "u", squawkInfo); + +/** @brief Command description for MatchProtocolAddress + * + * Command: MatchProtocolAddress + * @param protocolAddress OCTET_STRING + * @param deviceIeeeAddress IEEE_ADDRESS + * @param protocolAddress OCTET_STRING + */ +#define emberAfFillCommandGeneric \ + TunnelClusterMatchProtocolAddress(protocolAddress, deviceIeeeAddress, protocolAddress) emberAfFillExternalBuffer( \ + mask, \ + \ + ZCL_MATCH_PROTOCOL_ADDRESS_COMMAND_ID, "uuu", protocolAddress, deviceIeeeAddress, protocolAddress); + +/** @brief Command description for AdvertiseProtocolAddress + * + * Command: AdvertiseProtocolAddress + * @param protocolAddress OCTET_STRING + */ +#define emberAfFillCommandGeneric \ + TunnelClusterAdvertiseProtocolAddress(protocolAddress) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_ADVERTISE_PROTOCOL_ADDRESS_COMMAND_ID, "u", protocolAddress); + +/** @brief Command description for TransferNpdu + * + * Command: TransferNpdu + * @param npdu DATA8 [] + * @param npduLen int + */ +#define emberAfFillCommandBACnet \ + Protocol TunnelClusterTransferNpdu(npdu, npduLen) emberAfFillExternalBuffer(mask, \ + \ + ZCL_TRANSFER_NPDU_COMMAND_ID, "b", npdu, npduLen); + +/** @brief Command description for TransferAPDU + * + * Command: TransferAPDU + * @param apdu OCTET_STRING + */ +#define emberAfFillCommand11073 \ + Protocol TunnelClusterTransferAPDU(apdu) emberAfFillExternalBuffer(mask, \ + \ + ZCL_TRANSFER_APDU_COMMAND_ID, "u", apdu); + +/** @brief Command description for ConnectRequest + * + * Command: ConnectRequest + * @param connectControl 11073ConnectRequestConnectControl + * @param idleTimeout INT16U + * @param managerTarget IEEE_ADDRESS + * @param managerEndpoint INT8U + */ +#define emberAfFillCommand11073 \ + Protocol TunnelClusterConnectRequest(connectControl, idleTimeout, managerTarget, managerEndpoint) emberAfFillExternalBuffer( \ + mask, \ + \ + ZCL_CONNECT_REQUEST_COMMAND_ID, "uuuu", connectControl, idleTimeout, managerTarget, managerEndpoint); + +/** @brief Command description for DisconnectRequest + * + * Command: DisconnectRequest + * @param managerIEEEAddress IEEE_ADDRESS + */ +#define emberAfFillCommand11073 \ + Protocol TunnelClusterDisconnectRequest(managerIEEEAddress) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_DISCONNECT_REQUEST_COMMAND_ID, "u", managerIEEEAddress); + +/** @brief Command description for ConnectStatusNotification + * + * Command: ConnectStatusNotification + * @param connectStatus 11073TunnelConnectionStatus + */ +#define emberAfFillCommand11073 \ + Protocol TunnelClusterConnectStatusNotification(connectStatus) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_CONNECT_STATUS_NOTIFICATION_COMMAND_ID, "u", connectStatus); + +/** @brief Command description for TransferApdu + * + * Command: TransferApdu + * @param apdu OCTET_STRING + */ +#define emberAfFillCommandISO \ + 7816 Protocol TunnelClusterTransferApdu(apdu) emberAfFillExternalBuffer(mask, \ + \ + ZCL_TRANSFER_APDU_COMMAND_ID, "u", apdu); + +/** @brief Command description for InsertSmartCard + * + * Command: InsertSmartCard + */ +#define emberAfFillCommandISO \ + 7816 Protocol TunnelClusterInsertSmartCard() emberAfFillExternalBuffer(mask, \ + \ + ZCL_INSERT_SMART_CARD_COMMAND_ID, "", ); + +/** @brief Command description for ExtractSmartCard + * + * Command: ExtractSmartCard + */ +#define emberAfFillCommandISO \ + 7816 Protocol TunnelClusterExtractSmartCard() emberAfFillExternalBuffer(mask, \ + \ + ZCL_EXTRACT_SMART_CARD_COMMAND_ID, "", ); + +/** @brief Command description for PublishPrice + * + * Command: PublishPrice + * @param providerId INT32U + * @param commandOptions AmiCommandOptions + * @param rateLabel OCTET_STRING + * @param issuerEventId INT32U + * @param currentTime UTC_TIME + * @param unitOfMeasure AmiUnitOfMeasure + * @param currency INT16U + * @param priceTrailingDigitAndPriceTier PriceTrailingDigitAndPriceTier + * @param numberOfPriceTiersAndRegisterTier PriceNumberOfPriceTiersAndRegisterTier + * @param startTime UTC_TIME + * @param durationInMinutes INT16U + * @param price INT32U + * @param priceRatio INT8U + * @param generationPrice INT32U + * @param generationPriceRatio INT8U + * @param alternateCostDelivered INT32U + * @param alternateCostUnit AlternateCostUnit + * @param alternateCostTrailingDigit AlternateCostTrailingDigit + * @param numberOfBlockThresholds INT8U + * @param priceControl PriceControlMask + * @param numberOfGenerationTiers INT8U + * @param generationTier GenerationTier + * @param extendedNumberOfPriceTiers ExtendedNumberOfPriceTiers + * @param extendedPriceTier ExtendedPriceTier + * @param extendedRegisterTier ExtendedRegisterTier + */ +#define emberAfFillCommandPriceClusterPublishPrice( \ + providerId, commandOptions, rateLabel, issuerEventId, currentTime, unitOfMeasure, currency, priceTrailingDigitAndPriceTier, \ + numberOfPriceTiersAndRegisterTier, startTime, durationInMinutes, price, priceRatio, generationPrice, generationPriceRatio, \ + alternateCostDelivered, alternateCostUnit, alternateCostTrailingDigit, numberOfBlockThresholds, priceControl, \ + numberOfGenerationTiers, generationTier, extendedNumberOfPriceTiers, extendedPriceTier, extendedRegisterTier) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_PUBLISH_PRICE_COMMAND_ID, "uuuuuuuuuuuuuuuuuuuuuuuuu", providerId, commandOptions, rateLabel, \ + issuerEventId, currentTime, unitOfMeasure, currency, priceTrailingDigitAndPriceTier, \ + numberOfPriceTiersAndRegisterTier, startTime, durationInMinutes, price, priceRatio, generationPrice, \ + generationPriceRatio, alternateCostDelivered, alternateCostUnit, alternateCostTrailingDigit, \ + numberOfBlockThresholds, priceControl, numberOfGenerationTiers, generationTier, \ + extendedNumberOfPriceTiers, extendedPriceTier, extendedRegisterTier); + +/** @brief Command description for PublishBlockPeriod + * + * Command: PublishBlockPeriod + * @param providerId INT32U + * @param startTime UTC_TIME + * @param issuerEventId INT32U + * @param numberOfEvents INT8U + * @param blockPeriodStartTime UTC_TIME + * @param blockPeriodDuration INT24U + * @param numberOfPriceTiersAndNumberOfBlockThresholds BITMAP8 + * @param blockPeriodControl BlockPeriodControl + * @param blockPeriodDurationType BlockPeriodDurationType + * @param tariffType TariffType + * @param tariffResolutionPeriod TariffResolutionPeriod + */ +#define emberAfFillCommandPriceClusterPublishBlockPeriod( \ + providerId, startTime, issuerEventId, numberOfEvents, blockPeriodStartTime, blockPeriodDuration, \ + numberOfPriceTiersAndNumberOfBlockThresholds, blockPeriodControl, blockPeriodDurationType, tariffType, tariffResolutionPeriod) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_PUBLISH_BLOCK_PERIOD_COMMAND_ID, "uuuuuuuuuuu", providerId, startTime, issuerEventId, \ + numberOfEvents, blockPeriodStartTime, blockPeriodDuration, \ + numberOfPriceTiersAndNumberOfBlockThresholds, blockPeriodControl, blockPeriodDurationType, \ + tariffType, tariffResolutionPeriod); + +/** @brief Command description for PublishConversionFactor + * + * Command: PublishConversionFactor + * @param issuerEventId INT32U + * @param providerId INT32U + * @param startTime UTC_TIME + * @param issuerEventId INT32U + * @param conversionFactor INT32U + * @param priceAckTime UTC_TIME + * @param conversionFactorTrailingDigit ConversionFactorTrailingDigit + * @param control PriceControlMask + */ +#define emberAfFillCommandPriceClusterPublishConversionFactor( \ + issuerEventId, providerId, startTime, issuerEventId, conversionFactor, priceAckTime, conversionFactorTrailingDigit, control) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_PUBLISH_CONVERSION_FACTOR_COMMAND_ID, "uuuuuuuu", issuerEventId, providerId, startTime, \ + issuerEventId, conversionFactor, priceAckTime, conversionFactorTrailingDigit, control); + +/** @brief Command description for PublishCalorificValue + * + * Command: PublishCalorificValue + * @param issuerEventId INT32U + * @param startTime UTC_TIME + * @param startTime UTC_TIME + * @param numberOfEvents INT8U + * @param calorificValue INT32U + * @param tariffType TariffType + * @param calorificValueUnit CalorificValueUnit + * @param calorificValueTrailingDigit CalorificValueTrailingDigit + */ +#define emberAfFillCommandPriceClusterPublishCalorificValue(issuerEventId, startTime, startTime, numberOfEvents, calorificValue, \ + tariffType, calorificValueUnit, calorificValueTrailingDigit) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_PUBLISH_CALORIFIC_VALUE_COMMAND_ID, "uuuuuuuu", issuerEventId, startTime, startTime, \ + numberOfEvents, calorificValue, tariffType, calorificValueUnit, calorificValueTrailingDigit); + +/** @brief Command description for PublishTariffInformation + * + * Command: PublishTariffInformation + * @param providerId INT32U + * @param earliestStartTime UTC_TIME + * @param issuerEventId INT32U + * @param minIssuerEventId INT32U + * @param issuerTariffId INT32U + * @param numberOfCommands INT8U + * @param startTime UTC_TIME + * @param tariffTypeChargingScheme TariffTypeChargingScheme + * @param tariffLabel OCTET_STRING + * @param numberOfPriceTiersInUse INT8U + * @param numberOfBlockThresholdsInUse INT8U + * @param unitOfMeasure AmiUnitOfMeasure + * @param currency INT16U + * @param priceTrailingDigit PriceTrailingDigit + * @param standingCharge INT32U + * @param tierBlockMode TierBlockMode + * @param blockThresholdMultiplier INT24U + * @param blockThresholdDivisor INT24U + */ +#define emberAfFillCommandPriceClusterPublishTariffInformation( \ + providerId, earliestStartTime, issuerEventId, minIssuerEventId, issuerTariffId, numberOfCommands, startTime, \ + tariffTypeChargingScheme, tariffLabel, numberOfPriceTiersInUse, numberOfBlockThresholdsInUse, unitOfMeasure, currency, \ + priceTrailingDigit, standingCharge, tierBlockMode, blockThresholdMultiplier, blockThresholdDivisor) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_PUBLISH_TARIFF_INFORMATION_COMMAND_ID, "uuuuuuuuuuuuuuuuuu", providerId, earliestStartTime, \ + issuerEventId, minIssuerEventId, issuerTariffId, numberOfCommands, startTime, \ + tariffTypeChargingScheme, tariffLabel, numberOfPriceTiersInUse, numberOfBlockThresholdsInUse, \ + unitOfMeasure, currency, priceTrailingDigit, standingCharge, tierBlockMode, \ + blockThresholdMultiplier, blockThresholdDivisor); + +/** @brief Command description for PublishPriceMatrix + * + * Command: PublishPriceMatrix + * @param providerId INT32U + * @param earliestStartTime UTC_TIME + * @param issuerEventId INT32U + * @param minIssuerEventId INT32U + * @param startTime UTC_TIME + * @param numberOfCommands INT8U + * @param issuerTariffId INT32U + * @param commandIndex INT8U + * @param numberOfCommands INT8U + * @param subPayloadControl PriceMatrixSubPayloadControl + * @param payload PriceMatrixSubPayload [] + * @param payloadLen int + */ +#define emberAfFillCommandPriceClusterPublishPriceMatrix(providerId, earliestStartTime, issuerEventId, minIssuerEventId, \ + startTime, numberOfCommands, issuerTariffId, commandIndex, \ + numberOfCommands, subPayloadControl, payload, payloadLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_PUBLISH_PRICE_MATRIX_COMMAND_ID, "uuuuuuuuuub", providerId, earliestStartTime, issuerEventId, \ + minIssuerEventId, startTime, numberOfCommands, issuerTariffId, commandIndex, numberOfCommands, \ + subPayloadControl, payload, payloadLen); + +/** @brief Command description for PublishBlockThresholds + * + * Command: PublishBlockThresholds + * @param providerId INT32U + * @param earliestStartTime UTC_TIME + * @param issuerEventId INT32U + * @param minIssuerEventId INT32U + * @param startTime UTC_TIME + * @param numberOfCommands INT8U + * @param issuerTariffId INT32U + * @param tariffType TariffType + * @param commandIndex INT8U + * @param numberOfCommands INT8U + * @param subPayloadControl BlockThresholdSubPayloadControl + * @param payload BlockThresholdSubPayload [] + * @param payloadLen int + */ +#define emberAfFillCommandPriceClusterPublishBlockThresholds( \ + providerId, earliestStartTime, issuerEventId, minIssuerEventId, startTime, numberOfCommands, issuerTariffId, tariffType, \ + commandIndex, numberOfCommands, subPayloadControl, payload, payloadLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_PUBLISH_BLOCK_THRESHOLDS_COMMAND_ID, "uuuuuuuuuuub", providerId, earliestStartTime, \ + issuerEventId, minIssuerEventId, startTime, numberOfCommands, issuerTariffId, tariffType, \ + commandIndex, numberOfCommands, subPayloadControl, payload, payloadLen); + +/** @brief Command description for PublishCO2Value + * + * Command: PublishCO2Value + * @param providerId INT32U + * @param issuerTariffId INT32U + * @param issuerEventId INT32U + * @param startTime UTC_TIME + * @param tariffType TariffType + * @param cO2Value INT32U + * @param cO2ValueUnit CO2Unit + * @param cO2ValueTrailingDigit CO2TrailingDigit + */ +#define emberAfFillCommandPriceClusterPublishCO2Value(providerId, issuerTariffId, issuerEventId, startTime, tariffType, cO2Value, \ + cO2ValueUnit, cO2ValueTrailingDigit) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_PUBLISH_CO2_VALUE_COMMAND_ID, "uuuuuuuu", providerId, issuerTariffId, issuerEventId, startTime, \ + tariffType, cO2Value, cO2ValueUnit, cO2ValueTrailingDigit); + +/** @brief Command description for PublishTierLabels + * + * Command: PublishTierLabels + * @param providerId INT32U + * @param issuerTariffId INT32U + * @param issuerEventId INT32U + * @param issuerTariffId INT32U + * @param commandIndex INT8U + * @param numberOfCommands INT8U + * @param numberOfLabels INT8U + * @param tierLabelsPayload INT8U [] + * @param tierLabelsPayloadLen int + */ +#define emberAfFillCommandPriceClusterPublishTierLabels(providerId, issuerTariffId, issuerEventId, issuerTariffId, commandIndex, \ + numberOfCommands, numberOfLabels, tierLabelsPayload, tierLabelsPayloadLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_PUBLISH_TIER_LABELS_COMMAND_ID, "uuuuuuub", providerId, issuerTariffId, issuerEventId, \ + issuerTariffId, commandIndex, numberOfCommands, numberOfLabels, tierLabelsPayload, \ + tierLabelsPayloadLen); + +/** @brief Command description for PublishBillingPeriod + * + * Command: PublishBillingPeriod + * @param providerId INT32U + * @param earliestStartTime UTC_TIME + * @param issuerEventId INT32U + * @param minIssuerEventId INT32U + * @param billingPeriodStartTime UTC_TIME + * @param numberOfCommands INT8U + * @param billingPeriodDuration BillingPeriodDuration + * @param tariffType TariffType + * @param billingPeriodDurationType BillingPeriodDurationType + * @param tariffType TariffType + */ +#define emberAfFillCommandPriceClusterPublishBillingPeriod(providerId, earliestStartTime, issuerEventId, minIssuerEventId, \ + billingPeriodStartTime, numberOfCommands, billingPeriodDuration, \ + tariffType, billingPeriodDurationType, tariffType) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_PUBLISH_BILLING_PERIOD_COMMAND_ID, "uuuuuuuuuu", providerId, earliestStartTime, issuerEventId, \ + minIssuerEventId, billingPeriodStartTime, numberOfCommands, billingPeriodDuration, tariffType, \ + billingPeriodDurationType, tariffType); + +/** @brief Command description for PublishConsolidatedBill + * + * Command: PublishConsolidatedBill + * @param providerId INT32U + * @param issuerTariffId INT32U + * @param issuerEventId INT32U + * @param billingPeriodStartTime UTC_TIME + * @param billingPeriodDuration BillingPeriodDuration + * @param billingPeriodDurationType BillingPeriodDurationType + * @param tariffType TariffType + * @param consolidatedBill INT32U + * @param currency INT16U + * @param billTrailingDigit BillTrailingDigit + */ +#define emberAfFillCommandPriceClusterPublishConsolidatedBill(providerId, issuerTariffId, issuerEventId, billingPeriodStartTime, \ + billingPeriodDuration, billingPeriodDurationType, tariffType, \ + consolidatedBill, currency, billTrailingDigit) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_PUBLISH_CONSOLIDATED_BILL_COMMAND_ID, "uuuuuuuuuu", providerId, issuerTariffId, issuerEventId, \ + billingPeriodStartTime, billingPeriodDuration, billingPeriodDurationType, tariffType, \ + consolidatedBill, currency, billTrailingDigit); + +/** @brief Command description for PublishCppEvent + * + * Command: PublishCppEvent + * @param providerId INT32U + * @param earliestStartTime UTC_TIME + * @param issuerEventId INT32U + * @param minIssuerEventId INT32U + * @param startTime UTC_TIME + * @param numberOfCommands INT8U + * @param durationInMinutes INT16U + * @param tariffType TariffType + * @param tariffType TariffType + * @param cppPriceTier CppPriceTier + * @param cppAuth PublishCppEventCppAuth + */ +#define emberAfFillCommandPriceClusterPublishCppEvent(providerId, earliestStartTime, issuerEventId, minIssuerEventId, startTime, \ + numberOfCommands, durationInMinutes, tariffType, tariffType, cppPriceTier, \ + cppAuth) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_PUBLISH_CPP_EVENT_COMMAND_ID, "uuuuuuuuuuu", providerId, earliestStartTime, issuerEventId, \ + minIssuerEventId, startTime, numberOfCommands, durationInMinutes, tariffType, tariffType, \ + cppPriceTier, cppAuth); + +/** @brief Command description for PublishCreditPayment + * + * Command: PublishCreditPayment + * @param providerId INT32U + * @param earliestStartTime UTC_TIME + * @param issuerEventId INT32U + * @param minIssuerEventId INT32U + * @param creditPaymentDueDate UTC_TIME + * @param numberOfCommands INT8U + * @param creditPaymentOverDueAmount INT32U + * @param tariffType TariffType + * @param creditPaymentStatus CreditPaymentStatus + * @param creditPayment INT32U + * @param creditPaymentDate UTC_TIME + * @param creditPaymentRef OCTET_STRING + */ +#define emberAfFillCommandPriceClusterPublishCreditPayment( \ + providerId, earliestStartTime, issuerEventId, minIssuerEventId, creditPaymentDueDate, numberOfCommands, \ + creditPaymentOverDueAmount, tariffType, creditPaymentStatus, creditPayment, creditPaymentDate, creditPaymentRef) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_PUBLISH_CREDIT_PAYMENT_COMMAND_ID, "uuuuuuuuuuuu", providerId, earliestStartTime, issuerEventId, \ + minIssuerEventId, creditPaymentDueDate, numberOfCommands, creditPaymentOverDueAmount, tariffType, \ + creditPaymentStatus, creditPayment, creditPaymentDate, creditPaymentRef); + +/** @brief Command description for PublishCurrencyConversion + * + * Command: PublishCurrencyConversion + * @param providerId INT32U + * @param issuerEventId INT32U + * @param issuerEventId INT32U + * @param cppAuth CppEventResponseCppAuth + * @param startTime UTC_TIME + * @param oldCurrency INT16U + * @param newCurrency INT16U + * @param conversionFactor INT32U + * @param conversionFactorTrailingDigit ConversionFactorTrailingDigit + * @param currencyChangeControlFlags CurrencyChangeControl + */ +#define emberAfFillCommandPriceClusterPublishCurrencyConversion(providerId, issuerEventId, issuerEventId, cppAuth, startTime, \ + oldCurrency, newCurrency, conversionFactor, \ + conversionFactorTrailingDigit, currencyChangeControlFlags) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_PUBLISH_CURRENCY_CONVERSION_COMMAND_ID, "uuuuuuuuuu", providerId, issuerEventId, issuerEventId, \ + cppAuth, startTime, oldCurrency, newCurrency, conversionFactor, conversionFactorTrailingDigit, \ + currencyChangeControlFlags); + +/** @brief Command description for CancelTariff + * + * Command: CancelTariff + * @param providerId INT32U + * @param latestEndTime UTC_TIME + * @param issuerTariffId INT32U + * @param numberOfRecords INT8U + * @param tariffType TariffType + */ +#define emberAfFillCommandPriceClusterCancelTariff(providerId, latestEndTime, issuerTariffId, numberOfRecords, tariffType) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_CANCEL_TARIFF_COMMAND_ID, "uuuuu", providerId, latestEndTime, issuerTariffId, numberOfRecords, \ + tariffType); + +/** @brief Command description for GetCurrencyConversionCommand + * + * Command: GetCurrencyConversionCommand + */ +#define emberAfFillCommandPriceClusterGetCurrencyConversionCommand() \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_GET_CURRENCY_CONVERSION_COMMAND_COMMAND_ID, "", ); + +/** @brief Command description for GetTariffCancellation + * + * Command: GetTariffCancellation + */ +#define emberAfFillCommandPriceClusterGetTariffCancellation() \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_GET_TARIFF_CANCELLATION_COMMAND_ID, "", ); + +/** @brief Command description for LoadControlEvent + * + * Command: LoadControlEvent + * @param issuerEventId INT32U + * @param issuerEventId INT32U + * @param deviceClass AmiDeviceClass + * @param eventStatus AmiEventStatus + * @param utilityEnrollmentGroup INT8U + * @param eventStatusTime UTC_TIME + * @param startTime UTC_TIME + * @param criticalityLevelApplied AmiCriticalityLevel + * @param durationInMinutes INT16U + * @param coolingTemperatureSetPointApplied INT16U + * @param criticalityLevel AmiCriticalityLevel + * @param heatingTemperatureSetPointApplied INT16U + * @param coolingTemperatureOffset INT8U + * @param averageLoadAdjustmentPercentageApplied INT8S + * @param heatingTemperatureOffset INT8U + * @param dutyCycleApplied INT8U + * @param coolingTemperatureSetPoint INT16S + * @param eventControl AmiEventControl + * @param heatingTemperatureSetPoint INT16S + * @param signatureType SignatureType + * @param averageLoadAdjustmentPercentage INT8S + * @param signature Signature + * @param dutyCycle INT8U + * @param eventControl AmiEventControl + */ +#define emberAfFillCommandDemand \ + Response and Load ControlClusterLoadControlEvent( \ + issuerEventId, issuerEventId, deviceClass, eventStatus, utilityEnrollmentGroup, eventStatusTime, startTime, \ + criticalityLevelApplied, durationInMinutes, coolingTemperatureSetPointApplied, criticalityLevel, \ + heatingTemperatureSetPointApplied, coolingTemperatureOffset, averageLoadAdjustmentPercentageApplied, \ + heatingTemperatureOffset, dutyCycleApplied, coolingTemperatureSetPoint, eventControl, heatingTemperatureSetPoint, \ + signatureType, averageLoadAdjustmentPercentage, signature, dutyCycle, eventControl) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_LOAD_CONTROL_EVENT_COMMAND_ID, "uuuuuuuuuuuuuuuuuuuuuuuu", issuerEventId, issuerEventId, \ + deviceClass, eventStatus, utilityEnrollmentGroup, eventStatusTime, startTime, \ + criticalityLevelApplied, durationInMinutes, coolingTemperatureSetPointApplied, criticalityLevel, \ + heatingTemperatureSetPointApplied, coolingTemperatureOffset, \ + averageLoadAdjustmentPercentageApplied, heatingTemperatureOffset, dutyCycleApplied, \ + coolingTemperatureSetPoint, eventControl, heatingTemperatureSetPoint, signatureType, \ + averageLoadAdjustmentPercentage, signature, dutyCycle, eventControl); + +/** @brief Command description for CancelLoadControlEvent + * + * Command: CancelLoadControlEvent + * @param issuerEventId INT32U + * @param startTime UTC_TIME + * @param deviceClass AmiDeviceClass + * @param numberOfEvents INT8U + * @param utilityEnrollmentGroup INT8U + * @param issuerEventId INT32U + * @param cancelControl AmiCancelControl + * @param effectiveTime UTC_TIME + */ +#define emberAfFillCommandDemand \ + Response and Load ControlClusterCancelLoadControlEvent(issuerEventId, startTime, deviceClass, numberOfEvents, \ + utilityEnrollmentGroup, issuerEventId, cancelControl, effectiveTime) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_CANCEL_LOAD_CONTROL_EVENT_COMMAND_ID, "uuuuuuuu", issuerEventId, startTime, deviceClass, \ + numberOfEvents, utilityEnrollmentGroup, issuerEventId, cancelControl, effectiveTime); + +/** @brief Command description for CancelAllLoadControlEvents + * + * Command: CancelAllLoadControlEvents + * @param cancelControl AmiCancelControl + */ +#define emberAfFillCommandDemand \ + Response and Load ControlClusterCancelAllLoadControlEvents(cancelControl) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_CANCEL_ALL_LOAD_CONTROL_EVENTS_COMMAND_ID, "u", cancelControl); + +/** @brief Command description for GetProfileResponse + * + * Command: GetProfileResponse + * @param endTime UTC_TIME + * @param intervalChannel AmiIntervalChannel + * @param status AmiGetProfileStatus + * @param endTime UTC_TIME + * @param profileIntervalPeriod AmiIntervalPeriod + * @param numberOfPeriods INT8U + * @param numberOfPeriodsDelivered INT8U + * @param intervals INT24U [] + * @param intervalsLen int + */ +#define emberAfFillCommandSimple \ + MeteringClusterGetProfileResponse(endTime, intervalChannel, status, endTime, profileIntervalPeriod, numberOfPeriods, \ + numberOfPeriodsDelivered, intervals, intervalsLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_GET_PROFILE_RESPONSE_COMMAND_ID, "uuuuuuub", endTime, intervalChannel, status, endTime, \ + profileIntervalPeriod, numberOfPeriods, numberOfPeriodsDelivered, intervals, intervalsLen); + +/** @brief Command description for RequestMirror + * + * Command: RequestMirror + * @param endpointId INT16U + */ +#define emberAfFillCommandSimple \ + MeteringClusterRequestMirror(endpointId) emberAfFillExternalBuffer(mask, \ + \ + ZCL_REQUEST_MIRROR_COMMAND_ID, "u", endpointId); + +/** @brief Command description for RemoveMirror + * + * Command: RemoveMirror + * @param endpointId INT16U + */ +#define emberAfFillCommandSimple \ + MeteringClusterRemoveMirror(endpointId) emberAfFillExternalBuffer(mask, \ + \ + ZCL_REMOVE_MIRROR_COMMAND_ID, "u", endpointId); + +/** @brief Command description for RequestFastPollModeResponse + * + * Command: RequestFastPollModeResponse + * @param appliedUpdatePeriod INT8U + * @param fastPollUpdatePeriod INT8U + * @param fastPollModeEndtime UTC_TIME + * @param duration INT8U + */ +#define emberAfFillCommandSimple \ + MeteringClusterRequestFastPollModeResponse(appliedUpdatePeriod, fastPollUpdatePeriod, fastPollModeEndtime, duration) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_REQUEST_FAST_POLL_MODE_RESPONSE_COMMAND_ID, "uuuu", appliedUpdatePeriod, \ + fastPollUpdatePeriod, fastPollModeEndtime, duration); + +/** @brief Command description for ScheduleSnapshotResponse + * + * Command: ScheduleSnapshotResponse + * @param issuerEventId INT32U + * @param issuerEventId INT32U + * @param snapshotResponsePayload SnapshotResponsePayload [] + * @param snapshotResponsePayloadLen int + * @param commandIndex INT8U + * @param commandCount INT8U + * @param snapshotSchedulePayload SnapshotSchedulePayload [] + * @param snapshotSchedulePayloadLen int + */ +#define emberAfFillCommandSimple \ + MeteringClusterScheduleSnapshotResponse(issuerEventId, issuerEventId, snapshotResponsePayload, snapshotResponsePayloadLen, \ + commandIndex, commandCount, snapshotSchedulePayload, snapshotSchedulePayloadLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_SCHEDULE_SNAPSHOT_RESPONSE_COMMAND_ID, "uubuub", issuerEventId, issuerEventId, \ + snapshotResponsePayload, snapshotResponsePayloadLen, commandIndex, commandCount, \ + snapshotSchedulePayload, snapshotSchedulePayloadLen); + +/** @brief Command description for TakeSnapshotResponse + * + * Command: TakeSnapshotResponse + * @param snapshotId INT32U + * @param snapshotCause SnapshotCause + * @param snapshotConfirmation SnapshotConfirmation + */ +#define emberAfFillCommandSimple \ + MeteringClusterTakeSnapshotResponse(snapshotId, snapshotCause, snapshotConfirmation) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_TAKE_SNAPSHOT_RESPONSE_COMMAND_ID, "uuu", snapshotId, snapshotCause, snapshotConfirmation); + +/** @brief Command description for PublishSnapshot + * + * Command: PublishSnapshot + * @param snapshotId INT32U + * @param earliestStartTime UTC_TIME + * @param snapshotTime UTC_TIME + * @param latestEndTime UTC_TIME + * @param totalSnapshotsFound INT8U + * @param snapshotOffset INT8U + * @param commandIndex INT8U + * @param snapshotCause SnapshotCause + * @param totalCommands INT8U + * @param snapshotCause SnapshotCause + * @param snapshotPayloadType SnapshotPayloadType + * @param snapshotPayload INT8U [] + * @param snapshotPayloadLen int + */ +#define emberAfFillCommandSimple \ + MeteringClusterPublishSnapshot(snapshotId, earliestStartTime, snapshotTime, latestEndTime, totalSnapshotsFound, \ + snapshotOffset, commandIndex, snapshotCause, totalCommands, snapshotCause, snapshotPayloadType, \ + snapshotPayload, snapshotPayloadLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_PUBLISH_SNAPSHOT_COMMAND_ID, "uuuuuuuuuuub", snapshotId, earliestStartTime, snapshotTime, \ + latestEndTime, totalSnapshotsFound, snapshotOffset, commandIndex, snapshotCause, totalCommands, \ + snapshotCause, snapshotPayloadType, snapshotPayload, snapshotPayloadLen); + +/** @brief Command description for GetSampledDataResponse + * + * Command: GetSampledDataResponse + * @param sampleId INT16U + * @param issuerEventId INT32U + * @param sampleStartTime UTC_TIME + * @param startSamplingTime UTC_TIME + * @param sampleType SampleType + * @param sampleType SampleType + * @param sampleRequestInterval INT16U + * @param sampleRequestInterval INT16U + * @param numberOfSamples INT16U + * @param maxNumberOfSamples INT16U + * @param samples INT24U [] + * @param samplesLen int + */ +#define emberAfFillCommandSimple \ + MeteringClusterGetSampledDataResponse(sampleId, issuerEventId, sampleStartTime, startSamplingTime, sampleType, sampleType, \ + sampleRequestInterval, sampleRequestInterval, numberOfSamples, maxNumberOfSamples, \ + samples, samplesLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_GET_SAMPLED_DATA_RESPONSE_COMMAND_ID, "uuuuuuuuuub", sampleId, issuerEventId, \ + sampleStartTime, startSamplingTime, sampleType, sampleType, sampleRequestInterval, \ + sampleRequestInterval, numberOfSamples, maxNumberOfSamples, samples, samplesLen); + +/** @brief Command description for ConfigureMirror + * + * Command: ConfigureMirror + * @param issuerEventId INT32U + * @param sampleId INT16U + * @param reportingInterval INT24U + * @param earliestSampleTime UTC_TIME + * @param mirrorNotificationReporting BOOLEAN + * @param sampleType SampleType + * @param notificationScheme INT8U + * @param numberOfSamples INT16U + */ +#define emberAfFillCommandSimple \ + MeteringClusterConfigureMirror(issuerEventId, sampleId, reportingInterval, earliestSampleTime, mirrorNotificationReporting, \ + sampleType, notificationScheme, numberOfSamples) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_CONFIGURE_MIRROR_COMMAND_ID, "uuuuuuuu", issuerEventId, sampleId, reportingInterval, \ + earliestSampleTime, mirrorNotificationReporting, sampleType, notificationScheme, \ + numberOfSamples); + +/** @brief Command description for ConfigureNotificationScheme + * + * Command: ConfigureNotificationScheme + * @param issuerEventId INT32U + * @param notificationScheme INT8U + * @param notificationScheme INT8U + * @param notificationFlags BITMAP32 [] + * @param notificationFlagsLen int + * @param notificationFlagOrder BITMAP32 + */ +#define emberAfFillCommandSimple \ + MeteringClusterConfigureNotificationScheme(issuerEventId, notificationScheme, notificationScheme, notificationFlags, \ + notificationFlagsLen, notificationFlagOrder) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_CONFIGURE_NOTIFICATION_SCHEME_COMMAND_ID, "uuubu", issuerEventId, notificationScheme, \ + notificationScheme, notificationFlags, notificationFlagsLen, notificationFlagOrder); + +/** @brief Command description for ConfigureNotificationFlags + * + * Command: ConfigureNotificationFlags + * @param issuerEventId INT32U + * @param providerId INT32U + * @param notificationScheme INT8U + * @param issuerEventId INT32U + * @param notificationFlagAttributeId INT16U + * @param clusterId INT16U + * @param manufacturerCode INT16U + * @param numberOfCommands INT8U + * @param commandIds INT8U [] + * @param commandIdsLen int + */ +#define emberAfFillCommandSimple \ + MeteringClusterConfigureNotificationFlags(issuerEventId, providerId, notificationScheme, issuerEventId, \ + notificationFlagAttributeId, clusterId, manufacturerCode, numberOfCommands, \ + commandIds, commandIdsLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_CONFIGURE_NOTIFICATION_FLAGS_COMMAND_ID, "uuuuuuuub", issuerEventId, providerId, \ + notificationScheme, issuerEventId, notificationFlagAttributeId, clusterId, manufacturerCode, \ + numberOfCommands, commandIds, commandIdsLen); + +/** @brief Command description for GetNotifiedMessage + * + * Command: GetNotifiedMessage + * @param notificationScheme INT8U + * @param providerId INT32U + * @param notificationFlagAttributeId INT16U + * @param issuerEventId INT32U + * @param notificationFlagsN BITMAP32 + * @param requestDateTime UTC_TIME + * @param implementationDateTime UTC_TIME + * @param proposedSupplyStatus MeteringSupplyStatus + * @param supplyControlBits SupplyControlBits + */ +#define emberAfFillCommandSimple \ + MeteringClusterGetNotifiedMessage(notificationScheme, providerId, notificationFlagAttributeId, issuerEventId, \ + notificationFlagsN, requestDateTime, implementationDateTime, proposedSupplyStatus, \ + supplyControlBits) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_GET_NOTIFIED_MESSAGE_COMMAND_ID, "uuuuuuuuu", notificationScheme, providerId, \ + notificationFlagAttributeId, issuerEventId, notificationFlagsN, requestDateTime, \ + implementationDateTime, proposedSupplyStatus, supplyControlBits); + +/** @brief Command description for SupplyStatusResponse + * + * Command: SupplyStatusResponse + * @param providerId INT32U + * @param proposedSupplyStatus ProposedSupplyStatus + * @param issuerEventId INT32U + * @param implementationDateTime UTC_TIME + * @param supplyStatus MeteringSupplyStatus + */ +#define emberAfFillCommandSimple \ + MeteringClusterSupplyStatusResponse(providerId, proposedSupplyStatus, issuerEventId, implementationDateTime, supplyStatus) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_SUPPLY_STATUS_RESPONSE_COMMAND_ID, "uuuuu", providerId, proposedSupplyStatus, issuerEventId, \ + implementationDateTime, supplyStatus); + +/** @brief Command description for StartSamplingResponse + * + * Command: StartSamplingResponse + * @param sampleId INT16U + * @param issuerEventId INT32U + * @param supplyTamperState SupplyStatus + * @param supplyDepletionState SupplyStatus + * @param supplyUncontrolledFlowState SupplyStatus + * @param loadLimitSupplyState SupplyStatus + */ +#define emberAfFillCommandSimple \ + MeteringClusterStartSamplingResponse(sampleId, issuerEventId, supplyTamperState, supplyDepletionState, \ + supplyUncontrolledFlowState, loadLimitSupplyState) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_START_SAMPLING_RESPONSE_COMMAND_ID, "uuuuuu", sampleId, issuerEventId, supplyTamperState, \ + supplyDepletionState, supplyUncontrolledFlowState, loadLimitSupplyState); + +/** @brief Command description for SetUncontrolledFlowThreshold + * + * Command: SetUncontrolledFlowThreshold + * @param providerId INT32U + * @param issuerEventId INT32U + * @param uncontrolledFlowThreshold INT16U + * @param unitOfMeasure AmiUnitOfMeasure + * @param multiplier INT16U + * @param divisor INT16U + * @param stabilisationPeriod INT8U + * @param measurementPeriod INT16U + */ +#define emberAfFillCommandSimple \ + MeteringClusterSetUncontrolledFlowThreshold(providerId, issuerEventId, uncontrolledFlowThreshold, unitOfMeasure, multiplier, \ + divisor, stabilisationPeriod, measurementPeriod) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_SET_UNCONTROLLED_FLOW_THRESHOLD_COMMAND_ID, "uuuuuuuu", providerId, issuerEventId, \ + uncontrolledFlowThreshold, unitOfMeasure, multiplier, divisor, stabilisationPeriod, \ + measurementPeriod); + +/** @brief Command description for GetLastMessage + * + * Command: GetLastMessage + * @param messageId INT32U + * @param messageControl MessagingControlMask + * @param startTime UTC_TIME + * @param durationInMinutes INT16U + * @param message CHAR_STRING + * @param optionalExtendedMessageControl MessagingExtendedControlMask + */ +#define emberAfFillCommandMessagingClusterGetLastMessage(messageId, messageControl, startTime, durationInMinutes, message, \ + optionalExtendedMessageControl) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_GET_LAST_MESSAGE_COMMAND_ID, "uuuuuu", messageId, messageControl, startTime, durationInMinutes, \ + message, optionalExtendedMessageControl); + +/** @brief Command description for CancelMessage + * + * Command: CancelMessage + * @param messageId INT32U + * @param messageId INT32U + * @param messageControl MessagingControlMask + * @param confirmationTime UTC_TIME + * @param messageConfirmationControl BITMAP8 + * @param messageResponse OCTET_STRING + */ +#define emberAfFillCommandMessagingClusterCancelMessage(messageId, messageId, messageControl, confirmationTime, \ + messageConfirmationControl, messageResponse) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_CANCEL_MESSAGE_COMMAND_ID, "uuuuuu", messageId, messageId, messageControl, confirmationTime, \ + messageConfirmationControl, messageResponse); + +/** @brief Command description for DisplayProtectedMessage + * + * Command: DisplayProtectedMessage + * @param messageId INT32U + * @param earliestImplementationTime UTC_TIME + * @param messageControl MessagingControlMask + * @param startTime UTC_TIME + * @param durationInMinutes INT16U + * @param message CHAR_STRING + * @param optionalExtendedMessageControl MessagingExtendedControlMask + */ +#define emberAfFillCommandMessagingClusterDisplayProtectedMessage( \ + messageId, earliestImplementationTime, messageControl, startTime, durationInMinutes, message, optionalExtendedMessageControl) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_DISPLAY_PROTECTED_MESSAGE_COMMAND_ID, "uuuuuuu", messageId, earliestImplementationTime, \ + messageControl, startTime, durationInMinutes, message, optionalExtendedMessageControl); + +/** @brief Command description for CancelAllMessages + * + * Command: CancelAllMessages + * @param implementationDateTime UTC_TIME + */ +#define emberAfFillCommandMessagingClusterCancelAllMessages(implementationDateTime) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_CANCEL_ALL_MESSAGES_COMMAND_ID, "u", implementationDateTime); + +/** @brief Command description for RequestTunnel + * + * Command: RequestTunnel + * @param protocolId INT8U + * @param tunnelId INT16U + * @param manufacturerCode INT16U + * @param tunnelStatus TunnelingTunnelStatus + * @param flowControlSupport BOOLEAN + * @param maximumIncomingTransferSize INT16U + * @param maximumIncomingTransferSize INT16U + */ +#define emberAfFillCommandTunnelingClusterRequestTunnel(protocolId, tunnelId, manufacturerCode, tunnelStatus, flowControlSupport, \ + maximumIncomingTransferSize, maximumIncomingTransferSize) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_REQUEST_TUNNEL_COMMAND_ID, "uuuuuuu", protocolId, tunnelId, manufacturerCode, tunnelStatus, \ + flowControlSupport, maximumIncomingTransferSize, maximumIncomingTransferSize); + +/** @brief Command description for CloseTunnel + * + * Command: CloseTunnel + * @param tunnelId INT16U + * @param tunnelId INT16U + * @param data INT8U [] + * @param dataLen int + */ +#define emberAfFillCommandTunnelingClusterCloseTunnel(tunnelId, tunnelId, data, dataLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_CLOSE_TUNNEL_COMMAND_ID, "uub", tunnelId, tunnelId, data, dataLen); + +/** @brief Command description for TransferDataClientToServer + * + * Command: TransferDataClientToServer + * @param tunnelId INT16U + * @param tunnelId INT16U + * @param data INT8U [] + * @param dataLen int + * @param transferDataStatus TunnelingTransferDataStatus + */ +#define emberAfFillCommandTunnelingClusterTransferDataClientToServer(tunnelId, tunnelId, data, dataLen, transferDataStatus) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_TRANSFER_DATA_CLIENT_TO_SERVER_COMMAND_ID, "uubu", tunnelId, tunnelId, data, dataLen, \ + transferDataStatus); + +/** @brief Command description for TransferDataErrorClientToServer + * + * Command: TransferDataErrorClientToServer + * @param tunnelId INT16U + * @param tunnelId INT16U + * @param transferDataStatus TunnelingTransferDataStatus + * @param numberOfBytesLeft INT16U + */ +#define emberAfFillCommandTunnelingClusterTransferDataErrorClientToServer(tunnelId, tunnelId, transferDataStatus, \ + numberOfBytesLeft) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_TRANSFER_DATA_ERROR_CLIENT_TO_SERVER_COMMAND_ID, "uuuu", tunnelId, tunnelId, transferDataStatus, \ + numberOfBytesLeft); + +/** @brief Command description for AckTransferDataClientToServer + * + * Command: AckTransferDataClientToServer + * @param tunnelId INT16U + * @param tunnelId INT16U + * @param numberOfBytesLeft INT16U + * @param numberOfOctetsLeft INT16U + */ +#define emberAfFillCommandTunnelingClusterAckTransferDataClientToServer(tunnelId, tunnelId, numberOfBytesLeft, numberOfOctetsLeft) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_ACK_TRANSFER_DATA_CLIENT_TO_SERVER_COMMAND_ID, "uuuu", tunnelId, tunnelId, numberOfBytesLeft, \ + numberOfOctetsLeft); + +/** @brief Command description for ReadyDataClientToServer + * + * Command: ReadyDataClientToServer + * @param tunnelId INT16U + * @param protocolListComplete BOOLEAN + * @param numberOfOctetsLeft INT16U + * @param protocolCount INT8U + * @param protocolList Protocol [] + * @param protocolListLen int + */ +#define emberAfFillCommandTunnelingClusterReadyDataClientToServer(tunnelId, protocolListComplete, numberOfOctetsLeft, \ + protocolCount, protocolList, protocolListLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_READY_DATA_CLIENT_TO_SERVER_COMMAND_ID, "uuuub", tunnelId, protocolListComplete, \ + numberOfOctetsLeft, protocolCount, protocolList, protocolListLen); + +/** @brief Command description for GetSupportedTunnelProtocols + * + * Command: GetSupportedTunnelProtocols + * @param protocolOffset INT8U + * @param tunnelId INT16U + */ +#define emberAfFillCommandTunnelingClusterGetSupportedTunnelProtocols(protocolOffset, tunnelId) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_GET_SUPPORTED_TUNNEL_PROTOCOLS_COMMAND_ID, "uu", protocolOffset, tunnelId); + +/** @brief Command description for SelectAvailableEmergencyCredit + * + * Command: SelectAvailableEmergencyCredit + * @param commandIssueDateTime UTC_TIME + * @param originatingDevice OriginatingDevice + * @param siteId OCTET_STRING + * @param meterSerialNumber OCTET_STRING + */ +#define emberAfFillCommandPrepaymentClusterSelectAvailableEmergencyCredit(commandIssueDateTime, originatingDevice, siteId, \ + meterSerialNumber) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_SELECT_AVAILABLE_EMERGENCY_CREDIT_COMMAND_ID, "uuuu", commandIssueDateTime, originatingDevice, \ + siteId, meterSerialNumber); + +/** @brief Command description for PublishPrepaySnapshot + * + * Command: PublishPrepaySnapshot + * @param snapshotId INT32U + * @param snapshotTime UTC_TIME + * @param totalSnapshotsFound INT8U + * @param commandIndex INT8U + * @param totalNumberOfCommands INT8U + * @param snapshotCause PrepaySnapshotPayloadCause + * @param snapshotPayloadType PrepaySnapshotPayloadType + * @param snapshotPayload INT8U [] + * @param snapshotPayloadLen int + */ +#define emberAfFillCommandPrepaymentClusterPublishPrepaySnapshot(snapshotId, snapshotTime, totalSnapshotsFound, commandIndex, \ + totalNumberOfCommands, snapshotCause, snapshotPayloadType, \ + snapshotPayload, snapshotPayloadLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_PUBLISH_PREPAY_SNAPSHOT_COMMAND_ID, "uuuuuuub", snapshotId, snapshotTime, totalSnapshotsFound, \ + commandIndex, totalNumberOfCommands, snapshotCause, snapshotPayloadType, snapshotPayload, \ + snapshotPayloadLen); + +/** @brief Command description for ChangeDebt + * + * Command: ChangeDebt + * @param issuerEventId INT32U + * @param friendlyCredit FriendlyCredit + * @param debtLabel OCTET_STRING + * @param friendlyCreditCalendarId INT32U + * @param debtAmount INT32U + * @param emergencyCreditLimit INT32U + * @param debtRecoveryMethod DebtRecoveryMethod + * @param emergencyCreditThreshold INT32U + * @param debtAmountType DebtAmountType + * @param debtRecoveryStartTime UTC_TIME + * @param debtRecoveryCollectionTime INT16U + * @param debtRecoveryFrequency DebtRecoveryFrequency + * @param debtRecoveryAmount INT32U + * @param debtRecoveryBalancePercentage INT16U + */ +#define emberAfFillCommandPrepaymentClusterChangeDebt( \ + issuerEventId, friendlyCredit, debtLabel, friendlyCreditCalendarId, debtAmount, emergencyCreditLimit, debtRecoveryMethod, \ + emergencyCreditThreshold, debtAmountType, debtRecoveryStartTime, debtRecoveryCollectionTime, debtRecoveryFrequency, \ + debtRecoveryAmount, debtRecoveryBalancePercentage) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_CHANGE_DEBT_COMMAND_ID, "uuuuuuuuuuuuuu", issuerEventId, friendlyCredit, debtLabel, \ + friendlyCreditCalendarId, debtAmount, emergencyCreditLimit, debtRecoveryMethod, \ + emergencyCreditThreshold, debtAmountType, debtRecoveryStartTime, debtRecoveryCollectionTime, \ + debtRecoveryFrequency, debtRecoveryAmount, debtRecoveryBalancePercentage); + +/** @brief Command description for EmergencyCreditSetup + * + * Command: EmergencyCreditSetup + * @param issuerEventId INT32U + * @param resultType ResultType + * @param startTime UTC_TIME + * @param topUpValue INT32U + * @param emergencyCreditLimit INT32U + * @param sourceOfTopUp OriginatingDevice + * @param emergencyCreditThreshold INT32U + * @param creditRemaining INT32U + */ +#define emberAfFillCommandPrepaymentClusterEmergencyCreditSetup(issuerEventId, resultType, startTime, topUpValue, \ + emergencyCreditLimit, sourceOfTopUp, emergencyCreditThreshold, \ + creditRemaining) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_EMERGENCY_CREDIT_SETUP_COMMAND_ID, "uuuuuuuu", issuerEventId, resultType, startTime, topUpValue, \ + emergencyCreditLimit, sourceOfTopUp, emergencyCreditThreshold, creditRemaining); + +/** @brief Command description for ConsumerTopUp + * + * Command: ConsumerTopUp + * @param originatingDevice OriginatingDevice + * @param topUpCode OCTET_STRING + */ +#define emberAfFillCommandPrepaymentClusterConsumerTopUp(originatingDevice, topUpCode) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_CONSUMER_TOP_UP_COMMAND_ID, "uu", originatingDevice, topUpCode); + +/** @brief Command description for CreditAdjustment + * + * Command: CreditAdjustment + * @param issuerEventId INT32U + * @param commandIndex INT8U + * @param startTime UTC_TIME + * @param totalNumberOfCommands INT8U + * @param creditAdjustmentType CreditAdjustmentType + * @param topUpPayload TopUpPayload [] + * @param topUpPayloadLen int + * @param creditAdjustmentValue INT32U + */ +#define emberAfFillCommandPrepaymentClusterCreditAdjustment(issuerEventId, commandIndex, startTime, totalNumberOfCommands, \ + creditAdjustmentType, topUpPayload, topUpPayloadLen, \ + creditAdjustmentValue) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_CREDIT_ADJUSTMENT_COMMAND_ID, "uuuuubu", issuerEventId, commandIndex, startTime, \ + totalNumberOfCommands, creditAdjustmentType, topUpPayload, topUpPayloadLen, creditAdjustmentValue); + +/** @brief Command description for ChangePaymentMode + * + * Command: ChangePaymentMode + * @param providerId INT32U + * @param commandIndex INT8U + * @param issuerEventId INT32U + * @param totalNumberOfCommands INT8U + * @param implementationDateTime UTC_TIME + * @param debtPayload DebtPayload [] + * @param debtPayloadLen int + * @param proposedPaymentControlConfiguration PaymentControlConfiguration + * @param cutOffValue INT32U + */ +#define emberAfFillCommandPrepaymentClusterChangePaymentMode(providerId, commandIndex, issuerEventId, totalNumberOfCommands, \ + implementationDateTime, debtPayload, debtPayloadLen, \ + proposedPaymentControlConfiguration, cutOffValue) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_CHANGE_PAYMENT_MODE_COMMAND_ID, "uuuuubuu", providerId, commandIndex, issuerEventId, \ + totalNumberOfCommands, implementationDateTime, debtPayload, debtPayloadLen, \ + proposedPaymentControlConfiguration, cutOffValue); + +/** @brief Command description for GetPrepaySnapshot + * + * Command: GetPrepaySnapshot + * @param earliestStartTime UTC_TIME + * @param latestEndTime UTC_TIME + * @param snapshotOffset INT8U + * @param snapshotCause PrepaySnapshotPayloadCause + */ +#define emberAfFillCommandPrepaymentClusterGetPrepaySnapshot(earliestStartTime, latestEndTime, snapshotOffset, snapshotCause) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_GET_PREPAY_SNAPSHOT_COMMAND_ID, "uuuu", earliestStartTime, latestEndTime, snapshotOffset, \ + snapshotCause); + +/** @brief Command description for GetTopUpLog + * + * Command: GetTopUpLog + * @param latestEndTime UTC_TIME + * @param numberOfRecords INT8U + */ +#define emberAfFillCommandPrepaymentClusterGetTopUpLog(latestEndTime, numberOfRecords) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_GET_TOP_UP_LOG_COMMAND_ID, "uu", latestEndTime, numberOfRecords); + +/** @brief Command description for SetLowCreditWarningLevel + * + * Command: SetLowCreditWarningLevel + * @param lowCreditWarningLevel INT32U + */ +#define emberAfFillCommandPrepaymentClusterSetLowCreditWarningLevel(lowCreditWarningLevel) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_SET_LOW_CREDIT_WARNING_LEVEL_COMMAND_ID, "u", lowCreditWarningLevel); + +/** @brief Command description for GetDebtRepaymentLog + * + * Command: GetDebtRepaymentLog + * @param latestEndTime UTC_TIME + * @param numberOfDebts INT8U + * @param debtType RepaymentDebtType + */ +#define emberAfFillCommandPrepaymentClusterGetDebtRepaymentLog(latestEndTime, numberOfDebts, debtType) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_GET_DEBT_REPAYMENT_LOG_COMMAND_ID, "uuu", latestEndTime, numberOfDebts, debtType); + +/** @brief Command description for SetMaximumCreditLimit + * + * Command: SetMaximumCreditLimit + * @param providerId INT32U + * @param issuerEventId INT32U + * @param implementationDateTime UTC_TIME + * @param maximumCreditLevel INT32U + * @param maximumCreditPerTopUp INT32U + */ +#define emberAfFillCommandPrepaymentClusterSetMaximumCreditLimit(providerId, issuerEventId, implementationDateTime, \ + maximumCreditLevel, maximumCreditPerTopUp) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_SET_MAXIMUM_CREDIT_LIMIT_COMMAND_ID, "uuuuu", providerId, issuerEventId, implementationDateTime, \ + maximumCreditLevel, maximumCreditPerTopUp); + +/** @brief Command description for SetOverallDebtCap + * + * Command: SetOverallDebtCap + * @param providerId INT32U + * @param issuerEventId INT32U + * @param implementationDateTime UTC_TIME + * @param overallDebtCap INT32U + */ +#define emberAfFillCommandPrepaymentClusterSetOverallDebtCap(providerId, issuerEventId, implementationDateTime, overallDebtCap) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_SET_OVERALL_DEBT_CAP_COMMAND_ID, "uuuu", providerId, issuerEventId, implementationDateTime, \ + overallDebtCap); + +/** @brief Command description for ReportEventStatus + * + * Command: ReportEventStatus + * @param issuerEventId INT32U + * @param issuerEventId INT32U + * @param eventStatus AmiEventStatus + * @param deviceClass AmiDeviceClass + * @param eventStatusTime UTC_TIME + * @param utilityEnrollmentGroup INT8U + * @param criticalityLevelApplied AmiCriticalityLevel + * @param actionRequired INT8U + * @param coolingTemperatureSetPointApplied INT16U + * @param heatingTemperatureSetPointApplied INT16U + * @param averageLoadAdjustmentPercentageApplied INT8S + * @param dutyCycleApplied INT8U + * @param eventControl AmiEventControl + */ +#define emberAfFillCommandEnergy \ + ManagementClusterReportEventStatus(issuerEventId, issuerEventId, eventStatus, deviceClass, eventStatusTime, \ + utilityEnrollmentGroup, criticalityLevelApplied, actionRequired, \ + coolingTemperatureSetPointApplied, heatingTemperatureSetPointApplied, \ + averageLoadAdjustmentPercentageApplied, dutyCycleApplied, eventControl) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_REPORT_EVENT_STATUS_COMMAND_ID, "uuuuuuuuuuuuu", issuerEventId, issuerEventId, eventStatus, \ + deviceClass, eventStatusTime, utilityEnrollmentGroup, criticalityLevelApplied, actionRequired, \ + coolingTemperatureSetPointApplied, heatingTemperatureSetPointApplied, \ + averageLoadAdjustmentPercentageApplied, dutyCycleApplied, eventControl); + +/** @brief Command description for PublishCalendar + * + * Command: PublishCalendar + * @param providerId INT32U + * @param earliestStartTime UTC_TIME + * @param issuerEventId INT32U + * @param minIssuerEventId INT32U + * @param issuerCalendarId INT32U + * @param numberOfCalendars INT8U + * @param startTime UTC_TIME + * @param calendarType CalendarType + * @param calendarType CalendarType + * @param providerId INT32U + * @param calendarTimeReference CalendarTimeReference + * @param calendarName OCTET_STRING + * @param numberOfSeasons INT8U + * @param numberOfWeekProfiles INT8U + * @param numberOfDayProfiles INT8U + */ +#define emberAfFillCommandCalendarClusterPublishCalendar( \ + providerId, earliestStartTime, issuerEventId, minIssuerEventId, issuerCalendarId, numberOfCalendars, startTime, calendarType, \ + calendarType, providerId, calendarTimeReference, calendarName, numberOfSeasons, numberOfWeekProfiles, numberOfDayProfiles) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_PUBLISH_CALENDAR_COMMAND_ID, "uuuuuuuuuuuuuuu", providerId, earliestStartTime, issuerEventId, \ + minIssuerEventId, issuerCalendarId, numberOfCalendars, startTime, calendarType, calendarType, \ + providerId, calendarTimeReference, calendarName, numberOfSeasons, numberOfWeekProfiles, \ + numberOfDayProfiles); + +/** @brief Command description for PublishDayProfile + * + * Command: PublishDayProfile + * @param providerId INT32U + * @param providerId INT32U + * @param issuerEventId INT32U + * @param issuerCalendarId INT32U + * @param issuerCalendarId INT32U + * @param startDayId INT8U + * @param dayId INT8U + * @param numberOfDays INT8U + * @param totalNumberOfScheduleEntries INT8U + * @param commandIndex INT8U + * @param totalNumberOfCommands INT8U + * @param calendarType CalendarType + * @param dayScheduleEntries ScheduleEntry [] + * @param dayScheduleEntriesLen int + */ +#define emberAfFillCommandCalendarClusterPublishDayProfile( \ + providerId, providerId, issuerEventId, issuerCalendarId, issuerCalendarId, startDayId, dayId, numberOfDays, \ + totalNumberOfScheduleEntries, commandIndex, totalNumberOfCommands, calendarType, dayScheduleEntries, dayScheduleEntriesLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_PUBLISH_DAY_PROFILE_COMMAND_ID, "uuuuuuuuuuuub", providerId, providerId, issuerEventId, \ + issuerCalendarId, issuerCalendarId, startDayId, dayId, numberOfDays, totalNumberOfScheduleEntries, \ + commandIndex, totalNumberOfCommands, calendarType, dayScheduleEntries, dayScheduleEntriesLen); + +/** @brief Command description for PublishWeekProfile + * + * Command: PublishWeekProfile + * @param providerId INT32U + * @param providerId INT32U + * @param issuerEventId INT32U + * @param issuerCalendarId INT32U + * @param issuerCalendarId INT32U + * @param startWeekId INT8U + * @param weekId INT8U + * @param numberOfWeeks INT8U + * @param dayIdRefMonday INT8U + * @param dayIdRefTuesday INT8U + * @param dayIdRefWednesday INT8U + * @param dayIdRefThursday INT8U + * @param dayIdRefFriday INT8U + * @param dayIdRefSaturday INT8U + * @param dayIdRefSunday INT8U + */ +#define emberAfFillCommandCalendarClusterPublishWeekProfile( \ + providerId, providerId, issuerEventId, issuerCalendarId, issuerCalendarId, startWeekId, weekId, numberOfWeeks, dayIdRefMonday, \ + dayIdRefTuesday, dayIdRefWednesday, dayIdRefThursday, dayIdRefFriday, dayIdRefSaturday, dayIdRefSunday) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_PUBLISH_WEEK_PROFILE_COMMAND_ID, "uuuuuuuuuuuuuuu", providerId, providerId, issuerEventId, \ + issuerCalendarId, issuerCalendarId, startWeekId, weekId, numberOfWeeks, dayIdRefMonday, \ + dayIdRefTuesday, dayIdRefWednesday, dayIdRefThursday, dayIdRefFriday, dayIdRefSaturday, \ + dayIdRefSunday); + +/** @brief Command description for PublishSeasons + * + * Command: PublishSeasons + * @param providerId INT32U + * @param providerId INT32U + * @param issuerEventId INT32U + * @param issuerCalendarId INT32U + * @param issuerCalendarId INT32U + * @param commandIndex INT8U + * @param totalNumberOfCommands INT8U + * @param seasonEntries SeasonEntry [] + * @param seasonEntriesLen int + */ +#define emberAfFillCommandCalendarClusterPublishSeasons(providerId, providerId, issuerEventId, issuerCalendarId, issuerCalendarId, \ + commandIndex, totalNumberOfCommands, seasonEntries, seasonEntriesLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_PUBLISH_SEASONS_COMMAND_ID, "uuuuuuub", providerId, providerId, issuerEventId, issuerCalendarId, \ + issuerCalendarId, commandIndex, totalNumberOfCommands, seasonEntries, seasonEntriesLen); + +/** @brief Command description for PublishSpecialDays + * + * Command: PublishSpecialDays + * @param providerId INT32U + * @param startTime UTC_TIME + * @param issuerEventId INT32U + * @param numberOfEvents INT8U + * @param issuerCalendarId INT32U + * @param calendarType CalendarType + * @param startTime UTC_TIME + * @param providerId INT32U + * @param calendarType CalendarType + * @param issuerCalendarId INT32U + * @param totalNumberOfSpecialDays INT8U + * @param commandIndex INT8U + * @param totalNumberOfCommands INT8U + * @param specialDayEntries SpecialDay [] + * @param specialDayEntriesLen int + */ +#define emberAfFillCommandCalendarClusterPublishSpecialDays( \ + providerId, startTime, issuerEventId, numberOfEvents, issuerCalendarId, calendarType, startTime, providerId, calendarType, \ + issuerCalendarId, totalNumberOfSpecialDays, commandIndex, totalNumberOfCommands, specialDayEntries, specialDayEntriesLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_PUBLISH_SPECIAL_DAYS_COMMAND_ID, "uuuuuuuuuuuuub", providerId, startTime, issuerEventId, \ + numberOfEvents, issuerCalendarId, calendarType, startTime, providerId, calendarType, \ + issuerCalendarId, totalNumberOfSpecialDays, commandIndex, totalNumberOfCommands, specialDayEntries, \ + specialDayEntriesLen); + +/** @brief Command description for GetCalendarCancellation + * + * Command: GetCalendarCancellation + * @param providerId INT32U + * @param issuerCalendarId INT32U + * @param calendarType CalendarType + */ +#define emberAfFillCommandCalendarClusterGetCalendarCancellation(providerId, issuerCalendarId, calendarType) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_GET_CALENDAR_CANCELLATION_COMMAND_ID, "uuu", providerId, issuerCalendarId, calendarType); + +/** @brief Command description for GetChangeOfTenancy + * + * Command: GetChangeOfTenancy + * @param providerId INT32U + * @param issuerEventId INT32U + * @param tariffType TariffType + * @param implementationDateTime UTC_TIME + * @param proposedTenancyChangeControl ProposedChangeControl + */ +#define emberAfFillCommandDevice \ + ManagementClusterGetChangeOfTenancy(providerId, issuerEventId, tariffType, implementationDateTime, \ + proposedTenancyChangeControl) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_GET_CHANGE_OF_TENANCY_COMMAND_ID, "uuuuu", providerId, issuerEventId, tariffType, \ + implementationDateTime, proposedTenancyChangeControl); + +/** @brief Command description for GetChangeOfSupplier + * + * Command: GetChangeOfSupplier + * @param currentProviderId INT32U + * @param issuerEventId INT32U + * @param tariffType TariffType + * @param proposedProviderId INT32U + * @param providerChangeImplementationTime UTC_TIME + * @param providerChangeControl ProposedChangeControl + * @param proposedProviderName OCTET_STRING + * @param proposedProviderContactDetails OCTET_STRING + */ +#define emberAfFillCommandDevice \ + ManagementClusterGetChangeOfSupplier(currentProviderId, issuerEventId, tariffType, proposedProviderId, \ + providerChangeImplementationTime, providerChangeControl, proposedProviderName, \ + proposedProviderContactDetails) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_GET_CHANGE_OF_SUPPLIER_COMMAND_ID, "uuuuuuuu", currentProviderId, issuerEventId, tariffType, \ + proposedProviderId, providerChangeImplementationTime, providerChangeControl, \ + proposedProviderName, proposedProviderContactDetails); + +/** @brief Command description for RequestNewPassword + * + * Command: RequestNewPassword + * @param passwordType PasswordType + * @param issuerEventId INT32U + * @param implementationDateTime UTC_TIME + * @param durationInMinutes INT16U + * @param passwordType PasswordType + * @param password OCTET_STRING + */ +#define emberAfFillCommandDevice \ + ManagementClusterRequestNewPassword(passwordType, issuerEventId, implementationDateTime, durationInMinutes, passwordType, \ + password) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_REQUEST_NEW_PASSWORD_COMMAND_ID, "uuuuuu", passwordType, issuerEventId, \ + implementationDateTime, durationInMinutes, passwordType, password); + +/** @brief Command description for GetSiteId + * + * Command: GetSiteId + * @param issuerEventId INT32U + * @param siteIdTime UTC_TIME + * @param providerId INT32U + * @param siteId OCTET_STRING + */ +#define emberAfFillCommandDevice \ + ManagementClusterGetSiteId(issuerEventId, siteIdTime, providerId, siteId) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_GET_SITE_ID_COMMAND_ID, "uuuu", issuerEventId, siteIdTime, providerId, siteId); + +/** @brief Command description for ReportEventConfiguration + * + * Command: ReportEventConfiguration + * @param commandIndex INT8U + * @param issuerEventId INT32U + * @param totalCommands INT8U + * @param startDateTime UTC_TIME + * @param eventConfigurationPayload EventConfigurationPayload [] + * @param eventConfigurationPayloadLen int + * @param eventConfiguration EventConfiguration + * @param configurationControl EventConfigurationControl + * @param eventConfigurationPayload INT8U [] + * @param eventConfigurationPayloadLen int + */ +#define emberAfFillCommandDevice \ + ManagementClusterReportEventConfiguration(commandIndex, issuerEventId, totalCommands, startDateTime, \ + eventConfigurationPayload, eventConfigurationPayloadLen, eventConfiguration, \ + configurationControl, eventConfigurationPayload, eventConfigurationPayloadLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_REPORT_EVENT_CONFIGURATION_COMMAND_ID, "uuuubuub", commandIndex, issuerEventId, \ + totalCommands, startDateTime, eventConfigurationPayload, eventConfigurationPayloadLen, \ + eventConfiguration, configurationControl, eventConfigurationPayload, \ + eventConfigurationPayloadLen); + +/** @brief Command description for GetCIN + * + * Command: GetCIN + * @param eventId INT16U + */ +#define emberAfFillCommandDevice \ + ManagementClusterGetCIN(eventId) emberAfFillExternalBuffer(mask, \ + \ + ZCL_GET_CIN_COMMAND_ID, "u", eventId); + +/** @brief Command description for UpdateCIN + * + * Command: UpdateCIN + * @param issuerEventId INT32U + * @param implementationTime UTC_TIME + * @param providerId INT32U + * @param customerIdNumber OCTET_STRING + */ +#define emberAfFillCommandDevice \ + ManagementClusterUpdateCIN(issuerEventId, implementationTime, providerId, customerIdNumber) emberAfFillExternalBuffer( \ + mask, \ + \ + ZCL_UPDATE_CIN_COMMAND_ID, "uuuu", issuerEventId, implementationTime, providerId, customerIdNumber); + +/** @brief Command description for GetEventLog + * + * Command: GetEventLog + * @param eventControlLogId EventControlLogId + * @param logId EventLogId + * @param eventId INT16U + * @param eventId INT16U + * @param startTime UTC_TIME + * @param eventTime UTC_TIME + * @param endTime UTC_TIME + * @param eventControl EventActionControl + * @param numberOfEvents INT8U + * @param eventData OCTET_STRING + * @param eventOffset INT16U + */ +#define emberAfFillCommandEventsClusterGetEventLog(eventControlLogId, logId, eventId, eventId, startTime, eventTime, endTime, \ + eventControl, numberOfEvents, eventData, eventOffset) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_GET_EVENT_LOG_COMMAND_ID, "uuuuuuuuuuu", eventControlLogId, logId, eventId, eventId, startTime, \ + eventTime, endTime, eventControl, numberOfEvents, eventData, eventOffset); + +/** @brief Command description for ClearEventLogRequest + * + * Command: ClearEventLogRequest + * @param logId EventLogId + * @param totalNumberOfEvents INT16U + * @param commandIndex INT8U + * @param totalCommands INT8U + * @param logPayloadControl NumberOfEventsLogPayloadControl + * @param logPayload EventLogPayload [] + * @param logPayloadLen int + */ +#define emberAfFillCommandEventsClusterClearEventLogRequest(logId, totalNumberOfEvents, commandIndex, totalCommands, \ + logPayloadControl, logPayload, logPayloadLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_CLEAR_EVENT_LOG_REQUEST_COMMAND_ID, "uuuuub", logId, totalNumberOfEvents, commandIndex, \ + totalCommands, logPayloadControl, logPayload, logPayloadLen); + +/** @brief Command description for ClearEventLogResponse + * + * Command: ClearEventLogResponse + * @param clearedEventsLogs ClearedEventsLogs + */ +#define emberAfFillCommandEventsClusterClearEventLogResponse(clearedEventsLogs) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_CLEAR_EVENT_LOG_RESPONSE_COMMAND_ID, "u", clearedEventsLogs); + +/** @brief Command description for PairingResponse + * + * Command: PairingResponse + * @param pairingInformationVersion INT32U + * @param localPairingInformationVersion INT32U + * @param totalNumberOfDevices INT8U + * @param eui64OfRequestingDevice IEEE_ADDRESS + * @param commandIndex INT8U + * @param totalNumberOfCommands INT8U + * @param eui64s IEEE_ADDRESS [] + * @param eui64sLen int + */ +#define emberAfFillCommandMDU \ + PairingClusterPairingResponse(pairingInformationVersion, localPairingInformationVersion, totalNumberOfDevices, \ + eui64OfRequestingDevice, commandIndex, totalNumberOfCommands, eui64s, eui64sLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_PAIRING_RESPONSE_COMMAND_ID, "uuuuuub", pairingInformationVersion, \ + localPairingInformationVersion, totalNumberOfDevices, eui64OfRequestingDevice, commandIndex, \ + totalNumberOfCommands, eui64s, eui64sLen); + +/** @brief Command description for GetSuspendZclMessagesStatus + * + * Command: GetSuspendZclMessagesStatus + * @param period INT8U + */ +#define emberAfFillCommandSub \ + -GHzClusterGetSuspendZclMessagesStatus(period) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_GET_SUSPEND_ZCL_MESSAGES_STATUS_COMMAND_ID, "u", period); + +/** @brief Command description for InitiateKeyEstablishmentRequest + * + * Command: InitiateKeyEstablishmentRequest + * @param keyEstablishmentSuite BITMAP16 + * @param requestedKeyEstablishmentSuite BITMAP16 + * @param ephemeralDataGenerateTime INT8U + * @param ephemeralDataGenerateTime INT8U + * @param confirmKeyGenerateTime INT8U + * @param confirmKeyGenerateTime INT8U + * @param identity Identity + * @param identity Identity + */ +#define emberAfFillCommandKey \ + EstablishmentClusterInitiateKeyEstablishmentRequest(keyEstablishmentSuite, requestedKeyEstablishmentSuite, \ + ephemeralDataGenerateTime, ephemeralDataGenerateTime, \ + confirmKeyGenerateTime, confirmKeyGenerateTime, identity, identity) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_INITIATE_KEY_ESTABLISHMENT_REQUEST_COMMAND_ID, "uuuuuuuu", keyEstablishmentSuite, \ + requestedKeyEstablishmentSuite, ephemeralDataGenerateTime, ephemeralDataGenerateTime, \ + confirmKeyGenerateTime, confirmKeyGenerateTime, identity, identity); + +/** @brief Command description for EphemeralDataRequest + * + * Command: EphemeralDataRequest + * @param ephemeralData EphemeralData + * @param ephemeralData EphemeralData + */ +#define emberAfFillCommandKey \ + EstablishmentClusterEphemeralDataRequest(ephemeralData, ephemeralData) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_EPHEMERAL_DATA_REQUEST_COMMAND_ID, "uu", ephemeralData, ephemeralData); + +/** @brief Command description for ConfirmKeyDataRequest + * + * Command: ConfirmKeyDataRequest + * @param secureMessageAuthenticationCode Smac + * @param secureMessageAuthenticationCode Smac + */ +#define emberAfFillCommandKey \ + EstablishmentClusterConfirmKeyDataRequest(secureMessageAuthenticationCode, secureMessageAuthenticationCode) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_CONFIRM_KEY_DATA_REQUEST_COMMAND_ID, "uu", secureMessageAuthenticationCode, \ + secureMessageAuthenticationCode); + +/** @brief Command description for TerminateKeyEstablishment + * + * Command: TerminateKeyEstablishment + * @param statusCode AmiKeyEstablishmentStatus + * @param waitTime INT8U + * @param keyEstablishmentSuite BITMAP16 + */ +#define emberAfFillCommandKey \ + EstablishmentClusterTerminateKeyEstablishment(statusCode, waitTime, keyEstablishmentSuite) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_TERMINATE_KEY_ESTABLISHMENT_COMMAND_ID, "uuu", statusCode, waitTime, keyEstablishmentSuite); + +/** @brief Command description for RequestInformation + * + * Command: RequestInformation + * @param inquiryId ENUM8 + * @param number INT8U + * @param dataTypeId BITMAP8 + * @param buffer INT8U [] + * @param bufferLen int + * @param requestInformationPayload INT8U [] + * @param requestInformationPayloadLen int + */ +#define emberAfFillCommandInformationClusterRequestInformation(inquiryId, number, dataTypeId, buffer, bufferLen, \ + requestInformationPayload, requestInformationPayloadLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_REQUEST_INFORMATION_COMMAND_ID, "uuubb", inquiryId, number, dataTypeId, buffer, bufferLen, \ + requestInformationPayload, requestInformationPayloadLen); + +/** @brief Command description for PushInformationResponse + * + * Command: PushInformationResponse + * @param notificationList Notification [] + * @param notificationListLen int + * @param contents INT8U [] + * @param contentsLen int + */ +#define emberAfFillCommandInformationClusterPushInformationResponse(notificationList, notificationListLen, contents, contentsLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_PUSH_INFORMATION_RESPONSE_COMMAND_ID, "bb", notificationList, notificationListLen, contents, \ + contentsLen); + +/** @brief Command description for SendPreference + * + * Command: SendPreference + * @param preferenceType INT16U + * @param statusFeedbackList Status [] + * @param statusFeedbackListLen int + * @param preferencePayload INT8U [] + * @param preferencePayloadLen int + */ +#define emberAfFillCommandInformationClusterSendPreference(preferenceType, statusFeedbackList, statusFeedbackListLen, \ + preferencePayload, preferencePayloadLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_SEND_PREFERENCE_COMMAND_ID, "ubb", preferenceType, statusFeedbackList, statusFeedbackListLen, \ + preferencePayload, preferencePayloadLen); + +/** @brief Command description for ServerRequestPreference + * + * Command: ServerRequestPreference + * @param statusFeedback Status + * @param preferenceType INT16U + * @param preferencePayload INT8U [] + * @param preferencePayloadLen int + */ +#define emberAfFillCommandInformationClusterServerRequestPreference(statusFeedback, preferenceType, preferencePayload, \ + preferencePayloadLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_SERVER_REQUEST_PREFERENCE_COMMAND_ID, "uub", statusFeedback, preferenceType, preferencePayload, \ + preferencePayloadLen); + +/** @brief Command description for Update + * + * Command: Update + * @param accessControl ENUM8 + * @param statusFeedbackList Status [] + * @param statusFeedbackListLen int + * @param option BITMAP8 + * @param contents INT8U [] + * @param contentsLen int + */ +#define emberAfFillCommandInformationClusterUpdate(accessControl, statusFeedbackList, statusFeedbackListLen, option, contents, \ + contentsLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_UPDATE_COMMAND_ID, "ubub", accessControl, statusFeedbackList, statusFeedbackListLen, option, \ + contents, contentsLen); + +/** @brief Command description for Delete + * + * Command: Delete + * @param deletionOptions BITMAP8 + * @param notificationList Notification [] + * @param notificationListLen int + * @param contentIds INT16U [] + * @param contentIdsLen int + */ +#define emberAfFillCommandInformationClusterDelete(deletionOptions, notificationList, notificationListLen, contentIds, \ + contentIdsLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_DELETE_COMMAND_ID, "ubb", deletionOptions, notificationList, notificationListLen, contentIds, \ + contentIdsLen); + +/** @brief Command description for ConfigureNodeDescription + * + * Command: ConfigureNodeDescription + * @param description CHAR_STRING + * @param notificationList Notification [] + * @param notificationListLen int + */ +#define emberAfFillCommandInformationClusterConfigureNodeDescription(description, notificationList, notificationListLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_CONFIGURE_NODE_DESCRIPTION_COMMAND_ID, "ub", description, notificationList, \ + notificationListLen); + +/** @brief Command description for ConfigureDeliveryEnable + * + * Command: ConfigureDeliveryEnable + * @param enable BOOLEAN + */ +#define emberAfFillCommandInformationClusterConfigureDeliveryEnable(enable) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_CONFIGURE_DELIVERY_ENABLE_COMMAND_ID, "u", enable); + +/** @brief Command description for ConfigurePushInformationTimer + * + * Command: ConfigurePushInformationTimer + * @param timer INT32U + */ +#define emberAfFillCommandInformationClusterConfigurePushInformationTimer(timer) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_CONFIGURE_PUSH_INFORMATION_TIMER_COMMAND_ID, "u", timer); + +/** @brief Command description for ConfigureSetRootId + * + * Command: ConfigureSetRootId + * @param rootId INT16U + */ +#define emberAfFillCommandInformationClusterConfigureSetRootId(rootId) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_CONFIGURE_SET_ROOT_ID_COMMAND_ID, "u", rootId); + +/** @brief Command description for ReadFileRequest + * + * Command: ReadFileRequest + * @param fileIndex INT16U + * @param writeOptions BITMAP8 + * @param fileStartPositionAndRequestedOctetCount INT8U [] + * @param fileStartPositionAndRequestedOctetCountLen int + * @param fileSize INT8U [] + * @param fileSizeLen int + */ +#define emberAfFillCommandData \ + SharingClusterReadFileRequest(fileIndex, writeOptions, fileStartPositionAndRequestedOctetCount, \ + fileStartPositionAndRequestedOctetCountLen, fileSize, fileSizeLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_READ_FILE_REQUEST_COMMAND_ID, "uubb", fileIndex, writeOptions, \ + fileStartPositionAndRequestedOctetCount, fileStartPositionAndRequestedOctetCountLen, fileSize, \ + fileSizeLen); + +/** @brief Command description for ReadRecordRequest + * + * Command: ReadRecordRequest + * @param fileIndex INT16U + * @param fileIndex INT16U + * @param fileStartRecordAndRequestedRecordCount INT8U [] + * @param fileStartRecordAndRequestedRecordCountLen int + * @param fileStartPosition INT32U + * @param octetCount INT32U + */ +#define emberAfFillCommandData \ + SharingClusterReadRecordRequest(fileIndex, fileIndex, fileStartRecordAndRequestedRecordCount, \ + fileStartRecordAndRequestedRecordCountLen, fileStartPosition, octetCount) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_READ_RECORD_REQUEST_COMMAND_ID, "uubuu", fileIndex, fileIndex, \ + fileStartRecordAndRequestedRecordCount, fileStartRecordAndRequestedRecordCountLen, \ + fileStartPosition, octetCount); + +/** @brief Command description for WriteFileResponse + * + * Command: WriteFileResponse + * @param status ENUM8 + * @param fileIndex INT16U + * @param fileIndex INT8U [] + * @param fileIndexLen int + * @param fileStartRecord INT16U + * @param recordCount INT16U + */ +#define emberAfFillCommandData \ + SharingClusterWriteFileResponse(status, fileIndex, fileIndex, fileIndexLen, fileStartRecord, recordCount) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_WRITE_FILE_RESPONSE_COMMAND_ID, "uubuu", status, fileIndex, fileIndex, fileIndexLen, \ + fileStartRecord, recordCount); + +/** @brief Command description for FileTransmission + * + * Command: FileTransmission + * @param transmitOptions BITMAP8 + * @param buffer INT8U [] + * @param bufferLen int + */ +#define emberAfFillCommandData \ + SharingClusterFileTransmission(transmitOptions, buffer, bufferLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_FILE_TRANSMISSION_COMMAND_ID, "ub", transmitOptions, buffer, bufferLen); + +/** @brief Command description for RecordTransmission + * + * Command: RecordTransmission + * @param transmitOptions BITMAP8 + * @param buffer INT8U [] + * @param bufferLen int + */ +#define emberAfFillCommandData \ + SharingClusterRecordTransmission(transmitOptions, buffer, bufferLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_RECORD_TRANSMISSION_COMMAND_ID, "ub", transmitOptions, buffer, bufferLen); + +/** @brief Command description for SearchGame + * + * Command: SearchGame + * @param specificGame ENUM8 + * @param gameId INT16U + * @param gameId INT16U + * @param gameMaster BOOLEAN + * @param listOfGame CHAR_STRING + */ +#define emberAfFillCommandGamingClusterSearchGame(specificGame, gameId, gameId, gameMaster, listOfGame) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_SEARCH_GAME_COMMAND_ID, "uuuuu", specificGame, gameId, gameId, gameMaster, listOfGame); + +/** @brief Command description for JoinGame + * + * Command: JoinGame + * @param gameId INT16U + * @param commandId INT8U + * @param joinAsMaster BOOLEAN + * @param status BITMAP8 + * @param nameOfGame CHAR_STRING + * @param message CHAR_STRING + */ +#define emberAfFillCommandGamingClusterJoinGame(gameId, commandId, joinAsMaster, status, nameOfGame, message) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_JOIN_GAME_COMMAND_ID, "uuuuuu", gameId, commandId, joinAsMaster, status, nameOfGame, message); + +/** @brief Command description for StartGame + * + * Command: StartGame + */ +#define emberAfFillCommandGamingClusterStartGame() \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_START_GAME_COMMAND_ID, "", ); + +/** @brief Command description for PauseGame + * + * Command: PauseGame + */ +#define emberAfFillCommandGamingClusterPauseGame() \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_PAUSE_GAME_COMMAND_ID, "", ); + +/** @brief Command description for ResumeGame + * + * Command: ResumeGame + */ +#define emberAfFillCommandGamingClusterResumeGame() \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_RESUME_GAME_COMMAND_ID, "", ); + +/** @brief Command description for QuitGame + * + * Command: QuitGame + */ +#define emberAfFillCommandGamingClusterQuitGame() \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_QUIT_GAME_COMMAND_ID, "", ); + +/** @brief Command description for EndGame + * + * Command: EndGame + */ +#define emberAfFillCommandGamingClusterEndGame() \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_END_GAME_COMMAND_ID, "", ); + +/** @brief Command description for StartOver + * + * Command: StartOver + */ +#define emberAfFillCommandGamingClusterStartOver() \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_START_OVER_COMMAND_ID, "", ); + +/** @brief Command description for ActionControl + * + * Command: ActionControl + * @param actions BITMAP32 + */ +#define emberAfFillCommandGamingClusterActionControl(actions) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_ACTION_CONTROL_COMMAND_ID, "u", actions); + +/** @brief Command description for DownloadGame + * + * Command: DownloadGame + */ +#define emberAfFillCommandGamingClusterDownloadGame() \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_DOWNLOAD_GAME_COMMAND_ID, "", ); + +/** @brief Command description for PathCreation + * + * Command: PathCreation + * @param originatorAddress DATA16 + * @param originatorAddress DATA16 + * @param destinationAddress DATA16 + * @param destinationAddress DATA16 + * @param dataRate INT8U + * @param dataRate INT8U + */ +#define emberAfFillCommandData \ + Rate ControlClusterPathCreation(originatorAddress, originatorAddress, destinationAddress, destinationAddress, dataRate, \ + dataRate) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_PATH_CREATION_COMMAND_ID, "uuuuuu", originatorAddress, originatorAddress, \ + destinationAddress, destinationAddress, dataRate, dataRate); + +/** @brief Command description for DataRateNotification + * + * Command: DataRateNotification + * @param originatorAddress DATA16 + * @param destinationAddress DATA16 + * @param dataRate INT8U + */ +#define emberAfFillCommandData \ + Rate ControlClusterDataRateNotification(originatorAddress, destinationAddress, dataRate) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_DATA_RATE_NOTIFICATION_COMMAND_ID, "uuu", originatorAddress, destinationAddress, dataRate); + +/** @brief Command description for PathDeletion + * + * Command: PathDeletion + * @param originatorAddress DATA16 + * @param destinationAddress DATA16 + */ +#define emberAfFillCommandData \ + Rate ControlClusterPathDeletion(originatorAddress, destinationAddress) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_PATH_DELETION_COMMAND_ID, "uu", originatorAddress, destinationAddress); + +/** @brief Command description for EstablishmentRequest + * + * Command: EstablishmentRequest + * @param flag BITMAP8 + * @param ackNack ENUM8 + * @param codecType ENUM8 + * @param codecType ENUM8 + * @param sampFreq ENUM8 + * @param codecRate ENUM8 + * @param serviceType ENUM8 + * @param buffer INT8U [] + * @param bufferLen int + */ +#define emberAfFillCommandVoice \ + over ZigBeeClusterEstablishmentRequest(flag, ackNack, codecType, codecType, sampFreq, codecRate, serviceType, buffer, \ + bufferLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_ESTABLISHMENT_REQUEST_COMMAND_ID, "uuuuuuub", flag, ackNack, codecType, codecType, sampFreq, \ + codecRate, serviceType, buffer, bufferLen); + +/** @brief Command description for VoiceTransmission + * + * Command: VoiceTransmission + * @param voiceData INT8U [] + * @param voiceDataLen int + * @param sequenceNumber INT8U + * @param errorFlag ENUM8 + */ +#define emberAfFillCommandVoice \ + over ZigBeeClusterVoiceTransmission(voiceData, voiceDataLen, sequenceNumber, errorFlag) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_VOICE_TRANSMISSION_COMMAND_ID, "buu", voiceData, voiceDataLen, sequenceNumber, errorFlag); + +/** @brief Command description for VoiceTransmissionCompletion + * + * Command: VoiceTransmissionCompletion + * @param controlType ENUM8 + */ +#define emberAfFillCommandVoice \ + over ZigBeeClusterVoiceTransmissionCompletion(controlType) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_VOICE_TRANSMISSION_COMPLETION_COMMAND_ID, "u", controlType); + +/** @brief Command description for ControlResponse + * + * Command: ControlResponse + * @param ackNack ENUM8 + */ +#define emberAfFillCommandVoice \ + over ZigBeeClusterControlResponse(ackNack) emberAfFillExternalBuffer(mask, \ + \ + ZCL_CONTROL_RESPONSE_COMMAND_ID, "u", ackNack); + +/** @brief Command description for JoinChatRequest + * + * Command: JoinChatRequest + * @param uid INT16U + * @param status ENUM8 + * @param nickname CHAR_STRING + * @param cid INT16U + * @param cid INT16U + */ +#define emberAfFillCommandChattingClusterJoinChatRequest(uid, status, nickname, cid, cid) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_JOIN_CHAT_REQUEST_COMMAND_ID, "uuuuu", uid, status, nickname, cid, cid); + +/** @brief Command description for LeaveChatRequest + * + * Command: LeaveChatRequest + * @param cid INT16U + * @param status ENUM8 + * @param uid INT16U + * @param cid INT16U + * @param chatParticipantList ChatParticipant [] + * @param chatParticipantListLen int + */ +#define emberAfFillCommandChattingClusterLeaveChatRequest(cid, status, uid, cid, chatParticipantList, chatParticipantListLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_LEAVE_CHAT_REQUEST_COMMAND_ID, "uuuub", cid, status, uid, cid, chatParticipantList, \ + chatParticipantListLen); + +/** @brief Command description for SearchChatRequest + * + * Command: SearchChatRequest + * @param cid INT16U + * @param uid INT16U + * @param nickname CHAR_STRING + */ +#define emberAfFillCommandChattingClusterSearchChatRequest(cid, uid, nickname) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_SEARCH_CHAT_REQUEST_COMMAND_ID, "uuu", cid, uid, nickname); + +/** @brief Command description for SwitchChairmanResponse + * + * Command: SwitchChairmanResponse + * @param cid INT16U + * @param cid INT16U + * @param uid INT16U + * @param uid INT16U + * @param nickname CHAR_STRING + */ +#define emberAfFillCommandChattingClusterSwitchChairmanResponse(cid, cid, uid, uid, nickname) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_SWITCH_CHAIRMAN_RESPONSE_COMMAND_ID, "uuuuu", cid, cid, uid, uid, nickname); + +/** @brief Command description for StartChatRequest + * + * Command: StartChatRequest + * @param name CHAR_STRING + * @param options BITMAP8 + * @param uid INT16U + * @param chatRoomList ChatRoom [] + * @param chatRoomListLen int + * @param nickname CHAR_STRING + */ +#define emberAfFillCommandChattingClusterStartChatRequest(name, options, uid, chatRoomList, chatRoomListLen, nickname) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_START_CHAT_REQUEST_COMMAND_ID, "uuubu", name, options, uid, chatRoomList, chatRoomListLen, \ + nickname); + +/** @brief Command description for ChatMessage + * + * Command: ChatMessage + * @param destinationUid INT16U + * @param cid INT16U + * @param sourceUid INT16U + * @param cid INT16U + * @param nickname CHAR_STRING + * @param message CHAR_STRING + */ +#define emberAfFillCommandChattingClusterChatMessage(destinationUid, cid, sourceUid, cid, nickname, message) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_CHAT_MESSAGE_COMMAND_ID, "uuuuuu", destinationUid, cid, sourceUid, cid, nickname, message); + +/** @brief Command description for GetNodeInformationRequest + * + * Command: GetNodeInformationRequest + * @param cid INT16U + * @param cid INT16U + * @param uid INT16U + * @param nodeInformationList NodeInformation [] + * @param nodeInformationListLen int + */ +#define emberAfFillCommandChattingClusterGetNodeInformationRequest(cid, cid, uid, nodeInformationList, nodeInformationListLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_GET_NODE_INFORMATION_REQUEST_COMMAND_ID, "uuub", cid, cid, uid, nodeInformationList, \ + nodeInformationListLen); + +/** @brief Command description for SwitchChairmanNotification + * + * Command: SwitchChairmanNotification + * @param cid INT16U + * @param uid INT16U + * @param address DATA16 + * @param endpoint INT8U + */ +#define emberAfFillCommandChattingClusterSwitchChairmanNotification(cid, uid, address, endpoint) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_SWITCH_CHAIRMAN_NOTIFICATION_COMMAND_ID, "uuuu", cid, uid, address, endpoint); + +/** @brief Command description for GetNodeInformationResponse + * + * Command: GetNodeInformationResponse + * @param status ENUM8 + * @param cid INT16U + * @param uid INT16U + * @param addressEndpointAndNickname INT8U [] + * @param addressEndpointAndNicknameLen int + */ +#define emberAfFillCommandChattingClusterGetNodeInformationResponse(status, cid, uid, addressEndpointAndNickname, \ + addressEndpointAndNicknameLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_GET_NODE_INFORMATION_RESPONSE_COMMAND_ID, "uuub", status, cid, uid, addressEndpointAndNickname, \ + addressEndpointAndNicknameLen); + +/** @brief Command description for BuyRequest + * + * Command: BuyRequest + * @param userId OCTET_STRING + * @param serialNumber OCTET_STRING + * @param userType INT16U + * @param currency INT32U + * @param serviceId INT16U + * @param priceTrailingDigit INT8U + * @param goodId OCTET_STRING + * @param price INT32U + * @param timestamp OCTET_STRING + * @param transId INT16U + * @param transStatus ENUM8 + */ +#define emberAfFillCommandPaymentClusterBuyRequest(userId, serialNumber, userType, currency, serviceId, priceTrailingDigit, \ + goodId, price, timestamp, transId, transStatus) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_BUY_REQUEST_COMMAND_ID, "uuuuuuuuuuu", userId, serialNumber, userType, currency, serviceId, \ + priceTrailingDigit, goodId, price, timestamp, transId, transStatus); + +/** @brief Command description for AcceptPayment + * + * Command: AcceptPayment + * @param userId OCTET_STRING + * @param serialNumber OCTET_STRING + * @param userType INT16U + * @param currency INT32U + * @param serviceId INT16U + * @param priceTrailingDigit INT8U + * @param goodId OCTET_STRING + * @param price INT32U + * @param timestamp OCTET_STRING + */ +#define emberAfFillCommandPaymentClusterAcceptPayment(userId, serialNumber, userType, currency, serviceId, priceTrailingDigit, \ + goodId, price, timestamp) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_ACCEPT_PAYMENT_COMMAND_ID, "uuuuuuuuu", userId, serialNumber, userType, currency, serviceId, \ + priceTrailingDigit, goodId, price, timestamp); + +/** @brief Command description for PaymentConfirm + * + * Command: PaymentConfirm + * @param serialNumber OCTET_STRING + * @param serialNumber OCTET_STRING + * @param transId INT16U + * @param status ENUM8 + * @param transStatus ENUM8 + */ +#define emberAfFillCommandPaymentClusterPaymentConfirm(serialNumber, serialNumber, transId, status, transStatus) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_PAYMENT_CONFIRM_COMMAND_ID, "uuuuu", serialNumber, serialNumber, transId, status, transStatus); + +/** @brief Command description for Subscribe + * + * Command: Subscribe + * @param userId OCTET_STRING + * @param userId OCTET_STRING + * @param serviceId INT16U + * @param serviceId INT16U + * @param serviceProviderId INT16U + * @param serviceProviderId INT16U + */ +#define emberAfFillCommandBillingClusterSubscribe(userId, userId, serviceId, serviceId, serviceProviderId, serviceProviderId) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_SUBSCRIBE_COMMAND_ID, "uuuuuu", userId, userId, serviceId, serviceId, serviceProviderId, \ + serviceProviderId); + +/** @brief Command description for Unsubscribe + * + * Command: Unsubscribe + * @param userId OCTET_STRING + * @param userId OCTET_STRING + * @param serviceId INT16U + * @param serviceId INT16U + * @param serviceProviderId INT16U + * @param serviceProviderId INT16U + * @param timestamp OCTET_STRING + * @param duration INT16U + */ +#define emberAfFillCommandBillingClusterUnsubscribe(userId, userId, serviceId, serviceId, serviceProviderId, serviceProviderId, \ + timestamp, duration) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_UNSUBSCRIBE_COMMAND_ID, "uuuuuuuu", userId, userId, serviceId, serviceId, serviceProviderId, \ + serviceProviderId, timestamp, duration); + +/** @brief Command description for StartBillingSession + * + * Command: StartBillingSession + * @param userId OCTET_STRING + * @param serviceId INT16U + * @param serviceProviderId INT16U + */ +#define emberAfFillCommandBillingClusterStartBillingSession(userId, serviceId, serviceProviderId) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_START_BILLING_SESSION_COMMAND_ID, "uuu", userId, serviceId, serviceProviderId); + +/** @brief Command description for StopBillingSession + * + * Command: StopBillingSession + * @param userId OCTET_STRING + * @param serviceId INT16U + * @param serviceProviderId INT16U + */ +#define emberAfFillCommandBillingClusterStopBillingSession(userId, serviceId, serviceProviderId) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_STOP_BILLING_SESSION_COMMAND_ID, "uuu", userId, serviceId, serviceProviderId); + +/** @brief Command description for BillStatusNotification + * + * Command: BillStatusNotification + * @param userId OCTET_STRING + * @param status ENUM8 + */ +#define emberAfFillCommandBillingClusterBillStatusNotification(userId, status) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_BILL_STATUS_NOTIFICATION_COMMAND_ID, "uu", userId, status); + +/** @brief Command description for SessionKeepAlive + * + * Command: SessionKeepAlive + * @param userId OCTET_STRING + * @param serviceId INT16U + * @param serviceProviderId INT16U + */ +#define emberAfFillCommandBillingClusterSessionKeepAlive(userId, serviceId, serviceProviderId) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_SESSION_KEEP_ALIVE_COMMAND_ID, "uuu", userId, serviceId, serviceProviderId); + +/** @brief Command description for GetAlerts + * + * Command: GetAlerts + * @param alertsCount AlertCount + * @param alertStructures AlertStructure [] + * @param alertStructuresLen int + */ +#define emberAfFillCommandAppliance \ + Events and AlertClusterGetAlerts(alertsCount, alertStructures, alertStructuresLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_GET_ALERTS_COMMAND_ID, "ub", alertsCount, alertStructures, alertStructuresLen); + +/** @brief Command description for AlertsNotification + * + * Command: AlertsNotification + * @param alertsCount AlertCount + * @param alertStructures AlertStructure [] + * @param alertStructuresLen int + */ +#define emberAfFillCommandAppliance \ + Events and AlertClusterAlertsNotification(alertsCount, alertStructures, alertStructuresLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_ALERTS_NOTIFICATION_COMMAND_ID, "ub", alertsCount, alertStructures, alertStructuresLen); + +/** @brief Command description for EventsNotification + * + * Command: EventsNotification + * @param eventHeader INT8U + * @param eventId EventIdentification + */ +#define emberAfFillCommandAppliance \ + Events and AlertClusterEventsNotification(eventHeader, eventId) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_EVENTS_NOTIFICATION_COMMAND_ID, "uu", eventHeader, eventId); + +/** @brief Command description for LogNotification + * + * Command: LogNotification + * @param timeStamp TIME_OF_DAY + * @param logId INT32U + * @param logId INT32U + * @param logLength INT32U + * @param logPayload INT8U [] + * @param logPayloadLen int + */ +#define emberAfFillCommandAppliance \ + StatisticsClusterLogNotification(timeStamp, logId, logId, logLength, logPayload, logPayloadLen) emberAfFillExternalBuffer( \ + mask, \ + \ + ZCL_LOG_NOTIFICATION_COMMAND_ID, "uuuub", timeStamp, logId, logId, logLength, logPayload, logPayloadLen); + +/** @brief Command description for LogQueueRequest + * + * Command: LogQueueRequest + * @param timeStamp TIME_OF_DAY + * @param logId INT32U + * @param logLength INT32U + * @param logPayload INT8U [] + * @param logPayloadLen int + */ +#define emberAfFillCommandAppliance \ + StatisticsClusterLogQueueRequest(timeStamp, logId, logLength, logPayload, logPayloadLen) emberAfFillExternalBuffer( \ + mask, \ + \ + ZCL_LOG_QUEUE_REQUEST_COMMAND_ID, "uuub", timeStamp, logId, logLength, logPayload, logPayloadLen); + +/** @brief Command description for LogQueueResponse + * + * Command: LogQueueResponse + * @param logQueueSize INT8U + * @param logIds INT32U [] + * @param logIdsLen int + */ +#define emberAfFillCommandAppliance \ + StatisticsClusterLogQueueResponse(logQueueSize, logIds, logIdsLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_LOG_QUEUE_RESPONSE_COMMAND_ID, "ub", logQueueSize, logIds, logIdsLen); + +/** @brief Command description for StatisticsAvailable + * + * Command: StatisticsAvailable + * @param logQueueSize INT8U + * @param logIds INT32U [] + * @param logIdsLen int + */ +#define emberAfFillCommandAppliance \ + StatisticsClusterStatisticsAvailable(logQueueSize, logIds, logIdsLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_STATISTICS_AVAILABLE_COMMAND_ID, "ub", logQueueSize, logIds, logIdsLen); + +/** @brief Command description for GetProfileInfoCommand + * + * Command: GetProfileInfoCommand + * @param profileCount INT8U + * @param profileIntervalPeriod ENUM8 + * @param maxNumberOfIntervals INT8U + * @param listOfAttributes INT16U [] + * @param listOfAttributesLen int + */ +#define emberAfFillCommandElectrical \ + MeasurementClusterGetProfileInfoCommand(profileCount, profileIntervalPeriod, maxNumberOfIntervals, listOfAttributes, \ + listOfAttributesLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_GET_PROFILE_INFO_COMMAND_COMMAND_ID, "uuub", profileCount, profileIntervalPeriod, \ + maxNumberOfIntervals, listOfAttributes, listOfAttributesLen); + +/** @brief Command description for GetMeasurementProfileResponseCommand + * + * Command: GetMeasurementProfileResponseCommand + * @param startTime INT32U + * @param attributeId INT16U + * @param status ENUM8 + * @param startTime INT32U + * @param profileIntervalPeriod ENUM8 + * @param numberOfIntervals ENUM8 + * @param numberOfIntervalsDelivered INT8U + * @param attributeId INT16U + * @param intervals INT8U [] + * @param intervalsLen int + */ +#define emberAfFillCommandElectrical \ + MeasurementClusterGetMeasurementProfileResponseCommand(startTime, attributeId, status, startTime, profileIntervalPeriod, \ + numberOfIntervals, numberOfIntervalsDelivered, attributeId, intervals, \ + intervalsLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_GET_MEASUREMENT_PROFILE_RESPONSE_COMMAND_COMMAND_ID, "uuuuuuuub", startTime, attributeId, \ + status, startTime, profileIntervalPeriod, numberOfIntervals, numberOfIntervalsDelivered, \ + attributeId, intervals, intervalsLen); + +/** @brief Command description for ScanRequest + * + * Command: ScanRequest + * @param transaction INT32U + * @param zigbeeInformation ZigbeeInformation + * @param zllInformation ZllInformation + */ +#define emberAfFillCommandZLL \ + CommissioningClusterScanRequest(transaction, zigbeeInformation, zllInformation) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_SCAN_REQUEST_COMMAND_ID, "uuu", transaction, zigbeeInformation, zllInformation); + +/** @brief Command description for ScanResponse + * + * Command: ScanResponse + * @param transaction INT32U + * @param rssiCorrection INT8U + * @param zigbeeInformation ZigbeeInformation + * @param zllInformation ZllInformation + * @param keyBitmask KeyBitmask + * @param responseId INT32U + * @param extendedPanId IEEE_ADDRESS + * @param networkUpdateId INT8U + * @param logicalChannel INT8U + * @param panId INT16U + * @param networkAddress INT16U + * @param numberOfSubDevices INT8U + * @param totalGroupIds INT8U + * @param endpointId INT8U + * @param profileId INT16U + * @param deviceId INT16U + * @param version INT8U + * @param groupIdCount INT8U + */ +#define emberAfFillCommandZLL \ + CommissioningClusterScanResponse(transaction, rssiCorrection, zigbeeInformation, zllInformation, keyBitmask, responseId, \ + extendedPanId, networkUpdateId, logicalChannel, panId, networkAddress, numberOfSubDevices, \ + totalGroupIds, endpointId, profileId, deviceId, version, groupIdCount) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_SCAN_RESPONSE_COMMAND_ID, "uuuuuuuuuuuuuuuuuu", transaction, rssiCorrection, \ + zigbeeInformation, zllInformation, keyBitmask, responseId, extendedPanId, networkUpdateId, \ + logicalChannel, panId, networkAddress, numberOfSubDevices, totalGroupIds, endpointId, profileId, \ + deviceId, version, groupIdCount); + +/** @brief Command description for DeviceInformationRequest + * + * Command: DeviceInformationRequest + * @param transaction INT32U + * @param startIndex INT8U + */ +#define emberAfFillCommandZLL \ + CommissioningClusterDeviceInformationRequest(transaction, startIndex) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_DEVICE_INFORMATION_REQUEST_COMMAND_ID, "uu", transaction, startIndex); + +/** @brief Command description for DeviceInformationResponse + * + * Command: DeviceInformationResponse + * @param transaction INT32U + * @param numberOfSubDevices INT8U + * @param startIndex INT8U + * @param deviceInformationRecordCount INT8U + * @param deviceInformationRecordList DeviceInformationRecord [] + * @param deviceInformationRecordListLen int + */ +#define emberAfFillCommandZLL \ + CommissioningClusterDeviceInformationResponse(transaction, numberOfSubDevices, startIndex, deviceInformationRecordCount, \ + deviceInformationRecordList, deviceInformationRecordListLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_DEVICE_INFORMATION_RESPONSE_COMMAND_ID, "uuuub", transaction, numberOfSubDevices, \ + startIndex, deviceInformationRecordCount, deviceInformationRecordList, \ + deviceInformationRecordListLen); + +/** @brief Command description for IdentifyRequest + * + * Command: IdentifyRequest + * @param transaction INT32U + * @param identifyDuration INT16U + */ +#define emberAfFillCommandZLL \ + CommissioningClusterIdentifyRequest(transaction, identifyDuration) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_IDENTIFY_REQUEST_COMMAND_ID, "uu", transaction, identifyDuration); + +/** @brief Command description for ResetToFactoryNewRequest + * + * Command: ResetToFactoryNewRequest + * @param transaction INT32U + */ +#define emberAfFillCommandZLL \ + CommissioningClusterResetToFactoryNewRequest(transaction) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_RESET_TO_FACTORY_NEW_REQUEST_COMMAND_ID, "u", transaction); + +/** @brief Command description for NetworkStartRequest + * + * Command: NetworkStartRequest + * @param transaction INT32U + * @param extendedPanId IEEE_ADDRESS + * @param keyIndex KeyIndex + * @param encryptedNetworkKey SECURITY_KEY + * @param logicalChannel INT8U + * @param panId INT16U + * @param networkAddress INT16U + * @param groupIdentifiersBegin INT16U + * @param groupIdentifiersEnd INT16U + * @param freeNetworkAddressRangeBegin INT16U + * @param freeNetworkAddressRangeEnd INT16U + * @param freeGroupIdentifierRangeBegin INT16U + * @param freeGroupIdentifierRangeEnd INT16U + * @param initiatorIeeeAddress IEEE_ADDRESS + * @param initiatorNetworkAddress INT16U + */ +#define emberAfFillCommandZLL \ + CommissioningClusterNetworkStartRequest( \ + transaction, extendedPanId, keyIndex, encryptedNetworkKey, logicalChannel, panId, networkAddress, groupIdentifiersBegin, \ + groupIdentifiersEnd, freeNetworkAddressRangeBegin, freeNetworkAddressRangeEnd, freeGroupIdentifierRangeBegin, \ + freeGroupIdentifierRangeEnd, initiatorIeeeAddress, initiatorNetworkAddress) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_NETWORK_START_REQUEST_COMMAND_ID, "uuuuuuuuuuuuuuu", transaction, extendedPanId, keyIndex, \ + encryptedNetworkKey, logicalChannel, panId, networkAddress, groupIdentifiersBegin, \ + groupIdentifiersEnd, freeNetworkAddressRangeBegin, freeNetworkAddressRangeEnd, \ + freeGroupIdentifierRangeBegin, freeGroupIdentifierRangeEnd, initiatorIeeeAddress, \ + initiatorNetworkAddress); + +/** @brief Command description for NetworkStartResponse + * + * Command: NetworkStartResponse + * @param transaction INT32U + * @param status ZllStatus + * @param extendedPanId IEEE_ADDRESS + * @param networkUpdateId INT8U + * @param logicalChannel INT8U + * @param panId INT16U + */ +#define emberAfFillCommandZLL \ + CommissioningClusterNetworkStartResponse(transaction, status, extendedPanId, networkUpdateId, logicalChannel, panId) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_NETWORK_START_RESPONSE_COMMAND_ID, "uuuuuu", transaction, status, extendedPanId, \ + networkUpdateId, logicalChannel, panId); + +/** @brief Command description for NetworkJoinRouterRequest + * + * Command: NetworkJoinRouterRequest + * @param transaction INT32U + * @param extendedPanId IEEE_ADDRESS + * @param keyIndex KeyIndex + * @param encryptedNetworkKey SECURITY_KEY + * @param networkUpdateId INT8U + * @param logicalChannel INT8U + * @param panId INT16U + * @param networkAddress INT16U + * @param groupIdentifiersBegin INT16U + * @param groupIdentifiersEnd INT16U + * @param freeNetworkAddressRangeBegin INT16U + * @param freeNetworkAddressRangeEnd INT16U + * @param freeGroupIdentifierRangeBegin INT16U + * @param freeGroupIdentifierRangeEnd INT16U + */ +#define emberAfFillCommandZLL \ + CommissioningClusterNetworkJoinRouterRequest(transaction, extendedPanId, keyIndex, encryptedNetworkKey, networkUpdateId, \ + logicalChannel, panId, networkAddress, groupIdentifiersBegin, \ + groupIdentifiersEnd, freeNetworkAddressRangeBegin, freeNetworkAddressRangeEnd, \ + freeGroupIdentifierRangeBegin, freeGroupIdentifierRangeEnd) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_NETWORK_JOIN_ROUTER_REQUEST_COMMAND_ID, "uuuuuuuuuuuuuu", transaction, extendedPanId, \ + keyIndex, encryptedNetworkKey, networkUpdateId, logicalChannel, panId, networkAddress, \ + groupIdentifiersBegin, groupIdentifiersEnd, freeNetworkAddressRangeBegin, \ + freeNetworkAddressRangeEnd, freeGroupIdentifierRangeBegin, freeGroupIdentifierRangeEnd); + +/** @brief Command description for NetworkJoinRouterResponse + * + * Command: NetworkJoinRouterResponse + * @param transaction INT32U + * @param status ZllStatus + */ +#define emberAfFillCommandZLL \ + CommissioningClusterNetworkJoinRouterResponse(transaction, status) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_NETWORK_JOIN_ROUTER_RESPONSE_COMMAND_ID, "uu", transaction, status); + +/** @brief Command description for NetworkJoinEndDeviceRequest + * + * Command: NetworkJoinEndDeviceRequest + * @param transaction INT32U + * @param extendedPanId IEEE_ADDRESS + * @param keyIndex KeyIndex + * @param encryptedNetworkKey SECURITY_KEY + * @param networkUpdateId INT8U + * @param logicalChannel INT8U + * @param panId INT16U + * @param networkAddress INT16U + * @param groupIdentifiersBegin INT16U + * @param groupIdentifiersEnd INT16U + * @param freeNetworkAddressRangeBegin INT16U + * @param freeNetworkAddressRangeEnd INT16U + * @param freeGroupIdentifierRangeBegin INT16U + * @param freeGroupIdentifierRangeEnd INT16U + */ +#define emberAfFillCommandZLL \ + CommissioningClusterNetworkJoinEndDeviceRequest(transaction, extendedPanId, keyIndex, encryptedNetworkKey, networkUpdateId, \ + logicalChannel, panId, networkAddress, groupIdentifiersBegin, \ + groupIdentifiersEnd, freeNetworkAddressRangeBegin, freeNetworkAddressRangeEnd, \ + freeGroupIdentifierRangeBegin, freeGroupIdentifierRangeEnd) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_NETWORK_JOIN_END_DEVICE_REQUEST_COMMAND_ID, "uuuuuuuuuuuuuu", transaction, extendedPanId, \ + keyIndex, encryptedNetworkKey, networkUpdateId, logicalChannel, panId, networkAddress, \ + groupIdentifiersBegin, groupIdentifiersEnd, freeNetworkAddressRangeBegin, \ + freeNetworkAddressRangeEnd, freeGroupIdentifierRangeBegin, freeGroupIdentifierRangeEnd); + +/** @brief Command description for NetworkJoinEndDeviceResponse + * + * Command: NetworkJoinEndDeviceResponse + * @param transaction INT32U + * @param status ZllStatus + */ +#define emberAfFillCommandZLL \ + CommissioningClusterNetworkJoinEndDeviceResponse(transaction, status) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_NETWORK_JOIN_END_DEVICE_RESPONSE_COMMAND_ID, "uu", transaction, status); + +/** @brief Command description for NetworkUpdateRequest + * + * Command: NetworkUpdateRequest + * @param transaction INT32U + * @param extendedPanId IEEE_ADDRESS + * @param networkUpdateId INT8U + * @param logicalChannel INT8U + * @param panId INT16U + * @param networkAddress INT16U + */ +#define emberAfFillCommandZLL \ + CommissioningClusterNetworkUpdateRequest(transaction, extendedPanId, networkUpdateId, logicalChannel, panId, networkAddress) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_NETWORK_UPDATE_REQUEST_COMMAND_ID, "uuuuuu", transaction, extendedPanId, networkUpdateId, \ + logicalChannel, panId, networkAddress); + +/** @brief Command description for EndpointInformation + * + * Command: EndpointInformation + * @param ieeeAddress IEEE_ADDRESS + * @param networkAddress INT16U + * @param endpointId INT8U + * @param profileId INT16U + * @param deviceId INT16U + * @param version INT8U + */ +#define emberAfFillCommandZLL \ + CommissioningClusterEndpointInformation(ieeeAddress, networkAddress, endpointId, profileId, deviceId, version) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_ENDPOINT_INFORMATION_COMMAND_ID, "uuuuuu", ieeeAddress, networkAddress, endpointId, \ + profileId, deviceId, version); + +/** @brief Command description for GetGroupIdentifiersRequest + * + * Command: GetGroupIdentifiersRequest + * @param startIndex INT8U + * @param total INT8U + * @param startIndex INT8U + * @param count INT8U + * @param groupInformationRecordList GroupInformationRecord [] + * @param groupInformationRecordListLen int + */ +#define emberAfFillCommandZLL \ + CommissioningClusterGetGroupIdentifiersRequest(startIndex, total, startIndex, count, groupInformationRecordList, \ + groupInformationRecordListLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_GET_GROUP_IDENTIFIERS_REQUEST_COMMAND_ID, "uuuub", startIndex, total, startIndex, count, \ + groupInformationRecordList, groupInformationRecordListLen); + +/** @brief Command description for GetEndpointListRequest + * + * Command: GetEndpointListRequest + * @param startIndex INT8U + * @param total INT8U + * @param startIndex INT8U + * @param count INT8U + * @param endpointInformationRecordList EndpointInformationRecord [] + * @param endpointInformationRecordListLen int + */ +#define emberAfFillCommandZLL \ + CommissioningClusterGetEndpointListRequest(startIndex, total, startIndex, count, endpointInformationRecordList, \ + endpointInformationRecordListLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_GET_ENDPOINT_LIST_REQUEST_COMMAND_ID, "uuuub", startIndex, total, startIndex, count, \ + endpointInformationRecordList, endpointInformationRecordListLen); + +/** @brief Command description for CommandOne + * + * Command: CommandOne + * @param argOne INT8U + * @param argOne INT8U + */ +#define emberAfFillCommandSample \ + Mfg Specific ClusterClusterCommandOne(argOne, argOne) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_COMMAND_ONE_COMMAND_ID, "uu", argOne, argOne); + +/** @brief Command description for SetToken + * + * Command: SetToken + * @param token INT16U + * @param token INT16U + * @param data OCTET_STRING + * @param data OCTET_STRING + */ +#define emberAfFillCommandConfiguration \ + ClusterClusterSetToken(token, token, data, data) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_SET_TOKEN_COMMAND_ID, "uuuu", token, token, data, data); + +/** @brief Command description for LockTokens + * + * Command: LockTokens + */ +#define emberAfFillCommandConfiguration \ + ClusterClusterLockTokens() emberAfFillExternalBuffer(mask, \ + \ + ZCL_LOCK_TOKENS_COMMAND_ID, "", ); + +/** @brief Command description for ReadTokens + * + * Command: ReadTokens + * @param token INT16U + */ +#define emberAfFillCommandConfiguration \ + ClusterClusterReadTokens(token) emberAfFillExternalBuffer(mask, \ + \ + ZCL_READ_TOKENS_COMMAND_ID, "u", token); + +/** @brief Command description for UnlockTokens + * + * Command: UnlockTokens + * @param data OCTET_STRING + */ +#define emberAfFillCommandConfiguration \ + ClusterClusterUnlockTokens(data) emberAfFillExternalBuffer(mask, \ + \ + ZCL_UNLOCK_TOKENS_COMMAND_ID, "u", data); + +/** @brief Command description for stream + * + * Command: stream + * @param channel INT8U + * @param power INT8S + * @param time INT16U + */ +#define emberAfFillCommandMFGLIB \ + ClusterClusterstream(channel, power, time) emberAfFillExternalBuffer(mask, \ + \ + ZCL_STREAM_COMMAND_ID, "uuu", channel, power, time); + +/** @brief Command description for tone + * + * Command: tone + * @param channel INT8U + * @param power INT8S + * @param time INT16U + */ +#define emberAfFillCommandMFGLIB \ + ClusterClustertone(channel, power, time) emberAfFillExternalBuffer(mask, \ + \ + ZCL_TONE_COMMAND_ID, "uuu", channel, power, time); + +/** @brief Command description for rxMode + * + * Command: rxMode + * @param channel INT8U + * @param power INT8S + * @param time INT16U + */ +#define emberAfFillCommandMFGLIB \ + ClusterClusterrxMode(channel, power, time) emberAfFillExternalBuffer(mask, \ + \ + ZCL_RX_MODE_COMMAND_ID, "uuu", channel, power, time); + +/** @brief Command description for EnableApsLinkKeyAuthorization + * + * Command: EnableApsLinkKeyAuthorization + * @param numberExemptClusters INT8U + * @param clusterId CLUSTER_ID + * @param clusterId CLUSTER_ID [] + * @param clusterIdLen int + * @param apsLinkKeyAuthStatus BOOLEAN + */ +#define emberAfFillCommandSL \ + Works With All HubsClusterEnableApsLinkKeyAuthorization(numberExemptClusters, clusterId, clusterId, clusterIdLen, \ + apsLinkKeyAuthStatus) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_ENABLE_APS_LINK_KEY_AUTHORIZATION_COMMAND_ID, "uubu", numberExemptClusters, clusterId, \ + clusterId, clusterIdLen, apsLinkKeyAuthStatus); + +/** @brief Command description for DisableApsLinkKeyAuthorization + * + * Command: DisableApsLinkKeyAuthorization + * @param numberExemptClusters INT8U + * @param powerNotificationReason WwahPowerNotificationReason + * @param clusterId CLUSTER_ID [] + * @param clusterIdLen int + * @param manufacturerId INT16U + * @param manufacturerReasonLength INT8U + * @param manufacturerReason INT8U [] + * @param manufacturerReasonLen int + */ +#define emberAfFillCommandSL \ + Works With All HubsClusterDisableApsLinkKeyAuthorization(numberExemptClusters, powerNotificationReason, clusterId, \ + clusterIdLen, manufacturerId, manufacturerReasonLength, \ + manufacturerReason, manufacturerReasonLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_DISABLE_APS_LINK_KEY_AUTHORIZATION_COMMAND_ID, "uubuub", numberExemptClusters, \ + powerNotificationReason, clusterId, clusterIdLen, manufacturerId, manufacturerReasonLength, \ + manufacturerReason, manufacturerReasonLen); + +/** @brief Command description for ApsLinkKeyAuthorizationQuery + * + * Command: ApsLinkKeyAuthorizationQuery + * @param clusterId CLUSTER_ID + * @param powerNotificationReason WwahPowerNotificationReason + * @param manufacturerId INT16U + * @param manufacturerReasonLength INT8U + * @param manufacturerReason INT8U [] + * @param manufacturerReasonLen int + */ +#define emberAfFillCommandSL \ + Works With All HubsClusterApsLinkKeyAuthorizationQuery(clusterId, powerNotificationReason, manufacturerId, \ + manufacturerReasonLength, manufacturerReason, manufacturerReasonLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_APS_LINK_KEY_AUTHORIZATION_QUERY_COMMAND_ID, "uuuub", clusterId, powerNotificationReason, \ + manufacturerId, manufacturerReasonLength, manufacturerReason, manufacturerReasonLen); + +/** @brief Command description for RequestNewApsLinkKey + * + * Command: RequestNewApsLinkKey + * @param deviceEui64 IEEE_ADDRESS + * @param deviceShort INT16U + */ +#define emberAfFillCommandSL \ + Works With All HubsClusterRequestNewApsLinkKey(deviceEui64, deviceShort) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_REQUEST_NEW_APS_LINK_KEY_COMMAND_ID, "uu", deviceEui64, deviceShort); + +/** @brief Command description for EnableWwahAppEventRetryAlgorithm + * + * Command: EnableWwahAppEventRetryAlgorithm + * @param firstBackoffTimeSeconds INT8U + * @param numberExemptClusters INT8U + * @param backoffSeqCommonRatio INT8U + * @param clusterId CLUSTER_ID [] + * @param clusterIdLen int + * @param maxBackoffTimeSeconds INT32U + * @param maxRedeliveryAttempts INT8U + */ +#define emberAfFillCommandSL \ + Works With All HubsClusterEnableWwahAppEventRetryAlgorithm( \ + firstBackoffTimeSeconds, numberExemptClusters, backoffSeqCommonRatio, clusterId, clusterIdLen, maxBackoffTimeSeconds, \ + maxRedeliveryAttempts) emberAfFillExternalBuffer(mask, \ + \ + ZCL_ENABLE_WWAH_APP_EVENT_RETRY_ALGORITHM_COMMAND_ID, "uuubuu", \ + firstBackoffTimeSeconds, numberExemptClusters, backoffSeqCommonRatio, \ + clusterId, clusterIdLen, maxBackoffTimeSeconds, maxRedeliveryAttempts); + +/** @brief Command description for DisableWwahAppEventRetryAlgorithm + * + * Command: DisableWwahAppEventRetryAlgorithm + * @param currentPowerMode INT32U + * @param availablePowerSources INT32U + * @param currentPowerSource INT32U + * @param currentPowerSourceLevel INT32U + */ +#define emberAfFillCommandSL \ + Works With All HubsClusterDisableWwahAppEventRetryAlgorithm(currentPowerMode, availablePowerSources, currentPowerSource, \ + currentPowerSourceLevel) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_DISABLE_WWAH_APP_EVENT_RETRY_ALGORITHM_COMMAND_ID, "uuuu", currentPowerMode, \ + availablePowerSources, currentPowerSource, currentPowerSourceLevel); + +/** @brief Command description for RequestTime + * + * Command: RequestTime + * @param debugReportId INT8U + * @param debugReportSize INT32U + */ +#define emberAfFillCommandSL \ + Works With All HubsClusterRequestTime(debugReportId, debugReportSize) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_REQUEST_TIME_COMMAND_ID, "uu", debugReportId, debugReportSize); + +/** @brief Command description for EnableWwahRejoinAlgorithm + * + * Command: EnableWwahRejoinAlgorithm + * @param fastRejoinTimeoutSeconds INT16U + * @param debugReportId INT8U + * @param durationBetweenRejoinsSeconds INT16U + * @param debugReportData INT8U [] + * @param debugReportDataLen int + * @param fastRejoinFirstBackoffSeconds INT16U + * @param maxBackoffTimeSeconds INT16U + * @param maxBackoffIterations INT16U + */ +#define emberAfFillCommandSL \ + Works With All HubsClusterEnableWwahRejoinAlgorithm(fastRejoinTimeoutSeconds, debugReportId, durationBetweenRejoinsSeconds, \ + debugReportData, debugReportDataLen, fastRejoinFirstBackoffSeconds, \ + maxBackoffTimeSeconds, maxBackoffIterations) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_ENABLE_WWAH_REJOIN_ALGORITHM_COMMAND_ID, "uuubuuu", fastRejoinTimeoutSeconds, debugReportId, \ + durationBetweenRejoinsSeconds, debugReportData, debugReportDataLen, \ + fastRejoinFirstBackoffSeconds, maxBackoffTimeSeconds, maxBackoffIterations); + +/** @brief Command description for DisableWwahRejoinAlgorithm + * + * Command: DisableWwahRejoinAlgorithm + * @param numberOfClusters INT8U + * @param clusterId CLUSTER_ID [] + * @param clusterIdLen int + */ +#define emberAfFillCommandSL \ + Works With All HubsClusterDisableWwahRejoinAlgorithm(numberOfClusters, clusterId, clusterIdLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_DISABLE_WWAH_REJOIN_ALGORITHM_COMMAND_ID, "ub", numberOfClusters, clusterId, clusterIdLen); + +/** @brief Command description for SetIasZoneEnrollmentMethod + * + * Command: SetIasZoneEnrollmentMethod + * @param enrollmentMode WwahIasZoneEnrollmentMode + * @param numberOfBeacons INT8U + * @param beacon WwahBeaconSurvey [] + * @param beaconLen int + */ +#define emberAfFillCommandSL \ + Works With All HubsClusterSetIasZoneEnrollmentMethod(enrollmentMode, numberOfBeacons, beacon, beaconLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_SET_IAS_ZONE_ENROLLMENT_METHOD_COMMAND_ID, "uub", enrollmentMode, numberOfBeacons, beacon, \ + beaconLen); + +/** @brief Command description for ClearBindingTable + * + * Command: ClearBindingTable + */ +#define emberAfFillCommandSL \ + Works With All HubsClusterClearBindingTable() emberAfFillExternalBuffer(mask, \ + \ + ZCL_CLEAR_BINDING_TABLE_COMMAND_ID, "", ); + +/** @brief Command description for EnablePeriodicRouterCheckIns + * + * Command: EnablePeriodicRouterCheckIns + * @param checkInInterval INT16U + */ +#define emberAfFillCommandSL \ + Works With All HubsClusterEnablePeriodicRouterCheckIns(checkInInterval) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_ENABLE_PERIODIC_ROUTER_CHECK_INS_COMMAND_ID, "u", checkInInterval); + +/** @brief Command description for DisablePeriodicRouterCheckIns + * + * Command: DisablePeriodicRouterCheckIns + */ +#define emberAfFillCommandSL \ + Works With All HubsClusterDisablePeriodicRouterCheckIns() \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_DISABLE_PERIODIC_ROUTER_CHECK_INS_COMMAND_ID, "", ); + +/** @brief Command description for SetMacPollFailureWaitTime + * + * Command: SetMacPollFailureWaitTime + * @param waitTime INT8U + */ +#define emberAfFillCommandSL \ + Works With All HubsClusterSetMacPollFailureWaitTime(waitTime) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_SET_MAC_POLL_FAILURE_WAIT_TIME_COMMAND_ID, "u", waitTime); + +/** @brief Command description for SetPendingNetworkUpdate + * + * Command: SetPendingNetworkUpdate + * @param channel INT8U + * @param panId INT16U + */ +#define emberAfFillCommandSL \ + Works With All HubsClusterSetPendingNetworkUpdate(channel, panId) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_SET_PENDING_NETWORK_UPDATE_COMMAND_ID, "uu", channel, panId); + +/** @brief Command description for RequireApsAcksOnUnicasts + * + * Command: RequireApsAcksOnUnicasts + * @param numberExemptClusters INT8U + * @param clusterId CLUSTER_ID [] + * @param clusterIdLen int + */ +#define emberAfFillCommandSL \ + Works With All HubsClusterRequireApsAcksOnUnicasts(numberExemptClusters, clusterId, clusterIdLen) emberAfFillExternalBuffer( \ + mask, \ + \ + ZCL_REQUIRE_APS_ACKS_ON_UNICASTS_COMMAND_ID, "ub", numberExemptClusters, clusterId, clusterIdLen); + +/** @brief Command description for RemoveApsAcksOnUnicastsRequirement + * + * Command: RemoveApsAcksOnUnicastsRequirement + */ +#define emberAfFillCommandSL \ + Works With All HubsClusterRemoveApsAcksOnUnicastsRequirement() \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_REMOVE_APS_ACKS_ON_UNICASTS_REQUIREMENT_COMMAND_ID, "", ); + +/** @brief Command description for ApsAckRequirementQuery + * + * Command: ApsAckRequirementQuery + */ +#define emberAfFillCommandSL \ + Works With All HubsClusterApsAckRequirementQuery() emberAfFillExternalBuffer(mask, \ + \ + ZCL_APS_ACK_REQUIREMENT_QUERY_COMMAND_ID, "", ); + +/** @brief Command description for DebugReportQuery + * + * Command: DebugReportQuery + * @param debugReportId INT8U + */ +#define emberAfFillCommandSL \ + Works With All HubsClusterDebugReportQuery(debugReportId) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_DEBUG_REPORT_QUERY_COMMAND_ID, "u", debugReportId); + +/** @brief Command description for SurveyBeacons + * + * Command: SurveyBeacons + * @param standardBeacons BOOLEAN + */ +#define emberAfFillCommandSL \ + Works With All HubsClusterSurveyBeacons(standardBeacons) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_SURVEY_BEACONS_COMMAND_ID, "u", standardBeacons); + +/** @brief Command description for DisableOtaDowngrades + * + * Command: DisableOtaDowngrades + */ +#define emberAfFillCommandSL \ + Works With All HubsClusterDisableOtaDowngrades() emberAfFillExternalBuffer(mask, \ + \ + ZCL_DISABLE_OTA_DOWNGRADES_COMMAND_ID, "", ); + +/** @brief Command description for DisableMgmtLeaveWithoutRejoin + * + * Command: DisableMgmtLeaveWithoutRejoin + */ +#define emberAfFillCommandSL \ + Works With All HubsClusterDisableMgmtLeaveWithoutRejoin() \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_DISABLE_MGMT_LEAVE_WITHOUT_REJOIN_COMMAND_ID, "", ); + +/** @brief Command description for DisableTouchlinkInterpanMessageSupport + * + * Command: DisableTouchlinkInterpanMessageSupport + */ +#define emberAfFillCommandSL \ + Works With All HubsClusterDisableTouchlinkInterpanMessageSupport() \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_DISABLE_TOUCHLINK_INTERPAN_MESSAGE_SUPPORT_COMMAND_ID, "", ); + +/** @brief Command description for EnableWwahParentClassification + * + * Command: EnableWwahParentClassification + */ +#define emberAfFillCommandSL \ + Works With All HubsClusterEnableWwahParentClassification() \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_ENABLE_WWAH_PARENT_CLASSIFICATION_COMMAND_ID, "", ); + +/** @brief Command description for DisableWwahParentClassification + * + * Command: DisableWwahParentClassification + */ +#define emberAfFillCommandSL \ + Works With All HubsClusterDisableWwahParentClassification() \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_DISABLE_WWAH_PARENT_CLASSIFICATION_COMMAND_ID, "", ); + +/** @brief Command description for EnableTcSecurityOnNtwkKeyRotation + * + * Command: EnableTcSecurityOnNtwkKeyRotation + */ +#define emberAfFillCommandSL \ + Works With All HubsClusterEnableTcSecurityOnNtwkKeyRotation() \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_ENABLE_TC_SECURITY_ON_NTWK_KEY_ROTATION_COMMAND_ID, "", ); + +/** @brief Command description for EnableWwahBadParentRecovery + * + * Command: EnableWwahBadParentRecovery + */ +#define emberAfFillCommandSL \ + Works With All HubsClusterEnableWwahBadParentRecovery() \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_ENABLE_WWAH_BAD_PARENT_RECOVERY_COMMAND_ID, "", ); + +/** @brief Command description for DisableWwahBadParentRecovery + * + * Command: DisableWwahBadParentRecovery + */ +#define emberAfFillCommandSL \ + Works With All HubsClusterDisableWwahBadParentRecovery() \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_DISABLE_WWAH_BAD_PARENT_RECOVERY_COMMAND_ID, "", ); + +/** @brief Command description for EnableConfigurationMode + * + * Command: EnableConfigurationMode + */ +#define emberAfFillCommandSL \ + Works With All HubsClusterEnableConfigurationMode() emberAfFillExternalBuffer(mask, \ + \ + ZCL_ENABLE_CONFIGURATION_MODE_COMMAND_ID, "", ); + +/** @brief Command description for DisableConfigurationMode + * + * Command: DisableConfigurationMode + */ +#define emberAfFillCommandSL \ + Works With All HubsClusterDisableConfigurationMode() \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_DISABLE_CONFIGURATION_MODE_COMMAND_ID, "", ); + +/** @brief Command description for UseTrustCenterForClusterServer + * + * Command: UseTrustCenterForClusterServer + * @param numberOfClusters INT8U + * @param clusterId CLUSTER_ID [] + * @param clusterIdLen int + */ +#define emberAfFillCommandSL \ + Works With All HubsClusterUseTrustCenterForClusterServer(numberOfClusters, clusterId, clusterIdLen) emberAfFillExternalBuffer( \ + mask, \ + \ + ZCL_USE_TRUST_CENTER_FOR_CLUSTER_SERVER_COMMAND_ID, "ub", numberOfClusters, clusterId, clusterIdLen); + +/** @brief Command description for TrustCenterForClusterServerQuery + * + * Command: TrustCenterForClusterServerQuery + */ +#define emberAfFillCommandSL \ + Works With All HubsClusterTrustCenterForClusterServerQuery() \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_TRUST_CENTER_FOR_CLUSTER_SERVER_QUERY_COMMAND_ID, "", ); + +/** @brief Command description for UseTrustCenterForClusterServerResponse + * + * Command: UseTrustCenterForClusterServerResponse + * @param status Status + * @param clusterStatusLength INT8U + * @param clusterStatus WwahClusterStatusToUseTC [] + * @param clusterStatusLen int + */ +#define emberAfFillCommandSL \ + Works With All HubsClusterUseTrustCenterForClusterServerResponse(status, clusterStatusLength, clusterStatus, clusterStatusLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_USE_TRUST_CENTER_FOR_CLUSTER_SERVER_RESPONSE_COMMAND_ID, "uub", status, clusterStatusLength, \ + clusterStatus, clusterStatusLen); diff --git a/examples/lighting-app/lighting-common/gen/cluster-id.h b/examples/lighting-app/lighting-common/gen/cluster-id.h index 7462d4e9cf279b..c341b079be401d 100644 --- a/examples/lighting-app/lighting-common/gen/cluster-id.h +++ b/examples/lighting-app/lighting-common/gen/cluster-id.h @@ -1,4 +1,5 @@ -/** + +/* * * Copyright (c) 2020 Project CHIP Authors * @@ -15,160 +16,332 @@ * 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 SILABS_EMBER_AF_CLUSTER_ID -#define SILABS_EMBER_AF_CLUSTER_ID - -// Cluster domain specification levels: -// * General: zcl-7.0-07-5123-07 -// * Lighting & Occupancy: l&o-1.0-15-0014-04 -// * HA: ha-1.2.1-05-3520-30 -// * Closures: zcl-6.0-15-02018-001 -// * HVAC: zcl-6.0-15-02018-001 -// * Lighting: zcl6-errata-14-0129-15 -// * Measurement & Sensing: zcl-6.0-15-02018-001 -// * Security & Safety: zcl-6.0-15-02018-001 -// * Home Automation: UNKNOWN -// * CBA: cba-1.0-05-3516-12 -// * SE: se-1.2b-15-0131-02 -// * ZLL: zll-1.0-11-0037-10 -// * Telecom Applications: ta-1.0-07-5307-07 -// * Protocol Interfaces: ta-1.0-07-5307-07 -// * Telecommunication: ta-1.0-07-5307-07 -// * Financial: ta-1.0-07-5307-07 -// * Ember: UNKNOWN -// * HC: hc-1.0-07-5360-15 -// * GP: gp-1.0a-09-5499-26 -// * LO: UNKNOWN -// * Works With All Hubs: UNKNOWN -// * WWAH: UNKNOWN -#define ZCL_BASIC_CLUSTER_ID 0x0000 -#define ZCL_POWER_CONFIG_CLUSTER_ID 0x0001 -#define ZCL_DEVICE_TEMP_CLUSTER_ID 0x0002 -#define ZCL_IDENTIFY_CLUSTER_ID 0x0003 -#define ZCL_GROUPS_CLUSTER_ID 0x0004 -#define ZCL_SCENES_CLUSTER_ID 0x0005 -#define ZCL_ON_OFF_CLUSTER_ID 0x0006 -#define ZCL_ON_OFF_SWITCH_CONFIG_CLUSTER_ID 0x0007 -#define ZCL_LEVEL_CONTROL_CLUSTER_ID 0x0008 -#define ZCL_ALARM_CLUSTER_ID 0x0009 -#define ZCL_TIME_CLUSTER_ID 0x000A -#define ZCL_RSSI_LOCATION_CLUSTER_ID 0x000B -#define ZCL_BINARY_INPUT_BASIC_CLUSTER_ID 0x000F -#define ZCL_COMMISSIONING_CLUSTER_ID 0x0015 -#define ZCL_PARTITION_CLUSTER_ID 0x0016 -#define ZCL_OTA_BOOTLOAD_CLUSTER_ID 0x0019 -#define ZCL_POWER_PROFILE_CLUSTER_ID 0x001A -#define ZCL_APPLIANCE_CONTROL_CLUSTER_ID 0x001B -#define ZCL_POLL_CONTROL_CLUSTER_ID 0x0020 -#define ZCL_GREEN_POWER_CLUSTER_ID 0x0021 -#define ZCL_KEEPALIVE_CLUSTER_ID 0x0025 -#define ZCL_SHADE_CONFIG_CLUSTER_ID 0x0100 -#define ZCL_DOOR_LOCK_CLUSTER_ID 0x0101 -#define ZCL_WINDOW_COVERING_CLUSTER_ID 0x0102 -#define ZCL_BARRIER_CONTROL_CLUSTER_ID 0x0103 -#define ZCL_PUMP_CONFIG_CONTROL_CLUSTER_ID 0x0200 -#define ZCL_THERMOSTAT_CLUSTER_ID 0x0201 -#define ZCL_FAN_CONTROL_CLUSTER_ID 0x0202 -#define ZCL_DEHUMID_CONTROL_CLUSTER_ID 0x0203 -#define ZCL_THERMOSTAT_UI_CONFIG_CLUSTER_ID 0x0204 -#define ZCL_COLOR_CONTROL_CLUSTER_ID 0x0300 -#define ZCL_BALLAST_CONFIGURATION_CLUSTER_ID 0x0301 -#define ZCL_ILLUM_MEASUREMENT_CLUSTER_ID 0x0400 -#define ZCL_ILLUM_LEVEL_SENSING_CLUSTER_ID 0x0401 -#define ZCL_TEMP_MEASUREMENT_CLUSTER_ID 0x0402 -#define ZCL_PRESSURE_MEASUREMENT_CLUSTER_ID 0x0403 -#define ZCL_FLOW_MEASUREMENT_CLUSTER_ID 0x0404 -#define ZCL_RELATIVE_HUMIDITY_MEASUREMENT_CLUSTER_ID 0x0405 -#define ZCL_OCCUPANCY_SENSING_CLUSTER_ID 0x0406 -#define ZCL_CARBON_MONOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_ID 0x040C -#define ZCL_CARBON_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_ID 0x040D -#define ZCL_ETHYLENE_CONCENTRATION_MEASUREMENT_CLUSTER_ID 0x040E -#define ZCL_ETHYLENE_OXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_ID 0x040F -#define ZCL_HYDROGEN_CONCENTRATION_MEASUREMENT_CLUSTER_ID 0x0410 -#define ZCL_HYDROGEN_SULPHIDE_CONCENTRATION_MEASUREMENT_CLUSTER_ID 0x0411 -#define ZCL_NITRIC_OXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_ID 0x0412 -#define ZCL_NITROGEN_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_ID 0x0413 -#define ZCL_OXYGEN_CONCENTRATION_MEASUREMENT_CLUSTER_ID 0x0414 -#define ZCL_OZONE_CONCENTRATION_MEASUREMENT_CLUSTER_ID 0x0415 -#define ZCL_SULFUR_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_ID 0x0416 -#define ZCL_DISSOLVED_OXYGEN_CONCENTRATION_MEASUREMENT_CLUSTER_ID 0x0417 -#define ZCL_BROMATE_CONCENTRATION_MEASUREMENT_CLUSTER_ID 0x0418 -#define ZCL_CHLORAMINES_CONCENTRATION_MEASUREMENT_CLUSTER_ID 0x0419 -#define ZCL_CHLORINE_CONCENTRATION_MEASUREMENT_CLUSTER_ID 0x041A -#define ZCL_FECAL_COLIFORM_AND_E_COLI_CONCENTRATION_MEASUREMENT_CLUSTER_ID 0x041B -#define ZCL_FLUORIDE_CONCENTRATION_MEASUREMENT_CLUSTER_ID 0x041C -#define ZCL_HALOACETIC_ACIDS_CONCENTRATION_MEASUREMENT_CLUSTER_ID 0x041D -#define ZCL_TOTAL_TRIHALOMETHANES_CONCENTRATION_MEASUREMENT_CLUSTER_ID 0x041E -#define ZCL_TOTAL_COLIFORM_BACTERIA_CONCENTRATION_MEASUREMENT_CLUSTER_ID 0x041F -#define ZCL_TURBIDITY_CONCENTRATION_MEASUREMENT_CLUSTER_ID 0x0420 -#define ZCL_COPPER_CONCENTRATION_MEASUREMENT_CLUSTER_ID 0x0421 -#define ZCL_LEAD_CONCENTRATION_MEASUREMENT_CLUSTER_ID 0x0422 -#define ZCL_MANGANESE_CONCENTRATION_MEASUREMENT_CLUSTER_ID 0x0423 -#define ZCL_SULFATE_CONCENTRATION_MEASUREMENT_CLUSTER_ID 0x0424 -#define ZCL_BROMODICHLOROMETHANE_CONCENTRATION_MEASUREMENT_CLUSTER_ID 0x0425 -#define ZCL_BROMOFORM_CONCENTRATION_MEASUREMENT_CLUSTER_ID 0x0426 -#define ZCL_CHLORODIBROMOMETHANE_CONCENTRATION_MEASUREMENT_CLUSTER_ID 0x0427 -#define ZCL_CHLOROFORM_CONCENTRATION_MEASUREMENT_CLUSTER_ID 0x0428 -#define ZCL_SODIUM_CONCENTRATION_MEASUREMENT_CLUSTER_ID 0x0429 -#define ZCL_IAS_ZONE_CLUSTER_ID 0x0500 -#define ZCL_IAS_ACE_CLUSTER_ID 0x0501 -#define ZCL_IAS_WD_CLUSTER_ID 0x0502 -#define ZCL_GENERIC_TUNNEL_CLUSTER_ID 0x0600 -#define ZCL_BACNET_PROTOCOL_TUNNEL_CLUSTER_ID 0x0601 -#define ZCL_11073_PROTOCOL_TUNNEL_CLUSTER_ID 0x0614 -#define ZCL_ISO7816_PROTOCOL_TUNNEL_CLUSTER_ID 0x0615 -#define ZCL_PRICE_CLUSTER_ID 0x0700 -#define ZCL_DEMAND_RESPONSE_LOAD_CONTROL_CLUSTER_ID 0x0701 -#define ZCL_SIMPLE_METERING_CLUSTER_ID 0x0702 -#define ZCL_MESSAGING_CLUSTER_ID 0x0703 -#define ZCL_TUNNELING_CLUSTER_ID 0x0704 -#define ZCL_PREPAYMENT_CLUSTER_ID 0x0705 -#define ZCL_ENERGY_MANAGEMENT_CLUSTER_ID 0x0706 -#define ZCL_CALENDAR_CLUSTER_ID 0x0707 -#define ZCL_DEVICE_MANAGEMENT_CLUSTER_ID 0x0708 -#define ZCL_EVENTS_CLUSTER_ID 0x0709 -#define ZCL_MDU_PAIRING_CLUSTER_ID 0x070A -#define ZCL_SUB_GHZ_CLUSTER_ID 0x070B -#define ZCL_KEY_ESTABLISHMENT_CLUSTER_ID 0x0800 -#define ZCL_INFORMATION_CLUSTER_ID 0x0900 -#define ZCL_DATA_SHARING_CLUSTER_ID 0x0901 -#define ZCL_GAMING_CLUSTER_ID 0x0902 -#define ZCL_DATA_RATE_CONTROL_CLUSTER_ID 0x0903 -#define ZCL_VOICE_OVER_ZIGBEE_CLUSTER_ID 0x0904 -#define ZCL_CHATTING_CLUSTER_ID 0x0905 -#define ZCL_PAYMENT_CLUSTER_ID 0x0A01 -#define ZCL_BILLING_CLUSTER_ID 0x0A02 -#define ZCL_APPLIANCE_IDENTIFICATION_CLUSTER_ID 0x0B00 -#define ZCL_METER_IDENTIFICATION_CLUSTER_ID 0x0B01 -#define ZCL_APPLIANCE_EVENTS_AND_ALERT_CLUSTER_ID 0x0B02 -#define ZCL_APPLIANCE_STATISTICS_CLUSTER_ID 0x0B03 -#define ZCL_ELECTRICAL_MEASUREMENT_CLUSTER_ID 0x0B04 -#define ZCL_DIAGNOSTICS_CLUSTER_ID 0x0B05 -#define ZCL_ZLL_COMMISSIONING_CLUSTER_ID 0x1000 -#define ZCL_SAMPLE_MFG_SPECIFIC_CLUSTER_ID 0xFC00 -#define ZCL_SAMPLE_MFG_SPECIFIC_CLUSTER_2_ID 0xFC00 -#define ZCL_OTA_CONFIGURATION_CLUSTER_ID 0xFC01 -#define ZCL_MFGLIB_CLUSTER_ID 0xFC02 -#define ZCL_SL_WWAH_CLUSTER_ID 0xFC57 -#endif // SILABS_EMBER_AF_CLUSTER_ID +// Prevent multiple inclusion +#pragma once + +// Definitions for cluster: Basic +#define ZCL_BASIC_CLUSTER_ID (0x0000) + +// Definitions for cluster: Power Configuration +#define ZCL_POWER_CONFIG_CLUSTER_ID (0x0001) + +// Definitions for cluster: Device Temperature Configuration +#define ZCL_DEVICE_TEMP_CLUSTER_ID (0x0002) + +// Definitions for cluster: Identify +#define ZCL_IDENTIFY_CLUSTER_ID (0x0003) + +// Definitions for cluster: Groups +#define ZCL_GROUPS_CLUSTER_ID (0x0004) + +// Definitions for cluster: Scenes +#define ZCL_SCENES_CLUSTER_ID (0x0005) + +// Definitions for cluster: On/off +#define ZCL_ON_OFF_CLUSTER_ID (0x0006) + +// Definitions for cluster: On/off Switch Configuration +#define ZCL_ON_OFF_SWITCH_CONFIG_CLUSTER_ID (0x0007) + +// Definitions for cluster: Level Control +#define ZCL_LEVEL_CONTROL_CLUSTER_ID (0x0008) + +// Definitions for cluster: Alarms +#define ZCL_ALARM_CLUSTER_ID (0x0009) + +// Definitions for cluster: Time +#define ZCL_TIME_CLUSTER_ID (0x000A) + +// Definitions for cluster: RSSI Location +#define ZCL_RSSI_LOCATION_CLUSTER_ID (0x000B) + +// Definitions for cluster: Binary Input (Basic) +#define ZCL_BINARY_INPUT_BASIC_CLUSTER_ID (0x000F) + +// Definitions for cluster: Commissioning +#define ZCL_COMMISSIONING_CLUSTER_ID (0x0015) + +// Definitions for cluster: Partition +#define ZCL_PARTITION_CLUSTER_ID (0x0016) + +// Definitions for cluster: Over the Air Bootloading +#define ZCL_OTA_BOOTLOAD_CLUSTER_ID (0x0019) + +// Definitions for cluster: Power Profile +#define ZCL_POWER_PROFILE_CLUSTER_ID (0x001A) + +// Definitions for cluster: Appliance Control +#define ZCL_APPLIANCE_CONTROL_CLUSTER_ID (0x001B) + +// Definitions for cluster: Poll Control +#define ZCL_POLL_CONTROL_CLUSTER_ID (0x0020) + +// Definitions for cluster: Green Power +#define ZCL_GREEN_POWER_CLUSTER_ID (0x0021) + +// Definitions for cluster: Keep-Alive +#define ZCL_KEEPALIVE_CLUSTER_ID (0x0025) + +// Definitions for cluster: Shade Configuration +#define ZCL_SHADE_CONFIG_CLUSTER_ID (0x0100) + +// Definitions for cluster: Door Lock +#define ZCL_DOOR_LOCK_CLUSTER_ID (0x0101) + +// Definitions for cluster: Window Covering +#define ZCL_WINDOW_COVERING_CLUSTER_ID (0x0102) + +// Definitions for cluster: Barrier Control +#define ZCL_BARRIER_CONTROL_CLUSTER_ID (0x0103) + +// Definitions for cluster: Pump Configuration and Control +#define ZCL_PUMP_CONFIG_CONTROL_CLUSTER_ID (0x0200) + +// Definitions for cluster: Thermostat +#define ZCL_THERMOSTAT_CLUSTER_ID (0x0201) + +// Definitions for cluster: Fan Control +#define ZCL_FAN_CONTROL_CLUSTER_ID (0x0202) + +// Definitions for cluster: Dehumidification Control +#define ZCL_DEHUMID_CONTROL_CLUSTER_ID (0x0203) + +// Definitions for cluster: Thermostat User Interface Configuration +#define ZCL_THERMOSTAT_UI_CONFIG_CLUSTER_ID (0x0204) + +// Definitions for cluster: Color Control +#define ZCL_COLOR_CONTROL_CLUSTER_ID (0x0300) + +// Definitions for cluster: Ballast Configuration +#define ZCL_BALLAST_CONFIGURATION_CLUSTER_ID (0x0301) + +// Definitions for cluster: Illuminance Measurement +#define ZCL_ILLUM_MEASUREMENT_CLUSTER_ID (0x0400) + +// Definitions for cluster: Illuminance Level Sensing +#define ZCL_ILLUM_LEVEL_SENSING_CLUSTER_ID (0x0401) + +// Definitions for cluster: Temperature Measurement +#define ZCL_TEMP_MEASUREMENT_CLUSTER_ID (0x0402) + +// Definitions for cluster: Pressure Measurement +#define ZCL_PRESSURE_MEASUREMENT_CLUSTER_ID (0x0403) + +// Definitions for cluster: Flow Measurement +#define ZCL_FLOW_MEASUREMENT_CLUSTER_ID (0x0404) + +// Definitions for cluster: Relative Humidity Measurement +#define ZCL_RELATIVE_HUMIDITY_MEASUREMENT_CLUSTER_ID (0x0405) + +// Definitions for cluster: Occupancy Sensing +#define ZCL_OCCUPANCY_SENSING_CLUSTER_ID (0x0406) + +// Definitions for cluster: Carbon Monoxide Concentration Measurement +#define ZCL_CARBON_MONOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_ID (0x040C) + +// Definitions for cluster: Carbon Dioxide Concentration Measurement +#define ZCL_CARBON_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_ID (0x040D) + +// Definitions for cluster: Ethylene Concentration Measurement +#define ZCL_ETHYLENE_CONCENTRATION_MEASUREMENT_CLUSTER_ID (0x040E) + +// Definitions for cluster: Ethylene Oxide Concentration Measurement +#define ZCL_ETHYLENE_OXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_ID (0x040F) + +// Definitions for cluster: Hydrogen Concentration Measurement +#define ZCL_HYDROGEN_CONCENTRATION_MEASUREMENT_CLUSTER_ID (0x0410) + +// Definitions for cluster: Hydrogen Sulphide Concentration Measurement +#define ZCL_HYDROGEN_SULPHIDE_CONCENTRATION_MEASUREMENT_CLUSTER_ID (0x0411) + +// Definitions for cluster: Nitric Oxide Concentration Measurement +#define ZCL_NITRIC_OXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_ID (0x0412) + +// Definitions for cluster: Nitrogen Dioxide Concentration Measurement +#define ZCL_NITROGEN_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_ID (0x0413) + +// Definitions for cluster: Oxygen Concentration Measurement +#define ZCL_OXYGEN_CONCENTRATION_MEASUREMENT_CLUSTER_ID (0x0414) + +// Definitions for cluster: Ozone Concentration Measurement +#define ZCL_OZONE_CONCENTRATION_MEASUREMENT_CLUSTER_ID (0x0415) + +// Definitions for cluster: Sulfur Dioxide Concentration Measurement +#define ZCL_SULFUR_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_ID (0x0416) + +// Definitions for cluster: Dissolved Oxygen Concentration Measurement +#define ZCL_DISSOLVED_OXYGEN_CONCENTRATION_MEASUREMENT_CLUSTER_ID (0x0417) + +// Definitions for cluster: Bromate Concentration Measurement +#define ZCL_BROMATE_CONCENTRATION_MEASUREMENT_CLUSTER_ID (0x0418) + +// Definitions for cluster: Chloramines Concentration Measurement +#define ZCL_CHLORAMINES_CONCENTRATION_MEASUREMENT_CLUSTER_ID (0x0419) + +// Definitions for cluster: Chlorine Concentration Measurement +#define ZCL_CHLORINE_CONCENTRATION_MEASUREMENT_CLUSTER_ID (0x041A) + +// Definitions for cluster: Fecal coliform and E. Coli Concentration Measurement +#define ZCL_FECAL_COLIFORM_AND_E_COLI_CONCENTRATION_MEASUREMENT_CLUSTER_ID (0x041B) + +// Definitions for cluster: Fluoride Concentration Measurement +#define ZCL_FLUORIDE_CONCENTRATION_MEASUREMENT_CLUSTER_ID (0x041C) + +// Definitions for cluster: Haloacetic Acids Concentration Measurement +#define ZCL_HALOACETIC_ACIDS_CONCENTRATION_MEASUREMENT_CLUSTER_ID (0x041D) + +// Definitions for cluster: Total Trihalomethanes Concentration Measurement +#define ZCL_TOTAL_TRIHALOMETHANES_CONCENTRATION_MEASUREMENT_CLUSTER_ID (0x041E) + +// Definitions for cluster: Total Coliform Bacteria Concentration Measurement +#define ZCL_TOTAL_COLIFORM_BACTERIA_CONCENTRATION_MEASUREMENT_CLUSTER_ID (0x041F) + +// Definitions for cluster: Turbidity Concentration Measurement +#define ZCL_TURBIDITY_CONCENTRATION_MEASUREMENT_CLUSTER_ID (0x0420) + +// Definitions for cluster: Copper Concentration Measurement +#define ZCL_COPPER_CONCENTRATION_MEASUREMENT_CLUSTER_ID (0x0421) + +// Definitions for cluster: Lead Concentration Measurement +#define ZCL_LEAD_CONCENTRATION_MEASUREMENT_CLUSTER_ID (0x0422) + +// Definitions for cluster: Manganese Concentration Measurement +#define ZCL_MANGANESE_CONCENTRATION_MEASUREMENT_CLUSTER_ID (0x0423) + +// Definitions for cluster: Sulfate Concentration Measurement +#define ZCL_SULFATE_CONCENTRATION_MEASUREMENT_CLUSTER_ID (0x0424) + +// Definitions for cluster: Bromodichloromethane Concentration Measurement +#define ZCL_BROMODICHLOROMETHANE_CONCENTRATION_MEASUREMENT_CLUSTER_ID (0x0425) + +// Definitions for cluster: Bromoform Concentration Measurement +#define ZCL_BROMOFORM_CONCENTRATION_MEASUREMENT_CLUSTER_ID (0x0426) + +// Definitions for cluster: Chlorodibromomethane Concentration Measurement +#define ZCL_CHLORODIBROMOMETHANE_CONCENTRATION_MEASUREMENT_CLUSTER_ID (0x0427) + +// Definitions for cluster: Chloroform Concentration Measurement +#define ZCL_CHLOROFORM_CONCENTRATION_MEASUREMENT_CLUSTER_ID (0x0428) + +// Definitions for cluster: Sodium Concentration Measurement +#define ZCL_SODIUM_CONCENTRATION_MEASUREMENT_CLUSTER_ID (0x0429) + +// Definitions for cluster: IAS Zone +#define ZCL_IAS_ZONE_CLUSTER_ID (0x0500) + +// Definitions for cluster: IAS ACE +#define ZCL_IAS_ACE_CLUSTER_ID (0x0501) + +// Definitions for cluster: IAS WD +#define ZCL_IAS_WD_CLUSTER_ID (0x0502) + +// Definitions for cluster: Generic Tunnel +#define ZCL_GENERIC_TUNNEL_CLUSTER_ID (0x0600) + +// Definitions for cluster: BACnet Protocol Tunnel +#define ZCL_BACNET_PROTOCOL_TUNNEL_CLUSTER_ID (0x0601) + +// Definitions for cluster: 11073 Protocol Tunnel +#define ZCL_11073_PROTOCOL_TUNNEL_CLUSTER_ID (0x0614) + +// Definitions for cluster: ISO 7816 Protocol Tunnel +#define ZCL_ISO7816_PROTOCOL_TUNNEL_CLUSTER_ID (0x0615) + +// Definitions for cluster: Price +#define ZCL_PRICE_CLUSTER_ID (0x0700) + +// Definitions for cluster: Demand Response and Load Control +#define ZCL_DEMAND_RESPONSE_LOAD_CONTROL_CLUSTER_ID (0x0701) + +// Definitions for cluster: Simple Metering +#define ZCL_SIMPLE_METERING_CLUSTER_ID (0x0702) + +// Definitions for cluster: Messaging +#define ZCL_MESSAGING_CLUSTER_ID (0x0703) + +// Definitions for cluster: Tunneling +#define ZCL_TUNNELING_CLUSTER_ID (0x0704) + +// Definitions for cluster: Prepayment +#define ZCL_PREPAYMENT_CLUSTER_ID (0x0705) + +// Definitions for cluster: Energy Management +#define ZCL_ENERGY_MANAGEMENT_CLUSTER_ID (0x0706) + +// Definitions for cluster: Calendar +#define ZCL_CALENDAR_CLUSTER_ID (0x0707) + +// Definitions for cluster: Device Management +#define ZCL_DEVICE_MANAGEMENT_CLUSTER_ID (0x0708) + +// Definitions for cluster: Events +#define ZCL_EVENTS_CLUSTER_ID (0x0709) + +// Definitions for cluster: MDU Pairing +#define ZCL_MDU_PAIRING_CLUSTER_ID (0x070A) + +// Definitions for cluster: Sub-GHz +#define ZCL_SUB_GHZ_CLUSTER_ID (0x070B) + +// Definitions for cluster: Key Establishment +#define ZCL_KEY_ESTABLISHMENT_CLUSTER_ID (0x0800) + +// Definitions for cluster: Information +#define ZCL_INFORMATION_CLUSTER_ID (0x0900) + +// Definitions for cluster: Data Sharing +#define ZCL_DATA_SHARING_CLUSTER_ID (0x0901) + +// Definitions for cluster: Gaming +#define ZCL_GAMING_CLUSTER_ID (0x0902) + +// Definitions for cluster: Data Rate Control +#define ZCL_DATA_RATE_CONTROL_CLUSTER_ID (0x0903) + +// Definitions for cluster: Voice over ZigBee +#define ZCL_VOICE_OVER_ZIGBEE_CLUSTER_ID (0x0904) + +// Definitions for cluster: Chatting +#define ZCL_CHATTING_CLUSTER_ID (0x0905) + +// Definitions for cluster: Payment +#define ZCL_PAYMENT_CLUSTER_ID (0x0A01) + +// Definitions for cluster: Billing +#define ZCL_BILLING_CLUSTER_ID (0x0A02) + +// Definitions for cluster: Appliance Identification +#define ZCL_APPLIANCE_IDENTIFICATION_CLUSTER_ID (0x0B00) + +// Definitions for cluster: Meter Identification +#define ZCL_METER_IDENTIFICATION_CLUSTER_ID (0x0B01) + +// Definitions for cluster: Appliance Events and Alert +#define ZCL_APPLIANCE_EVENTS_AND_ALERT_CLUSTER_ID (0x0B02) + +// Definitions for cluster: Appliance Statistics +#define ZCL_APPLIANCE_STATISTICS_CLUSTER_ID (0x0B03) + +// Definitions for cluster: Electrical Measurement +#define ZCL_ELECTRICAL_MEASUREMENT_CLUSTER_ID (0x0B04) + +// Definitions for cluster: Diagnostics +#define ZCL_DIAGNOSTICS_CLUSTER_ID (0x0B05) + +// Definitions for cluster: ZLL Commissioning +#define ZCL_ZLL_COMMISSIONING_CLUSTER_ID (0x1000) + +// Definitions for cluster: Sample Mfg Specific Cluster +#define ZCL_SAMPLE_MFG_SPECIFIC_CLUSTER_ID (0xFC00) + +// Definitions for cluster: Sample Mfg Specific Cluster 2 +#define ZCL_SAMPLE_MFG_SPECIFIC_CLUSTER_2_ID (0xFC00) + +// Definitions for cluster: Configuration Cluster +#define ZCL_OTA_CONFIGURATION_CLUSTER_ID (0xFC01) + +// Definitions for cluster: MFGLIB Cluster +#define ZCL_MFGLIB_CLUSTER_ID (0xFC02) + +// Definitions for cluster: SL Works With All Hubs +#define ZCL_SL_WWAH_CLUSTER_ID (0xFC57) diff --git a/examples/lighting-app/lighting-common/gen/command-id.h b/examples/lighting-app/lighting-common/gen/command-id.h index 823914d0466035..940258f4527aa5 100644 --- a/examples/lighting-app/lighting-common/gen/command-id.h +++ b/examples/lighting-app/lighting-common/gen/command-id.h @@ -1,23 +1,7 @@ -/** - * - * 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 + * 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. @@ -31,1007 +15,733 @@ * 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 SILABS_EMBER_AF_COMMAND_ID -#define SILABS_EMBER_AF_COMMAND_ID - -// Global commands - -// Either direction -#define ZCL_READ_ATTRIBUTES_COMMAND_ID 0x00 // Ver.: always -#define ZCL_READ_ATTRIBUTES_RESPONSE_COMMAND_ID 0x01 // Ver.: always -#define ZCL_WRITE_ATTRIBUTES_COMMAND_ID 0x02 // Ver.: always -#define ZCL_WRITE_ATTRIBUTES_UNDIVIDED_COMMAND_ID 0x03 // Ver.: always -#define ZCL_WRITE_ATTRIBUTES_RESPONSE_COMMAND_ID 0x04 // Ver.: always -#define ZCL_WRITE_ATTRIBUTES_NO_RESPONSE_COMMAND_ID 0x05 // Ver.: always -#define ZCL_CONFIGURE_REPORTING_COMMAND_ID 0x06 // Ver.: always -#define ZCL_CONFIGURE_REPORTING_RESPONSE_COMMAND_ID 0x07 // Ver.: always -#define ZCL_READ_REPORTING_CONFIGURATION_COMMAND_ID 0x08 // Ver.: always -#define ZCL_READ_REPORTING_CONFIGURATION_RESPONSE_COMMAND_ID 0x09 // Ver.: always -#define ZCL_REPORT_ATTRIBUTES_COMMAND_ID 0x0A // Ver.: always -#define ZCL_DEFAULT_RESPONSE_COMMAND_ID 0x0B // Ver.: always -#define ZCL_DISCOVER_ATTRIBUTES_COMMAND_ID 0x0C // Ver.: always -#define ZCL_DISCOVER_ATTRIBUTES_RESPONSE_COMMAND_ID 0x0D // Ver.: always -#define ZCL_READ_ATTRIBUTES_STRUCTURED_COMMAND_ID 0x0E // Ver.: always -#define ZCL_WRITE_ATTRIBUTES_STRUCTURED_COMMAND_ID 0x0F // Ver.: always -#define ZCL_WRITE_ATTRIBUTES_STRUCTURED_RESPONSE_COMMAND_ID 0x10 // Ver.: always -#define ZCL_DISCOVER_COMMANDS_RECEIVED_COMMAND_ID 0x11 // Ver.: always -#define ZCL_DISCOVER_COMMANDS_RECEIVED_RESPONSE_COMMAND_ID 0x12 // Ver.: always -#define ZCL_DISCOVER_COMMANDS_GENERATED_COMMAND_ID 0x13 // Ver.: always -#define ZCL_DISCOVER_COMMANDS_GENERATED_RESPONSE_COMMAND_ID 0x14 // Ver.: always -#define ZCL_DISCOVER_ATTRIBUTES_EXTENDED_COMMAND_ID 0x15 // Ver.: always -#define ZCL_DISCOVER_ATTRIBUTES_EXTENDED_RESPONSE_COMMAND_ID 0x16 // Ver.: always -// Command types for cluster: Basic -// Cluster specification level: zcl-7.0-07-5123-07 - -// Server to client -#define ZCL_GET_LOCALES_SUPPORTED_RESPONSE_COMMAND_ID 0x01 // Ver.: always - -// Client to server -#define ZCL_RESET_TO_FACTORY_DEFAULTS_COMMAND_ID 0x00 // Ver.: always -#define ZCL_GET_LOCALES_SUPPORTED_COMMAND_ID 0x01 // Ver.: always - -// Command types for cluster: Identify -// Cluster specification level: zcl-7.0-07-5123-07 - -// Server to client -#define ZCL_IDENTIFY_QUERY_RESPONSE_COMMAND_ID 0x00 // Ver.: always - -// Client to server -#define ZCL_IDENTIFY_COMMAND_ID 0x00 // Ver.: always -#define ZCL_IDENTIFY_QUERY_COMMAND_ID 0x01 // Ver.: always -#define ZCL_E_Z_MODE_INVOKE_COMMAND_ID 0x02 // Ver.: always -#define ZCL_UPDATE_COMMISSION_STATE_COMMAND_ID 0x03 // Ver.: always -#define ZCL_TRIGGER_EFFECT_COMMAND_ID 0x40 // Ver.: since zll-1.0-11-0037-10 - -// Command types for cluster: Groups -// Cluster specification level: zcl-7.0-07-5123-07 - -// Server to client -#define ZCL_ADD_GROUP_RESPONSE_COMMAND_ID 0x00 // Ver.: always -#define ZCL_VIEW_GROUP_RESPONSE_COMMAND_ID 0x01 // Ver.: always -#define ZCL_GET_GROUP_MEMBERSHIP_RESPONSE_COMMAND_ID 0x02 // Ver.: always -#define ZCL_REMOVE_GROUP_RESPONSE_COMMAND_ID 0x03 // Ver.: always - -// Client to server -#define ZCL_ADD_GROUP_COMMAND_ID 0x00 // Ver.: always -#define ZCL_VIEW_GROUP_COMMAND_ID 0x01 // Ver.: always -#define ZCL_GET_GROUP_MEMBERSHIP_COMMAND_ID 0x02 // Ver.: always -#define ZCL_REMOVE_GROUP_COMMAND_ID 0x03 // Ver.: always -#define ZCL_REMOVE_ALL_GROUPS_COMMAND_ID 0x04 // Ver.: always -#define ZCL_ADD_GROUP_IF_IDENTIFYING_COMMAND_ID 0x05 // Ver.: always - -// Command types for cluster: Scenes -// Cluster specification level: zcl-7.0-07-5123-07 - -// Server to client -#define ZCL_ADD_SCENE_RESPONSE_COMMAND_ID 0x00 // Ver.: always -#define ZCL_VIEW_SCENE_RESPONSE_COMMAND_ID 0x01 // Ver.: always -#define ZCL_REMOVE_SCENE_RESPONSE_COMMAND_ID 0x02 // Ver.: always -#define ZCL_REMOVE_ALL_SCENES_RESPONSE_COMMAND_ID 0x03 // Ver.: always -#define ZCL_STORE_SCENE_RESPONSE_COMMAND_ID 0x04 // Ver.: always -#define ZCL_GET_SCENE_MEMBERSHIP_RESPONSE_COMMAND_ID 0x06 // Ver.: always -#define ZCL_ENHANCED_ADD_SCENE_RESPONSE_COMMAND_ID 0x40 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_ENHANCED_VIEW_SCENE_RESPONSE_COMMAND_ID 0x41 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_COPY_SCENE_RESPONSE_COMMAND_ID 0x42 // Ver.: since zll-1.0-11-0037-10 - -// Client to server -#define ZCL_ADD_SCENE_COMMAND_ID 0x00 // Ver.: always -#define ZCL_VIEW_SCENE_COMMAND_ID 0x01 // Ver.: always -#define ZCL_REMOVE_SCENE_COMMAND_ID 0x02 // Ver.: always -#define ZCL_REMOVE_ALL_SCENES_COMMAND_ID 0x03 // Ver.: always -#define ZCL_STORE_SCENE_COMMAND_ID 0x04 // Ver.: always -#define ZCL_RECALL_SCENE_COMMAND_ID 0x05 // Ver.: always -#define ZCL_GET_SCENE_MEMBERSHIP_COMMAND_ID 0x06 // Ver.: always -#define ZCL_ENHANCED_ADD_SCENE_COMMAND_ID 0x40 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_ENHANCED_VIEW_SCENE_COMMAND_ID 0x41 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_COPY_SCENE_COMMAND_ID 0x42 // Ver.: since zll-1.0-11-0037-10 - -// Command types for cluster: On/off -// Cluster specification level: zcl-7.0-07-5123-07 - -// Client to server -#define ZCL_OFF_COMMAND_ID 0x00 // Ver.: always -#define ZCL_ON_COMMAND_ID 0x01 // Ver.: always -#define ZCL_TOGGLE_COMMAND_ID 0x02 // Ver.: always -#define ZCL_OFF_WITH_EFFECT_COMMAND_ID 0x40 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_ON_WITH_RECALL_GLOBAL_SCENE_COMMAND_ID 0x41 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_ON_WITH_TIMED_OFF_COMMAND_ID 0x42 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_SAMPLE_MFG_SPECIFIC_OFF_WITH_TRANSITION_COMMAND_ID 0x00 // Ver.: always mfgCode: 0x1002 -#define ZCL_SAMPLE_MFG_SPECIFIC_ON_WITH_TRANSITION_COMMAND_ID 0x01 // Ver.: always mfgCode: 0x1002 -#define ZCL_SAMPLE_MFG_SPECIFIC_TOGGLE_WITH_TRANSITION_COMMAND_ID 0x02 // Ver.: always mfgCode: 0x1002 -#define ZCL_SAMPLE_MFG_SPECIFIC_ON_WITH_TRANSITION2_COMMAND_ID 0x01 // Ver.: always mfgCode: 0x1049 -#define ZCL_SAMPLE_MFG_SPECIFIC_TOGGLE_WITH_TRANSITION2_COMMAND_ID 0x02 // Ver.: always mfgCode: 0x1049 - -// Command types for cluster: Level Control -// Cluster specification level: zcl-7.0-07-5123-07 - -// Client to server -#define ZCL_MOVE_TO_LEVEL_COMMAND_ID 0x00 // Ver.: always -#define ZCL_MOVE_COMMAND_ID 0x01 // Ver.: always -#define ZCL_STEP_COMMAND_ID 0x02 // Ver.: always -#define ZCL_STOP_COMMAND_ID 0x03 // Ver.: always -#define ZCL_MOVE_TO_LEVEL_WITH_ON_OFF_COMMAND_ID 0x04 // Ver.: always -#define ZCL_MOVE_WITH_ON_OFF_COMMAND_ID 0x05 // Ver.: always -#define ZCL_STEP_WITH_ON_OFF_COMMAND_ID 0x06 // Ver.: always -#define ZCL_STOP_WITH_ON_OFF_COMMAND_ID 0x07 // Ver.: always - -// Command types for cluster: Alarms -// Cluster specification level: zcl-7.0-07-5123-07 - -// Server to client -#define ZCL_ALARM_COMMAND_ID 0x00 // Ver.: always -#define ZCL_GET_ALARM_RESPONSE_COMMAND_ID 0x01 // Ver.: always - -// Client to server -#define ZCL_RESET_ALARM_COMMAND_ID 0x00 // Ver.: always -#define ZCL_RESET_ALL_ALARMS_COMMAND_ID 0x01 // Ver.: always -#define ZCL_GET_ALARM_COMMAND_ID 0x02 // Ver.: always -#define ZCL_RESET_ALARM_LOG_COMMAND_ID 0x03 // Ver.: always - -// Command types for cluster: RSSI Location -// Cluster specification level: zcl-7.0-07-5123-07 - -// Server to client -#define ZCL_DEVICE_CONFIGURATION_RESPONSE_COMMAND_ID 0x00 // Ver.: always -#define ZCL_LOCATION_DATA_RESPONSE_COMMAND_ID 0x01 // Ver.: always -#define ZCL_LOCATION_DATA_NOTIFICATION_COMMAND_ID 0x02 // Ver.: always -#define ZCL_COMPACT_LOCATION_DATA_NOTIFICATION_COMMAND_ID 0x03 // Ver.: always -#define ZCL_RSSI_PING_COMMAND_ID 0x04 // Ver.: always -#define ZCL_RSSI_REQUEST_COMMAND_ID 0x05 // Ver.: always -#define ZCL_REPORT_RSSI_MEASUREMENTS_COMMAND_ID 0x06 // Ver.: always -#define ZCL_REQUEST_OWN_LOCATION_COMMAND_ID 0x07 // Ver.: always - -// Client to server -#define ZCL_SET_ABSOLUTE_LOCATION_COMMAND_ID 0x00 // Ver.: always -#define ZCL_SET_DEVICE_CONFIGURATION_COMMAND_ID 0x01 // Ver.: always -#define ZCL_GET_DEVICE_CONFIGURATION_COMMAND_ID 0x02 // Ver.: always -#define ZCL_GET_LOCATION_DATA_COMMAND_ID 0x03 // Ver.: always -#define ZCL_RSSI_RESPONSE_COMMAND_ID 0x04 // Ver.: always -#define ZCL_SEND_PINGS_COMMAND_ID 0x05 // Ver.: always -#define ZCL_ANCHOR_NODE_ANNOUNCE_COMMAND_ID 0x06 // Ver.: always - -// Command types for cluster: Commissioning -// Cluster specification level: zcl-7.0-07-5123-07 - -// Server to client -#define ZCL_RESTART_DEVICE_RESPONSE_COMMAND_ID 0x00 // Ver.: always -#define ZCL_SAVE_STARTUP_PARAMETERS_RESPONSE_COMMAND_ID 0x01 // Ver.: always -#define ZCL_RESTORE_STARTUP_PARAMETERS_RESPONSE_COMMAND_ID 0x02 // Ver.: always -#define ZCL_RESET_STARTUP_PARAMETERS_RESPONSE_COMMAND_ID 0x03 // Ver.: always - -// Client to server -#define ZCL_RESTART_DEVICE_COMMAND_ID 0x00 // Ver.: always -#define ZCL_SAVE_STARTUP_PARAMETERS_COMMAND_ID 0x01 // Ver.: always -#define ZCL_RESTORE_STARTUP_PARAMETERS_COMMAND_ID 0x02 // Ver.: always -#define ZCL_RESET_STARTUP_PARAMETERS_COMMAND_ID 0x03 // Ver.: always - -// Command types for cluster: Partition -// Cluster specification level: zcl-7.0-07-5123-07 - -// Server to client -#define ZCL_MULTIPLE_ACK_COMMAND_ID 0x00 // Ver.: always -#define ZCL_READ_HANDSHAKE_PARAM_RESPONSE_COMMAND_ID 0x01 // Ver.: always - -// Client to server -#define ZCL_TRANSFER_PARTITIONED_FRAME_COMMAND_ID 0x00 // Ver.: always -#define ZCL_READ_HANDSHAKE_PARAM_COMMAND_ID 0x01 // Ver.: always -#define ZCL_WRITE_HANDSHAKE_PARAM_COMMAND_ID 0x02 // Ver.: always - -// Command types for cluster: Over the Air Bootloading -// Cluster specification level: zcl-7.0-07-5123-07 - -// Server to client -#define ZCL_IMAGE_NOTIFY_COMMAND_ID 0x00 // Ver.: always -#define ZCL_QUERY_NEXT_IMAGE_RESPONSE_COMMAND_ID 0x02 // Ver.: always -#define ZCL_IMAGE_BLOCK_RESPONSE_COMMAND_ID 0x05 // Ver.: always -#define ZCL_UPGRADE_END_RESPONSE_COMMAND_ID 0x07 // Ver.: always -#define ZCL_QUERY_SPECIFIC_FILE_RESPONSE_COMMAND_ID 0x09 // Ver.: always - -// Client to server -#define ZCL_QUERY_NEXT_IMAGE_REQUEST_COMMAND_ID 0x01 // Ver.: always -#define ZCL_IMAGE_BLOCK_REQUEST_COMMAND_ID 0x03 // Ver.: always -#define ZCL_IMAGE_PAGE_REQUEST_COMMAND_ID 0x04 // Ver.: always -#define ZCL_UPGRADE_END_REQUEST_COMMAND_ID 0x06 // Ver.: always -#define ZCL_QUERY_SPECIFIC_FILE_REQUEST_COMMAND_ID 0x08 // Ver.: always - -// Command types for cluster: Power Profile -// Cluster specification level: zcl-7.0-07-5123-07 - -// Server to client -#define ZCL_POWER_PROFILE_NOTIFICATION_COMMAND_ID 0x00 // Ver.: always -#define ZCL_POWER_PROFILE_RESPONSE_COMMAND_ID 0x01 // Ver.: always -#define ZCL_POWER_PROFILE_STATE_RESPONSE_COMMAND_ID 0x02 // Ver.: always -#define ZCL_GET_POWER_PROFILE_PRICE_COMMAND_ID 0x03 // Ver.: always -#define ZCL_POWER_PROFILES_STATE_NOTIFICATION_COMMAND_ID 0x04 // Ver.: always -#define ZCL_GET_OVERALL_SCHEDULE_PRICE_COMMAND_ID 0x05 // Ver.: always -#define ZCL_ENERGY_PHASES_SCHEDULE_REQUEST_COMMAND_ID 0x06 // Ver.: always -#define ZCL_ENERGY_PHASES_SCHEDULE_STATE_RESPONSE_COMMAND_ID 0x07 // Ver.: always -#define ZCL_ENERGY_PHASES_SCHEDULE_STATE_NOTIFICATION_COMMAND_ID 0x08 // Ver.: always -#define ZCL_POWER_PROFILE_SCHEDULE_CONSTRAINTS_NOTIFICATION_COMMAND_ID 0x09 // Ver.: always -#define ZCL_POWER_PROFILE_SCHEDULE_CONSTRAINTS_RESPONSE_COMMAND_ID 0x0A // Ver.: always -#define ZCL_GET_POWER_PROFILE_PRICE_EXTENDED_COMMAND_ID 0x0B // Ver.: always - -// Client to server -#define ZCL_POWER_PROFILE_REQUEST_COMMAND_ID 0x00 // Ver.: always -#define ZCL_POWER_PROFILE_STATE_REQUEST_COMMAND_ID 0x01 // Ver.: always -#define ZCL_GET_POWER_PROFILE_PRICE_RESPONSE_COMMAND_ID 0x02 // Ver.: always -#define ZCL_GET_OVERALL_SCHEDULE_PRICE_RESPONSE_COMMAND_ID 0x03 // Ver.: always -#define ZCL_ENERGY_PHASES_SCHEDULE_NOTIFICATION_COMMAND_ID 0x04 // Ver.: always -#define ZCL_ENERGY_PHASES_SCHEDULE_RESPONSE_COMMAND_ID 0x05 // Ver.: always -#define ZCL_POWER_PROFILE_SCHEDULE_CONSTRAINTS_REQUEST_COMMAND_ID 0x06 // Ver.: always -#define ZCL_ENERGY_PHASES_SCHEDULE_STATE_REQUEST_COMMAND_ID 0x07 // Ver.: always -#define ZCL_GET_POWER_PROFILE_PRICE_EXTENDED_RESPONSE_COMMAND_ID 0x08 // Ver.: always - -// Command types for cluster: Appliance Control -// Cluster specification level: zcl-7.0-07-5123-07 - -// Server to client -#define ZCL_SIGNAL_STATE_RESPONSE_COMMAND_ID 0x00 // Ver.: always -#define ZCL_SIGNAL_STATE_NOTIFICATION_COMMAND_ID 0x01 // Ver.: always - -// Client to server -#define ZCL_EXECUTION_OF_A_COMMAND_COMMAND_ID 0x00 // Ver.: always -#define ZCL_SIGNAL_STATE_COMMAND_ID 0x01 // Ver.: always -#define ZCL_WRITE_FUNCTIONS_COMMAND_ID 0x02 // Ver.: always -#define ZCL_OVERLOAD_PAUSE_RESUME_COMMAND_ID 0x03 // Ver.: always -#define ZCL_OVERLOAD_PAUSE_COMMAND_ID 0x04 // Ver.: always -#define ZCL_OVERLOAD_WARNING_COMMAND_ID 0x05 // Ver.: always - -// Command types for cluster: Poll Control -// Cluster specification level: zcl-7.0-07-5123-07 - -// Server to client -#define ZCL_CHECK_IN_COMMAND_ID 0x00 // Ver.: always - -// Client to server -#define ZCL_CHECK_IN_RESPONSE_COMMAND_ID 0x00 // Ver.: always -#define ZCL_FAST_POLL_STOP_COMMAND_ID 0x01 // Ver.: always -#define ZCL_SET_LONG_POLL_INTERVAL_COMMAND_ID 0x02 // Ver.: always -#define ZCL_SET_SHORT_POLL_INTERVAL_COMMAND_ID 0x03 // Ver.: always - -// Command types for cluster: Green Power -// Cluster specification level: gp-1.0a-09-5499-26 - -// Server to client -#define ZCL_GP_NOTIFICATION_RESPONSE_COMMAND_ID 0x00 // Ver.: since gp-1.0-09-5499-24 -#define ZCL_GP_PAIRING_COMMAND_ID 0x01 // Ver.: since gp-1.0-09-5499-24 -#define ZCL_GP_PROXY_COMMISSIONING_MODE_COMMAND_ID 0x02 // Ver.: since gp-1.0-09-5499-24 -#define ZCL_GP_RESPONSE_COMMAND_ID 0x06 // Ver.: since gp-1.0-09-5499-24 -#define ZCL_GP_TRANSLATION_TABLE_RESPONSE_COMMAND_ID 0x08 // Ver.: since gp-1.0-09-5499-24 -#define ZCL_GP_SINK_TABLE_RESPONSE_COMMAND_ID 0x0A // Ver.: always -#define ZCL_GP_PROXY_TABLE_REQUEST_COMMAND_ID 0x0B // Ver.: always - -// Client to server -#define ZCL_GP_NOTIFICATION_COMMAND_ID 0x00 // Ver.: since gp-1.0-09-5499-24 -#define ZCL_GP_PAIRING_SEARCH_COMMAND_ID 0x01 // Ver.: since gp-1.0-09-5499-24 -#define ZCL_GP_TUNNELING_STOP_COMMAND_ID 0x03 // Ver.: since gp-1.0-09-5499-24 -#define ZCL_GP_COMMISSIONING_NOTIFICATION_COMMAND_ID 0x04 // Ver.: since gp-1.0-09-5499-24 -#define ZCL_GP_SINK_COMMISSIONING_MODE_COMMAND_ID 0x05 // Ver.: always -#define ZCL_GP_TRANSLATION_TABLE_UPDATE_COMMAND_ID 0x07 // Ver.: since gp-1.0-09-5499-24 -#define ZCL_GP_TRANSLATION_TABLE_REQUEST_COMMAND_ID 0x08 // Ver.: always -#define ZCL_GP_PAIRING_CONFIGURATION_COMMAND_ID 0x09 // Ver.: since gp-1.0-09-5499-24 -#define ZCL_GP_SINK_TABLE_REQUEST_COMMAND_ID 0x0A // Ver.: always -#define ZCL_GP_PROXY_TABLE_RESPONSE_COMMAND_ID 0x0B // Ver.: always - -// Command types for cluster: Door Lock -// Cluster specification level: zcl-6.0-15-02018-001 - -// Server to client -#define ZCL_LOCK_DOOR_RESPONSE_COMMAND_ID 0x00 // Ver.: always -#define ZCL_UNLOCK_DOOR_RESPONSE_COMMAND_ID 0x01 // Ver.: always -#define ZCL_TOGGLE_RESPONSE_COMMAND_ID 0x02 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_UNLOCK_WITH_TIMEOUT_RESPONSE_COMMAND_ID 0x03 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_GET_LOG_RECORD_RESPONSE_COMMAND_ID 0x04 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_SET_PIN_RESPONSE_COMMAND_ID 0x05 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_GET_PIN_RESPONSE_COMMAND_ID 0x06 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_CLEAR_PIN_RESPONSE_COMMAND_ID 0x07 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_CLEAR_ALL_PINS_RESPONSE_COMMAND_ID 0x08 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_SET_USER_STATUS_RESPONSE_COMMAND_ID 0x09 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_GET_USER_STATUS_RESPONSE_COMMAND_ID 0x0A // Ver.: since ha-1.2-05-3520-29 -#define ZCL_SET_WEEKDAY_SCHEDULE_RESPONSE_COMMAND_ID 0x0B // Ver.: since ha-1.2-05-3520-29 -#define ZCL_GET_WEEKDAY_SCHEDULE_RESPONSE_COMMAND_ID 0x0C // Ver.: since ha-1.2-05-3520-29 -#define ZCL_CLEAR_WEEKDAY_SCHEDULE_RESPONSE_COMMAND_ID 0x0D // Ver.: since ha-1.2-05-3520-29 -#define ZCL_SET_YEARDAY_SCHEDULE_RESPONSE_COMMAND_ID 0x0E // Ver.: since ha-1.2-05-3520-29 -#define ZCL_GET_YEARDAY_SCHEDULE_RESPONSE_COMMAND_ID 0x0F // Ver.: since ha-1.2-05-3520-29 -#define ZCL_CLEAR_YEARDAY_SCHEDULE_RESPONSE_COMMAND_ID 0x10 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_SET_HOLIDAY_SCHEDULE_RESPONSE_COMMAND_ID 0x11 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_GET_HOLIDAY_SCHEDULE_RESPONSE_COMMAND_ID 0x12 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_CLEAR_HOLIDAY_SCHEDULE_RESPONSE_COMMAND_ID 0x13 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_SET_USER_TYPE_RESPONSE_COMMAND_ID 0x14 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_GET_USER_TYPE_RESPONSE_COMMAND_ID 0x15 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_SET_RFID_RESPONSE_COMMAND_ID 0x16 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_GET_RFID_RESPONSE_COMMAND_ID 0x17 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_CLEAR_RFID_RESPONSE_COMMAND_ID 0x18 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_CLEAR_ALL_RFIDS_RESPONSE_COMMAND_ID 0x19 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_OPERATION_EVENT_NOTIFICATION_COMMAND_ID 0x20 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_PROGRAMMING_EVENT_NOTIFICATION_COMMAND_ID 0x21 // Ver.: since ha-1.2-05-3520-29 - -// Client to server -#define ZCL_LOCK_DOOR_COMMAND_ID 0x00 // Ver.: always -#define ZCL_UNLOCK_DOOR_COMMAND_ID 0x01 // Ver.: always -#define ZCL_TOGGLE_COMMAND_ID 0x02 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_UNLOCK_WITH_TIMEOUT_COMMAND_ID 0x03 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_GET_LOG_RECORD_COMMAND_ID 0x04 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_SET_PIN_COMMAND_ID 0x05 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_GET_PIN_COMMAND_ID 0x06 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_CLEAR_PIN_COMMAND_ID 0x07 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_CLEAR_ALL_PINS_COMMAND_ID 0x08 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_SET_USER_STATUS_COMMAND_ID 0x09 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_GET_USER_STATUS_COMMAND_ID 0x0A // Ver.: since ha-1.2-05-3520-29 -#define ZCL_SET_WEEKDAY_SCHEDULE_COMMAND_ID 0x0B // Ver.: since ha-1.2-05-3520-29 -#define ZCL_GET_WEEKDAY_SCHEDULE_COMMAND_ID 0x0C // Ver.: since ha-1.2-05-3520-29 -#define ZCL_CLEAR_WEEKDAY_SCHEDULE_COMMAND_ID 0x0D // Ver.: since ha-1.2-05-3520-29 -#define ZCL_SET_YEARDAY_SCHEDULE_COMMAND_ID 0x0E // Ver.: since ha-1.2-05-3520-29 -#define ZCL_GET_YEARDAY_SCHEDULE_COMMAND_ID 0x0F // Ver.: since ha-1.2-05-3520-29 -#define ZCL_CLEAR_YEARDAY_SCHEDULE_COMMAND_ID 0x10 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_SET_HOLIDAY_SCHEDULE_COMMAND_ID 0x11 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_GET_HOLIDAY_SCHEDULE_COMMAND_ID 0x12 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_CLEAR_HOLIDAY_SCHEDULE_COMMAND_ID 0x13 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_SET_USER_TYPE_COMMAND_ID 0x14 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_GET_USER_TYPE_COMMAND_ID 0x15 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_SET_RFID_COMMAND_ID 0x16 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_GET_RFID_COMMAND_ID 0x17 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_CLEAR_RFID_COMMAND_ID 0x18 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_CLEAR_ALL_RFIDS_COMMAND_ID 0x19 // Ver.: since ha-1.2-05-3520-29 - -// Command types for cluster: Window Covering -// Cluster specification level: zcl-6.0-15-02018-001 - -// Client to server -#define ZCL_WINDOW_COVERING_UP_OPEN_COMMAND_ID 0x00 // Ver.: always -#define ZCL_WINDOW_COVERING_DOWN_CLOSE_COMMAND_ID 0x01 // Ver.: always -#define ZCL_WINDOW_COVERING_STOP_COMMAND_ID 0x02 // Ver.: always -#define ZCL_WINDOW_COVERING_GO_TO_LIFT_VALUE_COMMAND_ID 0x04 // Ver.: always -#define ZCL_WINDOW_COVERING_GO_TO_LIFT_PERCENTAGE_COMMAND_ID 0x05 // Ver.: always -#define ZCL_WINDOW_COVERING_GO_TO_TILT_VALUE_COMMAND_ID 0x07 // Ver.: always -#define ZCL_WINDOW_COVERING_GO_TO_TILT_PERCENTAGE_COMMAND_ID 0x08 // Ver.: always - -// Command types for cluster: Barrier Control -// Cluster specification level: zcl-6.0-15-02018-001 - -// Client to server -#define ZCL_BARRIER_CONTROL_GO_TO_PERCENT_COMMAND_ID 0x00 // Ver.: always -#define ZCL_BARRIER_CONTROL_STOP_COMMAND_ID 0x01 // Ver.: always - -// Command types for cluster: Thermostat -// Cluster specification level: zcl-6.0-15-02018-001 - -// Server to client -#define ZCL_CURRENT_WEEKLY_SCHEDULE_COMMAND_ID 0x00 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_RELAY_STATUS_LOG_COMMAND_ID 0x01 // Ver.: since ha-1.2-05-3520-29 - -// Client to server -#define ZCL_SETPOINT_RAISE_LOWER_COMMAND_ID 0x00 // Ver.: always -#define ZCL_SET_WEEKLY_SCHEDULE_COMMAND_ID 0x01 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_GET_WEEKLY_SCHEDULE_COMMAND_ID 0x02 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_CLEAR_WEEKLY_SCHEDULE_COMMAND_ID 0x03 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_GET_RELAY_STATUS_LOG_COMMAND_ID 0x04 // Ver.: since ha-1.2-05-3520-29 - -// Command types for cluster: Color Control -// Cluster specification level: zcl6-errata-14-0129-15 - -// Client to server -#define ZCL_MOVE_TO_HUE_COMMAND_ID 0x00 // Ver.: always -#define ZCL_MOVE_HUE_COMMAND_ID 0x01 // Ver.: always -#define ZCL_STEP_HUE_COMMAND_ID 0x02 // Ver.: always -#define ZCL_MOVE_TO_SATURATION_COMMAND_ID 0x03 // Ver.: always -#define ZCL_MOVE_SATURATION_COMMAND_ID 0x04 // Ver.: always -#define ZCL_STEP_SATURATION_COMMAND_ID 0x05 // Ver.: always -#define ZCL_MOVE_TO_HUE_AND_SATURATION_COMMAND_ID 0x06 // Ver.: always -#define ZCL_MOVE_TO_COLOR_COMMAND_ID 0x07 // Ver.: always -#define ZCL_MOVE_COLOR_COMMAND_ID 0x08 // Ver.: always -#define ZCL_STEP_COLOR_COMMAND_ID 0x09 // Ver.: always -#define ZCL_MOVE_TO_COLOR_TEMPERATURE_COMMAND_ID 0x0A // Ver.: always -#define ZCL_ENHANCED_MOVE_TO_HUE_COMMAND_ID 0x40 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_ENHANCED_MOVE_HUE_COMMAND_ID 0x41 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_ENHANCED_STEP_HUE_COMMAND_ID 0x42 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_ENHANCED_MOVE_TO_HUE_AND_SATURATION_COMMAND_ID 0x43 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_COLOR_LOOP_SET_COMMAND_ID 0x44 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_STOP_MOVE_STEP_COMMAND_ID 0x47 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_MOVE_COLOR_TEMPERATURE_COMMAND_ID 0x4B // Ver.: since zll-1.0-11-0037-10 -#define ZCL_STEP_COLOR_TEMPERATURE_COMMAND_ID 0x4C // Ver.: since zll-1.0-11-0037-10 - -// Command types for cluster: IAS Zone -// Cluster specification level: zcl-6.0-15-02018-001 - -// Server to client -#define ZCL_ZONE_STATUS_CHANGE_NOTIFICATION_COMMAND_ID 0x00 // Ver.: always -#define ZCL_ZONE_ENROLL_REQUEST_COMMAND_ID 0x01 // Ver.: always -#define ZCL_INITIATE_NORMAL_OPERATION_MODE_RESPONSE_COMMAND_ID 0x02 // Ver.: always -#define ZCL_INITIATE_TEST_MODE_RESPONSE_COMMAND_ID 0x03 // Ver.: always - -// Client to server -#define ZCL_ZONE_ENROLL_RESPONSE_COMMAND_ID 0x00 // Ver.: always -#define ZCL_INITIATE_NORMAL_OPERATION_MODE_COMMAND_ID 0x01 // Ver.: always -#define ZCL_INITIATE_TEST_MODE_COMMAND_ID 0x02 // Ver.: always - -// Command types for cluster: IAS ACE -// Cluster specification level: zcl-6.0-15-02018-001 - -// Server to client -#define ZCL_ARM_RESPONSE_COMMAND_ID 0x00 // Ver.: always -#define ZCL_GET_ZONE_ID_MAP_RESPONSE_COMMAND_ID 0x01 // Ver.: always -#define ZCL_GET_ZONE_INFORMATION_RESPONSE_COMMAND_ID 0x02 // Ver.: always -#define ZCL_ZONE_STATUS_CHANGED_COMMAND_ID 0x03 // Ver.: always -#define ZCL_PANEL_STATUS_CHANGED_COMMAND_ID 0x04 // Ver.: always -#define ZCL_GET_PANEL_STATUS_RESPONSE_COMMAND_ID 0x05 // Ver.: since ha-1.2.1-05-3520-30 -#define ZCL_SET_BYPASSED_ZONE_LIST_COMMAND_ID 0x06 // Ver.: since ha-1.2.1-05-3520-30 -#define ZCL_BYPASS_RESPONSE_COMMAND_ID 0x07 // Ver.: since ha-1.2.1-05-3520-30 -#define ZCL_GET_ZONE_STATUS_RESPONSE_COMMAND_ID 0x08 // Ver.: since ha-1.2.1-05-3520-30 - -// Client to server -#define ZCL_ARM_COMMAND_ID 0x00 // Ver.: always -#define ZCL_BYPASS_COMMAND_ID 0x01 // Ver.: always -#define ZCL_EMERGENCY_COMMAND_ID 0x02 // Ver.: always -#define ZCL_FIRE_COMMAND_ID 0x03 // Ver.: always -#define ZCL_PANIC_COMMAND_ID 0x04 // Ver.: always -#define ZCL_GET_ZONE_ID_MAP_COMMAND_ID 0x05 // Ver.: always -#define ZCL_GET_ZONE_INFORMATION_COMMAND_ID 0x06 // Ver.: always -#define ZCL_GET_PANEL_STATUS_COMMAND_ID 0x07 // Ver.: since ha-1.2.1-05-3520-30 -#define ZCL_GET_BYPASSED_ZONE_LIST_COMMAND_ID 0x08 // Ver.: since ha-1.2.1-05-3520-30 -#define ZCL_GET_ZONE_STATUS_COMMAND_ID 0x09 // Ver.: since ha-1.2.1-05-3520-30 - -// Command types for cluster: IAS WD -// Cluster specification level: zcl-6.0-15-02018-001 - -// Client to server -#define ZCL_START_WARNING_COMMAND_ID 0x00 // Ver.: always -#define ZCL_SQUAWK_COMMAND_ID 0x01 // Ver.: always - -// Command types for cluster: Generic Tunnel -// Cluster specification level: cba-1.0-05-3516-12 - -// Server to client -#define ZCL_MATCH_PROTOCOL_ADDRESS_RESPONSE_COMMAND_ID 0x00 // Ver.: always -#define ZCL_ADVERTISE_PROTOCOL_ADDRESS_COMMAND_ID 0x01 // Ver.: always - -// Client to server -#define ZCL_MATCH_PROTOCOL_ADDRESS_COMMAND_ID 0x00 // Ver.: always - -// Command types for cluster: BACnet Protocol Tunnel -// Cluster specification level: cba-1.0-05-3516-12 - -// Client to server -#define ZCL_TRANSFER_NPDU_COMMAND_ID 0x00 // Ver.: always - -// Command types for cluster: 11073 Protocol Tunnel -// Cluster specification level: hc-1.0-07-5360-15 - -// Client to server -#define ZCL_TRANSFER_A_P_D_U_COMMAND_ID 0x00 // Ver.: always -#define ZCL_CONNECT_REQUEST_COMMAND_ID 0x01 // Ver.: always -#define ZCL_DISCONNECT_REQUEST_COMMAND_ID 0x02 // Ver.: always -#define ZCL_CONNECT_STATUS_NOTIFICATION_COMMAND_ID 0x03 // Ver.: always - -// Command types for cluster: ISO 7816 Protocol Tunnel -// Cluster specification level: ta-1.0-07-5307-07 - -// Client to server -#define ZCL_INSERT_SMART_CARD_COMMAND_ID 0x01 // Ver.: always -#define ZCL_EXTRACT_SMART_CARD_COMMAND_ID 0x02 // Ver.: always - -// Either direction -#define ZCL_TRANSFER_APDU_COMMAND_ID 0x00 // Ver.: always - -// Command types for cluster: Price -// Cluster specification level: se-1.2b-15-0131-02 - -// Server to client -#define ZCL_PUBLISH_PRICE_COMMAND_ID 0x00 // Ver.: always -#define ZCL_PUBLISH_BLOCK_PERIOD_COMMAND_ID 0x01 // Ver.: since se-1.1-07-5356-16 -#define ZCL_PUBLISH_CONVERSION_FACTOR_COMMAND_ID 0x02 // Ver.: since se-1.1a-07-5356-17 -#define ZCL_PUBLISH_CALORIFIC_VALUE_COMMAND_ID 0x03 // Ver.: since se-1.1a-07-5356-17 -#define ZCL_PUBLISH_TARIFF_INFORMATION_COMMAND_ID 0x04 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PUBLISH_PRICE_MATRIX_COMMAND_ID 0x05 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PUBLISH_BLOCK_THRESHOLDS_COMMAND_ID 0x06 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PUBLISH_C_O2_VALUE_COMMAND_ID 0x07 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PUBLISH_TIER_LABELS_COMMAND_ID 0x08 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PUBLISH_BILLING_PERIOD_COMMAND_ID 0x09 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PUBLISH_CONSOLIDATED_BILL_COMMAND_ID 0x0A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PUBLISH_CPP_EVENT_COMMAND_ID 0x0B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PUBLISH_CREDIT_PAYMENT_COMMAND_ID 0x0C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PUBLISH_CURRENCY_CONVERSION_COMMAND_ID 0x0D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CANCEL_TARIFF_COMMAND_ID 0x0E // Ver.: since se-1.2a-07-5356-19 - -// Client to server -#define ZCL_GET_CURRENT_PRICE_COMMAND_ID 0x00 // Ver.: always -#define ZCL_GET_SCHEDULED_PRICES_COMMAND_ID 0x01 // Ver.: always -#define ZCL_PRICE_ACKNOWLEDGEMENT_COMMAND_ID 0x02 // Ver.: since se-1.1-07-5356-16 -#define ZCL_GET_BLOCK_PERIODS_COMMAND_ID 0x03 // Ver.: since se-1.1-07-5356-16 -#define ZCL_GET_CONVERSION_FACTOR_COMMAND_ID 0x04 // Ver.: since se-1.1a-07-5356-17 -#define ZCL_GET_CALORIFIC_VALUE_COMMAND_ID 0x05 // Ver.: since se-1.1a-07-5356-17 -#define ZCL_GET_TARIFF_INFORMATION_COMMAND_ID 0x06 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_GET_PRICE_MATRIX_COMMAND_ID 0x07 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_GET_BLOCK_THRESHOLDS_COMMAND_ID 0x08 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_GET_C_O2_VALUE_COMMAND_ID 0x09 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_GET_TIER_LABELS_COMMAND_ID 0x0A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_GET_BILLING_PERIOD_COMMAND_ID 0x0B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_GET_CONSOLIDATED_BILL_COMMAND_ID 0x0C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CPP_EVENT_RESPONSE_COMMAND_ID 0x0D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_GET_CREDIT_PAYMENT_COMMAND_ID 0x0E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_GET_CURRENCY_CONVERSION_COMMAND_COMMAND_ID 0x0F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_GET_TARIFF_CANCELLATION_COMMAND_ID 0x10 // Ver.: since se-1.2a-07-5356-19 - -// Command types for cluster: Demand Response and Load Control -// Cluster specification level: se-1.2b-15-0131-02 - -// Server to client -#define ZCL_LOAD_CONTROL_EVENT_COMMAND_ID 0x00 // Ver.: always -#define ZCL_CANCEL_LOAD_CONTROL_EVENT_COMMAND_ID 0x01 // Ver.: always -#define ZCL_CANCEL_ALL_LOAD_CONTROL_EVENTS_COMMAND_ID 0x02 // Ver.: always - -// Client to server -#define ZCL_REPORT_EVENT_STATUS_COMMAND_ID 0x00 // Ver.: always -#define ZCL_GET_SCHEDULED_EVENTS_COMMAND_ID 0x01 // Ver.: always - -// Command types for cluster: Simple Metering -// Cluster specification level: se-1.2b-15-0131-02 - -// Server to client -#define ZCL_GET_PROFILE_RESPONSE_COMMAND_ID 0x00 // Ver.: always -#define ZCL_REQUEST_MIRROR_COMMAND_ID 0x01 // Ver.: always -#define ZCL_REMOVE_MIRROR_COMMAND_ID 0x02 // Ver.: always -#define ZCL_REQUEST_FAST_POLL_MODE_RESPONSE_COMMAND_ID 0x03 // Ver.: since se-1.1-07-5356-16 -#define ZCL_SCHEDULE_SNAPSHOT_RESPONSE_COMMAND_ID 0x04 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TAKE_SNAPSHOT_RESPONSE_COMMAND_ID 0x05 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PUBLISH_SNAPSHOT_COMMAND_ID 0x06 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_GET_SAMPLED_DATA_RESPONSE_COMMAND_ID 0x07 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CONFIGURE_MIRROR_COMMAND_ID 0x08 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CONFIGURE_NOTIFICATION_SCHEME_COMMAND_ID 0x09 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CONFIGURE_NOTIFICATION_FLAGS_COMMAND_ID 0x0A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_GET_NOTIFIED_MESSAGE_COMMAND_ID 0x0B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_SUPPLY_STATUS_RESPONSE_COMMAND_ID 0x0C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_START_SAMPLING_RESPONSE_COMMAND_ID 0x0D // Ver.: since se-1.2a-07-5356-19 - -// Client to server -#define ZCL_GET_PROFILE_COMMAND_ID 0x00 // Ver.: always -#define ZCL_REQUEST_MIRROR_RESPONSE_COMMAND_ID 0x01 // Ver.: always -#define ZCL_MIRROR_REMOVED_COMMAND_ID 0x02 // Ver.: always -#define ZCL_REQUEST_FAST_POLL_MODE_COMMAND_ID 0x03 // Ver.: since se-1.1-07-5356-16 -#define ZCL_SCHEDULE_SNAPSHOT_COMMAND_ID 0x04 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TAKE_SNAPSHOT_COMMAND_ID 0x05 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_GET_SNAPSHOT_COMMAND_ID 0x06 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_START_SAMPLING_COMMAND_ID 0x07 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_GET_SAMPLED_DATA_COMMAND_ID 0x08 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_MIRROR_REPORT_ATTRIBUTE_RESPONSE_COMMAND_ID 0x09 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RESET_LOAD_LIMIT_COUNTER_COMMAND_ID 0x0A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CHANGE_SUPPLY_COMMAND_ID 0x0B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_LOCAL_CHANGE_SUPPLY_COMMAND_ID 0x0C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_SET_SUPPLY_STATUS_COMMAND_ID 0x0D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_SET_UNCONTROLLED_FLOW_THRESHOLD_COMMAND_ID 0x0E // Ver.: since se-1.2a-07-5356-19 - -// Command types for cluster: Messaging -// Cluster specification level: se-1.2b-15-0131-02 - -// Server to client -#define ZCL_DISPLAY_MESSAGE_COMMAND_ID 0x00 // Ver.: always -#define ZCL_CANCEL_MESSAGE_COMMAND_ID 0x01 // Ver.: always -#define ZCL_DISPLAY_PROTECTED_MESSAGE_COMMAND_ID 0x02 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CANCEL_ALL_MESSAGES_COMMAND_ID 0x03 // Ver.: since se-1.2a-07-5356-19 - -// Client to server -#define ZCL_GET_LAST_MESSAGE_COMMAND_ID 0x00 // Ver.: always -#define ZCL_MESSAGE_CONFIRMATION_COMMAND_ID 0x01 // Ver.: always -#define ZCL_GET_MESSAGE_CANCELLATION_COMMAND_ID 0x02 // Ver.: since se-1.2a-07-5356-19 - -// Command types for cluster: Tunneling -// Cluster specification level: se-1.2b-15-0131-02 - -// Server to client -#define ZCL_REQUEST_TUNNEL_RESPONSE_COMMAND_ID 0x00 // Ver.: always -#define ZCL_TRANSFER_DATA_SERVER_TO_CLIENT_COMMAND_ID 0x01 // Ver.: always -#define ZCL_TRANSFER_DATA_ERROR_SERVER_TO_CLIENT_COMMAND_ID 0x02 // Ver.: always -#define ZCL_ACK_TRANSFER_DATA_SERVER_TO_CLIENT_COMMAND_ID 0x03 // Ver.: always -#define ZCL_READY_DATA_SERVER_TO_CLIENT_COMMAND_ID 0x04 // Ver.: always -#define ZCL_SUPPORTED_TUNNEL_PROTOCOLS_RESPONSE_COMMAND_ID 0x05 // Ver.: since se-1.1a-07-5356-17 -#define ZCL_TUNNEL_CLOSURE_NOTIFICATION_COMMAND_ID 0x06 // Ver.: since se-1.1a-07-5356-17 - -// Client to server -#define ZCL_REQUEST_TUNNEL_COMMAND_ID 0x00 // Ver.: always -#define ZCL_CLOSE_TUNNEL_COMMAND_ID 0x01 // Ver.: always -#define ZCL_TRANSFER_DATA_CLIENT_TO_SERVER_COMMAND_ID 0x02 // Ver.: always -#define ZCL_TRANSFER_DATA_ERROR_CLIENT_TO_SERVER_COMMAND_ID 0x03 // Ver.: always -#define ZCL_ACK_TRANSFER_DATA_CLIENT_TO_SERVER_COMMAND_ID 0x04 // Ver.: always -#define ZCL_READY_DATA_CLIENT_TO_SERVER_COMMAND_ID 0x05 // Ver.: always -#define ZCL_GET_SUPPORTED_TUNNEL_PROTOCOLS_COMMAND_ID 0x06 // Ver.: since se-1.1a-07-5356-17 - -// Command types for cluster: Prepayment -// Cluster specification level: se-1.2b-15-0131-02 - -// Server to client -#define ZCL_PUBLISH_PREPAY_SNAPSHOT_COMMAND_ID 0x01 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CHANGE_PAYMENT_MODE_RESPONSE_COMMAND_ID 0x02 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CONSUMER_TOP_UP_RESPONSE_COMMAND_ID 0x03 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PUBLISH_TOP_UP_LOG_COMMAND_ID 0x05 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PUBLISH_DEBT_LOG_COMMAND_ID 0x06 // Ver.: since se-1.2a-07-5356-19 - -// Client to server -#define ZCL_SELECT_AVAILABLE_EMERGENCY_CREDIT_COMMAND_ID 0x00 // Ver.: always -#define ZCL_CHANGE_DEBT_COMMAND_ID 0x02 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_EMERGENCY_CREDIT_SETUP_COMMAND_ID 0x03 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CONSUMER_TOP_UP_COMMAND_ID 0x04 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CREDIT_ADJUSTMENT_COMMAND_ID 0x05 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CHANGE_PAYMENT_MODE_COMMAND_ID 0x06 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_GET_PREPAY_SNAPSHOT_COMMAND_ID 0x07 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_GET_TOP_UP_LOG_COMMAND_ID 0x08 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_SET_LOW_CREDIT_WARNING_LEVEL_COMMAND_ID 0x09 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_GET_DEBT_REPAYMENT_LOG_COMMAND_ID 0x0A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_SET_MAXIMUM_CREDIT_LIMIT_COMMAND_ID 0x0B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_SET_OVERALL_DEBT_CAP_COMMAND_ID 0x0C // Ver.: since se-1.2a-07-5356-19 - -// Command types for cluster: Energy Management -// Cluster specification level: se-1.2b-15-0131-02 - -// Server to client -#define ZCL_REPORT_EVENT_STATUS_COMMAND_ID 0x00 // Ver.: always - -// Client to server -#define ZCL_MANAGE_EVENT_COMMAND_ID 0x00 // Ver.: always - -// Command types for cluster: Calendar -// Cluster specification level: se-1.2b-15-0131-02 - -// Server to client -#define ZCL_PUBLISH_CALENDAR_COMMAND_ID 0x00 // Ver.: always -#define ZCL_PUBLISH_DAY_PROFILE_COMMAND_ID 0x01 // Ver.: always -#define ZCL_PUBLISH_WEEK_PROFILE_COMMAND_ID 0x02 // Ver.: always -#define ZCL_PUBLISH_SEASONS_COMMAND_ID 0x03 // Ver.: always -#define ZCL_PUBLISH_SPECIAL_DAYS_COMMAND_ID 0x04 // Ver.: always -#define ZCL_CANCEL_CALENDAR_COMMAND_ID 0x05 // Ver.: always - -// Client to server -#define ZCL_GET_CALENDAR_COMMAND_ID 0x00 // Ver.: always -#define ZCL_GET_DAY_PROFILES_COMMAND_ID 0x01 // Ver.: always -#define ZCL_GET_WEEK_PROFILES_COMMAND_ID 0x02 // Ver.: always -#define ZCL_GET_SEASONS_COMMAND_ID 0x03 // Ver.: always -#define ZCL_GET_SPECIAL_DAYS_COMMAND_ID 0x04 // Ver.: always -#define ZCL_GET_CALENDAR_CANCELLATION_COMMAND_ID 0x05 // Ver.: always - -// Command types for cluster: Device Management -// Cluster specification level: se-1.2b-15-0131-02 - -// Server to client -#define ZCL_PUBLISH_CHANGE_OF_TENANCY_COMMAND_ID 0x00 // Ver.: always -#define ZCL_PUBLISH_CHANGE_OF_SUPPLIER_COMMAND_ID 0x01 // Ver.: always -#define ZCL_REQUEST_NEW_PASSWORD_RESPONSE_COMMAND_ID 0x02 // Ver.: always -#define ZCL_UPDATE_SITE_ID_COMMAND_ID 0x03 // Ver.: always -#define ZCL_SET_EVENT_CONFIGURATION_COMMAND_ID 0x04 // Ver.: always -#define ZCL_GET_EVENT_CONFIGURATION_COMMAND_ID 0x05 // Ver.: always -#define ZCL_UPDATE_C_I_N_COMMAND_ID 0x06 // Ver.: always - -// Client to server -#define ZCL_GET_CHANGE_OF_TENANCY_COMMAND_ID 0x00 // Ver.: always -#define ZCL_GET_CHANGE_OF_SUPPLIER_COMMAND_ID 0x01 // Ver.: always -#define ZCL_REQUEST_NEW_PASSWORD_COMMAND_ID 0x02 // Ver.: always -#define ZCL_GET_SITE_ID_COMMAND_ID 0x03 // Ver.: always -#define ZCL_REPORT_EVENT_CONFIGURATION_COMMAND_ID 0x04 // Ver.: always -#define ZCL_GET_C_I_N_COMMAND_ID 0x05 // Ver.: always - -// Command types for cluster: Events -// Cluster specification level: se-1.2b-15-0131-02 - -// Server to client -#define ZCL_PUBLISH_EVENT_COMMAND_ID 0x00 // Ver.: always -#define ZCL_PUBLISH_EVENT_LOG_COMMAND_ID 0x01 // Ver.: always -#define ZCL_CLEAR_EVENT_LOG_RESPONSE_COMMAND_ID 0x02 // Ver.: always - -// Client to server -#define ZCL_GET_EVENT_LOG_COMMAND_ID 0x00 // Ver.: always -#define ZCL_CLEAR_EVENT_LOG_REQUEST_COMMAND_ID 0x01 // Ver.: always - -// Command types for cluster: MDU Pairing -// Cluster specification level: se-1.2b-15-0131-02 - -// Server to client -#define ZCL_PAIRING_RESPONSE_COMMAND_ID 0x00 // Ver.: always - -// Client to server -#define ZCL_PAIRING_REQUEST_COMMAND_ID 0x00 // Ver.: always - -// Command types for cluster: Sub-GHz -// Cluster specification level: se-1.2b-15-0131-02 - -// Server to client -#define ZCL_SUSPEND_ZCL_MESSAGES_COMMAND_ID 0x00 // Ver.: always - -// Client to server -#define ZCL_GET_SUSPEND_ZCL_MESSAGES_STATUS_COMMAND_ID 0x00 // Ver.: always - -// Command types for cluster: Key Establishment -// Cluster specification level: zcl-7.0-07-5123-07 - -// Server to client -#define ZCL_INITIATE_KEY_ESTABLISHMENT_RESPONSE_COMMAND_ID 0x00 // Ver.: always -#define ZCL_EPHEMERAL_DATA_RESPONSE_COMMAND_ID 0x01 // Ver.: always -#define ZCL_CONFIRM_KEY_DATA_RESPONSE_COMMAND_ID 0x02 // Ver.: always - -// Client to server -#define ZCL_INITIATE_KEY_ESTABLISHMENT_REQUEST_COMMAND_ID 0x00 // Ver.: always -#define ZCL_EPHEMERAL_DATA_REQUEST_COMMAND_ID 0x01 // Ver.: always -#define ZCL_CONFIRM_KEY_DATA_REQUEST_COMMAND_ID 0x02 // Ver.: always - -// Either direction -#define ZCL_TERMINATE_KEY_ESTABLISHMENT_COMMAND_ID 0x03 // Ver.: always - -// Command types for cluster: Information -// Cluster specification level: ta-1.0-07-5307-07 - -// Server to client -#define ZCL_REQUEST_INFORMATION_RESPONSE_COMMAND_ID 0x00 // Ver.: always -#define ZCL_PUSH_INFORMATION_COMMAND_ID 0x01 // Ver.: always -#define ZCL_SEND_PREFERENCE_RESPONSE_COMMAND_ID 0x02 // Ver.: always -#define ZCL_SERVER_REQUEST_PREFERENCE_COMMAND_ID 0x03 // Ver.: always -#define ZCL_REQUEST_PREFERENCE_CONFIRMATION_COMMAND_ID 0x04 // Ver.: always -#define ZCL_UPDATE_RESPONSE_COMMAND_ID 0x05 // Ver.: always -#define ZCL_DELETE_RESPONSE_COMMAND_ID 0x06 // Ver.: always - -// Client to server -#define ZCL_REQUEST_INFORMATION_COMMAND_ID 0x00 // Ver.: always -#define ZCL_PUSH_INFORMATION_RESPONSE_COMMAND_ID 0x01 // Ver.: always -#define ZCL_SEND_PREFERENCE_COMMAND_ID 0x02 // Ver.: always -#define ZCL_REQUEST_PREFERENCE_RESPONSE_COMMAND_ID 0x03 // Ver.: always -#define ZCL_UPDATE_COMMAND_ID 0x04 // Ver.: always -#define ZCL_DELETE_COMMAND_ID 0x05 // Ver.: always -#define ZCL_CONFIGURE_NODE_DESCRIPTION_COMMAND_ID 0x06 // Ver.: always -#define ZCL_CONFIGURE_DELIVERY_ENABLE_COMMAND_ID 0x07 // Ver.: always -#define ZCL_CONFIGURE_PUSH_INFORMATION_TIMER_COMMAND_ID 0x08 // Ver.: always -#define ZCL_CONFIGURE_SET_ROOT_ID_COMMAND_ID 0x09 // Ver.: always - -// Command types for cluster: Data Sharing -// Cluster specification level: ta-1.0-07-5307-07 - -// Server to client -#define ZCL_WRITE_FILE_REQUEST_COMMAND_ID 0x00 // Ver.: always -#define ZCL_MODIFY_FILE_REQUEST_COMMAND_ID 0x01 // Ver.: always -#define ZCL_MODIFY_RECORD_REQUEST_COMMAND_ID 0x02 // Ver.: always -#define ZCL_FILE_TRANSMISSION_COMMAND_ID 0x03 // Ver.: always -#define ZCL_RECORD_TRANSMISSION_COMMAND_ID 0x04 // Ver.: always - -// Client to server -#define ZCL_READ_FILE_REQUEST_COMMAND_ID 0x00 // Ver.: always -#define ZCL_READ_RECORD_REQUEST_COMMAND_ID 0x01 // Ver.: always -#define ZCL_WRITE_FILE_RESPONSE_COMMAND_ID 0x02 // Ver.: always - -// Command types for cluster: Gaming -// Cluster specification level: ta-1.0-07-5307-07 - -// Server to client -#define ZCL_GAME_ANNOUNCEMENT_COMMAND_ID 0x00 // Ver.: always -#define ZCL_GENERAL_RESPONSE_COMMAND_ID 0x01 // Ver.: always - -// Client to server -#define ZCL_SEARCH_GAME_COMMAND_ID 0x00 // Ver.: always -#define ZCL_JOIN_GAME_COMMAND_ID 0x01 // Ver.: always -#define ZCL_START_GAME_COMMAND_ID 0x02 // Ver.: always -#define ZCL_PAUSE_GAME_COMMAND_ID 0x03 // Ver.: always -#define ZCL_RESUME_GAME_COMMAND_ID 0x04 // Ver.: always -#define ZCL_QUIT_GAME_COMMAND_ID 0x05 // Ver.: always -#define ZCL_END_GAME_COMMAND_ID 0x06 // Ver.: always -#define ZCL_START_OVER_COMMAND_ID 0x07 // Ver.: always -#define ZCL_ACTION_CONTROL_COMMAND_ID 0x08 // Ver.: always -#define ZCL_DOWNLOAD_GAME_COMMAND_ID 0x09 // Ver.: always - -// Command types for cluster: Data Rate Control -// Cluster specification level: ta-1.0-07-5307-07 - -// Server to client -#define ZCL_DATA_RATE_CONTROL_COMMAND_ID 0x00 // Ver.: always - -// Client to server -#define ZCL_PATH_CREATION_COMMAND_ID 0x00 // Ver.: always -#define ZCL_DATA_RATE_NOTIFICATION_COMMAND_ID 0x01 // Ver.: always -#define ZCL_PATH_DELETION_COMMAND_ID 0x02 // Ver.: always - -// Command types for cluster: Voice over ZigBee -// Cluster specification level: ta-1.0-07-5307-07 - -// Server to client -#define ZCL_ESTABLISHMENT_RESPONSE_COMMAND_ID 0x00 // Ver.: always -#define ZCL_VOICE_TRANSMISSION_RESPONSE_COMMAND_ID 0x01 // Ver.: always -#define ZCL_CONTROL_COMMAND_ID 0x02 // Ver.: always - -// Client to server -#define ZCL_ESTABLISHMENT_REQUEST_COMMAND_ID 0x00 // Ver.: always -#define ZCL_VOICE_TRANSMISSION_COMMAND_ID 0x01 // Ver.: always -#define ZCL_VOICE_TRANSMISSION_COMPLETION_COMMAND_ID 0x02 // Ver.: always -#define ZCL_CONTROL_RESPONSE_COMMAND_ID 0x03 // Ver.: always - -// Command types for cluster: Chatting -// Cluster specification level: ta-1.0-07-5307-07 - -// Server to client -#define ZCL_START_CHAT_RESPONSE_COMMAND_ID 0x00 // Ver.: always -#define ZCL_JOIN_CHAT_RESPONSE_COMMAND_ID 0x01 // Ver.: always -#define ZCL_USER_LEFT_COMMAND_ID 0x02 // Ver.: always -#define ZCL_USER_JOINED_COMMAND_ID 0x03 // Ver.: always -#define ZCL_SEARCH_CHAT_RESPONSE_COMMAND_ID 0x04 // Ver.: always -#define ZCL_SWITCH_CHAIRMAN_REQUEST_COMMAND_ID 0x05 // Ver.: always -#define ZCL_SWITCH_CHAIRMAN_CONFIRM_COMMAND_ID 0x06 // Ver.: always -#define ZCL_SWITCH_CHAIRMAN_NOTIFICATION_COMMAND_ID 0x07 // Ver.: always -#define ZCL_GET_NODE_INFORMATION_RESPONSE_COMMAND_ID 0x08 // Ver.: always - -// Client to server -#define ZCL_JOIN_CHAT_REQUEST_COMMAND_ID 0x00 // Ver.: always -#define ZCL_LEAVE_CHAT_REQUEST_COMMAND_ID 0x01 // Ver.: always -#define ZCL_SEARCH_CHAT_REQUEST_COMMAND_ID 0x02 // Ver.: always -#define ZCL_SWITCH_CHAIRMAN_RESPONSE_COMMAND_ID 0x03 // Ver.: always -#define ZCL_START_CHAT_REQUEST_COMMAND_ID 0x04 // Ver.: always -#define ZCL_CHAT_MESSAGE_COMMAND_ID 0x05 // Ver.: always -#define ZCL_GET_NODE_INFORMATION_REQUEST_COMMAND_ID 0x06 // Ver.: always - -// Command types for cluster: Payment -// Cluster specification level: ta-1.0-07-5307-07 - -// Server to client -#define ZCL_BUY_CONFIRM_COMMAND_ID 0x00 // Ver.: always -#define ZCL_RECEIPT_DELIVERY_COMMAND_ID 0x01 // Ver.: always -#define ZCL_TRANSACTION_END_COMMAND_ID 0x02 // Ver.: always - -// Client to server -#define ZCL_BUY_REQUEST_COMMAND_ID 0x00 // Ver.: always -#define ZCL_ACCEPT_PAYMENT_COMMAND_ID 0x01 // Ver.: always -#define ZCL_PAYMENT_CONFIRM_COMMAND_ID 0x02 // Ver.: always - -// Command types for cluster: Billing -// Cluster specification level: ta-1.0-07-5307-07 - -// Server to client -#define ZCL_CHECK_BILL_STATUS_COMMAND_ID 0x00 // Ver.: always -#define ZCL_SEND_BILL_RECORD_COMMAND_ID 0x01 // Ver.: always - -// Client to server -#define ZCL_SUBSCRIBE_COMMAND_ID 0x00 // Ver.: always -#define ZCL_UNSUBSCRIBE_COMMAND_ID 0x01 // Ver.: always -#define ZCL_START_BILLING_SESSION_COMMAND_ID 0x02 // Ver.: always -#define ZCL_STOP_BILLING_SESSION_COMMAND_ID 0x03 // Ver.: always -#define ZCL_BILL_STATUS_NOTIFICATION_COMMAND_ID 0x04 // Ver.: always -#define ZCL_SESSION_KEEP_ALIVE_COMMAND_ID 0x05 // Ver.: always - -// Command types for cluster: Appliance Events and Alert -// Cluster specification level: UNKNOWN - -// Server to client -#define ZCL_GET_ALERTS_RESPONSE_COMMAND_ID 0x00 // Ver.: always -#define ZCL_ALERTS_NOTIFICATION_COMMAND_ID 0x01 // Ver.: always -#define ZCL_EVENTS_NOTIFICATION_COMMAND_ID 0x02 // Ver.: always - -// Client to server -#define ZCL_GET_ALERTS_COMMAND_ID 0x00 // Ver.: always - -// Command types for cluster: Appliance Statistics -// Cluster specification level: UNKNOWN - -// Server to client -#define ZCL_LOG_NOTIFICATION_COMMAND_ID 0x00 // Ver.: always -#define ZCL_LOG_RESPONSE_COMMAND_ID 0x01 // Ver.: always -#define ZCL_LOG_QUEUE_RESPONSE_COMMAND_ID 0x02 // Ver.: always -#define ZCL_STATISTICS_AVAILABLE_COMMAND_ID 0x03 // Ver.: always - -// Client to server -#define ZCL_LOG_REQUEST_COMMAND_ID 0x00 // Ver.: always -#define ZCL_LOG_QUEUE_REQUEST_COMMAND_ID 0x01 // Ver.: always - -// Command types for cluster: Electrical Measurement -// Cluster specification level: UNKNOWN - -// Server to client -#define ZCL_GET_PROFILE_INFO_RESPONSE_COMMAND_COMMAND_ID 0x00 // Ver.: always -#define ZCL_GET_MEASUREMENT_PROFILE_RESPONSE_COMMAND_COMMAND_ID 0x01 // Ver.: always - -// Client to server -#define ZCL_GET_PROFILE_INFO_COMMAND_COMMAND_ID 0x00 // Ver.: always -#define ZCL_GET_MEASUREMENT_PROFILE_COMMAND_COMMAND_ID 0x01 // Ver.: always - -// Command types for cluster: ZLL Commissioning -// Cluster specification level: zll-1.0-11-0037-10 - -// Server to client -#define ZCL_SCAN_RESPONSE_COMMAND_ID 0x01 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_DEVICE_INFORMATION_RESPONSE_COMMAND_ID 0x03 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_NETWORK_START_RESPONSE_COMMAND_ID 0x11 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_NETWORK_JOIN_ROUTER_RESPONSE_COMMAND_ID 0x13 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_NETWORK_JOIN_END_DEVICE_RESPONSE_COMMAND_ID 0x15 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_ENDPOINT_INFORMATION_COMMAND_ID 0x40 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_GET_GROUP_IDENTIFIERS_RESPONSE_COMMAND_ID 0x41 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_GET_ENDPOINT_LIST_RESPONSE_COMMAND_ID 0x42 // Ver.: since zll-1.0-11-0037-10 - -// Client to server -#define ZCL_SCAN_REQUEST_COMMAND_ID 0x00 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_DEVICE_INFORMATION_REQUEST_COMMAND_ID 0x02 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_IDENTIFY_REQUEST_COMMAND_ID 0x06 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_RESET_TO_FACTORY_NEW_REQUEST_COMMAND_ID 0x07 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_NETWORK_START_REQUEST_COMMAND_ID 0x10 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_NETWORK_JOIN_ROUTER_REQUEST_COMMAND_ID 0x12 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_NETWORK_JOIN_END_DEVICE_REQUEST_COMMAND_ID 0x14 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_NETWORK_UPDATE_REQUEST_COMMAND_ID 0x16 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_GET_GROUP_IDENTIFIERS_REQUEST_COMMAND_ID 0x41 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_GET_ENDPOINT_LIST_REQUEST_COMMAND_ID 0x42 // Ver.: since zll-1.0-11-0037-10 - -// Command types for cluster: Sample Mfg Specific Cluster -// Cluster specification level: UNKNOWN - -// Client to server -#define ZCL_COMMAND_ONE_COMMAND_ID 0x00 // Ver.: always mfgCode: 0x1002 - -// Command types for cluster: Sample Mfg Specific Cluster 2 -// Cluster specification level: UNKNOWN - -// Client to server -#define ZCL_COMMAND_TWO_COMMAND_ID 0x00 // Ver.: always mfgCode: 0x1049 - -// Command types for cluster: Configuration Cluster -// Cluster specification level: UNKNOWN - -// Server to client -#define ZCL_RETURN_TOKEN_COMMAND_ID 0x00 // Ver.: always mfgCode: 0x1002 - -// Client to server -#define ZCL_SET_TOKEN_COMMAND_ID 0x00 // Ver.: always mfgCode: 0x1002 -#define ZCL_LOCK_TOKENS_COMMAND_ID 0x01 // Ver.: always mfgCode: 0x1002 -#define ZCL_READ_TOKENS_COMMAND_ID 0x02 // Ver.: always mfgCode: 0x1002 -#define ZCL_UNLOCK_TOKENS_COMMAND_ID 0x03 // Ver.: always mfgCode: 0x1002 - -// Command types for cluster: MFGLIB Cluster -// Cluster specification level: UNKNOWN - -// Client to server -#define ZCL_STREAM_COMMAND_ID 0x00 // Ver.: always mfgCode: 0x1002 -#define ZCL_TONE_COMMAND_ID 0x01 // Ver.: always mfgCode: 0x1002 -#define ZCL_RX_MODE_COMMAND_ID 0x02 // Ver.: always mfgCode: 0x1002 - -// Command types for cluster: SL Works With All Hubs -// Cluster specification level: UNKNOWN - -// Server to client -#define ZCL_APS_LINK_KEY_AUTHORIZATION_QUERY_RESPONSE_COMMAND_ID 0x00 // Ver.: always mfgCode: 0x1217 -#define ZCL_POWERING_OFF_NOTIFICATION_COMMAND_ID 0x01 // Ver.: always mfgCode: 0x1217 -#define ZCL_POWERING_ON_NOTIFICATION_COMMAND_ID 0x02 // Ver.: always mfgCode: 0x1217 -#define ZCL_SHORT_ADDRESS_CHANGE_COMMAND_ID 0x03 // Ver.: always mfgCode: 0x1217 -#define ZCL_APS_ACK_ENABLEMENT_QUERY_RESPONSE_COMMAND_ID 0x04 // Ver.: always mfgCode: 0x1217 -#define ZCL_POWER_DESCRIPTOR_CHANGE_COMMAND_ID 0x05 // Ver.: always mfgCode: 0x1217 -#define ZCL_NEW_DEBUG_REPORT_NOTIFICATION_COMMAND_ID 0x06 // Ver.: always mfgCode: 0x1217 -#define ZCL_DEBUG_REPORT_QUERY_RESPONSE_COMMAND_ID 0x07 // Ver.: always mfgCode: 0x1217 -#define ZCL_TRUST_CENTER_FOR_CLUSTER_SERVER_QUERY_RESPONSE_COMMAND_ID 0x08 // Ver.: always mfgCode: 0x1217 -#define ZCL_SURVEY_BEACONS_RESPONSE_COMMAND_ID 0x09 // Ver.: always mfgCode: 0x1217 -#define ZCL_USE_TRUST_CENTER_FOR_CLUSTER_SERVER_RESPONSE_COMMAND_ID 0x9E // Ver.: always mfgCode: 0x1217 - -// Client to server -#define ZCL_ENABLE_APS_LINK_KEY_AUTHORIZATION_COMMAND_ID 0x00 // Ver.: always mfgCode: 0x1217 -#define ZCL_DISABLE_APS_LINK_KEY_AUTHORIZATION_COMMAND_ID 0x01 // Ver.: always mfgCode: 0x1217 -#define ZCL_APS_LINK_KEY_AUTHORIZATION_QUERY_COMMAND_ID 0x02 // Ver.: always mfgCode: 0x1217 -#define ZCL_REQUEST_NEW_APS_LINK_KEY_COMMAND_ID 0x03 // Ver.: always mfgCode: 0x1217 -#define ZCL_ENABLE_WWAH_APP_EVENT_RETRY_ALGORITHM_COMMAND_ID 0x04 // Ver.: always mfgCode: 0x1217 -#define ZCL_DISABLE_WWAH_APP_EVENT_RETRY_ALGORITHM_COMMAND_ID 0x05 // Ver.: always mfgCode: 0x1217 -#define ZCL_REQUEST_TIME_COMMAND_ID 0x06 // Ver.: always mfgCode: 0x1217 -#define ZCL_ENABLE_WWAH_REJOIN_ALGORITHM_COMMAND_ID 0x07 // Ver.: always mfgCode: 0x1217 -#define ZCL_DISABLE_WWAH_REJOIN_ALGORITHM_COMMAND_ID 0x08 // Ver.: always mfgCode: 0x1217 -#define ZCL_SET_IAS_ZONE_ENROLLMENT_METHOD_COMMAND_ID 0x09 // Ver.: always mfgCode: 0x1217 -#define ZCL_CLEAR_BINDING_TABLE_COMMAND_ID 0x0A // Ver.: always mfgCode: 0x1217 -#define ZCL_ENABLE_PERIODIC_ROUTER_CHECK_INS_COMMAND_ID 0x0B // Ver.: always mfgCode: 0x1217 -#define ZCL_DISABLE_PERIODIC_ROUTER_CHECK_INS_COMMAND_ID 0x0C // Ver.: always mfgCode: 0x1217 -#define ZCL_SET_MAC_POLL_FAILURE_WAIT_TIME_COMMAND_ID 0x0D // Ver.: always mfgCode: 0x1217 -#define ZCL_SET_PENDING_NETWORK_UPDATE_COMMAND_ID 0x0E // Ver.: always mfgCode: 0x1217 -#define ZCL_REQUIRE_APS_ACKS_ON_UNICASTS_COMMAND_ID 0x0F // Ver.: always mfgCode: 0x1217 -#define ZCL_REMOVE_APS_ACKS_ON_UNICASTS_REQUIREMENT_COMMAND_ID 0x10 // Ver.: always mfgCode: 0x1217 -#define ZCL_APS_ACK_REQUIREMENT_QUERY_COMMAND_ID 0x11 // Ver.: always mfgCode: 0x1217 -#define ZCL_DEBUG_REPORT_QUERY_COMMAND_ID 0x12 // Ver.: always mfgCode: 0x1217 -#define ZCL_SURVEY_BEACONS_COMMAND_ID 0x13 // Ver.: always mfgCode: 0x1217 -#define ZCL_DISABLE_OTA_DOWNGRADES_COMMAND_ID 0x14 // Ver.: always mfgCode: 0x1217 -#define ZCL_DISABLE_MGMT_LEAVE_WITHOUT_REJOIN_COMMAND_ID 0x15 // Ver.: always mfgCode: 0x1217 -#define ZCL_DISABLE_TOUCHLINK_INTERPAN_MESSAGE_SUPPORT_COMMAND_ID 0x16 // Ver.: always mfgCode: 0x1217 -#define ZCL_ENABLE_WWAH_PARENT_CLASSIFICATION_COMMAND_ID 0x17 // Ver.: always mfgCode: 0x1217 -#define ZCL_DISABLE_WWAH_PARENT_CLASSIFICATION_COMMAND_ID 0x18 // Ver.: always mfgCode: 0x1217 -#define ZCL_ENABLE_TC_SECURITY_ON_NTWK_KEY_ROTATION_COMMAND_ID 0x19 // Ver.: always mfgCode: 0x1217 -#define ZCL_ENABLE_WWAH_BAD_PARENT_RECOVERY_COMMAND_ID 0x1A // Ver.: always mfgCode: 0x1217 -#define ZCL_DISABLE_WWAH_BAD_PARENT_RECOVERY_COMMAND_ID 0x1B // Ver.: always mfgCode: 0x1217 -#define ZCL_ENABLE_CONFIGURATION_MODE_COMMAND_ID 0x1C // Ver.: always mfgCode: 0x1217 -#define ZCL_DISABLE_CONFIGURATION_MODE_COMMAND_ID 0x1D // Ver.: always mfgCode: 0x1217 -#define ZCL_USE_TRUST_CENTER_FOR_CLUSTER_SERVER_COMMAND_ID 0x1E // Ver.: always mfgCode: 0x1217 -#define ZCL_TRUST_CENTER_FOR_CLUSTER_SERVER_QUERY_COMMAND_ID 0x1F // Ver.: always mfgCode: 0x1217 -#endif // SILABS_EMBER_AF_COMMAND_ID +// Prevent multiple inclusion +#pragma once + +// Global, non-cluster-specific commands +#define ZCL_READ_ATTRIBUTES_COMMAND_ID (0x00) +#define ZCL_READ_ATTRIBUTES_RESPONSE_COMMAND_ID (0x01) +#define ZCL_WRITE_ATTRIBUTES_COMMAND_ID (0x02) +#define ZCL_WRITE_ATTRIBUTES_UNDIVIDED_COMMAND_ID (0x03) +#define ZCL_WRITE_ATTRIBUTES_RESPONSE_COMMAND_ID (0x04) +#define ZCL_WRITE_ATTRIBUTES_NO_RESPONSE_COMMAND_ID (0x05) +#define ZCL_CONFIGURE_REPORTING_COMMAND_ID (0x06) +#define ZCL_CONFIGURE_REPORTING_RESPONSE_COMMAND_ID (0x07) +#define ZCL_READ_REPORTING_CONFIGURATION_COMMAND_ID (0x08) +#define ZCL_READ_REPORTING_CONFIGURATION_RESPONSE_COMMAND_ID (0x09) +#define ZCL_REPORT_ATTRIBUTES_COMMAND_ID (0x0A) +#define ZCL_DEFAULT_RESPONSE_COMMAND_ID (0x0B) +#define ZCL_DISCOVER_ATTRIBUTES_COMMAND_ID (0x0C) +#define ZCL_DISCOVER_ATTRIBUTES_RESPONSE_COMMAND_ID (0x0D) +#define ZCL_READ_ATTRIBUTES_STRUCTURED_COMMAND_ID (0x0E) +#define ZCL_WRITE_ATTRIBUTES_STRUCTURED_COMMAND_ID (0x0F) +#define ZCL_WRITE_ATTRIBUTES_STRUCTURED_RESPONSE_COMMAND_ID (0x10) +#define ZCL_DISCOVER_COMMANDS_RECEIVED_COMMAND_ID (0x11) +#define ZCL_DISCOVER_COMMANDS_RECEIVED_RESPONSE_COMMAND_ID (0x12) +#define ZCL_DISCOVER_COMMANDS_GENERATED_COMMAND_ID (0x13) +#define ZCL_DISCOVER_COMMANDS_GENERATED_RESPONSE_COMMAND_ID (0x14) +#define ZCL_DISCOVER_ATTRIBUTES_EXTENDED_COMMAND_ID (0x15) +#define ZCL_DISCOVER_ATTRIBUTES_EXTENDED_RESPONSE_COMMAND_ID (0x16) + +// Commands for cluster: Basic +#define ZCL_RESET_TO_FACTORY_DEFAULTS_COMMAND_ID (0x00) + +// Commands for cluster: Identify +#define ZCL_IDENTIFY_COMMAND_ID (0x00) +#define ZCL_IDENTIFY_QUERY_RESPONSE_COMMAND_ID (0x00) +#define ZCL_IDENTIFY_QUERY_COMMAND_ID (0x01) +#define ZCL_EZ_MODE_INVOKE_COMMAND_ID (0x02) +#define ZCL_UPDATE_COMMISSION_STATE_COMMAND_ID (0x03) +#define ZCL_TRIGGER_EFFECT_COMMAND_ID (0x40) + +// Commands for cluster: Groups +#define ZCL_ADD_GROUP_COMMAND_ID (0x00) +#define ZCL_ADD_GROUP_RESPONSE_COMMAND_ID (0x00) +#define ZCL_VIEW_GROUP_COMMAND_ID (0x01) +#define ZCL_VIEW_GROUP_RESPONSE_COMMAND_ID (0x01) +#define ZCL_GET_GROUP_MEMBERSHIP_COMMAND_ID (0x02) +#define ZCL_GET_GROUP_MEMBERSHIP_RESPONSE_COMMAND_ID (0x02) +#define ZCL_REMOVE_GROUP_COMMAND_ID (0x03) +#define ZCL_REMOVE_GROUP_RESPONSE_COMMAND_ID (0x03) +#define ZCL_REMOVE_ALL_GROUPS_COMMAND_ID (0x04) +#define ZCL_ADD_GROUP_IF_IDENTIFYING_COMMAND_ID (0x05) + +// Commands for cluster: Scenes +#define ZCL_ADD_SCENE_COMMAND_ID (0x00) +#define ZCL_ADD_SCENE_RESPONSE_COMMAND_ID (0x00) +#define ZCL_VIEW_SCENE_COMMAND_ID (0x01) +#define ZCL_VIEW_SCENE_RESPONSE_COMMAND_ID (0x01) +#define ZCL_REMOVE_SCENE_COMMAND_ID (0x02) +#define ZCL_REMOVE_SCENE_RESPONSE_COMMAND_ID (0x02) +#define ZCL_REMOVE_ALL_SCENES_COMMAND_ID (0x03) +#define ZCL_REMOVE_ALL_SCENES_RESPONSE_COMMAND_ID (0x03) +#define ZCL_STORE_SCENE_COMMAND_ID (0x04) +#define ZCL_STORE_SCENE_RESPONSE_COMMAND_ID (0x04) +#define ZCL_RECALL_SCENE_COMMAND_ID (0x05) +#define ZCL_GET_SCENE_MEMBERSHIP_COMMAND_ID (0x06) +#define ZCL_GET_SCENE_MEMBERSHIP_RESPONSE_COMMAND_ID (0x06) +#define ZCL_ENHANCED_ADD_SCENE_COMMAND_ID (0x40) +#define ZCL_ENHANCED_ADD_SCENE_RESPONSE_COMMAND_ID (0x40) +#define ZCL_ENHANCED_VIEW_SCENE_COMMAND_ID (0x41) +#define ZCL_ENHANCED_VIEW_SCENE_RESPONSE_COMMAND_ID (0x41) +#define ZCL_COPY_SCENE_COMMAND_ID (0x42) +#define ZCL_COPY_SCENE_RESPONSE_COMMAND_ID (0x42) + +// Commands for cluster: On/off +#define ZCL_OFF_COMMAND_ID (0x00) +#define ZCL_SAMPLE_MFG_SPECIFIC_OFF_WITH_TRANSITION_COMMAND_ID (0x00) +#define ZCL_ON_COMMAND_ID (0x01) +#define ZCL_SAMPLE_MFG_SPECIFIC_ON_WITH_TRANSITION_COMMAND_ID (0x01) +#define ZCL_SAMPLE_MFG_SPECIFIC_ON_WITH_TRANSITION2_COMMAND_ID (0x01) +#define ZCL_TOGGLE_COMMAND_ID (0x02) +#define ZCL_SAMPLE_MFG_SPECIFIC_TOGGLE_WITH_TRANSITION_COMMAND_ID (0x02) +#define ZCL_SAMPLE_MFG_SPECIFIC_TOGGLE_WITH_TRANSITION2_COMMAND_ID (0x02) +#define ZCL_OFF_WITH_EFFECT_COMMAND_ID (0x40) +#define ZCL_ON_WITH_RECALL_GLOBAL_SCENE_COMMAND_ID (0x41) +#define ZCL_ON_WITH_TIMED_OFF_COMMAND_ID (0x42) + +// Commands for cluster: Level Control +#define ZCL_MOVE_TO_LEVEL_COMMAND_ID (0x00) +#define ZCL_MOVE_COMMAND_ID (0x01) +#define ZCL_STEP_COMMAND_ID (0x02) +#define ZCL_STOP_COMMAND_ID (0x03) +#define ZCL_MOVE_TO_LEVEL_WITH_ON_OFF_COMMAND_ID (0x04) +#define ZCL_MOVE_WITH_ON_OFF_COMMAND_ID (0x05) +#define ZCL_STEP_WITH_ON_OFF_COMMAND_ID (0x06) +#define ZCL_STOP_WITH_ON_OFF_COMMAND_ID (0x07) + +// Commands for cluster: Alarms +#define ZCL_RESET_ALARM_COMMAND_ID (0x00) +#define ZCL_ALARM_COMMAND_ID (0x00) +#define ZCL_RESET_ALL_ALARMS_COMMAND_ID (0x01) +#define ZCL_GET_ALARM_RESPONSE_COMMAND_ID (0x01) +#define ZCL_GET_ALARM_COMMAND_ID (0x02) +#define ZCL_RESET_ALARM_LOG_COMMAND_ID (0x03) + +// Commands for cluster: RSSI Location +#define ZCL_SET_ABSOLUTE_LOCATION_COMMAND_ID (0x00) +#define ZCL_DEVICE_CONFIGURATION_RESPONSE_COMMAND_ID (0x00) +#define ZCL_SET_DEVICE_CONFIGURATION_COMMAND_ID (0x01) +#define ZCL_LOCATION_DATA_RESPONSE_COMMAND_ID (0x01) +#define ZCL_GET_DEVICE_CONFIGURATION_COMMAND_ID (0x02) +#define ZCL_LOCATION_DATA_NOTIFICATION_COMMAND_ID (0x02) +#define ZCL_GET_LOCATION_DATA_COMMAND_ID (0x03) +#define ZCL_COMPACT_LOCATION_DATA_NOTIFICATION_COMMAND_ID (0x03) +#define ZCL_RSSI_RESPONSE_COMMAND_ID (0x04) +#define ZCL_RSSI_PING_COMMAND_ID (0x04) +#define ZCL_SEND_PINGS_COMMAND_ID (0x05) +#define ZCL_RSSI_REQUEST_COMMAND_ID (0x05) +#define ZCL_ANCHOR_NODE_ANNOUNCE_COMMAND_ID (0x06) +#define ZCL_REPORT_RSSI_MEASUREMENTS_COMMAND_ID (0x06) +#define ZCL_REQUEST_OWN_LOCATION_COMMAND_ID (0x07) + +// Commands for cluster: Commissioning +#define ZCL_RESTART_DEVICE_COMMAND_ID (0x00) +#define ZCL_RESTART_DEVICE_RESPONSE_COMMAND_ID (0x00) +#define ZCL_SAVE_STARTUP_PARAMETERS_COMMAND_ID (0x01) +#define ZCL_SAVE_STARTUP_PARAMETERS_RESPONSE_COMMAND_ID (0x01) +#define ZCL_RESTORE_STARTUP_PARAMETERS_COMMAND_ID (0x02) +#define ZCL_RESTORE_STARTUP_PARAMETERS_RESPONSE_COMMAND_ID (0x02) +#define ZCL_RESET_STARTUP_PARAMETERS_COMMAND_ID (0x03) +#define ZCL_RESET_STARTUP_PARAMETERS_RESPONSE_COMMAND_ID (0x03) + +// Commands for cluster: Partition +#define ZCL_TRANSFER_PARTITIONED_FRAME_COMMAND_ID (0x00) +#define ZCL_MULTIPLE_ACK_COMMAND_ID (0x00) +#define ZCL_READ_HANDSHAKE_PARAM_COMMAND_ID (0x01) +#define ZCL_READ_HANDSHAKE_PARAM_RESPONSE_COMMAND_ID (0x01) +#define ZCL_WRITE_HANDSHAKE_PARAM_COMMAND_ID (0x02) + +// Commands for cluster: Over the Air Bootloading +#define ZCL_IMAGE_NOTIFY_COMMAND_ID (0x00) +#define ZCL_QUERY_NEXT_IMAGE_REQUEST_COMMAND_ID (0x01) +#define ZCL_QUERY_NEXT_IMAGE_RESPONSE_COMMAND_ID (0x02) +#define ZCL_IMAGE_BLOCK_REQUEST_COMMAND_ID (0x03) +#define ZCL_IMAGE_PAGE_REQUEST_COMMAND_ID (0x04) +#define ZCL_IMAGE_BLOCK_RESPONSE_COMMAND_ID (0x05) +#define ZCL_UPGRADE_END_REQUEST_COMMAND_ID (0x06) +#define ZCL_UPGRADE_END_RESPONSE_COMMAND_ID (0x07) +#define ZCL_QUERY_SPECIFIC_FILE_REQUEST_COMMAND_ID (0x08) +#define ZCL_QUERY_SPECIFIC_FILE_RESPONSE_COMMAND_ID (0x09) + +// Commands for cluster: Power Profile +#define ZCL_POWER_PROFILE_REQUEST_COMMAND_ID (0x00) +#define ZCL_POWER_PROFILE_NOTIFICATION_COMMAND_ID (0x00) +#define ZCL_POWER_PROFILE_STATE_REQUEST_COMMAND_ID (0x01) +#define ZCL_POWER_PROFILE_RESPONSE_COMMAND_ID (0x01) +#define ZCL_GET_POWER_PROFILE_PRICE_RESPONSE_COMMAND_ID (0x02) +#define ZCL_POWER_PROFILE_STATE_RESPONSE_COMMAND_ID (0x02) +#define ZCL_GET_OVERALL_SCHEDULE_PRICE_RESPONSE_COMMAND_ID (0x03) +#define ZCL_GET_POWER_PROFILE_PRICE_COMMAND_ID (0x03) +#define ZCL_ENERGY_PHASES_SCHEDULE_NOTIFICATION_COMMAND_ID (0x04) +#define ZCL_POWER_PROFILES_STATE_NOTIFICATION_COMMAND_ID (0x04) +#define ZCL_ENERGY_PHASES_SCHEDULE_RESPONSE_COMMAND_ID (0x05) +#define ZCL_GET_OVERALL_SCHEDULE_PRICE_COMMAND_ID (0x05) +#define ZCL_POWER_PROFILE_SCHEDULE_CONSTRAINTS_REQUEST_COMMAND_ID (0x06) +#define ZCL_ENERGY_PHASES_SCHEDULE_REQUEST_COMMAND_ID (0x06) +#define ZCL_ENERGY_PHASES_SCHEDULE_STATE_REQUEST_COMMAND_ID (0x07) +#define ZCL_ENERGY_PHASES_SCHEDULE_STATE_RESPONSE_COMMAND_ID (0x07) +#define ZCL_GET_POWER_PROFILE_PRICE_EXTENDED_RESPONSE_COMMAND_ID (0x08) +#define ZCL_ENERGY_PHASES_SCHEDULE_STATE_NOTIFICATION_COMMAND_ID (0x08) +#define ZCL_POWER_PROFILE_SCHEDULE_CONSTRAINTS_NOTIFICATION_COMMAND_ID (0x09) +#define ZCL_POWER_PROFILE_SCHEDULE_CONSTRAINTS_RESPONSE_COMMAND_ID (0x0A) +#define ZCL_GET_POWER_PROFILE_PRICE_EXTENDED_COMMAND_ID (0x0B) + +// Commands for cluster: Appliance Control +#define ZCL_EXECUTION_OF_A_COMMAND_COMMAND_ID (0x00) +#define ZCL_SIGNAL_STATE_RESPONSE_COMMAND_ID (0x00) +#define ZCL_SIGNAL_STATE_COMMAND_ID (0x01) +#define ZCL_SIGNAL_STATE_NOTIFICATION_COMMAND_ID (0x01) +#define ZCL_WRITE_FUNCTIONS_COMMAND_ID (0x02) +#define ZCL_OVERLOAD_PAUSE_RESUME_COMMAND_ID (0x03) +#define ZCL_OVERLOAD_PAUSE_COMMAND_ID (0x04) +#define ZCL_OVERLOAD_WARNING_COMMAND_ID (0x05) + +// Commands for cluster: Poll Control +#define ZCL_CHECK_IN_COMMAND_ID (0x00) +#define ZCL_CHECK_IN_RESPONSE_COMMAND_ID (0x00) +#define ZCL_FAST_POLL_STOP_COMMAND_ID (0x01) +#define ZCL_SET_LONG_POLL_INTERVAL_COMMAND_ID (0x02) +#define ZCL_SET_SHORT_POLL_INTERVAL_COMMAND_ID (0x03) + +// Commands for cluster: Green Power +#define ZCL_GP_NOTIFICATION_COMMAND_ID (0x00) +#define ZCL_GP_NOTIFICATION_RESPONSE_COMMAND_ID (0x00) +#define ZCL_GP_PAIRING_SEARCH_COMMAND_ID (0x01) +#define ZCL_GP_PAIRING_COMMAND_ID (0x01) +#define ZCL_GP_PROXY_COMMISSIONING_MODE_COMMAND_ID (0x02) +#define ZCL_GP_TUNNELING_STOP_COMMAND_ID (0x03) +#define ZCL_GP_COMMISSIONING_NOTIFICATION_COMMAND_ID (0x04) +#define ZCL_GP_SINK_COMMISSIONING_MODE_COMMAND_ID (0x05) +#define ZCL_GP_RESPONSE_COMMAND_ID (0x06) +#define ZCL_GP_TRANSLATION_TABLE_UPDATE_COMMAND_ID (0x07) +#define ZCL_GP_TRANSLATION_TABLE_REQUEST_COMMAND_ID (0x08) +#define ZCL_GP_TRANSLATION_TABLE_RESPONSE_COMMAND_ID (0x08) +#define ZCL_GP_PAIRING_CONFIGURATION_COMMAND_ID (0x09) +#define ZCL_GP_SINK_TABLE_REQUEST_COMMAND_ID (0x0A) +#define ZCL_GP_SINK_TABLE_RESPONSE_COMMAND_ID (0x0A) +#define ZCL_GP_PROXY_TABLE_RESPONSE_COMMAND_ID (0x0B) +#define ZCL_GP_PROXY_TABLE_REQUEST_COMMAND_ID (0x0B) + +// Commands for cluster: Door Lock +#define ZCL_LOCK_DOOR_COMMAND_ID (0x00) +#define ZCL_LOCK_DOOR_RESPONSE_COMMAND_ID (0x00) +#define ZCL_UNLOCK_DOOR_COMMAND_ID (0x01) +#define ZCL_UNLOCK_DOOR_RESPONSE_COMMAND_ID (0x01) +#define ZCL_TOGGLE_COMMAND_ID (0x02) +#define ZCL_TOGGLE_RESPONSE_COMMAND_ID (0x02) +#define ZCL_UNLOCK_WITH_TIMEOUT_COMMAND_ID (0x03) +#define ZCL_UNLOCK_WITH_TIMEOUT_RESPONSE_COMMAND_ID (0x03) +#define ZCL_GET_LOG_RECORD_COMMAND_ID (0x04) +#define ZCL_GET_LOG_RECORD_RESPONSE_COMMAND_ID (0x04) +#define ZCL_SET_PIN_COMMAND_ID (0x05) +#define ZCL_SET_PIN_RESPONSE_COMMAND_ID (0x05) +#define ZCL_GET_PIN_COMMAND_ID (0x06) +#define ZCL_GET_PIN_RESPONSE_COMMAND_ID (0x06) +#define ZCL_CLEAR_PIN_COMMAND_ID (0x07) +#define ZCL_CLEAR_PIN_RESPONSE_COMMAND_ID (0x07) +#define ZCL_CLEAR_ALL_PINS_COMMAND_ID (0x08) +#define ZCL_CLEAR_ALL_PINS_RESPONSE_COMMAND_ID (0x08) +#define ZCL_SET_USER_STATUS_COMMAND_ID (0x09) +#define ZCL_SET_USER_STATUS_RESPONSE_COMMAND_ID (0x09) +#define ZCL_GET_USER_STATUS_COMMAND_ID (0x0A) +#define ZCL_GET_USER_STATUS_RESPONSE_COMMAND_ID (0x0A) +#define ZCL_SET_WEEKDAY_SCHEDULE_COMMAND_ID (0x0B) +#define ZCL_SET_WEEKDAY_SCHEDULE_RESPONSE_COMMAND_ID (0x0B) +#define ZCL_GET_WEEKDAY_SCHEDULE_COMMAND_ID (0x0C) +#define ZCL_GET_WEEKDAY_SCHEDULE_RESPONSE_COMMAND_ID (0x0C) +#define ZCL_CLEAR_WEEKDAY_SCHEDULE_COMMAND_ID (0x0D) +#define ZCL_CLEAR_WEEKDAY_SCHEDULE_RESPONSE_COMMAND_ID (0x0D) +#define ZCL_SET_YEARDAY_SCHEDULE_COMMAND_ID (0x0E) +#define ZCL_SET_YEARDAY_SCHEDULE_RESPONSE_COMMAND_ID (0x0E) +#define ZCL_GET_YEARDAY_SCHEDULE_COMMAND_ID (0x0F) +#define ZCL_GET_YEARDAY_SCHEDULE_RESPONSE_COMMAND_ID (0x0F) +#define ZCL_CLEAR_YEARDAY_SCHEDULE_COMMAND_ID (0x10) +#define ZCL_CLEAR_YEARDAY_SCHEDULE_RESPONSE_COMMAND_ID (0x10) +#define ZCL_SET_HOLIDAY_SCHEDULE_COMMAND_ID (0x11) +#define ZCL_SET_HOLIDAY_SCHEDULE_RESPONSE_COMMAND_ID (0x11) +#define ZCL_GET_HOLIDAY_SCHEDULE_COMMAND_ID (0x12) +#define ZCL_GET_HOLIDAY_SCHEDULE_RESPONSE_COMMAND_ID (0x12) +#define ZCL_CLEAR_HOLIDAY_SCHEDULE_COMMAND_ID (0x13) +#define ZCL_CLEAR_HOLIDAY_SCHEDULE_RESPONSE_COMMAND_ID (0x13) +#define ZCL_SET_USER_TYPE_COMMAND_ID (0x14) +#define ZCL_SET_USER_TYPE_RESPONSE_COMMAND_ID (0x14) +#define ZCL_GET_USER_TYPE_COMMAND_ID (0x15) +#define ZCL_GET_USER_TYPE_RESPONSE_COMMAND_ID (0x15) +#define ZCL_SET_RFID_COMMAND_ID (0x16) +#define ZCL_SET_RFID_RESPONSE_COMMAND_ID (0x16) +#define ZCL_GET_RFID_COMMAND_ID (0x17) +#define ZCL_GET_RFID_RESPONSE_COMMAND_ID (0x17) +#define ZCL_CLEAR_RFID_COMMAND_ID (0x18) +#define ZCL_CLEAR_RFID_RESPONSE_COMMAND_ID (0x18) +#define ZCL_CLEAR_ALL_RFIDS_COMMAND_ID (0x19) +#define ZCL_CLEAR_ALL_RFIDS_RESPONSE_COMMAND_ID (0x19) +#define ZCL_OPERATION_EVENT_NOTIFICATION_COMMAND_ID (0x20) +#define ZCL_PROGRAMMING_EVENT_NOTIFICATION_COMMAND_ID (0x21) + +// Commands for cluster: Window Covering +#define ZCL_WINDOW_COVERING_UP_OPEN_COMMAND_ID (0x00) +#define ZCL_WINDOW_COVERING_DOWN_CLOSE_COMMAND_ID (0x01) +#define ZCL_WINDOW_COVERING_STOP_COMMAND_ID (0x02) +#define ZCL_WINDOW_COVERING_GO_TO_LIFT_VALUE_COMMAND_ID (0x04) +#define ZCL_WINDOW_COVERING_GO_TO_LIFT_PERCENTAGE_COMMAND_ID (0x05) +#define ZCL_WINDOW_COVERING_GO_TO_TILT_VALUE_COMMAND_ID (0x07) +#define ZCL_WINDOW_COVERING_GO_TO_TILT_PERCENTAGE_COMMAND_ID (0x08) + +// Commands for cluster: Barrier Control +#define ZCL_BARRIER_CONTROL_GO_TO_PERCENT_COMMAND_ID (0x00) +#define ZCL_BARRIER_CONTROL_STOP_COMMAND_ID (0x01) + +// Commands for cluster: Thermostat +#define ZCL_SETPOINT_RAISE_LOWER_COMMAND_ID (0x00) +#define ZCL_CURRENT_WEEKLY_SCHEDULE_COMMAND_ID (0x00) +#define ZCL_SET_WEEKLY_SCHEDULE_COMMAND_ID (0x01) +#define ZCL_RELAY_STATUS_LOG_COMMAND_ID (0x01) +#define ZCL_GET_WEEKLY_SCHEDULE_COMMAND_ID (0x02) +#define ZCL_CLEAR_WEEKLY_SCHEDULE_COMMAND_ID (0x03) +#define ZCL_GET_RELAY_STATUS_LOG_COMMAND_ID (0x04) + +// Commands for cluster: Color Control +#define ZCL_MOVE_TO_HUE_COMMAND_ID (0x00) +#define ZCL_MOVE_HUE_COMMAND_ID (0x01) +#define ZCL_STEP_HUE_COMMAND_ID (0x02) +#define ZCL_MOVE_TO_SATURATION_COMMAND_ID (0x03) +#define ZCL_MOVE_SATURATION_COMMAND_ID (0x04) +#define ZCL_STEP_SATURATION_COMMAND_ID (0x05) +#define ZCL_MOVE_TO_HUE_AND_SATURATION_COMMAND_ID (0x06) +#define ZCL_MOVE_TO_COLOR_COMMAND_ID (0x07) +#define ZCL_MOVE_COLOR_COMMAND_ID (0x08) +#define ZCL_STEP_COLOR_COMMAND_ID (0x09) +#define ZCL_MOVE_TO_COLOR_TEMPERATURE_COMMAND_ID (0x0A) +#define ZCL_ENHANCED_MOVE_TO_HUE_COMMAND_ID (0x40) +#define ZCL_ENHANCED_MOVE_HUE_COMMAND_ID (0x41) +#define ZCL_ENHANCED_STEP_HUE_COMMAND_ID (0x42) +#define ZCL_ENHANCED_MOVE_TO_HUE_AND_SATURATION_COMMAND_ID (0x43) +#define ZCL_COLOR_LOOP_SET_COMMAND_ID (0x44) +#define ZCL_STOP_MOVE_STEP_COMMAND_ID (0x47) +#define ZCL_MOVE_COLOR_TEMPERATURE_COMMAND_ID (0x4B) +#define ZCL_STEP_COLOR_TEMPERATURE_COMMAND_ID (0x4C) + +// Commands for cluster: IAS Zone +#define ZCL_ZONE_ENROLL_RESPONSE_COMMAND_ID (0x00) +#define ZCL_ZONE_STATUS_CHANGE_NOTIFICATION_COMMAND_ID (0x00) +#define ZCL_INITIATE_NORMAL_OPERATION_MODE_COMMAND_ID (0x01) +#define ZCL_ZONE_ENROLL_REQUEST_COMMAND_ID (0x01) +#define ZCL_INITIATE_TEST_MODE_COMMAND_ID (0x02) +#define ZCL_INITIATE_NORMAL_OPERATION_MODE_RESPONSE_COMMAND_ID (0x02) +#define ZCL_INITIATE_TEST_MODE_RESPONSE_COMMAND_ID (0x03) + +// Commands for cluster: IAS ACE +#define ZCL_ARM_COMMAND_ID (0x00) +#define ZCL_ARM_RESPONSE_COMMAND_ID (0x00) +#define ZCL_BYPASS_COMMAND_ID (0x01) +#define ZCL_GET_ZONE_ID_MAP_RESPONSE_COMMAND_ID (0x01) +#define ZCL_EMERGENCY_COMMAND_ID (0x02) +#define ZCL_GET_ZONE_INFORMATION_RESPONSE_COMMAND_ID (0x02) +#define ZCL_FIRE_COMMAND_ID (0x03) +#define ZCL_ZONE_STATUS_CHANGED_COMMAND_ID (0x03) +#define ZCL_PANIC_COMMAND_ID (0x04) +#define ZCL_PANEL_STATUS_CHANGED_COMMAND_ID (0x04) +#define ZCL_GET_ZONE_ID_MAP_COMMAND_ID (0x05) +#define ZCL_GET_PANEL_STATUS_RESPONSE_COMMAND_ID (0x05) +#define ZCL_GET_ZONE_INFORMATION_COMMAND_ID (0x06) +#define ZCL_SET_BYPASSED_ZONE_LIST_COMMAND_ID (0x06) +#define ZCL_GET_PANEL_STATUS_COMMAND_ID (0x07) +#define ZCL_BYPASS_RESPONSE_COMMAND_ID (0x07) +#define ZCL_GET_BYPASSED_ZONE_LIST_COMMAND_ID (0x08) +#define ZCL_GET_ZONE_STATUS_RESPONSE_COMMAND_ID (0x08) +#define ZCL_GET_ZONE_STATUS_COMMAND_ID (0x09) + +// Commands for cluster: IAS WD +#define ZCL_START_WARNING_COMMAND_ID (0x00) +#define ZCL_SQUAWK_COMMAND_ID (0x01) + +// Commands for cluster: Generic Tunnel +#define ZCL_MATCH_PROTOCOL_ADDRESS_COMMAND_ID (0x00) +#define ZCL_MATCH_PROTOCOL_ADDRESS_RESPONSE_COMMAND_ID (0x00) +#define ZCL_ADVERTISE_PROTOCOL_ADDRESS_COMMAND_ID (0x01) + +// Commands for cluster: BACnet Protocol Tunnel +#define ZCL_TRANSFER_NPDU_COMMAND_ID (0x00) + +// Commands for cluster: 11073 Protocol Tunnel +#define ZCL_TRANSFER_APDU_COMMAND_ID (0x00) +#define ZCL_CONNECT_REQUEST_COMMAND_ID (0x01) +#define ZCL_DISCONNECT_REQUEST_COMMAND_ID (0x02) +#define ZCL_CONNECT_STATUS_NOTIFICATION_COMMAND_ID (0x03) + +// Commands for cluster: ISO 7816 Protocol Tunnel +#define ZCL_TRANSFER_APDU_COMMAND_ID (0x00) +#define ZCL_INSERT_SMART_CARD_COMMAND_ID (0x01) +#define ZCL_EXTRACT_SMART_CARD_COMMAND_ID (0x02) + +// Commands for cluster: Price +#define ZCL_PUBLISH_PRICE_COMMAND_ID (0x00) +#define ZCL_GET_CURRENT_PRICE_COMMAND_ID (0x00) +#define ZCL_PUBLISH_BLOCK_PERIOD_COMMAND_ID (0x01) +#define ZCL_GET_SCHEDULED_PRICES_COMMAND_ID (0x01) +#define ZCL_PUBLISH_CONVERSION_FACTOR_COMMAND_ID (0x02) +#define ZCL_PRICE_ACKNOWLEDGEMENT_COMMAND_ID (0x02) +#define ZCL_PUBLISH_CALORIFIC_VALUE_COMMAND_ID (0x03) +#define ZCL_GET_BLOCK_PERIODS_COMMAND_ID (0x03) +#define ZCL_PUBLISH_TARIFF_INFORMATION_COMMAND_ID (0x04) +#define ZCL_GET_CONVERSION_FACTOR_COMMAND_ID (0x04) +#define ZCL_PUBLISH_PRICE_MATRIX_COMMAND_ID (0x05) +#define ZCL_GET_CALORIFIC_VALUE_COMMAND_ID (0x05) +#define ZCL_PUBLISH_BLOCK_THRESHOLDS_COMMAND_ID (0x06) +#define ZCL_GET_TARIFF_INFORMATION_COMMAND_ID (0x06) +#define ZCL_PUBLISH_CO2_VALUE_COMMAND_ID (0x07) +#define ZCL_GET_PRICE_MATRIX_COMMAND_ID (0x07) +#define ZCL_PUBLISH_TIER_LABELS_COMMAND_ID (0x08) +#define ZCL_GET_BLOCK_THRESHOLDS_COMMAND_ID (0x08) +#define ZCL_PUBLISH_BILLING_PERIOD_COMMAND_ID (0x09) +#define ZCL_GET_CO2_VALUE_COMMAND_ID (0x09) +#define ZCL_PUBLISH_CONSOLIDATED_BILL_COMMAND_ID (0x0A) +#define ZCL_GET_TIER_LABELS_COMMAND_ID (0x0A) +#define ZCL_PUBLISH_CPP_EVENT_COMMAND_ID (0x0B) +#define ZCL_GET_BILLING_PERIOD_COMMAND_ID (0x0B) +#define ZCL_PUBLISH_CREDIT_PAYMENT_COMMAND_ID (0x0C) +#define ZCL_GET_CONSOLIDATED_BILL_COMMAND_ID (0x0C) +#define ZCL_PUBLISH_CURRENCY_CONVERSION_COMMAND_ID (0x0D) +#define ZCL_CPP_EVENT_RESPONSE_COMMAND_ID (0x0D) +#define ZCL_CANCEL_TARIFF_COMMAND_ID (0x0E) +#define ZCL_GET_CREDIT_PAYMENT_COMMAND_ID (0x0E) +#define ZCL_GET_CURRENCY_CONVERSION_COMMAND_COMMAND_ID (0x0F) +#define ZCL_GET_TARIFF_CANCELLATION_COMMAND_ID (0x10) + +// Commands for cluster: Demand Response and Load Control +#define ZCL_LOAD_CONTROL_EVENT_COMMAND_ID (0x00) +#define ZCL_REPORT_EVENT_STATUS_COMMAND_ID (0x00) +#define ZCL_CANCEL_LOAD_CONTROL_EVENT_COMMAND_ID (0x01) +#define ZCL_GET_SCHEDULED_EVENTS_COMMAND_ID (0x01) +#define ZCL_CANCEL_ALL_LOAD_CONTROL_EVENTS_COMMAND_ID (0x02) + +// Commands for cluster: Simple Metering +#define ZCL_GET_PROFILE_RESPONSE_COMMAND_ID (0x00) +#define ZCL_GET_PROFILE_COMMAND_ID (0x00) +#define ZCL_REQUEST_MIRROR_COMMAND_ID (0x01) +#define ZCL_REQUEST_MIRROR_RESPONSE_COMMAND_ID (0x01) +#define ZCL_REMOVE_MIRROR_COMMAND_ID (0x02) +#define ZCL_MIRROR_REMOVED_COMMAND_ID (0x02) +#define ZCL_REQUEST_FAST_POLL_MODE_RESPONSE_COMMAND_ID (0x03) +#define ZCL_REQUEST_FAST_POLL_MODE_COMMAND_ID (0x03) +#define ZCL_SCHEDULE_SNAPSHOT_RESPONSE_COMMAND_ID (0x04) +#define ZCL_SCHEDULE_SNAPSHOT_COMMAND_ID (0x04) +#define ZCL_TAKE_SNAPSHOT_RESPONSE_COMMAND_ID (0x05) +#define ZCL_TAKE_SNAPSHOT_COMMAND_ID (0x05) +#define ZCL_PUBLISH_SNAPSHOT_COMMAND_ID (0x06) +#define ZCL_GET_SNAPSHOT_COMMAND_ID (0x06) +#define ZCL_GET_SAMPLED_DATA_RESPONSE_COMMAND_ID (0x07) +#define ZCL_START_SAMPLING_COMMAND_ID (0x07) +#define ZCL_CONFIGURE_MIRROR_COMMAND_ID (0x08) +#define ZCL_GET_SAMPLED_DATA_COMMAND_ID (0x08) +#define ZCL_CONFIGURE_NOTIFICATION_SCHEME_COMMAND_ID (0x09) +#define ZCL_MIRROR_REPORT_ATTRIBUTE_RESPONSE_COMMAND_ID (0x09) +#define ZCL_CONFIGURE_NOTIFICATION_FLAGS_COMMAND_ID (0x0A) +#define ZCL_RESET_LOAD_LIMIT_COUNTER_COMMAND_ID (0x0A) +#define ZCL_GET_NOTIFIED_MESSAGE_COMMAND_ID (0x0B) +#define ZCL_CHANGE_SUPPLY_COMMAND_ID (0x0B) +#define ZCL_SUPPLY_STATUS_RESPONSE_COMMAND_ID (0x0C) +#define ZCL_LOCAL_CHANGE_SUPPLY_COMMAND_ID (0x0C) +#define ZCL_START_SAMPLING_RESPONSE_COMMAND_ID (0x0D) +#define ZCL_SET_SUPPLY_STATUS_COMMAND_ID (0x0D) +#define ZCL_SET_UNCONTROLLED_FLOW_THRESHOLD_COMMAND_ID (0x0E) + +// Commands for cluster: Messaging +#define ZCL_DISPLAY_MESSAGE_COMMAND_ID (0x00) +#define ZCL_GET_LAST_MESSAGE_COMMAND_ID (0x00) +#define ZCL_CANCEL_MESSAGE_COMMAND_ID (0x01) +#define ZCL_MESSAGE_CONFIRMATION_COMMAND_ID (0x01) +#define ZCL_DISPLAY_PROTECTED_MESSAGE_COMMAND_ID (0x02) +#define ZCL_GET_MESSAGE_CANCELLATION_COMMAND_ID (0x02) +#define ZCL_CANCEL_ALL_MESSAGES_COMMAND_ID (0x03) + +// Commands for cluster: Tunneling +#define ZCL_REQUEST_TUNNEL_COMMAND_ID (0x00) +#define ZCL_REQUEST_TUNNEL_RESPONSE_COMMAND_ID (0x00) +#define ZCL_CLOSE_TUNNEL_COMMAND_ID (0x01) +#define ZCL_TRANSFER_DATA_SERVER_TO_CLIENT_COMMAND_ID (0x01) +#define ZCL_TRANSFER_DATA_CLIENT_TO_SERVER_COMMAND_ID (0x02) +#define ZCL_TRANSFER_DATA_ERROR_SERVER_TO_CLIENT_COMMAND_ID (0x02) +#define ZCL_TRANSFER_DATA_ERROR_CLIENT_TO_SERVER_COMMAND_ID (0x03) +#define ZCL_ACK_TRANSFER_DATA_SERVER_TO_CLIENT_COMMAND_ID (0x03) +#define ZCL_ACK_TRANSFER_DATA_CLIENT_TO_SERVER_COMMAND_ID (0x04) +#define ZCL_READY_DATA_SERVER_TO_CLIENT_COMMAND_ID (0x04) +#define ZCL_READY_DATA_CLIENT_TO_SERVER_COMMAND_ID (0x05) +#define ZCL_SUPPORTED_TUNNEL_PROTOCOLS_RESPONSE_COMMAND_ID (0x05) +#define ZCL_GET_SUPPORTED_TUNNEL_PROTOCOLS_COMMAND_ID (0x06) +#define ZCL_TUNNEL_CLOSURE_NOTIFICATION_COMMAND_ID (0x06) + +// Commands for cluster: Prepayment +#define ZCL_SELECT_AVAILABLE_EMERGENCY_CREDIT_COMMAND_ID (0x00) +#define ZCL_PUBLISH_PREPAY_SNAPSHOT_COMMAND_ID (0x01) +#define ZCL_CHANGE_DEBT_COMMAND_ID (0x02) +#define ZCL_CHANGE_PAYMENT_MODE_RESPONSE_COMMAND_ID (0x02) +#define ZCL_EMERGENCY_CREDIT_SETUP_COMMAND_ID (0x03) +#define ZCL_CONSUMER_TOP_UP_RESPONSE_COMMAND_ID (0x03) +#define ZCL_CONSUMER_TOP_UP_COMMAND_ID (0x04) +#define ZCL_CREDIT_ADJUSTMENT_COMMAND_ID (0x05) +#define ZCL_PUBLISH_TOP_UP_LOG_COMMAND_ID (0x05) +#define ZCL_CHANGE_PAYMENT_MODE_COMMAND_ID (0x06) +#define ZCL_PUBLISH_DEBT_LOG_COMMAND_ID (0x06) +#define ZCL_GET_PREPAY_SNAPSHOT_COMMAND_ID (0x07) +#define ZCL_GET_TOP_UP_LOG_COMMAND_ID (0x08) +#define ZCL_SET_LOW_CREDIT_WARNING_LEVEL_COMMAND_ID (0x09) +#define ZCL_GET_DEBT_REPAYMENT_LOG_COMMAND_ID (0x0A) +#define ZCL_SET_MAXIMUM_CREDIT_LIMIT_COMMAND_ID (0x0B) +#define ZCL_SET_OVERALL_DEBT_CAP_COMMAND_ID (0x0C) + +// Commands for cluster: Energy Management +#define ZCL_REPORT_EVENT_STATUS_COMMAND_ID (0x00) +#define ZCL_MANAGE_EVENT_COMMAND_ID (0x00) + +// Commands for cluster: Calendar +#define ZCL_PUBLISH_CALENDAR_COMMAND_ID (0x00) +#define ZCL_GET_CALENDAR_COMMAND_ID (0x00) +#define ZCL_PUBLISH_DAY_PROFILE_COMMAND_ID (0x01) +#define ZCL_GET_DAY_PROFILES_COMMAND_ID (0x01) +#define ZCL_PUBLISH_WEEK_PROFILE_COMMAND_ID (0x02) +#define ZCL_GET_WEEK_PROFILES_COMMAND_ID (0x02) +#define ZCL_PUBLISH_SEASONS_COMMAND_ID (0x03) +#define ZCL_GET_SEASONS_COMMAND_ID (0x03) +#define ZCL_PUBLISH_SPECIAL_DAYS_COMMAND_ID (0x04) +#define ZCL_GET_SPECIAL_DAYS_COMMAND_ID (0x04) +#define ZCL_CANCEL_CALENDAR_COMMAND_ID (0x05) +#define ZCL_GET_CALENDAR_CANCELLATION_COMMAND_ID (0x05) + +// Commands for cluster: Device Management +#define ZCL_GET_CHANGE_OF_TENANCY_COMMAND_ID (0x00) +#define ZCL_PUBLISH_CHANGE_OF_TENANCY_COMMAND_ID (0x00) +#define ZCL_GET_CHANGE_OF_SUPPLIER_COMMAND_ID (0x01) +#define ZCL_PUBLISH_CHANGE_OF_SUPPLIER_COMMAND_ID (0x01) +#define ZCL_REQUEST_NEW_PASSWORD_COMMAND_ID (0x02) +#define ZCL_REQUEST_NEW_PASSWORD_RESPONSE_COMMAND_ID (0x02) +#define ZCL_GET_SITE_ID_COMMAND_ID (0x03) +#define ZCL_UPDATE_SITE_ID_COMMAND_ID (0x03) +#define ZCL_REPORT_EVENT_CONFIGURATION_COMMAND_ID (0x04) +#define ZCL_SET_EVENT_CONFIGURATION_COMMAND_ID (0x04) +#define ZCL_GET_CIN_COMMAND_ID (0x05) +#define ZCL_GET_EVENT_CONFIGURATION_COMMAND_ID (0x05) +#define ZCL_UPDATE_CIN_COMMAND_ID (0x06) + +// Commands for cluster: Events +#define ZCL_GET_EVENT_LOG_COMMAND_ID (0x00) +#define ZCL_PUBLISH_EVENT_COMMAND_ID (0x00) +#define ZCL_CLEAR_EVENT_LOG_REQUEST_COMMAND_ID (0x01) +#define ZCL_PUBLISH_EVENT_LOG_COMMAND_ID (0x01) +#define ZCL_CLEAR_EVENT_LOG_RESPONSE_COMMAND_ID (0x02) + +// Commands for cluster: MDU Pairing +#define ZCL_PAIRING_RESPONSE_COMMAND_ID (0x00) +#define ZCL_PAIRING_REQUEST_COMMAND_ID (0x00) + +// Commands for cluster: Sub-GHz +#define ZCL_SUSPEND_ZCL_MESSAGES_COMMAND_ID (0x00) +#define ZCL_GET_SUSPEND_ZCL_MESSAGES_STATUS_COMMAND_ID (0x00) + +// Commands for cluster: Key Establishment +#define ZCL_INITIATE_KEY_ESTABLISHMENT_REQUEST_COMMAND_ID (0x00) +#define ZCL_INITIATE_KEY_ESTABLISHMENT_RESPONSE_COMMAND_ID (0x00) +#define ZCL_EPHEMERAL_DATA_REQUEST_COMMAND_ID (0x01) +#define ZCL_EPHEMERAL_DATA_RESPONSE_COMMAND_ID (0x01) +#define ZCL_CONFIRM_KEY_DATA_REQUEST_COMMAND_ID (0x02) +#define ZCL_CONFIRM_KEY_DATA_RESPONSE_COMMAND_ID (0x02) +#define ZCL_TERMINATE_KEY_ESTABLISHMENT_COMMAND_ID (0x03) + +// Commands for cluster: Information +#define ZCL_REQUEST_INFORMATION_COMMAND_ID (0x00) +#define ZCL_REQUEST_INFORMATION_RESPONSE_COMMAND_ID (0x00) +#define ZCL_PUSH_INFORMATION_RESPONSE_COMMAND_ID (0x01) +#define ZCL_PUSH_INFORMATION_COMMAND_ID (0x01) +#define ZCL_SEND_PREFERENCE_COMMAND_ID (0x02) +#define ZCL_SEND_PREFERENCE_RESPONSE_COMMAND_ID (0x02) +#define ZCL_REQUEST_PREFERENCE_RESPONSE_COMMAND_ID (0x03) +#define ZCL_SERVER_REQUEST_PREFERENCE_COMMAND_ID (0x03) +#define ZCL_UPDATE_COMMAND_ID (0x04) +#define ZCL_REQUEST_PREFERENCE_CONFIRMATION_COMMAND_ID (0x04) +#define ZCL_DELETE_COMMAND_ID (0x05) +#define ZCL_UPDATE_RESPONSE_COMMAND_ID (0x05) +#define ZCL_CONFIGURE_NODE_DESCRIPTION_COMMAND_ID (0x06) +#define ZCL_DELETE_RESPONSE_COMMAND_ID (0x06) +#define ZCL_CONFIGURE_DELIVERY_ENABLE_COMMAND_ID (0x07) +#define ZCL_CONFIGURE_PUSH_INFORMATION_TIMER_COMMAND_ID (0x08) +#define ZCL_CONFIGURE_SET_ROOT_ID_COMMAND_ID (0x09) + +// Commands for cluster: Data Sharing +#define ZCL_READ_FILE_REQUEST_COMMAND_ID (0x00) +#define ZCL_WRITE_FILE_REQUEST_COMMAND_ID (0x00) +#define ZCL_READ_RECORD_REQUEST_COMMAND_ID (0x01) +#define ZCL_MODIFY_FILE_REQUEST_COMMAND_ID (0x01) +#define ZCL_WRITE_FILE_RESPONSE_COMMAND_ID (0x02) +#define ZCL_MODIFY_RECORD_REQUEST_COMMAND_ID (0x02) +#define ZCL_FILE_TRANSMISSION_COMMAND_ID (0x03) +#define ZCL_RECORD_TRANSMISSION_COMMAND_ID (0x04) + +// Commands for cluster: Gaming +#define ZCL_SEARCH_GAME_COMMAND_ID (0x00) +#define ZCL_GAME_ANNOUNCEMENT_COMMAND_ID (0x00) +#define ZCL_JOIN_GAME_COMMAND_ID (0x01) +#define ZCL_GENERAL_RESPONSE_COMMAND_ID (0x01) +#define ZCL_START_GAME_COMMAND_ID (0x02) +#define ZCL_PAUSE_GAME_COMMAND_ID (0x03) +#define ZCL_RESUME_GAME_COMMAND_ID (0x04) +#define ZCL_QUIT_GAME_COMMAND_ID (0x05) +#define ZCL_END_GAME_COMMAND_ID (0x06) +#define ZCL_START_OVER_COMMAND_ID (0x07) +#define ZCL_ACTION_CONTROL_COMMAND_ID (0x08) +#define ZCL_DOWNLOAD_GAME_COMMAND_ID (0x09) + +// Commands for cluster: Data Rate Control +#define ZCL_PATH_CREATION_COMMAND_ID (0x00) +#define ZCL_DATA_RATE_CONTROL_COMMAND_ID (0x00) +#define ZCL_DATA_RATE_NOTIFICATION_COMMAND_ID (0x01) +#define ZCL_PATH_DELETION_COMMAND_ID (0x02) + +// Commands for cluster: Voice over ZigBee +#define ZCL_ESTABLISHMENT_REQUEST_COMMAND_ID (0x00) +#define ZCL_ESTABLISHMENT_RESPONSE_COMMAND_ID (0x00) +#define ZCL_VOICE_TRANSMISSION_COMMAND_ID (0x01) +#define ZCL_VOICE_TRANSMISSION_RESPONSE_COMMAND_ID (0x01) +#define ZCL_VOICE_TRANSMISSION_COMPLETION_COMMAND_ID (0x02) +#define ZCL_CONTROL_COMMAND_ID (0x02) +#define ZCL_CONTROL_RESPONSE_COMMAND_ID (0x03) + +// Commands for cluster: Chatting +#define ZCL_JOIN_CHAT_REQUEST_COMMAND_ID (0x00) +#define ZCL_START_CHAT_RESPONSE_COMMAND_ID (0x00) +#define ZCL_LEAVE_CHAT_REQUEST_COMMAND_ID (0x01) +#define ZCL_JOIN_CHAT_RESPONSE_COMMAND_ID (0x01) +#define ZCL_SEARCH_CHAT_REQUEST_COMMAND_ID (0x02) +#define ZCL_USER_LEFT_COMMAND_ID (0x02) +#define ZCL_SWITCH_CHAIRMAN_RESPONSE_COMMAND_ID (0x03) +#define ZCL_USER_JOINED_COMMAND_ID (0x03) +#define ZCL_START_CHAT_REQUEST_COMMAND_ID (0x04) +#define ZCL_SEARCH_CHAT_RESPONSE_COMMAND_ID (0x04) +#define ZCL_CHAT_MESSAGE_COMMAND_ID (0x05) +#define ZCL_SWITCH_CHAIRMAN_REQUEST_COMMAND_ID (0x05) +#define ZCL_GET_NODE_INFORMATION_REQUEST_COMMAND_ID (0x06) +#define ZCL_SWITCH_CHAIRMAN_CONFIRM_COMMAND_ID (0x06) +#define ZCL_SWITCH_CHAIRMAN_NOTIFICATION_COMMAND_ID (0x07) +#define ZCL_GET_NODE_INFORMATION_RESPONSE_COMMAND_ID (0x08) + +// Commands for cluster: Payment +#define ZCL_BUY_REQUEST_COMMAND_ID (0x00) +#define ZCL_BUY_CONFIRM_COMMAND_ID (0x00) +#define ZCL_ACCEPT_PAYMENT_COMMAND_ID (0x01) +#define ZCL_RECEIPT_DELIVERY_COMMAND_ID (0x01) +#define ZCL_PAYMENT_CONFIRM_COMMAND_ID (0x02) +#define ZCL_TRANSACTION_END_COMMAND_ID (0x02) + +// Commands for cluster: Billing +#define ZCL_SUBSCRIBE_COMMAND_ID (0x00) +#define ZCL_CHECK_BILL_STATUS_COMMAND_ID (0x00) +#define ZCL_UNSUBSCRIBE_COMMAND_ID (0x01) +#define ZCL_SEND_BILL_RECORD_COMMAND_ID (0x01) +#define ZCL_START_BILLING_SESSION_COMMAND_ID (0x02) +#define ZCL_STOP_BILLING_SESSION_COMMAND_ID (0x03) +#define ZCL_BILL_STATUS_NOTIFICATION_COMMAND_ID (0x04) +#define ZCL_SESSION_KEEP_ALIVE_COMMAND_ID (0x05) + +// Commands for cluster: Appliance Events and Alert +#define ZCL_GET_ALERTS_COMMAND_ID (0x00) +#define ZCL_GET_ALERTS_RESPONSE_COMMAND_ID (0x00) +#define ZCL_ALERTS_NOTIFICATION_COMMAND_ID (0x01) +#define ZCL_EVENTS_NOTIFICATION_COMMAND_ID (0x02) + +// Commands for cluster: Appliance Statistics +#define ZCL_LOG_NOTIFICATION_COMMAND_ID (0x00) +#define ZCL_LOG_REQUEST_COMMAND_ID (0x00) +#define ZCL_LOG_RESPONSE_COMMAND_ID (0x01) +#define ZCL_LOG_QUEUE_REQUEST_COMMAND_ID (0x01) +#define ZCL_LOG_QUEUE_RESPONSE_COMMAND_ID (0x02) +#define ZCL_STATISTICS_AVAILABLE_COMMAND_ID (0x03) + +// Commands for cluster: Electrical Measurement +#define ZCL_GET_PROFILE_INFO_RESPONSE_COMMAND_COMMAND_ID (0x00) +#define ZCL_GET_PROFILE_INFO_COMMAND_COMMAND_ID (0x00) +#define ZCL_GET_MEASUREMENT_PROFILE_RESPONSE_COMMAND_COMMAND_ID (0x01) +#define ZCL_GET_MEASUREMENT_PROFILE_COMMAND_COMMAND_ID (0x01) + +// Commands for cluster: ZLL Commissioning +#define ZCL_SCAN_REQUEST_COMMAND_ID (0x00) +#define ZCL_SCAN_RESPONSE_COMMAND_ID (0x01) +#define ZCL_DEVICE_INFORMATION_REQUEST_COMMAND_ID (0x02) +#define ZCL_DEVICE_INFORMATION_RESPONSE_COMMAND_ID (0x03) +#define ZCL_IDENTIFY_REQUEST_COMMAND_ID (0x06) +#define ZCL_RESET_TO_FACTORY_NEW_REQUEST_COMMAND_ID (0x07) +#define ZCL_NETWORK_START_REQUEST_COMMAND_ID (0x10) +#define ZCL_NETWORK_START_RESPONSE_COMMAND_ID (0x11) +#define ZCL_NETWORK_JOIN_ROUTER_REQUEST_COMMAND_ID (0x12) +#define ZCL_NETWORK_JOIN_ROUTER_RESPONSE_COMMAND_ID (0x13) +#define ZCL_NETWORK_JOIN_END_DEVICE_REQUEST_COMMAND_ID (0x14) +#define ZCL_NETWORK_JOIN_END_DEVICE_RESPONSE_COMMAND_ID (0x15) +#define ZCL_NETWORK_UPDATE_REQUEST_COMMAND_ID (0x16) +#define ZCL_ENDPOINT_INFORMATION_COMMAND_ID (0x40) +#define ZCL_GET_GROUP_IDENTIFIERS_REQUEST_COMMAND_ID (0x41) +#define ZCL_GET_GROUP_IDENTIFIERS_RESPONSE_COMMAND_ID (0x41) +#define ZCL_GET_ENDPOINT_LIST_REQUEST_COMMAND_ID (0x42) +#define ZCL_GET_ENDPOINT_LIST_RESPONSE_COMMAND_ID (0x42) + +// Commands for cluster: Sample Mfg Specific Cluster +#define ZCL_COMMAND_ONE_COMMAND_ID (0x00) + +// Commands for cluster: Sample Mfg Specific Cluster 2 +#define ZCL_COMMAND_TWO_COMMAND_ID (0x00) + +// Commands for cluster: Configuration Cluster +#define ZCL_SET_TOKEN_COMMAND_ID (0x00) +#define ZCL_RETURN_TOKEN_COMMAND_ID (0x00) +#define ZCL_LOCK_TOKENS_COMMAND_ID (0x01) +#define ZCL_READ_TOKENS_COMMAND_ID (0x02) +#define ZCL_UNLOCK_TOKENS_COMMAND_ID (0x03) + +// Commands for cluster: MFGLIB Cluster +#define ZCL_STREAM_COMMAND_ID (0x00) +#define ZCL_TONE_COMMAND_ID (0x01) +#define ZCL_RX_MODE_COMMAND_ID (0x02) + +// Commands for cluster: SL Works With All Hubs +#define ZCL_ENABLE_APS_LINK_KEY_AUTHORIZATION_COMMAND_ID (0x00) +#define ZCL_APS_LINK_KEY_AUTHORIZATION_QUERY_RESPONSE_COMMAND_ID (0x00) +#define ZCL_DISABLE_APS_LINK_KEY_AUTHORIZATION_COMMAND_ID (0x01) +#define ZCL_POWERING_OFF_NOTIFICATION_COMMAND_ID (0x01) +#define ZCL_APS_LINK_KEY_AUTHORIZATION_QUERY_COMMAND_ID (0x02) +#define ZCL_POWERING_ON_NOTIFICATION_COMMAND_ID (0x02) +#define ZCL_REQUEST_NEW_APS_LINK_KEY_COMMAND_ID (0x03) +#define ZCL_SHORT_ADDRESS_CHANGE_COMMAND_ID (0x03) +#define ZCL_ENABLE_WWAH_APP_EVENT_RETRY_ALGORITHM_COMMAND_ID (0x04) +#define ZCL_APS_ACK_ENABLEMENT_QUERY_RESPONSE_COMMAND_ID (0x04) +#define ZCL_DISABLE_WWAH_APP_EVENT_RETRY_ALGORITHM_COMMAND_ID (0x05) +#define ZCL_POWER_DESCRIPTOR_CHANGE_COMMAND_ID (0x05) +#define ZCL_REQUEST_TIME_COMMAND_ID (0x06) +#define ZCL_NEW_DEBUG_REPORT_NOTIFICATION_COMMAND_ID (0x06) +#define ZCL_ENABLE_WWAH_REJOIN_ALGORITHM_COMMAND_ID (0x07) +#define ZCL_DEBUG_REPORT_QUERY_RESPONSE_COMMAND_ID (0x07) +#define ZCL_DISABLE_WWAH_REJOIN_ALGORITHM_COMMAND_ID (0x08) +#define ZCL_TRUST_CENTER_FOR_CLUSTER_SERVER_QUERY_RESPONSE_COMMAND_ID (0x08) +#define ZCL_SET_IAS_ZONE_ENROLLMENT_METHOD_COMMAND_ID (0x09) +#define ZCL_SURVEY_BEACONS_RESPONSE_COMMAND_ID (0x09) +#define ZCL_CLEAR_BINDING_TABLE_COMMAND_ID (0x0A) +#define ZCL_ENABLE_PERIODIC_ROUTER_CHECK_INS_COMMAND_ID (0x0B) +#define ZCL_DISABLE_PERIODIC_ROUTER_CHECK_INS_COMMAND_ID (0x0C) +#define ZCL_SET_MAC_POLL_FAILURE_WAIT_TIME_COMMAND_ID (0x0D) +#define ZCL_SET_PENDING_NETWORK_UPDATE_COMMAND_ID (0x0E) +#define ZCL_REQUIRE_APS_ACKS_ON_UNICASTS_COMMAND_ID (0x0F) +#define ZCL_REMOVE_APS_ACKS_ON_UNICASTS_REQUIREMENT_COMMAND_ID (0x10) +#define ZCL_APS_ACK_REQUIREMENT_QUERY_COMMAND_ID (0x11) +#define ZCL_DEBUG_REPORT_QUERY_COMMAND_ID (0x12) +#define ZCL_SURVEY_BEACONS_COMMAND_ID (0x13) +#define ZCL_DISABLE_OTA_DOWNGRADES_COMMAND_ID (0x14) +#define ZCL_DISABLE_MGMT_LEAVE_WITHOUT_REJOIN_COMMAND_ID (0x15) +#define ZCL_DISABLE_TOUCHLINK_INTERPAN_MESSAGE_SUPPORT_COMMAND_ID (0x16) +#define ZCL_ENABLE_WWAH_PARENT_CLASSIFICATION_COMMAND_ID (0x17) +#define ZCL_DISABLE_WWAH_PARENT_CLASSIFICATION_COMMAND_ID (0x18) +#define ZCL_ENABLE_TC_SECURITY_ON_NTWK_KEY_ROTATION_COMMAND_ID (0x19) +#define ZCL_ENABLE_WWAH_BAD_PARENT_RECOVERY_COMMAND_ID (0x1A) +#define ZCL_DISABLE_WWAH_BAD_PARENT_RECOVERY_COMMAND_ID (0x1B) +#define ZCL_ENABLE_CONFIGURATION_MODE_COMMAND_ID (0x1C) +#define ZCL_DISABLE_CONFIGURATION_MODE_COMMAND_ID (0x1D) +#define ZCL_USE_TRUST_CENTER_FOR_CLUSTER_SERVER_COMMAND_ID (0x1E) +#define ZCL_TRUST_CENTER_FOR_CLUSTER_SERVER_QUERY_COMMAND_ID (0x1F) +#define ZCL_USE_TRUST_CENTER_FOR_CLUSTER_SERVER_RESPONSE_COMMAND_ID (0x9E) diff --git a/examples/lighting-app/lighting-common/gen/endpoint_config.h b/examples/lighting-app/lighting-common/gen/endpoint_config.h index b84160d8b003dc..e13dfcab99d0b5 100644 --- a/examples/lighting-app/lighting-common/gen/endpoint_config.h +++ b/examples/lighting-app/lighting-common/gen/endpoint_config.h @@ -47,12 +47,16 @@ { \ { 0x0000, ZCL_BOOLEAN_ATTRIBUTE_TYPE, 1, (0x00), { (uint8_t *) 0x00 } }, /* 0 / On/off / on/off*/ \ { 0xFFFD, ZCL_INT16U_ATTRIBUTE_TYPE, 2, (0x00), { (uint8_t *) 0x0001 } }, /* 1 / On/off / cluster revision*/ \ + { 0x0000, ZCL_INT8U_ATTRIBUTE_TYPE, 1, (0x00), { (uint8_t *) 0x00 } }, /* 2 / Level Control / current level*/ \ + { 0xFFFD, ZCL_INT16U_ATTRIBUTE_TYPE, 2, (0x00), { (uint8_t *) 0x0001 } }, /* 3 / Level Control / cluster revision*/ \ } // Cluster function static arrays #define GENERATED_FUNCTION_ARRAYS \ - const EmberAfGenericClusterFunction emberAfFuncArrayOnOffClusterServer[] = { ( \ - EmberAfGenericClusterFunction) emberAfOnOffClusterServerInitCallback }; + const EmberAfGenericClusterFunction emberAfFuncArrayOnOffClusterServer[] = { ( \ + EmberAfGenericClusterFunction) emberAfOnOffClusterServerInitCallback }; \ + const EmberAfGenericClusterFunction emberAfFuncArrayLevelControlClusterServer[] = { ( \ + EmberAfGenericClusterFunction) emberAfLevelControlClusterServerInitCallback }; // Clusters definitions #define GENERATED_CLUSTERS \ @@ -61,12 +65,16 @@ 0x0006, (EmberAfAttributeMetadata *) &(generatedAttributes[0]), 2, \ 3, (CLUSTER_MASK_SERVER | CLUSTER_MASK_INIT_FUNCTION), emberAfFuncArrayOnOffClusterServer, \ }, \ + { \ + 0x0008, (EmberAfAttributeMetadata *) &(generatedAttributes[2]), 2, \ + 3, (CLUSTER_MASK_SERVER | CLUSTER_MASK_INIT_FUNCTION), emberAfFuncArrayLevelControlClusterServer, \ + }, \ } // Endpoint types #define GENERATED_ENDPOINT_TYPES \ { \ - { (EmberAfCluster *) &(generatedClusters[0]), 1, 3 }, \ + { (EmberAfCluster *) &(generatedClusters[0]), 2, 4 }, \ } // Cluster manufacturer codes @@ -142,8 +150,16 @@ { 0x0006, 0x00, COMMAND_MASK_INCOMING_SERVER }, /* On/off / Off */ \ { 0x0006, 0x01, COMMAND_MASK_INCOMING_SERVER }, /* On/off / On */ \ { 0x0006, 0x02, COMMAND_MASK_INCOMING_SERVER }, /* On/off / Toggle */ \ + { 0x0008, 0x00, COMMAND_MASK_INCOMING_SERVER }, /* Level Control / MoveToLevel */ \ + { 0x0008, 0x01, COMMAND_MASK_INCOMING_SERVER }, /* Level Control / Move */ \ + { 0x0008, 0x02, COMMAND_MASK_INCOMING_SERVER }, /* Level Control / Step */ \ + { 0x0008, 0x03, COMMAND_MASK_INCOMING_SERVER }, /* Level Control / Stop */ \ + { 0x0008, 0x04, COMMAND_MASK_INCOMING_SERVER }, /* Level Control / MoveToLevelWithOnOff */ \ + { 0x0008, 0x05, COMMAND_MASK_INCOMING_SERVER }, /* Level Control / MoveWithOnOff */ \ + { 0x0008, 0x06, COMMAND_MASK_INCOMING_SERVER }, /* Level Control / StepWithOnOff */ \ + { 0x0008, 0x07, COMMAND_MASK_INCOMING_SERVER }, /* Level Control / StopWithOnOff */ \ } -#define EMBER_AF_GENERATED_COMMAND_COUNT (3) +#define EMBER_AF_GENERATED_COMMAND_COUNT (11) // Command manufacturer codes #define GENERATED_COMMAND_MANUFACTURER_CODES \ @@ -157,7 +173,8 @@ // Generated reporting configuration defaults #define EMBER_AF_GENERATED_REPORTING_CONFIG_DEFAULTS \ { \ - { EMBER_ZCL_REPORTING_DIRECTION_REPORTED, 1, 0x0006, 0x0000, CLUSTER_MASK_SERVER, 0x0000, 1, 65534, 0 }, \ + { EMBER_ZCL_REPORTING_DIRECTION_REPORTED, 1, 0x0006, 0x0000, CLUSTER_MASK_SERVER, 0x0000, { { 1, 65534, 0 } } }, \ + { EMBER_ZCL_REPORTING_DIRECTION_REPORTED, 1, 0x0008, 0x0000, CLUSTER_MASK_SERVER, 0x0000, { { 1, 65534, 0 } } }, \ } -#define EMBER_AF_GENERATED_REPORTING_CONFIG_DEFAULTS_TABLE_SIZE (1) +#define EMBER_AF_GENERATED_REPORTING_CONFIG_DEFAULTS_TABLE_SIZE (2) #endif // SILABS_AF_ENDPOINT_CONFIG diff --git a/examples/lighting-app/lighting-common/gen/enums.h b/examples/lighting-app/lighting-common/gen/enums.h index c1881b3732b9e3..07c2881e641e97 100644 --- a/examples/lighting-app/lighting-common/gen/enums.h +++ b/examples/lighting-app/lighting-common/gen/enums.h @@ -1,4 +1,5 @@ -/** + +/* * * Copyright (c) 2020 Project CHIP Authors * @@ -15,43 +16,18 @@ * 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 SILABS_EMBER_AF_ENUMS -#define SILABS_EMBER_AF_ENUMS - -/** - * @addtogroup enums Application Framework Enums Reference - * This header provides Application Framework enum definitions. - * @{ - */ -/** @name Enums */ -// @{ +// Prevent multiple inclusion +#pragma once +// ZCL enums + +// Enum for 11073ConnectRequestConnectControl typedef enum { EMBER_ZCL_11073_CONNECT_REQUEST_CONNECT_CONTROL_PREEMPTIBLE = 0x01, } EmberAf11073ConnectRequestConnectControl; +// Enum for 11073TunnelConnectionStatus typedef enum { EMBER_ZCL_11073_TUNNEL_CONNECTION_STATUS_DISCONNECTED = 0x00, @@ -61,11 +37,13 @@ typedef enum EMBER_ZCL_11073_TUNNEL_CONNECTION_STATUS_ALREADY_CONNECTED = 0x04, } EmberAf11073TunnelConnectionStatus; +// Enum for AlertCountType typedef enum { EMBER_ZCL_ALERT_COUNT_TYPE_UNSTRUCTURED = 0x00, } EmberAfAlertCountType; +// Enum for AlertStructureCategory typedef enum { EMBER_ZCL_ALERT_STRUCTURE_CATEGORY_WARNING = 0x0100, @@ -73,17 +51,20 @@ typedef enum EMBER_ZCL_ALERT_STRUCTURE_CATEGORY_FAILURE = 0x0300, } EmberAfAlertStructureCategory; +// Enum for AlertStructurePresenceRecovery typedef enum { EMBER_ZCL_ALERT_STRUCTURE_PRESENCE_RECOVERY_RECOVERY = 0x0000, EMBER_ZCL_ALERT_STRUCTURE_PRESENCE_RECOVERY_PRESENCE = 0x1000, } EmberAfAlertStructurePresenceRecovery; +// Enum for AlternateCostUnit typedef enum { EMBER_ZCL_ALTERNATE_COST_UNIT_KG_OF_CO2_PER_UNIT_OF_MEASURE = 0x02, } EmberAfAlternateCostUnit; +// Enum for AmiCriticalityLevel typedef enum { EMBER_ZCL_AMI_CRITICALITY_LEVEL_RESERVED = 0x00, @@ -104,6 +85,7 @@ typedef enum EMBER_ZCL_AMI_CRITICALITY_LEVEL_UTILITY_DEFINED6 = 0x0F, } EmberAfAmiCriticalityLevel; +// Enum for AmiEventStatus typedef enum { EMBER_ZCL_AMI_EVENT_STATUS_LOAD_CONTROL_EVENT_COMMAND_RX = 0x01, @@ -125,6 +107,7 @@ typedef enum EMBER_ZCL_AMI_EVENT_STATUS_LOAD_CONTROL_EVENT_COMMAND_REJECTED = 0xFE, } EmberAfAmiEventStatus; +// Enum for AmiGetProfileStatus typedef enum { EMBER_ZCL_AMI_GET_PROFILE_STATUS_SUCCESS = 0x00, @@ -135,12 +118,14 @@ typedef enum EMBER_ZCL_AMI_GET_PROFILE_STATUS_NO_INTERVALS_AVAILABLE_FOR_THE_REQUESTED_TIME = 0x05, } EmberAfAmiGetProfileStatus; +// Enum for AmiIntervalChannel typedef enum { EMBER_ZCL_AMI_INTERVAL_CHANNEL_CONSUMPTION_DELIVERED = 0x00, EMBER_ZCL_AMI_INTERVAL_CHANNEL_CONSUMPTION_RECEIVED = 0x01, } EmberAfAmiIntervalChannel; +// Enum for AmiIntervalPeriod typedef enum { EMBER_ZCL_AMI_INTERVAL_PERIOD_DAILY = 0x00, @@ -153,6 +138,7 @@ typedef enum EMBER_ZCL_AMI_INTERVAL_PERIOD_MINUTES2P5 = 0x07, } EmberAfAmiIntervalPeriod; +// Enum for AmiKeyEstablishmentStatus typedef enum { EMBER_ZCL_AMI_KEY_ESTABLISHMENT_STATUS_SUCCESS = 0x00, @@ -164,17 +150,19 @@ typedef enum EMBER_ZCL_AMI_KEY_ESTABLISHMENT_STATUS_INVALID_KEY_USAGE = 0x06, } EmberAfAmiKeyEstablishmentStatus; +// Enum for AmiRegistrationState typedef enum { - EMBER_ZCL_AMI_REGISTRATION_STATE_UNREGISTERED = 0x00, - EMBER_ZCL_AMI_REGISTRATION_STATE_JOINING_NETWORK = 0x01, - EMBER_ZCL_AMI_REGISTRATION_STATE_JOINED_NETWORK = 0x02, - EMBER_ZCL_AMI_REGISTRATION_STATE_SUBMITTED_REGISTRATION_REQUEST = 0x03, - EMBER_ZCL_AMI_REGISTRATION_STATE_REGISTRATION_REJECTED = 0x04, - EMBER_ZCL_AMI_REGISTRATION_STATE_REGISTERED = 0x05, - EMBER_ZCL_AMI_REGISTRATION_STATE_REGISTERATION_NOT_POSSIBLE = 0x06, + EMBER_ZCL_AMI_REGISTRATION_STATE_UNREGISTERED = 0x0, + EMBER_ZCL_AMI_REGISTRATION_STATE_JOINING_NETWORK = 0x1, + EMBER_ZCL_AMI_REGISTRATION_STATE_JOINED_NETWORK = 0x2, + EMBER_ZCL_AMI_REGISTRATION_STATE_SUBMITTED_REGISTRATION_REQUEST = 0x3, + EMBER_ZCL_AMI_REGISTRATION_STATE_REGISTRATION_REJECTED = 0x4, + EMBER_ZCL_AMI_REGISTRATION_STATE_REGISTERED = 0x5, + EMBER_ZCL_AMI_REGISTRATION_STATE_REGISTERATION_NOT_POSSIBLE = 0x6, } EmberAfAmiRegistrationState; +// Enum for AmiUnitOfMeasure typedef enum { EMBER_ZCL_AMI_UNIT_OF_MEASURE_KILO_WATT_HOURS = 0x00, @@ -207,12 +195,14 @@ typedef enum EMBER_ZCL_AMI_UNIT_OF_MEASURE_K_VAR_OR_K_VAR_HOURS_BCD = 0x8D, } EmberAfAmiUnitOfMeasure; +// Enum for AnonymousDataState typedef enum { - EMBER_ZCL_ANONYMOUS_DATA_STATE_NO_SOURCE_FOUND = 0x00, - EMBER_ZCL_ANONYMOUS_DATA_STATE_SOURCE_FOUND = 0x01, + EMBER_ZCL_ANONYMOUS_DATA_STATE_NO_SOURCE_FOUND = 0x0, + EMBER_ZCL_ANONYMOUS_DATA_STATE_SOURCE_FOUND = 0x1, } EmberAfAnonymousDataState; +// Enum for ApplianceStatus typedef enum { EMBER_ZCL_APPLIANCE_STATUS_OFF = 0x01, @@ -232,12 +222,14 @@ typedef enum EMBER_ZCL_APPLIANCE_STATUS_SUPERHEATING = 0x0F, } EmberAfApplianceStatus; +// Enum for AttributeReportingStatus typedef enum { EMBER_ZCL_ATTRIBUTE_REPORTING_STATUS_PENDING = 0x00, EMBER_ZCL_ATTRIBUTE_REPORTING_STATUS_ATTRIBUTE_REPORTING_COMPLETE = 0x01, } EmberAfAttributeReportingStatus; +// Enum for AttributeWritePermission typedef enum { EMBER_ZCL_ATTRIBUTE_WRITE_PERMISSION_DENY_WRITE = 0x00, @@ -249,13 +241,15 @@ typedef enum EMBER_ZCL_ATTRIBUTE_WRITE_PERMISSION_INVALID_DATA_TYPE = 0x8D, } EmberAfAttributeWritePermission; +// Enum for BarrierControlBarrierPosition typedef enum { - EMBER_ZCL_BARRIER_CONTROL_BARRIER_POSITION_CLOSED = 0x00, - EMBER_ZCL_BARRIER_CONTROL_BARRIER_POSITION_OPEN = 0x64, + EMBER_ZCL_BARRIER_CONTROL_BARRIER_POSITION_CLOSED = 0, + EMBER_ZCL_BARRIER_CONTROL_BARRIER_POSITION_OPEN = 100, EMBER_ZCL_BARRIER_CONTROL_BARRIER_POSITION_UNKNOWN = 0xFF, } EmberAfBarrierControlBarrierPosition; +// Enum for BarrierControlMovingState typedef enum { EMBER_ZCL_BARRIER_CONTROL_MOVING_STATE_STOPPED = 0x00, @@ -263,18 +257,20 @@ typedef enum EMBER_ZCL_BARRIER_CONTROL_MOVING_STATE_OPENING = 0x02, } EmberAfBarrierControlMovingState; +// Enum for BatterySize typedef enum { - EMBER_ZCL_BATTERY_SIZE_NO_BATTERY = 0x00, - EMBER_ZCL_BATTERY_SIZE_BUILT_IN = 0x01, - EMBER_ZCL_BATTERY_SIZE_OTHER = 0x02, - EMBER_ZCL_BATTERY_SIZE_AA = 0x03, - EMBER_ZCL_BATTERY_SIZE_AAA = 0x04, - EMBER_ZCL_BATTERY_SIZE_C = 0x05, - EMBER_ZCL_BATTERY_SIZE_D = 0x06, - EMBER_ZCL_BATTERY_SIZE_UNKNOWN = 0xFF, + EMBER_ZCL_BATTERY_SIZE_NO_BATTERY = 0x0, + EMBER_ZCL_BATTERY_SIZE_BUILT_IN = 0x1, + EMBER_ZCL_BATTERY_SIZE_OTHER = 0x2, + EMBER_ZCL_BATTERY_SIZE_AA = 0x3, + EMBER_ZCL_BATTERY_SIZE_AAA = 0x4, + EMBER_ZCL_BATTERY_SIZE_C = 0x5, + EMBER_ZCL_BATTERY_SIZE_D = 0x6, + EMBER_ZCL_BATTERY_SIZE_UNKNOWN = 0xff, } EmberAfBatterySize; +// Enum for BillingPeriodDurationUnits typedef enum { EMBER_ZCL_BILLING_PERIOD_DURATION_UNITS_MINUTES = 0x000000, @@ -283,6 +279,7 @@ typedef enum EMBER_ZCL_BILLING_PERIOD_DURATION_UNITS_MONTHS = 0xC00000, } EmberAfBillingPeriodDurationUnits; +// Enum for Block typedef enum { EMBER_ZCL_BLOCK_NO_BLOCKS_IN_USE = 0x00, @@ -304,6 +301,7 @@ typedef enum EMBER_ZCL_BLOCK_BLOCK16 = 0x10, } EmberAfBlock; +// Enum for BlockPeriodDurationTypeControl typedef enum { EMBER_ZCL_BLOCK_PERIOD_DURATION_TYPE_CONTROL_START_OF_TIMEBASE = 0x00, @@ -311,6 +309,7 @@ typedef enum EMBER_ZCL_BLOCK_PERIOD_DURATION_TYPE_CONTROL_NOT_SPECIFIED = 0x20, } EmberAfBlockPeriodDurationTypeControl; +// Enum for BlockPeriodDurationTypeTimebase typedef enum { EMBER_ZCL_BLOCK_PERIOD_DURATION_TYPE_TIMEBASE_MINUTES = 0x00, @@ -319,13 +318,15 @@ typedef enum EMBER_ZCL_BLOCK_PERIOD_DURATION_TYPE_TIMEBASE_MONTHS = 0x03, } EmberAfBlockPeriodDurationTypeTimebase; +// Enum for CO2Unit typedef enum { - EMBER_ZCL_C_O2_UNIT_KILOGRAM_PER_KILOWATT_HOUR = 0x01, - EMBER_ZCL_C_O2_UNIT_KILOGRAM_PER_GALLON_OF_GASOLINE = 0x02, - EMBER_ZCL_C_O2_UNIT_KILOGRAM_PER_THERM_OF_NATURAL_GAS = 0x03, + EMBER_ZCL_CO2_UNIT_KILOGRAM_PER_KILOWATT_HOUR = 0x01, + EMBER_ZCL_CO2_UNIT_KILOGRAM_PER_GALLON_OF_GASOLINE = 0x02, + EMBER_ZCL_CO2_UNIT_KILOGRAM_PER_THERM_OF_NATURAL_GAS = 0x03, } EmberAfCO2Unit; +// Enum for CalendarTimeReference typedef enum { EMBER_ZCL_CALENDAR_TIME_REFERENCE_UTC_TIME = 0x00, @@ -333,6 +334,7 @@ typedef enum EMBER_ZCL_CALENDAR_TIME_REFERENCE_LOCAL_TIME = 0x02, } EmberAfCalendarTimeReference; +// Enum for CalendarType typedef enum { EMBER_ZCL_CALENDAR_TYPE_DELIVERED_CALENDAR = 0x00, @@ -342,23 +344,27 @@ typedef enum EMBER_ZCL_CALENDAR_TYPE_AUXILLIARY_LOAD_SWITCH_CALENDAR = 0x04, } EmberAfCalendarType; +// Enum for CalorificValueUnit typedef enum { EMBER_ZCL_CALORIFIC_VALUE_UNIT_MEGAJOULE_PER_CUBIC_METER = 0x01, EMBER_ZCL_CALORIFIC_VALUE_UNIT_MEGAJOULE_PER_KILOGRAM = 0x02, } EmberAfCalorificValueUnit; +// Enum for CecedSpecificationVersion typedef enum { EMBER_ZCL_CECED_SPECIFICATION_VERSION_COMPLIANT_WITH_V10_NOT_CERTIFIED = 0x10, EMBER_ZCL_CECED_SPECIFICATION_VERSION_COMPLIANT_WITH_V10_CERTIFIED = 0x1A, } EmberAfCecedSpecificationVersion; +// Enum for ColorControlOptions typedef enum { - EMBER_ZCL_COLOR_CONTROL_OPTIONS_EXECUTE_IF_OFF = 0x01, + EMBER_ZCL_COLOR_CONTROL_OPTIONS_EXECUTE_IF_OFF = 0x1, } EmberAfColorControlOptions; +// Enum for ColorLoopAction typedef enum { EMBER_ZCL_COLOR_LOOP_ACTION_DEACTIVATE = 0x00, @@ -366,12 +372,14 @@ typedef enum EMBER_ZCL_COLOR_LOOP_ACTION_ACTIVATE_FROM_ENHANCED_CURRENT_HUE = 0x02, } EmberAfColorLoopAction; +// Enum for ColorLoopDirection typedef enum { EMBER_ZCL_COLOR_LOOP_DIRECTION_DECREMENT_HUE = 0x00, EMBER_ZCL_COLOR_LOOP_DIRECTION_INCREMENT_HUE = 0x01, } EmberAfColorLoopDirection; +// Enum for ColorMode typedef enum { EMBER_ZCL_COLOR_MODE_CURRENT_HUE_AND_CURRENT_SATURATION = 0x00, @@ -379,6 +387,7 @@ typedef enum EMBER_ZCL_COLOR_MODE_COLOR_TEMPERATURE = 0x02, } EmberAfColorMode; +// Enum for CommandIdentification typedef enum { EMBER_ZCL_COMMAND_IDENTIFICATION_START = 0x01, @@ -394,6 +403,7 @@ typedef enum EMBER_ZCL_COMMAND_IDENTIFICATION_DISABLE_ENERGY_CONTROL = 0x0B, } EmberAfCommandIdentification; +// Enum for CommissioningStartupControl typedef enum { EMBER_ZCL_COMMISSIONING_STARTUP_CONTROL_NO_ACTION = 0x00, @@ -402,6 +412,7 @@ typedef enum EMBER_ZCL_COMMISSIONING_STARTUP_CONTROL_START_FROM_SCRATCH = 0x03, } EmberAfCommissioningStartupControl; +// Enum for CommodityType typedef enum { EMBER_ZCL_COMMODITY_TYPE_ELECTRIC_METERING = 0x00, @@ -422,24 +433,28 @@ typedef enum EMBER_ZCL_COMMODITY_TYPE_ELECTRIC_METERING_ELEMENT3 = 0x0F, } EmberAfCommodityType; +// Enum for CppEventResponseCppAuth typedef enum { EMBER_ZCL_CPP_EVENT_RESPONSE_CPP_AUTH_ACCEPTED = 0x01, EMBER_ZCL_CPP_EVENT_RESPONSE_CPP_AUTH_REJECTED = 0x02, } EmberAfCppEventResponseCppAuth; +// Enum for CppPriceTier typedef enum { EMBER_ZCL_CPP_PRICE_TIER_CPP1 = 0x00, EMBER_ZCL_CPP_PRICE_TIER_CPP2 = 0x01, } EmberAfCppPriceTier; +// Enum for CreditAdjustmentType typedef enum { EMBER_ZCL_CREDIT_ADJUSTMENT_TYPE_CREDIT_INCREMENTAL = 0x00, EMBER_ZCL_CREDIT_ADJUSTMENT_TYPE_CREDIT_ABSOLUTE = 0x01, } EmberAfCreditAdjustmentType; +// Enum for CreditPaymentStatus typedef enum { EMBER_ZCL_CREDIT_PAYMENT_STATUS_PENDING = 0x00, @@ -449,6 +464,7 @@ typedef enum EMBER_ZCL_CREDIT_PAYMENT_STATUS_3_PAYMENTS_OVERDUE = 0x04, } EmberAfCreditPaymentStatus; +// Enum for DataQualityId typedef enum { EMBER_ZCL_DATA_QUALITY_ID_ALL_DATA_CERTIFIED = 0x0000, @@ -457,6 +473,7 @@ typedef enum EMBER_ZCL_DATA_QUALITY_ID_NOT_CERTIFIED_DATA = 0x0003, } EmberAfDataQualityId; +// Enum for DebtAmountType typedef enum { EMBER_ZCL_DEBT_AMOUNT_TYPE_TYPE1_ABSOLUTE = 0x00, @@ -467,6 +484,7 @@ typedef enum EMBER_ZCL_DEBT_AMOUNT_TYPE_TYPE3_INCREMENTAL = 0x05, } EmberAfDebtAmountType; +// Enum for DebtRecoveryFrequency typedef enum { EMBER_ZCL_DEBT_RECOVERY_FREQUENCY_PER_HOUR = 0x00, @@ -476,6 +494,7 @@ typedef enum EMBER_ZCL_DEBT_RECOVERY_FREQUENCY_PER_QUARTER = 0x04, } EmberAfDebtRecoveryFrequency; +// Enum for DebtRecoveryMethod typedef enum { EMBER_ZCL_DEBT_RECOVERY_METHOD_TIME_BASED = 0x00, @@ -483,23 +502,27 @@ typedef enum EMBER_ZCL_DEBT_RECOVERY_METHOD_CATCH_UP_BASED = 0x02, } EmberAfDebtRecoveryMethod; +// Enum for DehumidifcationLockout typedef enum { - EMBER_ZCL_DEHUMIDIFCATION_LOCKOUT_NOT_ALLOWED = 0x00, - EMBER_ZCL_DEHUMIDIFCATION_LOCKOUT_ALLOWED = 0x01, + EMBER_ZCL_DEHUMIDIFCATION_LOCKOUT_NOT_ALLOWED = 0x0, + EMBER_ZCL_DEHUMIDIFCATION_LOCKOUT_ALLOWED = 0x1, } EmberAfDehumidifcationLockout; +// Enum for DeviceInformationRecordSort typedef enum { EMBER_ZCL_DEVICE_INFORMATION_RECORD_SORT_NOT_SORTED = 0x00, EMBER_ZCL_DEVICE_INFORMATION_RECORD_SORT_TOP_OF_THE_LIST = 0x01, } EmberAfDeviceInformationRecordSort; +// Enum for DeviceStatus2Structure typedef enum { EMBER_ZCL_DEVICE_STATUS2_STRUCTURE_IRIS_SYMPTOM_CODE = 0x20, } EmberAfDeviceStatus2Structure; +// Enum for DoorLockEventSource typedef enum { EMBER_ZCL_DOOR_LOCK_EVENT_SOURCE_KEYPAD = 0x00, @@ -509,6 +532,7 @@ typedef enum EMBER_ZCL_DOOR_LOCK_EVENT_SOURCE_INDETERMINATE = 0xFF, } EmberAfDoorLockEventSource; +// Enum for DoorLockEventType typedef enum { EMBER_ZCL_DOOR_LOCK_EVENT_TYPE_OPERATION = 0x00, @@ -516,6 +540,7 @@ typedef enum EMBER_ZCL_DOOR_LOCK_EVENT_TYPE_ALARM = 0x02, } EmberAfDoorLockEventType; +// Enum for DoorLockOperatingMode typedef enum { EMBER_ZCL_DOOR_LOCK_OPERATING_MODE_NORMAL_MODE = 0x00, @@ -523,9 +548,10 @@ typedef enum EMBER_ZCL_DOOR_LOCK_OPERATING_MODE_PRIVACY_MODE = 0x02, EMBER_ZCL_DOOR_LOCK_OPERATING_MODE_NO_RF_LOCK_OR_UNLOCK = 0x03, EMBER_ZCL_DOOR_LOCK_OPERATING_MODE_LOCAL_PROGRAMMING_MODE = 0x04, - EMBER_ZCL_DOOR_LOCK_OPERATING_MODE_PASSAGE_MODE = 0x05, + EMBER_ZCL_DOOR_LOCK_OPERATING_MODE_PASSAGE_MODE______ = 0x05, } EmberAfDoorLockOperatingMode; +// Enum for DoorLockOperationEventCode typedef enum { EMBER_ZCL_DOOR_LOCK_OPERATION_EVENT_CODE_UNKNOWN_OR_MFG_SPECIFIC = 0x00, @@ -545,6 +571,7 @@ typedef enum EMBER_ZCL_DOOR_LOCK_OPERATION_EVENT_CODE_MANUAL_UNLOCK = 0x0E, } EmberAfDoorLockOperationEventCode; +// Enum for DoorLockProgrammingEventCode typedef enum { EMBER_ZCL_DOOR_LOCK_PROGRAMMING_EVENT_CODE_UNKNOWN_OR_MFG_SPECIFIC = 0x00, @@ -556,12 +583,14 @@ typedef enum EMBER_ZCL_DOOR_LOCK_PROGRAMMING_EVENT_CODE_ID_DELETED = 0x06, } EmberAfDoorLockProgrammingEventCode; +// Enum for DoorLockSecurityLevel typedef enum { EMBER_ZCL_DOOR_LOCK_SECURITY_LEVEL_NETWORK_SECURITY = 0x00, EMBER_ZCL_DOOR_LOCK_SECURITY_LEVEL_APS_SECURITY = 0x01, } EmberAfDoorLockSecurityLevel; +// Enum for DoorLockSetPinOrIdStatus typedef enum { EMBER_ZCL_DOOR_LOCK_SET_PIN_OR_ID_STATUS_SUCCESS = 0x00, @@ -570,6 +599,7 @@ typedef enum EMBER_ZCL_DOOR_LOCK_SET_PIN_OR_ID_STATUS_DUPLICATE_CODE_ERROR = 0x03, } EmberAfDoorLockSetPinOrIdStatus; +// Enum for DoorLockSoundVolume typedef enum { EMBER_ZCL_DOOR_LOCK_SOUND_VOLUME_SILENT = 0x00, @@ -577,6 +607,7 @@ typedef enum EMBER_ZCL_DOOR_LOCK_SOUND_VOLUME_HIGH = 0x02, } EmberAfDoorLockSoundVolume; +// Enum for DoorLockState typedef enum { EMBER_ZCL_DOOR_LOCK_STATE_NOT_FULLY_LOCKED = 0x00, @@ -584,6 +615,7 @@ typedef enum EMBER_ZCL_DOOR_LOCK_STATE_UNLOCKED = 0x02, } EmberAfDoorLockState; +// Enum for DoorLockType typedef enum { EMBER_ZCL_DOOR_LOCK_TYPE_DEAD_BOLT = 0x00, @@ -598,6 +630,7 @@ typedef enum EMBER_ZCL_DOOR_LOCK_TYPE_OTHER = 0x09, } EmberAfDoorLockType; +// Enum for DoorLockUserStatus typedef enum { EMBER_ZCL_DOOR_LOCK_USER_STATUS_AVAILABLE = 0x00, @@ -606,15 +639,18 @@ typedef enum EMBER_ZCL_DOOR_LOCK_USER_STATUS_NOT_SUPPORTED = 0xFF, } EmberAfDoorLockUserStatus; +// Enum for DoorLockUserType typedef enum { - EMBER_ZCL_DOOR_LOCK_USER_TYPE_UNRESTRICTED = 0x00, - EMBER_ZCL_DOOR_LOCK_USER_TYPE_ONE_TIME_USER = 0x01, - EMBER_ZCL_DOOR_LOCK_USER_TYPE_USER_WITH_SCHEDULE = 0x02, - EMBER_ZCL_DOOR_LOCK_USER_TYPE_MASTER_USER = 0x03, - EMBER_ZCL_DOOR_LOCK_USER_TYPE_NOT_SUPPORTED = 0xFF, + EMBER_ZCL_DOOR_LOCK_USER_TYPE_UNRESTRICTED = 0x00, + EMBER_ZCL_DOOR_LOCK_USER_TYPE_YEAR_DAY_SCHEDULE_USER = 0x01, + EMBER_ZCL_DOOR_LOCK_USER_TYPE_WEEK_DAY_SCHEDULE_USER = 0x02, + EMBER_ZCL_DOOR_LOCK_USER_TYPE_MASTER_USER = 0x03, + EMBER_ZCL_DOOR_LOCK_USER_TYPE_NON_ACCESS_USER = 0x04, + EMBER_ZCL_DOOR_LOCK_USER_TYPE_NOT_SUPPORTED = 0xFF, } EmberAfDoorLockUserType; +// Enum for DoorState typedef enum { EMBER_ZCL_DOOR_STATE_OPEN = 0x00, @@ -624,6 +660,7 @@ typedef enum EMBER_ZCL_DOOR_STATE_ERROR_UNSPECIFIED = 0x04, } EmberAfDoorState; +// Enum for ElectricityAlarmGroups typedef enum { EMBER_ZCL_ELECTRICITY_ALARM_GROUPS_LOW_VOLTAGE_L1 = 0x10, @@ -648,12 +685,13 @@ typedef enum EMBER_ZCL_ELECTRICITY_ALARM_GROUPS_UNDER_VOLTAGE = 0x23, EMBER_ZCL_ELECTRICITY_ALARM_GROUPS_OVER_VOLTAGE = 0x24, EMBER_ZCL_ELECTRICITY_ALARM_GROUPS_NORMAL_VOLTAGE = 0x25, - EMBER_ZCL_ELECTRICITY_ALARM_GROUPS_P_F_BELOW_THRESHOLD = 0x26, - EMBER_ZCL_ELECTRICITY_ALARM_GROUPS_P_F_ABOVE_THRESHOLD = 0x27, + EMBER_ZCL_ELECTRICITY_ALARM_GROUPS_PF_BELOW_THRESHOLD = 0x26, + EMBER_ZCL_ELECTRICITY_ALARM_GROUPS_PF_ABOVE_THRESHOLD = 0x27, EMBER_ZCL_ELECTRICITY_ALARM_GROUPS_TERMINAL_COVER_REMOVED = 0x28, EMBER_ZCL_ELECTRICITY_ALARM_GROUPS_TERMINAL_COVER_CLOSED = 0x29, } EmberAfElectricityAlarmGroups; +// Enum for EnhancedColorMode typedef enum { EMBER_ZCL_ENHANCED_COLOR_MODE_CURRENT_HUE_AND_CURRENT_SATURATION = 0x00, @@ -662,6 +700,7 @@ typedef enum EMBER_ZCL_ENHANCED_COLOR_MODE_ENHANCED_CURRENT_HUE_AND_CURRENT_SATURATION = 0x03, } EmberAfEnhancedColorMode; +// Enum for EventConfigurationControl typedef enum { EMBER_ZCL_EVENT_CONFIGURATION_CONTROL_APPLY_BY_LIST = 0x00, @@ -670,6 +709,7 @@ typedef enum EMBER_ZCL_EVENT_CONFIGURATION_CONTROL_APPLY_BY_CONFIGURATION_MATCH = 0x03, } EmberAfEventConfigurationControl; +// Enum for EventConfigurationLogAction typedef enum { EMBER_ZCL_EVENT_CONFIGURATION_LOG_ACTION_DO_NOT_LOG = 0x00, @@ -680,12 +720,14 @@ typedef enum EMBER_ZCL_EVENT_CONFIGURATION_LOG_ACTION_LOG_AS_NETWORK_EVENT = 0x05, } EmberAfEventConfigurationLogAction; +// Enum for EventControl typedef enum { EMBER_ZCL_EVENT_CONTROL_RETRIEVE_MINIMAL_INFORMATION = 0x00, EMBER_ZCL_EVENT_CONTROL_RETRIEVE_FULL_INFORMATION = 0x10, } EmberAfEventControl; +// Enum for EventId typedef enum { EMBER_ZCL_EVENT_ID_METER_COVER_REMOVED = 0x00, @@ -751,6 +793,8 @@ typedef enum EMBER_ZCL_EVENT_ID_BATTERY_COVER_REMOVED = 0xA2, EMBER_ZCL_EVENT_ID_BATTERY_COVER_CLOSED = 0xA3, EMBER_ZCL_EVENT_ID_EXCESS_FLOW = 0xA4, + EMBER_ZCL_EVENT_ID_CREDIT_OK = 0xC0, + EMBER_ZCL_EVENT_ID_LOW_CREDIT = 0xC1, EMBER_ZCL_EVENT_ID_EMERGENCY_CREDIT_IN_USE = 0xC0, EMBER_ZCL_EVENT_ID_EMERGENCY_CREDIT_EXHAUSTED = 0xC1, EMBER_ZCL_EVENT_ID_ZERO_CREDIT_EC_NOT_SELECTED = 0xC2, @@ -769,6 +813,7 @@ typedef enum EMBER_ZCL_EVENT_ID_MANUFACTURER_SPECIFIC_I = 0xE8, } EmberAfEventId; +// Enum for EventIdentification typedef enum { EMBER_ZCL_EVENT_IDENTIFICATION_END_OF_CYCLE = 0x01, @@ -778,6 +823,7 @@ typedef enum EMBER_ZCL_EVENT_IDENTIFICATION_WRONG_DATA = 0x07, } EmberAfEventIdentification; +// Enum for EventLogId typedef enum { EMBER_ZCL_EVENT_LOG_ID_ALL_LOGS = 0x00, @@ -790,12 +836,14 @@ typedef enum EMBER_ZCL_EVENT_LOG_ID_GBCS_SECURITY_EVENT_LOG = 0x07, } EmberAfEventLogId; +// Enum for EventLogPayloadControl typedef enum { EMBER_ZCL_EVENT_LOG_PAYLOAD_CONTROL_EVENTS_DO_NOT_CROSS_FRAME_BOUNDARY = 0x00, EMBER_ZCL_EVENT_LOG_PAYLOAD_CONTROL_EVENT_CROSSES_FRAME_BOUNDARY = 0x01, } EmberAfEventLogPayloadControl; +// Enum for ExtendedGenericAlarmGroups typedef enum { EMBER_ZCL_EXTENDED_GENERIC_ALARM_GROUPS_MEASUREMENT_SYSTEM_ERROR = 0x70, @@ -839,6 +887,7 @@ typedef enum EMBER_ZCL_EXTENDED_GENERIC_ALARM_GROUPS_EXTENDED_METER_ALARM_STATUS_REGISTER_CHANGED = 0x96, } EmberAfExtendedGenericAlarmGroups; +// Enum for ExtendedNumberOfPriceTiers typedef enum { EMBER_ZCL_EXTENDED_NUMBER_OF_PRICE_TIERS_REFER_TO_NUMBER_OF_PRICE_TIERS_FIELD = 0x00, @@ -877,6 +926,7 @@ typedef enum EMBER_ZCL_EXTENDED_NUMBER_OF_PRICE_TIERS_NUMBER_OF_PRICE_TIERS48 = 0x21, } EmberAfExtendedNumberOfPriceTiers; +// Enum for ExtendedPriceTier typedef enum { EMBER_ZCL_EXTENDED_PRICE_TIER_REFER_TO_PRICE_TIER_FIELD = 0x00, @@ -915,6 +965,7 @@ typedef enum EMBER_ZCL_EXTENDED_PRICE_TIER_TIER48_PRICE_LABEL = 0x21, } EmberAfExtendedPriceTier; +// Enum for ExtendedRegisterTier typedef enum { EMBER_ZCL_EXTENDED_REGISTER_TIER_REFER_TO_REGISTER_TIER_FIELD = 0x00, @@ -953,32 +1004,36 @@ typedef enum EMBER_ZCL_EXTENDED_REGISTER_TIER_CURRENT_TIER48_SUMMATION_DELIVERED_ATTRIBUTE = 0x21, } EmberAfExtendedRegisterTier; +// Enum for EzModeCommissioningClusterType typedef enum { EMBER_ZCL_EZ_MODE_COMMISSIONING_CLUSTER_TYPE_SERVER = 0x00, EMBER_ZCL_EZ_MODE_COMMISSIONING_CLUSTER_TYPE_CLIENT = 0x01, } EmberAfEzModeCommissioningClusterType; +// Enum for FanMode typedef enum { - EMBER_ZCL_FAN_MODE_OFF = 0x00, - EMBER_ZCL_FAN_MODE_LOW = 0x01, - EMBER_ZCL_FAN_MODE_MEDIUM = 0x02, - EMBER_ZCL_FAN_MODE_HIGH = 0x03, - EMBER_ZCL_FAN_MODE_ON = 0x04, - EMBER_ZCL_FAN_MODE_AUTO = 0x05, - EMBER_ZCL_FAN_MODE_SMART = 0x06, + EMBER_ZCL_FAN_MODE_OFF = 0x0, + EMBER_ZCL_FAN_MODE_LOW = 0x1, + EMBER_ZCL_FAN_MODE_MEDIUM = 0x2, + EMBER_ZCL_FAN_MODE_HIGH = 0x3, + EMBER_ZCL_FAN_MODE_ON = 0x4, + EMBER_ZCL_FAN_MODE_AUTO = 0x5, + EMBER_ZCL_FAN_MODE_SMART = 0x6, } EmberAfFanMode; +// Enum for FanModeSequence typedef enum { - EMBER_ZCL_FAN_MODE_SEQUENCE_LOW_MED_HIGH = 0x00, - EMBER_ZCL_FAN_MODE_SEQUENCE_LOW_HIGH = 0x01, - EMBER_ZCL_FAN_MODE_SEQUENCE_LOW_MED_HIGH_AUTO = 0x02, - EMBER_ZCL_FAN_MODE_SEQUENCE_LOW_HIGH_AUTO = 0x03, - EMBER_ZCL_FAN_MODE_SEQUENCE_ON_AUTO = 0x04, + EMBER_ZCL_FAN_MODE_SEQUENCE_LOW_MED_HIGH = 0x0, + EMBER_ZCL_FAN_MODE_SEQUENCE_LOW_HIGH = 0x1, + EMBER_ZCL_FAN_MODE_SEQUENCE_LOW_MED_HIGH_AUTO = 0x2, + EMBER_ZCL_FAN_MODE_SEQUENCE_LOW_HIGH_AUTO = 0x3, + EMBER_ZCL_FAN_MODE_SEQUENCE_ON_AUTO = 0x4, } EmberAfFanModeSequence; +// Enum for GasSpecificAlarmGroups typedef enum { EMBER_ZCL_GAS_SPECIFIC_ALARM_GROUPS_TILT_TAMPER = 0x60, @@ -988,6 +1043,7 @@ typedef enum EMBER_ZCL_GAS_SPECIFIC_ALARM_GROUPS_TILT_TAMPER_ENDED = 0x64, } EmberAfGasSpecificAlarmGroups; +// Enum for GenerationTier typedef enum { EMBER_ZCL_GENERATION_TIER_CURRENT_TIER1_SUMMATION_RECEIVED_ATTRIBUTE = 0x01, @@ -1040,6 +1096,7 @@ typedef enum EMBER_ZCL_GENERATION_TIER_CURRENT_TIER48_SUMMATION_RECEIVED_ATTRIBUTE = 0x30, } EmberAfGenerationTier; +// Enum for GenericAlarmGroups typedef enum { EMBER_ZCL_GENERIC_ALARM_GROUPS_CHECK_METER = 0x00, @@ -1053,22 +1110,25 @@ typedef enum EMBER_ZCL_GENERIC_ALARM_GROUPS_NO_STRONG_MAGNETIC_FIELD = 0x0B, EMBER_ZCL_GENERIC_ALARM_GROUPS_BATTERY_FAILURE = 0x0C, EMBER_ZCL_GENERIC_ALARM_GROUPS_PROGRAM_MEMORY_ERROR = 0x0D, - EMBER_ZCL_GENERIC_ALARM_GROUPS_R_A_M_ERROR = 0x0E, - EMBER_ZCL_GENERIC_ALARM_GROUPS_N_V_MEMORY_ERROR = 0x0F, + EMBER_ZCL_GENERIC_ALARM_GROUPS_RAM_ERROR = 0x0E, + EMBER_ZCL_GENERIC_ALARM_GROUPS_NV_MEMORY_ERROR = 0x0F, } EmberAfGenericAlarmGroups; +// Enum for GenericAlarmGroupsElectricity typedef enum { EMBER_ZCL_GENERIC_ALARM_GROUPS_ELECTRICITY_POWER_FAILURE = 0x03, EMBER_ZCL_GENERIC_ALARM_GROUPS_ELECTRICITY_POWER_QUALITY = 0x04, } EmberAfGenericAlarmGroupsElectricity; +// Enum for GenericAlarmGroupsGas typedef enum { EMBER_ZCL_GENERIC_ALARM_GROUPS_GAS_LOW_PRESSURE = 0x04, EMBER_ZCL_GENERIC_ALARM_GROUPS_GAS_REVERSE_FLOW = 0x07, } EmberAfGenericAlarmGroupsGas; +// Enum for GenericAlarmGroupsHeatCooling typedef enum { EMBER_ZCL_GENERIC_ALARM_GROUPS_HEAT_COOLING_TEMPERATURE_SENSOR = 0x03, @@ -1076,6 +1136,7 @@ typedef enum EMBER_ZCL_GENERIC_ALARM_GROUPS_HEAT_COOLING_FLOW_SENSOR = 0x07, } EmberAfGenericAlarmGroupsHeatCooling; +// Enum for GenericAlarmGroupsWater typedef enum { EMBER_ZCL_GENERIC_ALARM_GROUPS_WATER_WATER_PIPE_EMPTY = 0x03, @@ -1083,11 +1144,13 @@ typedef enum EMBER_ZCL_GENERIC_ALARM_GROUPS_WATER_WATER_REVERSE_FLOW = 0x07, } EmberAfGenericAlarmGroupsWater; +// Enum for GenericDeviceClass typedef enum { EMBER_ZCL_GENERIC_DEVICE_CLASS_LIGHTING = 0x00, } EmberAfGenericDeviceClass; +// Enum for GenericDeviceType typedef enum { EMBER_ZCL_GENERIC_DEVICE_TYPE_INCANDESCENT = 0x00, @@ -1113,6 +1176,7 @@ typedef enum EMBER_ZCL_GENERIC_DEVICE_TYPE_UNSPECIFIED = 0xFF, } EmberAfGenericDeviceType; +// Enum for GenericFlowPressureAlarmGroups typedef enum { EMBER_ZCL_GENERIC_FLOW_PRESSURE_ALARM_GROUPS_BURST_DETECT = 0x30, @@ -1125,14 +1189,27 @@ typedef enum EMBER_ZCL_GENERIC_FLOW_PRESSURE_ALARM_GROUPS_PIPE_EMPTY = 0x37, } EmberAfGenericFlowPressureAlarmGroups; -typedef enum -{ - EMBER_ZCL_GP_DEVICE_ID_GP_SIMPLE_GENERICE_TWO_STATE_SWITCH = 0x00, - EMBER_ZCL_GP_DEVICE_ID_GP_ON_OFF_SWITCH = 0x08, - EMBER_ZCL_GP_DEVICE_ID_GP_LEVEL_CONTROL_SWITCH = 0x10, - EMBER_ZCL_GP_DEVICE_ID_GP_INDOOR_ENVIRONMENT_SNESOR = 0x18, +// Enum for GpDeviceId +typedef enum +{ + EMBER_ZCL_GP_DEVICE_ID_GP_SIMPLE_GENERIC_ONE_STATE_SWITCH = 0x00, + EMBER_ZCL_GP_DEVICE_ID_GP_SIMPLE_GENERIC_TWO_STATE_SWITCH = 0x00, + EMBER_ZCL_GP_DEVICE_ID_GP_ON_OFF_SWITCH = 0x08, + EMBER_ZCL_GP_DEVICE_ID_GP_LEVEL_CONTROL_SWITCH = 0x10, + EMBER_ZCL_GP_DEVICE_ID_GP_SIMPLE_SENSOR = 0x18, + EMBER_ZCL_GP_DEVICE_ID_GP_ADVANCED_GENERIC_ONE_STATE_SWITCH = 0x18, + EMBER_ZCL_GP_DEVICE_ID_GP_ADVANCED_GENERIC_TWO_STATE_SWITCH = 0x18, + EMBER_ZCL_GP_DEVICE_ID_GP_COLOR_DIMMER_SWITCH = 0x18, + EMBER_ZCL_GP_DEVICE_ID_GP_LIGHT_SENSOR = 0x18, + EMBER_ZCL_GP_DEVICE_ID_GP_OCCPANCY_SENSOR = 0x18, + EMBER_ZCL_GP_DEVICE_ID_GP_DOOR_LOCK_CONTROLLER = 0x18, + EMBER_ZCL_GP_DEVICE_ID_GP_TEMPERATURE_SENSOR = 0x18, + EMBER_ZCL_GP_DEVICE_ID_GP_PRESSURE_SENSOR = 0x18, + EMBER_ZCL_GP_DEVICE_ID_GP_FLOW_SENSOR = 0x18, + EMBER_ZCL_GP_DEVICE_ID_GP_INDOOR_ENVIRONMENT_SNESOR = 0x18, } EmberAfGpDeviceId; +// Enum for GpGpdf typedef enum { EMBER_ZCL_GP_GPDF_IDENTIFY = 0x00, @@ -1228,6 +1305,7 @@ typedef enum EMBER_ZCL_GP_GPDF_ZCL_TUNNELING = 0xF6, } EmberAfGpGpdf; +// Enum for GpPairingConfigurationAction typedef enum { EMBER_ZCL_GP_PAIRING_CONFIGURATION_ACTION_NO_ACTION = 0x00, @@ -1238,14 +1316,16 @@ typedef enum EMBER_ZCL_GP_PAIRING_CONFIGURATION_ACTION_APPLICATION_DESCRIPTION = 0x05, } EmberAfGpPairingConfigurationAction; +// Enum for GpPairingConfigurationOptionCommunicationMode typedef enum { EMBER_ZCL_GP_PAIRING_CONFIGURATION_OPTION_COMMUNICATION_MODE_UNICAST_FORWARDING = 0x00, - EMBER_ZCL_GP_PAIRING_CONFIGURATION_OPTION_COMMUNICATION_MODE_GROUPCAST_FORWARDING_TO_D_GROUP_I_D = 0x08, + EMBER_ZCL_GP_PAIRING_CONFIGURATION_OPTION_COMMUNICATION_MODE_GROUPCAST_FORWARDING_TO_D_GROUP_ID = 0x08, EMBER_ZCL_GP_PAIRING_CONFIGURATION_OPTION_COMMUNICATION_MODE_GROUPCAST_FORWARDING_TO_PRE_COMMISSIONED = 0x10, EMBER_ZCL_GP_PAIRING_CONFIGURATION_OPTION_COMMUNICATION_MODE_UNICAST_FORWARDING_LIGHTWEIGHT = 0x18, } EmberAfGpPairingConfigurationOptionCommunicationMode; +// Enum for GpPairingOptionsCommunicationMode typedef enum { EMBER_ZCL_GP_PAIRING_OPTIONS_COMMUNICATION_MODE_FULL_UNICAST_FORWARDING = 0x00, @@ -1254,18 +1334,21 @@ typedef enum EMBER_ZCL_GP_PAIRING_OPTIONS_COMMUNICATION_MODE_UNICAST_FORWARDING_BY_PROX_SUPPORT = 0x11, } EmberAfGpPairingOptionsCommunicationMode; +// Enum for GpProxyTableRequestOptionsRequestType typedef enum { EMBER_ZCL_GP_PROXY_TABLE_REQUEST_OPTIONS_REQUEST_TYPE_BY_GPD_ID = 0x00, EMBER_ZCL_GP_PROXY_TABLE_REQUEST_OPTIONS_REQUEST_TYPE_BY_INDEX = 0x01, } EmberAfGpProxyTableRequestOptionsRequestType; +// Enum for GpProxyTableResponseStatus typedef enum { EMBER_ZCL_GP_PROXY_TABLE_RESPONSE_STATUS_SUCCESS = 0x00, EMBER_ZCL_GP_PROXY_TABLE_RESPONSE_STATUS_NOT_FOUND = 0x8B, } EmberAfGpProxyTableResponseStatus; +// Enum for GpSecurityKeyType typedef enum { EMBER_ZCL_GP_SECURITY_KEY_TYPE_NONE = 0x00, @@ -1276,24 +1359,28 @@ typedef enum EMBER_ZCL_GP_SECURITY_KEY_TYPE_DERIVED_INDIVIDUAL_GPD_KEY = 0x07, } EmberAfGpSecurityKeyType; +// Enum for GpSinkTableRequestOptions typedef enum { EMBER_ZCL_GP_SINK_TABLE_REQUEST_OPTIONS_REQUEST_TABLE_ENTRIES_BY_GPD_ID = 0x00, EMBER_ZCL_GP_SINK_TABLE_REQUEST_OPTIONS_REQUEST_TABLE_ENTRIES_BY_INDEX = 0x01, } EmberAfGpSinkTableRequestOptions; +// Enum for GpSinkTableResponseStatus typedef enum { EMBER_ZCL_GP_SINK_TABLE_RESPONSE_STATUS_SUCCESS = 0x00, EMBER_ZCL_GP_SINK_TABLE_RESPONSE_STATUS_NOT_FOUND = 0x8B, } EmberAfGpSinkTableResponseStatus; +// Enum for GpTranslationTableResponseStatus typedef enum { EMBER_ZCL_GP_TRANSLATION_TABLE_RESPONSE_STATUS_SUCCESS = 0x00, EMBER_ZCL_GP_TRANSLATION_TABLE_RESPONSE_STATUS_NOT_FOUND = 0x8B, } EmberAfGpTranslationTableResponseStatus; +// Enum for GpTranslationTableUpdateAction typedef enum { EMBER_ZCL_GP_TRANSLATION_TABLE_UPDATE_ACTION_ADD_TRANSLATION_TABLE_ENTRY = 0x00, @@ -1302,79 +1389,89 @@ typedef enum EMBER_ZCL_GP_TRANSLATION_TABLE_UPDATE_ACTION_RESERVED = 0x18, } EmberAfGpTranslationTableUpdateAction; +// Enum for HeatAndCoolingSpecificAlarmGroups typedef enum { EMBER_ZCL_HEAT_AND_COOLING_SPECIFIC_ALARM_GROUPS_INLET_TEMPERATURE_SENSOR_FAULT = 0x50, EMBER_ZCL_HEAT_AND_COOLING_SPECIFIC_ALARM_GROUPS_OUTLET_TEMPERATURE_SENSOR_FAULT = 0x51, } EmberAfHeatAndCoolingSpecificAlarmGroups; +// Enum for HueDirection typedef enum { - EMBER_ZCL_HUE_DIRECTION_SHORTEST_DISTANCE = 0x00, - EMBER_ZCL_HUE_DIRECTION_LONGEST_DISTANCE = 0x01, - EMBER_ZCL_HUE_DIRECTION_UP = 0x02, - EMBER_ZCL_HUE_DIRECTION_DOWN = 0x03, + EMBER_ZCL_HUE_DIRECTION_SHORTEST_DISTANCE = 0x0, + EMBER_ZCL_HUE_DIRECTION_LONGEST_DISTANCE = 0x1, + EMBER_ZCL_HUE_DIRECTION_UP = 0x2, + EMBER_ZCL_HUE_DIRECTION_DOWN = 0x3, } EmberAfHueDirection; +// Enum for HueMoveMode typedef enum { - EMBER_ZCL_HUE_MOVE_MODE_STOP = 0x00, - EMBER_ZCL_HUE_MOVE_MODE_UP = 0x01, - EMBER_ZCL_HUE_MOVE_MODE_DOWN = 0x03, + EMBER_ZCL_HUE_MOVE_MODE_STOP = 0x0, + EMBER_ZCL_HUE_MOVE_MODE_UP = 0x1, + EMBER_ZCL_HUE_MOVE_MODE_DOWN = 0x3, } EmberAfHueMoveMode; +// Enum for HueStepMode typedef enum { - EMBER_ZCL_HUE_STEP_MODE_UP = 0x01, - EMBER_ZCL_HUE_STEP_MODE_DOWN = 0x03, + EMBER_ZCL_HUE_STEP_MODE_UP = 0x1, + EMBER_ZCL_HUE_STEP_MODE_DOWN = 0x3, } EmberAfHueStepMode; +// Enum for IasAceAlarmStatus typedef enum { - EMBER_ZCL_IAS_ACE_ALARM_STATUS_NO_ALARM = 0x00, - EMBER_ZCL_IAS_ACE_ALARM_STATUS_BURGLAR = 0x01, - EMBER_ZCL_IAS_ACE_ALARM_STATUS_FIRE = 0x02, - EMBER_ZCL_IAS_ACE_ALARM_STATUS_EMERGENCY = 0x03, - EMBER_ZCL_IAS_ACE_ALARM_STATUS_POLICE_PANIC = 0x04, - EMBER_ZCL_IAS_ACE_ALARM_STATUS_FIRE_PANIC = 0x05, - EMBER_ZCL_IAS_ACE_ALARM_STATUS_EMERGENCY_PANIC = 0x06, + EMBER_ZCL_IAS_ACE_ALARM_STATUS_NO_ALARM = 0x0, + EMBER_ZCL_IAS_ACE_ALARM_STATUS_BURGLAR = 0x1, + EMBER_ZCL_IAS_ACE_ALARM_STATUS_FIRE = 0x2, + EMBER_ZCL_IAS_ACE_ALARM_STATUS_EMERGENCY = 0x3, + EMBER_ZCL_IAS_ACE_ALARM_STATUS_POLICE_PANIC = 0x4, + EMBER_ZCL_IAS_ACE_ALARM_STATUS_FIRE_PANIC = 0x5, + EMBER_ZCL_IAS_ACE_ALARM_STATUS_EMERGENCY_PANIC = 0x6, } EmberAfIasAceAlarmStatus; +// Enum for IasAceArmMode typedef enum { - EMBER_ZCL_IAS_ACE_ARM_MODE_DISARM = 0x00, - EMBER_ZCL_IAS_ACE_ARM_MODE_ARM_DAY_HOME_ZONES_ONLY = 0x01, - EMBER_ZCL_IAS_ACE_ARM_MODE_ARM_NIGHT_SLEEP_ZONES_ONLY = 0x02, - EMBER_ZCL_IAS_ACE_ARM_MODE_ARM_ALL_ZONES = 0x03, + EMBER_ZCL_IAS_ACE_ARM_MODE_DISARM = 0x0, + EMBER_ZCL_IAS_ACE_ARM_MODE_ARM_DAY_HOME_ZONES_ONLY = 0x1, + EMBER_ZCL_IAS_ACE_ARM_MODE_ARM_NIGHT_SLEEP_ZONES_ONLY = 0x2, + EMBER_ZCL_IAS_ACE_ARM_MODE_ARM_ALL_ZONES = 0x3, } EmberAfIasAceArmMode; +// Enum for IasAceArmNotification typedef enum { - EMBER_ZCL_IAS_ACE_ARM_NOTIFICATION_ALL_ZONES_DISARMED = 0x00, - EMBER_ZCL_IAS_ACE_ARM_NOTIFICATION_ONLY_DAY_HOME_ZONES_ARMED = 0x01, - EMBER_ZCL_IAS_ACE_ARM_NOTIFICATION_ONLY_NIGHT_SLEEP_ZONES_ARMED = 0x02, - EMBER_ZCL_IAS_ACE_ARM_NOTIFICATION_ALL_ZONES_ARMED = 0x03, + EMBER_ZCL_IAS_ACE_ARM_NOTIFICATION_ALL_ZONES_DISARMED = 0x0, + EMBER_ZCL_IAS_ACE_ARM_NOTIFICATION_ONLY_DAY_HOME_ZONES_ARMED = 0x1, + EMBER_ZCL_IAS_ACE_ARM_NOTIFICATION_ONLY_NIGHT_SLEEP_ZONES_ARMED = 0x2, + EMBER_ZCL_IAS_ACE_ARM_NOTIFICATION_ALL_ZONES_ARMED = 0x3, EMBER_ZCL_IAS_ACE_ARM_NOTIFICATION_INVALID_ARM_DISARM_CODE = 0x04, EMBER_ZCL_IAS_ACE_ARM_NOTIFICATION_NOT_READY_TO_ARM = 0x05, EMBER_ZCL_IAS_ACE_ARM_NOTIFICATION_ALREADY_DISARMED = 0x06, } EmberAfIasAceArmNotification; +// Enum for IasAceAudibleNotification typedef enum { - EMBER_ZCL_IAS_ACE_AUDIBLE_NOTIFICATION_MUTE = 0x00, - EMBER_ZCL_IAS_ACE_AUDIBLE_NOTIFICATION_DEFAULT_SOUND = 0x01, + EMBER_ZCL_IAS_ACE_AUDIBLE_NOTIFICATION_MUTE = 0x0, + EMBER_ZCL_IAS_ACE_AUDIBLE_NOTIFICATION_DEFAULT_SOUND = 0x1, } EmberAfIasAceAudibleNotification; +// Enum for IasAceBypassResult typedef enum { - EMBER_ZCL_IAS_ACE_BYPASS_RESULT_ZONE_BYPASSED = 0x00, - EMBER_ZCL_IAS_ACE_BYPASS_RESULT_ZONE_NOT_BYPASSED = 0x01, - EMBER_ZCL_IAS_ACE_BYPASS_RESULT_NOT_ALLOWED = 0x02, - EMBER_ZCL_IAS_ACE_BYPASS_RESULT_INVALID_ZONE_ID = 0x03, - EMBER_ZCL_IAS_ACE_BYPASS_RESULT_UNKNOWN_ZONE_ID = 0x04, - EMBER_ZCL_IAS_ACE_BYPASS_RESULT_INVALID_ARM_DISARM_CODE = 0x05, + EMBER_ZCL_IAS_ACE_BYPASS_RESULT_ZONE_BYPASSED = 0x0, + EMBER_ZCL_IAS_ACE_BYPASS_RESULT_ZONE_NOT_BYPASSED = 0x1, + EMBER_ZCL_IAS_ACE_BYPASS_RESULT_NOT_ALLOWED = 0x2, + EMBER_ZCL_IAS_ACE_BYPASS_RESULT_INVALID_ZONE_ID = 0x3, + EMBER_ZCL_IAS_ACE_BYPASS_RESULT_UNKNOWN_ZONE_ID = 0x4, + EMBER_ZCL_IAS_ACE_BYPASS_RESULT_INVALID_ARM_DISARM_CODE = 0x5, } EmberAfIasAceBypassResult; +// Enum for IasAcePanelStatus typedef enum { EMBER_ZCL_IAS_ACE_PANEL_STATUS_PANEL_DISARMED = 0x00, @@ -1390,40 +1487,44 @@ typedef enum EMBER_ZCL_IAS_ACE_PANEL_STATUS_ARMING_AWAY = 0x0A, } EmberAfIasAcePanelStatus; +// Enum for IasEnrollResponseCode typedef enum { - EMBER_ZCL_IAS_ENROLL_RESPONSE_CODE_SUCCESS = 0x00, - EMBER_ZCL_IAS_ENROLL_RESPONSE_CODE_NOT_SUPPORTED = 0x01, - EMBER_ZCL_IAS_ENROLL_RESPONSE_CODE_NO_ENROLL_PERMIT = 0x02, - EMBER_ZCL_IAS_ENROLL_RESPONSE_CODE_TOO_MANY_ZONES = 0x03, + EMBER_ZCL_IAS_ENROLL_RESPONSE_CODE_SUCCESS = 0x0, + EMBER_ZCL_IAS_ENROLL_RESPONSE_CODE_NOT_SUPPORTED = 0x1, + EMBER_ZCL_IAS_ENROLL_RESPONSE_CODE_NO_ENROLL_PERMIT = 0x2, + EMBER_ZCL_IAS_ENROLL_RESPONSE_CODE_TOO_MANY_ZONES = 0x3, } EmberAfIasEnrollResponseCode; +// Enum for IasZoneState typedef enum { - EMBER_ZCL_IAS_ZONE_STATE_NOT_ENROLLED = 0x00, - EMBER_ZCL_IAS_ZONE_STATE_ENROLLED = 0x01, + EMBER_ZCL_IAS_ZONE_STATE_NOT_ENROLLED = 0x0, + EMBER_ZCL_IAS_ZONE_STATE_ENROLLED = 0x1, } EmberAfIasZoneState; -typedef enum -{ - EMBER_ZCL_IAS_ZONE_TYPE_STANDARD_CIE = 0x0000, - EMBER_ZCL_IAS_ZONE_TYPE_MOTION_SENSOR = 0x000D, - EMBER_ZCL_IAS_ZONE_TYPE_CONTACT_SWITCH = 0x0015, - EMBER_ZCL_IAS_ZONE_TYPE_FIRE_SENSOR = 0x0028, - EMBER_ZCL_IAS_ZONE_TYPE_WATER_SENSOR = 0x002A, - EMBER_ZCL_IAS_ZONE_TYPE_GAS_SENSOR = 0x002B, - EMBER_ZCL_IAS_ZONE_TYPE_PERSONAL_EMERGENCY_DEVICE = 0x002C, - EMBER_ZCL_IAS_ZONE_TYPE_VIBRATION_MOVEMENT_SENSOR = 0x002D, - EMBER_ZCL_IAS_ZONE_TYPE_REMOTE_CONTROL = 0x010F, - EMBER_ZCL_IAS_ZONE_TYPE_KEY_FOB = 0x0115, - EMBER_ZCL_IAS_ZONE_TYPE_KEYPAD = 0x021D, - EMBER_ZCL_IAS_ZONE_TYPE_STANDARD_WARNING_DEVICE = 0x0225, - EMBER_ZCL_IAS_ZONE_TYPE_GLASS_BREAK_SENSOR = 0x0226, - EMBER_ZCL_IAS_ZONE_TYPE_CARBON_MONOXIDE_SENSOR = 0x0227, +// Enum for IasZoneType +typedef enum +{ + EMBER_ZCL_IAS_ZONE_TYPE_STANDARD_CIE = 0x0, + EMBER_ZCL_IAS_ZONE_TYPE_MOTION_SENSOR = 0xd, + EMBER_ZCL_IAS_ZONE_TYPE_CONTACT_SWITCH = 0x15, + EMBER_ZCL_IAS_ZONE_TYPE_FIRE_SENSOR = 0x28, + EMBER_ZCL_IAS_ZONE_TYPE_WATER_SENSOR = 0x2a, + EMBER_ZCL_IAS_ZONE_TYPE_GAS_SENSOR = 0x2b, + EMBER_ZCL_IAS_ZONE_TYPE_PERSONAL_EMERGENCY_DEVICE = 0x2c, + EMBER_ZCL_IAS_ZONE_TYPE_VIBRATION_MOVEMENT_SENSOR = 0x2d, + EMBER_ZCL_IAS_ZONE_TYPE_REMOTE_CONTROL = 0x10f, + EMBER_ZCL_IAS_ZONE_TYPE_KEY_FOB = 0x115, + EMBER_ZCL_IAS_ZONE_TYPE_KEYPAD = 0x21d, + EMBER_ZCL_IAS_ZONE_TYPE_STANDARD_WARNING_DEVICE = 0x225, + EMBER_ZCL_IAS_ZONE_TYPE_GLASS_BREAK_SENSOR = 0x226, + EMBER_ZCL_IAS_ZONE_TYPE_CARBON_MONOXIDE_SENSOR = 0x227, EMBER_ZCL_IAS_ZONE_TYPE_SECURITY_REPEATER = 0x0229, EMBER_ZCL_IAS_ZONE_TYPE_INVALID_ZONE_TYPE = 0xFFFF, } EmberAfIasZoneType; +// Enum for IdentifyEffectIdentifier typedef enum { EMBER_ZCL_IDENTIFY_EFFECT_IDENTIFIER_BLINK = 0x00, @@ -1434,11 +1535,13 @@ typedef enum EMBER_ZCL_IDENTIFY_EFFECT_IDENTIFIER_STOP_EFFECT = 0xFF, } EmberAfIdentifyEffectIdentifier; +// Enum for IdentifyEffectVariant typedef enum { EMBER_ZCL_IDENTIFY_EFFECT_VARIANT_DEFAULT = 0x00, } EmberAfIdentifyEffectVariant; +// Enum for KeyIndex typedef enum { EMBER_ZCL_KEY_INDEX_DEVELOPMENT = 0x00, @@ -1446,37 +1549,42 @@ typedef enum EMBER_ZCL_KEY_INDEX_CERTIFICATION = 0x0F, } EmberAfKeyIndex; +// Enum for KeypadLockout typedef enum { - EMBER_ZCL_KEYPAD_LOCKOUT_NO_LOCKOUT = 0x00, - EMBER_ZCL_KEYPAD_LOCKOUT_LEVEL_ONE_LOCKOUT = 0x01, - EMBER_ZCL_KEYPAD_LOCKOUT_LEVEL_TWO_LOCKOUT = 0x02, - EMBER_ZCL_KEYPAD_LOCKOUT_LEVEL_THREE_LOCKOUT = 0x03, - EMBER_ZCL_KEYPAD_LOCKOUT_LEVEL_FOUR_LOCKOUT = 0x04, - EMBER_ZCL_KEYPAD_LOCKOUT_LEVELFIVE_LOCKOUT = 0x05, + EMBER_ZCL_KEYPAD_LOCKOUT_NO_LOCKOUT = 0x0, + EMBER_ZCL_KEYPAD_LOCKOUT_LEVEL_ONE_LOCKOUT = 0x1, + EMBER_ZCL_KEYPAD_LOCKOUT_LEVEL_TWO_LOCKOUT = 0x2, + EMBER_ZCL_KEYPAD_LOCKOUT_LEVEL_THREE_LOCKOUT = 0x3, + EMBER_ZCL_KEYPAD_LOCKOUT_LEVEL_FOUR_LOCKOUT = 0x4, + EMBER_ZCL_KEYPAD_LOCKOUT_LEVELFIVE_LOCKOUT = 0x5, } EmberAfKeypadLockout; +// Enum for LevelControlOptions typedef enum { - EMBER_ZCL_LEVEL_CONTROL_OPTIONS_EXECUTE_IF_OFF = 0x01, + EMBER_ZCL_LEVEL_CONTROL_OPTIONS_EXECUTE_IF_OFF = 0x1, EMBER_ZCL_LEVEL_CONTROL_OPTIONS_COUPLE_COLOR_TEMP_TO_LEVEL = 0x02, } EmberAfLevelControlOptions; +// Enum for LevelStatus typedef enum { - EMBER_ZCL_LEVEL_STATUS_ON_TARGET = 0x00, - EMBER_ZCL_LEVEL_STATUS_BELOW_TARGET = 0x01, - EMBER_ZCL_LEVEL_STATUS_ABOVE_TARGET = 0x02, + EMBER_ZCL_LEVEL_STATUS_ON_TARGET = 0x0, + EMBER_ZCL_LEVEL_STATUS_BELOW_TARGET = 0x1, + EMBER_ZCL_LEVEL_STATUS_ABOVE_TARGET = 0x2, } EmberAfLevelStatus; +// Enum for LocationMethod typedef enum { - EMBER_ZCL_LOCATION_METHOD_LATERATION = 0x00, - EMBER_ZCL_LOCATION_METHOD_SIGNPOSTING = 0x01, - EMBER_ZCL_LOCATION_METHOD_RF_FINGERPRINTING = 0x02, - EMBER_ZCL_LOCATION_METHOD_OUT_OF_BAND = 0x03, + EMBER_ZCL_LOCATION_METHOD_LATERATION = 0x0, + EMBER_ZCL_LOCATION_METHOD_SIGNPOSTING = 0x1, + EMBER_ZCL_LOCATION_METHOD_RF_FINGERPRINTING = 0x2, + EMBER_ZCL_LOCATION_METHOD_OUT_OF_BAND = 0x3, } EmberAfLocationMethod; +// Enum for ManufacturerSpecificAlarmGroups typedef enum { EMBER_ZCL_MANUFACTURER_SPECIFIC_ALARM_GROUPS_MANUFACTURER_SPECIFIC_A = 0xB0, @@ -1490,24 +1598,28 @@ typedef enum EMBER_ZCL_MANUFACTURER_SPECIFIC_ALARM_GROUPS_MANUFACTURER_SPECIFIC_I = 0xB8, } EmberAfManufacturerSpecificAlarmGroups; +// Enum for MeasurementLightSensorType typedef enum { - EMBER_ZCL_MEASUREMENT_LIGHT_SENSOR_TYPE_PHOTODIODE = 0x00, - EMBER_ZCL_MEASUREMENT_LIGHT_SENSOR_TYPE_CMOS = 0x01, + EMBER_ZCL_MEASUREMENT_LIGHT_SENSOR_TYPE_PHOTODIODE = 0x0, + EMBER_ZCL_MEASUREMENT_LIGHT_SENSOR_TYPE_CMOS = 0x1, } EmberAfMeasurementLightSensorType; +// Enum for MessagingControlConfirmation typedef enum { EMBER_ZCL_MESSAGING_CONTROL_CONFIRMATION_NOT_REQUIRED = 0x00, EMBER_ZCL_MESSAGING_CONTROL_CONFIRMATION_REQUIRED = 0x80, } EmberAfMessagingControlConfirmation; +// Enum for MessagingControlEnhancedConfirmation typedef enum { EMBER_ZCL_MESSAGING_CONTROL_ENHANCED_CONFIRMATION_NOT_REQUIRED = 0x00, EMBER_ZCL_MESSAGING_CONTROL_ENHANCED_CONFIRMATION_REQUIRED = 0x20, } EmberAfMessagingControlEnhancedConfirmation; +// Enum for MessagingControlImportance typedef enum { EMBER_ZCL_MESSAGING_CONTROL_IMPORTANCE_LOW = 0x00, @@ -1516,6 +1628,7 @@ typedef enum EMBER_ZCL_MESSAGING_CONTROL_IMPORTANCE_CRITICAL = 0x0C, } EmberAfMessagingControlImportance; +// Enum for MessagingControlTransmission typedef enum { EMBER_ZCL_MESSAGING_CONTROL_TRANSMISSION_NORMAL = 0x00, @@ -1524,6 +1637,7 @@ typedef enum EMBER_ZCL_MESSAGING_CONTROL_TRANSMISSION_RESERVED = 0x03, } EmberAfMessagingControlTransmission; +// Enum for MeterDeviceType typedef enum { EMBER_ZCL_METER_DEVICE_TYPE_ELECTRIC_METER = 0x00, @@ -1542,6 +1656,7 @@ typedef enum EMBER_ZCL_METER_DEVICE_TYPE_UNDEFINED_MIRROR_METER = 0xFE, } EmberAfMeterDeviceType; +// Enum for MeterTypeId typedef enum { EMBER_ZCL_METER_TYPE_ID_UTILITY_PRIMARY_METER = 0x0000, @@ -1553,6 +1668,7 @@ typedef enum EMBER_ZCL_METER_TYPE_ID_GENERIC_METER = 0x0110, } EmberAfMeterTypeId; +// Enum for MeteringAlarmCode typedef enum { EMBER_ZCL_METERING_ALARM_CODE_CHECK_METER = 0x00, @@ -1569,8 +1685,8 @@ typedef enum EMBER_ZCL_METERING_ALARM_CODE_NO_STRONG_MAGNETIC_FIELD = 0x0B, EMBER_ZCL_METERING_ALARM_CODE_BATTERY_FAILURE = 0x0C, EMBER_ZCL_METERING_ALARM_CODE_PROGRAM_MEMORY_ERROR = 0x0D, - EMBER_ZCL_METERING_ALARM_CODE_R_A_M_ERROR = 0x0E, - EMBER_ZCL_METERING_ALARM_CODE_N_V_MEMORY_ERROR = 0x0F, + EMBER_ZCL_METERING_ALARM_CODE_RAM_ERROR = 0x0E, + EMBER_ZCL_METERING_ALARM_CODE_NV_MEMORY_ERROR = 0x0F, EMBER_ZCL_METERING_ALARM_CODE_LOW_VOLTAGE_L1 = 0x10, EMBER_ZCL_METERING_ALARM_CODE_HIGH_VOLTAGE_L1 = 0x11, EMBER_ZCL_METERING_ALARM_CODE_LOW_VOLTAGE_L2 = 0x12, @@ -1593,8 +1709,8 @@ typedef enum EMBER_ZCL_METERING_ALARM_CODE_UNDER_VOLTAGE = 0x23, EMBER_ZCL_METERING_ALARM_CODE_OVER_VOLTAGE = 0x24, EMBER_ZCL_METERING_ALARM_CODE_NORMAL_VOLTAGE = 0x25, - EMBER_ZCL_METERING_ALARM_CODE_P_F_BELOW_THRESHOLD = 0x26, - EMBER_ZCL_METERING_ALARM_CODE_P_F_ABOVE_THRESHOLD = 0x27, + EMBER_ZCL_METERING_ALARM_CODE_PF_BELOW_THRESHOLD = 0x26, + EMBER_ZCL_METERING_ALARM_CODE_PF_ABOVE_THRESHOLD = 0x27, EMBER_ZCL_METERING_ALARM_CODE_TERMINAL_COVER_REMOVED = 0x28, EMBER_ZCL_METERING_ALARM_CODE_TERMINAL_COVER_CLOSED = 0x29, EMBER_ZCL_METERING_ALARM_CODE_BURST_DETECT = 0x30, @@ -1662,6 +1778,7 @@ typedef enum EMBER_ZCL_METERING_ALARM_CODE_MANUFACTURER_SPECIFIC_I = 0xB8, } EmberAfMeteringAlarmCode; +// Enum for MeteringBlockEnumerations typedef enum { EMBER_ZCL_METERING_BLOCK_ENUMERATIONS_NO_BLOCKS_IN_USE = 0x00, @@ -1683,6 +1800,7 @@ typedef enum EMBER_ZCL_METERING_BLOCK_ENUMERATIONS_BLOCK16 = 0x10, } EmberAfMeteringBlockEnumerations; +// Enum for MeteringConsumptionStatus typedef enum { EMBER_ZCL_METERING_CONSUMPTION_STATUS_LOW_ENERGY_USAGE = 0x00, @@ -1690,6 +1808,7 @@ typedef enum EMBER_ZCL_METERING_CONSUMPTION_STATUS_HIGH_ENERGY_USAGE = 0x02, } EmberAfMeteringConsumptionStatus; +// Enum for MeteringDeviceType typedef enum { EMBER_ZCL_METERING_DEVICE_TYPE_ELECTRIC_METERING = 0x00, @@ -1727,6 +1846,7 @@ typedef enum EMBER_ZCL_METERING_DEVICE_TYPE_UNDEFINED_MIRROR_METER = 0xFE, } EmberAfMeteringDeviceType; +// Enum for MeteringSupplyStatus typedef enum { EMBER_ZCL_METERING_SUPPLY_STATUS_SUPPLY_OFF = 0x00, @@ -1734,6 +1854,7 @@ typedef enum EMBER_ZCL_METERING_SUPPLY_STATUS_SUPPLY_ON = 0x02, } EmberAfMeteringSupplyStatus; +// Enum for MeteringTemperatureUnitOfMeasure typedef enum { EMBER_ZCL_METERING_TEMPERATURE_UNIT_OF_MEASURE_KELVIN = 0x00, @@ -1744,12 +1865,14 @@ typedef enum EMBER_ZCL_METERING_TEMPERATURE_UNIT_OF_MEASURE_FAHRENHEIT_BCD = 0x82, } EmberAfMeteringTemperatureUnitOfMeasure; +// Enum for MoveMode typedef enum { - EMBER_ZCL_MOVE_MODE_UP = 0x00, - EMBER_ZCL_MOVE_MODE_DOWN = 0x01, + EMBER_ZCL_MOVE_MODE_UP = 0x0, + EMBER_ZCL_MOVE_MODE_DOWN = 0x1, } EmberAfMoveMode; +// Enum for NotificationScheme typedef enum { EMBER_ZCL_NOTIFICATION_SCHEME_NO_NOTIFICATION_SCHEME_DEFINED = 0x00, @@ -1757,14 +1880,16 @@ typedef enum EMBER_ZCL_NOTIFICATION_SCHEME_PREDEFINED_NOTIFICATION_SCHEME_B = 0x02, } EmberAfNotificationScheme; +// Enum for OccupancySensorType typedef enum { - EMBER_ZCL_OCCUPANCY_SENSOR_TYPE_PIR = 0x00, - EMBER_ZCL_OCCUPANCY_SENSOR_TYPE_ULTRASONIC = 0x01, - EMBER_ZCL_OCCUPANCY_SENSOR_TYPE_PIR_AND_ULTRASONIC = 0x02, - EMBER_ZCL_OCCUPANCY_SENSOR_TYPE_PHYSICAL_CONTACT = 0x03, + EMBER_ZCL_OCCUPANCY_SENSOR_TYPE_PIR = 0x0, + EMBER_ZCL_OCCUPANCY_SENSOR_TYPE_ULTRASONIC = 0x1, + EMBER_ZCL_OCCUPANCY_SENSOR_TYPE_PIR_AND_ULTRASONIC = 0x2, + EMBER_ZCL_OCCUPANCY_SENSOR_TYPE_PHYSICAL_CONTACT = 0x3, } EmberAfOccupancySensorType; +// Enum for OnOffDelayedAllOffEffectVariant typedef enum { EMBER_ZCL_ON_OFF_DELAYED_ALL_OFF_EFFECT_VARIANT_FADE_TO_OFF_IN_0P8_SECONDS = 0x00, @@ -1772,23 +1897,27 @@ typedef enum EMBER_ZCL_ON_OFF_DELAYED_ALL_OFF_EFFECT_VARIANT_50_PERCENT_DIM_DOWN_IN_0P8_SECONDS_THEN_FADE_TO_OFF_IN_12_SECONDS = 0x02, } EmberAfOnOffDelayedAllOffEffectVariant; +// Enum for OnOffDyingLightEffectVariant typedef enum { EMBER_ZCL_ON_OFF_DYING_LIGHT_EFFECT_VARIANT_20_PERCENTER_DIM_UP_IN_0P5_SECONDS_THEN_FADE_TO_OFF_IN_1_SECOND = 0x00, } EmberAfOnOffDyingLightEffectVariant; +// Enum for OnOffEffectIdentifier typedef enum { EMBER_ZCL_ON_OFF_EFFECT_IDENTIFIER_DELAYED_ALL_OFF = 0x00, EMBER_ZCL_ON_OFF_EFFECT_IDENTIFIER_DYING_LIGHT = 0x01, } EmberAfOnOffEffectIdentifier; +// Enum for OperatingMode typedef enum { - EMBER_ZCL_OPERATING_MODE_NORMAL = 0x00, - EMBER_ZCL_OPERATING_MODE_CONFIGURE = 0x01, + EMBER_ZCL_OPERATING_MODE_NORMAL = 0x0, + EMBER_ZCL_OPERATING_MODE_CONFIGURE = 0x1, } EmberAfOperatingMode; +// Enum for OriginatingDevice typedef enum { EMBER_ZCL_ORIGINATING_DEVICE_ENERGY_SERVICE_INTERFACE = 0x00, @@ -1796,6 +1925,7 @@ typedef enum EMBER_ZCL_ORIGINATING_DEVICE_IN_HOME_DISPLAY_DEVICE = 0x02, } EmberAfOriginatingDevice; +// Enum for PasswordType typedef enum { EMBER_ZCL_PASSWORD_TYPE_PASSWORD1_SERVICE_MENU_ACCESS = 0x01, @@ -1804,6 +1934,7 @@ typedef enum EMBER_ZCL_PASSWORD_TYPE_PASSWORD4 = 0x04, } EmberAfPasswordType; +// Enum for PaymentDiscountDuration typedef enum { EMBER_ZCL_PAYMENT_DISCOUNT_DURATION_CURRENT_BILLING_PERIOD = 0x00, @@ -1813,14 +1944,16 @@ typedef enum EMBER_ZCL_PAYMENT_DISCOUNT_DURATION_ONE_YEAR = 0x04, } EmberAfPaymentDiscountDuration; +// Enum for PhysicalEnvironment typedef enum { - EMBER_ZCL_PHYSICAL_ENVIRONMENT_UNSPECIFIED = 0x00, - EMBER_ZCL_PHYSICAL_ENVIRONMENT_FIRST_PROFILE_SPECIFIED_VALUE = 0x01, - EMBER_ZCL_PHYSICAL_ENVIRONMENT_LAST_PROFILE_SPECIFIED_VALUE = 0x7F, - EMBER_ZCL_PHYSICAL_ENVIRONMENT_UNKNOWN = 0xFF, + EMBER_ZCL_PHYSICAL_ENVIRONMENT_UNSPECIFIED = 0x0, + EMBER_ZCL_PHYSICAL_ENVIRONMENT_FIRST_PROFILE_SPECIFIED_VALUE = 0x1, + EMBER_ZCL_PHYSICAL_ENVIRONMENT_LAST_PROFILE_SPECIFIED_VALUE = 0x7f, + EMBER_ZCL_PHYSICAL_ENVIRONMENT_UNKNOWN = 0xff, } EmberAfPhysicalEnvironment; +// Enum for PowerProfileState typedef enum { EMBER_ZCL_POWER_PROFILE_STATE_POWER_PROFILE_WAITING_TO_START = 0x01, @@ -1834,18 +1967,20 @@ typedef enum EMBER_ZCL_POWER_PROFILE_STATE_POWER_PROFILE_SCHEDULED = 0x09, } EmberAfPowerProfileState; +// Enum for PowerSource typedef enum { - EMBER_ZCL_POWER_SOURCE_UNKNOWN = 0x00, - EMBER_ZCL_POWER_SOURCE_SINGLE_PHASE_MAINS = 0x01, - EMBER_ZCL_POWER_SOURCE_THREE_PHASE_MAINS = 0x02, - EMBER_ZCL_POWER_SOURCE_BATTERY = 0x03, - EMBER_ZCL_POWER_SOURCE_DC_SOURCE = 0x04, - EMBER_ZCL_POWER_SOURCE_EMERGENCY_MAINS_CONSTANT_POWER = 0x05, - EMBER_ZCL_POWER_SOURCE_EMERGENCY_MAINS_TRANSFER_SWITCH = 0x06, + EMBER_ZCL_POWER_SOURCE_UNKNOWN = 0x0, + EMBER_ZCL_POWER_SOURCE_SINGLE_PHASE_MAINS = 0x1, + EMBER_ZCL_POWER_SOURCE_THREE_PHASE_MAINS = 0x2, + EMBER_ZCL_POWER_SOURCE_BATTERY = 0x3, + EMBER_ZCL_POWER_SOURCE_DC_SOURCE = 0x4, + EMBER_ZCL_POWER_SOURCE_EMERGENCY_MAINS_CONSTANT_POWER = 0x5, + EMBER_ZCL_POWER_SOURCE_EMERGENCY_MAINS_TRANSFER_SWITCH = 0x6, EMBER_ZCL_POWER_SOURCE_BATTERY_BACKUP = 0x80, } EmberAfPowerSource; +// Enum for PrePayGenericAlarmGroup typedef enum { EMBER_ZCL_PRE_PAY_GENERIC_ALARM_GROUP_LOW_CREDIT = 0x00, @@ -1857,6 +1992,7 @@ typedef enum EMBER_ZCL_PRE_PAY_GENERIC_ALARM_GROUP_EVENT_LOG_CLEARED = 0x06, } EmberAfPrePayGenericAlarmGroup; +// Enum for PrepayEventAlarmGroup typedef enum { EMBER_ZCL_PREPAY_EVENT_ALARM_GROUP_PHYSICAL_ATTACK_ON_THE_PREPAY_METER = 0x20, @@ -1881,12 +2017,14 @@ typedef enum EMBER_ZCL_PREPAY_EVENT_ALARM_GROUP_MODE_DEFAULT = 0x43, } EmberAfPrepayEventAlarmGroup; +// Enum for PrepaySnapshotPayloadType typedef enum { EMBER_ZCL_PREPAY_SNAPSHOT_PAYLOAD_TYPE_DEBT_CREDIT_STATUS = 0x00, EMBER_ZCL_PREPAY_SNAPSHOT_PAYLOAD_TYPE_NOT_USED = 0xFF, } EmberAfPrepaySnapshotPayloadType; +// Enum for PrepaySwitchAlarmGroup typedef enum { EMBER_ZCL_PREPAY_SWITCH_ALARM_GROUP_SUPPLY_ON = 0x10, @@ -1898,32 +2036,36 @@ typedef enum EMBER_ZCL_PREPAY_SWITCH_ALARM_GROUP_REMOTE_DISCONNECTED = 0x16, } EmberAfPrepaySwitchAlarmGroup; +// Enum for PriceControlAcknowledgement typedef enum { EMBER_ZCL_PRICE_CONTROL_ACKNOWLEDGEMENT_NOT_REQUIRED = 0x00, EMBER_ZCL_PRICE_CONTROL_ACKNOWLEDGEMENT_REQUIRED = 0x01, } EmberAfPriceControlAcknowledgement; -typedef enum -{ - EMBER_ZCL_PRICE_TIER_NO_TIER_RELATED = 0x00, - EMBER_ZCL_PRICE_TIER_TIER1_PRICE_LABEL = 0x01, - EMBER_ZCL_PRICE_TIER_TIER2_PRICE_LABEL = 0x02, - EMBER_ZCL_PRICE_TIER_TIER3_PRICE_LABEL = 0x03, - EMBER_ZCL_PRICE_TIER_TIER4_PRICE_LABEL = 0x04, - EMBER_ZCL_PRICE_TIER_TIER5_PRICE_LABEL = 0x05, - EMBER_ZCL_PRICE_TIER_TIER6_PRICE_LABEL = 0x06, - EMBER_ZCL_PRICE_TIER_TIER7_PRICE_LABEL = 0x07, - EMBER_ZCL_PRICE_TIER_TIER8_PRICE_LABEL = 0x08, - EMBER_ZCL_PRICE_TIER_TIER9_PRICE_LABEL = 0x09, - EMBER_ZCL_PRICE_TIER_TIER10_PRICE_LABEL = 0x0A, - EMBER_ZCL_PRICE_TIER_TIER11_PRICE_LABEL = 0x0B, - EMBER_ZCL_PRICE_TIER_TIER12_PRICE_LABEL = 0x0C, - EMBER_ZCL_PRICE_TIER_TIER13_PRICE_LABEL = 0x0D, - EMBER_ZCL_PRICE_TIER_TIER14_PRICE_LABEL = 0x0E, - EMBER_ZCL_PRICE_TIER_TIER15_PRICE_LABEL = 0x0F, +// Enum for PriceTier +typedef enum +{ + EMBER_ZCL_PRICE_TIER_NO_TIER_RELATED = 0x00, + EMBER_ZCL_PRICE_TIER_TIER1_PRICE_LABEL = 0x01, + EMBER_ZCL_PRICE_TIER_TIER2_PRICE_LABEL = 0x02, + EMBER_ZCL_PRICE_TIER_TIER3_PRICE_LABEL = 0x03, + EMBER_ZCL_PRICE_TIER_TIER4_PRICE_LABEL = 0x04, + EMBER_ZCL_PRICE_TIER_TIER5_PRICE_LABEL = 0x05, + EMBER_ZCL_PRICE_TIER_TIER6_PRICE_LABEL = 0x06, + EMBER_ZCL_PRICE_TIER_TIER7_PRICE_LABEL = 0x07, + EMBER_ZCL_PRICE_TIER_TIER8_PRICE_LABEL = 0x08, + EMBER_ZCL_PRICE_TIER_TIER9_PRICE_LABEL = 0x09, + EMBER_ZCL_PRICE_TIER_TIER10_PRICE_LABEL = 0x0A, + EMBER_ZCL_PRICE_TIER_TIER11_PRICE_LABEL = 0x0B, + EMBER_ZCL_PRICE_TIER_TIER12_PRICE_LABEL = 0x0C, + EMBER_ZCL_PRICE_TIER_TIER13_PRICE_LABEL = 0x0D, + EMBER_ZCL_PRICE_TIER_TIER14_PRICE_LABEL = 0x0E, + EMBER_ZCL_PRICE_TIER_REFER_TO_EXTENDED_PRICE_TIER_FIELD = 0x0F, + EMBER_ZCL_PRICE_TIER_TIER15_PRICE_LABEL = 0x0F, } EmberAfPriceTier; +// Enum for ProductCode typedef enum { EMBER_ZCL_PRODUCT_CODE_MANUFACTURER_DEFINED = 0x00, @@ -1933,6 +2075,7 @@ typedef enum EMBER_ZCL_PRODUCT_CODE_STOCK_KEEPING_UNIT = 0x04, } EmberAfProductCode; +// Enum for ProductTypeId typedef enum { EMBER_ZCL_PRODUCT_TYPE_ID_WHITE_GOODS = 0x0000, @@ -1947,6 +2090,7 @@ typedef enum EMBER_ZCL_PRODUCT_TYPE_ID_REFRIGERATOR_FREEZER = 0x6601, } EmberAfProductTypeId; +// Enum for ProposedSupplyStatus typedef enum { EMBER_ZCL_PROPOSED_SUPPLY_STATUS_RESERVED = 0x00, @@ -1954,6 +2098,7 @@ typedef enum EMBER_ZCL_PROPOSED_SUPPLY_STATUS_SUPPLY_ON = 0x02, } EmberAfProposedSupplyStatus; +// Enum for PublishCppEventCppAuth typedef enum { EMBER_ZCL_PUBLISH_CPP_EVENT_CPP_AUTH_PENDING = 0x00, @@ -1962,24 +2107,27 @@ typedef enum EMBER_ZCL_PUBLISH_CPP_EVENT_CPP_AUTH_FORCED = 0x03, } EmberAfPublishCppEventCppAuth; +// Enum for PumpControlMode typedef enum { - EMBER_ZCL_PUMP_CONTROL_MODE_CONSTANT_SPEED = 0x00, - EMBER_ZCL_PUMP_CONTROL_MODE_CONSTANT_PRESSURE = 0x01, - EMBER_ZCL_PUMP_CONTROL_MODE_PROPORTIONAL_PRESSURE = 0x02, - EMBER_ZCL_PUMP_CONTROL_MODE_CONSTANT_FLOW = 0x03, - EMBER_ZCL_PUMP_CONTROL_MODE_CONSTANT_TEMPERATURE = 0x05, - EMBER_ZCL_PUMP_CONTROL_MODE_AUTOMATIC = 0x07, + EMBER_ZCL_PUMP_CONTROL_MODE_CONSTANT_SPEED = 0x0, + EMBER_ZCL_PUMP_CONTROL_MODE_CONSTANT_PRESSURE = 0x1, + EMBER_ZCL_PUMP_CONTROL_MODE_PROPORTIONAL_PRESSURE = 0x2, + EMBER_ZCL_PUMP_CONTROL_MODE_CONSTANT_FLOW = 0x3, + EMBER_ZCL_PUMP_CONTROL_MODE_CONSTANT_TEMPERATURE = 0x5, + EMBER_ZCL_PUMP_CONTROL_MODE_AUTOMATIC = 0x7, } EmberAfPumpControlMode; +// Enum for PumpOperationMode typedef enum { - EMBER_ZCL_PUMP_OPERATION_MODE_NORMAL = 0x00, - EMBER_ZCL_PUMP_OPERATION_MODE_MINIMUM = 0x01, - EMBER_ZCL_PUMP_OPERATION_MODE_MAXIMUM = 0x02, - EMBER_ZCL_PUMP_OPERATION_MODE_LOCAL = 0x03, + EMBER_ZCL_PUMP_OPERATION_MODE_NORMAL = 0x0, + EMBER_ZCL_PUMP_OPERATION_MODE_MINIMUM = 0x1, + EMBER_ZCL_PUMP_OPERATION_MODE_MAXIMUM = 0x2, + EMBER_ZCL_PUMP_OPERATION_MODE_LOCAL = 0x3, } EmberAfPumpOperationMode; +// Enum for PushHistoricalMeteringData typedef enum { EMBER_ZCL_PUSH_HISTORICAL_METERING_DATA_DAY = 0x0040, @@ -1988,6 +2136,7 @@ typedef enum EMBER_ZCL_PUSH_HISTORICAL_METERING_DATA_YEAR = 0x01C0, } EmberAfPushHistoricalMeteringData; +// Enum for PushHistoricalPaymentData typedef enum { EMBER_ZCL_PUSH_HISTORICAL_PAYMENT_DATA_DAY = 0x0200, @@ -1996,6 +2145,7 @@ typedef enum EMBER_ZCL_PUSH_HISTORICAL_PAYMENT_DATA_YEAR = 0x0E00, } EmberAfPushHistoricalPaymentData; +// Enum for RegisterTier typedef enum { EMBER_ZCL_REGISTER_TIER_NO_TIER_RELATED = 0x00, @@ -2013,21 +2163,25 @@ typedef enum EMBER_ZCL_REGISTER_TIER_CURRENT_TIER12_SUMMATION_DELIVERED_ATTRIBUTE = 0x0C, EMBER_ZCL_REGISTER_TIER_CURRENT_TIER13_SUMMATION_DELIVERED_ATTRIBUTE = 0x0D, EMBER_ZCL_REGISTER_TIER_CURRENT_TIER14_SUMMATION_DELIVERED_ATTRIBUTE = 0x0E, + EMBER_ZCL_REGISTER_TIER_REFER_TO_EXTENDED_REGISTER_TIER_FIELD = 0x0F, EMBER_ZCL_REGISTER_TIER_CURRENT_TIER15_SUMMATION_DELIVERED_ATTRIBUTE = 0x0F, } EmberAfRegisterTier; +// Enum for RelativeHumidityDisplay typedef enum { - EMBER_ZCL_RELATIVE_HUMIDITY_DISPLAY_NOT_DISPLAYED = 0x00, - EMBER_ZCL_RELATIVE_HUMIDITY_DISPLAY_DISPLAYED = 0x01, + EMBER_ZCL_RELATIVE_HUMIDITY_DISPLAY_NOT_DISPLAYED = 0x0, + EMBER_ZCL_RELATIVE_HUMIDITY_DISPLAY_DISPLAYED = 0x1, } EmberAfRelativeHumidityDisplay; +// Enum for RelativeHumidityMode typedef enum { - EMBER_ZCL_RELATIVE_HUMIDITY_MODE_MEASURE_LOCALLY = 0x00, - EMBER_ZCL_RELATIVE_HUMIDITY_MODE_UPDATED_OVER_THE_NETWORK = 0x01, + EMBER_ZCL_RELATIVE_HUMIDITY_MODE_MEASURE_LOCALLY = 0x0, + EMBER_ZCL_RELATIVE_HUMIDITY_MODE_UPDATED_OVER_THE_NETWORK = 0x1, } EmberAfRelativeHumidityMode; +// Enum for RemoteEnableFlags typedef enum { EMBER_ZCL_REMOTE_ENABLE_FLAGS_DISABLED = 0x00, @@ -2036,6 +2190,7 @@ typedef enum EMBER_ZCL_REMOTE_ENABLE_FLAGS_ENABLED_REMOTE_AND_ENERGY_CONTROL = 0x01, } EmberAfRemoteEnableFlags; +// Enum for RepaymentDebtType typedef enum { EMBER_ZCL_REPAYMENT_DEBT_TYPE_DEBT1 = 0x00, @@ -2044,12 +2199,14 @@ typedef enum EMBER_ZCL_REPAYMENT_DEBT_TYPE_ALL_DEBTS = 0xFF, } EmberAfRepaymentDebtType; +// Enum for ReportingDirection typedef enum { EMBER_ZCL_REPORTING_DIRECTION_REPORTED = 0x00, EMBER_ZCL_REPORTING_DIRECTION_RECEIVED = 0x01, } EmberAfReportingDirection; +// Enum for ResultType typedef enum { EMBER_ZCL_RESULT_TYPE_ACCEPTED = 0x00, @@ -2064,49 +2221,57 @@ typedef enum EMBER_ZCL_RESULT_TYPE_ACCEPTED_SUPPLY_ARMED = 0x12, } EmberAfResultType; +// Enum for SampleType typedef enum { EMBER_ZCL_SAMPLE_TYPE_CONSUMPTION_DELIVERED = 0x00, } EmberAfSampleType; +// Enum for SaturationMoveMode typedef enum { - EMBER_ZCL_SATURATION_MOVE_MODE_STOP = 0x00, - EMBER_ZCL_SATURATION_MOVE_MODE_UP = 0x01, - EMBER_ZCL_SATURATION_MOVE_MODE_DOWN = 0x03, + EMBER_ZCL_SATURATION_MOVE_MODE_STOP = 0x0, + EMBER_ZCL_SATURATION_MOVE_MODE_UP = 0x1, + EMBER_ZCL_SATURATION_MOVE_MODE_DOWN = 0x3, } EmberAfSaturationMoveMode; +// Enum for SaturationStepMode typedef enum { - EMBER_ZCL_SATURATION_STEP_MODE_UP = 0x01, - EMBER_ZCL_SATURATION_STEP_MODE_DOWN = 0x03, + EMBER_ZCL_SATURATION_STEP_MODE_UP = 0x1, + EMBER_ZCL_SATURATION_STEP_MODE_DOWN = 0x3, } EmberAfSaturationStepMode; +// Enum for SensingLightSensorType typedef enum { - EMBER_ZCL_SENSING_LIGHT_SENSOR_TYPE_PHOTODIODE = 0x00, - EMBER_ZCL_SENSING_LIGHT_SENSOR_TYPE_CMOS = 0x01, + EMBER_ZCL_SENSING_LIGHT_SENSOR_TYPE_PHOTODIODE = 0x0, + EMBER_ZCL_SENSING_LIGHT_SENSOR_TYPE_CMOS = 0x1, } EmberAfSensingLightSensorType; +// Enum for SetpointAdjustMode typedef enum { - EMBER_ZCL_SETPOINT_ADJUST_MODE_HEAT_SETPOINT = 0x00, - EMBER_ZCL_SETPOINT_ADJUST_MODE_COOL_SETPOINT = 0x01, - EMBER_ZCL_SETPOINT_ADJUST_MODE_HEAT_AND_COOL_SETPOINTS = 0x02, + EMBER_ZCL_SETPOINT_ADJUST_MODE_HEAT_SETPOINT = 0x0, + EMBER_ZCL_SETPOINT_ADJUST_MODE_COOL_SETPOINT = 0x1, + EMBER_ZCL_SETPOINT_ADJUST_MODE_HEAT_AND_COOL_SETPOINTS = 0x2, } EmberAfSetpointAdjustMode; +// Enum for SignatureType typedef enum { EMBER_ZCL_SIGNATURE_TYPE_RESERVED = 0x00, EMBER_ZCL_SIGNATURE_TYPE_ECDSA = 0x01, } EmberAfSignatureType; +// Enum for SnapshotConfirmation typedef enum { EMBER_ZCL_SNAPSHOT_CONFIRMATION_ACCEPTED = 0x00, EMBER_ZCL_SNAPSHOT_CONFIRMATION_SNAPSHOT_CAUSE_NOT_SUPPORTED = 0x01, } EmberAfSnapshotConfirmation; +// Enum for SnapshotPayloadType typedef enum { EMBER_ZCL_SNAPSHOT_PAYLOAD_TYPE_TOU_INFORMATION_SET_DELIVERED_REGISTERS = 0x00, @@ -2120,6 +2285,7 @@ typedef enum EMBER_ZCL_SNAPSHOT_PAYLOAD_TYPE_DATA_UNAVAILABLE = 0x80, } EmberAfSnapshotPayloadType; +// Enum for SnapshotScheduleConfirmation typedef enum { EMBER_ZCL_SNAPSHOT_SCHEDULE_CONFIRMATION_ACCEPTED = 0x00, @@ -2130,25 +2296,30 @@ typedef enum EMBER_ZCL_SNAPSHOT_SCHEDULE_CONFIRMATION_INSUFFICIENT_SPACE_FOR_SNAPSHOT_SCHEDULE = 0x05, } EmberAfSnapshotScheduleConfirmation; +// Enum for SquawkLevel typedef enum { - EMBER_ZCL_SQUAWK_LEVEL_LOW_LEVEL = 0x00, - EMBER_ZCL_SQUAWK_LEVEL_MEDIUM_LEVEL = 0x01, - EMBER_ZCL_SQUAWK_LEVEL_VERY_HIGH_LEVEL = 0x02, + EMBER_ZCL_SQUAWK_LEVEL_LOW_LEVEL = 0x0, + EMBER_ZCL_SQUAWK_LEVEL_MEDIUM_LEVEL = 0x1, + EMBER_ZCL_SQUAWK_LEVEL_HIGH_LEVEL = 0x2, + EMBER_ZCL_SQUAWK_LEVEL_VERY_HIGH_LEVEL = 0x2, } EmberAfSquawkLevel; +// Enum for SquawkMode typedef enum { - EMBER_ZCL_SQUAWK_MODE_SYSTEM_IS_ARMED = 0x00, - EMBER_ZCL_SQUAWK_MODE_SYSTEM_IS_DISARMED = 0x01, + EMBER_ZCL_SQUAWK_MODE_SYSTEM_IS_ARMED = 0x0, + EMBER_ZCL_SQUAWK_MODE_SYSTEM_IS_DISARMED = 0x1, } EmberAfSquawkMode; +// Enum for SquawkStobe typedef enum { - EMBER_ZCL_SQUAWK_STOBE_NO_STROBE = 0x00, - EMBER_ZCL_SQUAWK_STOBE_USE_STROBE = 0x01, + EMBER_ZCL_SQUAWK_STOBE_NO_STROBE = 0x0, + EMBER_ZCL_SQUAWK_STOBE_USE_STROBE = 0x1, } EmberAfSquawkStobe; +// Enum for StartOfWeek typedef enum { EMBER_ZCL_START_OF_WEEK_SUNDAY = 0x00, @@ -2160,6 +2331,7 @@ typedef enum EMBER_ZCL_START_OF_WEEK_SATURDAY = 0x06, } EmberAfStartOfWeek; +// Enum for StartUpOnOffValue typedef enum { EMBER_ZCL_START_UP_ON_OFF_VALUE_SET_TO_OFF = 0x00, @@ -2168,55 +2340,52 @@ typedef enum EMBER_ZCL_START_UP_ON_OFF_VALUE_SET_TO_PREVIOUS = 0xFF, } EmberAfStartUpOnOffValue; -typedef enum -{ - EMBER_ZCL_STATUS_SUCCESS = 0x00, - EMBER_ZCL_STATUS_FAILURE = 0x01, - EMBER_ZCL_STATUS_REQUEST_DENIED = 0x70, - EMBER_ZCL_STATUS_MULTIPLE_REQUEST_NOT_ALLOWED = 0x71, - EMBER_ZCL_STATUS_INDICATION_REDIRECTION_TO_AP = 0x72, - EMBER_ZCL_STATUS_PREFERENCE_DENIED = 0x73, - EMBER_ZCL_STATUS_PREFERENCE_IGNORED = 0x74, - EMBER_ZCL_STATUS_NOT_AUTHORIZED = 0x7E, - EMBER_ZCL_STATUS_RESERVED_FIELD_NOT_ZERO = 0x7F, - EMBER_ZCL_STATUS_MALFORMED_COMMAND = 0x80, - EMBER_ZCL_STATUS_UNSUP_CLUSTER_COMMAND = 0x81, - EMBER_ZCL_STATUS_UNSUP_GENERAL_COMMAND = 0x82, - EMBER_ZCL_STATUS_UNSUP_MANUF_CLUSTER_COMMAND = 0x83, - EMBER_ZCL_STATUS_UNSUP_MANUF_GENERAL_COMMAND = 0x84, - EMBER_ZCL_STATUS_INVALID_FIELD = 0x85, - EMBER_ZCL_STATUS_UNSUPPORTED_ATTRIBUTE = 0x86, - EMBER_ZCL_STATUS_INVALID_VALUE = 0x87, - EMBER_ZCL_STATUS_READ_ONLY = 0x88, - EMBER_ZCL_STATUS_INSUFFICIENT_SPACE = 0x89, - EMBER_ZCL_STATUS_DUPLICATE_EXISTS = 0x8A, - EMBER_ZCL_STATUS_NOT_FOUND = 0x8B, - EMBER_ZCL_STATUS_UNREPORTABLE_ATTRIBUTE = 0x8C, - EMBER_ZCL_STATUS_INVALID_DATA_TYPE = 0x8D, - EMBER_ZCL_STATUS_INVALID_SELECTOR = 0x8E, - EMBER_ZCL_STATUS_WRITE_ONLY = 0x8F, - EMBER_ZCL_STATUS_INCONSISTENT_STARTUP_STATE = 0x90, - EMBER_ZCL_STATUS_DEFINED_OUT_OF_BAND = 0x91, - EMBER_ZCL_STATUS_INCONSISTENT = 0x92, - EMBER_ZCL_STATUS_ACTION_DENIED = 0x93, - EMBER_ZCL_STATUS_TIMEOUT = 0x94, - EMBER_ZCL_STATUS_ABORT = 0x95, - EMBER_ZCL_STATUS_INVALID_IMAGE = 0x96, - EMBER_ZCL_STATUS_WAIT_FOR_DATA = 0x97, - EMBER_ZCL_STATUS_NO_IMAGE_AVAILABLE = 0x98, - EMBER_ZCL_STATUS_REQUIRE_MORE_IMAGE = 0x99, - EMBER_ZCL_STATUS_HARDWARE_FAILURE = 0xC0, - EMBER_ZCL_STATUS_SOFTWARE_FAILURE = 0xC1, - EMBER_ZCL_STATUS_CALIBRATION_ERROR = 0xC2, - EMBER_ZCL_STATUS_UNSUPPORTED_CLUSTER = 0xC3, +// Enum for Status +typedef enum +{ + EMBER_ZCL_STATUS_SUCCESS = 0x00, + EMBER_ZCL_STATUS_FAILURE = 0x01, + EMBER_ZCL_STATUS_NOT_AUTHORIZED = 0x7E, + EMBER_ZCL_STATUS_MALFORMED_COMMAND = 0x80, + EMBER_ZCL_STATUS_UNSUP_COMMAND = 0x81, + EMBER_ZCL_STATUS_UNSUP_GENERAL_COMMAND = 0x82, + EMBER_ZCL_STATUS_UNSUP_MANUF_CLUSTER_COMMAND = 0x83, + EMBER_ZCL_STATUS_UNSUP_MANUF_GENERAL_COMMAND = 0x84, + EMBER_ZCL_STATUS_INVALID_FIELD = 0x85, + EMBER_ZCL_STATUS_UNSUPPORTED_ATTRIBUTE = 0x86, + EMBER_ZCL_STATUS_INVALID_VALUE = 0x87, + EMBER_ZCL_STATUS_READ_ONLY = 0x88, + EMBER_ZCL_STATUS_INSUFFICIENT_SPACE = 0x89, + EMBER_ZCL_STATUS_DUPLICATE_EXISTS = 0x8A, + EMBER_ZCL_STATUS_NOT_FOUND = 0x8B, + EMBER_ZCL_STATUS_UNREPORTABLE_ATTRIBUTE = 0x8C, + EMBER_ZCL_STATUS_INVALID_DATA_TYPE = 0x8D, + EMBER_ZCL_STATUS_INVALID_SELECTOR = 0x8E, + EMBER_ZCL_STATUS_WRITE_ONLY = 0x8F, + EMBER_ZCL_STATUS_INCONSISTENT_STARTUP_STATE = 0x90, + EMBER_ZCL_STATUS_DEFINED_OUT_OF_BAND = 0x91, + EMBER_ZCL_STATUS_ACTION_DENIED = 0x93, + EMBER_ZCL_STATUS_TIMEOUT = 0x94, + EMBER_ZCL_STATUS_ABORT = 0x95, + EMBER_ZCL_STATUS_INVALID_IMAGE = 0x96, + EMBER_ZCL_STATUS_WAIT_FOR_DATA = 0x97, + EMBER_ZCL_STATUS_NO_IMAGE_AVAILABLE = 0x98, + EMBER_ZCL_STATUS_REQUIRE_MORE_IMAGE = 0x99, + EMBER_ZCL_STATUS_NOTIFICATION_PENDING = 0x9A, + EMBER_ZCL_STATUS_HARDWARE_FAILURE = 0xC0, + EMBER_ZCL_STATUS_SOFTWARE_FAILURE = 0xC1, + EMBER_ZCL_STATUS_UNSUPPORTED_CLUSTER = 0xC3, + EMBER_ZCL_STATUS_LIMIT_REACHED = 0xC4, } EmberAfStatus; +// Enum for StepMode typedef enum { - EMBER_ZCL_STEP_MODE_UP = 0x00, - EMBER_ZCL_STEP_MODE_DOWN = 0x01, + EMBER_ZCL_STEP_MODE_UP = 0x0, + EMBER_ZCL_STEP_MODE_DOWN = 0x1, } EmberAfStepMode; +// Enum for SupplyStatus typedef enum { EMBER_ZCL_SUPPLY_STATUS_SUPPLY_OFF = 0x00, @@ -2225,13 +2394,15 @@ typedef enum EMBER_ZCL_SUPPLY_STATUS_SUPPLY_UNCHANGED = 0x03, } EmberAfSupplyStatus; +// Enum for SwitchActions typedef enum { - EMBER_ZCL_SWITCH_ACTIONS_ON = 0x00, - EMBER_ZCL_SWITCH_ACTIONS_OFF = 0x01, - EMBER_ZCL_SWITCH_ACTIONS_TOGGLE = 0x02, + EMBER_ZCL_SWITCH_ACTIONS_ON = 0x0, + EMBER_ZCL_SWITCH_ACTIONS_OFF = 0x1, + EMBER_ZCL_SWITCH_ACTIONS_TOGGLE = 0x2, } EmberAfSwitchActions; +// Enum for SwitchType typedef enum { EMBER_ZCL_SWITCH_TYPE_TOGGLE = 0x00, @@ -2239,6 +2410,7 @@ typedef enum EMBER_ZCL_SWITCH_TYPE_MULTI_FUNCTION = 0x02, } EmberAfSwitchType; +// Enum for TariffChargingScheme typedef enum { EMBER_ZCL_TARIFF_CHARGING_SCHEME_TOU_TARIFF = 0x00, @@ -2247,6 +2419,7 @@ typedef enum EMBER_ZCL_TARIFF_CHARGING_SCHEME_BLOCK_TOU_TARIFF_WITH_INDIVIDUAL_THRESHOLDS_PER_TIER = 0x30, } EmberAfTariffChargingScheme; +// Enum for TariffResolutionPeriod typedef enum { EMBER_ZCL_TARIFF_RESOLUTION_PERIOD_NOT_DEFINED = 0x00, @@ -2254,6 +2427,7 @@ typedef enum EMBER_ZCL_TARIFF_RESOLUTION_PERIOD_ONE_DAY = 0x02, } EmberAfTariffResolutionPeriod; +// Enum for TariffType typedef enum { EMBER_ZCL_TARIFF_TYPE_DELIVERED_TARIFF = 0x00, @@ -2261,28 +2435,32 @@ typedef enum EMBER_ZCL_TARIFF_TYPE_DELIVERED_AND_RECEIVED_TARIFF = 0x02, } EmberAfTariffType; +// Enum for TemperatureDisplayMode typedef enum { - EMBER_ZCL_TEMPERATURE_DISPLAY_MODE_CELSIUS = 0x00, - EMBER_ZCL_TEMPERATURE_DISPLAY_MODE_FAHRENHEIT = 0x01, + EMBER_ZCL_TEMPERATURE_DISPLAY_MODE_CELSIUS = 0x0, + EMBER_ZCL_TEMPERATURE_DISPLAY_MODE_FAHRENHEIT = 0x1, } EmberAfTemperatureDisplayMode; +// Enum for TemperatureSetpointHold typedef enum { EMBER_ZCL_TEMPERATURE_SETPOINT_HOLD_SETPOINT_HOLD_OFF = 0x00, EMBER_ZCL_TEMPERATURE_SETPOINT_HOLD_SETPOINT_HOLD_ON = 0x01, } EmberAfTemperatureSetpointHold; +// Enum for ThermostatControlSequence typedef enum { - EMBER_ZCL_THERMOSTAT_CONTROL_SEQUENCE_COOLING_ONLY = 0x00, - EMBER_ZCL_THERMOSTAT_CONTROL_SEQUENCE_COOLING_WITH_REHEAT = 0x01, - EMBER_ZCL_THERMOSTAT_CONTROL_SEQUENCE_HEATING_ONLY = 0x02, - EMBER_ZCL_THERMOSTAT_CONTROL_SEQUENCE_HEATING_WITH_REHEAT = 0x03, - EMBER_ZCL_THERMOSTAT_CONTROL_SEQUENCE_COOLING_AND_HEATING = 0x04, - EMBER_ZCL_THERMOSTAT_CONTROL_SEQUENCE_COOLING_AND_HEATING_WITH_REHEAT = 0x05, + EMBER_ZCL_THERMOSTAT_CONTROL_SEQUENCE_COOLING_ONLY = 0x0, + EMBER_ZCL_THERMOSTAT_CONTROL_SEQUENCE_COOLING_WITH_REHEAT = 0x1, + EMBER_ZCL_THERMOSTAT_CONTROL_SEQUENCE_HEATING_ONLY = 0x2, + EMBER_ZCL_THERMOSTAT_CONTROL_SEQUENCE_HEATING_WITH_REHEAT = 0x3, + EMBER_ZCL_THERMOSTAT_CONTROL_SEQUENCE_COOLING_AND_HEATING = 0x4, + EMBER_ZCL_THERMOSTAT_CONTROL_SEQUENCE_COOLING_AND_HEATING_WITH_REHEAT = 0x5, } EmberAfThermostatControlSequence; +// Enum for ThermostatRunningMode typedef enum { EMBER_ZCL_THERMOSTAT_RUNNING_MODE_OFF = 0x00, @@ -2290,17 +2468,19 @@ typedef enum EMBER_ZCL_THERMOSTAT_RUNNING_MODE_HEAT = 0x04, } EmberAfThermostatRunningMode; +// Enum for ThermostatSystemMode typedef enum { - EMBER_ZCL_THERMOSTAT_SYSTEM_MODE_OFF = 0x00, - EMBER_ZCL_THERMOSTAT_SYSTEM_MODE_AUTO = 0x01, - EMBER_ZCL_THERMOSTAT_SYSTEM_MODE_COOL = 0x03, - EMBER_ZCL_THERMOSTAT_SYSTEM_MODE_HEAT = 0x04, - EMBER_ZCL_THERMOSTAT_SYSTEM_MODE_EMERGENCY_HEATING = 0x05, - EMBER_ZCL_THERMOSTAT_SYSTEM_MODE_PRECOOLING = 0x06, - EMBER_ZCL_THERMOSTAT_SYSTEM_MODE_FAN_ONLY = 0x07, + EMBER_ZCL_THERMOSTAT_SYSTEM_MODE_OFF = 0x0, + EMBER_ZCL_THERMOSTAT_SYSTEM_MODE_AUTO = 0x1, + EMBER_ZCL_THERMOSTAT_SYSTEM_MODE_COOL = 0x3, + EMBER_ZCL_THERMOSTAT_SYSTEM_MODE_HEAT = 0x4, + EMBER_ZCL_THERMOSTAT_SYSTEM_MODE_EMERGENCY_HEATING = 0x5, + EMBER_ZCL_THERMOSTAT_SYSTEM_MODE_PRECOOLING = 0x6, + EMBER_ZCL_THERMOSTAT_SYSTEM_MODE_FAN_ONLY = 0x7, } EmberAfThermostatSystemMode; +// Enum for TierBlockMode typedef enum { EMBER_ZCL_TIER_BLOCK_MODE_ACTIVE_BLOCK = 0x00, @@ -2309,12 +2489,14 @@ typedef enum EMBER_ZCL_TIER_BLOCK_MODE_NOT_USED = 0xFF, } EmberAfTierBlockMode; +// Enum for TimeEncoding typedef enum { EMBER_ZCL_TIME_ENCODING_RELATIVE = 0x00, EMBER_ZCL_TIME_ENCODING_ABSOLUTE = 0x40, } EmberAfTimeEncoding; +// Enum for TunnelingProtocolId typedef enum { EMBER_ZCL_TUNNELING_PROTOCOL_ID_DLMS_COSEM = 0x00, @@ -2324,9 +2506,12 @@ typedef enum EMBER_ZCL_TUNNELING_PROTOCOL_ID_SML = 0x04, EMBER_ZCL_TUNNELING_PROTOCOL_ID_CLIMATE_TALK = 0x05, EMBER_ZCL_TUNNELING_PROTOCOL_ID_GB_HRGP = 0x06, + EMBER_ZCL_TUNNELING_PROTOCOL_ID_IP_V4 = 0x07, + EMBER_ZCL_TUNNELING_PROTOCOL_ID_IP_V6 = 0x08, EMBER_ZCL_TUNNELING_PROTOCOL_ID_TEST = 0xC7, } EmberAfTunnelingProtocolId; +// Enum for TunnelingTransferDataStatus typedef enum { EMBER_ZCL_TUNNELING_TRANSFER_DATA_STATUS_NO_SUCH_TUNNEL = 0x00, @@ -2334,6 +2519,7 @@ typedef enum EMBER_ZCL_TUNNELING_TRANSFER_DATA_STATUS_DATA_OVERFLOW = 0x02, } EmberAfTunnelingTransferDataStatus; +// Enum for TunnelingTunnelStatus typedef enum { EMBER_ZCL_TUNNELING_TUNNEL_STATUS_SUCCESS = 0x00, @@ -2343,12 +2529,14 @@ typedef enum EMBER_ZCL_TUNNELING_TUNNEL_STATUS_FLOW_CONTROL_NOT_SUPPORTED = 0x04, } EmberAfTunnelingTunnelStatus; +// Enum for WanStatus typedef enum { EMBER_ZCL_WAN_STATUS_CONNECTION_TO_WAN_IS_NOT_AVAILABLE = 0x00, EMBER_ZCL_WAN_STATUS_CONNECTION_TO_WAN_IS_AVAILABLE = 0x01, } EmberAfWanStatus; +// Enum for WarningEvent typedef enum { EMBER_ZCL_WARNING_EVENT_WARNING1_OVERALL_POWER_ABOVE_AVAILABLE_POWER_LEVEL = 0x00, @@ -2358,23 +2546,26 @@ typedef enum EMBER_ZCL_WARNING_EVENT_WARNING5_OVERALL_POWER_WILL_BE_POTENTIALLY_ABOVE_AVAILABLE_POWER_LEVEL_IF_THE_APPLIANCE_STARTS = 0x04, } EmberAfWarningEvent; +// Enum for WarningMode typedef enum { - EMBER_ZCL_WARNING_MODE_STOP = 0x00, - EMBER_ZCL_WARNING_MODE_BURGLAR = 0x01, - EMBER_ZCL_WARNING_MODE_FIRE = 0x02, - EMBER_ZCL_WARNING_MODE_EMERGENCY = 0x03, - EMBER_ZCL_WARNING_MODE_POLICE_PANIC = 0x04, - EMBER_ZCL_WARNING_MODE_FIRE_PANIC = 0x05, - EMBER_ZCL_WARNING_MODE_EMERGENCY_PANIC = 0x06, + EMBER_ZCL_WARNING_MODE_STOP = 0x0, + EMBER_ZCL_WARNING_MODE_BURGLAR = 0x1, + EMBER_ZCL_WARNING_MODE_FIRE = 0x2, + EMBER_ZCL_WARNING_MODE_EMERGENCY = 0x3, + EMBER_ZCL_WARNING_MODE_POLICE_PANIC = 0x4, + EMBER_ZCL_WARNING_MODE_FIRE_PANIC = 0x5, + EMBER_ZCL_WARNING_MODE_EMERGENCY_PANIC = 0x6, } EmberAfWarningMode; +// Enum for WarningStobe typedef enum { - EMBER_ZCL_WARNING_STOBE_NO_STROBE = 0x00, - EMBER_ZCL_WARNING_STOBE_USE_STROBE = 0x01, + EMBER_ZCL_WARNING_STOBE_NO_STROBE = 0x0, + EMBER_ZCL_WARNING_STOBE_USE_STROBE = 0x1, } EmberAfWarningStobe; +// Enum for WwahIasZoneEnrollmentMode typedef enum { EMBER_ZCL_WWAH_IAS_ZONE_ENROLLMENT_MODE_TRIP_TO_PAIR = 0x00, @@ -2382,6 +2573,7 @@ typedef enum EMBER_ZCL_WWAH_IAS_ZONE_ENROLLMENT_MODE_REQUEST = 0x02, } EmberAfWwahIasZoneEnrollmentMode; +// Enum for WwahPowerNotificationReason typedef enum { EMBER_ZCL_WWAH_POWER_NOTIFICATION_REASON_UNKNOWN = 0x00, @@ -2398,6 +2590,7 @@ typedef enum EMBER_ZCL_WWAH_POWER_NOTIFICATION_REASON_BOOTLOAD_FAILURE = 0x0B, } EmberAfWwahPowerNotificationReason; +// Enum for ZigbeeInformationLogicalType typedef enum { EMBER_ZCL_ZIGBEE_INFORMATION_LOGICAL_TYPE_COORDINATOR = 0x00, @@ -2405,308 +2598,35 @@ typedef enum EMBER_ZCL_ZIGBEE_INFORMATION_LOGICAL_TYPE_END_DEVICE = 0x02, } EmberAfZigbeeInformationLogicalType; +// Enum for ZllStatus typedef enum { EMBER_ZCL_ZLL_STATUS_SUCCESS = 0x00, EMBER_ZCL_ZLL_STATUS_FAILURE = 0x01, } EmberAfZllStatus; -#define EMBER_AF_SHADE_CLOSURE_STATUS_OPERATIONAL (0x01) -#define EMBER_AF_SHADE_CLOSURE_STATUS_ADJUSTING (0x02) -#define EMBER_AF_SHADE_CLOSURE_STATUS_ADJUSTING_OFFSET (1) -#define EMBER_AF_SHADE_CLOSURE_STATUS_OPENING (0x04) -#define EMBER_AF_SHADE_CLOSURE_STATUS_OPENING_OFFSET (2) -#define EMBER_AF_SHADE_CLOSURE_STATUS_MOTOR_OPENING (0x08) -#define EMBER_AF_SHADE_CLOSURE_STATUS_MOTOR_OPENING_OFFSET (3) -#define EMBER_AF_ALARM_MASK_GENERAL_HW_FAULT (0x01) -#define EMBER_AF_ALARM_MASK_GENERAL_SW_FAULT (0x02) +#define EMBER_AF_ALARM_MASK_GENERAL_HW_FAULT (0x1) +#define EMBER_AF_ALARM_MASK_GENERAL_HW_FAULT_OFFSET (0) +#define EMBER_AF_ALARM_MASK_GENERAL_SW_FAULT (0x2) #define EMBER_AF_ALARM_MASK_GENERAL_SW_FAULT_OFFSET (1) -#define EMBER_AF_RESTART_OPTIONS_START_MODE1 (0x01) -#define EMBER_AF_RESTART_OPTIONS_STARTUP_MODE2 (0x02) -#define EMBER_AF_RESTART_OPTIONS_STARTUP_MODE2_OFFSET (1) -#define EMBER_AF_RESTART_OPTIONS_STARTUP_MODE3 (0x04) -#define EMBER_AF_RESTART_OPTIONS_STARTUP_MODE3_OFFSET (2) -#define EMBER_AF_RESTART_OPTIONS_IMMEDIATE (0x08) -#define EMBER_AF_RESTART_OPTIONS_IMMEDIATE_OFFSET (3) -#define EMBER_AF_RESET_OPTIONS_RESET_CURRENT (0x01) -#define EMBER_AF_RESET_OPTIONS_RESET_ALL (0x02) -#define EMBER_AF_RESET_OPTIONS_RESET_ALL_OFFSET (1) -#define EMBER_AF_RESET_OPTIONS_ERASE_INDEX (0x04) -#define EMBER_AF_RESET_OPTIONS_ERASE_INDEX_OFFSET (2) -#define EMBER_AF_MAINS_ALARM_MASK_VOLTAGE_TOO_LOW (0x01) -#define EMBER_AF_MAINS_ALARM_MASK_VOLTAGE_TOO_HIGH (0x02) -#define EMBER_AF_MAINS_ALARM_MASK_VOLTAGE_TOO_HIGH_OFFSET (1) -#define EMBER_AF_MAINS_ALARM_MASK_MAINS_POWER_SUPPLY_LOST (0x04) -#define EMBER_AF_MAINS_ALARM_MASK_MAINS_POWER_SUPPLY_LOST_OFFSET (2) -#define EMBER_AF_BATTERY_ALARM_MASK_VOLTAGE_TOO_LOW (0x01) -#define EMBER_AF_DEVICE_TEMP_ALARM_MASK_TOO_LOW (0x01) -#define EMBER_AF_DEVICE_TEMP_ALARM_MASK_TOO_HIGH (0x02) -#define EMBER_AF_DEVICE_TEMP_ALARM_MASK_TOO_HIGH_OFFSET (1) -#define EMBER_AF_TIME_STATUS_MASK_MASTER_CLOCK (0x01) -#define EMBER_AF_TIME_STATUS_MASK_SYNCHRONIZED (0x02) -#define EMBER_AF_TIME_STATUS_MASK_SYNCHRONIZED_OFFSET (1) -#define EMBER_AF_TIME_STATUS_MASK_MASTER_ZONE_DST (0x04) -#define EMBER_AF_TIME_STATUS_MASK_MASTER_ZONE_DST_OFFSET (2) -#define EMBER_AF_TIME_STATUS_MASK_SUPERSEDING (0x08) -#define EMBER_AF_TIME_STATUS_MASK_SUPERSEDING_OFFSET (3) -#define EMBER_AF_LOCATION_TYPE_ABSOLUTE (0x01) -#define EMBER_AF_LOCATION_TYPE2_D (0x02) -#define EMBER_AF_LOCATION_TYPE2_D_OFFSET (1) -#define EMBER_AF_LOCATION_TYPE_COORDINATE_SYSTEM (0x0C) -#define EMBER_AF_LOCATION_TYPE_COORDINATE_SYSTEM_OFFSET (2) -#define EMBER_AF_GET_LOCATION_DATA_FLAGS_ABSOLUTE_ONLY (0x01) -#define EMBER_AF_GET_LOCATION_DATA_FLAGS_RECALCULATE (0x02) -#define EMBER_AF_GET_LOCATION_DATA_FLAGS_RECALCULATE_OFFSET (1) -#define EMBER_AF_GET_LOCATION_DATA_FLAGS_BROADCAST (0x04) -#define EMBER_AF_GET_LOCATION_DATA_FLAGS_BROADCAST_OFFSET (2) -#define EMBER_AF_GET_LOCATION_DATA_FLAGS_BROADCAST_RESPONSE (0x08) -#define EMBER_AF_GET_LOCATION_DATA_FLAGS_BROADCAST_RESPONSE_OFFSET (3) -#define EMBER_AF_GET_LOCATION_DATA_FLAGS_COMPACT_RESPONSE (0x10) -#define EMBER_AF_GET_LOCATION_DATA_FLAGS_COMPACT_RESPONSE_OFFSET (4) -#define EMBER_AF_PUMP_STATUS_DEVICE_FAULT (0x0001) -#define EMBER_AF_PUMP_STATUS_SUPPLYFAULT (0x0002) -#define EMBER_AF_PUMP_STATUS_SUPPLYFAULT_OFFSET (1) -#define EMBER_AF_PUMP_STATUS_SPEED_LOW (0x0004) -#define EMBER_AF_PUMP_STATUS_SPEED_LOW_OFFSET (2) -#define EMBER_AF_PUMP_STATUS_SPEED_HIGH (0x0008) -#define EMBER_AF_PUMP_STATUS_SPEED_HIGH_OFFSET (3) -#define EMBER_AF_PUMP_STATUS_LOCAL_OVERRIDE (0x0010) -#define EMBER_AF_PUMP_STATUS_LOCAL_OVERRIDE_OFFSET (4) -#define EMBER_AF_PUMP_STATUS_RUNNING (0x0020) -#define EMBER_AF_PUMP_STATUS_RUNNING_OFFSET (5) -#define EMBER_AF_PUMP_STATUS_REMOTE_PRESSURE (0x0040) -#define EMBER_AF_PUMP_STATUS_REMOTE_PRESSURE_OFFSET (6) -#define EMBER_AF_PUMP_STATUS_REMOTE_FLOW (0x0080) -#define EMBER_AF_PUMP_STATUS_REMOTE_FLOW_OFFSET (7) -#define EMBER_AF_PUMP_STATUS_REMOTE_TEMPERATURE (0x0100) -#define EMBER_AF_PUMP_STATUS_REMOTE_TEMPERATURE_OFFSET (8) -#define EMBER_AF_PUMP_ALARM_MASK_SUPPLY_VOLTAGE_TOO_LOW (0x0001) -#define EMBER_AF_PUMP_ALARM_MASK_SUPPLY_VOLTAGE_TOO_HIGH (0x0002) -#define EMBER_AF_PUMP_ALARM_MASK_SUPPLY_VOLTAGE_TOO_HIGH_OFFSET (1) -#define EMBER_AF_PUMP_ALARM_MASK_POWER_MISSING_PHASE (0x0004) -#define EMBER_AF_PUMP_ALARM_MASK_POWER_MISSING_PHASE_OFFSET (2) -#define EMBER_AF_PUMP_ALARM_MASK_SYSTEM_PRESSURE_TOO_LOW (0x0008) -#define EMBER_AF_PUMP_ALARM_MASK_SYSTEM_PRESSURE_TOO_LOW_OFFSET (3) -#define EMBER_AF_PUMP_ALARM_MASK_SYSTEM_PRESSURE_TOO_HIGH (0x0010) -#define EMBER_AF_PUMP_ALARM_MASK_SYSTEM_PRESSURE_TOO_HIGH_OFFSET (4) -#define EMBER_AF_PUMP_ALARM_MASK_DRY_RUNNING (0x0020) -#define EMBER_AF_PUMP_ALARM_MASK_DRY_RUNNING_OFFSET (5) -#define EMBER_AF_PUMP_ALARM_MASK_MOTOR_TEMPERATURE_TOO_HIGH (0x0040) -#define EMBER_AF_PUMP_ALARM_MASK_MOTOR_TEMPERATURE_TOO_HIGH_OFFSET (6) -#define EMBER_AF_PUMP_ALARM_MASK_PUMP_MOTOR_HAS_FATAL_FAILURE (0x0080) -#define EMBER_AF_PUMP_ALARM_MASK_PUMP_MOTOR_HAS_FATAL_FAILURE_OFFSET (7) -#define EMBER_AF_PUMP_ALARM_MASK_ELECTRONIC_TEMPERATURE_TOO_HIGH (0x0100) -#define EMBER_AF_PUMP_ALARM_MASK_ELECTRONIC_TEMPERATURE_TOO_HIGH_OFFSET (8) -#define EMBER_AF_PUMP_ALARM_MASK_PUMP_BLOCKED (0x0200) -#define EMBER_AF_PUMP_ALARM_MASK_PUMP_BLOCKED_OFFSET (9) -#define EMBER_AF_PUMP_ALARM_MASK_SENSOR_FAILURE (0x0400) -#define EMBER_AF_PUMP_ALARM_MASK_SENSOR_FAILURE_OFFSET (10) -#define EMBER_AF_PUMP_ALARM_MASK_ELECTRONIC_NON_FATAL_FAILURE (0x0800) -#define EMBER_AF_PUMP_ALARM_MASK_ELECTRONIC_NON_FATAL_FAILURE_OFFSET (11) -#define EMBER_AF_PUMP_ALARM_MASK_ELECTRONIC_FATAL_FAILURE (0x1000) -#define EMBER_AF_PUMP_ALARM_MASK_ELECTRONIC_FATAL_FAILURE_OFFSET (12) -#define EMBER_AF_PUMP_ALARM_MASK_GENERAL_FAULT (0x2000) -#define EMBER_AF_PUMP_ALARM_MASK_GENERAL_FAULT_OFFSET (13) -#define EMBER_AF_THERMOSTAT_OCCUPANCY_OCCUPIED (0x01) -#define EMBER_AF_THERMOSTAT_SENSING_LOCAL_TEMP_SENSED_REMOTELY (0x01) -#define EMBER_AF_THERMOSTAT_SENSING_OUTDOOR_TEMP_SENSED_REMOTELY (0x02) -#define EMBER_AF_THERMOSTAT_SENSING_OUTDOOR_TEMP_SENSED_REMOTELY_OFFSET (1) -#define EMBER_AF_THERMOSTAT_SENSING_OCCUPANCY_SENSED_REMOTELY (0x04) -#define EMBER_AF_THERMOSTAT_SENSING_OCCUPANCY_SENSED_REMOTELY_OFFSET (2) -#define EMBER_AF_THERMOSTAT_ALARM_MASK_INITIALIZATION_FAILURE (0x01) -#define EMBER_AF_THERMOSTAT_ALARM_MASK_HARDWARE_FAILURE (0x02) -#define EMBER_AF_THERMOSTAT_ALARM_MASK_HARDWARE_FAILURE_OFFSET (1) -#define EMBER_AF_THERMOSTAT_ALARM_MASK_SELFCALIBRATION_FAILURE (0x04) -#define EMBER_AF_THERMOSTAT_ALARM_MASK_SELFCALIBRATION_FAILURE_OFFSET (2) -#define EMBER_AF_BALLAST_STATUS_NON_OPERATIONAL (0x01) -#define EMBER_AF_BALLAST_STATUS_LAMP_NOT_IN_SOCKET (0x02) -#define EMBER_AF_BALLAST_STATUS_LAMP_NOT_IN_SOCKET_OFFSET (1) -#define EMBER_AF_LAMP_ALARM_MODE_LAMP_BURN_HOURS (0x01) -#define EMBER_AF_OCCUPANCY_OCCUPIED (0x01) -#define EMBER_AF_IAS_ZONE_STATUS_ALARM1 (0x0001) -#define EMBER_AF_IAS_ZONE_STATUS_ALARM2 (0x0002) -#define EMBER_AF_IAS_ZONE_STATUS_ALARM2_OFFSET (1) -#define EMBER_AF_IAS_ZONE_STATUS_TAMPER (0x0004) -#define EMBER_AF_IAS_ZONE_STATUS_TAMPER_OFFSET (2) -#define EMBER_AF_IAS_ZONE_STATUS_BATTERY (0x0008) -#define EMBER_AF_IAS_ZONE_STATUS_BATTERY_OFFSET (3) -#define EMBER_AF_IAS_ZONE_STATUS_SUPERVISION_REPORTS (0x0010) -#define EMBER_AF_IAS_ZONE_STATUS_SUPERVISION_REPORTS_OFFSET (4) -#define EMBER_AF_IAS_ZONE_STATUS_RESTORE_REPORTS (0x0020) -#define EMBER_AF_IAS_ZONE_STATUS_RESTORE_REPORTS_OFFSET (5) -#define EMBER_AF_IAS_ZONE_STATUS_TROUBLE (0x0040) -#define EMBER_AF_IAS_ZONE_STATUS_TROUBLE_OFFSET (6) -#define EMBER_AF_IAS_ZONE_STATUS_A_C (0x0080) -#define EMBER_AF_IAS_ZONE_STATUS_A_C_OFFSET (7) -#define EMBER_AF_IAS_ZONE_STATUS_TEST (0x0100) -#define EMBER_AF_IAS_ZONE_STATUS_TEST_OFFSET (8) -#define EMBER_AF_IAS_ZONE_STATUS_BATTERY_DEFECT (0x0200) -#define EMBER_AF_IAS_ZONE_STATUS_BATTERY_DEFECT_OFFSET (9) -#define EMBER_AF_WARNING_INFO_MODE (0xF0) -#define EMBER_AF_WARNING_INFO_MODE_OFFSET (4) -#define EMBER_AF_WARNING_INFO_STROBE (0x0C) -#define EMBER_AF_WARNING_INFO_STROBE_OFFSET (2) -#define EMBER_AF_WARNING_INFO_SIREN_LEVEL (0x03) -#define EMBER_AF_SQUAWK_INFO_MODE (0xF0) -#define EMBER_AF_SQUAWK_INFO_MODE_OFFSET (4) -#define EMBER_AF_SQUAWK_INFO_STROBE (0x08) -#define EMBER_AF_SQUAWK_INFO_STROBE_OFFSET (3) -#define EMBER_AF_SQUAWK_INFO_LEVEL (0x03) -#define EMBER_AF_OCCUPANCY_SENSOR_TYPE_BITMAP_PIR (0x01) -#define EMBER_AF_OCCUPANCY_SENSOR_TYPE_BITMAP_ULTRASONIC (0x02) -#define EMBER_AF_OCCUPANCY_SENSOR_TYPE_BITMAP_ULTRASONIC_OFFSET (1) -#define EMBER_AF_OCCUPANCY_SENSOR_TYPE_BITMAP_PHYSICAL_CONTACT (0x04) -#define EMBER_AF_OCCUPANCY_SENSOR_TYPE_BITMAP_PHYSICAL_CONTACT_OFFSET (2) -#define EMBER_AF_ENERGY_FORMATTING_NUMBER_OF_DIGITS_TO_THE_RIGHT_OF_THE_DECIMAL_POINT (0x07) -#define EMBER_AF_ENERGY_FORMATTING_NUMBER_OF_DIGITS_TO_THE_LEFT_OF_THE_DECIMAL_POINT (0x78) -#define EMBER_AF_ENERGY_FORMATTING_NUMBER_OF_DIGITS_TO_THE_LEFT_OF_THE_DECIMAL_POINT_OFFSET (3) -#define EMBER_AF_ENERGY_FORMATTING_SUPPRESS_LEADING_ZEROS (0x80) -#define EMBER_AF_ENERGY_FORMATTING_SUPPRESS_LEADING_ZEROS_OFFSET (7) -#define EMBER_AF_REMOTE_ENABLE_FLAGS_AND_DEVICE_STATUS2_REMOTE_ENABLE_FLAGS (0x0F) -#define EMBER_AF_REMOTE_ENABLE_FLAGS_AND_DEVICE_STATUS2_DEVICE_STATUS2_STRUCTURE (0xF0) -#define EMBER_AF_REMOTE_ENABLE_FLAGS_AND_DEVICE_STATUS2_DEVICE_STATUS2_STRUCTURE_OFFSET (4) -#define EMBER_AF_START_TIME_MINUTES (0x003F) -#define EMBER_AF_START_TIME_TIME_ENCODING (0x00C0) -#define EMBER_AF_START_TIME_TIME_ENCODING_OFFSET (6) -#define EMBER_AF_START_TIME_HOURS (0xFF00) -#define EMBER_AF_START_TIME_HOURS_OFFSET (8) -#define EMBER_AF_DOOR_LOCK_DAY_OF_WEEK_SUNDAY (0x01) -#define EMBER_AF_DOOR_LOCK_DAY_OF_WEEK_MONDAY (0x02) -#define EMBER_AF_DOOR_LOCK_DAY_OF_WEEK_MONDAY_OFFSET (1) -#define EMBER_AF_DOOR_LOCK_DAY_OF_WEEK_TUESDAY (0x04) -#define EMBER_AF_DOOR_LOCK_DAY_OF_WEEK_TUESDAY_OFFSET (2) -#define EMBER_AF_DOOR_LOCK_DAY_OF_WEEK_WEDNESDAY (0x08) -#define EMBER_AF_DOOR_LOCK_DAY_OF_WEEK_WEDNESDAY_OFFSET (3) -#define EMBER_AF_DOOR_LOCK_DAY_OF_WEEK_THURSDAY (0x10) -#define EMBER_AF_DOOR_LOCK_DAY_OF_WEEK_THURSDAY_OFFSET (4) -#define EMBER_AF_DOOR_LOCK_DAY_OF_WEEK_FRIDAY (0x20) -#define EMBER_AF_DOOR_LOCK_DAY_OF_WEEK_FRIDAY_OFFSET (5) -#define EMBER_AF_DOOR_LOCK_DAY_OF_WEEK_SATURDAY (0x40) -#define EMBER_AF_DOOR_LOCK_DAY_OF_WEEK_SATURDAY_OFFSET (6) -#define EMBER_AF_THERMOSTAT_RUNNING_STATE_HEAT_STATE_ON (0x0001) -#define EMBER_AF_THERMOSTAT_RUNNING_STATE_COOL_STATE_ON (0x0002) -#define EMBER_AF_THERMOSTAT_RUNNING_STATE_COOL_STATE_ON_OFFSET (1) -#define EMBER_AF_THERMOSTAT_RUNNING_STATE_FAN_STATE_ON (0x0004) -#define EMBER_AF_THERMOSTAT_RUNNING_STATE_FAN_STATE_ON_OFFSET (2) -#define EMBER_AF_THERMOSTAT_RUNNING_STATE_HEAT_SECOND_STAGE_STATE_ON (0x0008) -#define EMBER_AF_THERMOSTAT_RUNNING_STATE_HEAT_SECOND_STAGE_STATE_ON_OFFSET (3) -#define EMBER_AF_THERMOSTAT_RUNNING_STATE_COOL_SECOND_STAGE_STATE_ON (0x0010) -#define EMBER_AF_THERMOSTAT_RUNNING_STATE_COOL_SECOND_STAGE_STATE_ON_OFFSET (4) -#define EMBER_AF_THERMOSTAT_RUNNING_STATE_FAN_SECOND_STAGE_STATE_ON (0x0020) -#define EMBER_AF_THERMOSTAT_RUNNING_STATE_FAN_SECOND_STAGE_STATE_ON_OFFSET (5) -#define EMBER_AF_THERMOSTAT_RUNNING_STATE_FAN_THIRD_STAGE_STATE_ON (0x0040) -#define EMBER_AF_THERMOSTAT_RUNNING_STATE_FAN_THIRD_STAGE_STATE_ON_OFFSET (6) -#define EMBER_AF_DAY_OF_WEEK_SUNDAY (0x01) -#define EMBER_AF_DAY_OF_WEEK_MONDAY (0x02) -#define EMBER_AF_DAY_OF_WEEK_MONDAY_OFFSET (1) -#define EMBER_AF_DAY_OF_WEEK_TUESDAY (0x04) -#define EMBER_AF_DAY_OF_WEEK_TUESDAY_OFFSET (2) -#define EMBER_AF_DAY_OF_WEEK_WEDNESDAY (0x08) -#define EMBER_AF_DAY_OF_WEEK_WEDNESDAY_OFFSET (3) -#define EMBER_AF_DAY_OF_WEEK_THURSDAY (0x10) -#define EMBER_AF_DAY_OF_WEEK_THURSDAY_OFFSET (4) -#define EMBER_AF_DAY_OF_WEEK_FRIDAY (0x20) -#define EMBER_AF_DAY_OF_WEEK_FRIDAY_OFFSET (5) -#define EMBER_AF_DAY_OF_WEEK_SATURDAY (0x40) -#define EMBER_AF_DAY_OF_WEEK_SATURDAY_OFFSET (6) -#define EMBER_AF_DAY_OF_WEEK_AWAY_OR_VACATION (0x80) -#define EMBER_AF_DAY_OF_WEEK_AWAY_OR_VACATION_OFFSET (7) -#define EMBER_AF_MODE_FOR_SEQUENCE_HEAT_SETPOINT_FIELD_PRESENT (0x01) -#define EMBER_AF_MODE_FOR_SEQUENCE_COOL_SETPOINT_FIELD_PRESENT (0x02) -#define EMBER_AF_MODE_FOR_SEQUENCE_COOL_SETPOINT_FIELD_PRESENT_OFFSET (1) +#define EMBER_AF_ALERT_COUNT_NUMBER_OF_ALERTS (0x0F) +#define EMBER_AF_ALERT_COUNT_NUMBER_OF_ALERTS_OFFSET (0) +#define EMBER_AF_ALERT_COUNT_TYPE_OF_ALERT (0xF0) +#define EMBER_AF_ALERT_COUNT_TYPE_OF_ALERT_OFFSET (4) #define EMBER_AF_ALERT_STRUCTURE_ALERT_ID (0x0000FF) +#define EMBER_AF_ALERT_STRUCTURE_ALERT_ID_OFFSET (0) #define EMBER_AF_ALERT_STRUCTURE_CATEGORY (0x000F00) #define EMBER_AF_ALERT_STRUCTURE_CATEGORY_OFFSET (8) #define EMBER_AF_ALERT_STRUCTURE_PRESENCE_RECOVERY (0x003000) #define EMBER_AF_ALERT_STRUCTURE_PRESENCE_RECOVERY_OFFSET (12) -#define EMBER_AF_ALERT_COUNT_NUMBER_OF_ALERTS (0x0F) -#define EMBER_AF_ALERT_COUNT_TYPE_OF_ALERT (0xF0) -#define EMBER_AF_ALERT_COUNT_TYPE_OF_ALERT_OFFSET (4) -#define EMBER_AF_BARRIER_CONTROL_CAPABILITIES_PARTIAL_BARRIER (0x01) -#define EMBER_AF_BARRIER_CONTROL_SAFETY_STATUS_REMOTE_LOCKOUT (0x0001) -#define EMBER_AF_BARRIER_CONTROL_SAFETY_STATUS_TEMPER_DETECTED (0x0002) -#define EMBER_AF_BARRIER_CONTROL_SAFETY_STATUS_TEMPER_DETECTED_OFFSET (1) -#define EMBER_AF_BARRIER_CONTROL_SAFETY_STATUS_FAILED_COMMUNICATION (0x0004) -#define EMBER_AF_BARRIER_CONTROL_SAFETY_STATUS_FAILED_COMMUNICATION_OFFSET (2) -#define EMBER_AF_BARRIER_CONTROL_SAFETY_STATUS_POSITION_FAILURE (0x0008) -#define EMBER_AF_BARRIER_CONTROL_SAFETY_STATUS_POSITION_FAILURE_OFFSET (3) -#define EMBER_AF_BLOCK_PERIOD_DURATION_TYPE_TIMEBASE (0x0F) -#define EMBER_AF_BLOCK_PERIOD_DURATION_TYPE_CONTROL (0xF0) -#define EMBER_AF_BLOCK_PERIOD_DURATION_TYPE_CONTROL_OFFSET (4) -#define EMBER_AF_CONVERSION_FACTOR_TRAILING_DIGIT_TRAILING_DIGIT (0xF0) -#define EMBER_AF_CONVERSION_FACTOR_TRAILING_DIGIT_TRAILING_DIGIT_OFFSET (4) -#define EMBER_AF_CALORIFIC_VALUE_TRAILING_DIGIT_TRAILING_DIGIT (0xF0) -#define EMBER_AF_CALORIFIC_VALUE_TRAILING_DIGIT_TRAILING_DIGIT_OFFSET (4) -#define EMBER_AF_PRICE_TRAILING_DIGIT_TRAILING_DIGIT (0xF0) -#define EMBER_AF_PRICE_TRAILING_DIGIT_TRAILING_DIGIT_OFFSET (4) -#define EMBER_AF_C_O2_TRAILING_DIGIT_TRAILING_DIGIT (0xF0) -#define EMBER_AF_C_O2_TRAILING_DIGIT_TRAILING_DIGIT_OFFSET (4) -#define EMBER_AF_PRICE_TRAILING_DIGIT_AND_PRICE_TIER_PRICE_TIER (0x0F) -#define EMBER_AF_PRICE_TRAILING_DIGIT_AND_PRICE_TIER_TRAILING_DIGIT (0xF0) -#define EMBER_AF_PRICE_TRAILING_DIGIT_AND_PRICE_TIER_TRAILING_DIGIT_OFFSET (4) -#define EMBER_AF_PRICE_NUMBER_OF_PRICE_TIERS_AND_REGISTER_TIER_REGISTER_TIER (0x0F) -#define EMBER_AF_PRICE_NUMBER_OF_PRICE_TIERS_AND_REGISTER_TIER_NUMBER_OF_PRICE_TIERS (0xF0) -#define EMBER_AF_PRICE_NUMBER_OF_PRICE_TIERS_AND_REGISTER_TIER_NUMBER_OF_PRICE_TIERS_OFFSET (4) #define EMBER_AF_ALTERNATE_COST_TRAILING_DIGIT_TRAILING_DIGIT (0xF0) #define EMBER_AF_ALTERNATE_COST_TRAILING_DIGIT_TRAILING_DIGIT_OFFSET (4) -#define EMBER_AF_PRICE_CONTROL_MASK_PRICE_ACKNOWLEDGEMENT_REQUIRED (0x01) -#define EMBER_AF_PRICE_CONTROL_MASK_TOTAL_TIERS_EXCEEDS15 (0x02) -#define EMBER_AF_PRICE_CONTROL_MASK_TOTAL_TIERS_EXCEEDS15_OFFSET (1) -#define EMBER_AF_BLOCK_PERIOD_CONTROL_PRICE_ACKNOWLEDGEMENT_REQUIREMENT (0x01) -#define EMBER_AF_BLOCK_PERIOD_CONTROL_REPEATING_BLOCK (0x02) -#define EMBER_AF_BLOCK_PERIOD_CONTROL_REPEATING_BLOCK_OFFSET (1) -#define EMBER_AF_TARIFF_TYPE_CHARGING_SCHEME_TARIFF_TYPE (0x0F) -#define EMBER_AF_TARIFF_TYPE_CHARGING_SCHEME_TARIFF_CHARGING_SCHEME (0xF0) -#define EMBER_AF_TARIFF_TYPE_CHARGING_SCHEME_TARIFF_CHARGING_SCHEME_OFFSET (4) -#define EMBER_AF_PRICE_MATRIX_SUB_PAYLOAD_CONTROL_TOU_BASED (0x01) -#define EMBER_AF_BLOCK_THRESHOLD_SUB_PAYLOAD_CONTROL_APPLY_TO_ALL_TOU_TIERS_OR_WHEN_BLOCK_ONLY_CHARGING (0x01) -#define EMBER_AF_BILLING_PERIOD_DURATION_DURATION (0x3FFFFF) -#define EMBER_AF_BILLING_PERIOD_DURATION_UNITS (0xC00000) -#define EMBER_AF_BILLING_PERIOD_DURATION_UNITS_OFFSET (22) -#define EMBER_AF_BILLING_PERIOD_DURATION_TYPE_TIMEBASE (0x0F) -#define EMBER_AF_BILLING_PERIOD_DURATION_TYPE_CONTROL (0xF0) -#define EMBER_AF_BILLING_PERIOD_DURATION_TYPE_CONTROL_OFFSET (4) -#define EMBER_AF_BILL_TRAILING_DIGIT_TRAILING_DIGIT (0xF0) -#define EMBER_AF_BILL_TRAILING_DIGIT_TRAILING_DIGIT_OFFSET (4) -#define EMBER_AF_CURRENCY_CHANGE_CONTROL_CLEAR_BILLING_INFO (0x00000001) -#define EMBER_AF_CURRENCY_CHANGE_CONTROL_CONVERT_BILLING_INFO_USING_NEW_CURRENCY (0x00000002) -#define EMBER_AF_CURRENCY_CHANGE_CONTROL_CONVERT_BILLING_INFO_USING_NEW_CURRENCY_OFFSET (1) -#define EMBER_AF_CURRENCY_CHANGE_CONTROL_CLEAR_OLD_CONSUMPTION_DATA (0x00000004) -#define EMBER_AF_CURRENCY_CHANGE_CONTROL_CLEAR_OLD_CONSUMPTION_DATA_OFFSET (2) -#define EMBER_AF_CURRENCY_CHANGE_CONTROL_CONVERT_OLD_CONSUMPTION_DATA_USING_NEW_CURRENCY (0x00000008) -#define EMBER_AF_CURRENCY_CHANGE_CONTROL_CONVERT_OLD_CONSUMPTION_DATA_USING_NEW_CURRENCY_OFFSET (3) -#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER1 (0x0002) -#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER1_OFFSET (1) -#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER2 (0x0004) -#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER2_OFFSET (2) -#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER3 (0x0008) -#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER3_OFFSET (3) -#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER4 (0x0010) -#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER4_OFFSET (4) -#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER5 (0x0020) -#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER5_OFFSET (5) -#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER6 (0x0040) -#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER6_OFFSET (6) -#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER7 (0x0080) -#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER7_OFFSET (7) -#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER8 (0x0100) -#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER8_OFFSET (8) -#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER9 (0x0200) -#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER9_OFFSET (9) -#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER10 (0x0400) -#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER10_OFFSET (10) -#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER11 (0x0800) -#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER11_OFFSET (11) -#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER12 (0x1000) -#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER12_OFFSET (12) -#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER13 (0x2000) -#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER13_OFFSET (13) -#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER14 (0x4000) -#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER14_OFFSET (14) -#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER15 (0x8000) -#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER15_OFFSET (15) +#define EMBER_AF_AMI_CANCEL_CONTROL_TERMINATE_WITH_RANDOMIZATION (0x01) +#define EMBER_AF_AMI_CANCEL_CONTROL_TERMINATE_WITH_RANDOMIZATION_OFFSET (0) #define EMBER_AF_AMI_COMMAND_OPTIONS_REQUEST_RX_ON_WHEN_IDLE (0x01) +#define EMBER_AF_AMI_COMMAND_OPTIONS_REQUEST_RX_ON_WHEN_IDLE_OFFSET (0) #define EMBER_AF_AMI_DEVICE_CLASS_HVAC_COMPRESSOR_OR_FURNACE (0x0001) +#define EMBER_AF_AMI_DEVICE_CLASS_HVAC_COMPRESSOR_OR_FURNACE_OFFSET (0) #define EMBER_AF_AMI_DEVICE_CLASS_STRIP_HEAT_BASEBOARD_HEAT (0x0002) #define EMBER_AF_AMI_DEVICE_CLASS_STRIP_HEAT_BASEBOARD_HEAT_OFFSET (1) #define EMBER_AF_AMI_DEVICE_CLASS_WATER_HEATER (0x0004) @@ -2730,10 +2650,11 @@ typedef enum #define EMBER_AF_AMI_DEVICE_CLASS_GENERATION_SYSTEMS (0x0800) #define EMBER_AF_AMI_DEVICE_CLASS_GENERATION_SYSTEMS_OFFSET (11) #define EMBER_AF_AMI_EVENT_CONTROL_RANDOMIZED_START_TIME (0x01) +#define EMBER_AF_AMI_EVENT_CONTROL_RANDOMIZED_START_TIME_OFFSET (0) #define EMBER_AF_AMI_EVENT_CONTROL_RANDOMIZED_END_TIME (0x02) #define EMBER_AF_AMI_EVENT_CONTROL_RANDOMIZED_END_TIME_OFFSET (1) -#define EMBER_AF_AMI_CANCEL_CONTROL_TERMINATE_WITH_RANDOMIZATION (0x01) #define EMBER_AF_AMI_METER_STATUS_CHECK_METER (0x01) +#define EMBER_AF_AMI_METER_STATUS_CHECK_METER_OFFSET (0) #define EMBER_AF_AMI_METER_STATUS_LOW_BATTERY (0x02) #define EMBER_AF_AMI_METER_STATUS_LOW_BATTERY_OFFSET (1) #define EMBER_AF_AMI_METER_STATUS_TAMPER_DETECT (0x04) @@ -2748,324 +2669,8 @@ typedef enum #define EMBER_AF_AMI_METER_STATUS_SERVICE_DISCONNECT_OPEN_OFFSET (6) #define EMBER_AF_AMI_METER_STATUS_RESERVED (0x80) #define EMBER_AF_AMI_METER_STATUS_RESERVED_OFFSET (7) -#define EMBER_AF_METERING_STATUS_ELECTRICITY_CHECK_METER (0x01) -#define EMBER_AF_METERING_STATUS_ELECTRICITY_LOW_BATTERY (0x02) -#define EMBER_AF_METERING_STATUS_ELECTRICITY_LOW_BATTERY_OFFSET (1) -#define EMBER_AF_METERING_STATUS_ELECTRICITY_TAMPER_DETECT (0x04) -#define EMBER_AF_METERING_STATUS_ELECTRICITY_TAMPER_DETECT_OFFSET (2) -#define EMBER_AF_METERING_STATUS_ELECTRICITY_POWER_FAILURE (0x08) -#define EMBER_AF_METERING_STATUS_ELECTRICITY_POWER_FAILURE_OFFSET (3) -#define EMBER_AF_METERING_STATUS_ELECTRICITY_POWER_QUALITY (0x10) -#define EMBER_AF_METERING_STATUS_ELECTRICITY_POWER_QUALITY_OFFSET (4) -#define EMBER_AF_METERING_STATUS_ELECTRICITY_LEAK_DETECT (0x20) -#define EMBER_AF_METERING_STATUS_ELECTRICITY_LEAK_DETECT_OFFSET (5) -#define EMBER_AF_METERING_STATUS_ELECTRICITY_SERVICE_DISCONNECT_OPEN (0x40) -#define EMBER_AF_METERING_STATUS_ELECTRICITY_SERVICE_DISCONNECT_OPEN_OFFSET (6) -#define EMBER_AF_METERING_STATUS_ELECTRICITY_RESERVED (0x80) -#define EMBER_AF_METERING_STATUS_ELECTRICITY_RESERVED_OFFSET (7) -#define EMBER_AF_METERING_STATUS_GAS_CHECK_METER (0x01) -#define EMBER_AF_METERING_STATUS_GAS_LOW_BATTERY (0x02) -#define EMBER_AF_METERING_STATUS_GAS_LOW_BATTERY_OFFSET (1) -#define EMBER_AF_METERING_STATUS_GAS_TAMPER_DETECT (0x04) -#define EMBER_AF_METERING_STATUS_GAS_TAMPER_DETECT_OFFSET (2) -#define EMBER_AF_METERING_STATUS_GAS_NOT_DEFINED (0x08) -#define EMBER_AF_METERING_STATUS_GAS_NOT_DEFINED_OFFSET (3) -#define EMBER_AF_METERING_STATUS_GAS_LOW_PRESSURE (0x10) -#define EMBER_AF_METERING_STATUS_GAS_LOW_PRESSURE_OFFSET (4) -#define EMBER_AF_METERING_STATUS_GAS_LEAK_DETECT (0x20) -#define EMBER_AF_METERING_STATUS_GAS_LEAK_DETECT_OFFSET (5) -#define EMBER_AF_METERING_STATUS_GAS_SERVICE_DISCONNECT (0x40) -#define EMBER_AF_METERING_STATUS_GAS_SERVICE_DISCONNECT_OFFSET (6) -#define EMBER_AF_METERING_STATUS_GAS_REVERSE_FLOW (0x80) -#define EMBER_AF_METERING_STATUS_GAS_REVERSE_FLOW_OFFSET (7) -#define EMBER_AF_METERING_STATUS_WATER_CHECK_METER (0x01) -#define EMBER_AF_METERING_STATUS_WATER_LOW_BATTERY (0x02) -#define EMBER_AF_METERING_STATUS_WATER_LOW_BATTERY_OFFSET (1) -#define EMBER_AF_METERING_STATUS_WATER_TAMPER_DETECT (0x04) -#define EMBER_AF_METERING_STATUS_WATER_TAMPER_DETECT_OFFSET (2) -#define EMBER_AF_METERING_STATUS_WATER_PIPE_EMPTY (0x08) -#define EMBER_AF_METERING_STATUS_WATER_PIPE_EMPTY_OFFSET (3) -#define EMBER_AF_METERING_STATUS_WATER_LOW_PRESSURE (0x10) -#define EMBER_AF_METERING_STATUS_WATER_LOW_PRESSURE_OFFSET (4) -#define EMBER_AF_METERING_STATUS_WATER_LEAK_DETECT (0x20) -#define EMBER_AF_METERING_STATUS_WATER_LEAK_DETECT_OFFSET (5) -#define EMBER_AF_METERING_STATUS_WATER_SERVICE_DISCONNECT (0x40) -#define EMBER_AF_METERING_STATUS_WATER_SERVICE_DISCONNECT_OFFSET (6) -#define EMBER_AF_METERING_STATUS_WATER_REVERSE_FLOW (0x80) -#define EMBER_AF_METERING_STATUS_WATER_REVERSE_FLOW_OFFSET (7) -#define EMBER_AF_METERING_STATUS_HEAT_AND_COOLING_CHECK_METER (0x01) -#define EMBER_AF_METERING_STATUS_HEAT_AND_COOLING_LOW_BATTERY (0x02) -#define EMBER_AF_METERING_STATUS_HEAT_AND_COOLING_LOW_BATTERY_OFFSET (1) -#define EMBER_AF_METERING_STATUS_HEAT_AND_COOLING_TAMPER_DETECT (0x04) -#define EMBER_AF_METERING_STATUS_HEAT_AND_COOLING_TAMPER_DETECT_OFFSET (2) -#define EMBER_AF_METERING_STATUS_HEAT_AND_COOLING_TEMPERATURE_SENSOR (0x08) -#define EMBER_AF_METERING_STATUS_HEAT_AND_COOLING_TEMPERATURE_SENSOR_OFFSET (3) -#define EMBER_AF_METERING_STATUS_HEAT_AND_COOLING_BURST_DETECT (0x10) -#define EMBER_AF_METERING_STATUS_HEAT_AND_COOLING_BURST_DETECT_OFFSET (4) -#define EMBER_AF_METERING_STATUS_HEAT_AND_COOLING_LEAK_DETECT (0x20) -#define EMBER_AF_METERING_STATUS_HEAT_AND_COOLING_LEAK_DETECT_OFFSET (5) -#define EMBER_AF_METERING_STATUS_HEAT_AND_COOLING_SERVICE_DISCONNECT (0x40) -#define EMBER_AF_METERING_STATUS_HEAT_AND_COOLING_SERVICE_DISCONNECT_OFFSET (6) -#define EMBER_AF_METERING_STATUS_HEAT_AND_COOLING_FLOW_SENSOR (0x80) -#define EMBER_AF_METERING_STATUS_HEAT_AND_COOLING_FLOW_SENSOR_OFFSET (7) -#define EMBER_AF_METERING_EXTENDED_STATUS_METER_COVER_REMOVED (0x0000000000000001) -#define EMBER_AF_METERING_EXTENDED_STATUS_STRONG_MAGNETIC_FIELD_DETECTED (0x0000000000000002) -#define EMBER_AF_METERING_EXTENDED_STATUS_STRONG_MAGNETIC_FIELD_DETECTED_OFFSET (1) -#define EMBER_AF_METERING_EXTENDED_STATUS_BATTERY_FAILURE (0x0000000000000004) -#define EMBER_AF_METERING_EXTENDED_STATUS_BATTERY_FAILURE_OFFSET (2) -#define EMBER_AF_METERING_EXTENDED_STATUS_PROGRAM_MEMORY_ERROR (0x0000000000000008) -#define EMBER_AF_METERING_EXTENDED_STATUS_PROGRAM_MEMORY_ERROR_OFFSET (3) -#define EMBER_AF_METERING_EXTENDED_STATUS_RAM_ERROR (0x0000000000000010) -#define EMBER_AF_METERING_EXTENDED_STATUS_RAM_ERROR_OFFSET (4) -#define EMBER_AF_METERING_EXTENDED_STATUS_NV_MEMORY_ERROR (0x0000000000000020) -#define EMBER_AF_METERING_EXTENDED_STATUS_NV_MEMORY_ERROR_OFFSET (5) -#define EMBER_AF_METERING_EXTENDED_STATUS_MEASUREMENT_SYSTEM_ERROR (0x0000000000000040) -#define EMBER_AF_METERING_EXTENDED_STATUS_MEASUREMENT_SYSTEM_ERROR_OFFSET (6) -#define EMBER_AF_METERING_EXTENDED_STATUS_WATCHDOG_ERROR (0x0000000000000080) -#define EMBER_AF_METERING_EXTENDED_STATUS_WATCHDOG_ERROR_OFFSET (7) -#define EMBER_AF_METERING_EXTENDED_STATUS_SUPPLY_DISCONNECT_FAILURE (0x0000000000000100) -#define EMBER_AF_METERING_EXTENDED_STATUS_SUPPLY_DISCONNECT_FAILURE_OFFSET (8) -#define EMBER_AF_METERING_EXTENDED_STATUS_SUPPLY_CONNECT_FAILURE (0x0000000000000200) -#define EMBER_AF_METERING_EXTENDED_STATUS_SUPPLY_CONNECT_FAILURE_OFFSET (9) -#define EMBER_AF_METERING_EXTENDED_STATUS_MEASUREMENT_SW_CHANGED_TAMPERED (0x0000000000000400) -#define EMBER_AF_METERING_EXTENDED_STATUS_MEASUREMENT_SW_CHANGED_TAMPERED_OFFSET (10) -#define EMBER_AF_METERING_EXTENDED_STATUS_CLOCK_INVALID (0x0000000000000800) -#define EMBER_AF_METERING_EXTENDED_STATUS_CLOCK_INVALID_OFFSET (11) -#define EMBER_AF_METERING_EXTENDED_STATUS_TEMPERATURE_EXCEEDED (0x0000000000001000) -#define EMBER_AF_METERING_EXTENDED_STATUS_TEMPERATURE_EXCEEDED_OFFSET (12) -#define EMBER_AF_METERING_EXTENDED_STATUS_MOISTURE_DETECTED (0x0000000000002000) -#define EMBER_AF_METERING_EXTENDED_STATUS_MOISTURE_DETECTED_OFFSET (13) -#define EMBER_AF_METERING_EXTENDED_STATUS_GAS_METER_BATTERY_COVER_REMOVED (0x0000000001000000) -#define EMBER_AF_METERING_EXTENDED_STATUS_GAS_METER_BATTERY_COVER_REMOVED_OFFSET (24) -#define EMBER_AF_METERING_EXTENDED_STATUS_GAS_METER_TILT_TAMPER (0x0000000002000000) -#define EMBER_AF_METERING_EXTENDED_STATUS_GAS_METER_TILT_TAMPER_OFFSET (25) -#define EMBER_AF_METERING_EXTENDED_STATUS_GAS_METER_EXCESS_FLOW (0x0000000004000000) -#define EMBER_AF_METERING_EXTENDED_STATUS_GAS_METER_EXCESS_FLOW_OFFSET (26) -#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_LIMIT_THRESHOLD_EXCEEDED (0x0000000008000000) -#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_LIMIT_THRESHOLD_EXCEEDED_OFFSET (27) -#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_UNDER_VOLTAGE (0x0000000010000000) -#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_UNDER_VOLTAGE_OFFSET (28) -#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_OVER_VOLTAGE (0x0000000020000000) -#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_OVER_VOLTAGE_OFFSET (29) -#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_SERVICE_DISCONNECTION_REASON_OFF_DUE_TO_OVER_POWER (0x0000000040000000) -#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_SERVICE_DISCONNECTION_REASON_OFF_DUE_TO_OVER_POWER_OFFSET (30) -#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_SERVICE_DISCONNECTION_REASON_OFF_DUE_TO_OVER_VOLTAGE \ - (0x0000000080000000) -#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_SERVICE_DISCONNECTION_REASON_OFF_DUE_TO_OVER_VOLTAGE_OFFSET (31) -#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_SERVICE_DISCONNECTION_REASON_OFF_DUE_TO_REMOTE_LOAD_CONTROL \ - (0x00000000C0000000) -#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_SERVICE_DISCONNECTION_REASON_OFF_DUE_TO_REMOTE_LOAD_CONTROL_OFFSET (30) -#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_SERVICE_DISCONNECTION_REASON_OFF_BY_OTHER_REMOTE_COMMAND \ - (0x0000000100000000) -#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_SERVICE_DISCONNECTION_REASON_OFF_BY_OTHER_REMOTE_COMMAND_OFFSET (32) -#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_SERVICE_DISCONNECTION_REASON_OFF_DUE_TO_OVERHEATING_SHORT_CIRCUIT \ - (0x0000000140000000) -#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_SERVICE_DISCONNECTION_REASON_OFF_DUE_TO_OVERHEATING_SHORT_CIRCUIT_OFFSET \ - (30) -#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_SERVICE_DISCONNECTION_REASON_OFF_DUE_TO_OVERHEATING_OTHER \ - (0x0000000180000000) -#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_SERVICE_DISCONNECTION_REASON_OFF_DUE_TO_OVERHEATING_OTHER_OFFSET (31) -#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_BI_DIRECTIONAL_OPERATION (0x0000000400000000) -#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_BI_DIRECTIONAL_OPERATION_OFFSET (34) -#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_ACTIVE_POWER_RECEIVED (0x0000000800000000) -#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_ACTIVE_POWER_RECEIVED_OFFSET (35) -#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_MODE_OF_OPERATION (0x0000001000000000) -#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_MODE_OF_OPERATION_OFFSET (36) -#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_NEW_OTA_FIRMWARE (0x00000001) -#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_CBKE_UPDATE_REQUEST (0x00000002) -#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_CBKE_UPDATE_REQUEST_OFFSET (1) -#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_TIME_SYNC (0x00000004) -#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_TIME_SYNC_OFFSET (2) -#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_STAY_AWAKE_REQUEST_HAN (0x00000010) -#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_STAY_AWAKE_REQUEST_HAN_OFFSET (4) -#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_STAY_AWAKE_REQUEST_WAN (0x00000020) -#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_STAY_AWAKE_REQUEST_WAN_OFFSET (5) -#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_PUSH_HISTORICAL_METERING_DATA_ATTRIBUTE_SET (0x000001C0) -#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_PUSH_HISTORICAL_METERING_DATA_ATTRIBUTE_SET_OFFSET (6) -#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_PUSH_HISTORICAL_PREPAYMENT_DATA_ATTRIBUTE_SET (0x00000E00) -#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_PUSH_HISTORICAL_PREPAYMENT_DATA_ATTRIBUTE_SET_OFFSET (9) -#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_PUSH_ALL_STATIC_DATA_BASIC_CLUSTER (0x00001000) -#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_PUSH_ALL_STATIC_DATA_BASIC_CLUSTER_OFFSET (12) -#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_PUSH_ALL_STATIC_DATA_METERING_CLUSTER (0x00002000) -#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_PUSH_ALL_STATIC_DATA_METERING_CLUSTER_OFFSET (13) -#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_PUSH_ALL_STATIC_DATA_PREPAYMENT_CLUSTER (0x00004000) -#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_PUSH_ALL_STATIC_DATA_PREPAYMENT_CLUSTER_OFFSET (14) -#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_NETWORK_KEY_ACTIVE (0x00008000) -#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_NETWORK_KEY_ACTIVE_OFFSET (15) -#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_DISPLAY_MESSAGE (0x00010000) -#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_DISPLAY_MESSAGE_OFFSET (16) -#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_CANCEL_ALL_MESSAGES (0x00020000) -#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_CANCEL_ALL_MESSAGES_OFFSET (17) -#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_CHANGE_SUPPLY (0x00040000) -#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_CHANGE_SUPPLY_OFFSET (18) -#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_LOCAL_CHANGE_SUPPLY (0x00080000) -#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_LOCAL_CHANGE_SUPPLY_OFFSET (19) -#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_SET_UNCONTROLLED_FLOW_THRESHOLD (0x00100000) -#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_SET_UNCONTROLLED_FLOW_THRESHOLD_OFFSET (20) -#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_TUNNEL_MESSAGE_PENDING (0x00200000) -#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_TUNNEL_MESSAGE_PENDING_OFFSET (21) -#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_GET_SNAPSHOT (0x00400000) -#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_GET_SNAPSHOT_OFFSET (22) -#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_GET_SAMPLED_DATA (0x00800000) -#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_GET_SAMPLED_DATA_OFFSET (23) -#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_NEW_SUB_GHZ_CHANNEL_MASKS_AVAILABLE (0x01000000) -#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_NEW_SUB_GHZ_CHANNEL_MASKS_AVAILABLE_OFFSET (24) -#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_ENERGY_SCAN_PENDING (0x02000000) -#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_ENERGY_SCAN_PENDING_OFFSET (25) -#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_CHANNEL_CHANGE_PENDING (0x04000000) -#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_CHANNEL_CHANGE_PENDING_OFFSET (26) -#define EMBER_AF_SNAPSHOT_CAUSE_GENERAL (0x00000001) -#define EMBER_AF_SNAPSHOT_CAUSE_END_OF_BILLING_PERIOD (0x00000002) -#define EMBER_AF_SNAPSHOT_CAUSE_END_OF_BILLING_PERIOD_OFFSET (1) -#define EMBER_AF_SNAPSHOT_CAUSE_END_OF_BLOCK_PERIOD (0x00000004) -#define EMBER_AF_SNAPSHOT_CAUSE_END_OF_BLOCK_PERIOD_OFFSET (2) -#define EMBER_AF_SNAPSHOT_CAUSE_CHANGE_OF_TARIFF_INFORMATION (0x00000008) -#define EMBER_AF_SNAPSHOT_CAUSE_CHANGE_OF_TARIFF_INFORMATION_OFFSET (3) -#define EMBER_AF_SNAPSHOT_CAUSE_CHANGE_OF_PRICE_MATRIX (0x00000010) -#define EMBER_AF_SNAPSHOT_CAUSE_CHANGE_OF_PRICE_MATRIX_OFFSET (4) -#define EMBER_AF_SNAPSHOT_CAUSE_CHANGE_OF_BLOCK_THRESHOLDS (0x00000020) -#define EMBER_AF_SNAPSHOT_CAUSE_CHANGE_OF_BLOCK_THRESHOLDS_OFFSET (5) -#define EMBER_AF_SNAPSHOT_CAUSE_CHANGE_OF_CV (0x00000040) -#define EMBER_AF_SNAPSHOT_CAUSE_CHANGE_OF_CV_OFFSET (6) -#define EMBER_AF_SNAPSHOT_CAUSE_CHANGE_OF_CF (0x00000080) -#define EMBER_AF_SNAPSHOT_CAUSE_CHANGE_OF_CF_OFFSET (7) -#define EMBER_AF_SNAPSHOT_CAUSE_CHANGE_OF_CALENDAR (0x00000100) -#define EMBER_AF_SNAPSHOT_CAUSE_CHANGE_OF_CALENDAR_OFFSET (8) -#define EMBER_AF_SNAPSHOT_CAUSE_CRITICAL_PEAK_PRICING (0x00000200) -#define EMBER_AF_SNAPSHOT_CAUSE_CRITICAL_PEAK_PRICING_OFFSET (9) -#define EMBER_AF_SNAPSHOT_CAUSE_MANUALLY_TRIGGERED_FROM_CLIENT (0x00000400) -#define EMBER_AF_SNAPSHOT_CAUSE_MANUALLY_TRIGGERED_FROM_CLIENT_OFFSET (10) -#define EMBER_AF_SNAPSHOT_CAUSE_END_OF_RESOLVE_PERIOD (0x00000800) -#define EMBER_AF_SNAPSHOT_CAUSE_END_OF_RESOLVE_PERIOD_OFFSET (11) -#define EMBER_AF_SNAPSHOT_CAUSE_CHANGE_OF_TENANCY (0x00001000) -#define EMBER_AF_SNAPSHOT_CAUSE_CHANGE_OF_TENANCY_OFFSET (12) -#define EMBER_AF_SNAPSHOT_CAUSE_CHANGE_OF_SUPPLIER (0x00002000) -#define EMBER_AF_SNAPSHOT_CAUSE_CHANGE_OF_SUPPLIER_OFFSET (13) -#define EMBER_AF_SNAPSHOT_CAUSE_CHANGE_OF_MODE (0x00004000) -#define EMBER_AF_SNAPSHOT_CAUSE_CHANGE_OF_MODE_OFFSET (14) -#define EMBER_AF_SNAPSHOT_CAUSE_DEBT_PAYMENT (0x00008000) -#define EMBER_AF_SNAPSHOT_CAUSE_DEBT_PAYMENT_OFFSET (15) -#define EMBER_AF_SNAPSHOT_CAUSE_SCHEDULED_SNAPSHOT (0x00010000) -#define EMBER_AF_SNAPSHOT_CAUSE_SCHEDULED_SNAPSHOT_OFFSET (16) -#define EMBER_AF_SNAPSHOT_CAUSE_OTA_FIRMWARE_DOWNLOAD (0x00020000) -#define EMBER_AF_SNAPSHOT_CAUSE_OTA_FIRMWARE_DOWNLOAD_OFFSET (17) -#define EMBER_AF_SUPPLY_CONTROL_BITS_ACKNOWLEDGE_REQUIRED (0x01) -#define EMBER_AF_MESSAGING_CONTROL_MASK_TRANS_MECHANISM (0x03) -#define EMBER_AF_MESSAGING_CONTROL_MASK_MESSAGE_URGENCY (0x0C) -#define EMBER_AF_MESSAGING_CONTROL_MASK_MESSAGE_URGENCY_OFFSET (2) -#define EMBER_AF_MESSAGING_CONTROL_MASK_ENHANCED_CONFIRMATION_REQUEST (0x20) -#define EMBER_AF_MESSAGING_CONTROL_MASK_ENHANCED_CONFIRMATION_REQUEST_OFFSET (5) -#define EMBER_AF_MESSAGING_CONTROL_MASK_MESSAGE_CONFIRMATION (0x80) -#define EMBER_AF_MESSAGING_CONTROL_MASK_MESSAGE_CONFIRMATION_OFFSET (7) -#define EMBER_AF_MESSAGING_EXTENDED_CONTROL_MASK_MESSAGE_CONFIRMATION_STATUS (0x01) -#define EMBER_AF_MESSAGING_CONFIRMATION_CONTROL_NO_RETURNED (0x01) -#define EMBER_AF_MESSAGING_CONFIRMATION_CONTROL_YES_RETURNED (0x02) -#define EMBER_AF_MESSAGING_CONFIRMATION_CONTROL_YES_RETURNED_OFFSET (1) -#define EMBER_AF_PAYMENT_CONTROL_CONFIGURATION_DISCONNECTION_ENABLED (0x0001) -#define EMBER_AF_PAYMENT_CONTROL_CONFIGURATION_PREPAYMENT_ENABLED (0x0002) -#define EMBER_AF_PAYMENT_CONTROL_CONFIGURATION_PREPAYMENT_ENABLED_OFFSET (1) -#define EMBER_AF_PAYMENT_CONTROL_CONFIGURATION_CREDIT_MANAGEMENT_ENABLED (0x0004) -#define EMBER_AF_PAYMENT_CONTROL_CONFIGURATION_CREDIT_MANAGEMENT_ENABLED_OFFSET (2) -#define EMBER_AF_PAYMENT_CONTROL_CONFIGURATION_CREDIT_DISPLAY_ENABLED (0x0010) -#define EMBER_AF_PAYMENT_CONTROL_CONFIGURATION_CREDIT_DISPLAY_ENABLED_OFFSET (4) -#define EMBER_AF_PAYMENT_CONTROL_CONFIGURATION_ACCOUNT_BASE (0x0040) -#define EMBER_AF_PAYMENT_CONTROL_CONFIGURATION_ACCOUNT_BASE_OFFSET (6) -#define EMBER_AF_PAYMENT_CONTROL_CONFIGURATION_CONTACTOR_FITTED (0x0080) -#define EMBER_AF_PAYMENT_CONTROL_CONFIGURATION_CONTACTOR_FITTED_OFFSET (7) -#define EMBER_AF_PAYMENT_CONTROL_CONFIGURATION_STANDING_CHARGE_CONFIGURATION (0x0100) -#define EMBER_AF_PAYMENT_CONTROL_CONFIGURATION_STANDING_CHARGE_CONFIGURATION_OFFSET (8) -#define EMBER_AF_PAYMENT_CONTROL_CONFIGURATION_EMERGENCY_STANDING_CHARGE_CONFIGURATION (0x0200) -#define EMBER_AF_PAYMENT_CONTROL_CONFIGURATION_EMERGENCY_STANDING_CHARGE_CONFIGURATION_OFFSET (9) -#define EMBER_AF_PAYMENT_CONTROL_CONFIGURATION_DEBT_CONFIGURATION (0x0400) -#define EMBER_AF_PAYMENT_CONTROL_CONFIGURATION_DEBT_CONFIGURATION_OFFSET (10) -#define EMBER_AF_PAYMENT_CONTROL_CONFIGURATION_EMERGENCY_DEBT_CONFIGURATION (0x0800) -#define EMBER_AF_PAYMENT_CONTROL_CONFIGURATION_EMERGENCY_DEBT_CONFIGURATION_OFFSET (11) -#define EMBER_AF_CREDIT_STATUS_CREDIT_OK (0x01) -#define EMBER_AF_CREDIT_STATUS_LOW_CREDIT (0x02) -#define EMBER_AF_CREDIT_STATUS_LOW_CREDIT_OFFSET (1) -#define EMBER_AF_CREDIT_STATUS_EMERGENCY_CREDIT_ENABLED (0x04) -#define EMBER_AF_CREDIT_STATUS_EMERGENCY_CREDIT_ENABLED_OFFSET (2) -#define EMBER_AF_CREDIT_STATUS_EMERGENCY_CREDIT_AVAILABLE (0x08) -#define EMBER_AF_CREDIT_STATUS_EMERGENCY_CREDIT_AVAILABLE_OFFSET (3) -#define EMBER_AF_CREDIT_STATUS_EMERGENCY_CREDIT_SELECTED (0x10) -#define EMBER_AF_CREDIT_STATUS_EMERGENCY_CREDIT_SELECTED_OFFSET (4) -#define EMBER_AF_CREDIT_STATUS_EMERGENCY_CREDIT_IN_USE (0x20) -#define EMBER_AF_CREDIT_STATUS_EMERGENCY_CREDIT_IN_USE_OFFSET (5) -#define EMBER_AF_CREDIT_STATUS_CREDIT_EXHAUSTED (0x40) -#define EMBER_AF_CREDIT_STATUS_CREDIT_EXHAUSTED_OFFSET (6) -#define EMBER_AF_PREPAYMENT_ALARM_STATUS_LOW_CREDIT_WARNING (0x0001) -#define EMBER_AF_PREPAYMENT_ALARM_STATUS_TOP_UP_CODE_ERROR (0x0002) -#define EMBER_AF_PREPAYMENT_ALARM_STATUS_TOP_UP_CODE_ERROR_OFFSET (1) -#define EMBER_AF_PREPAYMENT_ALARM_STATUS_TOP_UP_CODE_ALREADY_USED (0x0004) -#define EMBER_AF_PREPAYMENT_ALARM_STATUS_TOP_UP_CODE_ALREADY_USED_OFFSET (2) -#define EMBER_AF_PREPAYMENT_ALARM_STATUS_TOP_UP_CODE_INVALID (0x0008) -#define EMBER_AF_PREPAYMENT_ALARM_STATUS_TOP_UP_CODE_INVALID_OFFSET (3) -#define EMBER_AF_PREPAYMENT_ALARM_STATUS_FRIENDLY_CREDIT_IN_USE (0x0010) -#define EMBER_AF_PREPAYMENT_ALARM_STATUS_FRIENDLY_CREDIT_IN_USE_OFFSET (4) -#define EMBER_AF_PREPAYMENT_ALARM_STATUS_FRIENDLY_CREDIT_PERIOD_END_WARNING (0x0020) -#define EMBER_AF_PREPAYMENT_ALARM_STATUS_FRIENDLY_CREDIT_PERIOD_END_WARNING_OFFSET (5) -#define EMBER_AF_PREPAYMENT_ALARM_STATUS_EC_AVAILABLE (0x0040) -#define EMBER_AF_PREPAYMENT_ALARM_STATUS_EC_AVAILABLE_OFFSET (6) -#define EMBER_AF_PREPAYMENT_ALARM_STATUS_UNAUTHORISED_ENERGY_USE (0x0080) -#define EMBER_AF_PREPAYMENT_ALARM_STATUS_UNAUTHORISED_ENERGY_USE_OFFSET (7) -#define EMBER_AF_PREPAYMENT_ALARM_STATUS_DISCONNECTED_SUPPLY_DUE_TO_CREDIT (0x0100) -#define EMBER_AF_PREPAYMENT_ALARM_STATUS_DISCONNECTED_SUPPLY_DUE_TO_CREDIT_OFFSET (8) -#define EMBER_AF_PREPAYMENT_ALARM_STATUS_DISCONNECTED_SUPPLY_DUE_TO_TAMPER (0x0200) -#define EMBER_AF_PREPAYMENT_ALARM_STATUS_DISCONNECTED_SUPPLY_DUE_TO_TAMPER_OFFSET (9) -#define EMBER_AF_PREPAYMENT_ALARM_STATUS_DISCONNECTED_SUPPLY_DUE_TO_HES (0x0400) -#define EMBER_AF_PREPAYMENT_ALARM_STATUS_DISCONNECTED_SUPPLY_DUE_TO_HES_OFFSET (10) -#define EMBER_AF_PREPAYMENT_ALARM_STATUS_PHYSICAL_ATTACK (0x0800) -#define EMBER_AF_PREPAYMENT_ALARM_STATUS_PHYSICAL_ATTACK_OFFSET (11) -#define EMBER_AF_PREPAYMENT_ALARM_STATUS_ELECTRONIC_ATTACK (0x1000) -#define EMBER_AF_PREPAYMENT_ALARM_STATUS_ELECTRONIC_ATTACK_OFFSET (12) -#define EMBER_AF_PREPAYMENT_ALARM_STATUS_MANUFACTURE_ALARM_CODE_A (0x2000) -#define EMBER_AF_PREPAYMENT_ALARM_STATUS_MANUFACTURE_ALARM_CODE_A_OFFSET (13) -#define EMBER_AF_PREPAYMENT_ALARM_STATUS_MANUFACTURE_ALARM_CODE_B (0x4000) -#define EMBER_AF_PREPAYMENT_ALARM_STATUS_MANUFACTURE_ALARM_CODE_B_OFFSET (14) -#define EMBER_AF_ORIGINATOR_ID_SUPPLY_CONTROL_BITS_ACKNOWLEDGE_REQUIRED (0x01) -#define EMBER_AF_PREPAY_SNAPSHOT_PAYLOAD_CAUSE_GENERAL (0x00000001) -#define EMBER_AF_PREPAY_SNAPSHOT_PAYLOAD_CAUSE_CHANGE_OF_TARIFF_INFORMATION (0x00000008) -#define EMBER_AF_PREPAY_SNAPSHOT_PAYLOAD_CAUSE_CHANGE_OF_TARIFF_INFORMATION_OFFSET (3) -#define EMBER_AF_PREPAY_SNAPSHOT_PAYLOAD_CAUSE_CHANGE_OF_PRICE_MATRIX (0x00000010) -#define EMBER_AF_PREPAY_SNAPSHOT_PAYLOAD_CAUSE_CHANGE_OF_PRICE_MATRIX_OFFSET (4) -#define EMBER_AF_PREPAY_SNAPSHOT_PAYLOAD_CAUSE_MANUALLY_TRIGGERED_FROM_CLIENT (0x00000400) -#define EMBER_AF_PREPAY_SNAPSHOT_PAYLOAD_CAUSE_MANUALLY_TRIGGERED_FROM_CLIENT_OFFSET (10) -#define EMBER_AF_PREPAY_SNAPSHOT_PAYLOAD_CAUSE_CHANGE_OF_TENANCY (0x00001000) -#define EMBER_AF_PREPAY_SNAPSHOT_PAYLOAD_CAUSE_CHANGE_OF_TENANCY_OFFSET (12) -#define EMBER_AF_PREPAY_SNAPSHOT_PAYLOAD_CAUSE_CHANGE_OF_SUPPLIER (0x00002000) -#define EMBER_AF_PREPAY_SNAPSHOT_PAYLOAD_CAUSE_CHANGE_OF_SUPPLIER_OFFSET (13) -#define EMBER_AF_PREPAY_SNAPSHOT_PAYLOAD_CAUSE_CHANGE_OF_METER_MODE (0x00004000) -#define EMBER_AF_PREPAY_SNAPSHOT_PAYLOAD_CAUSE_CHANGE_OF_METER_MODE_OFFSET (14) -#define EMBER_AF_PREPAY_SNAPSHOT_PAYLOAD_CAUSE_TOP_UP_ADDITION (0x00040000) -#define EMBER_AF_PREPAY_SNAPSHOT_PAYLOAD_CAUSE_TOP_UP_ADDITION_OFFSET (18) -#define EMBER_AF_PREPAY_SNAPSHOT_PAYLOAD_CAUSE_DEBT_CREDIT_ADDITION (0x00080000) -#define EMBER_AF_PREPAY_SNAPSHOT_PAYLOAD_CAUSE_DEBT_CREDIT_ADDITION_OFFSET (19) -#define EMBER_AF_FRIENDLY_CREDIT_FRIENDLY_CREDIT_ENABLED (0x01) -#define EMBER_AF_LOAD_CONTROL_STATE_RELAY_OPEN_OR_CONSUMPTION_INTERUPTED (0x01) -#define EMBER_AF_LOAD_CONTROL_STATE_EVENT_IN_PROGRESS (0x02) -#define EMBER_AF_LOAD_CONTROL_STATE_EVENT_IN_PROGRESS_OFFSET (1) -#define EMBER_AF_LOAD_CONTROL_STATE_POWER_STABILIZING (0x04) -#define EMBER_AF_LOAD_CONTROL_STATE_POWER_STABILIZING_OFFSET (2) -#define EMBER_AF_LOAD_CONTROL_STATE_OTHER_LOAD_REDUCTION (0x08) -#define EMBER_AF_LOAD_CONTROL_STATE_OTHER_LOAD_REDUCTION_OFFSET (3) -#define EMBER_AF_LOAD_CONTROL_STATE_CURRENT_FLOW_OR_CONSUMING_COMMODITY (0x10) -#define EMBER_AF_LOAD_CONTROL_STATE_CURRENT_FLOW_OR_CONSUMING_COMMODITY_OFFSET (4) -#define EMBER_AF_LOAD_CONTROL_STATE_LOAD_CALL (0x20) -#define EMBER_AF_LOAD_CONTROL_STATE_LOAD_CALL_OFFSET (5) -#define EMBER_AF_CURRENT_EVENT_STATUS_RANDOMIZED_START_TIME (0x01) -#define EMBER_AF_CURRENT_EVENT_STATUS_RANDOMIZED_DURATION (0x02) -#define EMBER_AF_CURRENT_EVENT_STATUS_RANDOMIZED_DURATION_OFFSET (1) -#define EMBER_AF_CURRENT_EVENT_STATUS_EXTENDED_BITS_PRESENT (0x04) -#define EMBER_AF_CURRENT_EVENT_STATUS_EXTENDED_BITS_PRESENT_OFFSET (2) -#define EMBER_AF_CURRENT_EVENT_STATUS_EVENT_ACTIVE (0x08) -#define EMBER_AF_CURRENT_EVENT_STATUS_EVENT_ACTIVE_OFFSET (3) -#define EMBER_AF_CURRENT_EVENT_STATUS_DEVICE_PARTICIPATING_IN_EVENT (0x10) -#define EMBER_AF_CURRENT_EVENT_STATUS_DEVICE_PARTICIPATING_IN_EVENT_OFFSET (4) -#define EMBER_AF_CURRENT_EVENT_STATUS_REDUCING_LOAD (0x20) -#define EMBER_AF_CURRENT_EVENT_STATUS_REDUCING_LOAD_OFFSET (5) -#define EMBER_AF_CURRENT_EVENT_STATUS_ON_AT_END_OF_EVENT (0x40) -#define EMBER_AF_CURRENT_EVENT_STATUS_ON_AT_END_OF_EVENT_OFFSET (6) #define EMBER_AF_AUXILIARY_LOAD_SWITCH_STATE_AUXILIARY_SWITCH1 (0x01) +#define EMBER_AF_AUXILIARY_LOAD_SWITCH_STATE_AUXILIARY_SWITCH1_OFFSET (0) #define EMBER_AF_AUXILIARY_LOAD_SWITCH_STATE_AUXILIARY_SWITCH2 (0x02) #define EMBER_AF_AUXILIARY_LOAD_SWITCH_STATE_AUXILIARY_SWITCH2_OFFSET (1) #define EMBER_AF_AUXILIARY_LOAD_SWITCH_STATE_AUXILIARY_SWITCH3 (0x04) @@ -3080,52 +2685,314 @@ typedef enum #define EMBER_AF_AUXILIARY_LOAD_SWITCH_STATE_AUXILIARY_SWITCH7_OFFSET (6) #define EMBER_AF_AUXILIARY_LOAD_SWITCH_STATE_AUXILIARY_SWITCH8 (0x80) #define EMBER_AF_AUXILIARY_LOAD_SWITCH_STATE_AUXILIARY_SWITCH8_OFFSET (7) -#define EMBER_AF_PROPOSED_CHANGE_CONTROL_PRE_SNAPSHOTS (0x00000001) -#define EMBER_AF_PROPOSED_CHANGE_CONTROL_POST_SNAPSHOTS (0x00000002) -#define EMBER_AF_PROPOSED_CHANGE_CONTROL_POST_SNAPSHOTS_OFFSET (1) -#define EMBER_AF_PROPOSED_CHANGE_CONTROL_RESET_CREDIT_REGISTER (0x00000004) -#define EMBER_AF_PROPOSED_CHANGE_CONTROL_RESET_CREDIT_REGISTER_OFFSET (2) -#define EMBER_AF_PROPOSED_CHANGE_CONTROL_RESET_DEBIT_REGISTER (0x00000008) -#define EMBER_AF_PROPOSED_CHANGE_CONTROL_RESET_DEBIT_REGISTER_OFFSET (3) -#define EMBER_AF_PROPOSED_CHANGE_CONTROL_RESET_BILLING_PERIOD (0x00000010) -#define EMBER_AF_PROPOSED_CHANGE_CONTROL_RESET_BILLING_PERIOD_OFFSET (4) -#define EMBER_AF_PROPOSED_CHANGE_CONTROL_CLEAR_TARIFF_PLAN (0x00000020) -#define EMBER_AF_PROPOSED_CHANGE_CONTROL_CLEAR_TARIFF_PLAN_OFFSET (5) -#define EMBER_AF_PROPOSED_CHANGE_CONTROL_CLEAR_STANDING_CHARGE (0x00000040) -#define EMBER_AF_PROPOSED_CHANGE_CONTROL_CLEAR_STANDING_CHARGE_OFFSET (6) -#define EMBER_AF_PROPOSED_CHANGE_CONTROL_BLOCK_HISTORICAL_LOAD_PROFILE_INFORMATION (0x00000080) -#define EMBER_AF_PROPOSED_CHANGE_CONTROL_BLOCK_HISTORICAL_LOAD_PROFILE_INFORMATION_OFFSET (7) -#define EMBER_AF_PROPOSED_CHANGE_CONTROL_CLEAR_HISTORICAL_LOAD_PROFILE_INFORMATION (0x00000100) -#define EMBER_AF_PROPOSED_CHANGE_CONTROL_CLEAR_HISTORICAL_LOAD_PROFILE_INFORMATION_OFFSET (8) -#define EMBER_AF_PROPOSED_CHANGE_CONTROL_CLEAR_IHD_DATA_CONSUMER (0x00000200) -#define EMBER_AF_PROPOSED_CHANGE_CONTROL_CLEAR_IHD_DATA_CONSUMER_OFFSET (9) -#define EMBER_AF_PROPOSED_CHANGE_CONTROL_CLEAR_IHD_DATA_SUPPLIER (0x00000400) -#define EMBER_AF_PROPOSED_CHANGE_CONTROL_CLEAR_IHD_DATA_SUPPLIER_OFFSET (10) -#define EMBER_AF_PROPOSED_CHANGE_CONTROL_METER_CONNECTOR_STATE_ON_OFF_ARMED (0x00001800) -#define EMBER_AF_PROPOSED_CHANGE_CONTROL_METER_CONNECTOR_STATE_ON_OFF_ARMED_OFFSET (11) -#define EMBER_AF_PROPOSED_CHANGE_CONTROL_CLEAR_TRANSACTION_LOG (0x00002000) -#define EMBER_AF_PROPOSED_CHANGE_CONTROL_CLEAR_TRANSACTION_LOG_OFFSET (13) -#define EMBER_AF_PROPOSED_CHANGE_CONTROL_CLEAR_PREPAYMENT_LOG (0x00004000) -#define EMBER_AF_PROPOSED_CHANGE_CONTROL_CLEAR_PREPAYMENT_LOG_OFFSET (14) -#define EMBER_AF_EVENT_CONFIGURATION_LOG_ACTION (0x07) -#define EMBER_AF_EVENT_CONFIGURATION_PUSH_EVENT_TO_W_A_N (0x08) -#define EMBER_AF_EVENT_CONFIGURATION_PUSH_EVENT_TO_W_A_N_OFFSET (3) -#define EMBER_AF_EVENT_CONFIGURATION_PUSH_EVENT_TO_H_A_N (0x10) -#define EMBER_AF_EVENT_CONFIGURATION_PUSH_EVENT_TO_H_A_N_OFFSET (4) -#define EMBER_AF_EVENT_CONFIGURATION_RAISE_ALARM_ZIG_BEE (0x20) -#define EMBER_AF_EVENT_CONFIGURATION_RAISE_ALARM_ZIG_BEE_OFFSET (5) -#define EMBER_AF_EVENT_CONFIGURATION_RAISE_ALARM_PHYSICAL (0x40) -#define EMBER_AF_EVENT_CONFIGURATION_RAISE_ALARM_PHYSICAL_OFFSET (6) -#define EMBER_AF_EVENT_CONTROL_LOG_ID_LOG_ID (0x0F) -#define EMBER_AF_EVENT_CONTROL_LOG_ID_EVENT_CONTROL (0xF0) -#define EMBER_AF_EVENT_CONTROL_LOG_ID_EVENT_CONTROL_OFFSET (4) -#define EMBER_AF_EVENT_ACTION_CONTROL_REPORT_EVENT_TO_H_A_N_DEVICES (0x01) -#define EMBER_AF_EVENT_ACTION_CONTROL_REPORT_EVENT_TO_W_A_N (0x02) -#define EMBER_AF_EVENT_ACTION_CONTROL_REPORT_EVENT_TO_W_A_N_OFFSET (1) -#define EMBER_AF_NUMBER_OF_EVENTS_LOG_PAYLOAD_CONTROL_LOG_PAYLOAD_CONTROL (0x0F) -#define EMBER_AF_NUMBER_OF_EVENTS_LOG_PAYLOAD_CONTROL_NUMBER_OF_EVENTS (0xF0) -#define EMBER_AF_NUMBER_OF_EVENTS_LOG_PAYLOAD_CONTROL_NUMBER_OF_EVENTS_OFFSET (4) +#define EMBER_AF_BALLAST_STATUS_NON_OPERATIONAL (0x1) +#define EMBER_AF_BALLAST_STATUS_NON_OPERATIONAL_OFFSET (0) +#define EMBER_AF_BALLAST_STATUS_LAMP_NOT_IN_SOCKET (0x2) +#define EMBER_AF_BALLAST_STATUS_LAMP_NOT_IN_SOCKET_OFFSET (1) +#define EMBER_AF_BARRIER_CONTROL_CAPABILITIES_PARTIAL_BARRIER (0x01) +#define EMBER_AF_BARRIER_CONTROL_CAPABILITIES_PARTIAL_BARRIER_OFFSET (0) +#define EMBER_AF_BARRIER_CONTROL_SAFETY_STATUS_REMOTE_LOCKOUT (0x01) +#define EMBER_AF_BARRIER_CONTROL_SAFETY_STATUS_REMOTE_LOCKOUT_OFFSET (0) +#define EMBER_AF_BARRIER_CONTROL_SAFETY_STATUS_TEMPER_DETECTED (0x02) +#define EMBER_AF_BARRIER_CONTROL_SAFETY_STATUS_TEMPER_DETECTED_OFFSET (1) +#define EMBER_AF_BARRIER_CONTROL_SAFETY_STATUS_FAILED_COMMUNICATION (0x04) +#define EMBER_AF_BARRIER_CONTROL_SAFETY_STATUS_FAILED_COMMUNICATION_OFFSET (2) +#define EMBER_AF_BARRIER_CONTROL_SAFETY_STATUS_POSITION_FAILURE (0x08) +#define EMBER_AF_BARRIER_CONTROL_SAFETY_STATUS_POSITION_FAILURE_OFFSET (3) +#define EMBER_AF_BATTERY_ALARM_MASK_VOLTAGE_TOO_LOW (0x1) +#define EMBER_AF_BATTERY_ALARM_MASK_VOLTAGE_TOO_LOW_OFFSET (0) +#define EMBER_AF_BILL_TRAILING_DIGIT_TRAILING_DIGIT (0xF0) +#define EMBER_AF_BILL_TRAILING_DIGIT_TRAILING_DIGIT_OFFSET (4) +#define EMBER_AF_BILLING_PERIOD_DURATION_DURATION (0x3FFFFF) +#define EMBER_AF_BILLING_PERIOD_DURATION_DURATION_OFFSET (0) +#define EMBER_AF_BILLING_PERIOD_DURATION_UNITS (0xC00000) +#define EMBER_AF_BILLING_PERIOD_DURATION_UNITS_OFFSET (22) +#define EMBER_AF_BILLING_PERIOD_DURATION_TYPE_TIMEBASE (0x0F) +#define EMBER_AF_BILLING_PERIOD_DURATION_TYPE_TIMEBASE_OFFSET (0) +#define EMBER_AF_BILLING_PERIOD_DURATION_TYPE_CONTROL (0xF0) +#define EMBER_AF_BILLING_PERIOD_DURATION_TYPE_CONTROL_OFFSET (4) +#define EMBER_AF_BLOCK_PERIOD_CONTROL_PRICE_ACKNOWLEDGEMENT_REQUIREMENT (0x01) +#define EMBER_AF_BLOCK_PERIOD_CONTROL_PRICE_ACKNOWLEDGEMENT_REQUIREMENT_OFFSET (0) +#define EMBER_AF_BLOCK_PERIOD_CONTROL_REPEATING_BLOCK (0x02) +#define EMBER_AF_BLOCK_PERIOD_CONTROL_REPEATING_BLOCK_OFFSET (1) +#define EMBER_AF_BLOCK_PERIOD_DURATION_TYPE_TIMEBASE (0x0F) +#define EMBER_AF_BLOCK_PERIOD_DURATION_TYPE_TIMEBASE_OFFSET (0) +#define EMBER_AF_BLOCK_PERIOD_DURATION_TYPE_CONTROL (0xF0) +#define EMBER_AF_BLOCK_PERIOD_DURATION_TYPE_CONTROL_OFFSET (4) +#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER1 (0x0002) +#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER1_OFFSET (1) +#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER2 (0x0004) +#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER2_OFFSET (2) +#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER3 (0x0008) +#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER3_OFFSET (3) +#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER4 (0x0010) +#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER4_OFFSET (4) +#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER5 (0x0020) +#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER5_OFFSET (5) +#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER6 (0x0040) +#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER6_OFFSET (6) +#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER7 (0x0080) +#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER7_OFFSET (7) +#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER8 (0x0100) +#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER8_OFFSET (8) +#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER9 (0x0200) +#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER9_OFFSET (9) +#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER10 (0x0400) +#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER10_OFFSET (10) +#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER11 (0x0800) +#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER11_OFFSET (11) +#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER12 (0x1000) +#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER12_OFFSET (12) +#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER13 (0x2000) +#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER13_OFFSET (13) +#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER14 (0x4000) +#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER14_OFFSET (14) +#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER15 (0x8000) +#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER15_OFFSET (15) +#define EMBER_AF_BLOCK_THRESHOLD_SUB_PAYLOAD_CONTROL_APPLY_TO_ALL_TOU_TIERS_OR_WHEN_BLOCK_ONLY_CHARGING (0x01) +#define EMBER_AF_BLOCK_THRESHOLD_SUB_PAYLOAD_CONTROL_APPLY_TO_ALL_TOU_TIERS_OR_WHEN_BLOCK_ONLY_CHARGING_OFFSET (0) +#define EMBER_AF_CO2_TRAILING_DIGIT_TRAILING_DIGIT (0xF0) +#define EMBER_AF_CO2_TRAILING_DIGIT_TRAILING_DIGIT_OFFSET (4) +#define EMBER_AF_CALORIFIC_VALUE_TRAILING_DIGIT_TRAILING_DIGIT (0xF0) +#define EMBER_AF_CALORIFIC_VALUE_TRAILING_DIGIT_TRAILING_DIGIT_OFFSET (4) +#define EMBER_AF_CHANNEL_MASK_CHANNEL0 (0x00000001) +#define EMBER_AF_CHANNEL_MASK_CHANNEL0_OFFSET (0) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL0 (0x00000001) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL0_OFFSET (0) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL27 (0x00000001) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL27_OFFSET (0) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL35 (0x00000001) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL35_OFFSET (0) +#define EMBER_AF_CHANNEL_MASK_915_CHANNEL0 (0x00000001) +#define EMBER_AF_CHANNEL_MASK_915_CHANNEL0_OFFSET (0) +#define EMBER_AF_CHANNEL_MASK_CHANNEL1 (0x00000002) +#define EMBER_AF_CHANNEL_MASK_CHANNEL1_OFFSET (1) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL1 (0x00000002) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL1_OFFSET (1) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL28 (0x00000002) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL28_OFFSET (1) +#define EMBER_AF_CHANNEL_MASK_853_CHANNEL36 (0x00000002) +#define EMBER_AF_CHANNEL_MASK_853_CHANNEL36_OFFSET (1) +#define EMBER_AF_CHANNEL_MASK_915_CHANNEL1 (0x00000002) +#define EMBER_AF_CHANNEL_MASK_915_CHANNEL1_OFFSET (1) +#define EMBER_AF_CHANNEL_MASK_CHANNEL2 (0x00000004) +#define EMBER_AF_CHANNEL_MASK_CHANNEL2_OFFSET (2) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL2 (0x00000004) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL2_OFFSET (2) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL29 (0x00000004) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL29_OFFSET (2) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL37 (0x00000004) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL37_OFFSET (2) +#define EMBER_AF_CHANNEL_MASK_915_CHANNEL2 (0x00000004) +#define EMBER_AF_CHANNEL_MASK_915_CHANNEL2_OFFSET (2) +#define EMBER_AF_CHANNEL_MASK_CHANNEL3 (0x00000008) +#define EMBER_AF_CHANNEL_MASK_CHANNEL3_OFFSET (3) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL3 (0x00000008) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL3_OFFSET (3) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL30 (0x00000008) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL30_OFFSET (3) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL38 (0x00000008) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL38_OFFSET (3) +#define EMBER_AF_CHANNEL_MASK_915_CHANNEL3 (0x00000008) +#define EMBER_AF_CHANNEL_MASK_915_CHANNEL3_OFFSET (3) +#define EMBER_AF_CHANNEL_MASK_CHANNEL4 (0x00000010) +#define EMBER_AF_CHANNEL_MASK_CHANNEL4_OFFSET (4) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL4 (0x00000010) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL4_OFFSET (4) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL31 (0x00000010) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL31_OFFSET (4) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL39 (0x00000010) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL39_OFFSET (4) +#define EMBER_AF_CHANNEL_MASK_915_CHANNEL4 (0x00000010) +#define EMBER_AF_CHANNEL_MASK_915_CHANNEL4_OFFSET (4) +#define EMBER_AF_CHANNEL_MASK_CHANNEL5 (0x00000020) +#define EMBER_AF_CHANNEL_MASK_CHANNEL5_OFFSET (5) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL5 (0x00000020) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL5_OFFSET (5) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL32 (0x00000020) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL32_OFFSET (5) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL40 (0x00000020) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL40_OFFSET (5) +#define EMBER_AF_CHANNEL_MASK_915_CHANNEL5 (0x00000020) +#define EMBER_AF_CHANNEL_MASK_915_CHANNEL5_OFFSET (5) +#define EMBER_AF_CHANNEL_MASK_CHANNEL6 (0x00000040) +#define EMBER_AF_CHANNEL_MASK_CHANNEL6_OFFSET (6) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL6 (0x00000040) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL6_OFFSET (6) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL33 (0x00000040) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL33_OFFSET (6) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL41 (0x00000040) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL41_OFFSET (6) +#define EMBER_AF_CHANNEL_MASK_915_CHANNEL6 (0x00000040) +#define EMBER_AF_CHANNEL_MASK_915_CHANNEL6_OFFSET (6) +#define EMBER_AF_CHANNEL_MASK_CHANNEL7 (0x00000080) +#define EMBER_AF_CHANNEL_MASK_CHANNEL7_OFFSET (7) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL7 (0x00000080) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL7_OFFSET (7) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL34 (0x00000080) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL34_OFFSET (7) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL42 (0x00000080) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL42_OFFSET (7) +#define EMBER_AF_CHANNEL_MASK_915_CHANNEL7 (0x00000080) +#define EMBER_AF_CHANNEL_MASK_915_CHANNEL7_OFFSET (7) +#define EMBER_AF_CHANNEL_MASK_CHANNEL8 (0x00000100) +#define EMBER_AF_CHANNEL_MASK_CHANNEL8_OFFSET (8) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL8 (0x00000100) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL8_OFFSET (8) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL62 (0x00000100) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL62_OFFSET (8) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL43 (0x00000100) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL43_OFFSET (8) +#define EMBER_AF_CHANNEL_MASK_915_CHANNEL8 (0x00000100) +#define EMBER_AF_CHANNEL_MASK_915_CHANNEL8_OFFSET (8) +#define EMBER_AF_CHANNEL_MASK_CHANNEL9 (0x00000200) +#define EMBER_AF_CHANNEL_MASK_CHANNEL9_OFFSET (9) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL9 (0x00000200) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL9_OFFSET (9) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL44 (0x00000200) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL44_OFFSET (9) +#define EMBER_AF_CHANNEL_MASK_915_CHANNEL9 (0x00000200) +#define EMBER_AF_CHANNEL_MASK_915_CHANNEL9_OFFSET (9) +#define EMBER_AF_CHANNEL_MASK_CHANNEL10 (0x00000400) +#define EMBER_AF_CHANNEL_MASK_CHANNEL10_OFFSET (10) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL10 (0x00000400) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL10_OFFSET (10) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL45 (0x00000400) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL45_OFFSET (10) +#define EMBER_AF_CHANNEL_MASK_915_CHANNEL10 (0x00000400) +#define EMBER_AF_CHANNEL_MASK_915_CHANNEL10_OFFSET (10) +#define EMBER_AF_CHANNEL_MASK_CHANNEL11 (0x00000800) +#define EMBER_AF_CHANNEL_MASK_CHANNEL11_OFFSET (11) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL11 (0x00000800) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL11_OFFSET (11) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL46 (0x00000800) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL46_OFFSET (11) +#define EMBER_AF_CHANNEL_MASK_915_CHANNEL11 (0x00000800) +#define EMBER_AF_CHANNEL_MASK_915_CHANNEL11_OFFSET (11) +#define EMBER_AF_CHANNEL_MASK_CHANNEL12 (0x00001000) +#define EMBER_AF_CHANNEL_MASK_CHANNEL12_OFFSET (12) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL12 (0x00001000) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL12_OFFSET (12) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL47 (0x00001000) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL47_OFFSET (12) +#define EMBER_AF_CHANNEL_MASK_915_CHANNEL12 (0x00001000) +#define EMBER_AF_CHANNEL_MASK_915_CHANNEL12_OFFSET (12) +#define EMBER_AF_CHANNEL_MASK_CHANNEL13 (0x00002000) +#define EMBER_AF_CHANNEL_MASK_CHANNEL13_OFFSET (13) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL13 (0x00002000) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL13_OFFSET (13) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL48 (0x00002000) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL48_OFFSET (13) +#define EMBER_AF_CHANNEL_MASK_915_CHANNEL13 (0x00002000) +#define EMBER_AF_CHANNEL_MASK_915_CHANNEL13_OFFSET (13) +#define EMBER_AF_CHANNEL_MASK_CHANNEL14 (0x00004000) +#define EMBER_AF_CHANNEL_MASK_CHANNEL14_OFFSET (14) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL14 (0x00004000) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL14_OFFSET (14) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL49 (0x00004000) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL49_OFFSET (14) +#define EMBER_AF_CHANNEL_MASK_915_CHANNEL14 (0x00004000) +#define EMBER_AF_CHANNEL_MASK_915_CHANNEL14_OFFSET (14) +#define EMBER_AF_CHANNEL_MASK_CHANNEL15 (0x00008000) +#define EMBER_AF_CHANNEL_MASK_CHANNEL15_OFFSET (15) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL15 (0x00008000) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL15_OFFSET (15) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL50 (0x00008000) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL50_OFFSET (15) +#define EMBER_AF_CHANNEL_MASK_915_CHANNEL15 (0x00008000) +#define EMBER_AF_CHANNEL_MASK_915_CHANNEL15_OFFSET (15) +#define EMBER_AF_CHANNEL_MASK_CHANNEL16 (0x00010000) +#define EMBER_AF_CHANNEL_MASK_CHANNEL16_OFFSET (16) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL16 (0x00010000) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL16_OFFSET (16) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL51 (0x00010000) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL51_OFFSET (16) +#define EMBER_AF_CHANNEL_MASK_915_CHANNEL16 (0x00010000) +#define EMBER_AF_CHANNEL_MASK_915_CHANNEL16_OFFSET (16) +#define EMBER_AF_CHANNEL_MASK_CHANNEL17 (0x00020000) +#define EMBER_AF_CHANNEL_MASK_CHANNEL17_OFFSET (17) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL17 (0x00020000) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL17_OFFSET (17) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL52 (0x00020000) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL52_OFFSET (17) +#define EMBER_AF_CHANNEL_MASK_915_CHANNEL17 (0x00020000) +#define EMBER_AF_CHANNEL_MASK_915_CHANNEL17_OFFSET (17) +#define EMBER_AF_CHANNEL_MASK_CHANNEL18 (0x00040000) +#define EMBER_AF_CHANNEL_MASK_CHANNEL18_OFFSET (18) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL18 (0x00040000) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL18_OFFSET (18) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL53 (0x00040000) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL53_OFFSET (18) +#define EMBER_AF_CHANNEL_MASK_915_CHANNEL18 (0x00040000) +#define EMBER_AF_CHANNEL_MASK_915_CHANNEL18_OFFSET (18) +#define EMBER_AF_CHANNEL_MASK_CHANNEL19 (0x00080000) +#define EMBER_AF_CHANNEL_MASK_CHANNEL19_OFFSET (19) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL19 (0x00080000) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL19_OFFSET (19) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL54 (0x00080000) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL54_OFFSET (19) +#define EMBER_AF_CHANNEL_MASK_915_CHANNEL19 (0x00080000) +#define EMBER_AF_CHANNEL_MASK_915_CHANNEL19_OFFSET (19) +#define EMBER_AF_CHANNEL_MASK_CHANNEL20 (0x00100000) +#define EMBER_AF_CHANNEL_MASK_CHANNEL20_OFFSET (20) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL20 (0x00100000) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL20_OFFSET (20) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL55 (0x00100000) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL55_OFFSET (20) +#define EMBER_AF_CHANNEL_MASK_915_CHANNEL20 (0x00100000) +#define EMBER_AF_CHANNEL_MASK_915_CHANNEL20_OFFSET (20) +#define EMBER_AF_CHANNEL_MASK_CHANNEL21 (0x00200000) +#define EMBER_AF_CHANNEL_MASK_CHANNEL21_OFFSET (21) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL21 (0x00200000) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL21_OFFSET (21) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL56 (0x00200000) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL56_OFFSET (21) +#define EMBER_AF_CHANNEL_MASK_915_CHANNEL21 (0x00200000) +#define EMBER_AF_CHANNEL_MASK_915_CHANNEL21_OFFSET (21) +#define EMBER_AF_CHANNEL_MASK_CHANNEL22 (0x00400000) +#define EMBER_AF_CHANNEL_MASK_CHANNEL22_OFFSET (22) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL22 (0x00400000) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL22_OFFSET (22) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL57 (0x00400000) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL57_OFFSET (22) +#define EMBER_AF_CHANNEL_MASK_915_CHANNEL22 (0x00400000) +#define EMBER_AF_CHANNEL_MASK_915_CHANNEL22_OFFSET (22) +#define EMBER_AF_CHANNEL_MASK_CHANNEL23 (0x00800000) +#define EMBER_AF_CHANNEL_MASK_CHANNEL23_OFFSET (23) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL23 (0x00800000) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL23_OFFSET (23) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL58 (0x00800000) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL58_OFFSET (23) +#define EMBER_AF_CHANNEL_MASK_915_CHANNEL23 (0x00800000) +#define EMBER_AF_CHANNEL_MASK_915_CHANNEL23_OFFSET (23) +#define EMBER_AF_CHANNEL_MASK_CHANNEL24 (0x01000000) +#define EMBER_AF_CHANNEL_MASK_CHANNEL24_OFFSET (24) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL24 (0x01000000) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL24_OFFSET (24) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL59 (0x01000000) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL59_OFFSET (24) +#define EMBER_AF_CHANNEL_MASK_915_CHANNEL24 (0x01000000) +#define EMBER_AF_CHANNEL_MASK_915_CHANNEL24_OFFSET (24) +#define EMBER_AF_CHANNEL_MASK_CHANNEL25 (0x02000000) +#define EMBER_AF_CHANNEL_MASK_CHANNEL25_OFFSET (25) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL25 (0x02000000) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL25_OFFSET (25) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL60 (0x02000000) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL60_OFFSET (25) +#define EMBER_AF_CHANNEL_MASK_915_CHANNEL25 (0x02000000) +#define EMBER_AF_CHANNEL_MASK_915_CHANNEL25_OFFSET (25) +#define EMBER_AF_CHANNEL_MASK_CHANNEL26 (0x04000000) +#define EMBER_AF_CHANNEL_MASK_CHANNEL26_OFFSET (26) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL26 (0x04000000) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL26_OFFSET (26) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL61 (0x04000000) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL61_OFFSET (26) +#define EMBER_AF_CHANNEL_MASK_915_CHANNEL26 (0x04000000) +#define EMBER_AF_CHANNEL_MASK_915_CHANNEL26_OFFSET (26) +#define EMBER_AF_CHANNEL_MASK_PAGE (0xF8000000) +#define EMBER_AF_CHANNEL_MASK_PAGE_OFFSET (27) #define EMBER_AF_CLEARED_EVENTS_LOGS_ALL_LOGS_CLEARED (0x01) +#define EMBER_AF_CLEARED_EVENTS_LOGS_ALL_LOGS_CLEARED_OFFSET (0) #define EMBER_AF_CLEARED_EVENTS_LOGS_TAMPER_LOG_CLEARED (0x02) #define EMBER_AF_CLEARED_EVENTS_LOGS_TAMPER_LOG_CLEARED_OFFSET (1) #define EMBER_AF_CLEARED_EVENTS_LOGS_FAULT_LOG_CLEARED (0x04) @@ -3136,97 +3003,254 @@ typedef enum #define EMBER_AF_CLEARED_EVENTS_LOGS_SECURITY_EVENT_LOG_CLEARED_OFFSET (4) #define EMBER_AF_CLEARED_EVENTS_LOGS_NETWORK_EVENT_LOG_CLEARED (0x20) #define EMBER_AF_CLEARED_EVENTS_LOGS_NETWORK_EVENT_LOG_CLEARED_OFFSET (5) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL0 (0x00000001) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL1 (0x00000002) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL1_OFFSET (1) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL2 (0x00000004) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL2_OFFSET (2) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL3 (0x00000008) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL3_OFFSET (3) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL4 (0x00000010) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL4_OFFSET (4) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL5 (0x00000020) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL5_OFFSET (5) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL6 (0x00000040) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL6_OFFSET (6) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL7 (0x00000080) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL7_OFFSET (7) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL8 (0x00000100) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL8_OFFSET (8) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL9 (0x00000200) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL9_OFFSET (9) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL10 (0x00000400) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL10_OFFSET (10) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL11 (0x00000800) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL11_OFFSET (11) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL12 (0x00001000) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL12_OFFSET (12) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL13 (0x00002000) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL13_OFFSET (13) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL14 (0x00004000) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL14_OFFSET (14) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL15 (0x00008000) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL15_OFFSET (15) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL16 (0x00010000) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL16_OFFSET (16) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL17 (0x00020000) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL17_OFFSET (17) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL18 (0x00040000) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL18_OFFSET (18) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL19 (0x00080000) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL19_OFFSET (19) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL20 (0x00100000) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL20_OFFSET (20) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL21 (0x00200000) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL21_OFFSET (21) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL22 (0x00400000) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL22_OFFSET (22) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL23 (0x00800000) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL23_OFFSET (23) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL24 (0x01000000) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL24_OFFSET (24) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL25 (0x02000000) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL25_OFFSET (25) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL26 (0x04000000) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL26_OFFSET (26) -#define EMBER_AF_CHANNEL_MASK_PAGE (0xF8000000) -#define EMBER_AF_CHANNEL_MASK_PAGE_OFFSET (27) -#define EMBER_AF_SCENES_COPY_MODE_COPY_ALL_SCENES (0x01) -#define EMBER_AF_ON_OFF_CONTROL_ACCEPT_ONLY_WHEN_ON (0x01) #define EMBER_AF_COLOR_CAPABILITIES_HUE_SATURATION_SUPPORTED (0x0001) +#define EMBER_AF_COLOR_CAPABILITIES_HUE_SATURATION_SUPPORTED_OFFSET (0) #define EMBER_AF_COLOR_CAPABILITIES_ENHANCED_HUE_SUPPORTED (0x0002) #define EMBER_AF_COLOR_CAPABILITIES_ENHANCED_HUE_SUPPORTED_OFFSET (1) #define EMBER_AF_COLOR_CAPABILITIES_COLOR_LOOP_SUPPORTED (0x0004) #define EMBER_AF_COLOR_CAPABILITIES_COLOR_LOOP_SUPPORTED_OFFSET (2) -#define EMBER_AF_COLOR_CAPABILITIES_X_Y_ATTRIBUTES_SUPPORTED (0x0008) -#define EMBER_AF_COLOR_CAPABILITIES_X_Y_ATTRIBUTES_SUPPORTED_OFFSET (3) +#define EMBER_AF_COLOR_CAPABILITIES_XY_ATTRIBUTES_SUPPORTED (0x0008) +#define EMBER_AF_COLOR_CAPABILITIES_XY_ATTRIBUTES_SUPPORTED_OFFSET (3) #define EMBER_AF_COLOR_CAPABILITIES_COLOR_TEMPERATURE_SUPPORTED (0x0010) #define EMBER_AF_COLOR_CAPABILITIES_COLOR_TEMPERATURE_SUPPORTED_OFFSET (4) #define EMBER_AF_COLOR_LOOP_UPDATE_FLAGS_UPDATE_ACTION (0x01) +#define EMBER_AF_COLOR_LOOP_UPDATE_FLAGS_UPDATE_ACTION_OFFSET (0) #define EMBER_AF_COLOR_LOOP_UPDATE_FLAGS_UPDATE_DIRECTION (0x02) #define EMBER_AF_COLOR_LOOP_UPDATE_FLAGS_UPDATE_DIRECTION_OFFSET (1) #define EMBER_AF_COLOR_LOOP_UPDATE_FLAGS_UPDATE_TIME (0x04) #define EMBER_AF_COLOR_LOOP_UPDATE_FLAGS_UPDATE_TIME_OFFSET (2) #define EMBER_AF_COLOR_LOOP_UPDATE_FLAGS_UPDATE_START_HUE (0x08) #define EMBER_AF_COLOR_LOOP_UPDATE_FLAGS_UPDATE_START_HUE_OFFSET (3) -#define EMBER_AF_ZIGBEE_INFORMATION_LOGICAL_TYPE (0x03) -#define EMBER_AF_ZIGBEE_INFORMATION_RX_ON_WHEN_IDLE (0x04) -#define EMBER_AF_ZIGBEE_INFORMATION_RX_ON_WHEN_IDLE_OFFSET (2) -#define EMBER_AF_ZLL_INFORMATION_FACTORY_NEW (0x01) -#define EMBER_AF_ZLL_INFORMATION_ADDRESS_ASSIGNMENT (0x02) -#define EMBER_AF_ZLL_INFORMATION_ADDRESS_ASSIGNMENT_OFFSET (1) -#define EMBER_AF_ZLL_INFORMATION_TOUCH_LINK_INITIATOR (0x10) -#define EMBER_AF_ZLL_INFORMATION_TOUCH_LINK_INITIATOR_OFFSET (4) -#define EMBER_AF_ZLL_INFORMATION_TOUCH_LINK_PRIORITY_REQUEST (0x20) -#define EMBER_AF_ZLL_INFORMATION_TOUCH_LINK_PRIORITY_REQUEST_OFFSET (5) -#define EMBER_AF_ZLL_INFORMATION_PROFILE_INTEROP (0x80) -#define EMBER_AF_ZLL_INFORMATION_PROFILE_INTEROP_OFFSET (7) -#define EMBER_AF_KEY_BITMASK_DEVELOPMENT (0x0001) -#define EMBER_AF_KEY_BITMASK_MASTER (0x0010) -#define EMBER_AF_KEY_BITMASK_MASTER_OFFSET (4) -#define EMBER_AF_KEY_BITMASK_CERTIFICATION (0x8000) -#define EMBER_AF_KEY_BITMASK_CERTIFICATION_OFFSET (15) +#define EMBER_AF_CONVERSION_FACTOR_TRAILING_DIGIT_TRAILING_DIGIT (0xF0) +#define EMBER_AF_CONVERSION_FACTOR_TRAILING_DIGIT_TRAILING_DIGIT_OFFSET (4) +#define EMBER_AF_CREDIT_STATUS_CREDIT_OK (0x01) +#define EMBER_AF_CREDIT_STATUS_CREDIT_OK_OFFSET (0) +#define EMBER_AF_CREDIT_STATUS_LOW_CREDIT (0x02) +#define EMBER_AF_CREDIT_STATUS_LOW_CREDIT_OFFSET (1) +#define EMBER_AF_CREDIT_STATUS_EMERGENCY_CREDIT_ENABLED (0x04) +#define EMBER_AF_CREDIT_STATUS_EMERGENCY_CREDIT_ENABLED_OFFSET (2) +#define EMBER_AF_CREDIT_STATUS_EMERGENCY_CREDIT_AVAILABLE (0x08) +#define EMBER_AF_CREDIT_STATUS_EMERGENCY_CREDIT_AVAILABLE_OFFSET (3) +#define EMBER_AF_CREDIT_STATUS_EMERGENCY_CREDIT_SELECTED (0x10) +#define EMBER_AF_CREDIT_STATUS_EMERGENCY_CREDIT_SELECTED_OFFSET (4) +#define EMBER_AF_CREDIT_STATUS_EMERGENCY_CREDIT_IN_USE (0x20) +#define EMBER_AF_CREDIT_STATUS_EMERGENCY_CREDIT_IN_USE_OFFSET (5) +#define EMBER_AF_CREDIT_STATUS_CREDIT_EXHAUSTED (0x40) +#define EMBER_AF_CREDIT_STATUS_CREDIT_EXHAUSTED_OFFSET (6) +#define EMBER_AF_CURRENCY_CHANGE_CONTROL_CLEAR_BILLING_INFO (0x01) +#define EMBER_AF_CURRENCY_CHANGE_CONTROL_CLEAR_BILLING_INFO_OFFSET (0) +#define EMBER_AF_CURRENCY_CHANGE_CONTROL_CONVERT_BILLING_INFO_USING_NEW_CURRENCY (0x02) +#define EMBER_AF_CURRENCY_CHANGE_CONTROL_CONVERT_BILLING_INFO_USING_NEW_CURRENCY_OFFSET (1) +#define EMBER_AF_CURRENCY_CHANGE_CONTROL_CLEAR_OLD_CONSUMPTION_DATA (0x04) +#define EMBER_AF_CURRENCY_CHANGE_CONTROL_CLEAR_OLD_CONSUMPTION_DATA_OFFSET (2) +#define EMBER_AF_CURRENCY_CHANGE_CONTROL_CONVERT_OLD_CONSUMPTION_DATA_USING_NEW_CURRENCY (0x08) +#define EMBER_AF_CURRENCY_CHANGE_CONTROL_CONVERT_OLD_CONSUMPTION_DATA_USING_NEW_CURRENCY_OFFSET (3) +#define EMBER_AF_CURRENT_EVENT_STATUS_RANDOMIZED_START_TIME (0x01) +#define EMBER_AF_CURRENT_EVENT_STATUS_RANDOMIZED_START_TIME_OFFSET (0) +#define EMBER_AF_CURRENT_EVENT_STATUS_RANDOMIZED_DURATION (0x02) +#define EMBER_AF_CURRENT_EVENT_STATUS_RANDOMIZED_DURATION_OFFSET (1) +#define EMBER_AF_CURRENT_EVENT_STATUS_EXTENDED_BITS_PRESENT (0x04) +#define EMBER_AF_CURRENT_EVENT_STATUS_EXTENDED_BITS_PRESENT_OFFSET (2) +#define EMBER_AF_CURRENT_EVENT_STATUS_EVENT_ACTIVE (0x08) +#define EMBER_AF_CURRENT_EVENT_STATUS_EVENT_ACTIVE_OFFSET (3) +#define EMBER_AF_CURRENT_EVENT_STATUS_DEVICE_PARTICIPATING_IN_EVENT (0x10) +#define EMBER_AF_CURRENT_EVENT_STATUS_DEVICE_PARTICIPATING_IN_EVENT_OFFSET (4) +#define EMBER_AF_CURRENT_EVENT_STATUS_REDUCING_LOAD (0x20) +#define EMBER_AF_CURRENT_EVENT_STATUS_REDUCING_LOAD_OFFSET (5) +#define EMBER_AF_CURRENT_EVENT_STATUS_ON_AT_END_OF_EVENT (0x40) +#define EMBER_AF_CURRENT_EVENT_STATUS_ON_AT_END_OF_EVENT_OFFSET (6) +#define EMBER_AF_DAY_OF_WEEK_SUNDAY (0x01) +#define EMBER_AF_DAY_OF_WEEK_SUNDAY_OFFSET (0) +#define EMBER_AF_DAY_OF_WEEK_MONDAY (0x02) +#define EMBER_AF_DAY_OF_WEEK_MONDAY_OFFSET (1) +#define EMBER_AF_DAY_OF_WEEK_TUESDAY (0x04) +#define EMBER_AF_DAY_OF_WEEK_TUESDAY_OFFSET (2) +#define EMBER_AF_DAY_OF_WEEK_WEDNESDAY (0x08) +#define EMBER_AF_DAY_OF_WEEK_WEDNESDAY_OFFSET (3) +#define EMBER_AF_DAY_OF_WEEK_THURSDAY (0x10) +#define EMBER_AF_DAY_OF_WEEK_THURSDAY_OFFSET (4) +#define EMBER_AF_DAY_OF_WEEK_FRIDAY (0x20) +#define EMBER_AF_DAY_OF_WEEK_FRIDAY_OFFSET (5) +#define EMBER_AF_DAY_OF_WEEK_SATURDAY (0x40) +#define EMBER_AF_DAY_OF_WEEK_SATURDAY_OFFSET (6) +#define EMBER_AF_DAY_OF_WEEK_AWAY_OR_VACATION (0x80) +#define EMBER_AF_DAY_OF_WEEK_AWAY_OR_VACATION_OFFSET (7) +#define EMBER_AF_DEVICE_TEMP_ALARM_MASK_TOO_LOW (0x1) +#define EMBER_AF_DEVICE_TEMP_ALARM_MASK_TOO_LOW_OFFSET (0) +#define EMBER_AF_DEVICE_TEMP_ALARM_MASK_TOO_HIGH (0x2) +#define EMBER_AF_DEVICE_TEMP_ALARM_MASK_TOO_HIGH_OFFSET (1) +#define EMBER_AF_DOOR_LOCK_DAY_OF_WEEK_SUNDAY (0x01) +#define EMBER_AF_DOOR_LOCK_DAY_OF_WEEK_SUNDAY_OFFSET (0) +#define EMBER_AF_DOOR_LOCK_DAY_OF_WEEK_MONDAY (0x02) +#define EMBER_AF_DOOR_LOCK_DAY_OF_WEEK_MONDAY_OFFSET (1) +#define EMBER_AF_DOOR_LOCK_DAY_OF_WEEK_TUESDAY (0x04) +#define EMBER_AF_DOOR_LOCK_DAY_OF_WEEK_TUESDAY_OFFSET (2) +#define EMBER_AF_DOOR_LOCK_DAY_OF_WEEK_WEDNESDAY (0x08) +#define EMBER_AF_DOOR_LOCK_DAY_OF_WEEK_WEDNESDAY_OFFSET (3) +#define EMBER_AF_DOOR_LOCK_DAY_OF_WEEK_THURSDAY (0x10) +#define EMBER_AF_DOOR_LOCK_DAY_OF_WEEK_THURSDAY_OFFSET (4) +#define EMBER_AF_DOOR_LOCK_DAY_OF_WEEK_FRIDAY (0x20) +#define EMBER_AF_DOOR_LOCK_DAY_OF_WEEK_FRIDAY_OFFSET (5) +#define EMBER_AF_DOOR_LOCK_DAY_OF_WEEK_SATURDAY (0x40) +#define EMBER_AF_DOOR_LOCK_DAY_OF_WEEK_SATURDAY_OFFSET (6) +#define EMBER_AF_ENERGY_FORMATTING_NUMBER_OF_DIGITS_TO_THE_RIGHT_OF_THE_DECIMAL_POINT (0x07) +#define EMBER_AF_ENERGY_FORMATTING_NUMBER_OF_DIGITS_TO_THE_RIGHT_OF_THE_DECIMAL_POINT_OFFSET (0) +#define EMBER_AF_ENERGY_FORMATTING_NUMBER_OF_DIGITS_TO_THE_LEFT_OF_THE_DECIMAL_POINT (0x78) +#define EMBER_AF_ENERGY_FORMATTING_NUMBER_OF_DIGITS_TO_THE_LEFT_OF_THE_DECIMAL_POINT_OFFSET (3) +#define EMBER_AF_ENERGY_FORMATTING_SUPPRESS_LEADING_ZEROS (0x80) +#define EMBER_AF_ENERGY_FORMATTING_SUPPRESS_LEADING_ZEROS_OFFSET (7) +#define EMBER_AF_EVENT_ACTION_CONTROL_REPORT_EVENT_TO_HAN_DEVICES (0x01) +#define EMBER_AF_EVENT_ACTION_CONTROL_REPORT_EVENT_TO_HAN_DEVICES_OFFSET (0) +#define EMBER_AF_EVENT_ACTION_CONTROL_REPORT_EVENT_TO_WAN (0x02) +#define EMBER_AF_EVENT_ACTION_CONTROL_REPORT_EVENT_TO_WAN_OFFSET (1) +#define EMBER_AF_EVENT_CONFIGURATION_LOG_ACTION (0x07) +#define EMBER_AF_EVENT_CONFIGURATION_LOG_ACTION_OFFSET (0) +#define EMBER_AF_EVENT_CONFIGURATION_PUSH_EVENT_TO_WAN (0x08) +#define EMBER_AF_EVENT_CONFIGURATION_PUSH_EVENT_TO_WAN_OFFSET (3) +#define EMBER_AF_EVENT_CONFIGURATION_PUSH_EVENT_TO_HAN (0x10) +#define EMBER_AF_EVENT_CONFIGURATION_PUSH_EVENT_TO_HAN_OFFSET (4) +#define EMBER_AF_EVENT_CONFIGURATION_RAISE_ALARM_ZIG_BEE (0x20) +#define EMBER_AF_EVENT_CONFIGURATION_RAISE_ALARM_ZIG_BEE_OFFSET (5) +#define EMBER_AF_EVENT_CONFIGURATION_RAISE_ALARM_PHYSICAL (0x40) +#define EMBER_AF_EVENT_CONFIGURATION_RAISE_ALARM_PHYSICAL_OFFSET (6) +#define EMBER_AF_EVENT_CONTROL_LOG_ID_LOG_ID (0x0F) +#define EMBER_AF_EVENT_CONTROL_LOG_ID_LOG_ID_OFFSET (0) +#define EMBER_AF_EVENT_CONTROL_LOG_ID_EVENT_CONTROL (0xF0) +#define EMBER_AF_EVENT_CONTROL_LOG_ID_EVENT_CONTROL_OFFSET (4) +#define EMBER_AF_FRIENDLY_CREDIT_FRIENDLY_CREDIT_ENABLED (0x01) +#define EMBER_AF_FRIENDLY_CREDIT_FRIENDLY_CREDIT_ENABLED_OFFSET (0) +#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_NEW_OTA_FIRMWARE (0x00000001) +#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_NEW_OTA_FIRMWARE_OFFSET (0) +#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_CBKE_UPDATE_REQUEST (0x00000002) +#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_CBKE_UPDATE_REQUEST_OFFSET (1) +#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_TIME_SYNC (0x00000004) +#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_TIME_SYNC_OFFSET (2) +#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_STAY_AWAKE_REQUEST_HAN (0x00000010) +#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_STAY_AWAKE_REQUEST_HAN_OFFSET (4) +#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_STAY_AWAKE_REQUEST_WAN (0x00000020) +#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_STAY_AWAKE_REQUEST_WAN_OFFSET (5) +#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_PUSH_HISTORICAL_METERING_DATA_ATTRIBUTE_SET (0x000001C0) +#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_PUSH_HISTORICAL_METERING_DATA_ATTRIBUTE_SET_OFFSET (6) +#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_PUSH_HISTORICAL_PREPAYMENT_DATA_ATTRIBUTE_SET (0x00000E00) +#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_PUSH_HISTORICAL_PREPAYMENT_DATA_ATTRIBUTE_SET_OFFSET (9) +#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_PUSH_ALL_STATIC_DATA_BASIC_CLUSTER (0x00001000) +#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_PUSH_ALL_STATIC_DATA_BASIC_CLUSTER_OFFSET (12) +#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_PUSH_ALL_STATIC_DATA_METERING_CLUSTER (0x00002000) +#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_PUSH_ALL_STATIC_DATA_METERING_CLUSTER_OFFSET (13) +#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_PUSH_ALL_STATIC_DATA_PREPAYMENT_CLUSTER (0x00004000) +#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_PUSH_ALL_STATIC_DATA_PREPAYMENT_CLUSTER_OFFSET (14) +#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_NETWORK_KEY_ACTIVE (0x00008000) +#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_NETWORK_KEY_ACTIVE_OFFSET (15) +#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_DISPLAY_MESSAGE (0x00010000) +#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_DISPLAY_MESSAGE_OFFSET (16) +#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_CANCEL_ALL_MESSAGES (0x00020000) +#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_CANCEL_ALL_MESSAGES_OFFSET (17) +#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_CHANGE_SUPPLY (0x00040000) +#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_CHANGE_SUPPLY_OFFSET (18) +#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_LOCAL_CHANGE_SUPPLY (0x00080000) +#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_LOCAL_CHANGE_SUPPLY_OFFSET (19) +#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_SET_UNCONTROLLED_FLOW_THRESHOLD (0x00100000) +#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_SET_UNCONTROLLED_FLOW_THRESHOLD_OFFSET (20) +#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_TUNNEL_MESSAGE_PENDING (0x00200000) +#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_TUNNEL_MESSAGE_PENDING_OFFSET (21) +#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_GET_SNAPSHOT (0x00400000) +#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_GET_SNAPSHOT_OFFSET (22) +#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_GET_SAMPLED_DATA (0x00800000) +#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_GET_SAMPLED_DATA_OFFSET (23) +#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_NEW_SUB_GHZ_CHANNEL_MASKS_AVAILABLE (0x01000000) +#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_NEW_SUB_GHZ_CHANNEL_MASKS_AVAILABLE_OFFSET (24) +#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_ENERGY_SCAN_PENDING (0x02000000) +#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_ENERGY_SCAN_PENDING_OFFSET (25) +#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_CHANNEL_CHANGE_PENDING (0x04000000) +#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_CHANNEL_CHANGE_PENDING_OFFSET (26) +#define EMBER_AF_GET_LOCATION_DATA_FLAGS_ABSOLUTE_ONLY (0x1) +#define EMBER_AF_GET_LOCATION_DATA_FLAGS_ABSOLUTE_ONLY_OFFSET (0) +#define EMBER_AF_GET_LOCATION_DATA_FLAGS_RECALCULATE (0x2) +#define EMBER_AF_GET_LOCATION_DATA_FLAGS_RECALCULATE_OFFSET (1) +#define EMBER_AF_GET_LOCATION_DATA_FLAGS_BROADCAST (0x4) +#define EMBER_AF_GET_LOCATION_DATA_FLAGS_BROADCAST_OFFSET (2) +#define EMBER_AF_GET_LOCATION_DATA_FLAGS_BROADCAST_RESPONSE (0x8) +#define EMBER_AF_GET_LOCATION_DATA_FLAGS_BROADCAST_RESPONSE_OFFSET (3) +#define EMBER_AF_GET_LOCATION_DATA_FLAGS_COMPACT_RESPONSE (0x10) +#define EMBER_AF_GET_LOCATION_DATA_FLAGS_COMPACT_RESPONSE_OFFSET (4) +#define EMBER_AF_GP_APPLICATION_INFORMATION_MANUFACTURE_ID_PRESENT (0x01) +#define EMBER_AF_GP_APPLICATION_INFORMATION_MANUFACTURE_ID_PRESENT_OFFSET (0) +#define EMBER_AF_GP_APPLICATION_INFORMATION_MODEL_ID_PRESENT (0x02) +#define EMBER_AF_GP_APPLICATION_INFORMATION_MODEL_ID_PRESENT_OFFSET (1) +#define EMBER_AF_GP_APPLICATION_INFORMATION_GPD_COMMANDS_PRESENT (0x04) +#define EMBER_AF_GP_APPLICATION_INFORMATION_GPD_COMMANDS_PRESENT_OFFSET (2) +#define EMBER_AF_GP_APPLICATION_INFORMATION_CLUSTER_LIST_PRESENT (0x08) +#define EMBER_AF_GP_APPLICATION_INFORMATION_CLUSTER_LIST_PRESENT_OFFSET (3) +#define EMBER_AF_GP_APPLICATION_INFORMATION_SWITCH_INFORMATION_PRESENT (0x10) +#define EMBER_AF_GP_APPLICATION_INFORMATION_SWITCH_INFORMATION_PRESENT_OFFSET (4) +#define EMBER_AF_GP_APPLICATION_INFORMATION_APPLICATION_DESCRIPTION_PRESENT (0x20) +#define EMBER_AF_GP_APPLICATION_INFORMATION_APPLICATION_DESCRIPTION_PRESENT_OFFSET (5) +#define EMBER_AF_GP_COMMISSIONING_NOTIFICATION_OPTION_APPLICATION_ID (0x0007) +#define EMBER_AF_GP_COMMISSIONING_NOTIFICATION_OPTION_APPLICATION_ID_OFFSET (0) +#define EMBER_AF_GP_COMMISSIONING_NOTIFICATION_OPTION_RX_AFTER_TX (0x0008) +#define EMBER_AF_GP_COMMISSIONING_NOTIFICATION_OPTION_RX_AFTER_TX_OFFSET (3) +#define EMBER_AF_GP_COMMISSIONING_NOTIFICATION_OPTION_SECURITY_LEVEL (0x0030) +#define EMBER_AF_GP_COMMISSIONING_NOTIFICATION_OPTION_SECURITY_LEVEL_OFFSET (4) +#define EMBER_AF_GP_COMMISSIONING_NOTIFICATION_OPTION_SECURITY_KEY_TYPE (0x01C0) +#define EMBER_AF_GP_COMMISSIONING_NOTIFICATION_OPTION_SECURITY_KEY_TYPE_OFFSET (6) +#define EMBER_AF_GP_COMMISSIONING_NOTIFICATION_OPTION_SECURITY_PROCESSING_FAILED (0x0200) +#define EMBER_AF_GP_COMMISSIONING_NOTIFICATION_OPTION_SECURITY_PROCESSING_FAILED_OFFSET (9) +#define EMBER_AF_GP_COMMISSIONING_NOTIFICATION_OPTION_BIDIRECTIONAL_CAPABILITY (0x0400) +#define EMBER_AF_GP_COMMISSIONING_NOTIFICATION_OPTION_BIDIRECTIONAL_CAPABILITY_OFFSET (10) +#define EMBER_AF_GP_COMMISSIONING_NOTIFICATION_OPTION_PROXY_INFO_PRESENT (0x0800) +#define EMBER_AF_GP_COMMISSIONING_NOTIFICATION_OPTION_PROXY_INFO_PRESENT_OFFSET (11) +#define EMBER_AF_GP_COMMISSIONING_NOTIFICATION_OPTION_RESERVED (0xF000) +#define EMBER_AF_GP_COMMISSIONING_NOTIFICATION_OPTION_RESERVED_OFFSET (12) +#define EMBER_AF_GP_GPD_CHANNEL_CONFIGURATION_CHANNEL_MASK (0x1F) +#define EMBER_AF_GP_GPD_CHANNEL_CONFIGURATION_CHANNEL_MASK_OFFSET (0) +#define EMBER_AF_GP_GPD_CHANNEL_CONFIGURATION_CHANNEL_OPERATIONAL_CHANNEL (0x0F) +#define EMBER_AF_GP_GPD_CHANNEL_CONFIGURATION_CHANNEL_OPERATIONAL_CHANNEL_OFFSET (0) +#define EMBER_AF_GP_GPD_CHANNEL_CONFIGURATION_CHANNEL_BASIC (0x10) +#define EMBER_AF_GP_GPD_CHANNEL_CONFIGURATION_CHANNEL_BASIC_OFFSET (4) +#define EMBER_AF_GP_GPD_CHANNEL_CONFIGURATION_CHANNEL_RESERVED (0xE0) +#define EMBER_AF_GP_GPD_CHANNEL_CONFIGURATION_CHANNEL_RESERVED_OFFSET (5) +#define EMBER_AF_GP_GPD_CHANNEL_REQUEST_CHANNEL_TOGGLING_BEHAVIOUR_RX_CHANNEL_NEXT_ATTEMPT (0x0F) +#define EMBER_AF_GP_GPD_CHANNEL_REQUEST_CHANNEL_TOGGLING_BEHAVIOUR_RX_CHANNEL_NEXT_ATTEMPT_OFFSET (0) +#define EMBER_AF_GP_GPD_CHANNEL_REQUEST_CHANNEL_TOGGLING_BEHAVIOUR_RX_CHANNEL_SECOND_NEXT_ATTEMPT (0xF0) +#define EMBER_AF_GP_GPD_CHANNEL_REQUEST_CHANNEL_TOGGLING_BEHAVIOUR_RX_CHANNEL_SECOND_NEXT_ATTEMPT_OFFSET (4) +#define EMBER_AF_GP_GPD_COMMISSIONING_EXTENDED_OPTIONS_SECURITY_LEVEL_CAPABILITIES (0x03) +#define EMBER_AF_GP_GPD_COMMISSIONING_EXTENDED_OPTIONS_SECURITY_LEVEL_CAPABILITIES_OFFSET (0) +#define EMBER_AF_GP_GPD_COMMISSIONING_EXTENDED_OPTIONS_KEY_TYPE (0x1C) +#define EMBER_AF_GP_GPD_COMMISSIONING_EXTENDED_OPTIONS_KEY_TYPE_OFFSET (2) +#define EMBER_AF_GP_GPD_COMMISSIONING_EXTENDED_OPTIONS_GPD_KEY_PRESENT (0x20) +#define EMBER_AF_GP_GPD_COMMISSIONING_EXTENDED_OPTIONS_GPD_KEY_PRESENT_OFFSET (5) +#define EMBER_AF_GP_GPD_COMMISSIONING_EXTENDED_OPTIONS_GPD_KEY_ENCRYPTION (0x40) +#define EMBER_AF_GP_GPD_COMMISSIONING_EXTENDED_OPTIONS_GPD_KEY_ENCRYPTION_OFFSET (6) +#define EMBER_AF_GP_GPD_COMMISSIONING_EXTENDED_OPTIONS_GPD_OUTGOING_COUNTER_PRESENT (0x80) +#define EMBER_AF_GP_GPD_COMMISSIONING_EXTENDED_OPTIONS_GPD_OUTGOING_COUNTER_PRESENT_OFFSET (7) +#define EMBER_AF_GP_GPD_COMMISSIONING_OPTIONS_MAC_SEQ_NUM_CAP (0x01) +#define EMBER_AF_GP_GPD_COMMISSIONING_OPTIONS_MAC_SEQ_NUM_CAP_OFFSET (0) +#define EMBER_AF_GP_GPD_COMMISSIONING_OPTIONS_RX_ON_CAP (0x02) +#define EMBER_AF_GP_GPD_COMMISSIONING_OPTIONS_RX_ON_CAP_OFFSET (1) +#define EMBER_AF_GP_GPD_COMMISSIONING_OPTIONS_APPLICATION_INFORMATION_PRESENT (0x04) +#define EMBER_AF_GP_GPD_COMMISSIONING_OPTIONS_APPLICATION_INFORMATION_PRESENT_OFFSET (2) +#define EMBER_AF_GP_GPD_COMMISSIONING_OPTIONS_RESERVED (0x08) +#define EMBER_AF_GP_GPD_COMMISSIONING_OPTIONS_RESERVED_OFFSET (3) +#define EMBER_AF_GP_GPD_COMMISSIONING_OPTIONS_PAN_ID_REQUEST (0x10) +#define EMBER_AF_GP_GPD_COMMISSIONING_OPTIONS_PAN_ID_REQUEST_OFFSET (4) +#define EMBER_AF_GP_GPD_COMMISSIONING_OPTIONS_GP_SECURITY_KEY_REQUEST (0x20) +#define EMBER_AF_GP_GPD_COMMISSIONING_OPTIONS_GP_SECURITY_KEY_REQUEST_OFFSET (5) +#define EMBER_AF_GP_GPD_COMMISSIONING_OPTIONS_FIXED_LOCATION (0x40) +#define EMBER_AF_GP_GPD_COMMISSIONING_OPTIONS_FIXED_LOCATION_OFFSET (6) +#define EMBER_AF_GP_GPD_COMMISSIONING_OPTIONS_EXTENDED_OPTIONS_FIELD (0x80) +#define EMBER_AF_GP_GPD_COMMISSIONING_OPTIONS_EXTENDED_OPTIONS_FIELD_OFFSET (7) +#define EMBER_AF_GP_GPD_COMMISSIONING_REPLY_OPTIONS_PAN_ID_PRESENT (0x01) +#define EMBER_AF_GP_GPD_COMMISSIONING_REPLY_OPTIONS_PAN_ID_PRESENT_OFFSET (0) +#define EMBER_AF_GP_GPD_COMMISSIONING_REPLY_OPTIONS_GPD_SECURITY_KEY_PRESENT (0x02) +#define EMBER_AF_GP_GPD_COMMISSIONING_REPLY_OPTIONS_GPD_SECURITY_KEY_PRESENT_OFFSET (1) +#define EMBER_AF_GP_GPD_COMMISSIONING_REPLY_OPTIONS_GPDKEY_ENCRYPTION (0x04) +#define EMBER_AF_GP_GPD_COMMISSIONING_REPLY_OPTIONS_GPDKEY_ENCRYPTION_OFFSET (2) +#define EMBER_AF_GP_GPD_COMMISSIONING_REPLY_OPTIONS_SECURITY_LEVEL (0x18) +#define EMBER_AF_GP_GPD_COMMISSIONING_REPLY_OPTIONS_SECURITY_LEVEL_OFFSET (3) +#define EMBER_AF_GP_GPD_COMMISSIONING_REPLY_OPTIONS_KEY_TYPE (0xE0) +#define EMBER_AF_GP_GPD_COMMISSIONING_REPLY_OPTIONS_KEY_TYPE_OFFSET (5) #define EMBER_AF_GP_GPS_FUNCTIONALITY_GP_FEATURE (0x000001) +#define EMBER_AF_GP_GPS_FUNCTIONALITY_GP_FEATURE_OFFSET (0) #define EMBER_AF_GP_GPS_FUNCTIONALITY_DIRECT_COMMUNICATION (0x000002) #define EMBER_AF_GP_GPS_FUNCTIONALITY_DIRECT_COMMUNICATION_OFFSET (1) #define EMBER_AF_GP_GPS_FUNCTIONALITY_DERIVED_GROUPCAST_COMMUNICATION (0x000004) @@ -3269,74 +3293,8 @@ typedef enum #define EMBER_AF_GP_GPS_FUNCTIONALITY_COMPACT_ATTRIBUTE_REPORTING_OFFSET (20) #define EMBER_AF_GP_GPS_FUNCTIONALITY_RESERVED (0xE00000) #define EMBER_AF_GP_GPS_FUNCTIONALITY_RESERVED_OFFSET (21) -#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_APPLICATION_ID (0x00000007) -#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_ENTRY_ACTIVE (0x00000008) -#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_ENTRY_ACTIVE_OFFSET (3) -#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_ENTRY_VALID (0x00000010) -#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_ENTRY_VALID_OFFSET (4) -#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_SEQUENCE_NUMBER_CAP (0x00000020) -#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_SEQUENCE_NUMBER_CAP_OFFSET (5) -#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_LIGHTWEIGHT_UNICAST_GPS (0x00000040) -#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_LIGHTWEIGHT_UNICAST_GPS_OFFSET (6) -#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_DERIVED_GROUP_GPS (0x00000080) -#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_DERIVED_GROUP_GPS_OFFSET (7) -#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_COMMISIONED_GROUP_GPS (0x00000100) -#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_COMMISIONED_GROUP_GPS_OFFSET (8) -#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_FIRST_TO_FORWARD (0x00000200) -#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_FIRST_TO_FORWARD_OFFSET (9) -#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_IN_RANGE (0x00000400) -#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_IN_RANGE_OFFSET (10) -#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_GPD_FIXED (0x00000800) -#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_GPD_FIXED_OFFSET (11) -#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_HAS_ALL_UNICAST_ROUTES (0x00001000) -#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_HAS_ALL_UNICAST_ROUTES_OFFSET (12) -#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_ASSIGNED_ALIAS (0x00002000) -#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_ASSIGNED_ALIAS_OFFSET (13) -#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_SECURITY_USE (0x00004000) -#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_SECURITY_USE_OFFSET (14) -#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_EXTENSION (0x00008000) -#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_EXTENSION_OFFSET (15) -#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_FULL_UNICAST_GPS (0x00010000) -#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_FULL_UNICAST_GPS_OFFSET (16) -#define EMBER_AF_GP_PROXY_TABLE_ENTRY_SECURITY_OPTIONS_SECURITY_LEVEL (0x03) -#define EMBER_AF_GP_PROXY_TABLE_ENTRY_SECURITY_OPTIONS_SECURITY_KEY_TYPE (0x1C) -#define EMBER_AF_GP_PROXY_TABLE_ENTRY_SECURITY_OPTIONS_SECURITY_KEY_TYPE_OFFSET (2) -#define EMBER_AF_GP_PROXY_TABLE_ENTRY_SECURITY_OPTIONS_RESERVED (0xE0) -#define EMBER_AF_GP_PROXY_TABLE_ENTRY_SECURITY_OPTIONS_RESERVED_OFFSET (5) -#define EMBER_AF_GP_GPD_COMMISSIONING_OPTIONS_MAC_SEQ_NUM_CAP (0x01) -#define EMBER_AF_GP_GPD_COMMISSIONING_OPTIONS_RX_ON_CAP (0x02) -#define EMBER_AF_GP_GPD_COMMISSIONING_OPTIONS_RX_ON_CAP_OFFSET (1) -#define EMBER_AF_GP_GPD_COMMISSIONING_OPTIONS_APPLICATION_INFORMATION_PRESENT (0x04) -#define EMBER_AF_GP_GPD_COMMISSIONING_OPTIONS_APPLICATION_INFORMATION_PRESENT_OFFSET (2) -#define EMBER_AF_GP_GPD_COMMISSIONING_OPTIONS_RESERVED (0x08) -#define EMBER_AF_GP_GPD_COMMISSIONING_OPTIONS_RESERVED_OFFSET (3) -#define EMBER_AF_GP_GPD_COMMISSIONING_OPTIONS_PAN_ID_REQUEST (0x10) -#define EMBER_AF_GP_GPD_COMMISSIONING_OPTIONS_PAN_ID_REQUEST_OFFSET (4) -#define EMBER_AF_GP_GPD_COMMISSIONING_OPTIONS_GP_SECURITY_KEY_REQUEST (0x20) -#define EMBER_AF_GP_GPD_COMMISSIONING_OPTIONS_GP_SECURITY_KEY_REQUEST_OFFSET (5) -#define EMBER_AF_GP_GPD_COMMISSIONING_OPTIONS_FIXED_LOCATION (0x40) -#define EMBER_AF_GP_GPD_COMMISSIONING_OPTIONS_FIXED_LOCATION_OFFSET (6) -#define EMBER_AF_GP_GPD_COMMISSIONING_OPTIONS_EXTENDED_OPTIONS_FIELD (0x80) -#define EMBER_AF_GP_GPD_COMMISSIONING_OPTIONS_EXTENDED_OPTIONS_FIELD_OFFSET (7) -#define EMBER_AF_GP_GPD_COMMISSIONING_EXTENDED_OPTIONS_SECURITY_LEVEL_CAPABILITIES (0x03) -#define EMBER_AF_GP_GPD_COMMISSIONING_EXTENDED_OPTIONS_KEY_TYPE (0x1C) -#define EMBER_AF_GP_GPD_COMMISSIONING_EXTENDED_OPTIONS_KEY_TYPE_OFFSET (2) -#define EMBER_AF_GP_GPD_COMMISSIONING_EXTENDED_OPTIONS_GPD_KEY_PRESENT (0x20) -#define EMBER_AF_GP_GPD_COMMISSIONING_EXTENDED_OPTIONS_GPD_KEY_PRESENT_OFFSET (5) -#define EMBER_AF_GP_GPD_COMMISSIONING_EXTENDED_OPTIONS_GPD_KEY_ENCRYPTION (0x40) -#define EMBER_AF_GP_GPD_COMMISSIONING_EXTENDED_OPTIONS_GPD_KEY_ENCRYPTION_OFFSET (6) -#define EMBER_AF_GP_GPD_COMMISSIONING_EXTENDED_OPTIONS_GPD_OUTGOING_COUNTER_PRESENT (0x80) -#define EMBER_AF_GP_GPD_COMMISSIONING_EXTENDED_OPTIONS_GPD_OUTGOING_COUNTER_PRESENT_OFFSET (7) -#define EMBER_AF_GP_GPD_COMMISSIONING_REPLY_OPTIONS_PAN_ID_PRESENT (0x01) -#define EMBER_AF_GP_GPD_COMMISSIONING_REPLY_OPTIONS_GPD_SECURITY_KEY_PRESENT (0x02) -#define EMBER_AF_GP_GPD_COMMISSIONING_REPLY_OPTIONS_GPD_SECURITY_KEY_PRESENT_OFFSET (1) -#define EMBER_AF_GP_GPD_COMMISSIONING_REPLY_OPTIONS_GPDKEY_ENCRYPTION (0x04) -#define EMBER_AF_GP_GPD_COMMISSIONING_REPLY_OPTIONS_GPDKEY_ENCRYPTION_OFFSET (2) -#define EMBER_AF_GP_GPD_COMMISSIONING_REPLY_OPTIONS_SECURITY_LEVEL (0x18) -#define EMBER_AF_GP_GPD_COMMISSIONING_REPLY_OPTIONS_SECURITY_LEVEL_OFFSET (3) -#define EMBER_AF_GP_GPD_COMMISSIONING_REPLY_OPTIONS_KEY_TYPE (0xE0) -#define EMBER_AF_GP_GPD_COMMISSIONING_REPLY_OPTIONS_KEY_TYPE_OFFSET (5) #define EMBER_AF_GP_NOTIFICATION_OPTION_APPLICATION_ID (0x0007) +#define EMBER_AF_GP_NOTIFICATION_OPTION_APPLICATION_ID_OFFSET (0) #define EMBER_AF_GP_NOTIFICATION_OPTION_ALSO_UNICAST (0x0008) #define EMBER_AF_GP_NOTIFICATION_OPTION_ALSO_UNICAST_OFFSET (3) #define EMBER_AF_GP_NOTIFICATION_OPTION_ALSO_DERIVED_GROUP (0x0010) @@ -3357,86 +3315,22 @@ typedef enum #define EMBER_AF_GP_NOTIFICATION_OPTION_PROXY_INFO_PRESENT_OFFSET (14) #define EMBER_AF_GP_NOTIFICATION_OPTION_RESERVED (0x8000) #define EMBER_AF_GP_NOTIFICATION_OPTION_RESERVED_OFFSET (15) -#define EMBER_AF_GP_PAIRING_SEARCH_OPTION_APPLICATION_ID (0x0007) -#define EMBER_AF_GP_PAIRING_SEARCH_OPTION_REQUEST_UNICAST_SINKS (0x0008) -#define EMBER_AF_GP_PAIRING_SEARCH_OPTION_REQUEST_UNICAST_SINKS_OFFSET (3) -#define EMBER_AF_GP_PAIRING_SEARCH_OPTION_REQUEST_DERIVED_GROUPCAST_SINKS (0x0010) -#define EMBER_AF_GP_PAIRING_SEARCH_OPTION_REQUEST_DERIVED_GROUPCAST_SINKS_OFFSET (4) -#define EMBER_AF_GP_PAIRING_SEARCH_OPTION_REQUEST_COMMISSIONED_GROUPCAST_SINKS (0x0020) -#define EMBER_AF_GP_PAIRING_SEARCH_OPTION_REQUEST_COMMISSIONED_GROUPCAST_SINKS_OFFSET (5) -#define EMBER_AF_GP_PAIRING_SEARCH_OPTION_REQUEST_GPD_SECURITY_FRAME_COUNTER (0x0040) -#define EMBER_AF_GP_PAIRING_SEARCH_OPTION_REQUEST_GPD_SECURITY_FRAME_COUNTER_OFFSET (6) -#define EMBER_AF_GP_PAIRING_SEARCH_OPTION_REQUEST_GPD_SECURITY_KEY (0x0080) -#define EMBER_AF_GP_PAIRING_SEARCH_OPTION_REQUEST_GPD_SECURITY_KEY_OFFSET (7) -#define EMBER_AF_GP_PAIRING_SEARCH_OPTION_RESERVED (0xFF00) -#define EMBER_AF_GP_PAIRING_SEARCH_OPTION_RESERVED_OFFSET (8) -#define EMBER_AF_GP_TUNNELING_STOP_OPTION_APPLICATION_ID (0x07) -#define EMBER_AF_GP_TUNNELING_STOP_OPTION_ALSO_DERIVED_GROUP (0x08) -#define EMBER_AF_GP_TUNNELING_STOP_OPTION_ALSO_DERIVED_GROUP_OFFSET (3) -#define EMBER_AF_GP_TUNNELING_STOP_OPTION_ALSO_COMMISSIONED_GROUP (0x10) -#define EMBER_AF_GP_TUNNELING_STOP_OPTION_ALSO_COMMISSIONED_GROUP_OFFSET (4) -#define EMBER_AF_GP_TUNNELING_STOP_OPTION_RESERVED (0xE0) -#define EMBER_AF_GP_TUNNELING_STOP_OPTION_RESERVED_OFFSET (5) -#define EMBER_AF_GP_COMMISSIONING_NOTIFICATION_OPTION_APPLICATION_ID (0x0007) -#define EMBER_AF_GP_COMMISSIONING_NOTIFICATION_OPTION_RX_AFTER_TX (0x0008) -#define EMBER_AF_GP_COMMISSIONING_NOTIFICATION_OPTION_RX_AFTER_TX_OFFSET (3) -#define EMBER_AF_GP_COMMISSIONING_NOTIFICATION_OPTION_SECURITY_LEVEL (0x0030) -#define EMBER_AF_GP_COMMISSIONING_NOTIFICATION_OPTION_SECURITY_LEVEL_OFFSET (4) -#define EMBER_AF_GP_COMMISSIONING_NOTIFICATION_OPTION_SECURITY_KEY_TYPE (0x01C0) -#define EMBER_AF_GP_COMMISSIONING_NOTIFICATION_OPTION_SECURITY_KEY_TYPE_OFFSET (6) -#define EMBER_AF_GP_COMMISSIONING_NOTIFICATION_OPTION_SECURITY_PROCESSING_FAILED (0x0200) -#define EMBER_AF_GP_COMMISSIONING_NOTIFICATION_OPTION_SECURITY_PROCESSING_FAILED_OFFSET (9) -#define EMBER_AF_GP_COMMISSIONING_NOTIFICATION_OPTION_BIDIRECTIONAL_CAPABILITY (0x0400) -#define EMBER_AF_GP_COMMISSIONING_NOTIFICATION_OPTION_BIDIRECTIONAL_CAPABILITY_OFFSET (10) -#define EMBER_AF_GP_COMMISSIONING_NOTIFICATION_OPTION_PROXY_INFO_PRESENT (0x0800) -#define EMBER_AF_GP_COMMISSIONING_NOTIFICATION_OPTION_PROXY_INFO_PRESENT_OFFSET (11) -#define EMBER_AF_GP_COMMISSIONING_NOTIFICATION_OPTION_RESERVED (0xF000) -#define EMBER_AF_GP_COMMISSIONING_NOTIFICATION_OPTION_RESERVED_OFFSET (12) -#define EMBER_AF_GP_SINK_COMMISSIONING_MODE_OPTIONS_ACTION (0x01) -#define EMBER_AF_GP_SINK_COMMISSIONING_MODE_OPTIONS_INVOLVE_GPM_IN_SECURITY (0x02) -#define EMBER_AF_GP_SINK_COMMISSIONING_MODE_OPTIONS_INVOLVE_GPM_IN_SECURITY_OFFSET (1) -#define EMBER_AF_GP_SINK_COMMISSIONING_MODE_OPTIONS_INVOLVE_GPM_IN_PAIRING (0x04) -#define EMBER_AF_GP_SINK_COMMISSIONING_MODE_OPTIONS_INVOLVE_GPM_IN_PAIRING_OFFSET (2) -#define EMBER_AF_GP_SINK_COMMISSIONING_MODE_OPTIONS_INVOLVE_PROXIES (0x08) -#define EMBER_AF_GP_SINK_COMMISSIONING_MODE_OPTIONS_INVOLVE_PROXIES_OFFSET (3) -#define EMBER_AF_GP_SINK_COMMISSIONING_MODE_OPTIONS_RESERVED (0xF0) -#define EMBER_AF_GP_SINK_COMMISSIONING_MODE_OPTIONS_RESERVED_OFFSET (4) -#define EMBER_AF_GP_SINK_COMMISSIONING_MODE_EXIT_MODE_ON_COMMISSIONING_WINDOW_EXPIRATION (0x01) -#define EMBER_AF_GP_SINK_COMMISSIONING_MODE_EXIT_MODE_ON_FIRST_PAIRING_SUCCESS (0x02) -#define EMBER_AF_GP_SINK_COMMISSIONING_MODE_EXIT_MODE_ON_FIRST_PAIRING_SUCCESS_OFFSET (1) -#define EMBER_AF_GP_SINK_COMMISSIONING_MODE_EXIT_MODE_ON_GP_PROXY_COMMISSIONING_MODE_EXIT (0x04) -#define EMBER_AF_GP_SINK_COMMISSIONING_MODE_EXIT_MODE_ON_GP_PROXY_COMMISSIONING_MODE_EXIT_OFFSET (2) -#define EMBER_AF_GP_SINK_COMMISSIONING_MODE_EXIT_MODE_RESERVED (0xF8) -#define EMBER_AF_GP_SINK_COMMISSIONING_MODE_EXIT_MODE_RESERVED_OFFSET (3) -#define EMBER_AF_GP_SINK_TABLE_REQUEST_OPTIONS_APPLICATION_ID (0x07) -#define EMBER_AF_GP_SINK_TABLE_REQUEST_OPTIONS_REQUEST_TYPE (0x18) -#define EMBER_AF_GP_SINK_TABLE_REQUEST_OPTIONS_REQUEST_TYPE_OFFSET (3) -#define EMBER_AF_GP_SINK_TABLE_REQUEST_OPTIONS_RESERVED (0xE0) -#define EMBER_AF_GP_SINK_TABLE_REQUEST_OPTIONS_RESERVED_OFFSET (5) -#define EMBER_AF_GP_TRANSLATION_TABLE_UPDATE_OPTION_APPLICATION_ID (0x0007) -#define EMBER_AF_GP_TRANSLATION_TABLE_UPDATE_OPTION_ACTION (0x0018) -#define EMBER_AF_GP_TRANSLATION_TABLE_UPDATE_OPTION_ACTION_OFFSET (3) -#define EMBER_AF_GP_TRANSLATION_TABLE_UPDATE_OPTION_NUMBER_OF_TRANSLATIONS (0x00E0) -#define EMBER_AF_GP_TRANSLATION_TABLE_UPDATE_OPTION_NUMBER_OF_TRANSLATIONS_OFFSET (5) -#define EMBER_AF_GP_TRANSLATION_TABLE_UPDATE_OPTION_ADDITIONAL_INFORMATION_BLOCK_PRESENT (0x0100) -#define EMBER_AF_GP_TRANSLATION_TABLE_UPDATE_OPTION_ADDITIONAL_INFORMATION_BLOCK_PRESENT_OFFSET (8) -#define EMBER_AF_GP_TRANSLATION_TABLE_UPDATE_OPTION_RESERVED (0xFE00) -#define EMBER_AF_GP_TRANSLATION_TABLE_UPDATE_OPTION_RESERVED_OFFSET (9) -#define EMBER_AF_GP_TRANSLATION_TABLE_SCAN_LEVEL_GPD_ID (0x01) -#define EMBER_AF_GP_TRANSLATION_TABLE_SCAN_LEVEL_CMD_ID (0x02) -#define EMBER_AF_GP_TRANSLATION_TABLE_SCAN_LEVEL_CMD_ID_OFFSET (1) -#define EMBER_AF_GP_TRANSLATION_TABLE_SCAN_LEVEL_PAYLOAD (0x04) -#define EMBER_AF_GP_TRANSLATION_TABLE_SCAN_LEVEL_PAYLOAD_OFFSET (2) -#define EMBER_AF_GP_TRANSLATION_TABLE_SCAN_LEVEL_ZB_ENDPOINT (0x08) -#define EMBER_AF_GP_TRANSLATION_TABLE_SCAN_LEVEL_ZB_ENDPOINT_OFFSET (3) -#define EMBER_AF_GP_TRANSLATION_TABLE_SCAN_LEVEL_ADDITIONAL_INFO_BLOCK (0x10) -#define EMBER_AF_GP_TRANSLATION_TABLE_SCAN_LEVEL_ADDITIONAL_INFO_BLOCK_OFFSET (4) +#define EMBER_AF_GP_NOTIFICATION_RESPONSE_OPTION_APPLICATION_ID (0x07) +#define EMBER_AF_GP_NOTIFICATION_RESPONSE_OPTION_APPLICATION_ID_OFFSET (0) +#define EMBER_AF_GP_NOTIFICATION_RESPONSE_OPTION_FIRST_TO_FORWARD (0x08) +#define EMBER_AF_GP_NOTIFICATION_RESPONSE_OPTION_FIRST_TO_FORWARD_OFFSET (3) +#define EMBER_AF_GP_NOTIFICATION_RESPONSE_OPTION_NO_PAIRING (0x10) +#define EMBER_AF_GP_NOTIFICATION_RESPONSE_OPTION_NO_PAIRING_OFFSET (4) +#define EMBER_AF_GP_NOTIFICATION_RESPONSE_OPTION_RESERVED (0xE0) +#define EMBER_AF_GP_NOTIFICATION_RESPONSE_OPTION_RESERVED_OFFSET (5) #define EMBER_AF_GP_PAIRING_CONFIGURATION_ACTIONS_ACTION (0x07) +#define EMBER_AF_GP_PAIRING_CONFIGURATION_ACTIONS_ACTION_OFFSET (0) #define EMBER_AF_GP_PAIRING_CONFIGURATION_ACTIONS_SEND_GP_PAIRING (0x08) #define EMBER_AF_GP_PAIRING_CONFIGURATION_ACTIONS_SEND_GP_PAIRING_OFFSET (3) #define EMBER_AF_GP_PAIRING_CONFIGURATION_ACTIONS_RESERVED (0xF0) #define EMBER_AF_GP_PAIRING_CONFIGURATION_ACTIONS_RESERVED_OFFSET (4) #define EMBER_AF_GP_PAIRING_CONFIGURATION_OPTION_APPLICATION_ID (0x0007) +#define EMBER_AF_GP_PAIRING_CONFIGURATION_OPTION_APPLICATION_ID_OFFSET (0) #define EMBER_AF_GP_PAIRING_CONFIGURATION_OPTION_COMMUNICATION_MODE (0x0018) #define EMBER_AF_GP_PAIRING_CONFIGURATION_OPTION_COMMUNICATION_MODE_OFFSET (3) #define EMBER_AF_GP_PAIRING_CONFIGURATION_OPTION_SEQUENCE_NUMBER_CAPABILITIES (0x0020) @@ -3453,25 +3347,8 @@ typedef enum #define EMBER_AF_GP_PAIRING_CONFIGURATION_OPTION_APPLICATION_INFORMATION_PRESENT_OFFSET (10) #define EMBER_AF_GP_PAIRING_CONFIGURATION_OPTION_RESERVED (0xF800) #define EMBER_AF_GP_PAIRING_CONFIGURATION_OPTION_RESERVED_OFFSET (11) -#define EMBER_AF_GP_APPLICATION_INFORMATION_MANUFACTURE_ID_PRESENT (0x01) -#define EMBER_AF_GP_APPLICATION_INFORMATION_MODEL_ID_PRESENT (0x02) -#define EMBER_AF_GP_APPLICATION_INFORMATION_MODEL_ID_PRESENT_OFFSET (1) -#define EMBER_AF_GP_APPLICATION_INFORMATION_GPD_COMMANDS_PRESENT (0x04) -#define EMBER_AF_GP_APPLICATION_INFORMATION_GPD_COMMANDS_PRESENT_OFFSET (2) -#define EMBER_AF_GP_APPLICATION_INFORMATION_CLUSTER_LIST_PRESENT (0x08) -#define EMBER_AF_GP_APPLICATION_INFORMATION_CLUSTER_LIST_PRESENT_OFFSET (3) -#define EMBER_AF_GP_APPLICATION_INFORMATION_SWITCH_INFORMATION_PRESENT (0x10) -#define EMBER_AF_GP_APPLICATION_INFORMATION_SWITCH_INFORMATION_PRESENT_OFFSET (4) -#define EMBER_AF_GP_APPLICATION_INFORMATION_APPLICATION_DESCRIPTION_PRESENT (0x20) -#define EMBER_AF_GP_APPLICATION_INFORMATION_APPLICATION_DESCRIPTION_PRESENT_OFFSET (5) -#define EMBER_AF_GP_NOTIFICATION_RESPONSE_OPTION_APPLICATION_ID (0x07) -#define EMBER_AF_GP_NOTIFICATION_RESPONSE_OPTION_FIRST_TO_FORWARD (0x08) -#define EMBER_AF_GP_NOTIFICATION_RESPONSE_OPTION_FIRST_TO_FORWARD_OFFSET (3) -#define EMBER_AF_GP_NOTIFICATION_RESPONSE_OPTION_NO_PAIRING (0x10) -#define EMBER_AF_GP_NOTIFICATION_RESPONSE_OPTION_NO_PAIRING_OFFSET (4) -#define EMBER_AF_GP_NOTIFICATION_RESPONSE_OPTION_RESERVED (0xE0) -#define EMBER_AF_GP_NOTIFICATION_RESPONSE_OPTION_RESERVED_OFFSET (5) #define EMBER_AF_GP_PAIRING_OPTION_APPLICATION_ID (0x000007) +#define EMBER_AF_GP_PAIRING_OPTION_APPLICATION_ID_OFFSET (0) #define EMBER_AF_GP_PAIRING_OPTION_ADD_SINK (0x000008) #define EMBER_AF_GP_PAIRING_OPTION_ADD_SINK_OFFSET (3) #define EMBER_AF_GP_PAIRING_OPTION_REMOVE_GPD (0x000010) @@ -3496,7 +3373,28 @@ typedef enum #define EMBER_AF_GP_PAIRING_OPTION_GROUPCAST_RADIUS_PRESENT_OFFSET (17) #define EMBER_AF_GP_PAIRING_OPTION_RESERVED (0xFC0000) #define EMBER_AF_GP_PAIRING_OPTION_RESERVED_OFFSET (18) +#define EMBER_AF_GP_PAIRING_SEARCH_OPTION_APPLICATION_ID (0x0007) +#define EMBER_AF_GP_PAIRING_SEARCH_OPTION_APPLICATION_ID_OFFSET (0) +#define EMBER_AF_GP_PAIRING_SEARCH_OPTION_REQUEST_UNICAST_SINKS (0x0008) +#define EMBER_AF_GP_PAIRING_SEARCH_OPTION_REQUEST_UNICAST_SINKS_OFFSET (3) +#define EMBER_AF_GP_PAIRING_SEARCH_OPTION_REQUEST_DERIVED_GROUPCAST_SINKS (0x0010) +#define EMBER_AF_GP_PAIRING_SEARCH_OPTION_REQUEST_DERIVED_GROUPCAST_SINKS_OFFSET (4) +#define EMBER_AF_GP_PAIRING_SEARCH_OPTION_REQUEST_COMMISSIONED_GROUPCAST_SINKS (0x0020) +#define EMBER_AF_GP_PAIRING_SEARCH_OPTION_REQUEST_COMMISSIONED_GROUPCAST_SINKS_OFFSET (5) +#define EMBER_AF_GP_PAIRING_SEARCH_OPTION_REQUEST_GPD_SECURITY_FRAME_COUNTER (0x0040) +#define EMBER_AF_GP_PAIRING_SEARCH_OPTION_REQUEST_GPD_SECURITY_FRAME_COUNTER_OFFSET (6) +#define EMBER_AF_GP_PAIRING_SEARCH_OPTION_REQUEST_GPD_SECURITY_KEY (0x0080) +#define EMBER_AF_GP_PAIRING_SEARCH_OPTION_REQUEST_GPD_SECURITY_KEY_OFFSET (7) +#define EMBER_AF_GP_PAIRING_SEARCH_OPTION_RESERVED (0xFF00) +#define EMBER_AF_GP_PAIRING_SEARCH_OPTION_RESERVED_OFFSET (8) +#define EMBER_AF_GP_PROXY_COMMISSIONING_MODE_EXIT_MODE_ON_COMMISSIONING_WINDOW_EXPIRATION (0x02) +#define EMBER_AF_GP_PROXY_COMMISSIONING_MODE_EXIT_MODE_ON_COMMISSIONING_WINDOW_EXPIRATION_OFFSET (1) +#define EMBER_AF_GP_PROXY_COMMISSIONING_MODE_EXIT_MODE_ON_FIRST_PAIRING_SUCCESS (0x04) +#define EMBER_AF_GP_PROXY_COMMISSIONING_MODE_EXIT_MODE_ON_FIRST_PAIRING_SUCCESS_OFFSET (2) +#define EMBER_AF_GP_PROXY_COMMISSIONING_MODE_EXIT_MODE_ON_GP_PROXY_COMMISSIONING_MODE_EXIT (0x08) +#define EMBER_AF_GP_PROXY_COMMISSIONING_MODE_EXIT_MODE_ON_GP_PROXY_COMMISSIONING_MODE_EXIT_OFFSET (3) #define EMBER_AF_GP_PROXY_COMMISSIONING_MODE_OPTION_ACTION (0x01) +#define EMBER_AF_GP_PROXY_COMMISSIONING_MODE_OPTION_ACTION_OFFSET (0) #define EMBER_AF_GP_PROXY_COMMISSIONING_MODE_OPTION_COMMISSIONING_WINDOW_PRESENT (0x02) #define EMBER_AF_GP_PROXY_COMMISSIONING_MODE_OPTION_COMMISSIONING_WINDOW_PRESENT_OFFSET (1) #define EMBER_AF_GP_PROXY_COMMISSIONING_MODE_OPTION_EXIT_MODE (0x0C) @@ -3507,21 +3405,78 @@ typedef enum #define EMBER_AF_GP_PROXY_COMMISSIONING_MODE_OPTION_UNICAST_COMMUNICATION_OFFSET (5) #define EMBER_AF_GP_PROXY_COMMISSIONING_MODE_OPTION_RESERVED (0xC0) #define EMBER_AF_GP_PROXY_COMMISSIONING_MODE_OPTION_RESERVED_OFFSET (6) -#define EMBER_AF_GP_PROXY_COMMISSIONING_MODE_EXIT_MODE_ON_COMMISSIONING_WINDOW_EXPIRATION (0x02) -#define EMBER_AF_GP_PROXY_COMMISSIONING_MODE_EXIT_MODE_ON_COMMISSIONING_WINDOW_EXPIRATION_OFFSET (1) -#define EMBER_AF_GP_PROXY_COMMISSIONING_MODE_EXIT_MODE_ON_FIRST_PAIRING_SUCCESS (0x04) -#define EMBER_AF_GP_PROXY_COMMISSIONING_MODE_EXIT_MODE_ON_FIRST_PAIRING_SUCCESS_OFFSET (2) -#define EMBER_AF_GP_PROXY_COMMISSIONING_MODE_EXIT_MODE_ON_GP_PROXY_COMMISSIONING_MODE_EXIT (0x08) -#define EMBER_AF_GP_PROXY_COMMISSIONING_MODE_EXIT_MODE_ON_GP_PROXY_COMMISSIONING_MODE_EXIT_OFFSET (3) +#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_APPLICATION_ID (0x00000007) +#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_APPLICATION_ID_OFFSET (0) +#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_ENTRY_ACTIVE (0x00000008) +#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_ENTRY_ACTIVE_OFFSET (3) +#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_ENTRY_VALID (0x00000010) +#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_ENTRY_VALID_OFFSET (4) +#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_SEQUENCE_NUMBER_CAP (0x00000020) +#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_SEQUENCE_NUMBER_CAP_OFFSET (5) +#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_LIGHTWEIGHT_UNICAST_GPS (0x00000040) +#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_LIGHTWEIGHT_UNICAST_GPS_OFFSET (6) +#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_DERIVED_GROUP_GPS (0x00000080) +#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_DERIVED_GROUP_GPS_OFFSET (7) +#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_COMMISIONED_GROUP_GPS (0x00000100) +#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_COMMISIONED_GROUP_GPS_OFFSET (8) +#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_FIRST_TO_FORWARD (0x00000200) +#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_FIRST_TO_FORWARD_OFFSET (9) +#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_IN_RANGE (0x00000400) +#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_IN_RANGE_OFFSET (10) +#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_GPD_FIXED (0x00000800) +#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_GPD_FIXED_OFFSET (11) +#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_HAS_ALL_UNICAST_ROUTES (0x00001000) +#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_HAS_ALL_UNICAST_ROUTES_OFFSET (12) +#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_ASSIGNED_ALIAS (0x00002000) +#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_ASSIGNED_ALIAS_OFFSET (13) +#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_SECURITY_USE (0x00004000) +#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_SECURITY_USE_OFFSET (14) +#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_EXTENSION (0x00008000) +#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_EXTENSION_OFFSET (15) +#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_FULL_UNICAST_GPS (0x00010000) +#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_FULL_UNICAST_GPS_OFFSET (16) +#define EMBER_AF_GP_PROXY_TABLE_ENTRY_SECURITY_OPTIONS_SECURITY_LEVEL (0x03) +#define EMBER_AF_GP_PROXY_TABLE_ENTRY_SECURITY_OPTIONS_SECURITY_LEVEL_OFFSET (0) +#define EMBER_AF_GP_PROXY_TABLE_ENTRY_SECURITY_OPTIONS_SECURITY_KEY_TYPE (0x1C) +#define EMBER_AF_GP_PROXY_TABLE_ENTRY_SECURITY_OPTIONS_SECURITY_KEY_TYPE_OFFSET (2) +#define EMBER_AF_GP_PROXY_TABLE_ENTRY_SECURITY_OPTIONS_RESERVED (0xE0) +#define EMBER_AF_GP_PROXY_TABLE_ENTRY_SECURITY_OPTIONS_RESERVED_OFFSET (5) +#define EMBER_AF_GP_PROXY_TABLE_REQUEST_OPTIONS_APPLICATION_ID (0x07) +#define EMBER_AF_GP_PROXY_TABLE_REQUEST_OPTIONS_APPLICATION_ID_OFFSET (0) +#define EMBER_AF_GP_PROXY_TABLE_REQUEST_OPTIONS_REQUEST_TYPE (0x18) +#define EMBER_AF_GP_PROXY_TABLE_REQUEST_OPTIONS_REQUEST_TYPE_OFFSET (3) +#define EMBER_AF_GP_PROXY_TABLE_REQUEST_OPTIONS_RESERVED (0xE0) +#define EMBER_AF_GP_PROXY_TABLE_REQUEST_OPTIONS_RESERVED_OFFSET (5) #define EMBER_AF_GP_RESPONSE_OPTION_APPLICATION_ID (0x07) +#define EMBER_AF_GP_RESPONSE_OPTION_APPLICATION_ID_OFFSET (0) #define EMBER_AF_GP_RESPONSE_OPTION_TRANSMIT_ON_END_POINT_MATCH (0x08) #define EMBER_AF_GP_RESPONSE_OPTION_TRANSMIT_ON_END_POINT_MATCH_OFFSET (3) #define EMBER_AF_GP_RESPONSE_OPTION_RESERVED (0xF0) #define EMBER_AF_GP_RESPONSE_OPTION_RESERVED_OFFSET (4) #define EMBER_AF_GP_RESPONSE_TEMP_MASTER_TX_CHANNEL_TRANSMIT_CHANNEL (0x0F) +#define EMBER_AF_GP_RESPONSE_TEMP_MASTER_TX_CHANNEL_TRANSMIT_CHANNEL_OFFSET (0) #define EMBER_AF_GP_RESPONSE_TEMP_MASTER_TX_CHANNEL_RESERVED (0xF0) #define EMBER_AF_GP_RESPONSE_TEMP_MASTER_TX_CHANNEL_RESERVED_OFFSET (4) +#define EMBER_AF_GP_SINK_COMMISSIONING_MODE_EXIT_MODE_ON_COMMISSIONING_WINDOW_EXPIRATION (0x01) +#define EMBER_AF_GP_SINK_COMMISSIONING_MODE_EXIT_MODE_ON_COMMISSIONING_WINDOW_EXPIRATION_OFFSET (0) +#define EMBER_AF_GP_SINK_COMMISSIONING_MODE_EXIT_MODE_ON_FIRST_PAIRING_SUCCESS (0x02) +#define EMBER_AF_GP_SINK_COMMISSIONING_MODE_EXIT_MODE_ON_FIRST_PAIRING_SUCCESS_OFFSET (1) +#define EMBER_AF_GP_SINK_COMMISSIONING_MODE_EXIT_MODE_ON_GP_PROXY_COMMISSIONING_MODE_EXIT (0x04) +#define EMBER_AF_GP_SINK_COMMISSIONING_MODE_EXIT_MODE_ON_GP_PROXY_COMMISSIONING_MODE_EXIT_OFFSET (2) +#define EMBER_AF_GP_SINK_COMMISSIONING_MODE_EXIT_MODE_RESERVED (0xF8) +#define EMBER_AF_GP_SINK_COMMISSIONING_MODE_EXIT_MODE_RESERVED_OFFSET (3) +#define EMBER_AF_GP_SINK_COMMISSIONING_MODE_OPTIONS_ACTION (0x01) +#define EMBER_AF_GP_SINK_COMMISSIONING_MODE_OPTIONS_ACTION_OFFSET (0) +#define EMBER_AF_GP_SINK_COMMISSIONING_MODE_OPTIONS_INVOLVE_GPM_IN_SECURITY (0x02) +#define EMBER_AF_GP_SINK_COMMISSIONING_MODE_OPTIONS_INVOLVE_GPM_IN_SECURITY_OFFSET (1) +#define EMBER_AF_GP_SINK_COMMISSIONING_MODE_OPTIONS_INVOLVE_GPM_IN_PAIRING (0x04) +#define EMBER_AF_GP_SINK_COMMISSIONING_MODE_OPTIONS_INVOLVE_GPM_IN_PAIRING_OFFSET (2) +#define EMBER_AF_GP_SINK_COMMISSIONING_MODE_OPTIONS_INVOLVE_PROXIES (0x08) +#define EMBER_AF_GP_SINK_COMMISSIONING_MODE_OPTIONS_INVOLVE_PROXIES_OFFSET (3) +#define EMBER_AF_GP_SINK_COMMISSIONING_MODE_OPTIONS_RESERVED (0xF0) +#define EMBER_AF_GP_SINK_COMMISSIONING_MODE_OPTIONS_RESERVED_OFFSET (4) #define EMBER_AF_GP_SINK_TABLE_ENTRY_OPTIONS_APPLICATION_ID (0x0007) +#define EMBER_AF_GP_SINK_TABLE_ENTRY_OPTIONS_APPLICATION_ID_OFFSET (0) #define EMBER_AF_GP_SINK_TABLE_ENTRY_OPTIONS_COMMUNICATION_MODE (0x0018) #define EMBER_AF_GP_SINK_TABLE_ENTRY_OPTIONS_COMMUNICATION_MODE_OFFSET (3) #define EMBER_AF_GP_SINK_TABLE_ENTRY_OPTIONS_SEQUENCE_NUM_CAPABILITIES (0x0020) @@ -3537,34 +3492,564 @@ typedef enum #define EMBER_AF_GP_SINK_TABLE_ENTRY_OPTIONS_RESERVED (0xFC00) #define EMBER_AF_GP_SINK_TABLE_ENTRY_OPTIONS_RESERVED_OFFSET (10) #define EMBER_AF_GP_SINK_TABLE_ENTRY_SECURITY_OPTIONS_SECURITY_LEVEL (0x03) +#define EMBER_AF_GP_SINK_TABLE_ENTRY_SECURITY_OPTIONS_SECURITY_LEVEL_OFFSET (0) #define EMBER_AF_GP_SINK_TABLE_ENTRY_SECURITY_OPTIONS_SECURITY_KEY_TYPE (0x1C) #define EMBER_AF_GP_SINK_TABLE_ENTRY_SECURITY_OPTIONS_SECURITY_KEY_TYPE_OFFSET (2) #define EMBER_AF_GP_SINK_TABLE_ENTRY_SECURITY_OPTIONS_RESERVED (0xE0) #define EMBER_AF_GP_SINK_TABLE_ENTRY_SECURITY_OPTIONS_RESERVED_OFFSET (5) +#define EMBER_AF_GP_SINK_TABLE_REQUEST_OPTIONS_APPLICATION_ID (0x07) +#define EMBER_AF_GP_SINK_TABLE_REQUEST_OPTIONS_APPLICATION_ID_OFFSET (0) +#define EMBER_AF_GP_SINK_TABLE_REQUEST_OPTIONS_REQUEST_TYPE (0x18) +#define EMBER_AF_GP_SINK_TABLE_REQUEST_OPTIONS_REQUEST_TYPE_OFFSET (3) +#define EMBER_AF_GP_SINK_TABLE_REQUEST_OPTIONS_RESERVED (0xE0) +#define EMBER_AF_GP_SINK_TABLE_REQUEST_OPTIONS_RESERVED_OFFSET (5) #define EMBER_AF_GP_TRANSLATION_TABLE_RESPONSE_OPTION_APPLICATION_ID (0x07) +#define EMBER_AF_GP_TRANSLATION_TABLE_RESPONSE_OPTION_APPLICATION_ID_OFFSET (0) #define EMBER_AF_GP_TRANSLATION_TABLE_RESPONSE_OPTION_ADDITIONAL_INFORMATION_BLOCK_PRESENT (0x08) #define EMBER_AF_GP_TRANSLATION_TABLE_RESPONSE_OPTION_ADDITIONAL_INFORMATION_BLOCK_PRESENT_OFFSET (3) #define EMBER_AF_GP_TRANSLATION_TABLE_RESPONSE_OPTION_RESERVED (0xF0) #define EMBER_AF_GP_TRANSLATION_TABLE_RESPONSE_OPTION_RESERVED_OFFSET (4) -#define EMBER_AF_GP_PROXY_TABLE_REQUEST_OPTIONS_APPLICATION_ID (0x07) -#define EMBER_AF_GP_PROXY_TABLE_REQUEST_OPTIONS_REQUEST_TYPE (0x18) -#define EMBER_AF_GP_PROXY_TABLE_REQUEST_OPTIONS_REQUEST_TYPE_OFFSET (3) -#define EMBER_AF_GP_PROXY_TABLE_REQUEST_OPTIONS_RESERVED (0xE0) -#define EMBER_AF_GP_PROXY_TABLE_REQUEST_OPTIONS_RESERVED_OFFSET (5) -#define EMBER_AF_GP_GPD_CHANNEL_REQUEST_CHANNEL_TOGGLING_BEHAVIOUR_RX_CHANNEL_NEXT_ATTEMPT (0x0F) -#define EMBER_AF_GP_GPD_CHANNEL_REQUEST_CHANNEL_TOGGLING_BEHAVIOUR_RX_CHANNEL_SECOND_NEXT_ATTEMPT (0xF0) -#define EMBER_AF_GP_GPD_CHANNEL_REQUEST_CHANNEL_TOGGLING_BEHAVIOUR_RX_CHANNEL_SECOND_NEXT_ATTEMPT_OFFSET (4) -#define EMBER_AF_GP_GPD_CHANNEL_CONFIGURATION_CHANNEL_MASK (0x1F) -#define EMBER_AF_GP_GPD_CHANNEL_CONFIGURATION_CHANNEL_OPERATIONAL_CHANNEL (0x0F) -#define EMBER_AF_GP_GPD_CHANNEL_CONFIGURATION_CHANNEL_BASIC (0x10) -#define EMBER_AF_GP_GPD_CHANNEL_CONFIGURATION_CHANNEL_BASIC_OFFSET (4) -#define EMBER_AF_GP_GPD_CHANNEL_CONFIGURATION_CHANNEL_RESERVED (0xE0) -#define EMBER_AF_GP_GPD_CHANNEL_CONFIGURATION_CHANNEL_RESERVED_OFFSET (5) -#define EMBER_AF_GP_RESPONSE_OPTION_MASK (0x0F) -#define EMBER_AF_GP_RESPONSE_OPTION_TRANSMIT_ON_END_POINT_MATCH (0x08) -#define EMBER_AF_GP_RESPONSE_OPTION_TRANSMIT_ON_END_POINT_MATCH_OFFSET (3) -#define EMBER_AF_GP_RESPONSE_OPTION_RESERVED (0xF0) -#define EMBER_AF_GP_RESPONSE_OPTION_RESERVED_OFFSET (4) -/** @} END Enums */ -/** @} END addtogroup */ -#endif // SILABS_EMBER_AF_ENUMS +#define EMBER_AF_GP_TRANSLATION_TABLE_SCAN_LEVEL_GPD_ID (0x01) +#define EMBER_AF_GP_TRANSLATION_TABLE_SCAN_LEVEL_GPD_ID_OFFSET (0) +#define EMBER_AF_GP_TRANSLATION_TABLE_SCAN_LEVEL_CMD_ID (0x02) +#define EMBER_AF_GP_TRANSLATION_TABLE_SCAN_LEVEL_CMD_ID_OFFSET (1) +#define EMBER_AF_GP_TRANSLATION_TABLE_SCAN_LEVEL_PAYLOAD (0x04) +#define EMBER_AF_GP_TRANSLATION_TABLE_SCAN_LEVEL_PAYLOAD_OFFSET (2) +#define EMBER_AF_GP_TRANSLATION_TABLE_SCAN_LEVEL_ZB_ENDPOINT (0x08) +#define EMBER_AF_GP_TRANSLATION_TABLE_SCAN_LEVEL_ZB_ENDPOINT_OFFSET (3) +#define EMBER_AF_GP_TRANSLATION_TABLE_SCAN_LEVEL_ADDITIONAL_INFO_BLOCK (0x10) +#define EMBER_AF_GP_TRANSLATION_TABLE_SCAN_LEVEL_ADDITIONAL_INFO_BLOCK_OFFSET (4) +#define EMBER_AF_GP_TRANSLATION_TABLE_UPDATE_OPTION_APPLICATION_ID (0x0007) +#define EMBER_AF_GP_TRANSLATION_TABLE_UPDATE_OPTION_APPLICATION_ID_OFFSET (0) +#define EMBER_AF_GP_TRANSLATION_TABLE_UPDATE_OPTION_ACTION (0x0018) +#define EMBER_AF_GP_TRANSLATION_TABLE_UPDATE_OPTION_ACTION_OFFSET (3) +#define EMBER_AF_GP_TRANSLATION_TABLE_UPDATE_OPTION_NUMBER_OF_TRANSLATIONS (0x00E0) +#define EMBER_AF_GP_TRANSLATION_TABLE_UPDATE_OPTION_NUMBER_OF_TRANSLATIONS_OFFSET (5) +#define EMBER_AF_GP_TRANSLATION_TABLE_UPDATE_OPTION_ADDITIONAL_INFORMATION_BLOCK_PRESENT (0x0100) +#define EMBER_AF_GP_TRANSLATION_TABLE_UPDATE_OPTION_ADDITIONAL_INFORMATION_BLOCK_PRESENT_OFFSET (8) +#define EMBER_AF_GP_TRANSLATION_TABLE_UPDATE_OPTION_RESERVED (0xFE00) +#define EMBER_AF_GP_TRANSLATION_TABLE_UPDATE_OPTION_RESERVED_OFFSET (9) +#define EMBER_AF_GP_TUNNELING_STOP_OPTION_APPLICATION_ID (0x07) +#define EMBER_AF_GP_TUNNELING_STOP_OPTION_APPLICATION_ID_OFFSET (0) +#define EMBER_AF_GP_TUNNELING_STOP_OPTION_ALSO_DERIVED_GROUP (0x08) +#define EMBER_AF_GP_TUNNELING_STOP_OPTION_ALSO_DERIVED_GROUP_OFFSET (3) +#define EMBER_AF_GP_TUNNELING_STOP_OPTION_ALSO_COMMISSIONED_GROUP (0x10) +#define EMBER_AF_GP_TUNNELING_STOP_OPTION_ALSO_COMMISSIONED_GROUP_OFFSET (4) +#define EMBER_AF_GP_TUNNELING_STOP_OPTION_RESERVED (0xE0) +#define EMBER_AF_GP_TUNNELING_STOP_OPTION_RESERVED_OFFSET (5) +#define EMBER_AF_IAS_ZONE_STATUS_ALARM1 (0x1) +#define EMBER_AF_IAS_ZONE_STATUS_ALARM1_OFFSET (0) +#define EMBER_AF_IAS_ZONE_STATUS_ALARM2 (0x2) +#define EMBER_AF_IAS_ZONE_STATUS_ALARM2_OFFSET (1) +#define EMBER_AF_IAS_ZONE_STATUS_TAMPER (0x4) +#define EMBER_AF_IAS_ZONE_STATUS_TAMPER_OFFSET (2) +#define EMBER_AF_IAS_ZONE_STATUS_BATTERY (0x8) +#define EMBER_AF_IAS_ZONE_STATUS_BATTERY_OFFSET (3) +#define EMBER_AF_IAS_ZONE_STATUS_SUPERVISION_REPORTS (0x10) +#define EMBER_AF_IAS_ZONE_STATUS_SUPERVISION_REPORTS_OFFSET (4) +#define EMBER_AF_IAS_ZONE_STATUS_RESTORE_REPORTS (0x20) +#define EMBER_AF_IAS_ZONE_STATUS_RESTORE_REPORTS_OFFSET (5) +#define EMBER_AF_IAS_ZONE_STATUS_TROUBLE (0x40) +#define EMBER_AF_IAS_ZONE_STATUS_TROUBLE_OFFSET (6) +#define EMBER_AF_IAS_ZONE_STATUS_AC (0x80) +#define EMBER_AF_IAS_ZONE_STATUS_AC_OFFSET (7) +#define EMBER_AF_IAS_ZONE_STATUS_TEST (0x100) +#define EMBER_AF_IAS_ZONE_STATUS_TEST_OFFSET (8) +#define EMBER_AF_IAS_ZONE_STATUS_BATTERY_DEFECT (0x200) +#define EMBER_AF_IAS_ZONE_STATUS_BATTERY_DEFECT_OFFSET (9) +#define EMBER_AF_KEY_BITMASK_DEVELOPMENT (0x0001) +#define EMBER_AF_KEY_BITMASK_DEVELOPMENT_OFFSET (0) +#define EMBER_AF_KEY_BITMASK_MASTER (0x0010) +#define EMBER_AF_KEY_BITMASK_MASTER_OFFSET (4) +#define EMBER_AF_KEY_BITMASK_CERTIFICATION (0x8000) +#define EMBER_AF_KEY_BITMASK_CERTIFICATION_OFFSET (15) +#define EMBER_AF_LAMP_ALARM_MODE_LAMP_BURN_HOURS (0x1) +#define EMBER_AF_LAMP_ALARM_MODE_LAMP_BURN_HOURS_OFFSET (0) +#define EMBER_AF_LOAD_CONTROL_STATE_RELAY_OPEN_OR_CONSUMPTION_INTERUPTED (0x01) +#define EMBER_AF_LOAD_CONTROL_STATE_RELAY_OPEN_OR_CONSUMPTION_INTERUPTED_OFFSET (0) +#define EMBER_AF_LOAD_CONTROL_STATE_EVENT_IN_PROGRESS (0x02) +#define EMBER_AF_LOAD_CONTROL_STATE_EVENT_IN_PROGRESS_OFFSET (1) +#define EMBER_AF_LOAD_CONTROL_STATE_POWER_STABILIZING (0x04) +#define EMBER_AF_LOAD_CONTROL_STATE_POWER_STABILIZING_OFFSET (2) +#define EMBER_AF_LOAD_CONTROL_STATE_OTHER_LOAD_REDUCTION (0x08) +#define EMBER_AF_LOAD_CONTROL_STATE_OTHER_LOAD_REDUCTION_OFFSET (3) +#define EMBER_AF_LOAD_CONTROL_STATE_CURRENT_FLOW_OR_CONSUMING_COMMODITY (0x10) +#define EMBER_AF_LOAD_CONTROL_STATE_CURRENT_FLOW_OR_CONSUMING_COMMODITY_OFFSET (4) +#define EMBER_AF_LOAD_CONTROL_STATE_LOAD_CALL (0x20) +#define EMBER_AF_LOAD_CONTROL_STATE_LOAD_CALL_OFFSET (5) +#define EMBER_AF_LOCATION_TYPE_ABSOLUTE (0x1) +#define EMBER_AF_LOCATION_TYPE_ABSOLUTE_OFFSET (0) +#define EMBER_AF_LOCATION_TYPE_2_D (0x2) +#define EMBER_AF_LOCATION_TYPE_2_D_OFFSET (1) +#define EMBER_AF_LOCATION_TYPE_COORDINATE_SYSTEM (0xc) +#define EMBER_AF_LOCATION_TYPE_COORDINATE_SYSTEM_OFFSET (2) +#define EMBER_AF_MAINS_ALARM_MASK_VOLTAGE_TOO_LOW (0x1) +#define EMBER_AF_MAINS_ALARM_MASK_VOLTAGE_TOO_LOW_OFFSET (0) +#define EMBER_AF_MAINS_ALARM_MASK_VOLTAGE_TOO_HIGH (0x2) +#define EMBER_AF_MAINS_ALARM_MASK_VOLTAGE_TOO_HIGH_OFFSET (1) +#define EMBER_AF_MAINS_ALARM_MASK_MAINS_POWER_SUPPLY_LOST (0x4) +#define EMBER_AF_MAINS_ALARM_MASK_MAINS_POWER_SUPPLY_LOST_OFFSET (2) +#define EMBER_AF_MESSAGING_CONFIRMATION_CONTROL_NO_RETURNED (0x01) +#define EMBER_AF_MESSAGING_CONFIRMATION_CONTROL_NO_RETURNED_OFFSET (0) +#define EMBER_AF_MESSAGING_CONFIRMATION_CONTROL_YES_RETURNED (0x02) +#define EMBER_AF_MESSAGING_CONFIRMATION_CONTROL_YES_RETURNED_OFFSET (1) +#define EMBER_AF_MESSAGING_CONTROL_MASK_TRANS_MECHANISM (0x03) +#define EMBER_AF_MESSAGING_CONTROL_MASK_TRANS_MECHANISM_OFFSET (0) +#define EMBER_AF_MESSAGING_CONTROL_MASK_MESSAGE_URGENCY (0x0C) +#define EMBER_AF_MESSAGING_CONTROL_MASK_MESSAGE_URGENCY_OFFSET (2) +#define EMBER_AF_MESSAGING_CONTROL_MASK_ENHANCED_CONFIRMATION_REQUEST (0x20) +#define EMBER_AF_MESSAGING_CONTROL_MASK_ENHANCED_CONFIRMATION_REQUEST_OFFSET (5) +#define EMBER_AF_MESSAGING_CONTROL_MASK_MESSAGE_CONFIRMATION (0x80) +#define EMBER_AF_MESSAGING_CONTROL_MASK_MESSAGE_CONFIRMATION_OFFSET (7) +#define EMBER_AF_MESSAGING_EXTENDED_CONTROL_MASK_MESSAGE_CONFIRMATION_STATUS (0x01) +#define EMBER_AF_MESSAGING_EXTENDED_CONTROL_MASK_MESSAGE_CONFIRMATION_STATUS_OFFSET (0) +#define EMBER_AF_METERING_EXTENDED_STATUS_METER_COVER_REMOVED (0x0000000000000001) +#define EMBER_AF_METERING_EXTENDED_STATUS_METER_COVER_REMOVED_OFFSET (0) +#define EMBER_AF_METERING_EXTENDED_STATUS_STRONG_MAGNETIC_FIELD_DETECTED (0x0000000000000002) +#define EMBER_AF_METERING_EXTENDED_STATUS_STRONG_MAGNETIC_FIELD_DETECTED_OFFSET (1) +#define EMBER_AF_METERING_EXTENDED_STATUS_BATTERY_FAILURE (0x0000000000000004) +#define EMBER_AF_METERING_EXTENDED_STATUS_BATTERY_FAILURE_OFFSET (2) +#define EMBER_AF_METERING_EXTENDED_STATUS_PROGRAM_MEMORY_ERROR (0x0000000000000008) +#define EMBER_AF_METERING_EXTENDED_STATUS_PROGRAM_MEMORY_ERROR_OFFSET (3) +#define EMBER_AF_METERING_EXTENDED_STATUS_RAM_ERROR (0x0000000000000010) +#define EMBER_AF_METERING_EXTENDED_STATUS_RAM_ERROR_OFFSET (4) +#define EMBER_AF_METERING_EXTENDED_STATUS_NV_MEMORY_ERROR (0x0000000000000020) +#define EMBER_AF_METERING_EXTENDED_STATUS_NV_MEMORY_ERROR_OFFSET (5) +#define EMBER_AF_METERING_EXTENDED_STATUS_MEASUREMENT_SYSTEM_ERROR (0x0000000000000040) +#define EMBER_AF_METERING_EXTENDED_STATUS_MEASUREMENT_SYSTEM_ERROR_OFFSET (6) +#define EMBER_AF_METERING_EXTENDED_STATUS_WATCHDOG_ERROR (0x0000000000000080) +#define EMBER_AF_METERING_EXTENDED_STATUS_WATCHDOG_ERROR_OFFSET (7) +#define EMBER_AF_METERING_EXTENDED_STATUS_SUPPLY_DISCONNECT_FAILURE (0x0000000000000100) +#define EMBER_AF_METERING_EXTENDED_STATUS_SUPPLY_DISCONNECT_FAILURE_OFFSET (8) +#define EMBER_AF_METERING_EXTENDED_STATUS_SUPPLY_CONNECT_FAILURE (0x0000000000000200) +#define EMBER_AF_METERING_EXTENDED_STATUS_SUPPLY_CONNECT_FAILURE_OFFSET (9) +#define EMBER_AF_METERING_EXTENDED_STATUS_MEASUREMENT_SW_CHANGED_TAMPERED (0x0000000000000400) +#define EMBER_AF_METERING_EXTENDED_STATUS_MEASUREMENT_SW_CHANGED_TAMPERED_OFFSET (10) +#define EMBER_AF_METERING_EXTENDED_STATUS_CLOCK_INVALID (0x0000000000000800) +#define EMBER_AF_METERING_EXTENDED_STATUS_CLOCK_INVALID_OFFSET (11) +#define EMBER_AF_METERING_EXTENDED_STATUS_TEMPERATURE_EXCEEDED (0x0000000000001000) +#define EMBER_AF_METERING_EXTENDED_STATUS_TEMPERATURE_EXCEEDED_OFFSET (12) +#define EMBER_AF_METERING_EXTENDED_STATUS_MOISTURE_DETECTED (0x0000000000002000) +#define EMBER_AF_METERING_EXTENDED_STATUS_MOISTURE_DETECTED_OFFSET (13) +#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_TERMINAL_COVER_REMOVED (0x0000000001000000) +#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_TERMINAL_COVER_REMOVED_OFFSET (24) +#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_INCORRECT_POLARITY (0x0000000002000000) +#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_INCORRECT_POLARITY_OFFSET (25) +#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_CURRENT_WITH_NO_VOLTAGE (0x0000000004000000) +#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_CURRENT_WITH_NO_VOLTAGE_OFFSET (26) +#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_LIMIT_THRESHOLD_EXCEEDED (0x0000000008000000) +#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_LIMIT_THRESHOLD_EXCEEDED_OFFSET (27) +#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_UNDER_VOLTAGE (0x0000000010000000) +#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_UNDER_VOLTAGE_OFFSET (28) +#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_OVER_VOLTAGE (0x0000000020000000) +#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_OVER_VOLTAGE_OFFSET (29) +#define EMBER_AF_METERING_EXTENDED_STATUS_GAS_METER_BATTERY_COVER_REMOVED (0x0000000001000000) +#define EMBER_AF_METERING_EXTENDED_STATUS_GAS_METER_BATTERY_COVER_REMOVED_OFFSET (24) +#define EMBER_AF_METERING_EXTENDED_STATUS_GAS_METER_TILT_TAMPER (0x0000000002000000) +#define EMBER_AF_METERING_EXTENDED_STATUS_GAS_METER_TILT_TAMPER_OFFSET (25) +#define EMBER_AF_METERING_EXTENDED_STATUS_GAS_METER_EXCESS_FLOW (0x0000000004000000) +#define EMBER_AF_METERING_EXTENDED_STATUS_GAS_METER_EXCESS_FLOW_OFFSET (26) +#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_SERVICE_DISCONNECTION_REASON_OFF_DUE_TO_OVER_POWER (0x0000000040000000) +#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_SERVICE_DISCONNECTION_REASON_OFF_DUE_TO_OVER_POWER_OFFSET (30) +#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_SERVICE_DISCONNECTION_REASON_OFF_DUE_TO_OVER_VOLTAGE \ + (0x0000000080000000) +#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_SERVICE_DISCONNECTION_REASON_OFF_DUE_TO_OVER_VOLTAGE_OFFSET (31) +#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_SERVICE_DISCONNECTION_REASON_OFF_DUE_TO_REMOTE_LOAD_CONTROL \ + (0x00000000C0000000) +#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_SERVICE_DISCONNECTION_REASON_OFF_DUE_TO_REMOTE_LOAD_CONTROL_OFFSET (30) +#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_SERVICE_DISCONNECTION_REASON_OFF_BY_OTHER_REMOTE_COMMAND \ + (0x0000000100000000) +#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_SERVICE_DISCONNECTION_REASON_OFF_BY_OTHER_REMOTE_COMMAND_OFFSET (32) +#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_SERVICE_DISCONNECTION_REASON_OFF_DUE_TO_OVERHEATING_SHORT_CIRCUIT \ + (0x0000000140000000) +#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_SERVICE_DISCONNECTION_REASON_OFF_DUE_TO_OVERHEATING_SHORT_CIRCUIT_OFFSET \ + (30) +#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_SERVICE_DISCONNECTION_REASON_OFF_DUE_TO_OVERHEATING_OTHER \ + (0x0000000180000000) +#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_SERVICE_DISCONNECTION_REASON_OFF_DUE_TO_OVERHEATING_OTHER_OFFSET (31) +#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_BI_DIRECTIONAL_OPERATION (0x0000000400000000) +#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_BI_DIRECTIONAL_OPERATION_OFFSET (34) +#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_ACTIVE_POWER_RECEIVED (0x0000000800000000) +#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_ACTIVE_POWER_RECEIVED_OFFSET (35) +#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_MODE_OF_OPERATION (0x0000001000000000) +#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_MODE_OF_OPERATION_OFFSET (36) +#define EMBER_AF_METERING_STATUS_ELECTRICITY_CHECK_METER (0x01) +#define EMBER_AF_METERING_STATUS_ELECTRICITY_CHECK_METER_OFFSET (0) +#define EMBER_AF_METERING_STATUS_ELECTRICITY_LOW_BATTERY (0x02) +#define EMBER_AF_METERING_STATUS_ELECTRICITY_LOW_BATTERY_OFFSET (1) +#define EMBER_AF_METERING_STATUS_ELECTRICITY_TAMPER_DETECT (0x04) +#define EMBER_AF_METERING_STATUS_ELECTRICITY_TAMPER_DETECT_OFFSET (2) +#define EMBER_AF_METERING_STATUS_ELECTRICITY_POWER_FAILURE (0x08) +#define EMBER_AF_METERING_STATUS_ELECTRICITY_POWER_FAILURE_OFFSET (3) +#define EMBER_AF_METERING_STATUS_ELECTRICITY_POWER_QUALITY (0x10) +#define EMBER_AF_METERING_STATUS_ELECTRICITY_POWER_QUALITY_OFFSET (4) +#define EMBER_AF_METERING_STATUS_ELECTRICITY_LEAK_DETECT (0x20) +#define EMBER_AF_METERING_STATUS_ELECTRICITY_LEAK_DETECT_OFFSET (5) +#define EMBER_AF_METERING_STATUS_ELECTRICITY_SERVICE_DISCONNECT_OPEN (0x40) +#define EMBER_AF_METERING_STATUS_ELECTRICITY_SERVICE_DISCONNECT_OPEN_OFFSET (6) +#define EMBER_AF_METERING_STATUS_ELECTRICITY_RESERVED (0x80) +#define EMBER_AF_METERING_STATUS_ELECTRICITY_RESERVED_OFFSET (7) +#define EMBER_AF_METERING_STATUS_GAS_CHECK_METER (0x01) +#define EMBER_AF_METERING_STATUS_GAS_CHECK_METER_OFFSET (0) +#define EMBER_AF_METERING_STATUS_GAS_LOW_BATTERY (0x02) +#define EMBER_AF_METERING_STATUS_GAS_LOW_BATTERY_OFFSET (1) +#define EMBER_AF_METERING_STATUS_GAS_TAMPER_DETECT (0x04) +#define EMBER_AF_METERING_STATUS_GAS_TAMPER_DETECT_OFFSET (2) +#define EMBER_AF_METERING_STATUS_GAS_NOT_DEFINED (0x08) +#define EMBER_AF_METERING_STATUS_GAS_NOT_DEFINED_OFFSET (3) +#define EMBER_AF_METERING_STATUS_GAS_LOW_PRESSURE (0x10) +#define EMBER_AF_METERING_STATUS_GAS_LOW_PRESSURE_OFFSET (4) +#define EMBER_AF_METERING_STATUS_GAS_LEAK_DETECT (0x20) +#define EMBER_AF_METERING_STATUS_GAS_LEAK_DETECT_OFFSET (5) +#define EMBER_AF_METERING_STATUS_GAS_SERVICE_DISCONNECT (0x40) +#define EMBER_AF_METERING_STATUS_GAS_SERVICE_DISCONNECT_OFFSET (6) +#define EMBER_AF_METERING_STATUS_GAS_REVERSE_FLOW (0x80) +#define EMBER_AF_METERING_STATUS_GAS_REVERSE_FLOW_OFFSET (7) +#define EMBER_AF_METERING_STATUS_HEAT_AND_COOLING_CHECK_METER (0x01) +#define EMBER_AF_METERING_STATUS_HEAT_AND_COOLING_CHECK_METER_OFFSET (0) +#define EMBER_AF_METERING_STATUS_HEAT_AND_COOLING_LOW_BATTERY (0x02) +#define EMBER_AF_METERING_STATUS_HEAT_AND_COOLING_LOW_BATTERY_OFFSET (1) +#define EMBER_AF_METERING_STATUS_HEAT_AND_COOLING_TAMPER_DETECT (0x04) +#define EMBER_AF_METERING_STATUS_HEAT_AND_COOLING_TAMPER_DETECT_OFFSET (2) +#define EMBER_AF_METERING_STATUS_HEAT_AND_COOLING_TEMPERATURE_SENSOR (0x08) +#define EMBER_AF_METERING_STATUS_HEAT_AND_COOLING_TEMPERATURE_SENSOR_OFFSET (3) +#define EMBER_AF_METERING_STATUS_HEAT_AND_COOLING_BURST_DETECT (0x10) +#define EMBER_AF_METERING_STATUS_HEAT_AND_COOLING_BURST_DETECT_OFFSET (4) +#define EMBER_AF_METERING_STATUS_HEAT_AND_COOLING_LEAK_DETECT (0x20) +#define EMBER_AF_METERING_STATUS_HEAT_AND_COOLING_LEAK_DETECT_OFFSET (5) +#define EMBER_AF_METERING_STATUS_HEAT_AND_COOLING_SERVICE_DISCONNECT (0x40) +#define EMBER_AF_METERING_STATUS_HEAT_AND_COOLING_SERVICE_DISCONNECT_OFFSET (6) +#define EMBER_AF_METERING_STATUS_HEAT_AND_COOLING_FLOW_SENSOR (0x80) +#define EMBER_AF_METERING_STATUS_HEAT_AND_COOLING_FLOW_SENSOR_OFFSET (7) +#define EMBER_AF_METERING_STATUS_WATER_CHECK_METER (0x01) +#define EMBER_AF_METERING_STATUS_WATER_CHECK_METER_OFFSET (0) +#define EMBER_AF_METERING_STATUS_WATER_LOW_BATTERY (0x02) +#define EMBER_AF_METERING_STATUS_WATER_LOW_BATTERY_OFFSET (1) +#define EMBER_AF_METERING_STATUS_WATER_TAMPER_DETECT (0x04) +#define EMBER_AF_METERING_STATUS_WATER_TAMPER_DETECT_OFFSET (2) +#define EMBER_AF_METERING_STATUS_WATER_PIPE_EMPTY (0x08) +#define EMBER_AF_METERING_STATUS_WATER_PIPE_EMPTY_OFFSET (3) +#define EMBER_AF_METERING_STATUS_WATER_LOW_PRESSURE (0x10) +#define EMBER_AF_METERING_STATUS_WATER_LOW_PRESSURE_OFFSET (4) +#define EMBER_AF_METERING_STATUS_WATER_LEAK_DETECT (0x20) +#define EMBER_AF_METERING_STATUS_WATER_LEAK_DETECT_OFFSET (5) +#define EMBER_AF_METERING_STATUS_WATER_SERVICE_DISCONNECT (0x40) +#define EMBER_AF_METERING_STATUS_WATER_SERVICE_DISCONNECT_OFFSET (6) +#define EMBER_AF_METERING_STATUS_WATER_REVERSE_FLOW (0x80) +#define EMBER_AF_METERING_STATUS_WATER_REVERSE_FLOW_OFFSET (7) +#define EMBER_AF_MODE_FOR_SEQUENCE_HEAT_SETPOINT_FIELD_PRESENT (0x01) +#define EMBER_AF_MODE_FOR_SEQUENCE_HEAT_SETPOINT_FIELD_PRESENT_OFFSET (0) +#define EMBER_AF_MODE_FOR_SEQUENCE_COOL_SETPOINT_FIELD_PRESENT (0x02) +#define EMBER_AF_MODE_FOR_SEQUENCE_COOL_SETPOINT_FIELD_PRESENT_OFFSET (1) +#define EMBER_AF_NUMBER_OF_EVENTS_LOG_PAYLOAD_CONTROL_LOG_PAYLOAD_CONTROL (0x0F) +#define EMBER_AF_NUMBER_OF_EVENTS_LOG_PAYLOAD_CONTROL_LOG_PAYLOAD_CONTROL_OFFSET (0) +#define EMBER_AF_NUMBER_OF_EVENTS_LOG_PAYLOAD_CONTROL_NUMBER_OF_EVENTS (0xF0) +#define EMBER_AF_NUMBER_OF_EVENTS_LOG_PAYLOAD_CONTROL_NUMBER_OF_EVENTS_OFFSET (4) +#define EMBER_AF_OCCUPANCY_OCCUPIED (0x1) +#define EMBER_AF_OCCUPANCY_OCCUPIED_OFFSET (0) +#define EMBER_AF_OCCUPANCY_SENSOR_TYPE_BITMAP_PIR (0x01) +#define EMBER_AF_OCCUPANCY_SENSOR_TYPE_BITMAP_PIR_OFFSET (0) +#define EMBER_AF_OCCUPANCY_SENSOR_TYPE_BITMAP_ULTRASONIC (0x02) +#define EMBER_AF_OCCUPANCY_SENSOR_TYPE_BITMAP_ULTRASONIC_OFFSET (1) +#define EMBER_AF_OCCUPANCY_SENSOR_TYPE_BITMAP_PHYSICAL_CONTACT (0x04) +#define EMBER_AF_OCCUPANCY_SENSOR_TYPE_BITMAP_PHYSICAL_CONTACT_OFFSET (2) +#define EMBER_AF_ON_OFF_CONTROL_ACCEPT_ONLY_WHEN_ON (0x01) +#define EMBER_AF_ON_OFF_CONTROL_ACCEPT_ONLY_WHEN_ON_OFFSET (0) +#define EMBER_AF_ORIGINATOR_ID_SUPPLY_CONTROL_BITS_ACKNOWLEDGE_REQUIRED (0x01) +#define EMBER_AF_ORIGINATOR_ID_SUPPLY_CONTROL_BITS_ACKNOWLEDGE_REQUIRED_OFFSET (0) +#define EMBER_AF_PAYMENT_CONTROL_CONFIGURATION_DISCONNECTION_ENABLED (0x0001) +#define EMBER_AF_PAYMENT_CONTROL_CONFIGURATION_DISCONNECTION_ENABLED_OFFSET (0) +#define EMBER_AF_PAYMENT_CONTROL_CONFIGURATION_PREPAYMENT_ENABLED (0x0002) +#define EMBER_AF_PAYMENT_CONTROL_CONFIGURATION_PREPAYMENT_ENABLED_OFFSET (1) +#define EMBER_AF_PAYMENT_CONTROL_CONFIGURATION_CREDIT_MANAGEMENT_ENABLED (0x0004) +#define EMBER_AF_PAYMENT_CONTROL_CONFIGURATION_CREDIT_MANAGEMENT_ENABLED_OFFSET (2) +#define EMBER_AF_PAYMENT_CONTROL_CONFIGURATION_CREDIT_DISPLAY_ENABLED (0x0010) +#define EMBER_AF_PAYMENT_CONTROL_CONFIGURATION_CREDIT_DISPLAY_ENABLED_OFFSET (4) +#define EMBER_AF_PAYMENT_CONTROL_CONFIGURATION_ACCOUNT_BASE (0x0040) +#define EMBER_AF_PAYMENT_CONTROL_CONFIGURATION_ACCOUNT_BASE_OFFSET (6) +#define EMBER_AF_PAYMENT_CONTROL_CONFIGURATION_CONTACTOR_FITTED (0x0080) +#define EMBER_AF_PAYMENT_CONTROL_CONFIGURATION_CONTACTOR_FITTED_OFFSET (7) +#define EMBER_AF_PAYMENT_CONTROL_CONFIGURATION_STANDING_CHARGE_CONFIGURATION (0x0100) +#define EMBER_AF_PAYMENT_CONTROL_CONFIGURATION_STANDING_CHARGE_CONFIGURATION_OFFSET (8) +#define EMBER_AF_PAYMENT_CONTROL_CONFIGURATION_EMERGENCY_STANDING_CHARGE_CONFIGURATION (0x0200) +#define EMBER_AF_PAYMENT_CONTROL_CONFIGURATION_EMERGENCY_STANDING_CHARGE_CONFIGURATION_OFFSET (9) +#define EMBER_AF_PAYMENT_CONTROL_CONFIGURATION_DEBT_CONFIGURATION (0x0400) +#define EMBER_AF_PAYMENT_CONTROL_CONFIGURATION_DEBT_CONFIGURATION_OFFSET (10) +#define EMBER_AF_PAYMENT_CONTROL_CONFIGURATION_EMERGENCY_DEBT_CONFIGURATION (0x0800) +#define EMBER_AF_PAYMENT_CONTROL_CONFIGURATION_EMERGENCY_DEBT_CONFIGURATION_OFFSET (11) +#define EMBER_AF_PREPAY_SNAPSHOT_PAYLOAD_CAUSE_GENERAL (0x00000001) +#define EMBER_AF_PREPAY_SNAPSHOT_PAYLOAD_CAUSE_GENERAL_OFFSET (0) +#define EMBER_AF_PREPAY_SNAPSHOT_PAYLOAD_CAUSE_CHANGE_OF_TARIFF_INFORMATION (0x00000008) +#define EMBER_AF_PREPAY_SNAPSHOT_PAYLOAD_CAUSE_CHANGE_OF_TARIFF_INFORMATION_OFFSET (3) +#define EMBER_AF_PREPAY_SNAPSHOT_PAYLOAD_CAUSE_CHANGE_OF_PRICE_MATRIX (0x00000010) +#define EMBER_AF_PREPAY_SNAPSHOT_PAYLOAD_CAUSE_CHANGE_OF_PRICE_MATRIX_OFFSET (4) +#define EMBER_AF_PREPAY_SNAPSHOT_PAYLOAD_CAUSE_MANUALLY_TRIGGERED_FROM_CLIENT (0x00000400) +#define EMBER_AF_PREPAY_SNAPSHOT_PAYLOAD_CAUSE_MANUALLY_TRIGGERED_FROM_CLIENT_OFFSET (10) +#define EMBER_AF_PREPAY_SNAPSHOT_PAYLOAD_CAUSE_CHANGE_OF_TENANCY (0x00001000) +#define EMBER_AF_PREPAY_SNAPSHOT_PAYLOAD_CAUSE_CHANGE_OF_TENANCY_OFFSET (12) +#define EMBER_AF_PREPAY_SNAPSHOT_PAYLOAD_CAUSE_CHANGE_OF_SUPPLIER (0x00002000) +#define EMBER_AF_PREPAY_SNAPSHOT_PAYLOAD_CAUSE_CHANGE_OF_SUPPLIER_OFFSET (13) +#define EMBER_AF_PREPAY_SNAPSHOT_PAYLOAD_CAUSE_CHANGE_OF_METER_MODE (0x00004000) +#define EMBER_AF_PREPAY_SNAPSHOT_PAYLOAD_CAUSE_CHANGE_OF_METER_MODE_OFFSET (14) +#define EMBER_AF_PREPAY_SNAPSHOT_PAYLOAD_CAUSE_TOP_UP_ADDITION (0x00040000) +#define EMBER_AF_PREPAY_SNAPSHOT_PAYLOAD_CAUSE_TOP_UP_ADDITION_OFFSET (18) +#define EMBER_AF_PREPAY_SNAPSHOT_PAYLOAD_CAUSE_DEBT_CREDIT_ADDITION (0x00080000) +#define EMBER_AF_PREPAY_SNAPSHOT_PAYLOAD_CAUSE_DEBT_CREDIT_ADDITION_OFFSET (19) +#define EMBER_AF_PREPAYMENT_ALARM_STATUS_LOW_CREDIT_WARNING (0x0001) +#define EMBER_AF_PREPAYMENT_ALARM_STATUS_LOW_CREDIT_WARNING_OFFSET (0) +#define EMBER_AF_PREPAYMENT_ALARM_STATUS_TOP_UP_CODE_ERROR (0x0002) +#define EMBER_AF_PREPAYMENT_ALARM_STATUS_TOP_UP_CODE_ERROR_OFFSET (1) +#define EMBER_AF_PREPAYMENT_ALARM_STATUS_TOP_UP_CODE_ALREADY_USED (0x0004) +#define EMBER_AF_PREPAYMENT_ALARM_STATUS_TOP_UP_CODE_ALREADY_USED_OFFSET (2) +#define EMBER_AF_PREPAYMENT_ALARM_STATUS_TOP_UP_CODE_INVALID (0x0008) +#define EMBER_AF_PREPAYMENT_ALARM_STATUS_TOP_UP_CODE_INVALID_OFFSET (3) +#define EMBER_AF_PREPAYMENT_ALARM_STATUS_FRIENDLY_CREDIT_IN_USE (0x0010) +#define EMBER_AF_PREPAYMENT_ALARM_STATUS_FRIENDLY_CREDIT_IN_USE_OFFSET (4) +#define EMBER_AF_PREPAYMENT_ALARM_STATUS_FRIENDLY_CREDIT_PERIOD_END_WARNING (0x0020) +#define EMBER_AF_PREPAYMENT_ALARM_STATUS_FRIENDLY_CREDIT_PERIOD_END_WARNING_OFFSET (5) +#define EMBER_AF_PREPAYMENT_ALARM_STATUS_EC_AVAILABLE (0x0040) +#define EMBER_AF_PREPAYMENT_ALARM_STATUS_EC_AVAILABLE_OFFSET (6) +#define EMBER_AF_PREPAYMENT_ALARM_STATUS_UNAUTHORISED_ENERGY_USE (0x0080) +#define EMBER_AF_PREPAYMENT_ALARM_STATUS_UNAUTHORISED_ENERGY_USE_OFFSET (7) +#define EMBER_AF_PREPAYMENT_ALARM_STATUS_DISCONNECTED_SUPPLY_DUE_TO_CREDIT (0x0100) +#define EMBER_AF_PREPAYMENT_ALARM_STATUS_DISCONNECTED_SUPPLY_DUE_TO_CREDIT_OFFSET (8) +#define EMBER_AF_PREPAYMENT_ALARM_STATUS_DISCONNECTED_SUPPLY_DUE_TO_TAMPER (0x0200) +#define EMBER_AF_PREPAYMENT_ALARM_STATUS_DISCONNECTED_SUPPLY_DUE_TO_TAMPER_OFFSET (9) +#define EMBER_AF_PREPAYMENT_ALARM_STATUS_DISCONNECTED_SUPPLY_DUE_TO_HES (0x0400) +#define EMBER_AF_PREPAYMENT_ALARM_STATUS_DISCONNECTED_SUPPLY_DUE_TO_HES_OFFSET (10) +#define EMBER_AF_PREPAYMENT_ALARM_STATUS_PHYSICAL_ATTACK (0x0800) +#define EMBER_AF_PREPAYMENT_ALARM_STATUS_PHYSICAL_ATTACK_OFFSET (11) +#define EMBER_AF_PREPAYMENT_ALARM_STATUS_ELECTRONIC_ATTACK (0x1000) +#define EMBER_AF_PREPAYMENT_ALARM_STATUS_ELECTRONIC_ATTACK_OFFSET (12) +#define EMBER_AF_PREPAYMENT_ALARM_STATUS_MANUFACTURE_ALARM_CODE_A (0x2000) +#define EMBER_AF_PREPAYMENT_ALARM_STATUS_MANUFACTURE_ALARM_CODE_A_OFFSET (13) +#define EMBER_AF_PREPAYMENT_ALARM_STATUS_MANUFACTURE_ALARM_CODE_B (0x4000) +#define EMBER_AF_PREPAYMENT_ALARM_STATUS_MANUFACTURE_ALARM_CODE_B_OFFSET (14) +#define EMBER_AF_PRICE_CONTROL_MASK_PRICE_ACKNOWLEDGEMENT_REQUIRED (0x01) +#define EMBER_AF_PRICE_CONTROL_MASK_PRICE_ACKNOWLEDGEMENT_REQUIRED_OFFSET (0) +#define EMBER_AF_PRICE_CONTROL_MASK_TOTAL_TIERS_EXCEEDS15 (0x02) +#define EMBER_AF_PRICE_CONTROL_MASK_TOTAL_TIERS_EXCEEDS15_OFFSET (1) +#define EMBER_AF_PRICE_MATRIX_SUB_PAYLOAD_CONTROL_TOU_BASED (0x01) +#define EMBER_AF_PRICE_MATRIX_SUB_PAYLOAD_CONTROL_TOU_BASED_OFFSET (0) +#define EMBER_AF_PRICE_NUMBER_OF_PRICE_TIERS_AND_REGISTER_TIER_REGISTER_TIER (0x0F) +#define EMBER_AF_PRICE_NUMBER_OF_PRICE_TIERS_AND_REGISTER_TIER_REGISTER_TIER_OFFSET (0) +#define EMBER_AF_PRICE_NUMBER_OF_PRICE_TIERS_AND_REGISTER_TIER_NUMBER_OF_PRICE_TIERS (0xF0) +#define EMBER_AF_PRICE_NUMBER_OF_PRICE_TIERS_AND_REGISTER_TIER_NUMBER_OF_PRICE_TIERS_OFFSET (4) +#define EMBER_AF_PRICE_TRAILING_DIGIT_TRAILING_DIGIT (0xF0) +#define EMBER_AF_PRICE_TRAILING_DIGIT_TRAILING_DIGIT_OFFSET (4) +#define EMBER_AF_PRICE_TRAILING_DIGIT_AND_PRICE_TIER_PRICE_TIER (0x0F) +#define EMBER_AF_PRICE_TRAILING_DIGIT_AND_PRICE_TIER_PRICE_TIER_OFFSET (0) +#define EMBER_AF_PRICE_TRAILING_DIGIT_AND_PRICE_TIER_TRAILING_DIGIT (0xF0) +#define EMBER_AF_PRICE_TRAILING_DIGIT_AND_PRICE_TIER_TRAILING_DIGIT_OFFSET (4) +#define EMBER_AF_PROPOSED_CHANGE_CONTROL_PRE_SNAPSHOTS (0x00000001) +#define EMBER_AF_PROPOSED_CHANGE_CONTROL_PRE_SNAPSHOTS_OFFSET (0) +#define EMBER_AF_PROPOSED_CHANGE_CONTROL_POST_SNAPSHOTS (0x00000002) +#define EMBER_AF_PROPOSED_CHANGE_CONTROL_POST_SNAPSHOTS_OFFSET (1) +#define EMBER_AF_PROPOSED_CHANGE_CONTROL_RESET_CREDIT_REGISTER (0x00000004) +#define EMBER_AF_PROPOSED_CHANGE_CONTROL_RESET_CREDIT_REGISTER_OFFSET (2) +#define EMBER_AF_PROPOSED_CHANGE_CONTROL_RESET_DEBIT_REGISTER (0x00000008) +#define EMBER_AF_PROPOSED_CHANGE_CONTROL_RESET_DEBIT_REGISTER_OFFSET (3) +#define EMBER_AF_PROPOSED_CHANGE_CONTROL_RESET_BILLING_PERIOD (0x00000010) +#define EMBER_AF_PROPOSED_CHANGE_CONTROL_RESET_BILLING_PERIOD_OFFSET (4) +#define EMBER_AF_PROPOSED_CHANGE_CONTROL_CLEAR_TARIFF_PLAN (0x00000020) +#define EMBER_AF_PROPOSED_CHANGE_CONTROL_CLEAR_TARIFF_PLAN_OFFSET (5) +#define EMBER_AF_PROPOSED_CHANGE_CONTROL_CLEAR_STANDING_CHARGE (0x00000040) +#define EMBER_AF_PROPOSED_CHANGE_CONTROL_CLEAR_STANDING_CHARGE_OFFSET (6) +#define EMBER_AF_PROPOSED_CHANGE_CONTROL_BLOCK_HISTORICAL_LOAD_PROFILE_INFORMATION (0x00000080) +#define EMBER_AF_PROPOSED_CHANGE_CONTROL_BLOCK_HISTORICAL_LOAD_PROFILE_INFORMATION_OFFSET (7) +#define EMBER_AF_PROPOSED_CHANGE_CONTROL_CLEAR_HISTORICAL_LOAD_PROFILE_INFORMATION (0x00000100) +#define EMBER_AF_PROPOSED_CHANGE_CONTROL_CLEAR_HISTORICAL_LOAD_PROFILE_INFORMATION_OFFSET (8) +#define EMBER_AF_PROPOSED_CHANGE_CONTROL_CLEAR_IHD_DATA_CONSUMER (0x00000200) +#define EMBER_AF_PROPOSED_CHANGE_CONTROL_CLEAR_IHD_DATA_CONSUMER_OFFSET (9) +#define EMBER_AF_PROPOSED_CHANGE_CONTROL_CLEAR_IHD_DATA_SUPPLIER (0x00000400) +#define EMBER_AF_PROPOSED_CHANGE_CONTROL_CLEAR_IHD_DATA_SUPPLIER_OFFSET (10) +#define EMBER_AF_PROPOSED_CHANGE_CONTROL_METER_CONNECTOR_STATE_ON_OFF_ARMED (0x00001800) +#define EMBER_AF_PROPOSED_CHANGE_CONTROL_METER_CONNECTOR_STATE_ON_OFF_ARMED_OFFSET (11) +#define EMBER_AF_PROPOSED_CHANGE_CONTROL_CLEAR_TRANSACTION_LOG (0x00002000) +#define EMBER_AF_PROPOSED_CHANGE_CONTROL_CLEAR_TRANSACTION_LOG_OFFSET (13) +#define EMBER_AF_PROPOSED_CHANGE_CONTROL_CLEAR_PREPAYMENT_LOG (0x00004000) +#define EMBER_AF_PROPOSED_CHANGE_CONTROL_CLEAR_PREPAYMENT_LOG_OFFSET (14) +#define EMBER_AF_PUMP_ALARM_MASK_SUPPLY_VOLTAGE_TOO_LOW (0x1) +#define EMBER_AF_PUMP_ALARM_MASK_SUPPLY_VOLTAGE_TOO_LOW_OFFSET (0) +#define EMBER_AF_PUMP_ALARM_MASK_SUPPLY_VOLTAGE_TOO_HIGH (0x2) +#define EMBER_AF_PUMP_ALARM_MASK_SUPPLY_VOLTAGE_TOO_HIGH_OFFSET (1) +#define EMBER_AF_PUMP_ALARM_MASK_POWER_MISSING_PHASE (0x4) +#define EMBER_AF_PUMP_ALARM_MASK_POWER_MISSING_PHASE_OFFSET (2) +#define EMBER_AF_PUMP_ALARM_MASK_SYSTEM_PRESSURE_TOO_LOW (0x8) +#define EMBER_AF_PUMP_ALARM_MASK_SYSTEM_PRESSURE_TOO_LOW_OFFSET (3) +#define EMBER_AF_PUMP_ALARM_MASK_SYSTEM_PRESSURE_TOO_HIGH (0x10) +#define EMBER_AF_PUMP_ALARM_MASK_SYSTEM_PRESSURE_TOO_HIGH_OFFSET (4) +#define EMBER_AF_PUMP_ALARM_MASK_DRY_RUNNING (0x20) +#define EMBER_AF_PUMP_ALARM_MASK_DRY_RUNNING_OFFSET (5) +#define EMBER_AF_PUMP_ALARM_MASK_MOTOR_TEMPERATURE_TOO_HIGH (0x40) +#define EMBER_AF_PUMP_ALARM_MASK_MOTOR_TEMPERATURE_TOO_HIGH_OFFSET (6) +#define EMBER_AF_PUMP_ALARM_MASK_PUMP_MOTOR_HAS_FATAL_FAILURE (0x80) +#define EMBER_AF_PUMP_ALARM_MASK_PUMP_MOTOR_HAS_FATAL_FAILURE_OFFSET (7) +#define EMBER_AF_PUMP_ALARM_MASK_ELECTRONIC_TEMPERATURE_TOO_HIGH (0x100) +#define EMBER_AF_PUMP_ALARM_MASK_ELECTRONIC_TEMPERATURE_TOO_HIGH_OFFSET (8) +#define EMBER_AF_PUMP_ALARM_MASK_PUMP_BLOCKED (0x200) +#define EMBER_AF_PUMP_ALARM_MASK_PUMP_BLOCKED_OFFSET (9) +#define EMBER_AF_PUMP_ALARM_MASK_SENSOR_FAILURE (0x400) +#define EMBER_AF_PUMP_ALARM_MASK_SENSOR_FAILURE_OFFSET (10) +#define EMBER_AF_PUMP_ALARM_MASK_ELECTRONIC_NON_FATAL_FAILURE (0x800) +#define EMBER_AF_PUMP_ALARM_MASK_ELECTRONIC_NON_FATAL_FAILURE_OFFSET (11) +#define EMBER_AF_PUMP_ALARM_MASK_ELECTRONIC_FATAL_FAILURE (0x1000) +#define EMBER_AF_PUMP_ALARM_MASK_ELECTRONIC_FATAL_FAILURE_OFFSET (12) +#define EMBER_AF_PUMP_ALARM_MASK_GENERAL_FAULT (0x2000) +#define EMBER_AF_PUMP_ALARM_MASK_GENERAL_FAULT_OFFSET (13) +#define EMBER_AF_PUMP_STATUS_DEVICE_FAULT (0x1) +#define EMBER_AF_PUMP_STATUS_DEVICE_FAULT_OFFSET (0) +#define EMBER_AF_PUMP_STATUS_SUPPLYFAULT (0x2) +#define EMBER_AF_PUMP_STATUS_SUPPLYFAULT_OFFSET (1) +#define EMBER_AF_PUMP_STATUS_SPEED_LOW (0x4) +#define EMBER_AF_PUMP_STATUS_SPEED_LOW_OFFSET (2) +#define EMBER_AF_PUMP_STATUS_SPEED_HIGH (0x8) +#define EMBER_AF_PUMP_STATUS_SPEED_HIGH_OFFSET (3) +#define EMBER_AF_PUMP_STATUS_LOCAL_OVERRIDE (0x10) +#define EMBER_AF_PUMP_STATUS_LOCAL_OVERRIDE_OFFSET (4) +#define EMBER_AF_PUMP_STATUS_RUNNING (0x20) +#define EMBER_AF_PUMP_STATUS_RUNNING_OFFSET (5) +#define EMBER_AF_PUMP_STATUS_REMOTE_PRESSURE (0x40) +#define EMBER_AF_PUMP_STATUS_REMOTE_PRESSURE_OFFSET (6) +#define EMBER_AF_PUMP_STATUS_REMOTE_FLOW (0x80) +#define EMBER_AF_PUMP_STATUS_REMOTE_FLOW_OFFSET (7) +#define EMBER_AF_PUMP_STATUS_REMOTE_TEMPERATURE (0x100) +#define EMBER_AF_PUMP_STATUS_REMOTE_TEMPERATURE_OFFSET (8) +#define EMBER_AF_REMOTE_ENABLE_FLAGS_AND_DEVICE_STATUS2_REMOTE_ENABLE_FLAGS (0x0F) +#define EMBER_AF_REMOTE_ENABLE_FLAGS_AND_DEVICE_STATUS2_REMOTE_ENABLE_FLAGS_OFFSET (0) +#define EMBER_AF_REMOTE_ENABLE_FLAGS_AND_DEVICE_STATUS2_DEVICE_STATUS2_STRUCTURE (0xF0) +#define EMBER_AF_REMOTE_ENABLE_FLAGS_AND_DEVICE_STATUS2_DEVICE_STATUS2_STRUCTURE_OFFSET (4) +#define EMBER_AF_RESET_OPTIONS_RESET_CURRENT (0x1) +#define EMBER_AF_RESET_OPTIONS_RESET_CURRENT_OFFSET (0) +#define EMBER_AF_RESET_OPTIONS_RESET_ALL (0x2) +#define EMBER_AF_RESET_OPTIONS_RESET_ALL_OFFSET (1) +#define EMBER_AF_RESET_OPTIONS_ERASE_INDEX (0x4) +#define EMBER_AF_RESET_OPTIONS_ERASE_INDEX_OFFSET (2) +#define EMBER_AF_RESTART_OPTIONS_START_MODE1 (0x1) +#define EMBER_AF_RESTART_OPTIONS_START_MODE1_OFFSET (0) +#define EMBER_AF_RESTART_OPTIONS_STARTUP_MODE2 (0x2) +#define EMBER_AF_RESTART_OPTIONS_STARTUP_MODE2_OFFSET (1) +#define EMBER_AF_RESTART_OPTIONS_STARTUP_MODE3 (0x4) +#define EMBER_AF_RESTART_OPTIONS_STARTUP_MODE3_OFFSET (2) +#define EMBER_AF_RESTART_OPTIONS_IMMEDIATE (0x8) +#define EMBER_AF_RESTART_OPTIONS_IMMEDIATE_OFFSET (3) +#define EMBER_AF_SCENES_COPY_MODE_COPY_ALL_SCENES (0x01) +#define EMBER_AF_SCENES_COPY_MODE_COPY_ALL_SCENES_OFFSET (0) +#define EMBER_AF_SHADE_CLOSURE_STATUS_OPERATIONAL (0x1) +#define EMBER_AF_SHADE_CLOSURE_STATUS_OPERATIONAL_OFFSET (0) +#define EMBER_AF_SHADE_CLOSURE_STATUS_ADJUSTING (0x2) +#define EMBER_AF_SHADE_CLOSURE_STATUS_ADJUSTING_OFFSET (1) +#define EMBER_AF_SHADE_CLOSURE_STATUS_OPENING (0x4) +#define EMBER_AF_SHADE_CLOSURE_STATUS_OPENING_OFFSET (2) +#define EMBER_AF_SHADE_CLOSURE_STATUS_MOTOR_OPENING (0x8) +#define EMBER_AF_SHADE_CLOSURE_STATUS_MOTOR_OPENING_OFFSET (3) +#define EMBER_AF_SNAPSHOT_CAUSE_GENERAL (0x00000001) +#define EMBER_AF_SNAPSHOT_CAUSE_GENERAL_OFFSET (0) +#define EMBER_AF_SNAPSHOT_CAUSE_END_OF_BILLING_PERIOD (0x00000002) +#define EMBER_AF_SNAPSHOT_CAUSE_END_OF_BILLING_PERIOD_OFFSET (1) +#define EMBER_AF_SNAPSHOT_CAUSE_END_OF_BLOCK_PERIOD (0x00000004) +#define EMBER_AF_SNAPSHOT_CAUSE_END_OF_BLOCK_PERIOD_OFFSET (2) +#define EMBER_AF_SNAPSHOT_CAUSE_CHANGE_OF_TARIFF_INFORMATION (0x00000008) +#define EMBER_AF_SNAPSHOT_CAUSE_CHANGE_OF_TARIFF_INFORMATION_OFFSET (3) +#define EMBER_AF_SNAPSHOT_CAUSE_CHANGE_OF_PRICE_MATRIX (0x00000010) +#define EMBER_AF_SNAPSHOT_CAUSE_CHANGE_OF_PRICE_MATRIX_OFFSET (4) +#define EMBER_AF_SNAPSHOT_CAUSE_CHANGE_OF_BLOCK_THRESHOLDS (0x00000020) +#define EMBER_AF_SNAPSHOT_CAUSE_CHANGE_OF_BLOCK_THRESHOLDS_OFFSET (5) +#define EMBER_AF_SNAPSHOT_CAUSE_CHANGE_OF_CV (0x00000040) +#define EMBER_AF_SNAPSHOT_CAUSE_CHANGE_OF_CV_OFFSET (6) +#define EMBER_AF_SNAPSHOT_CAUSE_CHANGE_OF_CF (0x00000080) +#define EMBER_AF_SNAPSHOT_CAUSE_CHANGE_OF_CF_OFFSET (7) +#define EMBER_AF_SNAPSHOT_CAUSE_CHANGE_OF_CALENDAR (0x00000100) +#define EMBER_AF_SNAPSHOT_CAUSE_CHANGE_OF_CALENDAR_OFFSET (8) +#define EMBER_AF_SNAPSHOT_CAUSE_CRITICAL_PEAK_PRICING (0x00000200) +#define EMBER_AF_SNAPSHOT_CAUSE_CRITICAL_PEAK_PRICING_OFFSET (9) +#define EMBER_AF_SNAPSHOT_CAUSE_MANUALLY_TRIGGERED_FROM_CLIENT (0x00000400) +#define EMBER_AF_SNAPSHOT_CAUSE_MANUALLY_TRIGGERED_FROM_CLIENT_OFFSET (10) +#define EMBER_AF_SNAPSHOT_CAUSE_END_OF_RESOLVE_PERIOD (0x00000800) +#define EMBER_AF_SNAPSHOT_CAUSE_END_OF_RESOLVE_PERIOD_OFFSET (11) +#define EMBER_AF_SNAPSHOT_CAUSE_CHANGE_OF_TENANCY (0x00001000) +#define EMBER_AF_SNAPSHOT_CAUSE_CHANGE_OF_TENANCY_OFFSET (12) +#define EMBER_AF_SNAPSHOT_CAUSE_CHANGE_OF_SUPPLIER (0x00002000) +#define EMBER_AF_SNAPSHOT_CAUSE_CHANGE_OF_SUPPLIER_OFFSET (13) +#define EMBER_AF_SNAPSHOT_CAUSE_CHANGE_OF_MODE (0x00004000) +#define EMBER_AF_SNAPSHOT_CAUSE_CHANGE_OF_MODE_OFFSET (14) +#define EMBER_AF_SNAPSHOT_CAUSE_DEBT_PAYMENT (0x00008000) +#define EMBER_AF_SNAPSHOT_CAUSE_DEBT_PAYMENT_OFFSET (15) +#define EMBER_AF_SNAPSHOT_CAUSE_SCHEDULED_SNAPSHOT (0x00010000) +#define EMBER_AF_SNAPSHOT_CAUSE_SCHEDULED_SNAPSHOT_OFFSET (16) +#define EMBER_AF_SNAPSHOT_CAUSE_OTA_FIRMWARE_DOWNLOAD (0x00020000) +#define EMBER_AF_SNAPSHOT_CAUSE_OTA_FIRMWARE_DOWNLOAD_OFFSET (17) +#define EMBER_AF_SQUAWK_INFO_MODE (0xf0) +#define EMBER_AF_SQUAWK_INFO_MODE_OFFSET (4) +#define EMBER_AF_SQUAWK_INFO_STROBE (0x08) +#define EMBER_AF_SQUAWK_INFO_STROBE_OFFSET (3) +#define EMBER_AF_SQUAWK_INFO_LEVEL (0x03) +#define EMBER_AF_SQUAWK_INFO_LEVEL_OFFSET (0) +#define EMBER_AF_START_TIME_MINUTES (0x003F) +#define EMBER_AF_START_TIME_MINUTES_OFFSET (0) +#define EMBER_AF_START_TIME_TIME_ENCODING (0x00C0) +#define EMBER_AF_START_TIME_TIME_ENCODING_OFFSET (6) +#define EMBER_AF_START_TIME_HOURS (0xFF00) +#define EMBER_AF_START_TIME_HOURS_OFFSET (8) +#define EMBER_AF_SUPPLY_CONTROL_BITS_ACKNOWLEDGE_REQUIRED (0x01) +#define EMBER_AF_SUPPLY_CONTROL_BITS_ACKNOWLEDGE_REQUIRED_OFFSET (0) +#define EMBER_AF_TARIFF_TYPE_CHARGING_SCHEME_TARIFF_TYPE (0x0F) +#define EMBER_AF_TARIFF_TYPE_CHARGING_SCHEME_TARIFF_TYPE_OFFSET (0) +#define EMBER_AF_TARIFF_TYPE_CHARGING_SCHEME_TARIFF_CHARGING_SCHEME (0xF0) +#define EMBER_AF_TARIFF_TYPE_CHARGING_SCHEME_TARIFF_CHARGING_SCHEME_OFFSET (4) +#define EMBER_AF_THERMOSTAT_ALARM_MASK_INITIALIZATION_FAILURE (0x1) +#define EMBER_AF_THERMOSTAT_ALARM_MASK_INITIALIZATION_FAILURE_OFFSET (0) +#define EMBER_AF_THERMOSTAT_ALARM_MASK_HARDWARE_FAILURE (0x2) +#define EMBER_AF_THERMOSTAT_ALARM_MASK_HARDWARE_FAILURE_OFFSET (1) +#define EMBER_AF_THERMOSTAT_ALARM_MASK_SELFCALIBRATION_FAILURE (0x4) +#define EMBER_AF_THERMOSTAT_ALARM_MASK_SELFCALIBRATION_FAILURE_OFFSET (2) +#define EMBER_AF_THERMOSTAT_OCCUPANCY_OCCUPIED (0x1) +#define EMBER_AF_THERMOSTAT_OCCUPANCY_OCCUPIED_OFFSET (0) +#define EMBER_AF_THERMOSTAT_RUNNING_STATE_HEAT_STATE_ON (0x0001) +#define EMBER_AF_THERMOSTAT_RUNNING_STATE_HEAT_STATE_ON_OFFSET (0) +#define EMBER_AF_THERMOSTAT_RUNNING_STATE_COOL_STATE_ON (0x0002) +#define EMBER_AF_THERMOSTAT_RUNNING_STATE_COOL_STATE_ON_OFFSET (1) +#define EMBER_AF_THERMOSTAT_RUNNING_STATE_FAN_STATE_ON (0x0004) +#define EMBER_AF_THERMOSTAT_RUNNING_STATE_FAN_STATE_ON_OFFSET (2) +#define EMBER_AF_THERMOSTAT_RUNNING_STATE_HEAT_SECOND_STAGE_STATE_ON (0x0008) +#define EMBER_AF_THERMOSTAT_RUNNING_STATE_HEAT_SECOND_STAGE_STATE_ON_OFFSET (3) +#define EMBER_AF_THERMOSTAT_RUNNING_STATE_COOL_SECOND_STAGE_STATE_ON (0x0010) +#define EMBER_AF_THERMOSTAT_RUNNING_STATE_COOL_SECOND_STAGE_STATE_ON_OFFSET (4) +#define EMBER_AF_THERMOSTAT_RUNNING_STATE_FAN_SECOND_STAGE_STATE_ON (0x0020) +#define EMBER_AF_THERMOSTAT_RUNNING_STATE_FAN_SECOND_STAGE_STATE_ON_OFFSET (5) +#define EMBER_AF_THERMOSTAT_RUNNING_STATE_FAN_THIRD_STAGE_STATE_ON (0x0040) +#define EMBER_AF_THERMOSTAT_RUNNING_STATE_FAN_THIRD_STAGE_STATE_ON_OFFSET (6) +#define EMBER_AF_THERMOSTAT_SENSING_LOCAL_TEMP_SENSED_REMOTELY (0x1) +#define EMBER_AF_THERMOSTAT_SENSING_LOCAL_TEMP_SENSED_REMOTELY_OFFSET (0) +#define EMBER_AF_THERMOSTAT_SENSING_OUTDOOR_TEMP_SENSED_REMOTELY (0x2) +#define EMBER_AF_THERMOSTAT_SENSING_OUTDOOR_TEMP_SENSED_REMOTELY_OFFSET (1) +#define EMBER_AF_THERMOSTAT_SENSING_OCCUPANCY_SENSED_REMOTELY (0x4) +#define EMBER_AF_THERMOSTAT_SENSING_OCCUPANCY_SENSED_REMOTELY_OFFSET (2) +#define EMBER_AF_TIME_STATUS_MASK_MASTER_CLOCK (0x1) +#define EMBER_AF_TIME_STATUS_MASK_MASTER_CLOCK_OFFSET (0) +#define EMBER_AF_TIME_STATUS_MASK_SYNCHRONIZED (0x2) +#define EMBER_AF_TIME_STATUS_MASK_SYNCHRONIZED_OFFSET (1) +#define EMBER_AF_TIME_STATUS_MASK_MASTER_ZONE_DST (0x4) +#define EMBER_AF_TIME_STATUS_MASK_MASTER_ZONE_DST_OFFSET (2) +#define EMBER_AF_TIME_STATUS_MASK_SUPERSEDING (0x8) +#define EMBER_AF_TIME_STATUS_MASK_SUPERSEDING_OFFSET (3) +#define EMBER_AF_WARNING_INFO_MODE (0xf0) +#define EMBER_AF_WARNING_INFO_MODE_OFFSET (4) +#define EMBER_AF_WARNING_INFO_STROBE (0x0c) +#define EMBER_AF_WARNING_INFO_STROBE_OFFSET (2) +#define EMBER_AF_WARNING_INFO_SIREN_LEVEL (0x03) +#define EMBER_AF_WARNING_INFO_SIREN_LEVEL_OFFSET (0) +#define EMBER_AF_ZIGBEE_INFORMATION_LOGICAL_TYPE (0x03) +#define EMBER_AF_ZIGBEE_INFORMATION_LOGICAL_TYPE_OFFSET (0) +#define EMBER_AF_ZIGBEE_INFORMATION_RX_ON_WHEN_IDLE (0x04) +#define EMBER_AF_ZIGBEE_INFORMATION_RX_ON_WHEN_IDLE_OFFSET (2) +#define EMBER_AF_ZLL_INFORMATION_FACTORY_NEW (0x01) +#define EMBER_AF_ZLL_INFORMATION_FACTORY_NEW_OFFSET (0) +#define EMBER_AF_ZLL_INFORMATION_ADDRESS_ASSIGNMENT (0x02) +#define EMBER_AF_ZLL_INFORMATION_ADDRESS_ASSIGNMENT_OFFSET (1) +#define EMBER_AF_ZLL_INFORMATION_TOUCH_LINK_INITIATOR (0x10) +#define EMBER_AF_ZLL_INFORMATION_TOUCH_LINK_INITIATOR_OFFSET (4) +#define EMBER_AF_ZLL_INFORMATION_TOUCH_LINK_PRIORITY_REQUEST (0x20) +#define EMBER_AF_ZLL_INFORMATION_TOUCH_LINK_PRIORITY_REQUEST_OFFSET (5) +#define EMBER_AF_ZLL_INFORMATION_PROFILE_INTEROP (0x80) +#define EMBER_AF_ZLL_INFORMATION_PROFILE_INTEROP_OFFSET (7) diff --git a/examples/lighting-app/lighting-common/gen/gen_config.h b/examples/lighting-app/lighting-common/gen/gen_config.h index f7efba427e27c3..cb2ad59b3767e1 100644 --- a/examples/lighting-app/lighting-common/gen/gen_config.h +++ b/examples/lighting-app/lighting-common/gen/gen_config.h @@ -1,23 +1,7 @@ -/** - * - * 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 + * 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. @@ -31,241 +15,41 @@ * 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 SILABS_ZNET_CONFIG -#define SILABS_ZNET_CONFIG - -#include "debug-printing-test.h" - -/**** Included Header Section ****/ - -// Networks -#define EM_AF_GENERATED_NETWORK_TYPES \ - { \ - EM_AF_NETWORK_TYPE_ZIGBEE_PRO, /* Primary */ \ - } -#define EM_AF_GENERATED_ZIGBEE_PRO_NETWORKS \ - { \ - { \ - /* Primary */ \ - ZA_ROUTER, \ - EMBER_AF_SECURITY_PROFILE_Z3, \ - }, \ - } -#define EM_AF_GENERATED_NETWORK_STRINGS "Primary (pro)", /**** ZCL Section ****/ -#define ZA_PROMPT "ZigbeeMinimalSoc" -#define ZCL_USING_ON_OFF_CLUSTER_SERVER -#define EMBER_AF_MANUFACTURER_CODE 0x1002 -#define EMBER_AF_DEFAULT_RESPONSE_POLICY_ALWAYS - -/**** Cluster endpoint counts ****/ -#define EMBER_AF_ON_OFF_CLUSTER_SERVER_ENDPOINT_COUNT (1) - -/**** Cluster Endpoint Summaries ****/ -#define EMBER_AF_MAX_SERVER_CLUSTER_COUNT (1) -#define EMBER_AF_MAX_CLIENT_CLUSTER_COUNT (0) -#define EMBER_AF_MAX_TOTAL_CLUSTER_COUNT (1) - -/**** CLI Section ****/ -#define EMBER_AF_GENERATE_CLI - -/**** Security Section ****/ -#define EMBER_AF_HAS_SECURITY_PROFILE_Z3 - -/**** Network Section ****/ -#define EMBER_SUPPORTED_NETWORKS (1) -#define EMBER_AF_NETWORK_INDEX_PRIMARY (0) -#define EMBER_AF_DEFAULT_NETWORK_INDEX EMBER_AF_NETWORK_INDEX_PRIMARY -#define EMBER_AF_HAS_ROUTER_NETWORK -#define EMBER_AF_HAS_RX_ON_WHEN_IDLE_NETWORK -#define EMBER_AF_TX_POWER_MODE EMBER_TX_POWER_MODE_USE_TOKEN - -/**** Callback Section ****/ -#define EMBER_CALLBACK_STACK_STATUS -#define EMBER_CALLBACK_ON_OFF_CLUSTER_OFF -#define EMBER_CALLBACK_ON_OFF_CLUSTER_ON -#define EMBER_CALLBACK_ON_OFF_CLUSTER_TOGGLE -#define EMBER_CALLBACK_ON_OFF_CLUSTER_ON_OFF_CLUSTER_SERVER_INIT -#define EMBER_CALLBACK_ENERGY_SCAN_RESULT -#define EMBER_CALLBACK_SCAN_COMPLETE -#define EMBER_CALLBACK_NETWORK_FOUND -/**** Debug printing section ****/ - -// Global switch -#define EMBER_AF_PRINT_ENABLE - -#define EMBER_AF_SUPPORT_COMMAND_DISCOVERY -// Generated plugin macros +// Prevent multiple inclusion +#pragma once -// Use this macro to check if Antenna Stub plugin is included -#define EMBER_AF_PLUGIN_ANTENNA_STUB - -// Use this macro to check if Binding Table Library plugin is included -#define EMBER_AF_PLUGIN_BINDING_TABLE_LIBRARY // User options for plugin Binding Table Library #define EMBER_BINDING_TABLE_SIZE 10 -// Use this macro to check if CCM* Encryption plugin is included -#define EMBER_AF_PLUGIN_CCM_ENCRYPTION -// User options for plugin CCM* Encryption -#define EMBER_AF_PLUGIN_CCM_ENCRYPTION_SOFTWARE_CCM -#define USE_SOFTWARE_CCM - -// Use this macro to check if Radio Coexistence Stub plugin is included -#define EMBER_AF_PLUGIN_COEXISTENCE_STUB - -// Use this macro to check if Debug Basic Library plugin is included -#define EMBER_AF_PLUGIN_DEBUG_BASIC_LIBRARY - -// Use this macro to check if Debug JTAG plugin is included -#define EMBER_AF_PLUGIN_DEBUG_JTAG - -// Use this macro to check if Ember Minimal Printf plugin is included -#define EMBER_AF_PLUGIN_EMBER_MINIMAL_PRINTF - -// Use this macro to check if HAL Library plugin is included -#define EMBER_AF_PLUGIN_HAL_LIBRARY - -// Use this macro to check if mbed TLS plugin is included -#define EMBER_AF_PLUGIN_MBEDTLS -// User options for plugin mbed TLS -#define EMBER_AF_PLUGIN_MBEDTLS_CONF_DEVICE_ACCELERATION -#define EMBER_AF_PLUGIN_MBEDTLS_CONF_DEVICE_ACCELERATION_APP - -// Use this macro to check if Network Steering plugin is included -#define EMBER_AF_PLUGIN_NETWORK_STEERING -// User options for plugin Network Steering -#define EMBER_AF_PLUGIN_NETWORK_STEERING_CHANNEL_MASK 0x0318C800 -#define EMBER_AF_PLUGIN_NETWORK_STEERING_RADIO_TX_POWER 3 -#define EMBER_AF_PLUGIN_NETWORK_STEERING_SCAN_DURATION 4 -#define EMBER_AF_PLUGIN_NETWORK_STEERING_COMMISSIONING_TIME_S 180 -#define EMBER_AF_PLUGIN_NETWORK_STEERING_OPTIMIZE_SCANS - -// Use this macro to check if NVM3 Library plugin is included -#define EMBER_AF_PLUGIN_NVM3 -// User options for plugin NVM3 Library -#define EMBER_AF_PLUGIN_NVM3_FLASH_PAGES 18 -#define EMBER_AF_PLUGIN_NVM3_CACHE_SIZE 200 -#define EMBER_AF_PLUGIN_NVM3_MAX_OBJECT_SIZE 254 -#define EMBER_AF_PLUGIN_NVM3_USER_REPACK_HEADROOM 0 - -// Use this macro to check if Packet Validate Library plugin is included -#define EMBER_AF_PLUGIN_PACKET_VALIDATE_LIBRARY - -// Use this macro to check if RAIL Library plugin is included -#define EMBER_AF_PLUGIN_RAIL_LIBRARY -// User options for plugin RAIL Library -#define EMBER_AF_PLUGIN_RAIL_LIBRARY_RAILPHYDEF 1 - -// Use this macro to check if Scan Dispatch plugin is included -#define EMBER_AF_PLUGIN_SCAN_DISPATCH -// User options for plugin Scan Dispatch -#define EMBER_AF_PLUGIN_SCAN_DISPATCH_SCAN_QUEUE_SIZE 10 - -// Use this macro to check if Serial plugin is included -#define EMBER_AF_PLUGIN_SERIAL - -// Use this macro to check if Simulated EEPROM version 2 to NVM3 Upgrade Stub plugin is included -#define EMBER_AF_PLUGIN_SIM_EEPROM2_TO_NVM3_UPGRADE_STUB - -// Use this macro to check if Simple Main plugin is included -#define EMBER_AF_PLUGIN_SIMPLE_MAIN - -// Use this macro to check if Strong Random plugin is included -#define EMBER_AF_PLUGIN_STRONG_RANDOM -// User options for plugin Strong Random -#define EMBER_AF_PLUGIN_STRONG_RANDOM_RADIO_PRNG -#define USE_RADIO_API_FOR_TRNG - -// Use this macro to check if Update TC Link Key plugin is included -#define EMBER_AF_PLUGIN_UPDATE_TC_LINK_KEY -// User options for plugin Update TC Link Key -#define EMBER_AF_PLUGIN_UPDATE_TC_LINK_KEY_MAX_ATTEMPTS 3 - -// Use this macro to check if ZCL Framework Core plugin is included -#define EMBER_AF_PLUGIN_ZCL_FRAMEWORK_CORE -// User options for plugin ZCL Framework Core -#define EMBER_AF_PLUGIN_ZCL_FRAMEWORK_CORE_CLI_ENABLED -#define ZA_CLI_FULL +/**** Network Section ****/ +#define EMBER_SUPPORTED_NETWORKS (1) -// Use this macro to check if ZigBee PRO Stack Library plugin is included -#define EMBER_AF_PLUGIN_ZIGBEE_PRO_LIBRARY -// User options for plugin ZigBee PRO Stack Library -#define EMBER_MAX_END_DEVICE_CHILDREN 6 -#define EMBER_PACKET_BUFFER_COUNT 75 -#define EMBER_END_DEVICE_KEEP_ALIVE_SUPPORT_MODE EMBER_KEEP_ALIVE_SUPPORT_ALL -#define EMBER_END_DEVICE_POLL_TIMEOUT MINUTES_256 -#define EMBER_END_DEVICE_POLL_TIMEOUT_SHIFT 6 -#define EMBER_LINK_POWER_DELTA_INTERVAL 300 #define EMBER_APS_UNICAST_MESSAGE_COUNT 10 -#define EMBER_BROADCAST_TABLE_SIZE 15 -#define EMBER_NEIGHBOR_TABLE_SIZE 16 - -// Generated API headers - -// API antenna from Antenna Stub plugin -#define EMBER_AF_API_ANTENNA \ - "../../../../../Applications/Simplicity " \ - "Studio.app/Contents/Eclipse/developer/sdks/gecko_sdk_suite/v3.0/platform/base/hal/plugin/antenna/antenna.h" - -// API coexistence from Radio Coexistence Stub plugin -#define EMBER_AF_API_COEXISTENCE \ - "../../../../../Applications/Simplicity " \ - "Studio.app/Contents/Eclipse/developer/sdks/gecko_sdk_suite/v3.0/platform/radio/rail_lib/plugin/coexistence/protocol/" \ - "ieee802154/coexistence-802154.h" - -// API network-steering from Network Steering plugin -#define EMBER_AF_API_NETWORK_STEERING \ - "../../../../../Applications/Simplicity " \ - "Studio.app/Contents/Eclipse/developer/sdks/gecko_sdk_suite/v3.0/protocol/zigbee/app/framework/plugin/network-steering/" \ - "network-steering.h" -// API nvm3 from NVM3 Library plugin -#define EMBER_AF_API_NVM3 \ - "../../../../../Applications/Simplicity " \ - "Studio.app/Contents/Eclipse/developer/sdks/gecko_sdk_suite/v3.0/platform/base/hal/plugin/nvm3/nvm3-token.h" - -// API rail-library from RAIL Library plugin -#define EMBER_AF_API_RAIL_LIBRARY \ - "../../../../../Applications/Simplicity " \ - "Studio.app/Contents/Eclipse/developer/sdks/gecko_sdk_suite/v3.0/platform/radio/rail_lib/common/rail.h" - -// API scan-dispatch from Scan Dispatch plugin -#define EMBER_AF_API_SCAN_DISPATCH \ - "../../../../../Applications/Simplicity " \ - "Studio.app/Contents/Eclipse/developer/sdks/gecko_sdk_suite/v3.0/protocol/zigbee/app/framework/plugin/scan-dispatch/" \ - "scan-dispatch.h" - -// API serial from Serial plugin -#define EMBER_AF_API_SERIAL \ - "../../../../../Applications/Simplicity " \ - "Studio.app/Contents/Eclipse/developer/sdks/gecko_sdk_suite/v3.0/platform/base/hal/plugin/serial/serial.h" - -// API update-tc-link-key from Update TC Link Key plugin -#define EMBER_AF_API_UPDATE_TC_LINK_KEY \ - "../../../../../Applications/Simplicity " \ - "Studio.app/Contents/Eclipse/developer/sdks/gecko_sdk_suite/v3.0/protocol/zigbee/app/framework/plugin/update-tc-link-key/" \ - "update-tc-link-key.h" - -// API command-interpreter2 from ZCL Framework Core plugin -#define EMBER_AF_API_COMMAND_INTERPRETER2 \ - "../../../../../Applications/Simplicity " \ - "Studio.app/Contents/Eclipse/developer/sdks/gecko_sdk_suite/v3.0/protocol/zigbee/app/util/serial/command-interpreter2.h" +/**** Cluster endpoint counts ****/ +#define EMBER_AF_LEVEL_CONTROL_CLUSTER_SERVER_ENDPOINT_COUNT (1) +#define EMBER_AF_ON_OFF_CLUSTER_SERVER_ENDPOINT_COUNT (1) -// Custom macros -#ifdef TRANSITION_TIME_DS -#undef TRANSITION_TIME_DS -#endif -#define TRANSITION_TIME_DS 20 +/**** Cluster Plugins ****/ -#ifdef FINDING_AND_BINDING_DELAY_MS -#undef FINDING_AND_BINDING_DELAY_MS -#endif -#define FINDING_AND_BINDING_DELAY_MS 3000 +// 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 255 +#define EMBER_AF_PLUGIN_LEVEL_CONTROL_MINIMUM_LEVEL 0 +#define EMBER_AF_PLUGIN_LEVEL_CONTROL_RATE 0 -#endif // SILABS_ZNET_CONFIG +// 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 + +// TODO Issue #3871 Reporting should only be enabled if there are reportable attributes +// Use this macro to check if Reporting plugin is included +#define EMBER_AF_PLUGIN_REPORTING +// User options for plugin Reporting +#define EMBER_AF_PLUGIN_REPORTING_TABLE_SIZE 5 +#define EMBER_AF_PLUGIN_REPORTING_ENABLE_GROUP_BOUND_REPORTS diff --git a/examples/lighting-app/lighting-common/gen/print-cluster.h b/examples/lighting-app/lighting-common/gen/print-cluster.h index 87d2771f942629..a37d7fb0495995 100644 --- a/examples/lighting-app/lighting-common/gen/print-cluster.h +++ b/examples/lighting-app/lighting-common/gen/print-cluster.h @@ -1,23 +1,7 @@ -/** - * - * 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 + * 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. @@ -31,748 +15,846 @@ * 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 SILABS_PRINT_CLUSTER -#define SILABS_PRINT_CLUSTER +// Prevent multiple inclusion +#pragma once // This is the mapping of IDs to cluster names assuming a format according // to the "EmberAfClusterName" defined in the ZCL header. // The names of clusters that are not present, are removed. #if defined(ZCL_USING_BASIC_CLUSTER_SERVER) || defined(ZCL_USING_BASIC_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_BASIC_CLUSTER { ZCL_BASIC_CLUSTER_ID, 0x0000, "Basic" }, +#define CHIP_PRINTCLUSTER_BASIC_CLUSTER { ZCL_BASIC_CLUSTER_ID, 0, "Basic" }, #else -#define SILABS_PRINTCLUSTER_BASIC_CLUSTER +#define CHIP_PRINTCLUSTER_BASIC_CLUSTER #endif + #if defined(ZCL_USING_POWER_CONFIG_CLUSTER_SERVER) || defined(ZCL_USING_POWER_CONFIG_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_POWER_CONFIG_CLUSTER { ZCL_POWER_CONFIG_CLUSTER_ID, 0x0000, "Power Configuration" }, +#define CHIP_PRINTCLUSTER_POWER_CONFIG_CLUSTER { ZCL_POWER_CONFIG_CLUSTER_ID, 1, "Power Configuration" }, #else -#define SILABS_PRINTCLUSTER_POWER_CONFIG_CLUSTER +#define CHIP_PRINTCLUSTER_POWER_CONFIG_CLUSTER #endif + #if defined(ZCL_USING_DEVICE_TEMP_CLUSTER_SERVER) || defined(ZCL_USING_DEVICE_TEMP_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_DEVICE_TEMP_CLUSTER { ZCL_DEVICE_TEMP_CLUSTER_ID, 0x0000, "Device Temperature Configuration" }, +#define CHIP_PRINTCLUSTER_DEVICE_TEMP_CLUSTER { ZCL_DEVICE_TEMP_CLUSTER_ID, 2, "Device Temperature Configuration" }, #else -#define SILABS_PRINTCLUSTER_DEVICE_TEMP_CLUSTER +#define CHIP_PRINTCLUSTER_DEVICE_TEMP_CLUSTER #endif + #if defined(ZCL_USING_IDENTIFY_CLUSTER_SERVER) || defined(ZCL_USING_IDENTIFY_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_IDENTIFY_CLUSTER { ZCL_IDENTIFY_CLUSTER_ID, 0x0000, "Identify" }, +#define CHIP_PRINTCLUSTER_IDENTIFY_CLUSTER { ZCL_IDENTIFY_CLUSTER_ID, 3, "Identify" }, #else -#define SILABS_PRINTCLUSTER_IDENTIFY_CLUSTER +#define CHIP_PRINTCLUSTER_IDENTIFY_CLUSTER #endif + #if defined(ZCL_USING_GROUPS_CLUSTER_SERVER) || defined(ZCL_USING_GROUPS_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_GROUPS_CLUSTER { ZCL_GROUPS_CLUSTER_ID, 0x0000, "Groups" }, +#define CHIP_PRINTCLUSTER_GROUPS_CLUSTER { ZCL_GROUPS_CLUSTER_ID, 4, "Groups" }, #else -#define SILABS_PRINTCLUSTER_GROUPS_CLUSTER +#define CHIP_PRINTCLUSTER_GROUPS_CLUSTER #endif + #if defined(ZCL_USING_SCENES_CLUSTER_SERVER) || defined(ZCL_USING_SCENES_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_SCENES_CLUSTER { ZCL_SCENES_CLUSTER_ID, 0x0000, "Scenes" }, +#define CHIP_PRINTCLUSTER_SCENES_CLUSTER { ZCL_SCENES_CLUSTER_ID, 5, "Scenes" }, #else -#define SILABS_PRINTCLUSTER_SCENES_CLUSTER +#define CHIP_PRINTCLUSTER_SCENES_CLUSTER #endif + #if defined(ZCL_USING_ON_OFF_CLUSTER_SERVER) || defined(ZCL_USING_ON_OFF_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_ON_OFF_CLUSTER { ZCL_ON_OFF_CLUSTER_ID, 0x0000, "On/off" }, +#define CHIP_PRINTCLUSTER_ON_OFF_CLUSTER { ZCL_ON_OFF_CLUSTER_ID, 6, "On/off" }, #else -#define SILABS_PRINTCLUSTER_ON_OFF_CLUSTER +#define CHIP_PRINTCLUSTER_ON_OFF_CLUSTER #endif + #if defined(ZCL_USING_ON_OFF_SWITCH_CONFIG_CLUSTER_SERVER) || defined(ZCL_USING_ON_OFF_SWITCH_CONFIG_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_ON_OFF_SWITCH_CONFIG_CLUSTER \ - { ZCL_ON_OFF_SWITCH_CONFIG_CLUSTER_ID, 0x0000, "On/off Switch Configuration" }, +#define CHIP_PRINTCLUSTER_ON_OFF_SWITCH_CONFIG_CLUSTER { ZCL_ON_OFF_SWITCH_CONFIG_CLUSTER_ID, 7, "On/off Switch Configuration" }, #else -#define SILABS_PRINTCLUSTER_ON_OFF_SWITCH_CONFIG_CLUSTER +#define CHIP_PRINTCLUSTER_ON_OFF_SWITCH_CONFIG_CLUSTER #endif + #if defined(ZCL_USING_LEVEL_CONTROL_CLUSTER_SERVER) || defined(ZCL_USING_LEVEL_CONTROL_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_LEVEL_CONTROL_CLUSTER { ZCL_LEVEL_CONTROL_CLUSTER_ID, 0x0000, "Level Control" }, +#define CHIP_PRINTCLUSTER_LEVEL_CONTROL_CLUSTER { ZCL_LEVEL_CONTROL_CLUSTER_ID, 8, "Level Control" }, #else -#define SILABS_PRINTCLUSTER_LEVEL_CONTROL_CLUSTER +#define CHIP_PRINTCLUSTER_LEVEL_CONTROL_CLUSTER #endif + #if defined(ZCL_USING_ALARM_CLUSTER_SERVER) || defined(ZCL_USING_ALARM_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_ALARM_CLUSTER { ZCL_ALARM_CLUSTER_ID, 0x0000, "Alarms" }, +#define CHIP_PRINTCLUSTER_ALARM_CLUSTER { ZCL_ALARM_CLUSTER_ID, 9, "Alarms" }, #else -#define SILABS_PRINTCLUSTER_ALARM_CLUSTER +#define CHIP_PRINTCLUSTER_ALARM_CLUSTER #endif + #if defined(ZCL_USING_TIME_CLUSTER_SERVER) || defined(ZCL_USING_TIME_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_TIME_CLUSTER { ZCL_TIME_CLUSTER_ID, 0x0000, "Time" }, +#define CHIP_PRINTCLUSTER_TIME_CLUSTER { ZCL_TIME_CLUSTER_ID, 10, "Time" }, #else -#define SILABS_PRINTCLUSTER_TIME_CLUSTER +#define CHIP_PRINTCLUSTER_TIME_CLUSTER #endif + #if defined(ZCL_USING_RSSI_LOCATION_CLUSTER_SERVER) || defined(ZCL_USING_RSSI_LOCATION_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_RSSI_LOCATION_CLUSTER { ZCL_RSSI_LOCATION_CLUSTER_ID, 0x0000, "RSSI Location" }, +#define CHIP_PRINTCLUSTER_RSSI_LOCATION_CLUSTER { ZCL_RSSI_LOCATION_CLUSTER_ID, 11, "RSSI Location" }, #else -#define SILABS_PRINTCLUSTER_RSSI_LOCATION_CLUSTER +#define CHIP_PRINTCLUSTER_RSSI_LOCATION_CLUSTER #endif + #if defined(ZCL_USING_BINARY_INPUT_BASIC_CLUSTER_SERVER) || defined(ZCL_USING_BINARY_INPUT_BASIC_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_BINARY_INPUT_BASIC_CLUSTER { ZCL_BINARY_INPUT_BASIC_CLUSTER_ID, 0x0000, "Binary Input (Basic)" }, +#define CHIP_PRINTCLUSTER_BINARY_INPUT_BASIC_CLUSTER { ZCL_BINARY_INPUT_BASIC_CLUSTER_ID, 15, "Binary Input (Basic)" }, #else -#define SILABS_PRINTCLUSTER_BINARY_INPUT_BASIC_CLUSTER +#define CHIP_PRINTCLUSTER_BINARY_INPUT_BASIC_CLUSTER #endif + #if defined(ZCL_USING_COMMISSIONING_CLUSTER_SERVER) || defined(ZCL_USING_COMMISSIONING_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_COMMISSIONING_CLUSTER { ZCL_COMMISSIONING_CLUSTER_ID, 0x0000, "Commissioning" }, +#define CHIP_PRINTCLUSTER_COMMISSIONING_CLUSTER { ZCL_COMMISSIONING_CLUSTER_ID, 21, "Commissioning" }, #else -#define SILABS_PRINTCLUSTER_COMMISSIONING_CLUSTER +#define CHIP_PRINTCLUSTER_COMMISSIONING_CLUSTER #endif + #if defined(ZCL_USING_PARTITION_CLUSTER_SERVER) || defined(ZCL_USING_PARTITION_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_PARTITION_CLUSTER { ZCL_PARTITION_CLUSTER_ID, 0x0000, "Partition" }, +#define CHIP_PRINTCLUSTER_PARTITION_CLUSTER { ZCL_PARTITION_CLUSTER_ID, 22, "Partition" }, #else -#define SILABS_PRINTCLUSTER_PARTITION_CLUSTER +#define CHIP_PRINTCLUSTER_PARTITION_CLUSTER #endif + #if defined(ZCL_USING_OTA_BOOTLOAD_CLUSTER_SERVER) || defined(ZCL_USING_OTA_BOOTLOAD_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_OTA_BOOTLOAD_CLUSTER { ZCL_OTA_BOOTLOAD_CLUSTER_ID, 0x0000, "Over the Air Bootloading" }, +#define CHIP_PRINTCLUSTER_OTA_BOOTLOAD_CLUSTER { ZCL_OTA_BOOTLOAD_CLUSTER_ID, 25, "Over the Air Bootloading" }, #else -#define SILABS_PRINTCLUSTER_OTA_BOOTLOAD_CLUSTER +#define CHIP_PRINTCLUSTER_OTA_BOOTLOAD_CLUSTER #endif + #if defined(ZCL_USING_POWER_PROFILE_CLUSTER_SERVER) || defined(ZCL_USING_POWER_PROFILE_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_POWER_PROFILE_CLUSTER { ZCL_POWER_PROFILE_CLUSTER_ID, 0x0000, "Power Profile" }, +#define CHIP_PRINTCLUSTER_POWER_PROFILE_CLUSTER { ZCL_POWER_PROFILE_CLUSTER_ID, 26, "Power Profile" }, #else -#define SILABS_PRINTCLUSTER_POWER_PROFILE_CLUSTER +#define CHIP_PRINTCLUSTER_POWER_PROFILE_CLUSTER #endif + #if defined(ZCL_USING_APPLIANCE_CONTROL_CLUSTER_SERVER) || defined(ZCL_USING_APPLIANCE_CONTROL_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_APPLIANCE_CONTROL_CLUSTER { ZCL_APPLIANCE_CONTROL_CLUSTER_ID, 0x0000, "Appliance Control" }, +#define CHIP_PRINTCLUSTER_APPLIANCE_CONTROL_CLUSTER { ZCL_APPLIANCE_CONTROL_CLUSTER_ID, 27, "Appliance Control" }, #else -#define SILABS_PRINTCLUSTER_APPLIANCE_CONTROL_CLUSTER +#define CHIP_PRINTCLUSTER_APPLIANCE_CONTROL_CLUSTER #endif + #if defined(ZCL_USING_POLL_CONTROL_CLUSTER_SERVER) || defined(ZCL_USING_POLL_CONTROL_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_POLL_CONTROL_CLUSTER { ZCL_POLL_CONTROL_CLUSTER_ID, 0x0000, "Poll Control" }, +#define CHIP_PRINTCLUSTER_POLL_CONTROL_CLUSTER { ZCL_POLL_CONTROL_CLUSTER_ID, 32, "Poll Control" }, #else -#define SILABS_PRINTCLUSTER_POLL_CONTROL_CLUSTER +#define CHIP_PRINTCLUSTER_POLL_CONTROL_CLUSTER #endif + #if defined(ZCL_USING_GREEN_POWER_CLUSTER_SERVER) || defined(ZCL_USING_GREEN_POWER_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_GREEN_POWER_CLUSTER { ZCL_GREEN_POWER_CLUSTER_ID, 0x0000, "Green Power" }, +#define CHIP_PRINTCLUSTER_GREEN_POWER_CLUSTER { ZCL_GREEN_POWER_CLUSTER_ID, 33, "Green Power" }, #else -#define SILABS_PRINTCLUSTER_GREEN_POWER_CLUSTER +#define CHIP_PRINTCLUSTER_GREEN_POWER_CLUSTER #endif + #if defined(ZCL_USING_KEEPALIVE_CLUSTER_SERVER) || defined(ZCL_USING_KEEPALIVE_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_KEEPALIVE_CLUSTER { ZCL_KEEPALIVE_CLUSTER_ID, 0x0000, "Keep-Alive" }, +#define CHIP_PRINTCLUSTER_KEEPALIVE_CLUSTER { ZCL_KEEPALIVE_CLUSTER_ID, 37, "Keep-Alive" }, #else -#define SILABS_PRINTCLUSTER_KEEPALIVE_CLUSTER +#define CHIP_PRINTCLUSTER_KEEPALIVE_CLUSTER #endif + #if defined(ZCL_USING_SHADE_CONFIG_CLUSTER_SERVER) || defined(ZCL_USING_SHADE_CONFIG_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_SHADE_CONFIG_CLUSTER { ZCL_SHADE_CONFIG_CLUSTER_ID, 0x0000, "Shade Configuration" }, +#define CHIP_PRINTCLUSTER_SHADE_CONFIG_CLUSTER { ZCL_SHADE_CONFIG_CLUSTER_ID, 256, "Shade Configuration" }, #else -#define SILABS_PRINTCLUSTER_SHADE_CONFIG_CLUSTER +#define CHIP_PRINTCLUSTER_SHADE_CONFIG_CLUSTER #endif + #if defined(ZCL_USING_DOOR_LOCK_CLUSTER_SERVER) || defined(ZCL_USING_DOOR_LOCK_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_DOOR_LOCK_CLUSTER { ZCL_DOOR_LOCK_CLUSTER_ID, 0x0000, "Door Lock" }, +#define CHIP_PRINTCLUSTER_DOOR_LOCK_CLUSTER { ZCL_DOOR_LOCK_CLUSTER_ID, 257, "Door Lock" }, #else -#define SILABS_PRINTCLUSTER_DOOR_LOCK_CLUSTER +#define CHIP_PRINTCLUSTER_DOOR_LOCK_CLUSTER #endif + #if defined(ZCL_USING_WINDOW_COVERING_CLUSTER_SERVER) || defined(ZCL_USING_WINDOW_COVERING_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_WINDOW_COVERING_CLUSTER { ZCL_WINDOW_COVERING_CLUSTER_ID, 0x0000, "Window Covering" }, +#define CHIP_PRINTCLUSTER_WINDOW_COVERING_CLUSTER { ZCL_WINDOW_COVERING_CLUSTER_ID, 258, "Window Covering" }, #else -#define SILABS_PRINTCLUSTER_WINDOW_COVERING_CLUSTER +#define CHIP_PRINTCLUSTER_WINDOW_COVERING_CLUSTER #endif + #if defined(ZCL_USING_BARRIER_CONTROL_CLUSTER_SERVER) || defined(ZCL_USING_BARRIER_CONTROL_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_BARRIER_CONTROL_CLUSTER { ZCL_BARRIER_CONTROL_CLUSTER_ID, 0x0000, "Barrier Control" }, +#define CHIP_PRINTCLUSTER_BARRIER_CONTROL_CLUSTER { ZCL_BARRIER_CONTROL_CLUSTER_ID, 259, "Barrier Control" }, #else -#define SILABS_PRINTCLUSTER_BARRIER_CONTROL_CLUSTER +#define CHIP_PRINTCLUSTER_BARRIER_CONTROL_CLUSTER #endif + #if defined(ZCL_USING_PUMP_CONFIG_CONTROL_CLUSTER_SERVER) || defined(ZCL_USING_PUMP_CONFIG_CONTROL_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_PUMP_CONFIG_CONTROL_CLUSTER \ - { ZCL_PUMP_CONFIG_CONTROL_CLUSTER_ID, 0x0000, "Pump Configuration and Control" }, +#define CHIP_PRINTCLUSTER_PUMP_CONFIG_CONTROL_CLUSTER { ZCL_PUMP_CONFIG_CONTROL_CLUSTER_ID, 512, "Pump Configuration and Control" }, #else -#define SILABS_PRINTCLUSTER_PUMP_CONFIG_CONTROL_CLUSTER +#define CHIP_PRINTCLUSTER_PUMP_CONFIG_CONTROL_CLUSTER #endif + #if defined(ZCL_USING_THERMOSTAT_CLUSTER_SERVER) || defined(ZCL_USING_THERMOSTAT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_THERMOSTAT_CLUSTER { ZCL_THERMOSTAT_CLUSTER_ID, 0x0000, "Thermostat" }, +#define CHIP_PRINTCLUSTER_THERMOSTAT_CLUSTER { ZCL_THERMOSTAT_CLUSTER_ID, 513, "Thermostat" }, #else -#define SILABS_PRINTCLUSTER_THERMOSTAT_CLUSTER +#define CHIP_PRINTCLUSTER_THERMOSTAT_CLUSTER #endif + #if defined(ZCL_USING_FAN_CONTROL_CLUSTER_SERVER) || defined(ZCL_USING_FAN_CONTROL_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_FAN_CONTROL_CLUSTER { ZCL_FAN_CONTROL_CLUSTER_ID, 0x0000, "Fan Control" }, +#define CHIP_PRINTCLUSTER_FAN_CONTROL_CLUSTER { ZCL_FAN_CONTROL_CLUSTER_ID, 514, "Fan Control" }, #else -#define SILABS_PRINTCLUSTER_FAN_CONTROL_CLUSTER +#define CHIP_PRINTCLUSTER_FAN_CONTROL_CLUSTER #endif + #if defined(ZCL_USING_DEHUMID_CONTROL_CLUSTER_SERVER) || defined(ZCL_USING_DEHUMID_CONTROL_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_DEHUMID_CONTROL_CLUSTER { ZCL_DEHUMID_CONTROL_CLUSTER_ID, 0x0000, "Dehumidification Control" }, +#define CHIP_PRINTCLUSTER_DEHUMID_CONTROL_CLUSTER { ZCL_DEHUMID_CONTROL_CLUSTER_ID, 515, "Dehumidification Control" }, #else -#define SILABS_PRINTCLUSTER_DEHUMID_CONTROL_CLUSTER +#define CHIP_PRINTCLUSTER_DEHUMID_CONTROL_CLUSTER #endif + #if defined(ZCL_USING_THERMOSTAT_UI_CONFIG_CLUSTER_SERVER) || defined(ZCL_USING_THERMOSTAT_UI_CONFIG_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_THERMOSTAT_UI_CONFIG_CLUSTER \ - { ZCL_THERMOSTAT_UI_CONFIG_CLUSTER_ID, 0x0000, "Thermostat User Interface Configuration" }, +#define CHIP_PRINTCLUSTER_THERMOSTAT_UI_CONFIG_CLUSTER \ + { ZCL_THERMOSTAT_UI_CONFIG_CLUSTER_ID, 516, "Thermostat User Interface Configuration" }, #else -#define SILABS_PRINTCLUSTER_THERMOSTAT_UI_CONFIG_CLUSTER +#define CHIP_PRINTCLUSTER_THERMOSTAT_UI_CONFIG_CLUSTER #endif + #if defined(ZCL_USING_COLOR_CONTROL_CLUSTER_SERVER) || defined(ZCL_USING_COLOR_CONTROL_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_COLOR_CONTROL_CLUSTER { ZCL_COLOR_CONTROL_CLUSTER_ID, 0x0000, "Color Control" }, +#define CHIP_PRINTCLUSTER_COLOR_CONTROL_CLUSTER { ZCL_COLOR_CONTROL_CLUSTER_ID, 768, "Color Control" }, #else -#define SILABS_PRINTCLUSTER_COLOR_CONTROL_CLUSTER +#define CHIP_PRINTCLUSTER_COLOR_CONTROL_CLUSTER #endif + #if defined(ZCL_USING_BALLAST_CONFIGURATION_CLUSTER_SERVER) || defined(ZCL_USING_BALLAST_CONFIGURATION_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_BALLAST_CONFIGURATION_CLUSTER { ZCL_BALLAST_CONFIGURATION_CLUSTER_ID, 0x0000, "Ballast Configuration" }, +#define CHIP_PRINTCLUSTER_BALLAST_CONFIGURATION_CLUSTER { ZCL_BALLAST_CONFIGURATION_CLUSTER_ID, 769, "Ballast Configuration" }, #else -#define SILABS_PRINTCLUSTER_BALLAST_CONFIGURATION_CLUSTER +#define CHIP_PRINTCLUSTER_BALLAST_CONFIGURATION_CLUSTER #endif + #if defined(ZCL_USING_ILLUM_MEASUREMENT_CLUSTER_SERVER) || defined(ZCL_USING_ILLUM_MEASUREMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_ILLUM_MEASUREMENT_CLUSTER { ZCL_ILLUM_MEASUREMENT_CLUSTER_ID, 0x0000, "Illuminance Measurement" }, +#define CHIP_PRINTCLUSTER_ILLUM_MEASUREMENT_CLUSTER { ZCL_ILLUM_MEASUREMENT_CLUSTER_ID, 1024, "Illuminance Measurement" }, #else -#define SILABS_PRINTCLUSTER_ILLUM_MEASUREMENT_CLUSTER +#define CHIP_PRINTCLUSTER_ILLUM_MEASUREMENT_CLUSTER #endif + #if defined(ZCL_USING_ILLUM_LEVEL_SENSING_CLUSTER_SERVER) || defined(ZCL_USING_ILLUM_LEVEL_SENSING_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_ILLUM_LEVEL_SENSING_CLUSTER { ZCL_ILLUM_LEVEL_SENSING_CLUSTER_ID, 0x0000, "Illuminance Level Sensing" }, +#define CHIP_PRINTCLUSTER_ILLUM_LEVEL_SENSING_CLUSTER { ZCL_ILLUM_LEVEL_SENSING_CLUSTER_ID, 1025, "Illuminance Level Sensing" }, #else -#define SILABS_PRINTCLUSTER_ILLUM_LEVEL_SENSING_CLUSTER +#define CHIP_PRINTCLUSTER_ILLUM_LEVEL_SENSING_CLUSTER #endif + #if defined(ZCL_USING_TEMP_MEASUREMENT_CLUSTER_SERVER) || defined(ZCL_USING_TEMP_MEASUREMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_TEMP_MEASUREMENT_CLUSTER { ZCL_TEMP_MEASUREMENT_CLUSTER_ID, 0x0000, "Temperature Measurement" }, +#define CHIP_PRINTCLUSTER_TEMP_MEASUREMENT_CLUSTER { ZCL_TEMP_MEASUREMENT_CLUSTER_ID, 1026, "Temperature Measurement" }, #else -#define SILABS_PRINTCLUSTER_TEMP_MEASUREMENT_CLUSTER +#define CHIP_PRINTCLUSTER_TEMP_MEASUREMENT_CLUSTER #endif + #if defined(ZCL_USING_PRESSURE_MEASUREMENT_CLUSTER_SERVER) || defined(ZCL_USING_PRESSURE_MEASUREMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_PRESSURE_MEASUREMENT_CLUSTER { ZCL_PRESSURE_MEASUREMENT_CLUSTER_ID, 0x0000, "Pressure Measurement" }, +#define CHIP_PRINTCLUSTER_PRESSURE_MEASUREMENT_CLUSTER { ZCL_PRESSURE_MEASUREMENT_CLUSTER_ID, 1027, "Pressure Measurement" }, #else -#define SILABS_PRINTCLUSTER_PRESSURE_MEASUREMENT_CLUSTER +#define CHIP_PRINTCLUSTER_PRESSURE_MEASUREMENT_CLUSTER #endif + #if defined(ZCL_USING_FLOW_MEASUREMENT_CLUSTER_SERVER) || defined(ZCL_USING_FLOW_MEASUREMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_FLOW_MEASUREMENT_CLUSTER { ZCL_FLOW_MEASUREMENT_CLUSTER_ID, 0x0000, "Flow Measurement" }, +#define CHIP_PRINTCLUSTER_FLOW_MEASUREMENT_CLUSTER { ZCL_FLOW_MEASUREMENT_CLUSTER_ID, 1028, "Flow Measurement" }, #else -#define SILABS_PRINTCLUSTER_FLOW_MEASUREMENT_CLUSTER +#define CHIP_PRINTCLUSTER_FLOW_MEASUREMENT_CLUSTER #endif + #if defined(ZCL_USING_RELATIVE_HUMIDITY_MEASUREMENT_CLUSTER_SERVER) || \ defined(ZCL_USING_RELATIVE_HUMIDITY_MEASUREMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_RELATIVE_HUMIDITY_MEASUREMENT_CLUSTER \ - { ZCL_RELATIVE_HUMIDITY_MEASUREMENT_CLUSTER_ID, 0x0000, "Relative Humidity Measurement" }, +#define CHIP_PRINTCLUSTER_RELATIVE_HUMIDITY_MEASUREMENT_CLUSTER \ + { ZCL_RELATIVE_HUMIDITY_MEASUREMENT_CLUSTER_ID, 1029, "Relative Humidity Measurement" }, #else -#define SILABS_PRINTCLUSTER_RELATIVE_HUMIDITY_MEASUREMENT_CLUSTER +#define CHIP_PRINTCLUSTER_RELATIVE_HUMIDITY_MEASUREMENT_CLUSTER #endif + #if defined(ZCL_USING_OCCUPANCY_SENSING_CLUSTER_SERVER) || defined(ZCL_USING_OCCUPANCY_SENSING_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_OCCUPANCY_SENSING_CLUSTER { ZCL_OCCUPANCY_SENSING_CLUSTER_ID, 0x0000, "Occupancy Sensing" }, +#define CHIP_PRINTCLUSTER_OCCUPANCY_SENSING_CLUSTER { ZCL_OCCUPANCY_SENSING_CLUSTER_ID, 1030, "Occupancy Sensing" }, #else -#define SILABS_PRINTCLUSTER_OCCUPANCY_SENSING_CLUSTER +#define CHIP_PRINTCLUSTER_OCCUPANCY_SENSING_CLUSTER #endif + #if defined(ZCL_USING_CARBON_MONOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_SERVER) || \ defined(ZCL_USING_CARBON_MONOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_CARBON_MONOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER \ - { ZCL_CARBON_MONOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 0x0000, "Carbon Monoxide Concentration Measurement" }, +#define CHIP_PRINTCLUSTER_CARBON_MONOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER \ + { ZCL_CARBON_MONOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 1036, "Carbon Monoxide Concentration Measurement" }, #else -#define SILABS_PRINTCLUSTER_CARBON_MONOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER +#define CHIP_PRINTCLUSTER_CARBON_MONOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER #endif + #if defined(ZCL_USING_CARBON_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_SERVER) || \ defined(ZCL_USING_CARBON_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_CARBON_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER \ - { ZCL_CARBON_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 0x0000, "Carbon Dioxide Concentration Measurement" }, +#define CHIP_PRINTCLUSTER_CARBON_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER \ + { ZCL_CARBON_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 1037, "Carbon Dioxide Concentration Measurement" }, #else -#define SILABS_PRINTCLUSTER_CARBON_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER +#define CHIP_PRINTCLUSTER_CARBON_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER #endif + #if defined(ZCL_USING_ETHYLENE_CONCENTRATION_MEASUREMENT_CLUSTER_SERVER) || \ defined(ZCL_USING_ETHYLENE_CONCENTRATION_MEASUREMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_ETHYLENE_CONCENTRATION_MEASUREMENT_CLUSTER \ - { ZCL_ETHYLENE_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 0x0000, "Ethylene Concentration Measurement" }, +#define CHIP_PRINTCLUSTER_ETHYLENE_CONCENTRATION_MEASUREMENT_CLUSTER \ + { ZCL_ETHYLENE_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 1038, "Ethylene Concentration Measurement" }, #else -#define SILABS_PRINTCLUSTER_ETHYLENE_CONCENTRATION_MEASUREMENT_CLUSTER +#define CHIP_PRINTCLUSTER_ETHYLENE_CONCENTRATION_MEASUREMENT_CLUSTER #endif + #if defined(ZCL_USING_ETHYLENE_OXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_SERVER) || \ defined(ZCL_USING_ETHYLENE_OXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_ETHYLENE_OXIDE_CONCENTRATION_MEASUREMENT_CLUSTER \ - { ZCL_ETHYLENE_OXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 0x0000, "Ethylene Oxide Concentration Measurement" }, +#define CHIP_PRINTCLUSTER_ETHYLENE_OXIDE_CONCENTRATION_MEASUREMENT_CLUSTER \ + { ZCL_ETHYLENE_OXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 1039, "Ethylene Oxide Concentration Measurement" }, #else -#define SILABS_PRINTCLUSTER_ETHYLENE_OXIDE_CONCENTRATION_MEASUREMENT_CLUSTER +#define CHIP_PRINTCLUSTER_ETHYLENE_OXIDE_CONCENTRATION_MEASUREMENT_CLUSTER #endif + #if defined(ZCL_USING_HYDROGEN_CONCENTRATION_MEASUREMENT_CLUSTER_SERVER) || \ defined(ZCL_USING_HYDROGEN_CONCENTRATION_MEASUREMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_HYDROGEN_CONCENTRATION_MEASUREMENT_CLUSTER \ - { ZCL_HYDROGEN_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 0x0000, "Hydrogen Concentration Measurement" }, +#define CHIP_PRINTCLUSTER_HYDROGEN_CONCENTRATION_MEASUREMENT_CLUSTER \ + { ZCL_HYDROGEN_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 1040, "Hydrogen Concentration Measurement" }, #else -#define SILABS_PRINTCLUSTER_HYDROGEN_CONCENTRATION_MEASUREMENT_CLUSTER +#define CHIP_PRINTCLUSTER_HYDROGEN_CONCENTRATION_MEASUREMENT_CLUSTER #endif + #if defined(ZCL_USING_HYDROGEN_SULPHIDE_CONCENTRATION_MEASUREMENT_CLUSTER_SERVER) || \ defined(ZCL_USING_HYDROGEN_SULPHIDE_CONCENTRATION_MEASUREMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_HYDROGEN_SULPHIDE_CONCENTRATION_MEASUREMENT_CLUSTER \ - { ZCL_HYDROGEN_SULPHIDE_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 0x0000, "Hydrogen Sulphide Concentration Measurement" }, +#define CHIP_PRINTCLUSTER_HYDROGEN_SULPHIDE_CONCENTRATION_MEASUREMENT_CLUSTER \ + { ZCL_HYDROGEN_SULPHIDE_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 1041, "Hydrogen Sulphide Concentration Measurement" }, #else -#define SILABS_PRINTCLUSTER_HYDROGEN_SULPHIDE_CONCENTRATION_MEASUREMENT_CLUSTER +#define CHIP_PRINTCLUSTER_HYDROGEN_SULPHIDE_CONCENTRATION_MEASUREMENT_CLUSTER #endif + #if defined(ZCL_USING_NITRIC_OXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_SERVER) || \ defined(ZCL_USING_NITRIC_OXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_NITRIC_OXIDE_CONCENTRATION_MEASUREMENT_CLUSTER \ - { ZCL_NITRIC_OXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 0x0000, "Nitric Oxide Concentration Measurement" }, +#define CHIP_PRINTCLUSTER_NITRIC_OXIDE_CONCENTRATION_MEASUREMENT_CLUSTER \ + { ZCL_NITRIC_OXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 1042, "Nitric Oxide Concentration Measurement" }, #else -#define SILABS_PRINTCLUSTER_NITRIC_OXIDE_CONCENTRATION_MEASUREMENT_CLUSTER +#define CHIP_PRINTCLUSTER_NITRIC_OXIDE_CONCENTRATION_MEASUREMENT_CLUSTER #endif + #if defined(ZCL_USING_NITROGEN_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_SERVER) || \ defined(ZCL_USING_NITROGEN_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_NITROGEN_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER \ - { ZCL_NITROGEN_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 0x0000, "Nitrogen Dioxide Concentration Measurement" }, +#define CHIP_PRINTCLUSTER_NITROGEN_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER \ + { ZCL_NITROGEN_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 1043, "Nitrogen Dioxide Concentration Measurement" }, #else -#define SILABS_PRINTCLUSTER_NITROGEN_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER +#define CHIP_PRINTCLUSTER_NITROGEN_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER #endif + #if defined(ZCL_USING_OXYGEN_CONCENTRATION_MEASUREMENT_CLUSTER_SERVER) || \ defined(ZCL_USING_OXYGEN_CONCENTRATION_MEASUREMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_OXYGEN_CONCENTRATION_MEASUREMENT_CLUSTER \ - { ZCL_OXYGEN_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 0x0000, "Oxygen Concentration Measurement" }, +#define CHIP_PRINTCLUSTER_OXYGEN_CONCENTRATION_MEASUREMENT_CLUSTER \ + { ZCL_OXYGEN_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 1044, "Oxygen Concentration Measurement" }, #else -#define SILABS_PRINTCLUSTER_OXYGEN_CONCENTRATION_MEASUREMENT_CLUSTER +#define CHIP_PRINTCLUSTER_OXYGEN_CONCENTRATION_MEASUREMENT_CLUSTER #endif + #if defined(ZCL_USING_OZONE_CONCENTRATION_MEASUREMENT_CLUSTER_SERVER) || \ defined(ZCL_USING_OZONE_CONCENTRATION_MEASUREMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_OZONE_CONCENTRATION_MEASUREMENT_CLUSTER \ - { ZCL_OZONE_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 0x0000, "Ozone Concentration Measurement" }, +#define CHIP_PRINTCLUSTER_OZONE_CONCENTRATION_MEASUREMENT_CLUSTER \ + { ZCL_OZONE_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 1045, "Ozone Concentration Measurement" }, #else -#define SILABS_PRINTCLUSTER_OZONE_CONCENTRATION_MEASUREMENT_CLUSTER +#define CHIP_PRINTCLUSTER_OZONE_CONCENTRATION_MEASUREMENT_CLUSTER #endif + #if defined(ZCL_USING_SULFUR_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_SERVER) || \ defined(ZCL_USING_SULFUR_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_SULFUR_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER \ - { ZCL_SULFUR_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 0x0000, "Sulfur Dioxide Concentration Measurement" }, +#define CHIP_PRINTCLUSTER_SULFUR_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER \ + { ZCL_SULFUR_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 1046, "Sulfur Dioxide Concentration Measurement" }, #else -#define SILABS_PRINTCLUSTER_SULFUR_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER +#define CHIP_PRINTCLUSTER_SULFUR_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER #endif + #if defined(ZCL_USING_DISSOLVED_OXYGEN_CONCENTRATION_MEASUREMENT_CLUSTER_SERVER) || \ defined(ZCL_USING_DISSOLVED_OXYGEN_CONCENTRATION_MEASUREMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_DISSOLVED_OXYGEN_CONCENTRATION_MEASUREMENT_CLUSTER \ - { ZCL_DISSOLVED_OXYGEN_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 0x0000, "Dissolved Oxygen Concentration Measurement" }, +#define CHIP_PRINTCLUSTER_DISSOLVED_OXYGEN_CONCENTRATION_MEASUREMENT_CLUSTER \ + { ZCL_DISSOLVED_OXYGEN_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 1047, "Dissolved Oxygen Concentration Measurement" }, #else -#define SILABS_PRINTCLUSTER_DISSOLVED_OXYGEN_CONCENTRATION_MEASUREMENT_CLUSTER +#define CHIP_PRINTCLUSTER_DISSOLVED_OXYGEN_CONCENTRATION_MEASUREMENT_CLUSTER #endif + #if defined(ZCL_USING_BROMATE_CONCENTRATION_MEASUREMENT_CLUSTER_SERVER) || \ defined(ZCL_USING_BROMATE_CONCENTRATION_MEASUREMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_BROMATE_CONCENTRATION_MEASUREMENT_CLUSTER \ - { ZCL_BROMATE_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 0x0000, "Bromate Concentration Measurement" }, +#define CHIP_PRINTCLUSTER_BROMATE_CONCENTRATION_MEASUREMENT_CLUSTER \ + { ZCL_BROMATE_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 1048, "Bromate Concentration Measurement" }, #else -#define SILABS_PRINTCLUSTER_BROMATE_CONCENTRATION_MEASUREMENT_CLUSTER +#define CHIP_PRINTCLUSTER_BROMATE_CONCENTRATION_MEASUREMENT_CLUSTER #endif + #if defined(ZCL_USING_CHLORAMINES_CONCENTRATION_MEASUREMENT_CLUSTER_SERVER) || \ defined(ZCL_USING_CHLORAMINES_CONCENTRATION_MEASUREMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_CHLORAMINES_CONCENTRATION_MEASUREMENT_CLUSTER \ - { ZCL_CHLORAMINES_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 0x0000, "Chloramines Concentration Measurement" }, +#define CHIP_PRINTCLUSTER_CHLORAMINES_CONCENTRATION_MEASUREMENT_CLUSTER \ + { ZCL_CHLORAMINES_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 1049, "Chloramines Concentration Measurement" }, #else -#define SILABS_PRINTCLUSTER_CHLORAMINES_CONCENTRATION_MEASUREMENT_CLUSTER +#define CHIP_PRINTCLUSTER_CHLORAMINES_CONCENTRATION_MEASUREMENT_CLUSTER #endif + #if defined(ZCL_USING_CHLORINE_CONCENTRATION_MEASUREMENT_CLUSTER_SERVER) || \ defined(ZCL_USING_CHLORINE_CONCENTRATION_MEASUREMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_CHLORINE_CONCENTRATION_MEASUREMENT_CLUSTER \ - { ZCL_CHLORINE_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 0x0000, "Chlorine Concentration Measurement" }, +#define CHIP_PRINTCLUSTER_CHLORINE_CONCENTRATION_MEASUREMENT_CLUSTER \ + { ZCL_CHLORINE_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 1050, "Chlorine Concentration Measurement" }, #else -#define SILABS_PRINTCLUSTER_CHLORINE_CONCENTRATION_MEASUREMENT_CLUSTER +#define CHIP_PRINTCLUSTER_CHLORINE_CONCENTRATION_MEASUREMENT_CLUSTER #endif + #if defined(ZCL_USING_FECAL_COLIFORM_AND_E_COLI_CONCENTRATION_MEASUREMENT_CLUSTER_SERVER) || \ defined(ZCL_USING_FECAL_COLIFORM_AND_E_COLI_CONCENTRATION_MEASUREMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_FECAL_COLIFORM_AND_E_COLI_CONCENTRATION_MEASUREMENT_CLUSTER \ - { ZCL_FECAL_COLIFORM_AND_E_COLI_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 0x0000, \ +#define CHIP_PRINTCLUSTER_FECAL_COLIFORM_AND_E_COLI_CONCENTRATION_MEASUREMENT_CLUSTER \ + { ZCL_FECAL_COLIFORM_AND_E_COLI_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 1051, \ "Fecal coliform and E. Coli Concentration Measurement" }, #else -#define SILABS_PRINTCLUSTER_FECAL_COLIFORM_AND_E_COLI_CONCENTRATION_MEASUREMENT_CLUSTER +#define CHIP_PRINTCLUSTER_FECAL_COLIFORM_AND_E_COLI_CONCENTRATION_MEASUREMENT_CLUSTER #endif + #if defined(ZCL_USING_FLUORIDE_CONCENTRATION_MEASUREMENT_CLUSTER_SERVER) || \ defined(ZCL_USING_FLUORIDE_CONCENTRATION_MEASUREMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_FLUORIDE_CONCENTRATION_MEASUREMENT_CLUSTER \ - { ZCL_FLUORIDE_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 0x0000, "Fluoride Concentration Measurement" }, +#define CHIP_PRINTCLUSTER_FLUORIDE_CONCENTRATION_MEASUREMENT_CLUSTER \ + { ZCL_FLUORIDE_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 1052, "Fluoride Concentration Measurement" }, #else -#define SILABS_PRINTCLUSTER_FLUORIDE_CONCENTRATION_MEASUREMENT_CLUSTER +#define CHIP_PRINTCLUSTER_FLUORIDE_CONCENTRATION_MEASUREMENT_CLUSTER #endif + #if defined(ZCL_USING_HALOACETIC_ACIDS_CONCENTRATION_MEASUREMENT_CLUSTER_SERVER) || \ defined(ZCL_USING_HALOACETIC_ACIDS_CONCENTRATION_MEASUREMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_HALOACETIC_ACIDS_CONCENTRATION_MEASUREMENT_CLUSTER \ - { ZCL_HALOACETIC_ACIDS_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 0x0000, "Haloacetic Acids Concentration Measurement" }, +#define CHIP_PRINTCLUSTER_HALOACETIC_ACIDS_CONCENTRATION_MEASUREMENT_CLUSTER \ + { ZCL_HALOACETIC_ACIDS_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 1053, "Haloacetic Acids Concentration Measurement" }, #else -#define SILABS_PRINTCLUSTER_HALOACETIC_ACIDS_CONCENTRATION_MEASUREMENT_CLUSTER +#define CHIP_PRINTCLUSTER_HALOACETIC_ACIDS_CONCENTRATION_MEASUREMENT_CLUSTER #endif + #if defined(ZCL_USING_TOTAL_TRIHALOMETHANES_CONCENTRATION_MEASUREMENT_CLUSTER_SERVER) || \ defined(ZCL_USING_TOTAL_TRIHALOMETHANES_CONCENTRATION_MEASUREMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_TOTAL_TRIHALOMETHANES_CONCENTRATION_MEASUREMENT_CLUSTER \ - { ZCL_TOTAL_TRIHALOMETHANES_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 0x0000, "Total Trihalomethanes Concentration Measurement" }, +#define CHIP_PRINTCLUSTER_TOTAL_TRIHALOMETHANES_CONCENTRATION_MEASUREMENT_CLUSTER \ + { ZCL_TOTAL_TRIHALOMETHANES_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 1054, "Total Trihalomethanes Concentration Measurement" }, #else -#define SILABS_PRINTCLUSTER_TOTAL_TRIHALOMETHANES_CONCENTRATION_MEASUREMENT_CLUSTER +#define CHIP_PRINTCLUSTER_TOTAL_TRIHALOMETHANES_CONCENTRATION_MEASUREMENT_CLUSTER #endif + #if defined(ZCL_USING_TOTAL_COLIFORM_BACTERIA_CONCENTRATION_MEASUREMENT_CLUSTER_SERVER) || \ defined(ZCL_USING_TOTAL_COLIFORM_BACTERIA_CONCENTRATION_MEASUREMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_TOTAL_COLIFORM_BACTERIA_CONCENTRATION_MEASUREMENT_CLUSTER \ - { ZCL_TOTAL_COLIFORM_BACTERIA_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 0x0000, \ - "Total Coliform Bacteria Concentration Measurement" }, +#define CHIP_PRINTCLUSTER_TOTAL_COLIFORM_BACTERIA_CONCENTRATION_MEASUREMENT_CLUSTER \ + { ZCL_TOTAL_COLIFORM_BACTERIA_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 1055, "Total Coliform Bacteria Concentration Measurement" }, #else -#define SILABS_PRINTCLUSTER_TOTAL_COLIFORM_BACTERIA_CONCENTRATION_MEASUREMENT_CLUSTER +#define CHIP_PRINTCLUSTER_TOTAL_COLIFORM_BACTERIA_CONCENTRATION_MEASUREMENT_CLUSTER #endif + #if defined(ZCL_USING_TURBIDITY_CONCENTRATION_MEASUREMENT_CLUSTER_SERVER) || \ defined(ZCL_USING_TURBIDITY_CONCENTRATION_MEASUREMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_TURBIDITY_CONCENTRATION_MEASUREMENT_CLUSTER \ - { ZCL_TURBIDITY_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 0x0000, "Turbidity Concentration Measurement" }, +#define CHIP_PRINTCLUSTER_TURBIDITY_CONCENTRATION_MEASUREMENT_CLUSTER \ + { ZCL_TURBIDITY_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 1056, "Turbidity Concentration Measurement" }, #else -#define SILABS_PRINTCLUSTER_TURBIDITY_CONCENTRATION_MEASUREMENT_CLUSTER +#define CHIP_PRINTCLUSTER_TURBIDITY_CONCENTRATION_MEASUREMENT_CLUSTER #endif + #if defined(ZCL_USING_COPPER_CONCENTRATION_MEASUREMENT_CLUSTER_SERVER) || \ defined(ZCL_USING_COPPER_CONCENTRATION_MEASUREMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_COPPER_CONCENTRATION_MEASUREMENT_CLUSTER \ - { ZCL_COPPER_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 0x0000, "Copper Concentration Measurement" }, +#define CHIP_PRINTCLUSTER_COPPER_CONCENTRATION_MEASUREMENT_CLUSTER \ + { ZCL_COPPER_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 1057, "Copper Concentration Measurement" }, #else -#define SILABS_PRINTCLUSTER_COPPER_CONCENTRATION_MEASUREMENT_CLUSTER +#define CHIP_PRINTCLUSTER_COPPER_CONCENTRATION_MEASUREMENT_CLUSTER #endif + #if defined(ZCL_USING_LEAD_CONCENTRATION_MEASUREMENT_CLUSTER_SERVER) || \ defined(ZCL_USING_LEAD_CONCENTRATION_MEASUREMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_LEAD_CONCENTRATION_MEASUREMENT_CLUSTER \ - { ZCL_LEAD_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 0x0000, "Lead Concentration Measurement" }, +#define CHIP_PRINTCLUSTER_LEAD_CONCENTRATION_MEASUREMENT_CLUSTER \ + { ZCL_LEAD_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 1058, "Lead Concentration Measurement" }, #else -#define SILABS_PRINTCLUSTER_LEAD_CONCENTRATION_MEASUREMENT_CLUSTER +#define CHIP_PRINTCLUSTER_LEAD_CONCENTRATION_MEASUREMENT_CLUSTER #endif + #if defined(ZCL_USING_MANGANESE_CONCENTRATION_MEASUREMENT_CLUSTER_SERVER) || \ defined(ZCL_USING_MANGANESE_CONCENTRATION_MEASUREMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_MANGANESE_CONCENTRATION_MEASUREMENT_CLUSTER \ - { ZCL_MANGANESE_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 0x0000, "Manganese Concentration Measurement" }, +#define CHIP_PRINTCLUSTER_MANGANESE_CONCENTRATION_MEASUREMENT_CLUSTER \ + { ZCL_MANGANESE_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 1059, "Manganese Concentration Measurement" }, #else -#define SILABS_PRINTCLUSTER_MANGANESE_CONCENTRATION_MEASUREMENT_CLUSTER +#define CHIP_PRINTCLUSTER_MANGANESE_CONCENTRATION_MEASUREMENT_CLUSTER #endif + #if defined(ZCL_USING_SULFATE_CONCENTRATION_MEASUREMENT_CLUSTER_SERVER) || \ defined(ZCL_USING_SULFATE_CONCENTRATION_MEASUREMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_SULFATE_CONCENTRATION_MEASUREMENT_CLUSTER \ - { ZCL_SULFATE_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 0x0000, "Sulfate Concentration Measurement" }, +#define CHIP_PRINTCLUSTER_SULFATE_CONCENTRATION_MEASUREMENT_CLUSTER \ + { ZCL_SULFATE_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 1060, "Sulfate Concentration Measurement" }, #else -#define SILABS_PRINTCLUSTER_SULFATE_CONCENTRATION_MEASUREMENT_CLUSTER +#define CHIP_PRINTCLUSTER_SULFATE_CONCENTRATION_MEASUREMENT_CLUSTER #endif + #if defined(ZCL_USING_BROMODICHLOROMETHANE_CONCENTRATION_MEASUREMENT_CLUSTER_SERVER) || \ defined(ZCL_USING_BROMODICHLOROMETHANE_CONCENTRATION_MEASUREMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_BROMODICHLOROMETHANE_CONCENTRATION_MEASUREMENT_CLUSTER \ - { ZCL_BROMODICHLOROMETHANE_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 0x0000, "Bromodichloromethane Concentration Measurement" }, +#define CHIP_PRINTCLUSTER_BROMODICHLOROMETHANE_CONCENTRATION_MEASUREMENT_CLUSTER \ + { ZCL_BROMODICHLOROMETHANE_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 1061, "Bromodichloromethane Concentration Measurement" }, #else -#define SILABS_PRINTCLUSTER_BROMODICHLOROMETHANE_CONCENTRATION_MEASUREMENT_CLUSTER +#define CHIP_PRINTCLUSTER_BROMODICHLOROMETHANE_CONCENTRATION_MEASUREMENT_CLUSTER #endif + #if defined(ZCL_USING_BROMOFORM_CONCENTRATION_MEASUREMENT_CLUSTER_SERVER) || \ defined(ZCL_USING_BROMOFORM_CONCENTRATION_MEASUREMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_BROMOFORM_CONCENTRATION_MEASUREMENT_CLUSTER \ - { ZCL_BROMOFORM_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 0x0000, "Bromoform Concentration Measurement" }, +#define CHIP_PRINTCLUSTER_BROMOFORM_CONCENTRATION_MEASUREMENT_CLUSTER \ + { ZCL_BROMOFORM_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 1062, "Bromoform Concentration Measurement" }, #else -#define SILABS_PRINTCLUSTER_BROMOFORM_CONCENTRATION_MEASUREMENT_CLUSTER +#define CHIP_PRINTCLUSTER_BROMOFORM_CONCENTRATION_MEASUREMENT_CLUSTER #endif + #if defined(ZCL_USING_CHLORODIBROMOMETHANE_CONCENTRATION_MEASUREMENT_CLUSTER_SERVER) || \ defined(ZCL_USING_CHLORODIBROMOMETHANE_CONCENTRATION_MEASUREMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_CHLORODIBROMOMETHANE_CONCENTRATION_MEASUREMENT_CLUSTER \ - { ZCL_CHLORODIBROMOMETHANE_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 0x0000, "Chlorodibromomethane Concentration Measurement" }, +#define CHIP_PRINTCLUSTER_CHLORODIBROMOMETHANE_CONCENTRATION_MEASUREMENT_CLUSTER \ + { ZCL_CHLORODIBROMOMETHANE_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 1063, "Chlorodibromomethane Concentration Measurement" }, #else -#define SILABS_PRINTCLUSTER_CHLORODIBROMOMETHANE_CONCENTRATION_MEASUREMENT_CLUSTER +#define CHIP_PRINTCLUSTER_CHLORODIBROMOMETHANE_CONCENTRATION_MEASUREMENT_CLUSTER #endif + #if defined(ZCL_USING_CHLOROFORM_CONCENTRATION_MEASUREMENT_CLUSTER_SERVER) || \ defined(ZCL_USING_CHLOROFORM_CONCENTRATION_MEASUREMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_CHLOROFORM_CONCENTRATION_MEASUREMENT_CLUSTER \ - { ZCL_CHLOROFORM_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 0x0000, "Chloroform Concentration Measurement" }, +#define CHIP_PRINTCLUSTER_CHLOROFORM_CONCENTRATION_MEASUREMENT_CLUSTER \ + { ZCL_CHLOROFORM_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 1064, "Chloroform Concentration Measurement" }, #else -#define SILABS_PRINTCLUSTER_CHLOROFORM_CONCENTRATION_MEASUREMENT_CLUSTER +#define CHIP_PRINTCLUSTER_CHLOROFORM_CONCENTRATION_MEASUREMENT_CLUSTER #endif + #if defined(ZCL_USING_SODIUM_CONCENTRATION_MEASUREMENT_CLUSTER_SERVER) || \ defined(ZCL_USING_SODIUM_CONCENTRATION_MEASUREMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_SODIUM_CONCENTRATION_MEASUREMENT_CLUSTER \ - { ZCL_SODIUM_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 0x0000, "Sodium Concentration Measurement" }, +#define CHIP_PRINTCLUSTER_SODIUM_CONCENTRATION_MEASUREMENT_CLUSTER \ + { ZCL_SODIUM_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 1065, "Sodium Concentration Measurement" }, #else -#define SILABS_PRINTCLUSTER_SODIUM_CONCENTRATION_MEASUREMENT_CLUSTER +#define CHIP_PRINTCLUSTER_SODIUM_CONCENTRATION_MEASUREMENT_CLUSTER #endif + #if defined(ZCL_USING_IAS_ZONE_CLUSTER_SERVER) || defined(ZCL_USING_IAS_ZONE_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_IAS_ZONE_CLUSTER { ZCL_IAS_ZONE_CLUSTER_ID, 0x0000, "IAS Zone" }, +#define CHIP_PRINTCLUSTER_IAS_ZONE_CLUSTER { ZCL_IAS_ZONE_CLUSTER_ID, 1280, "IAS Zone" }, #else -#define SILABS_PRINTCLUSTER_IAS_ZONE_CLUSTER +#define CHIP_PRINTCLUSTER_IAS_ZONE_CLUSTER #endif + #if defined(ZCL_USING_IAS_ACE_CLUSTER_SERVER) || defined(ZCL_USING_IAS_ACE_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_IAS_ACE_CLUSTER { ZCL_IAS_ACE_CLUSTER_ID, 0x0000, "IAS ACE" }, +#define CHIP_PRINTCLUSTER_IAS_ACE_CLUSTER { ZCL_IAS_ACE_CLUSTER_ID, 1281, "IAS ACE" }, #else -#define SILABS_PRINTCLUSTER_IAS_ACE_CLUSTER +#define CHIP_PRINTCLUSTER_IAS_ACE_CLUSTER #endif + #if defined(ZCL_USING_IAS_WD_CLUSTER_SERVER) || defined(ZCL_USING_IAS_WD_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_IAS_WD_CLUSTER { ZCL_IAS_WD_CLUSTER_ID, 0x0000, "IAS WD" }, +#define CHIP_PRINTCLUSTER_IAS_WD_CLUSTER { ZCL_IAS_WD_CLUSTER_ID, 1282, "IAS WD" }, #else -#define SILABS_PRINTCLUSTER_IAS_WD_CLUSTER +#define CHIP_PRINTCLUSTER_IAS_WD_CLUSTER #endif + #if defined(ZCL_USING_GENERIC_TUNNEL_CLUSTER_SERVER) || defined(ZCL_USING_GENERIC_TUNNEL_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_GENERIC_TUNNEL_CLUSTER { ZCL_GENERIC_TUNNEL_CLUSTER_ID, 0x0000, "Generic Tunnel" }, +#define CHIP_PRINTCLUSTER_GENERIC_TUNNEL_CLUSTER { ZCL_GENERIC_TUNNEL_CLUSTER_ID, 1536, "Generic Tunnel" }, #else -#define SILABS_PRINTCLUSTER_GENERIC_TUNNEL_CLUSTER +#define CHIP_PRINTCLUSTER_GENERIC_TUNNEL_CLUSTER #endif + #if defined(ZCL_USING_BACNET_PROTOCOL_TUNNEL_CLUSTER_SERVER) || defined(ZCL_USING_BACNET_PROTOCOL_TUNNEL_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_BACNET_PROTOCOL_TUNNEL_CLUSTER \ - { ZCL_BACNET_PROTOCOL_TUNNEL_CLUSTER_ID, 0x0000, "BACnet Protocol Tunnel" }, +#define CHIP_PRINTCLUSTER_BACNET_PROTOCOL_TUNNEL_CLUSTER { ZCL_BACNET_PROTOCOL_TUNNEL_CLUSTER_ID, 1537, "BACnet Protocol Tunnel" }, #else -#define SILABS_PRINTCLUSTER_BACNET_PROTOCOL_TUNNEL_CLUSTER +#define CHIP_PRINTCLUSTER_BACNET_PROTOCOL_TUNNEL_CLUSTER #endif + #if defined(ZCL_USING_11073_PROTOCOL_TUNNEL_CLUSTER_SERVER) || defined(ZCL_USING_11073_PROTOCOL_TUNNEL_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_11073_PROTOCOL_TUNNEL_CLUSTER { ZCL_11073_PROTOCOL_TUNNEL_CLUSTER_ID, 0x0000, "11073 Protocol Tunnel" }, +#define CHIP_PRINTCLUSTER_11073_PROTOCOL_TUNNEL_CLUSTER { ZCL_11073_PROTOCOL_TUNNEL_CLUSTER_ID, 1556, "11073 Protocol Tunnel" }, #else -#define SILABS_PRINTCLUSTER_11073_PROTOCOL_TUNNEL_CLUSTER +#define CHIP_PRINTCLUSTER_11073_PROTOCOL_TUNNEL_CLUSTER #endif + #if defined(ZCL_USING_ISO7816_PROTOCOL_TUNNEL_CLUSTER_SERVER) || defined(ZCL_USING_ISO7816_PROTOCOL_TUNNEL_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_ISO7816_PROTOCOL_TUNNEL_CLUSTER \ - { ZCL_ISO7816_PROTOCOL_TUNNEL_CLUSTER_ID, 0x0000, "ISO 7816 Protocol Tunnel" }, +#define CHIP_PRINTCLUSTER_ISO7816_PROTOCOL_TUNNEL_CLUSTER \ + { ZCL_ISO7816_PROTOCOL_TUNNEL_CLUSTER_ID, 1557, "ISO 7816 Protocol Tunnel" }, #else -#define SILABS_PRINTCLUSTER_ISO7816_PROTOCOL_TUNNEL_CLUSTER +#define CHIP_PRINTCLUSTER_ISO7816_PROTOCOL_TUNNEL_CLUSTER #endif + #if defined(ZCL_USING_PRICE_CLUSTER_SERVER) || defined(ZCL_USING_PRICE_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_PRICE_CLUSTER { ZCL_PRICE_CLUSTER_ID, 0x0000, "Price" }, +#define CHIP_PRINTCLUSTER_PRICE_CLUSTER { ZCL_PRICE_CLUSTER_ID, 1792, "Price" }, #else -#define SILABS_PRINTCLUSTER_PRICE_CLUSTER +#define CHIP_PRINTCLUSTER_PRICE_CLUSTER #endif + #if defined(ZCL_USING_DEMAND_RESPONSE_LOAD_CONTROL_CLUSTER_SERVER) || defined(ZCL_USING_DEMAND_RESPONSE_LOAD_CONTROL_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_DEMAND_RESPONSE_LOAD_CONTROL_CLUSTER \ - { ZCL_DEMAND_RESPONSE_LOAD_CONTROL_CLUSTER_ID, 0x0000, "Demand Response and Load Control" }, +#define CHIP_PRINTCLUSTER_DEMAND_RESPONSE_LOAD_CONTROL_CLUSTER \ + { ZCL_DEMAND_RESPONSE_LOAD_CONTROL_CLUSTER_ID, 1793, "Demand Response and Load Control" }, #else -#define SILABS_PRINTCLUSTER_DEMAND_RESPONSE_LOAD_CONTROL_CLUSTER +#define CHIP_PRINTCLUSTER_DEMAND_RESPONSE_LOAD_CONTROL_CLUSTER #endif + #if defined(ZCL_USING_SIMPLE_METERING_CLUSTER_SERVER) || defined(ZCL_USING_SIMPLE_METERING_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_SIMPLE_METERING_CLUSTER { ZCL_SIMPLE_METERING_CLUSTER_ID, 0x0000, "Simple Metering" }, +#define CHIP_PRINTCLUSTER_SIMPLE_METERING_CLUSTER { ZCL_SIMPLE_METERING_CLUSTER_ID, 1794, "Simple Metering" }, #else -#define SILABS_PRINTCLUSTER_SIMPLE_METERING_CLUSTER +#define CHIP_PRINTCLUSTER_SIMPLE_METERING_CLUSTER #endif + #if defined(ZCL_USING_MESSAGING_CLUSTER_SERVER) || defined(ZCL_USING_MESSAGING_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_MESSAGING_CLUSTER { ZCL_MESSAGING_CLUSTER_ID, 0x0000, "Messaging" }, +#define CHIP_PRINTCLUSTER_MESSAGING_CLUSTER { ZCL_MESSAGING_CLUSTER_ID, 1795, "Messaging" }, #else -#define SILABS_PRINTCLUSTER_MESSAGING_CLUSTER +#define CHIP_PRINTCLUSTER_MESSAGING_CLUSTER #endif + #if defined(ZCL_USING_TUNNELING_CLUSTER_SERVER) || defined(ZCL_USING_TUNNELING_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_TUNNELING_CLUSTER { ZCL_TUNNELING_CLUSTER_ID, 0x0000, "Tunneling" }, +#define CHIP_PRINTCLUSTER_TUNNELING_CLUSTER { ZCL_TUNNELING_CLUSTER_ID, 1796, "Tunneling" }, #else -#define SILABS_PRINTCLUSTER_TUNNELING_CLUSTER +#define CHIP_PRINTCLUSTER_TUNNELING_CLUSTER #endif + #if defined(ZCL_USING_PREPAYMENT_CLUSTER_SERVER) || defined(ZCL_USING_PREPAYMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_PREPAYMENT_CLUSTER { ZCL_PREPAYMENT_CLUSTER_ID, 0x0000, "Prepayment" }, +#define CHIP_PRINTCLUSTER_PREPAYMENT_CLUSTER { ZCL_PREPAYMENT_CLUSTER_ID, 1797, "Prepayment" }, #else -#define SILABS_PRINTCLUSTER_PREPAYMENT_CLUSTER +#define CHIP_PRINTCLUSTER_PREPAYMENT_CLUSTER #endif + #if defined(ZCL_USING_ENERGY_MANAGEMENT_CLUSTER_SERVER) || defined(ZCL_USING_ENERGY_MANAGEMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_ENERGY_MANAGEMENT_CLUSTER { ZCL_ENERGY_MANAGEMENT_CLUSTER_ID, 0x0000, "Energy Management" }, +#define CHIP_PRINTCLUSTER_ENERGY_MANAGEMENT_CLUSTER { ZCL_ENERGY_MANAGEMENT_CLUSTER_ID, 1798, "Energy Management" }, #else -#define SILABS_PRINTCLUSTER_ENERGY_MANAGEMENT_CLUSTER +#define CHIP_PRINTCLUSTER_ENERGY_MANAGEMENT_CLUSTER #endif + #if defined(ZCL_USING_CALENDAR_CLUSTER_SERVER) || defined(ZCL_USING_CALENDAR_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_CALENDAR_CLUSTER { ZCL_CALENDAR_CLUSTER_ID, 0x0000, "Calendar" }, +#define CHIP_PRINTCLUSTER_CALENDAR_CLUSTER { ZCL_CALENDAR_CLUSTER_ID, 1799, "Calendar" }, #else -#define SILABS_PRINTCLUSTER_CALENDAR_CLUSTER +#define CHIP_PRINTCLUSTER_CALENDAR_CLUSTER #endif + #if defined(ZCL_USING_DEVICE_MANAGEMENT_CLUSTER_SERVER) || defined(ZCL_USING_DEVICE_MANAGEMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_DEVICE_MANAGEMENT_CLUSTER { ZCL_DEVICE_MANAGEMENT_CLUSTER_ID, 0x0000, "Device Management" }, +#define CHIP_PRINTCLUSTER_DEVICE_MANAGEMENT_CLUSTER { ZCL_DEVICE_MANAGEMENT_CLUSTER_ID, 1800, "Device Management" }, #else -#define SILABS_PRINTCLUSTER_DEVICE_MANAGEMENT_CLUSTER +#define CHIP_PRINTCLUSTER_DEVICE_MANAGEMENT_CLUSTER #endif + #if defined(ZCL_USING_EVENTS_CLUSTER_SERVER) || defined(ZCL_USING_EVENTS_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_EVENTS_CLUSTER { ZCL_EVENTS_CLUSTER_ID, 0x0000, "Events" }, +#define CHIP_PRINTCLUSTER_EVENTS_CLUSTER { ZCL_EVENTS_CLUSTER_ID, 1801, "Events" }, #else -#define SILABS_PRINTCLUSTER_EVENTS_CLUSTER +#define CHIP_PRINTCLUSTER_EVENTS_CLUSTER #endif + #if defined(ZCL_USING_MDU_PAIRING_CLUSTER_SERVER) || defined(ZCL_USING_MDU_PAIRING_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_MDU_PAIRING_CLUSTER { ZCL_MDU_PAIRING_CLUSTER_ID, 0x0000, "MDU Pairing" }, +#define CHIP_PRINTCLUSTER_MDU_PAIRING_CLUSTER { ZCL_MDU_PAIRING_CLUSTER_ID, 1802, "MDU Pairing" }, #else -#define SILABS_PRINTCLUSTER_MDU_PAIRING_CLUSTER +#define CHIP_PRINTCLUSTER_MDU_PAIRING_CLUSTER #endif + #if defined(ZCL_USING_SUB_GHZ_CLUSTER_SERVER) || defined(ZCL_USING_SUB_GHZ_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_SUB_GHZ_CLUSTER { ZCL_SUB_GHZ_CLUSTER_ID, 0x0000, "Sub-GHz" }, +#define CHIP_PRINTCLUSTER_SUB_GHZ_CLUSTER { ZCL_SUB_GHZ_CLUSTER_ID, 1803, "Sub-GHz" }, #else -#define SILABS_PRINTCLUSTER_SUB_GHZ_CLUSTER +#define CHIP_PRINTCLUSTER_SUB_GHZ_CLUSTER #endif + #if defined(ZCL_USING_KEY_ESTABLISHMENT_CLUSTER_SERVER) || defined(ZCL_USING_KEY_ESTABLISHMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_KEY_ESTABLISHMENT_CLUSTER { ZCL_KEY_ESTABLISHMENT_CLUSTER_ID, 0x0000, "Key Establishment" }, +#define CHIP_PRINTCLUSTER_KEY_ESTABLISHMENT_CLUSTER { ZCL_KEY_ESTABLISHMENT_CLUSTER_ID, 2048, "Key Establishment" }, #else -#define SILABS_PRINTCLUSTER_KEY_ESTABLISHMENT_CLUSTER +#define CHIP_PRINTCLUSTER_KEY_ESTABLISHMENT_CLUSTER #endif + #if defined(ZCL_USING_INFORMATION_CLUSTER_SERVER) || defined(ZCL_USING_INFORMATION_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_INFORMATION_CLUSTER { ZCL_INFORMATION_CLUSTER_ID, 0x0000, "Information" }, +#define CHIP_PRINTCLUSTER_INFORMATION_CLUSTER { ZCL_INFORMATION_CLUSTER_ID, 2304, "Information" }, #else -#define SILABS_PRINTCLUSTER_INFORMATION_CLUSTER +#define CHIP_PRINTCLUSTER_INFORMATION_CLUSTER #endif + #if defined(ZCL_USING_DATA_SHARING_CLUSTER_SERVER) || defined(ZCL_USING_DATA_SHARING_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_DATA_SHARING_CLUSTER { ZCL_DATA_SHARING_CLUSTER_ID, 0x0000, "Data Sharing" }, +#define CHIP_PRINTCLUSTER_DATA_SHARING_CLUSTER { ZCL_DATA_SHARING_CLUSTER_ID, 2305, "Data Sharing" }, #else -#define SILABS_PRINTCLUSTER_DATA_SHARING_CLUSTER +#define CHIP_PRINTCLUSTER_DATA_SHARING_CLUSTER #endif + #if defined(ZCL_USING_GAMING_CLUSTER_SERVER) || defined(ZCL_USING_GAMING_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_GAMING_CLUSTER { ZCL_GAMING_CLUSTER_ID, 0x0000, "Gaming" }, +#define CHIP_PRINTCLUSTER_GAMING_CLUSTER { ZCL_GAMING_CLUSTER_ID, 2306, "Gaming" }, #else -#define SILABS_PRINTCLUSTER_GAMING_CLUSTER +#define CHIP_PRINTCLUSTER_GAMING_CLUSTER #endif + #if defined(ZCL_USING_DATA_RATE_CONTROL_CLUSTER_SERVER) || defined(ZCL_USING_DATA_RATE_CONTROL_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_DATA_RATE_CONTROL_CLUSTER { ZCL_DATA_RATE_CONTROL_CLUSTER_ID, 0x0000, "Data Rate Control" }, +#define CHIP_PRINTCLUSTER_DATA_RATE_CONTROL_CLUSTER { ZCL_DATA_RATE_CONTROL_CLUSTER_ID, 2307, "Data Rate Control" }, #else -#define SILABS_PRINTCLUSTER_DATA_RATE_CONTROL_CLUSTER +#define CHIP_PRINTCLUSTER_DATA_RATE_CONTROL_CLUSTER #endif + #if defined(ZCL_USING_VOICE_OVER_ZIGBEE_CLUSTER_SERVER) || defined(ZCL_USING_VOICE_OVER_ZIGBEE_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_VOICE_OVER_ZIGBEE_CLUSTER { ZCL_VOICE_OVER_ZIGBEE_CLUSTER_ID, 0x0000, "Voice over ZigBee" }, +#define CHIP_PRINTCLUSTER_VOICE_OVER_ZIGBEE_CLUSTER { ZCL_VOICE_OVER_ZIGBEE_CLUSTER_ID, 2308, "Voice over ZigBee" }, #else -#define SILABS_PRINTCLUSTER_VOICE_OVER_ZIGBEE_CLUSTER +#define CHIP_PRINTCLUSTER_VOICE_OVER_ZIGBEE_CLUSTER #endif + #if defined(ZCL_USING_CHATTING_CLUSTER_SERVER) || defined(ZCL_USING_CHATTING_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_CHATTING_CLUSTER { ZCL_CHATTING_CLUSTER_ID, 0x0000, "Chatting" }, +#define CHIP_PRINTCLUSTER_CHATTING_CLUSTER { ZCL_CHATTING_CLUSTER_ID, 2309, "Chatting" }, #else -#define SILABS_PRINTCLUSTER_CHATTING_CLUSTER +#define CHIP_PRINTCLUSTER_CHATTING_CLUSTER #endif + #if defined(ZCL_USING_PAYMENT_CLUSTER_SERVER) || defined(ZCL_USING_PAYMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_PAYMENT_CLUSTER { ZCL_PAYMENT_CLUSTER_ID, 0x0000, "Payment" }, +#define CHIP_PRINTCLUSTER_PAYMENT_CLUSTER { ZCL_PAYMENT_CLUSTER_ID, 2561, "Payment" }, #else -#define SILABS_PRINTCLUSTER_PAYMENT_CLUSTER +#define CHIP_PRINTCLUSTER_PAYMENT_CLUSTER #endif + #if defined(ZCL_USING_BILLING_CLUSTER_SERVER) || defined(ZCL_USING_BILLING_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_BILLING_CLUSTER { ZCL_BILLING_CLUSTER_ID, 0x0000, "Billing" }, +#define CHIP_PRINTCLUSTER_BILLING_CLUSTER { ZCL_BILLING_CLUSTER_ID, 2562, "Billing" }, #else -#define SILABS_PRINTCLUSTER_BILLING_CLUSTER +#define CHIP_PRINTCLUSTER_BILLING_CLUSTER #endif + #if defined(ZCL_USING_APPLIANCE_IDENTIFICATION_CLUSTER_SERVER) || defined(ZCL_USING_APPLIANCE_IDENTIFICATION_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_APPLIANCE_IDENTIFICATION_CLUSTER \ - { ZCL_APPLIANCE_IDENTIFICATION_CLUSTER_ID, 0x0000, "Appliance Identification" }, +#define CHIP_PRINTCLUSTER_APPLIANCE_IDENTIFICATION_CLUSTER \ + { ZCL_APPLIANCE_IDENTIFICATION_CLUSTER_ID, 2816, "Appliance Identification" }, #else -#define SILABS_PRINTCLUSTER_APPLIANCE_IDENTIFICATION_CLUSTER +#define CHIP_PRINTCLUSTER_APPLIANCE_IDENTIFICATION_CLUSTER #endif + #if defined(ZCL_USING_METER_IDENTIFICATION_CLUSTER_SERVER) || defined(ZCL_USING_METER_IDENTIFICATION_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_METER_IDENTIFICATION_CLUSTER { ZCL_METER_IDENTIFICATION_CLUSTER_ID, 0x0000, "Meter Identification" }, +#define CHIP_PRINTCLUSTER_METER_IDENTIFICATION_CLUSTER { ZCL_METER_IDENTIFICATION_CLUSTER_ID, 2817, "Meter Identification" }, #else -#define SILABS_PRINTCLUSTER_METER_IDENTIFICATION_CLUSTER +#define CHIP_PRINTCLUSTER_METER_IDENTIFICATION_CLUSTER #endif + #if defined(ZCL_USING_APPLIANCE_EVENTS_AND_ALERT_CLUSTER_SERVER) || defined(ZCL_USING_APPLIANCE_EVENTS_AND_ALERT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_APPLIANCE_EVENTS_AND_ALERT_CLUSTER \ - { ZCL_APPLIANCE_EVENTS_AND_ALERT_CLUSTER_ID, 0x0000, "Appliance Events and Alert" }, +#define CHIP_PRINTCLUSTER_APPLIANCE_EVENTS_AND_ALERT_CLUSTER \ + { ZCL_APPLIANCE_EVENTS_AND_ALERT_CLUSTER_ID, 2818, "Appliance Events and Alert" }, #else -#define SILABS_PRINTCLUSTER_APPLIANCE_EVENTS_AND_ALERT_CLUSTER +#define CHIP_PRINTCLUSTER_APPLIANCE_EVENTS_AND_ALERT_CLUSTER #endif + #if defined(ZCL_USING_APPLIANCE_STATISTICS_CLUSTER_SERVER) || defined(ZCL_USING_APPLIANCE_STATISTICS_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_APPLIANCE_STATISTICS_CLUSTER { ZCL_APPLIANCE_STATISTICS_CLUSTER_ID, 0x0000, "Appliance Statistics" }, +#define CHIP_PRINTCLUSTER_APPLIANCE_STATISTICS_CLUSTER { ZCL_APPLIANCE_STATISTICS_CLUSTER_ID, 2819, "Appliance Statistics" }, #else -#define SILABS_PRINTCLUSTER_APPLIANCE_STATISTICS_CLUSTER +#define CHIP_PRINTCLUSTER_APPLIANCE_STATISTICS_CLUSTER #endif + #if defined(ZCL_USING_ELECTRICAL_MEASUREMENT_CLUSTER_SERVER) || defined(ZCL_USING_ELECTRICAL_MEASUREMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_ELECTRICAL_MEASUREMENT_CLUSTER \ - { ZCL_ELECTRICAL_MEASUREMENT_CLUSTER_ID, 0x0000, "Electrical Measurement" }, +#define CHIP_PRINTCLUSTER_ELECTRICAL_MEASUREMENT_CLUSTER { ZCL_ELECTRICAL_MEASUREMENT_CLUSTER_ID, 2820, "Electrical Measurement" }, #else -#define SILABS_PRINTCLUSTER_ELECTRICAL_MEASUREMENT_CLUSTER +#define CHIP_PRINTCLUSTER_ELECTRICAL_MEASUREMENT_CLUSTER #endif + #if defined(ZCL_USING_DIAGNOSTICS_CLUSTER_SERVER) || defined(ZCL_USING_DIAGNOSTICS_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_DIAGNOSTICS_CLUSTER { ZCL_DIAGNOSTICS_CLUSTER_ID, 0x0000, "Diagnostics" }, +#define CHIP_PRINTCLUSTER_DIAGNOSTICS_CLUSTER { ZCL_DIAGNOSTICS_CLUSTER_ID, 2821, "Diagnostics" }, #else -#define SILABS_PRINTCLUSTER_DIAGNOSTICS_CLUSTER +#define CHIP_PRINTCLUSTER_DIAGNOSTICS_CLUSTER #endif + #if defined(ZCL_USING_ZLL_COMMISSIONING_CLUSTER_SERVER) || defined(ZCL_USING_ZLL_COMMISSIONING_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_ZLL_COMMISSIONING_CLUSTER { ZCL_ZLL_COMMISSIONING_CLUSTER_ID, 0x0000, "ZLL Commissioning" }, +#define CHIP_PRINTCLUSTER_ZLL_COMMISSIONING_CLUSTER { ZCL_ZLL_COMMISSIONING_CLUSTER_ID, 4096, "ZLL Commissioning" }, #else -#define SILABS_PRINTCLUSTER_ZLL_COMMISSIONING_CLUSTER +#define CHIP_PRINTCLUSTER_ZLL_COMMISSIONING_CLUSTER #endif + #if defined(ZCL_USING_SAMPLE_MFG_SPECIFIC_CLUSTER_SERVER) || defined(ZCL_USING_SAMPLE_MFG_SPECIFIC_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_SAMPLE_MFG_SPECIFIC_CLUSTER \ - { ZCL_SAMPLE_MFG_SPECIFIC_CLUSTER_ID, 0x1002, "Sample Mfg Specific Cluster" }, +#define CHIP_PRINTCLUSTER_SAMPLE_MFG_SPECIFIC_CLUSTER { ZCL_SAMPLE_MFG_SPECIFIC_CLUSTER_ID, 64512, "Sample Mfg Specific Cluster" }, #else -#define SILABS_PRINTCLUSTER_SAMPLE_MFG_SPECIFIC_CLUSTER +#define CHIP_PRINTCLUSTER_SAMPLE_MFG_SPECIFIC_CLUSTER #endif + #if defined(ZCL_USING_SAMPLE_MFG_SPECIFIC_CLUSTER_2_SERVER) || defined(ZCL_USING_SAMPLE_MFG_SPECIFIC_CLUSTER_2_CLIENT) -#define SILABS_PRINTCLUSTER_SAMPLE_MFG_SPECIFIC_CLUSTER_2 \ - { ZCL_SAMPLE_MFG_SPECIFIC_CLUSTER_2_ID, 0x1049, "Sample Mfg Specific Cluster 2" }, +#define CHIP_PRINTCLUSTER_SAMPLE_MFG_SPECIFIC_CLUSTER_2 \ + { ZCL_SAMPLE_MFG_SPECIFIC_CLUSTER_2_ID, 64512, "Sample Mfg Specific Cluster 2" }, #else -#define SILABS_PRINTCLUSTER_SAMPLE_MFG_SPECIFIC_CLUSTER_2 +#define CHIP_PRINTCLUSTER_SAMPLE_MFG_SPECIFIC_CLUSTER_2 #endif + #if defined(ZCL_USING_OTA_CONFIGURATION_CLUSTER_SERVER) || defined(ZCL_USING_OTA_CONFIGURATION_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_OTA_CONFIGURATION_CLUSTER { ZCL_OTA_CONFIGURATION_CLUSTER_ID, 0x1002, "Configuration Cluster" }, +#define CHIP_PRINTCLUSTER_OTA_CONFIGURATION_CLUSTER { ZCL_OTA_CONFIGURATION_CLUSTER_ID, 64513, "Configuration Cluster" }, #else -#define SILABS_PRINTCLUSTER_OTA_CONFIGURATION_CLUSTER +#define CHIP_PRINTCLUSTER_OTA_CONFIGURATION_CLUSTER #endif + #if defined(ZCL_USING_MFGLIB_CLUSTER_SERVER) || defined(ZCL_USING_MFGLIB_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_MFGLIB_CLUSTER { ZCL_MFGLIB_CLUSTER_ID, 0x1002, "MFGLIB Cluster" }, +#define CHIP_PRINTCLUSTER_MFGLIB_CLUSTER { ZCL_MFGLIB_CLUSTER_ID, 64514, "MFGLIB Cluster" }, #else -#define SILABS_PRINTCLUSTER_MFGLIB_CLUSTER +#define CHIP_PRINTCLUSTER_MFGLIB_CLUSTER #endif + #if defined(ZCL_USING_SL_WWAH_CLUSTER_SERVER) || defined(ZCL_USING_SL_WWAH_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_SL_WWAH_CLUSTER { ZCL_SL_WWAH_CLUSTER_ID, 0x1217, "SL Works With All Hubs" }, +#define CHIP_PRINTCLUSTER_SL_WWAH_CLUSTER { ZCL_SL_WWAH_CLUSTER_ID, 64599, "SL Works With All Hubs" }, #else -#define SILABS_PRINTCLUSTER_SL_WWAH_CLUSTER +#define CHIP_PRINTCLUSTER_SL_WWAH_CLUSTER #endif + #define CLUSTER_IDS_TO_NAMES \ - SILABS_PRINTCLUSTER_BASIC_CLUSTER \ - SILABS_PRINTCLUSTER_POWER_CONFIG_CLUSTER \ - SILABS_PRINTCLUSTER_DEVICE_TEMP_CLUSTER \ - SILABS_PRINTCLUSTER_IDENTIFY_CLUSTER \ - SILABS_PRINTCLUSTER_GROUPS_CLUSTER \ - SILABS_PRINTCLUSTER_SCENES_CLUSTER \ - SILABS_PRINTCLUSTER_ON_OFF_CLUSTER \ - SILABS_PRINTCLUSTER_ON_OFF_SWITCH_CONFIG_CLUSTER \ - SILABS_PRINTCLUSTER_LEVEL_CONTROL_CLUSTER \ - SILABS_PRINTCLUSTER_ALARM_CLUSTER \ - SILABS_PRINTCLUSTER_TIME_CLUSTER \ - SILABS_PRINTCLUSTER_RSSI_LOCATION_CLUSTER \ - SILABS_PRINTCLUSTER_BINARY_INPUT_BASIC_CLUSTER \ - SILABS_PRINTCLUSTER_COMMISSIONING_CLUSTER \ - SILABS_PRINTCLUSTER_PARTITION_CLUSTER \ - SILABS_PRINTCLUSTER_OTA_BOOTLOAD_CLUSTER \ - SILABS_PRINTCLUSTER_POWER_PROFILE_CLUSTER \ - SILABS_PRINTCLUSTER_APPLIANCE_CONTROL_CLUSTER \ - SILABS_PRINTCLUSTER_POLL_CONTROL_CLUSTER \ - SILABS_PRINTCLUSTER_GREEN_POWER_CLUSTER \ - SILABS_PRINTCLUSTER_KEEPALIVE_CLUSTER \ - SILABS_PRINTCLUSTER_SHADE_CONFIG_CLUSTER \ - SILABS_PRINTCLUSTER_DOOR_LOCK_CLUSTER \ - SILABS_PRINTCLUSTER_WINDOW_COVERING_CLUSTER \ - SILABS_PRINTCLUSTER_BARRIER_CONTROL_CLUSTER \ - SILABS_PRINTCLUSTER_PUMP_CONFIG_CONTROL_CLUSTER \ - SILABS_PRINTCLUSTER_THERMOSTAT_CLUSTER \ - SILABS_PRINTCLUSTER_FAN_CONTROL_CLUSTER \ - SILABS_PRINTCLUSTER_DEHUMID_CONTROL_CLUSTER \ - SILABS_PRINTCLUSTER_THERMOSTAT_UI_CONFIG_CLUSTER \ - SILABS_PRINTCLUSTER_COLOR_CONTROL_CLUSTER \ - SILABS_PRINTCLUSTER_BALLAST_CONFIGURATION_CLUSTER \ - SILABS_PRINTCLUSTER_ILLUM_MEASUREMENT_CLUSTER \ - SILABS_PRINTCLUSTER_ILLUM_LEVEL_SENSING_CLUSTER \ - SILABS_PRINTCLUSTER_TEMP_MEASUREMENT_CLUSTER \ - SILABS_PRINTCLUSTER_PRESSURE_MEASUREMENT_CLUSTER \ - SILABS_PRINTCLUSTER_FLOW_MEASUREMENT_CLUSTER \ - SILABS_PRINTCLUSTER_RELATIVE_HUMIDITY_MEASUREMENT_CLUSTER \ - SILABS_PRINTCLUSTER_OCCUPANCY_SENSING_CLUSTER \ - SILABS_PRINTCLUSTER_CARBON_MONOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER \ - SILABS_PRINTCLUSTER_CARBON_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER \ - SILABS_PRINTCLUSTER_ETHYLENE_CONCENTRATION_MEASUREMENT_CLUSTER \ - SILABS_PRINTCLUSTER_ETHYLENE_OXIDE_CONCENTRATION_MEASUREMENT_CLUSTER \ - SILABS_PRINTCLUSTER_HYDROGEN_CONCENTRATION_MEASUREMENT_CLUSTER \ - SILABS_PRINTCLUSTER_HYDROGEN_SULPHIDE_CONCENTRATION_MEASUREMENT_CLUSTER \ - SILABS_PRINTCLUSTER_NITRIC_OXIDE_CONCENTRATION_MEASUREMENT_CLUSTER \ - SILABS_PRINTCLUSTER_NITROGEN_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER \ - SILABS_PRINTCLUSTER_OXYGEN_CONCENTRATION_MEASUREMENT_CLUSTER \ - SILABS_PRINTCLUSTER_OZONE_CONCENTRATION_MEASUREMENT_CLUSTER \ - SILABS_PRINTCLUSTER_SULFUR_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER \ - SILABS_PRINTCLUSTER_DISSOLVED_OXYGEN_CONCENTRATION_MEASUREMENT_CLUSTER \ - SILABS_PRINTCLUSTER_BROMATE_CONCENTRATION_MEASUREMENT_CLUSTER \ - SILABS_PRINTCLUSTER_CHLORAMINES_CONCENTRATION_MEASUREMENT_CLUSTER \ - SILABS_PRINTCLUSTER_CHLORINE_CONCENTRATION_MEASUREMENT_CLUSTER \ - SILABS_PRINTCLUSTER_FECAL_COLIFORM_AND_E_COLI_CONCENTRATION_MEASUREMENT_CLUSTER \ - SILABS_PRINTCLUSTER_FLUORIDE_CONCENTRATION_MEASUREMENT_CLUSTER \ - SILABS_PRINTCLUSTER_HALOACETIC_ACIDS_CONCENTRATION_MEASUREMENT_CLUSTER \ - SILABS_PRINTCLUSTER_TOTAL_TRIHALOMETHANES_CONCENTRATION_MEASUREMENT_CLUSTER \ - SILABS_PRINTCLUSTER_TOTAL_COLIFORM_BACTERIA_CONCENTRATION_MEASUREMENT_CLUSTER \ - SILABS_PRINTCLUSTER_TURBIDITY_CONCENTRATION_MEASUREMENT_CLUSTER \ - SILABS_PRINTCLUSTER_COPPER_CONCENTRATION_MEASUREMENT_CLUSTER \ - SILABS_PRINTCLUSTER_LEAD_CONCENTRATION_MEASUREMENT_CLUSTER \ - SILABS_PRINTCLUSTER_MANGANESE_CONCENTRATION_MEASUREMENT_CLUSTER \ - SILABS_PRINTCLUSTER_SULFATE_CONCENTRATION_MEASUREMENT_CLUSTER \ - SILABS_PRINTCLUSTER_BROMODICHLOROMETHANE_CONCENTRATION_MEASUREMENT_CLUSTER \ - SILABS_PRINTCLUSTER_BROMOFORM_CONCENTRATION_MEASUREMENT_CLUSTER \ - SILABS_PRINTCLUSTER_CHLORODIBROMOMETHANE_CONCENTRATION_MEASUREMENT_CLUSTER \ - SILABS_PRINTCLUSTER_CHLOROFORM_CONCENTRATION_MEASUREMENT_CLUSTER \ - SILABS_PRINTCLUSTER_SODIUM_CONCENTRATION_MEASUREMENT_CLUSTER \ - SILABS_PRINTCLUSTER_IAS_ZONE_CLUSTER \ - SILABS_PRINTCLUSTER_IAS_ACE_CLUSTER \ - SILABS_PRINTCLUSTER_IAS_WD_CLUSTER \ - SILABS_PRINTCLUSTER_GENERIC_TUNNEL_CLUSTER \ - SILABS_PRINTCLUSTER_BACNET_PROTOCOL_TUNNEL_CLUSTER \ - SILABS_PRINTCLUSTER_11073_PROTOCOL_TUNNEL_CLUSTER \ - SILABS_PRINTCLUSTER_ISO7816_PROTOCOL_TUNNEL_CLUSTER \ - SILABS_PRINTCLUSTER_PRICE_CLUSTER \ - SILABS_PRINTCLUSTER_DEMAND_RESPONSE_LOAD_CONTROL_CLUSTER \ - SILABS_PRINTCLUSTER_SIMPLE_METERING_CLUSTER \ - SILABS_PRINTCLUSTER_MESSAGING_CLUSTER \ - SILABS_PRINTCLUSTER_TUNNELING_CLUSTER \ - SILABS_PRINTCLUSTER_PREPAYMENT_CLUSTER \ - SILABS_PRINTCLUSTER_ENERGY_MANAGEMENT_CLUSTER \ - SILABS_PRINTCLUSTER_CALENDAR_CLUSTER \ - SILABS_PRINTCLUSTER_DEVICE_MANAGEMENT_CLUSTER \ - SILABS_PRINTCLUSTER_EVENTS_CLUSTER \ - SILABS_PRINTCLUSTER_MDU_PAIRING_CLUSTER \ - SILABS_PRINTCLUSTER_SUB_GHZ_CLUSTER \ - SILABS_PRINTCLUSTER_KEY_ESTABLISHMENT_CLUSTER \ - SILABS_PRINTCLUSTER_INFORMATION_CLUSTER \ - SILABS_PRINTCLUSTER_DATA_SHARING_CLUSTER \ - SILABS_PRINTCLUSTER_GAMING_CLUSTER \ - SILABS_PRINTCLUSTER_DATA_RATE_CONTROL_CLUSTER \ - SILABS_PRINTCLUSTER_VOICE_OVER_ZIGBEE_CLUSTER \ - SILABS_PRINTCLUSTER_CHATTING_CLUSTER \ - SILABS_PRINTCLUSTER_PAYMENT_CLUSTER \ - SILABS_PRINTCLUSTER_BILLING_CLUSTER \ - SILABS_PRINTCLUSTER_APPLIANCE_IDENTIFICATION_CLUSTER \ - SILABS_PRINTCLUSTER_METER_IDENTIFICATION_CLUSTER \ - SILABS_PRINTCLUSTER_APPLIANCE_EVENTS_AND_ALERT_CLUSTER \ - SILABS_PRINTCLUSTER_APPLIANCE_STATISTICS_CLUSTER \ - SILABS_PRINTCLUSTER_ELECTRICAL_MEASUREMENT_CLUSTER \ - SILABS_PRINTCLUSTER_DIAGNOSTICS_CLUSTER \ - SILABS_PRINTCLUSTER_ZLL_COMMISSIONING_CLUSTER \ - SILABS_PRINTCLUSTER_SAMPLE_MFG_SPECIFIC_CLUSTER \ - SILABS_PRINTCLUSTER_SAMPLE_MFG_SPECIFIC_CLUSTER_2 \ - SILABS_PRINTCLUSTER_OTA_CONFIGURATION_CLUSTER \ - SILABS_PRINTCLUSTER_MFGLIB_CLUSTER \ - SILABS_PRINTCLUSTER_SL_WWAH_CLUSTER + CHIP_PRINTCLUSTER_BASIC_CLUSTER \ + CHIP_PRINTCLUSTER_POWER_CONFIG_CLUSTER \ + CHIP_PRINTCLUSTER_DEVICE_TEMP_CLUSTER \ + CHIP_PRINTCLUSTER_IDENTIFY_CLUSTER \ + CHIP_PRINTCLUSTER_GROUPS_CLUSTER \ + CHIP_PRINTCLUSTER_SCENES_CLUSTER \ + CHIP_PRINTCLUSTER_ON_OFF_CLUSTER \ + CHIP_PRINTCLUSTER_ON_OFF_SWITCH_CONFIG_CLUSTER \ + CHIP_PRINTCLUSTER_LEVEL_CONTROL_CLUSTER \ + CHIP_PRINTCLUSTER_ALARM_CLUSTER \ + CHIP_PRINTCLUSTER_TIME_CLUSTER \ + CHIP_PRINTCLUSTER_RSSI_LOCATION_CLUSTER \ + CHIP_PRINTCLUSTER_BINARY_INPUT_BASIC_CLUSTER \ + CHIP_PRINTCLUSTER_COMMISSIONING_CLUSTER \ + CHIP_PRINTCLUSTER_PARTITION_CLUSTER \ + CHIP_PRINTCLUSTER_OTA_BOOTLOAD_CLUSTER \ + CHIP_PRINTCLUSTER_POWER_PROFILE_CLUSTER \ + CHIP_PRINTCLUSTER_APPLIANCE_CONTROL_CLUSTER \ + CHIP_PRINTCLUSTER_POLL_CONTROL_CLUSTER \ + CHIP_PRINTCLUSTER_GREEN_POWER_CLUSTER \ + CHIP_PRINTCLUSTER_KEEPALIVE_CLUSTER \ + CHIP_PRINTCLUSTER_SHADE_CONFIG_CLUSTER \ + CHIP_PRINTCLUSTER_DOOR_LOCK_CLUSTER \ + CHIP_PRINTCLUSTER_WINDOW_COVERING_CLUSTER \ + CHIP_PRINTCLUSTER_BARRIER_CONTROL_CLUSTER \ + CHIP_PRINTCLUSTER_PUMP_CONFIG_CONTROL_CLUSTER \ + CHIP_PRINTCLUSTER_THERMOSTAT_CLUSTER \ + CHIP_PRINTCLUSTER_FAN_CONTROL_CLUSTER \ + CHIP_PRINTCLUSTER_DEHUMID_CONTROL_CLUSTER \ + CHIP_PRINTCLUSTER_THERMOSTAT_UI_CONFIG_CLUSTER \ + CHIP_PRINTCLUSTER_COLOR_CONTROL_CLUSTER \ + CHIP_PRINTCLUSTER_BALLAST_CONFIGURATION_CLUSTER \ + CHIP_PRINTCLUSTER_ILLUM_MEASUREMENT_CLUSTER \ + CHIP_PRINTCLUSTER_ILLUM_LEVEL_SENSING_CLUSTER \ + CHIP_PRINTCLUSTER_TEMP_MEASUREMENT_CLUSTER \ + CHIP_PRINTCLUSTER_PRESSURE_MEASUREMENT_CLUSTER \ + CHIP_PRINTCLUSTER_FLOW_MEASUREMENT_CLUSTER \ + CHIP_PRINTCLUSTER_RELATIVE_HUMIDITY_MEASUREMENT_CLUSTER \ + CHIP_PRINTCLUSTER_OCCUPANCY_SENSING_CLUSTER \ + CHIP_PRINTCLUSTER_CARBON_MONOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER \ + CHIP_PRINTCLUSTER_CARBON_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER \ + CHIP_PRINTCLUSTER_ETHYLENE_CONCENTRATION_MEASUREMENT_CLUSTER \ + CHIP_PRINTCLUSTER_ETHYLENE_OXIDE_CONCENTRATION_MEASUREMENT_CLUSTER \ + CHIP_PRINTCLUSTER_HYDROGEN_CONCENTRATION_MEASUREMENT_CLUSTER \ + CHIP_PRINTCLUSTER_HYDROGEN_SULPHIDE_CONCENTRATION_MEASUREMENT_CLUSTER \ + CHIP_PRINTCLUSTER_NITRIC_OXIDE_CONCENTRATION_MEASUREMENT_CLUSTER \ + CHIP_PRINTCLUSTER_NITROGEN_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER \ + CHIP_PRINTCLUSTER_OXYGEN_CONCENTRATION_MEASUREMENT_CLUSTER \ + CHIP_PRINTCLUSTER_OZONE_CONCENTRATION_MEASUREMENT_CLUSTER \ + CHIP_PRINTCLUSTER_SULFUR_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER \ + CHIP_PRINTCLUSTER_DISSOLVED_OXYGEN_CONCENTRATION_MEASUREMENT_CLUSTER \ + CHIP_PRINTCLUSTER_BROMATE_CONCENTRATION_MEASUREMENT_CLUSTER \ + CHIP_PRINTCLUSTER_CHLORAMINES_CONCENTRATION_MEASUREMENT_CLUSTER \ + CHIP_PRINTCLUSTER_CHLORINE_CONCENTRATION_MEASUREMENT_CLUSTER \ + CHIP_PRINTCLUSTER_FECAL_COLIFORM_AND_E_COLI_CONCENTRATION_MEASUREMENT_CLUSTER \ + CHIP_PRINTCLUSTER_FLUORIDE_CONCENTRATION_MEASUREMENT_CLUSTER \ + CHIP_PRINTCLUSTER_HALOACETIC_ACIDS_CONCENTRATION_MEASUREMENT_CLUSTER \ + CHIP_PRINTCLUSTER_TOTAL_TRIHALOMETHANES_CONCENTRATION_MEASUREMENT_CLUSTER \ + CHIP_PRINTCLUSTER_TOTAL_COLIFORM_BACTERIA_CONCENTRATION_MEASUREMENT_CLUSTER \ + CHIP_PRINTCLUSTER_TURBIDITY_CONCENTRATION_MEASUREMENT_CLUSTER \ + CHIP_PRINTCLUSTER_COPPER_CONCENTRATION_MEASUREMENT_CLUSTER \ + CHIP_PRINTCLUSTER_LEAD_CONCENTRATION_MEASUREMENT_CLUSTER \ + CHIP_PRINTCLUSTER_MANGANESE_CONCENTRATION_MEASUREMENT_CLUSTER \ + CHIP_PRINTCLUSTER_SULFATE_CONCENTRATION_MEASUREMENT_CLUSTER \ + CHIP_PRINTCLUSTER_BROMODICHLOROMETHANE_CONCENTRATION_MEASUREMENT_CLUSTER \ + CHIP_PRINTCLUSTER_BROMOFORM_CONCENTRATION_MEASUREMENT_CLUSTER \ + CHIP_PRINTCLUSTER_CHLORODIBROMOMETHANE_CONCENTRATION_MEASUREMENT_CLUSTER \ + CHIP_PRINTCLUSTER_CHLOROFORM_CONCENTRATION_MEASUREMENT_CLUSTER \ + CHIP_PRINTCLUSTER_SODIUM_CONCENTRATION_MEASUREMENT_CLUSTER \ + CHIP_PRINTCLUSTER_IAS_ZONE_CLUSTER \ + CHIP_PRINTCLUSTER_IAS_ACE_CLUSTER \ + CHIP_PRINTCLUSTER_IAS_WD_CLUSTER \ + CHIP_PRINTCLUSTER_GENERIC_TUNNEL_CLUSTER \ + CHIP_PRINTCLUSTER_BACNET_PROTOCOL_TUNNEL_CLUSTER \ + CHIP_PRINTCLUSTER_11073_PROTOCOL_TUNNEL_CLUSTER \ + CHIP_PRINTCLUSTER_ISO7816_PROTOCOL_TUNNEL_CLUSTER \ + CHIP_PRINTCLUSTER_PRICE_CLUSTER \ + CHIP_PRINTCLUSTER_DEMAND_RESPONSE_LOAD_CONTROL_CLUSTER \ + CHIP_PRINTCLUSTER_SIMPLE_METERING_CLUSTER \ + CHIP_PRINTCLUSTER_MESSAGING_CLUSTER \ + CHIP_PRINTCLUSTER_TUNNELING_CLUSTER \ + CHIP_PRINTCLUSTER_PREPAYMENT_CLUSTER \ + CHIP_PRINTCLUSTER_ENERGY_MANAGEMENT_CLUSTER \ + CHIP_PRINTCLUSTER_CALENDAR_CLUSTER \ + CHIP_PRINTCLUSTER_DEVICE_MANAGEMENT_CLUSTER \ + CHIP_PRINTCLUSTER_EVENTS_CLUSTER \ + CHIP_PRINTCLUSTER_MDU_PAIRING_CLUSTER \ + CHIP_PRINTCLUSTER_SUB_GHZ_CLUSTER \ + CHIP_PRINTCLUSTER_KEY_ESTABLISHMENT_CLUSTER \ + CHIP_PRINTCLUSTER_INFORMATION_CLUSTER \ + CHIP_PRINTCLUSTER_DATA_SHARING_CLUSTER \ + CHIP_PRINTCLUSTER_GAMING_CLUSTER \ + CHIP_PRINTCLUSTER_DATA_RATE_CONTROL_CLUSTER \ + CHIP_PRINTCLUSTER_VOICE_OVER_ZIGBEE_CLUSTER \ + CHIP_PRINTCLUSTER_CHATTING_CLUSTER \ + CHIP_PRINTCLUSTER_PAYMENT_CLUSTER \ + CHIP_PRINTCLUSTER_BILLING_CLUSTER \ + CHIP_PRINTCLUSTER_APPLIANCE_IDENTIFICATION_CLUSTER \ + CHIP_PRINTCLUSTER_METER_IDENTIFICATION_CLUSTER \ + CHIP_PRINTCLUSTER_APPLIANCE_EVENTS_AND_ALERT_CLUSTER \ + CHIP_PRINTCLUSTER_APPLIANCE_STATISTICS_CLUSTER \ + CHIP_PRINTCLUSTER_ELECTRICAL_MEASUREMENT_CLUSTER \ + CHIP_PRINTCLUSTER_DIAGNOSTICS_CLUSTER \ + CHIP_PRINTCLUSTER_ZLL_COMMISSIONING_CLUSTER \ + CHIP_PRINTCLUSTER_SAMPLE_MFG_SPECIFIC_CLUSTER \ + CHIP_PRINTCLUSTER_SAMPLE_MFG_SPECIFIC_CLUSTER_2 \ + CHIP_PRINTCLUSTER_OTA_CONFIGURATION_CLUSTER \ + CHIP_PRINTCLUSTER_MFGLIB_CLUSTER \ + CHIP_PRINTCLUSTER_SL_WWAH_CLUSTER #define MAX_CLUSTER_NAME_LENGTH 52 -#endif // SILABS_PRINT_CLUSTER diff --git a/examples/lighting-app/lighting-common/lighting-app.zap b/examples/lighting-app/lighting-common/lighting-app.zap new file mode 100644 index 00000000000000..988945b1cacc1e --- /dev/null +++ b/examples/lighting-app/lighting-common/lighting-app.zap @@ -0,0 +1,833 @@ +{ + "writeTime": "Wed Nov 18 2020 11:11:58 GMT+0100 (Central European Standard Time)", + "featureLevel": 4, + "creator": "zap", + "keyValuePairs": [ + { + "key": "commandDiscovery", + "value": "1" + }, + { + "key": "defaultResponsePolicy", + "value": "always" + }, + { + "key": "manufacturerCodes", + "value": "0x1002" + } + ], + "package": [ + { + "pathRelativity": "relativeToZap", + "path": "../../../../third_party/zap/repo/zcl-builtin/silabs/zcl.json", + "version": "ZCL Test Data", + "type": "zcl-properties" + }, + { + "pathRelativity": "relativeToZap", + "path": "../../../../src/app/zap-templates/chip-templates.json", + "version": "chip-v1", + "type": "gen-templates-json" + } + ], + "endpointTypes": [ + { + "name": "Anonymous Endpoint Type", + "deviceTypeName": "HA-light", + "deviceTypeCode": "0x0101", + "deviceTypeProfileId": "0x0104", + "clusters": [ + { + "name": "Basic", + "code": 0, + "mfgCode": null, + "define": "BASIC_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [], + "attributes": [ + { + "name": "cluster revision", + "code": 65533, + "mfgCode": null, + "side": "client", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "3", + "reportable": 0, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Basic", + "code": 0, + "mfgCode": null, + "define": "BASIC_CLUSTER", + "side": "server", + "enabled": 0, + "commands": [], + "attributes": [ + { + "name": "cluster revision", + "code": 65533, + "mfgCode": null, + "side": "server", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "3", + "reportable": 0, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ZCL version", + "code": 0, + "mfgCode": null, + "side": "server", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x08", + "reportable": 0, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "power source", + "code": 7, + "mfgCode": null, + "side": "server", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 0, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Identify", + "code": 3, + "mfgCode": null, + "define": "IDENTIFY_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [ + { + "name": "Identify", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "IdentifyQuery", + "code": 1, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + } + ], + "attributes": [ + { + "name": "cluster revision", + "code": 65533, + "mfgCode": null, + "side": "client", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "2", + "reportable": 0, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Identify", + "code": 3, + "mfgCode": null, + "define": "IDENTIFY_CLUSTER", + "side": "server", + "enabled": 0, + "commands": [ + { + "name": "IdentifyQueryResponse", + "code": 0, + "mfgCode": null, + "source": "server", + "incoming": 0, + "outgoing": 1 + } + ], + "attributes": [ + { + "name": "cluster revision", + "code": 65533, + "mfgCode": null, + "side": "server", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "2", + "reportable": 0, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "identify time", + "code": 0, + "mfgCode": null, + "side": "server", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 0, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Groups", + "code": 4, + "mfgCode": null, + "define": "GROUPS_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [ + { + "name": "AddGroup", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "ViewGroup", + "code": 1, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "GetGroupMembership", + "code": 2, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "RemoveGroup", + "code": 3, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "RemoveAllGroups", + "code": 4, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "AddGroupIfIdentifying", + "code": 5, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + } + ], + "attributes": [ + { + "name": "cluster revision", + "code": 65533, + "mfgCode": null, + "side": "client", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "3", + "reportable": 0, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Groups", + "code": 4, + "mfgCode": null, + "define": "GROUPS_CLUSTER", + "side": "server", + "enabled": 0, + "commands": [ + { + "name": "AddGroupResponse", + "code": 0, + "mfgCode": null, + "source": "server", + "incoming": 0, + "outgoing": 1 + }, + { + "name": "ViewGroupResponse", + "code": 1, + "mfgCode": null, + "source": "server", + "incoming": 0, + "outgoing": 1 + }, + { + "name": "GetGroupMembershipResponse", + "code": 2, + "mfgCode": null, + "source": "server", + "incoming": 0, + "outgoing": 1 + }, + { + "name": "RemoveGroupResponse", + "code": 3, + "mfgCode": null, + "source": "server", + "incoming": 0, + "outgoing": 1 + } + ], + "attributes": [ + { + "name": "cluster revision", + "code": 65533, + "mfgCode": null, + "side": "server", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "3", + "reportable": 0, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "name support", + "code": 0, + "mfgCode": null, + "side": "server", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 0, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Scenes", + "code": 5, + "mfgCode": null, + "define": "SCENES_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [ + { + "name": "AddScene", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "ViewScene", + "code": 1, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "RemoveScene", + "code": 2, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "RemoveAllScenes", + "code": 3, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "StoreScene", + "code": 4, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "RecallScene", + "code": 5, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "GetSceneMembership", + "code": 6, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + } + ], + "attributes": [ + { + "name": "cluster revision", + "code": 65533, + "mfgCode": null, + "side": "client", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "3", + "reportable": 0, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Scenes", + "code": 5, + "mfgCode": null, + "define": "SCENES_CLUSTER", + "side": "server", + "enabled": 0, + "commands": [ + { + "name": "AddSceneResponse", + "code": 0, + "mfgCode": null, + "source": "server", + "incoming": 0, + "outgoing": 1 + }, + { + "name": "ViewSceneResponse", + "code": 1, + "mfgCode": null, + "source": "server", + "incoming": 0, + "outgoing": 1 + }, + { + "name": "RemoveSceneResponse", + "code": 2, + "mfgCode": null, + "source": "server", + "incoming": 0, + "outgoing": 1 + }, + { + "name": "RemoveAllScenesResponse", + "code": 3, + "mfgCode": null, + "source": "server", + "incoming": 0, + "outgoing": 1 + }, + { + "name": "StoreSceneResponse", + "code": 4, + "mfgCode": null, + "source": "server", + "incoming": 0, + "outgoing": 1 + }, + { + "name": "GetSceneMembershipResponse", + "code": 6, + "mfgCode": null, + "source": "server", + "incoming": 0, + "outgoing": 1 + } + ], + "attributes": [ + { + "name": "cluster revision", + "code": 65533, + "mfgCode": null, + "side": "server", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "3", + "reportable": 0, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "scene count", + "code": 0, + "mfgCode": null, + "side": "server", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 0, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "current scene", + "code": 1, + "mfgCode": null, + "side": "server", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 0, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "current group", + "code": 2, + "mfgCode": null, + "side": "server", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 0, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "scene valid", + "code": 3, + "mfgCode": null, + "side": "server", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 0, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "name support", + "code": 4, + "mfgCode": null, + "side": "server", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 0, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "On/off", + "code": 6, + "mfgCode": null, + "define": "ON_OFF_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [ + { + "name": "Off", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "On", + "code": 1, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "Toggle", + "code": 2, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + } + ], + "attributes": [ + { + "name": "cluster revision", + "code": 65533, + "mfgCode": null, + "side": "client", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "2", + "reportable": 0, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "On/off", + "code": 6, + "mfgCode": null, + "define": "ON_OFF_CLUSTER", + "side": "server", + "enabled": 1, + "attributes": [ + { + "name": "cluster revision", + "code": 65533, + "mfgCode": null, + "side": "server", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "2", + "reportable": 0, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "on/off", + "code": 0, + "mfgCode": null, + "side": "server", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ], + "commands": [] + }, + { + "name": "Level Control", + "code": 8, + "mfgCode": null, + "define": "LEVEL_CONTROL_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [ + { + "name": "MoveToLevel", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "Move", + "code": 1, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "Step", + "code": 2, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "Stop", + "code": 3, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "MoveToLevelWithOnOff", + "code": 4, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "MoveWithOnOff", + "code": 5, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "StepWithOnOff", + "code": 6, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "StopWithOnOff", + "code": 7, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + } + ], + "attributes": [ + { + "name": "cluster revision", + "code": 65533, + "mfgCode": null, + "side": "client", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "3", + "reportable": 0, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Level Control", + "code": 8, + "mfgCode": null, + "define": "LEVEL_CONTROL_CLUSTER", + "side": "server", + "enabled": 1, + "attributes": [ + { + "name": "cluster revision", + "code": 65533, + "mfgCode": null, + "side": "server", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "3", + "reportable": 0, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "current level", + "code": 0, + "mfgCode": null, + "side": "server", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ], + "commands": [] + } + ] + } + ], + "endpoints": [ + { + "endpointTypeName": "Anonymous Endpoint Type", + "endpointTypeIndex": 0, + "profileId": "0x0104", + "endpointId": 1, + "networkId": 1 + } + ] +} \ No newline at end of file diff --git a/examples/lighting-app/efr32/src/gen/af-gen-event.h b/examples/lighting-app/lighting-common/pigweed_lighting.options similarity index 100% rename from examples/lighting-app/efr32/src/gen/af-gen-event.h rename to examples/lighting-app/lighting-common/pigweed_lighting.options diff --git a/examples/lighting-app/lighting-common/pigweed_lighting.proto b/examples/lighting-app/lighting-common/pigweed_lighting.proto new file mode 100644 index 00000000000000..cb5fc5fb6ec551 --- /dev/null +++ b/examples/lighting-app/lighting-common/pigweed_lighting.proto @@ -0,0 +1,18 @@ +syntax = "proto3"; + +package chip.rpc; + +message Empty { +} + +message Button { + //0=FUNCTION 1=LIGHTING 2=THREAD_START 3=BLE_START + uint32 idx = 1; + + // 0=release 1=push + uint32 action = 2; +} + +service LightingService { + rpc ButtonEvent(Button) returns (Empty){} +} diff --git a/examples/lighting-app/linux/Dockerfile b/examples/lighting-app/linux/Dockerfile index c2e3a20d5612e8..e1161e58c11295 100644 --- a/examples/lighting-app/linux/Dockerfile +++ b/examples/lighting-app/linux/Dockerfile @@ -15,8 +15,8 @@ # limitations under the License. # -from generic_node_image -RUN apt-get install -y libglib2.0 +from chip-cirque-device-base +RUN apt-get update && apt-get install -y libglib2.0 avahi-daemon libavahi-client3 && rm -rf /var/lib/apt/lists/* COPY out/debug/chip-tool-server /usr/bin/ COPY entrypoint.sh / diff --git a/examples/lighting-app/linux/entrypoint.sh b/examples/lighting-app/linux/entrypoint.sh index ba0fec384f1722..04dfa2cdeed6db 100755 --- a/examples/lighting-app/linux/entrypoint.sh +++ b/examples/lighting-app/linux/entrypoint.sh @@ -2,6 +2,7 @@ service dbus start sleep 1 +service avahi-daemon start /usr/sbin/otbr-agent -I wpan0 spinel+hdlc+uart:///dev/ttyUSB0 & sleep 1 ot-ctl panid 0x1234 diff --git a/examples/lighting-app/linux/include/LightingManager.h b/examples/lighting-app/linux/include/LightingManager.h index c67757751ed394..ffcea179e6c957 100644 --- a/examples/lighting-app/linux/include/LightingManager.h +++ b/examples/lighting-app/linux/include/LightingManager.h @@ -51,7 +51,6 @@ class LightingManager private: friend LightingManager & LightingMgr(void); State_t mState; - uint32_t mGPIONum; LightingCallback_fn mActionInitiated_CB; LightingCallback_fn mActionCompleted_CB; diff --git a/examples/lighting-app/linux/main.cpp b/examples/lighting-app/linux/main.cpp index 8c476fec48109c..9a1500a04f77b2 100644 --- a/examples/lighting-app/linux/main.cpp +++ b/examples/lighting-app/linux/main.cpp @@ -19,8 +19,6 @@ #include #include -#include - #include "af.h" #include "gen/attribute-id.h" #include "gen/cluster-id.h" @@ -48,8 +46,7 @@ using namespace chip::DeviceLayer; constexpr uint32_t kDefaultSetupPinCode = 12345678; // TODO: Should be a macro in CHIPProjectConfig.h like other example apps. -extern "C" { -void emberAfPostAttributeChangeCallback(uint8_t endpoint, EmberAfClusterId clusterId, EmberAfAttributeId attributeId, uint8_t mask, +void emberAfPostAttributeChangeCallback(EndpointId endpoint, ClusterId clusterId, AttributeId attributeId, uint8_t mask, uint16_t manufacturerCode, uint8_t type, uint8_t size, uint8_t * value) { if (clusterId != ZCL_ON_OFF_CLUSTER_ID) @@ -74,18 +71,24 @@ void emberAfPostAttributeChangeCallback(uint8_t endpoint, EmberAfClusterId clust } } -/** @brief On/off Cluster Server Post Init +/** @brief OnOff Cluster Init + * + * This function is called when a specific cluster is initialized. It gives the + * application an opportunity to take care of cluster initialization procedures. + * It is called exactly once for each endpoint where cluster is present. * - * Following resolution of the On/Off state at startup for this endpoint, - * perform any additional initialization needed; e.g., synchronize hardware - * state. + * @param endpoint Ver.: always + * + * TODO Issue #3841 + * emberAfOnOffClusterInitCallback happens before the stack initialize the cluster + * attributes to the default value. + * The logic here expects something similar to the deprecated Plugins callback + * emberAfPluginOnOffClusterServerPostInitCallback. * - * @param endpoint Endpoint that is being initialized Ver.: always */ -void emberAfPluginOnOffClusterServerPostInitCallback(uint8_t endpoint) +void emberAfOnOffClusterInitCallback(EndpointId endpoint) { - // TODO: implement any additional On/off Cluster Server post init actions -} + // TODO: implement any additional Cluster Server init actions } namespace { @@ -179,8 +182,7 @@ int main(int argc, char * argv[]) chip::DeviceLayer::Internal::BLEMgrImpl().ConfigureBle(LinuxDeviceOptions::GetInstance().mBleDevice, false); - chip::DeviceLayer::ConnectivityMgr().SetBLEAdvertisingEnabled( - chip::DeviceLayer::ConnectivityManager::kCHIPoBLEServiceMode_Enabled); + chip::DeviceLayer::ConnectivityMgr().SetBLEAdvertisingEnabled(true); LightingMgr().Init(); diff --git a/examples/lighting-app/nrfconnect/.gitignore b/examples/lighting-app/nrfconnect/.gitignore new file mode 100644 index 00000000000000..84c048a73cc2e5 --- /dev/null +++ b/examples/lighting-app/nrfconnect/.gitignore @@ -0,0 +1 @@ +/build/ diff --git a/examples/lighting-app/nrfconnect/CMakeLists.txt b/examples/lighting-app/nrfconnect/CMakeLists.txt index 6fadd56feeb430..981d765d3666cb 100644 --- a/examples/lighting-app/nrfconnect/CMakeLists.txt +++ b/examples/lighting-app/nrfconnect/CMakeLists.txt @@ -20,7 +20,8 @@ get_filename_component(CHIP_APP_SERVER ${CHIP_ROOT}/examples/common/chip-app-ser get_filename_component(NRFCONNECT_COMMON ${CHIP_ROOT}/examples/platform/nrfconnect REALPATH) get_filename_component(LIGHTING_COMMON ${CHIP_ROOT}/examples/lighting-app/lighting-common REALPATH) -list(INSERT OVERLAY_CONFIG 0 ${CHIP_ROOT}/config/nrfconnect/overlay-sample-defaults.conf) +set(CONF_FILE ${CHIP_ROOT}/config/nrfconnect/sample-defaults.conf prj.conf) +set(CHIP_OPENTHREAD_CONFIG ${NRFCONNECT_COMMON}/project_include/OpenThreadConfig.h) set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CHIP_ROOT}/config/nrfconnect/) include(nrfconnect-app) @@ -31,9 +32,10 @@ target_sources(app PRIVATE main/AppTask.cpp main/LightingManager.cpp main/main.cpp + main/Rpc.cpp main/ZclCallbacks.cpp - ${LIGHTING_COMMON}/gen/call-command-handler.c - ${LIGHTING_COMMON}/gen/callback-stub.c + ${LIGHTING_COMMON}/gen/call-command-handler.cpp + ${LIGHTING_COMMON}/gen/callback-stub.cpp ${NRFCONNECT_COMMON}/util/LEDWidget.cpp ${NRFCONNECT_COMMON}/util/NFCWidget.cpp ${NRFCONNECT_COMMON}/util/ThreadUtil.cpp @@ -42,6 +44,8 @@ target_sources(app PRIVATE ${CHIP_APP_SERVER}/Server.cpp ${CHIP_APP_SERVER}/QRCodeUtil.cpp ${CHIP_APP_SERVER}/RendezvousServer.cpp + ${CHIP_ROOT}/src/app/reporting/reporting-default-configuration.cpp + ${CHIP_ROOT}/src/app/reporting/reporting.cpp ${CHIP_ROOT}/src/app/util/af-event.cpp ${CHIP_ROOT}/src/app/util/af-main-common.cpp ${CHIP_ROOT}/src/app/util/attribute-size.cpp @@ -55,4 +59,36 @@ target_sources(app PRIVATE ${CHIP_ROOT}/src/app/util/process-cluster-message.cpp ${CHIP_ROOT}/src/app/util/process-global-message.cpp ${CHIP_ROOT}/src/app/util/util.cpp - ${CHIP_ROOT}/src/app/clusters/on-off-server/on-off.cpp) + ${CHIP_ROOT}/src/app/clusters/on-off-server/on-off.cpp + ${CHIP_ROOT}/src/app/clusters/level-control/level-control.cpp + ) + +if (CONFIG_CHIP_PW_RPC) + +set(PIGWEED_ROOT "${CHIP_ROOT}/third_party/pigweed/repo") +include(${PIGWEED_ROOT}/pw_build/pigweed.cmake) +include(${PIGWEED_ROOT}/pw_protobuf_compiler/proto.cmake) + +pw_set_backend(pw_log pw_log_basic) +pw_set_backend(pw_assert pw_assert_log) +pw_set_backend(pw_sys_io pw_sys_io.nrfconnect) +set(dir_pw_third_party_nanopb PRESENT CACHE STRING ${CHIP_ROOT}/third_party/nanopb/repo FORCE) + +add_subdirectory(third_party/connectedhomeip/examples/platform/nrfconnect/pw_sys_io) +add_subdirectory(third_party/connectedhomeip/third_party/nanopb/repo) +add_subdirectory(third_party/connectedhomeip/third_party/pigweed/repo) + +pw_proto_library(pigweed_lighting_protolib + SOURCES + main/pigweed_lighting.proto +) + +target_link_libraries(app PRIVATE + pigweed_lighting_protolib.nanopb_rpc + pw_hdlc_lite + pw_log + pw_rpc.nanopb.echo_service + pw_rpc.server +) + +endif(CONFIG_CHIP_PW_RPC) diff --git a/examples/lighting-app/nrfconnect/README.md b/examples/lighting-app/nrfconnect/README.md index 20ddbde449605f..bd3fc373ba64a1 100644 --- a/examples/lighting-app/nrfconnect/README.md +++ b/examples/lighting-app/nrfconnect/README.md @@ -1,273 +1,361 @@ -# CHIP nRF52840 Lighting Example Application +# CHIP nRF Connect Lighting Example Application -An example application showing the use -[CHIP](https://github.com/project-chip/connectedhomeip) on the Nordic nRF52840. +The nRF Connect Lighting Example demonstrates how to remotely control a white +non-dimmable light bulb. It uses buttons to test changing the lighting and +device states and LEDs to show the state of these changes. You can use this +example as a reference for creating your own application. + +The example is based on [CHIP](https://github.com/project-chip/connectedhomeip) +and the nRF Connect platform, and supports remote access and control of a +lighting over a low-power, 802.15.4 Thread network. + +The example behaves as a CHIP accessory, that is a device that can be paired +into an existing CHIP network and can be controlled by this network.
-- [CHIP nRF52840 Lighting Example Application](#chip-nrf52840-lighting-example-application) - - [Introduction](#introduction) +- [CHIP nRF Connect Lighting Example Application](#chip-nrf-connect-lighting-example-application) + - [Overview](#overview) + - [Bluetooth LE advertising](#bluetooth-le-advertising) + - [Bluetooth LE rendezvous](#bluetooth-le-rendezvous) + - [Thread provisioning](#thread-provisioning) + - [Requirements](#requirements) - [Device UI](#device-ui) + - [Setting up the environment](#setting-up-the-environment) + - [Using Docker container for setup](#using-docker-container-for-setup) + - [Using native shell for setup](#using-native-shell-for-setup) - [Building](#building) - - [Using Docker container](#using-docker-container) - - [Using Native shell](#using-native-shell) - - [Supported nRF Connect SDK versions](#supported-nrf-connect-sdk-versions) + - [Removing build artifacts](#removing-build-artifacts) + - [Building with release configuration](#building-with-release-configuration) - [Configuring the example](#configuring-the-example) + - [Building with Pigweed RPCs](#building-with-pigweed-rpcs) - [Flashing and debugging](#flashing-and-debugging) - - [Accessing the command line](#accessing-the-command-line) + - [Testing the example](#testing-the-example) + +
+ + + +## Overview + +This example is running on the nRF Connect platform, which is based on the +[nRF Connect SDK](https://developer.nordicsemi.com/nRF_Connect_SDK/doc/latest/nrf/index.html) +and [Zephyr RTOS](https://zephyrproject.org/). Visit CHIP's +[nRF Connect platform overview](../../../docs/guides/nrfconnect_platform_overview.md) +to read more about the platform structure and dependencies. + +The CHIP device that runs the lighting application is controlled by the CHIP +controller device over the Thread protocol. By default, the CHIP device has +Thread disabled, and it should be paired with CHIP controller and get +configuration from it. Some actions required before establishing full +communication are described below. + +The example also comes with a test mode, which allows to start Thread with the +default settings by pressing button manually. However, this mode does not +guarantee that the device will be able to communicate with the CHIP controller +and other devices. + +### Bluetooth LE advertising + +To commission the device onto a CHIP network, the device must be discoverable +over Bluetooth LE. For security reasons, you must start Bluetooth LE advertising +manually after powering up the device by pressing **Button 4**. + +### Bluetooth LE rendezvous + +In CHIP, the commissioning procedure (called rendezvous) is done over Bluetooth +LE between a CHIP device and the CHIP controller, where the controller has the +commissioner role. + +To start the rendezvous, the controller must get the commissioning information +from the CHIP device. The data payload is encoded within a QR code, printed to +the UART console, and shared using an NFC tag. + +#### Thread provisioning + +Last part of the rendezvous procedure, the provisioning operation involves +sending the Thread network credentials from the CHIP controller to the CHIP +device. As a result, device is able to join the Thread network and communicate +with other Thread devices in the network.
- + -## Introduction +## Requirements -![nrf52840 DK](../../platform/nrf528xx/doc/images/nrf52840-dk.jpg) +The application requires the nRF Connect SDK v1.4.0 to work correctly. -The nRF52840 lighting example application provides a working demonstration of a -connected lighting device, built using CHIP, and the Nordic nRF Connect SDK. The -example supports remote access and control of a lighting over a low-power, -802.15.4 Thread network. It is capable of being paired into an existing CHIP -network along with other CHIP-enabled devices. The example targets the -[Nordic nRF52840 DK](https://www.nordicsemi.com/Software-and-Tools/Development-Kits/nRF52840-DK) -development kit, but is readily adaptable to other nRF52840-based hardware. +The example supports building and running on the following devices: -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 -Nordic platform. +| Board name | Board platform build name | +| ----------------------------------------------------------------------------------------- | ------------------------- | +| [nRF52840 DK](https://www.nordicsemi.com/Software-and-Tools/Development-Kits/nRF52840-DK) | `nrf52840dk_nrf52840` | -The example makes use of the CMake build system to generate the ninja build -script. The build system takes care of invoking the CHIP library build with all -necessary flags exported from the Zephyr environment. +
## Device UI -The example application provides a simple UI that depicts the state of the -device and offers basic user control. This UI is implemented via the -general-purpose LEDs and buttons built in to the nRF52840 DK dev board. +This section lists the User Interface elements that you can use to control and +monitor the state of the device. All these elements can be located on the +following board picture: + +![nrf52840 DK](../../platform/nrfconnect/doc/images/nrf52840-dk.jpg) -**LED #1** shows the overall state of the device and its connectivity. Four -states are depicted: +**LED 1** shows the overall state of the device and its connectivity. The +following states are possible: -- _Short Flash On (50ms on/950ms off)_ — The device is in an +- _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 (100ms on/100ms off)_ — The device is in an - unprovisioned state and a commissioning application is connected via BLE. +- _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 network (Thread) or service + provisioned, but does not yet have full Thread network or service connectivity. -* _Solid On_ — The device is fully provisioned and has full network and - service connectivity. +- _Solid On_ — The device is fully provisioned and has full Thread + network and service connectivity. -**Button #1** can be used to initiate a OTA software update as well as to reset -the device to a default state. +**LED 2** simulates the light bulb and shows the state of the lighting. The +following states are possible: -Pressing and holding Button #1 for 6 seconds initiates a factory reset. After an -initial period of 3 seconds, all four LED will flash in unison to signal the -pending reset. Holding the button past 6 seconds will cause the device to reset -its persistent configuration and initiate a reboot. The reset action can be -cancelled by releasing the button at any point before the 6 second limit. +- _Solid On_ — The light bulb is on. -**LED #2** shows the state of the lighting. +- _Off_ — The light bulb is off. -**Button #2** can be used to change the state of the lighting. This can be used -to mimick a user manually switching the lighting. The button behaves as a -toggle, swapping the state every time it is pressed. +**Button 1** can be used for the following purposes: -**Button #3** can be used to start Thread networking using default configuration -which was selected to match OpenThread Border Router default settings and -network credentials. +- _Pressed for 6 s_ — Initiates the factory reset of the device. + Releasing the button within the 6-second window cancels the factory reset + procedure. **LEDs 1-4** blink in unison when the factory reset procedure is + initiated. -**Button #4** can be used to start BLE advertisement, which is disabled by -default. +- _Pressed for less than 3 s_ — Initiates the OTA software update + process. This feature is not currently supported. -The remaining two LEDs (#3 and #4) are unused. +**Button 2** — Pressing the button once changes the lighting state to the +opposite one. -**NFC** can be used to scan shared tag and get information about device -necessary to perform rendezvous and network provisioning operation. +**Button 3** — Pressing the button once starts the Thread networking in +the test mode using the default configuration. -Tag can be read by bringing NFC poller e.g. smartphone supporting NFC close to -the nRF52840's NFC antenna. Moreover in the reaction on sensing field from the -smartphone CHIP device will start BLE advertisement, what is an alternative way -to trigger this from manually pressing Button 4. +**Button 4** — Pressing the button once starts the Bluetooth LE +advertising for the predefined period of time. - +**SEGGER J-Link USB port** can be used to get logs from the device or +communicate with it using the +[command line interface](../../../docs/guides/nrfconnect_examples_cli.md). -## Building +**NFC port with antenna attached** can be used to start the +[rendezvous](#bluetooth-le-rendezvous) by providing the commissioning +information from the CHIP device in a data payload that can be shared using NFC. + +
+ +## Setting up the environment + +Before building the example, check out the CHIP repository and sync submodules +using the following command: -### Using Docker container + $ git submodule update --init -> **Important**: -> -> Due to -> [certain limitations of Docker for MacOS](https://docs.docker.com/docker-for-mac/faqs/#can-i-pass-through-a-usb-device-to-a-container) -> it is impossible to use the Docker container to communicate with a USB device -> such as nRF 52840 DK. Therefore, MacOS users are advised to follow the -> [Using Native shell](#using-native-shell) instruction. +The example requires the nRF Connect SDK v1.4.0. You can either install it along +with the related tools directly on your system or use a Docker image that has +the tools pre-installed. -The easiest way to get started with the example is to use nRF Connect SDK Docker -image for CHIP applications. Run the following commands to start a Docker -container: +If you are a macOS user, you won't be able to use the Docker container to flash +the application onto a Nordic board due to +[certain limitations of Docker for macOS](https://docs.docker.com/docker-for-mac/faqs/#can-i-pass-through-a-usb-device-to-a-container). +Use the [native shell](#using-native-shell) for building instead. + +### Using Docker container for setup + +To use the Docker container for setup, complete the following steps: + +1. If you do not have the nRF Connect SDK installed yet, create a directory for + it by running the following command: $ mkdir ~/nrfconnect - $ mkdir ~/connectedhomeip + +2. Download the latest version of the nRF Connect SDK Docker image by running + the following command: + $ docker pull nordicsemi/nrfconnect-chip - $ docker run --rm -it -v ~/nrfconnect:/var/ncs -v ~/connectedhomeip:/var/chip -v /dev/bus/usb:/dev/bus/usb --device-cgroup-rule "c 189:* rmw" nordicsemi/nrfconnect-chip -> **Note**: -> -> - `~/nrfconnect` can be replaced with an absolute path to nRF Connect SDK -> source directory in case you have it already installed. -> - Likewise, `~/connectedhomeip` can be replaced with an absolute path to -> CHIP source directory. -> - `-v /dev/bus/usb:/dev/bus/usb --device-cgroup-rule 'c 189:* rmw` -> parameters can be omitted if you're not planning to flash the example onto -> hardware. The parameters give the container access to USB devices -> connected to your computer such as the nRF52840 DK. -> - `--rm` flag can be omitted if you don't want the container to be -> auto-removed when you exit the container shell session. +3. Start Docker with the downloaded image by running the following command, + customized to your needs as described below: -If you use the container for the first time and you don't have nRF Connect SDK -and CHIP sources downloaded yet, run `setup` command in the container to pull -the sources into directories mounted as `/var/ncs` and `/var/chip`, -respectively: + $ docker run --rm -it -e RUNAS=$(id -u) -v ~/nrfconnect:/var/ncs -v ~/connectedhomeip:/var/chip \ + -v /dev/bus/usb:/dev/bus/usb --device-cgroup-rule "c 189:* rmw" nordicsemi/nrfconnect-chip - $ setup --ncs 83764f - /var/ncs repository is empty. Do you wish to check out nRF Connect SDK sources [83764f]? [Y/N] y - ... - /var/chip repository is empty. Do you wish to check out Project CHIP sources [master]? [Y/N] y - ... + In this command: -Now you may build the example by running the commands below in the Docker -container: + - _~/nrfconnect_ can be replaced with an absolute path to the nRF Connect + SDK source directory. + - _~/connectedhomeip_ must be replaced with an absolute path to the CHIP + source directory. + - _-v /dev/bus/usb:/dev/bus/usb --device-cgroup-rule "c 189:_ rmw"\* + parameters can be omitted if you are not planning to flash the example + onto hardware. These parameters give the container access to USB devices + connected to your computer such as the nRF52840 DK. + - _--rm_ can be omitted if you do not want the container to be + auto-removed when you exit the container shell session. + - _-e RUNAS=\$(id -u)_ is needed to start the container session as the + current user instead of root. - $ cd /var/chip/examples/lighting-app/nrfconnect - $ west build -b nrf52840dk_nrf52840 +4. Check out or update the nRF Connect SDK to the recommended `v1.4.0` version + by running the following command in the Docker container: -If the build succeeds, the binary will be available under -`/var/chip/examples/lighting-app/nrfconnect/build/zephyr/zephyr.hex`. Note that -other operations described in this document like flashing or debugging can also -be done in the container. + $ setup --ncs v1.4.0 + /var/ncs repository is empty. Do you wish to check out nRF Connect SDK sources [v1.4.0]? [Y/N] y + ... + /var/chip repository is initialized, skipping... -### Using native shell +Now you can proceed with the [Building](#building) instruction. -Before building the example, -[download the nRF Connect SDK and install all requirements](https://developer.nordicsemi.com/nRF_Connect_SDK/doc/latest/nrf/gs_installing.html). -Please read the -[Supported nRF Connect SDK versions](#supported-nrf-connect-sdk-versions) -section to learn which version to use to avoid unexpected compatibility issues. +### Using native shell for setup -If you don't want to use SEGGER Embedded Studio, you may skip the part about -installing and configuring it. +To use the native shell for setup, complete the following steps: -Download and install the -[nRF Command Line Tools](https://www.nordicsemi.com/Software-and-Tools/Development-Tools/nRF-Command-Line-Tools). +1. Download and install the following additional software: -Download and install [GN meta-build system](https://gn.googlesource.com/gn/). + - [nRF Command Line Tools](https://www.nordicsemi.com/Software-and-Tools/Development-Tools/nRF-Command-Line-Tools) + - [GN meta-build system](https://gn.googlesource.com/gn/) -Make sure that you source the following file: +2. Depending on whether you have the nRF Connect SDK installed: - $ source /zephyr/zephyr-env.sh + - Follow the + [guide](https://developer.nordicsemi.com/nRF_Connect_SDK/doc/latest/nrf/gs_assistant.html#) + in the nRF Connect SDK documentation to install the nRF Connect SDK + v1.4.0. Since command-line tools will be used for building the example, + installing SEGGER Embedded Studio is not required. -> **Note:** -> -> Ensure that `$ZEPHYR_BASE`, `$GNUARMEMB_TOOLCHAIN_PATH`, and -> `$ZEPHYR_TOOLCHAIN_VARIANT` environment variables are set in your current -> terminal before building. `$GNUARMEMB_TOOLCHAIN_PATH` and -> `$ZEPHYR_TOOLCHAIN_VARIANT` must be set manually. + - If you have an older version of the SDK installed, use the following + commands to update it to the recommended version. Replace + _nrfconnect-dir_ with the path to your nRF Connect SDK installation + directory. -After your environment is set up, you are ready to build the example. The -recommended tool for building and flashing the device is -[west](https://docs.zephyrproject.org/latest/guides/west/). + $ cd nrfconnect-dir/nrf + $ git fetch origin + $ git checkout v1.4.0 + $ west update -The following commands will build the `lighting-app` example: +3. Initialize environment variables referred to by the CHIP and the nRF Connect + SDK build scripts. Replace _nrfconnect-dir_ with the path to your nRF + Connect SDK installation directory, and _toolchain-dir_ with the path to GNU + Arm Embedded Toolchain. - $ cd ~/connectedhomeip/examples/lighting-app/nrfconnect + $ source nrfconnect-dir/zephyr/zephyr-env.sh + $ export ZEPHYR_TOOLCHAIN_VARIANT=gnuarmemb + $ export GNUARMEMB_TOOLCHAIN_PATH=toolchain-dir - # If this is a first time build or if `build` directory was deleted - $ west build -b nrf52840dk_nrf52840 +Now you can proceed with the [Building](#building) instruction. - # Any subsequent build - $ west build +
-After a successful build, the binary will be available under -`/build/zephyr/zephyr.hex` + -### Supported nRF Connect SDK versions +## Building + +Complete the following steps, regardless of the method used for setting up the +environment: + +1. Navigate to the example's directory: + + $ cd examples/lighting-app/nrfconnect + +2. Run the following command to build the example, with _board-name_ replaced + with the name of the Nordic Semiconductor's board you own, for example + `nrf52840dk_nrf52840`: + + $ west build -b board-name + + You only need to specify the board name on the first build. See + [Requirements](#requirements) for the names of compatible boards. + +The output `zephyr.hex` file will be available in the `build/zephyr/` directory. -It is recommended to use the nRF Connect version which is being verified as a -part of CHIP Continuous Integration testing, which happens to be `83764f` at the -moment. You may verify that the revision is used in -[chip-build-nrf-platform](https://github.com/project-chip/connectedhomeip/blob/master/integrations/docker/images/chip-build-nrf-platform/Dockerfile) -Docker image in case of doubt. +### Removing build artifacts -Please refer to -[this section](https://developer.nordicsemi.com/nRF_Connect_SDK/doc/latest/nrf/gs_installing.html#updating-the-repositories) -in the user guide to learn how to update nRF Connect SDK repository. +If you're planning to build the example for a different board or make changes to +the configuration, remove all build artifacts before building. To do so, use the +following command: + + $ rm -r build + +### Building with release configuration + +To build the example with release configuration that disables the diagnostic +features like logs and command-line interface, run the following command: + + $ west build -b board-name -- -DOVERLAY_CONFIG=third_party/connectedhomeip/config/nrfconnect/release.conf + +Remember to replace _board-name_ with the name of the Nordic Semiconductor's +board you own. + +
## Configuring the example -The Zephyr ecosystem is higly configurable and allows the user to modify many -aspects of the application. The configuration system is based on `Kconfig` and -the settings can be modified using the `menuconfig` utility. +The Zephyr ecosystem is based on Kconfig files and the settings can be modified +using the menuconfig utility. -To open the configuration menu, do the following: +To open the menuconfig utility, run the following command from the example +directory: - $ cd - # First time build - $ west build -b nrf52840dk_nrf52840 -t menuconfig + $ west build -b board-name -t menuconfig - # Any subsequent build - $ west build -t menuconfig +Remember to replace _board-name_ with the name of the Nordic Semiconductor's +board you own. - # Running menuconfig with ninja - $ cd /build - $ ninja menuconfig +Changes done with menuconfig will be lost if the `build` directory is deleted. +To make them persistent, save the configuration options in the `prj.conf` file. +For more information, see the +[Configuring nRF Connect SDK examples](../../../docs/guides/nrfconnect_examples_configuration.md) +page. -Changes done with `menuconfig` will be lost, if the `build` directory is -deleted. To make them persistent, save the configuration options in `prj.conf` -file. +
-## Flashing and debugging - -The example application is designed to run on the -[Nordic nRF52840 DK](https://www.nordicsemi.com/Software-and-Tools/Development-Kits/nRF52840-DK) -development kit. +## Building with Pigweed RPCs -To flash the application to the device, use the `west` tool: +The RPCs in lighting-common/pigweed-lighting.proto can be used to control +various functionalities of the lighting app from a USB-connected host computer. $ cd - $ west flash + # First time build + $ west build -b nrf52840dk_nrf52840 -- -DOVERLAY_CONFIG=rpc.overlay -If you have multiple nRF52840 DK boards connected, `west` will prompt you to -pick the correct one. + # Any subsequent build + $ west build -- -DOVERLAY_CONFIG=rpc.overlay -To debug the application on target: +## Flashing and debugging - $ cd - $ west debug +To flash the application to the device, use the west tool and run the following +command from the example directory: - + $ west flash -## Accessing the command line +If you have multiple nRF52840 DK boards connected, west will prompt you to pick +the correct one. -The application includes a command line interface with support for logs and the -OpenThread commands. +To debug the application on target, run the following command from the example +directory: -To access it, use any serial terminal program you like, for example `minicom` or -`GNU screen`. + $ west debug + +
-The UART interface is configured for `115200` baud rate. +## Testing the example -All OpenThread commands must be prefixed with `ot`, for example -`ot thread start`. +Check the [CLI tutorial](../../../docs/guides/nrfconnect_examples_cli.md) to +learn how to use command-line interface of the application. diff --git a/examples/lighting-app/nrfconnect/main/AppTask.cpp b/examples/lighting-app/nrfconnect/main/AppTask.cpp index eaf136200d0ae7..267597170e9bf9 100644 --- a/examples/lighting-app/nrfconnect/main/AppTask.cpp +++ b/examples/lighting-app/nrfconnect/main/AppTask.cpp @@ -22,6 +22,7 @@ #include "AppEvent.h" #include "LEDWidget.h" #include "LightingManager.h" +#include "LogUtils.h" #include "QRCodeUtil.h" #include "Server.h" #include "Service.h" @@ -42,11 +43,8 @@ #include #include -#include #include -LOG_MODULE_DECLARE(app); - namespace { constexpr int kFactoryResetTriggerTimeout = 3000; @@ -239,7 +237,7 @@ void AppTask::LightingActionEventHandler(AppEvent * aEvent) actor = AppEvent::kEventType_Button; } - if (action != LightingManager::INVALID_ACTION && !LightingMgr().InitiateAction(action, actor)) + if (action != LightingManager::INVALID_ACTION && !LightingMgr().InitiateAction(action, actor, 0, NULL)) LOG_INF("Action is already in progress or active."); } @@ -385,7 +383,7 @@ void AppTask::StartBLEAdvertisementHandler(AppEvent * aEvent) if (!ConnectivityMgr().IsBLEAdvertisingEnabled()) { - ConnectivityMgr().SetBLEAdvertisingEnabled(ConnectivityManager::kCHIPoBLEServiceMode_Enabled); + ConnectivityMgr().SetBLEAdvertisingEnabled(true); LOG_INF("Enabled BLE Advertisement"); } else @@ -449,6 +447,10 @@ void AppTask::ActionInitiated(LightingManager::Action_t aAction, int32_t aActor) { LOG_INF("Turn Off Action has been initiated"); } + else if (aAction == LightingManager::LEVEL_ACTION) + { + LOG_INF("Level Action has been initiated"); + } } void AppTask::ActionCompleted(LightingManager::Action_t aAction, int32_t aActor) @@ -461,6 +463,10 @@ void AppTask::ActionCompleted(LightingManager::Action_t aAction, int32_t aActor) { LOG_INF("Turn Off Action has been completed"); } + else if (aAction == LightingManager::LEVEL_ACTION) + { + LOG_INF("Level Action has been completed"); + } if (aActor == AppEvent::kEventType_Button) { diff --git a/examples/lighting-app/nrfconnect/main/LightingManager.cpp b/examples/lighting-app/nrfconnect/main/LightingManager.cpp index 6ce56ae41a4173..b437e5b4502cef 100644 --- a/examples/lighting-app/nrfconnect/main/LightingManager.cpp +++ b/examples/lighting-app/nrfconnect/main/LightingManager.cpp @@ -19,12 +19,10 @@ #include "LightingManager.h" #include "AppConfig.h" +#include "LogUtils.h" -#include #include -LOG_MODULE_DECLARE(app); - LightingManager LightingManager::sLight; int LightingManager::Init(const char * gpioDeviceName, gpio_pin_t gpioPin) @@ -38,7 +36,7 @@ int LightingManager::Init(const char * gpioDeviceName, gpio_pin_t gpioPin) if (!mGPIODevice) { - LOG_ERR("Cannot find GPIO port %s", log_strdup(gpioDeviceName)); + LOG_ERR("Cannot find GPIO port %s", LOG_STRDUP(gpioDeviceName)); return -ENODEV; } @@ -59,7 +57,7 @@ void LightingManager::SetCallbacks(LightingCallback_fn aActionInitiated_CB, Ligh mActionCompleted_CB = aActionCompleted_CB; } -bool LightingManager::InitiateAction(Action_t aAction, int32_t aActor) +bool LightingManager::InitiateAction(Action_t aAction, int32_t aActor, uint8_t size, uint8_t * value) { // TODO: this function is called InitiateAction because we want to implement some features such as ramping up here. bool action_initiated = false; @@ -76,6 +74,18 @@ bool LightingManager::InitiateAction(Action_t aAction, int32_t aActor) action_initiated = true; new_state = kState_Off; } + else if (aAction == LEVEL_ACTION) + { + action_initiated = true; + if (*value == 0) + { + new_state = kState_Off; + } + else + { + new_state = kState_On; + } + } if (action_initiated) { @@ -84,7 +94,14 @@ bool LightingManager::InitiateAction(Action_t aAction, int32_t aActor) mActionInitiated_CB(aAction, aActor); } - Set(new_state == kState_On); + if (aAction == ON_ACTION || aAction == OFF_ACTION) + { + Set(new_state == kState_On); + } + else if (aAction == LEVEL_ACTION) + { + SetLevel(*value); + } if (mActionCompleted_CB) { @@ -95,6 +112,12 @@ bool LightingManager::InitiateAction(Action_t aAction, int32_t aActor) return action_initiated; } +void LightingManager::SetLevel(uint8_t aLevel) +{ + LOG_INF("LEVEL %u", aLevel); + // TODO: use the level for PWM +} + void LightingManager::Set(bool aOn) { if (aOn) diff --git a/examples/lighting-app/nrfconnect/main/Rpc.cpp b/examples/lighting-app/nrfconnect/main/Rpc.cpp new file mode 100644 index 00000000000000..2694c5927529dc --- /dev/null +++ b/examples/lighting-app/nrfconnect/main/Rpc.cpp @@ -0,0 +1,126 @@ +/* + * + * Copyright (c) 2020 Project CHIP Authors + * All rights reserved. + * + * 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. + */ + +#include "Rpc.h" +#ifdef CONFIG_CHIP_PW_RPC +#include "AppTask.h" +#include "main/pigweed_lighting.rpc.pb.h" +#include "pw_hdlc_lite/encoder.h" +#include "pw_hdlc_lite/rpc_channel.h" +#include "pw_hdlc_lite/rpc_packets.h" +#include "pw_hdlc_lite/sys_io_stream.h" +#include "pw_rpc/echo_service_nanopb.h" +#include "pw_rpc/server.h" +#include "pw_sys_io/sys_io.h" +#include "pw_sys_io_nrfconnect/init.h" +#include +#include +#include +#endif + +namespace chip { +namespace rpc { + +#ifdef CONFIG_CHIP_PW_RPC + +class LightingService final : public generated::LightingService +{ +public: + pw::Status ButtonEvent(ServerContext & ctx, const chip_rpc_Button & request, chip_rpc_Empty & response) + { + GetAppTask().ButtonEventHandler(request.action << request.idx /* button_state */, 1 << request.idx /* has_changed */); + return pw::Status::OK; + } +}; + +namespace { + +using std::byte; + +constexpr size_t kRpcTaskSize = 4096; +constexpr int kRpcPriority = 5; +constexpr size_t kMaxTransmissionUnit = 1500; + +K_THREAD_STACK_DEFINE(rpc_stack_area, kRpcTaskSize); +struct k_thread rpc_thread_data; + +// Used to write HDLC data to pw::sys_io. +pw::stream::SysIoWriter writer; + +// Set up the output channel for the pw_rpc server to use. +pw::hdlc_lite::RpcChannelOutputBuffer hdlc_channel_output(writer, pw::hdlc_lite::kDefaultRpcAddress, + "HDLC channel"); + +pw::rpc::Channel channels[] = { pw::rpc::Channel::Create<1>(&hdlc_channel_output) }; + +// pw_rpc server with the HDLC channel. +pw::rpc::Server server(channels); + +chip::rpc::LightingService lighting_service; + +void RegisterServices() +{ + server.RegisterService(lighting_service); +} + +void Start() +{ + // Send log messages to HDLC address 1. This prevents logs from interfering + // with pw_rpc communications. + pw::log_basic::SetOutput( + [](std::string_view log) { pw::hdlc_lite::WriteInformationFrame(1, std::as_bytes(std::span(log)), writer); }); + + // Set up the server and start processing data. + RegisterServices(); + + // Buffer for decoding incoming HDLC frames. + std::array input_buffer; + + PW_LOG_INFO("Starting pw_rpc server"); + pw::hdlc_lite::ReadAndProcessPackets(server, hdlc_channel_output, input_buffer); +} + +} // namespace + +k_tid_t Init() +{ + pw_sys_io_Init(); + k_tid_t tid = k_thread_create(&rpc_thread_data, rpc_stack_area, K_THREAD_STACK_SIZEOF(rpc_stack_area), RunRpcService, NULL, + NULL, NULL, kRpcPriority, 0, K_NO_WAIT); + return tid; +} + +void RunRpcService(void *, void *, void *) +{ + Start(); +} + +#else // CONFIG_CHIP_PW_RPC +class LightingService +{ +}; + +k_tid_t Init() +{ + return nullptr; +} + +#endif + +} // namespace rpc +} // namespace chip diff --git a/examples/lighting-app/nrfconnect/main/ZclCallbacks.cpp b/examples/lighting-app/nrfconnect/main/ZclCallbacks.cpp index eb1a18db0e0d11..cd08fb75e91901 100644 --- a/examples/lighting-app/nrfconnect/main/ZclCallbacks.cpp +++ b/examples/lighting-app/nrfconnect/main/ZclCallbacks.cpp @@ -26,35 +26,65 @@ #include "AppTask.h" #include "LightingManager.h" -extern "C" { -void emberAfPostAttributeChangeCallback(uint8_t endpoint, EmberAfClusterId clusterId, EmberAfAttributeId attributeId, uint8_t mask, +using namespace chip; + +void emberAfPostAttributeChangeCallback(EndpointId endpoint, ClusterId clusterId, AttributeId attributeId, uint8_t mask, uint16_t manufacturerCode, uint8_t type, uint8_t size, uint8_t * value) { - if (clusterId != ZCL_ON_OFF_CLUSTER_ID) + ChipLogProgress(Zcl, "Cluster callback: %d", clusterId); + + if (clusterId == ZCL_ON_OFF_CLUSTER_ID) { - ChipLogProgress(Zcl, "Unknown cluster ID: %d", clusterId); - return; + if (attributeId != ZCL_ON_OFF_ATTRIBUTE_ID) + { + ChipLogProgress(Zcl, "Unknown attribute ID: %d", attributeId); + return; + } + + LightingMgr().InitiateAction(*value ? LightingManager::ON_ACTION : LightingManager::OFF_ACTION, + AppEvent::kEventType_Lighting, size, value); } + else if (clusterId == ZCL_LEVEL_CONTROL_CLUSTER_ID) + { + if (attributeId != ZCL_MOVE_TO_LEVEL_COMMAND_ID) + { + ChipLogProgress(Zcl, "Unknown attribute ID: %d", attributeId); + return; + } - if (attributeId != ZCL_ON_OFF_ATTRIBUTE_ID) + ChipLogProgress(Zcl, "Value: %u, length %u", *value, size); + if (size == 1) + { + LightingMgr().InitiateAction(LightingManager::LEVEL_ACTION, AppEvent::kEventType_Lighting, size, value); + } + else + { + ChipLogError(Zcl, "wrong length for level: %d", size); + } + } + else { - ChipLogProgress(Zcl, "Unknown attribute ID: %d", attributeId); + ChipLogProgress(Zcl, "Unknown cluster ID: %d", clusterId); return; } - - LightingMgr().InitiateAction(*value ? LightingManager::ON_ACTION : LightingManager::OFF_ACTION, AppEvent::kEventType_Lighting); } -/** @brief On/off Cluster Server Post Init +/** @brief OnOff Cluster Init * - * Following resolution of the On/Off state at startup for this endpoint, - * perform any additional initialization needed; e.g., synchronize hardware - * state. + * This function is called when a specific cluster is initialized. It gives the + * application an opportunity to take care of cluster initialization procedures. + * It is called exactly once for each endpoint where cluster is present. + * + * @param endpoint Ver.: always + * + * TODO Issue #3841 + * emberAfOnOffClusterInitCallback happens before the stack initialize the cluster + * attributes to the default value. + * The logic here expects something similar to the deprecated Plugins callback + * emberAfPluginOnOffClusterServerPostInitCallback. * - * @param endpoint Endpoint that is being initialized Ver.: always */ -void emberAfPluginOnOffClusterServerPostInitCallback(uint8_t endpoint) +void emberAfOnOffClusterInitCallback(EndpointId endpoint) { GetAppTask().UpdateClusterState(); } -} diff --git a/examples/lighting-app/nrfconnect/main/include/AppTask.h b/examples/lighting-app/nrfconnect/main/include/AppTask.h index 0618c58bd0e833..26ec03d7ac459e 100644 --- a/examples/lighting-app/nrfconnect/main/include/AppTask.h +++ b/examples/lighting-app/nrfconnect/main/include/AppTask.h @@ -20,6 +20,7 @@ #include "AppEvent.h" #include "LightingManager.h" +#include "Rpc.h" #include @@ -37,6 +38,7 @@ class AppTask void UpdateClusterState(); private: + friend class chip::rpc::LightingService; friend AppTask & GetAppTask(void); int Init(); diff --git a/examples/lighting-app/nrfconnect/main/include/LightingManager.h b/examples/lighting-app/nrfconnect/main/include/LightingManager.h index 88d4c513dcaa71..03fc91c9326d04 100644 --- a/examples/lighting-app/nrfconnect/main/include/LightingManager.h +++ b/examples/lighting-app/nrfconnect/main/include/LightingManager.h @@ -30,6 +30,7 @@ class LightingManager { ON_ACTION = 0, OFF_ACTION, + LEVEL_ACTION, INVALID_ACTION }; @@ -44,7 +45,7 @@ class LightingManager int Init(const char * gpioDeviceName, gpio_pin_t gpioPin); bool IsTurnedOn() const { return mState == kState_On; } - bool InitiateAction(Action_t aAction, int32_t aActor); + bool InitiateAction(Action_t aAction, int32_t aActor, uint8_t size, uint8_t * value); void SetCallbacks(LightingCallback_fn aActionInitiated_CB, LightingCallback_fn aActionCompleted_CB); private: @@ -57,6 +58,7 @@ class LightingManager LightingCallback_fn mActionCompleted_CB; void Set(bool aOn); + void SetLevel(uint8_t aLevel); static LightingManager sLight; }; diff --git a/src/lib/asn1/tests/TestASN1.h b/examples/lighting-app/nrfconnect/main/include/Rpc.h similarity index 76% rename from src/lib/asn1/tests/TestASN1.h rename to examples/lighting-app/nrfconnect/main/include/Rpc.h index 32541ae91e8ea8..a7c93fe95ae273 100644 --- a/src/lib/asn1/tests/TestASN1.h +++ b/examples/lighting-app/nrfconnect/main/include/Rpc.h @@ -1,6 +1,7 @@ /* * * Copyright (c) 2020 Project CHIP Authors + * All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -15,21 +16,18 @@ * limitations under the License. */ -/** - * @file - * This file declares test entry points for CHIP ASN1 library - * unit tests. - * - */ - #pragma once -#ifdef __cplusplus -extern "C" { -#endif +#include + +namespace chip { +namespace rpc { + +class LightingService; + +void RunRpcService(void *, void *, void *); -int TestASN1(void); +k_tid_t Init(); -#ifdef __cplusplus -} -#endif +} // namespace rpc +} // namespace chip diff --git a/examples/lighting-app/nrfconnect/main/main.cpp b/examples/lighting-app/nrfconnect/main/main.cpp index ce40b2daec3a26..3cb6e86f6113e4 100644 --- a/examples/lighting-app/nrfconnect/main/main.cpp +++ b/examples/lighting-app/nrfconnect/main/main.cpp @@ -17,13 +17,13 @@ */ #include "AppTask.h" +#include "LogUtils.h" +#include "Rpc.h" #include #include -#include - -LOG_MODULE_REGISTER(app); +#include using namespace ::chip; using namespace ::chip::Inet; @@ -31,6 +31,7 @@ using namespace ::chip::DeviceLayer; int main(void) { + chip::rpc::Init(); int ret = 0; k_thread_priority_set(k_current_get(), K_PRIO_COOP(CONFIG_NUM_COOP_PRIORITIES - 1)); diff --git a/examples/lighting-app/nrfconnect/main/pigweed_lighting.options b/examples/lighting-app/nrfconnect/main/pigweed_lighting.options new file mode 120000 index 00000000000000..ed02cb0576d400 --- /dev/null +++ b/examples/lighting-app/nrfconnect/main/pigweed_lighting.options @@ -0,0 +1 @@ +../../lighting-common/pigweed_lighting.options \ No newline at end of file diff --git a/examples/lighting-app/nrfconnect/main/pigweed_lighting.proto b/examples/lighting-app/nrfconnect/main/pigweed_lighting.proto new file mode 120000 index 00000000000000..1acab2e7ce1cfd --- /dev/null +++ b/examples/lighting-app/nrfconnect/main/pigweed_lighting.proto @@ -0,0 +1 @@ +../../lighting-common/pigweed_lighting.proto \ No newline at end of file diff --git a/examples/lighting-app/nrfconnect/prj.conf b/examples/lighting-app/nrfconnect/prj.conf index af0c1c4027acac..027504c40df4fb 100644 --- a/examples/lighting-app/nrfconnect/prj.conf +++ b/examples/lighting-app/nrfconnect/prj.conf @@ -14,7 +14,7 @@ # limitations under the License. # -# This sample uses overlay-sample-defaults.conf to set options common for all +# This sample uses sample-defaults.conf to set options common for all # samples. This file should contain only options specific for this sample # or overrides of default values. diff --git a/examples/lighting-app/nrfconnect/rpc.overlay b/examples/lighting-app/nrfconnect/rpc.overlay new file mode 100644 index 00000000000000..c672c74585a142 --- /dev/null +++ b/examples/lighting-app/nrfconnect/rpc.overlay @@ -0,0 +1,34 @@ +# +# 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. +# + +# This file should be used as a configuration overlay to build Pigweed RPCs to +# lighting-app: +# +# west build -b nrf52840dk_nrf52840 -- -DOVERLAY_CONFIG=rpc.overlay + +# Enable Pigweed RPC +CONFIG_CHIP_PW_RPC=y + +# Add support for C++17 to build Pigweed components +CONFIG_STD_CPP17=y + +# Add support for Zephyr console component to use it for Pigweed console purposes +CONFIG_CONSOLE_SUBSYS=y +CONFIG_CONSOLE_GETCHAR=y + +CONFIG_BOOT_BANNER=n +CONFIG_LOG=n +CONFIG_SHELL=n diff --git a/examples/lock-app/efr32/BUILD.gn b/examples/lock-app/efr32/BUILD.gn index efd58ca60e0f8b..89d8b087e20395 100644 --- a/examples/lock-app/efr32/BUILD.gn +++ b/examples/lock-app/efr32/BUILD.gn @@ -67,7 +67,9 @@ efr32_executable("lock_app") { public_deps = [ ":sdk", + "${chip_root}/examples/common/QRCode", "${chip_root}/examples/common/chip-app-server:chip-app-server", + "${chip_root}/examples/lock-app/lock-common", "${chip_root}/src/lib", "${chip_root}/src/setup_payload", "${chip_root}/third_party/openthread/platforms:libopenthread-platform", @@ -80,26 +82,9 @@ efr32_executable("lock_app") { "${efr32_project_dir}/include", "${chip_root}/src/app/util", "${examples_plat_dir}", - "${chip_root}/examples/common/QRCode/repo/c", ] sources = [ - "${chip_root}/examples/common/QRCode/repo/c/qrcodegen.c", - "${chip_root}/examples/common/chip-app-server/DataModelHandler.cpp", - "${chip_root}/src/app/clusters/on-off-server/on-off.cpp", - "${chip_root}/src/app/util/af-event.cpp", - "${chip_root}/src/app/util/af-main-common.cpp", - "${chip_root}/src/app/util/attribute-size.cpp", - "${chip_root}/src/app/util/attribute-storage.cpp", - "${chip_root}/src/app/util/attribute-table.cpp", - "${chip_root}/src/app/util/binding-table.cpp", - "${chip_root}/src/app/util/chip-message-send.cpp", - "${chip_root}/src/app/util/client-api.cpp", - "${chip_root}/src/app/util/ember-print.cpp", - "${chip_root}/src/app/util/message.cpp", - "${chip_root}/src/app/util/process-cluster-message.cpp", - "${chip_root}/src/app/util/process-global-message.cpp", - "${chip_root}/src/app/util/util.cpp", "${examples_plat_dir}/${efr32_family}/${efr32_board}/hal-config.h", "${examples_plat_dir}/${efr32_family}/${efr32_board}/init_board.c", "${examples_plat_dir}/${efr32_family}/${efr32_board}/init_mcu.c", @@ -110,8 +95,6 @@ efr32_executable("lock_app") { "src/BoltLockManager.cpp", "src/ButtonHandler.cpp", "src/ZclCallbacks.cpp", - "src/gen/call-command-handler.c", - "src/gen/callback-stub.c", "src/main.cpp", ] diff --git a/examples/lock-app/efr32/src/ZclCallbacks.cpp b/examples/lock-app/efr32/src/ZclCallbacks.cpp index f404512f97152f..2dcb54f0837b4a 100644 --- a/examples/lock-app/efr32/src/ZclCallbacks.cpp +++ b/examples/lock-app/efr32/src/ZclCallbacks.cpp @@ -30,11 +30,10 @@ #include #include -// using namespace ::chip; +using namespace ::chip; -extern "C" void emberAfPostAttributeChangeCallback(uint8_t endpoint, EmberAfClusterId clusterId, EmberAfAttributeId attributeId, - uint8_t mask, uint16_t manufacturerCode, uint8_t type, uint8_t size, - uint8_t * value) +void emberAfPostAttributeChangeCallback(EndpointId endpoint, ClusterId clusterId, AttributeId attributeId, uint8_t mask, + uint16_t manufacturerCode, uint8_t type, uint8_t size, uint8_t * value) { if (clusterId != ZCL_ON_OFF_CLUSTER_ID) { @@ -58,15 +57,22 @@ extern "C" void emberAfPostAttributeChangeCallback(uint8_t endpoint, EmberAfClus } } -/** @brief On/off Cluster Server Post Init +/** @brief OnOff Cluster Init * - * Following resolution of the On/Off state at startup for this endpoint, - * perform any additional initialization needed; e.g., synchronize hardware - * state. + * This function is called when a specific cluster is initialized. It gives the + * application an opportunity to take care of cluster initialization procedures. + * It is called exactly once for each endpoint where cluster is present. + * + * @param endpoint Ver.: always + * + * TODO Issue #3841 + * emberAfOnOffClusterInitCallback happens before the stack initialize the cluster + * attributes to the default value. + * The logic here expects something similar to the deprecated Plugins callback + * emberAfPluginOnOffClusterServerPostInitCallback. * - * @param endpoint Endpoint that is being initialized Ver.: always */ -extern "C" void emberAfPluginOnOffClusterServerPostInitCallback(uint8_t endpoint) +void emberAfOnOffClusterInitCallback(EndpointId endpoint) { - // TODO: implement any additional On/off Cluster Server post init actions + // TODO: implement any additional Cluster Server init actions } diff --git a/examples/lock-app/efr32/src/gen/af-gen-event.h b/examples/lock-app/efr32/src/gen/af-gen-event.h deleted file mode 100644 index e69de29bb2d1d6..00000000000000 diff --git a/examples/lock-app/efr32/src/gen/af-structs.h b/examples/lock-app/efr32/src/gen/af-structs.h deleted file mode 100644 index 8009281c7692c6..00000000000000 --- a/examples/lock-app/efr32/src/gen/af-structs.h +++ /dev/null @@ -1,458 +0,0 @@ -/** - * - * 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 SILABS_EMBER_AF_STRUCTS -#define SILABS_EMBER_AF_STRUCTS - -// Generated structs from the metadata -// Struct for IasAceZoneStatusResult -typedef struct _IasAceZoneStatusResult -{ - uint8_t zoneId; - uint16_t zoneStatus; -} IasAceZoneStatusResult; - -// Struct for ReadAttributeStatusRecord -typedef struct _ReadAttributeStatusRecord -{ - uint16_t attributeId; - uint8_t status; - uint8_t attributeType; - uint8_t * attributeLocation; -} ReadAttributeStatusRecord; - -// Struct for WriteAttributeRecord -typedef struct _WriteAttributeRecord -{ - uint16_t attributeId; - uint8_t attributeType; - uint8_t * attributeLocation; -} WriteAttributeRecord; - -// Struct for WriteAttributeStatusRecord -typedef struct _WriteAttributeStatusRecord -{ - uint8_t status; - uint16_t attributeId; -} WriteAttributeStatusRecord; - -// Struct for ConfigureReportingRecord -typedef struct _ConfigureReportingRecord -{ - uint8_t direction; - uint16_t attributeId; - uint8_t attributeType; - uint16_t minimumReportingInterval; - uint16_t maximumReportingInterval; - uint8_t * reportableChangeLocation; - uint16_t timeoutPeriod; -} ConfigureReportingRecord; - -// Struct for ConfigureReportingStatusRecord -typedef struct _ConfigureReportingStatusRecord -{ - uint8_t status; - uint8_t direction; - uint16_t attributeId; -} ConfigureReportingStatusRecord; - -// Struct for ReadReportingConfigurationRecord -typedef struct _ReadReportingConfigurationRecord -{ - uint8_t status; - uint8_t direction; - uint16_t attributeId; - uint8_t attributeType; - uint16_t minimumReportingInterval; - uint16_t maximumReportingInterval; - uint8_t * reportableChangeLocation; - uint16_t timeoutPeriod; -} ReadReportingConfigurationRecord; - -// Struct for ReadReportingConfigurationAttributeRecord -typedef struct _ReadReportingConfigurationAttributeRecord -{ - uint8_t direction; - uint16_t attributeId; -} ReadReportingConfigurationAttributeRecord; - -// Struct for ReportAttributeRecord -typedef struct _ReportAttributeRecord -{ - uint16_t attributeId; - uint8_t attributeType; - uint8_t * attributeLocation; -} ReportAttributeRecord; - -// Struct for DiscoverAttributesInfoRecord -typedef struct _DiscoverAttributesInfoRecord -{ - uint16_t attributeId; - uint8_t attributeType; -} DiscoverAttributesInfoRecord; - -// Struct for ExtendedDiscoverAttributesInfoRecord -typedef struct _ExtendedDiscoverAttributesInfoRecord -{ - uint16_t attributeId; - uint8_t attributeType; - uint8_t attributeAccessControl; -} ExtendedDiscoverAttributesInfoRecord; - -// Struct for ReadStructuredAttributeRecord -typedef struct _ReadStructuredAttributeRecord -{ - uint16_t attributeId; - uint8_t indicator; - uint16_t indicies; -} ReadStructuredAttributeRecord; - -// Struct for WriteStructuredAttributeRecord -typedef struct _WriteStructuredAttributeRecord -{ - uint16_t attributeId; - uint8_t indicator; - uint16_t indicies; - uint8_t attributeType; - uint8_t * attributeLocation; -} WriteStructuredAttributeRecord; - -// Struct for WriteStructuredAttributeStatusRecord -typedef struct _WriteStructuredAttributeStatusRecord -{ - uint8_t status; - uint16_t attributeId; - uint8_t indicator; - uint16_t indicies; -} WriteStructuredAttributeStatusRecord; - -// Struct for SceneExtensionAttributeInfo -typedef struct _SceneExtensionAttributeInfo -{ - uint8_t attributeType; - uint8_t * attributeLocation; -} SceneExtensionAttributeInfo; - -// Struct for SceneExtensionFieldSet -typedef struct _SceneExtensionFieldSet -{ - uint16_t clusterId; - uint8_t length; - uint8_t value; -} SceneExtensionFieldSet; - -// Struct for BlockThreshold -typedef struct _BlockThreshold -{ - uint8_t blockThreshold; - uint8_t priceControl; - uint32_t blockPeriodStartTime; - uint32_t blockPeriodDurationMinutes; - uint8_t fuelType; - uint32_t standingCharge; -} BlockThreshold; - -// Struct for Notification -typedef struct _Notification -{ - uint16_t contentId; - uint8_t statusFeedback; -} Notification; - -// Struct for NeighborInfo -typedef struct _NeighborInfo -{ - uint8_t * neighbor; - int16_t x; - int16_t y; - int16_t z; - int8_t rssi; - uint8_t numberRssiMeasurements; -} NeighborInfo; - -// Struct for ChatParticipant -typedef struct _ChatParticipant -{ - uint16_t uid; - uint8_t * nickname; -} ChatParticipant; - -// Struct for ChatRoom -typedef struct _ChatRoom -{ - uint16_t cid; - uint8_t * name; -} ChatRoom; - -// Struct for NodeInformation -typedef struct _NodeInformation -{ - uint16_t uid; - uint16_t address; - uint8_t endpoint; - uint8_t * nickname; -} NodeInformation; - -// Struct for ScheduledPhase -typedef struct _ScheduledPhase -{ - uint8_t energyPhaseId; - uint16_t scheduledTime; -} ScheduledPhase; - -// Struct for TransferredPhase -typedef struct _TransferredPhase -{ - uint8_t energyPhaseId; - uint8_t macroPhaseId; - uint16_t expectedDuration; - uint16_t peakPower; - uint16_t energy; - uint16_t maxActivationDelay; -} TransferredPhase; - -// Struct for PowerProfileRecord -typedef struct _PowerProfileRecord -{ - uint8_t powerProfileId; - uint8_t energyPhaseId; - uint8_t powerProfileRemoteControl; - uint8_t powerProfileState; -} PowerProfileRecord; - -// Struct for PriceMatrixSubPayload -typedef struct _PriceMatrixSubPayload -{ - uint8_t tierBlockId; - uint32_t price; -} PriceMatrixSubPayload; - -// Struct for BlockThresholdSubPayload -typedef struct _BlockThresholdSubPayload -{ - uint8_t tierNumberOfBlockThresholds; - uint8_t * blockThreshold; -} BlockThresholdSubPayload; - -// Struct for TierLabelsPayload -typedef struct _TierLabelsPayload -{ - uint8_t tierId; - uint8_t * tierLabel; -} TierLabelsPayload; - -// Void typedef for Signature which is empty. -// this will result in all the references to the data being as uint8_t* -typedef uint8_t Signature; - -// Struct for SnapshotResponsePayload -typedef struct _SnapshotResponsePayload -{ - uint8_t snapshotScheduleId; - uint8_t snapshotScheduleConfirmation; -} SnapshotResponsePayload; - -// Struct for SnapshotSchedulePayload -typedef struct _SnapshotSchedulePayload -{ - uint8_t snapshotScheduleId; - uint32_t snapshotStartTime; - uint32_t snapshotSchedule; - uint8_t snapshotPayloadType; - uint32_t snapshotCause; -} SnapshotSchedulePayload; - -// Struct for Protocol -typedef struct _Protocol -{ - uint16_t manufacturerCode; - uint8_t protocolId; -} Protocol; - -// Struct for TopUpPayload -typedef struct _TopUpPayload -{ - uint8_t * topUpCode; - int32_t topUpAmount; - uint32_t topUpTime; -} TopUpPayload; - -// Struct for DebtPayload -typedef struct _DebtPayload -{ - uint32_t collectionTime; - uint32_t amountCollected; - uint8_t debtType; - uint32_t outstandingDebt; -} DebtPayload; - -// Struct for ScheduleEntry -typedef struct _ScheduleEntry -{ - uint16_t startTime; - uint8_t activePriceTierOrFriendlyCreditEnable; -} ScheduleEntry; - -// Struct for ScheduleEntryRateSwitchTimes -typedef struct _ScheduleEntryRateSwitchTimes -{ - uint16_t startTime; - uint8_t priceTier; -} ScheduleEntryRateSwitchTimes; - -// Struct for ScheduleEntryFriendlyCreditSwitchTimes -typedef struct _ScheduleEntryFriendlyCreditSwitchTimes -{ - uint16_t startTime; - uint8_t friendlyCreditEnable; -} ScheduleEntryFriendlyCreditSwitchTimes; - -// Struct for ScheduleEntryAuxilliaryLoadSwitchTimes -typedef struct _ScheduleEntryAuxilliaryLoadSwitchTimes -{ - uint16_t startTime; - uint8_t auxiliaryLoadSwitchState; -} ScheduleEntryAuxilliaryLoadSwitchTimes; - -// Struct for SeasonEntry -typedef struct _SeasonEntry -{ - uint32_t seasonStartDate; - uint8_t weekIdRef; -} SeasonEntry; - -// Struct for SpecialDay -typedef struct _SpecialDay -{ - uint32_t specialDayDate; - uint8_t dayIdRef; -} SpecialDay; - -// Struct for EventConfigurationPayload -typedef struct _EventConfigurationPayload -{ - uint16_t eventId; - uint8_t eventConfiguration; -} EventConfigurationPayload; - -// Struct for EventLogPayload -typedef struct _EventLogPayload -{ - uint8_t logId; - uint16_t eventId; - uint32_t eventTime; - uint8_t * eventData; -} EventLogPayload; - -// Void typedef for Identity which is empty. -// this will result in all the references to the data being as uint8_t* -typedef uint8_t Identity; - -// Void typedef for EphemeralData which is empty. -// this will result in all the references to the data being as uint8_t* -typedef uint8_t EphemeralData; - -// Void typedef for Smac which is empty. -// this will result in all the references to the data being as uint8_t* -typedef uint8_t Smac; - -// Struct for DeviceInformationRecord -typedef struct _DeviceInformationRecord -{ - uint8_t * ieeeAddress; - uint8_t endpointId; - uint16_t profileId; - uint16_t deviceId; - uint8_t version; - uint8_t groupIdCount; - uint8_t sort; -} DeviceInformationRecord; - -// Struct for GroupInformationRecord -typedef struct _GroupInformationRecord -{ - uint16_t groupId; - uint8_t groupType; -} GroupInformationRecord; - -// Struct for EndpointInformationRecord -typedef struct _EndpointInformationRecord -{ - uint16_t networkAddress; - uint8_t endpointId; - uint16_t profileId; - uint16_t deviceId; - uint8_t version; -} EndpointInformationRecord; - -// Struct for GpTranslationTableUpdateTranslation -typedef struct _GpTranslationTableUpdateTranslation -{ - uint8_t index; - uint8_t gpdCommandId; - uint8_t endpoint; - uint16_t profile; - uint16_t cluster; - uint8_t zigbeeCommandId; - uint8_t * zigbeeCommandPayload; - uint8_t * additionalInfoBlock; -} GpTranslationTableUpdateTranslation; - -// Struct for GpPairingConfigurationGroupList -typedef struct _GpPairingConfigurationGroupList -{ - uint16_t SinkGroup; - uint16_t Alias; -} GpPairingConfigurationGroupList; - -// Struct for WwahBeaconSurvey -typedef struct _WwahBeaconSurvey -{ - uint16_t deviceShort; - uint8_t rssi; - uint8_t classificationMask; -} WwahBeaconSurvey; - -// Struct for WwahClusterStatusToUseTC -typedef struct _WwahClusterStatusToUseTC -{ - uint16_t clusterId; - uint8_t status; -} WwahClusterStatusToUseTC; - -#endif // SILABS_EMBER_AF_STRUCTS diff --git a/examples/lock-app/efr32/src/gen/attribute-id.h b/examples/lock-app/efr32/src/gen/attribute-id.h deleted file mode 100644 index 442f72e97e2232..00000000000000 --- a/examples/lock-app/efr32/src/gen/attribute-id.h +++ /dev/null @@ -1,4786 +0,0 @@ -/** - * - * 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 SILABS_EMBER_AF_ATTRIBUTE_ID -#define SILABS_EMBER_AF_ATTRIBUTE_ID - -// Attribute types for cluster: Basic -// Cluster specification level: zcl-7.0-07-5123-07 - -// Client attributes -#define ZCL_BASIC_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_BASIC_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_VERSION_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_APPLICATION_VERSION_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_STACK_VERSION_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_HW_VERSION_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_MANUFACTURER_NAME_ATTRIBUTE_ID 0x0004 // Ver.: always -#define ZCL_MODEL_IDENTIFIER_ATTRIBUTE_ID 0x0005 // Ver.: always -#define ZCL_DATE_CODE_ATTRIBUTE_ID 0x0006 // Ver.: always -#define ZCL_POWER_SOURCE_ATTRIBUTE_ID 0x0007 // Ver.: always -#define ZCL_GENERIC_DEVICE_CLASS_ATTRIBUTE_ID 0x0008 // Ver.: since l&o-1.0-15-0014-04 -#define ZCL_GENERIC_DEVICE_TYPE_ATTRIBUTE_ID 0x0009 // Ver.: since l&o-1.0-15-0014-04 -#define ZCL_PRODUCT_CODE_ATTRIBUTE_ID 0x000A // Ver.: since l&o-1.0-15-0014-04 -#define ZCL_PRODUCT_URL_ATTRIBUTE_ID 0x000B // Ver.: since l&o-1.0-15-0014-04 -#define ZCL_LOCATION_DESCRIPTION_ATTRIBUTE_ID 0x0010 // Ver.: always -#define ZCL_PHYSICAL_ENVIRONMENT_ATTRIBUTE_ID 0x0011 // Ver.: always -#define ZCL_DEVICE_ENABLED_ATTRIBUTE_ID 0x0012 // Ver.: always -#define ZCL_ALARM_MASK_ATTRIBUTE_ID 0x0013 // Ver.: always -#define ZCL_DISABLE_LOCAL_CONFIG_ATTRIBUTE_ID 0x0014 // Ver.: always -#define ZCL_CURRENT_LOCALE_ATTRIBUTE_ID 0x0015 // Ver.: always -#define ZCL_SW_BUILD_ID_ATTRIBUTE_ID 0x4000 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_BASIC_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_BASIC_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Power Configuration -// Cluster specification level: zcl-7.0-07-5123-07 - -// Client attributes -#define ZCL_POWER_CONFIG_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_POWER_CONFIG_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_MAINS_VOLTAGE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_MAINS_FREQUENCY_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_MAINS_ALARM_MASK_ATTRIBUTE_ID 0x0010 // Ver.: always -#define ZCL_MAINS_VOLTAGE_MIN_THRESHOLD_ATTRIBUTE_ID 0x0011 // Ver.: always -#define ZCL_MAINS_VOLTAGE_MAX_THRESHOLD_ATTRIBUTE_ID 0x0012 // Ver.: always -#define ZCL_MAINS_VOLTAGE_DWELL_TRIP_POINT_ATTRIBUTE_ID 0x0013 // Ver.: always -#define ZCL_BATTERY_VOLTAGE_ATTRIBUTE_ID 0x0020 // Ver.: always -#define ZCL_BATTERY_PERCENTAGE_REMAINING_ATTRIBUTE_ID 0x0021 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_MANUFACTURER_ATTRIBUTE_ID 0x0030 // Ver.: always -#define ZCL_BATTERY_SIZE_ATTRIBUTE_ID 0x0031 // Ver.: always -#define ZCL_BATTERY_AHR_RATING_ATTRIBUTE_ID 0x0032 // Ver.: always -#define ZCL_BATTERY_QUANTITY_ATTRIBUTE_ID 0x0033 // Ver.: always -#define ZCL_BATTERY_RATED_VOLTAGE_ATTRIBUTE_ID 0x0034 // Ver.: always -#define ZCL_BATTERY_ALARM_MASK_ATTRIBUTE_ID 0x0035 // Ver.: always -#define ZCL_BATTERY_VOLTAGE_MIN_THRESHOLD_ATTRIBUTE_ID 0x0036 // Ver.: always -#define ZCL_BATTERY_VOLTAGE_THRESHOLD_1_ATTRIBUTE_ID 0x0037 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_VOLTAGE_THRESHOLD_2_ATTRIBUTE_ID 0x0038 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_VOLTAGE_THRESHOLD_3_ATTRIBUTE_ID 0x0039 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_PERCENTAGE_MIN_THRESHOLD_ATTRIBUTE_ID 0x003A // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_PERCENTAGE_THRESHOLD_1_ATTRIBUTE_ID 0x003B // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_PERCENTAGE_THRESHOLD_2_ATTRIBUTE_ID 0x003C // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_PERCENTAGE_THRESHOLD_3_ATTRIBUTE_ID 0x003D // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_ALARM_STATE_ATTRIBUTE_ID 0x003E // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_2_VOLTAGE_ATTRIBUTE_ID 0x0040 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_2_PERCENTAGE_REMAINING_ATTRIBUTE_ID 0x0041 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_2_MANUFACTURER_ATTRIBUTE_ID 0x0050 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_2_SIZE_ATTRIBUTE_ID 0x0051 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_2_AHR_RATING_ATTRIBUTE_ID 0x0052 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_2_QUANTITY_ATTRIBUTE_ID 0x0053 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_2_RATED_VOLTAGE_ATTRIBUTE_ID 0x0054 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_2_ALARM_MASK_ATTRIBUTE_ID 0x0055 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_2_VOLTAGE_MIN_THRESHOLD_ATTRIBUTE_ID 0x0056 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_2_VOLTAGE_THRESHOLD_1_ATTRIBUTE_ID 0x0057 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_2_VOLTAGE_THRESHOLD_2_ATTRIBUTE_ID 0x0058 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_2_VOLTAGE_THRESHOLD_3_ATTRIBUTE_ID 0x0059 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_2_PERCENTAGE_MIN_THRESHOLD_ATTRIBUTE_ID 0x005A // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_2_PERCENTAGE_THRESHOLD_1_ATTRIBUTE_ID 0x005B // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_2_PERCENTAGE_THRESHOLD_2_ATTRIBUTE_ID 0x005C // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_2_PERCENTAGE_THRESHOLD_3_ATTRIBUTE_ID 0x005D // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_2_ALARM_STATE_ATTRIBUTE_ID 0x005E // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_3_VOLTAGE_ATTRIBUTE_ID 0x0060 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_3_PERCENTAGE_REMAINING_ATTRIBUTE_ID 0x0061 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_3_MANUFACTURER_ATTRIBUTE_ID 0x0070 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_3_SIZE_ATTRIBUTE_ID 0x0071 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_3_AHR_RATING_ATTRIBUTE_ID 0x0072 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_3_QUANTITY_ATTRIBUTE_ID 0x0073 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_3_RATED_VOLTAGE_ATTRIBUTE_ID 0x0074 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_3_ALARM_MASK_ATTRIBUTE_ID 0x0075 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_3_VOLTAGE_MIN_THRESHOLD_ATTRIBUTE_ID 0x0076 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_3_VOLTAGE_THRESHOLD_1_ATTRIBUTE_ID 0x0077 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_3_VOLTAGE_THRESHOLD_2_ATTRIBUTE_ID 0x0078 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_3_VOLTAGE_THRESHOLD_3_ATTRIBUTE_ID 0x0079 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_3_PERCENTAGE_MIN_THRESHOLD_ATTRIBUTE_ID 0x007A // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_3_PERCENTAGE_THRESHOLD_1_ATTRIBUTE_ID 0x007B // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_3_PERCENTAGE_THRESHOLD_2_ATTRIBUTE_ID 0x007C // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_3_PERCENTAGE_THRESHOLD_3_ATTRIBUTE_ID 0x007D // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_3_ALARM_STATE_ATTRIBUTE_ID 0x007E // Ver.: since ha-1.2-05-3520-29 -#define ZCL_POWER_CONFIG_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_POWER_CONFIG_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Device Temperature Configuration -// Cluster specification level: zcl-7.0-07-5123-07 - -// Client attributes -#define ZCL_DEVICE_TEMP_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_DEVICE_TEMP_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_CURRENT_TEMPERATURE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_MIN_TEMP_EXPERIENCED_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_MAX_TEMP_EXPERIENCED_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_OVER_TEMP_TOTAL_DWELL_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_DEVICE_TEMP_ALARM_MASK_ATTRIBUTE_ID 0x0010 // Ver.: always -#define ZCL_LOW_TEMP_THRESHOLD_ATTRIBUTE_ID 0x0011 // Ver.: always -#define ZCL_HIGH_TEMP_THRESHOLD_ATTRIBUTE_ID 0x0012 // Ver.: always -#define ZCL_LOW_TEMP_DWELL_TRIP_POINT_ATTRIBUTE_ID 0x0013 // Ver.: always -#define ZCL_HIGH_TEMP_DWELL_TRIP_POINT_ATTRIBUTE_ID 0x0014 // Ver.: always -#define ZCL_DEVICE_TEMP_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_DEVICE_TEMP_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Identify -// Cluster specification level: zcl-7.0-07-5123-07 - -// Client attributes -#define ZCL_IDENTIFY_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_IDENTIFY_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_IDENTIFY_TIME_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_COMMISSION_STATE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_IDENTIFY_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_IDENTIFY_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Groups -// Cluster specification level: zcl-7.0-07-5123-07 - -// Client attributes -#define ZCL_GROUPS_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_GROUPS_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_GROUP_NAME_SUPPORT_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_GROUPS_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_GROUPS_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Scenes -// Cluster specification level: zcl-7.0-07-5123-07 - -// Client attributes -#define ZCL_SCENES_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_SCENES_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_SCENE_COUNT_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_CURRENT_SCENE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_CURRENT_GROUP_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_SCENE_VALID_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_SCENE_NAME_SUPPORT_ATTRIBUTE_ID 0x0004 // Ver.: always -#define ZCL_LAST_CONFIGURED_BY_ATTRIBUTE_ID 0x0005 // Ver.: always -#define ZCL_SCENES_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_SCENES_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: On/off -// Cluster specification level: zcl-7.0-07-5123-07 - -// Client attributes -#define ZCL_ON_OFF_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_ON_OFF_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_ON_OFF_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_SAMPLE_MFG_SPECIFIC_TRANSITION_TIME_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_SAMPLE_MFG_SPECIFIC_TRANSITION_TIME_2_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_SAMPLE_MFG_SPECIFIC_TRANSITION_TIME_3_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_SAMPLE_MFG_SPECIFIC_TRANSITION_TIME_4_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_GLOBAL_SCENE_CONTROL_ATTRIBUTE_ID 0x4000 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_ON_TIME_ATTRIBUTE_ID 0x4001 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_OFF_WAIT_TIME_ATTRIBUTE_ID 0x4002 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_START_UP_ON_OFF_ATTRIBUTE_ID 0x4003 // Ver.: since l&o-1.0-15-0014-04 -#define ZCL_ON_OFF_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_ON_OFF_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: On/off Switch Configuration -// Cluster specification level: zcl-7.0-07-5123-07 - -// Client attributes -#define ZCL_ON_OFF_SWITCH_CONFIG_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_ON_OFF_SWITCH_CONFIG_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_SWITCH_TYPE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_SWITCH_ACTIONS_ATTRIBUTE_ID 0x0010 // Ver.: always -#define ZCL_ON_OFF_SWITCH_CONFIG_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_ON_OFF_SWITCH_CONFIG_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Level Control -// Cluster specification level: zcl-7.0-07-5123-07 - -// Client attributes -#define ZCL_LEVEL_CONTROL_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_LEVEL_CONTROL_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_CURRENT_LEVEL_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_LEVEL_CONTROL_REMAINING_TIME_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_OPTIONS_ATTRIBUTE_ID 0x000F // Ver.: since l&o-1.0-15-0014-04 -#define ZCL_ON_OFF_TRANSITION_TIME_ATTRIBUTE_ID 0x0010 // Ver.: always -#define ZCL_ON_LEVEL_ATTRIBUTE_ID 0x0011 // Ver.: always -#define ZCL_ON_TRANSITION_TIME_ATTRIBUTE_ID 0x0012 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_OFF_TRANSITION_TIME_ATTRIBUTE_ID 0x0013 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_DEFAULT_MOVE_RATE_ATTRIBUTE_ID 0x0014 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_START_UP_CURRENT_LEVEL_ATTRIBUTE_ID 0x4000 // Ver.: since l&o-1.0-15-0014-04 -#define ZCL_LEVEL_CONTROL_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_LEVEL_CONTROL_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Alarms -// Cluster specification level: zcl-7.0-07-5123-07 - -// Client attributes -#define ZCL_ALARM_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_ALARM_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_ALARM_COUNT_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_ALARM_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_ALARM_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Time -// Cluster specification level: zcl-7.0-07-5123-07 - -// Client attributes -#define ZCL_TIME_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_TIME_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_TIME_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_TIME_STATUS_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_TIME_ZONE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_DST_START_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_DST_END_ATTRIBUTE_ID 0x0004 // Ver.: always -#define ZCL_DST_SHIFT_ATTRIBUTE_ID 0x0005 // Ver.: always -#define ZCL_STANDARD_TIME_ATTRIBUTE_ID 0x0006 // Ver.: always -#define ZCL_LOCAL_TIME_ATTRIBUTE_ID 0x0007 // Ver.: always -#define ZCL_LAST_SET_TIME_ATTRIBUTE_ID 0x0008 // Ver.: always -#define ZCL_VALID_UNTIL_TIME_ATTRIBUTE_ID 0x0009 // Ver.: always -#define ZCL_TIME_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_TIME_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: RSSI Location -// Cluster specification level: zcl-7.0-07-5123-07 - -// Client attributes -#define ZCL_RSSI_LOCATION_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_RSSI_LOCATION_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_LOCATION_TYPE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_LOCATION_METHOD_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_LOCATION_AGE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_QUALITY_MEASURE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_NUMBER_OF_DEVICES_ATTRIBUTE_ID 0x0004 // Ver.: always -#define ZCL_COORDINATE1_ATTRIBUTE_ID 0x0010 // Ver.: always -#define ZCL_COORDINATE2_ATTRIBUTE_ID 0x0011 // Ver.: always -#define ZCL_COORDINATE3_ATTRIBUTE_ID 0x0012 // Ver.: always -#define ZCL_POWER_ATTRIBUTE_ID 0x0013 // Ver.: always -#define ZCL_PATH_LOSS_EXPONENT_ATTRIBUTE_ID 0x0014 // Ver.: always -#define ZCL_REPORTING_PERIOD_ATTRIBUTE_ID 0x0015 // Ver.: always -#define ZCL_CALCULATION_PERIOD_ATTRIBUTE_ID 0x0016 // Ver.: always -#define ZCL_NUMBER_RSSI_MEASUREMENTS_ATTRIBUTE_ID 0x0017 // Ver.: always -#define ZCL_RSSI_LOCATION_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_RSSI_LOCATION_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Binary Input (Basic) -// Cluster specification level: zcl-7.0-07-5123-07 - -// Client attributes -#define ZCL_BINARY_INPUT_BASIC_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_BINARY_INPUT_BASIC_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_ACTIVE_TEXT_ATTRIBUTE_ID 0x0004 // Ver.: always -#define ZCL_DESCRIPTION_ATTRIBUTE_ID 0x001C // Ver.: always -#define ZCL_INACTIVE_TEXT_ATTRIBUTE_ID 0x002E // Ver.: always -#define ZCL_OUT_OF_SERVICE_ATTRIBUTE_ID 0x0051 // Ver.: always -#define ZCL_POLARITY_ATTRIBUTE_ID 0x0054 // Ver.: always -#define ZCL_PRESENT_VALUE_ATTRIBUTE_ID 0x0055 // Ver.: always -#define ZCL_RELIABILITY_ATTRIBUTE_ID 0x0067 // Ver.: always -#define ZCL_STATUS_FLAGS_ATTRIBUTE_ID 0x006F // Ver.: always -#define ZCL_APPLICATION_TYPE_ATTRIBUTE_ID 0x0100 // Ver.: always -#define ZCL_BINARY_INPUT_BASIC_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_BINARY_INPUT_BASIC_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Commissioning -// Cluster specification level: zcl-7.0-07-5123-07 - -// Client attributes -#define ZCL_COMMISSIONING_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_COMMISSIONING_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_SHORT_ADDRESS_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_EXTENDED_PAN_ID_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_PAN_ID_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_CHANNEL_MASK_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_PROTOCOL_VERSION_ATTRIBUTE_ID 0x0004 // Ver.: always -#define ZCL_STACK_PROFILE_ATTRIBUTE_ID 0x0005 // Ver.: always -#define ZCL_STARTUP_CONTROL_ATTRIBUTE_ID 0x0006 // Ver.: always -#define ZCL_TRUST_CENTER_ADDRESS_ATTRIBUTE_ID 0x0010 // Ver.: always -#define ZCL_TRUST_CENTER_MASTER_KEY_ATTRIBUTE_ID 0x0011 // Ver.: always -#define ZCL_NETWORK_KEY_ATTRIBUTE_ID 0x0012 // Ver.: always -#define ZCL_USE_INSECURE_JOIN_ATTRIBUTE_ID 0x0013 // Ver.: always -#define ZCL_PRECONFIGURED_LINK_KEY_ATTRIBUTE_ID 0x0014 // Ver.: always -#define ZCL_NETWORK_KEY_SEQUENCE_NUMBER_ATTRIBUTE_ID 0x0015 // Ver.: always -#define ZCL_NETWORK_KEY_TYPE_ATTRIBUTE_ID 0x0016 // Ver.: always -#define ZCL_NETWORK_MANAGER_ADDRESS_ATTRIBUTE_ID 0x0017 // Ver.: always -#define ZCL_SCAN_ATTEMPTS_ATTRIBUTE_ID 0x0020 // Ver.: always -#define ZCL_TIME_BETWEEN_SCANS_ATTRIBUTE_ID 0x0021 // Ver.: always -#define ZCL_REJOIN_INTERVAL_ATTRIBUTE_ID 0x0022 // Ver.: always -#define ZCL_MAX_REJOIN_INTERVAL_ATTRIBUTE_ID 0x0023 // Ver.: always -#define ZCL_INDIRECT_POLL_RATE_ATTRIBUTE_ID 0x0030 // Ver.: always -#define ZCL_PARENT_RETRY_THRESHOLD_ATTRIBUTE_ID 0x0031 // Ver.: always -#define ZCL_CONCENTRATOR_FLAG_ATTRIBUTE_ID 0x0040 // Ver.: always -#define ZCL_CONCENTRATOR_RADIUS_ATTRIBUTE_ID 0x0041 // Ver.: always -#define ZCL_CONCENTRATOR_DISCOVERY_TIME_ATTRIBUTE_ID 0x0042 // Ver.: always -#define ZCL_COMMISSIONING_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_COMMISSIONING_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Partition -// Cluster specification level: zcl-7.0-07-5123-07 - -// Client attributes -#define ZCL_PARTITION_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_PARTITION_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_PARTITION_MAXIMUM_INCOMING_TRANSFER_SIZE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_PARTITION_MAXIMUM_OUTGOING_TRANSFER_SIZE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_PARTIONED_FRAME_SIZE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_LARGE_FRAME_SIZE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_NUMBER_OF_ACK_FRAME_ATTRIBUTE_ID 0x0004 // Ver.: always -#define ZCL_NACK_TIMEOUT_ATTRIBUTE_ID 0x0005 // Ver.: always -#define ZCL_INTERFRAME_DELAY_ATTRIBUTE_ID 0x0006 // Ver.: always -#define ZCL_NUMBER_OF_SEND_RETRIES_ATTRIBUTE_ID 0x0007 // Ver.: always -#define ZCL_SENDER_TIMEOUT_ATTRIBUTE_ID 0x0008 // Ver.: always -#define ZCL_RECEIVER_TIMEOUT_ATTRIBUTE_ID 0x0009 // Ver.: always -#define ZCL_PARTITION_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_PARTITION_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Over the Air Bootloading -// Cluster specification level: zcl-7.0-07-5123-07 - -// Client attributes -#define ZCL_UPGRADE_SERVER_ID_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_FILE_OFFSET_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_CURRENT_FILE_VERSION_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_CURRENT_ZIGBEE_STACK_VERSION_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_DOWNLOADED_FILE_VERSION_ATTRIBUTE_ID 0x0004 // Ver.: always -#define ZCL_DOWNLOADED_ZIGBEE_STACK_VERSION_ATTRIBUTE_ID 0x0005 // Ver.: always -#define ZCL_IMAGE_UPGRADE_STATUS_ATTRIBUTE_ID 0x0006 // Ver.: always -#define ZCL_MANUFACTURER_ID_ATTRIBUTE_ID 0x0007 // Ver.: always -#define ZCL_IMAGE_TYPE_ID_ATTRIBUTE_ID 0x0008 // Ver.: always -#define ZCL_MINIMUM_BLOCK_REQUEST_PERIOD_ATTRIBUTE_ID 0x0009 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_IMAGE_STAMP_ATTRIBUTE_ID 0x000A // Ver.: since ha-1.2-05-3520-29 -#define ZCL_UPGRADE_ACTIVATION_POLICY_ATTRIBUTE_ID 0x000B // Ver.: since se-1.2b-15-0131-02 -#define ZCL_UPGRADE_TIMEOUT_POLICY_ATTRIBUTE_ID 0x000C // Ver.: since se-1.2b-15-0131-02 -#define ZCL_OTA_BOOTLOAD_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_OTA_BOOTLOAD_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_OTA_BOOTLOAD_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_OTA_BOOTLOAD_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Power Profile -// Cluster specification level: zcl-7.0-07-5123-07 - -// Client attributes -#define ZCL_POWER_PROFILE_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_POWER_PROFILE_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_TOTAL_PROFILE_NUM_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_MULTIPLE_SCHEDULING_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_ENERGY_FORMATTING_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_ENERGY_REMOTE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_SCHEDULE_MODE_ATTRIBUTE_ID 0x0004 // Ver.: always -#define ZCL_POWER_PROFILE_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_POWER_PROFILE_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Appliance Control -// Cluster specification level: zcl-7.0-07-5123-07 - -// Client attributes -#define ZCL_APPLIANCE_CONTROL_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_APPLIANCE_CONTROL_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_START_TIME_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_FINISH_TIME_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_REMAINING_TIME_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_APPLIANCE_CONTROL_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_APPLIANCE_CONTROL_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Poll Control -// Cluster specification level: zcl-7.0-07-5123-07 - -// Client attributes -#define ZCL_POLL_CONTROL_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_POLL_CONTROL_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_CHECK_IN_INTERVAL_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_LONG_POLL_INTERVAL_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_SHORT_POLL_INTERVAL_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_FAST_POLL_TIMEOUT_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_CHECK_IN_INTERVAL_MIN_ATTRIBUTE_ID 0x0004 // Ver.: always -#define ZCL_LONG_POLL_INTERVAL_MIN_ATTRIBUTE_ID 0x0005 // Ver.: always -#define ZCL_FAST_POLL_TIMEOUT_MAX_ATTRIBUTE_ID 0x0006 // Ver.: always -#define ZCL_POLL_CONTROL_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_POLL_CONTROL_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Green Power -// Cluster specification level: gp-1.0a-09-5499-26 - -// Client attributes -#define ZCL_GP_CLIENT_GPP_MAX_PROXY_TABLE_ENTRIES_ATTRIBUTE_ID 0x0010 // Ver.: since gp-1.0-09-5499-24 -#define ZCL_GP_CLIENT_PROXY_TABLE_ATTRIBUTE_ID 0x0011 // Ver.: since gp-1.0-09-5499-24 -#define ZCL_GP_CLIENT_GPP_NOTIFICATION_RETRY_NUMBER_ATTRIBUTE_ID 0x0012 // Ver.: since gp-1.0-09-5499-24 -#define ZCL_GP_CLIENT_GPP_NOTIFICATION_RETRY_TIMER_ATTRIBUTE_ID 0x0013 // Ver.: since gp-1.0-09-5499-24 -#define ZCL_GP_CLIENT_GPP_MAX_SEARCH_COUNTER_ATTRIBUTE_ID 0x0014 // Ver.: since gp-1.0-09-5499-24 -#define ZCL_GP_CLIENT_GPP_BLOCKED_GPD_ID_ATTRIBUTE_ID 0x0015 // Ver.: since gp-1.0-09-5499-24 -#define ZCL_GP_CLIENT_GPP_FUNCTIONALITY_ATTRIBUTE_ID 0x0016 // Ver.: since gp-1.0-09-5499-24 -#define ZCL_GP_CLIENT_GPP_ACTIVE_FUNCTIONALITY_ATTRIBUTE_ID 0x0017 // Ver.: since gp-1.0-09-5499-24 -#define ZCL_GP_CLIENT_GP_SHARED_SECURITY_KEY_TYPE_ATTRIBUTE_ID 0x0020 // Ver.: since gp-1.0-09-5499-24 -#define ZCL_GP_CLIENT_GP_SHARED_SECURITY_KEY_ATTRIBUTE_ID 0x0021 // Ver.: since gp-1.0-09-5499-24 -#define ZCL_GP_CLIENT_GP_LINK_KEY_ATTRIBUTE_ID 0x0022 // Ver.: since gp-1.0-09-5499-24 -#define ZCL_GREEN_POWER_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_GREEN_POWER_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_GP_SERVER_GPS_MAX_SINK_TABLE_ENTRIES_ATTRIBUTE_ID 0x0000 // Ver.: since gp-1.0-09-5499-24 -#define ZCL_GP_SERVER_SINK_TABLE_ATTRIBUTE_ID 0x0001 // Ver.: since gp-1.0-09-5499-24 -#define ZCL_GP_SERVER_GPS_COMMUNICATION_MODE_ATTRIBUTE_ID 0x0002 // Ver.: since gp-1.0-09-5499-24 -#define ZCL_GP_SERVER_GPS_COMMISSIONING_EXIT_MODE_ATTRIBUTE_ID 0x0003 // Ver.: since gp-1.0-09-5499-24 -#define ZCL_GP_SERVER_GPS_COMMISSIONING_WINDOW_ATTRIBUTE_ID 0x0004 // Ver.: since gp-1.0-09-5499-24 -#define ZCL_GP_SERVER_GPS_SECURITY_LEVEL_ATTRIBUTE_ID 0x0005 // Ver.: since gp-1.0-09-5499-24 -#define ZCL_GP_SERVER_GPS_FUNCTIONALITY_ATTRIBUTE_ID 0x0006 // Ver.: since gp-1.0-09-5499-24 -#define ZCL_GP_SERVER_GPS_ACTIVE_FUNCTIONALITY_ATTRIBUTE_ID 0x0007 // Ver.: since gp-1.0-09-5499-24 -#define ZCL_GP_SERVER_GP_SHARED_SECURITY_KEY_TYPE_ATTRIBUTE_ID 0x0020 // Ver.: since gp-1.0-09-5499-24 -#define ZCL_GP_SERVER_GP_SHARED_SECURITY_KEY_ATTRIBUTE_ID 0x0021 // Ver.: since gp-1.0-09-5499-24 -#define ZCL_GP_SERVER_GP_LINK_KEY_ATTRIBUTE_ID 0x0022 // Ver.: since gp-1.0-09-5499-24 -#define ZCL_GREEN_POWER_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_GREEN_POWER_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Keep-Alive -// Cluster specification level: se-1.2b-15-0131-02 - -// Client attributes -#define ZCL_KEEPALIVE_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_KEEPALIVE_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_KEEPALIVE_BASE_ATTRIBUTE_ID 0x0000 // Ver.: since se-1.2b-15-0131-02 -#define ZCL_KEEPALIVE_JITTER_ATTRIBUTE_ID 0x0001 // Ver.: since se-1.2b-15-0131-02 -#define ZCL_KEEPALIVE_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_KEEPALIVE_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Shade Configuration -// Cluster specification level: zcl-6.0-15-02018-001 - -// Client attributes -#define ZCL_SHADE_CONFIG_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_SHADE_CONFIG_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_SHADE_CONFIG_PHYSICAL_CLOSED_LIMIT_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_SHADE_CONFIG_MOTOR_STEP_SIZE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_SHADE_CONFIG_STATUS_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_SHADE_CONFIG_CLOSED_LIMIT_ATTRIBUTE_ID 0x0010 // Ver.: always -#define ZCL_SHADE_CONFIG_MODE_ATTRIBUTE_ID 0x0011 // Ver.: always -#define ZCL_SHADE_CONFIG_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_SHADE_CONFIG_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Door Lock -// Cluster specification level: zcl-6.0-15-02018-001 - -// Client attributes -#define ZCL_DOOR_LOCK_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_DOOR_LOCK_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_LOCK_STATE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_LOCK_TYPE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_ACTUATOR_ENABLED_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_DOOR_STATE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_DOOR_OPEN_EVENTS_ATTRIBUTE_ID 0x0004 // Ver.: always -#define ZCL_DOOR_CLOSED_EVENTS_ATTRIBUTE_ID 0x0005 // Ver.: always -#define ZCL_OPEN_PERIOD_ATTRIBUTE_ID 0x0006 // Ver.: always -#define ZCL_NUM_LOCK_RECORDS_SUPPORTED_ATTRIBUTE_ID 0x0010 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_NUM_TOTAL_USERS_SUPPORTED_ATTRIBUTE_ID 0x0011 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_NUM_PIN_USERS_SUPPORTED_ATTRIBUTE_ID 0x0012 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_NUM_RFID_USERS_SUPPORTED_ATTRIBUTE_ID 0x0013 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_NUM_WEEKDAY_SCHEDULES_SUPPORTED_PER_USER_ATTRIBUTE_ID 0x0014 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_NUM_YEARDAY_SCHEDULES_SUPPORTED_PER_USER_ATTRIBUTE_ID 0x0015 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_NUM_HOLIDAY_SCHEDULES_SUPPORTED_PER_USER_ATTRIBUTE_ID 0x0016 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_MAX_PIN_LENGTH_ATTRIBUTE_ID 0x0017 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_MIN_PIN_LENGTH_ATTRIBUTE_ID 0x0018 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_MAX_RFID_CODE_LENGTH_ATTRIBUTE_ID 0x0019 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_MIN_RFID_CODE_LENGTH_ATTRIBUTE_ID 0x001A // Ver.: since ha-1.2-05-3520-29 -#define ZCL_ENABLE_LOGGING_ATTRIBUTE_ID 0x0020 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_LANGUAGE_ATTRIBUTE_ID 0x0021 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_LED_SETTINGS_ATTRIBUTE_ID 0x0022 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_AUTO_RELOCK_TIME_ATTRIBUTE_ID 0x0023 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_SOUND_VOLUME_ATTRIBUTE_ID 0x0024 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_OPERATING_MODE_ATTRIBUTE_ID 0x0025 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_SUPPORTED_OPERATING_MODES_ATTRIBUTE_ID 0x0026 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_DEFAULT_CONFIGURATION_REGISTER_ATTRIBUTE_ID 0x0027 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_ENABLE_LOCAL_PROGRAMMING_ATTRIBUTE_ID 0x0028 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_ENABLE_ONE_TOUCH_LOCKING_ATTRIBUTE_ID 0x0029 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_ENABLE_INSIDE_STATUS_LED_ATTRIBUTE_ID 0x002A // Ver.: since ha-1.2-05-3520-29 -#define ZCL_ENABLE_PRIVACY_MODE_BUTTON_ATTRIBUTE_ID 0x002B // Ver.: since ha-1.2-05-3520-29 -#define ZCL_WRONG_CODE_ENTRY_LIMIT_ATTRIBUTE_ID 0x0030 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_USER_CODE_TEMPORARY_DISABLE_TIME_ATTRIBUTE_ID 0x0031 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_SEND_PIN_OVER_THE_AIR_ATTRIBUTE_ID 0x0032 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_REQUIRE_PIN_FOR_RF_OPERATION_ATTRIBUTE_ID 0x0033 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_ZIGBEE_SECURITY_LEVEL_ATTRIBUTE_ID 0x0034 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_DOOR_LOCK_ALARM_MASK_ATTRIBUTE_ID 0x0040 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_KEYPAD_OPERATION_EVENT_MASK_ATTRIBUTE_ID 0x0041 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_RF_OPERATION_EVENT_MASK_ATTRIBUTE_ID 0x0042 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_MANUAL_OPERATION_EVENT_MASK_ATTRIBUTE_ID 0x0043 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_RFID_OPERATION_EVENT_MASK_ATTRIBUTE_ID 0x0044 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_KEYPAD_PROGRAMMING_EVENT_MASK_ATTRIBUTE_ID 0x0045 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_RF_PROGRAMMING_EVENT_MASK_ATTRIBUTE_ID 0x0046 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_RFID_PROGRAMMING_EVENT_MASK_ATTRIBUTE_ID 0x0047 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_DOOR_LOCK_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_DOOR_LOCK_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Window Covering -// Cluster specification level: zcl-6.0-15-02018-001 - -// Client attributes -#define ZCL_WINDOW_COVERING_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_WINDOW_COVERING_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_COVERING_TYPE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_LIMIT_LIFT_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_LIMIT_TILT_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_CURRENT_LIFT_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_CURRENT_TILT_ATTRIBUTE_ID 0x0004 // Ver.: always -#define ZCL_NUMBER_LIFT_ATTRIBUTE_ID 0x0005 // Ver.: always -#define ZCL_NUMBER_TILT_ATTRIBUTE_ID 0x0006 // Ver.: always -#define ZCL_CONFIG_STATUS_ATTRIBUTE_ID 0x0007 // Ver.: always -#define ZCL_CURRENT_LIFT_PERCENTAGE_ATTRIBUTE_ID 0x0008 // Ver.: always -#define ZCL_CURRENT_TILT_PERCENTAGE_ATTRIBUTE_ID 0x0009 // Ver.: always -#define ZCL_OPEN_LIMIT_LIFT_ATTRIBUTE_ID 0x0010 // Ver.: always -#define ZCL_CLOSED_LIMIT_LIFT_ATTRIBUTE_ID 0x0011 // Ver.: always -#define ZCL_OPEN_LIMIT_TILT_ATTRIBUTE_ID 0x0012 // Ver.: always -#define ZCL_CLOSED_LIMIT_TILT_ATTRIBUTE_ID 0x0013 // Ver.: always -#define ZCL_VELOCITY_LIFT_ATTRIBUTE_ID 0x0014 // Ver.: always -#define ZCL_ACCELERATION_LIFT_ATTRIBUTE_ID 0x0015 // Ver.: always -#define ZCL_DECELERATION_LIFT_ATTRIBUTE_ID 0x0016 // Ver.: always -#define ZCL_MODE_ATTRIBUTE_ID 0x0017 // Ver.: always -#define ZCL_SETPOINTS_LIFT_ATTRIBUTE_ID 0x0018 // Ver.: always -#define ZCL_SETPOINTS_TILT_ATTRIBUTE_ID 0x0019 // Ver.: always -#define ZCL_WINDOW_COVERING_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_WINDOW_COVERING_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Barrier Control -// Cluster specification level: zcl-6.0-15-02018-001 - -// Client attributes -#define ZCL_BARRIER_CONTROL_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_BARRIER_CONTROL_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_BARRIER_MOVING_STATE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_BARRIER_SAFETY_STATUS_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_BARRIER_CAPABILITIES_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_BARRIER_OPEN_EVENTS_ATTRIBUTE_ID 0x0004 // Ver.: always -#define ZCL_BARRIER_CLOSE_EVENTS_ATTRIBUTE_ID 0x0005 // Ver.: always -#define ZCL_BARRIER_COMMAND_OPEN_EVENTS_ATTRIBUTE_ID 0x0006 // Ver.: always -#define ZCL_BARRIER_COMMAND_CLOSE_EVENTS_ATTRIBUTE_ID 0x0007 // Ver.: always -#define ZCL_BARRIER_OPEN_PERIOD_ATTRIBUTE_ID 0x0008 // Ver.: always -#define ZCL_BARRIER_CLOSE_PERIOD_ATTRIBUTE_ID 0x0009 // Ver.: always -#define ZCL_BARRIER_POSITION_ATTRIBUTE_ID 0x000A // Ver.: always -#define ZCL_BARRIER_CONTROL_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_BARRIER_CONTROL_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Pump Configuration and Control -// Cluster specification level: zcl-6.0-15-02018-001 - -// Client attributes -#define ZCL_PUMP_CONFIG_CONTROL_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_PUMP_CONFIG_CONTROL_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_MAX_PRESSURE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_MAX_SPEED_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_MAX_FLOW_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_MIN_CONST_PRESSURE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_MAX_CONST_PRESSURE_ATTRIBUTE_ID 0x0004 // Ver.: always -#define ZCL_MIN_COMP_PRESSURE_ATTRIBUTE_ID 0x0005 // Ver.: always -#define ZCL_MAX_COMP_PRESSURE_ATTRIBUTE_ID 0x0006 // Ver.: always -#define ZCL_MIN_CONST_SPEED_ATTRIBUTE_ID 0x0007 // Ver.: always -#define ZCL_MAX_CONST_SPEED_ATTRIBUTE_ID 0x0008 // Ver.: always -#define ZCL_MIN_CONST_FLOW_ATTRIBUTE_ID 0x0009 // Ver.: always -#define ZCL_MAX_CONST_FLOW_ATTRIBUTE_ID 0x000A // Ver.: always -#define ZCL_MIN_CONST_TEMP_ATTRIBUTE_ID 0x000B // Ver.: always -#define ZCL_MAX_CONST_TEMP_ATTRIBUTE_ID 0x000C // Ver.: always -#define ZCL_PUMP_STATUS_ATTRIBUTE_ID 0x0010 // Ver.: always -#define ZCL_EFFECTIVE_OPERATION_MODE_ATTRIBUTE_ID 0x0011 // Ver.: always -#define ZCL_EFFECTIVE_CONTROL_MODE_ATTRIBUTE_ID 0x0012 // Ver.: always -#define ZCL_CAPACITY_ATTRIBUTE_ID 0x0013 // Ver.: always -#define ZCL_SPEED_ATTRIBUTE_ID 0x0014 // Ver.: always -#define ZCL_LIFETIME_RUNNING_HOURS_ATTRIBUTE_ID 0x0015 // Ver.: always -#define ZCL_PUMP_POWER_ATTRIBUTE_ID 0x0016 // Ver.: always -#define ZCL_LIFETIME_ENERGY_CONSUMED_ATTRIBUTE_ID 0x0017 // Ver.: always -#define ZCL_OPERATION_MODE_ATTRIBUTE_ID 0x0020 // Ver.: always -#define ZCL_CONTROL_MODE_ATTRIBUTE_ID 0x0021 // Ver.: always -#define ZCL_PUMP_ALARM_MASK_ATTRIBUTE_ID 0x0022 // Ver.: always -#define ZCL_PUMP_CONFIG_CONTROL_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_PUMP_CONFIG_CONTROL_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Thermostat -// Cluster specification level: zcl-6.0-15-02018-001 - -// Client attributes -#define ZCL_THERMOSTAT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_THERMOSTAT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_LOCAL_TEMPERATURE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_OUTDOOR_TEMPERATURE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_THERMOSTAT_OCCUPANCY_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_ABS_MIN_HEAT_SETPOINT_LIMIT_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_ABS_MAX_HEAT_SETPOINT_LIMIT_ATTRIBUTE_ID 0x0004 // Ver.: always -#define ZCL_ABS_MIN_COOL_SETPOINT_LIMIT_ATTRIBUTE_ID 0x0005 // Ver.: always -#define ZCL_ABS_MAX_COOL_SETPOINT_LIMIT_ATTRIBUTE_ID 0x0006 // Ver.: always -#define ZCL_PI_COOLING_DEMAND_ATTRIBUTE_ID 0x0007 // Ver.: always -#define ZCL_PI_HEATING_DEMAND_ATTRIBUTE_ID 0x0008 // Ver.: always -#define ZCL_HVAC_SYSTEM_TYPE_CONFIGURATION_ATTRIBUTE_ID 0x0009 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_LOCAL_TEMPERATURE_CALIBRATION_ATTRIBUTE_ID 0x0010 // Ver.: always -#define ZCL_OCCUPIED_COOLING_SETPOINT_ATTRIBUTE_ID 0x0011 // Ver.: always -#define ZCL_OCCUPIED_HEATING_SETPOINT_ATTRIBUTE_ID 0x0012 // Ver.: always -#define ZCL_UNOCCUPIED_COOLING_SETPOINT_ATTRIBUTE_ID 0x0013 // Ver.: always -#define ZCL_UNOCCUPIED_HEATING_SETPOINT_ATTRIBUTE_ID 0x0014 // Ver.: always -#define ZCL_MIN_HEAT_SETPOINT_LIMIT_ATTRIBUTE_ID 0x0015 // Ver.: always -#define ZCL_MAX_HEAT_SETPOINT_LIMIT_ATTRIBUTE_ID 0x0016 // Ver.: always -#define ZCL_MIN_COOL_SETPOINT_LIMIT_ATTRIBUTE_ID 0x0017 // Ver.: always -#define ZCL_MAX_COOL_SETPOINT_LIMIT_ATTRIBUTE_ID 0x0018 // Ver.: always -#define ZCL_MIN_SETPOINT_DEAD_BAND_ATTRIBUTE_ID 0x0019 // Ver.: always -#define ZCL_REMOTE_SENSING_ATTRIBUTE_ID 0x001A // Ver.: always -#define ZCL_CONTROL_SEQUENCE_OF_OPERATION_ATTRIBUTE_ID 0x001B // Ver.: always -#define ZCL_SYSTEM_MODE_ATTRIBUTE_ID 0x001C // Ver.: always -#define ZCL_THERMOSTAT_ALARM_MASK_ATTRIBUTE_ID 0x001D // Ver.: always -#define ZCL_THERMOSTAT_RUNNING_MODE_ATTRIBUTE_ID 0x001E // Ver.: since ha-1.2-05-3520-29 -#define ZCL_START_OF_WEEK_ATTRIBUTE_ID 0x0020 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_NUMBER_OF_WEEKLY_TRANSITIONS_ATTRIBUTE_ID 0x0021 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_NUMBER_OF_DAILY_TRANSITIONS_ATTRIBUTE_ID 0x0022 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_TEMPERATURE_SETPOINT_HOLD_ATTRIBUTE_ID 0x0023 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_TEMPERATURE_SETPOINT_HOLD_DURATION_ATTRIBUTE_ID 0x0024 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_THERMOSTAT_PROGRAMMING_OPERATION_MODE_ATTRIBUTE_ID 0x0025 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_THERMOSTAT_RUNNING_STATE_ATTRIBUTE_ID 0x0029 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_SETPOINT_CHANGE_SOURCE_ATTRIBUTE_ID 0x0030 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_SETPOINT_CHANGE_AMOUNT_ATTRIBUTE_ID 0x0031 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_SETPOINT_CHANGE_SOURCE_TIMESTAMP_ATTRIBUTE_ID 0x0032 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_OCCUPIED_SETBACK_ATTRIBUTE_ID 0x0034 // Ver.: always -#define ZCL_OCCUPIED_SETBACK_MIN_ATTRIBUTE_ID 0x0035 // Ver.: always -#define ZCL_OCCUPIED_SETBACK_MAX_ATTRIBUTE_ID 0x0036 // Ver.: always -#define ZCL_UNOCCUPIED_SETBACK_ATTRIBUTE_ID 0x0037 // Ver.: always -#define ZCL_UNOCCUPIED_SETBACK_MIN_ATTRIBUTE_ID 0x0038 // Ver.: always -#define ZCL_UNOCCUPIED_SETBACK_MAX_ATTRIBUTE_ID 0x0039 // Ver.: always -#define ZCL_EMERGENCY_HEAT_DELTA_ATTRIBUTE_ID 0x003A // Ver.: always -#define ZCL_AC_TYPE_ATTRIBUTE_ID 0x0040 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_AC_CAPACITY_ATTRIBUTE_ID 0x0041 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_AC_REFRIGERANT_TYPE_ATTRIBUTE_ID 0x0042 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_AC_COMPRESSOR_ATTRIBUTE_ID 0x0043 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_AC_ERROR_CODE_ATTRIBUTE_ID 0x0044 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_AC_LOUVER_POSITION_ATTRIBUTE_ID 0x0045 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_AC_COIL_TEMPERATURE_ATTRIBUTE_ID 0x0046 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_AC_CAPACITY_FORMAT_ATTRIBUTE_ID 0x0047 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_THERMOSTAT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_THERMOSTAT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Fan Control -// Cluster specification level: zcl-6.0-15-02018-001 - -// Client attributes -#define ZCL_FAN_CONTROL_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_FAN_CONTROL_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_FAN_CONTROL_FAN_MODE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_FAN_CONTROL_FAN_MODE_SEQUENCE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_FAN_DELAY_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_FAN_CONTROL_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_FAN_CONTROL_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Dehumidification Control -// Cluster specification level: zcl-6.0-15-02018-001 - -// Client attributes -#define ZCL_DEHUMID_CONTROL_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_DEHUMID_CONTROL_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_RELATIVE_HUMIDITY_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_DEHUMIDIFICATION_COOLING_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_RH_DEHUMIDIFICATION_SETPOINT_ATTRIBUTE_ID 0x0010 // Ver.: always -#define ZCL_RELATIVE_HUMIDITY_MODE_ATTRIBUTE_ID 0x0011 // Ver.: always -#define ZCL_DEHUMIDIFICATION_LOCKOUT_ATTRIBUTE_ID 0x0012 // Ver.: always -#define ZCL_DEHUMIDIFICATION_HYSTERESIS_ATTRIBUTE_ID 0x0013 // Ver.: always -#define ZCL_DEHUMIDIFICATION_MAX_COOL_ATTRIBUTE_ID 0x0014 // Ver.: always -#define ZCL_RELATIVE_HUMIDITY_DISPLAY_ATTRIBUTE_ID 0x0015 // Ver.: always -#define ZCL_DEHUMID_CONTROL_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_DEHUMID_CONTROL_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Thermostat User Interface Configuration -// Cluster specification level: zcl-6.0-15-02018-001 - -// Client attributes -#define ZCL_THERMOSTAT_UI_CONFIG_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_THERMOSTAT_UI_CONFIG_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_TEMPERATURE_DISPLAY_MODE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_KEYPAD_LOCKOUT_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_SCHEDULE_PROGRAMMING_VISIBILITY_ATTRIBUTE_ID 0x0002 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BACKLIGHT_TIMEOUT_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_SETPOINT_SOURCE_INDICATION_ATTRIBUTE_ID 0x0004 // Ver.: always -#define ZCL_THERMOSTAT_UI_CONFIG_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_THERMOSTAT_UI_CONFIG_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Color Control -// Cluster specification level: zcl6-errata-14-0129-15 - -// Client attributes -#define ZCL_COLOR_CONTROL_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_COLOR_CONTROL_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_COLOR_CONTROL_CURRENT_HUE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_COLOR_CONTROL_CURRENT_SATURATION_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_COLOR_CONTROL_REMAINING_TIME_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_COLOR_CONTROL_CURRENT_X_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_COLOR_CONTROL_CURRENT_Y_ATTRIBUTE_ID 0x0004 // Ver.: always -#define ZCL_COLOR_CONTROL_DRIFT_COMPENSATION_ATTRIBUTE_ID 0x0005 // Ver.: always -#define ZCL_COLOR_CONTROL_COMPENSATION_TEXT_ATTRIBUTE_ID 0x0006 // Ver.: always -#define ZCL_COLOR_CONTROL_COLOR_TEMPERATURE_ATTRIBUTE_ID 0x0007 // Ver.: always -#define ZCL_COLOR_CONTROL_COLOR_MODE_ATTRIBUTE_ID 0x0008 // Ver.: always -#define ZCL_COLOR_CONTROL_OPTIONS_ATTRIBUTE_ID 0x000F // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_COLOR_CONTROL_NUMBER_OF_PRIMARIES_ATTRIBUTE_ID 0x0010 // Ver.: always -#define ZCL_COLOR_CONTROL_PRIMARY_1_X_ATTRIBUTE_ID 0x0011 // Ver.: always -#define ZCL_COLOR_CONTROL_PRIMARY_1_Y_ATTRIBUTE_ID 0x0012 // Ver.: always -#define ZCL_COLOR_CONTROL_PRIMARY_1_INTENSITY_ATTRIBUTE_ID 0x0013 // Ver.: always -#define ZCL_COLOR_CONTROL_PRIMARY_2_X_ATTRIBUTE_ID 0x0015 // Ver.: always -#define ZCL_COLOR_CONTROL_PRIMARY_2_Y_ATTRIBUTE_ID 0x0016 // Ver.: always -#define ZCL_COLOR_CONTROL_PRIMARY_2_INTENSITY_ATTRIBUTE_ID 0x0017 // Ver.: always -#define ZCL_COLOR_CONTROL_PRIMARY_3_X_ATTRIBUTE_ID 0x0019 // Ver.: always -#define ZCL_COLOR_CONTROL_PRIMARY_3_Y_ATTRIBUTE_ID 0x001A // Ver.: always -#define ZCL_COLOR_CONTROL_PRIMARY_3_INTENSITY_ATTRIBUTE_ID 0x001B // Ver.: always -#define ZCL_COLOR_CONTROL_PRIMARY_4_X_ATTRIBUTE_ID 0x0020 // Ver.: always -#define ZCL_COLOR_CONTROL_PRIMARY_4_Y_ATTRIBUTE_ID 0x0021 // Ver.: always -#define ZCL_COLOR_CONTROL_PRIMARY_4_INTENSITY_ATTRIBUTE_ID 0x0022 // Ver.: always -#define ZCL_COLOR_CONTROL_PRIMARY_5_X_ATTRIBUTE_ID 0x0024 // Ver.: always -#define ZCL_COLOR_CONTROL_PRIMARY_5_Y_ATTRIBUTE_ID 0x0025 // Ver.: always -#define ZCL_COLOR_CONTROL_PRIMARY_5_INTENSITY_ATTRIBUTE_ID 0x0026 // Ver.: always -#define ZCL_COLOR_CONTROL_PRIMARY_6_X_ATTRIBUTE_ID 0x0028 // Ver.: always -#define ZCL_COLOR_CONTROL_PRIMARY_6_Y_ATTRIBUTE_ID 0x0029 // Ver.: always -#define ZCL_COLOR_CONTROL_PRIMARY_6_INTENSITY_ATTRIBUTE_ID 0x002A // Ver.: always -#define ZCL_COLOR_CONTROL_WHITE_POINT_X_ATTRIBUTE_ID 0x0030 // Ver.: always -#define ZCL_COLOR_CONTROL_WHITE_POINT_Y_ATTRIBUTE_ID 0x0031 // Ver.: always -#define ZCL_COLOR_CONTROL_COLOR_POINT_R_X_ATTRIBUTE_ID 0x0032 // Ver.: always -#define ZCL_COLOR_CONTROL_COLOR_POINT_R_Y_ATTRIBUTE_ID 0x0033 // Ver.: always -#define ZCL_COLOR_CONTROL_COLOR_POINT_R_INTENSITY_ATTRIBUTE_ID 0x0034 // Ver.: always -#define ZCL_COLOR_CONTROL_COLOR_POINT_G_X_ATTRIBUTE_ID 0x0036 // Ver.: always -#define ZCL_COLOR_CONTROL_COLOR_POINT_G_Y_ATTRIBUTE_ID 0x0037 // Ver.: always -#define ZCL_COLOR_CONTROL_COLOR_POINT_G_INTENSITY_ATTRIBUTE_ID 0x0038 // Ver.: always -#define ZCL_COLOR_CONTROL_COLOR_POINT_B_X_ATTRIBUTE_ID 0x003A // Ver.: always -#define ZCL_COLOR_CONTROL_COLOR_POINT_B_Y_ATTRIBUTE_ID 0x003B // Ver.: always -#define ZCL_COLOR_CONTROL_COLOR_POINT_B_INTENSITY_ATTRIBUTE_ID 0x003C // Ver.: always -#define ZCL_COLOR_CONTROL_ENHANCED_CURRENT_HUE_ATTRIBUTE_ID 0x4000 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_COLOR_CONTROL_ENHANCED_COLOR_MODE_ATTRIBUTE_ID 0x4001 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_COLOR_CONTROL_COLOR_LOOP_ACTIVE_ATTRIBUTE_ID 0x4002 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_COLOR_CONTROL_COLOR_LOOP_DIRECTION_ATTRIBUTE_ID 0x4003 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_COLOR_CONTROL_COLOR_LOOP_TIME_ATTRIBUTE_ID 0x4004 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_COLOR_CONTROL_COLOR_LOOP_START_ENHANCED_HUE_ATTRIBUTE_ID 0x4005 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_COLOR_CONTROL_COLOR_LOOP_STORED_ENHANCED_HUE_ATTRIBUTE_ID 0x4006 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_COLOR_CONTROL_COLOR_CAPABILITIES_ATTRIBUTE_ID 0x400A // Ver.: since zll-1.0-11-0037-10 -#define ZCL_COLOR_CONTROL_COLOR_TEMP_PHYSICAL_MIN_ATTRIBUTE_ID 0x400B // Ver.: since zll-1.0-11-0037-10 -#define ZCL_COLOR_CONTROL_COLOR_TEMP_PHYSICAL_MAX_ATTRIBUTE_ID 0x400C // Ver.: since zll-1.0-11-0037-10 -#define ZCL_COLOR_CONTROL_TEMPERATURE_LEVEL_MIN_MIREDS_ATTRIBUTE_ID 0x400D // Ver.: since l&o-1.0-15-0014-04 -#define ZCL_START_UP_COLOR_TEMPERATURE_MIREDS_ATTRIBUTE_ID 0x4010 // Ver.: since l&o-1.0-15-0014-04 -#define ZCL_COLOR_CONTROL_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_COLOR_CONTROL_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Ballast Configuration -// Cluster specification level: zcl6-errata-14-0129-15 - -// Client attributes -#define ZCL_BALLAST_CONFIGURATION_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_BALLAST_CONFIGURATION_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_PHYSICAL_MIN_LEVEL_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_PHYSICAL_MAX_LEVEL_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_BALLAST_STATUS_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_MIN_LEVEL_ATTRIBUTE_ID 0x0010 // Ver.: always -#define ZCL_MAX_LEVEL_ATTRIBUTE_ID 0x0011 // Ver.: always -#define ZCL_POWER_ON_LEVEL_ATTRIBUTE_ID 0x0012 // Ver.: always -#define ZCL_POWER_ON_FADE_TIME_ATTRIBUTE_ID 0x0013 // Ver.: always -#define ZCL_INTRINSIC_BALLAST_FACTOR_ATTRIBUTE_ID 0x0014 // Ver.: always -#define ZCL_BALLAST_FACTOR_ADJUSTMENT_ATTRIBUTE_ID 0x0015 // Ver.: always -#define ZCL_LAMP_QUALITY_ATTRIBUTE_ID 0x0020 // Ver.: always -#define ZCL_LAMP_TYPE_ATTRIBUTE_ID 0x0030 // Ver.: always -#define ZCL_LAMP_MANUFACTURER_ATTRIBUTE_ID 0x0031 // Ver.: always -#define ZCL_LAMP_RATED_HOURS_ATTRIBUTE_ID 0x0032 // Ver.: always -#define ZCL_LAMP_BURN_HOURS_ATTRIBUTE_ID 0x0033 // Ver.: always -#define ZCL_LAMP_ALARM_MODE_ATTRIBUTE_ID 0x0034 // Ver.: always -#define ZCL_LAMP_BURN_HOURS_TRIP_POINT_ATTRIBUTE_ID 0x0035 // Ver.: always -#define ZCL_BALLAST_CONFIGURATION_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_BALLAST_CONFIGURATION_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Illuminance Measurement -// Cluster specification level: zcl-6.0-15-02018-001 - -// Client attributes -#define ZCL_ILLUM_MEASUREMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_ILLUM_MEASUREMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_ILLUM_MEASURED_VALUE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_ILLUM_MIN_MEASURED_VALUE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_ILLUM_MAX_MEASURED_VALUE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_ILLUM_TOLERANCE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_MEASUREMENT_LIGHT_SENSOR_TYPE_ATTRIBUTE_ID 0x0004 // Ver.: always -#define ZCL_ILLUM_MEASUREMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_ILLUM_MEASUREMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Illuminance Level Sensing -// Cluster specification level: zcl-6.0-15-02018-001 - -// Client attributes -#define ZCL_ILLUM_LEVEL_SENSING_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_ILLUM_LEVEL_SENSING_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_LEVEL_STATUS_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_SENSING_LIGHT_SENSOR_TYPE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_ILLUMINANCE_TARGET_LEVEL_ATTRIBUTE_ID 0x0010 // Ver.: always -#define ZCL_ILLUM_LEVEL_SENSING_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_ILLUM_LEVEL_SENSING_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Temperature Measurement -// Cluster specification level: zcl-6.0-15-02018-001 - -// Client attributes -#define ZCL_TEMP_MEASUREMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_TEMP_MEASUREMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_TEMP_MEASURED_VALUE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_TEMP_MIN_MEASURED_VALUE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_TEMP_MAX_MEASURED_VALUE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_TEMP_TOLERANCE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_TEMP_MEASUREMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_TEMP_MEASUREMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Pressure Measurement -// Cluster specification level: zcl-6.0-15-02018-001 - -// Client attributes -#define ZCL_PRESSURE_MEASUREMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_PRESSURE_MEASUREMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_PRESSURE_MEASURED_VALUE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_PRESSURE_MIN_MEASURED_VALUE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_PRESSURE_MAX_MEASURED_VALUE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_PRESSURE_TOLERANCE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_PRESSURE_SCALED_VALUE_ATTRIBUTE_ID 0x0010 // Ver.: always -#define ZCL_PRESSURE_MIN_SCALED_VALUE_ATTRIBUTE_ID 0x0011 // Ver.: always -#define ZCL_PRESSURE_MAX_SCALED_VALUE_ATTRIBUTE_ID 0x0012 // Ver.: always -#define ZCL_PRESSURE_SCALED_TOLERANCE_ATTRIBUTE_ID 0x0013 // Ver.: always -#define ZCL_PRESSURE_SCALE_ATTRIBUTE_ID 0x0014 // Ver.: always -#define ZCL_PRESSURE_MEASUREMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_PRESSURE_MEASUREMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Flow Measurement -// Cluster specification level: zcl-6.0-15-02018-001 - -// Client attributes -#define ZCL_FLOW_MEASUREMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_FLOW_MEASUREMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_FLOW_MEASURED_VALUE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_FLOW_MIN_MEASURED_VALUE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_FLOW_MAX_MEASURED_VALUE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_FLOW_TOLERANCE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_FLOW_MEASUREMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_FLOW_MEASUREMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Relative Humidity Measurement -// Cluster specification level: zcl-6.0-15-02018-001 - -// Client attributes -#define ZCL_RELATIVE_HUMIDITY_MEASUREMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_RELATIVE_HUMIDITY_MEASUREMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_RELATIVE_HUMIDITY_MEASURED_VALUE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_RELATIVE_HUMIDITY_MIN_MEASURED_VALUE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_RELATIVE_HUMIDITY_MAX_MEASURED_VALUE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_RELATIVE_HUMIDITY_TOLERANCE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_RELATIVE_HUMIDITY_MEASUREMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_RELATIVE_HUMIDITY_MEASUREMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Occupancy Sensing -// Cluster specification level: zcl-6.0-15-02018-001 - -// Client attributes -#define ZCL_OCCUPANCY_SENSING_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_OCCUPANCY_SENSING_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_OCCUPANCY_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_OCCUPANCY_SENSOR_TYPE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_OCCUPANCY_SENSOR_TYPE_BITMAP_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_PIR_OCCUPIED_TO_UNOCCUPIED_DELAY_ATTRIBUTE_ID 0x0010 // Ver.: always -#define ZCL_PIR_UNOCCUPIED_TO_OCCUPIED_DELAY_ATTRIBUTE_ID 0x0011 // Ver.: always -#define ZCL_PIR_UNOCCUPIED_TO_OCCUPIED_THRESHOLD_ATTRIBUTE_ID 0x0012 // Ver.: always -#define ZCL_ULTRASONIC_OCCUPIED_TO_UNOCCUPIED_DELAY_ATTRIBUTE_ID 0x0020 // Ver.: always -#define ZCL_ULTRASONIC_UNOCCUPIED_TO_OCCUPIED_DELAY_ATTRIBUTE_ID 0x0021 // Ver.: always -#define ZCL_ULTRASONIC_UNOCCUPIED_TO_OCCUPIED_THRESHOLD_ATTRIBUTE_ID 0x0022 // Ver.: always -#define ZCL_PHYSICAL_CONTACT_OCCUPIED_TO_UNOCCUPIED_DELAY_ATTRIBUTE_ID 0x0030 // Ver.: always -#define ZCL_PHYSICAL_CONTACT_UNOCCUPIED_TO_OCCUPIED_DELAY_ATTRIBUTE_ID 0x0031 // Ver.: always -#define ZCL_PHYSICAL_CONTACT_UNOCCUPIED_TO_OCCUPIED_THRESHOLD_ATTRIBUTE_ID 0x0032 // Ver.: always -#define ZCL_OCCUPANCY_SENSING_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_OCCUPANCY_SENSING_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Carbon Monoxide Concentration Measurement -// Cluster specification level: zcl-6.0-15-02018-001 - -// Client attributes -#define ZCL_CARBON_MONOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_CARBON_MONOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_CARBON_MONOXIDE_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_CARBON_MONOXIDE_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_CARBON_MONOXIDE_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_CARBON_MONOXIDE_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_CARBON_MONOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_CARBON_MONOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Carbon Dioxide Concentration Measurement -// Cluster specification level: zcl-6.0-15-02018-001 - -// Client attributes -#define ZCL_CARBON_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_CARBON_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_CARBON_DIOXIDE_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_CARBON_DIOXIDE_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_CARBON_DIOXIDE_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_CARBON_DIOXIDE_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_CARBON_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_CARBON_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Ethylene Concentration Measurement -// Cluster specification level: zcl-6.0-15-02018-001 - -// Client attributes -#define ZCL_ETHYLENE_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_ETHYLENE_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_ETHYLENE_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_ETHYLENE_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_ETHYLENE_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_ETHYLENE_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_ETHYLENE_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_ETHYLENE_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Ethylene Oxide Concentration Measurement -// Cluster specification level: zcl-6.0-15-02018-001 - -// Client attributes -#define ZCL_ETHYLENE_OXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_ETHYLENE_OXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_ETHYLENE_OXIDE_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_ETHYLENE_OXIDE_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_ETHYLENE_OXIDE_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_ETHYLENE_OXIDE_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_ETHYLENE_OXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_ETHYLENE_OXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Hydrogen Concentration Measurement -// Cluster specification level: zcl-6.0-15-02018-001 - -// Client attributes -#define ZCL_HYDROGEN_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_HYDROGEN_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_HYDROGEN_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_HYDROGEN_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_HYDROGEN_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_HYDROGEN_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_HYDROGEN_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_HYDROGEN_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Hydrogen Sulphide Concentration Measurement -// Cluster specification level: zcl-6.0-15-02018-001 - -// Client attributes -#define ZCL_HYDROGEN_SULPHIDE_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_HYDROGEN_SULPHIDE_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_HYDROGEN_SULPHIDE_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_HYDROGEN_SULPHIDE_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_HYDROGEN_SULPHIDE_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_HYDROGEN_SULPHIDE_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_HYDROGEN_SULPHIDE_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_HYDROGEN_SULPHIDE_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Nitric Oxide Concentration Measurement -// Cluster specification level: zcl-6.0-15-02018-001 - -// Client attributes -#define ZCL_NITRIC_OXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_NITRIC_OXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_NITRIC_OXIDE_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_NITRIC_OXIDE_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_NITRIC_OXIDE_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_NITRIC_OXIDE_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_NITRIC_OXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_NITRIC_OXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Nitrogen Dioxide Concentration Measurement -// Cluster specification level: zcl-6.0-15-02018-001 - -// Client attributes -#define ZCL_NITROGEN_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_NITROGEN_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_NITROGEN_DIOXIDE_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_NITROGEN_DIOXIDE_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_NITROGEN_DIOXIDE_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_NITROGEN_DIOXIDE_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_NITROGEN_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_NITROGEN_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Oxygen Concentration Measurement -// Cluster specification level: zcl-6.0-15-02018-001 - -// Client attributes -#define ZCL_OXYGEN_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_OXYGEN_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_OXYGEN_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_OXYGEN_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_OXYGEN_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_OXYGEN_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_OXYGEN_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_OXYGEN_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Ozone Concentration Measurement -// Cluster specification level: zcl-6.0-15-02018-001 - -// Client attributes -#define ZCL_OZONE_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_OZONE_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_OZONE_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_OZONE_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_OZONE_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_OZONE_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_OZONE_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_OZONE_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Sulfur Dioxide Concentration Measurement -// Cluster specification level: zcl-6.0-15-02018-001 - -// Client attributes -#define ZCL_SULFUR_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_SULFUR_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_SULFUR_DIOXIDE_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_SULFUR_DIOXIDE_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_SULFUR_DIOXIDE_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_SULFUR_DIOXIDE_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_SULFUR_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_SULFUR_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Dissolved Oxygen Concentration Measurement -// Cluster specification level: zcl-6.0-15-02018-001 - -// Client attributes -#define ZCL_DISSOLVED_OXYGEN_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_DISSOLVED_OXYGEN_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_DISSOLVED_OXYGEN_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_DISSOLVED_OXYGEN_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_DISSOLVED_OXYGEN_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_DISSOLVED_OXYGEN_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_DISSOLVED_OXYGEN_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_DISSOLVED_OXYGEN_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Bromate Concentration Measurement -// Cluster specification level: zcl-6.0-15-02018-001 - -// Client attributes -#define ZCL_BROMATE_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_BROMATE_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_BROMATE_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_BROMATE_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_BROMATE_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_BROMATE_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_BROMATE_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_BROMATE_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Chloramines Concentration Measurement -// Cluster specification level: zcl-6.0-15-02018-001 - -// Client attributes -#define ZCL_CHLORAMINES_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_CHLORAMINES_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_CHLORAMINES_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_CHLORAMINES_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_CHLORAMINES_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_CHLORAMINES_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_CHLORAMINES_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_CHLORAMINES_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Chlorine Concentration Measurement -// Cluster specification level: zcl-6.0-15-02018-001 - -// Client attributes -#define ZCL_CHLORINE_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_CHLORINE_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_CHLORINE_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_CHLORINE_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_CHLORINE_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_CHLORINE_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_CHLORINE_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_CHLORINE_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Fecal coliform and E. Coli Concentration Measurement -// Cluster specification level: zcl-6.0-15-02018-001 - -// Client attributes -#define ZCL_FECAL_COLIFORM_AND_E_COLI_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_FECAL_COLIFORM_AND_E_COLI_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_FECAL_COLIFORM_AND_E_COLI_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_FECAL_COLIFORM_AND_E_COLI_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_FECAL_COLIFORM_AND_E_COLI_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_FECAL_COLIFORM_AND_E_COLI_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_FECAL_COLIFORM_AND_E_COLI_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_FECAL_COLIFORM_AND_E_COLI_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Fluoride Concentration Measurement -// Cluster specification level: zcl-6.0-15-02018-001 - -// Client attributes -#define ZCL_FLUORIDE_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_FLUORIDE_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_FLUORIDE_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_FLUORIDE_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_FLUORIDE_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_FLUORIDE_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_FLUORIDE_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_FLUORIDE_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Haloacetic Acids Concentration Measurement -// Cluster specification level: zcl-6.0-15-02018-001 - -// Client attributes -#define ZCL_HALOACETIC_ACIDS_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_HALOACETIC_ACIDS_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_HALOACETIC_ACIDS_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_HALOACETIC_ACIDS_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_HALOACETIC_ACIDS_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_HALOACETIC_ACIDS_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_HALOACETIC_ACIDS_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_HALOACETIC_ACIDS_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Total Trihalomethanes Concentration Measurement -// Cluster specification level: zcl-6.0-15-02018-001 - -// Client attributes -#define ZCL_TOTAL_TRIHALOMETHANES_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_TOTAL_TRIHALOMETHANES_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_TOTAL_TRIHALOMETHANES_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_TOTAL_TRIHALOMETHANES_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_TOTAL_TRIHALOMETHANES_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_TOTAL_TRIHALOMETHANES_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_TOTAL_TRIHALOMETHANES_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_TOTAL_TRIHALOMETHANES_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Total Coliform Bacteria Concentration Measurement -// Cluster specification level: zcl-6.0-15-02018-001 - -// Client attributes -#define ZCL_TOTAL_COLIFORM_BACTERIA_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_TOTAL_COLIFORM_BACTERIA_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_TOTAL_COLIFORM_BACTERIA_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_TOTAL_COLIFORM_BACTERIA_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_TOTAL_COLIFORM_BACTERIA_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_TOTAL_COLIFORM_BACTERIA_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_TOTAL_COLIFORM_BACTERIA_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_TOTAL_COLIFORM_BACTERIA_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Turbidity Concentration Measurement -// Cluster specification level: zcl-6.0-15-02018-001 - -// Client attributes -#define ZCL_TURBIDITY_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_TURBIDITY_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_TURBIDITY_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_TURBIDITY_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_TURBIDITY_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_TURBIDITY_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_TURBIDITY_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_TURBIDITY_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Copper Concentration Measurement -// Cluster specification level: zcl-6.0-15-02018-001 - -// Client attributes -#define ZCL_COPPER_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_COPPER_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_COPPER_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_COPPER_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_COPPER_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_COPPER_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_COPPER_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_COPPER_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Lead Concentration Measurement -// Cluster specification level: zcl-6.0-15-02018-001 - -// Client attributes -#define ZCL_LEAD_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_LEAD_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_LEAD_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_LEAD_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_LEAD_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_LEAD_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_LEAD_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_LEAD_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Manganese Concentration Measurement -// Cluster specification level: zcl-6.0-15-02018-001 - -// Client attributes -#define ZCL_MANGANESE_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_MANGANESE_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_MANGANESE_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_MANGANESE_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_MANGANESE_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_MANGANESE_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_MANGANESE_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_MANGANESE_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Sulfate Concentration Measurement -// Cluster specification level: zcl-6.0-15-02018-001 - -// Client attributes -#define ZCL_SULFATE_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_SULFATE_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_SULFATE_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_SULFATE_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_SULFATE_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_SULFATE_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_SULFATE_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_SULFATE_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Bromodichloromethane Concentration Measurement -// Cluster specification level: zcl-6.0-15-02018-001 - -// Client attributes -#define ZCL_BROMODICHLOROMETHANE_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_BROMODICHLOROMETHANE_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_BROMODICHLOROMETHANE_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_BROMODICHLOROMETHANE_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_BROMODICHLOROMETHANE_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_BROMODICHLOROMETHANE_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_BROMODICHLOROMETHANE_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_BROMODICHLOROMETHANE_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Bromoform Concentration Measurement -// Cluster specification level: zcl-6.0-15-02018-001 - -// Client attributes -#define ZCL_BROMOFORM_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_BROMOFORM_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_BROMOFORM_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_BROMOFORM_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_BROMOFORM_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_BROMOFORM_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_BROMOFORM_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_BROMOFORM_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Chlorodibromomethane Concentration Measurement -// Cluster specification level: zcl-6.0-15-02018-001 - -// Client attributes -#define ZCL_CHLORODIBROMOMETHANE_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_CHLORODIBROMOMETHANE_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_CHLORODIBROMOMETHANE_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_CHLORODIBROMOMETHANE_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_CHLORODIBROMOMETHANE_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_CHLORODIBROMOMETHANE_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_CHLORODIBROMOMETHANE_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_CHLORODIBROMOMETHANE_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Chloroform Concentration Measurement -// Cluster specification level: zcl-6.0-15-02018-001 - -// Client attributes -#define ZCL_CHLOROFORM_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_CHLOROFORM_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_CHLOROFORM_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_CHLOROFORM_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_CHLOROFORM_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_CHLOROFORM_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_CHLOROFORM_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_CHLOROFORM_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Sodium Concentration Measurement -// Cluster specification level: zcl-6.0-15-02018-001 - -// Client attributes -#define ZCL_SODIUM_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_SODIUM_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_SODIUM_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_SODIUM_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_SODIUM_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_SODIUM_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_SODIUM_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_SODIUM_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: IAS Zone -// Cluster specification level: zcl-6.0-15-02018-001 - -// Client attributes -#define ZCL_IAS_ZONE_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_IAS_ZONE_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_ZONE_STATE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_ZONE_TYPE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_ZONE_STATUS_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_IAS_CIE_ADDRESS_ATTRIBUTE_ID 0x0010 // Ver.: always -#define ZCL_ZONE_ID_ATTRIBUTE_ID 0x0011 // Ver.: always -#define ZCL_NUMBER_OF_ZONE_SENSITIVITY_LEVELS_SUPPORTED_ATTRIBUTE_ID 0x0012 // Ver.: always -#define ZCL_CURRENT_ZONE_SENSITIVITY_LEVEL_ATTRIBUTE_ID 0x0013 // Ver.: always -#define ZCL_IAS_ZONE_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_IAS_ZONE_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: IAS ACE -// Cluster specification level: zcl-6.0-15-02018-001 - -// Client attributes -#define ZCL_IAS_ACE_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_IAS_ACE_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_IAS_ACE_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_IAS_ACE_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: IAS WD -// Cluster specification level: zcl-6.0-15-02018-001 - -// Client attributes -#define ZCL_IAS_WD_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_IAS_WD_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_MAX_DURATION_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_IAS_WD_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_IAS_WD_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Generic Tunnel -// Cluster specification level: cba-1.0-05-3516-12 - -// Client attributes -#define ZCL_GENERIC_TUNNEL_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_GENERIC_TUNNEL_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_MAXIMUM_INCOMING_TRANSFER_SIZE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_MAXIMUM_OUTGOING_TRANSFER_SIZE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_PROTOCOL_ADDRESS_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_GENERIC_TUNNEL_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_GENERIC_TUNNEL_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: BACnet Protocol Tunnel -// Cluster specification level: cba-1.0-05-3516-12 - -// Client attributes -#define ZCL_BACNET_PROTOCOL_TUNNEL_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_BACNET_PROTOCOL_TUNNEL_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_BACNET_PROTOCOL_TUNNEL_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_BACNET_PROTOCOL_TUNNEL_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: 11073 Protocol Tunnel -// Cluster specification level: hc-1.0-07-5360-15 - -// Client attributes -#define ZCL_11073_PROTOCOL_TUNNEL_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_11073_PROTOCOL_TUNNEL_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_DEVICE_ID_LIST_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_MANAGER_TARGET_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_MANAGER_ENDPOINT_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_CONNECTED_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_PREEMPTIBLE_ATTRIBUTE_ID 0x0004 // Ver.: always -#define ZCL_IDLE_TIMEOUT_ATTRIBUTE_ID 0x0005 // Ver.: always -#define ZCL_11073_PROTOCOL_TUNNEL_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_11073_PROTOCOL_TUNNEL_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: ISO 7816 Protocol Tunnel -// Cluster specification level: ta-1.0-07-5307-07 - -// Client attributes -#define ZCL_ISO7816_PROTOCOL_TUNNEL_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_ISO7816_PROTOCOL_TUNNEL_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_ISO7816_PROTOCOL_TUNNEL_STATUS_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_ISO7816_PROTOCOL_TUNNEL_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_ISO7816_PROTOCOL_TUNNEL_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Price -// Cluster specification level: se-1.2b-15-0131-02 - -// Client attributes -#define ZCL_PRICE_INCREASE_RANDOMIZE_MINUTES_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_PRICE_DECREASE_RANDOMIZE_MINUTES_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_COMMODITY_TYPE_CLIENT_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_PRICE_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_PRICE_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_TIER1_PRICE_LABEL_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_TIER2_PRICE_LABEL_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_TIER3_PRICE_LABEL_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_TIER4_PRICE_LABEL_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_TIER5_PRICE_LABEL_ATTRIBUTE_ID 0x0004 // Ver.: always -#define ZCL_TIER6_PRICE_LABEL_ATTRIBUTE_ID 0x0005 // Ver.: always -#define ZCL_TIER7_PRICE_LABEL_ATTRIBUTE_ID 0x0006 // Ver.: always -#define ZCL_TIER8_PRICE_LABEL_ATTRIBUTE_ID 0x0007 // Ver.: always -#define ZCL_TIER9_PRICE_LABEL_ATTRIBUTE_ID 0x0008 // Ver.: always -#define ZCL_TIER10_PRICE_LABEL_ATTRIBUTE_ID 0x0009 // Ver.: always -#define ZCL_TIER11_PRICE_LABEL_ATTRIBUTE_ID 0x000A // Ver.: always -#define ZCL_TIER12_PRICE_LABEL_ATTRIBUTE_ID 0x000B // Ver.: always -#define ZCL_TIER13_PRICE_LABEL_ATTRIBUTE_ID 0x000C // Ver.: always -#define ZCL_TIER14_PRICE_LABEL_ATTRIBUTE_ID 0x000D // Ver.: always -#define ZCL_TIER15_PRICE_LABEL_ATTRIBUTE_ID 0x000E // Ver.: always -#define ZCL_TIER16_PRICE_LABEL_ATTRIBUTE_ID 0x000F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER17_PRICE_LABEL_ATTRIBUTE_ID 0x0010 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER18_PRICE_LABEL_ATTRIBUTE_ID 0x0011 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER19_PRICE_LABEL_ATTRIBUTE_ID 0x0012 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER20_PRICE_LABEL_ATTRIBUTE_ID 0x0013 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER21_PRICE_LABEL_ATTRIBUTE_ID 0x0014 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER22_PRICE_LABEL_ATTRIBUTE_ID 0x0015 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER23_PRICE_LABEL_ATTRIBUTE_ID 0x0016 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER24_PRICE_LABEL_ATTRIBUTE_ID 0x0017 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER25_PRICE_LABEL_ATTRIBUTE_ID 0x0018 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER26_PRICE_LABEL_ATTRIBUTE_ID 0x0019 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER27_PRICE_LABEL_ATTRIBUTE_ID 0x001A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER28_PRICE_LABEL_ATTRIBUTE_ID 0x001B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER29_PRICE_LABEL_ATTRIBUTE_ID 0x001C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER30_PRICE_LABEL_ATTRIBUTE_ID 0x001D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER31_PRICE_LABEL_ATTRIBUTE_ID 0x001E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER32_PRICE_LABEL_ATTRIBUTE_ID 0x001F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER33_PRICE_LABEL_ATTRIBUTE_ID 0x0020 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER34_PRICE_LABEL_ATTRIBUTE_ID 0x0021 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER35_PRICE_LABEL_ATTRIBUTE_ID 0x0022 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER36_PRICE_LABEL_ATTRIBUTE_ID 0x0023 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER37_PRICE_LABEL_ATTRIBUTE_ID 0x0024 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER38_PRICE_LABEL_ATTRIBUTE_ID 0x0025 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER39_PRICE_LABEL_ATTRIBUTE_ID 0x0026 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER40_PRICE_LABEL_ATTRIBUTE_ID 0x0027 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER41_PRICE_LABEL_ATTRIBUTE_ID 0x0028 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER42_PRICE_LABEL_ATTRIBUTE_ID 0x0029 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER43_PRICE_LABEL_ATTRIBUTE_ID 0x002A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER44_PRICE_LABEL_ATTRIBUTE_ID 0x002B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER45_PRICE_LABEL_ATTRIBUTE_ID 0x002C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER46_PRICE_LABEL_ATTRIBUTE_ID 0x002D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER47_PRICE_LABEL_ATTRIBUTE_ID 0x002E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER48_PRICE_LABEL_ATTRIBUTE_ID 0x002F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_BLOCK1_THRESHOLD_ATTRIBUTE_ID 0x0100 // Ver.: always -#define ZCL_BLOCK2_THRESHOLD_ATTRIBUTE_ID 0x0101 // Ver.: always -#define ZCL_BLOCK3_THRESHOLD_ATTRIBUTE_ID 0x0102 // Ver.: always -#define ZCL_BLOCK4_THRESHOLD_ATTRIBUTE_ID 0x0103 // Ver.: always -#define ZCL_BLOCK5_THRESHOLD_ATTRIBUTE_ID 0x0104 // Ver.: always -#define ZCL_BLOCK6_THRESHOLD_ATTRIBUTE_ID 0x0105 // Ver.: always -#define ZCL_BLOCK7_THRESHOLD_ATTRIBUTE_ID 0x0106 // Ver.: always -#define ZCL_BLOCK8_THRESHOLD_ATTRIBUTE_ID 0x0107 // Ver.: always -#define ZCL_BLOCK9_THRESHOLD_ATTRIBUTE_ID 0x0108 // Ver.: always -#define ZCL_BLOCK10_THRESHOLD_ATTRIBUTE_ID 0x0109 // Ver.: always -#define ZCL_BLOCK11_THRESHOLD_ATTRIBUTE_ID 0x010A // Ver.: always -#define ZCL_BLOCK12_THRESHOLD_ATTRIBUTE_ID 0x010B // Ver.: always -#define ZCL_BLOCK13_THRESHOLD_ATTRIBUTE_ID 0x010C // Ver.: always -#define ZCL_BLOCK14_THRESHOLD_ATTRIBUTE_ID 0x010D // Ver.: always -#define ZCL_BLOCK15_THRESHOLD_ATTRIBUTE_ID 0x010E // Ver.: always -#define ZCL_BLOCK_THRESHOLD_COUNT_ATTRIBUTE_ID 0x010F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER1_BLOCK1_THRESHOLD_ATTRIBUTE_ID 0x0110 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER1_BLOCK2_THRESHOLD_ATTRIBUTE_ID 0x0111 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER1_BLOCK3_THRESHOLD_ATTRIBUTE_ID 0x0112 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER1_BLOCK4_THRESHOLD_ATTRIBUTE_ID 0x0113 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER1_BLOCK5_THRESHOLD_ATTRIBUTE_ID 0x0114 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER1_BLOCK6_THRESHOLD_ATTRIBUTE_ID 0x0115 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER1_BLOCK7_THRESHOLD_ATTRIBUTE_ID 0x0116 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER1_BLOCK8_THRESHOLD_ATTRIBUTE_ID 0x0117 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER1_BLOCK9_THRESHOLD_ATTRIBUTE_ID 0x0118 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER1_BLOCK10_THRESHOLD_ATTRIBUTE_ID 0x0119 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER1_BLOCK11_THRESHOLD_ATTRIBUTE_ID 0x011A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER1_BLOCK12_THRESHOLD_ATTRIBUTE_ID 0x011B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER1_BLOCK13_THRESHOLD_ATTRIBUTE_ID 0x011C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER1_BLOCK14_THRESHOLD_ATTRIBUTE_ID 0x011D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER1_BLOCK15_THRESHOLD_ATTRIBUTE_ID 0x011E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER1_BLOCK_THRESHOLD_COUNT_ATTRIBUTE_ID 0x011F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER2_BLOCK1_THRESHOLD_ATTRIBUTE_ID 0x0120 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER2_BLOCK2_THRESHOLD_ATTRIBUTE_ID 0x0121 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER2_BLOCK3_THRESHOLD_ATTRIBUTE_ID 0x0122 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER2_BLOCK4_THRESHOLD_ATTRIBUTE_ID 0x0123 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER2_BLOCK5_THRESHOLD_ATTRIBUTE_ID 0x0124 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER2_BLOCK6_THRESHOLD_ATTRIBUTE_ID 0x0125 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER2_BLOCK7_THRESHOLD_ATTRIBUTE_ID 0x0126 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER2_BLOCK8_THRESHOLD_ATTRIBUTE_ID 0x0127 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER2_BLOCK9_THRESHOLD_ATTRIBUTE_ID 0x0128 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER2_BLOCK10_THRESHOLD_ATTRIBUTE_ID 0x0129 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER2_BLOCK11_THRESHOLD_ATTRIBUTE_ID 0x012A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER2_BLOCK12_THRESHOLD_ATTRIBUTE_ID 0x012B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER2_BLOCK13_THRESHOLD_ATTRIBUTE_ID 0x012C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER2_BLOCK14_THRESHOLD_ATTRIBUTE_ID 0x012D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER2_BLOCK15_THRESHOLD_ATTRIBUTE_ID 0x012E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER2_BLOCK_THRESHOLD_COUNT_ATTRIBUTE_ID 0x012F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER3_BLOCK1_THRESHOLD_ATTRIBUTE_ID 0x0130 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER3_BLOCK2_THRESHOLD_ATTRIBUTE_ID 0x0131 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER3_BLOCK3_THRESHOLD_ATTRIBUTE_ID 0x0132 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER3_BLOCK4_THRESHOLD_ATTRIBUTE_ID 0x0133 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER3_BLOCK5_THRESHOLD_ATTRIBUTE_ID 0x0134 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER3_BLOCK6_THRESHOLD_ATTRIBUTE_ID 0x0135 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER3_BLOCK7_THRESHOLD_ATTRIBUTE_ID 0x0136 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER3_BLOCK8_THRESHOLD_ATTRIBUTE_ID 0x0137 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER3_BLOCK9_THRESHOLD_ATTRIBUTE_ID 0x0138 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER3_BLOCK10_THRESHOLD_ATTRIBUTE_ID 0x0139 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER3_BLOCK11_THRESHOLD_ATTRIBUTE_ID 0x013A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER3_BLOCK12_THRESHOLD_ATTRIBUTE_ID 0x013B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER3_BLOCK13_THRESHOLD_ATTRIBUTE_ID 0x013C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER3_BLOCK14_THRESHOLD_ATTRIBUTE_ID 0x013D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER3_BLOCK15_THRESHOLD_ATTRIBUTE_ID 0x013E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER3_BLOCK_THRESHOLD_COUNT_ATTRIBUTE_ID 0x013F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER4_BLOCK1_THRESHOLD_ATTRIBUTE_ID 0x0140 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER4_BLOCK2_THRESHOLD_ATTRIBUTE_ID 0x0141 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER4_BLOCK3_THRESHOLD_ATTRIBUTE_ID 0x0142 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER4_BLOCK4_THRESHOLD_ATTRIBUTE_ID 0x0143 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER4_BLOCK5_THRESHOLD_ATTRIBUTE_ID 0x0144 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER4_BLOCK6_THRESHOLD_ATTRIBUTE_ID 0x0145 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER4_BLOCK7_THRESHOLD_ATTRIBUTE_ID 0x0146 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER4_BLOCK8_THRESHOLD_ATTRIBUTE_ID 0x0147 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER4_BLOCK9_THRESHOLD_ATTRIBUTE_ID 0x0148 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER4_BLOCK10_THRESHOLD_ATTRIBUTE_ID 0x0149 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER4_BLOCK11_THRESHOLD_ATTRIBUTE_ID 0x014A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER4_BLOCK12_THRESHOLD_ATTRIBUTE_ID 0x014B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER4_BLOCK13_THRESHOLD_ATTRIBUTE_ID 0x014C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER4_BLOCK14_THRESHOLD_ATTRIBUTE_ID 0x014D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER4_BLOCK15_THRESHOLD_ATTRIBUTE_ID 0x014E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER4_BLOCK_THRESHOLD_COUNT_ATTRIBUTE_ID 0x014F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER5_BLOCK1_THRESHOLD_ATTRIBUTE_ID 0x0150 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER5_BLOCK2_THRESHOLD_ATTRIBUTE_ID 0x0151 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER5_BLOCK3_THRESHOLD_ATTRIBUTE_ID 0x0152 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER5_BLOCK4_THRESHOLD_ATTRIBUTE_ID 0x0153 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER5_BLOCK5_THRESHOLD_ATTRIBUTE_ID 0x0154 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER5_BLOCK6_THRESHOLD_ATTRIBUTE_ID 0x0155 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER5_BLOCK7_THRESHOLD_ATTRIBUTE_ID 0x0156 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER5_BLOCK8_THRESHOLD_ATTRIBUTE_ID 0x0157 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER5_BLOCK9_THRESHOLD_ATTRIBUTE_ID 0x0158 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER5_BLOCK10_THRESHOLD_ATTRIBUTE_ID 0x0159 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER5_BLOCK11_THRESHOLD_ATTRIBUTE_ID 0x015A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER5_BLOCK12_THRESHOLD_ATTRIBUTE_ID 0x015B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER5_BLOCK13_THRESHOLD_ATTRIBUTE_ID 0x015C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER5_BLOCK14_THRESHOLD_ATTRIBUTE_ID 0x015D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER5_BLOCK15_THRESHOLD_ATTRIBUTE_ID 0x015E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER5_BLOCK_THRESHOLD_COUNT_ATTRIBUTE_ID 0x015F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER6_BLOCK1_THRESHOLD_ATTRIBUTE_ID 0x0160 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER6_BLOCK2_THRESHOLD_ATTRIBUTE_ID 0x0161 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER6_BLOCK3_THRESHOLD_ATTRIBUTE_ID 0x0162 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER6_BLOCK4_THRESHOLD_ATTRIBUTE_ID 0x0163 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER6_BLOCK5_THRESHOLD_ATTRIBUTE_ID 0x0164 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER6_BLOCK6_THRESHOLD_ATTRIBUTE_ID 0x0165 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER6_BLOCK7_THRESHOLD_ATTRIBUTE_ID 0x0166 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER6_BLOCK8_THRESHOLD_ATTRIBUTE_ID 0x0167 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER6_BLOCK9_THRESHOLD_ATTRIBUTE_ID 0x0168 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER6_BLOCK10_THRESHOLD_ATTRIBUTE_ID 0x0169 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER6_BLOCK11_THRESHOLD_ATTRIBUTE_ID 0x016A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER6_BLOCK12_THRESHOLD_ATTRIBUTE_ID 0x016B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER6_BLOCK13_THRESHOLD_ATTRIBUTE_ID 0x016C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER6_BLOCK14_THRESHOLD_ATTRIBUTE_ID 0x016D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER6_BLOCK15_THRESHOLD_ATTRIBUTE_ID 0x016E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER6_BLOCK_THRESHOLD_COUNT_ATTRIBUTE_ID 0x016F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER7_BLOCK1_THRESHOLD_ATTRIBUTE_ID 0x0170 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER7_BLOCK2_THRESHOLD_ATTRIBUTE_ID 0x0171 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER7_BLOCK3_THRESHOLD_ATTRIBUTE_ID 0x0172 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER7_BLOCK4_THRESHOLD_ATTRIBUTE_ID 0x0173 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER7_BLOCK5_THRESHOLD_ATTRIBUTE_ID 0x0174 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER7_BLOCK6_THRESHOLD_ATTRIBUTE_ID 0x0175 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER7_BLOCK7_THRESHOLD_ATTRIBUTE_ID 0x0176 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER7_BLOCK8_THRESHOLD_ATTRIBUTE_ID 0x0177 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER7_BLOCK9_THRESHOLD_ATTRIBUTE_ID 0x0178 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER7_BLOCK10_THRESHOLD_ATTRIBUTE_ID 0x0179 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER7_BLOCK11_THRESHOLD_ATTRIBUTE_ID 0x017A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER7_BLOCK12_THRESHOLD_ATTRIBUTE_ID 0x017B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER7_BLOCK13_THRESHOLD_ATTRIBUTE_ID 0x017C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER7_BLOCK14_THRESHOLD_ATTRIBUTE_ID 0x017D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER7_BLOCK15_THRESHOLD_ATTRIBUTE_ID 0x017E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER7_BLOCK_THRESHOLD_COUNT_ATTRIBUTE_ID 0x017F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER8_BLOCK1_THRESHOLD_ATTRIBUTE_ID 0x0180 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER8_BLOCK2_THRESHOLD_ATTRIBUTE_ID 0x0181 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER8_BLOCK3_THRESHOLD_ATTRIBUTE_ID 0x0182 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER8_BLOCK4_THRESHOLD_ATTRIBUTE_ID 0x0183 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER8_BLOCK5_THRESHOLD_ATTRIBUTE_ID 0x0184 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER8_BLOCK6_THRESHOLD_ATTRIBUTE_ID 0x0185 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER8_BLOCK7_THRESHOLD_ATTRIBUTE_ID 0x0186 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER8_BLOCK8_THRESHOLD_ATTRIBUTE_ID 0x0187 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER8_BLOCK9_THRESHOLD_ATTRIBUTE_ID 0x0188 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER8_BLOCK10_THRESHOLD_ATTRIBUTE_ID 0x0189 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER8_BLOCK11_THRESHOLD_ATTRIBUTE_ID 0x018A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER8_BLOCK12_THRESHOLD_ATTRIBUTE_ID 0x018B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER8_BLOCK13_THRESHOLD_ATTRIBUTE_ID 0x018C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER8_BLOCK14_THRESHOLD_ATTRIBUTE_ID 0x018D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER8_BLOCK15_THRESHOLD_ATTRIBUTE_ID 0x018E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER8_BLOCK_THRESHOLD_COUNT_ATTRIBUTE_ID 0x018F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER9_BLOCK1_THRESHOLD_ATTRIBUTE_ID 0x0190 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER9_BLOCK2_THRESHOLD_ATTRIBUTE_ID 0x0191 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER9_BLOCK3_THRESHOLD_ATTRIBUTE_ID 0x0192 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER9_BLOCK4_THRESHOLD_ATTRIBUTE_ID 0x0193 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER9_BLOCK5_THRESHOLD_ATTRIBUTE_ID 0x0194 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER9_BLOCK6_THRESHOLD_ATTRIBUTE_ID 0x0195 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER9_BLOCK7_THRESHOLD_ATTRIBUTE_ID 0x0196 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER9_BLOCK8_THRESHOLD_ATTRIBUTE_ID 0x0197 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER9_BLOCK9_THRESHOLD_ATTRIBUTE_ID 0x0198 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER9_BLOCK10_THRESHOLD_ATTRIBUTE_ID 0x0199 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER9_BLOCK11_THRESHOLD_ATTRIBUTE_ID 0x019A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER9_BLOCK12_THRESHOLD_ATTRIBUTE_ID 0x019B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER9_BLOCK13_THRESHOLD_ATTRIBUTE_ID 0x019C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER9_BLOCK14_THRESHOLD_ATTRIBUTE_ID 0x019D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER9_BLOCK15_THRESHOLD_ATTRIBUTE_ID 0x019E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER9_BLOCK_THRESHOLD_COUNT_ATTRIBUTE_ID 0x019F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER10_BLOCK1_THRESHOLD_ATTRIBUTE_ID 0x01A0 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER10_BLOCK2_THRESHOLD_ATTRIBUTE_ID 0x01A1 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER10_BLOCK3_THRESHOLD_ATTRIBUTE_ID 0x01A2 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER10_BLOCK4_THRESHOLD_ATTRIBUTE_ID 0x01A3 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER10_BLOCK5_THRESHOLD_ATTRIBUTE_ID 0x01A4 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER10_BLOCK6_THRESHOLD_ATTRIBUTE_ID 0x01A5 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER10_BLOCK7_THRESHOLD_ATTRIBUTE_ID 0x01A6 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER10_BLOCK8_THRESHOLD_ATTRIBUTE_ID 0x01A7 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER10_BLOCK9_THRESHOLD_ATTRIBUTE_ID 0x01A8 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER10_BLOCK10_THRESHOLD_ATTRIBUTE_ID 0x01A9 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER10_BLOCK11_THRESHOLD_ATTRIBUTE_ID 0x01AA // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER10_BLOCK12_THRESHOLD_ATTRIBUTE_ID 0x01AB // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER10_BLOCK13_THRESHOLD_ATTRIBUTE_ID 0x01AC // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER10_BLOCK14_THRESHOLD_ATTRIBUTE_ID 0x01AD // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER10_BLOCK15_THRESHOLD_ATTRIBUTE_ID 0x01AE // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER10_BLOCK_THRESHOLD_COUNT_ATTRIBUTE_ID 0x01AF // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER11_BLOCK1_THRESHOLD_ATTRIBUTE_ID 0x01B0 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER11_BLOCK2_THRESHOLD_ATTRIBUTE_ID 0x01B1 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER11_BLOCK3_THRESHOLD_ATTRIBUTE_ID 0x01B2 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER11_BLOCK4_THRESHOLD_ATTRIBUTE_ID 0x01B3 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER11_BLOCK5_THRESHOLD_ATTRIBUTE_ID 0x01B4 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER11_BLOCK6_THRESHOLD_ATTRIBUTE_ID 0x01B5 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER11_BLOCK7_THRESHOLD_ATTRIBUTE_ID 0x01B6 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER11_BLOCK8_THRESHOLD_ATTRIBUTE_ID 0x01B7 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER11_BLOCK9_THRESHOLD_ATTRIBUTE_ID 0x01B8 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER11_BLOCK10_THRESHOLD_ATTRIBUTE_ID 0x01B9 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER11_BLOCK11_THRESHOLD_ATTRIBUTE_ID 0x01BA // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER11_BLOCK12_THRESHOLD_ATTRIBUTE_ID 0x01BB // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER11_BLOCK13_THRESHOLD_ATTRIBUTE_ID 0x01BC // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER11_BLOCK14_THRESHOLD_ATTRIBUTE_ID 0x01BD // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER11_BLOCK15_THRESHOLD_ATTRIBUTE_ID 0x01BE // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER11_BLOCK_THRESHOLD_COUNT_ATTRIBUTE_ID 0x01BF // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER12_BLOCK1_THRESHOLD_ATTRIBUTE_ID 0x01C0 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER12_BLOCK2_THRESHOLD_ATTRIBUTE_ID 0x01C1 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER12_BLOCK3_THRESHOLD_ATTRIBUTE_ID 0x01C2 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER12_BLOCK4_THRESHOLD_ATTRIBUTE_ID 0x01C3 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER12_BLOCK5_THRESHOLD_ATTRIBUTE_ID 0x01C4 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER12_BLOCK6_THRESHOLD_ATTRIBUTE_ID 0x01C5 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER12_BLOCK7_THRESHOLD_ATTRIBUTE_ID 0x01C6 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER12_BLOCK8_THRESHOLD_ATTRIBUTE_ID 0x01C7 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER12_BLOCK9_THRESHOLD_ATTRIBUTE_ID 0x01C8 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER12_BLOCK10_THRESHOLD_ATTRIBUTE_ID 0x01C9 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER12_BLOCK11_THRESHOLD_ATTRIBUTE_ID 0x01CA // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER12_BLOCK12_THRESHOLD_ATTRIBUTE_ID 0x01CB // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER12_BLOCK13_THRESHOLD_ATTRIBUTE_ID 0x01CC // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER12_BLOCK14_THRESHOLD_ATTRIBUTE_ID 0x01CD // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER12_BLOCK15_THRESHOLD_ATTRIBUTE_ID 0x01CE // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER12_BLOCK_THRESHOLD_COUNT_ATTRIBUTE_ID 0x01CF // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER13_BLOCK1_THRESHOLD_ATTRIBUTE_ID 0x01D0 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER13_BLOCK2_THRESHOLD_ATTRIBUTE_ID 0x01D1 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER13_BLOCK3_THRESHOLD_ATTRIBUTE_ID 0x01D2 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER13_BLOCK4_THRESHOLD_ATTRIBUTE_ID 0x01D3 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER13_BLOCK5_THRESHOLD_ATTRIBUTE_ID 0x01D4 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER13_BLOCK6_THRESHOLD_ATTRIBUTE_ID 0x01D5 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER13_BLOCK7_THRESHOLD_ATTRIBUTE_ID 0x01D6 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER13_BLOCK8_THRESHOLD_ATTRIBUTE_ID 0x01D7 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER13_BLOCK9_THRESHOLD_ATTRIBUTE_ID 0x01D8 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER13_BLOCK10_THRESHOLD_ATTRIBUTE_ID 0x01D9 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER13_BLOCK11_THRESHOLD_ATTRIBUTE_ID 0x01DA // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER13_BLOCK12_THRESHOLD_ATTRIBUTE_ID 0x01DB // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER13_BLOCK13_THRESHOLD_ATTRIBUTE_ID 0x01DC // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER13_BLOCK14_THRESHOLD_ATTRIBUTE_ID 0x01DD // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER13_BLOCK15_THRESHOLD_ATTRIBUTE_ID 0x01DE // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER13_BLOCK_THRESHOLD_COUNT_ATTRIBUTE_ID 0x01DF // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER14_BLOCK1_THRESHOLD_ATTRIBUTE_ID 0x01E0 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER14_BLOCK2_THRESHOLD_ATTRIBUTE_ID 0x01E1 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER14_BLOCK3_THRESHOLD_ATTRIBUTE_ID 0x01E2 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER14_BLOCK4_THRESHOLD_ATTRIBUTE_ID 0x01E3 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER14_BLOCK5_THRESHOLD_ATTRIBUTE_ID 0x01E4 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER14_BLOCK6_THRESHOLD_ATTRIBUTE_ID 0x01E5 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER14_BLOCK7_THRESHOLD_ATTRIBUTE_ID 0x01E6 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER14_BLOCK8_THRESHOLD_ATTRIBUTE_ID 0x01E7 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER14_BLOCK9_THRESHOLD_ATTRIBUTE_ID 0x01E8 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER14_BLOCK10_THRESHOLD_ATTRIBUTE_ID 0x01E9 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER14_BLOCK11_THRESHOLD_ATTRIBUTE_ID 0x01EA // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER14_BLOCK12_THRESHOLD_ATTRIBUTE_ID 0x01EB // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER14_BLOCK13_THRESHOLD_ATTRIBUTE_ID 0x01EC // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER14_BLOCK14_THRESHOLD_ATTRIBUTE_ID 0x01ED // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER14_BLOCK15_THRESHOLD_ATTRIBUTE_ID 0x01EE // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER14_BLOCK_THRESHOLD_COUNT_ATTRIBUTE_ID 0x01EF // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER15_BLOCK1_THRESHOLD_ATTRIBUTE_ID 0x01F0 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER15_BLOCK2_THRESHOLD_ATTRIBUTE_ID 0x01F1 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER15_BLOCK3_THRESHOLD_ATTRIBUTE_ID 0x01F2 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER15_BLOCK4_THRESHOLD_ATTRIBUTE_ID 0x01F3 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER15_BLOCK5_THRESHOLD_ATTRIBUTE_ID 0x01F4 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER15_BLOCK6_THRESHOLD_ATTRIBUTE_ID 0x01F5 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER15_BLOCK7_THRESHOLD_ATTRIBUTE_ID 0x01F6 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER15_BLOCK8_THRESHOLD_ATTRIBUTE_ID 0x01F7 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER15_BLOCK9_THRESHOLD_ATTRIBUTE_ID 0x01F8 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER15_BLOCK10_THRESHOLD_ATTRIBUTE_ID 0x01F9 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER15_BLOCK11_THRESHOLD_ATTRIBUTE_ID 0x01FA // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER15_BLOCK12_THRESHOLD_ATTRIBUTE_ID 0x01FB // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER15_BLOCK13_THRESHOLD_ATTRIBUTE_ID 0x01FC // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER15_BLOCK14_THRESHOLD_ATTRIBUTE_ID 0x01FD // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER15_BLOCK15_THRESHOLD_ATTRIBUTE_ID 0x01FE // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER15_BLOCK_THRESHOLD_COUNT_ATTRIBUTE_ID 0x01FF // Ver.: since se-1.2a-07-5356-19 -#define ZCL_START_OF_BLOCK_PERIOD_ATTRIBUTE_ID 0x0200 // Ver.: always -#define ZCL_BLOCK_PERIOD_DURATION_MINUTES_ATTRIBUTE_ID 0x0201 // Ver.: always -#define ZCL_THRESHOLD_MULTIPLIER_ATTRIBUTE_ID 0x0202 // Ver.: always -#define ZCL_THRESHOLD_DIVISOR_ATTRIBUTE_ID 0x0203 // Ver.: always -#define ZCL_BLOCK_PERIOD_DURATION_TYPE_ATTRIBUTE_ID 0x0204 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_COMMODITY_TYPE_SERVER_ATTRIBUTE_ID 0x0300 // Ver.: always -#define ZCL_STANDING_CHARGE_ATTRIBUTE_ID 0x0301 // Ver.: always -#define ZCL_CONVERSION_FACTOR_ATTRIBUTE_ID 0x0302 // Ver.: since se-1.1a-07-5356-17 -#define ZCL_CONVERSION_FACTOR_TRAILING_DIGIT_ATTRIBUTE_ID 0x0303 // Ver.: since se-1.1a-07-5356-17 -#define ZCL_CALORIFIC_VALUE_ATTRIBUTE_ID 0x0304 // Ver.: since se-1.1a-07-5356-17 -#define ZCL_CALORIFIC_VALUE_UNIT_ATTRIBUTE_ID 0x0305 // Ver.: since se-1.1a-07-5356-17 -#define ZCL_CALORIFIC_VALUE_TRAILING_DIGIT_ATTRIBUTE_ID 0x0306 // Ver.: since se-1.1a-07-5356-17 -#define ZCL_NO_TIER_BLOCK1_PRICE_ATTRIBUTE_ID 0x0400 // Ver.: always -#define ZCL_NO_TIER_BLOCK2_PRICE_ATTRIBUTE_ID 0x0401 // Ver.: always -#define ZCL_NO_TIER_BLOCK3_PRICE_ATTRIBUTE_ID 0x0402 // Ver.: always -#define ZCL_NO_TIER_BLOCK4_PRICE_ATTRIBUTE_ID 0x0403 // Ver.: always -#define ZCL_NO_TIER_BLOCK5_PRICE_ATTRIBUTE_ID 0x0404 // Ver.: always -#define ZCL_NO_TIER_BLOCK6_PRICE_ATTRIBUTE_ID 0x0405 // Ver.: always -#define ZCL_NO_TIER_BLOCK7_PRICE_ATTRIBUTE_ID 0x0406 // Ver.: always -#define ZCL_NO_TIER_BLOCK8_PRICE_ATTRIBUTE_ID 0x0407 // Ver.: always -#define ZCL_NO_TIER_BLOCK9_PRICE_ATTRIBUTE_ID 0x0408 // Ver.: always -#define ZCL_NO_TIER_BLOCK10_PRICE_ATTRIBUTE_ID 0x0409 // Ver.: always -#define ZCL_NO_TIER_BLOCK11_PRICE_ATTRIBUTE_ID 0x040A // Ver.: always -#define ZCL_NO_TIER_BLOCK12_PRICE_ATTRIBUTE_ID 0x040B // Ver.: always -#define ZCL_NO_TIER_BLOCK13_PRICE_ATTRIBUTE_ID 0x040C // Ver.: always -#define ZCL_NO_TIER_BLOCK14_PRICE_ATTRIBUTE_ID 0x040D // Ver.: always -#define ZCL_NO_TIER_BLOCK15_PRICE_ATTRIBUTE_ID 0x040E // Ver.: always -#define ZCL_NO_TIER_BLOCK16_PRICE_ATTRIBUTE_ID 0x040F // Ver.: always -#define ZCL_TIER1_BLOCK1_PRICE_ATTRIBUTE_ID 0x0410 // Ver.: always -#define ZCL_TIER1_BLOCK2_PRICE_ATTRIBUTE_ID 0x0411 // Ver.: always -#define ZCL_TIER1_BLOCK3_PRICE_ATTRIBUTE_ID 0x0412 // Ver.: always -#define ZCL_TIER1_BLOCK4_PRICE_ATTRIBUTE_ID 0x0413 // Ver.: always -#define ZCL_TIER1_BLOCK5_PRICE_ATTRIBUTE_ID 0x0414 // Ver.: always -#define ZCL_TIER1_BLOCK6_PRICE_ATTRIBUTE_ID 0x0415 // Ver.: always -#define ZCL_TIER1_BLOCK7_PRICE_ATTRIBUTE_ID 0x0416 // Ver.: always -#define ZCL_TIER1_BLOCK8_PRICE_ATTRIBUTE_ID 0x0417 // Ver.: always -#define ZCL_TIER1_BLOCK9_PRICE_ATTRIBUTE_ID 0x0418 // Ver.: always -#define ZCL_TIER1_BLOCK10_PRICE_ATTRIBUTE_ID 0x0419 // Ver.: always -#define ZCL_TIER1_BLOCK11_PRICE_ATTRIBUTE_ID 0x041A // Ver.: always -#define ZCL_TIER1_BLOCK12_PRICE_ATTRIBUTE_ID 0x041B // Ver.: always -#define ZCL_TIER1_BLOCK13_PRICE_ATTRIBUTE_ID 0x041C // Ver.: always -#define ZCL_TIER1_BLOCK14_PRICE_ATTRIBUTE_ID 0x041D // Ver.: always -#define ZCL_TIER1_BLOCK15_PRICE_ATTRIBUTE_ID 0x041E // Ver.: always -#define ZCL_TIER1_BLOCK16_PRICE_ATTRIBUTE_ID 0x041F // Ver.: always -#define ZCL_TIER2_BLOCK1_PRICE_ATTRIBUTE_ID 0x0420 // Ver.: always -#define ZCL_TIER2_BLOCK2_PRICE_ATTRIBUTE_ID 0x0421 // Ver.: always -#define ZCL_TIER2_BLOCK3_PRICE_ATTRIBUTE_ID 0x0422 // Ver.: always -#define ZCL_TIER2_BLOCK4_PRICE_ATTRIBUTE_ID 0x0423 // Ver.: always -#define ZCL_TIER2_BLOCK5_PRICE_ATTRIBUTE_ID 0x0424 // Ver.: always -#define ZCL_TIER2_BLOCK6_PRICE_ATTRIBUTE_ID 0x0425 // Ver.: always -#define ZCL_TIER2_BLOCK7_PRICE_ATTRIBUTE_ID 0x0426 // Ver.: always -#define ZCL_TIER2_BLOCK8_PRICE_ATTRIBUTE_ID 0x0427 // Ver.: always -#define ZCL_TIER2_BLOCK9_PRICE_ATTRIBUTE_ID 0x0428 // Ver.: always -#define ZCL_TIER2_BLOCK10_PRICE_ATTRIBUTE_ID 0x0429 // Ver.: always -#define ZCL_TIER2_BLOCK11_PRICE_ATTRIBUTE_ID 0x042A // Ver.: always -#define ZCL_TIER2_BLOCK12_PRICE_ATTRIBUTE_ID 0x042B // Ver.: always -#define ZCL_TIER2_BLOCK13_PRICE_ATTRIBUTE_ID 0x042C // Ver.: always -#define ZCL_TIER2_BLOCK14_PRICE_ATTRIBUTE_ID 0x042D // Ver.: always -#define ZCL_TIER2_BLOCK15_PRICE_ATTRIBUTE_ID 0x042E // Ver.: always -#define ZCL_TIER2_BLOCK16_PRICE_ATTRIBUTE_ID 0x042F // Ver.: always -#define ZCL_TIER3_BLOCK1_PRICE_ATTRIBUTE_ID 0x0430 // Ver.: always -#define ZCL_TIER3_BLOCK2_PRICE_ATTRIBUTE_ID 0x0431 // Ver.: always -#define ZCL_TIER3_BLOCK3_PRICE_ATTRIBUTE_ID 0x0432 // Ver.: always -#define ZCL_TIER3_BLOCK4_PRICE_ATTRIBUTE_ID 0x0433 // Ver.: always -#define ZCL_TIER3_BLOCK5_PRICE_ATTRIBUTE_ID 0x0434 // Ver.: always -#define ZCL_TIER3_BLOCK6_PRICE_ATTRIBUTE_ID 0x0435 // Ver.: always -#define ZCL_TIER3_BLOCK7_PRICE_ATTRIBUTE_ID 0x0436 // Ver.: always -#define ZCL_TIER3_BLOCK8_PRICE_ATTRIBUTE_ID 0x0437 // Ver.: always -#define ZCL_TIER3_BLOCK9_PRICE_ATTRIBUTE_ID 0x0438 // Ver.: always -#define ZCL_TIER3_BLOCK10_PRICE_ATTRIBUTE_ID 0x0439 // Ver.: always -#define ZCL_TIER3_BLOCK11_PRICE_ATTRIBUTE_ID 0x043A // Ver.: always -#define ZCL_TIER3_BLOCK12_PRICE_ATTRIBUTE_ID 0x043B // Ver.: always -#define ZCL_TIER3_BLOCK13_PRICE_ATTRIBUTE_ID 0x043C // Ver.: always -#define ZCL_TIER3_BLOCK14_PRICE_ATTRIBUTE_ID 0x043D // Ver.: always -#define ZCL_TIER3_BLOCK15_PRICE_ATTRIBUTE_ID 0x043E // Ver.: always -#define ZCL_TIER3_BLOCK16_PRICE_ATTRIBUTE_ID 0x043F // Ver.: always -#define ZCL_TIER4_BLOCK1_PRICE_ATTRIBUTE_ID 0x0440 // Ver.: always -#define ZCL_TIER4_BLOCK2_PRICE_ATTRIBUTE_ID 0x0441 // Ver.: always -#define ZCL_TIER4_BLOCK3_PRICE_ATTRIBUTE_ID 0x0442 // Ver.: always -#define ZCL_TIER4_BLOCK4_PRICE_ATTRIBUTE_ID 0x0443 // Ver.: always -#define ZCL_TIER4_BLOCK5_PRICE_ATTRIBUTE_ID 0x0444 // Ver.: always -#define ZCL_TIER4_BLOCK6_PRICE_ATTRIBUTE_ID 0x0445 // Ver.: always -#define ZCL_TIER4_BLOCK7_PRICE_ATTRIBUTE_ID 0x0446 // Ver.: always -#define ZCL_TIER4_BLOCK8_PRICE_ATTRIBUTE_ID 0x0447 // Ver.: always -#define ZCL_TIER4_BLOCK9_PRICE_ATTRIBUTE_ID 0x0448 // Ver.: always -#define ZCL_TIER4_BLOCK10_PRICE_ATTRIBUTE_ID 0x0449 // Ver.: always -#define ZCL_TIER4_BLOCK11_PRICE_ATTRIBUTE_ID 0x044A // Ver.: always -#define ZCL_TIER4_BLOCK12_PRICE_ATTRIBUTE_ID 0x044B // Ver.: always -#define ZCL_TIER4_BLOCK13_PRICE_ATTRIBUTE_ID 0x044C // Ver.: always -#define ZCL_TIER4_BLOCK14_PRICE_ATTRIBUTE_ID 0x044D // Ver.: always -#define ZCL_TIER4_BLOCK15_PRICE_ATTRIBUTE_ID 0x044E // Ver.: always -#define ZCL_TIER4_BLOCK16_PRICE_ATTRIBUTE_ID 0x044F // Ver.: always -#define ZCL_TIER5_BLOCK1_PRICE_ATTRIBUTE_ID 0x0450 // Ver.: always -#define ZCL_TIER5_BLOCK2_PRICE_ATTRIBUTE_ID 0x0451 // Ver.: always -#define ZCL_TIER5_BLOCK3_PRICE_ATTRIBUTE_ID 0x0452 // Ver.: always -#define ZCL_TIER5_BLOCK4_PRICE_ATTRIBUTE_ID 0x0453 // Ver.: always -#define ZCL_TIER5_BLOCK5_PRICE_ATTRIBUTE_ID 0x0454 // Ver.: always -#define ZCL_TIER5_BLOCK6_PRICE_ATTRIBUTE_ID 0x0455 // Ver.: always -#define ZCL_TIER5_BLOCK7_PRICE_ATTRIBUTE_ID 0x0456 // Ver.: always -#define ZCL_TIER5_BLOCK8_PRICE_ATTRIBUTE_ID 0x0457 // Ver.: always -#define ZCL_TIER5_BLOCK9_PRICE_ATTRIBUTE_ID 0x0458 // Ver.: always -#define ZCL_TIER5_BLOCK10_PRICE_ATTRIBUTE_ID 0x0459 // Ver.: always -#define ZCL_TIER5_BLOCK11_PRICE_ATTRIBUTE_ID 0x045A // Ver.: always -#define ZCL_TIER5_BLOCK12_PRICE_ATTRIBUTE_ID 0x045B // Ver.: always -#define ZCL_TIER5_BLOCK13_PRICE_ATTRIBUTE_ID 0x045C // Ver.: always -#define ZCL_TIER5_BLOCK14_PRICE_ATTRIBUTE_ID 0x045D // Ver.: always -#define ZCL_TIER5_BLOCK15_PRICE_ATTRIBUTE_ID 0x045E // Ver.: always -#define ZCL_TIER5_BLOCK16_PRICE_ATTRIBUTE_ID 0x045F // Ver.: always -#define ZCL_TIER6_BLOCK1_PRICE_ATTRIBUTE_ID 0x0460 // Ver.: always -#define ZCL_TIER6_BLOCK2_PRICE_ATTRIBUTE_ID 0x0461 // Ver.: always -#define ZCL_TIER6_BLOCK3_PRICE_ATTRIBUTE_ID 0x0462 // Ver.: always -#define ZCL_TIER6_BLOCK4_PRICE_ATTRIBUTE_ID 0x0463 // Ver.: always -#define ZCL_TIER6_BLOCK5_PRICE_ATTRIBUTE_ID 0x0464 // Ver.: always -#define ZCL_TIER6_BLOCK6_PRICE_ATTRIBUTE_ID 0x0465 // Ver.: always -#define ZCL_TIER6_BLOCK7_PRICE_ATTRIBUTE_ID 0x0466 // Ver.: always -#define ZCL_TIER6_BLOCK8_PRICE_ATTRIBUTE_ID 0x0467 // Ver.: always -#define ZCL_TIER6_BLOCK9_PRICE_ATTRIBUTE_ID 0x0468 // Ver.: always -#define ZCL_TIER6_BLOCK10_PRICE_ATTRIBUTE_ID 0x0469 // Ver.: always -#define ZCL_TIER6_BLOCK11_PRICE_ATTRIBUTE_ID 0x046A // Ver.: always -#define ZCL_TIER6_BLOCK12_PRICE_ATTRIBUTE_ID 0x046B // Ver.: always -#define ZCL_TIER6_BLOCK13_PRICE_ATTRIBUTE_ID 0x046C // Ver.: always -#define ZCL_TIER6_BLOCK14_PRICE_ATTRIBUTE_ID 0x046D // Ver.: always -#define ZCL_TIER6_BLOCK15_PRICE_ATTRIBUTE_ID 0x046E // Ver.: always -#define ZCL_TIER6_BLOCK16_PRICE_ATTRIBUTE_ID 0x046F // Ver.: always -#define ZCL_TIER7_BLOCK1_PRICE_ATTRIBUTE_ID 0x0470 // Ver.: always -#define ZCL_TIER7_BLOCK2_PRICE_ATTRIBUTE_ID 0x0471 // Ver.: always -#define ZCL_TIER7_BLOCK3_PRICE_ATTRIBUTE_ID 0x0472 // Ver.: always -#define ZCL_TIER7_BLOCK4_PRICE_ATTRIBUTE_ID 0x0473 // Ver.: always -#define ZCL_TIER7_BLOCK5_PRICE_ATTRIBUTE_ID 0x0474 // Ver.: always -#define ZCL_TIER7_BLOCK6_PRICE_ATTRIBUTE_ID 0x0475 // Ver.: always -#define ZCL_TIER7_BLOCK7_PRICE_ATTRIBUTE_ID 0x0476 // Ver.: always -#define ZCL_TIER7_BLOCK8_PRICE_ATTRIBUTE_ID 0x0477 // Ver.: always -#define ZCL_TIER7_BLOCK9_PRICE_ATTRIBUTE_ID 0x0478 // Ver.: always -#define ZCL_TIER7_BLOCK10_PRICE_ATTRIBUTE_ID 0x0479 // Ver.: always -#define ZCL_TIER7_BLOCK11_PRICE_ATTRIBUTE_ID 0x047A // Ver.: always -#define ZCL_TIER7_BLOCK12_PRICE_ATTRIBUTE_ID 0x047B // Ver.: always -#define ZCL_TIER7_BLOCK13_PRICE_ATTRIBUTE_ID 0x047C // Ver.: always -#define ZCL_TIER7_BLOCK14_PRICE_ATTRIBUTE_ID 0x047D // Ver.: always -#define ZCL_TIER7_BLOCK15_PRICE_ATTRIBUTE_ID 0x047E // Ver.: always -#define ZCL_TIER7_BLOCK16_PRICE_ATTRIBUTE_ID 0x047F // Ver.: always -#define ZCL_TIER8_BLOCK1_PRICE_ATTRIBUTE_ID 0x0480 // Ver.: always -#define ZCL_TIER8_BLOCK2_PRICE_ATTRIBUTE_ID 0x0481 // Ver.: always -#define ZCL_TIER8_BLOCK3_PRICE_ATTRIBUTE_ID 0x0482 // Ver.: always -#define ZCL_TIER8_BLOCK4_PRICE_ATTRIBUTE_ID 0x0483 // Ver.: always -#define ZCL_TIER8_BLOCK5_PRICE_ATTRIBUTE_ID 0x0484 // Ver.: always -#define ZCL_TIER8_BLOCK6_PRICE_ATTRIBUTE_ID 0x0485 // Ver.: always -#define ZCL_TIER8_BLOCK7_PRICE_ATTRIBUTE_ID 0x0486 // Ver.: always -#define ZCL_TIER8_BLOCK8_PRICE_ATTRIBUTE_ID 0x0487 // Ver.: always -#define ZCL_TIER8_BLOCK9_PRICE_ATTRIBUTE_ID 0x0488 // Ver.: always -#define ZCL_TIER8_BLOCK10_PRICE_ATTRIBUTE_ID 0x0489 // Ver.: always -#define ZCL_TIER8_BLOCK11_PRICE_ATTRIBUTE_ID 0x048A // Ver.: always -#define ZCL_TIER8_BLOCK12_PRICE_ATTRIBUTE_ID 0x048B // Ver.: always -#define ZCL_TIER8_BLOCK13_PRICE_ATTRIBUTE_ID 0x048C // Ver.: always -#define ZCL_TIER8_BLOCK14_PRICE_ATTRIBUTE_ID 0x048D // Ver.: always -#define ZCL_TIER8_BLOCK15_PRICE_ATTRIBUTE_ID 0x048E // Ver.: always -#define ZCL_TIER8_BLOCK16_PRICE_ATTRIBUTE_ID 0x048F // Ver.: always -#define ZCL_TIER9_BLOCK1_PRICE_ATTRIBUTE_ID 0x0490 // Ver.: always -#define ZCL_TIER9_BLOCK2_PRICE_ATTRIBUTE_ID 0x0491 // Ver.: always -#define ZCL_TIER9_BLOCK3_PRICE_ATTRIBUTE_ID 0x0492 // Ver.: always -#define ZCL_TIER9_BLOCK4_PRICE_ATTRIBUTE_ID 0x0493 // Ver.: always -#define ZCL_TIER9_BLOCK5_PRICE_ATTRIBUTE_ID 0x0494 // Ver.: always -#define ZCL_TIER9_BLOCK6_PRICE_ATTRIBUTE_ID 0x0495 // Ver.: always -#define ZCL_TIER9_BLOCK7_PRICE_ATTRIBUTE_ID 0x0496 // Ver.: always -#define ZCL_TIER9_BLOCK8_PRICE_ATTRIBUTE_ID 0x0497 // Ver.: always -#define ZCL_TIER9_BLOCK9_PRICE_ATTRIBUTE_ID 0x0498 // Ver.: always -#define ZCL_TIER9_BLOCK10_PRICE_ATTRIBUTE_ID 0x0499 // Ver.: always -#define ZCL_TIER9_BLOCK11_PRICE_ATTRIBUTE_ID 0x049A // Ver.: always -#define ZCL_TIER9_BLOCK12_PRICE_ATTRIBUTE_ID 0x049B // Ver.: always -#define ZCL_TIER9_BLOCK13_PRICE_ATTRIBUTE_ID 0x049C // Ver.: always -#define ZCL_TIER9_BLOCK14_PRICE_ATTRIBUTE_ID 0x049D // Ver.: always -#define ZCL_TIER9_BLOCK15_PRICE_ATTRIBUTE_ID 0x049E // Ver.: always -#define ZCL_TIER9_BLOCK16_PRICE_ATTRIBUTE_ID 0x049F // Ver.: always -#define ZCL_TIER10_BLOCK1_PRICE_ATTRIBUTE_ID 0x04A0 // Ver.: always -#define ZCL_TIER10_BLOCK2_PRICE_ATTRIBUTE_ID 0x04A1 // Ver.: always -#define ZCL_TIER10_BLOCK3_PRICE_ATTRIBUTE_ID 0x04A2 // Ver.: always -#define ZCL_TIER10_BLOCK4_PRICE_ATTRIBUTE_ID 0x04A3 // Ver.: always -#define ZCL_TIER10_BLOCK5_PRICE_ATTRIBUTE_ID 0x04A4 // Ver.: always -#define ZCL_TIER10_BLOCK6_PRICE_ATTRIBUTE_ID 0x04A5 // Ver.: always -#define ZCL_TIER10_BLOCK7_PRICE_ATTRIBUTE_ID 0x04A6 // Ver.: always -#define ZCL_TIER10_BLOCK8_PRICE_ATTRIBUTE_ID 0x04A7 // Ver.: always -#define ZCL_TIER10_BLOCK9_PRICE_ATTRIBUTE_ID 0x04A8 // Ver.: always -#define ZCL_TIER10_BLOCK10_PRICE_ATTRIBUTE_ID 0x04A9 // Ver.: always -#define ZCL_TIER10_BLOCK11_PRICE_ATTRIBUTE_ID 0x04AA // Ver.: always -#define ZCL_TIER10_BLOCK12_PRICE_ATTRIBUTE_ID 0x04AB // Ver.: always -#define ZCL_TIER10_BLOCK13_PRICE_ATTRIBUTE_ID 0x04AC // Ver.: always -#define ZCL_TIER10_BLOCK14_PRICE_ATTRIBUTE_ID 0x04AD // Ver.: always -#define ZCL_TIER10_BLOCK15_PRICE_ATTRIBUTE_ID 0x04AE // Ver.: always -#define ZCL_TIER10_BLOCK16_PRICE_ATTRIBUTE_ID 0x04AF // Ver.: always -#define ZCL_TIER11_BLOCK1_PRICE_ATTRIBUTE_ID 0x04B0 // Ver.: always -#define ZCL_TIER11_BLOCK2_PRICE_ATTRIBUTE_ID 0x04B1 // Ver.: always -#define ZCL_TIER11_BLOCK3_PRICE_ATTRIBUTE_ID 0x04B2 // Ver.: always -#define ZCL_TIER11_BLOCK4_PRICE_ATTRIBUTE_ID 0x04B3 // Ver.: always -#define ZCL_TIER11_BLOCK5_PRICE_ATTRIBUTE_ID 0x04B4 // Ver.: always -#define ZCL_TIER11_BLOCK6_PRICE_ATTRIBUTE_ID 0x04B5 // Ver.: always -#define ZCL_TIER11_BLOCK7_PRICE_ATTRIBUTE_ID 0x04B6 // Ver.: always -#define ZCL_TIER11_BLOCK8_PRICE_ATTRIBUTE_ID 0x04B7 // Ver.: always -#define ZCL_TIER11_BLOCK9_PRICE_ATTRIBUTE_ID 0x04B8 // Ver.: always -#define ZCL_TIER11_BLOCK10_PRICE_ATTRIBUTE_ID 0x04B9 // Ver.: always -#define ZCL_TIER11_BLOCK11_PRICE_ATTRIBUTE_ID 0x04BA // Ver.: always -#define ZCL_TIER11_BLOCK12_PRICE_ATTRIBUTE_ID 0x04BB // Ver.: always -#define ZCL_TIER11_BLOCK13_PRICE_ATTRIBUTE_ID 0x04BC // Ver.: always -#define ZCL_TIER11_BLOCK14_PRICE_ATTRIBUTE_ID 0x04BD // Ver.: always -#define ZCL_TIER11_BLOCK15_PRICE_ATTRIBUTE_ID 0x04BE // Ver.: always -#define ZCL_TIER11_BLOCK16_PRICE_ATTRIBUTE_ID 0x04BF // Ver.: always -#define ZCL_TIER12_BLOCK1_PRICE_ATTRIBUTE_ID 0x04C0 // Ver.: always -#define ZCL_TIER12_BLOCK2_PRICE_ATTRIBUTE_ID 0x04C1 // Ver.: always -#define ZCL_TIER12_BLOCK3_PRICE_ATTRIBUTE_ID 0x04C2 // Ver.: always -#define ZCL_TIER12_BLOCK4_PRICE_ATTRIBUTE_ID 0x04C3 // Ver.: always -#define ZCL_TIER12_BLOCK5_PRICE_ATTRIBUTE_ID 0x04C4 // Ver.: always -#define ZCL_TIER12_BLOCK6_PRICE_ATTRIBUTE_ID 0x04C5 // Ver.: always -#define ZCL_TIER12_BLOCK7_PRICE_ATTRIBUTE_ID 0x04C6 // Ver.: always -#define ZCL_TIER12_BLOCK8_PRICE_ATTRIBUTE_ID 0x04C7 // Ver.: always -#define ZCL_TIER12_BLOCK9_PRICE_ATTRIBUTE_ID 0x04C8 // Ver.: always -#define ZCL_TIER12_BLOCK10_PRICE_ATTRIBUTE_ID 0x04C9 // Ver.: always -#define ZCL_TIER12_BLOCK11_PRICE_ATTRIBUTE_ID 0x04CA // Ver.: always -#define ZCL_TIER12_BLOCK12_PRICE_ATTRIBUTE_ID 0x04CB // Ver.: always -#define ZCL_TIER12_BLOCK13_PRICE_ATTRIBUTE_ID 0x04CC // Ver.: always -#define ZCL_TIER12_BLOCK14_PRICE_ATTRIBUTE_ID 0x04CD // Ver.: always -#define ZCL_TIER12_BLOCK15_PRICE_ATTRIBUTE_ID 0x04CE // Ver.: always -#define ZCL_TIER12_BLOCK16_PRICE_ATTRIBUTE_ID 0x04CF // Ver.: always -#define ZCL_TIER13_BLOCK1_PRICE_ATTRIBUTE_ID 0x04D0 // Ver.: always -#define ZCL_TIER13_BLOCK2_PRICE_ATTRIBUTE_ID 0x04D1 // Ver.: always -#define ZCL_TIER13_BLOCK3_PRICE_ATTRIBUTE_ID 0x04D2 // Ver.: always -#define ZCL_TIER13_BLOCK4_PRICE_ATTRIBUTE_ID 0x04D3 // Ver.: always -#define ZCL_TIER13_BLOCK5_PRICE_ATTRIBUTE_ID 0x04D4 // Ver.: always -#define ZCL_TIER13_BLOCK6_PRICE_ATTRIBUTE_ID 0x04D5 // Ver.: always -#define ZCL_TIER13_BLOCK7_PRICE_ATTRIBUTE_ID 0x04D6 // Ver.: always -#define ZCL_TIER13_BLOCK8_PRICE_ATTRIBUTE_ID 0x04D7 // Ver.: always -#define ZCL_TIER13_BLOCK9_PRICE_ATTRIBUTE_ID 0x04D8 // Ver.: always -#define ZCL_TIER13_BLOCK10_PRICE_ATTRIBUTE_ID 0x04D9 // Ver.: always -#define ZCL_TIER13_BLOCK11_PRICE_ATTRIBUTE_ID 0x04DA // Ver.: always -#define ZCL_TIER13_BLOCK12_PRICE_ATTRIBUTE_ID 0x04DB // Ver.: always -#define ZCL_TIER13_BLOCK13_PRICE_ATTRIBUTE_ID 0x04DC // Ver.: always -#define ZCL_TIER13_BLOCK14_PRICE_ATTRIBUTE_ID 0x04DD // Ver.: always -#define ZCL_TIER13_BLOCK15_PRICE_ATTRIBUTE_ID 0x04DE // Ver.: always -#define ZCL_TIER13_BLOCK16_PRICE_ATTRIBUTE_ID 0x04DF // Ver.: always -#define ZCL_TIER14_BLOCK1_PRICE_ATTRIBUTE_ID 0x04E0 // Ver.: always -#define ZCL_TIER14_BLOCK2_PRICE_ATTRIBUTE_ID 0x04E1 // Ver.: always -#define ZCL_TIER14_BLOCK3_PRICE_ATTRIBUTE_ID 0x04E2 // Ver.: always -#define ZCL_TIER14_BLOCK4_PRICE_ATTRIBUTE_ID 0x04E3 // Ver.: always -#define ZCL_TIER14_BLOCK5_PRICE_ATTRIBUTE_ID 0x04E4 // Ver.: always -#define ZCL_TIER14_BLOCK6_PRICE_ATTRIBUTE_ID 0x04E5 // Ver.: always -#define ZCL_TIER14_BLOCK7_PRICE_ATTRIBUTE_ID 0x04E6 // Ver.: always -#define ZCL_TIER14_BLOCK8_PRICE_ATTRIBUTE_ID 0x04E7 // Ver.: always -#define ZCL_TIER14_BLOCK9_PRICE_ATTRIBUTE_ID 0x04E8 // Ver.: always -#define ZCL_TIER14_BLOCK10_PRICE_ATTRIBUTE_ID 0x04E9 // Ver.: always -#define ZCL_TIER14_BLOCK11_PRICE_ATTRIBUTE_ID 0x04EA // Ver.: always -#define ZCL_TIER14_BLOCK12_PRICE_ATTRIBUTE_ID 0x04EB // Ver.: always -#define ZCL_TIER14_BLOCK13_PRICE_ATTRIBUTE_ID 0x04EC // Ver.: always -#define ZCL_TIER14_BLOCK14_PRICE_ATTRIBUTE_ID 0x04ED // Ver.: always -#define ZCL_TIER14_BLOCK15_PRICE_ATTRIBUTE_ID 0x04EE // Ver.: always -#define ZCL_TIER14_BLOCK16_PRICE_ATTRIBUTE_ID 0x04EF // Ver.: always -#define ZCL_TIER15_BLOCK1_PRICE_ATTRIBUTE_ID 0x04F0 // Ver.: always -#define ZCL_TIER15_BLOCK2_PRICE_ATTRIBUTE_ID 0x04F1 // Ver.: always -#define ZCL_TIER15_BLOCK3_PRICE_ATTRIBUTE_ID 0x04F2 // Ver.: always -#define ZCL_TIER15_BLOCK4_PRICE_ATTRIBUTE_ID 0x04F3 // Ver.: always -#define ZCL_TIER15_BLOCK5_PRICE_ATTRIBUTE_ID 0x04F4 // Ver.: always -#define ZCL_TIER15_BLOCK6_PRICE_ATTRIBUTE_ID 0x04F5 // Ver.: always -#define ZCL_TIER15_BLOCK7_PRICE_ATTRIBUTE_ID 0x04F6 // Ver.: always -#define ZCL_TIER15_BLOCK8_PRICE_ATTRIBUTE_ID 0x04F7 // Ver.: always -#define ZCL_TIER15_BLOCK9_PRICE_ATTRIBUTE_ID 0x04F8 // Ver.: always -#define ZCL_TIER15_BLOCK10_PRICE_ATTRIBUTE_ID 0x04F9 // Ver.: always -#define ZCL_TIER15_BLOCK11_PRICE_ATTRIBUTE_ID 0x04FA // Ver.: always -#define ZCL_TIER15_BLOCK12_PRICE_ATTRIBUTE_ID 0x04FB // Ver.: always -#define ZCL_TIER15_BLOCK13_PRICE_ATTRIBUTE_ID 0x04FC // Ver.: always -#define ZCL_TIER15_BLOCK14_PRICE_ATTRIBUTE_ID 0x04FD // Ver.: always -#define ZCL_TIER15_BLOCK15_PRICE_ATTRIBUTE_ID 0x04FE // Ver.: always -#define ZCL_TIER15_BLOCK16_PRICE_ATTRIBUTE_ID 0x04FF // Ver.: always -#define ZCL_PRICE_TIER16_ATTRIBUTE_ID 0x050F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PRICE_TIER17_ATTRIBUTE_ID 0x0510 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PRICE_TIER18_ATTRIBUTE_ID 0x0511 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PRICE_TIER19_ATTRIBUTE_ID 0x0512 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PRICE_TIER20_ATTRIBUTE_ID 0x0513 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PRICE_TIER21_ATTRIBUTE_ID 0x0514 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PRICE_TIER22_ATTRIBUTE_ID 0x0515 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PRICE_TIER23_ATTRIBUTE_ID 0x0516 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PRICE_TIER24_ATTRIBUTE_ID 0x0517 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PRICE_TIER25_ATTRIBUTE_ID 0x0518 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PRICE_TIER26_ATTRIBUTE_ID 0x0519 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PRICE_TIER27_ATTRIBUTE_ID 0x051A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PRICE_TIER28_ATTRIBUTE_ID 0x051B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PRICE_TIER29_ATTRIBUTE_ID 0x051C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PRICE_TIER30_ATTRIBUTE_ID 0x051D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PRICE_TIER31_ATTRIBUTE_ID 0x051E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PRICE_TIER32_ATTRIBUTE_ID 0x051F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PRICE_TIER33_ATTRIBUTE_ID 0x0520 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PRICE_TIER34_ATTRIBUTE_ID 0x0521 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PRICE_TIER35_ATTRIBUTE_ID 0x0522 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PRICE_TIER36_ATTRIBUTE_ID 0x0523 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PRICE_TIER37_ATTRIBUTE_ID 0x0524 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PRICE_TIER38_ATTRIBUTE_ID 0x0525 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PRICE_TIER39_ATTRIBUTE_ID 0x0526 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PRICE_TIER40_ATTRIBUTE_ID 0x0527 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PRICE_TIER41_ATTRIBUTE_ID 0x0528 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PRICE_TIER42_ATTRIBUTE_ID 0x0529 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PRICE_TIER43_ATTRIBUTE_ID 0x052A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PRICE_TIER44_ATTRIBUTE_ID 0x052B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PRICE_TIER45_ATTRIBUTE_ID 0x052C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PRICE_TIER46_ATTRIBUTE_ID 0x052D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PRICE_TIER47_ATTRIBUTE_ID 0x052E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PRICE_TIER48_ATTRIBUTE_ID 0x052F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CPP1_PRICE_ATTRIBUTE_ID 0x05FE // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CPP2_PRICE_ATTRIBUTE_ID 0x05FF // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TARIFF_LABEL_ATTRIBUTE_ID 0x0610 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_NUMBER_OF_PRICE_TIERS_IN_USE_ATTRIBUTE_ID 0x0611 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_NUMBER_OF_BLOCK_THRESHOLDS_IN_USE_ATTRIBUTE_ID 0x0612 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER_BLOCK_MODE_ATTRIBUTE_ID 0x0613 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TARIFF_UNIT_OF_MEASURE_ATTRIBUTE_ID 0x0615 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TARIFF_CURRENCY_ATTRIBUTE_ID 0x0616 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TARIFF_PRICE_TRAILING_DIGIT_ATTRIBUTE_ID 0x0617 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TARIFF_RESOLUTION_PERIOD_ATTRIBUTE_ID 0x0619 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TARIFF_CO2_ATTRIBUTE_ID 0x0620 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TARIFF_CO2_UNIT_ATTRIBUTE_ID 0x0621 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TARIFF_CO2_TRAILING_DIGIT_ATTRIBUTE_ID 0x0622 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_BILLING_PERIOD_START_ATTRIBUTE_ID 0x0700 // Ver.: since se-1.1b-07-5356-18 -#define ZCL_CURRENT_BILLING_PERIOD_DURATION_ATTRIBUTE_ID 0x0701 // Ver.: since se-1.1b-07-5356-18 -#define ZCL_LAST_BILLING_PERIOD_START_ATTRIBUTE_ID 0x0702 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_LAST_BILLING_PERIOD_DURATION_ATTRIBUTE_ID 0x0703 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_LAST_BILLING_PERIOD_CONSOLIDATED_BILL_ATTRIBUTE_ID 0x0704 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CREDIT_PAYMENT_DUE_DATE_ATTRIBUTE_ID 0x0800 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CREDIT_PAYMENT_STATUS_ATTRIBUTE_ID 0x0801 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CREDIT_PAYMENT_OVER_DUE_AMOUNT_ATTRIBUTE_ID 0x0802 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PAYMENT_DISCOUNT_ATTRIBUTE_ID 0x080A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PAYMENT_DISCOUNT_PERIOD_ATTRIBUTE_ID 0x080B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CREDIT_PAYMENT_1_ATTRIBUTE_ID 0x0810 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CREDIT_PAYMENT_DATE_1_ATTRIBUTE_ID 0x0811 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CREDIT_PAYMENT_REF_1_ATTRIBUTE_ID 0x0812 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CREDIT_PAYMENT_2_ATTRIBUTE_ID 0x0820 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CREDIT_PAYMENT_DATE_2_ATTRIBUTE_ID 0x0821 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CREDIT_PAYMENT_REF_2_ATTRIBUTE_ID 0x0822 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CREDIT_PAYMENT_3_ATTRIBUTE_ID 0x0830 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CREDIT_PAYMENT_DATE_3_ATTRIBUTE_ID 0x0831 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CREDIT_PAYMENT_REF_3_ATTRIBUTE_ID 0x0832 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CREDIT_PAYMENT_4_ATTRIBUTE_ID 0x0840 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CREDIT_PAYMENT_DATE_4_ATTRIBUTE_ID 0x0841 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CREDIT_PAYMENT_REF_4_ATTRIBUTE_ID 0x0842 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CREDIT_PAYMENT_5_ATTRIBUTE_ID 0x0850 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CREDIT_PAYMENT_DATE_5_ATTRIBUTE_ID 0x0851 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CREDIT_PAYMENT_REF_5_ATTRIBUTE_ID 0x0852 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER1_PRICE_LABEL_ATTRIBUTE_ID 0x8000 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER2_PRICE_LABEL_ATTRIBUTE_ID 0x8001 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER3_PRICE_LABEL_ATTRIBUTE_ID 0x8002 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER4_PRICE_LABEL_ATTRIBUTE_ID 0x8003 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER5_PRICE_LABEL_ATTRIBUTE_ID 0x8004 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER6_PRICE_LABEL_ATTRIBUTE_ID 0x8005 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER7_PRICE_LABEL_ATTRIBUTE_ID 0x8006 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER8_PRICE_LABEL_ATTRIBUTE_ID 0x8007 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER9_PRICE_LABEL_ATTRIBUTE_ID 0x8008 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER10_PRICE_LABEL_ATTRIBUTE_ID 0x8009 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER11_PRICE_LABEL_ATTRIBUTE_ID 0x800A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER12_PRICE_LABEL_ATTRIBUTE_ID 0x800B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER13_PRICE_LABEL_ATTRIBUTE_ID 0x800C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER14_PRICE_LABEL_ATTRIBUTE_ID 0x800D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER15_PRICE_LABEL_ATTRIBUTE_ID 0x800E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER16_PRICE_LABEL_ATTRIBUTE_ID 0x800F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER17_PRICE_LABEL_ATTRIBUTE_ID 0x8010 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER18_PRICE_LABEL_ATTRIBUTE_ID 0x8011 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER19_PRICE_LABEL_ATTRIBUTE_ID 0x8012 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER20_PRICE_LABEL_ATTRIBUTE_ID 0x8013 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER21_PRICE_LABEL_ATTRIBUTE_ID 0x8014 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER22_PRICE_LABEL_ATTRIBUTE_ID 0x8015 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER23_PRICE_LABEL_ATTRIBUTE_ID 0x8016 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER24_PRICE_LABEL_ATTRIBUTE_ID 0x8017 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER25_PRICE_LABEL_ATTRIBUTE_ID 0x8018 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER26_PRICE_LABEL_ATTRIBUTE_ID 0x8019 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER27_PRICE_LABEL_ATTRIBUTE_ID 0x801A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER28_PRICE_LABEL_ATTRIBUTE_ID 0x801B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER29_PRICE_LABEL_ATTRIBUTE_ID 0x801C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER30_PRICE_LABEL_ATTRIBUTE_ID 0x801D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER31_PRICE_LABEL_ATTRIBUTE_ID 0x801E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER32_PRICE_LABEL_ATTRIBUTE_ID 0x801F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER33_PRICE_LABEL_ATTRIBUTE_ID 0x8020 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER34_PRICE_LABEL_ATTRIBUTE_ID 0x8021 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER35_PRICE_LABEL_ATTRIBUTE_ID 0x8022 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER36_PRICE_LABEL_ATTRIBUTE_ID 0x8023 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER37_PRICE_LABEL_ATTRIBUTE_ID 0x8024 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER38_PRICE_LABEL_ATTRIBUTE_ID 0x8025 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER39_PRICE_LABEL_ATTRIBUTE_ID 0x8026 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER40_PRICE_LABEL_ATTRIBUTE_ID 0x8027 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER41_PRICE_LABEL_ATTRIBUTE_ID 0x8028 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER42_PRICE_LABEL_ATTRIBUTE_ID 0x8029 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER43_PRICE_LABEL_ATTRIBUTE_ID 0x802A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER44_PRICE_LABEL_ATTRIBUTE_ID 0x802B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER45_PRICE_LABEL_ATTRIBUTE_ID 0x802C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER46_PRICE_LABEL_ATTRIBUTE_ID 0x802D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER47_PRICE_LABEL_ATTRIBUTE_ID 0x802E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER48_PRICE_LABEL_ATTRIBUTE_ID 0x802F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_BLOCK1_THRESHOLD_ATTRIBUTE_ID 0x8100 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_BLOCK2_THRESHOLD_ATTRIBUTE_ID 0x8101 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_BLOCK3_THRESHOLD_ATTRIBUTE_ID 0x8102 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_BLOCK4_THRESHOLD_ATTRIBUTE_ID 0x8103 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_BLOCK5_THRESHOLD_ATTRIBUTE_ID 0x8104 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_BLOCK6_THRESHOLD_ATTRIBUTE_ID 0x8105 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_BLOCK7_THRESHOLD_ATTRIBUTE_ID 0x8106 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_BLOCK8_THRESHOLD_ATTRIBUTE_ID 0x8107 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_BLOCK9_THRESHOLD_ATTRIBUTE_ID 0x8108 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_BLOCK10_THRESHOLD_ATTRIBUTE_ID 0x8109 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_BLOCK11_THRESHOLD_ATTRIBUTE_ID 0x810A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_BLOCK12_THRESHOLD_ATTRIBUTE_ID 0x810B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_BLOCK13_THRESHOLD_ATTRIBUTE_ID 0x810C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_BLOCK14_THRESHOLD_ATTRIBUTE_ID 0x810D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_BLOCK15_THRESHOLD_ATTRIBUTE_ID 0x810E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_START_OF_BLOCK_PERIOD_ATTRIBUTE_ID 0x8200 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_BLOCK_PERIOD_DURATION_ATTRIBUTE_ID 0x8201 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_THRESHOLD_MULTIPLIER_ATTRIBUTE_ID 0x8202 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_THRESHOLD_DIVISOR_ATTRIBUTE_ID 0x8203 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_NO_TIER_BLOCK1_PRICE_ATTRIBUTE_ID 0x8400 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_NO_TIER_BLOCK2_PRICE_ATTRIBUTE_ID 0x8401 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_NO_TIER_BLOCK3_PRICE_ATTRIBUTE_ID 0x8402 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_NO_TIER_BLOCK4_PRICE_ATTRIBUTE_ID 0x8403 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_NO_TIER_BLOCK5_PRICE_ATTRIBUTE_ID 0x8404 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_NO_TIER_BLOCK6_PRICE_ATTRIBUTE_ID 0x8405 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_NO_TIER_BLOCK7_PRICE_ATTRIBUTE_ID 0x8406 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_NO_TIER_BLOCK8_PRICE_ATTRIBUTE_ID 0x8407 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_NO_TIER_BLOCK9_PRICE_ATTRIBUTE_ID 0x8408 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_NO_TIER_BLOCK10_PRICE_ATTRIBUTE_ID 0x8409 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_NO_TIER_BLOCK11_PRICE_ATTRIBUTE_ID 0x840A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_NO_TIER_BLOCK12_PRICE_ATTRIBUTE_ID 0x840B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_NO_TIER_BLOCK13_PRICE_ATTRIBUTE_ID 0x840C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_NO_TIER_BLOCK14_PRICE_ATTRIBUTE_ID 0x840D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_NO_TIER_BLOCK15_PRICE_ATTRIBUTE_ID 0x840E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_NO_TIER_BLOCK16_PRICE_ATTRIBUTE_ID 0x840F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER1_BLOCK1_PRICE_ATTRIBUTE_ID 0x8410 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER1_BLOCK2_PRICE_ATTRIBUTE_ID 0x8411 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER1_BLOCK3_PRICE_ATTRIBUTE_ID 0x8412 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER1_BLOCK4_PRICE_ATTRIBUTE_ID 0x8413 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER1_BLOCK5_PRICE_ATTRIBUTE_ID 0x8414 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER1_BLOCK6_PRICE_ATTRIBUTE_ID 0x8415 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER1_BLOCK7_PRICE_ATTRIBUTE_ID 0x8416 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER1_BLOCK8_PRICE_ATTRIBUTE_ID 0x8417 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER1_BLOCK9_PRICE_ATTRIBUTE_ID 0x8418 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER1_BLOCK10_PRICE_ATTRIBUTE_ID 0x8419 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER1_BLOCK11_PRICE_ATTRIBUTE_ID 0x841A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER1_BLOCK12_PRICE_ATTRIBUTE_ID 0x841B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER1_BLOCK13_PRICE_ATTRIBUTE_ID 0x841C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER1_BLOCK14_PRICE_ATTRIBUTE_ID 0x841D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER1_BLOCK15_PRICE_ATTRIBUTE_ID 0x841E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER1_BLOCK16_PRICE_ATTRIBUTE_ID 0x841F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER2_BLOCK1_PRICE_ATTRIBUTE_ID 0x8420 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER2_BLOCK2_PRICE_ATTRIBUTE_ID 0x8421 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER2_BLOCK3_PRICE_ATTRIBUTE_ID 0x8422 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER2_BLOCK4_PRICE_ATTRIBUTE_ID 0x8423 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER2_BLOCK5_PRICE_ATTRIBUTE_ID 0x8424 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER2_BLOCK6_PRICE_ATTRIBUTE_ID 0x8425 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER2_BLOCK7_PRICE_ATTRIBUTE_ID 0x8426 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER2_BLOCK8_PRICE_ATTRIBUTE_ID 0x8427 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER2_BLOCK9_PRICE_ATTRIBUTE_ID 0x8428 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER2_BLOCK10_PRICE_ATTRIBUTE_ID 0x8429 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER2_BLOCK11_PRICE_ATTRIBUTE_ID 0x842A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER2_BLOCK12_PRICE_ATTRIBUTE_ID 0x842B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER2_BLOCK13_PRICE_ATTRIBUTE_ID 0x842C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER2_BLOCK14_PRICE_ATTRIBUTE_ID 0x842D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER2_BLOCK15_PRICE_ATTRIBUTE_ID 0x842E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER2_BLOCK16_PRICE_ATTRIBUTE_ID 0x842F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER3_BLOCK1_PRICE_ATTRIBUTE_ID 0x8430 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER3_BLOCK2_PRICE_ATTRIBUTE_ID 0x8431 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER3_BLOCK3_PRICE_ATTRIBUTE_ID 0x8432 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER3_BLOCK4_PRICE_ATTRIBUTE_ID 0x8433 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER3_BLOCK5_PRICE_ATTRIBUTE_ID 0x8434 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER3_BLOCK6_PRICE_ATTRIBUTE_ID 0x8435 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER3_BLOCK7_PRICE_ATTRIBUTE_ID 0x8436 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER3_BLOCK8_PRICE_ATTRIBUTE_ID 0x8437 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER3_BLOCK9_PRICE_ATTRIBUTE_ID 0x8438 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER3_BLOCK10_PRICE_ATTRIBUTE_ID 0x8439 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER3_BLOCK11_PRICE_ATTRIBUTE_ID 0x843A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER3_BLOCK12_PRICE_ATTRIBUTE_ID 0x843B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER3_BLOCK13_PRICE_ATTRIBUTE_ID 0x843C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER3_BLOCK14_PRICE_ATTRIBUTE_ID 0x843D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER3_BLOCK15_PRICE_ATTRIBUTE_ID 0x843E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER3_BLOCK16_PRICE_ATTRIBUTE_ID 0x843F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER4_BLOCK1_PRICE_ATTRIBUTE_ID 0x8440 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER4_BLOCK2_PRICE_ATTRIBUTE_ID 0x8441 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER4_BLOCK3_PRICE_ATTRIBUTE_ID 0x8442 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER4_BLOCK4_PRICE_ATTRIBUTE_ID 0x8443 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER4_BLOCK5_PRICE_ATTRIBUTE_ID 0x8444 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER4_BLOCK6_PRICE_ATTRIBUTE_ID 0x8445 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER4_BLOCK7_PRICE_ATTRIBUTE_ID 0x8446 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER4_BLOCK8_PRICE_ATTRIBUTE_ID 0x8447 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER4_BLOCK9_PRICE_ATTRIBUTE_ID 0x8448 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER4_BLOCK10_PRICE_ATTRIBUTE_ID 0x8449 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER4_BLOCK11_PRICE_ATTRIBUTE_ID 0x844A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER4_BLOCK12_PRICE_ATTRIBUTE_ID 0x844B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER4_BLOCK13_PRICE_ATTRIBUTE_ID 0x844C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER4_BLOCK14_PRICE_ATTRIBUTE_ID 0x844D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER4_BLOCK15_PRICE_ATTRIBUTE_ID 0x844E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER4_BLOCK16_PRICE_ATTRIBUTE_ID 0x844F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER5_BLOCK1_PRICE_ATTRIBUTE_ID 0x8450 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER5_BLOCK2_PRICE_ATTRIBUTE_ID 0x8451 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER5_BLOCK3_PRICE_ATTRIBUTE_ID 0x8452 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER5_BLOCK4_PRICE_ATTRIBUTE_ID 0x8453 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER5_BLOCK5_PRICE_ATTRIBUTE_ID 0x8454 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER5_BLOCK6_PRICE_ATTRIBUTE_ID 0x8455 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER5_BLOCK7_PRICE_ATTRIBUTE_ID 0x8456 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER5_BLOCK8_PRICE_ATTRIBUTE_ID 0x8457 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER5_BLOCK9_PRICE_ATTRIBUTE_ID 0x8458 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER5_BLOCK10_PRICE_ATTRIBUTE_ID 0x8459 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER5_BLOCK11_PRICE_ATTRIBUTE_ID 0x845A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER5_BLOCK12_PRICE_ATTRIBUTE_ID 0x845B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER5_BLOCK13_PRICE_ATTRIBUTE_ID 0x845C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER5_BLOCK14_PRICE_ATTRIBUTE_ID 0x845D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER5_BLOCK15_PRICE_ATTRIBUTE_ID 0x845E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER5_BLOCK16_PRICE_ATTRIBUTE_ID 0x845F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER6_BLOCK1_PRICE_ATTRIBUTE_ID 0x8460 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER6_BLOCK2_PRICE_ATTRIBUTE_ID 0x8461 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER6_BLOCK3_PRICE_ATTRIBUTE_ID 0x8462 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER6_BLOCK4_PRICE_ATTRIBUTE_ID 0x8463 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER6_BLOCK5_PRICE_ATTRIBUTE_ID 0x8464 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER6_BLOCK6_PRICE_ATTRIBUTE_ID 0x8465 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER6_BLOCK7_PRICE_ATTRIBUTE_ID 0x8466 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER6_BLOCK8_PRICE_ATTRIBUTE_ID 0x8467 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER6_BLOCK9_PRICE_ATTRIBUTE_ID 0x8468 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER6_BLOCK10_PRICE_ATTRIBUTE_ID 0x8469 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER6_BLOCK11_PRICE_ATTRIBUTE_ID 0x846A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER6_BLOCK12_PRICE_ATTRIBUTE_ID 0x846B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER6_BLOCK13_PRICE_ATTRIBUTE_ID 0x846C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER6_BLOCK14_PRICE_ATTRIBUTE_ID 0x846D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER6_BLOCK15_PRICE_ATTRIBUTE_ID 0x846E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER6_BLOCK16_PRICE_ATTRIBUTE_ID 0x846F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER7_BLOCK1_PRICE_ATTRIBUTE_ID 0x8470 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER7_BLOCK2_PRICE_ATTRIBUTE_ID 0x8471 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER7_BLOCK3_PRICE_ATTRIBUTE_ID 0x8472 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER7_BLOCK4_PRICE_ATTRIBUTE_ID 0x8473 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER7_BLOCK5_PRICE_ATTRIBUTE_ID 0x8474 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER7_BLOCK6_PRICE_ATTRIBUTE_ID 0x8475 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER7_BLOCK7_PRICE_ATTRIBUTE_ID 0x8476 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER7_BLOCK8_PRICE_ATTRIBUTE_ID 0x8477 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER7_BLOCK9_PRICE_ATTRIBUTE_ID 0x8478 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER7_BLOCK10_PRICE_ATTRIBUTE_ID 0x8479 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER7_BLOCK11_PRICE_ATTRIBUTE_ID 0x847A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER7_BLOCK12_PRICE_ATTRIBUTE_ID 0x847B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER7_BLOCK13_PRICE_ATTRIBUTE_ID 0x847C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER7_BLOCK14_PRICE_ATTRIBUTE_ID 0x847D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER7_BLOCK15_PRICE_ATTRIBUTE_ID 0x847E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER7_BLOCK16_PRICE_ATTRIBUTE_ID 0x847F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER8_BLOCK1_PRICE_ATTRIBUTE_ID 0x8480 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER8_BLOCK2_PRICE_ATTRIBUTE_ID 0x8481 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER8_BLOCK3_PRICE_ATTRIBUTE_ID 0x8482 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER8_BLOCK4_PRICE_ATTRIBUTE_ID 0x8483 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER8_BLOCK5_PRICE_ATTRIBUTE_ID 0x8484 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER8_BLOCK6_PRICE_ATTRIBUTE_ID 0x8485 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER8_BLOCK7_PRICE_ATTRIBUTE_ID 0x8486 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER8_BLOCK8_PRICE_ATTRIBUTE_ID 0x8487 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER8_BLOCK9_PRICE_ATTRIBUTE_ID 0x8488 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER8_BLOCK10_PRICE_ATTRIBUTE_ID 0x8489 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER8_BLOCK11_PRICE_ATTRIBUTE_ID 0x848A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER8_BLOCK12_PRICE_ATTRIBUTE_ID 0x848B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER8_BLOCK13_PRICE_ATTRIBUTE_ID 0x848C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER8_BLOCK14_PRICE_ATTRIBUTE_ID 0x848D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER8_BLOCK15_PRICE_ATTRIBUTE_ID 0x848E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER8_BLOCK16_PRICE_ATTRIBUTE_ID 0x848F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER9_BLOCK1_PRICE_ATTRIBUTE_ID 0x8490 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER9_BLOCK2_PRICE_ATTRIBUTE_ID 0x8491 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER9_BLOCK3_PRICE_ATTRIBUTE_ID 0x8492 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER9_BLOCK4_PRICE_ATTRIBUTE_ID 0x8493 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER9_BLOCK5_PRICE_ATTRIBUTE_ID 0x8494 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER9_BLOCK6_PRICE_ATTRIBUTE_ID 0x8495 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER9_BLOCK7_PRICE_ATTRIBUTE_ID 0x8496 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER9_BLOCK8_PRICE_ATTRIBUTE_ID 0x8497 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER9_BLOCK9_PRICE_ATTRIBUTE_ID 0x8498 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER9_BLOCK10_PRICE_ATTRIBUTE_ID 0x8499 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER9_BLOCK11_PRICE_ATTRIBUTE_ID 0x849A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER9_BLOCK12_PRICE_ATTRIBUTE_ID 0x849B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER9_BLOCK13_PRICE_ATTRIBUTE_ID 0x849C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER9_BLOCK14_PRICE_ATTRIBUTE_ID 0x849D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER9_BLOCK15_PRICE_ATTRIBUTE_ID 0x849E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER9_BLOCK16_PRICE_ATTRIBUTE_ID 0x849F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER10_BLOCK1_PRICE_ATTRIBUTE_ID 0x84A0 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER10_BLOCK2_PRICE_ATTRIBUTE_ID 0x84A1 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER10_BLOCK3_PRICE_ATTRIBUTE_ID 0x84A2 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER10_BLOCK4_PRICE_ATTRIBUTE_ID 0x84A3 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER10_BLOCK5_PRICE_ATTRIBUTE_ID 0x84A4 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER10_BLOCK6_PRICE_ATTRIBUTE_ID 0x84A5 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER10_BLOCK7_PRICE_ATTRIBUTE_ID 0x84A6 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER10_BLOCK8_PRICE_ATTRIBUTE_ID 0x84A7 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER10_BLOCK9_PRICE_ATTRIBUTE_ID 0x84A8 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER10_BLOCK10_PRICE_ATTRIBUTE_ID 0x84A9 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER10_BLOCK11_PRICE_ATTRIBUTE_ID 0x84AA // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER10_BLOCK12_PRICE_ATTRIBUTE_ID 0x84AB // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER10_BLOCK13_PRICE_ATTRIBUTE_ID 0x84AC // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER10_BLOCK14_PRICE_ATTRIBUTE_ID 0x84AD // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER10_BLOCK15_PRICE_ATTRIBUTE_ID 0x84AE // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER10_BLOCK16_PRICE_ATTRIBUTE_ID 0x84AF // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER11_BLOCK1_PRICE_ATTRIBUTE_ID 0x84B0 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER11_BLOCK2_PRICE_ATTRIBUTE_ID 0x84B1 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER11_BLOCK3_PRICE_ATTRIBUTE_ID 0x84B2 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER11_BLOCK4_PRICE_ATTRIBUTE_ID 0x84B3 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER11_BLOCK5_PRICE_ATTRIBUTE_ID 0x84B4 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER11_BLOCK6_PRICE_ATTRIBUTE_ID 0x84B5 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER11_BLOCK7_PRICE_ATTRIBUTE_ID 0x84B6 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER11_BLOCK8_PRICE_ATTRIBUTE_ID 0x84B7 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER11_BLOCK9_PRICE_ATTRIBUTE_ID 0x84B8 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER11_BLOCK10_PRICE_ATTRIBUTE_ID 0x84B9 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER11_BLOCK11_PRICE_ATTRIBUTE_ID 0x84BA // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER11_BLOCK12_PRICE_ATTRIBUTE_ID 0x84BB // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER11_BLOCK13_PRICE_ATTRIBUTE_ID 0x84BC // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER11_BLOCK14_PRICE_ATTRIBUTE_ID 0x84BD // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER11_BLOCK15_PRICE_ATTRIBUTE_ID 0x84BE // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER11_BLOCK16_PRICE_ATTRIBUTE_ID 0x84BF // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER12_BLOCK1_PRICE_ATTRIBUTE_ID 0x84C0 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER12_BLOCK2_PRICE_ATTRIBUTE_ID 0x84C1 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER12_BLOCK3_PRICE_ATTRIBUTE_ID 0x84C2 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER12_BLOCK4_PRICE_ATTRIBUTE_ID 0x84C3 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER12_BLOCK5_PRICE_ATTRIBUTE_ID 0x84C4 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER12_BLOCK6_PRICE_ATTRIBUTE_ID 0x84C5 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER12_BLOCK7_PRICE_ATTRIBUTE_ID 0x84C6 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER12_BLOCK8_PRICE_ATTRIBUTE_ID 0x84C7 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER12_BLOCK9_PRICE_ATTRIBUTE_ID 0x84C8 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER12_BLOCK10_PRICE_ATTRIBUTE_ID 0x84C9 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER12_BLOCK11_PRICE_ATTRIBUTE_ID 0x84CA // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER12_BLOCK12_PRICE_ATTRIBUTE_ID 0x84CB // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER12_BLOCK13_PRICE_ATTRIBUTE_ID 0x84CC // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER12_BLOCK14_PRICE_ATTRIBUTE_ID 0x84CD // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER12_BLOCK15_PRICE_ATTRIBUTE_ID 0x84CE // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER12_BLOCK16_PRICE_ATTRIBUTE_ID 0x84CF // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER13_BLOCK1_PRICE_ATTRIBUTE_ID 0x84D0 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER13_BLOCK2_PRICE_ATTRIBUTE_ID 0x84D1 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER13_BLOCK3_PRICE_ATTRIBUTE_ID 0x84D2 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER13_BLOCK4_PRICE_ATTRIBUTE_ID 0x84D3 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER13_BLOCK5_PRICE_ATTRIBUTE_ID 0x84D4 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER13_BLOCK6_PRICE_ATTRIBUTE_ID 0x84D5 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER13_BLOCK7_PRICE_ATTRIBUTE_ID 0x84D6 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER13_BLOCK8_PRICE_ATTRIBUTE_ID 0x84D7 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER13_BLOCK9_PRICE_ATTRIBUTE_ID 0x84D8 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER13_BLOCK10_PRICE_ATTRIBUTE_ID 0x84D9 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER13_BLOCK11_PRICE_ATTRIBUTE_ID 0x84DA // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER13_BLOCK12_PRICE_ATTRIBUTE_ID 0x84DB // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER13_BLOCK13_PRICE_ATTRIBUTE_ID 0x84DC // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER13_BLOCK14_PRICE_ATTRIBUTE_ID 0x84DD // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER13_BLOCK15_PRICE_ATTRIBUTE_ID 0x84DE // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER13_BLOCK16_PRICE_ATTRIBUTE_ID 0x84DF // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER14_BLOCK1_PRICE_ATTRIBUTE_ID 0x84E0 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER14_BLOCK2_PRICE_ATTRIBUTE_ID 0x84E1 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER14_BLOCK3_PRICE_ATTRIBUTE_ID 0x84E2 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER14_BLOCK4_PRICE_ATTRIBUTE_ID 0x84E3 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER14_BLOCK5_PRICE_ATTRIBUTE_ID 0x84E4 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER14_BLOCK6_PRICE_ATTRIBUTE_ID 0x84E5 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER14_BLOCK7_PRICE_ATTRIBUTE_ID 0x84E6 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER14_BLOCK8_PRICE_ATTRIBUTE_ID 0x84E7 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER14_BLOCK9_PRICE_ATTRIBUTE_ID 0x84E8 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER14_BLOCK10_PRICE_ATTRIBUTE_ID 0x84E9 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER14_BLOCK11_PRICE_ATTRIBUTE_ID 0x84EA // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER14_BLOCK12_PRICE_ATTRIBUTE_ID 0x84EB // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER14_BLOCK13_PRICE_ATTRIBUTE_ID 0x84EC // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER14_BLOCK14_PRICE_ATTRIBUTE_ID 0x84ED // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER14_BLOCK15_PRICE_ATTRIBUTE_ID 0x84EE // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER14_BLOCK16_PRICE_ATTRIBUTE_ID 0x84EF // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER15_BLOCK1_PRICE_ATTRIBUTE_ID 0x84F0 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER15_BLOCK2_PRICE_ATTRIBUTE_ID 0x84F1 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER15_BLOCK3_PRICE_ATTRIBUTE_ID 0x84F2 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER15_BLOCK4_PRICE_ATTRIBUTE_ID 0x84F3 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER15_BLOCK5_PRICE_ATTRIBUTE_ID 0x84F4 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER15_BLOCK6_PRICE_ATTRIBUTE_ID 0x84F5 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER15_BLOCK7_PRICE_ATTRIBUTE_ID 0x84F6 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER15_BLOCK8_PRICE_ATTRIBUTE_ID 0x84F7 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER15_BLOCK9_PRICE_ATTRIBUTE_ID 0x84F8 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER15_BLOCK10_PRICE_ATTRIBUTE_ID 0x84F9 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER15_BLOCK11_PRICE_ATTRIBUTE_ID 0x84FA // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER15_BLOCK12_PRICE_ATTRIBUTE_ID 0x84FB // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER15_BLOCK13_PRICE_ATTRIBUTE_ID 0x84FC // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER15_BLOCK14_PRICE_ATTRIBUTE_ID 0x84FD // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER15_BLOCK15_PRICE_ATTRIBUTE_ID 0x84FE // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER15_BLOCK16_PRICE_ATTRIBUTE_ID 0x84FF // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_PRICE_TIER16_ATTRIBUTE_ID 0x850F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_PRICE_TIER17_ATTRIBUTE_ID 0x8510 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_PRICE_TIER18_ATTRIBUTE_ID 0x8511 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_PRICE_TIER19_ATTRIBUTE_ID 0x8512 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_PRICE_TIER20_ATTRIBUTE_ID 0x8513 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_PRICE_TIER21_ATTRIBUTE_ID 0x8514 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_PRICE_TIER22_ATTRIBUTE_ID 0x8515 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_PRICE_TIER23_ATTRIBUTE_ID 0x8516 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_PRICE_TIER24_ATTRIBUTE_ID 0x8517 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_PRICE_TIER25_ATTRIBUTE_ID 0x8518 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_PRICE_TIER26_ATTRIBUTE_ID 0x8519 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_PRICE_TIER27_ATTRIBUTE_ID 0x851A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_PRICE_TIER28_ATTRIBUTE_ID 0x851B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_PRICE_TIER29_ATTRIBUTE_ID 0x851C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_PRICE_TIER30_ATTRIBUTE_ID 0x851D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_PRICE_TIER31_ATTRIBUTE_ID 0x851E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_PRICE_TIER32_ATTRIBUTE_ID 0x851F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_PRICE_TIER33_ATTRIBUTE_ID 0x8520 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_PRICE_TIER34_ATTRIBUTE_ID 0x8521 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_PRICE_TIER35_ATTRIBUTE_ID 0x8522 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_PRICE_TIER36_ATTRIBUTE_ID 0x8523 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_PRICE_TIER37_ATTRIBUTE_ID 0x8524 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_PRICE_TIER38_ATTRIBUTE_ID 0x8525 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_PRICE_TIER39_ATTRIBUTE_ID 0x8526 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_PRICE_TIER40_ATTRIBUTE_ID 0x8527 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_PRICE_TIER41_ATTRIBUTE_ID 0x8528 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_PRICE_TIER42_ATTRIBUTE_ID 0x8529 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_PRICE_TIER43_ATTRIBUTE_ID 0x852A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_PRICE_TIER44_ATTRIBUTE_ID 0x852B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_PRICE_TIER45_ATTRIBUTE_ID 0x852C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_PRICE_TIER46_ATTRIBUTE_ID 0x852D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_PRICE_TIER47_ATTRIBUTE_ID 0x852E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_PRICE_TIER48_ATTRIBUTE_ID 0x852F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TARIFF_LABEL_ATTRIBUTE_ID 0x8610 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_NUMBER_OF_PRICE_TIERS_IN_USE_ATTRIBUTE_ID 0x8611 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_NUMBER_OF_BLOCK_THRESHOLDS_IN_USE_ATTRIBUTE_ID 0x8612 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER_BLOCK_MODE_ATTRIBUTE_ID 0x8613 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TARIFF_RESOLUTION_PERIOD_ATTRIBUTE_ID 0x8615 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_CO2_ATTRIBUTE_ID 0x8625 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_CO2_UNIT_ATTRIBUTE_ID 0x8626 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_CO2_TRAILING_DIGIT_ATTRIBUTE_ID 0x8627 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_CURRENT_BILLING_PERIOD_START_ATTRIBUTE_ID 0x8700 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_CURRENT_BILLING_PERIOD_DURATION_ATTRIBUTE_ID 0x8701 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_LAST_BILLING_PERIOD_START_ATTRIBUTE_ID 0x8702 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_LAST_BILLING_PERIOD_DURATION_ATTRIBUTE_ID 0x8703 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_LAST_BILLING_PERIOD_CONSOLIDATED_BILL_ATTRIBUTE_ID 0x8704 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PRICE_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_PRICE_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Demand Response and Load Control -// Cluster specification level: se-1.2b-15-0131-02 - -// Client attributes -#define ZCL_UTILITY_ENROLLMENT_GROUP_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_START_RANDOMIZATION_MINUTES_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_DURATION_RANDOMIZATION_MINUTES_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_DEVICE_CLASS_VALUE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_DEMAND_RESPONSE_LOAD_CONTROL_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_DEMAND_RESPONSE_LOAD_CONTROL_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_DEMAND_RESPONSE_LOAD_CONTROL_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_DEMAND_RESPONSE_LOAD_CONTROL_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Simple Metering -// Cluster specification level: se-1.2b-15-0131-02 - -// Client attributes -#define ZCL_FUNCTIONAL_NOTIFICATION_FLAGS_ATTRIBUTE_ID 0x0000 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_NOTIFICATION_FLAGS_2_ATTRIBUTE_ID 0x0001 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_NOTIFICATION_FLAGS_3_ATTRIBUTE_ID 0x0002 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_NOTIFICATION_FLAGS_4_ATTRIBUTE_ID 0x0003 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_NOTIFICATION_FLAGS_5_ATTRIBUTE_ID 0x0004 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_NOTIFICATION_FLAGS_6_ATTRIBUTE_ID 0x0005 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_NOTIFICATION_FLAGS_7_ATTRIBUTE_ID 0x0006 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_NOTIFICATION_FLAGS_8_ATTRIBUTE_ID 0x0007 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_SIMPLE_METERING_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_SIMPLE_METERING_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_CURRENT_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_CURRENT_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_CURRENT_MAX_DEMAND_DELIVERED_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_CURRENT_MAX_DEMAND_RECEIVED_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_DFT_SUMMATION_ATTRIBUTE_ID 0x0004 // Ver.: always -#define ZCL_DAILY_FREEZE_TIME_ATTRIBUTE_ID 0x0005 // Ver.: always -#define ZCL_POWER_FACTOR_ATTRIBUTE_ID 0x0006 // Ver.: always -#define ZCL_READING_SNAP_SHOT_TIME_ATTRIBUTE_ID 0x0007 // Ver.: always -#define ZCL_CURRENT_MAX_DEMAND_DELIVERED_TIME_ATTRIBUTE_ID 0x0008 // Ver.: always -#define ZCL_CURRENT_MAX_DEMAND_RECEIVED_TIME_ATTRIBUTE_ID 0x0009 // Ver.: always -#define ZCL_DEFAULT_UPDATE_PERIOD_ATTRIBUTE_ID 0x000A // Ver.: since se-1.1-07-5356-16 -#define ZCL_FAST_POLL_UPDATE_PERIOD_ATTRIBUTE_ID 0x000B // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_BLOCK_PERIOD_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x000C // Ver.: since se-1.1-07-5356-16 -#define ZCL_DAILY_CONSUMPTION_TARGET_ATTRIBUTE_ID 0x000D // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_BLOCK_ATTRIBUTE_ID 0x000E // Ver.: since se-1.1-07-5356-16 -#define ZCL_PROFILE_INTERVAL_PERIOD_ATTRIBUTE_ID 0x000F // Ver.: since se-1.1-07-5356-16 -#define ZCL_INTERVAL_READ_REPORTING_PERIOD_ATTRIBUTE_ID 0x0010 // Ver.: since se-1.1-07-5356-16 -#define ZCL_PRESET_READING_TIME_ATTRIBUTE_ID 0x0011 // Ver.: since se-1.1-07-5356-16 -#define ZCL_VOLUME_PER_REPORT_ATTRIBUTE_ID 0x0012 // Ver.: since se-1.1-07-5356-16 -#define ZCL_FLOW_RESTRICTION_ATTRIBUTE_ID 0x0013 // Ver.: since se-1.1-07-5356-16 -#define ZCL_SUPPLY_STATUS_ATTRIBUTE_ID 0x0014 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_INLET_ENERGY_CARRIER_SUMMATION_ATTRIBUTE_ID 0x0015 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_OUTLET_ENERGY_CARRIER_SUMMATION_ATTRIBUTE_ID 0x0016 // Ver.: since se-1.1-07-5356-16 -#define ZCL_INLET_TEMPERATURE_ATTRIBUTE_ID 0x0017 // Ver.: since se-1.1-07-5356-16 -#define ZCL_OUTLET_TEMPERATURE_ATTRIBUTE_ID 0x0018 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CONTROL_TEMPERATURE_ATTRIBUTE_ID 0x0019 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_INLET_ENERGY_CARRIER_DEMAND_ATTRIBUTE_ID 0x001A // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_OUTLET_ENERGY_CARRIER_DEMAND_ATTRIBUTE_ID 0x001B // Ver.: since se-1.1-07-5356-16 -#define ZCL_PREVIOUS_BLOCK_PERIOD_CONSUMIPTION_DELIVERED_ATTRIBUTE_ID 0x001C // Ver.: since se-1.1b-07-5356-18 -#define ZCL_CURRENT_BLOCK_PERIOD_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x001D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_BLOCK_RECEIVED_ATTRIBUTE_ID 0x001E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_DFT_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x001F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_ACTIVE_REGISTER_TIER_DELIVERED_ATTRIBUTE_ID 0x0020 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_ACTIVE_REGISTER_TIER_RECEIVED_ATTRIBUTE_ID 0x0021 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_LAST_BLOCK_SWITCH_TIME_ATTRIBUTE_ID 0x0022 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER1_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0100 // Ver.: always -#define ZCL_CURRENT_TIER1_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0101 // Ver.: always -#define ZCL_CURRENT_TIER2_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0102 // Ver.: always -#define ZCL_CURRENT_TIER2_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0103 // Ver.: always -#define ZCL_CURRENT_TIER3_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0104 // Ver.: always -#define ZCL_CURRENT_TIER3_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0105 // Ver.: always -#define ZCL_CURRENT_TIER4_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0106 // Ver.: always -#define ZCL_CURRENT_TIER4_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0107 // Ver.: always -#define ZCL_CURRENT_TIER5_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0108 // Ver.: always -#define ZCL_CURRENT_TIER5_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0109 // Ver.: always -#define ZCL_CURRENT_TIER6_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x010A // Ver.: always -#define ZCL_CURRENT_TIER6_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x010B // Ver.: always -#define ZCL_CURRENT_TIER7_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x010C // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER7_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x010D // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER8_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x010E // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER8_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x010F // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER9_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0110 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER9_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0111 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER10_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0112 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER10_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0113 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER11_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0114 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER11_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0115 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER12_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0116 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER12_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0117 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER13_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0118 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER13_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0119 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER14_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x011A // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER14_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x011B // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER15_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x011C // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER15_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x011D // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER16_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x011E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER16_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x011F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER17_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0120 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER17_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0121 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER18_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0122 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER18_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0123 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER19_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0124 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER19_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0125 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER20_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0126 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER20_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0127 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER21_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0128 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER21_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0129 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER22_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x012A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER22_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x012B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER23_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x012C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER23_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x012D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER24_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x012E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER24_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x012F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER25_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0130 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER25_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0131 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER26_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0132 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER26_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0133 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER27_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0134 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER27_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0135 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER28_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0136 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER28_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0137 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER29_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0138 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER29_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0139 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER30_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x013A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER30_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x013B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER31_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x013C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER31_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x013D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER32_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x013E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER32_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x013F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER33_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0140 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER33_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0141 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER34_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0142 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER34_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0143 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER35_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0144 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER35_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0145 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER36_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0146 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER36_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0147 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER37_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0148 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER37_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0149 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER38_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x014A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER38_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x014B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER39_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x014C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER39_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x014D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER40_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x014E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER40_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x014F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER41_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0150 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER41_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0151 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER42_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0152 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER42_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0153 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER43_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0154 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER43_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0155 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER44_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0156 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER44_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0157 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER45_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0158 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER45_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0159 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER46_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x015A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER46_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x015B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER47_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x015C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER47_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x015D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER48_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x015E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER48_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x015F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CPP1_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x01FC // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CPP2_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x01FE // Ver.: since se-1.2a-07-5356-19 -#define ZCL_STATUS_ATTRIBUTE_ID 0x0200 // Ver.: always -#define ZCL_REMAINING_BATTERY_LIFE_ATTRIBUTE_ID 0x0201 // Ver.: since se-1.1-07-5356-16 -#define ZCL_HOURS_IN_OPERATION_ATTRIBUTE_ID 0x0202 // Ver.: since se-1.1-07-5356-16 -#define ZCL_HOURS_IN_FAULT_ATTRIBUTE_ID 0x0203 // Ver.: since se-1.1-07-5356-16 -#define ZCL_EXTENDED_STATUS_ATTRIBUTE_ID 0x0204 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_REMAINING_BATTERY_LIFE_IN_DAYS_ATTRIBUTE_ID 0x0205 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_METER_ID_ATTRIBUTE_ID 0x0206 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_AMBIENT_CONSUMPTION_INDICATOR_ATTRIBUTE_ID 0x0207 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_UNIT_OF_MEASURE_ATTRIBUTE_ID 0x0300 // Ver.: always -#define ZCL_MULTIPLIER_ATTRIBUTE_ID 0x0301 // Ver.: always -#define ZCL_DIVISOR_ATTRIBUTE_ID 0x0302 // Ver.: always -#define ZCL_SUMMATION_FORMATTING_ATTRIBUTE_ID 0x0303 // Ver.: always -#define ZCL_DEMAND_FORMATTING_ATTRIBUTE_ID 0x0304 // Ver.: always -#define ZCL_HISTORICAL_CONSUMPTION_FORMATTING_ATTRIBUTE_ID 0x0305 // Ver.: always -#define ZCL_METERING_DEVICE_TYPE_ATTRIBUTE_ID 0x0306 // Ver.: always -#define ZCL_SITE_ID_ATTRIBUTE_ID 0x0307 // Ver.: since se-1.1-07-5356-16 -#define ZCL_METER_SERIAL_NUMBER_ATTRIBUTE_ID 0x0308 // Ver.: since se-1.1-07-5356-16 -#define ZCL_ENERGY_CARRIER_UNIT_OF_MEASURE_ATTRIBUTE_ID 0x0309 // Ver.: since se-1.1-07-5356-16 -#define ZCL_ENERGY_CARRIER_SUMMATION_FORMATTING_ATTRIBUTE_ID 0x030A // Ver.: since se-1.1-07-5356-16 -#define ZCL_ENERGY_CARRIER_DEMAND_FORMATTING_ATTRIBUTE_ID 0x030B // Ver.: since se-1.1-07-5356-16 -#define ZCL_TEMPERATURE_UNIT_OF_MEASURE_ATTRIBUTE_ID 0x030C // Ver.: since se-1.1-07-5356-16 -#define ZCL_TEMPERATURE_FORMATTING_ATTRIBUTE_ID 0x030D // Ver.: since se-1.1-07-5356-16 -#define ZCL_MODULE_SERIAL_NUMBER_ATTRIBUTE_ID 0x030E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_OPERATING_TARIFF_LABEL_DELIVERED_ATTRIBUTE_ID 0x030F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_OPERATING_TARIFF_LABEL_RECEIVED_ATTRIBUTE_ID 0x0310 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CUSTOMER_ID_NUMBER_ATTRIBUTE_ID 0x0311 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_ALTERNATIVE_UNIT_OF_MEASURE_ATTRIBUTE_ID 0x0312 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_ALTERNATIVE_DEMAND_FORMATTING_ATTRIBUTE_ID 0x0313 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_ALTERNATIVE_CONSUMPTION_FORMATTING_ATTRIBUTE_ID 0x0314 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_INSTANTANEOUS_DEMAND_ATTRIBUTE_ID 0x0400 // Ver.: always -#define ZCL_CURRENT_DAY_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0401 // Ver.: always -#define ZCL_CURRENT_DAY_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0402 // Ver.: always -#define ZCL_PREVIOUS_DAY_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0403 // Ver.: always -#define ZCL_PREVIOUS_DAY_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0404 // Ver.: always -#define ZCL_CURRENT_PARTIAL_PROFILE_INTERVAL_START_TIME_DELIVERED_ATTRIBUTE_ID 0x0405 // Ver.: always -#define ZCL_CURRENT_PARTIAL_PROFILE_INTERVAL_START_TIME_RECEIVED_ATTRIBUTE_ID 0x0406 // Ver.: always -#define ZCL_CURRENT_PARTIAL_PROFILE_INTERVAL_VALUE_DELIVERED_ATTRIBUTE_ID 0x0407 // Ver.: always -#define ZCL_CURRENT_PARTIAL_PROFILE_INTERVAL_VALUE_RECEIVED_ATTRIBUTE_ID 0x0408 // Ver.: always -#define ZCL_CURRENT_DAY_MAX_PRESSURE_ATTRIBUTE_ID 0x0409 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_DAY_MIN_PRESSURE_ATTRIBUTE_ID 0x040A // Ver.: since se-1.1-07-5356-16 -#define ZCL_PREVIOUS_DAY_MAX_PRESSURE_ATTRIBUTE_ID 0x040B // Ver.: since se-1.1-07-5356-16 -#define ZCL_PREVIOUS_DAY_MIN_PRESSURE_ATTRIBUTE_ID 0x040C // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_DAY_MAX_DEMAND_ATTRIBUTE_ID 0x040D // Ver.: since se-1.1-07-5356-16 -#define ZCL_PREVIOUS_DAY_MAX_DEMAND_ATTRIBUTE_ID 0x040E // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_MONTH_MAX_DEMAND_ATTRIBUTE_ID 0x040F // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_YEAR_MAX_DEMAND_ATTRIBUTE_ID 0x0410 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_DAY_MAX_ENERGY_CARRIER_DEMAND_ATTRIBUTE_ID 0x0411 // Ver.: since se-1.1-07-5356-16 -#define ZCL_PREVIOUS_DAY_MAX_ENERGY_CARRIER_DEMAND_ATTRIBUTE_ID 0x0412 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_MONTH_MAX_ENERGY_CARRIER_DEMAND_ATTRIBUTE_ID 0x0413 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_MONTH_MIN_ENERGY_CARRIER_DEMAND_ATTRIBUTE_ID 0x0414 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_YEAR_MAX_ENERGY_CARRIER_DEMAND_ATTRIBUTE_ID 0x0415 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_YEAR_MIN_ENERGY_CARRIER_DEMAND_ATTRIBUTE_ID 0x0416 // Ver.: since se-1.1-07-5356-16 -#define ZCL_PREVIOUS_DAY2_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0420 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY2_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0421 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY3_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0422 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY3_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0423 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY4_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0424 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY4_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0425 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY5_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0426 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY5_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0427 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY6_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0428 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY6_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0429 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY7_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x042A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY7_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x042B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY8_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x042C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY8_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x042D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_WEEK_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0430 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_WEEK_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0431 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_WEEK_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0432 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_WEEK_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0433 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_WEEK2_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0434 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_WEEK2_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0435 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_WEEK3_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0436 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_WEEK3_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0437 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_WEEK4_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0438 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_WEEK4_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0439 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_WEEK5_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x043A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_WEEK5_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x043B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_MONTH_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0440 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_MONTH_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0441 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0442 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0443 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH2_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0444 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH2_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0445 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH3_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0446 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH3_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0447 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH4_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0448 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH4_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0449 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH5_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x044A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH5_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x044B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH6_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x044C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH6_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x044D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH7_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x044E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH7_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x044F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH8_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0450 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH8_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0451 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH9_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0452 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH9_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0453 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH10_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0454 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH10_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0455 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH11_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0456 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH11_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0457 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH12_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0458 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH12_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0459 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH13_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x045A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH13_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x045B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_METERING_HISTORICAL_FREEZE_TIME_ATTRIBUTE_ID 0x045C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_DAY_MAX_DEMAND_DELIVERED_ATTRIBUTE_ID 0x045D // Ver.: since se-1.4-17-05019-001 -#define ZCL_CURRENT_DAY_MAX_DEMAND_DELIVERED_TIME_ATTRIBUTE_ID 0x045E // Ver.: since se-1.4-17-05019-001 -#define ZCL_CURRENT_DAY_MAX_DEMAND_RECEIVED_ATTRIBUTE_ID 0x045F // Ver.: since se-1.4-17-05019-001 -#define ZCL_CURRENT_DAY_MAX_DEMAND_RECEIVED_TIME_ATTRIBUTE_ID 0x0460 // Ver.: since se-1.4-17-05019-001 -#define ZCL_PREVIOUS_DAY_MAX_DEMAND_DELIVERED_ATTRIBUTE_ID 0x0461 // Ver.: since se-1.4-17-05019-001 -#define ZCL_PREVIOUS_DAY_MAX_DEMAND_DELIVERED_TIME_ATTRIBUTE_ID 0x0462 // Ver.: since se-1.4-17-05019-001 -#define ZCL_PREVIOUS_DAY_MAX_DEMAND_RECEIVED_ATTRIBUTE_ID 0x0463 // Ver.: since se-1.4-17-05019-001 -#define ZCL_PREVIOUS_DAY_MAX_DEMAND_RECEIVED_TIME_ATTRIBUTE_ID 0x0464 // Ver.: since se-1.4-17-05019-001 -#define ZCL_MAX_NUMBER_OF_PERIODS_DELIVERED_ATTRIBUTE_ID 0x0500 // Ver.: always -#define ZCL_CURRENT_DEMAND_DELIVERED_ATTRIBUTE_ID 0x0600 // Ver.: always -#define ZCL_DEMAND_LIMIT_ATTRIBUTE_ID 0x0601 // Ver.: always -#define ZCL_DEMAND_INTEGRATION_PERIOD_ATTRIBUTE_ID 0x0602 // Ver.: always -#define ZCL_NUMBER_OF_DEMAND_SUBINTERVALS_ATTRIBUTE_ID 0x0603 // Ver.: always -#define ZCL_DEMAND_LIMIT_ARM_DURATION_IN_MINUTES_ATTRIBUTE_ID 0x0604 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_LOAD_LIMIT_SUPPLY_STATE_ATTRIBUTE_ID 0x0605 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_LOAD_LIMIT_COUNTER_ATTRIBUTE_ID 0x0606 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_SUPPLY_TAMPER_STATE_ATTRIBUTE_ID 0x0607 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_SUPPLY_DEPLETION_STATE_ATTRIBUTE_ID 0x0608 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_SUPPLY_UNCONTROLLED_FLOW_STATE_ATTRIBUTE_ID 0x0609 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_NO_TIER_BLOCK1_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0700 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_NO_TIER_BLOCK2_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0701 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_NO_TIER_BLOCK3_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0702 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_NO_TIER_BLOCK4_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0703 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_NO_TIER_BLOCK5_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0704 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_NO_TIER_BLOCK6_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0705 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_NO_TIER_BLOCK7_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0706 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_NO_TIER_BLOCK8_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0707 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_NO_TIER_BLOCK9_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0708 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_NO_TIER_BLOCK10_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0709 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_NO_TIER_BLOCK11_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x070A // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_NO_TIER_BLOCK12_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x070B // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_NO_TIER_BLOCK13_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x070C // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_NO_TIER_BLOCK14_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x070D // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_NO_TIER_BLOCK15_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x070E // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_NO_TIER_BLOCK16_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x070F // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER1_BLOCK1_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0710 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER1_BLOCK2_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0711 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER1_BLOCK3_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0712 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER1_BLOCK4_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0713 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER1_BLOCK5_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0714 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER1_BLOCK6_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0715 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER1_BLOCK7_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0716 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER1_BLOCK8_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0717 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER1_BLOCK9_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0718 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER1_BLOCK10_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0719 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER1_BLOCK11_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x071A // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER1_BLOCK12_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x071B // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER1_BLOCK13_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x071C // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER1_BLOCK14_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x071D // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER1_BLOCK15_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x071E // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER1_BLOCK16_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x071F // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER2_BLOCK1_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0720 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER2_BLOCK2_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0721 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER2_BLOCK3_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0722 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER2_BLOCK4_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0723 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER2_BLOCK5_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0724 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER2_BLOCK6_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0725 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER2_BLOCK7_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0726 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER2_BLOCK8_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0727 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER2_BLOCK9_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0728 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER2_BLOCK10_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0729 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER2_BLOCK11_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x072A // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER2_BLOCK12_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x072B // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER2_BLOCK13_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x072C // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER2_BLOCK14_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x072D // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER2_BLOCK15_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x072E // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER2_BLOCK16_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x072F // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER3_BLOCK1_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0730 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER3_BLOCK2_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0731 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER3_BLOCK3_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0732 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER3_BLOCK4_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0733 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER3_BLOCK5_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0734 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER3_BLOCK6_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0735 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER3_BLOCK7_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0736 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER3_BLOCK8_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0737 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER3_BLOCK9_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0738 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER3_BLOCK10_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0739 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER3_BLOCK11_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x073A // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER3_BLOCK12_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x073B // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER3_BLOCK13_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x073C // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER3_BLOCK14_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x073D // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER3_BLOCK15_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x073E // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER3_BLOCK16_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x073F // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER4_BLOCK1_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0740 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER4_BLOCK2_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0741 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER4_BLOCK3_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0742 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER4_BLOCK4_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0743 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER4_BLOCK5_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0744 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER4_BLOCK6_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0745 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER4_BLOCK7_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0746 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER4_BLOCK8_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0747 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER4_BLOCK9_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0748 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER4_BLOCK10_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0749 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER4_BLOCK11_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x074A // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER4_BLOCK12_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x074B // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER4_BLOCK13_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x074C // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER4_BLOCK14_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x074D // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER4_BLOCK15_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x074E // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER4_BLOCK16_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x074F // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER5_BLOCK1_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0750 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER5_BLOCK2_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0751 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER5_BLOCK3_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0752 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER5_BLOCK4_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0753 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER5_BLOCK5_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0754 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER5_BLOCK6_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0755 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER5_BLOCK7_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0756 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER5_BLOCK8_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0757 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER5_BLOCK9_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0758 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER5_BLOCK10_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0759 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER5_BLOCK11_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x075A // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER5_BLOCK12_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x075B // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER5_BLOCK13_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x075C // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER5_BLOCK14_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x075D // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER5_BLOCK15_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x075E // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER5_BLOCK16_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x075F // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER6_BLOCK1_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0760 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER6_BLOCK2_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0761 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER6_BLOCK3_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0762 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER6_BLOCK4_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0763 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER6_BLOCK5_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0764 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER6_BLOCK6_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0765 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER6_BLOCK7_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0766 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER6_BLOCK8_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0767 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER6_BLOCK9_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0768 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER6_BLOCK10_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0769 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER6_BLOCK11_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x076A // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER6_BLOCK12_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x076B // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER6_BLOCK13_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x076C // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER6_BLOCK14_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x076D // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER6_BLOCK15_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x076E // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER6_BLOCK16_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x076F // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER7_BLOCK1_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0770 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER7_BLOCK2_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0771 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER7_BLOCK3_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0772 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER7_BLOCK4_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0773 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER7_BLOCK5_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0774 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER7_BLOCK6_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0775 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER7_BLOCK7_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0776 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER7_BLOCK8_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0777 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER7_BLOCK9_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0778 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER7_BLOCK10_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0779 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER7_BLOCK11_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x077A // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER7_BLOCK12_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x077B // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER7_BLOCK13_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x077C // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER7_BLOCK14_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x077D // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER7_BLOCK15_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x077E // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER7_BLOCK16_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x077F // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER8_BLOCK1_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0780 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER8_BLOCK2_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0781 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER8_BLOCK3_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0782 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER8_BLOCK4_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0783 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER8_BLOCK5_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0784 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER8_BLOCK6_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0785 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER8_BLOCK7_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0786 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER8_BLOCK8_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0787 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER8_BLOCK9_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0788 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER8_BLOCK10_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0789 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER8_BLOCK11_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x078A // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER8_BLOCK12_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x078B // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER8_BLOCK13_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x078C // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER8_BLOCK14_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x078D // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER8_BLOCK15_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x078E // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER8_BLOCK16_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x078F // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER9_BLOCK1_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0790 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER9_BLOCK2_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0791 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER9_BLOCK3_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0792 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER9_BLOCK4_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0793 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER9_BLOCK5_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0794 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER9_BLOCK6_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0795 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER9_BLOCK7_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0796 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER9_BLOCK8_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0797 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER9_BLOCK9_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0798 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER9_BLOCK10_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0799 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER9_BLOCK11_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x079A // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER9_BLOCK12_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x079B // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER9_BLOCK13_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x079C // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER9_BLOCK14_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x079D // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER9_BLOCK15_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x079E // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER9_BLOCK16_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x079F // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER10_BLOCK1_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07A0 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER10_BLOCK2_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07A1 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER10_BLOCK3_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07A2 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER10_BLOCK4_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07A3 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER10_BLOCK5_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07A4 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER10_BLOCK6_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07A5 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER10_BLOCK7_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07A6 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER10_BLOCK8_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07A7 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER10_BLOCK9_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07A8 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER10_BLOCK10_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07A9 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER10_BLOCK11_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07AA // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER10_BLOCK12_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07AB // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER10_BLOCK13_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07AC // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER10_BLOCK14_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07AD // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER10_BLOCK15_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07AE // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER10_BLOCK16_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07AF // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER11_BLOCK1_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07B0 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER11_BLOCK2_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07B1 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER11_BLOCK3_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07B2 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER11_BLOCK4_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07B3 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER11_BLOCK5_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07B4 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER11_BLOCK6_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07B5 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER11_BLOCK7_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07B6 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER11_BLOCK8_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07B7 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER11_BLOCK9_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07B8 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER11_BLOCK10_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07B9 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER11_BLOCK11_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07BA // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER11_BLOCK12_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07BB // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER11_BLOCK13_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07BC // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER11_BLOCK14_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07BD // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER11_BLOCK15_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07BE // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER11_BLOCK16_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07BF // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER12_BLOCK1_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07C0 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER12_BLOCK2_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07C1 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER12_BLOCK3_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07C2 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER12_BLOCK4_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07C3 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER12_BLOCK5_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07C4 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER12_BLOCK6_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07C5 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER12_BLOCK7_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07C6 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER12_BLOCK8_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07C7 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER12_BLOCK9_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07C8 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER12_BLOCK10_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07C9 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER12_BLOCK11_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07CA // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER12_BLOCK12_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07CB // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER12_BLOCK13_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07CC // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER12_BLOCK14_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07CD // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER12_BLOCK15_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07CE // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER12_BLOCK16_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07CF // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER13_BLOCK1_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07D0 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER13_BLOCK2_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07D1 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER13_BLOCK3_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07D2 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER13_BLOCK4_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07D3 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER13_BLOCK5_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07D4 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER13_BLOCK6_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07D5 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER13_BLOCK7_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07D6 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER13_BLOCK8_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07D7 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER13_BLOCK9_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07D8 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER13_BLOCK10_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07D9 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER13_BLOCK11_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07DA // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER13_BLOCK12_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07DB // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER13_BLOCK13_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07DC // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER13_BLOCK14_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07DD // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER13_BLOCK15_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07DE // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER13_BLOCK16_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07DF // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER14_BLOCK1_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07E0 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER14_BLOCK2_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07E1 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER14_BLOCK3_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07E2 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER14_BLOCK4_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07E3 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER14_BLOCK5_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07E4 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER14_BLOCK6_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07E5 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER14_BLOCK7_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07E6 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER14_BLOCK8_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07E7 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER14_BLOCK9_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07E8 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER14_BLOCK10_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07E9 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER14_BLOCK11_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07EA // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER14_BLOCK12_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07EB // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER14_BLOCK13_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07EC // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER14_BLOCK14_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07ED // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER14_BLOCK15_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07EE // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER14_BLOCK16_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07EF // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER15_BLOCK1_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07F0 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER15_BLOCK2_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07F1 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER15_BLOCK3_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07F2 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER15_BLOCK4_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07F3 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER15_BLOCK5_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07F4 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER15_BLOCK6_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07F5 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER15_BLOCK7_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07F6 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER15_BLOCK8_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07F7 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER15_BLOCK9_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07F8 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER15_BLOCK10_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07F9 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER15_BLOCK11_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07FA // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER15_BLOCK12_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07FB // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER15_BLOCK13_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07FC // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER15_BLOCK14_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07FD // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER15_BLOCK15_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07FE // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER15_BLOCK16_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07FF // Ver.: since se-1.1-07-5356-16 -#define ZCL_GENERIC_ALARM_MASK_ATTRIBUTE_ID 0x0800 // Ver.: since se-1.1-07-5356-16 -#define ZCL_ELECTRICITY_ALARM_MASK_ATTRIBUTE_ID 0x0801 // Ver.: since se-1.1-07-5356-16 -#define ZCL_GENERIC_FLOW_PRESSURE_ALARM_MASK_ATTRIBUTE_ID 0x0802 // Ver.: since se-1.1-07-5356-16 -#define ZCL_WATER_SPECIFIC_ALARM_MASK_ATTRIBUTE_ID 0x0803 // Ver.: since se-1.1-07-5356-16 -#define ZCL_HEAT_AND_COOLING_SPECIFIC_ALARM_MASK_ATTRIBUTE_ID 0x0804 // Ver.: since se-1.1-07-5356-16 -#define ZCL_GAS_SPECIFIC_ALARM_MASK_ATTRIBUTE_ID 0x0805 // Ver.: since se-1.1-07-5356-16 -#define ZCL_METERING_EXTENDED_GENERIC_ALARM_MASK_ATTRIBUTE_ID 0x0806 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_METERING_MANUFACTURE_ALARM_MASK_ATTRIBUTE_ID 0x0807 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_NO_TIER_BLOCK1_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0900 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_NO_TIER_BLOCK2_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0901 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_NO_TIER_BLOCK3_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0902 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_NO_TIER_BLOCK4_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0903 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_NO_TIER_BLOCK5_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0904 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_NO_TIER_BLOCK6_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0905 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_NO_TIER_BLOCK7_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0906 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_NO_TIER_BLOCK8_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0907 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_NO_TIER_BLOCK9_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0908 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_NO_TIER_BLOCK10_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0909 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_NO_TIER_BLOCK11_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x090A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_NO_TIER_BLOCK12_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x090B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_NO_TIER_BLOCK13_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x090C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_NO_TIER_BLOCK14_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x090D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_NO_TIER_BLOCK15_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x090E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_NO_TIER_BLOCK16_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x090F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER1_BLOCK1_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0910 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER1_BLOCK2_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0911 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER1_BLOCK3_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0912 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER1_BLOCK4_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0913 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER1_BLOCK5_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0914 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER1_BLOCK6_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0915 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER1_BLOCK7_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0916 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER1_BLOCK8_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0917 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER1_BLOCK9_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0918 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER1_BLOCK10_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0919 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER1_BLOCK11_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x091A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER1_BLOCK12_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x091B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER1_BLOCK13_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x091C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER1_BLOCK14_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x091D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER1_BLOCK15_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x091E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER1_BLOCK16_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x091F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER2_BLOCK1_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0920 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER2_BLOCK2_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0921 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER2_BLOCK3_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0922 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER2_BLOCK4_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0923 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER2_BLOCK5_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0924 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER2_BLOCK6_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0925 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER2_BLOCK7_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0926 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER2_BLOCK8_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0927 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER2_BLOCK9_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0928 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER2_BLOCK10_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0929 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER2_BLOCK11_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x092A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER2_BLOCK12_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x092B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER2_BLOCK13_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x092C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER2_BLOCK14_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x092D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER2_BLOCK15_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x092E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER2_BLOCK16_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x092F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER3_BLOCK1_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0930 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER3_BLOCK2_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0931 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER3_BLOCK3_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0932 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER3_BLOCK4_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0933 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER3_BLOCK5_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0934 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER3_BLOCK6_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0935 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER3_BLOCK7_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0936 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER3_BLOCK8_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0937 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER3_BLOCK9_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0938 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER3_BLOCK10_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0939 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER3_BLOCK11_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x093A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER3_BLOCK12_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x093B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER3_BLOCK13_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x093C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER3_BLOCK14_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x093D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER3_BLOCK15_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x093E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER3_BLOCK16_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x093F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER4_BLOCK1_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0940 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER4_BLOCK2_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0941 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER4_BLOCK3_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0942 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER4_BLOCK4_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0943 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER4_BLOCK5_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0944 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER4_BLOCK6_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0945 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER4_BLOCK7_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0946 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER4_BLOCK8_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0947 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER4_BLOCK9_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0948 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER4_BLOCK10_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0949 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER4_BLOCK11_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x094A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER4_BLOCK12_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x094B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER4_BLOCK13_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x094C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER4_BLOCK14_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x094D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER4_BLOCK15_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x094E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER4_BLOCK16_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x094F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER5_BLOCK1_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0950 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER5_BLOCK2_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0951 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER5_BLOCK3_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0952 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER5_BLOCK4_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0953 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER5_BLOCK5_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0954 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER5_BLOCK6_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0955 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER5_BLOCK7_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0956 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER5_BLOCK8_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0957 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER5_BLOCK9_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0958 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER5_BLOCK10_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0959 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER5_BLOCK11_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x095A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER5_BLOCK12_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x095B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER5_BLOCK13_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x095C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER5_BLOCK14_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x095D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER5_BLOCK15_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x095E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER5_BLOCK16_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x095F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER6_BLOCK1_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0960 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER6_BLOCK2_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0961 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER6_BLOCK3_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0962 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER6_BLOCK4_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0963 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER6_BLOCK5_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0964 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER6_BLOCK6_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0965 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER6_BLOCK7_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0966 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER6_BLOCK8_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0967 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER6_BLOCK9_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0968 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER6_BLOCK10_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0969 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER6_BLOCK11_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x096A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER6_BLOCK12_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x096B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER6_BLOCK13_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x096C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER6_BLOCK14_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x096D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER6_BLOCK15_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x096E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER6_BLOCK16_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x096F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER7_BLOCK1_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0970 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER7_BLOCK2_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0971 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER7_BLOCK3_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0972 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER7_BLOCK4_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0973 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER7_BLOCK5_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0974 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER7_BLOCK6_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0975 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER7_BLOCK7_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0976 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER7_BLOCK8_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0977 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER7_BLOCK9_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0978 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER7_BLOCK10_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0979 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER7_BLOCK11_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x097A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER7_BLOCK12_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x097B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER7_BLOCK13_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x097C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER7_BLOCK14_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x097D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER7_BLOCK15_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x097E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER7_BLOCK16_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x097F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER8_BLOCK1_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0980 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER8_BLOCK2_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0981 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER8_BLOCK3_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0982 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER8_BLOCK4_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0983 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER8_BLOCK5_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0984 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER8_BLOCK6_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0985 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER8_BLOCK7_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0986 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER8_BLOCK8_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0987 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER8_BLOCK9_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0988 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER8_BLOCK10_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0989 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER8_BLOCK11_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x098A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER8_BLOCK12_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x098B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER8_BLOCK13_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x098C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER8_BLOCK14_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x098D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER8_BLOCK15_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x098E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER8_BLOCK16_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x098F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER9_BLOCK1_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0990 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER9_BLOCK2_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0991 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER9_BLOCK3_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0992 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER9_BLOCK4_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0993 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER9_BLOCK5_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0994 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER9_BLOCK6_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0995 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER9_BLOCK7_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0996 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER9_BLOCK8_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0997 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER9_BLOCK9_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0998 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER9_BLOCK10_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0999 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER9_BLOCK11_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x099A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER9_BLOCK12_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x099B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER9_BLOCK13_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x099C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER9_BLOCK14_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x099D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER9_BLOCK15_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x099E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER9_BLOCK16_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x099F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER10_BLOCK1_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09A0 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER10_BLOCK2_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09A1 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER10_BLOCK3_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09A2 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER10_BLOCK4_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09A3 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER10_BLOCK5_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09A4 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER10_BLOCK6_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09A5 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER10_BLOCK7_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09A6 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER10_BLOCK8_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09A7 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER10_BLOCK9_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09A8 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER10_BLOCK10_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09A9 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER10_BLOCK11_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09AA // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER10_BLOCK12_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09AB // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER10_BLOCK13_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09AC // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER10_BLOCK14_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09AD // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER10_BLOCK15_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09AE // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER10_BLOCK16_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09AF // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER11_BLOCK1_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09B0 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER11_BLOCK2_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09B1 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER11_BLOCK3_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09B2 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER11_BLOCK4_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09B3 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER11_BLOCK5_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09B4 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER11_BLOCK6_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09B5 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER11_BLOCK7_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09B6 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER11_BLOCK8_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09B7 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER11_BLOCK9_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09B8 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER11_BLOCK10_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09B9 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER11_BLOCK11_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09BA // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER11_BLOCK12_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09BB // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER11_BLOCK13_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09BC // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER11_BLOCK14_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09BD // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER11_BLOCK15_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09BE // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER11_BLOCK16_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09BF // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER12_BLOCK1_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09C0 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER12_BLOCK2_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09C1 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER12_BLOCK3_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09C2 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER12_BLOCK4_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09C3 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER12_BLOCK5_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09C4 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER12_BLOCK6_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09C5 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER12_BLOCK7_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09C6 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER12_BLOCK8_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09C7 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER12_BLOCK9_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09C8 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER12_BLOCK10_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09C9 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER12_BLOCK11_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09CA // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER12_BLOCK12_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09CB // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER12_BLOCK13_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09CC // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER12_BLOCK14_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09CD // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER12_BLOCK15_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09CE // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER12_BLOCK16_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09CF // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER13_BLOCK1_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09D0 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER13_BLOCK2_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09D1 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER13_BLOCK3_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09D2 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER13_BLOCK4_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09D3 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER13_BLOCK5_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09D4 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER13_BLOCK6_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09D5 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER13_BLOCK7_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09D6 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER13_BLOCK8_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09D7 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER13_BLOCK9_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09D8 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER13_BLOCK10_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09D9 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER13_BLOCK11_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09DA // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER13_BLOCK12_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09DB // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER13_BLOCK13_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09DC // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER13_BLOCK14_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09DD // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER13_BLOCK15_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09DE // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER13_BLOCK16_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09DF // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER14_BLOCK1_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09E0 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER14_BLOCK2_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09E1 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER14_BLOCK3_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09E2 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER14_BLOCK4_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09E3 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER14_BLOCK5_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09E4 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER14_BLOCK6_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09E5 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER14_BLOCK7_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09E6 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER14_BLOCK8_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09E7 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER14_BLOCK9_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09E8 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER14_BLOCK10_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09E9 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER14_BLOCK11_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09EA // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER14_BLOCK12_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09EB // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER14_BLOCK13_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09EC // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER14_BLOCK14_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09ED // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER14_BLOCK15_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09EE // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER14_BLOCK16_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09EF // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER15_BLOCK1_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09F0 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER15_BLOCK2_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09F1 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER15_BLOCK3_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09F2 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER15_BLOCK4_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09F3 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER15_BLOCK5_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09F4 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER15_BLOCK6_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09F5 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER15_BLOCK7_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09F6 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER15_BLOCK8_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09F7 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER15_BLOCK9_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09F8 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER15_BLOCK10_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09F9 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER15_BLOCK11_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09FA // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER15_BLOCK12_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09FB // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER15_BLOCK13_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09FC // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER15_BLOCK14_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09FD // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER15_BLOCK15_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09FE // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER15_BLOCK16_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09FF // Ver.: since se-1.2a-07-5356-19 -#define ZCL_BILL_TO_DATE_DELIVERED_ATTRIBUTE_ID 0x0A00 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_BILL_TO_DATE_TIME_STAMP_DELIVERED_ATTRIBUTE_ID 0x0A01 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PROJECTED_BILL_DELIVERED_ATTRIBUTE_ID 0x0A02 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PROJECTED_BILL_TIME_STAMP_DELIVERED_ATTRIBUTE_ID 0x0A03 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_BILL_DELIVERED_TRAILING_DIGIT_ATTRIBUTE_ID 0x0A04 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_BILL_TO_DATE_RECEIVED_ATTRIBUTE_ID 0x0A10 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_BILL_TO_DATE_TIME_STAMP_RECEIVED_ATTRIBUTE_ID 0x0A11 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PROJECTED_BILL_RECEIVED_ATTRIBUTE_ID 0x0A12 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PROJECTED_BILL_TIME_STAMP_RECEIVED_ATTRIBUTE_ID 0x0A13 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_BILL_RECEIVED_TRAILING_DIGIT_ATTRIBUTE_ID 0x0A14 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PROPOSED_CHANGE_SUPPLY_IMPLEMENTATION_TIME_ATTRIBUTE_ID 0x0B00 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PROPOSED_CHANGE_SUPPLY_STATUS_ATTRIBUTE_ID 0x0B01 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_UNCONTROLLED_FLOW_THESHOLD_ATTRIBUTE_ID 0x0B10 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_UNCONTROLLED_FLOW_THESHOLD_UNIT_OF_MEASURE_ATTRIBUTE_ID 0x0B11 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_UNCONTROLLED_FLOW_MULTIPLIER_ATTRIBUTE_ID 0x0B12 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_UNCONTROLLED_FLOW_DIVISOR_ATTRIBUTE_ID 0x0B13 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_FLOW_STABILIZATION_PERIOD_ATTRIBUTE_ID 0x0B14 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_FLOW_MEASUREMENT_PERIOD_ATTRIBUTE_ID 0x0B15 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_ALTERNATIVE_INSTANTANEOUS_DEMAND_ATTRIBUTE_ID 0x0C00 // Ver.: always -#define ZCL_CURRENT_ALTERNATIVE_DAY_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0C01 // Ver.: always -#define ZCL_CURRENT_ALTERNATIVE_DAY_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0C02 // Ver.: always -#define ZCL_PREVIOUS_DAY_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0C03 // Ver.: always -#define ZCL_PREVIOUS_DAY_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0C04 // Ver.: always -#define ZCL_CURRENT_ALTERNATIVE_PARTIAL_PROFILE_INTERVAL_START_TIME_DELIVERED_ATTRIBUTE_ID 0x0C05 // Ver.: always -#define ZCL_CURRENT_ALTERNATIVE_PARTIAL_PROFILE_INTERVAL_START_TIME_RECEIVED_ATTRIBUTE_ID 0x0C06 // Ver.: always -#define ZCL_CURRENT_ALTERNATIVE_PARTIAL_PROFILE_INTERVAL_VALUE_DELIVERED_ATTRIBUTE_ID 0x0C07 // Ver.: always -#define ZCL_CURRENT_ALTERNATIVE_PARTIAL_PROFILE_INTERVAL_VALUE_RECEIVED_ATTRIBUTE_ID 0x0C08 // Ver.: always -#define ZCL_CURRENT_ALTERNATIVE_DAY_MAX_PRESSURE_ATTRIBUTE_ID 0x0C09 // Ver.: always -#define ZCL_CURRENT_ALTERNATIVE_DAY_MIN_PRESSURE_ATTRIBUTE_ID 0x0C0A // Ver.: always -#define ZCL_PREVIOUS_DAY_ALTERNATIVE_MAX_PRESSURE_ATTRIBUTE_ID 0x0C0B // Ver.: always -#define ZCL_PREVIOUS_DAY_ALTERNATIVE_MIN_PRESSURE_ATTRIBUTE_ID 0x0C0C // Ver.: always -#define ZCL_CURRENT_ALTERNATIVE_DAY_ALTERNATIVE_MAX_DEMAND_ATTRIBUTE_ID 0x0C0D // Ver.: always -#define ZCL_PREVIOUS_DAY_ALTERNATIVE_MAX_DEMAND_ATTRIBUTE_ID 0x0C0E // Ver.: always -#define ZCL_CURRENT_ALTERNATIVE_MONTH_MAX_DEMAND_ATTRIBUTE_ID 0x0C0F // Ver.: always -#define ZCL_CURRENT_ALTERNATIVE_YEAR_MAX_DEMAND_ATTRIBUTE_ID 0x0C10 // Ver.: always -#define ZCL_PREVIOUS_DAY2_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0C20 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY2_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0C21 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY3_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0C22 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY3_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0C23 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY4_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0C24 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY4_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0C25 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY5_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0C26 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY5_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0C27 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY6_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0C28 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY6_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0C29 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY7_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0C2A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY7_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0C2B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY8_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0C2C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY8_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0C2D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_WEEK_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0C30 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_WEEK_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0C31 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_WEEK_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0C32 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_WEEK_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0C33 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_WEEK2_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0C34 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_WEEK2_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0C35 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_WEEK3_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0C36 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_WEEK3_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0C37 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_WEEK4_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0C38 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_WEEK4_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0C39 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_WEEK5_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0C3A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_WEEK5_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0C3B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_MONTH_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0C40 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_MONTH_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0C41 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0C42 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0C43 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH2_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0C44 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH2_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0C45 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH3_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0C46 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH3_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0C47 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH4_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0C48 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH4_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0C49 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH5_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0C4A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH5_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0C4B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH6_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0C4C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH6_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0C4D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH7_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0C4E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH7_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0C4F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH8_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0C50 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH8_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0C51 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH9_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0C52 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH9_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0C53 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH10_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0C54 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH10_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0C55 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH11_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0C56 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH11_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0C57 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH12_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0C58 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH12_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0C59 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH13_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0C5A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH13_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0C5B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_DAY_ALTERNATIVE_MAX_DEMAND_DELIVERED_ATTRIBUTE_ID 0x0C5C // Ver.: since se-1.4-17-05019-001 -#define ZCL_CURRENT_DAY_ALTERNATIVE_MAX_DEMAND_DELIVERED_TIME_ATTRIBUTE_ID 0x0C5D // Ver.: since se-1.4-17-05019-001 -#define ZCL_CURRENT_DAY_ALTERNATIVE_MAX_DEMAND_RECEIVED_ATTRIBUTE_ID 0x0C5E // Ver.: since se-1.4-17-05019-001 -#define ZCL_CURRENT_DAY_ALTERNATIVE_MAX_DEMAND_RECEIVED_TIME_ATTRIBUTE_ID 0x0C5F // Ver.: since se-1.4-17-05019-001 -#define ZCL_PREVIOUS_DAY_ALTERNATIVE_MAX_DEMAND_DELIVERED_ATTRIBUTE_ID 0x0C60 // Ver.: since se-1.4-17-05019-001 -#define ZCL_PREVIOUS_DAY_ALTERNATIVE_MAX_DEMAND_DELIVERED_TIME_ATTRIBUTE_ID 0x0C61 // Ver.: since se-1.4-17-05019-001 -#define ZCL_PREVIOUS_DAY_ALTERNATIVE_MAX_DEMAND_RECEIVED_ATTRIBUTE_ID 0x0C62 // Ver.: since se-1.4-17-05019-001 -#define ZCL_PREVIOUS_DAY_ALTERNATIVE_MAX_DEMAND_RECEIVED_TIME_ATTRIBUTE_ID 0x0C63 // Ver.: since se-1.4-17-05019-001 -#define ZCL_CURRENT_ACTIVE_SUMMATION_Q1_ATTRIBUTE_ID 0x0D01 // Ver.: since se-1.4-17-05019-001 -#define ZCL_CURRENT_ACTIVE_SUMMATION_Q2_ATTRIBUTE_ID 0x0D02 // Ver.: since se-1.4-17-05019-001 -#define ZCL_CURRENT_ACTIVE_SUMMATION_Q3_ATTRIBUTE_ID 0x0D03 // Ver.: since se-1.4-17-05019-001 -#define ZCL_CURRENT_ACTIVE_SUMMATION_Q4_ATTRIBUTE_ID 0x0D04 // Ver.: since se-1.4-17-05019-001 -#define ZCL_CURRENT_REACTIVE_SUMMATION_Q1_ATTRIBUTE_ID 0x0D05 // Ver.: since se-1.4-17-05019-001 -#define ZCL_CURRENT_REACTIVE_SUMMATION_Q2_ATTRIBUTE_ID 0x0D06 // Ver.: since se-1.4-17-05019-001 -#define ZCL_CURRENT_REACTIVE_SUMMATION_Q3_ATTRIBUTE_ID 0x0D07 // Ver.: since se-1.4-17-05019-001 -#define ZCL_CURRENT_REACTIVE_SUMMATION_Q4_ATTRIBUTE_ID 0x0D08 // Ver.: since se-1.4-17-05019-001 -#define ZCL_SIMPLE_METERING_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_SIMPLE_METERING_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Messaging -// Cluster specification level: se-1.2b-15-0131-02 - -// Client attributes -#define ZCL_MESSAGING_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_MESSAGING_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_MESSAGING_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_MESSAGING_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Tunneling -// Cluster specification level: se-1.2b-15-0131-02 - -// Client attributes -#define ZCL_TUNNELING_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_TUNNELING_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_CLOSE_TUNNEL_TIMEOUT_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_TUNNELING_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_TUNNELING_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Prepayment -// Cluster specification level: se-1.2b-15-0131-02 - -// Client attributes -#define ZCL_PREPAYMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_PREPAYMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_PAYMENT_CONTROL_CONFIGURATION_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_CREDIT_REMAINING_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_EMERGENCY_CREDIT_REMAINING_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_CREDIT_STATUS_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_CREDIT_REMAINING_TIMESTAMP_ATTRIBUTE_ID 0x0004 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_ACCUMULATED_DEBT_ATTRIBUTE_ID 0x0005 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_OVERALL_DEBT_CAP_ATTRIBUTE_ID 0x0006 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_EMERGENCY_CREDIT_LIMIT_ALLOWANCE_ATTRIBUTE_ID 0x0010 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_EMERGENCY_CREDIT_THRESHOLD_ATTRIBUTE_ID 0x0011 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TOTAL_CREDIT_ADDED_ATTRIBUTE_ID 0x0020 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_MAX_CREDIT_LIMIT_ATTRIBUTE_ID 0x0021 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_MAX_CREDIT_PER_TOP_UP_ATTRIBUTE_ID 0x0022 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_FRIENDLY_CREDIT_WARNING_ATTRIBUTE_ID 0x0030 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_LOW_CREDIT_WARNING_ATTRIBUTE_ID 0x0031 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_IHD_LOW_CREDIT_WARNING_ATTRIBUTE_ID 0x0032 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_INTERRUPT_SUSPEND_TIME_ATTRIBUTE_ID 0x0033 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_REMAINING_FRIENDLY_CREDIT_TIME_ATTRIBUTE_ID 0x0034 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_NEXT_FRIENDLY_CREDIT_PERIOD_ATTRIBUTE_ID 0x0035 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CUT_OFF_VALUE_ATTRIBUTE_ID 0x0040 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TOKEN_CARRIER_ID_ATTRIBUTE_ID 0x0080 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TOP_UP_DATE_TIME_1_ATTRIBUTE_ID 0x0100 // Ver.: always -#define ZCL_TOP_UP_AMOUNT_1_ATTRIBUTE_ID 0x0101 // Ver.: always -#define ZCL_TOP_UP_ORIGINATING_DEVICE_1_ATTRIBUTE_ID 0x0102 // Ver.: always -#define ZCL_TOP_UP_CODE_1_ATTRIBUTE_ID 0x0103 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TOP_UP_DATE_TIME_2_ATTRIBUTE_ID 0x0110 // Ver.: always -#define ZCL_TOP_UP_AMOUNT_2_ATTRIBUTE_ID 0x0111 // Ver.: always -#define ZCL_TOP_UP_ORIGINATING_DEVICE_2_ATTRIBUTE_ID 0x0112 // Ver.: always -#define ZCL_TOP_UP_CODE_2_ATTRIBUTE_ID 0x0113 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TOP_UP_DATE_TIME_3_ATTRIBUTE_ID 0x0120 // Ver.: always -#define ZCL_TOP_UP_AMOUNT_3_ATTRIBUTE_ID 0x0121 // Ver.: always -#define ZCL_TOP_UP_ORIGINATING_DEVICE_3_ATTRIBUTE_ID 0x0122 // Ver.: always -#define ZCL_TOP_UP_CODE_3_ATTRIBUTE_ID 0x0123 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TOP_UP_DATE_TIME_4_ATTRIBUTE_ID 0x0130 // Ver.: always -#define ZCL_TOP_UP_AMOUNT_4_ATTRIBUTE_ID 0x0131 // Ver.: always -#define ZCL_TOP_UP_ORIGINATING_DEVICE_4_ATTRIBUTE_ID 0x0132 // Ver.: always -#define ZCL_TOP_UP_CODE_4_ATTRIBUTE_ID 0x0133 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TOP_UP_DATE_TIME_5_ATTRIBUTE_ID 0x0140 // Ver.: always -#define ZCL_TOP_UP_AMOUNT_5_ATTRIBUTE_ID 0x0141 // Ver.: always -#define ZCL_TOP_UP_ORIGINATING_DEVICE_5_ATTRIBUTE_ID 0x0142 // Ver.: always -#define ZCL_TOP_UP_CODE_5_ATTRIBUTE_ID 0x0143 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_DEBT_LABEL_1_ATTRIBUTE_ID 0x0210 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_DEBT_AMOUNT_1_ATTRIBUTE_ID 0x0211 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_DEBT_RECOVERY_METHOD_1_ATTRIBUTE_ID 0x0212 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_DEBT_RECOVERY_START_TIME_1_ATTRIBUTE_ID 0x0213 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_DEBT_RECOVERY_COLLECTION_TIME_1_ATTRIBUTE_ID 0x0214 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_DEBT_RECOVERY_FREQUENCY_1_ATTRIBUTE_ID 0x0216 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_DEBT_RECOVERY_AMOUNT_1_ATTRIBUTE_ID 0x0217 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_DEBT_RECOVERY_TOP_UP_PERCENTAGE_1_ATTRIBUTE_ID 0x0219 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_DEBT_LABEL_2_ATTRIBUTE_ID 0x0220 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_DEBT_AMOUNT_2_ATTRIBUTE_ID 0x0221 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_DEBT_RECOVERY_METHOD_2_ATTRIBUTE_ID 0x0222 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_DEBT_RECOVERY_START_TIME_2_ATTRIBUTE_ID 0x0223 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_DEBT_RECOVERY_COLLECTION_TIME_2_ATTRIBUTE_ID 0x0224 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_DEBT_RECOVERY_FREQUENCY_2_ATTRIBUTE_ID 0x0226 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_DEBT_RECOVERY_AMOUNT_2_ATTRIBUTE_ID 0x0227 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_DEBT_RECOVERY_TOP_UP_PERCENTAGE_2_ATTRIBUTE_ID 0x0229 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_DEBT_LABEL_3_ATTRIBUTE_ID 0x0230 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_DEBT_AMOUNT_3_ATTRIBUTE_ID 0x0231 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_DEBT_RECOVERY_METHOD_3_ATTRIBUTE_ID 0x0232 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_DEBT_RECOVERY_START_TIME_3_ATTRIBUTE_ID 0x0233 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_DEBT_RECOVERY_COLLECTION_TIME_3_ATTRIBUTE_ID 0x0234 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_DEBT_RECOVERY_FREQUENCY_3_ATTRIBUTE_ID 0x0236 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_DEBT_RECOVERY_AMOUNT_3_ATTRIBUTE_ID 0x0237 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_DEBT_RECOVERY_TOP_UP_PERCENTAGE_3_ATTRIBUTE_ID 0x0239 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREPAYMENT_ALARM_STATUS_ATTRIBUTE_ID 0x0400 // Ver.: since se-1.2a-07-5356-21 -#define ZCL_PREPAY_GENERIC_ALARM_MASK_ATTRIBUTE_ID 0x0401 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREPAY_SWITCH_ALARM_MASK_ATTRIBUTE_ID 0x0402 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREPAY_EVENT_ALARM_MASK_ATTRIBUTE_ID 0x0403 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_HISTORICAL_COST_CONSUMPTION_FORMATTING_ATTRIBUTE_ID 0x0500 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CONSUMPTION_UNIT_OF_MEASUREMENT_ATTRIBUTE_ID 0x0501 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENCY_SCALING_FACTOR_ATTRIBUTE_ID 0x0502 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREPAYMANT_CURRENCY_ATTRIBUTE_ID 0x0503 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_DAY_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x051C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_DAY_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x051D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x051E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x051F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY_2_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0520 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY_2_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0521 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY_3_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0522 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY_3_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0523 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY_4_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0524 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY_4_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0525 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY_5_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0526 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY_5_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0527 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY_6_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0528 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY_6_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0529 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY_7_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x052A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY_7_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x052B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY_8_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x052C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY_8_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x052D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_WEEK_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0530 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_WEEK_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0531 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_WEEK_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0532 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_WEEK_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0533 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_WEEK_2_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0534 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_WEEK_2_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0535 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_WEEK_3_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0536 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_WEEK_3_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0537 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_WEEK_4_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0538 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_WEEK_4_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0539 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_WEEK_5_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x053A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_WEEK_5_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x053B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_MONTH_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0540 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_MONTH_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0541 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0542 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0543 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH_2_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0544 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH_2_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0545 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH_3_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0546 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH_3_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0547 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH_4_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0548 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH_4_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0549 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH_5_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x054A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH_5_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x054B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH_6_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x054C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH_6_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x054D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH_7_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x054E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH_7_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x054F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH_8_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0550 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH_8_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0551 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH_9_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0552 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH_9_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0553 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH_10_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0554 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH_10_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0555 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH_11_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0556 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH_11_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0557 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH_12_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0558 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH_12_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0559 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH_13_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x055A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH_13_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x055B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREPAYMENT_HISTORICAL_FREEZE_TIME_ATTRIBUTE_ID 0x055C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREPAYMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_PREPAYMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Energy Management -// Cluster specification level: se-1.2b-15-0131-02 - -// Client attributes -#define ZCL_ENERGY_MANAGEMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_ENERGY_MANAGEMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_LOAD_CONTROL_STATE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_CURRENT_EVENT_ID_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_CURRENT_EVENT_STATUS_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_CONFORMANCE_LEVEL_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_MINIMUM_OFF_TIME_ATTRIBUTE_ID 0x0004 // Ver.: always -#define ZCL_MINIMUM_ON_TIME_ATTRIBUTE_ID 0x0005 // Ver.: always -#define ZCL_MINIMUM_CYCLE_PERIOD_ATTRIBUTE_ID 0x0006 // Ver.: always -#define ZCL_ENERGY_MANAGEMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_ENERGY_MANAGEMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Calendar -// Cluster specification level: se-1.2b-15-0131-02 - -// Client attributes -#define ZCL_CALENDAR_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_CALENDAR_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_AUXILIARY_SWITCH_1_LABEL_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_AUXILIARY_SWITCH_2_LABEL_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_AUXILIARY_SWITCH_3_LABEL_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_AUXILIARY_SWITCH_4_LABEL_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_AUXILIARY_SWITCH_5_LABEL_ATTRIBUTE_ID 0x0004 // Ver.: always -#define ZCL_AUXILIARY_SWITCH_6_LABEL_ATTRIBUTE_ID 0x0005 // Ver.: always -#define ZCL_AUXILIARY_SWITCH_7_LABEL_ATTRIBUTE_ID 0x0006 // Ver.: always -#define ZCL_AUXILIARY_SWITCH_8_LABEL_ATTRIBUTE_ID 0x0007 // Ver.: always -#define ZCL_CALENDAR_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_CALENDAR_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Device Management -// Cluster specification level: se-1.2b-15-0131-02 - -// Client attributes -#define ZCL_PROVIDER_ID_CLIENT_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_RECEIVED_PROVIDER_ID_CLIENT_ATTRIBUTE_ID 0x0010 // Ver.: always -#define ZCL_TOU_TARIFF_ACTIVATION_ATTRIBUTE_ID 0x0100 // Ver.: always -#define ZCL_BLOCK_TARIFF_ACTIVATED_ATTRIBUTE_ID 0x0101 // Ver.: always -#define ZCL_BLOCK_TOU_TARIFF_ACTIVATED_ATTRIBUTE_ID 0x0102 // Ver.: always -#define ZCL_SINGLE_TARIFF_RATE_ACTIVATED_ATTRIBUTE_ID 0x0103 // Ver.: always -#define ZCL_ASYNCHRONOUS_BILLING_OCCURRED_ATTRIBUTE_ID 0x0104 // Ver.: always -#define ZCL_SYNCHRONOUS_BILLING_OCCURRED_ATTRIBUTE_ID 0x0105 // Ver.: always -#define ZCL_TARIFF_NOT_SUPPORTED_ATTRIBUTE_ID 0x0106 // Ver.: always -#define ZCL_PRICE_CLUSTER_NOT_FOUND_ATTRIBUTE_ID 0x0107 // Ver.: always -#define ZCL_CURRENCY_CHANGE_PASSIVE_ACTIVATED_ATTRIBUTE_ID 0x0108 // Ver.: always -#define ZCL_CURRENCY_CHANGE_PASSIVE_UPDATED_ATTRIBUTE_ID 0x0109 // Ver.: always -#define ZCL_PRICE_MATRIX_PASSIVE_ACTIVATED_ATTRIBUTE_ID 0x010A // Ver.: always -#define ZCL_PRICE_MATRIX_PASSIVE_UPDATED_ATTRIBUTE_ID 0x010B // Ver.: always -#define ZCL_TARIFF_CHANGE_PASSIVE_ACTIVATED_ATTRIBUTE_ID 0x010C // Ver.: always -#define ZCL_TARIFF_CHANGE_PASSIVE_UPDATED_ATTRIBUTE_ID 0x010D // Ver.: always -#define ZCL_PUBLISH_PRICE_RECEIVED_ATTRIBUTE_ID 0x01B0 // Ver.: always -#define ZCL_PUBLISH_PRICE_ACTIONED_ATTRIBUTE_ID 0x01B1 // Ver.: always -#define ZCL_PUBLISH_PRICE_CANCELLED_ATTRIBUTE_ID 0x01B2 // Ver.: always -#define ZCL_PUBLISH_PRICE_REJECTED_ATTRIBUTE_ID 0x01B3 // Ver.: always -#define ZCL_PUBLISH_TARIFF_INFO_RECEIVED_ATTRIBUTE_ID 0x01B4 // Ver.: always -#define ZCL_PUBLISH_TARIFF_INFO_ACTIONED_ATTRIBUTE_ID 0x01B5 // Ver.: always -#define ZCL_PUBLISH_TARIFF_INFO_CANCELLED_ATTRIBUTE_ID 0x01B6 // Ver.: always -#define ZCL_PUBLISH_TARIFF_INFO_REJECTED_ATTRIBUTE_ID 0x01B7 // Ver.: always -#define ZCL_PUBLISH_PRICE_MATRIX_RECEIVED_ATTRIBUTE_ID 0x01B8 // Ver.: always -#define ZCL_PUBLISH_PRICE_MATRIX_ACTIONED_ATTRIBUTE_ID 0x01B9 // Ver.: always -#define ZCL_PUBLISH_PRICE_MATRIX_CANCELLED_ATTRIBUTE_ID 0x01BA // Ver.: always -#define ZCL_PUBLISH_PRICE_MATRIX_REJECTED_ATTRIBUTE_ID 0x01BB // Ver.: always -#define ZCL_PUBLISH_BLOCK_THRESHOLDS_RECEIVED_ATTRIBUTE_ID 0x01BC // Ver.: always -#define ZCL_PUBLISH_BLOCK_THRESHOLDS_ACTIONED_ATTRIBUTE_ID 0x01BD // Ver.: always -#define ZCL_PUBLISH_BLOCK_THRESHOLDS_CANCELLED_ATTRIBUTE_ID 0x01BE // Ver.: always -#define ZCL_PUBLISH_BLOCK_THRESHOLDS_REJECTED_ATTRIBUTE_ID 0x01BF // Ver.: always -#define ZCL_PUBLISH_CALORIFIC_VALUE_RECEIVED_ATTRIBUTE_ID 0x01C0 // Ver.: always -#define ZCL_PUBLISH_CALORIFIC_VALUE_ACTIONED_ATTRIBUTE_ID 0x01C1 // Ver.: always -#define ZCL_PUBLISH_CALORIFIC_VALUE_CANCELLED_ATTRIBUTE_ID 0x01C2 // Ver.: always -#define ZCL_PUBLISH_CALORIFIC_VALUE_REJECTED_ATTRIBUTE_ID 0x01C3 // Ver.: always -#define ZCL_PUBLISH_CONVERSION_FACTOR_RECEIVED_ATTRIBUTE_ID 0x01C4 // Ver.: always -#define ZCL_PUBLISH_CONVERSION_FACTOR_ACTIONED_ATTRIBUTE_ID 0x01C5 // Ver.: always -#define ZCL_PUBLISH_CONVERSION_FACTOR_CANCELLED_ATTRIBUTE_ID 0x01C6 // Ver.: always -#define ZCL_PUBLISH_CONVERSION_FACTOR_REJECTED_ATTRIBUTE_ID 0x01C7 // Ver.: always -#define ZCL_PUBLISH_CO2_VALUE_RECEIVED_ATTRIBUTE_ID 0x01C8 // Ver.: always -#define ZCL_PUBLISH_CO2_VALUE_ACTIONED_ATTRIBUTE_ID 0x01C9 // Ver.: always -#define ZCL_PUBLISH_CO2_VALUE_CANCELLED_ATTRIBUTE_ID 0x01CA // Ver.: always -#define ZCL_PUBLISH_CO2_VALUE_REJECTED_ATTRIBUTE_ID 0x01CB // Ver.: always -#define ZCL_PUBLISH_CPP_EVENT_RECEIVED_ATTRIBUTE_ID 0x01CC // Ver.: always -#define ZCL_PUBLISH_CPP_EVENT_ACTIONED_ATTRIBUTE_ID 0x01CD // Ver.: always -#define ZCL_PUBLISH_CPP_EVENT_CANCELLED_ATTRIBUTE_ID 0x01CE // Ver.: always -#define ZCL_PUBLISH_CPP_EVENT_REJECTED_ATTRIBUTE_ID 0x01CF // Ver.: always -#define ZCL_PUBLISH_TIER_LABELS_RECEIVED_ATTRIBUTE_ID 0x01D0 // Ver.: always -#define ZCL_PUBLISH_TIER_LABELS_ACTIONED_ATTRIBUTE_ID 0x01D1 // Ver.: always -#define ZCL_PUBLISH_TIER_LABELS_CANCELLED_ATTRIBUTE_ID 0x01D2 // Ver.: always -#define ZCL_PUBLISH_TIER_LABELS_REJECTED_ATTRIBUTE_ID 0x01D3 // Ver.: always -#define ZCL_PUBLISH_BILLING_PERIOD_RECEIVED_ATTRIBUTE_ID 0x01D4 // Ver.: always -#define ZCL_PUBLISH_BILLING_PERIOD_ACTIONED_ATTRIBUTE_ID 0x01D5 // Ver.: always -#define ZCL_PUBLISH_BILLING_PERIOD_CANCELLED_ATTRIBUTE_ID 0x01D6 // Ver.: always -#define ZCL_PUBLISH_BILLING_PERIOD_REJECTED_ATTRIBUTE_ID 0x01D7 // Ver.: always -#define ZCL_PUBLISH_CONSOLIDATED_BILL_RECEIVED_ATTRIBUTE_ID 0x01D8 // Ver.: always -#define ZCL_PUBLISH_CONSOLIDATED_BILL_ACTIONED_ATTRIBUTE_ID 0x01D9 // Ver.: always -#define ZCL_PUBLISH_CONSOLIDATED_BILL_CANCELLED_ATTRIBUTE_ID 0x01DA // Ver.: always -#define ZCL_PUBLISH_CONSOLIDATED_BILL_REJECTED_ATTRIBUTE_ID 0x01DB // Ver.: always -#define ZCL_PUBLISH_BLOCK_PERIOD_RECEIVED_ATTRIBUTE_ID 0x01DC // Ver.: always -#define ZCL_PUBLISH_BLOCK_PERIOD_ACTIONED_ATTRIBUTE_ID 0x01DD // Ver.: always -#define ZCL_PUBLISH_BLOCK_PERIOD_CANCELLED_ATTRIBUTE_ID 0x01DE // Ver.: always -#define ZCL_PUBLISH_BLOCK_PERIOD_REJECTED_ATTRIBUTE_ID 0x01DF // Ver.: always -#define ZCL_PUBLISH_CREDIT_PAYMENT_INFO_RECEIVED_ATTRIBUTE_ID 0x01E0 // Ver.: always -#define ZCL_PUBLISH_CREDIT_PAYMENT_INFO_ACTIONED_ATTRIBUTE_ID 0x01E1 // Ver.: always -#define ZCL_PUBLISH_CREDIT_PAYMENT_INFO_CANCELLED_ATTRIBUTE_ID 0x01E2 // Ver.: always -#define ZCL_PUBLISH_CREDIT_PAYMENT_INFO_REJECTED_ATTRIBUTE_ID 0x01E3 // Ver.: always -#define ZCL_PUBLISH_CURRENCY_CONVERSION_RECEIVED_ATTRIBUTE_ID 0x01E4 // Ver.: always -#define ZCL_PUBLISH_CURRENCY_CONVERSION_ACTIONED_ATTRIBUTE_ID 0x01E5 // Ver.: always -#define ZCL_PUBLISH_CURRENCY_CONVERSION_CANCELLED_ATTRIBUTE_ID 0x01E6 // Ver.: always -#define ZCL_PUBLISH_CURRENCY_CONVERSION_REJECTED_ATTRIBUTE_ID 0x01E7 // Ver.: always -#define ZCL_CHECK_METER_ATTRIBUTE_ID 0x0200 // Ver.: always -#define ZCL_LOW_BATTERY_ATTRIBUTE_ID 0x0201 // Ver.: always -#define ZCL_TAMPER_DETECT_ATTRIBUTE_ID 0x0202 // Ver.: always -#define ZCL_DEVICE_MANAGEMENT_SUPPLY_STATUS_ATTRIBUTE_ID 0x0203 // Ver.: always -#define ZCL_SUPPLY_QUALITY_ATTRIBUTE_ID 0x0204 // Ver.: always -#define ZCL_LEAK_DETECT_ATTRIBUTE_ID 0x0205 // Ver.: always -#define ZCL_SERVICE_DISCONNECT_ATTRIBUTE_ID 0x0206 // Ver.: always -#define ZCL_REVERSE_FLOW_GENERAL_ATTRIBUTE_ID 0x0207 // Ver.: always -#define ZCL_METER_COVER_REMOVED_ATTRIBUTE_ID 0x0208 // Ver.: always -#define ZCL_METER_COVER_CLOSED_ATTRIBUTE_ID 0x0209 // Ver.: always -#define ZCL_STRONG_MAGNETIC_FIELD_ATTRIBUTE_ID 0x020A // Ver.: always -#define ZCL_NO_STRONG_MAGNETIC_FIELD_ATTRIBUTE_ID 0x020B // Ver.: always -#define ZCL_BATTERY_FAILURE_ATTRIBUTE_ID 0x020C // Ver.: always -#define ZCL_PROGRAM_MEMORY_ERROR_ATTRIBUTE_ID 0x020D // Ver.: always -#define ZCL_RAM_ERROR_ATTRIBUTE_ID 0x020E // Ver.: always -#define ZCL_NV_MEMORY_ERROR_ATTRIBUTE_ID 0x020F // Ver.: always -#define ZCL_LOW_VOLTAGE_L1_ATTRIBUTE_ID 0x0210 // Ver.: always -#define ZCL_HIGH_VOLTAGE_L1_ATTRIBUTE_ID 0x0211 // Ver.: always -#define ZCL_LOW_VOLTAGE_L2_ATTRIBUTE_ID 0x0212 // Ver.: always -#define ZCL_HIGH_VOLTAGE_L2_ATTRIBUTE_ID 0x0213 // Ver.: always -#define ZCL_LOW_VOLTAGE_L3_ATTRIBUTE_ID 0x0214 // Ver.: always -#define ZCL_HIGH_VOLTAGE_L3_ATTRIBUTE_ID 0x0215 // Ver.: always -#define ZCL_OVER_CURRENT_L1_ATTRIBUTE_ID 0x0216 // Ver.: always -#define ZCL_OVER_CURRENT_L2_ATTRIBUTE_ID 0x0217 // Ver.: always -#define ZCL_OVER_CURRENT_L3_ATTRIBUTE_ID 0x0218 // Ver.: always -#define ZCL_FREQUENCY_TOO_LOW_L1_ATTRIBUTE_ID 0x0219 // Ver.: always -#define ZCL_FREQUENCY_TOO_HIGH_L1_ATTRIBUTE_ID 0x021A // Ver.: always -#define ZCL_FREQUENCY_TOO_LOW_L2_ATTRIBUTE_ID 0x021B // Ver.: always -#define ZCL_FREQUENCY_TOO_HIGH_L2_ATTRIBUTE_ID 0x021C // Ver.: always -#define ZCL_FREQUENCY_TOO_LOW_L3_ATTRIBUTE_ID 0x021D // Ver.: always -#define ZCL_FREQUENCY_TOO_HIGH_L3_ATTRIBUTE_ID 0x021E // Ver.: always -#define ZCL_GROUND_FAULT_ATTRIBUTE_ID 0x021F // Ver.: always -#define ZCL_ELECTRIC_TAMPER_DETECT_ATTRIBUTE_ID 0x0220 // Ver.: always -#define ZCL_INCORRECT_POLARITY_ATTRIBUTE_ID 0x0221 // Ver.: always -#define ZCL_CURRENT_NO_VOLTAGE_ATTRIBUTE_ID 0x0222 // Ver.: always -#define ZCL_UNDER_VOLTAGE_ATTRIBUTE_ID 0x0223 // Ver.: always -#define ZCL_OVER_VOLTAGE_ATTRIBUTE_ID 0x0224 // Ver.: always -#define ZCL_NORMAL_VOLTAGE_ATTRIBUTE_ID 0x0225 // Ver.: always -#define ZCL_PF_BELOW_THRESHOLD_ATTRIBUTE_ID 0x0226 // Ver.: always -#define ZCL_PF_ABOVE_THRESHOLD_ATTRIBUTE_ID 0x0227 // Ver.: always -#define ZCL_TERMINAL_COVER_REMOVED_ATTRIBUTE_ID 0x0228 // Ver.: always -#define ZCL_TERMINAL_COVER_CLOSED_ATTRIBUTE_ID 0x0229 // Ver.: always -#define ZCL_BURST_DETECT_ATTRIBUTE_ID 0x0230 // Ver.: always -#define ZCL_PRESSURE_TOO_LOW_ATTRIBUTE_ID 0x0231 // Ver.: always -#define ZCL_PRESSURE_TOO_HIGH_ATTRIBUTE_ID 0x0232 // Ver.: always -#define ZCL_FLOW_SENSOR_COMMUNICATION_ERROR_ATTRIBUTE_ID 0x0233 // Ver.: always -#define ZCL_FLOW_SENSOR_MEASUREMENT_FAULT_ATTRIBUTE_ID 0x0234 // Ver.: always -#define ZCL_FLOW_SENSOR_REVERSE_FLOW_ATTRIBUTE_ID 0x0235 // Ver.: always -#define ZCL_FLOW_SENSOR_AIR_DETECT_ATTRIBUTE_ID 0x0236 // Ver.: always -#define ZCL_PIPE_EMPTY_ATTRIBUTE_ID 0x0237 // Ver.: always -#define ZCL_INLET_TEMP_SENSOR_FAULT_ATTRIBUTE_ID 0x0250 // Ver.: always -#define ZCL_OUTLET_TEMP_SENSOR_FAULT_ATTRIBUTE_ID 0x0251 // Ver.: always -#define ZCL_REVERSE_FLOW_ATTRIBUTE_ID 0x0260 // Ver.: always -#define ZCL_TILT_TAMPER_ATTRIBUTE_ID 0x0261 // Ver.: always -#define ZCL_BATTERY_COVER_REMOVED_ATTRIBUTE_ID 0x0262 // Ver.: always -#define ZCL_BATTERY_COVER_CLOSED_ATTRIBUTE_ID 0x0263 // Ver.: always -#define ZCL_EXCESS_FLOW_ATTRIBUTE_ID 0x0264 // Ver.: always -#define ZCL_TILT_TAMPER_ENABLED_ATTRIBUTE_ID 0x0265 // Ver.: always -#define ZCL_MEASUREMENT_SYSTEM_ERROR_ATTRIBUTE_ID 0x0270 // Ver.: always -#define ZCL_WATCHDOG_ERROR_ATTRIBUTE_ID 0x0271 // Ver.: always -#define ZCL_SUPPLY_DISCONNECT_FAILURE_ATTRIBUTE_ID 0x0272 // Ver.: always -#define ZCL_SUPPLY_CONNECT_FAILURE_ATTRIBUTE_ID 0x0273 // Ver.: always -#define ZCL_MEASUREMENT_SOFTWARE_CHANGED_ATTRIBUTE_ID 0x0274 // Ver.: always -#define ZCL_DST_ENABLED_ATTRIBUTE_ID 0x0275 // Ver.: always -#define ZCL_DST_DISABLED_ATTRIBUTE_ID 0x0276 // Ver.: always -#define ZCL_CLOCK_ADJ_BACKWARD_ATTRIBUTE_ID 0x0277 // Ver.: always -#define ZCL_CLOCK_ADJ_FORWARD_ATTRIBUTE_ID 0x0278 // Ver.: always -#define ZCL_CLOCK_INVALID_ATTRIBUTE_ID 0x0279 // Ver.: always -#define ZCL_COMMUNICATION_ERROR_HAN_ATTRIBUTE_ID 0x027A // Ver.: always -#define ZCL_COMMUNICATION_OK_HAN_ATTRIBUTE_ID 0x027B // Ver.: always -#define ZCL_METER_FRAUD_ATTEMPT_ATTRIBUTE_ID 0x027C // Ver.: always -#define ZCL_POWER_LOSS_ATTRIBUTE_ID 0x027D // Ver.: always -#define ZCL_UNUSUAL_HAN_TRAFFIC_ATTRIBUTE_ID 0x027E // Ver.: always -#define ZCL_UNEXPECTED_CLOCK_CHANGE_ATTRIBUTE_ID 0x027F // Ver.: always -#define ZCL_COMMS_USING_UNAUTHENTICATED_COMPONENT_ATTRIBUTE_ID 0x0280 // Ver.: always -#define ZCL_METERING_ERROR_REG_CLEAR_ATTRIBUTE_ID 0x0281 // Ver.: always -#define ZCL_METERING_ALARM_REG_CLEAR_ATTRIBUTE_ID 0x0282 // Ver.: always -#define ZCL_UNEXPECTED_HW_RESET_ATTRIBUTE_ID 0x0283 // Ver.: always -#define ZCL_UNEXPECTED_PROGRAM_EXECUTION_ATTRIBUTE_ID 0x0284 // Ver.: always -#define ZCL_LIMIT_THRESHOLD_EXCEEDED_ATTRIBUTE_ID 0x0285 // Ver.: always -#define ZCL_LIMIT_THRESHOLD_OK_ATTRIBUTE_ID 0x0286 // Ver.: always -#define ZCL_LIMIT_THRESHOLD_CHANGED_ATTRIBUTE_ID 0x0287 // Ver.: always -#define ZCL_MAXIMUM_DEMAND_EXCEEDED_ATTRIBUTE_ID 0x0288 // Ver.: always -#define ZCL_PROFILE_CLEARED_ATTRIBUTE_ID 0x0289 // Ver.: always -#define ZCL_LOAD_PROFILE_CLEARED_ATTRIBUTE_ID 0x028A // Ver.: always -#define ZCL_BATTERY_WARN_ATTRIBUTE_ID 0x028B // Ver.: always -#define ZCL_WRONG_SIGNATURE_ATTRIBUTE_ID 0x028C // Ver.: always -#define ZCL_NO_SIGNATURE_ATTRIBUTE_ID 0x028D // Ver.: always -#define ZCL_SIGNATURE_NOT_VALID_ATTRIBUTE_ID 0x028E // Ver.: always -#define ZCL_UNAUTHORISE_ACTION_FROM_HAN_ATTRIBUTE_ID 0x028F // Ver.: always -#define ZCL_FAST_POLLING_START_ATTRIBUTE_ID 0x0290 // Ver.: always -#define ZCL_FAST_POLLING_END_ATTRIBUTE_ID 0x0291 // Ver.: always -#define ZCL_METER_REPORTING_INTERVAL_CHANGED_ATTRIBUTE_ID 0x0292 // Ver.: always -#define ZCL_DISCONNECT_TO_LOAD_LIMIT_ATTRIBUTE_ID 0x0293 // Ver.: always -#define ZCL_METER_SUPPLY_STATUS_REGISTER_CHANGED_ATTRIBUTE_ID 0x0294 // Ver.: always -#define ZCL_METER_ALARM_STATUS_REGISTER_CHANGED_ATTRIBUTE_ID 0x0295 // Ver.: always -#define ZCL_EXTENDED_METER_ALARM_STATUS_REGISTER_CHANGED_ATTRIBUTE_ID 0x0296 // Ver.: always -#define ZCL_DATA_ACCESS_VIA_LOCAL_PORT_ATTRIBUTE_ID 0x0297 // Ver.: always -#define ZCL_CONFIGURE_MIRROR_SUCCESS_ATTRIBUTE_ID 0x0298 // Ver.: always -#define ZCL_CONFIGURE_MIRROR_FAILURE_ATTRIBUTE_ID 0x0299 // Ver.: always -#define ZCL_CONFIGURE_NOTIFICATION_FLAG_SCHEME_SUCCESS_ATTRIBUTE_ID 0x029A // Ver.: always -#define ZCL_CONFIGURE_NOTIFICATION_FLAG_SCHEME_FAILURE_ATTRIBUTE_ID 0x029B // Ver.: always -#define ZCL_CONFIGURE_NOTIFICATION_FLAGS_SUCCESS_ATTRIBUTE_ID 0x029C // Ver.: always -#define ZCL_CONFIGURE_NOTIFICATION_FLAGS_FAILURE_ATTRIBUTE_ID 0x029D // Ver.: always -#define ZCL_STAY_AWAKE_REQUEST_HAN_ATTRIBUTE_ID 0x029E // Ver.: always -#define ZCL_STAY_AWAKE_REQUEST_WAN_ATTRIBUTE_ID 0x029F // Ver.: always -#define ZCL_MANUFACTURER_SPECIFIC_A_ATTRIBUTE_ID 0x02B0 // Ver.: always -#define ZCL_MANUFACTURER_SPECIFIC_B_ATTRIBUTE_ID 0x02B1 // Ver.: always -#define ZCL_MANUFACTURER_SPECIFIC_C_ATTRIBUTE_ID 0x02B2 // Ver.: always -#define ZCL_MANUFACTURER_SPECIFIC_D_ATTRIBUTE_ID 0x02B3 // Ver.: always -#define ZCL_MANUFACTURER_SPECIFIC_E_ATTRIBUTE_ID 0x02B4 // Ver.: always -#define ZCL_MANUFACTURER_SPECIFIC_F_ATTRIBUTE_ID 0x02B5 // Ver.: always -#define ZCL_MANUFACTURER_SPECIFIC_G_ATTRIBUTE_ID 0x02B6 // Ver.: always -#define ZCL_MANUFACTURER_SPECIFIC_H_ATTRIBUTE_ID 0x02B7 // Ver.: always -#define ZCL_MANUFACTURER_SPECIFIC_I_ATTRIBUTE_ID 0x02B8 // Ver.: always -#define ZCL_GET_PROFILE_COMMAND_RECEIVED_ATTRIBUTE_ID 0x02C0 // Ver.: always -#define ZCL_GET_PROFILE_COMMAND_ACTIONED_ATTRIBUTE_ID 0x02C1 // Ver.: always -#define ZCL_GET_PROFILE_COMMAND_CANCELLED_ATTRIBUTE_ID 0x02C2 // Ver.: always -#define ZCL_GET_PROFILE_COMMAND_REJECTED_ATTRIBUTE_ID 0x02C3 // Ver.: always -#define ZCL_REQUEST_MIRROR_RESPONSE_COMMAND_RECEIVED_ATTRIBUTE_ID 0x02C4 // Ver.: always -#define ZCL_REQUEST_MIRROR_RESPONSE_COMMAND_ACTIONED_ATTRIBUTE_ID 0x02C5 // Ver.: always -#define ZCL_REQUEST_MIRROR_RESPONSE_COMMAND_CANCELLED_ATTRIBUTE_ID 0x02C6 // Ver.: always -#define ZCL_REQUEST_MIRROR_RESPONSE_COMMAND_REJECTED_ATTRIBUTE_ID 0x02C7 // Ver.: always -#define ZCL_MIRROR_REMOVED_COMMAND_RECEIVED_ATTRIBUTE_ID 0x02C8 // Ver.: always -#define ZCL_MIRROR_REMOVED_COMMAND_ACTIONED_ATTRIBUTE_ID 0x02C9 // Ver.: always -#define ZCL_MIRROR_REMOVED_COMMAND_CANCELLED_ATTRIBUTE_ID 0x02CA // Ver.: always -#define ZCL_MIRROR_REMOVED_COMMAND_REJECTED_ATTRIBUTE_ID 0x02CB // Ver.: always -#define ZCL_GET_SNAPSHOT_COMMAND_RECEIVED_ATTRIBUTE_ID 0x02CC // Ver.: always -#define ZCL_GET_SNAPSHOT_COMMAND_ACTIONED_ATTRIBUTE_ID 0x02CD // Ver.: always -#define ZCL_GET_SNAPSHOT_COMMAND_CANCELLED_ATTRIBUTE_ID 0x02CE // Ver.: always -#define ZCL_GET_SNAPSHOT_COMMAND_REJECTED_ATTRIBUTE_ID 0x02CF // Ver.: always -#define ZCL_TAKE_SNAPSHOT_COMMAND_RECEIVED_ATTRIBUTE_ID 0x02D0 // Ver.: always -#define ZCL_TAKE_SNAPSHOT_COMMAND_ACTIONED_ATTRIBUTE_ID 0x02D1 // Ver.: always -#define ZCL_TAKE_SNAPSHOT_COMMAND_CANCELLED_ATTRIBUTE_ID 0x02D2 // Ver.: always -#define ZCL_TAKE_SNAPSHOT_COMMAND_REJECTED_ATTRIBUTE_ID 0x02D3 // Ver.: always -#define ZCL_MIRROR_REPORT_ATTRIBUTE_RESPONSE_COMMAND_RECEIVED_ATTRIBUTE_ID 0x02D4 // Ver.: always -#define ZCL_MIRROR_REPORT_ATTRIBUTE_RESPONSE_COMMAND_ACTIONED_ATTRIBUTE_ID 0x02D5 // Ver.: always -#define ZCL_MIRROR_REPORT_ATTRIBUTE_RESPONSE_COMMAND_CANCELLED_ATTRIBUTE_ID 0x02D6 // Ver.: always -#define ZCL_MIRROR_REPORT_ATTRIBUTE_RESPONSE_COMMAND_REJECTED_ATTRIBUTE_ID 0x02D7 // Ver.: always -#define ZCL_SCHEDULE_SNAPSHOT_COMMAND_RECEIVED_ATTRIBUTE_ID 0x02D8 // Ver.: always -#define ZCL_SCHEDULE_SNAPSHOT_COMMAND_ACTIONED_ATTRIBUTE_ID 0x02D9 // Ver.: always -#define ZCL_SCHEDULE_SNAPSHOT_COMMAND_CANCELLED_ATTRIBUTE_ID 0x02DA // Ver.: always -#define ZCL_SCHEDULE_SNAPSHOT_COMMAND_REJECTED_ATTRIBUTE_ID 0x02DB // Ver.: always -#define ZCL_START_SAMPLING_COMMAND_RECEIVED_ATTRIBUTE_ID 0x02DC // Ver.: always -#define ZCL_START_SAMPLING_COMMAND_ACTIONED_ATTRIBUTE_ID 0x02DD // Ver.: always -#define ZCL_START_SAMPLING_COMMAND_CANCELLED_ATTRIBUTE_ID 0x02DE // Ver.: always -#define ZCL_START_SAMPLING_COMMAND_REJECTED_ATTRIBUTE_ID 0x02DF // Ver.: always -#define ZCL_GET_SAMPLED_DATA_COMMAND_RECEIVED_ATTRIBUTE_ID 0x02E0 // Ver.: always -#define ZCL_GET_SAMPLED_DATA_COMMAND_ACTIONED_ATTRIBUTE_ID 0x02E1 // Ver.: always -#define ZCL_GET_SAMPLED_DATA_COMMAND_CANCELLED_ATTRIBUTE_ID 0x02E2 // Ver.: always -#define ZCL_GET_SAMPLED_DATA_COMMAND_REJECTED_ATTRIBUTE_ID 0x02E3 // Ver.: always -#define ZCL_SUPPLY_ON_ATTRIBUTE_ID 0x02E4 // Ver.: always -#define ZCL_SUPPLY_ARMED_ATTRIBUTE_ID 0x02E5 // Ver.: always -#define ZCL_SUPPLY_OFF_ATTRIBUTE_ID 0x02E6 // Ver.: always -#define ZCL_DISCONNECTED_DUE_TO_TAMPER_DETECTED_ATTRIBUTE_ID 0x02E7 // Ver.: always -#define ZCL_MANUAL_DISCONNECT_ATTRIBUTE_ID 0x02E8 // Ver.: always -#define ZCL_MANUAL_CONNECT_ATTRIBUTE_ID 0x02E9 // Ver.: always -#define ZCL_REMOTE_DISCONNECTION_ATTRIBUTE_ID 0x02EA // Ver.: always -#define ZCL_REMOTE_CONNECT_ATTRIBUTE_ID 0x02EB // Ver.: always -#define ZCL_LOCAL_DISCONNECTION_ATTRIBUTE_ID 0x02EC // Ver.: always -#define ZCL_LOCAL_CONNECT_ATTRIBUTE_ID 0x02ED // Ver.: always -#define ZCL_CHANGE_SUPPLY_RECEIVED_ATTRIBUTE_ID 0x02EE // Ver.: always -#define ZCL_CHANGE_SUPPLY_ACTIONED_ATTRIBUTE_ID 0x02EF // Ver.: always -#define ZCL_CHANGE_SUPPLY_CANCELLED_ATTRIBUTE_ID 0x02F0 // Ver.: always -#define ZCL_CHANGE_SUPPLY_REJECTED_ATTRIBUTE_ID 0x02F1 // Ver.: always -#define ZCL_LOCAL_CHANGE_SUPPLY_RECEIVED_ATTRIBUTE_ID 0x02F2 // Ver.: always -#define ZCL_LOCAL_CHANGE_SUPPLY_ACTIONED_ATTRIBUTE_ID 0x02F3 // Ver.: always -#define ZCL_LOCAL_CHANGE_SUPPLY_CANCELLED_ATTRIBUTE_ID 0x02F4 // Ver.: always -#define ZCL_LOCAL_CHANGE_SUPPLY_REJECTED_ATTRIBUTE_ID 0x02F5 // Ver.: always -#define ZCL_PUBLISH_UNCONTROLLED_FLOW_THRESHOLD_RECEIVED_ATTRIBUTE_ID 0x02F6 // Ver.: always -#define ZCL_PUBLISH_UNCONTROLLED_FLOW_THRESHOLD_ACTIONED_ATTRIBUTE_ID 0x02F7 // Ver.: always -#define ZCL_PUBLISH_UNCONTROLLED_FLOW_THRESHOLD_CANCELLED_ATTRIBUTE_ID 0x02F8 // Ver.: always -#define ZCL_PUBLISH_UNCONTROLLED_FLOW_THRESHOLD_REJECTED_ATTRIBUTE_ID 0x02F9 // Ver.: always -#define ZCL_MESSAGE_CONFIRMATION_SENT_ATTRIBUTE_ID 0x0300 // Ver.: always -#define ZCL_DISPLAY_MESSAGE_RECEIVED_ATTRIBUTE_ID 0x03C0 // Ver.: always -#define ZCL_DISPLAY_MESSAGE_ACTIONED_ATTRIBUTE_ID 0x03C1 // Ver.: always -#define ZCL_DISPLAY_MESSAGE_CANCELLED_ATTRIBUTE_ID 0x03C2 // Ver.: always -#define ZCL_DISPLAY_MESSAGE_REJECTED_ATTRIBUTE_ID 0x03C3 // Ver.: always -#define ZCL_CANCEL_MESSAGE_RECEIVED_ATTRIBUTE_ID 0x03C4 // Ver.: always -#define ZCL_CANCEL_MESSAGE_ACTIONED_ATTRIBUTE_ID 0x03C5 // Ver.: always -#define ZCL_CANCEL_MESSAGE_CANCELLED_ATTRIBUTE_ID 0x03C6 // Ver.: always -#define ZCL_CANCEL_MESSAGE_REJECTED_ATTRIBUTE_ID 0x03C7 // Ver.: always -#define ZCL_LOW_CREDIT_ATTRIBUTE_ID 0x0400 // Ver.: always -#define ZCL_NO_CREDIT_ATTRIBUTE_ID 0x0401 // Ver.: always -#define ZCL_CREDIT_EXHAUSTED_ATTRIBUTE_ID 0x0402 // Ver.: always -#define ZCL_EMERGENCY_CREDIT_ENABLED_ATTRIBUTE_ID 0x0403 // Ver.: always -#define ZCL_EMERGENCY_CREDIT_EXHAUSTED_ATTRIBUTE_ID 0x0404 // Ver.: always -#define ZCL_PREPAY_IHD_LOW_CREDIT_WARNING_ATTRIBUTE_ID 0x0405 // Ver.: always -#define ZCL_PHYSICAL_ATTACK_ON_THE_PREPAY_METER_ATTRIBUTE_ID 0x0420 // Ver.: always -#define ZCL_ELECTRONIC_ATTACK_ON_THE_PREPAY_METER_ATTRIBUTE_ID 0x0421 // Ver.: always -#define ZCL_DISCOUNT_APPLIED_ATTRIBUTE_ID 0x0422 // Ver.: always -#define ZCL_CREDIT_ADJUSTMENT_ATTRIBUTE_ID 0x0423 // Ver.: always -#define ZCL_CREDIT_ADJUST_FAIL_ATTRIBUTE_ID 0x0424 // Ver.: always -#define ZCL_DEBT_ADJUSTMENT_ATTRIBUTE_ID 0x0425 // Ver.: always -#define ZCL_DEBT_ADJUST_FAIL_ATTRIBUTE_ID 0x0426 // Ver.: always -#define ZCL_MODE_CHANGE_ATTRIBUTE_ID 0x0427 // Ver.: always -#define ZCL_TOPUP_CODE_ERROR_ATTRIBUTE_ID 0x0428 // Ver.: always -#define ZCL_TOPUP_ALREADY_USED_ATTRIBUTE_ID 0x0429 // Ver.: always -#define ZCL_TOPUP_CODE_INVALID_ATTRIBUTE_ID 0x042A // Ver.: always -#define ZCL_TOPUP_ACCEPTED_VIA_REMOTE_ATTRIBUTE_ID 0x042B // Ver.: always -#define ZCL_TOPUP_ACCEPTED_VIA_MANUAL_ENTRY_ATTRIBUTE_ID 0x042C // Ver.: always -#define ZCL_FRIENDLY_CREDIT_IN_USE_ATTRIBUTE_ID 0x042D // Ver.: always -#define ZCL_FRIENDLY_CREDIT_END_WARNING_ATTRIBUTE_ID 0x042E // Ver.: always -#define ZCL_FRIENDLY_CREDIT_PERIOD_END_ATTRIBUTE_ID 0x042F // Ver.: always -#define ZCL_PREPAY_ERROR_REG_CLEAR_ATTRIBUTE_ID 0x0430 // Ver.: always -#define ZCL_PREPAY_ALARM_REG_CLEAR_ATTRIBUTE_ID 0x0431 // Ver.: always -#define ZCL_PREPAY_CLUSTER_NOT_FOUND_ATTRIBUTE_ID 0x0432 // Ver.: always -#define ZCL_TOPUP_VALUE_TOO_LARGE_ATTRIBUTE_ID 0x0433 // Ver.: always -#define ZCL_MODE_CREDIT_2_PREPAY_ATTRIBUTE_ID 0x0441 // Ver.: always -#define ZCL_MODE_PREPAY_2_CREDIT_ATTRIBUTE_ID 0x0442 // Ver.: always -#define ZCL_MODE_DEFAULT_ATTRIBUTE_ID 0x0443 // Ver.: always -#define ZCL_SELECT_AVAILABLE_EMERGENCY_CREDIT_RECEIVED_ATTRIBUTE_ID 0x04C0 // Ver.: always -#define ZCL_SELECT_AVAILABLE_EMERGENCY_CREDIT_ACTIONED_ATTRIBUTE_ID 0x04C1 // Ver.: always -#define ZCL_SELECT_AVAILABLE_EMERGENCY_CREDIT_CANCELLED_ATTRIBUTE_ID 0x04C2 // Ver.: always -#define ZCL_SELECT_AVAILABLE_EMERGENCY_CREDIT_REJECTED_ATTRIBUTE_ID 0x04C3 // Ver.: always -#define ZCL_CHANGE_DEBT_RECEIVED_ATTRIBUTE_ID 0x04C4 // Ver.: always -#define ZCL_CHANGE_DEBT_ACTIONED_ATTRIBUTE_ID 0x04C5 // Ver.: always -#define ZCL_CHANGE_DEBT_CANCELLED_ATTRIBUTE_ID 0x04C6 // Ver.: always -#define ZCL_CHANGE_DEBT_REJECTED_ATTRIBUTE_ID 0x04C7 // Ver.: always -#define ZCL_EMERGENCY_CREDIT_SETUP_RECEIVED_ATTRIBUTE_ID 0x04C8 // Ver.: always -#define ZCL_EMERGENCY_CREDIT_SETUP_ACTIONED_ATTRIBUTE_ID 0x04C9 // Ver.: always -#define ZCL_EMERGENCY_CREDIT_SETUP_CANCELLED_ATTRIBUTE_ID 0x04CA // Ver.: always -#define ZCL_EMERGENCY_CREDIT_SETUP_REJECTED_ATTRIBUTE_ID 0x04CB // Ver.: always -#define ZCL_CONSUMER_TOPUP_RECEIVED_ATTRIBUTE_ID 0x04CC // Ver.: always -#define ZCL_CONSUMER_TOPUP_ACTIONED_ATTRIBUTE_ID 0x04CD // Ver.: always -#define ZCL_CONSUMER_TOPUP_CANCELLED_ATTRIBUTE_ID 0x04CE // Ver.: always -#define ZCL_CONSUMER_TOPUP_REJECTED_ATTRIBUTE_ID 0x04CF // Ver.: always -#define ZCL_CREDIT_ADJUSTMENT_RECEIVED_ATTRIBUTE_ID 0x04D0 // Ver.: always -#define ZCL_CREDIT_ADJUSTMENT_ACTIONED_ATTRIBUTE_ID 0x04D1 // Ver.: always -#define ZCL_CREDIT_ADJUSTMENT_CANCELLED_ATTRIBUTE_ID 0x04D2 // Ver.: always -#define ZCL_CREDIT_ADJUSTMENT_REJECTED_ATTRIBUTE_ID 0x04D3 // Ver.: always -#define ZCL_CHANGE_PAYMENT_MODE_RECEIVED_ATTRIBUTE_ID 0x04D4 // Ver.: always -#define ZCL_CHANGE_PAYMENT_MODE_ACTIONED_ATTRIBUTE_ID 0x04D5 // Ver.: always -#define ZCL_CHANGE_PAYMENT_MODE_CANCELLED_ATTRIBUTE_ID 0x04D6 // Ver.: always -#define ZCL_CHANGE_PAYMENT_MODE_REJECTED_ATTRIBUTE_ID 0x04D7 // Ver.: always -#define ZCL_GET_PREPAY_SNAPSHOT_RECEIVED_ATTRIBUTE_ID 0x04D8 // Ver.: always -#define ZCL_GET_PREPAY_SNAPSHOT_ACTIONED_ATTRIBUTE_ID 0x04D9 // Ver.: always -#define ZCL_GET_PREPAY_SNAPSHOT_CANCELLED_ATTRIBUTE_ID 0x04DA // Ver.: always -#define ZCL_GET_PREPAY_SNAPSHOT_REJECTED_ATTRIBUTE_ID 0x04DB // Ver.: always -#define ZCL_GET_TOPUP_LOG_RECEIVED_ATTRIBUTE_ID 0x04DC // Ver.: always -#define ZCL_GET_TOPUP_LOG_ACTIONED_ATTRIBUTE_ID 0x04DD // Ver.: always -#define ZCL_GET_TOPUP_LOG_CANCELLED_ATTRIBUTE_ID 0x04DE // Ver.: always -#define ZCL_GET_TOPUP_LOG_REJECTED_ATTRIBUTE_ID 0x04DF // Ver.: always -#define ZCL_SET_LOW_CREDIT_WARNING_LEVEL_RECEIVED_ATTRIBUTE_ID 0x04E0 // Ver.: always -#define ZCL_SET_LOW_CREDIT_WARNING_LEVEL_ACTIONED_ATTRIBUTE_ID 0x04E1 // Ver.: always -#define ZCL_SET_LOW_CREDIT_WARNING_LEVEL_CANCELLED_ATTRIBUTE_ID 0x04E2 // Ver.: always -#define ZCL_SET_LOW_CREDIT_WARNING_LEVEL_REJECTED_ATTRIBUTE_ID 0x04E3 // Ver.: always -#define ZCL_GET_DEBT_REPAY_LOG_RECEIVED_ATTRIBUTE_ID 0x04E4 // Ver.: always -#define ZCL_GET_DEBT_REPAY_LOG_ACTIONED_ATTRIBUTE_ID 0x04E5 // Ver.: always -#define ZCL_GET_DEBT_REPAY_LOG_CANCELLED_ATTRIBUTE_ID 0x04E6 // Ver.: always -#define ZCL_GET_DEBT_REPAY_LOG_REJECTED_ATTRIBUTE_ID 0x04E7 // Ver.: always -#define ZCL_SET_MAXIMUM_CREDIT_LIMIT_RECEIVED_ATTRIBUTE_ID 0x04E8 // Ver.: always -#define ZCL_SET_MAXIMUM_CREDIT_LIMIT_ACTIONED_ATTRIBUTE_ID 0x04E9 // Ver.: always -#define ZCL_SET_MAXIMUM_CREDIT_LIMIT_CANCELLED_ATTRIBUTE_ID 0x04EA // Ver.: always -#define ZCL_SET_MAXIMUM_CREDIT_LIMIT_REJECTED_ATTRIBUTE_ID 0x04EB // Ver.: always -#define ZCL_SET_OVERALL_DEBT_CAP_RECEIVED_ATTRIBUTE_ID 0x04EC // Ver.: always -#define ZCL_SET_OVERALL_DEBT_CAP_ACTIONED_ATTRIBUTE_ID 0x04ED // Ver.: always -#define ZCL_SET_OVERALL_DEBT_CAP_CANCELLED_ATTRIBUTE_ID 0x04EE // Ver.: always -#define ZCL_SET_OVERALL_DEBT_CAP_REJECTED_ATTRIBUTE_ID 0x04EF // Ver.: always -#define ZCL_CALENDAR_CLUSTER_NOT_FOUND_ATTRIBUTE_ID 0x0500 // Ver.: always -#define ZCL_CALENDAR_CHANGE_PASSIVE_ACTIVATED_ATTRIBUTE_ID 0x0501 // Ver.: always -#define ZCL_CALENDAR_CHANGE_PASSIVE_UPDATED_ATTRIBUTE_ID 0x0502 // Ver.: always -#define ZCL_PUBLISH_CALENDAR_RECEIVED_ATTRIBUTE_ID 0x05C0 // Ver.: always -#define ZCL_PUBLISH_CALENDAR_ACTIONED_ATTRIBUTE_ID 0x05C1 // Ver.: always -#define ZCL_PUBLISH_CALENDAR_CANCELLED_ATTRIBUTE_ID 0x05C2 // Ver.: always -#define ZCL_PUBLISH_CALENDAR_REJECTED_ATTRIBUTE_ID 0x05C3 // Ver.: always -#define ZCL_PUBLISH_DAY_PROFILE_RECEIVED_ATTRIBUTE_ID 0x05C4 // Ver.: always -#define ZCL_PUBLISH_DAY_PROFILE_ACTIONED_ATTRIBUTE_ID 0x05C5 // Ver.: always -#define ZCL_PUBLISH_DAY_PROFILE_CANCELLED_ATTRIBUTE_ID 0x05C6 // Ver.: always -#define ZCL_PUBLISH_DAY_PROFILE_REJECTED_ATTRIBUTE_ID 0x05C7 // Ver.: always -#define ZCL_PUBLISH_WEEK_PROFILE_RECEIVED_ATTRIBUTE_ID 0x05C8 // Ver.: always -#define ZCL_PUBLISH_WEEK_PROFILE_ACTIONED_ATTRIBUTE_ID 0x05C9 // Ver.: always -#define ZCL_PUBLISH_WEEK_PROFILE_CANCELLED_ATTRIBUTE_ID 0x05CA // Ver.: always -#define ZCL_PUBLISH_WEEK_PROFILE_REJECTED_ATTRIBUTE_ID 0x05CB // Ver.: always -#define ZCL_PUBLISH_SEASONS_RECEIVED_ATTRIBUTE_ID 0x05CC // Ver.: always -#define ZCL_PUBLISH_SEASONS_ACTIONED_ATTRIBUTE_ID 0x05CD // Ver.: always -#define ZCL_PUBLISH_SEASONS_CANCELLED_ATTRIBUTE_ID 0x05CE // Ver.: always -#define ZCL_PUBLISH_SEASONS_REJECTED_ATTRIBUTE_ID 0x05CF // Ver.: always -#define ZCL_PUBLISH_SPECIAL_DAYS_RECEIVED_ATTRIBUTE_ID 0x05D0 // Ver.: always -#define ZCL_PUBLISH_SPECIAL_DAYS_ACTIONED_ATTRIBUTE_ID 0x05D1 // Ver.: always -#define ZCL_PUBLISH_SPECIAL_DAYS_CANCELLED_ATTRIBUTE_ID 0x05D2 // Ver.: always -#define ZCL_PUBLISH_SPECIAL_DAYS_REJECTED_ATTRIBUTE_ID 0x05D3 // Ver.: always -#define ZCL_PASSWORD_1_CHANGE_ATTRIBUTE_ID 0x0600 // Ver.: always -#define ZCL_PASSWORD_2_CHANGE_ATTRIBUTE_ID 0x0601 // Ver.: always -#define ZCL_PASSWORD_3_CHANGE_ATTRIBUTE_ID 0x0602 // Ver.: always -#define ZCL_PASSWORD_4_CHANGE_ATTRIBUTE_ID 0x0603 // Ver.: always -#define ZCL_EVENT_LOG_CLEARED_ATTRIBUTE_ID 0x0604 // Ver.: always -#define ZCL_ZIGBEE_APS_TIMEOUT_ATTRIBUTE_ID 0x0610 // Ver.: always -#define ZCL_ZIGBEE_IEEE_TRANSMISSION_FAILURE_OVER_THRESHOLD_ATTRIBUTE_ID 0x0611 // Ver.: always -#define ZCL_ZIGBEE_IEEE_FRAME_CHECK_SEQUENCE_THRESHOLD_ATTRIBUTE_ID 0x0612 // Ver.: always -#define ZCL_ERROR_CERTIFICATE_ATTRIBUTE_ID 0x0613 // Ver.: always -#define ZCL_ERROR_SIGNATURE_ATTRIBUTE_ID 0x0614 // Ver.: always -#define ZCL_ERROR_PROGRAM_STORAGE_ATTRIBUTE_ID 0x0615 // Ver.: always -#define ZCL_PUBLISH_COT_RECEIVED_ATTRIBUTE_ID 0x06C0 // Ver.: always -#define ZCL_PUBLISH_COT_ACTIONED_ATTRIBUTE_ID 0x06C1 // Ver.: always -#define ZCL_PUBLISH_COT_CANCELLED_ATTRIBUTE_ID 0x06C2 // Ver.: always -#define ZCL_PUBLISH_COT_REJECTED_ATTRIBUTE_ID 0x06C3 // Ver.: always -#define ZCL_PUBLISH_COS_RECEIVED_ATTRIBUTE_ID 0x06C4 // Ver.: always -#define ZCL_PUBLISH_COS_ACTIONED_ATTRIBUTE_ID 0x06C5 // Ver.: always -#define ZCL_PUBLISH_COS_CANCELLED_ATTRIBUTE_ID 0x06C6 // Ver.: always -#define ZCL_PUBLISH_COS_REJECTED_ATTRIBUTE_ID 0x06C7 // Ver.: always -#define ZCL_CHANGE_PASSWORD_RECEIVED_ATTRIBUTE_ID 0x06C8 // Ver.: always -#define ZCL_CHANGE_PASSWORD_ACTIONED_ATTRIBUTE_ID 0x06C9 // Ver.: always -#define ZCL_CHANGE_PASSWORD_CANCELLED_ATTRIBUTE_ID 0x06CA // Ver.: always -#define ZCL_CHANGE_PASSWORD_REJECTED_ATTRIBUTE_ID 0x06CB // Ver.: always -#define ZCL_SET_EVENT_CONFIGURATION_RECEIVED_ATTRIBUTE_ID 0x06CC // Ver.: always -#define ZCL_SET_EVENT_CONFIGURATION_ACTIONED_ATTRIBUTE_ID 0x06CD // Ver.: always -#define ZCL_SET_EVENT_CONFIGURATION_CANCELLED_ATTRIBUTE_ID 0x06CE // Ver.: always -#define ZCL_SET_EVENT_CONFIGURATION_REJECTED_ATTRIBUTE_ID 0x06CF // Ver.: always -#define ZCL_UPDATE_SITE_ID_RECEIVED_ATTRIBUTE_ID 0x06D0 // Ver.: always -#define ZCL_UPDATE_SITE_ID_ACTIONED_ATTRIBUTE_ID 0x06D1 // Ver.: always -#define ZCL_UPDATE_SITE_ID_CANCELLED_ATTRIBUTE_ID 0x06D2 // Ver.: always -#define ZCL_UPDATE_SITE_ID_REJECTED_ATTRIBUTE_ID 0x06D3 // Ver.: always -#define ZCL_UPDATE_CIN_RECEIVED_ATTRIBUTE_ID 0x06D4 // Ver.: always -#define ZCL_UPDATE_CIN_ACTIONED_ATTRIBUTE_ID 0x06D5 // Ver.: always -#define ZCL_UPDATE_CIN_CANCELLED_ATTRIBUTE_ID 0x06D6 // Ver.: always -#define ZCL_UPDATE_CIN_REJECTED_ATTRIBUTE_ID 0x06D7 // Ver.: always -#define ZCL_TUNNELING_CLUSTER_NOT_FOUND_ATTRIBUTE_ID 0x0700 // Ver.: always -#define ZCL_UNSUPPORTED_PROTOCOL_ATTRIBUTE_ID 0x0701 // Ver.: always -#define ZCL_INCORRECT_PROTOCOL_ATTRIBUTE_ID 0x0702 // Ver.: always -#define ZCL_REQUEST_TUNNEL_COMMAND_RECEIVED_ATTRIBUTE_ID 0x07C0 // Ver.: always -#define ZCL_REQUEST_TUNNEL_COMMAND_REJECTED_ATTRIBUTE_ID 0x07C1 // Ver.: always -#define ZCL_REQUEST_TUNNEL_COMMAND_GENERATED_ATTRIBUTE_ID 0x07C2 // Ver.: always -#define ZCL_CLOSE_TUNNEL_COMMAND_RECEIVED_ATTRIBUTE_ID 0x07C3 // Ver.: always -#define ZCL_CLOSE_TUNNEL_COMMAND_REJECTED_ATTRIBUTE_ID 0x07C4 // Ver.: always -#define ZCL_CLOSE_TUNNEL_COMMAND_GENERATED_ATTRIBUTE_ID 0x07C5 // Ver.: always -#define ZCL_TRANSFER_DATA_COMMAND_RECEIVED_ATTRIBUTE_ID 0x07C6 // Ver.: always -#define ZCL_TRANSFER_DATA_COMMAND_REJECTED_ATTRIBUTE_ID 0x07C7 // Ver.: always -#define ZCL_TRANSFER_DATA_COMMAND_GENERATED_ATTRIBUTE_ID 0x07C8 // Ver.: always -#define ZCL_TRANSFER_DATA_ERROR_COMMAND_RECEIVED_ATTRIBUTE_ID 0x07C9 // Ver.: always -#define ZCL_TRANSFER_DATA_ERROR_COMMAND_REJECTED_ATTRIBUTE_ID 0x07CA // Ver.: always -#define ZCL_TRANSFER_DATA_ERROR_COMMAND_GENERATED_ATTRIBUTE_ID 0x07CB // Ver.: always -#define ZCL_ACK_TRANSFER_DATA_COMMAND_RECEIVED_ATTRIBUTE_ID 0x07CC // Ver.: always -#define ZCL_ACK_TRANSFER_DATA_COMMAND_REJECTED_ATTRIBUTE_ID 0x07CD // Ver.: always -#define ZCL_ACK_TRANSFER_DATA_COMMAND_GENERATED_ATTRIBUTE_ID 0x07CE // Ver.: always -#define ZCL_READY_DATA_COMMAND_RECEIVED_ATTRIBUTE_ID 0x07CF // Ver.: always -#define ZCL_READY_DATA_COMMAND_REJECTED_ATTRIBUTE_ID 0x07D0 // Ver.: always -#define ZCL_READY_DATA_COMMAND_GENERATED_ATTRIBUTE_ID 0x07D1 // Ver.: always -#define ZCL_GET_SUPPORTED_TUNNEL_PROTOCOLS_COMMAND_RECEIVED_ATTRIBUTE_ID 0x07D2 // Ver.: always -#define ZCL_GET_SUPPORTED_TUNNEL_PROTOCOLS_COMMAND_REJECTED_ATTRIBUTE_ID 0x07D3 // Ver.: always -#define ZCL_GET_SUPPORTED_TUNNEL_PROTOCOLS_COMMAND_GENERATED_ATTRIBUTE_ID 0x07D4 // Ver.: always -#define ZCL_FIRMWARE_READY_FOR_ACTIVATION_ATTRIBUTE_ID 0x0800 // Ver.: always -#define ZCL_FIRMWARE_ACTIVATED_ATTRIBUTE_ID 0x0801 // Ver.: always -#define ZCL_FIRMWARE_ACTIVATION_FAILURE_ATTRIBUTE_ID 0x0802 // Ver.: always -#define ZCL_PATCH_READY_FOR_ACTIVATION_ATTRIBUTE_ID 0x0803 // Ver.: always -#define ZCL_PATCH_ACTIVATED_ATTRIBUTE_ID 0x0804 // Ver.: always -#define ZCL_PATCH_FAILURE_ATTRIBUTE_ID 0x0805 // Ver.: always -#define ZCL_IMAGE_NOTIFY_COMMAND_RECEIVED_ATTRIBUTE_ID 0x08C0 // Ver.: always -#define ZCL_IMAGE_NOTIFY_COMMAND_REJECTED_ATTRIBUTE_ID 0x08C1 // Ver.: always -#define ZCL_QUERY_NEXT_IMAGE_REQUEST_GENERATED_ATTRIBUTE_ID 0x08C2 // Ver.: always -#define ZCL_QUERY_NEXT_IMAGE_RESPONSE_RECEIVED_ATTRIBUTE_ID 0x08C3 // Ver.: always -#define ZCL_QUERY_NEXT_IMAGE_RESPONSE_REJECTED_ATTRIBUTE_ID 0x08C4 // Ver.: always -#define ZCL_IMAGE_BLOCK_REQUEST_GENERATED_ATTRIBUTE_ID 0x08C5 // Ver.: always -#define ZCL_IMAGE_PAGE_REQUEST_GENERATED_ATTRIBUTE_ID 0x08C6 // Ver.: always -#define ZCL_IMAGE_BLOCK_RESPONSE_RECEIVED_ATTRIBUTE_ID 0x08C7 // Ver.: always -#define ZCL_IMAGE_BLOCK_RESPONSE_REJECTED_ATTRIBUTE_ID 0x08C8 // Ver.: always -#define ZCL_UPGRADE_END_REQUEST_GENERATED_ATTRIBUTE_ID 0x08C9 // Ver.: always -#define ZCL_UPGRADE_END_RESPONSE_RECEIVED_ATTRIBUTE_ID 0x08CA // Ver.: always -#define ZCL_UPGRADE_END_RESPONSE_REJECTED_ATTRIBUTE_ID 0x08CB // Ver.: always -#define ZCL_QUERY_SPECIFIC_FILE_REQUEST_GENERATED_ATTRIBUTE_ID 0x08CC // Ver.: always -#define ZCL_QUERY_SPECIFIC_FILE_RESPONSE_RECEIVED_ATTRIBUTE_ID 0x08CD // Ver.: always -#define ZCL_QUERY_SPECIFIC_FILE_RESPONSE_REJECTED_ATTRIBUTE_ID 0x08CE // Ver.: always -#define ZCL_DEVICE_MANAGEMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_DEVICE_MANAGEMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_PROVIDER_ID_SERVER_ATTRIBUTE_ID 0x0100 // Ver.: always -#define ZCL_PROVIDER_NAME_ATTRIBUTE_ID 0x0101 // Ver.: always -#define ZCL_PROVIDER_CONTACT_DETAILS_ATTRIBUTE_ID 0x0102 // Ver.: always -#define ZCL_PROPOSED_PROVIDER_ID_ATTRIBUTE_ID 0x0110 // Ver.: always -#define ZCL_PROPOSED_PROVIDER_NAME_ATTRIBUTE_ID 0x0111 // Ver.: always -#define ZCL_PROPOSED_PROVIDER_CHANGE_DATE_TIME_ATTRIBUTE_ID 0x0112 // Ver.: always -#define ZCL_PROPOSED_PROVIDER_CHANGE_CONTROL_ATTRIBUTE_ID 0x0113 // Ver.: always -#define ZCL_RECEIVED_PROVIDER_ID_SERVER_ATTRIBUTE_ID 0x0120 // Ver.: always -#define ZCL_RECEIVED_PROVIDER_NAME_ATTRIBUTE_ID 0x0121 // Ver.: always -#define ZCL_RECEIVED_PROVIDER_CONTACT_DETAILS_ATTRIBUTE_ID 0x0122 // Ver.: always -#define ZCL_RECEIVED_PROPOSED_PROVIDER_ID_ATTRIBUTE_ID 0x0130 // Ver.: always -#define ZCL_RECEIVED_PROPOSED_PROVIDER_NAME_ATTRIBUTE_ID 0x0131 // Ver.: always -#define ZCL_RECEIVED_PROPOSED_PROVIDER_CHANGE_DATE_TIME_ATTRIBUTE_ID 0x0132 // Ver.: always -#define ZCL_RECEIVED_PROPOSED_PROVIDER_CHANGE_CONTROL_ATTRIBUTE_ID 0x0133 // Ver.: always -#define ZCL_CHANGE_OF_TENANCY_UPDATE_DATE_TIME_ATTRIBUTE_ID 0x0200 // Ver.: always -#define ZCL_PROPOSED_TENANCY_CHANGE_CONTROL_ATTRIBUTE_ID 0x0201 // Ver.: always -#define ZCL_WAN_STATUS_ATTRIBUTE_ID 0x0300 // Ver.: always -#define ZCL_LOW_MEDIUM_THRESHOLD_ATTRIBUTE_ID 0x0400 // Ver.: always -#define ZCL_MEDIUM_HIGH_THRESHOLD_ATTRIBUTE_ID 0x0401 // Ver.: always -#define ZCL_DEVICE_MANAGEMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_DEVICE_MANAGEMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Events -// Cluster specification level: se-1.2b-15-0131-02 - -// Client attributes -#define ZCL_EVENTS_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_EVENTS_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_EVENTS_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_EVENTS_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: MDU Pairing -// Cluster specification level: se-1.2b-15-0131-02 - -// Client attributes -#define ZCL_MDU_PAIRING_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_MDU_PAIRING_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_MDU_PAIRING_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_MDU_PAIRING_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Sub-GHz -// Cluster specification level: se-1.2b-15-0131-02 - -// Client attributes -#define ZCL_SUB_GHZ_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_SUB_GHZ_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_SUB_GHZ_CLUSTER_CHANNEL_CHANGE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_SUB_GHZ_CLUSTER_PAGE_28_CHANNEL_MASK_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_SUB_GHZ_CLUSTER_PAGE_29_CHANNEL_MASK_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_SUB_GHZ_CLUSTER_PAGE_30_CHANNEL_MASK_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_SUB_GHZ_CLUSTER_PAGE_31_CHANNEL_MASK_ATTRIBUTE_ID 0x0004 // Ver.: always -#define ZCL_SUB_GHZ_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_SUB_GHZ_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Key Establishment -// Cluster specification level: zcl-7.0-07-5123-07 - -// Client attributes -#define ZCL_KEY_ESTABLISHMENT_SUITE_CLIENT_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_KEY_ESTABLISHMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_KEY_ESTABLISHMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_KEY_ESTABLISHMENT_SUITE_SERVER_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_KEY_ESTABLISHMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_KEY_ESTABLISHMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Information -// Cluster specification level: ta-1.0-07-5307-07 - -// Client attributes -#define ZCL_INFORMATION_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_INFORMATION_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_NODE_DESCRIPTION_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_DELIVERY_ENABLE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_PUSH_INFORMATION_TIMER_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_ENABLE_SECURE_CONFIGURATION_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_NUMBER_OF_CONTENTS_ATTRIBUTE_ID 0x0010 // Ver.: always -#define ZCL_CONTENT_ROOT_ID_ATTRIBUTE_ID 0x0011 // Ver.: always -#define ZCL_INFORMATION_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_INFORMATION_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Data Sharing -// Cluster specification level: ta-1.0-07-5307-07 - -// Client attributes -#define ZCL_DATA_SHARING_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_DATA_SHARING_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_DEVICE_NAME_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_DEVICE_DESCRIPTION_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_DATA_SHARING_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_DATA_SHARING_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Gaming -// Cluster specification level: ta-1.0-07-5307-07 - -// Client attributes -#define ZCL_GAMING_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_GAMING_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_PLAYER_NAME_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_NB_OF_GAMES_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_LIST_OF_GAMES_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_ANNOUNCEMENT_INTERVAL_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_GAME_ID_ATTRIBUTE_ID 0x0010 // Ver.: always -#define ZCL_NAME_OF_GAME_ATTRIBUTE_ID 0x0011 // Ver.: always -#define ZCL_GAME_MASTER_ATTRIBUTE_ID 0x0012 // Ver.: always -#define ZCL_GAMING_STATUS_ATTRIBUTE_ID 0x0013 // Ver.: always -#define ZCL_CURRENT_NB_OF_PLAYERS_ATTRIBUTE_ID 0x0014 // Ver.: always -#define ZCL_LIST_OF_CURRENT_PLAYERS_ATTRIBUTE_ID 0x0015 // Ver.: always -#define ZCL_MAX_NB_OF_PLAYERS_ATTRIBUTE_ID 0x0016 // Ver.: always -#define ZCL_MIN_NB_OF_PLAYERS_ATTRIBUTE_ID 0x0017 // Ver.: always -#define ZCL_CURRENT_GAME_LEVEL_ATTRIBUTE_ID 0x0018 // Ver.: always -#define ZCL_SCORE_OF_THIS_PLAYER_ATTRIBUTE_ID 0x0019 // Ver.: always -#define ZCL_TIMER1_ATTRIBUTE_ID 0x001A // Ver.: always -#define ZCL_TIMER2_ATTRIBUTE_ID 0x001B // Ver.: always -#define ZCL_TIMER3_ATTRIBUTE_ID 0x001C // Ver.: always -#define ZCL_COUNTER1_ATTRIBUTE_ID 0x001D // Ver.: always -#define ZCL_COUNTER2_ATTRIBUTE_ID 0x001E // Ver.: always -#define ZCL_DOWNLOADABLE_ATTRIBUTE_ID 0x001F // Ver.: always -#define ZCL_GAMING_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_GAMING_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Data Rate Control -// Cluster specification level: ta-1.0-07-5307-07 - -// Client attributes -#define ZCL_DATA_RATE_CONTROL_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_DATA_RATE_CONTROL_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_AVERAGE_LATENCY_REQUIREMENT_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_MAX_LATENCY_REQUIREMENT_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_BANDWIDTH_REQUIREMENT_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_DATA_RATE_CONTROL_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_DATA_RATE_CONTROL_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Voice over ZigBee -// Cluster specification level: ta-1.0-07-5307-07 - -// Client attributes -#define ZCL_VOICE_OVER_ZIGBEE_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_VOICE_OVER_ZIGBEE_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_CODEC_TYPE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_SAMPLING_FREQUENCY_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_CODEC_RATE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_ESTABLISHMENT_TIMEOUT_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_CODEC_TYPE_SUB1_ATTRIBUTE_ID 0x0004 // Ver.: always -#define ZCL_CODEC_TYPE_SUB2_ATTRIBUTE_ID 0x0005 // Ver.: always -#define ZCL_CODEC_TYPE_SUB3_ATTRIBUTE_ID 0x0006 // Ver.: always -#define ZCL_COMPRESSION_TYPE_ATTRIBUTE_ID 0x0007 // Ver.: always -#define ZCL_COMPRESSION_RATE_ATTRIBUTE_ID 0x0008 // Ver.: always -#define ZCL_OPTION_FLAGS_ATTRIBUTE_ID 0x0009 // Ver.: always -#define ZCL_THRESHOLD_ATTRIBUTE_ID 0x000A // Ver.: always -#define ZCL_VOICE_OVER_ZIGBEE_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_VOICE_OVER_ZIGBEE_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Chatting -// Cluster specification level: ta-1.0-07-5307-07 - -// Client attributes -#define ZCL_CHATTING_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_CHATTING_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_U_ID_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_NICKNAME_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_C_ID_ATTRIBUTE_ID 0x0010 // Ver.: always -#define ZCL_NAME_ATTRIBUTE_ID 0x0011 // Ver.: always -#define ZCL_ENABLE_ADD_CHAT_ATTRIBUTE_ID 0x0020 // Ver.: always -#define ZCL_CHATTING_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_CHATTING_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Payment -// Cluster specification level: ta-1.0-07-5307-07 - -// Client attributes -#define ZCL_PAYMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_PAYMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_PAYMENT_USER_ID_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_USER_TYPE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_PAYMENT_SERVICE_ID_ATTRIBUTE_ID 0x0010 // Ver.: always -#define ZCL_PAYMENT_SERVICE_PROVIDER_ID_ATTRIBUTE_ID 0x0011 // Ver.: always -#define ZCL_TOTEM_ID_ATTRIBUTE_ID 0x0012 // Ver.: always -#define ZCL_CURRENCY_ATTRIBUTE_ID 0x0020 // Ver.: always -#define ZCL_PRICE_TRAILING_DIGIT_ATTRIBUTE_ID 0x0021 // Ver.: always -#define ZCL_PRICE_ATTRIBUTE_ID 0x0022 // Ver.: always -#define ZCL_GOOD_ID_ATTRIBUTE_ID 0x0030 // Ver.: always -#define ZCL_SERIAL_NUMBER_ATTRIBUTE_ID 0x0031 // Ver.: always -#define ZCL_PAYMENT_TIMESTAMP_ATTRIBUTE_ID 0x0032 // Ver.: always -#define ZCL_TRANS_ID_ATTRIBUTE_ID 0x0033 // Ver.: always -#define ZCL_TRANS_STATUS_ATTRIBUTE_ID 0x0034 // Ver.: always -#define ZCL_PAYMENT_STATUS_ATTRIBUTE_ID 0x0035 // Ver.: always -#define ZCL_PAYMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_PAYMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Billing -// Cluster specification level: ta-1.0-07-5307-07 - -// Client attributes -#define ZCL_BILLING_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_BILLING_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_USER_ID_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_SERVICE_ID_ATTRIBUTE_ID 0x0010 // Ver.: always -#define ZCL_SERVICE_PROVIDER_ID_ATTRIBUTE_ID 0x0011 // Ver.: always -#define ZCL_SESSION_INTERVAL_ATTRIBUTE_ID 0x0012 // Ver.: always -#define ZCL_TIMESTAMP_ATTRIBUTE_ID 0x0020 // Ver.: always -#define ZCL_DURATION_ATTRIBUTE_ID 0x0021 // Ver.: always -#define ZCL_BILLING_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_BILLING_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Appliance Identification -// Cluster specification level: UNKNOWN - -// Client attributes -#define ZCL_APPLIANCE_IDENTIFICATION_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_APPLIANCE_IDENTIFICATION_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_BASIC_IDENTIFICATION_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_APPLIANCE_COMPANY_NAME_ATTRIBUTE_ID 0x0010 // Ver.: always -#define ZCL_COMPANY_ID_ATTRIBUTE_ID 0x0011 // Ver.: always -#define ZCL_BRAND_NAME_ATTRIBUTE_ID 0x0012 // Ver.: always -#define ZCL_BRAND_ID_ATTRIBUTE_ID 0x0013 // Ver.: always -#define ZCL_APPLIANCE_MODEL_ATTRIBUTE_ID 0x0014 // Ver.: always -#define ZCL_APPLIANCE_PART_NUMBER_ATTRIBUTE_ID 0x0015 // Ver.: always -#define ZCL_APPLIANCE_PRODUCT_REVISION_ATTRIBUTE_ID 0x0016 // Ver.: always -#define ZCL_APPLIANCE_SOFTWARE_REVISION_ATTRIBUTE_ID 0x0017 // Ver.: always -#define ZCL_PRODUCT_TYPE_NAME_ATTRIBUTE_ID 0x0018 // Ver.: always -#define ZCL_PRODUCT_TYPE_ID_ATTRIBUTE_ID 0x0019 // Ver.: always -#define ZCL_CECED_SPECIFICATION_VERSION_ATTRIBUTE_ID 0x001A // Ver.: always -#define ZCL_APPLIANCE_IDENTIFICATION_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_APPLIANCE_IDENTIFICATION_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Meter Identification -// Cluster specification level: UNKNOWN - -// Client attributes -#define ZCL_METER_IDENTIFICATION_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_METER_IDENTIFICATION_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_METER_COMPANY_NAME_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_METER_TYPE_ID_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_DATA_QUALITY_ID_ATTRIBUTE_ID 0x0004 // Ver.: always -#define ZCL_CUSTOMER_NAME_ATTRIBUTE_ID 0x0005 // Ver.: always -#define ZCL_METER_MODEL_ATTRIBUTE_ID 0x0006 // Ver.: always -#define ZCL_METER_PART_NUMBER_ATTRIBUTE_ID 0x0007 // Ver.: always -#define ZCL_METER_PRODUCT_REVISION_ATTRIBUTE_ID 0x0008 // Ver.: always -#define ZCL_METER_SOFTWARE_REVISION_ATTRIBUTE_ID 0x000A // Ver.: always -#define ZCL_UTILITY_NAME_ATTRIBUTE_ID 0x000B // Ver.: always -#define ZCL_POD_ATTRIBUTE_ID 0x000C // Ver.: always -#define ZCL_AVAILABLE_POWER_ATTRIBUTE_ID 0x000D // Ver.: always -#define ZCL_POWER_THRESHOLD_ATTRIBUTE_ID 0x000E // Ver.: always -#define ZCL_METER_IDENTIFICATION_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_METER_IDENTIFICATION_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Appliance Events and Alert -// Cluster specification level: UNKNOWN - -// Client attributes -#define ZCL_APPLIANCE_EVENTS_AND_ALERT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_APPLIANCE_EVENTS_AND_ALERT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_APPLIANCE_EVENTS_AND_ALERT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_APPLIANCE_EVENTS_AND_ALERT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Appliance Statistics -// Cluster specification level: UNKNOWN - -// Client attributes -#define ZCL_APPLIANCE_STATISTICS_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_APPLIANCE_STATISTICS_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_LOG_MAX_SIZE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_LOG_QUEUE_MAX_SIZE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_APPLIANCE_STATISTICS_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_APPLIANCE_STATISTICS_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Electrical Measurement -// Cluster specification level: UNKNOWN - -// Client attributes -#define ZCL_ELECTRICAL_MEASUREMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_ELECTRICAL_MEASUREMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_MEASUREMENT_TYPE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_DC_VOLTAGE_ATTRIBUTE_ID 0x0100 // Ver.: always -#define ZCL_DC_VOLTAGE_MIN_ATTRIBUTE_ID 0x0101 // Ver.: always -#define ZCL_DC_VOLTAGE_MAX_ATTRIBUTE_ID 0x0102 // Ver.: always -#define ZCL_DC_CURRENT_ATTRIBUTE_ID 0x0103 // Ver.: always -#define ZCL_DC_CURRENT_MIN_ATTRIBUTE_ID 0x0104 // Ver.: always -#define ZCL_DC_CURRENT_MAX_ATTRIBUTE_ID 0x0105 // Ver.: always -#define ZCL_DC_POWER_ATTRIBUTE_ID 0x0106 // Ver.: always -#define ZCL_DC_POWER_MIN_ATTRIBUTE_ID 0x0107 // Ver.: always -#define ZCL_DC_POWER_MAX_ATTRIBUTE_ID 0x0108 // Ver.: always -#define ZCL_DC_VOLTAGE_MULTIPLIER_ATTRIBUTE_ID 0x0200 // Ver.: always -#define ZCL_DC_VOLTAGE_DIVISOR_ATTRIBUTE_ID 0x0201 // Ver.: always -#define ZCL_DC_CURRENT_MULTIPLIER_ATTRIBUTE_ID 0x0202 // Ver.: always -#define ZCL_DC_CURRENT_DIVISOR_ATTRIBUTE_ID 0x0203 // Ver.: always -#define ZCL_DC_POWER_MULTIPLIER_ATTRIBUTE_ID 0x0204 // Ver.: always -#define ZCL_DC_POWER_DIVISOR_ATTRIBUTE_ID 0x0205 // Ver.: always -#define ZCL_AC_FREQUENCY_ATTRIBUTE_ID 0x0300 // Ver.: always -#define ZCL_AC_FREQUENCY_MIN_ATTRIBUTE_ID 0x0301 // Ver.: always -#define ZCL_AC_FREQUENCY_MAX_ATTRIBUTE_ID 0x0302 // Ver.: always -#define ZCL_NEUTRAL_CURRENT_ATTRIBUTE_ID 0x0303 // Ver.: always -#define ZCL_TOTAL_ACTIVE_POWER_ATTRIBUTE_ID 0x0304 // Ver.: always -#define ZCL_TOTAL_REACTIVE_POWER_ATTRIBUTE_ID 0x0305 // Ver.: always -#define ZCL_TOTAL_APPARENT_POWER_ATTRIBUTE_ID 0x0306 // Ver.: always -#define ZCL_MEASURED_1ST_HARMONIC_CURRENT_ATTRIBUTE_ID 0x0307 // Ver.: always -#define ZCL_MEASURED_3RD_HARMONIC_CURRENT_ATTRIBUTE_ID 0x0308 // Ver.: always -#define ZCL_MEASURED_5TH_HARMONIC_CURRENT_ATTRIBUTE_ID 0x0309 // Ver.: always -#define ZCL_MEASURED_7TH_HARMONIC_CURRENT_ATTRIBUTE_ID 0x030A // Ver.: always -#define ZCL_MEASURED_9TH_HARMONIC_CURRENT_ATTRIBUTE_ID 0x030B // Ver.: always -#define ZCL_MEASURED_11TH_HARMONIC_CURRENT_ATTRIBUTE_ID 0x030C // Ver.: always -#define ZCL_MEASURED_PHASE_1ST_HARMONIC_CURRENT_ATTRIBUTE_ID 0x030D // Ver.: always -#define ZCL_MEASURED_PHASE_3RD_HARMONIC_CURRENT_ATTRIBUTE_ID 0x030E // Ver.: always -#define ZCL_MEASURED_PHASE_5TH_HARMONIC_CURRENT_ATTRIBUTE_ID 0x030F // Ver.: always -#define ZCL_MEASURED_PHASE_7TH_HARMONIC_CURRENT_ATTRIBUTE_ID 0x0310 // Ver.: always -#define ZCL_MEASURED_PHASE_9TH_HARMONIC_CURRENT_ATTRIBUTE_ID 0x0311 // Ver.: always -#define ZCL_MEASURED_PHASE_11TH_HARMONIC_CURRENT_ATTRIBUTE_ID 0x0312 // Ver.: always -#define ZCL_AC_FREQUENCY_MULTIPLIER_ATTRIBUTE_ID 0x0400 // Ver.: always -#define ZCL_AC_FREQUENCY_DIVISOR_ATTRIBUTE_ID 0x0401 // Ver.: always -#define ZCL_POWER_MULTIPLIER_ATTRIBUTE_ID 0x0402 // Ver.: always -#define ZCL_POWER_DIVISOR_ATTRIBUTE_ID 0x0403 // Ver.: always -#define ZCL_HARMONIC_CURRENT_MULTIPLIER_ATTRIBUTE_ID 0x0404 // Ver.: always -#define ZCL_PHASE_HARMONIC_CURRENT_MULTIPLIER_ATTRIBUTE_ID 0x0405 // Ver.: always -#define ZCL_INSTANTANEOUS_VOLTAGE_ATTRIBUTE_ID 0x0500 // Ver.: always -#define ZCL_INSTANTANEOUS_LINE_CURRENT_ATTRIBUTE_ID 0x0501 // Ver.: always -#define ZCL_INSTANTANEOUS_ACTIVE_CURRENT_ATTRIBUTE_ID 0x0502 // Ver.: always -#define ZCL_INSTANTANEOUS_REACTIVE_CURRENT_ATTRIBUTE_ID 0x0503 // Ver.: always -#define ZCL_INSTANTANEOUS_POWER_ATTRIBUTE_ID 0x0504 // Ver.: always -#define ZCL_RMS_VOLTAGE_ATTRIBUTE_ID 0x0505 // Ver.: always -#define ZCL_RMS_VOLTAGE_MIN_ATTRIBUTE_ID 0x0506 // Ver.: always -#define ZCL_RMS_VOLTAGE_MAX_ATTRIBUTE_ID 0x0507 // Ver.: always -#define ZCL_RMS_CURRENT_ATTRIBUTE_ID 0x0508 // Ver.: always -#define ZCL_RMS_CURRENT_MIN_ATTRIBUTE_ID 0x0509 // Ver.: always -#define ZCL_RMS_CURRENT_MAX_ATTRIBUTE_ID 0x050A // Ver.: always -#define ZCL_ACTIVE_POWER_ATTRIBUTE_ID 0x050B // Ver.: always -#define ZCL_ACTIVE_POWER_MIN_ATTRIBUTE_ID 0x050C // Ver.: always -#define ZCL_ACTIVE_POWER_MAX_ATTRIBUTE_ID 0x050D // Ver.: always -#define ZCL_REACTIVE_POWER_ATTRIBUTE_ID 0x050E // Ver.: always -#define ZCL_APPARENT_POWER_ATTRIBUTE_ID 0x050F // Ver.: always -#define ZCL_AC_POWER_FACTOR_ATTRIBUTE_ID 0x0510 // Ver.: always -#define ZCL_AVERAGE_RMS_VOLTAGE_MEASUREMENT_PERIOD_ATTRIBUTE_ID 0x0511 // Ver.: always -#define ZCL_AVERAGE_RMS_UNDER_VOLTAGE_COUNTER_ATTRIBUTE_ID 0x0513 // Ver.: always -#define ZCL_RMS_EXTREME_OVER_VOLTAGE_PERIOD_ATTRIBUTE_ID 0x0514 // Ver.: always -#define ZCL_RMS_EXTREME_UNDER_VOLTAGE_PERIOD_ATTRIBUTE_ID 0x0515 // Ver.: always -#define ZCL_RMS_VOLTAGE_SAG_PERIOD_ATTRIBUTE_ID 0x0516 // Ver.: always -#define ZCL_RMS_VOLTAGE_SWELL_PERIOD_ATTRIBUTE_ID 0x0517 // Ver.: always -#define ZCL_AC_VOLTAGE_MULTIPLIER_ATTRIBUTE_ID 0x0600 // Ver.: always -#define ZCL_AC_VOLTAGE_DIVISOR_ATTRIBUTE_ID 0x0601 // Ver.: always -#define ZCL_AC_CURRENT_MULTIPLIER_ATTRIBUTE_ID 0x0602 // Ver.: always -#define ZCL_AC_CURRENT_DIVISOR_ATTRIBUTE_ID 0x0603 // Ver.: always -#define ZCL_AC_POWER_MULTIPLIER_ATTRIBUTE_ID 0x0604 // Ver.: always -#define ZCL_AC_POWER_DIVISOR_ATTRIBUTE_ID 0x0605 // Ver.: always -#define ZCL_DC_OVERLOAD_ALARMS_MASK_ATTRIBUTE_ID 0x0700 // Ver.: always -#define ZCL_DC_VOLTAGE_OVERLOAD_ATTRIBUTE_ID 0x0701 // Ver.: always -#define ZCL_DC_CURRENT_OVERLOAD_ATTRIBUTE_ID 0x0702 // Ver.: always -#define ZCL_AC_OVERLOAD_ALARMS_MASK_ATTRIBUTE_ID 0x0800 // Ver.: always -#define ZCL_AC_VOLTAGE_OVERLOAD_ATTRIBUTE_ID 0x0801 // Ver.: always -#define ZCL_AC_CURRENT_OVERLOAD_ATTRIBUTE_ID 0x0802 // Ver.: always -#define ZCL_AC_POWER_OVERLOAD_ATTRIBUTE_ID 0x0803 // Ver.: always -#define ZCL_AC_REACTIVE_POWER_OVERLOAD_ATTRIBUTE_ID 0x0804 // Ver.: always -#define ZCL_AVERAGE_RMS_OVER_VOLTAGE_ATTRIBUTE_ID 0x0805 // Ver.: always -#define ZCL_AVERAGE_RMS_UNDER_VOLTAGE_ATTRIBUTE_ID 0x0806 // Ver.: always -#define ZCL_RMS_EXTREME_OVER_VOLTAGE_ATTRIBUTE_ID 0x0807 // Ver.: always -#define ZCL_RMS_EXTREME_UNDER_VOLTAGE_ATTRIBUTE_ID 0x0808 // Ver.: always -#define ZCL_RMS_VOLTAGE_SAG_ATTRIBUTE_ID 0x0809 // Ver.: always -#define ZCL_RMS_VOLTAGE_SWELL_ATTRIBUTE_ID 0x080A // Ver.: always -#define ZCL_LINE_CURRENT_PHASE_B_ATTRIBUTE_ID 0x0901 // Ver.: always -#define ZCL_ACTIVE_CURRENT_PHASE_B_ATTRIBUTE_ID 0x0902 // Ver.: always -#define ZCL_REACTIVE_CURRENT_PHASE_B_ATTRIBUTE_ID 0x0903 // Ver.: always -#define ZCL_RMS_VOLTAGE_PHASE_B_ATTRIBUTE_ID 0x0905 // Ver.: always -#define ZCL_RMS_VOLTAGE_MIN_PHASE_B_ATTRIBUTE_ID 0x0906 // Ver.: always -#define ZCL_RMS_VOLTAGE_MAX_PHASE_B_ATTRIBUTE_ID 0x0907 // Ver.: always -#define ZCL_RMS_CURRENT_PHASE_B_ATTRIBUTE_ID 0x0908 // Ver.: always -#define ZCL_RMS_CURRENT_MIN_PHASE_B_ATTRIBUTE_ID 0x0909 // Ver.: always -#define ZCL_RMS_CURRENT_MAX_PHASE_B_ATTRIBUTE_ID 0x090A // Ver.: always -#define ZCL_ACTIVE_POWER_PHASE_B_ATTRIBUTE_ID 0x090B // Ver.: always -#define ZCL_ACTIVE_POWER_MIN_PHASE_B_ATTRIBUTE_ID 0x090C // Ver.: always -#define ZCL_ACTIVE_POWER_MAX_PHASE_B_ATTRIBUTE_ID 0x090D // Ver.: always -#define ZCL_REACTIVE_POWER_PHASE_B_ATTRIBUTE_ID 0x090E // Ver.: always -#define ZCL_APPARENT_POWER_PHASE_B_ATTRIBUTE_ID 0x090F // Ver.: always -#define ZCL_POWER_FACTOR_PHASE_B_ATTRIBUTE_ID 0x0910 // Ver.: always -#define ZCL_AVERAGE_RMS_VOLTAGE_MEASUREMENT_PERIOD_PHASE_B_ATTRIBUTE_ID 0x0911 // Ver.: always -#define ZCL_AVERAGE_RMS_OVER_VOLTAGE_COUNTER_PHASE_B_ATTRIBUTE_ID 0x0912 // Ver.: always -#define ZCL_AVERAGE_RMS_UNDER_VOLTAGE_COUNTER_PHASE_B_ATTRIBUTE_ID 0x0913 // Ver.: always -#define ZCL_RMS_EXTREME_OVER_VOLTAGE_PERIOD_PHASE_B_ATTRIBUTE_ID 0x0914 // Ver.: always -#define ZCL_RMS_EXTREME_UNDER_VOLTAGE_PERIOD_PHASE_B_ATTRIBUTE_ID 0x0915 // Ver.: always -#define ZCL_RMS_VOLTAGE_SAG_PERIOD_PHASE_B_ATTRIBUTE_ID 0x0916 // Ver.: always -#define ZCL_RMS_VOLTAGE_SWELL_PERIOD_PHASE_B_ATTRIBUTE_ID 0x0917 // Ver.: always -#define ZCL_LINE_CURRENT_PHASE_C_ATTRIBUTE_ID 0x0A01 // Ver.: always -#define ZCL_ACTIVE_CURRENT_PHASE_C_ATTRIBUTE_ID 0x0A02 // Ver.: always -#define ZCL_REACTIVE_CURRENT_PHASE_C_ATTRIBUTE_ID 0x0A03 // Ver.: always -#define ZCL_RMS_VOLTAGE_PHASE_C_ATTRIBUTE_ID 0x0A05 // Ver.: always -#define ZCL_RMS_VOLTAGE_MIN_PHASE_C_ATTRIBUTE_ID 0x0A06 // Ver.: always -#define ZCL_RMS_VOLTAGE_MAX_PHASE_C_ATTRIBUTE_ID 0x0A07 // Ver.: always -#define ZCL_RMS_CURRENT_PHASE_C_ATTRIBUTE_ID 0x0A08 // Ver.: always -#define ZCL_RMS_CURRENT_MIN_PHASE_C_ATTRIBUTE_ID 0x0A09 // Ver.: always -#define ZCL_RMS_CURRENT_MAX_PHASE_C_ATTRIBUTE_ID 0x0A0A // Ver.: always -#define ZCL_ACTIVE_POWER_PHASE_C_ATTRIBUTE_ID 0x0A0B // Ver.: always -#define ZCL_ACTIVE_POWER_MIN_PHASE_C_ATTRIBUTE_ID 0x0A0C // Ver.: always -#define ZCL_ACTIVE_POWER_MAX_PHASE_C_ATTRIBUTE_ID 0x0A0D // Ver.: always -#define ZCL_REACTIVE_POWER_PHASE_C_ATTRIBUTE_ID 0x0A0E // Ver.: always -#define ZCL_APPARENT_POWER_PHASE_C_ATTRIBUTE_ID 0x0A0F // Ver.: always -#define ZCL_POWER_FACTOR_PHASE_C_ATTRIBUTE_ID 0x0A10 // Ver.: always -#define ZCL_AVERAGE_RMS_VOLTAGE_MEASUREMENT_PERIOD_PHASE_C_ATTRIBUTE_ID 0x0A11 // Ver.: always -#define ZCL_AVERAGE_RMS_OVER_VOLTAGE_COUNTER_PHASE_C_ATTRIBUTE_ID 0x0A12 // Ver.: always -#define ZCL_AVERAGE_RMS_UNDER_VOLTAGE_COUNTER_PHASE_C_ATTRIBUTE_ID 0x0A13 // Ver.: always -#define ZCL_RMS_EXTREME_OVER_VOLTAGE_PERIOD_PHASE_C_ATTRIBUTE_ID 0x0A14 // Ver.: always -#define ZCL_RMS_EXTREME_UNDER_VOLTAGE_PERIOD_PHASE_C_ATTRIBUTE_ID 0x0A15 // Ver.: always -#define ZCL_RMS_VOLTAGE_SAG_PERIOD_PHASE_C_ATTRIBUTE_ID 0x0A16 // Ver.: always -#define ZCL_RMS_VOLTAGE_SWELL_PERIOD_PHASE_C_ATTRIBUTE_ID 0x0A17 // Ver.: always -#define ZCL_ELECTRICAL_MEASUREMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_ELECTRICAL_MEASUREMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Diagnostics -// Cluster specification level: UNKNOWN - -// Client attributes -#define ZCL_DIAGNOSTICS_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_DIAGNOSTICS_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_NUMBER_OF_RESETS_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_PERSISTENT_MEMORY_WRITES_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_MAC_RX_BCAST_ATTRIBUTE_ID 0x0100 // Ver.: always -#define ZCL_MAC_TX_BCAST_ATTRIBUTE_ID 0x0101 // Ver.: always -#define ZCL_MAC_RX_UCAST_ATTRIBUTE_ID 0x0102 // Ver.: always -#define ZCL_MAC_TX_UCAST_ATTRIBUTE_ID 0x0103 // Ver.: always -#define ZCL_MAC_TX_UCAST_RETRY_ATTRIBUTE_ID 0x0104 // Ver.: always -#define ZCL_MAC_TX_UCAST_FAIL_ATTRIBUTE_ID 0x0105 // Ver.: always -#define ZCL_APS_RX_BCAST_ATTRIBUTE_ID 0x0106 // Ver.: always -#define ZCL_APS_TX_BCAST_ATTRIBUTE_ID 0x0107 // Ver.: always -#define ZCL_APS_RX_UCAST_ATTRIBUTE_ID 0x0108 // Ver.: always -#define ZCL_APS_UCAST_SUCCESS_ATTRIBUTE_ID 0x0109 // Ver.: always -#define ZCL_APS_TX_UCAST_RETRY_ATTRIBUTE_ID 0x010A // Ver.: always -#define ZCL_APS_TX_UCAST_FAIL_ATTRIBUTE_ID 0x010B // Ver.: always -#define ZCL_ROUTE_DISC_INITIATED_ATTRIBUTE_ID 0x010C // Ver.: always -#define ZCL_NEIGHBOR_ADDED_ATTRIBUTE_ID 0x010D // Ver.: always -#define ZCL_NEIGHBOR_REMOVED_ATTRIBUTE_ID 0x010E // Ver.: always -#define ZCL_NEIGHBOR_STALE_ATTRIBUTE_ID 0x010F // Ver.: always -#define ZCL_JOIN_INDICATION_ATTRIBUTE_ID 0x0110 // Ver.: always -#define ZCL_CHILD_MOVED_ATTRIBUTE_ID 0x0111 // Ver.: always -#define ZCL_NWK_FC_FAILURE_ATTRIBUTE_ID 0x0112 // Ver.: always -#define ZCL_APS_FC_FAILURE_ATTRIBUTE_ID 0x0113 // Ver.: always -#define ZCL_APS_UNAUTHORIZED_KEY_ATTRIBUTE_ID 0x0114 // Ver.: always -#define ZCL_NWK_DECRYPT_FAILURE_ATTRIBUTE_ID 0x0115 // Ver.: always -#define ZCL_APS_DECRYPT_FAILURE_ATTRIBUTE_ID 0x0116 // Ver.: always -#define ZCL_PACKET_BUFFER_ALLOC_FAILURES_ATTRIBUTE_ID 0x0117 // Ver.: always -#define ZCL_RELAYED_UNICAST_ATTRIBUTE_ID 0x0118 // Ver.: always -#define ZCL_PHY_TO_MAC_QUEUE_LIMIT_REACHED_ATTRIBUTE_ID 0x0119 // Ver.: always -#define ZCL_PACKET_VALIDATE_DROP_COUNT_ATTRIBUTE_ID 0x011A // Ver.: always -#define ZCL_AVERAGE_MAC_RETRY_PER_APS_MSG_SENT_ATTRIBUTE_ID 0x011B // Ver.: always -#define ZCL_LAST_MESSAGE_LQI_ATTRIBUTE_ID 0x011C // Ver.: always -#define ZCL_LAST_MESSAGE_RSSI_ATTRIBUTE_ID 0x011D // Ver.: always -#define ZCL_DIAGNOSTICS_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_DIAGNOSTICS_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: ZLL Commissioning -// Cluster specification level: zll-1.0-11-0037-10 - -// Client attributes -#define ZCL_ZLL_COMMISSIONING_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_ZLL_COMMISSIONING_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_ZLL_COMMISSIONING_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_ZLL_COMMISSIONING_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Sample Mfg Specific Cluster -// Cluster specification level: UNKNOWN - -// Client attributes -#define ZCL_SAMPLE_MFG_SPECIFIC_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_SAMPLE_MFG_SPECIFIC_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_ATTRIBUTE_ONE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_ATTRIBUTE_TWO_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_SAMPLE_MFG_SPECIFIC_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_SAMPLE_MFG_SPECIFIC_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Sample Mfg Specific Cluster 2 -// Cluster specification level: UNKNOWN - -// Client attributes -#define ZCL_SAMPLE_MFG_SPECIFIC_CLUSTER_2_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_SAMPLE_MFG_SPECIFIC_CLUSTER_2_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_ATTRIBUTE_THREE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_ATTRIBUTE_FOUR_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_SAMPLE_MFG_SPECIFIC_CLUSTER_2_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_SAMPLE_MFG_SPECIFIC_CLUSTER_2_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Configuration Cluster -// Cluster specification level: UNKNOWN - -// Client attributes -#define ZCL_OTA_CONFIGURATION_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_OTA_CONFIGURATION_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_TOKENS_LOCKED_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_OTA_CONFIGURATION_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_OTA_CONFIGURATION_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: MFGLIB Cluster -// Cluster specification level: UNKNOWN - -// Client attributes -#define ZCL_MFGLIB_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_MFGLIB_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_PACKETS_RECEIVED_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_SAVED_RSSI_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_SAVED_LQI_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_MFGLIB_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_MFGLIB_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: SL Works With All Hubs -// Cluster specification level: UNKNOWN - -// Client attributes -#define ZCL_SL_WWAH_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_SL_WWAH_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_SL_DISABLE_OTA_DOWNGRADES_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_SL_MGMT_LEAVE_WITHOUT_REJOIN_ENABLED_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_SL_NWK_RETRY_COUNT_ATTRIBUTE_ID 0x0004 // Ver.: always -#define ZCL_SL_MAC_RETRY_COUNT_ATTRIBUTE_ID 0x0005 // Ver.: always -#define ZCL_SL_ROUTER_CHECKIN_ENABLED_ATTRIBUTE_ID 0x0006 // Ver.: always -#define ZCL_SL_TOUCHLINK_INTERPAN_ENABLED_ATTRIBUTE_ID 0x0007 // Ver.: always -#define ZCL_SL_WWAH_PARENT_CLASSIFICATION_ENABLED_ATTRIBUTE_ID 0x0008 // Ver.: always -#define ZCL_SL_WWAH_APP_EVENT_RETRY_ENABLED_ATTRIBUTE_ID 0x0009 // Ver.: always -#define ZCL_SL_WWAH_APP_EVENT_RETRY_QUEUE_SIZE_ATTRIBUTE_ID 0x000A // Ver.: always -#define ZCL_SL_WWAH_REJOIN_ENABLED_ATTRIBUTE_ID 0x000B // Ver.: always -#define ZCL_SL_MAC_POLL_FAILURE_WAIT_TIME_ATTRIBUTE_ID 0x000C // Ver.: always -#define ZCL_SL_CONFIGURATION_MODE_ENABLED_ATTRIBUTE_ID 0x000D // Ver.: always -#define ZCL_SL_CURRENT_DEBUG_REPORT_ID_ATTRIBUTE_ID 0x000E // Ver.: always -#define ZCL_SL_TC_SECURITY_ON_NTWK_KEY_ROTATION_ENABLED_ATTRIBUTE_ID 0x000F // Ver.: always -#define ZCL_SL_WWAH_BAD_PARENT_RECOVERY_ENABLED_ATTRIBUTE_ID 0x0010 // Ver.: always -#define ZCL_SL_PENDING_NETWORK_UPDATE_CHANNEL_ATTRIBUTE_ID 0x0011 // Ver.: always -#define ZCL_SL_PENDING_NETWORK_UPDATE_PANID_ATTRIBUTE_ID 0x0012 // Ver.: always -#define ZCL_SL_OTA_MAX_OFFLINE_DURATION_ATTRIBUTE_ID 0x0013 // Ver.: always -#define ZCL_SL_WWAH_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_SL_WWAH_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -#endif // SILABS_EMBER_AF_ATTRIBUTE_ID diff --git a/examples/lock-app/efr32/src/gen/attribute-size.h b/examples/lock-app/efr32/src/gen/attribute-size.h deleted file mode 100644 index 8ab0dae3944631..00000000000000 --- a/examples/lock-app/efr32/src/gen/attribute-size.h +++ /dev/null @@ -1,49 +0,0 @@ -/** - * - * 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 SILABS_ATTRIBUTE_SIZE -#define SILABS_ATTRIBUTE_SIZE - -// Used ZCL attribute type sizes -ZCL_BITMAP16_ATTRIBUTE_TYPE, 2, ZCL_BITMAP24_ATTRIBUTE_TYPE, 3, ZCL_BITMAP32_ATTRIBUTE_TYPE, 4, ZCL_BITMAP48_ATTRIBUTE_TYPE, 6, - ZCL_BITMAP64_ATTRIBUTE_TYPE, 8, ZCL_BITMAP8_ATTRIBUTE_TYPE, 1, ZCL_BOOLEAN_ATTRIBUTE_TYPE, 1, ZCL_DATA8_ATTRIBUTE_TYPE, 1, - ZCL_ENUM16_ATTRIBUTE_TYPE, 2, ZCL_ENUM8_ATTRIBUTE_TYPE, 1, ZCL_FLOAT_SINGLE_ATTRIBUTE_TYPE, 4, ZCL_IEEE_ADDRESS_ATTRIBUTE_TYPE, - 8, ZCL_INT16S_ATTRIBUTE_TYPE, 2, ZCL_INT16U_ATTRIBUTE_TYPE, 2, ZCL_INT24S_ATTRIBUTE_TYPE, 3, ZCL_INT24U_ATTRIBUTE_TYPE, 3, - ZCL_INT32S_ATTRIBUTE_TYPE, 4, ZCL_INT32U_ATTRIBUTE_TYPE, 4, ZCL_INT48U_ATTRIBUTE_TYPE, 6, ZCL_INT56U_ATTRIBUTE_TYPE, 7, - ZCL_INT8S_ATTRIBUTE_TYPE, 1, ZCL_INT8U_ATTRIBUTE_TYPE, 1, ZCL_SECURITY_KEY_ATTRIBUTE_TYPE, 16, ZCL_UTC_TIME_ATTRIBUTE_TYPE, 4, -#endif // SILABS_ATTRIBUTE_SIZE diff --git a/examples/lock-app/efr32/src/gen/call-command-handler.c b/examples/lock-app/efr32/src/gen/call-command-handler.c deleted file mode 100644 index 41782ce01ad83b..00000000000000 --- a/examples/lock-app/efr32/src/gen/call-command-handler.c +++ /dev/null @@ -1,143 +0,0 @@ -/** - * - * 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. -// -// - -// This is a set of generated functions that parse the -// the incomming message, and call appropriate command handler. - -// #include PLATFORM_HEADER -#ifdef EZSP_HOST -// Includes needed for ember related functions for the EZSP host -#include "app/util/ezsp/ezsp-protocol.h" -#include "app/util/ezsp/ezsp-utils.h" -#include "app/util/ezsp/ezsp.h" -#include "app/util/ezsp/serial-interface.h" -#include "stack/include/ember-types.h" -#include "stack/include/error.h" -#else -// Includes needed for ember related functions for the EM250 -// #include "stack/include/ember.h" -#endif // EZSP_HOST - -#include - -#include "af-structs.h" -#include "call-command-handler.h" -#include "callback.h" -#include "command-id.h" -#include "util.h" - -static EmberAfStatus status(bool wasHandled, bool clusterExists, bool mfgSpecific) -{ - if (wasHandled) - { - return EMBER_ZCL_STATUS_SUCCESS; - } - else if (mfgSpecific) - { - return EMBER_ZCL_STATUS_UNSUP_MANUF_CLUSTER_COMMAND; - } - else if (clusterExists) - { - return EMBER_ZCL_STATUS_UNSUP_CLUSTER_COMMAND; - } - else - { - return EMBER_ZCL_STATUS_UNSUPPORTED_CLUSTER; - } -} - -// Main command parsing controller. -EmberAfStatus emberAfClusterSpecificCommandParse(EmberAfClusterCommand * cmd) -{ - EmberAfStatus result = status(false, false, cmd->mfgSpecific); - if (cmd->direction == (uint8_t) ZCL_DIRECTION_SERVER_TO_CLIENT && - emberAfContainsClientWithMfgCode(cmd->apsFrame->destinationEndpoint, cmd->apsFrame->clusterId, cmd->mfgCode)) - { - switch (cmd->apsFrame->clusterId) - { - default: - // Unrecognized cluster ID, error status will apply. - break; - } - } - else if (cmd->direction == (uint8_t) ZCL_DIRECTION_CLIENT_TO_SERVER && - emberAfContainsServerWithMfgCode(cmd->apsFrame->destinationEndpoint, cmd->apsFrame->clusterId, cmd->mfgCode)) - { - switch (cmd->apsFrame->clusterId) - { - case ZCL_ON_OFF_CLUSTER_ID: - result = emberAfOnOffClusterServerCommandParse(cmd); - break; - default: - // Unrecognized cluster ID, error status will apply. - break; - } - } - return result; -} - -// Cluster: On/off, server -EmberAfStatus emberAfOnOffClusterServerCommandParse(EmberAfClusterCommand * cmd) -{ - bool wasHandled = false; - if (!cmd->mfgSpecific) - { - switch (cmd->commandId) - { - case ZCL_OFF_COMMAND_ID: { - // Command is fixed length: 0 - wasHandled = emberAfOnOffClusterOffCallback(); - break; - } - case ZCL_ON_COMMAND_ID: { - // Command is fixed length: 0 - wasHandled = emberAfOnOffClusterOnCallback(); - break; - } - case ZCL_TOGGLE_COMMAND_ID: { - // Command is fixed length: 0 - wasHandled = emberAfOnOffClusterToggleCallback(); - break; - } - default: { - // Unrecognized command ID, error status will apply. - break; - } - } - } - return status(wasHandled, true, cmd->mfgSpecific); -} diff --git a/examples/lock-app/efr32/src/gen/call-command-handler.h b/examples/lock-app/efr32/src/gen/call-command-handler.h deleted file mode 100644 index 56c84133c3f612..00000000000000 --- a/examples/lock-app/efr32/src/gen/call-command-handler.h +++ /dev/null @@ -1,50 +0,0 @@ -/** - * - * 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 SILABS_EMBER_AF_COMMAND_PARSE_HEADER -#define SILABS_EMBER_AF_COMMAND_PARSE_HEADER - -#include "af-types.h" - -// This is a set of generated prototype for functions that parse the -// the incomming message, and call appropriate command handler. - -// Cluster: On/off, server -EmberAfStatus emberAfOnOffClusterServerCommandParse(EmberAfClusterCommand * cmd); - -#endif // SILABS_EMBER_AF_COMMAND_PARSE_HEADER diff --git a/examples/lock-app/efr32/src/gen/callback-stub.c b/examples/lock-app/efr32/src/gen/callback-stub.c deleted file mode 100644 index f1d56bcbf370c8..00000000000000 --- a/examples/lock-app/efr32/src/gen/callback-stub.c +++ /dev/null @@ -1,2475 +0,0 @@ -/** - * - * 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. -// -// - -// This c file provides stubs for all callbacks. These stubs -// will be used in the case where user defined implementations -// of the callbacks have not been provided. -#include "af.h" -#include -//#include "hal/hal.h" -//#include EMBER_AF_API_NETWORK_STEERING - -/** @brief Add To Current App Tasks - * - * This function is only useful to sleepy end devices. This function will note - * the passed item as part of a set of tasks the application has outstanding - * (e.g. message sent requiring APS acknwoledgement). This will affect how the - * application behaves with regard to sleeping and polling. Until the - * outstanding task is completed, the device may poll more frequently and sleep - * less often. - * - * @param tasks Ver.: always - */ -void emberAfAddToCurrentAppTasksCallback(EmberAfApplicationTask tasks) {} - -/** @brief Allow Network Write Attribute - * - * This function is called by the application framework before it writes an - * attribute in response to a write attribute request from an external device. - * The value passed into this callback is the value to which the attribute is to - * be set by the framework. - Example: In mirroring simple metering data - * on an Energy Services Interface (ESI) (formerly called Energy Service Portal - * (ESP) in SE 1.0).), a mirrored simple meter needs to write read-only - * attributes on its mirror. The-meter-mirror sample application, located in - * app/framework/sample-apps, uses this callback to allow the mirrored device to - * write simple metering attributes on the mirror regardless of the fact that - * most simple metering attributes are defined as read-only by the ZigBee - * specification. - Note: The ZCL specification does not (as of this - * writing) specify any permission-level security for writing writeable - * attributes. As far as the ZCL specification is concerned, if an attribute is - * writeable, any device that has a link key for the device should be able to - * write that attribute. Furthermore if an attribute is read only, it should not - * be written over the air. Thus, if you implement permissions for writing - * attributes as a feature, you MAY be operating outside the specification. This - * is unlikely to be a problem for writing read-only attributes, but it may be a - * problem for attributes that are writeable according to the specification but - * restricted by the application implementing this callback. - * - * @param endpoint Ver.: always - * @param clusterId Ver.: always - * @param attributeId Ver.: always - * @param mask Ver.: always - * @param manufacturerCode Ver.: always - * @param value Ver.: always - * @param type Ver.: always - */ -EmberAfAttributeWritePermission emberAfAllowNetworkWriteAttributeCallback(uint8_t endpoint, EmberAfClusterId clusterId, - EmberAfAttributeId attributeId, uint8_t mask, - uint16_t manufacturerCode, uint8_t * value, uint8_t type) -{ - return EMBER_ZCL_ATTRIBUTE_WRITE_PERMISSION_ALLOW_WRITE_NORMAL; // Default -} - -/** @brief Attribute Read Access - * - * This function is called whenever the Application Framework needs to check - * access permission for an attribute read. - * - * @param endpoint Ver.: always - * @param clusterId Ver.: always - * @param manufacturerCode Ver.: always - * @param attributeId Ver.: always - */ -bool emberAfAttributeReadAccessCallback(uint8_t endpoint, EmberAfClusterId clusterId, uint16_t manufacturerCode, - uint16_t attributeId) -{ - return true; -} - -/** @brief Attribute Write Access - * - * This function is called whenever the Application Framework needs to check - * access permission for an attribute write. - * - * @param endpoint Ver.: always - * @param clusterId Ver.: always - * @param manufacturerCode Ver.: always - * @param attributeId Ver.: always - */ -bool emberAfAttributeWriteAccessCallback(uint8_t endpoint, EmberAfClusterId clusterId, uint16_t manufacturerCode, - uint16_t attributeId) -{ - return true; -} - -/** @brief Groups Cluster Clear Group Table - * - * This function is called by the framework when the application should clear - * the group table. - * - * @param endpoint The endpoint. Ver.: always - */ -void emberAfGroupsClusterClearGroupTableCallback(uint8_t endpoint) {} - -/** @brief Clear Report Table - * - * This function is called by the framework when the application should clear - * the report table. - * - */ -EmberStatus emberAfClearReportTableCallback(void) -{ - return EMBER_LIBRARY_NOT_PRESENT; -} - -/** @brief Scenes Cluster ClearSceneTable - * - * This function is called by the framework when the application should clear - * the scene table. - * - * @param endpoint The endpoint. Ver.: always - */ -void emberAfScenesClusterClearSceneTableCallback(uint8_t endpoint) {} - -/** @brief Key Establishment Cluster Client Command Received - * - * This function is called by the application framework when a server-to-client - * key establishment command is received but has yet to be handled by the - * framework code. This function should return a bool value indicating whether - * the command has been handled by the application code and should not be - * further processed by the framework. - * - * @param cmd Ver.: always - */ -bool emberAfKeyEstablishmentClusterClientCommandReceivedCallback(EmberAfClusterCommand * cmd) -{ - return false; -} - -/** @brief Cluster Init - * - * This function is called when a specific cluster is initialized. It gives the - * application an opportunity to take care of cluster initialization procedures. - * It is called exactly once for each endpoint where cluster is present. - * - * @param endpoint Ver.: always - * @param clusterId Ver.: always - */ -void emberAfClusterInitCallback(uint8_t endpoint, EmberAfClusterId clusterId) {} - -/** @brief Cluster Security Custom - * - * This callback is fired when determining if APS encryption is required for a - * cluster outside of the specification's required clusters. In other words, - * for the Smart Energy profile this would be a cluster beyond the list that - * normally requires APS encryption. - * - * @param profileId The profile ID Ver.: always - * @param clusterId The cluster ID Ver.: always - * @param incoming Whether this is an incoming or outgoing message. Ver.: - * always - * @param commandId The ZCL command ID being sent/received. Ver.: always - */ -bool emberAfClusterSecurityCustomCallback(EmberAfProfileId profileId, EmberAfClusterId clusterId, bool incoming, uint8_t commandId) -{ - // By default, assume APS encryption is not required. - return false; -} - -/** @brief Configure Reporting Command - * - * This function is called by the application framework when a Configure - * Reporting command is received from an external device. The Configure - * Reporting command contains a series of attribute reporting configuration - * records. The application should return true if the message was processed or - * false if it was not. - * - * @param cmd Ver.: always - */ -bool emberAfConfigureReportingCommandCallback(const EmberAfClusterCommand * cmd) -{ - return false; -} - -/** @brief Configure Reporting Response - * - * This function is called by the application framework when a Configure - * Reporting Response command is received from an external device. The - * application should return true if the message was processed or false if it - * was not. - * - * @param clusterId The cluster identifier of this response. Ver.: always - * @param buffer Buffer containing the list of attribute status records. Ver.: - * always - * @param bufLen The length in bytes of the list. Ver.: always - */ -bool emberAfConfigureReportingResponseCallback(EmberAfClusterId clusterId, uint8_t * buffer, uint16_t bufLen) -{ - return false; -} - -/** @brief Default Response - * - * This function is called by the application framework when a Default Response - * command is received from an external device. The application should return - * true if the message was processed or false if it was not. - * - * @param clusterId The cluster identifier of this response. Ver.: always - * @param commandId The command identifier to which this is a response. Ver.: - * always - * @param status Specifies either SUCCESS or the nature of the error that was - * detected in the received command. Ver.: always - */ -bool emberAfDefaultResponseCallback(EmberAfClusterId clusterId, uint8_t commandId, EmberAfStatus status) -{ - return false; -} - -/** @brief Discover Attributes Response - * - * This function is called by the application framework when a Discover - * Attributes Response or Discover Attributes Extended Response command is - * received from an external device. The Discover Attributes Response command - * contains a bool indicating if discovery is complete and a list of zero or - * more attribute identifier/type records. The final argument indicates whether - * the response is in the extended format or not. The application should return - * true if the message was processed or false if it was not. - * - * @param clusterId The cluster identifier of this response. Ver.: always - * @param discoveryComplete Indicates whether there are more attributes to be - * discovered. true if there are no more attributes to be discovered. Ver.: - * always - * @param buffer Buffer containing the list of attribute identifier/type - * records. Ver.: always - * @param bufLen The length in bytes of the list. Ver.: always - * @param extended Indicates whether the response is in the extended format or - * not. Ver.: always - */ -bool emberAfDiscoverAttributesResponseCallback(EmberAfClusterId clusterId, bool discoveryComplete, uint8_t * buffer, - uint16_t bufLen, bool extended) -{ - return false; -} - -/** @brief Discover Commands Generated Response - * - * This function is called by the framework when Discover Commands Generated - * Response is received. - * - * @param clusterId The cluster identifier of this response. Ver.: always - * @param manufacturerCode Manufacturer code Ver.: always - * @param discoveryComplete Indicates whether there are more commands to be - * discovered. Ver.: always - * @param commandIds Buffer containing the list of command identifiers. Ver.: - * always - * @param commandIdCount The length of bytes of the list, whish is the same as - * the number of identifiers. Ver.: always - */ -bool emberAfDiscoverCommandsGeneratedResponseCallback(EmberAfClusterId clusterId, uint16_t manufacturerCode, bool discoveryComplete, - uint8_t * commandIds, uint16_t commandIdCount) -{ - return false; -} - -/** @brief Discover Commands Received Response - * - * This function is called by the framework when Discover Commands Received - * Response is received. - * - * @param clusterId The cluster identifier of this response. Ver.: always - * @param manufacturerCode Manufacturer code Ver.: always - * @param discoveryComplete Indicates whether there are more commands to be - * discovered. Ver.: always - * @param commandIds Buffer containing the list of command identifiers. Ver.: - * always - * @param commandIdCount The length of bytes of the list, whish is the same as - * the number of identifiers. Ver.: always - */ -bool emberAfDiscoverCommandsReceivedResponseCallback(EmberAfClusterId clusterId, uint16_t manufacturerCode, bool discoveryComplete, - uint8_t * commandIds, uint16_t commandIdCount) -{ - return false; -} - -/** @brief Eeprom Init - * - * Tells the system to initialize the EEPROM if it is not already initialized. - * - */ -void emberAfEepromInitCallback(void) {} - -/** @brief Eeprom Note Initialized State - * - * Records the state of the EEPROM so that an intelligent driver (like the - * EEPROM plugin) can re-initialize the driver prior to any calls to it. - * - * @param state The state of the EEPROM, false=re-initalization needed, - * true=no-re-init needed Ver.: always - */ -void emberAfEepromNoteInitializedStateCallback(bool state) {} - -/** @brief Eeprom Shutdown - * - * Tells the system to shutdown the EEPROM if it is not already shutdown. - * - */ -void emberAfEepromShutdownCallback(void) {} - -/** @brief Groups Cluster Endpoint In Group - * - * This function is called by the framework when it needs to determine if an - * endpoint is a member of a group. The application should return true if the - * endpoint is a member of the group and false otherwise. - * - * @param endpoint The endpoint. Ver.: always - * @param groupId The group identifier. Ver.: always - */ -bool emberAfGroupsClusterEndpointInGroupCallback(uint8_t endpoint, uint16_t groupId) -{ - return false; -} - -/** @brief External Attribute Read - * - * Like emberAfExternalAttributeWriteCallback above, this function is called - * when the framework needs to read an attribute that is not stored within the - * Application Framework's data structures. - All of the important - * information about the attribute itself is passed as a pointer to an - * EmberAfAttributeMetadata struct, which is stored within the application and - * used to manage the attribute. A complete description of the - * EmberAfAttributeMetadata struct is provided in - * app/framework/include/af-types.h - This function assumes that the - * application is able to read the attribute, write it into the passed buffer, - * and return immediately. Any attributes that require a state machine for - * reading and writing are not really candidates for externalization at the - * present time. The Application Framework does not currently include a state - * machine for reading or writing attributes that must take place across a - * series of application ticks. Attributes that cannot be read in a timely - * manner should be stored within the Application Framework and updated - * occasionally by the application code from within the - * emberAfMainTickCallback. - If the application was successfully able to - * read the attribute and write it into the passed buffer, it should return a - * value of EMBER_ZCL_STATUS_SUCCESS. Ensure that the size of the externally - * managed attribute value is smaller than what the buffer can hold. In the case - * of a buffer overflow throw an appropriate error such as - * EMBER_ZCL_STATUS_INSUFFICIENT_SPACE. Any other return value indicates the - * application was not able to read the attribute. - * - * @param endpoint Ver.: always - * @param clusterId Ver.: always - * @param attributeMetadata Ver.: always - * @param manufacturerCode Ver.: always - * @param buffer Ver.: always - * @param maxReadLength Ver.: always - */ -EmberAfStatus emberAfExternalAttributeReadCallback(uint8_t endpoint, EmberAfClusterId clusterId, - EmberAfAttributeMetadata * attributeMetadata, uint16_t manufacturerCode, - uint8_t * buffer, uint16_t maxReadLength) -{ - return EMBER_ZCL_STATUS_FAILURE; -} - -/** @brief External Attribute Write - * - * This function is called whenever the Application Framework needs to write an - * attribute which is not stored within the data structures of the Application - * Framework itself. One of the new features in Version 2 is the ability to - * store attributes outside the Framework. This is particularly useful for - * attributes that do not need to be stored because they can be read off the - * hardware when they are needed, or are stored in some central location used by - * many modules within the system. In this case, you can indicate that the - * attribute is stored externally. When the framework needs to write an external - * attribute, it makes a call to this callback. - This callback is very - * useful for host micros which need to store attributes in persistent memory. - * Because each host micro (used with an Ember NCP) has its own type of - * persistent memory storage, the Application Framework does not include the - * ability to mark attributes as stored in flash the way that it does for Ember - * SoCs like the EM35x. On a host micro, any attributes that need to be stored - * in persistent memory should be marked as external and accessed through the - * external read and write callbacks. Any host code associated with the - * persistent storage should be implemented within this callback. - All of - * the important information about the attribute itself is passed as a pointer - * to an EmberAfAttributeMetadata struct, which is stored within the application - * and used to manage the attribute. A complete description of the - * EmberAfAttributeMetadata struct is provided in - * app/framework/include/af-types.h. - This function assumes that the - * application is able to write the attribute and return immediately. Any - * attributes that require a state machine for reading and writing are not - * candidates for externalization at the present time. The Application Framework - * does not currently include a state machine for reading or writing attributes - * that must take place across a series of application ticks. Attributes that - * cannot be written immediately should be stored within the Application - * Framework and updated occasionally by the application code from within the - * emberAfMainTickCallback. - If the application was successfully able to - * write the attribute, it returns a value of EMBER_ZCL_STATUS_SUCCESS. Any - * other return value indicates the application was not able to write the - * attribute. - * - * @param endpoint Ver.: always - * @param clusterId Ver.: always - * @param attributeMetadata Ver.: always - * @param manufacturerCode Ver.: always - * @param buffer Ver.: always - */ -EmberAfStatus emberAfExternalAttributeWriteCallback(uint8_t endpoint, EmberAfClusterId clusterId, - EmberAfAttributeMetadata * attributeMetadata, uint16_t manufacturerCode, - uint8_t * buffer) -{ - return EMBER_ZCL_STATUS_FAILURE; -} - -/** @brief Find Unused Pan Id And Form - * - * This function is called by the framework to search for an unused PAN id and - * form a new network. The application should return EMBER_SUCCESS if the - * operation was initiated successfully. - * - */ -EmberStatus emberAfFindUnusedPanIdAndFormCallback(void) -{ - return EMBER_LIBRARY_NOT_PRESENT; -} - -/** @brief Get Current App Tasks - * - * This function is only useful to sleepy end devices. This function will - * return the set of tasks the application has outstanding. These tasks affect - * how the application behaves with regard to sleeping and polling. - * - */ -EmberAfApplicationTask emberAfGetCurrentAppTasksCallback(void) -{ - return 0; -} - -/** @brief Get Current Poll Control - * - * This function will retrieve the current poll control that the system is using - * for the current network. This is determined by examining all the scheduled - * events and obtaining the most restrictive poll control context across all - * events. The most restrictive poll control is EMBER_AF_SHORT_POLL followed by - * EMBER_AF_LONG_POLL. - * - */ -EmberAfEventPollControl emberAfGetCurrentPollControlCallback(void) -{ - return EMBER_AF_LONG_POLL; -} - -/** @brief Get Current Poll Interval Ms - * - * This function is only useful to end devices. This function will return the - * current poll interval (in milliseconds) for the current network. This - * interval is the maximum amount of time a child is currently waiting between - * polls of its parent. - * - */ -uint32_t emberAfGetCurrentPollIntervalMsCallback(void) -{ - return 0; -} - -/** @brief Get Current Poll Interval Qs - * - * This function is only useful to end devices. This function will return the - * current poll interval (in quarter seconds) for the current network. This - * interval is the maximum amount of time a child is currently waiting between - * polls of its parent. - * - */ -uint32_t emberAfGetCurrentPollIntervalQsCallback(void) -{ - return 0; -} - -/** @brief Get Current Sleep Control - * - * This function will retrieve the current sleep control that the system is - * using. This is determined by examining all the scheduled events and - * obtaining the most restrictive sleep control context across all events. The - * most restrictive sleep control is EMBER_AF_STAY_AWAKE followed by - * EMBER_AF_OK_TO_SLEEP. - * - */ -EmberAfEventSleepControl emberAfGetCurrentSleepControlCallback(void) -{ - return EMBER_AF_OK_TO_SLEEP; -} - -/** @brief Get Current Time - * - * This callback is called when device attempts to get current time from the - * hardware. If this device has means to retrieve exact time, then this method - * should implement it. If the callback can't provide the exact time it should - * return 0 to indicate failure. Default action is to return 0, which indicates - * that device does not have access to real time. - * - */ -uint32_t emberAfGetCurrentTimeCallback(void) -{ - return 0; -} - -/** @brief Get Default Poll Control - * - * This function will retrieve the default poll control for the current network - * as previously set by emberAfSetDefaultPollControlCallback(). The default - * poll control will limit whether the network can long poll. - * - */ -EmberAfEventPollControl emberAfGetDefaultPollControlCallback(void) -{ - return EMBER_AF_LONG_POLL; -} - -/** @brief Get Default Sleep Control - * - * This function will retrieve the default sleep control the system is using as - * previously set by emberAfSetDefaultSleepControlCallback(). The default sleep - * control will limit whether the device can sleep. - * - */ -EmberAfEventSleepControl emberAfGetDefaultSleepControlCallback(void) -{ - return EMBER_AF_OK_TO_SLEEP; -} - -/** @brief Get Endpoint By Index - * - * Get the endpoint number based on the passed index. By default the framework - * handles this by managing endpoints based on the precompiled configuration - * defined in AppBuilder. This callback can override this behavior at runtime - * and provide additional endpoints or different data than the compiled values. - * If the index is overridden than the callback shall return true and set the - * endpointReturn parameter accordingly. A value of 0xFF means the endpoint - * doesn't exist at that index. - Otherwise false must be returned by the - * callback and the default framework behavior will be executed. This is only - * applicable to the SOC devices. - * - * @param index The index of the endpoint. Ver.: always - * @param endpointReturn The value of endpoint. Ver.: always - */ -bool emberAfGetEndpointByIndexCallback(uint8_t index, uint8_t * endpointReturn) -{ - return false; -} - -/** @brief Get Endpoint Description - * - * This callback is called by the framework whenever it receives a ZDO request - * to enumerate the details about an endpoint. By default the framework - * provides the information based on the precompiled endpoint information as - * defined in AppBuilder. This callback can override that behavior at runtime - * and return different information. If the endpoint information is being - * overridden then the callback must return true. Otherwise it should return - * false, which allows the framework to perform its default behavior. This is - * only applicable to SOC devices. - * - * @param endpoint The endpoint number that is being queried. Ver.: always - * @param result This is a pointer to a data structure where the endpoint - * information is written if the callback is providing the information. Ver.: - * always - */ -bool emberAfGetEndpointDescriptionCallback(uint8_t endpoint, EmberEndpointDescription * result) -{ - return false; -} - -/** @brief Get Endpoint Info - * - * This function is a callback to an application implemented endpoint that - * operates outside the normal application framework. When the framework wishes - * to perform operations with that endpoint it uses this callback to retrieve - * the endpoint's information. If the endpoint exists and the application can - * provide data then true shall be returned. Otherwise the callback must return - * false. - * - * @param endpoint The endpoint to retrieve data for. Ver.: always - * @param returnNetworkIndex The index corresponding to the ZigBee network the - * endpoint belongs to. If not using a multi-network device, 0 must be - * returned. Otherwise on a multi-network device the stack will switch to this - * network before sending the message. Ver.: always - * @param returnEndpointInfo A pointer to a data struct that will be written - * with information about the endpoint. Ver.: always - */ -bool emberAfGetEndpointInfoCallback(uint8_t endpoint, uint8_t * returnNetworkIndex, EmberAfEndpointInfoStruct * returnEndpointInfo) -{ - return false; -} - -/** @brief Get Form And Join Extended Pan Id - * - * This callback is called by the framework to get the extended PAN ID used by - * the current network for forming and joining. The extended PAN ID used for - * forming and joining is not necessarily the same extended PAN ID actually in - * use on the network. - * - * @param resultLocation Ver.: always - */ -void emberAfGetFormAndJoinExtendedPanIdCallback(uint8_t * resultLocation) {} - -/** @brief Get Long Poll Interval Ms - * - * This function is only useful to end devices. This function will return the - * long poll interval (in milliseconds) for the current network. This interval - * is the maximum amount of time a child will wait between polls of its parent - * when it is not expecting data. - * - */ -uint32_t emberAfGetLongPollIntervalMsCallback(void) -{ - return 0; -} - -/** @brief Get Long Poll Interval Qs - * - * This function is only useful to end devices. This function will return the - * long poll interval (in quarter seconds) for the current network. This - * interval is the maximum amount of time a child will wait between polls of its - * parent when it is not expecting data. - * - */ -uint32_t emberAfGetLongPollIntervalQsCallback(void) -{ - return 0; -} - -/** @brief Get Short Poll Interval Ms - * - * This function is only useful to sleepy end devices. This function will - * return the short poll interval (in milliseconds) for the current network. - * This interval is the maximum amount of time a child will wait between polls - * of its parent when it is expecting data. - * - */ -uint16_t emberAfGetShortPollIntervalMsCallback(void) -{ - return 0; -} - -/** @brief Get Short Poll Interval Qs - * - * This function is only useful to sleepy end devices. This function will - * return the short poll interval (in quarter seconds) for the current network. - * This interval is the maximum amount of time a child will wait between polls - * of its parent when it is expecting data. - * - */ -uint16_t emberAfGetShortPollIntervalQsCallback(void) -{ - return 0; -} - -/** @brief Get Source Route Overhead - * - * This function is called by the framework to determine the overhead required - * in the network frame for source routing to a particular destination. - * - * @param destination The node id of the destination Ver.: always - */ -uint8_t emberAfGetSourceRouteOverheadCallback(EmberNodeId destination) -{ - return 0; -} - -/** @brief Get Wake Timeout Bitmask - * - * This function is only useful to sleepy end devices. This function will - * return the wake timeout bitmask for the current network. The bitmask - * determines which tasks will timeout automatically and which tasks require - * manual removal from the task list. - * - */ -EmberAfApplicationTask emberAfGetWakeTimeoutBitmaskCallback(void) -{ - return 0; -} - -/** @brief Get Wake Timeout Ms - * - * This function is only useful to sleepy end devices. This function will - * return the wake timeout (in milliseconds) for the current network. This - * timeout is the maximum amount of time a child will wait for a task in the - * wake bitmask to finish. While waiting, the device will short poll. - * - */ -uint16_t emberAfGetWakeTimeoutMsCallback(void) -{ - return 0; -} - -/** @brief Get Wake Timeout Qs - * - * This function is only useful to sleepy end devices. This function will - * return the wake timeout (in quarter seconds) for the current network. This - * timeout is the maximum amount of time a child will wait for a task in the - * wake bitmask to finish. While waiting, the device will short poll. - * - */ -uint16_t emberAfGetWakeTimeoutQsCallback(void) -{ - return 0; -} - -/** @brief Hal Button Isr - * - * This callback is called by the framework whenever a button is pressed on the - * device. This callback is called within ISR context. - * - * @param button The button which has changed state, either BUTTON0 or BUTTON1 - * as defined in the appropriate BOARD_HEADER. Ver.: always - * @param state The new state of the button referenced by the button parameter, - * either ::BUTTON_PRESSED if the button has been pressed or ::BUTTON_RELEASED - * if the button has been released. Ver.: always - */ -void emberAfHalButtonIsrCallback(uint8_t button, uint8_t state) {} - -/** @brief Incoming Packet Filter - * - * ** REQUIRES INCLUDING THE PACKET-HANDOFF PLUGIN ** - - This is called by - * the Packet Handoff plugin when the stack receives a packet from one of the - * protocol layers specified in ::EmberZigbeePacketType. - - The packetType - * argument is one of the values of the ::EmberZigbeePacketType enum. If the - * stack receives an 802.15.4 MAC beacon, it will call this function with the - * packetType argument set to ::EMBER_ZIGBEE_PACKET_TYPE_BEACON. - - The - * implementation of this callback may alter the data contained in packetData, - * modify options and flags in the auxillary data, or consume the packet itself, - * either sending the message, or discarding it as it sees fit. - * - * @param packetType the type of packet and associated protocol layer Ver.: - * always - * @param packetData flat buffer containing the packet data associated with the - * packet type Ver.: always - * @param size_p a pointer containing the size value of the packet Ver.: always - * @param data auxillary data included with the packet Ver.: always - */ -EmberPacketAction emberAfIncomingPacketFilterCallback(EmberZigbeePacketType packetType, uint8_t * packetData, uint8_t * size_p, - void * data) -{ - return EMBER_ACCEPT_PACKET; -} - -/** @brief Initiate Inter Pan Key Establishment - * - * This function is called by the framework to initiate key establishment with a - * remote device on a different PAN. The application should return - * EMBER_SUCCESS if key establishment was initiated successfully. The - * application should call ::emberAfInterPanKeyEstablishmentCallback as events - * occur. - * - * @param panId The PAN id of the remote device. Ver.: always - * @param eui64 The EUI64 of the remote device. Ver.: always - */ -EmberStatus emberAfInitiateInterPanKeyEstablishmentCallback(EmberPanId panId, const EmberEUI64 eui64) -{ - return EMBER_LIBRARY_NOT_PRESENT; -} - -/** @brief Initiate Key Establishment - * - * This function is called by the framework to initiate key establishment with a - * remote device. The application should return EMBER_SUCCESS if key - * establishment was initiated successfully. The application should call - * ::emberAfKeyEstablishmentCallback as events occur. - * - * @param nodeId The node id of the remote device. Ver.: always - * @param endpoint The endpoint on the remote device. Ver.: always - */ -EmberStatus emberAfInitiateKeyEstablishmentCallback(EmberNodeId nodeId, uint8_t endpoint) -{ - return EMBER_LIBRARY_NOT_PRESENT; -} - -/** @brief Initiate Partner Link Key Exchange - * - * This function is called by the framework to initiate a partner link key - * exchange with a remote device. The application should return EMBER_SUCCESS - * if the partner link key exchange was initiated successfully. When the - * partner link key exchange completes, the application should call the given - * callback. - * - * @param target The node id of the remote device. Ver.: always - * @param endpoint The key establishment endpoint of the remote device. Ver.: - * always - * @param callback The callback that should be called when the partner link key - * exchange completse. Ver.: always - */ -EmberStatus emberAfInitiatePartnerLinkKeyExchangeCallback(EmberNodeId target, uint8_t endpoint, - EmberAfPartnerLinkKeyExchangeCallback * callback) -{ - return EMBER_LIBRARY_NOT_PRESENT; -} - -/** @brief Inter Pan Key Establishment - * - * A callback by the key-establishment code to indicate an event has occurred. - * For error codes this is purely a notification. For non-error status codes - * (besides LINK_KEY_ESTABLISHED), it is the application's chance to allow or - * disallow the operation. If the application returns true then the key - * establishment is allowed to proceed. If it returns false, then key - * establishment is aborted. LINK_KEY_ESTABLISHED is a notification of success. - * - * @param status Ver.: always - * @param amInitiator Ver.: always - * @param panId Ver.: always - * @param eui64 Ver.: always - * @param delayInSeconds Ver.: always - */ -bool emberAfInterPanKeyEstablishmentCallback(EmberAfKeyEstablishmentNotifyMessage status, bool amInitiator, EmberPanId panId, - const EmberEUI64 eui64, uint8_t delayInSeconds) -{ - return true; -} - -/** @brief Interpan Send Message - * - * This function will send a raw MAC message with interpan frame format using - * the passed parameters. - * - * @param header Interpan header info Ver.: always - * @param messageLength The length of the message received or to send Ver.: - * always - * @param message The message data received or to send. Ver.: always - */ -EmberStatus emberAfInterpanSendMessageCallback(EmberAfInterpanHeader * header, uint16_t messageLength, uint8_t * message) -{ - return EMBER_LIBRARY_NOT_PRESENT; -} - -/** @brief Key Establishment - * - * A callback by the key-establishment code to indicate an event has occurred. - * For error codes this is purely a notification. For non-error status codes - * (besides LINK_KEY_ESTABLISHED), it is the application's chance to allow or - * disallow the operation. If the application returns true then the key - * establishment is allowed to proceed. If it returns false, then key - * establishment is aborted. LINK_KEY_ESTABLISHED is a notification of success. - * - * @param status Ver.: always - * @param amInitiator Ver.: always - * @param partnerShortId Ver.: always - * @param delayInSeconds Ver.: always - */ -bool emberAfKeyEstablishmentCallback(EmberAfKeyEstablishmentNotifyMessage status, bool amInitiator, EmberNodeId partnerShortId, - uint8_t delayInSeconds) -{ - return true; -} - -/** @brief On/off Cluster Level Control Effect - * - * This is called by the framework when the on/off cluster initiates a command - * that must effect a level control change. The implementation assumes that the - * client will handle any effect on the On/Off Cluster. - * - * @param endpoint Ver.: always - * @param newValue Ver.: always - */ -void emberAfOnOffClusterLevelControlEffectCallback(uint8_t endpoint, bool newValue) {} - -/** @brief Main Init - * - * This function is called from the application's main function. It gives the - * application a chance to do any initialization required at system startup. Any - * code that you would normally put into the top of the application's main() - * routine should be put into this function. This is called before the clusters, - * plugins, and the network are initialized so some functionality is not yet - * available. - Note: No callback in the Application Framework is - * associated with resource cleanup. If you are implementing your application on - * a Unix host where resource cleanup is a consideration, we expect that you - * will use the standard Posix system calls, including the use of atexit() and - * handlers for signals such as SIGTERM, SIGINT, SIGCHLD, SIGPIPE and so on. If - * you use the signal() function to register your signal handler, please mind - * the returned value which may be an Application Framework function. If the - * return value is non-null, please make sure that you call the returned - * function from your handler to avoid negating the resource cleanup of the - * Application Framework itself. - * - */ -void emberAfMainInitCallback(void) {} - -/** @brief Main Start - * - * This function is called at the start of main after the HAL has been - * initialized. The standard main function arguments of argc and argv are - * passed in. However not all platforms have support for main() function - * arguments. Those that do not are passed NULL for argv, therefore argv should - * be checked for NULL before using it. If the callback determines that the - * program must exit, it should return true. The value returned by main() will - * be the value written to the returnCode pointer. Otherwise the callback - * should return false to let normal execution continue. - * - * @param returnCode Ver.: always - * @param argc Ver.: always - * @param argv Ver.: always - */ -bool emberAfMainStartCallback(int * returnCode, int argc, char ** argv) -{ - // NOTE: argc and argv may not be supported on all platforms, so argv MUST be - // checked for NULL before referencing it. On those platforms without argc - // and argv "0" and "NULL" are passed respectively. - - return false; // exit? -} - -/** @brief Main Tick - * - * Whenever main application tick is called, this callback will be called at the - * end of the main tick execution. - * - */ -void emberAfMainTickCallback(void) {} - -/** @brief Scenes Cluster Make Invalid - * - * This function is called to invalidate the valid attribute in the Scenes - * cluster. - * - * @param endpoint Ver.: always - */ -EmberAfStatus emberAfScenesClusterMakeInvalidCallback(uint8_t endpoint) -{ - return EMBER_ZCL_STATUS_UNSUP_CLUSTER_COMMAND; -} - -/** @brief Mark Buffers - * - * This function is called when the garbage collector runs. Any buffers held by - * the application must be marked. - * - */ -void emberAfMarkBuffersCallback(void) -{ - // emMarkBuffer(&bufferUsed); -} - -/** @brief Message Sent - * - * This function is called by the application framework from the message sent - * handler, when it is informed by the stack regarding the message sent status. - * All of the values passed to the emberMessageSentHandler are passed on to this - * callback. This provides an opportunity for the application to verify that its - * message has been sent successfully and take the appropriate action. This - * callback should return a bool value of true or false. A value of true - * indicates that the message sent notification has been handled and should not - * be handled by the application framework. - * - * @param type Ver.: always - * @param indexOrDestination Ver.: always - * @param apsFrame Ver.: always - * @param msgLen Ver.: always - * @param message Ver.: always - * @param status Ver.: always - */ -bool emberAfMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, EmberApsFrame * apsFrame, - uint16_t msgLen, uint8_t * message, EmberStatus status) -{ - return false; -} - -/** @brief Ncp Init - * - * This function is called when the network coprocessor is being initialized, - * either at startup or upon reset. It provides applications on opportunity to - * perform additional configuration of the NCP. The function is always called - * twice when the NCP is initialized. In the first invocation, memoryAllocation - * will be true and the application should only issue EZSP commands that affect - * memory allocation on the NCP. For example, tables on the NCP can be resized - * in the first call. In the second invocation, memoryAllocation will be false - * and the application should only issue EZSP commands that do not affect memory - * allocation. For example, tables on the NCP can be populated in the second - * call. This callback is not called on SoCs. - * - * @param memoryAllocation Ver.: always - */ -void emberAfNcpInitCallback(bool memoryAllocation) {} - -/** @brief Ncp Is Awake Isr - * - * This function is called IN ISR CONTEXT. It notes that the NCP is awake after - * sleeping. Care should be taken to do minimal processing in this ISR handler - * function. - * - */ -void emberAfNcpIsAwakeIsrCallback(void) {} - -/** @brief Network Key Update Complete - * - * This is called by the framework when a network key update operation started - * by the trust center is complete. - * - * @param status Ver.: always - */ -void emberAfNetworkKeyUpdateCompleteCallback(EmberStatus status) {} - -/** @brief Ota Bootload - * - * The platform specific routine to bootload the device from a ZigBee - * over-the-air upgrade file. - * - * @param id A pointer to the structure that contains the information about what - * OTA image to bootload. Ver.: always - * @param ncpUpgradeTagId The tag ID of the upgrade data that will be used to - * bootload the device. Ver.: always - */ -uint8_t emberAfOtaBootloadCallback(const EmberAfOtaImageId * id, uint16_t ncpUpgradeTagId) -{ - // Please implement me - emberAfCorePrintln("Not supported."); - return 1; -} - -/** @brief Ota Client Bootload - * - * This callback is fired when the OTA Client recevies a command to bootload the - * newly downloaded OTA image. This callback will perform the platform specific - * to bootload their device. - * - * @param id This is the identifier relating to the image that has been - * downloaded and is ready for bootload. Ver.: always - */ -void emberAfOtaClientBootloadCallback(const EmberAfOtaImageId * id) -{ - // Any final preperation prior to the bootload should be done here. - // It is assumed that the device will reset in most all cases. - // Please implement me. -} - -/** @brief Ota Client Custom Verify - * - * This callback is executed by the OTA client after the signature verification - * has successfully completed. It allows the device to do its own custom - * verification of the image (such as verifying that the EBL is intact). - * - * @param newVerification This indicates if a new verification should be - * started. Ver.: always - * @param id This is ID of the image to be verified. Ver.: always - */ -EmberAfImageVerifyStatus emberAfOtaClientCustomVerifyCallback(bool newVerification, const EmberAfOtaImageId * id) -{ - // Manufacturing specific checks can be made to the image in this function to - // determine if it is valid. This function is called AFTER cryptographic - // checks have passed. If the cryptographic checks failed, this function will - // never be called. - - // The function shall return one of the following based on its own - // verification process. - // 1) EMBER_AF_IMAGE_GOOD - the image has passed all checks - // 2) EMBER_AF_IMAGE_BAD - the image is not valid - // 3) EMBER_AF_IMAGE_VERIFY_IN_PROGRESS - the image is valid so far, but more - // checks are needed. This callback shall be re-executed later to - // continue verification. This allows other code in the framework to run. - return EMBER_AF_IMAGE_GOOD; -} - -/** @brief Ota Client Download Complete - * - * This callback indicates that the OTA client has completed the download of a - * file. If the file has been completely downloaded and cryptographic checks - * have been turned on, then those will be performed prior to this callback and - * that outcome included in the 'success' result. On failure, this callback is - * merely informative, and the return type is ignored. On succesful download, - * this callback allows the client to perform any additional verification of the - * downloaded image and return that result to the OTA server. - * - * @param success This indicates the success or failure of the download and - * cryptographic verification process (if applicable). Ver.: always - * @param id This is the image identifier information that corresponds to the - * download result. Ver.: always - */ -bool emberAfOtaClientDownloadCompleteCallback(EmberAfOtaDownloadResult success, const EmberAfOtaImageId * id) -{ - // At this point the image has been completely downloaded and cryptographic - // checks (if applicable) have been performed. - - if (!success) - { - emberAfOtaBootloadClusterPrintln("Download failed."); - return true; // return value is ignored - } - - // This is for any additional validation that needs to be performed - // on the image by the application. - - // The results of checks here will be returned back to the OTA server - // in the Upgrade End request. - return true; -} - -/** @brief Ota Client Incoming Message Raw - * - * This callback is for processing incoming messages for the Over-the-air - * bootload cluster client. ZCL will not process the message and instead hand - * the raw over the air data to the callback for its own processing. - * - * @param message A pointer to the structure containing the message buffer and - * other information about it. Ver.: always - */ -bool emberAfOtaClientIncomingMessageRawCallback(EmberAfClusterCommand * message) -{ - return false; -} - -/** @brief Ota Client Start - * - * This callback should be called when the profile specific registration has - * completed successfully. It will start the client's state machine that will - * find the OTA server, query it for the next image, download the image, wait - * for the bootload message, and kick off the bootload. - * - */ -void emberAfOtaClientStartCallback(void) {} - -/** @brief Ota Client Version Info - * - * This function is called by the OTA client when a new query will occur to the - * server asking what the next version of firmware is. The client can inform - * the cluster software as to what information to use in the query (and - * subsequent download). - * - * @param currentImageInfo This is the information to use in the next query by - * the client cluster code. It contains the manufacturer ID, image type ID, and - * the firmware version to be specified in the query message sent to the server. - * Ver.: always - * @param hardwareVersion This is a pointer to the hardware version to use in - * the query. If no hardware version should be used, then - * EMBER_AF_INVALID_HARDWARE_VERSION should be used. Ver.: always - */ -void emberAfOtaClientVersionInfoCallback(EmberAfOtaImageId * currentImageInfo, uint16_t * hardwareVersion) -{ - // Customer will fill in the image info with their manufacturer ID, - // image type ID, and current software version number. - // The deviceSpecificFileEui64 can be ignored. - - // It may be necessary to dynamically determine this by talking to - // another device, as is the case with a host talking to an NCP device. - - // However, this routine will be called repeatedly so it may be wise - // to cache the data! - - /* This is commented out since the #defines below are not defined. - - if (currentImageInfo != NULL) { - MEMSET(currentImageInfo, 0, sizeof(EmberAfOtaImageId)); - currentImageInfo->manufacturerId = EMBER_AF_MANUFACTURER_CODE; - currentImageInfo->imageTypeId = EMBER_AF_IMAGE_TYPE_ID; - currentImageInfo->firmwareVersion = EMBER_AF_CUSTOM_FIRMWARE_VERSION; - } - - if (hardwareVersion != NULL) { - *hardwareVersion = EMBER_AF_INVALID_HARDWARE_VERSION; - } - - assert(false); - */ -} - -/** @brief Ota Page Request Server Policy - * - * This callback is called by the OTA server page request code when it wants to - * determine if it is allowed for an OTA client to make a page request. It is - * only called if page request support has been enabled on the server. It - * should return EMBER_ZCL_STATUS_SUCCESS if it allows the page request, and - * EMBER_ZCL_STATUS_UNSUP_CLUSTER_COMMAND if it does not want to allow it. - * - */ -uint8_t emberAfOtaPageRequestServerPolicyCallback(void) -{ - return EMBER_ZCL_STATUS_SUCCESS; -} - -/** @brief Ota Server Block Size - * - * This function provides a way for the server to adjust the block size of its - * response to an Image block request by a client. - * - * @param clientNodeId The node Id of OTA client making an image block request. - * Ver.: always - */ -uint8_t emberAfOtaServerBlockSizeCallback(EmberNodeId clientNodeId) -{ - // This function provides a way for the server to potentially - // adjust the block size based on the client who is requesting. - // In other words if we are using source routing we will limit - // data returned by enough to put a source route into the message. - - // Image Block Response Message Format - // Status Code: 1-byte - // Manuf Code: 2-bytes - // Image Type: 2-bytes - // File Ver: 4-bytes - // File Offset: 4-bytes - // Data Size: 1-byte - // Data: variable - const uint8_t IMAGE_BLOCK_RESPONSE_OVERHEAD = (EMBER_AF_ZCL_OVERHEAD + 14); - - EmberApsFrame apsFrame; - uint8_t maxSize; - apsFrame.options = EMBER_APS_OPTION_NONE; - - if (emberAfIsCurrentSecurityProfileSmartEnergy()) - { - apsFrame.options |= EMBER_APS_OPTION_ENCRYPTION; - } - - maxSize = emberAfMaximumApsPayloadLength(EMBER_OUTGOING_DIRECT, clientNodeId, &apsFrame); - maxSize -= IMAGE_BLOCK_RESPONSE_OVERHEAD; - return maxSize; -} - -/** @brief Ota Server Incoming Message Raw - * - * This callback is for processing incoming messages for the Over-the-air - * bootload cluster server. ZCL will not process the message and instead hand - * the raw over the air data to the callback for its own processing. - * - * @param message A pointer to the structure containing the message buffer and - * other information about it. Ver.: always - */ -bool emberAfOtaServerIncomingMessageRawCallback(EmberAfClusterCommand * message) -{ - return false; -} - -/** @brief Ota Server Query - * - * This callback is fired when the OTA server receives a query request by the - * client. The callback lets the server application indicate to the client what - * the 'next' version of software is for the device, or if there is not one - * available. - * - * @param currentImageId This is the current software image that the client - * hase. Ver.: always - * @param hardwareVersion If this value is non-NULL, it indicates the hardware - * version of the client device. If NULL, the client did not specify a hardware - * version. Ver.: always - * @param nextUpgradeImageId This is a pointer to a data structure containing - * the 'next' software version for the client to download. Ver.: always - */ -uint8_t emberAfOtaServerQueryCallback(const EmberAfOtaImageId * currentImageId, uint16_t * hardwareVersion, - EmberAfOtaImageId * nextUpgradeImageId) -{ - // If a new software image is available, this function should return EMBER_ZCL_STATUS_SUCCESS - // and populate the 'nextUpgradeImageId' structure with the appropriate values. - // If no new software image is available (i.e. the client should not download a firmware image) - // then the server should return EMBER_ZCL_STATUS_NO_IMAGE_AVAILABLE. - return EMBER_ZCL_STATUS_NO_IMAGE_AVAILABLE; -} - -/** @brief Ota Server Send Image Notify - * - * This callback is an indication to the OTA server that it should send out - * notification about an OTA file that is available for download. - * - * @param dest The destination of the image notify message. May be a broadcast - * address. Ver.: always - * @param endpoint The destination endpoint of the image notify message. May be - * a broadcast endpoint. Ver.: always - * @param payloadType The type of data the image notify message will contain. 0 - * = no data. 1 = Manufacturer ID. 2 = Manufacturer ID and the image type ID. - * 3 = Manufacturer ID, image type ID, and firmware version. Ver.: always - * @param queryJitter The percentage of nodes that should respond to this - * message, from 1-100. On receipt of this message, each recipient will - * randomly choose a percentage and only query the server if their percentage is - * below this value. Ver.: always - * @param id The image information that will be put in the message. The data - * within this struct that will be appended to the message is determined by the - * previous 'payloadType' argument. Ver.: always - */ -bool emberAfOtaServerSendImageNotifyCallback(EmberNodeId dest, uint8_t endpoint, uint8_t payloadType, uint8_t queryJitter, - const EmberAfOtaImageId * id) -{ - return false; -} - -/** @brief Ota Server Upgrade End Request - * - * This function is called when the OTA server receives a request an upgrade end - * request. If the request indicated a successful download by the client, the - * server must tell the client when and if to upgrade to the downloaded image. - * - * @param source The node ID of the device that sent the upgrade end request. - * Ver.: always - * @param status This is the ZCL status sent by the client indicating the result - * of its attempt to download the new upgrade image. If the status is not - * EMBER_ZCL_STATUS_SUCCESS then this callback is merely informative and no - * response mesasge will be generated by the server. Ver.: always - * @param returnValue If the server returns true indicating that the client - * should apply the upgrade, this time value indicates when in the future the - * client should apply the upgrade. Ver.: always - * @param imageId This variable indicates the software version that the client - * successfully downloaded and is asking to upgrade to. Ver.: always - */ -bool emberAfOtaServerUpgradeEndRequestCallback(EmberNodeId source, uint8_t status, uint32_t * returnValue, - const EmberAfOtaImageId * imageId) -{ - // If the status value is not EMBER_ZCL_STATUS_SUCCESS, then this callback is - // merely informative and no response message will be generated by the server. - // If the server wants the client to NOT apply the upgrade, then it should - // return false. - // If the server wants the client to apply the upgrade, it should return true - // and set the 'returnValue' parameter to when it wants the client to - // apply the upgrade. There are three possible values: - // 0 = Apply the upgrade now - // 0xFFFFFFFF = Don't apply yet, ask again later. - // (anything-else) = Apply the upgrade X minutes from now. - *returnValue = 0; - return true; -} - -/** @brief Ota Storage Check Temp Data - * - * This callback will validate temporary data in the storage device to determine - * whether it is a complete file, a partially downloaded file, or there is no - * file present. When a complete or partial file is found it will return - * EMBER_AF_OTA_STORAGE_SUCCESS or EMBER_AF_OTA_STORAGE_PARTIAL_FILE_FOUND, - * respectively. In that case, the currentOffset, totalImageSize, and - * newFileInfo will be populated with data. When EMBER_AF_OTA_STORAGE_ERROR is - * returned, no temporary data is present. - * - * @param currentOffset A pointer to a value that will be written with the - * offset within the total file size that has been successfully stored in the - * storage device. This will indicate how much data has been currently - * dowloaded. Ver.: always - * @param totalImageSize A pointer to a value that will be written with the - * total image size of the OTA file when a download has completed. This does - * not indicate how much data has actually been downloaded currently. Ver.: - * always - * @param newFileInfo This is the image id of the temporary file data stored in - * the storage device. Ver.: always - */ -EmberAfOtaStorageStatus emberAfOtaStorageCheckTempDataCallback(uint32_t * currentOffset, uint32_t * totalImageSize, - EmberAfOtaImageId * newFileInfo) -{ - // If the image data cannot be successfully verified, an error should be returned. - return EMBER_AF_OTA_STORAGE_ERROR; -} - -/** @brief Ota Storage Clear Temp Data - * - * This function clears any existing temp data that was downloaed. It is used - * immediately prior to downloading a raw image over the air. - * - */ -EmberAfOtaStorageStatus emberAfOtaStorageClearTempDataCallback(void) -{ - // If the image data cannot be stored, an error should be returned. - return EMBER_AF_OTA_STORAGE_ERROR; -} - -/** @brief Ota Storage Close - * - * This callback shuts down the ZigBee Over-the-air storage module. - * - */ -void emberAfOtaStorageCloseCallback(void) -{ - // Please implement me. - assert(false); -} - -/** @brief Ota Storage Driver Download Finish - * - * This callback defines the low-level means by which a device records the final - * offset value of the download image. - * - * @param offset The value of the final offset of the image download. Ver.: - * always - */ -void emberAfOtaStorageDriverDownloadFinishCallback(uint32_t offset) -{ - // The storage driver and the rest of the OTA bootload code will not function correctly unless it is implemnted. - // Please implement me. - assert(false); -} - -/** @brief Ota Storage Driver Init - * - * The initialization code for the OTA storage driver. - * - */ -bool emberAfOtaStorageDriverInitCallback(void) -{ - // The storage driver and the rest of the OTA bootload code will not function correctly unless it is implemnted. - // Please implement me. - assert(false); - return false; -} - -/** @brief Ota Storage Driver Invalidate Image - * - * This callback invalidates the image stored on disk so that it will not be - * bootloaded, and it will not be a valid image that is in the middle of - * downloading. - * - */ -EmberAfOtaStorageStatus emberAfOtaStorageDriverInvalidateImageCallback(void) -{ - // The storage driver and the rest of the OTA bootload code will not function correctly unless it is implemnted. - // Please implement me. - assert(false); - return EMBER_AF_OTA_STORAGE_ERROR; -} - -/** @brief Ota Storage Driver Prepare To Resume Download - * - * This callback allows the underlying storage driver to prepare to resume the - * OTA file download. For example, the driver may exceute a page erase to - * insure the next page is ready to be written to. - * - */ -EmberAfOtaStorageStatus emberAfOtaStorageDriverPrepareToResumeDownloadCallback(void) -{ - assert(false); - return EMBER_AF_OTA_STORAGE_ERROR; -} - -/** @brief Ota Storage Driver Read - * - * This callback defines the low-level means by which a device reads from the - * OTA storage device. - * - * @param offset The address offset from the start of the storage device where - * data is to be read. Ver.: always - * @param length The length of the data to be read from the storage device. - * Ver.: always - * @param returnData A pointer where the data read from the device should be - * written to. Ver.: always - */ -bool emberAfOtaStorageDriverReadCallback(uint32_t offset, uint32_t length, uint8_t * returnData) -{ - // The storage driver and the rest of the OTA bootload code will not function correctly unless it is implemnted. - // Please implement me. - assert(false); - return false; -} - -/** @brief Ota Storage Driver Retrieve Last Stored Offset - * - * This callback defines the low-level means by which a device retrieves the - * last persistently recorded download offset. This may be different than last - * actual download offset. - * - */ -uint32_t emberAfOtaStorageDriverRetrieveLastStoredOffsetCallback(void) -{ - // The storage driver and the rest of the OTA bootload code will not function correctly unless it is implemnted. - // Please implement me. - assert(false); - return 0; -} - -/** @brief Ota Storage Driver Write - * - * This callback defines the low-level means by which a device reads from the - * OTA storage device. - * - * @param dataToWrite A pointer to the data that will be written to the storage - * device. Ver.: always - * @param offset The address offset from the start of the storage device where - * data will be written. Ver.: always - * @param length The length of the data to be written to the storage device. - * Ver.: always - */ -bool emberAfOtaStorageDriverWriteCallback(const uint8_t * dataToWrite, uint32_t offset, uint32_t length) -{ - // The storage driver and the rest of the OTA bootload code will not function correctly unless it is implemnted. - // Please implement me. - assert(false); - return false; -} - -/** @brief Ota Storage Finish Download - * - * This function indicates to the storage module that the download has finished. - * - * @param offset The final offset of the downloaded file (i.e. the total size) - * Ver.: always - */ -EmberAfOtaStorageStatus emberAfOtaStorageFinishDownloadCallback(uint32_t offset) -{ - return EMBER_AF_OTA_STORAGE_SUCCESS; -} - -/** @brief Ota Storage Get Count - * - * This callback returns the total number of ZigBee Over-the-air upgrade images - * stored in the storage module. - * - */ -uint8_t emberAfOtaStorageGetCountCallback(void) -{ - return 0; -} - -/** @brief Ota Storage Get Full Header - * - * This callback populates the EmberAfOtaHeader structure pointed to by the - * returnData with data about the OTA file stored in the storage module. - * - * @param id This is a pointer to the image id for the OTA file to retrieve - * information about. Ver.: always - * @param returnData This is a pointer to the location of the structure that - * will be populated with data. Ver.: always - */ -EmberAfOtaStorageStatus emberAfOtaStorageGetFullHeaderCallback(const EmberAfOtaImageId * id, EmberAfOtaHeader * returnData) -{ - // If the requested image cannot be found, then an error shouldb e returned. - return EMBER_AF_OTA_STORAGE_ERROR; -} - -/** @brief Ota Storage Get Total Image Size - * - * This function returns the total size of the ZigBee Over-the-air file with the - * passed parameters. If no file is found with those parameters, 0 is returned. - * - * @param id A pointer to the image identifier for the OTA file to retrieve - * information for. Ver.: always - */ -uint32_t emberAfOtaStorageGetTotalImageSizeCallback(const EmberAfOtaImageId * id) -{ - // On failure this should return an image size of zero. - return 0; -} - -/** @brief Ota Storage Init - * - * This callback initializes the ZigBee Over-the-air storage module. - * - */ -EmberAfOtaStorageStatus emberAfOtaStorageInitCallback(void) -{ - return EMBER_AF_OTA_STORAGE_SUCCESS; -} - -/** @brief Ota Storage Iterator First - * - * This callback lets you walk through the list of all OTA files by jumping to - * the first file in the list maintained by the storage module. If there is no - * file then emberAfOtaInvalidImageId is returned. - * - */ -EmberAfOtaImageId emberAfOtaStorageIteratorFirstCallback(void) -{ - // It is expected that the storage module maintain its own internal iterator that the 'first' and 'next' functions will - // manipulate. - - // If there are no images at all, this function should return the invalid image id. - return emberAfInvalidImageId; -} - -/** @brief Ota Storage Iterator Next - * - * This callback lets you walk through the list of all OTA files by jumping to - * the next file in the list maintained by the storage module. If there is no - * next file then emberAfOtaInvalidImageId is returned. - * - */ -EmberAfOtaImageId emberAfOtaStorageIteratorNextCallback(void) -{ - // It is expected that the storage module maintain its own internal iterator that the 'first' and 'next' functions will - // manipulate. - - // If there are no more images, this function should return the invalid image id. - return emberAfInvalidImageId; -} - -/** @brief Ota Storage Read Image Data - * - * This callback reads data from the specified OTA file and returns that data to - * the caller. - * - * @param id This is a pointer to the image id for the OTA file to retrieve data - * from. Ver.: always - * @param offset This is the offset relative to the start of the image where the - * data should be read from. Ver.: always - * @param length This is the length of data that will be read. Ver.: always - * @param returnData This is a pointer to where the data read out of the file - * will be written to Ver.: always - * @param returnedLength This is a pointer to a variable where the actual length - * of data read will be written to. A short read may occur if the end of file - * was reached. Ver.: always - */ -EmberAfOtaStorageStatus emberAfOtaStorageReadImageDataCallback(const EmberAfOtaImageId * id, uint32_t offset, uint32_t length, - uint8_t * returnData, uint32_t * returnedLength) -{ - // If the requested image cannot be found, then an error should be returned. - return EMBER_AF_OTA_STORAGE_ERROR; -} - -/** @brief Ota Storage Search - * - * This callback searches through the list of all images for one that matches - * the passed parameters. On success an image identifier is returned with a - * matching image. On failure emberAfInvalidImageId is returned. - * - * @param manufacturerId The ZigBee assigned identifier of the manufacturer - * contained in the OTA image being searched for. Ver.: always - * @param imageTypeId The image type identifier contained in the OTA image being - * searched for. Ver.: always - * @param hardwareVersion This is a pointer to the hardware version that will be - * used in the search. If the pointer is NULL, hardware version will not be - * considered when searching for matching images. If it points to a value, the - * search will only consider images where that value falls between the minimum - * and maxmimum hardware version specified in the OTA file. If no hardware - * version is present in an OTA file but the other parameters match, the file - * will be considered a match Ver.: always - */ -EmberAfOtaImageId emberAfOtaStorageSearchCallback(uint16_t manufacturerId, uint16_t imageTypeId, const uint16_t * hardwareVersion) -{ - // If no image is found that matches the search criteria, this function should return the invalid image id. - return emberAfInvalidImageId; -} - -/** @brief Ota Storage Write Temp Data - * - * This function writes to the temporary data in the storage device at the - * specified offset. It is used when downloading a raw image over the air. - * - * @param offset The location within the download image file where to write the - * data. Ver.: always - * @param length The length of data to write. Ver.: always - * @param data A pointer to the temporary data that will be written to the - * storage device. Ver.: always - */ -EmberAfOtaStorageStatus emberAfOtaStorageWriteTempDataCallback(uint32_t offset, uint32_t length, const uint8_t * data) -{ - // If the image data cannot be stored, an error should be returned. - return EMBER_AF_OTA_STORAGE_ERROR; -} - -/** @brief Outgoing Packet Filter - * - * ** REQUIRES INCLUDING THE PACKET-HANDOFF PLUGIN ** - - This is called by - * the Packet Handoff plugin when the stack prepares to send a packet from one - * of the protocol layers specified in ::EmberZigbeePacketType. - - The - * packetType argument is one of the values of the ::EmberZigbeePacketType enum. - * If the stack receives an 802.15.4 MAC beacon, it will call this function with - * the packetType argument set to ::EMBER_ZIGBEE_PACKET_TYPE_BEACON. - - - * The implementation of this callback may alter the data contained in - * packetData, modify options and flags in the auxillary data, or consume the - * packet itself, either sending the message, or discarding it as it sees fit. - * - * @param packetType the type of packet and associated protocol layer Ver.: - * always - * @param packetData flat buffer containing the packet data associated with the - * packet type Ver.: always - * @param size_p a pointer containing the size value of the packet Ver.: always - * @param data auxillary data included with the packet Ver.: always - */ -EmberPacketAction emberAfOutgoingPacketFilterCallback(EmberZigbeePacketType packetType, uint8_t * packetData, uint8_t * size_p, - void * data) -{ - return EMBER_ACCEPT_PACKET; -} - -/** @brief Partner Link Key Exchange Request - * - * This function is called by the framework on SOC platforms when a remote node - * requests a partner link key exchange. The application should return - * EMBER_SUCCESS to accept the request or any other status to reject it. On - * network coprocessor platforms, this function will not be called because the - * NCP handles partner link key exchange requests based on the binding policy. - * - * @param partner The EUI of the remote node. Ver.: always - */ -EmberZdoStatus emberAfPartnerLinkKeyExchangeRequestCallback(EmberEUI64 partner) -{ - return EMBER_ZDP_NOT_SUPPORTED; -} - -/** @brief Partner Link Key Exchange Response - * - * This function is called by the framework when a remote node requests a - * partner link key exchange. The application should return true to accept the - * request or false to reject it. On network coprocessor platforms, this - * function will not be called because the NCP handles partner link key exchange - * requests based on the binding policy. - * - * @param sender The EUI of the remote node. Ver.: always - * @param status The ZDO response status. Ver.: always - */ -void emberAfPartnerLinkKeyExchangeResponseCallback(EmberNodeId sender, EmberZdoStatus status) {} - -/** @brief Performing Key Establishment - * - * This function is called by the framework to determine if the device is - * performing key establishment. The application should return true if key - * establishment is in progress. - * - */ -bool emberAfPerformingKeyEstablishmentCallback(void) -{ - return false; -} - -/** @brief Get Distributed Key - * - * This callback is fired when the Network Steering plugin needs to set the distributed - * key. The application set the distributed key from Zigbee Alliance thru this callback - * or the network steering will use the default test key. - * - * @param pointer to the distributed key struct - * @return true if the key is loaded successfully, otherwise false. - * level. Ver.: always - */ -bool emberAfPluginNetworkSteeringGetDistributedKeyCallback(EmberKeyData * key) -{ - return false; -} - -/** @brief Get Power For Radio Channel - * - * This callback is fired when the Network Steering plugin needs to set the - * power level. The application has the ability to change the max power level - * used for this particular channel. - * - * @param channel The channel that the plugin is inquiring about the power - * level. Ver.: always - */ -int8_t emberAfPluginNetworkSteeringGetPowerForRadioChannelCallback(uint8_t channel) -{ - return emberAfMaxPowerLevel(); -} - -// Ifdef out the attribute change callback, since we implement it in -// DataModelHandler -#if 0 -/** @brief Post Attribute Change - * - * This function is called by the application framework after it changes an - * attribute value. The value passed into this callback is the value to which - * the attribute was set by the framework. - * - * @param endpoint Ver.: always - * @param clusterId Ver.: always - * @param attributeId Ver.: always - * @param mask Ver.: always - * @param manufacturerCode Ver.: always - * @param type Ver.: always - * @param size Ver.: always - * @param value Ver.: always - */ -void emberAfPostAttributeChangeCallback(uint8_t endpoint, EmberAfClusterId clusterId, EmberAfAttributeId attributeId, uint8_t mask, - uint16_t manufacturerCode, uint8_t type, uint8_t size, uint8_t * value) -{} -#endif - -/** @brief Post Em4 Reset - * - * A callback called by application framework, and implemented by em4 plugin - * - */ -void emberAfPostEm4ResetCallback(void) -{ - return; -} - -/** @brief Pre Attribute Change - * - * This function is called by the application framework before it changes an - * attribute value. The value passed into this callback is the value to which - * the attribute is to be set by the framework. The application should return - * ::EMBER_ZCL_STATUS_SUCCESS to permit the change or any other ::EmberAfStatus - * to reject it. - * - * @param endpoint Ver.: always - * @param clusterId Ver.: always - * @param attributeId Ver.: always - * @param mask Ver.: always - * @param manufacturerCode Ver.: always - * @param type Ver.: always - * @param size Ver.: always - * @param value Ver.: always - */ -EmberAfStatus emberAfPreAttributeChangeCallback(uint8_t endpoint, EmberAfClusterId clusterId, EmberAfAttributeId attributeId, - uint8_t mask, uint16_t manufacturerCode, uint8_t type, uint8_t size, - uint8_t * value) -{ - return EMBER_ZCL_STATUS_SUCCESS; -} - -/** @brief Pre Cli Send - * - * This function is called by the framework when it is about to pass a message - * constructed over CLI to the stack primitives for sending. If the function - * returns true it is assumed that the callback has consumed and processed the - * message. The framework will not do any further processing on the message. - - * If the function returns false then it is assumed that the callback has - * not processed the message and the framework will continue to process - * accordingly. - * - * @param apsFrame The structure containing the APS frame Ver.: always - * @param source Source Node Id Ver.: always - * @param destination Destintion Node Id Ver.: always - * @param message Pointer to the message payload Ver.: always - * @param messageLength Length of the message payload Ver.: always - */ -bool emberAfPreCliSendCallback(EmberApsFrame * apsFrame, EmberNodeId source, EmberNodeId destination, uint8_t * message, - uint16_t messageLength) -{ - return false; -} - -/** @brief Pre Command Received - * - * This callback is the second in the Application Framework's message processing - * chain. At this point in the processing of incoming over-the-air messages, the - * application has determined that the incoming message is a ZCL command. It - * parses enough of the message to populate an EmberAfClusterCommand struct. The - * Application Framework defines this struct value in a local scope to the - * command processing but also makes it available through a global pointer - * called emberAfCurrentCommand, in app/framework/util/util.c. When command - * processing is complete, this pointer is cleared. - * - * @param cmd Ver.: always - */ -bool emberAfPreCommandReceivedCallback(EmberAfClusterCommand * cmd) -{ - return false; -} - -/** @brief Pre Message Received - * - * This callback is the first in the Application Framework's message processing - * chain. The Application Framework calls it when a message has been received - * over the air but has not yet been parsed by the ZCL command-handling code. If - * you wish to parse some messages that are completely outside the ZCL - * specification or are not handled by the Application Framework's command - * handling code, you should intercept them for parsing in this callback. - - * This callback returns a Boolean value indicating whether or not the message - * has been handled. If the callback returns a value of true, then the - * Application Framework assumes that the message has been handled and it does - * nothing else with it. If the callback returns a value of false, then the - * application framework continues to process the message as it would with any - * incoming message. - Note: This callback receives a pointer to an - * incoming message struct. This struct allows the application framework to - * provide a unified interface between both Host devices, which receive their - * message through the ezspIncomingMessageHandler, and SoC devices, which - * receive their message through emberIncomingMessageHandler. - * - * @param incomingMessage Ver.: always - */ -bool emberAfPreMessageReceivedCallback(EmberAfIncomingMessage * incomingMessage) -{ - return false; -} - -/** @brief Pre Message Send - * - * This function is called by the framework when it is about to pass a message - * to the stack primitives for sending. This message may or may not be ZCL, - * ZDO, or some other protocol. This is called prior to - any ZigBee - * fragmentation that may be done. If the function returns true it is assumed - * the callback has consumed and processed the message. The callback must also - * set the EmberStatus status code to be passed back to the caller. The - * framework will do no further processing on the message. - If the - * function returns false then it is assumed that the callback has not processed - * the mesasge and the framework will continue to process accordingly. - * - * @param messageStruct The structure containing the parameters of the APS - * message to be sent. Ver.: always - * @param status A pointer to the status code value that will be returned to the - * caller. Ver.: always - */ -bool emberAfPreMessageSendCallback(EmberAfMessageStruct * messageStruct, EmberStatus * status) -{ - return false; -} - -/** @brief Pre Ncp Reset - * - * This function will be called prior to the reset of the NCP by the host. - * - */ -void emberAfPreNcpResetCallback(void) {} - -/** @brief Pre ZDO Message Received - * - * This function passes the application an incoming ZDO message and gives the - * appictation the opportunity to handle it. By default, this callback returns - * false indicating that the incoming ZDO message has not been handled and - * should be handled by the Application Framework. - * - * @param emberNodeId Ver.: always - * @param apsFrame Ver.: always - * @param message Ver.: always - * @param length Ver.: always - */ -bool emberAfPreZDOMessageReceivedCallback(EmberNodeId emberNodeId, EmberApsFrame * apsFrame, uint8_t * message, uint16_t length) -{ - return false; -} - -/** @brief Read Attributes Response - * - * This function is called by the application framework when a Read Attributes - * Response command is received from an external device. The application should - * return true if the message was processed or false if it was not. - * - * @param clusterId The cluster identifier of this response. Ver.: always - * @param buffer Buffer containing the list of read attribute status records. - * Ver.: always - * @param bufLen The length in bytes of the list. Ver.: always - */ -bool emberAfReadAttributesResponseCallback(EmberAfClusterId clusterId, uint8_t * buffer, uint16_t bufLen) -{ - return false; -} - -/** @brief Read Reporting Configuration Command - * - * This function is called by the application framework when a Read Reporting - * Configuration command is received from an external device. The application - * should return true if the message was processed or false if it was not. - * - * @param cmd Ver.: always - */ -bool emberAfReadReportingConfigurationCommandCallback(const EmberAfClusterCommand * cmd) -{ - return false; -} - -/** @brief Activate Door Lock Callback - * This function is provided by the door lock server plugin. - * - * @param activate True if the lock should move to the locked position, - * false if it should move to the unlocked position Ver.: always - * - * @returns true if the callback was able to activate/deactivate the Lock. - */ -bool emberAfPluginDoorLockServerActivateDoorLockCallback(bool activate) -{ - return false; -}; - -/** @brief Read Reporting Configuration Response - * - * This function is called by the application framework when a Read Reporting - * Configuration Response command is received from an external device. The - * application should return true if the message was processed or false if it - * was not. - * - * @param clusterId The cluster identifier of this response. Ver.: always - * @param buffer Buffer containing the list of attribute reporting configuration - * records. Ver.: always - * @param bufLen The length in bytes of the list. Ver.: always - */ -bool emberAfReadReportingConfigurationResponseCallback(EmberAfClusterId clusterId, uint8_t * buffer, uint16_t bufLen) -{ - return false; -} - -/** @brief Scenes Cluster Recall Saved Scene - * - * This function is called by the framework when the application should recall a - * saved scene. - * - * @param endpoint The endpoint. Ver.: always - * @param groupId The group identifier. Ver.: always - * @param sceneId The scene identifier. Ver.: always - */ -EmberAfStatus emberAfScenesClusterRecallSavedSceneCallback(uint8_t endpoint, uint16_t groupId, uint8_t sceneId) -{ - return EMBER_ZCL_STATUS_FAILURE; -} - -/** @brief Registration Abort - * - * This callback is called when the device should abort the registration - * process. - * - */ -void emberAfRegistrationAbortCallback(void) {} - -/** @brief Registration - * - * This callback is called when the device joins a network and the process of - * registration is complete. This callback provides a success value of true if - * the registration process was successful and a value of false if registration - * failed. - * - * @param success true if registration succeeded, false otherwise. Ver.: always - */ -void emberAfRegistrationCallback(bool success) {} - -/** @brief Registration Start - * - * This callback is called when the device joins a network and the registration - * process should begin. The application should return EMBER_SUCCESS if the - * registration process started successfully. When registration is complete, - * the application should call emberAfRegistrationCallback with an indication of - * success or failure. - * - */ -EmberStatus emberAfRegistrationStartCallback(void) -{ - return EMBER_LIBRARY_NOT_PRESENT; -} - -/** @brief Remote Delete Binding Permission - * - * This function is called by the framework to request permission to service the - * remote delete binding request. Return EMBER_SUCCESS to allow request, - * anything else to disallow request. - * - * @param index index to an Ember binding table entry Ver.: always - */ -EmberStatus emberAfRemoteDeleteBindingPermissionCallback(uint8_t index) -{ - return EMBER_SUCCESS; // default -} - -/** @brief Remote Set Binding Permission - * - * This function is called by the framework to request permission to service the - * remote set binding request. Return EMBER_SUCCESS to allow request, anything - * else to disallow request. - * - * @param entry Ember Binding Tablet Entry Ver.: always - */ -EmberStatus emberAfRemoteSetBindingPermissionCallback(const EmberBindingTableEntry * entry) -{ - return EMBER_SUCCESS; // default -} - -/** @brief Remove From Current App Tasks - * - * This function is only useful to sleepy end devices. This function will - * remove the passed item from the set of tasks the application has outstanding - * (e.g. message sent requiring APS acknwoledgement). This will affect how the - * application behaves with regard to sleeping and polling. Removing the item - * from the list of outstanding tasks may allow the device to sleep longer and - * poll less frequently. If there are other outstanding tasks the system may - * still have to stay away and poll more often. - * - * @param tasks Ver.: always - */ -void emberAfRemoveFromCurrentAppTasksCallback(EmberAfApplicationTask tasks) {} - -/** @brief Scenes Cluster Remove Scenes In Group - * - * This function removes the scenes from a specified group. - * - * @param endpoint Endpoint Ver.: always - * @param groupId Group ID Ver.: always - */ -void emberAfScenesClusterRemoveScenesInGroupCallback(uint8_t endpoint, uint16_t groupId) {} - -/** @brief Report Attributes - * - * This function is called by the application framework when a Report Attributes - * command is received from an external device. The application should return - * true if the message was processed or false if it was not. - * - * @param clusterId The cluster identifier of this command. Ver.: always - * @param buffer Buffer containing the list of attribute report records. Ver.: - * always - * @param bufLen The length in bytes of the list. Ver.: always - */ -bool emberAfReportAttributesCallback(EmberAfClusterId clusterId, uint8_t * buffer, uint16_t bufLen) -{ - return false; -} - -/** @brief Reporting Attribute Change - * - * This function is called by the framework when an attribute managed by the - * framework changes. The application should call this function when an - * externally-managed attribute changes. The application should use the change - * notification to inform its reporting decisions. - * - * @param endpoint Ver.: always - * @param clusterId Ver.: always - * @param attributeId Ver.: always - * @param mask Ver.: always - * @param manufacturerCode Ver.: always - * @param type Ver.: always - * @param data Ver.: always - */ -void emberAfReportingAttributeChangeCallback(uint8_t endpoint, EmberAfClusterId clusterId, EmberAfAttributeId attributeId, - uint8_t mask, uint16_t manufacturerCode, EmberAfAttributeType type, uint8_t * data) -{} - -/** @brief Scan Error - * - * This is called by the framework on behalf of the form-and-join library to - * notify the application if an error occurs while scanning. See form-and-join - * documentation for more information. - * - * @param status The status of the scan. Ver.: always - */ -void emberAfScanErrorCallback(EmberStatus status) {} - -/** @brief Security Init - * - * This callback is called by the framework to give the application a chance to - * modify the security settings of the node during network initialization. - * Depending on the context when this callback is called, the pointer to the - * initial security state may be NULL, which means the initial security state - * can no longer be modified as the node is already operating on the network. - * - * @param state Ver.: always - * @param extended Ver.: always - * @param trustCenter Ver.: always - */ -void emberAfSecurityInitCallback(EmberInitialSecurityState * state, EmberExtendedSecurityBitmask * extended, bool trustCenter) {} - -/** @brief Key Establishment Cluster Server Command Received - * - * This function is called by the application framework when a client-to-server - * key establishment command is received but has yet to be handled by the - * framework code. This function should return a bool value indicating whether - * the command has been handled by the application code and should not be - * further processed by the framework. - * - * @param cmd Ver.: always - */ -bool emberAfKeyEstablishmentClusterServerCommandReceivedCallback(EmberAfClusterCommand * cmd) -{ - return false; -} - -/** @brief Set Default Poll Control - * - * This function will set the default poll control for the current network to - * control whether or not it can long poll. - * - * @param control Ver.: always - */ -void emberAfSetDefaultPollControlCallback(EmberAfEventPollControl control) {} - -/** @brief Set Default Sleep Control - * - * This function will set the default behavior of a sleeping device to control - * whether or not it must stay awake. A device that stays awake does not sleep - * at all. Otherwise, the device can sleep between events when appropriate. - * - * @param control Ver.: always - */ -void emberAfSetDefaultSleepControlCallback(EmberAfEventSleepControl control) {} - -/** @brief Set Form And Join Extended Pan Id - * - * This callback is called by the framework to set the extended PAN ID used by - * the current network for forming and joining. The extended PAN ID used for - * forming and joining is not necessarily the same extended PAN ID actually in - * use on the network. - * - * @param extendedPanId Ver.: always - */ -void emberAfSetFormAndJoinExtendedPanIdCallback(const uint8_t * extendedPanId) {} - -/** @brief Set Long Poll Interval Ms - * - * This function is only useful to end devices. This function will set the long - * poll interval (in milliseconds) for the current network. This interval is - * the maximum amount of time a child will wait between polls of its parent when - * it is not expecting data. - * - * @param longPollIntervalMs Ver.: always - */ -void emberAfSetLongPollIntervalMsCallback(uint32_t longPollIntervalMs) {} - -/** @brief Set Long Poll Interval Qs - * - * This function is only useful to end devices. This function will set the long - * poll interval (in quarter seconds) for the current network. This interval is - * the maximum amount of time a child will wait between polls of its parent when - * it is not expecting data. - * - * @param longPollIntervalQs Ver.: always - */ -void emberAfSetLongPollIntervalQsCallback(uint32_t longPollIntervalQs) {} - -/** @brief Set Short Poll Interval Ms - * - * This function is only useful to sleepy end devices. This function will set - * the short poll interval (in milliseconds) for the current network. This - * interval is the maximum amount of time a child will wait between polls of its - * parent when it is expecting data. - * - * @param shortPollIntervalMs Ver.: always - */ -void emberAfSetShortPollIntervalMsCallback(uint16_t shortPollIntervalMs) {} - -/** @brief Set Short Poll Interval Qs - * - * This function is only useful to sleepy end devices. This function will set - * the short poll interval (in quarter seconds) for the current network. This - * interval is the maximum amount of time a child will wait between polls of its - * parent when it is expecting data. - * - * @param shortPollIntervalQs Ver.: always - */ -void emberAfSetShortPollIntervalQsCallback(uint16_t shortPollIntervalQs) {} - -/** @brief Set Source Route Overhead - * - * This function is called by the framework when it has information about the - * source route overhead to a particular destination. The application may use - * this information to cache the source route overhead. - * - * @param destination The node id of the destination Ver.: always - * @param overhead The overhead in bytes Ver.: always - */ -void emberAfSetSourceRouteOverheadCallback(EmberNodeId destination, uint8_t overhead) {} - -/** @brief Set Time - * - * This callback should be implemented, if the device has access to real time - * clock, and has an ability to update that clock. The application framework - * expects to be passed the utcTime which is the number of seconds since the - * year 2000. Default implementation does nothing. Note: This function used to - * take time in year, month, day, hour, min, sec. We have changed this to - * utcTime in order to conserve code space. - * - * @param utcTime Ver.: always - */ -void emberAfSetTimeCallback(uint32_t utcTime) {} - -// Ifdef out emberAfOnOffClusterSetValueCallback, since it's implemented by -// on-off.c -#if 0 -/** @brief On/off Cluster Set Value - * - * This function is called when the on/off value needs to be set, either through - * normal channels or as a result of a level change. - * - * @param endpoint Ver.: always - * @param command Ver.: always - * @param initiatedByLevelChange Ver.: always - */ -EmberAfStatus emberAfOnOffClusterSetValueCallback(uint8_t endpoint, uint8_t command, bool initiatedByLevelChange) -{ - return EMBER_ZCL_STATUS_UNSUP_CLUSTER_COMMAND; -} -#endif - -/** @brief Set Wake Timeout Bitmask - * - * This function is only useful to sleepy end devices. This function will set - * the wake timeout bitmask for the current network. The bitmask determines - * which tasks will timeout automatically and which tasks require manual removal - * from the task list. - * - * @param tasks Ver.: always - */ -void emberAfSetWakeTimeoutBitmaskCallback(EmberAfApplicationTask tasks) {} - -/** @brief Set Wake Timeout Ms - * - * This function is only useful to sleepy end devices. This function will set - * the wake timeout (in milliseconds) for the current network. This timeout is - * the maximum amount of time a child will wait for a task in the wake bitmask - * to finish. While waiting, the device will short poll. - * - * @param wakeTimeoutMs Ver.: always - */ -void emberAfSetWakeTimeoutMsCallback(uint16_t wakeTimeoutMs) {} - -/** @brief Set Wake Timeout Qs - * - * This function is only useful to sleepy end devices. This function will set - * the wake timeout (in quarter seconds) for the current network. This timeout - * is the maximum amount of time a child will wait for a task in the wake - * bitmask to finish. While waiting, the device will short poll. - * - * @param wakeTimeoutQs Ver.: always - */ -void emberAfSetWakeTimeoutQsCallback(uint16_t wakeTimeoutQs) {} - -/** @brief Start Move - * - * This function is called to initiate the process for a device to move (rejoin) - * to a new parent. - * - */ -bool emberAfStartMoveCallback(void) -{ - return false; -} - -/** @brief Start Search For Joinable Network - * - * This function is called by the framework to search for joinable networks and - * join a network. The application should return EMBER_SUCCESS if the operation - * was initiated successfully. - * - */ -EmberStatus emberAfStartSearchForJoinableNetworkCallback(void) -{ - return EMBER_LIBRARY_NOT_PRESENT; -} - -/** @brief Stop Move - * - * This function is called to cancel a previously scheduled move (rejoin) to a - * new parent. - * - */ -void emberAfStopMoveCallback(void) {} - -/** @brief Scenes Cluster Store Current Scene - * - * This function is called by the framework when the application should store - * the current scene. If an entry already exists in the scene table with the - * same scene and group ids, the application should update the entry with the - * current scene. Otherwise, a new entry should be adde to the scene table, if - * possible. - * - * @param endpoint The endpoint. Ver.: always - * @param groupId The group identifier. Ver.: always - * @param sceneId The scene identifier. Ver.: always - */ -EmberAfStatus emberAfScenesClusterStoreCurrentSceneCallback(uint8_t endpoint, uint16_t groupId, uint8_t sceneId) -{ - return EMBER_ZCL_STATUS_FAILURE; -} - -/** @brief Trust Center Join - * - * This callback is called from within the application framework's - * implementation of emberTrustCenterJoinHandler or ezspTrustCenterJoinHandler. - * This callback provides the same arguments passed to the - * TrustCenterJoinHandler. For more information about the TrustCenterJoinHandler - * please see documentation included in stack/include/trust-center.h. - * - * @param newNodeId Ver.: always - * @param newNodeEui64 Ver.: always - * @param parentOfNewNode Ver.: always - * @param status Ver.: always - * @param decision Ver.: always - */ -void emberAfTrustCenterJoinCallback(EmberNodeId newNodeId, EmberEUI64 newNodeEui64, EmberNodeId parentOfNewNode, - EmberDeviceUpdate status, EmberJoinDecision decision) -{} - -/** @brief Trust Center Keepalive Abort - * - * This callback is called when the device should abort the trust center - * keepalive process. - * - */ -void emberAfTrustCenterKeepaliveAbortCallback(void) {} - -/** @brief Trust Center Keepalive Update - * - * This callback is called when the device finishes registration (successfully - * or otherwise) and the trust center keepalive process must be updated. If the - * keepalive process has not been started, then it is started. Otherwise if the - * keepalive is in the process of searching for the TC, it will process the - * result of that Trust Center search operation. - * - * @param registrationComplete Ver.: always - */ -void emberAfTrustCenterKeepaliveUpdateCallback(bool registrationComplete) {} - -/** @brief Unused Pan Id Found - * - * This is called by the framework on behalf of the form-and-join library to - * notify the application of the PAN id and channel found following a call to - * ::emberScanForUnusedPanId(). See form-and-join documentation for more - * information. - * - * @param panId Ver.: always - * @param channel Ver.: always - */ -void emberAfUnusedPanIdFoundCallback(EmberPanId panId, uint8_t channel) {} - -/** @brief Write Attributes Response - * - * This function is called by the application framework when a Write Attributes - * Response command is received from an external device. The application should - * return true if the message was processed or false if it was not. - * - * @param clusterId The cluster identifier of this response. Ver.: always - * @param buffer Buffer containing the list of write attribute status records. - * Ver.: always - * @param bufLen The length in bytes of the list. Ver.: always - */ -bool emberAfWriteAttributesResponseCallback(EmberAfClusterId clusterId, uint8_t * buffer, uint16_t bufLen) -{ - return false; -} - -/** @brief Zigbee Key Establishment - * - * A callback to the application to notify it of the status of the request for a - * Link Key. - * - * @param partner partner The IEEE address of the partner device. Or all zeros - * if the Key establishment failed. Ver.: always - * @param status The status of the key establishment. Ver.: always - */ -void emberAfZigbeeKeyEstablishmentCallback(EmberEUI64 partner, EmberKeyStatus status) {} - -/** - * @brief Called whenever the radio is powered off. - */ -void halRadioPowerDownHandler(void) {} - -/** - * @brief Called whenever the radio is powered on. - */ -void halRadioPowerUpHandler(void) {} - -/** - * @brief Called whenever the microcontroller enters/exits a idle/sleep mode - * - * @param enter True if entering idle/sleep, False if exiting - * @param sleepMode Idle/sleep mode - */ -void halSleepCallback(bool enter, SleepModes sleepMode) {} diff --git a/examples/lock-app/efr32/src/gen/callback.h b/examples/lock-app/efr32/src/gen/callback.h deleted file mode 100644 index fa45f2bc9298b5..00000000000000 --- a/examples/lock-app/efr32/src/gen/callback.h +++ /dev/null @@ -1,23787 +0,0 @@ -/** - * - * 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 SILABS_EMBER_AF_CALLBACK_PROTOTYPES -#define SILABS_EMBER_AF_CALLBACK_PROTOTYPES - -/** - * @addtogroup callback Application Framework callback interface Reference - * This header provides callback function prototypes to interface the - * developer's application code with the Ember Application Framework. - * @{ - */ - -#include "af-types.h" -//#include "hal/hal.h" -//#include EMBER_AF_API_NETWORK_STEERING - -/** @name Non-Cluster Related Callbacks */ -// @{ -/** @brief Add To Current App Tasks - * - * This function is only useful to sleepy end devices. This function will note - * the passed item as part of a set of tasks the application has outstanding - * (e.g. message sent requiring APS acknwoledgement). This will affect how the - * application behaves with regard to sleeping and polling. Until the - * outstanding task is completed, the device may poll more frequently and sleep - * less often. - * - * @param tasks Ver.: always - */ -void emberAfAddToCurrentAppTasksCallback(EmberAfApplicationTask tasks); -/** @brief Allow Network Write Attribute - * - * This function is called by the application framework before it writes an - * attribute in response to a write attribute request from an external device. - * The value passed into this callback is the value to which the attribute is to - * be set by the framework. - Example: In mirroring simple metering data - * on an Energy Services Interface (ESI) (formerly called Energy Service Portal - * (ESP) in SE 1.0).), a mirrored simple meter needs to write read-only - * attributes on its mirror. The-meter-mirror sample application, located in - * app/framework/sample-apps, uses this callback to allow the mirrored device to - * write simple metering attributes on the mirror regardless of the fact that - * most simple metering attributes are defined as read-only by the ZigBee - * specification. - Note: The ZCL specification does not (as of this - * writing) specify any permission-level security for writing writeable - * attributes. As far as the ZCL specification is concerned, if an attribute is - * writeable, any device that has a link key for the device should be able to - * write that attribute. Furthermore if an attribute is read only, it should not - * be written over the air. Thus, if you implement permissions for writing - * attributes as a feature, you MAY be operating outside the specification. This - * is unlikely to be a problem for writing read-only attributes, but it may be a - * problem for attributes that are writeable according to the specification but - * restricted by the application implementing this callback. - * - * @param endpoint Ver.: always - * @param clusterId Ver.: always - * @param attributeId Ver.: always - * @param mask Ver.: always - * @param manufacturerCode Ver.: always - * @param value Ver.: always - * @param type Ver.: always - */ -EmberAfAttributeWritePermission emberAfAllowNetworkWriteAttributeCallback(uint8_t endpoint, EmberAfClusterId clusterId, - EmberAfAttributeId attributeId, uint8_t mask, - uint16_t manufacturerCode, uint8_t * value, uint8_t type); -/** @brief Attribute Read Access - * - * This function is called whenever the Application Framework needs to check - * access permission for an attribute read. - * - * @param endpoint Ver.: always - * @param clusterId Ver.: always - * @param manufacturerCode Ver.: always - * @param attributeId Ver.: always - */ -bool emberAfAttributeReadAccessCallback(uint8_t endpoint, EmberAfClusterId clusterId, uint16_t manufacturerCode, - uint16_t attributeId); -/** @brief Attribute Write Access - * - * This function is called whenever the Application Framework needs to check - * access permission for an attribute write. - * - * @param endpoint Ver.: always - * @param clusterId Ver.: always - * @param manufacturerCode Ver.: always - * @param attributeId Ver.: always - */ -bool emberAfAttributeWriteAccessCallback(uint8_t endpoint, EmberAfClusterId clusterId, uint16_t manufacturerCode, - uint16_t attributeId); -/** @brief Clear Report Table - * - * This function is called by the framework when the application should clear - * the report table. - * - */ -EmberStatus emberAfClearReportTableCallback(void); -/** @brief Cluster Init - * - * This function is called when a specific cluster is initialized. It gives the - * application an opportunity to take care of cluster initialization procedures. - * It is called exactly once for each endpoint where cluster is present. - * - * @param endpoint Ver.: always - * @param clusterId Ver.: always - */ -void emberAfClusterInitCallback(uint8_t endpoint, EmberAfClusterId clusterId); -/** @brief Cluster Security Custom - * - * This callback is fired when determining if APS encryption is required for a - * cluster outside of the specification's required clusters. In other words, - * for the Smart Energy profile this would be a cluster beyond the list that - * normally requires APS encryption. - * - * @param profileId The profile ID Ver.: always - * @param clusterId The cluster ID Ver.: always - * @param incoming Whether this is an incoming or outgoing message. Ver.: - * always - * @param commandId The ZCL command ID being sent/received. Ver.: always - */ -bool emberAfClusterSecurityCustomCallback(EmberAfProfileId profileId, EmberAfClusterId clusterId, bool incoming, uint8_t commandId); -/** @brief Configure Reporting Command - * - * This function is called by the application framework when a Configure - * Reporting command is received from an external device. The Configure - * Reporting command contains a series of attribute reporting configuration - * records. The application should return true if the message was processed or - * false if it was not. - * - * @param cmd Ver.: always - */ -bool emberAfConfigureReportingCommandCallback(const EmberAfClusterCommand * cmd); -/** @brief Configure Reporting Response - * - * This function is called by the application framework when a Configure - * Reporting Response command is received from an external device. The - * application should return true if the message was processed or false if it - * was not. - * - * @param clusterId The cluster identifier of this response. Ver.: always - * @param buffer Buffer containing the list of attribute status records. Ver.: - * always - * @param bufLen The length in bytes of the list. Ver.: always - */ -bool emberAfConfigureReportingResponseCallback(EmberAfClusterId clusterId, uint8_t * buffer, uint16_t bufLen); -/** @brief Default Response - * - * This function is called by the application framework when a Default Response - * command is received from an external device. The application should return - * true if the message was processed or false if it was not. - * - * @param clusterId The cluster identifier of this response. Ver.: always - * @param commandId The command identifier to which this is a response. Ver.: - * always - * @param status Specifies either SUCCESS or the nature of the error that was - * detected in the received command. Ver.: always - */ -bool emberAfDefaultResponseCallback(EmberAfClusterId clusterId, uint8_t commandId, EmberAfStatus status); -/** @brief Discover Attributes Response - * - * This function is called by the application framework when a Discover - * Attributes Response or Discover Attributes Extended Response command is - * received from an external device. The Discover Attributes Response command - * contains a bool indicating if discovery is complete and a list of zero or - * more attribute identifier/type records. The final argument indicates whether - * the response is in the extended format or not. The application should return - * true if the message was processed or false if it was not. - * - * @param clusterId The cluster identifier of this response. Ver.: always - * @param discoveryComplete Indicates whether there are more attributes to be - * discovered. true if there are no more attributes to be discovered. Ver.: - * always - * @param buffer Buffer containing the list of attribute identifier/type - * records. Ver.: always - * @param bufLen The length in bytes of the list. Ver.: always - * @param extended Indicates whether the response is in the extended format or - * not. Ver.: always - */ -bool emberAfDiscoverAttributesResponseCallback(EmberAfClusterId clusterId, bool discoveryComplete, uint8_t * buffer, - uint16_t bufLen, bool extended); -/** @brief Discover Commands Generated Response - * - * This function is called by the framework when Discover Commands Generated - * Response is received. - * - * @param clusterId The cluster identifier of this response. Ver.: always - * @param manufacturerCode Manufacturer code Ver.: always - * @param discoveryComplete Indicates whether there are more commands to be - * discovered. Ver.: always - * @param commandIds Buffer containing the list of command identifiers. Ver.: - * always - * @param commandIdCount The length of bytes of the list, whish is the same as - * the number of identifiers. Ver.: always - */ -bool emberAfDiscoverCommandsGeneratedResponseCallback(EmberAfClusterId clusterId, uint16_t manufacturerCode, bool discoveryComplete, - uint8_t * commandIds, uint16_t commandIdCount); -/** @brief Discover Commands Received Response - * - * This function is called by the framework when Discover Commands Received - * Response is received. - * - * @param clusterId The cluster identifier of this response. Ver.: always - * @param manufacturerCode Manufacturer code Ver.: always - * @param discoveryComplete Indicates whether there are more commands to be - * discovered. Ver.: always - * @param commandIds Buffer containing the list of command identifiers. Ver.: - * always - * @param commandIdCount The length of bytes of the list, whish is the same as - * the number of identifiers. Ver.: always - */ -bool emberAfDiscoverCommandsReceivedResponseCallback(EmberAfClusterId clusterId, uint16_t manufacturerCode, bool discoveryComplete, - uint8_t * commandIds, uint16_t commandIdCount); -/** @brief Eeprom Init - * - * Tells the system to initialize the EEPROM if it is not already initialized. - * - */ -void emberAfEepromInitCallback(void); -/** @brief Eeprom Note Initialized State - * - * Records the state of the EEPROM so that an intelligent driver (like the - * EEPROM plugin) can re-initialize the driver prior to any calls to it. - * - * @param state The state of the EEPROM, false=re-initalization needed, - * true=no-re-init needed Ver.: always - */ -void emberAfEepromNoteInitializedStateCallback(bool state); -/** @brief Eeprom Shutdown - * - * Tells the system to shutdown the EEPROM if it is not already shutdown. - * - */ -void emberAfEepromShutdownCallback(void); -/** @brief Energy Scan Result - * - * This is called by the low-level stack code when an 802.15.4 energy scan - * completes. - * - * @param channel The channel where the energy scan took place. Ver.: always - * @param rssi The receive signal strength indicator for the channel. Ver.: - * always - */ -void emberAfEnergyScanResultCallback(uint8_t channel, int8_t rssi); -/** @brief External Attribute Read - * - * Like emberAfExternalAttributeWriteCallback above, this function is called - * when the framework needs to read an attribute that is not stored within the - * Application Framework's data structures. - All of the important - * information about the attribute itself is passed as a pointer to an - * EmberAfAttributeMetadata struct, which is stored within the application and - * used to manage the attribute. A complete description of the - * EmberAfAttributeMetadata struct is provided in - * app/framework/include/af-types.h - This function assumes that the - * application is able to read the attribute, write it into the passed buffer, - * and return immediately. Any attributes that require a state machine for - * reading and writing are not really candidates for externalization at the - * present time. The Application Framework does not currently include a state - * machine for reading or writing attributes that must take place across a - * series of application ticks. Attributes that cannot be read in a timely - * manner should be stored within the Application Framework and updated - * occasionally by the application code from within the - * emberAfMainTickCallback. - If the application was successfully able to - * read the attribute and write it into the passed buffer, it should return a - * value of EMBER_ZCL_STATUS_SUCCESS. Ensure that the size of the externally - * managed attribute value is smaller than what the buffer can hold. In the case - * of a buffer overflow throw an appropriate error such as - * EMBER_ZCL_STATUS_INSUFFICIENT_SPACE. Any other return value indicates the - * application was not able to read the attribute. - * - * @param endpoint Ver.: always - * @param clusterId Ver.: always - * @param attributeMetadata Ver.: always - * @param manufacturerCode Ver.: always - * @param buffer Ver.: always - * @param maxReadLength Ver.: always - */ -EmberAfStatus emberAfExternalAttributeReadCallback(uint8_t endpoint, EmberAfClusterId clusterId, - EmberAfAttributeMetadata * attributeMetadata, uint16_t manufacturerCode, - uint8_t * buffer, uint16_t maxReadLength); -/** @brief External Attribute Write - * - * This function is called whenever the Application Framework needs to write an - * attribute which is not stored within the data structures of the Application - * Framework itself. One of the new features in Version 2 is the ability to - * store attributes outside the Framework. This is particularly useful for - * attributes that do not need to be stored because they can be read off the - * hardware when they are needed, or are stored in some central location used by - * many modules within the system. In this case, you can indicate that the - * attribute is stored externally. When the framework needs to write an external - * attribute, it makes a call to this callback. - This callback is very - * useful for host micros which need to store attributes in persistent memory. - * Because each host micro (used with an Ember NCP) has its own type of - * persistent memory storage, the Application Framework does not include the - * ability to mark attributes as stored in flash the way that it does for Ember - * SoCs like the EM35x. On a host micro, any attributes that need to be stored - * in persistent memory should be marked as external and accessed through the - * external read and write callbacks. Any host code associated with the - * persistent storage should be implemented within this callback. - All of - * the important information about the attribute itself is passed as a pointer - * to an EmberAfAttributeMetadata struct, which is stored within the application - * and used to manage the attribute. A complete description of the - * EmberAfAttributeMetadata struct is provided in - * app/framework/include/af-types.h. - This function assumes that the - * application is able to write the attribute and return immediately. Any - * attributes that require a state machine for reading and writing are not - * candidates for externalization at the present time. The Application Framework - * does not currently include a state machine for reading or writing attributes - * that must take place across a series of application ticks. Attributes that - * cannot be written immediately should be stored within the Application - * Framework and updated occasionally by the application code from within the - * emberAfMainTickCallback. - If the application was successfully able to - * write the attribute, it returns a value of EMBER_ZCL_STATUS_SUCCESS. Any - * other return value indicates the application was not able to write the - * attribute. - * - * @param endpoint Ver.: always - * @param clusterId Ver.: always - * @param attributeMetadata Ver.: always - * @param manufacturerCode Ver.: always - * @param buffer Ver.: always - */ -EmberAfStatus emberAfExternalAttributeWriteCallback(uint8_t endpoint, EmberAfClusterId clusterId, - EmberAfAttributeMetadata * attributeMetadata, uint16_t manufacturerCode, - uint8_t * buffer); -/** @brief Find Unused Pan Id And Form - * - * This function is called by the framework to search for an unused PAN id and - * form a new network. The application should return EMBER_SUCCESS if the - * operation was initiated successfully. - * - */ -EmberStatus emberAfFindUnusedPanIdAndFormCallback(void); -/** @brief Get Current App Tasks - * - * This function is only useful to sleepy end devices. This function will - * return the set of tasks the application has outstanding. These tasks affect - * how the application behaves with regard to sleeping and polling. - * - */ -EmberAfApplicationTask emberAfGetCurrentAppTasksCallback(void); -/** @brief Get Current Poll Control - * - * This function will retrieve the current poll control that the system is using - * for the current network. This is determined by examining all the scheduled - * events and obtaining the most restrictive poll control context across all - * events. The most restrictive poll control is EMBER_AF_SHORT_POLL followed by - * EMBER_AF_LONG_POLL. - * - */ -EmberAfEventPollControl emberAfGetCurrentPollControlCallback(void); -/** @brief Get Current Poll Interval Ms - * - * This function is only useful to end devices. This function will return the - * current poll interval (in milliseconds) for the current network. This - * interval is the maximum amount of time a child is currently waiting between - * polls of its parent. - * - */ -uint32_t emberAfGetCurrentPollIntervalMsCallback(void); -/** @brief Get Current Poll Interval Qs - * - * This function is only useful to end devices. This function will return the - * current poll interval (in quarter seconds) for the current network. This - * interval is the maximum amount of time a child is currently waiting between - * polls of its parent. - * - */ -uint32_t emberAfGetCurrentPollIntervalQsCallback(void); -/** @brief Get Current Sleep Control - * - * This function will retrieve the current sleep control that the system is - * using. This is determined by examining all the scheduled events and - * obtaining the most restrictive sleep control context across all events. The - * most restrictive sleep control is EMBER_AF_STAY_AWAKE followed by - * EMBER_AF_OK_TO_SLEEP. - * - */ -EmberAfEventSleepControl emberAfGetCurrentSleepControlCallback(void); -/** @brief Get Current Time - * - * This callback is called when device attempts to get current time from the - * hardware. If this device has means to retrieve exact time, then this method - * should implement it. If the callback can't provide the exact time it should - * return 0 to indicate failure. Default action is to return 0, which indicates - * that device does not have access to real time. - * - */ -uint32_t emberAfGetCurrentTimeCallback(void); -/** @brief Get Default Poll Control - * - * This function will retrieve the default poll control for the current network - * as previously set by emberAfSetDefaultPollControlCallback(). The default - * poll control will limit whether the network can long poll. - * - */ -EmberAfEventPollControl emberAfGetDefaultPollControlCallback(void); -/** @brief Get Default Sleep Control - * - * This function will retrieve the default sleep control the system is using as - * previously set by emberAfSetDefaultSleepControlCallback(). The default sleep - * control will limit whether the device can sleep. - * - */ -EmberAfEventSleepControl emberAfGetDefaultSleepControlCallback(void); -/** @brief Get Endpoint By Index - * - * Get the endpoint number based on the passed index. By default the framework - * handles this by managing endpoints based on the precompiled configuration - * defined in AppBuilder. This callback can override this behavior at runtime - * and provide additional endpoints or different data than the compiled values. - * If the index is overridden than the callback shall return true and set the - * endpointReturn parameter accordingly. A value of 0xFF means the endpoint - * doesn't exist at that index. - Otherwise false must be returned by the - * callback and the default framework behavior will be executed. This is only - * applicable to the SOC devices. - * - * @param index The index of the endpoint. Ver.: always - * @param endpointReturn The value of endpoint. Ver.: always - */ -bool emberAfGetEndpointByIndexCallback(uint8_t index, uint8_t * endpointReturn); -/** @brief Get Endpoint Description - * - * This callback is called by the framework whenever it receives a ZDO request - * to enumerate the details about an endpoint. By default the framework - * provides the information based on the precompiled endpoint information as - * defined in AppBuilder. This callback can override that behavior at runtime - * and return different information. If the endpoint information is being - * overridden then the callback must return true. Otherwise it should return - * false, which allows the framework to perform its default behavior. This is - * only applicable to SOC devices. - * - * @param endpoint The endpoint number that is being queried. Ver.: always - * @param result This is a pointer to a data structure where the endpoint - * information is written if the callback is providing the information. Ver.: - * always - */ -bool emberAfGetEndpointDescriptionCallback(uint8_t endpoint, EmberEndpointDescription * result); -/** @brief Get Endpoint Info - * - * This function is a callback to an application implemented endpoint that - * operates outside the normal application framework. When the framework wishes - * to perform operations with that endpoint it uses this callback to retrieve - * the endpoint's information. If the endpoint exists and the application can - * provide data then true shall be returned. Otherwise the callback must return - * false. - * - * @param endpoint The endpoint to retrieve data for. Ver.: always - * @param returnNetworkIndex The index corresponding to the ZigBee network the - * endpoint belongs to. If not using a multi-network device, 0 must be - * returned. Otherwise on a multi-network device the stack will switch to this - * network before sending the message. Ver.: always - * @param returnEndpointInfo A pointer to a data struct that will be written - * with information about the endpoint. Ver.: always - */ -bool emberAfGetEndpointInfoCallback(uint8_t endpoint, uint8_t * returnNetworkIndex, EmberAfEndpointInfoStruct * returnEndpointInfo); -/** @brief Get Form And Join Extended Pan Id - * - * This callback is called by the framework to get the extended PAN ID used by - * the current network for forming and joining. The extended PAN ID used for - * forming and joining is not necessarily the same extended PAN ID actually in - * use on the network. - * - * @param resultLocation Ver.: always - */ -void emberAfGetFormAndJoinExtendedPanIdCallback(uint8_t * resultLocation); -/** @brief Get Long Poll Interval Ms - * - * This function is only useful to end devices. This function will return the - * long poll interval (in milliseconds) for the current network. This interval - * is the maximum amount of time a child will wait between polls of its parent - * when it is not expecting data. - * - */ -uint32_t emberAfGetLongPollIntervalMsCallback(void); -/** @brief Get Long Poll Interval Qs - * - * This function is only useful to end devices. This function will return the - * long poll interval (in quarter seconds) for the current network. This - * interval is the maximum amount of time a child will wait between polls of its - * parent when it is not expecting data. - * - */ -uint32_t emberAfGetLongPollIntervalQsCallback(void); -/** @brief Get Short Poll Interval Ms - * - * This function is only useful to sleepy end devices. This function will - * return the short poll interval (in milliseconds) for the current network. - * This interval is the maximum amount of time a child will wait between polls - * of its parent when it is expecting data. - * - */ -uint16_t emberAfGetShortPollIntervalMsCallback(void); -/** @brief Get Short Poll Interval Qs - * - * This function is only useful to sleepy end devices. This function will - * return the short poll interval (in quarter seconds) for the current network. - * This interval is the maximum amount of time a child will wait between polls - * of its parent when it is expecting data. - * - */ -uint16_t emberAfGetShortPollIntervalQsCallback(void); -/** @brief Get Source Route Overhead - * - * This function is called by the framework to determine the overhead required - * in the network frame for source routing to a particular destination. - * - * @param destination The node id of the destination Ver.: always - */ -uint8_t emberAfGetSourceRouteOverheadCallback(EmberNodeId destination); -/** @brief Get Wake Timeout Bitmask - * - * This function is only useful to sleepy end devices. This function will - * return the wake timeout bitmask for the current network. The bitmask - * determines which tasks will timeout automatically and which tasks require - * manual removal from the task list. - * - */ -EmberAfApplicationTask emberAfGetWakeTimeoutBitmaskCallback(void); -/** @brief Get Wake Timeout Ms - * - * This function is only useful to sleepy end devices. This function will - * return the wake timeout (in milliseconds) for the current network. This - * timeout is the maximum amount of time a child will wait for a task in the - * wake bitmask to finish. While waiting, the device will short poll. - * - */ -uint16_t emberAfGetWakeTimeoutMsCallback(void); -/** @brief Get Wake Timeout Qs - * - * This function is only useful to sleepy end devices. This function will - * return the wake timeout (in quarter seconds) for the current network. This - * timeout is the maximum amount of time a child will wait for a task in the - * wake bitmask to finish. While waiting, the device will short poll. - * - */ -uint16_t emberAfGetWakeTimeoutQsCallback(void); -/** @brief Hal Button Isr - * - * This callback is called by the framework whenever a button is pressed on the - * device. This callback is called within ISR context. - * - * @param button The button which has changed state, either BUTTON0 or BUTTON1 - * as defined in the appropriate BOARD_HEADER. Ver.: always - * @param state The new state of the button referenced by the button parameter, - * either ::BUTTON_PRESSED if the button has been pressed or ::BUTTON_RELEASED - * if the button has been released. Ver.: always - */ -void emberAfHalButtonIsrCallback(uint8_t button, uint8_t state); -/** @brief Incoming Packet Filter - * - * ** REQUIRES INCLUDING THE PACKET-HANDOFF PLUGIN ** - - This is called by - * the Packet Handoff plugin when the stack receives a packet from one of the - * protocol layers specified in ::EmberZigbeePacketType. - - The packetType - * argument is one of the values of the ::EmberZigbeePacketType enum. If the - * stack receives an 802.15.4 MAC beacon, it will call this function with the - * packetType argument set to ::EMBER_ZIGBEE_PACKET_TYPE_BEACON. - - The - * implementation of this callback may alter the data contained in packetData, - * modify options and flags in the auxillary data, or consume the packet itself, - * either sending the message, or discarding it as it sees fit. - * - * @param packetType the type of packet and associated protocol layer Ver.: - * always - * @param packetData flat buffer containing the packet data associated with the - * packet type Ver.: always - * @param size_p a pointer containing the size value of the packet Ver.: always - * @param data auxillary data included with the packet Ver.: always - */ -EmberPacketAction emberAfIncomingPacketFilterCallback(EmberZigbeePacketType packetType, uint8_t * packetData, uint8_t * size_p, - void * data); -/** @brief Initiate Inter Pan Key Establishment - * - * This function is called by the framework to initiate key establishment with a - * remote device on a different PAN. The application should return - * EMBER_SUCCESS if key establishment was initiated successfully. The - * application should call ::emberAfInterPanKeyEstablishmentCallback as events - * occur. - * - * @param panId The PAN id of the remote device. Ver.: always - * @param eui64 The EUI64 of the remote device. Ver.: always - */ -EmberStatus emberAfInitiateInterPanKeyEstablishmentCallback(EmberPanId panId, const EmberEUI64 eui64); -/** @brief Initiate Key Establishment - * - * This function is called by the framework to initiate key establishment with a - * remote device. The application should return EMBER_SUCCESS if key - * establishment was initiated successfully. The application should call - * ::emberAfKeyEstablishmentCallback as events occur. - * - * @param nodeId The node id of the remote device. Ver.: always - * @param endpoint The endpoint on the remote device. Ver.: always - */ -EmberStatus emberAfInitiateKeyEstablishmentCallback(EmberNodeId nodeId, uint8_t endpoint); -/** @brief Initiate Partner Link Key Exchange - * - * This function is called by the framework to initiate a partner link key - * exchange with a remote device. The application should return EMBER_SUCCESS - * if the partner link key exchange was initiated successfully. When the - * partner link key exchange completes, the application should call the given - * callback. - * - * @param target The node id of the remote device. Ver.: always - * @param endpoint The key establishment endpoint of the remote device. Ver.: - * always - * @param callback The callback that should be called when the partner link key - * exchange completse. Ver.: always - */ -EmberStatus emberAfInitiatePartnerLinkKeyExchangeCallback(EmberNodeId target, uint8_t endpoint, - EmberAfPartnerLinkKeyExchangeCallback * callback); -/** @brief Inter Pan Key Establishment - * - * A callback by the key-establishment code to indicate an event has occurred. - * For error codes this is purely a notification. For non-error status codes - * (besides LINK_KEY_ESTABLISHED), it is the application's chance to allow or - * disallow the operation. If the application returns true then the key - * establishment is allowed to proceed. If it returns false, then key - * establishment is aborted. LINK_KEY_ESTABLISHED is a notification of success. - * - * @param status Ver.: always - * @param amInitiator Ver.: always - * @param panId Ver.: always - * @param eui64 Ver.: always - * @param delayInSeconds Ver.: always - */ -bool emberAfInterPanKeyEstablishmentCallback(EmberAfKeyEstablishmentNotifyMessage status, bool amInitiator, EmberPanId panId, - const EmberEUI64 eui64, uint8_t delayInSeconds); -/** @brief Interpan Send Message - * - * This function will send a raw MAC message with interpan frame format using - * the passed parameters. - * - * @param header Interpan header info Ver.: always - * @param messageLength The length of the message received or to send Ver.: - * always - * @param message The message data received or to send. Ver.: always - */ -EmberStatus emberAfInterpanSendMessageCallback(EmberAfInterpanHeader * header, uint16_t messageLength, uint8_t * message); -/** @brief Key Establishment - * - * A callback by the key-establishment code to indicate an event has occurred. - * For error codes this is purely a notification. For non-error status codes - * (besides LINK_KEY_ESTABLISHED), it is the application's chance to allow or - * disallow the operation. If the application returns true then the key - * establishment is allowed to proceed. If it returns false, then key - * establishment is aborted. LINK_KEY_ESTABLISHED is a notification of success. - * - * @param status Ver.: always - * @param amInitiator Ver.: always - * @param partnerShortId Ver.: always - * @param delayInSeconds Ver.: always - */ -bool emberAfKeyEstablishmentCallback(EmberAfKeyEstablishmentNotifyMessage status, bool amInitiator, EmberNodeId partnerShortId, - uint8_t delayInSeconds); -/** @brief Main Init - * - * This function is called from the application's main function. It gives the - * application a chance to do any initialization required at system startup. Any - * code that you would normally put into the top of the application's main() - * routine should be put into this function. This is called before the clusters, - * plugins, and the network are initialized so some functionality is not yet - * available. - Note: No callback in the Application Framework is - * associated with resource cleanup. If you are implementing your application on - * a Unix host where resource cleanup is a consideration, we expect that you - * will use the standard Posix system calls, including the use of atexit() and - * handlers for signals such as SIGTERM, SIGINT, SIGCHLD, SIGPIPE and so on. If - * you use the signal() function to register your signal handler, please mind - * the returned value which may be an Application Framework function. If the - * return value is non-null, please make sure that you call the returned - * function from your handler to avoid negating the resource cleanup of the - * Application Framework itself. - * - */ -void emberAfMainInitCallback(void); -/** @brief Main Start - * - * This function is called at the start of main after the HAL has been - * initialized. The standard main function arguments of argc and argv are - * passed in. However not all platforms have support for main() function - * arguments. Those that do not are passed NULL for argv, therefore argv should - * be checked for NULL before using it. If the callback determines that the - * program must exit, it should return true. The value returned by main() will - * be the value written to the returnCode pointer. Otherwise the callback - * should return false to let normal execution continue. - * - * @param returnCode Ver.: always - * @param argc Ver.: always - * @param argv Ver.: always - */ -bool emberAfMainStartCallback(int * returnCode, int argc, char ** argv); -/** @brief Main Tick - * - * Whenever main application tick is called, this callback will be called at the - * end of the main tick execution. - * - */ -void emberAfMainTickCallback(void); -/** @brief Mark Buffers - * - * This function is called when the garbage collector runs. Any buffers held by - * the application must be marked. - * - */ -void emberAfMarkBuffersCallback(void); -/** @brief Message Sent - * - * This function is called by the application framework from the message sent - * handler, when it is informed by the stack regarding the message sent status. - * All of the values passed to the emberMessageSentHandler are passed on to this - * callback. This provides an opportunity for the application to verify that its - * message has been sent successfully and take the appropriate action. This - * callback should return a bool value of true or false. A value of true - * indicates that the message sent notification has been handled and should not - * be handled by the application framework. - * - * @param type Ver.: always - * @param indexOrDestination Ver.: always - * @param apsFrame Ver.: always - * @param msgLen Ver.: always - * @param message Ver.: always - * @param status Ver.: always - */ -bool emberAfMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, EmberApsFrame * apsFrame, - uint16_t msgLen, uint8_t * message, EmberStatus status); -/** @brief Ncp Init - * - * This function is called when the network coprocessor is being initialized, - * either at startup or upon reset. It provides applications on opportunity to - * perform additional configuration of the NCP. The function is always called - * twice when the NCP is initialized. In the first invocation, memoryAllocation - * will be true and the application should only issue EZSP commands that affect - * memory allocation on the NCP. For example, tables on the NCP can be resized - * in the first call. In the second invocation, memoryAllocation will be false - * and the application should only issue EZSP commands that do not affect memory - * allocation. For example, tables on the NCP can be populated in the second - * call. This callback is not called on SoCs. - * - * @param memoryAllocation Ver.: always - */ -void emberAfNcpInitCallback(bool memoryAllocation); -/** @brief Ncp Is Awake Isr - * - * This function is called IN ISR CONTEXT. It notes that the NCP is awake after - * sleeping. Care should be taken to do minimal processing in this ISR handler - * function. - * - */ -void emberAfNcpIsAwakeIsrCallback(void); -/** @brief Network Found - * - * This callback is generated when an active scan finds a 802.15.4 network. - * - * @param networkFound A struct containing information about the network found. - * Ver.: always - * @param lqi The link quality indication of the network found. Ver.: always - * @param rssi The received signal strength indication of the network found. - * Ver.: always - */ -void emberAfNetworkFoundCallback(EmberZigbeeNetwork * networkFound, uint8_t lqi, int8_t rssi); -/** @brief Network Key Update Complete - * - * This is called by the framework when a network key update operation started - * by the trust center is complete. - * - * @param status Ver.: always - */ -void emberAfNetworkKeyUpdateCompleteCallback(EmberStatus status); -/** @brief Ota Bootload - * - * The platform specific routine to bootload the device from a ZigBee - * over-the-air upgrade file. - * - * @param id A pointer to the structure that contains the information about what - * OTA image to bootload. Ver.: always - * @param ncpUpgradeTagId The tag ID of the upgrade data that will be used to - * bootload the device. Ver.: always - */ -uint8_t emberAfOtaBootloadCallback(const EmberAfOtaImageId * id, uint16_t ncpUpgradeTagId); -/** @brief Ota Client Bootload - * - * This callback is fired when the OTA Client recevies a command to bootload the - * newly downloaded OTA image. This callback will perform the platform specific - * to bootload their device. - * - * @param id This is the identifier relating to the image that has been - * downloaded and is ready for bootload. Ver.: always - */ -void emberAfOtaClientBootloadCallback(const EmberAfOtaImageId * id); -/** @brief Ota Client Custom Verify - * - * This callback is executed by the OTA client after the signature verification - * has successfully completed. It allows the device to do its own custom - * verification of the image (such as verifying that the EBL is intact). - * - * @param newVerification This indicates if a new verification should be - * started. Ver.: always - * @param id This is ID of the image to be verified. Ver.: always - */ -EmberAfImageVerifyStatus emberAfOtaClientCustomVerifyCallback(bool newVerification, const EmberAfOtaImageId * id); -/** @brief Ota Client Download Complete - * - * This callback indicates that the OTA client has completed the download of a - * file. If the file has been completely downloaded and cryptographic checks - * have been turned on, then those will be performed prior to this callback and - * that outcome included in the 'success' result. On failure, this callback is - * merely informative, and the return type is ignored. On succesful download, - * this callback allows the client to perform any additional verification of the - * downloaded image and return that result to the OTA server. - * - * @param success This indicates the success or failure of the download and - * cryptographic verification process (if applicable). Ver.: always - * @param id This is the image identifier information that corresponds to the - * download result. Ver.: always - */ -bool emberAfOtaClientDownloadCompleteCallback(EmberAfOtaDownloadResult success, const EmberAfOtaImageId * id); -/** @brief Ota Client Incoming Message Raw - * - * This callback is for processing incoming messages for the Over-the-air - * bootload cluster client. ZCL will not process the message and instead hand - * the raw over the air data to the callback for its own processing. - * - * @param message A pointer to the structure containing the message buffer and - * other information about it. Ver.: always - */ -bool emberAfOtaClientIncomingMessageRawCallback(EmberAfClusterCommand * message); -/** @brief Ota Client Start - * - * This callback should be called when the profile specific registration has - * completed successfully. It will start the client's state machine that will - * find the OTA server, query it for the next image, download the image, wait - * for the bootload message, and kick off the bootload. - * - */ -void emberAfOtaClientStartCallback(void); -/** @brief Ota Client Version Info - * - * This function is called by the OTA client when a new query will occur to the - * server asking what the next version of firmware is. The client can inform - * the cluster software as to what information to use in the query (and - * subsequent download). - * - * @param currentImageInfo This is the information to use in the next query by - * the client cluster code. It contains the manufacturer ID, image type ID, and - * the firmware version to be specified in the query message sent to the server. - * Ver.: always - * @param hardwareVersion This is a pointer to the hardware version to use in - * the query. If no hardware version should be used, then - * EMBER_AF_INVALID_HARDWARE_VERSION should be used. Ver.: always - */ -void emberAfOtaClientVersionInfoCallback(EmberAfOtaImageId * currentImageInfo, uint16_t * hardwareVersion); -/** @brief Ota Page Request Server Policy - * - * This callback is called by the OTA server page request code when it wants to - * determine if it is allowed for an OTA client to make a page request. It is - * only called if page request support has been enabled on the server. It - * should return EMBER_ZCL_STATUS_SUCCESS if it allows the page request, and - * EMBER_ZCL_STATUS_UNSUP_CLUSTER_COMMAND if it does not want to allow it. - * - */ -uint8_t emberAfOtaPageRequestServerPolicyCallback(void); -/** @brief Ota Server Block Size - * - * This function provides a way for the server to adjust the block size of its - * response to an Image block request by a client. - * - * @param clientNodeId The node Id of OTA client making an image block request. - * Ver.: always - */ -uint8_t emberAfOtaServerBlockSizeCallback(EmberNodeId clientNodeId); -/** @brief Ota Server Incoming Message Raw - * - * This callback is for processing incoming messages for the Over-the-air - * bootload cluster server. ZCL will not process the message and instead hand - * the raw over the air data to the callback for its own processing. - * - * @param message A pointer to the structure containing the message buffer and - * other information about it. Ver.: always - */ -bool emberAfOtaServerIncomingMessageRawCallback(EmberAfClusterCommand * message); -/** @brief Ota Server Query - * - * This callback is fired when the OTA server receives a query request by the - * client. The callback lets the server application indicate to the client what - * the 'next' version of software is for the device, or if there is not one - * available. - * - * @param currentImageId This is the current software image that the client - * hase. Ver.: always - * @param hardwareVersion If this value is non-NULL, it indicates the hardware - * version of the client device. If NULL, the client did not specify a hardware - * version. Ver.: always - * @param nextUpgradeImageId This is a pointer to a data structure containing - * the 'next' software version for the client to download. Ver.: always - */ -uint8_t emberAfOtaServerQueryCallback(const EmberAfOtaImageId * currentImageId, uint16_t * hardwareVersion, - EmberAfOtaImageId * nextUpgradeImageId); -/** @brief Ota Server Send Image Notify - * - * This callback is an indication to the OTA server that it should send out - * notification about an OTA file that is available for download. - * - * @param dest The destination of the image notify message. May be a broadcast - * address. Ver.: always - * @param endpoint The destination endpoint of the image notify message. May be - * a broadcast endpoint. Ver.: always - * @param payloadType The type of data the image notify message will contain. 0 - * = no data. 1 = Manufacturer ID. 2 = Manufacturer ID and the image type ID. - * 3 = Manufacturer ID, image type ID, and firmware version. Ver.: always - * @param queryJitter The percentage of nodes that should respond to this - * message, from 1-100. On receipt of this message, each recipient will - * randomly choose a percentage and only query the server if their percentage is - * below this value. Ver.: always - * @param id The image information that will be put in the message. The data - * within this struct that will be appended to the message is determined by the - * previous 'payloadType' argument. Ver.: always - */ -bool emberAfOtaServerSendImageNotifyCallback(EmberNodeId dest, uint8_t endpoint, uint8_t payloadType, uint8_t queryJitter, - const EmberAfOtaImageId * id); -/** @brief Ota Server Upgrade End Request - * - * This function is called when the OTA server receives a request an upgrade end - * request. If the request indicated a successful download by the client, the - * server must tell the client when and if to upgrade to the downloaded image. - * - * @param source The node ID of the device that sent the upgrade end request. - * Ver.: always - * @param status This is the ZCL status sent by the client indicating the result - * of its attempt to download the new upgrade image. If the status is not - * EMBER_ZCL_STATUS_SUCCESS then this callback is merely informative and no - * response mesasge will be generated by the server. Ver.: always - * @param returnValue If the server returns true indicating that the client - * should apply the upgrade, this time value indicates when in the future the - * client should apply the upgrade. Ver.: always - * @param imageId This variable indicates the software version that the client - * successfully downloaded and is asking to upgrade to. Ver.: always - */ -bool emberAfOtaServerUpgradeEndRequestCallback(EmberNodeId source, uint8_t status, uint32_t * returnValue, - const EmberAfOtaImageId * imageId); -/** @brief Ota Storage Check Temp Data - * - * This callback will validate temporary data in the storage device to determine - * whether it is a complete file, a partially downloaded file, or there is no - * file present. When a complete or partial file is found it will return - * EMBER_AF_OTA_STORAGE_SUCCESS or EMBER_AF_OTA_STORAGE_PARTIAL_FILE_FOUND, - * respectively. In that case, the currentOffset, totalImageSize, and - * newFileInfo will be populated with data. When EMBER_AF_OTA_STORAGE_ERROR is - * returned, no temporary data is present. - * - * @param currentOffset A pointer to a value that will be written with the - * offset within the total file size that has been successfully stored in the - * storage device. This will indicate how much data has been currently - * dowloaded. Ver.: always - * @param totalImageSize A pointer to a value that will be written with the - * total image size of the OTA file when a download has completed. This does - * not indicate how much data has actually been downloaded currently. Ver.: - * always - * @param newFileInfo This is the image id of the temporary file data stored in - * the storage device. Ver.: always - */ -EmberAfOtaStorageStatus emberAfOtaStorageCheckTempDataCallback(uint32_t * currentOffset, uint32_t * totalImageSize, - EmberAfOtaImageId * newFileInfo); -/** @brief Ota Storage Clear Temp Data - * - * This function clears any existing temp data that was downloaed. It is used - * immediately prior to downloading a raw image over the air. - * - */ -EmberAfOtaStorageStatus emberAfOtaStorageClearTempDataCallback(void); -/** @brief Ota Storage Close - * - * This callback shuts down the ZigBee Over-the-air storage module. - * - */ -void emberAfOtaStorageCloseCallback(void); -/** @brief Ota Storage Driver Download Finish - * - * This callback defines the low-level means by which a device records the final - * offset value of the download image. - * - * @param offset The value of the final offset of the image download. Ver.: - * always - */ -void emberAfOtaStorageDriverDownloadFinishCallback(uint32_t offset); -/** @brief Ota Storage Driver Init - * - * The initialization code for the OTA storage driver. - * - */ -bool emberAfOtaStorageDriverInitCallback(void); -/** @brief Ota Storage Driver Invalidate Image - * - * This callback invalidates the image stored on disk so that it will not be - * bootloaded, and it will not be a valid image that is in the middle of - * downloading. - * - */ -EmberAfOtaStorageStatus emberAfOtaStorageDriverInvalidateImageCallback(void); -/** @brief Ota Storage Driver Prepare To Resume Download - * - * This callback allows the underlying storage driver to prepare to resume the - * OTA file download. For example, the driver may exceute a page erase to - * insure the next page is ready to be written to. - * - */ -EmberAfOtaStorageStatus emberAfOtaStorageDriverPrepareToResumeDownloadCallback(void); -/** @brief Ota Storage Driver Read - * - * This callback defines the low-level means by which a device reads from the - * OTA storage device. - * - * @param offset The address offset from the start of the storage device where - * data is to be read. Ver.: always - * @param length The length of the data to be read from the storage device. - * Ver.: always - * @param returnData A pointer where the data read from the device should be - * written to. Ver.: always - */ -bool emberAfOtaStorageDriverReadCallback(uint32_t offset, uint32_t length, uint8_t * returnData); -/** @brief Ota Storage Driver Retrieve Last Stored Offset - * - * This callback defines the low-level means by which a device retrieves the - * last persistently recorded download offset. This may be different than last - * actual download offset. - * - */ -uint32_t emberAfOtaStorageDriverRetrieveLastStoredOffsetCallback(void); -/** @brief Ota Storage Driver Write - * - * This callback defines the low-level means by which a device reads from the - * OTA storage device. - * - * @param dataToWrite A pointer to the data that will be written to the storage - * device. Ver.: always - * @param offset The address offset from the start of the storage device where - * data will be written. Ver.: always - * @param length The length of the data to be written to the storage device. - * Ver.: always - */ -bool emberAfOtaStorageDriverWriteCallback(const uint8_t * dataToWrite, uint32_t offset, uint32_t length); -/** @brief Ota Storage Finish Download - * - * This function indicates to the storage module that the download has finished. - * - * @param offset The final offset of the downloaded file (i.e. the total size) - * Ver.: always - */ -EmberAfOtaStorageStatus emberAfOtaStorageFinishDownloadCallback(uint32_t offset); -/** @brief Ota Storage Get Count - * - * This callback returns the total number of ZigBee Over-the-air upgrade images - * stored in the storage module. - * - */ -uint8_t emberAfOtaStorageGetCountCallback(void); -/** @brief Ota Storage Get Full Header - * - * This callback populates the EmberAfOtaHeader structure pointed to by the - * returnData with data about the OTA file stored in the storage module. - * - * @param id This is a pointer to the image id for the OTA file to retrieve - * information about. Ver.: always - * @param returnData This is a pointer to the location of the structure that - * will be populated with data. Ver.: always - */ -EmberAfOtaStorageStatus emberAfOtaStorageGetFullHeaderCallback(const EmberAfOtaImageId * id, EmberAfOtaHeader * returnData); -/** @brief Ota Storage Get Total Image Size - * - * This function returns the total size of the ZigBee Over-the-air file with the - * passed parameters. If no file is found with those parameters, 0 is returned. - * - * @param id A pointer to the image identifier for the OTA file to retrieve - * information for. Ver.: always - */ -uint32_t emberAfOtaStorageGetTotalImageSizeCallback(const EmberAfOtaImageId * id); -/** @brief Ota Storage Init - * - * This callback initializes the ZigBee Over-the-air storage module. - * - */ -EmberAfOtaStorageStatus emberAfOtaStorageInitCallback(void); -/** @brief Ota Storage Iterator First - * - * This callback lets you walk through the list of all OTA files by jumping to - * the first file in the list maintained by the storage module. If there is no - * file then emberAfOtaInvalidImageId is returned. - * - */ -EmberAfOtaImageId emberAfOtaStorageIteratorFirstCallback(void); -/** @brief Ota Storage Iterator Next - * - * This callback lets you walk through the list of all OTA files by jumping to - * the next file in the list maintained by the storage module. If there is no - * next file then emberAfOtaInvalidImageId is returned. - * - */ -EmberAfOtaImageId emberAfOtaStorageIteratorNextCallback(void); -/** @brief Ota Storage Read Image Data - * - * This callback reads data from the specified OTA file and returns that data to - * the caller. - * - * @param id This is a pointer to the image id for the OTA file to retrieve data - * from. Ver.: always - * @param offset This is the offset relative to the start of the image where the - * data should be read from. Ver.: always - * @param length This is the length of data that will be read. Ver.: always - * @param returnData This is a pointer to where the data read out of the file - * will be written to Ver.: always - * @param returnedLength This is a pointer to a variable where the actual length - * of data read will be written to. A short read may occur if the end of file - * was reached. Ver.: always - */ -EmberAfOtaStorageStatus emberAfOtaStorageReadImageDataCallback(const EmberAfOtaImageId * id, uint32_t offset, uint32_t length, - uint8_t * returnData, uint32_t * returnedLength); -/** @brief Ota Storage Search - * - * This callback searches through the list of all images for one that matches - * the passed parameters. On success an image identifier is returned with a - * matching image. On failure emberAfInvalidImageId is returned. - * - * @param manufacturerId The ZigBee assigned identifier of the manufacturer - * contained in the OTA image being searched for. Ver.: always - * @param imageTypeId The image type identifier contained in the OTA image being - * searched for. Ver.: always - * @param hardwareVersion This is a pointer to the hardware version that will be - * used in the search. If the pointer is NULL, hardware version will not be - * considered when searching for matching images. If it points to a value, the - * search will only consider images where that value falls between the minimum - * and maxmimum hardware version specified in the OTA file. If no hardware - * version is present in an OTA file but the other parameters match, the file - * will be considered a match Ver.: always - */ -EmberAfOtaImageId emberAfOtaStorageSearchCallback(uint16_t manufacturerId, uint16_t imageTypeId, const uint16_t * hardwareVersion); -/** @brief Ota Storage Write Temp Data - * - * This function writes to the temporary data in the storage device at the - * specified offset. It is used when downloading a raw image over the air. - * - * @param offset The location within the download image file where to write the - * data. Ver.: always - * @param length The length of data to write. Ver.: always - * @param data A pointer to the temporary data that will be written to the - * storage device. Ver.: always - */ -EmberAfOtaStorageStatus emberAfOtaStorageWriteTempDataCallback(uint32_t offset, uint32_t length, const uint8_t * data); -/** @brief Outgoing Packet Filter - * - * ** REQUIRES INCLUDING THE PACKET-HANDOFF PLUGIN ** - - This is called by - * the Packet Handoff plugin when the stack prepares to send a packet from one - * of the protocol layers specified in ::EmberZigbeePacketType. - - The - * packetType argument is one of the values of the ::EmberZigbeePacketType enum. - * If the stack receives an 802.15.4 MAC beacon, it will call this function with - * the packetType argument set to ::EMBER_ZIGBEE_PACKET_TYPE_BEACON. - - - * The implementation of this callback may alter the data contained in - * packetData, modify options and flags in the auxillary data, or consume the - * packet itself, either sending the message, or discarding it as it sees fit. - * - * @param packetType the type of packet and associated protocol layer Ver.: - * always - * @param packetData flat buffer containing the packet data associated with the - * packet type Ver.: always - * @param size_p a pointer containing the size value of the packet Ver.: always - * @param data auxillary data included with the packet Ver.: always - */ -EmberPacketAction emberAfOutgoingPacketFilterCallback(EmberZigbeePacketType packetType, uint8_t * packetData, uint8_t * size_p, - void * data); -/** @brief Partner Link Key Exchange Request - * - * This function is called by the framework on SOC platforms when a remote node - * requests a partner link key exchange. The application should return - * EMBER_SUCCESS to accept the request or any other status to reject it. On - * network coprocessor platforms, this function will not be called because the - * NCP handles partner link key exchange requests based on the binding policy. - * - * @param partner The EUI of the remote node. Ver.: always - */ -EmberZdoStatus emberAfPartnerLinkKeyExchangeRequestCallback(EmberEUI64 partner); -/** @brief Partner Link Key Exchange Response - * - * This function is called by the framework when a remote node requests a - * partner link key exchange. The application should return true to accept the - * request or false to reject it. On network coprocessor platforms, this - * function will not be called because the NCP handles partner link key exchange - * requests based on the binding policy. - * - * @param sender The EUI of the remote node. Ver.: always - * @param status The ZDO response status. Ver.: always - */ -void emberAfPartnerLinkKeyExchangeResponseCallback(EmberNodeId sender, EmberZdoStatus status); -/** @brief Performing Key Establishment - * - * This function is called by the framework to determine if the device is - * performing key establishment. The application should return true if key - * establishment is in progress. - * - */ -bool emberAfPerformingKeyEstablishmentCallback(void); -/** @brief Post Attribute Change - * - * This function is called by the application framework after it changes an - * attribute value. The value passed into this callback is the value to which - * the attribute was set by the framework. - * - * @param endpoint Ver.: always - * @param clusterId Ver.: always - * @param attributeId Ver.: always - * @param mask Ver.: always - * @param manufacturerCode Ver.: always - * @param type Ver.: always - * @param size Ver.: always - * @param value Ver.: always - */ -void emberAfPostAttributeChangeCallback(uint8_t endpoint, EmberAfClusterId clusterId, EmberAfAttributeId attributeId, uint8_t mask, - uint16_t manufacturerCode, uint8_t type, uint8_t size, uint8_t * value); -/** @brief Post Em4 Reset - * - * A callback called by application framework, and implemented by em4 plugin - * - */ -void emberAfPostEm4ResetCallback(void); -/** @brief Pre Attribute Change - * - * This function is called by the application framework before it changes an - * attribute value. The value passed into this callback is the value to which - * the attribute is to be set by the framework. The application should return - * ::EMBER_ZCL_STATUS_SUCCESS to permit the change or any other ::EmberAfStatus - * to reject it. - * - * @param endpoint Ver.: always - * @param clusterId Ver.: always - * @param attributeId Ver.: always - * @param mask Ver.: always - * @param manufacturerCode Ver.: always - * @param type Ver.: always - * @param size Ver.: always - * @param value Ver.: always - */ -EmberAfStatus emberAfPreAttributeChangeCallback(uint8_t endpoint, EmberAfClusterId clusterId, EmberAfAttributeId attributeId, - uint8_t mask, uint16_t manufacturerCode, uint8_t type, uint8_t size, - uint8_t * value); -/** @brief Pre Cli Send - * - * This function is called by the framework when it is about to pass a message - * constructed over CLI to the stack primitives for sending. If the function - * returns true it is assumed that the callback has consumed and processed the - * message. The framework will not do any further processing on the message. - - * If the function returns false then it is assumed that the callback has - * not processed the message and the framework will continue to process - * accordingly. - * - * @param apsFrame The structure containing the APS frame Ver.: always - * @param source Source Node Id Ver.: always - * @param destination Destintion Node Id Ver.: always - * @param message Pointer to the message payload Ver.: always - * @param messageLength Length of the message payload Ver.: always - */ -bool emberAfPreCliSendCallback(EmberApsFrame * apsFrame, EmberNodeId source, EmberNodeId destination, uint8_t * message, - uint16_t messageLength); -/** @brief Pre Command Received - * - * This callback is the second in the Application Framework's message processing - * chain. At this point in the processing of incoming over-the-air messages, the - * application has determined that the incoming message is a ZCL command. It - * parses enough of the message to populate an EmberAfClusterCommand struct. The - * Application Framework defines this struct value in a local scope to the - * command processing but also makes it available through a global pointer - * called emberAfCurrentCommand, in app/framework/util/util.c. When command - * processing is complete, this pointer is cleared. - * - * @param cmd Ver.: always - */ -bool emberAfPreCommandReceivedCallback(EmberAfClusterCommand * cmd); -/** @brief Pre Message Received - * - * This callback is the first in the Application Framework's message processing - * chain. The Application Framework calls it when a message has been received - * over the air but has not yet been parsed by the ZCL command-handling code. If - * you wish to parse some messages that are completely outside the ZCL - * specification or are not handled by the Application Framework's command - * handling code, you should intercept them for parsing in this callback. - - * This callback returns a Boolean value indicating whether or not the message - * has been handled. If the callback returns a value of true, then the - * Application Framework assumes that the message has been handled and it does - * nothing else with it. If the callback returns a value of false, then the - * application framework continues to process the message as it would with any - * incoming message. - Note: This callback receives a pointer to an - * incoming message struct. This struct allows the application framework to - * provide a unified interface between both Host devices, which receive their - * message through the ezspIncomingMessageHandler, and SoC devices, which - * receive their message through emberIncomingMessageHandler. - * - * @param incomingMessage Ver.: always - */ -bool emberAfPreMessageReceivedCallback(EmberAfIncomingMessage * incomingMessage); -/** @brief Pre Message Send - * - * This function is called by the framework when it is about to pass a message - * to the stack primitives for sending. This message may or may not be ZCL, - * ZDO, or some other protocol. This is called prior to - any ZigBee - * fragmentation that may be done. If the function returns true it is assumed - * the callback has consumed and processed the message. The callback must also - * set the EmberStatus status code to be passed back to the caller. The - * framework will do no further processing on the message. - If the - * function returns false then it is assumed that the callback has not processed - * the mesasge and the framework will continue to process accordingly. - * - * @param messageStruct The structure containing the parameters of the APS - * message to be sent. Ver.: always - * @param status A pointer to the status code value that will be returned to the - * caller. Ver.: always - */ -bool emberAfPreMessageSendCallback(EmberAfMessageStruct * messageStruct, EmberStatus * status); -/** @brief Pre Ncp Reset - * - * This function will be called prior to the reset of the NCP by the host. - * - */ -void emberAfPreNcpResetCallback(void); -/** @brief Pre ZDO Message Received - * - * This function passes the application an incoming ZDO message and gives the - * appictation the opportunity to handle it. By default, this callback returns - * false indicating that the incoming ZDO message has not been handled and - * should be handled by the Application Framework. - * - * @param emberNodeId Ver.: always - * @param apsFrame Ver.: always - * @param message Ver.: always - * @param length Ver.: always - */ -bool emberAfPreZDOMessageReceivedCallback(EmberNodeId emberNodeId, EmberApsFrame * apsFrame, uint8_t * message, uint16_t length); -/** @brief Read Attributes Response - * - * This function is called by the application framework when a Read Attributes - * Response command is received from an external device. The application should - * return true if the message was processed or false if it was not. - * - * @param clusterId The cluster identifier of this response. Ver.: always - * @param buffer Buffer containing the list of read attribute status records. - * Ver.: always - * @param bufLen The length in bytes of the list. Ver.: always - */ -bool emberAfReadAttributesResponseCallback(EmberAfClusterId clusterId, uint8_t * buffer, uint16_t bufLen); -/** @brief Read Reporting Configuration Command - * - * This function is called by the application framework when a Read Reporting - * Configuration command is received from an external device. The application - * should return true if the message was processed or false if it was not. - * - * @param cmd Ver.: always - */ -bool emberAfReadReportingConfigurationCommandCallback(const EmberAfClusterCommand * cmd); -/** @brief Read Reporting Configuration Response - * - * This function is called by the application framework when a Read Reporting - * Configuration Response command is received from an external device. The - * application should return true if the message was processed or false if it - * was not. - * - * @param clusterId The cluster identifier of this response. Ver.: always - * @param buffer Buffer containing the list of attribute reporting configuration - * records. Ver.: always - * @param bufLen The length in bytes of the list. Ver.: always - */ -bool emberAfReadReportingConfigurationResponseCallback(EmberAfClusterId clusterId, uint8_t * buffer, uint16_t bufLen); -/** @brief Registration Abort - * - * This callback is called when the device should abort the registration - * process. - * - */ -void emberAfRegistrationAbortCallback(void); -/** @brief Registration - * - * This callback is called when the device joins a network and the process of - * registration is complete. This callback provides a success value of true if - * the registration process was successful and a value of false if registration - * failed. - * - * @param success true if registration succeeded, false otherwise. Ver.: always - */ -void emberAfRegistrationCallback(bool success); -/** @brief Registration Start - * - * This callback is called when the device joins a network and the registration - * process should begin. The application should return EMBER_SUCCESS if the - * registration process started successfully. When registration is complete, - * the application should call emberAfRegistrationCallback with an indication of - * success or failure. - * - */ -EmberStatus emberAfRegistrationStartCallback(void); -/** @brief Remote Delete Binding Permission - * - * This function is called by the framework to request permission to service the - * remote delete binding request. Return EMBER_SUCCESS to allow request, - * anything else to disallow request. - * - * @param index index to an Ember binding table entry Ver.: always - */ -EmberStatus emberAfRemoteDeleteBindingPermissionCallback(uint8_t index); -/** @brief Remote Set Binding Permission - * - * This function is called by the framework to request permission to service the - * remote set binding request. Return EMBER_SUCCESS to allow request, anything - * else to disallow request. - * - * @param entry Ember Binding Tablet Entry Ver.: always - */ -EmberStatus emberAfRemoteSetBindingPermissionCallback(const EmberBindingTableEntry * entry); -/** @brief Remove From Current App Tasks - * - * This function is only useful to sleepy end devices. This function will - * remove the passed item from the set of tasks the application has outstanding - * (e.g. message sent requiring APS acknwoledgement). This will affect how the - * application behaves with regard to sleeping and polling. Removing the item - * from the list of outstanding tasks may allow the device to sleep longer and - * poll less frequently. If there are other outstanding tasks the system may - * still have to stay away and poll more often. - * - * @param tasks Ver.: always - */ -void emberAfRemoveFromCurrentAppTasksCallback(EmberAfApplicationTask tasks); -/** @brief Report Attributes - * - * This function is called by the application framework when a Report Attributes - * command is received from an external device. The application should return - * true if the message was processed or false if it was not. - * - * @param clusterId The cluster identifier of this command. Ver.: always - * @param buffer Buffer containing the list of attribute report records. Ver.: - * always - * @param bufLen The length in bytes of the list. Ver.: always - */ -bool emberAfReportAttributesCallback(EmberAfClusterId clusterId, uint8_t * buffer, uint16_t bufLen); -/** @brief Reporting Attribute Change - * - * This function is called by the framework when an attribute managed by the - * framework changes. The application should call this function when an - * externally-managed attribute changes. The application should use the change - * notification to inform its reporting decisions. - * - * @param endpoint Ver.: always - * @param clusterId Ver.: always - * @param attributeId Ver.: always - * @param mask Ver.: always - * @param manufacturerCode Ver.: always - * @param type Ver.: always - * @param data Ver.: always - */ -void emberAfReportingAttributeChangeCallback(uint8_t endpoint, EmberAfClusterId clusterId, EmberAfAttributeId attributeId, - uint8_t mask, uint16_t manufacturerCode, EmberAfAttributeType type, uint8_t * data); -/** @brief Scan Complete - * - * This is called by the low-level stack code when an 802.15.4 active scan - * completes. - * - * @param channel If the status indicates an error, the channel on which the - * error occurred. Otherwise it is undefined for EMBER_SUCCESS. Ver.: always - * @param status The status of the scan. Ver.: always - */ -void emberAfScanCompleteCallback(uint8_t channel, EmberStatus status); -/** @brief Scan Error - * - * This is called by the framework on behalf of the form-and-join library to - * notify the application if an error occurs while scanning. See form-and-join - * documentation for more information. - * - * @param status The status of the scan. Ver.: always - */ -void emberAfScanErrorCallback(EmberStatus status); -/** @brief Security Init - * - * This callback is called by the framework to give the application a chance to - * modify the security settings of the node during network initialization. - * Depending on the context when this callback is called, the pointer to the - * initial security state may be NULL, which means the initial security state - * can no longer be modified as the node is already operating on the network. - * - * @param state Ver.: always - * @param extended Ver.: always - * @param trustCenter Ver.: always - */ -void emberAfSecurityInitCallback(EmberInitialSecurityState * state, EmberExtendedSecurityBitmask * extended, bool trustCenter); -/** @brief Set Default Poll Control - * - * This function will set the default poll control for the current network to - * control whether or not it can long poll. - * - * @param control Ver.: always - */ -void emberAfSetDefaultPollControlCallback(EmberAfEventPollControl control); -/** @brief Set Default Sleep Control - * - * This function will set the default behavior of a sleeping device to control - * whether or not it must stay awake. A device that stays awake does not sleep - * at all. Otherwise, the device can sleep between events when appropriate. - * - * @param control Ver.: always - */ -void emberAfSetDefaultSleepControlCallback(EmberAfEventSleepControl control); -/** @brief Set Form And Join Extended Pan Id - * - * This callback is called by the framework to set the extended PAN ID used by - * the current network for forming and joining. The extended PAN ID used for - * forming and joining is not necessarily the same extended PAN ID actually in - * use on the network. - * - * @param extendedPanId Ver.: always - */ -void emberAfSetFormAndJoinExtendedPanIdCallback(const uint8_t * extendedPanId); -/** @brief Set Long Poll Interval Ms - * - * This function is only useful to end devices. This function will set the long - * poll interval (in milliseconds) for the current network. This interval is - * the maximum amount of time a child will wait between polls of its parent when - * it is not expecting data. - * - * @param longPollIntervalMs Ver.: always - */ -void emberAfSetLongPollIntervalMsCallback(uint32_t longPollIntervalMs); -/** @brief Set Long Poll Interval Qs - * - * This function is only useful to end devices. This function will set the long - * poll interval (in quarter seconds) for the current network. This interval is - * the maximum amount of time a child will wait between polls of its parent when - * it is not expecting data. - * - * @param longPollIntervalQs Ver.: always - */ -void emberAfSetLongPollIntervalQsCallback(uint32_t longPollIntervalQs); -/** @brief Set Short Poll Interval Ms - * - * This function is only useful to sleepy end devices. This function will set - * the short poll interval (in milliseconds) for the current network. This - * interval is the maximum amount of time a child will wait between polls of its - * parent when it is expecting data. - * - * @param shortPollIntervalMs Ver.: always - */ -void emberAfSetShortPollIntervalMsCallback(uint16_t shortPollIntervalMs); -/** @brief Set Short Poll Interval Qs - * - * This function is only useful to sleepy end devices. This function will set - * the short poll interval (in quarter seconds) for the current network. This - * interval is the maximum amount of time a child will wait between polls of its - * parent when it is expecting data. - * - * @param shortPollIntervalQs Ver.: always - */ -void emberAfSetShortPollIntervalQsCallback(uint16_t shortPollIntervalQs); -/** @brief Set Source Route Overhead - * - * This function is called by the framework when it has information about the - * source route overhead to a particular destination. The application may use - * this information to cache the source route overhead. - * - * @param destination The node id of the destination Ver.: always - * @param overhead The overhead in bytes Ver.: always - */ -void emberAfSetSourceRouteOverheadCallback(EmberNodeId destination, uint8_t overhead); -/** @brief Set Time - * - * This callback should be implemented, if the device has access to real time - * clock, and has an ability to update that clock. The application framework - * expects to be passed the utcTime which is the number of seconds since the - * year 2000. Default implementation does nothing. Note: This function used to - * take time in year, month, day, hour, min, sec. We have changed this to - * utcTime in order to conserve code space. - * - * @param utcTime Ver.: always - */ -void emberAfSetTimeCallback(uint32_t utcTime); -/** @brief Set Wake Timeout Bitmask - * - * This function is only useful to sleepy end devices. This function will set - * the wake timeout bitmask for the current network. The bitmask determines - * which tasks will timeout automatically and which tasks require manual removal - * from the task list. - * - * @param tasks Ver.: always - */ -void emberAfSetWakeTimeoutBitmaskCallback(EmberAfApplicationTask tasks); -/** @brief Set Wake Timeout Ms - * - * This function is only useful to sleepy end devices. This function will set - * the wake timeout (in milliseconds) for the current network. This timeout is - * the maximum amount of time a child will wait for a task in the wake bitmask - * to finish. While waiting, the device will short poll. - * - * @param wakeTimeoutMs Ver.: always - */ -void emberAfSetWakeTimeoutMsCallback(uint16_t wakeTimeoutMs); -/** @brief Set Wake Timeout Qs - * - * This function is only useful to sleepy end devices. This function will set - * the wake timeout (in quarter seconds) for the current network. This timeout - * is the maximum amount of time a child will wait for a task in the wake - * bitmask to finish. While waiting, the device will short poll. - * - * @param wakeTimeoutQs Ver.: always - */ -void emberAfSetWakeTimeoutQsCallback(uint16_t wakeTimeoutQs); -/** @brief Stack Status - * - * This function is called by the application framework from the stack status - * handler. This callbacks provides applications an opportunity to be notified - * of changes to the stack status and take appropriate action. The return code - * from this callback is ignored by the framework. The framework will always - * process the stack status after the callback returns. - * - * @param status Ver.: always - */ -bool emberAfStackStatusCallback(EmberStatus status); -/** @brief Start Move - * - * This function is called to initiate the process for a device to move (rejoin) - * to a new parent. - * - */ -bool emberAfStartMoveCallback(void); -/** @brief Start Search For Joinable Network - * - * This function is called by the framework to search for joinable networks and - * join a network. The application should return EMBER_SUCCESS if the operation - * was initiated successfully. - * - */ -EmberStatus emberAfStartSearchForJoinableNetworkCallback(void); -/** @brief Stop Move - * - * This function is called to cancel a previously scheduled move (rejoin) to a - * new parent. - * - */ -void emberAfStopMoveCallback(void); -/** @brief Trust Center Join - * - * This callback is called from within the application framework's - * implementation of emberTrustCenterJoinHandler or ezspTrustCenterJoinHandler. - * This callback provides the same arguments passed to the - * TrustCenterJoinHandler. For more information about the TrustCenterJoinHandler - * please see documentation included in stack/include/trust-center.h. - * - * @param newNodeId Ver.: always - * @param newNodeEui64 Ver.: always - * @param parentOfNewNode Ver.: always - * @param status Ver.: always - * @param decision Ver.: always - */ -void emberAfTrustCenterJoinCallback(EmberNodeId newNodeId, EmberEUI64 newNodeEui64, EmberNodeId parentOfNewNode, - EmberDeviceUpdate status, EmberJoinDecision decision); -/** @brief Trust Center Keepalive Abort - * - * This callback is called when the device should abort the trust center - * keepalive process. - * - */ -void emberAfTrustCenterKeepaliveAbortCallback(void); -/** @brief Trust Center Keepalive Update - * - * This callback is called when the device finishes registration (successfully - * or otherwise) and the trust center keepalive process must be updated. If the - * keepalive process has not been started, then it is started. Otherwise if the - * keepalive is in the process of searching for the TC, it will process the - * result of that Trust Center search operation. - * - * @param registrationComplete Ver.: always - */ -void emberAfTrustCenterKeepaliveUpdateCallback(bool registrationComplete); -/** @brief Unused Pan Id Found - * - * This is called by the framework on behalf of the form-and-join library to - * notify the application of the PAN id and channel found following a call to - * ::emberScanForUnusedPanId(). See form-and-join documentation for more - * information. - * - * @param panId Ver.: always - * @param channel Ver.: always - */ -void emberAfUnusedPanIdFoundCallback(EmberPanId panId, uint8_t channel); -/** @brief Write Attributes Response - * - * This function is called by the application framework when a Write Attributes - * Response command is received from an external device. The application should - * return true if the message was processed or false if it was not. - * - * @param clusterId The cluster identifier of this response. Ver.: always - * @param buffer Buffer containing the list of write attribute status records. - * Ver.: always - * @param bufLen The length in bytes of the list. Ver.: always - */ -bool emberAfWriteAttributesResponseCallback(EmberAfClusterId clusterId, uint8_t * buffer, uint16_t bufLen); -/** @brief Zigbee Key Establishment - * - * A callback to the application to notify it of the status of the request for a - * Link Key. - * - * @param partner partner The IEEE address of the partner device. Or all zeros - * if the Key establishment failed. Ver.: always - * @param status The status of the key establishment. Ver.: always - */ -void emberAfZigbeeKeyEstablishmentCallback(EmberEUI64 partner, EmberKeyStatus status); -/** @} END Non-Cluster Related Callbacks */ - -/** @name Basic Cluster Callbacks */ -// @{ - -/** @brief Basic Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfBasicClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Basic Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfBasicClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Basic Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfBasicClusterClientInitCallback(uint8_t endpoint); -/** @brief Basic Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfBasicClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Basic Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfBasicClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, EmberStatus status); -/** @brief Basic Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfBasicClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Basic Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfBasicClusterClientTickCallback(uint8_t endpoint); -/** @brief Basic Cluster Get Locales Supported - * - * - * - * @param startLocale Ver.: always - * @param maxLocalesRequested Ver.: always - */ -bool emberAfBasicClusterGetLocalesSupportedCallback(uint8_t * startLocale, uint8_t maxLocalesRequested); -/** @brief Basic Cluster Get Locales Supported Response - * - * - * - * @param discoveryComplete Ver.: always - * @param localeSupported Ver.: always - */ -bool emberAfBasicClusterGetLocalesSupportedResponseCallback(uint8_t discoveryComplete, uint8_t * localeSupported); -/** @brief Basic Cluster Reset To Factory Defaults - * - * - * - */ -bool emberAfBasicClusterResetToFactoryDefaultsCallback(void); -/** @brief Basic Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfBasicClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Basic Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfBasicClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Basic Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfBasicClusterServerInitCallback(uint8_t endpoint); -/** @brief Basic Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfBasicClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Basic Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfBasicClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, EmberStatus status); -/** @brief Basic Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfBasicClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Basic Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfBasicClusterServerTickCallback(uint8_t endpoint); - -/** @} END Basic Cluster Callbacks */ - -/** @name Power Configuration Cluster Callbacks */ -// @{ - -/** @brief Power Configuration Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfPowerConfigClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Power Configuration Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfPowerConfigClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Power Configuration Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfPowerConfigClusterClientInitCallback(uint8_t endpoint); -/** @brief Power Configuration Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfPowerConfigClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Power Configuration Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfPowerConfigClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Power Configuration Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfPowerConfigClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Power Configuration Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfPowerConfigClusterClientTickCallback(uint8_t endpoint); -/** @brief Power Configuration Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfPowerConfigClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Power Configuration Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfPowerConfigClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Power Configuration Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfPowerConfigClusterServerInitCallback(uint8_t endpoint); -/** @brief Power Configuration Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfPowerConfigClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Power Configuration Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfPowerConfigClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Power Configuration Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfPowerConfigClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Power Configuration Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfPowerConfigClusterServerTickCallback(uint8_t endpoint); - -/** @} END Power Configuration Cluster Callbacks */ - -/** @name Device Temperature Configuration Cluster Callbacks */ -// @{ - -/** @brief Device Temperature Configuration Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfDeviceTempClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Device Temperature Configuration Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfDeviceTempClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Device Temperature Configuration Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfDeviceTempClusterClientInitCallback(uint8_t endpoint); -/** @brief Device Temperature Configuration Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfDeviceTempClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Device Temperature Configuration Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfDeviceTempClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Device Temperature Configuration Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfDeviceTempClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Device Temperature Configuration Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfDeviceTempClusterClientTickCallback(uint8_t endpoint); -/** @brief Device Temperature Configuration Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfDeviceTempClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Device Temperature Configuration Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfDeviceTempClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Device Temperature Configuration Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfDeviceTempClusterServerInitCallback(uint8_t endpoint); -/** @brief Device Temperature Configuration Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfDeviceTempClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Device Temperature Configuration Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfDeviceTempClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Device Temperature Configuration Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfDeviceTempClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Device Temperature Configuration Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfDeviceTempClusterServerTickCallback(uint8_t endpoint); - -/** @} END Device Temperature Configuration Cluster Callbacks */ - -/** @name Identify Cluster Callbacks */ -// @{ - -/** @brief Identify Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfIdentifyClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Identify Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfIdentifyClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Identify Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfIdentifyClusterClientInitCallback(uint8_t endpoint); -/** @brief Identify Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfIdentifyClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Identify Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfIdentifyClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Identify Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfIdentifyClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Identify Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfIdentifyClusterClientTickCallback(uint8_t endpoint); -/** @brief Identify Cluster E Z Mode Invoke - * - * - * - * @param action Ver.: always - */ -bool emberAfIdentifyClusterEZModeInvokeCallback(uint8_t action); -/** @brief Identify Cluster Identify - * - * - * - * @param identifyTime Ver.: always - */ -bool emberAfIdentifyClusterIdentifyCallback(uint16_t identifyTime); -/** @brief Identify Cluster Identify Query - * - * - * - */ -bool emberAfIdentifyClusterIdentifyQueryCallback(void); -/** @brief Identify Cluster Identify Query Response - * - * - * - * @param timeout Ver.: always - */ -bool emberAfIdentifyClusterIdentifyQueryResponseCallback(uint16_t timeout); -/** @brief Identify Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfIdentifyClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Identify Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfIdentifyClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Identify Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfIdentifyClusterServerInitCallback(uint8_t endpoint); -/** @brief Identify Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfIdentifyClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Identify Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfIdentifyClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Identify Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfIdentifyClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Identify Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfIdentifyClusterServerTickCallback(uint8_t endpoint); -/** @brief Identify Cluster Trigger Effect - * - * - * - * @param effectId Ver.: always - * @param effectVariant Ver.: always - */ -bool emberAfIdentifyClusterTriggerEffectCallback(uint8_t effectId, uint8_t effectVariant); -/** @brief Identify Cluster Update Commission State - * - * - * - * @param action Ver.: always - * @param commissionStateMask Ver.: always - */ -bool emberAfIdentifyClusterUpdateCommissionStateCallback(uint8_t action, uint8_t commissionStateMask); - -/** @} END Identify Cluster Callbacks */ - -/** @name Groups Cluster Callbacks */ -// @{ - -/** @brief Groups Cluster Clear Group Table - * - * This function is called by the framework when the application should clear - * the group table. - * - * @param endpoint The endpoint. Ver.: always - */ -void emberAfGroupsClusterClearGroupTableCallback(uint8_t endpoint); -/** @brief Groups Cluster Endpoint In Group - * - * This function is called by the framework when it needs to determine if an - * endpoint is a member of a group. The application should return true if the - * endpoint is a member of the group and false otherwise. - * - * @param endpoint The endpoint. Ver.: always - * @param groupId The group identifier. Ver.: always - */ -bool emberAfGroupsClusterEndpointInGroupCallback(uint8_t endpoint, uint16_t groupId); -/** @brief Groups Cluster Add Group - * - * - * - * @param groupId Ver.: always - * @param groupName Ver.: always - */ -bool emberAfGroupsClusterAddGroupCallback(uint16_t groupId, uint8_t * groupName); -/** @brief Groups Cluster Add Group If Identifying - * - * - * - * @param groupId Ver.: always - * @param groupName Ver.: always - */ -bool emberAfGroupsClusterAddGroupIfIdentifyingCallback(uint16_t groupId, uint8_t * groupName); -/** @brief Groups Cluster Add Group Response - * - * - * - * @param status Ver.: always - * @param groupId Ver.: always - */ -bool emberAfGroupsClusterAddGroupResponseCallback(uint8_t status, uint16_t groupId); -/** @brief Groups Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfGroupsClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Groups Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfGroupsClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Groups Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfGroupsClusterClientInitCallback(uint8_t endpoint); -/** @brief Groups Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfGroupsClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Groups Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfGroupsClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Groups Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfGroupsClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Groups Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfGroupsClusterClientTickCallback(uint8_t endpoint); -/** @brief Groups Cluster Get Group Membership - * - * - * - * @param groupCount Ver.: always - * @param groupList Ver.: always - */ -bool emberAfGroupsClusterGetGroupMembershipCallback(uint8_t groupCount, uint8_t * groupList); -/** @brief Groups Cluster Get Group Membership Response - * - * - * - * @param capacity Ver.: always - * @param groupCount Ver.: always - * @param groupList Ver.: always - */ -bool emberAfGroupsClusterGetGroupMembershipResponseCallback(uint8_t capacity, uint8_t groupCount, uint8_t * groupList); -/** @brief Groups Cluster Remove All Groups - * - * - * - */ -bool emberAfGroupsClusterRemoveAllGroupsCallback(void); -/** @brief Groups Cluster Remove Group - * - * - * - * @param groupId Ver.: always - */ -bool emberAfGroupsClusterRemoveGroupCallback(uint16_t groupId); -/** @brief Groups Cluster Remove Group Response - * - * - * - * @param status Ver.: always - * @param groupId Ver.: always - */ -bool emberAfGroupsClusterRemoveGroupResponseCallback(uint8_t status, uint16_t groupId); -/** @brief Groups Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfGroupsClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Groups Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfGroupsClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Groups Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfGroupsClusterServerInitCallback(uint8_t endpoint); -/** @brief Groups Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfGroupsClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Groups Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfGroupsClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Groups Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfGroupsClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Groups Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfGroupsClusterServerTickCallback(uint8_t endpoint); -/** @brief Groups Cluster View Group - * - * - * - * @param groupId Ver.: always - */ -bool emberAfGroupsClusterViewGroupCallback(uint16_t groupId); -/** @brief Groups Cluster View Group Response - * - * - * - * @param status Ver.: always - * @param groupId Ver.: always - * @param groupName Ver.: always - */ -bool emberAfGroupsClusterViewGroupResponseCallback(uint8_t status, uint16_t groupId, uint8_t * groupName); - -/** @} END Groups Cluster Callbacks */ - -/** @name Scenes Cluster Callbacks */ -// @{ - -/** @brief Scenes Cluster ClearSceneTable - * - * This function is called by the framework when the application should clear - * the scene table. - * - * @param endpoint The endpoint. Ver.: always - */ -void emberAfScenesClusterClearSceneTableCallback(uint8_t endpoint); -/** @brief Scenes Cluster Make Invalid - * - * This function is called to invalidate the valid attribute in the Scenes - * cluster. - * - * @param endpoint Ver.: always - */ -EmberAfStatus emberAfScenesClusterMakeInvalidCallback(uint8_t endpoint); -/** @brief Scenes Cluster Recall Saved Scene - * - * This function is called by the framework when the application should recall a - * saved scene. - * - * @param endpoint The endpoint. Ver.: always - * @param groupId The group identifier. Ver.: always - * @param sceneId The scene identifier. Ver.: always - */ -EmberAfStatus emberAfScenesClusterRecallSavedSceneCallback(uint8_t endpoint, uint16_t groupId, uint8_t sceneId); -/** @brief Scenes Cluster Remove Scenes In Group - * - * This function removes the scenes from a specified group. - * - * @param endpoint Endpoint Ver.: always - * @param groupId Group ID Ver.: always - */ -void emberAfScenesClusterRemoveScenesInGroupCallback(uint8_t endpoint, uint16_t groupId); -/** @brief Scenes Cluster Add Scene - * - * - * - * @param groupId Ver.: always - * @param sceneId Ver.: always - * @param transitionTime Ver.: always - * @param sceneName Ver.: always - * @param extensionFieldSets Ver.: always - */ -bool emberAfScenesClusterAddSceneCallback(uint16_t groupId, uint8_t sceneId, uint16_t transitionTime, uint8_t * sceneName, - uint8_t * extensionFieldSets); -/** @brief Scenes Cluster Add Scene Response - * - * - * - * @param status Ver.: always - * @param groupId Ver.: always - * @param sceneId Ver.: always - */ -bool emberAfScenesClusterAddSceneResponseCallback(uint8_t status, uint16_t groupId, uint8_t sceneId); -/** @brief Scenes Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfScenesClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Scenes Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfScenesClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Scenes Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfScenesClusterClientInitCallback(uint8_t endpoint); -/** @brief Scenes Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfScenesClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Scenes Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfScenesClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Scenes Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfScenesClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Scenes Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfScenesClusterClientTickCallback(uint8_t endpoint); -/** @brief Scenes Cluster Copy Scene - * - * - * - * @param mode Ver.: always - * @param groupIdFrom Ver.: always - * @param sceneIdFrom Ver.: always - * @param groupIdTo Ver.: always - * @param sceneIdTo Ver.: always - */ -bool emberAfScenesClusterCopySceneCallback(uint8_t mode, uint16_t groupIdFrom, uint8_t sceneIdFrom, uint16_t groupIdTo, - uint8_t sceneIdTo); -/** @brief Scenes Cluster Copy Scene Response - * - * - * - * @param status Ver.: always - * @param groupIdFrom Ver.: always - * @param sceneIdFrom Ver.: always - */ -bool emberAfScenesClusterCopySceneResponseCallback(uint8_t status, uint16_t groupIdFrom, uint8_t sceneIdFrom); -/** @brief Scenes Cluster Enhanced Add Scene - * - * - * - * @param groupId Ver.: always - * @param sceneId Ver.: always - * @param transitionTime Ver.: always - * @param sceneName Ver.: always - * @param extensionFieldSets Ver.: always - */ -bool emberAfScenesClusterEnhancedAddSceneCallback(uint16_t groupId, uint8_t sceneId, uint16_t transitionTime, uint8_t * sceneName, - uint8_t * extensionFieldSets); -/** @brief Scenes Cluster Enhanced Add Scene Response - * - * - * - * @param status Ver.: always - * @param groupId Ver.: always - * @param sceneId Ver.: always - */ -bool emberAfScenesClusterEnhancedAddSceneResponseCallback(uint8_t status, uint16_t groupId, uint8_t sceneId); -/** @brief Scenes Cluster Enhanced View Scene - * - * - * - * @param groupId Ver.: always - * @param sceneId Ver.: always - */ -bool emberAfScenesClusterEnhancedViewSceneCallback(uint16_t groupId, uint8_t sceneId); -/** @brief Scenes Cluster Enhanced View Scene Response - * - * - * - * @param status Ver.: always - * @param groupId Ver.: always - * @param sceneId Ver.: always - * @param transitionTime Ver.: always - * @param sceneName Ver.: always - * @param extensionFieldSets Ver.: always - */ -bool emberAfScenesClusterEnhancedViewSceneResponseCallback(uint8_t status, uint16_t groupId, uint8_t sceneId, - uint16_t transitionTime, uint8_t * sceneName, - uint8_t * extensionFieldSets); -/** @brief Scenes Cluster Get Scene Membership - * - * - * - * @param groupId Ver.: always - */ -bool emberAfScenesClusterGetSceneMembershipCallback(uint16_t groupId); -/** @brief Scenes Cluster Get Scene Membership Response - * - * - * - * @param status Ver.: always - * @param capacity Ver.: always - * @param groupId Ver.: always - * @param sceneCount Ver.: always - * @param sceneList Ver.: always - */ -bool emberAfScenesClusterGetSceneMembershipResponseCallback(uint8_t status, uint8_t capacity, uint16_t groupId, uint8_t sceneCount, - uint8_t * sceneList); -/** @brief Scenes Cluster Recall Scene - * - * - * - * @param groupId Ver.: always - * @param sceneId Ver.: always - * @param transitionTime Ver.: since zcl-7.0-07-5123-07 - */ -bool emberAfScenesClusterRecallSceneCallback(uint16_t groupId, uint8_t sceneId, uint16_t transitionTime); -/** @brief Scenes Cluster Remove All Scenes - * - * - * - * @param groupId Ver.: always - */ -bool emberAfScenesClusterRemoveAllScenesCallback(uint16_t groupId); -/** @brief Scenes Cluster Remove All Scenes Response - * - * - * - * @param status Ver.: always - * @param groupId Ver.: always - */ -bool emberAfScenesClusterRemoveAllScenesResponseCallback(uint8_t status, uint16_t groupId); -/** @brief Scenes Cluster Remove Scene - * - * - * - * @param groupId Ver.: always - * @param sceneId Ver.: always - */ -bool emberAfScenesClusterRemoveSceneCallback(uint16_t groupId, uint8_t sceneId); -/** @brief Scenes Cluster Remove Scene Response - * - * - * - * @param status Ver.: always - * @param groupId Ver.: always - * @param sceneId Ver.: always - */ -bool emberAfScenesClusterRemoveSceneResponseCallback(uint8_t status, uint16_t groupId, uint8_t sceneId); -/** @brief Scenes Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfScenesClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Scenes Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfScenesClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Scenes Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfScenesClusterServerInitCallback(uint8_t endpoint); -/** @brief Scenes Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfScenesClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Scenes Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfScenesClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Scenes Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfScenesClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Scenes Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfScenesClusterServerTickCallback(uint8_t endpoint); -/** @brief Scenes Cluster Store Scene - * - * - * - * @param groupId Ver.: always - * @param sceneId Ver.: always - */ -bool emberAfScenesClusterStoreSceneCallback(uint16_t groupId, uint8_t sceneId); -/** @brief Scenes Cluster Store Scene Response - * - * - * - * @param status Ver.: always - * @param groupId Ver.: always - * @param sceneId Ver.: always - */ -bool emberAfScenesClusterStoreSceneResponseCallback(uint8_t status, uint16_t groupId, uint8_t sceneId); -/** @brief Scenes Cluster View Scene - * - * - * - * @param groupId Ver.: always - * @param sceneId Ver.: always - */ -bool emberAfScenesClusterViewSceneCallback(uint16_t groupId, uint8_t sceneId); -/** @brief Scenes Cluster View Scene Response - * - * - * - * @param status Ver.: always - * @param groupId Ver.: always - * @param sceneId Ver.: always - * @param transitionTime Ver.: always - * @param sceneName Ver.: always - * @param extensionFieldSets Ver.: always - */ -bool emberAfScenesClusterViewSceneResponseCallback(uint8_t status, uint16_t groupId, uint8_t sceneId, uint16_t transitionTime, - uint8_t * sceneName, uint8_t * extensionFieldSets); -/** @brief Scenes Cluster Store Current Scene - * - * This function is called by the framework when the application should store - * the current scene. If an entry already exists in the scene table with the - * same scene and group ids, the application should update the entry with the - * current scene. Otherwise, a new entry should be adde to the scene table, if - * possible. - * - * @param endpoint The endpoint. Ver.: always - * @param groupId The group identifier. Ver.: always - * @param sceneId The scene identifier. Ver.: always - */ -EmberAfStatus emberAfScenesClusterStoreCurrentSceneCallback(uint8_t endpoint, uint16_t groupId, uint8_t sceneId); - -/** @} END Scenes Cluster Callbacks */ - -/** @name On/off Cluster Callbacks */ -// @{ - -/** @brief On/off Cluster Level Control Effect - * - * This is called by the framework when the on/off cluster initiates a command - * that must effect a level control change. The implementation assumes that the - * client will handle any effect on the On/Off Cluster. - * - * @param endpoint Ver.: always - * @param newValue Ver.: always - */ -void emberAfOnOffClusterLevelControlEffectCallback(uint8_t endpoint, bool newValue); -/** @brief On/off Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfOnOffClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief On/off Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfOnOffClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief On/off Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfOnOffClusterClientInitCallback(uint8_t endpoint); -/** @brief On/off Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfOnOffClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief On/off Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfOnOffClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, EmberStatus status); -/** @brief On/off Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfOnOffClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief On/off Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfOnOffClusterClientTickCallback(uint8_t endpoint); -/** @brief On/off Cluster Off - * - * - * - */ -bool emberAfOnOffClusterOffCallback(void); -/** @brief On/off Cluster Off With Effect - * - * - * - * @param effectId Ver.: always - * @param effectVariant Ver.: always - */ -bool emberAfOnOffClusterOffWithEffectCallback(uint8_t effectId, uint8_t effectVariant); -/** @brief On/off Cluster On - * - * - * - */ -bool emberAfOnOffClusterOnCallback(void); -/** @brief On/off Cluster On With Recall Global Scene - * - * - * - */ -bool emberAfOnOffClusterOnWithRecallGlobalSceneCallback(void); -/** @brief On/off Cluster On With Timed Off - * - * - * - * @param onOffControl Ver.: always - * @param onTime Ver.: always - * @param offWaitTime Ver.: always - */ -bool emberAfOnOffClusterOnWithTimedOffCallback(uint8_t onOffControl, uint16_t onTime, uint16_t offWaitTime); -/** @brief On/off Cluster Sample Mfg Specific Off With Transition - * - * - * - */ -bool emberAfOnOffClusterSampleMfgSpecificOffWithTransitionCallback(void); -/** @brief On/off Cluster Sample Mfg Specific On With Transition2 - * - * - * - */ -bool emberAfOnOffClusterSampleMfgSpecificOnWithTransition2Callback(void); -/** @brief On/off Cluster Sample Mfg Specific On With Transition - * - * - * - */ -bool emberAfOnOffClusterSampleMfgSpecificOnWithTransitionCallback(void); -/** @brief On/off Cluster Sample Mfg Specific Toggle With Transition2 - * - * - * - */ -bool emberAfOnOffClusterSampleMfgSpecificToggleWithTransition2Callback(void); -/** @brief On/off Cluster Sample Mfg Specific Toggle With Transition - * - * - * - */ -bool emberAfOnOffClusterSampleMfgSpecificToggleWithTransitionCallback(void); -/** @brief On/off Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfOnOffClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief On/off Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfOnOffClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief On/off Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfOnOffClusterServerInitCallback(uint8_t endpoint); -/** @brief On/off Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfOnOffClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief On/off Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfOnOffClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, EmberStatus status); -/** @brief On/off Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfOnOffClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief On/off Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfOnOffClusterServerTickCallback(uint8_t endpoint); -/** @brief On/off Cluster Toggle - * - * - * - */ -bool emberAfOnOffClusterToggleCallback(void); -/** @brief On/off Cluster Set Value - * - * This function is called when the on/off value needs to be set, either through - * normal channels or as a result of a level change. - * - * @param endpoint Ver.: always - * @param command Ver.: always - * @param initiatedByLevelChange Ver.: always - */ -EmberAfStatus emberAfOnOffClusterSetValueCallback(uint8_t endpoint, uint8_t command, bool initiatedByLevelChange); -/** @brief On/off Cluster Server Post Init - * - * Following resolution of the On/Off state at startup for this endpoint, perform any - * additional initialization needed; e.g., synchronize hardware state. - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfPluginOnOffClusterServerPostInitCallback(uint8_t endpoint); - -/** @brief Activate Door Lock Callback - * This function is provided by the door lock server plugin. - * - * @param activate True if the lock should move to the locked position, - * false if it should move to the unlocked position Ver.: always - * - * @returns true if the callback was able to activate/deactivate the Lock. - */ -bool emberAfPluginDoorLockServerActivateDoorLockCallback(bool activate); - -/** @} END On/off Cluster Callbacks */ - -/** @name On/off Switch Configuration Cluster Callbacks */ -// @{ - -/** @brief On/off Switch Configuration Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfOnOffSwitchConfigClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief On/off Switch Configuration Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfOnOffSwitchConfigClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief On/off Switch Configuration Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfOnOffSwitchConfigClusterClientInitCallback(uint8_t endpoint); -/** @brief On/off Switch Configuration Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfOnOffSwitchConfigClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief On/off Switch Configuration Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfOnOffSwitchConfigClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief On/off Switch Configuration Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfOnOffSwitchConfigClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief On/off Switch Configuration Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfOnOffSwitchConfigClusterClientTickCallback(uint8_t endpoint); -/** @brief On/off Switch Configuration Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfOnOffSwitchConfigClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief On/off Switch Configuration Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfOnOffSwitchConfigClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief On/off Switch Configuration Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfOnOffSwitchConfigClusterServerInitCallback(uint8_t endpoint); -/** @brief On/off Switch Configuration Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfOnOffSwitchConfigClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief On/off Switch Configuration Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfOnOffSwitchConfigClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief On/off Switch Configuration Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfOnOffSwitchConfigClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief On/off Switch Configuration Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfOnOffSwitchConfigClusterServerTickCallback(uint8_t endpoint); - -/** @} END On/off Switch Configuration Cluster Callbacks */ - -/** @name Level Control Cluster Callbacks */ -// @{ - -/** @brief Level Control Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfLevelControlClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Level Control Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfLevelControlClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Level Control Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfLevelControlClusterClientInitCallback(uint8_t endpoint); -/** @brief Level Control Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfLevelControlClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Level Control Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfLevelControlClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Level Control Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfLevelControlClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Level Control Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfLevelControlClusterClientTickCallback(uint8_t endpoint); -/** @brief Level Control Cluster Move - * - * - * - * @param moveMode Ver.: always - * @param rate Ver.: always - * @param optionMask Ver.: since zcl6-errata-14-0129-15 - * @param optionOverride Ver.: since zcl6-errata-14-0129-15 - */ -bool emberAfLevelControlClusterMoveCallback(uint8_t moveMode, uint8_t rate, uint8_t optionMask, uint8_t optionOverride); -/** @brief Level Control Cluster Move To Level - * - * - * - * @param level Ver.: always - * @param transitionTime Ver.: always - * @param optionMask Ver.: since zcl6-errata-14-0129-15 - * @param optionOverride Ver.: since zcl6-errata-14-0129-15 - */ -bool emberAfLevelControlClusterMoveToLevelCallback(uint8_t level, uint16_t transitionTime, uint8_t optionMask, - uint8_t optionOverride); -/** @brief Level Control Cluster Move To Level With On Off - * - * - * - * @param level Ver.: always - * @param transitionTime Ver.: always - */ -bool emberAfLevelControlClusterMoveToLevelWithOnOffCallback(uint8_t level, uint16_t transitionTime); -/** @brief Level Control Cluster Move With On Off - * - * - * - * @param moveMode Ver.: always - * @param rate Ver.: always - */ -bool emberAfLevelControlClusterMoveWithOnOffCallback(uint8_t moveMode, uint8_t rate); -/** @brief Level Control Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfLevelControlClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Level Control Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfLevelControlClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Level Control Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfLevelControlClusterServerInitCallback(uint8_t endpoint); -/** @brief Level Control Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfLevelControlClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Level Control Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfLevelControlClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Level Control Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfLevelControlClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Level Control Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfLevelControlClusterServerTickCallback(uint8_t endpoint); -/** @brief Level Control Cluster Step - * - * - * - * @param stepMode Ver.: always - * @param stepSize Ver.: always - * @param transitionTime Ver.: always - * @param optionMask Ver.: since zcl6-errata-14-0129-15 - * @param optionOverride Ver.: since zcl6-errata-14-0129-15 - */ -bool emberAfLevelControlClusterStepCallback(uint8_t stepMode, uint8_t stepSize, uint16_t transitionTime, uint8_t optionMask, - uint8_t optionOverride); -/** @brief Level Control Cluster Step With On Off - * - * - * - * @param stepMode Ver.: always - * @param stepSize Ver.: always - * @param transitionTime Ver.: always - */ -bool emberAfLevelControlClusterStepWithOnOffCallback(uint8_t stepMode, uint8_t stepSize, uint16_t transitionTime); -/** @brief Level Control Cluster Stop - * - * - * - * @param optionMask Ver.: since zcl6-errata-14-0129-15 - * @param optionOverride Ver.: since zcl6-errata-14-0129-15 - */ -bool emberAfLevelControlClusterStopCallback(uint8_t optionMask, uint8_t optionOverride); -/** @brief Level Control Cluster Stop With On Off - * - * - * - */ -bool emberAfLevelControlClusterStopWithOnOffCallback(void); - -/** @} END Level Control Cluster Callbacks */ - -/** @name Alarms Cluster Callbacks */ -// @{ - -/** @brief Alarms Cluster Alarm - * - * - * - * @param alarmCode Ver.: always - * @param clusterId Ver.: always - */ -bool emberAfAlarmClusterAlarmCallback(uint8_t alarmCode, uint16_t clusterId); -/** @brief Alarms Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfAlarmClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Alarms Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfAlarmClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Alarms Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfAlarmClusterClientInitCallback(uint8_t endpoint); -/** @brief Alarms Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfAlarmClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Alarms Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfAlarmClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, EmberStatus status); -/** @brief Alarms Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfAlarmClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Alarms Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfAlarmClusterClientTickCallback(uint8_t endpoint); -/** @brief Alarms Cluster Get Alarm - * - * - * - */ -bool emberAfAlarmClusterGetAlarmCallback(void); -/** @brief Alarms Cluster Get Alarm Response - * - * - * - * @param status Ver.: always - * @param alarmCode Ver.: always - * @param clusterId Ver.: always - * @param timeStamp Ver.: always - */ -bool emberAfAlarmClusterGetAlarmResponseCallback(uint8_t status, uint8_t alarmCode, uint16_t clusterId, uint32_t timeStamp); -/** @brief Alarms Cluster Reset Alarm - * - * - * - * @param alarmCode Ver.: always - * @param clusterId Ver.: always - */ -bool emberAfAlarmClusterResetAlarmCallback(uint8_t alarmCode, uint16_t clusterId); -/** @brief Alarms Cluster Reset Alarm Log - * - * - * - */ -bool emberAfAlarmClusterResetAlarmLogCallback(void); -/** @brief Alarms Cluster Reset All Alarms - * - * - * - */ -bool emberAfAlarmClusterResetAllAlarmsCallback(void); -/** @brief Alarms Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfAlarmClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Alarms Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfAlarmClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Alarms Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfAlarmClusterServerInitCallback(uint8_t endpoint); -/** @brief Alarms Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfAlarmClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Alarms Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfAlarmClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, EmberStatus status); -/** @brief Alarms Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfAlarmClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Alarms Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfAlarmClusterServerTickCallback(uint8_t endpoint); - -/** @} END Alarms Cluster Callbacks */ - -/** @name Time Cluster Callbacks */ -// @{ - -/** @brief Time Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfTimeClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Time Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfTimeClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Time Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfTimeClusterClientInitCallback(uint8_t endpoint); -/** @brief Time Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfTimeClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Time Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfTimeClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, EmberStatus status); -/** @brief Time Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfTimeClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Time Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfTimeClusterClientTickCallback(uint8_t endpoint); -/** @brief Time Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfTimeClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Time Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfTimeClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Time Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfTimeClusterServerInitCallback(uint8_t endpoint); -/** @brief Time Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfTimeClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Time Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfTimeClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, EmberStatus status); -/** @brief Time Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfTimeClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Time Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfTimeClusterServerTickCallback(uint8_t endpoint); - -/** @} END Time Cluster Callbacks */ - -/** @name RSSI Location Cluster Callbacks */ -// @{ - -/** @brief RSSI Location Cluster Anchor Node Announce - * - * - * - * @param anchorNodeIeeeAddress Ver.: always - * @param coordinate1 Ver.: always - * @param coordinate2 Ver.: always - * @param coordinate3 Ver.: always - */ -bool emberAfRssiLocationClusterAnchorNodeAnnounceCallback(uint8_t * anchorNodeIeeeAddress, int16_t coordinate1, int16_t coordinate2, - int16_t coordinate3); -/** @brief RSSI Location Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfRssiLocationClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief RSSI Location Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfRssiLocationClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief RSSI Location Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfRssiLocationClusterClientInitCallback(uint8_t endpoint); -/** @brief RSSI Location Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfRssiLocationClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief RSSI Location Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfRssiLocationClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief RSSI Location Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfRssiLocationClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief RSSI Location Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfRssiLocationClusterClientTickCallback(uint8_t endpoint); -/** @brief RSSI Location Cluster Compact Location Data Notification - * - * - * - * @param locationType Ver.: always - * @param coordinate1 Ver.: always - * @param coordinate2 Ver.: always - * @param coordinate3 Ver.: always - * @param qualityMeasure Ver.: always - * @param locationAge Ver.: always - */ -bool emberAfRssiLocationClusterCompactLocationDataNotificationCallback(uint8_t locationType, int16_t coordinate1, - int16_t coordinate2, int16_t coordinate3, - uint8_t qualityMeasure, uint16_t locationAge); -/** @brief RSSI Location Cluster Device Configuration Response - * - * - * - * @param status Ver.: always - * @param power Ver.: always - * @param pathLossExponent Ver.: always - * @param calculationPeriod Ver.: always - * @param numberRssiMeasurements Ver.: always - * @param reportingPeriod Ver.: always - */ -bool emberAfRssiLocationClusterDeviceConfigurationResponseCallback(uint8_t status, int16_t power, uint16_t pathLossExponent, - uint16_t calculationPeriod, uint8_t numberRssiMeasurements, - uint16_t reportingPeriod); -/** @brief RSSI Location Cluster Get Device Configuration - * - * - * - * @param targetAddress Ver.: always - */ -bool emberAfRssiLocationClusterGetDeviceConfigurationCallback(uint8_t * targetAddress); -/** @brief RSSI Location Cluster Get Location Data - * - * - * - * @param flags Ver.: always - * @param numberResponses Ver.: always - * @param targetAddress Ver.: always - */ -bool emberAfRssiLocationClusterGetLocationDataCallback(uint8_t flags, uint8_t numberResponses, uint8_t * targetAddress); -/** @brief RSSI Location Cluster Location Data Notification - * - * - * - * @param locationType Ver.: always - * @param coordinate1 Ver.: always - * @param coordinate2 Ver.: always - * @param coordinate3 Ver.: always - * @param power Ver.: always - * @param pathLossExponent Ver.: always - * @param locationMethod Ver.: always - * @param qualityMeasure Ver.: always - * @param locationAge Ver.: always - */ -bool emberAfRssiLocationClusterLocationDataNotificationCallback(uint8_t locationType, int16_t coordinate1, int16_t coordinate2, - int16_t coordinate3, int16_t power, uint16_t pathLossExponent, - uint8_t locationMethod, uint8_t qualityMeasure, - uint16_t locationAge); -/** @brief RSSI Location Cluster Location Data Response - * - * - * - * @param status Ver.: always - * @param locationType Ver.: always - * @param coordinate1 Ver.: always - * @param coordinate2 Ver.: always - * @param coordinate3 Ver.: always - * @param power Ver.: always - * @param pathLossExponent Ver.: always - * @param locationMethod Ver.: always - * @param qualityMeasure Ver.: always - * @param locationAge Ver.: always - */ -bool emberAfRssiLocationClusterLocationDataResponseCallback(uint8_t status, uint8_t locationType, int16_t coordinate1, - int16_t coordinate2, int16_t coordinate3, int16_t power, - uint16_t pathLossExponent, uint8_t locationMethod, - uint8_t qualityMeasure, uint16_t locationAge); -/** @brief RSSI Location Cluster Report Rssi Measurements - * - * - * - * @param measuringDevice Ver.: always - * @param neighbors Ver.: always - * @param neighborsInfo Ver.: always - */ -bool emberAfRssiLocationClusterReportRssiMeasurementsCallback(uint8_t * measuringDevice, uint8_t neighbors, - uint8_t * neighborsInfo); -/** @brief RSSI Location Cluster Request Own Location - * - * - * - * @param blindNode Ver.: always - */ -bool emberAfRssiLocationClusterRequestOwnLocationCallback(uint8_t * blindNode); -/** @brief RSSI Location Cluster Rssi Ping - * - * - * - * @param locationType Ver.: always - */ -bool emberAfRssiLocationClusterRssiPingCallback(uint8_t locationType); -/** @brief RSSI Location Cluster Rssi Request - * - * - * - */ -bool emberAfRssiLocationClusterRssiRequestCallback(void); -/** @brief RSSI Location Cluster Rssi Response - * - * - * - * @param replyingDevice Ver.: always - * @param coordinate1 Ver.: always - * @param coordinate2 Ver.: always - * @param coordinate3 Ver.: always - * @param rssi Ver.: always - * @param numberRssiMeasurements Ver.: always - */ -bool emberAfRssiLocationClusterRssiResponseCallback(uint8_t * replyingDevice, int16_t coordinate1, int16_t coordinate2, - int16_t coordinate3, int8_t rssi, uint8_t numberRssiMeasurements); -/** @brief RSSI Location Cluster Send Pings - * - * - * - * @param targetAddress Ver.: always - * @param numberRssiMeasurements Ver.: always - * @param calculationPeriod Ver.: always - */ -bool emberAfRssiLocationClusterSendPingsCallback(uint8_t * targetAddress, uint8_t numberRssiMeasurements, - uint16_t calculationPeriod); -/** @brief RSSI Location Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfRssiLocationClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief RSSI Location Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfRssiLocationClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief RSSI Location Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfRssiLocationClusterServerInitCallback(uint8_t endpoint); -/** @brief RSSI Location Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfRssiLocationClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief RSSI Location Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfRssiLocationClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief RSSI Location Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfRssiLocationClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief RSSI Location Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfRssiLocationClusterServerTickCallback(uint8_t endpoint); -/** @brief RSSI Location Cluster Set Absolute Location - * - * - * - * @param coordinate1 Ver.: always - * @param coordinate2 Ver.: always - * @param coordinate3 Ver.: always - * @param power Ver.: always - * @param pathLossExponent Ver.: always - */ -bool emberAfRssiLocationClusterSetAbsoluteLocationCallback(int16_t coordinate1, int16_t coordinate2, int16_t coordinate3, - int16_t power, uint16_t pathLossExponent); -/** @brief RSSI Location Cluster Set Device Configuration - * - * - * - * @param power Ver.: always - * @param pathLossExponent Ver.: always - * @param calculationPeriod Ver.: always - * @param numberRssiMeasurements Ver.: always - * @param reportingPeriod Ver.: always - */ -bool emberAfRssiLocationClusterSetDeviceConfigurationCallback(int16_t power, uint16_t pathLossExponent, uint16_t calculationPeriod, - uint8_t numberRssiMeasurements, uint16_t reportingPeriod); - -/** @} END RSSI Location Cluster Callbacks */ - -/** @name Binary Input (Basic) Cluster Callbacks */ -// @{ - -/** @brief Binary Input (Basic) Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfBinaryInputBasicClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Binary Input (Basic) Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfBinaryInputBasicClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Binary Input (Basic) Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfBinaryInputBasicClusterClientInitCallback(uint8_t endpoint); -/** @brief Binary Input (Basic) Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfBinaryInputBasicClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Binary Input (Basic) Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfBinaryInputBasicClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Binary Input (Basic) Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfBinaryInputBasicClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Binary Input (Basic) Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfBinaryInputBasicClusterClientTickCallback(uint8_t endpoint); -/** @brief Binary Input (Basic) Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfBinaryInputBasicClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Binary Input (Basic) Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfBinaryInputBasicClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Binary Input (Basic) Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfBinaryInputBasicClusterServerInitCallback(uint8_t endpoint); -/** @brief Binary Input (Basic) Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfBinaryInputBasicClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Binary Input (Basic) Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfBinaryInputBasicClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Binary Input (Basic) Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfBinaryInputBasicClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Binary Input (Basic) Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfBinaryInputBasicClusterServerTickCallback(uint8_t endpoint); - -/** @} END Binary Input (Basic) Cluster Callbacks */ - -/** @name Commissioning Cluster Callbacks */ -// @{ - -/** @brief Commissioning Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfCommissioningClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Commissioning Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfCommissioningClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Commissioning Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfCommissioningClusterClientInitCallback(uint8_t endpoint); -/** @brief Commissioning Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfCommissioningClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Commissioning Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfCommissioningClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Commissioning Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfCommissioningClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Commissioning Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfCommissioningClusterClientTickCallback(uint8_t endpoint); -/** @brief Commissioning Cluster Reset Startup Parameters - * - * - * - * @param options Ver.: always - * @param index Ver.: always - */ -bool emberAfCommissioningClusterResetStartupParametersCallback(uint8_t options, uint8_t index); -/** @brief Commissioning Cluster Reset Startup Parameters Response - * - * - * - * @param status Ver.: always - */ -bool emberAfCommissioningClusterResetStartupParametersResponseCallback(uint8_t status); -/** @brief Commissioning Cluster Restart Device - * - * - * - * @param options Ver.: always - * @param delay Ver.: always - * @param jitter Ver.: always - */ -bool emberAfCommissioningClusterRestartDeviceCallback(uint8_t options, uint8_t delay, uint8_t jitter); -/** @brief Commissioning Cluster Restart Device Response - * - * - * - * @param status Ver.: always - */ -bool emberAfCommissioningClusterRestartDeviceResponseCallback(uint8_t status); -/** @brief Commissioning Cluster Restore Startup Parameters - * - * - * - * @param options Ver.: always - * @param index Ver.: always - */ -bool emberAfCommissioningClusterRestoreStartupParametersCallback(uint8_t options, uint8_t index); -/** @brief Commissioning Cluster Restore Startup Parameters Response - * - * - * - * @param status Ver.: always - */ -bool emberAfCommissioningClusterRestoreStartupParametersResponseCallback(uint8_t status); -/** @brief Commissioning Cluster Save Startup Parameters - * - * - * - * @param options Ver.: always - * @param index Ver.: always - */ -bool emberAfCommissioningClusterSaveStartupParametersCallback(uint8_t options, uint8_t index); -/** @brief Commissioning Cluster Save Startup Parameters Response - * - * - * - * @param status Ver.: always - */ -bool emberAfCommissioningClusterSaveStartupParametersResponseCallback(uint8_t status); -/** @brief Commissioning Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfCommissioningClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Commissioning Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfCommissioningClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Commissioning Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfCommissioningClusterServerInitCallback(uint8_t endpoint); -/** @brief Commissioning Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfCommissioningClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Commissioning Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfCommissioningClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Commissioning Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfCommissioningClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Commissioning Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfCommissioningClusterServerTickCallback(uint8_t endpoint); - -/** @} END Commissioning Cluster Callbacks */ - -/** @name Partition Cluster Callbacks */ -// @{ - -/** @brief Partition Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfPartitionClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Partition Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfPartitionClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Partition Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfPartitionClusterClientInitCallback(uint8_t endpoint); -/** @brief Partition Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfPartitionClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Partition Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfPartitionClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Partition Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfPartitionClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Partition Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfPartitionClusterClientTickCallback(uint8_t endpoint); -/** @brief Partition Cluster Multiple Ack - * - * - * - * @param ackOptions Ver.: always - * @param firstFrameIdAndNackList Ver.: always - */ -bool emberAfPartitionClusterMultipleAckCallback(uint8_t ackOptions, uint8_t * firstFrameIdAndNackList); -/** @brief Partition Cluster Read Handshake Param - * - * - * - * @param partitionedClusterId Ver.: always - * @param attributeList Ver.: always - */ -bool emberAfPartitionClusterReadHandshakeParamCallback(uint16_t partitionedClusterId, uint8_t * attributeList); -/** @brief Partition Cluster Read Handshake Param Response - * - * - * - * @param partitionedClusterId Ver.: always - * @param readAttributeStatusRecords Ver.: always - */ -bool emberAfPartitionClusterReadHandshakeParamResponseCallback(uint16_t partitionedClusterId, uint8_t * readAttributeStatusRecords); -/** @brief Partition Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfPartitionClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Partition Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfPartitionClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Partition Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfPartitionClusterServerInitCallback(uint8_t endpoint); -/** @brief Partition Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfPartitionClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Partition Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfPartitionClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Partition Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfPartitionClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Partition Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfPartitionClusterServerTickCallback(uint8_t endpoint); -/** @brief Partition Cluster Transfer Partitioned Frame - * - * - * - * @param fragmentationOptions Ver.: always - * @param partitionedIndicatorAndFrame Ver.: always - */ -bool emberAfPartitionClusterTransferPartitionedFrameCallback(uint8_t fragmentationOptions, uint8_t * partitionedIndicatorAndFrame); -/** @brief Partition Cluster Write Handshake Param - * - * - * - * @param partitionedClusterId Ver.: always - * @param writeAttributeRecords Ver.: always - */ -bool emberAfPartitionClusterWriteHandshakeParamCallback(uint16_t partitionedClusterId, uint8_t * writeAttributeRecords); - -/** @} END Partition Cluster Callbacks */ - -/** @name Over the Air Bootloading Cluster Callbacks */ -// @{ - -/** @brief Over the Air Bootloading Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfOtaBootloadClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Over the Air Bootloading Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfOtaBootloadClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Over the Air Bootloading Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfOtaBootloadClusterClientInitCallback(uint8_t endpoint); -/** @brief Over the Air Bootloading Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfOtaBootloadClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Over the Air Bootloading Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfOtaBootloadClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Over the Air Bootloading Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfOtaBootloadClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Over the Air Bootloading Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfOtaBootloadClusterClientTickCallback(uint8_t endpoint); -/** @brief Over the Air Bootloading Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfOtaBootloadClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Over the Air Bootloading Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfOtaBootloadClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Over the Air Bootloading Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfOtaBootloadClusterServerInitCallback(uint8_t endpoint); -/** @brief Over the Air Bootloading Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfOtaBootloadClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Over the Air Bootloading Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfOtaBootloadClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Over the Air Bootloading Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfOtaBootloadClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Over the Air Bootloading Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfOtaBootloadClusterServerTickCallback(uint8_t endpoint); - -/** @} END Over the Air Bootloading Cluster Callbacks */ - -/** @name Power Profile Cluster Callbacks */ -// @{ - -/** @brief Power Profile Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfPowerProfileClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Power Profile Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfPowerProfileClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Power Profile Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfPowerProfileClusterClientInitCallback(uint8_t endpoint); -/** @brief Power Profile Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfPowerProfileClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Power Profile Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfPowerProfileClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Power Profile Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfPowerProfileClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Power Profile Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfPowerProfileClusterClientTickCallback(uint8_t endpoint); -/** @brief Power Profile Cluster Energy Phases Schedule Notification - * - * - * - * @param powerProfileId Ver.: always - * @param numOfScheduledPhases Ver.: always - * @param scheduledPhases Ver.: always - */ -bool emberAfPowerProfileClusterEnergyPhasesScheduleNotificationCallback(uint8_t powerProfileId, uint8_t numOfScheduledPhases, - uint8_t * scheduledPhases); -/** @brief Power Profile Cluster Energy Phases Schedule Request - * - * - * - * @param powerProfileId Ver.: always - */ -bool emberAfPowerProfileClusterEnergyPhasesScheduleRequestCallback(uint8_t powerProfileId); -/** @brief Power Profile Cluster Energy Phases Schedule Response - * - * - * - * @param powerProfileId Ver.: always - * @param numOfScheduledPhases Ver.: always - * @param scheduledPhases Ver.: always - */ -bool emberAfPowerProfileClusterEnergyPhasesScheduleResponseCallback(uint8_t powerProfileId, uint8_t numOfScheduledPhases, - uint8_t * scheduledPhases); -/** @brief Power Profile Cluster Energy Phases Schedule State Notification - * - * - * - * @param powerProfileId Ver.: always - * @param numOfScheduledPhases Ver.: always - * @param scheduledPhases Ver.: always - */ -bool emberAfPowerProfileClusterEnergyPhasesScheduleStateNotificationCallback(uint8_t powerProfileId, uint8_t numOfScheduledPhases, - uint8_t * scheduledPhases); -/** @brief Power Profile Cluster Energy Phases Schedule State Request - * - * - * - * @param powerProfileId Ver.: always - */ -bool emberAfPowerProfileClusterEnergyPhasesScheduleStateRequestCallback(uint8_t powerProfileId); -/** @brief Power Profile Cluster Energy Phases Schedule State Response - * - * - * - * @param powerProfileId Ver.: always - * @param numOfScheduledPhases Ver.: always - * @param scheduledPhases Ver.: always - */ -bool emberAfPowerProfileClusterEnergyPhasesScheduleStateResponseCallback(uint8_t powerProfileId, uint8_t numOfScheduledPhases, - uint8_t * scheduledPhases); -/** @brief Power Profile Cluster Get Overall Schedule Price - * - * - * - */ -bool emberAfPowerProfileClusterGetOverallSchedulePriceCallback(void); -/** @brief Power Profile Cluster Get Overall Schedule Price Response - * - * - * - * @param currency Ver.: always - * @param price Ver.: always - * @param priceTrailingDigit Ver.: always - */ -bool emberAfPowerProfileClusterGetOverallSchedulePriceResponseCallback(uint16_t currency, uint32_t price, - uint8_t priceTrailingDigit); -/** @brief Power Profile Cluster Get Power Profile Price - * - * - * - * @param powerProfileId Ver.: always - */ -bool emberAfPowerProfileClusterGetPowerProfilePriceCallback(uint8_t powerProfileId); -/** @brief Power Profile Cluster Get Power Profile Price Extended - * - * - * - * @param options Ver.: always - * @param powerProfileId Ver.: always - * @param powerProfileStartTime Ver.: always - */ -bool emberAfPowerProfileClusterGetPowerProfilePriceExtendedCallback(uint8_t options, uint8_t powerProfileId, - uint16_t powerProfileStartTime); -/** @brief Power Profile Cluster Get Power Profile Price Extended Response - * - * - * - * @param powerProfileId Ver.: always - * @param currency Ver.: always - * @param price Ver.: always - * @param priceTrailingDigit Ver.: always - */ -bool emberAfPowerProfileClusterGetPowerProfilePriceExtendedResponseCallback(uint8_t powerProfileId, uint16_t currency, - uint32_t price, uint8_t priceTrailingDigit); -/** @brief Power Profile Cluster Get Power Profile Price Response - * - * - * - * @param powerProfileId Ver.: always - * @param currency Ver.: always - * @param price Ver.: always - * @param priceTrailingDigit Ver.: always - */ -bool emberAfPowerProfileClusterGetPowerProfilePriceResponseCallback(uint8_t powerProfileId, uint16_t currency, uint32_t price, - uint8_t priceTrailingDigit); -/** @brief Power Profile Cluster Power Profile Notification - * - * - * - * @param totalProfileNum Ver.: always - * @param powerProfileId Ver.: always - * @param numOfTransferredPhases Ver.: always - * @param transferredPhases Ver.: always - */ -bool emberAfPowerProfileClusterPowerProfileNotificationCallback(uint8_t totalProfileNum, uint8_t powerProfileId, - uint8_t numOfTransferredPhases, uint8_t * transferredPhases); -/** @brief Power Profile Cluster Power Profile Request - * - * - * - * @param powerProfileId Ver.: always - */ -bool emberAfPowerProfileClusterPowerProfileRequestCallback(uint8_t powerProfileId); -/** @brief Power Profile Cluster Power Profile Response - * - * - * - * @param totalProfileNum Ver.: always - * @param powerProfileId Ver.: always - * @param numOfTransferredPhases Ver.: always - * @param transferredPhases Ver.: always - */ -bool emberAfPowerProfileClusterPowerProfileResponseCallback(uint8_t totalProfileNum, uint8_t powerProfileId, - uint8_t numOfTransferredPhases, uint8_t * transferredPhases); -/** @brief Power Profile Cluster Power Profile Schedule Constraints Notification - * - * - * - * @param powerProfileId Ver.: always - * @param startAfter Ver.: always - * @param stopBefore Ver.: always - */ -bool emberAfPowerProfileClusterPowerProfileScheduleConstraintsNotificationCallback(uint8_t powerProfileId, uint16_t startAfter, - uint16_t stopBefore); -/** @brief Power Profile Cluster Power Profile Schedule Constraints Request - * - * - * - * @param powerProfileId Ver.: always - */ -bool emberAfPowerProfileClusterPowerProfileScheduleConstraintsRequestCallback(uint8_t powerProfileId); -/** @brief Power Profile Cluster Power Profile Schedule Constraints Response - * - * - * - * @param powerProfileId Ver.: always - * @param startAfter Ver.: always - * @param stopBefore Ver.: always - */ -bool emberAfPowerProfileClusterPowerProfileScheduleConstraintsResponseCallback(uint8_t powerProfileId, uint16_t startAfter, - uint16_t stopBefore); -/** @brief Power Profile Cluster Power Profile State Request - * - * - * - */ -bool emberAfPowerProfileClusterPowerProfileStateRequestCallback(void); -/** @brief Power Profile Cluster Power Profile State Response - * - * - * - * @param powerProfileCount Ver.: always - * @param powerProfileRecords Ver.: always - */ -bool emberAfPowerProfileClusterPowerProfileStateResponseCallback(uint8_t powerProfileCount, uint8_t * powerProfileRecords); -/** @brief Power Profile Cluster Power Profiles State Notification - * - * - * - * @param powerProfileCount Ver.: always - * @param powerProfileRecords Ver.: always - */ -bool emberAfPowerProfileClusterPowerProfilesStateNotificationCallback(uint8_t powerProfileCount, uint8_t * powerProfileRecords); -/** @brief Power Profile Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfPowerProfileClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Power Profile Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfPowerProfileClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Power Profile Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfPowerProfileClusterServerInitCallback(uint8_t endpoint); -/** @brief Power Profile Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfPowerProfileClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Power Profile Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfPowerProfileClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Power Profile Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfPowerProfileClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Power Profile Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfPowerProfileClusterServerTickCallback(uint8_t endpoint); - -/** @} END Power Profile Cluster Callbacks */ - -/** @name Appliance Control Cluster Callbacks */ -// @{ - -/** @brief Appliance Control Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfApplianceControlClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Appliance Control Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfApplianceControlClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Appliance Control Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfApplianceControlClusterClientInitCallback(uint8_t endpoint); -/** @brief Appliance Control Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfApplianceControlClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Appliance Control Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfApplianceControlClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Appliance Control Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfApplianceControlClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Appliance Control Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfApplianceControlClusterClientTickCallback(uint8_t endpoint); -/** @brief Appliance Control Cluster Execution Of A Command - * - * - * - * @param commandId Ver.: always - */ -bool emberAfApplianceControlClusterExecutionOfACommandCallback(uint8_t commandId); -/** @brief Appliance Control Cluster Overload Pause - * - * - * - */ -bool emberAfApplianceControlClusterOverloadPauseCallback(void); -/** @brief Appliance Control Cluster Overload Pause Resume - * - * - * - */ -bool emberAfApplianceControlClusterOverloadPauseResumeCallback(void); -/** @brief Appliance Control Cluster Overload Warning - * - * - * - * @param warningEvent Ver.: always - */ -bool emberAfApplianceControlClusterOverloadWarningCallback(uint8_t warningEvent); -/** @brief Appliance Control Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfApplianceControlClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Appliance Control Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfApplianceControlClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Appliance Control Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfApplianceControlClusterServerInitCallback(uint8_t endpoint); -/** @brief Appliance Control Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfApplianceControlClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Appliance Control Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfApplianceControlClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Appliance Control Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfApplianceControlClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Appliance Control Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfApplianceControlClusterServerTickCallback(uint8_t endpoint); -/** @brief Appliance Control Cluster Signal State - * - * - * - */ -bool emberAfApplianceControlClusterSignalStateCallback(void); -/** @brief Appliance Control Cluster Signal State Notification - * - * - * - * @param applianceStatus Ver.: always - * @param remoteEnableFlagsAndDeviceStatus2 Ver.: always - * @param applianceStatus2 Ver.: always - */ -bool emberAfApplianceControlClusterSignalStateNotificationCallback(uint8_t applianceStatus, - uint8_t remoteEnableFlagsAndDeviceStatus2, - uint32_t applianceStatus2); -/** @brief Appliance Control Cluster Signal State Response - * - * - * - * @param applianceStatus Ver.: always - * @param remoteEnableFlagsAndDeviceStatus2 Ver.: always - * @param applianceStatus2 Ver.: always - */ -bool emberAfApplianceControlClusterSignalStateResponseCallback(uint8_t applianceStatus, uint8_t remoteEnableFlagsAndDeviceStatus2, - uint32_t applianceStatus2); -/** @brief Appliance Control Cluster Write Functions - * - * - * - * @param functionId Ver.: always - * @param functionDataType Ver.: always - * @param functionData Ver.: always - */ -bool emberAfApplianceControlClusterWriteFunctionsCallback(uint16_t functionId, uint8_t functionDataType, uint8_t * functionData); - -/** @} END Appliance Control Cluster Callbacks */ - -/** @name Poll Control Cluster Callbacks */ -// @{ - -/** @brief Poll Control Cluster Check In - * - * - * - */ -bool emberAfPollControlClusterCheckInCallback(void); -/** @brief Poll Control Cluster Check In Response - * - * - * - * @param startFastPolling Ver.: always - * @param fastPollTimeout Ver.: always - */ -bool emberAfPollControlClusterCheckInResponseCallback(uint8_t startFastPolling, uint16_t fastPollTimeout); -/** @brief Poll Control Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfPollControlClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Poll Control Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfPollControlClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Poll Control Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfPollControlClusterClientInitCallback(uint8_t endpoint); -/** @brief Poll Control Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfPollControlClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Poll Control Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfPollControlClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Poll Control Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfPollControlClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Poll Control Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfPollControlClusterClientTickCallback(uint8_t endpoint); -/** @brief Poll Control Cluster Fast Poll Stop - * - * - * - */ -bool emberAfPollControlClusterFastPollStopCallback(void); -/** @brief Poll Control Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfPollControlClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Poll Control Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfPollControlClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Poll Control Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfPollControlClusterServerInitCallback(uint8_t endpoint); -/** @brief Poll Control Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfPollControlClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Poll Control Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfPollControlClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Poll Control Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfPollControlClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Poll Control Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfPollControlClusterServerTickCallback(uint8_t endpoint); -/** @brief Poll Control Cluster Set Long Poll Interval - * - * - * - * @param newLongPollInterval Ver.: always - */ -bool emberAfPollControlClusterSetLongPollIntervalCallback(uint32_t newLongPollInterval); -/** @brief Poll Control Cluster Set Short Poll Interval - * - * - * - * @param newShortPollInterval Ver.: always - */ -bool emberAfPollControlClusterSetShortPollIntervalCallback(uint16_t newShortPollInterval); - -/** @} END Poll Control Cluster Callbacks */ - -/** @name Green Power Cluster Callbacks */ -// @{ - -/** @brief Green Power Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfGreenPowerClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Green Power Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfGreenPowerClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Green Power Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfGreenPowerClusterClientInitCallback(uint8_t endpoint); -/** @brief Green Power Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfGreenPowerClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Green Power Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfGreenPowerClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Green Power Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfGreenPowerClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Green Power Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfGreenPowerClusterClientTickCallback(uint8_t endpoint); -/** @brief Green Power Cluster Gp Commissioning Notification - * - * - * - * @param options Ver.: since gp-1.0-09-5499-24 - * @param gpdSrcId Ver.: since gp-1.0-09-5499-24 - * @param gpdIeee Ver.: since gp-1.0-09-5499-24 - * @param endpoint Ver.: since gp-1.0-09-5499-24 - * @param gpdSecurityFrameCounter Ver.: since gp-1.0-09-5499-24 - * @param gpdCommandId Ver.: since gp-1.0-09-5499-24 - * @param gpdCommandPayload Ver.: since gp-1.0-09-5499-24 - * @param gppShortAddress Ver.: since gp-1.0-09-5499-24 - * @param gppLink Ver.: since gp-1.0-09-5499-24 - * @param mic Ver.: since gp-1.0-09-5499-24 - */ -bool emberAfGreenPowerClusterGpCommissioningNotificationCallback(uint16_t options, uint32_t gpdSrcId, uint8_t * gpdIeee, - uint8_t endpoint, uint32_t gpdSecurityFrameCounter, - uint8_t gpdCommandId, uint8_t * gpdCommandPayload, - uint16_t gppShortAddress, uint8_t gppLink, uint32_t mic); -/** @brief Green Power Cluster Gp Notification - * - * - * - * @param options Ver.: since gp-1.0-09-5499-24 - * @param gpdSrcId Ver.: since gp-1.0-09-5499-24 - * @param gpdIeee Ver.: since gp-1.0-09-5499-24 - * @param gpdEndpoint Ver.: since gp-1.0-09-5499-24 - * @param gpdSecurityFrameCounter Ver.: since gp-1.0-09-5499-24 - * @param gpdCommandId Ver.: since gp-1.0-09-5499-24 - * @param gpdCommandPayload Ver.: since gp-1.0-09-5499-24 - * @param gppShortAddress Ver.: since gp-1.0-09-5499-24 - * @param gppDistance Ver.: since gp-1.0-09-5499-24 - */ -bool emberAfGreenPowerClusterGpNotificationCallback(uint16_t options, uint32_t gpdSrcId, uint8_t * gpdIeee, uint8_t gpdEndpoint, - uint32_t gpdSecurityFrameCounter, uint8_t gpdCommandId, - uint8_t * gpdCommandPayload, uint16_t gppShortAddress, uint8_t gppDistance); -/** @brief Green Power Cluster Gp Notification Response - * - * - * - * @param options Ver.: since gp-1.0-09-5499-24 - * @param gpdSrcId Ver.: since gp-1.0-09-5499-24 - * @param gpdIeee Ver.: since gp-1.0-09-5499-24 - * @param endpoint Ver.: since gp-1.0-09-5499-24 - * @param gpdSecurityFrameCounter Ver.: since gp-1.0-09-5499-24 - */ -bool emberAfGreenPowerClusterGpNotificationResponseCallback(uint8_t options, uint32_t gpdSrcId, uint8_t * gpdIeee, uint8_t endpoint, - uint32_t gpdSecurityFrameCounter); -/** @brief Green Power Cluster Gp Pairing - * - * - * - * @param options Ver.: since gp-1.0-09-5499-24 - * @param gpdSrcId Ver.: since gp-1.0-09-5499-24 - * @param gpdIeee Ver.: since gp-1.0-09-5499-24 - * @param endpoint Ver.: since gp-1.0-09-5499-24 - * @param sinkIeeeAddress Ver.: since gp-1.0-09-5499-24 - * @param sinkNwkAddress Ver.: since gp-1.0-09-5499-24 - * @param sinkGroupId Ver.: since gp-1.0-09-5499-24 - * @param deviceId Ver.: since gp-1.0-09-5499-24 - * @param gpdSecurityFrameCounter Ver.: since gp-1.0-09-5499-24 - * @param gpdKey Ver.: since gp-1.0-09-5499-24 - * @param assignedAlias Ver.: since gp-1.0-09-5499-24 - * @param groupcastRadius Ver.: since gp-1.0-09-5499-24 - */ -bool emberAfGreenPowerClusterGpPairingCallback(uint32_t options, uint32_t gpdSrcId, uint8_t * gpdIeee, uint8_t endpoint, - uint8_t * sinkIeeeAddress, uint16_t sinkNwkAddress, uint16_t sinkGroupId, - uint8_t deviceId, uint32_t gpdSecurityFrameCounter, uint8_t * gpdKey, - uint16_t assignedAlias, uint8_t groupcastRadius); -/** @brief Green Power Cluster Gp Pairing Configuration - * - * - * - * @param actions Ver.: since gp-1.0-09-5499-24 - * @param options Ver.: since gp-1.0-09-5499-24 - * @param gpdSrcId Ver.: since gp-1.0-09-5499-24 - * @param gpdIeee Ver.: since gp-1.0-09-5499-24 - * @param endpoint Ver.: since gp-1.0-09-5499-24 - * @param deviceId Ver.: since gp-1.0-09-5499-24 - * @param groupListCount Ver.: since gp-1.0-09-5499-24 - * @param groupList Ver.: since gp-1.0-09-5499-24 - * @param gpdAssignedAlias Ver.: since gp-1.0-09-5499-24 - * @param groupcastRadius Ver.: since gp-1.0-15-2014-05-CCB2180 - * @param securityOptions Ver.: since gp-1.0-09-5499-24 - * @param gpdSecurityFrameCounter Ver.: since gp-1.0-09-5499-24 - * @param gpdSecurityKey Ver.: since gp-1.0-09-5499-24 - * @param numberOfPairedEndpoints Ver.: since gp-1.0-09-5499-24 - * @param pairedEndpoints Ver.: since gp-1.0-09-5499-24 - * @param applicationInformation Ver.: always - * @param manufacturerId Ver.: always - * @param modeId Ver.: always - * @param numberOfGpdCommands Ver.: always - * @param gpdCommandIdList Ver.: always - * @param clusterIdListCount Ver.: always - * @param clusterListServer Ver.: always - * @param clusterListClient Ver.: always - * @param switchInformationLength Ver.: always - * @param switchConfiguration Ver.: always - * @param currentContactStatus Ver.: always - * @param totalNumberOfReports Ver.: always - * @param numberOfReports Ver.: always - * @param reportDescriptor Ver.: always - */ -bool emberAfGreenPowerClusterGpPairingConfigurationCallback( - uint8_t actions, uint16_t options, uint32_t gpdSrcId, uint8_t * gpdIeee, uint8_t endpoint, uint8_t deviceId, - uint8_t groupListCount, uint8_t * groupList, uint16_t gpdAssignedAlias, uint8_t groupcastRadius, uint8_t securityOptions, - uint32_t gpdSecurityFrameCounter, uint8_t * gpdSecurityKey, uint8_t numberOfPairedEndpoints, uint8_t * pairedEndpoints, - uint8_t applicationInformation, uint16_t manufacturerId, uint16_t modeId, uint8_t numberOfGpdCommands, - uint8_t * gpdCommandIdList, uint8_t clusterIdListCount, uint8_t * clusterListServer, uint8_t * clusterListClient, - uint8_t switchInformationLength, uint8_t switchConfiguration, uint8_t currentContactStatus, uint8_t totalNumberOfReports, - uint8_t numberOfReports, uint8_t * reportDescriptor); -/** @brief Green Power Cluster Gp Pairing Search - * - * - * - * @param options Ver.: since gp-1.0-09-5499-24 - * @param gpdSrcId Ver.: since gp-1.0-09-5499-24 - * @param gpdIeee Ver.: since gp-1.0-09-5499-24 - * @param endpoint Ver.: always - */ -bool emberAfGreenPowerClusterGpPairingSearchCallback(uint16_t options, uint32_t gpdSrcId, uint8_t * gpdIeee, uint8_t endpoint); -/** @brief Green Power Cluster Gp Proxy Commissioning Mode - * - * - * - * @param options Ver.: since gp-1.0-09-5499-24 - * @param commissioningWindow Ver.: since gp-1.0-15-02014-011 - * @param channel Ver.: since gp-1.0-09-5499-24 - */ -bool emberAfGreenPowerClusterGpProxyCommissioningModeCallback(uint8_t options, uint16_t commissioningWindow, uint8_t channel); -/** @brief Green Power Cluster Gp Proxy Table Request - * - * - * - * @param options Ver.: always - * @param gpdSrcId Ver.: always - * @param gpdIeee Ver.: always - * @param endpoint Ver.: always - * @param index Ver.: always - */ -bool emberAfGreenPowerClusterGpProxyTableRequestCallback(uint8_t options, uint32_t gpdSrcId, uint8_t * gpdIeee, uint8_t endpoint, - uint8_t index); -/** @brief Green Power Cluster Gp Proxy Table Response - * - * - * - * @param status Ver.: always - * @param totalNumberOfNonEmptyProxyTableEntries Ver.: always - * @param startIndex Ver.: always - * @param entriesCount Ver.: always - * @param proxyTableEntries Ver.: always - */ -bool emberAfGreenPowerClusterGpProxyTableResponseCallback(uint8_t status, uint8_t totalNumberOfNonEmptyProxyTableEntries, - uint8_t startIndex, uint8_t entriesCount, uint8_t * proxyTableEntries); -/** @brief Green Power Cluster Gp Response - * - * - * - * @param options Ver.: since gp-1.0-09-5499-24 - * @param tempMasterShortAddress Ver.: since gp-1.0-09-5499-24 - * @param tempMasterTxChannel Ver.: since gp-1.0-09-5499-24 - * @param gpdSrcId Ver.: since gp-1.0-09-5499-24 - * @param gpdIeee Ver.: since gp-1.0-09-5499-24 - * @param endpoint Ver.: always - * @param gpdCommandId Ver.: since gp-1.0-09-5499-24 - * @param gpdCommandPayload Ver.: always - */ -bool emberAfGreenPowerClusterGpResponseCallback(uint8_t options, uint16_t tempMasterShortAddress, uint8_t tempMasterTxChannel, - uint32_t gpdSrcId, uint8_t * gpdIeee, uint8_t endpoint, uint8_t gpdCommandId, - uint8_t * gpdCommandPayload); -/** @brief Green Power Cluster Gp Sink Commissioning Mode - * - * - * - * @param options Ver.: always - * @param gpmAddrForSecurity Ver.: always - * @param gpmAddrForPairing Ver.: always - * @param sinkEndpoint Ver.: always - */ -bool emberAfGreenPowerClusterGpSinkCommissioningModeCallback(uint8_t options, uint16_t gpmAddrForSecurity, - uint16_t gpmAddrForPairing, uint8_t sinkEndpoint); -/** @brief Green Power Cluster Gp Sink Table Request - * - * - * - * @param options Ver.: always - * @param gpdSrcId Ver.: always - * @param gpdIeee Ver.: always - * @param endpoint Ver.: always - * @param index Ver.: always - */ -bool emberAfGreenPowerClusterGpSinkTableRequestCallback(uint8_t options, uint32_t gpdSrcId, uint8_t * gpdIeee, uint8_t endpoint, - uint8_t index); -/** @brief Green Power Cluster Gp Sink Table Response - * - * - * - * @param status Ver.: always - * @param totalNumberofNonEmptySinkTableEntries Ver.: always - * @param startIndex Ver.: always - * @param sinkTableEntriesCount Ver.: always - * @param sinkTableEntries Ver.: always - */ -bool emberAfGreenPowerClusterGpSinkTableResponseCallback(uint8_t status, uint8_t totalNumberofNonEmptySinkTableEntries, - uint8_t startIndex, uint8_t sinkTableEntriesCount, - uint8_t * sinkTableEntries); -/** @brief Green Power Cluster Gp Translation Table Request - * - * - * - * @param startIndex Ver.: since gp-1.0-09-5499-24 - */ -bool emberAfGreenPowerClusterGpTranslationTableRequestCallback(uint8_t startIndex); -/** @brief Green Power Cluster Gp Translation Table Response - * - * - * - * @param status Ver.: since gp-1.0-09-5499-24 - * @param options Ver.: since gp-1.0-09-5499-24 - * @param totalNumberOfEntries Ver.: since gp-1.0-09-5499-24 - * @param startIndex Ver.: since gp-1.0-09-5499-24 - * @param entriesCount Ver.: since gp-1.0-09-5499-24 - * @param translationTableList Ver.: since gp-1.0-09-5499-24 - */ -bool emberAfGreenPowerClusterGpTranslationTableResponseCallback(uint8_t status, uint8_t options, uint8_t totalNumberOfEntries, - uint8_t startIndex, uint8_t entriesCount, - uint8_t * translationTableList); -/** @brief Green Power Cluster Gp Translation Table Update - * - * - * - * @param options Ver.: since gp-1.0-09-5499-24 - * @param gpdSrcId Ver.: since gp-1.0-09-5499-24 - * @param gpdIeee Ver.: since gp-1.0-09-5499-24 - * @param endpoint Ver.: since gp-1.0-09-5499-24 - * @param translations Ver.: since gp-1.0-09-5499-24 - */ -bool emberAfGreenPowerClusterGpTranslationTableUpdateCallback(uint16_t options, uint32_t gpdSrcId, uint8_t * gpdIeee, - uint8_t endpoint, uint8_t * translations); -/** @brief Green Power Cluster Gp Tunneling Stop - * - * - * - * @param options Ver.: since gp-1.0-09-5499-24 - * @param gpdSrcId Ver.: since gp-1.0-09-5499-24 - * @param gpdIeee Ver.: since gp-1.0-09-5499-24 - * @param endpoint Ver.: since gp-1.0-09-5499-24 - * @param gpdSecurityFrameCounter Ver.: since gp-1.0-09-5499-24 - * @param gppShortAddress Ver.: since gp-1.0-09-5499-24 - * @param gppDistance Ver.: since gp-1.0-09-5499-24 - */ -bool emberAfGreenPowerClusterGpTunnelingStopCallback(uint8_t options, uint32_t gpdSrcId, uint8_t * gpdIeee, uint8_t endpoint, - uint32_t gpdSecurityFrameCounter, uint16_t gppShortAddress, - int8_t gppDistance); -/** @brief Green Power Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfGreenPowerClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Green Power Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfGreenPowerClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Green Power Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfGreenPowerClusterServerInitCallback(uint8_t endpoint); -/** @brief Green Power Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfGreenPowerClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Green Power Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfGreenPowerClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Green Power Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfGreenPowerClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Green Power Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfGreenPowerClusterServerTickCallback(uint8_t endpoint); - -/** @} END Green Power Cluster Callbacks */ - -/** @name Keep-Alive Cluster Callbacks */ -// @{ - -/** @brief Keep-Alive Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfKeepaliveClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Keep-Alive Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfKeepaliveClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Keep-Alive Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfKeepaliveClusterClientInitCallback(uint8_t endpoint); -/** @brief Keep-Alive Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfKeepaliveClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Keep-Alive Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfKeepaliveClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Keep-Alive Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfKeepaliveClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Keep-Alive Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfKeepaliveClusterClientTickCallback(uint8_t endpoint); -/** @brief Keep-Alive Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfKeepaliveClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Keep-Alive Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfKeepaliveClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Keep-Alive Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfKeepaliveClusterServerInitCallback(uint8_t endpoint); -/** @brief Keep-Alive Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfKeepaliveClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Keep-Alive Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfKeepaliveClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Keep-Alive Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfKeepaliveClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Keep-Alive Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfKeepaliveClusterServerTickCallback(uint8_t endpoint); - -/** @} END Keep-Alive Cluster Callbacks */ - -/** @name Shade Configuration Cluster Callbacks */ -// @{ - -/** @brief Shade Configuration Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfShadeConfigClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Shade Configuration Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfShadeConfigClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Shade Configuration Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfShadeConfigClusterClientInitCallback(uint8_t endpoint); -/** @brief Shade Configuration Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfShadeConfigClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Shade Configuration Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfShadeConfigClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Shade Configuration Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfShadeConfigClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Shade Configuration Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfShadeConfigClusterClientTickCallback(uint8_t endpoint); -/** @brief Shade Configuration Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfShadeConfigClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Shade Configuration Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfShadeConfigClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Shade Configuration Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfShadeConfigClusterServerInitCallback(uint8_t endpoint); -/** @brief Shade Configuration Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfShadeConfigClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Shade Configuration Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfShadeConfigClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Shade Configuration Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfShadeConfigClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Shade Configuration Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfShadeConfigClusterServerTickCallback(uint8_t endpoint); - -/** @} END Shade Configuration Cluster Callbacks */ - -/** @name Door Lock Cluster Callbacks */ -// @{ - -/** @brief Door Lock Cluster Clear All Pins - * - * - * - */ -bool emberAfDoorLockClusterClearAllPinsCallback(void); -/** @brief Door Lock Cluster Clear All Pins Response - * - * - * - * @param status Ver.: always - */ -bool emberAfDoorLockClusterClearAllPinsResponseCallback(uint8_t status); -/** @brief Door Lock Cluster Clear All Rfids - * - * - * - */ -bool emberAfDoorLockClusterClearAllRfidsCallback(void); -/** @brief Door Lock Cluster Clear All Rfids Response - * - * - * - * @param status Ver.: always - */ -bool emberAfDoorLockClusterClearAllRfidsResponseCallback(uint8_t status); -/** @brief Door Lock Cluster Clear Holiday Schedule - * - * - * - * @param scheduleId Ver.: always - */ -bool emberAfDoorLockClusterClearHolidayScheduleCallback(uint8_t scheduleId); -/** @brief Door Lock Cluster Clear Holiday Schedule Response - * - * - * - * @param status Ver.: always - */ -bool emberAfDoorLockClusterClearHolidayScheduleResponseCallback(uint8_t status); -/** @brief Door Lock Cluster Clear Pin - * - * - * - * @param userId Ver.: always - */ -bool emberAfDoorLockClusterClearPinCallback(uint16_t userId); -/** @brief Door Lock Cluster Clear Pin Response - * - * - * - * @param status Ver.: always - */ -bool emberAfDoorLockClusterClearPinResponseCallback(uint8_t status); -/** @brief Door Lock Cluster Clear Rfid - * - * - * - * @param userId Ver.: always - */ -bool emberAfDoorLockClusterClearRfidCallback(uint16_t userId); -/** @brief Door Lock Cluster Clear Rfid Response - * - * - * - * @param status Ver.: always - */ -bool emberAfDoorLockClusterClearRfidResponseCallback(uint8_t status); -/** @brief Door Lock Cluster Clear Weekday Schedule - * - * - * - * @param scheduleId Ver.: always - * @param userId Ver.: always - */ -bool emberAfDoorLockClusterClearWeekdayScheduleCallback(uint8_t scheduleId, uint16_t userId); -/** @brief Door Lock Cluster Clear Weekday Schedule Response - * - * - * - * @param status Ver.: always - */ -bool emberAfDoorLockClusterClearWeekdayScheduleResponseCallback(uint8_t status); -/** @brief Door Lock Cluster Clear Yearday Schedule - * - * - * - * @param scheduleId Ver.: always - * @param userId Ver.: always - */ -bool emberAfDoorLockClusterClearYeardayScheduleCallback(uint8_t scheduleId, uint16_t userId); -/** @brief Door Lock Cluster Clear Yearday Schedule Response - * - * - * - * @param status Ver.: always - */ -bool emberAfDoorLockClusterClearYeardayScheduleResponseCallback(uint8_t status); -/** @brief Door Lock Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfDoorLockClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Door Lock Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfDoorLockClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Door Lock Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfDoorLockClusterClientInitCallback(uint8_t endpoint); -/** @brief Door Lock Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfDoorLockClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Door Lock Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfDoorLockClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Door Lock Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfDoorLockClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Door Lock Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfDoorLockClusterClientTickCallback(uint8_t endpoint); -/** @brief Door Lock Cluster Get Holiday Schedule - * - * - * - * @param scheduleId Ver.: always - */ -bool emberAfDoorLockClusterGetHolidayScheduleCallback(uint8_t scheduleId); -/** @brief Door Lock Cluster Get Holiday Schedule Response - * - * - * - * @param scheduleId Ver.: always - * @param status Ver.: always - * @param localStartTime Ver.: since ha-1.2-05-3520-29 - * @param localEndTime Ver.: since ha-1.2-05-3520-29 - * @param operatingModeDuringHoliday Ver.: since ha-1.2-05-3520-29 - */ -bool emberAfDoorLockClusterGetHolidayScheduleResponseCallback(uint8_t scheduleId, uint8_t status, uint32_t localStartTime, - uint32_t localEndTime, uint8_t operatingModeDuringHoliday); -/** @brief Door Lock Cluster Get Log Record - * - * - * - * @param logIndex Ver.: always - */ -bool emberAfDoorLockClusterGetLogRecordCallback(uint16_t logIndex); -/** @brief Door Lock Cluster Get Log Record Response - * - * - * - * @param logEntryId Ver.: always - * @param timestamp Ver.: always - * @param eventType Ver.: always - * @param source Ver.: always - * @param eventIdOrAlarmCode Ver.: always - * @param userId Ver.: always - * @param pin Ver.: always - */ -bool emberAfDoorLockClusterGetLogRecordResponseCallback(uint16_t logEntryId, uint32_t timestamp, uint8_t eventType, uint8_t source, - uint8_t eventIdOrAlarmCode, uint16_t userId, uint8_t * pin); -/** @brief Door Lock Cluster Get Pin - * - * - * - * @param userId Ver.: always - */ -bool emberAfDoorLockClusterGetPinCallback(uint16_t userId); -/** @brief Door Lock Cluster Get Pin Response - * - * - * - * @param userId Ver.: always - * @param userStatus Ver.: always - * @param userType Ver.: always - * @param pin Ver.: always - */ -bool emberAfDoorLockClusterGetPinResponseCallback(uint16_t userId, uint8_t userStatus, uint8_t userType, uint8_t * pin); -/** @brief Door Lock Cluster Get Rfid - * - * - * - * @param userId Ver.: always - */ -bool emberAfDoorLockClusterGetRfidCallback(uint16_t userId); -/** @brief Door Lock Cluster Get Rfid Response - * - * - * - * @param userId Ver.: always - * @param userStatus Ver.: always - * @param userType Ver.: always - * @param rfid Ver.: always - */ -bool emberAfDoorLockClusterGetRfidResponseCallback(uint16_t userId, uint8_t userStatus, uint8_t userType, uint8_t * rfid); -/** @brief Door Lock Cluster Get User Status - * - * - * - * @param userId Ver.: always - */ -bool emberAfDoorLockClusterGetUserStatusCallback(uint16_t userId); -/** @brief Door Lock Cluster Get User Status Response - * - * - * - * @param userId Ver.: always - * @param status Ver.: always - */ -bool emberAfDoorLockClusterGetUserStatusResponseCallback(uint16_t userId, uint8_t status); -/** @brief Door Lock Cluster Get User Type - * - * - * - * @param userId Ver.: always - */ -bool emberAfDoorLockClusterGetUserTypeCallback(uint16_t userId); -/** @brief Door Lock Cluster Get User Type Response - * - * - * - * @param userId Ver.: always - * @param userType Ver.: always - */ -bool emberAfDoorLockClusterGetUserTypeResponseCallback(uint16_t userId, uint8_t userType); -/** @brief Door Lock Cluster Get Weekday Schedule - * - * - * - * @param scheduleId Ver.: always - * @param userId Ver.: always - */ -bool emberAfDoorLockClusterGetWeekdayScheduleCallback(uint8_t scheduleId, uint16_t userId); -/** @brief Door Lock Cluster Get Weekday Schedule Response - * - * - * - * @param scheduleId Ver.: always - * @param userId Ver.: always - * @param status Ver.: always - * @param daysMask Ver.: since ha-1.2-05-3520-29 - * @param startHour Ver.: since ha-1.2-05-3520-29 - * @param startMinute Ver.: since ha-1.2-05-3520-29 - * @param endHour Ver.: since ha-1.2-05-3520-29 - * @param endMinute Ver.: since ha-1.2-05-3520-29 - */ -bool emberAfDoorLockClusterGetWeekdayScheduleResponseCallback(uint8_t scheduleId, uint16_t userId, uint8_t status, uint8_t daysMask, - uint8_t startHour, uint8_t startMinute, uint8_t endHour, - uint8_t endMinute); -/** @brief Door Lock Cluster Get Yearday Schedule - * - * - * - * @param scheduleId Ver.: always - * @param userId Ver.: always - */ -bool emberAfDoorLockClusterGetYeardayScheduleCallback(uint8_t scheduleId, uint16_t userId); -/** @brief Door Lock Cluster Get Yearday Schedule Response - * - * - * - * @param scheduleId Ver.: always - * @param userId Ver.: always - * @param status Ver.: always - * @param localStartTime Ver.: since ha-1.2-05-3520-29 - * @param localEndTime Ver.: since ha-1.2-05-3520-29 - */ -bool emberAfDoorLockClusterGetYeardayScheduleResponseCallback(uint8_t scheduleId, uint16_t userId, uint8_t status, - uint32_t localStartTime, uint32_t localEndTime); -/** @brief Door Lock Cluster Lock Door - * - * - * - * @param PIN Ver.: since ha-1.2-05-3520-29 - */ -bool emberAfDoorLockClusterLockDoorCallback(uint8_t * PIN); -/** @brief Door Lock Cluster Lock Door Response - * - * - * - * @param status Ver.: always - */ -bool emberAfDoorLockClusterLockDoorResponseCallback(uint8_t status); -/** @brief Door Lock Cluster Operation Event Notification - * - * - * - * @param source Ver.: always - * @param eventCode Ver.: always - * @param userId Ver.: always - * @param pin Ver.: always - * @param timeStamp Ver.: always - * @param data Ver.: since ha-1.2-05-3520-29 - */ -bool emberAfDoorLockClusterOperationEventNotificationCallback(uint8_t source, uint8_t eventCode, uint16_t userId, uint8_t * pin, - uint32_t timeStamp, uint8_t * data); -/** @brief Door Lock Cluster Programming Event Notification - * - * - * - * @param source Ver.: always - * @param eventCode Ver.: always - * @param userId Ver.: always - * @param pin Ver.: always - * @param userType Ver.: always - * @param userStatus Ver.: always - * @param timeStamp Ver.: always - * @param data Ver.: since ha-1.2-05-3520-29 - */ -bool emberAfDoorLockClusterProgrammingEventNotificationCallback(uint8_t source, uint8_t eventCode, uint16_t userId, uint8_t * pin, - uint8_t userType, uint8_t userStatus, uint32_t timeStamp, - uint8_t * data); -/** @brief Door Lock Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfDoorLockClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Door Lock Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfDoorLockClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Door Lock Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfDoorLockClusterServerInitCallback(uint8_t endpoint); -/** @brief Door Lock Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfDoorLockClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Door Lock Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfDoorLockClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Door Lock Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfDoorLockClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Door Lock Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfDoorLockClusterServerTickCallback(uint8_t endpoint); -/** @brief Door Lock Cluster Set Holiday Schedule - * - * - * - * @param scheduleId Ver.: always - * @param localStartTime Ver.: always - * @param localEndTime Ver.: always - * @param operatingModeDuringHoliday Ver.: always - */ -bool emberAfDoorLockClusterSetHolidayScheduleCallback(uint8_t scheduleId, uint32_t localStartTime, uint32_t localEndTime, - uint8_t operatingModeDuringHoliday); -/** @brief Door Lock Cluster Set Holiday Schedule Response - * - * - * - * @param status Ver.: always - */ -bool emberAfDoorLockClusterSetHolidayScheduleResponseCallback(uint8_t status); -/** @brief Door Lock Cluster Set Pin - * - * - * - * @param userId Ver.: always - * @param userStatus Ver.: always - * @param userType Ver.: always - * @param pin Ver.: always - */ -bool emberAfDoorLockClusterSetPinCallback(uint16_t userId, uint8_t userStatus, uint8_t userType, uint8_t * pin); -/** @brief Door Lock Cluster Set Pin Response - * - * - * - * @param status Ver.: always - */ -bool emberAfDoorLockClusterSetPinResponseCallback(uint8_t status); -/** @brief Door Lock Cluster Set Rfid - * - * - * - * @param userId Ver.: always - * @param userStatus Ver.: always - * @param userType Ver.: always - * @param id Ver.: always - */ -bool emberAfDoorLockClusterSetRfidCallback(uint16_t userId, uint8_t userStatus, uint8_t userType, uint8_t * id); -/** @brief Door Lock Cluster Set Rfid Response - * - * - * - * @param status Ver.: always - */ -bool emberAfDoorLockClusterSetRfidResponseCallback(uint8_t status); -/** @brief Door Lock Cluster Set User Status - * - * - * - * @param userId Ver.: always - * @param userStatus Ver.: always - */ -bool emberAfDoorLockClusterSetUserStatusCallback(uint16_t userId, uint8_t userStatus); -/** @brief Door Lock Cluster Set User Status Response - * - * - * - * @param status Ver.: always - */ -bool emberAfDoorLockClusterSetUserStatusResponseCallback(uint8_t status); -/** @brief Door Lock Cluster Set User Type - * - * - * - * @param userId Ver.: always - * @param userType Ver.: always - */ -bool emberAfDoorLockClusterSetUserTypeCallback(uint16_t userId, uint8_t userType); -/** @brief Door Lock Cluster Set User Type Response - * - * - * - * @param status Ver.: always - */ -bool emberAfDoorLockClusterSetUserTypeResponseCallback(uint8_t status); -/** @brief Door Lock Cluster Set Weekday Schedule - * - * - * - * @param scheduleId Ver.: always - * @param userId Ver.: always - * @param daysMask Ver.: always - * @param startHour Ver.: always - * @param startMinute Ver.: always - * @param endHour Ver.: always - * @param endMinute Ver.: always - */ -bool emberAfDoorLockClusterSetWeekdayScheduleCallback(uint8_t scheduleId, uint16_t userId, uint8_t daysMask, uint8_t startHour, - uint8_t startMinute, uint8_t endHour, uint8_t endMinute); -/** @brief Door Lock Cluster Set Weekday Schedule Response - * - * - * - * @param status Ver.: always - */ -bool emberAfDoorLockClusterSetWeekdayScheduleResponseCallback(uint8_t status); -/** @brief Door Lock Cluster Set Yearday Schedule - * - * - * - * @param scheduleId Ver.: always - * @param userId Ver.: always - * @param localStartTime Ver.: always - * @param localEndTime Ver.: always - */ -bool emberAfDoorLockClusterSetYeardayScheduleCallback(uint8_t scheduleId, uint16_t userId, uint32_t localStartTime, - uint32_t localEndTime); -/** @brief Door Lock Cluster Set Yearday Schedule Response - * - * - * - * @param status Ver.: always - */ -bool emberAfDoorLockClusterSetYeardayScheduleResponseCallback(uint8_t status); -/** @brief Door Lock Cluster Toggle - * - * - * - * @param pin Ver.: since ha-1.2-05-3520-29 - */ -bool emberAfDoorLockClusterToggleCallback(uint8_t * pin); -/** @brief Door Lock Cluster Toggle Response - * - * - * - * @param status Ver.: always - */ -bool emberAfDoorLockClusterToggleResponseCallback(uint8_t status); -/** @brief Door Lock Cluster Unlock Door - * - * - * - * @param PIN Ver.: since ha-1.2-05-3520-29 - */ -bool emberAfDoorLockClusterUnlockDoorCallback(uint8_t * PIN); -/** @brief Door Lock Cluster Unlock Door Response - * - * - * - * @param status Ver.: always - */ -bool emberAfDoorLockClusterUnlockDoorResponseCallback(uint8_t status); -/** @brief Door Lock Cluster Unlock With Timeout - * - * - * - * @param timeoutInSeconds Ver.: always - * @param pin Ver.: since ha-1.2-05-3520-29 - */ -bool emberAfDoorLockClusterUnlockWithTimeoutCallback(uint16_t timeoutInSeconds, uint8_t * pin); -/** @brief Door Lock Cluster Unlock With Timeout Response - * - * - * - * @param status Ver.: always - */ -bool emberAfDoorLockClusterUnlockWithTimeoutResponseCallback(uint8_t status); - -/** @} END Door Lock Cluster Callbacks */ - -/** @name Window Covering Cluster Callbacks */ -// @{ - -/** @brief Window Covering Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfWindowCoveringClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Window Covering Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfWindowCoveringClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Window Covering Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfWindowCoveringClusterClientInitCallback(uint8_t endpoint); -/** @brief Window Covering Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfWindowCoveringClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Window Covering Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfWindowCoveringClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Window Covering Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfWindowCoveringClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Window Covering Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfWindowCoveringClusterClientTickCallback(uint8_t endpoint); -/** @brief Window Covering Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfWindowCoveringClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Window Covering Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfWindowCoveringClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Window Covering Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfWindowCoveringClusterServerInitCallback(uint8_t endpoint); -/** @brief Window Covering Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfWindowCoveringClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Window Covering Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfWindowCoveringClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Window Covering Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfWindowCoveringClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Window Covering Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfWindowCoveringClusterServerTickCallback(uint8_t endpoint); -/** @brief Window Covering Cluster Window Covering Down Close - * - * - * - */ -bool emberAfWindowCoveringClusterWindowCoveringDownCloseCallback(void); -/** @brief Window Covering Cluster Window Covering Go To Lift Percentage - * - * - * - * @param percentageLiftValue Ver.: always - */ -bool emberAfWindowCoveringClusterWindowCoveringGoToLiftPercentageCallback(uint8_t percentageLiftValue); -/** @brief Window Covering Cluster Window Covering Go To Lift Value - * - * - * - * @param liftValue Ver.: always - */ -bool emberAfWindowCoveringClusterWindowCoveringGoToLiftValueCallback(uint16_t liftValue); -/** @brief Window Covering Cluster Window Covering Go To Tilt Percentage - * - * - * - * @param percentageTiltValue Ver.: always - */ -bool emberAfWindowCoveringClusterWindowCoveringGoToTiltPercentageCallback(uint8_t percentageTiltValue); -/** @brief Window Covering Cluster Window Covering Go To Tilt Value - * - * - * - * @param tiltValue Ver.: always - */ -bool emberAfWindowCoveringClusterWindowCoveringGoToTiltValueCallback(uint16_t tiltValue); -/** @brief Window Covering Cluster Window Covering Stop - * - * - * - */ -bool emberAfWindowCoveringClusterWindowCoveringStopCallback(void); -/** @brief Window Covering Cluster Window Covering Up Open - * - * - * - */ -bool emberAfWindowCoveringClusterWindowCoveringUpOpenCallback(void); - -/** @} END Window Covering Cluster Callbacks */ - -/** @name Barrier Control Cluster Callbacks */ -// @{ - -/** @brief Barrier Control Cluster Barrier Control Go To Percent - * - * - * - * @param percentOpen Ver.: always - */ -bool emberAfBarrierControlClusterBarrierControlGoToPercentCallback(uint8_t percentOpen); -/** @brief Barrier Control Cluster Barrier Control Stop - * - * - * - */ -bool emberAfBarrierControlClusterBarrierControlStopCallback(void); -/** @brief Barrier Control Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfBarrierControlClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Barrier Control Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfBarrierControlClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Barrier Control Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfBarrierControlClusterClientInitCallback(uint8_t endpoint); -/** @brief Barrier Control Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfBarrierControlClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Barrier Control Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfBarrierControlClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Barrier Control Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfBarrierControlClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Barrier Control Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfBarrierControlClusterClientTickCallback(uint8_t endpoint); -/** @brief Barrier Control Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfBarrierControlClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Barrier Control Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfBarrierControlClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Barrier Control Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfBarrierControlClusterServerInitCallback(uint8_t endpoint); -/** @brief Barrier Control Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfBarrierControlClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Barrier Control Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfBarrierControlClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Barrier Control Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfBarrierControlClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Barrier Control Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfBarrierControlClusterServerTickCallback(uint8_t endpoint); - -/** @} END Barrier Control Cluster Callbacks */ - -/** @name Pump Configuration and Control Cluster Callbacks */ -// @{ - -/** @brief Pump Configuration and Control Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfPumpConfigControlClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Pump Configuration and Control Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfPumpConfigControlClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Pump Configuration and Control Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfPumpConfigControlClusterClientInitCallback(uint8_t endpoint); -/** @brief Pump Configuration and Control Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfPumpConfigControlClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Pump Configuration and Control Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfPumpConfigControlClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Pump Configuration and Control Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfPumpConfigControlClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Pump Configuration and Control Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfPumpConfigControlClusterClientTickCallback(uint8_t endpoint); -/** @brief Pump Configuration and Control Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfPumpConfigControlClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Pump Configuration and Control Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfPumpConfigControlClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Pump Configuration and Control Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfPumpConfigControlClusterServerInitCallback(uint8_t endpoint); -/** @brief Pump Configuration and Control Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfPumpConfigControlClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Pump Configuration and Control Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfPumpConfigControlClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Pump Configuration and Control Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfPumpConfigControlClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Pump Configuration and Control Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfPumpConfigControlClusterServerTickCallback(uint8_t endpoint); - -/** @} END Pump Configuration and Control Cluster Callbacks */ - -/** @name Thermostat Cluster Callbacks */ -// @{ - -/** @brief Thermostat Cluster Clear Weekly Schedule - * - * - * - */ -bool emberAfThermostatClusterClearWeeklyScheduleCallback(void); -/** @brief Thermostat Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfThermostatClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Thermostat Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfThermostatClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Thermostat Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfThermostatClusterClientInitCallback(uint8_t endpoint); -/** @brief Thermostat Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfThermostatClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Thermostat Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfThermostatClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Thermostat Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfThermostatClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Thermostat Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfThermostatClusterClientTickCallback(uint8_t endpoint); -/** @brief Thermostat Cluster Current Weekly Schedule - * - * - * - * @param numberOfTransitionsForSequence Ver.: always - * @param dayOfWeekForSequence Ver.: always - * @param modeForSequence Ver.: always - * @param payload Ver.: always - */ -bool emberAfThermostatClusterCurrentWeeklyScheduleCallback(uint8_t numberOfTransitionsForSequence, uint8_t dayOfWeekForSequence, - uint8_t modeForSequence, uint8_t * payload); -/** @brief Thermostat Cluster Get Relay Status Log - * - * - * - */ -bool emberAfThermostatClusterGetRelayStatusLogCallback(void); -/** @brief Thermostat Cluster Get Weekly Schedule - * - * - * - * @param daysToReturn Ver.: always - * @param modeToReturn Ver.: always - */ -bool emberAfThermostatClusterGetWeeklyScheduleCallback(uint8_t daysToReturn, uint8_t modeToReturn); -/** @brief Thermostat Cluster Relay Status Log - * - * - * - * @param timeOfDay Ver.: always - * @param relayStatus Ver.: always - * @param localTemperature Ver.: always - * @param humidityInPercentage Ver.: always - * @param setpoint Ver.: always - * @param unreadEntries Ver.: always - */ -bool emberAfThermostatClusterRelayStatusLogCallback(uint16_t timeOfDay, uint16_t relayStatus, int16_t localTemperature, - uint8_t humidityInPercentage, int16_t setpoint, uint16_t unreadEntries); -/** @brief Thermostat Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfThermostatClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Thermostat Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfThermostatClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Thermostat Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfThermostatClusterServerInitCallback(uint8_t endpoint); -/** @brief Thermostat Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfThermostatClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Thermostat Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfThermostatClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Thermostat Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfThermostatClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Thermostat Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfThermostatClusterServerTickCallback(uint8_t endpoint); -/** @brief Thermostat Cluster Set Weekly Schedule - * - * - * - * @param numberOfTransitionsForSequence Ver.: always - * @param dayOfWeekForSequence Ver.: always - * @param modeForSequence Ver.: always - * @param payload Ver.: always - */ -bool emberAfThermostatClusterSetWeeklyScheduleCallback(uint8_t numberOfTransitionsForSequence, uint8_t dayOfWeekForSequence, - uint8_t modeForSequence, uint8_t * payload); -/** @brief Thermostat Cluster Setpoint Raise Lower - * - * - * - * @param mode Ver.: always - * @param amount Ver.: always - */ -bool emberAfThermostatClusterSetpointRaiseLowerCallback(uint8_t mode, int8_t amount); - -/** @} END Thermostat Cluster Callbacks */ - -/** @name Fan Control Cluster Callbacks */ -// @{ - -/** @brief Fan Control Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfFanControlClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Fan Control Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfFanControlClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Fan Control Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfFanControlClusterClientInitCallback(uint8_t endpoint); -/** @brief Fan Control Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfFanControlClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Fan Control Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfFanControlClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Fan Control Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfFanControlClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Fan Control Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfFanControlClusterClientTickCallback(uint8_t endpoint); -/** @brief Fan Control Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfFanControlClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Fan Control Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfFanControlClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Fan Control Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfFanControlClusterServerInitCallback(uint8_t endpoint); -/** @brief Fan Control Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfFanControlClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Fan Control Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfFanControlClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Fan Control Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfFanControlClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Fan Control Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfFanControlClusterServerTickCallback(uint8_t endpoint); - -/** @} END Fan Control Cluster Callbacks */ - -/** @name Dehumidification Control Cluster Callbacks */ -// @{ - -/** @brief Dehumidification Control Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfDehumidControlClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Dehumidification Control Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfDehumidControlClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Dehumidification Control Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfDehumidControlClusterClientInitCallback(uint8_t endpoint); -/** @brief Dehumidification Control Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfDehumidControlClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Dehumidification Control Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfDehumidControlClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Dehumidification Control Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfDehumidControlClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Dehumidification Control Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfDehumidControlClusterClientTickCallback(uint8_t endpoint); -/** @brief Dehumidification Control Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfDehumidControlClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Dehumidification Control Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfDehumidControlClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Dehumidification Control Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfDehumidControlClusterServerInitCallback(uint8_t endpoint); -/** @brief Dehumidification Control Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfDehumidControlClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Dehumidification Control Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfDehumidControlClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Dehumidification Control Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfDehumidControlClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Dehumidification Control Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfDehumidControlClusterServerTickCallback(uint8_t endpoint); - -/** @} END Dehumidification Control Cluster Callbacks */ - -/** @name Thermostat User Interface Configuration Cluster Callbacks */ -// @{ - -/** @brief Thermostat User Interface Configuration Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfThermostatUiConfigClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Thermostat User Interface Configuration Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfThermostatUiConfigClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Thermostat User Interface Configuration Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfThermostatUiConfigClusterClientInitCallback(uint8_t endpoint); -/** @brief Thermostat User Interface Configuration Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfThermostatUiConfigClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Thermostat User Interface Configuration Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfThermostatUiConfigClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Thermostat User Interface Configuration Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfThermostatUiConfigClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Thermostat User Interface Configuration Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfThermostatUiConfigClusterClientTickCallback(uint8_t endpoint); -/** @brief Thermostat User Interface Configuration Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfThermostatUiConfigClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Thermostat User Interface Configuration Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfThermostatUiConfigClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Thermostat User Interface Configuration Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfThermostatUiConfigClusterServerInitCallback(uint8_t endpoint); -/** @brief Thermostat User Interface Configuration Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfThermostatUiConfigClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Thermostat User Interface Configuration Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfThermostatUiConfigClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Thermostat User Interface Configuration Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfThermostatUiConfigClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Thermostat User Interface Configuration Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfThermostatUiConfigClusterServerTickCallback(uint8_t endpoint); - -/** @} END Thermostat User Interface Configuration Cluster Callbacks */ - -/** @name Color Control Cluster Callbacks */ -// @{ - -/** @brief Color Control Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfColorControlClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Color Control Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfColorControlClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Color Control Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfColorControlClusterClientInitCallback(uint8_t endpoint); -/** @brief Color Control Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfColorControlClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Color Control Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfColorControlClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Color Control Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfColorControlClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Color Control Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfColorControlClusterClientTickCallback(uint8_t endpoint); -/** @brief Color Control Cluster Color Loop Set - * - * - * - * @param updateFlags Ver.: always - * @param action Ver.: always - * @param direction Ver.: always - * @param time Ver.: always - * @param startHue Ver.: always - */ -bool emberAfColorControlClusterColorLoopSetCallback(uint8_t updateFlags, uint8_t action, uint8_t direction, uint16_t time, - uint16_t startHue); -/** @brief Color Control Cluster Enhanced Move Hue - * - * - * - * @param moveMode Ver.: always - * @param rate Ver.: always - */ -bool emberAfColorControlClusterEnhancedMoveHueCallback(uint8_t moveMode, uint16_t rate); -/** @brief Color Control Cluster Enhanced Move To Hue And Saturation - * - * - * - * @param enhancedHue Ver.: always - * @param saturation Ver.: always - * @param transitionTime Ver.: always - */ -bool emberAfColorControlClusterEnhancedMoveToHueAndSaturationCallback(uint16_t enhancedHue, uint8_t saturation, - uint16_t transitionTime); -/** @brief Color Control Cluster Enhanced Move To Hue - * - * - * - * @param enhancedHue Ver.: always - * @param direction Ver.: always - * @param transitionTime Ver.: always - */ -bool emberAfColorControlClusterEnhancedMoveToHueCallback(uint16_t enhancedHue, uint8_t direction, uint16_t transitionTime); -/** @brief Color Control Cluster Enhanced Step Hue - * - * - * - * @param stepMode Ver.: always - * @param stepSize Ver.: always - * @param transitionTime Ver.: always - */ -bool emberAfColorControlClusterEnhancedStepHueCallback(uint8_t stepMode, uint16_t stepSize, uint16_t transitionTime); -/** @brief Color Control Cluster Move Color - * - * - * - * @param rateX Ver.: always - * @param rateY Ver.: always - * @param optionsMask Ver.: since zcl6-errata-14-0129-15 - * @param optionsOverride Ver.: since zcl6-errata-14-0129-15 - */ -bool emberAfColorControlClusterMoveColorCallback(int16_t rateX, int16_t rateY, uint8_t optionsMask, uint8_t optionsOverride); -/** @brief Color Control Cluster Move Color Temperature - * - * - * - * @param moveMode Ver.: always - * @param rate Ver.: always - * @param colorTemperatureMinimum Ver.: always - * @param colorTemperatureMaximum Ver.: always - * @param optionsMask Ver.: since zcl6-errata-14-0129-15 - * @param optionsOverride Ver.: since zcl6-errata-14-0129-15 - */ -bool emberAfColorControlClusterMoveColorTemperatureCallback(uint8_t moveMode, uint16_t rate, uint16_t colorTemperatureMinimum, - uint16_t colorTemperatureMaximum, uint8_t optionsMask, - uint8_t optionsOverride); -/** @brief Color Control Cluster Move Hue - * - * - * - * @param moveMode Ver.: always - * @param rate Ver.: always - * @param optionsMask Ver.: since zcl6-errata-14-0129-15 - * @param optionsOverride Ver.: since zcl6-errata-14-0129-15 - */ -bool emberAfColorControlClusterMoveHueCallback(uint8_t moveMode, uint8_t rate, uint8_t optionsMask, uint8_t optionsOverride); -/** @brief Color Control Cluster Move Saturation - * - * - * - * @param moveMode Ver.: always - * @param rate Ver.: always - * @param optionsMask Ver.: since zcl6-errata-14-0129-15 - * @param optionsOverride Ver.: since zcl6-errata-14-0129-15 - */ -bool emberAfColorControlClusterMoveSaturationCallback(uint8_t moveMode, uint8_t rate, uint8_t optionsMask, uint8_t optionsOverride); -/** @brief Color Control Cluster Move To Color - * - * - * - * @param colorX Ver.: always - * @param colorY Ver.: always - * @param transitionTime Ver.: always - * @param optionsMask Ver.: since zcl6-errata-14-0129-15 - * @param optionsOverride Ver.: since zcl6-errata-14-0129-15 - */ -bool emberAfColorControlClusterMoveToColorCallback(uint16_t colorX, uint16_t colorY, uint16_t transitionTime, uint8_t optionsMask, - uint8_t optionsOverride); -/** @brief Color Control Cluster Move To Color Temperature - * - * - * - * @param colorTemperature Ver.: always - * @param transitionTime Ver.: always - * @param optionsMask Ver.: since zcl6-errata-14-0129-15 - * @param optionsOverride Ver.: since zcl6-errata-14-0129-15 - */ -bool emberAfColorControlClusterMoveToColorTemperatureCallback(uint16_t colorTemperature, uint16_t transitionTime, - uint8_t optionsMask, uint8_t optionsOverride); -/** @brief Color Control Cluster Move To Hue And Saturation - * - * - * - * @param hue Ver.: always - * @param saturation Ver.: always - * @param transitionTime Ver.: always - * @param optionsMask Ver.: since zcl6-errata-14-0129-15 - * @param optionsOverride Ver.: since zcl6-errata-14-0129-15 - */ -bool emberAfColorControlClusterMoveToHueAndSaturationCallback(uint8_t hue, uint8_t saturation, uint16_t transitionTime, - uint8_t optionsMask, uint8_t optionsOverride); -/** @brief Color Control Cluster Move To Hue - * - * - * - * @param hue Ver.: always - * @param direction Ver.: always - * @param transitionTime Ver.: always - * @param optionsMask Ver.: since zcl6-errata-14-0129-15 - * @param optionsOverride Ver.: since zcl6-errata-14-0129-15 - */ -bool emberAfColorControlClusterMoveToHueCallback(uint8_t hue, uint8_t direction, uint16_t transitionTime, uint8_t optionsMask, - uint8_t optionsOverride); -/** @brief Color Control Cluster Move To Saturation - * - * - * - * @param saturation Ver.: always - * @param transitionTime Ver.: always - * @param optionsMask Ver.: since zcl6-errata-14-0129-15 - * @param optionsOverride Ver.: since zcl6-errata-14-0129-15 - */ -bool emberAfColorControlClusterMoveToSaturationCallback(uint8_t saturation, uint16_t transitionTime, uint8_t optionsMask, - uint8_t optionsOverride); -/** @brief Color Control Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfColorControlClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Color Control Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfColorControlClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Color Control Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfColorControlClusterServerInitCallback(uint8_t endpoint); -/** @brief Color Control Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfColorControlClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Color Control Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfColorControlClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Color Control Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfColorControlClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Color Control Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfColorControlClusterServerTickCallback(uint8_t endpoint); -/** @brief Color Control Cluster Step Color - * - * - * - * @param stepX Ver.: always - * @param stepY Ver.: always - * @param transitionTime Ver.: always - * @param optionsMask Ver.: since zcl6-errata-14-0129-15 - * @param optionsOverride Ver.: since zcl6-errata-14-0129-15 - */ -bool emberAfColorControlClusterStepColorCallback(int16_t stepX, int16_t stepY, uint16_t transitionTime, uint8_t optionsMask, - uint8_t optionsOverride); -/** @brief Color Control Cluster Step Color Temperature - * - * - * - * @param stepMode Ver.: always - * @param stepSize Ver.: always - * @param transitionTime Ver.: always - * @param colorTemperatureMinimum Ver.: always - * @param colorTemperatureMaximum Ver.: always - * @param optionsMask Ver.: since zcl6-errata-14-0129-15 - * @param optionsOverride Ver.: since zcl6-errata-14-0129-15 - */ -bool emberAfColorControlClusterStepColorTemperatureCallback(uint8_t stepMode, uint16_t stepSize, uint16_t transitionTime, - uint16_t colorTemperatureMinimum, uint16_t colorTemperatureMaximum, - uint8_t optionsMask, uint8_t optionsOverride); -/** @brief Color Control Cluster Step Hue - * - * - * - * @param stepMode Ver.: always - * @param stepSize Ver.: always - * @param transitionTime Ver.: always - * @param optionsMask Ver.: since zcl6-errata-14-0129-15 - * @param optionsOverride Ver.: since zcl6-errata-14-0129-15 - */ -bool emberAfColorControlClusterStepHueCallback(uint8_t stepMode, uint8_t stepSize, uint8_t transitionTime, uint8_t optionsMask, - uint8_t optionsOverride); -/** @brief Color Control Cluster Step Saturation - * - * - * - * @param stepMode Ver.: always - * @param stepSize Ver.: always - * @param transitionTime Ver.: always - * @param optionsMask Ver.: since zcl6-errata-14-0129-15 - * @param optionsOverride Ver.: since zcl6-errata-14-0129-15 - */ -bool emberAfColorControlClusterStepSaturationCallback(uint8_t stepMode, uint8_t stepSize, uint8_t transitionTime, - uint8_t optionsMask, uint8_t optionsOverride); -/** @brief Color Control Cluster Stop Move Step - * - * - * - * @param optionsMask Ver.: since zcl6-errata-14-0129-15 - * @param optionsOverride Ver.: since zcl6-errata-14-0129-15 - */ -bool emberAfColorControlClusterStopMoveStepCallback(uint8_t optionsMask, uint8_t optionsOverride); - -/** @} END Color Control Cluster Callbacks */ - -/** @name Ballast Configuration Cluster Callbacks */ -// @{ - -/** @brief Ballast Configuration Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfBallastConfigurationClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Ballast Configuration Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfBallastConfigurationClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Ballast Configuration Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfBallastConfigurationClusterClientInitCallback(uint8_t endpoint); -/** @brief Ballast Configuration Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfBallastConfigurationClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Ballast Configuration Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfBallastConfigurationClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Ballast Configuration Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfBallastConfigurationClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Ballast Configuration Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfBallastConfigurationClusterClientTickCallback(uint8_t endpoint); -/** @brief Ballast Configuration Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfBallastConfigurationClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Ballast Configuration Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfBallastConfigurationClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Ballast Configuration Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfBallastConfigurationClusterServerInitCallback(uint8_t endpoint); -/** @brief Ballast Configuration Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfBallastConfigurationClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Ballast Configuration Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfBallastConfigurationClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Ballast Configuration Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfBallastConfigurationClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Ballast Configuration Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfBallastConfigurationClusterServerTickCallback(uint8_t endpoint); - -/** @} END Ballast Configuration Cluster Callbacks */ - -/** @name Illuminance Measurement Cluster Callbacks */ -// @{ - -/** @brief Illuminance Measurement Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfIllumMeasurementClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Illuminance Measurement Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfIllumMeasurementClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Illuminance Measurement Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfIllumMeasurementClusterClientInitCallback(uint8_t endpoint); -/** @brief Illuminance Measurement Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfIllumMeasurementClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Illuminance Measurement Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfIllumMeasurementClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Illuminance Measurement Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfIllumMeasurementClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Illuminance Measurement Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfIllumMeasurementClusterClientTickCallback(uint8_t endpoint); -/** @brief Illuminance Measurement Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfIllumMeasurementClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Illuminance Measurement Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfIllumMeasurementClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Illuminance Measurement Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfIllumMeasurementClusterServerInitCallback(uint8_t endpoint); -/** @brief Illuminance Measurement Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfIllumMeasurementClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Illuminance Measurement Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfIllumMeasurementClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Illuminance Measurement Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfIllumMeasurementClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Illuminance Measurement Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfIllumMeasurementClusterServerTickCallback(uint8_t endpoint); - -/** @} END Illuminance Measurement Cluster Callbacks */ - -/** @name Illuminance Level Sensing Cluster Callbacks */ -// @{ - -/** @brief Illuminance Level Sensing Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfIllumLevelSensingClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Illuminance Level Sensing Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfIllumLevelSensingClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Illuminance Level Sensing Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfIllumLevelSensingClusterClientInitCallback(uint8_t endpoint); -/** @brief Illuminance Level Sensing Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfIllumLevelSensingClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Illuminance Level Sensing Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfIllumLevelSensingClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Illuminance Level Sensing Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfIllumLevelSensingClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Illuminance Level Sensing Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfIllumLevelSensingClusterClientTickCallback(uint8_t endpoint); -/** @brief Illuminance Level Sensing Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfIllumLevelSensingClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Illuminance Level Sensing Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfIllumLevelSensingClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Illuminance Level Sensing Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfIllumLevelSensingClusterServerInitCallback(uint8_t endpoint); -/** @brief Illuminance Level Sensing Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfIllumLevelSensingClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Illuminance Level Sensing Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfIllumLevelSensingClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Illuminance Level Sensing Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfIllumLevelSensingClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Illuminance Level Sensing Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfIllumLevelSensingClusterServerTickCallback(uint8_t endpoint); - -/** @} END Illuminance Level Sensing Cluster Callbacks */ - -/** @name Temperature Measurement Cluster Callbacks */ -// @{ - -/** @brief Temperature Measurement Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfTempMeasurementClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Temperature Measurement Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfTempMeasurementClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Temperature Measurement Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfTempMeasurementClusterClientInitCallback(uint8_t endpoint); -/** @brief Temperature Measurement Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfTempMeasurementClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Temperature Measurement Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfTempMeasurementClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Temperature Measurement Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfTempMeasurementClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Temperature Measurement Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfTempMeasurementClusterClientTickCallback(uint8_t endpoint); -/** @brief Temperature Measurement Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfTempMeasurementClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Temperature Measurement Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfTempMeasurementClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Temperature Measurement Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfTempMeasurementClusterServerInitCallback(uint8_t endpoint); -/** @brief Temperature Measurement Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfTempMeasurementClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Temperature Measurement Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfTempMeasurementClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Temperature Measurement Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfTempMeasurementClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Temperature Measurement Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfTempMeasurementClusterServerTickCallback(uint8_t endpoint); - -/** @} END Temperature Measurement Cluster Callbacks */ - -/** @name Pressure Measurement Cluster Callbacks */ -// @{ - -/** @brief Pressure Measurement Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfPressureMeasurementClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Pressure Measurement Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfPressureMeasurementClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Pressure Measurement Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfPressureMeasurementClusterClientInitCallback(uint8_t endpoint); -/** @brief Pressure Measurement Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfPressureMeasurementClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Pressure Measurement Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfPressureMeasurementClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Pressure Measurement Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfPressureMeasurementClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Pressure Measurement Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfPressureMeasurementClusterClientTickCallback(uint8_t endpoint); -/** @brief Pressure Measurement Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfPressureMeasurementClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Pressure Measurement Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfPressureMeasurementClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Pressure Measurement Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfPressureMeasurementClusterServerInitCallback(uint8_t endpoint); -/** @brief Pressure Measurement Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfPressureMeasurementClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Pressure Measurement Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfPressureMeasurementClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Pressure Measurement Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfPressureMeasurementClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Pressure Measurement Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfPressureMeasurementClusterServerTickCallback(uint8_t endpoint); - -/** @} END Pressure Measurement Cluster Callbacks */ - -/** @name Flow Measurement Cluster Callbacks */ -// @{ - -/** @brief Flow Measurement Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfFlowMeasurementClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Flow Measurement Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfFlowMeasurementClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Flow Measurement Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfFlowMeasurementClusterClientInitCallback(uint8_t endpoint); -/** @brief Flow Measurement Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfFlowMeasurementClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Flow Measurement Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfFlowMeasurementClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Flow Measurement Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfFlowMeasurementClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Flow Measurement Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfFlowMeasurementClusterClientTickCallback(uint8_t endpoint); -/** @brief Flow Measurement Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfFlowMeasurementClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Flow Measurement Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfFlowMeasurementClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Flow Measurement Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfFlowMeasurementClusterServerInitCallback(uint8_t endpoint); -/** @brief Flow Measurement Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfFlowMeasurementClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Flow Measurement Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfFlowMeasurementClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Flow Measurement Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfFlowMeasurementClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Flow Measurement Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfFlowMeasurementClusterServerTickCallback(uint8_t endpoint); - -/** @} END Flow Measurement Cluster Callbacks */ - -/** @name Relative Humidity Measurement Cluster Callbacks */ -// @{ - -/** @brief Relative Humidity Measurement Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfRelativeHumidityMeasurementClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Relative Humidity Measurement Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfRelativeHumidityMeasurementClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Relative Humidity Measurement Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfRelativeHumidityMeasurementClusterClientInitCallback(uint8_t endpoint); -/** @brief Relative Humidity Measurement Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfRelativeHumidityMeasurementClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Relative Humidity Measurement Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfRelativeHumidityMeasurementClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, - uint8_t * message, EmberStatus status); -/** @brief Relative Humidity Measurement Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfRelativeHumidityMeasurementClusterClientPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Relative Humidity Measurement Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfRelativeHumidityMeasurementClusterClientTickCallback(uint8_t endpoint); -/** @brief Relative Humidity Measurement Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfRelativeHumidityMeasurementClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Relative Humidity Measurement Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfRelativeHumidityMeasurementClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Relative Humidity Measurement Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfRelativeHumidityMeasurementClusterServerInitCallback(uint8_t endpoint); -/** @brief Relative Humidity Measurement Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfRelativeHumidityMeasurementClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Relative Humidity Measurement Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfRelativeHumidityMeasurementClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, - uint8_t * message, EmberStatus status); -/** @brief Relative Humidity Measurement Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfRelativeHumidityMeasurementClusterServerPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Relative Humidity Measurement Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfRelativeHumidityMeasurementClusterServerTickCallback(uint8_t endpoint); - -/** @} END Relative Humidity Measurement Cluster Callbacks */ - -/** @name Occupancy Sensing Cluster Callbacks */ -// @{ - -/** @brief Occupancy Sensing Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfOccupancySensingClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Occupancy Sensing Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfOccupancySensingClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Occupancy Sensing Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfOccupancySensingClusterClientInitCallback(uint8_t endpoint); -/** @brief Occupancy Sensing Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfOccupancySensingClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Occupancy Sensing Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfOccupancySensingClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Occupancy Sensing Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfOccupancySensingClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Occupancy Sensing Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfOccupancySensingClusterClientTickCallback(uint8_t endpoint); -/** @brief Occupancy Sensing Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfOccupancySensingClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Occupancy Sensing Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfOccupancySensingClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Occupancy Sensing Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfOccupancySensingClusterServerInitCallback(uint8_t endpoint); -/** @brief Occupancy Sensing Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfOccupancySensingClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Occupancy Sensing Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfOccupancySensingClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Occupancy Sensing Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfOccupancySensingClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Occupancy Sensing Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfOccupancySensingClusterServerTickCallback(uint8_t endpoint); - -/** @} END Occupancy Sensing Cluster Callbacks */ - -/** @name Carbon Monoxide Concentration Measurement Cluster Callbacks */ -// @{ - -/** @brief Carbon Monoxide Concentration Measurement Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfCarbonMonoxideConcentrationMeasurementClusterClientAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId); -/** @brief Carbon Monoxide Concentration Measurement Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfCarbonMonoxideConcentrationMeasurementClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Carbon Monoxide Concentration Measurement Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfCarbonMonoxideConcentrationMeasurementClusterClientInitCallback(uint8_t endpoint); -/** @brief Carbon Monoxide Concentration Measurement Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfCarbonMonoxideConcentrationMeasurementClusterClientManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Carbon Monoxide Concentration Measurement Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfCarbonMonoxideConcentrationMeasurementClusterClientMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, - uint8_t * message, EmberStatus status); -/** @brief Carbon Monoxide Concentration Measurement Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfCarbonMonoxideConcentrationMeasurementClusterClientPreAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, EmberAfAttributeType attributeType, uint8_t size, uint8_t * value); -/** @brief Carbon Monoxide Concentration Measurement Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfCarbonMonoxideConcentrationMeasurementClusterClientTickCallback(uint8_t endpoint); -/** @brief Carbon Monoxide Concentration Measurement Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfCarbonMonoxideConcentrationMeasurementClusterServerAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId); -/** @brief Carbon Monoxide Concentration Measurement Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfCarbonMonoxideConcentrationMeasurementClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Carbon Monoxide Concentration Measurement Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfCarbonMonoxideConcentrationMeasurementClusterServerInitCallback(uint8_t endpoint); -/** @brief Carbon Monoxide Concentration Measurement Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfCarbonMonoxideConcentrationMeasurementClusterServerManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Carbon Monoxide Concentration Measurement Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfCarbonMonoxideConcentrationMeasurementClusterServerMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, - uint8_t * message, EmberStatus status); -/** @brief Carbon Monoxide Concentration Measurement Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfCarbonMonoxideConcentrationMeasurementClusterServerPreAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, EmberAfAttributeType attributeType, uint8_t size, uint8_t * value); -/** @brief Carbon Monoxide Concentration Measurement Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfCarbonMonoxideConcentrationMeasurementClusterServerTickCallback(uint8_t endpoint); - -/** @} END Carbon Monoxide Concentration Measurement Cluster Callbacks */ - -/** @name Carbon Dioxide Concentration Measurement Cluster Callbacks */ -// @{ - -/** @brief Carbon Dioxide Concentration Measurement Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfCarbonDioxideConcentrationMeasurementClusterClientAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId); -/** @brief Carbon Dioxide Concentration Measurement Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfCarbonDioxideConcentrationMeasurementClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Carbon Dioxide Concentration Measurement Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfCarbonDioxideConcentrationMeasurementClusterClientInitCallback(uint8_t endpoint); -/** @brief Carbon Dioxide Concentration Measurement Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfCarbonDioxideConcentrationMeasurementClusterClientManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Carbon Dioxide Concentration Measurement Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfCarbonDioxideConcentrationMeasurementClusterClientMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, - uint8_t * message, EmberStatus status); -/** @brief Carbon Dioxide Concentration Measurement Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfCarbonDioxideConcentrationMeasurementClusterClientPreAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, EmberAfAttributeType attributeType, uint8_t size, uint8_t * value); -/** @brief Carbon Dioxide Concentration Measurement Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfCarbonDioxideConcentrationMeasurementClusterClientTickCallback(uint8_t endpoint); -/** @brief Carbon Dioxide Concentration Measurement Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfCarbonDioxideConcentrationMeasurementClusterServerAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId); -/** @brief Carbon Dioxide Concentration Measurement Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfCarbonDioxideConcentrationMeasurementClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Carbon Dioxide Concentration Measurement Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfCarbonDioxideConcentrationMeasurementClusterServerInitCallback(uint8_t endpoint); -/** @brief Carbon Dioxide Concentration Measurement Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfCarbonDioxideConcentrationMeasurementClusterServerManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Carbon Dioxide Concentration Measurement Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfCarbonDioxideConcentrationMeasurementClusterServerMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, - uint8_t * message, EmberStatus status); -/** @brief Carbon Dioxide Concentration Measurement Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfCarbonDioxideConcentrationMeasurementClusterServerPreAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, EmberAfAttributeType attributeType, uint8_t size, uint8_t * value); -/** @brief Carbon Dioxide Concentration Measurement Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfCarbonDioxideConcentrationMeasurementClusterServerTickCallback(uint8_t endpoint); - -/** @} END Carbon Dioxide Concentration Measurement Cluster Callbacks */ - -/** @name Ethylene Concentration Measurement Cluster Callbacks */ -// @{ - -/** @brief Ethylene Concentration Measurement Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfEthyleneConcentrationMeasurementClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Ethylene Concentration Measurement Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfEthyleneConcentrationMeasurementClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Ethylene Concentration Measurement Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfEthyleneConcentrationMeasurementClusterClientInitCallback(uint8_t endpoint); -/** @brief Ethylene Concentration Measurement Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfEthyleneConcentrationMeasurementClusterClientManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Ethylene Concentration Measurement Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfEthyleneConcentrationMeasurementClusterClientMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, EmberApsFrame * apsFrame, - uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Ethylene Concentration Measurement Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfEthyleneConcentrationMeasurementClusterClientPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Ethylene Concentration Measurement Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfEthyleneConcentrationMeasurementClusterClientTickCallback(uint8_t endpoint); -/** @brief Ethylene Concentration Measurement Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfEthyleneConcentrationMeasurementClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Ethylene Concentration Measurement Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfEthyleneConcentrationMeasurementClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Ethylene Concentration Measurement Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfEthyleneConcentrationMeasurementClusterServerInitCallback(uint8_t endpoint); -/** @brief Ethylene Concentration Measurement Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfEthyleneConcentrationMeasurementClusterServerManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Ethylene Concentration Measurement Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfEthyleneConcentrationMeasurementClusterServerMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, EmberApsFrame * apsFrame, - uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Ethylene Concentration Measurement Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfEthyleneConcentrationMeasurementClusterServerPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Ethylene Concentration Measurement Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfEthyleneConcentrationMeasurementClusterServerTickCallback(uint8_t endpoint); - -/** @} END Ethylene Concentration Measurement Cluster Callbacks */ - -/** @name Ethylene Oxide Concentration Measurement Cluster Callbacks */ -// @{ - -/** @brief Ethylene Oxide Concentration Measurement Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfEthyleneOxideConcentrationMeasurementClusterClientAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId); -/** @brief Ethylene Oxide Concentration Measurement Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfEthyleneOxideConcentrationMeasurementClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Ethylene Oxide Concentration Measurement Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfEthyleneOxideConcentrationMeasurementClusterClientInitCallback(uint8_t endpoint); -/** @brief Ethylene Oxide Concentration Measurement Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfEthyleneOxideConcentrationMeasurementClusterClientManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Ethylene Oxide Concentration Measurement Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfEthyleneOxideConcentrationMeasurementClusterClientMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, - uint8_t * message, EmberStatus status); -/** @brief Ethylene Oxide Concentration Measurement Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfEthyleneOxideConcentrationMeasurementClusterClientPreAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, EmberAfAttributeType attributeType, uint8_t size, uint8_t * value); -/** @brief Ethylene Oxide Concentration Measurement Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfEthyleneOxideConcentrationMeasurementClusterClientTickCallback(uint8_t endpoint); -/** @brief Ethylene Oxide Concentration Measurement Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfEthyleneOxideConcentrationMeasurementClusterServerAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId); -/** @brief Ethylene Oxide Concentration Measurement Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfEthyleneOxideConcentrationMeasurementClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Ethylene Oxide Concentration Measurement Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfEthyleneOxideConcentrationMeasurementClusterServerInitCallback(uint8_t endpoint); -/** @brief Ethylene Oxide Concentration Measurement Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfEthyleneOxideConcentrationMeasurementClusterServerManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Ethylene Oxide Concentration Measurement Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfEthyleneOxideConcentrationMeasurementClusterServerMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, - uint8_t * message, EmberStatus status); -/** @brief Ethylene Oxide Concentration Measurement Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfEthyleneOxideConcentrationMeasurementClusterServerPreAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, EmberAfAttributeType attributeType, uint8_t size, uint8_t * value); -/** @brief Ethylene Oxide Concentration Measurement Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfEthyleneOxideConcentrationMeasurementClusterServerTickCallback(uint8_t endpoint); - -/** @} END Ethylene Oxide Concentration Measurement Cluster Callbacks */ - -/** @name Hydrogen Concentration Measurement Cluster Callbacks */ -// @{ - -/** @brief Hydrogen Concentration Measurement Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfHydrogenConcentrationMeasurementClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Hydrogen Concentration Measurement Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfHydrogenConcentrationMeasurementClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Hydrogen Concentration Measurement Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfHydrogenConcentrationMeasurementClusterClientInitCallback(uint8_t endpoint); -/** @brief Hydrogen Concentration Measurement Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfHydrogenConcentrationMeasurementClusterClientManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Hydrogen Concentration Measurement Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfHydrogenConcentrationMeasurementClusterClientMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, EmberApsFrame * apsFrame, - uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Hydrogen Concentration Measurement Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfHydrogenConcentrationMeasurementClusterClientPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Hydrogen Concentration Measurement Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfHydrogenConcentrationMeasurementClusterClientTickCallback(uint8_t endpoint); -/** @brief Hydrogen Concentration Measurement Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfHydrogenConcentrationMeasurementClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Hydrogen Concentration Measurement Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfHydrogenConcentrationMeasurementClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Hydrogen Concentration Measurement Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfHydrogenConcentrationMeasurementClusterServerInitCallback(uint8_t endpoint); -/** @brief Hydrogen Concentration Measurement Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfHydrogenConcentrationMeasurementClusterServerManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Hydrogen Concentration Measurement Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfHydrogenConcentrationMeasurementClusterServerMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, EmberApsFrame * apsFrame, - uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Hydrogen Concentration Measurement Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfHydrogenConcentrationMeasurementClusterServerPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Hydrogen Concentration Measurement Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfHydrogenConcentrationMeasurementClusterServerTickCallback(uint8_t endpoint); - -/** @} END Hydrogen Concentration Measurement Cluster Callbacks */ - -/** @name Hydrogen Sulphide Concentration Measurement Cluster Callbacks */ -// @{ - -/** @brief Hydrogen Sulphide Concentration Measurement Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfHydrogenSulphideConcentrationMeasurementClusterClientAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId); -/** @brief Hydrogen Sulphide Concentration Measurement Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfHydrogenSulphideConcentrationMeasurementClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Hydrogen Sulphide Concentration Measurement Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfHydrogenSulphideConcentrationMeasurementClusterClientInitCallback(uint8_t endpoint); -/** @brief Hydrogen Sulphide Concentration Measurement Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfHydrogenSulphideConcentrationMeasurementClusterClientManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Hydrogen Sulphide Concentration Measurement Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfHydrogenSulphideConcentrationMeasurementClusterClientMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, - uint8_t * message, EmberStatus status); -/** @brief Hydrogen Sulphide Concentration Measurement Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfHydrogenSulphideConcentrationMeasurementClusterClientPreAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, EmberAfAttributeType attributeType, uint8_t size, uint8_t * value); -/** @brief Hydrogen Sulphide Concentration Measurement Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfHydrogenSulphideConcentrationMeasurementClusterClientTickCallback(uint8_t endpoint); -/** @brief Hydrogen Sulphide Concentration Measurement Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfHydrogenSulphideConcentrationMeasurementClusterServerAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId); -/** @brief Hydrogen Sulphide Concentration Measurement Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfHydrogenSulphideConcentrationMeasurementClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Hydrogen Sulphide Concentration Measurement Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfHydrogenSulphideConcentrationMeasurementClusterServerInitCallback(uint8_t endpoint); -/** @brief Hydrogen Sulphide Concentration Measurement Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfHydrogenSulphideConcentrationMeasurementClusterServerManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Hydrogen Sulphide Concentration Measurement Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfHydrogenSulphideConcentrationMeasurementClusterServerMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, - uint8_t * message, EmberStatus status); -/** @brief Hydrogen Sulphide Concentration Measurement Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfHydrogenSulphideConcentrationMeasurementClusterServerPreAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, EmberAfAttributeType attributeType, uint8_t size, uint8_t * value); -/** @brief Hydrogen Sulphide Concentration Measurement Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfHydrogenSulphideConcentrationMeasurementClusterServerTickCallback(uint8_t endpoint); - -/** @} END Hydrogen Sulphide Concentration Measurement Cluster Callbacks */ - -/** @name Nitric Oxide Concentration Measurement Cluster Callbacks */ -// @{ - -/** @brief Nitric Oxide Concentration Measurement Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfNitricOxideConcentrationMeasurementClusterClientAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId); -/** @brief Nitric Oxide Concentration Measurement Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfNitricOxideConcentrationMeasurementClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Nitric Oxide Concentration Measurement Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfNitricOxideConcentrationMeasurementClusterClientInitCallback(uint8_t endpoint); -/** @brief Nitric Oxide Concentration Measurement Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfNitricOxideConcentrationMeasurementClusterClientManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Nitric Oxide Concentration Measurement Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfNitricOxideConcentrationMeasurementClusterClientMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, - uint8_t * message, EmberStatus status); -/** @brief Nitric Oxide Concentration Measurement Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfNitricOxideConcentrationMeasurementClusterClientPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Nitric Oxide Concentration Measurement Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfNitricOxideConcentrationMeasurementClusterClientTickCallback(uint8_t endpoint); -/** @brief Nitric Oxide Concentration Measurement Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfNitricOxideConcentrationMeasurementClusterServerAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId); -/** @brief Nitric Oxide Concentration Measurement Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfNitricOxideConcentrationMeasurementClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Nitric Oxide Concentration Measurement Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfNitricOxideConcentrationMeasurementClusterServerInitCallback(uint8_t endpoint); -/** @brief Nitric Oxide Concentration Measurement Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfNitricOxideConcentrationMeasurementClusterServerManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Nitric Oxide Concentration Measurement Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfNitricOxideConcentrationMeasurementClusterServerMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, - uint8_t * message, EmberStatus status); -/** @brief Nitric Oxide Concentration Measurement Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfNitricOxideConcentrationMeasurementClusterServerPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Nitric Oxide Concentration Measurement Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfNitricOxideConcentrationMeasurementClusterServerTickCallback(uint8_t endpoint); - -/** @} END Nitric Oxide Concentration Measurement Cluster Callbacks */ - -/** @name Nitrogen Dioxide Concentration Measurement Cluster Callbacks */ -// @{ - -/** @brief Nitrogen Dioxide Concentration Measurement Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfNitrogenDioxideConcentrationMeasurementClusterClientAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId); -/** @brief Nitrogen Dioxide Concentration Measurement Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfNitrogenDioxideConcentrationMeasurementClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Nitrogen Dioxide Concentration Measurement Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfNitrogenDioxideConcentrationMeasurementClusterClientInitCallback(uint8_t endpoint); -/** @brief Nitrogen Dioxide Concentration Measurement Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfNitrogenDioxideConcentrationMeasurementClusterClientManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Nitrogen Dioxide Concentration Measurement Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfNitrogenDioxideConcentrationMeasurementClusterClientMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, - uint8_t * message, EmberStatus status); -/** @brief Nitrogen Dioxide Concentration Measurement Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfNitrogenDioxideConcentrationMeasurementClusterClientPreAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, EmberAfAttributeType attributeType, uint8_t size, uint8_t * value); -/** @brief Nitrogen Dioxide Concentration Measurement Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfNitrogenDioxideConcentrationMeasurementClusterClientTickCallback(uint8_t endpoint); -/** @brief Nitrogen Dioxide Concentration Measurement Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfNitrogenDioxideConcentrationMeasurementClusterServerAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId); -/** @brief Nitrogen Dioxide Concentration Measurement Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfNitrogenDioxideConcentrationMeasurementClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Nitrogen Dioxide Concentration Measurement Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfNitrogenDioxideConcentrationMeasurementClusterServerInitCallback(uint8_t endpoint); -/** @brief Nitrogen Dioxide Concentration Measurement Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfNitrogenDioxideConcentrationMeasurementClusterServerManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Nitrogen Dioxide Concentration Measurement Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfNitrogenDioxideConcentrationMeasurementClusterServerMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, - uint8_t * message, EmberStatus status); -/** @brief Nitrogen Dioxide Concentration Measurement Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfNitrogenDioxideConcentrationMeasurementClusterServerPreAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, EmberAfAttributeType attributeType, uint8_t size, uint8_t * value); -/** @brief Nitrogen Dioxide Concentration Measurement Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfNitrogenDioxideConcentrationMeasurementClusterServerTickCallback(uint8_t endpoint); - -/** @} END Nitrogen Dioxide Concentration Measurement Cluster Callbacks */ - -/** @name Oxygen Concentration Measurement Cluster Callbacks */ -// @{ - -/** @brief Oxygen Concentration Measurement Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfOxygenConcentrationMeasurementClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Oxygen Concentration Measurement Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfOxygenConcentrationMeasurementClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Oxygen Concentration Measurement Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfOxygenConcentrationMeasurementClusterClientInitCallback(uint8_t endpoint); -/** @brief Oxygen Concentration Measurement Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfOxygenConcentrationMeasurementClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Oxygen Concentration Measurement Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfOxygenConcentrationMeasurementClusterClientMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, EmberApsFrame * apsFrame, - uint16_t msgLen, uint8_t * message, EmberStatus status); -/** @brief Oxygen Concentration Measurement Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfOxygenConcentrationMeasurementClusterClientPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Oxygen Concentration Measurement Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfOxygenConcentrationMeasurementClusterClientTickCallback(uint8_t endpoint); -/** @brief Oxygen Concentration Measurement Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfOxygenConcentrationMeasurementClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Oxygen Concentration Measurement Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfOxygenConcentrationMeasurementClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Oxygen Concentration Measurement Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfOxygenConcentrationMeasurementClusterServerInitCallback(uint8_t endpoint); -/** @brief Oxygen Concentration Measurement Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfOxygenConcentrationMeasurementClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Oxygen Concentration Measurement Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfOxygenConcentrationMeasurementClusterServerMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, EmberApsFrame * apsFrame, - uint16_t msgLen, uint8_t * message, EmberStatus status); -/** @brief Oxygen Concentration Measurement Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfOxygenConcentrationMeasurementClusterServerPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Oxygen Concentration Measurement Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfOxygenConcentrationMeasurementClusterServerTickCallback(uint8_t endpoint); - -/** @} END Oxygen Concentration Measurement Cluster Callbacks */ - -/** @name Ozone Concentration Measurement Cluster Callbacks */ -// @{ - -/** @brief Ozone Concentration Measurement Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfOzoneConcentrationMeasurementClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Ozone Concentration Measurement Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfOzoneConcentrationMeasurementClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Ozone Concentration Measurement Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfOzoneConcentrationMeasurementClusterClientInitCallback(uint8_t endpoint); -/** @brief Ozone Concentration Measurement Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfOzoneConcentrationMeasurementClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Ozone Concentration Measurement Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfOzoneConcentrationMeasurementClusterClientMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, EmberApsFrame * apsFrame, - uint16_t msgLen, uint8_t * message, EmberStatus status); -/** @brief Ozone Concentration Measurement Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfOzoneConcentrationMeasurementClusterClientPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Ozone Concentration Measurement Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfOzoneConcentrationMeasurementClusterClientTickCallback(uint8_t endpoint); -/** @brief Ozone Concentration Measurement Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfOzoneConcentrationMeasurementClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Ozone Concentration Measurement Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfOzoneConcentrationMeasurementClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Ozone Concentration Measurement Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfOzoneConcentrationMeasurementClusterServerInitCallback(uint8_t endpoint); -/** @brief Ozone Concentration Measurement Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfOzoneConcentrationMeasurementClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Ozone Concentration Measurement Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfOzoneConcentrationMeasurementClusterServerMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, EmberApsFrame * apsFrame, - uint16_t msgLen, uint8_t * message, EmberStatus status); -/** @brief Ozone Concentration Measurement Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfOzoneConcentrationMeasurementClusterServerPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Ozone Concentration Measurement Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfOzoneConcentrationMeasurementClusterServerTickCallback(uint8_t endpoint); - -/** @} END Ozone Concentration Measurement Cluster Callbacks */ - -/** @name Sulfur Dioxide Concentration Measurement Cluster Callbacks */ -// @{ - -/** @brief Sulfur Dioxide Concentration Measurement Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfSulfurDioxideConcentrationMeasurementClusterClientAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId); -/** @brief Sulfur Dioxide Concentration Measurement Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfSulfurDioxideConcentrationMeasurementClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Sulfur Dioxide Concentration Measurement Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfSulfurDioxideConcentrationMeasurementClusterClientInitCallback(uint8_t endpoint); -/** @brief Sulfur Dioxide Concentration Measurement Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfSulfurDioxideConcentrationMeasurementClusterClientManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Sulfur Dioxide Concentration Measurement Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfSulfurDioxideConcentrationMeasurementClusterClientMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, - uint8_t * message, EmberStatus status); -/** @brief Sulfur Dioxide Concentration Measurement Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfSulfurDioxideConcentrationMeasurementClusterClientPreAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, EmberAfAttributeType attributeType, uint8_t size, uint8_t * value); -/** @brief Sulfur Dioxide Concentration Measurement Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfSulfurDioxideConcentrationMeasurementClusterClientTickCallback(uint8_t endpoint); -/** @brief Sulfur Dioxide Concentration Measurement Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfSulfurDioxideConcentrationMeasurementClusterServerAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId); -/** @brief Sulfur Dioxide Concentration Measurement Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfSulfurDioxideConcentrationMeasurementClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Sulfur Dioxide Concentration Measurement Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfSulfurDioxideConcentrationMeasurementClusterServerInitCallback(uint8_t endpoint); -/** @brief Sulfur Dioxide Concentration Measurement Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfSulfurDioxideConcentrationMeasurementClusterServerManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Sulfur Dioxide Concentration Measurement Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfSulfurDioxideConcentrationMeasurementClusterServerMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, - uint8_t * message, EmberStatus status); -/** @brief Sulfur Dioxide Concentration Measurement Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfSulfurDioxideConcentrationMeasurementClusterServerPreAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, EmberAfAttributeType attributeType, uint8_t size, uint8_t * value); -/** @brief Sulfur Dioxide Concentration Measurement Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfSulfurDioxideConcentrationMeasurementClusterServerTickCallback(uint8_t endpoint); - -/** @} END Sulfur Dioxide Concentration Measurement Cluster Callbacks */ - -/** @name Dissolved Oxygen Concentration Measurement Cluster Callbacks */ -// @{ - -/** @brief Dissolved Oxygen Concentration Measurement Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfDissolvedOxygenConcentrationMeasurementClusterClientAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId); -/** @brief Dissolved Oxygen Concentration Measurement Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfDissolvedOxygenConcentrationMeasurementClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Dissolved Oxygen Concentration Measurement Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfDissolvedOxygenConcentrationMeasurementClusterClientInitCallback(uint8_t endpoint); -/** @brief Dissolved Oxygen Concentration Measurement Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfDissolvedOxygenConcentrationMeasurementClusterClientManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Dissolved Oxygen Concentration Measurement Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfDissolvedOxygenConcentrationMeasurementClusterClientMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, - uint8_t * message, EmberStatus status); -/** @brief Dissolved Oxygen Concentration Measurement Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfDissolvedOxygenConcentrationMeasurementClusterClientPreAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, EmberAfAttributeType attributeType, uint8_t size, uint8_t * value); -/** @brief Dissolved Oxygen Concentration Measurement Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfDissolvedOxygenConcentrationMeasurementClusterClientTickCallback(uint8_t endpoint); -/** @brief Dissolved Oxygen Concentration Measurement Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfDissolvedOxygenConcentrationMeasurementClusterServerAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId); -/** @brief Dissolved Oxygen Concentration Measurement Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfDissolvedOxygenConcentrationMeasurementClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Dissolved Oxygen Concentration Measurement Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfDissolvedOxygenConcentrationMeasurementClusterServerInitCallback(uint8_t endpoint); -/** @brief Dissolved Oxygen Concentration Measurement Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfDissolvedOxygenConcentrationMeasurementClusterServerManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Dissolved Oxygen Concentration Measurement Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfDissolvedOxygenConcentrationMeasurementClusterServerMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, - uint8_t * message, EmberStatus status); -/** @brief Dissolved Oxygen Concentration Measurement Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfDissolvedOxygenConcentrationMeasurementClusterServerPreAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, EmberAfAttributeType attributeType, uint8_t size, uint8_t * value); -/** @brief Dissolved Oxygen Concentration Measurement Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfDissolvedOxygenConcentrationMeasurementClusterServerTickCallback(uint8_t endpoint); - -/** @} END Dissolved Oxygen Concentration Measurement Cluster Callbacks */ - -/** @name Bromate Concentration Measurement Cluster Callbacks */ -// @{ - -/** @brief Bromate Concentration Measurement Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfBromateConcentrationMeasurementClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Bromate Concentration Measurement Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfBromateConcentrationMeasurementClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Bromate Concentration Measurement Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfBromateConcentrationMeasurementClusterClientInitCallback(uint8_t endpoint); -/** @brief Bromate Concentration Measurement Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfBromateConcentrationMeasurementClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Bromate Concentration Measurement Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfBromateConcentrationMeasurementClusterClientMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, EmberApsFrame * apsFrame, - uint16_t msgLen, uint8_t * message, EmberStatus status); -/** @brief Bromate Concentration Measurement Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfBromateConcentrationMeasurementClusterClientPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Bromate Concentration Measurement Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfBromateConcentrationMeasurementClusterClientTickCallback(uint8_t endpoint); -/** @brief Bromate Concentration Measurement Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfBromateConcentrationMeasurementClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Bromate Concentration Measurement Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfBromateConcentrationMeasurementClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Bromate Concentration Measurement Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfBromateConcentrationMeasurementClusterServerInitCallback(uint8_t endpoint); -/** @brief Bromate Concentration Measurement Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfBromateConcentrationMeasurementClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Bromate Concentration Measurement Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfBromateConcentrationMeasurementClusterServerMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, EmberApsFrame * apsFrame, - uint16_t msgLen, uint8_t * message, EmberStatus status); -/** @brief Bromate Concentration Measurement Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfBromateConcentrationMeasurementClusterServerPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Bromate Concentration Measurement Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfBromateConcentrationMeasurementClusterServerTickCallback(uint8_t endpoint); - -/** @} END Bromate Concentration Measurement Cluster Callbacks */ - -/** @name Chloramines Concentration Measurement Cluster Callbacks */ -// @{ - -/** @brief Chloramines Concentration Measurement Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfChloraminesConcentrationMeasurementClusterClientAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId); -/** @brief Chloramines Concentration Measurement Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfChloraminesConcentrationMeasurementClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Chloramines Concentration Measurement Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfChloraminesConcentrationMeasurementClusterClientInitCallback(uint8_t endpoint); -/** @brief Chloramines Concentration Measurement Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfChloraminesConcentrationMeasurementClusterClientManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Chloramines Concentration Measurement Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfChloraminesConcentrationMeasurementClusterClientMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, - uint8_t * message, EmberStatus status); -/** @brief Chloramines Concentration Measurement Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfChloraminesConcentrationMeasurementClusterClientPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Chloramines Concentration Measurement Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfChloraminesConcentrationMeasurementClusterClientTickCallback(uint8_t endpoint); -/** @brief Chloramines Concentration Measurement Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfChloraminesConcentrationMeasurementClusterServerAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId); -/** @brief Chloramines Concentration Measurement Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfChloraminesConcentrationMeasurementClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Chloramines Concentration Measurement Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfChloraminesConcentrationMeasurementClusterServerInitCallback(uint8_t endpoint); -/** @brief Chloramines Concentration Measurement Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfChloraminesConcentrationMeasurementClusterServerManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Chloramines Concentration Measurement Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfChloraminesConcentrationMeasurementClusterServerMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, - uint8_t * message, EmberStatus status); -/** @brief Chloramines Concentration Measurement Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfChloraminesConcentrationMeasurementClusterServerPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Chloramines Concentration Measurement Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfChloraminesConcentrationMeasurementClusterServerTickCallback(uint8_t endpoint); - -/** @} END Chloramines Concentration Measurement Cluster Callbacks */ - -/** @name Chlorine Concentration Measurement Cluster Callbacks */ -// @{ - -/** @brief Chlorine Concentration Measurement Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfChlorineConcentrationMeasurementClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Chlorine Concentration Measurement Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfChlorineConcentrationMeasurementClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Chlorine Concentration Measurement Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfChlorineConcentrationMeasurementClusterClientInitCallback(uint8_t endpoint); -/** @brief Chlorine Concentration Measurement Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfChlorineConcentrationMeasurementClusterClientManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Chlorine Concentration Measurement Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfChlorineConcentrationMeasurementClusterClientMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, EmberApsFrame * apsFrame, - uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Chlorine Concentration Measurement Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfChlorineConcentrationMeasurementClusterClientPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Chlorine Concentration Measurement Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfChlorineConcentrationMeasurementClusterClientTickCallback(uint8_t endpoint); -/** @brief Chlorine Concentration Measurement Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfChlorineConcentrationMeasurementClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Chlorine Concentration Measurement Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfChlorineConcentrationMeasurementClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Chlorine Concentration Measurement Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfChlorineConcentrationMeasurementClusterServerInitCallback(uint8_t endpoint); -/** @brief Chlorine Concentration Measurement Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfChlorineConcentrationMeasurementClusterServerManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Chlorine Concentration Measurement Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfChlorineConcentrationMeasurementClusterServerMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, EmberApsFrame * apsFrame, - uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Chlorine Concentration Measurement Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfChlorineConcentrationMeasurementClusterServerPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Chlorine Concentration Measurement Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfChlorineConcentrationMeasurementClusterServerTickCallback(uint8_t endpoint); - -/** @} END Chlorine Concentration Measurement Cluster Callbacks */ - -/** @name Fecal coliform and E. Coli Concentration Measurement Cluster Callbacks */ -// @{ - -/** @brief Fecal coliform and E. Coli Concentration Measurement Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfFecalColiformAndEColiConcentrationMeasurementClusterClientAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId); -/** @brief Fecal coliform and E. Coli Concentration Measurement Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfFecalColiformAndEColiConcentrationMeasurementClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Fecal coliform and E. Coli Concentration Measurement Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfFecalColiformAndEColiConcentrationMeasurementClusterClientInitCallback(uint8_t endpoint); -/** @brief Fecal coliform and E. Coli Concentration Measurement Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfFecalColiformAndEColiConcentrationMeasurementClusterClientManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Fecal coliform and E. Coli Concentration Measurement Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfFecalColiformAndEColiConcentrationMeasurementClusterClientMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, - uint8_t * message, EmberStatus status); -/** @brief Fecal coliform and E. Coli Concentration Measurement Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfFecalColiformAndEColiConcentrationMeasurementClusterClientPreAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, EmberAfAttributeType attributeType, uint8_t size, uint8_t * value); -/** @brief Fecal coliform and E. Coli Concentration Measurement Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfFecalColiformAndEColiConcentrationMeasurementClusterClientTickCallback(uint8_t endpoint); -/** @brief Fecal coliform and E. Coli Concentration Measurement Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfFecalColiformAndEColiConcentrationMeasurementClusterServerAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId); -/** @brief Fecal coliform and E. Coli Concentration Measurement Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfFecalColiformAndEColiConcentrationMeasurementClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Fecal coliform and E. Coli Concentration Measurement Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfFecalColiformAndEColiConcentrationMeasurementClusterServerInitCallback(uint8_t endpoint); -/** @brief Fecal coliform and E. Coli Concentration Measurement Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfFecalColiformAndEColiConcentrationMeasurementClusterServerManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Fecal coliform and E. Coli Concentration Measurement Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfFecalColiformAndEColiConcentrationMeasurementClusterServerMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, - uint8_t * message, EmberStatus status); -/** @brief Fecal coliform and E. Coli Concentration Measurement Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfFecalColiformAndEColiConcentrationMeasurementClusterServerPreAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, EmberAfAttributeType attributeType, uint8_t size, uint8_t * value); -/** @brief Fecal coliform and E. Coli Concentration Measurement Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfFecalColiformAndEColiConcentrationMeasurementClusterServerTickCallback(uint8_t endpoint); - -/** @} END Fecal coliform and E. Coli Concentration Measurement Cluster Callbacks */ - -/** @name Fluoride Concentration Measurement Cluster Callbacks */ -// @{ - -/** @brief Fluoride Concentration Measurement Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfFluorideConcentrationMeasurementClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Fluoride Concentration Measurement Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfFluorideConcentrationMeasurementClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Fluoride Concentration Measurement Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfFluorideConcentrationMeasurementClusterClientInitCallback(uint8_t endpoint); -/** @brief Fluoride Concentration Measurement Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfFluorideConcentrationMeasurementClusterClientManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Fluoride Concentration Measurement Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfFluorideConcentrationMeasurementClusterClientMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, EmberApsFrame * apsFrame, - uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Fluoride Concentration Measurement Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfFluorideConcentrationMeasurementClusterClientPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Fluoride Concentration Measurement Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfFluorideConcentrationMeasurementClusterClientTickCallback(uint8_t endpoint); -/** @brief Fluoride Concentration Measurement Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfFluorideConcentrationMeasurementClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Fluoride Concentration Measurement Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfFluorideConcentrationMeasurementClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Fluoride Concentration Measurement Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfFluorideConcentrationMeasurementClusterServerInitCallback(uint8_t endpoint); -/** @brief Fluoride Concentration Measurement Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfFluorideConcentrationMeasurementClusterServerManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Fluoride Concentration Measurement Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfFluorideConcentrationMeasurementClusterServerMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, EmberApsFrame * apsFrame, - uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Fluoride Concentration Measurement Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfFluorideConcentrationMeasurementClusterServerPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Fluoride Concentration Measurement Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfFluorideConcentrationMeasurementClusterServerTickCallback(uint8_t endpoint); - -/** @} END Fluoride Concentration Measurement Cluster Callbacks */ - -/** @name Haloacetic Acids Concentration Measurement Cluster Callbacks */ -// @{ - -/** @brief Haloacetic Acids Concentration Measurement Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfHaloaceticAcidsConcentrationMeasurementClusterClientAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId); -/** @brief Haloacetic Acids Concentration Measurement Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfHaloaceticAcidsConcentrationMeasurementClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Haloacetic Acids Concentration Measurement Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfHaloaceticAcidsConcentrationMeasurementClusterClientInitCallback(uint8_t endpoint); -/** @brief Haloacetic Acids Concentration Measurement Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfHaloaceticAcidsConcentrationMeasurementClusterClientManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Haloacetic Acids Concentration Measurement Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfHaloaceticAcidsConcentrationMeasurementClusterClientMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, - uint8_t * message, EmberStatus status); -/** @brief Haloacetic Acids Concentration Measurement Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfHaloaceticAcidsConcentrationMeasurementClusterClientPreAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, EmberAfAttributeType attributeType, uint8_t size, uint8_t * value); -/** @brief Haloacetic Acids Concentration Measurement Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfHaloaceticAcidsConcentrationMeasurementClusterClientTickCallback(uint8_t endpoint); -/** @brief Haloacetic Acids Concentration Measurement Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfHaloaceticAcidsConcentrationMeasurementClusterServerAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId); -/** @brief Haloacetic Acids Concentration Measurement Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfHaloaceticAcidsConcentrationMeasurementClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Haloacetic Acids Concentration Measurement Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfHaloaceticAcidsConcentrationMeasurementClusterServerInitCallback(uint8_t endpoint); -/** @brief Haloacetic Acids Concentration Measurement Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfHaloaceticAcidsConcentrationMeasurementClusterServerManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Haloacetic Acids Concentration Measurement Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfHaloaceticAcidsConcentrationMeasurementClusterServerMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, - uint8_t * message, EmberStatus status); -/** @brief Haloacetic Acids Concentration Measurement Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfHaloaceticAcidsConcentrationMeasurementClusterServerPreAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, EmberAfAttributeType attributeType, uint8_t size, uint8_t * value); -/** @brief Haloacetic Acids Concentration Measurement Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfHaloaceticAcidsConcentrationMeasurementClusterServerTickCallback(uint8_t endpoint); - -/** @} END Haloacetic Acids Concentration Measurement Cluster Callbacks */ - -/** @name Total Trihalomethanes Concentration Measurement Cluster Callbacks */ -// @{ - -/** @brief Total Trihalomethanes Concentration Measurement Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfTotalTrihalomethanesConcentrationMeasurementClusterClientAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId); -/** @brief Total Trihalomethanes Concentration Measurement Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfTotalTrihalomethanesConcentrationMeasurementClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Total Trihalomethanes Concentration Measurement Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfTotalTrihalomethanesConcentrationMeasurementClusterClientInitCallback(uint8_t endpoint); -/** @brief Total Trihalomethanes Concentration Measurement Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfTotalTrihalomethanesConcentrationMeasurementClusterClientManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Total Trihalomethanes Concentration Measurement Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfTotalTrihalomethanesConcentrationMeasurementClusterClientMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, - uint8_t * message, EmberStatus status); -/** @brief Total Trihalomethanes Concentration Measurement Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfTotalTrihalomethanesConcentrationMeasurementClusterClientPreAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, EmberAfAttributeType attributeType, uint8_t size, uint8_t * value); -/** @brief Total Trihalomethanes Concentration Measurement Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfTotalTrihalomethanesConcentrationMeasurementClusterClientTickCallback(uint8_t endpoint); -/** @brief Total Trihalomethanes Concentration Measurement Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfTotalTrihalomethanesConcentrationMeasurementClusterServerAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId); -/** @brief Total Trihalomethanes Concentration Measurement Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfTotalTrihalomethanesConcentrationMeasurementClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Total Trihalomethanes Concentration Measurement Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfTotalTrihalomethanesConcentrationMeasurementClusterServerInitCallback(uint8_t endpoint); -/** @brief Total Trihalomethanes Concentration Measurement Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfTotalTrihalomethanesConcentrationMeasurementClusterServerManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Total Trihalomethanes Concentration Measurement Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfTotalTrihalomethanesConcentrationMeasurementClusterServerMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, - uint8_t * message, EmberStatus status); -/** @brief Total Trihalomethanes Concentration Measurement Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfTotalTrihalomethanesConcentrationMeasurementClusterServerPreAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, EmberAfAttributeType attributeType, uint8_t size, uint8_t * value); -/** @brief Total Trihalomethanes Concentration Measurement Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfTotalTrihalomethanesConcentrationMeasurementClusterServerTickCallback(uint8_t endpoint); - -/** @} END Total Trihalomethanes Concentration Measurement Cluster Callbacks */ - -/** @name Total Coliform Bacteria Concentration Measurement Cluster Callbacks */ -// @{ - -/** @brief Total Coliform Bacteria Concentration Measurement Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfTotalColiformBacteriaConcentrationMeasurementClusterClientAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId); -/** @brief Total Coliform Bacteria Concentration Measurement Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfTotalColiformBacteriaConcentrationMeasurementClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Total Coliform Bacteria Concentration Measurement Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfTotalColiformBacteriaConcentrationMeasurementClusterClientInitCallback(uint8_t endpoint); -/** @brief Total Coliform Bacteria Concentration Measurement Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfTotalColiformBacteriaConcentrationMeasurementClusterClientManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Total Coliform Bacteria Concentration Measurement Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfTotalColiformBacteriaConcentrationMeasurementClusterClientMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, - uint8_t * message, EmberStatus status); -/** @brief Total Coliform Bacteria Concentration Measurement Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfTotalColiformBacteriaConcentrationMeasurementClusterClientPreAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, EmberAfAttributeType attributeType, uint8_t size, uint8_t * value); -/** @brief Total Coliform Bacteria Concentration Measurement Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfTotalColiformBacteriaConcentrationMeasurementClusterClientTickCallback(uint8_t endpoint); -/** @brief Total Coliform Bacteria Concentration Measurement Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfTotalColiformBacteriaConcentrationMeasurementClusterServerAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId); -/** @brief Total Coliform Bacteria Concentration Measurement Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfTotalColiformBacteriaConcentrationMeasurementClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Total Coliform Bacteria Concentration Measurement Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfTotalColiformBacteriaConcentrationMeasurementClusterServerInitCallback(uint8_t endpoint); -/** @brief Total Coliform Bacteria Concentration Measurement Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfTotalColiformBacteriaConcentrationMeasurementClusterServerManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Total Coliform Bacteria Concentration Measurement Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfTotalColiformBacteriaConcentrationMeasurementClusterServerMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, - uint8_t * message, EmberStatus status); -/** @brief Total Coliform Bacteria Concentration Measurement Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfTotalColiformBacteriaConcentrationMeasurementClusterServerPreAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, EmberAfAttributeType attributeType, uint8_t size, uint8_t * value); -/** @brief Total Coliform Bacteria Concentration Measurement Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfTotalColiformBacteriaConcentrationMeasurementClusterServerTickCallback(uint8_t endpoint); - -/** @} END Total Coliform Bacteria Concentration Measurement Cluster Callbacks */ - -/** @name Turbidity Concentration Measurement Cluster Callbacks */ -// @{ - -/** @brief Turbidity Concentration Measurement Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfTurbidityConcentrationMeasurementClusterClientAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId); -/** @brief Turbidity Concentration Measurement Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfTurbidityConcentrationMeasurementClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Turbidity Concentration Measurement Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfTurbidityConcentrationMeasurementClusterClientInitCallback(uint8_t endpoint); -/** @brief Turbidity Concentration Measurement Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfTurbidityConcentrationMeasurementClusterClientManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Turbidity Concentration Measurement Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfTurbidityConcentrationMeasurementClusterClientMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, EmberApsFrame * apsFrame, - uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Turbidity Concentration Measurement Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfTurbidityConcentrationMeasurementClusterClientPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Turbidity Concentration Measurement Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfTurbidityConcentrationMeasurementClusterClientTickCallback(uint8_t endpoint); -/** @brief Turbidity Concentration Measurement Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfTurbidityConcentrationMeasurementClusterServerAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId); -/** @brief Turbidity Concentration Measurement Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfTurbidityConcentrationMeasurementClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Turbidity Concentration Measurement Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfTurbidityConcentrationMeasurementClusterServerInitCallback(uint8_t endpoint); -/** @brief Turbidity Concentration Measurement Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfTurbidityConcentrationMeasurementClusterServerManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Turbidity Concentration Measurement Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfTurbidityConcentrationMeasurementClusterServerMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, EmberApsFrame * apsFrame, - uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Turbidity Concentration Measurement Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfTurbidityConcentrationMeasurementClusterServerPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Turbidity Concentration Measurement Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfTurbidityConcentrationMeasurementClusterServerTickCallback(uint8_t endpoint); - -/** @} END Turbidity Concentration Measurement Cluster Callbacks */ - -/** @name Copper Concentration Measurement Cluster Callbacks */ -// @{ - -/** @brief Copper Concentration Measurement Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfCopperConcentrationMeasurementClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Copper Concentration Measurement Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfCopperConcentrationMeasurementClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Copper Concentration Measurement Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfCopperConcentrationMeasurementClusterClientInitCallback(uint8_t endpoint); -/** @brief Copper Concentration Measurement Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfCopperConcentrationMeasurementClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Copper Concentration Measurement Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfCopperConcentrationMeasurementClusterClientMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, EmberApsFrame * apsFrame, - uint16_t msgLen, uint8_t * message, EmberStatus status); -/** @brief Copper Concentration Measurement Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfCopperConcentrationMeasurementClusterClientPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Copper Concentration Measurement Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfCopperConcentrationMeasurementClusterClientTickCallback(uint8_t endpoint); -/** @brief Copper Concentration Measurement Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfCopperConcentrationMeasurementClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Copper Concentration Measurement Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfCopperConcentrationMeasurementClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Copper Concentration Measurement Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfCopperConcentrationMeasurementClusterServerInitCallback(uint8_t endpoint); -/** @brief Copper Concentration Measurement Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfCopperConcentrationMeasurementClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Copper Concentration Measurement Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfCopperConcentrationMeasurementClusterServerMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, EmberApsFrame * apsFrame, - uint16_t msgLen, uint8_t * message, EmberStatus status); -/** @brief Copper Concentration Measurement Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfCopperConcentrationMeasurementClusterServerPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Copper Concentration Measurement Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfCopperConcentrationMeasurementClusterServerTickCallback(uint8_t endpoint); - -/** @} END Copper Concentration Measurement Cluster Callbacks */ - -/** @name Lead Concentration Measurement Cluster Callbacks */ -// @{ - -/** @brief Lead Concentration Measurement Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfLeadConcentrationMeasurementClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Lead Concentration Measurement Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfLeadConcentrationMeasurementClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Lead Concentration Measurement Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfLeadConcentrationMeasurementClusterClientInitCallback(uint8_t endpoint); -/** @brief Lead Concentration Measurement Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfLeadConcentrationMeasurementClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Lead Concentration Measurement Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfLeadConcentrationMeasurementClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, - uint8_t * message, EmberStatus status); -/** @brief Lead Concentration Measurement Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfLeadConcentrationMeasurementClusterClientPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Lead Concentration Measurement Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfLeadConcentrationMeasurementClusterClientTickCallback(uint8_t endpoint); -/** @brief Lead Concentration Measurement Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfLeadConcentrationMeasurementClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Lead Concentration Measurement Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfLeadConcentrationMeasurementClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Lead Concentration Measurement Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfLeadConcentrationMeasurementClusterServerInitCallback(uint8_t endpoint); -/** @brief Lead Concentration Measurement Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfLeadConcentrationMeasurementClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Lead Concentration Measurement Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfLeadConcentrationMeasurementClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, - uint8_t * message, EmberStatus status); -/** @brief Lead Concentration Measurement Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfLeadConcentrationMeasurementClusterServerPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Lead Concentration Measurement Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfLeadConcentrationMeasurementClusterServerTickCallback(uint8_t endpoint); - -/** @} END Lead Concentration Measurement Cluster Callbacks */ - -/** @name Manganese Concentration Measurement Cluster Callbacks */ -// @{ - -/** @brief Manganese Concentration Measurement Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfManganeseConcentrationMeasurementClusterClientAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId); -/** @brief Manganese Concentration Measurement Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfManganeseConcentrationMeasurementClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Manganese Concentration Measurement Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfManganeseConcentrationMeasurementClusterClientInitCallback(uint8_t endpoint); -/** @brief Manganese Concentration Measurement Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfManganeseConcentrationMeasurementClusterClientManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Manganese Concentration Measurement Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfManganeseConcentrationMeasurementClusterClientMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, EmberApsFrame * apsFrame, - uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Manganese Concentration Measurement Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfManganeseConcentrationMeasurementClusterClientPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Manganese Concentration Measurement Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfManganeseConcentrationMeasurementClusterClientTickCallback(uint8_t endpoint); -/** @brief Manganese Concentration Measurement Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfManganeseConcentrationMeasurementClusterServerAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId); -/** @brief Manganese Concentration Measurement Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfManganeseConcentrationMeasurementClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Manganese Concentration Measurement Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfManganeseConcentrationMeasurementClusterServerInitCallback(uint8_t endpoint); -/** @brief Manganese Concentration Measurement Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfManganeseConcentrationMeasurementClusterServerManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Manganese Concentration Measurement Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfManganeseConcentrationMeasurementClusterServerMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, EmberApsFrame * apsFrame, - uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Manganese Concentration Measurement Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfManganeseConcentrationMeasurementClusterServerPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Manganese Concentration Measurement Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfManganeseConcentrationMeasurementClusterServerTickCallback(uint8_t endpoint); - -/** @} END Manganese Concentration Measurement Cluster Callbacks */ - -/** @name Sulfate Concentration Measurement Cluster Callbacks */ -// @{ - -/** @brief Sulfate Concentration Measurement Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfSulfateConcentrationMeasurementClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Sulfate Concentration Measurement Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfSulfateConcentrationMeasurementClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Sulfate Concentration Measurement Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfSulfateConcentrationMeasurementClusterClientInitCallback(uint8_t endpoint); -/** @brief Sulfate Concentration Measurement Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfSulfateConcentrationMeasurementClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Sulfate Concentration Measurement Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfSulfateConcentrationMeasurementClusterClientMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, EmberApsFrame * apsFrame, - uint16_t msgLen, uint8_t * message, EmberStatus status); -/** @brief Sulfate Concentration Measurement Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfSulfateConcentrationMeasurementClusterClientPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Sulfate Concentration Measurement Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfSulfateConcentrationMeasurementClusterClientTickCallback(uint8_t endpoint); -/** @brief Sulfate Concentration Measurement Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfSulfateConcentrationMeasurementClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Sulfate Concentration Measurement Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfSulfateConcentrationMeasurementClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Sulfate Concentration Measurement Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfSulfateConcentrationMeasurementClusterServerInitCallback(uint8_t endpoint); -/** @brief Sulfate Concentration Measurement Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfSulfateConcentrationMeasurementClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Sulfate Concentration Measurement Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfSulfateConcentrationMeasurementClusterServerMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, EmberApsFrame * apsFrame, - uint16_t msgLen, uint8_t * message, EmberStatus status); -/** @brief Sulfate Concentration Measurement Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfSulfateConcentrationMeasurementClusterServerPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Sulfate Concentration Measurement Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfSulfateConcentrationMeasurementClusterServerTickCallback(uint8_t endpoint); - -/** @} END Sulfate Concentration Measurement Cluster Callbacks */ - -/** @name Bromodichloromethane Concentration Measurement Cluster Callbacks */ -// @{ - -/** @brief Bromodichloromethane Concentration Measurement Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfBromodichloromethaneConcentrationMeasurementClusterClientAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId); -/** @brief Bromodichloromethane Concentration Measurement Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfBromodichloromethaneConcentrationMeasurementClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Bromodichloromethane Concentration Measurement Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfBromodichloromethaneConcentrationMeasurementClusterClientInitCallback(uint8_t endpoint); -/** @brief Bromodichloromethane Concentration Measurement Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfBromodichloromethaneConcentrationMeasurementClusterClientManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Bromodichloromethane Concentration Measurement Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfBromodichloromethaneConcentrationMeasurementClusterClientMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, - uint8_t * message, EmberStatus status); -/** @brief Bromodichloromethane Concentration Measurement Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfBromodichloromethaneConcentrationMeasurementClusterClientPreAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, EmberAfAttributeType attributeType, uint8_t size, uint8_t * value); -/** @brief Bromodichloromethane Concentration Measurement Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfBromodichloromethaneConcentrationMeasurementClusterClientTickCallback(uint8_t endpoint); -/** @brief Bromodichloromethane Concentration Measurement Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfBromodichloromethaneConcentrationMeasurementClusterServerAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId); -/** @brief Bromodichloromethane Concentration Measurement Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfBromodichloromethaneConcentrationMeasurementClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Bromodichloromethane Concentration Measurement Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfBromodichloromethaneConcentrationMeasurementClusterServerInitCallback(uint8_t endpoint); -/** @brief Bromodichloromethane Concentration Measurement Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfBromodichloromethaneConcentrationMeasurementClusterServerManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Bromodichloromethane Concentration Measurement Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfBromodichloromethaneConcentrationMeasurementClusterServerMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, - uint8_t * message, EmberStatus status); -/** @brief Bromodichloromethane Concentration Measurement Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfBromodichloromethaneConcentrationMeasurementClusterServerPreAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, EmberAfAttributeType attributeType, uint8_t size, uint8_t * value); -/** @brief Bromodichloromethane Concentration Measurement Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfBromodichloromethaneConcentrationMeasurementClusterServerTickCallback(uint8_t endpoint); - -/** @} END Bromodichloromethane Concentration Measurement Cluster Callbacks */ - -/** @name Bromoform Concentration Measurement Cluster Callbacks */ -// @{ - -/** @brief Bromoform Concentration Measurement Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfBromoformConcentrationMeasurementClusterClientAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId); -/** @brief Bromoform Concentration Measurement Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfBromoformConcentrationMeasurementClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Bromoform Concentration Measurement Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfBromoformConcentrationMeasurementClusterClientInitCallback(uint8_t endpoint); -/** @brief Bromoform Concentration Measurement Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfBromoformConcentrationMeasurementClusterClientManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Bromoform Concentration Measurement Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfBromoformConcentrationMeasurementClusterClientMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, EmberApsFrame * apsFrame, - uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Bromoform Concentration Measurement Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfBromoformConcentrationMeasurementClusterClientPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Bromoform Concentration Measurement Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfBromoformConcentrationMeasurementClusterClientTickCallback(uint8_t endpoint); -/** @brief Bromoform Concentration Measurement Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfBromoformConcentrationMeasurementClusterServerAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId); -/** @brief Bromoform Concentration Measurement Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfBromoformConcentrationMeasurementClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Bromoform Concentration Measurement Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfBromoformConcentrationMeasurementClusterServerInitCallback(uint8_t endpoint); -/** @brief Bromoform Concentration Measurement Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfBromoformConcentrationMeasurementClusterServerManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Bromoform Concentration Measurement Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfBromoformConcentrationMeasurementClusterServerMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, EmberApsFrame * apsFrame, - uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Bromoform Concentration Measurement Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfBromoformConcentrationMeasurementClusterServerPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Bromoform Concentration Measurement Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfBromoformConcentrationMeasurementClusterServerTickCallback(uint8_t endpoint); - -/** @} END Bromoform Concentration Measurement Cluster Callbacks */ - -/** @name Chlorodibromomethane Concentration Measurement Cluster Callbacks */ -// @{ - -/** @brief Chlorodibromomethane Concentration Measurement Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfChlorodibromomethaneConcentrationMeasurementClusterClientAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId); -/** @brief Chlorodibromomethane Concentration Measurement Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfChlorodibromomethaneConcentrationMeasurementClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Chlorodibromomethane Concentration Measurement Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfChlorodibromomethaneConcentrationMeasurementClusterClientInitCallback(uint8_t endpoint); -/** @brief Chlorodibromomethane Concentration Measurement Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfChlorodibromomethaneConcentrationMeasurementClusterClientManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Chlorodibromomethane Concentration Measurement Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfChlorodibromomethaneConcentrationMeasurementClusterClientMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, - uint8_t * message, EmberStatus status); -/** @brief Chlorodibromomethane Concentration Measurement Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfChlorodibromomethaneConcentrationMeasurementClusterClientPreAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, EmberAfAttributeType attributeType, uint8_t size, uint8_t * value); -/** @brief Chlorodibromomethane Concentration Measurement Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfChlorodibromomethaneConcentrationMeasurementClusterClientTickCallback(uint8_t endpoint); -/** @brief Chlorodibromomethane Concentration Measurement Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfChlorodibromomethaneConcentrationMeasurementClusterServerAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId); -/** @brief Chlorodibromomethane Concentration Measurement Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfChlorodibromomethaneConcentrationMeasurementClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Chlorodibromomethane Concentration Measurement Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfChlorodibromomethaneConcentrationMeasurementClusterServerInitCallback(uint8_t endpoint); -/** @brief Chlorodibromomethane Concentration Measurement Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfChlorodibromomethaneConcentrationMeasurementClusterServerManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Chlorodibromomethane Concentration Measurement Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfChlorodibromomethaneConcentrationMeasurementClusterServerMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, - uint8_t * message, EmberStatus status); -/** @brief Chlorodibromomethane Concentration Measurement Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfChlorodibromomethaneConcentrationMeasurementClusterServerPreAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, EmberAfAttributeType attributeType, uint8_t size, uint8_t * value); -/** @brief Chlorodibromomethane Concentration Measurement Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfChlorodibromomethaneConcentrationMeasurementClusterServerTickCallback(uint8_t endpoint); - -/** @} END Chlorodibromomethane Concentration Measurement Cluster Callbacks */ - -/** @name Chloroform Concentration Measurement Cluster Callbacks */ -// @{ - -/** @brief Chloroform Concentration Measurement Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfChloroformConcentrationMeasurementClusterClientAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId); -/** @brief Chloroform Concentration Measurement Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfChloroformConcentrationMeasurementClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Chloroform Concentration Measurement Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfChloroformConcentrationMeasurementClusterClientInitCallback(uint8_t endpoint); -/** @brief Chloroform Concentration Measurement Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfChloroformConcentrationMeasurementClusterClientManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Chloroform Concentration Measurement Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfChloroformConcentrationMeasurementClusterClientMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, - uint8_t * message, EmberStatus status); -/** @brief Chloroform Concentration Measurement Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfChloroformConcentrationMeasurementClusterClientPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Chloroform Concentration Measurement Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfChloroformConcentrationMeasurementClusterClientTickCallback(uint8_t endpoint); -/** @brief Chloroform Concentration Measurement Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfChloroformConcentrationMeasurementClusterServerAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId); -/** @brief Chloroform Concentration Measurement Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfChloroformConcentrationMeasurementClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Chloroform Concentration Measurement Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfChloroformConcentrationMeasurementClusterServerInitCallback(uint8_t endpoint); -/** @brief Chloroform Concentration Measurement Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfChloroformConcentrationMeasurementClusterServerManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Chloroform Concentration Measurement Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfChloroformConcentrationMeasurementClusterServerMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, - uint8_t * message, EmberStatus status); -/** @brief Chloroform Concentration Measurement Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfChloroformConcentrationMeasurementClusterServerPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Chloroform Concentration Measurement Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfChloroformConcentrationMeasurementClusterServerTickCallback(uint8_t endpoint); - -/** @} END Chloroform Concentration Measurement Cluster Callbacks */ - -/** @name Sodium Concentration Measurement Cluster Callbacks */ -// @{ - -/** @brief Sodium Concentration Measurement Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfSodiumConcentrationMeasurementClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Sodium Concentration Measurement Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfSodiumConcentrationMeasurementClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Sodium Concentration Measurement Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfSodiumConcentrationMeasurementClusterClientInitCallback(uint8_t endpoint); -/** @brief Sodium Concentration Measurement Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfSodiumConcentrationMeasurementClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Sodium Concentration Measurement Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfSodiumConcentrationMeasurementClusterClientMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, EmberApsFrame * apsFrame, - uint16_t msgLen, uint8_t * message, EmberStatus status); -/** @brief Sodium Concentration Measurement Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfSodiumConcentrationMeasurementClusterClientPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Sodium Concentration Measurement Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfSodiumConcentrationMeasurementClusterClientTickCallback(uint8_t endpoint); -/** @brief Sodium Concentration Measurement Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfSodiumConcentrationMeasurementClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Sodium Concentration Measurement Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfSodiumConcentrationMeasurementClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Sodium Concentration Measurement Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfSodiumConcentrationMeasurementClusterServerInitCallback(uint8_t endpoint); -/** @brief Sodium Concentration Measurement Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfSodiumConcentrationMeasurementClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Sodium Concentration Measurement Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfSodiumConcentrationMeasurementClusterServerMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, EmberApsFrame * apsFrame, - uint16_t msgLen, uint8_t * message, EmberStatus status); -/** @brief Sodium Concentration Measurement Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfSodiumConcentrationMeasurementClusterServerPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Sodium Concentration Measurement Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfSodiumConcentrationMeasurementClusterServerTickCallback(uint8_t endpoint); - -/** @} END Sodium Concentration Measurement Cluster Callbacks */ - -/** @name IAS Zone Cluster Callbacks */ -// @{ - -/** @brief IAS Zone Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfIasZoneClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief IAS Zone Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfIasZoneClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief IAS Zone Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfIasZoneClusterClientInitCallback(uint8_t endpoint); -/** @brief IAS Zone Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfIasZoneClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief IAS Zone Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfIasZoneClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief IAS Zone Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfIasZoneClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief IAS Zone Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfIasZoneClusterClientTickCallback(uint8_t endpoint); -/** @brief IAS Zone Cluster Initiate Normal Operation Mode - * - * - * - */ -bool emberAfIasZoneClusterInitiateNormalOperationModeCallback(void); -/** @brief IAS Zone Cluster Initiate Normal Operation Mode Response - * - * - * - */ -bool emberAfIasZoneClusterInitiateNormalOperationModeResponseCallback(void); -/** @brief IAS Zone Cluster Initiate Test Mode - * - * - * - * @param testModeDuration Ver.: always - * @param currentZoneSensitivityLevel Ver.: always - */ -bool emberAfIasZoneClusterInitiateTestModeCallback(uint8_t testModeDuration, uint8_t currentZoneSensitivityLevel); -/** @brief IAS Zone Cluster Initiate Test Mode Response - * - * - * - */ -bool emberAfIasZoneClusterInitiateTestModeResponseCallback(void); -/** @brief IAS Zone Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfIasZoneClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief IAS Zone Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfIasZoneClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief IAS Zone Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfIasZoneClusterServerInitCallback(uint8_t endpoint); -/** @brief IAS Zone Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfIasZoneClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief IAS Zone Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfIasZoneClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief IAS Zone Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfIasZoneClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief IAS Zone Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfIasZoneClusterServerTickCallback(uint8_t endpoint); -/** @brief IAS Zone Cluster Zone Enroll Request - * - * - * - * @param zoneType Ver.: always - * @param manufacturerCode Ver.: always - */ -bool emberAfIasZoneClusterZoneEnrollRequestCallback(uint16_t zoneType, uint16_t manufacturerCode); -/** @brief IAS Zone Cluster Zone Enroll Response - * - * - * - * @param enrollResponseCode Ver.: always - * @param zoneId Ver.: always - */ -bool emberAfIasZoneClusterZoneEnrollResponseCallback(uint8_t enrollResponseCode, uint8_t zoneId); -/** @brief IAS Zone Cluster Zone Status Change Notification - * - * - * - * @param zoneStatus Ver.: always - * @param extendedStatus Ver.: always - * @param zoneId Ver.: since ha-1.2-05-3520-29 - * @param delay Ver.: since ha-1.2-05-3520-29 - */ -bool emberAfIasZoneClusterZoneStatusChangeNotificationCallback(uint16_t zoneStatus, uint8_t extendedStatus, uint8_t zoneId, - uint16_t delay); - -/** @} END IAS Zone Cluster Callbacks */ - -/** @name IAS ACE Cluster Callbacks */ -// @{ - -/** @brief IAS ACE Cluster Arm - * - * - * - * @param armMode Ver.: always - * @param armDisarmCode Ver.: since ha-1.2-05-3520-29 - * @param zoneId Ver.: since ha-1.2-05-3520-29 - */ -bool emberAfIasAceClusterArmCallback(uint8_t armMode, uint8_t * armDisarmCode, uint8_t zoneId); -/** @brief IAS ACE Cluster Arm Response - * - * - * - * @param armNotification Ver.: always - */ -bool emberAfIasAceClusterArmResponseCallback(uint8_t armNotification); -/** @brief IAS ACE Cluster Bypass - * - * - * - * @param numberOfZones Ver.: always - * @param zoneIds Ver.: always - * @param armDisarmCode Ver.: since ha-1.2.1-05-3520-30 - */ -bool emberAfIasAceClusterBypassCallback(uint8_t numberOfZones, uint8_t * zoneIds, uint8_t * armDisarmCode); -/** @brief IAS ACE Cluster Bypass Response - * - * - * - * @param numberOfZones Ver.: always - * @param bypassResult Ver.: always - */ -bool emberAfIasAceClusterBypassResponseCallback(uint8_t numberOfZones, uint8_t * bypassResult); -/** @brief IAS ACE Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfIasAceClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief IAS ACE Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfIasAceClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief IAS ACE Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfIasAceClusterClientInitCallback(uint8_t endpoint); -/** @brief IAS ACE Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfIasAceClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief IAS ACE Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfIasAceClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief IAS ACE Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfIasAceClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief IAS ACE Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfIasAceClusterClientTickCallback(uint8_t endpoint); -/** @brief IAS ACE Cluster Emergency - * - * - * - */ -bool emberAfIasAceClusterEmergencyCallback(void); -/** @brief IAS ACE Cluster Fire - * - * - * - */ -bool emberAfIasAceClusterFireCallback(void); -/** @brief IAS ACE Cluster Get Bypassed Zone List - * - * - * - */ -bool emberAfIasAceClusterGetBypassedZoneListCallback(void); -/** @brief IAS ACE Cluster Get Panel Status - * - * - * - */ -bool emberAfIasAceClusterGetPanelStatusCallback(void); -/** @brief IAS ACE Cluster Get Panel Status Response - * - * - * - * @param panelStatus Ver.: always - * @param secondsRemaining Ver.: always - * @param audibleNotification Ver.: always - * @param alarmStatus Ver.: always - */ -bool emberAfIasAceClusterGetPanelStatusResponseCallback(uint8_t panelStatus, uint8_t secondsRemaining, uint8_t audibleNotification, - uint8_t alarmStatus); -/** @brief IAS ACE Cluster Get Zone Id Map - * - * - * - */ -bool emberAfIasAceClusterGetZoneIdMapCallback(void); -/** @brief IAS ACE Cluster Get Zone Id Map Response - * - * - * - * @param section0 Ver.: always - * @param section1 Ver.: always - * @param section2 Ver.: always - * @param section3 Ver.: always - * @param section4 Ver.: always - * @param section5 Ver.: always - * @param section6 Ver.: always - * @param section7 Ver.: always - * @param section8 Ver.: always - * @param section9 Ver.: always - * @param section10 Ver.: always - * @param section11 Ver.: always - * @param section12 Ver.: always - * @param section13 Ver.: always - * @param section14 Ver.: always - * @param section15 Ver.: always - */ -bool emberAfIasAceClusterGetZoneIdMapResponseCallback(uint16_t section0, uint16_t section1, uint16_t section2, uint16_t section3, - uint16_t section4, uint16_t section5, uint16_t section6, uint16_t section7, - uint16_t section8, uint16_t section9, uint16_t section10, uint16_t section11, - uint16_t section12, uint16_t section13, uint16_t section14, - uint16_t section15); -/** @brief IAS ACE Cluster Get Zone Information - * - * - * - * @param zoneId Ver.: always - */ -bool emberAfIasAceClusterGetZoneInformationCallback(uint8_t zoneId); -/** @brief IAS ACE Cluster Get Zone Information Response - * - * - * - * @param zoneId Ver.: always - * @param zoneType Ver.: always - * @param ieeeAddress Ver.: always - * @param zoneLabel Ver.: since ha-1.2.1-05-3520-30 - */ -bool emberAfIasAceClusterGetZoneInformationResponseCallback(uint8_t zoneId, uint16_t zoneType, uint8_t * ieeeAddress, - uint8_t * zoneLabel); -/** @brief IAS ACE Cluster Get Zone Status - * - * - * - * @param startingZoneId Ver.: always - * @param maxNumberOfZoneIds Ver.: always - * @param zoneStatusMaskFlag Ver.: always - * @param zoneStatusMask Ver.: always - */ -bool emberAfIasAceClusterGetZoneStatusCallback(uint8_t startingZoneId, uint8_t maxNumberOfZoneIds, uint8_t zoneStatusMaskFlag, - uint16_t zoneStatusMask); -/** @brief IAS ACE Cluster Get Zone Status Response - * - * - * - * @param zoneStatusComplete Ver.: always - * @param numberOfZones Ver.: always - * @param zoneStatusResult Ver.: always - */ -bool emberAfIasAceClusterGetZoneStatusResponseCallback(uint8_t zoneStatusComplete, uint8_t numberOfZones, - uint8_t * zoneStatusResult); -/** @brief IAS ACE Cluster Panel Status Changed - * - * - * - * @param panelStatus Ver.: always - * @param secondsRemaining Ver.: always - * @param audibleNotification Ver.: since ha-1.2.1-05-3520-30 - * @param alarmStatus Ver.: since ha-1.2.1-05-3520-30 - */ -bool emberAfIasAceClusterPanelStatusChangedCallback(uint8_t panelStatus, uint8_t secondsRemaining, uint8_t audibleNotification, - uint8_t alarmStatus); -/** @brief IAS ACE Cluster Panic - * - * - * - */ -bool emberAfIasAceClusterPanicCallback(void); -/** @brief IAS ACE Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfIasAceClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief IAS ACE Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfIasAceClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief IAS ACE Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfIasAceClusterServerInitCallback(uint8_t endpoint); -/** @brief IAS ACE Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfIasAceClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief IAS ACE Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfIasAceClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief IAS ACE Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfIasAceClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief IAS ACE Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfIasAceClusterServerTickCallback(uint8_t endpoint); -/** @brief IAS ACE Cluster Set Bypassed Zone List - * - * - * - * @param numberOfZones Ver.: always - * @param zoneIds Ver.: always - */ -bool emberAfIasAceClusterSetBypassedZoneListCallback(uint8_t numberOfZones, uint8_t * zoneIds); -/** @brief IAS ACE Cluster Zone Status Changed - * - * - * - * @param zoneId Ver.: always - * @param zoneStatus Ver.: always - * @param audibleNotification Ver.: since ha-1.2.1-05-3520-30 - * @param zoneLabel Ver.: since ha-1.2.1-05-3520-30 - */ -bool emberAfIasAceClusterZoneStatusChangedCallback(uint8_t zoneId, uint16_t zoneStatus, uint8_t audibleNotification, - uint8_t * zoneLabel); - -/** @} END IAS ACE Cluster Callbacks */ - -/** @name IAS WD Cluster Callbacks */ -// @{ - -/** @brief IAS WD Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfIasWdClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief IAS WD Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfIasWdClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief IAS WD Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfIasWdClusterClientInitCallback(uint8_t endpoint); -/** @brief IAS WD Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfIasWdClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief IAS WD Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfIasWdClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, EmberStatus status); -/** @brief IAS WD Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfIasWdClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief IAS WD Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfIasWdClusterClientTickCallback(uint8_t endpoint); -/** @brief IAS WD Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfIasWdClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief IAS WD Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfIasWdClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief IAS WD Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfIasWdClusterServerInitCallback(uint8_t endpoint); -/** @brief IAS WD Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfIasWdClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief IAS WD Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfIasWdClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, EmberStatus status); -/** @brief IAS WD Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfIasWdClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief IAS WD Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfIasWdClusterServerTickCallback(uint8_t endpoint); -/** @brief IAS WD Cluster Squawk - * - * - * - * @param squawkInfo Ver.: always - */ -bool emberAfIasWdClusterSquawkCallback(uint8_t squawkInfo); -/** @brief IAS WD Cluster Start Warning - * - * - * - * @param warningInfo Ver.: always - * @param warningDuration Ver.: always - * @param strobeDutyCycle Ver.: since ha-1.2-05-3520-29 - * @param strobeLevel Ver.: since ha-1.2-05-3520-29 - */ -bool emberAfIasWdClusterStartWarningCallback(uint8_t warningInfo, uint16_t warningDuration, uint8_t strobeDutyCycle, - uint8_t strobeLevel); - -/** @} END IAS WD Cluster Callbacks */ - -/** @name Generic Tunnel Cluster Callbacks */ -// @{ - -/** @brief Generic Tunnel Cluster Advertise Protocol Address - * - * - * - * @param protocolAddress Ver.: always - */ -bool emberAfGenericTunnelClusterAdvertiseProtocolAddressCallback(uint8_t * protocolAddress); -/** @brief Generic Tunnel Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfGenericTunnelClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Generic Tunnel Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfGenericTunnelClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Generic Tunnel Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfGenericTunnelClusterClientInitCallback(uint8_t endpoint); -/** @brief Generic Tunnel Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfGenericTunnelClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Generic Tunnel Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfGenericTunnelClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Generic Tunnel Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfGenericTunnelClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Generic Tunnel Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfGenericTunnelClusterClientTickCallback(uint8_t endpoint); -/** @brief Generic Tunnel Cluster Match Protocol Address - * - * - * - * @param protocolAddress Ver.: always - */ -bool emberAfGenericTunnelClusterMatchProtocolAddressCallback(uint8_t * protocolAddress); -/** @brief Generic Tunnel Cluster Match Protocol Address Response - * - * - * - * @param deviceIeeeAddress Ver.: always - * @param protocolAddress Ver.: always - */ -bool emberAfGenericTunnelClusterMatchProtocolAddressResponseCallback(uint8_t * deviceIeeeAddress, uint8_t * protocolAddress); -/** @brief Generic Tunnel Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfGenericTunnelClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Generic Tunnel Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfGenericTunnelClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Generic Tunnel Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfGenericTunnelClusterServerInitCallback(uint8_t endpoint); -/** @brief Generic Tunnel Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfGenericTunnelClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Generic Tunnel Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfGenericTunnelClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Generic Tunnel Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfGenericTunnelClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Generic Tunnel Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfGenericTunnelClusterServerTickCallback(uint8_t endpoint); - -/** @} END Generic Tunnel Cluster Callbacks */ - -/** @name BACnet Protocol Tunnel Cluster Callbacks */ -// @{ - -/** @brief BACnet Protocol Tunnel Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfBacnetProtocolTunnelClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief BACnet Protocol Tunnel Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfBacnetProtocolTunnelClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief BACnet Protocol Tunnel Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfBacnetProtocolTunnelClusterClientInitCallback(uint8_t endpoint); -/** @brief BACnet Protocol Tunnel Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfBacnetProtocolTunnelClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief BACnet Protocol Tunnel Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfBacnetProtocolTunnelClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief BACnet Protocol Tunnel Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfBacnetProtocolTunnelClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief BACnet Protocol Tunnel Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfBacnetProtocolTunnelClusterClientTickCallback(uint8_t endpoint); -/** @brief BACnet Protocol Tunnel Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfBacnetProtocolTunnelClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief BACnet Protocol Tunnel Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfBacnetProtocolTunnelClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief BACnet Protocol Tunnel Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfBacnetProtocolTunnelClusterServerInitCallback(uint8_t endpoint); -/** @brief BACnet Protocol Tunnel Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfBacnetProtocolTunnelClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief BACnet Protocol Tunnel Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfBacnetProtocolTunnelClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief BACnet Protocol Tunnel Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfBacnetProtocolTunnelClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief BACnet Protocol Tunnel Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfBacnetProtocolTunnelClusterServerTickCallback(uint8_t endpoint); -/** @brief BACnet Protocol Tunnel Cluster Transfer Npdu - * - * - * - * @param npdu Ver.: always - */ -bool emberAfBacnetProtocolTunnelClusterTransferNpduCallback(uint8_t * npdu); - -/** @} END BACnet Protocol Tunnel Cluster Callbacks */ - -/** @name 11073 Protocol Tunnel Cluster Callbacks */ -// @{ - -/** @brief 11073 Protocol Tunnel Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAf11073ProtocolTunnelClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief 11073 Protocol Tunnel Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAf11073ProtocolTunnelClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief 11073 Protocol Tunnel Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAf11073ProtocolTunnelClusterClientInitCallback(uint8_t endpoint); -/** @brief 11073 Protocol Tunnel Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAf11073ProtocolTunnelClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief 11073 Protocol Tunnel Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAf11073ProtocolTunnelClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief 11073 Protocol Tunnel Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAf11073ProtocolTunnelClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief 11073 Protocol Tunnel Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAf11073ProtocolTunnelClusterClientTickCallback(uint8_t endpoint); -/** @brief 11073 Protocol Tunnel Cluster Connect Request - * - * - * - * @param connectControl Ver.: always - * @param idleTimeout Ver.: always - * @param managerTarget Ver.: always - * @param managerEndpoint Ver.: always - */ -bool emberAf11073ProtocolTunnelClusterConnectRequestCallback(uint8_t connectControl, uint16_t idleTimeout, uint8_t * managerTarget, - uint8_t managerEndpoint); -/** @brief 11073 Protocol Tunnel Cluster Connect Status Notification - * - * - * - * @param connectStatus Ver.: always - */ -bool emberAf11073ProtocolTunnelClusterConnectStatusNotificationCallback(uint8_t connectStatus); -/** @brief 11073 Protocol Tunnel Cluster Disconnect Request - * - * - * - * @param managerIEEEAddress Ver.: always - */ -bool emberAf11073ProtocolTunnelClusterDisconnectRequestCallback(uint8_t * managerIEEEAddress); -/** @brief 11073 Protocol Tunnel Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAf11073ProtocolTunnelClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief 11073 Protocol Tunnel Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAf11073ProtocolTunnelClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief 11073 Protocol Tunnel Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAf11073ProtocolTunnelClusterServerInitCallback(uint8_t endpoint); -/** @brief 11073 Protocol Tunnel Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAf11073ProtocolTunnelClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief 11073 Protocol Tunnel Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAf11073ProtocolTunnelClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief 11073 Protocol Tunnel Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAf11073ProtocolTunnelClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief 11073 Protocol Tunnel Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAf11073ProtocolTunnelClusterServerTickCallback(uint8_t endpoint); -/** @brief 11073 Protocol Tunnel Cluster Transfer A P D U - * - * - * - * @param apdu Ver.: always - */ -bool emberAf11073ProtocolTunnelClusterTransferAPDUCallback(uint8_t * apdu); - -/** @} END 11073 Protocol Tunnel Cluster Callbacks */ - -/** @name ISO 7816 Protocol Tunnel Cluster Callbacks */ -// @{ - -/** @brief ISO 7816 Protocol Tunnel Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfIso7816ProtocolTunnelClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief ISO 7816 Protocol Tunnel Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfIso7816ProtocolTunnelClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief ISO 7816 Protocol Tunnel Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfIso7816ProtocolTunnelClusterClientInitCallback(uint8_t endpoint); -/** @brief ISO 7816 Protocol Tunnel Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfIso7816ProtocolTunnelClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief ISO 7816 Protocol Tunnel Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfIso7816ProtocolTunnelClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief ISO 7816 Protocol Tunnel Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfIso7816ProtocolTunnelClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief ISO 7816 Protocol Tunnel Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfIso7816ProtocolTunnelClusterClientTickCallback(uint8_t endpoint); -/** @brief ISO 7816 Protocol Tunnel Cluster Extract Smart Card - * - * - * - */ -bool emberAfIso7816ProtocolTunnelClusterExtractSmartCardCallback(void); -/** @brief ISO 7816 Protocol Tunnel Cluster Insert Smart Card - * - * - * - */ -bool emberAfIso7816ProtocolTunnelClusterInsertSmartCardCallback(void); -/** @brief ISO 7816 Protocol Tunnel Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfIso7816ProtocolTunnelClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief ISO 7816 Protocol Tunnel Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfIso7816ProtocolTunnelClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief ISO 7816 Protocol Tunnel Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfIso7816ProtocolTunnelClusterServerInitCallback(uint8_t endpoint); -/** @brief ISO 7816 Protocol Tunnel Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfIso7816ProtocolTunnelClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief ISO 7816 Protocol Tunnel Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfIso7816ProtocolTunnelClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief ISO 7816 Protocol Tunnel Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfIso7816ProtocolTunnelClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief ISO 7816 Protocol Tunnel Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfIso7816ProtocolTunnelClusterServerTickCallback(uint8_t endpoint); -/** @brief ISO 7816 Protocol Tunnel Cluster Transfer Apdu - * - * - * - * @param apdu Ver.: always - */ -bool emberAfIso7816ProtocolTunnelClusterTransferApduCallback(uint8_t * apdu); - -/** @} END ISO 7816 Protocol Tunnel Cluster Callbacks */ - -/** @name Price Cluster Callbacks */ -// @{ - -/** @brief Price Cluster Cancel Tariff - * - * - * - * @param providerId Ver.: always - * @param issuerTariffId Ver.: always - * @param tariffType Ver.: always - */ -bool emberAfPriceClusterCancelTariffCallback(uint32_t providerId, uint32_t issuerTariffId, uint8_t tariffType); -/** @brief Price Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfPriceClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Price Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfPriceClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Price Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfPriceClusterClientInitCallback(uint8_t endpoint); -/** @brief Price Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfPriceClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Price Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfPriceClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, EmberStatus status); -/** @brief Price Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfPriceClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Price Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfPriceClusterClientTickCallback(uint8_t endpoint); -/** @brief Price Cluster Cpp Event Response - * - * - * - * @param issuerEventId Ver.: always - * @param cppAuth Ver.: always - */ -bool emberAfPriceClusterCppEventResponseCallback(uint32_t issuerEventId, uint8_t cppAuth); -/** @brief Price Cluster Get Billing Period - * - * - * - * @param earliestStartTime Ver.: always - * @param minIssuerEventId Ver.: always - * @param numberOfCommands Ver.: always - * @param tariffType Ver.: always - */ -bool emberAfPriceClusterGetBillingPeriodCallback(uint32_t earliestStartTime, uint32_t minIssuerEventId, uint8_t numberOfCommands, - uint8_t tariffType); -/** @brief Price Cluster Get Block Periods - * - * - * - * @param startTime Ver.: always - * @param numberOfEvents Ver.: always - * @param tariffType Ver.: always - */ -bool emberAfPriceClusterGetBlockPeriodsCallback(uint32_t startTime, uint8_t numberOfEvents, uint8_t tariffType); -/** @brief Price Cluster Get Block Thresholds - * - * - * - * @param issuerTariffId Ver.: always - */ -bool emberAfPriceClusterGetBlockThresholdsCallback(uint32_t issuerTariffId); -/** @brief Price Cluster Get C O2 Value - * - * - * - * @param earliestStartTime Ver.: always - * @param minIssuerEventId Ver.: always - * @param numberOfCommands Ver.: always - * @param tariffType Ver.: always - */ -bool emberAfPriceClusterGetCO2ValueCallback(uint32_t earliestStartTime, uint32_t minIssuerEventId, uint8_t numberOfCommands, - uint8_t tariffType); -/** @brief Price Cluster Get Calorific Value - * - * - * - * @param earliestStartTime Ver.: always - * @param minIssuerEventId Ver.: always - * @param numberOfCommands Ver.: always - */ -bool emberAfPriceClusterGetCalorificValueCallback(uint32_t earliestStartTime, uint32_t minIssuerEventId, uint8_t numberOfCommands); -/** @brief Price Cluster Get Consolidated Bill - * - * - * - * @param earliestStartTime Ver.: always - * @param minIssuerEventId Ver.: always - * @param numberOfCommands Ver.: always - * @param tariffType Ver.: always - */ -bool emberAfPriceClusterGetConsolidatedBillCallback(uint32_t earliestStartTime, uint32_t minIssuerEventId, uint8_t numberOfCommands, - uint8_t tariffType); -/** @brief Price Cluster Get Conversion Factor - * - * - * - * @param earliestStartTime Ver.: always - * @param minIssuerEventId Ver.: always - * @param numberOfCommands Ver.: always - */ -bool emberAfPriceClusterGetConversionFactorCallback(uint32_t earliestStartTime, uint32_t minIssuerEventId, - uint8_t numberOfCommands); -/** @brief Price Cluster Get Credit Payment - * - * - * - * @param latestEndTime Ver.: always - * @param numberOfRecords Ver.: always - */ -bool emberAfPriceClusterGetCreditPaymentCallback(uint32_t latestEndTime, uint8_t numberOfRecords); -/** @brief Price Cluster Get Currency Conversion Command - * - * - * - */ -bool emberAfPriceClusterGetCurrencyConversionCommandCallback(void); -/** @brief Price Cluster Get Current Price - * - * - * - * @param commandOptions Ver.: always - */ -bool emberAfPriceClusterGetCurrentPriceCallback(uint8_t commandOptions); -/** @brief Price Cluster Get Price Matrix - * - * - * - * @param issuerTariffId Ver.: always - */ -bool emberAfPriceClusterGetPriceMatrixCallback(uint32_t issuerTariffId); -/** @brief Price Cluster Get Scheduled Prices - * - * - * - * @param startTime Ver.: always - * @param numberOfEvents Ver.: always - */ -bool emberAfPriceClusterGetScheduledPricesCallback(uint32_t startTime, uint8_t numberOfEvents); -/** @brief Price Cluster Get Tariff Cancellation - * - * - * - */ -bool emberAfPriceClusterGetTariffCancellationCallback(void); -/** @brief Price Cluster Get Tariff Information - * - * - * - * @param earliestStartTime Ver.: always - * @param minIssuerEventId Ver.: always - * @param numberOfCommands Ver.: always - * @param tariffType Ver.: always - */ -bool emberAfPriceClusterGetTariffInformationCallback(uint32_t earliestStartTime, uint32_t minIssuerEventId, - uint8_t numberOfCommands, uint8_t tariffType); -/** @brief Price Cluster Get Tier Labels - * - * - * - * @param issuerTariffId Ver.: always - */ -bool emberAfPriceClusterGetTierLabelsCallback(uint32_t issuerTariffId); -/** @brief Price Cluster Price Acknowledgement - * - * - * - * @param providerId Ver.: always - * @param issuerEventId Ver.: always - * @param priceAckTime Ver.: always - * @param control Ver.: always - */ -bool emberAfPriceClusterPriceAcknowledgementCallback(uint32_t providerId, uint32_t issuerEventId, uint32_t priceAckTime, - uint8_t control); -/** @brief Price Cluster Publish Billing Period - * - * - * - * @param providerId Ver.: always - * @param issuerEventId Ver.: always - * @param billingPeriodStartTime Ver.: always - * @param billingPeriodDuration Ver.: always - * @param billingPeriodDurationType Ver.: always - * @param tariffType Ver.: always - */ -bool emberAfPriceClusterPublishBillingPeriodCallback(uint32_t providerId, uint32_t issuerEventId, uint32_t billingPeriodStartTime, - uint32_t billingPeriodDuration, uint8_t billingPeriodDurationType, - uint8_t tariffType); -/** @brief Price Cluster Publish Block Period - * - * - * - * @param providerId Ver.: always - * @param issuerEventId Ver.: always - * @param blockPeriodStartTime Ver.: always - * @param blockPeriodDuration Ver.: always - * @param blockPeriodControl Ver.: always - * @param blockPeriodDurationType Ver.: since se-1.2a-07-5356-19 - * @param tariffType Ver.: since se-1.2a-07-5356-19 - * @param tariffResolutionPeriod Ver.: since se-1.2a-07-5356-19 - */ -bool emberAfPriceClusterPublishBlockPeriodCallback(uint32_t providerId, uint32_t issuerEventId, uint32_t blockPeriodStartTime, - uint32_t blockPeriodDuration, uint8_t blockPeriodControl, - uint8_t blockPeriodDurationType, uint8_t tariffType, - uint8_t tariffResolutionPeriod); -/** @brief Price Cluster Publish Block Thresholds - * - * - * - * @param providerId Ver.: always - * @param issuerEventId Ver.: always - * @param startTime Ver.: always - * @param issuerTariffId Ver.: always - * @param commandIndex Ver.: always - * @param numberOfCommands Ver.: always - * @param subPayloadControl Ver.: always - * @param payload Ver.: always - */ -bool emberAfPriceClusterPublishBlockThresholdsCallback(uint32_t providerId, uint32_t issuerEventId, uint32_t startTime, - uint32_t issuerTariffId, uint8_t commandIndex, uint8_t numberOfCommands, - uint8_t subPayloadControl, uint8_t * payload); -/** @brief Price Cluster Publish C O2 Value - * - * - * - * @param providerId Ver.: always - * @param issuerEventId Ver.: always - * @param startTime Ver.: always - * @param tariffType Ver.: always - * @param cO2Value Ver.: always - * @param cO2ValueUnit Ver.: always - * @param cO2ValueTrailingDigit Ver.: always - */ -bool emberAfPriceClusterPublishCO2ValueCallback(uint32_t providerId, uint32_t issuerEventId, uint32_t startTime, uint8_t tariffType, - uint32_t cO2Value, uint8_t cO2ValueUnit, uint8_t cO2ValueTrailingDigit); -/** @brief Price Cluster Publish Calorific Value - * - * - * - * @param issuerEventId Ver.: always - * @param startTime Ver.: always - * @param calorificValue Ver.: always - * @param calorificValueUnit Ver.: always - * @param calorificValueTrailingDigit Ver.: always - */ -bool emberAfPriceClusterPublishCalorificValueCallback(uint32_t issuerEventId, uint32_t startTime, uint32_t calorificValue, - uint8_t calorificValueUnit, uint8_t calorificValueTrailingDigit); -/** @brief Price Cluster Publish Consolidated Bill - * - * - * - * @param providerId Ver.: always - * @param issuerEventId Ver.: always - * @param billingPeriodStartTime Ver.: always - * @param billingPeriodDuration Ver.: always - * @param billingPeriodDurationType Ver.: always - * @param tariffType Ver.: always - * @param consolidatedBill Ver.: always - * @param currency Ver.: always - * @param billTrailingDigit Ver.: always - */ -bool emberAfPriceClusterPublishConsolidatedBillCallback(uint32_t providerId, uint32_t issuerEventId, - uint32_t billingPeriodStartTime, uint32_t billingPeriodDuration, - uint8_t billingPeriodDurationType, uint8_t tariffType, - uint32_t consolidatedBill, uint16_t currency, uint8_t billTrailingDigit); -/** @brief Price Cluster Publish Conversion Factor - * - * - * - * @param issuerEventId Ver.: always - * @param startTime Ver.: always - * @param conversionFactor Ver.: always - * @param conversionFactorTrailingDigit Ver.: always - */ -bool emberAfPriceClusterPublishConversionFactorCallback(uint32_t issuerEventId, uint32_t startTime, uint32_t conversionFactor, - uint8_t conversionFactorTrailingDigit); -/** @brief Price Cluster Publish Cpp Event - * - * - * - * @param providerId Ver.: always - * @param issuerEventId Ver.: always - * @param startTime Ver.: always - * @param durationInMinutes Ver.: always - * @param tariffType Ver.: always - * @param cppPriceTier Ver.: always - * @param cppAuth Ver.: always - */ -bool emberAfPriceClusterPublishCppEventCallback(uint32_t providerId, uint32_t issuerEventId, uint32_t startTime, - uint16_t durationInMinutes, uint8_t tariffType, uint8_t cppPriceTier, - uint8_t cppAuth); -/** @brief Price Cluster Publish Credit Payment - * - * - * - * @param providerId Ver.: always - * @param issuerEventId Ver.: always - * @param creditPaymentDueDate Ver.: always - * @param creditPaymentOverDueAmount Ver.: always - * @param creditPaymentStatus Ver.: always - * @param creditPayment Ver.: always - * @param creditPaymentDate Ver.: always - * @param creditPaymentRef Ver.: always - */ -bool emberAfPriceClusterPublishCreditPaymentCallback(uint32_t providerId, uint32_t issuerEventId, uint32_t creditPaymentDueDate, - uint32_t creditPaymentOverDueAmount, uint8_t creditPaymentStatus, - uint32_t creditPayment, uint32_t creditPaymentDate, - uint8_t * creditPaymentRef); -/** @brief Price Cluster Publish Currency Conversion - * - * - * - * @param providerId Ver.: always - * @param issuerEventId Ver.: always - * @param startTime Ver.: always - * @param oldCurrency Ver.: always - * @param newCurrency Ver.: always - * @param conversionFactor Ver.: always - * @param conversionFactorTrailingDigit Ver.: always - * @param currencyChangeControlFlags Ver.: always - */ -bool emberAfPriceClusterPublishCurrencyConversionCallback(uint32_t providerId, uint32_t issuerEventId, uint32_t startTime, - uint16_t oldCurrency, uint16_t newCurrency, uint32_t conversionFactor, - uint8_t conversionFactorTrailingDigit, - uint32_t currencyChangeControlFlags); -/** @brief Price Cluster Publish Price - * - * - * - * @param providerId Ver.: always - * @param rateLabel Ver.: always - * @param issuerEventId Ver.: always - * @param currentTime Ver.: always - * @param unitOfMeasure Ver.: always - * @param currency Ver.: always - * @param priceTrailingDigitAndPriceTier Ver.: always - * @param numberOfPriceTiersAndRegisterTier Ver.: always - * @param startTime Ver.: always - * @param durationInMinutes Ver.: always - * @param price Ver.: always - * @param priceRatio Ver.: always - * @param generationPrice Ver.: always - * @param generationPriceRatio Ver.: always - * @param alternateCostDelivered Ver.: since se-1.0-07-5356-15 - * @param alternateCostUnit Ver.: since se-1.0-07-5356-15 - * @param alternateCostTrailingDigit Ver.: since se-1.0-07-5356-15 - * @param numberOfBlockThresholds Ver.: since se-1.1-07-5356-16 - * @param priceControl Ver.: since se-1.1-07-5356-16 - * @param numberOfGenerationTiers Ver.: since se-1.2a-07-5356-19 - * @param generationTier Ver.: since se-1.2a-07-5356-19 - * @param extendedNumberOfPriceTiers Ver.: since se-1.2a-07-5356-19 - * @param extendedPriceTier Ver.: since se-1.2a-07-5356-19 - * @param extendedRegisterTier Ver.: since se-1.2a-07-5356-19 - */ -bool emberAfPriceClusterPublishPriceCallback( - uint32_t providerId, uint8_t * rateLabel, uint32_t issuerEventId, uint32_t currentTime, uint8_t unitOfMeasure, - uint16_t currency, uint8_t priceTrailingDigitAndPriceTier, uint8_t numberOfPriceTiersAndRegisterTier, uint32_t startTime, - uint16_t durationInMinutes, uint32_t price, uint8_t priceRatio, uint32_t generationPrice, uint8_t generationPriceRatio, - uint32_t alternateCostDelivered, uint8_t alternateCostUnit, uint8_t alternateCostTrailingDigit, uint8_t numberOfBlockThresholds, - uint8_t priceControl, uint8_t numberOfGenerationTiers, uint8_t generationTier, uint8_t extendedNumberOfPriceTiers, - uint8_t extendedPriceTier, uint8_t extendedRegisterTier); -/** @brief Price Cluster Publish Price Matrix - * - * - * - * @param providerId Ver.: always - * @param issuerEventId Ver.: always - * @param startTime Ver.: always - * @param issuerTariffId Ver.: always - * @param commandIndex Ver.: always - * @param numberOfCommands Ver.: always - * @param subPayloadControl Ver.: always - * @param payload Ver.: always - */ -bool emberAfPriceClusterPublishPriceMatrixCallback(uint32_t providerId, uint32_t issuerEventId, uint32_t startTime, - uint32_t issuerTariffId, uint8_t commandIndex, uint8_t numberOfCommands, - uint8_t subPayloadControl, uint8_t * payload); -/** @brief Price Cluster Publish Tariff Information - * - * - * - * @param providerId Ver.: always - * @param issuerEventId Ver.: always - * @param issuerTariffId Ver.: always - * @param startTime Ver.: always - * @param tariffTypeChargingScheme Ver.: always - * @param tariffLabel Ver.: always - * @param numberOfPriceTiersInUse Ver.: always - * @param numberOfBlockThresholdsInUse Ver.: always - * @param unitOfMeasure Ver.: always - * @param currency Ver.: always - * @param priceTrailingDigit Ver.: always - * @param standingCharge Ver.: always - * @param tierBlockMode Ver.: always - * @param blockThresholdMultiplier Ver.: always - * @param blockThresholdDivisor Ver.: always - */ -bool emberAfPriceClusterPublishTariffInformationCallback(uint32_t providerId, uint32_t issuerEventId, uint32_t issuerTariffId, - uint32_t startTime, uint8_t tariffTypeChargingScheme, - uint8_t * tariffLabel, uint8_t numberOfPriceTiersInUse, - uint8_t numberOfBlockThresholdsInUse, uint8_t unitOfMeasure, - uint16_t currency, uint8_t priceTrailingDigit, uint32_t standingCharge, - uint8_t tierBlockMode, uint32_t blockThresholdMultiplier, - uint32_t blockThresholdDivisor); -/** @brief Price Cluster Publish Tier Labels - * - * - * - * @param providerId Ver.: always - * @param issuerEventId Ver.: always - * @param issuerTariffId Ver.: always - * @param commandIndex Ver.: always - * @param numberOfCommands Ver.: always - * @param numberOfLabels Ver.: always - * @param tierLabelsPayload Ver.: always - */ -bool emberAfPriceClusterPublishTierLabelsCallback(uint32_t providerId, uint32_t issuerEventId, uint32_t issuerTariffId, - uint8_t commandIndex, uint8_t numberOfCommands, uint8_t numberOfLabels, - uint8_t * tierLabelsPayload); -/** @brief Price Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfPriceClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Price Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfPriceClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Price Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfPriceClusterServerInitCallback(uint8_t endpoint); -/** @brief Price Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfPriceClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Price Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfPriceClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, EmberStatus status); -/** @brief Price Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfPriceClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Price Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfPriceClusterServerTickCallback(uint8_t endpoint); - -/** @} END Price Cluster Callbacks */ - -/** @name Demand Response and Load Control Cluster Callbacks */ -// @{ - -/** @brief Demand Response and Load Control Cluster Cancel All Load Control Events - * - * - * - * @param cancelControl Ver.: always - */ -bool emberAfDemandResponseLoadControlClusterCancelAllLoadControlEventsCallback(uint8_t cancelControl); -/** @brief Demand Response and Load Control Cluster Cancel Load Control Event - * - * - * - * @param issuerEventId Ver.: always - * @param deviceClass Ver.: always - * @param utilityEnrollmentGroup Ver.: always - * @param cancelControl Ver.: always - * @param effectiveTime Ver.: always - */ -bool emberAfDemandResponseLoadControlClusterCancelLoadControlEventCallback(uint32_t issuerEventId, uint16_t deviceClass, - uint8_t utilityEnrollmentGroup, uint8_t cancelControl, - uint32_t effectiveTime); -/** @brief Demand Response and Load Control Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfDemandResponseLoadControlClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Demand Response and Load Control Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfDemandResponseLoadControlClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Demand Response and Load Control Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfDemandResponseLoadControlClusterClientInitCallback(uint8_t endpoint); -/** @brief Demand Response and Load Control Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfDemandResponseLoadControlClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Demand Response and Load Control Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfDemandResponseLoadControlClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Demand Response and Load Control Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfDemandResponseLoadControlClusterClientPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Demand Response and Load Control Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfDemandResponseLoadControlClusterClientTickCallback(uint8_t endpoint); -/** @brief Demand Response and Load Control Cluster Get Scheduled Events - * - * - * - * @param startTime Ver.: always - * @param numberOfEvents Ver.: always - * @param issuerEventId Ver.: since se-1.2b-15-0131-02 - */ -bool emberAfDemandResponseLoadControlClusterGetScheduledEventsCallback(uint32_t startTime, uint8_t numberOfEvents, - uint32_t issuerEventId); -/** @brief Demand Response and Load Control Cluster Load Control Event - * - * - * - * @param issuerEventId Ver.: always - * @param deviceClass Ver.: always - * @param utilityEnrollmentGroup Ver.: always - * @param startTime Ver.: always - * @param durationInMinutes Ver.: always - * @param criticalityLevel Ver.: always - * @param coolingTemperatureOffset Ver.: always - * @param heatingTemperatureOffset Ver.: always - * @param coolingTemperatureSetPoint Ver.: always - * @param heatingTemperatureSetPoint Ver.: always - * @param averageLoadAdjustmentPercentage Ver.: always - * @param dutyCycle Ver.: always - * @param eventControl Ver.: always - */ -bool emberAfDemandResponseLoadControlClusterLoadControlEventCallback( - uint32_t issuerEventId, uint16_t deviceClass, uint8_t utilityEnrollmentGroup, uint32_t startTime, uint16_t durationInMinutes, - uint8_t criticalityLevel, uint8_t coolingTemperatureOffset, uint8_t heatingTemperatureOffset, - int16_t coolingTemperatureSetPoint, int16_t heatingTemperatureSetPoint, int8_t averageLoadAdjustmentPercentage, - uint8_t dutyCycle, uint8_t eventControl); -/** @brief Demand Response and Load Control Cluster Report Event Status - * - * - * - * @param issuerEventId Ver.: always - * @param eventStatus Ver.: always - * @param eventStatusTime Ver.: always - * @param criticalityLevelApplied Ver.: always - * @param coolingTemperatureSetPointApplied Ver.: always - * @param heatingTemperatureSetPointApplied Ver.: always - * @param averageLoadAdjustmentPercentageApplied Ver.: always - * @param dutyCycleApplied Ver.: always - * @param eventControl Ver.: always - * @param signatureType Ver.: always - * @param signature Ver.: always - */ -bool emberAfDemandResponseLoadControlClusterReportEventStatusCallback(uint32_t issuerEventId, uint8_t eventStatus, - uint32_t eventStatusTime, uint8_t criticalityLevelApplied, - uint16_t coolingTemperatureSetPointApplied, - uint16_t heatingTemperatureSetPointApplied, - int8_t averageLoadAdjustmentPercentageApplied, - uint8_t dutyCycleApplied, uint8_t eventControl, - uint8_t signatureType, uint8_t * signature); -/** @brief Demand Response and Load Control Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfDemandResponseLoadControlClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Demand Response and Load Control Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfDemandResponseLoadControlClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Demand Response and Load Control Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfDemandResponseLoadControlClusterServerInitCallback(uint8_t endpoint); -/** @brief Demand Response and Load Control Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfDemandResponseLoadControlClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Demand Response and Load Control Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfDemandResponseLoadControlClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Demand Response and Load Control Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfDemandResponseLoadControlClusterServerPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Demand Response and Load Control Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfDemandResponseLoadControlClusterServerTickCallback(uint8_t endpoint); - -/** @} END Demand Response and Load Control Cluster Callbacks */ - -/** @name Simple Metering Cluster Callbacks */ -// @{ - -/** @brief Simple Metering Cluster Change Supply - * - * - * - * @param providerId Ver.: always - * @param issuerEventId Ver.: always - * @param requestDateTime Ver.: always - * @param implementationDateTime Ver.: always - * @param proposedSupplyStatus Ver.: always - * @param supplyControlBits Ver.: always - */ -bool emberAfSimpleMeteringClusterChangeSupplyCallback(uint32_t providerId, uint32_t issuerEventId, uint32_t requestDateTime, - uint32_t implementationDateTime, uint8_t proposedSupplyStatus, - uint8_t supplyControlBits); -/** @brief Simple Metering Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfSimpleMeteringClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Simple Metering Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfSimpleMeteringClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Simple Metering Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfSimpleMeteringClusterClientInitCallback(uint8_t endpoint); -/** @brief Simple Metering Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfSimpleMeteringClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Simple Metering Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfSimpleMeteringClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Simple Metering Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfSimpleMeteringClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Simple Metering Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfSimpleMeteringClusterClientTickCallback(uint8_t endpoint); -/** @brief Simple Metering Cluster Configure Mirror - * - * - * - * @param issuerEventId Ver.: always - * @param reportingInterval Ver.: always - * @param mirrorNotificationReporting Ver.: always - * @param notificationScheme Ver.: always - */ -bool emberAfSimpleMeteringClusterConfigureMirrorCallback(uint32_t issuerEventId, uint32_t reportingInterval, - uint8_t mirrorNotificationReporting, uint8_t notificationScheme); -/** @brief Simple Metering Cluster Configure Notification Flags - * - * - * - * @param issuerEventId Ver.: always - * @param notificationScheme Ver.: always - * @param notificationFlagAttributeId Ver.: always - * @param clusterId Ver.: always - * @param manufacturerCode Ver.: always - * @param numberOfCommands Ver.: always - * @param commandIds Ver.: always - */ -bool emberAfSimpleMeteringClusterConfigureNotificationFlagsCallback(uint32_t issuerEventId, uint8_t notificationScheme, - uint16_t notificationFlagAttributeId, uint16_t clusterId, - uint16_t manufacturerCode, uint8_t numberOfCommands, - uint8_t * commandIds); -/** @brief Simple Metering Cluster Configure Notification Scheme - * - * - * - * @param issuerEventId Ver.: always - * @param notificationScheme Ver.: always - * @param notificationFlagOrder Ver.: always - */ -bool emberAfSimpleMeteringClusterConfigureNotificationSchemeCallback(uint32_t issuerEventId, uint8_t notificationScheme, - uint32_t notificationFlagOrder); -/** @brief Simple Metering Cluster Get Notified Message - * - * - * - * @param notificationScheme Ver.: always - * @param notificationFlagAttributeId Ver.: always - * @param notificationFlagsN Ver.: always - */ -bool emberAfSimpleMeteringClusterGetNotifiedMessageCallback(uint8_t notificationScheme, uint16_t notificationFlagAttributeId, - uint32_t notificationFlagsN); -/** @brief Simple Metering Cluster Get Profile - * - * - * - * @param intervalChannel Ver.: always - * @param endTime Ver.: always - * @param numberOfPeriods Ver.: always - */ -bool emberAfSimpleMeteringClusterGetProfileCallback(uint8_t intervalChannel, uint32_t endTime, uint8_t numberOfPeriods); -/** @brief Simple Metering Cluster Get Profile Response - * - * - * - * @param endTime Ver.: always - * @param status Ver.: always - * @param profileIntervalPeriod Ver.: always - * @param numberOfPeriodsDelivered Ver.: always - * @param intervals Ver.: always - */ -bool emberAfSimpleMeteringClusterGetProfileResponseCallback(uint32_t endTime, uint8_t status, uint8_t profileIntervalPeriod, - uint8_t numberOfPeriodsDelivered, uint8_t * intervals); -/** @brief Simple Metering Cluster Get Sampled Data - * - * - * - * @param sampleId Ver.: always - * @param earliestSampleTime Ver.: always - * @param sampleType Ver.: always - * @param numberOfSamples Ver.: always - */ -bool emberAfSimpleMeteringClusterGetSampledDataCallback(uint16_t sampleId, uint32_t earliestSampleTime, uint8_t sampleType, - uint16_t numberOfSamples); -/** @brief Simple Metering Cluster Get Sampled Data Response - * - * - * - * @param sampleId Ver.: always - * @param sampleStartTime Ver.: always - * @param sampleType Ver.: always - * @param sampleRequestInterval Ver.: always - * @param numberOfSamples Ver.: always - * @param samples Ver.: always - */ -bool emberAfSimpleMeteringClusterGetSampledDataResponseCallback(uint16_t sampleId, uint32_t sampleStartTime, uint8_t sampleType, - uint16_t sampleRequestInterval, uint16_t numberOfSamples, - uint8_t * samples); -/** @brief Simple Metering Cluster Get Snapshot - * - * - * - * @param earliestStartTime Ver.: always - * @param latestEndTime Ver.: always - * @param snapshotOffset Ver.: always - * @param snapshotCause Ver.: always - */ -bool emberAfSimpleMeteringClusterGetSnapshotCallback(uint32_t earliestStartTime, uint32_t latestEndTime, uint8_t snapshotOffset, - uint32_t snapshotCause); -/** @brief Simple Metering Cluster Local Change Supply - * - * - * - * @param proposedSupplyStatus Ver.: always - */ -bool emberAfSimpleMeteringClusterLocalChangeSupplyCallback(uint8_t proposedSupplyStatus); -/** @brief Simple Metering Cluster Mirror Removed - * - * - * - * @param endpointId Ver.: always - */ -bool emberAfSimpleMeteringClusterMirrorRemovedCallback(uint16_t endpointId); -/** @brief Simple Metering Cluster Mirror Report Attribute Response - * - * - * - * @param notificationScheme Ver.: always - * @param notificationFlags Ver.: always - */ -bool emberAfSimpleMeteringClusterMirrorReportAttributeResponseCallback(uint8_t notificationScheme, uint8_t * notificationFlags); -/** @brief Simple Metering Cluster Publish Snapshot - * - * - * - * @param snapshotId Ver.: always - * @param snapshotTime Ver.: always - * @param totalSnapshotsFound Ver.: always - * @param commandIndex Ver.: always - * @param totalCommands Ver.: always - * @param snapshotCause Ver.: always - * @param snapshotPayloadType Ver.: always - * @param snapshotPayload Ver.: always - */ -bool emberAfSimpleMeteringClusterPublishSnapshotCallback(uint32_t snapshotId, uint32_t snapshotTime, uint8_t totalSnapshotsFound, - uint8_t commandIndex, uint8_t totalCommands, uint32_t snapshotCause, - uint8_t snapshotPayloadType, uint8_t * snapshotPayload); -/** @brief Simple Metering Cluster Remove Mirror - * - * - * - */ -bool emberAfSimpleMeteringClusterRemoveMirrorCallback(void); -/** @brief Simple Metering Cluster Request Fast Poll Mode - * - * - * - * @param fastPollUpdatePeriod Ver.: always - * @param duration Ver.: always - */ -bool emberAfSimpleMeteringClusterRequestFastPollModeCallback(uint8_t fastPollUpdatePeriod, uint8_t duration); -/** @brief Simple Metering Cluster Request Fast Poll Mode Response - * - * - * - * @param appliedUpdatePeriod Ver.: always - * @param fastPollModeEndtime Ver.: always - */ -bool emberAfSimpleMeteringClusterRequestFastPollModeResponseCallback(uint8_t appliedUpdatePeriod, uint32_t fastPollModeEndtime); -/** @brief Simple Metering Cluster Request Mirror - * - * - * - */ -bool emberAfSimpleMeteringClusterRequestMirrorCallback(void); -/** @brief Simple Metering Cluster Request Mirror Response - * - * - * - * @param endpointId Ver.: always - */ -bool emberAfSimpleMeteringClusterRequestMirrorResponseCallback(uint16_t endpointId); -/** @brief Simple Metering Cluster Reset Load Limit Counter - * - * - * - * @param providerId Ver.: always - * @param issuerEventId Ver.: always - */ -bool emberAfSimpleMeteringClusterResetLoadLimitCounterCallback(uint32_t providerId, uint32_t issuerEventId); -/** @brief Simple Metering Cluster Schedule Snapshot - * - * - * - * @param issuerEventId Ver.: always - * @param commandIndex Ver.: always - * @param commandCount Ver.: always - * @param snapshotSchedulePayload Ver.: always - */ -bool emberAfSimpleMeteringClusterScheduleSnapshotCallback(uint32_t issuerEventId, uint8_t commandIndex, uint8_t commandCount, - uint8_t * snapshotSchedulePayload); -/** @brief Simple Metering Cluster Schedule Snapshot Response - * - * - * - * @param issuerEventId Ver.: always - * @param snapshotResponsePayload Ver.: always - */ -bool emberAfSimpleMeteringClusterScheduleSnapshotResponseCallback(uint32_t issuerEventId, uint8_t * snapshotResponsePayload); -/** @brief Simple Metering Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfSimpleMeteringClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Simple Metering Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfSimpleMeteringClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Simple Metering Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfSimpleMeteringClusterServerInitCallback(uint8_t endpoint); -/** @brief Simple Metering Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfSimpleMeteringClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Simple Metering Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfSimpleMeteringClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Simple Metering Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfSimpleMeteringClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Simple Metering Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfSimpleMeteringClusterServerTickCallback(uint8_t endpoint); -/** @brief Simple Metering Cluster Set Supply Status - * - * - * - * @param issuerEventId Ver.: always - * @param supplyTamperState Ver.: always - * @param supplyDepletionState Ver.: always - * @param supplyUncontrolledFlowState Ver.: always - * @param loadLimitSupplyState Ver.: always - */ -bool emberAfSimpleMeteringClusterSetSupplyStatusCallback(uint32_t issuerEventId, uint8_t supplyTamperState, - uint8_t supplyDepletionState, uint8_t supplyUncontrolledFlowState, - uint8_t loadLimitSupplyState); -/** @brief Simple Metering Cluster Set Uncontrolled Flow Threshold - * - * - * - * @param providerId Ver.: always - * @param issuerEventId Ver.: always - * @param uncontrolledFlowThreshold Ver.: always - * @param unitOfMeasure Ver.: always - * @param multiplier Ver.: always - * @param divisor Ver.: always - * @param stabilisationPeriod Ver.: always - * @param measurementPeriod Ver.: always - */ -bool emberAfSimpleMeteringClusterSetUncontrolledFlowThresholdCallback(uint32_t providerId, uint32_t issuerEventId, - uint16_t uncontrolledFlowThreshold, uint8_t unitOfMeasure, - uint16_t multiplier, uint16_t divisor, - uint8_t stabilisationPeriod, uint16_t measurementPeriod); -/** @brief Simple Metering Cluster Start Sampling - * - * - * - * @param issuerEventId Ver.: always - * @param startSamplingTime Ver.: always - * @param sampleType Ver.: always - * @param sampleRequestInterval Ver.: always - * @param maxNumberOfSamples Ver.: always - */ -bool emberAfSimpleMeteringClusterStartSamplingCallback(uint32_t issuerEventId, uint32_t startSamplingTime, uint8_t sampleType, - uint16_t sampleRequestInterval, uint16_t maxNumberOfSamples); -/** @brief Simple Metering Cluster Start Sampling Response - * - * - * - * @param sampleId Ver.: always - */ -bool emberAfSimpleMeteringClusterStartSamplingResponseCallback(uint16_t sampleId); -/** @brief Simple Metering Cluster Supply Status Response - * - * - * - * @param providerId Ver.: always - * @param issuerEventId Ver.: always - * @param implementationDateTime Ver.: always - * @param supplyStatus Ver.: always - */ -bool emberAfSimpleMeteringClusterSupplyStatusResponseCallback(uint32_t providerId, uint32_t issuerEventId, - uint32_t implementationDateTime, uint8_t supplyStatus); -/** @brief Simple Metering Cluster Take Snapshot - * - * - * - * @param snapshotCause Ver.: always - */ -bool emberAfSimpleMeteringClusterTakeSnapshotCallback(uint32_t snapshotCause); -/** @brief Simple Metering Cluster Take Snapshot Response - * - * - * - * @param snapshotId Ver.: always - * @param snapshotConfirmation Ver.: always - */ -bool emberAfSimpleMeteringClusterTakeSnapshotResponseCallback(uint32_t snapshotId, uint8_t snapshotConfirmation); - -/** @} END Simple Metering Cluster Callbacks */ - -/** @name Messaging Cluster Callbacks */ -// @{ - -/** @brief Messaging Cluster Cancel All Messages - * - * - * - * @param implementationDateTime Ver.: always - */ -bool emberAfMessagingClusterCancelAllMessagesCallback(uint32_t implementationDateTime); -/** @brief Messaging Cluster Cancel Message - * - * - * - * @param messageId Ver.: always - * @param messageControl Ver.: always - */ -bool emberAfMessagingClusterCancelMessageCallback(uint32_t messageId, uint8_t messageControl); -/** @brief Messaging Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfMessagingClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Messaging Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfMessagingClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Messaging Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfMessagingClusterClientInitCallback(uint8_t endpoint); -/** @brief Messaging Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfMessagingClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Messaging Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfMessagingClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Messaging Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfMessagingClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Messaging Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfMessagingClusterClientTickCallback(uint8_t endpoint); -/** @brief Messaging Cluster Display Message - * - * - * - * @param messageId Ver.: always - * @param messageControl Ver.: always - * @param startTime Ver.: always - * @param durationInMinutes Ver.: always - * @param message Ver.: always - * @param optionalExtendedMessageControl Ver.: since se-1.2a-07-5356-19 - */ -bool emberAfMessagingClusterDisplayMessageCallback(uint32_t messageId, uint8_t messageControl, uint32_t startTime, - uint16_t durationInMinutes, uint8_t * message, - uint8_t optionalExtendedMessageControl); -/** @brief Messaging Cluster Display Protected Message - * - * - * - * @param messageId Ver.: always - * @param messageControl Ver.: always - * @param startTime Ver.: always - * @param durationInMinutes Ver.: always - * @param message Ver.: always - * @param optionalExtendedMessageControl Ver.: always - */ -bool emberAfMessagingClusterDisplayProtectedMessageCallback(uint32_t messageId, uint8_t messageControl, uint32_t startTime, - uint16_t durationInMinutes, uint8_t * message, - uint8_t optionalExtendedMessageControl); -/** @brief Messaging Cluster Get Last Message - * - * - * - */ -bool emberAfMessagingClusterGetLastMessageCallback(void); -/** @brief Messaging Cluster Get Message Cancellation - * - * - * - * @param earliestImplementationTime Ver.: always - */ -bool emberAfMessagingClusterGetMessageCancellationCallback(uint32_t earliestImplementationTime); -/** @brief Messaging Cluster Message Confirmation - * - * - * - * @param messageId Ver.: always - * @param confirmationTime Ver.: always - * @param messageConfirmationControl Ver.: since se-1.2a-07-5356-19 - * @param messageResponse Ver.: since se-1.2a-07-5356-19 - */ -bool emberAfMessagingClusterMessageConfirmationCallback(uint32_t messageId, uint32_t confirmationTime, - uint8_t messageConfirmationControl, uint8_t * messageResponse); -/** @brief Messaging Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfMessagingClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Messaging Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfMessagingClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Messaging Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfMessagingClusterServerInitCallback(uint8_t endpoint); -/** @brief Messaging Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfMessagingClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Messaging Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfMessagingClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Messaging Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfMessagingClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Messaging Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfMessagingClusterServerTickCallback(uint8_t endpoint); - -/** @} END Messaging Cluster Callbacks */ - -/** @name Tunneling Cluster Callbacks */ -// @{ - -/** @brief Tunneling Cluster Ack Transfer Data Client To Server - * - * - * - * @param tunnelId Ver.: always - * @param numberOfBytesLeft Ver.: always - */ -bool emberAfTunnelingClusterAckTransferDataClientToServerCallback(uint16_t tunnelId, uint16_t numberOfBytesLeft); -/** @brief Tunneling Cluster Ack Transfer Data Server To Client - * - * - * - * @param tunnelId Ver.: always - * @param numberOfBytesLeft Ver.: always - */ -bool emberAfTunnelingClusterAckTransferDataServerToClientCallback(uint16_t tunnelId, uint16_t numberOfBytesLeft); -/** @brief Tunneling Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfTunnelingClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Tunneling Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfTunnelingClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Tunneling Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfTunnelingClusterClientInitCallback(uint8_t endpoint); -/** @brief Tunneling Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfTunnelingClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Tunneling Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfTunnelingClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Tunneling Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfTunnelingClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Tunneling Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfTunnelingClusterClientTickCallback(uint8_t endpoint); -/** @brief Tunneling Cluster Close Tunnel - * - * - * - * @param tunnelId Ver.: always - */ -bool emberAfTunnelingClusterCloseTunnelCallback(uint16_t tunnelId); -/** @brief Tunneling Cluster Get Supported Tunnel Protocols - * - * - * - * @param protocolOffset Ver.: always - */ -bool emberAfTunnelingClusterGetSupportedTunnelProtocolsCallback(uint8_t protocolOffset); -/** @brief Tunneling Cluster Ready Data Client To Server - * - * - * - * @param tunnelId Ver.: always - * @param numberOfOctetsLeft Ver.: always - */ -bool emberAfTunnelingClusterReadyDataClientToServerCallback(uint16_t tunnelId, uint16_t numberOfOctetsLeft); -/** @brief Tunneling Cluster Ready Data Server To Client - * - * - * - * @param tunnelId Ver.: always - * @param numberOfOctetsLeft Ver.: always - */ -bool emberAfTunnelingClusterReadyDataServerToClientCallback(uint16_t tunnelId, uint16_t numberOfOctetsLeft); -/** @brief Tunneling Cluster Request Tunnel - * - * - * - * @param protocolId Ver.: always - * @param manufacturerCode Ver.: always - * @param flowControlSupport Ver.: always - * @param maximumIncomingTransferSize Ver.: since se-1.1a-07-5356-17 - */ -bool emberAfTunnelingClusterRequestTunnelCallback(uint8_t protocolId, uint16_t manufacturerCode, uint8_t flowControlSupport, - uint16_t maximumIncomingTransferSize); -/** @brief Tunneling Cluster Request Tunnel Response - * - * - * - * @param tunnelId Ver.: always - * @param tunnelStatus Ver.: always - * @param maximumIncomingTransferSize Ver.: since se-1.1a-07-5356-17 - */ -bool emberAfTunnelingClusterRequestTunnelResponseCallback(uint16_t tunnelId, uint8_t tunnelStatus, - uint16_t maximumIncomingTransferSize); -/** @brief Tunneling Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfTunnelingClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Tunneling Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfTunnelingClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Tunneling Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfTunnelingClusterServerInitCallback(uint8_t endpoint); -/** @brief Tunneling Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfTunnelingClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Tunneling Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfTunnelingClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Tunneling Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfTunnelingClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Tunneling Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfTunnelingClusterServerTickCallback(uint8_t endpoint); -/** @brief Tunneling Cluster Supported Tunnel Protocols Response - * - * - * - * @param protocolListComplete Ver.: always - * @param protocolCount Ver.: always - * @param protocolList Ver.: always - */ -bool emberAfTunnelingClusterSupportedTunnelProtocolsResponseCallback(uint8_t protocolListComplete, uint8_t protocolCount, - uint8_t * protocolList); -/** @brief Tunneling Cluster Transfer Data Client To Server - * - * - * - * @param tunnelId Ver.: always - * @param data Ver.: always - */ -bool emberAfTunnelingClusterTransferDataClientToServerCallback(uint16_t tunnelId, uint8_t * data); -/** @brief Tunneling Cluster Transfer Data Error Client To Server - * - * - * - * @param tunnelId Ver.: always - * @param transferDataStatus Ver.: always - */ -bool emberAfTunnelingClusterTransferDataErrorClientToServerCallback(uint16_t tunnelId, uint8_t transferDataStatus); -/** @brief Tunneling Cluster Transfer Data Error Server To Client - * - * - * - * @param tunnelId Ver.: always - * @param transferDataStatus Ver.: always - */ -bool emberAfTunnelingClusterTransferDataErrorServerToClientCallback(uint16_t tunnelId, uint8_t transferDataStatus); -/** @brief Tunneling Cluster Transfer Data Server To Client - * - * - * - * @param tunnelId Ver.: always - * @param data Ver.: always - */ -bool emberAfTunnelingClusterTransferDataServerToClientCallback(uint16_t tunnelId, uint8_t * data); -/** @brief Tunneling Cluster Tunnel Closure Notification - * - * - * - * @param tunnelId Ver.: always - */ -bool emberAfTunnelingClusterTunnelClosureNotificationCallback(uint16_t tunnelId); - -/** @} END Tunneling Cluster Callbacks */ - -/** @name Prepayment Cluster Callbacks */ -// @{ - -/** @brief Prepayment Cluster Change Debt - * - * - * - * @param issuerEventId Ver.: always - * @param debtLabel Ver.: always - * @param debtAmount Ver.: always - * @param debtRecoveryMethod Ver.: always - * @param debtAmountType Ver.: always - * @param debtRecoveryStartTime Ver.: always - * @param debtRecoveryCollectionTime Ver.: always - * @param debtRecoveryFrequency Ver.: always - * @param debtRecoveryAmount Ver.: always - * @param debtRecoveryBalancePercentage Ver.: always - */ -bool emberAfPrepaymentClusterChangeDebtCallback(uint32_t issuerEventId, uint8_t * debtLabel, uint32_t debtAmount, - uint8_t debtRecoveryMethod, uint8_t debtAmountType, uint32_t debtRecoveryStartTime, - uint16_t debtRecoveryCollectionTime, uint8_t debtRecoveryFrequency, - uint32_t debtRecoveryAmount, uint16_t debtRecoveryBalancePercentage); -/** @brief Prepayment Cluster Change Payment Mode - * - * - * - * @param providerId Ver.: always - * @param issuerEventId Ver.: always - * @param implementationDateTime Ver.: always - * @param proposedPaymentControlConfiguration Ver.: always - * @param cutOffValue Ver.: always - */ -bool emberAfPrepaymentClusterChangePaymentModeCallback(uint32_t providerId, uint32_t issuerEventId, uint32_t implementationDateTime, - uint16_t proposedPaymentControlConfiguration, uint32_t cutOffValue); -/** @brief Prepayment Cluster Change Payment Mode Response - * - * - * - * @param friendlyCredit Ver.: always - * @param friendlyCreditCalendarId Ver.: always - * @param emergencyCreditLimit Ver.: always - * @param emergencyCreditThreshold Ver.: always - */ -bool emberAfPrepaymentClusterChangePaymentModeResponseCallback(uint8_t friendlyCredit, uint32_t friendlyCreditCalendarId, - uint32_t emergencyCreditLimit, uint32_t emergencyCreditThreshold); -/** @brief Prepayment Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfPrepaymentClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Prepayment Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfPrepaymentClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Prepayment Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfPrepaymentClusterClientInitCallback(uint8_t endpoint); -/** @brief Prepayment Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfPrepaymentClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Prepayment Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfPrepaymentClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Prepayment Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfPrepaymentClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Prepayment Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfPrepaymentClusterClientTickCallback(uint8_t endpoint); -/** @brief Prepayment Cluster Consumer Top Up - * - * - * - * @param originatingDevice Ver.: always - * @param topUpCode Ver.: always - */ -bool emberAfPrepaymentClusterConsumerTopUpCallback(uint8_t originatingDevice, uint8_t * topUpCode); -/** @brief Prepayment Cluster Consumer Top Up Response - * - * - * - * @param resultType Ver.: always - * @param topUpValue Ver.: always - * @param sourceOfTopUp Ver.: always - * @param creditRemaining Ver.: always - */ -bool emberAfPrepaymentClusterConsumerTopUpResponseCallback(uint8_t resultType, uint32_t topUpValue, uint8_t sourceOfTopUp, - uint32_t creditRemaining); -/** @brief Prepayment Cluster Credit Adjustment - * - * - * - * @param issuerEventId Ver.: always - * @param startTime Ver.: always - * @param creditAdjustmentType Ver.: always - * @param creditAdjustmentValue Ver.: always - */ -bool emberAfPrepaymentClusterCreditAdjustmentCallback(uint32_t issuerEventId, uint32_t startTime, uint8_t creditAdjustmentType, - uint32_t creditAdjustmentValue); -/** @brief Prepayment Cluster Emergency Credit Setup - * - * - * - * @param issuerEventId Ver.: always - * @param startTime Ver.: always - * @param emergencyCreditLimit Ver.: always - * @param emergencyCreditThreshold Ver.: always - */ -bool emberAfPrepaymentClusterEmergencyCreditSetupCallback(uint32_t issuerEventId, uint32_t startTime, uint32_t emergencyCreditLimit, - uint32_t emergencyCreditThreshold); -/** @brief Prepayment Cluster Get Debt Repayment Log - * - * - * - * @param latestEndTime Ver.: always - * @param numberOfDebts Ver.: always - * @param debtType Ver.: always - */ -bool emberAfPrepaymentClusterGetDebtRepaymentLogCallback(uint32_t latestEndTime, uint8_t numberOfDebts, uint8_t debtType); -/** @brief Prepayment Cluster Get Prepay Snapshot - * - * - * - * @param earliestStartTime Ver.: always - * @param latestEndTime Ver.: always - * @param snapshotOffset Ver.: always - * @param snapshotCause Ver.: always - */ -bool emberAfPrepaymentClusterGetPrepaySnapshotCallback(uint32_t earliestStartTime, uint32_t latestEndTime, uint8_t snapshotOffset, - uint32_t snapshotCause); -/** @brief Prepayment Cluster Get Top Up Log - * - * - * - * @param latestEndTime Ver.: always - * @param numberOfRecords Ver.: always - */ -bool emberAfPrepaymentClusterGetTopUpLogCallback(uint32_t latestEndTime, uint8_t numberOfRecords); -/** @brief Prepayment Cluster Publish Debt Log - * - * - * - * @param commandIndex Ver.: always - * @param totalNumberOfCommands Ver.: always - * @param debtPayload Ver.: always - */ -bool emberAfPrepaymentClusterPublishDebtLogCallback(uint8_t commandIndex, uint8_t totalNumberOfCommands, uint8_t * debtPayload); -/** @brief Prepayment Cluster Publish Prepay Snapshot - * - * - * - * @param snapshotId Ver.: always - * @param snapshotTime Ver.: always - * @param totalSnapshotsFound Ver.: always - * @param commandIndex Ver.: always - * @param totalNumberOfCommands Ver.: always - * @param snapshotCause Ver.: always - * @param snapshotPayloadType Ver.: always - * @param snapshotPayload Ver.: always - */ -bool emberAfPrepaymentClusterPublishPrepaySnapshotCallback(uint32_t snapshotId, uint32_t snapshotTime, uint8_t totalSnapshotsFound, - uint8_t commandIndex, uint8_t totalNumberOfCommands, - uint32_t snapshotCause, uint8_t snapshotPayloadType, - uint8_t * snapshotPayload); -/** @brief Prepayment Cluster Publish Top Up Log - * - * - * - * @param commandIndex Ver.: always - * @param totalNumberOfCommands Ver.: always - * @param topUpPayload Ver.: always - */ -bool emberAfPrepaymentClusterPublishTopUpLogCallback(uint8_t commandIndex, uint8_t totalNumberOfCommands, uint8_t * topUpPayload); -/** @brief Prepayment Cluster Select Available Emergency Credit - * - * - * - * @param commandIssueDateTime Ver.: always - * @param originatingDevice Ver.: always - */ -bool emberAfPrepaymentClusterSelectAvailableEmergencyCreditCallback(uint32_t commandIssueDateTime, uint8_t originatingDevice); -/** @brief Prepayment Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfPrepaymentClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Prepayment Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfPrepaymentClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Prepayment Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfPrepaymentClusterServerInitCallback(uint8_t endpoint); -/** @brief Prepayment Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfPrepaymentClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Prepayment Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfPrepaymentClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Prepayment Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfPrepaymentClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Prepayment Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfPrepaymentClusterServerTickCallback(uint8_t endpoint); -/** @brief Prepayment Cluster Set Low Credit Warning Level - * - * - * - * @param lowCreditWarningLevel Ver.: always - */ -bool emberAfPrepaymentClusterSetLowCreditWarningLevelCallback(uint32_t lowCreditWarningLevel); -/** @brief Prepayment Cluster Set Maximum Credit Limit - * - * - * - * @param providerId Ver.: always - * @param issuerEventId Ver.: always - * @param implementationDateTime Ver.: always - * @param maximumCreditLevel Ver.: always - * @param maximumCreditPerTopUp Ver.: always - */ -bool emberAfPrepaymentClusterSetMaximumCreditLimitCallback(uint32_t providerId, uint32_t issuerEventId, - uint32_t implementationDateTime, uint32_t maximumCreditLevel, - uint32_t maximumCreditPerTopUp); -/** @brief Prepayment Cluster Set Overall Debt Cap - * - * - * - * @param providerId Ver.: always - * @param issuerEventId Ver.: always - * @param implementationDateTime Ver.: always - * @param overallDebtCap Ver.: always - */ -bool emberAfPrepaymentClusterSetOverallDebtCapCallback(uint32_t providerId, uint32_t issuerEventId, uint32_t implementationDateTime, - uint32_t overallDebtCap); - -/** @} END Prepayment Cluster Callbacks */ - -/** @name Energy Management Cluster Callbacks */ -// @{ - -/** @brief Energy Management Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfEnergyManagementClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Energy Management Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfEnergyManagementClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Energy Management Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfEnergyManagementClusterClientInitCallback(uint8_t endpoint); -/** @brief Energy Management Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfEnergyManagementClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Energy Management Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfEnergyManagementClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Energy Management Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfEnergyManagementClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Energy Management Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfEnergyManagementClusterClientTickCallback(uint8_t endpoint); -/** @brief Energy Management Cluster Manage Event - * - * - * - * @param issuerEventId Ver.: always - * @param deviceClass Ver.: always - * @param utilityEnrollmentGroup Ver.: always - * @param actionRequired Ver.: always - */ -bool emberAfEnergyManagementClusterManageEventCallback(uint32_t issuerEventId, uint16_t deviceClass, uint8_t utilityEnrollmentGroup, - uint8_t actionRequired); -/** @brief Energy Management Cluster Report Event Status - * - * - * - * @param issuerEventId Ver.: always - * @param eventStatus Ver.: always - * @param eventStatusTime Ver.: always - * @param criticalityLevelApplied Ver.: always - * @param coolingTemperatureSetPointApplied Ver.: always - * @param heatingTemperatureSetPointApplied Ver.: always - * @param averageLoadAdjustmentPercentageApplied Ver.: always - * @param dutyCycleApplied Ver.: always - * @param eventControl Ver.: always - */ -bool emberAfEnergyManagementClusterReportEventStatusCallback(uint32_t issuerEventId, uint8_t eventStatus, uint32_t eventStatusTime, - uint8_t criticalityLevelApplied, - uint16_t coolingTemperatureSetPointApplied, - uint16_t heatingTemperatureSetPointApplied, - int8_t averageLoadAdjustmentPercentageApplied, - uint8_t dutyCycleApplied, uint8_t eventControl); -/** @brief Energy Management Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfEnergyManagementClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Energy Management Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfEnergyManagementClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Energy Management Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfEnergyManagementClusterServerInitCallback(uint8_t endpoint); -/** @brief Energy Management Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfEnergyManagementClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Energy Management Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfEnergyManagementClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Energy Management Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfEnergyManagementClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Energy Management Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfEnergyManagementClusterServerTickCallback(uint8_t endpoint); - -/** @} END Energy Management Cluster Callbacks */ - -/** @name Calendar Cluster Callbacks */ -// @{ - -/** @brief Calendar Cluster Cancel Calendar - * - * - * - * @param providerId Ver.: always - * @param issuerCalendarId Ver.: always - * @param calendarType Ver.: always - */ -bool emberAfCalendarClusterCancelCalendarCallback(uint32_t providerId, uint32_t issuerCalendarId, uint8_t calendarType); -/** @brief Calendar Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfCalendarClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Calendar Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfCalendarClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Calendar Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfCalendarClusterClientInitCallback(uint8_t endpoint); -/** @brief Calendar Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfCalendarClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Calendar Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfCalendarClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Calendar Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfCalendarClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Calendar Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfCalendarClusterClientTickCallback(uint8_t endpoint); -/** @brief Calendar Cluster Get Calendar - * - * - * - * @param earliestStartTime Ver.: always - * @param minIssuerEventId Ver.: always - * @param numberOfCalendars Ver.: always - * @param calendarType Ver.: always - * @param providerId Ver.: always - */ -bool emberAfCalendarClusterGetCalendarCallback(uint32_t earliestStartTime, uint32_t minIssuerEventId, uint8_t numberOfCalendars, - uint8_t calendarType, uint32_t providerId); -/** @brief Calendar Cluster Get Calendar Cancellation - * - * - * - */ -bool emberAfCalendarClusterGetCalendarCancellationCallback(void); -/** @brief Calendar Cluster Get Day Profiles - * - * - * - * @param providerId Ver.: always - * @param issuerCalendarId Ver.: always - * @param startDayId Ver.: always - * @param numberOfDays Ver.: always - */ -bool emberAfCalendarClusterGetDayProfilesCallback(uint32_t providerId, uint32_t issuerCalendarId, uint8_t startDayId, - uint8_t numberOfDays); -/** @brief Calendar Cluster Get Seasons - * - * - * - * @param providerId Ver.: always - * @param issuerCalendarId Ver.: always - */ -bool emberAfCalendarClusterGetSeasonsCallback(uint32_t providerId, uint32_t issuerCalendarId); -/** @brief Calendar Cluster Get Special Days - * - * - * - * @param startTime Ver.: always - * @param numberOfEvents Ver.: always - * @param calendarType Ver.: always - * @param providerId Ver.: always - * @param issuerCalendarId Ver.: always - */ -bool emberAfCalendarClusterGetSpecialDaysCallback(uint32_t startTime, uint8_t numberOfEvents, uint8_t calendarType, - uint32_t providerId, uint32_t issuerCalendarId); -/** @brief Calendar Cluster Get Week Profiles - * - * - * - * @param providerId Ver.: always - * @param issuerCalendarId Ver.: always - * @param startWeekId Ver.: always - * @param numberOfWeeks Ver.: always - */ -bool emberAfCalendarClusterGetWeekProfilesCallback(uint32_t providerId, uint32_t issuerCalendarId, uint8_t startWeekId, - uint8_t numberOfWeeks); -/** @brief Calendar Cluster Publish Calendar - * - * - * - * @param providerId Ver.: always - * @param issuerEventId Ver.: always - * @param issuerCalendarId Ver.: always - * @param startTime Ver.: always - * @param calendarType Ver.: always - * @param calendarTimeReference Ver.: always - * @param calendarName Ver.: always - * @param numberOfSeasons Ver.: always - * @param numberOfWeekProfiles Ver.: always - * @param numberOfDayProfiles Ver.: always - */ -bool emberAfCalendarClusterPublishCalendarCallback(uint32_t providerId, uint32_t issuerEventId, uint32_t issuerCalendarId, - uint32_t startTime, uint8_t calendarType, uint8_t calendarTimeReference, - uint8_t * calendarName, uint8_t numberOfSeasons, uint8_t numberOfWeekProfiles, - uint8_t numberOfDayProfiles); -/** @brief Calendar Cluster Publish Day Profile - * - * - * - * @param providerId Ver.: always - * @param issuerEventId Ver.: always - * @param issuerCalendarId Ver.: always - * @param dayId Ver.: always - * @param totalNumberOfScheduleEntries Ver.: always - * @param commandIndex Ver.: always - * @param totalNumberOfCommands Ver.: always - * @param calendarType Ver.: always - * @param dayScheduleEntries Ver.: always - */ -bool emberAfCalendarClusterPublishDayProfileCallback(uint32_t providerId, uint32_t issuerEventId, uint32_t issuerCalendarId, - uint8_t dayId, uint8_t totalNumberOfScheduleEntries, uint8_t commandIndex, - uint8_t totalNumberOfCommands, uint8_t calendarType, - uint8_t * dayScheduleEntries); -/** @brief Calendar Cluster Publish Seasons - * - * - * - * @param providerId Ver.: always - * @param issuerEventId Ver.: always - * @param issuerCalendarId Ver.: always - * @param commandIndex Ver.: always - * @param totalNumberOfCommands Ver.: always - * @param seasonEntries Ver.: always - */ -bool emberAfCalendarClusterPublishSeasonsCallback(uint32_t providerId, uint32_t issuerEventId, uint32_t issuerCalendarId, - uint8_t commandIndex, uint8_t totalNumberOfCommands, uint8_t * seasonEntries); -/** @brief Calendar Cluster Publish Special Days - * - * - * - * @param providerId Ver.: always - * @param issuerEventId Ver.: always - * @param issuerCalendarId Ver.: always - * @param startTime Ver.: always - * @param calendarType Ver.: always - * @param totalNumberOfSpecialDays Ver.: always - * @param commandIndex Ver.: always - * @param totalNumberOfCommands Ver.: always - * @param specialDayEntries Ver.: always - */ -bool emberAfCalendarClusterPublishSpecialDaysCallback(uint32_t providerId, uint32_t issuerEventId, uint32_t issuerCalendarId, - uint32_t startTime, uint8_t calendarType, uint8_t totalNumberOfSpecialDays, - uint8_t commandIndex, uint8_t totalNumberOfCommands, - uint8_t * specialDayEntries); -/** @brief Calendar Cluster Publish Week Profile - * - * - * - * @param providerId Ver.: always - * @param issuerEventId Ver.: always - * @param issuerCalendarId Ver.: always - * @param weekId Ver.: always - * @param dayIdRefMonday Ver.: always - * @param dayIdRefTuesday Ver.: always - * @param dayIdRefWednesday Ver.: always - * @param dayIdRefThursday Ver.: always - * @param dayIdRefFriday Ver.: always - * @param dayIdRefSaturday Ver.: always - * @param dayIdRefSunday Ver.: always - */ -bool emberAfCalendarClusterPublishWeekProfileCallback(uint32_t providerId, uint32_t issuerEventId, uint32_t issuerCalendarId, - uint8_t weekId, uint8_t dayIdRefMonday, uint8_t dayIdRefTuesday, - uint8_t dayIdRefWednesday, uint8_t dayIdRefThursday, uint8_t dayIdRefFriday, - uint8_t dayIdRefSaturday, uint8_t dayIdRefSunday); -/** @brief Calendar Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfCalendarClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Calendar Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfCalendarClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Calendar Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfCalendarClusterServerInitCallback(uint8_t endpoint); -/** @brief Calendar Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfCalendarClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Calendar Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfCalendarClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Calendar Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfCalendarClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Calendar Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfCalendarClusterServerTickCallback(uint8_t endpoint); - -/** @} END Calendar Cluster Callbacks */ - -/** @name Device Management Cluster Callbacks */ -// @{ - -/** @brief Device Management Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfDeviceManagementClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Device Management Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfDeviceManagementClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Device Management Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfDeviceManagementClusterClientInitCallback(uint8_t endpoint); -/** @brief Device Management Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfDeviceManagementClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Device Management Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfDeviceManagementClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Device Management Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfDeviceManagementClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Device Management Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfDeviceManagementClusterClientTickCallback(uint8_t endpoint); -/** @brief Device Management Cluster Get C I N - * - * - * - */ -bool emberAfDeviceManagementClusterGetCINCallback(void); -/** @brief Device Management Cluster Get Change Of Supplier - * - * - * - */ -bool emberAfDeviceManagementClusterGetChangeOfSupplierCallback(void); -/** @brief Device Management Cluster Get Change Of Tenancy - * - * - * - */ -bool emberAfDeviceManagementClusterGetChangeOfTenancyCallback(void); -/** @brief Device Management Cluster Get Event Configuration - * - * - * - * @param eventId Ver.: always - */ -bool emberAfDeviceManagementClusterGetEventConfigurationCallback(uint16_t eventId); -/** @brief Device Management Cluster Get Site Id - * - * - * - */ -bool emberAfDeviceManagementClusterGetSiteIdCallback(void); -/** @brief Device Management Cluster Publish Change Of Supplier - * - * - * - * @param currentProviderId Ver.: always - * @param issuerEventId Ver.: always - * @param tariffType Ver.: always - * @param proposedProviderId Ver.: always - * @param providerChangeImplementationTime Ver.: always - * @param providerChangeControl Ver.: always - * @param proposedProviderName Ver.: always - * @param proposedProviderContactDetails Ver.: always - */ -bool emberAfDeviceManagementClusterPublishChangeOfSupplierCallback(uint32_t currentProviderId, uint32_t issuerEventId, - uint8_t tariffType, uint32_t proposedProviderId, - uint32_t providerChangeImplementationTime, - uint32_t providerChangeControl, uint8_t * proposedProviderName, - uint8_t * proposedProviderContactDetails); -/** @brief Device Management Cluster Publish Change Of Tenancy - * - * - * - * @param providerId Ver.: always - * @param issuerEventId Ver.: always - * @param tariffType Ver.: always - * @param implementationDateTime Ver.: always - * @param proposedTenancyChangeControl Ver.: always - */ -bool emberAfDeviceManagementClusterPublishChangeOfTenancyCallback(uint32_t providerId, uint32_t issuerEventId, uint8_t tariffType, - uint32_t implementationDateTime, - uint32_t proposedTenancyChangeControl); -/** @brief Device Management Cluster Report Event Configuration - * - * - * - * @param commandIndex Ver.: always - * @param totalCommands Ver.: always - * @param eventConfigurationPayload Ver.: always - */ -bool emberAfDeviceManagementClusterReportEventConfigurationCallback(uint8_t commandIndex, uint8_t totalCommands, - uint8_t * eventConfigurationPayload); -/** @brief Device Management Cluster Request New Password - * - * - * - * @param passwordType Ver.: always - */ -bool emberAfDeviceManagementClusterRequestNewPasswordCallback(uint8_t passwordType); -/** @brief Device Management Cluster Request New Password Response - * - * - * - * @param issuerEventId Ver.: always - * @param implementationDateTime Ver.: always - * @param durationInMinutes Ver.: always - * @param passwordType Ver.: always - * @param password Ver.: always - */ -bool emberAfDeviceManagementClusterRequestNewPasswordResponseCallback(uint32_t issuerEventId, uint32_t implementationDateTime, - uint16_t durationInMinutes, uint8_t passwordType, - uint8_t * password); -/** @brief Device Management Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfDeviceManagementClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Device Management Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfDeviceManagementClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Device Management Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfDeviceManagementClusterServerInitCallback(uint8_t endpoint); -/** @brief Device Management Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfDeviceManagementClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Device Management Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfDeviceManagementClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Device Management Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfDeviceManagementClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Device Management Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfDeviceManagementClusterServerTickCallback(uint8_t endpoint); -/** @brief Device Management Cluster Set Event Configuration - * - * - * - * @param issuerEventId Ver.: always - * @param startDateTime Ver.: always - * @param eventConfiguration Ver.: always - * @param configurationControl Ver.: always - * @param eventConfigurationPayload Ver.: always - */ -bool emberAfDeviceManagementClusterSetEventConfigurationCallback(uint32_t issuerEventId, uint32_t startDateTime, - uint8_t eventConfiguration, uint8_t configurationControl, - uint8_t * eventConfigurationPayload); -/** @brief Device Management Cluster Update C I N - * - * - * - * @param issuerEventId Ver.: always - * @param implementationTime Ver.: always - * @param providerId Ver.: always - * @param customerIdNumber Ver.: always - */ -bool emberAfDeviceManagementClusterUpdateCINCallback(uint32_t issuerEventId, uint32_t implementationTime, uint32_t providerId, - uint8_t * customerIdNumber); -/** @brief Device Management Cluster Update Site Id - * - * - * - * @param issuerEventId Ver.: always - * @param siteIdTime Ver.: always - * @param providerId Ver.: always - * @param siteId Ver.: always - */ -bool emberAfDeviceManagementClusterUpdateSiteIdCallback(uint32_t issuerEventId, uint32_t siteIdTime, uint32_t providerId, - uint8_t * siteId); - -/** @} END Device Management Cluster Callbacks */ - -/** @name Events Cluster Callbacks */ -// @{ - -/** @brief Events Cluster Clear Event Log Request - * - * - * - * @param logId Ver.: always - */ -bool emberAfEventsClusterClearEventLogRequestCallback(uint8_t logId); -/** @brief Events Cluster Clear Event Log Response - * - * - * - * @param clearedEventsLogs Ver.: always - */ -bool emberAfEventsClusterClearEventLogResponseCallback(uint8_t clearedEventsLogs); -/** @brief Events Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfEventsClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Events Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfEventsClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Events Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfEventsClusterClientInitCallback(uint8_t endpoint); -/** @brief Events Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfEventsClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Events Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfEventsClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Events Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfEventsClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Events Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfEventsClusterClientTickCallback(uint8_t endpoint); -/** @brief Events Cluster Get Event Log - * - * - * - * @param eventControlLogId Ver.: always - * @param eventId Ver.: always - * @param startTime Ver.: always - * @param endTime Ver.: always - * @param numberOfEvents Ver.: always - * @param eventOffset Ver.: always - */ -bool emberAfEventsClusterGetEventLogCallback(uint8_t eventControlLogId, uint16_t eventId, uint32_t startTime, uint32_t endTime, - uint8_t numberOfEvents, uint16_t eventOffset); -/** @brief Events Cluster Publish Event - * - * - * - * @param logId Ver.: always - * @param eventId Ver.: always - * @param eventTime Ver.: always - * @param eventControl Ver.: always - * @param eventData Ver.: always - */ -bool emberAfEventsClusterPublishEventCallback(uint8_t logId, uint16_t eventId, uint32_t eventTime, uint8_t eventControl, - uint8_t * eventData); -/** @brief Events Cluster Publish Event Log - * - * - * - * @param totalNumberOfEvents Ver.: always - * @param commandIndex Ver.: always - * @param totalCommands Ver.: always - * @param logPayloadControl Ver.: always - * @param logPayload Ver.: always - */ -bool emberAfEventsClusterPublishEventLogCallback(uint16_t totalNumberOfEvents, uint8_t commandIndex, uint8_t totalCommands, - uint8_t logPayloadControl, uint8_t * logPayload); -/** @brief Events Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfEventsClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Events Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfEventsClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Events Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfEventsClusterServerInitCallback(uint8_t endpoint); -/** @brief Events Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfEventsClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Events Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfEventsClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Events Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfEventsClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Events Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfEventsClusterServerTickCallback(uint8_t endpoint); - -/** @} END Events Cluster Callbacks */ - -/** @name MDU Pairing Cluster Callbacks */ -// @{ - -/** @brief MDU Pairing Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfMduPairingClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief MDU Pairing Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfMduPairingClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief MDU Pairing Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfMduPairingClusterClientInitCallback(uint8_t endpoint); -/** @brief MDU Pairing Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfMduPairingClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief MDU Pairing Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfMduPairingClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief MDU Pairing Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfMduPairingClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief MDU Pairing Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfMduPairingClusterClientTickCallback(uint8_t endpoint); -/** @brief MDU Pairing Cluster Pairing Request - * - * - * - * @param localPairingInformationVersion Ver.: always - * @param eui64OfRequestingDevice Ver.: always - */ -bool emberAfMduPairingClusterPairingRequestCallback(uint32_t localPairingInformationVersion, uint8_t * eui64OfRequestingDevice); -/** @brief MDU Pairing Cluster Pairing Response - * - * - * - * @param pairingInformationVersion Ver.: always - * @param totalNumberOfDevices Ver.: always - * @param commandIndex Ver.: always - * @param totalNumberOfCommands Ver.: always - * @param eui64s Ver.: always - */ -bool emberAfMduPairingClusterPairingResponseCallback(uint32_t pairingInformationVersion, uint8_t totalNumberOfDevices, - uint8_t commandIndex, uint8_t totalNumberOfCommands, uint8_t * eui64s); -/** @brief MDU Pairing Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfMduPairingClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief MDU Pairing Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfMduPairingClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief MDU Pairing Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfMduPairingClusterServerInitCallback(uint8_t endpoint); -/** @brief MDU Pairing Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfMduPairingClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief MDU Pairing Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfMduPairingClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief MDU Pairing Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfMduPairingClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief MDU Pairing Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfMduPairingClusterServerTickCallback(uint8_t endpoint); - -/** @} END MDU Pairing Cluster Callbacks */ - -/** @name Sub-GHz Cluster Callbacks */ -// @{ - -/** @brief Sub-GHz Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfSubGhzClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Sub-GHz Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfSubGhzClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Sub-GHz Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfSubGhzClusterClientInitCallback(uint8_t endpoint); -/** @brief Sub-GHz Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfSubGhzClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Sub-GHz Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfSubGhzClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Sub-GHz Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfSubGhzClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Sub-GHz Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfSubGhzClusterClientTickCallback(uint8_t endpoint); -/** @brief Sub-GHz Cluster Get Suspend Zcl Messages Status - * - * - * - */ -bool emberAfSubGhzClusterGetSuspendZclMessagesStatusCallback(void); -/** @brief Sub-GHz Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfSubGhzClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Sub-GHz Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfSubGhzClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Sub-GHz Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfSubGhzClusterServerInitCallback(uint8_t endpoint); -/** @brief Sub-GHz Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfSubGhzClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Sub-GHz Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfSubGhzClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Sub-GHz Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfSubGhzClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Sub-GHz Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfSubGhzClusterServerTickCallback(uint8_t endpoint); -/** @brief Sub-GHz Cluster Suspend Zcl Messages - * - * - * - * @param period Ver.: always - */ -bool emberAfSubGhzClusterSuspendZclMessagesCallback(uint8_t period); - -/** @} END Sub-GHz Cluster Callbacks */ - -/** @name Key Establishment Cluster Callbacks */ -// @{ - -/** @brief Key Establishment Cluster Client Command Received - * - * This function is called by the application framework when a server-to-client - * key establishment command is received but has yet to be handled by the - * framework code. This function should return a bool value indicating whether - * the command has been handled by the application code and should not be - * further processed by the framework. - * - * @param cmd Ver.: always - */ -bool emberAfKeyEstablishmentClusterClientCommandReceivedCallback(EmberAfClusterCommand * cmd); -/** @brief Key Establishment Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfKeyEstablishmentClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Key Establishment Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfKeyEstablishmentClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Key Establishment Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfKeyEstablishmentClusterClientInitCallback(uint8_t endpoint); -/** @brief Key Establishment Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfKeyEstablishmentClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Key Establishment Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfKeyEstablishmentClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Key Establishment Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfKeyEstablishmentClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Key Establishment Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfKeyEstablishmentClusterClientTickCallback(uint8_t endpoint); -/** @brief Key Establishment Cluster Confirm Key Data Request - * - * - * - * @param secureMessageAuthenticationCode Ver.: always - */ -bool emberAfKeyEstablishmentClusterConfirmKeyDataRequestCallback(uint8_t * secureMessageAuthenticationCode); -/** @brief Key Establishment Cluster Confirm Key Data Response - * - * - * - * @param secureMessageAuthenticationCode Ver.: always - */ -bool emberAfKeyEstablishmentClusterConfirmKeyDataResponseCallback(uint8_t * secureMessageAuthenticationCode); -/** @brief Key Establishment Cluster Ephemeral Data Request - * - * - * - * @param ephemeralData Ver.: always - */ -bool emberAfKeyEstablishmentClusterEphemeralDataRequestCallback(uint8_t * ephemeralData); -/** @brief Key Establishment Cluster Ephemeral Data Response - * - * - * - * @param ephemeralData Ver.: always - */ -bool emberAfKeyEstablishmentClusterEphemeralDataResponseCallback(uint8_t * ephemeralData); -/** @brief Key Establishment Cluster Initiate Key Establishment Request - * - * - * - * @param keyEstablishmentSuite Ver.: always - * @param ephemeralDataGenerateTime Ver.: always - * @param confirmKeyGenerateTime Ver.: always - * @param identity Ver.: always - */ -bool emberAfKeyEstablishmentClusterInitiateKeyEstablishmentRequestCallback(uint16_t keyEstablishmentSuite, - uint8_t ephemeralDataGenerateTime, - uint8_t confirmKeyGenerateTime, uint8_t * identity); -/** @brief Key Establishment Cluster Initiate Key Establishment Response - * - * - * - * @param requestedKeyEstablishmentSuite Ver.: always - * @param ephemeralDataGenerateTime Ver.: always - * @param confirmKeyGenerateTime Ver.: always - * @param identity Ver.: always - */ -bool emberAfKeyEstablishmentClusterInitiateKeyEstablishmentResponseCallback(uint16_t requestedKeyEstablishmentSuite, - uint8_t ephemeralDataGenerateTime, - uint8_t confirmKeyGenerateTime, uint8_t * identity); -/** @brief Key Establishment Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfKeyEstablishmentClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Key Establishment Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfKeyEstablishmentClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Key Establishment Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfKeyEstablishmentClusterServerInitCallback(uint8_t endpoint); -/** @brief Key Establishment Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfKeyEstablishmentClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Key Establishment Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfKeyEstablishmentClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Key Establishment Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfKeyEstablishmentClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Key Establishment Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfKeyEstablishmentClusterServerTickCallback(uint8_t endpoint); -/** @brief Key Establishment Cluster Terminate Key Establishment - * - * - * - * @param statusCode Ver.: always - * @param waitTime Ver.: always - * @param keyEstablishmentSuite Ver.: always - */ -bool emberAfKeyEstablishmentClusterTerminateKeyEstablishmentCallback(uint8_t statusCode, uint8_t waitTime, - uint16_t keyEstablishmentSuite); -/** @brief Key Establishment Cluster Server Command Received - * - * This function is called by the application framework when a client-to-server - * key establishment command is received but has yet to be handled by the - * framework code. This function should return a bool value indicating whether - * the command has been handled by the application code and should not be - * further processed by the framework. - * - * @param cmd Ver.: always - */ -bool emberAfKeyEstablishmentClusterServerCommandReceivedCallback(EmberAfClusterCommand * cmd); - -/** @} END Key Establishment Cluster Callbacks */ - -/** @name Information Cluster Callbacks */ -// @{ - -/** @brief Information Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfInformationClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Information Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfInformationClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Information Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfInformationClusterClientInitCallback(uint8_t endpoint); -/** @brief Information Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfInformationClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Information Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfInformationClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Information Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfInformationClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Information Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfInformationClusterClientTickCallback(uint8_t endpoint); -/** @brief Information Cluster Configure Delivery Enable - * - * - * - * @param enable Ver.: always - */ -bool emberAfInformationClusterConfigureDeliveryEnableCallback(uint8_t enable); -/** @brief Information Cluster Configure Node Description - * - * - * - * @param description Ver.: always - */ -bool emberAfInformationClusterConfigureNodeDescriptionCallback(uint8_t * description); -/** @brief Information Cluster Configure Push Information Timer - * - * - * - * @param timer Ver.: always - */ -bool emberAfInformationClusterConfigurePushInformationTimerCallback(uint32_t timer); -/** @brief Information Cluster Configure Set Root Id - * - * - * - * @param rootId Ver.: always - */ -bool emberAfInformationClusterConfigureSetRootIdCallback(uint16_t rootId); -/** @brief Information Cluster Delete - * - * - * - * @param deletionOptions Ver.: always - * @param contentIds Ver.: always - */ -bool emberAfInformationClusterDeleteCallback(uint8_t deletionOptions, uint8_t * contentIds); -/** @brief Information Cluster Delete Response - * - * - * - * @param notificationList Ver.: always - */ -bool emberAfInformationClusterDeleteResponseCallback(uint8_t * notificationList); -/** @brief Information Cluster Push Information - * - * - * - * @param contents Ver.: always - */ -bool emberAfInformationClusterPushInformationCallback(uint8_t * contents); -/** @brief Information Cluster Push Information Response - * - * - * - * @param notificationList Ver.: always - */ -bool emberAfInformationClusterPushInformationResponseCallback(uint8_t * notificationList); -/** @brief Information Cluster Request Information - * - * - * - * @param inquiryId Ver.: always - * @param dataTypeId Ver.: always - * @param requestInformationPayload Ver.: always - */ -bool emberAfInformationClusterRequestInformationCallback(uint8_t inquiryId, uint8_t dataTypeId, - uint8_t * requestInformationPayload); -/** @brief Information Cluster Request Information Response - * - * - * - * @param number Ver.: always - * @param buffer Ver.: always - */ -bool emberAfInformationClusterRequestInformationResponseCallback(uint8_t number, uint8_t * buffer); -/** @brief Information Cluster Request Preference Confirmation - * - * - * - * @param statusFeedbackList Ver.: always - */ -bool emberAfInformationClusterRequestPreferenceConfirmationCallback(uint8_t * statusFeedbackList); -/** @brief Information Cluster Request Preference Response - * - * - * - * @param statusFeedback Ver.: always - * @param preferenceType Ver.: always - * @param preferencePayload Ver.: always - */ -bool emberAfInformationClusterRequestPreferenceResponseCallback(uint8_t statusFeedback, uint16_t preferenceType, - uint8_t * preferencePayload); -/** @brief Information Cluster Send Preference - * - * - * - * @param preferenceType Ver.: always - * @param preferencePayload Ver.: always - */ -bool emberAfInformationClusterSendPreferenceCallback(uint16_t preferenceType, uint8_t * preferencePayload); -/** @brief Information Cluster Send Preference Response - * - * - * - * @param statusFeedbackList Ver.: always - */ -bool emberAfInformationClusterSendPreferenceResponseCallback(uint8_t * statusFeedbackList); -/** @brief Information Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfInformationClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Information Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfInformationClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Information Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfInformationClusterServerInitCallback(uint8_t endpoint); -/** @brief Information Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfInformationClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Information Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfInformationClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Information Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfInformationClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Information Cluster Server Request Preference - * - * - * - */ -bool emberAfInformationClusterServerRequestPreferenceCallback(void); -/** @brief Information Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfInformationClusterServerTickCallback(uint8_t endpoint); -/** @brief Information Cluster Update - * - * - * - * @param accessControl Ver.: always - * @param option Ver.: always - * @param contents Ver.: always - */ -bool emberAfInformationClusterUpdateCallback(uint8_t accessControl, uint8_t option, uint8_t * contents); -/** @brief Information Cluster Update Response - * - * - * - * @param notificationList Ver.: always - */ -bool emberAfInformationClusterUpdateResponseCallback(uint8_t * notificationList); - -/** @} END Information Cluster Callbacks */ - -/** @name Data Sharing Cluster Callbacks */ -// @{ - -/** @brief Data Sharing Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfDataSharingClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Data Sharing Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfDataSharingClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Data Sharing Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfDataSharingClusterClientInitCallback(uint8_t endpoint); -/** @brief Data Sharing Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfDataSharingClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Data Sharing Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfDataSharingClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Data Sharing Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfDataSharingClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Data Sharing Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfDataSharingClusterClientTickCallback(uint8_t endpoint); -/** @brief Data Sharing Cluster File Transmission - * - * - * - * @param transmitOptions Ver.: always - * @param buffer Ver.: always - */ -bool emberAfDataSharingClusterFileTransmissionCallback(uint8_t transmitOptions, uint8_t * buffer); -/** @brief Data Sharing Cluster Modify File Request - * - * - * - * @param fileIndex Ver.: always - * @param fileStartPosition Ver.: always - * @param octetCount Ver.: always - */ -bool emberAfDataSharingClusterModifyFileRequestCallback(uint16_t fileIndex, uint32_t fileStartPosition, uint32_t octetCount); -/** @brief Data Sharing Cluster Modify Record Request - * - * - * - * @param fileIndex Ver.: always - * @param fileStartRecord Ver.: always - * @param recordCount Ver.: always - */ -bool emberAfDataSharingClusterModifyRecordRequestCallback(uint16_t fileIndex, uint16_t fileStartRecord, uint16_t recordCount); -/** @brief Data Sharing Cluster Read File Request - * - * - * - * @param fileIndex Ver.: always - * @param fileStartPositionAndRequestedOctetCount Ver.: always - */ -bool emberAfDataSharingClusterReadFileRequestCallback(uint16_t fileIndex, uint8_t * fileStartPositionAndRequestedOctetCount); -/** @brief Data Sharing Cluster Read Record Request - * - * - * - * @param fileIndex Ver.: always - * @param fileStartRecordAndRequestedRecordCount Ver.: always - */ -bool emberAfDataSharingClusterReadRecordRequestCallback(uint16_t fileIndex, uint8_t * fileStartRecordAndRequestedRecordCount); -/** @brief Data Sharing Cluster Record Transmission - * - * - * - * @param transmitOptions Ver.: always - * @param buffer Ver.: always - */ -bool emberAfDataSharingClusterRecordTransmissionCallback(uint8_t transmitOptions, uint8_t * buffer); -/** @brief Data Sharing Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfDataSharingClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Data Sharing Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfDataSharingClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Data Sharing Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfDataSharingClusterServerInitCallback(uint8_t endpoint); -/** @brief Data Sharing Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfDataSharingClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Data Sharing Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfDataSharingClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Data Sharing Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfDataSharingClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Data Sharing Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfDataSharingClusterServerTickCallback(uint8_t endpoint); -/** @brief Data Sharing Cluster Write File Request - * - * - * - * @param writeOptions Ver.: always - * @param fileSize Ver.: always - */ -bool emberAfDataSharingClusterWriteFileRequestCallback(uint8_t writeOptions, uint8_t * fileSize); -/** @brief Data Sharing Cluster Write File Response - * - * - * - * @param status Ver.: always - * @param fileIndex Ver.: always - */ -bool emberAfDataSharingClusterWriteFileResponseCallback(uint8_t status, uint8_t * fileIndex); - -/** @} END Data Sharing Cluster Callbacks */ - -/** @name Gaming Cluster Callbacks */ -// @{ - -/** @brief Gaming Cluster Action Control - * - * - * - * @param actions Ver.: always - */ -bool emberAfGamingClusterActionControlCallback(uint32_t actions); -/** @brief Gaming Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfGamingClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Gaming Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfGamingClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Gaming Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfGamingClusterClientInitCallback(uint8_t endpoint); -/** @brief Gaming Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfGamingClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Gaming Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfGamingClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Gaming Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfGamingClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Gaming Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfGamingClusterClientTickCallback(uint8_t endpoint); -/** @brief Gaming Cluster Download Game - * - * - * - */ -bool emberAfGamingClusterDownloadGameCallback(void); -/** @brief Gaming Cluster End Game - * - * - * - */ -bool emberAfGamingClusterEndGameCallback(void); -/** @brief Gaming Cluster Game Announcement - * - * - * - * @param gameId Ver.: always - * @param gameMaster Ver.: always - * @param listOfGame Ver.: always - */ -bool emberAfGamingClusterGameAnnouncementCallback(uint16_t gameId, uint8_t gameMaster, uint8_t * listOfGame); -/** @brief Gaming Cluster General Response - * - * - * - * @param commandId Ver.: always - * @param status Ver.: always - * @param message Ver.: always - */ -bool emberAfGamingClusterGeneralResponseCallback(uint8_t commandId, uint8_t status, uint8_t * message); -/** @brief Gaming Cluster Join Game - * - * - * - * @param gameId Ver.: always - * @param joinAsMaster Ver.: always - * @param nameOfGame Ver.: always - */ -bool emberAfGamingClusterJoinGameCallback(uint16_t gameId, uint8_t joinAsMaster, uint8_t * nameOfGame); -/** @brief Gaming Cluster Pause Game - * - * - * - */ -bool emberAfGamingClusterPauseGameCallback(void); -/** @brief Gaming Cluster Quit Game - * - * - * - */ -bool emberAfGamingClusterQuitGameCallback(void); -/** @brief Gaming Cluster Resume Game - * - * - * - */ -bool emberAfGamingClusterResumeGameCallback(void); -/** @brief Gaming Cluster Search Game - * - * - * - * @param specificGame Ver.: always - * @param gameId Ver.: always - */ -bool emberAfGamingClusterSearchGameCallback(uint8_t specificGame, uint16_t gameId); -/** @brief Gaming Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfGamingClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Gaming Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfGamingClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Gaming Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfGamingClusterServerInitCallback(uint8_t endpoint); -/** @brief Gaming Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfGamingClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Gaming Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfGamingClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Gaming Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfGamingClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Gaming Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfGamingClusterServerTickCallback(uint8_t endpoint); -/** @brief Gaming Cluster Start Game - * - * - * - */ -bool emberAfGamingClusterStartGameCallback(void); -/** @brief Gaming Cluster Start Over - * - * - * - */ -bool emberAfGamingClusterStartOverCallback(void); - -/** @} END Gaming Cluster Callbacks */ - -/** @name Data Rate Control Cluster Callbacks */ -// @{ - -/** @brief Data Rate Control Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfDataRateControlClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Data Rate Control Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfDataRateControlClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Data Rate Control Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfDataRateControlClusterClientInitCallback(uint8_t endpoint); -/** @brief Data Rate Control Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfDataRateControlClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Data Rate Control Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfDataRateControlClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Data Rate Control Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfDataRateControlClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Data Rate Control Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfDataRateControlClusterClientTickCallback(uint8_t endpoint); -/** @brief Data Rate Control Cluster Data Rate Control - * - * - * - * @param originatorAddress Ver.: always - * @param destinationAddress Ver.: always - * @param dataRate Ver.: always - */ -bool emberAfDataRateControlClusterDataRateControlCallback(uint16_t originatorAddress, uint16_t destinationAddress, - uint8_t dataRate); -/** @brief Data Rate Control Cluster Data Rate Notification - * - * - * - * @param originatorAddress Ver.: always - * @param destinationAddress Ver.: always - * @param dataRate Ver.: always - */ -bool emberAfDataRateControlClusterDataRateNotificationCallback(uint16_t originatorAddress, uint16_t destinationAddress, - uint8_t dataRate); -/** @brief Data Rate Control Cluster Path Creation - * - * - * - * @param originatorAddress Ver.: always - * @param destinationAddress Ver.: always - * @param dataRate Ver.: always - */ -bool emberAfDataRateControlClusterPathCreationCallback(uint16_t originatorAddress, uint16_t destinationAddress, uint8_t dataRate); -/** @brief Data Rate Control Cluster Path Deletion - * - * - * - * @param originatorAddress Ver.: always - * @param destinationAddress Ver.: always - */ -bool emberAfDataRateControlClusterPathDeletionCallback(uint16_t originatorAddress, uint16_t destinationAddress); -/** @brief Data Rate Control Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfDataRateControlClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Data Rate Control Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfDataRateControlClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Data Rate Control Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfDataRateControlClusterServerInitCallback(uint8_t endpoint); -/** @brief Data Rate Control Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfDataRateControlClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Data Rate Control Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfDataRateControlClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Data Rate Control Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfDataRateControlClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Data Rate Control Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfDataRateControlClusterServerTickCallback(uint8_t endpoint); - -/** @} END Data Rate Control Cluster Callbacks */ - -/** @name Voice over ZigBee Cluster Callbacks */ -// @{ - -/** @brief Voice over ZigBee Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfVoiceOverZigbeeClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Voice over ZigBee Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfVoiceOverZigbeeClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Voice over ZigBee Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfVoiceOverZigbeeClusterClientInitCallback(uint8_t endpoint); -/** @brief Voice over ZigBee Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfVoiceOverZigbeeClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Voice over ZigBee Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfVoiceOverZigbeeClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Voice over ZigBee Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfVoiceOverZigbeeClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Voice over ZigBee Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfVoiceOverZigbeeClusterClientTickCallback(uint8_t endpoint); -/** @brief Voice over ZigBee Cluster Control - * - * - * - * @param controlType Ver.: always - */ -bool emberAfVoiceOverZigbeeClusterControlCallback(uint8_t controlType); -/** @brief Voice over ZigBee Cluster Control Response - * - * - * - * @param ackNack Ver.: always - */ -bool emberAfVoiceOverZigbeeClusterControlResponseCallback(uint8_t ackNack); -/** @brief Voice over ZigBee Cluster Establishment Request - * - * - * - * @param flag Ver.: always - * @param codecType Ver.: always - * @param sampFreq Ver.: always - * @param codecRate Ver.: always - * @param serviceType Ver.: always - * @param buffer Ver.: always - */ -bool emberAfVoiceOverZigbeeClusterEstablishmentRequestCallback(uint8_t flag, uint8_t codecType, uint8_t sampFreq, uint8_t codecRate, - uint8_t serviceType, uint8_t * buffer); -/** @brief Voice over ZigBee Cluster Establishment Response - * - * - * - * @param ackNack Ver.: always - * @param codecType Ver.: always - */ -bool emberAfVoiceOverZigbeeClusterEstablishmentResponseCallback(uint8_t ackNack, uint8_t codecType); -/** @brief Voice over ZigBee Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfVoiceOverZigbeeClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Voice over ZigBee Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfVoiceOverZigbeeClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Voice over ZigBee Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfVoiceOverZigbeeClusterServerInitCallback(uint8_t endpoint); -/** @brief Voice over ZigBee Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfVoiceOverZigbeeClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Voice over ZigBee Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfVoiceOverZigbeeClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Voice over ZigBee Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfVoiceOverZigbeeClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Voice over ZigBee Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfVoiceOverZigbeeClusterServerTickCallback(uint8_t endpoint); -/** @brief Voice over ZigBee Cluster Voice Transmission - * - * - * - * @param voiceData Ver.: always - */ -bool emberAfVoiceOverZigbeeClusterVoiceTransmissionCallback(uint8_t * voiceData); -/** @brief Voice over ZigBee Cluster Voice Transmission Completion - * - * - * - */ -bool emberAfVoiceOverZigbeeClusterVoiceTransmissionCompletionCallback(void); -/** @brief Voice over ZigBee Cluster Voice Transmission Response - * - * - * - * @param sequenceNumber Ver.: always - * @param errorFlag Ver.: always - */ -bool emberAfVoiceOverZigbeeClusterVoiceTransmissionResponseCallback(uint8_t sequenceNumber, uint8_t errorFlag); - -/** @} END Voice over ZigBee Cluster Callbacks */ - -/** @name Chatting Cluster Callbacks */ -// @{ - -/** @brief Chatting Cluster Chat Message - * - * - * - * @param destinationUid Ver.: always - * @param sourceUid Ver.: always - * @param cid Ver.: always - * @param nickname Ver.: always - * @param message Ver.: always - */ -bool emberAfChattingClusterChatMessageCallback(uint16_t destinationUid, uint16_t sourceUid, uint16_t cid, uint8_t * nickname, - uint8_t * message); -/** @brief Chatting Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfChattingClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Chatting Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfChattingClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Chatting Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfChattingClusterClientInitCallback(uint8_t endpoint); -/** @brief Chatting Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfChattingClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Chatting Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfChattingClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Chatting Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfChattingClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Chatting Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfChattingClusterClientTickCallback(uint8_t endpoint); -/** @brief Chatting Cluster Get Node Information Request - * - * - * - * @param cid Ver.: always - * @param uid Ver.: always - */ -bool emberAfChattingClusterGetNodeInformationRequestCallback(uint16_t cid, uint16_t uid); -/** @brief Chatting Cluster Get Node Information Response - * - * - * - * @param status Ver.: always - * @param cid Ver.: always - * @param uid Ver.: always - * @param addressEndpointAndNickname Ver.: always - */ -bool emberAfChattingClusterGetNodeInformationResponseCallback(uint8_t status, uint16_t cid, uint16_t uid, - uint8_t * addressEndpointAndNickname); -/** @brief Chatting Cluster Join Chat Request - * - * - * - * @param uid Ver.: always - * @param nickname Ver.: always - * @param cid Ver.: always - */ -bool emberAfChattingClusterJoinChatRequestCallback(uint16_t uid, uint8_t * nickname, uint16_t cid); -/** @brief Chatting Cluster Join Chat Response - * - * - * - * @param status Ver.: always - * @param cid Ver.: always - * @param chatParticipantList Ver.: always - */ -bool emberAfChattingClusterJoinChatResponseCallback(uint8_t status, uint16_t cid, uint8_t * chatParticipantList); -/** @brief Chatting Cluster Leave Chat Request - * - * - * - * @param cid Ver.: always - * @param uid Ver.: always - */ -bool emberAfChattingClusterLeaveChatRequestCallback(uint16_t cid, uint16_t uid); -/** @brief Chatting Cluster Search Chat Request - * - * - * - */ -bool emberAfChattingClusterSearchChatRequestCallback(void); -/** @brief Chatting Cluster Search Chat Response - * - * - * - * @param options Ver.: always - * @param chatRoomList Ver.: always - */ -bool emberAfChattingClusterSearchChatResponseCallback(uint8_t options, uint8_t * chatRoomList); -/** @brief Chatting Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfChattingClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Chatting Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfChattingClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Chatting Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfChattingClusterServerInitCallback(uint8_t endpoint); -/** @brief Chatting Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfChattingClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Chatting Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfChattingClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Chatting Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfChattingClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Chatting Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfChattingClusterServerTickCallback(uint8_t endpoint); -/** @brief Chatting Cluster Start Chat Request - * - * - * - * @param name Ver.: always - * @param uid Ver.: always - * @param nickname Ver.: always - */ -bool emberAfChattingClusterStartChatRequestCallback(uint8_t * name, uint16_t uid, uint8_t * nickname); -/** @brief Chatting Cluster Start Chat Response - * - * - * - * @param status Ver.: always - * @param cid Ver.: always - */ -bool emberAfChattingClusterStartChatResponseCallback(uint8_t status, uint16_t cid); -/** @brief Chatting Cluster Switch Chairman Confirm - * - * - * - * @param cid Ver.: always - * @param nodeInformationList Ver.: always - */ -bool emberAfChattingClusterSwitchChairmanConfirmCallback(uint16_t cid, uint8_t * nodeInformationList); -/** @brief Chatting Cluster Switch Chairman Notification - * - * - * - * @param cid Ver.: always - * @param uid Ver.: always - * @param address Ver.: always - * @param endpoint Ver.: always - */ -bool emberAfChattingClusterSwitchChairmanNotificationCallback(uint16_t cid, uint16_t uid, uint16_t address, uint8_t endpoint); -/** @brief Chatting Cluster Switch Chairman Request - * - * - * - * @param cid Ver.: always - */ -bool emberAfChattingClusterSwitchChairmanRequestCallback(uint16_t cid); -/** @brief Chatting Cluster Switch Chairman Response - * - * - * - * @param cid Ver.: always - * @param uid Ver.: always - */ -bool emberAfChattingClusterSwitchChairmanResponseCallback(uint16_t cid, uint16_t uid); -/** @brief Chatting Cluster User Joined - * - * - * - * @param cid Ver.: always - * @param uid Ver.: always - * @param nickname Ver.: always - */ -bool emberAfChattingClusterUserJoinedCallback(uint16_t cid, uint16_t uid, uint8_t * nickname); -/** @brief Chatting Cluster User Left - * - * - * - * @param cid Ver.: always - * @param uid Ver.: always - * @param nickname Ver.: always - */ -bool emberAfChattingClusterUserLeftCallback(uint16_t cid, uint16_t uid, uint8_t * nickname); - -/** @} END Chatting Cluster Callbacks */ - -/** @name Payment Cluster Callbacks */ -// @{ - -/** @brief Payment Cluster Accept Payment - * - * - * - * @param userId Ver.: always - * @param userType Ver.: always - * @param serviceId Ver.: always - * @param goodId Ver.: always - */ -bool emberAfPaymentClusterAcceptPaymentCallback(uint8_t * userId, uint16_t userType, uint16_t serviceId, uint8_t * goodId); -/** @brief Payment Cluster Buy Confirm - * - * - * - * @param serialNumber Ver.: always - * @param currency Ver.: always - * @param priceTrailingDigit Ver.: always - * @param price Ver.: always - * @param timestamp Ver.: always - * @param transId Ver.: always - * @param transStatus Ver.: always - */ -bool emberAfPaymentClusterBuyConfirmCallback(uint8_t * serialNumber, uint32_t currency, uint8_t priceTrailingDigit, uint32_t price, - uint8_t * timestamp, uint16_t transId, uint8_t transStatus); -/** @brief Payment Cluster Buy Request - * - * - * - * @param userId Ver.: always - * @param userType Ver.: always - * @param serviceId Ver.: always - * @param goodId Ver.: always - */ -bool emberAfPaymentClusterBuyRequestCallback(uint8_t * userId, uint16_t userType, uint16_t serviceId, uint8_t * goodId); -/** @brief Payment Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfPaymentClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Payment Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfPaymentClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Payment Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfPaymentClusterClientInitCallback(uint8_t endpoint); -/** @brief Payment Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfPaymentClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Payment Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfPaymentClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Payment Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfPaymentClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Payment Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfPaymentClusterClientTickCallback(uint8_t endpoint); -/** @brief Payment Cluster Payment Confirm - * - * - * - * @param serialNumber Ver.: always - * @param transId Ver.: always - * @param transStatus Ver.: always - */ -bool emberAfPaymentClusterPaymentConfirmCallback(uint8_t * serialNumber, uint16_t transId, uint8_t transStatus); -/** @brief Payment Cluster Receipt Delivery - * - * - * - * @param serialNumber Ver.: always - * @param currency Ver.: always - * @param priceTrailingDigit Ver.: always - * @param price Ver.: always - * @param timestamp Ver.: always - */ -bool emberAfPaymentClusterReceiptDeliveryCallback(uint8_t * serialNumber, uint32_t currency, uint8_t priceTrailingDigit, - uint32_t price, uint8_t * timestamp); -/** @brief Payment Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfPaymentClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Payment Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfPaymentClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Payment Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfPaymentClusterServerInitCallback(uint8_t endpoint); -/** @brief Payment Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfPaymentClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Payment Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfPaymentClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Payment Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfPaymentClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Payment Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfPaymentClusterServerTickCallback(uint8_t endpoint); -/** @brief Payment Cluster Transaction End - * - * - * - * @param serialNumber Ver.: always - * @param status Ver.: always - */ -bool emberAfPaymentClusterTransactionEndCallback(uint8_t * serialNumber, uint8_t status); - -/** @} END Payment Cluster Callbacks */ - -/** @name Billing Cluster Callbacks */ -// @{ - -/** @brief Billing Cluster Bill Status Notification - * - * - * - * @param userId Ver.: always - * @param status Ver.: always - */ -bool emberAfBillingClusterBillStatusNotificationCallback(uint8_t * userId, uint8_t status); -/** @brief Billing Cluster Check Bill Status - * - * - * - * @param userId Ver.: always - * @param serviceId Ver.: always - * @param serviceProviderId Ver.: always - */ -bool emberAfBillingClusterCheckBillStatusCallback(uint8_t * userId, uint16_t serviceId, uint16_t serviceProviderId); -/** @brief Billing Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfBillingClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Billing Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfBillingClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Billing Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfBillingClusterClientInitCallback(uint8_t endpoint); -/** @brief Billing Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfBillingClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Billing Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfBillingClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Billing Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfBillingClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Billing Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfBillingClusterClientTickCallback(uint8_t endpoint); -/** @brief Billing Cluster Send Bill Record - * - * - * - * @param userId Ver.: always - * @param serviceId Ver.: always - * @param serviceProviderId Ver.: always - * @param timestamp Ver.: always - * @param duration Ver.: always - */ -bool emberAfBillingClusterSendBillRecordCallback(uint8_t * userId, uint16_t serviceId, uint16_t serviceProviderId, - uint8_t * timestamp, uint16_t duration); -/** @brief Billing Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfBillingClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Billing Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfBillingClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Billing Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfBillingClusterServerInitCallback(uint8_t endpoint); -/** @brief Billing Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfBillingClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Billing Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfBillingClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Billing Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfBillingClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Billing Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfBillingClusterServerTickCallback(uint8_t endpoint); -/** @brief Billing Cluster Session Keep Alive - * - * - * - * @param userId Ver.: always - * @param serviceId Ver.: always - * @param serviceProviderId Ver.: always - */ -bool emberAfBillingClusterSessionKeepAliveCallback(uint8_t * userId, uint16_t serviceId, uint16_t serviceProviderId); -/** @brief Billing Cluster Start Billing Session - * - * - * - * @param userId Ver.: always - * @param serviceId Ver.: always - * @param serviceProviderId Ver.: always - */ -bool emberAfBillingClusterStartBillingSessionCallback(uint8_t * userId, uint16_t serviceId, uint16_t serviceProviderId); -/** @brief Billing Cluster Stop Billing Session - * - * - * - * @param userId Ver.: always - * @param serviceId Ver.: always - * @param serviceProviderId Ver.: always - */ -bool emberAfBillingClusterStopBillingSessionCallback(uint8_t * userId, uint16_t serviceId, uint16_t serviceProviderId); -/** @brief Billing Cluster Subscribe - * - * - * - * @param userId Ver.: always - * @param serviceId Ver.: always - * @param serviceProviderId Ver.: always - */ -bool emberAfBillingClusterSubscribeCallback(uint8_t * userId, uint16_t serviceId, uint16_t serviceProviderId); -/** @brief Billing Cluster Unsubscribe - * - * - * - * @param userId Ver.: always - * @param serviceId Ver.: always - * @param serviceProviderId Ver.: always - */ -bool emberAfBillingClusterUnsubscribeCallback(uint8_t * userId, uint16_t serviceId, uint16_t serviceProviderId); - -/** @} END Billing Cluster Callbacks */ - -/** @name Appliance Identification Cluster Callbacks */ -// @{ - -/** @brief Appliance Identification Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfApplianceIdentificationClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Appliance Identification Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfApplianceIdentificationClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Appliance Identification Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfApplianceIdentificationClusterClientInitCallback(uint8_t endpoint); -/** @brief Appliance Identification Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfApplianceIdentificationClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Appliance Identification Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfApplianceIdentificationClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Appliance Identification Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfApplianceIdentificationClusterClientPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Appliance Identification Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfApplianceIdentificationClusterClientTickCallback(uint8_t endpoint); -/** @brief Appliance Identification Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfApplianceIdentificationClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Appliance Identification Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfApplianceIdentificationClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Appliance Identification Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfApplianceIdentificationClusterServerInitCallback(uint8_t endpoint); -/** @brief Appliance Identification Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfApplianceIdentificationClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Appliance Identification Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfApplianceIdentificationClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Appliance Identification Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfApplianceIdentificationClusterServerPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Appliance Identification Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfApplianceIdentificationClusterServerTickCallback(uint8_t endpoint); - -/** @} END Appliance Identification Cluster Callbacks */ - -/** @name Meter Identification Cluster Callbacks */ -// @{ - -/** @brief Meter Identification Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfMeterIdentificationClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Meter Identification Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfMeterIdentificationClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Meter Identification Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfMeterIdentificationClusterClientInitCallback(uint8_t endpoint); -/** @brief Meter Identification Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfMeterIdentificationClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Meter Identification Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfMeterIdentificationClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Meter Identification Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfMeterIdentificationClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Meter Identification Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfMeterIdentificationClusterClientTickCallback(uint8_t endpoint); -/** @brief Meter Identification Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfMeterIdentificationClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Meter Identification Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfMeterIdentificationClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Meter Identification Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfMeterIdentificationClusterServerInitCallback(uint8_t endpoint); -/** @brief Meter Identification Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfMeterIdentificationClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Meter Identification Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfMeterIdentificationClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Meter Identification Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfMeterIdentificationClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Meter Identification Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfMeterIdentificationClusterServerTickCallback(uint8_t endpoint); - -/** @} END Meter Identification Cluster Callbacks */ - -/** @name Appliance Events and Alert Cluster Callbacks */ -// @{ - -/** @brief Appliance Events and Alert Cluster Alerts Notification - * - * - * - * @param alertsCount Ver.: always - * @param alertStructures Ver.: always - */ -bool emberAfApplianceEventsAndAlertClusterAlertsNotificationCallback(uint8_t alertsCount, uint8_t * alertStructures); -/** @brief Appliance Events and Alert Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfApplianceEventsAndAlertClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Appliance Events and Alert Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfApplianceEventsAndAlertClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Appliance Events and Alert Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfApplianceEventsAndAlertClusterClientInitCallback(uint8_t endpoint); -/** @brief Appliance Events and Alert Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfApplianceEventsAndAlertClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Appliance Events and Alert Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfApplianceEventsAndAlertClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Appliance Events and Alert Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfApplianceEventsAndAlertClusterClientPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Appliance Events and Alert Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfApplianceEventsAndAlertClusterClientTickCallback(uint8_t endpoint); -/** @brief Appliance Events and Alert Cluster Events Notification - * - * - * - * @param eventHeader Ver.: always - * @param eventId Ver.: always - */ -bool emberAfApplianceEventsAndAlertClusterEventsNotificationCallback(uint8_t eventHeader, uint8_t eventId); -/** @brief Appliance Events and Alert Cluster Get Alerts - * - * - * - */ -bool emberAfApplianceEventsAndAlertClusterGetAlertsCallback(void); -/** @brief Appliance Events and Alert Cluster Get Alerts Response - * - * - * - * @param alertsCount Ver.: always - * @param alertStructures Ver.: always - */ -bool emberAfApplianceEventsAndAlertClusterGetAlertsResponseCallback(uint8_t alertsCount, uint8_t * alertStructures); -/** @brief Appliance Events and Alert Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfApplianceEventsAndAlertClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Appliance Events and Alert Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfApplianceEventsAndAlertClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Appliance Events and Alert Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfApplianceEventsAndAlertClusterServerInitCallback(uint8_t endpoint); -/** @brief Appliance Events and Alert Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfApplianceEventsAndAlertClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Appliance Events and Alert Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfApplianceEventsAndAlertClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Appliance Events and Alert Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfApplianceEventsAndAlertClusterServerPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Appliance Events and Alert Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfApplianceEventsAndAlertClusterServerTickCallback(uint8_t endpoint); - -/** @} END Appliance Events and Alert Cluster Callbacks */ - -/** @name Appliance Statistics Cluster Callbacks */ -// @{ - -/** @brief Appliance Statistics Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfApplianceStatisticsClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Appliance Statistics Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfApplianceStatisticsClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Appliance Statistics Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfApplianceStatisticsClusterClientInitCallback(uint8_t endpoint); -/** @brief Appliance Statistics Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfApplianceStatisticsClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Appliance Statistics Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfApplianceStatisticsClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Appliance Statistics Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfApplianceStatisticsClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Appliance Statistics Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfApplianceStatisticsClusterClientTickCallback(uint8_t endpoint); -/** @brief Appliance Statistics Cluster Log Notification - * - * - * - * @param timeStamp Ver.: always - * @param logId Ver.: always - * @param logLength Ver.: always - * @param logPayload Ver.: always - */ -bool emberAfApplianceStatisticsClusterLogNotificationCallback(uint32_t timeStamp, uint32_t logId, uint32_t logLength, - uint8_t * logPayload); -/** @brief Appliance Statistics Cluster Log Queue Request - * - * - * - */ -bool emberAfApplianceStatisticsClusterLogQueueRequestCallback(void); -/** @brief Appliance Statistics Cluster Log Queue Response - * - * - * - * @param logQueueSize Ver.: always - * @param logIds Ver.: always - */ -bool emberAfApplianceStatisticsClusterLogQueueResponseCallback(uint8_t logQueueSize, uint8_t * logIds); -/** @brief Appliance Statistics Cluster Log Request - * - * - * - * @param logId Ver.: always - */ -bool emberAfApplianceStatisticsClusterLogRequestCallback(uint32_t logId); -/** @brief Appliance Statistics Cluster Log Response - * - * - * - * @param timeStamp Ver.: always - * @param logId Ver.: always - * @param logLength Ver.: always - * @param logPayload Ver.: always - */ -bool emberAfApplianceStatisticsClusterLogResponseCallback(uint32_t timeStamp, uint32_t logId, uint32_t logLength, - uint8_t * logPayload); -/** @brief Appliance Statistics Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfApplianceStatisticsClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Appliance Statistics Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfApplianceStatisticsClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Appliance Statistics Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfApplianceStatisticsClusterServerInitCallback(uint8_t endpoint); -/** @brief Appliance Statistics Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfApplianceStatisticsClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Appliance Statistics Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfApplianceStatisticsClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Appliance Statistics Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfApplianceStatisticsClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Appliance Statistics Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfApplianceStatisticsClusterServerTickCallback(uint8_t endpoint); -/** @brief Appliance Statistics Cluster Statistics Available - * - * - * - * @param logQueueSize Ver.: always - * @param logIds Ver.: always - */ -bool emberAfApplianceStatisticsClusterStatisticsAvailableCallback(uint8_t logQueueSize, uint8_t * logIds); - -/** @} END Appliance Statistics Cluster Callbacks */ - -/** @name Electrical Measurement Cluster Callbacks */ -// @{ - -/** @brief Electrical Measurement Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfElectricalMeasurementClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Electrical Measurement Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfElectricalMeasurementClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Electrical Measurement Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfElectricalMeasurementClusterClientInitCallback(uint8_t endpoint); -/** @brief Electrical Measurement Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfElectricalMeasurementClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Electrical Measurement Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfElectricalMeasurementClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Electrical Measurement Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfElectricalMeasurementClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Electrical Measurement Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfElectricalMeasurementClusterClientTickCallback(uint8_t endpoint); -/** @brief Electrical Measurement Cluster Get Measurement Profile Command - * - * - * - * @param attributeId Ver.: always - * @param startTime Ver.: always - * @param numberOfIntervals Ver.: always - */ -bool emberAfElectricalMeasurementClusterGetMeasurementProfileCommandCallback(uint16_t attributeId, uint32_t startTime, - uint8_t numberOfIntervals); -/** @brief Electrical Measurement Cluster Get Measurement Profile Response Command - * - * - * - * @param startTime Ver.: always - * @param status Ver.: always - * @param profileIntervalPeriod Ver.: always - * @param numberOfIntervalsDelivered Ver.: always - * @param attributeId Ver.: always - * @param intervals Ver.: always - */ -bool emberAfElectricalMeasurementClusterGetMeasurementProfileResponseCommandCallback(uint32_t startTime, uint8_t status, - uint8_t profileIntervalPeriod, - uint8_t numberOfIntervalsDelivered, - uint16_t attributeId, uint8_t * intervals); -/** @brief Electrical Measurement Cluster Get Profile Info Command - * - * - * - */ -bool emberAfElectricalMeasurementClusterGetProfileInfoCommandCallback(void); -/** @brief Electrical Measurement Cluster Get Profile Info Response Command - * - * - * - * @param profileCount Ver.: always - * @param profileIntervalPeriod Ver.: always - * @param maxNumberOfIntervals Ver.: always - * @param listOfAttributes Ver.: always - */ -bool emberAfElectricalMeasurementClusterGetProfileInfoResponseCommandCallback(uint8_t profileCount, uint8_t profileIntervalPeriod, - uint8_t maxNumberOfIntervals, - uint8_t * listOfAttributes); -/** @brief Electrical Measurement Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfElectricalMeasurementClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Electrical Measurement Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfElectricalMeasurementClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Electrical Measurement Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfElectricalMeasurementClusterServerInitCallback(uint8_t endpoint); -/** @brief Electrical Measurement Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfElectricalMeasurementClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Electrical Measurement Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfElectricalMeasurementClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Electrical Measurement Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfElectricalMeasurementClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Electrical Measurement Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfElectricalMeasurementClusterServerTickCallback(uint8_t endpoint); - -/** @} END Electrical Measurement Cluster Callbacks */ - -/** @name Diagnostics Cluster Callbacks */ -// @{ - -/** @brief Diagnostics Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfDiagnosticsClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Diagnostics Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfDiagnosticsClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Diagnostics Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfDiagnosticsClusterClientInitCallback(uint8_t endpoint); -/** @brief Diagnostics Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfDiagnosticsClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Diagnostics Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfDiagnosticsClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Diagnostics Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfDiagnosticsClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Diagnostics Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfDiagnosticsClusterClientTickCallback(uint8_t endpoint); -/** @brief Diagnostics Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfDiagnosticsClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Diagnostics Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfDiagnosticsClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Diagnostics Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfDiagnosticsClusterServerInitCallback(uint8_t endpoint); -/** @brief Diagnostics Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfDiagnosticsClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Diagnostics Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfDiagnosticsClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Diagnostics Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfDiagnosticsClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Diagnostics Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfDiagnosticsClusterServerTickCallback(uint8_t endpoint); - -/** @} END Diagnostics Cluster Callbacks */ - -/** @name ZLL Commissioning Cluster Callbacks */ -// @{ - -/** @brief ZLL Commissioning Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfZllCommissioningClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief ZLL Commissioning Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfZllCommissioningClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief ZLL Commissioning Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfZllCommissioningClusterClientInitCallback(uint8_t endpoint); -/** @brief ZLL Commissioning Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfZllCommissioningClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief ZLL Commissioning Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfZllCommissioningClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief ZLL Commissioning Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfZllCommissioningClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief ZLL Commissioning Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfZllCommissioningClusterClientTickCallback(uint8_t endpoint); -/** @brief ZLL Commissioning Cluster Device Information Request - * - * - * - * @param transaction Ver.: always - * @param startIndex Ver.: always - */ -bool emberAfZllCommissioningClusterDeviceInformationRequestCallback(uint32_t transaction, uint8_t startIndex); -/** @brief ZLL Commissioning Cluster Device Information Response - * - * - * - * @param transaction Ver.: always - * @param numberOfSubDevices Ver.: always - * @param startIndex Ver.: always - * @param deviceInformationRecordCount Ver.: always - * @param deviceInformationRecordList Ver.: always - */ -bool emberAfZllCommissioningClusterDeviceInformationResponseCallback(uint32_t transaction, uint8_t numberOfSubDevices, - uint8_t startIndex, uint8_t deviceInformationRecordCount, - uint8_t * deviceInformationRecordList); -/** @brief ZLL Commissioning Cluster Endpoint Information - * - * - * - * @param ieeeAddress Ver.: always - * @param networkAddress Ver.: always - * @param endpointId Ver.: always - * @param profileId Ver.: always - * @param deviceId Ver.: always - * @param version Ver.: always - */ -bool emberAfZllCommissioningClusterEndpointInformationCallback(uint8_t * ieeeAddress, uint16_t networkAddress, uint8_t endpointId, - uint16_t profileId, uint16_t deviceId, uint8_t version); -/** @brief ZLL Commissioning Cluster Get Endpoint List Request - * - * - * - * @param startIndex Ver.: always - */ -bool emberAfZllCommissioningClusterGetEndpointListRequestCallback(uint8_t startIndex); -/** @brief ZLL Commissioning Cluster Get Endpoint List Response - * - * - * - * @param total Ver.: always - * @param startIndex Ver.: always - * @param count Ver.: always - * @param endpointInformationRecordList Ver.: always - */ -bool emberAfZllCommissioningClusterGetEndpointListResponseCallback(uint8_t total, uint8_t startIndex, uint8_t count, - uint8_t * endpointInformationRecordList); -/** @brief ZLL Commissioning Cluster Get Group Identifiers Request - * - * - * - * @param startIndex Ver.: always - */ -bool emberAfZllCommissioningClusterGetGroupIdentifiersRequestCallback(uint8_t startIndex); -/** @brief ZLL Commissioning Cluster Get Group Identifiers Response - * - * - * - * @param total Ver.: always - * @param startIndex Ver.: always - * @param count Ver.: always - * @param groupInformationRecordList Ver.: always - */ -bool emberAfZllCommissioningClusterGetGroupIdentifiersResponseCallback(uint8_t total, uint8_t startIndex, uint8_t count, - uint8_t * groupInformationRecordList); -/** @brief ZLL Commissioning Cluster Identify Request - * - * - * - * @param transaction Ver.: always - * @param identifyDuration Ver.: always - */ -bool emberAfZllCommissioningClusterIdentifyRequestCallback(uint32_t transaction, uint16_t identifyDuration); -/** @brief ZLL Commissioning Cluster Network Join End Device Request - * - * - * - * @param transaction Ver.: always - * @param extendedPanId Ver.: always - * @param keyIndex Ver.: always - * @param encryptedNetworkKey Ver.: always - * @param networkUpdateId Ver.: always - * @param logicalChannel Ver.: always - * @param panId Ver.: always - * @param networkAddress Ver.: always - * @param groupIdentifiersBegin Ver.: always - * @param groupIdentifiersEnd Ver.: always - * @param freeNetworkAddressRangeBegin Ver.: always - * @param freeNetworkAddressRangeEnd Ver.: always - * @param freeGroupIdentifierRangeBegin Ver.: always - * @param freeGroupIdentifierRangeEnd Ver.: always - */ -bool emberAfZllCommissioningClusterNetworkJoinEndDeviceRequestCallback( - uint32_t transaction, uint8_t * extendedPanId, uint8_t keyIndex, uint8_t * encryptedNetworkKey, uint8_t networkUpdateId, - uint8_t logicalChannel, uint16_t panId, uint16_t networkAddress, uint16_t groupIdentifiersBegin, uint16_t groupIdentifiersEnd, - uint16_t freeNetworkAddressRangeBegin, uint16_t freeNetworkAddressRangeEnd, uint16_t freeGroupIdentifierRangeBegin, - uint16_t freeGroupIdentifierRangeEnd); -/** @brief ZLL Commissioning Cluster Network Join End Device Response - * - * - * - * @param transaction Ver.: always - * @param status Ver.: always - */ -bool emberAfZllCommissioningClusterNetworkJoinEndDeviceResponseCallback(uint32_t transaction, uint8_t status); -/** @brief ZLL Commissioning Cluster Network Join Router Request - * - * - * - * @param transaction Ver.: always - * @param extendedPanId Ver.: always - * @param keyIndex Ver.: always - * @param encryptedNetworkKey Ver.: always - * @param networkUpdateId Ver.: always - * @param logicalChannel Ver.: always - * @param panId Ver.: always - * @param networkAddress Ver.: always - * @param groupIdentifiersBegin Ver.: always - * @param groupIdentifiersEnd Ver.: always - * @param freeNetworkAddressRangeBegin Ver.: always - * @param freeNetworkAddressRangeEnd Ver.: always - * @param freeGroupIdentifierRangeBegin Ver.: always - * @param freeGroupIdentifierRangeEnd Ver.: always - */ -bool emberAfZllCommissioningClusterNetworkJoinRouterRequestCallback( - uint32_t transaction, uint8_t * extendedPanId, uint8_t keyIndex, uint8_t * encryptedNetworkKey, uint8_t networkUpdateId, - uint8_t logicalChannel, uint16_t panId, uint16_t networkAddress, uint16_t groupIdentifiersBegin, uint16_t groupIdentifiersEnd, - uint16_t freeNetworkAddressRangeBegin, uint16_t freeNetworkAddressRangeEnd, uint16_t freeGroupIdentifierRangeBegin, - uint16_t freeGroupIdentifierRangeEnd); -/** @brief ZLL Commissioning Cluster Network Join Router Response - * - * - * - * @param transaction Ver.: always - * @param status Ver.: always - */ -bool emberAfZllCommissioningClusterNetworkJoinRouterResponseCallback(uint32_t transaction, uint8_t status); -/** @brief ZLL Commissioning Cluster Network Start Request - * - * - * - * @param transaction Ver.: always - * @param extendedPanId Ver.: always - * @param keyIndex Ver.: always - * @param encryptedNetworkKey Ver.: always - * @param logicalChannel Ver.: always - * @param panId Ver.: always - * @param networkAddress Ver.: always - * @param groupIdentifiersBegin Ver.: always - * @param groupIdentifiersEnd Ver.: always - * @param freeNetworkAddressRangeBegin Ver.: always - * @param freeNetworkAddressRangeEnd Ver.: always - * @param freeGroupIdentifierRangeBegin Ver.: always - * @param freeGroupIdentifierRangeEnd Ver.: always - * @param initiatorIeeeAddress Ver.: always - * @param initiatorNetworkAddress Ver.: always - */ -bool emberAfZllCommissioningClusterNetworkStartRequestCallback( - uint32_t transaction, uint8_t * extendedPanId, uint8_t keyIndex, uint8_t * encryptedNetworkKey, uint8_t logicalChannel, - uint16_t panId, uint16_t networkAddress, uint16_t groupIdentifiersBegin, uint16_t groupIdentifiersEnd, - uint16_t freeNetworkAddressRangeBegin, uint16_t freeNetworkAddressRangeEnd, uint16_t freeGroupIdentifierRangeBegin, - uint16_t freeGroupIdentifierRangeEnd, uint8_t * initiatorIeeeAddress, uint16_t initiatorNetworkAddress); -/** @brief ZLL Commissioning Cluster Network Start Response - * - * - * - * @param transaction Ver.: always - * @param status Ver.: always - * @param extendedPanId Ver.: always - * @param networkUpdateId Ver.: always - * @param logicalChannel Ver.: always - * @param panId Ver.: always - */ -bool emberAfZllCommissioningClusterNetworkStartResponseCallback(uint32_t transaction, uint8_t status, uint8_t * extendedPanId, - uint8_t networkUpdateId, uint8_t logicalChannel, uint16_t panId); -/** @brief ZLL Commissioning Cluster Network Update Request - * - * - * - * @param transaction Ver.: always - * @param extendedPanId Ver.: always - * @param networkUpdateId Ver.: always - * @param logicalChannel Ver.: always - * @param panId Ver.: always - * @param networkAddress Ver.: always - */ -bool emberAfZllCommissioningClusterNetworkUpdateRequestCallback(uint32_t transaction, uint8_t * extendedPanId, - uint8_t networkUpdateId, uint8_t logicalChannel, uint16_t panId, - uint16_t networkAddress); -/** @brief ZLL Commissioning Cluster Reset To Factory New Request - * - * - * - * @param transaction Ver.: always - */ -bool emberAfZllCommissioningClusterResetToFactoryNewRequestCallback(uint32_t transaction); -/** @brief ZLL Commissioning Cluster Scan Request - * - * - * - * @param transaction Ver.: always - * @param zigbeeInformation Ver.: always - * @param zllInformation Ver.: always - */ -bool emberAfZllCommissioningClusterScanRequestCallback(uint32_t transaction, uint8_t zigbeeInformation, uint8_t zllInformation); -/** @brief ZLL Commissioning Cluster Scan Response - * - * - * - * @param transaction Ver.: always - * @param rssiCorrection Ver.: always - * @param zigbeeInformation Ver.: always - * @param zllInformation Ver.: always - * @param keyBitmask Ver.: always - * @param responseId Ver.: always - * @param extendedPanId Ver.: always - * @param networkUpdateId Ver.: always - * @param logicalChannel Ver.: always - * @param panId Ver.: always - * @param networkAddress Ver.: always - * @param numberOfSubDevices Ver.: always - * @param totalGroupIds Ver.: always - * @param endpointId Ver.: always - * @param profileId Ver.: always - * @param deviceId Ver.: always - * @param version Ver.: always - * @param groupIdCount Ver.: always - */ -bool emberAfZllCommissioningClusterScanResponseCallback(uint32_t transaction, uint8_t rssiCorrection, uint8_t zigbeeInformation, - uint8_t zllInformation, uint16_t keyBitmask, uint32_t responseId, - uint8_t * extendedPanId, uint8_t networkUpdateId, uint8_t logicalChannel, - uint16_t panId, uint16_t networkAddress, uint8_t numberOfSubDevices, - uint8_t totalGroupIds, uint8_t endpointId, uint16_t profileId, - uint16_t deviceId, uint8_t version, uint8_t groupIdCount); -/** @brief ZLL Commissioning Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfZllCommissioningClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief ZLL Commissioning Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfZllCommissioningClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief ZLL Commissioning Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfZllCommissioningClusterServerInitCallback(uint8_t endpoint); -/** @brief ZLL Commissioning Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfZllCommissioningClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief ZLL Commissioning Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfZllCommissioningClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief ZLL Commissioning Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfZllCommissioningClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief ZLL Commissioning Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfZllCommissioningClusterServerTickCallback(uint8_t endpoint); - -/** @} END ZLL Commissioning Cluster Callbacks */ - -/** @name Sample Mfg Specific Cluster Cluster Callbacks */ -// @{ - -/** @brief Sample Mfg Specific Cluster Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfSampleMfgSpecificClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Sample Mfg Specific Cluster Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfSampleMfgSpecificClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Sample Mfg Specific Cluster Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfSampleMfgSpecificClusterClientInitCallback(uint8_t endpoint); -/** @brief Sample Mfg Specific Cluster Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfSampleMfgSpecificClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Sample Mfg Specific Cluster Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfSampleMfgSpecificClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Sample Mfg Specific Cluster Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfSampleMfgSpecificClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Sample Mfg Specific Cluster Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfSampleMfgSpecificClusterClientTickCallback(uint8_t endpoint); -/** @brief Sample Mfg Specific Cluster Cluster Command One - * - * - * - * @param argOne Ver.: always - */ -bool emberAfSampleMfgSpecificClusterCommandOneCallback(uint8_t argOne); -/** @brief Sample Mfg Specific Cluster Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfSampleMfgSpecificClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Sample Mfg Specific Cluster Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfSampleMfgSpecificClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Sample Mfg Specific Cluster Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfSampleMfgSpecificClusterServerInitCallback(uint8_t endpoint); -/** @brief Sample Mfg Specific Cluster Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfSampleMfgSpecificClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Sample Mfg Specific Cluster Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfSampleMfgSpecificClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Sample Mfg Specific Cluster Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfSampleMfgSpecificClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Sample Mfg Specific Cluster Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfSampleMfgSpecificClusterServerTickCallback(uint8_t endpoint); - -/** @} END Sample Mfg Specific Cluster Cluster Callbacks */ - -/** @name Sample Mfg Specific Cluster 2 Cluster Callbacks */ -// @{ - -/** @brief Sample Mfg Specific Cluster 2 Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfSampleMfgSpecificCluster2ClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Sample Mfg Specific Cluster 2 Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfSampleMfgSpecificCluster2ClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Sample Mfg Specific Cluster 2 Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfSampleMfgSpecificCluster2ClientInitCallback(uint8_t endpoint); -/** @brief Sample Mfg Specific Cluster 2 Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfSampleMfgSpecificCluster2ClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Sample Mfg Specific Cluster 2 Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfSampleMfgSpecificCluster2ClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Sample Mfg Specific Cluster 2 Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfSampleMfgSpecificCluster2ClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Sample Mfg Specific Cluster 2 Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfSampleMfgSpecificCluster2ClientTickCallback(uint8_t endpoint); -/** @brief Sample Mfg Specific Cluster 2 Cluster Command Two - * - * - * - * @param argOne Ver.: always - */ -bool emberAfSampleMfgSpecificCluster2CommandTwoCallback(uint8_t argOne); -/** @brief Sample Mfg Specific Cluster 2 Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfSampleMfgSpecificCluster2ServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Sample Mfg Specific Cluster 2 Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfSampleMfgSpecificCluster2ServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Sample Mfg Specific Cluster 2 Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfSampleMfgSpecificCluster2ServerInitCallback(uint8_t endpoint); -/** @brief Sample Mfg Specific Cluster 2 Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfSampleMfgSpecificCluster2ServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Sample Mfg Specific Cluster 2 Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfSampleMfgSpecificCluster2ServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Sample Mfg Specific Cluster 2 Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfSampleMfgSpecificCluster2ServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Sample Mfg Specific Cluster 2 Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfSampleMfgSpecificCluster2ServerTickCallback(uint8_t endpoint); - -/** @} END Sample Mfg Specific Cluster 2 Cluster Callbacks */ - -/** @name Configuration Cluster Cluster Callbacks */ -// @{ - -/** @brief Configuration Cluster Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfOtaConfigurationClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Configuration Cluster Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfOtaConfigurationClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Configuration Cluster Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfOtaConfigurationClusterClientInitCallback(uint8_t endpoint); -/** @brief Configuration Cluster Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfOtaConfigurationClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Configuration Cluster Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfOtaConfigurationClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Configuration Cluster Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfOtaConfigurationClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Configuration Cluster Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfOtaConfigurationClusterClientTickCallback(uint8_t endpoint); -/** @brief Configuration Cluster Cluster Lock Tokens - * - * - * - */ -bool emberAfOtaConfigurationClusterLockTokensCallback(void); -/** @brief Configuration Cluster Cluster Read Tokens - * - * - * - * @param token Ver.: always - */ -bool emberAfOtaConfigurationClusterReadTokensCallback(uint16_t token); -/** @brief Configuration Cluster Cluster Return Token - * - * - * - * @param token Ver.: always - * @param data Ver.: always - */ -bool emberAfOtaConfigurationClusterReturnTokenCallback(uint16_t token, uint8_t * data); -/** @brief Configuration Cluster Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfOtaConfigurationClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Configuration Cluster Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfOtaConfigurationClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Configuration Cluster Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfOtaConfigurationClusterServerInitCallback(uint8_t endpoint); -/** @brief Configuration Cluster Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfOtaConfigurationClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Configuration Cluster Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfOtaConfigurationClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Configuration Cluster Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfOtaConfigurationClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Configuration Cluster Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfOtaConfigurationClusterServerTickCallback(uint8_t endpoint); -/** @brief Configuration Cluster Cluster Set Token - * - * - * - * @param token Ver.: always - * @param data Ver.: always - */ -bool emberAfOtaConfigurationClusterSetTokenCallback(uint16_t token, uint8_t * data); -/** @brief Configuration Cluster Cluster Unlock Tokens - * - * - * - * @param data Ver.: always - */ -bool emberAfOtaConfigurationClusterUnlockTokensCallback(uint8_t * data); - -/** @} END Configuration Cluster Cluster Callbacks */ - -/** @name MFGLIB Cluster Cluster Callbacks */ -// @{ - -/** @brief MFGLIB Cluster Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfMfglibClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief MFGLIB Cluster Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfMfglibClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief MFGLIB Cluster Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfMfglibClusterClientInitCallback(uint8_t endpoint); -/** @brief MFGLIB Cluster Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfMfglibClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief MFGLIB Cluster Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfMfglibClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief MFGLIB Cluster Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfMfglibClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief MFGLIB Cluster Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfMfglibClusterClientTickCallback(uint8_t endpoint); -/** @brief MFGLIB Cluster Cluster Rx Mode - * - * - * - * @param channel Ver.: always - * @param power Ver.: always - * @param time Ver.: always - */ -bool emberAfMfglibClusterRxModeCallback(uint8_t channel, int8_t power, uint16_t time); -/** @brief MFGLIB Cluster Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfMfglibClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief MFGLIB Cluster Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfMfglibClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief MFGLIB Cluster Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfMfglibClusterServerInitCallback(uint8_t endpoint); -/** @brief MFGLIB Cluster Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfMfglibClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief MFGLIB Cluster Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfMfglibClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief MFGLIB Cluster Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfMfglibClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief MFGLIB Cluster Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfMfglibClusterServerTickCallback(uint8_t endpoint); -/** @brief MFGLIB Cluster Cluster Stream - * - * - * - * @param channel Ver.: always - * @param power Ver.: always - * @param time Ver.: always - */ -bool emberAfMfglibClusterStreamCallback(uint8_t channel, int8_t power, uint16_t time); -/** @brief MFGLIB Cluster Cluster Tone - * - * - * - * @param channel Ver.: always - * @param power Ver.: always - * @param time Ver.: always - */ -bool emberAfMfglibClusterToneCallback(uint8_t channel, int8_t power, uint16_t time); - -/** @} END MFGLIB Cluster Cluster Callbacks */ - -/** @name SL Works With All Hubs Cluster Callbacks */ -// @{ - -/** @brief SL Works With All Hubs Cluster Aps Ack Enablement Query Response - * - * - * - * @param numberExemptClusters Ver.: always - * @param clusterId Ver.: always - */ -bool emberAfSlWwahClusterApsAckEnablementQueryResponseCallback(uint8_t numberExemptClusters, uint8_t * clusterId); -/** @brief SL Works With All Hubs Cluster Aps Ack Requirement Query - * - * - * - */ -bool emberAfSlWwahClusterApsAckRequirementQueryCallback(void); -/** @brief SL Works With All Hubs Cluster Aps Link Key Authorization Query - * - * - * - * @param clusterId Ver.: always - */ -bool emberAfSlWwahClusterApsLinkKeyAuthorizationQueryCallback(uint16_t clusterId); -/** @brief SL Works With All Hubs Cluster Aps Link Key Authorization Query Response - * - * - * - * @param clusterId Ver.: always - * @param apsLinkKeyAuthStatus Ver.: always - */ -bool emberAfSlWwahClusterApsLinkKeyAuthorizationQueryResponseCallback(uint16_t clusterId, uint8_t apsLinkKeyAuthStatus); -/** @brief SL Works With All Hubs Cluster Clear Binding Table - * - * - * - */ -bool emberAfSlWwahClusterClearBindingTableCallback(void); -/** @brief SL Works With All Hubs Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfSlWwahClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief SL Works With All Hubs Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfSlWwahClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief SL Works With All Hubs Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfSlWwahClusterClientInitCallback(uint8_t endpoint); -/** @brief SL Works With All Hubs Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfSlWwahClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief SL Works With All Hubs Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfSlWwahClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief SL Works With All Hubs Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfSlWwahClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief SL Works With All Hubs Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfSlWwahClusterClientTickCallback(uint8_t endpoint); -/** @brief SL Works With All Hubs Cluster Debug Report Query - * - * - * - * @param debugReportId Ver.: always - */ -bool emberAfSlWwahClusterDebugReportQueryCallback(uint8_t debugReportId); -/** @brief SL Works With All Hubs Cluster Debug Report Query Response - * - * - * - * @param debugReportId Ver.: always - * @param debugReportData Ver.: always - */ -bool emberAfSlWwahClusterDebugReportQueryResponseCallback(uint8_t debugReportId, uint8_t * debugReportData); -/** @brief SL Works With All Hubs Cluster Disable Aps Link Key Authorization - * - * - * - * @param numberExemptClusters Ver.: always - * @param clusterId Ver.: always - */ -bool emberAfSlWwahClusterDisableApsLinkKeyAuthorizationCallback(uint8_t numberExemptClusters, uint8_t * clusterId); -/** @brief SL Works With All Hubs Cluster Disable Configuration Mode - * - * - * - */ -bool emberAfSlWwahClusterDisableConfigurationModeCallback(void); -/** @brief SL Works With All Hubs Cluster Disable Mgmt Leave Without Rejoin - * - * - * - */ -bool emberAfSlWwahClusterDisableMgmtLeaveWithoutRejoinCallback(void); -/** @brief SL Works With All Hubs Cluster Disable Ota Downgrades - * - * - * - */ -bool emberAfSlWwahClusterDisableOtaDowngradesCallback(void); -/** @brief SL Works With All Hubs Cluster Disable Periodic Router Check Ins - * - * - * - */ -bool emberAfSlWwahClusterDisablePeriodicRouterCheckInsCallback(void); -/** @brief SL Works With All Hubs Cluster Disable Touchlink Interpan Message Support - * - * - * - */ -bool emberAfSlWwahClusterDisableTouchlinkInterpanMessageSupportCallback(void); -/** @brief SL Works With All Hubs Cluster Disable Wwah App Event Retry Algorithm - * - * - * - */ -bool emberAfSlWwahClusterDisableWwahAppEventRetryAlgorithmCallback(void); -/** @brief SL Works With All Hubs Cluster Disable Wwah Bad Parent Recovery - * - * - * - */ -bool emberAfSlWwahClusterDisableWwahBadParentRecoveryCallback(void); -/** @brief SL Works With All Hubs Cluster Disable Wwah Parent Classification - * - * - * - */ -bool emberAfSlWwahClusterDisableWwahParentClassificationCallback(void); -/** @brief SL Works With All Hubs Cluster Disable Wwah Rejoin Algorithm - * - * - * - */ -bool emberAfSlWwahClusterDisableWwahRejoinAlgorithmCallback(void); -/** @brief SL Works With All Hubs Cluster Enable Aps Link Key Authorization - * - * - * - * @param numberExemptClusters Ver.: always - * @param clusterId Ver.: always - */ -bool emberAfSlWwahClusterEnableApsLinkKeyAuthorizationCallback(uint8_t numberExemptClusters, uint8_t * clusterId); -/** @brief SL Works With All Hubs Cluster Enable Configuration Mode - * - * - * - */ -bool emberAfSlWwahClusterEnableConfigurationModeCallback(void); -/** @brief SL Works With All Hubs Cluster Enable Periodic Router Check Ins - * - * - * - * @param checkInInterval Ver.: always - */ -bool emberAfSlWwahClusterEnablePeriodicRouterCheckInsCallback(uint16_t checkInInterval); -/** @brief SL Works With All Hubs Cluster Enable Tc Security On Ntwk Key Rotation - * - * - * - */ -bool emberAfSlWwahClusterEnableTcSecurityOnNtwkKeyRotationCallback(void); -/** @brief SL Works With All Hubs Cluster Enable Wwah App Event Retry Algorithm - * - * - * - * @param firstBackoffTimeSeconds Ver.: always - * @param backoffSeqCommonRatio Ver.: always - * @param maxBackoffTimeSeconds Ver.: always - * @param maxRedeliveryAttempts Ver.: always - */ -bool emberAfSlWwahClusterEnableWwahAppEventRetryAlgorithmCallback(uint8_t firstBackoffTimeSeconds, uint8_t backoffSeqCommonRatio, - uint32_t maxBackoffTimeSeconds, uint8_t maxRedeliveryAttempts); -/** @brief SL Works With All Hubs Cluster Enable Wwah Bad Parent Recovery - * - * - * - */ -bool emberAfSlWwahClusterEnableWwahBadParentRecoveryCallback(void); -/** @brief SL Works With All Hubs Cluster Enable Wwah Parent Classification - * - * - * - */ -bool emberAfSlWwahClusterEnableWwahParentClassificationCallback(void); -/** @brief SL Works With All Hubs Cluster Enable Wwah Rejoin Algorithm - * - * - * - * @param fastRejoinTimeoutSeconds Ver.: always - * @param durationBetweenRejoinsSeconds Ver.: always - * @param fastRejoinFirstBackoffSeconds Ver.: always - * @param maxBackoffTimeSeconds Ver.: always - * @param maxBackoffIterations Ver.: always - */ -bool emberAfSlWwahClusterEnableWwahRejoinAlgorithmCallback(uint16_t fastRejoinTimeoutSeconds, - uint16_t durationBetweenRejoinsSeconds, - uint16_t fastRejoinFirstBackoffSeconds, uint16_t maxBackoffTimeSeconds, - uint16_t maxBackoffIterations); -/** @brief SL Works With All Hubs Cluster New Debug Report Notification - * - * - * - * @param debugReportId Ver.: always - * @param debugReportSize Ver.: always - */ -bool emberAfSlWwahClusterNewDebugReportNotificationCallback(uint8_t debugReportId, uint32_t debugReportSize); -/** @brief SL Works With All Hubs Cluster Power Descriptor Change - * - * - * - * @param currentPowerMode Ver.: always - * @param availablePowerSources Ver.: always - * @param currentPowerSource Ver.: always - * @param currentPowerSourceLevel Ver.: always - */ -bool emberAfSlWwahClusterPowerDescriptorChangeCallback(uint32_t currentPowerMode, uint32_t availablePowerSources, - uint32_t currentPowerSource, uint32_t currentPowerSourceLevel); -/** @brief SL Works With All Hubs Cluster Powering Off Notification - * - * - * - * @param powerNotificationReason Ver.: always - * @param manufacturerId Ver.: always - * @param manufacturerReasonLength Ver.: always - * @param manufacturerReason Ver.: always - */ -bool emberAfSlWwahClusterPoweringOffNotificationCallback(uint8_t powerNotificationReason, uint16_t manufacturerId, - uint8_t manufacturerReasonLength, uint8_t * manufacturerReason); -/** @brief SL Works With All Hubs Cluster Powering On Notification - * - * - * - * @param powerNotificationReason Ver.: always - * @param manufacturerId Ver.: always - * @param manufacturerReasonLength Ver.: always - * @param manufacturerReason Ver.: always - */ -bool emberAfSlWwahClusterPoweringOnNotificationCallback(uint8_t powerNotificationReason, uint16_t manufacturerId, - uint8_t manufacturerReasonLength, uint8_t * manufacturerReason); -/** @brief SL Works With All Hubs Cluster Remove Aps Acks On Unicasts Requirement - * - * - * - */ -bool emberAfSlWwahClusterRemoveApsAcksOnUnicastsRequirementCallback(void); -/** @brief SL Works With All Hubs Cluster Request New Aps Link Key - * - * - * - */ -bool emberAfSlWwahClusterRequestNewApsLinkKeyCallback(void); -/** @brief SL Works With All Hubs Cluster Request Time - * - * - * - */ -bool emberAfSlWwahClusterRequestTimeCallback(void); -/** @brief SL Works With All Hubs Cluster Require Aps Acks On Unicasts - * - * - * - * @param numberExemptClusters Ver.: always - * @param clusterId Ver.: always - */ -bool emberAfSlWwahClusterRequireApsAcksOnUnicastsCallback(uint8_t numberExemptClusters, uint8_t * clusterId); -/** @brief SL Works With All Hubs Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfSlWwahClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief SL Works With All Hubs Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfSlWwahClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief SL Works With All Hubs Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfSlWwahClusterServerInitCallback(uint8_t endpoint); -/** @brief SL Works With All Hubs Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfSlWwahClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief SL Works With All Hubs Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfSlWwahClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief SL Works With All Hubs Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfSlWwahClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief SL Works With All Hubs Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfSlWwahClusterServerTickCallback(uint8_t endpoint); -/** @brief SL Works With All Hubs Cluster Set Ias Zone Enrollment Method - * - * - * - * @param enrollmentMode Ver.: always - */ -bool emberAfSlWwahClusterSetIasZoneEnrollmentMethodCallback(uint8_t enrollmentMode); -/** @brief SL Works With All Hubs Cluster Set Mac Poll Failure Wait Time - * - * - * - * @param waitTime Ver.: always - */ -bool emberAfSlWwahClusterSetMacPollFailureWaitTimeCallback(uint8_t waitTime); -/** @brief SL Works With All Hubs Cluster Set Pending Network Update - * - * - * - * @param channel Ver.: always - * @param panId Ver.: always - */ -bool emberAfSlWwahClusterSetPendingNetworkUpdateCallback(uint8_t channel, uint16_t panId); -/** @brief SL Works With All Hubs Cluster Short Address Change - * - * - * - * @param deviceEui64 Ver.: always - * @param deviceShort Ver.: always - */ -bool emberAfSlWwahClusterShortAddressChangeCallback(uint8_t * deviceEui64, uint16_t deviceShort); -/** @brief SL Works With All Hubs Cluster Survey Beacons - * - * - * - * @param standardBeacons Ver.: always - */ -bool emberAfSlWwahClusterSurveyBeaconsCallback(uint8_t standardBeacons); -/** @brief SL Works With All Hubs Cluster Survey Beacons Response - * - * - * - * @param numberOfBeacons Ver.: always - * @param beacon Ver.: always - */ -bool emberAfSlWwahClusterSurveyBeaconsResponseCallback(uint8_t numberOfBeacons, uint8_t * beacon); -/** @brief SL Works With All Hubs Cluster Trust Center For Cluster Server Query - * - * - * - */ -bool emberAfSlWwahClusterTrustCenterForClusterServerQueryCallback(void); -/** @brief SL Works With All Hubs Cluster Trust Center For Cluster Server Query Response - * - * - * - * @param numberOfClusters Ver.: always - * @param clusterId Ver.: always - */ -bool emberAfSlWwahClusterTrustCenterForClusterServerQueryResponseCallback(uint8_t numberOfClusters, uint8_t * clusterId); -/** @brief SL Works With All Hubs Cluster Use Trust Center For Cluster Server - * - * - * - * @param numberOfClusters Ver.: always - * @param clusterId Ver.: always - */ -bool emberAfSlWwahClusterUseTrustCenterForClusterServerCallback(uint8_t numberOfClusters, uint8_t * clusterId); -/** @brief SL Works With All Hubs Cluster Use Trust Center For Cluster Server Response - * - * - * - * @param status Ver.: always - * @param clusterStatusLength Ver.: always - * @param clusterStatus Ver.: always - */ -bool emberAfSlWwahClusterUseTrustCenterForClusterServerResponseCallback(uint8_t status, uint8_t clusterStatusLength, - uint8_t * clusterStatus); - -/** @} END SL Works With All Hubs Cluster Callbacks */ - -/** @name Update TC Link Key Plugin Callbacks */ -// @{ - -/** @brief Status - * - * This callback is fired when the Update Link Key exchange process is updated - * with a status from the stack. Implementations will know that the Update TC - * Link Key plugin has completed its link key request when the keyStatus - * parameter is EMBER_VERIFY_LINK_KEY_SUCCESS. - * - * @param keyStatus An ::EmberKeyStatus value describing the success or failure - * of the key exchange process. Ver.: always - */ -void emberAfPluginUpdateTcLinkKeyStatusCallback(EmberKeyStatus keyStatus); -/** @} END Update TC Link Key Plugin Callbacks */ - -/** @name Network Steering Plugin Callbacks */ -// @{ - -/** @brief Complete - * - * This callback is fired when the Network Steering plugin is complete. - * - * @param status On success this will be set to EMBER_SUCCESS to indicate a - * network was joined successfully. On failure this will be the status code of - * the last join or scan attempt. Ver.: always - * @param totalBeacons The total number of 802.15.4 beacons that were heard, - * including beacons from different devices with the same PAN ID. Ver.: always - * @param joinAttempts The number of join attempts that were made to get onto - * an open Zigbee network. Ver.: always - * @param finalState The finishing state of the network steering process. From - * this, one is able to tell on which channel mask and with which key the - * process was complete. Ver.: always - */ -void emberAfPluginNetworkSteeringCompleteCallback(EmberStatus status, uint8_t totalBeacons, uint8_t joinAttempts, - uint8_t finalState); -/** @brief Get Power For Radio Channel - * - * This callback is fired when the Network Steering plugin needs to set the - * power level. The application has the ability to change the max power level - * used for this particular channel. - * - * @param channel The channel that the plugin is inquiring about the power - * level. Ver.: always - */ -int8_t emberAfPluginNetworkSteeringGetPowerForRadioChannelCallback(uint8_t channel); -/** @brief Get Distributed Key - * - * This callback is fired when the Network Steering plugin needs to set the distributed - * key. The application set the distributed key from Zigbee Alliance thru this callback - * or the network steering will use the default test key. - * - * @param pointer to the distributed key struct - * @return true if the key is loaded successfully, otherwise false. - * level. Ver.: always - */ -bool emberAfPluginNetworkSteeringGetDistributedKeyCallback(EmberKeyData * key); -/** @brief Get Node Type - * - * This callback allows the application to set the node type that the network - * steering process will use in joining a network. - * - * @param state The current ::EmberAfPluginNetworkSteeringJoiningState. - * - * @return An ::EmberNodeType value that the network steering process will - * try to join a network as. - */ -EmberNodeType emberAfPluginNetworkSteeringGetNodeTypeCallback(EmberAfPluginNetworkSteeringJoiningState state); -/** @} END Network Steering Plugin Callbacks */ - -/** @name HAL Library Plugin Callbacks */ -// @{ - -/** - * @brief Called whenever the radio is powered on. - */ -void halRadioPowerUpHandler(void); -/** - * @brief Called whenever the radio is powered off. - */ -void halRadioPowerDownHandler(void); -/** - * @brief Called whenever the microcontroller enters/exits a idle/sleep mode - * - * @param enter True if entering idle/sleep, False if exiting - * @param sleepMode Idle/sleep mode - */ -void halSleepCallback(bool enter, SleepModes sleepMode); -/** @} END HAL Library Plugin Callbacks */ - -/** @} END addtogroup */ -#endif // SILABS_EMBER_AF_CALLBACK_PROTOTYPES diff --git a/examples/lock-app/efr32/src/gen/cluster-id.h b/examples/lock-app/efr32/src/gen/cluster-id.h deleted file mode 100644 index 7462d4e9cf279b..00000000000000 --- a/examples/lock-app/efr32/src/gen/cluster-id.h +++ /dev/null @@ -1,174 +0,0 @@ -/** - * - * 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 SILABS_EMBER_AF_CLUSTER_ID -#define SILABS_EMBER_AF_CLUSTER_ID - -// Cluster domain specification levels: -// * General: zcl-7.0-07-5123-07 -// * Lighting & Occupancy: l&o-1.0-15-0014-04 -// * HA: ha-1.2.1-05-3520-30 -// * Closures: zcl-6.0-15-02018-001 -// * HVAC: zcl-6.0-15-02018-001 -// * Lighting: zcl6-errata-14-0129-15 -// * Measurement & Sensing: zcl-6.0-15-02018-001 -// * Security & Safety: zcl-6.0-15-02018-001 -// * Home Automation: UNKNOWN -// * CBA: cba-1.0-05-3516-12 -// * SE: se-1.2b-15-0131-02 -// * ZLL: zll-1.0-11-0037-10 -// * Telecom Applications: ta-1.0-07-5307-07 -// * Protocol Interfaces: ta-1.0-07-5307-07 -// * Telecommunication: ta-1.0-07-5307-07 -// * Financial: ta-1.0-07-5307-07 -// * Ember: UNKNOWN -// * HC: hc-1.0-07-5360-15 -// * GP: gp-1.0a-09-5499-26 -// * LO: UNKNOWN -// * Works With All Hubs: UNKNOWN -// * WWAH: UNKNOWN -#define ZCL_BASIC_CLUSTER_ID 0x0000 -#define ZCL_POWER_CONFIG_CLUSTER_ID 0x0001 -#define ZCL_DEVICE_TEMP_CLUSTER_ID 0x0002 -#define ZCL_IDENTIFY_CLUSTER_ID 0x0003 -#define ZCL_GROUPS_CLUSTER_ID 0x0004 -#define ZCL_SCENES_CLUSTER_ID 0x0005 -#define ZCL_ON_OFF_CLUSTER_ID 0x0006 -#define ZCL_ON_OFF_SWITCH_CONFIG_CLUSTER_ID 0x0007 -#define ZCL_LEVEL_CONTROL_CLUSTER_ID 0x0008 -#define ZCL_ALARM_CLUSTER_ID 0x0009 -#define ZCL_TIME_CLUSTER_ID 0x000A -#define ZCL_RSSI_LOCATION_CLUSTER_ID 0x000B -#define ZCL_BINARY_INPUT_BASIC_CLUSTER_ID 0x000F -#define ZCL_COMMISSIONING_CLUSTER_ID 0x0015 -#define ZCL_PARTITION_CLUSTER_ID 0x0016 -#define ZCL_OTA_BOOTLOAD_CLUSTER_ID 0x0019 -#define ZCL_POWER_PROFILE_CLUSTER_ID 0x001A -#define ZCL_APPLIANCE_CONTROL_CLUSTER_ID 0x001B -#define ZCL_POLL_CONTROL_CLUSTER_ID 0x0020 -#define ZCL_GREEN_POWER_CLUSTER_ID 0x0021 -#define ZCL_KEEPALIVE_CLUSTER_ID 0x0025 -#define ZCL_SHADE_CONFIG_CLUSTER_ID 0x0100 -#define ZCL_DOOR_LOCK_CLUSTER_ID 0x0101 -#define ZCL_WINDOW_COVERING_CLUSTER_ID 0x0102 -#define ZCL_BARRIER_CONTROL_CLUSTER_ID 0x0103 -#define ZCL_PUMP_CONFIG_CONTROL_CLUSTER_ID 0x0200 -#define ZCL_THERMOSTAT_CLUSTER_ID 0x0201 -#define ZCL_FAN_CONTROL_CLUSTER_ID 0x0202 -#define ZCL_DEHUMID_CONTROL_CLUSTER_ID 0x0203 -#define ZCL_THERMOSTAT_UI_CONFIG_CLUSTER_ID 0x0204 -#define ZCL_COLOR_CONTROL_CLUSTER_ID 0x0300 -#define ZCL_BALLAST_CONFIGURATION_CLUSTER_ID 0x0301 -#define ZCL_ILLUM_MEASUREMENT_CLUSTER_ID 0x0400 -#define ZCL_ILLUM_LEVEL_SENSING_CLUSTER_ID 0x0401 -#define ZCL_TEMP_MEASUREMENT_CLUSTER_ID 0x0402 -#define ZCL_PRESSURE_MEASUREMENT_CLUSTER_ID 0x0403 -#define ZCL_FLOW_MEASUREMENT_CLUSTER_ID 0x0404 -#define ZCL_RELATIVE_HUMIDITY_MEASUREMENT_CLUSTER_ID 0x0405 -#define ZCL_OCCUPANCY_SENSING_CLUSTER_ID 0x0406 -#define ZCL_CARBON_MONOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_ID 0x040C -#define ZCL_CARBON_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_ID 0x040D -#define ZCL_ETHYLENE_CONCENTRATION_MEASUREMENT_CLUSTER_ID 0x040E -#define ZCL_ETHYLENE_OXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_ID 0x040F -#define ZCL_HYDROGEN_CONCENTRATION_MEASUREMENT_CLUSTER_ID 0x0410 -#define ZCL_HYDROGEN_SULPHIDE_CONCENTRATION_MEASUREMENT_CLUSTER_ID 0x0411 -#define ZCL_NITRIC_OXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_ID 0x0412 -#define ZCL_NITROGEN_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_ID 0x0413 -#define ZCL_OXYGEN_CONCENTRATION_MEASUREMENT_CLUSTER_ID 0x0414 -#define ZCL_OZONE_CONCENTRATION_MEASUREMENT_CLUSTER_ID 0x0415 -#define ZCL_SULFUR_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_ID 0x0416 -#define ZCL_DISSOLVED_OXYGEN_CONCENTRATION_MEASUREMENT_CLUSTER_ID 0x0417 -#define ZCL_BROMATE_CONCENTRATION_MEASUREMENT_CLUSTER_ID 0x0418 -#define ZCL_CHLORAMINES_CONCENTRATION_MEASUREMENT_CLUSTER_ID 0x0419 -#define ZCL_CHLORINE_CONCENTRATION_MEASUREMENT_CLUSTER_ID 0x041A -#define ZCL_FECAL_COLIFORM_AND_E_COLI_CONCENTRATION_MEASUREMENT_CLUSTER_ID 0x041B -#define ZCL_FLUORIDE_CONCENTRATION_MEASUREMENT_CLUSTER_ID 0x041C -#define ZCL_HALOACETIC_ACIDS_CONCENTRATION_MEASUREMENT_CLUSTER_ID 0x041D -#define ZCL_TOTAL_TRIHALOMETHANES_CONCENTRATION_MEASUREMENT_CLUSTER_ID 0x041E -#define ZCL_TOTAL_COLIFORM_BACTERIA_CONCENTRATION_MEASUREMENT_CLUSTER_ID 0x041F -#define ZCL_TURBIDITY_CONCENTRATION_MEASUREMENT_CLUSTER_ID 0x0420 -#define ZCL_COPPER_CONCENTRATION_MEASUREMENT_CLUSTER_ID 0x0421 -#define ZCL_LEAD_CONCENTRATION_MEASUREMENT_CLUSTER_ID 0x0422 -#define ZCL_MANGANESE_CONCENTRATION_MEASUREMENT_CLUSTER_ID 0x0423 -#define ZCL_SULFATE_CONCENTRATION_MEASUREMENT_CLUSTER_ID 0x0424 -#define ZCL_BROMODICHLOROMETHANE_CONCENTRATION_MEASUREMENT_CLUSTER_ID 0x0425 -#define ZCL_BROMOFORM_CONCENTRATION_MEASUREMENT_CLUSTER_ID 0x0426 -#define ZCL_CHLORODIBROMOMETHANE_CONCENTRATION_MEASUREMENT_CLUSTER_ID 0x0427 -#define ZCL_CHLOROFORM_CONCENTRATION_MEASUREMENT_CLUSTER_ID 0x0428 -#define ZCL_SODIUM_CONCENTRATION_MEASUREMENT_CLUSTER_ID 0x0429 -#define ZCL_IAS_ZONE_CLUSTER_ID 0x0500 -#define ZCL_IAS_ACE_CLUSTER_ID 0x0501 -#define ZCL_IAS_WD_CLUSTER_ID 0x0502 -#define ZCL_GENERIC_TUNNEL_CLUSTER_ID 0x0600 -#define ZCL_BACNET_PROTOCOL_TUNNEL_CLUSTER_ID 0x0601 -#define ZCL_11073_PROTOCOL_TUNNEL_CLUSTER_ID 0x0614 -#define ZCL_ISO7816_PROTOCOL_TUNNEL_CLUSTER_ID 0x0615 -#define ZCL_PRICE_CLUSTER_ID 0x0700 -#define ZCL_DEMAND_RESPONSE_LOAD_CONTROL_CLUSTER_ID 0x0701 -#define ZCL_SIMPLE_METERING_CLUSTER_ID 0x0702 -#define ZCL_MESSAGING_CLUSTER_ID 0x0703 -#define ZCL_TUNNELING_CLUSTER_ID 0x0704 -#define ZCL_PREPAYMENT_CLUSTER_ID 0x0705 -#define ZCL_ENERGY_MANAGEMENT_CLUSTER_ID 0x0706 -#define ZCL_CALENDAR_CLUSTER_ID 0x0707 -#define ZCL_DEVICE_MANAGEMENT_CLUSTER_ID 0x0708 -#define ZCL_EVENTS_CLUSTER_ID 0x0709 -#define ZCL_MDU_PAIRING_CLUSTER_ID 0x070A -#define ZCL_SUB_GHZ_CLUSTER_ID 0x070B -#define ZCL_KEY_ESTABLISHMENT_CLUSTER_ID 0x0800 -#define ZCL_INFORMATION_CLUSTER_ID 0x0900 -#define ZCL_DATA_SHARING_CLUSTER_ID 0x0901 -#define ZCL_GAMING_CLUSTER_ID 0x0902 -#define ZCL_DATA_RATE_CONTROL_CLUSTER_ID 0x0903 -#define ZCL_VOICE_OVER_ZIGBEE_CLUSTER_ID 0x0904 -#define ZCL_CHATTING_CLUSTER_ID 0x0905 -#define ZCL_PAYMENT_CLUSTER_ID 0x0A01 -#define ZCL_BILLING_CLUSTER_ID 0x0A02 -#define ZCL_APPLIANCE_IDENTIFICATION_CLUSTER_ID 0x0B00 -#define ZCL_METER_IDENTIFICATION_CLUSTER_ID 0x0B01 -#define ZCL_APPLIANCE_EVENTS_AND_ALERT_CLUSTER_ID 0x0B02 -#define ZCL_APPLIANCE_STATISTICS_CLUSTER_ID 0x0B03 -#define ZCL_ELECTRICAL_MEASUREMENT_CLUSTER_ID 0x0B04 -#define ZCL_DIAGNOSTICS_CLUSTER_ID 0x0B05 -#define ZCL_ZLL_COMMISSIONING_CLUSTER_ID 0x1000 -#define ZCL_SAMPLE_MFG_SPECIFIC_CLUSTER_ID 0xFC00 -#define ZCL_SAMPLE_MFG_SPECIFIC_CLUSTER_2_ID 0xFC00 -#define ZCL_OTA_CONFIGURATION_CLUSTER_ID 0xFC01 -#define ZCL_MFGLIB_CLUSTER_ID 0xFC02 -#define ZCL_SL_WWAH_CLUSTER_ID 0xFC57 -#endif // SILABS_EMBER_AF_CLUSTER_ID diff --git a/examples/lock-app/efr32/src/gen/command-id.h b/examples/lock-app/efr32/src/gen/command-id.h deleted file mode 100644 index 823914d0466035..00000000000000 --- a/examples/lock-app/efr32/src/gen/command-id.h +++ /dev/null @@ -1,1037 +0,0 @@ -/** - * - * 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 SILABS_EMBER_AF_COMMAND_ID -#define SILABS_EMBER_AF_COMMAND_ID - -// Global commands - -// Either direction -#define ZCL_READ_ATTRIBUTES_COMMAND_ID 0x00 // Ver.: always -#define ZCL_READ_ATTRIBUTES_RESPONSE_COMMAND_ID 0x01 // Ver.: always -#define ZCL_WRITE_ATTRIBUTES_COMMAND_ID 0x02 // Ver.: always -#define ZCL_WRITE_ATTRIBUTES_UNDIVIDED_COMMAND_ID 0x03 // Ver.: always -#define ZCL_WRITE_ATTRIBUTES_RESPONSE_COMMAND_ID 0x04 // Ver.: always -#define ZCL_WRITE_ATTRIBUTES_NO_RESPONSE_COMMAND_ID 0x05 // Ver.: always -#define ZCL_CONFIGURE_REPORTING_COMMAND_ID 0x06 // Ver.: always -#define ZCL_CONFIGURE_REPORTING_RESPONSE_COMMAND_ID 0x07 // Ver.: always -#define ZCL_READ_REPORTING_CONFIGURATION_COMMAND_ID 0x08 // Ver.: always -#define ZCL_READ_REPORTING_CONFIGURATION_RESPONSE_COMMAND_ID 0x09 // Ver.: always -#define ZCL_REPORT_ATTRIBUTES_COMMAND_ID 0x0A // Ver.: always -#define ZCL_DEFAULT_RESPONSE_COMMAND_ID 0x0B // Ver.: always -#define ZCL_DISCOVER_ATTRIBUTES_COMMAND_ID 0x0C // Ver.: always -#define ZCL_DISCOVER_ATTRIBUTES_RESPONSE_COMMAND_ID 0x0D // Ver.: always -#define ZCL_READ_ATTRIBUTES_STRUCTURED_COMMAND_ID 0x0E // Ver.: always -#define ZCL_WRITE_ATTRIBUTES_STRUCTURED_COMMAND_ID 0x0F // Ver.: always -#define ZCL_WRITE_ATTRIBUTES_STRUCTURED_RESPONSE_COMMAND_ID 0x10 // Ver.: always -#define ZCL_DISCOVER_COMMANDS_RECEIVED_COMMAND_ID 0x11 // Ver.: always -#define ZCL_DISCOVER_COMMANDS_RECEIVED_RESPONSE_COMMAND_ID 0x12 // Ver.: always -#define ZCL_DISCOVER_COMMANDS_GENERATED_COMMAND_ID 0x13 // Ver.: always -#define ZCL_DISCOVER_COMMANDS_GENERATED_RESPONSE_COMMAND_ID 0x14 // Ver.: always -#define ZCL_DISCOVER_ATTRIBUTES_EXTENDED_COMMAND_ID 0x15 // Ver.: always -#define ZCL_DISCOVER_ATTRIBUTES_EXTENDED_RESPONSE_COMMAND_ID 0x16 // Ver.: always -// Command types for cluster: Basic -// Cluster specification level: zcl-7.0-07-5123-07 - -// Server to client -#define ZCL_GET_LOCALES_SUPPORTED_RESPONSE_COMMAND_ID 0x01 // Ver.: always - -// Client to server -#define ZCL_RESET_TO_FACTORY_DEFAULTS_COMMAND_ID 0x00 // Ver.: always -#define ZCL_GET_LOCALES_SUPPORTED_COMMAND_ID 0x01 // Ver.: always - -// Command types for cluster: Identify -// Cluster specification level: zcl-7.0-07-5123-07 - -// Server to client -#define ZCL_IDENTIFY_QUERY_RESPONSE_COMMAND_ID 0x00 // Ver.: always - -// Client to server -#define ZCL_IDENTIFY_COMMAND_ID 0x00 // Ver.: always -#define ZCL_IDENTIFY_QUERY_COMMAND_ID 0x01 // Ver.: always -#define ZCL_E_Z_MODE_INVOKE_COMMAND_ID 0x02 // Ver.: always -#define ZCL_UPDATE_COMMISSION_STATE_COMMAND_ID 0x03 // Ver.: always -#define ZCL_TRIGGER_EFFECT_COMMAND_ID 0x40 // Ver.: since zll-1.0-11-0037-10 - -// Command types for cluster: Groups -// Cluster specification level: zcl-7.0-07-5123-07 - -// Server to client -#define ZCL_ADD_GROUP_RESPONSE_COMMAND_ID 0x00 // Ver.: always -#define ZCL_VIEW_GROUP_RESPONSE_COMMAND_ID 0x01 // Ver.: always -#define ZCL_GET_GROUP_MEMBERSHIP_RESPONSE_COMMAND_ID 0x02 // Ver.: always -#define ZCL_REMOVE_GROUP_RESPONSE_COMMAND_ID 0x03 // Ver.: always - -// Client to server -#define ZCL_ADD_GROUP_COMMAND_ID 0x00 // Ver.: always -#define ZCL_VIEW_GROUP_COMMAND_ID 0x01 // Ver.: always -#define ZCL_GET_GROUP_MEMBERSHIP_COMMAND_ID 0x02 // Ver.: always -#define ZCL_REMOVE_GROUP_COMMAND_ID 0x03 // Ver.: always -#define ZCL_REMOVE_ALL_GROUPS_COMMAND_ID 0x04 // Ver.: always -#define ZCL_ADD_GROUP_IF_IDENTIFYING_COMMAND_ID 0x05 // Ver.: always - -// Command types for cluster: Scenes -// Cluster specification level: zcl-7.0-07-5123-07 - -// Server to client -#define ZCL_ADD_SCENE_RESPONSE_COMMAND_ID 0x00 // Ver.: always -#define ZCL_VIEW_SCENE_RESPONSE_COMMAND_ID 0x01 // Ver.: always -#define ZCL_REMOVE_SCENE_RESPONSE_COMMAND_ID 0x02 // Ver.: always -#define ZCL_REMOVE_ALL_SCENES_RESPONSE_COMMAND_ID 0x03 // Ver.: always -#define ZCL_STORE_SCENE_RESPONSE_COMMAND_ID 0x04 // Ver.: always -#define ZCL_GET_SCENE_MEMBERSHIP_RESPONSE_COMMAND_ID 0x06 // Ver.: always -#define ZCL_ENHANCED_ADD_SCENE_RESPONSE_COMMAND_ID 0x40 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_ENHANCED_VIEW_SCENE_RESPONSE_COMMAND_ID 0x41 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_COPY_SCENE_RESPONSE_COMMAND_ID 0x42 // Ver.: since zll-1.0-11-0037-10 - -// Client to server -#define ZCL_ADD_SCENE_COMMAND_ID 0x00 // Ver.: always -#define ZCL_VIEW_SCENE_COMMAND_ID 0x01 // Ver.: always -#define ZCL_REMOVE_SCENE_COMMAND_ID 0x02 // Ver.: always -#define ZCL_REMOVE_ALL_SCENES_COMMAND_ID 0x03 // Ver.: always -#define ZCL_STORE_SCENE_COMMAND_ID 0x04 // Ver.: always -#define ZCL_RECALL_SCENE_COMMAND_ID 0x05 // Ver.: always -#define ZCL_GET_SCENE_MEMBERSHIP_COMMAND_ID 0x06 // Ver.: always -#define ZCL_ENHANCED_ADD_SCENE_COMMAND_ID 0x40 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_ENHANCED_VIEW_SCENE_COMMAND_ID 0x41 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_COPY_SCENE_COMMAND_ID 0x42 // Ver.: since zll-1.0-11-0037-10 - -// Command types for cluster: On/off -// Cluster specification level: zcl-7.0-07-5123-07 - -// Client to server -#define ZCL_OFF_COMMAND_ID 0x00 // Ver.: always -#define ZCL_ON_COMMAND_ID 0x01 // Ver.: always -#define ZCL_TOGGLE_COMMAND_ID 0x02 // Ver.: always -#define ZCL_OFF_WITH_EFFECT_COMMAND_ID 0x40 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_ON_WITH_RECALL_GLOBAL_SCENE_COMMAND_ID 0x41 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_ON_WITH_TIMED_OFF_COMMAND_ID 0x42 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_SAMPLE_MFG_SPECIFIC_OFF_WITH_TRANSITION_COMMAND_ID 0x00 // Ver.: always mfgCode: 0x1002 -#define ZCL_SAMPLE_MFG_SPECIFIC_ON_WITH_TRANSITION_COMMAND_ID 0x01 // Ver.: always mfgCode: 0x1002 -#define ZCL_SAMPLE_MFG_SPECIFIC_TOGGLE_WITH_TRANSITION_COMMAND_ID 0x02 // Ver.: always mfgCode: 0x1002 -#define ZCL_SAMPLE_MFG_SPECIFIC_ON_WITH_TRANSITION2_COMMAND_ID 0x01 // Ver.: always mfgCode: 0x1049 -#define ZCL_SAMPLE_MFG_SPECIFIC_TOGGLE_WITH_TRANSITION2_COMMAND_ID 0x02 // Ver.: always mfgCode: 0x1049 - -// Command types for cluster: Level Control -// Cluster specification level: zcl-7.0-07-5123-07 - -// Client to server -#define ZCL_MOVE_TO_LEVEL_COMMAND_ID 0x00 // Ver.: always -#define ZCL_MOVE_COMMAND_ID 0x01 // Ver.: always -#define ZCL_STEP_COMMAND_ID 0x02 // Ver.: always -#define ZCL_STOP_COMMAND_ID 0x03 // Ver.: always -#define ZCL_MOVE_TO_LEVEL_WITH_ON_OFF_COMMAND_ID 0x04 // Ver.: always -#define ZCL_MOVE_WITH_ON_OFF_COMMAND_ID 0x05 // Ver.: always -#define ZCL_STEP_WITH_ON_OFF_COMMAND_ID 0x06 // Ver.: always -#define ZCL_STOP_WITH_ON_OFF_COMMAND_ID 0x07 // Ver.: always - -// Command types for cluster: Alarms -// Cluster specification level: zcl-7.0-07-5123-07 - -// Server to client -#define ZCL_ALARM_COMMAND_ID 0x00 // Ver.: always -#define ZCL_GET_ALARM_RESPONSE_COMMAND_ID 0x01 // Ver.: always - -// Client to server -#define ZCL_RESET_ALARM_COMMAND_ID 0x00 // Ver.: always -#define ZCL_RESET_ALL_ALARMS_COMMAND_ID 0x01 // Ver.: always -#define ZCL_GET_ALARM_COMMAND_ID 0x02 // Ver.: always -#define ZCL_RESET_ALARM_LOG_COMMAND_ID 0x03 // Ver.: always - -// Command types for cluster: RSSI Location -// Cluster specification level: zcl-7.0-07-5123-07 - -// Server to client -#define ZCL_DEVICE_CONFIGURATION_RESPONSE_COMMAND_ID 0x00 // Ver.: always -#define ZCL_LOCATION_DATA_RESPONSE_COMMAND_ID 0x01 // Ver.: always -#define ZCL_LOCATION_DATA_NOTIFICATION_COMMAND_ID 0x02 // Ver.: always -#define ZCL_COMPACT_LOCATION_DATA_NOTIFICATION_COMMAND_ID 0x03 // Ver.: always -#define ZCL_RSSI_PING_COMMAND_ID 0x04 // Ver.: always -#define ZCL_RSSI_REQUEST_COMMAND_ID 0x05 // Ver.: always -#define ZCL_REPORT_RSSI_MEASUREMENTS_COMMAND_ID 0x06 // Ver.: always -#define ZCL_REQUEST_OWN_LOCATION_COMMAND_ID 0x07 // Ver.: always - -// Client to server -#define ZCL_SET_ABSOLUTE_LOCATION_COMMAND_ID 0x00 // Ver.: always -#define ZCL_SET_DEVICE_CONFIGURATION_COMMAND_ID 0x01 // Ver.: always -#define ZCL_GET_DEVICE_CONFIGURATION_COMMAND_ID 0x02 // Ver.: always -#define ZCL_GET_LOCATION_DATA_COMMAND_ID 0x03 // Ver.: always -#define ZCL_RSSI_RESPONSE_COMMAND_ID 0x04 // Ver.: always -#define ZCL_SEND_PINGS_COMMAND_ID 0x05 // Ver.: always -#define ZCL_ANCHOR_NODE_ANNOUNCE_COMMAND_ID 0x06 // Ver.: always - -// Command types for cluster: Commissioning -// Cluster specification level: zcl-7.0-07-5123-07 - -// Server to client -#define ZCL_RESTART_DEVICE_RESPONSE_COMMAND_ID 0x00 // Ver.: always -#define ZCL_SAVE_STARTUP_PARAMETERS_RESPONSE_COMMAND_ID 0x01 // Ver.: always -#define ZCL_RESTORE_STARTUP_PARAMETERS_RESPONSE_COMMAND_ID 0x02 // Ver.: always -#define ZCL_RESET_STARTUP_PARAMETERS_RESPONSE_COMMAND_ID 0x03 // Ver.: always - -// Client to server -#define ZCL_RESTART_DEVICE_COMMAND_ID 0x00 // Ver.: always -#define ZCL_SAVE_STARTUP_PARAMETERS_COMMAND_ID 0x01 // Ver.: always -#define ZCL_RESTORE_STARTUP_PARAMETERS_COMMAND_ID 0x02 // Ver.: always -#define ZCL_RESET_STARTUP_PARAMETERS_COMMAND_ID 0x03 // Ver.: always - -// Command types for cluster: Partition -// Cluster specification level: zcl-7.0-07-5123-07 - -// Server to client -#define ZCL_MULTIPLE_ACK_COMMAND_ID 0x00 // Ver.: always -#define ZCL_READ_HANDSHAKE_PARAM_RESPONSE_COMMAND_ID 0x01 // Ver.: always - -// Client to server -#define ZCL_TRANSFER_PARTITIONED_FRAME_COMMAND_ID 0x00 // Ver.: always -#define ZCL_READ_HANDSHAKE_PARAM_COMMAND_ID 0x01 // Ver.: always -#define ZCL_WRITE_HANDSHAKE_PARAM_COMMAND_ID 0x02 // Ver.: always - -// Command types for cluster: Over the Air Bootloading -// Cluster specification level: zcl-7.0-07-5123-07 - -// Server to client -#define ZCL_IMAGE_NOTIFY_COMMAND_ID 0x00 // Ver.: always -#define ZCL_QUERY_NEXT_IMAGE_RESPONSE_COMMAND_ID 0x02 // Ver.: always -#define ZCL_IMAGE_BLOCK_RESPONSE_COMMAND_ID 0x05 // Ver.: always -#define ZCL_UPGRADE_END_RESPONSE_COMMAND_ID 0x07 // Ver.: always -#define ZCL_QUERY_SPECIFIC_FILE_RESPONSE_COMMAND_ID 0x09 // Ver.: always - -// Client to server -#define ZCL_QUERY_NEXT_IMAGE_REQUEST_COMMAND_ID 0x01 // Ver.: always -#define ZCL_IMAGE_BLOCK_REQUEST_COMMAND_ID 0x03 // Ver.: always -#define ZCL_IMAGE_PAGE_REQUEST_COMMAND_ID 0x04 // Ver.: always -#define ZCL_UPGRADE_END_REQUEST_COMMAND_ID 0x06 // Ver.: always -#define ZCL_QUERY_SPECIFIC_FILE_REQUEST_COMMAND_ID 0x08 // Ver.: always - -// Command types for cluster: Power Profile -// Cluster specification level: zcl-7.0-07-5123-07 - -// Server to client -#define ZCL_POWER_PROFILE_NOTIFICATION_COMMAND_ID 0x00 // Ver.: always -#define ZCL_POWER_PROFILE_RESPONSE_COMMAND_ID 0x01 // Ver.: always -#define ZCL_POWER_PROFILE_STATE_RESPONSE_COMMAND_ID 0x02 // Ver.: always -#define ZCL_GET_POWER_PROFILE_PRICE_COMMAND_ID 0x03 // Ver.: always -#define ZCL_POWER_PROFILES_STATE_NOTIFICATION_COMMAND_ID 0x04 // Ver.: always -#define ZCL_GET_OVERALL_SCHEDULE_PRICE_COMMAND_ID 0x05 // Ver.: always -#define ZCL_ENERGY_PHASES_SCHEDULE_REQUEST_COMMAND_ID 0x06 // Ver.: always -#define ZCL_ENERGY_PHASES_SCHEDULE_STATE_RESPONSE_COMMAND_ID 0x07 // Ver.: always -#define ZCL_ENERGY_PHASES_SCHEDULE_STATE_NOTIFICATION_COMMAND_ID 0x08 // Ver.: always -#define ZCL_POWER_PROFILE_SCHEDULE_CONSTRAINTS_NOTIFICATION_COMMAND_ID 0x09 // Ver.: always -#define ZCL_POWER_PROFILE_SCHEDULE_CONSTRAINTS_RESPONSE_COMMAND_ID 0x0A // Ver.: always -#define ZCL_GET_POWER_PROFILE_PRICE_EXTENDED_COMMAND_ID 0x0B // Ver.: always - -// Client to server -#define ZCL_POWER_PROFILE_REQUEST_COMMAND_ID 0x00 // Ver.: always -#define ZCL_POWER_PROFILE_STATE_REQUEST_COMMAND_ID 0x01 // Ver.: always -#define ZCL_GET_POWER_PROFILE_PRICE_RESPONSE_COMMAND_ID 0x02 // Ver.: always -#define ZCL_GET_OVERALL_SCHEDULE_PRICE_RESPONSE_COMMAND_ID 0x03 // Ver.: always -#define ZCL_ENERGY_PHASES_SCHEDULE_NOTIFICATION_COMMAND_ID 0x04 // Ver.: always -#define ZCL_ENERGY_PHASES_SCHEDULE_RESPONSE_COMMAND_ID 0x05 // Ver.: always -#define ZCL_POWER_PROFILE_SCHEDULE_CONSTRAINTS_REQUEST_COMMAND_ID 0x06 // Ver.: always -#define ZCL_ENERGY_PHASES_SCHEDULE_STATE_REQUEST_COMMAND_ID 0x07 // Ver.: always -#define ZCL_GET_POWER_PROFILE_PRICE_EXTENDED_RESPONSE_COMMAND_ID 0x08 // Ver.: always - -// Command types for cluster: Appliance Control -// Cluster specification level: zcl-7.0-07-5123-07 - -// Server to client -#define ZCL_SIGNAL_STATE_RESPONSE_COMMAND_ID 0x00 // Ver.: always -#define ZCL_SIGNAL_STATE_NOTIFICATION_COMMAND_ID 0x01 // Ver.: always - -// Client to server -#define ZCL_EXECUTION_OF_A_COMMAND_COMMAND_ID 0x00 // Ver.: always -#define ZCL_SIGNAL_STATE_COMMAND_ID 0x01 // Ver.: always -#define ZCL_WRITE_FUNCTIONS_COMMAND_ID 0x02 // Ver.: always -#define ZCL_OVERLOAD_PAUSE_RESUME_COMMAND_ID 0x03 // Ver.: always -#define ZCL_OVERLOAD_PAUSE_COMMAND_ID 0x04 // Ver.: always -#define ZCL_OVERLOAD_WARNING_COMMAND_ID 0x05 // Ver.: always - -// Command types for cluster: Poll Control -// Cluster specification level: zcl-7.0-07-5123-07 - -// Server to client -#define ZCL_CHECK_IN_COMMAND_ID 0x00 // Ver.: always - -// Client to server -#define ZCL_CHECK_IN_RESPONSE_COMMAND_ID 0x00 // Ver.: always -#define ZCL_FAST_POLL_STOP_COMMAND_ID 0x01 // Ver.: always -#define ZCL_SET_LONG_POLL_INTERVAL_COMMAND_ID 0x02 // Ver.: always -#define ZCL_SET_SHORT_POLL_INTERVAL_COMMAND_ID 0x03 // Ver.: always - -// Command types for cluster: Green Power -// Cluster specification level: gp-1.0a-09-5499-26 - -// Server to client -#define ZCL_GP_NOTIFICATION_RESPONSE_COMMAND_ID 0x00 // Ver.: since gp-1.0-09-5499-24 -#define ZCL_GP_PAIRING_COMMAND_ID 0x01 // Ver.: since gp-1.0-09-5499-24 -#define ZCL_GP_PROXY_COMMISSIONING_MODE_COMMAND_ID 0x02 // Ver.: since gp-1.0-09-5499-24 -#define ZCL_GP_RESPONSE_COMMAND_ID 0x06 // Ver.: since gp-1.0-09-5499-24 -#define ZCL_GP_TRANSLATION_TABLE_RESPONSE_COMMAND_ID 0x08 // Ver.: since gp-1.0-09-5499-24 -#define ZCL_GP_SINK_TABLE_RESPONSE_COMMAND_ID 0x0A // Ver.: always -#define ZCL_GP_PROXY_TABLE_REQUEST_COMMAND_ID 0x0B // Ver.: always - -// Client to server -#define ZCL_GP_NOTIFICATION_COMMAND_ID 0x00 // Ver.: since gp-1.0-09-5499-24 -#define ZCL_GP_PAIRING_SEARCH_COMMAND_ID 0x01 // Ver.: since gp-1.0-09-5499-24 -#define ZCL_GP_TUNNELING_STOP_COMMAND_ID 0x03 // Ver.: since gp-1.0-09-5499-24 -#define ZCL_GP_COMMISSIONING_NOTIFICATION_COMMAND_ID 0x04 // Ver.: since gp-1.0-09-5499-24 -#define ZCL_GP_SINK_COMMISSIONING_MODE_COMMAND_ID 0x05 // Ver.: always -#define ZCL_GP_TRANSLATION_TABLE_UPDATE_COMMAND_ID 0x07 // Ver.: since gp-1.0-09-5499-24 -#define ZCL_GP_TRANSLATION_TABLE_REQUEST_COMMAND_ID 0x08 // Ver.: always -#define ZCL_GP_PAIRING_CONFIGURATION_COMMAND_ID 0x09 // Ver.: since gp-1.0-09-5499-24 -#define ZCL_GP_SINK_TABLE_REQUEST_COMMAND_ID 0x0A // Ver.: always -#define ZCL_GP_PROXY_TABLE_RESPONSE_COMMAND_ID 0x0B // Ver.: always - -// Command types for cluster: Door Lock -// Cluster specification level: zcl-6.0-15-02018-001 - -// Server to client -#define ZCL_LOCK_DOOR_RESPONSE_COMMAND_ID 0x00 // Ver.: always -#define ZCL_UNLOCK_DOOR_RESPONSE_COMMAND_ID 0x01 // Ver.: always -#define ZCL_TOGGLE_RESPONSE_COMMAND_ID 0x02 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_UNLOCK_WITH_TIMEOUT_RESPONSE_COMMAND_ID 0x03 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_GET_LOG_RECORD_RESPONSE_COMMAND_ID 0x04 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_SET_PIN_RESPONSE_COMMAND_ID 0x05 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_GET_PIN_RESPONSE_COMMAND_ID 0x06 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_CLEAR_PIN_RESPONSE_COMMAND_ID 0x07 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_CLEAR_ALL_PINS_RESPONSE_COMMAND_ID 0x08 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_SET_USER_STATUS_RESPONSE_COMMAND_ID 0x09 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_GET_USER_STATUS_RESPONSE_COMMAND_ID 0x0A // Ver.: since ha-1.2-05-3520-29 -#define ZCL_SET_WEEKDAY_SCHEDULE_RESPONSE_COMMAND_ID 0x0B // Ver.: since ha-1.2-05-3520-29 -#define ZCL_GET_WEEKDAY_SCHEDULE_RESPONSE_COMMAND_ID 0x0C // Ver.: since ha-1.2-05-3520-29 -#define ZCL_CLEAR_WEEKDAY_SCHEDULE_RESPONSE_COMMAND_ID 0x0D // Ver.: since ha-1.2-05-3520-29 -#define ZCL_SET_YEARDAY_SCHEDULE_RESPONSE_COMMAND_ID 0x0E // Ver.: since ha-1.2-05-3520-29 -#define ZCL_GET_YEARDAY_SCHEDULE_RESPONSE_COMMAND_ID 0x0F // Ver.: since ha-1.2-05-3520-29 -#define ZCL_CLEAR_YEARDAY_SCHEDULE_RESPONSE_COMMAND_ID 0x10 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_SET_HOLIDAY_SCHEDULE_RESPONSE_COMMAND_ID 0x11 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_GET_HOLIDAY_SCHEDULE_RESPONSE_COMMAND_ID 0x12 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_CLEAR_HOLIDAY_SCHEDULE_RESPONSE_COMMAND_ID 0x13 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_SET_USER_TYPE_RESPONSE_COMMAND_ID 0x14 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_GET_USER_TYPE_RESPONSE_COMMAND_ID 0x15 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_SET_RFID_RESPONSE_COMMAND_ID 0x16 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_GET_RFID_RESPONSE_COMMAND_ID 0x17 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_CLEAR_RFID_RESPONSE_COMMAND_ID 0x18 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_CLEAR_ALL_RFIDS_RESPONSE_COMMAND_ID 0x19 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_OPERATION_EVENT_NOTIFICATION_COMMAND_ID 0x20 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_PROGRAMMING_EVENT_NOTIFICATION_COMMAND_ID 0x21 // Ver.: since ha-1.2-05-3520-29 - -// Client to server -#define ZCL_LOCK_DOOR_COMMAND_ID 0x00 // Ver.: always -#define ZCL_UNLOCK_DOOR_COMMAND_ID 0x01 // Ver.: always -#define ZCL_TOGGLE_COMMAND_ID 0x02 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_UNLOCK_WITH_TIMEOUT_COMMAND_ID 0x03 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_GET_LOG_RECORD_COMMAND_ID 0x04 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_SET_PIN_COMMAND_ID 0x05 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_GET_PIN_COMMAND_ID 0x06 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_CLEAR_PIN_COMMAND_ID 0x07 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_CLEAR_ALL_PINS_COMMAND_ID 0x08 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_SET_USER_STATUS_COMMAND_ID 0x09 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_GET_USER_STATUS_COMMAND_ID 0x0A // Ver.: since ha-1.2-05-3520-29 -#define ZCL_SET_WEEKDAY_SCHEDULE_COMMAND_ID 0x0B // Ver.: since ha-1.2-05-3520-29 -#define ZCL_GET_WEEKDAY_SCHEDULE_COMMAND_ID 0x0C // Ver.: since ha-1.2-05-3520-29 -#define ZCL_CLEAR_WEEKDAY_SCHEDULE_COMMAND_ID 0x0D // Ver.: since ha-1.2-05-3520-29 -#define ZCL_SET_YEARDAY_SCHEDULE_COMMAND_ID 0x0E // Ver.: since ha-1.2-05-3520-29 -#define ZCL_GET_YEARDAY_SCHEDULE_COMMAND_ID 0x0F // Ver.: since ha-1.2-05-3520-29 -#define ZCL_CLEAR_YEARDAY_SCHEDULE_COMMAND_ID 0x10 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_SET_HOLIDAY_SCHEDULE_COMMAND_ID 0x11 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_GET_HOLIDAY_SCHEDULE_COMMAND_ID 0x12 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_CLEAR_HOLIDAY_SCHEDULE_COMMAND_ID 0x13 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_SET_USER_TYPE_COMMAND_ID 0x14 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_GET_USER_TYPE_COMMAND_ID 0x15 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_SET_RFID_COMMAND_ID 0x16 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_GET_RFID_COMMAND_ID 0x17 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_CLEAR_RFID_COMMAND_ID 0x18 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_CLEAR_ALL_RFIDS_COMMAND_ID 0x19 // Ver.: since ha-1.2-05-3520-29 - -// Command types for cluster: Window Covering -// Cluster specification level: zcl-6.0-15-02018-001 - -// Client to server -#define ZCL_WINDOW_COVERING_UP_OPEN_COMMAND_ID 0x00 // Ver.: always -#define ZCL_WINDOW_COVERING_DOWN_CLOSE_COMMAND_ID 0x01 // Ver.: always -#define ZCL_WINDOW_COVERING_STOP_COMMAND_ID 0x02 // Ver.: always -#define ZCL_WINDOW_COVERING_GO_TO_LIFT_VALUE_COMMAND_ID 0x04 // Ver.: always -#define ZCL_WINDOW_COVERING_GO_TO_LIFT_PERCENTAGE_COMMAND_ID 0x05 // Ver.: always -#define ZCL_WINDOW_COVERING_GO_TO_TILT_VALUE_COMMAND_ID 0x07 // Ver.: always -#define ZCL_WINDOW_COVERING_GO_TO_TILT_PERCENTAGE_COMMAND_ID 0x08 // Ver.: always - -// Command types for cluster: Barrier Control -// Cluster specification level: zcl-6.0-15-02018-001 - -// Client to server -#define ZCL_BARRIER_CONTROL_GO_TO_PERCENT_COMMAND_ID 0x00 // Ver.: always -#define ZCL_BARRIER_CONTROL_STOP_COMMAND_ID 0x01 // Ver.: always - -// Command types for cluster: Thermostat -// Cluster specification level: zcl-6.0-15-02018-001 - -// Server to client -#define ZCL_CURRENT_WEEKLY_SCHEDULE_COMMAND_ID 0x00 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_RELAY_STATUS_LOG_COMMAND_ID 0x01 // Ver.: since ha-1.2-05-3520-29 - -// Client to server -#define ZCL_SETPOINT_RAISE_LOWER_COMMAND_ID 0x00 // Ver.: always -#define ZCL_SET_WEEKLY_SCHEDULE_COMMAND_ID 0x01 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_GET_WEEKLY_SCHEDULE_COMMAND_ID 0x02 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_CLEAR_WEEKLY_SCHEDULE_COMMAND_ID 0x03 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_GET_RELAY_STATUS_LOG_COMMAND_ID 0x04 // Ver.: since ha-1.2-05-3520-29 - -// Command types for cluster: Color Control -// Cluster specification level: zcl6-errata-14-0129-15 - -// Client to server -#define ZCL_MOVE_TO_HUE_COMMAND_ID 0x00 // Ver.: always -#define ZCL_MOVE_HUE_COMMAND_ID 0x01 // Ver.: always -#define ZCL_STEP_HUE_COMMAND_ID 0x02 // Ver.: always -#define ZCL_MOVE_TO_SATURATION_COMMAND_ID 0x03 // Ver.: always -#define ZCL_MOVE_SATURATION_COMMAND_ID 0x04 // Ver.: always -#define ZCL_STEP_SATURATION_COMMAND_ID 0x05 // Ver.: always -#define ZCL_MOVE_TO_HUE_AND_SATURATION_COMMAND_ID 0x06 // Ver.: always -#define ZCL_MOVE_TO_COLOR_COMMAND_ID 0x07 // Ver.: always -#define ZCL_MOVE_COLOR_COMMAND_ID 0x08 // Ver.: always -#define ZCL_STEP_COLOR_COMMAND_ID 0x09 // Ver.: always -#define ZCL_MOVE_TO_COLOR_TEMPERATURE_COMMAND_ID 0x0A // Ver.: always -#define ZCL_ENHANCED_MOVE_TO_HUE_COMMAND_ID 0x40 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_ENHANCED_MOVE_HUE_COMMAND_ID 0x41 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_ENHANCED_STEP_HUE_COMMAND_ID 0x42 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_ENHANCED_MOVE_TO_HUE_AND_SATURATION_COMMAND_ID 0x43 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_COLOR_LOOP_SET_COMMAND_ID 0x44 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_STOP_MOVE_STEP_COMMAND_ID 0x47 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_MOVE_COLOR_TEMPERATURE_COMMAND_ID 0x4B // Ver.: since zll-1.0-11-0037-10 -#define ZCL_STEP_COLOR_TEMPERATURE_COMMAND_ID 0x4C // Ver.: since zll-1.0-11-0037-10 - -// Command types for cluster: IAS Zone -// Cluster specification level: zcl-6.0-15-02018-001 - -// Server to client -#define ZCL_ZONE_STATUS_CHANGE_NOTIFICATION_COMMAND_ID 0x00 // Ver.: always -#define ZCL_ZONE_ENROLL_REQUEST_COMMAND_ID 0x01 // Ver.: always -#define ZCL_INITIATE_NORMAL_OPERATION_MODE_RESPONSE_COMMAND_ID 0x02 // Ver.: always -#define ZCL_INITIATE_TEST_MODE_RESPONSE_COMMAND_ID 0x03 // Ver.: always - -// Client to server -#define ZCL_ZONE_ENROLL_RESPONSE_COMMAND_ID 0x00 // Ver.: always -#define ZCL_INITIATE_NORMAL_OPERATION_MODE_COMMAND_ID 0x01 // Ver.: always -#define ZCL_INITIATE_TEST_MODE_COMMAND_ID 0x02 // Ver.: always - -// Command types for cluster: IAS ACE -// Cluster specification level: zcl-6.0-15-02018-001 - -// Server to client -#define ZCL_ARM_RESPONSE_COMMAND_ID 0x00 // Ver.: always -#define ZCL_GET_ZONE_ID_MAP_RESPONSE_COMMAND_ID 0x01 // Ver.: always -#define ZCL_GET_ZONE_INFORMATION_RESPONSE_COMMAND_ID 0x02 // Ver.: always -#define ZCL_ZONE_STATUS_CHANGED_COMMAND_ID 0x03 // Ver.: always -#define ZCL_PANEL_STATUS_CHANGED_COMMAND_ID 0x04 // Ver.: always -#define ZCL_GET_PANEL_STATUS_RESPONSE_COMMAND_ID 0x05 // Ver.: since ha-1.2.1-05-3520-30 -#define ZCL_SET_BYPASSED_ZONE_LIST_COMMAND_ID 0x06 // Ver.: since ha-1.2.1-05-3520-30 -#define ZCL_BYPASS_RESPONSE_COMMAND_ID 0x07 // Ver.: since ha-1.2.1-05-3520-30 -#define ZCL_GET_ZONE_STATUS_RESPONSE_COMMAND_ID 0x08 // Ver.: since ha-1.2.1-05-3520-30 - -// Client to server -#define ZCL_ARM_COMMAND_ID 0x00 // Ver.: always -#define ZCL_BYPASS_COMMAND_ID 0x01 // Ver.: always -#define ZCL_EMERGENCY_COMMAND_ID 0x02 // Ver.: always -#define ZCL_FIRE_COMMAND_ID 0x03 // Ver.: always -#define ZCL_PANIC_COMMAND_ID 0x04 // Ver.: always -#define ZCL_GET_ZONE_ID_MAP_COMMAND_ID 0x05 // Ver.: always -#define ZCL_GET_ZONE_INFORMATION_COMMAND_ID 0x06 // Ver.: always -#define ZCL_GET_PANEL_STATUS_COMMAND_ID 0x07 // Ver.: since ha-1.2.1-05-3520-30 -#define ZCL_GET_BYPASSED_ZONE_LIST_COMMAND_ID 0x08 // Ver.: since ha-1.2.1-05-3520-30 -#define ZCL_GET_ZONE_STATUS_COMMAND_ID 0x09 // Ver.: since ha-1.2.1-05-3520-30 - -// Command types for cluster: IAS WD -// Cluster specification level: zcl-6.0-15-02018-001 - -// Client to server -#define ZCL_START_WARNING_COMMAND_ID 0x00 // Ver.: always -#define ZCL_SQUAWK_COMMAND_ID 0x01 // Ver.: always - -// Command types for cluster: Generic Tunnel -// Cluster specification level: cba-1.0-05-3516-12 - -// Server to client -#define ZCL_MATCH_PROTOCOL_ADDRESS_RESPONSE_COMMAND_ID 0x00 // Ver.: always -#define ZCL_ADVERTISE_PROTOCOL_ADDRESS_COMMAND_ID 0x01 // Ver.: always - -// Client to server -#define ZCL_MATCH_PROTOCOL_ADDRESS_COMMAND_ID 0x00 // Ver.: always - -// Command types for cluster: BACnet Protocol Tunnel -// Cluster specification level: cba-1.0-05-3516-12 - -// Client to server -#define ZCL_TRANSFER_NPDU_COMMAND_ID 0x00 // Ver.: always - -// Command types for cluster: 11073 Protocol Tunnel -// Cluster specification level: hc-1.0-07-5360-15 - -// Client to server -#define ZCL_TRANSFER_A_P_D_U_COMMAND_ID 0x00 // Ver.: always -#define ZCL_CONNECT_REQUEST_COMMAND_ID 0x01 // Ver.: always -#define ZCL_DISCONNECT_REQUEST_COMMAND_ID 0x02 // Ver.: always -#define ZCL_CONNECT_STATUS_NOTIFICATION_COMMAND_ID 0x03 // Ver.: always - -// Command types for cluster: ISO 7816 Protocol Tunnel -// Cluster specification level: ta-1.0-07-5307-07 - -// Client to server -#define ZCL_INSERT_SMART_CARD_COMMAND_ID 0x01 // Ver.: always -#define ZCL_EXTRACT_SMART_CARD_COMMAND_ID 0x02 // Ver.: always - -// Either direction -#define ZCL_TRANSFER_APDU_COMMAND_ID 0x00 // Ver.: always - -// Command types for cluster: Price -// Cluster specification level: se-1.2b-15-0131-02 - -// Server to client -#define ZCL_PUBLISH_PRICE_COMMAND_ID 0x00 // Ver.: always -#define ZCL_PUBLISH_BLOCK_PERIOD_COMMAND_ID 0x01 // Ver.: since se-1.1-07-5356-16 -#define ZCL_PUBLISH_CONVERSION_FACTOR_COMMAND_ID 0x02 // Ver.: since se-1.1a-07-5356-17 -#define ZCL_PUBLISH_CALORIFIC_VALUE_COMMAND_ID 0x03 // Ver.: since se-1.1a-07-5356-17 -#define ZCL_PUBLISH_TARIFF_INFORMATION_COMMAND_ID 0x04 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PUBLISH_PRICE_MATRIX_COMMAND_ID 0x05 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PUBLISH_BLOCK_THRESHOLDS_COMMAND_ID 0x06 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PUBLISH_C_O2_VALUE_COMMAND_ID 0x07 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PUBLISH_TIER_LABELS_COMMAND_ID 0x08 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PUBLISH_BILLING_PERIOD_COMMAND_ID 0x09 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PUBLISH_CONSOLIDATED_BILL_COMMAND_ID 0x0A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PUBLISH_CPP_EVENT_COMMAND_ID 0x0B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PUBLISH_CREDIT_PAYMENT_COMMAND_ID 0x0C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PUBLISH_CURRENCY_CONVERSION_COMMAND_ID 0x0D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CANCEL_TARIFF_COMMAND_ID 0x0E // Ver.: since se-1.2a-07-5356-19 - -// Client to server -#define ZCL_GET_CURRENT_PRICE_COMMAND_ID 0x00 // Ver.: always -#define ZCL_GET_SCHEDULED_PRICES_COMMAND_ID 0x01 // Ver.: always -#define ZCL_PRICE_ACKNOWLEDGEMENT_COMMAND_ID 0x02 // Ver.: since se-1.1-07-5356-16 -#define ZCL_GET_BLOCK_PERIODS_COMMAND_ID 0x03 // Ver.: since se-1.1-07-5356-16 -#define ZCL_GET_CONVERSION_FACTOR_COMMAND_ID 0x04 // Ver.: since se-1.1a-07-5356-17 -#define ZCL_GET_CALORIFIC_VALUE_COMMAND_ID 0x05 // Ver.: since se-1.1a-07-5356-17 -#define ZCL_GET_TARIFF_INFORMATION_COMMAND_ID 0x06 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_GET_PRICE_MATRIX_COMMAND_ID 0x07 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_GET_BLOCK_THRESHOLDS_COMMAND_ID 0x08 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_GET_C_O2_VALUE_COMMAND_ID 0x09 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_GET_TIER_LABELS_COMMAND_ID 0x0A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_GET_BILLING_PERIOD_COMMAND_ID 0x0B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_GET_CONSOLIDATED_BILL_COMMAND_ID 0x0C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CPP_EVENT_RESPONSE_COMMAND_ID 0x0D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_GET_CREDIT_PAYMENT_COMMAND_ID 0x0E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_GET_CURRENCY_CONVERSION_COMMAND_COMMAND_ID 0x0F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_GET_TARIFF_CANCELLATION_COMMAND_ID 0x10 // Ver.: since se-1.2a-07-5356-19 - -// Command types for cluster: Demand Response and Load Control -// Cluster specification level: se-1.2b-15-0131-02 - -// Server to client -#define ZCL_LOAD_CONTROL_EVENT_COMMAND_ID 0x00 // Ver.: always -#define ZCL_CANCEL_LOAD_CONTROL_EVENT_COMMAND_ID 0x01 // Ver.: always -#define ZCL_CANCEL_ALL_LOAD_CONTROL_EVENTS_COMMAND_ID 0x02 // Ver.: always - -// Client to server -#define ZCL_REPORT_EVENT_STATUS_COMMAND_ID 0x00 // Ver.: always -#define ZCL_GET_SCHEDULED_EVENTS_COMMAND_ID 0x01 // Ver.: always - -// Command types for cluster: Simple Metering -// Cluster specification level: se-1.2b-15-0131-02 - -// Server to client -#define ZCL_GET_PROFILE_RESPONSE_COMMAND_ID 0x00 // Ver.: always -#define ZCL_REQUEST_MIRROR_COMMAND_ID 0x01 // Ver.: always -#define ZCL_REMOVE_MIRROR_COMMAND_ID 0x02 // Ver.: always -#define ZCL_REQUEST_FAST_POLL_MODE_RESPONSE_COMMAND_ID 0x03 // Ver.: since se-1.1-07-5356-16 -#define ZCL_SCHEDULE_SNAPSHOT_RESPONSE_COMMAND_ID 0x04 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TAKE_SNAPSHOT_RESPONSE_COMMAND_ID 0x05 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PUBLISH_SNAPSHOT_COMMAND_ID 0x06 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_GET_SAMPLED_DATA_RESPONSE_COMMAND_ID 0x07 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CONFIGURE_MIRROR_COMMAND_ID 0x08 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CONFIGURE_NOTIFICATION_SCHEME_COMMAND_ID 0x09 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CONFIGURE_NOTIFICATION_FLAGS_COMMAND_ID 0x0A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_GET_NOTIFIED_MESSAGE_COMMAND_ID 0x0B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_SUPPLY_STATUS_RESPONSE_COMMAND_ID 0x0C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_START_SAMPLING_RESPONSE_COMMAND_ID 0x0D // Ver.: since se-1.2a-07-5356-19 - -// Client to server -#define ZCL_GET_PROFILE_COMMAND_ID 0x00 // Ver.: always -#define ZCL_REQUEST_MIRROR_RESPONSE_COMMAND_ID 0x01 // Ver.: always -#define ZCL_MIRROR_REMOVED_COMMAND_ID 0x02 // Ver.: always -#define ZCL_REQUEST_FAST_POLL_MODE_COMMAND_ID 0x03 // Ver.: since se-1.1-07-5356-16 -#define ZCL_SCHEDULE_SNAPSHOT_COMMAND_ID 0x04 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TAKE_SNAPSHOT_COMMAND_ID 0x05 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_GET_SNAPSHOT_COMMAND_ID 0x06 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_START_SAMPLING_COMMAND_ID 0x07 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_GET_SAMPLED_DATA_COMMAND_ID 0x08 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_MIRROR_REPORT_ATTRIBUTE_RESPONSE_COMMAND_ID 0x09 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RESET_LOAD_LIMIT_COUNTER_COMMAND_ID 0x0A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CHANGE_SUPPLY_COMMAND_ID 0x0B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_LOCAL_CHANGE_SUPPLY_COMMAND_ID 0x0C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_SET_SUPPLY_STATUS_COMMAND_ID 0x0D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_SET_UNCONTROLLED_FLOW_THRESHOLD_COMMAND_ID 0x0E // Ver.: since se-1.2a-07-5356-19 - -// Command types for cluster: Messaging -// Cluster specification level: se-1.2b-15-0131-02 - -// Server to client -#define ZCL_DISPLAY_MESSAGE_COMMAND_ID 0x00 // Ver.: always -#define ZCL_CANCEL_MESSAGE_COMMAND_ID 0x01 // Ver.: always -#define ZCL_DISPLAY_PROTECTED_MESSAGE_COMMAND_ID 0x02 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CANCEL_ALL_MESSAGES_COMMAND_ID 0x03 // Ver.: since se-1.2a-07-5356-19 - -// Client to server -#define ZCL_GET_LAST_MESSAGE_COMMAND_ID 0x00 // Ver.: always -#define ZCL_MESSAGE_CONFIRMATION_COMMAND_ID 0x01 // Ver.: always -#define ZCL_GET_MESSAGE_CANCELLATION_COMMAND_ID 0x02 // Ver.: since se-1.2a-07-5356-19 - -// Command types for cluster: Tunneling -// Cluster specification level: se-1.2b-15-0131-02 - -// Server to client -#define ZCL_REQUEST_TUNNEL_RESPONSE_COMMAND_ID 0x00 // Ver.: always -#define ZCL_TRANSFER_DATA_SERVER_TO_CLIENT_COMMAND_ID 0x01 // Ver.: always -#define ZCL_TRANSFER_DATA_ERROR_SERVER_TO_CLIENT_COMMAND_ID 0x02 // Ver.: always -#define ZCL_ACK_TRANSFER_DATA_SERVER_TO_CLIENT_COMMAND_ID 0x03 // Ver.: always -#define ZCL_READY_DATA_SERVER_TO_CLIENT_COMMAND_ID 0x04 // Ver.: always -#define ZCL_SUPPORTED_TUNNEL_PROTOCOLS_RESPONSE_COMMAND_ID 0x05 // Ver.: since se-1.1a-07-5356-17 -#define ZCL_TUNNEL_CLOSURE_NOTIFICATION_COMMAND_ID 0x06 // Ver.: since se-1.1a-07-5356-17 - -// Client to server -#define ZCL_REQUEST_TUNNEL_COMMAND_ID 0x00 // Ver.: always -#define ZCL_CLOSE_TUNNEL_COMMAND_ID 0x01 // Ver.: always -#define ZCL_TRANSFER_DATA_CLIENT_TO_SERVER_COMMAND_ID 0x02 // Ver.: always -#define ZCL_TRANSFER_DATA_ERROR_CLIENT_TO_SERVER_COMMAND_ID 0x03 // Ver.: always -#define ZCL_ACK_TRANSFER_DATA_CLIENT_TO_SERVER_COMMAND_ID 0x04 // Ver.: always -#define ZCL_READY_DATA_CLIENT_TO_SERVER_COMMAND_ID 0x05 // Ver.: always -#define ZCL_GET_SUPPORTED_TUNNEL_PROTOCOLS_COMMAND_ID 0x06 // Ver.: since se-1.1a-07-5356-17 - -// Command types for cluster: Prepayment -// Cluster specification level: se-1.2b-15-0131-02 - -// Server to client -#define ZCL_PUBLISH_PREPAY_SNAPSHOT_COMMAND_ID 0x01 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CHANGE_PAYMENT_MODE_RESPONSE_COMMAND_ID 0x02 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CONSUMER_TOP_UP_RESPONSE_COMMAND_ID 0x03 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PUBLISH_TOP_UP_LOG_COMMAND_ID 0x05 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PUBLISH_DEBT_LOG_COMMAND_ID 0x06 // Ver.: since se-1.2a-07-5356-19 - -// Client to server -#define ZCL_SELECT_AVAILABLE_EMERGENCY_CREDIT_COMMAND_ID 0x00 // Ver.: always -#define ZCL_CHANGE_DEBT_COMMAND_ID 0x02 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_EMERGENCY_CREDIT_SETUP_COMMAND_ID 0x03 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CONSUMER_TOP_UP_COMMAND_ID 0x04 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CREDIT_ADJUSTMENT_COMMAND_ID 0x05 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CHANGE_PAYMENT_MODE_COMMAND_ID 0x06 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_GET_PREPAY_SNAPSHOT_COMMAND_ID 0x07 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_GET_TOP_UP_LOG_COMMAND_ID 0x08 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_SET_LOW_CREDIT_WARNING_LEVEL_COMMAND_ID 0x09 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_GET_DEBT_REPAYMENT_LOG_COMMAND_ID 0x0A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_SET_MAXIMUM_CREDIT_LIMIT_COMMAND_ID 0x0B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_SET_OVERALL_DEBT_CAP_COMMAND_ID 0x0C // Ver.: since se-1.2a-07-5356-19 - -// Command types for cluster: Energy Management -// Cluster specification level: se-1.2b-15-0131-02 - -// Server to client -#define ZCL_REPORT_EVENT_STATUS_COMMAND_ID 0x00 // Ver.: always - -// Client to server -#define ZCL_MANAGE_EVENT_COMMAND_ID 0x00 // Ver.: always - -// Command types for cluster: Calendar -// Cluster specification level: se-1.2b-15-0131-02 - -// Server to client -#define ZCL_PUBLISH_CALENDAR_COMMAND_ID 0x00 // Ver.: always -#define ZCL_PUBLISH_DAY_PROFILE_COMMAND_ID 0x01 // Ver.: always -#define ZCL_PUBLISH_WEEK_PROFILE_COMMAND_ID 0x02 // Ver.: always -#define ZCL_PUBLISH_SEASONS_COMMAND_ID 0x03 // Ver.: always -#define ZCL_PUBLISH_SPECIAL_DAYS_COMMAND_ID 0x04 // Ver.: always -#define ZCL_CANCEL_CALENDAR_COMMAND_ID 0x05 // Ver.: always - -// Client to server -#define ZCL_GET_CALENDAR_COMMAND_ID 0x00 // Ver.: always -#define ZCL_GET_DAY_PROFILES_COMMAND_ID 0x01 // Ver.: always -#define ZCL_GET_WEEK_PROFILES_COMMAND_ID 0x02 // Ver.: always -#define ZCL_GET_SEASONS_COMMAND_ID 0x03 // Ver.: always -#define ZCL_GET_SPECIAL_DAYS_COMMAND_ID 0x04 // Ver.: always -#define ZCL_GET_CALENDAR_CANCELLATION_COMMAND_ID 0x05 // Ver.: always - -// Command types for cluster: Device Management -// Cluster specification level: se-1.2b-15-0131-02 - -// Server to client -#define ZCL_PUBLISH_CHANGE_OF_TENANCY_COMMAND_ID 0x00 // Ver.: always -#define ZCL_PUBLISH_CHANGE_OF_SUPPLIER_COMMAND_ID 0x01 // Ver.: always -#define ZCL_REQUEST_NEW_PASSWORD_RESPONSE_COMMAND_ID 0x02 // Ver.: always -#define ZCL_UPDATE_SITE_ID_COMMAND_ID 0x03 // Ver.: always -#define ZCL_SET_EVENT_CONFIGURATION_COMMAND_ID 0x04 // Ver.: always -#define ZCL_GET_EVENT_CONFIGURATION_COMMAND_ID 0x05 // Ver.: always -#define ZCL_UPDATE_C_I_N_COMMAND_ID 0x06 // Ver.: always - -// Client to server -#define ZCL_GET_CHANGE_OF_TENANCY_COMMAND_ID 0x00 // Ver.: always -#define ZCL_GET_CHANGE_OF_SUPPLIER_COMMAND_ID 0x01 // Ver.: always -#define ZCL_REQUEST_NEW_PASSWORD_COMMAND_ID 0x02 // Ver.: always -#define ZCL_GET_SITE_ID_COMMAND_ID 0x03 // Ver.: always -#define ZCL_REPORT_EVENT_CONFIGURATION_COMMAND_ID 0x04 // Ver.: always -#define ZCL_GET_C_I_N_COMMAND_ID 0x05 // Ver.: always - -// Command types for cluster: Events -// Cluster specification level: se-1.2b-15-0131-02 - -// Server to client -#define ZCL_PUBLISH_EVENT_COMMAND_ID 0x00 // Ver.: always -#define ZCL_PUBLISH_EVENT_LOG_COMMAND_ID 0x01 // Ver.: always -#define ZCL_CLEAR_EVENT_LOG_RESPONSE_COMMAND_ID 0x02 // Ver.: always - -// Client to server -#define ZCL_GET_EVENT_LOG_COMMAND_ID 0x00 // Ver.: always -#define ZCL_CLEAR_EVENT_LOG_REQUEST_COMMAND_ID 0x01 // Ver.: always - -// Command types for cluster: MDU Pairing -// Cluster specification level: se-1.2b-15-0131-02 - -// Server to client -#define ZCL_PAIRING_RESPONSE_COMMAND_ID 0x00 // Ver.: always - -// Client to server -#define ZCL_PAIRING_REQUEST_COMMAND_ID 0x00 // Ver.: always - -// Command types for cluster: Sub-GHz -// Cluster specification level: se-1.2b-15-0131-02 - -// Server to client -#define ZCL_SUSPEND_ZCL_MESSAGES_COMMAND_ID 0x00 // Ver.: always - -// Client to server -#define ZCL_GET_SUSPEND_ZCL_MESSAGES_STATUS_COMMAND_ID 0x00 // Ver.: always - -// Command types for cluster: Key Establishment -// Cluster specification level: zcl-7.0-07-5123-07 - -// Server to client -#define ZCL_INITIATE_KEY_ESTABLISHMENT_RESPONSE_COMMAND_ID 0x00 // Ver.: always -#define ZCL_EPHEMERAL_DATA_RESPONSE_COMMAND_ID 0x01 // Ver.: always -#define ZCL_CONFIRM_KEY_DATA_RESPONSE_COMMAND_ID 0x02 // Ver.: always - -// Client to server -#define ZCL_INITIATE_KEY_ESTABLISHMENT_REQUEST_COMMAND_ID 0x00 // Ver.: always -#define ZCL_EPHEMERAL_DATA_REQUEST_COMMAND_ID 0x01 // Ver.: always -#define ZCL_CONFIRM_KEY_DATA_REQUEST_COMMAND_ID 0x02 // Ver.: always - -// Either direction -#define ZCL_TERMINATE_KEY_ESTABLISHMENT_COMMAND_ID 0x03 // Ver.: always - -// Command types for cluster: Information -// Cluster specification level: ta-1.0-07-5307-07 - -// Server to client -#define ZCL_REQUEST_INFORMATION_RESPONSE_COMMAND_ID 0x00 // Ver.: always -#define ZCL_PUSH_INFORMATION_COMMAND_ID 0x01 // Ver.: always -#define ZCL_SEND_PREFERENCE_RESPONSE_COMMAND_ID 0x02 // Ver.: always -#define ZCL_SERVER_REQUEST_PREFERENCE_COMMAND_ID 0x03 // Ver.: always -#define ZCL_REQUEST_PREFERENCE_CONFIRMATION_COMMAND_ID 0x04 // Ver.: always -#define ZCL_UPDATE_RESPONSE_COMMAND_ID 0x05 // Ver.: always -#define ZCL_DELETE_RESPONSE_COMMAND_ID 0x06 // Ver.: always - -// Client to server -#define ZCL_REQUEST_INFORMATION_COMMAND_ID 0x00 // Ver.: always -#define ZCL_PUSH_INFORMATION_RESPONSE_COMMAND_ID 0x01 // Ver.: always -#define ZCL_SEND_PREFERENCE_COMMAND_ID 0x02 // Ver.: always -#define ZCL_REQUEST_PREFERENCE_RESPONSE_COMMAND_ID 0x03 // Ver.: always -#define ZCL_UPDATE_COMMAND_ID 0x04 // Ver.: always -#define ZCL_DELETE_COMMAND_ID 0x05 // Ver.: always -#define ZCL_CONFIGURE_NODE_DESCRIPTION_COMMAND_ID 0x06 // Ver.: always -#define ZCL_CONFIGURE_DELIVERY_ENABLE_COMMAND_ID 0x07 // Ver.: always -#define ZCL_CONFIGURE_PUSH_INFORMATION_TIMER_COMMAND_ID 0x08 // Ver.: always -#define ZCL_CONFIGURE_SET_ROOT_ID_COMMAND_ID 0x09 // Ver.: always - -// Command types for cluster: Data Sharing -// Cluster specification level: ta-1.0-07-5307-07 - -// Server to client -#define ZCL_WRITE_FILE_REQUEST_COMMAND_ID 0x00 // Ver.: always -#define ZCL_MODIFY_FILE_REQUEST_COMMAND_ID 0x01 // Ver.: always -#define ZCL_MODIFY_RECORD_REQUEST_COMMAND_ID 0x02 // Ver.: always -#define ZCL_FILE_TRANSMISSION_COMMAND_ID 0x03 // Ver.: always -#define ZCL_RECORD_TRANSMISSION_COMMAND_ID 0x04 // Ver.: always - -// Client to server -#define ZCL_READ_FILE_REQUEST_COMMAND_ID 0x00 // Ver.: always -#define ZCL_READ_RECORD_REQUEST_COMMAND_ID 0x01 // Ver.: always -#define ZCL_WRITE_FILE_RESPONSE_COMMAND_ID 0x02 // Ver.: always - -// Command types for cluster: Gaming -// Cluster specification level: ta-1.0-07-5307-07 - -// Server to client -#define ZCL_GAME_ANNOUNCEMENT_COMMAND_ID 0x00 // Ver.: always -#define ZCL_GENERAL_RESPONSE_COMMAND_ID 0x01 // Ver.: always - -// Client to server -#define ZCL_SEARCH_GAME_COMMAND_ID 0x00 // Ver.: always -#define ZCL_JOIN_GAME_COMMAND_ID 0x01 // Ver.: always -#define ZCL_START_GAME_COMMAND_ID 0x02 // Ver.: always -#define ZCL_PAUSE_GAME_COMMAND_ID 0x03 // Ver.: always -#define ZCL_RESUME_GAME_COMMAND_ID 0x04 // Ver.: always -#define ZCL_QUIT_GAME_COMMAND_ID 0x05 // Ver.: always -#define ZCL_END_GAME_COMMAND_ID 0x06 // Ver.: always -#define ZCL_START_OVER_COMMAND_ID 0x07 // Ver.: always -#define ZCL_ACTION_CONTROL_COMMAND_ID 0x08 // Ver.: always -#define ZCL_DOWNLOAD_GAME_COMMAND_ID 0x09 // Ver.: always - -// Command types for cluster: Data Rate Control -// Cluster specification level: ta-1.0-07-5307-07 - -// Server to client -#define ZCL_DATA_RATE_CONTROL_COMMAND_ID 0x00 // Ver.: always - -// Client to server -#define ZCL_PATH_CREATION_COMMAND_ID 0x00 // Ver.: always -#define ZCL_DATA_RATE_NOTIFICATION_COMMAND_ID 0x01 // Ver.: always -#define ZCL_PATH_DELETION_COMMAND_ID 0x02 // Ver.: always - -// Command types for cluster: Voice over ZigBee -// Cluster specification level: ta-1.0-07-5307-07 - -// Server to client -#define ZCL_ESTABLISHMENT_RESPONSE_COMMAND_ID 0x00 // Ver.: always -#define ZCL_VOICE_TRANSMISSION_RESPONSE_COMMAND_ID 0x01 // Ver.: always -#define ZCL_CONTROL_COMMAND_ID 0x02 // Ver.: always - -// Client to server -#define ZCL_ESTABLISHMENT_REQUEST_COMMAND_ID 0x00 // Ver.: always -#define ZCL_VOICE_TRANSMISSION_COMMAND_ID 0x01 // Ver.: always -#define ZCL_VOICE_TRANSMISSION_COMPLETION_COMMAND_ID 0x02 // Ver.: always -#define ZCL_CONTROL_RESPONSE_COMMAND_ID 0x03 // Ver.: always - -// Command types for cluster: Chatting -// Cluster specification level: ta-1.0-07-5307-07 - -// Server to client -#define ZCL_START_CHAT_RESPONSE_COMMAND_ID 0x00 // Ver.: always -#define ZCL_JOIN_CHAT_RESPONSE_COMMAND_ID 0x01 // Ver.: always -#define ZCL_USER_LEFT_COMMAND_ID 0x02 // Ver.: always -#define ZCL_USER_JOINED_COMMAND_ID 0x03 // Ver.: always -#define ZCL_SEARCH_CHAT_RESPONSE_COMMAND_ID 0x04 // Ver.: always -#define ZCL_SWITCH_CHAIRMAN_REQUEST_COMMAND_ID 0x05 // Ver.: always -#define ZCL_SWITCH_CHAIRMAN_CONFIRM_COMMAND_ID 0x06 // Ver.: always -#define ZCL_SWITCH_CHAIRMAN_NOTIFICATION_COMMAND_ID 0x07 // Ver.: always -#define ZCL_GET_NODE_INFORMATION_RESPONSE_COMMAND_ID 0x08 // Ver.: always - -// Client to server -#define ZCL_JOIN_CHAT_REQUEST_COMMAND_ID 0x00 // Ver.: always -#define ZCL_LEAVE_CHAT_REQUEST_COMMAND_ID 0x01 // Ver.: always -#define ZCL_SEARCH_CHAT_REQUEST_COMMAND_ID 0x02 // Ver.: always -#define ZCL_SWITCH_CHAIRMAN_RESPONSE_COMMAND_ID 0x03 // Ver.: always -#define ZCL_START_CHAT_REQUEST_COMMAND_ID 0x04 // Ver.: always -#define ZCL_CHAT_MESSAGE_COMMAND_ID 0x05 // Ver.: always -#define ZCL_GET_NODE_INFORMATION_REQUEST_COMMAND_ID 0x06 // Ver.: always - -// Command types for cluster: Payment -// Cluster specification level: ta-1.0-07-5307-07 - -// Server to client -#define ZCL_BUY_CONFIRM_COMMAND_ID 0x00 // Ver.: always -#define ZCL_RECEIPT_DELIVERY_COMMAND_ID 0x01 // Ver.: always -#define ZCL_TRANSACTION_END_COMMAND_ID 0x02 // Ver.: always - -// Client to server -#define ZCL_BUY_REQUEST_COMMAND_ID 0x00 // Ver.: always -#define ZCL_ACCEPT_PAYMENT_COMMAND_ID 0x01 // Ver.: always -#define ZCL_PAYMENT_CONFIRM_COMMAND_ID 0x02 // Ver.: always - -// Command types for cluster: Billing -// Cluster specification level: ta-1.0-07-5307-07 - -// Server to client -#define ZCL_CHECK_BILL_STATUS_COMMAND_ID 0x00 // Ver.: always -#define ZCL_SEND_BILL_RECORD_COMMAND_ID 0x01 // Ver.: always - -// Client to server -#define ZCL_SUBSCRIBE_COMMAND_ID 0x00 // Ver.: always -#define ZCL_UNSUBSCRIBE_COMMAND_ID 0x01 // Ver.: always -#define ZCL_START_BILLING_SESSION_COMMAND_ID 0x02 // Ver.: always -#define ZCL_STOP_BILLING_SESSION_COMMAND_ID 0x03 // Ver.: always -#define ZCL_BILL_STATUS_NOTIFICATION_COMMAND_ID 0x04 // Ver.: always -#define ZCL_SESSION_KEEP_ALIVE_COMMAND_ID 0x05 // Ver.: always - -// Command types for cluster: Appliance Events and Alert -// Cluster specification level: UNKNOWN - -// Server to client -#define ZCL_GET_ALERTS_RESPONSE_COMMAND_ID 0x00 // Ver.: always -#define ZCL_ALERTS_NOTIFICATION_COMMAND_ID 0x01 // Ver.: always -#define ZCL_EVENTS_NOTIFICATION_COMMAND_ID 0x02 // Ver.: always - -// Client to server -#define ZCL_GET_ALERTS_COMMAND_ID 0x00 // Ver.: always - -// Command types for cluster: Appliance Statistics -// Cluster specification level: UNKNOWN - -// Server to client -#define ZCL_LOG_NOTIFICATION_COMMAND_ID 0x00 // Ver.: always -#define ZCL_LOG_RESPONSE_COMMAND_ID 0x01 // Ver.: always -#define ZCL_LOG_QUEUE_RESPONSE_COMMAND_ID 0x02 // Ver.: always -#define ZCL_STATISTICS_AVAILABLE_COMMAND_ID 0x03 // Ver.: always - -// Client to server -#define ZCL_LOG_REQUEST_COMMAND_ID 0x00 // Ver.: always -#define ZCL_LOG_QUEUE_REQUEST_COMMAND_ID 0x01 // Ver.: always - -// Command types for cluster: Electrical Measurement -// Cluster specification level: UNKNOWN - -// Server to client -#define ZCL_GET_PROFILE_INFO_RESPONSE_COMMAND_COMMAND_ID 0x00 // Ver.: always -#define ZCL_GET_MEASUREMENT_PROFILE_RESPONSE_COMMAND_COMMAND_ID 0x01 // Ver.: always - -// Client to server -#define ZCL_GET_PROFILE_INFO_COMMAND_COMMAND_ID 0x00 // Ver.: always -#define ZCL_GET_MEASUREMENT_PROFILE_COMMAND_COMMAND_ID 0x01 // Ver.: always - -// Command types for cluster: ZLL Commissioning -// Cluster specification level: zll-1.0-11-0037-10 - -// Server to client -#define ZCL_SCAN_RESPONSE_COMMAND_ID 0x01 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_DEVICE_INFORMATION_RESPONSE_COMMAND_ID 0x03 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_NETWORK_START_RESPONSE_COMMAND_ID 0x11 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_NETWORK_JOIN_ROUTER_RESPONSE_COMMAND_ID 0x13 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_NETWORK_JOIN_END_DEVICE_RESPONSE_COMMAND_ID 0x15 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_ENDPOINT_INFORMATION_COMMAND_ID 0x40 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_GET_GROUP_IDENTIFIERS_RESPONSE_COMMAND_ID 0x41 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_GET_ENDPOINT_LIST_RESPONSE_COMMAND_ID 0x42 // Ver.: since zll-1.0-11-0037-10 - -// Client to server -#define ZCL_SCAN_REQUEST_COMMAND_ID 0x00 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_DEVICE_INFORMATION_REQUEST_COMMAND_ID 0x02 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_IDENTIFY_REQUEST_COMMAND_ID 0x06 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_RESET_TO_FACTORY_NEW_REQUEST_COMMAND_ID 0x07 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_NETWORK_START_REQUEST_COMMAND_ID 0x10 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_NETWORK_JOIN_ROUTER_REQUEST_COMMAND_ID 0x12 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_NETWORK_JOIN_END_DEVICE_REQUEST_COMMAND_ID 0x14 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_NETWORK_UPDATE_REQUEST_COMMAND_ID 0x16 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_GET_GROUP_IDENTIFIERS_REQUEST_COMMAND_ID 0x41 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_GET_ENDPOINT_LIST_REQUEST_COMMAND_ID 0x42 // Ver.: since zll-1.0-11-0037-10 - -// Command types for cluster: Sample Mfg Specific Cluster -// Cluster specification level: UNKNOWN - -// Client to server -#define ZCL_COMMAND_ONE_COMMAND_ID 0x00 // Ver.: always mfgCode: 0x1002 - -// Command types for cluster: Sample Mfg Specific Cluster 2 -// Cluster specification level: UNKNOWN - -// Client to server -#define ZCL_COMMAND_TWO_COMMAND_ID 0x00 // Ver.: always mfgCode: 0x1049 - -// Command types for cluster: Configuration Cluster -// Cluster specification level: UNKNOWN - -// Server to client -#define ZCL_RETURN_TOKEN_COMMAND_ID 0x00 // Ver.: always mfgCode: 0x1002 - -// Client to server -#define ZCL_SET_TOKEN_COMMAND_ID 0x00 // Ver.: always mfgCode: 0x1002 -#define ZCL_LOCK_TOKENS_COMMAND_ID 0x01 // Ver.: always mfgCode: 0x1002 -#define ZCL_READ_TOKENS_COMMAND_ID 0x02 // Ver.: always mfgCode: 0x1002 -#define ZCL_UNLOCK_TOKENS_COMMAND_ID 0x03 // Ver.: always mfgCode: 0x1002 - -// Command types for cluster: MFGLIB Cluster -// Cluster specification level: UNKNOWN - -// Client to server -#define ZCL_STREAM_COMMAND_ID 0x00 // Ver.: always mfgCode: 0x1002 -#define ZCL_TONE_COMMAND_ID 0x01 // Ver.: always mfgCode: 0x1002 -#define ZCL_RX_MODE_COMMAND_ID 0x02 // Ver.: always mfgCode: 0x1002 - -// Command types for cluster: SL Works With All Hubs -// Cluster specification level: UNKNOWN - -// Server to client -#define ZCL_APS_LINK_KEY_AUTHORIZATION_QUERY_RESPONSE_COMMAND_ID 0x00 // Ver.: always mfgCode: 0x1217 -#define ZCL_POWERING_OFF_NOTIFICATION_COMMAND_ID 0x01 // Ver.: always mfgCode: 0x1217 -#define ZCL_POWERING_ON_NOTIFICATION_COMMAND_ID 0x02 // Ver.: always mfgCode: 0x1217 -#define ZCL_SHORT_ADDRESS_CHANGE_COMMAND_ID 0x03 // Ver.: always mfgCode: 0x1217 -#define ZCL_APS_ACK_ENABLEMENT_QUERY_RESPONSE_COMMAND_ID 0x04 // Ver.: always mfgCode: 0x1217 -#define ZCL_POWER_DESCRIPTOR_CHANGE_COMMAND_ID 0x05 // Ver.: always mfgCode: 0x1217 -#define ZCL_NEW_DEBUG_REPORT_NOTIFICATION_COMMAND_ID 0x06 // Ver.: always mfgCode: 0x1217 -#define ZCL_DEBUG_REPORT_QUERY_RESPONSE_COMMAND_ID 0x07 // Ver.: always mfgCode: 0x1217 -#define ZCL_TRUST_CENTER_FOR_CLUSTER_SERVER_QUERY_RESPONSE_COMMAND_ID 0x08 // Ver.: always mfgCode: 0x1217 -#define ZCL_SURVEY_BEACONS_RESPONSE_COMMAND_ID 0x09 // Ver.: always mfgCode: 0x1217 -#define ZCL_USE_TRUST_CENTER_FOR_CLUSTER_SERVER_RESPONSE_COMMAND_ID 0x9E // Ver.: always mfgCode: 0x1217 - -// Client to server -#define ZCL_ENABLE_APS_LINK_KEY_AUTHORIZATION_COMMAND_ID 0x00 // Ver.: always mfgCode: 0x1217 -#define ZCL_DISABLE_APS_LINK_KEY_AUTHORIZATION_COMMAND_ID 0x01 // Ver.: always mfgCode: 0x1217 -#define ZCL_APS_LINK_KEY_AUTHORIZATION_QUERY_COMMAND_ID 0x02 // Ver.: always mfgCode: 0x1217 -#define ZCL_REQUEST_NEW_APS_LINK_KEY_COMMAND_ID 0x03 // Ver.: always mfgCode: 0x1217 -#define ZCL_ENABLE_WWAH_APP_EVENT_RETRY_ALGORITHM_COMMAND_ID 0x04 // Ver.: always mfgCode: 0x1217 -#define ZCL_DISABLE_WWAH_APP_EVENT_RETRY_ALGORITHM_COMMAND_ID 0x05 // Ver.: always mfgCode: 0x1217 -#define ZCL_REQUEST_TIME_COMMAND_ID 0x06 // Ver.: always mfgCode: 0x1217 -#define ZCL_ENABLE_WWAH_REJOIN_ALGORITHM_COMMAND_ID 0x07 // Ver.: always mfgCode: 0x1217 -#define ZCL_DISABLE_WWAH_REJOIN_ALGORITHM_COMMAND_ID 0x08 // Ver.: always mfgCode: 0x1217 -#define ZCL_SET_IAS_ZONE_ENROLLMENT_METHOD_COMMAND_ID 0x09 // Ver.: always mfgCode: 0x1217 -#define ZCL_CLEAR_BINDING_TABLE_COMMAND_ID 0x0A // Ver.: always mfgCode: 0x1217 -#define ZCL_ENABLE_PERIODIC_ROUTER_CHECK_INS_COMMAND_ID 0x0B // Ver.: always mfgCode: 0x1217 -#define ZCL_DISABLE_PERIODIC_ROUTER_CHECK_INS_COMMAND_ID 0x0C // Ver.: always mfgCode: 0x1217 -#define ZCL_SET_MAC_POLL_FAILURE_WAIT_TIME_COMMAND_ID 0x0D // Ver.: always mfgCode: 0x1217 -#define ZCL_SET_PENDING_NETWORK_UPDATE_COMMAND_ID 0x0E // Ver.: always mfgCode: 0x1217 -#define ZCL_REQUIRE_APS_ACKS_ON_UNICASTS_COMMAND_ID 0x0F // Ver.: always mfgCode: 0x1217 -#define ZCL_REMOVE_APS_ACKS_ON_UNICASTS_REQUIREMENT_COMMAND_ID 0x10 // Ver.: always mfgCode: 0x1217 -#define ZCL_APS_ACK_REQUIREMENT_QUERY_COMMAND_ID 0x11 // Ver.: always mfgCode: 0x1217 -#define ZCL_DEBUG_REPORT_QUERY_COMMAND_ID 0x12 // Ver.: always mfgCode: 0x1217 -#define ZCL_SURVEY_BEACONS_COMMAND_ID 0x13 // Ver.: always mfgCode: 0x1217 -#define ZCL_DISABLE_OTA_DOWNGRADES_COMMAND_ID 0x14 // Ver.: always mfgCode: 0x1217 -#define ZCL_DISABLE_MGMT_LEAVE_WITHOUT_REJOIN_COMMAND_ID 0x15 // Ver.: always mfgCode: 0x1217 -#define ZCL_DISABLE_TOUCHLINK_INTERPAN_MESSAGE_SUPPORT_COMMAND_ID 0x16 // Ver.: always mfgCode: 0x1217 -#define ZCL_ENABLE_WWAH_PARENT_CLASSIFICATION_COMMAND_ID 0x17 // Ver.: always mfgCode: 0x1217 -#define ZCL_DISABLE_WWAH_PARENT_CLASSIFICATION_COMMAND_ID 0x18 // Ver.: always mfgCode: 0x1217 -#define ZCL_ENABLE_TC_SECURITY_ON_NTWK_KEY_ROTATION_COMMAND_ID 0x19 // Ver.: always mfgCode: 0x1217 -#define ZCL_ENABLE_WWAH_BAD_PARENT_RECOVERY_COMMAND_ID 0x1A // Ver.: always mfgCode: 0x1217 -#define ZCL_DISABLE_WWAH_BAD_PARENT_RECOVERY_COMMAND_ID 0x1B // Ver.: always mfgCode: 0x1217 -#define ZCL_ENABLE_CONFIGURATION_MODE_COMMAND_ID 0x1C // Ver.: always mfgCode: 0x1217 -#define ZCL_DISABLE_CONFIGURATION_MODE_COMMAND_ID 0x1D // Ver.: always mfgCode: 0x1217 -#define ZCL_USE_TRUST_CENTER_FOR_CLUSTER_SERVER_COMMAND_ID 0x1E // Ver.: always mfgCode: 0x1217 -#define ZCL_TRUST_CENTER_FOR_CLUSTER_SERVER_QUERY_COMMAND_ID 0x1F // Ver.: always mfgCode: 0x1217 - -#endif // SILABS_EMBER_AF_COMMAND_ID diff --git a/examples/lock-app/efr32/src/gen/endpoint_config.h b/examples/lock-app/efr32/src/gen/endpoint_config.h deleted file mode 100644 index 70c37bde9d2ec9..00000000000000 --- a/examples/lock-app/efr32/src/gen/endpoint_config.h +++ /dev/null @@ -1,160 +0,0 @@ -/** - * - * 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 SILABS_AF_ENDPOINT_CONFIG -#define SILABS_AF_ENDPOINT_CONFIG - -// Fixed number of defined endpoints -#define FIXED_ENDPOINT_COUNT (1) - -// Generated attributes -#define GENERATED_ATTRIBUTES \ - { \ - { 0x0000, ZCL_BOOLEAN_ATTRIBUTE_TYPE, 1, (0x00), { (uint8_t *) 0x00 } }, /* 0 / On/off / on/off*/ \ - { 0xFFFD, ZCL_INT16U_ATTRIBUTE_TYPE, 2, (0x00), { (uint8_t *) 0x0001 } }, /* 1 / On/off / cluster revision*/ \ - } - -// Cluster function static arrays -#define GENERATED_FUNCTION_ARRAYS - -// Clusters definitions -#define GENERATED_CLUSTERS \ - { \ - { \ - 0x0006, (EmberAfAttributeMetadata *) &(generatedAttributes[0]), 2, 3, (CLUSTER_MASK_SERVER), NULL, \ - }, \ - } - -// Endpoint types -#define GENERATED_ENDPOINT_TYPES \ - { \ - { (EmberAfCluster *) &(generatedClusters[0]), 1, 3 }, \ - } - -// Cluster manufacturer codes -#define GENERATED_CLUSTER_MANUFACTURER_CODES \ - { \ - { \ - 0x00, 0x00 \ - } \ - } -#define GENERATED_CLUSTER_MANUFACTURER_CODE_COUNT (0) - -// Attribute manufacturer codes -#define GENERATED_ATTRIBUTE_MANUFACTURER_CODES \ - { \ - { \ - 0x00, 0x00 \ - } \ - } -#define GENERATED_ATTRIBUTE_MANUFACTURER_CODE_COUNT (0) - -// Largest attribute size is needed for various buffers -#define ATTRIBUTE_LARGEST (2) -// Total size of singleton attributes -#define ATTRIBUTE_SINGLETONS_SIZE (0) - -// Total size of attribute storage -#define ATTRIBUTE_MAX_SIZE 3 - -// Array of endpoints that are supported -#define FIXED_ENDPOINT_ARRAY \ - { \ - 1 \ - } - -// Array of profile ids -#define FIXED_PROFILE_IDS \ - { \ - 65535 \ - } - -// Array of device ids -#define FIXED_DEVICE_IDS \ - { \ - 65535 \ - } - -// Array of device versions -#define FIXED_DEVICE_VERSIONS \ - { \ - 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 \ - } - -#define EMBER_AF_GENERATED_PLUGIN_STACK_STATUS_FUNCTION_DECLARATIONS \ - void emberAfPluginNetworkSteeringStackStatusCallback(EmberStatus status); - -#define EMBER_AF_GENERATED_PLUGIN_STACK_STATUS_FUNCTION_CALLS emberAfPluginNetworkSteeringStackStatusCallback(status); - -// Generated data for the command discovery -#define GENERATED_COMMANDS \ - { \ - { 0x0006, 0x00, COMMAND_MASK_INCOMING_SERVER }, /* On/off / Off */ \ - { 0x0006, 0x01, COMMAND_MASK_INCOMING_SERVER }, /* On/off / On */ \ - { 0x0006, 0x02, COMMAND_MASK_INCOMING_SERVER }, /* On/off / Toggle */ \ - } -#define EMBER_AF_GENERATED_COMMAND_COUNT (3) - -// Command manufacturer codes -#define GENERATED_COMMAND_MANUFACTURER_CODES \ - { \ - { \ - 0x00, 0x00 \ - } \ - } -#define GENERATED_COMMAND_MANUFACTURER_CODE_COUNT (0) - -// Generated reporting configuration defaults -#define EMBER_AF_GENERATED_REPORTING_CONFIG_DEFAULTS \ - { \ - { EMBER_ZCL_REPORTING_DIRECTION_REPORTED, 1, 0x0006, 0x0000, CLUSTER_MASK_SERVER, 0x0000, 1, 65534, 0 }, \ - } -#define EMBER_AF_GENERATED_REPORTING_CONFIG_DEFAULTS_TABLE_SIZE (1) -#endif // SILABS_AF_ENDPOINT_CONFIG diff --git a/examples/lock-app/efr32/src/gen/enums.h b/examples/lock-app/efr32/src/gen/enums.h deleted file mode 100644 index c1881b3732b9e3..00000000000000 --- a/examples/lock-app/efr32/src/gen/enums.h +++ /dev/null @@ -1,3570 +0,0 @@ -/** - * - * 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 SILABS_EMBER_AF_ENUMS -#define SILABS_EMBER_AF_ENUMS - -/** - * @addtogroup enums Application Framework Enums Reference - * This header provides Application Framework enum definitions. - * @{ - */ -/** @name Enums */ -// @{ - -typedef enum -{ - EMBER_ZCL_11073_CONNECT_REQUEST_CONNECT_CONTROL_PREEMPTIBLE = 0x01, -} EmberAf11073ConnectRequestConnectControl; - -typedef enum -{ - EMBER_ZCL_11073_TUNNEL_CONNECTION_STATUS_DISCONNECTED = 0x00, - EMBER_ZCL_11073_TUNNEL_CONNECTION_STATUS_CONNECTED = 0x01, - EMBER_ZCL_11073_TUNNEL_CONNECTION_STATUS_NOT_AUTHORIZED = 0x02, - EMBER_ZCL_11073_TUNNEL_CONNECTION_STATUS_RECONNECT_REQUEST = 0x03, - EMBER_ZCL_11073_TUNNEL_CONNECTION_STATUS_ALREADY_CONNECTED = 0x04, -} EmberAf11073TunnelConnectionStatus; - -typedef enum -{ - EMBER_ZCL_ALERT_COUNT_TYPE_UNSTRUCTURED = 0x00, -} EmberAfAlertCountType; - -typedef enum -{ - EMBER_ZCL_ALERT_STRUCTURE_CATEGORY_WARNING = 0x0100, - EMBER_ZCL_ALERT_STRUCTURE_CATEGORY_DANGER = 0x0200, - EMBER_ZCL_ALERT_STRUCTURE_CATEGORY_FAILURE = 0x0300, -} EmberAfAlertStructureCategory; - -typedef enum -{ - EMBER_ZCL_ALERT_STRUCTURE_PRESENCE_RECOVERY_RECOVERY = 0x0000, - EMBER_ZCL_ALERT_STRUCTURE_PRESENCE_RECOVERY_PRESENCE = 0x1000, -} EmberAfAlertStructurePresenceRecovery; - -typedef enum -{ - EMBER_ZCL_ALTERNATE_COST_UNIT_KG_OF_CO2_PER_UNIT_OF_MEASURE = 0x02, -} EmberAfAlternateCostUnit; - -typedef enum -{ - EMBER_ZCL_AMI_CRITICALITY_LEVEL_RESERVED = 0x00, - EMBER_ZCL_AMI_CRITICALITY_LEVEL_GREEN = 0x01, - EMBER_ZCL_AMI_CRITICALITY_LEVEL_1 = 0x02, - EMBER_ZCL_AMI_CRITICALITY_LEVEL_2 = 0x03, - EMBER_ZCL_AMI_CRITICALITY_LEVEL_3 = 0x04, - EMBER_ZCL_AMI_CRITICALITY_LEVEL_4 = 0x05, - EMBER_ZCL_AMI_CRITICALITY_LEVEL_5 = 0x06, - EMBER_ZCL_AMI_CRITICALITY_LEVEL_EMERGENCY = 0x07, - EMBER_ZCL_AMI_CRITICALITY_LEVEL_PLANNED_OUTAGE = 0x08, - EMBER_ZCL_AMI_CRITICALITY_LEVEL_SERVICE_DISCONNECT = 0x09, - EMBER_ZCL_AMI_CRITICALITY_LEVEL_UTILITY_DEFINED1 = 0x0A, - EMBER_ZCL_AMI_CRITICALITY_LEVEL_UTILITY_DEFINED2 = 0x0B, - EMBER_ZCL_AMI_CRITICALITY_LEVEL_UTILITY_DEFINED3 = 0x0C, - EMBER_ZCL_AMI_CRITICALITY_LEVEL_UTILITY_DEFINED4 = 0x0D, - EMBER_ZCL_AMI_CRITICALITY_LEVEL_UTILITY_DEFINED5 = 0x0E, - EMBER_ZCL_AMI_CRITICALITY_LEVEL_UTILITY_DEFINED6 = 0x0F, -} EmberAfAmiCriticalityLevel; - -typedef enum -{ - EMBER_ZCL_AMI_EVENT_STATUS_LOAD_CONTROL_EVENT_COMMAND_RX = 0x01, - EMBER_ZCL_AMI_EVENT_STATUS_EVENT_STARTED = 0x02, - EMBER_ZCL_AMI_EVENT_STATUS_EVENT_COMPLETED = 0x03, - EMBER_ZCL_AMI_EVENT_STATUS_USER_HAS_CHOOSE_TO_OPT_OUT = 0x04, - EMBER_ZCL_AMI_EVENT_STATUS_USER_HAS_CHOOSE_TO_OPT_IN = 0x05, - EMBER_ZCL_AMI_EVENT_STATUS_THE_EVENT_HAS_BEEN_CANCELED = 0x06, - EMBER_ZCL_AMI_EVENT_STATUS_THE_EVENT_HAS_BEEN_SUPERSEDED = 0x07, - EMBER_ZCL_AMI_EVENT_STATUS_EVENT_PARTIALLY_COMPLETED_WITH_USER_OPT_OUT = 0x08, - EMBER_ZCL_AMI_EVENT_STATUS_EVENT_PARTIALLY_COMPLETED_DUE_TO_USER_OPT_IN = 0x09, - EMBER_ZCL_AMI_EVENT_STATUS_EVENT_COMPLETED_NO_USER_PARTICIPATION_PREVIOUS_OPT_OUT = 0x0A, - EMBER_ZCL_AMI_EVENT_STATUS_INVALID_OPT_OUT = 0xF6, - EMBER_ZCL_AMI_EVENT_STATUS_EVENT_NOT_FOUND = 0xF7, - EMBER_ZCL_AMI_EVENT_STATUS_REJECTED_INVALID_CANCEL_COMMAND = 0xF8, - EMBER_ZCL_AMI_EVENT_STATUS_REJECTED_INVALID_CANCEL_COMMAND_INVALID_EFFECTIVE_TIME = 0xF9, - EMBER_ZCL_AMI_EVENT_STATUS_REJECTED_EVENT_EXPIRED = 0xFB, - EMBER_ZCL_AMI_EVENT_STATUS_REJECTED_INVALID_CANCEL_UNDEFINED_EVENT = 0xFD, - EMBER_ZCL_AMI_EVENT_STATUS_LOAD_CONTROL_EVENT_COMMAND_REJECTED = 0xFE, -} EmberAfAmiEventStatus; - -typedef enum -{ - EMBER_ZCL_AMI_GET_PROFILE_STATUS_SUCCESS = 0x00, - EMBER_ZCL_AMI_GET_PROFILE_STATUS_UNDEFINED_INTERVAL_CHANNEL_REQUESTED = 0x01, - EMBER_ZCL_AMI_GET_PROFILE_STATUS_INTERVAL_CHANNEL_NOT_SUPPORTED = 0x02, - EMBER_ZCL_AMI_GET_PROFILE_STATUS_INVALID_END_TIME = 0x03, - EMBER_ZCL_AMI_GET_PROFILE_STATUS_MORE_PERIODS_REQUESTED_THAN_CAN_BE_RETURNED = 0x04, - EMBER_ZCL_AMI_GET_PROFILE_STATUS_NO_INTERVALS_AVAILABLE_FOR_THE_REQUESTED_TIME = 0x05, -} EmberAfAmiGetProfileStatus; - -typedef enum -{ - EMBER_ZCL_AMI_INTERVAL_CHANNEL_CONSUMPTION_DELIVERED = 0x00, - EMBER_ZCL_AMI_INTERVAL_CHANNEL_CONSUMPTION_RECEIVED = 0x01, -} EmberAfAmiIntervalChannel; - -typedef enum -{ - EMBER_ZCL_AMI_INTERVAL_PERIOD_DAILY = 0x00, - EMBER_ZCL_AMI_INTERVAL_PERIOD_MINUTES60 = 0x01, - EMBER_ZCL_AMI_INTERVAL_PERIOD_MINUTES30 = 0x02, - EMBER_ZCL_AMI_INTERVAL_PERIOD_MINUTES15 = 0x03, - EMBER_ZCL_AMI_INTERVAL_PERIOD_MINUTES10 = 0x04, - EMBER_ZCL_AMI_INTERVAL_PERIOD_MINUTES7P5 = 0x05, - EMBER_ZCL_AMI_INTERVAL_PERIOD_MINUTES5 = 0x06, - EMBER_ZCL_AMI_INTERVAL_PERIOD_MINUTES2P5 = 0x07, -} EmberAfAmiIntervalPeriod; - -typedef enum -{ - EMBER_ZCL_AMI_KEY_ESTABLISHMENT_STATUS_SUCCESS = 0x00, - EMBER_ZCL_AMI_KEY_ESTABLISHMENT_STATUS_UNKNOWN_ISSUER = 0x01, - EMBER_ZCL_AMI_KEY_ESTABLISHMENT_STATUS_BAD_KEY_CONFIRM = 0x02, - EMBER_ZCL_AMI_KEY_ESTABLISHMENT_STATUS_BAD_MESSAGE = 0x03, - EMBER_ZCL_AMI_KEY_ESTABLISHMENT_STATUS_NO_RESOURCES = 0x04, - EMBER_ZCL_AMI_KEY_ESTABLISHMENT_STATUS_UNSUPPORTED_SUITE = 0x05, - EMBER_ZCL_AMI_KEY_ESTABLISHMENT_STATUS_INVALID_KEY_USAGE = 0x06, -} EmberAfAmiKeyEstablishmentStatus; - -typedef enum -{ - EMBER_ZCL_AMI_REGISTRATION_STATE_UNREGISTERED = 0x00, - EMBER_ZCL_AMI_REGISTRATION_STATE_JOINING_NETWORK = 0x01, - EMBER_ZCL_AMI_REGISTRATION_STATE_JOINED_NETWORK = 0x02, - EMBER_ZCL_AMI_REGISTRATION_STATE_SUBMITTED_REGISTRATION_REQUEST = 0x03, - EMBER_ZCL_AMI_REGISTRATION_STATE_REGISTRATION_REJECTED = 0x04, - EMBER_ZCL_AMI_REGISTRATION_STATE_REGISTERED = 0x05, - EMBER_ZCL_AMI_REGISTRATION_STATE_REGISTERATION_NOT_POSSIBLE = 0x06, -} EmberAfAmiRegistrationState; - -typedef enum -{ - EMBER_ZCL_AMI_UNIT_OF_MEASURE_KILO_WATT_HOURS = 0x00, - EMBER_ZCL_AMI_UNIT_OF_MEASURE_CUBIC_METER_PER_HOUR = 0x01, - EMBER_ZCL_AMI_UNIT_OF_MEASURE_CUBIC_FEET_PER_HOUR = 0x02, - EMBER_ZCL_AMI_UNIT_OF_MEASURE_CENTUM_CUBIC_FEET_PER_HOUR = 0x03, - EMBER_ZCL_AMI_UNIT_OF_MEASURE_US_GALLONS_PER_HOUR = 0x04, - EMBER_ZCL_AMI_UNIT_OF_MEASURE_IMPERIAL_GALLONS_PER_HOUR = 0x05, - EMBER_ZCL_AMI_UNIT_OF_MEASURE_BT_US_OR_BTU_PER_HOUR = 0x06, - EMBER_ZCL_AMI_UNIT_OF_MEASURE_LITERS_OR_LITERS_PER_HOUR = 0x07, - EMBER_ZCL_AMI_UNIT_OF_MEASURE_KPA_GAUGE = 0x08, - EMBER_ZCL_AMI_UNIT_OF_MEASURE_KPA_ABSOLUTE = 0x09, - EMBER_ZCL_AMI_UNIT_OF_MEASURE_MCF_OR_MCF_PER_SECOND = 0x0A, - EMBER_ZCL_AMI_UNIT_OF_MEASURE_UNITLESS = 0x0B, - EMBER_ZCL_AMI_UNIT_OF_MEASURE_MJ_OR_MJ_PER_SECOND = 0x0C, - EMBER_ZCL_AMI_UNIT_OF_MEASURE_K_VAR_OR_K_VAR_HOURS = 0x0D, - EMBER_ZCL_AMI_UNIT_OF_MEASURE_KILO_WATT_HOURS_BCD = 0x80, - EMBER_ZCL_AMI_UNIT_OF_MEASURE_CUBIC_METER_PER_HOUR_BCD = 0x81, - EMBER_ZCL_AMI_UNIT_OF_MEASURE_CUBIC_FEET_PER_HOUR_BCD = 0x82, - EMBER_ZCL_AMI_UNIT_OF_MEASURE_CENTUM_CUBIC_FEET_PER_HOUR_BCD = 0x83, - EMBER_ZCL_AMI_UNIT_OF_MEASURE_US_GALLONS_PER_HOUR_BCD = 0x84, - EMBER_ZCL_AMI_UNIT_OF_MEASURE_IMPERIAL_GALLONS_PER_HOUR_BCD = 0x85, - EMBER_ZCL_AMI_UNIT_OF_MEASURE_BT_US_OR_BTU_PER_HOUR_BCD = 0x86, - EMBER_ZCL_AMI_UNIT_OF_MEASURE_LITERS_OR_LITERS_PER_HOUR_BCD = 0x87, - EMBER_ZCL_AMI_UNIT_OF_MEASURE_KPA_GUAGE_BCD = 0x88, - EMBER_ZCL_AMI_UNIT_OF_MEASURE_KPA_ABSOLUTE_BCD = 0x89, - EMBER_ZCL_AMI_UNIT_OF_MEASURE_MCF_OR_MCF_PER_SECOND_BCD = 0x8A, - EMBER_ZCL_AMI_UNIT_OF_MEASURE_UNITLESS_BCD = 0x8B, - EMBER_ZCL_AMI_UNIT_OF_MEASURE_MJ_OR_MJ_PER_SECOND_BCD = 0x8C, - EMBER_ZCL_AMI_UNIT_OF_MEASURE_K_VAR_OR_K_VAR_HOURS_BCD = 0x8D, -} EmberAfAmiUnitOfMeasure; - -typedef enum -{ - EMBER_ZCL_ANONYMOUS_DATA_STATE_NO_SOURCE_FOUND = 0x00, - EMBER_ZCL_ANONYMOUS_DATA_STATE_SOURCE_FOUND = 0x01, -} EmberAfAnonymousDataState; - -typedef enum -{ - EMBER_ZCL_APPLIANCE_STATUS_OFF = 0x01, - EMBER_ZCL_APPLIANCE_STATUS_STAND_BY = 0x02, - EMBER_ZCL_APPLIANCE_STATUS_PROGRAMMED = 0x03, - EMBER_ZCL_APPLIANCE_STATUS_PROGRAMMED_WAITING_TO_START = 0x04, - EMBER_ZCL_APPLIANCE_STATUS_RUNNING = 0x05, - EMBER_ZCL_APPLIANCE_STATUS_PAUSE = 0x06, - EMBER_ZCL_APPLIANCE_STATUS_END_PROGRAMMED = 0x07, - EMBER_ZCL_APPLIANCE_STATUS_FAILURE = 0x08, - EMBER_ZCL_APPLIANCE_STATUS_PROGRAMME_INTERRUPTED = 0x09, - EMBER_ZCL_APPLIANCE_STATUS_IDLE = 0x0A, - EMBER_ZCL_APPLIANCE_STATUS_RINSE_HOLD = 0x0B, - EMBER_ZCL_APPLIANCE_STATUS_SERVICE = 0x0C, - EMBER_ZCL_APPLIANCE_STATUS_SUPERFREEZING = 0x0D, - EMBER_ZCL_APPLIANCE_STATUS_SUPERCOOLING = 0x0E, - EMBER_ZCL_APPLIANCE_STATUS_SUPERHEATING = 0x0F, -} EmberAfApplianceStatus; - -typedef enum -{ - EMBER_ZCL_ATTRIBUTE_REPORTING_STATUS_PENDING = 0x00, - EMBER_ZCL_ATTRIBUTE_REPORTING_STATUS_ATTRIBUTE_REPORTING_COMPLETE = 0x01, -} EmberAfAttributeReportingStatus; - -typedef enum -{ - EMBER_ZCL_ATTRIBUTE_WRITE_PERMISSION_DENY_WRITE = 0x00, - EMBER_ZCL_ATTRIBUTE_WRITE_PERMISSION_ALLOW_WRITE_NORMAL = 0x01, - EMBER_ZCL_ATTRIBUTE_WRITE_PERMISSION_ALLOW_WRITE_OF_READ_ONLY = 0x02, - EMBER_ZCL_ATTRIBUTE_WRITE_PERMISSION_UNSUPPORTED_ATTRIBUTE = 0x86, - EMBER_ZCL_ATTRIBUTE_WRITE_PERMISSION_INVALID_VALUE = 0x87, - EMBER_ZCL_ATTRIBUTE_WRITE_PERMISSION_READ_ONLY = 0x88, - EMBER_ZCL_ATTRIBUTE_WRITE_PERMISSION_INVALID_DATA_TYPE = 0x8D, -} EmberAfAttributeWritePermission; - -typedef enum -{ - EMBER_ZCL_BARRIER_CONTROL_BARRIER_POSITION_CLOSED = 0x00, - EMBER_ZCL_BARRIER_CONTROL_BARRIER_POSITION_OPEN = 0x64, - EMBER_ZCL_BARRIER_CONTROL_BARRIER_POSITION_UNKNOWN = 0xFF, -} EmberAfBarrierControlBarrierPosition; - -typedef enum -{ - EMBER_ZCL_BARRIER_CONTROL_MOVING_STATE_STOPPED = 0x00, - EMBER_ZCL_BARRIER_CONTROL_MOVING_STATE_CLOSING = 0x01, - EMBER_ZCL_BARRIER_CONTROL_MOVING_STATE_OPENING = 0x02, -} EmberAfBarrierControlMovingState; - -typedef enum -{ - EMBER_ZCL_BATTERY_SIZE_NO_BATTERY = 0x00, - EMBER_ZCL_BATTERY_SIZE_BUILT_IN = 0x01, - EMBER_ZCL_BATTERY_SIZE_OTHER = 0x02, - EMBER_ZCL_BATTERY_SIZE_AA = 0x03, - EMBER_ZCL_BATTERY_SIZE_AAA = 0x04, - EMBER_ZCL_BATTERY_SIZE_C = 0x05, - EMBER_ZCL_BATTERY_SIZE_D = 0x06, - EMBER_ZCL_BATTERY_SIZE_UNKNOWN = 0xFF, -} EmberAfBatterySize; - -typedef enum -{ - EMBER_ZCL_BILLING_PERIOD_DURATION_UNITS_MINUTES = 0x000000, - EMBER_ZCL_BILLING_PERIOD_DURATION_UNITS_DAYS = 0x400000, - EMBER_ZCL_BILLING_PERIOD_DURATION_UNITS_WEEKS = 0x800000, - EMBER_ZCL_BILLING_PERIOD_DURATION_UNITS_MONTHS = 0xC00000, -} EmberAfBillingPeriodDurationUnits; - -typedef enum -{ - EMBER_ZCL_BLOCK_NO_BLOCKS_IN_USE = 0x00, - EMBER_ZCL_BLOCK_BLOCK1 = 0x01, - EMBER_ZCL_BLOCK_BLOCK2 = 0x02, - EMBER_ZCL_BLOCK_BLOCK3 = 0x03, - EMBER_ZCL_BLOCK_BLOCK4 = 0x04, - EMBER_ZCL_BLOCK_BLOCK5 = 0x05, - EMBER_ZCL_BLOCK_BLOCK6 = 0x06, - EMBER_ZCL_BLOCK_BLOCK7 = 0x07, - EMBER_ZCL_BLOCK_BLOCK8 = 0x08, - EMBER_ZCL_BLOCK_BLOCK9 = 0x09, - EMBER_ZCL_BLOCK_BLOCK10 = 0x0A, - EMBER_ZCL_BLOCK_BLOCK11 = 0x0B, - EMBER_ZCL_BLOCK_BLOCK12 = 0x0C, - EMBER_ZCL_BLOCK_BLOCK13 = 0x0D, - EMBER_ZCL_BLOCK_BLOCK14 = 0x0E, - EMBER_ZCL_BLOCK_BLOCK15 = 0x0F, - EMBER_ZCL_BLOCK_BLOCK16 = 0x10, -} EmberAfBlock; - -typedef enum -{ - EMBER_ZCL_BLOCK_PERIOD_DURATION_TYPE_CONTROL_START_OF_TIMEBASE = 0x00, - EMBER_ZCL_BLOCK_PERIOD_DURATION_TYPE_CONTROL_END_OF_TIMEBASE = 0x10, - EMBER_ZCL_BLOCK_PERIOD_DURATION_TYPE_CONTROL_NOT_SPECIFIED = 0x20, -} EmberAfBlockPeriodDurationTypeControl; - -typedef enum -{ - EMBER_ZCL_BLOCK_PERIOD_DURATION_TYPE_TIMEBASE_MINUTES = 0x00, - EMBER_ZCL_BLOCK_PERIOD_DURATION_TYPE_TIMEBASE_DAYS = 0x01, - EMBER_ZCL_BLOCK_PERIOD_DURATION_TYPE_TIMEBASE_WEEKS = 0x02, - EMBER_ZCL_BLOCK_PERIOD_DURATION_TYPE_TIMEBASE_MONTHS = 0x03, -} EmberAfBlockPeriodDurationTypeTimebase; - -typedef enum -{ - EMBER_ZCL_C_O2_UNIT_KILOGRAM_PER_KILOWATT_HOUR = 0x01, - EMBER_ZCL_C_O2_UNIT_KILOGRAM_PER_GALLON_OF_GASOLINE = 0x02, - EMBER_ZCL_C_O2_UNIT_KILOGRAM_PER_THERM_OF_NATURAL_GAS = 0x03, -} EmberAfCO2Unit; - -typedef enum -{ - EMBER_ZCL_CALENDAR_TIME_REFERENCE_UTC_TIME = 0x00, - EMBER_ZCL_CALENDAR_TIME_REFERENCE_STANDARD_TIME = 0x01, - EMBER_ZCL_CALENDAR_TIME_REFERENCE_LOCAL_TIME = 0x02, -} EmberAfCalendarTimeReference; - -typedef enum -{ - EMBER_ZCL_CALENDAR_TYPE_DELIVERED_CALENDAR = 0x00, - EMBER_ZCL_CALENDAR_TYPE_RECEIVED_CALENDAR = 0x01, - EMBER_ZCL_CALENDAR_TYPE_DELIVERED_AND_RECEIVED_CALENDAR = 0x02, - EMBER_ZCL_CALENDAR_TYPE_FRIENDLY_CREDIT_CALENDAR = 0x03, - EMBER_ZCL_CALENDAR_TYPE_AUXILLIARY_LOAD_SWITCH_CALENDAR = 0x04, -} EmberAfCalendarType; - -typedef enum -{ - EMBER_ZCL_CALORIFIC_VALUE_UNIT_MEGAJOULE_PER_CUBIC_METER = 0x01, - EMBER_ZCL_CALORIFIC_VALUE_UNIT_MEGAJOULE_PER_KILOGRAM = 0x02, -} EmberAfCalorificValueUnit; - -typedef enum -{ - EMBER_ZCL_CECED_SPECIFICATION_VERSION_COMPLIANT_WITH_V10_NOT_CERTIFIED = 0x10, - EMBER_ZCL_CECED_SPECIFICATION_VERSION_COMPLIANT_WITH_V10_CERTIFIED = 0x1A, -} EmberAfCecedSpecificationVersion; - -typedef enum -{ - EMBER_ZCL_COLOR_CONTROL_OPTIONS_EXECUTE_IF_OFF = 0x01, -} EmberAfColorControlOptions; - -typedef enum -{ - EMBER_ZCL_COLOR_LOOP_ACTION_DEACTIVATE = 0x00, - EMBER_ZCL_COLOR_LOOP_ACTION_ACTIVATE_FROM_COLOR_LOOP_START_ENHANCED_HUE = 0x01, - EMBER_ZCL_COLOR_LOOP_ACTION_ACTIVATE_FROM_ENHANCED_CURRENT_HUE = 0x02, -} EmberAfColorLoopAction; - -typedef enum -{ - EMBER_ZCL_COLOR_LOOP_DIRECTION_DECREMENT_HUE = 0x00, - EMBER_ZCL_COLOR_LOOP_DIRECTION_INCREMENT_HUE = 0x01, -} EmberAfColorLoopDirection; - -typedef enum -{ - EMBER_ZCL_COLOR_MODE_CURRENT_HUE_AND_CURRENT_SATURATION = 0x00, - EMBER_ZCL_COLOR_MODE_CURRENT_X_AND_CURRENT_Y = 0x01, - EMBER_ZCL_COLOR_MODE_COLOR_TEMPERATURE = 0x02, -} EmberAfColorMode; - -typedef enum -{ - EMBER_ZCL_COMMAND_IDENTIFICATION_START = 0x01, - EMBER_ZCL_COMMAND_IDENTIFICATION_STOP = 0x02, - EMBER_ZCL_COMMAND_IDENTIFICATION_PAUSE = 0x03, - EMBER_ZCL_COMMAND_IDENTIFICATION_START_SUPERFREEZING = 0x04, - EMBER_ZCL_COMMAND_IDENTIFICATION_STOP_SUPERFREEZING = 0x05, - EMBER_ZCL_COMMAND_IDENTIFICATION_START_SUPERCOOLING = 0x06, - EMBER_ZCL_COMMAND_IDENTIFICATION_STOP_SUPERCOOLING = 0x07, - EMBER_ZCL_COMMAND_IDENTIFICATION_DISABLE_GAS = 0x08, - EMBER_ZCL_COMMAND_IDENTIFICATION_ENABLE_GAS = 0x09, - EMBER_ZCL_COMMAND_IDENTIFICATION_ENABLE_ENERGY_CONTROL = 0x0A, - EMBER_ZCL_COMMAND_IDENTIFICATION_DISABLE_ENERGY_CONTROL = 0x0B, -} EmberAfCommandIdentification; - -typedef enum -{ - EMBER_ZCL_COMMISSIONING_STARTUP_CONTROL_NO_ACTION = 0x00, - EMBER_ZCL_COMMISSIONING_STARTUP_CONTROL_FORM_NETWORK = 0x01, - EMBER_ZCL_COMMISSIONING_STARTUP_CONTROL_REJOIN_NETWORK = 0x02, - EMBER_ZCL_COMMISSIONING_STARTUP_CONTROL_START_FROM_SCRATCH = 0x03, -} EmberAfCommissioningStartupControl; - -typedef enum -{ - EMBER_ZCL_COMMODITY_TYPE_ELECTRIC_METERING = 0x00, - EMBER_ZCL_COMMODITY_TYPE_GAS_METERING = 0x01, - EMBER_ZCL_COMMODITY_TYPE_WATER_METERING = 0x02, - EMBER_ZCL_COMMODITY_TYPE_THERMAL_METERING = 0x03, - EMBER_ZCL_COMMODITY_TYPE_PRESSURE_METERING = 0x04, - EMBER_ZCL_COMMODITY_TYPE_HEAT_METERING = 0x05, - EMBER_ZCL_COMMODITY_TYPE_COOLING_METERING = 0x06, - EMBER_ZCL_COMMODITY_TYPE_ELECTRIC_VEHICLE_CHARGING_METERING = 0x07, - EMBER_ZCL_COMMODITY_TYPE_PV_GENERATION_METERING = 0x08, - EMBER_ZCL_COMMODITY_TYPE_WIND_TURBINE_GENERATION_METERING = 0x09, - EMBER_ZCL_COMMODITY_TYPE_WATER_TURBINE_GENERATION_METERING = 0x0A, - EMBER_ZCL_COMMODITY_TYPE_MICRO_GENERATION_METERING = 0x0B, - EMBER_ZCL_COMMODITY_TYPE_SOLAR_HOT_WATER_GENERATION_METERING = 0x0C, - EMBER_ZCL_COMMODITY_TYPE_ELECTRIC_METERING_ELEMENT1 = 0x0D, - EMBER_ZCL_COMMODITY_TYPE_ELECTRIC_METERING_ELEMENT2 = 0x0E, - EMBER_ZCL_COMMODITY_TYPE_ELECTRIC_METERING_ELEMENT3 = 0x0F, -} EmberAfCommodityType; - -typedef enum -{ - EMBER_ZCL_CPP_EVENT_RESPONSE_CPP_AUTH_ACCEPTED = 0x01, - EMBER_ZCL_CPP_EVENT_RESPONSE_CPP_AUTH_REJECTED = 0x02, -} EmberAfCppEventResponseCppAuth; - -typedef enum -{ - EMBER_ZCL_CPP_PRICE_TIER_CPP1 = 0x00, - EMBER_ZCL_CPP_PRICE_TIER_CPP2 = 0x01, -} EmberAfCppPriceTier; - -typedef enum -{ - EMBER_ZCL_CREDIT_ADJUSTMENT_TYPE_CREDIT_INCREMENTAL = 0x00, - EMBER_ZCL_CREDIT_ADJUSTMENT_TYPE_CREDIT_ABSOLUTE = 0x01, -} EmberAfCreditAdjustmentType; - -typedef enum -{ - EMBER_ZCL_CREDIT_PAYMENT_STATUS_PENDING = 0x00, - EMBER_ZCL_CREDIT_PAYMENT_STATUS_RECEIVED_PAID = 0x01, - EMBER_ZCL_CREDIT_PAYMENT_STATUS_OVERDUE = 0x02, - EMBER_ZCL_CREDIT_PAYMENT_STATUS_2_PAYMENTS_OVERDUE = 0x03, - EMBER_ZCL_CREDIT_PAYMENT_STATUS_3_PAYMENTS_OVERDUE = 0x04, -} EmberAfCreditPaymentStatus; - -typedef enum -{ - EMBER_ZCL_DATA_QUALITY_ID_ALL_DATA_CERTIFIED = 0x0000, - EMBER_ZCL_DATA_QUALITY_ID_ONLY_INSTANTANEOUS_POWER_NOT_CERTIFIED = 0x0001, - EMBER_ZCL_DATA_QUALITY_ID_ONLY_CUMULATED_CONSUMPTION_NOT_CERTIFIED = 0x0002, - EMBER_ZCL_DATA_QUALITY_ID_NOT_CERTIFIED_DATA = 0x0003, -} EmberAfDataQualityId; - -typedef enum -{ - EMBER_ZCL_DEBT_AMOUNT_TYPE_TYPE1_ABSOLUTE = 0x00, - EMBER_ZCL_DEBT_AMOUNT_TYPE_TYPE1_INCREMENTAL = 0x01, - EMBER_ZCL_DEBT_AMOUNT_TYPE_TYPE2_ABSOLUTE = 0x02, - EMBER_ZCL_DEBT_AMOUNT_TYPE_TYPE2_INCREMENTAL = 0x03, - EMBER_ZCL_DEBT_AMOUNT_TYPE_TYPE3_ABSOLUTE = 0x04, - EMBER_ZCL_DEBT_AMOUNT_TYPE_TYPE3_INCREMENTAL = 0x05, -} EmberAfDebtAmountType; - -typedef enum -{ - EMBER_ZCL_DEBT_RECOVERY_FREQUENCY_PER_HOUR = 0x00, - EMBER_ZCL_DEBT_RECOVERY_FREQUENCY_PER_DAY = 0x01, - EMBER_ZCL_DEBT_RECOVERY_FREQUENCY_PER_WEEK = 0x02, - EMBER_ZCL_DEBT_RECOVERY_FREQUENCY_PER_MONTH = 0x03, - EMBER_ZCL_DEBT_RECOVERY_FREQUENCY_PER_QUARTER = 0x04, -} EmberAfDebtRecoveryFrequency; - -typedef enum -{ - EMBER_ZCL_DEBT_RECOVERY_METHOD_TIME_BASED = 0x00, - EMBER_ZCL_DEBT_RECOVERY_METHOD_PERCENTAGE_BASED = 0x01, - EMBER_ZCL_DEBT_RECOVERY_METHOD_CATCH_UP_BASED = 0x02, -} EmberAfDebtRecoveryMethod; - -typedef enum -{ - EMBER_ZCL_DEHUMIDIFCATION_LOCKOUT_NOT_ALLOWED = 0x00, - EMBER_ZCL_DEHUMIDIFCATION_LOCKOUT_ALLOWED = 0x01, -} EmberAfDehumidifcationLockout; - -typedef enum -{ - EMBER_ZCL_DEVICE_INFORMATION_RECORD_SORT_NOT_SORTED = 0x00, - EMBER_ZCL_DEVICE_INFORMATION_RECORD_SORT_TOP_OF_THE_LIST = 0x01, -} EmberAfDeviceInformationRecordSort; - -typedef enum -{ - EMBER_ZCL_DEVICE_STATUS2_STRUCTURE_IRIS_SYMPTOM_CODE = 0x20, -} EmberAfDeviceStatus2Structure; - -typedef enum -{ - EMBER_ZCL_DOOR_LOCK_EVENT_SOURCE_KEYPAD = 0x00, - EMBER_ZCL_DOOR_LOCK_EVENT_SOURCE_RF = 0x01, - EMBER_ZCL_DOOR_LOCK_EVENT_SOURCE_MANUAL = 0x02, - EMBER_ZCL_DOOR_LOCK_EVENT_SOURCE_RFID = 0x03, - EMBER_ZCL_DOOR_LOCK_EVENT_SOURCE_INDETERMINATE = 0xFF, -} EmberAfDoorLockEventSource; - -typedef enum -{ - EMBER_ZCL_DOOR_LOCK_EVENT_TYPE_OPERATION = 0x00, - EMBER_ZCL_DOOR_LOCK_EVENT_TYPE_PROGRAMMING = 0x01, - EMBER_ZCL_DOOR_LOCK_EVENT_TYPE_ALARM = 0x02, -} EmberAfDoorLockEventType; - -typedef enum -{ - EMBER_ZCL_DOOR_LOCK_OPERATING_MODE_NORMAL_MODE = 0x00, - EMBER_ZCL_DOOR_LOCK_OPERATING_MODE_VACATION_MODE = 0x01, - EMBER_ZCL_DOOR_LOCK_OPERATING_MODE_PRIVACY_MODE = 0x02, - EMBER_ZCL_DOOR_LOCK_OPERATING_MODE_NO_RF_LOCK_OR_UNLOCK = 0x03, - EMBER_ZCL_DOOR_LOCK_OPERATING_MODE_LOCAL_PROGRAMMING_MODE = 0x04, - EMBER_ZCL_DOOR_LOCK_OPERATING_MODE_PASSAGE_MODE = 0x05, -} EmberAfDoorLockOperatingMode; - -typedef enum -{ - EMBER_ZCL_DOOR_LOCK_OPERATION_EVENT_CODE_UNKNOWN_OR_MFG_SPECIFIC = 0x00, - EMBER_ZCL_DOOR_LOCK_OPERATION_EVENT_CODE_LOCK = 0x01, - EMBER_ZCL_DOOR_LOCK_OPERATION_EVENT_CODE_UNLOCK = 0x02, - EMBER_ZCL_DOOR_LOCK_OPERATION_EVENT_CODE_LOCK_INVALID_PIN_OR_ID = 0x03, - EMBER_ZCL_DOOR_LOCK_OPERATION_EVENT_CODE_LOCK_INVALID_SCHEDULE = 0x04, - EMBER_ZCL_DOOR_LOCK_OPERATION_EVENT_CODE_UNLOCK_INVALID_PIN_OR_ID = 0x05, - EMBER_ZCL_DOOR_LOCK_OPERATION_EVENT_CODE_UNLOCK_INVALID_SCHEDULE = 0x06, - EMBER_ZCL_DOOR_LOCK_OPERATION_EVENT_CODE_ONE_TOUCH_LOCK = 0x07, - EMBER_ZCL_DOOR_LOCK_OPERATION_EVENT_CODE_KEY_LOCK = 0x08, - EMBER_ZCL_DOOR_LOCK_OPERATION_EVENT_CODE_KEY_UNLOCK = 0x09, - EMBER_ZCL_DOOR_LOCK_OPERATION_EVENT_CODE_AUTO_LOCK = 0x0A, - EMBER_ZCL_DOOR_LOCK_OPERATION_EVENT_CODE_SCHEDULE_LOCK = 0x0B, - EMBER_ZCL_DOOR_LOCK_OPERATION_EVENT_CODE_SCHEDULE_UNLOCK = 0x0C, - EMBER_ZCL_DOOR_LOCK_OPERATION_EVENT_CODE_MANUAL_LOCK = 0x0D, - EMBER_ZCL_DOOR_LOCK_OPERATION_EVENT_CODE_MANUAL_UNLOCK = 0x0E, -} EmberAfDoorLockOperationEventCode; - -typedef enum -{ - EMBER_ZCL_DOOR_LOCK_PROGRAMMING_EVENT_CODE_UNKNOWN_OR_MFG_SPECIFIC = 0x00, - EMBER_ZCL_DOOR_LOCK_PROGRAMMING_EVENT_CODE_MASTER_CODE_CHANGED = 0x01, - EMBER_ZCL_DOOR_LOCK_PROGRAMMING_EVENT_CODE_PIN_ADDED = 0x02, - EMBER_ZCL_DOOR_LOCK_PROGRAMMING_EVENT_CODE_PIN_DELETED = 0x03, - EMBER_ZCL_DOOR_LOCK_PROGRAMMING_EVENT_CODE_PIN_CHANGED = 0x04, - EMBER_ZCL_DOOR_LOCK_PROGRAMMING_EVENT_CODE_ID_ADDED = 0x05, - EMBER_ZCL_DOOR_LOCK_PROGRAMMING_EVENT_CODE_ID_DELETED = 0x06, -} EmberAfDoorLockProgrammingEventCode; - -typedef enum -{ - EMBER_ZCL_DOOR_LOCK_SECURITY_LEVEL_NETWORK_SECURITY = 0x00, - EMBER_ZCL_DOOR_LOCK_SECURITY_LEVEL_APS_SECURITY = 0x01, -} EmberAfDoorLockSecurityLevel; - -typedef enum -{ - EMBER_ZCL_DOOR_LOCK_SET_PIN_OR_ID_STATUS_SUCCESS = 0x00, - EMBER_ZCL_DOOR_LOCK_SET_PIN_OR_ID_STATUS_GENERAL_FAILURE = 0x01, - EMBER_ZCL_DOOR_LOCK_SET_PIN_OR_ID_STATUS_MEMORY_FULL = 0x02, - EMBER_ZCL_DOOR_LOCK_SET_PIN_OR_ID_STATUS_DUPLICATE_CODE_ERROR = 0x03, -} EmberAfDoorLockSetPinOrIdStatus; - -typedef enum -{ - EMBER_ZCL_DOOR_LOCK_SOUND_VOLUME_SILENT = 0x00, - EMBER_ZCL_DOOR_LOCK_SOUND_VOLUME_LOW = 0x01, - EMBER_ZCL_DOOR_LOCK_SOUND_VOLUME_HIGH = 0x02, -} EmberAfDoorLockSoundVolume; - -typedef enum -{ - EMBER_ZCL_DOOR_LOCK_STATE_NOT_FULLY_LOCKED = 0x00, - EMBER_ZCL_DOOR_LOCK_STATE_LOCKED = 0x01, - EMBER_ZCL_DOOR_LOCK_STATE_UNLOCKED = 0x02, -} EmberAfDoorLockState; - -typedef enum -{ - EMBER_ZCL_DOOR_LOCK_TYPE_DEAD_BOLT = 0x00, - EMBER_ZCL_DOOR_LOCK_TYPE_MAGNETIC = 0x01, - EMBER_ZCL_DOOR_LOCK_TYPE_MORTISE = 0x02, - EMBER_ZCL_DOOR_LOCK_TYPE_RIM = 0x03, - EMBER_ZCL_DOOR_LOCK_TYPE_LATCH_BOLT = 0x04, - EMBER_ZCL_DOOR_LOCK_TYPE_CYLINDRICAL = 0x05, - EMBER_ZCL_DOOR_LOCK_TYPE_TUBULAR = 0x06, - EMBER_ZCL_DOOR_LOCK_TYPE_INTERCONNECTED = 0x07, - EMBER_ZCL_DOOR_LOCK_TYPE_DEAD_LATCH = 0x08, - EMBER_ZCL_DOOR_LOCK_TYPE_OTHER = 0x09, -} EmberAfDoorLockType; - -typedef enum -{ - EMBER_ZCL_DOOR_LOCK_USER_STATUS_AVAILABLE = 0x00, - EMBER_ZCL_DOOR_LOCK_USER_STATUS_OCCUPIED_ENABLED = 0x01, - EMBER_ZCL_DOOR_LOCK_USER_STATUS_OCCUPIED_DISABLED = 0x03, - EMBER_ZCL_DOOR_LOCK_USER_STATUS_NOT_SUPPORTED = 0xFF, -} EmberAfDoorLockUserStatus; - -typedef enum -{ - EMBER_ZCL_DOOR_LOCK_USER_TYPE_UNRESTRICTED = 0x00, - EMBER_ZCL_DOOR_LOCK_USER_TYPE_ONE_TIME_USER = 0x01, - EMBER_ZCL_DOOR_LOCK_USER_TYPE_USER_WITH_SCHEDULE = 0x02, - EMBER_ZCL_DOOR_LOCK_USER_TYPE_MASTER_USER = 0x03, - EMBER_ZCL_DOOR_LOCK_USER_TYPE_NOT_SUPPORTED = 0xFF, -} EmberAfDoorLockUserType; - -typedef enum -{ - EMBER_ZCL_DOOR_STATE_OPEN = 0x00, - EMBER_ZCL_DOOR_STATE_CLOSED = 0x01, - EMBER_ZCL_DOOR_STATE_ERROR_JAMMED = 0x02, - EMBER_ZCL_DOOR_STATE_ERROR_FORCED_OPEN = 0x03, - EMBER_ZCL_DOOR_STATE_ERROR_UNSPECIFIED = 0x04, -} EmberAfDoorState; - -typedef enum -{ - EMBER_ZCL_ELECTRICITY_ALARM_GROUPS_LOW_VOLTAGE_L1 = 0x10, - EMBER_ZCL_ELECTRICITY_ALARM_GROUPS_HIGH_VOLTAGE_L1 = 0x11, - EMBER_ZCL_ELECTRICITY_ALARM_GROUPS_LOW_VOLTAGE_L2 = 0x12, - EMBER_ZCL_ELECTRICITY_ALARM_GROUPS_HIGH_VOLTAGE_L2 = 0x13, - EMBER_ZCL_ELECTRICITY_ALARM_GROUPS_LOW_VOLTAGE_L3 = 0x14, - EMBER_ZCL_ELECTRICITY_ALARM_GROUPS_HIGH_VOLTAGE_L3 = 0x15, - EMBER_ZCL_ELECTRICITY_ALARM_GROUPS_OVER_CURRENT_L1 = 0x16, - EMBER_ZCL_ELECTRICITY_ALARM_GROUPS_OVER_CURRENT_L2 = 0x17, - EMBER_ZCL_ELECTRICITY_ALARM_GROUPS_OVER_CURRENT_L3 = 0x18, - EMBER_ZCL_ELECTRICITY_ALARM_GROUPS_FREQUENCY_TOO_LOW_L1 = 0x19, - EMBER_ZCL_ELECTRICITY_ALARM_GROUPS_FREQUENCY_TOO_HIGH_L1 = 0x1A, - EMBER_ZCL_ELECTRICITY_ALARM_GROUPS_FREQUENCY_TOO_LOW_L2 = 0x1B, - EMBER_ZCL_ELECTRICITY_ALARM_GROUPS_FREQUENCY_TOO_HIGH_L2 = 0x1C, - EMBER_ZCL_ELECTRICITY_ALARM_GROUPS_FREQUENCY_TOO_LOW_L3 = 0x1D, - EMBER_ZCL_ELECTRICITY_ALARM_GROUPS_FREQUENCY_TOO_HIGH_L3 = 0x1E, - EMBER_ZCL_ELECTRICITY_ALARM_GROUPS_GROUND_FAULT = 0x1F, - EMBER_ZCL_ELECTRICITY_ALARM_GROUPS_ELECTRIC_TAMPER_DETECT = 0x20, - EMBER_ZCL_ELECTRICITY_ALARM_GROUPS_INCORRECT_POLARITY = 0x21, - EMBER_ZCL_ELECTRICITY_ALARM_GROUPS_CURRENT_NO_VOLTAGE = 0x22, - EMBER_ZCL_ELECTRICITY_ALARM_GROUPS_UNDER_VOLTAGE = 0x23, - EMBER_ZCL_ELECTRICITY_ALARM_GROUPS_OVER_VOLTAGE = 0x24, - EMBER_ZCL_ELECTRICITY_ALARM_GROUPS_NORMAL_VOLTAGE = 0x25, - EMBER_ZCL_ELECTRICITY_ALARM_GROUPS_P_F_BELOW_THRESHOLD = 0x26, - EMBER_ZCL_ELECTRICITY_ALARM_GROUPS_P_F_ABOVE_THRESHOLD = 0x27, - EMBER_ZCL_ELECTRICITY_ALARM_GROUPS_TERMINAL_COVER_REMOVED = 0x28, - EMBER_ZCL_ELECTRICITY_ALARM_GROUPS_TERMINAL_COVER_CLOSED = 0x29, -} EmberAfElectricityAlarmGroups; - -typedef enum -{ - EMBER_ZCL_ENHANCED_COLOR_MODE_CURRENT_HUE_AND_CURRENT_SATURATION = 0x00, - EMBER_ZCL_ENHANCED_COLOR_MODE_CURRENT_X_AND_CURRENT_Y = 0x01, - EMBER_ZCL_ENHANCED_COLOR_MODE_COLOR_TEMPERATURE = 0x02, - EMBER_ZCL_ENHANCED_COLOR_MODE_ENHANCED_CURRENT_HUE_AND_CURRENT_SATURATION = 0x03, -} EmberAfEnhancedColorMode; - -typedef enum -{ - EMBER_ZCL_EVENT_CONFIGURATION_CONTROL_APPLY_BY_LIST = 0x00, - EMBER_ZCL_EVENT_CONFIGURATION_CONTROL_APPLY_BY_EVENT_GROUP = 0x01, - EMBER_ZCL_EVENT_CONFIGURATION_CONTROL_APPLY_BY_LOG_TYPE = 0x02, - EMBER_ZCL_EVENT_CONFIGURATION_CONTROL_APPLY_BY_CONFIGURATION_MATCH = 0x03, -} EmberAfEventConfigurationControl; - -typedef enum -{ - EMBER_ZCL_EVENT_CONFIGURATION_LOG_ACTION_DO_NOT_LOG = 0x00, - EMBER_ZCL_EVENT_CONFIGURATION_LOG_ACTION_LOG_AS_TAMPER = 0x01, - EMBER_ZCL_EVENT_CONFIGURATION_LOG_ACTION_LOG_AS_FAULT = 0x02, - EMBER_ZCL_EVENT_CONFIGURATION_LOG_ACTION_LOG_AS_GENERAL_EVENT = 0x03, - EMBER_ZCL_EVENT_CONFIGURATION_LOG_ACTION_LOG_AS_SECURITY_EVENT = 0x04, - EMBER_ZCL_EVENT_CONFIGURATION_LOG_ACTION_LOG_AS_NETWORK_EVENT = 0x05, -} EmberAfEventConfigurationLogAction; - -typedef enum -{ - EMBER_ZCL_EVENT_CONTROL_RETRIEVE_MINIMAL_INFORMATION = 0x00, - EMBER_ZCL_EVENT_CONTROL_RETRIEVE_FULL_INFORMATION = 0x10, -} EmberAfEventControl; - -typedef enum -{ - EMBER_ZCL_EVENT_ID_METER_COVER_REMOVED = 0x00, - EMBER_ZCL_EVENT_ID_METER_COVER_CLOSED = 0x01, - EMBER_ZCL_EVENT_ID_STRONG_MAGNETIC_FIELD = 0x02, - EMBER_ZCL_EVENT_ID_NO_STRONG_MAGNETIC_FIELD = 0x03, - EMBER_ZCL_EVENT_ID_BATTERY_FAILURE = 0x04, - EMBER_ZCL_EVENT_ID_LOW_BATTERY = 0x05, - EMBER_ZCL_EVENT_ID_PROGRAM_MEMORY_ERROR = 0x06, - EMBER_ZCL_EVENT_ID_RAM_ERROR = 0x07, - EMBER_ZCL_EVENT_ID_NV_MEMORY_ERROR = 0x08, - EMBER_ZCL_EVENT_ID_MEASUREMENT_SYSTEM_ERROR = 0x09, - EMBER_ZCL_EVENT_ID_WATCHDOG_ERROR = 0x0A, - EMBER_ZCL_EVENT_ID_SUPPLY_DISCONNECT_FAILURE = 0x0B, - EMBER_ZCL_EVENT_ID_SUPPLY_CONNECT_FAILURE = 0x0C, - EMBER_ZCL_EVENT_ID_MEASURMENT_SOFTWARE_CHANGED = 0x0D, - EMBER_ZCL_EVENT_ID_DST_ENABLED = 0x0E, - EMBER_ZCL_EVENT_ID_DST_DISABLED = 0x0F, - EMBER_ZCL_EVENT_ID_CLOCK_ADJ_BACKWARD = 0x10, - EMBER_ZCL_EVENT_ID_CLOCK_ADJ_FORWARD = 0x11, - EMBER_ZCL_EVENT_ID_CLOCK_INVALID = 0x12, - EMBER_ZCL_EVENT_ID_COMMS_ERROR_HAN = 0x13, - EMBER_ZCL_EVENT_ID_COMMS_OK_HAN = 0x14, - EMBER_ZCL_EVENT_ID_FRAUD_ATTEMPT = 0x15, - EMBER_ZCL_EVENT_ID_POWER_LOSS = 0x16, - EMBER_ZCL_EVENT_ID_INCORRECT_PROTOCOL = 0x17, - EMBER_ZCL_EVENT_ID_UNUSUAL_HAN_TRAFFIC = 0x18, - EMBER_ZCL_EVENT_ID_UNEXPECTED_CLOCK_CHANGE = 0x19, - EMBER_ZCL_EVENT_ID_COMMS_USING_UNAUTHENTICATED_COMPONENT = 0x1A, - EMBER_ZCL_EVENT_ID_ERROR_REG_CLEAR = 0x1B, - EMBER_ZCL_EVENT_ID_ALARM_REG_CLEAR = 0x1C, - EMBER_ZCL_EVENT_ID_UNEXPECTED_HW_RESET = 0x1D, - EMBER_ZCL_EVENT_ID_UNEXPECTED_PROGRAM_EXECUTION = 0x1E, - EMBER_ZCL_EVENT_ID_EVENT_LOG_CLEARED = 0x1F, - EMBER_ZCL_EVENT_ID_MANUAL_DISCONNECT = 0x20, - EMBER_ZCL_EVENT_ID_MANUAL_CONNECT = 0x21, - EMBER_ZCL_EVENT_ID_REMOTE_DISCONNECTION = 0x22, - EMBER_ZCL_EVENT_ID_LOCAL_DISCONNECTION = 0x23, - EMBER_ZCL_EVENT_ID_LIMIT_THRESHOLD_EXCEEDED = 0x24, - EMBER_ZCL_EVENT_ID_LIMIT_THRESHOLD_OK = 0x25, - EMBER_ZCL_EVENT_ID_LIMIT_THRESHOLD_CHANGED = 0x26, - EMBER_ZCL_EVENT_ID_MAXIMUM_DEMAND_EXCEEDED = 0x27, - EMBER_ZCL_EVENT_ID_PROFILE_CLEARED = 0x28, - EMBER_ZCL_EVENT_ID_FIRMWARE_READY_FOR_ACTIVATION = 0x29, - EMBER_ZCL_EVENT_ID_FIRMWARE_ACTIVATED = 0x2A, - EMBER_ZCL_EVENT_ID_PATCH_FAILURE = 0x2B, - EMBER_ZCL_EVENT_ID_TOU_TARIFF_ACTIVATION = 0x2C, - EMBER_ZCL_EVENT_ID_8X8_TARIFFACTIVATED = 0x2D, - EMBER_ZCL_EVENT_ID_SINGLE_TARIFF_RATE_ACTIVATED = 0x2E, - EMBER_ZCL_EVENT_ID_ASYNCHRONOUS_BILLING_OCCURRED = 0x2F, - EMBER_ZCL_EVENT_ID_SYNCHRONOUS_BILLING_OCCURRED = 0x30, - EMBER_ZCL_EVENT_ID_INCORRECT_POLARITY = 0x80, - EMBER_ZCL_EVENT_ID_CURRENT_NO_VOLTAGE = 0x81, - EMBER_ZCL_EVENT_ID_UNDER_VOLTAGE = 0x82, - EMBER_ZCL_EVENT_ID_OVER_VOLTAGE = 0x83, - EMBER_ZCL_EVENT_ID_NORMAL_VOLTAGE = 0x84, - EMBER_ZCL_EVENT_ID_PF_BELOW_THRESHOLD = 0x85, - EMBER_ZCL_EVENT_ID_PF_ABOVE_THRESHOLD = 0x86, - EMBER_ZCL_EVENT_ID_TERMINAL_COVER_REMOVED = 0x87, - EMBER_ZCL_EVENT_ID_TERMINAL_COVER_CLOSED = 0x88, - EMBER_ZCL_EVENT_ID_REVERSE_FLOW = 0xA0, - EMBER_ZCL_EVENT_ID_TILT_TAMPER = 0xA1, - EMBER_ZCL_EVENT_ID_BATTERY_COVER_REMOVED = 0xA2, - EMBER_ZCL_EVENT_ID_BATTERY_COVER_CLOSED = 0xA3, - EMBER_ZCL_EVENT_ID_EXCESS_FLOW = 0xA4, - EMBER_ZCL_EVENT_ID_EMERGENCY_CREDIT_IN_USE = 0xC0, - EMBER_ZCL_EVENT_ID_EMERGENCY_CREDIT_EXHAUSTED = 0xC1, - EMBER_ZCL_EVENT_ID_ZERO_CREDIT_EC_NOT_SELECTED = 0xC2, - EMBER_ZCL_EVENT_ID_SUPPLY_ON = 0xC3, - EMBER_ZCL_EVENT_ID_SUPPLY_OFF_AARMED = 0xC4, - EMBER_ZCL_EVENT_ID_SUPPLY_OFF = 0xC5, - EMBER_ZCL_EVENT_ID_DISCOUNT_APPLIED = 0xC6, - EMBER_ZCL_EVENT_ID_MANUFACTURER_SPECIFIC_A = 0xE0, - EMBER_ZCL_EVENT_ID_MANUFACTURER_SPECIFIC_B = 0xE1, - EMBER_ZCL_EVENT_ID_MANUFACTURER_SPECIFIC_C = 0xE2, - EMBER_ZCL_EVENT_ID_MANUFACTURER_SPECIFIC_D = 0xE3, - EMBER_ZCL_EVENT_ID_MANUFACTURER_SPECIFIC_E = 0xE4, - EMBER_ZCL_EVENT_ID_MANUFACTURER_SPECIFIC_F = 0xE5, - EMBER_ZCL_EVENT_ID_MANUFACTURER_SPECIFIC_G = 0xE6, - EMBER_ZCL_EVENT_ID_MANUFACTURER_SPECIFIC_H = 0xE7, - EMBER_ZCL_EVENT_ID_MANUFACTURER_SPECIFIC_I = 0xE8, -} EmberAfEventId; - -typedef enum -{ - EMBER_ZCL_EVENT_IDENTIFICATION_END_OF_CYCLE = 0x01, - EMBER_ZCL_EVENT_IDENTIFICATION_TEMPERATURE_REACHED = 0x04, - EMBER_ZCL_EVENT_IDENTIFICATION_END_OF_COOKING = 0x05, - EMBER_ZCL_EVENT_IDENTIFICATION_SWITCHING_OFF = 0x06, - EMBER_ZCL_EVENT_IDENTIFICATION_WRONG_DATA = 0x07, -} EmberAfEventIdentification; - -typedef enum -{ - EMBER_ZCL_EVENT_LOG_ID_ALL_LOGS = 0x00, - EMBER_ZCL_EVENT_LOG_ID_TAMPER_LOG = 0x01, - EMBER_ZCL_EVENT_LOG_ID_FAULT_LOG = 0x02, - EMBER_ZCL_EVENT_LOG_ID_GENERAL_EVENT_LOG = 0x03, - EMBER_ZCL_EVENT_LOG_ID_SECURITY_EVENT_LOG = 0x04, - EMBER_ZCL_EVENT_LOG_ID_NETWORK_EVENT_LOG = 0x05, - EMBER_ZCL_EVENT_LOG_ID_GBCS_GENERAL_EVENT_LOG = 0x06, - EMBER_ZCL_EVENT_LOG_ID_GBCS_SECURITY_EVENT_LOG = 0x07, -} EmberAfEventLogId; - -typedef enum -{ - EMBER_ZCL_EVENT_LOG_PAYLOAD_CONTROL_EVENTS_DO_NOT_CROSS_FRAME_BOUNDARY = 0x00, - EMBER_ZCL_EVENT_LOG_PAYLOAD_CONTROL_EVENT_CROSSES_FRAME_BOUNDARY = 0x01, -} EmberAfEventLogPayloadControl; - -typedef enum -{ - EMBER_ZCL_EXTENDED_GENERIC_ALARM_GROUPS_MEASUREMENT_SYSTEM_ERROR = 0x70, - EMBER_ZCL_EXTENDED_GENERIC_ALARM_GROUPS_WATCHDOG_ERROR = 0x71, - EMBER_ZCL_EXTENDED_GENERIC_ALARM_GROUPS_SUPPLY_DISCONNECT_FAILURE = 0x72, - EMBER_ZCL_EXTENDED_GENERIC_ALARM_GROUPS_SUPPLY_CONNECT_FAILURE = 0x73, - EMBER_ZCL_EXTENDED_GENERIC_ALARM_GROUPS_MEASURMENT_SOFTWARE_CHANGED = 0x74, - EMBER_ZCL_EXTENDED_GENERIC_ALARM_GROUPS_DST_ENABLED = 0x75, - EMBER_ZCL_EXTENDED_GENERIC_ALARM_GROUPS_DST_DISABLED = 0x76, - EMBER_ZCL_EXTENDED_GENERIC_ALARM_GROUPS_CLOCK_ADJ_BACKWARD = 0x77, - EMBER_ZCL_EXTENDED_GENERIC_ALARM_GROUPS_CLOCK_ADJ_FORWARD = 0x78, - EMBER_ZCL_EXTENDED_GENERIC_ALARM_GROUPS_CLOCK_INVALID = 0x79, - EMBER_ZCL_EXTENDED_GENERIC_ALARM_GROUPS_COMMUNICATION_ERROR_HAN = 0x7A, - EMBER_ZCL_EXTENDED_GENERIC_ALARM_GROUPS_COMMUNICATION_OK_H_AN = 0x7B, - EMBER_ZCL_EXTENDED_GENERIC_ALARM_GROUPS_METER_FRAUD_ATTEMPT = 0x7C, - EMBER_ZCL_EXTENDED_GENERIC_ALARM_GROUPS_POWER_LOSS = 0x7D, - EMBER_ZCL_EXTENDED_GENERIC_ALARM_GROUPS_UNUSUAL_HAN_TRAFFIC = 0x7E, - EMBER_ZCL_EXTENDED_GENERIC_ALARM_GROUPS_UNEXPECTED_CLOCK_CHANGE = 0x7F, - EMBER_ZCL_EXTENDED_GENERIC_ALARM_GROUPS_COMMS_USING_UNAUTHENTICATED_COMPONENT = 0x80, - EMBER_ZCL_EXTENDED_GENERIC_ALARM_GROUPS_ERROR_REG_CLEAR = 0x81, - EMBER_ZCL_EXTENDED_GENERIC_ALARM_GROUPS_ALARM_REG_CLEAR = 0x82, - EMBER_ZCL_EXTENDED_GENERIC_ALARM_GROUPS_UNEXPECTED_HW_RESET = 0x83, - EMBER_ZCL_EXTENDED_GENERIC_ALARM_GROUPS_UNEXPECTED_PROGRAM_EXECUTION = 0x84, - EMBER_ZCL_EXTENDED_GENERIC_ALARM_GROUPS_EVENT_LOG_CLEARED = 0x85, - EMBER_ZCL_EXTENDED_GENERIC_ALARM_GROUPS_LIMIT_THRESHOLD_EXCEEDED = 0x86, - EMBER_ZCL_EXTENDED_GENERIC_ALARM_GROUPS_LIMIT_THRESHOLD_OK = 0x87, - EMBER_ZCL_EXTENDED_GENERIC_ALARM_GROUPS_LIMIT_THRESHOLD_CHANGED = 0x88, - EMBER_ZCL_EXTENDED_GENERIC_ALARM_GROUPS_MAXIMUM_DEMAND_EXCEEDED = 0x89, - EMBER_ZCL_EXTENDED_GENERIC_ALARM_GROUPS_PROFILE_CLEARED = 0x8A, - EMBER_ZCL_EXTENDED_GENERIC_ALARM_GROUPS_SAMPLING_BUFFERCLEARED = 0x8B, - EMBER_ZCL_EXTENDED_GENERIC_ALARM_GROUPS_BATTERY_WARNING = 0x8C, - EMBER_ZCL_EXTENDED_GENERIC_ALARM_GROUPS_WRONG_SIGNATURE = 0x8D, - EMBER_ZCL_EXTENDED_GENERIC_ALARM_GROUPS_NO_SIGNATURE = 0x8E, - EMBER_ZCL_EXTENDED_GENERIC_ALARM_GROUPS_UNAUTHORISED_ACTIONFROM_HAN = 0x8F, - EMBER_ZCL_EXTENDED_GENERIC_ALARM_GROUPS_FAST_POLLING_START = 0x90, - EMBER_ZCL_EXTENDED_GENERIC_ALARM_GROUPS_FAST_POLLING_END = 0x91, - EMBER_ZCL_EXTENDED_GENERIC_ALARM_GROUPS_METER_REPORTING_INTERVAL_CHANGED = 0x92, - EMBER_ZCL_EXTENDED_GENERIC_ALARM_GROUPS_DISCONNECT_DUETO_LOAD_LIMIT = 0x93, - EMBER_ZCL_EXTENDED_GENERIC_ALARM_GROUPS_METER_SUPPLY_STATUS_REGISTER_CHANGED = 0x94, - EMBER_ZCL_EXTENDED_GENERIC_ALARM_GROUPS_METER_ALARM_STATUS_REGISTER_CHANGED = 0x95, - EMBER_ZCL_EXTENDED_GENERIC_ALARM_GROUPS_EXTENDED_METER_ALARM_STATUS_REGISTER_CHANGED = 0x96, -} EmberAfExtendedGenericAlarmGroups; - -typedef enum -{ - EMBER_ZCL_EXTENDED_NUMBER_OF_PRICE_TIERS_REFER_TO_NUMBER_OF_PRICE_TIERS_FIELD = 0x00, - EMBER_ZCL_EXTENDED_NUMBER_OF_PRICE_TIERS_NUMBER_OF_PRICE_TIERS16 = 0x01, - EMBER_ZCL_EXTENDED_NUMBER_OF_PRICE_TIERS_NUMBER_OF_PRICE_TIERS17 = 0x02, - EMBER_ZCL_EXTENDED_NUMBER_OF_PRICE_TIERS_NUMBER_OF_PRICE_TIERS18 = 0x03, - EMBER_ZCL_EXTENDED_NUMBER_OF_PRICE_TIERS_NUMBER_OF_PRICE_TIERS19 = 0x04, - EMBER_ZCL_EXTENDED_NUMBER_OF_PRICE_TIERS_NUMBER_OF_PRICE_TIERS20 = 0x05, - EMBER_ZCL_EXTENDED_NUMBER_OF_PRICE_TIERS_NUMBER_OF_PRICE_TIERS21 = 0x06, - EMBER_ZCL_EXTENDED_NUMBER_OF_PRICE_TIERS_NUMBER_OF_PRICE_TIERS22 = 0x07, - EMBER_ZCL_EXTENDED_NUMBER_OF_PRICE_TIERS_NUMBER_OF_PRICE_TIERS23 = 0x08, - EMBER_ZCL_EXTENDED_NUMBER_OF_PRICE_TIERS_NUMBER_OF_PRICE_TIERS24 = 0x09, - EMBER_ZCL_EXTENDED_NUMBER_OF_PRICE_TIERS_NUMBER_OF_PRICE_TIERS25 = 0x0A, - EMBER_ZCL_EXTENDED_NUMBER_OF_PRICE_TIERS_NUMBER_OF_PRICE_TIERS26 = 0x0B, - EMBER_ZCL_EXTENDED_NUMBER_OF_PRICE_TIERS_NUMBER_OF_PRICE_TIERS27 = 0x0C, - EMBER_ZCL_EXTENDED_NUMBER_OF_PRICE_TIERS_NUMBER_OF_PRICE_TIERS28 = 0x0D, - EMBER_ZCL_EXTENDED_NUMBER_OF_PRICE_TIERS_NUMBER_OF_PRICE_TIERS29 = 0x0E, - EMBER_ZCL_EXTENDED_NUMBER_OF_PRICE_TIERS_NUMBER_OF_PRICE_TIERS30 = 0x0F, - EMBER_ZCL_EXTENDED_NUMBER_OF_PRICE_TIERS_NUMBER_OF_PRICE_TIERS31 = 0x10, - EMBER_ZCL_EXTENDED_NUMBER_OF_PRICE_TIERS_NUMBER_OF_PRICE_TIERS32 = 0x11, - EMBER_ZCL_EXTENDED_NUMBER_OF_PRICE_TIERS_NUMBER_OF_PRICE_TIERS33 = 0x12, - EMBER_ZCL_EXTENDED_NUMBER_OF_PRICE_TIERS_NUMBER_OF_PRICE_TIERS34 = 0x13, - EMBER_ZCL_EXTENDED_NUMBER_OF_PRICE_TIERS_NUMBER_OF_PRICE_TIERS35 = 0x14, - EMBER_ZCL_EXTENDED_NUMBER_OF_PRICE_TIERS_NUMBER_OF_PRICE_TIERS36 = 0x15, - EMBER_ZCL_EXTENDED_NUMBER_OF_PRICE_TIERS_NUMBER_OF_PRICE_TIERS37 = 0x16, - EMBER_ZCL_EXTENDED_NUMBER_OF_PRICE_TIERS_NUMBER_OF_PRICE_TIERS38 = 0x17, - EMBER_ZCL_EXTENDED_NUMBER_OF_PRICE_TIERS_NUMBER_OF_PRICE_TIERS39 = 0x18, - EMBER_ZCL_EXTENDED_NUMBER_OF_PRICE_TIERS_NUMBER_OF_PRICE_TIERS40 = 0x19, - EMBER_ZCL_EXTENDED_NUMBER_OF_PRICE_TIERS_NUMBER_OF_PRICE_TIERS41 = 0x1A, - EMBER_ZCL_EXTENDED_NUMBER_OF_PRICE_TIERS_NUMBER_OF_PRICE_TIERS42 = 0x1B, - EMBER_ZCL_EXTENDED_NUMBER_OF_PRICE_TIERS_NUMBER_OF_PRICE_TIERS43 = 0x1C, - EMBER_ZCL_EXTENDED_NUMBER_OF_PRICE_TIERS_NUMBER_OF_PRICE_TIERS44 = 0x1D, - EMBER_ZCL_EXTENDED_NUMBER_OF_PRICE_TIERS_NUMBER_OF_PRICE_TIERS45 = 0x1E, - EMBER_ZCL_EXTENDED_NUMBER_OF_PRICE_TIERS_NUMBER_OF_PRICE_TIERS46 = 0x1F, - EMBER_ZCL_EXTENDED_NUMBER_OF_PRICE_TIERS_NUMBER_OF_PRICE_TIERS47 = 0x20, - EMBER_ZCL_EXTENDED_NUMBER_OF_PRICE_TIERS_NUMBER_OF_PRICE_TIERS48 = 0x21, -} EmberAfExtendedNumberOfPriceTiers; - -typedef enum -{ - EMBER_ZCL_EXTENDED_PRICE_TIER_REFER_TO_PRICE_TIER_FIELD = 0x00, - EMBER_ZCL_EXTENDED_PRICE_TIER_TIER16_PRICE_LABEL = 0x01, - EMBER_ZCL_EXTENDED_PRICE_TIER_TIER17_PRICE_LABEL = 0x02, - EMBER_ZCL_EXTENDED_PRICE_TIER_TIER18_PRICE_LABEL = 0x03, - EMBER_ZCL_EXTENDED_PRICE_TIER_TIER19_PRICE_LABEL = 0x04, - EMBER_ZCL_EXTENDED_PRICE_TIER_TIER20_PRICE_LABEL = 0x05, - EMBER_ZCL_EXTENDED_PRICE_TIER_TIER21_PRICE_LABEL = 0x06, - EMBER_ZCL_EXTENDED_PRICE_TIER_TIER22_PRICE_LABEL = 0x07, - EMBER_ZCL_EXTENDED_PRICE_TIER_TIER23_PRICE_LABEL = 0x08, - EMBER_ZCL_EXTENDED_PRICE_TIER_TIER24_PRICE_LABEL = 0x09, - EMBER_ZCL_EXTENDED_PRICE_TIER_TIER25_PRICE_LABEL = 0x0A, - EMBER_ZCL_EXTENDED_PRICE_TIER_TIER26_PRICE_LABEL = 0x0B, - EMBER_ZCL_EXTENDED_PRICE_TIER_TIER27_PRICE_LABEL = 0x0C, - EMBER_ZCL_EXTENDED_PRICE_TIER_TIER28_PRICE_LABEL = 0x0D, - EMBER_ZCL_EXTENDED_PRICE_TIER_TIER29_PRICE_LABEL = 0x0E, - EMBER_ZCL_EXTENDED_PRICE_TIER_TIER30_PRICE_LABEL = 0x0F, - EMBER_ZCL_EXTENDED_PRICE_TIER_TIER31_PRICE_LABEL = 0x10, - EMBER_ZCL_EXTENDED_PRICE_TIER_TIER32_PRICE_LABEL = 0x11, - EMBER_ZCL_EXTENDED_PRICE_TIER_TIER33_PRICE_LABEL = 0x12, - EMBER_ZCL_EXTENDED_PRICE_TIER_TIER34_PRICE_LABEL = 0x13, - EMBER_ZCL_EXTENDED_PRICE_TIER_TIER35_PRICE_LABEL = 0x14, - EMBER_ZCL_EXTENDED_PRICE_TIER_TIER36_PRICE_LABEL = 0x15, - EMBER_ZCL_EXTENDED_PRICE_TIER_TIER37_PRICE_LABEL = 0x16, - EMBER_ZCL_EXTENDED_PRICE_TIER_TIER38_PRICE_LABEL = 0x17, - EMBER_ZCL_EXTENDED_PRICE_TIER_TIER39_PRICE_LABEL = 0x18, - EMBER_ZCL_EXTENDED_PRICE_TIER_TIER40_PRICE_LABEL = 0x19, - EMBER_ZCL_EXTENDED_PRICE_TIER_TIER41_PRICE_LABEL = 0x1A, - EMBER_ZCL_EXTENDED_PRICE_TIER_TIER42_PRICE_LABEL = 0x1B, - EMBER_ZCL_EXTENDED_PRICE_TIER_TIER43_PRICE_LABEL = 0x1C, - EMBER_ZCL_EXTENDED_PRICE_TIER_TIER44_PRICE_LABEL = 0x1D, - EMBER_ZCL_EXTENDED_PRICE_TIER_TIER45_PRICE_LABEL = 0x1E, - EMBER_ZCL_EXTENDED_PRICE_TIER_TIER46_PRICE_LABEL = 0x1F, - EMBER_ZCL_EXTENDED_PRICE_TIER_TIER47_PRICE_LABEL = 0x20, - EMBER_ZCL_EXTENDED_PRICE_TIER_TIER48_PRICE_LABEL = 0x21, -} EmberAfExtendedPriceTier; - -typedef enum -{ - EMBER_ZCL_EXTENDED_REGISTER_TIER_REFER_TO_REGISTER_TIER_FIELD = 0x00, - EMBER_ZCL_EXTENDED_REGISTER_TIER_CURRENT_TIER16_SUMMATION_DELIVERED_ATTRIBUTE = 0x01, - EMBER_ZCL_EXTENDED_REGISTER_TIER_CURRENT_TIER17_SUMMATION_DELIVERED_ATTRIBUTE = 0x02, - EMBER_ZCL_EXTENDED_REGISTER_TIER_CURRENT_TIER18_SUMMATION_DELIVERED_ATTRIBUTE = 0x03, - EMBER_ZCL_EXTENDED_REGISTER_TIER_CURRENT_TIER19_SUMMATION_DELIVERED_ATTRIBUTE = 0x04, - EMBER_ZCL_EXTENDED_REGISTER_TIER_CURRENT_TIER20_SUMMATION_DELIVERED_ATTRIBUTE = 0x05, - EMBER_ZCL_EXTENDED_REGISTER_TIER_CURRENT_TIER21_SUMMATION_DELIVERED_ATTRIBUTE = 0x06, - EMBER_ZCL_EXTENDED_REGISTER_TIER_CURRENT_TIER22_SUMMATION_DELIVERED_ATTRIBUTE = 0x07, - EMBER_ZCL_EXTENDED_REGISTER_TIER_CURRENT_TIER23_SUMMATION_DELIVERED_ATTRIBUTE = 0x08, - EMBER_ZCL_EXTENDED_REGISTER_TIER_CURRENT_TIER24_SUMMATION_DELIVERED_ATTRIBUTE = 0x09, - EMBER_ZCL_EXTENDED_REGISTER_TIER_CURRENT_TIER25_SUMMATION_DELIVERED_ATTRIBUTE = 0x0A, - EMBER_ZCL_EXTENDED_REGISTER_TIER_CURRENT_TIER26_SUMMATION_DELIVERED_ATTRIBUTE = 0x0B, - EMBER_ZCL_EXTENDED_REGISTER_TIER_CURRENT_TIER27_SUMMATION_DELIVERED_ATTRIBUTE = 0x0C, - EMBER_ZCL_EXTENDED_REGISTER_TIER_CURRENT_TIER28_SUMMATION_DELIVERED_ATTRIBUTE = 0x0D, - EMBER_ZCL_EXTENDED_REGISTER_TIER_CURRENT_TIER29_SUMMATION_DELIVERED_ATTRIBUTE = 0x0E, - EMBER_ZCL_EXTENDED_REGISTER_TIER_CURRENT_TIER30_SUMMATION_DELIVERED_ATTRIBUTE = 0x0F, - EMBER_ZCL_EXTENDED_REGISTER_TIER_CURRENT_TIER31_SUMMATION_DELIVERED_ATTRIBUTE = 0x10, - EMBER_ZCL_EXTENDED_REGISTER_TIER_CURRENT_TIER32_SUMMATION_DELIVERED_ATTRIBUTE = 0x11, - EMBER_ZCL_EXTENDED_REGISTER_TIER_CURRENT_TIER33_SUMMATION_DELIVERED_ATTRIBUTE = 0x12, - EMBER_ZCL_EXTENDED_REGISTER_TIER_CURRENT_TIER34_SUMMATION_DELIVERED_ATTRIBUTE = 0x13, - EMBER_ZCL_EXTENDED_REGISTER_TIER_CURRENT_TIER35_SUMMATION_DELIVERED_ATTRIBUTE = 0x14, - EMBER_ZCL_EXTENDED_REGISTER_TIER_CURRENT_TIER36_SUMMATION_DELIVERED_ATTRIBUTE = 0x15, - EMBER_ZCL_EXTENDED_REGISTER_TIER_CURRENT_TIER37_SUMMATION_DELIVERED_ATTRIBUTE = 0x16, - EMBER_ZCL_EXTENDED_REGISTER_TIER_CURRENT_TIER38_SUMMATION_DELIVERED_ATTRIBUTE = 0x17, - EMBER_ZCL_EXTENDED_REGISTER_TIER_CURRENT_TIER39_SUMMATION_DELIVERED_ATTRIBUTE = 0x18, - EMBER_ZCL_EXTENDED_REGISTER_TIER_CURRENT_TIER40_SUMMATION_DELIVERED_ATTRIBUTE = 0x19, - EMBER_ZCL_EXTENDED_REGISTER_TIER_CURRENT_TIER41_SUMMATION_DELIVERED_ATTRIBUTE = 0x1A, - EMBER_ZCL_EXTENDED_REGISTER_TIER_CURRENT_TIER42_SUMMATION_DELIVERED_ATTRIBUTE = 0x1B, - EMBER_ZCL_EXTENDED_REGISTER_TIER_CURRENT_TIER43_SUMMATION_DELIVERED_ATTRIBUTE = 0x1C, - EMBER_ZCL_EXTENDED_REGISTER_TIER_CURRENT_TIER44_SUMMATION_DELIVERED_ATTRIBUTE = 0x1D, - EMBER_ZCL_EXTENDED_REGISTER_TIER_CURRENT_TIER45_SUMMATION_DELIVERED_ATTRIBUTE = 0x1E, - EMBER_ZCL_EXTENDED_REGISTER_TIER_CURRENT_TIER46_SUMMATION_DELIVERED_ATTRIBUTE = 0x1F, - EMBER_ZCL_EXTENDED_REGISTER_TIER_CURRENT_TIER47_SUMMATION_DELIVERED_ATTRIBUTE = 0x20, - EMBER_ZCL_EXTENDED_REGISTER_TIER_CURRENT_TIER48_SUMMATION_DELIVERED_ATTRIBUTE = 0x21, -} EmberAfExtendedRegisterTier; - -typedef enum -{ - EMBER_ZCL_EZ_MODE_COMMISSIONING_CLUSTER_TYPE_SERVER = 0x00, - EMBER_ZCL_EZ_MODE_COMMISSIONING_CLUSTER_TYPE_CLIENT = 0x01, -} EmberAfEzModeCommissioningClusterType; - -typedef enum -{ - EMBER_ZCL_FAN_MODE_OFF = 0x00, - EMBER_ZCL_FAN_MODE_LOW = 0x01, - EMBER_ZCL_FAN_MODE_MEDIUM = 0x02, - EMBER_ZCL_FAN_MODE_HIGH = 0x03, - EMBER_ZCL_FAN_MODE_ON = 0x04, - EMBER_ZCL_FAN_MODE_AUTO = 0x05, - EMBER_ZCL_FAN_MODE_SMART = 0x06, -} EmberAfFanMode; - -typedef enum -{ - EMBER_ZCL_FAN_MODE_SEQUENCE_LOW_MED_HIGH = 0x00, - EMBER_ZCL_FAN_MODE_SEQUENCE_LOW_HIGH = 0x01, - EMBER_ZCL_FAN_MODE_SEQUENCE_LOW_MED_HIGH_AUTO = 0x02, - EMBER_ZCL_FAN_MODE_SEQUENCE_LOW_HIGH_AUTO = 0x03, - EMBER_ZCL_FAN_MODE_SEQUENCE_ON_AUTO = 0x04, -} EmberAfFanModeSequence; - -typedef enum -{ - EMBER_ZCL_GAS_SPECIFIC_ALARM_GROUPS_TILT_TAMPER = 0x60, - EMBER_ZCL_GAS_SPECIFIC_ALARM_GROUPS_BATTERY_COVER_REMOVED = 0x61, - EMBER_ZCL_GAS_SPECIFIC_ALARM_GROUPS_BATTERY_COVER_CLOSED = 0x62, - EMBER_ZCL_GAS_SPECIFIC_ALARM_GROUPS_EXCESS_FLOW = 0x63, - EMBER_ZCL_GAS_SPECIFIC_ALARM_GROUPS_TILT_TAMPER_ENDED = 0x64, -} EmberAfGasSpecificAlarmGroups; - -typedef enum -{ - EMBER_ZCL_GENERATION_TIER_CURRENT_TIER1_SUMMATION_RECEIVED_ATTRIBUTE = 0x01, - EMBER_ZCL_GENERATION_TIER_CURRENT_TIER2_SUMMATION_RECEIVED_ATTRIBUTE = 0x02, - EMBER_ZCL_GENERATION_TIER_CURRENT_TIER3_SUMMATION_RECEIVED_ATTRIBUTE = 0x03, - EMBER_ZCL_GENERATION_TIER_CURRENT_TIER4_SUMMATION_RECEIVED_ATTRIBUTE = 0x04, - EMBER_ZCL_GENERATION_TIER_CURRENT_TIER5_SUMMATION_RECEIVED_ATTRIBUTE = 0x05, - EMBER_ZCL_GENERATION_TIER_CURRENT_TIER6_SUMMATION_RECEIVED_ATTRIBUTE = 0x06, - EMBER_ZCL_GENERATION_TIER_CURRENT_TIER7_SUMMATION_RECEIVED_ATTRIBUTE = 0x07, - EMBER_ZCL_GENERATION_TIER_CURRENT_TIER8_SUMMATION_RECEIVED_ATTRIBUTE = 0x08, - EMBER_ZCL_GENERATION_TIER_CURRENT_TIER9_SUMMATION_RECEIVED_ATTRIBUTE = 0x09, - EMBER_ZCL_GENERATION_TIER_CURRENT_TIER10_SUMMATION_RECEIVED_ATTRIBUTE = 0x0A, - EMBER_ZCL_GENERATION_TIER_CURRENT_TIER11_SUMMATION_RECEIVED_ATTRIBUTE = 0x0B, - EMBER_ZCL_GENERATION_TIER_CURRENT_TIER12_SUMMATION_RECEIVED_ATTRIBUTE = 0x0C, - EMBER_ZCL_GENERATION_TIER_CURRENT_TIER13_SUMMATION_RECEIVED_ATTRIBUTE = 0x0D, - EMBER_ZCL_GENERATION_TIER_CURRENT_TIER14_SUMMATION_RECEIVED_ATTRIBUTE = 0x0E, - EMBER_ZCL_GENERATION_TIER_CURRENT_TIER15_SUMMATION_RECEIVED_ATTRIBUTE = 0x0F, - EMBER_ZCL_GENERATION_TIER_CURRENT_TIER16_SUMMATION_RECEIVED_ATTRIBUTE = 0x10, - EMBER_ZCL_GENERATION_TIER_CURRENT_TIER17_SUMMATION_RECEIVED_ATTRIBUTE = 0x11, - EMBER_ZCL_GENERATION_TIER_CURRENT_TIER18_SUMMATION_RECEIVED_ATTRIBUTE = 0x12, - EMBER_ZCL_GENERATION_TIER_CURRENT_TIER19_SUMMATION_RECEIVED_ATTRIBUTE = 0x13, - EMBER_ZCL_GENERATION_TIER_CURRENT_TIER20_SUMMATION_RECEIVED_ATTRIBUTE = 0x14, - EMBER_ZCL_GENERATION_TIER_CURRENT_TIER21_SUMMATION_RECEIVED_ATTRIBUTE = 0x15, - EMBER_ZCL_GENERATION_TIER_CURRENT_TIER22_SUMMATION_RECEIVED_ATTRIBUTE = 0x16, - EMBER_ZCL_GENERATION_TIER_CURRENT_TIER23_SUMMATION_RECEIVED_ATTRIBUTE = 0x17, - EMBER_ZCL_GENERATION_TIER_CURRENT_TIER24_SUMMATION_RECEIVED_ATTRIBUTE = 0x18, - EMBER_ZCL_GENERATION_TIER_CURRENT_TIER25_SUMMATION_RECEIVED_ATTRIBUTE = 0x19, - EMBER_ZCL_GENERATION_TIER_CURRENT_TIER26_SUMMATION_RECEIVED_ATTRIBUTE = 0x1A, - EMBER_ZCL_GENERATION_TIER_CURRENT_TIER27_SUMMATION_RECEIVED_ATTRIBUTE = 0x1B, - EMBER_ZCL_GENERATION_TIER_CURRENT_TIER28_SUMMATION_RECEIVED_ATTRIBUTE = 0x1C, - EMBER_ZCL_GENERATION_TIER_CURRENT_TIER29_SUMMATION_RECEIVED_ATTRIBUTE = 0x1D, - EMBER_ZCL_GENERATION_TIER_CURRENT_TIER30_SUMMATION_RECEIVED_ATTRIBUTE = 0x1E, - EMBER_ZCL_GENERATION_TIER_CURRENT_TIER31_SUMMATION_RECEIVED_ATTRIBUTE = 0x1F, - EMBER_ZCL_GENERATION_TIER_CURRENT_TIER32_SUMMATION_RECEIVED_ATTRIBUTE = 0x20, - EMBER_ZCL_GENERATION_TIER_CURRENT_TIER33_SUMMATION_RECEIVED_ATTRIBUTE = 0x21, - EMBER_ZCL_GENERATION_TIER_CURRENT_TIER34_SUMMATION_RECEIVED_ATTRIBUTE = 0x22, - EMBER_ZCL_GENERATION_TIER_CURRENT_TIER35_SUMMATION_RECEIVED_ATTRIBUTE = 0x23, - EMBER_ZCL_GENERATION_TIER_CURRENT_TIER36_SUMMATION_RECEIVED_ATTRIBUTE = 0x24, - EMBER_ZCL_GENERATION_TIER_CURRENT_TIER37_SUMMATION_RECEIVED_ATTRIBUTE = 0x25, - EMBER_ZCL_GENERATION_TIER_CURRENT_TIER38_SUMMATION_RECEIVED_ATTRIBUTE = 0x26, - EMBER_ZCL_GENERATION_TIER_CURRENT_TIER39_SUMMATION_RECEIVED_ATTRIBUTE = 0x27, - EMBER_ZCL_GENERATION_TIER_CURRENT_TIER40_SUMMATION_RECEIVED_ATTRIBUTE = 0x28, - EMBER_ZCL_GENERATION_TIER_CURRENT_TIER41_SUMMATION_RECEIVED_ATTRIBUTE = 0x29, - EMBER_ZCL_GENERATION_TIER_CURRENT_TIER42_SUMMATION_RECEIVED_ATTRIBUTE = 0x2A, - EMBER_ZCL_GENERATION_TIER_CURRENT_TIER43_SUMMATION_RECEIVED_ATTRIBUTE = 0x2B, - EMBER_ZCL_GENERATION_TIER_CURRENT_TIER44_SUMMATION_RECEIVED_ATTRIBUTE = 0x2C, - EMBER_ZCL_GENERATION_TIER_CURRENT_TIER45_SUMMATION_RECEIVED_ATTRIBUTE = 0x2D, - EMBER_ZCL_GENERATION_TIER_CURRENT_TIER46_SUMMATION_RECEIVED_ATTRIBUTE = 0x2E, - EMBER_ZCL_GENERATION_TIER_CURRENT_TIER47_SUMMATION_RECEIVED_ATTRIBUTE = 0x2F, - EMBER_ZCL_GENERATION_TIER_CURRENT_TIER48_SUMMATION_RECEIVED_ATTRIBUTE = 0x30, -} EmberAfGenerationTier; - -typedef enum -{ - EMBER_ZCL_GENERIC_ALARM_GROUPS_CHECK_METER = 0x00, - EMBER_ZCL_GENERIC_ALARM_GROUPS_LOW_BATTERY = 0x01, - EMBER_ZCL_GENERIC_ALARM_GROUPS_TAMPER_DETECT = 0x02, - EMBER_ZCL_GENERIC_ALARM_GROUPS_LEAK_DETECT = 0x05, - EMBER_ZCL_GENERIC_ALARM_GROUPS_SERVICE_DISCONNECT = 0x06, - EMBER_ZCL_GENERIC_ALARM_GROUPS_METER_COVER_REMOVED = 0x08, - EMBER_ZCL_GENERIC_ALARM_GROUPS_METER_COVER_CLOSED = 0x09, - EMBER_ZCL_GENERIC_ALARM_GROUPS_STRONG_MAGNETIC_FIELD = 0x0A, - EMBER_ZCL_GENERIC_ALARM_GROUPS_NO_STRONG_MAGNETIC_FIELD = 0x0B, - EMBER_ZCL_GENERIC_ALARM_GROUPS_BATTERY_FAILURE = 0x0C, - EMBER_ZCL_GENERIC_ALARM_GROUPS_PROGRAM_MEMORY_ERROR = 0x0D, - EMBER_ZCL_GENERIC_ALARM_GROUPS_R_A_M_ERROR = 0x0E, - EMBER_ZCL_GENERIC_ALARM_GROUPS_N_V_MEMORY_ERROR = 0x0F, -} EmberAfGenericAlarmGroups; - -typedef enum -{ - EMBER_ZCL_GENERIC_ALARM_GROUPS_ELECTRICITY_POWER_FAILURE = 0x03, - EMBER_ZCL_GENERIC_ALARM_GROUPS_ELECTRICITY_POWER_QUALITY = 0x04, -} EmberAfGenericAlarmGroupsElectricity; - -typedef enum -{ - EMBER_ZCL_GENERIC_ALARM_GROUPS_GAS_LOW_PRESSURE = 0x04, - EMBER_ZCL_GENERIC_ALARM_GROUPS_GAS_REVERSE_FLOW = 0x07, -} EmberAfGenericAlarmGroupsGas; - -typedef enum -{ - EMBER_ZCL_GENERIC_ALARM_GROUPS_HEAT_COOLING_TEMPERATURE_SENSOR = 0x03, - EMBER_ZCL_GENERIC_ALARM_GROUPS_HEAT_COOLING_BURST_DETECT = 0x04, - EMBER_ZCL_GENERIC_ALARM_GROUPS_HEAT_COOLING_FLOW_SENSOR = 0x07, -} EmberAfGenericAlarmGroupsHeatCooling; - -typedef enum -{ - EMBER_ZCL_GENERIC_ALARM_GROUPS_WATER_WATER_PIPE_EMPTY = 0x03, - EMBER_ZCL_GENERIC_ALARM_GROUPS_WATER_WATER_LOW_PRESSURE = 0x04, - EMBER_ZCL_GENERIC_ALARM_GROUPS_WATER_WATER_REVERSE_FLOW = 0x07, -} EmberAfGenericAlarmGroupsWater; - -typedef enum -{ - EMBER_ZCL_GENERIC_DEVICE_CLASS_LIGHTING = 0x00, -} EmberAfGenericDeviceClass; - -typedef enum -{ - EMBER_ZCL_GENERIC_DEVICE_TYPE_INCANDESCENT = 0x00, - EMBER_ZCL_GENERIC_DEVICE_TYPE_SPOTLIGHT_HALOGEN = 0x01, - EMBER_ZCL_GENERIC_DEVICE_TYPE_HALOGEN_BULB = 0x02, - EMBER_ZCL_GENERIC_DEVICE_TYPE_CFL = 0x03, - EMBER_ZCL_GENERIC_DEVICE_TYPE_LINEAR_FLOURESCENT = 0x04, - EMBER_ZCL_GENERIC_DEVICE_TYPE_LED_BULB = 0x05, - EMBER_ZCL_GENERIC_DEVICE_TYPE_SPOTLIGHT_LED = 0x06, - EMBER_ZCL_GENERIC_DEVICE_TYPE_LED_STRIP = 0x07, - EMBER_ZCL_GENERIC_DEVICE_TYPE_LED_TUBE = 0x08, - EMBER_ZCL_GENERIC_DEVICE_TYPE_GENERIC_INDOOR_FIXTURE = 0x09, - EMBER_ZCL_GENERIC_DEVICE_TYPE_GENERIC_OUTDOOR_FIXTURE = 0x0A, - EMBER_ZCL_GENERIC_DEVICE_TYPE_PENDANT_FIXTURE = 0x0B, - EMBER_ZCL_GENERIC_DEVICE_TYPE_FLOOR_STANDING_FIXTURE = 0x0C, - EMBER_ZCL_GENERIC_DEVICE_TYPE_GENERIC_CONTROLLER = 0xE0, - EMBER_ZCL_GENERIC_DEVICE_TYPE_WALL_SWITCH = 0xE1, - EMBER_ZCL_GENERIC_DEVICE_TYPE_PORTABLE_REMOTE_CONTROLLER = 0xE2, - EMBER_ZCL_GENERIC_DEVICE_TYPE_MOTION_OR_LIGHT_SENSOR = 0xE3, - EMBER_ZCL_GENERIC_DEVICE_TYPE_GENERIC_ACTUATOR = 0xF0, - EMBER_ZCL_GENERIC_DEVICE_TYPE_PLUGIN_UNIT = 0xF1, - EMBER_ZCL_GENERIC_DEVICE_TYPE_RETROFIT_ACTUATOR = 0xF2, - EMBER_ZCL_GENERIC_DEVICE_TYPE_UNSPECIFIED = 0xFF, -} EmberAfGenericDeviceType; - -typedef enum -{ - EMBER_ZCL_GENERIC_FLOW_PRESSURE_ALARM_GROUPS_BURST_DETECT = 0x30, - EMBER_ZCL_GENERIC_FLOW_PRESSURE_ALARM_GROUPS_PRESSURE_TOO_LOW = 0x31, - EMBER_ZCL_GENERIC_FLOW_PRESSURE_ALARM_GROUPS_PRESSURE_TOO_HIGH = 0x32, - EMBER_ZCL_GENERIC_FLOW_PRESSURE_ALARM_GROUPS_FLOW_SENSOR_COMMUNICATION_ERROR = 0x33, - EMBER_ZCL_GENERIC_FLOW_PRESSURE_ALARM_GROUPS_FLOW_SENSOR_MEASUREMENT_FAULT = 0x34, - EMBER_ZCL_GENERIC_FLOW_PRESSURE_ALARM_GROUPS_FLOW_SENSOR_REVERSE_FLOW = 0x35, - EMBER_ZCL_GENERIC_FLOW_PRESSURE_ALARM_GROUPS_FLOW_SENSOR_AIR_DETECT = 0x36, - EMBER_ZCL_GENERIC_FLOW_PRESSURE_ALARM_GROUPS_PIPE_EMPTY = 0x37, -} EmberAfGenericFlowPressureAlarmGroups; - -typedef enum -{ - EMBER_ZCL_GP_DEVICE_ID_GP_SIMPLE_GENERICE_TWO_STATE_SWITCH = 0x00, - EMBER_ZCL_GP_DEVICE_ID_GP_ON_OFF_SWITCH = 0x08, - EMBER_ZCL_GP_DEVICE_ID_GP_LEVEL_CONTROL_SWITCH = 0x10, - EMBER_ZCL_GP_DEVICE_ID_GP_INDOOR_ENVIRONMENT_SNESOR = 0x18, -} EmberAfGpDeviceId; - -typedef enum -{ - EMBER_ZCL_GP_GPDF_IDENTIFY = 0x00, - EMBER_ZCL_GP_GPDF_MATCH_ONLY_ON_GPD_ADDRESS = 0x02, - EMBER_ZCL_GP_GPDF_RECALL_SCENE0 = 0x10, - EMBER_ZCL_GP_GPDF_RECALL_SCENE1 = 0x11, - EMBER_ZCL_GP_GPDF_RECALL_SCENE2 = 0x12, - EMBER_ZCL_GP_GPDF_RECALL_SCENE3 = 0x13, - EMBER_ZCL_GP_GPDF_RECALL_SCENE4 = 0x14, - EMBER_ZCL_GP_GPDF_RECALL_SCENE5 = 0x15, - EMBER_ZCL_GP_GPDF_RECALL_SCENE6 = 0x16, - EMBER_ZCL_GP_GPDF_RECALL_SCENE7 = 0x17, - EMBER_ZCL_GP_GPDF_STORE_SCENE0 = 0x18, - EMBER_ZCL_GP_GPDF_STORE_SCENE1 = 0x19, - EMBER_ZCL_GP_GPDF_STORE_SCENE2 = 0x1A, - EMBER_ZCL_GP_GPDF_STORE_SCENE3 = 0x1B, - EMBER_ZCL_GP_GPDF_STORE_SCENE4 = 0x1C, - EMBER_ZCL_GP_GPDF_STORE_SCENE5 = 0x1D, - EMBER_ZCL_GP_GPDF_STORE_SCENE6 = 0x1E, - EMBER_ZCL_GP_GPDF_STORE_SCENE7 = 0x1F, - EMBER_ZCL_GP_GPDF_OFF = 0x20, - EMBER_ZCL_GP_GPDF_ON = 0x21, - EMBER_ZCL_GP_GPDF_TOGGLE = 0x22, - EMBER_ZCL_GP_GPDF_RELEASE = 0x23, - EMBER_ZCL_GP_GPDF_MOVE_UP = 0x30, - EMBER_ZCL_GP_GPDF_MOVE_DOWN = 0x31, - EMBER_ZCL_GP_GPDF_STEP_UP = 0x32, - EMBER_ZCL_GP_GPDF_STEP_DOWN = 0x33, - EMBER_ZCL_GP_GPDF_LEVEL_CONTROL_STOP = 0x34, - EMBER_ZCL_GP_GPDF_MOVE_UP_WITH_ON_OFF = 0x35, - EMBER_ZCL_GP_GPDF_MOVE_DOWN_WITH_ON_OFF = 0x36, - EMBER_ZCL_GP_GPDF_STEP_UP_WITH_ON_OFF = 0x37, - EMBER_ZCL_GP_GPDF_STEP_DOWN_WITH_ON_OFF = 0x38, - EMBER_ZCL_GP_GPDF_MOVE_HUE_STOP = 0x40, - EMBER_ZCL_GP_GPDF_MOVE_HUE_UP = 0x41, - EMBER_ZCL_GP_GPDF_MOVE_HUE_DOWN = 0x42, - EMBER_ZCL_GP_GPDF_STEP_HUE_UP = 0x43, - EMBER_ZCL_GP_GPDF_STEP_HUE_DOWN = 0x44, - EMBER_ZCL_GP_GPDF_MOVE_SATURATION_STOP = 0x45, - EMBER_ZCL_GP_GPDF_MOVE_SATURATION_UP = 0x46, - EMBER_ZCL_GP_GPDF_MOVE_SATURATION_DOWN = 0x47, - EMBER_ZCL_GP_GPDF_STEP_SATURATION_UP = 0x48, - EMBER_ZCL_GP_GPDF_STEP_SATURATION_DOWN = 0x49, - EMBER_ZCL_GP_GPDF_MOVE_COLOR = 0x4A, - EMBER_ZCL_GP_GPDF_STEP_COLOR = 0x4B, - EMBER_ZCL_GP_GPDF_LOCK_DOOR = 0x50, - EMBER_ZCL_GP_GPDF_UNLOCK_DOOR = 0x51, - EMBER_ZCL_GP_GPDF_PRESS1_OF1 = 0x60, - EMBER_ZCL_GP_GPDF_RELEASE1_OF1 = 0x61, - EMBER_ZCL_GP_GPDF_PRESS1_OF2 = 0x62, - EMBER_ZCL_GP_GPDF_RELEASE1_OF2 = 0x63, - EMBER_ZCL_GP_GPDF_PRESS2_OF2 = 0x64, - EMBER_ZCL_GP_GPDF_RELEASE2_OF2 = 0x65, - EMBER_ZCL_GP_GPDF_SHORT_PRESS1_OF1 = 0x66, - EMBER_ZCL_GP_GPDF_SHORT_PRESS1_OF2 = 0x67, - EMBER_ZCL_GP_GPDF_SHORT_PRESS2_OF2 = 0x68, - EMBER_ZCL_GP_GPDF_8BITS_VECTOR_PRESS = 0x69, - EMBER_ZCL_GP_GPDF_8BITS_VECTOR_RELEASE = 0x6A, - EMBER_ZCL_GP_GPDF_ATTRIBUTE_REPORTING = 0xA0, - EMBER_ZCL_GP_GPDF_MFR_SP_ATTR_RPTG = 0xA1, - EMBER_ZCL_GP_GPDF_MULTI_CLUSTER_RPTG = 0xA2, - EMBER_ZCL_GP_GPDF_MFR_SP_MULTI_CLUSTER_RPTG = 0xA3, - EMBER_ZCL_GP_GPDF_REQUEST_ATTRIBUTE = 0xA4, - EMBER_ZCL_GP_GPDF_READ_ATTR_RESPONSE = 0xA5, - EMBER_ZCL_GP_GPDF_ZCL_TUNNELING_WITH_PAYLOAD = 0xA6, - EMBER_ZCL_GP_GPDF_COMPACT_ATTRIBUTE_REPORTING = 0xA8, - EMBER_ZCL_GP_GPDF_ANY_GPD_SENSOR_CMD = 0xAF, - EMBER_ZCL_GP_GPDF_MFR_DEF_GPD_CMD0 = 0xB0, - EMBER_ZCL_GP_GPDF_MFR_DEF_GPD_CMD1 = 0xB1, - EMBER_ZCL_GP_GPDF_MFR_DEF_GPD_CMD2 = 0xB2, - EMBER_ZCL_GP_GPDF_MFR_DEF_GPD_CMD3 = 0xB3, - EMBER_ZCL_GP_GPDF_MFR_DEF_GPD_CMD4 = 0xB4, - EMBER_ZCL_GP_GPDF_MFR_DEF_GPD_CMD5 = 0xB5, - EMBER_ZCL_GP_GPDF_MFR_DEF_GPD_CMD6 = 0xB6, - EMBER_ZCL_GP_GPDF_MFR_DEF_GPD_CMD7 = 0xB7, - EMBER_ZCL_GP_GPDF_MFR_DEF_GPD_CMD8 = 0xB8, - EMBER_ZCL_GP_GPDF_MFR_DEF_GPD_CMD9 = 0xB9, - EMBER_ZCL_GP_GPDF_MFR_DEF_GPD_CMD_A = 0xBA, - EMBER_ZCL_GP_GPDF_MFR_DEF_GPD_CMD_B = 0xBB, - EMBER_ZCL_GP_GPDF_MFR_DEF_GPD_CMD_C = 0xBC, - EMBER_ZCL_GP_GPDF_MFR_DEF_GPD_CMD_D = 0xBD, - EMBER_ZCL_GP_GPDF_MFR_DEF_GPD_CMD_E = 0xBE, - EMBER_ZCL_GP_GPDF_MFR_DEF_GPD_CMD_F = 0xBF, - EMBER_ZCL_GP_GPDF_COMMISSIONING = 0xE0, - EMBER_ZCL_GP_GPDF_DECOMMISSIONING = 0xE1, - EMBER_ZCL_GP_GPDF_SUCCESS = 0xE2, - EMBER_ZCL_GP_GPDF_CHANNEL_REQUEST = 0xE3, - EMBER_ZCL_GP_GPDF_APPLICATION_DESCRIPTION = 0xE4, - EMBER_ZCL_GP_GPDF_COMMISSIONING_REPLY = 0xF0, - EMBER_ZCL_GP_GPDF_WRITE_ATTRIBUTES = 0xF1, - EMBER_ZCL_GP_GPDF_READ_ATTRIBUTES = 0xF2, - EMBER_ZCL_GP_GPDF_CHANNEL_CONFIGURATION = 0xF3, - EMBER_ZCL_GP_GPDF_ZCL_TUNNELING = 0xF6, -} EmberAfGpGpdf; - -typedef enum -{ - EMBER_ZCL_GP_PAIRING_CONFIGURATION_ACTION_NO_ACTION = 0x00, - EMBER_ZCL_GP_PAIRING_CONFIGURATION_ACTION_EXTEND_SINK_TABLE_ENTRY = 0x01, - EMBER_ZCL_GP_PAIRING_CONFIGURATION_ACTION_REPLACE_SINK_TABLE_ENTRY = 0x02, - EMBER_ZCL_GP_PAIRING_CONFIGURATION_ACTION_REMOVE_A_PAIRING = 0x03, - EMBER_ZCL_GP_PAIRING_CONFIGURATION_ACTION_REMOVE_GPD = 0x04, - EMBER_ZCL_GP_PAIRING_CONFIGURATION_ACTION_APPLICATION_DESCRIPTION = 0x05, -} EmberAfGpPairingConfigurationAction; - -typedef enum -{ - EMBER_ZCL_GP_PAIRING_CONFIGURATION_OPTION_COMMUNICATION_MODE_UNICAST_FORWARDING = 0x00, - EMBER_ZCL_GP_PAIRING_CONFIGURATION_OPTION_COMMUNICATION_MODE_GROUPCAST_FORWARDING_TO_D_GROUP_I_D = 0x08, - EMBER_ZCL_GP_PAIRING_CONFIGURATION_OPTION_COMMUNICATION_MODE_GROUPCAST_FORWARDING_TO_PRE_COMMISSIONED = 0x10, - EMBER_ZCL_GP_PAIRING_CONFIGURATION_OPTION_COMMUNICATION_MODE_UNICAST_FORWARDING_LIGHTWEIGHT = 0x18, -} EmberAfGpPairingConfigurationOptionCommunicationMode; - -typedef enum -{ - EMBER_ZCL_GP_PAIRING_OPTIONS_COMMUNICATION_MODE_FULL_UNICAST_FORWARDING = 0x00, - EMBER_ZCL_GP_PAIRING_OPTIONS_COMMUNICATION_MODE_GROUPCAST_FORWARDING_TO_D_GROUP_ID = 0x01, - EMBER_ZCL_GP_PAIRING_OPTIONS_COMMUNICATION_MODE_GROUPCAST_FORWARDING_TO_PRE_COMM_UNIT = 0x10, - EMBER_ZCL_GP_PAIRING_OPTIONS_COMMUNICATION_MODE_UNICAST_FORWARDING_BY_PROX_SUPPORT = 0x11, -} EmberAfGpPairingOptionsCommunicationMode; - -typedef enum -{ - EMBER_ZCL_GP_PROXY_TABLE_REQUEST_OPTIONS_REQUEST_TYPE_BY_GPD_ID = 0x00, - EMBER_ZCL_GP_PROXY_TABLE_REQUEST_OPTIONS_REQUEST_TYPE_BY_INDEX = 0x01, -} EmberAfGpProxyTableRequestOptionsRequestType; - -typedef enum -{ - EMBER_ZCL_GP_PROXY_TABLE_RESPONSE_STATUS_SUCCESS = 0x00, - EMBER_ZCL_GP_PROXY_TABLE_RESPONSE_STATUS_NOT_FOUND = 0x8B, -} EmberAfGpProxyTableResponseStatus; - -typedef enum -{ - EMBER_ZCL_GP_SECURITY_KEY_TYPE_NONE = 0x00, - EMBER_ZCL_GP_SECURITY_KEY_TYPE_ZIGBEE_NETWORK_KEY = 0x01, - EMBER_ZCL_GP_SECURITY_KEY_TYPE_GPD_GROUP_KEY = 0x02, - EMBER_ZCL_GP_SECURITY_KEY_TYPE_NETWORK_DERIVED_GROUP_KEY = 0x03, - EMBER_ZCL_GP_SECURITY_KEY_TYPE_INDIVIDIGUAL_GPD_KEY = 0x04, - EMBER_ZCL_GP_SECURITY_KEY_TYPE_DERIVED_INDIVIDUAL_GPD_KEY = 0x07, -} EmberAfGpSecurityKeyType; - -typedef enum -{ - EMBER_ZCL_GP_SINK_TABLE_REQUEST_OPTIONS_REQUEST_TABLE_ENTRIES_BY_GPD_ID = 0x00, - EMBER_ZCL_GP_SINK_TABLE_REQUEST_OPTIONS_REQUEST_TABLE_ENTRIES_BY_INDEX = 0x01, -} EmberAfGpSinkTableRequestOptions; - -typedef enum -{ - EMBER_ZCL_GP_SINK_TABLE_RESPONSE_STATUS_SUCCESS = 0x00, - EMBER_ZCL_GP_SINK_TABLE_RESPONSE_STATUS_NOT_FOUND = 0x8B, -} EmberAfGpSinkTableResponseStatus; - -typedef enum -{ - EMBER_ZCL_GP_TRANSLATION_TABLE_RESPONSE_STATUS_SUCCESS = 0x00, - EMBER_ZCL_GP_TRANSLATION_TABLE_RESPONSE_STATUS_NOT_FOUND = 0x8B, -} EmberAfGpTranslationTableResponseStatus; - -typedef enum -{ - EMBER_ZCL_GP_TRANSLATION_TABLE_UPDATE_ACTION_ADD_TRANSLATION_TABLE_ENTRY = 0x00, - EMBER_ZCL_GP_TRANSLATION_TABLE_UPDATE_ACTION_REPLACE_TRANSLATION_TABLE_ENTRY = 0x08, - EMBER_ZCL_GP_TRANSLATION_TABLE_UPDATE_ACTION_REMOVE_TRANSLATION_TABLE_ENTRY = 0x10, - EMBER_ZCL_GP_TRANSLATION_TABLE_UPDATE_ACTION_RESERVED = 0x18, -} EmberAfGpTranslationTableUpdateAction; - -typedef enum -{ - EMBER_ZCL_HEAT_AND_COOLING_SPECIFIC_ALARM_GROUPS_INLET_TEMPERATURE_SENSOR_FAULT = 0x50, - EMBER_ZCL_HEAT_AND_COOLING_SPECIFIC_ALARM_GROUPS_OUTLET_TEMPERATURE_SENSOR_FAULT = 0x51, -} EmberAfHeatAndCoolingSpecificAlarmGroups; - -typedef enum -{ - EMBER_ZCL_HUE_DIRECTION_SHORTEST_DISTANCE = 0x00, - EMBER_ZCL_HUE_DIRECTION_LONGEST_DISTANCE = 0x01, - EMBER_ZCL_HUE_DIRECTION_UP = 0x02, - EMBER_ZCL_HUE_DIRECTION_DOWN = 0x03, -} EmberAfHueDirection; - -typedef enum -{ - EMBER_ZCL_HUE_MOVE_MODE_STOP = 0x00, - EMBER_ZCL_HUE_MOVE_MODE_UP = 0x01, - EMBER_ZCL_HUE_MOVE_MODE_DOWN = 0x03, -} EmberAfHueMoveMode; - -typedef enum -{ - EMBER_ZCL_HUE_STEP_MODE_UP = 0x01, - EMBER_ZCL_HUE_STEP_MODE_DOWN = 0x03, -} EmberAfHueStepMode; - -typedef enum -{ - EMBER_ZCL_IAS_ACE_ALARM_STATUS_NO_ALARM = 0x00, - EMBER_ZCL_IAS_ACE_ALARM_STATUS_BURGLAR = 0x01, - EMBER_ZCL_IAS_ACE_ALARM_STATUS_FIRE = 0x02, - EMBER_ZCL_IAS_ACE_ALARM_STATUS_EMERGENCY = 0x03, - EMBER_ZCL_IAS_ACE_ALARM_STATUS_POLICE_PANIC = 0x04, - EMBER_ZCL_IAS_ACE_ALARM_STATUS_FIRE_PANIC = 0x05, - EMBER_ZCL_IAS_ACE_ALARM_STATUS_EMERGENCY_PANIC = 0x06, -} EmberAfIasAceAlarmStatus; - -typedef enum -{ - EMBER_ZCL_IAS_ACE_ARM_MODE_DISARM = 0x00, - EMBER_ZCL_IAS_ACE_ARM_MODE_ARM_DAY_HOME_ZONES_ONLY = 0x01, - EMBER_ZCL_IAS_ACE_ARM_MODE_ARM_NIGHT_SLEEP_ZONES_ONLY = 0x02, - EMBER_ZCL_IAS_ACE_ARM_MODE_ARM_ALL_ZONES = 0x03, -} EmberAfIasAceArmMode; - -typedef enum -{ - EMBER_ZCL_IAS_ACE_ARM_NOTIFICATION_ALL_ZONES_DISARMED = 0x00, - EMBER_ZCL_IAS_ACE_ARM_NOTIFICATION_ONLY_DAY_HOME_ZONES_ARMED = 0x01, - EMBER_ZCL_IAS_ACE_ARM_NOTIFICATION_ONLY_NIGHT_SLEEP_ZONES_ARMED = 0x02, - EMBER_ZCL_IAS_ACE_ARM_NOTIFICATION_ALL_ZONES_ARMED = 0x03, - EMBER_ZCL_IAS_ACE_ARM_NOTIFICATION_INVALID_ARM_DISARM_CODE = 0x04, - EMBER_ZCL_IAS_ACE_ARM_NOTIFICATION_NOT_READY_TO_ARM = 0x05, - EMBER_ZCL_IAS_ACE_ARM_NOTIFICATION_ALREADY_DISARMED = 0x06, -} EmberAfIasAceArmNotification; - -typedef enum -{ - EMBER_ZCL_IAS_ACE_AUDIBLE_NOTIFICATION_MUTE = 0x00, - EMBER_ZCL_IAS_ACE_AUDIBLE_NOTIFICATION_DEFAULT_SOUND = 0x01, -} EmberAfIasAceAudibleNotification; - -typedef enum -{ - EMBER_ZCL_IAS_ACE_BYPASS_RESULT_ZONE_BYPASSED = 0x00, - EMBER_ZCL_IAS_ACE_BYPASS_RESULT_ZONE_NOT_BYPASSED = 0x01, - EMBER_ZCL_IAS_ACE_BYPASS_RESULT_NOT_ALLOWED = 0x02, - EMBER_ZCL_IAS_ACE_BYPASS_RESULT_INVALID_ZONE_ID = 0x03, - EMBER_ZCL_IAS_ACE_BYPASS_RESULT_UNKNOWN_ZONE_ID = 0x04, - EMBER_ZCL_IAS_ACE_BYPASS_RESULT_INVALID_ARM_DISARM_CODE = 0x05, -} EmberAfIasAceBypassResult; - -typedef enum -{ - EMBER_ZCL_IAS_ACE_PANEL_STATUS_PANEL_DISARMED = 0x00, - EMBER_ZCL_IAS_ACE_PANEL_STATUS_ARMED_STAY = 0x01, - EMBER_ZCL_IAS_ACE_PANEL_STATUS_ARMED_NIGHT = 0x02, - EMBER_ZCL_IAS_ACE_PANEL_STATUS_ARMED_AWAY = 0x03, - EMBER_ZCL_IAS_ACE_PANEL_STATUS_EXIT_DELAY = 0x04, - EMBER_ZCL_IAS_ACE_PANEL_STATUS_ENTRY_DELAY = 0x05, - EMBER_ZCL_IAS_ACE_PANEL_STATUS_NOT_READY_TO_ARM = 0x06, - EMBER_ZCL_IAS_ACE_PANEL_STATUS_IN_ALARM = 0x07, - EMBER_ZCL_IAS_ACE_PANEL_STATUS_ARMING_STAY = 0x08, - EMBER_ZCL_IAS_ACE_PANEL_STATUS_ARMING_NIGHT = 0x09, - EMBER_ZCL_IAS_ACE_PANEL_STATUS_ARMING_AWAY = 0x0A, -} EmberAfIasAcePanelStatus; - -typedef enum -{ - EMBER_ZCL_IAS_ENROLL_RESPONSE_CODE_SUCCESS = 0x00, - EMBER_ZCL_IAS_ENROLL_RESPONSE_CODE_NOT_SUPPORTED = 0x01, - EMBER_ZCL_IAS_ENROLL_RESPONSE_CODE_NO_ENROLL_PERMIT = 0x02, - EMBER_ZCL_IAS_ENROLL_RESPONSE_CODE_TOO_MANY_ZONES = 0x03, -} EmberAfIasEnrollResponseCode; - -typedef enum -{ - EMBER_ZCL_IAS_ZONE_STATE_NOT_ENROLLED = 0x00, - EMBER_ZCL_IAS_ZONE_STATE_ENROLLED = 0x01, -} EmberAfIasZoneState; - -typedef enum -{ - EMBER_ZCL_IAS_ZONE_TYPE_STANDARD_CIE = 0x0000, - EMBER_ZCL_IAS_ZONE_TYPE_MOTION_SENSOR = 0x000D, - EMBER_ZCL_IAS_ZONE_TYPE_CONTACT_SWITCH = 0x0015, - EMBER_ZCL_IAS_ZONE_TYPE_FIRE_SENSOR = 0x0028, - EMBER_ZCL_IAS_ZONE_TYPE_WATER_SENSOR = 0x002A, - EMBER_ZCL_IAS_ZONE_TYPE_GAS_SENSOR = 0x002B, - EMBER_ZCL_IAS_ZONE_TYPE_PERSONAL_EMERGENCY_DEVICE = 0x002C, - EMBER_ZCL_IAS_ZONE_TYPE_VIBRATION_MOVEMENT_SENSOR = 0x002D, - EMBER_ZCL_IAS_ZONE_TYPE_REMOTE_CONTROL = 0x010F, - EMBER_ZCL_IAS_ZONE_TYPE_KEY_FOB = 0x0115, - EMBER_ZCL_IAS_ZONE_TYPE_KEYPAD = 0x021D, - EMBER_ZCL_IAS_ZONE_TYPE_STANDARD_WARNING_DEVICE = 0x0225, - EMBER_ZCL_IAS_ZONE_TYPE_GLASS_BREAK_SENSOR = 0x0226, - EMBER_ZCL_IAS_ZONE_TYPE_CARBON_MONOXIDE_SENSOR = 0x0227, - EMBER_ZCL_IAS_ZONE_TYPE_SECURITY_REPEATER = 0x0229, - EMBER_ZCL_IAS_ZONE_TYPE_INVALID_ZONE_TYPE = 0xFFFF, -} EmberAfIasZoneType; - -typedef enum -{ - EMBER_ZCL_IDENTIFY_EFFECT_IDENTIFIER_BLINK = 0x00, - EMBER_ZCL_IDENTIFY_EFFECT_IDENTIFIER_BREATHE = 0x01, - EMBER_ZCL_IDENTIFY_EFFECT_IDENTIFIER_OKAY = 0x02, - EMBER_ZCL_IDENTIFY_EFFECT_IDENTIFIER_CHANNEL_CHANGE = 0x0B, - EMBER_ZCL_IDENTIFY_EFFECT_IDENTIFIER_FINISH_EFFECT = 0xFE, - EMBER_ZCL_IDENTIFY_EFFECT_IDENTIFIER_STOP_EFFECT = 0xFF, -} EmberAfIdentifyEffectIdentifier; - -typedef enum -{ - EMBER_ZCL_IDENTIFY_EFFECT_VARIANT_DEFAULT = 0x00, -} EmberAfIdentifyEffectVariant; - -typedef enum -{ - EMBER_ZCL_KEY_INDEX_DEVELOPMENT = 0x00, - EMBER_ZCL_KEY_INDEX_MASTER = 0x04, - EMBER_ZCL_KEY_INDEX_CERTIFICATION = 0x0F, -} EmberAfKeyIndex; - -typedef enum -{ - EMBER_ZCL_KEYPAD_LOCKOUT_NO_LOCKOUT = 0x00, - EMBER_ZCL_KEYPAD_LOCKOUT_LEVEL_ONE_LOCKOUT = 0x01, - EMBER_ZCL_KEYPAD_LOCKOUT_LEVEL_TWO_LOCKOUT = 0x02, - EMBER_ZCL_KEYPAD_LOCKOUT_LEVEL_THREE_LOCKOUT = 0x03, - EMBER_ZCL_KEYPAD_LOCKOUT_LEVEL_FOUR_LOCKOUT = 0x04, - EMBER_ZCL_KEYPAD_LOCKOUT_LEVELFIVE_LOCKOUT = 0x05, -} EmberAfKeypadLockout; - -typedef enum -{ - EMBER_ZCL_LEVEL_CONTROL_OPTIONS_EXECUTE_IF_OFF = 0x01, - EMBER_ZCL_LEVEL_CONTROL_OPTIONS_COUPLE_COLOR_TEMP_TO_LEVEL = 0x02, -} EmberAfLevelControlOptions; - -typedef enum -{ - EMBER_ZCL_LEVEL_STATUS_ON_TARGET = 0x00, - EMBER_ZCL_LEVEL_STATUS_BELOW_TARGET = 0x01, - EMBER_ZCL_LEVEL_STATUS_ABOVE_TARGET = 0x02, -} EmberAfLevelStatus; - -typedef enum -{ - EMBER_ZCL_LOCATION_METHOD_LATERATION = 0x00, - EMBER_ZCL_LOCATION_METHOD_SIGNPOSTING = 0x01, - EMBER_ZCL_LOCATION_METHOD_RF_FINGERPRINTING = 0x02, - EMBER_ZCL_LOCATION_METHOD_OUT_OF_BAND = 0x03, -} EmberAfLocationMethod; - -typedef enum -{ - EMBER_ZCL_MANUFACTURER_SPECIFIC_ALARM_GROUPS_MANUFACTURER_SPECIFIC_A = 0xB0, - EMBER_ZCL_MANUFACTURER_SPECIFIC_ALARM_GROUPS_MANUFACTURER_SPECIFIC_B = 0xB1, - EMBER_ZCL_MANUFACTURER_SPECIFIC_ALARM_GROUPS_MANUFACTURER_SPECIFIC_C = 0xB2, - EMBER_ZCL_MANUFACTURER_SPECIFIC_ALARM_GROUPS_MANUFACTURER_SPECIFIC_D = 0xB3, - EMBER_ZCL_MANUFACTURER_SPECIFIC_ALARM_GROUPS_MANUFACTURER_SPECIFIC_E = 0xB4, - EMBER_ZCL_MANUFACTURER_SPECIFIC_ALARM_GROUPS_MANUFACTURER_SPECIFIC_F = 0xB5, - EMBER_ZCL_MANUFACTURER_SPECIFIC_ALARM_GROUPS_MANUFACTURER_SPECIFIC_G = 0xB6, - EMBER_ZCL_MANUFACTURER_SPECIFIC_ALARM_GROUPS_MANUFACTURER_SPECIFIC_H = 0xB7, - EMBER_ZCL_MANUFACTURER_SPECIFIC_ALARM_GROUPS_MANUFACTURER_SPECIFIC_I = 0xB8, -} EmberAfManufacturerSpecificAlarmGroups; - -typedef enum -{ - EMBER_ZCL_MEASUREMENT_LIGHT_SENSOR_TYPE_PHOTODIODE = 0x00, - EMBER_ZCL_MEASUREMENT_LIGHT_SENSOR_TYPE_CMOS = 0x01, -} EmberAfMeasurementLightSensorType; - -typedef enum -{ - EMBER_ZCL_MESSAGING_CONTROL_CONFIRMATION_NOT_REQUIRED = 0x00, - EMBER_ZCL_MESSAGING_CONTROL_CONFIRMATION_REQUIRED = 0x80, -} EmberAfMessagingControlConfirmation; - -typedef enum -{ - EMBER_ZCL_MESSAGING_CONTROL_ENHANCED_CONFIRMATION_NOT_REQUIRED = 0x00, - EMBER_ZCL_MESSAGING_CONTROL_ENHANCED_CONFIRMATION_REQUIRED = 0x20, -} EmberAfMessagingControlEnhancedConfirmation; - -typedef enum -{ - EMBER_ZCL_MESSAGING_CONTROL_IMPORTANCE_LOW = 0x00, - EMBER_ZCL_MESSAGING_CONTROL_IMPORTANCE_MEDIUM = 0x04, - EMBER_ZCL_MESSAGING_CONTROL_IMPORTANCE_HIGH = 0x08, - EMBER_ZCL_MESSAGING_CONTROL_IMPORTANCE_CRITICAL = 0x0C, -} EmberAfMessagingControlImportance; - -typedef enum -{ - EMBER_ZCL_MESSAGING_CONTROL_TRANSMISSION_NORMAL = 0x00, - EMBER_ZCL_MESSAGING_CONTROL_TRANSMISSION_NORMAL_AND_ANONYMOUS = 0x01, - EMBER_ZCL_MESSAGING_CONTROL_TRANSMISSION_ANONYMOUS = 0x02, - EMBER_ZCL_MESSAGING_CONTROL_TRANSMISSION_RESERVED = 0x03, -} EmberAfMessagingControlTransmission; - -typedef enum -{ - EMBER_ZCL_METER_DEVICE_TYPE_ELECTRIC_METER = 0x00, - EMBER_ZCL_METER_DEVICE_TYPE_GAS_METER = 0x01, - EMBER_ZCL_METER_DEVICE_TYPE_WATER_METER = 0x02, - EMBER_ZCL_METER_DEVICE_TYPE_THERMAL_METER = 0x03, - EMBER_ZCL_METER_DEVICE_TYPE_PRESSURE_METER = 0x04, - EMBER_ZCL_METER_DEVICE_TYPE_HEAT_METER = 0x05, - EMBER_ZCL_METER_DEVICE_TYPE_COOLING_METER = 0x06, - EMBER_ZCL_METER_DEVICE_TYPE_MIRRORED_GAS_METER = 0x80, - EMBER_ZCL_METER_DEVICE_TYPE_MIRRORED_WATER_METER = 0x81, - EMBER_ZCL_METER_DEVICE_TYPE_MIRRORED_THERMAL_METER = 0x82, - EMBER_ZCL_METER_DEVICE_TYPE_MIRRORED_PRESSURE_METER = 0x83, - EMBER_ZCL_METER_DEVICE_TYPE_MIRRORED_HEAT_METER = 0x84, - EMBER_ZCL_METER_DEVICE_TYPE_MIRRORED_COOLING_METER = 0x85, - EMBER_ZCL_METER_DEVICE_TYPE_UNDEFINED_MIRROR_METER = 0xFE, -} EmberAfMeterDeviceType; - -typedef enum -{ - EMBER_ZCL_METER_TYPE_ID_UTILITY_PRIMARY_METER = 0x0000, - EMBER_ZCL_METER_TYPE_ID_UTILITY_PRODUCTION_METER = 0x0001, - EMBER_ZCL_METER_TYPE_ID_UTILITY_SECONDARY_METER = 0x0002, - EMBER_ZCL_METER_TYPE_ID_PRIVATE_PRIMARY_METER = 0x0100, - EMBER_ZCL_METER_TYPE_ID_PRIVATE_PRODUCTION_METER = 0x0101, - EMBER_ZCL_METER_TYPE_ID_PRIVATE_SECONDARY_METERS = 0x0102, - EMBER_ZCL_METER_TYPE_ID_GENERIC_METER = 0x0110, -} EmberAfMeterTypeId; - -typedef enum -{ - EMBER_ZCL_METERING_ALARM_CODE_CHECK_METER = 0x00, - EMBER_ZCL_METERING_ALARM_CODE_LOW_BATTERY = 0x01, - EMBER_ZCL_METERING_ALARM_CODE_TAMPER_DETECT = 0x02, - EMBER_ZCL_METERING_ALARM_CODE_POWER_FAILURE_PIPE_EMPTY_TEMPERATURE_SENSOR = 0x03, - EMBER_ZCL_METERING_ALARM_CODE_POWER_QUALITY_LOW_PRESSURE_BURST_DETECT = 0x04, - EMBER_ZCL_METERING_ALARM_CODE_LEAK_DETECT = 0x05, - EMBER_ZCL_METERING_ALARM_CODE_SERVICE_DISCONNECT = 0x06, - EMBER_ZCL_METERING_ALARM_CODE_REVERSE_FLOW_FLOW_SENSOR = 0x07, - EMBER_ZCL_METERING_ALARM_CODE_METER_COVER_REMOVED = 0x08, - EMBER_ZCL_METERING_ALARM_CODE_METER_COVER_CLOSED = 0x09, - EMBER_ZCL_METERING_ALARM_CODE_STRONG_MAGNETIC_FIELD = 0x0A, - EMBER_ZCL_METERING_ALARM_CODE_NO_STRONG_MAGNETIC_FIELD = 0x0B, - EMBER_ZCL_METERING_ALARM_CODE_BATTERY_FAILURE = 0x0C, - EMBER_ZCL_METERING_ALARM_CODE_PROGRAM_MEMORY_ERROR = 0x0D, - EMBER_ZCL_METERING_ALARM_CODE_R_A_M_ERROR = 0x0E, - EMBER_ZCL_METERING_ALARM_CODE_N_V_MEMORY_ERROR = 0x0F, - EMBER_ZCL_METERING_ALARM_CODE_LOW_VOLTAGE_L1 = 0x10, - EMBER_ZCL_METERING_ALARM_CODE_HIGH_VOLTAGE_L1 = 0x11, - EMBER_ZCL_METERING_ALARM_CODE_LOW_VOLTAGE_L2 = 0x12, - EMBER_ZCL_METERING_ALARM_CODE_HIGH_VOLTAGE_L2 = 0x13, - EMBER_ZCL_METERING_ALARM_CODE_LOW_VOLTAGE_L3 = 0x14, - EMBER_ZCL_METERING_ALARM_CODE_HIGH_VOLTAGE_L3 = 0x15, - EMBER_ZCL_METERING_ALARM_CODE_OVER_CURRENT_L1 = 0x16, - EMBER_ZCL_METERING_ALARM_CODE_OVER_CURRENT_L2 = 0x17, - EMBER_ZCL_METERING_ALARM_CODE_OVER_CURRENT_L3 = 0x18, - EMBER_ZCL_METERING_ALARM_CODE_FREQUENCY_TOO_LOW_L1 = 0x19, - EMBER_ZCL_METERING_ALARM_CODE_FREQUENCY_TOO_HIGH_L1 = 0x1A, - EMBER_ZCL_METERING_ALARM_CODE_FREQUENCY_TOO_LOW_L2 = 0x1B, - EMBER_ZCL_METERING_ALARM_CODE_FREQUENCY_TOO_HIGH_L2 = 0x1C, - EMBER_ZCL_METERING_ALARM_CODE_FREQUENCY_TOO_LOW_L3 = 0x1D, - EMBER_ZCL_METERING_ALARM_CODE_FREQUENCY_TOO_HIGH_L3 = 0x1E, - EMBER_ZCL_METERING_ALARM_CODE_GROUND_FAULT = 0x1F, - EMBER_ZCL_METERING_ALARM_CODE_ELECTRIC_TAMPER_DETECT = 0x20, - EMBER_ZCL_METERING_ALARM_CODE_INCORRECT_POLARITY = 0x21, - EMBER_ZCL_METERING_ALARM_CODE_CURRENT_NO_VOLTAGE = 0x22, - EMBER_ZCL_METERING_ALARM_CODE_UNDER_VOLTAGE = 0x23, - EMBER_ZCL_METERING_ALARM_CODE_OVER_VOLTAGE = 0x24, - EMBER_ZCL_METERING_ALARM_CODE_NORMAL_VOLTAGE = 0x25, - EMBER_ZCL_METERING_ALARM_CODE_P_F_BELOW_THRESHOLD = 0x26, - EMBER_ZCL_METERING_ALARM_CODE_P_F_ABOVE_THRESHOLD = 0x27, - EMBER_ZCL_METERING_ALARM_CODE_TERMINAL_COVER_REMOVED = 0x28, - EMBER_ZCL_METERING_ALARM_CODE_TERMINAL_COVER_CLOSED = 0x29, - EMBER_ZCL_METERING_ALARM_CODE_BURST_DETECT = 0x30, - EMBER_ZCL_METERING_ALARM_CODE_PRESSURE_TOO_LOW = 0x31, - EMBER_ZCL_METERING_ALARM_CODE_PRESSURE_TOO_HIGH = 0x32, - EMBER_ZCL_METERING_ALARM_CODE_FLOW_SENSOR_COMMUNICATION_ERROR = 0x33, - EMBER_ZCL_METERING_ALARM_CODE_FLOW_SENSOR_MEASUREMENT_FAULT = 0x34, - EMBER_ZCL_METERING_ALARM_CODE_FLOW_SENSOR_REVERSE_FLOW = 0x35, - EMBER_ZCL_METERING_ALARM_CODE_FLOW_SENSOR_AIR_DETECT = 0x36, - EMBER_ZCL_METERING_ALARM_CODE_PIPE_EMPTY = 0x37, - EMBER_ZCL_METERING_ALARM_CODE_INLET_TEMPERATURE_SENSOR_FAULT = 0x50, - EMBER_ZCL_METERING_ALARM_CODE_OUTLET_TEMPERATURE_SENSOR_FAULT = 0x51, - EMBER_ZCL_METERING_ALARM_CODE_TILT_TAMPER = 0x60, - EMBER_ZCL_METERING_ALARM_CODE_BATTERY_COVER_REMOVED = 0x61, - EMBER_ZCL_METERING_ALARM_CODE_BATTERY_COVER_CLOSED = 0x62, - EMBER_ZCL_METERING_ALARM_CODE_EXCESS_FLOW = 0x63, - EMBER_ZCL_METERING_ALARM_CODE_TILT_TAMPER_ENDED = 0x64, - EMBER_ZCL_METERING_ALARM_CODE_MEASUREMENT_SYSTEM_ERROR = 0x70, - EMBER_ZCL_METERING_ALARM_CODE_WATCHDOG_ERROR = 0x71, - EMBER_ZCL_METERING_ALARM_CODE_SUPPLY_DISCONNECT_FAILURE = 0x72, - EMBER_ZCL_METERING_ALARM_CODE_SUPPLY_CONNECT_FAILURE = 0x73, - EMBER_ZCL_METERING_ALARM_CODE_MEASURMENT_SOFTWARE_CHANGED = 0x74, - EMBER_ZCL_METERING_ALARM_CODE_DST_ENABLED = 0x75, - EMBER_ZCL_METERING_ALARM_CODE_DST_DISABLED = 0x76, - EMBER_ZCL_METERING_ALARM_CODE_CLOCK_ADJ_BACKWARD = 0x77, - EMBER_ZCL_METERING_ALARM_CODE_CLOCK_ADJ_FORWARD = 0x78, - EMBER_ZCL_METERING_ALARM_CODE_CLOCK_INVALID = 0x79, - EMBER_ZCL_METERING_ALARM_CODE_COMMUNICATION_ERROR_HAN = 0x7A, - EMBER_ZCL_METERING_ALARM_CODE_COMMUNICATION_OK_H_AN = 0x7B, - EMBER_ZCL_METERING_ALARM_CODE_METER_FRAUD_ATTEMPT = 0x7C, - EMBER_ZCL_METERING_ALARM_CODE_POWER_LOSS = 0x7D, - EMBER_ZCL_METERING_ALARM_CODE_UNUSUAL_HAN_TRAFFIC = 0x7E, - EMBER_ZCL_METERING_ALARM_CODE_UNEXPECTED_CLOCK_CHANGE = 0x7F, - EMBER_ZCL_METERING_ALARM_CODE_COMMS_USING_UNAUTHENTICATED_COMPONENT = 0x80, - EMBER_ZCL_METERING_ALARM_CODE_ERROR_REG_CLEAR = 0x81, - EMBER_ZCL_METERING_ALARM_CODE_ALARM_REG_CLEAR = 0x82, - EMBER_ZCL_METERING_ALARM_CODE_UNEXPECTED_HW_RESET = 0x83, - EMBER_ZCL_METERING_ALARM_CODE_UNEXPECTED_PROGRAM_EXECUTION = 0x84, - EMBER_ZCL_METERING_ALARM_CODE_EVENT_LOG_CLEARED = 0x85, - EMBER_ZCL_METERING_ALARM_CODE_LIMIT_THRESHOLD_EXCEEDED = 0x86, - EMBER_ZCL_METERING_ALARM_CODE_LIMIT_THRESHOLD_OK = 0x87, - EMBER_ZCL_METERING_ALARM_CODE_LIMIT_THRESHOLD_CHANGED = 0x88, - EMBER_ZCL_METERING_ALARM_CODE_MAXIMUM_DEMAND_EXCEEDED = 0x89, - EMBER_ZCL_METERING_ALARM_CODE_PROFILE_CLEARED = 0x8A, - EMBER_ZCL_METERING_ALARM_CODE_SAMPLING_BUFFERCLEARED = 0x8B, - EMBER_ZCL_METERING_ALARM_CODE_BATTERY_WARNING = 0x8C, - EMBER_ZCL_METERING_ALARM_CODE_WRONG_SIGNATURE = 0x8D, - EMBER_ZCL_METERING_ALARM_CODE_NO_SIGNATURE = 0x8E, - EMBER_ZCL_METERING_ALARM_CODE_UNAUTHORISED_ACTIONFROM_HAN = 0x8F, - EMBER_ZCL_METERING_ALARM_CODE_FAST_POLLING_START = 0x90, - EMBER_ZCL_METERING_ALARM_CODE_FAST_POLLING_END = 0x91, - EMBER_ZCL_METERING_ALARM_CODE_METER_REPORTING_INTERVAL_CHANGED = 0x92, - EMBER_ZCL_METERING_ALARM_CODE_DISCONNECT_DUETO_LOAD_LIMIT = 0x93, - EMBER_ZCL_METERING_ALARM_CODE_METER_SUPPLY_STATUS_REGISTER_CHANGED = 0x94, - EMBER_ZCL_METERING_ALARM_CODE_METER_ALARM_STATUS_REGISTER_CHANGED = 0x95, - EMBER_ZCL_METERING_ALARM_CODE_EXTENDED_METER_ALARM_STATUS_REGISTER_CHANGED = 0x96, - EMBER_ZCL_METERING_ALARM_CODE_MANUFACTURER_SPECIFIC_A = 0xB0, - EMBER_ZCL_METERING_ALARM_CODE_MANUFACTURER_SPECIFIC_B = 0xB1, - EMBER_ZCL_METERING_ALARM_CODE_MANUFACTURER_SPECIFIC_C = 0xB2, - EMBER_ZCL_METERING_ALARM_CODE_MANUFACTURER_SPECIFIC_D = 0xB3, - EMBER_ZCL_METERING_ALARM_CODE_MANUFACTURER_SPECIFIC_E = 0xB4, - EMBER_ZCL_METERING_ALARM_CODE_MANUFACTURER_SPECIFIC_F = 0xB5, - EMBER_ZCL_METERING_ALARM_CODE_MANUFACTURER_SPECIFIC_G = 0xB6, - EMBER_ZCL_METERING_ALARM_CODE_MANUFACTURER_SPECIFIC_H = 0xB7, - EMBER_ZCL_METERING_ALARM_CODE_MANUFACTURER_SPECIFIC_I = 0xB8, -} EmberAfMeteringAlarmCode; - -typedef enum -{ - EMBER_ZCL_METERING_BLOCK_ENUMERATIONS_NO_BLOCKS_IN_USE = 0x00, - EMBER_ZCL_METERING_BLOCK_ENUMERATIONS_BLOCK1 = 0x01, - EMBER_ZCL_METERING_BLOCK_ENUMERATIONS_BLOCK2 = 0x02, - EMBER_ZCL_METERING_BLOCK_ENUMERATIONS_BLOCK3 = 0x03, - EMBER_ZCL_METERING_BLOCK_ENUMERATIONS_BLOCK4 = 0x04, - EMBER_ZCL_METERING_BLOCK_ENUMERATIONS_BLOCK5 = 0x05, - EMBER_ZCL_METERING_BLOCK_ENUMERATIONS_BLOCK6 = 0x06, - EMBER_ZCL_METERING_BLOCK_ENUMERATIONS_BLOCK7 = 0x07, - EMBER_ZCL_METERING_BLOCK_ENUMERATIONS_BLOCK8 = 0x08, - EMBER_ZCL_METERING_BLOCK_ENUMERATIONS_BLOCK9 = 0x09, - EMBER_ZCL_METERING_BLOCK_ENUMERATIONS_BLOCK10 = 0x0A, - EMBER_ZCL_METERING_BLOCK_ENUMERATIONS_BLOCK11 = 0x0B, - EMBER_ZCL_METERING_BLOCK_ENUMERATIONS_BLOCK12 = 0x0C, - EMBER_ZCL_METERING_BLOCK_ENUMERATIONS_BLOCK13 = 0x0D, - EMBER_ZCL_METERING_BLOCK_ENUMERATIONS_BLOCK14 = 0x0E, - EMBER_ZCL_METERING_BLOCK_ENUMERATIONS_BLOCK15 = 0x0F, - EMBER_ZCL_METERING_BLOCK_ENUMERATIONS_BLOCK16 = 0x10, -} EmberAfMeteringBlockEnumerations; - -typedef enum -{ - EMBER_ZCL_METERING_CONSUMPTION_STATUS_LOW_ENERGY_USAGE = 0x00, - EMBER_ZCL_METERING_CONSUMPTION_STATUS_MEDIUM_ENERGY_USAGE = 0x01, - EMBER_ZCL_METERING_CONSUMPTION_STATUS_HIGH_ENERGY_USAGE = 0x02, -} EmberAfMeteringConsumptionStatus; - -typedef enum -{ - EMBER_ZCL_METERING_DEVICE_TYPE_ELECTRIC_METERING = 0x00, - EMBER_ZCL_METERING_DEVICE_TYPE_GAS_METERING = 0x01, - EMBER_ZCL_METERING_DEVICE_TYPE_WATER_METERING = 0x02, - EMBER_ZCL_METERING_DEVICE_TYPE_THERMAL_METERING = 0x03, - EMBER_ZCL_METERING_DEVICE_TYPE_PRESSURE_METERING = 0x04, - EMBER_ZCL_METERING_DEVICE_TYPE_HEAT_METERING = 0x05, - EMBER_ZCL_METERING_DEVICE_TYPE_COOLING_METERING = 0x06, - EMBER_ZCL_METERING_DEVICE_TYPE_ELECTRIC_VEHICLE_CHARGING_METERING = 0x07, - EMBER_ZCL_METERING_DEVICE_TYPE_PV_GENERATION_METERING = 0x08, - EMBER_ZCL_METERING_DEVICE_TYPE_WIND_TURBINE_GENERATION_METERING = 0x09, - EMBER_ZCL_METERING_DEVICE_TYPE_WATER_TURBINE_GENERATION_METERING = 0x0A, - EMBER_ZCL_METERING_DEVICE_TYPE_MICRO_GENERATION_METERING = 0x0B, - EMBER_ZCL_METERING_DEVICE_TYPE_SOLAR_HOT_WATER_GENERATION_METERING = 0x0C, - EMBER_ZCL_METERING_DEVICE_TYPE_ELECTRIC_METERING_ELEMENT1 = 0x0D, - EMBER_ZCL_METERING_DEVICE_TYPE_ELECTRIC_METERING_ELEMENT2 = 0x0E, - EMBER_ZCL_METERING_DEVICE_TYPE_ELECTRIC_METERING_ELEMENT3 = 0x0F, - EMBER_ZCL_METERING_DEVICE_TYPE_MIRRORED_ELECTRIC_METERING = 0x7F, - EMBER_ZCL_METERING_DEVICE_TYPE_MIRRORED_GAS_METERING = 0x80, - EMBER_ZCL_METERING_DEVICE_TYPE_MIRRORED_WATER_METERING = 0x81, - EMBER_ZCL_METERING_DEVICE_TYPE_MIRRORED_THERMAL_METERING = 0x82, - EMBER_ZCL_METERING_DEVICE_TYPE_MIRRORED_PRESSURE_METERING = 0x83, - EMBER_ZCL_METERING_DEVICE_TYPE_MIRRORED_HEAT_METERING = 0x84, - EMBER_ZCL_METERING_DEVICE_TYPE_MIRRORED_COOLING_METERING = 0x85, - EMBER_ZCL_METERING_DEVICE_TYPE_MIRRORED_ELECTRIC_VEHICLE_CHARGING_METERING = 0x86, - EMBER_ZCL_METERING_DEVICE_TYPE_MIRRORED_PV_GENERATION_METERING = 0x87, - EMBER_ZCL_METERING_DEVICE_TYPE_MIRRORED_WIND_TURBINE_GENERATION_METERING = 0x88, - EMBER_ZCL_METERING_DEVICE_TYPE_MIRRORED_WATER_TURBINE_GENERATION_METERING = 0x89, - EMBER_ZCL_METERING_DEVICE_TYPE_MIRRORED_MICRO_GENERATION_METERING = 0x8A, - EMBER_ZCL_METERING_DEVICE_TYPE_MIRRORED_SOLAR_HOT_WATER_GENERATION_METERING = 0x8B, - EMBER_ZCL_METERING_DEVICE_TYPE_MIRRORED_ELECTRIC_METERING_ELEMENT1 = 0x8C, - EMBER_ZCL_METERING_DEVICE_TYPE_MIRRORED_ELECTRIC_METERING_ELEMENT2 = 0x8D, - EMBER_ZCL_METERING_DEVICE_TYPE_MIRRORED_ELECTRIC_METERING_ELEMENT3 = 0x8E, - EMBER_ZCL_METERING_DEVICE_TYPE_UNDEFINED_MIRROR_METER = 0xFE, -} EmberAfMeteringDeviceType; - -typedef enum -{ - EMBER_ZCL_METERING_SUPPLY_STATUS_SUPPLY_OFF = 0x00, - EMBER_ZCL_METERING_SUPPLY_STATUS_SUPPLY_OFF_ARMED = 0x01, - EMBER_ZCL_METERING_SUPPLY_STATUS_SUPPLY_ON = 0x02, -} EmberAfMeteringSupplyStatus; - -typedef enum -{ - EMBER_ZCL_METERING_TEMPERATURE_UNIT_OF_MEASURE_KELVIN = 0x00, - EMBER_ZCL_METERING_TEMPERATURE_UNIT_OF_MEASURE_CELSIUS = 0x01, - EMBER_ZCL_METERING_TEMPERATURE_UNIT_OF_MEASURE_FAHRENHEIT = 0x02, - EMBER_ZCL_METERING_TEMPERATURE_UNIT_OF_MEASURE_KELVIN_BCD = 0x80, - EMBER_ZCL_METERING_TEMPERATURE_UNIT_OF_MEASURE_CELSIUS_BCD = 0x81, - EMBER_ZCL_METERING_TEMPERATURE_UNIT_OF_MEASURE_FAHRENHEIT_BCD = 0x82, -} EmberAfMeteringTemperatureUnitOfMeasure; - -typedef enum -{ - EMBER_ZCL_MOVE_MODE_UP = 0x00, - EMBER_ZCL_MOVE_MODE_DOWN = 0x01, -} EmberAfMoveMode; - -typedef enum -{ - EMBER_ZCL_NOTIFICATION_SCHEME_NO_NOTIFICATION_SCHEME_DEFINED = 0x00, - EMBER_ZCL_NOTIFICATION_SCHEME_PREDEFINED_NOTIFICATION_SCHEME_A = 0x01, - EMBER_ZCL_NOTIFICATION_SCHEME_PREDEFINED_NOTIFICATION_SCHEME_B = 0x02, -} EmberAfNotificationScheme; - -typedef enum -{ - EMBER_ZCL_OCCUPANCY_SENSOR_TYPE_PIR = 0x00, - EMBER_ZCL_OCCUPANCY_SENSOR_TYPE_ULTRASONIC = 0x01, - EMBER_ZCL_OCCUPANCY_SENSOR_TYPE_PIR_AND_ULTRASONIC = 0x02, - EMBER_ZCL_OCCUPANCY_SENSOR_TYPE_PHYSICAL_CONTACT = 0x03, -} EmberAfOccupancySensorType; - -typedef enum -{ - EMBER_ZCL_ON_OFF_DELAYED_ALL_OFF_EFFECT_VARIANT_FADE_TO_OFF_IN_0P8_SECONDS = 0x00, - EMBER_ZCL_ON_OFF_DELAYED_ALL_OFF_EFFECT_VARIANT_NO_FADE = 0x01, - EMBER_ZCL_ON_OFF_DELAYED_ALL_OFF_EFFECT_VARIANT_50_PERCENT_DIM_DOWN_IN_0P8_SECONDS_THEN_FADE_TO_OFF_IN_12_SECONDS = 0x02, -} EmberAfOnOffDelayedAllOffEffectVariant; - -typedef enum -{ - EMBER_ZCL_ON_OFF_DYING_LIGHT_EFFECT_VARIANT_20_PERCENTER_DIM_UP_IN_0P5_SECONDS_THEN_FADE_TO_OFF_IN_1_SECOND = 0x00, -} EmberAfOnOffDyingLightEffectVariant; - -typedef enum -{ - EMBER_ZCL_ON_OFF_EFFECT_IDENTIFIER_DELAYED_ALL_OFF = 0x00, - EMBER_ZCL_ON_OFF_EFFECT_IDENTIFIER_DYING_LIGHT = 0x01, -} EmberAfOnOffEffectIdentifier; - -typedef enum -{ - EMBER_ZCL_OPERATING_MODE_NORMAL = 0x00, - EMBER_ZCL_OPERATING_MODE_CONFIGURE = 0x01, -} EmberAfOperatingMode; - -typedef enum -{ - EMBER_ZCL_ORIGINATING_DEVICE_ENERGY_SERVICE_INTERFACE = 0x00, - EMBER_ZCL_ORIGINATING_DEVICE_METER = 0x01, - EMBER_ZCL_ORIGINATING_DEVICE_IN_HOME_DISPLAY_DEVICE = 0x02, -} EmberAfOriginatingDevice; - -typedef enum -{ - EMBER_ZCL_PASSWORD_TYPE_PASSWORD1_SERVICE_MENU_ACCESS = 0x01, - EMBER_ZCL_PASSWORD_TYPE_PASSWORD2_CONSUMER_MENU_ACCESS = 0x02, - EMBER_ZCL_PASSWORD_TYPE_PASSWORD3 = 0x03, - EMBER_ZCL_PASSWORD_TYPE_PASSWORD4 = 0x04, -} EmberAfPasswordType; - -typedef enum -{ - EMBER_ZCL_PAYMENT_DISCOUNT_DURATION_CURRENT_BILLING_PERIOD = 0x00, - EMBER_ZCL_PAYMENT_DISCOUNT_DURATION_CURRENT_CONSOLIDATED_BILL = 0x01, - EMBER_ZCL_PAYMENT_DISCOUNT_DURATION_ONE_MONTH = 0x02, - EMBER_ZCL_PAYMENT_DISCOUNT_DURATION_ONE_QUARTER = 0x03, - EMBER_ZCL_PAYMENT_DISCOUNT_DURATION_ONE_YEAR = 0x04, -} EmberAfPaymentDiscountDuration; - -typedef enum -{ - EMBER_ZCL_PHYSICAL_ENVIRONMENT_UNSPECIFIED = 0x00, - EMBER_ZCL_PHYSICAL_ENVIRONMENT_FIRST_PROFILE_SPECIFIED_VALUE = 0x01, - EMBER_ZCL_PHYSICAL_ENVIRONMENT_LAST_PROFILE_SPECIFIED_VALUE = 0x7F, - EMBER_ZCL_PHYSICAL_ENVIRONMENT_UNKNOWN = 0xFF, -} EmberAfPhysicalEnvironment; - -typedef enum -{ - EMBER_ZCL_POWER_PROFILE_STATE_POWER_PROFILE_WAITING_TO_START = 0x01, - EMBER_ZCL_POWER_PROFILE_STATE_POWER_PROFILE_STARTED = 0x02, - EMBER_ZCL_POWER_PROFILE_STATE_ENERGY_PHASE_RUNNING = 0x03, - EMBER_ZCL_POWER_PROFILE_STATE_ENERGY_PHASE_ENDED = 0x04, - EMBER_ZCL_POWER_PROFILE_STATE_ENERGY_PHASE_WAITING_TO_START = 0x05, - EMBER_ZCL_POWER_PROFILE_STATE_ENERGY_PHASE_STARTED = 0x06, - EMBER_ZCL_POWER_PROFILE_STATE_POWER_PROFILE_ENDED = 0x07, - EMBER_ZCL_POWER_PROFILE_STATE_PROFILE_READY_FOR_SCHEDULING = 0x08, - EMBER_ZCL_POWER_PROFILE_STATE_POWER_PROFILE_SCHEDULED = 0x09, -} EmberAfPowerProfileState; - -typedef enum -{ - EMBER_ZCL_POWER_SOURCE_UNKNOWN = 0x00, - EMBER_ZCL_POWER_SOURCE_SINGLE_PHASE_MAINS = 0x01, - EMBER_ZCL_POWER_SOURCE_THREE_PHASE_MAINS = 0x02, - EMBER_ZCL_POWER_SOURCE_BATTERY = 0x03, - EMBER_ZCL_POWER_SOURCE_DC_SOURCE = 0x04, - EMBER_ZCL_POWER_SOURCE_EMERGENCY_MAINS_CONSTANT_POWER = 0x05, - EMBER_ZCL_POWER_SOURCE_EMERGENCY_MAINS_TRANSFER_SWITCH = 0x06, - EMBER_ZCL_POWER_SOURCE_BATTERY_BACKUP = 0x80, -} EmberAfPowerSource; - -typedef enum -{ - EMBER_ZCL_PRE_PAY_GENERIC_ALARM_GROUP_LOW_CREDIT = 0x00, - EMBER_ZCL_PRE_PAY_GENERIC_ALARM_GROUP_NO_CREDIT = 0x01, - EMBER_ZCL_PRE_PAY_GENERIC_ALARM_GROUP_CREDIT_EXHAUSTED = 0x02, - EMBER_ZCL_PRE_PAY_GENERIC_ALARM_GROUP_EMERGENCY_CREDIT_ENABLED = 0x03, - EMBER_ZCL_PRE_PAY_GENERIC_ALARM_GROUP_EMERGENCY_CREDIT_EXHAUSTED = 0x04, - EMBER_ZCL_PRE_PAY_GENERIC_ALARM_GROUP_IHD_LOW_CREDIT_WARNING = 0x05, - EMBER_ZCL_PRE_PAY_GENERIC_ALARM_GROUP_EVENT_LOG_CLEARED = 0x06, -} EmberAfPrePayGenericAlarmGroup; - -typedef enum -{ - EMBER_ZCL_PREPAY_EVENT_ALARM_GROUP_PHYSICAL_ATTACK_ON_THE_PREPAY_METER = 0x20, - EMBER_ZCL_PREPAY_EVENT_ALARM_GROUP_ELECTRONIC_ATTACK_ON_THE_PREPAY_METER = 0x21, - EMBER_ZCL_PREPAY_EVENT_ALARM_GROUP_DISCOUNT_APPLIED = 0x22, - EMBER_ZCL_PREPAY_EVENT_ALARM_GROUP_CREDIT_ADJUSTMENT = 0x23, - EMBER_ZCL_PREPAY_EVENT_ALARM_GROUP_CREDIT_ADJUSTMENT_FAIL = 0x24, - EMBER_ZCL_PREPAY_EVENT_ALARM_GROUP_DEBT_ADJUSTMENT = 0x25, - EMBER_ZCL_PREPAY_EVENT_ALARM_GROUP_DEBT_ADJUSTMENT_FAIL = 0x26, - EMBER_ZCL_PREPAY_EVENT_ALARM_GROUP_MODE_CHANGE = 0x27, - EMBER_ZCL_PREPAY_EVENT_ALARM_GROUP_TOPUP_CODE_ERROR = 0x28, - EMBER_ZCL_PREPAY_EVENT_ALARM_GROUP_TOPUP_ALREADY_USED = 0x29, - EMBER_ZCL_PREPAY_EVENT_ALARM_GROUP_TOPUP_CODE_INVALID = 0x2A, - EMBER_ZCL_PREPAY_EVENT_ALARM_GROUP_FRIENDLY_CREDIT_IN_USE = 0x2B, - EMBER_ZCL_PREPAY_EVENT_ALARM_GROUP_FRIENDLY_CREDIT_PERIOD_END_WARNING = 0x2C, - EMBER_ZCL_PREPAY_EVENT_ALARM_GROUP_FRIENDLY_CREDIT_PERIOD_END = 0x2D, - EMBER_ZCL_PREPAY_EVENT_ALARM_GROUP_ERROR_REG_CLEAR = 0x30, - EMBER_ZCL_PREPAY_EVENT_ALARM_GROUP_ALARM_REG_CLEAR = 0x31, - EMBER_ZCL_PREPAY_EVENT_ALARM_GROUP_PREPAY_CLUSTER_NOT_FOUND = 0x32, - EMBER_ZCL_PREPAY_EVENT_ALARM_GROUP_MODE_CREDIT2_PREPAY = 0x41, - EMBER_ZCL_PREPAY_EVENT_ALARM_GROUP_MODE_PREPAY2_CREDIT = 0x42, - EMBER_ZCL_PREPAY_EVENT_ALARM_GROUP_MODE_DEFAULT = 0x43, -} EmberAfPrepayEventAlarmGroup; - -typedef enum -{ - EMBER_ZCL_PREPAY_SNAPSHOT_PAYLOAD_TYPE_DEBT_CREDIT_STATUS = 0x00, - EMBER_ZCL_PREPAY_SNAPSHOT_PAYLOAD_TYPE_NOT_USED = 0xFF, -} EmberAfPrepaySnapshotPayloadType; - -typedef enum -{ - EMBER_ZCL_PREPAY_SWITCH_ALARM_GROUP_SUPPLY_ON = 0x10, - EMBER_ZCL_PREPAY_SWITCH_ALARM_GROUP_SUPPLY_ARM = 0x11, - EMBER_ZCL_PREPAY_SWITCH_ALARM_GROUP_SUPPLY_OFF = 0x12, - EMBER_ZCL_PREPAY_SWITCH_ALARM_GROUP_DISCONNECTION_FAILURE = 0x13, - EMBER_ZCL_PREPAY_SWITCH_ALARM_GROUP_DISCONNECTED_DUE_TO_TAMPER_DETECTED = 0x14, - EMBER_ZCL_PREPAY_SWITCH_ALARM_GROUP_DISCONNECTED_DUE_TO_CUT_OFF_VALUE = 0x15, - EMBER_ZCL_PREPAY_SWITCH_ALARM_GROUP_REMOTE_DISCONNECTED = 0x16, -} EmberAfPrepaySwitchAlarmGroup; - -typedef enum -{ - EMBER_ZCL_PRICE_CONTROL_ACKNOWLEDGEMENT_NOT_REQUIRED = 0x00, - EMBER_ZCL_PRICE_CONTROL_ACKNOWLEDGEMENT_REQUIRED = 0x01, -} EmberAfPriceControlAcknowledgement; - -typedef enum -{ - EMBER_ZCL_PRICE_TIER_NO_TIER_RELATED = 0x00, - EMBER_ZCL_PRICE_TIER_TIER1_PRICE_LABEL = 0x01, - EMBER_ZCL_PRICE_TIER_TIER2_PRICE_LABEL = 0x02, - EMBER_ZCL_PRICE_TIER_TIER3_PRICE_LABEL = 0x03, - EMBER_ZCL_PRICE_TIER_TIER4_PRICE_LABEL = 0x04, - EMBER_ZCL_PRICE_TIER_TIER5_PRICE_LABEL = 0x05, - EMBER_ZCL_PRICE_TIER_TIER6_PRICE_LABEL = 0x06, - EMBER_ZCL_PRICE_TIER_TIER7_PRICE_LABEL = 0x07, - EMBER_ZCL_PRICE_TIER_TIER8_PRICE_LABEL = 0x08, - EMBER_ZCL_PRICE_TIER_TIER9_PRICE_LABEL = 0x09, - EMBER_ZCL_PRICE_TIER_TIER10_PRICE_LABEL = 0x0A, - EMBER_ZCL_PRICE_TIER_TIER11_PRICE_LABEL = 0x0B, - EMBER_ZCL_PRICE_TIER_TIER12_PRICE_LABEL = 0x0C, - EMBER_ZCL_PRICE_TIER_TIER13_PRICE_LABEL = 0x0D, - EMBER_ZCL_PRICE_TIER_TIER14_PRICE_LABEL = 0x0E, - EMBER_ZCL_PRICE_TIER_TIER15_PRICE_LABEL = 0x0F, -} EmberAfPriceTier; - -typedef enum -{ - EMBER_ZCL_PRODUCT_CODE_MANUFACTURER_DEFINED = 0x00, - EMBER_ZCL_PRODUCT_CODE_ITERNATIONAL_ARTICLE_NUMBER = 0x01, - EMBER_ZCL_PRODUCT_CODE_GLOBAL_TRADE_ITEM_NUMBER = 0x02, - EMBER_ZCL_PRODUCT_CODE_UNIVERSAL_PRODUCT_CODE = 0x03, - EMBER_ZCL_PRODUCT_CODE_STOCK_KEEPING_UNIT = 0x04, -} EmberAfProductCode; - -typedef enum -{ - EMBER_ZCL_PRODUCT_TYPE_ID_WHITE_GOODS = 0x0000, - EMBER_ZCL_PRODUCT_TYPE_ID_DISHWASHER = 0x5601, - EMBER_ZCL_PRODUCT_TYPE_ID_TUMBLE_DRYER = 0x5602, - EMBER_ZCL_PRODUCT_TYPE_ID_WASHER_DRYER = 0x5603, - EMBER_ZCL_PRODUCT_TYPE_ID_WASHING_MACHINE = 0x5604, - EMBER_ZCL_PRODUCT_TYPE_ID_HOBS = 0x5E03, - EMBER_ZCL_PRODUCT_TYPE_ID_INDUCTION_HOBS = 0x5E09, - EMBER_ZCL_PRODUCT_TYPE_ID_OVEN = 0x5E01, - EMBER_ZCL_PRODUCT_TYPE_ID_ELECTRICAL_OVEN = 0x5E06, - EMBER_ZCL_PRODUCT_TYPE_ID_REFRIGERATOR_FREEZER = 0x6601, -} EmberAfProductTypeId; - -typedef enum -{ - EMBER_ZCL_PROPOSED_SUPPLY_STATUS_RESERVED = 0x00, - EMBER_ZCL_PROPOSED_SUPPLY_STATUS_SUPPLY_OFF_ARMED = 0x01, - EMBER_ZCL_PROPOSED_SUPPLY_STATUS_SUPPLY_ON = 0x02, -} EmberAfProposedSupplyStatus; - -typedef enum -{ - EMBER_ZCL_PUBLISH_CPP_EVENT_CPP_AUTH_PENDING = 0x00, - EMBER_ZCL_PUBLISH_CPP_EVENT_CPP_AUTH_ACCEPTED = 0x01, - EMBER_ZCL_PUBLISH_CPP_EVENT_CPP_AUTH_REJECTED = 0x02, - EMBER_ZCL_PUBLISH_CPP_EVENT_CPP_AUTH_FORCED = 0x03, -} EmberAfPublishCppEventCppAuth; - -typedef enum -{ - EMBER_ZCL_PUMP_CONTROL_MODE_CONSTANT_SPEED = 0x00, - EMBER_ZCL_PUMP_CONTROL_MODE_CONSTANT_PRESSURE = 0x01, - EMBER_ZCL_PUMP_CONTROL_MODE_PROPORTIONAL_PRESSURE = 0x02, - EMBER_ZCL_PUMP_CONTROL_MODE_CONSTANT_FLOW = 0x03, - EMBER_ZCL_PUMP_CONTROL_MODE_CONSTANT_TEMPERATURE = 0x05, - EMBER_ZCL_PUMP_CONTROL_MODE_AUTOMATIC = 0x07, -} EmberAfPumpControlMode; - -typedef enum -{ - EMBER_ZCL_PUMP_OPERATION_MODE_NORMAL = 0x00, - EMBER_ZCL_PUMP_OPERATION_MODE_MINIMUM = 0x01, - EMBER_ZCL_PUMP_OPERATION_MODE_MAXIMUM = 0x02, - EMBER_ZCL_PUMP_OPERATION_MODE_LOCAL = 0x03, -} EmberAfPumpOperationMode; - -typedef enum -{ - EMBER_ZCL_PUSH_HISTORICAL_METERING_DATA_DAY = 0x0040, - EMBER_ZCL_PUSH_HISTORICAL_METERING_DATA_WEEK = 0x0080, - EMBER_ZCL_PUSH_HISTORICAL_METERING_DATA_MONTH = 0x0180, - EMBER_ZCL_PUSH_HISTORICAL_METERING_DATA_YEAR = 0x01C0, -} EmberAfPushHistoricalMeteringData; - -typedef enum -{ - EMBER_ZCL_PUSH_HISTORICAL_PAYMENT_DATA_DAY = 0x0200, - EMBER_ZCL_PUSH_HISTORICAL_PAYMENT_DATA_WEEK = 0x0400, - EMBER_ZCL_PUSH_HISTORICAL_PAYMENT_DATA_MONTH = 0x0C00, - EMBER_ZCL_PUSH_HISTORICAL_PAYMENT_DATA_YEAR = 0x0E00, -} EmberAfPushHistoricalPaymentData; - -typedef enum -{ - EMBER_ZCL_REGISTER_TIER_NO_TIER_RELATED = 0x00, - EMBER_ZCL_REGISTER_TIER_CURRENT_TIER1_SUMMATION_DELIVERED_ATTRIBUTE = 0x01, - EMBER_ZCL_REGISTER_TIER_CURRENT_TIER2_SUMMATION_DELIVERED_ATTRIBUTE = 0x02, - EMBER_ZCL_REGISTER_TIER_CURRENT_TIER3_SUMMATION_DELIVERED_ATTRIBUTE = 0x03, - EMBER_ZCL_REGISTER_TIER_CURRENT_TIER4_SUMMATION_DELIVERED_ATTRIBUTE = 0x04, - EMBER_ZCL_REGISTER_TIER_CURRENT_TIER5_SUMMATION_DELIVERED_ATTRIBUTE = 0x05, - EMBER_ZCL_REGISTER_TIER_CURRENT_TIER6_SUMMATION_DELIVERED_ATTRIBUTE = 0x06, - EMBER_ZCL_REGISTER_TIER_CURRENT_TIER7_SUMMATION_DELIVERED_ATTRIBUTE = 0x07, - EMBER_ZCL_REGISTER_TIER_CURRENT_TIER8_SUMMATION_DELIVERED_ATTRIBUTE = 0x08, - EMBER_ZCL_REGISTER_TIER_CURRENT_TIER9_SUMMATION_DELIVERED_ATTRIBUTE = 0x09, - EMBER_ZCL_REGISTER_TIER_CURRENT_TIER10_SUMMATION_DELIVERED_ATTRIBUTE = 0x0A, - EMBER_ZCL_REGISTER_TIER_CURRENT_TIER11_SUMMATION_DELIVERED_ATTRIBUTE = 0x0B, - EMBER_ZCL_REGISTER_TIER_CURRENT_TIER12_SUMMATION_DELIVERED_ATTRIBUTE = 0x0C, - EMBER_ZCL_REGISTER_TIER_CURRENT_TIER13_SUMMATION_DELIVERED_ATTRIBUTE = 0x0D, - EMBER_ZCL_REGISTER_TIER_CURRENT_TIER14_SUMMATION_DELIVERED_ATTRIBUTE = 0x0E, - EMBER_ZCL_REGISTER_TIER_CURRENT_TIER15_SUMMATION_DELIVERED_ATTRIBUTE = 0x0F, -} EmberAfRegisterTier; - -typedef enum -{ - EMBER_ZCL_RELATIVE_HUMIDITY_DISPLAY_NOT_DISPLAYED = 0x00, - EMBER_ZCL_RELATIVE_HUMIDITY_DISPLAY_DISPLAYED = 0x01, -} EmberAfRelativeHumidityDisplay; - -typedef enum -{ - EMBER_ZCL_RELATIVE_HUMIDITY_MODE_MEASURE_LOCALLY = 0x00, - EMBER_ZCL_RELATIVE_HUMIDITY_MODE_UPDATED_OVER_THE_NETWORK = 0x01, -} EmberAfRelativeHumidityMode; - -typedef enum -{ - EMBER_ZCL_REMOTE_ENABLE_FLAGS_DISABLED = 0x00, - EMBER_ZCL_REMOTE_ENABLE_FLAGS_TEMPORARILY_LOCKED_DISABLED = 0x07, - EMBER_ZCL_REMOTE_ENABLE_FLAGS_ENABLED_REMOTE_CONTROL = 0x0F, - EMBER_ZCL_REMOTE_ENABLE_FLAGS_ENABLED_REMOTE_AND_ENERGY_CONTROL = 0x01, -} EmberAfRemoteEnableFlags; - -typedef enum -{ - EMBER_ZCL_REPAYMENT_DEBT_TYPE_DEBT1 = 0x00, - EMBER_ZCL_REPAYMENT_DEBT_TYPE_DEBT2 = 0x01, - EMBER_ZCL_REPAYMENT_DEBT_TYPE_DEBT3 = 0x02, - EMBER_ZCL_REPAYMENT_DEBT_TYPE_ALL_DEBTS = 0xFF, -} EmberAfRepaymentDebtType; - -typedef enum -{ - EMBER_ZCL_REPORTING_DIRECTION_REPORTED = 0x00, - EMBER_ZCL_REPORTING_DIRECTION_RECEIVED = 0x01, -} EmberAfReportingDirection; - -typedef enum -{ - EMBER_ZCL_RESULT_TYPE_ACCEPTED = 0x00, - EMBER_ZCL_RESULT_TYPE_REJECTED_INVALID_TOP_UP = 0x01, - EMBER_ZCL_RESULT_TYPE_REJECTED_DUPLICATE_TOP_UP = 0x02, - EMBER_ZCL_RESULT_TYPE_REJECTED_ERROR = 0x03, - EMBER_ZCL_RESULT_TYPE_REJECTED_MAX_CREDIT_REACHED = 0x04, - EMBER_ZCL_RESULT_TYPE_REJECTED_KEYPAD_LOCK = 0x05, - EMBER_ZCL_RESULT_TYPE_REJECTED_TOP_UP_VALUE_TOO_LARGE = 0x06, - EMBER_ZCL_RESULT_TYPE_ACCEPTED_SUPPLY_ENABLED = 0x10, - EMBER_ZCL_RESULT_TYPE_ACCEPTED_SUPPLY_DISABLED = 0x11, - EMBER_ZCL_RESULT_TYPE_ACCEPTED_SUPPLY_ARMED = 0x12, -} EmberAfResultType; - -typedef enum -{ - EMBER_ZCL_SAMPLE_TYPE_CONSUMPTION_DELIVERED = 0x00, -} EmberAfSampleType; - -typedef enum -{ - EMBER_ZCL_SATURATION_MOVE_MODE_STOP = 0x00, - EMBER_ZCL_SATURATION_MOVE_MODE_UP = 0x01, - EMBER_ZCL_SATURATION_MOVE_MODE_DOWN = 0x03, -} EmberAfSaturationMoveMode; - -typedef enum -{ - EMBER_ZCL_SATURATION_STEP_MODE_UP = 0x01, - EMBER_ZCL_SATURATION_STEP_MODE_DOWN = 0x03, -} EmberAfSaturationStepMode; - -typedef enum -{ - EMBER_ZCL_SENSING_LIGHT_SENSOR_TYPE_PHOTODIODE = 0x00, - EMBER_ZCL_SENSING_LIGHT_SENSOR_TYPE_CMOS = 0x01, -} EmberAfSensingLightSensorType; - -typedef enum -{ - EMBER_ZCL_SETPOINT_ADJUST_MODE_HEAT_SETPOINT = 0x00, - EMBER_ZCL_SETPOINT_ADJUST_MODE_COOL_SETPOINT = 0x01, - EMBER_ZCL_SETPOINT_ADJUST_MODE_HEAT_AND_COOL_SETPOINTS = 0x02, -} EmberAfSetpointAdjustMode; - -typedef enum -{ - EMBER_ZCL_SIGNATURE_TYPE_RESERVED = 0x00, - EMBER_ZCL_SIGNATURE_TYPE_ECDSA = 0x01, -} EmberAfSignatureType; - -typedef enum -{ - EMBER_ZCL_SNAPSHOT_CONFIRMATION_ACCEPTED = 0x00, - EMBER_ZCL_SNAPSHOT_CONFIRMATION_SNAPSHOT_CAUSE_NOT_SUPPORTED = 0x01, -} EmberAfSnapshotConfirmation; - -typedef enum -{ - EMBER_ZCL_SNAPSHOT_PAYLOAD_TYPE_TOU_INFORMATION_SET_DELIVERED_REGISTERS = 0x00, - EMBER_ZCL_SNAPSHOT_PAYLOAD_TYPE_TOU_INFORMATION_SET_RECEIVED_REGISTERS = 0x01, - EMBER_ZCL_SNAPSHOT_PAYLOAD_TYPE_BLOCK_TIER_INFORMATION_SET_DELIVERED = 0x02, - EMBER_ZCL_SNAPSHOT_PAYLOAD_TYPE_BLOCK_TIER_INFORMATION_SET_RECEIVED = 0x03, - EMBER_ZCL_SNAPSHOT_PAYLOAD_TYPE_TOU_INFORMATION_SET_DELIVERED_REGISTERS_NO_BILLING = 0x04, - EMBER_ZCL_SNAPSHOT_PAYLOAD_TYPE_TOU_INFORMATION_SET_RECEIVED_REGISTER_NO_BILLINGS = 0x05, - EMBER_ZCL_SNAPSHOT_PAYLOAD_TYPE_BLOCK_TIER_INFORMATION_SET_DELIVERED_NO_BILLING = 0x06, - EMBER_ZCL_SNAPSHOT_PAYLOAD_TYPE_BLOCK_TIER_INFORMATION_SET_RECEIVED_NO_BILLING = 0x07, - EMBER_ZCL_SNAPSHOT_PAYLOAD_TYPE_DATA_UNAVAILABLE = 0x80, -} EmberAfSnapshotPayloadType; - -typedef enum -{ - EMBER_ZCL_SNAPSHOT_SCHEDULE_CONFIRMATION_ACCEPTED = 0x00, - EMBER_ZCL_SNAPSHOT_SCHEDULE_CONFIRMATION_SNAPSHOT_TYPE_NOT_SUPPORTED = 0x01, - EMBER_ZCL_SNAPSHOT_SCHEDULE_CONFIRMATION_SNAPSHOT_CAUSE_NOT_SUPPORTED = 0x02, - EMBER_ZCL_SNAPSHOT_SCHEDULE_CONFIRMATION_SNAPSHOT_SCHEDULE_NOT_CURRENTLY_AVAILABLE = 0x03, - EMBER_ZCL_SNAPSHOT_SCHEDULE_CONFIRMATION_SNAPSHOT_SCHEDULES_NOT_SUPPORTED_BY_DEVICE = 0x04, - EMBER_ZCL_SNAPSHOT_SCHEDULE_CONFIRMATION_INSUFFICIENT_SPACE_FOR_SNAPSHOT_SCHEDULE = 0x05, -} EmberAfSnapshotScheduleConfirmation; - -typedef enum -{ - EMBER_ZCL_SQUAWK_LEVEL_LOW_LEVEL = 0x00, - EMBER_ZCL_SQUAWK_LEVEL_MEDIUM_LEVEL = 0x01, - EMBER_ZCL_SQUAWK_LEVEL_VERY_HIGH_LEVEL = 0x02, -} EmberAfSquawkLevel; - -typedef enum -{ - EMBER_ZCL_SQUAWK_MODE_SYSTEM_IS_ARMED = 0x00, - EMBER_ZCL_SQUAWK_MODE_SYSTEM_IS_DISARMED = 0x01, -} EmberAfSquawkMode; - -typedef enum -{ - EMBER_ZCL_SQUAWK_STOBE_NO_STROBE = 0x00, - EMBER_ZCL_SQUAWK_STOBE_USE_STROBE = 0x01, -} EmberAfSquawkStobe; - -typedef enum -{ - EMBER_ZCL_START_OF_WEEK_SUNDAY = 0x00, - EMBER_ZCL_START_OF_WEEK_MONDAY = 0x01, - EMBER_ZCL_START_OF_WEEK_TUESDAY = 0x02, - EMBER_ZCL_START_OF_WEEK_WEDNESDAY = 0x03, - EMBER_ZCL_START_OF_WEEK_THURSDAY = 0x04, - EMBER_ZCL_START_OF_WEEK_FRIDAY = 0x05, - EMBER_ZCL_START_OF_WEEK_SATURDAY = 0x06, -} EmberAfStartOfWeek; - -typedef enum -{ - EMBER_ZCL_START_UP_ON_OFF_VALUE_SET_TO_OFF = 0x00, - EMBER_ZCL_START_UP_ON_OFF_VALUE_SET_TO_ON = 0x01, - EMBER_ZCL_START_UP_ON_OFF_VALUE_SET_TO_TOGGLE = 0x02, - EMBER_ZCL_START_UP_ON_OFF_VALUE_SET_TO_PREVIOUS = 0xFF, -} EmberAfStartUpOnOffValue; - -typedef enum -{ - EMBER_ZCL_STATUS_SUCCESS = 0x00, - EMBER_ZCL_STATUS_FAILURE = 0x01, - EMBER_ZCL_STATUS_REQUEST_DENIED = 0x70, - EMBER_ZCL_STATUS_MULTIPLE_REQUEST_NOT_ALLOWED = 0x71, - EMBER_ZCL_STATUS_INDICATION_REDIRECTION_TO_AP = 0x72, - EMBER_ZCL_STATUS_PREFERENCE_DENIED = 0x73, - EMBER_ZCL_STATUS_PREFERENCE_IGNORED = 0x74, - EMBER_ZCL_STATUS_NOT_AUTHORIZED = 0x7E, - EMBER_ZCL_STATUS_RESERVED_FIELD_NOT_ZERO = 0x7F, - EMBER_ZCL_STATUS_MALFORMED_COMMAND = 0x80, - EMBER_ZCL_STATUS_UNSUP_CLUSTER_COMMAND = 0x81, - EMBER_ZCL_STATUS_UNSUP_GENERAL_COMMAND = 0x82, - EMBER_ZCL_STATUS_UNSUP_MANUF_CLUSTER_COMMAND = 0x83, - EMBER_ZCL_STATUS_UNSUP_MANUF_GENERAL_COMMAND = 0x84, - EMBER_ZCL_STATUS_INVALID_FIELD = 0x85, - EMBER_ZCL_STATUS_UNSUPPORTED_ATTRIBUTE = 0x86, - EMBER_ZCL_STATUS_INVALID_VALUE = 0x87, - EMBER_ZCL_STATUS_READ_ONLY = 0x88, - EMBER_ZCL_STATUS_INSUFFICIENT_SPACE = 0x89, - EMBER_ZCL_STATUS_DUPLICATE_EXISTS = 0x8A, - EMBER_ZCL_STATUS_NOT_FOUND = 0x8B, - EMBER_ZCL_STATUS_UNREPORTABLE_ATTRIBUTE = 0x8C, - EMBER_ZCL_STATUS_INVALID_DATA_TYPE = 0x8D, - EMBER_ZCL_STATUS_INVALID_SELECTOR = 0x8E, - EMBER_ZCL_STATUS_WRITE_ONLY = 0x8F, - EMBER_ZCL_STATUS_INCONSISTENT_STARTUP_STATE = 0x90, - EMBER_ZCL_STATUS_DEFINED_OUT_OF_BAND = 0x91, - EMBER_ZCL_STATUS_INCONSISTENT = 0x92, - EMBER_ZCL_STATUS_ACTION_DENIED = 0x93, - EMBER_ZCL_STATUS_TIMEOUT = 0x94, - EMBER_ZCL_STATUS_ABORT = 0x95, - EMBER_ZCL_STATUS_INVALID_IMAGE = 0x96, - EMBER_ZCL_STATUS_WAIT_FOR_DATA = 0x97, - EMBER_ZCL_STATUS_NO_IMAGE_AVAILABLE = 0x98, - EMBER_ZCL_STATUS_REQUIRE_MORE_IMAGE = 0x99, - EMBER_ZCL_STATUS_HARDWARE_FAILURE = 0xC0, - EMBER_ZCL_STATUS_SOFTWARE_FAILURE = 0xC1, - EMBER_ZCL_STATUS_CALIBRATION_ERROR = 0xC2, - EMBER_ZCL_STATUS_UNSUPPORTED_CLUSTER = 0xC3, -} EmberAfStatus; - -typedef enum -{ - EMBER_ZCL_STEP_MODE_UP = 0x00, - EMBER_ZCL_STEP_MODE_DOWN = 0x01, -} EmberAfStepMode; - -typedef enum -{ - EMBER_ZCL_SUPPLY_STATUS_SUPPLY_OFF = 0x00, - EMBER_ZCL_SUPPLY_STATUS_SUPPLY_OFF_ARMED = 0x01, - EMBER_ZCL_SUPPLY_STATUS_SUPPLY_ON = 0x02, - EMBER_ZCL_SUPPLY_STATUS_SUPPLY_UNCHANGED = 0x03, -} EmberAfSupplyStatus; - -typedef enum -{ - EMBER_ZCL_SWITCH_ACTIONS_ON = 0x00, - EMBER_ZCL_SWITCH_ACTIONS_OFF = 0x01, - EMBER_ZCL_SWITCH_ACTIONS_TOGGLE = 0x02, -} EmberAfSwitchActions; - -typedef enum -{ - EMBER_ZCL_SWITCH_TYPE_TOGGLE = 0x00, - EMBER_ZCL_SWITCH_TYPE_MOMENTARY = 0x01, - EMBER_ZCL_SWITCH_TYPE_MULTI_FUNCTION = 0x02, -} EmberAfSwitchType; - -typedef enum -{ - EMBER_ZCL_TARIFF_CHARGING_SCHEME_TOU_TARIFF = 0x00, - EMBER_ZCL_TARIFF_CHARGING_SCHEME_BLOCK_TARIFF = 0x10, - EMBER_ZCL_TARIFF_CHARGING_SCHEME_BLOCK_TOU_TARIFF_WITH_COMMON_THRESHOLDS = 0x20, - EMBER_ZCL_TARIFF_CHARGING_SCHEME_BLOCK_TOU_TARIFF_WITH_INDIVIDUAL_THRESHOLDS_PER_TIER = 0x30, -} EmberAfTariffChargingScheme; - -typedef enum -{ - EMBER_ZCL_TARIFF_RESOLUTION_PERIOD_NOT_DEFINED = 0x00, - EMBER_ZCL_TARIFF_RESOLUTION_PERIOD_BLOCK_PERIOD = 0x01, - EMBER_ZCL_TARIFF_RESOLUTION_PERIOD_ONE_DAY = 0x02, -} EmberAfTariffResolutionPeriod; - -typedef enum -{ - EMBER_ZCL_TARIFF_TYPE_DELIVERED_TARIFF = 0x00, - EMBER_ZCL_TARIFF_TYPE_RECEIVED_TARIFF = 0x01, - EMBER_ZCL_TARIFF_TYPE_DELIVERED_AND_RECEIVED_TARIFF = 0x02, -} EmberAfTariffType; - -typedef enum -{ - EMBER_ZCL_TEMPERATURE_DISPLAY_MODE_CELSIUS = 0x00, - EMBER_ZCL_TEMPERATURE_DISPLAY_MODE_FAHRENHEIT = 0x01, -} EmberAfTemperatureDisplayMode; - -typedef enum -{ - EMBER_ZCL_TEMPERATURE_SETPOINT_HOLD_SETPOINT_HOLD_OFF = 0x00, - EMBER_ZCL_TEMPERATURE_SETPOINT_HOLD_SETPOINT_HOLD_ON = 0x01, -} EmberAfTemperatureSetpointHold; - -typedef enum -{ - EMBER_ZCL_THERMOSTAT_CONTROL_SEQUENCE_COOLING_ONLY = 0x00, - EMBER_ZCL_THERMOSTAT_CONTROL_SEQUENCE_COOLING_WITH_REHEAT = 0x01, - EMBER_ZCL_THERMOSTAT_CONTROL_SEQUENCE_HEATING_ONLY = 0x02, - EMBER_ZCL_THERMOSTAT_CONTROL_SEQUENCE_HEATING_WITH_REHEAT = 0x03, - EMBER_ZCL_THERMOSTAT_CONTROL_SEQUENCE_COOLING_AND_HEATING = 0x04, - EMBER_ZCL_THERMOSTAT_CONTROL_SEQUENCE_COOLING_AND_HEATING_WITH_REHEAT = 0x05, -} EmberAfThermostatControlSequence; - -typedef enum -{ - EMBER_ZCL_THERMOSTAT_RUNNING_MODE_OFF = 0x00, - EMBER_ZCL_THERMOSTAT_RUNNING_MODE_COOL = 0x03, - EMBER_ZCL_THERMOSTAT_RUNNING_MODE_HEAT = 0x04, -} EmberAfThermostatRunningMode; - -typedef enum -{ - EMBER_ZCL_THERMOSTAT_SYSTEM_MODE_OFF = 0x00, - EMBER_ZCL_THERMOSTAT_SYSTEM_MODE_AUTO = 0x01, - EMBER_ZCL_THERMOSTAT_SYSTEM_MODE_COOL = 0x03, - EMBER_ZCL_THERMOSTAT_SYSTEM_MODE_HEAT = 0x04, - EMBER_ZCL_THERMOSTAT_SYSTEM_MODE_EMERGENCY_HEATING = 0x05, - EMBER_ZCL_THERMOSTAT_SYSTEM_MODE_PRECOOLING = 0x06, - EMBER_ZCL_THERMOSTAT_SYSTEM_MODE_FAN_ONLY = 0x07, -} EmberAfThermostatSystemMode; - -typedef enum -{ - EMBER_ZCL_TIER_BLOCK_MODE_ACTIVE_BLOCK = 0x00, - EMBER_ZCL_TIER_BLOCK_MODE_ACTIVE_BLOCK_PRICE_TIER = 0x01, - EMBER_ZCL_TIER_BLOCK_MODE_ACTIVE_BLOCK_PRICE_TIER_THRESHOLD = 0x02, - EMBER_ZCL_TIER_BLOCK_MODE_NOT_USED = 0xFF, -} EmberAfTierBlockMode; - -typedef enum -{ - EMBER_ZCL_TIME_ENCODING_RELATIVE = 0x00, - EMBER_ZCL_TIME_ENCODING_ABSOLUTE = 0x40, -} EmberAfTimeEncoding; - -typedef enum -{ - EMBER_ZCL_TUNNELING_PROTOCOL_ID_DLMS_COSEM = 0x00, - EMBER_ZCL_TUNNELING_PROTOCOL_ID_IEC_61107 = 0x01, - EMBER_ZCL_TUNNELING_PROTOCOL_ID_ANSI_C12 = 0x02, - EMBER_ZCL_TUNNELING_PROTOCOL_ID_M_BUS = 0x03, - EMBER_ZCL_TUNNELING_PROTOCOL_ID_SML = 0x04, - EMBER_ZCL_TUNNELING_PROTOCOL_ID_CLIMATE_TALK = 0x05, - EMBER_ZCL_TUNNELING_PROTOCOL_ID_GB_HRGP = 0x06, - EMBER_ZCL_TUNNELING_PROTOCOL_ID_TEST = 0xC7, -} EmberAfTunnelingProtocolId; - -typedef enum -{ - EMBER_ZCL_TUNNELING_TRANSFER_DATA_STATUS_NO_SUCH_TUNNEL = 0x00, - EMBER_ZCL_TUNNELING_TRANSFER_DATA_STATUS_WRONG_DEVICE = 0x01, - EMBER_ZCL_TUNNELING_TRANSFER_DATA_STATUS_DATA_OVERFLOW = 0x02, -} EmberAfTunnelingTransferDataStatus; - -typedef enum -{ - EMBER_ZCL_TUNNELING_TUNNEL_STATUS_SUCCESS = 0x00, - EMBER_ZCL_TUNNELING_TUNNEL_STATUS_BUSY = 0x01, - EMBER_ZCL_TUNNELING_TUNNEL_STATUS_NO_MORE_TUNNEL_IDS = 0x02, - EMBER_ZCL_TUNNELING_TUNNEL_STATUS_PROTOCOL_NOT_SUPPORTED = 0x03, - EMBER_ZCL_TUNNELING_TUNNEL_STATUS_FLOW_CONTROL_NOT_SUPPORTED = 0x04, -} EmberAfTunnelingTunnelStatus; - -typedef enum -{ - EMBER_ZCL_WAN_STATUS_CONNECTION_TO_WAN_IS_NOT_AVAILABLE = 0x00, - EMBER_ZCL_WAN_STATUS_CONNECTION_TO_WAN_IS_AVAILABLE = 0x01, -} EmberAfWanStatus; - -typedef enum -{ - EMBER_ZCL_WARNING_EVENT_WARNING1_OVERALL_POWER_ABOVE_AVAILABLE_POWER_LEVEL = 0x00, - EMBER_ZCL_WARNING_EVENT_WARNING2_OVERALL_POWER_ABOVE_POWER_THRESHOLD_LEVEL = 0x01, - EMBER_ZCL_WARNING_EVENT_WARNING3_OVERALL_POWER_BACK_BELOW_THE_AVAILABLE_POWER_LEVEL = 0x02, - EMBER_ZCL_WARNING_EVENT_WARNING4_OVERALL_POWER_BACK_BELOW_THE_POWER_THRESHOLD_LEVEL = 0x03, - EMBER_ZCL_WARNING_EVENT_WARNING5_OVERALL_POWER_WILL_BE_POTENTIALLY_ABOVE_AVAILABLE_POWER_LEVEL_IF_THE_APPLIANCE_STARTS = 0x04, -} EmberAfWarningEvent; - -typedef enum -{ - EMBER_ZCL_WARNING_MODE_STOP = 0x00, - EMBER_ZCL_WARNING_MODE_BURGLAR = 0x01, - EMBER_ZCL_WARNING_MODE_FIRE = 0x02, - EMBER_ZCL_WARNING_MODE_EMERGENCY = 0x03, - EMBER_ZCL_WARNING_MODE_POLICE_PANIC = 0x04, - EMBER_ZCL_WARNING_MODE_FIRE_PANIC = 0x05, - EMBER_ZCL_WARNING_MODE_EMERGENCY_PANIC = 0x06, -} EmberAfWarningMode; - -typedef enum -{ - EMBER_ZCL_WARNING_STOBE_NO_STROBE = 0x00, - EMBER_ZCL_WARNING_STOBE_USE_STROBE = 0x01, -} EmberAfWarningStobe; - -typedef enum -{ - EMBER_ZCL_WWAH_IAS_ZONE_ENROLLMENT_MODE_TRIP_TO_PAIR = 0x00, - EMBER_ZCL_WWAH_IAS_ZONE_ENROLLMENT_MODE_AUTO_ENROLLMENT_RESPONSE = 0x01, - EMBER_ZCL_WWAH_IAS_ZONE_ENROLLMENT_MODE_REQUEST = 0x02, -} EmberAfWwahIasZoneEnrollmentMode; - -typedef enum -{ - EMBER_ZCL_WWAH_POWER_NOTIFICATION_REASON_UNKNOWN = 0x00, - EMBER_ZCL_WWAH_POWER_NOTIFICATION_REASON_BATTERY = 0x01, - EMBER_ZCL_WWAH_POWER_NOTIFICATION_REASON_BROWNOUT = 0x02, - EMBER_ZCL_WWAH_POWER_NOTIFICATION_REASON_WATCHDOG = 0x03, - EMBER_ZCL_WWAH_POWER_NOTIFICATION_REASON_RESET_PIN = 0x04, - EMBER_ZCL_WWAH_POWER_NOTIFICATION_REASON_MEMORY_HARDWARE_FAULT = 0x05, - EMBER_ZCL_WWAH_POWER_NOTIFICATION_REASON_SOFWARE_EXCEPTION = 0x06, - EMBER_ZCL_WWAH_POWER_NOTIFICATION_REASON_OTA_BOOTLOAD_SUCCESS = 0x07, - EMBER_ZCL_WWAH_POWER_NOTIFICATION_REASON_SOFTWARE_RESET = 0x08, - EMBER_ZCL_WWAH_POWER_NOTIFICATION_REASON_POWER_BUTTON = 0x09, - EMBER_ZCL_WWAH_POWER_NOTIFICATION_REASON_TEMPERATURE = 0x0A, - EMBER_ZCL_WWAH_POWER_NOTIFICATION_REASON_BOOTLOAD_FAILURE = 0x0B, -} EmberAfWwahPowerNotificationReason; - -typedef enum -{ - EMBER_ZCL_ZIGBEE_INFORMATION_LOGICAL_TYPE_COORDINATOR = 0x00, - EMBER_ZCL_ZIGBEE_INFORMATION_LOGICAL_TYPE_ROUTER = 0x01, - EMBER_ZCL_ZIGBEE_INFORMATION_LOGICAL_TYPE_END_DEVICE = 0x02, -} EmberAfZigbeeInformationLogicalType; - -typedef enum -{ - EMBER_ZCL_ZLL_STATUS_SUCCESS = 0x00, - EMBER_ZCL_ZLL_STATUS_FAILURE = 0x01, -} EmberAfZllStatus; - -#define EMBER_AF_SHADE_CLOSURE_STATUS_OPERATIONAL (0x01) -#define EMBER_AF_SHADE_CLOSURE_STATUS_ADJUSTING (0x02) -#define EMBER_AF_SHADE_CLOSURE_STATUS_ADJUSTING_OFFSET (1) -#define EMBER_AF_SHADE_CLOSURE_STATUS_OPENING (0x04) -#define EMBER_AF_SHADE_CLOSURE_STATUS_OPENING_OFFSET (2) -#define EMBER_AF_SHADE_CLOSURE_STATUS_MOTOR_OPENING (0x08) -#define EMBER_AF_SHADE_CLOSURE_STATUS_MOTOR_OPENING_OFFSET (3) -#define EMBER_AF_ALARM_MASK_GENERAL_HW_FAULT (0x01) -#define EMBER_AF_ALARM_MASK_GENERAL_SW_FAULT (0x02) -#define EMBER_AF_ALARM_MASK_GENERAL_SW_FAULT_OFFSET (1) -#define EMBER_AF_RESTART_OPTIONS_START_MODE1 (0x01) -#define EMBER_AF_RESTART_OPTIONS_STARTUP_MODE2 (0x02) -#define EMBER_AF_RESTART_OPTIONS_STARTUP_MODE2_OFFSET (1) -#define EMBER_AF_RESTART_OPTIONS_STARTUP_MODE3 (0x04) -#define EMBER_AF_RESTART_OPTIONS_STARTUP_MODE3_OFFSET (2) -#define EMBER_AF_RESTART_OPTIONS_IMMEDIATE (0x08) -#define EMBER_AF_RESTART_OPTIONS_IMMEDIATE_OFFSET (3) -#define EMBER_AF_RESET_OPTIONS_RESET_CURRENT (0x01) -#define EMBER_AF_RESET_OPTIONS_RESET_ALL (0x02) -#define EMBER_AF_RESET_OPTIONS_RESET_ALL_OFFSET (1) -#define EMBER_AF_RESET_OPTIONS_ERASE_INDEX (0x04) -#define EMBER_AF_RESET_OPTIONS_ERASE_INDEX_OFFSET (2) -#define EMBER_AF_MAINS_ALARM_MASK_VOLTAGE_TOO_LOW (0x01) -#define EMBER_AF_MAINS_ALARM_MASK_VOLTAGE_TOO_HIGH (0x02) -#define EMBER_AF_MAINS_ALARM_MASK_VOLTAGE_TOO_HIGH_OFFSET (1) -#define EMBER_AF_MAINS_ALARM_MASK_MAINS_POWER_SUPPLY_LOST (0x04) -#define EMBER_AF_MAINS_ALARM_MASK_MAINS_POWER_SUPPLY_LOST_OFFSET (2) -#define EMBER_AF_BATTERY_ALARM_MASK_VOLTAGE_TOO_LOW (0x01) -#define EMBER_AF_DEVICE_TEMP_ALARM_MASK_TOO_LOW (0x01) -#define EMBER_AF_DEVICE_TEMP_ALARM_MASK_TOO_HIGH (0x02) -#define EMBER_AF_DEVICE_TEMP_ALARM_MASK_TOO_HIGH_OFFSET (1) -#define EMBER_AF_TIME_STATUS_MASK_MASTER_CLOCK (0x01) -#define EMBER_AF_TIME_STATUS_MASK_SYNCHRONIZED (0x02) -#define EMBER_AF_TIME_STATUS_MASK_SYNCHRONIZED_OFFSET (1) -#define EMBER_AF_TIME_STATUS_MASK_MASTER_ZONE_DST (0x04) -#define EMBER_AF_TIME_STATUS_MASK_MASTER_ZONE_DST_OFFSET (2) -#define EMBER_AF_TIME_STATUS_MASK_SUPERSEDING (0x08) -#define EMBER_AF_TIME_STATUS_MASK_SUPERSEDING_OFFSET (3) -#define EMBER_AF_LOCATION_TYPE_ABSOLUTE (0x01) -#define EMBER_AF_LOCATION_TYPE2_D (0x02) -#define EMBER_AF_LOCATION_TYPE2_D_OFFSET (1) -#define EMBER_AF_LOCATION_TYPE_COORDINATE_SYSTEM (0x0C) -#define EMBER_AF_LOCATION_TYPE_COORDINATE_SYSTEM_OFFSET (2) -#define EMBER_AF_GET_LOCATION_DATA_FLAGS_ABSOLUTE_ONLY (0x01) -#define EMBER_AF_GET_LOCATION_DATA_FLAGS_RECALCULATE (0x02) -#define EMBER_AF_GET_LOCATION_DATA_FLAGS_RECALCULATE_OFFSET (1) -#define EMBER_AF_GET_LOCATION_DATA_FLAGS_BROADCAST (0x04) -#define EMBER_AF_GET_LOCATION_DATA_FLAGS_BROADCAST_OFFSET (2) -#define EMBER_AF_GET_LOCATION_DATA_FLAGS_BROADCAST_RESPONSE (0x08) -#define EMBER_AF_GET_LOCATION_DATA_FLAGS_BROADCAST_RESPONSE_OFFSET (3) -#define EMBER_AF_GET_LOCATION_DATA_FLAGS_COMPACT_RESPONSE (0x10) -#define EMBER_AF_GET_LOCATION_DATA_FLAGS_COMPACT_RESPONSE_OFFSET (4) -#define EMBER_AF_PUMP_STATUS_DEVICE_FAULT (0x0001) -#define EMBER_AF_PUMP_STATUS_SUPPLYFAULT (0x0002) -#define EMBER_AF_PUMP_STATUS_SUPPLYFAULT_OFFSET (1) -#define EMBER_AF_PUMP_STATUS_SPEED_LOW (0x0004) -#define EMBER_AF_PUMP_STATUS_SPEED_LOW_OFFSET (2) -#define EMBER_AF_PUMP_STATUS_SPEED_HIGH (0x0008) -#define EMBER_AF_PUMP_STATUS_SPEED_HIGH_OFFSET (3) -#define EMBER_AF_PUMP_STATUS_LOCAL_OVERRIDE (0x0010) -#define EMBER_AF_PUMP_STATUS_LOCAL_OVERRIDE_OFFSET (4) -#define EMBER_AF_PUMP_STATUS_RUNNING (0x0020) -#define EMBER_AF_PUMP_STATUS_RUNNING_OFFSET (5) -#define EMBER_AF_PUMP_STATUS_REMOTE_PRESSURE (0x0040) -#define EMBER_AF_PUMP_STATUS_REMOTE_PRESSURE_OFFSET (6) -#define EMBER_AF_PUMP_STATUS_REMOTE_FLOW (0x0080) -#define EMBER_AF_PUMP_STATUS_REMOTE_FLOW_OFFSET (7) -#define EMBER_AF_PUMP_STATUS_REMOTE_TEMPERATURE (0x0100) -#define EMBER_AF_PUMP_STATUS_REMOTE_TEMPERATURE_OFFSET (8) -#define EMBER_AF_PUMP_ALARM_MASK_SUPPLY_VOLTAGE_TOO_LOW (0x0001) -#define EMBER_AF_PUMP_ALARM_MASK_SUPPLY_VOLTAGE_TOO_HIGH (0x0002) -#define EMBER_AF_PUMP_ALARM_MASK_SUPPLY_VOLTAGE_TOO_HIGH_OFFSET (1) -#define EMBER_AF_PUMP_ALARM_MASK_POWER_MISSING_PHASE (0x0004) -#define EMBER_AF_PUMP_ALARM_MASK_POWER_MISSING_PHASE_OFFSET (2) -#define EMBER_AF_PUMP_ALARM_MASK_SYSTEM_PRESSURE_TOO_LOW (0x0008) -#define EMBER_AF_PUMP_ALARM_MASK_SYSTEM_PRESSURE_TOO_LOW_OFFSET (3) -#define EMBER_AF_PUMP_ALARM_MASK_SYSTEM_PRESSURE_TOO_HIGH (0x0010) -#define EMBER_AF_PUMP_ALARM_MASK_SYSTEM_PRESSURE_TOO_HIGH_OFFSET (4) -#define EMBER_AF_PUMP_ALARM_MASK_DRY_RUNNING (0x0020) -#define EMBER_AF_PUMP_ALARM_MASK_DRY_RUNNING_OFFSET (5) -#define EMBER_AF_PUMP_ALARM_MASK_MOTOR_TEMPERATURE_TOO_HIGH (0x0040) -#define EMBER_AF_PUMP_ALARM_MASK_MOTOR_TEMPERATURE_TOO_HIGH_OFFSET (6) -#define EMBER_AF_PUMP_ALARM_MASK_PUMP_MOTOR_HAS_FATAL_FAILURE (0x0080) -#define EMBER_AF_PUMP_ALARM_MASK_PUMP_MOTOR_HAS_FATAL_FAILURE_OFFSET (7) -#define EMBER_AF_PUMP_ALARM_MASK_ELECTRONIC_TEMPERATURE_TOO_HIGH (0x0100) -#define EMBER_AF_PUMP_ALARM_MASK_ELECTRONIC_TEMPERATURE_TOO_HIGH_OFFSET (8) -#define EMBER_AF_PUMP_ALARM_MASK_PUMP_BLOCKED (0x0200) -#define EMBER_AF_PUMP_ALARM_MASK_PUMP_BLOCKED_OFFSET (9) -#define EMBER_AF_PUMP_ALARM_MASK_SENSOR_FAILURE (0x0400) -#define EMBER_AF_PUMP_ALARM_MASK_SENSOR_FAILURE_OFFSET (10) -#define EMBER_AF_PUMP_ALARM_MASK_ELECTRONIC_NON_FATAL_FAILURE (0x0800) -#define EMBER_AF_PUMP_ALARM_MASK_ELECTRONIC_NON_FATAL_FAILURE_OFFSET (11) -#define EMBER_AF_PUMP_ALARM_MASK_ELECTRONIC_FATAL_FAILURE (0x1000) -#define EMBER_AF_PUMP_ALARM_MASK_ELECTRONIC_FATAL_FAILURE_OFFSET (12) -#define EMBER_AF_PUMP_ALARM_MASK_GENERAL_FAULT (0x2000) -#define EMBER_AF_PUMP_ALARM_MASK_GENERAL_FAULT_OFFSET (13) -#define EMBER_AF_THERMOSTAT_OCCUPANCY_OCCUPIED (0x01) -#define EMBER_AF_THERMOSTAT_SENSING_LOCAL_TEMP_SENSED_REMOTELY (0x01) -#define EMBER_AF_THERMOSTAT_SENSING_OUTDOOR_TEMP_SENSED_REMOTELY (0x02) -#define EMBER_AF_THERMOSTAT_SENSING_OUTDOOR_TEMP_SENSED_REMOTELY_OFFSET (1) -#define EMBER_AF_THERMOSTAT_SENSING_OCCUPANCY_SENSED_REMOTELY (0x04) -#define EMBER_AF_THERMOSTAT_SENSING_OCCUPANCY_SENSED_REMOTELY_OFFSET (2) -#define EMBER_AF_THERMOSTAT_ALARM_MASK_INITIALIZATION_FAILURE (0x01) -#define EMBER_AF_THERMOSTAT_ALARM_MASK_HARDWARE_FAILURE (0x02) -#define EMBER_AF_THERMOSTAT_ALARM_MASK_HARDWARE_FAILURE_OFFSET (1) -#define EMBER_AF_THERMOSTAT_ALARM_MASK_SELFCALIBRATION_FAILURE (0x04) -#define EMBER_AF_THERMOSTAT_ALARM_MASK_SELFCALIBRATION_FAILURE_OFFSET (2) -#define EMBER_AF_BALLAST_STATUS_NON_OPERATIONAL (0x01) -#define EMBER_AF_BALLAST_STATUS_LAMP_NOT_IN_SOCKET (0x02) -#define EMBER_AF_BALLAST_STATUS_LAMP_NOT_IN_SOCKET_OFFSET (1) -#define EMBER_AF_LAMP_ALARM_MODE_LAMP_BURN_HOURS (0x01) -#define EMBER_AF_OCCUPANCY_OCCUPIED (0x01) -#define EMBER_AF_IAS_ZONE_STATUS_ALARM1 (0x0001) -#define EMBER_AF_IAS_ZONE_STATUS_ALARM2 (0x0002) -#define EMBER_AF_IAS_ZONE_STATUS_ALARM2_OFFSET (1) -#define EMBER_AF_IAS_ZONE_STATUS_TAMPER (0x0004) -#define EMBER_AF_IAS_ZONE_STATUS_TAMPER_OFFSET (2) -#define EMBER_AF_IAS_ZONE_STATUS_BATTERY (0x0008) -#define EMBER_AF_IAS_ZONE_STATUS_BATTERY_OFFSET (3) -#define EMBER_AF_IAS_ZONE_STATUS_SUPERVISION_REPORTS (0x0010) -#define EMBER_AF_IAS_ZONE_STATUS_SUPERVISION_REPORTS_OFFSET (4) -#define EMBER_AF_IAS_ZONE_STATUS_RESTORE_REPORTS (0x0020) -#define EMBER_AF_IAS_ZONE_STATUS_RESTORE_REPORTS_OFFSET (5) -#define EMBER_AF_IAS_ZONE_STATUS_TROUBLE (0x0040) -#define EMBER_AF_IAS_ZONE_STATUS_TROUBLE_OFFSET (6) -#define EMBER_AF_IAS_ZONE_STATUS_A_C (0x0080) -#define EMBER_AF_IAS_ZONE_STATUS_A_C_OFFSET (7) -#define EMBER_AF_IAS_ZONE_STATUS_TEST (0x0100) -#define EMBER_AF_IAS_ZONE_STATUS_TEST_OFFSET (8) -#define EMBER_AF_IAS_ZONE_STATUS_BATTERY_DEFECT (0x0200) -#define EMBER_AF_IAS_ZONE_STATUS_BATTERY_DEFECT_OFFSET (9) -#define EMBER_AF_WARNING_INFO_MODE (0xF0) -#define EMBER_AF_WARNING_INFO_MODE_OFFSET (4) -#define EMBER_AF_WARNING_INFO_STROBE (0x0C) -#define EMBER_AF_WARNING_INFO_STROBE_OFFSET (2) -#define EMBER_AF_WARNING_INFO_SIREN_LEVEL (0x03) -#define EMBER_AF_SQUAWK_INFO_MODE (0xF0) -#define EMBER_AF_SQUAWK_INFO_MODE_OFFSET (4) -#define EMBER_AF_SQUAWK_INFO_STROBE (0x08) -#define EMBER_AF_SQUAWK_INFO_STROBE_OFFSET (3) -#define EMBER_AF_SQUAWK_INFO_LEVEL (0x03) -#define EMBER_AF_OCCUPANCY_SENSOR_TYPE_BITMAP_PIR (0x01) -#define EMBER_AF_OCCUPANCY_SENSOR_TYPE_BITMAP_ULTRASONIC (0x02) -#define EMBER_AF_OCCUPANCY_SENSOR_TYPE_BITMAP_ULTRASONIC_OFFSET (1) -#define EMBER_AF_OCCUPANCY_SENSOR_TYPE_BITMAP_PHYSICAL_CONTACT (0x04) -#define EMBER_AF_OCCUPANCY_SENSOR_TYPE_BITMAP_PHYSICAL_CONTACT_OFFSET (2) -#define EMBER_AF_ENERGY_FORMATTING_NUMBER_OF_DIGITS_TO_THE_RIGHT_OF_THE_DECIMAL_POINT (0x07) -#define EMBER_AF_ENERGY_FORMATTING_NUMBER_OF_DIGITS_TO_THE_LEFT_OF_THE_DECIMAL_POINT (0x78) -#define EMBER_AF_ENERGY_FORMATTING_NUMBER_OF_DIGITS_TO_THE_LEFT_OF_THE_DECIMAL_POINT_OFFSET (3) -#define EMBER_AF_ENERGY_FORMATTING_SUPPRESS_LEADING_ZEROS (0x80) -#define EMBER_AF_ENERGY_FORMATTING_SUPPRESS_LEADING_ZEROS_OFFSET (7) -#define EMBER_AF_REMOTE_ENABLE_FLAGS_AND_DEVICE_STATUS2_REMOTE_ENABLE_FLAGS (0x0F) -#define EMBER_AF_REMOTE_ENABLE_FLAGS_AND_DEVICE_STATUS2_DEVICE_STATUS2_STRUCTURE (0xF0) -#define EMBER_AF_REMOTE_ENABLE_FLAGS_AND_DEVICE_STATUS2_DEVICE_STATUS2_STRUCTURE_OFFSET (4) -#define EMBER_AF_START_TIME_MINUTES (0x003F) -#define EMBER_AF_START_TIME_TIME_ENCODING (0x00C0) -#define EMBER_AF_START_TIME_TIME_ENCODING_OFFSET (6) -#define EMBER_AF_START_TIME_HOURS (0xFF00) -#define EMBER_AF_START_TIME_HOURS_OFFSET (8) -#define EMBER_AF_DOOR_LOCK_DAY_OF_WEEK_SUNDAY (0x01) -#define EMBER_AF_DOOR_LOCK_DAY_OF_WEEK_MONDAY (0x02) -#define EMBER_AF_DOOR_LOCK_DAY_OF_WEEK_MONDAY_OFFSET (1) -#define EMBER_AF_DOOR_LOCK_DAY_OF_WEEK_TUESDAY (0x04) -#define EMBER_AF_DOOR_LOCK_DAY_OF_WEEK_TUESDAY_OFFSET (2) -#define EMBER_AF_DOOR_LOCK_DAY_OF_WEEK_WEDNESDAY (0x08) -#define EMBER_AF_DOOR_LOCK_DAY_OF_WEEK_WEDNESDAY_OFFSET (3) -#define EMBER_AF_DOOR_LOCK_DAY_OF_WEEK_THURSDAY (0x10) -#define EMBER_AF_DOOR_LOCK_DAY_OF_WEEK_THURSDAY_OFFSET (4) -#define EMBER_AF_DOOR_LOCK_DAY_OF_WEEK_FRIDAY (0x20) -#define EMBER_AF_DOOR_LOCK_DAY_OF_WEEK_FRIDAY_OFFSET (5) -#define EMBER_AF_DOOR_LOCK_DAY_OF_WEEK_SATURDAY (0x40) -#define EMBER_AF_DOOR_LOCK_DAY_OF_WEEK_SATURDAY_OFFSET (6) -#define EMBER_AF_THERMOSTAT_RUNNING_STATE_HEAT_STATE_ON (0x0001) -#define EMBER_AF_THERMOSTAT_RUNNING_STATE_COOL_STATE_ON (0x0002) -#define EMBER_AF_THERMOSTAT_RUNNING_STATE_COOL_STATE_ON_OFFSET (1) -#define EMBER_AF_THERMOSTAT_RUNNING_STATE_FAN_STATE_ON (0x0004) -#define EMBER_AF_THERMOSTAT_RUNNING_STATE_FAN_STATE_ON_OFFSET (2) -#define EMBER_AF_THERMOSTAT_RUNNING_STATE_HEAT_SECOND_STAGE_STATE_ON (0x0008) -#define EMBER_AF_THERMOSTAT_RUNNING_STATE_HEAT_SECOND_STAGE_STATE_ON_OFFSET (3) -#define EMBER_AF_THERMOSTAT_RUNNING_STATE_COOL_SECOND_STAGE_STATE_ON (0x0010) -#define EMBER_AF_THERMOSTAT_RUNNING_STATE_COOL_SECOND_STAGE_STATE_ON_OFFSET (4) -#define EMBER_AF_THERMOSTAT_RUNNING_STATE_FAN_SECOND_STAGE_STATE_ON (0x0020) -#define EMBER_AF_THERMOSTAT_RUNNING_STATE_FAN_SECOND_STAGE_STATE_ON_OFFSET (5) -#define EMBER_AF_THERMOSTAT_RUNNING_STATE_FAN_THIRD_STAGE_STATE_ON (0x0040) -#define EMBER_AF_THERMOSTAT_RUNNING_STATE_FAN_THIRD_STAGE_STATE_ON_OFFSET (6) -#define EMBER_AF_DAY_OF_WEEK_SUNDAY (0x01) -#define EMBER_AF_DAY_OF_WEEK_MONDAY (0x02) -#define EMBER_AF_DAY_OF_WEEK_MONDAY_OFFSET (1) -#define EMBER_AF_DAY_OF_WEEK_TUESDAY (0x04) -#define EMBER_AF_DAY_OF_WEEK_TUESDAY_OFFSET (2) -#define EMBER_AF_DAY_OF_WEEK_WEDNESDAY (0x08) -#define EMBER_AF_DAY_OF_WEEK_WEDNESDAY_OFFSET (3) -#define EMBER_AF_DAY_OF_WEEK_THURSDAY (0x10) -#define EMBER_AF_DAY_OF_WEEK_THURSDAY_OFFSET (4) -#define EMBER_AF_DAY_OF_WEEK_FRIDAY (0x20) -#define EMBER_AF_DAY_OF_WEEK_FRIDAY_OFFSET (5) -#define EMBER_AF_DAY_OF_WEEK_SATURDAY (0x40) -#define EMBER_AF_DAY_OF_WEEK_SATURDAY_OFFSET (6) -#define EMBER_AF_DAY_OF_WEEK_AWAY_OR_VACATION (0x80) -#define EMBER_AF_DAY_OF_WEEK_AWAY_OR_VACATION_OFFSET (7) -#define EMBER_AF_MODE_FOR_SEQUENCE_HEAT_SETPOINT_FIELD_PRESENT (0x01) -#define EMBER_AF_MODE_FOR_SEQUENCE_COOL_SETPOINT_FIELD_PRESENT (0x02) -#define EMBER_AF_MODE_FOR_SEQUENCE_COOL_SETPOINT_FIELD_PRESENT_OFFSET (1) -#define EMBER_AF_ALERT_STRUCTURE_ALERT_ID (0x0000FF) -#define EMBER_AF_ALERT_STRUCTURE_CATEGORY (0x000F00) -#define EMBER_AF_ALERT_STRUCTURE_CATEGORY_OFFSET (8) -#define EMBER_AF_ALERT_STRUCTURE_PRESENCE_RECOVERY (0x003000) -#define EMBER_AF_ALERT_STRUCTURE_PRESENCE_RECOVERY_OFFSET (12) -#define EMBER_AF_ALERT_COUNT_NUMBER_OF_ALERTS (0x0F) -#define EMBER_AF_ALERT_COUNT_TYPE_OF_ALERT (0xF0) -#define EMBER_AF_ALERT_COUNT_TYPE_OF_ALERT_OFFSET (4) -#define EMBER_AF_BARRIER_CONTROL_CAPABILITIES_PARTIAL_BARRIER (0x01) -#define EMBER_AF_BARRIER_CONTROL_SAFETY_STATUS_REMOTE_LOCKOUT (0x0001) -#define EMBER_AF_BARRIER_CONTROL_SAFETY_STATUS_TEMPER_DETECTED (0x0002) -#define EMBER_AF_BARRIER_CONTROL_SAFETY_STATUS_TEMPER_DETECTED_OFFSET (1) -#define EMBER_AF_BARRIER_CONTROL_SAFETY_STATUS_FAILED_COMMUNICATION (0x0004) -#define EMBER_AF_BARRIER_CONTROL_SAFETY_STATUS_FAILED_COMMUNICATION_OFFSET (2) -#define EMBER_AF_BARRIER_CONTROL_SAFETY_STATUS_POSITION_FAILURE (0x0008) -#define EMBER_AF_BARRIER_CONTROL_SAFETY_STATUS_POSITION_FAILURE_OFFSET (3) -#define EMBER_AF_BLOCK_PERIOD_DURATION_TYPE_TIMEBASE (0x0F) -#define EMBER_AF_BLOCK_PERIOD_DURATION_TYPE_CONTROL (0xF0) -#define EMBER_AF_BLOCK_PERIOD_DURATION_TYPE_CONTROL_OFFSET (4) -#define EMBER_AF_CONVERSION_FACTOR_TRAILING_DIGIT_TRAILING_DIGIT (0xF0) -#define EMBER_AF_CONVERSION_FACTOR_TRAILING_DIGIT_TRAILING_DIGIT_OFFSET (4) -#define EMBER_AF_CALORIFIC_VALUE_TRAILING_DIGIT_TRAILING_DIGIT (0xF0) -#define EMBER_AF_CALORIFIC_VALUE_TRAILING_DIGIT_TRAILING_DIGIT_OFFSET (4) -#define EMBER_AF_PRICE_TRAILING_DIGIT_TRAILING_DIGIT (0xF0) -#define EMBER_AF_PRICE_TRAILING_DIGIT_TRAILING_DIGIT_OFFSET (4) -#define EMBER_AF_C_O2_TRAILING_DIGIT_TRAILING_DIGIT (0xF0) -#define EMBER_AF_C_O2_TRAILING_DIGIT_TRAILING_DIGIT_OFFSET (4) -#define EMBER_AF_PRICE_TRAILING_DIGIT_AND_PRICE_TIER_PRICE_TIER (0x0F) -#define EMBER_AF_PRICE_TRAILING_DIGIT_AND_PRICE_TIER_TRAILING_DIGIT (0xF0) -#define EMBER_AF_PRICE_TRAILING_DIGIT_AND_PRICE_TIER_TRAILING_DIGIT_OFFSET (4) -#define EMBER_AF_PRICE_NUMBER_OF_PRICE_TIERS_AND_REGISTER_TIER_REGISTER_TIER (0x0F) -#define EMBER_AF_PRICE_NUMBER_OF_PRICE_TIERS_AND_REGISTER_TIER_NUMBER_OF_PRICE_TIERS (0xF0) -#define EMBER_AF_PRICE_NUMBER_OF_PRICE_TIERS_AND_REGISTER_TIER_NUMBER_OF_PRICE_TIERS_OFFSET (4) -#define EMBER_AF_ALTERNATE_COST_TRAILING_DIGIT_TRAILING_DIGIT (0xF0) -#define EMBER_AF_ALTERNATE_COST_TRAILING_DIGIT_TRAILING_DIGIT_OFFSET (4) -#define EMBER_AF_PRICE_CONTROL_MASK_PRICE_ACKNOWLEDGEMENT_REQUIRED (0x01) -#define EMBER_AF_PRICE_CONTROL_MASK_TOTAL_TIERS_EXCEEDS15 (0x02) -#define EMBER_AF_PRICE_CONTROL_MASK_TOTAL_TIERS_EXCEEDS15_OFFSET (1) -#define EMBER_AF_BLOCK_PERIOD_CONTROL_PRICE_ACKNOWLEDGEMENT_REQUIREMENT (0x01) -#define EMBER_AF_BLOCK_PERIOD_CONTROL_REPEATING_BLOCK (0x02) -#define EMBER_AF_BLOCK_PERIOD_CONTROL_REPEATING_BLOCK_OFFSET (1) -#define EMBER_AF_TARIFF_TYPE_CHARGING_SCHEME_TARIFF_TYPE (0x0F) -#define EMBER_AF_TARIFF_TYPE_CHARGING_SCHEME_TARIFF_CHARGING_SCHEME (0xF0) -#define EMBER_AF_TARIFF_TYPE_CHARGING_SCHEME_TARIFF_CHARGING_SCHEME_OFFSET (4) -#define EMBER_AF_PRICE_MATRIX_SUB_PAYLOAD_CONTROL_TOU_BASED (0x01) -#define EMBER_AF_BLOCK_THRESHOLD_SUB_PAYLOAD_CONTROL_APPLY_TO_ALL_TOU_TIERS_OR_WHEN_BLOCK_ONLY_CHARGING (0x01) -#define EMBER_AF_BILLING_PERIOD_DURATION_DURATION (0x3FFFFF) -#define EMBER_AF_BILLING_PERIOD_DURATION_UNITS (0xC00000) -#define EMBER_AF_BILLING_PERIOD_DURATION_UNITS_OFFSET (22) -#define EMBER_AF_BILLING_PERIOD_DURATION_TYPE_TIMEBASE (0x0F) -#define EMBER_AF_BILLING_PERIOD_DURATION_TYPE_CONTROL (0xF0) -#define EMBER_AF_BILLING_PERIOD_DURATION_TYPE_CONTROL_OFFSET (4) -#define EMBER_AF_BILL_TRAILING_DIGIT_TRAILING_DIGIT (0xF0) -#define EMBER_AF_BILL_TRAILING_DIGIT_TRAILING_DIGIT_OFFSET (4) -#define EMBER_AF_CURRENCY_CHANGE_CONTROL_CLEAR_BILLING_INFO (0x00000001) -#define EMBER_AF_CURRENCY_CHANGE_CONTROL_CONVERT_BILLING_INFO_USING_NEW_CURRENCY (0x00000002) -#define EMBER_AF_CURRENCY_CHANGE_CONTROL_CONVERT_BILLING_INFO_USING_NEW_CURRENCY_OFFSET (1) -#define EMBER_AF_CURRENCY_CHANGE_CONTROL_CLEAR_OLD_CONSUMPTION_DATA (0x00000004) -#define EMBER_AF_CURRENCY_CHANGE_CONTROL_CLEAR_OLD_CONSUMPTION_DATA_OFFSET (2) -#define EMBER_AF_CURRENCY_CHANGE_CONTROL_CONVERT_OLD_CONSUMPTION_DATA_USING_NEW_CURRENCY (0x00000008) -#define EMBER_AF_CURRENCY_CHANGE_CONTROL_CONVERT_OLD_CONSUMPTION_DATA_USING_NEW_CURRENCY_OFFSET (3) -#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER1 (0x0002) -#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER1_OFFSET (1) -#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER2 (0x0004) -#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER2_OFFSET (2) -#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER3 (0x0008) -#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER3_OFFSET (3) -#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER4 (0x0010) -#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER4_OFFSET (4) -#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER5 (0x0020) -#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER5_OFFSET (5) -#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER6 (0x0040) -#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER6_OFFSET (6) -#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER7 (0x0080) -#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER7_OFFSET (7) -#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER8 (0x0100) -#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER8_OFFSET (8) -#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER9 (0x0200) -#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER9_OFFSET (9) -#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER10 (0x0400) -#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER10_OFFSET (10) -#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER11 (0x0800) -#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER11_OFFSET (11) -#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER12 (0x1000) -#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER12_OFFSET (12) -#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER13 (0x2000) -#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER13_OFFSET (13) -#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER14 (0x4000) -#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER14_OFFSET (14) -#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER15 (0x8000) -#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER15_OFFSET (15) -#define EMBER_AF_AMI_COMMAND_OPTIONS_REQUEST_RX_ON_WHEN_IDLE (0x01) -#define EMBER_AF_AMI_DEVICE_CLASS_HVAC_COMPRESSOR_OR_FURNACE (0x0001) -#define EMBER_AF_AMI_DEVICE_CLASS_STRIP_HEAT_BASEBOARD_HEAT (0x0002) -#define EMBER_AF_AMI_DEVICE_CLASS_STRIP_HEAT_BASEBOARD_HEAT_OFFSET (1) -#define EMBER_AF_AMI_DEVICE_CLASS_WATER_HEATER (0x0004) -#define EMBER_AF_AMI_DEVICE_CLASS_WATER_HEATER_OFFSET (2) -#define EMBER_AF_AMI_DEVICE_CLASS_POOL_PUMP_SPA_JACUZZI (0x0008) -#define EMBER_AF_AMI_DEVICE_CLASS_POOL_PUMP_SPA_JACUZZI_OFFSET (3) -#define EMBER_AF_AMI_DEVICE_CLASS_SMART_APPLIANCES (0x0010) -#define EMBER_AF_AMI_DEVICE_CLASS_SMART_APPLIANCES_OFFSET (4) -#define EMBER_AF_AMI_DEVICE_CLASS_IRRIGATION_PUMP (0x0020) -#define EMBER_AF_AMI_DEVICE_CLASS_IRRIGATION_PUMP_OFFSET (5) -#define EMBER_AF_AMI_DEVICE_CLASS_MANAGED_C_AND_I_LOADS (0x0040) -#define EMBER_AF_AMI_DEVICE_CLASS_MANAGED_C_AND_I_LOADS_OFFSET (6) -#define EMBER_AF_AMI_DEVICE_CLASS_SIMPLE_MISC_LOADS (0x0080) -#define EMBER_AF_AMI_DEVICE_CLASS_SIMPLE_MISC_LOADS_OFFSET (7) -#define EMBER_AF_AMI_DEVICE_CLASS_EXTERIOR_LIGHTING (0x0100) -#define EMBER_AF_AMI_DEVICE_CLASS_EXTERIOR_LIGHTING_OFFSET (8) -#define EMBER_AF_AMI_DEVICE_CLASS_INTERIOR_LIGHTING (0x0200) -#define EMBER_AF_AMI_DEVICE_CLASS_INTERIOR_LIGHTING_OFFSET (9) -#define EMBER_AF_AMI_DEVICE_CLASS_ELECTRIC_VEHICLE (0x0400) -#define EMBER_AF_AMI_DEVICE_CLASS_ELECTRIC_VEHICLE_OFFSET (10) -#define EMBER_AF_AMI_DEVICE_CLASS_GENERATION_SYSTEMS (0x0800) -#define EMBER_AF_AMI_DEVICE_CLASS_GENERATION_SYSTEMS_OFFSET (11) -#define EMBER_AF_AMI_EVENT_CONTROL_RANDOMIZED_START_TIME (0x01) -#define EMBER_AF_AMI_EVENT_CONTROL_RANDOMIZED_END_TIME (0x02) -#define EMBER_AF_AMI_EVENT_CONTROL_RANDOMIZED_END_TIME_OFFSET (1) -#define EMBER_AF_AMI_CANCEL_CONTROL_TERMINATE_WITH_RANDOMIZATION (0x01) -#define EMBER_AF_AMI_METER_STATUS_CHECK_METER (0x01) -#define EMBER_AF_AMI_METER_STATUS_LOW_BATTERY (0x02) -#define EMBER_AF_AMI_METER_STATUS_LOW_BATTERY_OFFSET (1) -#define EMBER_AF_AMI_METER_STATUS_TAMPER_DETECT (0x04) -#define EMBER_AF_AMI_METER_STATUS_TAMPER_DETECT_OFFSET (2) -#define EMBER_AF_AMI_METER_STATUS_POWER_FAILURE (0x08) -#define EMBER_AF_AMI_METER_STATUS_POWER_FAILURE_OFFSET (3) -#define EMBER_AF_AMI_METER_STATUS_POWER_QUALITY (0x10) -#define EMBER_AF_AMI_METER_STATUS_POWER_QUALITY_OFFSET (4) -#define EMBER_AF_AMI_METER_STATUS_LEAK_DETECT (0x20) -#define EMBER_AF_AMI_METER_STATUS_LEAK_DETECT_OFFSET (5) -#define EMBER_AF_AMI_METER_STATUS_SERVICE_DISCONNECT_OPEN (0x40) -#define EMBER_AF_AMI_METER_STATUS_SERVICE_DISCONNECT_OPEN_OFFSET (6) -#define EMBER_AF_AMI_METER_STATUS_RESERVED (0x80) -#define EMBER_AF_AMI_METER_STATUS_RESERVED_OFFSET (7) -#define EMBER_AF_METERING_STATUS_ELECTRICITY_CHECK_METER (0x01) -#define EMBER_AF_METERING_STATUS_ELECTRICITY_LOW_BATTERY (0x02) -#define EMBER_AF_METERING_STATUS_ELECTRICITY_LOW_BATTERY_OFFSET (1) -#define EMBER_AF_METERING_STATUS_ELECTRICITY_TAMPER_DETECT (0x04) -#define EMBER_AF_METERING_STATUS_ELECTRICITY_TAMPER_DETECT_OFFSET (2) -#define EMBER_AF_METERING_STATUS_ELECTRICITY_POWER_FAILURE (0x08) -#define EMBER_AF_METERING_STATUS_ELECTRICITY_POWER_FAILURE_OFFSET (3) -#define EMBER_AF_METERING_STATUS_ELECTRICITY_POWER_QUALITY (0x10) -#define EMBER_AF_METERING_STATUS_ELECTRICITY_POWER_QUALITY_OFFSET (4) -#define EMBER_AF_METERING_STATUS_ELECTRICITY_LEAK_DETECT (0x20) -#define EMBER_AF_METERING_STATUS_ELECTRICITY_LEAK_DETECT_OFFSET (5) -#define EMBER_AF_METERING_STATUS_ELECTRICITY_SERVICE_DISCONNECT_OPEN (0x40) -#define EMBER_AF_METERING_STATUS_ELECTRICITY_SERVICE_DISCONNECT_OPEN_OFFSET (6) -#define EMBER_AF_METERING_STATUS_ELECTRICITY_RESERVED (0x80) -#define EMBER_AF_METERING_STATUS_ELECTRICITY_RESERVED_OFFSET (7) -#define EMBER_AF_METERING_STATUS_GAS_CHECK_METER (0x01) -#define EMBER_AF_METERING_STATUS_GAS_LOW_BATTERY (0x02) -#define EMBER_AF_METERING_STATUS_GAS_LOW_BATTERY_OFFSET (1) -#define EMBER_AF_METERING_STATUS_GAS_TAMPER_DETECT (0x04) -#define EMBER_AF_METERING_STATUS_GAS_TAMPER_DETECT_OFFSET (2) -#define EMBER_AF_METERING_STATUS_GAS_NOT_DEFINED (0x08) -#define EMBER_AF_METERING_STATUS_GAS_NOT_DEFINED_OFFSET (3) -#define EMBER_AF_METERING_STATUS_GAS_LOW_PRESSURE (0x10) -#define EMBER_AF_METERING_STATUS_GAS_LOW_PRESSURE_OFFSET (4) -#define EMBER_AF_METERING_STATUS_GAS_LEAK_DETECT (0x20) -#define EMBER_AF_METERING_STATUS_GAS_LEAK_DETECT_OFFSET (5) -#define EMBER_AF_METERING_STATUS_GAS_SERVICE_DISCONNECT (0x40) -#define EMBER_AF_METERING_STATUS_GAS_SERVICE_DISCONNECT_OFFSET (6) -#define EMBER_AF_METERING_STATUS_GAS_REVERSE_FLOW (0x80) -#define EMBER_AF_METERING_STATUS_GAS_REVERSE_FLOW_OFFSET (7) -#define EMBER_AF_METERING_STATUS_WATER_CHECK_METER (0x01) -#define EMBER_AF_METERING_STATUS_WATER_LOW_BATTERY (0x02) -#define EMBER_AF_METERING_STATUS_WATER_LOW_BATTERY_OFFSET (1) -#define EMBER_AF_METERING_STATUS_WATER_TAMPER_DETECT (0x04) -#define EMBER_AF_METERING_STATUS_WATER_TAMPER_DETECT_OFFSET (2) -#define EMBER_AF_METERING_STATUS_WATER_PIPE_EMPTY (0x08) -#define EMBER_AF_METERING_STATUS_WATER_PIPE_EMPTY_OFFSET (3) -#define EMBER_AF_METERING_STATUS_WATER_LOW_PRESSURE (0x10) -#define EMBER_AF_METERING_STATUS_WATER_LOW_PRESSURE_OFFSET (4) -#define EMBER_AF_METERING_STATUS_WATER_LEAK_DETECT (0x20) -#define EMBER_AF_METERING_STATUS_WATER_LEAK_DETECT_OFFSET (5) -#define EMBER_AF_METERING_STATUS_WATER_SERVICE_DISCONNECT (0x40) -#define EMBER_AF_METERING_STATUS_WATER_SERVICE_DISCONNECT_OFFSET (6) -#define EMBER_AF_METERING_STATUS_WATER_REVERSE_FLOW (0x80) -#define EMBER_AF_METERING_STATUS_WATER_REVERSE_FLOW_OFFSET (7) -#define EMBER_AF_METERING_STATUS_HEAT_AND_COOLING_CHECK_METER (0x01) -#define EMBER_AF_METERING_STATUS_HEAT_AND_COOLING_LOW_BATTERY (0x02) -#define EMBER_AF_METERING_STATUS_HEAT_AND_COOLING_LOW_BATTERY_OFFSET (1) -#define EMBER_AF_METERING_STATUS_HEAT_AND_COOLING_TAMPER_DETECT (0x04) -#define EMBER_AF_METERING_STATUS_HEAT_AND_COOLING_TAMPER_DETECT_OFFSET (2) -#define EMBER_AF_METERING_STATUS_HEAT_AND_COOLING_TEMPERATURE_SENSOR (0x08) -#define EMBER_AF_METERING_STATUS_HEAT_AND_COOLING_TEMPERATURE_SENSOR_OFFSET (3) -#define EMBER_AF_METERING_STATUS_HEAT_AND_COOLING_BURST_DETECT (0x10) -#define EMBER_AF_METERING_STATUS_HEAT_AND_COOLING_BURST_DETECT_OFFSET (4) -#define EMBER_AF_METERING_STATUS_HEAT_AND_COOLING_LEAK_DETECT (0x20) -#define EMBER_AF_METERING_STATUS_HEAT_AND_COOLING_LEAK_DETECT_OFFSET (5) -#define EMBER_AF_METERING_STATUS_HEAT_AND_COOLING_SERVICE_DISCONNECT (0x40) -#define EMBER_AF_METERING_STATUS_HEAT_AND_COOLING_SERVICE_DISCONNECT_OFFSET (6) -#define EMBER_AF_METERING_STATUS_HEAT_AND_COOLING_FLOW_SENSOR (0x80) -#define EMBER_AF_METERING_STATUS_HEAT_AND_COOLING_FLOW_SENSOR_OFFSET (7) -#define EMBER_AF_METERING_EXTENDED_STATUS_METER_COVER_REMOVED (0x0000000000000001) -#define EMBER_AF_METERING_EXTENDED_STATUS_STRONG_MAGNETIC_FIELD_DETECTED (0x0000000000000002) -#define EMBER_AF_METERING_EXTENDED_STATUS_STRONG_MAGNETIC_FIELD_DETECTED_OFFSET (1) -#define EMBER_AF_METERING_EXTENDED_STATUS_BATTERY_FAILURE (0x0000000000000004) -#define EMBER_AF_METERING_EXTENDED_STATUS_BATTERY_FAILURE_OFFSET (2) -#define EMBER_AF_METERING_EXTENDED_STATUS_PROGRAM_MEMORY_ERROR (0x0000000000000008) -#define EMBER_AF_METERING_EXTENDED_STATUS_PROGRAM_MEMORY_ERROR_OFFSET (3) -#define EMBER_AF_METERING_EXTENDED_STATUS_RAM_ERROR (0x0000000000000010) -#define EMBER_AF_METERING_EXTENDED_STATUS_RAM_ERROR_OFFSET (4) -#define EMBER_AF_METERING_EXTENDED_STATUS_NV_MEMORY_ERROR (0x0000000000000020) -#define EMBER_AF_METERING_EXTENDED_STATUS_NV_MEMORY_ERROR_OFFSET (5) -#define EMBER_AF_METERING_EXTENDED_STATUS_MEASUREMENT_SYSTEM_ERROR (0x0000000000000040) -#define EMBER_AF_METERING_EXTENDED_STATUS_MEASUREMENT_SYSTEM_ERROR_OFFSET (6) -#define EMBER_AF_METERING_EXTENDED_STATUS_WATCHDOG_ERROR (0x0000000000000080) -#define EMBER_AF_METERING_EXTENDED_STATUS_WATCHDOG_ERROR_OFFSET (7) -#define EMBER_AF_METERING_EXTENDED_STATUS_SUPPLY_DISCONNECT_FAILURE (0x0000000000000100) -#define EMBER_AF_METERING_EXTENDED_STATUS_SUPPLY_DISCONNECT_FAILURE_OFFSET (8) -#define EMBER_AF_METERING_EXTENDED_STATUS_SUPPLY_CONNECT_FAILURE (0x0000000000000200) -#define EMBER_AF_METERING_EXTENDED_STATUS_SUPPLY_CONNECT_FAILURE_OFFSET (9) -#define EMBER_AF_METERING_EXTENDED_STATUS_MEASUREMENT_SW_CHANGED_TAMPERED (0x0000000000000400) -#define EMBER_AF_METERING_EXTENDED_STATUS_MEASUREMENT_SW_CHANGED_TAMPERED_OFFSET (10) -#define EMBER_AF_METERING_EXTENDED_STATUS_CLOCK_INVALID (0x0000000000000800) -#define EMBER_AF_METERING_EXTENDED_STATUS_CLOCK_INVALID_OFFSET (11) -#define EMBER_AF_METERING_EXTENDED_STATUS_TEMPERATURE_EXCEEDED (0x0000000000001000) -#define EMBER_AF_METERING_EXTENDED_STATUS_TEMPERATURE_EXCEEDED_OFFSET (12) -#define EMBER_AF_METERING_EXTENDED_STATUS_MOISTURE_DETECTED (0x0000000000002000) -#define EMBER_AF_METERING_EXTENDED_STATUS_MOISTURE_DETECTED_OFFSET (13) -#define EMBER_AF_METERING_EXTENDED_STATUS_GAS_METER_BATTERY_COVER_REMOVED (0x0000000001000000) -#define EMBER_AF_METERING_EXTENDED_STATUS_GAS_METER_BATTERY_COVER_REMOVED_OFFSET (24) -#define EMBER_AF_METERING_EXTENDED_STATUS_GAS_METER_TILT_TAMPER (0x0000000002000000) -#define EMBER_AF_METERING_EXTENDED_STATUS_GAS_METER_TILT_TAMPER_OFFSET (25) -#define EMBER_AF_METERING_EXTENDED_STATUS_GAS_METER_EXCESS_FLOW (0x0000000004000000) -#define EMBER_AF_METERING_EXTENDED_STATUS_GAS_METER_EXCESS_FLOW_OFFSET (26) -#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_LIMIT_THRESHOLD_EXCEEDED (0x0000000008000000) -#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_LIMIT_THRESHOLD_EXCEEDED_OFFSET (27) -#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_UNDER_VOLTAGE (0x0000000010000000) -#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_UNDER_VOLTAGE_OFFSET (28) -#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_OVER_VOLTAGE (0x0000000020000000) -#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_OVER_VOLTAGE_OFFSET (29) -#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_SERVICE_DISCONNECTION_REASON_OFF_DUE_TO_OVER_POWER (0x0000000040000000) -#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_SERVICE_DISCONNECTION_REASON_OFF_DUE_TO_OVER_POWER_OFFSET (30) -#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_SERVICE_DISCONNECTION_REASON_OFF_DUE_TO_OVER_VOLTAGE \ - (0x0000000080000000) -#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_SERVICE_DISCONNECTION_REASON_OFF_DUE_TO_OVER_VOLTAGE_OFFSET (31) -#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_SERVICE_DISCONNECTION_REASON_OFF_DUE_TO_REMOTE_LOAD_CONTROL \ - (0x00000000C0000000) -#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_SERVICE_DISCONNECTION_REASON_OFF_DUE_TO_REMOTE_LOAD_CONTROL_OFFSET (30) -#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_SERVICE_DISCONNECTION_REASON_OFF_BY_OTHER_REMOTE_COMMAND \ - (0x0000000100000000) -#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_SERVICE_DISCONNECTION_REASON_OFF_BY_OTHER_REMOTE_COMMAND_OFFSET (32) -#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_SERVICE_DISCONNECTION_REASON_OFF_DUE_TO_OVERHEATING_SHORT_CIRCUIT \ - (0x0000000140000000) -#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_SERVICE_DISCONNECTION_REASON_OFF_DUE_TO_OVERHEATING_SHORT_CIRCUIT_OFFSET \ - (30) -#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_SERVICE_DISCONNECTION_REASON_OFF_DUE_TO_OVERHEATING_OTHER \ - (0x0000000180000000) -#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_SERVICE_DISCONNECTION_REASON_OFF_DUE_TO_OVERHEATING_OTHER_OFFSET (31) -#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_BI_DIRECTIONAL_OPERATION (0x0000000400000000) -#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_BI_DIRECTIONAL_OPERATION_OFFSET (34) -#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_ACTIVE_POWER_RECEIVED (0x0000000800000000) -#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_ACTIVE_POWER_RECEIVED_OFFSET (35) -#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_MODE_OF_OPERATION (0x0000001000000000) -#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_MODE_OF_OPERATION_OFFSET (36) -#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_NEW_OTA_FIRMWARE (0x00000001) -#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_CBKE_UPDATE_REQUEST (0x00000002) -#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_CBKE_UPDATE_REQUEST_OFFSET (1) -#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_TIME_SYNC (0x00000004) -#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_TIME_SYNC_OFFSET (2) -#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_STAY_AWAKE_REQUEST_HAN (0x00000010) -#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_STAY_AWAKE_REQUEST_HAN_OFFSET (4) -#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_STAY_AWAKE_REQUEST_WAN (0x00000020) -#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_STAY_AWAKE_REQUEST_WAN_OFFSET (5) -#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_PUSH_HISTORICAL_METERING_DATA_ATTRIBUTE_SET (0x000001C0) -#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_PUSH_HISTORICAL_METERING_DATA_ATTRIBUTE_SET_OFFSET (6) -#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_PUSH_HISTORICAL_PREPAYMENT_DATA_ATTRIBUTE_SET (0x00000E00) -#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_PUSH_HISTORICAL_PREPAYMENT_DATA_ATTRIBUTE_SET_OFFSET (9) -#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_PUSH_ALL_STATIC_DATA_BASIC_CLUSTER (0x00001000) -#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_PUSH_ALL_STATIC_DATA_BASIC_CLUSTER_OFFSET (12) -#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_PUSH_ALL_STATIC_DATA_METERING_CLUSTER (0x00002000) -#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_PUSH_ALL_STATIC_DATA_METERING_CLUSTER_OFFSET (13) -#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_PUSH_ALL_STATIC_DATA_PREPAYMENT_CLUSTER (0x00004000) -#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_PUSH_ALL_STATIC_DATA_PREPAYMENT_CLUSTER_OFFSET (14) -#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_NETWORK_KEY_ACTIVE (0x00008000) -#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_NETWORK_KEY_ACTIVE_OFFSET (15) -#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_DISPLAY_MESSAGE (0x00010000) -#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_DISPLAY_MESSAGE_OFFSET (16) -#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_CANCEL_ALL_MESSAGES (0x00020000) -#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_CANCEL_ALL_MESSAGES_OFFSET (17) -#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_CHANGE_SUPPLY (0x00040000) -#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_CHANGE_SUPPLY_OFFSET (18) -#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_LOCAL_CHANGE_SUPPLY (0x00080000) -#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_LOCAL_CHANGE_SUPPLY_OFFSET (19) -#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_SET_UNCONTROLLED_FLOW_THRESHOLD (0x00100000) -#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_SET_UNCONTROLLED_FLOW_THRESHOLD_OFFSET (20) -#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_TUNNEL_MESSAGE_PENDING (0x00200000) -#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_TUNNEL_MESSAGE_PENDING_OFFSET (21) -#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_GET_SNAPSHOT (0x00400000) -#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_GET_SNAPSHOT_OFFSET (22) -#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_GET_SAMPLED_DATA (0x00800000) -#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_GET_SAMPLED_DATA_OFFSET (23) -#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_NEW_SUB_GHZ_CHANNEL_MASKS_AVAILABLE (0x01000000) -#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_NEW_SUB_GHZ_CHANNEL_MASKS_AVAILABLE_OFFSET (24) -#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_ENERGY_SCAN_PENDING (0x02000000) -#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_ENERGY_SCAN_PENDING_OFFSET (25) -#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_CHANNEL_CHANGE_PENDING (0x04000000) -#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_CHANNEL_CHANGE_PENDING_OFFSET (26) -#define EMBER_AF_SNAPSHOT_CAUSE_GENERAL (0x00000001) -#define EMBER_AF_SNAPSHOT_CAUSE_END_OF_BILLING_PERIOD (0x00000002) -#define EMBER_AF_SNAPSHOT_CAUSE_END_OF_BILLING_PERIOD_OFFSET (1) -#define EMBER_AF_SNAPSHOT_CAUSE_END_OF_BLOCK_PERIOD (0x00000004) -#define EMBER_AF_SNAPSHOT_CAUSE_END_OF_BLOCK_PERIOD_OFFSET (2) -#define EMBER_AF_SNAPSHOT_CAUSE_CHANGE_OF_TARIFF_INFORMATION (0x00000008) -#define EMBER_AF_SNAPSHOT_CAUSE_CHANGE_OF_TARIFF_INFORMATION_OFFSET (3) -#define EMBER_AF_SNAPSHOT_CAUSE_CHANGE_OF_PRICE_MATRIX (0x00000010) -#define EMBER_AF_SNAPSHOT_CAUSE_CHANGE_OF_PRICE_MATRIX_OFFSET (4) -#define EMBER_AF_SNAPSHOT_CAUSE_CHANGE_OF_BLOCK_THRESHOLDS (0x00000020) -#define EMBER_AF_SNAPSHOT_CAUSE_CHANGE_OF_BLOCK_THRESHOLDS_OFFSET (5) -#define EMBER_AF_SNAPSHOT_CAUSE_CHANGE_OF_CV (0x00000040) -#define EMBER_AF_SNAPSHOT_CAUSE_CHANGE_OF_CV_OFFSET (6) -#define EMBER_AF_SNAPSHOT_CAUSE_CHANGE_OF_CF (0x00000080) -#define EMBER_AF_SNAPSHOT_CAUSE_CHANGE_OF_CF_OFFSET (7) -#define EMBER_AF_SNAPSHOT_CAUSE_CHANGE_OF_CALENDAR (0x00000100) -#define EMBER_AF_SNAPSHOT_CAUSE_CHANGE_OF_CALENDAR_OFFSET (8) -#define EMBER_AF_SNAPSHOT_CAUSE_CRITICAL_PEAK_PRICING (0x00000200) -#define EMBER_AF_SNAPSHOT_CAUSE_CRITICAL_PEAK_PRICING_OFFSET (9) -#define EMBER_AF_SNAPSHOT_CAUSE_MANUALLY_TRIGGERED_FROM_CLIENT (0x00000400) -#define EMBER_AF_SNAPSHOT_CAUSE_MANUALLY_TRIGGERED_FROM_CLIENT_OFFSET (10) -#define EMBER_AF_SNAPSHOT_CAUSE_END_OF_RESOLVE_PERIOD (0x00000800) -#define EMBER_AF_SNAPSHOT_CAUSE_END_OF_RESOLVE_PERIOD_OFFSET (11) -#define EMBER_AF_SNAPSHOT_CAUSE_CHANGE_OF_TENANCY (0x00001000) -#define EMBER_AF_SNAPSHOT_CAUSE_CHANGE_OF_TENANCY_OFFSET (12) -#define EMBER_AF_SNAPSHOT_CAUSE_CHANGE_OF_SUPPLIER (0x00002000) -#define EMBER_AF_SNAPSHOT_CAUSE_CHANGE_OF_SUPPLIER_OFFSET (13) -#define EMBER_AF_SNAPSHOT_CAUSE_CHANGE_OF_MODE (0x00004000) -#define EMBER_AF_SNAPSHOT_CAUSE_CHANGE_OF_MODE_OFFSET (14) -#define EMBER_AF_SNAPSHOT_CAUSE_DEBT_PAYMENT (0x00008000) -#define EMBER_AF_SNAPSHOT_CAUSE_DEBT_PAYMENT_OFFSET (15) -#define EMBER_AF_SNAPSHOT_CAUSE_SCHEDULED_SNAPSHOT (0x00010000) -#define EMBER_AF_SNAPSHOT_CAUSE_SCHEDULED_SNAPSHOT_OFFSET (16) -#define EMBER_AF_SNAPSHOT_CAUSE_OTA_FIRMWARE_DOWNLOAD (0x00020000) -#define EMBER_AF_SNAPSHOT_CAUSE_OTA_FIRMWARE_DOWNLOAD_OFFSET (17) -#define EMBER_AF_SUPPLY_CONTROL_BITS_ACKNOWLEDGE_REQUIRED (0x01) -#define EMBER_AF_MESSAGING_CONTROL_MASK_TRANS_MECHANISM (0x03) -#define EMBER_AF_MESSAGING_CONTROL_MASK_MESSAGE_URGENCY (0x0C) -#define EMBER_AF_MESSAGING_CONTROL_MASK_MESSAGE_URGENCY_OFFSET (2) -#define EMBER_AF_MESSAGING_CONTROL_MASK_ENHANCED_CONFIRMATION_REQUEST (0x20) -#define EMBER_AF_MESSAGING_CONTROL_MASK_ENHANCED_CONFIRMATION_REQUEST_OFFSET (5) -#define EMBER_AF_MESSAGING_CONTROL_MASK_MESSAGE_CONFIRMATION (0x80) -#define EMBER_AF_MESSAGING_CONTROL_MASK_MESSAGE_CONFIRMATION_OFFSET (7) -#define EMBER_AF_MESSAGING_EXTENDED_CONTROL_MASK_MESSAGE_CONFIRMATION_STATUS (0x01) -#define EMBER_AF_MESSAGING_CONFIRMATION_CONTROL_NO_RETURNED (0x01) -#define EMBER_AF_MESSAGING_CONFIRMATION_CONTROL_YES_RETURNED (0x02) -#define EMBER_AF_MESSAGING_CONFIRMATION_CONTROL_YES_RETURNED_OFFSET (1) -#define EMBER_AF_PAYMENT_CONTROL_CONFIGURATION_DISCONNECTION_ENABLED (0x0001) -#define EMBER_AF_PAYMENT_CONTROL_CONFIGURATION_PREPAYMENT_ENABLED (0x0002) -#define EMBER_AF_PAYMENT_CONTROL_CONFIGURATION_PREPAYMENT_ENABLED_OFFSET (1) -#define EMBER_AF_PAYMENT_CONTROL_CONFIGURATION_CREDIT_MANAGEMENT_ENABLED (0x0004) -#define EMBER_AF_PAYMENT_CONTROL_CONFIGURATION_CREDIT_MANAGEMENT_ENABLED_OFFSET (2) -#define EMBER_AF_PAYMENT_CONTROL_CONFIGURATION_CREDIT_DISPLAY_ENABLED (0x0010) -#define EMBER_AF_PAYMENT_CONTROL_CONFIGURATION_CREDIT_DISPLAY_ENABLED_OFFSET (4) -#define EMBER_AF_PAYMENT_CONTROL_CONFIGURATION_ACCOUNT_BASE (0x0040) -#define EMBER_AF_PAYMENT_CONTROL_CONFIGURATION_ACCOUNT_BASE_OFFSET (6) -#define EMBER_AF_PAYMENT_CONTROL_CONFIGURATION_CONTACTOR_FITTED (0x0080) -#define EMBER_AF_PAYMENT_CONTROL_CONFIGURATION_CONTACTOR_FITTED_OFFSET (7) -#define EMBER_AF_PAYMENT_CONTROL_CONFIGURATION_STANDING_CHARGE_CONFIGURATION (0x0100) -#define EMBER_AF_PAYMENT_CONTROL_CONFIGURATION_STANDING_CHARGE_CONFIGURATION_OFFSET (8) -#define EMBER_AF_PAYMENT_CONTROL_CONFIGURATION_EMERGENCY_STANDING_CHARGE_CONFIGURATION (0x0200) -#define EMBER_AF_PAYMENT_CONTROL_CONFIGURATION_EMERGENCY_STANDING_CHARGE_CONFIGURATION_OFFSET (9) -#define EMBER_AF_PAYMENT_CONTROL_CONFIGURATION_DEBT_CONFIGURATION (0x0400) -#define EMBER_AF_PAYMENT_CONTROL_CONFIGURATION_DEBT_CONFIGURATION_OFFSET (10) -#define EMBER_AF_PAYMENT_CONTROL_CONFIGURATION_EMERGENCY_DEBT_CONFIGURATION (0x0800) -#define EMBER_AF_PAYMENT_CONTROL_CONFIGURATION_EMERGENCY_DEBT_CONFIGURATION_OFFSET (11) -#define EMBER_AF_CREDIT_STATUS_CREDIT_OK (0x01) -#define EMBER_AF_CREDIT_STATUS_LOW_CREDIT (0x02) -#define EMBER_AF_CREDIT_STATUS_LOW_CREDIT_OFFSET (1) -#define EMBER_AF_CREDIT_STATUS_EMERGENCY_CREDIT_ENABLED (0x04) -#define EMBER_AF_CREDIT_STATUS_EMERGENCY_CREDIT_ENABLED_OFFSET (2) -#define EMBER_AF_CREDIT_STATUS_EMERGENCY_CREDIT_AVAILABLE (0x08) -#define EMBER_AF_CREDIT_STATUS_EMERGENCY_CREDIT_AVAILABLE_OFFSET (3) -#define EMBER_AF_CREDIT_STATUS_EMERGENCY_CREDIT_SELECTED (0x10) -#define EMBER_AF_CREDIT_STATUS_EMERGENCY_CREDIT_SELECTED_OFFSET (4) -#define EMBER_AF_CREDIT_STATUS_EMERGENCY_CREDIT_IN_USE (0x20) -#define EMBER_AF_CREDIT_STATUS_EMERGENCY_CREDIT_IN_USE_OFFSET (5) -#define EMBER_AF_CREDIT_STATUS_CREDIT_EXHAUSTED (0x40) -#define EMBER_AF_CREDIT_STATUS_CREDIT_EXHAUSTED_OFFSET (6) -#define EMBER_AF_PREPAYMENT_ALARM_STATUS_LOW_CREDIT_WARNING (0x0001) -#define EMBER_AF_PREPAYMENT_ALARM_STATUS_TOP_UP_CODE_ERROR (0x0002) -#define EMBER_AF_PREPAYMENT_ALARM_STATUS_TOP_UP_CODE_ERROR_OFFSET (1) -#define EMBER_AF_PREPAYMENT_ALARM_STATUS_TOP_UP_CODE_ALREADY_USED (0x0004) -#define EMBER_AF_PREPAYMENT_ALARM_STATUS_TOP_UP_CODE_ALREADY_USED_OFFSET (2) -#define EMBER_AF_PREPAYMENT_ALARM_STATUS_TOP_UP_CODE_INVALID (0x0008) -#define EMBER_AF_PREPAYMENT_ALARM_STATUS_TOP_UP_CODE_INVALID_OFFSET (3) -#define EMBER_AF_PREPAYMENT_ALARM_STATUS_FRIENDLY_CREDIT_IN_USE (0x0010) -#define EMBER_AF_PREPAYMENT_ALARM_STATUS_FRIENDLY_CREDIT_IN_USE_OFFSET (4) -#define EMBER_AF_PREPAYMENT_ALARM_STATUS_FRIENDLY_CREDIT_PERIOD_END_WARNING (0x0020) -#define EMBER_AF_PREPAYMENT_ALARM_STATUS_FRIENDLY_CREDIT_PERIOD_END_WARNING_OFFSET (5) -#define EMBER_AF_PREPAYMENT_ALARM_STATUS_EC_AVAILABLE (0x0040) -#define EMBER_AF_PREPAYMENT_ALARM_STATUS_EC_AVAILABLE_OFFSET (6) -#define EMBER_AF_PREPAYMENT_ALARM_STATUS_UNAUTHORISED_ENERGY_USE (0x0080) -#define EMBER_AF_PREPAYMENT_ALARM_STATUS_UNAUTHORISED_ENERGY_USE_OFFSET (7) -#define EMBER_AF_PREPAYMENT_ALARM_STATUS_DISCONNECTED_SUPPLY_DUE_TO_CREDIT (0x0100) -#define EMBER_AF_PREPAYMENT_ALARM_STATUS_DISCONNECTED_SUPPLY_DUE_TO_CREDIT_OFFSET (8) -#define EMBER_AF_PREPAYMENT_ALARM_STATUS_DISCONNECTED_SUPPLY_DUE_TO_TAMPER (0x0200) -#define EMBER_AF_PREPAYMENT_ALARM_STATUS_DISCONNECTED_SUPPLY_DUE_TO_TAMPER_OFFSET (9) -#define EMBER_AF_PREPAYMENT_ALARM_STATUS_DISCONNECTED_SUPPLY_DUE_TO_HES (0x0400) -#define EMBER_AF_PREPAYMENT_ALARM_STATUS_DISCONNECTED_SUPPLY_DUE_TO_HES_OFFSET (10) -#define EMBER_AF_PREPAYMENT_ALARM_STATUS_PHYSICAL_ATTACK (0x0800) -#define EMBER_AF_PREPAYMENT_ALARM_STATUS_PHYSICAL_ATTACK_OFFSET (11) -#define EMBER_AF_PREPAYMENT_ALARM_STATUS_ELECTRONIC_ATTACK (0x1000) -#define EMBER_AF_PREPAYMENT_ALARM_STATUS_ELECTRONIC_ATTACK_OFFSET (12) -#define EMBER_AF_PREPAYMENT_ALARM_STATUS_MANUFACTURE_ALARM_CODE_A (0x2000) -#define EMBER_AF_PREPAYMENT_ALARM_STATUS_MANUFACTURE_ALARM_CODE_A_OFFSET (13) -#define EMBER_AF_PREPAYMENT_ALARM_STATUS_MANUFACTURE_ALARM_CODE_B (0x4000) -#define EMBER_AF_PREPAYMENT_ALARM_STATUS_MANUFACTURE_ALARM_CODE_B_OFFSET (14) -#define EMBER_AF_ORIGINATOR_ID_SUPPLY_CONTROL_BITS_ACKNOWLEDGE_REQUIRED (0x01) -#define EMBER_AF_PREPAY_SNAPSHOT_PAYLOAD_CAUSE_GENERAL (0x00000001) -#define EMBER_AF_PREPAY_SNAPSHOT_PAYLOAD_CAUSE_CHANGE_OF_TARIFF_INFORMATION (0x00000008) -#define EMBER_AF_PREPAY_SNAPSHOT_PAYLOAD_CAUSE_CHANGE_OF_TARIFF_INFORMATION_OFFSET (3) -#define EMBER_AF_PREPAY_SNAPSHOT_PAYLOAD_CAUSE_CHANGE_OF_PRICE_MATRIX (0x00000010) -#define EMBER_AF_PREPAY_SNAPSHOT_PAYLOAD_CAUSE_CHANGE_OF_PRICE_MATRIX_OFFSET (4) -#define EMBER_AF_PREPAY_SNAPSHOT_PAYLOAD_CAUSE_MANUALLY_TRIGGERED_FROM_CLIENT (0x00000400) -#define EMBER_AF_PREPAY_SNAPSHOT_PAYLOAD_CAUSE_MANUALLY_TRIGGERED_FROM_CLIENT_OFFSET (10) -#define EMBER_AF_PREPAY_SNAPSHOT_PAYLOAD_CAUSE_CHANGE_OF_TENANCY (0x00001000) -#define EMBER_AF_PREPAY_SNAPSHOT_PAYLOAD_CAUSE_CHANGE_OF_TENANCY_OFFSET (12) -#define EMBER_AF_PREPAY_SNAPSHOT_PAYLOAD_CAUSE_CHANGE_OF_SUPPLIER (0x00002000) -#define EMBER_AF_PREPAY_SNAPSHOT_PAYLOAD_CAUSE_CHANGE_OF_SUPPLIER_OFFSET (13) -#define EMBER_AF_PREPAY_SNAPSHOT_PAYLOAD_CAUSE_CHANGE_OF_METER_MODE (0x00004000) -#define EMBER_AF_PREPAY_SNAPSHOT_PAYLOAD_CAUSE_CHANGE_OF_METER_MODE_OFFSET (14) -#define EMBER_AF_PREPAY_SNAPSHOT_PAYLOAD_CAUSE_TOP_UP_ADDITION (0x00040000) -#define EMBER_AF_PREPAY_SNAPSHOT_PAYLOAD_CAUSE_TOP_UP_ADDITION_OFFSET (18) -#define EMBER_AF_PREPAY_SNAPSHOT_PAYLOAD_CAUSE_DEBT_CREDIT_ADDITION (0x00080000) -#define EMBER_AF_PREPAY_SNAPSHOT_PAYLOAD_CAUSE_DEBT_CREDIT_ADDITION_OFFSET (19) -#define EMBER_AF_FRIENDLY_CREDIT_FRIENDLY_CREDIT_ENABLED (0x01) -#define EMBER_AF_LOAD_CONTROL_STATE_RELAY_OPEN_OR_CONSUMPTION_INTERUPTED (0x01) -#define EMBER_AF_LOAD_CONTROL_STATE_EVENT_IN_PROGRESS (0x02) -#define EMBER_AF_LOAD_CONTROL_STATE_EVENT_IN_PROGRESS_OFFSET (1) -#define EMBER_AF_LOAD_CONTROL_STATE_POWER_STABILIZING (0x04) -#define EMBER_AF_LOAD_CONTROL_STATE_POWER_STABILIZING_OFFSET (2) -#define EMBER_AF_LOAD_CONTROL_STATE_OTHER_LOAD_REDUCTION (0x08) -#define EMBER_AF_LOAD_CONTROL_STATE_OTHER_LOAD_REDUCTION_OFFSET (3) -#define EMBER_AF_LOAD_CONTROL_STATE_CURRENT_FLOW_OR_CONSUMING_COMMODITY (0x10) -#define EMBER_AF_LOAD_CONTROL_STATE_CURRENT_FLOW_OR_CONSUMING_COMMODITY_OFFSET (4) -#define EMBER_AF_LOAD_CONTROL_STATE_LOAD_CALL (0x20) -#define EMBER_AF_LOAD_CONTROL_STATE_LOAD_CALL_OFFSET (5) -#define EMBER_AF_CURRENT_EVENT_STATUS_RANDOMIZED_START_TIME (0x01) -#define EMBER_AF_CURRENT_EVENT_STATUS_RANDOMIZED_DURATION (0x02) -#define EMBER_AF_CURRENT_EVENT_STATUS_RANDOMIZED_DURATION_OFFSET (1) -#define EMBER_AF_CURRENT_EVENT_STATUS_EXTENDED_BITS_PRESENT (0x04) -#define EMBER_AF_CURRENT_EVENT_STATUS_EXTENDED_BITS_PRESENT_OFFSET (2) -#define EMBER_AF_CURRENT_EVENT_STATUS_EVENT_ACTIVE (0x08) -#define EMBER_AF_CURRENT_EVENT_STATUS_EVENT_ACTIVE_OFFSET (3) -#define EMBER_AF_CURRENT_EVENT_STATUS_DEVICE_PARTICIPATING_IN_EVENT (0x10) -#define EMBER_AF_CURRENT_EVENT_STATUS_DEVICE_PARTICIPATING_IN_EVENT_OFFSET (4) -#define EMBER_AF_CURRENT_EVENT_STATUS_REDUCING_LOAD (0x20) -#define EMBER_AF_CURRENT_EVENT_STATUS_REDUCING_LOAD_OFFSET (5) -#define EMBER_AF_CURRENT_EVENT_STATUS_ON_AT_END_OF_EVENT (0x40) -#define EMBER_AF_CURRENT_EVENT_STATUS_ON_AT_END_OF_EVENT_OFFSET (6) -#define EMBER_AF_AUXILIARY_LOAD_SWITCH_STATE_AUXILIARY_SWITCH1 (0x01) -#define EMBER_AF_AUXILIARY_LOAD_SWITCH_STATE_AUXILIARY_SWITCH2 (0x02) -#define EMBER_AF_AUXILIARY_LOAD_SWITCH_STATE_AUXILIARY_SWITCH2_OFFSET (1) -#define EMBER_AF_AUXILIARY_LOAD_SWITCH_STATE_AUXILIARY_SWITCH3 (0x04) -#define EMBER_AF_AUXILIARY_LOAD_SWITCH_STATE_AUXILIARY_SWITCH3_OFFSET (2) -#define EMBER_AF_AUXILIARY_LOAD_SWITCH_STATE_AUXILIARY_SWITCH4 (0x08) -#define EMBER_AF_AUXILIARY_LOAD_SWITCH_STATE_AUXILIARY_SWITCH4_OFFSET (3) -#define EMBER_AF_AUXILIARY_LOAD_SWITCH_STATE_AUXILIARY_SWITCH5 (0x10) -#define EMBER_AF_AUXILIARY_LOAD_SWITCH_STATE_AUXILIARY_SWITCH5_OFFSET (4) -#define EMBER_AF_AUXILIARY_LOAD_SWITCH_STATE_AUXILIARY_SWITCH6 (0x20) -#define EMBER_AF_AUXILIARY_LOAD_SWITCH_STATE_AUXILIARY_SWITCH6_OFFSET (5) -#define EMBER_AF_AUXILIARY_LOAD_SWITCH_STATE_AUXILIARY_SWITCH7 (0x40) -#define EMBER_AF_AUXILIARY_LOAD_SWITCH_STATE_AUXILIARY_SWITCH7_OFFSET (6) -#define EMBER_AF_AUXILIARY_LOAD_SWITCH_STATE_AUXILIARY_SWITCH8 (0x80) -#define EMBER_AF_AUXILIARY_LOAD_SWITCH_STATE_AUXILIARY_SWITCH8_OFFSET (7) -#define EMBER_AF_PROPOSED_CHANGE_CONTROL_PRE_SNAPSHOTS (0x00000001) -#define EMBER_AF_PROPOSED_CHANGE_CONTROL_POST_SNAPSHOTS (0x00000002) -#define EMBER_AF_PROPOSED_CHANGE_CONTROL_POST_SNAPSHOTS_OFFSET (1) -#define EMBER_AF_PROPOSED_CHANGE_CONTROL_RESET_CREDIT_REGISTER (0x00000004) -#define EMBER_AF_PROPOSED_CHANGE_CONTROL_RESET_CREDIT_REGISTER_OFFSET (2) -#define EMBER_AF_PROPOSED_CHANGE_CONTROL_RESET_DEBIT_REGISTER (0x00000008) -#define EMBER_AF_PROPOSED_CHANGE_CONTROL_RESET_DEBIT_REGISTER_OFFSET (3) -#define EMBER_AF_PROPOSED_CHANGE_CONTROL_RESET_BILLING_PERIOD (0x00000010) -#define EMBER_AF_PROPOSED_CHANGE_CONTROL_RESET_BILLING_PERIOD_OFFSET (4) -#define EMBER_AF_PROPOSED_CHANGE_CONTROL_CLEAR_TARIFF_PLAN (0x00000020) -#define EMBER_AF_PROPOSED_CHANGE_CONTROL_CLEAR_TARIFF_PLAN_OFFSET (5) -#define EMBER_AF_PROPOSED_CHANGE_CONTROL_CLEAR_STANDING_CHARGE (0x00000040) -#define EMBER_AF_PROPOSED_CHANGE_CONTROL_CLEAR_STANDING_CHARGE_OFFSET (6) -#define EMBER_AF_PROPOSED_CHANGE_CONTROL_BLOCK_HISTORICAL_LOAD_PROFILE_INFORMATION (0x00000080) -#define EMBER_AF_PROPOSED_CHANGE_CONTROL_BLOCK_HISTORICAL_LOAD_PROFILE_INFORMATION_OFFSET (7) -#define EMBER_AF_PROPOSED_CHANGE_CONTROL_CLEAR_HISTORICAL_LOAD_PROFILE_INFORMATION (0x00000100) -#define EMBER_AF_PROPOSED_CHANGE_CONTROL_CLEAR_HISTORICAL_LOAD_PROFILE_INFORMATION_OFFSET (8) -#define EMBER_AF_PROPOSED_CHANGE_CONTROL_CLEAR_IHD_DATA_CONSUMER (0x00000200) -#define EMBER_AF_PROPOSED_CHANGE_CONTROL_CLEAR_IHD_DATA_CONSUMER_OFFSET (9) -#define EMBER_AF_PROPOSED_CHANGE_CONTROL_CLEAR_IHD_DATA_SUPPLIER (0x00000400) -#define EMBER_AF_PROPOSED_CHANGE_CONTROL_CLEAR_IHD_DATA_SUPPLIER_OFFSET (10) -#define EMBER_AF_PROPOSED_CHANGE_CONTROL_METER_CONNECTOR_STATE_ON_OFF_ARMED (0x00001800) -#define EMBER_AF_PROPOSED_CHANGE_CONTROL_METER_CONNECTOR_STATE_ON_OFF_ARMED_OFFSET (11) -#define EMBER_AF_PROPOSED_CHANGE_CONTROL_CLEAR_TRANSACTION_LOG (0x00002000) -#define EMBER_AF_PROPOSED_CHANGE_CONTROL_CLEAR_TRANSACTION_LOG_OFFSET (13) -#define EMBER_AF_PROPOSED_CHANGE_CONTROL_CLEAR_PREPAYMENT_LOG (0x00004000) -#define EMBER_AF_PROPOSED_CHANGE_CONTROL_CLEAR_PREPAYMENT_LOG_OFFSET (14) -#define EMBER_AF_EVENT_CONFIGURATION_LOG_ACTION (0x07) -#define EMBER_AF_EVENT_CONFIGURATION_PUSH_EVENT_TO_W_A_N (0x08) -#define EMBER_AF_EVENT_CONFIGURATION_PUSH_EVENT_TO_W_A_N_OFFSET (3) -#define EMBER_AF_EVENT_CONFIGURATION_PUSH_EVENT_TO_H_A_N (0x10) -#define EMBER_AF_EVENT_CONFIGURATION_PUSH_EVENT_TO_H_A_N_OFFSET (4) -#define EMBER_AF_EVENT_CONFIGURATION_RAISE_ALARM_ZIG_BEE (0x20) -#define EMBER_AF_EVENT_CONFIGURATION_RAISE_ALARM_ZIG_BEE_OFFSET (5) -#define EMBER_AF_EVENT_CONFIGURATION_RAISE_ALARM_PHYSICAL (0x40) -#define EMBER_AF_EVENT_CONFIGURATION_RAISE_ALARM_PHYSICAL_OFFSET (6) -#define EMBER_AF_EVENT_CONTROL_LOG_ID_LOG_ID (0x0F) -#define EMBER_AF_EVENT_CONTROL_LOG_ID_EVENT_CONTROL (0xF0) -#define EMBER_AF_EVENT_CONTROL_LOG_ID_EVENT_CONTROL_OFFSET (4) -#define EMBER_AF_EVENT_ACTION_CONTROL_REPORT_EVENT_TO_H_A_N_DEVICES (0x01) -#define EMBER_AF_EVENT_ACTION_CONTROL_REPORT_EVENT_TO_W_A_N (0x02) -#define EMBER_AF_EVENT_ACTION_CONTROL_REPORT_EVENT_TO_W_A_N_OFFSET (1) -#define EMBER_AF_NUMBER_OF_EVENTS_LOG_PAYLOAD_CONTROL_LOG_PAYLOAD_CONTROL (0x0F) -#define EMBER_AF_NUMBER_OF_EVENTS_LOG_PAYLOAD_CONTROL_NUMBER_OF_EVENTS (0xF0) -#define EMBER_AF_NUMBER_OF_EVENTS_LOG_PAYLOAD_CONTROL_NUMBER_OF_EVENTS_OFFSET (4) -#define EMBER_AF_CLEARED_EVENTS_LOGS_ALL_LOGS_CLEARED (0x01) -#define EMBER_AF_CLEARED_EVENTS_LOGS_TAMPER_LOG_CLEARED (0x02) -#define EMBER_AF_CLEARED_EVENTS_LOGS_TAMPER_LOG_CLEARED_OFFSET (1) -#define EMBER_AF_CLEARED_EVENTS_LOGS_FAULT_LOG_CLEARED (0x04) -#define EMBER_AF_CLEARED_EVENTS_LOGS_FAULT_LOG_CLEARED_OFFSET (2) -#define EMBER_AF_CLEARED_EVENTS_LOGS_GENERAL_EVENT_LOG_CLEARED (0x08) -#define EMBER_AF_CLEARED_EVENTS_LOGS_GENERAL_EVENT_LOG_CLEARED_OFFSET (3) -#define EMBER_AF_CLEARED_EVENTS_LOGS_SECURITY_EVENT_LOG_CLEARED (0x10) -#define EMBER_AF_CLEARED_EVENTS_LOGS_SECURITY_EVENT_LOG_CLEARED_OFFSET (4) -#define EMBER_AF_CLEARED_EVENTS_LOGS_NETWORK_EVENT_LOG_CLEARED (0x20) -#define EMBER_AF_CLEARED_EVENTS_LOGS_NETWORK_EVENT_LOG_CLEARED_OFFSET (5) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL0 (0x00000001) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL1 (0x00000002) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL1_OFFSET (1) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL2 (0x00000004) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL2_OFFSET (2) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL3 (0x00000008) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL3_OFFSET (3) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL4 (0x00000010) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL4_OFFSET (4) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL5 (0x00000020) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL5_OFFSET (5) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL6 (0x00000040) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL6_OFFSET (6) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL7 (0x00000080) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL7_OFFSET (7) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL8 (0x00000100) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL8_OFFSET (8) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL9 (0x00000200) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL9_OFFSET (9) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL10 (0x00000400) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL10_OFFSET (10) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL11 (0x00000800) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL11_OFFSET (11) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL12 (0x00001000) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL12_OFFSET (12) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL13 (0x00002000) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL13_OFFSET (13) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL14 (0x00004000) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL14_OFFSET (14) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL15 (0x00008000) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL15_OFFSET (15) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL16 (0x00010000) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL16_OFFSET (16) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL17 (0x00020000) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL17_OFFSET (17) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL18 (0x00040000) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL18_OFFSET (18) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL19 (0x00080000) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL19_OFFSET (19) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL20 (0x00100000) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL20_OFFSET (20) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL21 (0x00200000) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL21_OFFSET (21) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL22 (0x00400000) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL22_OFFSET (22) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL23 (0x00800000) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL23_OFFSET (23) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL24 (0x01000000) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL24_OFFSET (24) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL25 (0x02000000) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL25_OFFSET (25) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL26 (0x04000000) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL26_OFFSET (26) -#define EMBER_AF_CHANNEL_MASK_PAGE (0xF8000000) -#define EMBER_AF_CHANNEL_MASK_PAGE_OFFSET (27) -#define EMBER_AF_SCENES_COPY_MODE_COPY_ALL_SCENES (0x01) -#define EMBER_AF_ON_OFF_CONTROL_ACCEPT_ONLY_WHEN_ON (0x01) -#define EMBER_AF_COLOR_CAPABILITIES_HUE_SATURATION_SUPPORTED (0x0001) -#define EMBER_AF_COLOR_CAPABILITIES_ENHANCED_HUE_SUPPORTED (0x0002) -#define EMBER_AF_COLOR_CAPABILITIES_ENHANCED_HUE_SUPPORTED_OFFSET (1) -#define EMBER_AF_COLOR_CAPABILITIES_COLOR_LOOP_SUPPORTED (0x0004) -#define EMBER_AF_COLOR_CAPABILITIES_COLOR_LOOP_SUPPORTED_OFFSET (2) -#define EMBER_AF_COLOR_CAPABILITIES_X_Y_ATTRIBUTES_SUPPORTED (0x0008) -#define EMBER_AF_COLOR_CAPABILITIES_X_Y_ATTRIBUTES_SUPPORTED_OFFSET (3) -#define EMBER_AF_COLOR_CAPABILITIES_COLOR_TEMPERATURE_SUPPORTED (0x0010) -#define EMBER_AF_COLOR_CAPABILITIES_COLOR_TEMPERATURE_SUPPORTED_OFFSET (4) -#define EMBER_AF_COLOR_LOOP_UPDATE_FLAGS_UPDATE_ACTION (0x01) -#define EMBER_AF_COLOR_LOOP_UPDATE_FLAGS_UPDATE_DIRECTION (0x02) -#define EMBER_AF_COLOR_LOOP_UPDATE_FLAGS_UPDATE_DIRECTION_OFFSET (1) -#define EMBER_AF_COLOR_LOOP_UPDATE_FLAGS_UPDATE_TIME (0x04) -#define EMBER_AF_COLOR_LOOP_UPDATE_FLAGS_UPDATE_TIME_OFFSET (2) -#define EMBER_AF_COLOR_LOOP_UPDATE_FLAGS_UPDATE_START_HUE (0x08) -#define EMBER_AF_COLOR_LOOP_UPDATE_FLAGS_UPDATE_START_HUE_OFFSET (3) -#define EMBER_AF_ZIGBEE_INFORMATION_LOGICAL_TYPE (0x03) -#define EMBER_AF_ZIGBEE_INFORMATION_RX_ON_WHEN_IDLE (0x04) -#define EMBER_AF_ZIGBEE_INFORMATION_RX_ON_WHEN_IDLE_OFFSET (2) -#define EMBER_AF_ZLL_INFORMATION_FACTORY_NEW (0x01) -#define EMBER_AF_ZLL_INFORMATION_ADDRESS_ASSIGNMENT (0x02) -#define EMBER_AF_ZLL_INFORMATION_ADDRESS_ASSIGNMENT_OFFSET (1) -#define EMBER_AF_ZLL_INFORMATION_TOUCH_LINK_INITIATOR (0x10) -#define EMBER_AF_ZLL_INFORMATION_TOUCH_LINK_INITIATOR_OFFSET (4) -#define EMBER_AF_ZLL_INFORMATION_TOUCH_LINK_PRIORITY_REQUEST (0x20) -#define EMBER_AF_ZLL_INFORMATION_TOUCH_LINK_PRIORITY_REQUEST_OFFSET (5) -#define EMBER_AF_ZLL_INFORMATION_PROFILE_INTEROP (0x80) -#define EMBER_AF_ZLL_INFORMATION_PROFILE_INTEROP_OFFSET (7) -#define EMBER_AF_KEY_BITMASK_DEVELOPMENT (0x0001) -#define EMBER_AF_KEY_BITMASK_MASTER (0x0010) -#define EMBER_AF_KEY_BITMASK_MASTER_OFFSET (4) -#define EMBER_AF_KEY_BITMASK_CERTIFICATION (0x8000) -#define EMBER_AF_KEY_BITMASK_CERTIFICATION_OFFSET (15) -#define EMBER_AF_GP_GPS_FUNCTIONALITY_GP_FEATURE (0x000001) -#define EMBER_AF_GP_GPS_FUNCTIONALITY_DIRECT_COMMUNICATION (0x000002) -#define EMBER_AF_GP_GPS_FUNCTIONALITY_DIRECT_COMMUNICATION_OFFSET (1) -#define EMBER_AF_GP_GPS_FUNCTIONALITY_DERIVED_GROUPCAST_COMMUNICATION (0x000004) -#define EMBER_AF_GP_GPS_FUNCTIONALITY_DERIVED_GROUPCAST_COMMUNICATION_OFFSET (2) -#define EMBER_AF_GP_GPS_FUNCTIONALITY_PRE_COMMISSIONED_GROUPCAST_COMMUNICATION (0x000008) -#define EMBER_AF_GP_GPS_FUNCTIONALITY_PRE_COMMISSIONED_GROUPCAST_COMMUNICATION_OFFSET (3) -#define EMBER_AF_GP_GPS_FUNCTIONALITY_FULL_UNICAST_COMMUNICATION (0x000010) -#define EMBER_AF_GP_GPS_FUNCTIONALITY_FULL_UNICAST_COMMUNICATION_OFFSET (4) -#define EMBER_AF_GP_GPS_FUNCTIONALITY_LIGHTWEIGHT_UNICAST_COMMUNICATION (0x000020) -#define EMBER_AF_GP_GPS_FUNCTIONALITY_LIGHTWEIGHT_UNICAST_COMMUNICATION_OFFSET (5) -#define EMBER_AF_GP_GPS_FUNCTIONALITY_PROXIMITY_BIDIRECTIONAL_COMMUNICATION (0x000040) -#define EMBER_AF_GP_GPS_FUNCTIONALITY_PROXIMITY_BIDIRECTIONAL_COMMUNICATION_OFFSET (6) -#define EMBER_AF_GP_GPS_FUNCTIONALITY_MULTIHOP_BIDIRECTIONAL_COMMUNICATION (0x000080) -#define EMBER_AF_GP_GPS_FUNCTIONALITY_MULTIHOP_BIDIRECTIONAL_COMMUNICATION_OFFSET (7) -#define EMBER_AF_GP_GPS_FUNCTIONALITY_PROXY_TABLE_MAINTAINANCE (0x000100) -#define EMBER_AF_GP_GPS_FUNCTIONALITY_PROXY_TABLE_MAINTAINANCE_OFFSET (8) -#define EMBER_AF_GP_GPS_FUNCTIONALITY_PROXIMITY_COMMUNICATION (0x000200) -#define EMBER_AF_GP_GPS_FUNCTIONALITY_PROXIMITY_COMMUNICATION_OFFSET (9) -#define EMBER_AF_GP_GPS_FUNCTIONALITY_MULTIHOP_COMMUNICATION (0x000400) -#define EMBER_AF_GP_GPS_FUNCTIONALITY_MULTIHOP_COMMUNICATION_OFFSET (10) -#define EMBER_AF_GP_GPS_FUNCTIONALITY_CT_BASED_COMMISSIONING (0x000800) -#define EMBER_AF_GP_GPS_FUNCTIONALITY_CT_BASED_COMMISSIONING_OFFSET (11) -#define EMBER_AF_GP_GPS_FUNCTIONALITY_MAINTAINANCE_GPDF (0x001000) -#define EMBER_AF_GP_GPS_FUNCTIONALITY_MAINTAINANCE_GPDF_OFFSET (12) -#define EMBER_AF_GP_GPS_FUNCTIONALITY_GPD_SECURITY_LEVEL0_IN_OPERATION (0x002000) -#define EMBER_AF_GP_GPS_FUNCTIONALITY_GPD_SECURITY_LEVEL0_IN_OPERATION_OFFSET (13) -#define EMBER_AF_GP_GPS_FUNCTIONALITY_GPD_SECURITY_LEVEL1_IN_OPERATION (0x004000) -#define EMBER_AF_GP_GPS_FUNCTIONALITY_GPD_SECURITY_LEVEL1_IN_OPERATION_OFFSET (14) -#define EMBER_AF_GP_GPS_FUNCTIONALITY_GPD_SECURITY_LEVEL2_IN_OPERATION (0x008000) -#define EMBER_AF_GP_GPS_FUNCTIONALITY_GPD_SECURITY_LEVEL2_IN_OPERATION_OFFSET (15) -#define EMBER_AF_GP_GPS_FUNCTIONALITY_GPD_SECURITY_LEVEL3_IN_OPERATION (0x010000) -#define EMBER_AF_GP_GPS_FUNCTIONALITY_GPD_SECURITY_LEVEL3_IN_OPERATION_OFFSET (16) -#define EMBER_AF_GP_GPS_FUNCTIONALITY_SINK_TABLE_BASED_GROUPCAST_FORWARDING (0x020000) -#define EMBER_AF_GP_GPS_FUNCTIONALITY_SINK_TABLE_BASED_GROUPCAST_FORWARDING_OFFSET (17) -#define EMBER_AF_GP_GPS_FUNCTIONALITY_TRANSLATION_TABLE (0x040000) -#define EMBER_AF_GP_GPS_FUNCTIONALITY_TRANSLATION_TABLE_OFFSET (18) -#define EMBER_AF_GP_GPS_FUNCTIONALITY_GPD_IEEE_ADDRESS (0x080000) -#define EMBER_AF_GP_GPS_FUNCTIONALITY_GPD_IEEE_ADDRESS_OFFSET (19) -#define EMBER_AF_GP_GPS_FUNCTIONALITY_COMPACT_ATTRIBUTE_REPORTING (0x100000) -#define EMBER_AF_GP_GPS_FUNCTIONALITY_COMPACT_ATTRIBUTE_REPORTING_OFFSET (20) -#define EMBER_AF_GP_GPS_FUNCTIONALITY_RESERVED (0xE00000) -#define EMBER_AF_GP_GPS_FUNCTIONALITY_RESERVED_OFFSET (21) -#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_APPLICATION_ID (0x00000007) -#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_ENTRY_ACTIVE (0x00000008) -#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_ENTRY_ACTIVE_OFFSET (3) -#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_ENTRY_VALID (0x00000010) -#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_ENTRY_VALID_OFFSET (4) -#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_SEQUENCE_NUMBER_CAP (0x00000020) -#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_SEQUENCE_NUMBER_CAP_OFFSET (5) -#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_LIGHTWEIGHT_UNICAST_GPS (0x00000040) -#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_LIGHTWEIGHT_UNICAST_GPS_OFFSET (6) -#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_DERIVED_GROUP_GPS (0x00000080) -#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_DERIVED_GROUP_GPS_OFFSET (7) -#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_COMMISIONED_GROUP_GPS (0x00000100) -#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_COMMISIONED_GROUP_GPS_OFFSET (8) -#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_FIRST_TO_FORWARD (0x00000200) -#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_FIRST_TO_FORWARD_OFFSET (9) -#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_IN_RANGE (0x00000400) -#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_IN_RANGE_OFFSET (10) -#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_GPD_FIXED (0x00000800) -#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_GPD_FIXED_OFFSET (11) -#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_HAS_ALL_UNICAST_ROUTES (0x00001000) -#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_HAS_ALL_UNICAST_ROUTES_OFFSET (12) -#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_ASSIGNED_ALIAS (0x00002000) -#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_ASSIGNED_ALIAS_OFFSET (13) -#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_SECURITY_USE (0x00004000) -#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_SECURITY_USE_OFFSET (14) -#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_EXTENSION (0x00008000) -#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_EXTENSION_OFFSET (15) -#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_FULL_UNICAST_GPS (0x00010000) -#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_FULL_UNICAST_GPS_OFFSET (16) -#define EMBER_AF_GP_PROXY_TABLE_ENTRY_SECURITY_OPTIONS_SECURITY_LEVEL (0x03) -#define EMBER_AF_GP_PROXY_TABLE_ENTRY_SECURITY_OPTIONS_SECURITY_KEY_TYPE (0x1C) -#define EMBER_AF_GP_PROXY_TABLE_ENTRY_SECURITY_OPTIONS_SECURITY_KEY_TYPE_OFFSET (2) -#define EMBER_AF_GP_PROXY_TABLE_ENTRY_SECURITY_OPTIONS_RESERVED (0xE0) -#define EMBER_AF_GP_PROXY_TABLE_ENTRY_SECURITY_OPTIONS_RESERVED_OFFSET (5) -#define EMBER_AF_GP_GPD_COMMISSIONING_OPTIONS_MAC_SEQ_NUM_CAP (0x01) -#define EMBER_AF_GP_GPD_COMMISSIONING_OPTIONS_RX_ON_CAP (0x02) -#define EMBER_AF_GP_GPD_COMMISSIONING_OPTIONS_RX_ON_CAP_OFFSET (1) -#define EMBER_AF_GP_GPD_COMMISSIONING_OPTIONS_APPLICATION_INFORMATION_PRESENT (0x04) -#define EMBER_AF_GP_GPD_COMMISSIONING_OPTIONS_APPLICATION_INFORMATION_PRESENT_OFFSET (2) -#define EMBER_AF_GP_GPD_COMMISSIONING_OPTIONS_RESERVED (0x08) -#define EMBER_AF_GP_GPD_COMMISSIONING_OPTIONS_RESERVED_OFFSET (3) -#define EMBER_AF_GP_GPD_COMMISSIONING_OPTIONS_PAN_ID_REQUEST (0x10) -#define EMBER_AF_GP_GPD_COMMISSIONING_OPTIONS_PAN_ID_REQUEST_OFFSET (4) -#define EMBER_AF_GP_GPD_COMMISSIONING_OPTIONS_GP_SECURITY_KEY_REQUEST (0x20) -#define EMBER_AF_GP_GPD_COMMISSIONING_OPTIONS_GP_SECURITY_KEY_REQUEST_OFFSET (5) -#define EMBER_AF_GP_GPD_COMMISSIONING_OPTIONS_FIXED_LOCATION (0x40) -#define EMBER_AF_GP_GPD_COMMISSIONING_OPTIONS_FIXED_LOCATION_OFFSET (6) -#define EMBER_AF_GP_GPD_COMMISSIONING_OPTIONS_EXTENDED_OPTIONS_FIELD (0x80) -#define EMBER_AF_GP_GPD_COMMISSIONING_OPTIONS_EXTENDED_OPTIONS_FIELD_OFFSET (7) -#define EMBER_AF_GP_GPD_COMMISSIONING_EXTENDED_OPTIONS_SECURITY_LEVEL_CAPABILITIES (0x03) -#define EMBER_AF_GP_GPD_COMMISSIONING_EXTENDED_OPTIONS_KEY_TYPE (0x1C) -#define EMBER_AF_GP_GPD_COMMISSIONING_EXTENDED_OPTIONS_KEY_TYPE_OFFSET (2) -#define EMBER_AF_GP_GPD_COMMISSIONING_EXTENDED_OPTIONS_GPD_KEY_PRESENT (0x20) -#define EMBER_AF_GP_GPD_COMMISSIONING_EXTENDED_OPTIONS_GPD_KEY_PRESENT_OFFSET (5) -#define EMBER_AF_GP_GPD_COMMISSIONING_EXTENDED_OPTIONS_GPD_KEY_ENCRYPTION (0x40) -#define EMBER_AF_GP_GPD_COMMISSIONING_EXTENDED_OPTIONS_GPD_KEY_ENCRYPTION_OFFSET (6) -#define EMBER_AF_GP_GPD_COMMISSIONING_EXTENDED_OPTIONS_GPD_OUTGOING_COUNTER_PRESENT (0x80) -#define EMBER_AF_GP_GPD_COMMISSIONING_EXTENDED_OPTIONS_GPD_OUTGOING_COUNTER_PRESENT_OFFSET (7) -#define EMBER_AF_GP_GPD_COMMISSIONING_REPLY_OPTIONS_PAN_ID_PRESENT (0x01) -#define EMBER_AF_GP_GPD_COMMISSIONING_REPLY_OPTIONS_GPD_SECURITY_KEY_PRESENT (0x02) -#define EMBER_AF_GP_GPD_COMMISSIONING_REPLY_OPTIONS_GPD_SECURITY_KEY_PRESENT_OFFSET (1) -#define EMBER_AF_GP_GPD_COMMISSIONING_REPLY_OPTIONS_GPDKEY_ENCRYPTION (0x04) -#define EMBER_AF_GP_GPD_COMMISSIONING_REPLY_OPTIONS_GPDKEY_ENCRYPTION_OFFSET (2) -#define EMBER_AF_GP_GPD_COMMISSIONING_REPLY_OPTIONS_SECURITY_LEVEL (0x18) -#define EMBER_AF_GP_GPD_COMMISSIONING_REPLY_OPTIONS_SECURITY_LEVEL_OFFSET (3) -#define EMBER_AF_GP_GPD_COMMISSIONING_REPLY_OPTIONS_KEY_TYPE (0xE0) -#define EMBER_AF_GP_GPD_COMMISSIONING_REPLY_OPTIONS_KEY_TYPE_OFFSET (5) -#define EMBER_AF_GP_NOTIFICATION_OPTION_APPLICATION_ID (0x0007) -#define EMBER_AF_GP_NOTIFICATION_OPTION_ALSO_UNICAST (0x0008) -#define EMBER_AF_GP_NOTIFICATION_OPTION_ALSO_UNICAST_OFFSET (3) -#define EMBER_AF_GP_NOTIFICATION_OPTION_ALSO_DERIVED_GROUP (0x0010) -#define EMBER_AF_GP_NOTIFICATION_OPTION_ALSO_DERIVED_GROUP_OFFSET (4) -#define EMBER_AF_GP_NOTIFICATION_OPTION_ALSO_COMMISSIONED_GROUP (0x0020) -#define EMBER_AF_GP_NOTIFICATION_OPTION_ALSO_COMMISSIONED_GROUP_OFFSET (5) -#define EMBER_AF_GP_NOTIFICATION_OPTION_SECURITY_LEVEL (0x00C0) -#define EMBER_AF_GP_NOTIFICATION_OPTION_SECURITY_LEVEL_OFFSET (6) -#define EMBER_AF_GP_NOTIFICATION_OPTION_SECURITY_KEY_TYPE (0x0700) -#define EMBER_AF_GP_NOTIFICATION_OPTION_SECURITY_KEY_TYPE_OFFSET (8) -#define EMBER_AF_GP_NOTIFICATION_OPTION_RX_AFTER_TX (0x0800) -#define EMBER_AF_GP_NOTIFICATION_OPTION_RX_AFTER_TX_OFFSET (11) -#define EMBER_AF_GP_NOTIFICATION_OPTION_GP_TX_QUEUE_FULL (0x1000) -#define EMBER_AF_GP_NOTIFICATION_OPTION_GP_TX_QUEUE_FULL_OFFSET (12) -#define EMBER_AF_GP_NOTIFICATION_OPTION_BIDIRECTIONAL_CAPABILITY (0x2000) -#define EMBER_AF_GP_NOTIFICATION_OPTION_BIDIRECTIONAL_CAPABILITY_OFFSET (13) -#define EMBER_AF_GP_NOTIFICATION_OPTION_PROXY_INFO_PRESENT (0x4000) -#define EMBER_AF_GP_NOTIFICATION_OPTION_PROXY_INFO_PRESENT_OFFSET (14) -#define EMBER_AF_GP_NOTIFICATION_OPTION_RESERVED (0x8000) -#define EMBER_AF_GP_NOTIFICATION_OPTION_RESERVED_OFFSET (15) -#define EMBER_AF_GP_PAIRING_SEARCH_OPTION_APPLICATION_ID (0x0007) -#define EMBER_AF_GP_PAIRING_SEARCH_OPTION_REQUEST_UNICAST_SINKS (0x0008) -#define EMBER_AF_GP_PAIRING_SEARCH_OPTION_REQUEST_UNICAST_SINKS_OFFSET (3) -#define EMBER_AF_GP_PAIRING_SEARCH_OPTION_REQUEST_DERIVED_GROUPCAST_SINKS (0x0010) -#define EMBER_AF_GP_PAIRING_SEARCH_OPTION_REQUEST_DERIVED_GROUPCAST_SINKS_OFFSET (4) -#define EMBER_AF_GP_PAIRING_SEARCH_OPTION_REQUEST_COMMISSIONED_GROUPCAST_SINKS (0x0020) -#define EMBER_AF_GP_PAIRING_SEARCH_OPTION_REQUEST_COMMISSIONED_GROUPCAST_SINKS_OFFSET (5) -#define EMBER_AF_GP_PAIRING_SEARCH_OPTION_REQUEST_GPD_SECURITY_FRAME_COUNTER (0x0040) -#define EMBER_AF_GP_PAIRING_SEARCH_OPTION_REQUEST_GPD_SECURITY_FRAME_COUNTER_OFFSET (6) -#define EMBER_AF_GP_PAIRING_SEARCH_OPTION_REQUEST_GPD_SECURITY_KEY (0x0080) -#define EMBER_AF_GP_PAIRING_SEARCH_OPTION_REQUEST_GPD_SECURITY_KEY_OFFSET (7) -#define EMBER_AF_GP_PAIRING_SEARCH_OPTION_RESERVED (0xFF00) -#define EMBER_AF_GP_PAIRING_SEARCH_OPTION_RESERVED_OFFSET (8) -#define EMBER_AF_GP_TUNNELING_STOP_OPTION_APPLICATION_ID (0x07) -#define EMBER_AF_GP_TUNNELING_STOP_OPTION_ALSO_DERIVED_GROUP (0x08) -#define EMBER_AF_GP_TUNNELING_STOP_OPTION_ALSO_DERIVED_GROUP_OFFSET (3) -#define EMBER_AF_GP_TUNNELING_STOP_OPTION_ALSO_COMMISSIONED_GROUP (0x10) -#define EMBER_AF_GP_TUNNELING_STOP_OPTION_ALSO_COMMISSIONED_GROUP_OFFSET (4) -#define EMBER_AF_GP_TUNNELING_STOP_OPTION_RESERVED (0xE0) -#define EMBER_AF_GP_TUNNELING_STOP_OPTION_RESERVED_OFFSET (5) -#define EMBER_AF_GP_COMMISSIONING_NOTIFICATION_OPTION_APPLICATION_ID (0x0007) -#define EMBER_AF_GP_COMMISSIONING_NOTIFICATION_OPTION_RX_AFTER_TX (0x0008) -#define EMBER_AF_GP_COMMISSIONING_NOTIFICATION_OPTION_RX_AFTER_TX_OFFSET (3) -#define EMBER_AF_GP_COMMISSIONING_NOTIFICATION_OPTION_SECURITY_LEVEL (0x0030) -#define EMBER_AF_GP_COMMISSIONING_NOTIFICATION_OPTION_SECURITY_LEVEL_OFFSET (4) -#define EMBER_AF_GP_COMMISSIONING_NOTIFICATION_OPTION_SECURITY_KEY_TYPE (0x01C0) -#define EMBER_AF_GP_COMMISSIONING_NOTIFICATION_OPTION_SECURITY_KEY_TYPE_OFFSET (6) -#define EMBER_AF_GP_COMMISSIONING_NOTIFICATION_OPTION_SECURITY_PROCESSING_FAILED (0x0200) -#define EMBER_AF_GP_COMMISSIONING_NOTIFICATION_OPTION_SECURITY_PROCESSING_FAILED_OFFSET (9) -#define EMBER_AF_GP_COMMISSIONING_NOTIFICATION_OPTION_BIDIRECTIONAL_CAPABILITY (0x0400) -#define EMBER_AF_GP_COMMISSIONING_NOTIFICATION_OPTION_BIDIRECTIONAL_CAPABILITY_OFFSET (10) -#define EMBER_AF_GP_COMMISSIONING_NOTIFICATION_OPTION_PROXY_INFO_PRESENT (0x0800) -#define EMBER_AF_GP_COMMISSIONING_NOTIFICATION_OPTION_PROXY_INFO_PRESENT_OFFSET (11) -#define EMBER_AF_GP_COMMISSIONING_NOTIFICATION_OPTION_RESERVED (0xF000) -#define EMBER_AF_GP_COMMISSIONING_NOTIFICATION_OPTION_RESERVED_OFFSET (12) -#define EMBER_AF_GP_SINK_COMMISSIONING_MODE_OPTIONS_ACTION (0x01) -#define EMBER_AF_GP_SINK_COMMISSIONING_MODE_OPTIONS_INVOLVE_GPM_IN_SECURITY (0x02) -#define EMBER_AF_GP_SINK_COMMISSIONING_MODE_OPTIONS_INVOLVE_GPM_IN_SECURITY_OFFSET (1) -#define EMBER_AF_GP_SINK_COMMISSIONING_MODE_OPTIONS_INVOLVE_GPM_IN_PAIRING (0x04) -#define EMBER_AF_GP_SINK_COMMISSIONING_MODE_OPTIONS_INVOLVE_GPM_IN_PAIRING_OFFSET (2) -#define EMBER_AF_GP_SINK_COMMISSIONING_MODE_OPTIONS_INVOLVE_PROXIES (0x08) -#define EMBER_AF_GP_SINK_COMMISSIONING_MODE_OPTIONS_INVOLVE_PROXIES_OFFSET (3) -#define EMBER_AF_GP_SINK_COMMISSIONING_MODE_OPTIONS_RESERVED (0xF0) -#define EMBER_AF_GP_SINK_COMMISSIONING_MODE_OPTIONS_RESERVED_OFFSET (4) -#define EMBER_AF_GP_SINK_COMMISSIONING_MODE_EXIT_MODE_ON_COMMISSIONING_WINDOW_EXPIRATION (0x01) -#define EMBER_AF_GP_SINK_COMMISSIONING_MODE_EXIT_MODE_ON_FIRST_PAIRING_SUCCESS (0x02) -#define EMBER_AF_GP_SINK_COMMISSIONING_MODE_EXIT_MODE_ON_FIRST_PAIRING_SUCCESS_OFFSET (1) -#define EMBER_AF_GP_SINK_COMMISSIONING_MODE_EXIT_MODE_ON_GP_PROXY_COMMISSIONING_MODE_EXIT (0x04) -#define EMBER_AF_GP_SINK_COMMISSIONING_MODE_EXIT_MODE_ON_GP_PROXY_COMMISSIONING_MODE_EXIT_OFFSET (2) -#define EMBER_AF_GP_SINK_COMMISSIONING_MODE_EXIT_MODE_RESERVED (0xF8) -#define EMBER_AF_GP_SINK_COMMISSIONING_MODE_EXIT_MODE_RESERVED_OFFSET (3) -#define EMBER_AF_GP_SINK_TABLE_REQUEST_OPTIONS_APPLICATION_ID (0x07) -#define EMBER_AF_GP_SINK_TABLE_REQUEST_OPTIONS_REQUEST_TYPE (0x18) -#define EMBER_AF_GP_SINK_TABLE_REQUEST_OPTIONS_REQUEST_TYPE_OFFSET (3) -#define EMBER_AF_GP_SINK_TABLE_REQUEST_OPTIONS_RESERVED (0xE0) -#define EMBER_AF_GP_SINK_TABLE_REQUEST_OPTIONS_RESERVED_OFFSET (5) -#define EMBER_AF_GP_TRANSLATION_TABLE_UPDATE_OPTION_APPLICATION_ID (0x0007) -#define EMBER_AF_GP_TRANSLATION_TABLE_UPDATE_OPTION_ACTION (0x0018) -#define EMBER_AF_GP_TRANSLATION_TABLE_UPDATE_OPTION_ACTION_OFFSET (3) -#define EMBER_AF_GP_TRANSLATION_TABLE_UPDATE_OPTION_NUMBER_OF_TRANSLATIONS (0x00E0) -#define EMBER_AF_GP_TRANSLATION_TABLE_UPDATE_OPTION_NUMBER_OF_TRANSLATIONS_OFFSET (5) -#define EMBER_AF_GP_TRANSLATION_TABLE_UPDATE_OPTION_ADDITIONAL_INFORMATION_BLOCK_PRESENT (0x0100) -#define EMBER_AF_GP_TRANSLATION_TABLE_UPDATE_OPTION_ADDITIONAL_INFORMATION_BLOCK_PRESENT_OFFSET (8) -#define EMBER_AF_GP_TRANSLATION_TABLE_UPDATE_OPTION_RESERVED (0xFE00) -#define EMBER_AF_GP_TRANSLATION_TABLE_UPDATE_OPTION_RESERVED_OFFSET (9) -#define EMBER_AF_GP_TRANSLATION_TABLE_SCAN_LEVEL_GPD_ID (0x01) -#define EMBER_AF_GP_TRANSLATION_TABLE_SCAN_LEVEL_CMD_ID (0x02) -#define EMBER_AF_GP_TRANSLATION_TABLE_SCAN_LEVEL_CMD_ID_OFFSET (1) -#define EMBER_AF_GP_TRANSLATION_TABLE_SCAN_LEVEL_PAYLOAD (0x04) -#define EMBER_AF_GP_TRANSLATION_TABLE_SCAN_LEVEL_PAYLOAD_OFFSET (2) -#define EMBER_AF_GP_TRANSLATION_TABLE_SCAN_LEVEL_ZB_ENDPOINT (0x08) -#define EMBER_AF_GP_TRANSLATION_TABLE_SCAN_LEVEL_ZB_ENDPOINT_OFFSET (3) -#define EMBER_AF_GP_TRANSLATION_TABLE_SCAN_LEVEL_ADDITIONAL_INFO_BLOCK (0x10) -#define EMBER_AF_GP_TRANSLATION_TABLE_SCAN_LEVEL_ADDITIONAL_INFO_BLOCK_OFFSET (4) -#define EMBER_AF_GP_PAIRING_CONFIGURATION_ACTIONS_ACTION (0x07) -#define EMBER_AF_GP_PAIRING_CONFIGURATION_ACTIONS_SEND_GP_PAIRING (0x08) -#define EMBER_AF_GP_PAIRING_CONFIGURATION_ACTIONS_SEND_GP_PAIRING_OFFSET (3) -#define EMBER_AF_GP_PAIRING_CONFIGURATION_ACTIONS_RESERVED (0xF0) -#define EMBER_AF_GP_PAIRING_CONFIGURATION_ACTIONS_RESERVED_OFFSET (4) -#define EMBER_AF_GP_PAIRING_CONFIGURATION_OPTION_APPLICATION_ID (0x0007) -#define EMBER_AF_GP_PAIRING_CONFIGURATION_OPTION_COMMUNICATION_MODE (0x0018) -#define EMBER_AF_GP_PAIRING_CONFIGURATION_OPTION_COMMUNICATION_MODE_OFFSET (3) -#define EMBER_AF_GP_PAIRING_CONFIGURATION_OPTION_SEQUENCE_NUMBER_CAPABILITIES (0x0020) -#define EMBER_AF_GP_PAIRING_CONFIGURATION_OPTION_SEQUENCE_NUMBER_CAPABILITIES_OFFSET (5) -#define EMBER_AF_GP_PAIRING_CONFIGURATION_OPTION_RX_ON_CAPABILITY (0x0040) -#define EMBER_AF_GP_PAIRING_CONFIGURATION_OPTION_RX_ON_CAPABILITY_OFFSET (6) -#define EMBER_AF_GP_PAIRING_CONFIGURATION_OPTION_FIXED_LOCATION (0x0080) -#define EMBER_AF_GP_PAIRING_CONFIGURATION_OPTION_FIXED_LOCATION_OFFSET (7) -#define EMBER_AF_GP_PAIRING_CONFIGURATION_OPTION_ASSIGNED_ALIAS (0x0100) -#define EMBER_AF_GP_PAIRING_CONFIGURATION_OPTION_ASSIGNED_ALIAS_OFFSET (8) -#define EMBER_AF_GP_PAIRING_CONFIGURATION_OPTION_SECURITY_USE (0x0200) -#define EMBER_AF_GP_PAIRING_CONFIGURATION_OPTION_SECURITY_USE_OFFSET (9) -#define EMBER_AF_GP_PAIRING_CONFIGURATION_OPTION_APPLICATION_INFORMATION_PRESENT (0x0400) -#define EMBER_AF_GP_PAIRING_CONFIGURATION_OPTION_APPLICATION_INFORMATION_PRESENT_OFFSET (10) -#define EMBER_AF_GP_PAIRING_CONFIGURATION_OPTION_RESERVED (0xF800) -#define EMBER_AF_GP_PAIRING_CONFIGURATION_OPTION_RESERVED_OFFSET (11) -#define EMBER_AF_GP_APPLICATION_INFORMATION_MANUFACTURE_ID_PRESENT (0x01) -#define EMBER_AF_GP_APPLICATION_INFORMATION_MODEL_ID_PRESENT (0x02) -#define EMBER_AF_GP_APPLICATION_INFORMATION_MODEL_ID_PRESENT_OFFSET (1) -#define EMBER_AF_GP_APPLICATION_INFORMATION_GPD_COMMANDS_PRESENT (0x04) -#define EMBER_AF_GP_APPLICATION_INFORMATION_GPD_COMMANDS_PRESENT_OFFSET (2) -#define EMBER_AF_GP_APPLICATION_INFORMATION_CLUSTER_LIST_PRESENT (0x08) -#define EMBER_AF_GP_APPLICATION_INFORMATION_CLUSTER_LIST_PRESENT_OFFSET (3) -#define EMBER_AF_GP_APPLICATION_INFORMATION_SWITCH_INFORMATION_PRESENT (0x10) -#define EMBER_AF_GP_APPLICATION_INFORMATION_SWITCH_INFORMATION_PRESENT_OFFSET (4) -#define EMBER_AF_GP_APPLICATION_INFORMATION_APPLICATION_DESCRIPTION_PRESENT (0x20) -#define EMBER_AF_GP_APPLICATION_INFORMATION_APPLICATION_DESCRIPTION_PRESENT_OFFSET (5) -#define EMBER_AF_GP_NOTIFICATION_RESPONSE_OPTION_APPLICATION_ID (0x07) -#define EMBER_AF_GP_NOTIFICATION_RESPONSE_OPTION_FIRST_TO_FORWARD (0x08) -#define EMBER_AF_GP_NOTIFICATION_RESPONSE_OPTION_FIRST_TO_FORWARD_OFFSET (3) -#define EMBER_AF_GP_NOTIFICATION_RESPONSE_OPTION_NO_PAIRING (0x10) -#define EMBER_AF_GP_NOTIFICATION_RESPONSE_OPTION_NO_PAIRING_OFFSET (4) -#define EMBER_AF_GP_NOTIFICATION_RESPONSE_OPTION_RESERVED (0xE0) -#define EMBER_AF_GP_NOTIFICATION_RESPONSE_OPTION_RESERVED_OFFSET (5) -#define EMBER_AF_GP_PAIRING_OPTION_APPLICATION_ID (0x000007) -#define EMBER_AF_GP_PAIRING_OPTION_ADD_SINK (0x000008) -#define EMBER_AF_GP_PAIRING_OPTION_ADD_SINK_OFFSET (3) -#define EMBER_AF_GP_PAIRING_OPTION_REMOVE_GPD (0x000010) -#define EMBER_AF_GP_PAIRING_OPTION_REMOVE_GPD_OFFSET (4) -#define EMBER_AF_GP_PAIRING_OPTION_COMMUNICATION_MODE (0x000060) -#define EMBER_AF_GP_PAIRING_OPTION_COMMUNICATION_MODE_OFFSET (5) -#define EMBER_AF_GP_PAIRING_OPTION_GPD_FIXED (0x000080) -#define EMBER_AF_GP_PAIRING_OPTION_GPD_FIXED_OFFSET (7) -#define EMBER_AF_GP_PAIRING_OPTION_GPD_MAC_SEQUENCE_NUMBER_CAPABILITIES (0x000100) -#define EMBER_AF_GP_PAIRING_OPTION_GPD_MAC_SEQUENCE_NUMBER_CAPABILITIES_OFFSET (8) -#define EMBER_AF_GP_PAIRING_OPTION_SECURITY_LEVEL (0x000600) -#define EMBER_AF_GP_PAIRING_OPTION_SECURITY_LEVEL_OFFSET (9) -#define EMBER_AF_GP_PAIRING_OPTION_SECURITY_KEY_TYPE (0x003800) -#define EMBER_AF_GP_PAIRING_OPTION_SECURITY_KEY_TYPE_OFFSET (11) -#define EMBER_AF_GP_PAIRING_OPTION_GPD_SECURITY_FRAME_COUNTER_PRESENT (0x004000) -#define EMBER_AF_GP_PAIRING_OPTION_GPD_SECURITY_FRAME_COUNTER_PRESENT_OFFSET (14) -#define EMBER_AF_GP_PAIRING_OPTION_GPD_SECURITY_KEY_PRESENT (0x008000) -#define EMBER_AF_GP_PAIRING_OPTION_GPD_SECURITY_KEY_PRESENT_OFFSET (15) -#define EMBER_AF_GP_PAIRING_OPTION_ASSIGNED_ALIAS_PRESENT (0x010000) -#define EMBER_AF_GP_PAIRING_OPTION_ASSIGNED_ALIAS_PRESENT_OFFSET (16) -#define EMBER_AF_GP_PAIRING_OPTION_GROUPCAST_RADIUS_PRESENT (0x020000) -#define EMBER_AF_GP_PAIRING_OPTION_GROUPCAST_RADIUS_PRESENT_OFFSET (17) -#define EMBER_AF_GP_PAIRING_OPTION_RESERVED (0xFC0000) -#define EMBER_AF_GP_PAIRING_OPTION_RESERVED_OFFSET (18) -#define EMBER_AF_GP_PROXY_COMMISSIONING_MODE_OPTION_ACTION (0x01) -#define EMBER_AF_GP_PROXY_COMMISSIONING_MODE_OPTION_COMMISSIONING_WINDOW_PRESENT (0x02) -#define EMBER_AF_GP_PROXY_COMMISSIONING_MODE_OPTION_COMMISSIONING_WINDOW_PRESENT_OFFSET (1) -#define EMBER_AF_GP_PROXY_COMMISSIONING_MODE_OPTION_EXIT_MODE (0x0C) -#define EMBER_AF_GP_PROXY_COMMISSIONING_MODE_OPTION_EXIT_MODE_OFFSET (2) -#define EMBER_AF_GP_PROXY_COMMISSIONING_MODE_OPTION_CHANNEL_PRESENT (0x10) -#define EMBER_AF_GP_PROXY_COMMISSIONING_MODE_OPTION_CHANNEL_PRESENT_OFFSET (4) -#define EMBER_AF_GP_PROXY_COMMISSIONING_MODE_OPTION_UNICAST_COMMUNICATION (0x20) -#define EMBER_AF_GP_PROXY_COMMISSIONING_MODE_OPTION_UNICAST_COMMUNICATION_OFFSET (5) -#define EMBER_AF_GP_PROXY_COMMISSIONING_MODE_OPTION_RESERVED (0xC0) -#define EMBER_AF_GP_PROXY_COMMISSIONING_MODE_OPTION_RESERVED_OFFSET (6) -#define EMBER_AF_GP_PROXY_COMMISSIONING_MODE_EXIT_MODE_ON_COMMISSIONING_WINDOW_EXPIRATION (0x02) -#define EMBER_AF_GP_PROXY_COMMISSIONING_MODE_EXIT_MODE_ON_COMMISSIONING_WINDOW_EXPIRATION_OFFSET (1) -#define EMBER_AF_GP_PROXY_COMMISSIONING_MODE_EXIT_MODE_ON_FIRST_PAIRING_SUCCESS (0x04) -#define EMBER_AF_GP_PROXY_COMMISSIONING_MODE_EXIT_MODE_ON_FIRST_PAIRING_SUCCESS_OFFSET (2) -#define EMBER_AF_GP_PROXY_COMMISSIONING_MODE_EXIT_MODE_ON_GP_PROXY_COMMISSIONING_MODE_EXIT (0x08) -#define EMBER_AF_GP_PROXY_COMMISSIONING_MODE_EXIT_MODE_ON_GP_PROXY_COMMISSIONING_MODE_EXIT_OFFSET (3) -#define EMBER_AF_GP_RESPONSE_OPTION_APPLICATION_ID (0x07) -#define EMBER_AF_GP_RESPONSE_OPTION_TRANSMIT_ON_END_POINT_MATCH (0x08) -#define EMBER_AF_GP_RESPONSE_OPTION_TRANSMIT_ON_END_POINT_MATCH_OFFSET (3) -#define EMBER_AF_GP_RESPONSE_OPTION_RESERVED (0xF0) -#define EMBER_AF_GP_RESPONSE_OPTION_RESERVED_OFFSET (4) -#define EMBER_AF_GP_RESPONSE_TEMP_MASTER_TX_CHANNEL_TRANSMIT_CHANNEL (0x0F) -#define EMBER_AF_GP_RESPONSE_TEMP_MASTER_TX_CHANNEL_RESERVED (0xF0) -#define EMBER_AF_GP_RESPONSE_TEMP_MASTER_TX_CHANNEL_RESERVED_OFFSET (4) -#define EMBER_AF_GP_SINK_TABLE_ENTRY_OPTIONS_APPLICATION_ID (0x0007) -#define EMBER_AF_GP_SINK_TABLE_ENTRY_OPTIONS_COMMUNICATION_MODE (0x0018) -#define EMBER_AF_GP_SINK_TABLE_ENTRY_OPTIONS_COMMUNICATION_MODE_OFFSET (3) -#define EMBER_AF_GP_SINK_TABLE_ENTRY_OPTIONS_SEQUENCE_NUM_CAPABILITIES (0x0020) -#define EMBER_AF_GP_SINK_TABLE_ENTRY_OPTIONS_SEQUENCE_NUM_CAPABILITIES_OFFSET (5) -#define EMBER_AF_GP_SINK_TABLE_ENTRY_OPTIONS_RX_ON_CAPABILITY (0x0040) -#define EMBER_AF_GP_SINK_TABLE_ENTRY_OPTIONS_RX_ON_CAPABILITY_OFFSET (6) -#define EMBER_AF_GP_SINK_TABLE_ENTRY_OPTIONS_FIXED_LOCATION (0x0080) -#define EMBER_AF_GP_SINK_TABLE_ENTRY_OPTIONS_FIXED_LOCATION_OFFSET (7) -#define EMBER_AF_GP_SINK_TABLE_ENTRY_OPTIONS_ASSIGNED_ALIAS (0x0100) -#define EMBER_AF_GP_SINK_TABLE_ENTRY_OPTIONS_ASSIGNED_ALIAS_OFFSET (8) -#define EMBER_AF_GP_SINK_TABLE_ENTRY_OPTIONS_SECURITY_USE (0x0200) -#define EMBER_AF_GP_SINK_TABLE_ENTRY_OPTIONS_SECURITY_USE_OFFSET (9) -#define EMBER_AF_GP_SINK_TABLE_ENTRY_OPTIONS_RESERVED (0xFC00) -#define EMBER_AF_GP_SINK_TABLE_ENTRY_OPTIONS_RESERVED_OFFSET (10) -#define EMBER_AF_GP_SINK_TABLE_ENTRY_SECURITY_OPTIONS_SECURITY_LEVEL (0x03) -#define EMBER_AF_GP_SINK_TABLE_ENTRY_SECURITY_OPTIONS_SECURITY_KEY_TYPE (0x1C) -#define EMBER_AF_GP_SINK_TABLE_ENTRY_SECURITY_OPTIONS_SECURITY_KEY_TYPE_OFFSET (2) -#define EMBER_AF_GP_SINK_TABLE_ENTRY_SECURITY_OPTIONS_RESERVED (0xE0) -#define EMBER_AF_GP_SINK_TABLE_ENTRY_SECURITY_OPTIONS_RESERVED_OFFSET (5) -#define EMBER_AF_GP_TRANSLATION_TABLE_RESPONSE_OPTION_APPLICATION_ID (0x07) -#define EMBER_AF_GP_TRANSLATION_TABLE_RESPONSE_OPTION_ADDITIONAL_INFORMATION_BLOCK_PRESENT (0x08) -#define EMBER_AF_GP_TRANSLATION_TABLE_RESPONSE_OPTION_ADDITIONAL_INFORMATION_BLOCK_PRESENT_OFFSET (3) -#define EMBER_AF_GP_TRANSLATION_TABLE_RESPONSE_OPTION_RESERVED (0xF0) -#define EMBER_AF_GP_TRANSLATION_TABLE_RESPONSE_OPTION_RESERVED_OFFSET (4) -#define EMBER_AF_GP_PROXY_TABLE_REQUEST_OPTIONS_APPLICATION_ID (0x07) -#define EMBER_AF_GP_PROXY_TABLE_REQUEST_OPTIONS_REQUEST_TYPE (0x18) -#define EMBER_AF_GP_PROXY_TABLE_REQUEST_OPTIONS_REQUEST_TYPE_OFFSET (3) -#define EMBER_AF_GP_PROXY_TABLE_REQUEST_OPTIONS_RESERVED (0xE0) -#define EMBER_AF_GP_PROXY_TABLE_REQUEST_OPTIONS_RESERVED_OFFSET (5) -#define EMBER_AF_GP_GPD_CHANNEL_REQUEST_CHANNEL_TOGGLING_BEHAVIOUR_RX_CHANNEL_NEXT_ATTEMPT (0x0F) -#define EMBER_AF_GP_GPD_CHANNEL_REQUEST_CHANNEL_TOGGLING_BEHAVIOUR_RX_CHANNEL_SECOND_NEXT_ATTEMPT (0xF0) -#define EMBER_AF_GP_GPD_CHANNEL_REQUEST_CHANNEL_TOGGLING_BEHAVIOUR_RX_CHANNEL_SECOND_NEXT_ATTEMPT_OFFSET (4) -#define EMBER_AF_GP_GPD_CHANNEL_CONFIGURATION_CHANNEL_MASK (0x1F) -#define EMBER_AF_GP_GPD_CHANNEL_CONFIGURATION_CHANNEL_OPERATIONAL_CHANNEL (0x0F) -#define EMBER_AF_GP_GPD_CHANNEL_CONFIGURATION_CHANNEL_BASIC (0x10) -#define EMBER_AF_GP_GPD_CHANNEL_CONFIGURATION_CHANNEL_BASIC_OFFSET (4) -#define EMBER_AF_GP_GPD_CHANNEL_CONFIGURATION_CHANNEL_RESERVED (0xE0) -#define EMBER_AF_GP_GPD_CHANNEL_CONFIGURATION_CHANNEL_RESERVED_OFFSET (5) -#define EMBER_AF_GP_RESPONSE_OPTION_MASK (0x0F) -#define EMBER_AF_GP_RESPONSE_OPTION_TRANSMIT_ON_END_POINT_MATCH (0x08) -#define EMBER_AF_GP_RESPONSE_OPTION_TRANSMIT_ON_END_POINT_MATCH_OFFSET (3) -#define EMBER_AF_GP_RESPONSE_OPTION_RESERVED (0xF0) -#define EMBER_AF_GP_RESPONSE_OPTION_RESERVED_OFFSET (4) -/** @} END Enums */ -/** @} END addtogroup */ -#endif // SILABS_EMBER_AF_ENUMS diff --git a/examples/lock-app/efr32/src/gen/gen_config.h b/examples/lock-app/efr32/src/gen/gen_config.h deleted file mode 100644 index b1b1add4cd37b2..00000000000000 --- a/examples/lock-app/efr32/src/gen/gen_config.h +++ /dev/null @@ -1,270 +0,0 @@ -/** - * - * 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 SILABS_ZNET_CONFIG -#define SILABS_ZNET_CONFIG - -#include "debug-printing-test.h" - -/**** Included Header Section ****/ - -// Networks -#define EM_AF_GENERATED_NETWORK_TYPES \ - { \ - EM_AF_NETWORK_TYPE_ZIGBEE_PRO, /* Primary */ \ - } -#define EM_AF_GENERATED_ZIGBEE_PRO_NETWORKS \ - { \ - { \ - /* Primary */ \ - ZA_ROUTER, \ - EMBER_AF_SECURITY_PROFILE_Z3, \ - }, \ - } -#define EM_AF_GENERATED_NETWORK_STRINGS "Primary (pro)", /**** ZCL Section ****/ -#define ZA_PROMPT "ZigbeeMinimalSoc" -#define ZCL_USING_ON_OFF_CLUSTER_SERVER -#define EMBER_AF_MANUFACTURER_CODE 0x1002 -#define EMBER_AF_DEFAULT_RESPONSE_POLICY_ALWAYS - -/**** Cluster endpoint counts ****/ -#define EMBER_AF_ON_OFF_CLUSTER_SERVER_ENDPOINT_COUNT (1) - -/**** Cluster Endpoint Summaries ****/ -#define EMBER_AF_MAX_SERVER_CLUSTER_COUNT (1) -#define EMBER_AF_MAX_CLIENT_CLUSTER_COUNT (0) -#define EMBER_AF_MAX_TOTAL_CLUSTER_COUNT (1) - -/**** CLI Section ****/ -#define EMBER_AF_GENERATE_CLI - -/**** Security Section ****/ -#define EMBER_AF_HAS_SECURITY_PROFILE_Z3 - -/**** Network Section ****/ -#define EMBER_SUPPORTED_NETWORKS (1) -#define EMBER_AF_NETWORK_INDEX_PRIMARY (0) -#define EMBER_AF_DEFAULT_NETWORK_INDEX EMBER_AF_NETWORK_INDEX_PRIMARY -#define EMBER_AF_HAS_ROUTER_NETWORK -#define EMBER_AF_HAS_RX_ON_WHEN_IDLE_NETWORK -#define EMBER_AF_TX_POWER_MODE EMBER_TX_POWER_MODE_USE_TOKEN - -/**** Callback Section ****/ -#define EMBER_CALLBACK_STACK_STATUS -#define EMBER_CALLBACK_ON_OFF_CLUSTER_OFF -#define EMBER_CALLBACK_ON_OFF_CLUSTER_ON -#define EMBER_CALLBACK_ON_OFF_CLUSTER_TOGGLE -#define EMBER_CALLBACK_ENERGY_SCAN_RESULT -#define EMBER_CALLBACK_SCAN_COMPLETE -#define EMBER_CALLBACK_NETWORK_FOUND -/**** Debug printing section ****/ - -// Global switch -#define EMBER_AF_PRINT_ENABLE - -#define EMBER_AF_SUPPORT_COMMAND_DISCOVERY - -// Generated plugin macros - -// Use this macro to check if Antenna Stub plugin is included -#define EMBER_AF_PLUGIN_ANTENNA_STUB - -// Use this macro to check if Binding Table Library plugin is included -#define EMBER_AF_PLUGIN_BINDING_TABLE_LIBRARY -// User options for plugin Binding Table Library -#define EMBER_BINDING_TABLE_SIZE 10 - -// Use this macro to check if CCM* Encryption plugin is included -#define EMBER_AF_PLUGIN_CCM_ENCRYPTION -// User options for plugin CCM* Encryption -#define EMBER_AF_PLUGIN_CCM_ENCRYPTION_SOFTWARE_CCM -#define USE_SOFTWARE_CCM - -// Use this macro to check if Radio Coexistence Stub plugin is included -#define EMBER_AF_PLUGIN_COEXISTENCE_STUB - -// Use this macro to check if Debug Basic Library plugin is included -#define EMBER_AF_PLUGIN_DEBUG_BASIC_LIBRARY - -// Use this macro to check if Debug JTAG plugin is included -#define EMBER_AF_PLUGIN_DEBUG_JTAG - -// Use this macro to check if Ember Minimal Printf plugin is included -#define EMBER_AF_PLUGIN_EMBER_MINIMAL_PRINTF - -// Use this macro to check if HAL Library plugin is included -#define EMBER_AF_PLUGIN_HAL_LIBRARY - -// Use this macro to check if mbed TLS plugin is included -#define EMBER_AF_PLUGIN_MBEDTLS -// User options for plugin mbed TLS -#define EMBER_AF_PLUGIN_MBEDTLS_CONF_DEVICE_ACCELERATION -#define EMBER_AF_PLUGIN_MBEDTLS_CONF_DEVICE_ACCELERATION_APP - -// Use this macro to check if Network Steering plugin is included -#define EMBER_AF_PLUGIN_NETWORK_STEERING -// User options for plugin Network Steering -#define EMBER_AF_PLUGIN_NETWORK_STEERING_CHANNEL_MASK 0x0318C800 -#define EMBER_AF_PLUGIN_NETWORK_STEERING_RADIO_TX_POWER 3 -#define EMBER_AF_PLUGIN_NETWORK_STEERING_SCAN_DURATION 4 -#define EMBER_AF_PLUGIN_NETWORK_STEERING_COMMISSIONING_TIME_S 180 -#define EMBER_AF_PLUGIN_NETWORK_STEERING_OPTIMIZE_SCANS - -// Use this macro to check if NVM3 Library plugin is included -#define EMBER_AF_PLUGIN_NVM3 -// User options for plugin NVM3 Library -#define EMBER_AF_PLUGIN_NVM3_FLASH_PAGES 18 -#define EMBER_AF_PLUGIN_NVM3_CACHE_SIZE 200 -#define EMBER_AF_PLUGIN_NVM3_MAX_OBJECT_SIZE 254 -#define EMBER_AF_PLUGIN_NVM3_USER_REPACK_HEADROOM 0 - -// Use this macro to check if Packet Validate Library plugin is included -#define EMBER_AF_PLUGIN_PACKET_VALIDATE_LIBRARY - -// Use this macro to check if RAIL Library plugin is included -#define EMBER_AF_PLUGIN_RAIL_LIBRARY -// User options for plugin RAIL Library -#define EMBER_AF_PLUGIN_RAIL_LIBRARY_RAILPHYDEF 1 - -// Use this macro to check if Scan Dispatch plugin is included -#define EMBER_AF_PLUGIN_SCAN_DISPATCH -// User options for plugin Scan Dispatch -#define EMBER_AF_PLUGIN_SCAN_DISPATCH_SCAN_QUEUE_SIZE 10 - -// Use this macro to check if Serial plugin is included -#define EMBER_AF_PLUGIN_SERIAL - -// Use this macro to check if Simulated EEPROM version 2 to NVM3 Upgrade Stub plugin is included -#define EMBER_AF_PLUGIN_SIM_EEPROM2_TO_NVM3_UPGRADE_STUB - -// Use this macro to check if Simple Main plugin is included -#define EMBER_AF_PLUGIN_SIMPLE_MAIN - -// Use this macro to check if Strong Random plugin is included -#define EMBER_AF_PLUGIN_STRONG_RANDOM -// User options for plugin Strong Random -#define EMBER_AF_PLUGIN_STRONG_RANDOM_RADIO_PRNG -#define USE_RADIO_API_FOR_TRNG - -// Use this macro to check if Update TC Link Key plugin is included -#define EMBER_AF_PLUGIN_UPDATE_TC_LINK_KEY -// User options for plugin Update TC Link Key -#define EMBER_AF_PLUGIN_UPDATE_TC_LINK_KEY_MAX_ATTEMPTS 3 - -// Use this macro to check if ZCL Framework Core plugin is included -#define EMBER_AF_PLUGIN_ZCL_FRAMEWORK_CORE -// User options for plugin ZCL Framework Core -#define EMBER_AF_PLUGIN_ZCL_FRAMEWORK_CORE_CLI_ENABLED -#define ZA_CLI_FULL - -// Use this macro to check if ZigBee PRO Stack Library plugin is included -#define EMBER_AF_PLUGIN_ZIGBEE_PRO_LIBRARY -// User options for plugin ZigBee PRO Stack Library -#define EMBER_MAX_END_DEVICE_CHILDREN 6 -#define EMBER_PACKET_BUFFER_COUNT 75 -#define EMBER_END_DEVICE_KEEP_ALIVE_SUPPORT_MODE EMBER_KEEP_ALIVE_SUPPORT_ALL -#define EMBER_END_DEVICE_POLL_TIMEOUT MINUTES_256 -#define EMBER_END_DEVICE_POLL_TIMEOUT_SHIFT 6 -#define EMBER_LINK_POWER_DELTA_INTERVAL 300 -#define EMBER_APS_UNICAST_MESSAGE_COUNT 10 -#define EMBER_BROADCAST_TABLE_SIZE 15 -#define EMBER_NEIGHBOR_TABLE_SIZE 16 - -// Generated API headers - -// API antenna from Antenna Stub plugin -#define EMBER_AF_API_ANTENNA \ - "../../../../../Applications/Simplicity " \ - "Studio.app/Contents/Eclipse/developer/sdks/gecko_sdk_suite/v3.0/platform/base/hal/plugin/antenna/antenna.h" - -// API coexistence from Radio Coexistence Stub plugin -#define EMBER_AF_API_COEXISTENCE \ - "../../../../../Applications/Simplicity " \ - "Studio.app/Contents/Eclipse/developer/sdks/gecko_sdk_suite/v3.0/platform/radio/rail_lib/plugin/coexistence/protocol/" \ - "ieee802154/coexistence-802154.h" - -// API network-steering from Network Steering plugin -#define EMBER_AF_API_NETWORK_STEERING \ - "../../../../../Applications/Simplicity " \ - "Studio.app/Contents/Eclipse/developer/sdks/gecko_sdk_suite/v3.0/protocol/zigbee/app/framework/plugin/network-steering/" \ - "network-steering.h" - -// API nvm3 from NVM3 Library plugin -#define EMBER_AF_API_NVM3 \ - "../../../../../Applications/Simplicity " \ - "Studio.app/Contents/Eclipse/developer/sdks/gecko_sdk_suite/v3.0/platform/base/hal/plugin/nvm3/nvm3-token.h" - -// API rail-library from RAIL Library plugin -#define EMBER_AF_API_RAIL_LIBRARY \ - "../../../../../Applications/Simplicity " \ - "Studio.app/Contents/Eclipse/developer/sdks/gecko_sdk_suite/v3.0/platform/radio/rail_lib/common/rail.h" - -// API scan-dispatch from Scan Dispatch plugin -#define EMBER_AF_API_SCAN_DISPATCH \ - "../../../../../Applications/Simplicity " \ - "Studio.app/Contents/Eclipse/developer/sdks/gecko_sdk_suite/v3.0/protocol/zigbee/app/framework/plugin/scan-dispatch/" \ - "scan-dispatch.h" - -// API serial from Serial plugin -#define EMBER_AF_API_SERIAL \ - "../../../../../Applications/Simplicity " \ - "Studio.app/Contents/Eclipse/developer/sdks/gecko_sdk_suite/v3.0/platform/base/hal/plugin/serial/serial.h" - -// API update-tc-link-key from Update TC Link Key plugin -#define EMBER_AF_API_UPDATE_TC_LINK_KEY \ - "../../../../../Applications/Simplicity " \ - "Studio.app/Contents/Eclipse/developer/sdks/gecko_sdk_suite/v3.0/protocol/zigbee/app/framework/plugin/update-tc-link-key/" \ - "update-tc-link-key.h" - -// API command-interpreter2 from ZCL Framework Core plugin -#define EMBER_AF_API_COMMAND_INTERPRETER2 \ - "../../../../../Applications/Simplicity " \ - "Studio.app/Contents/Eclipse/developer/sdks/gecko_sdk_suite/v3.0/protocol/zigbee/app/util/serial/command-interpreter2.h" - -// Custom macros -#ifdef TRANSITION_TIME_DS -#undef TRANSITION_TIME_DS -#endif -#define TRANSITION_TIME_DS 20 - -#ifdef FINDING_AND_BINDING_DELAY_MS -#undef FINDING_AND_BINDING_DELAY_MS -#endif -#define FINDING_AND_BINDING_DELAY_MS 3000 - -#endif // SILABS_ZNET_CONFIG diff --git a/examples/lock-app/efr32/src/gen/gen_tokens.h b/examples/lock-app/efr32/src/gen/gen_tokens.h deleted file mode 100644 index 80bd8a4098e676..00000000000000 --- a/examples/lock-app/efr32/src/gen/gen_tokens.h +++ /dev/null @@ -1,60 +0,0 @@ -/** - * - * 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. -// -// - -// This file contains the tokens for attributes stored in flash - -// Identifier tags for tokens - -// Types for the tokens -#ifdef DEFINETYPES -#endif // DEFINETYPES - -// Actual token definitions -#ifdef DEFINETOKENS -#endif // DEFINETOKENS - -// Macro snippet that loads all the attributes from tokens -#define GENERATED_TOKEN_LOADER(endpoint) \ - do \ - { \ - } while (false) - -// Macro snippet that saves the attribute to token -#define GENERATED_TOKEN_SAVER \ - do \ - { \ - } while (false) diff --git a/examples/lock-app/efr32/src/gen/print-cluster.h b/examples/lock-app/efr32/src/gen/print-cluster.h deleted file mode 100644 index 87d2771f942629..00000000000000 --- a/examples/lock-app/efr32/src/gen/print-cluster.h +++ /dev/null @@ -1,778 +0,0 @@ -/** - * - * 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 SILABS_PRINT_CLUSTER -#define SILABS_PRINT_CLUSTER - -// This is the mapping of IDs to cluster names assuming a format according -// to the "EmberAfClusterName" defined in the ZCL header. -// The names of clusters that are not present, are removed. - -#if defined(ZCL_USING_BASIC_CLUSTER_SERVER) || defined(ZCL_USING_BASIC_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_BASIC_CLUSTER { ZCL_BASIC_CLUSTER_ID, 0x0000, "Basic" }, -#else -#define SILABS_PRINTCLUSTER_BASIC_CLUSTER -#endif -#if defined(ZCL_USING_POWER_CONFIG_CLUSTER_SERVER) || defined(ZCL_USING_POWER_CONFIG_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_POWER_CONFIG_CLUSTER { ZCL_POWER_CONFIG_CLUSTER_ID, 0x0000, "Power Configuration" }, -#else -#define SILABS_PRINTCLUSTER_POWER_CONFIG_CLUSTER -#endif -#if defined(ZCL_USING_DEVICE_TEMP_CLUSTER_SERVER) || defined(ZCL_USING_DEVICE_TEMP_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_DEVICE_TEMP_CLUSTER { ZCL_DEVICE_TEMP_CLUSTER_ID, 0x0000, "Device Temperature Configuration" }, -#else -#define SILABS_PRINTCLUSTER_DEVICE_TEMP_CLUSTER -#endif -#if defined(ZCL_USING_IDENTIFY_CLUSTER_SERVER) || defined(ZCL_USING_IDENTIFY_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_IDENTIFY_CLUSTER { ZCL_IDENTIFY_CLUSTER_ID, 0x0000, "Identify" }, -#else -#define SILABS_PRINTCLUSTER_IDENTIFY_CLUSTER -#endif -#if defined(ZCL_USING_GROUPS_CLUSTER_SERVER) || defined(ZCL_USING_GROUPS_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_GROUPS_CLUSTER { ZCL_GROUPS_CLUSTER_ID, 0x0000, "Groups" }, -#else -#define SILABS_PRINTCLUSTER_GROUPS_CLUSTER -#endif -#if defined(ZCL_USING_SCENES_CLUSTER_SERVER) || defined(ZCL_USING_SCENES_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_SCENES_CLUSTER { ZCL_SCENES_CLUSTER_ID, 0x0000, "Scenes" }, -#else -#define SILABS_PRINTCLUSTER_SCENES_CLUSTER -#endif -#if defined(ZCL_USING_ON_OFF_CLUSTER_SERVER) || defined(ZCL_USING_ON_OFF_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_ON_OFF_CLUSTER { ZCL_ON_OFF_CLUSTER_ID, 0x0000, "On/off" }, -#else -#define SILABS_PRINTCLUSTER_ON_OFF_CLUSTER -#endif -#if defined(ZCL_USING_ON_OFF_SWITCH_CONFIG_CLUSTER_SERVER) || defined(ZCL_USING_ON_OFF_SWITCH_CONFIG_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_ON_OFF_SWITCH_CONFIG_CLUSTER \ - { ZCL_ON_OFF_SWITCH_CONFIG_CLUSTER_ID, 0x0000, "On/off Switch Configuration" }, -#else -#define SILABS_PRINTCLUSTER_ON_OFF_SWITCH_CONFIG_CLUSTER -#endif -#if defined(ZCL_USING_LEVEL_CONTROL_CLUSTER_SERVER) || defined(ZCL_USING_LEVEL_CONTROL_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_LEVEL_CONTROL_CLUSTER { ZCL_LEVEL_CONTROL_CLUSTER_ID, 0x0000, "Level Control" }, -#else -#define SILABS_PRINTCLUSTER_LEVEL_CONTROL_CLUSTER -#endif -#if defined(ZCL_USING_ALARM_CLUSTER_SERVER) || defined(ZCL_USING_ALARM_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_ALARM_CLUSTER { ZCL_ALARM_CLUSTER_ID, 0x0000, "Alarms" }, -#else -#define SILABS_PRINTCLUSTER_ALARM_CLUSTER -#endif -#if defined(ZCL_USING_TIME_CLUSTER_SERVER) || defined(ZCL_USING_TIME_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_TIME_CLUSTER { ZCL_TIME_CLUSTER_ID, 0x0000, "Time" }, -#else -#define SILABS_PRINTCLUSTER_TIME_CLUSTER -#endif -#if defined(ZCL_USING_RSSI_LOCATION_CLUSTER_SERVER) || defined(ZCL_USING_RSSI_LOCATION_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_RSSI_LOCATION_CLUSTER { ZCL_RSSI_LOCATION_CLUSTER_ID, 0x0000, "RSSI Location" }, -#else -#define SILABS_PRINTCLUSTER_RSSI_LOCATION_CLUSTER -#endif -#if defined(ZCL_USING_BINARY_INPUT_BASIC_CLUSTER_SERVER) || defined(ZCL_USING_BINARY_INPUT_BASIC_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_BINARY_INPUT_BASIC_CLUSTER { ZCL_BINARY_INPUT_BASIC_CLUSTER_ID, 0x0000, "Binary Input (Basic)" }, -#else -#define SILABS_PRINTCLUSTER_BINARY_INPUT_BASIC_CLUSTER -#endif -#if defined(ZCL_USING_COMMISSIONING_CLUSTER_SERVER) || defined(ZCL_USING_COMMISSIONING_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_COMMISSIONING_CLUSTER { ZCL_COMMISSIONING_CLUSTER_ID, 0x0000, "Commissioning" }, -#else -#define SILABS_PRINTCLUSTER_COMMISSIONING_CLUSTER -#endif -#if defined(ZCL_USING_PARTITION_CLUSTER_SERVER) || defined(ZCL_USING_PARTITION_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_PARTITION_CLUSTER { ZCL_PARTITION_CLUSTER_ID, 0x0000, "Partition" }, -#else -#define SILABS_PRINTCLUSTER_PARTITION_CLUSTER -#endif -#if defined(ZCL_USING_OTA_BOOTLOAD_CLUSTER_SERVER) || defined(ZCL_USING_OTA_BOOTLOAD_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_OTA_BOOTLOAD_CLUSTER { ZCL_OTA_BOOTLOAD_CLUSTER_ID, 0x0000, "Over the Air Bootloading" }, -#else -#define SILABS_PRINTCLUSTER_OTA_BOOTLOAD_CLUSTER -#endif -#if defined(ZCL_USING_POWER_PROFILE_CLUSTER_SERVER) || defined(ZCL_USING_POWER_PROFILE_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_POWER_PROFILE_CLUSTER { ZCL_POWER_PROFILE_CLUSTER_ID, 0x0000, "Power Profile" }, -#else -#define SILABS_PRINTCLUSTER_POWER_PROFILE_CLUSTER -#endif -#if defined(ZCL_USING_APPLIANCE_CONTROL_CLUSTER_SERVER) || defined(ZCL_USING_APPLIANCE_CONTROL_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_APPLIANCE_CONTROL_CLUSTER { ZCL_APPLIANCE_CONTROL_CLUSTER_ID, 0x0000, "Appliance Control" }, -#else -#define SILABS_PRINTCLUSTER_APPLIANCE_CONTROL_CLUSTER -#endif -#if defined(ZCL_USING_POLL_CONTROL_CLUSTER_SERVER) || defined(ZCL_USING_POLL_CONTROL_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_POLL_CONTROL_CLUSTER { ZCL_POLL_CONTROL_CLUSTER_ID, 0x0000, "Poll Control" }, -#else -#define SILABS_PRINTCLUSTER_POLL_CONTROL_CLUSTER -#endif -#if defined(ZCL_USING_GREEN_POWER_CLUSTER_SERVER) || defined(ZCL_USING_GREEN_POWER_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_GREEN_POWER_CLUSTER { ZCL_GREEN_POWER_CLUSTER_ID, 0x0000, "Green Power" }, -#else -#define SILABS_PRINTCLUSTER_GREEN_POWER_CLUSTER -#endif -#if defined(ZCL_USING_KEEPALIVE_CLUSTER_SERVER) || defined(ZCL_USING_KEEPALIVE_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_KEEPALIVE_CLUSTER { ZCL_KEEPALIVE_CLUSTER_ID, 0x0000, "Keep-Alive" }, -#else -#define SILABS_PRINTCLUSTER_KEEPALIVE_CLUSTER -#endif -#if defined(ZCL_USING_SHADE_CONFIG_CLUSTER_SERVER) || defined(ZCL_USING_SHADE_CONFIG_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_SHADE_CONFIG_CLUSTER { ZCL_SHADE_CONFIG_CLUSTER_ID, 0x0000, "Shade Configuration" }, -#else -#define SILABS_PRINTCLUSTER_SHADE_CONFIG_CLUSTER -#endif -#if defined(ZCL_USING_DOOR_LOCK_CLUSTER_SERVER) || defined(ZCL_USING_DOOR_LOCK_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_DOOR_LOCK_CLUSTER { ZCL_DOOR_LOCK_CLUSTER_ID, 0x0000, "Door Lock" }, -#else -#define SILABS_PRINTCLUSTER_DOOR_LOCK_CLUSTER -#endif -#if defined(ZCL_USING_WINDOW_COVERING_CLUSTER_SERVER) || defined(ZCL_USING_WINDOW_COVERING_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_WINDOW_COVERING_CLUSTER { ZCL_WINDOW_COVERING_CLUSTER_ID, 0x0000, "Window Covering" }, -#else -#define SILABS_PRINTCLUSTER_WINDOW_COVERING_CLUSTER -#endif -#if defined(ZCL_USING_BARRIER_CONTROL_CLUSTER_SERVER) || defined(ZCL_USING_BARRIER_CONTROL_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_BARRIER_CONTROL_CLUSTER { ZCL_BARRIER_CONTROL_CLUSTER_ID, 0x0000, "Barrier Control" }, -#else -#define SILABS_PRINTCLUSTER_BARRIER_CONTROL_CLUSTER -#endif -#if defined(ZCL_USING_PUMP_CONFIG_CONTROL_CLUSTER_SERVER) || defined(ZCL_USING_PUMP_CONFIG_CONTROL_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_PUMP_CONFIG_CONTROL_CLUSTER \ - { ZCL_PUMP_CONFIG_CONTROL_CLUSTER_ID, 0x0000, "Pump Configuration and Control" }, -#else -#define SILABS_PRINTCLUSTER_PUMP_CONFIG_CONTROL_CLUSTER -#endif -#if defined(ZCL_USING_THERMOSTAT_CLUSTER_SERVER) || defined(ZCL_USING_THERMOSTAT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_THERMOSTAT_CLUSTER { ZCL_THERMOSTAT_CLUSTER_ID, 0x0000, "Thermostat" }, -#else -#define SILABS_PRINTCLUSTER_THERMOSTAT_CLUSTER -#endif -#if defined(ZCL_USING_FAN_CONTROL_CLUSTER_SERVER) || defined(ZCL_USING_FAN_CONTROL_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_FAN_CONTROL_CLUSTER { ZCL_FAN_CONTROL_CLUSTER_ID, 0x0000, "Fan Control" }, -#else -#define SILABS_PRINTCLUSTER_FAN_CONTROL_CLUSTER -#endif -#if defined(ZCL_USING_DEHUMID_CONTROL_CLUSTER_SERVER) || defined(ZCL_USING_DEHUMID_CONTROL_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_DEHUMID_CONTROL_CLUSTER { ZCL_DEHUMID_CONTROL_CLUSTER_ID, 0x0000, "Dehumidification Control" }, -#else -#define SILABS_PRINTCLUSTER_DEHUMID_CONTROL_CLUSTER -#endif -#if defined(ZCL_USING_THERMOSTAT_UI_CONFIG_CLUSTER_SERVER) || defined(ZCL_USING_THERMOSTAT_UI_CONFIG_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_THERMOSTAT_UI_CONFIG_CLUSTER \ - { ZCL_THERMOSTAT_UI_CONFIG_CLUSTER_ID, 0x0000, "Thermostat User Interface Configuration" }, -#else -#define SILABS_PRINTCLUSTER_THERMOSTAT_UI_CONFIG_CLUSTER -#endif -#if defined(ZCL_USING_COLOR_CONTROL_CLUSTER_SERVER) || defined(ZCL_USING_COLOR_CONTROL_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_COLOR_CONTROL_CLUSTER { ZCL_COLOR_CONTROL_CLUSTER_ID, 0x0000, "Color Control" }, -#else -#define SILABS_PRINTCLUSTER_COLOR_CONTROL_CLUSTER -#endif -#if defined(ZCL_USING_BALLAST_CONFIGURATION_CLUSTER_SERVER) || defined(ZCL_USING_BALLAST_CONFIGURATION_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_BALLAST_CONFIGURATION_CLUSTER { ZCL_BALLAST_CONFIGURATION_CLUSTER_ID, 0x0000, "Ballast Configuration" }, -#else -#define SILABS_PRINTCLUSTER_BALLAST_CONFIGURATION_CLUSTER -#endif -#if defined(ZCL_USING_ILLUM_MEASUREMENT_CLUSTER_SERVER) || defined(ZCL_USING_ILLUM_MEASUREMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_ILLUM_MEASUREMENT_CLUSTER { ZCL_ILLUM_MEASUREMENT_CLUSTER_ID, 0x0000, "Illuminance Measurement" }, -#else -#define SILABS_PRINTCLUSTER_ILLUM_MEASUREMENT_CLUSTER -#endif -#if defined(ZCL_USING_ILLUM_LEVEL_SENSING_CLUSTER_SERVER) || defined(ZCL_USING_ILLUM_LEVEL_SENSING_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_ILLUM_LEVEL_SENSING_CLUSTER { ZCL_ILLUM_LEVEL_SENSING_CLUSTER_ID, 0x0000, "Illuminance Level Sensing" }, -#else -#define SILABS_PRINTCLUSTER_ILLUM_LEVEL_SENSING_CLUSTER -#endif -#if defined(ZCL_USING_TEMP_MEASUREMENT_CLUSTER_SERVER) || defined(ZCL_USING_TEMP_MEASUREMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_TEMP_MEASUREMENT_CLUSTER { ZCL_TEMP_MEASUREMENT_CLUSTER_ID, 0x0000, "Temperature Measurement" }, -#else -#define SILABS_PRINTCLUSTER_TEMP_MEASUREMENT_CLUSTER -#endif -#if defined(ZCL_USING_PRESSURE_MEASUREMENT_CLUSTER_SERVER) || defined(ZCL_USING_PRESSURE_MEASUREMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_PRESSURE_MEASUREMENT_CLUSTER { ZCL_PRESSURE_MEASUREMENT_CLUSTER_ID, 0x0000, "Pressure Measurement" }, -#else -#define SILABS_PRINTCLUSTER_PRESSURE_MEASUREMENT_CLUSTER -#endif -#if defined(ZCL_USING_FLOW_MEASUREMENT_CLUSTER_SERVER) || defined(ZCL_USING_FLOW_MEASUREMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_FLOW_MEASUREMENT_CLUSTER { ZCL_FLOW_MEASUREMENT_CLUSTER_ID, 0x0000, "Flow Measurement" }, -#else -#define SILABS_PRINTCLUSTER_FLOW_MEASUREMENT_CLUSTER -#endif -#if defined(ZCL_USING_RELATIVE_HUMIDITY_MEASUREMENT_CLUSTER_SERVER) || \ - defined(ZCL_USING_RELATIVE_HUMIDITY_MEASUREMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_RELATIVE_HUMIDITY_MEASUREMENT_CLUSTER \ - { ZCL_RELATIVE_HUMIDITY_MEASUREMENT_CLUSTER_ID, 0x0000, "Relative Humidity Measurement" }, -#else -#define SILABS_PRINTCLUSTER_RELATIVE_HUMIDITY_MEASUREMENT_CLUSTER -#endif -#if defined(ZCL_USING_OCCUPANCY_SENSING_CLUSTER_SERVER) || defined(ZCL_USING_OCCUPANCY_SENSING_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_OCCUPANCY_SENSING_CLUSTER { ZCL_OCCUPANCY_SENSING_CLUSTER_ID, 0x0000, "Occupancy Sensing" }, -#else -#define SILABS_PRINTCLUSTER_OCCUPANCY_SENSING_CLUSTER -#endif -#if defined(ZCL_USING_CARBON_MONOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_SERVER) || \ - defined(ZCL_USING_CARBON_MONOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_CARBON_MONOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER \ - { ZCL_CARBON_MONOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 0x0000, "Carbon Monoxide Concentration Measurement" }, -#else -#define SILABS_PRINTCLUSTER_CARBON_MONOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER -#endif -#if defined(ZCL_USING_CARBON_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_SERVER) || \ - defined(ZCL_USING_CARBON_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_CARBON_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER \ - { ZCL_CARBON_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 0x0000, "Carbon Dioxide Concentration Measurement" }, -#else -#define SILABS_PRINTCLUSTER_CARBON_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER -#endif -#if defined(ZCL_USING_ETHYLENE_CONCENTRATION_MEASUREMENT_CLUSTER_SERVER) || \ - defined(ZCL_USING_ETHYLENE_CONCENTRATION_MEASUREMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_ETHYLENE_CONCENTRATION_MEASUREMENT_CLUSTER \ - { ZCL_ETHYLENE_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 0x0000, "Ethylene Concentration Measurement" }, -#else -#define SILABS_PRINTCLUSTER_ETHYLENE_CONCENTRATION_MEASUREMENT_CLUSTER -#endif -#if defined(ZCL_USING_ETHYLENE_OXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_SERVER) || \ - defined(ZCL_USING_ETHYLENE_OXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_ETHYLENE_OXIDE_CONCENTRATION_MEASUREMENT_CLUSTER \ - { ZCL_ETHYLENE_OXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 0x0000, "Ethylene Oxide Concentration Measurement" }, -#else -#define SILABS_PRINTCLUSTER_ETHYLENE_OXIDE_CONCENTRATION_MEASUREMENT_CLUSTER -#endif -#if defined(ZCL_USING_HYDROGEN_CONCENTRATION_MEASUREMENT_CLUSTER_SERVER) || \ - defined(ZCL_USING_HYDROGEN_CONCENTRATION_MEASUREMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_HYDROGEN_CONCENTRATION_MEASUREMENT_CLUSTER \ - { ZCL_HYDROGEN_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 0x0000, "Hydrogen Concentration Measurement" }, -#else -#define SILABS_PRINTCLUSTER_HYDROGEN_CONCENTRATION_MEASUREMENT_CLUSTER -#endif -#if defined(ZCL_USING_HYDROGEN_SULPHIDE_CONCENTRATION_MEASUREMENT_CLUSTER_SERVER) || \ - defined(ZCL_USING_HYDROGEN_SULPHIDE_CONCENTRATION_MEASUREMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_HYDROGEN_SULPHIDE_CONCENTRATION_MEASUREMENT_CLUSTER \ - { ZCL_HYDROGEN_SULPHIDE_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 0x0000, "Hydrogen Sulphide Concentration Measurement" }, -#else -#define SILABS_PRINTCLUSTER_HYDROGEN_SULPHIDE_CONCENTRATION_MEASUREMENT_CLUSTER -#endif -#if defined(ZCL_USING_NITRIC_OXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_SERVER) || \ - defined(ZCL_USING_NITRIC_OXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_NITRIC_OXIDE_CONCENTRATION_MEASUREMENT_CLUSTER \ - { ZCL_NITRIC_OXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 0x0000, "Nitric Oxide Concentration Measurement" }, -#else -#define SILABS_PRINTCLUSTER_NITRIC_OXIDE_CONCENTRATION_MEASUREMENT_CLUSTER -#endif -#if defined(ZCL_USING_NITROGEN_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_SERVER) || \ - defined(ZCL_USING_NITROGEN_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_NITROGEN_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER \ - { ZCL_NITROGEN_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 0x0000, "Nitrogen Dioxide Concentration Measurement" }, -#else -#define SILABS_PRINTCLUSTER_NITROGEN_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER -#endif -#if defined(ZCL_USING_OXYGEN_CONCENTRATION_MEASUREMENT_CLUSTER_SERVER) || \ - defined(ZCL_USING_OXYGEN_CONCENTRATION_MEASUREMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_OXYGEN_CONCENTRATION_MEASUREMENT_CLUSTER \ - { ZCL_OXYGEN_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 0x0000, "Oxygen Concentration Measurement" }, -#else -#define SILABS_PRINTCLUSTER_OXYGEN_CONCENTRATION_MEASUREMENT_CLUSTER -#endif -#if defined(ZCL_USING_OZONE_CONCENTRATION_MEASUREMENT_CLUSTER_SERVER) || \ - defined(ZCL_USING_OZONE_CONCENTRATION_MEASUREMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_OZONE_CONCENTRATION_MEASUREMENT_CLUSTER \ - { ZCL_OZONE_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 0x0000, "Ozone Concentration Measurement" }, -#else -#define SILABS_PRINTCLUSTER_OZONE_CONCENTRATION_MEASUREMENT_CLUSTER -#endif -#if defined(ZCL_USING_SULFUR_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_SERVER) || \ - defined(ZCL_USING_SULFUR_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_SULFUR_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER \ - { ZCL_SULFUR_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 0x0000, "Sulfur Dioxide Concentration Measurement" }, -#else -#define SILABS_PRINTCLUSTER_SULFUR_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER -#endif -#if defined(ZCL_USING_DISSOLVED_OXYGEN_CONCENTRATION_MEASUREMENT_CLUSTER_SERVER) || \ - defined(ZCL_USING_DISSOLVED_OXYGEN_CONCENTRATION_MEASUREMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_DISSOLVED_OXYGEN_CONCENTRATION_MEASUREMENT_CLUSTER \ - { ZCL_DISSOLVED_OXYGEN_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 0x0000, "Dissolved Oxygen Concentration Measurement" }, -#else -#define SILABS_PRINTCLUSTER_DISSOLVED_OXYGEN_CONCENTRATION_MEASUREMENT_CLUSTER -#endif -#if defined(ZCL_USING_BROMATE_CONCENTRATION_MEASUREMENT_CLUSTER_SERVER) || \ - defined(ZCL_USING_BROMATE_CONCENTRATION_MEASUREMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_BROMATE_CONCENTRATION_MEASUREMENT_CLUSTER \ - { ZCL_BROMATE_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 0x0000, "Bromate Concentration Measurement" }, -#else -#define SILABS_PRINTCLUSTER_BROMATE_CONCENTRATION_MEASUREMENT_CLUSTER -#endif -#if defined(ZCL_USING_CHLORAMINES_CONCENTRATION_MEASUREMENT_CLUSTER_SERVER) || \ - defined(ZCL_USING_CHLORAMINES_CONCENTRATION_MEASUREMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_CHLORAMINES_CONCENTRATION_MEASUREMENT_CLUSTER \ - { ZCL_CHLORAMINES_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 0x0000, "Chloramines Concentration Measurement" }, -#else -#define SILABS_PRINTCLUSTER_CHLORAMINES_CONCENTRATION_MEASUREMENT_CLUSTER -#endif -#if defined(ZCL_USING_CHLORINE_CONCENTRATION_MEASUREMENT_CLUSTER_SERVER) || \ - defined(ZCL_USING_CHLORINE_CONCENTRATION_MEASUREMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_CHLORINE_CONCENTRATION_MEASUREMENT_CLUSTER \ - { ZCL_CHLORINE_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 0x0000, "Chlorine Concentration Measurement" }, -#else -#define SILABS_PRINTCLUSTER_CHLORINE_CONCENTRATION_MEASUREMENT_CLUSTER -#endif -#if defined(ZCL_USING_FECAL_COLIFORM_AND_E_COLI_CONCENTRATION_MEASUREMENT_CLUSTER_SERVER) || \ - defined(ZCL_USING_FECAL_COLIFORM_AND_E_COLI_CONCENTRATION_MEASUREMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_FECAL_COLIFORM_AND_E_COLI_CONCENTRATION_MEASUREMENT_CLUSTER \ - { ZCL_FECAL_COLIFORM_AND_E_COLI_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 0x0000, \ - "Fecal coliform and E. Coli Concentration Measurement" }, -#else -#define SILABS_PRINTCLUSTER_FECAL_COLIFORM_AND_E_COLI_CONCENTRATION_MEASUREMENT_CLUSTER -#endif -#if defined(ZCL_USING_FLUORIDE_CONCENTRATION_MEASUREMENT_CLUSTER_SERVER) || \ - defined(ZCL_USING_FLUORIDE_CONCENTRATION_MEASUREMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_FLUORIDE_CONCENTRATION_MEASUREMENT_CLUSTER \ - { ZCL_FLUORIDE_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 0x0000, "Fluoride Concentration Measurement" }, -#else -#define SILABS_PRINTCLUSTER_FLUORIDE_CONCENTRATION_MEASUREMENT_CLUSTER -#endif -#if defined(ZCL_USING_HALOACETIC_ACIDS_CONCENTRATION_MEASUREMENT_CLUSTER_SERVER) || \ - defined(ZCL_USING_HALOACETIC_ACIDS_CONCENTRATION_MEASUREMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_HALOACETIC_ACIDS_CONCENTRATION_MEASUREMENT_CLUSTER \ - { ZCL_HALOACETIC_ACIDS_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 0x0000, "Haloacetic Acids Concentration Measurement" }, -#else -#define SILABS_PRINTCLUSTER_HALOACETIC_ACIDS_CONCENTRATION_MEASUREMENT_CLUSTER -#endif -#if defined(ZCL_USING_TOTAL_TRIHALOMETHANES_CONCENTRATION_MEASUREMENT_CLUSTER_SERVER) || \ - defined(ZCL_USING_TOTAL_TRIHALOMETHANES_CONCENTRATION_MEASUREMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_TOTAL_TRIHALOMETHANES_CONCENTRATION_MEASUREMENT_CLUSTER \ - { ZCL_TOTAL_TRIHALOMETHANES_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 0x0000, "Total Trihalomethanes Concentration Measurement" }, -#else -#define SILABS_PRINTCLUSTER_TOTAL_TRIHALOMETHANES_CONCENTRATION_MEASUREMENT_CLUSTER -#endif -#if defined(ZCL_USING_TOTAL_COLIFORM_BACTERIA_CONCENTRATION_MEASUREMENT_CLUSTER_SERVER) || \ - defined(ZCL_USING_TOTAL_COLIFORM_BACTERIA_CONCENTRATION_MEASUREMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_TOTAL_COLIFORM_BACTERIA_CONCENTRATION_MEASUREMENT_CLUSTER \ - { ZCL_TOTAL_COLIFORM_BACTERIA_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 0x0000, \ - "Total Coliform Bacteria Concentration Measurement" }, -#else -#define SILABS_PRINTCLUSTER_TOTAL_COLIFORM_BACTERIA_CONCENTRATION_MEASUREMENT_CLUSTER -#endif -#if defined(ZCL_USING_TURBIDITY_CONCENTRATION_MEASUREMENT_CLUSTER_SERVER) || \ - defined(ZCL_USING_TURBIDITY_CONCENTRATION_MEASUREMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_TURBIDITY_CONCENTRATION_MEASUREMENT_CLUSTER \ - { ZCL_TURBIDITY_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 0x0000, "Turbidity Concentration Measurement" }, -#else -#define SILABS_PRINTCLUSTER_TURBIDITY_CONCENTRATION_MEASUREMENT_CLUSTER -#endif -#if defined(ZCL_USING_COPPER_CONCENTRATION_MEASUREMENT_CLUSTER_SERVER) || \ - defined(ZCL_USING_COPPER_CONCENTRATION_MEASUREMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_COPPER_CONCENTRATION_MEASUREMENT_CLUSTER \ - { ZCL_COPPER_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 0x0000, "Copper Concentration Measurement" }, -#else -#define SILABS_PRINTCLUSTER_COPPER_CONCENTRATION_MEASUREMENT_CLUSTER -#endif -#if defined(ZCL_USING_LEAD_CONCENTRATION_MEASUREMENT_CLUSTER_SERVER) || \ - defined(ZCL_USING_LEAD_CONCENTRATION_MEASUREMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_LEAD_CONCENTRATION_MEASUREMENT_CLUSTER \ - { ZCL_LEAD_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 0x0000, "Lead Concentration Measurement" }, -#else -#define SILABS_PRINTCLUSTER_LEAD_CONCENTRATION_MEASUREMENT_CLUSTER -#endif -#if defined(ZCL_USING_MANGANESE_CONCENTRATION_MEASUREMENT_CLUSTER_SERVER) || \ - defined(ZCL_USING_MANGANESE_CONCENTRATION_MEASUREMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_MANGANESE_CONCENTRATION_MEASUREMENT_CLUSTER \ - { ZCL_MANGANESE_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 0x0000, "Manganese Concentration Measurement" }, -#else -#define SILABS_PRINTCLUSTER_MANGANESE_CONCENTRATION_MEASUREMENT_CLUSTER -#endif -#if defined(ZCL_USING_SULFATE_CONCENTRATION_MEASUREMENT_CLUSTER_SERVER) || \ - defined(ZCL_USING_SULFATE_CONCENTRATION_MEASUREMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_SULFATE_CONCENTRATION_MEASUREMENT_CLUSTER \ - { ZCL_SULFATE_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 0x0000, "Sulfate Concentration Measurement" }, -#else -#define SILABS_PRINTCLUSTER_SULFATE_CONCENTRATION_MEASUREMENT_CLUSTER -#endif -#if defined(ZCL_USING_BROMODICHLOROMETHANE_CONCENTRATION_MEASUREMENT_CLUSTER_SERVER) || \ - defined(ZCL_USING_BROMODICHLOROMETHANE_CONCENTRATION_MEASUREMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_BROMODICHLOROMETHANE_CONCENTRATION_MEASUREMENT_CLUSTER \ - { ZCL_BROMODICHLOROMETHANE_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 0x0000, "Bromodichloromethane Concentration Measurement" }, -#else -#define SILABS_PRINTCLUSTER_BROMODICHLOROMETHANE_CONCENTRATION_MEASUREMENT_CLUSTER -#endif -#if defined(ZCL_USING_BROMOFORM_CONCENTRATION_MEASUREMENT_CLUSTER_SERVER) || \ - defined(ZCL_USING_BROMOFORM_CONCENTRATION_MEASUREMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_BROMOFORM_CONCENTRATION_MEASUREMENT_CLUSTER \ - { ZCL_BROMOFORM_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 0x0000, "Bromoform Concentration Measurement" }, -#else -#define SILABS_PRINTCLUSTER_BROMOFORM_CONCENTRATION_MEASUREMENT_CLUSTER -#endif -#if defined(ZCL_USING_CHLORODIBROMOMETHANE_CONCENTRATION_MEASUREMENT_CLUSTER_SERVER) || \ - defined(ZCL_USING_CHLORODIBROMOMETHANE_CONCENTRATION_MEASUREMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_CHLORODIBROMOMETHANE_CONCENTRATION_MEASUREMENT_CLUSTER \ - { ZCL_CHLORODIBROMOMETHANE_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 0x0000, "Chlorodibromomethane Concentration Measurement" }, -#else -#define SILABS_PRINTCLUSTER_CHLORODIBROMOMETHANE_CONCENTRATION_MEASUREMENT_CLUSTER -#endif -#if defined(ZCL_USING_CHLOROFORM_CONCENTRATION_MEASUREMENT_CLUSTER_SERVER) || \ - defined(ZCL_USING_CHLOROFORM_CONCENTRATION_MEASUREMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_CHLOROFORM_CONCENTRATION_MEASUREMENT_CLUSTER \ - { ZCL_CHLOROFORM_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 0x0000, "Chloroform Concentration Measurement" }, -#else -#define SILABS_PRINTCLUSTER_CHLOROFORM_CONCENTRATION_MEASUREMENT_CLUSTER -#endif -#if defined(ZCL_USING_SODIUM_CONCENTRATION_MEASUREMENT_CLUSTER_SERVER) || \ - defined(ZCL_USING_SODIUM_CONCENTRATION_MEASUREMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_SODIUM_CONCENTRATION_MEASUREMENT_CLUSTER \ - { ZCL_SODIUM_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 0x0000, "Sodium Concentration Measurement" }, -#else -#define SILABS_PRINTCLUSTER_SODIUM_CONCENTRATION_MEASUREMENT_CLUSTER -#endif -#if defined(ZCL_USING_IAS_ZONE_CLUSTER_SERVER) || defined(ZCL_USING_IAS_ZONE_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_IAS_ZONE_CLUSTER { ZCL_IAS_ZONE_CLUSTER_ID, 0x0000, "IAS Zone" }, -#else -#define SILABS_PRINTCLUSTER_IAS_ZONE_CLUSTER -#endif -#if defined(ZCL_USING_IAS_ACE_CLUSTER_SERVER) || defined(ZCL_USING_IAS_ACE_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_IAS_ACE_CLUSTER { ZCL_IAS_ACE_CLUSTER_ID, 0x0000, "IAS ACE" }, -#else -#define SILABS_PRINTCLUSTER_IAS_ACE_CLUSTER -#endif -#if defined(ZCL_USING_IAS_WD_CLUSTER_SERVER) || defined(ZCL_USING_IAS_WD_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_IAS_WD_CLUSTER { ZCL_IAS_WD_CLUSTER_ID, 0x0000, "IAS WD" }, -#else -#define SILABS_PRINTCLUSTER_IAS_WD_CLUSTER -#endif -#if defined(ZCL_USING_GENERIC_TUNNEL_CLUSTER_SERVER) || defined(ZCL_USING_GENERIC_TUNNEL_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_GENERIC_TUNNEL_CLUSTER { ZCL_GENERIC_TUNNEL_CLUSTER_ID, 0x0000, "Generic Tunnel" }, -#else -#define SILABS_PRINTCLUSTER_GENERIC_TUNNEL_CLUSTER -#endif -#if defined(ZCL_USING_BACNET_PROTOCOL_TUNNEL_CLUSTER_SERVER) || defined(ZCL_USING_BACNET_PROTOCOL_TUNNEL_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_BACNET_PROTOCOL_TUNNEL_CLUSTER \ - { ZCL_BACNET_PROTOCOL_TUNNEL_CLUSTER_ID, 0x0000, "BACnet Protocol Tunnel" }, -#else -#define SILABS_PRINTCLUSTER_BACNET_PROTOCOL_TUNNEL_CLUSTER -#endif -#if defined(ZCL_USING_11073_PROTOCOL_TUNNEL_CLUSTER_SERVER) || defined(ZCL_USING_11073_PROTOCOL_TUNNEL_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_11073_PROTOCOL_TUNNEL_CLUSTER { ZCL_11073_PROTOCOL_TUNNEL_CLUSTER_ID, 0x0000, "11073 Protocol Tunnel" }, -#else -#define SILABS_PRINTCLUSTER_11073_PROTOCOL_TUNNEL_CLUSTER -#endif -#if defined(ZCL_USING_ISO7816_PROTOCOL_TUNNEL_CLUSTER_SERVER) || defined(ZCL_USING_ISO7816_PROTOCOL_TUNNEL_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_ISO7816_PROTOCOL_TUNNEL_CLUSTER \ - { ZCL_ISO7816_PROTOCOL_TUNNEL_CLUSTER_ID, 0x0000, "ISO 7816 Protocol Tunnel" }, -#else -#define SILABS_PRINTCLUSTER_ISO7816_PROTOCOL_TUNNEL_CLUSTER -#endif -#if defined(ZCL_USING_PRICE_CLUSTER_SERVER) || defined(ZCL_USING_PRICE_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_PRICE_CLUSTER { ZCL_PRICE_CLUSTER_ID, 0x0000, "Price" }, -#else -#define SILABS_PRINTCLUSTER_PRICE_CLUSTER -#endif -#if defined(ZCL_USING_DEMAND_RESPONSE_LOAD_CONTROL_CLUSTER_SERVER) || defined(ZCL_USING_DEMAND_RESPONSE_LOAD_CONTROL_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_DEMAND_RESPONSE_LOAD_CONTROL_CLUSTER \ - { ZCL_DEMAND_RESPONSE_LOAD_CONTROL_CLUSTER_ID, 0x0000, "Demand Response and Load Control" }, -#else -#define SILABS_PRINTCLUSTER_DEMAND_RESPONSE_LOAD_CONTROL_CLUSTER -#endif -#if defined(ZCL_USING_SIMPLE_METERING_CLUSTER_SERVER) || defined(ZCL_USING_SIMPLE_METERING_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_SIMPLE_METERING_CLUSTER { ZCL_SIMPLE_METERING_CLUSTER_ID, 0x0000, "Simple Metering" }, -#else -#define SILABS_PRINTCLUSTER_SIMPLE_METERING_CLUSTER -#endif -#if defined(ZCL_USING_MESSAGING_CLUSTER_SERVER) || defined(ZCL_USING_MESSAGING_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_MESSAGING_CLUSTER { ZCL_MESSAGING_CLUSTER_ID, 0x0000, "Messaging" }, -#else -#define SILABS_PRINTCLUSTER_MESSAGING_CLUSTER -#endif -#if defined(ZCL_USING_TUNNELING_CLUSTER_SERVER) || defined(ZCL_USING_TUNNELING_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_TUNNELING_CLUSTER { ZCL_TUNNELING_CLUSTER_ID, 0x0000, "Tunneling" }, -#else -#define SILABS_PRINTCLUSTER_TUNNELING_CLUSTER -#endif -#if defined(ZCL_USING_PREPAYMENT_CLUSTER_SERVER) || defined(ZCL_USING_PREPAYMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_PREPAYMENT_CLUSTER { ZCL_PREPAYMENT_CLUSTER_ID, 0x0000, "Prepayment" }, -#else -#define SILABS_PRINTCLUSTER_PREPAYMENT_CLUSTER -#endif -#if defined(ZCL_USING_ENERGY_MANAGEMENT_CLUSTER_SERVER) || defined(ZCL_USING_ENERGY_MANAGEMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_ENERGY_MANAGEMENT_CLUSTER { ZCL_ENERGY_MANAGEMENT_CLUSTER_ID, 0x0000, "Energy Management" }, -#else -#define SILABS_PRINTCLUSTER_ENERGY_MANAGEMENT_CLUSTER -#endif -#if defined(ZCL_USING_CALENDAR_CLUSTER_SERVER) || defined(ZCL_USING_CALENDAR_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_CALENDAR_CLUSTER { ZCL_CALENDAR_CLUSTER_ID, 0x0000, "Calendar" }, -#else -#define SILABS_PRINTCLUSTER_CALENDAR_CLUSTER -#endif -#if defined(ZCL_USING_DEVICE_MANAGEMENT_CLUSTER_SERVER) || defined(ZCL_USING_DEVICE_MANAGEMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_DEVICE_MANAGEMENT_CLUSTER { ZCL_DEVICE_MANAGEMENT_CLUSTER_ID, 0x0000, "Device Management" }, -#else -#define SILABS_PRINTCLUSTER_DEVICE_MANAGEMENT_CLUSTER -#endif -#if defined(ZCL_USING_EVENTS_CLUSTER_SERVER) || defined(ZCL_USING_EVENTS_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_EVENTS_CLUSTER { ZCL_EVENTS_CLUSTER_ID, 0x0000, "Events" }, -#else -#define SILABS_PRINTCLUSTER_EVENTS_CLUSTER -#endif -#if defined(ZCL_USING_MDU_PAIRING_CLUSTER_SERVER) || defined(ZCL_USING_MDU_PAIRING_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_MDU_PAIRING_CLUSTER { ZCL_MDU_PAIRING_CLUSTER_ID, 0x0000, "MDU Pairing" }, -#else -#define SILABS_PRINTCLUSTER_MDU_PAIRING_CLUSTER -#endif -#if defined(ZCL_USING_SUB_GHZ_CLUSTER_SERVER) || defined(ZCL_USING_SUB_GHZ_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_SUB_GHZ_CLUSTER { ZCL_SUB_GHZ_CLUSTER_ID, 0x0000, "Sub-GHz" }, -#else -#define SILABS_PRINTCLUSTER_SUB_GHZ_CLUSTER -#endif -#if defined(ZCL_USING_KEY_ESTABLISHMENT_CLUSTER_SERVER) || defined(ZCL_USING_KEY_ESTABLISHMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_KEY_ESTABLISHMENT_CLUSTER { ZCL_KEY_ESTABLISHMENT_CLUSTER_ID, 0x0000, "Key Establishment" }, -#else -#define SILABS_PRINTCLUSTER_KEY_ESTABLISHMENT_CLUSTER -#endif -#if defined(ZCL_USING_INFORMATION_CLUSTER_SERVER) || defined(ZCL_USING_INFORMATION_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_INFORMATION_CLUSTER { ZCL_INFORMATION_CLUSTER_ID, 0x0000, "Information" }, -#else -#define SILABS_PRINTCLUSTER_INFORMATION_CLUSTER -#endif -#if defined(ZCL_USING_DATA_SHARING_CLUSTER_SERVER) || defined(ZCL_USING_DATA_SHARING_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_DATA_SHARING_CLUSTER { ZCL_DATA_SHARING_CLUSTER_ID, 0x0000, "Data Sharing" }, -#else -#define SILABS_PRINTCLUSTER_DATA_SHARING_CLUSTER -#endif -#if defined(ZCL_USING_GAMING_CLUSTER_SERVER) || defined(ZCL_USING_GAMING_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_GAMING_CLUSTER { ZCL_GAMING_CLUSTER_ID, 0x0000, "Gaming" }, -#else -#define SILABS_PRINTCLUSTER_GAMING_CLUSTER -#endif -#if defined(ZCL_USING_DATA_RATE_CONTROL_CLUSTER_SERVER) || defined(ZCL_USING_DATA_RATE_CONTROL_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_DATA_RATE_CONTROL_CLUSTER { ZCL_DATA_RATE_CONTROL_CLUSTER_ID, 0x0000, "Data Rate Control" }, -#else -#define SILABS_PRINTCLUSTER_DATA_RATE_CONTROL_CLUSTER -#endif -#if defined(ZCL_USING_VOICE_OVER_ZIGBEE_CLUSTER_SERVER) || defined(ZCL_USING_VOICE_OVER_ZIGBEE_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_VOICE_OVER_ZIGBEE_CLUSTER { ZCL_VOICE_OVER_ZIGBEE_CLUSTER_ID, 0x0000, "Voice over ZigBee" }, -#else -#define SILABS_PRINTCLUSTER_VOICE_OVER_ZIGBEE_CLUSTER -#endif -#if defined(ZCL_USING_CHATTING_CLUSTER_SERVER) || defined(ZCL_USING_CHATTING_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_CHATTING_CLUSTER { ZCL_CHATTING_CLUSTER_ID, 0x0000, "Chatting" }, -#else -#define SILABS_PRINTCLUSTER_CHATTING_CLUSTER -#endif -#if defined(ZCL_USING_PAYMENT_CLUSTER_SERVER) || defined(ZCL_USING_PAYMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_PAYMENT_CLUSTER { ZCL_PAYMENT_CLUSTER_ID, 0x0000, "Payment" }, -#else -#define SILABS_PRINTCLUSTER_PAYMENT_CLUSTER -#endif -#if defined(ZCL_USING_BILLING_CLUSTER_SERVER) || defined(ZCL_USING_BILLING_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_BILLING_CLUSTER { ZCL_BILLING_CLUSTER_ID, 0x0000, "Billing" }, -#else -#define SILABS_PRINTCLUSTER_BILLING_CLUSTER -#endif -#if defined(ZCL_USING_APPLIANCE_IDENTIFICATION_CLUSTER_SERVER) || defined(ZCL_USING_APPLIANCE_IDENTIFICATION_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_APPLIANCE_IDENTIFICATION_CLUSTER \ - { ZCL_APPLIANCE_IDENTIFICATION_CLUSTER_ID, 0x0000, "Appliance Identification" }, -#else -#define SILABS_PRINTCLUSTER_APPLIANCE_IDENTIFICATION_CLUSTER -#endif -#if defined(ZCL_USING_METER_IDENTIFICATION_CLUSTER_SERVER) || defined(ZCL_USING_METER_IDENTIFICATION_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_METER_IDENTIFICATION_CLUSTER { ZCL_METER_IDENTIFICATION_CLUSTER_ID, 0x0000, "Meter Identification" }, -#else -#define SILABS_PRINTCLUSTER_METER_IDENTIFICATION_CLUSTER -#endif -#if defined(ZCL_USING_APPLIANCE_EVENTS_AND_ALERT_CLUSTER_SERVER) || defined(ZCL_USING_APPLIANCE_EVENTS_AND_ALERT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_APPLIANCE_EVENTS_AND_ALERT_CLUSTER \ - { ZCL_APPLIANCE_EVENTS_AND_ALERT_CLUSTER_ID, 0x0000, "Appliance Events and Alert" }, -#else -#define SILABS_PRINTCLUSTER_APPLIANCE_EVENTS_AND_ALERT_CLUSTER -#endif -#if defined(ZCL_USING_APPLIANCE_STATISTICS_CLUSTER_SERVER) || defined(ZCL_USING_APPLIANCE_STATISTICS_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_APPLIANCE_STATISTICS_CLUSTER { ZCL_APPLIANCE_STATISTICS_CLUSTER_ID, 0x0000, "Appliance Statistics" }, -#else -#define SILABS_PRINTCLUSTER_APPLIANCE_STATISTICS_CLUSTER -#endif -#if defined(ZCL_USING_ELECTRICAL_MEASUREMENT_CLUSTER_SERVER) || defined(ZCL_USING_ELECTRICAL_MEASUREMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_ELECTRICAL_MEASUREMENT_CLUSTER \ - { ZCL_ELECTRICAL_MEASUREMENT_CLUSTER_ID, 0x0000, "Electrical Measurement" }, -#else -#define SILABS_PRINTCLUSTER_ELECTRICAL_MEASUREMENT_CLUSTER -#endif -#if defined(ZCL_USING_DIAGNOSTICS_CLUSTER_SERVER) || defined(ZCL_USING_DIAGNOSTICS_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_DIAGNOSTICS_CLUSTER { ZCL_DIAGNOSTICS_CLUSTER_ID, 0x0000, "Diagnostics" }, -#else -#define SILABS_PRINTCLUSTER_DIAGNOSTICS_CLUSTER -#endif -#if defined(ZCL_USING_ZLL_COMMISSIONING_CLUSTER_SERVER) || defined(ZCL_USING_ZLL_COMMISSIONING_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_ZLL_COMMISSIONING_CLUSTER { ZCL_ZLL_COMMISSIONING_CLUSTER_ID, 0x0000, "ZLL Commissioning" }, -#else -#define SILABS_PRINTCLUSTER_ZLL_COMMISSIONING_CLUSTER -#endif -#if defined(ZCL_USING_SAMPLE_MFG_SPECIFIC_CLUSTER_SERVER) || defined(ZCL_USING_SAMPLE_MFG_SPECIFIC_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_SAMPLE_MFG_SPECIFIC_CLUSTER \ - { ZCL_SAMPLE_MFG_SPECIFIC_CLUSTER_ID, 0x1002, "Sample Mfg Specific Cluster" }, -#else -#define SILABS_PRINTCLUSTER_SAMPLE_MFG_SPECIFIC_CLUSTER -#endif -#if defined(ZCL_USING_SAMPLE_MFG_SPECIFIC_CLUSTER_2_SERVER) || defined(ZCL_USING_SAMPLE_MFG_SPECIFIC_CLUSTER_2_CLIENT) -#define SILABS_PRINTCLUSTER_SAMPLE_MFG_SPECIFIC_CLUSTER_2 \ - { ZCL_SAMPLE_MFG_SPECIFIC_CLUSTER_2_ID, 0x1049, "Sample Mfg Specific Cluster 2" }, -#else -#define SILABS_PRINTCLUSTER_SAMPLE_MFG_SPECIFIC_CLUSTER_2 -#endif -#if defined(ZCL_USING_OTA_CONFIGURATION_CLUSTER_SERVER) || defined(ZCL_USING_OTA_CONFIGURATION_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_OTA_CONFIGURATION_CLUSTER { ZCL_OTA_CONFIGURATION_CLUSTER_ID, 0x1002, "Configuration Cluster" }, -#else -#define SILABS_PRINTCLUSTER_OTA_CONFIGURATION_CLUSTER -#endif -#if defined(ZCL_USING_MFGLIB_CLUSTER_SERVER) || defined(ZCL_USING_MFGLIB_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_MFGLIB_CLUSTER { ZCL_MFGLIB_CLUSTER_ID, 0x1002, "MFGLIB Cluster" }, -#else -#define SILABS_PRINTCLUSTER_MFGLIB_CLUSTER -#endif -#if defined(ZCL_USING_SL_WWAH_CLUSTER_SERVER) || defined(ZCL_USING_SL_WWAH_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_SL_WWAH_CLUSTER { ZCL_SL_WWAH_CLUSTER_ID, 0x1217, "SL Works With All Hubs" }, -#else -#define SILABS_PRINTCLUSTER_SL_WWAH_CLUSTER -#endif -#define CLUSTER_IDS_TO_NAMES \ - SILABS_PRINTCLUSTER_BASIC_CLUSTER \ - SILABS_PRINTCLUSTER_POWER_CONFIG_CLUSTER \ - SILABS_PRINTCLUSTER_DEVICE_TEMP_CLUSTER \ - SILABS_PRINTCLUSTER_IDENTIFY_CLUSTER \ - SILABS_PRINTCLUSTER_GROUPS_CLUSTER \ - SILABS_PRINTCLUSTER_SCENES_CLUSTER \ - SILABS_PRINTCLUSTER_ON_OFF_CLUSTER \ - SILABS_PRINTCLUSTER_ON_OFF_SWITCH_CONFIG_CLUSTER \ - SILABS_PRINTCLUSTER_LEVEL_CONTROL_CLUSTER \ - SILABS_PRINTCLUSTER_ALARM_CLUSTER \ - SILABS_PRINTCLUSTER_TIME_CLUSTER \ - SILABS_PRINTCLUSTER_RSSI_LOCATION_CLUSTER \ - SILABS_PRINTCLUSTER_BINARY_INPUT_BASIC_CLUSTER \ - SILABS_PRINTCLUSTER_COMMISSIONING_CLUSTER \ - SILABS_PRINTCLUSTER_PARTITION_CLUSTER \ - SILABS_PRINTCLUSTER_OTA_BOOTLOAD_CLUSTER \ - SILABS_PRINTCLUSTER_POWER_PROFILE_CLUSTER \ - SILABS_PRINTCLUSTER_APPLIANCE_CONTROL_CLUSTER \ - SILABS_PRINTCLUSTER_POLL_CONTROL_CLUSTER \ - SILABS_PRINTCLUSTER_GREEN_POWER_CLUSTER \ - SILABS_PRINTCLUSTER_KEEPALIVE_CLUSTER \ - SILABS_PRINTCLUSTER_SHADE_CONFIG_CLUSTER \ - SILABS_PRINTCLUSTER_DOOR_LOCK_CLUSTER \ - SILABS_PRINTCLUSTER_WINDOW_COVERING_CLUSTER \ - SILABS_PRINTCLUSTER_BARRIER_CONTROL_CLUSTER \ - SILABS_PRINTCLUSTER_PUMP_CONFIG_CONTROL_CLUSTER \ - SILABS_PRINTCLUSTER_THERMOSTAT_CLUSTER \ - SILABS_PRINTCLUSTER_FAN_CONTROL_CLUSTER \ - SILABS_PRINTCLUSTER_DEHUMID_CONTROL_CLUSTER \ - SILABS_PRINTCLUSTER_THERMOSTAT_UI_CONFIG_CLUSTER \ - SILABS_PRINTCLUSTER_COLOR_CONTROL_CLUSTER \ - SILABS_PRINTCLUSTER_BALLAST_CONFIGURATION_CLUSTER \ - SILABS_PRINTCLUSTER_ILLUM_MEASUREMENT_CLUSTER \ - SILABS_PRINTCLUSTER_ILLUM_LEVEL_SENSING_CLUSTER \ - SILABS_PRINTCLUSTER_TEMP_MEASUREMENT_CLUSTER \ - SILABS_PRINTCLUSTER_PRESSURE_MEASUREMENT_CLUSTER \ - SILABS_PRINTCLUSTER_FLOW_MEASUREMENT_CLUSTER \ - SILABS_PRINTCLUSTER_RELATIVE_HUMIDITY_MEASUREMENT_CLUSTER \ - SILABS_PRINTCLUSTER_OCCUPANCY_SENSING_CLUSTER \ - SILABS_PRINTCLUSTER_CARBON_MONOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER \ - SILABS_PRINTCLUSTER_CARBON_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER \ - SILABS_PRINTCLUSTER_ETHYLENE_CONCENTRATION_MEASUREMENT_CLUSTER \ - SILABS_PRINTCLUSTER_ETHYLENE_OXIDE_CONCENTRATION_MEASUREMENT_CLUSTER \ - SILABS_PRINTCLUSTER_HYDROGEN_CONCENTRATION_MEASUREMENT_CLUSTER \ - SILABS_PRINTCLUSTER_HYDROGEN_SULPHIDE_CONCENTRATION_MEASUREMENT_CLUSTER \ - SILABS_PRINTCLUSTER_NITRIC_OXIDE_CONCENTRATION_MEASUREMENT_CLUSTER \ - SILABS_PRINTCLUSTER_NITROGEN_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER \ - SILABS_PRINTCLUSTER_OXYGEN_CONCENTRATION_MEASUREMENT_CLUSTER \ - SILABS_PRINTCLUSTER_OZONE_CONCENTRATION_MEASUREMENT_CLUSTER \ - SILABS_PRINTCLUSTER_SULFUR_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER \ - SILABS_PRINTCLUSTER_DISSOLVED_OXYGEN_CONCENTRATION_MEASUREMENT_CLUSTER \ - SILABS_PRINTCLUSTER_BROMATE_CONCENTRATION_MEASUREMENT_CLUSTER \ - SILABS_PRINTCLUSTER_CHLORAMINES_CONCENTRATION_MEASUREMENT_CLUSTER \ - SILABS_PRINTCLUSTER_CHLORINE_CONCENTRATION_MEASUREMENT_CLUSTER \ - SILABS_PRINTCLUSTER_FECAL_COLIFORM_AND_E_COLI_CONCENTRATION_MEASUREMENT_CLUSTER \ - SILABS_PRINTCLUSTER_FLUORIDE_CONCENTRATION_MEASUREMENT_CLUSTER \ - SILABS_PRINTCLUSTER_HALOACETIC_ACIDS_CONCENTRATION_MEASUREMENT_CLUSTER \ - SILABS_PRINTCLUSTER_TOTAL_TRIHALOMETHANES_CONCENTRATION_MEASUREMENT_CLUSTER \ - SILABS_PRINTCLUSTER_TOTAL_COLIFORM_BACTERIA_CONCENTRATION_MEASUREMENT_CLUSTER \ - SILABS_PRINTCLUSTER_TURBIDITY_CONCENTRATION_MEASUREMENT_CLUSTER \ - SILABS_PRINTCLUSTER_COPPER_CONCENTRATION_MEASUREMENT_CLUSTER \ - SILABS_PRINTCLUSTER_LEAD_CONCENTRATION_MEASUREMENT_CLUSTER \ - SILABS_PRINTCLUSTER_MANGANESE_CONCENTRATION_MEASUREMENT_CLUSTER \ - SILABS_PRINTCLUSTER_SULFATE_CONCENTRATION_MEASUREMENT_CLUSTER \ - SILABS_PRINTCLUSTER_BROMODICHLOROMETHANE_CONCENTRATION_MEASUREMENT_CLUSTER \ - SILABS_PRINTCLUSTER_BROMOFORM_CONCENTRATION_MEASUREMENT_CLUSTER \ - SILABS_PRINTCLUSTER_CHLORODIBROMOMETHANE_CONCENTRATION_MEASUREMENT_CLUSTER \ - SILABS_PRINTCLUSTER_CHLOROFORM_CONCENTRATION_MEASUREMENT_CLUSTER \ - SILABS_PRINTCLUSTER_SODIUM_CONCENTRATION_MEASUREMENT_CLUSTER \ - SILABS_PRINTCLUSTER_IAS_ZONE_CLUSTER \ - SILABS_PRINTCLUSTER_IAS_ACE_CLUSTER \ - SILABS_PRINTCLUSTER_IAS_WD_CLUSTER \ - SILABS_PRINTCLUSTER_GENERIC_TUNNEL_CLUSTER \ - SILABS_PRINTCLUSTER_BACNET_PROTOCOL_TUNNEL_CLUSTER \ - SILABS_PRINTCLUSTER_11073_PROTOCOL_TUNNEL_CLUSTER \ - SILABS_PRINTCLUSTER_ISO7816_PROTOCOL_TUNNEL_CLUSTER \ - SILABS_PRINTCLUSTER_PRICE_CLUSTER \ - SILABS_PRINTCLUSTER_DEMAND_RESPONSE_LOAD_CONTROL_CLUSTER \ - SILABS_PRINTCLUSTER_SIMPLE_METERING_CLUSTER \ - SILABS_PRINTCLUSTER_MESSAGING_CLUSTER \ - SILABS_PRINTCLUSTER_TUNNELING_CLUSTER \ - SILABS_PRINTCLUSTER_PREPAYMENT_CLUSTER \ - SILABS_PRINTCLUSTER_ENERGY_MANAGEMENT_CLUSTER \ - SILABS_PRINTCLUSTER_CALENDAR_CLUSTER \ - SILABS_PRINTCLUSTER_DEVICE_MANAGEMENT_CLUSTER \ - SILABS_PRINTCLUSTER_EVENTS_CLUSTER \ - SILABS_PRINTCLUSTER_MDU_PAIRING_CLUSTER \ - SILABS_PRINTCLUSTER_SUB_GHZ_CLUSTER \ - SILABS_PRINTCLUSTER_KEY_ESTABLISHMENT_CLUSTER \ - SILABS_PRINTCLUSTER_INFORMATION_CLUSTER \ - SILABS_PRINTCLUSTER_DATA_SHARING_CLUSTER \ - SILABS_PRINTCLUSTER_GAMING_CLUSTER \ - SILABS_PRINTCLUSTER_DATA_RATE_CONTROL_CLUSTER \ - SILABS_PRINTCLUSTER_VOICE_OVER_ZIGBEE_CLUSTER \ - SILABS_PRINTCLUSTER_CHATTING_CLUSTER \ - SILABS_PRINTCLUSTER_PAYMENT_CLUSTER \ - SILABS_PRINTCLUSTER_BILLING_CLUSTER \ - SILABS_PRINTCLUSTER_APPLIANCE_IDENTIFICATION_CLUSTER \ - SILABS_PRINTCLUSTER_METER_IDENTIFICATION_CLUSTER \ - SILABS_PRINTCLUSTER_APPLIANCE_EVENTS_AND_ALERT_CLUSTER \ - SILABS_PRINTCLUSTER_APPLIANCE_STATISTICS_CLUSTER \ - SILABS_PRINTCLUSTER_ELECTRICAL_MEASUREMENT_CLUSTER \ - SILABS_PRINTCLUSTER_DIAGNOSTICS_CLUSTER \ - SILABS_PRINTCLUSTER_ZLL_COMMISSIONING_CLUSTER \ - SILABS_PRINTCLUSTER_SAMPLE_MFG_SPECIFIC_CLUSTER \ - SILABS_PRINTCLUSTER_SAMPLE_MFG_SPECIFIC_CLUSTER_2 \ - SILABS_PRINTCLUSTER_OTA_CONFIGURATION_CLUSTER \ - SILABS_PRINTCLUSTER_MFGLIB_CLUSTER \ - SILABS_PRINTCLUSTER_SL_WWAH_CLUSTER - -#define MAX_CLUSTER_NAME_LENGTH 52 -#endif // SILABS_PRINT_CLUSTER diff --git a/examples/lock-app/k32w/main/ZclCallbacks.cpp b/examples/lock-app/k32w/main/ZclCallbacks.cpp index 5363332dccdfc9..901f6211470642 100644 --- a/examples/lock-app/k32w/main/ZclCallbacks.cpp +++ b/examples/lock-app/k32w/main/ZclCallbacks.cpp @@ -27,8 +27,7 @@ using namespace ::chip; -extern "C" { -void emberAfPostAttributeChangeCallback(uint8_t endpoint, EmberAfClusterId clusterId, EmberAfAttributeId attributeId, uint8_t mask, +void emberAfPostAttributeChangeCallback(EndpointId endpoint, ClusterId clusterId, AttributeId attributeId, uint8_t mask, uint16_t manufacturerCode, uint8_t type, uint8_t size, uint8_t * value) { if (clusterId != ZCL_ON_OFF_CLUSTER_ID) @@ -46,16 +45,22 @@ void emberAfPostAttributeChangeCallback(uint8_t endpoint, EmberAfClusterId clust BoltLockMgr().InitiateAction(0, *value ? BoltLockManager::LOCK_ACTION : BoltLockManager::UNLOCK_ACTION); } -/** @brief On/off Cluster Server Post Init +/** @brief OnOff Cluster Init * - * Following resolution of the On/Off state at startup for this endpoint, - * perform any additional initialization needed; e.g., synchronize hardware - * state. + * This function is called when a specific cluster is initialized. It gives the + * application an opportunity to take care of cluster initialization procedures. + * It is called exactly once for each endpoint where cluster is present. + * + * @param endpoint Ver.: always + * + * TODO Issue #3841 + * emberAfOnOffClusterInitCallback happens before the stack initialize the cluster + * attributes to the default value. + * The logic here expects something similar to the deprecated Plugins callback + * emberAfPluginOnOffClusterServerPostInitCallback. * - * @param endpoint Endpoint that is being initialized Ver.: always */ -void emberAfPluginOnOffClusterServerPostInitCallback(uint8_t endpoint) +void emberAfOnOffClusterInitCallback(EndpointId endpoint) { - // TODO: implement any additional On/off Cluster Server post init actions -} + // TODO: implement any additional Cluster Server init actions } diff --git a/examples/lock-app/lock-common/BUILD.gn b/examples/lock-app/lock-common/BUILD.gn index 55ef1f3228dba6..4fcf200f154619 100644 --- a/examples/lock-app/lock-common/BUILD.gn +++ b/examples/lock-app/lock-common/BUILD.gn @@ -26,6 +26,8 @@ source_set("lock-common") { sources = [ "${chip_root}/examples/common/chip-app-server/DataModelHandler.cpp", "${chip_root}/src/app/clusters/on-off-server/on-off.cpp", + "${chip_root}/src/app/reporting/reporting-default-configuration.cpp", + "${chip_root}/src/app/reporting/reporting.cpp", "${chip_root}/src/app/util/af-event.cpp", "${chip_root}/src/app/util/af-main-common.cpp", "${chip_root}/src/app/util/attribute-size.cpp", @@ -39,8 +41,8 @@ source_set("lock-common") { "${chip_root}/src/app/util/process-cluster-message.cpp", "${chip_root}/src/app/util/process-global-message.cpp", "${chip_root}/src/app/util/util.cpp", - "gen/call-command-handler.c", - "gen/callback-stub.c", + "gen/call-command-handler.cpp", + "gen/callback-stub.cpp", ] deps = [ diff --git a/examples/lock-app/lock-common/gen/af-structs.h b/examples/lock-app/lock-common/gen/af-structs.h index 8009281c7692c6..6d04f3faa8e82d 100644 --- a/examples/lock-app/lock-common/gen/af-structs.h +++ b/examples/lock-app/lock-common/gen/af-structs.h @@ -1,4 +1,5 @@ -/** + +/* * * Copyright (c) 2020 Project CHIP Authors * @@ -15,236 +16,195 @@ * 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. -// -// +// Prevent multiple inclusion +#pragma once -// Enclosing macro to prevent multiple inclusion -#ifndef SILABS_EMBER_AF_STRUCTS -#define SILABS_EMBER_AF_STRUCTS +#include "basic-types.h" +#include "enums.h" +#include -// Generated structs from the metadata -// Struct for IasAceZoneStatusResult -typedef struct _IasAceZoneStatusResult +// Struct for BlockThreshold +typedef struct _BlockThreshold { - uint8_t zoneId; - uint16_t zoneStatus; -} IasAceZoneStatusResult; + uint8_t blockThreshold; + uint8_t priceControl; + uint32_t blockPeriodStartTime; + uint32_t blockPeriodDurationMinutes; + uint8_t fuelType; + uint32_t standingCharge; +} EmberAfBlockThreshold; -// Struct for ReadAttributeStatusRecord -typedef struct _ReadAttributeStatusRecord +// Struct for BlockThresholdSubPayload +typedef struct _BlockThresholdSubPayload { - uint16_t attributeId; - uint8_t status; - uint8_t attributeType; - uint8_t * attributeLocation; -} ReadAttributeStatusRecord; + uint8_t tierNumberOfBlockThresholds; + uint8_t * blockThreshold; +} EmberAfBlockThresholdSubPayload; -// Struct for WriteAttributeRecord -typedef struct _WriteAttributeRecord +// Struct for ChatParticipant +typedef struct _ChatParticipant { - uint16_t attributeId; - uint8_t attributeType; - uint8_t * attributeLocation; -} WriteAttributeRecord; + uint16_t uid; + uint8_t * nickname; +} EmberAfChatParticipant; -// Struct for WriteAttributeStatusRecord -typedef struct _WriteAttributeStatusRecord +// Struct for ChatRoom +typedef struct _ChatRoom { - uint8_t status; - uint16_t attributeId; -} WriteAttributeStatusRecord; + uint16_t cid; + uint8_t * name; +} EmberAfChatRoom; // Struct for ConfigureReportingRecord typedef struct _ConfigureReportingRecord { uint8_t direction; - uint16_t attributeId; + chip::AttributeId attributeId; uint8_t attributeType; uint16_t minimumReportingInterval; uint16_t maximumReportingInterval; uint8_t * reportableChangeLocation; uint16_t timeoutPeriod; -} ConfigureReportingRecord; +} EmberAfConfigureReportingRecord; // Struct for ConfigureReportingStatusRecord typedef struct _ConfigureReportingStatusRecord { uint8_t status; uint8_t direction; - uint16_t attributeId; -} ConfigureReportingStatusRecord; - -// Struct for ReadReportingConfigurationRecord -typedef struct _ReadReportingConfigurationRecord -{ - uint8_t status; - uint8_t direction; - uint16_t attributeId; - uint8_t attributeType; - uint16_t minimumReportingInterval; - uint16_t maximumReportingInterval; - uint8_t * reportableChangeLocation; - uint16_t timeoutPeriod; -} ReadReportingConfigurationRecord; + chip::AttributeId attributeId; +} EmberAfConfigureReportingStatusRecord; -// Struct for ReadReportingConfigurationAttributeRecord -typedef struct _ReadReportingConfigurationAttributeRecord +// Struct for DebtPayload +typedef struct _DebtPayload { - uint8_t direction; - uint16_t attributeId; -} ReadReportingConfigurationAttributeRecord; + uint32_t collectionTime; + uint32_t amountCollected; + uint8_t debtType; + uint32_t outstandingDebt; +} EmberAfDebtPayload; -// Struct for ReportAttributeRecord -typedef struct _ReportAttributeRecord +// Struct for DeviceInformationRecord +typedef struct _DeviceInformationRecord { - uint16_t attributeId; - uint8_t attributeType; - uint8_t * attributeLocation; -} ReportAttributeRecord; + uint64_t ieeeAddress; + chip::EndpointId endpointId; + uint16_t profileId; + uint16_t deviceId; + uint8_t version; + uint8_t groupIdCount; + uint8_t sort; +} EmberAfDeviceInformationRecord; // Struct for DiscoverAttributesInfoRecord typedef struct _DiscoverAttributesInfoRecord { - uint16_t attributeId; + chip::AttributeId attributeId; uint8_t attributeType; -} DiscoverAttributesInfoRecord; +} EmberAfDiscoverAttributesInfoRecord; -// Struct for ExtendedDiscoverAttributesInfoRecord -typedef struct _ExtendedDiscoverAttributesInfoRecord +// Struct for EndpointInformationRecord +typedef struct _EndpointInformationRecord { - uint16_t attributeId; - uint8_t attributeType; - uint8_t attributeAccessControl; -} ExtendedDiscoverAttributesInfoRecord; + uint16_t networkAddress; + chip::EndpointId endpointId; + uint16_t profileId; + uint16_t deviceId; + uint8_t version; +} EmberAfEndpointInformationRecord; -// Struct for ReadStructuredAttributeRecord -typedef struct _ReadStructuredAttributeRecord -{ - uint16_t attributeId; - uint8_t indicator; - uint16_t indicies; -} ReadStructuredAttributeRecord; +// Void typedef for EmberAfEphemeralData which is empty. +// this will result in all the references to the data being as uint8_t* +typedef uint8_t EmberAfEphemeralData; -// Struct for WriteStructuredAttributeRecord -typedef struct _WriteStructuredAttributeRecord +// Struct for EventConfigurationPayload +typedef struct _EventConfigurationPayload { - uint16_t attributeId; - uint8_t indicator; - uint16_t indicies; - uint8_t attributeType; - uint8_t * attributeLocation; -} WriteStructuredAttributeRecord; + uint16_t eventId; + uint8_t eventConfiguration; +} EmberAfEventConfigurationPayload; -// Struct for WriteStructuredAttributeStatusRecord -typedef struct _WriteStructuredAttributeStatusRecord +// Struct for EventLogPayload +typedef struct _EventLogPayload { - uint8_t status; - uint16_t attributeId; - uint8_t indicator; - uint16_t indicies; -} WriteStructuredAttributeStatusRecord; + uint8_t logId; + uint16_t eventId; + uint32_t eventTime; + uint8_t * eventData; +} EmberAfEventLogPayload; -// Struct for SceneExtensionAttributeInfo -typedef struct _SceneExtensionAttributeInfo +// Struct for ExtendedDiscoverAttributesInfoRecord +typedef struct _ExtendedDiscoverAttributesInfoRecord { + chip::AttributeId attributeId; uint8_t attributeType; - uint8_t * attributeLocation; -} SceneExtensionAttributeInfo; + uint8_t attributeAccessControl; +} EmberAfExtendedDiscoverAttributesInfoRecord; -// Struct for SceneExtensionFieldSet -typedef struct _SceneExtensionFieldSet +// Struct for GpPairingConfigurationGroupList +typedef struct _GpPairingConfigurationGroupList { - uint16_t clusterId; - uint8_t length; - uint8_t value; -} SceneExtensionFieldSet; + uint16_t SinkGroup; + uint16_t Alias; +} EmberAfGpPairingConfigurationGroupList; -// Struct for BlockThreshold -typedef struct _BlockThreshold +// Struct for GpTranslationTableUpdateTranslation +typedef struct _GpTranslationTableUpdateTranslation { - uint8_t blockThreshold; - uint8_t priceControl; - uint32_t blockPeriodStartTime; - uint32_t blockPeriodDurationMinutes; - uint8_t fuelType; - uint32_t standingCharge; -} BlockThreshold; + uint8_t index; + uint8_t gpdCommandId; + chip::EndpointId endpoint; + uint16_t profile; + uint16_t cluster; + uint8_t zigbeeCommandId; + uint8_t * zigbeeCommandPayload; + uint8_t * additionalInfoBlock; +} EmberAfGpTranslationTableUpdateTranslation; -// Struct for Notification -typedef struct _Notification +// Struct for GroupInformationRecord +typedef struct _GroupInformationRecord { - uint16_t contentId; - uint8_t statusFeedback; -} Notification; + chip::GroupId groupId; + uint8_t groupType; +} EmberAfGroupInformationRecord; + +// Struct for IasAceZoneStatusResult +typedef struct _IasAceZoneStatusResult +{ + uint8_t zoneId; + uint16_t zoneStatus; +} EmberAfIasAceZoneStatusResult; + +// Void typedef for EmberAfIdentity which is empty. +// this will result in all the references to the data being as uint8_t* +typedef uint8_t EmberAfIdentity; // Struct for NeighborInfo typedef struct _NeighborInfo { - uint8_t * neighbor; + uint64_t neighbor; int16_t x; int16_t y; int16_t z; int8_t rssi; uint8_t numberRssiMeasurements; -} NeighborInfo; - -// Struct for ChatParticipant -typedef struct _ChatParticipant -{ - uint16_t uid; - uint8_t * nickname; -} ChatParticipant; - -// Struct for ChatRoom -typedef struct _ChatRoom -{ - uint16_t cid; - uint8_t * name; -} ChatRoom; +} EmberAfNeighborInfo; // Struct for NodeInformation typedef struct _NodeInformation { uint16_t uid; uint16_t address; - uint8_t endpoint; + chip::EndpointId endpoint; uint8_t * nickname; -} NodeInformation; - -// Struct for ScheduledPhase -typedef struct _ScheduledPhase -{ - uint8_t energyPhaseId; - uint16_t scheduledTime; -} ScheduledPhase; +} EmberAfNodeInformation; -// Struct for TransferredPhase -typedef struct _TransferredPhase +// Struct for Notification +typedef struct _Notification { - uint8_t energyPhaseId; - uint8_t macroPhaseId; - uint16_t expectedDuration; - uint16_t peakPower; - uint16_t energy; - uint16_t maxActivationDelay; -} TransferredPhase; + uint16_t contentId; + uint8_t statusFeedback; +} EmberAfNotification; // Struct for PowerProfileRecord typedef struct _PowerProfileRecord @@ -253,192 +213,215 @@ typedef struct _PowerProfileRecord uint8_t energyPhaseId; uint8_t powerProfileRemoteControl; uint8_t powerProfileState; -} PowerProfileRecord; +} EmberAfPowerProfileRecord; // Struct for PriceMatrixSubPayload typedef struct _PriceMatrixSubPayload { uint8_t tierBlockId; uint32_t price; -} PriceMatrixSubPayload; +} EmberAfPriceMatrixSubPayload; -// Struct for BlockThresholdSubPayload -typedef struct _BlockThresholdSubPayload +// Struct for Protocol +typedef struct _Protocol { - uint8_t tierNumberOfBlockThresholds; - uint8_t * blockThreshold; -} BlockThresholdSubPayload; + uint16_t manufacturerCode; + uint8_t protocolId; +} EmberAfProtocol; -// Struct for TierLabelsPayload -typedef struct _TierLabelsPayload +// Struct for ReadAttributeStatusRecord +typedef struct _ReadAttributeStatusRecord { - uint8_t tierId; - uint8_t * tierLabel; -} TierLabelsPayload; + chip::AttributeId attributeId; + uint8_t status; + uint8_t attributeType; + uint8_t * attributeLocation; +} EmberAfReadAttributeStatusRecord; -// Void typedef for Signature which is empty. -// this will result in all the references to the data being as uint8_t* -typedef uint8_t Signature; +// Struct for ReadReportingConfigurationAttributeRecord +typedef struct _ReadReportingConfigurationAttributeRecord +{ + uint8_t direction; + chip::AttributeId attributeId; +} EmberAfReadReportingConfigurationAttributeRecord; -// Struct for SnapshotResponsePayload -typedef struct _SnapshotResponsePayload +// Struct for ReadReportingConfigurationRecord +typedef struct _ReadReportingConfigurationRecord { - uint8_t snapshotScheduleId; - uint8_t snapshotScheduleConfirmation; -} SnapshotResponsePayload; + uint8_t status; + uint8_t direction; + chip::AttributeId attributeId; + uint8_t attributeType; + uint16_t minimumReportingInterval; + uint16_t maximumReportingInterval; + uint8_t * reportableChangeLocation; + uint16_t timeoutPeriod; +} EmberAfReadReportingConfigurationRecord; -// Struct for SnapshotSchedulePayload -typedef struct _SnapshotSchedulePayload +// Struct for ReadStructuredAttributeRecord +typedef struct _ReadStructuredAttributeRecord { - uint8_t snapshotScheduleId; - uint32_t snapshotStartTime; - uint32_t snapshotSchedule; - uint8_t snapshotPayloadType; - uint32_t snapshotCause; -} SnapshotSchedulePayload; + chip::AttributeId attributeId; + uint8_t indicator; + uint16_t indicies; +} EmberAfReadStructuredAttributeRecord; -// Struct for Protocol -typedef struct _Protocol +// Struct for ReportAttributeRecord +typedef struct _ReportAttributeRecord { - uint16_t manufacturerCode; - uint8_t protocolId; -} Protocol; + chip::AttributeId attributeId; + uint8_t attributeType; + uint8_t * attributeLocation; +} EmberAfReportAttributeRecord; -// Struct for TopUpPayload -typedef struct _TopUpPayload +// Struct for SceneExtensionAttributeInfo +typedef struct _SceneExtensionAttributeInfo { - uint8_t * topUpCode; - int32_t topUpAmount; - uint32_t topUpTime; -} TopUpPayload; + uint8_t attributeType; + uint8_t * attributeLocation; +} EmberAfSceneExtensionAttributeInfo; -// Struct for DebtPayload -typedef struct _DebtPayload +// Struct for SceneExtensionFieldSet +typedef struct _SceneExtensionFieldSet { - uint32_t collectionTime; - uint32_t amountCollected; - uint8_t debtType; - uint32_t outstandingDebt; -} DebtPayload; + chip::ClusterId clusterId; + uint8_t length; + uint8_t value; +} EmberAfSceneExtensionFieldSet; // Struct for ScheduleEntry typedef struct _ScheduleEntry { uint16_t startTime; uint8_t activePriceTierOrFriendlyCreditEnable; -} ScheduleEntry; +} EmberAfScheduleEntry; -// Struct for ScheduleEntryRateSwitchTimes -typedef struct _ScheduleEntryRateSwitchTimes +// Struct for ScheduleEntryAuxilliaryLoadSwitchTimes +typedef struct _ScheduleEntryAuxilliaryLoadSwitchTimes { uint16_t startTime; - uint8_t priceTier; -} ScheduleEntryRateSwitchTimes; + uint8_t auxiliaryLoadSwitchState; +} EmberAfScheduleEntryAuxilliaryLoadSwitchTimes; // Struct for ScheduleEntryFriendlyCreditSwitchTimes typedef struct _ScheduleEntryFriendlyCreditSwitchTimes { uint16_t startTime; uint8_t friendlyCreditEnable; -} ScheduleEntryFriendlyCreditSwitchTimes; +} EmberAfScheduleEntryFriendlyCreditSwitchTimes; -// Struct for ScheduleEntryAuxilliaryLoadSwitchTimes -typedef struct _ScheduleEntryAuxilliaryLoadSwitchTimes +// Struct for ScheduleEntryRateSwitchTimes +typedef struct _ScheduleEntryRateSwitchTimes { uint16_t startTime; - uint8_t auxiliaryLoadSwitchState; -} ScheduleEntryAuxilliaryLoadSwitchTimes; + uint8_t priceTier; +} EmberAfScheduleEntryRateSwitchTimes; + +// Struct for ScheduledPhase +typedef struct _ScheduledPhase +{ + uint8_t energyPhaseId; + uint16_t scheduledTime; +} EmberAfScheduledPhase; // Struct for SeasonEntry typedef struct _SeasonEntry { uint32_t seasonStartDate; uint8_t weekIdRef; -} SeasonEntry; +} EmberAfSeasonEntry; + +// Void typedef for EmberAfSignature which is empty. +// this will result in all the references to the data being as uint8_t* +typedef uint8_t EmberAfSignature; + +// Void typedef for EmberAfSmac which is empty. +// this will result in all the references to the data being as uint8_t* +typedef uint8_t EmberAfSmac; + +// Struct for SnapshotResponsePayload +typedef struct _SnapshotResponsePayload +{ + uint8_t snapshotScheduleId; + uint8_t snapshotScheduleConfirmation; +} EmberAfSnapshotResponsePayload; + +// Struct for SnapshotSchedulePayload +typedef struct _SnapshotSchedulePayload +{ + uint8_t snapshotScheduleId; + uint32_t snapshotStartTime; + uint32_t snapshotSchedule; + uint8_t snapshotPayloadType; + uint32_t snapshotCause; +} EmberAfSnapshotSchedulePayload; // Struct for SpecialDay typedef struct _SpecialDay { uint32_t specialDayDate; uint8_t dayIdRef; -} SpecialDay; +} EmberAfSpecialDay; -// Struct for EventConfigurationPayload -typedef struct _EventConfigurationPayload +// Struct for TierLabelsPayload +typedef struct _TierLabelsPayload { - uint16_t eventId; - uint8_t eventConfiguration; -} EventConfigurationPayload; + uint8_t tierId; + uint8_t * tierLabel; +} EmberAfTierLabelsPayload; -// Struct for EventLogPayload -typedef struct _EventLogPayload +// Struct for TopUpPayload +typedef struct _TopUpPayload { - uint8_t logId; - uint16_t eventId; - uint32_t eventTime; - uint8_t * eventData; -} EventLogPayload; - -// Void typedef for Identity which is empty. -// this will result in all the references to the data being as uint8_t* -typedef uint8_t Identity; - -// Void typedef for EphemeralData which is empty. -// this will result in all the references to the data being as uint8_t* -typedef uint8_t EphemeralData; - -// Void typedef for Smac which is empty. -// this will result in all the references to the data being as uint8_t* -typedef uint8_t Smac; + uint8_t * topUpCode; + int32_t topUpAmount; + uint32_t topUpTime; +} EmberAfTopUpPayload; -// Struct for DeviceInformationRecord -typedef struct _DeviceInformationRecord +// Struct for TransferredPhase +typedef struct _TransferredPhase { - uint8_t * ieeeAddress; - uint8_t endpointId; - uint16_t profileId; - uint16_t deviceId; - uint8_t version; - uint8_t groupIdCount; - uint8_t sort; -} DeviceInformationRecord; + uint8_t energyPhaseId; + uint8_t macroPhaseId; + uint16_t expectedDuration; + uint16_t peakPower; + uint16_t energy; + uint16_t maxActivationDelay; +} EmberAfTransferredPhase; -// Struct for GroupInformationRecord -typedef struct _GroupInformationRecord +// Struct for WriteAttributeRecord +typedef struct _WriteAttributeRecord { - uint16_t groupId; - uint8_t groupType; -} GroupInformationRecord; + chip::AttributeId attributeId; + uint8_t attributeType; + uint8_t * attributeLocation; +} EmberAfWriteAttributeRecord; -// Struct for EndpointInformationRecord -typedef struct _EndpointInformationRecord +// Struct for WriteAttributeStatusRecord +typedef struct _WriteAttributeStatusRecord { - uint16_t networkAddress; - uint8_t endpointId; - uint16_t profileId; - uint16_t deviceId; - uint8_t version; -} EndpointInformationRecord; + uint8_t status; + chip::AttributeId attributeId; +} EmberAfWriteAttributeStatusRecord; -// Struct for GpTranslationTableUpdateTranslation -typedef struct _GpTranslationTableUpdateTranslation +// Struct for WriteStructuredAttributeRecord +typedef struct _WriteStructuredAttributeRecord { - uint8_t index; - uint8_t gpdCommandId; - uint8_t endpoint; - uint16_t profile; - uint16_t cluster; - uint8_t zigbeeCommandId; - uint8_t * zigbeeCommandPayload; - uint8_t * additionalInfoBlock; -} GpTranslationTableUpdateTranslation; + chip::AttributeId attributeId; + uint8_t indicator; + uint16_t indicies; + uint8_t attributeType; + uint8_t * attributeLocation; +} EmberAfWriteStructuredAttributeRecord; -// Struct for GpPairingConfigurationGroupList -typedef struct _GpPairingConfigurationGroupList +// Struct for WriteStructuredAttributeStatusRecord +typedef struct _WriteStructuredAttributeStatusRecord { - uint16_t SinkGroup; - uint16_t Alias; -} GpPairingConfigurationGroupList; + uint8_t status; + chip::AttributeId attributeId; + uint8_t indicator; + uint16_t indicies; +} EmberAfWriteStructuredAttributeStatusRecord; // Struct for WwahBeaconSurvey typedef struct _WwahBeaconSurvey @@ -446,13 +429,11 @@ typedef struct _WwahBeaconSurvey uint16_t deviceShort; uint8_t rssi; uint8_t classificationMask; -} WwahBeaconSurvey; +} EmberAfWwahBeaconSurvey; // Struct for WwahClusterStatusToUseTC typedef struct _WwahClusterStatusToUseTC { - uint16_t clusterId; + chip::ClusterId clusterId; uint8_t status; -} WwahClusterStatusToUseTC; - -#endif // SILABS_EMBER_AF_STRUCTS +} EmberAfWwahClusterStatusToUseTC; diff --git a/examples/lock-app/lock-common/gen/att-storage.h b/examples/lock-app/lock-common/gen/att-storage.h index 40a1a0088b4872..7572c8cbc338fb 100644 --- a/examples/lock-app/lock-common/gen/att-storage.h +++ b/examples/lock-app/lock-common/gen/att-storage.h @@ -1,23 +1,7 @@ -/** - * - * 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 + * 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. @@ -31,15 +15,12 @@ * 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 SILABS_ATTRIBUTE_STORAGE_GEN -#define SILABS_ATTRIBUTE_STORAGE_GEN +// Prevent multiple inclusion +#pragma once // Attribute masks modify how attributes are used by the framework +// // Attribute that has this mask is NOT read-only #define ATTRIBUTE_MASK_WRITABLE (0x01) // Attribute that has this mask is saved to a token @@ -56,6 +37,7 @@ #define ATTRIBUTE_MASK_CLIENT (0x40) // Cluster masks modify how clusters are used by the framework +// // Does this cluster have init function? #define CLUSTER_MASK_INIT_FUNCTION (0x01) // Does this cluster have attribute changed function? @@ -64,7 +46,7 @@ #define CLUSTER_MASK_DEFAULT_RESPONSE_FUNCTION (0x04) // Does this cluster have message sent function? #define CLUSTER_MASK_MESSAGE_SENT_FUNCTION (0x08) -// Does this cluster have manufacturer specific attribute changed funciton? +// Does this cluster have manufacturer specific attribute changed function? #define CLUSTER_MASK_MANUFACTURER_SPECIFIC_ATTRIBUTE_CHANGED_FUNCTION (0x10) // Does this cluster have pre-attribute changed function? #define CLUSTER_MASK_PRE_ATTRIBUTE_CHANGED_FUNCTION (0x20) @@ -74,6 +56,7 @@ #define CLUSTER_MASK_CLIENT (0x80) // Command masks modify meanings of commands +// // Is sending of this client command supported #define COMMAND_MASK_OUTGOING_CLIENT (0x01) // Is sending of this server command supported @@ -84,4 +67,3 @@ #define COMMAND_MASK_INCOMING_SERVER (0x08) // Is this command manufacturer specific? #define COMMAND_MASK_MANUFACTURER_SPECIFIC (0x10) -#endif // SILABS_ATTRIBUTE_STORAGE_GEN diff --git a/examples/lock-app/lock-common/gen/attribute-id.h b/examples/lock-app/lock-common/gen/attribute-id.h index 442f72e97e2232..648809ca67cd83 100644 --- a/examples/lock-app/lock-common/gen/attribute-id.h +++ b/examples/lock-app/lock-common/gen/attribute-id.h @@ -1,23 +1,7 @@ -/** - * - * 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 + * 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. @@ -31,4756 +15,4530 @@ * 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 SILABS_EMBER_AF_ATTRIBUTE_ID -#define SILABS_EMBER_AF_ATTRIBUTE_ID +// Prevent multiple inclusion +#pragma once -// Attribute types for cluster: Basic -// Cluster specification level: zcl-7.0-07-5123-07 +// Attribute ids for cluster: Basic // Client attributes -#define ZCL_BASIC_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_BASIC_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_VERSION_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_APPLICATION_VERSION_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_STACK_VERSION_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_HW_VERSION_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_MANUFACTURER_NAME_ATTRIBUTE_ID 0x0004 // Ver.: always -#define ZCL_MODEL_IDENTIFIER_ATTRIBUTE_ID 0x0005 // Ver.: always -#define ZCL_DATE_CODE_ATTRIBUTE_ID 0x0006 // Ver.: always -#define ZCL_POWER_SOURCE_ATTRIBUTE_ID 0x0007 // Ver.: always -#define ZCL_GENERIC_DEVICE_CLASS_ATTRIBUTE_ID 0x0008 // Ver.: since l&o-1.0-15-0014-04 -#define ZCL_GENERIC_DEVICE_TYPE_ATTRIBUTE_ID 0x0009 // Ver.: since l&o-1.0-15-0014-04 -#define ZCL_PRODUCT_CODE_ATTRIBUTE_ID 0x000A // Ver.: since l&o-1.0-15-0014-04 -#define ZCL_PRODUCT_URL_ATTRIBUTE_ID 0x000B // Ver.: since l&o-1.0-15-0014-04 -#define ZCL_LOCATION_DESCRIPTION_ATTRIBUTE_ID 0x0010 // Ver.: always -#define ZCL_PHYSICAL_ENVIRONMENT_ATTRIBUTE_ID 0x0011 // Ver.: always -#define ZCL_DEVICE_ENABLED_ATTRIBUTE_ID 0x0012 // Ver.: always -#define ZCL_ALARM_MASK_ATTRIBUTE_ID 0x0013 // Ver.: always -#define ZCL_DISABLE_LOCAL_CONFIG_ATTRIBUTE_ID 0x0014 // Ver.: always -#define ZCL_CURRENT_LOCALE_ATTRIBUTE_ID 0x0015 // Ver.: always -#define ZCL_SW_BUILD_ID_ATTRIBUTE_ID 0x4000 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_BASIC_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_BASIC_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Power Configuration -// Cluster specification level: zcl-7.0-07-5123-07 +#define ZCL_VERSION_ATTRIBUTE_ID (0x0000) +#define ZCL_APPLICATION_VERSION_ATTRIBUTE_ID (0x0001) +#define ZCL_STACK_VERSION_ATTRIBUTE_ID (0x0002) +#define ZCL_HW_VERSION_ATTRIBUTE_ID (0x0003) +#define ZCL_MANUFACTURER_NAME_ATTRIBUTE_ID (0x0004) +#define ZCL_MODEL_IDENTIFIER_ATTRIBUTE_ID (0x0005) +#define ZCL_DATE_CODE_ATTRIBUTE_ID (0x0006) +#define ZCL_POWER_SOURCE_ATTRIBUTE_ID (0x0007) +#define ZCL_GENERIC_DEVICE_CLASS_ATTRIBUTE_ID (0x0008) +#define ZCL_GENERIC_DEVICE_TYPE_ATTRIBUTE_ID (0x0009) +#define ZCL_PRODUCT_CODE_ATTRIBUTE_ID (0x000A) +#define ZCL_PRODUCT_URL_ATTRIBUTE_ID (0x000B) +#define ZCL_LOCATION_DESCRIPTION_ATTRIBUTE_ID (0x0010) +#define ZCL_PHYSICAL_ENVIRONMENT_ATTRIBUTE_ID (0x0011) +#define ZCL_DEVICE_ENABLED_ATTRIBUTE_ID (0x0012) +#define ZCL_ALARM_MASK_ATTRIBUTE_ID (0x0013) +#define ZCL_DISABLE_LOCAL_CONFIG_ATTRIBUTE_ID (0x0014) +#define ZCL_SW_BUILD_ID_ATTRIBUTE_ID (0x4000) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Power Configuration // Client attributes -#define ZCL_POWER_CONFIG_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_POWER_CONFIG_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_MAINS_VOLTAGE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_MAINS_FREQUENCY_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_MAINS_ALARM_MASK_ATTRIBUTE_ID 0x0010 // Ver.: always -#define ZCL_MAINS_VOLTAGE_MIN_THRESHOLD_ATTRIBUTE_ID 0x0011 // Ver.: always -#define ZCL_MAINS_VOLTAGE_MAX_THRESHOLD_ATTRIBUTE_ID 0x0012 // Ver.: always -#define ZCL_MAINS_VOLTAGE_DWELL_TRIP_POINT_ATTRIBUTE_ID 0x0013 // Ver.: always -#define ZCL_BATTERY_VOLTAGE_ATTRIBUTE_ID 0x0020 // Ver.: always -#define ZCL_BATTERY_PERCENTAGE_REMAINING_ATTRIBUTE_ID 0x0021 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_MANUFACTURER_ATTRIBUTE_ID 0x0030 // Ver.: always -#define ZCL_BATTERY_SIZE_ATTRIBUTE_ID 0x0031 // Ver.: always -#define ZCL_BATTERY_AHR_RATING_ATTRIBUTE_ID 0x0032 // Ver.: always -#define ZCL_BATTERY_QUANTITY_ATTRIBUTE_ID 0x0033 // Ver.: always -#define ZCL_BATTERY_RATED_VOLTAGE_ATTRIBUTE_ID 0x0034 // Ver.: always -#define ZCL_BATTERY_ALARM_MASK_ATTRIBUTE_ID 0x0035 // Ver.: always -#define ZCL_BATTERY_VOLTAGE_MIN_THRESHOLD_ATTRIBUTE_ID 0x0036 // Ver.: always -#define ZCL_BATTERY_VOLTAGE_THRESHOLD_1_ATTRIBUTE_ID 0x0037 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_VOLTAGE_THRESHOLD_2_ATTRIBUTE_ID 0x0038 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_VOLTAGE_THRESHOLD_3_ATTRIBUTE_ID 0x0039 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_PERCENTAGE_MIN_THRESHOLD_ATTRIBUTE_ID 0x003A // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_PERCENTAGE_THRESHOLD_1_ATTRIBUTE_ID 0x003B // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_PERCENTAGE_THRESHOLD_2_ATTRIBUTE_ID 0x003C // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_PERCENTAGE_THRESHOLD_3_ATTRIBUTE_ID 0x003D // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_ALARM_STATE_ATTRIBUTE_ID 0x003E // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_2_VOLTAGE_ATTRIBUTE_ID 0x0040 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_2_PERCENTAGE_REMAINING_ATTRIBUTE_ID 0x0041 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_2_MANUFACTURER_ATTRIBUTE_ID 0x0050 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_2_SIZE_ATTRIBUTE_ID 0x0051 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_2_AHR_RATING_ATTRIBUTE_ID 0x0052 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_2_QUANTITY_ATTRIBUTE_ID 0x0053 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_2_RATED_VOLTAGE_ATTRIBUTE_ID 0x0054 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_2_ALARM_MASK_ATTRIBUTE_ID 0x0055 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_2_VOLTAGE_MIN_THRESHOLD_ATTRIBUTE_ID 0x0056 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_2_VOLTAGE_THRESHOLD_1_ATTRIBUTE_ID 0x0057 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_2_VOLTAGE_THRESHOLD_2_ATTRIBUTE_ID 0x0058 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_2_VOLTAGE_THRESHOLD_3_ATTRIBUTE_ID 0x0059 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_2_PERCENTAGE_MIN_THRESHOLD_ATTRIBUTE_ID 0x005A // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_2_PERCENTAGE_THRESHOLD_1_ATTRIBUTE_ID 0x005B // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_2_PERCENTAGE_THRESHOLD_2_ATTRIBUTE_ID 0x005C // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_2_PERCENTAGE_THRESHOLD_3_ATTRIBUTE_ID 0x005D // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_2_ALARM_STATE_ATTRIBUTE_ID 0x005E // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_3_VOLTAGE_ATTRIBUTE_ID 0x0060 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_3_PERCENTAGE_REMAINING_ATTRIBUTE_ID 0x0061 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_3_MANUFACTURER_ATTRIBUTE_ID 0x0070 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_3_SIZE_ATTRIBUTE_ID 0x0071 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_3_AHR_RATING_ATTRIBUTE_ID 0x0072 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_3_QUANTITY_ATTRIBUTE_ID 0x0073 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_3_RATED_VOLTAGE_ATTRIBUTE_ID 0x0074 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_3_ALARM_MASK_ATTRIBUTE_ID 0x0075 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_3_VOLTAGE_MIN_THRESHOLD_ATTRIBUTE_ID 0x0076 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_3_VOLTAGE_THRESHOLD_1_ATTRIBUTE_ID 0x0077 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_3_VOLTAGE_THRESHOLD_2_ATTRIBUTE_ID 0x0078 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_3_VOLTAGE_THRESHOLD_3_ATTRIBUTE_ID 0x0079 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_3_PERCENTAGE_MIN_THRESHOLD_ATTRIBUTE_ID 0x007A // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_3_PERCENTAGE_THRESHOLD_1_ATTRIBUTE_ID 0x007B // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_3_PERCENTAGE_THRESHOLD_2_ATTRIBUTE_ID 0x007C // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_3_PERCENTAGE_THRESHOLD_3_ATTRIBUTE_ID 0x007D // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_3_ALARM_STATE_ATTRIBUTE_ID 0x007E // Ver.: since ha-1.2-05-3520-29 -#define ZCL_POWER_CONFIG_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_POWER_CONFIG_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Device Temperature Configuration -// Cluster specification level: zcl-7.0-07-5123-07 +#define ZCL_MAINS_VOLTAGE_ATTRIBUTE_ID (0x0000) +#define ZCL_MAINS_FREQUENCY_ATTRIBUTE_ID (0x0001) +#define ZCL_MAINS_ALARM_MASK_ATTRIBUTE_ID (0x0010) +#define ZCL_MAINS_VOLTAGE_MIN_THRESHOLD_ATTRIBUTE_ID (0x0011) +#define ZCL_MAINS_VOLTAGE_MAX_THRESHOLD_ATTRIBUTE_ID (0x0012) +#define ZCL_MAINS_VOLTAGE_DWELL_TRIP_POINT_ATTRIBUTE_ID (0x0013) +#define ZCL_BATTERY_VOLTAGE_ATTRIBUTE_ID (0x0020) +#define ZCL_BATTERY_PERCENTAGE_REMAINING_ATTRIBUTE_ID (0x0021) +#define ZCL_BATTERY_MANUFACTURER_ATTRIBUTE_ID (0x0030) +#define ZCL_BATTERY_SIZE_ATTRIBUTE_ID (0x0031) +#define ZCL_BATTERY_AHR_RATING_ATTRIBUTE_ID (0x0032) +#define ZCL_BATTERY_QUANTITY_ATTRIBUTE_ID (0x0033) +#define ZCL_BATTERY_RATED_VOLTAGE_ATTRIBUTE_ID (0x0034) +#define ZCL_BATTERY_ALARM_MASK_ATTRIBUTE_ID (0x0035) +#define ZCL_BATTERY_VOLTAGE_MIN_THRESHOLD_ATTRIBUTE_ID (0x0036) +#define ZCL_BATTERY_VOLTAGE_THRESHOLD_1_ATTRIBUTE_ID (0x0037) +#define ZCL_BATTERY_VOLTAGE_THRESHOLD_2_ATTRIBUTE_ID (0x0038) +#define ZCL_BATTERY_VOLTAGE_THRESHOLD_3_ATTRIBUTE_ID (0x0039) +#define ZCL_BATTERY_PERCENTAGE_MIN_THRESHOLD_ATTRIBUTE_ID (0x003A) +#define ZCL_BATTERY_PERCENTAGE_THRESHOLD_1_ATTRIBUTE_ID (0x003B) +#define ZCL_BATTERY_PERCENTAGE_THRESHOLD_2_ATTRIBUTE_ID (0x003C) +#define ZCL_BATTERY_PERCENTAGE_THRESHOLD_3_ATTRIBUTE_ID (0x003D) +#define ZCL_BATTERY_ALARM_STATE_ATTRIBUTE_ID (0x003E) +#define ZCL_BATTERY_2_VOLTAGE_ATTRIBUTE_ID (0x0040) +#define ZCL_BATTERY_2_PERCENTAGE_REMAINING_ATTRIBUTE_ID (0x0041) +#define ZCL_BATTERY_2_MANUFACTURER_ATTRIBUTE_ID (0x0050) +#define ZCL_BATTERY_2_SIZE_ATTRIBUTE_ID (0x0051) +#define ZCL_BATTERY_2_AHR_RATING_ATTRIBUTE_ID (0x0052) +#define ZCL_BATTERY_2_QUANTITY_ATTRIBUTE_ID (0x0053) +#define ZCL_BATTERY_2_RATED_VOLTAGE_ATTRIBUTE_ID (0x0054) +#define ZCL_BATTERY_2_ALARM_MASK_ATTRIBUTE_ID (0x0055) +#define ZCL_BATTERY_2_VOLTAGE_MIN_THRESHOLD_ATTRIBUTE_ID (0x0056) +#define ZCL_BATTERY_2_VOLTAGE_THRESHOLD_1_ATTRIBUTE_ID (0x0057) +#define ZCL_BATTERY_2_VOLTAGE_THRESHOLD_2_ATTRIBUTE_ID (0x0058) +#define ZCL_BATTERY_2_VOLTAGE_THRESHOLD_3_ATTRIBUTE_ID (0x0059) +#define ZCL_BATTERY_2_PERCENTAGE_MIN_THRESHOLD_ATTRIBUTE_ID (0x005A) +#define ZCL_BATTERY_2_PERCENTAGE_THRESHOLD_1_ATTRIBUTE_ID (0x005B) +#define ZCL_BATTERY_2_PERCENTAGE_THRESHOLD_2_ATTRIBUTE_ID (0x005C) +#define ZCL_BATTERY_2_PERCENTAGE_THRESHOLD_3_ATTRIBUTE_ID (0x005D) +#define ZCL_BATTERY_2_ALARM_STATE_ATTRIBUTE_ID (0x005E) +#define ZCL_BATTERY_3_VOLTAGE_ATTRIBUTE_ID (0x0060) +#define ZCL_BATTERY_3_PERCENTAGE_REMAINING_ATTRIBUTE_ID (0x0061) +#define ZCL_BATTERY_3_MANUFACTURER_ATTRIBUTE_ID (0x0070) +#define ZCL_BATTERY_3_SIZE_ATTRIBUTE_ID (0x0071) +#define ZCL_BATTERY_3_AHR_RATING_ATTRIBUTE_ID (0x0072) +#define ZCL_BATTERY_3_QUANTITY_ATTRIBUTE_ID (0x0073) +#define ZCL_BATTERY_3_RATED_VOLTAGE_ATTRIBUTE_ID (0x0074) +#define ZCL_BATTERY_3_ALARM_MASK_ATTRIBUTE_ID (0x0075) +#define ZCL_BATTERY_3_VOLTAGE_MIN_THRESHOLD_ATTRIBUTE_ID (0x0076) +#define ZCL_BATTERY_3_VOLTAGE_THRESHOLD_1_ATTRIBUTE_ID (0x0077) +#define ZCL_BATTERY_3_VOLTAGE_THRESHOLD_2_ATTRIBUTE_ID (0x0078) +#define ZCL_BATTERY_3_VOLTAGE_THRESHOLD_3_ATTRIBUTE_ID (0x0079) +#define ZCL_BATTERY_3_PERCENTAGE_MIN_THRESHOLD_ATTRIBUTE_ID (0x007A) +#define ZCL_BATTERY_3_PERCENTAGE_THRESHOLD_1_ATTRIBUTE_ID (0x007B) +#define ZCL_BATTERY_3_PERCENTAGE_THRESHOLD_2_ATTRIBUTE_ID (0x007C) +#define ZCL_BATTERY_3_PERCENTAGE_THRESHOLD_3_ATTRIBUTE_ID (0x007D) +#define ZCL_BATTERY_3_ALARM_STATE_ATTRIBUTE_ID (0x007E) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Device Temperature Configuration // Client attributes -#define ZCL_DEVICE_TEMP_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_DEVICE_TEMP_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_CURRENT_TEMPERATURE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_MIN_TEMP_EXPERIENCED_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_MAX_TEMP_EXPERIENCED_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_OVER_TEMP_TOTAL_DWELL_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_DEVICE_TEMP_ALARM_MASK_ATTRIBUTE_ID 0x0010 // Ver.: always -#define ZCL_LOW_TEMP_THRESHOLD_ATTRIBUTE_ID 0x0011 // Ver.: always -#define ZCL_HIGH_TEMP_THRESHOLD_ATTRIBUTE_ID 0x0012 // Ver.: always -#define ZCL_LOW_TEMP_DWELL_TRIP_POINT_ATTRIBUTE_ID 0x0013 // Ver.: always -#define ZCL_HIGH_TEMP_DWELL_TRIP_POINT_ATTRIBUTE_ID 0x0014 // Ver.: always -#define ZCL_DEVICE_TEMP_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_DEVICE_TEMP_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Identify -// Cluster specification level: zcl-7.0-07-5123-07 +#define ZCL_CURRENT_TEMPERATURE_ATTRIBUTE_ID (0x0000) +#define ZCL_MIN_TEMP_EXPERIENCED_ATTRIBUTE_ID (0x0001) +#define ZCL_MAX_TEMP_EXPERIENCED_ATTRIBUTE_ID (0x0002) +#define ZCL_OVER_TEMP_TOTAL_DWELL_ATTRIBUTE_ID (0x0003) +#define ZCL_DEVICE_TEMP_ALARM_MASK_ATTRIBUTE_ID (0x0010) +#define ZCL_LOW_TEMP_THRESHOLD_ATTRIBUTE_ID (0x0011) +#define ZCL_HIGH_TEMP_THRESHOLD_ATTRIBUTE_ID (0x0012) +#define ZCL_LOW_TEMP_DWELL_TRIP_POINT_ATTRIBUTE_ID (0x0013) +#define ZCL_HIGH_TEMP_DWELL_TRIP_POINT_ATTRIBUTE_ID (0x0014) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Identify // Client attributes -#define ZCL_IDENTIFY_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_IDENTIFY_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_IDENTIFY_TIME_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_COMMISSION_STATE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_IDENTIFY_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_IDENTIFY_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_IDENTIFY_TIME_ATTRIBUTE_ID (0x0000) +#define ZCL_COMMISSION_STATE_ATTRIBUTE_ID (0x0001) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) -// Attribute types for cluster: Groups -// Cluster specification level: zcl-7.0-07-5123-07 +// Attribute ids for cluster: Groups // Client attributes -#define ZCL_GROUPS_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_GROUPS_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_GROUP_NAME_SUPPORT_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_GROUPS_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_GROUPS_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_GROUP_NAME_SUPPORT_ATTRIBUTE_ID (0x0000) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) -// Attribute types for cluster: Scenes -// Cluster specification level: zcl-7.0-07-5123-07 +// Attribute ids for cluster: Scenes // Client attributes -#define ZCL_SCENES_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_SCENES_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_SCENE_COUNT_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_CURRENT_SCENE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_CURRENT_GROUP_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_SCENE_VALID_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_SCENE_NAME_SUPPORT_ATTRIBUTE_ID 0x0004 // Ver.: always -#define ZCL_LAST_CONFIGURED_BY_ATTRIBUTE_ID 0x0005 // Ver.: always -#define ZCL_SCENES_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_SCENES_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: On/off -// Cluster specification level: zcl-7.0-07-5123-07 +#define ZCL_SCENE_COUNT_ATTRIBUTE_ID (0x0000) +#define ZCL_CURRENT_SCENE_ATTRIBUTE_ID (0x0001) +#define ZCL_CURRENT_GROUP_ATTRIBUTE_ID (0x0002) +#define ZCL_SCENE_VALID_ATTRIBUTE_ID (0x0003) +#define ZCL_SCENE_NAME_SUPPORT_ATTRIBUTE_ID (0x0004) +#define ZCL_LAST_CONFIGURED_BY_ATTRIBUTE_ID (0x0005) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: On/off // Client attributes -#define ZCL_ON_OFF_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_ON_OFF_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_ON_OFF_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_SAMPLE_MFG_SPECIFIC_TRANSITION_TIME_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_SAMPLE_MFG_SPECIFIC_TRANSITION_TIME_2_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_SAMPLE_MFG_SPECIFIC_TRANSITION_TIME_3_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_SAMPLE_MFG_SPECIFIC_TRANSITION_TIME_4_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_GLOBAL_SCENE_CONTROL_ATTRIBUTE_ID 0x4000 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_ON_TIME_ATTRIBUTE_ID 0x4001 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_OFF_WAIT_TIME_ATTRIBUTE_ID 0x4002 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_START_UP_ON_OFF_ATTRIBUTE_ID 0x4003 // Ver.: since l&o-1.0-15-0014-04 -#define ZCL_ON_OFF_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_ON_OFF_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: On/off Switch Configuration -// Cluster specification level: zcl-7.0-07-5123-07 +#define ZCL_ON_OFF_ATTRIBUTE_ID (0x0000) +#define ZCL_SAMPLE_MFG_SPECIFIC_TRANSITION_TIME_ATTRIBUTE_ID (0x0000) +#define ZCL_SAMPLE_MFG_SPECIFIC_TRANSITION_TIME_2_ATTRIBUTE_ID (0x0000) +#define ZCL_SAMPLE_MFG_SPECIFIC_TRANSITION_TIME_3_ATTRIBUTE_ID (0x0001) +#define ZCL_SAMPLE_MFG_SPECIFIC_TRANSITION_TIME_4_ATTRIBUTE_ID (0x0001) +#define ZCL_GLOBAL_SCENE_CONTROL_ATTRIBUTE_ID (0x4000) +#define ZCL_ON_TIME_ATTRIBUTE_ID (0x4001) +#define ZCL_OFF_WAIT_TIME_ATTRIBUTE_ID (0x4002) +#define ZCL_START_UP_ON_OFF_ATTRIBUTE_ID (0x4003) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: On/off Switch Configuration // Client attributes -#define ZCL_ON_OFF_SWITCH_CONFIG_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_ON_OFF_SWITCH_CONFIG_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_SWITCH_TYPE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_SWITCH_ACTIONS_ATTRIBUTE_ID 0x0010 // Ver.: always -#define ZCL_ON_OFF_SWITCH_CONFIG_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_ON_OFF_SWITCH_CONFIG_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_SWITCH_TYPE_ATTRIBUTE_ID (0x0000) +#define ZCL_SWITCH_ACTIONS_ATTRIBUTE_ID (0x0010) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) -// Attribute types for cluster: Level Control -// Cluster specification level: zcl-7.0-07-5123-07 +// Attribute ids for cluster: Level Control // Client attributes -#define ZCL_LEVEL_CONTROL_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_LEVEL_CONTROL_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_CURRENT_LEVEL_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_LEVEL_CONTROL_REMAINING_TIME_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_OPTIONS_ATTRIBUTE_ID 0x000F // Ver.: since l&o-1.0-15-0014-04 -#define ZCL_ON_OFF_TRANSITION_TIME_ATTRIBUTE_ID 0x0010 // Ver.: always -#define ZCL_ON_LEVEL_ATTRIBUTE_ID 0x0011 // Ver.: always -#define ZCL_ON_TRANSITION_TIME_ATTRIBUTE_ID 0x0012 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_OFF_TRANSITION_TIME_ATTRIBUTE_ID 0x0013 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_DEFAULT_MOVE_RATE_ATTRIBUTE_ID 0x0014 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_START_UP_CURRENT_LEVEL_ATTRIBUTE_ID 0x4000 // Ver.: since l&o-1.0-15-0014-04 -#define ZCL_LEVEL_CONTROL_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_LEVEL_CONTROL_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Alarms -// Cluster specification level: zcl-7.0-07-5123-07 +#define ZCL_CURRENT_LEVEL_ATTRIBUTE_ID (0x0000) +#define ZCL_LEVEL_CONTROL_REMAINING_TIME_ATTRIBUTE_ID (0x0001) +#define ZCL_OPTIONS_ATTRIBUTE_ID (0x000F) +#define ZCL_ON_OFF_TRANSITION_TIME_ATTRIBUTE_ID (0x0010) +#define ZCL_ON_LEVEL_ATTRIBUTE_ID (0x0011) +#define ZCL_ON_TRANSITION_TIME_ATTRIBUTE_ID (0x0012) +#define ZCL_OFF_TRANSITION_TIME_ATTRIBUTE_ID (0x0013) +#define ZCL_DEFAULT_MOVE_RATE_ATTRIBUTE_ID (0x0014) +#define ZCL_START_UP_CURRENT_LEVEL_ATTRIBUTE_ID (0x4000) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Alarms // Client attributes -#define ZCL_ALARM_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_ALARM_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_ALARM_COUNT_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_ALARM_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_ALARM_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_ALARM_COUNT_ATTRIBUTE_ID (0x0000) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) -// Attribute types for cluster: Time -// Cluster specification level: zcl-7.0-07-5123-07 +// Attribute ids for cluster: Time // Client attributes -#define ZCL_TIME_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_TIME_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_TIME_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_TIME_STATUS_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_TIME_ZONE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_DST_START_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_DST_END_ATTRIBUTE_ID 0x0004 // Ver.: always -#define ZCL_DST_SHIFT_ATTRIBUTE_ID 0x0005 // Ver.: always -#define ZCL_STANDARD_TIME_ATTRIBUTE_ID 0x0006 // Ver.: always -#define ZCL_LOCAL_TIME_ATTRIBUTE_ID 0x0007 // Ver.: always -#define ZCL_LAST_SET_TIME_ATTRIBUTE_ID 0x0008 // Ver.: always -#define ZCL_VALID_UNTIL_TIME_ATTRIBUTE_ID 0x0009 // Ver.: always -#define ZCL_TIME_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_TIME_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: RSSI Location -// Cluster specification level: zcl-7.0-07-5123-07 +#define ZCL_TIME_ATTRIBUTE_ID (0x0000) +#define ZCL_TIME_STATUS_ATTRIBUTE_ID (0x0001) +#define ZCL_TIME_ZONE_ATTRIBUTE_ID (0x0002) +#define ZCL_DST_START_ATTRIBUTE_ID (0x0003) +#define ZCL_DST_END_ATTRIBUTE_ID (0x0004) +#define ZCL_DST_SHIFT_ATTRIBUTE_ID (0x0005) +#define ZCL_STANDARD_TIME_ATTRIBUTE_ID (0x0006) +#define ZCL_LOCAL_TIME_ATTRIBUTE_ID (0x0007) +#define ZCL_LAST_SET_TIME_ATTRIBUTE_ID (0x0008) +#define ZCL_VALID_UNTIL_TIME_ATTRIBUTE_ID (0x0009) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: RSSI Location // Client attributes -#define ZCL_RSSI_LOCATION_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_RSSI_LOCATION_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_LOCATION_TYPE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_LOCATION_METHOD_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_LOCATION_AGE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_QUALITY_MEASURE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_NUMBER_OF_DEVICES_ATTRIBUTE_ID 0x0004 // Ver.: always -#define ZCL_COORDINATE1_ATTRIBUTE_ID 0x0010 // Ver.: always -#define ZCL_COORDINATE2_ATTRIBUTE_ID 0x0011 // Ver.: always -#define ZCL_COORDINATE3_ATTRIBUTE_ID 0x0012 // Ver.: always -#define ZCL_POWER_ATTRIBUTE_ID 0x0013 // Ver.: always -#define ZCL_PATH_LOSS_EXPONENT_ATTRIBUTE_ID 0x0014 // Ver.: always -#define ZCL_REPORTING_PERIOD_ATTRIBUTE_ID 0x0015 // Ver.: always -#define ZCL_CALCULATION_PERIOD_ATTRIBUTE_ID 0x0016 // Ver.: always -#define ZCL_NUMBER_RSSI_MEASUREMENTS_ATTRIBUTE_ID 0x0017 // Ver.: always -#define ZCL_RSSI_LOCATION_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_RSSI_LOCATION_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Binary Input (Basic) -// Cluster specification level: zcl-7.0-07-5123-07 +#define ZCL_LOCATION_TYPE_ATTRIBUTE_ID (0x0000) +#define ZCL_LOCATION_METHOD_ATTRIBUTE_ID (0x0001) +#define ZCL_LOCATION_AGE_ATTRIBUTE_ID (0x0002) +#define ZCL_QUALITY_MEASURE_ATTRIBUTE_ID (0x0003) +#define ZCL_NUMBER_OF_DEVICES_ATTRIBUTE_ID (0x0004) +#define ZCL_COORDINATE1_ATTRIBUTE_ID (0x0010) +#define ZCL_COORDINATE2_ATTRIBUTE_ID (0x0011) +#define ZCL_COORDINATE3_ATTRIBUTE_ID (0x0012) +#define ZCL_POWER_ATTRIBUTE_ID (0x0013) +#define ZCL_PATH_LOSS_EXPONENT_ATTRIBUTE_ID (0x0014) +#define ZCL_REPORTING_PERIOD_ATTRIBUTE_ID (0x0015) +#define ZCL_CALCULATION_PERIOD_ATTRIBUTE_ID (0x0016) +#define ZCL_NUMBER_RSSI_MEASUREMENTS_ATTRIBUTE_ID (0x0017) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Binary Input (Basic) // Client attributes -#define ZCL_BINARY_INPUT_BASIC_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_BINARY_INPUT_BASIC_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_ACTIVE_TEXT_ATTRIBUTE_ID 0x0004 // Ver.: always -#define ZCL_DESCRIPTION_ATTRIBUTE_ID 0x001C // Ver.: always -#define ZCL_INACTIVE_TEXT_ATTRIBUTE_ID 0x002E // Ver.: always -#define ZCL_OUT_OF_SERVICE_ATTRIBUTE_ID 0x0051 // Ver.: always -#define ZCL_POLARITY_ATTRIBUTE_ID 0x0054 // Ver.: always -#define ZCL_PRESENT_VALUE_ATTRIBUTE_ID 0x0055 // Ver.: always -#define ZCL_RELIABILITY_ATTRIBUTE_ID 0x0067 // Ver.: always -#define ZCL_STATUS_FLAGS_ATTRIBUTE_ID 0x006F // Ver.: always -#define ZCL_APPLICATION_TYPE_ATTRIBUTE_ID 0x0100 // Ver.: always -#define ZCL_BINARY_INPUT_BASIC_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_BINARY_INPUT_BASIC_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Commissioning -// Cluster specification level: zcl-7.0-07-5123-07 +#define ZCL_ACTIVE_TEXT_ATTRIBUTE_ID (0x0004) +#define ZCL_DESCRIPTION_ATTRIBUTE_ID (0x001C) +#define ZCL_INACTIVE_TEXT_ATTRIBUTE_ID (0x002E) +#define ZCL_OUT_OF_SERVICE_ATTRIBUTE_ID (0x0051) +#define ZCL_POLARITY_ATTRIBUTE_ID (0x0054) +#define ZCL_PRESENT_VALUE_ATTRIBUTE_ID (0x0055) +#define ZCL_RELIABILITY_ATTRIBUTE_ID (0x0067) +#define ZCL_STATUS_FLAGS_ATTRIBUTE_ID (0x006F) +#define ZCL_APPLICATION_TYPE_ATTRIBUTE_ID (0x0100) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Commissioning // Client attributes -#define ZCL_COMMISSIONING_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_COMMISSIONING_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_SHORT_ADDRESS_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_EXTENDED_PAN_ID_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_PAN_ID_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_CHANNEL_MASK_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_PROTOCOL_VERSION_ATTRIBUTE_ID 0x0004 // Ver.: always -#define ZCL_STACK_PROFILE_ATTRIBUTE_ID 0x0005 // Ver.: always -#define ZCL_STARTUP_CONTROL_ATTRIBUTE_ID 0x0006 // Ver.: always -#define ZCL_TRUST_CENTER_ADDRESS_ATTRIBUTE_ID 0x0010 // Ver.: always -#define ZCL_TRUST_CENTER_MASTER_KEY_ATTRIBUTE_ID 0x0011 // Ver.: always -#define ZCL_NETWORK_KEY_ATTRIBUTE_ID 0x0012 // Ver.: always -#define ZCL_USE_INSECURE_JOIN_ATTRIBUTE_ID 0x0013 // Ver.: always -#define ZCL_PRECONFIGURED_LINK_KEY_ATTRIBUTE_ID 0x0014 // Ver.: always -#define ZCL_NETWORK_KEY_SEQUENCE_NUMBER_ATTRIBUTE_ID 0x0015 // Ver.: always -#define ZCL_NETWORK_KEY_TYPE_ATTRIBUTE_ID 0x0016 // Ver.: always -#define ZCL_NETWORK_MANAGER_ADDRESS_ATTRIBUTE_ID 0x0017 // Ver.: always -#define ZCL_SCAN_ATTEMPTS_ATTRIBUTE_ID 0x0020 // Ver.: always -#define ZCL_TIME_BETWEEN_SCANS_ATTRIBUTE_ID 0x0021 // Ver.: always -#define ZCL_REJOIN_INTERVAL_ATTRIBUTE_ID 0x0022 // Ver.: always -#define ZCL_MAX_REJOIN_INTERVAL_ATTRIBUTE_ID 0x0023 // Ver.: always -#define ZCL_INDIRECT_POLL_RATE_ATTRIBUTE_ID 0x0030 // Ver.: always -#define ZCL_PARENT_RETRY_THRESHOLD_ATTRIBUTE_ID 0x0031 // Ver.: always -#define ZCL_CONCENTRATOR_FLAG_ATTRIBUTE_ID 0x0040 // Ver.: always -#define ZCL_CONCENTRATOR_RADIUS_ATTRIBUTE_ID 0x0041 // Ver.: always -#define ZCL_CONCENTRATOR_DISCOVERY_TIME_ATTRIBUTE_ID 0x0042 // Ver.: always -#define ZCL_COMMISSIONING_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_COMMISSIONING_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Partition -// Cluster specification level: zcl-7.0-07-5123-07 +#define ZCL_SHORT_ADDRESS_ATTRIBUTE_ID (0x0000) +#define ZCL_EXTENDED_PAN_ID_ATTRIBUTE_ID (0x0001) +#define ZCL_PAN_ID_ATTRIBUTE_ID (0x0002) +#define ZCL_CHANNEL_MASK_ATTRIBUTE_ID (0x0003) +#define ZCL_PROTOCOL_VERSION_ATTRIBUTE_ID (0x0004) +#define ZCL_STACK_PROFILE_ATTRIBUTE_ID (0x0005) +#define ZCL_STARTUP_CONTROL_ATTRIBUTE_ID (0x0006) +#define ZCL_TRUST_CENTER_ADDRESS_ATTRIBUTE_ID (0x0010) +#define ZCL_TRUST_CENTER_MASTER_KEY_ATTRIBUTE_ID (0x0011) +#define ZCL_NETWORK_KEY_ATTRIBUTE_ID (0x0012) +#define ZCL_USE_INSECURE_JOIN_ATTRIBUTE_ID (0x0013) +#define ZCL_PRECONFIGURED_LINK_KEY_ATTRIBUTE_ID (0x0014) +#define ZCL_NETWORK_KEY_SEQUENCE_NUMBER_ATTRIBUTE_ID (0x0015) +#define ZCL_NETWORK_KEY_TYPE_ATTRIBUTE_ID (0x0016) +#define ZCL_NETWORK_MANAGER_ADDRESS_ATTRIBUTE_ID (0x0017) +#define ZCL_SCAN_ATTEMPTS_ATTRIBUTE_ID (0x0020) +#define ZCL_TIME_BETWEEN_SCANS_ATTRIBUTE_ID (0x0021) +#define ZCL_REJOIN_INTERVAL_ATTRIBUTE_ID (0x0022) +#define ZCL_MAX_REJOIN_INTERVAL_ATTRIBUTE_ID (0x0023) +#define ZCL_INDIRECT_POLL_RATE_ATTRIBUTE_ID (0x0030) +#define ZCL_PARENT_RETRY_THRESHOLD_ATTRIBUTE_ID (0x0031) +#define ZCL_CONCENTRATOR_FLAG_ATTRIBUTE_ID (0x0040) +#define ZCL_CONCENTRATOR_RADIUS_ATTRIBUTE_ID (0x0041) +#define ZCL_CONCENTRATOR_DISCOVERY_TIME_ATTRIBUTE_ID (0x0042) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Partition // Client attributes -#define ZCL_PARTITION_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_PARTITION_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_PARTITION_MAXIMUM_INCOMING_TRANSFER_SIZE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_PARTITION_MAXIMUM_OUTGOING_TRANSFER_SIZE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_PARTIONED_FRAME_SIZE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_LARGE_FRAME_SIZE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_NUMBER_OF_ACK_FRAME_ATTRIBUTE_ID 0x0004 // Ver.: always -#define ZCL_NACK_TIMEOUT_ATTRIBUTE_ID 0x0005 // Ver.: always -#define ZCL_INTERFRAME_DELAY_ATTRIBUTE_ID 0x0006 // Ver.: always -#define ZCL_NUMBER_OF_SEND_RETRIES_ATTRIBUTE_ID 0x0007 // Ver.: always -#define ZCL_SENDER_TIMEOUT_ATTRIBUTE_ID 0x0008 // Ver.: always -#define ZCL_RECEIVER_TIMEOUT_ATTRIBUTE_ID 0x0009 // Ver.: always -#define ZCL_PARTITION_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_PARTITION_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Over the Air Bootloading -// Cluster specification level: zcl-7.0-07-5123-07 +#define ZCL_PARTITION_MAXIMUM_INCOMING_TRANSFER_SIZE_ATTRIBUTE_ID (0x0000) +#define ZCL_PARTITION_MAXIMUM_OUTGOING_TRANSFER_SIZE_ATTRIBUTE_ID (0x0001) +#define ZCL_PARTIONED_FRAME_SIZE_ATTRIBUTE_ID (0x0002) +#define ZCL_LARGE_FRAME_SIZE_ATTRIBUTE_ID (0x0003) +#define ZCL_NUMBER_OF_ACK_FRAME_ATTRIBUTE_ID (0x0004) +#define ZCL_NACK_TIMEOUT_ATTRIBUTE_ID (0x0005) +#define ZCL_INTERFRAME_DELAY_ATTRIBUTE_ID (0x0006) +#define ZCL_NUMBER_OF_SEND_RETRIES_ATTRIBUTE_ID (0x0007) +#define ZCL_SENDER_TIMEOUT_ATTRIBUTE_ID (0x0008) +#define ZCL_RECEIVER_TIMEOUT_ATTRIBUTE_ID (0x0009) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Over the Air Bootloading // Client attributes -#define ZCL_UPGRADE_SERVER_ID_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_FILE_OFFSET_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_CURRENT_FILE_VERSION_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_CURRENT_ZIGBEE_STACK_VERSION_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_DOWNLOADED_FILE_VERSION_ATTRIBUTE_ID 0x0004 // Ver.: always -#define ZCL_DOWNLOADED_ZIGBEE_STACK_VERSION_ATTRIBUTE_ID 0x0005 // Ver.: always -#define ZCL_IMAGE_UPGRADE_STATUS_ATTRIBUTE_ID 0x0006 // Ver.: always -#define ZCL_MANUFACTURER_ID_ATTRIBUTE_ID 0x0007 // Ver.: always -#define ZCL_IMAGE_TYPE_ID_ATTRIBUTE_ID 0x0008 // Ver.: always -#define ZCL_MINIMUM_BLOCK_REQUEST_PERIOD_ATTRIBUTE_ID 0x0009 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_IMAGE_STAMP_ATTRIBUTE_ID 0x000A // Ver.: since ha-1.2-05-3520-29 -#define ZCL_UPGRADE_ACTIVATION_POLICY_ATTRIBUTE_ID 0x000B // Ver.: since se-1.2b-15-0131-02 -#define ZCL_UPGRADE_TIMEOUT_POLICY_ATTRIBUTE_ID 0x000C // Ver.: since se-1.2b-15-0131-02 -#define ZCL_OTA_BOOTLOAD_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_OTA_BOOTLOAD_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_UPGRADE_SERVER_ID_ATTRIBUTE_ID (0x0000) +#define ZCL_FILE_OFFSET_ATTRIBUTE_ID (0x0001) +#define ZCL_CURRENT_FILE_VERSION_ATTRIBUTE_ID (0x0002) +#define ZCL_CURRENT_ZIGBEE_STACK_VERSION_ATTRIBUTE_ID (0x0003) +#define ZCL_DOWNLOADED_FILE_VERSION_ATTRIBUTE_ID (0x0004) +#define ZCL_DOWNLOADED_ZIGBEE_STACK_VERSION_ATTRIBUTE_ID (0x0005) +#define ZCL_IMAGE_UPGRADE_STATUS_ATTRIBUTE_ID (0x0006) +#define ZCL_MANUFACTURER_ID_ATTRIBUTE_ID (0x0007) +#define ZCL_IMAGE_TYPE_ID_ATTRIBUTE_ID (0x0008) +#define ZCL_MINIMUM_BLOCK_REQUEST_PERIOD_ATTRIBUTE_ID (0x0009) +#define ZCL_IMAGE_STAMP_ATTRIBUTE_ID (0x000A) +#define ZCL_UPGRADE_ACTIVATION_POLICY_ATTRIBUTE_ID (0x000B) +#define ZCL_UPGRADE_TIMEOUT_POLICY_ATTRIBUTE_ID (0x000C) +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_OTA_BOOTLOAD_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_OTA_BOOTLOAD_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) -// Attribute types for cluster: Power Profile -// Cluster specification level: zcl-7.0-07-5123-07 +// Attribute ids for cluster: Power Profile // Client attributes -#define ZCL_POWER_PROFILE_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_POWER_PROFILE_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_TOTAL_PROFILE_NUM_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_MULTIPLE_SCHEDULING_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_ENERGY_FORMATTING_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_ENERGY_REMOTE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_SCHEDULE_MODE_ATTRIBUTE_ID 0x0004 // Ver.: always -#define ZCL_POWER_PROFILE_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_POWER_PROFILE_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_TOTAL_PROFILE_NUM_ATTRIBUTE_ID (0x0000) +#define ZCL_MULTIPLE_SCHEDULING_ATTRIBUTE_ID (0x0001) +#define ZCL_ENERGY_FORMATTING_ATTRIBUTE_ID (0x0002) +#define ZCL_ENERGY_REMOTE_ATTRIBUTE_ID (0x0003) +#define ZCL_SCHEDULE_MODE_ATTRIBUTE_ID (0x0004) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) -// Attribute types for cluster: Appliance Control -// Cluster specification level: zcl-7.0-07-5123-07 +// Attribute ids for cluster: Appliance Control // Client attributes -#define ZCL_APPLIANCE_CONTROL_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_APPLIANCE_CONTROL_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_START_TIME_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_FINISH_TIME_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_REMAINING_TIME_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_APPLIANCE_CONTROL_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_APPLIANCE_CONTROL_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_START_TIME_ATTRIBUTE_ID (0x0000) +#define ZCL_FINISH_TIME_ATTRIBUTE_ID (0x0001) +#define ZCL_REMAINING_TIME_ATTRIBUTE_ID (0x0002) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) -// Attribute types for cluster: Poll Control -// Cluster specification level: zcl-7.0-07-5123-07 +// Attribute ids for cluster: Poll Control // Client attributes -#define ZCL_POLL_CONTROL_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_POLL_CONTROL_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_CHECK_IN_INTERVAL_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_LONG_POLL_INTERVAL_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_SHORT_POLL_INTERVAL_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_FAST_POLL_TIMEOUT_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_CHECK_IN_INTERVAL_MIN_ATTRIBUTE_ID 0x0004 // Ver.: always -#define ZCL_LONG_POLL_INTERVAL_MIN_ATTRIBUTE_ID 0x0005 // Ver.: always -#define ZCL_FAST_POLL_TIMEOUT_MAX_ATTRIBUTE_ID 0x0006 // Ver.: always -#define ZCL_POLL_CONTROL_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_POLL_CONTROL_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Green Power -// Cluster specification level: gp-1.0a-09-5499-26 +#define ZCL_CHECK_IN_INTERVAL_ATTRIBUTE_ID (0x0000) +#define ZCL_LONG_POLL_INTERVAL_ATTRIBUTE_ID (0x0001) +#define ZCL_SHORT_POLL_INTERVAL_ATTRIBUTE_ID (0x0002) +#define ZCL_FAST_POLL_TIMEOUT_ATTRIBUTE_ID (0x0003) +#define ZCL_CHECK_IN_INTERVAL_MIN_ATTRIBUTE_ID (0x0004) +#define ZCL_LONG_POLL_INTERVAL_MIN_ATTRIBUTE_ID (0x0005) +#define ZCL_FAST_POLL_TIMEOUT_MAX_ATTRIBUTE_ID (0x0006) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Green Power // Client attributes -#define ZCL_GP_CLIENT_GPP_MAX_PROXY_TABLE_ENTRIES_ATTRIBUTE_ID 0x0010 // Ver.: since gp-1.0-09-5499-24 -#define ZCL_GP_CLIENT_PROXY_TABLE_ATTRIBUTE_ID 0x0011 // Ver.: since gp-1.0-09-5499-24 -#define ZCL_GP_CLIENT_GPP_NOTIFICATION_RETRY_NUMBER_ATTRIBUTE_ID 0x0012 // Ver.: since gp-1.0-09-5499-24 -#define ZCL_GP_CLIENT_GPP_NOTIFICATION_RETRY_TIMER_ATTRIBUTE_ID 0x0013 // Ver.: since gp-1.0-09-5499-24 -#define ZCL_GP_CLIENT_GPP_MAX_SEARCH_COUNTER_ATTRIBUTE_ID 0x0014 // Ver.: since gp-1.0-09-5499-24 -#define ZCL_GP_CLIENT_GPP_BLOCKED_GPD_ID_ATTRIBUTE_ID 0x0015 // Ver.: since gp-1.0-09-5499-24 -#define ZCL_GP_CLIENT_GPP_FUNCTIONALITY_ATTRIBUTE_ID 0x0016 // Ver.: since gp-1.0-09-5499-24 -#define ZCL_GP_CLIENT_GPP_ACTIVE_FUNCTIONALITY_ATTRIBUTE_ID 0x0017 // Ver.: since gp-1.0-09-5499-24 -#define ZCL_GP_CLIENT_GP_SHARED_SECURITY_KEY_TYPE_ATTRIBUTE_ID 0x0020 // Ver.: since gp-1.0-09-5499-24 -#define ZCL_GP_CLIENT_GP_SHARED_SECURITY_KEY_ATTRIBUTE_ID 0x0021 // Ver.: since gp-1.0-09-5499-24 -#define ZCL_GP_CLIENT_GP_LINK_KEY_ATTRIBUTE_ID 0x0022 // Ver.: since gp-1.0-09-5499-24 -#define ZCL_GREEN_POWER_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_GREEN_POWER_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_GP_CLIENT_GPP_MAX_PROXY_TABLE_ENTRIES_ATTRIBUTE_ID (0x0010) +#define ZCL_GP_CLIENT_PROXY_TABLE_ATTRIBUTE_ID (0x0011) +#define ZCL_GP_CLIENT_GPP_NOTIFICATION_RETRY_NUMBER_ATTRIBUTE_ID (0x0012) +#define ZCL_GP_CLIENT_GPP_NOTIFICATION_RETRY_TIMER_ATTRIBUTE_ID (0x0013) +#define ZCL_GP_CLIENT_GPP_MAX_SEARCH_COUNTER_ATTRIBUTE_ID (0x0014) +#define ZCL_GP_CLIENT_GPP_BLOCKED_GPD_ID_ATTRIBUTE_ID (0x0015) +#define ZCL_GP_CLIENT_GPP_FUNCTIONALITY_ATTRIBUTE_ID (0x0016) +#define ZCL_GP_CLIENT_GPP_ACTIVE_FUNCTIONALITY_ATTRIBUTE_ID (0x0017) +#define ZCL_GP_CLIENT_GP_SHARED_SECURITY_KEY_TYPE_ATTRIBUTE_ID (0x0020) +#define ZCL_GP_CLIENT_GP_SHARED_SECURITY_KEY_ATTRIBUTE_ID (0x0021) +#define ZCL_GP_CLIENT_GP_LINK_KEY_ATTRIBUTE_ID (0x0022) +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_GP_SERVER_GPS_MAX_SINK_TABLE_ENTRIES_ATTRIBUTE_ID 0x0000 // Ver.: since gp-1.0-09-5499-24 -#define ZCL_GP_SERVER_SINK_TABLE_ATTRIBUTE_ID 0x0001 // Ver.: since gp-1.0-09-5499-24 -#define ZCL_GP_SERVER_GPS_COMMUNICATION_MODE_ATTRIBUTE_ID 0x0002 // Ver.: since gp-1.0-09-5499-24 -#define ZCL_GP_SERVER_GPS_COMMISSIONING_EXIT_MODE_ATTRIBUTE_ID 0x0003 // Ver.: since gp-1.0-09-5499-24 -#define ZCL_GP_SERVER_GPS_COMMISSIONING_WINDOW_ATTRIBUTE_ID 0x0004 // Ver.: since gp-1.0-09-5499-24 -#define ZCL_GP_SERVER_GPS_SECURITY_LEVEL_ATTRIBUTE_ID 0x0005 // Ver.: since gp-1.0-09-5499-24 -#define ZCL_GP_SERVER_GPS_FUNCTIONALITY_ATTRIBUTE_ID 0x0006 // Ver.: since gp-1.0-09-5499-24 -#define ZCL_GP_SERVER_GPS_ACTIVE_FUNCTIONALITY_ATTRIBUTE_ID 0x0007 // Ver.: since gp-1.0-09-5499-24 -#define ZCL_GP_SERVER_GP_SHARED_SECURITY_KEY_TYPE_ATTRIBUTE_ID 0x0020 // Ver.: since gp-1.0-09-5499-24 -#define ZCL_GP_SERVER_GP_SHARED_SECURITY_KEY_ATTRIBUTE_ID 0x0021 // Ver.: since gp-1.0-09-5499-24 -#define ZCL_GP_SERVER_GP_LINK_KEY_ATTRIBUTE_ID 0x0022 // Ver.: since gp-1.0-09-5499-24 -#define ZCL_GREEN_POWER_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_GREEN_POWER_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Keep-Alive -// Cluster specification level: se-1.2b-15-0131-02 +#define ZCL_GP_SERVER_GPS_MAX_SINK_TABLE_ENTRIES_ATTRIBUTE_ID (0x0000) +#define ZCL_GP_SERVER_SINK_TABLE_ATTRIBUTE_ID (0x0001) +#define ZCL_GP_SERVER_GPS_COMMUNICATION_MODE_ATTRIBUTE_ID (0x0002) +#define ZCL_GP_SERVER_GPS_COMMISSIONING_EXIT_MODE_ATTRIBUTE_ID (0x0003) +#define ZCL_GP_SERVER_GPS_COMMISSIONING_WINDOW_ATTRIBUTE_ID (0x0004) +#define ZCL_GP_SERVER_GPS_SECURITY_LEVEL_ATTRIBUTE_ID (0x0005) +#define ZCL_GP_SERVER_GPS_FUNCTIONALITY_ATTRIBUTE_ID (0x0006) +#define ZCL_GP_SERVER_GPS_ACTIVE_FUNCTIONALITY_ATTRIBUTE_ID (0x0007) +#define ZCL_GP_SERVER_GP_SHARED_SECURITY_KEY_TYPE_ATTRIBUTE_ID (0x0020) +#define ZCL_GP_SERVER_GP_SHARED_SECURITY_KEY_ATTRIBUTE_ID (0x0021) +#define ZCL_GP_SERVER_GP_LINK_KEY_ATTRIBUTE_ID (0x0022) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Keep-Alive // Client attributes -#define ZCL_KEEPALIVE_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_KEEPALIVE_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_KEEPALIVE_BASE_ATTRIBUTE_ID 0x0000 // Ver.: since se-1.2b-15-0131-02 -#define ZCL_KEEPALIVE_JITTER_ATTRIBUTE_ID 0x0001 // Ver.: since se-1.2b-15-0131-02 -#define ZCL_KEEPALIVE_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_KEEPALIVE_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_KEEPALIVE_BASE_ATTRIBUTE_ID (0x0000) +#define ZCL_KEEPALIVE_JITTER_ATTRIBUTE_ID (0x0001) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) -// Attribute types for cluster: Shade Configuration -// Cluster specification level: zcl-6.0-15-02018-001 +// Attribute ids for cluster: Shade Configuration // Client attributes -#define ZCL_SHADE_CONFIG_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_SHADE_CONFIG_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_SHADE_CONFIG_PHYSICAL_CLOSED_LIMIT_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_SHADE_CONFIG_MOTOR_STEP_SIZE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_SHADE_CONFIG_STATUS_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_SHADE_CONFIG_CLOSED_LIMIT_ATTRIBUTE_ID 0x0010 // Ver.: always -#define ZCL_SHADE_CONFIG_MODE_ATTRIBUTE_ID 0x0011 // Ver.: always -#define ZCL_SHADE_CONFIG_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_SHADE_CONFIG_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_SHADE_CONFIG_PHYSICAL_CLOSED_LIMIT_ATTRIBUTE_ID (0x0000) +#define ZCL_SHADE_CONFIG_MOTOR_STEP_SIZE_ATTRIBUTE_ID (0x0001) +#define ZCL_SHADE_CONFIG_STATUS_ATTRIBUTE_ID (0x0002) +#define ZCL_SHADE_CONFIG_CLOSED_LIMIT_ATTRIBUTE_ID (0x0010) +#define ZCL_SHADE_CONFIG_MODE_ATTRIBUTE_ID (0x0011) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) -// Attribute types for cluster: Door Lock -// Cluster specification level: zcl-6.0-15-02018-001 +// Attribute ids for cluster: Door Lock // Client attributes -#define ZCL_DOOR_LOCK_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_DOOR_LOCK_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_LOCK_STATE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_LOCK_TYPE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_ACTUATOR_ENABLED_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_DOOR_STATE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_DOOR_OPEN_EVENTS_ATTRIBUTE_ID 0x0004 // Ver.: always -#define ZCL_DOOR_CLOSED_EVENTS_ATTRIBUTE_ID 0x0005 // Ver.: always -#define ZCL_OPEN_PERIOD_ATTRIBUTE_ID 0x0006 // Ver.: always -#define ZCL_NUM_LOCK_RECORDS_SUPPORTED_ATTRIBUTE_ID 0x0010 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_NUM_TOTAL_USERS_SUPPORTED_ATTRIBUTE_ID 0x0011 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_NUM_PIN_USERS_SUPPORTED_ATTRIBUTE_ID 0x0012 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_NUM_RFID_USERS_SUPPORTED_ATTRIBUTE_ID 0x0013 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_NUM_WEEKDAY_SCHEDULES_SUPPORTED_PER_USER_ATTRIBUTE_ID 0x0014 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_NUM_YEARDAY_SCHEDULES_SUPPORTED_PER_USER_ATTRIBUTE_ID 0x0015 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_NUM_HOLIDAY_SCHEDULES_SUPPORTED_PER_USER_ATTRIBUTE_ID 0x0016 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_MAX_PIN_LENGTH_ATTRIBUTE_ID 0x0017 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_MIN_PIN_LENGTH_ATTRIBUTE_ID 0x0018 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_MAX_RFID_CODE_LENGTH_ATTRIBUTE_ID 0x0019 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_MIN_RFID_CODE_LENGTH_ATTRIBUTE_ID 0x001A // Ver.: since ha-1.2-05-3520-29 -#define ZCL_ENABLE_LOGGING_ATTRIBUTE_ID 0x0020 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_LANGUAGE_ATTRIBUTE_ID 0x0021 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_LED_SETTINGS_ATTRIBUTE_ID 0x0022 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_AUTO_RELOCK_TIME_ATTRIBUTE_ID 0x0023 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_SOUND_VOLUME_ATTRIBUTE_ID 0x0024 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_OPERATING_MODE_ATTRIBUTE_ID 0x0025 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_SUPPORTED_OPERATING_MODES_ATTRIBUTE_ID 0x0026 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_DEFAULT_CONFIGURATION_REGISTER_ATTRIBUTE_ID 0x0027 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_ENABLE_LOCAL_PROGRAMMING_ATTRIBUTE_ID 0x0028 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_ENABLE_ONE_TOUCH_LOCKING_ATTRIBUTE_ID 0x0029 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_ENABLE_INSIDE_STATUS_LED_ATTRIBUTE_ID 0x002A // Ver.: since ha-1.2-05-3520-29 -#define ZCL_ENABLE_PRIVACY_MODE_BUTTON_ATTRIBUTE_ID 0x002B // Ver.: since ha-1.2-05-3520-29 -#define ZCL_WRONG_CODE_ENTRY_LIMIT_ATTRIBUTE_ID 0x0030 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_USER_CODE_TEMPORARY_DISABLE_TIME_ATTRIBUTE_ID 0x0031 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_SEND_PIN_OVER_THE_AIR_ATTRIBUTE_ID 0x0032 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_REQUIRE_PIN_FOR_RF_OPERATION_ATTRIBUTE_ID 0x0033 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_ZIGBEE_SECURITY_LEVEL_ATTRIBUTE_ID 0x0034 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_DOOR_LOCK_ALARM_MASK_ATTRIBUTE_ID 0x0040 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_KEYPAD_OPERATION_EVENT_MASK_ATTRIBUTE_ID 0x0041 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_RF_OPERATION_EVENT_MASK_ATTRIBUTE_ID 0x0042 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_MANUAL_OPERATION_EVENT_MASK_ATTRIBUTE_ID 0x0043 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_RFID_OPERATION_EVENT_MASK_ATTRIBUTE_ID 0x0044 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_KEYPAD_PROGRAMMING_EVENT_MASK_ATTRIBUTE_ID 0x0045 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_RF_PROGRAMMING_EVENT_MASK_ATTRIBUTE_ID 0x0046 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_RFID_PROGRAMMING_EVENT_MASK_ATTRIBUTE_ID 0x0047 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_DOOR_LOCK_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_DOOR_LOCK_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Window Covering -// Cluster specification level: zcl-6.0-15-02018-001 +#define ZCL_LOCK_STATE_ATTRIBUTE_ID (0x0000) +#define ZCL_LOCK_TYPE_ATTRIBUTE_ID (0x0001) +#define ZCL_ACTUATOR_ENABLED_ATTRIBUTE_ID (0x0002) +#define ZCL_DOOR_STATE_ATTRIBUTE_ID (0x0003) +#define ZCL_DOOR_OPEN_EVENTS_ATTRIBUTE_ID (0x0004) +#define ZCL_DOOR_CLOSED_EVENTS_ATTRIBUTE_ID (0x0005) +#define ZCL_OPEN_PERIOD_ATTRIBUTE_ID (0x0006) +#define ZCL_NUM_LOCK_RECORDS_SUPPORTED_ATTRIBUTE_ID (0x0010) +#define ZCL_NUM_TOTAL_USERS_SUPPORTED_ATTRIBUTE_ID (0x0011) +#define ZCL_NUM_PIN_USERS_SUPPORTED_ATTRIBUTE_ID (0x0012) +#define ZCL_NUM_RFID_USERS_SUPPORTED_ATTRIBUTE_ID (0x0013) +#define ZCL_NUM_WEEKDAY_SCHEDULES_SUPPORTED_PER_USER_ATTRIBUTE_ID (0x0014) +#define ZCL_NUM_YEARDAY_SCHEDULES_SUPPORTED_PER_USER_ATTRIBUTE_ID (0x0015) +#define ZCL_NUM_HOLIDAY_SCHEDULES_SUPPORTED_PER_USER_ATTRIBUTE_ID (0x0016) +#define ZCL_MAX_PIN_LENGTH_ATTRIBUTE_ID (0x0017) +#define ZCL_MIN_PIN_LENGTH_ATTRIBUTE_ID (0x0018) +#define ZCL_MAX_RFID_CODE_LENGTH_ATTRIBUTE_ID (0x0019) +#define ZCL_MIN_RFID_CODE_LENGTH_ATTRIBUTE_ID (0x001A) +#define ZCL_ENABLE_LOGGING_ATTRIBUTE_ID (0x0020) +#define ZCL_LANGUAGE_ATTRIBUTE_ID (0x0021) +#define ZCL_LED_SETTINGS_ATTRIBUTE_ID (0x0022) +#define ZCL_AUTO_RELOCK_TIME_ATTRIBUTE_ID (0x0023) +#define ZCL_SOUND_VOLUME_ATTRIBUTE_ID (0x0024) +#define ZCL_OPERATING_MODE_ATTRIBUTE_ID (0x0025) +#define ZCL_SUPPORTED_OPERATING_MODES_ATTRIBUTE_ID (0x0026) +#define ZCL_DEFAULT_CONFIGURATION_REGISTER_ATTRIBUTE_ID (0x0027) +#define ZCL_ENABLE_LOCAL_PROGRAMMING_ATTRIBUTE_ID (0x0028) +#define ZCL_ENABLE_ONE_TOUCH_LOCKING_ATTRIBUTE_ID (0x0029) +#define ZCL_ENABLE_INSIDE_STATUS_LED_ATTRIBUTE_ID (0x002A) +#define ZCL_ENABLE_PRIVACY_MODE_BUTTON_ATTRIBUTE_ID (0x002B) +#define ZCL_WRONG_CODE_ENTRY_LIMIT_ATTRIBUTE_ID (0x0030) +#define ZCL_USER_CODE_TEMPORARY_DISABLE_TIME_ATTRIBUTE_ID (0x0031) +#define ZCL_SEND_PIN_OVER_THE_AIR_ATTRIBUTE_ID (0x0032) +#define ZCL_REQUIRE_PIN_FOR_RF_OPERATION_ATTRIBUTE_ID (0x0033) +#define ZCL_ZIGBEE_SECURITY_LEVEL_ATTRIBUTE_ID (0x0034) +#define ZCL_DOOR_LOCK_ALARM_MASK_ATTRIBUTE_ID (0x0040) +#define ZCL_KEYPAD_OPERATION_EVENT_MASK_ATTRIBUTE_ID (0x0041) +#define ZCL_RF_OPERATION_EVENT_MASK_ATTRIBUTE_ID (0x0042) +#define ZCL_MANUAL_OPERATION_EVENT_MASK_ATTRIBUTE_ID (0x0043) +#define ZCL_RFID_OPERATION_EVENT_MASK_ATTRIBUTE_ID (0x0044) +#define ZCL_KEYPAD_PROGRAMMING_EVENT_MASK_ATTRIBUTE_ID (0x0045) +#define ZCL_RF_PROGRAMMING_EVENT_MASK_ATTRIBUTE_ID (0x0046) +#define ZCL_RFID_PROGRAMMING_EVENT_MASK_ATTRIBUTE_ID (0x0047) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Window Covering // Client attributes -#define ZCL_WINDOW_COVERING_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_WINDOW_COVERING_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_COVERING_TYPE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_LIMIT_LIFT_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_LIMIT_TILT_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_CURRENT_LIFT_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_CURRENT_TILT_ATTRIBUTE_ID 0x0004 // Ver.: always -#define ZCL_NUMBER_LIFT_ATTRIBUTE_ID 0x0005 // Ver.: always -#define ZCL_NUMBER_TILT_ATTRIBUTE_ID 0x0006 // Ver.: always -#define ZCL_CONFIG_STATUS_ATTRIBUTE_ID 0x0007 // Ver.: always -#define ZCL_CURRENT_LIFT_PERCENTAGE_ATTRIBUTE_ID 0x0008 // Ver.: always -#define ZCL_CURRENT_TILT_PERCENTAGE_ATTRIBUTE_ID 0x0009 // Ver.: always -#define ZCL_OPEN_LIMIT_LIFT_ATTRIBUTE_ID 0x0010 // Ver.: always -#define ZCL_CLOSED_LIMIT_LIFT_ATTRIBUTE_ID 0x0011 // Ver.: always -#define ZCL_OPEN_LIMIT_TILT_ATTRIBUTE_ID 0x0012 // Ver.: always -#define ZCL_CLOSED_LIMIT_TILT_ATTRIBUTE_ID 0x0013 // Ver.: always -#define ZCL_VELOCITY_LIFT_ATTRIBUTE_ID 0x0014 // Ver.: always -#define ZCL_ACCELERATION_LIFT_ATTRIBUTE_ID 0x0015 // Ver.: always -#define ZCL_DECELERATION_LIFT_ATTRIBUTE_ID 0x0016 // Ver.: always -#define ZCL_MODE_ATTRIBUTE_ID 0x0017 // Ver.: always -#define ZCL_SETPOINTS_LIFT_ATTRIBUTE_ID 0x0018 // Ver.: always -#define ZCL_SETPOINTS_TILT_ATTRIBUTE_ID 0x0019 // Ver.: always -#define ZCL_WINDOW_COVERING_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_WINDOW_COVERING_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Barrier Control -// Cluster specification level: zcl-6.0-15-02018-001 +#define ZCL_COVERING_TYPE_ATTRIBUTE_ID (0x0000) +#define ZCL_LIMIT_LIFT_ATTRIBUTE_ID (0x0001) +#define ZCL_LIMIT_TILT_ATTRIBUTE_ID (0x0002) +#define ZCL_CURRENT_LIFT_ATTRIBUTE_ID (0x0003) +#define ZCL_CURRENT_TILT_ATTRIBUTE_ID (0x0004) +#define ZCL_NUMBER_LIFT_ATTRIBUTE_ID (0x0005) +#define ZCL_NUMBER_TILT_ATTRIBUTE_ID (0x0006) +#define ZCL_CONFIG_STATUS_ATTRIBUTE_ID (0x0007) +#define ZCL_CURRENT_LIFT_PERCENTAGE_ATTRIBUTE_ID (0x0008) +#define ZCL_CURRENT_TILT_PERCENTAGE_ATTRIBUTE_ID (0x0009) +#define ZCL_OPEN_LIMIT_LIFT_ATTRIBUTE_ID (0x0010) +#define ZCL_CLOSED_LIMIT_LIFT_ATTRIBUTE_ID (0x0011) +#define ZCL_OPEN_LIMIT_TILT_ATTRIBUTE_ID (0x0012) +#define ZCL_CLOSED_LIMIT_TILT_ATTRIBUTE_ID (0x0013) +#define ZCL_VELOCITY_LIFT_ATTRIBUTE_ID (0x0014) +#define ZCL_ACCELERATION_LIFT_ATTRIBUTE_ID (0x0015) +#define ZCL_DECELERATION_LIFT_ATTRIBUTE_ID (0x0016) +#define ZCL_MODE_ATTRIBUTE_ID (0x0017) +#define ZCL_SETPOINTS_LIFT_ATTRIBUTE_ID (0x0018) +#define ZCL_SETPOINTS_TILT_ATTRIBUTE_ID (0x0019) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Barrier Control // Client attributes -#define ZCL_BARRIER_CONTROL_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_BARRIER_CONTROL_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_BARRIER_MOVING_STATE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_BARRIER_SAFETY_STATUS_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_BARRIER_CAPABILITIES_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_BARRIER_OPEN_EVENTS_ATTRIBUTE_ID 0x0004 // Ver.: always -#define ZCL_BARRIER_CLOSE_EVENTS_ATTRIBUTE_ID 0x0005 // Ver.: always -#define ZCL_BARRIER_COMMAND_OPEN_EVENTS_ATTRIBUTE_ID 0x0006 // Ver.: always -#define ZCL_BARRIER_COMMAND_CLOSE_EVENTS_ATTRIBUTE_ID 0x0007 // Ver.: always -#define ZCL_BARRIER_OPEN_PERIOD_ATTRIBUTE_ID 0x0008 // Ver.: always -#define ZCL_BARRIER_CLOSE_PERIOD_ATTRIBUTE_ID 0x0009 // Ver.: always -#define ZCL_BARRIER_POSITION_ATTRIBUTE_ID 0x000A // Ver.: always -#define ZCL_BARRIER_CONTROL_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_BARRIER_CONTROL_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Pump Configuration and Control -// Cluster specification level: zcl-6.0-15-02018-001 +#define ZCL_BARRIER_MOVING_STATE_ATTRIBUTE_ID (0x0001) +#define ZCL_BARRIER_SAFETY_STATUS_ATTRIBUTE_ID (0x0002) +#define ZCL_BARRIER_CAPABILITIES_ATTRIBUTE_ID (0x0003) +#define ZCL_BARRIER_OPEN_EVENTS_ATTRIBUTE_ID (0x0004) +#define ZCL_BARRIER_CLOSE_EVENTS_ATTRIBUTE_ID (0x0005) +#define ZCL_BARRIER_COMMAND_OPEN_EVENTS_ATTRIBUTE_ID (0x0006) +#define ZCL_BARRIER_COMMAND_CLOSE_EVENTS_ATTRIBUTE_ID (0x0007) +#define ZCL_BARRIER_OPEN_PERIOD_ATTRIBUTE_ID (0x0008) +#define ZCL_BARRIER_CLOSE_PERIOD_ATTRIBUTE_ID (0x0009) +#define ZCL_BARRIER_POSITION_ATTRIBUTE_ID (0x000A) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Pump Configuration and Control // Client attributes -#define ZCL_PUMP_CONFIG_CONTROL_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_PUMP_CONFIG_CONTROL_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_MAX_PRESSURE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_MAX_SPEED_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_MAX_FLOW_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_MIN_CONST_PRESSURE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_MAX_CONST_PRESSURE_ATTRIBUTE_ID 0x0004 // Ver.: always -#define ZCL_MIN_COMP_PRESSURE_ATTRIBUTE_ID 0x0005 // Ver.: always -#define ZCL_MAX_COMP_PRESSURE_ATTRIBUTE_ID 0x0006 // Ver.: always -#define ZCL_MIN_CONST_SPEED_ATTRIBUTE_ID 0x0007 // Ver.: always -#define ZCL_MAX_CONST_SPEED_ATTRIBUTE_ID 0x0008 // Ver.: always -#define ZCL_MIN_CONST_FLOW_ATTRIBUTE_ID 0x0009 // Ver.: always -#define ZCL_MAX_CONST_FLOW_ATTRIBUTE_ID 0x000A // Ver.: always -#define ZCL_MIN_CONST_TEMP_ATTRIBUTE_ID 0x000B // Ver.: always -#define ZCL_MAX_CONST_TEMP_ATTRIBUTE_ID 0x000C // Ver.: always -#define ZCL_PUMP_STATUS_ATTRIBUTE_ID 0x0010 // Ver.: always -#define ZCL_EFFECTIVE_OPERATION_MODE_ATTRIBUTE_ID 0x0011 // Ver.: always -#define ZCL_EFFECTIVE_CONTROL_MODE_ATTRIBUTE_ID 0x0012 // Ver.: always -#define ZCL_CAPACITY_ATTRIBUTE_ID 0x0013 // Ver.: always -#define ZCL_SPEED_ATTRIBUTE_ID 0x0014 // Ver.: always -#define ZCL_LIFETIME_RUNNING_HOURS_ATTRIBUTE_ID 0x0015 // Ver.: always -#define ZCL_PUMP_POWER_ATTRIBUTE_ID 0x0016 // Ver.: always -#define ZCL_LIFETIME_ENERGY_CONSUMED_ATTRIBUTE_ID 0x0017 // Ver.: always -#define ZCL_OPERATION_MODE_ATTRIBUTE_ID 0x0020 // Ver.: always -#define ZCL_CONTROL_MODE_ATTRIBUTE_ID 0x0021 // Ver.: always -#define ZCL_PUMP_ALARM_MASK_ATTRIBUTE_ID 0x0022 // Ver.: always -#define ZCL_PUMP_CONFIG_CONTROL_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_PUMP_CONFIG_CONTROL_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Thermostat -// Cluster specification level: zcl-6.0-15-02018-001 +#define ZCL_MAX_PRESSURE_ATTRIBUTE_ID (0x0000) +#define ZCL_MAX_SPEED_ATTRIBUTE_ID (0x0001) +#define ZCL_MAX_FLOW_ATTRIBUTE_ID (0x0002) +#define ZCL_MIN_CONST_PRESSURE_ATTRIBUTE_ID (0x0003) +#define ZCL_MAX_CONST_PRESSURE_ATTRIBUTE_ID (0x0004) +#define ZCL_MIN_COMP_PRESSURE_ATTRIBUTE_ID (0x0005) +#define ZCL_MAX_COMP_PRESSURE_ATTRIBUTE_ID (0x0006) +#define ZCL_MIN_CONST_SPEED_ATTRIBUTE_ID (0x0007) +#define ZCL_MAX_CONST_SPEED_ATTRIBUTE_ID (0x0008) +#define ZCL_MIN_CONST_FLOW_ATTRIBUTE_ID (0x0009) +#define ZCL_MAX_CONST_FLOW_ATTRIBUTE_ID (0x000A) +#define ZCL_MIN_CONST_TEMP_ATTRIBUTE_ID (0x000B) +#define ZCL_MAX_CONST_TEMP_ATTRIBUTE_ID (0x000C) +#define ZCL_PUMP_STATUS_ATTRIBUTE_ID (0x0010) +#define ZCL_EFFECTIVE_OPERATION_MODE_ATTRIBUTE_ID (0x0011) +#define ZCL_EFFECTIVE_CONTROL_MODE_ATTRIBUTE_ID (0x0012) +#define ZCL_CAPACITY_ATTRIBUTE_ID (0x0013) +#define ZCL_SPEED_ATTRIBUTE_ID (0x0014) +#define ZCL_LIFETIME_RUNNING_HOURS_ATTRIBUTE_ID (0x0015) +#define ZCL_PUMP_POWER_ATTRIBUTE_ID (0x0016) +#define ZCL_LIFETIME_ENERGY_CONSUMED_ATTRIBUTE_ID (0x0017) +#define ZCL_OPERATION_MODE_ATTRIBUTE_ID (0x0020) +#define ZCL_CONTROL_MODE_ATTRIBUTE_ID (0x0021) +#define ZCL_PUMP_ALARM_MASK_ATTRIBUTE_ID (0x0022) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Thermostat // Client attributes -#define ZCL_THERMOSTAT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_THERMOSTAT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_LOCAL_TEMPERATURE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_OUTDOOR_TEMPERATURE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_THERMOSTAT_OCCUPANCY_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_ABS_MIN_HEAT_SETPOINT_LIMIT_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_ABS_MAX_HEAT_SETPOINT_LIMIT_ATTRIBUTE_ID 0x0004 // Ver.: always -#define ZCL_ABS_MIN_COOL_SETPOINT_LIMIT_ATTRIBUTE_ID 0x0005 // Ver.: always -#define ZCL_ABS_MAX_COOL_SETPOINT_LIMIT_ATTRIBUTE_ID 0x0006 // Ver.: always -#define ZCL_PI_COOLING_DEMAND_ATTRIBUTE_ID 0x0007 // Ver.: always -#define ZCL_PI_HEATING_DEMAND_ATTRIBUTE_ID 0x0008 // Ver.: always -#define ZCL_HVAC_SYSTEM_TYPE_CONFIGURATION_ATTRIBUTE_ID 0x0009 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_LOCAL_TEMPERATURE_CALIBRATION_ATTRIBUTE_ID 0x0010 // Ver.: always -#define ZCL_OCCUPIED_COOLING_SETPOINT_ATTRIBUTE_ID 0x0011 // Ver.: always -#define ZCL_OCCUPIED_HEATING_SETPOINT_ATTRIBUTE_ID 0x0012 // Ver.: always -#define ZCL_UNOCCUPIED_COOLING_SETPOINT_ATTRIBUTE_ID 0x0013 // Ver.: always -#define ZCL_UNOCCUPIED_HEATING_SETPOINT_ATTRIBUTE_ID 0x0014 // Ver.: always -#define ZCL_MIN_HEAT_SETPOINT_LIMIT_ATTRIBUTE_ID 0x0015 // Ver.: always -#define ZCL_MAX_HEAT_SETPOINT_LIMIT_ATTRIBUTE_ID 0x0016 // Ver.: always -#define ZCL_MIN_COOL_SETPOINT_LIMIT_ATTRIBUTE_ID 0x0017 // Ver.: always -#define ZCL_MAX_COOL_SETPOINT_LIMIT_ATTRIBUTE_ID 0x0018 // Ver.: always -#define ZCL_MIN_SETPOINT_DEAD_BAND_ATTRIBUTE_ID 0x0019 // Ver.: always -#define ZCL_REMOTE_SENSING_ATTRIBUTE_ID 0x001A // Ver.: always -#define ZCL_CONTROL_SEQUENCE_OF_OPERATION_ATTRIBUTE_ID 0x001B // Ver.: always -#define ZCL_SYSTEM_MODE_ATTRIBUTE_ID 0x001C // Ver.: always -#define ZCL_THERMOSTAT_ALARM_MASK_ATTRIBUTE_ID 0x001D // Ver.: always -#define ZCL_THERMOSTAT_RUNNING_MODE_ATTRIBUTE_ID 0x001E // Ver.: since ha-1.2-05-3520-29 -#define ZCL_START_OF_WEEK_ATTRIBUTE_ID 0x0020 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_NUMBER_OF_WEEKLY_TRANSITIONS_ATTRIBUTE_ID 0x0021 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_NUMBER_OF_DAILY_TRANSITIONS_ATTRIBUTE_ID 0x0022 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_TEMPERATURE_SETPOINT_HOLD_ATTRIBUTE_ID 0x0023 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_TEMPERATURE_SETPOINT_HOLD_DURATION_ATTRIBUTE_ID 0x0024 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_THERMOSTAT_PROGRAMMING_OPERATION_MODE_ATTRIBUTE_ID 0x0025 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_THERMOSTAT_RUNNING_STATE_ATTRIBUTE_ID 0x0029 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_SETPOINT_CHANGE_SOURCE_ATTRIBUTE_ID 0x0030 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_SETPOINT_CHANGE_AMOUNT_ATTRIBUTE_ID 0x0031 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_SETPOINT_CHANGE_SOURCE_TIMESTAMP_ATTRIBUTE_ID 0x0032 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_OCCUPIED_SETBACK_ATTRIBUTE_ID 0x0034 // Ver.: always -#define ZCL_OCCUPIED_SETBACK_MIN_ATTRIBUTE_ID 0x0035 // Ver.: always -#define ZCL_OCCUPIED_SETBACK_MAX_ATTRIBUTE_ID 0x0036 // Ver.: always -#define ZCL_UNOCCUPIED_SETBACK_ATTRIBUTE_ID 0x0037 // Ver.: always -#define ZCL_UNOCCUPIED_SETBACK_MIN_ATTRIBUTE_ID 0x0038 // Ver.: always -#define ZCL_UNOCCUPIED_SETBACK_MAX_ATTRIBUTE_ID 0x0039 // Ver.: always -#define ZCL_EMERGENCY_HEAT_DELTA_ATTRIBUTE_ID 0x003A // Ver.: always -#define ZCL_AC_TYPE_ATTRIBUTE_ID 0x0040 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_AC_CAPACITY_ATTRIBUTE_ID 0x0041 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_AC_REFRIGERANT_TYPE_ATTRIBUTE_ID 0x0042 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_AC_COMPRESSOR_ATTRIBUTE_ID 0x0043 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_AC_ERROR_CODE_ATTRIBUTE_ID 0x0044 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_AC_LOUVER_POSITION_ATTRIBUTE_ID 0x0045 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_AC_COIL_TEMPERATURE_ATTRIBUTE_ID 0x0046 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_AC_CAPACITY_FORMAT_ATTRIBUTE_ID 0x0047 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_THERMOSTAT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_THERMOSTAT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Fan Control -// Cluster specification level: zcl-6.0-15-02018-001 +#define ZCL_LOCAL_TEMPERATURE_ATTRIBUTE_ID (0x0000) +#define ZCL_OUTDOOR_TEMPERATURE_ATTRIBUTE_ID (0x0001) +#define ZCL_THERMOSTAT_OCCUPANCY_ATTRIBUTE_ID (0x0002) +#define ZCL_ABS_MIN_HEAT_SETPOINT_LIMIT_ATTRIBUTE_ID (0x0003) +#define ZCL_ABS_MAX_HEAT_SETPOINT_LIMIT_ATTRIBUTE_ID (0x0004) +#define ZCL_ABS_MIN_COOL_SETPOINT_LIMIT_ATTRIBUTE_ID (0x0005) +#define ZCL_ABS_MAX_COOL_SETPOINT_LIMIT_ATTRIBUTE_ID (0x0006) +#define ZCL_PI_COOLING_DEMAND_ATTRIBUTE_ID (0x0007) +#define ZCL_PI_HEATING_DEMAND_ATTRIBUTE_ID (0x0008) +#define ZCL_HVAC_SYSTEM_TYPE_CONFIGURATION_ATTRIBUTE_ID (0x0009) +#define ZCL_LOCAL_TEMPERATURE_CALIBRATION_ATTRIBUTE_ID (0x0010) +#define ZCL_OCCUPIED_COOLING_SETPOINT_ATTRIBUTE_ID (0x0011) +#define ZCL_OCCUPIED_HEATING_SETPOINT_ATTRIBUTE_ID (0x0012) +#define ZCL_UNOCCUPIED_COOLING_SETPOINT_ATTRIBUTE_ID (0x0013) +#define ZCL_UNOCCUPIED_HEATING_SETPOINT_ATTRIBUTE_ID (0x0014) +#define ZCL_MIN_HEAT_SETPOINT_LIMIT_ATTRIBUTE_ID (0x0015) +#define ZCL_MAX_HEAT_SETPOINT_LIMIT_ATTRIBUTE_ID (0x0016) +#define ZCL_MIN_COOL_SETPOINT_LIMIT_ATTRIBUTE_ID (0x0017) +#define ZCL_MAX_COOL_SETPOINT_LIMIT_ATTRIBUTE_ID (0x0018) +#define ZCL_MIN_SETPOINT_DEAD_BAND_ATTRIBUTE_ID (0x0019) +#define ZCL_REMOTE_SENSING_ATTRIBUTE_ID (0x001A) +#define ZCL_CONTROL_SEQUENCE_OF_OPERATION_ATTRIBUTE_ID (0x001B) +#define ZCL_SYSTEM_MODE_ATTRIBUTE_ID (0x001C) +#define ZCL_THERMOSTAT_ALARM_MASK_ATTRIBUTE_ID (0x001D) +#define ZCL_THERMOSTAT_RUNNING_MODE_ATTRIBUTE_ID (0x001E) +#define ZCL_START_OF_WEEK_ATTRIBUTE_ID (0x0020) +#define ZCL_NUMBER_OF_WEEKLY_TRANSITIONS_ATTRIBUTE_ID (0x0021) +#define ZCL_NUMBER_OF_DAILY_TRANSITIONS_ATTRIBUTE_ID (0x0022) +#define ZCL_TEMPERATURE_SETPOINT_HOLD_ATTRIBUTE_ID (0x0023) +#define ZCL_TEMPERATURE_SETPOINT_HOLD_DURATION_ATTRIBUTE_ID (0x0024) +#define ZCL_THERMOSTAT_PROGRAMMING_OPERATION_MODE_ATTRIBUTE_ID (0x0025) +#define ZCL_THERMOSTAT_RUNNING_STATE_ATTRIBUTE_ID (0x0029) +#define ZCL_SETPOINT_CHANGE_SOURCE_ATTRIBUTE_ID (0x0030) +#define ZCL_SETPOINT_CHANGE_AMOUNT_ATTRIBUTE_ID (0x0031) +#define ZCL_SETPOINT_CHANGE_SOURCE_TIMESTAMP_ATTRIBUTE_ID (0x0032) +#define ZCL_AC_TYPE_ATTRIBUTE_ID (0x0040) +#define ZCL_AC_CAPACITY_ATTRIBUTE_ID (0x0041) +#define ZCL_AC_REFRIGERANT_TYPE_ATTRIBUTE_ID (0x0042) +#define ZCL_AC_COMPRESSOR_ATTRIBUTE_ID (0x0043) +#define ZCL_AC_ERROR_CODE_ATTRIBUTE_ID (0x0044) +#define ZCL_AC_LOUVER_POSITION_ATTRIBUTE_ID (0x0045) +#define ZCL_AC_COIL_TEMPERATURE_ATTRIBUTE_ID (0x0046) +#define ZCL_AC_CAPACITY_FORMAT_ATTRIBUTE_ID (0x0047) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Fan Control // Client attributes -#define ZCL_FAN_CONTROL_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_FAN_CONTROL_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_FAN_CONTROL_FAN_MODE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_FAN_CONTROL_FAN_MODE_SEQUENCE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_FAN_DELAY_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_FAN_CONTROL_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_FAN_CONTROL_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_FAN_CONTROL_FAN_MODE_ATTRIBUTE_ID (0x0000) +#define ZCL_FAN_CONTROL_FAN_MODE_SEQUENCE_ATTRIBUTE_ID (0x0001) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) -// Attribute types for cluster: Dehumidification Control -// Cluster specification level: zcl-6.0-15-02018-001 +// Attribute ids for cluster: Dehumidification Control // Client attributes -#define ZCL_DEHUMID_CONTROL_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_DEHUMID_CONTROL_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_RELATIVE_HUMIDITY_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_DEHUMIDIFICATION_COOLING_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_RH_DEHUMIDIFICATION_SETPOINT_ATTRIBUTE_ID 0x0010 // Ver.: always -#define ZCL_RELATIVE_HUMIDITY_MODE_ATTRIBUTE_ID 0x0011 // Ver.: always -#define ZCL_DEHUMIDIFICATION_LOCKOUT_ATTRIBUTE_ID 0x0012 // Ver.: always -#define ZCL_DEHUMIDIFICATION_HYSTERESIS_ATTRIBUTE_ID 0x0013 // Ver.: always -#define ZCL_DEHUMIDIFICATION_MAX_COOL_ATTRIBUTE_ID 0x0014 // Ver.: always -#define ZCL_RELATIVE_HUMIDITY_DISPLAY_ATTRIBUTE_ID 0x0015 // Ver.: always -#define ZCL_DEHUMID_CONTROL_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_DEHUMID_CONTROL_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Thermostat User Interface Configuration -// Cluster specification level: zcl-6.0-15-02018-001 +#define ZCL_RELATIVE_HUMIDITY_ATTRIBUTE_ID (0x0000) +#define ZCL_DEHUMIDIFICATION_COOLING_ATTRIBUTE_ID (0x0001) +#define ZCL_RH_DEHUMIDIFICATION_SETPOINT_ATTRIBUTE_ID (0x0010) +#define ZCL_RELATIVE_HUMIDITY_MODE_ATTRIBUTE_ID (0x0011) +#define ZCL_DEHUMIDIFICATION_LOCKOUT_ATTRIBUTE_ID (0x0012) +#define ZCL_DEHUMIDIFICATION_HYSTERESIS_ATTRIBUTE_ID (0x0013) +#define ZCL_DEHUMIDIFICATION_MAX_COOL_ATTRIBUTE_ID (0x0014) +#define ZCL_RELATIVE_HUMIDITY_DISPLAY_ATTRIBUTE_ID (0x0015) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Thermostat User Interface Configuration // Client attributes -#define ZCL_THERMOSTAT_UI_CONFIG_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_THERMOSTAT_UI_CONFIG_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_TEMPERATURE_DISPLAY_MODE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_KEYPAD_LOCKOUT_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_SCHEDULE_PROGRAMMING_VISIBILITY_ATTRIBUTE_ID 0x0002 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BACKLIGHT_TIMEOUT_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_SETPOINT_SOURCE_INDICATION_ATTRIBUTE_ID 0x0004 // Ver.: always -#define ZCL_THERMOSTAT_UI_CONFIG_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_THERMOSTAT_UI_CONFIG_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_TEMPERATURE_DISPLAY_MODE_ATTRIBUTE_ID (0x0000) +#define ZCL_KEYPAD_LOCKOUT_ATTRIBUTE_ID (0x0001) +#define ZCL_SCHEDULE_PROGRAMMING_VISIBILITY_ATTRIBUTE_ID (0x0002) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) -// Attribute types for cluster: Color Control -// Cluster specification level: zcl6-errata-14-0129-15 +// Attribute ids for cluster: Color Control // Client attributes -#define ZCL_COLOR_CONTROL_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_COLOR_CONTROL_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_COLOR_CONTROL_CURRENT_HUE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_COLOR_CONTROL_CURRENT_SATURATION_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_COLOR_CONTROL_REMAINING_TIME_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_COLOR_CONTROL_CURRENT_X_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_COLOR_CONTROL_CURRENT_Y_ATTRIBUTE_ID 0x0004 // Ver.: always -#define ZCL_COLOR_CONTROL_DRIFT_COMPENSATION_ATTRIBUTE_ID 0x0005 // Ver.: always -#define ZCL_COLOR_CONTROL_COMPENSATION_TEXT_ATTRIBUTE_ID 0x0006 // Ver.: always -#define ZCL_COLOR_CONTROL_COLOR_TEMPERATURE_ATTRIBUTE_ID 0x0007 // Ver.: always -#define ZCL_COLOR_CONTROL_COLOR_MODE_ATTRIBUTE_ID 0x0008 // Ver.: always -#define ZCL_COLOR_CONTROL_OPTIONS_ATTRIBUTE_ID 0x000F // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_COLOR_CONTROL_NUMBER_OF_PRIMARIES_ATTRIBUTE_ID 0x0010 // Ver.: always -#define ZCL_COLOR_CONTROL_PRIMARY_1_X_ATTRIBUTE_ID 0x0011 // Ver.: always -#define ZCL_COLOR_CONTROL_PRIMARY_1_Y_ATTRIBUTE_ID 0x0012 // Ver.: always -#define ZCL_COLOR_CONTROL_PRIMARY_1_INTENSITY_ATTRIBUTE_ID 0x0013 // Ver.: always -#define ZCL_COLOR_CONTROL_PRIMARY_2_X_ATTRIBUTE_ID 0x0015 // Ver.: always -#define ZCL_COLOR_CONTROL_PRIMARY_2_Y_ATTRIBUTE_ID 0x0016 // Ver.: always -#define ZCL_COLOR_CONTROL_PRIMARY_2_INTENSITY_ATTRIBUTE_ID 0x0017 // Ver.: always -#define ZCL_COLOR_CONTROL_PRIMARY_3_X_ATTRIBUTE_ID 0x0019 // Ver.: always -#define ZCL_COLOR_CONTROL_PRIMARY_3_Y_ATTRIBUTE_ID 0x001A // Ver.: always -#define ZCL_COLOR_CONTROL_PRIMARY_3_INTENSITY_ATTRIBUTE_ID 0x001B // Ver.: always -#define ZCL_COLOR_CONTROL_PRIMARY_4_X_ATTRIBUTE_ID 0x0020 // Ver.: always -#define ZCL_COLOR_CONTROL_PRIMARY_4_Y_ATTRIBUTE_ID 0x0021 // Ver.: always -#define ZCL_COLOR_CONTROL_PRIMARY_4_INTENSITY_ATTRIBUTE_ID 0x0022 // Ver.: always -#define ZCL_COLOR_CONTROL_PRIMARY_5_X_ATTRIBUTE_ID 0x0024 // Ver.: always -#define ZCL_COLOR_CONTROL_PRIMARY_5_Y_ATTRIBUTE_ID 0x0025 // Ver.: always -#define ZCL_COLOR_CONTROL_PRIMARY_5_INTENSITY_ATTRIBUTE_ID 0x0026 // Ver.: always -#define ZCL_COLOR_CONTROL_PRIMARY_6_X_ATTRIBUTE_ID 0x0028 // Ver.: always -#define ZCL_COLOR_CONTROL_PRIMARY_6_Y_ATTRIBUTE_ID 0x0029 // Ver.: always -#define ZCL_COLOR_CONTROL_PRIMARY_6_INTENSITY_ATTRIBUTE_ID 0x002A // Ver.: always -#define ZCL_COLOR_CONTROL_WHITE_POINT_X_ATTRIBUTE_ID 0x0030 // Ver.: always -#define ZCL_COLOR_CONTROL_WHITE_POINT_Y_ATTRIBUTE_ID 0x0031 // Ver.: always -#define ZCL_COLOR_CONTROL_COLOR_POINT_R_X_ATTRIBUTE_ID 0x0032 // Ver.: always -#define ZCL_COLOR_CONTROL_COLOR_POINT_R_Y_ATTRIBUTE_ID 0x0033 // Ver.: always -#define ZCL_COLOR_CONTROL_COLOR_POINT_R_INTENSITY_ATTRIBUTE_ID 0x0034 // Ver.: always -#define ZCL_COLOR_CONTROL_COLOR_POINT_G_X_ATTRIBUTE_ID 0x0036 // Ver.: always -#define ZCL_COLOR_CONTROL_COLOR_POINT_G_Y_ATTRIBUTE_ID 0x0037 // Ver.: always -#define ZCL_COLOR_CONTROL_COLOR_POINT_G_INTENSITY_ATTRIBUTE_ID 0x0038 // Ver.: always -#define ZCL_COLOR_CONTROL_COLOR_POINT_B_X_ATTRIBUTE_ID 0x003A // Ver.: always -#define ZCL_COLOR_CONTROL_COLOR_POINT_B_Y_ATTRIBUTE_ID 0x003B // Ver.: always -#define ZCL_COLOR_CONTROL_COLOR_POINT_B_INTENSITY_ATTRIBUTE_ID 0x003C // Ver.: always -#define ZCL_COLOR_CONTROL_ENHANCED_CURRENT_HUE_ATTRIBUTE_ID 0x4000 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_COLOR_CONTROL_ENHANCED_COLOR_MODE_ATTRIBUTE_ID 0x4001 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_COLOR_CONTROL_COLOR_LOOP_ACTIVE_ATTRIBUTE_ID 0x4002 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_COLOR_CONTROL_COLOR_LOOP_DIRECTION_ATTRIBUTE_ID 0x4003 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_COLOR_CONTROL_COLOR_LOOP_TIME_ATTRIBUTE_ID 0x4004 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_COLOR_CONTROL_COLOR_LOOP_START_ENHANCED_HUE_ATTRIBUTE_ID 0x4005 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_COLOR_CONTROL_COLOR_LOOP_STORED_ENHANCED_HUE_ATTRIBUTE_ID 0x4006 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_COLOR_CONTROL_COLOR_CAPABILITIES_ATTRIBUTE_ID 0x400A // Ver.: since zll-1.0-11-0037-10 -#define ZCL_COLOR_CONTROL_COLOR_TEMP_PHYSICAL_MIN_ATTRIBUTE_ID 0x400B // Ver.: since zll-1.0-11-0037-10 -#define ZCL_COLOR_CONTROL_COLOR_TEMP_PHYSICAL_MAX_ATTRIBUTE_ID 0x400C // Ver.: since zll-1.0-11-0037-10 -#define ZCL_COLOR_CONTROL_TEMPERATURE_LEVEL_MIN_MIREDS_ATTRIBUTE_ID 0x400D // Ver.: since l&o-1.0-15-0014-04 -#define ZCL_START_UP_COLOR_TEMPERATURE_MIREDS_ATTRIBUTE_ID 0x4010 // Ver.: since l&o-1.0-15-0014-04 -#define ZCL_COLOR_CONTROL_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_COLOR_CONTROL_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Ballast Configuration -// Cluster specification level: zcl6-errata-14-0129-15 +#define ZCL_COLOR_CONTROL_CURRENT_HUE_ATTRIBUTE_ID (0x0000) +#define ZCL_COLOR_CONTROL_CURRENT_SATURATION_ATTRIBUTE_ID (0x0001) +#define ZCL_COLOR_CONTROL_REMAINING_TIME_ATTRIBUTE_ID (0x0002) +#define ZCL_COLOR_CONTROL_CURRENT_X_ATTRIBUTE_ID (0x0003) +#define ZCL_COLOR_CONTROL_CURRENT_Y_ATTRIBUTE_ID (0x0004) +#define ZCL_COLOR_CONTROL_DRIFT_COMPENSATION_ATTRIBUTE_ID (0x0005) +#define ZCL_COLOR_CONTROL_COMPENSATION_TEXT_ATTRIBUTE_ID (0x0006) +#define ZCL_COLOR_CONTROL_COLOR_TEMPERATURE_ATTRIBUTE_ID (0x0007) +#define ZCL_COLOR_CONTROL_COLOR_MODE_ATTRIBUTE_ID (0x0008) +#define ZCL_COLOR_CONTROL_OPTIONS_ATTRIBUTE_ID (0x000F) +#define ZCL_COLOR_CONTROL_NUMBER_OF_PRIMARIES_ATTRIBUTE_ID (0x0010) +#define ZCL_COLOR_CONTROL_PRIMARY_1_X_ATTRIBUTE_ID (0x0011) +#define ZCL_COLOR_CONTROL_PRIMARY_1_Y_ATTRIBUTE_ID (0x0012) +#define ZCL_COLOR_CONTROL_PRIMARY_1_INTENSITY_ATTRIBUTE_ID (0x0013) +#define ZCL_COLOR_CONTROL_PRIMARY_2_X_ATTRIBUTE_ID (0x0015) +#define ZCL_COLOR_CONTROL_PRIMARY_2_Y_ATTRIBUTE_ID (0x0016) +#define ZCL_COLOR_CONTROL_PRIMARY_2_INTENSITY_ATTRIBUTE_ID (0x0017) +#define ZCL_COLOR_CONTROL_PRIMARY_3_X_ATTRIBUTE_ID (0x0019) +#define ZCL_COLOR_CONTROL_PRIMARY_3_Y_ATTRIBUTE_ID (0x001A) +#define ZCL_COLOR_CONTROL_PRIMARY_3_INTENSITY_ATTRIBUTE_ID (0x001B) +#define ZCL_COLOR_CONTROL_PRIMARY_4_X_ATTRIBUTE_ID (0x0020) +#define ZCL_COLOR_CONTROL_PRIMARY_4_Y_ATTRIBUTE_ID (0x0021) +#define ZCL_COLOR_CONTROL_PRIMARY_4_INTENSITY_ATTRIBUTE_ID (0x0022) +#define ZCL_COLOR_CONTROL_PRIMARY_5_X_ATTRIBUTE_ID (0x0024) +#define ZCL_COLOR_CONTROL_PRIMARY_5_Y_ATTRIBUTE_ID (0x0025) +#define ZCL_COLOR_CONTROL_PRIMARY_5_INTENSITY_ATTRIBUTE_ID (0x0026) +#define ZCL_COLOR_CONTROL_PRIMARY_6_X_ATTRIBUTE_ID (0x0028) +#define ZCL_COLOR_CONTROL_PRIMARY_6_Y_ATTRIBUTE_ID (0x0029) +#define ZCL_COLOR_CONTROL_PRIMARY_6_INTENSITY_ATTRIBUTE_ID (0x002A) +#define ZCL_COLOR_CONTROL_WHITE_POINT_X_ATTRIBUTE_ID (0x0030) +#define ZCL_COLOR_CONTROL_WHITE_POINT_Y_ATTRIBUTE_ID (0x0031) +#define ZCL_COLOR_CONTROL_COLOR_POINT_R_X_ATTRIBUTE_ID (0x0032) +#define ZCL_COLOR_CONTROL_COLOR_POINT_R_Y_ATTRIBUTE_ID (0x0033) +#define ZCL_COLOR_CONTROL_COLOR_POINT_R_INTENSITY_ATTRIBUTE_ID (0x0034) +#define ZCL_COLOR_CONTROL_COLOR_POINT_G_X_ATTRIBUTE_ID (0x0036) +#define ZCL_COLOR_CONTROL_COLOR_POINT_G_Y_ATTRIBUTE_ID (0x0037) +#define ZCL_COLOR_CONTROL_COLOR_POINT_G_INTENSITY_ATTRIBUTE_ID (0x0038) +#define ZCL_COLOR_CONTROL_COLOR_POINT_B_X_ATTRIBUTE_ID (0x003A) +#define ZCL_COLOR_CONTROL_COLOR_POINT_B_Y_ATTRIBUTE_ID (0x003B) +#define ZCL_COLOR_CONTROL_COLOR_POINT_B_INTENSITY_ATTRIBUTE_ID (0x003C) +#define ZCL_COLOR_CONTROL_ENHANCED_CURRENT_HUE_ATTRIBUTE_ID (0x4000) +#define ZCL_COLOR_CONTROL_ENHANCED_COLOR_MODE_ATTRIBUTE_ID (0x4001) +#define ZCL_COLOR_CONTROL_COLOR_LOOP_ACTIVE_ATTRIBUTE_ID (0x4002) +#define ZCL_COLOR_CONTROL_COLOR_LOOP_DIRECTION_ATTRIBUTE_ID (0x4003) +#define ZCL_COLOR_CONTROL_COLOR_LOOP_TIME_ATTRIBUTE_ID (0x4004) +#define ZCL_COLOR_CONTROL_COLOR_LOOP_START_ENHANCED_HUE_ATTRIBUTE_ID (0x4005) +#define ZCL_COLOR_CONTROL_COLOR_LOOP_STORED_ENHANCED_HUE_ATTRIBUTE_ID (0x4006) +#define ZCL_COLOR_CONTROL_COLOR_CAPABILITIES_ATTRIBUTE_ID (0x400A) +#define ZCL_COLOR_CONTROL_COLOR_TEMP_PHYSICAL_MIN_ATTRIBUTE_ID (0x400B) +#define ZCL_COLOR_CONTROL_COLOR_TEMP_PHYSICAL_MAX_ATTRIBUTE_ID (0x400C) +#define ZCL_COLOR_CONTROL_TEMPERATURE_LEVEL_MIN_MIREDS_ATTRIBUTE_ID (0x400D) +#define ZCL_START_UP_COLOR_TEMPERATURE_MIREDS_ATTRIBUTE_ID (0x4010) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Ballast Configuration // Client attributes -#define ZCL_BALLAST_CONFIGURATION_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_BALLAST_CONFIGURATION_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_PHYSICAL_MIN_LEVEL_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_PHYSICAL_MAX_LEVEL_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_BALLAST_STATUS_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_MIN_LEVEL_ATTRIBUTE_ID 0x0010 // Ver.: always -#define ZCL_MAX_LEVEL_ATTRIBUTE_ID 0x0011 // Ver.: always -#define ZCL_POWER_ON_LEVEL_ATTRIBUTE_ID 0x0012 // Ver.: always -#define ZCL_POWER_ON_FADE_TIME_ATTRIBUTE_ID 0x0013 // Ver.: always -#define ZCL_INTRINSIC_BALLAST_FACTOR_ATTRIBUTE_ID 0x0014 // Ver.: always -#define ZCL_BALLAST_FACTOR_ADJUSTMENT_ATTRIBUTE_ID 0x0015 // Ver.: always -#define ZCL_LAMP_QUALITY_ATTRIBUTE_ID 0x0020 // Ver.: always -#define ZCL_LAMP_TYPE_ATTRIBUTE_ID 0x0030 // Ver.: always -#define ZCL_LAMP_MANUFACTURER_ATTRIBUTE_ID 0x0031 // Ver.: always -#define ZCL_LAMP_RATED_HOURS_ATTRIBUTE_ID 0x0032 // Ver.: always -#define ZCL_LAMP_BURN_HOURS_ATTRIBUTE_ID 0x0033 // Ver.: always -#define ZCL_LAMP_ALARM_MODE_ATTRIBUTE_ID 0x0034 // Ver.: always -#define ZCL_LAMP_BURN_HOURS_TRIP_POINT_ATTRIBUTE_ID 0x0035 // Ver.: always -#define ZCL_BALLAST_CONFIGURATION_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_BALLAST_CONFIGURATION_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Illuminance Measurement -// Cluster specification level: zcl-6.0-15-02018-001 +#define ZCL_PHYSICAL_MIN_LEVEL_ATTRIBUTE_ID (0x0000) +#define ZCL_PHYSICAL_MAX_LEVEL_ATTRIBUTE_ID (0x0001) +#define ZCL_BALLAST_STATUS_ATTRIBUTE_ID (0x0002) +#define ZCL_MIN_LEVEL_ATTRIBUTE_ID (0x0010) +#define ZCL_MAX_LEVEL_ATTRIBUTE_ID (0x0011) +#define ZCL_POWER_ON_LEVEL_ATTRIBUTE_ID (0x0012) +#define ZCL_POWER_ON_FADE_TIME_ATTRIBUTE_ID (0x0013) +#define ZCL_INTRINSIC_BALLAST_FACTOR_ATTRIBUTE_ID (0x0014) +#define ZCL_BALLAST_FACTOR_ADJUSTMENT_ATTRIBUTE_ID (0x0015) +#define ZCL_LAMP_QUALITY_ATTRIBUTE_ID (0x0020) +#define ZCL_LAMP_TYPE_ATTRIBUTE_ID (0x0030) +#define ZCL_LAMP_MANUFACTURER_ATTRIBUTE_ID (0x0031) +#define ZCL_LAMP_RATED_HOURS_ATTRIBUTE_ID (0x0032) +#define ZCL_LAMP_BURN_HOURS_ATTRIBUTE_ID (0x0033) +#define ZCL_LAMP_ALARM_MODE_ATTRIBUTE_ID (0x0034) +#define ZCL_LAMP_BURN_HOURS_TRIP_POINT_ATTRIBUTE_ID (0x0035) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Illuminance Measurement // Client attributes -#define ZCL_ILLUM_MEASUREMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_ILLUM_MEASUREMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_ILLUM_MEASURED_VALUE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_ILLUM_MIN_MEASURED_VALUE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_ILLUM_MAX_MEASURED_VALUE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_ILLUM_TOLERANCE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_MEASUREMENT_LIGHT_SENSOR_TYPE_ATTRIBUTE_ID 0x0004 // Ver.: always -#define ZCL_ILLUM_MEASUREMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_ILLUM_MEASUREMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_ILLUM_MEASURED_VALUE_ATTRIBUTE_ID (0x0000) +#define ZCL_ILLUM_MIN_MEASURED_VALUE_ATTRIBUTE_ID (0x0001) +#define ZCL_ILLUM_MAX_MEASURED_VALUE_ATTRIBUTE_ID (0x0002) +#define ZCL_ILLUM_TOLERANCE_ATTRIBUTE_ID (0x0003) +#define ZCL_MEASUREMENT_LIGHT_SENSOR_TYPE_ATTRIBUTE_ID (0x0004) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) -// Attribute types for cluster: Illuminance Level Sensing -// Cluster specification level: zcl-6.0-15-02018-001 +// Attribute ids for cluster: Illuminance Level Sensing // Client attributes -#define ZCL_ILLUM_LEVEL_SENSING_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_ILLUM_LEVEL_SENSING_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_LEVEL_STATUS_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_SENSING_LIGHT_SENSOR_TYPE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_ILLUMINANCE_TARGET_LEVEL_ATTRIBUTE_ID 0x0010 // Ver.: always -#define ZCL_ILLUM_LEVEL_SENSING_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_ILLUM_LEVEL_SENSING_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_LEVEL_STATUS_ATTRIBUTE_ID (0x0000) +#define ZCL_SENSING_LIGHT_SENSOR_TYPE_ATTRIBUTE_ID (0x0001) +#define ZCL_ILLUMINANCE_TARGET_LEVEL_ATTRIBUTE_ID (0x0010) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) -// Attribute types for cluster: Temperature Measurement -// Cluster specification level: zcl-6.0-15-02018-001 +// Attribute ids for cluster: Temperature Measurement // Client attributes -#define ZCL_TEMP_MEASUREMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_TEMP_MEASUREMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_TEMP_MEASURED_VALUE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_TEMP_MIN_MEASURED_VALUE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_TEMP_MAX_MEASURED_VALUE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_TEMP_TOLERANCE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_TEMP_MEASUREMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_TEMP_MEASUREMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_TEMP_MEASURED_VALUE_ATTRIBUTE_ID (0x0000) +#define ZCL_TEMP_MIN_MEASURED_VALUE_ATTRIBUTE_ID (0x0001) +#define ZCL_TEMP_MAX_MEASURED_VALUE_ATTRIBUTE_ID (0x0002) +#define ZCL_TEMP_TOLERANCE_ATTRIBUTE_ID (0x0003) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) -// Attribute types for cluster: Pressure Measurement -// Cluster specification level: zcl-6.0-15-02018-001 +// Attribute ids for cluster: Pressure Measurement // Client attributes -#define ZCL_PRESSURE_MEASUREMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_PRESSURE_MEASUREMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_PRESSURE_MEASURED_VALUE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_PRESSURE_MIN_MEASURED_VALUE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_PRESSURE_MAX_MEASURED_VALUE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_PRESSURE_TOLERANCE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_PRESSURE_SCALED_VALUE_ATTRIBUTE_ID 0x0010 // Ver.: always -#define ZCL_PRESSURE_MIN_SCALED_VALUE_ATTRIBUTE_ID 0x0011 // Ver.: always -#define ZCL_PRESSURE_MAX_SCALED_VALUE_ATTRIBUTE_ID 0x0012 // Ver.: always -#define ZCL_PRESSURE_SCALED_TOLERANCE_ATTRIBUTE_ID 0x0013 // Ver.: always -#define ZCL_PRESSURE_SCALE_ATTRIBUTE_ID 0x0014 // Ver.: always -#define ZCL_PRESSURE_MEASUREMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_PRESSURE_MEASUREMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Flow Measurement -// Cluster specification level: zcl-6.0-15-02018-001 +#define ZCL_PRESSURE_MEASURED_VALUE_ATTRIBUTE_ID (0x0000) +#define ZCL_PRESSURE_MIN_MEASURED_VALUE_ATTRIBUTE_ID (0x0001) +#define ZCL_PRESSURE_MAX_MEASURED_VALUE_ATTRIBUTE_ID (0x0002) +#define ZCL_PRESSURE_TOLERANCE_ATTRIBUTE_ID (0x0003) +#define ZCL_PRESSURE_SCALED_VALUE_ATTRIBUTE_ID (0x0010) +#define ZCL_PRESSURE_MIN_SCALED_VALUE_ATTRIBUTE_ID (0x0011) +#define ZCL_PRESSURE_MAX_SCALED_VALUE_ATTRIBUTE_ID (0x0012) +#define ZCL_PRESSURE_SCALED_TOLERANCE_ATTRIBUTE_ID (0x0013) +#define ZCL_PRESSURE_SCALE_ATTRIBUTE_ID (0x0014) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Flow Measurement // Client attributes -#define ZCL_FLOW_MEASUREMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_FLOW_MEASUREMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_FLOW_MEASURED_VALUE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_FLOW_MIN_MEASURED_VALUE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_FLOW_MAX_MEASURED_VALUE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_FLOW_TOLERANCE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_FLOW_MEASUREMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_FLOW_MEASUREMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_FLOW_MEASURED_VALUE_ATTRIBUTE_ID (0x0000) +#define ZCL_FLOW_MIN_MEASURED_VALUE_ATTRIBUTE_ID (0x0001) +#define ZCL_FLOW_MAX_MEASURED_VALUE_ATTRIBUTE_ID (0x0002) +#define ZCL_FLOW_TOLERANCE_ATTRIBUTE_ID (0x0003) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) -// Attribute types for cluster: Relative Humidity Measurement -// Cluster specification level: zcl-6.0-15-02018-001 +// Attribute ids for cluster: Relative Humidity Measurement // Client attributes -#define ZCL_RELATIVE_HUMIDITY_MEASUREMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_RELATIVE_HUMIDITY_MEASUREMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_RELATIVE_HUMIDITY_MEASURED_VALUE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_RELATIVE_HUMIDITY_MIN_MEASURED_VALUE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_RELATIVE_HUMIDITY_MAX_MEASURED_VALUE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_RELATIVE_HUMIDITY_TOLERANCE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_RELATIVE_HUMIDITY_MEASUREMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_RELATIVE_HUMIDITY_MEASUREMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_RELATIVE_HUMIDITY_MEASURED_VALUE_ATTRIBUTE_ID (0x0000) +#define ZCL_RELATIVE_HUMIDITY_MIN_MEASURED_VALUE_ATTRIBUTE_ID (0x0001) +#define ZCL_RELATIVE_HUMIDITY_MAX_MEASURED_VALUE_ATTRIBUTE_ID (0x0002) +#define ZCL_RELATIVE_HUMIDITY_TOLERANCE_ATTRIBUTE_ID (0x0003) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) -// Attribute types for cluster: Occupancy Sensing -// Cluster specification level: zcl-6.0-15-02018-001 +// Attribute ids for cluster: Occupancy Sensing // Client attributes -#define ZCL_OCCUPANCY_SENSING_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_OCCUPANCY_SENSING_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_OCCUPANCY_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_OCCUPANCY_SENSOR_TYPE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_OCCUPANCY_SENSOR_TYPE_BITMAP_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_PIR_OCCUPIED_TO_UNOCCUPIED_DELAY_ATTRIBUTE_ID 0x0010 // Ver.: always -#define ZCL_PIR_UNOCCUPIED_TO_OCCUPIED_DELAY_ATTRIBUTE_ID 0x0011 // Ver.: always -#define ZCL_PIR_UNOCCUPIED_TO_OCCUPIED_THRESHOLD_ATTRIBUTE_ID 0x0012 // Ver.: always -#define ZCL_ULTRASONIC_OCCUPIED_TO_UNOCCUPIED_DELAY_ATTRIBUTE_ID 0x0020 // Ver.: always -#define ZCL_ULTRASONIC_UNOCCUPIED_TO_OCCUPIED_DELAY_ATTRIBUTE_ID 0x0021 // Ver.: always -#define ZCL_ULTRASONIC_UNOCCUPIED_TO_OCCUPIED_THRESHOLD_ATTRIBUTE_ID 0x0022 // Ver.: always -#define ZCL_PHYSICAL_CONTACT_OCCUPIED_TO_UNOCCUPIED_DELAY_ATTRIBUTE_ID 0x0030 // Ver.: always -#define ZCL_PHYSICAL_CONTACT_UNOCCUPIED_TO_OCCUPIED_DELAY_ATTRIBUTE_ID 0x0031 // Ver.: always -#define ZCL_PHYSICAL_CONTACT_UNOCCUPIED_TO_OCCUPIED_THRESHOLD_ATTRIBUTE_ID 0x0032 // Ver.: always -#define ZCL_OCCUPANCY_SENSING_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_OCCUPANCY_SENSING_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Carbon Monoxide Concentration Measurement -// Cluster specification level: zcl-6.0-15-02018-001 +#define ZCL_OCCUPANCY_ATTRIBUTE_ID (0x0000) +#define ZCL_OCCUPANCY_SENSOR_TYPE_ATTRIBUTE_ID (0x0001) +#define ZCL_OCCUPANCY_SENSOR_TYPE_BITMAP_ATTRIBUTE_ID (0x0002) +#define ZCL_PIR_OCCUPIED_TO_UNOCCUPIED_DELAY_ATTRIBUTE_ID (0x0010) +#define ZCL_PIR_UNOCCUPIED_TO_OCCUPIED_DELAY_ATTRIBUTE_ID (0x0011) +#define ZCL_PIR_UNOCCUPIED_TO_OCCUPIED_THRESHOLD_ATTRIBUTE_ID (0x0012) +#define ZCL_ULTRASONIC_OCCUPIED_TO_UNOCCUPIED_DELAY_ATTRIBUTE_ID (0x0020) +#define ZCL_ULTRASONIC_UNOCCUPIED_TO_OCCUPIED_DELAY_ATTRIBUTE_ID (0x0021) +#define ZCL_ULTRASONIC_UNOCCUPIED_TO_OCCUPIED_THRESHOLD_ATTRIBUTE_ID (0x0022) +#define ZCL_PHYSICAL_CONTACT_OCCUPIED_TO_UNOCCUPIED_DELAY_ATTRIBUTE_ID (0x0030) +#define ZCL_PHYSICAL_CONTACT_UNOCCUPIED_TO_OCCUPIED_DELAY_ATTRIBUTE_ID (0x0031) +#define ZCL_PHYSICAL_CONTACT_UNOCCUPIED_TO_OCCUPIED_THRESHOLD_ATTRIBUTE_ID (0x0032) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Carbon Monoxide Concentration Measurement // Client attributes -#define ZCL_CARBON_MONOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_CARBON_MONOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_CARBON_MONOXIDE_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_CARBON_MONOXIDE_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_CARBON_MONOXIDE_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_CARBON_MONOXIDE_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_CARBON_MONOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_CARBON_MONOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Carbon Dioxide Concentration Measurement -// Cluster specification level: zcl-6.0-15-02018-001 +#define ZCL_CARBON_MONOXIDE_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID (0x0000) +#define ZCL_CARBON_MONOXIDE_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID (0x0001) +#define ZCL_CARBON_MONOXIDE_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID (0x0002) +#define ZCL_CARBON_MONOXIDE_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID (0x0003) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Carbon Dioxide Concentration Measurement // Client attributes -#define ZCL_CARBON_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_CARBON_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_CARBON_DIOXIDE_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_CARBON_DIOXIDE_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_CARBON_DIOXIDE_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_CARBON_DIOXIDE_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_CARBON_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_CARBON_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Ethylene Concentration Measurement -// Cluster specification level: zcl-6.0-15-02018-001 +#define ZCL_CARBON_DIOXIDE_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID (0x0000) +#define ZCL_CARBON_DIOXIDE_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID (0x0001) +#define ZCL_CARBON_DIOXIDE_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID (0x0002) +#define ZCL_CARBON_DIOXIDE_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID (0x0003) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Ethylene Concentration Measurement // Client attributes -#define ZCL_ETHYLENE_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_ETHYLENE_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_ETHYLENE_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_ETHYLENE_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_ETHYLENE_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_ETHYLENE_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_ETHYLENE_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_ETHYLENE_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Ethylene Oxide Concentration Measurement -// Cluster specification level: zcl-6.0-15-02018-001 +#define ZCL_ETHYLENE_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID (0x0000) +#define ZCL_ETHYLENE_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID (0x0001) +#define ZCL_ETHYLENE_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID (0x0002) +#define ZCL_ETHYLENE_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID (0x0003) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Ethylene Oxide Concentration Measurement // Client attributes -#define ZCL_ETHYLENE_OXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_ETHYLENE_OXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_ETHYLENE_OXIDE_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_ETHYLENE_OXIDE_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_ETHYLENE_OXIDE_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_ETHYLENE_OXIDE_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_ETHYLENE_OXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_ETHYLENE_OXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Hydrogen Concentration Measurement -// Cluster specification level: zcl-6.0-15-02018-001 +#define ZCL_ETHYLENE_OXIDE_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID (0x0000) +#define ZCL_ETHYLENE_OXIDE_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID (0x0001) +#define ZCL_ETHYLENE_OXIDE_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID (0x0002) +#define ZCL_ETHYLENE_OXIDE_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID (0x0003) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Hydrogen Concentration Measurement // Client attributes -#define ZCL_HYDROGEN_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_HYDROGEN_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_HYDROGEN_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_HYDROGEN_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_HYDROGEN_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_HYDROGEN_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_HYDROGEN_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_HYDROGEN_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Hydrogen Sulphide Concentration Measurement -// Cluster specification level: zcl-6.0-15-02018-001 +#define ZCL_HYDROGEN_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID (0x0000) +#define ZCL_HYDROGEN_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID (0x0001) +#define ZCL_HYDROGEN_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID (0x0002) +#define ZCL_HYDROGEN_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID (0x0003) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Hydrogen Sulphide Concentration Measurement // Client attributes -#define ZCL_HYDROGEN_SULPHIDE_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_HYDROGEN_SULPHIDE_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_HYDROGEN_SULPHIDE_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_HYDROGEN_SULPHIDE_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_HYDROGEN_SULPHIDE_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_HYDROGEN_SULPHIDE_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_HYDROGEN_SULPHIDE_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_HYDROGEN_SULPHIDE_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Nitric Oxide Concentration Measurement -// Cluster specification level: zcl-6.0-15-02018-001 +#define ZCL_HYDROGEN_SULPHIDE_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID (0x0000) +#define ZCL_HYDROGEN_SULPHIDE_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID (0x0001) +#define ZCL_HYDROGEN_SULPHIDE_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID (0x0002) +#define ZCL_HYDROGEN_SULPHIDE_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID (0x0003) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Nitric Oxide Concentration Measurement // Client attributes -#define ZCL_NITRIC_OXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_NITRIC_OXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_NITRIC_OXIDE_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_NITRIC_OXIDE_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_NITRIC_OXIDE_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_NITRIC_OXIDE_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_NITRIC_OXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_NITRIC_OXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Nitrogen Dioxide Concentration Measurement -// Cluster specification level: zcl-6.0-15-02018-001 +#define ZCL_NITRIC_OXIDE_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID (0x0000) +#define ZCL_NITRIC_OXIDE_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID (0x0001) +#define ZCL_NITRIC_OXIDE_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID (0x0002) +#define ZCL_NITRIC_OXIDE_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID (0x0003) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Nitrogen Dioxide Concentration Measurement // Client attributes -#define ZCL_NITROGEN_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_NITROGEN_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_NITROGEN_DIOXIDE_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_NITROGEN_DIOXIDE_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_NITROGEN_DIOXIDE_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_NITROGEN_DIOXIDE_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_NITROGEN_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_NITROGEN_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Oxygen Concentration Measurement -// Cluster specification level: zcl-6.0-15-02018-001 +#define ZCL_NITROGEN_DIOXIDE_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID (0x0000) +#define ZCL_NITROGEN_DIOXIDE_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID (0x0001) +#define ZCL_NITROGEN_DIOXIDE_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID (0x0002) +#define ZCL_NITROGEN_DIOXIDE_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID (0x0003) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Oxygen Concentration Measurement // Client attributes -#define ZCL_OXYGEN_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_OXYGEN_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_OXYGEN_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_OXYGEN_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_OXYGEN_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_OXYGEN_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_OXYGEN_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_OXYGEN_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_OXYGEN_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID (0x0000) +#define ZCL_OXYGEN_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID (0x0001) +#define ZCL_OXYGEN_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID (0x0002) +#define ZCL_OXYGEN_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID (0x0003) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) -// Attribute types for cluster: Ozone Concentration Measurement -// Cluster specification level: zcl-6.0-15-02018-001 +// Attribute ids for cluster: Ozone Concentration Measurement // Client attributes -#define ZCL_OZONE_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_OZONE_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_OZONE_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_OZONE_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_OZONE_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_OZONE_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_OZONE_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_OZONE_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_OZONE_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID (0x0000) +#define ZCL_OZONE_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID (0x0001) +#define ZCL_OZONE_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID (0x0002) +#define ZCL_OZONE_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID (0x0003) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) -// Attribute types for cluster: Sulfur Dioxide Concentration Measurement -// Cluster specification level: zcl-6.0-15-02018-001 +// Attribute ids for cluster: Sulfur Dioxide Concentration Measurement // Client attributes -#define ZCL_SULFUR_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_SULFUR_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_SULFUR_DIOXIDE_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_SULFUR_DIOXIDE_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_SULFUR_DIOXIDE_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_SULFUR_DIOXIDE_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_SULFUR_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_SULFUR_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Dissolved Oxygen Concentration Measurement -// Cluster specification level: zcl-6.0-15-02018-001 +#define ZCL_SULFUR_DIOXIDE_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID (0x0000) +#define ZCL_SULFUR_DIOXIDE_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID (0x0001) +#define ZCL_SULFUR_DIOXIDE_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID (0x0002) +#define ZCL_SULFUR_DIOXIDE_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID (0x0003) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Dissolved Oxygen Concentration Measurement // Client attributes -#define ZCL_DISSOLVED_OXYGEN_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_DISSOLVED_OXYGEN_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_DISSOLVED_OXYGEN_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_DISSOLVED_OXYGEN_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_DISSOLVED_OXYGEN_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_DISSOLVED_OXYGEN_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_DISSOLVED_OXYGEN_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_DISSOLVED_OXYGEN_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Bromate Concentration Measurement -// Cluster specification level: zcl-6.0-15-02018-001 +#define ZCL_DISSOLVED_OXYGEN_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID (0x0000) +#define ZCL_DISSOLVED_OXYGEN_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID (0x0001) +#define ZCL_DISSOLVED_OXYGEN_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID (0x0002) +#define ZCL_DISSOLVED_OXYGEN_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID (0x0003) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Bromate Concentration Measurement // Client attributes -#define ZCL_BROMATE_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_BROMATE_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_BROMATE_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_BROMATE_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_BROMATE_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_BROMATE_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_BROMATE_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_BROMATE_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Chloramines Concentration Measurement -// Cluster specification level: zcl-6.0-15-02018-001 +#define ZCL_BROMATE_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID (0x0000) +#define ZCL_BROMATE_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID (0x0001) +#define ZCL_BROMATE_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID (0x0002) +#define ZCL_BROMATE_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID (0x0003) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Chloramines Concentration Measurement // Client attributes -#define ZCL_CHLORAMINES_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_CHLORAMINES_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_CHLORAMINES_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_CHLORAMINES_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_CHLORAMINES_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_CHLORAMINES_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_CHLORAMINES_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_CHLORAMINES_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Chlorine Concentration Measurement -// Cluster specification level: zcl-6.0-15-02018-001 +#define ZCL_CHLORAMINES_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID (0x0000) +#define ZCL_CHLORAMINES_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID (0x0001) +#define ZCL_CHLORAMINES_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID (0x0002) +#define ZCL_CHLORAMINES_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID (0x0003) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Chlorine Concentration Measurement // Client attributes -#define ZCL_CHLORINE_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_CHLORINE_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_CHLORINE_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_CHLORINE_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_CHLORINE_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_CHLORINE_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_CHLORINE_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_CHLORINE_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Fecal coliform and E. Coli Concentration Measurement -// Cluster specification level: zcl-6.0-15-02018-001 +#define ZCL_CHLORINE_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID (0x0000) +#define ZCL_CHLORINE_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID (0x0001) +#define ZCL_CHLORINE_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID (0x0002) +#define ZCL_CHLORINE_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID (0x0003) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Fecal coliform and E. Coli Concentration Measurement // Client attributes -#define ZCL_FECAL_COLIFORM_AND_E_COLI_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_FECAL_COLIFORM_AND_E_COLI_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_FECAL_COLIFORM_AND_E_COLI_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_FECAL_COLIFORM_AND_E_COLI_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_FECAL_COLIFORM_AND_E_COLI_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_FECAL_COLIFORM_AND_E_COLI_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_FECAL_COLIFORM_AND_E_COLI_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_FECAL_COLIFORM_AND_E_COLI_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Fluoride Concentration Measurement -// Cluster specification level: zcl-6.0-15-02018-001 +#define ZCL_FECAL_COLIFORM_AND_E_COLI_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID (0x0000) +#define ZCL_FECAL_COLIFORM_AND_E_COLI_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID (0x0001) +#define ZCL_FECAL_COLIFORM_AND_E_COLI_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID (0x0002) +#define ZCL_FECAL_COLIFORM_AND_E_COLI_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID (0x0003) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Fluoride Concentration Measurement // Client attributes -#define ZCL_FLUORIDE_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_FLUORIDE_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_FLUORIDE_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_FLUORIDE_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_FLUORIDE_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_FLUORIDE_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_FLUORIDE_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_FLUORIDE_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Haloacetic Acids Concentration Measurement -// Cluster specification level: zcl-6.0-15-02018-001 +#define ZCL_FLUORIDE_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID (0x0000) +#define ZCL_FLUORIDE_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID (0x0001) +#define ZCL_FLUORIDE_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID (0x0002) +#define ZCL_FLUORIDE_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID (0x0003) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Haloacetic Acids Concentration Measurement // Client attributes -#define ZCL_HALOACETIC_ACIDS_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_HALOACETIC_ACIDS_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_HALOACETIC_ACIDS_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_HALOACETIC_ACIDS_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_HALOACETIC_ACIDS_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_HALOACETIC_ACIDS_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_HALOACETIC_ACIDS_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_HALOACETIC_ACIDS_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Total Trihalomethanes Concentration Measurement -// Cluster specification level: zcl-6.0-15-02018-001 +#define ZCL_HALOACETIC_ACIDS_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID (0x0000) +#define ZCL_HALOACETIC_ACIDS_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID (0x0001) +#define ZCL_HALOACETIC_ACIDS_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID (0x0002) +#define ZCL_HALOACETIC_ACIDS_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID (0x0003) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Total Trihalomethanes Concentration Measurement // Client attributes -#define ZCL_TOTAL_TRIHALOMETHANES_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_TOTAL_TRIHALOMETHANES_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_TOTAL_TRIHALOMETHANES_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_TOTAL_TRIHALOMETHANES_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_TOTAL_TRIHALOMETHANES_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_TOTAL_TRIHALOMETHANES_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_TOTAL_TRIHALOMETHANES_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_TOTAL_TRIHALOMETHANES_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Total Coliform Bacteria Concentration Measurement -// Cluster specification level: zcl-6.0-15-02018-001 +#define ZCL_TOTAL_TRIHALOMETHANES_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID (0x0000) +#define ZCL_TOTAL_TRIHALOMETHANES_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID (0x0001) +#define ZCL_TOTAL_TRIHALOMETHANES_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID (0x0002) +#define ZCL_TOTAL_TRIHALOMETHANES_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID (0x0003) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Total Coliform Bacteria Concentration Measurement // Client attributes -#define ZCL_TOTAL_COLIFORM_BACTERIA_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_TOTAL_COLIFORM_BACTERIA_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_TOTAL_COLIFORM_BACTERIA_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_TOTAL_COLIFORM_BACTERIA_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_TOTAL_COLIFORM_BACTERIA_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_TOTAL_COLIFORM_BACTERIA_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_TOTAL_COLIFORM_BACTERIA_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_TOTAL_COLIFORM_BACTERIA_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Turbidity Concentration Measurement -// Cluster specification level: zcl-6.0-15-02018-001 +#define ZCL_TOTAL_COLIFORM_BACTERIA_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID (0x0000) +#define ZCL_TOTAL_COLIFORM_BACTERIA_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID (0x0001) +#define ZCL_TOTAL_COLIFORM_BACTERIA_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID (0x0002) +#define ZCL_TOTAL_COLIFORM_BACTERIA_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID (0x0003) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Turbidity Concentration Measurement // Client attributes -#define ZCL_TURBIDITY_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_TURBIDITY_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_TURBIDITY_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_TURBIDITY_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_TURBIDITY_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_TURBIDITY_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_TURBIDITY_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_TURBIDITY_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Copper Concentration Measurement -// Cluster specification level: zcl-6.0-15-02018-001 +#define ZCL_TURBIDITY_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID (0x0000) +#define ZCL_TURBIDITY_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID (0x0001) +#define ZCL_TURBIDITY_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID (0x0002) +#define ZCL_TURBIDITY_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID (0x0003) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Copper Concentration Measurement // Client attributes -#define ZCL_COPPER_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_COPPER_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_COPPER_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_COPPER_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_COPPER_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_COPPER_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_COPPER_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_COPPER_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_COPPER_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID (0x0000) +#define ZCL_COPPER_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID (0x0001) +#define ZCL_COPPER_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID (0x0002) +#define ZCL_COPPER_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID (0x0003) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) -// Attribute types for cluster: Lead Concentration Measurement -// Cluster specification level: zcl-6.0-15-02018-001 +// Attribute ids for cluster: Lead Concentration Measurement // Client attributes -#define ZCL_LEAD_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_LEAD_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_LEAD_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_LEAD_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_LEAD_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_LEAD_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_LEAD_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_LEAD_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_LEAD_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID (0x0000) +#define ZCL_LEAD_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID (0x0001) +#define ZCL_LEAD_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID (0x0002) +#define ZCL_LEAD_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID (0x0003) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) -// Attribute types for cluster: Manganese Concentration Measurement -// Cluster specification level: zcl-6.0-15-02018-001 +// Attribute ids for cluster: Manganese Concentration Measurement // Client attributes -#define ZCL_MANGANESE_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_MANGANESE_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_MANGANESE_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_MANGANESE_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_MANGANESE_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_MANGANESE_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_MANGANESE_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_MANGANESE_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Sulfate Concentration Measurement -// Cluster specification level: zcl-6.0-15-02018-001 +#define ZCL_MANGANESE_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID (0x0000) +#define ZCL_MANGANESE_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID (0x0001) +#define ZCL_MANGANESE_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID (0x0002) +#define ZCL_MANGANESE_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID (0x0003) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Sulfate Concentration Measurement // Client attributes -#define ZCL_SULFATE_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_SULFATE_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_SULFATE_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_SULFATE_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_SULFATE_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_SULFATE_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_SULFATE_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_SULFATE_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Bromodichloromethane Concentration Measurement -// Cluster specification level: zcl-6.0-15-02018-001 +#define ZCL_SULFATE_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID (0x0000) +#define ZCL_SULFATE_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID (0x0001) +#define ZCL_SULFATE_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID (0x0002) +#define ZCL_SULFATE_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID (0x0003) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Bromodichloromethane Concentration Measurement // Client attributes -#define ZCL_BROMODICHLOROMETHANE_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_BROMODICHLOROMETHANE_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_BROMODICHLOROMETHANE_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_BROMODICHLOROMETHANE_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_BROMODICHLOROMETHANE_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_BROMODICHLOROMETHANE_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_BROMODICHLOROMETHANE_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_BROMODICHLOROMETHANE_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Bromoform Concentration Measurement -// Cluster specification level: zcl-6.0-15-02018-001 +#define ZCL_BROMODICHLOROMETHANE_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID (0x0000) +#define ZCL_BROMODICHLOROMETHANE_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID (0x0001) +#define ZCL_BROMODICHLOROMETHANE_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID (0x0002) +#define ZCL_BROMODICHLOROMETHANE_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID (0x0003) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Bromoform Concentration Measurement // Client attributes -#define ZCL_BROMOFORM_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_BROMOFORM_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_BROMOFORM_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_BROMOFORM_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_BROMOFORM_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_BROMOFORM_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_BROMOFORM_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_BROMOFORM_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Chlorodibromomethane Concentration Measurement -// Cluster specification level: zcl-6.0-15-02018-001 +#define ZCL_BROMOFORM_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID (0x0000) +#define ZCL_BROMOFORM_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID (0x0001) +#define ZCL_BROMOFORM_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID (0x0002) +#define ZCL_BROMOFORM_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID (0x0003) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Chlorodibromomethane Concentration Measurement // Client attributes -#define ZCL_CHLORODIBROMOMETHANE_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_CHLORODIBROMOMETHANE_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_CHLORODIBROMOMETHANE_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_CHLORODIBROMOMETHANE_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_CHLORODIBROMOMETHANE_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_CHLORODIBROMOMETHANE_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_CHLORODIBROMOMETHANE_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_CHLORODIBROMOMETHANE_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Chloroform Concentration Measurement -// Cluster specification level: zcl-6.0-15-02018-001 +#define ZCL_CHLORODIBROMOMETHANE_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID (0x0000) +#define ZCL_CHLORODIBROMOMETHANE_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID (0x0001) +#define ZCL_CHLORODIBROMOMETHANE_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID (0x0002) +#define ZCL_CHLORODIBROMOMETHANE_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID (0x0003) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Chloroform Concentration Measurement // Client attributes -#define ZCL_CHLOROFORM_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_CHLOROFORM_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_CHLOROFORM_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_CHLOROFORM_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_CHLOROFORM_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_CHLOROFORM_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_CHLOROFORM_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_CHLOROFORM_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Sodium Concentration Measurement -// Cluster specification level: zcl-6.0-15-02018-001 +#define ZCL_CHLOROFORM_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID (0x0000) +#define ZCL_CHLOROFORM_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID (0x0001) +#define ZCL_CHLOROFORM_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID (0x0002) +#define ZCL_CHLOROFORM_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID (0x0003) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Sodium Concentration Measurement // Client attributes -#define ZCL_SODIUM_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_SODIUM_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_SODIUM_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_SODIUM_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_SODIUM_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_SODIUM_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_SODIUM_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_SODIUM_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_SODIUM_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID (0x0000) +#define ZCL_SODIUM_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID (0x0001) +#define ZCL_SODIUM_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID (0x0002) +#define ZCL_SODIUM_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID (0x0003) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) -// Attribute types for cluster: IAS Zone -// Cluster specification level: zcl-6.0-15-02018-001 +// Attribute ids for cluster: IAS Zone // Client attributes -#define ZCL_IAS_ZONE_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_IAS_ZONE_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_ZONE_STATE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_ZONE_TYPE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_ZONE_STATUS_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_IAS_CIE_ADDRESS_ATTRIBUTE_ID 0x0010 // Ver.: always -#define ZCL_ZONE_ID_ATTRIBUTE_ID 0x0011 // Ver.: always -#define ZCL_NUMBER_OF_ZONE_SENSITIVITY_LEVELS_SUPPORTED_ATTRIBUTE_ID 0x0012 // Ver.: always -#define ZCL_CURRENT_ZONE_SENSITIVITY_LEVEL_ATTRIBUTE_ID 0x0013 // Ver.: always -#define ZCL_IAS_ZONE_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_IAS_ZONE_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: IAS ACE -// Cluster specification level: zcl-6.0-15-02018-001 +#define ZCL_ZONE_STATE_ATTRIBUTE_ID (0x0000) +#define ZCL_ZONE_TYPE_ATTRIBUTE_ID (0x0001) +#define ZCL_ZONE_STATUS_ATTRIBUTE_ID (0x0002) +#define ZCL_IAS_CIE_ADDRESS_ATTRIBUTE_ID (0x0010) +#define ZCL_ZONE_ID_ATTRIBUTE_ID (0x0011) +#define ZCL_NUMBER_OF_ZONE_SENSITIVITY_LEVELS_SUPPORTED_ATTRIBUTE_ID (0x0012) +#define ZCL_CURRENT_ZONE_SENSITIVITY_LEVEL_ATTRIBUTE_ID (0x0013) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: IAS ACE // Client attributes -#define ZCL_IAS_ACE_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_IAS_ACE_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_IAS_ACE_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_IAS_ACE_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) -// Attribute types for cluster: IAS WD -// Cluster specification level: zcl-6.0-15-02018-001 +// Attribute ids for cluster: IAS WD // Client attributes -#define ZCL_IAS_WD_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_IAS_WD_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_MAX_DURATION_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_IAS_WD_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_IAS_WD_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_MAX_DURATION_ATTRIBUTE_ID (0x0000) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) -// Attribute types for cluster: Generic Tunnel -// Cluster specification level: cba-1.0-05-3516-12 +// Attribute ids for cluster: Generic Tunnel // Client attributes -#define ZCL_GENERIC_TUNNEL_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_GENERIC_TUNNEL_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_MAXIMUM_INCOMING_TRANSFER_SIZE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_MAXIMUM_OUTGOING_TRANSFER_SIZE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_PROTOCOL_ADDRESS_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_GENERIC_TUNNEL_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_GENERIC_TUNNEL_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_MAXIMUM_INCOMING_TRANSFER_SIZE_ATTRIBUTE_ID (0x0001) +#define ZCL_MAXIMUM_OUTGOING_TRANSFER_SIZE_ATTRIBUTE_ID (0x0002) +#define ZCL_PROTOCOL_ADDRESS_ATTRIBUTE_ID (0x0003) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) -// Attribute types for cluster: BACnet Protocol Tunnel -// Cluster specification level: cba-1.0-05-3516-12 +// Attribute ids for cluster: BACnet Protocol Tunnel // Client attributes -#define ZCL_BACNET_PROTOCOL_TUNNEL_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_BACNET_PROTOCOL_TUNNEL_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_BACNET_PROTOCOL_TUNNEL_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_BACNET_PROTOCOL_TUNNEL_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) -// Attribute types for cluster: 11073 Protocol Tunnel -// Cluster specification level: hc-1.0-07-5360-15 +// Attribute ids for cluster: 11073 Protocol Tunnel // Client attributes -#define ZCL_11073_PROTOCOL_TUNNEL_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_11073_PROTOCOL_TUNNEL_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_DEVICE_ID_LIST_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_MANAGER_TARGET_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_MANAGER_ENDPOINT_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_CONNECTED_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_PREEMPTIBLE_ATTRIBUTE_ID 0x0004 // Ver.: always -#define ZCL_IDLE_TIMEOUT_ATTRIBUTE_ID 0x0005 // Ver.: always -#define ZCL_11073_PROTOCOL_TUNNEL_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_11073_PROTOCOL_TUNNEL_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: ISO 7816 Protocol Tunnel -// Cluster specification level: ta-1.0-07-5307-07 +#define ZCL_DEVICE_ID_LIST_ATTRIBUTE_ID (0x0000) +#define ZCL_MANAGER_TARGET_ATTRIBUTE_ID (0x0001) +#define ZCL_MANAGER_ENDPOINT_ATTRIBUTE_ID (0x0002) +#define ZCL_CONNECTED_ATTRIBUTE_ID (0x0003) +#define ZCL_PREEMPTIBLE_ATTRIBUTE_ID (0x0004) +#define ZCL_IDLE_TIMEOUT_ATTRIBUTE_ID (0x0005) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: ISO 7816 Protocol Tunnel // Client attributes -#define ZCL_ISO7816_PROTOCOL_TUNNEL_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_ISO7816_PROTOCOL_TUNNEL_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_ISO7816_PROTOCOL_TUNNEL_STATUS_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_ISO7816_PROTOCOL_TUNNEL_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_ISO7816_PROTOCOL_TUNNEL_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_ISO7816_PROTOCOL_TUNNEL_STATUS_ATTRIBUTE_ID (0x0000) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) -// Attribute types for cluster: Price -// Cluster specification level: se-1.2b-15-0131-02 +// Attribute ids for cluster: Price // Client attributes -#define ZCL_PRICE_INCREASE_RANDOMIZE_MINUTES_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_PRICE_DECREASE_RANDOMIZE_MINUTES_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_COMMODITY_TYPE_CLIENT_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_PRICE_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_PRICE_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_PRICE_INCREASE_RANDOMIZE_MINUTES_ATTRIBUTE_ID (0x0000) +#define ZCL_PRICE_DECREASE_RANDOMIZE_MINUTES_ATTRIBUTE_ID (0x0001) +#define ZCL_COMMODITY_TYPE_CLIENT_ATTRIBUTE_ID (0x0002) +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_TIER1_PRICE_LABEL_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_TIER2_PRICE_LABEL_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_TIER3_PRICE_LABEL_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_TIER4_PRICE_LABEL_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_TIER5_PRICE_LABEL_ATTRIBUTE_ID 0x0004 // Ver.: always -#define ZCL_TIER6_PRICE_LABEL_ATTRIBUTE_ID 0x0005 // Ver.: always -#define ZCL_TIER7_PRICE_LABEL_ATTRIBUTE_ID 0x0006 // Ver.: always -#define ZCL_TIER8_PRICE_LABEL_ATTRIBUTE_ID 0x0007 // Ver.: always -#define ZCL_TIER9_PRICE_LABEL_ATTRIBUTE_ID 0x0008 // Ver.: always -#define ZCL_TIER10_PRICE_LABEL_ATTRIBUTE_ID 0x0009 // Ver.: always -#define ZCL_TIER11_PRICE_LABEL_ATTRIBUTE_ID 0x000A // Ver.: always -#define ZCL_TIER12_PRICE_LABEL_ATTRIBUTE_ID 0x000B // Ver.: always -#define ZCL_TIER13_PRICE_LABEL_ATTRIBUTE_ID 0x000C // Ver.: always -#define ZCL_TIER14_PRICE_LABEL_ATTRIBUTE_ID 0x000D // Ver.: always -#define ZCL_TIER15_PRICE_LABEL_ATTRIBUTE_ID 0x000E // Ver.: always -#define ZCL_TIER16_PRICE_LABEL_ATTRIBUTE_ID 0x000F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER17_PRICE_LABEL_ATTRIBUTE_ID 0x0010 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER18_PRICE_LABEL_ATTRIBUTE_ID 0x0011 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER19_PRICE_LABEL_ATTRIBUTE_ID 0x0012 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER20_PRICE_LABEL_ATTRIBUTE_ID 0x0013 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER21_PRICE_LABEL_ATTRIBUTE_ID 0x0014 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER22_PRICE_LABEL_ATTRIBUTE_ID 0x0015 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER23_PRICE_LABEL_ATTRIBUTE_ID 0x0016 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER24_PRICE_LABEL_ATTRIBUTE_ID 0x0017 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER25_PRICE_LABEL_ATTRIBUTE_ID 0x0018 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER26_PRICE_LABEL_ATTRIBUTE_ID 0x0019 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER27_PRICE_LABEL_ATTRIBUTE_ID 0x001A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER28_PRICE_LABEL_ATTRIBUTE_ID 0x001B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER29_PRICE_LABEL_ATTRIBUTE_ID 0x001C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER30_PRICE_LABEL_ATTRIBUTE_ID 0x001D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER31_PRICE_LABEL_ATTRIBUTE_ID 0x001E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER32_PRICE_LABEL_ATTRIBUTE_ID 0x001F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER33_PRICE_LABEL_ATTRIBUTE_ID 0x0020 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER34_PRICE_LABEL_ATTRIBUTE_ID 0x0021 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER35_PRICE_LABEL_ATTRIBUTE_ID 0x0022 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER36_PRICE_LABEL_ATTRIBUTE_ID 0x0023 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER37_PRICE_LABEL_ATTRIBUTE_ID 0x0024 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER38_PRICE_LABEL_ATTRIBUTE_ID 0x0025 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER39_PRICE_LABEL_ATTRIBUTE_ID 0x0026 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER40_PRICE_LABEL_ATTRIBUTE_ID 0x0027 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER41_PRICE_LABEL_ATTRIBUTE_ID 0x0028 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER42_PRICE_LABEL_ATTRIBUTE_ID 0x0029 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER43_PRICE_LABEL_ATTRIBUTE_ID 0x002A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER44_PRICE_LABEL_ATTRIBUTE_ID 0x002B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER45_PRICE_LABEL_ATTRIBUTE_ID 0x002C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER46_PRICE_LABEL_ATTRIBUTE_ID 0x002D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER47_PRICE_LABEL_ATTRIBUTE_ID 0x002E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER48_PRICE_LABEL_ATTRIBUTE_ID 0x002F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_BLOCK1_THRESHOLD_ATTRIBUTE_ID 0x0100 // Ver.: always -#define ZCL_BLOCK2_THRESHOLD_ATTRIBUTE_ID 0x0101 // Ver.: always -#define ZCL_BLOCK3_THRESHOLD_ATTRIBUTE_ID 0x0102 // Ver.: always -#define ZCL_BLOCK4_THRESHOLD_ATTRIBUTE_ID 0x0103 // Ver.: always -#define ZCL_BLOCK5_THRESHOLD_ATTRIBUTE_ID 0x0104 // Ver.: always -#define ZCL_BLOCK6_THRESHOLD_ATTRIBUTE_ID 0x0105 // Ver.: always -#define ZCL_BLOCK7_THRESHOLD_ATTRIBUTE_ID 0x0106 // Ver.: always -#define ZCL_BLOCK8_THRESHOLD_ATTRIBUTE_ID 0x0107 // Ver.: always -#define ZCL_BLOCK9_THRESHOLD_ATTRIBUTE_ID 0x0108 // Ver.: always -#define ZCL_BLOCK10_THRESHOLD_ATTRIBUTE_ID 0x0109 // Ver.: always -#define ZCL_BLOCK11_THRESHOLD_ATTRIBUTE_ID 0x010A // Ver.: always -#define ZCL_BLOCK12_THRESHOLD_ATTRIBUTE_ID 0x010B // Ver.: always -#define ZCL_BLOCK13_THRESHOLD_ATTRIBUTE_ID 0x010C // Ver.: always -#define ZCL_BLOCK14_THRESHOLD_ATTRIBUTE_ID 0x010D // Ver.: always -#define ZCL_BLOCK15_THRESHOLD_ATTRIBUTE_ID 0x010E // Ver.: always -#define ZCL_BLOCK_THRESHOLD_COUNT_ATTRIBUTE_ID 0x010F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER1_BLOCK1_THRESHOLD_ATTRIBUTE_ID 0x0110 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER1_BLOCK2_THRESHOLD_ATTRIBUTE_ID 0x0111 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER1_BLOCK3_THRESHOLD_ATTRIBUTE_ID 0x0112 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER1_BLOCK4_THRESHOLD_ATTRIBUTE_ID 0x0113 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER1_BLOCK5_THRESHOLD_ATTRIBUTE_ID 0x0114 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER1_BLOCK6_THRESHOLD_ATTRIBUTE_ID 0x0115 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER1_BLOCK7_THRESHOLD_ATTRIBUTE_ID 0x0116 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER1_BLOCK8_THRESHOLD_ATTRIBUTE_ID 0x0117 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER1_BLOCK9_THRESHOLD_ATTRIBUTE_ID 0x0118 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER1_BLOCK10_THRESHOLD_ATTRIBUTE_ID 0x0119 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER1_BLOCK11_THRESHOLD_ATTRIBUTE_ID 0x011A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER1_BLOCK12_THRESHOLD_ATTRIBUTE_ID 0x011B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER1_BLOCK13_THRESHOLD_ATTRIBUTE_ID 0x011C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER1_BLOCK14_THRESHOLD_ATTRIBUTE_ID 0x011D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER1_BLOCK15_THRESHOLD_ATTRIBUTE_ID 0x011E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER1_BLOCK_THRESHOLD_COUNT_ATTRIBUTE_ID 0x011F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER2_BLOCK1_THRESHOLD_ATTRIBUTE_ID 0x0120 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER2_BLOCK2_THRESHOLD_ATTRIBUTE_ID 0x0121 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER2_BLOCK3_THRESHOLD_ATTRIBUTE_ID 0x0122 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER2_BLOCK4_THRESHOLD_ATTRIBUTE_ID 0x0123 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER2_BLOCK5_THRESHOLD_ATTRIBUTE_ID 0x0124 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER2_BLOCK6_THRESHOLD_ATTRIBUTE_ID 0x0125 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER2_BLOCK7_THRESHOLD_ATTRIBUTE_ID 0x0126 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER2_BLOCK8_THRESHOLD_ATTRIBUTE_ID 0x0127 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER2_BLOCK9_THRESHOLD_ATTRIBUTE_ID 0x0128 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER2_BLOCK10_THRESHOLD_ATTRIBUTE_ID 0x0129 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER2_BLOCK11_THRESHOLD_ATTRIBUTE_ID 0x012A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER2_BLOCK12_THRESHOLD_ATTRIBUTE_ID 0x012B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER2_BLOCK13_THRESHOLD_ATTRIBUTE_ID 0x012C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER2_BLOCK14_THRESHOLD_ATTRIBUTE_ID 0x012D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER2_BLOCK15_THRESHOLD_ATTRIBUTE_ID 0x012E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER2_BLOCK_THRESHOLD_COUNT_ATTRIBUTE_ID 0x012F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER3_BLOCK1_THRESHOLD_ATTRIBUTE_ID 0x0130 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER3_BLOCK2_THRESHOLD_ATTRIBUTE_ID 0x0131 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER3_BLOCK3_THRESHOLD_ATTRIBUTE_ID 0x0132 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER3_BLOCK4_THRESHOLD_ATTRIBUTE_ID 0x0133 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER3_BLOCK5_THRESHOLD_ATTRIBUTE_ID 0x0134 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER3_BLOCK6_THRESHOLD_ATTRIBUTE_ID 0x0135 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER3_BLOCK7_THRESHOLD_ATTRIBUTE_ID 0x0136 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER3_BLOCK8_THRESHOLD_ATTRIBUTE_ID 0x0137 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER3_BLOCK9_THRESHOLD_ATTRIBUTE_ID 0x0138 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER3_BLOCK10_THRESHOLD_ATTRIBUTE_ID 0x0139 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER3_BLOCK11_THRESHOLD_ATTRIBUTE_ID 0x013A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER3_BLOCK12_THRESHOLD_ATTRIBUTE_ID 0x013B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER3_BLOCK13_THRESHOLD_ATTRIBUTE_ID 0x013C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER3_BLOCK14_THRESHOLD_ATTRIBUTE_ID 0x013D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER3_BLOCK15_THRESHOLD_ATTRIBUTE_ID 0x013E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER3_BLOCK_THRESHOLD_COUNT_ATTRIBUTE_ID 0x013F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER4_BLOCK1_THRESHOLD_ATTRIBUTE_ID 0x0140 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER4_BLOCK2_THRESHOLD_ATTRIBUTE_ID 0x0141 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER4_BLOCK3_THRESHOLD_ATTRIBUTE_ID 0x0142 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER4_BLOCK4_THRESHOLD_ATTRIBUTE_ID 0x0143 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER4_BLOCK5_THRESHOLD_ATTRIBUTE_ID 0x0144 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER4_BLOCK6_THRESHOLD_ATTRIBUTE_ID 0x0145 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER4_BLOCK7_THRESHOLD_ATTRIBUTE_ID 0x0146 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER4_BLOCK8_THRESHOLD_ATTRIBUTE_ID 0x0147 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER4_BLOCK9_THRESHOLD_ATTRIBUTE_ID 0x0148 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER4_BLOCK10_THRESHOLD_ATTRIBUTE_ID 0x0149 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER4_BLOCK11_THRESHOLD_ATTRIBUTE_ID 0x014A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER4_BLOCK12_THRESHOLD_ATTRIBUTE_ID 0x014B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER4_BLOCK13_THRESHOLD_ATTRIBUTE_ID 0x014C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER4_BLOCK14_THRESHOLD_ATTRIBUTE_ID 0x014D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER4_BLOCK15_THRESHOLD_ATTRIBUTE_ID 0x014E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER4_BLOCK_THRESHOLD_COUNT_ATTRIBUTE_ID 0x014F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER5_BLOCK1_THRESHOLD_ATTRIBUTE_ID 0x0150 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER5_BLOCK2_THRESHOLD_ATTRIBUTE_ID 0x0151 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER5_BLOCK3_THRESHOLD_ATTRIBUTE_ID 0x0152 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER5_BLOCK4_THRESHOLD_ATTRIBUTE_ID 0x0153 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER5_BLOCK5_THRESHOLD_ATTRIBUTE_ID 0x0154 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER5_BLOCK6_THRESHOLD_ATTRIBUTE_ID 0x0155 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER5_BLOCK7_THRESHOLD_ATTRIBUTE_ID 0x0156 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER5_BLOCK8_THRESHOLD_ATTRIBUTE_ID 0x0157 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER5_BLOCK9_THRESHOLD_ATTRIBUTE_ID 0x0158 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER5_BLOCK10_THRESHOLD_ATTRIBUTE_ID 0x0159 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER5_BLOCK11_THRESHOLD_ATTRIBUTE_ID 0x015A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER5_BLOCK12_THRESHOLD_ATTRIBUTE_ID 0x015B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER5_BLOCK13_THRESHOLD_ATTRIBUTE_ID 0x015C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER5_BLOCK14_THRESHOLD_ATTRIBUTE_ID 0x015D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER5_BLOCK15_THRESHOLD_ATTRIBUTE_ID 0x015E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER5_BLOCK_THRESHOLD_COUNT_ATTRIBUTE_ID 0x015F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER6_BLOCK1_THRESHOLD_ATTRIBUTE_ID 0x0160 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER6_BLOCK2_THRESHOLD_ATTRIBUTE_ID 0x0161 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER6_BLOCK3_THRESHOLD_ATTRIBUTE_ID 0x0162 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER6_BLOCK4_THRESHOLD_ATTRIBUTE_ID 0x0163 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER6_BLOCK5_THRESHOLD_ATTRIBUTE_ID 0x0164 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER6_BLOCK6_THRESHOLD_ATTRIBUTE_ID 0x0165 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER6_BLOCK7_THRESHOLD_ATTRIBUTE_ID 0x0166 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER6_BLOCK8_THRESHOLD_ATTRIBUTE_ID 0x0167 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER6_BLOCK9_THRESHOLD_ATTRIBUTE_ID 0x0168 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER6_BLOCK10_THRESHOLD_ATTRIBUTE_ID 0x0169 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER6_BLOCK11_THRESHOLD_ATTRIBUTE_ID 0x016A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER6_BLOCK12_THRESHOLD_ATTRIBUTE_ID 0x016B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER6_BLOCK13_THRESHOLD_ATTRIBUTE_ID 0x016C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER6_BLOCK14_THRESHOLD_ATTRIBUTE_ID 0x016D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER6_BLOCK15_THRESHOLD_ATTRIBUTE_ID 0x016E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER6_BLOCK_THRESHOLD_COUNT_ATTRIBUTE_ID 0x016F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER7_BLOCK1_THRESHOLD_ATTRIBUTE_ID 0x0170 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER7_BLOCK2_THRESHOLD_ATTRIBUTE_ID 0x0171 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER7_BLOCK3_THRESHOLD_ATTRIBUTE_ID 0x0172 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER7_BLOCK4_THRESHOLD_ATTRIBUTE_ID 0x0173 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER7_BLOCK5_THRESHOLD_ATTRIBUTE_ID 0x0174 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER7_BLOCK6_THRESHOLD_ATTRIBUTE_ID 0x0175 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER7_BLOCK7_THRESHOLD_ATTRIBUTE_ID 0x0176 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER7_BLOCK8_THRESHOLD_ATTRIBUTE_ID 0x0177 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER7_BLOCK9_THRESHOLD_ATTRIBUTE_ID 0x0178 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER7_BLOCK10_THRESHOLD_ATTRIBUTE_ID 0x0179 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER7_BLOCK11_THRESHOLD_ATTRIBUTE_ID 0x017A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER7_BLOCK12_THRESHOLD_ATTRIBUTE_ID 0x017B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER7_BLOCK13_THRESHOLD_ATTRIBUTE_ID 0x017C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER7_BLOCK14_THRESHOLD_ATTRIBUTE_ID 0x017D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER7_BLOCK15_THRESHOLD_ATTRIBUTE_ID 0x017E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER7_BLOCK_THRESHOLD_COUNT_ATTRIBUTE_ID 0x017F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER8_BLOCK1_THRESHOLD_ATTRIBUTE_ID 0x0180 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER8_BLOCK2_THRESHOLD_ATTRIBUTE_ID 0x0181 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER8_BLOCK3_THRESHOLD_ATTRIBUTE_ID 0x0182 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER8_BLOCK4_THRESHOLD_ATTRIBUTE_ID 0x0183 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER8_BLOCK5_THRESHOLD_ATTRIBUTE_ID 0x0184 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER8_BLOCK6_THRESHOLD_ATTRIBUTE_ID 0x0185 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER8_BLOCK7_THRESHOLD_ATTRIBUTE_ID 0x0186 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER8_BLOCK8_THRESHOLD_ATTRIBUTE_ID 0x0187 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER8_BLOCK9_THRESHOLD_ATTRIBUTE_ID 0x0188 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER8_BLOCK10_THRESHOLD_ATTRIBUTE_ID 0x0189 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER8_BLOCK11_THRESHOLD_ATTRIBUTE_ID 0x018A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER8_BLOCK12_THRESHOLD_ATTRIBUTE_ID 0x018B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER8_BLOCK13_THRESHOLD_ATTRIBUTE_ID 0x018C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER8_BLOCK14_THRESHOLD_ATTRIBUTE_ID 0x018D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER8_BLOCK15_THRESHOLD_ATTRIBUTE_ID 0x018E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER8_BLOCK_THRESHOLD_COUNT_ATTRIBUTE_ID 0x018F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER9_BLOCK1_THRESHOLD_ATTRIBUTE_ID 0x0190 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER9_BLOCK2_THRESHOLD_ATTRIBUTE_ID 0x0191 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER9_BLOCK3_THRESHOLD_ATTRIBUTE_ID 0x0192 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER9_BLOCK4_THRESHOLD_ATTRIBUTE_ID 0x0193 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER9_BLOCK5_THRESHOLD_ATTRIBUTE_ID 0x0194 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER9_BLOCK6_THRESHOLD_ATTRIBUTE_ID 0x0195 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER9_BLOCK7_THRESHOLD_ATTRIBUTE_ID 0x0196 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER9_BLOCK8_THRESHOLD_ATTRIBUTE_ID 0x0197 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER9_BLOCK9_THRESHOLD_ATTRIBUTE_ID 0x0198 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER9_BLOCK10_THRESHOLD_ATTRIBUTE_ID 0x0199 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER9_BLOCK11_THRESHOLD_ATTRIBUTE_ID 0x019A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER9_BLOCK12_THRESHOLD_ATTRIBUTE_ID 0x019B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER9_BLOCK13_THRESHOLD_ATTRIBUTE_ID 0x019C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER9_BLOCK14_THRESHOLD_ATTRIBUTE_ID 0x019D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER9_BLOCK15_THRESHOLD_ATTRIBUTE_ID 0x019E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER9_BLOCK_THRESHOLD_COUNT_ATTRIBUTE_ID 0x019F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER10_BLOCK1_THRESHOLD_ATTRIBUTE_ID 0x01A0 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER10_BLOCK2_THRESHOLD_ATTRIBUTE_ID 0x01A1 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER10_BLOCK3_THRESHOLD_ATTRIBUTE_ID 0x01A2 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER10_BLOCK4_THRESHOLD_ATTRIBUTE_ID 0x01A3 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER10_BLOCK5_THRESHOLD_ATTRIBUTE_ID 0x01A4 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER10_BLOCK6_THRESHOLD_ATTRIBUTE_ID 0x01A5 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER10_BLOCK7_THRESHOLD_ATTRIBUTE_ID 0x01A6 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER10_BLOCK8_THRESHOLD_ATTRIBUTE_ID 0x01A7 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER10_BLOCK9_THRESHOLD_ATTRIBUTE_ID 0x01A8 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER10_BLOCK10_THRESHOLD_ATTRIBUTE_ID 0x01A9 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER10_BLOCK11_THRESHOLD_ATTRIBUTE_ID 0x01AA // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER10_BLOCK12_THRESHOLD_ATTRIBUTE_ID 0x01AB // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER10_BLOCK13_THRESHOLD_ATTRIBUTE_ID 0x01AC // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER10_BLOCK14_THRESHOLD_ATTRIBUTE_ID 0x01AD // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER10_BLOCK15_THRESHOLD_ATTRIBUTE_ID 0x01AE // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER10_BLOCK_THRESHOLD_COUNT_ATTRIBUTE_ID 0x01AF // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER11_BLOCK1_THRESHOLD_ATTRIBUTE_ID 0x01B0 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER11_BLOCK2_THRESHOLD_ATTRIBUTE_ID 0x01B1 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER11_BLOCK3_THRESHOLD_ATTRIBUTE_ID 0x01B2 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER11_BLOCK4_THRESHOLD_ATTRIBUTE_ID 0x01B3 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER11_BLOCK5_THRESHOLD_ATTRIBUTE_ID 0x01B4 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER11_BLOCK6_THRESHOLD_ATTRIBUTE_ID 0x01B5 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER11_BLOCK7_THRESHOLD_ATTRIBUTE_ID 0x01B6 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER11_BLOCK8_THRESHOLD_ATTRIBUTE_ID 0x01B7 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER11_BLOCK9_THRESHOLD_ATTRIBUTE_ID 0x01B8 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER11_BLOCK10_THRESHOLD_ATTRIBUTE_ID 0x01B9 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER11_BLOCK11_THRESHOLD_ATTRIBUTE_ID 0x01BA // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER11_BLOCK12_THRESHOLD_ATTRIBUTE_ID 0x01BB // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER11_BLOCK13_THRESHOLD_ATTRIBUTE_ID 0x01BC // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER11_BLOCK14_THRESHOLD_ATTRIBUTE_ID 0x01BD // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER11_BLOCK15_THRESHOLD_ATTRIBUTE_ID 0x01BE // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER11_BLOCK_THRESHOLD_COUNT_ATTRIBUTE_ID 0x01BF // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER12_BLOCK1_THRESHOLD_ATTRIBUTE_ID 0x01C0 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER12_BLOCK2_THRESHOLD_ATTRIBUTE_ID 0x01C1 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER12_BLOCK3_THRESHOLD_ATTRIBUTE_ID 0x01C2 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER12_BLOCK4_THRESHOLD_ATTRIBUTE_ID 0x01C3 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER12_BLOCK5_THRESHOLD_ATTRIBUTE_ID 0x01C4 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER12_BLOCK6_THRESHOLD_ATTRIBUTE_ID 0x01C5 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER12_BLOCK7_THRESHOLD_ATTRIBUTE_ID 0x01C6 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER12_BLOCK8_THRESHOLD_ATTRIBUTE_ID 0x01C7 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER12_BLOCK9_THRESHOLD_ATTRIBUTE_ID 0x01C8 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER12_BLOCK10_THRESHOLD_ATTRIBUTE_ID 0x01C9 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER12_BLOCK11_THRESHOLD_ATTRIBUTE_ID 0x01CA // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER12_BLOCK12_THRESHOLD_ATTRIBUTE_ID 0x01CB // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER12_BLOCK13_THRESHOLD_ATTRIBUTE_ID 0x01CC // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER12_BLOCK14_THRESHOLD_ATTRIBUTE_ID 0x01CD // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER12_BLOCK15_THRESHOLD_ATTRIBUTE_ID 0x01CE // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER12_BLOCK_THRESHOLD_COUNT_ATTRIBUTE_ID 0x01CF // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER13_BLOCK1_THRESHOLD_ATTRIBUTE_ID 0x01D0 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER13_BLOCK2_THRESHOLD_ATTRIBUTE_ID 0x01D1 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER13_BLOCK3_THRESHOLD_ATTRIBUTE_ID 0x01D2 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER13_BLOCK4_THRESHOLD_ATTRIBUTE_ID 0x01D3 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER13_BLOCK5_THRESHOLD_ATTRIBUTE_ID 0x01D4 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER13_BLOCK6_THRESHOLD_ATTRIBUTE_ID 0x01D5 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER13_BLOCK7_THRESHOLD_ATTRIBUTE_ID 0x01D6 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER13_BLOCK8_THRESHOLD_ATTRIBUTE_ID 0x01D7 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER13_BLOCK9_THRESHOLD_ATTRIBUTE_ID 0x01D8 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER13_BLOCK10_THRESHOLD_ATTRIBUTE_ID 0x01D9 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER13_BLOCK11_THRESHOLD_ATTRIBUTE_ID 0x01DA // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER13_BLOCK12_THRESHOLD_ATTRIBUTE_ID 0x01DB // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER13_BLOCK13_THRESHOLD_ATTRIBUTE_ID 0x01DC // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER13_BLOCK14_THRESHOLD_ATTRIBUTE_ID 0x01DD // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER13_BLOCK15_THRESHOLD_ATTRIBUTE_ID 0x01DE // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER13_BLOCK_THRESHOLD_COUNT_ATTRIBUTE_ID 0x01DF // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER14_BLOCK1_THRESHOLD_ATTRIBUTE_ID 0x01E0 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER14_BLOCK2_THRESHOLD_ATTRIBUTE_ID 0x01E1 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER14_BLOCK3_THRESHOLD_ATTRIBUTE_ID 0x01E2 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER14_BLOCK4_THRESHOLD_ATTRIBUTE_ID 0x01E3 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER14_BLOCK5_THRESHOLD_ATTRIBUTE_ID 0x01E4 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER14_BLOCK6_THRESHOLD_ATTRIBUTE_ID 0x01E5 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER14_BLOCK7_THRESHOLD_ATTRIBUTE_ID 0x01E6 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER14_BLOCK8_THRESHOLD_ATTRIBUTE_ID 0x01E7 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER14_BLOCK9_THRESHOLD_ATTRIBUTE_ID 0x01E8 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER14_BLOCK10_THRESHOLD_ATTRIBUTE_ID 0x01E9 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER14_BLOCK11_THRESHOLD_ATTRIBUTE_ID 0x01EA // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER14_BLOCK12_THRESHOLD_ATTRIBUTE_ID 0x01EB // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER14_BLOCK13_THRESHOLD_ATTRIBUTE_ID 0x01EC // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER14_BLOCK14_THRESHOLD_ATTRIBUTE_ID 0x01ED // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER14_BLOCK15_THRESHOLD_ATTRIBUTE_ID 0x01EE // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER14_BLOCK_THRESHOLD_COUNT_ATTRIBUTE_ID 0x01EF // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER15_BLOCK1_THRESHOLD_ATTRIBUTE_ID 0x01F0 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER15_BLOCK2_THRESHOLD_ATTRIBUTE_ID 0x01F1 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER15_BLOCK3_THRESHOLD_ATTRIBUTE_ID 0x01F2 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER15_BLOCK4_THRESHOLD_ATTRIBUTE_ID 0x01F3 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER15_BLOCK5_THRESHOLD_ATTRIBUTE_ID 0x01F4 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER15_BLOCK6_THRESHOLD_ATTRIBUTE_ID 0x01F5 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER15_BLOCK7_THRESHOLD_ATTRIBUTE_ID 0x01F6 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER15_BLOCK8_THRESHOLD_ATTRIBUTE_ID 0x01F7 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER15_BLOCK9_THRESHOLD_ATTRIBUTE_ID 0x01F8 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER15_BLOCK10_THRESHOLD_ATTRIBUTE_ID 0x01F9 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER15_BLOCK11_THRESHOLD_ATTRIBUTE_ID 0x01FA // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER15_BLOCK12_THRESHOLD_ATTRIBUTE_ID 0x01FB // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER15_BLOCK13_THRESHOLD_ATTRIBUTE_ID 0x01FC // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER15_BLOCK14_THRESHOLD_ATTRIBUTE_ID 0x01FD // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER15_BLOCK15_THRESHOLD_ATTRIBUTE_ID 0x01FE // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER15_BLOCK_THRESHOLD_COUNT_ATTRIBUTE_ID 0x01FF // Ver.: since se-1.2a-07-5356-19 -#define ZCL_START_OF_BLOCK_PERIOD_ATTRIBUTE_ID 0x0200 // Ver.: always -#define ZCL_BLOCK_PERIOD_DURATION_MINUTES_ATTRIBUTE_ID 0x0201 // Ver.: always -#define ZCL_THRESHOLD_MULTIPLIER_ATTRIBUTE_ID 0x0202 // Ver.: always -#define ZCL_THRESHOLD_DIVISOR_ATTRIBUTE_ID 0x0203 // Ver.: always -#define ZCL_BLOCK_PERIOD_DURATION_TYPE_ATTRIBUTE_ID 0x0204 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_COMMODITY_TYPE_SERVER_ATTRIBUTE_ID 0x0300 // Ver.: always -#define ZCL_STANDING_CHARGE_ATTRIBUTE_ID 0x0301 // Ver.: always -#define ZCL_CONVERSION_FACTOR_ATTRIBUTE_ID 0x0302 // Ver.: since se-1.1a-07-5356-17 -#define ZCL_CONVERSION_FACTOR_TRAILING_DIGIT_ATTRIBUTE_ID 0x0303 // Ver.: since se-1.1a-07-5356-17 -#define ZCL_CALORIFIC_VALUE_ATTRIBUTE_ID 0x0304 // Ver.: since se-1.1a-07-5356-17 -#define ZCL_CALORIFIC_VALUE_UNIT_ATTRIBUTE_ID 0x0305 // Ver.: since se-1.1a-07-5356-17 -#define ZCL_CALORIFIC_VALUE_TRAILING_DIGIT_ATTRIBUTE_ID 0x0306 // Ver.: since se-1.1a-07-5356-17 -#define ZCL_NO_TIER_BLOCK1_PRICE_ATTRIBUTE_ID 0x0400 // Ver.: always -#define ZCL_NO_TIER_BLOCK2_PRICE_ATTRIBUTE_ID 0x0401 // Ver.: always -#define ZCL_NO_TIER_BLOCK3_PRICE_ATTRIBUTE_ID 0x0402 // Ver.: always -#define ZCL_NO_TIER_BLOCK4_PRICE_ATTRIBUTE_ID 0x0403 // Ver.: always -#define ZCL_NO_TIER_BLOCK5_PRICE_ATTRIBUTE_ID 0x0404 // Ver.: always -#define ZCL_NO_TIER_BLOCK6_PRICE_ATTRIBUTE_ID 0x0405 // Ver.: always -#define ZCL_NO_TIER_BLOCK7_PRICE_ATTRIBUTE_ID 0x0406 // Ver.: always -#define ZCL_NO_TIER_BLOCK8_PRICE_ATTRIBUTE_ID 0x0407 // Ver.: always -#define ZCL_NO_TIER_BLOCK9_PRICE_ATTRIBUTE_ID 0x0408 // Ver.: always -#define ZCL_NO_TIER_BLOCK10_PRICE_ATTRIBUTE_ID 0x0409 // Ver.: always -#define ZCL_NO_TIER_BLOCK11_PRICE_ATTRIBUTE_ID 0x040A // Ver.: always -#define ZCL_NO_TIER_BLOCK12_PRICE_ATTRIBUTE_ID 0x040B // Ver.: always -#define ZCL_NO_TIER_BLOCK13_PRICE_ATTRIBUTE_ID 0x040C // Ver.: always -#define ZCL_NO_TIER_BLOCK14_PRICE_ATTRIBUTE_ID 0x040D // Ver.: always -#define ZCL_NO_TIER_BLOCK15_PRICE_ATTRIBUTE_ID 0x040E // Ver.: always -#define ZCL_NO_TIER_BLOCK16_PRICE_ATTRIBUTE_ID 0x040F // Ver.: always -#define ZCL_TIER1_BLOCK1_PRICE_ATTRIBUTE_ID 0x0410 // Ver.: always -#define ZCL_TIER1_BLOCK2_PRICE_ATTRIBUTE_ID 0x0411 // Ver.: always -#define ZCL_TIER1_BLOCK3_PRICE_ATTRIBUTE_ID 0x0412 // Ver.: always -#define ZCL_TIER1_BLOCK4_PRICE_ATTRIBUTE_ID 0x0413 // Ver.: always -#define ZCL_TIER1_BLOCK5_PRICE_ATTRIBUTE_ID 0x0414 // Ver.: always -#define ZCL_TIER1_BLOCK6_PRICE_ATTRIBUTE_ID 0x0415 // Ver.: always -#define ZCL_TIER1_BLOCK7_PRICE_ATTRIBUTE_ID 0x0416 // Ver.: always -#define ZCL_TIER1_BLOCK8_PRICE_ATTRIBUTE_ID 0x0417 // Ver.: always -#define ZCL_TIER1_BLOCK9_PRICE_ATTRIBUTE_ID 0x0418 // Ver.: always -#define ZCL_TIER1_BLOCK10_PRICE_ATTRIBUTE_ID 0x0419 // Ver.: always -#define ZCL_TIER1_BLOCK11_PRICE_ATTRIBUTE_ID 0x041A // Ver.: always -#define ZCL_TIER1_BLOCK12_PRICE_ATTRIBUTE_ID 0x041B // Ver.: always -#define ZCL_TIER1_BLOCK13_PRICE_ATTRIBUTE_ID 0x041C // Ver.: always -#define ZCL_TIER1_BLOCK14_PRICE_ATTRIBUTE_ID 0x041D // Ver.: always -#define ZCL_TIER1_BLOCK15_PRICE_ATTRIBUTE_ID 0x041E // Ver.: always -#define ZCL_TIER1_BLOCK16_PRICE_ATTRIBUTE_ID 0x041F // Ver.: always -#define ZCL_TIER2_BLOCK1_PRICE_ATTRIBUTE_ID 0x0420 // Ver.: always -#define ZCL_TIER2_BLOCK2_PRICE_ATTRIBUTE_ID 0x0421 // Ver.: always -#define ZCL_TIER2_BLOCK3_PRICE_ATTRIBUTE_ID 0x0422 // Ver.: always -#define ZCL_TIER2_BLOCK4_PRICE_ATTRIBUTE_ID 0x0423 // Ver.: always -#define ZCL_TIER2_BLOCK5_PRICE_ATTRIBUTE_ID 0x0424 // Ver.: always -#define ZCL_TIER2_BLOCK6_PRICE_ATTRIBUTE_ID 0x0425 // Ver.: always -#define ZCL_TIER2_BLOCK7_PRICE_ATTRIBUTE_ID 0x0426 // Ver.: always -#define ZCL_TIER2_BLOCK8_PRICE_ATTRIBUTE_ID 0x0427 // Ver.: always -#define ZCL_TIER2_BLOCK9_PRICE_ATTRIBUTE_ID 0x0428 // Ver.: always -#define ZCL_TIER2_BLOCK10_PRICE_ATTRIBUTE_ID 0x0429 // Ver.: always -#define ZCL_TIER2_BLOCK11_PRICE_ATTRIBUTE_ID 0x042A // Ver.: always -#define ZCL_TIER2_BLOCK12_PRICE_ATTRIBUTE_ID 0x042B // Ver.: always -#define ZCL_TIER2_BLOCK13_PRICE_ATTRIBUTE_ID 0x042C // Ver.: always -#define ZCL_TIER2_BLOCK14_PRICE_ATTRIBUTE_ID 0x042D // Ver.: always -#define ZCL_TIER2_BLOCK15_PRICE_ATTRIBUTE_ID 0x042E // Ver.: always -#define ZCL_TIER2_BLOCK16_PRICE_ATTRIBUTE_ID 0x042F // Ver.: always -#define ZCL_TIER3_BLOCK1_PRICE_ATTRIBUTE_ID 0x0430 // Ver.: always -#define ZCL_TIER3_BLOCK2_PRICE_ATTRIBUTE_ID 0x0431 // Ver.: always -#define ZCL_TIER3_BLOCK3_PRICE_ATTRIBUTE_ID 0x0432 // Ver.: always -#define ZCL_TIER3_BLOCK4_PRICE_ATTRIBUTE_ID 0x0433 // Ver.: always -#define ZCL_TIER3_BLOCK5_PRICE_ATTRIBUTE_ID 0x0434 // Ver.: always -#define ZCL_TIER3_BLOCK6_PRICE_ATTRIBUTE_ID 0x0435 // Ver.: always -#define ZCL_TIER3_BLOCK7_PRICE_ATTRIBUTE_ID 0x0436 // Ver.: always -#define ZCL_TIER3_BLOCK8_PRICE_ATTRIBUTE_ID 0x0437 // Ver.: always -#define ZCL_TIER3_BLOCK9_PRICE_ATTRIBUTE_ID 0x0438 // Ver.: always -#define ZCL_TIER3_BLOCK10_PRICE_ATTRIBUTE_ID 0x0439 // Ver.: always -#define ZCL_TIER3_BLOCK11_PRICE_ATTRIBUTE_ID 0x043A // Ver.: always -#define ZCL_TIER3_BLOCK12_PRICE_ATTRIBUTE_ID 0x043B // Ver.: always -#define ZCL_TIER3_BLOCK13_PRICE_ATTRIBUTE_ID 0x043C // Ver.: always -#define ZCL_TIER3_BLOCK14_PRICE_ATTRIBUTE_ID 0x043D // Ver.: always -#define ZCL_TIER3_BLOCK15_PRICE_ATTRIBUTE_ID 0x043E // Ver.: always -#define ZCL_TIER3_BLOCK16_PRICE_ATTRIBUTE_ID 0x043F // Ver.: always -#define ZCL_TIER4_BLOCK1_PRICE_ATTRIBUTE_ID 0x0440 // Ver.: always -#define ZCL_TIER4_BLOCK2_PRICE_ATTRIBUTE_ID 0x0441 // Ver.: always -#define ZCL_TIER4_BLOCK3_PRICE_ATTRIBUTE_ID 0x0442 // Ver.: always -#define ZCL_TIER4_BLOCK4_PRICE_ATTRIBUTE_ID 0x0443 // Ver.: always -#define ZCL_TIER4_BLOCK5_PRICE_ATTRIBUTE_ID 0x0444 // Ver.: always -#define ZCL_TIER4_BLOCK6_PRICE_ATTRIBUTE_ID 0x0445 // Ver.: always -#define ZCL_TIER4_BLOCK7_PRICE_ATTRIBUTE_ID 0x0446 // Ver.: always -#define ZCL_TIER4_BLOCK8_PRICE_ATTRIBUTE_ID 0x0447 // Ver.: always -#define ZCL_TIER4_BLOCK9_PRICE_ATTRIBUTE_ID 0x0448 // Ver.: always -#define ZCL_TIER4_BLOCK10_PRICE_ATTRIBUTE_ID 0x0449 // Ver.: always -#define ZCL_TIER4_BLOCK11_PRICE_ATTRIBUTE_ID 0x044A // Ver.: always -#define ZCL_TIER4_BLOCK12_PRICE_ATTRIBUTE_ID 0x044B // Ver.: always -#define ZCL_TIER4_BLOCK13_PRICE_ATTRIBUTE_ID 0x044C // Ver.: always -#define ZCL_TIER4_BLOCK14_PRICE_ATTRIBUTE_ID 0x044D // Ver.: always -#define ZCL_TIER4_BLOCK15_PRICE_ATTRIBUTE_ID 0x044E // Ver.: always -#define ZCL_TIER4_BLOCK16_PRICE_ATTRIBUTE_ID 0x044F // Ver.: always -#define ZCL_TIER5_BLOCK1_PRICE_ATTRIBUTE_ID 0x0450 // Ver.: always -#define ZCL_TIER5_BLOCK2_PRICE_ATTRIBUTE_ID 0x0451 // Ver.: always -#define ZCL_TIER5_BLOCK3_PRICE_ATTRIBUTE_ID 0x0452 // Ver.: always -#define ZCL_TIER5_BLOCK4_PRICE_ATTRIBUTE_ID 0x0453 // Ver.: always -#define ZCL_TIER5_BLOCK5_PRICE_ATTRIBUTE_ID 0x0454 // Ver.: always -#define ZCL_TIER5_BLOCK6_PRICE_ATTRIBUTE_ID 0x0455 // Ver.: always -#define ZCL_TIER5_BLOCK7_PRICE_ATTRIBUTE_ID 0x0456 // Ver.: always -#define ZCL_TIER5_BLOCK8_PRICE_ATTRIBUTE_ID 0x0457 // Ver.: always -#define ZCL_TIER5_BLOCK9_PRICE_ATTRIBUTE_ID 0x0458 // Ver.: always -#define ZCL_TIER5_BLOCK10_PRICE_ATTRIBUTE_ID 0x0459 // Ver.: always -#define ZCL_TIER5_BLOCK11_PRICE_ATTRIBUTE_ID 0x045A // Ver.: always -#define ZCL_TIER5_BLOCK12_PRICE_ATTRIBUTE_ID 0x045B // Ver.: always -#define ZCL_TIER5_BLOCK13_PRICE_ATTRIBUTE_ID 0x045C // Ver.: always -#define ZCL_TIER5_BLOCK14_PRICE_ATTRIBUTE_ID 0x045D // Ver.: always -#define ZCL_TIER5_BLOCK15_PRICE_ATTRIBUTE_ID 0x045E // Ver.: always -#define ZCL_TIER5_BLOCK16_PRICE_ATTRIBUTE_ID 0x045F // Ver.: always -#define ZCL_TIER6_BLOCK1_PRICE_ATTRIBUTE_ID 0x0460 // Ver.: always -#define ZCL_TIER6_BLOCK2_PRICE_ATTRIBUTE_ID 0x0461 // Ver.: always -#define ZCL_TIER6_BLOCK3_PRICE_ATTRIBUTE_ID 0x0462 // Ver.: always -#define ZCL_TIER6_BLOCK4_PRICE_ATTRIBUTE_ID 0x0463 // Ver.: always -#define ZCL_TIER6_BLOCK5_PRICE_ATTRIBUTE_ID 0x0464 // Ver.: always -#define ZCL_TIER6_BLOCK6_PRICE_ATTRIBUTE_ID 0x0465 // Ver.: always -#define ZCL_TIER6_BLOCK7_PRICE_ATTRIBUTE_ID 0x0466 // Ver.: always -#define ZCL_TIER6_BLOCK8_PRICE_ATTRIBUTE_ID 0x0467 // Ver.: always -#define ZCL_TIER6_BLOCK9_PRICE_ATTRIBUTE_ID 0x0468 // Ver.: always -#define ZCL_TIER6_BLOCK10_PRICE_ATTRIBUTE_ID 0x0469 // Ver.: always -#define ZCL_TIER6_BLOCK11_PRICE_ATTRIBUTE_ID 0x046A // Ver.: always -#define ZCL_TIER6_BLOCK12_PRICE_ATTRIBUTE_ID 0x046B // Ver.: always -#define ZCL_TIER6_BLOCK13_PRICE_ATTRIBUTE_ID 0x046C // Ver.: always -#define ZCL_TIER6_BLOCK14_PRICE_ATTRIBUTE_ID 0x046D // Ver.: always -#define ZCL_TIER6_BLOCK15_PRICE_ATTRIBUTE_ID 0x046E // Ver.: always -#define ZCL_TIER6_BLOCK16_PRICE_ATTRIBUTE_ID 0x046F // Ver.: always -#define ZCL_TIER7_BLOCK1_PRICE_ATTRIBUTE_ID 0x0470 // Ver.: always -#define ZCL_TIER7_BLOCK2_PRICE_ATTRIBUTE_ID 0x0471 // Ver.: always -#define ZCL_TIER7_BLOCK3_PRICE_ATTRIBUTE_ID 0x0472 // Ver.: always -#define ZCL_TIER7_BLOCK4_PRICE_ATTRIBUTE_ID 0x0473 // Ver.: always -#define ZCL_TIER7_BLOCK5_PRICE_ATTRIBUTE_ID 0x0474 // Ver.: always -#define ZCL_TIER7_BLOCK6_PRICE_ATTRIBUTE_ID 0x0475 // Ver.: always -#define ZCL_TIER7_BLOCK7_PRICE_ATTRIBUTE_ID 0x0476 // Ver.: always -#define ZCL_TIER7_BLOCK8_PRICE_ATTRIBUTE_ID 0x0477 // Ver.: always -#define ZCL_TIER7_BLOCK9_PRICE_ATTRIBUTE_ID 0x0478 // Ver.: always -#define ZCL_TIER7_BLOCK10_PRICE_ATTRIBUTE_ID 0x0479 // Ver.: always -#define ZCL_TIER7_BLOCK11_PRICE_ATTRIBUTE_ID 0x047A // Ver.: always -#define ZCL_TIER7_BLOCK12_PRICE_ATTRIBUTE_ID 0x047B // Ver.: always -#define ZCL_TIER7_BLOCK13_PRICE_ATTRIBUTE_ID 0x047C // Ver.: always -#define ZCL_TIER7_BLOCK14_PRICE_ATTRIBUTE_ID 0x047D // Ver.: always -#define ZCL_TIER7_BLOCK15_PRICE_ATTRIBUTE_ID 0x047E // Ver.: always -#define ZCL_TIER7_BLOCK16_PRICE_ATTRIBUTE_ID 0x047F // Ver.: always -#define ZCL_TIER8_BLOCK1_PRICE_ATTRIBUTE_ID 0x0480 // Ver.: always -#define ZCL_TIER8_BLOCK2_PRICE_ATTRIBUTE_ID 0x0481 // Ver.: always -#define ZCL_TIER8_BLOCK3_PRICE_ATTRIBUTE_ID 0x0482 // Ver.: always -#define ZCL_TIER8_BLOCK4_PRICE_ATTRIBUTE_ID 0x0483 // Ver.: always -#define ZCL_TIER8_BLOCK5_PRICE_ATTRIBUTE_ID 0x0484 // Ver.: always -#define ZCL_TIER8_BLOCK6_PRICE_ATTRIBUTE_ID 0x0485 // Ver.: always -#define ZCL_TIER8_BLOCK7_PRICE_ATTRIBUTE_ID 0x0486 // Ver.: always -#define ZCL_TIER8_BLOCK8_PRICE_ATTRIBUTE_ID 0x0487 // Ver.: always -#define ZCL_TIER8_BLOCK9_PRICE_ATTRIBUTE_ID 0x0488 // Ver.: always -#define ZCL_TIER8_BLOCK10_PRICE_ATTRIBUTE_ID 0x0489 // Ver.: always -#define ZCL_TIER8_BLOCK11_PRICE_ATTRIBUTE_ID 0x048A // Ver.: always -#define ZCL_TIER8_BLOCK12_PRICE_ATTRIBUTE_ID 0x048B // Ver.: always -#define ZCL_TIER8_BLOCK13_PRICE_ATTRIBUTE_ID 0x048C // Ver.: always -#define ZCL_TIER8_BLOCK14_PRICE_ATTRIBUTE_ID 0x048D // Ver.: always -#define ZCL_TIER8_BLOCK15_PRICE_ATTRIBUTE_ID 0x048E // Ver.: always -#define ZCL_TIER8_BLOCK16_PRICE_ATTRIBUTE_ID 0x048F // Ver.: always -#define ZCL_TIER9_BLOCK1_PRICE_ATTRIBUTE_ID 0x0490 // Ver.: always -#define ZCL_TIER9_BLOCK2_PRICE_ATTRIBUTE_ID 0x0491 // Ver.: always -#define ZCL_TIER9_BLOCK3_PRICE_ATTRIBUTE_ID 0x0492 // Ver.: always -#define ZCL_TIER9_BLOCK4_PRICE_ATTRIBUTE_ID 0x0493 // Ver.: always -#define ZCL_TIER9_BLOCK5_PRICE_ATTRIBUTE_ID 0x0494 // Ver.: always -#define ZCL_TIER9_BLOCK6_PRICE_ATTRIBUTE_ID 0x0495 // Ver.: always -#define ZCL_TIER9_BLOCK7_PRICE_ATTRIBUTE_ID 0x0496 // Ver.: always -#define ZCL_TIER9_BLOCK8_PRICE_ATTRIBUTE_ID 0x0497 // Ver.: always -#define ZCL_TIER9_BLOCK9_PRICE_ATTRIBUTE_ID 0x0498 // Ver.: always -#define ZCL_TIER9_BLOCK10_PRICE_ATTRIBUTE_ID 0x0499 // Ver.: always -#define ZCL_TIER9_BLOCK11_PRICE_ATTRIBUTE_ID 0x049A // Ver.: always -#define ZCL_TIER9_BLOCK12_PRICE_ATTRIBUTE_ID 0x049B // Ver.: always -#define ZCL_TIER9_BLOCK13_PRICE_ATTRIBUTE_ID 0x049C // Ver.: always -#define ZCL_TIER9_BLOCK14_PRICE_ATTRIBUTE_ID 0x049D // Ver.: always -#define ZCL_TIER9_BLOCK15_PRICE_ATTRIBUTE_ID 0x049E // Ver.: always -#define ZCL_TIER9_BLOCK16_PRICE_ATTRIBUTE_ID 0x049F // Ver.: always -#define ZCL_TIER10_BLOCK1_PRICE_ATTRIBUTE_ID 0x04A0 // Ver.: always -#define ZCL_TIER10_BLOCK2_PRICE_ATTRIBUTE_ID 0x04A1 // Ver.: always -#define ZCL_TIER10_BLOCK3_PRICE_ATTRIBUTE_ID 0x04A2 // Ver.: always -#define ZCL_TIER10_BLOCK4_PRICE_ATTRIBUTE_ID 0x04A3 // Ver.: always -#define ZCL_TIER10_BLOCK5_PRICE_ATTRIBUTE_ID 0x04A4 // Ver.: always -#define ZCL_TIER10_BLOCK6_PRICE_ATTRIBUTE_ID 0x04A5 // Ver.: always -#define ZCL_TIER10_BLOCK7_PRICE_ATTRIBUTE_ID 0x04A6 // Ver.: always -#define ZCL_TIER10_BLOCK8_PRICE_ATTRIBUTE_ID 0x04A7 // Ver.: always -#define ZCL_TIER10_BLOCK9_PRICE_ATTRIBUTE_ID 0x04A8 // Ver.: always -#define ZCL_TIER10_BLOCK10_PRICE_ATTRIBUTE_ID 0x04A9 // Ver.: always -#define ZCL_TIER10_BLOCK11_PRICE_ATTRIBUTE_ID 0x04AA // Ver.: always -#define ZCL_TIER10_BLOCK12_PRICE_ATTRIBUTE_ID 0x04AB // Ver.: always -#define ZCL_TIER10_BLOCK13_PRICE_ATTRIBUTE_ID 0x04AC // Ver.: always -#define ZCL_TIER10_BLOCK14_PRICE_ATTRIBUTE_ID 0x04AD // Ver.: always -#define ZCL_TIER10_BLOCK15_PRICE_ATTRIBUTE_ID 0x04AE // Ver.: always -#define ZCL_TIER10_BLOCK16_PRICE_ATTRIBUTE_ID 0x04AF // Ver.: always -#define ZCL_TIER11_BLOCK1_PRICE_ATTRIBUTE_ID 0x04B0 // Ver.: always -#define ZCL_TIER11_BLOCK2_PRICE_ATTRIBUTE_ID 0x04B1 // Ver.: always -#define ZCL_TIER11_BLOCK3_PRICE_ATTRIBUTE_ID 0x04B2 // Ver.: always -#define ZCL_TIER11_BLOCK4_PRICE_ATTRIBUTE_ID 0x04B3 // Ver.: always -#define ZCL_TIER11_BLOCK5_PRICE_ATTRIBUTE_ID 0x04B4 // Ver.: always -#define ZCL_TIER11_BLOCK6_PRICE_ATTRIBUTE_ID 0x04B5 // Ver.: always -#define ZCL_TIER11_BLOCK7_PRICE_ATTRIBUTE_ID 0x04B6 // Ver.: always -#define ZCL_TIER11_BLOCK8_PRICE_ATTRIBUTE_ID 0x04B7 // Ver.: always -#define ZCL_TIER11_BLOCK9_PRICE_ATTRIBUTE_ID 0x04B8 // Ver.: always -#define ZCL_TIER11_BLOCK10_PRICE_ATTRIBUTE_ID 0x04B9 // Ver.: always -#define ZCL_TIER11_BLOCK11_PRICE_ATTRIBUTE_ID 0x04BA // Ver.: always -#define ZCL_TIER11_BLOCK12_PRICE_ATTRIBUTE_ID 0x04BB // Ver.: always -#define ZCL_TIER11_BLOCK13_PRICE_ATTRIBUTE_ID 0x04BC // Ver.: always -#define ZCL_TIER11_BLOCK14_PRICE_ATTRIBUTE_ID 0x04BD // Ver.: always -#define ZCL_TIER11_BLOCK15_PRICE_ATTRIBUTE_ID 0x04BE // Ver.: always -#define ZCL_TIER11_BLOCK16_PRICE_ATTRIBUTE_ID 0x04BF // Ver.: always -#define ZCL_TIER12_BLOCK1_PRICE_ATTRIBUTE_ID 0x04C0 // Ver.: always -#define ZCL_TIER12_BLOCK2_PRICE_ATTRIBUTE_ID 0x04C1 // Ver.: always -#define ZCL_TIER12_BLOCK3_PRICE_ATTRIBUTE_ID 0x04C2 // Ver.: always -#define ZCL_TIER12_BLOCK4_PRICE_ATTRIBUTE_ID 0x04C3 // Ver.: always -#define ZCL_TIER12_BLOCK5_PRICE_ATTRIBUTE_ID 0x04C4 // Ver.: always -#define ZCL_TIER12_BLOCK6_PRICE_ATTRIBUTE_ID 0x04C5 // Ver.: always -#define ZCL_TIER12_BLOCK7_PRICE_ATTRIBUTE_ID 0x04C6 // Ver.: always -#define ZCL_TIER12_BLOCK8_PRICE_ATTRIBUTE_ID 0x04C7 // Ver.: always -#define ZCL_TIER12_BLOCK9_PRICE_ATTRIBUTE_ID 0x04C8 // Ver.: always -#define ZCL_TIER12_BLOCK10_PRICE_ATTRIBUTE_ID 0x04C9 // Ver.: always -#define ZCL_TIER12_BLOCK11_PRICE_ATTRIBUTE_ID 0x04CA // Ver.: always -#define ZCL_TIER12_BLOCK12_PRICE_ATTRIBUTE_ID 0x04CB // Ver.: always -#define ZCL_TIER12_BLOCK13_PRICE_ATTRIBUTE_ID 0x04CC // Ver.: always -#define ZCL_TIER12_BLOCK14_PRICE_ATTRIBUTE_ID 0x04CD // Ver.: always -#define ZCL_TIER12_BLOCK15_PRICE_ATTRIBUTE_ID 0x04CE // Ver.: always -#define ZCL_TIER12_BLOCK16_PRICE_ATTRIBUTE_ID 0x04CF // Ver.: always -#define ZCL_TIER13_BLOCK1_PRICE_ATTRIBUTE_ID 0x04D0 // Ver.: always -#define ZCL_TIER13_BLOCK2_PRICE_ATTRIBUTE_ID 0x04D1 // Ver.: always -#define ZCL_TIER13_BLOCK3_PRICE_ATTRIBUTE_ID 0x04D2 // Ver.: always -#define ZCL_TIER13_BLOCK4_PRICE_ATTRIBUTE_ID 0x04D3 // Ver.: always -#define ZCL_TIER13_BLOCK5_PRICE_ATTRIBUTE_ID 0x04D4 // Ver.: always -#define ZCL_TIER13_BLOCK6_PRICE_ATTRIBUTE_ID 0x04D5 // Ver.: always -#define ZCL_TIER13_BLOCK7_PRICE_ATTRIBUTE_ID 0x04D6 // Ver.: always -#define ZCL_TIER13_BLOCK8_PRICE_ATTRIBUTE_ID 0x04D7 // Ver.: always -#define ZCL_TIER13_BLOCK9_PRICE_ATTRIBUTE_ID 0x04D8 // Ver.: always -#define ZCL_TIER13_BLOCK10_PRICE_ATTRIBUTE_ID 0x04D9 // Ver.: always -#define ZCL_TIER13_BLOCK11_PRICE_ATTRIBUTE_ID 0x04DA // Ver.: always -#define ZCL_TIER13_BLOCK12_PRICE_ATTRIBUTE_ID 0x04DB // Ver.: always -#define ZCL_TIER13_BLOCK13_PRICE_ATTRIBUTE_ID 0x04DC // Ver.: always -#define ZCL_TIER13_BLOCK14_PRICE_ATTRIBUTE_ID 0x04DD // Ver.: always -#define ZCL_TIER13_BLOCK15_PRICE_ATTRIBUTE_ID 0x04DE // Ver.: always -#define ZCL_TIER13_BLOCK16_PRICE_ATTRIBUTE_ID 0x04DF // Ver.: always -#define ZCL_TIER14_BLOCK1_PRICE_ATTRIBUTE_ID 0x04E0 // Ver.: always -#define ZCL_TIER14_BLOCK2_PRICE_ATTRIBUTE_ID 0x04E1 // Ver.: always -#define ZCL_TIER14_BLOCK3_PRICE_ATTRIBUTE_ID 0x04E2 // Ver.: always -#define ZCL_TIER14_BLOCK4_PRICE_ATTRIBUTE_ID 0x04E3 // Ver.: always -#define ZCL_TIER14_BLOCK5_PRICE_ATTRIBUTE_ID 0x04E4 // Ver.: always -#define ZCL_TIER14_BLOCK6_PRICE_ATTRIBUTE_ID 0x04E5 // Ver.: always -#define ZCL_TIER14_BLOCK7_PRICE_ATTRIBUTE_ID 0x04E6 // Ver.: always -#define ZCL_TIER14_BLOCK8_PRICE_ATTRIBUTE_ID 0x04E7 // Ver.: always -#define ZCL_TIER14_BLOCK9_PRICE_ATTRIBUTE_ID 0x04E8 // Ver.: always -#define ZCL_TIER14_BLOCK10_PRICE_ATTRIBUTE_ID 0x04E9 // Ver.: always -#define ZCL_TIER14_BLOCK11_PRICE_ATTRIBUTE_ID 0x04EA // Ver.: always -#define ZCL_TIER14_BLOCK12_PRICE_ATTRIBUTE_ID 0x04EB // Ver.: always -#define ZCL_TIER14_BLOCK13_PRICE_ATTRIBUTE_ID 0x04EC // Ver.: always -#define ZCL_TIER14_BLOCK14_PRICE_ATTRIBUTE_ID 0x04ED // Ver.: always -#define ZCL_TIER14_BLOCK15_PRICE_ATTRIBUTE_ID 0x04EE // Ver.: always -#define ZCL_TIER14_BLOCK16_PRICE_ATTRIBUTE_ID 0x04EF // Ver.: always -#define ZCL_TIER15_BLOCK1_PRICE_ATTRIBUTE_ID 0x04F0 // Ver.: always -#define ZCL_TIER15_BLOCK2_PRICE_ATTRIBUTE_ID 0x04F1 // Ver.: always -#define ZCL_TIER15_BLOCK3_PRICE_ATTRIBUTE_ID 0x04F2 // Ver.: always -#define ZCL_TIER15_BLOCK4_PRICE_ATTRIBUTE_ID 0x04F3 // Ver.: always -#define ZCL_TIER15_BLOCK5_PRICE_ATTRIBUTE_ID 0x04F4 // Ver.: always -#define ZCL_TIER15_BLOCK6_PRICE_ATTRIBUTE_ID 0x04F5 // Ver.: always -#define ZCL_TIER15_BLOCK7_PRICE_ATTRIBUTE_ID 0x04F6 // Ver.: always -#define ZCL_TIER15_BLOCK8_PRICE_ATTRIBUTE_ID 0x04F7 // Ver.: always -#define ZCL_TIER15_BLOCK9_PRICE_ATTRIBUTE_ID 0x04F8 // Ver.: always -#define ZCL_TIER15_BLOCK10_PRICE_ATTRIBUTE_ID 0x04F9 // Ver.: always -#define ZCL_TIER15_BLOCK11_PRICE_ATTRIBUTE_ID 0x04FA // Ver.: always -#define ZCL_TIER15_BLOCK12_PRICE_ATTRIBUTE_ID 0x04FB // Ver.: always -#define ZCL_TIER15_BLOCK13_PRICE_ATTRIBUTE_ID 0x04FC // Ver.: always -#define ZCL_TIER15_BLOCK14_PRICE_ATTRIBUTE_ID 0x04FD // Ver.: always -#define ZCL_TIER15_BLOCK15_PRICE_ATTRIBUTE_ID 0x04FE // Ver.: always -#define ZCL_TIER15_BLOCK16_PRICE_ATTRIBUTE_ID 0x04FF // Ver.: always -#define ZCL_PRICE_TIER16_ATTRIBUTE_ID 0x050F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PRICE_TIER17_ATTRIBUTE_ID 0x0510 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PRICE_TIER18_ATTRIBUTE_ID 0x0511 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PRICE_TIER19_ATTRIBUTE_ID 0x0512 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PRICE_TIER20_ATTRIBUTE_ID 0x0513 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PRICE_TIER21_ATTRIBUTE_ID 0x0514 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PRICE_TIER22_ATTRIBUTE_ID 0x0515 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PRICE_TIER23_ATTRIBUTE_ID 0x0516 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PRICE_TIER24_ATTRIBUTE_ID 0x0517 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PRICE_TIER25_ATTRIBUTE_ID 0x0518 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PRICE_TIER26_ATTRIBUTE_ID 0x0519 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PRICE_TIER27_ATTRIBUTE_ID 0x051A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PRICE_TIER28_ATTRIBUTE_ID 0x051B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PRICE_TIER29_ATTRIBUTE_ID 0x051C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PRICE_TIER30_ATTRIBUTE_ID 0x051D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PRICE_TIER31_ATTRIBUTE_ID 0x051E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PRICE_TIER32_ATTRIBUTE_ID 0x051F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PRICE_TIER33_ATTRIBUTE_ID 0x0520 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PRICE_TIER34_ATTRIBUTE_ID 0x0521 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PRICE_TIER35_ATTRIBUTE_ID 0x0522 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PRICE_TIER36_ATTRIBUTE_ID 0x0523 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PRICE_TIER37_ATTRIBUTE_ID 0x0524 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PRICE_TIER38_ATTRIBUTE_ID 0x0525 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PRICE_TIER39_ATTRIBUTE_ID 0x0526 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PRICE_TIER40_ATTRIBUTE_ID 0x0527 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PRICE_TIER41_ATTRIBUTE_ID 0x0528 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PRICE_TIER42_ATTRIBUTE_ID 0x0529 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PRICE_TIER43_ATTRIBUTE_ID 0x052A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PRICE_TIER44_ATTRIBUTE_ID 0x052B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PRICE_TIER45_ATTRIBUTE_ID 0x052C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PRICE_TIER46_ATTRIBUTE_ID 0x052D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PRICE_TIER47_ATTRIBUTE_ID 0x052E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PRICE_TIER48_ATTRIBUTE_ID 0x052F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CPP1_PRICE_ATTRIBUTE_ID 0x05FE // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CPP2_PRICE_ATTRIBUTE_ID 0x05FF // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TARIFF_LABEL_ATTRIBUTE_ID 0x0610 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_NUMBER_OF_PRICE_TIERS_IN_USE_ATTRIBUTE_ID 0x0611 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_NUMBER_OF_BLOCK_THRESHOLDS_IN_USE_ATTRIBUTE_ID 0x0612 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER_BLOCK_MODE_ATTRIBUTE_ID 0x0613 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TARIFF_UNIT_OF_MEASURE_ATTRIBUTE_ID 0x0615 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TARIFF_CURRENCY_ATTRIBUTE_ID 0x0616 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TARIFF_PRICE_TRAILING_DIGIT_ATTRIBUTE_ID 0x0617 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TARIFF_RESOLUTION_PERIOD_ATTRIBUTE_ID 0x0619 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TARIFF_CO2_ATTRIBUTE_ID 0x0620 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TARIFF_CO2_UNIT_ATTRIBUTE_ID 0x0621 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TARIFF_CO2_TRAILING_DIGIT_ATTRIBUTE_ID 0x0622 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_BILLING_PERIOD_START_ATTRIBUTE_ID 0x0700 // Ver.: since se-1.1b-07-5356-18 -#define ZCL_CURRENT_BILLING_PERIOD_DURATION_ATTRIBUTE_ID 0x0701 // Ver.: since se-1.1b-07-5356-18 -#define ZCL_LAST_BILLING_PERIOD_START_ATTRIBUTE_ID 0x0702 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_LAST_BILLING_PERIOD_DURATION_ATTRIBUTE_ID 0x0703 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_LAST_BILLING_PERIOD_CONSOLIDATED_BILL_ATTRIBUTE_ID 0x0704 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CREDIT_PAYMENT_DUE_DATE_ATTRIBUTE_ID 0x0800 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CREDIT_PAYMENT_STATUS_ATTRIBUTE_ID 0x0801 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CREDIT_PAYMENT_OVER_DUE_AMOUNT_ATTRIBUTE_ID 0x0802 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PAYMENT_DISCOUNT_ATTRIBUTE_ID 0x080A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PAYMENT_DISCOUNT_PERIOD_ATTRIBUTE_ID 0x080B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CREDIT_PAYMENT_1_ATTRIBUTE_ID 0x0810 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CREDIT_PAYMENT_DATE_1_ATTRIBUTE_ID 0x0811 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CREDIT_PAYMENT_REF_1_ATTRIBUTE_ID 0x0812 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CREDIT_PAYMENT_2_ATTRIBUTE_ID 0x0820 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CREDIT_PAYMENT_DATE_2_ATTRIBUTE_ID 0x0821 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CREDIT_PAYMENT_REF_2_ATTRIBUTE_ID 0x0822 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CREDIT_PAYMENT_3_ATTRIBUTE_ID 0x0830 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CREDIT_PAYMENT_DATE_3_ATTRIBUTE_ID 0x0831 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CREDIT_PAYMENT_REF_3_ATTRIBUTE_ID 0x0832 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CREDIT_PAYMENT_4_ATTRIBUTE_ID 0x0840 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CREDIT_PAYMENT_DATE_4_ATTRIBUTE_ID 0x0841 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CREDIT_PAYMENT_REF_4_ATTRIBUTE_ID 0x0842 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CREDIT_PAYMENT_5_ATTRIBUTE_ID 0x0850 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CREDIT_PAYMENT_DATE_5_ATTRIBUTE_ID 0x0851 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CREDIT_PAYMENT_REF_5_ATTRIBUTE_ID 0x0852 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER1_PRICE_LABEL_ATTRIBUTE_ID 0x8000 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER2_PRICE_LABEL_ATTRIBUTE_ID 0x8001 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER3_PRICE_LABEL_ATTRIBUTE_ID 0x8002 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER4_PRICE_LABEL_ATTRIBUTE_ID 0x8003 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER5_PRICE_LABEL_ATTRIBUTE_ID 0x8004 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER6_PRICE_LABEL_ATTRIBUTE_ID 0x8005 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER7_PRICE_LABEL_ATTRIBUTE_ID 0x8006 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER8_PRICE_LABEL_ATTRIBUTE_ID 0x8007 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER9_PRICE_LABEL_ATTRIBUTE_ID 0x8008 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER10_PRICE_LABEL_ATTRIBUTE_ID 0x8009 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER11_PRICE_LABEL_ATTRIBUTE_ID 0x800A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER12_PRICE_LABEL_ATTRIBUTE_ID 0x800B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER13_PRICE_LABEL_ATTRIBUTE_ID 0x800C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER14_PRICE_LABEL_ATTRIBUTE_ID 0x800D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER15_PRICE_LABEL_ATTRIBUTE_ID 0x800E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER16_PRICE_LABEL_ATTRIBUTE_ID 0x800F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER17_PRICE_LABEL_ATTRIBUTE_ID 0x8010 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER18_PRICE_LABEL_ATTRIBUTE_ID 0x8011 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER19_PRICE_LABEL_ATTRIBUTE_ID 0x8012 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER20_PRICE_LABEL_ATTRIBUTE_ID 0x8013 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER21_PRICE_LABEL_ATTRIBUTE_ID 0x8014 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER22_PRICE_LABEL_ATTRIBUTE_ID 0x8015 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER23_PRICE_LABEL_ATTRIBUTE_ID 0x8016 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER24_PRICE_LABEL_ATTRIBUTE_ID 0x8017 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER25_PRICE_LABEL_ATTRIBUTE_ID 0x8018 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER26_PRICE_LABEL_ATTRIBUTE_ID 0x8019 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER27_PRICE_LABEL_ATTRIBUTE_ID 0x801A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER28_PRICE_LABEL_ATTRIBUTE_ID 0x801B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER29_PRICE_LABEL_ATTRIBUTE_ID 0x801C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER30_PRICE_LABEL_ATTRIBUTE_ID 0x801D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER31_PRICE_LABEL_ATTRIBUTE_ID 0x801E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER32_PRICE_LABEL_ATTRIBUTE_ID 0x801F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER33_PRICE_LABEL_ATTRIBUTE_ID 0x8020 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER34_PRICE_LABEL_ATTRIBUTE_ID 0x8021 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER35_PRICE_LABEL_ATTRIBUTE_ID 0x8022 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER36_PRICE_LABEL_ATTRIBUTE_ID 0x8023 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER37_PRICE_LABEL_ATTRIBUTE_ID 0x8024 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER38_PRICE_LABEL_ATTRIBUTE_ID 0x8025 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER39_PRICE_LABEL_ATTRIBUTE_ID 0x8026 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER40_PRICE_LABEL_ATTRIBUTE_ID 0x8027 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER41_PRICE_LABEL_ATTRIBUTE_ID 0x8028 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER42_PRICE_LABEL_ATTRIBUTE_ID 0x8029 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER43_PRICE_LABEL_ATTRIBUTE_ID 0x802A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER44_PRICE_LABEL_ATTRIBUTE_ID 0x802B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER45_PRICE_LABEL_ATTRIBUTE_ID 0x802C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER46_PRICE_LABEL_ATTRIBUTE_ID 0x802D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER47_PRICE_LABEL_ATTRIBUTE_ID 0x802E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER48_PRICE_LABEL_ATTRIBUTE_ID 0x802F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_BLOCK1_THRESHOLD_ATTRIBUTE_ID 0x8100 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_BLOCK2_THRESHOLD_ATTRIBUTE_ID 0x8101 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_BLOCK3_THRESHOLD_ATTRIBUTE_ID 0x8102 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_BLOCK4_THRESHOLD_ATTRIBUTE_ID 0x8103 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_BLOCK5_THRESHOLD_ATTRIBUTE_ID 0x8104 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_BLOCK6_THRESHOLD_ATTRIBUTE_ID 0x8105 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_BLOCK7_THRESHOLD_ATTRIBUTE_ID 0x8106 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_BLOCK8_THRESHOLD_ATTRIBUTE_ID 0x8107 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_BLOCK9_THRESHOLD_ATTRIBUTE_ID 0x8108 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_BLOCK10_THRESHOLD_ATTRIBUTE_ID 0x8109 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_BLOCK11_THRESHOLD_ATTRIBUTE_ID 0x810A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_BLOCK12_THRESHOLD_ATTRIBUTE_ID 0x810B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_BLOCK13_THRESHOLD_ATTRIBUTE_ID 0x810C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_BLOCK14_THRESHOLD_ATTRIBUTE_ID 0x810D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_BLOCK15_THRESHOLD_ATTRIBUTE_ID 0x810E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_START_OF_BLOCK_PERIOD_ATTRIBUTE_ID 0x8200 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_BLOCK_PERIOD_DURATION_ATTRIBUTE_ID 0x8201 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_THRESHOLD_MULTIPLIER_ATTRIBUTE_ID 0x8202 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_THRESHOLD_DIVISOR_ATTRIBUTE_ID 0x8203 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_NO_TIER_BLOCK1_PRICE_ATTRIBUTE_ID 0x8400 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_NO_TIER_BLOCK2_PRICE_ATTRIBUTE_ID 0x8401 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_NO_TIER_BLOCK3_PRICE_ATTRIBUTE_ID 0x8402 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_NO_TIER_BLOCK4_PRICE_ATTRIBUTE_ID 0x8403 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_NO_TIER_BLOCK5_PRICE_ATTRIBUTE_ID 0x8404 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_NO_TIER_BLOCK6_PRICE_ATTRIBUTE_ID 0x8405 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_NO_TIER_BLOCK7_PRICE_ATTRIBUTE_ID 0x8406 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_NO_TIER_BLOCK8_PRICE_ATTRIBUTE_ID 0x8407 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_NO_TIER_BLOCK9_PRICE_ATTRIBUTE_ID 0x8408 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_NO_TIER_BLOCK10_PRICE_ATTRIBUTE_ID 0x8409 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_NO_TIER_BLOCK11_PRICE_ATTRIBUTE_ID 0x840A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_NO_TIER_BLOCK12_PRICE_ATTRIBUTE_ID 0x840B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_NO_TIER_BLOCK13_PRICE_ATTRIBUTE_ID 0x840C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_NO_TIER_BLOCK14_PRICE_ATTRIBUTE_ID 0x840D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_NO_TIER_BLOCK15_PRICE_ATTRIBUTE_ID 0x840E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_NO_TIER_BLOCK16_PRICE_ATTRIBUTE_ID 0x840F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER1_BLOCK1_PRICE_ATTRIBUTE_ID 0x8410 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER1_BLOCK2_PRICE_ATTRIBUTE_ID 0x8411 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER1_BLOCK3_PRICE_ATTRIBUTE_ID 0x8412 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER1_BLOCK4_PRICE_ATTRIBUTE_ID 0x8413 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER1_BLOCK5_PRICE_ATTRIBUTE_ID 0x8414 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER1_BLOCK6_PRICE_ATTRIBUTE_ID 0x8415 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER1_BLOCK7_PRICE_ATTRIBUTE_ID 0x8416 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER1_BLOCK8_PRICE_ATTRIBUTE_ID 0x8417 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER1_BLOCK9_PRICE_ATTRIBUTE_ID 0x8418 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER1_BLOCK10_PRICE_ATTRIBUTE_ID 0x8419 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER1_BLOCK11_PRICE_ATTRIBUTE_ID 0x841A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER1_BLOCK12_PRICE_ATTRIBUTE_ID 0x841B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER1_BLOCK13_PRICE_ATTRIBUTE_ID 0x841C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER1_BLOCK14_PRICE_ATTRIBUTE_ID 0x841D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER1_BLOCK15_PRICE_ATTRIBUTE_ID 0x841E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER1_BLOCK16_PRICE_ATTRIBUTE_ID 0x841F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER2_BLOCK1_PRICE_ATTRIBUTE_ID 0x8420 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER2_BLOCK2_PRICE_ATTRIBUTE_ID 0x8421 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER2_BLOCK3_PRICE_ATTRIBUTE_ID 0x8422 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER2_BLOCK4_PRICE_ATTRIBUTE_ID 0x8423 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER2_BLOCK5_PRICE_ATTRIBUTE_ID 0x8424 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER2_BLOCK6_PRICE_ATTRIBUTE_ID 0x8425 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER2_BLOCK7_PRICE_ATTRIBUTE_ID 0x8426 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER2_BLOCK8_PRICE_ATTRIBUTE_ID 0x8427 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER2_BLOCK9_PRICE_ATTRIBUTE_ID 0x8428 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER2_BLOCK10_PRICE_ATTRIBUTE_ID 0x8429 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER2_BLOCK11_PRICE_ATTRIBUTE_ID 0x842A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER2_BLOCK12_PRICE_ATTRIBUTE_ID 0x842B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER2_BLOCK13_PRICE_ATTRIBUTE_ID 0x842C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER2_BLOCK14_PRICE_ATTRIBUTE_ID 0x842D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER2_BLOCK15_PRICE_ATTRIBUTE_ID 0x842E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER2_BLOCK16_PRICE_ATTRIBUTE_ID 0x842F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER3_BLOCK1_PRICE_ATTRIBUTE_ID 0x8430 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER3_BLOCK2_PRICE_ATTRIBUTE_ID 0x8431 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER3_BLOCK3_PRICE_ATTRIBUTE_ID 0x8432 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER3_BLOCK4_PRICE_ATTRIBUTE_ID 0x8433 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER3_BLOCK5_PRICE_ATTRIBUTE_ID 0x8434 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER3_BLOCK6_PRICE_ATTRIBUTE_ID 0x8435 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER3_BLOCK7_PRICE_ATTRIBUTE_ID 0x8436 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER3_BLOCK8_PRICE_ATTRIBUTE_ID 0x8437 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER3_BLOCK9_PRICE_ATTRIBUTE_ID 0x8438 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER3_BLOCK10_PRICE_ATTRIBUTE_ID 0x8439 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER3_BLOCK11_PRICE_ATTRIBUTE_ID 0x843A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER3_BLOCK12_PRICE_ATTRIBUTE_ID 0x843B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER3_BLOCK13_PRICE_ATTRIBUTE_ID 0x843C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER3_BLOCK14_PRICE_ATTRIBUTE_ID 0x843D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER3_BLOCK15_PRICE_ATTRIBUTE_ID 0x843E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER3_BLOCK16_PRICE_ATTRIBUTE_ID 0x843F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER4_BLOCK1_PRICE_ATTRIBUTE_ID 0x8440 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER4_BLOCK2_PRICE_ATTRIBUTE_ID 0x8441 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER4_BLOCK3_PRICE_ATTRIBUTE_ID 0x8442 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER4_BLOCK4_PRICE_ATTRIBUTE_ID 0x8443 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER4_BLOCK5_PRICE_ATTRIBUTE_ID 0x8444 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER4_BLOCK6_PRICE_ATTRIBUTE_ID 0x8445 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER4_BLOCK7_PRICE_ATTRIBUTE_ID 0x8446 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER4_BLOCK8_PRICE_ATTRIBUTE_ID 0x8447 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER4_BLOCK9_PRICE_ATTRIBUTE_ID 0x8448 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER4_BLOCK10_PRICE_ATTRIBUTE_ID 0x8449 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER4_BLOCK11_PRICE_ATTRIBUTE_ID 0x844A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER4_BLOCK12_PRICE_ATTRIBUTE_ID 0x844B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER4_BLOCK13_PRICE_ATTRIBUTE_ID 0x844C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER4_BLOCK14_PRICE_ATTRIBUTE_ID 0x844D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER4_BLOCK15_PRICE_ATTRIBUTE_ID 0x844E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER4_BLOCK16_PRICE_ATTRIBUTE_ID 0x844F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER5_BLOCK1_PRICE_ATTRIBUTE_ID 0x8450 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER5_BLOCK2_PRICE_ATTRIBUTE_ID 0x8451 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER5_BLOCK3_PRICE_ATTRIBUTE_ID 0x8452 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER5_BLOCK4_PRICE_ATTRIBUTE_ID 0x8453 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER5_BLOCK5_PRICE_ATTRIBUTE_ID 0x8454 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER5_BLOCK6_PRICE_ATTRIBUTE_ID 0x8455 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER5_BLOCK7_PRICE_ATTRIBUTE_ID 0x8456 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER5_BLOCK8_PRICE_ATTRIBUTE_ID 0x8457 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER5_BLOCK9_PRICE_ATTRIBUTE_ID 0x8458 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER5_BLOCK10_PRICE_ATTRIBUTE_ID 0x8459 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER5_BLOCK11_PRICE_ATTRIBUTE_ID 0x845A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER5_BLOCK12_PRICE_ATTRIBUTE_ID 0x845B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER5_BLOCK13_PRICE_ATTRIBUTE_ID 0x845C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER5_BLOCK14_PRICE_ATTRIBUTE_ID 0x845D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER5_BLOCK15_PRICE_ATTRIBUTE_ID 0x845E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER5_BLOCK16_PRICE_ATTRIBUTE_ID 0x845F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER6_BLOCK1_PRICE_ATTRIBUTE_ID 0x8460 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER6_BLOCK2_PRICE_ATTRIBUTE_ID 0x8461 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER6_BLOCK3_PRICE_ATTRIBUTE_ID 0x8462 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER6_BLOCK4_PRICE_ATTRIBUTE_ID 0x8463 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER6_BLOCK5_PRICE_ATTRIBUTE_ID 0x8464 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER6_BLOCK6_PRICE_ATTRIBUTE_ID 0x8465 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER6_BLOCK7_PRICE_ATTRIBUTE_ID 0x8466 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER6_BLOCK8_PRICE_ATTRIBUTE_ID 0x8467 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER6_BLOCK9_PRICE_ATTRIBUTE_ID 0x8468 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER6_BLOCK10_PRICE_ATTRIBUTE_ID 0x8469 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER6_BLOCK11_PRICE_ATTRIBUTE_ID 0x846A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER6_BLOCK12_PRICE_ATTRIBUTE_ID 0x846B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER6_BLOCK13_PRICE_ATTRIBUTE_ID 0x846C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER6_BLOCK14_PRICE_ATTRIBUTE_ID 0x846D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER6_BLOCK15_PRICE_ATTRIBUTE_ID 0x846E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER6_BLOCK16_PRICE_ATTRIBUTE_ID 0x846F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER7_BLOCK1_PRICE_ATTRIBUTE_ID 0x8470 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER7_BLOCK2_PRICE_ATTRIBUTE_ID 0x8471 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER7_BLOCK3_PRICE_ATTRIBUTE_ID 0x8472 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER7_BLOCK4_PRICE_ATTRIBUTE_ID 0x8473 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER7_BLOCK5_PRICE_ATTRIBUTE_ID 0x8474 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER7_BLOCK6_PRICE_ATTRIBUTE_ID 0x8475 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER7_BLOCK7_PRICE_ATTRIBUTE_ID 0x8476 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER7_BLOCK8_PRICE_ATTRIBUTE_ID 0x8477 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER7_BLOCK9_PRICE_ATTRIBUTE_ID 0x8478 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER7_BLOCK10_PRICE_ATTRIBUTE_ID 0x8479 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER7_BLOCK11_PRICE_ATTRIBUTE_ID 0x847A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER7_BLOCK12_PRICE_ATTRIBUTE_ID 0x847B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER7_BLOCK13_PRICE_ATTRIBUTE_ID 0x847C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER7_BLOCK14_PRICE_ATTRIBUTE_ID 0x847D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER7_BLOCK15_PRICE_ATTRIBUTE_ID 0x847E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER7_BLOCK16_PRICE_ATTRIBUTE_ID 0x847F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER8_BLOCK1_PRICE_ATTRIBUTE_ID 0x8480 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER8_BLOCK2_PRICE_ATTRIBUTE_ID 0x8481 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER8_BLOCK3_PRICE_ATTRIBUTE_ID 0x8482 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER8_BLOCK4_PRICE_ATTRIBUTE_ID 0x8483 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER8_BLOCK5_PRICE_ATTRIBUTE_ID 0x8484 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER8_BLOCK6_PRICE_ATTRIBUTE_ID 0x8485 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER8_BLOCK7_PRICE_ATTRIBUTE_ID 0x8486 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER8_BLOCK8_PRICE_ATTRIBUTE_ID 0x8487 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER8_BLOCK9_PRICE_ATTRIBUTE_ID 0x8488 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER8_BLOCK10_PRICE_ATTRIBUTE_ID 0x8489 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER8_BLOCK11_PRICE_ATTRIBUTE_ID 0x848A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER8_BLOCK12_PRICE_ATTRIBUTE_ID 0x848B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER8_BLOCK13_PRICE_ATTRIBUTE_ID 0x848C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER8_BLOCK14_PRICE_ATTRIBUTE_ID 0x848D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER8_BLOCK15_PRICE_ATTRIBUTE_ID 0x848E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER8_BLOCK16_PRICE_ATTRIBUTE_ID 0x848F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER9_BLOCK1_PRICE_ATTRIBUTE_ID 0x8490 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER9_BLOCK2_PRICE_ATTRIBUTE_ID 0x8491 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER9_BLOCK3_PRICE_ATTRIBUTE_ID 0x8492 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER9_BLOCK4_PRICE_ATTRIBUTE_ID 0x8493 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER9_BLOCK5_PRICE_ATTRIBUTE_ID 0x8494 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER9_BLOCK6_PRICE_ATTRIBUTE_ID 0x8495 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER9_BLOCK7_PRICE_ATTRIBUTE_ID 0x8496 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER9_BLOCK8_PRICE_ATTRIBUTE_ID 0x8497 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER9_BLOCK9_PRICE_ATTRIBUTE_ID 0x8498 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER9_BLOCK10_PRICE_ATTRIBUTE_ID 0x8499 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER9_BLOCK11_PRICE_ATTRIBUTE_ID 0x849A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER9_BLOCK12_PRICE_ATTRIBUTE_ID 0x849B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER9_BLOCK13_PRICE_ATTRIBUTE_ID 0x849C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER9_BLOCK14_PRICE_ATTRIBUTE_ID 0x849D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER9_BLOCK15_PRICE_ATTRIBUTE_ID 0x849E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER9_BLOCK16_PRICE_ATTRIBUTE_ID 0x849F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER10_BLOCK1_PRICE_ATTRIBUTE_ID 0x84A0 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER10_BLOCK2_PRICE_ATTRIBUTE_ID 0x84A1 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER10_BLOCK3_PRICE_ATTRIBUTE_ID 0x84A2 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER10_BLOCK4_PRICE_ATTRIBUTE_ID 0x84A3 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER10_BLOCK5_PRICE_ATTRIBUTE_ID 0x84A4 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER10_BLOCK6_PRICE_ATTRIBUTE_ID 0x84A5 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER10_BLOCK7_PRICE_ATTRIBUTE_ID 0x84A6 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER10_BLOCK8_PRICE_ATTRIBUTE_ID 0x84A7 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER10_BLOCK9_PRICE_ATTRIBUTE_ID 0x84A8 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER10_BLOCK10_PRICE_ATTRIBUTE_ID 0x84A9 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER10_BLOCK11_PRICE_ATTRIBUTE_ID 0x84AA // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER10_BLOCK12_PRICE_ATTRIBUTE_ID 0x84AB // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER10_BLOCK13_PRICE_ATTRIBUTE_ID 0x84AC // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER10_BLOCK14_PRICE_ATTRIBUTE_ID 0x84AD // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER10_BLOCK15_PRICE_ATTRIBUTE_ID 0x84AE // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER10_BLOCK16_PRICE_ATTRIBUTE_ID 0x84AF // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER11_BLOCK1_PRICE_ATTRIBUTE_ID 0x84B0 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER11_BLOCK2_PRICE_ATTRIBUTE_ID 0x84B1 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER11_BLOCK3_PRICE_ATTRIBUTE_ID 0x84B2 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER11_BLOCK4_PRICE_ATTRIBUTE_ID 0x84B3 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER11_BLOCK5_PRICE_ATTRIBUTE_ID 0x84B4 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER11_BLOCK6_PRICE_ATTRIBUTE_ID 0x84B5 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER11_BLOCK7_PRICE_ATTRIBUTE_ID 0x84B6 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER11_BLOCK8_PRICE_ATTRIBUTE_ID 0x84B7 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER11_BLOCK9_PRICE_ATTRIBUTE_ID 0x84B8 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER11_BLOCK10_PRICE_ATTRIBUTE_ID 0x84B9 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER11_BLOCK11_PRICE_ATTRIBUTE_ID 0x84BA // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER11_BLOCK12_PRICE_ATTRIBUTE_ID 0x84BB // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER11_BLOCK13_PRICE_ATTRIBUTE_ID 0x84BC // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER11_BLOCK14_PRICE_ATTRIBUTE_ID 0x84BD // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER11_BLOCK15_PRICE_ATTRIBUTE_ID 0x84BE // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER11_BLOCK16_PRICE_ATTRIBUTE_ID 0x84BF // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER12_BLOCK1_PRICE_ATTRIBUTE_ID 0x84C0 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER12_BLOCK2_PRICE_ATTRIBUTE_ID 0x84C1 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER12_BLOCK3_PRICE_ATTRIBUTE_ID 0x84C2 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER12_BLOCK4_PRICE_ATTRIBUTE_ID 0x84C3 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER12_BLOCK5_PRICE_ATTRIBUTE_ID 0x84C4 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER12_BLOCK6_PRICE_ATTRIBUTE_ID 0x84C5 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER12_BLOCK7_PRICE_ATTRIBUTE_ID 0x84C6 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER12_BLOCK8_PRICE_ATTRIBUTE_ID 0x84C7 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER12_BLOCK9_PRICE_ATTRIBUTE_ID 0x84C8 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER12_BLOCK10_PRICE_ATTRIBUTE_ID 0x84C9 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER12_BLOCK11_PRICE_ATTRIBUTE_ID 0x84CA // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER12_BLOCK12_PRICE_ATTRIBUTE_ID 0x84CB // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER12_BLOCK13_PRICE_ATTRIBUTE_ID 0x84CC // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER12_BLOCK14_PRICE_ATTRIBUTE_ID 0x84CD // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER12_BLOCK15_PRICE_ATTRIBUTE_ID 0x84CE // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER12_BLOCK16_PRICE_ATTRIBUTE_ID 0x84CF // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER13_BLOCK1_PRICE_ATTRIBUTE_ID 0x84D0 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER13_BLOCK2_PRICE_ATTRIBUTE_ID 0x84D1 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER13_BLOCK3_PRICE_ATTRIBUTE_ID 0x84D2 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER13_BLOCK4_PRICE_ATTRIBUTE_ID 0x84D3 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER13_BLOCK5_PRICE_ATTRIBUTE_ID 0x84D4 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER13_BLOCK6_PRICE_ATTRIBUTE_ID 0x84D5 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER13_BLOCK7_PRICE_ATTRIBUTE_ID 0x84D6 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER13_BLOCK8_PRICE_ATTRIBUTE_ID 0x84D7 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER13_BLOCK9_PRICE_ATTRIBUTE_ID 0x84D8 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER13_BLOCK10_PRICE_ATTRIBUTE_ID 0x84D9 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER13_BLOCK11_PRICE_ATTRIBUTE_ID 0x84DA // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER13_BLOCK12_PRICE_ATTRIBUTE_ID 0x84DB // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER13_BLOCK13_PRICE_ATTRIBUTE_ID 0x84DC // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER13_BLOCK14_PRICE_ATTRIBUTE_ID 0x84DD // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER13_BLOCK15_PRICE_ATTRIBUTE_ID 0x84DE // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER13_BLOCK16_PRICE_ATTRIBUTE_ID 0x84DF // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER14_BLOCK1_PRICE_ATTRIBUTE_ID 0x84E0 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER14_BLOCK2_PRICE_ATTRIBUTE_ID 0x84E1 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER14_BLOCK3_PRICE_ATTRIBUTE_ID 0x84E2 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER14_BLOCK4_PRICE_ATTRIBUTE_ID 0x84E3 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER14_BLOCK5_PRICE_ATTRIBUTE_ID 0x84E4 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER14_BLOCK6_PRICE_ATTRIBUTE_ID 0x84E5 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER14_BLOCK7_PRICE_ATTRIBUTE_ID 0x84E6 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER14_BLOCK8_PRICE_ATTRIBUTE_ID 0x84E7 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER14_BLOCK9_PRICE_ATTRIBUTE_ID 0x84E8 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER14_BLOCK10_PRICE_ATTRIBUTE_ID 0x84E9 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER14_BLOCK11_PRICE_ATTRIBUTE_ID 0x84EA // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER14_BLOCK12_PRICE_ATTRIBUTE_ID 0x84EB // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER14_BLOCK13_PRICE_ATTRIBUTE_ID 0x84EC // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER14_BLOCK14_PRICE_ATTRIBUTE_ID 0x84ED // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER14_BLOCK15_PRICE_ATTRIBUTE_ID 0x84EE // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER14_BLOCK16_PRICE_ATTRIBUTE_ID 0x84EF // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER15_BLOCK1_PRICE_ATTRIBUTE_ID 0x84F0 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER15_BLOCK2_PRICE_ATTRIBUTE_ID 0x84F1 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER15_BLOCK3_PRICE_ATTRIBUTE_ID 0x84F2 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER15_BLOCK4_PRICE_ATTRIBUTE_ID 0x84F3 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER15_BLOCK5_PRICE_ATTRIBUTE_ID 0x84F4 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER15_BLOCK6_PRICE_ATTRIBUTE_ID 0x84F5 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER15_BLOCK7_PRICE_ATTRIBUTE_ID 0x84F6 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER15_BLOCK8_PRICE_ATTRIBUTE_ID 0x84F7 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER15_BLOCK9_PRICE_ATTRIBUTE_ID 0x84F8 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER15_BLOCK10_PRICE_ATTRIBUTE_ID 0x84F9 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER15_BLOCK11_PRICE_ATTRIBUTE_ID 0x84FA // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER15_BLOCK12_PRICE_ATTRIBUTE_ID 0x84FB // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER15_BLOCK13_PRICE_ATTRIBUTE_ID 0x84FC // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER15_BLOCK14_PRICE_ATTRIBUTE_ID 0x84FD // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER15_BLOCK15_PRICE_ATTRIBUTE_ID 0x84FE // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER15_BLOCK16_PRICE_ATTRIBUTE_ID 0x84FF // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_PRICE_TIER16_ATTRIBUTE_ID 0x850F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_PRICE_TIER17_ATTRIBUTE_ID 0x8510 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_PRICE_TIER18_ATTRIBUTE_ID 0x8511 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_PRICE_TIER19_ATTRIBUTE_ID 0x8512 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_PRICE_TIER20_ATTRIBUTE_ID 0x8513 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_PRICE_TIER21_ATTRIBUTE_ID 0x8514 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_PRICE_TIER22_ATTRIBUTE_ID 0x8515 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_PRICE_TIER23_ATTRIBUTE_ID 0x8516 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_PRICE_TIER24_ATTRIBUTE_ID 0x8517 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_PRICE_TIER25_ATTRIBUTE_ID 0x8518 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_PRICE_TIER26_ATTRIBUTE_ID 0x8519 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_PRICE_TIER27_ATTRIBUTE_ID 0x851A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_PRICE_TIER28_ATTRIBUTE_ID 0x851B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_PRICE_TIER29_ATTRIBUTE_ID 0x851C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_PRICE_TIER30_ATTRIBUTE_ID 0x851D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_PRICE_TIER31_ATTRIBUTE_ID 0x851E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_PRICE_TIER32_ATTRIBUTE_ID 0x851F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_PRICE_TIER33_ATTRIBUTE_ID 0x8520 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_PRICE_TIER34_ATTRIBUTE_ID 0x8521 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_PRICE_TIER35_ATTRIBUTE_ID 0x8522 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_PRICE_TIER36_ATTRIBUTE_ID 0x8523 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_PRICE_TIER37_ATTRIBUTE_ID 0x8524 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_PRICE_TIER38_ATTRIBUTE_ID 0x8525 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_PRICE_TIER39_ATTRIBUTE_ID 0x8526 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_PRICE_TIER40_ATTRIBUTE_ID 0x8527 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_PRICE_TIER41_ATTRIBUTE_ID 0x8528 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_PRICE_TIER42_ATTRIBUTE_ID 0x8529 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_PRICE_TIER43_ATTRIBUTE_ID 0x852A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_PRICE_TIER44_ATTRIBUTE_ID 0x852B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_PRICE_TIER45_ATTRIBUTE_ID 0x852C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_PRICE_TIER46_ATTRIBUTE_ID 0x852D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_PRICE_TIER47_ATTRIBUTE_ID 0x852E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_PRICE_TIER48_ATTRIBUTE_ID 0x852F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TARIFF_LABEL_ATTRIBUTE_ID 0x8610 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_NUMBER_OF_PRICE_TIERS_IN_USE_ATTRIBUTE_ID 0x8611 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_NUMBER_OF_BLOCK_THRESHOLDS_IN_USE_ATTRIBUTE_ID 0x8612 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER_BLOCK_MODE_ATTRIBUTE_ID 0x8613 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TARIFF_RESOLUTION_PERIOD_ATTRIBUTE_ID 0x8615 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_CO2_ATTRIBUTE_ID 0x8625 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_CO2_UNIT_ATTRIBUTE_ID 0x8626 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_CO2_TRAILING_DIGIT_ATTRIBUTE_ID 0x8627 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_CURRENT_BILLING_PERIOD_START_ATTRIBUTE_ID 0x8700 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_CURRENT_BILLING_PERIOD_DURATION_ATTRIBUTE_ID 0x8701 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_LAST_BILLING_PERIOD_START_ATTRIBUTE_ID 0x8702 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_LAST_BILLING_PERIOD_DURATION_ATTRIBUTE_ID 0x8703 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_LAST_BILLING_PERIOD_CONSOLIDATED_BILL_ATTRIBUTE_ID 0x8704 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PRICE_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_PRICE_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Demand Response and Load Control -// Cluster specification level: se-1.2b-15-0131-02 +#define ZCL_TIER1_PRICE_LABEL_ATTRIBUTE_ID (0x0000) +#define ZCL_TIER2_PRICE_LABEL_ATTRIBUTE_ID (0x0001) +#define ZCL_TIER3_PRICE_LABEL_ATTRIBUTE_ID (0x0002) +#define ZCL_TIER4_PRICE_LABEL_ATTRIBUTE_ID (0x0003) +#define ZCL_TIER5_PRICE_LABEL_ATTRIBUTE_ID (0x0004) +#define ZCL_TIER6_PRICE_LABEL_ATTRIBUTE_ID (0x0005) +#define ZCL_TIER7_PRICE_LABEL_ATTRIBUTE_ID (0x0006) +#define ZCL_TIER8_PRICE_LABEL_ATTRIBUTE_ID (0x0007) +#define ZCL_TIER9_PRICE_LABEL_ATTRIBUTE_ID (0x0008) +#define ZCL_TIER10_PRICE_LABEL_ATTRIBUTE_ID (0x0009) +#define ZCL_TIER11_PRICE_LABEL_ATTRIBUTE_ID (0x000A) +#define ZCL_TIER12_PRICE_LABEL_ATTRIBUTE_ID (0x000B) +#define ZCL_TIER13_PRICE_LABEL_ATTRIBUTE_ID (0x000C) +#define ZCL_TIER14_PRICE_LABEL_ATTRIBUTE_ID (0x000D) +#define ZCL_TIER15_PRICE_LABEL_ATTRIBUTE_ID (0x000E) +#define ZCL_TIER16_PRICE_LABEL_ATTRIBUTE_ID (0x000F) +#define ZCL_TIER17_PRICE_LABEL_ATTRIBUTE_ID (0x0010) +#define ZCL_TIER18_PRICE_LABEL_ATTRIBUTE_ID (0x0011) +#define ZCL_TIER19_PRICE_LABEL_ATTRIBUTE_ID (0x0012) +#define ZCL_TIER20_PRICE_LABEL_ATTRIBUTE_ID (0x0013) +#define ZCL_TIER21_PRICE_LABEL_ATTRIBUTE_ID (0x0014) +#define ZCL_TIER22_PRICE_LABEL_ATTRIBUTE_ID (0x0015) +#define ZCL_TIER23_PRICE_LABEL_ATTRIBUTE_ID (0x0016) +#define ZCL_TIER24_PRICE_LABEL_ATTRIBUTE_ID (0x0017) +#define ZCL_TIER25_PRICE_LABEL_ATTRIBUTE_ID (0x0018) +#define ZCL_TIER26_PRICE_LABEL_ATTRIBUTE_ID (0x0019) +#define ZCL_TIER27_PRICE_LABEL_ATTRIBUTE_ID (0x001A) +#define ZCL_TIER28_PRICE_LABEL_ATTRIBUTE_ID (0x001B) +#define ZCL_TIER29_PRICE_LABEL_ATTRIBUTE_ID (0x001C) +#define ZCL_TIER30_PRICE_LABEL_ATTRIBUTE_ID (0x001D) +#define ZCL_TIER31_PRICE_LABEL_ATTRIBUTE_ID (0x001E) +#define ZCL_TIER32_PRICE_LABEL_ATTRIBUTE_ID (0x001F) +#define ZCL_TIER33_PRICE_LABEL_ATTRIBUTE_ID (0x0020) +#define ZCL_TIER34_PRICE_LABEL_ATTRIBUTE_ID (0x0021) +#define ZCL_TIER35_PRICE_LABEL_ATTRIBUTE_ID (0x0022) +#define ZCL_TIER36_PRICE_LABEL_ATTRIBUTE_ID (0x0023) +#define ZCL_TIER37_PRICE_LABEL_ATTRIBUTE_ID (0x0024) +#define ZCL_TIER38_PRICE_LABEL_ATTRIBUTE_ID (0x0025) +#define ZCL_TIER39_PRICE_LABEL_ATTRIBUTE_ID (0x0026) +#define ZCL_TIER40_PRICE_LABEL_ATTRIBUTE_ID (0x0027) +#define ZCL_TIER41_PRICE_LABEL_ATTRIBUTE_ID (0x0028) +#define ZCL_TIER42_PRICE_LABEL_ATTRIBUTE_ID (0x0029) +#define ZCL_TIER43_PRICE_LABEL_ATTRIBUTE_ID (0x002A) +#define ZCL_TIER44_PRICE_LABEL_ATTRIBUTE_ID (0x002B) +#define ZCL_TIER45_PRICE_LABEL_ATTRIBUTE_ID (0x002C) +#define ZCL_TIER46_PRICE_LABEL_ATTRIBUTE_ID (0x002D) +#define ZCL_TIER47_PRICE_LABEL_ATTRIBUTE_ID (0x002E) +#define ZCL_TIER48_PRICE_LABEL_ATTRIBUTE_ID (0x002F) +#define ZCL_BLOCK1_THRESHOLD_ATTRIBUTE_ID (0x0100) +#define ZCL_BLOCK2_THRESHOLD_ATTRIBUTE_ID (0x0101) +#define ZCL_BLOCK3_THRESHOLD_ATTRIBUTE_ID (0x0102) +#define ZCL_BLOCK4_THRESHOLD_ATTRIBUTE_ID (0x0103) +#define ZCL_BLOCK5_THRESHOLD_ATTRIBUTE_ID (0x0104) +#define ZCL_BLOCK6_THRESHOLD_ATTRIBUTE_ID (0x0105) +#define ZCL_BLOCK7_THRESHOLD_ATTRIBUTE_ID (0x0106) +#define ZCL_BLOCK8_THRESHOLD_ATTRIBUTE_ID (0x0107) +#define ZCL_BLOCK9_THRESHOLD_ATTRIBUTE_ID (0x0108) +#define ZCL_BLOCK10_THRESHOLD_ATTRIBUTE_ID (0x0109) +#define ZCL_BLOCK11_THRESHOLD_ATTRIBUTE_ID (0x010A) +#define ZCL_BLOCK12_THRESHOLD_ATTRIBUTE_ID (0x010B) +#define ZCL_BLOCK13_THRESHOLD_ATTRIBUTE_ID (0x010C) +#define ZCL_BLOCK14_THRESHOLD_ATTRIBUTE_ID (0x010D) +#define ZCL_BLOCK15_THRESHOLD_ATTRIBUTE_ID (0x010E) +#define ZCL_BLOCK_THRESHOLD_COUNT_ATTRIBUTE_ID (0x010F) +#define ZCL_TIER1_BLOCK1_THRESHOLD_ATTRIBUTE_ID (0x0110) +#define ZCL_TIER1_BLOCK2_THRESHOLD_ATTRIBUTE_ID (0x0111) +#define ZCL_TIER1_BLOCK3_THRESHOLD_ATTRIBUTE_ID (0x0112) +#define ZCL_TIER1_BLOCK4_THRESHOLD_ATTRIBUTE_ID (0x0113) +#define ZCL_TIER1_BLOCK5_THRESHOLD_ATTRIBUTE_ID (0x0114) +#define ZCL_TIER1_BLOCK6_THRESHOLD_ATTRIBUTE_ID (0x0115) +#define ZCL_TIER1_BLOCK7_THRESHOLD_ATTRIBUTE_ID (0x0116) +#define ZCL_TIER1_BLOCK8_THRESHOLD_ATTRIBUTE_ID (0x0117) +#define ZCL_TIER1_BLOCK9_THRESHOLD_ATTRIBUTE_ID (0x0118) +#define ZCL_TIER1_BLOCK10_THRESHOLD_ATTRIBUTE_ID (0x0119) +#define ZCL_TIER1_BLOCK11_THRESHOLD_ATTRIBUTE_ID (0x011A) +#define ZCL_TIER1_BLOCK12_THRESHOLD_ATTRIBUTE_ID (0x011B) +#define ZCL_TIER1_BLOCK13_THRESHOLD_ATTRIBUTE_ID (0x011C) +#define ZCL_TIER1_BLOCK14_THRESHOLD_ATTRIBUTE_ID (0x011D) +#define ZCL_TIER1_BLOCK15_THRESHOLD_ATTRIBUTE_ID (0x011E) +#define ZCL_TIER1_BLOCK_THRESHOLD_COUNT_ATTRIBUTE_ID (0x011F) +#define ZCL_TIER2_BLOCK1_THRESHOLD_ATTRIBUTE_ID (0x0120) +#define ZCL_TIER2_BLOCK2_THRESHOLD_ATTRIBUTE_ID (0x0121) +#define ZCL_TIER2_BLOCK3_THRESHOLD_ATTRIBUTE_ID (0x0122) +#define ZCL_TIER2_BLOCK4_THRESHOLD_ATTRIBUTE_ID (0x0123) +#define ZCL_TIER2_BLOCK5_THRESHOLD_ATTRIBUTE_ID (0x0124) +#define ZCL_TIER2_BLOCK6_THRESHOLD_ATTRIBUTE_ID (0x0125) +#define ZCL_TIER2_BLOCK7_THRESHOLD_ATTRIBUTE_ID (0x0126) +#define ZCL_TIER2_BLOCK8_THRESHOLD_ATTRIBUTE_ID (0x0127) +#define ZCL_TIER2_BLOCK9_THRESHOLD_ATTRIBUTE_ID (0x0128) +#define ZCL_TIER2_BLOCK10_THRESHOLD_ATTRIBUTE_ID (0x0129) +#define ZCL_TIER2_BLOCK11_THRESHOLD_ATTRIBUTE_ID (0x012A) +#define ZCL_TIER2_BLOCK12_THRESHOLD_ATTRIBUTE_ID (0x012B) +#define ZCL_TIER2_BLOCK13_THRESHOLD_ATTRIBUTE_ID (0x012C) +#define ZCL_TIER2_BLOCK14_THRESHOLD_ATTRIBUTE_ID (0x012D) +#define ZCL_TIER2_BLOCK15_THRESHOLD_ATTRIBUTE_ID (0x012E) +#define ZCL_TIER2_BLOCK_THRESHOLD_COUNT_ATTRIBUTE_ID (0x012F) +#define ZCL_TIER3_BLOCK1_THRESHOLD_ATTRIBUTE_ID (0x0130) +#define ZCL_TIER3_BLOCK2_THRESHOLD_ATTRIBUTE_ID (0x0131) +#define ZCL_TIER3_BLOCK3_THRESHOLD_ATTRIBUTE_ID (0x0132) +#define ZCL_TIER3_BLOCK4_THRESHOLD_ATTRIBUTE_ID (0x0133) +#define ZCL_TIER3_BLOCK5_THRESHOLD_ATTRIBUTE_ID (0x0134) +#define ZCL_TIER3_BLOCK6_THRESHOLD_ATTRIBUTE_ID (0x0135) +#define ZCL_TIER3_BLOCK7_THRESHOLD_ATTRIBUTE_ID (0x0136) +#define ZCL_TIER3_BLOCK8_THRESHOLD_ATTRIBUTE_ID (0x0137) +#define ZCL_TIER3_BLOCK9_THRESHOLD_ATTRIBUTE_ID (0x0138) +#define ZCL_TIER3_BLOCK10_THRESHOLD_ATTRIBUTE_ID (0x0139) +#define ZCL_TIER3_BLOCK11_THRESHOLD_ATTRIBUTE_ID (0x013A) +#define ZCL_TIER3_BLOCK12_THRESHOLD_ATTRIBUTE_ID (0x013B) +#define ZCL_TIER3_BLOCK13_THRESHOLD_ATTRIBUTE_ID (0x013C) +#define ZCL_TIER3_BLOCK14_THRESHOLD_ATTRIBUTE_ID (0x013D) +#define ZCL_TIER3_BLOCK15_THRESHOLD_ATTRIBUTE_ID (0x013E) +#define ZCL_TIER3_BLOCK_THRESHOLD_COUNT_ATTRIBUTE_ID (0x013F) +#define ZCL_TIER4_BLOCK1_THRESHOLD_ATTRIBUTE_ID (0x0140) +#define ZCL_TIER4_BLOCK2_THRESHOLD_ATTRIBUTE_ID (0x0141) +#define ZCL_TIER4_BLOCK3_THRESHOLD_ATTRIBUTE_ID (0x0142) +#define ZCL_TIER4_BLOCK4_THRESHOLD_ATTRIBUTE_ID (0x0143) +#define ZCL_TIER4_BLOCK5_THRESHOLD_ATTRIBUTE_ID (0x0144) +#define ZCL_TIER4_BLOCK6_THRESHOLD_ATTRIBUTE_ID (0x0145) +#define ZCL_TIER4_BLOCK7_THRESHOLD_ATTRIBUTE_ID (0x0146) +#define ZCL_TIER4_BLOCK8_THRESHOLD_ATTRIBUTE_ID (0x0147) +#define ZCL_TIER4_BLOCK9_THRESHOLD_ATTRIBUTE_ID (0x0148) +#define ZCL_TIER4_BLOCK10_THRESHOLD_ATTRIBUTE_ID (0x0149) +#define ZCL_TIER4_BLOCK11_THRESHOLD_ATTRIBUTE_ID (0x014A) +#define ZCL_TIER4_BLOCK12_THRESHOLD_ATTRIBUTE_ID (0x014B) +#define ZCL_TIER4_BLOCK13_THRESHOLD_ATTRIBUTE_ID (0x014C) +#define ZCL_TIER4_BLOCK14_THRESHOLD_ATTRIBUTE_ID (0x014D) +#define ZCL_TIER4_BLOCK15_THRESHOLD_ATTRIBUTE_ID (0x014E) +#define ZCL_TIER4_BLOCK_THRESHOLD_COUNT_ATTRIBUTE_ID (0x014F) +#define ZCL_TIER5_BLOCK1_THRESHOLD_ATTRIBUTE_ID (0x0150) +#define ZCL_TIER5_BLOCK2_THRESHOLD_ATTRIBUTE_ID (0x0151) +#define ZCL_TIER5_BLOCK3_THRESHOLD_ATTRIBUTE_ID (0x0152) +#define ZCL_TIER5_BLOCK4_THRESHOLD_ATTRIBUTE_ID (0x0153) +#define ZCL_TIER5_BLOCK5_THRESHOLD_ATTRIBUTE_ID (0x0154) +#define ZCL_TIER5_BLOCK6_THRESHOLD_ATTRIBUTE_ID (0x0155) +#define ZCL_TIER5_BLOCK7_THRESHOLD_ATTRIBUTE_ID (0x0156) +#define ZCL_TIER5_BLOCK8_THRESHOLD_ATTRIBUTE_ID (0x0157) +#define ZCL_TIER5_BLOCK9_THRESHOLD_ATTRIBUTE_ID (0x0158) +#define ZCL_TIER5_BLOCK10_THRESHOLD_ATTRIBUTE_ID (0x0159) +#define ZCL_TIER5_BLOCK11_THRESHOLD_ATTRIBUTE_ID (0x015A) +#define ZCL_TIER5_BLOCK12_THRESHOLD_ATTRIBUTE_ID (0x015B) +#define ZCL_TIER5_BLOCK13_THRESHOLD_ATTRIBUTE_ID (0x015C) +#define ZCL_TIER5_BLOCK14_THRESHOLD_ATTRIBUTE_ID (0x015D) +#define ZCL_TIER5_BLOCK15_THRESHOLD_ATTRIBUTE_ID (0x015E) +#define ZCL_TIER5_BLOCK_THRESHOLD_COUNT_ATTRIBUTE_ID (0x015F) +#define ZCL_TIER6_BLOCK1_THRESHOLD_ATTRIBUTE_ID (0x0160) +#define ZCL_TIER6_BLOCK2_THRESHOLD_ATTRIBUTE_ID (0x0161) +#define ZCL_TIER6_BLOCK3_THRESHOLD_ATTRIBUTE_ID (0x0162) +#define ZCL_TIER6_BLOCK4_THRESHOLD_ATTRIBUTE_ID (0x0163) +#define ZCL_TIER6_BLOCK5_THRESHOLD_ATTRIBUTE_ID (0x0164) +#define ZCL_TIER6_BLOCK6_THRESHOLD_ATTRIBUTE_ID (0x0165) +#define ZCL_TIER6_BLOCK7_THRESHOLD_ATTRIBUTE_ID (0x0166) +#define ZCL_TIER6_BLOCK8_THRESHOLD_ATTRIBUTE_ID (0x0167) +#define ZCL_TIER6_BLOCK9_THRESHOLD_ATTRIBUTE_ID (0x0168) +#define ZCL_TIER6_BLOCK10_THRESHOLD_ATTRIBUTE_ID (0x0169) +#define ZCL_TIER6_BLOCK11_THRESHOLD_ATTRIBUTE_ID (0x016A) +#define ZCL_TIER6_BLOCK12_THRESHOLD_ATTRIBUTE_ID (0x016B) +#define ZCL_TIER6_BLOCK13_THRESHOLD_ATTRIBUTE_ID (0x016C) +#define ZCL_TIER6_BLOCK14_THRESHOLD_ATTRIBUTE_ID (0x016D) +#define ZCL_TIER6_BLOCK15_THRESHOLD_ATTRIBUTE_ID (0x016E) +#define ZCL_TIER6_BLOCK_THRESHOLD_COUNT_ATTRIBUTE_ID (0x016F) +#define ZCL_TIER7_BLOCK1_THRESHOLD_ATTRIBUTE_ID (0x0170) +#define ZCL_TIER7_BLOCK2_THRESHOLD_ATTRIBUTE_ID (0x0171) +#define ZCL_TIER7_BLOCK3_THRESHOLD_ATTRIBUTE_ID (0x0172) +#define ZCL_TIER7_BLOCK4_THRESHOLD_ATTRIBUTE_ID (0x0173) +#define ZCL_TIER7_BLOCK5_THRESHOLD_ATTRIBUTE_ID (0x0174) +#define ZCL_TIER7_BLOCK6_THRESHOLD_ATTRIBUTE_ID (0x0175) +#define ZCL_TIER7_BLOCK7_THRESHOLD_ATTRIBUTE_ID (0x0176) +#define ZCL_TIER7_BLOCK8_THRESHOLD_ATTRIBUTE_ID (0x0177) +#define ZCL_TIER7_BLOCK9_THRESHOLD_ATTRIBUTE_ID (0x0178) +#define ZCL_TIER7_BLOCK10_THRESHOLD_ATTRIBUTE_ID (0x0179) +#define ZCL_TIER7_BLOCK11_THRESHOLD_ATTRIBUTE_ID (0x017A) +#define ZCL_TIER7_BLOCK12_THRESHOLD_ATTRIBUTE_ID (0x017B) +#define ZCL_TIER7_BLOCK13_THRESHOLD_ATTRIBUTE_ID (0x017C) +#define ZCL_TIER7_BLOCK14_THRESHOLD_ATTRIBUTE_ID (0x017D) +#define ZCL_TIER7_BLOCK15_THRESHOLD_ATTRIBUTE_ID (0x017E) +#define ZCL_TIER7_BLOCK_THRESHOLD_COUNT_ATTRIBUTE_ID (0x017F) +#define ZCL_TIER8_BLOCK1_THRESHOLD_ATTRIBUTE_ID (0x0180) +#define ZCL_TIER8_BLOCK2_THRESHOLD_ATTRIBUTE_ID (0x0181) +#define ZCL_TIER8_BLOCK3_THRESHOLD_ATTRIBUTE_ID (0x0182) +#define ZCL_TIER8_BLOCK4_THRESHOLD_ATTRIBUTE_ID (0x0183) +#define ZCL_TIER8_BLOCK5_THRESHOLD_ATTRIBUTE_ID (0x0184) +#define ZCL_TIER8_BLOCK6_THRESHOLD_ATTRIBUTE_ID (0x0185) +#define ZCL_TIER8_BLOCK7_THRESHOLD_ATTRIBUTE_ID (0x0186) +#define ZCL_TIER8_BLOCK8_THRESHOLD_ATTRIBUTE_ID (0x0187) +#define ZCL_TIER8_BLOCK9_THRESHOLD_ATTRIBUTE_ID (0x0188) +#define ZCL_TIER8_BLOCK10_THRESHOLD_ATTRIBUTE_ID (0x0189) +#define ZCL_TIER8_BLOCK11_THRESHOLD_ATTRIBUTE_ID (0x018A) +#define ZCL_TIER8_BLOCK12_THRESHOLD_ATTRIBUTE_ID (0x018B) +#define ZCL_TIER8_BLOCK13_THRESHOLD_ATTRIBUTE_ID (0x018C) +#define ZCL_TIER8_BLOCK14_THRESHOLD_ATTRIBUTE_ID (0x018D) +#define ZCL_TIER8_BLOCK15_THRESHOLD_ATTRIBUTE_ID (0x018E) +#define ZCL_TIER8_BLOCK_THRESHOLD_COUNT_ATTRIBUTE_ID (0x018F) +#define ZCL_TIER9_BLOCK1_THRESHOLD_ATTRIBUTE_ID (0x0190) +#define ZCL_TIER9_BLOCK2_THRESHOLD_ATTRIBUTE_ID (0x0191) +#define ZCL_TIER9_BLOCK3_THRESHOLD_ATTRIBUTE_ID (0x0192) +#define ZCL_TIER9_BLOCK4_THRESHOLD_ATTRIBUTE_ID (0x0193) +#define ZCL_TIER9_BLOCK5_THRESHOLD_ATTRIBUTE_ID (0x0194) +#define ZCL_TIER9_BLOCK6_THRESHOLD_ATTRIBUTE_ID (0x0195) +#define ZCL_TIER9_BLOCK7_THRESHOLD_ATTRIBUTE_ID (0x0196) +#define ZCL_TIER9_BLOCK8_THRESHOLD_ATTRIBUTE_ID (0x0197) +#define ZCL_TIER9_BLOCK9_THRESHOLD_ATTRIBUTE_ID (0x0198) +#define ZCL_TIER9_BLOCK10_THRESHOLD_ATTRIBUTE_ID (0x0199) +#define ZCL_TIER9_BLOCK11_THRESHOLD_ATTRIBUTE_ID (0x019A) +#define ZCL_TIER9_BLOCK12_THRESHOLD_ATTRIBUTE_ID (0x019B) +#define ZCL_TIER9_BLOCK13_THRESHOLD_ATTRIBUTE_ID (0x019C) +#define ZCL_TIER9_BLOCK14_THRESHOLD_ATTRIBUTE_ID (0x019D) +#define ZCL_TIER9_BLOCK15_THRESHOLD_ATTRIBUTE_ID (0x019E) +#define ZCL_TIER9_BLOCK_THRESHOLD_COUNT_ATTRIBUTE_ID (0x019F) +#define ZCL_TIER10_BLOCK1_THRESHOLD_ATTRIBUTE_ID (0x01A0) +#define ZCL_TIER10_BLOCK2_THRESHOLD_ATTRIBUTE_ID (0x01A1) +#define ZCL_TIER10_BLOCK3_THRESHOLD_ATTRIBUTE_ID (0x01A2) +#define ZCL_TIER10_BLOCK4_THRESHOLD_ATTRIBUTE_ID (0x01A3) +#define ZCL_TIER10_BLOCK5_THRESHOLD_ATTRIBUTE_ID (0x01A4) +#define ZCL_TIER10_BLOCK6_THRESHOLD_ATTRIBUTE_ID (0x01A5) +#define ZCL_TIER10_BLOCK7_THRESHOLD_ATTRIBUTE_ID (0x01A6) +#define ZCL_TIER10_BLOCK8_THRESHOLD_ATTRIBUTE_ID (0x01A7) +#define ZCL_TIER10_BLOCK9_THRESHOLD_ATTRIBUTE_ID (0x01A8) +#define ZCL_TIER10_BLOCK10_THRESHOLD_ATTRIBUTE_ID (0x01A9) +#define ZCL_TIER10_BLOCK11_THRESHOLD_ATTRIBUTE_ID (0x01AA) +#define ZCL_TIER10_BLOCK12_THRESHOLD_ATTRIBUTE_ID (0x01AB) +#define ZCL_TIER10_BLOCK13_THRESHOLD_ATTRIBUTE_ID (0x01AC) +#define ZCL_TIER10_BLOCK14_THRESHOLD_ATTRIBUTE_ID (0x01AD) +#define ZCL_TIER10_BLOCK15_THRESHOLD_ATTRIBUTE_ID (0x01AE) +#define ZCL_TIER10_BLOCK_THRESHOLD_COUNT_ATTRIBUTE_ID (0x01AF) +#define ZCL_TIER11_BLOCK1_THRESHOLD_ATTRIBUTE_ID (0x01B0) +#define ZCL_TIER11_BLOCK2_THRESHOLD_ATTRIBUTE_ID (0x01B1) +#define ZCL_TIER11_BLOCK3_THRESHOLD_ATTRIBUTE_ID (0x01B2) +#define ZCL_TIER11_BLOCK4_THRESHOLD_ATTRIBUTE_ID (0x01B3) +#define ZCL_TIER11_BLOCK5_THRESHOLD_ATTRIBUTE_ID (0x01B4) +#define ZCL_TIER11_BLOCK6_THRESHOLD_ATTRIBUTE_ID (0x01B5) +#define ZCL_TIER11_BLOCK7_THRESHOLD_ATTRIBUTE_ID (0x01B6) +#define ZCL_TIER11_BLOCK8_THRESHOLD_ATTRIBUTE_ID (0x01B7) +#define ZCL_TIER11_BLOCK9_THRESHOLD_ATTRIBUTE_ID (0x01B8) +#define ZCL_TIER11_BLOCK10_THRESHOLD_ATTRIBUTE_ID (0x01B9) +#define ZCL_TIER11_BLOCK11_THRESHOLD_ATTRIBUTE_ID (0x01BA) +#define ZCL_TIER11_BLOCK12_THRESHOLD_ATTRIBUTE_ID (0x01BB) +#define ZCL_TIER11_BLOCK13_THRESHOLD_ATTRIBUTE_ID (0x01BC) +#define ZCL_TIER11_BLOCK14_THRESHOLD_ATTRIBUTE_ID (0x01BD) +#define ZCL_TIER11_BLOCK15_THRESHOLD_ATTRIBUTE_ID (0x01BE) +#define ZCL_TIER11_BLOCK_THRESHOLD_COUNT_ATTRIBUTE_ID (0x01BF) +#define ZCL_TIER12_BLOCK1_THRESHOLD_ATTRIBUTE_ID (0x01C0) +#define ZCL_TIER12_BLOCK2_THRESHOLD_ATTRIBUTE_ID (0x01C1) +#define ZCL_TIER12_BLOCK3_THRESHOLD_ATTRIBUTE_ID (0x01C2) +#define ZCL_TIER12_BLOCK4_THRESHOLD_ATTRIBUTE_ID (0x01C3) +#define ZCL_TIER12_BLOCK5_THRESHOLD_ATTRIBUTE_ID (0x01C4) +#define ZCL_TIER12_BLOCK6_THRESHOLD_ATTRIBUTE_ID (0x01C5) +#define ZCL_TIER12_BLOCK7_THRESHOLD_ATTRIBUTE_ID (0x01C6) +#define ZCL_TIER12_BLOCK8_THRESHOLD_ATTRIBUTE_ID (0x01C7) +#define ZCL_TIER12_BLOCK9_THRESHOLD_ATTRIBUTE_ID (0x01C8) +#define ZCL_TIER12_BLOCK10_THRESHOLD_ATTRIBUTE_ID (0x01C9) +#define ZCL_TIER12_BLOCK11_THRESHOLD_ATTRIBUTE_ID (0x01CA) +#define ZCL_TIER12_BLOCK12_THRESHOLD_ATTRIBUTE_ID (0x01CB) +#define ZCL_TIER12_BLOCK13_THRESHOLD_ATTRIBUTE_ID (0x01CC) +#define ZCL_TIER12_BLOCK14_THRESHOLD_ATTRIBUTE_ID (0x01CD) +#define ZCL_TIER12_BLOCK15_THRESHOLD_ATTRIBUTE_ID (0x01CE) +#define ZCL_TIER12_BLOCK_THRESHOLD_COUNT_ATTRIBUTE_ID (0x01CF) +#define ZCL_TIER13_BLOCK1_THRESHOLD_ATTRIBUTE_ID (0x01D0) +#define ZCL_TIER13_BLOCK2_THRESHOLD_ATTRIBUTE_ID (0x01D1) +#define ZCL_TIER13_BLOCK3_THRESHOLD_ATTRIBUTE_ID (0x01D2) +#define ZCL_TIER13_BLOCK4_THRESHOLD_ATTRIBUTE_ID (0x01D3) +#define ZCL_TIER13_BLOCK5_THRESHOLD_ATTRIBUTE_ID (0x01D4) +#define ZCL_TIER13_BLOCK6_THRESHOLD_ATTRIBUTE_ID (0x01D5) +#define ZCL_TIER13_BLOCK7_THRESHOLD_ATTRIBUTE_ID (0x01D6) +#define ZCL_TIER13_BLOCK8_THRESHOLD_ATTRIBUTE_ID (0x01D7) +#define ZCL_TIER13_BLOCK9_THRESHOLD_ATTRIBUTE_ID (0x01D8) +#define ZCL_TIER13_BLOCK10_THRESHOLD_ATTRIBUTE_ID (0x01D9) +#define ZCL_TIER13_BLOCK11_THRESHOLD_ATTRIBUTE_ID (0x01DA) +#define ZCL_TIER13_BLOCK12_THRESHOLD_ATTRIBUTE_ID (0x01DB) +#define ZCL_TIER13_BLOCK13_THRESHOLD_ATTRIBUTE_ID (0x01DC) +#define ZCL_TIER13_BLOCK14_THRESHOLD_ATTRIBUTE_ID (0x01DD) +#define ZCL_TIER13_BLOCK15_THRESHOLD_ATTRIBUTE_ID (0x01DE) +#define ZCL_TIER13_BLOCK_THRESHOLD_COUNT_ATTRIBUTE_ID (0x01DF) +#define ZCL_TIER14_BLOCK1_THRESHOLD_ATTRIBUTE_ID (0x01E0) +#define ZCL_TIER14_BLOCK2_THRESHOLD_ATTRIBUTE_ID (0x01E1) +#define ZCL_TIER14_BLOCK3_THRESHOLD_ATTRIBUTE_ID (0x01E2) +#define ZCL_TIER14_BLOCK4_THRESHOLD_ATTRIBUTE_ID (0x01E3) +#define ZCL_TIER14_BLOCK5_THRESHOLD_ATTRIBUTE_ID (0x01E4) +#define ZCL_TIER14_BLOCK6_THRESHOLD_ATTRIBUTE_ID (0x01E5) +#define ZCL_TIER14_BLOCK7_THRESHOLD_ATTRIBUTE_ID (0x01E6) +#define ZCL_TIER14_BLOCK8_THRESHOLD_ATTRIBUTE_ID (0x01E7) +#define ZCL_TIER14_BLOCK9_THRESHOLD_ATTRIBUTE_ID (0x01E8) +#define ZCL_TIER14_BLOCK10_THRESHOLD_ATTRIBUTE_ID (0x01E9) +#define ZCL_TIER14_BLOCK11_THRESHOLD_ATTRIBUTE_ID (0x01EA) +#define ZCL_TIER14_BLOCK12_THRESHOLD_ATTRIBUTE_ID (0x01EB) +#define ZCL_TIER14_BLOCK13_THRESHOLD_ATTRIBUTE_ID (0x01EC) +#define ZCL_TIER14_BLOCK14_THRESHOLD_ATTRIBUTE_ID (0x01ED) +#define ZCL_TIER14_BLOCK15_THRESHOLD_ATTRIBUTE_ID (0x01EE) +#define ZCL_TIER14_BLOCK_THRESHOLD_COUNT_ATTRIBUTE_ID (0x01EF) +#define ZCL_TIER15_BLOCK1_THRESHOLD_ATTRIBUTE_ID (0x01F0) +#define ZCL_TIER15_BLOCK2_THRESHOLD_ATTRIBUTE_ID (0x01F1) +#define ZCL_TIER15_BLOCK3_THRESHOLD_ATTRIBUTE_ID (0x01F2) +#define ZCL_TIER15_BLOCK4_THRESHOLD_ATTRIBUTE_ID (0x01F3) +#define ZCL_TIER15_BLOCK5_THRESHOLD_ATTRIBUTE_ID (0x01F4) +#define ZCL_TIER15_BLOCK6_THRESHOLD_ATTRIBUTE_ID (0x01F5) +#define ZCL_TIER15_BLOCK7_THRESHOLD_ATTRIBUTE_ID (0x01F6) +#define ZCL_TIER15_BLOCK8_THRESHOLD_ATTRIBUTE_ID (0x01F7) +#define ZCL_TIER15_BLOCK9_THRESHOLD_ATTRIBUTE_ID (0x01F8) +#define ZCL_TIER15_BLOCK10_THRESHOLD_ATTRIBUTE_ID (0x01F9) +#define ZCL_TIER15_BLOCK11_THRESHOLD_ATTRIBUTE_ID (0x01FA) +#define ZCL_TIER15_BLOCK12_THRESHOLD_ATTRIBUTE_ID (0x01FB) +#define ZCL_TIER15_BLOCK13_THRESHOLD_ATTRIBUTE_ID (0x01FC) +#define ZCL_TIER15_BLOCK14_THRESHOLD_ATTRIBUTE_ID (0x01FD) +#define ZCL_TIER15_BLOCK15_THRESHOLD_ATTRIBUTE_ID (0x01FE) +#define ZCL_TIER15_BLOCK_THRESHOLD_COUNT_ATTRIBUTE_ID (0x01FF) +#define ZCL_START_OF_BLOCK_PERIOD_ATTRIBUTE_ID (0x0200) +#define ZCL_BLOCK_PERIOD_DURATION_MINUTES_ATTRIBUTE_ID (0x0201) +#define ZCL_THRESHOLD_MULTIPLIER_ATTRIBUTE_ID (0x0202) +#define ZCL_THRESHOLD_DIVISOR_ATTRIBUTE_ID (0x0203) +#define ZCL_BLOCK_PERIOD_DURATION_TYPE_ATTRIBUTE_ID (0x0204) +#define ZCL_COMMODITY_TYPE_SERVER_ATTRIBUTE_ID (0x0300) +#define ZCL_STANDING_CHARGE_ATTRIBUTE_ID (0x0301) +#define ZCL_CONVERSION_FACTOR_ATTRIBUTE_ID (0x0302) +#define ZCL_CONVERSION_FACTOR_TRAILING_DIGIT_ATTRIBUTE_ID (0x0303) +#define ZCL_CALORIFIC_VALUE_ATTRIBUTE_ID (0x0304) +#define ZCL_CALORIFIC_VALUE_UNIT_ATTRIBUTE_ID (0x0305) +#define ZCL_CALORIFIC_VALUE_TRAILING_DIGIT_ATTRIBUTE_ID (0x0306) +#define ZCL_NO_TIER_BLOCK1_PRICE_ATTRIBUTE_ID (0x0400) +#define ZCL_NO_TIER_BLOCK2_PRICE_ATTRIBUTE_ID (0x0401) +#define ZCL_NO_TIER_BLOCK3_PRICE_ATTRIBUTE_ID (0x0402) +#define ZCL_NO_TIER_BLOCK4_PRICE_ATTRIBUTE_ID (0x0403) +#define ZCL_NO_TIER_BLOCK5_PRICE_ATTRIBUTE_ID (0x0404) +#define ZCL_NO_TIER_BLOCK6_PRICE_ATTRIBUTE_ID (0x0405) +#define ZCL_NO_TIER_BLOCK7_PRICE_ATTRIBUTE_ID (0x0406) +#define ZCL_NO_TIER_BLOCK8_PRICE_ATTRIBUTE_ID (0x0407) +#define ZCL_NO_TIER_BLOCK9_PRICE_ATTRIBUTE_ID (0x0408) +#define ZCL_NO_TIER_BLOCK10_PRICE_ATTRIBUTE_ID (0x0409) +#define ZCL_NO_TIER_BLOCK11_PRICE_ATTRIBUTE_ID (0x040A) +#define ZCL_NO_TIER_BLOCK12_PRICE_ATTRIBUTE_ID (0x040B) +#define ZCL_NO_TIER_BLOCK13_PRICE_ATTRIBUTE_ID (0x040C) +#define ZCL_NO_TIER_BLOCK14_PRICE_ATTRIBUTE_ID (0x040D) +#define ZCL_NO_TIER_BLOCK15_PRICE_ATTRIBUTE_ID (0x040E) +#define ZCL_NO_TIER_BLOCK16_PRICE_ATTRIBUTE_ID (0x040F) +#define ZCL_TIER1_BLOCK1_PRICE_ATTRIBUTE_ID (0x0410) +#define ZCL_TIER1_BLOCK2_PRICE_ATTRIBUTE_ID (0x0411) +#define ZCL_TIER1_BLOCK3_PRICE_ATTRIBUTE_ID (0x0412) +#define ZCL_TIER1_BLOCK4_PRICE_ATTRIBUTE_ID (0x0413) +#define ZCL_TIER1_BLOCK5_PRICE_ATTRIBUTE_ID (0x0414) +#define ZCL_TIER1_BLOCK6_PRICE_ATTRIBUTE_ID (0x0415) +#define ZCL_TIER1_BLOCK7_PRICE_ATTRIBUTE_ID (0x0416) +#define ZCL_TIER1_BLOCK8_PRICE_ATTRIBUTE_ID (0x0417) +#define ZCL_TIER1_BLOCK9_PRICE_ATTRIBUTE_ID (0x0418) +#define ZCL_TIER1_BLOCK10_PRICE_ATTRIBUTE_ID (0x0419) +#define ZCL_TIER1_BLOCK11_PRICE_ATTRIBUTE_ID (0x041A) +#define ZCL_TIER1_BLOCK12_PRICE_ATTRIBUTE_ID (0x041B) +#define ZCL_TIER1_BLOCK13_PRICE_ATTRIBUTE_ID (0x041C) +#define ZCL_TIER1_BLOCK14_PRICE_ATTRIBUTE_ID (0x041D) +#define ZCL_TIER1_BLOCK15_PRICE_ATTRIBUTE_ID (0x041E) +#define ZCL_TIER1_BLOCK16_PRICE_ATTRIBUTE_ID (0x041F) +#define ZCL_TIER2_BLOCK1_PRICE_ATTRIBUTE_ID (0x0420) +#define ZCL_TIER2_BLOCK2_PRICE_ATTRIBUTE_ID (0x0421) +#define ZCL_TIER2_BLOCK3_PRICE_ATTRIBUTE_ID (0x0422) +#define ZCL_TIER2_BLOCK4_PRICE_ATTRIBUTE_ID (0x0423) +#define ZCL_TIER2_BLOCK5_PRICE_ATTRIBUTE_ID (0x0424) +#define ZCL_TIER2_BLOCK6_PRICE_ATTRIBUTE_ID (0x0425) +#define ZCL_TIER2_BLOCK7_PRICE_ATTRIBUTE_ID (0x0426) +#define ZCL_TIER2_BLOCK8_PRICE_ATTRIBUTE_ID (0x0427) +#define ZCL_TIER2_BLOCK9_PRICE_ATTRIBUTE_ID (0x0428) +#define ZCL_TIER2_BLOCK10_PRICE_ATTRIBUTE_ID (0x0429) +#define ZCL_TIER2_BLOCK11_PRICE_ATTRIBUTE_ID (0x042A) +#define ZCL_TIER2_BLOCK12_PRICE_ATTRIBUTE_ID (0x042B) +#define ZCL_TIER2_BLOCK13_PRICE_ATTRIBUTE_ID (0x042C) +#define ZCL_TIER2_BLOCK14_PRICE_ATTRIBUTE_ID (0x042D) +#define ZCL_TIER2_BLOCK15_PRICE_ATTRIBUTE_ID (0x042E) +#define ZCL_TIER2_BLOCK16_PRICE_ATTRIBUTE_ID (0x042F) +#define ZCL_TIER3_BLOCK1_PRICE_ATTRIBUTE_ID (0x0430) +#define ZCL_TIER3_BLOCK2_PRICE_ATTRIBUTE_ID (0x0431) +#define ZCL_TIER3_BLOCK3_PRICE_ATTRIBUTE_ID (0x0432) +#define ZCL_TIER3_BLOCK4_PRICE_ATTRIBUTE_ID (0x0433) +#define ZCL_TIER3_BLOCK5_PRICE_ATTRIBUTE_ID (0x0434) +#define ZCL_TIER3_BLOCK6_PRICE_ATTRIBUTE_ID (0x0435) +#define ZCL_TIER3_BLOCK7_PRICE_ATTRIBUTE_ID (0x0436) +#define ZCL_TIER3_BLOCK8_PRICE_ATTRIBUTE_ID (0x0437) +#define ZCL_TIER3_BLOCK9_PRICE_ATTRIBUTE_ID (0x0438) +#define ZCL_TIER3_BLOCK10_PRICE_ATTRIBUTE_ID (0x0439) +#define ZCL_TIER3_BLOCK11_PRICE_ATTRIBUTE_ID (0x043A) +#define ZCL_TIER3_BLOCK12_PRICE_ATTRIBUTE_ID (0x043B) +#define ZCL_TIER3_BLOCK13_PRICE_ATTRIBUTE_ID (0x043C) +#define ZCL_TIER3_BLOCK14_PRICE_ATTRIBUTE_ID (0x043D) +#define ZCL_TIER3_BLOCK15_PRICE_ATTRIBUTE_ID (0x043E) +#define ZCL_TIER3_BLOCK16_PRICE_ATTRIBUTE_ID (0x043F) +#define ZCL_TIER4_BLOCK1_PRICE_ATTRIBUTE_ID (0x0440) +#define ZCL_TIER4_BLOCK2_PRICE_ATTRIBUTE_ID (0x0441) +#define ZCL_TIER4_BLOCK3_PRICE_ATTRIBUTE_ID (0x0442) +#define ZCL_TIER4_BLOCK4_PRICE_ATTRIBUTE_ID (0x0443) +#define ZCL_TIER4_BLOCK5_PRICE_ATTRIBUTE_ID (0x0444) +#define ZCL_TIER4_BLOCK6_PRICE_ATTRIBUTE_ID (0x0445) +#define ZCL_TIER4_BLOCK7_PRICE_ATTRIBUTE_ID (0x0446) +#define ZCL_TIER4_BLOCK8_PRICE_ATTRIBUTE_ID (0x0447) +#define ZCL_TIER4_BLOCK9_PRICE_ATTRIBUTE_ID (0x0448) +#define ZCL_TIER4_BLOCK10_PRICE_ATTRIBUTE_ID (0x0449) +#define ZCL_TIER4_BLOCK11_PRICE_ATTRIBUTE_ID (0x044A) +#define ZCL_TIER4_BLOCK12_PRICE_ATTRIBUTE_ID (0x044B) +#define ZCL_TIER4_BLOCK13_PRICE_ATTRIBUTE_ID (0x044C) +#define ZCL_TIER4_BLOCK14_PRICE_ATTRIBUTE_ID (0x044D) +#define ZCL_TIER4_BLOCK15_PRICE_ATTRIBUTE_ID (0x044E) +#define ZCL_TIER4_BLOCK16_PRICE_ATTRIBUTE_ID (0x044F) +#define ZCL_TIER5_BLOCK1_PRICE_ATTRIBUTE_ID (0x0450) +#define ZCL_TIER5_BLOCK2_PRICE_ATTRIBUTE_ID (0x0451) +#define ZCL_TIER5_BLOCK3_PRICE_ATTRIBUTE_ID (0x0452) +#define ZCL_TIER5_BLOCK4_PRICE_ATTRIBUTE_ID (0x0453) +#define ZCL_TIER5_BLOCK5_PRICE_ATTRIBUTE_ID (0x0454) +#define ZCL_TIER5_BLOCK6_PRICE_ATTRIBUTE_ID (0x0455) +#define ZCL_TIER5_BLOCK7_PRICE_ATTRIBUTE_ID (0x0456) +#define ZCL_TIER5_BLOCK8_PRICE_ATTRIBUTE_ID (0x0457) +#define ZCL_TIER5_BLOCK9_PRICE_ATTRIBUTE_ID (0x0458) +#define ZCL_TIER5_BLOCK10_PRICE_ATTRIBUTE_ID (0x0459) +#define ZCL_TIER5_BLOCK11_PRICE_ATTRIBUTE_ID (0x045A) +#define ZCL_TIER5_BLOCK12_PRICE_ATTRIBUTE_ID (0x045B) +#define ZCL_TIER5_BLOCK13_PRICE_ATTRIBUTE_ID (0x045C) +#define ZCL_TIER5_BLOCK14_PRICE_ATTRIBUTE_ID (0x045D) +#define ZCL_TIER5_BLOCK15_PRICE_ATTRIBUTE_ID (0x045E) +#define ZCL_TIER5_BLOCK16_PRICE_ATTRIBUTE_ID (0x045F) +#define ZCL_TIER6_BLOCK1_PRICE_ATTRIBUTE_ID (0x0460) +#define ZCL_TIER6_BLOCK2_PRICE_ATTRIBUTE_ID (0x0461) +#define ZCL_TIER6_BLOCK3_PRICE_ATTRIBUTE_ID (0x0462) +#define ZCL_TIER6_BLOCK4_PRICE_ATTRIBUTE_ID (0x0463) +#define ZCL_TIER6_BLOCK5_PRICE_ATTRIBUTE_ID (0x0464) +#define ZCL_TIER6_BLOCK6_PRICE_ATTRIBUTE_ID (0x0465) +#define ZCL_TIER6_BLOCK7_PRICE_ATTRIBUTE_ID (0x0466) +#define ZCL_TIER6_BLOCK8_PRICE_ATTRIBUTE_ID (0x0467) +#define ZCL_TIER6_BLOCK9_PRICE_ATTRIBUTE_ID (0x0468) +#define ZCL_TIER6_BLOCK10_PRICE_ATTRIBUTE_ID (0x0469) +#define ZCL_TIER6_BLOCK11_PRICE_ATTRIBUTE_ID (0x046A) +#define ZCL_TIER6_BLOCK12_PRICE_ATTRIBUTE_ID (0x046B) +#define ZCL_TIER6_BLOCK13_PRICE_ATTRIBUTE_ID (0x046C) +#define ZCL_TIER6_BLOCK14_PRICE_ATTRIBUTE_ID (0x046D) +#define ZCL_TIER6_BLOCK15_PRICE_ATTRIBUTE_ID (0x046E) +#define ZCL_TIER6_BLOCK16_PRICE_ATTRIBUTE_ID (0x046F) +#define ZCL_TIER7_BLOCK1_PRICE_ATTRIBUTE_ID (0x0470) +#define ZCL_TIER7_BLOCK2_PRICE_ATTRIBUTE_ID (0x0471) +#define ZCL_TIER7_BLOCK3_PRICE_ATTRIBUTE_ID (0x0472) +#define ZCL_TIER7_BLOCK4_PRICE_ATTRIBUTE_ID (0x0473) +#define ZCL_TIER7_BLOCK5_PRICE_ATTRIBUTE_ID (0x0474) +#define ZCL_TIER7_BLOCK6_PRICE_ATTRIBUTE_ID (0x0475) +#define ZCL_TIER7_BLOCK7_PRICE_ATTRIBUTE_ID (0x0476) +#define ZCL_TIER7_BLOCK8_PRICE_ATTRIBUTE_ID (0x0477) +#define ZCL_TIER7_BLOCK9_PRICE_ATTRIBUTE_ID (0x0478) +#define ZCL_TIER7_BLOCK10_PRICE_ATTRIBUTE_ID (0x0479) +#define ZCL_TIER7_BLOCK11_PRICE_ATTRIBUTE_ID (0x047A) +#define ZCL_TIER7_BLOCK12_PRICE_ATTRIBUTE_ID (0x047B) +#define ZCL_TIER7_BLOCK13_PRICE_ATTRIBUTE_ID (0x047C) +#define ZCL_TIER7_BLOCK14_PRICE_ATTRIBUTE_ID (0x047D) +#define ZCL_TIER7_BLOCK15_PRICE_ATTRIBUTE_ID (0x047E) +#define ZCL_TIER7_BLOCK16_PRICE_ATTRIBUTE_ID (0x047F) +#define ZCL_TIER8_BLOCK1_PRICE_ATTRIBUTE_ID (0x0480) +#define ZCL_TIER8_BLOCK2_PRICE_ATTRIBUTE_ID (0x0481) +#define ZCL_TIER8_BLOCK3_PRICE_ATTRIBUTE_ID (0x0482) +#define ZCL_TIER8_BLOCK4_PRICE_ATTRIBUTE_ID (0x0483) +#define ZCL_TIER8_BLOCK5_PRICE_ATTRIBUTE_ID (0x0484) +#define ZCL_TIER8_BLOCK6_PRICE_ATTRIBUTE_ID (0x0485) +#define ZCL_TIER8_BLOCK7_PRICE_ATTRIBUTE_ID (0x0486) +#define ZCL_TIER8_BLOCK8_PRICE_ATTRIBUTE_ID (0x0487) +#define ZCL_TIER8_BLOCK9_PRICE_ATTRIBUTE_ID (0x0488) +#define ZCL_TIER8_BLOCK10_PRICE_ATTRIBUTE_ID (0x0489) +#define ZCL_TIER8_BLOCK11_PRICE_ATTRIBUTE_ID (0x048A) +#define ZCL_TIER8_BLOCK12_PRICE_ATTRIBUTE_ID (0x048B) +#define ZCL_TIER8_BLOCK13_PRICE_ATTRIBUTE_ID (0x048C) +#define ZCL_TIER8_BLOCK14_PRICE_ATTRIBUTE_ID (0x048D) +#define ZCL_TIER8_BLOCK15_PRICE_ATTRIBUTE_ID (0x048E) +#define ZCL_TIER8_BLOCK16_PRICE_ATTRIBUTE_ID (0x048F) +#define ZCL_TIER9_BLOCK1_PRICE_ATTRIBUTE_ID (0x0490) +#define ZCL_TIER9_BLOCK2_PRICE_ATTRIBUTE_ID (0x0491) +#define ZCL_TIER9_BLOCK3_PRICE_ATTRIBUTE_ID (0x0492) +#define ZCL_TIER9_BLOCK4_PRICE_ATTRIBUTE_ID (0x0493) +#define ZCL_TIER9_BLOCK5_PRICE_ATTRIBUTE_ID (0x0494) +#define ZCL_TIER9_BLOCK6_PRICE_ATTRIBUTE_ID (0x0495) +#define ZCL_TIER9_BLOCK7_PRICE_ATTRIBUTE_ID (0x0496) +#define ZCL_TIER9_BLOCK8_PRICE_ATTRIBUTE_ID (0x0497) +#define ZCL_TIER9_BLOCK9_PRICE_ATTRIBUTE_ID (0x0498) +#define ZCL_TIER9_BLOCK10_PRICE_ATTRIBUTE_ID (0x0499) +#define ZCL_TIER9_BLOCK11_PRICE_ATTRIBUTE_ID (0x049A) +#define ZCL_TIER9_BLOCK12_PRICE_ATTRIBUTE_ID (0x049B) +#define ZCL_TIER9_BLOCK13_PRICE_ATTRIBUTE_ID (0x049C) +#define ZCL_TIER9_BLOCK14_PRICE_ATTRIBUTE_ID (0x049D) +#define ZCL_TIER9_BLOCK15_PRICE_ATTRIBUTE_ID (0x049E) +#define ZCL_TIER9_BLOCK16_PRICE_ATTRIBUTE_ID (0x049F) +#define ZCL_TIER10_BLOCK1_PRICE_ATTRIBUTE_ID (0x04A0) +#define ZCL_TIER10_BLOCK2_PRICE_ATTRIBUTE_ID (0x04A1) +#define ZCL_TIER10_BLOCK3_PRICE_ATTRIBUTE_ID (0x04A2) +#define ZCL_TIER10_BLOCK4_PRICE_ATTRIBUTE_ID (0x04A3) +#define ZCL_TIER10_BLOCK5_PRICE_ATTRIBUTE_ID (0x04A4) +#define ZCL_TIER10_BLOCK6_PRICE_ATTRIBUTE_ID (0x04A5) +#define ZCL_TIER10_BLOCK7_PRICE_ATTRIBUTE_ID (0x04A6) +#define ZCL_TIER10_BLOCK8_PRICE_ATTRIBUTE_ID (0x04A7) +#define ZCL_TIER10_BLOCK9_PRICE_ATTRIBUTE_ID (0x04A8) +#define ZCL_TIER10_BLOCK10_PRICE_ATTRIBUTE_ID (0x04A9) +#define ZCL_TIER10_BLOCK11_PRICE_ATTRIBUTE_ID (0x04AA) +#define ZCL_TIER10_BLOCK12_PRICE_ATTRIBUTE_ID (0x04AB) +#define ZCL_TIER10_BLOCK13_PRICE_ATTRIBUTE_ID (0x04AC) +#define ZCL_TIER10_BLOCK14_PRICE_ATTRIBUTE_ID (0x04AD) +#define ZCL_TIER10_BLOCK15_PRICE_ATTRIBUTE_ID (0x04AE) +#define ZCL_TIER10_BLOCK16_PRICE_ATTRIBUTE_ID (0x04AF) +#define ZCL_TIER11_BLOCK1_PRICE_ATTRIBUTE_ID (0x04B0) +#define ZCL_TIER11_BLOCK2_PRICE_ATTRIBUTE_ID (0x04B1) +#define ZCL_TIER11_BLOCK3_PRICE_ATTRIBUTE_ID (0x04B2) +#define ZCL_TIER11_BLOCK4_PRICE_ATTRIBUTE_ID (0x04B3) +#define ZCL_TIER11_BLOCK5_PRICE_ATTRIBUTE_ID (0x04B4) +#define ZCL_TIER11_BLOCK6_PRICE_ATTRIBUTE_ID (0x04B5) +#define ZCL_TIER11_BLOCK7_PRICE_ATTRIBUTE_ID (0x04B6) +#define ZCL_TIER11_BLOCK8_PRICE_ATTRIBUTE_ID (0x04B7) +#define ZCL_TIER11_BLOCK9_PRICE_ATTRIBUTE_ID (0x04B8) +#define ZCL_TIER11_BLOCK10_PRICE_ATTRIBUTE_ID (0x04B9) +#define ZCL_TIER11_BLOCK11_PRICE_ATTRIBUTE_ID (0x04BA) +#define ZCL_TIER11_BLOCK12_PRICE_ATTRIBUTE_ID (0x04BB) +#define ZCL_TIER11_BLOCK13_PRICE_ATTRIBUTE_ID (0x04BC) +#define ZCL_TIER11_BLOCK14_PRICE_ATTRIBUTE_ID (0x04BD) +#define ZCL_TIER11_BLOCK15_PRICE_ATTRIBUTE_ID (0x04BE) +#define ZCL_TIER11_BLOCK16_PRICE_ATTRIBUTE_ID (0x04BF) +#define ZCL_TIER12_BLOCK1_PRICE_ATTRIBUTE_ID (0x04C0) +#define ZCL_TIER12_BLOCK2_PRICE_ATTRIBUTE_ID (0x04C1) +#define ZCL_TIER12_BLOCK3_PRICE_ATTRIBUTE_ID (0x04C2) +#define ZCL_TIER12_BLOCK4_PRICE_ATTRIBUTE_ID (0x04C3) +#define ZCL_TIER12_BLOCK5_PRICE_ATTRIBUTE_ID (0x04C4) +#define ZCL_TIER12_BLOCK6_PRICE_ATTRIBUTE_ID (0x04C5) +#define ZCL_TIER12_BLOCK7_PRICE_ATTRIBUTE_ID (0x04C6) +#define ZCL_TIER12_BLOCK8_PRICE_ATTRIBUTE_ID (0x04C7) +#define ZCL_TIER12_BLOCK9_PRICE_ATTRIBUTE_ID (0x04C8) +#define ZCL_TIER12_BLOCK10_PRICE_ATTRIBUTE_ID (0x04C9) +#define ZCL_TIER12_BLOCK11_PRICE_ATTRIBUTE_ID (0x04CA) +#define ZCL_TIER12_BLOCK12_PRICE_ATTRIBUTE_ID (0x04CB) +#define ZCL_TIER12_BLOCK13_PRICE_ATTRIBUTE_ID (0x04CC) +#define ZCL_TIER12_BLOCK14_PRICE_ATTRIBUTE_ID (0x04CD) +#define ZCL_TIER12_BLOCK15_PRICE_ATTRIBUTE_ID (0x04CE) +#define ZCL_TIER12_BLOCK16_PRICE_ATTRIBUTE_ID (0x04CF) +#define ZCL_TIER13_BLOCK1_PRICE_ATTRIBUTE_ID (0x04D0) +#define ZCL_TIER13_BLOCK2_PRICE_ATTRIBUTE_ID (0x04D1) +#define ZCL_TIER13_BLOCK3_PRICE_ATTRIBUTE_ID (0x04D2) +#define ZCL_TIER13_BLOCK4_PRICE_ATTRIBUTE_ID (0x04D3) +#define ZCL_TIER13_BLOCK5_PRICE_ATTRIBUTE_ID (0x04D4) +#define ZCL_TIER13_BLOCK6_PRICE_ATTRIBUTE_ID (0x04D5) +#define ZCL_TIER13_BLOCK7_PRICE_ATTRIBUTE_ID (0x04D6) +#define ZCL_TIER13_BLOCK8_PRICE_ATTRIBUTE_ID (0x04D7) +#define ZCL_TIER13_BLOCK9_PRICE_ATTRIBUTE_ID (0x04D8) +#define ZCL_TIER13_BLOCK10_PRICE_ATTRIBUTE_ID (0x04D9) +#define ZCL_TIER13_BLOCK11_PRICE_ATTRIBUTE_ID (0x04DA) +#define ZCL_TIER13_BLOCK12_PRICE_ATTRIBUTE_ID (0x04DB) +#define ZCL_TIER13_BLOCK13_PRICE_ATTRIBUTE_ID (0x04DC) +#define ZCL_TIER13_BLOCK14_PRICE_ATTRIBUTE_ID (0x04DD) +#define ZCL_TIER13_BLOCK15_PRICE_ATTRIBUTE_ID (0x04DE) +#define ZCL_TIER13_BLOCK16_PRICE_ATTRIBUTE_ID (0x04DF) +#define ZCL_TIER14_BLOCK1_PRICE_ATTRIBUTE_ID (0x04E0) +#define ZCL_TIER14_BLOCK2_PRICE_ATTRIBUTE_ID (0x04E1) +#define ZCL_TIER14_BLOCK3_PRICE_ATTRIBUTE_ID (0x04E2) +#define ZCL_TIER14_BLOCK4_PRICE_ATTRIBUTE_ID (0x04E3) +#define ZCL_TIER14_BLOCK5_PRICE_ATTRIBUTE_ID (0x04E4) +#define ZCL_TIER14_BLOCK6_PRICE_ATTRIBUTE_ID (0x04E5) +#define ZCL_TIER14_BLOCK7_PRICE_ATTRIBUTE_ID (0x04E6) +#define ZCL_TIER14_BLOCK8_PRICE_ATTRIBUTE_ID (0x04E7) +#define ZCL_TIER14_BLOCK9_PRICE_ATTRIBUTE_ID (0x04E8) +#define ZCL_TIER14_BLOCK10_PRICE_ATTRIBUTE_ID (0x04E9) +#define ZCL_TIER14_BLOCK11_PRICE_ATTRIBUTE_ID (0x04EA) +#define ZCL_TIER14_BLOCK12_PRICE_ATTRIBUTE_ID (0x04EB) +#define ZCL_TIER14_BLOCK13_PRICE_ATTRIBUTE_ID (0x04EC) +#define ZCL_TIER14_BLOCK14_PRICE_ATTRIBUTE_ID (0x04ED) +#define ZCL_TIER14_BLOCK15_PRICE_ATTRIBUTE_ID (0x04EE) +#define ZCL_TIER14_BLOCK16_PRICE_ATTRIBUTE_ID (0x04EF) +#define ZCL_TIER15_BLOCK1_PRICE_ATTRIBUTE_ID (0x04F0) +#define ZCL_TIER15_BLOCK2_PRICE_ATTRIBUTE_ID (0x04F1) +#define ZCL_TIER15_BLOCK3_PRICE_ATTRIBUTE_ID (0x04F2) +#define ZCL_TIER15_BLOCK4_PRICE_ATTRIBUTE_ID (0x04F3) +#define ZCL_TIER15_BLOCK5_PRICE_ATTRIBUTE_ID (0x04F4) +#define ZCL_TIER15_BLOCK6_PRICE_ATTRIBUTE_ID (0x04F5) +#define ZCL_TIER15_BLOCK7_PRICE_ATTRIBUTE_ID (0x04F6) +#define ZCL_TIER15_BLOCK8_PRICE_ATTRIBUTE_ID (0x04F7) +#define ZCL_TIER15_BLOCK9_PRICE_ATTRIBUTE_ID (0x04F8) +#define ZCL_TIER15_BLOCK10_PRICE_ATTRIBUTE_ID (0x04F9) +#define ZCL_TIER15_BLOCK11_PRICE_ATTRIBUTE_ID (0x04FA) +#define ZCL_TIER15_BLOCK12_PRICE_ATTRIBUTE_ID (0x04FB) +#define ZCL_TIER15_BLOCK13_PRICE_ATTRIBUTE_ID (0x04FC) +#define ZCL_TIER15_BLOCK14_PRICE_ATTRIBUTE_ID (0x04FD) +#define ZCL_TIER15_BLOCK15_PRICE_ATTRIBUTE_ID (0x04FE) +#define ZCL_TIER15_BLOCK16_PRICE_ATTRIBUTE_ID (0x04FF) +#define ZCL_PRICE_TIER16_ATTRIBUTE_ID (0x050F) +#define ZCL_PRICE_TIER17_ATTRIBUTE_ID (0x0510) +#define ZCL_PRICE_TIER18_ATTRIBUTE_ID (0x0511) +#define ZCL_PRICE_TIER19_ATTRIBUTE_ID (0x0512) +#define ZCL_PRICE_TIER20_ATTRIBUTE_ID (0x0513) +#define ZCL_PRICE_TIER21_ATTRIBUTE_ID (0x0514) +#define ZCL_PRICE_TIER22_ATTRIBUTE_ID (0x0515) +#define ZCL_PRICE_TIER23_ATTRIBUTE_ID (0x0516) +#define ZCL_PRICE_TIER24_ATTRIBUTE_ID (0x0517) +#define ZCL_PRICE_TIER25_ATTRIBUTE_ID (0x0518) +#define ZCL_PRICE_TIER26_ATTRIBUTE_ID (0x0519) +#define ZCL_PRICE_TIER27_ATTRIBUTE_ID (0x051A) +#define ZCL_PRICE_TIER28_ATTRIBUTE_ID (0x051B) +#define ZCL_PRICE_TIER29_ATTRIBUTE_ID (0x051C) +#define ZCL_PRICE_TIER30_ATTRIBUTE_ID (0x051D) +#define ZCL_PRICE_TIER31_ATTRIBUTE_ID (0x051E) +#define ZCL_PRICE_TIER32_ATTRIBUTE_ID (0x051F) +#define ZCL_PRICE_TIER33_ATTRIBUTE_ID (0x0520) +#define ZCL_PRICE_TIER34_ATTRIBUTE_ID (0x0521) +#define ZCL_PRICE_TIER35_ATTRIBUTE_ID (0x0522) +#define ZCL_PRICE_TIER36_ATTRIBUTE_ID (0x0523) +#define ZCL_PRICE_TIER37_ATTRIBUTE_ID (0x0524) +#define ZCL_PRICE_TIER38_ATTRIBUTE_ID (0x0525) +#define ZCL_PRICE_TIER39_ATTRIBUTE_ID (0x0526) +#define ZCL_PRICE_TIER40_ATTRIBUTE_ID (0x0527) +#define ZCL_PRICE_TIER41_ATTRIBUTE_ID (0x0528) +#define ZCL_PRICE_TIER42_ATTRIBUTE_ID (0x0529) +#define ZCL_PRICE_TIER43_ATTRIBUTE_ID (0x052A) +#define ZCL_PRICE_TIER44_ATTRIBUTE_ID (0x052B) +#define ZCL_PRICE_TIER45_ATTRIBUTE_ID (0x052C) +#define ZCL_PRICE_TIER46_ATTRIBUTE_ID (0x052D) +#define ZCL_PRICE_TIER47_ATTRIBUTE_ID (0x052E) +#define ZCL_PRICE_TIER48_ATTRIBUTE_ID (0x052F) +#define ZCL_CPP1_PRICE_ATTRIBUTE_ID (0x05FE) +#define ZCL_CPP2_PRICE_ATTRIBUTE_ID (0x05FF) +#define ZCL_TARIFF_LABEL_ATTRIBUTE_ID (0x0610) +#define ZCL_NUMBER_OF_PRICE_TIERS_IN_USE_ATTRIBUTE_ID (0x0611) +#define ZCL_NUMBER_OF_BLOCK_THRESHOLDS_IN_USE_ATTRIBUTE_ID (0x0612) +#define ZCL_TIER_BLOCK_MODE_ATTRIBUTE_ID (0x0613) +#define ZCL_TARIFF_UNIT_OF_MEASURE_ATTRIBUTE_ID (0x0615) +#define ZCL_TARIFF_CURRENCY_ATTRIBUTE_ID (0x0616) +#define ZCL_TARIFF_PRICE_TRAILING_DIGIT_ATTRIBUTE_ID (0x0617) +#define ZCL_TARIFF_RESOLUTION_PERIOD_ATTRIBUTE_ID (0x0619) +#define ZCL_TARIFF_CO2_ATTRIBUTE_ID (0x0620) +#define ZCL_TARIFF_CO2_UNIT_ATTRIBUTE_ID (0x0621) +#define ZCL_TARIFF_CO2_TRAILING_DIGIT_ATTRIBUTE_ID (0x0622) +#define ZCL_CURRENT_BILLING_PERIOD_START_ATTRIBUTE_ID (0x0700) +#define ZCL_CURRENT_BILLING_PERIOD_DURATION_ATTRIBUTE_ID (0x0701) +#define ZCL_LAST_BILLING_PERIOD_START_ATTRIBUTE_ID (0x0702) +#define ZCL_LAST_BILLING_PERIOD_DURATION_ATTRIBUTE_ID (0x0703) +#define ZCL_LAST_BILLING_PERIOD_CONSOLIDATED_BILL_ATTRIBUTE_ID (0x0704) +#define ZCL_CREDIT_PAYMENT_DUE_DATE_ATTRIBUTE_ID (0x0800) +#define ZCL_CREDIT_PAYMENT_STATUS_ATTRIBUTE_ID (0x0801) +#define ZCL_CREDIT_PAYMENT_OVER_DUE_AMOUNT_ATTRIBUTE_ID (0x0802) +#define ZCL_PAYMENT_DISCOUNT_ATTRIBUTE_ID (0x080A) +#define ZCL_PAYMENT_DISCOUNT_PERIOD_ATTRIBUTE_ID (0x080B) +#define ZCL_CREDIT_PAYMENT_1_ATTRIBUTE_ID (0x0810) +#define ZCL_CREDIT_PAYMENT_DATE_1_ATTRIBUTE_ID (0x0811) +#define ZCL_CREDIT_PAYMENT_REF_1_ATTRIBUTE_ID (0x0812) +#define ZCL_CREDIT_PAYMENT_2_ATTRIBUTE_ID (0x0820) +#define ZCL_CREDIT_PAYMENT_DATE_2_ATTRIBUTE_ID (0x0821) +#define ZCL_CREDIT_PAYMENT_REF_2_ATTRIBUTE_ID (0x0822) +#define ZCL_CREDIT_PAYMENT_3_ATTRIBUTE_ID (0x0830) +#define ZCL_CREDIT_PAYMENT_DATE_3_ATTRIBUTE_ID (0x0831) +#define ZCL_CREDIT_PAYMENT_REF_3_ATTRIBUTE_ID (0x0832) +#define ZCL_CREDIT_PAYMENT_4_ATTRIBUTE_ID (0x0840) +#define ZCL_CREDIT_PAYMENT_DATE_4_ATTRIBUTE_ID (0x0841) +#define ZCL_CREDIT_PAYMENT_REF_4_ATTRIBUTE_ID (0x0842) +#define ZCL_CREDIT_PAYMENT_5_ATTRIBUTE_ID (0x0850) +#define ZCL_CREDIT_PAYMENT_DATE_5_ATTRIBUTE_ID (0x0851) +#define ZCL_CREDIT_PAYMENT_REF_5_ATTRIBUTE_ID (0x0852) +#define ZCL_RX_TIER1_PRICE_LABEL_ATTRIBUTE_ID (0x8000) +#define ZCL_RX_TIER2_PRICE_LABEL_ATTRIBUTE_ID (0x8001) +#define ZCL_RX_TIER3_PRICE_LABEL_ATTRIBUTE_ID (0x8002) +#define ZCL_RX_TIER4_PRICE_LABEL_ATTRIBUTE_ID (0x8003) +#define ZCL_RX_TIER5_PRICE_LABEL_ATTRIBUTE_ID (0x8004) +#define ZCL_RX_TIER6_PRICE_LABEL_ATTRIBUTE_ID (0x8005) +#define ZCL_RX_TIER7_PRICE_LABEL_ATTRIBUTE_ID (0x8006) +#define ZCL_RX_TIER8_PRICE_LABEL_ATTRIBUTE_ID (0x8007) +#define ZCL_RX_TIER9_PRICE_LABEL_ATTRIBUTE_ID (0x8008) +#define ZCL_RX_TIER10_PRICE_LABEL_ATTRIBUTE_ID (0x8009) +#define ZCL_RX_TIER11_PRICE_LABEL_ATTRIBUTE_ID (0x800A) +#define ZCL_RX_TIER12_PRICE_LABEL_ATTRIBUTE_ID (0x800B) +#define ZCL_RX_TIER13_PRICE_LABEL_ATTRIBUTE_ID (0x800C) +#define ZCL_RX_TIER14_PRICE_LABEL_ATTRIBUTE_ID (0x800D) +#define ZCL_RX_TIER15_PRICE_LABEL_ATTRIBUTE_ID (0x800E) +#define ZCL_RX_TIER16_PRICE_LABEL_ATTRIBUTE_ID (0x800F) +#define ZCL_RX_TIER17_PRICE_LABEL_ATTRIBUTE_ID (0x8010) +#define ZCL_RX_TIER18_PRICE_LABEL_ATTRIBUTE_ID (0x8011) +#define ZCL_RX_TIER19_PRICE_LABEL_ATTRIBUTE_ID (0x8012) +#define ZCL_RX_TIER20_PRICE_LABEL_ATTRIBUTE_ID (0x8013) +#define ZCL_RX_TIER21_PRICE_LABEL_ATTRIBUTE_ID (0x8014) +#define ZCL_RX_TIER22_PRICE_LABEL_ATTRIBUTE_ID (0x8015) +#define ZCL_RX_TIER23_PRICE_LABEL_ATTRIBUTE_ID (0x8016) +#define ZCL_RX_TIER24_PRICE_LABEL_ATTRIBUTE_ID (0x8017) +#define ZCL_RX_TIER25_PRICE_LABEL_ATTRIBUTE_ID (0x8018) +#define ZCL_RX_TIER26_PRICE_LABEL_ATTRIBUTE_ID (0x8019) +#define ZCL_RX_TIER27_PRICE_LABEL_ATTRIBUTE_ID (0x801A) +#define ZCL_RX_TIER28_PRICE_LABEL_ATTRIBUTE_ID (0x801B) +#define ZCL_RX_TIER29_PRICE_LABEL_ATTRIBUTE_ID (0x801C) +#define ZCL_RX_TIER30_PRICE_LABEL_ATTRIBUTE_ID (0x801D) +#define ZCL_RX_TIER31_PRICE_LABEL_ATTRIBUTE_ID (0x801E) +#define ZCL_RX_TIER32_PRICE_LABEL_ATTRIBUTE_ID (0x801F) +#define ZCL_RX_TIER33_PRICE_LABEL_ATTRIBUTE_ID (0x8020) +#define ZCL_RX_TIER34_PRICE_LABEL_ATTRIBUTE_ID (0x8021) +#define ZCL_RX_TIER35_PRICE_LABEL_ATTRIBUTE_ID (0x8022) +#define ZCL_RX_TIER36_PRICE_LABEL_ATTRIBUTE_ID (0x8023) +#define ZCL_RX_TIER37_PRICE_LABEL_ATTRIBUTE_ID (0x8024) +#define ZCL_RX_TIER38_PRICE_LABEL_ATTRIBUTE_ID (0x8025) +#define ZCL_RX_TIER39_PRICE_LABEL_ATTRIBUTE_ID (0x8026) +#define ZCL_RX_TIER40_PRICE_LABEL_ATTRIBUTE_ID (0x8027) +#define ZCL_RX_TIER41_PRICE_LABEL_ATTRIBUTE_ID (0x8028) +#define ZCL_RX_TIER42_PRICE_LABEL_ATTRIBUTE_ID (0x8029) +#define ZCL_RX_TIER43_PRICE_LABEL_ATTRIBUTE_ID (0x802A) +#define ZCL_RX_TIER44_PRICE_LABEL_ATTRIBUTE_ID (0x802B) +#define ZCL_RX_TIER45_PRICE_LABEL_ATTRIBUTE_ID (0x802C) +#define ZCL_RX_TIER46_PRICE_LABEL_ATTRIBUTE_ID (0x802D) +#define ZCL_RX_TIER47_PRICE_LABEL_ATTRIBUTE_ID (0x802E) +#define ZCL_RX_TIER48_PRICE_LABEL_ATTRIBUTE_ID (0x802F) +#define ZCL_RX_BLOCK1_THRESHOLD_ATTRIBUTE_ID (0x8100) +#define ZCL_RX_BLOCK2_THRESHOLD_ATTRIBUTE_ID (0x8101) +#define ZCL_RX_BLOCK3_THRESHOLD_ATTRIBUTE_ID (0x8102) +#define ZCL_RX_BLOCK4_THRESHOLD_ATTRIBUTE_ID (0x8103) +#define ZCL_RX_BLOCK5_THRESHOLD_ATTRIBUTE_ID (0x8104) +#define ZCL_RX_BLOCK6_THRESHOLD_ATTRIBUTE_ID (0x8105) +#define ZCL_RX_BLOCK7_THRESHOLD_ATTRIBUTE_ID (0x8106) +#define ZCL_RX_BLOCK8_THRESHOLD_ATTRIBUTE_ID (0x8107) +#define ZCL_RX_BLOCK9_THRESHOLD_ATTRIBUTE_ID (0x8108) +#define ZCL_RX_BLOCK10_THRESHOLD_ATTRIBUTE_ID (0x8109) +#define ZCL_RX_BLOCK11_THRESHOLD_ATTRIBUTE_ID (0x810A) +#define ZCL_RX_BLOCK12_THRESHOLD_ATTRIBUTE_ID (0x810B) +#define ZCL_RX_BLOCK13_THRESHOLD_ATTRIBUTE_ID (0x810C) +#define ZCL_RX_BLOCK14_THRESHOLD_ATTRIBUTE_ID (0x810D) +#define ZCL_RX_BLOCK15_THRESHOLD_ATTRIBUTE_ID (0x810E) +#define ZCL_RX_START_OF_BLOCK_PERIOD_ATTRIBUTE_ID (0x8200) +#define ZCL_RX_BLOCK_PERIOD_DURATION_ATTRIBUTE_ID (0x8201) +#define ZCL_RX_THRESHOLD_MULTIPLIER_ATTRIBUTE_ID (0x8202) +#define ZCL_RX_THRESHOLD_DIVISOR_ATTRIBUTE_ID (0x8203) +#define ZCL_RX_NO_TIER_BLOCK1_PRICE_ATTRIBUTE_ID (0x8400) +#define ZCL_RX_NO_TIER_BLOCK2_PRICE_ATTRIBUTE_ID (0x8401) +#define ZCL_RX_NO_TIER_BLOCK3_PRICE_ATTRIBUTE_ID (0x8402) +#define ZCL_RX_NO_TIER_BLOCK4_PRICE_ATTRIBUTE_ID (0x8403) +#define ZCL_RX_NO_TIER_BLOCK5_PRICE_ATTRIBUTE_ID (0x8404) +#define ZCL_RX_NO_TIER_BLOCK6_PRICE_ATTRIBUTE_ID (0x8405) +#define ZCL_RX_NO_TIER_BLOCK7_PRICE_ATTRIBUTE_ID (0x8406) +#define ZCL_RX_NO_TIER_BLOCK8_PRICE_ATTRIBUTE_ID (0x8407) +#define ZCL_RX_NO_TIER_BLOCK9_PRICE_ATTRIBUTE_ID (0x8408) +#define ZCL_RX_NO_TIER_BLOCK10_PRICE_ATTRIBUTE_ID (0x8409) +#define ZCL_RX_NO_TIER_BLOCK11_PRICE_ATTRIBUTE_ID (0x840A) +#define ZCL_RX_NO_TIER_BLOCK12_PRICE_ATTRIBUTE_ID (0x840B) +#define ZCL_RX_NO_TIER_BLOCK13_PRICE_ATTRIBUTE_ID (0x840C) +#define ZCL_RX_NO_TIER_BLOCK14_PRICE_ATTRIBUTE_ID (0x840D) +#define ZCL_RX_NO_TIER_BLOCK15_PRICE_ATTRIBUTE_ID (0x840E) +#define ZCL_RX_NO_TIER_BLOCK16_PRICE_ATTRIBUTE_ID (0x840F) +#define ZCL_RX_TIER1_BLOCK1_PRICE_ATTRIBUTE_ID (0x8410) +#define ZCL_RX_TIER1_BLOCK2_PRICE_ATTRIBUTE_ID (0x8411) +#define ZCL_RX_TIER1_BLOCK3_PRICE_ATTRIBUTE_ID (0x8412) +#define ZCL_RX_TIER1_BLOCK4_PRICE_ATTRIBUTE_ID (0x8413) +#define ZCL_RX_TIER1_BLOCK5_PRICE_ATTRIBUTE_ID (0x8414) +#define ZCL_RX_TIER1_BLOCK6_PRICE_ATTRIBUTE_ID (0x8415) +#define ZCL_RX_TIER1_BLOCK7_PRICE_ATTRIBUTE_ID (0x8416) +#define ZCL_RX_TIER1_BLOCK8_PRICE_ATTRIBUTE_ID (0x8417) +#define ZCL_RX_TIER1_BLOCK9_PRICE_ATTRIBUTE_ID (0x8418) +#define ZCL_RX_TIER1_BLOCK10_PRICE_ATTRIBUTE_ID (0x8419) +#define ZCL_RX_TIER1_BLOCK11_PRICE_ATTRIBUTE_ID (0x841A) +#define ZCL_RX_TIER1_BLOCK12_PRICE_ATTRIBUTE_ID (0x841B) +#define ZCL_RX_TIER1_BLOCK13_PRICE_ATTRIBUTE_ID (0x841C) +#define ZCL_RX_TIER1_BLOCK14_PRICE_ATTRIBUTE_ID (0x841D) +#define ZCL_RX_TIER1_BLOCK15_PRICE_ATTRIBUTE_ID (0x841E) +#define ZCL_RX_TIER1_BLOCK16_PRICE_ATTRIBUTE_ID (0x841F) +#define ZCL_RX_TIER2_BLOCK1_PRICE_ATTRIBUTE_ID (0x8420) +#define ZCL_RX_TIER2_BLOCK2_PRICE_ATTRIBUTE_ID (0x8421) +#define ZCL_RX_TIER2_BLOCK3_PRICE_ATTRIBUTE_ID (0x8422) +#define ZCL_RX_TIER2_BLOCK4_PRICE_ATTRIBUTE_ID (0x8423) +#define ZCL_RX_TIER2_BLOCK5_PRICE_ATTRIBUTE_ID (0x8424) +#define ZCL_RX_TIER2_BLOCK6_PRICE_ATTRIBUTE_ID (0x8425) +#define ZCL_RX_TIER2_BLOCK7_PRICE_ATTRIBUTE_ID (0x8426) +#define ZCL_RX_TIER2_BLOCK8_PRICE_ATTRIBUTE_ID (0x8427) +#define ZCL_RX_TIER2_BLOCK9_PRICE_ATTRIBUTE_ID (0x8428) +#define ZCL_RX_TIER2_BLOCK10_PRICE_ATTRIBUTE_ID (0x8429) +#define ZCL_RX_TIER2_BLOCK11_PRICE_ATTRIBUTE_ID (0x842A) +#define ZCL_RX_TIER2_BLOCK12_PRICE_ATTRIBUTE_ID (0x842B) +#define ZCL_RX_TIER2_BLOCK13_PRICE_ATTRIBUTE_ID (0x842C) +#define ZCL_RX_TIER2_BLOCK14_PRICE_ATTRIBUTE_ID (0x842D) +#define ZCL_RX_TIER2_BLOCK15_PRICE_ATTRIBUTE_ID (0x842E) +#define ZCL_RX_TIER2_BLOCK16_PRICE_ATTRIBUTE_ID (0x842F) +#define ZCL_RX_TIER3_BLOCK1_PRICE_ATTRIBUTE_ID (0x8430) +#define ZCL_RX_TIER3_BLOCK2_PRICE_ATTRIBUTE_ID (0x8431) +#define ZCL_RX_TIER3_BLOCK3_PRICE_ATTRIBUTE_ID (0x8432) +#define ZCL_RX_TIER3_BLOCK4_PRICE_ATTRIBUTE_ID (0x8433) +#define ZCL_RX_TIER3_BLOCK5_PRICE_ATTRIBUTE_ID (0x8434) +#define ZCL_RX_TIER3_BLOCK6_PRICE_ATTRIBUTE_ID (0x8435) +#define ZCL_RX_TIER3_BLOCK7_PRICE_ATTRIBUTE_ID (0x8436) +#define ZCL_RX_TIER3_BLOCK8_PRICE_ATTRIBUTE_ID (0x8437) +#define ZCL_RX_TIER3_BLOCK9_PRICE_ATTRIBUTE_ID (0x8438) +#define ZCL_RX_TIER3_BLOCK10_PRICE_ATTRIBUTE_ID (0x8439) +#define ZCL_RX_TIER3_BLOCK11_PRICE_ATTRIBUTE_ID (0x843A) +#define ZCL_RX_TIER3_BLOCK12_PRICE_ATTRIBUTE_ID (0x843B) +#define ZCL_RX_TIER3_BLOCK13_PRICE_ATTRIBUTE_ID (0x843C) +#define ZCL_RX_TIER3_BLOCK14_PRICE_ATTRIBUTE_ID (0x843D) +#define ZCL_RX_TIER3_BLOCK15_PRICE_ATTRIBUTE_ID (0x843E) +#define ZCL_RX_TIER3_BLOCK16_PRICE_ATTRIBUTE_ID (0x843F) +#define ZCL_RX_TIER4_BLOCK1_PRICE_ATTRIBUTE_ID (0x8440) +#define ZCL_RX_TIER4_BLOCK2_PRICE_ATTRIBUTE_ID (0x8441) +#define ZCL_RX_TIER4_BLOCK3_PRICE_ATTRIBUTE_ID (0x8442) +#define ZCL_RX_TIER4_BLOCK4_PRICE_ATTRIBUTE_ID (0x8443) +#define ZCL_RX_TIER4_BLOCK5_PRICE_ATTRIBUTE_ID (0x8444) +#define ZCL_RX_TIER4_BLOCK6_PRICE_ATTRIBUTE_ID (0x8445) +#define ZCL_RX_TIER4_BLOCK7_PRICE_ATTRIBUTE_ID (0x8446) +#define ZCL_RX_TIER4_BLOCK8_PRICE_ATTRIBUTE_ID (0x8447) +#define ZCL_RX_TIER4_BLOCK9_PRICE_ATTRIBUTE_ID (0x8448) +#define ZCL_RX_TIER4_BLOCK10_PRICE_ATTRIBUTE_ID (0x8449) +#define ZCL_RX_TIER4_BLOCK11_PRICE_ATTRIBUTE_ID (0x844A) +#define ZCL_RX_TIER4_BLOCK12_PRICE_ATTRIBUTE_ID (0x844B) +#define ZCL_RX_TIER4_BLOCK13_PRICE_ATTRIBUTE_ID (0x844C) +#define ZCL_RX_TIER4_BLOCK14_PRICE_ATTRIBUTE_ID (0x844D) +#define ZCL_RX_TIER4_BLOCK15_PRICE_ATTRIBUTE_ID (0x844E) +#define ZCL_RX_TIER4_BLOCK16_PRICE_ATTRIBUTE_ID (0x844F) +#define ZCL_RX_TIER5_BLOCK1_PRICE_ATTRIBUTE_ID (0x8450) +#define ZCL_RX_TIER5_BLOCK2_PRICE_ATTRIBUTE_ID (0x8451) +#define ZCL_RX_TIER5_BLOCK3_PRICE_ATTRIBUTE_ID (0x8452) +#define ZCL_RX_TIER5_BLOCK4_PRICE_ATTRIBUTE_ID (0x8453) +#define ZCL_RX_TIER5_BLOCK5_PRICE_ATTRIBUTE_ID (0x8454) +#define ZCL_RX_TIER5_BLOCK6_PRICE_ATTRIBUTE_ID (0x8455) +#define ZCL_RX_TIER5_BLOCK7_PRICE_ATTRIBUTE_ID (0x8456) +#define ZCL_RX_TIER5_BLOCK8_PRICE_ATTRIBUTE_ID (0x8457) +#define ZCL_RX_TIER5_BLOCK9_PRICE_ATTRIBUTE_ID (0x8458) +#define ZCL_RX_TIER5_BLOCK10_PRICE_ATTRIBUTE_ID (0x8459) +#define ZCL_RX_TIER5_BLOCK11_PRICE_ATTRIBUTE_ID (0x845A) +#define ZCL_RX_TIER5_BLOCK12_PRICE_ATTRIBUTE_ID (0x845B) +#define ZCL_RX_TIER5_BLOCK13_PRICE_ATTRIBUTE_ID (0x845C) +#define ZCL_RX_TIER5_BLOCK14_PRICE_ATTRIBUTE_ID (0x845D) +#define ZCL_RX_TIER5_BLOCK15_PRICE_ATTRIBUTE_ID (0x845E) +#define ZCL_RX_TIER5_BLOCK16_PRICE_ATTRIBUTE_ID (0x845F) +#define ZCL_RX_TIER6_BLOCK1_PRICE_ATTRIBUTE_ID (0x8460) +#define ZCL_RX_TIER6_BLOCK2_PRICE_ATTRIBUTE_ID (0x8461) +#define ZCL_RX_TIER6_BLOCK3_PRICE_ATTRIBUTE_ID (0x8462) +#define ZCL_RX_TIER6_BLOCK4_PRICE_ATTRIBUTE_ID (0x8463) +#define ZCL_RX_TIER6_BLOCK5_PRICE_ATTRIBUTE_ID (0x8464) +#define ZCL_RX_TIER6_BLOCK6_PRICE_ATTRIBUTE_ID (0x8465) +#define ZCL_RX_TIER6_BLOCK7_PRICE_ATTRIBUTE_ID (0x8466) +#define ZCL_RX_TIER6_BLOCK8_PRICE_ATTRIBUTE_ID (0x8467) +#define ZCL_RX_TIER6_BLOCK9_PRICE_ATTRIBUTE_ID (0x8468) +#define ZCL_RX_TIER6_BLOCK10_PRICE_ATTRIBUTE_ID (0x8469) +#define ZCL_RX_TIER6_BLOCK11_PRICE_ATTRIBUTE_ID (0x846A) +#define ZCL_RX_TIER6_BLOCK12_PRICE_ATTRIBUTE_ID (0x846B) +#define ZCL_RX_TIER6_BLOCK13_PRICE_ATTRIBUTE_ID (0x846C) +#define ZCL_RX_TIER6_BLOCK14_PRICE_ATTRIBUTE_ID (0x846D) +#define ZCL_RX_TIER6_BLOCK15_PRICE_ATTRIBUTE_ID (0x846E) +#define ZCL_RX_TIER6_BLOCK16_PRICE_ATTRIBUTE_ID (0x846F) +#define ZCL_RX_TIER7_BLOCK1_PRICE_ATTRIBUTE_ID (0x8470) +#define ZCL_RX_TIER7_BLOCK2_PRICE_ATTRIBUTE_ID (0x8471) +#define ZCL_RX_TIER7_BLOCK3_PRICE_ATTRIBUTE_ID (0x8472) +#define ZCL_RX_TIER7_BLOCK4_PRICE_ATTRIBUTE_ID (0x8473) +#define ZCL_RX_TIER7_BLOCK5_PRICE_ATTRIBUTE_ID (0x8474) +#define ZCL_RX_TIER7_BLOCK6_PRICE_ATTRIBUTE_ID (0x8475) +#define ZCL_RX_TIER7_BLOCK7_PRICE_ATTRIBUTE_ID (0x8476) +#define ZCL_RX_TIER7_BLOCK8_PRICE_ATTRIBUTE_ID (0x8477) +#define ZCL_RX_TIER7_BLOCK9_PRICE_ATTRIBUTE_ID (0x8478) +#define ZCL_RX_TIER7_BLOCK10_PRICE_ATTRIBUTE_ID (0x8479) +#define ZCL_RX_TIER7_BLOCK11_PRICE_ATTRIBUTE_ID (0x847A) +#define ZCL_RX_TIER7_BLOCK12_PRICE_ATTRIBUTE_ID (0x847B) +#define ZCL_RX_TIER7_BLOCK13_PRICE_ATTRIBUTE_ID (0x847C) +#define ZCL_RX_TIER7_BLOCK14_PRICE_ATTRIBUTE_ID (0x847D) +#define ZCL_RX_TIER7_BLOCK15_PRICE_ATTRIBUTE_ID (0x847E) +#define ZCL_RX_TIER7_BLOCK16_PRICE_ATTRIBUTE_ID (0x847F) +#define ZCL_RX_TIER8_BLOCK1_PRICE_ATTRIBUTE_ID (0x8480) +#define ZCL_RX_TIER8_BLOCK2_PRICE_ATTRIBUTE_ID (0x8481) +#define ZCL_RX_TIER8_BLOCK3_PRICE_ATTRIBUTE_ID (0x8482) +#define ZCL_RX_TIER8_BLOCK4_PRICE_ATTRIBUTE_ID (0x8483) +#define ZCL_RX_TIER8_BLOCK5_PRICE_ATTRIBUTE_ID (0x8484) +#define ZCL_RX_TIER8_BLOCK6_PRICE_ATTRIBUTE_ID (0x8485) +#define ZCL_RX_TIER8_BLOCK7_PRICE_ATTRIBUTE_ID (0x8486) +#define ZCL_RX_TIER8_BLOCK8_PRICE_ATTRIBUTE_ID (0x8487) +#define ZCL_RX_TIER8_BLOCK9_PRICE_ATTRIBUTE_ID (0x8488) +#define ZCL_RX_TIER8_BLOCK10_PRICE_ATTRIBUTE_ID (0x8489) +#define ZCL_RX_TIER8_BLOCK11_PRICE_ATTRIBUTE_ID (0x848A) +#define ZCL_RX_TIER8_BLOCK12_PRICE_ATTRIBUTE_ID (0x848B) +#define ZCL_RX_TIER8_BLOCK13_PRICE_ATTRIBUTE_ID (0x848C) +#define ZCL_RX_TIER8_BLOCK14_PRICE_ATTRIBUTE_ID (0x848D) +#define ZCL_RX_TIER8_BLOCK15_PRICE_ATTRIBUTE_ID (0x848E) +#define ZCL_RX_TIER8_BLOCK16_PRICE_ATTRIBUTE_ID (0x848F) +#define ZCL_RX_TIER9_BLOCK1_PRICE_ATTRIBUTE_ID (0x8490) +#define ZCL_RX_TIER9_BLOCK2_PRICE_ATTRIBUTE_ID (0x8491) +#define ZCL_RX_TIER9_BLOCK3_PRICE_ATTRIBUTE_ID (0x8492) +#define ZCL_RX_TIER9_BLOCK4_PRICE_ATTRIBUTE_ID (0x8493) +#define ZCL_RX_TIER9_BLOCK5_PRICE_ATTRIBUTE_ID (0x8494) +#define ZCL_RX_TIER9_BLOCK6_PRICE_ATTRIBUTE_ID (0x8495) +#define ZCL_RX_TIER9_BLOCK7_PRICE_ATTRIBUTE_ID (0x8496) +#define ZCL_RX_TIER9_BLOCK8_PRICE_ATTRIBUTE_ID (0x8497) +#define ZCL_RX_TIER9_BLOCK9_PRICE_ATTRIBUTE_ID (0x8498) +#define ZCL_RX_TIER9_BLOCK10_PRICE_ATTRIBUTE_ID (0x8499) +#define ZCL_RX_TIER9_BLOCK11_PRICE_ATTRIBUTE_ID (0x849A) +#define ZCL_RX_TIER9_BLOCK12_PRICE_ATTRIBUTE_ID (0x849B) +#define ZCL_RX_TIER9_BLOCK13_PRICE_ATTRIBUTE_ID (0x849C) +#define ZCL_RX_TIER9_BLOCK14_PRICE_ATTRIBUTE_ID (0x849D) +#define ZCL_RX_TIER9_BLOCK15_PRICE_ATTRIBUTE_ID (0x849E) +#define ZCL_RX_TIER9_BLOCK16_PRICE_ATTRIBUTE_ID (0x849F) +#define ZCL_RX_TIER10_BLOCK1_PRICE_ATTRIBUTE_ID (0x84A0) +#define ZCL_RX_TIER10_BLOCK2_PRICE_ATTRIBUTE_ID (0x84A1) +#define ZCL_RX_TIER10_BLOCK3_PRICE_ATTRIBUTE_ID (0x84A2) +#define ZCL_RX_TIER10_BLOCK4_PRICE_ATTRIBUTE_ID (0x84A3) +#define ZCL_RX_TIER10_BLOCK5_PRICE_ATTRIBUTE_ID (0x84A4) +#define ZCL_RX_TIER10_BLOCK6_PRICE_ATTRIBUTE_ID (0x84A5) +#define ZCL_RX_TIER10_BLOCK7_PRICE_ATTRIBUTE_ID (0x84A6) +#define ZCL_RX_TIER10_BLOCK8_PRICE_ATTRIBUTE_ID (0x84A7) +#define ZCL_RX_TIER10_BLOCK9_PRICE_ATTRIBUTE_ID (0x84A8) +#define ZCL_RX_TIER10_BLOCK10_PRICE_ATTRIBUTE_ID (0x84A9) +#define ZCL_RX_TIER10_BLOCK11_PRICE_ATTRIBUTE_ID (0x84AA) +#define ZCL_RX_TIER10_BLOCK12_PRICE_ATTRIBUTE_ID (0x84AB) +#define ZCL_RX_TIER10_BLOCK13_PRICE_ATTRIBUTE_ID (0x84AC) +#define ZCL_RX_TIER10_BLOCK14_PRICE_ATTRIBUTE_ID (0x84AD) +#define ZCL_RX_TIER10_BLOCK15_PRICE_ATTRIBUTE_ID (0x84AE) +#define ZCL_RX_TIER10_BLOCK16_PRICE_ATTRIBUTE_ID (0x84AF) +#define ZCL_RX_TIER11_BLOCK1_PRICE_ATTRIBUTE_ID (0x84B0) +#define ZCL_RX_TIER11_BLOCK2_PRICE_ATTRIBUTE_ID (0x84B1) +#define ZCL_RX_TIER11_BLOCK3_PRICE_ATTRIBUTE_ID (0x84B2) +#define ZCL_RX_TIER11_BLOCK4_PRICE_ATTRIBUTE_ID (0x84B3) +#define ZCL_RX_TIER11_BLOCK5_PRICE_ATTRIBUTE_ID (0x84B4) +#define ZCL_RX_TIER11_BLOCK6_PRICE_ATTRIBUTE_ID (0x84B5) +#define ZCL_RX_TIER11_BLOCK7_PRICE_ATTRIBUTE_ID (0x84B6) +#define ZCL_RX_TIER11_BLOCK8_PRICE_ATTRIBUTE_ID (0x84B7) +#define ZCL_RX_TIER11_BLOCK9_PRICE_ATTRIBUTE_ID (0x84B8) +#define ZCL_RX_TIER11_BLOCK10_PRICE_ATTRIBUTE_ID (0x84B9) +#define ZCL_RX_TIER11_BLOCK11_PRICE_ATTRIBUTE_ID (0x84BA) +#define ZCL_RX_TIER11_BLOCK12_PRICE_ATTRIBUTE_ID (0x84BB) +#define ZCL_RX_TIER11_BLOCK13_PRICE_ATTRIBUTE_ID (0x84BC) +#define ZCL_RX_TIER11_BLOCK14_PRICE_ATTRIBUTE_ID (0x84BD) +#define ZCL_RX_TIER11_BLOCK15_PRICE_ATTRIBUTE_ID (0x84BE) +#define ZCL_RX_TIER11_BLOCK16_PRICE_ATTRIBUTE_ID (0x84BF) +#define ZCL_RX_TIER12_BLOCK1_PRICE_ATTRIBUTE_ID (0x84C0) +#define ZCL_RX_TIER12_BLOCK2_PRICE_ATTRIBUTE_ID (0x84C1) +#define ZCL_RX_TIER12_BLOCK3_PRICE_ATTRIBUTE_ID (0x84C2) +#define ZCL_RX_TIER12_BLOCK4_PRICE_ATTRIBUTE_ID (0x84C3) +#define ZCL_RX_TIER12_BLOCK5_PRICE_ATTRIBUTE_ID (0x84C4) +#define ZCL_RX_TIER12_BLOCK6_PRICE_ATTRIBUTE_ID (0x84C5) +#define ZCL_RX_TIER12_BLOCK7_PRICE_ATTRIBUTE_ID (0x84C6) +#define ZCL_RX_TIER12_BLOCK8_PRICE_ATTRIBUTE_ID (0x84C7) +#define ZCL_RX_TIER12_BLOCK9_PRICE_ATTRIBUTE_ID (0x84C8) +#define ZCL_RX_TIER12_BLOCK10_PRICE_ATTRIBUTE_ID (0x84C9) +#define ZCL_RX_TIER12_BLOCK11_PRICE_ATTRIBUTE_ID (0x84CA) +#define ZCL_RX_TIER12_BLOCK12_PRICE_ATTRIBUTE_ID (0x84CB) +#define ZCL_RX_TIER12_BLOCK13_PRICE_ATTRIBUTE_ID (0x84CC) +#define ZCL_RX_TIER12_BLOCK14_PRICE_ATTRIBUTE_ID (0x84CD) +#define ZCL_RX_TIER12_BLOCK15_PRICE_ATTRIBUTE_ID (0x84CE) +#define ZCL_RX_TIER12_BLOCK16_PRICE_ATTRIBUTE_ID (0x84CF) +#define ZCL_RX_TIER13_BLOCK1_PRICE_ATTRIBUTE_ID (0x84D0) +#define ZCL_RX_TIER13_BLOCK2_PRICE_ATTRIBUTE_ID (0x84D1) +#define ZCL_RX_TIER13_BLOCK3_PRICE_ATTRIBUTE_ID (0x84D2) +#define ZCL_RX_TIER13_BLOCK4_PRICE_ATTRIBUTE_ID (0x84D3) +#define ZCL_RX_TIER13_BLOCK5_PRICE_ATTRIBUTE_ID (0x84D4) +#define ZCL_RX_TIER13_BLOCK6_PRICE_ATTRIBUTE_ID (0x84D5) +#define ZCL_RX_TIER13_BLOCK7_PRICE_ATTRIBUTE_ID (0x84D6) +#define ZCL_RX_TIER13_BLOCK8_PRICE_ATTRIBUTE_ID (0x84D7) +#define ZCL_RX_TIER13_BLOCK9_PRICE_ATTRIBUTE_ID (0x84D8) +#define ZCL_RX_TIER13_BLOCK10_PRICE_ATTRIBUTE_ID (0x84D9) +#define ZCL_RX_TIER13_BLOCK11_PRICE_ATTRIBUTE_ID (0x84DA) +#define ZCL_RX_TIER13_BLOCK12_PRICE_ATTRIBUTE_ID (0x84DB) +#define ZCL_RX_TIER13_BLOCK13_PRICE_ATTRIBUTE_ID (0x84DC) +#define ZCL_RX_TIER13_BLOCK14_PRICE_ATTRIBUTE_ID (0x84DD) +#define ZCL_RX_TIER13_BLOCK15_PRICE_ATTRIBUTE_ID (0x84DE) +#define ZCL_RX_TIER13_BLOCK16_PRICE_ATTRIBUTE_ID (0x84DF) +#define ZCL_RX_TIER14_BLOCK1_PRICE_ATTRIBUTE_ID (0x84E0) +#define ZCL_RX_TIER14_BLOCK2_PRICE_ATTRIBUTE_ID (0x84E1) +#define ZCL_RX_TIER14_BLOCK3_PRICE_ATTRIBUTE_ID (0x84E2) +#define ZCL_RX_TIER14_BLOCK4_PRICE_ATTRIBUTE_ID (0x84E3) +#define ZCL_RX_TIER14_BLOCK5_PRICE_ATTRIBUTE_ID (0x84E4) +#define ZCL_RX_TIER14_BLOCK6_PRICE_ATTRIBUTE_ID (0x84E5) +#define ZCL_RX_TIER14_BLOCK7_PRICE_ATTRIBUTE_ID (0x84E6) +#define ZCL_RX_TIER14_BLOCK8_PRICE_ATTRIBUTE_ID (0x84E7) +#define ZCL_RX_TIER14_BLOCK9_PRICE_ATTRIBUTE_ID (0x84E8) +#define ZCL_RX_TIER14_BLOCK10_PRICE_ATTRIBUTE_ID (0x84E9) +#define ZCL_RX_TIER14_BLOCK11_PRICE_ATTRIBUTE_ID (0x84EA) +#define ZCL_RX_TIER14_BLOCK12_PRICE_ATTRIBUTE_ID (0x84EB) +#define ZCL_RX_TIER14_BLOCK13_PRICE_ATTRIBUTE_ID (0x84EC) +#define ZCL_RX_TIER14_BLOCK14_PRICE_ATTRIBUTE_ID (0x84ED) +#define ZCL_RX_TIER14_BLOCK15_PRICE_ATTRIBUTE_ID (0x84EE) +#define ZCL_RX_TIER14_BLOCK16_PRICE_ATTRIBUTE_ID (0x84EF) +#define ZCL_RX_TIER15_BLOCK1_PRICE_ATTRIBUTE_ID (0x84F0) +#define ZCL_RX_TIER15_BLOCK2_PRICE_ATTRIBUTE_ID (0x84F1) +#define ZCL_RX_TIER15_BLOCK3_PRICE_ATTRIBUTE_ID (0x84F2) +#define ZCL_RX_TIER15_BLOCK4_PRICE_ATTRIBUTE_ID (0x84F3) +#define ZCL_RX_TIER15_BLOCK5_PRICE_ATTRIBUTE_ID (0x84F4) +#define ZCL_RX_TIER15_BLOCK6_PRICE_ATTRIBUTE_ID (0x84F5) +#define ZCL_RX_TIER15_BLOCK7_PRICE_ATTRIBUTE_ID (0x84F6) +#define ZCL_RX_TIER15_BLOCK8_PRICE_ATTRIBUTE_ID (0x84F7) +#define ZCL_RX_TIER15_BLOCK9_PRICE_ATTRIBUTE_ID (0x84F8) +#define ZCL_RX_TIER15_BLOCK10_PRICE_ATTRIBUTE_ID (0x84F9) +#define ZCL_RX_TIER15_BLOCK11_PRICE_ATTRIBUTE_ID (0x84FA) +#define ZCL_RX_TIER15_BLOCK12_PRICE_ATTRIBUTE_ID (0x84FB) +#define ZCL_RX_TIER15_BLOCK13_PRICE_ATTRIBUTE_ID (0x84FC) +#define ZCL_RX_TIER15_BLOCK14_PRICE_ATTRIBUTE_ID (0x84FD) +#define ZCL_RX_TIER15_BLOCK15_PRICE_ATTRIBUTE_ID (0x84FE) +#define ZCL_RX_TIER15_BLOCK16_PRICE_ATTRIBUTE_ID (0x84FF) +#define ZCL_RX_PRICE_TIER16_ATTRIBUTE_ID (0x850F) +#define ZCL_RX_PRICE_TIER17_ATTRIBUTE_ID (0x8510) +#define ZCL_RX_PRICE_TIER18_ATTRIBUTE_ID (0x8511) +#define ZCL_RX_PRICE_TIER19_ATTRIBUTE_ID (0x8512) +#define ZCL_RX_PRICE_TIER20_ATTRIBUTE_ID (0x8513) +#define ZCL_RX_PRICE_TIER21_ATTRIBUTE_ID (0x8514) +#define ZCL_RX_PRICE_TIER22_ATTRIBUTE_ID (0x8515) +#define ZCL_RX_PRICE_TIER23_ATTRIBUTE_ID (0x8516) +#define ZCL_RX_PRICE_TIER24_ATTRIBUTE_ID (0x8517) +#define ZCL_RX_PRICE_TIER25_ATTRIBUTE_ID (0x8518) +#define ZCL_RX_PRICE_TIER26_ATTRIBUTE_ID (0x8519) +#define ZCL_RX_PRICE_TIER27_ATTRIBUTE_ID (0x851A) +#define ZCL_RX_PRICE_TIER28_ATTRIBUTE_ID (0x851B) +#define ZCL_RX_PRICE_TIER29_ATTRIBUTE_ID (0x851C) +#define ZCL_RX_PRICE_TIER30_ATTRIBUTE_ID (0x851D) +#define ZCL_RX_PRICE_TIER31_ATTRIBUTE_ID (0x851E) +#define ZCL_RX_PRICE_TIER32_ATTRIBUTE_ID (0x851F) +#define ZCL_RX_PRICE_TIER33_ATTRIBUTE_ID (0x8520) +#define ZCL_RX_PRICE_TIER34_ATTRIBUTE_ID (0x8521) +#define ZCL_RX_PRICE_TIER35_ATTRIBUTE_ID (0x8522) +#define ZCL_RX_PRICE_TIER36_ATTRIBUTE_ID (0x8523) +#define ZCL_RX_PRICE_TIER37_ATTRIBUTE_ID (0x8524) +#define ZCL_RX_PRICE_TIER38_ATTRIBUTE_ID (0x8525) +#define ZCL_RX_PRICE_TIER39_ATTRIBUTE_ID (0x8526) +#define ZCL_RX_PRICE_TIER40_ATTRIBUTE_ID (0x8527) +#define ZCL_RX_PRICE_TIER41_ATTRIBUTE_ID (0x8528) +#define ZCL_RX_PRICE_TIER42_ATTRIBUTE_ID (0x8529) +#define ZCL_RX_PRICE_TIER43_ATTRIBUTE_ID (0x852A) +#define ZCL_RX_PRICE_TIER44_ATTRIBUTE_ID (0x852B) +#define ZCL_RX_PRICE_TIER45_ATTRIBUTE_ID (0x852C) +#define ZCL_RX_PRICE_TIER46_ATTRIBUTE_ID (0x852D) +#define ZCL_RX_PRICE_TIER47_ATTRIBUTE_ID (0x852E) +#define ZCL_RX_PRICE_TIER48_ATTRIBUTE_ID (0x852F) +#define ZCL_RX_TARIFF_LABEL_ATTRIBUTE_ID (0x8610) +#define ZCL_RX_NUMBER_OF_PRICE_TIERS_IN_USE_ATTRIBUTE_ID (0x8611) +#define ZCL_RX_NUMBER_OF_BLOCK_THRESHOLDS_IN_USE_ATTRIBUTE_ID (0x8612) +#define ZCL_RX_TIER_BLOCK_MODE_ATTRIBUTE_ID (0x8613) +#define ZCL_RX_TARIFF_RESOLUTION_PERIOD_ATTRIBUTE_ID (0x8615) +#define ZCL_RX_CO2_ATTRIBUTE_ID (0x8625) +#define ZCL_RX_CO2_UNIT_ATTRIBUTE_ID (0x8626) +#define ZCL_RX_CO2_TRAILING_DIGIT_ATTRIBUTE_ID (0x8627) +#define ZCL_RX_CURRENT_BILLING_PERIOD_START_ATTRIBUTE_ID (0x8700) +#define ZCL_RX_CURRENT_BILLING_PERIOD_DURATION_ATTRIBUTE_ID (0x8701) +#define ZCL_RX_LAST_BILLING_PERIOD_START_ATTRIBUTE_ID (0x8702) +#define ZCL_RX_LAST_BILLING_PERIOD_DURATION_ATTRIBUTE_ID (0x8703) +#define ZCL_RX_LAST_BILLING_PERIOD_CONSOLIDATED_BILL_ATTRIBUTE_ID (0x8704) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Demand Response and Load Control // Client attributes -#define ZCL_UTILITY_ENROLLMENT_GROUP_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_START_RANDOMIZATION_MINUTES_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_DURATION_RANDOMIZATION_MINUTES_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_DEVICE_CLASS_VALUE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_DEMAND_RESPONSE_LOAD_CONTROL_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_DEMAND_RESPONSE_LOAD_CONTROL_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_UTILITY_ENROLLMENT_GROUP_ATTRIBUTE_ID (0x0000) +#define ZCL_START_RANDOMIZATION_MINUTES_ATTRIBUTE_ID (0x0001) +#define ZCL_DURATION_RANDOMIZATION_MINUTES_ATTRIBUTE_ID (0x0002) +#define ZCL_DEVICE_CLASS_VALUE_ATTRIBUTE_ID (0x0003) +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_DEMAND_RESPONSE_LOAD_CONTROL_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_DEMAND_RESPONSE_LOAD_CONTROL_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) -// Attribute types for cluster: Simple Metering -// Cluster specification level: se-1.2b-15-0131-02 +// Attribute ids for cluster: Simple Metering // Client attributes -#define ZCL_FUNCTIONAL_NOTIFICATION_FLAGS_ATTRIBUTE_ID 0x0000 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_NOTIFICATION_FLAGS_2_ATTRIBUTE_ID 0x0001 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_NOTIFICATION_FLAGS_3_ATTRIBUTE_ID 0x0002 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_NOTIFICATION_FLAGS_4_ATTRIBUTE_ID 0x0003 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_NOTIFICATION_FLAGS_5_ATTRIBUTE_ID 0x0004 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_NOTIFICATION_FLAGS_6_ATTRIBUTE_ID 0x0005 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_NOTIFICATION_FLAGS_7_ATTRIBUTE_ID 0x0006 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_NOTIFICATION_FLAGS_8_ATTRIBUTE_ID 0x0007 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_SIMPLE_METERING_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_SIMPLE_METERING_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_FUNCTIONAL_NOTIFICATION_FLAGS_ATTRIBUTE_ID (0x0000) +#define ZCL_NOTIFICATION_FLAGS_2_ATTRIBUTE_ID (0x0001) +#define ZCL_NOTIFICATION_FLAGS_3_ATTRIBUTE_ID (0x0002) +#define ZCL_NOTIFICATION_FLAGS_4_ATTRIBUTE_ID (0x0003) +#define ZCL_NOTIFICATION_FLAGS_5_ATTRIBUTE_ID (0x0004) +#define ZCL_NOTIFICATION_FLAGS_6_ATTRIBUTE_ID (0x0005) +#define ZCL_NOTIFICATION_FLAGS_7_ATTRIBUTE_ID (0x0006) +#define ZCL_NOTIFICATION_FLAGS_8_ATTRIBUTE_ID (0x0007) +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_CURRENT_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_CURRENT_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_CURRENT_MAX_DEMAND_DELIVERED_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_CURRENT_MAX_DEMAND_RECEIVED_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_DFT_SUMMATION_ATTRIBUTE_ID 0x0004 // Ver.: always -#define ZCL_DAILY_FREEZE_TIME_ATTRIBUTE_ID 0x0005 // Ver.: always -#define ZCL_POWER_FACTOR_ATTRIBUTE_ID 0x0006 // Ver.: always -#define ZCL_READING_SNAP_SHOT_TIME_ATTRIBUTE_ID 0x0007 // Ver.: always -#define ZCL_CURRENT_MAX_DEMAND_DELIVERED_TIME_ATTRIBUTE_ID 0x0008 // Ver.: always -#define ZCL_CURRENT_MAX_DEMAND_RECEIVED_TIME_ATTRIBUTE_ID 0x0009 // Ver.: always -#define ZCL_DEFAULT_UPDATE_PERIOD_ATTRIBUTE_ID 0x000A // Ver.: since se-1.1-07-5356-16 -#define ZCL_FAST_POLL_UPDATE_PERIOD_ATTRIBUTE_ID 0x000B // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_BLOCK_PERIOD_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x000C // Ver.: since se-1.1-07-5356-16 -#define ZCL_DAILY_CONSUMPTION_TARGET_ATTRIBUTE_ID 0x000D // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_BLOCK_ATTRIBUTE_ID 0x000E // Ver.: since se-1.1-07-5356-16 -#define ZCL_PROFILE_INTERVAL_PERIOD_ATTRIBUTE_ID 0x000F // Ver.: since se-1.1-07-5356-16 -#define ZCL_INTERVAL_READ_REPORTING_PERIOD_ATTRIBUTE_ID 0x0010 // Ver.: since se-1.1-07-5356-16 -#define ZCL_PRESET_READING_TIME_ATTRIBUTE_ID 0x0011 // Ver.: since se-1.1-07-5356-16 -#define ZCL_VOLUME_PER_REPORT_ATTRIBUTE_ID 0x0012 // Ver.: since se-1.1-07-5356-16 -#define ZCL_FLOW_RESTRICTION_ATTRIBUTE_ID 0x0013 // Ver.: since se-1.1-07-5356-16 -#define ZCL_SUPPLY_STATUS_ATTRIBUTE_ID 0x0014 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_INLET_ENERGY_CARRIER_SUMMATION_ATTRIBUTE_ID 0x0015 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_OUTLET_ENERGY_CARRIER_SUMMATION_ATTRIBUTE_ID 0x0016 // Ver.: since se-1.1-07-5356-16 -#define ZCL_INLET_TEMPERATURE_ATTRIBUTE_ID 0x0017 // Ver.: since se-1.1-07-5356-16 -#define ZCL_OUTLET_TEMPERATURE_ATTRIBUTE_ID 0x0018 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CONTROL_TEMPERATURE_ATTRIBUTE_ID 0x0019 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_INLET_ENERGY_CARRIER_DEMAND_ATTRIBUTE_ID 0x001A // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_OUTLET_ENERGY_CARRIER_DEMAND_ATTRIBUTE_ID 0x001B // Ver.: since se-1.1-07-5356-16 -#define ZCL_PREVIOUS_BLOCK_PERIOD_CONSUMIPTION_DELIVERED_ATTRIBUTE_ID 0x001C // Ver.: since se-1.1b-07-5356-18 -#define ZCL_CURRENT_BLOCK_PERIOD_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x001D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_BLOCK_RECEIVED_ATTRIBUTE_ID 0x001E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_DFT_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x001F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_ACTIVE_REGISTER_TIER_DELIVERED_ATTRIBUTE_ID 0x0020 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_ACTIVE_REGISTER_TIER_RECEIVED_ATTRIBUTE_ID 0x0021 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_LAST_BLOCK_SWITCH_TIME_ATTRIBUTE_ID 0x0022 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER1_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0100 // Ver.: always -#define ZCL_CURRENT_TIER1_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0101 // Ver.: always -#define ZCL_CURRENT_TIER2_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0102 // Ver.: always -#define ZCL_CURRENT_TIER2_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0103 // Ver.: always -#define ZCL_CURRENT_TIER3_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0104 // Ver.: always -#define ZCL_CURRENT_TIER3_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0105 // Ver.: always -#define ZCL_CURRENT_TIER4_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0106 // Ver.: always -#define ZCL_CURRENT_TIER4_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0107 // Ver.: always -#define ZCL_CURRENT_TIER5_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0108 // Ver.: always -#define ZCL_CURRENT_TIER5_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0109 // Ver.: always -#define ZCL_CURRENT_TIER6_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x010A // Ver.: always -#define ZCL_CURRENT_TIER6_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x010B // Ver.: always -#define ZCL_CURRENT_TIER7_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x010C // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER7_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x010D // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER8_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x010E // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER8_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x010F // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER9_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0110 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER9_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0111 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER10_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0112 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER10_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0113 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER11_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0114 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER11_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0115 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER12_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0116 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER12_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0117 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER13_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0118 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER13_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0119 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER14_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x011A // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER14_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x011B // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER15_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x011C // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER15_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x011D // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER16_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x011E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER16_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x011F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER17_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0120 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER17_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0121 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER18_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0122 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER18_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0123 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER19_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0124 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER19_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0125 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER20_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0126 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER20_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0127 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER21_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0128 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER21_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0129 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER22_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x012A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER22_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x012B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER23_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x012C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER23_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x012D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER24_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x012E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER24_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x012F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER25_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0130 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER25_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0131 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER26_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0132 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER26_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0133 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER27_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0134 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER27_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0135 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER28_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0136 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER28_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0137 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER29_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0138 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER29_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0139 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER30_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x013A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER30_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x013B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER31_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x013C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER31_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x013D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER32_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x013E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER32_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x013F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER33_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0140 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER33_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0141 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER34_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0142 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER34_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0143 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER35_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0144 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER35_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0145 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER36_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0146 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER36_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0147 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER37_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0148 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER37_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0149 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER38_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x014A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER38_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x014B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER39_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x014C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER39_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x014D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER40_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x014E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER40_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x014F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER41_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0150 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER41_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0151 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER42_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0152 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER42_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0153 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER43_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0154 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER43_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0155 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER44_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0156 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER44_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0157 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER45_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0158 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER45_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0159 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER46_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x015A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER46_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x015B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER47_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x015C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER47_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x015D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER48_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x015E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER48_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x015F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CPP1_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x01FC // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CPP2_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x01FE // Ver.: since se-1.2a-07-5356-19 -#define ZCL_STATUS_ATTRIBUTE_ID 0x0200 // Ver.: always -#define ZCL_REMAINING_BATTERY_LIFE_ATTRIBUTE_ID 0x0201 // Ver.: since se-1.1-07-5356-16 -#define ZCL_HOURS_IN_OPERATION_ATTRIBUTE_ID 0x0202 // Ver.: since se-1.1-07-5356-16 -#define ZCL_HOURS_IN_FAULT_ATTRIBUTE_ID 0x0203 // Ver.: since se-1.1-07-5356-16 -#define ZCL_EXTENDED_STATUS_ATTRIBUTE_ID 0x0204 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_REMAINING_BATTERY_LIFE_IN_DAYS_ATTRIBUTE_ID 0x0205 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_METER_ID_ATTRIBUTE_ID 0x0206 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_AMBIENT_CONSUMPTION_INDICATOR_ATTRIBUTE_ID 0x0207 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_UNIT_OF_MEASURE_ATTRIBUTE_ID 0x0300 // Ver.: always -#define ZCL_MULTIPLIER_ATTRIBUTE_ID 0x0301 // Ver.: always -#define ZCL_DIVISOR_ATTRIBUTE_ID 0x0302 // Ver.: always -#define ZCL_SUMMATION_FORMATTING_ATTRIBUTE_ID 0x0303 // Ver.: always -#define ZCL_DEMAND_FORMATTING_ATTRIBUTE_ID 0x0304 // Ver.: always -#define ZCL_HISTORICAL_CONSUMPTION_FORMATTING_ATTRIBUTE_ID 0x0305 // Ver.: always -#define ZCL_METERING_DEVICE_TYPE_ATTRIBUTE_ID 0x0306 // Ver.: always -#define ZCL_SITE_ID_ATTRIBUTE_ID 0x0307 // Ver.: since se-1.1-07-5356-16 -#define ZCL_METER_SERIAL_NUMBER_ATTRIBUTE_ID 0x0308 // Ver.: since se-1.1-07-5356-16 -#define ZCL_ENERGY_CARRIER_UNIT_OF_MEASURE_ATTRIBUTE_ID 0x0309 // Ver.: since se-1.1-07-5356-16 -#define ZCL_ENERGY_CARRIER_SUMMATION_FORMATTING_ATTRIBUTE_ID 0x030A // Ver.: since se-1.1-07-5356-16 -#define ZCL_ENERGY_CARRIER_DEMAND_FORMATTING_ATTRIBUTE_ID 0x030B // Ver.: since se-1.1-07-5356-16 -#define ZCL_TEMPERATURE_UNIT_OF_MEASURE_ATTRIBUTE_ID 0x030C // Ver.: since se-1.1-07-5356-16 -#define ZCL_TEMPERATURE_FORMATTING_ATTRIBUTE_ID 0x030D // Ver.: since se-1.1-07-5356-16 -#define ZCL_MODULE_SERIAL_NUMBER_ATTRIBUTE_ID 0x030E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_OPERATING_TARIFF_LABEL_DELIVERED_ATTRIBUTE_ID 0x030F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_OPERATING_TARIFF_LABEL_RECEIVED_ATTRIBUTE_ID 0x0310 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CUSTOMER_ID_NUMBER_ATTRIBUTE_ID 0x0311 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_ALTERNATIVE_UNIT_OF_MEASURE_ATTRIBUTE_ID 0x0312 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_ALTERNATIVE_DEMAND_FORMATTING_ATTRIBUTE_ID 0x0313 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_ALTERNATIVE_CONSUMPTION_FORMATTING_ATTRIBUTE_ID 0x0314 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_INSTANTANEOUS_DEMAND_ATTRIBUTE_ID 0x0400 // Ver.: always -#define ZCL_CURRENT_DAY_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0401 // Ver.: always -#define ZCL_CURRENT_DAY_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0402 // Ver.: always -#define ZCL_PREVIOUS_DAY_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0403 // Ver.: always -#define ZCL_PREVIOUS_DAY_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0404 // Ver.: always -#define ZCL_CURRENT_PARTIAL_PROFILE_INTERVAL_START_TIME_DELIVERED_ATTRIBUTE_ID 0x0405 // Ver.: always -#define ZCL_CURRENT_PARTIAL_PROFILE_INTERVAL_START_TIME_RECEIVED_ATTRIBUTE_ID 0x0406 // Ver.: always -#define ZCL_CURRENT_PARTIAL_PROFILE_INTERVAL_VALUE_DELIVERED_ATTRIBUTE_ID 0x0407 // Ver.: always -#define ZCL_CURRENT_PARTIAL_PROFILE_INTERVAL_VALUE_RECEIVED_ATTRIBUTE_ID 0x0408 // Ver.: always -#define ZCL_CURRENT_DAY_MAX_PRESSURE_ATTRIBUTE_ID 0x0409 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_DAY_MIN_PRESSURE_ATTRIBUTE_ID 0x040A // Ver.: since se-1.1-07-5356-16 -#define ZCL_PREVIOUS_DAY_MAX_PRESSURE_ATTRIBUTE_ID 0x040B // Ver.: since se-1.1-07-5356-16 -#define ZCL_PREVIOUS_DAY_MIN_PRESSURE_ATTRIBUTE_ID 0x040C // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_DAY_MAX_DEMAND_ATTRIBUTE_ID 0x040D // Ver.: since se-1.1-07-5356-16 -#define ZCL_PREVIOUS_DAY_MAX_DEMAND_ATTRIBUTE_ID 0x040E // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_MONTH_MAX_DEMAND_ATTRIBUTE_ID 0x040F // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_YEAR_MAX_DEMAND_ATTRIBUTE_ID 0x0410 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_DAY_MAX_ENERGY_CARRIER_DEMAND_ATTRIBUTE_ID 0x0411 // Ver.: since se-1.1-07-5356-16 -#define ZCL_PREVIOUS_DAY_MAX_ENERGY_CARRIER_DEMAND_ATTRIBUTE_ID 0x0412 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_MONTH_MAX_ENERGY_CARRIER_DEMAND_ATTRIBUTE_ID 0x0413 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_MONTH_MIN_ENERGY_CARRIER_DEMAND_ATTRIBUTE_ID 0x0414 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_YEAR_MAX_ENERGY_CARRIER_DEMAND_ATTRIBUTE_ID 0x0415 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_YEAR_MIN_ENERGY_CARRIER_DEMAND_ATTRIBUTE_ID 0x0416 // Ver.: since se-1.1-07-5356-16 -#define ZCL_PREVIOUS_DAY2_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0420 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY2_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0421 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY3_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0422 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY3_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0423 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY4_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0424 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY4_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0425 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY5_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0426 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY5_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0427 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY6_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0428 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY6_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0429 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY7_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x042A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY7_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x042B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY8_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x042C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY8_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x042D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_WEEK_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0430 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_WEEK_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0431 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_WEEK_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0432 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_WEEK_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0433 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_WEEK2_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0434 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_WEEK2_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0435 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_WEEK3_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0436 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_WEEK3_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0437 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_WEEK4_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0438 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_WEEK4_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0439 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_WEEK5_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x043A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_WEEK5_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x043B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_MONTH_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0440 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_MONTH_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0441 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0442 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0443 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH2_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0444 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH2_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0445 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH3_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0446 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH3_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0447 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH4_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0448 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH4_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0449 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH5_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x044A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH5_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x044B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH6_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x044C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH6_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x044D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH7_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x044E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH7_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x044F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH8_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0450 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH8_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0451 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH9_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0452 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH9_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0453 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH10_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0454 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH10_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0455 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH11_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0456 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH11_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0457 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH12_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0458 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH12_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0459 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH13_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x045A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH13_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x045B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_METERING_HISTORICAL_FREEZE_TIME_ATTRIBUTE_ID 0x045C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_DAY_MAX_DEMAND_DELIVERED_ATTRIBUTE_ID 0x045D // Ver.: since se-1.4-17-05019-001 -#define ZCL_CURRENT_DAY_MAX_DEMAND_DELIVERED_TIME_ATTRIBUTE_ID 0x045E // Ver.: since se-1.4-17-05019-001 -#define ZCL_CURRENT_DAY_MAX_DEMAND_RECEIVED_ATTRIBUTE_ID 0x045F // Ver.: since se-1.4-17-05019-001 -#define ZCL_CURRENT_DAY_MAX_DEMAND_RECEIVED_TIME_ATTRIBUTE_ID 0x0460 // Ver.: since se-1.4-17-05019-001 -#define ZCL_PREVIOUS_DAY_MAX_DEMAND_DELIVERED_ATTRIBUTE_ID 0x0461 // Ver.: since se-1.4-17-05019-001 -#define ZCL_PREVIOUS_DAY_MAX_DEMAND_DELIVERED_TIME_ATTRIBUTE_ID 0x0462 // Ver.: since se-1.4-17-05019-001 -#define ZCL_PREVIOUS_DAY_MAX_DEMAND_RECEIVED_ATTRIBUTE_ID 0x0463 // Ver.: since se-1.4-17-05019-001 -#define ZCL_PREVIOUS_DAY_MAX_DEMAND_RECEIVED_TIME_ATTRIBUTE_ID 0x0464 // Ver.: since se-1.4-17-05019-001 -#define ZCL_MAX_NUMBER_OF_PERIODS_DELIVERED_ATTRIBUTE_ID 0x0500 // Ver.: always -#define ZCL_CURRENT_DEMAND_DELIVERED_ATTRIBUTE_ID 0x0600 // Ver.: always -#define ZCL_DEMAND_LIMIT_ATTRIBUTE_ID 0x0601 // Ver.: always -#define ZCL_DEMAND_INTEGRATION_PERIOD_ATTRIBUTE_ID 0x0602 // Ver.: always -#define ZCL_NUMBER_OF_DEMAND_SUBINTERVALS_ATTRIBUTE_ID 0x0603 // Ver.: always -#define ZCL_DEMAND_LIMIT_ARM_DURATION_IN_MINUTES_ATTRIBUTE_ID 0x0604 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_LOAD_LIMIT_SUPPLY_STATE_ATTRIBUTE_ID 0x0605 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_LOAD_LIMIT_COUNTER_ATTRIBUTE_ID 0x0606 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_SUPPLY_TAMPER_STATE_ATTRIBUTE_ID 0x0607 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_SUPPLY_DEPLETION_STATE_ATTRIBUTE_ID 0x0608 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_SUPPLY_UNCONTROLLED_FLOW_STATE_ATTRIBUTE_ID 0x0609 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_NO_TIER_BLOCK1_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0700 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_NO_TIER_BLOCK2_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0701 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_NO_TIER_BLOCK3_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0702 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_NO_TIER_BLOCK4_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0703 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_NO_TIER_BLOCK5_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0704 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_NO_TIER_BLOCK6_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0705 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_NO_TIER_BLOCK7_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0706 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_NO_TIER_BLOCK8_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0707 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_NO_TIER_BLOCK9_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0708 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_NO_TIER_BLOCK10_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0709 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_NO_TIER_BLOCK11_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x070A // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_NO_TIER_BLOCK12_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x070B // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_NO_TIER_BLOCK13_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x070C // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_NO_TIER_BLOCK14_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x070D // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_NO_TIER_BLOCK15_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x070E // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_NO_TIER_BLOCK16_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x070F // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER1_BLOCK1_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0710 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER1_BLOCK2_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0711 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER1_BLOCK3_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0712 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER1_BLOCK4_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0713 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER1_BLOCK5_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0714 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER1_BLOCK6_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0715 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER1_BLOCK7_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0716 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER1_BLOCK8_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0717 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER1_BLOCK9_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0718 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER1_BLOCK10_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0719 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER1_BLOCK11_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x071A // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER1_BLOCK12_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x071B // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER1_BLOCK13_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x071C // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER1_BLOCK14_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x071D // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER1_BLOCK15_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x071E // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER1_BLOCK16_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x071F // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER2_BLOCK1_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0720 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER2_BLOCK2_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0721 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER2_BLOCK3_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0722 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER2_BLOCK4_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0723 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER2_BLOCK5_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0724 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER2_BLOCK6_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0725 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER2_BLOCK7_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0726 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER2_BLOCK8_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0727 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER2_BLOCK9_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0728 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER2_BLOCK10_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0729 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER2_BLOCK11_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x072A // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER2_BLOCK12_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x072B // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER2_BLOCK13_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x072C // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER2_BLOCK14_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x072D // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER2_BLOCK15_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x072E // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER2_BLOCK16_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x072F // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER3_BLOCK1_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0730 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER3_BLOCK2_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0731 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER3_BLOCK3_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0732 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER3_BLOCK4_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0733 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER3_BLOCK5_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0734 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER3_BLOCK6_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0735 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER3_BLOCK7_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0736 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER3_BLOCK8_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0737 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER3_BLOCK9_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0738 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER3_BLOCK10_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0739 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER3_BLOCK11_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x073A // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER3_BLOCK12_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x073B // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER3_BLOCK13_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x073C // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER3_BLOCK14_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x073D // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER3_BLOCK15_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x073E // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER3_BLOCK16_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x073F // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER4_BLOCK1_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0740 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER4_BLOCK2_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0741 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER4_BLOCK3_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0742 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER4_BLOCK4_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0743 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER4_BLOCK5_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0744 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER4_BLOCK6_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0745 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER4_BLOCK7_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0746 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER4_BLOCK8_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0747 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER4_BLOCK9_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0748 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER4_BLOCK10_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0749 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER4_BLOCK11_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x074A // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER4_BLOCK12_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x074B // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER4_BLOCK13_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x074C // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER4_BLOCK14_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x074D // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER4_BLOCK15_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x074E // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER4_BLOCK16_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x074F // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER5_BLOCK1_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0750 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER5_BLOCK2_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0751 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER5_BLOCK3_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0752 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER5_BLOCK4_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0753 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER5_BLOCK5_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0754 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER5_BLOCK6_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0755 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER5_BLOCK7_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0756 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER5_BLOCK8_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0757 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER5_BLOCK9_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0758 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER5_BLOCK10_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0759 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER5_BLOCK11_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x075A // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER5_BLOCK12_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x075B // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER5_BLOCK13_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x075C // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER5_BLOCK14_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x075D // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER5_BLOCK15_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x075E // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER5_BLOCK16_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x075F // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER6_BLOCK1_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0760 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER6_BLOCK2_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0761 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER6_BLOCK3_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0762 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER6_BLOCK4_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0763 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER6_BLOCK5_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0764 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER6_BLOCK6_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0765 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER6_BLOCK7_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0766 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER6_BLOCK8_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0767 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER6_BLOCK9_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0768 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER6_BLOCK10_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0769 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER6_BLOCK11_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x076A // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER6_BLOCK12_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x076B // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER6_BLOCK13_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x076C // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER6_BLOCK14_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x076D // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER6_BLOCK15_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x076E // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER6_BLOCK16_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x076F // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER7_BLOCK1_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0770 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER7_BLOCK2_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0771 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER7_BLOCK3_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0772 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER7_BLOCK4_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0773 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER7_BLOCK5_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0774 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER7_BLOCK6_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0775 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER7_BLOCK7_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0776 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER7_BLOCK8_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0777 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER7_BLOCK9_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0778 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER7_BLOCK10_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0779 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER7_BLOCK11_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x077A // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER7_BLOCK12_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x077B // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER7_BLOCK13_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x077C // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER7_BLOCK14_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x077D // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER7_BLOCK15_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x077E // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER7_BLOCK16_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x077F // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER8_BLOCK1_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0780 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER8_BLOCK2_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0781 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER8_BLOCK3_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0782 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER8_BLOCK4_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0783 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER8_BLOCK5_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0784 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER8_BLOCK6_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0785 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER8_BLOCK7_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0786 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER8_BLOCK8_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0787 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER8_BLOCK9_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0788 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER8_BLOCK10_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0789 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER8_BLOCK11_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x078A // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER8_BLOCK12_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x078B // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER8_BLOCK13_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x078C // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER8_BLOCK14_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x078D // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER8_BLOCK15_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x078E // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER8_BLOCK16_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x078F // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER9_BLOCK1_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0790 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER9_BLOCK2_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0791 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER9_BLOCK3_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0792 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER9_BLOCK4_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0793 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER9_BLOCK5_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0794 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER9_BLOCK6_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0795 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER9_BLOCK7_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0796 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER9_BLOCK8_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0797 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER9_BLOCK9_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0798 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER9_BLOCK10_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0799 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER9_BLOCK11_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x079A // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER9_BLOCK12_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x079B // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER9_BLOCK13_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x079C // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER9_BLOCK14_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x079D // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER9_BLOCK15_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x079E // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER9_BLOCK16_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x079F // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER10_BLOCK1_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07A0 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER10_BLOCK2_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07A1 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER10_BLOCK3_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07A2 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER10_BLOCK4_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07A3 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER10_BLOCK5_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07A4 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER10_BLOCK6_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07A5 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER10_BLOCK7_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07A6 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER10_BLOCK8_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07A7 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER10_BLOCK9_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07A8 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER10_BLOCK10_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07A9 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER10_BLOCK11_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07AA // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER10_BLOCK12_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07AB // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER10_BLOCK13_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07AC // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER10_BLOCK14_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07AD // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER10_BLOCK15_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07AE // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER10_BLOCK16_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07AF // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER11_BLOCK1_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07B0 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER11_BLOCK2_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07B1 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER11_BLOCK3_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07B2 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER11_BLOCK4_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07B3 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER11_BLOCK5_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07B4 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER11_BLOCK6_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07B5 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER11_BLOCK7_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07B6 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER11_BLOCK8_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07B7 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER11_BLOCK9_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07B8 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER11_BLOCK10_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07B9 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER11_BLOCK11_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07BA // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER11_BLOCK12_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07BB // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER11_BLOCK13_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07BC // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER11_BLOCK14_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07BD // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER11_BLOCK15_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07BE // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER11_BLOCK16_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07BF // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER12_BLOCK1_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07C0 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER12_BLOCK2_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07C1 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER12_BLOCK3_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07C2 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER12_BLOCK4_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07C3 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER12_BLOCK5_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07C4 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER12_BLOCK6_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07C5 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER12_BLOCK7_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07C6 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER12_BLOCK8_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07C7 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER12_BLOCK9_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07C8 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER12_BLOCK10_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07C9 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER12_BLOCK11_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07CA // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER12_BLOCK12_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07CB // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER12_BLOCK13_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07CC // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER12_BLOCK14_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07CD // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER12_BLOCK15_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07CE // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER12_BLOCK16_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07CF // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER13_BLOCK1_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07D0 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER13_BLOCK2_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07D1 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER13_BLOCK3_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07D2 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER13_BLOCK4_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07D3 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER13_BLOCK5_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07D4 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER13_BLOCK6_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07D5 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER13_BLOCK7_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07D6 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER13_BLOCK8_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07D7 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER13_BLOCK9_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07D8 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER13_BLOCK10_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07D9 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER13_BLOCK11_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07DA // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER13_BLOCK12_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07DB // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER13_BLOCK13_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07DC // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER13_BLOCK14_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07DD // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER13_BLOCK15_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07DE // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER13_BLOCK16_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07DF // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER14_BLOCK1_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07E0 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER14_BLOCK2_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07E1 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER14_BLOCK3_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07E2 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER14_BLOCK4_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07E3 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER14_BLOCK5_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07E4 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER14_BLOCK6_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07E5 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER14_BLOCK7_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07E6 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER14_BLOCK8_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07E7 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER14_BLOCK9_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07E8 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER14_BLOCK10_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07E9 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER14_BLOCK11_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07EA // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER14_BLOCK12_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07EB // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER14_BLOCK13_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07EC // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER14_BLOCK14_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07ED // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER14_BLOCK15_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07EE // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER14_BLOCK16_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07EF // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER15_BLOCK1_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07F0 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER15_BLOCK2_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07F1 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER15_BLOCK3_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07F2 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER15_BLOCK4_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07F3 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER15_BLOCK5_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07F4 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER15_BLOCK6_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07F5 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER15_BLOCK7_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07F6 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER15_BLOCK8_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07F7 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER15_BLOCK9_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07F8 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER15_BLOCK10_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07F9 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER15_BLOCK11_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07FA // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER15_BLOCK12_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07FB // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER15_BLOCK13_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07FC // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER15_BLOCK14_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07FD // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER15_BLOCK15_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07FE // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER15_BLOCK16_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07FF // Ver.: since se-1.1-07-5356-16 -#define ZCL_GENERIC_ALARM_MASK_ATTRIBUTE_ID 0x0800 // Ver.: since se-1.1-07-5356-16 -#define ZCL_ELECTRICITY_ALARM_MASK_ATTRIBUTE_ID 0x0801 // Ver.: since se-1.1-07-5356-16 -#define ZCL_GENERIC_FLOW_PRESSURE_ALARM_MASK_ATTRIBUTE_ID 0x0802 // Ver.: since se-1.1-07-5356-16 -#define ZCL_WATER_SPECIFIC_ALARM_MASK_ATTRIBUTE_ID 0x0803 // Ver.: since se-1.1-07-5356-16 -#define ZCL_HEAT_AND_COOLING_SPECIFIC_ALARM_MASK_ATTRIBUTE_ID 0x0804 // Ver.: since se-1.1-07-5356-16 -#define ZCL_GAS_SPECIFIC_ALARM_MASK_ATTRIBUTE_ID 0x0805 // Ver.: since se-1.1-07-5356-16 -#define ZCL_METERING_EXTENDED_GENERIC_ALARM_MASK_ATTRIBUTE_ID 0x0806 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_METERING_MANUFACTURE_ALARM_MASK_ATTRIBUTE_ID 0x0807 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_NO_TIER_BLOCK1_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0900 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_NO_TIER_BLOCK2_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0901 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_NO_TIER_BLOCK3_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0902 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_NO_TIER_BLOCK4_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0903 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_NO_TIER_BLOCK5_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0904 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_NO_TIER_BLOCK6_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0905 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_NO_TIER_BLOCK7_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0906 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_NO_TIER_BLOCK8_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0907 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_NO_TIER_BLOCK9_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0908 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_NO_TIER_BLOCK10_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0909 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_NO_TIER_BLOCK11_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x090A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_NO_TIER_BLOCK12_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x090B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_NO_TIER_BLOCK13_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x090C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_NO_TIER_BLOCK14_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x090D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_NO_TIER_BLOCK15_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x090E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_NO_TIER_BLOCK16_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x090F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER1_BLOCK1_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0910 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER1_BLOCK2_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0911 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER1_BLOCK3_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0912 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER1_BLOCK4_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0913 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER1_BLOCK5_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0914 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER1_BLOCK6_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0915 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER1_BLOCK7_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0916 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER1_BLOCK8_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0917 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER1_BLOCK9_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0918 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER1_BLOCK10_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0919 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER1_BLOCK11_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x091A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER1_BLOCK12_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x091B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER1_BLOCK13_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x091C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER1_BLOCK14_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x091D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER1_BLOCK15_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x091E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER1_BLOCK16_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x091F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER2_BLOCK1_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0920 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER2_BLOCK2_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0921 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER2_BLOCK3_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0922 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER2_BLOCK4_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0923 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER2_BLOCK5_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0924 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER2_BLOCK6_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0925 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER2_BLOCK7_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0926 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER2_BLOCK8_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0927 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER2_BLOCK9_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0928 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER2_BLOCK10_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0929 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER2_BLOCK11_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x092A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER2_BLOCK12_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x092B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER2_BLOCK13_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x092C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER2_BLOCK14_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x092D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER2_BLOCK15_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x092E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER2_BLOCK16_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x092F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER3_BLOCK1_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0930 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER3_BLOCK2_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0931 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER3_BLOCK3_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0932 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER3_BLOCK4_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0933 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER3_BLOCK5_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0934 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER3_BLOCK6_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0935 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER3_BLOCK7_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0936 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER3_BLOCK8_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0937 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER3_BLOCK9_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0938 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER3_BLOCK10_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0939 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER3_BLOCK11_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x093A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER3_BLOCK12_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x093B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER3_BLOCK13_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x093C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER3_BLOCK14_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x093D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER3_BLOCK15_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x093E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER3_BLOCK16_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x093F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER4_BLOCK1_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0940 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER4_BLOCK2_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0941 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER4_BLOCK3_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0942 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER4_BLOCK4_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0943 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER4_BLOCK5_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0944 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER4_BLOCK6_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0945 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER4_BLOCK7_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0946 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER4_BLOCK8_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0947 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER4_BLOCK9_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0948 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER4_BLOCK10_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0949 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER4_BLOCK11_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x094A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER4_BLOCK12_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x094B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER4_BLOCK13_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x094C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER4_BLOCK14_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x094D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER4_BLOCK15_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x094E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER4_BLOCK16_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x094F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER5_BLOCK1_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0950 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER5_BLOCK2_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0951 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER5_BLOCK3_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0952 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER5_BLOCK4_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0953 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER5_BLOCK5_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0954 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER5_BLOCK6_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0955 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER5_BLOCK7_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0956 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER5_BLOCK8_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0957 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER5_BLOCK9_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0958 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER5_BLOCK10_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0959 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER5_BLOCK11_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x095A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER5_BLOCK12_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x095B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER5_BLOCK13_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x095C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER5_BLOCK14_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x095D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER5_BLOCK15_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x095E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER5_BLOCK16_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x095F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER6_BLOCK1_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0960 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER6_BLOCK2_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0961 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER6_BLOCK3_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0962 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER6_BLOCK4_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0963 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER6_BLOCK5_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0964 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER6_BLOCK6_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0965 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER6_BLOCK7_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0966 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER6_BLOCK8_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0967 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER6_BLOCK9_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0968 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER6_BLOCK10_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0969 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER6_BLOCK11_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x096A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER6_BLOCK12_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x096B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER6_BLOCK13_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x096C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER6_BLOCK14_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x096D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER6_BLOCK15_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x096E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER6_BLOCK16_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x096F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER7_BLOCK1_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0970 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER7_BLOCK2_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0971 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER7_BLOCK3_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0972 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER7_BLOCK4_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0973 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER7_BLOCK5_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0974 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER7_BLOCK6_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0975 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER7_BLOCK7_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0976 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER7_BLOCK8_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0977 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER7_BLOCK9_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0978 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER7_BLOCK10_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0979 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER7_BLOCK11_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x097A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER7_BLOCK12_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x097B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER7_BLOCK13_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x097C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER7_BLOCK14_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x097D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER7_BLOCK15_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x097E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER7_BLOCK16_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x097F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER8_BLOCK1_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0980 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER8_BLOCK2_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0981 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER8_BLOCK3_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0982 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER8_BLOCK4_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0983 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER8_BLOCK5_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0984 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER8_BLOCK6_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0985 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER8_BLOCK7_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0986 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER8_BLOCK8_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0987 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER8_BLOCK9_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0988 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER8_BLOCK10_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0989 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER8_BLOCK11_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x098A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER8_BLOCK12_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x098B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER8_BLOCK13_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x098C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER8_BLOCK14_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x098D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER8_BLOCK15_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x098E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER8_BLOCK16_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x098F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER9_BLOCK1_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0990 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER9_BLOCK2_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0991 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER9_BLOCK3_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0992 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER9_BLOCK4_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0993 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER9_BLOCK5_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0994 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER9_BLOCK6_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0995 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER9_BLOCK7_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0996 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER9_BLOCK8_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0997 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER9_BLOCK9_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0998 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER9_BLOCK10_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0999 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER9_BLOCK11_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x099A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER9_BLOCK12_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x099B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER9_BLOCK13_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x099C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER9_BLOCK14_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x099D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER9_BLOCK15_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x099E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER9_BLOCK16_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x099F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER10_BLOCK1_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09A0 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER10_BLOCK2_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09A1 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER10_BLOCK3_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09A2 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER10_BLOCK4_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09A3 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER10_BLOCK5_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09A4 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER10_BLOCK6_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09A5 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER10_BLOCK7_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09A6 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER10_BLOCK8_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09A7 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER10_BLOCK9_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09A8 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER10_BLOCK10_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09A9 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER10_BLOCK11_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09AA // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER10_BLOCK12_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09AB // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER10_BLOCK13_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09AC // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER10_BLOCK14_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09AD // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER10_BLOCK15_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09AE // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER10_BLOCK16_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09AF // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER11_BLOCK1_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09B0 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER11_BLOCK2_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09B1 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER11_BLOCK3_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09B2 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER11_BLOCK4_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09B3 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER11_BLOCK5_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09B4 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER11_BLOCK6_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09B5 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER11_BLOCK7_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09B6 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER11_BLOCK8_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09B7 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER11_BLOCK9_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09B8 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER11_BLOCK10_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09B9 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER11_BLOCK11_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09BA // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER11_BLOCK12_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09BB // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER11_BLOCK13_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09BC // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER11_BLOCK14_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09BD // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER11_BLOCK15_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09BE // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER11_BLOCK16_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09BF // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER12_BLOCK1_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09C0 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER12_BLOCK2_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09C1 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER12_BLOCK3_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09C2 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER12_BLOCK4_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09C3 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER12_BLOCK5_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09C4 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER12_BLOCK6_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09C5 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER12_BLOCK7_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09C6 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER12_BLOCK8_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09C7 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER12_BLOCK9_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09C8 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER12_BLOCK10_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09C9 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER12_BLOCK11_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09CA // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER12_BLOCK12_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09CB // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER12_BLOCK13_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09CC // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER12_BLOCK14_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09CD // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER12_BLOCK15_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09CE // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER12_BLOCK16_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09CF // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER13_BLOCK1_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09D0 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER13_BLOCK2_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09D1 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER13_BLOCK3_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09D2 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER13_BLOCK4_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09D3 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER13_BLOCK5_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09D4 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER13_BLOCK6_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09D5 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER13_BLOCK7_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09D6 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER13_BLOCK8_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09D7 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER13_BLOCK9_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09D8 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER13_BLOCK10_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09D9 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER13_BLOCK11_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09DA // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER13_BLOCK12_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09DB // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER13_BLOCK13_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09DC // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER13_BLOCK14_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09DD // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER13_BLOCK15_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09DE // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER13_BLOCK16_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09DF // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER14_BLOCK1_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09E0 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER14_BLOCK2_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09E1 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER14_BLOCK3_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09E2 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER14_BLOCK4_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09E3 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER14_BLOCK5_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09E4 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER14_BLOCK6_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09E5 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER14_BLOCK7_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09E6 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER14_BLOCK8_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09E7 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER14_BLOCK9_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09E8 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER14_BLOCK10_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09E9 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER14_BLOCK11_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09EA // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER14_BLOCK12_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09EB // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER14_BLOCK13_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09EC // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER14_BLOCK14_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09ED // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER14_BLOCK15_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09EE // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER14_BLOCK16_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09EF // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER15_BLOCK1_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09F0 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER15_BLOCK2_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09F1 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER15_BLOCK3_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09F2 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER15_BLOCK4_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09F3 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER15_BLOCK5_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09F4 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER15_BLOCK6_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09F5 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER15_BLOCK7_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09F6 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER15_BLOCK8_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09F7 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER15_BLOCK9_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09F8 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER15_BLOCK10_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09F9 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER15_BLOCK11_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09FA // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER15_BLOCK12_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09FB // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER15_BLOCK13_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09FC // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER15_BLOCK14_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09FD // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER15_BLOCK15_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09FE // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER15_BLOCK16_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09FF // Ver.: since se-1.2a-07-5356-19 -#define ZCL_BILL_TO_DATE_DELIVERED_ATTRIBUTE_ID 0x0A00 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_BILL_TO_DATE_TIME_STAMP_DELIVERED_ATTRIBUTE_ID 0x0A01 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PROJECTED_BILL_DELIVERED_ATTRIBUTE_ID 0x0A02 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PROJECTED_BILL_TIME_STAMP_DELIVERED_ATTRIBUTE_ID 0x0A03 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_BILL_DELIVERED_TRAILING_DIGIT_ATTRIBUTE_ID 0x0A04 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_BILL_TO_DATE_RECEIVED_ATTRIBUTE_ID 0x0A10 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_BILL_TO_DATE_TIME_STAMP_RECEIVED_ATTRIBUTE_ID 0x0A11 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PROJECTED_BILL_RECEIVED_ATTRIBUTE_ID 0x0A12 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PROJECTED_BILL_TIME_STAMP_RECEIVED_ATTRIBUTE_ID 0x0A13 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_BILL_RECEIVED_TRAILING_DIGIT_ATTRIBUTE_ID 0x0A14 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PROPOSED_CHANGE_SUPPLY_IMPLEMENTATION_TIME_ATTRIBUTE_ID 0x0B00 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PROPOSED_CHANGE_SUPPLY_STATUS_ATTRIBUTE_ID 0x0B01 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_UNCONTROLLED_FLOW_THESHOLD_ATTRIBUTE_ID 0x0B10 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_UNCONTROLLED_FLOW_THESHOLD_UNIT_OF_MEASURE_ATTRIBUTE_ID 0x0B11 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_UNCONTROLLED_FLOW_MULTIPLIER_ATTRIBUTE_ID 0x0B12 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_UNCONTROLLED_FLOW_DIVISOR_ATTRIBUTE_ID 0x0B13 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_FLOW_STABILIZATION_PERIOD_ATTRIBUTE_ID 0x0B14 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_FLOW_MEASUREMENT_PERIOD_ATTRIBUTE_ID 0x0B15 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_ALTERNATIVE_INSTANTANEOUS_DEMAND_ATTRIBUTE_ID 0x0C00 // Ver.: always -#define ZCL_CURRENT_ALTERNATIVE_DAY_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0C01 // Ver.: always -#define ZCL_CURRENT_ALTERNATIVE_DAY_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0C02 // Ver.: always -#define ZCL_PREVIOUS_DAY_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0C03 // Ver.: always -#define ZCL_PREVIOUS_DAY_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0C04 // Ver.: always -#define ZCL_CURRENT_ALTERNATIVE_PARTIAL_PROFILE_INTERVAL_START_TIME_DELIVERED_ATTRIBUTE_ID 0x0C05 // Ver.: always -#define ZCL_CURRENT_ALTERNATIVE_PARTIAL_PROFILE_INTERVAL_START_TIME_RECEIVED_ATTRIBUTE_ID 0x0C06 // Ver.: always -#define ZCL_CURRENT_ALTERNATIVE_PARTIAL_PROFILE_INTERVAL_VALUE_DELIVERED_ATTRIBUTE_ID 0x0C07 // Ver.: always -#define ZCL_CURRENT_ALTERNATIVE_PARTIAL_PROFILE_INTERVAL_VALUE_RECEIVED_ATTRIBUTE_ID 0x0C08 // Ver.: always -#define ZCL_CURRENT_ALTERNATIVE_DAY_MAX_PRESSURE_ATTRIBUTE_ID 0x0C09 // Ver.: always -#define ZCL_CURRENT_ALTERNATIVE_DAY_MIN_PRESSURE_ATTRIBUTE_ID 0x0C0A // Ver.: always -#define ZCL_PREVIOUS_DAY_ALTERNATIVE_MAX_PRESSURE_ATTRIBUTE_ID 0x0C0B // Ver.: always -#define ZCL_PREVIOUS_DAY_ALTERNATIVE_MIN_PRESSURE_ATTRIBUTE_ID 0x0C0C // Ver.: always -#define ZCL_CURRENT_ALTERNATIVE_DAY_ALTERNATIVE_MAX_DEMAND_ATTRIBUTE_ID 0x0C0D // Ver.: always -#define ZCL_PREVIOUS_DAY_ALTERNATIVE_MAX_DEMAND_ATTRIBUTE_ID 0x0C0E // Ver.: always -#define ZCL_CURRENT_ALTERNATIVE_MONTH_MAX_DEMAND_ATTRIBUTE_ID 0x0C0F // Ver.: always -#define ZCL_CURRENT_ALTERNATIVE_YEAR_MAX_DEMAND_ATTRIBUTE_ID 0x0C10 // Ver.: always -#define ZCL_PREVIOUS_DAY2_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0C20 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY2_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0C21 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY3_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0C22 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY3_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0C23 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY4_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0C24 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY4_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0C25 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY5_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0C26 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY5_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0C27 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY6_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0C28 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY6_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0C29 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY7_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0C2A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY7_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0C2B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY8_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0C2C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY8_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0C2D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_WEEK_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0C30 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_WEEK_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0C31 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_WEEK_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0C32 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_WEEK_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0C33 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_WEEK2_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0C34 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_WEEK2_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0C35 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_WEEK3_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0C36 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_WEEK3_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0C37 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_WEEK4_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0C38 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_WEEK4_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0C39 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_WEEK5_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0C3A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_WEEK5_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0C3B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_MONTH_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0C40 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_MONTH_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0C41 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0C42 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0C43 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH2_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0C44 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH2_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0C45 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH3_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0C46 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH3_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0C47 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH4_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0C48 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH4_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0C49 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH5_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0C4A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH5_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0C4B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH6_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0C4C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH6_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0C4D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH7_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0C4E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH7_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0C4F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH8_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0C50 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH8_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0C51 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH9_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0C52 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH9_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0C53 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH10_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0C54 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH10_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0C55 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH11_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0C56 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH11_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0C57 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH12_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0C58 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH12_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0C59 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH13_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0C5A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH13_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0C5B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_DAY_ALTERNATIVE_MAX_DEMAND_DELIVERED_ATTRIBUTE_ID 0x0C5C // Ver.: since se-1.4-17-05019-001 -#define ZCL_CURRENT_DAY_ALTERNATIVE_MAX_DEMAND_DELIVERED_TIME_ATTRIBUTE_ID 0x0C5D // Ver.: since se-1.4-17-05019-001 -#define ZCL_CURRENT_DAY_ALTERNATIVE_MAX_DEMAND_RECEIVED_ATTRIBUTE_ID 0x0C5E // Ver.: since se-1.4-17-05019-001 -#define ZCL_CURRENT_DAY_ALTERNATIVE_MAX_DEMAND_RECEIVED_TIME_ATTRIBUTE_ID 0x0C5F // Ver.: since se-1.4-17-05019-001 -#define ZCL_PREVIOUS_DAY_ALTERNATIVE_MAX_DEMAND_DELIVERED_ATTRIBUTE_ID 0x0C60 // Ver.: since se-1.4-17-05019-001 -#define ZCL_PREVIOUS_DAY_ALTERNATIVE_MAX_DEMAND_DELIVERED_TIME_ATTRIBUTE_ID 0x0C61 // Ver.: since se-1.4-17-05019-001 -#define ZCL_PREVIOUS_DAY_ALTERNATIVE_MAX_DEMAND_RECEIVED_ATTRIBUTE_ID 0x0C62 // Ver.: since se-1.4-17-05019-001 -#define ZCL_PREVIOUS_DAY_ALTERNATIVE_MAX_DEMAND_RECEIVED_TIME_ATTRIBUTE_ID 0x0C63 // Ver.: since se-1.4-17-05019-001 -#define ZCL_CURRENT_ACTIVE_SUMMATION_Q1_ATTRIBUTE_ID 0x0D01 // Ver.: since se-1.4-17-05019-001 -#define ZCL_CURRENT_ACTIVE_SUMMATION_Q2_ATTRIBUTE_ID 0x0D02 // Ver.: since se-1.4-17-05019-001 -#define ZCL_CURRENT_ACTIVE_SUMMATION_Q3_ATTRIBUTE_ID 0x0D03 // Ver.: since se-1.4-17-05019-001 -#define ZCL_CURRENT_ACTIVE_SUMMATION_Q4_ATTRIBUTE_ID 0x0D04 // Ver.: since se-1.4-17-05019-001 -#define ZCL_CURRENT_REACTIVE_SUMMATION_Q1_ATTRIBUTE_ID 0x0D05 // Ver.: since se-1.4-17-05019-001 -#define ZCL_CURRENT_REACTIVE_SUMMATION_Q2_ATTRIBUTE_ID 0x0D06 // Ver.: since se-1.4-17-05019-001 -#define ZCL_CURRENT_REACTIVE_SUMMATION_Q3_ATTRIBUTE_ID 0x0D07 // Ver.: since se-1.4-17-05019-001 -#define ZCL_CURRENT_REACTIVE_SUMMATION_Q4_ATTRIBUTE_ID 0x0D08 // Ver.: since se-1.4-17-05019-001 -#define ZCL_SIMPLE_METERING_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_SIMPLE_METERING_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Messaging -// Cluster specification level: se-1.2b-15-0131-02 +#define ZCL_CURRENT_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0000) +#define ZCL_CURRENT_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0001) +#define ZCL_CURRENT_MAX_DEMAND_DELIVERED_ATTRIBUTE_ID (0x0002) +#define ZCL_CURRENT_MAX_DEMAND_RECEIVED_ATTRIBUTE_ID (0x0003) +#define ZCL_DFT_SUMMATION_ATTRIBUTE_ID (0x0004) +#define ZCL_DAILY_FREEZE_TIME_ATTRIBUTE_ID (0x0005) +#define ZCL_POWER_FACTOR_ATTRIBUTE_ID (0x0006) +#define ZCL_READING_SNAP_SHOT_TIME_ATTRIBUTE_ID (0x0007) +#define ZCL_CURRENT_MAX_DEMAND_DELIVERED_TIME_ATTRIBUTE_ID (0x0008) +#define ZCL_CURRENT_MAX_DEMAND_RECEIVED_TIME_ATTRIBUTE_ID (0x0009) +#define ZCL_DEFAULT_UPDATE_PERIOD_ATTRIBUTE_ID (0x000A) +#define ZCL_FAST_POLL_UPDATE_PERIOD_ATTRIBUTE_ID (0x000B) +#define ZCL_CURRENT_BLOCK_PERIOD_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x000C) +#define ZCL_DAILY_CONSUMPTION_TARGET_ATTRIBUTE_ID (0x000D) +#define ZCL_CURRENT_BLOCK_ATTRIBUTE_ID (0x000E) +#define ZCL_PROFILE_INTERVAL_PERIOD_ATTRIBUTE_ID (0x000F) +#define ZCL_INTERVAL_READ_REPORTING_PERIOD_ATTRIBUTE_ID (0x0010) +#define ZCL_PRESET_READING_TIME_ATTRIBUTE_ID (0x0011) +#define ZCL_VOLUME_PER_REPORT_ATTRIBUTE_ID (0x0012) +#define ZCL_FLOW_RESTRICTION_ATTRIBUTE_ID (0x0013) +#define ZCL_SUPPLY_STATUS_ATTRIBUTE_ID (0x0014) +#define ZCL_CURRENT_INLET_ENERGY_CARRIER_SUMMATION_ATTRIBUTE_ID (0x0015) +#define ZCL_CURRENT_OUTLET_ENERGY_CARRIER_SUMMATION_ATTRIBUTE_ID (0x0016) +#define ZCL_INLET_TEMPERATURE_ATTRIBUTE_ID (0x0017) +#define ZCL_OUTLET_TEMPERATURE_ATTRIBUTE_ID (0x0018) +#define ZCL_CONTROL_TEMPERATURE_ATTRIBUTE_ID (0x0019) +#define ZCL_CURRENT_INLET_ENERGY_CARRIER_DEMAND_ATTRIBUTE_ID (0x001A) +#define ZCL_CURRENT_OUTLET_ENERGY_CARRIER_DEMAND_ATTRIBUTE_ID (0x001B) +#define ZCL_PREVIOUS_BLOCK_PERIOD_CONSUMIPTION_DELIVERED_ATTRIBUTE_ID (0x001C) +#define ZCL_CURRENT_BLOCK_PERIOD_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x001D) +#define ZCL_CURRENT_BLOCK_RECEIVED_ATTRIBUTE_ID (0x001E) +#define ZCL_DFT_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x001F) +#define ZCL_ACTIVE_REGISTER_TIER_DELIVERED_ATTRIBUTE_ID (0x0020) +#define ZCL_ACTIVE_REGISTER_TIER_RECEIVED_ATTRIBUTE_ID (0x0021) +#define ZCL_LAST_BLOCK_SWITCH_TIME_ATTRIBUTE_ID (0x0022) +#define ZCL_CURRENT_TIER1_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0100) +#define ZCL_CURRENT_TIER1_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0101) +#define ZCL_CURRENT_TIER2_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0102) +#define ZCL_CURRENT_TIER2_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0103) +#define ZCL_CURRENT_TIER3_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0104) +#define ZCL_CURRENT_TIER3_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0105) +#define ZCL_CURRENT_TIER4_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0106) +#define ZCL_CURRENT_TIER4_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0107) +#define ZCL_CURRENT_TIER5_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0108) +#define ZCL_CURRENT_TIER5_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0109) +#define ZCL_CURRENT_TIER6_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x010A) +#define ZCL_CURRENT_TIER6_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x010B) +#define ZCL_CURRENT_TIER7_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x010C) +#define ZCL_CURRENT_TIER7_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x010D) +#define ZCL_CURRENT_TIER8_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x010E) +#define ZCL_CURRENT_TIER8_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x010F) +#define ZCL_CURRENT_TIER9_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0110) +#define ZCL_CURRENT_TIER9_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0111) +#define ZCL_CURRENT_TIER10_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0112) +#define ZCL_CURRENT_TIER10_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0113) +#define ZCL_CURRENT_TIER11_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0114) +#define ZCL_CURRENT_TIER11_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0115) +#define ZCL_CURRENT_TIER12_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0116) +#define ZCL_CURRENT_TIER12_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0117) +#define ZCL_CURRENT_TIER13_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0118) +#define ZCL_CURRENT_TIER13_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0119) +#define ZCL_CURRENT_TIER14_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x011A) +#define ZCL_CURRENT_TIER14_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x011B) +#define ZCL_CURRENT_TIER15_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x011C) +#define ZCL_CURRENT_TIER15_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x011D) +#define ZCL_CURRENT_TIER16_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x011E) +#define ZCL_CURRENT_TIER16_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x011F) +#define ZCL_CURRENT_TIER17_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0120) +#define ZCL_CURRENT_TIER17_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0121) +#define ZCL_CURRENT_TIER18_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0122) +#define ZCL_CURRENT_TIER18_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0123) +#define ZCL_CURRENT_TIER19_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0124) +#define ZCL_CURRENT_TIER19_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0125) +#define ZCL_CURRENT_TIER20_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0126) +#define ZCL_CURRENT_TIER20_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0127) +#define ZCL_CURRENT_TIER21_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0128) +#define ZCL_CURRENT_TIER21_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0129) +#define ZCL_CURRENT_TIER22_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x012A) +#define ZCL_CURRENT_TIER22_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x012B) +#define ZCL_CURRENT_TIER23_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x012C) +#define ZCL_CURRENT_TIER23_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x012D) +#define ZCL_CURRENT_TIER24_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x012E) +#define ZCL_CURRENT_TIER24_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x012F) +#define ZCL_CURRENT_TIER25_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0130) +#define ZCL_CURRENT_TIER25_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0131) +#define ZCL_CURRENT_TIER26_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0132) +#define ZCL_CURRENT_TIER26_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0133) +#define ZCL_CURRENT_TIER27_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0134) +#define ZCL_CURRENT_TIER27_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0135) +#define ZCL_CURRENT_TIER28_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0136) +#define ZCL_CURRENT_TIER28_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0137) +#define ZCL_CURRENT_TIER29_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0138) +#define ZCL_CURRENT_TIER29_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0139) +#define ZCL_CURRENT_TIER30_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x013A) +#define ZCL_CURRENT_TIER30_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x013B) +#define ZCL_CURRENT_TIER31_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x013C) +#define ZCL_CURRENT_TIER31_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x013D) +#define ZCL_CURRENT_TIER32_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x013E) +#define ZCL_CURRENT_TIER32_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x013F) +#define ZCL_CURRENT_TIER33_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0140) +#define ZCL_CURRENT_TIER33_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0141) +#define ZCL_CURRENT_TIER34_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0142) +#define ZCL_CURRENT_TIER34_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0143) +#define ZCL_CURRENT_TIER35_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0144) +#define ZCL_CURRENT_TIER35_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0145) +#define ZCL_CURRENT_TIER36_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0146) +#define ZCL_CURRENT_TIER36_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0147) +#define ZCL_CURRENT_TIER37_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0148) +#define ZCL_CURRENT_TIER37_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0149) +#define ZCL_CURRENT_TIER38_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x014A) +#define ZCL_CURRENT_TIER38_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x014B) +#define ZCL_CURRENT_TIER39_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x014C) +#define ZCL_CURRENT_TIER39_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x014D) +#define ZCL_CURRENT_TIER40_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x014E) +#define ZCL_CURRENT_TIER40_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x014F) +#define ZCL_CURRENT_TIER41_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0150) +#define ZCL_CURRENT_TIER41_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0151) +#define ZCL_CURRENT_TIER42_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0152) +#define ZCL_CURRENT_TIER42_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0153) +#define ZCL_CURRENT_TIER43_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0154) +#define ZCL_CURRENT_TIER43_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0155) +#define ZCL_CURRENT_TIER44_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0156) +#define ZCL_CURRENT_TIER44_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0157) +#define ZCL_CURRENT_TIER45_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0158) +#define ZCL_CURRENT_TIER45_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0159) +#define ZCL_CURRENT_TIER46_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x015A) +#define ZCL_CURRENT_TIER46_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x015B) +#define ZCL_CURRENT_TIER47_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x015C) +#define ZCL_CURRENT_TIER47_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x015D) +#define ZCL_CURRENT_TIER48_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x015E) +#define ZCL_CURRENT_TIER48_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x015F) +#define ZCL_CPP1_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x01FC) +#define ZCL_CPP2_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x01FE) +#define ZCL_STATUS_ATTRIBUTE_ID (0x0200) +#define ZCL_REMAINING_BATTERY_LIFE_ATTRIBUTE_ID (0x0201) +#define ZCL_HOURS_IN_OPERATION_ATTRIBUTE_ID (0x0202) +#define ZCL_HOURS_IN_FAULT_ATTRIBUTE_ID (0x0203) +#define ZCL_EXTENDED_STATUS_ATTRIBUTE_ID (0x0204) +#define ZCL_REMAINING_BATTERY_LIFE_IN_DAYS_ATTRIBUTE_ID (0x0205) +#define ZCL_CURRENT_METER_ID_ATTRIBUTE_ID (0x0206) +#define ZCL_AMBIENT_CONSUMPTION_INDICATOR_ATTRIBUTE_ID (0x0207) +#define ZCL_UNIT_OF_MEASURE_ATTRIBUTE_ID (0x0300) +#define ZCL_MULTIPLIER_ATTRIBUTE_ID (0x0301) +#define ZCL_DIVISOR_ATTRIBUTE_ID (0x0302) +#define ZCL_SUMMATION_FORMATTING_ATTRIBUTE_ID (0x0303) +#define ZCL_DEMAND_FORMATTING_ATTRIBUTE_ID (0x0304) +#define ZCL_HISTORICAL_CONSUMPTION_FORMATTING_ATTRIBUTE_ID (0x0305) +#define ZCL_METERING_DEVICE_TYPE_ATTRIBUTE_ID (0x0306) +#define ZCL_SITE_ID_ATTRIBUTE_ID (0x0307) +#define ZCL_METER_SERIAL_NUMBER_ATTRIBUTE_ID (0x0308) +#define ZCL_ENERGY_CARRIER_UNIT_OF_MEASURE_ATTRIBUTE_ID (0x0309) +#define ZCL_ENERGY_CARRIER_SUMMATION_FORMATTING_ATTRIBUTE_ID (0x030A) +#define ZCL_ENERGY_CARRIER_DEMAND_FORMATTING_ATTRIBUTE_ID (0x030B) +#define ZCL_TEMPERATURE_UNIT_OF_MEASURE_ATTRIBUTE_ID (0x030C) +#define ZCL_TEMPERATURE_FORMATTING_ATTRIBUTE_ID (0x030D) +#define ZCL_MODULE_SERIAL_NUMBER_ATTRIBUTE_ID (0x030E) +#define ZCL_OPERATING_TARIFF_LABEL_DELIVERED_ATTRIBUTE_ID (0x030F) +#define ZCL_OPERATING_TARIFF_LABEL_RECEIVED_ATTRIBUTE_ID (0x0310) +#define ZCL_CUSTOMER_ID_NUMBER_ATTRIBUTE_ID (0x0311) +#define ZCL_ALTERNATIVE_UNIT_OF_MEASURE_ATTRIBUTE_ID (0x0312) +#define ZCL_ALTERNATIVE_DEMAND_FORMATTING_ATTRIBUTE_ID (0x0313) +#define ZCL_ALTERNATIVE_CONSUMPTION_FORMATTING_ATTRIBUTE_ID (0x0314) +#define ZCL_INSTANTANEOUS_DEMAND_ATTRIBUTE_ID (0x0400) +#define ZCL_CURRENT_DAY_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0401) +#define ZCL_CURRENT_DAY_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0402) +#define ZCL_PREVIOUS_DAY_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0403) +#define ZCL_PREVIOUS_DAY_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0404) +#define ZCL_CURRENT_PARTIAL_PROFILE_INTERVAL_START_TIME_DELIVERED_ATTRIBUTE_ID (0x0405) +#define ZCL_CURRENT_PARTIAL_PROFILE_INTERVAL_START_TIME_RECEIVED_ATTRIBUTE_ID (0x0406) +#define ZCL_CURRENT_PARTIAL_PROFILE_INTERVAL_VALUE_DELIVERED_ATTRIBUTE_ID (0x0407) +#define ZCL_CURRENT_PARTIAL_PROFILE_INTERVAL_VALUE_RECEIVED_ATTRIBUTE_ID (0x0408) +#define ZCL_CURRENT_DAY_MAX_PRESSURE_ATTRIBUTE_ID (0x0409) +#define ZCL_CURRENT_DAY_MIN_PRESSURE_ATTRIBUTE_ID (0x040A) +#define ZCL_PREVIOUS_DAY_MAX_PRESSURE_ATTRIBUTE_ID (0x040B) +#define ZCL_PREVIOUS_DAY_MIN_PRESSURE_ATTRIBUTE_ID (0x040C) +#define ZCL_CURRENT_DAY_MAX_DEMAND_ATTRIBUTE_ID (0x040D) +#define ZCL_PREVIOUS_DAY_MAX_DEMAND_ATTRIBUTE_ID (0x040E) +#define ZCL_CURRENT_MONTH_MAX_DEMAND_ATTRIBUTE_ID (0x040F) +#define ZCL_CURRENT_YEAR_MAX_DEMAND_ATTRIBUTE_ID (0x0410) +#define ZCL_CURRENT_DAY_MAX_ENERGY_CARRIER_DEMAND_ATTRIBUTE_ID (0x0411) +#define ZCL_PREVIOUS_DAY_MAX_ENERGY_CARRIER_DEMAND_ATTRIBUTE_ID (0x0412) +#define ZCL_CURRENT_MONTH_MAX_ENERGY_CARRIER_DEMAND_ATTRIBUTE_ID (0x0413) +#define ZCL_CURRENT_MONTH_MIN_ENERGY_CARRIER_DEMAND_ATTRIBUTE_ID (0x0414) +#define ZCL_CURRENT_YEAR_MAX_ENERGY_CARRIER_DEMAND_ATTRIBUTE_ID (0x0415) +#define ZCL_CURRENT_YEAR_MIN_ENERGY_CARRIER_DEMAND_ATTRIBUTE_ID (0x0416) +#define ZCL_PREVIOUS_DAY2_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0420) +#define ZCL_PREVIOUS_DAY2_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0421) +#define ZCL_PREVIOUS_DAY3_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0422) +#define ZCL_PREVIOUS_DAY3_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0423) +#define ZCL_PREVIOUS_DAY4_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0424) +#define ZCL_PREVIOUS_DAY4_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0425) +#define ZCL_PREVIOUS_DAY5_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0426) +#define ZCL_PREVIOUS_DAY5_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0427) +#define ZCL_PREVIOUS_DAY6_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0428) +#define ZCL_PREVIOUS_DAY6_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0429) +#define ZCL_PREVIOUS_DAY7_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x042A) +#define ZCL_PREVIOUS_DAY7_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x042B) +#define ZCL_PREVIOUS_DAY8_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x042C) +#define ZCL_PREVIOUS_DAY8_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x042D) +#define ZCL_CURRENT_WEEK_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0430) +#define ZCL_CURRENT_WEEK_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0431) +#define ZCL_PREVIOUS_WEEK_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0432) +#define ZCL_PREVIOUS_WEEK_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0433) +#define ZCL_PREVIOUS_WEEK2_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0434) +#define ZCL_PREVIOUS_WEEK2_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0435) +#define ZCL_PREVIOUS_WEEK3_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0436) +#define ZCL_PREVIOUS_WEEK3_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0437) +#define ZCL_PREVIOUS_WEEK4_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0438) +#define ZCL_PREVIOUS_WEEK4_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0439) +#define ZCL_PREVIOUS_WEEK5_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x043A) +#define ZCL_PREVIOUS_WEEK5_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x043B) +#define ZCL_CURRENT_MONTH_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0440) +#define ZCL_CURRENT_MONTH_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0441) +#define ZCL_PREVIOUS_MONTH_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0442) +#define ZCL_PREVIOUS_MONTH_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0443) +#define ZCL_PREVIOUS_MONTH2_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0444) +#define ZCL_PREVIOUS_MONTH2_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0445) +#define ZCL_PREVIOUS_MONTH3_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0446) +#define ZCL_PREVIOUS_MONTH3_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0447) +#define ZCL_PREVIOUS_MONTH4_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0448) +#define ZCL_PREVIOUS_MONTH4_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0449) +#define ZCL_PREVIOUS_MONTH5_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x044A) +#define ZCL_PREVIOUS_MONTH5_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x044B) +#define ZCL_PREVIOUS_MONTH6_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x044C) +#define ZCL_PREVIOUS_MONTH6_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x044D) +#define ZCL_PREVIOUS_MONTH7_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x044E) +#define ZCL_PREVIOUS_MONTH7_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x044F) +#define ZCL_PREVIOUS_MONTH8_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0450) +#define ZCL_PREVIOUS_MONTH8_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0451) +#define ZCL_PREVIOUS_MONTH9_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0452) +#define ZCL_PREVIOUS_MONTH9_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0453) +#define ZCL_PREVIOUS_MONTH10_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0454) +#define ZCL_PREVIOUS_MONTH10_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0455) +#define ZCL_PREVIOUS_MONTH11_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0456) +#define ZCL_PREVIOUS_MONTH11_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0457) +#define ZCL_PREVIOUS_MONTH12_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0458) +#define ZCL_PREVIOUS_MONTH12_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0459) +#define ZCL_PREVIOUS_MONTH13_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x045A) +#define ZCL_PREVIOUS_MONTH13_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x045B) +#define ZCL_METERING_HISTORICAL_FREEZE_TIME_ATTRIBUTE_ID (0x045C) +#define ZCL_CURRENT_DAY_MAX_DEMAND_DELIVERED_ATTRIBUTE_ID (0x045D) +#define ZCL_CURRENT_DAY_MAX_DEMAND_DELIVERED_TIME_ATTRIBUTE_ID (0x045E) +#define ZCL_CURRENT_DAY_MAX_DEMAND_RECEIVED_ATTRIBUTE_ID (0x045F) +#define ZCL_CURRENT_DAY_MAX_DEMAND_RECEIVED_TIME_ATTRIBUTE_ID (0x0460) +#define ZCL_PREVIOUS_DAY_MAX_DEMAND_DELIVERED_ATTRIBUTE_ID (0x0461) +#define ZCL_PREVIOUS_DAY_MAX_DEMAND_DELIVERED_TIME_ATTRIBUTE_ID (0x0462) +#define ZCL_PREVIOUS_DAY_MAX_DEMAND_RECEIVED_ATTRIBUTE_ID (0x0463) +#define ZCL_PREVIOUS_DAY_MAX_DEMAND_RECEIVED_TIME_ATTRIBUTE_ID (0x0464) +#define ZCL_MAX_NUMBER_OF_PERIODS_DELIVERED_ATTRIBUTE_ID (0x0500) +#define ZCL_CURRENT_DEMAND_DELIVERED_ATTRIBUTE_ID (0x0600) +#define ZCL_DEMAND_LIMIT_ATTRIBUTE_ID (0x0601) +#define ZCL_DEMAND_INTEGRATION_PERIOD_ATTRIBUTE_ID (0x0602) +#define ZCL_NUMBER_OF_DEMAND_SUBINTERVALS_ATTRIBUTE_ID (0x0603) +#define ZCL_DEMAND_LIMIT_ARM_DURATION_IN_MINUTES_ATTRIBUTE_ID (0x0604) +#define ZCL_LOAD_LIMIT_SUPPLY_STATE_ATTRIBUTE_ID (0x0605) +#define ZCL_LOAD_LIMIT_COUNTER_ATTRIBUTE_ID (0x0606) +#define ZCL_SUPPLY_TAMPER_STATE_ATTRIBUTE_ID (0x0607) +#define ZCL_SUPPLY_DEPLETION_STATE_ATTRIBUTE_ID (0x0608) +#define ZCL_SUPPLY_UNCONTROLLED_FLOW_STATE_ATTRIBUTE_ID (0x0609) +#define ZCL_CURRENT_NO_TIER_BLOCK1_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0700) +#define ZCL_CURRENT_NO_TIER_BLOCK2_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0701) +#define ZCL_CURRENT_NO_TIER_BLOCK3_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0702) +#define ZCL_CURRENT_NO_TIER_BLOCK4_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0703) +#define ZCL_CURRENT_NO_TIER_BLOCK5_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0704) +#define ZCL_CURRENT_NO_TIER_BLOCK6_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0705) +#define ZCL_CURRENT_NO_TIER_BLOCK7_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0706) +#define ZCL_CURRENT_NO_TIER_BLOCK8_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0707) +#define ZCL_CURRENT_NO_TIER_BLOCK9_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0708) +#define ZCL_CURRENT_NO_TIER_BLOCK10_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0709) +#define ZCL_CURRENT_NO_TIER_BLOCK11_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x070A) +#define ZCL_CURRENT_NO_TIER_BLOCK12_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x070B) +#define ZCL_CURRENT_NO_TIER_BLOCK13_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x070C) +#define ZCL_CURRENT_NO_TIER_BLOCK14_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x070D) +#define ZCL_CURRENT_NO_TIER_BLOCK15_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x070E) +#define ZCL_CURRENT_NO_TIER_BLOCK16_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x070F) +#define ZCL_CURRENT_TIER1_BLOCK1_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0710) +#define ZCL_CURRENT_TIER1_BLOCK2_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0711) +#define ZCL_CURRENT_TIER1_BLOCK3_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0712) +#define ZCL_CURRENT_TIER1_BLOCK4_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0713) +#define ZCL_CURRENT_TIER1_BLOCK5_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0714) +#define ZCL_CURRENT_TIER1_BLOCK6_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0715) +#define ZCL_CURRENT_TIER1_BLOCK7_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0716) +#define ZCL_CURRENT_TIER1_BLOCK8_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0717) +#define ZCL_CURRENT_TIER1_BLOCK9_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0718) +#define ZCL_CURRENT_TIER1_BLOCK10_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0719) +#define ZCL_CURRENT_TIER1_BLOCK11_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x071A) +#define ZCL_CURRENT_TIER1_BLOCK12_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x071B) +#define ZCL_CURRENT_TIER1_BLOCK13_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x071C) +#define ZCL_CURRENT_TIER1_BLOCK14_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x071D) +#define ZCL_CURRENT_TIER1_BLOCK15_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x071E) +#define ZCL_CURRENT_TIER1_BLOCK16_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x071F) +#define ZCL_CURRENT_TIER2_BLOCK1_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0720) +#define ZCL_CURRENT_TIER2_BLOCK2_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0721) +#define ZCL_CURRENT_TIER2_BLOCK3_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0722) +#define ZCL_CURRENT_TIER2_BLOCK4_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0723) +#define ZCL_CURRENT_TIER2_BLOCK5_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0724) +#define ZCL_CURRENT_TIER2_BLOCK6_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0725) +#define ZCL_CURRENT_TIER2_BLOCK7_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0726) +#define ZCL_CURRENT_TIER2_BLOCK8_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0727) +#define ZCL_CURRENT_TIER2_BLOCK9_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0728) +#define ZCL_CURRENT_TIER2_BLOCK10_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0729) +#define ZCL_CURRENT_TIER2_BLOCK11_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x072A) +#define ZCL_CURRENT_TIER2_BLOCK12_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x072B) +#define ZCL_CURRENT_TIER2_BLOCK13_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x072C) +#define ZCL_CURRENT_TIER2_BLOCK14_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x072D) +#define ZCL_CURRENT_TIER2_BLOCK15_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x072E) +#define ZCL_CURRENT_TIER2_BLOCK16_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x072F) +#define ZCL_CURRENT_TIER3_BLOCK1_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0730) +#define ZCL_CURRENT_TIER3_BLOCK2_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0731) +#define ZCL_CURRENT_TIER3_BLOCK3_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0732) +#define ZCL_CURRENT_TIER3_BLOCK4_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0733) +#define ZCL_CURRENT_TIER3_BLOCK5_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0734) +#define ZCL_CURRENT_TIER3_BLOCK6_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0735) +#define ZCL_CURRENT_TIER3_BLOCK7_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0736) +#define ZCL_CURRENT_TIER3_BLOCK8_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0737) +#define ZCL_CURRENT_TIER3_BLOCK9_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0738) +#define ZCL_CURRENT_TIER3_BLOCK10_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0739) +#define ZCL_CURRENT_TIER3_BLOCK11_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x073A) +#define ZCL_CURRENT_TIER3_BLOCK12_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x073B) +#define ZCL_CURRENT_TIER3_BLOCK13_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x073C) +#define ZCL_CURRENT_TIER3_BLOCK14_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x073D) +#define ZCL_CURRENT_TIER3_BLOCK15_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x073E) +#define ZCL_CURRENT_TIER3_BLOCK16_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x073F) +#define ZCL_CURRENT_TIER4_BLOCK1_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0740) +#define ZCL_CURRENT_TIER4_BLOCK2_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0741) +#define ZCL_CURRENT_TIER4_BLOCK3_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0742) +#define ZCL_CURRENT_TIER4_BLOCK4_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0743) +#define ZCL_CURRENT_TIER4_BLOCK5_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0744) +#define ZCL_CURRENT_TIER4_BLOCK6_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0745) +#define ZCL_CURRENT_TIER4_BLOCK7_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0746) +#define ZCL_CURRENT_TIER4_BLOCK8_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0747) +#define ZCL_CURRENT_TIER4_BLOCK9_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0748) +#define ZCL_CURRENT_TIER4_BLOCK10_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0749) +#define ZCL_CURRENT_TIER4_BLOCK11_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x074A) +#define ZCL_CURRENT_TIER4_BLOCK12_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x074B) +#define ZCL_CURRENT_TIER4_BLOCK13_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x074C) +#define ZCL_CURRENT_TIER4_BLOCK14_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x074D) +#define ZCL_CURRENT_TIER4_BLOCK15_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x074E) +#define ZCL_CURRENT_TIER4_BLOCK16_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x074F) +#define ZCL_CURRENT_TIER5_BLOCK1_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0750) +#define ZCL_CURRENT_TIER5_BLOCK2_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0751) +#define ZCL_CURRENT_TIER5_BLOCK3_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0752) +#define ZCL_CURRENT_TIER5_BLOCK4_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0753) +#define ZCL_CURRENT_TIER5_BLOCK5_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0754) +#define ZCL_CURRENT_TIER5_BLOCK6_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0755) +#define ZCL_CURRENT_TIER5_BLOCK7_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0756) +#define ZCL_CURRENT_TIER5_BLOCK8_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0757) +#define ZCL_CURRENT_TIER5_BLOCK9_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0758) +#define ZCL_CURRENT_TIER5_BLOCK10_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0759) +#define ZCL_CURRENT_TIER5_BLOCK11_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x075A) +#define ZCL_CURRENT_TIER5_BLOCK12_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x075B) +#define ZCL_CURRENT_TIER5_BLOCK13_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x075C) +#define ZCL_CURRENT_TIER5_BLOCK14_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x075D) +#define ZCL_CURRENT_TIER5_BLOCK15_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x075E) +#define ZCL_CURRENT_TIER5_BLOCK16_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x075F) +#define ZCL_CURRENT_TIER6_BLOCK1_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0760) +#define ZCL_CURRENT_TIER6_BLOCK2_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0761) +#define ZCL_CURRENT_TIER6_BLOCK3_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0762) +#define ZCL_CURRENT_TIER6_BLOCK4_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0763) +#define ZCL_CURRENT_TIER6_BLOCK5_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0764) +#define ZCL_CURRENT_TIER6_BLOCK6_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0765) +#define ZCL_CURRENT_TIER6_BLOCK7_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0766) +#define ZCL_CURRENT_TIER6_BLOCK8_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0767) +#define ZCL_CURRENT_TIER6_BLOCK9_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0768) +#define ZCL_CURRENT_TIER6_BLOCK10_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0769) +#define ZCL_CURRENT_TIER6_BLOCK11_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x076A) +#define ZCL_CURRENT_TIER6_BLOCK12_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x076B) +#define ZCL_CURRENT_TIER6_BLOCK13_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x076C) +#define ZCL_CURRENT_TIER6_BLOCK14_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x076D) +#define ZCL_CURRENT_TIER6_BLOCK15_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x076E) +#define ZCL_CURRENT_TIER6_BLOCK16_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x076F) +#define ZCL_CURRENT_TIER7_BLOCK1_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0770) +#define ZCL_CURRENT_TIER7_BLOCK2_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0771) +#define ZCL_CURRENT_TIER7_BLOCK3_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0772) +#define ZCL_CURRENT_TIER7_BLOCK4_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0773) +#define ZCL_CURRENT_TIER7_BLOCK5_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0774) +#define ZCL_CURRENT_TIER7_BLOCK6_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0775) +#define ZCL_CURRENT_TIER7_BLOCK7_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0776) +#define ZCL_CURRENT_TIER7_BLOCK8_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0777) +#define ZCL_CURRENT_TIER7_BLOCK9_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0778) +#define ZCL_CURRENT_TIER7_BLOCK10_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0779) +#define ZCL_CURRENT_TIER7_BLOCK11_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x077A) +#define ZCL_CURRENT_TIER7_BLOCK12_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x077B) +#define ZCL_CURRENT_TIER7_BLOCK13_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x077C) +#define ZCL_CURRENT_TIER7_BLOCK14_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x077D) +#define ZCL_CURRENT_TIER7_BLOCK15_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x077E) +#define ZCL_CURRENT_TIER7_BLOCK16_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x077F) +#define ZCL_CURRENT_TIER8_BLOCK1_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0780) +#define ZCL_CURRENT_TIER8_BLOCK2_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0781) +#define ZCL_CURRENT_TIER8_BLOCK3_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0782) +#define ZCL_CURRENT_TIER8_BLOCK4_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0783) +#define ZCL_CURRENT_TIER8_BLOCK5_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0784) +#define ZCL_CURRENT_TIER8_BLOCK6_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0785) +#define ZCL_CURRENT_TIER8_BLOCK7_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0786) +#define ZCL_CURRENT_TIER8_BLOCK8_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0787) +#define ZCL_CURRENT_TIER8_BLOCK9_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0788) +#define ZCL_CURRENT_TIER8_BLOCK10_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0789) +#define ZCL_CURRENT_TIER8_BLOCK11_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x078A) +#define ZCL_CURRENT_TIER8_BLOCK12_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x078B) +#define ZCL_CURRENT_TIER8_BLOCK13_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x078C) +#define ZCL_CURRENT_TIER8_BLOCK14_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x078D) +#define ZCL_CURRENT_TIER8_BLOCK15_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x078E) +#define ZCL_CURRENT_TIER8_BLOCK16_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x078F) +#define ZCL_CURRENT_TIER9_BLOCK1_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0790) +#define ZCL_CURRENT_TIER9_BLOCK2_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0791) +#define ZCL_CURRENT_TIER9_BLOCK3_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0792) +#define ZCL_CURRENT_TIER9_BLOCK4_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0793) +#define ZCL_CURRENT_TIER9_BLOCK5_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0794) +#define ZCL_CURRENT_TIER9_BLOCK6_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0795) +#define ZCL_CURRENT_TIER9_BLOCK7_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0796) +#define ZCL_CURRENT_TIER9_BLOCK8_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0797) +#define ZCL_CURRENT_TIER9_BLOCK9_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0798) +#define ZCL_CURRENT_TIER9_BLOCK10_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0799) +#define ZCL_CURRENT_TIER9_BLOCK11_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x079A) +#define ZCL_CURRENT_TIER9_BLOCK12_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x079B) +#define ZCL_CURRENT_TIER9_BLOCK13_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x079C) +#define ZCL_CURRENT_TIER9_BLOCK14_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x079D) +#define ZCL_CURRENT_TIER9_BLOCK15_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x079E) +#define ZCL_CURRENT_TIER9_BLOCK16_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x079F) +#define ZCL_CURRENT_TIER10_BLOCK1_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07A0) +#define ZCL_CURRENT_TIER10_BLOCK2_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07A1) +#define ZCL_CURRENT_TIER10_BLOCK3_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07A2) +#define ZCL_CURRENT_TIER10_BLOCK4_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07A3) +#define ZCL_CURRENT_TIER10_BLOCK5_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07A4) +#define ZCL_CURRENT_TIER10_BLOCK6_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07A5) +#define ZCL_CURRENT_TIER10_BLOCK7_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07A6) +#define ZCL_CURRENT_TIER10_BLOCK8_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07A7) +#define ZCL_CURRENT_TIER10_BLOCK9_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07A8) +#define ZCL_CURRENT_TIER10_BLOCK10_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07A9) +#define ZCL_CURRENT_TIER10_BLOCK11_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07AA) +#define ZCL_CURRENT_TIER10_BLOCK12_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07AB) +#define ZCL_CURRENT_TIER10_BLOCK13_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07AC) +#define ZCL_CURRENT_TIER10_BLOCK14_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07AD) +#define ZCL_CURRENT_TIER10_BLOCK15_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07AE) +#define ZCL_CURRENT_TIER10_BLOCK16_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07AF) +#define ZCL_CURRENT_TIER11_BLOCK1_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07B0) +#define ZCL_CURRENT_TIER11_BLOCK2_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07B1) +#define ZCL_CURRENT_TIER11_BLOCK3_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07B2) +#define ZCL_CURRENT_TIER11_BLOCK4_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07B3) +#define ZCL_CURRENT_TIER11_BLOCK5_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07B4) +#define ZCL_CURRENT_TIER11_BLOCK6_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07B5) +#define ZCL_CURRENT_TIER11_BLOCK7_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07B6) +#define ZCL_CURRENT_TIER11_BLOCK8_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07B7) +#define ZCL_CURRENT_TIER11_BLOCK9_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07B8) +#define ZCL_CURRENT_TIER11_BLOCK10_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07B9) +#define ZCL_CURRENT_TIER11_BLOCK11_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07BA) +#define ZCL_CURRENT_TIER11_BLOCK12_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07BB) +#define ZCL_CURRENT_TIER11_BLOCK13_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07BC) +#define ZCL_CURRENT_TIER11_BLOCK14_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07BD) +#define ZCL_CURRENT_TIER11_BLOCK15_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07BE) +#define ZCL_CURRENT_TIER11_BLOCK16_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07BF) +#define ZCL_CURRENT_TIER12_BLOCK1_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07C0) +#define ZCL_CURRENT_TIER12_BLOCK2_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07C1) +#define ZCL_CURRENT_TIER12_BLOCK3_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07C2) +#define ZCL_CURRENT_TIER12_BLOCK4_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07C3) +#define ZCL_CURRENT_TIER12_BLOCK5_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07C4) +#define ZCL_CURRENT_TIER12_BLOCK6_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07C5) +#define ZCL_CURRENT_TIER12_BLOCK7_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07C6) +#define ZCL_CURRENT_TIER12_BLOCK8_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07C7) +#define ZCL_CURRENT_TIER12_BLOCK9_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07C8) +#define ZCL_CURRENT_TIER12_BLOCK10_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07C9) +#define ZCL_CURRENT_TIER12_BLOCK11_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07CA) +#define ZCL_CURRENT_TIER12_BLOCK12_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07CB) +#define ZCL_CURRENT_TIER12_BLOCK13_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07CC) +#define ZCL_CURRENT_TIER12_BLOCK14_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07CD) +#define ZCL_CURRENT_TIER12_BLOCK15_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07CE) +#define ZCL_CURRENT_TIER12_BLOCK16_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07CF) +#define ZCL_CURRENT_TIER13_BLOCK1_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07D0) +#define ZCL_CURRENT_TIER13_BLOCK2_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07D1) +#define ZCL_CURRENT_TIER13_BLOCK3_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07D2) +#define ZCL_CURRENT_TIER13_BLOCK4_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07D3) +#define ZCL_CURRENT_TIER13_BLOCK5_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07D4) +#define ZCL_CURRENT_TIER13_BLOCK6_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07D5) +#define ZCL_CURRENT_TIER13_BLOCK7_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07D6) +#define ZCL_CURRENT_TIER13_BLOCK8_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07D7) +#define ZCL_CURRENT_TIER13_BLOCK9_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07D8) +#define ZCL_CURRENT_TIER13_BLOCK10_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07D9) +#define ZCL_CURRENT_TIER13_BLOCK11_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07DA) +#define ZCL_CURRENT_TIER13_BLOCK12_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07DB) +#define ZCL_CURRENT_TIER13_BLOCK13_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07DC) +#define ZCL_CURRENT_TIER13_BLOCK14_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07DD) +#define ZCL_CURRENT_TIER13_BLOCK15_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07DE) +#define ZCL_CURRENT_TIER13_BLOCK16_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07DF) +#define ZCL_CURRENT_TIER14_BLOCK1_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07E0) +#define ZCL_CURRENT_TIER14_BLOCK2_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07E1) +#define ZCL_CURRENT_TIER14_BLOCK3_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07E2) +#define ZCL_CURRENT_TIER14_BLOCK4_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07E3) +#define ZCL_CURRENT_TIER14_BLOCK5_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07E4) +#define ZCL_CURRENT_TIER14_BLOCK6_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07E5) +#define ZCL_CURRENT_TIER14_BLOCK7_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07E6) +#define ZCL_CURRENT_TIER14_BLOCK8_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07E7) +#define ZCL_CURRENT_TIER14_BLOCK9_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07E8) +#define ZCL_CURRENT_TIER14_BLOCK10_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07E9) +#define ZCL_CURRENT_TIER14_BLOCK11_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07EA) +#define ZCL_CURRENT_TIER14_BLOCK12_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07EB) +#define ZCL_CURRENT_TIER14_BLOCK13_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07EC) +#define ZCL_CURRENT_TIER14_BLOCK14_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07ED) +#define ZCL_CURRENT_TIER14_BLOCK15_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07EE) +#define ZCL_CURRENT_TIER14_BLOCK16_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07EF) +#define ZCL_CURRENT_TIER15_BLOCK1_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07F0) +#define ZCL_CURRENT_TIER15_BLOCK2_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07F1) +#define ZCL_CURRENT_TIER15_BLOCK3_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07F2) +#define ZCL_CURRENT_TIER15_BLOCK4_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07F3) +#define ZCL_CURRENT_TIER15_BLOCK5_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07F4) +#define ZCL_CURRENT_TIER15_BLOCK6_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07F5) +#define ZCL_CURRENT_TIER15_BLOCK7_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07F6) +#define ZCL_CURRENT_TIER15_BLOCK8_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07F7) +#define ZCL_CURRENT_TIER15_BLOCK9_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07F8) +#define ZCL_CURRENT_TIER15_BLOCK10_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07F9) +#define ZCL_CURRENT_TIER15_BLOCK11_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07FA) +#define ZCL_CURRENT_TIER15_BLOCK12_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07FB) +#define ZCL_CURRENT_TIER15_BLOCK13_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07FC) +#define ZCL_CURRENT_TIER15_BLOCK14_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07FD) +#define ZCL_CURRENT_TIER15_BLOCK15_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07FE) +#define ZCL_CURRENT_TIER15_BLOCK16_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07FF) +#define ZCL_GENERIC_ALARM_MASK_ATTRIBUTE_ID (0x0800) +#define ZCL_ELECTRICITY_ALARM_MASK_ATTRIBUTE_ID (0x0801) +#define ZCL_GENERIC_FLOW_PRESSURE_ALARM_MASK_ATTRIBUTE_ID (0x0802) +#define ZCL_WATER_SPECIFIC_ALARM_MASK_ATTRIBUTE_ID (0x0803) +#define ZCL_HEAT_AND_COOLING_SPECIFIC_ALARM_MASK_ATTRIBUTE_ID (0x0804) +#define ZCL_GAS_SPECIFIC_ALARM_MASK_ATTRIBUTE_ID (0x0805) +#define ZCL_METERING_EXTENDED_GENERIC_ALARM_MASK_ATTRIBUTE_ID (0x0806) +#define ZCL_METERING_MANUFACTURE_ALARM_MASK_ATTRIBUTE_ID (0x0807) +#define ZCL_CURRENT_NO_TIER_BLOCK1_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0900) +#define ZCL_CURRENT_NO_TIER_BLOCK2_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0901) +#define ZCL_CURRENT_NO_TIER_BLOCK3_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0902) +#define ZCL_CURRENT_NO_TIER_BLOCK4_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0903) +#define ZCL_CURRENT_NO_TIER_BLOCK5_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0904) +#define ZCL_CURRENT_NO_TIER_BLOCK6_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0905) +#define ZCL_CURRENT_NO_TIER_BLOCK7_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0906) +#define ZCL_CURRENT_NO_TIER_BLOCK8_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0907) +#define ZCL_CURRENT_NO_TIER_BLOCK9_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0908) +#define ZCL_CURRENT_NO_TIER_BLOCK10_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0909) +#define ZCL_CURRENT_NO_TIER_BLOCK11_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x090A) +#define ZCL_CURRENT_NO_TIER_BLOCK12_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x090B) +#define ZCL_CURRENT_NO_TIER_BLOCK13_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x090C) +#define ZCL_CURRENT_NO_TIER_BLOCK14_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x090D) +#define ZCL_CURRENT_NO_TIER_BLOCK15_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x090E) +#define ZCL_CURRENT_NO_TIER_BLOCK16_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x090F) +#define ZCL_CURRENT_TIER1_BLOCK1_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0910) +#define ZCL_CURRENT_TIER1_BLOCK2_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0911) +#define ZCL_CURRENT_TIER1_BLOCK3_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0912) +#define ZCL_CURRENT_TIER1_BLOCK4_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0913) +#define ZCL_CURRENT_TIER1_BLOCK5_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0914) +#define ZCL_CURRENT_TIER1_BLOCK6_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0915) +#define ZCL_CURRENT_TIER1_BLOCK7_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0916) +#define ZCL_CURRENT_TIER1_BLOCK8_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0917) +#define ZCL_CURRENT_TIER1_BLOCK9_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0918) +#define ZCL_CURRENT_TIER1_BLOCK10_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0919) +#define ZCL_CURRENT_TIER1_BLOCK11_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x091A) +#define ZCL_CURRENT_TIER1_BLOCK12_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x091B) +#define ZCL_CURRENT_TIER1_BLOCK13_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x091C) +#define ZCL_CURRENT_TIER1_BLOCK14_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x091D) +#define ZCL_CURRENT_TIER1_BLOCK15_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x091E) +#define ZCL_CURRENT_TIER1_BLOCK16_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x091F) +#define ZCL_CURRENT_TIER2_BLOCK1_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0920) +#define ZCL_CURRENT_TIER2_BLOCK2_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0921) +#define ZCL_CURRENT_TIER2_BLOCK3_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0922) +#define ZCL_CURRENT_TIER2_BLOCK4_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0923) +#define ZCL_CURRENT_TIER2_BLOCK5_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0924) +#define ZCL_CURRENT_TIER2_BLOCK6_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0925) +#define ZCL_CURRENT_TIER2_BLOCK7_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0926) +#define ZCL_CURRENT_TIER2_BLOCK8_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0927) +#define ZCL_CURRENT_TIER2_BLOCK9_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0928) +#define ZCL_CURRENT_TIER2_BLOCK10_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0929) +#define ZCL_CURRENT_TIER2_BLOCK11_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x092A) +#define ZCL_CURRENT_TIER2_BLOCK12_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x092B) +#define ZCL_CURRENT_TIER2_BLOCK13_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x092C) +#define ZCL_CURRENT_TIER2_BLOCK14_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x092D) +#define ZCL_CURRENT_TIER2_BLOCK15_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x092E) +#define ZCL_CURRENT_TIER2_BLOCK16_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x092F) +#define ZCL_CURRENT_TIER3_BLOCK1_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0930) +#define ZCL_CURRENT_TIER3_BLOCK2_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0931) +#define ZCL_CURRENT_TIER3_BLOCK3_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0932) +#define ZCL_CURRENT_TIER3_BLOCK4_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0933) +#define ZCL_CURRENT_TIER3_BLOCK5_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0934) +#define ZCL_CURRENT_TIER3_BLOCK6_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0935) +#define ZCL_CURRENT_TIER3_BLOCK7_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0936) +#define ZCL_CURRENT_TIER3_BLOCK8_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0937) +#define ZCL_CURRENT_TIER3_BLOCK9_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0938) +#define ZCL_CURRENT_TIER3_BLOCK10_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0939) +#define ZCL_CURRENT_TIER3_BLOCK11_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x093A) +#define ZCL_CURRENT_TIER3_BLOCK12_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x093B) +#define ZCL_CURRENT_TIER3_BLOCK13_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x093C) +#define ZCL_CURRENT_TIER3_BLOCK14_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x093D) +#define ZCL_CURRENT_TIER3_BLOCK15_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x093E) +#define ZCL_CURRENT_TIER3_BLOCK16_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x093F) +#define ZCL_CURRENT_TIER4_BLOCK1_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0940) +#define ZCL_CURRENT_TIER4_BLOCK2_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0941) +#define ZCL_CURRENT_TIER4_BLOCK3_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0942) +#define ZCL_CURRENT_TIER4_BLOCK4_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0943) +#define ZCL_CURRENT_TIER4_BLOCK5_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0944) +#define ZCL_CURRENT_TIER4_BLOCK6_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0945) +#define ZCL_CURRENT_TIER4_BLOCK7_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0946) +#define ZCL_CURRENT_TIER4_BLOCK8_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0947) +#define ZCL_CURRENT_TIER4_BLOCK9_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0948) +#define ZCL_CURRENT_TIER4_BLOCK10_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0949) +#define ZCL_CURRENT_TIER4_BLOCK11_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x094A) +#define ZCL_CURRENT_TIER4_BLOCK12_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x094B) +#define ZCL_CURRENT_TIER4_BLOCK13_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x094C) +#define ZCL_CURRENT_TIER4_BLOCK14_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x094D) +#define ZCL_CURRENT_TIER4_BLOCK15_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x094E) +#define ZCL_CURRENT_TIER4_BLOCK16_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x094F) +#define ZCL_CURRENT_TIER5_BLOCK1_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0950) +#define ZCL_CURRENT_TIER5_BLOCK2_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0951) +#define ZCL_CURRENT_TIER5_BLOCK3_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0952) +#define ZCL_CURRENT_TIER5_BLOCK4_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0953) +#define ZCL_CURRENT_TIER5_BLOCK5_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0954) +#define ZCL_CURRENT_TIER5_BLOCK6_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0955) +#define ZCL_CURRENT_TIER5_BLOCK7_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0956) +#define ZCL_CURRENT_TIER5_BLOCK8_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0957) +#define ZCL_CURRENT_TIER5_BLOCK9_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0958) +#define ZCL_CURRENT_TIER5_BLOCK10_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0959) +#define ZCL_CURRENT_TIER5_BLOCK11_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x095A) +#define ZCL_CURRENT_TIER5_BLOCK12_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x095B) +#define ZCL_CURRENT_TIER5_BLOCK13_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x095C) +#define ZCL_CURRENT_TIER5_BLOCK14_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x095D) +#define ZCL_CURRENT_TIER5_BLOCK15_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x095E) +#define ZCL_CURRENT_TIER5_BLOCK16_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x095F) +#define ZCL_CURRENT_TIER6_BLOCK1_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0960) +#define ZCL_CURRENT_TIER6_BLOCK2_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0961) +#define ZCL_CURRENT_TIER6_BLOCK3_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0962) +#define ZCL_CURRENT_TIER6_BLOCK4_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0963) +#define ZCL_CURRENT_TIER6_BLOCK5_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0964) +#define ZCL_CURRENT_TIER6_BLOCK6_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0965) +#define ZCL_CURRENT_TIER6_BLOCK7_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0966) +#define ZCL_CURRENT_TIER6_BLOCK8_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0967) +#define ZCL_CURRENT_TIER6_BLOCK9_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0968) +#define ZCL_CURRENT_TIER6_BLOCK10_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0969) +#define ZCL_CURRENT_TIER6_BLOCK11_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x096A) +#define ZCL_CURRENT_TIER6_BLOCK12_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x096B) +#define ZCL_CURRENT_TIER6_BLOCK13_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x096C) +#define ZCL_CURRENT_TIER6_BLOCK14_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x096D) +#define ZCL_CURRENT_TIER6_BLOCK15_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x096E) +#define ZCL_CURRENT_TIER6_BLOCK16_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x096F) +#define ZCL_CURRENT_TIER7_BLOCK1_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0970) +#define ZCL_CURRENT_TIER7_BLOCK2_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0971) +#define ZCL_CURRENT_TIER7_BLOCK3_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0972) +#define ZCL_CURRENT_TIER7_BLOCK4_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0973) +#define ZCL_CURRENT_TIER7_BLOCK5_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0974) +#define ZCL_CURRENT_TIER7_BLOCK6_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0975) +#define ZCL_CURRENT_TIER7_BLOCK7_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0976) +#define ZCL_CURRENT_TIER7_BLOCK8_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0977) +#define ZCL_CURRENT_TIER7_BLOCK9_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0978) +#define ZCL_CURRENT_TIER7_BLOCK10_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0979) +#define ZCL_CURRENT_TIER7_BLOCK11_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x097A) +#define ZCL_CURRENT_TIER7_BLOCK12_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x097B) +#define ZCL_CURRENT_TIER7_BLOCK13_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x097C) +#define ZCL_CURRENT_TIER7_BLOCK14_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x097D) +#define ZCL_CURRENT_TIER7_BLOCK15_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x097E) +#define ZCL_CURRENT_TIER7_BLOCK16_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x097F) +#define ZCL_CURRENT_TIER8_BLOCK1_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0980) +#define ZCL_CURRENT_TIER8_BLOCK2_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0981) +#define ZCL_CURRENT_TIER8_BLOCK3_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0982) +#define ZCL_CURRENT_TIER8_BLOCK4_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0983) +#define ZCL_CURRENT_TIER8_BLOCK5_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0984) +#define ZCL_CURRENT_TIER8_BLOCK6_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0985) +#define ZCL_CURRENT_TIER8_BLOCK7_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0986) +#define ZCL_CURRENT_TIER8_BLOCK8_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0987) +#define ZCL_CURRENT_TIER8_BLOCK9_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0988) +#define ZCL_CURRENT_TIER8_BLOCK10_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0989) +#define ZCL_CURRENT_TIER8_BLOCK11_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x098A) +#define ZCL_CURRENT_TIER8_BLOCK12_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x098B) +#define ZCL_CURRENT_TIER8_BLOCK13_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x098C) +#define ZCL_CURRENT_TIER8_BLOCK14_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x098D) +#define ZCL_CURRENT_TIER8_BLOCK15_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x098E) +#define ZCL_CURRENT_TIER8_BLOCK16_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x098F) +#define ZCL_CURRENT_TIER9_BLOCK1_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0990) +#define ZCL_CURRENT_TIER9_BLOCK2_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0991) +#define ZCL_CURRENT_TIER9_BLOCK3_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0992) +#define ZCL_CURRENT_TIER9_BLOCK4_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0993) +#define ZCL_CURRENT_TIER9_BLOCK5_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0994) +#define ZCL_CURRENT_TIER9_BLOCK6_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0995) +#define ZCL_CURRENT_TIER9_BLOCK7_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0996) +#define ZCL_CURRENT_TIER9_BLOCK8_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0997) +#define ZCL_CURRENT_TIER9_BLOCK9_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0998) +#define ZCL_CURRENT_TIER9_BLOCK10_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0999) +#define ZCL_CURRENT_TIER9_BLOCK11_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x099A) +#define ZCL_CURRENT_TIER9_BLOCK12_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x099B) +#define ZCL_CURRENT_TIER9_BLOCK13_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x099C) +#define ZCL_CURRENT_TIER9_BLOCK14_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x099D) +#define ZCL_CURRENT_TIER9_BLOCK15_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x099E) +#define ZCL_CURRENT_TIER9_BLOCK16_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x099F) +#define ZCL_CURRENT_TIER10_BLOCK1_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09A0) +#define ZCL_CURRENT_TIER10_BLOCK2_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09A1) +#define ZCL_CURRENT_TIER10_BLOCK3_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09A2) +#define ZCL_CURRENT_TIER10_BLOCK4_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09A3) +#define ZCL_CURRENT_TIER10_BLOCK5_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09A4) +#define ZCL_CURRENT_TIER10_BLOCK6_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09A5) +#define ZCL_CURRENT_TIER10_BLOCK7_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09A6) +#define ZCL_CURRENT_TIER10_BLOCK8_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09A7) +#define ZCL_CURRENT_TIER10_BLOCK9_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09A8) +#define ZCL_CURRENT_TIER10_BLOCK10_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09A9) +#define ZCL_CURRENT_TIER10_BLOCK11_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09AA) +#define ZCL_CURRENT_TIER10_BLOCK12_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09AB) +#define ZCL_CURRENT_TIER10_BLOCK13_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09AC) +#define ZCL_CURRENT_TIER10_BLOCK14_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09AD) +#define ZCL_CURRENT_TIER10_BLOCK15_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09AE) +#define ZCL_CURRENT_TIER10_BLOCK16_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09AF) +#define ZCL_CURRENT_TIER11_BLOCK1_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09B0) +#define ZCL_CURRENT_TIER11_BLOCK2_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09B1) +#define ZCL_CURRENT_TIER11_BLOCK3_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09B2) +#define ZCL_CURRENT_TIER11_BLOCK4_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09B3) +#define ZCL_CURRENT_TIER11_BLOCK5_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09B4) +#define ZCL_CURRENT_TIER11_BLOCK6_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09B5) +#define ZCL_CURRENT_TIER11_BLOCK7_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09B6) +#define ZCL_CURRENT_TIER11_BLOCK8_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09B7) +#define ZCL_CURRENT_TIER11_BLOCK9_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09B8) +#define ZCL_CURRENT_TIER11_BLOCK10_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09B9) +#define ZCL_CURRENT_TIER11_BLOCK11_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09BA) +#define ZCL_CURRENT_TIER11_BLOCK12_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09BB) +#define ZCL_CURRENT_TIER11_BLOCK13_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09BC) +#define ZCL_CURRENT_TIER11_BLOCK14_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09BD) +#define ZCL_CURRENT_TIER11_BLOCK15_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09BE) +#define ZCL_CURRENT_TIER11_BLOCK16_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09BF) +#define ZCL_CURRENT_TIER12_BLOCK1_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09C0) +#define ZCL_CURRENT_TIER12_BLOCK2_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09C1) +#define ZCL_CURRENT_TIER12_BLOCK3_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09C2) +#define ZCL_CURRENT_TIER12_BLOCK4_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09C3) +#define ZCL_CURRENT_TIER12_BLOCK5_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09C4) +#define ZCL_CURRENT_TIER12_BLOCK6_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09C5) +#define ZCL_CURRENT_TIER12_BLOCK7_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09C6) +#define ZCL_CURRENT_TIER12_BLOCK8_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09C7) +#define ZCL_CURRENT_TIER12_BLOCK9_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09C8) +#define ZCL_CURRENT_TIER12_BLOCK10_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09C9) +#define ZCL_CURRENT_TIER12_BLOCK11_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09CA) +#define ZCL_CURRENT_TIER12_BLOCK12_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09CB) +#define ZCL_CURRENT_TIER12_BLOCK13_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09CC) +#define ZCL_CURRENT_TIER12_BLOCK14_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09CD) +#define ZCL_CURRENT_TIER12_BLOCK15_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09CE) +#define ZCL_CURRENT_TIER12_BLOCK16_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09CF) +#define ZCL_CURRENT_TIER13_BLOCK1_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09D0) +#define ZCL_CURRENT_TIER13_BLOCK2_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09D1) +#define ZCL_CURRENT_TIER13_BLOCK3_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09D2) +#define ZCL_CURRENT_TIER13_BLOCK4_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09D3) +#define ZCL_CURRENT_TIER13_BLOCK5_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09D4) +#define ZCL_CURRENT_TIER13_BLOCK6_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09D5) +#define ZCL_CURRENT_TIER13_BLOCK7_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09D6) +#define ZCL_CURRENT_TIER13_BLOCK8_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09D7) +#define ZCL_CURRENT_TIER13_BLOCK9_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09D8) +#define ZCL_CURRENT_TIER13_BLOCK10_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09D9) +#define ZCL_CURRENT_TIER13_BLOCK11_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09DA) +#define ZCL_CURRENT_TIER13_BLOCK12_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09DB) +#define ZCL_CURRENT_TIER13_BLOCK13_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09DC) +#define ZCL_CURRENT_TIER13_BLOCK14_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09DD) +#define ZCL_CURRENT_TIER13_BLOCK15_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09DE) +#define ZCL_CURRENT_TIER13_BLOCK16_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09DF) +#define ZCL_CURRENT_TIER14_BLOCK1_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09E0) +#define ZCL_CURRENT_TIER14_BLOCK2_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09E1) +#define ZCL_CURRENT_TIER14_BLOCK3_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09E2) +#define ZCL_CURRENT_TIER14_BLOCK4_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09E3) +#define ZCL_CURRENT_TIER14_BLOCK5_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09E4) +#define ZCL_CURRENT_TIER14_BLOCK6_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09E5) +#define ZCL_CURRENT_TIER14_BLOCK7_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09E6) +#define ZCL_CURRENT_TIER14_BLOCK8_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09E7) +#define ZCL_CURRENT_TIER14_BLOCK9_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09E8) +#define ZCL_CURRENT_TIER14_BLOCK10_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09E9) +#define ZCL_CURRENT_TIER14_BLOCK11_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09EA) +#define ZCL_CURRENT_TIER14_BLOCK12_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09EB) +#define ZCL_CURRENT_TIER14_BLOCK13_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09EC) +#define ZCL_CURRENT_TIER14_BLOCK14_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09ED) +#define ZCL_CURRENT_TIER14_BLOCK15_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09EE) +#define ZCL_CURRENT_TIER14_BLOCK16_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09EF) +#define ZCL_CURRENT_TIER15_BLOCK1_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09F0) +#define ZCL_CURRENT_TIER15_BLOCK2_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09F1) +#define ZCL_CURRENT_TIER15_BLOCK3_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09F2) +#define ZCL_CURRENT_TIER15_BLOCK4_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09F3) +#define ZCL_CURRENT_TIER15_BLOCK5_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09F4) +#define ZCL_CURRENT_TIER15_BLOCK6_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09F5) +#define ZCL_CURRENT_TIER15_BLOCK7_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09F6) +#define ZCL_CURRENT_TIER15_BLOCK8_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09F7) +#define ZCL_CURRENT_TIER15_BLOCK9_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09F8) +#define ZCL_CURRENT_TIER15_BLOCK10_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09F9) +#define ZCL_CURRENT_TIER15_BLOCK11_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09FA) +#define ZCL_CURRENT_TIER15_BLOCK12_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09FB) +#define ZCL_CURRENT_TIER15_BLOCK13_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09FC) +#define ZCL_CURRENT_TIER15_BLOCK14_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09FD) +#define ZCL_CURRENT_TIER15_BLOCK15_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09FE) +#define ZCL_CURRENT_TIER15_BLOCK16_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09FF) +#define ZCL_BILL_TO_DATE_DELIVERED_ATTRIBUTE_ID (0x0A00) +#define ZCL_BILL_TO_DATE_TIME_STAMP_DELIVERED_ATTRIBUTE_ID (0x0A01) +#define ZCL_PROJECTED_BILL_DELIVERED_ATTRIBUTE_ID (0x0A02) +#define ZCL_PROJECTED_BILL_TIME_STAMP_DELIVERED_ATTRIBUTE_ID (0x0A03) +#define ZCL_BILL_DELIVERED_TRAILING_DIGIT_ATTRIBUTE_ID (0x0A04) +#define ZCL_BILL_TO_DATE_RECEIVED_ATTRIBUTE_ID (0x0A10) +#define ZCL_BILL_TO_DATE_TIME_STAMP_RECEIVED_ATTRIBUTE_ID (0x0A11) +#define ZCL_PROJECTED_BILL_RECEIVED_ATTRIBUTE_ID (0x0A12) +#define ZCL_PROJECTED_BILL_TIME_STAMP_RECEIVED_ATTRIBUTE_ID (0x0A13) +#define ZCL_BILL_RECEIVED_TRAILING_DIGIT_ATTRIBUTE_ID (0x0A14) +#define ZCL_PROPOSED_CHANGE_SUPPLY_IMPLEMENTATION_TIME_ATTRIBUTE_ID (0x0B00) +#define ZCL_PROPOSED_CHANGE_SUPPLY_STATUS_ATTRIBUTE_ID (0x0B01) +#define ZCL_UNCONTROLLED_FLOW_THESHOLD_ATTRIBUTE_ID (0x0B10) +#define ZCL_UNCONTROLLED_FLOW_THESHOLD_UNIT_OF_MEASURE_ATTRIBUTE_ID (0x0B11) +#define ZCL_UNCONTROLLED_FLOW_MULTIPLIER_ATTRIBUTE_ID (0x0B12) +#define ZCL_UNCONTROLLED_FLOW_DIVISOR_ATTRIBUTE_ID (0x0B13) +#define ZCL_FLOW_STABILIZATION_PERIOD_ATTRIBUTE_ID (0x0B14) +#define ZCL_FLOW_MEASUREMENT_PERIOD_ATTRIBUTE_ID (0x0B15) +#define ZCL_ALTERNATIVE_INSTANTANEOUS_DEMAND_ATTRIBUTE_ID (0x0C00) +#define ZCL_CURRENT_ALTERNATIVE_DAY_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0C01) +#define ZCL_CURRENT_ALTERNATIVE_DAY_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0C02) +#define ZCL_PREVIOUS_DAY_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0C03) +#define ZCL_PREVIOUS_DAY_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0C04) +#define ZCL_CURRENT_ALTERNATIVE_PARTIAL_PROFILE_INTERVAL_START_TIME_DELIVERED_ATTRIBUTE_ID (0x0C05) +#define ZCL_CURRENT_ALTERNATIVE_PARTIAL_PROFILE_INTERVAL_START_TIME_RECEIVED_ATTRIBUTE_ID (0x0C06) +#define ZCL_CURRENT_ALTERNATIVE_PARTIAL_PROFILE_INTERVAL_VALUE_DELIVERED_ATTRIBUTE_ID (0x0C07) +#define ZCL_CURRENT_ALTERNATIVE_PARTIAL_PROFILE_INTERVAL_VALUE_RECEIVED_ATTRIBUTE_ID (0x0C08) +#define ZCL_CURRENT_ALTERNATIVE_DAY_MAX_PRESSURE_ATTRIBUTE_ID (0x0C09) +#define ZCL_CURRENT_ALTERNATIVE_DAY_MIN_PRESSURE_ATTRIBUTE_ID (0x0C0A) +#define ZCL_PREVIOUS_DAY_ALTERNATIVE_MAX_PRESSURE_ATTRIBUTE_ID (0x0C0B) +#define ZCL_PREVIOUS_DAY_ALTERNATIVE_MIN_PRESSURE_ATTRIBUTE_ID (0x0C0C) +#define ZCL_CURRENT_ALTERNATIVE_DAY_ALTERNATIVE_MAX_DEMAND_ATTRIBUTE_ID (0x0C0D) +#define ZCL_PREVIOUS_DAY_ALTERNATIVE_MAX_DEMAND_ATTRIBUTE_ID (0x0C0E) +#define ZCL_CURRENT_ALTERNATIVE_MONTH_MAX_DEMAND_ATTRIBUTE_ID (0x0C0F) +#define ZCL_CURRENT_ALTERNATIVE_YEAR_MAX_DEMAND_ATTRIBUTE_ID (0x0C10) +#define ZCL_PREVIOUS_DAY2_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0C20) +#define ZCL_PREVIOUS_DAY2_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0C21) +#define ZCL_PREVIOUS_DAY3_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0C22) +#define ZCL_PREVIOUS_DAY3_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0C23) +#define ZCL_PREVIOUS_DAY4_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0C24) +#define ZCL_PREVIOUS_DAY4_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0C25) +#define ZCL_PREVIOUS_DAY5_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0C26) +#define ZCL_PREVIOUS_DAY5_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0C27) +#define ZCL_PREVIOUS_DAY6_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0C28) +#define ZCL_PREVIOUS_DAY6_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0C29) +#define ZCL_PREVIOUS_DAY7_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0C2A) +#define ZCL_PREVIOUS_DAY7_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0C2B) +#define ZCL_PREVIOUS_DAY8_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0C2C) +#define ZCL_PREVIOUS_DAY8_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0C2D) +#define ZCL_CURRENT_WEEK_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0C30) +#define ZCL_CURRENT_WEEK_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0C31) +#define ZCL_PREVIOUS_WEEK_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0C32) +#define ZCL_PREVIOUS_WEEK_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0C33) +#define ZCL_PREVIOUS_WEEK2_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0C34) +#define ZCL_PREVIOUS_WEEK2_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0C35) +#define ZCL_PREVIOUS_WEEK3_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0C36) +#define ZCL_PREVIOUS_WEEK3_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0C37) +#define ZCL_PREVIOUS_WEEK4_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0C38) +#define ZCL_PREVIOUS_WEEK4_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0C39) +#define ZCL_PREVIOUS_WEEK5_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0C3A) +#define ZCL_PREVIOUS_WEEK5_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0C3B) +#define ZCL_CURRENT_MONTH_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0C40) +#define ZCL_CURRENT_MONTH_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0C41) +#define ZCL_PREVIOUS_MONTH_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0C42) +#define ZCL_PREVIOUS_MONTH_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0C43) +#define ZCL_PREVIOUS_MONTH2_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0C44) +#define ZCL_PREVIOUS_MONTH2_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0C45) +#define ZCL_PREVIOUS_MONTH3_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0C46) +#define ZCL_PREVIOUS_MONTH3_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0C47) +#define ZCL_PREVIOUS_MONTH4_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0C48) +#define ZCL_PREVIOUS_MONTH4_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0C49) +#define ZCL_PREVIOUS_MONTH5_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0C4A) +#define ZCL_PREVIOUS_MONTH5_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0C4B) +#define ZCL_PREVIOUS_MONTH6_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0C4C) +#define ZCL_PREVIOUS_MONTH6_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0C4D) +#define ZCL_PREVIOUS_MONTH7_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0C4E) +#define ZCL_PREVIOUS_MONTH7_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0C4F) +#define ZCL_PREVIOUS_MONTH8_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0C50) +#define ZCL_PREVIOUS_MONTH8_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0C51) +#define ZCL_PREVIOUS_MONTH9_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0C52) +#define ZCL_PREVIOUS_MONTH9_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0C53) +#define ZCL_PREVIOUS_MONTH10_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0C54) +#define ZCL_PREVIOUS_MONTH10_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0C55) +#define ZCL_PREVIOUS_MONTH11_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0C56) +#define ZCL_PREVIOUS_MONTH11_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0C57) +#define ZCL_PREVIOUS_MONTH12_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0C58) +#define ZCL_PREVIOUS_MONTH12_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0C59) +#define ZCL_PREVIOUS_MONTH13_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0C5A) +#define ZCL_PREVIOUS_MONTH13_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0C5B) +#define ZCL_CURRENT_DAY_ALTERNATIVE_MAX_DEMAND_DELIVERED_ATTRIBUTE_ID (0x0C5C) +#define ZCL_CURRENT_DAY_ALTERNATIVE_MAX_DEMAND_DELIVERED_TIME_ATTRIBUTE_ID (0x0C5D) +#define ZCL_CURRENT_DAY_ALTERNATIVE_MAX_DEMAND_RECEIVED_ATTRIBUTE_ID (0x0C5E) +#define ZCL_CURRENT_DAY_ALTERNATIVE_MAX_DEMAND_RECEIVED_TIME_ATTRIBUTE_ID (0x0C5F) +#define ZCL_PREVIOUS_DAY_ALTERNATIVE_MAX_DEMAND_DELIVERED_ATTRIBUTE_ID (0x0C60) +#define ZCL_PREVIOUS_DAY_ALTERNATIVE_MAX_DEMAND_DELIVERED_TIME_ATTRIBUTE_ID (0x0C61) +#define ZCL_PREVIOUS_DAY_ALTERNATIVE_MAX_DEMAND_RECEIVED_ATTRIBUTE_ID (0x0C62) +#define ZCL_PREVIOUS_DAY_ALTERNATIVE_MAX_DEMAND_RECEIVED_TIME_ATTRIBUTE_ID (0x0C63) +#define ZCL_CURRENT_ACTIVE_SUMMATION_Q1_ATTRIBUTE_ID (0x0D01) +#define ZCL_CURRENT_ACTIVE_SUMMATION_Q2_ATTRIBUTE_ID (0x0D02) +#define ZCL_CURRENT_ACTIVE_SUMMATION_Q3_ATTRIBUTE_ID (0x0D03) +#define ZCL_CURRENT_ACTIVE_SUMMATION_Q4_ATTRIBUTE_ID (0x0D04) +#define ZCL_CURRENT_REACTIVE_SUMMATION_Q1_ATTRIBUTE_ID (0x0D05) +#define ZCL_CURRENT_REACTIVE_SUMMATION_Q2_ATTRIBUTE_ID (0x0D06) +#define ZCL_CURRENT_REACTIVE_SUMMATION_Q3_ATTRIBUTE_ID (0x0D07) +#define ZCL_CURRENT_REACTIVE_SUMMATION_Q4_ATTRIBUTE_ID (0x0D08) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Messaging // Client attributes -#define ZCL_MESSAGING_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_MESSAGING_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_MESSAGING_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_MESSAGING_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) -// Attribute types for cluster: Tunneling -// Cluster specification level: se-1.2b-15-0131-02 +// Attribute ids for cluster: Tunneling // Client attributes -#define ZCL_TUNNELING_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_TUNNELING_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_CLOSE_TUNNEL_TIMEOUT_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_TUNNELING_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_TUNNELING_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLOSE_TUNNEL_TIMEOUT_ATTRIBUTE_ID (0x0000) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) -// Attribute types for cluster: Prepayment -// Cluster specification level: se-1.2b-15-0131-02 +// Attribute ids for cluster: Prepayment // Client attributes -#define ZCL_PREPAYMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_PREPAYMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_PAYMENT_CONTROL_CONFIGURATION_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_CREDIT_REMAINING_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_EMERGENCY_CREDIT_REMAINING_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_CREDIT_STATUS_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_CREDIT_REMAINING_TIMESTAMP_ATTRIBUTE_ID 0x0004 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_ACCUMULATED_DEBT_ATTRIBUTE_ID 0x0005 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_OVERALL_DEBT_CAP_ATTRIBUTE_ID 0x0006 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_EMERGENCY_CREDIT_LIMIT_ALLOWANCE_ATTRIBUTE_ID 0x0010 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_EMERGENCY_CREDIT_THRESHOLD_ATTRIBUTE_ID 0x0011 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TOTAL_CREDIT_ADDED_ATTRIBUTE_ID 0x0020 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_MAX_CREDIT_LIMIT_ATTRIBUTE_ID 0x0021 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_MAX_CREDIT_PER_TOP_UP_ATTRIBUTE_ID 0x0022 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_FRIENDLY_CREDIT_WARNING_ATTRIBUTE_ID 0x0030 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_LOW_CREDIT_WARNING_ATTRIBUTE_ID 0x0031 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_IHD_LOW_CREDIT_WARNING_ATTRIBUTE_ID 0x0032 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_INTERRUPT_SUSPEND_TIME_ATTRIBUTE_ID 0x0033 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_REMAINING_FRIENDLY_CREDIT_TIME_ATTRIBUTE_ID 0x0034 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_NEXT_FRIENDLY_CREDIT_PERIOD_ATTRIBUTE_ID 0x0035 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CUT_OFF_VALUE_ATTRIBUTE_ID 0x0040 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TOKEN_CARRIER_ID_ATTRIBUTE_ID 0x0080 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TOP_UP_DATE_TIME_1_ATTRIBUTE_ID 0x0100 // Ver.: always -#define ZCL_TOP_UP_AMOUNT_1_ATTRIBUTE_ID 0x0101 // Ver.: always -#define ZCL_TOP_UP_ORIGINATING_DEVICE_1_ATTRIBUTE_ID 0x0102 // Ver.: always -#define ZCL_TOP_UP_CODE_1_ATTRIBUTE_ID 0x0103 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TOP_UP_DATE_TIME_2_ATTRIBUTE_ID 0x0110 // Ver.: always -#define ZCL_TOP_UP_AMOUNT_2_ATTRIBUTE_ID 0x0111 // Ver.: always -#define ZCL_TOP_UP_ORIGINATING_DEVICE_2_ATTRIBUTE_ID 0x0112 // Ver.: always -#define ZCL_TOP_UP_CODE_2_ATTRIBUTE_ID 0x0113 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TOP_UP_DATE_TIME_3_ATTRIBUTE_ID 0x0120 // Ver.: always -#define ZCL_TOP_UP_AMOUNT_3_ATTRIBUTE_ID 0x0121 // Ver.: always -#define ZCL_TOP_UP_ORIGINATING_DEVICE_3_ATTRIBUTE_ID 0x0122 // Ver.: always -#define ZCL_TOP_UP_CODE_3_ATTRIBUTE_ID 0x0123 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TOP_UP_DATE_TIME_4_ATTRIBUTE_ID 0x0130 // Ver.: always -#define ZCL_TOP_UP_AMOUNT_4_ATTRIBUTE_ID 0x0131 // Ver.: always -#define ZCL_TOP_UP_ORIGINATING_DEVICE_4_ATTRIBUTE_ID 0x0132 // Ver.: always -#define ZCL_TOP_UP_CODE_4_ATTRIBUTE_ID 0x0133 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TOP_UP_DATE_TIME_5_ATTRIBUTE_ID 0x0140 // Ver.: always -#define ZCL_TOP_UP_AMOUNT_5_ATTRIBUTE_ID 0x0141 // Ver.: always -#define ZCL_TOP_UP_ORIGINATING_DEVICE_5_ATTRIBUTE_ID 0x0142 // Ver.: always -#define ZCL_TOP_UP_CODE_5_ATTRIBUTE_ID 0x0143 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_DEBT_LABEL_1_ATTRIBUTE_ID 0x0210 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_DEBT_AMOUNT_1_ATTRIBUTE_ID 0x0211 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_DEBT_RECOVERY_METHOD_1_ATTRIBUTE_ID 0x0212 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_DEBT_RECOVERY_START_TIME_1_ATTRIBUTE_ID 0x0213 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_DEBT_RECOVERY_COLLECTION_TIME_1_ATTRIBUTE_ID 0x0214 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_DEBT_RECOVERY_FREQUENCY_1_ATTRIBUTE_ID 0x0216 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_DEBT_RECOVERY_AMOUNT_1_ATTRIBUTE_ID 0x0217 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_DEBT_RECOVERY_TOP_UP_PERCENTAGE_1_ATTRIBUTE_ID 0x0219 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_DEBT_LABEL_2_ATTRIBUTE_ID 0x0220 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_DEBT_AMOUNT_2_ATTRIBUTE_ID 0x0221 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_DEBT_RECOVERY_METHOD_2_ATTRIBUTE_ID 0x0222 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_DEBT_RECOVERY_START_TIME_2_ATTRIBUTE_ID 0x0223 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_DEBT_RECOVERY_COLLECTION_TIME_2_ATTRIBUTE_ID 0x0224 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_DEBT_RECOVERY_FREQUENCY_2_ATTRIBUTE_ID 0x0226 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_DEBT_RECOVERY_AMOUNT_2_ATTRIBUTE_ID 0x0227 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_DEBT_RECOVERY_TOP_UP_PERCENTAGE_2_ATTRIBUTE_ID 0x0229 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_DEBT_LABEL_3_ATTRIBUTE_ID 0x0230 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_DEBT_AMOUNT_3_ATTRIBUTE_ID 0x0231 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_DEBT_RECOVERY_METHOD_3_ATTRIBUTE_ID 0x0232 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_DEBT_RECOVERY_START_TIME_3_ATTRIBUTE_ID 0x0233 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_DEBT_RECOVERY_COLLECTION_TIME_3_ATTRIBUTE_ID 0x0234 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_DEBT_RECOVERY_FREQUENCY_3_ATTRIBUTE_ID 0x0236 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_DEBT_RECOVERY_AMOUNT_3_ATTRIBUTE_ID 0x0237 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_DEBT_RECOVERY_TOP_UP_PERCENTAGE_3_ATTRIBUTE_ID 0x0239 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREPAYMENT_ALARM_STATUS_ATTRIBUTE_ID 0x0400 // Ver.: since se-1.2a-07-5356-21 -#define ZCL_PREPAY_GENERIC_ALARM_MASK_ATTRIBUTE_ID 0x0401 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREPAY_SWITCH_ALARM_MASK_ATTRIBUTE_ID 0x0402 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREPAY_EVENT_ALARM_MASK_ATTRIBUTE_ID 0x0403 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_HISTORICAL_COST_CONSUMPTION_FORMATTING_ATTRIBUTE_ID 0x0500 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CONSUMPTION_UNIT_OF_MEASUREMENT_ATTRIBUTE_ID 0x0501 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENCY_SCALING_FACTOR_ATTRIBUTE_ID 0x0502 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREPAYMANT_CURRENCY_ATTRIBUTE_ID 0x0503 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_DAY_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x051C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_DAY_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x051D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x051E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x051F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY_2_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0520 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY_2_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0521 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY_3_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0522 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY_3_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0523 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY_4_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0524 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY_4_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0525 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY_5_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0526 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY_5_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0527 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY_6_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0528 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY_6_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0529 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY_7_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x052A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY_7_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x052B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY_8_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x052C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY_8_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x052D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_WEEK_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0530 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_WEEK_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0531 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_WEEK_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0532 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_WEEK_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0533 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_WEEK_2_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0534 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_WEEK_2_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0535 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_WEEK_3_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0536 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_WEEK_3_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0537 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_WEEK_4_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0538 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_WEEK_4_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0539 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_WEEK_5_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x053A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_WEEK_5_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x053B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_MONTH_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0540 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_MONTH_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0541 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0542 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0543 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH_2_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0544 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH_2_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0545 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH_3_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0546 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH_3_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0547 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH_4_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0548 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH_4_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0549 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH_5_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x054A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH_5_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x054B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH_6_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x054C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH_6_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x054D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH_7_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x054E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH_7_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x054F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH_8_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0550 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH_8_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0551 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH_9_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0552 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH_9_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0553 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH_10_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0554 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH_10_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0555 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH_11_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0556 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH_11_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0557 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH_12_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0558 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH_12_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0559 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH_13_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x055A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH_13_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x055B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREPAYMENT_HISTORICAL_FREEZE_TIME_ATTRIBUTE_ID 0x055C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREPAYMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_PREPAYMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Energy Management -// Cluster specification level: se-1.2b-15-0131-02 +#define ZCL_PAYMENT_CONTROL_CONFIGURATION_ATTRIBUTE_ID (0x0000) +#define ZCL_CREDIT_REMAINING_ATTRIBUTE_ID (0x0001) +#define ZCL_EMERGENCY_CREDIT_REMAINING_ATTRIBUTE_ID (0x0002) +#define ZCL_CREDIT_STATUS_ATTRIBUTE_ID (0x0003) +#define ZCL_CREDIT_REMAINING_TIMESTAMP_ATTRIBUTE_ID (0x0004) +#define ZCL_ACCUMULATED_DEBT_ATTRIBUTE_ID (0x0005) +#define ZCL_OVERALL_DEBT_CAP_ATTRIBUTE_ID (0x0006) +#define ZCL_EMERGENCY_CREDIT_LIMIT_ALLOWANCE_ATTRIBUTE_ID (0x0010) +#define ZCL_EMERGENCY_CREDIT_THRESHOLD_ATTRIBUTE_ID (0x0011) +#define ZCL_TOTAL_CREDIT_ADDED_ATTRIBUTE_ID (0x0020) +#define ZCL_MAX_CREDIT_LIMIT_ATTRIBUTE_ID (0x0021) +#define ZCL_MAX_CREDIT_PER_TOP_UP_ATTRIBUTE_ID (0x0022) +#define ZCL_FRIENDLY_CREDIT_WARNING_ATTRIBUTE_ID (0x0030) +#define ZCL_LOW_CREDIT_WARNING_ATTRIBUTE_ID (0x0031) +#define ZCL_IHD_LOW_CREDIT_WARNING_ATTRIBUTE_ID (0x0032) +#define ZCL_INTERRUPT_SUSPEND_TIME_ATTRIBUTE_ID (0x0033) +#define ZCL_REMAINING_FRIENDLY_CREDIT_TIME_ATTRIBUTE_ID (0x0034) +#define ZCL_NEXT_FRIENDLY_CREDIT_PERIOD_ATTRIBUTE_ID (0x0035) +#define ZCL_CUT_OFF_VALUE_ATTRIBUTE_ID (0x0040) +#define ZCL_TOKEN_CARRIER_ID_ATTRIBUTE_ID (0x0080) +#define ZCL_TOP_UP_DATE_TIME_1_ATTRIBUTE_ID (0x0100) +#define ZCL_TOP_UP_AMOUNT_1_ATTRIBUTE_ID (0x0101) +#define ZCL_TOP_UP_ORIGINATING_DEVICE_1_ATTRIBUTE_ID (0x0102) +#define ZCL_TOP_UP_CODE_1_ATTRIBUTE_ID (0x0103) +#define ZCL_TOP_UP_DATE_TIME_2_ATTRIBUTE_ID (0x0110) +#define ZCL_TOP_UP_AMOUNT_2_ATTRIBUTE_ID (0x0111) +#define ZCL_TOP_UP_ORIGINATING_DEVICE_2_ATTRIBUTE_ID (0x0112) +#define ZCL_TOP_UP_CODE_2_ATTRIBUTE_ID (0x0113) +#define ZCL_TOP_UP_DATE_TIME_3_ATTRIBUTE_ID (0x0120) +#define ZCL_TOP_UP_AMOUNT_3_ATTRIBUTE_ID (0x0121) +#define ZCL_TOP_UP_ORIGINATING_DEVICE_3_ATTRIBUTE_ID (0x0122) +#define ZCL_TOP_UP_CODE_3_ATTRIBUTE_ID (0x0123) +#define ZCL_TOP_UP_DATE_TIME_4_ATTRIBUTE_ID (0x0130) +#define ZCL_TOP_UP_AMOUNT_4_ATTRIBUTE_ID (0x0131) +#define ZCL_TOP_UP_ORIGINATING_DEVICE_4_ATTRIBUTE_ID (0x0132) +#define ZCL_TOP_UP_CODE_4_ATTRIBUTE_ID (0x0133) +#define ZCL_TOP_UP_DATE_TIME_5_ATTRIBUTE_ID (0x0140) +#define ZCL_TOP_UP_AMOUNT_5_ATTRIBUTE_ID (0x0141) +#define ZCL_TOP_UP_ORIGINATING_DEVICE_5_ATTRIBUTE_ID (0x0142) +#define ZCL_TOP_UP_CODE_5_ATTRIBUTE_ID (0x0143) +#define ZCL_DEBT_LABEL_1_ATTRIBUTE_ID (0x0210) +#define ZCL_DEBT_AMOUNT_1_ATTRIBUTE_ID (0x0211) +#define ZCL_DEBT_RECOVERY_METHOD_1_ATTRIBUTE_ID (0x0212) +#define ZCL_DEBT_RECOVERY_START_TIME_1_ATTRIBUTE_ID (0x0213) +#define ZCL_DEBT_RECOVERY_COLLECTION_TIME_1_ATTRIBUTE_ID (0x0214) +#define ZCL_DEBT_RECOVERY_FREQUENCY_1_ATTRIBUTE_ID (0x0216) +#define ZCL_DEBT_RECOVERY_AMOUNT_1_ATTRIBUTE_ID (0x0217) +#define ZCL_DEBT_RECOVERY_TOP_UP_PERCENTAGE_1_ATTRIBUTE_ID (0x0219) +#define ZCL_DEBT_LABEL_2_ATTRIBUTE_ID (0x0220) +#define ZCL_DEBT_AMOUNT_2_ATTRIBUTE_ID (0x0221) +#define ZCL_DEBT_RECOVERY_METHOD_2_ATTRIBUTE_ID (0x0222) +#define ZCL_DEBT_RECOVERY_START_TIME_2_ATTRIBUTE_ID (0x0223) +#define ZCL_DEBT_RECOVERY_COLLECTION_TIME_2_ATTRIBUTE_ID (0x0224) +#define ZCL_DEBT_RECOVERY_FREQUENCY_2_ATTRIBUTE_ID (0x0226) +#define ZCL_DEBT_RECOVERY_AMOUNT_2_ATTRIBUTE_ID (0x0227) +#define ZCL_DEBT_RECOVERY_TOP_UP_PERCENTAGE_2_ATTRIBUTE_ID (0x0229) +#define ZCL_DEBT_LABEL_3_ATTRIBUTE_ID (0x0230) +#define ZCL_DEBT_AMOUNT_3_ATTRIBUTE_ID (0x0231) +#define ZCL_DEBT_RECOVERY_METHOD_3_ATTRIBUTE_ID (0x0232) +#define ZCL_DEBT_RECOVERY_START_TIME_3_ATTRIBUTE_ID (0x0233) +#define ZCL_DEBT_RECOVERY_COLLECTION_TIME_3_ATTRIBUTE_ID (0x0234) +#define ZCL_DEBT_RECOVERY_FREQUENCY_3_ATTRIBUTE_ID (0x0236) +#define ZCL_DEBT_RECOVERY_AMOUNT_3_ATTRIBUTE_ID (0x0237) +#define ZCL_DEBT_RECOVERY_TOP_UP_PERCENTAGE_3_ATTRIBUTE_ID (0x0239) +#define ZCL_PREPAYMENT_ALARM_STATUS_ATTRIBUTE_ID (0x0400) +#define ZCL_PREPAY_GENERIC_ALARM_MASK_ATTRIBUTE_ID (0x0401) +#define ZCL_PREPAY_SWITCH_ALARM_MASK_ATTRIBUTE_ID (0x0402) +#define ZCL_PREPAY_EVENT_ALARM_MASK_ATTRIBUTE_ID (0x0403) +#define ZCL_HISTORICAL_COST_CONSUMPTION_FORMATTING_ATTRIBUTE_ID (0x0500) +#define ZCL_CONSUMPTION_UNIT_OF_MEASUREMENT_ATTRIBUTE_ID (0x0501) +#define ZCL_CURRENCY_SCALING_FACTOR_ATTRIBUTE_ID (0x0502) +#define ZCL_PREPAYMANT_CURRENCY_ATTRIBUTE_ID (0x0503) +#define ZCL_CURRENT_DAY_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x051C) +#define ZCL_CURRENT_DAY_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x051D) +#define ZCL_PREVIOUS_DAY_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x051E) +#define ZCL_PREVIOUS_DAY_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x051F) +#define ZCL_PREVIOUS_DAY_2_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0520) +#define ZCL_PREVIOUS_DAY_2_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0521) +#define ZCL_PREVIOUS_DAY_3_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0522) +#define ZCL_PREVIOUS_DAY_3_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0523) +#define ZCL_PREVIOUS_DAY_4_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0524) +#define ZCL_PREVIOUS_DAY_4_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0525) +#define ZCL_PREVIOUS_DAY_5_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0526) +#define ZCL_PREVIOUS_DAY_5_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0527) +#define ZCL_PREVIOUS_DAY_6_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0528) +#define ZCL_PREVIOUS_DAY_6_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0529) +#define ZCL_PREVIOUS_DAY_7_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x052A) +#define ZCL_PREVIOUS_DAY_7_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x052B) +#define ZCL_PREVIOUS_DAY_8_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x052C) +#define ZCL_PREVIOUS_DAY_8_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x052D) +#define ZCL_CURRENT_WEEK_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0530) +#define ZCL_CURRENT_WEEK_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0531) +#define ZCL_PREVIOUS_WEEK_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0532) +#define ZCL_PREVIOUS_WEEK_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0533) +#define ZCL_PREVIOUS_WEEK_2_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0534) +#define ZCL_PREVIOUS_WEEK_2_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0535) +#define ZCL_PREVIOUS_WEEK_3_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0536) +#define ZCL_PREVIOUS_WEEK_3_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0537) +#define ZCL_PREVIOUS_WEEK_4_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0538) +#define ZCL_PREVIOUS_WEEK_4_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0539) +#define ZCL_PREVIOUS_WEEK_5_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x053A) +#define ZCL_PREVIOUS_WEEK_5_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x053B) +#define ZCL_CURRENT_MONTH_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0540) +#define ZCL_CURRENT_MONTH_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0541) +#define ZCL_PREVIOUS_MONTH_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0542) +#define ZCL_PREVIOUS_MONTH_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0543) +#define ZCL_PREVIOUS_MONTH_2_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0544) +#define ZCL_PREVIOUS_MONTH_2_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0545) +#define ZCL_PREVIOUS_MONTH_3_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0546) +#define ZCL_PREVIOUS_MONTH_3_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0547) +#define ZCL_PREVIOUS_MONTH_4_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0548) +#define ZCL_PREVIOUS_MONTH_4_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0549) +#define ZCL_PREVIOUS_MONTH_5_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x054A) +#define ZCL_PREVIOUS_MONTH_5_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x054B) +#define ZCL_PREVIOUS_MONTH_6_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x054C) +#define ZCL_PREVIOUS_MONTH_6_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x054D) +#define ZCL_PREVIOUS_MONTH_7_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x054E) +#define ZCL_PREVIOUS_MONTH_7_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x054F) +#define ZCL_PREVIOUS_MONTH_8_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0550) +#define ZCL_PREVIOUS_MONTH_8_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0551) +#define ZCL_PREVIOUS_MONTH_9_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0552) +#define ZCL_PREVIOUS_MONTH_9_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0553) +#define ZCL_PREVIOUS_MONTH_10_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0554) +#define ZCL_PREVIOUS_MONTH_10_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0555) +#define ZCL_PREVIOUS_MONTH_11_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0556) +#define ZCL_PREVIOUS_MONTH_11_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0557) +#define ZCL_PREVIOUS_MONTH_12_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0558) +#define ZCL_PREVIOUS_MONTH_12_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0559) +#define ZCL_PREVIOUS_MONTH_13_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x055A) +#define ZCL_PREVIOUS_MONTH_13_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x055B) +#define ZCL_PREPAYMENT_HISTORICAL_FREEZE_TIME_ATTRIBUTE_ID (0x055C) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Energy Management // Client attributes -#define ZCL_ENERGY_MANAGEMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_ENERGY_MANAGEMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_LOAD_CONTROL_STATE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_CURRENT_EVENT_ID_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_CURRENT_EVENT_STATUS_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_CONFORMANCE_LEVEL_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_MINIMUM_OFF_TIME_ATTRIBUTE_ID 0x0004 // Ver.: always -#define ZCL_MINIMUM_ON_TIME_ATTRIBUTE_ID 0x0005 // Ver.: always -#define ZCL_MINIMUM_CYCLE_PERIOD_ATTRIBUTE_ID 0x0006 // Ver.: always -#define ZCL_ENERGY_MANAGEMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_ENERGY_MANAGEMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Calendar -// Cluster specification level: se-1.2b-15-0131-02 +#define ZCL_LOAD_CONTROL_STATE_ATTRIBUTE_ID (0x0000) +#define ZCL_CURRENT_EVENT_ID_ATTRIBUTE_ID (0x0001) +#define ZCL_CURRENT_EVENT_STATUS_ATTRIBUTE_ID (0x0002) +#define ZCL_CONFORMANCE_LEVEL_ATTRIBUTE_ID (0x0003) +#define ZCL_MINIMUM_OFF_TIME_ATTRIBUTE_ID (0x0004) +#define ZCL_MINIMUM_ON_TIME_ATTRIBUTE_ID (0x0005) +#define ZCL_MINIMUM_CYCLE_PERIOD_ATTRIBUTE_ID (0x0006) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Calendar // Client attributes -#define ZCL_CALENDAR_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_CALENDAR_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_AUXILIARY_SWITCH_1_LABEL_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_AUXILIARY_SWITCH_2_LABEL_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_AUXILIARY_SWITCH_3_LABEL_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_AUXILIARY_SWITCH_4_LABEL_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_AUXILIARY_SWITCH_5_LABEL_ATTRIBUTE_ID 0x0004 // Ver.: always -#define ZCL_AUXILIARY_SWITCH_6_LABEL_ATTRIBUTE_ID 0x0005 // Ver.: always -#define ZCL_AUXILIARY_SWITCH_7_LABEL_ATTRIBUTE_ID 0x0006 // Ver.: always -#define ZCL_AUXILIARY_SWITCH_8_LABEL_ATTRIBUTE_ID 0x0007 // Ver.: always -#define ZCL_CALENDAR_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_CALENDAR_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Device Management -// Cluster specification level: se-1.2b-15-0131-02 +#define ZCL_AUXILIARY_SWITCH_1_LABEL_ATTRIBUTE_ID (0x0000) +#define ZCL_AUXILIARY_SWITCH_2_LABEL_ATTRIBUTE_ID (0x0001) +#define ZCL_AUXILIARY_SWITCH_3_LABEL_ATTRIBUTE_ID (0x0002) +#define ZCL_AUXILIARY_SWITCH_4_LABEL_ATTRIBUTE_ID (0x0003) +#define ZCL_AUXILIARY_SWITCH_5_LABEL_ATTRIBUTE_ID (0x0004) +#define ZCL_AUXILIARY_SWITCH_6_LABEL_ATTRIBUTE_ID (0x0005) +#define ZCL_AUXILIARY_SWITCH_7_LABEL_ATTRIBUTE_ID (0x0006) +#define ZCL_AUXILIARY_SWITCH_8_LABEL_ATTRIBUTE_ID (0x0007) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Device Management // Client attributes -#define ZCL_PROVIDER_ID_CLIENT_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_RECEIVED_PROVIDER_ID_CLIENT_ATTRIBUTE_ID 0x0010 // Ver.: always -#define ZCL_TOU_TARIFF_ACTIVATION_ATTRIBUTE_ID 0x0100 // Ver.: always -#define ZCL_BLOCK_TARIFF_ACTIVATED_ATTRIBUTE_ID 0x0101 // Ver.: always -#define ZCL_BLOCK_TOU_TARIFF_ACTIVATED_ATTRIBUTE_ID 0x0102 // Ver.: always -#define ZCL_SINGLE_TARIFF_RATE_ACTIVATED_ATTRIBUTE_ID 0x0103 // Ver.: always -#define ZCL_ASYNCHRONOUS_BILLING_OCCURRED_ATTRIBUTE_ID 0x0104 // Ver.: always -#define ZCL_SYNCHRONOUS_BILLING_OCCURRED_ATTRIBUTE_ID 0x0105 // Ver.: always -#define ZCL_TARIFF_NOT_SUPPORTED_ATTRIBUTE_ID 0x0106 // Ver.: always -#define ZCL_PRICE_CLUSTER_NOT_FOUND_ATTRIBUTE_ID 0x0107 // Ver.: always -#define ZCL_CURRENCY_CHANGE_PASSIVE_ACTIVATED_ATTRIBUTE_ID 0x0108 // Ver.: always -#define ZCL_CURRENCY_CHANGE_PASSIVE_UPDATED_ATTRIBUTE_ID 0x0109 // Ver.: always -#define ZCL_PRICE_MATRIX_PASSIVE_ACTIVATED_ATTRIBUTE_ID 0x010A // Ver.: always -#define ZCL_PRICE_MATRIX_PASSIVE_UPDATED_ATTRIBUTE_ID 0x010B // Ver.: always -#define ZCL_TARIFF_CHANGE_PASSIVE_ACTIVATED_ATTRIBUTE_ID 0x010C // Ver.: always -#define ZCL_TARIFF_CHANGE_PASSIVE_UPDATED_ATTRIBUTE_ID 0x010D // Ver.: always -#define ZCL_PUBLISH_PRICE_RECEIVED_ATTRIBUTE_ID 0x01B0 // Ver.: always -#define ZCL_PUBLISH_PRICE_ACTIONED_ATTRIBUTE_ID 0x01B1 // Ver.: always -#define ZCL_PUBLISH_PRICE_CANCELLED_ATTRIBUTE_ID 0x01B2 // Ver.: always -#define ZCL_PUBLISH_PRICE_REJECTED_ATTRIBUTE_ID 0x01B3 // Ver.: always -#define ZCL_PUBLISH_TARIFF_INFO_RECEIVED_ATTRIBUTE_ID 0x01B4 // Ver.: always -#define ZCL_PUBLISH_TARIFF_INFO_ACTIONED_ATTRIBUTE_ID 0x01B5 // Ver.: always -#define ZCL_PUBLISH_TARIFF_INFO_CANCELLED_ATTRIBUTE_ID 0x01B6 // Ver.: always -#define ZCL_PUBLISH_TARIFF_INFO_REJECTED_ATTRIBUTE_ID 0x01B7 // Ver.: always -#define ZCL_PUBLISH_PRICE_MATRIX_RECEIVED_ATTRIBUTE_ID 0x01B8 // Ver.: always -#define ZCL_PUBLISH_PRICE_MATRIX_ACTIONED_ATTRIBUTE_ID 0x01B9 // Ver.: always -#define ZCL_PUBLISH_PRICE_MATRIX_CANCELLED_ATTRIBUTE_ID 0x01BA // Ver.: always -#define ZCL_PUBLISH_PRICE_MATRIX_REJECTED_ATTRIBUTE_ID 0x01BB // Ver.: always -#define ZCL_PUBLISH_BLOCK_THRESHOLDS_RECEIVED_ATTRIBUTE_ID 0x01BC // Ver.: always -#define ZCL_PUBLISH_BLOCK_THRESHOLDS_ACTIONED_ATTRIBUTE_ID 0x01BD // Ver.: always -#define ZCL_PUBLISH_BLOCK_THRESHOLDS_CANCELLED_ATTRIBUTE_ID 0x01BE // Ver.: always -#define ZCL_PUBLISH_BLOCK_THRESHOLDS_REJECTED_ATTRIBUTE_ID 0x01BF // Ver.: always -#define ZCL_PUBLISH_CALORIFIC_VALUE_RECEIVED_ATTRIBUTE_ID 0x01C0 // Ver.: always -#define ZCL_PUBLISH_CALORIFIC_VALUE_ACTIONED_ATTRIBUTE_ID 0x01C1 // Ver.: always -#define ZCL_PUBLISH_CALORIFIC_VALUE_CANCELLED_ATTRIBUTE_ID 0x01C2 // Ver.: always -#define ZCL_PUBLISH_CALORIFIC_VALUE_REJECTED_ATTRIBUTE_ID 0x01C3 // Ver.: always -#define ZCL_PUBLISH_CONVERSION_FACTOR_RECEIVED_ATTRIBUTE_ID 0x01C4 // Ver.: always -#define ZCL_PUBLISH_CONVERSION_FACTOR_ACTIONED_ATTRIBUTE_ID 0x01C5 // Ver.: always -#define ZCL_PUBLISH_CONVERSION_FACTOR_CANCELLED_ATTRIBUTE_ID 0x01C6 // Ver.: always -#define ZCL_PUBLISH_CONVERSION_FACTOR_REJECTED_ATTRIBUTE_ID 0x01C7 // Ver.: always -#define ZCL_PUBLISH_CO2_VALUE_RECEIVED_ATTRIBUTE_ID 0x01C8 // Ver.: always -#define ZCL_PUBLISH_CO2_VALUE_ACTIONED_ATTRIBUTE_ID 0x01C9 // Ver.: always -#define ZCL_PUBLISH_CO2_VALUE_CANCELLED_ATTRIBUTE_ID 0x01CA // Ver.: always -#define ZCL_PUBLISH_CO2_VALUE_REJECTED_ATTRIBUTE_ID 0x01CB // Ver.: always -#define ZCL_PUBLISH_CPP_EVENT_RECEIVED_ATTRIBUTE_ID 0x01CC // Ver.: always -#define ZCL_PUBLISH_CPP_EVENT_ACTIONED_ATTRIBUTE_ID 0x01CD // Ver.: always -#define ZCL_PUBLISH_CPP_EVENT_CANCELLED_ATTRIBUTE_ID 0x01CE // Ver.: always -#define ZCL_PUBLISH_CPP_EVENT_REJECTED_ATTRIBUTE_ID 0x01CF // Ver.: always -#define ZCL_PUBLISH_TIER_LABELS_RECEIVED_ATTRIBUTE_ID 0x01D0 // Ver.: always -#define ZCL_PUBLISH_TIER_LABELS_ACTIONED_ATTRIBUTE_ID 0x01D1 // Ver.: always -#define ZCL_PUBLISH_TIER_LABELS_CANCELLED_ATTRIBUTE_ID 0x01D2 // Ver.: always -#define ZCL_PUBLISH_TIER_LABELS_REJECTED_ATTRIBUTE_ID 0x01D3 // Ver.: always -#define ZCL_PUBLISH_BILLING_PERIOD_RECEIVED_ATTRIBUTE_ID 0x01D4 // Ver.: always -#define ZCL_PUBLISH_BILLING_PERIOD_ACTIONED_ATTRIBUTE_ID 0x01D5 // Ver.: always -#define ZCL_PUBLISH_BILLING_PERIOD_CANCELLED_ATTRIBUTE_ID 0x01D6 // Ver.: always -#define ZCL_PUBLISH_BILLING_PERIOD_REJECTED_ATTRIBUTE_ID 0x01D7 // Ver.: always -#define ZCL_PUBLISH_CONSOLIDATED_BILL_RECEIVED_ATTRIBUTE_ID 0x01D8 // Ver.: always -#define ZCL_PUBLISH_CONSOLIDATED_BILL_ACTIONED_ATTRIBUTE_ID 0x01D9 // Ver.: always -#define ZCL_PUBLISH_CONSOLIDATED_BILL_CANCELLED_ATTRIBUTE_ID 0x01DA // Ver.: always -#define ZCL_PUBLISH_CONSOLIDATED_BILL_REJECTED_ATTRIBUTE_ID 0x01DB // Ver.: always -#define ZCL_PUBLISH_BLOCK_PERIOD_RECEIVED_ATTRIBUTE_ID 0x01DC // Ver.: always -#define ZCL_PUBLISH_BLOCK_PERIOD_ACTIONED_ATTRIBUTE_ID 0x01DD // Ver.: always -#define ZCL_PUBLISH_BLOCK_PERIOD_CANCELLED_ATTRIBUTE_ID 0x01DE // Ver.: always -#define ZCL_PUBLISH_BLOCK_PERIOD_REJECTED_ATTRIBUTE_ID 0x01DF // Ver.: always -#define ZCL_PUBLISH_CREDIT_PAYMENT_INFO_RECEIVED_ATTRIBUTE_ID 0x01E0 // Ver.: always -#define ZCL_PUBLISH_CREDIT_PAYMENT_INFO_ACTIONED_ATTRIBUTE_ID 0x01E1 // Ver.: always -#define ZCL_PUBLISH_CREDIT_PAYMENT_INFO_CANCELLED_ATTRIBUTE_ID 0x01E2 // Ver.: always -#define ZCL_PUBLISH_CREDIT_PAYMENT_INFO_REJECTED_ATTRIBUTE_ID 0x01E3 // Ver.: always -#define ZCL_PUBLISH_CURRENCY_CONVERSION_RECEIVED_ATTRIBUTE_ID 0x01E4 // Ver.: always -#define ZCL_PUBLISH_CURRENCY_CONVERSION_ACTIONED_ATTRIBUTE_ID 0x01E5 // Ver.: always -#define ZCL_PUBLISH_CURRENCY_CONVERSION_CANCELLED_ATTRIBUTE_ID 0x01E6 // Ver.: always -#define ZCL_PUBLISH_CURRENCY_CONVERSION_REJECTED_ATTRIBUTE_ID 0x01E7 // Ver.: always -#define ZCL_CHECK_METER_ATTRIBUTE_ID 0x0200 // Ver.: always -#define ZCL_LOW_BATTERY_ATTRIBUTE_ID 0x0201 // Ver.: always -#define ZCL_TAMPER_DETECT_ATTRIBUTE_ID 0x0202 // Ver.: always -#define ZCL_DEVICE_MANAGEMENT_SUPPLY_STATUS_ATTRIBUTE_ID 0x0203 // Ver.: always -#define ZCL_SUPPLY_QUALITY_ATTRIBUTE_ID 0x0204 // Ver.: always -#define ZCL_LEAK_DETECT_ATTRIBUTE_ID 0x0205 // Ver.: always -#define ZCL_SERVICE_DISCONNECT_ATTRIBUTE_ID 0x0206 // Ver.: always -#define ZCL_REVERSE_FLOW_GENERAL_ATTRIBUTE_ID 0x0207 // Ver.: always -#define ZCL_METER_COVER_REMOVED_ATTRIBUTE_ID 0x0208 // Ver.: always -#define ZCL_METER_COVER_CLOSED_ATTRIBUTE_ID 0x0209 // Ver.: always -#define ZCL_STRONG_MAGNETIC_FIELD_ATTRIBUTE_ID 0x020A // Ver.: always -#define ZCL_NO_STRONG_MAGNETIC_FIELD_ATTRIBUTE_ID 0x020B // Ver.: always -#define ZCL_BATTERY_FAILURE_ATTRIBUTE_ID 0x020C // Ver.: always -#define ZCL_PROGRAM_MEMORY_ERROR_ATTRIBUTE_ID 0x020D // Ver.: always -#define ZCL_RAM_ERROR_ATTRIBUTE_ID 0x020E // Ver.: always -#define ZCL_NV_MEMORY_ERROR_ATTRIBUTE_ID 0x020F // Ver.: always -#define ZCL_LOW_VOLTAGE_L1_ATTRIBUTE_ID 0x0210 // Ver.: always -#define ZCL_HIGH_VOLTAGE_L1_ATTRIBUTE_ID 0x0211 // Ver.: always -#define ZCL_LOW_VOLTAGE_L2_ATTRIBUTE_ID 0x0212 // Ver.: always -#define ZCL_HIGH_VOLTAGE_L2_ATTRIBUTE_ID 0x0213 // Ver.: always -#define ZCL_LOW_VOLTAGE_L3_ATTRIBUTE_ID 0x0214 // Ver.: always -#define ZCL_HIGH_VOLTAGE_L3_ATTRIBUTE_ID 0x0215 // Ver.: always -#define ZCL_OVER_CURRENT_L1_ATTRIBUTE_ID 0x0216 // Ver.: always -#define ZCL_OVER_CURRENT_L2_ATTRIBUTE_ID 0x0217 // Ver.: always -#define ZCL_OVER_CURRENT_L3_ATTRIBUTE_ID 0x0218 // Ver.: always -#define ZCL_FREQUENCY_TOO_LOW_L1_ATTRIBUTE_ID 0x0219 // Ver.: always -#define ZCL_FREQUENCY_TOO_HIGH_L1_ATTRIBUTE_ID 0x021A // Ver.: always -#define ZCL_FREQUENCY_TOO_LOW_L2_ATTRIBUTE_ID 0x021B // Ver.: always -#define ZCL_FREQUENCY_TOO_HIGH_L2_ATTRIBUTE_ID 0x021C // Ver.: always -#define ZCL_FREQUENCY_TOO_LOW_L3_ATTRIBUTE_ID 0x021D // Ver.: always -#define ZCL_FREQUENCY_TOO_HIGH_L3_ATTRIBUTE_ID 0x021E // Ver.: always -#define ZCL_GROUND_FAULT_ATTRIBUTE_ID 0x021F // Ver.: always -#define ZCL_ELECTRIC_TAMPER_DETECT_ATTRIBUTE_ID 0x0220 // Ver.: always -#define ZCL_INCORRECT_POLARITY_ATTRIBUTE_ID 0x0221 // Ver.: always -#define ZCL_CURRENT_NO_VOLTAGE_ATTRIBUTE_ID 0x0222 // Ver.: always -#define ZCL_UNDER_VOLTAGE_ATTRIBUTE_ID 0x0223 // Ver.: always -#define ZCL_OVER_VOLTAGE_ATTRIBUTE_ID 0x0224 // Ver.: always -#define ZCL_NORMAL_VOLTAGE_ATTRIBUTE_ID 0x0225 // Ver.: always -#define ZCL_PF_BELOW_THRESHOLD_ATTRIBUTE_ID 0x0226 // Ver.: always -#define ZCL_PF_ABOVE_THRESHOLD_ATTRIBUTE_ID 0x0227 // Ver.: always -#define ZCL_TERMINAL_COVER_REMOVED_ATTRIBUTE_ID 0x0228 // Ver.: always -#define ZCL_TERMINAL_COVER_CLOSED_ATTRIBUTE_ID 0x0229 // Ver.: always -#define ZCL_BURST_DETECT_ATTRIBUTE_ID 0x0230 // Ver.: always -#define ZCL_PRESSURE_TOO_LOW_ATTRIBUTE_ID 0x0231 // Ver.: always -#define ZCL_PRESSURE_TOO_HIGH_ATTRIBUTE_ID 0x0232 // Ver.: always -#define ZCL_FLOW_SENSOR_COMMUNICATION_ERROR_ATTRIBUTE_ID 0x0233 // Ver.: always -#define ZCL_FLOW_SENSOR_MEASUREMENT_FAULT_ATTRIBUTE_ID 0x0234 // Ver.: always -#define ZCL_FLOW_SENSOR_REVERSE_FLOW_ATTRIBUTE_ID 0x0235 // Ver.: always -#define ZCL_FLOW_SENSOR_AIR_DETECT_ATTRIBUTE_ID 0x0236 // Ver.: always -#define ZCL_PIPE_EMPTY_ATTRIBUTE_ID 0x0237 // Ver.: always -#define ZCL_INLET_TEMP_SENSOR_FAULT_ATTRIBUTE_ID 0x0250 // Ver.: always -#define ZCL_OUTLET_TEMP_SENSOR_FAULT_ATTRIBUTE_ID 0x0251 // Ver.: always -#define ZCL_REVERSE_FLOW_ATTRIBUTE_ID 0x0260 // Ver.: always -#define ZCL_TILT_TAMPER_ATTRIBUTE_ID 0x0261 // Ver.: always -#define ZCL_BATTERY_COVER_REMOVED_ATTRIBUTE_ID 0x0262 // Ver.: always -#define ZCL_BATTERY_COVER_CLOSED_ATTRIBUTE_ID 0x0263 // Ver.: always -#define ZCL_EXCESS_FLOW_ATTRIBUTE_ID 0x0264 // Ver.: always -#define ZCL_TILT_TAMPER_ENABLED_ATTRIBUTE_ID 0x0265 // Ver.: always -#define ZCL_MEASUREMENT_SYSTEM_ERROR_ATTRIBUTE_ID 0x0270 // Ver.: always -#define ZCL_WATCHDOG_ERROR_ATTRIBUTE_ID 0x0271 // Ver.: always -#define ZCL_SUPPLY_DISCONNECT_FAILURE_ATTRIBUTE_ID 0x0272 // Ver.: always -#define ZCL_SUPPLY_CONNECT_FAILURE_ATTRIBUTE_ID 0x0273 // Ver.: always -#define ZCL_MEASUREMENT_SOFTWARE_CHANGED_ATTRIBUTE_ID 0x0274 // Ver.: always -#define ZCL_DST_ENABLED_ATTRIBUTE_ID 0x0275 // Ver.: always -#define ZCL_DST_DISABLED_ATTRIBUTE_ID 0x0276 // Ver.: always -#define ZCL_CLOCK_ADJ_BACKWARD_ATTRIBUTE_ID 0x0277 // Ver.: always -#define ZCL_CLOCK_ADJ_FORWARD_ATTRIBUTE_ID 0x0278 // Ver.: always -#define ZCL_CLOCK_INVALID_ATTRIBUTE_ID 0x0279 // Ver.: always -#define ZCL_COMMUNICATION_ERROR_HAN_ATTRIBUTE_ID 0x027A // Ver.: always -#define ZCL_COMMUNICATION_OK_HAN_ATTRIBUTE_ID 0x027B // Ver.: always -#define ZCL_METER_FRAUD_ATTEMPT_ATTRIBUTE_ID 0x027C // Ver.: always -#define ZCL_POWER_LOSS_ATTRIBUTE_ID 0x027D // Ver.: always -#define ZCL_UNUSUAL_HAN_TRAFFIC_ATTRIBUTE_ID 0x027E // Ver.: always -#define ZCL_UNEXPECTED_CLOCK_CHANGE_ATTRIBUTE_ID 0x027F // Ver.: always -#define ZCL_COMMS_USING_UNAUTHENTICATED_COMPONENT_ATTRIBUTE_ID 0x0280 // Ver.: always -#define ZCL_METERING_ERROR_REG_CLEAR_ATTRIBUTE_ID 0x0281 // Ver.: always -#define ZCL_METERING_ALARM_REG_CLEAR_ATTRIBUTE_ID 0x0282 // Ver.: always -#define ZCL_UNEXPECTED_HW_RESET_ATTRIBUTE_ID 0x0283 // Ver.: always -#define ZCL_UNEXPECTED_PROGRAM_EXECUTION_ATTRIBUTE_ID 0x0284 // Ver.: always -#define ZCL_LIMIT_THRESHOLD_EXCEEDED_ATTRIBUTE_ID 0x0285 // Ver.: always -#define ZCL_LIMIT_THRESHOLD_OK_ATTRIBUTE_ID 0x0286 // Ver.: always -#define ZCL_LIMIT_THRESHOLD_CHANGED_ATTRIBUTE_ID 0x0287 // Ver.: always -#define ZCL_MAXIMUM_DEMAND_EXCEEDED_ATTRIBUTE_ID 0x0288 // Ver.: always -#define ZCL_PROFILE_CLEARED_ATTRIBUTE_ID 0x0289 // Ver.: always -#define ZCL_LOAD_PROFILE_CLEARED_ATTRIBUTE_ID 0x028A // Ver.: always -#define ZCL_BATTERY_WARN_ATTRIBUTE_ID 0x028B // Ver.: always -#define ZCL_WRONG_SIGNATURE_ATTRIBUTE_ID 0x028C // Ver.: always -#define ZCL_NO_SIGNATURE_ATTRIBUTE_ID 0x028D // Ver.: always -#define ZCL_SIGNATURE_NOT_VALID_ATTRIBUTE_ID 0x028E // Ver.: always -#define ZCL_UNAUTHORISE_ACTION_FROM_HAN_ATTRIBUTE_ID 0x028F // Ver.: always -#define ZCL_FAST_POLLING_START_ATTRIBUTE_ID 0x0290 // Ver.: always -#define ZCL_FAST_POLLING_END_ATTRIBUTE_ID 0x0291 // Ver.: always -#define ZCL_METER_REPORTING_INTERVAL_CHANGED_ATTRIBUTE_ID 0x0292 // Ver.: always -#define ZCL_DISCONNECT_TO_LOAD_LIMIT_ATTRIBUTE_ID 0x0293 // Ver.: always -#define ZCL_METER_SUPPLY_STATUS_REGISTER_CHANGED_ATTRIBUTE_ID 0x0294 // Ver.: always -#define ZCL_METER_ALARM_STATUS_REGISTER_CHANGED_ATTRIBUTE_ID 0x0295 // Ver.: always -#define ZCL_EXTENDED_METER_ALARM_STATUS_REGISTER_CHANGED_ATTRIBUTE_ID 0x0296 // Ver.: always -#define ZCL_DATA_ACCESS_VIA_LOCAL_PORT_ATTRIBUTE_ID 0x0297 // Ver.: always -#define ZCL_CONFIGURE_MIRROR_SUCCESS_ATTRIBUTE_ID 0x0298 // Ver.: always -#define ZCL_CONFIGURE_MIRROR_FAILURE_ATTRIBUTE_ID 0x0299 // Ver.: always -#define ZCL_CONFIGURE_NOTIFICATION_FLAG_SCHEME_SUCCESS_ATTRIBUTE_ID 0x029A // Ver.: always -#define ZCL_CONFIGURE_NOTIFICATION_FLAG_SCHEME_FAILURE_ATTRIBUTE_ID 0x029B // Ver.: always -#define ZCL_CONFIGURE_NOTIFICATION_FLAGS_SUCCESS_ATTRIBUTE_ID 0x029C // Ver.: always -#define ZCL_CONFIGURE_NOTIFICATION_FLAGS_FAILURE_ATTRIBUTE_ID 0x029D // Ver.: always -#define ZCL_STAY_AWAKE_REQUEST_HAN_ATTRIBUTE_ID 0x029E // Ver.: always -#define ZCL_STAY_AWAKE_REQUEST_WAN_ATTRIBUTE_ID 0x029F // Ver.: always -#define ZCL_MANUFACTURER_SPECIFIC_A_ATTRIBUTE_ID 0x02B0 // Ver.: always -#define ZCL_MANUFACTURER_SPECIFIC_B_ATTRIBUTE_ID 0x02B1 // Ver.: always -#define ZCL_MANUFACTURER_SPECIFIC_C_ATTRIBUTE_ID 0x02B2 // Ver.: always -#define ZCL_MANUFACTURER_SPECIFIC_D_ATTRIBUTE_ID 0x02B3 // Ver.: always -#define ZCL_MANUFACTURER_SPECIFIC_E_ATTRIBUTE_ID 0x02B4 // Ver.: always -#define ZCL_MANUFACTURER_SPECIFIC_F_ATTRIBUTE_ID 0x02B5 // Ver.: always -#define ZCL_MANUFACTURER_SPECIFIC_G_ATTRIBUTE_ID 0x02B6 // Ver.: always -#define ZCL_MANUFACTURER_SPECIFIC_H_ATTRIBUTE_ID 0x02B7 // Ver.: always -#define ZCL_MANUFACTURER_SPECIFIC_I_ATTRIBUTE_ID 0x02B8 // Ver.: always -#define ZCL_GET_PROFILE_COMMAND_RECEIVED_ATTRIBUTE_ID 0x02C0 // Ver.: always -#define ZCL_GET_PROFILE_COMMAND_ACTIONED_ATTRIBUTE_ID 0x02C1 // Ver.: always -#define ZCL_GET_PROFILE_COMMAND_CANCELLED_ATTRIBUTE_ID 0x02C2 // Ver.: always -#define ZCL_GET_PROFILE_COMMAND_REJECTED_ATTRIBUTE_ID 0x02C3 // Ver.: always -#define ZCL_REQUEST_MIRROR_RESPONSE_COMMAND_RECEIVED_ATTRIBUTE_ID 0x02C4 // Ver.: always -#define ZCL_REQUEST_MIRROR_RESPONSE_COMMAND_ACTIONED_ATTRIBUTE_ID 0x02C5 // Ver.: always -#define ZCL_REQUEST_MIRROR_RESPONSE_COMMAND_CANCELLED_ATTRIBUTE_ID 0x02C6 // Ver.: always -#define ZCL_REQUEST_MIRROR_RESPONSE_COMMAND_REJECTED_ATTRIBUTE_ID 0x02C7 // Ver.: always -#define ZCL_MIRROR_REMOVED_COMMAND_RECEIVED_ATTRIBUTE_ID 0x02C8 // Ver.: always -#define ZCL_MIRROR_REMOVED_COMMAND_ACTIONED_ATTRIBUTE_ID 0x02C9 // Ver.: always -#define ZCL_MIRROR_REMOVED_COMMAND_CANCELLED_ATTRIBUTE_ID 0x02CA // Ver.: always -#define ZCL_MIRROR_REMOVED_COMMAND_REJECTED_ATTRIBUTE_ID 0x02CB // Ver.: always -#define ZCL_GET_SNAPSHOT_COMMAND_RECEIVED_ATTRIBUTE_ID 0x02CC // Ver.: always -#define ZCL_GET_SNAPSHOT_COMMAND_ACTIONED_ATTRIBUTE_ID 0x02CD // Ver.: always -#define ZCL_GET_SNAPSHOT_COMMAND_CANCELLED_ATTRIBUTE_ID 0x02CE // Ver.: always -#define ZCL_GET_SNAPSHOT_COMMAND_REJECTED_ATTRIBUTE_ID 0x02CF // Ver.: always -#define ZCL_TAKE_SNAPSHOT_COMMAND_RECEIVED_ATTRIBUTE_ID 0x02D0 // Ver.: always -#define ZCL_TAKE_SNAPSHOT_COMMAND_ACTIONED_ATTRIBUTE_ID 0x02D1 // Ver.: always -#define ZCL_TAKE_SNAPSHOT_COMMAND_CANCELLED_ATTRIBUTE_ID 0x02D2 // Ver.: always -#define ZCL_TAKE_SNAPSHOT_COMMAND_REJECTED_ATTRIBUTE_ID 0x02D3 // Ver.: always -#define ZCL_MIRROR_REPORT_ATTRIBUTE_RESPONSE_COMMAND_RECEIVED_ATTRIBUTE_ID 0x02D4 // Ver.: always -#define ZCL_MIRROR_REPORT_ATTRIBUTE_RESPONSE_COMMAND_ACTIONED_ATTRIBUTE_ID 0x02D5 // Ver.: always -#define ZCL_MIRROR_REPORT_ATTRIBUTE_RESPONSE_COMMAND_CANCELLED_ATTRIBUTE_ID 0x02D6 // Ver.: always -#define ZCL_MIRROR_REPORT_ATTRIBUTE_RESPONSE_COMMAND_REJECTED_ATTRIBUTE_ID 0x02D7 // Ver.: always -#define ZCL_SCHEDULE_SNAPSHOT_COMMAND_RECEIVED_ATTRIBUTE_ID 0x02D8 // Ver.: always -#define ZCL_SCHEDULE_SNAPSHOT_COMMAND_ACTIONED_ATTRIBUTE_ID 0x02D9 // Ver.: always -#define ZCL_SCHEDULE_SNAPSHOT_COMMAND_CANCELLED_ATTRIBUTE_ID 0x02DA // Ver.: always -#define ZCL_SCHEDULE_SNAPSHOT_COMMAND_REJECTED_ATTRIBUTE_ID 0x02DB // Ver.: always -#define ZCL_START_SAMPLING_COMMAND_RECEIVED_ATTRIBUTE_ID 0x02DC // Ver.: always -#define ZCL_START_SAMPLING_COMMAND_ACTIONED_ATTRIBUTE_ID 0x02DD // Ver.: always -#define ZCL_START_SAMPLING_COMMAND_CANCELLED_ATTRIBUTE_ID 0x02DE // Ver.: always -#define ZCL_START_SAMPLING_COMMAND_REJECTED_ATTRIBUTE_ID 0x02DF // Ver.: always -#define ZCL_GET_SAMPLED_DATA_COMMAND_RECEIVED_ATTRIBUTE_ID 0x02E0 // Ver.: always -#define ZCL_GET_SAMPLED_DATA_COMMAND_ACTIONED_ATTRIBUTE_ID 0x02E1 // Ver.: always -#define ZCL_GET_SAMPLED_DATA_COMMAND_CANCELLED_ATTRIBUTE_ID 0x02E2 // Ver.: always -#define ZCL_GET_SAMPLED_DATA_COMMAND_REJECTED_ATTRIBUTE_ID 0x02E3 // Ver.: always -#define ZCL_SUPPLY_ON_ATTRIBUTE_ID 0x02E4 // Ver.: always -#define ZCL_SUPPLY_ARMED_ATTRIBUTE_ID 0x02E5 // Ver.: always -#define ZCL_SUPPLY_OFF_ATTRIBUTE_ID 0x02E6 // Ver.: always -#define ZCL_DISCONNECTED_DUE_TO_TAMPER_DETECTED_ATTRIBUTE_ID 0x02E7 // Ver.: always -#define ZCL_MANUAL_DISCONNECT_ATTRIBUTE_ID 0x02E8 // Ver.: always -#define ZCL_MANUAL_CONNECT_ATTRIBUTE_ID 0x02E9 // Ver.: always -#define ZCL_REMOTE_DISCONNECTION_ATTRIBUTE_ID 0x02EA // Ver.: always -#define ZCL_REMOTE_CONNECT_ATTRIBUTE_ID 0x02EB // Ver.: always -#define ZCL_LOCAL_DISCONNECTION_ATTRIBUTE_ID 0x02EC // Ver.: always -#define ZCL_LOCAL_CONNECT_ATTRIBUTE_ID 0x02ED // Ver.: always -#define ZCL_CHANGE_SUPPLY_RECEIVED_ATTRIBUTE_ID 0x02EE // Ver.: always -#define ZCL_CHANGE_SUPPLY_ACTIONED_ATTRIBUTE_ID 0x02EF // Ver.: always -#define ZCL_CHANGE_SUPPLY_CANCELLED_ATTRIBUTE_ID 0x02F0 // Ver.: always -#define ZCL_CHANGE_SUPPLY_REJECTED_ATTRIBUTE_ID 0x02F1 // Ver.: always -#define ZCL_LOCAL_CHANGE_SUPPLY_RECEIVED_ATTRIBUTE_ID 0x02F2 // Ver.: always -#define ZCL_LOCAL_CHANGE_SUPPLY_ACTIONED_ATTRIBUTE_ID 0x02F3 // Ver.: always -#define ZCL_LOCAL_CHANGE_SUPPLY_CANCELLED_ATTRIBUTE_ID 0x02F4 // Ver.: always -#define ZCL_LOCAL_CHANGE_SUPPLY_REJECTED_ATTRIBUTE_ID 0x02F5 // Ver.: always -#define ZCL_PUBLISH_UNCONTROLLED_FLOW_THRESHOLD_RECEIVED_ATTRIBUTE_ID 0x02F6 // Ver.: always -#define ZCL_PUBLISH_UNCONTROLLED_FLOW_THRESHOLD_ACTIONED_ATTRIBUTE_ID 0x02F7 // Ver.: always -#define ZCL_PUBLISH_UNCONTROLLED_FLOW_THRESHOLD_CANCELLED_ATTRIBUTE_ID 0x02F8 // Ver.: always -#define ZCL_PUBLISH_UNCONTROLLED_FLOW_THRESHOLD_REJECTED_ATTRIBUTE_ID 0x02F9 // Ver.: always -#define ZCL_MESSAGE_CONFIRMATION_SENT_ATTRIBUTE_ID 0x0300 // Ver.: always -#define ZCL_DISPLAY_MESSAGE_RECEIVED_ATTRIBUTE_ID 0x03C0 // Ver.: always -#define ZCL_DISPLAY_MESSAGE_ACTIONED_ATTRIBUTE_ID 0x03C1 // Ver.: always -#define ZCL_DISPLAY_MESSAGE_CANCELLED_ATTRIBUTE_ID 0x03C2 // Ver.: always -#define ZCL_DISPLAY_MESSAGE_REJECTED_ATTRIBUTE_ID 0x03C3 // Ver.: always -#define ZCL_CANCEL_MESSAGE_RECEIVED_ATTRIBUTE_ID 0x03C4 // Ver.: always -#define ZCL_CANCEL_MESSAGE_ACTIONED_ATTRIBUTE_ID 0x03C5 // Ver.: always -#define ZCL_CANCEL_MESSAGE_CANCELLED_ATTRIBUTE_ID 0x03C6 // Ver.: always -#define ZCL_CANCEL_MESSAGE_REJECTED_ATTRIBUTE_ID 0x03C7 // Ver.: always -#define ZCL_LOW_CREDIT_ATTRIBUTE_ID 0x0400 // Ver.: always -#define ZCL_NO_CREDIT_ATTRIBUTE_ID 0x0401 // Ver.: always -#define ZCL_CREDIT_EXHAUSTED_ATTRIBUTE_ID 0x0402 // Ver.: always -#define ZCL_EMERGENCY_CREDIT_ENABLED_ATTRIBUTE_ID 0x0403 // Ver.: always -#define ZCL_EMERGENCY_CREDIT_EXHAUSTED_ATTRIBUTE_ID 0x0404 // Ver.: always -#define ZCL_PREPAY_IHD_LOW_CREDIT_WARNING_ATTRIBUTE_ID 0x0405 // Ver.: always -#define ZCL_PHYSICAL_ATTACK_ON_THE_PREPAY_METER_ATTRIBUTE_ID 0x0420 // Ver.: always -#define ZCL_ELECTRONIC_ATTACK_ON_THE_PREPAY_METER_ATTRIBUTE_ID 0x0421 // Ver.: always -#define ZCL_DISCOUNT_APPLIED_ATTRIBUTE_ID 0x0422 // Ver.: always -#define ZCL_CREDIT_ADJUSTMENT_ATTRIBUTE_ID 0x0423 // Ver.: always -#define ZCL_CREDIT_ADJUST_FAIL_ATTRIBUTE_ID 0x0424 // Ver.: always -#define ZCL_DEBT_ADJUSTMENT_ATTRIBUTE_ID 0x0425 // Ver.: always -#define ZCL_DEBT_ADJUST_FAIL_ATTRIBUTE_ID 0x0426 // Ver.: always -#define ZCL_MODE_CHANGE_ATTRIBUTE_ID 0x0427 // Ver.: always -#define ZCL_TOPUP_CODE_ERROR_ATTRIBUTE_ID 0x0428 // Ver.: always -#define ZCL_TOPUP_ALREADY_USED_ATTRIBUTE_ID 0x0429 // Ver.: always -#define ZCL_TOPUP_CODE_INVALID_ATTRIBUTE_ID 0x042A // Ver.: always -#define ZCL_TOPUP_ACCEPTED_VIA_REMOTE_ATTRIBUTE_ID 0x042B // Ver.: always -#define ZCL_TOPUP_ACCEPTED_VIA_MANUAL_ENTRY_ATTRIBUTE_ID 0x042C // Ver.: always -#define ZCL_FRIENDLY_CREDIT_IN_USE_ATTRIBUTE_ID 0x042D // Ver.: always -#define ZCL_FRIENDLY_CREDIT_END_WARNING_ATTRIBUTE_ID 0x042E // Ver.: always -#define ZCL_FRIENDLY_CREDIT_PERIOD_END_ATTRIBUTE_ID 0x042F // Ver.: always -#define ZCL_PREPAY_ERROR_REG_CLEAR_ATTRIBUTE_ID 0x0430 // Ver.: always -#define ZCL_PREPAY_ALARM_REG_CLEAR_ATTRIBUTE_ID 0x0431 // Ver.: always -#define ZCL_PREPAY_CLUSTER_NOT_FOUND_ATTRIBUTE_ID 0x0432 // Ver.: always -#define ZCL_TOPUP_VALUE_TOO_LARGE_ATTRIBUTE_ID 0x0433 // Ver.: always -#define ZCL_MODE_CREDIT_2_PREPAY_ATTRIBUTE_ID 0x0441 // Ver.: always -#define ZCL_MODE_PREPAY_2_CREDIT_ATTRIBUTE_ID 0x0442 // Ver.: always -#define ZCL_MODE_DEFAULT_ATTRIBUTE_ID 0x0443 // Ver.: always -#define ZCL_SELECT_AVAILABLE_EMERGENCY_CREDIT_RECEIVED_ATTRIBUTE_ID 0x04C0 // Ver.: always -#define ZCL_SELECT_AVAILABLE_EMERGENCY_CREDIT_ACTIONED_ATTRIBUTE_ID 0x04C1 // Ver.: always -#define ZCL_SELECT_AVAILABLE_EMERGENCY_CREDIT_CANCELLED_ATTRIBUTE_ID 0x04C2 // Ver.: always -#define ZCL_SELECT_AVAILABLE_EMERGENCY_CREDIT_REJECTED_ATTRIBUTE_ID 0x04C3 // Ver.: always -#define ZCL_CHANGE_DEBT_RECEIVED_ATTRIBUTE_ID 0x04C4 // Ver.: always -#define ZCL_CHANGE_DEBT_ACTIONED_ATTRIBUTE_ID 0x04C5 // Ver.: always -#define ZCL_CHANGE_DEBT_CANCELLED_ATTRIBUTE_ID 0x04C6 // Ver.: always -#define ZCL_CHANGE_DEBT_REJECTED_ATTRIBUTE_ID 0x04C7 // Ver.: always -#define ZCL_EMERGENCY_CREDIT_SETUP_RECEIVED_ATTRIBUTE_ID 0x04C8 // Ver.: always -#define ZCL_EMERGENCY_CREDIT_SETUP_ACTIONED_ATTRIBUTE_ID 0x04C9 // Ver.: always -#define ZCL_EMERGENCY_CREDIT_SETUP_CANCELLED_ATTRIBUTE_ID 0x04CA // Ver.: always -#define ZCL_EMERGENCY_CREDIT_SETUP_REJECTED_ATTRIBUTE_ID 0x04CB // Ver.: always -#define ZCL_CONSUMER_TOPUP_RECEIVED_ATTRIBUTE_ID 0x04CC // Ver.: always -#define ZCL_CONSUMER_TOPUP_ACTIONED_ATTRIBUTE_ID 0x04CD // Ver.: always -#define ZCL_CONSUMER_TOPUP_CANCELLED_ATTRIBUTE_ID 0x04CE // Ver.: always -#define ZCL_CONSUMER_TOPUP_REJECTED_ATTRIBUTE_ID 0x04CF // Ver.: always -#define ZCL_CREDIT_ADJUSTMENT_RECEIVED_ATTRIBUTE_ID 0x04D0 // Ver.: always -#define ZCL_CREDIT_ADJUSTMENT_ACTIONED_ATTRIBUTE_ID 0x04D1 // Ver.: always -#define ZCL_CREDIT_ADJUSTMENT_CANCELLED_ATTRIBUTE_ID 0x04D2 // Ver.: always -#define ZCL_CREDIT_ADJUSTMENT_REJECTED_ATTRIBUTE_ID 0x04D3 // Ver.: always -#define ZCL_CHANGE_PAYMENT_MODE_RECEIVED_ATTRIBUTE_ID 0x04D4 // Ver.: always -#define ZCL_CHANGE_PAYMENT_MODE_ACTIONED_ATTRIBUTE_ID 0x04D5 // Ver.: always -#define ZCL_CHANGE_PAYMENT_MODE_CANCELLED_ATTRIBUTE_ID 0x04D6 // Ver.: always -#define ZCL_CHANGE_PAYMENT_MODE_REJECTED_ATTRIBUTE_ID 0x04D7 // Ver.: always -#define ZCL_GET_PREPAY_SNAPSHOT_RECEIVED_ATTRIBUTE_ID 0x04D8 // Ver.: always -#define ZCL_GET_PREPAY_SNAPSHOT_ACTIONED_ATTRIBUTE_ID 0x04D9 // Ver.: always -#define ZCL_GET_PREPAY_SNAPSHOT_CANCELLED_ATTRIBUTE_ID 0x04DA // Ver.: always -#define ZCL_GET_PREPAY_SNAPSHOT_REJECTED_ATTRIBUTE_ID 0x04DB // Ver.: always -#define ZCL_GET_TOPUP_LOG_RECEIVED_ATTRIBUTE_ID 0x04DC // Ver.: always -#define ZCL_GET_TOPUP_LOG_ACTIONED_ATTRIBUTE_ID 0x04DD // Ver.: always -#define ZCL_GET_TOPUP_LOG_CANCELLED_ATTRIBUTE_ID 0x04DE // Ver.: always -#define ZCL_GET_TOPUP_LOG_REJECTED_ATTRIBUTE_ID 0x04DF // Ver.: always -#define ZCL_SET_LOW_CREDIT_WARNING_LEVEL_RECEIVED_ATTRIBUTE_ID 0x04E0 // Ver.: always -#define ZCL_SET_LOW_CREDIT_WARNING_LEVEL_ACTIONED_ATTRIBUTE_ID 0x04E1 // Ver.: always -#define ZCL_SET_LOW_CREDIT_WARNING_LEVEL_CANCELLED_ATTRIBUTE_ID 0x04E2 // Ver.: always -#define ZCL_SET_LOW_CREDIT_WARNING_LEVEL_REJECTED_ATTRIBUTE_ID 0x04E3 // Ver.: always -#define ZCL_GET_DEBT_REPAY_LOG_RECEIVED_ATTRIBUTE_ID 0x04E4 // Ver.: always -#define ZCL_GET_DEBT_REPAY_LOG_ACTIONED_ATTRIBUTE_ID 0x04E5 // Ver.: always -#define ZCL_GET_DEBT_REPAY_LOG_CANCELLED_ATTRIBUTE_ID 0x04E6 // Ver.: always -#define ZCL_GET_DEBT_REPAY_LOG_REJECTED_ATTRIBUTE_ID 0x04E7 // Ver.: always -#define ZCL_SET_MAXIMUM_CREDIT_LIMIT_RECEIVED_ATTRIBUTE_ID 0x04E8 // Ver.: always -#define ZCL_SET_MAXIMUM_CREDIT_LIMIT_ACTIONED_ATTRIBUTE_ID 0x04E9 // Ver.: always -#define ZCL_SET_MAXIMUM_CREDIT_LIMIT_CANCELLED_ATTRIBUTE_ID 0x04EA // Ver.: always -#define ZCL_SET_MAXIMUM_CREDIT_LIMIT_REJECTED_ATTRIBUTE_ID 0x04EB // Ver.: always -#define ZCL_SET_OVERALL_DEBT_CAP_RECEIVED_ATTRIBUTE_ID 0x04EC // Ver.: always -#define ZCL_SET_OVERALL_DEBT_CAP_ACTIONED_ATTRIBUTE_ID 0x04ED // Ver.: always -#define ZCL_SET_OVERALL_DEBT_CAP_CANCELLED_ATTRIBUTE_ID 0x04EE // Ver.: always -#define ZCL_SET_OVERALL_DEBT_CAP_REJECTED_ATTRIBUTE_ID 0x04EF // Ver.: always -#define ZCL_CALENDAR_CLUSTER_NOT_FOUND_ATTRIBUTE_ID 0x0500 // Ver.: always -#define ZCL_CALENDAR_CHANGE_PASSIVE_ACTIVATED_ATTRIBUTE_ID 0x0501 // Ver.: always -#define ZCL_CALENDAR_CHANGE_PASSIVE_UPDATED_ATTRIBUTE_ID 0x0502 // Ver.: always -#define ZCL_PUBLISH_CALENDAR_RECEIVED_ATTRIBUTE_ID 0x05C0 // Ver.: always -#define ZCL_PUBLISH_CALENDAR_ACTIONED_ATTRIBUTE_ID 0x05C1 // Ver.: always -#define ZCL_PUBLISH_CALENDAR_CANCELLED_ATTRIBUTE_ID 0x05C2 // Ver.: always -#define ZCL_PUBLISH_CALENDAR_REJECTED_ATTRIBUTE_ID 0x05C3 // Ver.: always -#define ZCL_PUBLISH_DAY_PROFILE_RECEIVED_ATTRIBUTE_ID 0x05C4 // Ver.: always -#define ZCL_PUBLISH_DAY_PROFILE_ACTIONED_ATTRIBUTE_ID 0x05C5 // Ver.: always -#define ZCL_PUBLISH_DAY_PROFILE_CANCELLED_ATTRIBUTE_ID 0x05C6 // Ver.: always -#define ZCL_PUBLISH_DAY_PROFILE_REJECTED_ATTRIBUTE_ID 0x05C7 // Ver.: always -#define ZCL_PUBLISH_WEEK_PROFILE_RECEIVED_ATTRIBUTE_ID 0x05C8 // Ver.: always -#define ZCL_PUBLISH_WEEK_PROFILE_ACTIONED_ATTRIBUTE_ID 0x05C9 // Ver.: always -#define ZCL_PUBLISH_WEEK_PROFILE_CANCELLED_ATTRIBUTE_ID 0x05CA // Ver.: always -#define ZCL_PUBLISH_WEEK_PROFILE_REJECTED_ATTRIBUTE_ID 0x05CB // Ver.: always -#define ZCL_PUBLISH_SEASONS_RECEIVED_ATTRIBUTE_ID 0x05CC // Ver.: always -#define ZCL_PUBLISH_SEASONS_ACTIONED_ATTRIBUTE_ID 0x05CD // Ver.: always -#define ZCL_PUBLISH_SEASONS_CANCELLED_ATTRIBUTE_ID 0x05CE // Ver.: always -#define ZCL_PUBLISH_SEASONS_REJECTED_ATTRIBUTE_ID 0x05CF // Ver.: always -#define ZCL_PUBLISH_SPECIAL_DAYS_RECEIVED_ATTRIBUTE_ID 0x05D0 // Ver.: always -#define ZCL_PUBLISH_SPECIAL_DAYS_ACTIONED_ATTRIBUTE_ID 0x05D1 // Ver.: always -#define ZCL_PUBLISH_SPECIAL_DAYS_CANCELLED_ATTRIBUTE_ID 0x05D2 // Ver.: always -#define ZCL_PUBLISH_SPECIAL_DAYS_REJECTED_ATTRIBUTE_ID 0x05D3 // Ver.: always -#define ZCL_PASSWORD_1_CHANGE_ATTRIBUTE_ID 0x0600 // Ver.: always -#define ZCL_PASSWORD_2_CHANGE_ATTRIBUTE_ID 0x0601 // Ver.: always -#define ZCL_PASSWORD_3_CHANGE_ATTRIBUTE_ID 0x0602 // Ver.: always -#define ZCL_PASSWORD_4_CHANGE_ATTRIBUTE_ID 0x0603 // Ver.: always -#define ZCL_EVENT_LOG_CLEARED_ATTRIBUTE_ID 0x0604 // Ver.: always -#define ZCL_ZIGBEE_APS_TIMEOUT_ATTRIBUTE_ID 0x0610 // Ver.: always -#define ZCL_ZIGBEE_IEEE_TRANSMISSION_FAILURE_OVER_THRESHOLD_ATTRIBUTE_ID 0x0611 // Ver.: always -#define ZCL_ZIGBEE_IEEE_FRAME_CHECK_SEQUENCE_THRESHOLD_ATTRIBUTE_ID 0x0612 // Ver.: always -#define ZCL_ERROR_CERTIFICATE_ATTRIBUTE_ID 0x0613 // Ver.: always -#define ZCL_ERROR_SIGNATURE_ATTRIBUTE_ID 0x0614 // Ver.: always -#define ZCL_ERROR_PROGRAM_STORAGE_ATTRIBUTE_ID 0x0615 // Ver.: always -#define ZCL_PUBLISH_COT_RECEIVED_ATTRIBUTE_ID 0x06C0 // Ver.: always -#define ZCL_PUBLISH_COT_ACTIONED_ATTRIBUTE_ID 0x06C1 // Ver.: always -#define ZCL_PUBLISH_COT_CANCELLED_ATTRIBUTE_ID 0x06C2 // Ver.: always -#define ZCL_PUBLISH_COT_REJECTED_ATTRIBUTE_ID 0x06C3 // Ver.: always -#define ZCL_PUBLISH_COS_RECEIVED_ATTRIBUTE_ID 0x06C4 // Ver.: always -#define ZCL_PUBLISH_COS_ACTIONED_ATTRIBUTE_ID 0x06C5 // Ver.: always -#define ZCL_PUBLISH_COS_CANCELLED_ATTRIBUTE_ID 0x06C6 // Ver.: always -#define ZCL_PUBLISH_COS_REJECTED_ATTRIBUTE_ID 0x06C7 // Ver.: always -#define ZCL_CHANGE_PASSWORD_RECEIVED_ATTRIBUTE_ID 0x06C8 // Ver.: always -#define ZCL_CHANGE_PASSWORD_ACTIONED_ATTRIBUTE_ID 0x06C9 // Ver.: always -#define ZCL_CHANGE_PASSWORD_CANCELLED_ATTRIBUTE_ID 0x06CA // Ver.: always -#define ZCL_CHANGE_PASSWORD_REJECTED_ATTRIBUTE_ID 0x06CB // Ver.: always -#define ZCL_SET_EVENT_CONFIGURATION_RECEIVED_ATTRIBUTE_ID 0x06CC // Ver.: always -#define ZCL_SET_EVENT_CONFIGURATION_ACTIONED_ATTRIBUTE_ID 0x06CD // Ver.: always -#define ZCL_SET_EVENT_CONFIGURATION_CANCELLED_ATTRIBUTE_ID 0x06CE // Ver.: always -#define ZCL_SET_EVENT_CONFIGURATION_REJECTED_ATTRIBUTE_ID 0x06CF // Ver.: always -#define ZCL_UPDATE_SITE_ID_RECEIVED_ATTRIBUTE_ID 0x06D0 // Ver.: always -#define ZCL_UPDATE_SITE_ID_ACTIONED_ATTRIBUTE_ID 0x06D1 // Ver.: always -#define ZCL_UPDATE_SITE_ID_CANCELLED_ATTRIBUTE_ID 0x06D2 // Ver.: always -#define ZCL_UPDATE_SITE_ID_REJECTED_ATTRIBUTE_ID 0x06D3 // Ver.: always -#define ZCL_UPDATE_CIN_RECEIVED_ATTRIBUTE_ID 0x06D4 // Ver.: always -#define ZCL_UPDATE_CIN_ACTIONED_ATTRIBUTE_ID 0x06D5 // Ver.: always -#define ZCL_UPDATE_CIN_CANCELLED_ATTRIBUTE_ID 0x06D6 // Ver.: always -#define ZCL_UPDATE_CIN_REJECTED_ATTRIBUTE_ID 0x06D7 // Ver.: always -#define ZCL_TUNNELING_CLUSTER_NOT_FOUND_ATTRIBUTE_ID 0x0700 // Ver.: always -#define ZCL_UNSUPPORTED_PROTOCOL_ATTRIBUTE_ID 0x0701 // Ver.: always -#define ZCL_INCORRECT_PROTOCOL_ATTRIBUTE_ID 0x0702 // Ver.: always -#define ZCL_REQUEST_TUNNEL_COMMAND_RECEIVED_ATTRIBUTE_ID 0x07C0 // Ver.: always -#define ZCL_REQUEST_TUNNEL_COMMAND_REJECTED_ATTRIBUTE_ID 0x07C1 // Ver.: always -#define ZCL_REQUEST_TUNNEL_COMMAND_GENERATED_ATTRIBUTE_ID 0x07C2 // Ver.: always -#define ZCL_CLOSE_TUNNEL_COMMAND_RECEIVED_ATTRIBUTE_ID 0x07C3 // Ver.: always -#define ZCL_CLOSE_TUNNEL_COMMAND_REJECTED_ATTRIBUTE_ID 0x07C4 // Ver.: always -#define ZCL_CLOSE_TUNNEL_COMMAND_GENERATED_ATTRIBUTE_ID 0x07C5 // Ver.: always -#define ZCL_TRANSFER_DATA_COMMAND_RECEIVED_ATTRIBUTE_ID 0x07C6 // Ver.: always -#define ZCL_TRANSFER_DATA_COMMAND_REJECTED_ATTRIBUTE_ID 0x07C7 // Ver.: always -#define ZCL_TRANSFER_DATA_COMMAND_GENERATED_ATTRIBUTE_ID 0x07C8 // Ver.: always -#define ZCL_TRANSFER_DATA_ERROR_COMMAND_RECEIVED_ATTRIBUTE_ID 0x07C9 // Ver.: always -#define ZCL_TRANSFER_DATA_ERROR_COMMAND_REJECTED_ATTRIBUTE_ID 0x07CA // Ver.: always -#define ZCL_TRANSFER_DATA_ERROR_COMMAND_GENERATED_ATTRIBUTE_ID 0x07CB // Ver.: always -#define ZCL_ACK_TRANSFER_DATA_COMMAND_RECEIVED_ATTRIBUTE_ID 0x07CC // Ver.: always -#define ZCL_ACK_TRANSFER_DATA_COMMAND_REJECTED_ATTRIBUTE_ID 0x07CD // Ver.: always -#define ZCL_ACK_TRANSFER_DATA_COMMAND_GENERATED_ATTRIBUTE_ID 0x07CE // Ver.: always -#define ZCL_READY_DATA_COMMAND_RECEIVED_ATTRIBUTE_ID 0x07CF // Ver.: always -#define ZCL_READY_DATA_COMMAND_REJECTED_ATTRIBUTE_ID 0x07D0 // Ver.: always -#define ZCL_READY_DATA_COMMAND_GENERATED_ATTRIBUTE_ID 0x07D1 // Ver.: always -#define ZCL_GET_SUPPORTED_TUNNEL_PROTOCOLS_COMMAND_RECEIVED_ATTRIBUTE_ID 0x07D2 // Ver.: always -#define ZCL_GET_SUPPORTED_TUNNEL_PROTOCOLS_COMMAND_REJECTED_ATTRIBUTE_ID 0x07D3 // Ver.: always -#define ZCL_GET_SUPPORTED_TUNNEL_PROTOCOLS_COMMAND_GENERATED_ATTRIBUTE_ID 0x07D4 // Ver.: always -#define ZCL_FIRMWARE_READY_FOR_ACTIVATION_ATTRIBUTE_ID 0x0800 // Ver.: always -#define ZCL_FIRMWARE_ACTIVATED_ATTRIBUTE_ID 0x0801 // Ver.: always -#define ZCL_FIRMWARE_ACTIVATION_FAILURE_ATTRIBUTE_ID 0x0802 // Ver.: always -#define ZCL_PATCH_READY_FOR_ACTIVATION_ATTRIBUTE_ID 0x0803 // Ver.: always -#define ZCL_PATCH_ACTIVATED_ATTRIBUTE_ID 0x0804 // Ver.: always -#define ZCL_PATCH_FAILURE_ATTRIBUTE_ID 0x0805 // Ver.: always -#define ZCL_IMAGE_NOTIFY_COMMAND_RECEIVED_ATTRIBUTE_ID 0x08C0 // Ver.: always -#define ZCL_IMAGE_NOTIFY_COMMAND_REJECTED_ATTRIBUTE_ID 0x08C1 // Ver.: always -#define ZCL_QUERY_NEXT_IMAGE_REQUEST_GENERATED_ATTRIBUTE_ID 0x08C2 // Ver.: always -#define ZCL_QUERY_NEXT_IMAGE_RESPONSE_RECEIVED_ATTRIBUTE_ID 0x08C3 // Ver.: always -#define ZCL_QUERY_NEXT_IMAGE_RESPONSE_REJECTED_ATTRIBUTE_ID 0x08C4 // Ver.: always -#define ZCL_IMAGE_BLOCK_REQUEST_GENERATED_ATTRIBUTE_ID 0x08C5 // Ver.: always -#define ZCL_IMAGE_PAGE_REQUEST_GENERATED_ATTRIBUTE_ID 0x08C6 // Ver.: always -#define ZCL_IMAGE_BLOCK_RESPONSE_RECEIVED_ATTRIBUTE_ID 0x08C7 // Ver.: always -#define ZCL_IMAGE_BLOCK_RESPONSE_REJECTED_ATTRIBUTE_ID 0x08C8 // Ver.: always -#define ZCL_UPGRADE_END_REQUEST_GENERATED_ATTRIBUTE_ID 0x08C9 // Ver.: always -#define ZCL_UPGRADE_END_RESPONSE_RECEIVED_ATTRIBUTE_ID 0x08CA // Ver.: always -#define ZCL_UPGRADE_END_RESPONSE_REJECTED_ATTRIBUTE_ID 0x08CB // Ver.: always -#define ZCL_QUERY_SPECIFIC_FILE_REQUEST_GENERATED_ATTRIBUTE_ID 0x08CC // Ver.: always -#define ZCL_QUERY_SPECIFIC_FILE_RESPONSE_RECEIVED_ATTRIBUTE_ID 0x08CD // Ver.: always -#define ZCL_QUERY_SPECIFIC_FILE_RESPONSE_REJECTED_ATTRIBUTE_ID 0x08CE // Ver.: always -#define ZCL_DEVICE_MANAGEMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_DEVICE_MANAGEMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_PROVIDER_ID_CLIENT_ATTRIBUTE_ID (0x0000) +#define ZCL_RECEIVED_PROVIDER_ID_CLIENT_ATTRIBUTE_ID (0x0010) +#define ZCL_TOU_TARIFF_ACTIVATION_ATTRIBUTE_ID (0x0100) +#define ZCL_BLOCK_TARIFF_ACTIVATED_ATTRIBUTE_ID (0x0101) +#define ZCL_BLOCK_TOU_TARIFF_ACTIVATED_ATTRIBUTE_ID (0x0102) +#define ZCL_SINGLE_TARIFF_RATE_ACTIVATED_ATTRIBUTE_ID (0x0103) +#define ZCL_ASYNCHRONOUS_BILLING_OCCURRED_ATTRIBUTE_ID (0x0104) +#define ZCL_SYNCHRONOUS_BILLING_OCCURRED_ATTRIBUTE_ID (0x0105) +#define ZCL_TARIFF_NOT_SUPPORTED_ATTRIBUTE_ID (0x0106) +#define ZCL_PRICE_CLUSTER_NOT_FOUND_ATTRIBUTE_ID (0x0107) +#define ZCL_CURRENCY_CHANGE_PASSIVE_ACTIVATED_ATTRIBUTE_ID (0x0108) +#define ZCL_CURRENCY_CHANGE_PASSIVE_UPDATED_ATTRIBUTE_ID (0x0109) +#define ZCL_PRICE_MATRIX_PASSIVE_ACTIVATED_ATTRIBUTE_ID (0x010A) +#define ZCL_PRICE_MATRIX_PASSIVE_UPDATED_ATTRIBUTE_ID (0x010B) +#define ZCL_TARIFF_CHANGE_PASSIVE_ACTIVATED_ATTRIBUTE_ID (0x010C) +#define ZCL_TARIFF_CHANGE_PASSIVE_UPDATED_ATTRIBUTE_ID (0x010D) +#define ZCL_PUBLISH_PRICE_RECEIVED_ATTRIBUTE_ID (0x01B0) +#define ZCL_PUBLISH_PRICE_ACTIONED_ATTRIBUTE_ID (0x01B1) +#define ZCL_PUBLISH_PRICE_CANCELLED_ATTRIBUTE_ID (0x01B2) +#define ZCL_PUBLISH_PRICE_REJECTED_ATTRIBUTE_ID (0x01B3) +#define ZCL_PUBLISH_TARIFF_INFO_RECEIVED_ATTRIBUTE_ID (0x01B4) +#define ZCL_PUBLISH_TARIFF_INFO_ACTIONED_ATTRIBUTE_ID (0x01B5) +#define ZCL_PUBLISH_TARIFF_INFO_CANCELLED_ATTRIBUTE_ID (0x01B6) +#define ZCL_PUBLISH_TARIFF_INFO_REJECTED_ATTRIBUTE_ID (0x01B7) +#define ZCL_PUBLISH_PRICE_MATRIX_RECEIVED_ATTRIBUTE_ID (0x01B8) +#define ZCL_PUBLISH_PRICE_MATRIX_ACTIONED_ATTRIBUTE_ID (0x01B9) +#define ZCL_PUBLISH_PRICE_MATRIX_CANCELLED_ATTRIBUTE_ID (0x01BA) +#define ZCL_PUBLISH_PRICE_MATRIX_REJECTED_ATTRIBUTE_ID (0x01BB) +#define ZCL_PUBLISH_BLOCK_THRESHOLDS_RECEIVED_ATTRIBUTE_ID (0x01BC) +#define ZCL_PUBLISH_BLOCK_THRESHOLDS_ACTIONED_ATTRIBUTE_ID (0x01BD) +#define ZCL_PUBLISH_BLOCK_THRESHOLDS_CANCELLED_ATTRIBUTE_ID (0x01BE) +#define ZCL_PUBLISH_BLOCK_THRESHOLDS_REJECTED_ATTRIBUTE_ID (0x01BF) +#define ZCL_PUBLISH_CALORIFIC_VALUE_RECEIVED_ATTRIBUTE_ID (0x01C0) +#define ZCL_PUBLISH_CALORIFIC_VALUE_ACTIONED_ATTRIBUTE_ID (0x01C1) +#define ZCL_PUBLISH_CALORIFIC_VALUE_CANCELLED_ATTRIBUTE_ID (0x01C2) +#define ZCL_PUBLISH_CALORIFIC_VALUE_REJECTED_ATTRIBUTE_ID (0x01C3) +#define ZCL_PUBLISH_CONVERSION_FACTOR_RECEIVED_ATTRIBUTE_ID (0x01C4) +#define ZCL_PUBLISH_CONVERSION_FACTOR_ACTIONED_ATTRIBUTE_ID (0x01C5) +#define ZCL_PUBLISH_CONVERSION_FACTOR_CANCELLED_ATTRIBUTE_ID (0x01C6) +#define ZCL_PUBLISH_CONVERSION_FACTOR_REJECTED_ATTRIBUTE_ID (0x01C7) +#define ZCL_PUBLISH_CO2_VALUE_RECEIVED_ATTRIBUTE_ID (0x01C8) +#define ZCL_PUBLISH_CO2_VALUE_ACTIONED_ATTRIBUTE_ID (0x01C9) +#define ZCL_PUBLISH_CO2_VALUE_CANCELLED_ATTRIBUTE_ID (0x01CA) +#define ZCL_PUBLISH_CO2_VALUE_REJECTED_ATTRIBUTE_ID (0x01CB) +#define ZCL_PUBLISH_CPP_EVENT_RECEIVED_ATTRIBUTE_ID (0x01CC) +#define ZCL_PUBLISH_CPP_EVENT_ACTIONED_ATTRIBUTE_ID (0x01CD) +#define ZCL_PUBLISH_CPP_EVENT_CANCELLED_ATTRIBUTE_ID (0x01CE) +#define ZCL_PUBLISH_CPP_EVENT_REJECTED_ATTRIBUTE_ID (0x01CF) +#define ZCL_PUBLISH_TIER_LABELS_RECEIVED_ATTRIBUTE_ID (0x01D0) +#define ZCL_PUBLISH_TIER_LABELS_ACTIONED_ATTRIBUTE_ID (0x01D1) +#define ZCL_PUBLISH_TIER_LABELS_CANCELLED_ATTRIBUTE_ID (0x01D2) +#define ZCL_PUBLISH_TIER_LABELS_REJECTED_ATTRIBUTE_ID (0x01D3) +#define ZCL_PUBLISH_BILLING_PERIOD_RECEIVED_ATTRIBUTE_ID (0x01D4) +#define ZCL_PUBLISH_BILLING_PERIOD_ACTIONED_ATTRIBUTE_ID (0x01D5) +#define ZCL_PUBLISH_BILLING_PERIOD_CANCELLED_ATTRIBUTE_ID (0x01D6) +#define ZCL_PUBLISH_BILLING_PERIOD_REJECTED_ATTRIBUTE_ID (0x01D7) +#define ZCL_PUBLISH_CONSOLIDATED_BILL_RECEIVED_ATTRIBUTE_ID (0x01D8) +#define ZCL_PUBLISH_CONSOLIDATED_BILL_ACTIONED_ATTRIBUTE_ID (0x01D9) +#define ZCL_PUBLISH_CONSOLIDATED_BILL_CANCELLED_ATTRIBUTE_ID (0x01DA) +#define ZCL_PUBLISH_CONSOLIDATED_BILL_REJECTED_ATTRIBUTE_ID (0x01DB) +#define ZCL_PUBLISH_BLOCK_PERIOD_RECEIVED_ATTRIBUTE_ID (0x01DC) +#define ZCL_PUBLISH_BLOCK_PERIOD_ACTIONED_ATTRIBUTE_ID (0x01DD) +#define ZCL_PUBLISH_BLOCK_PERIOD_CANCELLED_ATTRIBUTE_ID (0x01DE) +#define ZCL_PUBLISH_BLOCK_PERIOD_REJECTED_ATTRIBUTE_ID (0x01DF) +#define ZCL_PUBLISH_CREDIT_PAYMENT_INFO_RECEIVED_ATTRIBUTE_ID (0x01E0) +#define ZCL_PUBLISH_CREDIT_PAYMENT_INFO_ACTIONED_ATTRIBUTE_ID (0x01E1) +#define ZCL_PUBLISH_CREDIT_PAYMENT_INFO_CANCELLED_ATTRIBUTE_ID (0x01E2) +#define ZCL_PUBLISH_CREDIT_PAYMENT_INFO_REJECTED_ATTRIBUTE_ID (0x01E3) +#define ZCL_PUBLISH_CURRENCY_CONVERSION_RECEIVED_ATTRIBUTE_ID (0x01E4) +#define ZCL_PUBLISH_CURRENCY_CONVERSION_ACTIONED_ATTRIBUTE_ID (0x01E5) +#define ZCL_PUBLISH_CURRENCY_CONVERSION_CANCELLED_ATTRIBUTE_ID (0x01E6) +#define ZCL_PUBLISH_CURRENCY_CONVERSION_REJECTED_ATTRIBUTE_ID (0x01E7) +#define ZCL_CHECK_METER_ATTRIBUTE_ID (0x0200) +#define ZCL_LOW_BATTERY_ATTRIBUTE_ID (0x0201) +#define ZCL_TAMPER_DETECT_ATTRIBUTE_ID (0x0202) +#define ZCL_DEVICE_MANAGEMENT_SUPPLY_STATUS_ATTRIBUTE_ID (0x0203) +#define ZCL_SUPPLY_QUALITY_ATTRIBUTE_ID (0x0204) +#define ZCL_LEAK_DETECT_ATTRIBUTE_ID (0x0205) +#define ZCL_SERVICE_DISCONNECT_ATTRIBUTE_ID (0x0206) +#define ZCL_REVERSE_FLOW_GENERAL_ATTRIBUTE_ID (0x0207) +#define ZCL_METER_COVER_REMOVED_ATTRIBUTE_ID (0x0208) +#define ZCL_METER_COVER_CLOSED_ATTRIBUTE_ID (0x0209) +#define ZCL_STRONG_MAGNETIC_FIELD_ATTRIBUTE_ID (0x020A) +#define ZCL_NO_STRONG_MAGNETIC_FIELD_ATTRIBUTE_ID (0x020B) +#define ZCL_BATTERY_FAILURE_ATTRIBUTE_ID (0x020C) +#define ZCL_PROGRAM_MEMORY_ERROR_ATTRIBUTE_ID (0x020D) +#define ZCL_RAM_ERROR_ATTRIBUTE_ID (0x020E) +#define ZCL_NV_MEMORY_ERROR_ATTRIBUTE_ID (0x020F) +#define ZCL_LOW_VOLTAGE_L1_ATTRIBUTE_ID (0x0210) +#define ZCL_HIGH_VOLTAGE_L1_ATTRIBUTE_ID (0x0211) +#define ZCL_LOW_VOLTAGE_L2_ATTRIBUTE_ID (0x0212) +#define ZCL_HIGH_VOLTAGE_L2_ATTRIBUTE_ID (0x0213) +#define ZCL_LOW_VOLTAGE_L3_ATTRIBUTE_ID (0x0214) +#define ZCL_HIGH_VOLTAGE_L3_ATTRIBUTE_ID (0x0215) +#define ZCL_OVER_CURRENT_L1_ATTRIBUTE_ID (0x0216) +#define ZCL_OVER_CURRENT_L2_ATTRIBUTE_ID (0x0217) +#define ZCL_OVER_CURRENT_L3_ATTRIBUTE_ID (0x0218) +#define ZCL_FREQUENCY_TOO_LOW_L1_ATTRIBUTE_ID (0x0219) +#define ZCL_FREQUENCY_TOO_HIGH_L1_ATTRIBUTE_ID (0x021A) +#define ZCL_FREQUENCY_TOO_LOW_L2_ATTRIBUTE_ID (0x021B) +#define ZCL_FREQUENCY_TOO_HIGH_L2_ATTRIBUTE_ID (0x021C) +#define ZCL_FREQUENCY_TOO_LOW_L3_ATTRIBUTE_ID (0x021D) +#define ZCL_FREQUENCY_TOO_HIGH_L3_ATTRIBUTE_ID (0x021E) +#define ZCL_GROUND_FAULT_ATTRIBUTE_ID (0x021F) +#define ZCL_ELECTRIC_TAMPER_DETECT_ATTRIBUTE_ID (0x0220) +#define ZCL_INCORRECT_POLARITY_ATTRIBUTE_ID (0x0221) +#define ZCL_CURRENT_NO_VOLTAGE_ATTRIBUTE_ID (0x0222) +#define ZCL_UNDER_VOLTAGE_ATTRIBUTE_ID (0x0223) +#define ZCL_OVER_VOLTAGE_ATTRIBUTE_ID (0x0224) +#define ZCL_NORMAL_VOLTAGE_ATTRIBUTE_ID (0x0225) +#define ZCL_PF_BELOW_THRESHOLD_ATTRIBUTE_ID (0x0226) +#define ZCL_PF_ABOVE_THRESHOLD_ATTRIBUTE_ID (0x0227) +#define ZCL_TERMINAL_COVER_REMOVED_ATTRIBUTE_ID (0x0228) +#define ZCL_TERMINAL_COVER_CLOSED_ATTRIBUTE_ID (0x0229) +#define ZCL_BURST_DETECT_ATTRIBUTE_ID (0x0230) +#define ZCL_PRESSURE_TOO_LOW_ATTRIBUTE_ID (0x0231) +#define ZCL_PRESSURE_TOO_HIGH_ATTRIBUTE_ID (0x0232) +#define ZCL_FLOW_SENSOR_COMMUNICATION_ERROR_ATTRIBUTE_ID (0x0233) +#define ZCL_FLOW_SENSOR_MEASUREMENT_FAULT_ATTRIBUTE_ID (0x0234) +#define ZCL_FLOW_SENSOR_REVERSE_FLOW_ATTRIBUTE_ID (0x0235) +#define ZCL_FLOW_SENSOR_AIR_DETECT_ATTRIBUTE_ID (0x0236) +#define ZCL_PIPE_EMPTY_ATTRIBUTE_ID (0x0237) +#define ZCL_INLET_TEMP_SENSOR_FAULT_ATTRIBUTE_ID (0x0250) +#define ZCL_OUTLET_TEMP_SENSOR_FAULT_ATTRIBUTE_ID (0x0251) +#define ZCL_REVERSE_FLOW_ATTRIBUTE_ID (0x0260) +#define ZCL_TILT_TAMPER_ATTRIBUTE_ID (0x0261) +#define ZCL_BATTERY_COVER_REMOVED_ATTRIBUTE_ID (0x0262) +#define ZCL_BATTERY_COVER_CLOSED_ATTRIBUTE_ID (0x0263) +#define ZCL_EXCESS_FLOW_ATTRIBUTE_ID (0x0264) +#define ZCL_TILT_TAMPER_ENABLED_ATTRIBUTE_ID (0x0265) +#define ZCL_MEASUREMENT_SYSTEM_ERROR_ATTRIBUTE_ID (0x0270) +#define ZCL_WATCHDOG_ERROR_ATTRIBUTE_ID (0x0271) +#define ZCL_SUPPLY_DISCONNECT_FAILURE_ATTRIBUTE_ID (0x0272) +#define ZCL_SUPPLY_CONNECT_FAILURE_ATTRIBUTE_ID (0x0273) +#define ZCL_MEASUREMENT_SOFTWARE_CHANGED_ATTRIBUTE_ID (0x0274) +#define ZCL_DST_ENABLED_ATTRIBUTE_ID (0x0275) +#define ZCL_DST_DISABLED_ATTRIBUTE_ID (0x0276) +#define ZCL_CLOCK_ADJ_BACKWARD_ATTRIBUTE_ID (0x0277) +#define ZCL_CLOCK_ADJ_FORWARD_ATTRIBUTE_ID (0x0278) +#define ZCL_CLOCK_INVALID_ATTRIBUTE_ID (0x0279) +#define ZCL_COMMUNICATION_ERROR_HAN_ATTRIBUTE_ID (0x027A) +#define ZCL_COMMUNICATION_OK_HAN_ATTRIBUTE_ID (0x027B) +#define ZCL_METER_FRAUD_ATTEMPT_ATTRIBUTE_ID (0x027C) +#define ZCL_POWER_LOSS_ATTRIBUTE_ID (0x027D) +#define ZCL_UNUSUAL_HAN_TRAFFIC_ATTRIBUTE_ID (0x027E) +#define ZCL_UNEXPECTED_CLOCK_CHANGE_ATTRIBUTE_ID (0x027F) +#define ZCL_COMMS_USING_UNAUTHENTICATED_COMPONENT_ATTRIBUTE_ID (0x0280) +#define ZCL_METERING_ERROR_REG_CLEAR_ATTRIBUTE_ID (0x0281) +#define ZCL_METERING_ALARM_REG_CLEAR_ATTRIBUTE_ID (0x0282) +#define ZCL_UNEXPECTED_HW_RESET_ATTRIBUTE_ID (0x0283) +#define ZCL_UNEXPECTED_PROGRAM_EXECUTION_ATTRIBUTE_ID (0x0284) +#define ZCL_LIMIT_THRESHOLD_EXCEEDED_ATTRIBUTE_ID (0x0285) +#define ZCL_LIMIT_THRESHOLD_OK_ATTRIBUTE_ID (0x0286) +#define ZCL_LIMIT_THRESHOLD_CHANGED_ATTRIBUTE_ID (0x0287) +#define ZCL_MAXIMUM_DEMAND_EXCEEDED_ATTRIBUTE_ID (0x0288) +#define ZCL_PROFILE_CLEARED_ATTRIBUTE_ID (0x0289) +#define ZCL_LOAD_PROFILE_CLEARED_ATTRIBUTE_ID (0x028A) +#define ZCL_BATTERY_WARN_ATTRIBUTE_ID (0x028B) +#define ZCL_WRONG_SIGNATURE_ATTRIBUTE_ID (0x028C) +#define ZCL_NO_SIGNATURE_ATTRIBUTE_ID (0x028D) +#define ZCL_SIGNATURE_NOT_VALID_ATTRIBUTE_ID (0x028E) +#define ZCL_UNAUTHORISE_ACTION_FROM_HAN_ATTRIBUTE_ID (0x028F) +#define ZCL_FAST_POLLING_START_ATTRIBUTE_ID (0x0290) +#define ZCL_FAST_POLLING_END_ATTRIBUTE_ID (0x0291) +#define ZCL_METER_REPORTING_INTERVAL_CHANGED_ATTRIBUTE_ID (0x0292) +#define ZCL_DISCONNECT_TO_LOAD_LIMIT_ATTRIBUTE_ID (0x0293) +#define ZCL_METER_SUPPLY_STATUS_REGISTER_CHANGED_ATTRIBUTE_ID (0x0294) +#define ZCL_METER_ALARM_STATUS_REGISTER_CHANGED_ATTRIBUTE_ID (0x0295) +#define ZCL_EXTENDED_METER_ALARM_STATUS_REGISTER_CHANGED_ATTRIBUTE_ID (0x0296) +#define ZCL_DATA_ACCESS_VIA_LOCAL_PORT_ATTRIBUTE_ID (0x0297) +#define ZCL_CONFIGURE_MIRROR_SUCCESS_ATTRIBUTE_ID (0x0298) +#define ZCL_CONFIGURE_MIRROR_FAILURE_ATTRIBUTE_ID (0x0299) +#define ZCL_CONFIGURE_NOTIFICATION_FLAG_SCHEME_SUCCESS_ATTRIBUTE_ID (0x029A) +#define ZCL_CONFIGURE_NOTIFICATION_FLAG_SCHEME_FAILURE_ATTRIBUTE_ID (0x029B) +#define ZCL_CONFIGURE_NOTIFICATION_FLAGS_SUCCESS_ATTRIBUTE_ID (0x029C) +#define ZCL_CONFIGURE_NOTIFICATION_FLAGS_FAILURE_ATTRIBUTE_ID (0x029D) +#define ZCL_STAY_AWAKE_REQUEST_HAN_ATTRIBUTE_ID (0x029E) +#define ZCL_STAY_AWAKE_REQUEST_WAN_ATTRIBUTE_ID (0x029F) +#define ZCL_MANUFACTURER_SPECIFIC_A_ATTRIBUTE_ID (0x02B0) +#define ZCL_MANUFACTURER_SPECIFIC_B_ATTRIBUTE_ID (0x02B1) +#define ZCL_MANUFACTURER_SPECIFIC_C_ATTRIBUTE_ID (0x02B2) +#define ZCL_MANUFACTURER_SPECIFIC_D_ATTRIBUTE_ID (0x02B3) +#define ZCL_MANUFACTURER_SPECIFIC_E_ATTRIBUTE_ID (0x02B4) +#define ZCL_MANUFACTURER_SPECIFIC_F_ATTRIBUTE_ID (0x02B5) +#define ZCL_MANUFACTURER_SPECIFIC_G_ATTRIBUTE_ID (0x02B6) +#define ZCL_MANUFACTURER_SPECIFIC_H_ATTRIBUTE_ID (0x02B7) +#define ZCL_MANUFACTURER_SPECIFIC_I_ATTRIBUTE_ID (0x02B8) +#define ZCL_GET_PROFILE_COMMAND_RECEIVED_ATTRIBUTE_ID (0x02C0) +#define ZCL_GET_PROFILE_COMMAND_ACTIONED_ATTRIBUTE_ID (0x02C1) +#define ZCL_GET_PROFILE_COMMAND_CANCELLED_ATTRIBUTE_ID (0x02C2) +#define ZCL_GET_PROFILE_COMMAND_REJECTED_ATTRIBUTE_ID (0x02C3) +#define ZCL_REQUEST_MIRROR_RESPONSE_COMMAND_RECEIVED_ATTRIBUTE_ID (0x02C4) +#define ZCL_REQUEST_MIRROR_RESPONSE_COMMAND_ACTIONED_ATTRIBUTE_ID (0x02C5) +#define ZCL_REQUEST_MIRROR_RESPONSE_COMMAND_CANCELLED_ATTRIBUTE_ID (0x02C6) +#define ZCL_REQUEST_MIRROR_RESPONSE_COMMAND_REJECTED_ATTRIBUTE_ID (0x02C7) +#define ZCL_MIRROR_REMOVED_COMMAND_RECEIVED_ATTRIBUTE_ID (0x02C8) +#define ZCL_MIRROR_REMOVED_COMMAND_ACTIONED_ATTRIBUTE_ID (0x02C9) +#define ZCL_MIRROR_REMOVED_COMMAND_CANCELLED_ATTRIBUTE_ID (0x02CA) +#define ZCL_MIRROR_REMOVED_COMMAND_REJECTED_ATTRIBUTE_ID (0x02CB) +#define ZCL_GET_SNAPSHOT_COMMAND_RECEIVED_ATTRIBUTE_ID (0x02CC) +#define ZCL_GET_SNAPSHOT_COMMAND_ACTIONED_ATTRIBUTE_ID (0x02CD) +#define ZCL_GET_SNAPSHOT_COMMAND_CANCELLED_ATTRIBUTE_ID (0x02CE) +#define ZCL_GET_SNAPSHOT_COMMAND_REJECTED_ATTRIBUTE_ID (0x02CF) +#define ZCL_TAKE_SNAPSHOT_COMMAND_RECEIVED_ATTRIBUTE_ID (0x02D0) +#define ZCL_TAKE_SNAPSHOT_COMMAND_ACTIONED_ATTRIBUTE_ID (0x02D1) +#define ZCL_TAKE_SNAPSHOT_COMMAND_CANCELLED_ATTRIBUTE_ID (0x02D2) +#define ZCL_TAKE_SNAPSHOT_COMMAND_REJECTED_ATTRIBUTE_ID (0x02D3) +#define ZCL_MIRROR_REPORT_ATTRIBUTE_RESPONSE_COMMAND_RECEIVED_ATTRIBUTE_ID (0x02D4) +#define ZCL_MIRROR_REPORT_ATTRIBUTE_RESPONSE_COMMAND_ACTIONED_ATTRIBUTE_ID (0x02D5) +#define ZCL_MIRROR_REPORT_ATTRIBUTE_RESPONSE_COMMAND_CANCELLED_ATTRIBUTE_ID (0x02D6) +#define ZCL_MIRROR_REPORT_ATTRIBUTE_RESPONSE_COMMAND_REJECTED_ATTRIBUTE_ID (0x02D7) +#define ZCL_SCHEDULE_SNAPSHOT_COMMAND_RECEIVED_ATTRIBUTE_ID (0x02D8) +#define ZCL_SCHEDULE_SNAPSHOT_COMMAND_ACTIONED_ATTRIBUTE_ID (0x02D9) +#define ZCL_SCHEDULE_SNAPSHOT_COMMAND_CANCELLED_ATTRIBUTE_ID (0x02DA) +#define ZCL_SCHEDULE_SNAPSHOT_COMMAND_REJECTED_ATTRIBUTE_ID (0x02DB) +#define ZCL_START_SAMPLING_COMMAND_RECEIVED_ATTRIBUTE_ID (0x02DC) +#define ZCL_START_SAMPLING_COMMAND_ACTIONED_ATTRIBUTE_ID (0x02DD) +#define ZCL_START_SAMPLING_COMMAND_CANCELLED_ATTRIBUTE_ID (0x02DE) +#define ZCL_START_SAMPLING_COMMAND_REJECTED_ATTRIBUTE_ID (0x02DF) +#define ZCL_GET_SAMPLED_DATA_COMMAND_RECEIVED_ATTRIBUTE_ID (0x02E0) +#define ZCL_GET_SAMPLED_DATA_COMMAND_ACTIONED_ATTRIBUTE_ID (0x02E1) +#define ZCL_GET_SAMPLED_DATA_COMMAND_CANCELLED_ATTRIBUTE_ID (0x02E2) +#define ZCL_GET_SAMPLED_DATA_COMMAND_REJECTED_ATTRIBUTE_ID (0x02E3) +#define ZCL_SUPPLY_ON_ATTRIBUTE_ID (0x02E4) +#define ZCL_SUPPLY_ARMED_ATTRIBUTE_ID (0x02E5) +#define ZCL_SUPPLY_OFF_ATTRIBUTE_ID (0x02E6) +#define ZCL_DISCONNECTED_DUE_TO_TAMPER_DETECTED_ATTRIBUTE_ID (0x02E7) +#define ZCL_MANUAL_DISCONNECT_ATTRIBUTE_ID (0x02E8) +#define ZCL_MANUAL_CONNECT_ATTRIBUTE_ID (0x02E9) +#define ZCL_REMOTE_DISCONNECTION_ATTRIBUTE_ID (0x02EA) +#define ZCL_REMOTE_CONNECT_ATTRIBUTE_ID (0x02EB) +#define ZCL_LOCAL_DISCONNECTION_ATTRIBUTE_ID (0x02EC) +#define ZCL_LOCAL_CONNECT_ATTRIBUTE_ID (0x02ED) +#define ZCL_CHANGE_SUPPLY_RECEIVED_ATTRIBUTE_ID (0x02EE) +#define ZCL_CHANGE_SUPPLY_ACTIONED_ATTRIBUTE_ID (0x02EF) +#define ZCL_CHANGE_SUPPLY_CANCELLED_ATTRIBUTE_ID (0x02F0) +#define ZCL_CHANGE_SUPPLY_REJECTED_ATTRIBUTE_ID (0x02F1) +#define ZCL_LOCAL_CHANGE_SUPPLY_RECEIVED_ATTRIBUTE_ID (0x02F2) +#define ZCL_LOCAL_CHANGE_SUPPLY_ACTIONED_ATTRIBUTE_ID (0x02F3) +#define ZCL_LOCAL_CHANGE_SUPPLY_CANCELLED_ATTRIBUTE_ID (0x02F4) +#define ZCL_LOCAL_CHANGE_SUPPLY_REJECTED_ATTRIBUTE_ID (0x02F5) +#define ZCL_PUBLISH_UNCONTROLLED_FLOW_THRESHOLD_RECEIVED_ATTRIBUTE_ID (0x02F6) +#define ZCL_PUBLISH_UNCONTROLLED_FLOW_THRESHOLD_ACTIONED_ATTRIBUTE_ID (0x02F7) +#define ZCL_PUBLISH_UNCONTROLLED_FLOW_THRESHOLD_CANCELLED_ATTRIBUTE_ID (0x02F8) +#define ZCL_PUBLISH_UNCONTROLLED_FLOW_THRESHOLD_REJECTED_ATTRIBUTE_ID (0x02F9) +#define ZCL_MESSAGE_CONFIRMATION_SENT_ATTRIBUTE_ID (0x0300) +#define ZCL_DISPLAY_MESSAGE_RECEIVED_ATTRIBUTE_ID (0x03C0) +#define ZCL_DISPLAY_MESSAGE_ACTIONED_ATTRIBUTE_ID (0x03C1) +#define ZCL_DISPLAY_MESSAGE_CANCELLED_ATTRIBUTE_ID (0x03C2) +#define ZCL_DISPLAY_MESSAGE_REJECTED_ATTRIBUTE_ID (0x03C3) +#define ZCL_CANCEL_MESSAGE_RECEIVED_ATTRIBUTE_ID (0x03C4) +#define ZCL_CANCEL_MESSAGE_ACTIONED_ATTRIBUTE_ID (0x03C5) +#define ZCL_CANCEL_MESSAGE_CANCELLED_ATTRIBUTE_ID (0x03C6) +#define ZCL_CANCEL_MESSAGE_REJECTED_ATTRIBUTE_ID (0x03C7) +#define ZCL_LOW_CREDIT_ATTRIBUTE_ID (0x0400) +#define ZCL_NO_CREDIT_ATTRIBUTE_ID (0x0401) +#define ZCL_CREDIT_EXHAUSTED_ATTRIBUTE_ID (0x0402) +#define ZCL_EMERGENCY_CREDIT_ENABLED_ATTRIBUTE_ID (0x0403) +#define ZCL_EMERGENCY_CREDIT_EXHAUSTED_ATTRIBUTE_ID (0x0404) +#define ZCL_PREPAY_IHD_LOW_CREDIT_WARNING_ATTRIBUTE_ID (0x0405) +#define ZCL_PHYSICAL_ATTACK_ON_THE_PREPAY_METER_ATTRIBUTE_ID (0x0420) +#define ZCL_ELECTRONIC_ATTACK_ON_THE_PREPAY_METER_ATTRIBUTE_ID (0x0421) +#define ZCL_DISCOUNT_APPLIED_ATTRIBUTE_ID (0x0422) +#define ZCL_CREDIT_ADJUSTMENT_ATTRIBUTE_ID (0x0423) +#define ZCL_CREDIT_ADJUST_FAIL_ATTRIBUTE_ID (0x0424) +#define ZCL_DEBT_ADJUSTMENT_ATTRIBUTE_ID (0x0425) +#define ZCL_DEBT_ADJUST_FAIL_ATTRIBUTE_ID (0x0426) +#define ZCL_MODE_CHANGE_ATTRIBUTE_ID (0x0427) +#define ZCL_TOPUP_CODE_ERROR_ATTRIBUTE_ID (0x0428) +#define ZCL_TOPUP_ALREADY_USED_ATTRIBUTE_ID (0x0429) +#define ZCL_TOPUP_CODE_INVALID_ATTRIBUTE_ID (0x042A) +#define ZCL_TOPUP_ACCEPTED_VIA_REMOTE_ATTRIBUTE_ID (0x042B) +#define ZCL_TOPUP_ACCEPTED_VIA_MANUAL_ENTRY_ATTRIBUTE_ID (0x042C) +#define ZCL_FRIENDLY_CREDIT_IN_USE_ATTRIBUTE_ID (0x042D) +#define ZCL_FRIENDLY_CREDIT_END_WARNING_ATTRIBUTE_ID (0x042E) +#define ZCL_FRIENDLY_CREDIT_PERIOD_END_ATTRIBUTE_ID (0x042F) +#define ZCL_PREPAY_ERROR_REG_CLEAR_ATTRIBUTE_ID (0x0430) +#define ZCL_PREPAY_ALARM_REG_CLEAR_ATTRIBUTE_ID (0x0431) +#define ZCL_PREPAY_CLUSTER_NOT_FOUND_ATTRIBUTE_ID (0x0432) +#define ZCL_TOPUP_VALUE_TOO_LARGE_ATTRIBUTE_ID (0x0433) +#define ZCL_MODE_CREDIT_2_PREPAY_ATTRIBUTE_ID (0x0441) +#define ZCL_MODE_PREPAY_2_CREDIT_ATTRIBUTE_ID (0x0442) +#define ZCL_MODE_DEFAULT_ATTRIBUTE_ID (0x0443) +#define ZCL_SELECT_AVAILABLE_EMERGENCY_CREDIT_RECEIVED_ATTRIBUTE_ID (0x04C0) +#define ZCL_SELECT_AVAILABLE_EMERGENCY_CREDIT_ACTIONED_ATTRIBUTE_ID (0x04C1) +#define ZCL_SELECT_AVAILABLE_EMERGENCY_CREDIT_CANCELLED_ATTRIBUTE_ID (0x04C2) +#define ZCL_SELECT_AVAILABLE_EMERGENCY_CREDIT_REJECTED_ATTRIBUTE_ID (0x04C3) +#define ZCL_CHANGE_DEBT_RECEIVED_ATTRIBUTE_ID (0x04C4) +#define ZCL_CHANGE_DEBT_ACTIONED_ATTRIBUTE_ID (0x04C5) +#define ZCL_CHANGE_DEBT_CANCELLED_ATTRIBUTE_ID (0x04C6) +#define ZCL_CHANGE_DEBT_REJECTED_ATTRIBUTE_ID (0x04C7) +#define ZCL_EMERGENCY_CREDIT_SETUP_RECEIVED_ATTRIBUTE_ID (0x04C8) +#define ZCL_EMERGENCY_CREDIT_SETUP_ACTIONED_ATTRIBUTE_ID (0x04C9) +#define ZCL_EMERGENCY_CREDIT_SETUP_CANCELLED_ATTRIBUTE_ID (0x04CA) +#define ZCL_EMERGENCY_CREDIT_SETUP_REJECTED_ATTRIBUTE_ID (0x04CB) +#define ZCL_CONSUMER_TOPUP_RECEIVED_ATTRIBUTE_ID (0x04CC) +#define ZCL_CONSUMER_TOPUP_ACTIONED_ATTRIBUTE_ID (0x04CD) +#define ZCL_CONSUMER_TOPUP_CANCELLED_ATTRIBUTE_ID (0x04CE) +#define ZCL_CONSUMER_TOPUP_REJECTED_ATTRIBUTE_ID (0x04CF) +#define ZCL_CREDIT_ADJUSTMENT_RECEIVED_ATTRIBUTE_ID (0x04D0) +#define ZCL_CREDIT_ADJUSTMENT_ACTIONED_ATTRIBUTE_ID (0x04D1) +#define ZCL_CREDIT_ADJUSTMENT_CANCELLED_ATTRIBUTE_ID (0x04D2) +#define ZCL_CREDIT_ADJUSTMENT_REJECTED_ATTRIBUTE_ID (0x04D3) +#define ZCL_CHANGE_PAYMENT_MODE_RECEIVED_ATTRIBUTE_ID (0x04D4) +#define ZCL_CHANGE_PAYMENT_MODE_ACTIONED_ATTRIBUTE_ID (0x04D5) +#define ZCL_CHANGE_PAYMENT_MODE_CANCELLED_ATTRIBUTE_ID (0x04D6) +#define ZCL_CHANGE_PAYMENT_MODE_REJECTED_ATTRIBUTE_ID (0x04D7) +#define ZCL_GET_PREPAY_SNAPSHOT_RECEIVED_ATTRIBUTE_ID (0x04D8) +#define ZCL_GET_PREPAY_SNAPSHOT_ACTIONED_ATTRIBUTE_ID (0x04D9) +#define ZCL_GET_PREPAY_SNAPSHOT_CANCELLED_ATTRIBUTE_ID (0x04DA) +#define ZCL_GET_PREPAY_SNAPSHOT_REJECTED_ATTRIBUTE_ID (0x04DB) +#define ZCL_GET_TOPUP_LOG_RECEIVED_ATTRIBUTE_ID (0x04DC) +#define ZCL_GET_TOPUP_LOG_ACTIONED_ATTRIBUTE_ID (0x04DD) +#define ZCL_GET_TOPUP_LOG_CANCELLED_ATTRIBUTE_ID (0x04DE) +#define ZCL_GET_TOPUP_LOG_REJECTED_ATTRIBUTE_ID (0x04DF) +#define ZCL_SET_LOW_CREDIT_WARNING_LEVEL_RECEIVED_ATTRIBUTE_ID (0x04E0) +#define ZCL_SET_LOW_CREDIT_WARNING_LEVEL_ACTIONED_ATTRIBUTE_ID (0x04E1) +#define ZCL_SET_LOW_CREDIT_WARNING_LEVEL_CANCELLED_ATTRIBUTE_ID (0x04E2) +#define ZCL_SET_LOW_CREDIT_WARNING_LEVEL_REJECTED_ATTRIBUTE_ID (0x04E3) +#define ZCL_GET_DEBT_REPAY_LOG_RECEIVED_ATTRIBUTE_ID (0x04E4) +#define ZCL_GET_DEBT_REPAY_LOG_ACTIONED_ATTRIBUTE_ID (0x04E5) +#define ZCL_GET_DEBT_REPAY_LOG_CANCELLED_ATTRIBUTE_ID (0x04E6) +#define ZCL_GET_DEBT_REPAY_LOG_REJECTED_ATTRIBUTE_ID (0x04E7) +#define ZCL_SET_MAXIMUM_CREDIT_LIMIT_RECEIVED_ATTRIBUTE_ID (0x04E8) +#define ZCL_SET_MAXIMUM_CREDIT_LIMIT_ACTIONED_ATTRIBUTE_ID (0x04E9) +#define ZCL_SET_MAXIMUM_CREDIT_LIMIT_CANCELLED_ATTRIBUTE_ID (0x04EA) +#define ZCL_SET_MAXIMUM_CREDIT_LIMIT_REJECTED_ATTRIBUTE_ID (0x04EB) +#define ZCL_SET_OVERALL_DEBT_CAP_RECEIVED_ATTRIBUTE_ID (0x04EC) +#define ZCL_SET_OVERALL_DEBT_CAP_ACTIONED_ATTRIBUTE_ID (0x04ED) +#define ZCL_SET_OVERALL_DEBT_CAP_CANCELLED_ATTRIBUTE_ID (0x04EE) +#define ZCL_SET_OVERALL_DEBT_CAP_REJECTED_ATTRIBUTE_ID (0x04EF) +#define ZCL_CALENDAR_CLUSTER_NOT_FOUND_ATTRIBUTE_ID (0x0500) +#define ZCL_CALENDAR_CHANGE_PASSIVE_ACTIVATED_ATTRIBUTE_ID (0x0501) +#define ZCL_CALENDAR_CHANGE_PASSIVE_UPDATED_ATTRIBUTE_ID (0x0502) +#define ZCL_PUBLISH_CALENDAR_RECEIVED_ATTRIBUTE_ID (0x05C0) +#define ZCL_PUBLISH_CALENDAR_ACTIONED_ATTRIBUTE_ID (0x05C1) +#define ZCL_PUBLISH_CALENDAR_CANCELLED_ATTRIBUTE_ID (0x05C2) +#define ZCL_PUBLISH_CALENDAR_REJECTED_ATTRIBUTE_ID (0x05C3) +#define ZCL_PUBLISH_DAY_PROFILE_RECEIVED_ATTRIBUTE_ID (0x05C4) +#define ZCL_PUBLISH_DAY_PROFILE_ACTIONED_ATTRIBUTE_ID (0x05C5) +#define ZCL_PUBLISH_DAY_PROFILE_CANCELLED_ATTRIBUTE_ID (0x05C6) +#define ZCL_PUBLISH_DAY_PROFILE_REJECTED_ATTRIBUTE_ID (0x05C7) +#define ZCL_PUBLISH_WEEK_PROFILE_RECEIVED_ATTRIBUTE_ID (0x05C8) +#define ZCL_PUBLISH_WEEK_PROFILE_ACTIONED_ATTRIBUTE_ID (0x05C9) +#define ZCL_PUBLISH_WEEK_PROFILE_CANCELLED_ATTRIBUTE_ID (0x05CA) +#define ZCL_PUBLISH_WEEK_PROFILE_REJECTED_ATTRIBUTE_ID (0x05CB) +#define ZCL_PUBLISH_SEASONS_RECEIVED_ATTRIBUTE_ID (0x05CC) +#define ZCL_PUBLISH_SEASONS_ACTIONED_ATTRIBUTE_ID (0x05CD) +#define ZCL_PUBLISH_SEASONS_CANCELLED_ATTRIBUTE_ID (0x05CE) +#define ZCL_PUBLISH_SEASONS_REJECTED_ATTRIBUTE_ID (0x05CF) +#define ZCL_PUBLISH_SPECIAL_DAYS_RECEIVED_ATTRIBUTE_ID (0x05D0) +#define ZCL_PUBLISH_SPECIAL_DAYS_ACTIONED_ATTRIBUTE_ID (0x05D1) +#define ZCL_PUBLISH_SPECIAL_DAYS_CANCELLED_ATTRIBUTE_ID (0x05D2) +#define ZCL_PUBLISH_SPECIAL_DAYS_REJECTED_ATTRIBUTE_ID (0x05D3) +#define ZCL_PASSWORD_1_CHANGE_ATTRIBUTE_ID (0x0600) +#define ZCL_PASSWORD_2_CHANGE_ATTRIBUTE_ID (0x0601) +#define ZCL_PASSWORD_3_CHANGE_ATTRIBUTE_ID (0x0602) +#define ZCL_PASSWORD_4_CHANGE_ATTRIBUTE_ID (0x0603) +#define ZCL_EVENT_LOG_CLEARED_ATTRIBUTE_ID (0x0604) +#define ZCL_ZIGBEE_APS_TIMEOUT_ATTRIBUTE_ID (0x0610) +#define ZCL_ZIGBEE_IEEE_TRANSMISSION_FAILURE_OVER_THRESHOLD_ATTRIBUTE_ID (0x0611) +#define ZCL_ZIGBEE_IEEE_FRAME_CHECK_SEQUENCE_THRESHOLD_ATTRIBUTE_ID (0x0612) +#define ZCL_ERROR_CERTIFICATE_ATTRIBUTE_ID (0x0613) +#define ZCL_ERROR_SIGNATURE_ATTRIBUTE_ID (0x0614) +#define ZCL_ERROR_PROGRAM_STORAGE_ATTRIBUTE_ID (0x0615) +#define ZCL_PUBLISH_COT_RECEIVED_ATTRIBUTE_ID (0x06C0) +#define ZCL_PUBLISH_COT_ACTIONED_ATTRIBUTE_ID (0x06C1) +#define ZCL_PUBLISH_COT_CANCELLED_ATTRIBUTE_ID (0x06C2) +#define ZCL_PUBLISH_COT_REJECTED_ATTRIBUTE_ID (0x06C3) +#define ZCL_PUBLISH_COS_RECEIVED_ATTRIBUTE_ID (0x06C4) +#define ZCL_PUBLISH_COS_ACTIONED_ATTRIBUTE_ID (0x06C5) +#define ZCL_PUBLISH_COS_CANCELLED_ATTRIBUTE_ID (0x06C6) +#define ZCL_PUBLISH_COS_REJECTED_ATTRIBUTE_ID (0x06C7) +#define ZCL_CHANGE_PASSWORD_RECEIVED_ATTRIBUTE_ID (0x06C8) +#define ZCL_CHANGE_PASSWORD_ACTIONED_ATTRIBUTE_ID (0x06C9) +#define ZCL_CHANGE_PASSWORD_CANCELLED_ATTRIBUTE_ID (0x06CA) +#define ZCL_CHANGE_PASSWORD_REJECTED_ATTRIBUTE_ID (0x06CB) +#define ZCL_SET_EVENT_CONFIGURATION_RECEIVED_ATTRIBUTE_ID (0x06CC) +#define ZCL_SET_EVENT_CONFIGURATION_ACTIONED_ATTRIBUTE_ID (0x06CD) +#define ZCL_SET_EVENT_CONFIGURATION_CANCELLED_ATTRIBUTE_ID (0x06CE) +#define ZCL_SET_EVENT_CONFIGURATION_REJECTED_ATTRIBUTE_ID (0x06CF) +#define ZCL_UPDATE_SITE_ID_RECEIVED_ATTRIBUTE_ID (0x06D0) +#define ZCL_UPDATE_SITE_ID_ACTIONED_ATTRIBUTE_ID (0x06D1) +#define ZCL_UPDATE_SITE_ID_CANCELLED_ATTRIBUTE_ID (0x06D2) +#define ZCL_UPDATE_SITE_ID_REJECTED_ATTRIBUTE_ID (0x06D3) +#define ZCL_UPDATE_CIN_RECEIVED_ATTRIBUTE_ID (0x06D4) +#define ZCL_UPDATE_CIN_ACTIONED_ATTRIBUTE_ID (0x06D5) +#define ZCL_UPDATE_CIN_CANCELLED_ATTRIBUTE_ID (0x06D6) +#define ZCL_UPDATE_CIN_REJECTED_ATTRIBUTE_ID (0x06D7) +#define ZCL_TUNNELING_CLUSTER_NOT_FOUND_ATTRIBUTE_ID (0x0700) +#define ZCL_UNSUPPORTED_PROTOCOL_ATTRIBUTE_ID (0x0701) +#define ZCL_INCORRECT_PROTOCOL_ATTRIBUTE_ID (0x0702) +#define ZCL_REQUEST_TUNNEL_COMMAND_RECEIVED_ATTRIBUTE_ID (0x07C0) +#define ZCL_REQUEST_TUNNEL_COMMAND_REJECTED_ATTRIBUTE_ID (0x07C1) +#define ZCL_REQUEST_TUNNEL_COMMAND_GENERATED_ATTRIBUTE_ID (0x07C2) +#define ZCL_CLOSE_TUNNEL_COMMAND_RECEIVED_ATTRIBUTE_ID (0x07C3) +#define ZCL_CLOSE_TUNNEL_COMMAND_REJECTED_ATTRIBUTE_ID (0x07C4) +#define ZCL_CLOSE_TUNNEL_COMMAND_GENERATED_ATTRIBUTE_ID (0x07C5) +#define ZCL_TRANSFER_DATA_COMMAND_RECEIVED_ATTRIBUTE_ID (0x07C6) +#define ZCL_TRANSFER_DATA_COMMAND_REJECTED_ATTRIBUTE_ID (0x07C7) +#define ZCL_TRANSFER_DATA_COMMAND_GENERATED_ATTRIBUTE_ID (0x07C8) +#define ZCL_TRANSFER_DATA_ERROR_COMMAND_RECEIVED_ATTRIBUTE_ID (0x07C9) +#define ZCL_TRANSFER_DATA_ERROR_COMMAND_REJECTED_ATTRIBUTE_ID (0x07CA) +#define ZCL_TRANSFER_DATA_ERROR_COMMAND_GENERATED_ATTRIBUTE_ID (0x07CB) +#define ZCL_ACK_TRANSFER_DATA_COMMAND_RECEIVED_ATTRIBUTE_ID (0x07CC) +#define ZCL_ACK_TRANSFER_DATA_COMMAND_REJECTED_ATTRIBUTE_ID (0x07CD) +#define ZCL_ACK_TRANSFER_DATA_COMMAND_GENERATED_ATTRIBUTE_ID (0x07CE) +#define ZCL_READY_DATA_COMMAND_RECEIVED_ATTRIBUTE_ID (0x07CF) +#define ZCL_READY_DATA_COMMAND_REJECTED_ATTRIBUTE_ID (0x07D0) +#define ZCL_READY_DATA_COMMAND_GENERATED_ATTRIBUTE_ID (0x07D1) +#define ZCL_GET_SUPPORTED_TUNNEL_PROTOCOLS_COMMAND_RECEIVED_ATTRIBUTE_ID (0x07D2) +#define ZCL_GET_SUPPORTED_TUNNEL_PROTOCOLS_COMMAND_REJECTED_ATTRIBUTE_ID (0x07D3) +#define ZCL_GET_SUPPORTED_TUNNEL_PROTOCOLS_COMMAND_GENERATED_ATTRIBUTE_ID (0x07D4) +#define ZCL_FIRMWARE_READY_FOR_ACTIVATION_ATTRIBUTE_ID (0x0800) +#define ZCL_FIRMWARE_ACTIVATED_ATTRIBUTE_ID (0x0801) +#define ZCL_FIRMWARE_ACTIVATION_FAILURE_ATTRIBUTE_ID (0x0802) +#define ZCL_PATCH_READY_FOR_ACTIVATION_ATTRIBUTE_ID (0x0803) +#define ZCL_PATCH_ACTIVATED_ATTRIBUTE_ID (0x0804) +#define ZCL_PATCH_FAILURE_ATTRIBUTE_ID (0x0805) +#define ZCL_IMAGE_NOTIFY_COMMAND_RECEIVED_ATTRIBUTE_ID (0x08C0) +#define ZCL_IMAGE_NOTIFY_COMMAND_REJECTED_ATTRIBUTE_ID (0x08C1) +#define ZCL_QUERY_NEXT_IMAGE_REQUEST_GENERATED_ATTRIBUTE_ID (0x08C2) +#define ZCL_QUERY_NEXT_IMAGE_RESPONSE_RECEIVED_ATTRIBUTE_ID (0x08C3) +#define ZCL_QUERY_NEXT_IMAGE_RESPONSE_REJECTED_ATTRIBUTE_ID (0x08C4) +#define ZCL_IMAGE_BLOCK_REQUEST_GENERATED_ATTRIBUTE_ID (0x08C5) +#define ZCL_IMAGE_PAGE_REQUEST_GENERATED_ATTRIBUTE_ID (0x08C6) +#define ZCL_IMAGE_BLOCK_RESPONSE_RECEIVED_ATTRIBUTE_ID (0x08C7) +#define ZCL_IMAGE_BLOCK_RESPONSE_REJECTED_ATTRIBUTE_ID (0x08C8) +#define ZCL_UPGRADE_END_REQUEST_GENERATED_ATTRIBUTE_ID (0x08C9) +#define ZCL_UPGRADE_END_RESPONSE_RECEIVED_ATTRIBUTE_ID (0x08CA) +#define ZCL_UPGRADE_END_RESPONSE_REJECTED_ATTRIBUTE_ID (0x08CB) +#define ZCL_QUERY_SPECIFIC_FILE_REQUEST_GENERATED_ATTRIBUTE_ID (0x08CC) +#define ZCL_QUERY_SPECIFIC_FILE_RESPONSE_RECEIVED_ATTRIBUTE_ID (0x08CD) +#define ZCL_QUERY_SPECIFIC_FILE_RESPONSE_REJECTED_ATTRIBUTE_ID (0x08CE) +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_PROVIDER_ID_SERVER_ATTRIBUTE_ID 0x0100 // Ver.: always -#define ZCL_PROVIDER_NAME_ATTRIBUTE_ID 0x0101 // Ver.: always -#define ZCL_PROVIDER_CONTACT_DETAILS_ATTRIBUTE_ID 0x0102 // Ver.: always -#define ZCL_PROPOSED_PROVIDER_ID_ATTRIBUTE_ID 0x0110 // Ver.: always -#define ZCL_PROPOSED_PROVIDER_NAME_ATTRIBUTE_ID 0x0111 // Ver.: always -#define ZCL_PROPOSED_PROVIDER_CHANGE_DATE_TIME_ATTRIBUTE_ID 0x0112 // Ver.: always -#define ZCL_PROPOSED_PROVIDER_CHANGE_CONTROL_ATTRIBUTE_ID 0x0113 // Ver.: always -#define ZCL_RECEIVED_PROVIDER_ID_SERVER_ATTRIBUTE_ID 0x0120 // Ver.: always -#define ZCL_RECEIVED_PROVIDER_NAME_ATTRIBUTE_ID 0x0121 // Ver.: always -#define ZCL_RECEIVED_PROVIDER_CONTACT_DETAILS_ATTRIBUTE_ID 0x0122 // Ver.: always -#define ZCL_RECEIVED_PROPOSED_PROVIDER_ID_ATTRIBUTE_ID 0x0130 // Ver.: always -#define ZCL_RECEIVED_PROPOSED_PROVIDER_NAME_ATTRIBUTE_ID 0x0131 // Ver.: always -#define ZCL_RECEIVED_PROPOSED_PROVIDER_CHANGE_DATE_TIME_ATTRIBUTE_ID 0x0132 // Ver.: always -#define ZCL_RECEIVED_PROPOSED_PROVIDER_CHANGE_CONTROL_ATTRIBUTE_ID 0x0133 // Ver.: always -#define ZCL_CHANGE_OF_TENANCY_UPDATE_DATE_TIME_ATTRIBUTE_ID 0x0200 // Ver.: always -#define ZCL_PROPOSED_TENANCY_CHANGE_CONTROL_ATTRIBUTE_ID 0x0201 // Ver.: always -#define ZCL_WAN_STATUS_ATTRIBUTE_ID 0x0300 // Ver.: always -#define ZCL_LOW_MEDIUM_THRESHOLD_ATTRIBUTE_ID 0x0400 // Ver.: always -#define ZCL_MEDIUM_HIGH_THRESHOLD_ATTRIBUTE_ID 0x0401 // Ver.: always -#define ZCL_DEVICE_MANAGEMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_DEVICE_MANAGEMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Events -// Cluster specification level: se-1.2b-15-0131-02 +#define ZCL_PROVIDER_ID_SERVER_ATTRIBUTE_ID (0x0100) +#define ZCL_PROVIDER_NAME_ATTRIBUTE_ID (0x0101) +#define ZCL_PROVIDER_CONTACT_DETAILS_ATTRIBUTE_ID (0x0102) +#define ZCL_PROPOSED_PROVIDER_ID_ATTRIBUTE_ID (0x0110) +#define ZCL_PROPOSED_PROVIDER_NAME_ATTRIBUTE_ID (0x0111) +#define ZCL_PROPOSED_PROVIDER_CHANGE_DATE_TIME_ATTRIBUTE_ID (0x0112) +#define ZCL_PROPOSED_PROVIDER_CHANGE_CONTROL_ATTRIBUTE_ID (0x0113) +#define ZCL_RECEIVED_PROVIDER_ID_SERVER_ATTRIBUTE_ID (0x0120) +#define ZCL_RECEIVED_PROVIDER_NAME_ATTRIBUTE_ID (0x0121) +#define ZCL_RECEIVED_PROVIDER_CONTACT_DETAILS_ATTRIBUTE_ID (0x0122) +#define ZCL_RECEIVED_PROPOSED_PROVIDER_ID_ATTRIBUTE_ID (0x0130) +#define ZCL_RECEIVED_PROPOSED_PROVIDER_NAME_ATTRIBUTE_ID (0x0131) +#define ZCL_RECEIVED_PROPOSED_PROVIDER_CHANGE_DATE_TIME_ATTRIBUTE_ID (0x0132) +#define ZCL_RECEIVED_PROPOSED_PROVIDER_CHANGE_CONTROL_ATTRIBUTE_ID (0x0133) +#define ZCL_CHANGE_OF_TENANCY_UPDATE_DATE_TIME_ATTRIBUTE_ID (0x0200) +#define ZCL_PROPOSED_TENANCY_CHANGE_CONTROL_ATTRIBUTE_ID (0x0201) +#define ZCL_WAN_STATUS_ATTRIBUTE_ID (0x0300) +#define ZCL_LOW_MEDIUM_THRESHOLD_ATTRIBUTE_ID (0x0400) +#define ZCL_MEDIUM_HIGH_THRESHOLD_ATTRIBUTE_ID (0x0401) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Events // Client attributes -#define ZCL_EVENTS_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_EVENTS_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_EVENTS_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_EVENTS_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) -// Attribute types for cluster: MDU Pairing -// Cluster specification level: se-1.2b-15-0131-02 +// Attribute ids for cluster: MDU Pairing // Client attributes -#define ZCL_MDU_PAIRING_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_MDU_PAIRING_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_MDU_PAIRING_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_MDU_PAIRING_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) -// Attribute types for cluster: Sub-GHz -// Cluster specification level: se-1.2b-15-0131-02 +// Attribute ids for cluster: Sub-GHz // Client attributes -#define ZCL_SUB_GHZ_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_SUB_GHZ_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_SUB_GHZ_CLUSTER_CHANNEL_CHANGE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_SUB_GHZ_CLUSTER_PAGE_28_CHANNEL_MASK_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_SUB_GHZ_CLUSTER_PAGE_29_CHANNEL_MASK_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_SUB_GHZ_CLUSTER_PAGE_30_CHANNEL_MASK_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_SUB_GHZ_CLUSTER_PAGE_31_CHANNEL_MASK_ATTRIBUTE_ID 0x0004 // Ver.: always -#define ZCL_SUB_GHZ_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_SUB_GHZ_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_SUB_GHZ_CLUSTER_CHANNEL_CHANGE_ATTRIBUTE_ID (0x0000) +#define ZCL_SUB_GHZ_CLUSTER_PAGE_28_CHANNEL_MASK_ATTRIBUTE_ID (0x0001) +#define ZCL_SUB_GHZ_CLUSTER_PAGE_29_CHANNEL_MASK_ATTRIBUTE_ID (0x0002) +#define ZCL_SUB_GHZ_CLUSTER_PAGE_30_CHANNEL_MASK_ATTRIBUTE_ID (0x0003) +#define ZCL_SUB_GHZ_CLUSTER_PAGE_31_CHANNEL_MASK_ATTRIBUTE_ID (0x0004) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) -// Attribute types for cluster: Key Establishment -// Cluster specification level: zcl-7.0-07-5123-07 +// Attribute ids for cluster: Key Establishment // Client attributes -#define ZCL_KEY_ESTABLISHMENT_SUITE_CLIENT_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_KEY_ESTABLISHMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_KEY_ESTABLISHMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_KEY_ESTABLISHMENT_SUITE_CLIENT_ATTRIBUTE_ID (0x0000) +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_KEY_ESTABLISHMENT_SUITE_SERVER_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_KEY_ESTABLISHMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_KEY_ESTABLISHMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_KEY_ESTABLISHMENT_SUITE_SERVER_ATTRIBUTE_ID (0x0000) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) -// Attribute types for cluster: Information -// Cluster specification level: ta-1.0-07-5307-07 +// Attribute ids for cluster: Information // Client attributes -#define ZCL_INFORMATION_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_INFORMATION_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_NODE_DESCRIPTION_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_DELIVERY_ENABLE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_PUSH_INFORMATION_TIMER_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_ENABLE_SECURE_CONFIGURATION_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_NUMBER_OF_CONTENTS_ATTRIBUTE_ID 0x0010 // Ver.: always -#define ZCL_CONTENT_ROOT_ID_ATTRIBUTE_ID 0x0011 // Ver.: always -#define ZCL_INFORMATION_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_INFORMATION_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Data Sharing -// Cluster specification level: ta-1.0-07-5307-07 +#define ZCL_NODE_DESCRIPTION_ATTRIBUTE_ID (0x0000) +#define ZCL_DELIVERY_ENABLE_ATTRIBUTE_ID (0x0001) +#define ZCL_PUSH_INFORMATION_TIMER_ATTRIBUTE_ID (0x0002) +#define ZCL_ENABLE_SECURE_CONFIGURATION_ATTRIBUTE_ID (0x0003) +#define ZCL_NUMBER_OF_CONTENTS_ATTRIBUTE_ID (0x0010) +#define ZCL_CONTENT_ROOT_ID_ATTRIBUTE_ID (0x0011) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Data Sharing // Client attributes -#define ZCL_DATA_SHARING_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_DATA_SHARING_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_DEVICE_NAME_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_DEVICE_DESCRIPTION_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_DATA_SHARING_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_DATA_SHARING_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_DEVICE_NAME_ATTRIBUTE_ID (0x0000) +#define ZCL_DEVICE_DESCRIPTION_ATTRIBUTE_ID (0x0001) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) -// Attribute types for cluster: Gaming -// Cluster specification level: ta-1.0-07-5307-07 +// Attribute ids for cluster: Gaming // Client attributes -#define ZCL_GAMING_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_GAMING_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_PLAYER_NAME_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_NB_OF_GAMES_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_LIST_OF_GAMES_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_ANNOUNCEMENT_INTERVAL_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_GAME_ID_ATTRIBUTE_ID 0x0010 // Ver.: always -#define ZCL_NAME_OF_GAME_ATTRIBUTE_ID 0x0011 // Ver.: always -#define ZCL_GAME_MASTER_ATTRIBUTE_ID 0x0012 // Ver.: always -#define ZCL_GAMING_STATUS_ATTRIBUTE_ID 0x0013 // Ver.: always -#define ZCL_CURRENT_NB_OF_PLAYERS_ATTRIBUTE_ID 0x0014 // Ver.: always -#define ZCL_LIST_OF_CURRENT_PLAYERS_ATTRIBUTE_ID 0x0015 // Ver.: always -#define ZCL_MAX_NB_OF_PLAYERS_ATTRIBUTE_ID 0x0016 // Ver.: always -#define ZCL_MIN_NB_OF_PLAYERS_ATTRIBUTE_ID 0x0017 // Ver.: always -#define ZCL_CURRENT_GAME_LEVEL_ATTRIBUTE_ID 0x0018 // Ver.: always -#define ZCL_SCORE_OF_THIS_PLAYER_ATTRIBUTE_ID 0x0019 // Ver.: always -#define ZCL_TIMER1_ATTRIBUTE_ID 0x001A // Ver.: always -#define ZCL_TIMER2_ATTRIBUTE_ID 0x001B // Ver.: always -#define ZCL_TIMER3_ATTRIBUTE_ID 0x001C // Ver.: always -#define ZCL_COUNTER1_ATTRIBUTE_ID 0x001D // Ver.: always -#define ZCL_COUNTER2_ATTRIBUTE_ID 0x001E // Ver.: always -#define ZCL_DOWNLOADABLE_ATTRIBUTE_ID 0x001F // Ver.: always -#define ZCL_GAMING_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_GAMING_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Data Rate Control -// Cluster specification level: ta-1.0-07-5307-07 +#define ZCL_PLAYER_NAME_ATTRIBUTE_ID (0x0000) +#define ZCL_NB_OF_GAMES_ATTRIBUTE_ID (0x0001) +#define ZCL_LIST_OF_GAMES_ATTRIBUTE_ID (0x0002) +#define ZCL_ANNOUNCEMENT_INTERVAL_ATTRIBUTE_ID (0x0003) +#define ZCL_GAME_ID_ATTRIBUTE_ID (0x0010) +#define ZCL_NAME_OF_GAME_ATTRIBUTE_ID (0x0011) +#define ZCL_GAME_MASTER_ATTRIBUTE_ID (0x0012) +#define ZCL_GAMING_STATUS_ATTRIBUTE_ID (0x0013) +#define ZCL_CURRENT_NB_OF_PLAYERS_ATTRIBUTE_ID (0x0014) +#define ZCL_LIST_OF_CURRENT_PLAYERS_ATTRIBUTE_ID (0x0015) +#define ZCL_MAX_NB_OF_PLAYERS_ATTRIBUTE_ID (0x0016) +#define ZCL_MIN_NB_OF_PLAYERS_ATTRIBUTE_ID (0x0017) +#define ZCL_CURRENT_GAME_LEVEL_ATTRIBUTE_ID (0x0018) +#define ZCL_SCORE_OF_THIS_PLAYER_ATTRIBUTE_ID (0x0019) +#define ZCL_TIMER1_ATTRIBUTE_ID (0x001A) +#define ZCL_TIMER2_ATTRIBUTE_ID (0x001B) +#define ZCL_TIMER3_ATTRIBUTE_ID (0x001C) +#define ZCL_COUNTER1_ATTRIBUTE_ID (0x001D) +#define ZCL_COUNTER2_ATTRIBUTE_ID (0x001E) +#define ZCL_DOWNLOADABLE_ATTRIBUTE_ID (0x001F) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Data Rate Control // Client attributes -#define ZCL_DATA_RATE_CONTROL_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_DATA_RATE_CONTROL_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_AVERAGE_LATENCY_REQUIREMENT_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_MAX_LATENCY_REQUIREMENT_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_BANDWIDTH_REQUIREMENT_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_DATA_RATE_CONTROL_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_DATA_RATE_CONTROL_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_AVERAGE_LATENCY_REQUIREMENT_ATTRIBUTE_ID (0x0000) +#define ZCL_MAX_LATENCY_REQUIREMENT_ATTRIBUTE_ID (0x0001) +#define ZCL_BANDWIDTH_REQUIREMENT_ATTRIBUTE_ID (0x0002) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) -// Attribute types for cluster: Voice over ZigBee -// Cluster specification level: ta-1.0-07-5307-07 +// Attribute ids for cluster: Voice over ZigBee // Client attributes -#define ZCL_VOICE_OVER_ZIGBEE_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_VOICE_OVER_ZIGBEE_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_CODEC_TYPE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_SAMPLING_FREQUENCY_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_CODEC_RATE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_ESTABLISHMENT_TIMEOUT_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_CODEC_TYPE_SUB1_ATTRIBUTE_ID 0x0004 // Ver.: always -#define ZCL_CODEC_TYPE_SUB2_ATTRIBUTE_ID 0x0005 // Ver.: always -#define ZCL_CODEC_TYPE_SUB3_ATTRIBUTE_ID 0x0006 // Ver.: always -#define ZCL_COMPRESSION_TYPE_ATTRIBUTE_ID 0x0007 // Ver.: always -#define ZCL_COMPRESSION_RATE_ATTRIBUTE_ID 0x0008 // Ver.: always -#define ZCL_OPTION_FLAGS_ATTRIBUTE_ID 0x0009 // Ver.: always -#define ZCL_THRESHOLD_ATTRIBUTE_ID 0x000A // Ver.: always -#define ZCL_VOICE_OVER_ZIGBEE_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_VOICE_OVER_ZIGBEE_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Chatting -// Cluster specification level: ta-1.0-07-5307-07 +#define ZCL_CODEC_TYPE_ATTRIBUTE_ID (0x0000) +#define ZCL_SAMPLING_FREQUENCY_ATTRIBUTE_ID (0x0001) +#define ZCL_CODEC_RATE_ATTRIBUTE_ID (0x0002) +#define ZCL_ESTABLISHMENT_TIMEOUT_ATTRIBUTE_ID (0x0003) +#define ZCL_CODEC_TYPE_SUB1_ATTRIBUTE_ID (0x0004) +#define ZCL_CODEC_TYPE_SUB2_ATTRIBUTE_ID (0x0005) +#define ZCL_CODEC_TYPE_SUB3_ATTRIBUTE_ID (0x0006) +#define ZCL_COMPRESSION_TYPE_ATTRIBUTE_ID (0x0007) +#define ZCL_COMPRESSION_RATE_ATTRIBUTE_ID (0x0008) +#define ZCL_OPTION_FLAGS_ATTRIBUTE_ID (0x0009) +#define ZCL_THRESHOLD_ATTRIBUTE_ID (0x000A) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Chatting // Client attributes -#define ZCL_CHATTING_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_CHATTING_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_U_ID_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_NICKNAME_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_C_ID_ATTRIBUTE_ID 0x0010 // Ver.: always -#define ZCL_NAME_ATTRIBUTE_ID 0x0011 // Ver.: always -#define ZCL_ENABLE_ADD_CHAT_ATTRIBUTE_ID 0x0020 // Ver.: always -#define ZCL_CHATTING_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_CHATTING_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_U_ID_ATTRIBUTE_ID (0x0000) +#define ZCL_NICKNAME_ATTRIBUTE_ID (0x0001) +#define ZCL_C_ID_ATTRIBUTE_ID (0x0010) +#define ZCL_NAME_ATTRIBUTE_ID (0x0011) +#define ZCL_ENABLE_ADD_CHAT_ATTRIBUTE_ID (0x0020) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) -// Attribute types for cluster: Payment -// Cluster specification level: ta-1.0-07-5307-07 +// Attribute ids for cluster: Payment // Client attributes -#define ZCL_PAYMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_PAYMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_PAYMENT_USER_ID_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_USER_TYPE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_PAYMENT_SERVICE_ID_ATTRIBUTE_ID 0x0010 // Ver.: always -#define ZCL_PAYMENT_SERVICE_PROVIDER_ID_ATTRIBUTE_ID 0x0011 // Ver.: always -#define ZCL_TOTEM_ID_ATTRIBUTE_ID 0x0012 // Ver.: always -#define ZCL_CURRENCY_ATTRIBUTE_ID 0x0020 // Ver.: always -#define ZCL_PRICE_TRAILING_DIGIT_ATTRIBUTE_ID 0x0021 // Ver.: always -#define ZCL_PRICE_ATTRIBUTE_ID 0x0022 // Ver.: always -#define ZCL_GOOD_ID_ATTRIBUTE_ID 0x0030 // Ver.: always -#define ZCL_SERIAL_NUMBER_ATTRIBUTE_ID 0x0031 // Ver.: always -#define ZCL_PAYMENT_TIMESTAMP_ATTRIBUTE_ID 0x0032 // Ver.: always -#define ZCL_TRANS_ID_ATTRIBUTE_ID 0x0033 // Ver.: always -#define ZCL_TRANS_STATUS_ATTRIBUTE_ID 0x0034 // Ver.: always -#define ZCL_PAYMENT_STATUS_ATTRIBUTE_ID 0x0035 // Ver.: always -#define ZCL_PAYMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_PAYMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Billing -// Cluster specification level: ta-1.0-07-5307-07 +#define ZCL_PAYMENT_USER_ID_ATTRIBUTE_ID (0x0000) +#define ZCL_USER_TYPE_ATTRIBUTE_ID (0x0001) +#define ZCL_PAYMENT_SERVICE_ID_ATTRIBUTE_ID (0x0010) +#define ZCL_PAYMENT_SERVICE_PROVIDER_ID_ATTRIBUTE_ID (0x0011) +#define ZCL_TOTEM_ID_ATTRIBUTE_ID (0x0012) +#define ZCL_CURRENCY_ATTRIBUTE_ID (0x0020) +#define ZCL_PRICE_TRAILING_DIGIT_ATTRIBUTE_ID (0x0021) +#define ZCL_PRICE_ATTRIBUTE_ID (0x0022) +#define ZCL_GOOD_ID_ATTRIBUTE_ID (0x0030) +#define ZCL_SERIAL_NUMBER_ATTRIBUTE_ID (0x0031) +#define ZCL_PAYMENT_TIMESTAMP_ATTRIBUTE_ID (0x0032) +#define ZCL_TRANS_ID_ATTRIBUTE_ID (0x0033) +#define ZCL_TRANS_STATUS_ATTRIBUTE_ID (0x0034) +#define ZCL_PAYMENT_STATUS_ATTRIBUTE_ID (0x0035) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Billing // Client attributes -#define ZCL_BILLING_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_BILLING_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_USER_ID_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_SERVICE_ID_ATTRIBUTE_ID 0x0010 // Ver.: always -#define ZCL_SERVICE_PROVIDER_ID_ATTRIBUTE_ID 0x0011 // Ver.: always -#define ZCL_SESSION_INTERVAL_ATTRIBUTE_ID 0x0012 // Ver.: always -#define ZCL_TIMESTAMP_ATTRIBUTE_ID 0x0020 // Ver.: always -#define ZCL_DURATION_ATTRIBUTE_ID 0x0021 // Ver.: always -#define ZCL_BILLING_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_BILLING_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Appliance Identification -// Cluster specification level: UNKNOWN +#define ZCL_USER_ID_ATTRIBUTE_ID (0x0000) +#define ZCL_SERVICE_ID_ATTRIBUTE_ID (0x0010) +#define ZCL_SERVICE_PROVIDER_ID_ATTRIBUTE_ID (0x0011) +#define ZCL_SESSION_INTERVAL_ATTRIBUTE_ID (0x0012) +#define ZCL_TIMESTAMP_ATTRIBUTE_ID (0x0020) +#define ZCL_DURATION_ATTRIBUTE_ID (0x0021) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Appliance Identification // Client attributes -#define ZCL_APPLIANCE_IDENTIFICATION_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_APPLIANCE_IDENTIFICATION_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_BASIC_IDENTIFICATION_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_APPLIANCE_COMPANY_NAME_ATTRIBUTE_ID 0x0010 // Ver.: always -#define ZCL_COMPANY_ID_ATTRIBUTE_ID 0x0011 // Ver.: always -#define ZCL_BRAND_NAME_ATTRIBUTE_ID 0x0012 // Ver.: always -#define ZCL_BRAND_ID_ATTRIBUTE_ID 0x0013 // Ver.: always -#define ZCL_APPLIANCE_MODEL_ATTRIBUTE_ID 0x0014 // Ver.: always -#define ZCL_APPLIANCE_PART_NUMBER_ATTRIBUTE_ID 0x0015 // Ver.: always -#define ZCL_APPLIANCE_PRODUCT_REVISION_ATTRIBUTE_ID 0x0016 // Ver.: always -#define ZCL_APPLIANCE_SOFTWARE_REVISION_ATTRIBUTE_ID 0x0017 // Ver.: always -#define ZCL_PRODUCT_TYPE_NAME_ATTRIBUTE_ID 0x0018 // Ver.: always -#define ZCL_PRODUCT_TYPE_ID_ATTRIBUTE_ID 0x0019 // Ver.: always -#define ZCL_CECED_SPECIFICATION_VERSION_ATTRIBUTE_ID 0x001A // Ver.: always -#define ZCL_APPLIANCE_IDENTIFICATION_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_APPLIANCE_IDENTIFICATION_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Meter Identification -// Cluster specification level: UNKNOWN +#define ZCL_BASIC_IDENTIFICATION_ATTRIBUTE_ID (0x0000) +#define ZCL_APPLIANCE_COMPANY_NAME_ATTRIBUTE_ID (0x0010) +#define ZCL_COMPANY_ID_ATTRIBUTE_ID (0x0011) +#define ZCL_BRAND_NAME_ATTRIBUTE_ID (0x0012) +#define ZCL_BRAND_ID_ATTRIBUTE_ID (0x0013) +#define ZCL_APPLIANCE_MODEL_ATTRIBUTE_ID (0x0014) +#define ZCL_APPLIANCE_PART_NUMBER_ATTRIBUTE_ID (0x0015) +#define ZCL_APPLIANCE_PRODUCT_REVISION_ATTRIBUTE_ID (0x0016) +#define ZCL_APPLIANCE_SOFTWARE_REVISION_ATTRIBUTE_ID (0x0017) +#define ZCL_PRODUCT_TYPE_NAME_ATTRIBUTE_ID (0x0018) +#define ZCL_PRODUCT_TYPE_ID_ATTRIBUTE_ID (0x0019) +#define ZCL_CECED_SPECIFICATION_VERSION_ATTRIBUTE_ID (0x001A) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Meter Identification // Client attributes -#define ZCL_METER_IDENTIFICATION_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_METER_IDENTIFICATION_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_METER_COMPANY_NAME_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_METER_TYPE_ID_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_DATA_QUALITY_ID_ATTRIBUTE_ID 0x0004 // Ver.: always -#define ZCL_CUSTOMER_NAME_ATTRIBUTE_ID 0x0005 // Ver.: always -#define ZCL_METER_MODEL_ATTRIBUTE_ID 0x0006 // Ver.: always -#define ZCL_METER_PART_NUMBER_ATTRIBUTE_ID 0x0007 // Ver.: always -#define ZCL_METER_PRODUCT_REVISION_ATTRIBUTE_ID 0x0008 // Ver.: always -#define ZCL_METER_SOFTWARE_REVISION_ATTRIBUTE_ID 0x000A // Ver.: always -#define ZCL_UTILITY_NAME_ATTRIBUTE_ID 0x000B // Ver.: always -#define ZCL_POD_ATTRIBUTE_ID 0x000C // Ver.: always -#define ZCL_AVAILABLE_POWER_ATTRIBUTE_ID 0x000D // Ver.: always -#define ZCL_POWER_THRESHOLD_ATTRIBUTE_ID 0x000E // Ver.: always -#define ZCL_METER_IDENTIFICATION_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_METER_IDENTIFICATION_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Appliance Events and Alert -// Cluster specification level: UNKNOWN +#define ZCL_METER_COMPANY_NAME_ATTRIBUTE_ID (0x0000) +#define ZCL_METER_TYPE_ID_ATTRIBUTE_ID (0x0001) +#define ZCL_DATA_QUALITY_ID_ATTRIBUTE_ID (0x0004) +#define ZCL_CUSTOMER_NAME_ATTRIBUTE_ID (0x0005) +#define ZCL_METER_MODEL_ATTRIBUTE_ID (0x0006) +#define ZCL_METER_PART_NUMBER_ATTRIBUTE_ID (0x0007) +#define ZCL_METER_PRODUCT_REVISION_ATTRIBUTE_ID (0x0008) +#define ZCL_METER_SOFTWARE_REVISION_ATTRIBUTE_ID (0x000A) +#define ZCL_UTILITY_NAME_ATTRIBUTE_ID (0x000B) +#define ZCL_POD_ATTRIBUTE_ID (0x000C) +#define ZCL_AVAILABLE_POWER_ATTRIBUTE_ID (0x000D) +#define ZCL_POWER_THRESHOLD_ATTRIBUTE_ID (0x000E) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Appliance Events and Alert // Client attributes -#define ZCL_APPLIANCE_EVENTS_AND_ALERT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_APPLIANCE_EVENTS_AND_ALERT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_APPLIANCE_EVENTS_AND_ALERT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_APPLIANCE_EVENTS_AND_ALERT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) -// Attribute types for cluster: Appliance Statistics -// Cluster specification level: UNKNOWN +// Attribute ids for cluster: Appliance Statistics // Client attributes -#define ZCL_APPLIANCE_STATISTICS_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_APPLIANCE_STATISTICS_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_LOG_MAX_SIZE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_LOG_QUEUE_MAX_SIZE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_APPLIANCE_STATISTICS_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_APPLIANCE_STATISTICS_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_LOG_MAX_SIZE_ATTRIBUTE_ID (0x0000) +#define ZCL_LOG_QUEUE_MAX_SIZE_ATTRIBUTE_ID (0x0001) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) -// Attribute types for cluster: Electrical Measurement -// Cluster specification level: UNKNOWN +// Attribute ids for cluster: Electrical Measurement // Client attributes -#define ZCL_ELECTRICAL_MEASUREMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_ELECTRICAL_MEASUREMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_MEASUREMENT_TYPE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_DC_VOLTAGE_ATTRIBUTE_ID 0x0100 // Ver.: always -#define ZCL_DC_VOLTAGE_MIN_ATTRIBUTE_ID 0x0101 // Ver.: always -#define ZCL_DC_VOLTAGE_MAX_ATTRIBUTE_ID 0x0102 // Ver.: always -#define ZCL_DC_CURRENT_ATTRIBUTE_ID 0x0103 // Ver.: always -#define ZCL_DC_CURRENT_MIN_ATTRIBUTE_ID 0x0104 // Ver.: always -#define ZCL_DC_CURRENT_MAX_ATTRIBUTE_ID 0x0105 // Ver.: always -#define ZCL_DC_POWER_ATTRIBUTE_ID 0x0106 // Ver.: always -#define ZCL_DC_POWER_MIN_ATTRIBUTE_ID 0x0107 // Ver.: always -#define ZCL_DC_POWER_MAX_ATTRIBUTE_ID 0x0108 // Ver.: always -#define ZCL_DC_VOLTAGE_MULTIPLIER_ATTRIBUTE_ID 0x0200 // Ver.: always -#define ZCL_DC_VOLTAGE_DIVISOR_ATTRIBUTE_ID 0x0201 // Ver.: always -#define ZCL_DC_CURRENT_MULTIPLIER_ATTRIBUTE_ID 0x0202 // Ver.: always -#define ZCL_DC_CURRENT_DIVISOR_ATTRIBUTE_ID 0x0203 // Ver.: always -#define ZCL_DC_POWER_MULTIPLIER_ATTRIBUTE_ID 0x0204 // Ver.: always -#define ZCL_DC_POWER_DIVISOR_ATTRIBUTE_ID 0x0205 // Ver.: always -#define ZCL_AC_FREQUENCY_ATTRIBUTE_ID 0x0300 // Ver.: always -#define ZCL_AC_FREQUENCY_MIN_ATTRIBUTE_ID 0x0301 // Ver.: always -#define ZCL_AC_FREQUENCY_MAX_ATTRIBUTE_ID 0x0302 // Ver.: always -#define ZCL_NEUTRAL_CURRENT_ATTRIBUTE_ID 0x0303 // Ver.: always -#define ZCL_TOTAL_ACTIVE_POWER_ATTRIBUTE_ID 0x0304 // Ver.: always -#define ZCL_TOTAL_REACTIVE_POWER_ATTRIBUTE_ID 0x0305 // Ver.: always -#define ZCL_TOTAL_APPARENT_POWER_ATTRIBUTE_ID 0x0306 // Ver.: always -#define ZCL_MEASURED_1ST_HARMONIC_CURRENT_ATTRIBUTE_ID 0x0307 // Ver.: always -#define ZCL_MEASURED_3RD_HARMONIC_CURRENT_ATTRIBUTE_ID 0x0308 // Ver.: always -#define ZCL_MEASURED_5TH_HARMONIC_CURRENT_ATTRIBUTE_ID 0x0309 // Ver.: always -#define ZCL_MEASURED_7TH_HARMONIC_CURRENT_ATTRIBUTE_ID 0x030A // Ver.: always -#define ZCL_MEASURED_9TH_HARMONIC_CURRENT_ATTRIBUTE_ID 0x030B // Ver.: always -#define ZCL_MEASURED_11TH_HARMONIC_CURRENT_ATTRIBUTE_ID 0x030C // Ver.: always -#define ZCL_MEASURED_PHASE_1ST_HARMONIC_CURRENT_ATTRIBUTE_ID 0x030D // Ver.: always -#define ZCL_MEASURED_PHASE_3RD_HARMONIC_CURRENT_ATTRIBUTE_ID 0x030E // Ver.: always -#define ZCL_MEASURED_PHASE_5TH_HARMONIC_CURRENT_ATTRIBUTE_ID 0x030F // Ver.: always -#define ZCL_MEASURED_PHASE_7TH_HARMONIC_CURRENT_ATTRIBUTE_ID 0x0310 // Ver.: always -#define ZCL_MEASURED_PHASE_9TH_HARMONIC_CURRENT_ATTRIBUTE_ID 0x0311 // Ver.: always -#define ZCL_MEASURED_PHASE_11TH_HARMONIC_CURRENT_ATTRIBUTE_ID 0x0312 // Ver.: always -#define ZCL_AC_FREQUENCY_MULTIPLIER_ATTRIBUTE_ID 0x0400 // Ver.: always -#define ZCL_AC_FREQUENCY_DIVISOR_ATTRIBUTE_ID 0x0401 // Ver.: always -#define ZCL_POWER_MULTIPLIER_ATTRIBUTE_ID 0x0402 // Ver.: always -#define ZCL_POWER_DIVISOR_ATTRIBUTE_ID 0x0403 // Ver.: always -#define ZCL_HARMONIC_CURRENT_MULTIPLIER_ATTRIBUTE_ID 0x0404 // Ver.: always -#define ZCL_PHASE_HARMONIC_CURRENT_MULTIPLIER_ATTRIBUTE_ID 0x0405 // Ver.: always -#define ZCL_INSTANTANEOUS_VOLTAGE_ATTRIBUTE_ID 0x0500 // Ver.: always -#define ZCL_INSTANTANEOUS_LINE_CURRENT_ATTRIBUTE_ID 0x0501 // Ver.: always -#define ZCL_INSTANTANEOUS_ACTIVE_CURRENT_ATTRIBUTE_ID 0x0502 // Ver.: always -#define ZCL_INSTANTANEOUS_REACTIVE_CURRENT_ATTRIBUTE_ID 0x0503 // Ver.: always -#define ZCL_INSTANTANEOUS_POWER_ATTRIBUTE_ID 0x0504 // Ver.: always -#define ZCL_RMS_VOLTAGE_ATTRIBUTE_ID 0x0505 // Ver.: always -#define ZCL_RMS_VOLTAGE_MIN_ATTRIBUTE_ID 0x0506 // Ver.: always -#define ZCL_RMS_VOLTAGE_MAX_ATTRIBUTE_ID 0x0507 // Ver.: always -#define ZCL_RMS_CURRENT_ATTRIBUTE_ID 0x0508 // Ver.: always -#define ZCL_RMS_CURRENT_MIN_ATTRIBUTE_ID 0x0509 // Ver.: always -#define ZCL_RMS_CURRENT_MAX_ATTRIBUTE_ID 0x050A // Ver.: always -#define ZCL_ACTIVE_POWER_ATTRIBUTE_ID 0x050B // Ver.: always -#define ZCL_ACTIVE_POWER_MIN_ATTRIBUTE_ID 0x050C // Ver.: always -#define ZCL_ACTIVE_POWER_MAX_ATTRIBUTE_ID 0x050D // Ver.: always -#define ZCL_REACTIVE_POWER_ATTRIBUTE_ID 0x050E // Ver.: always -#define ZCL_APPARENT_POWER_ATTRIBUTE_ID 0x050F // Ver.: always -#define ZCL_AC_POWER_FACTOR_ATTRIBUTE_ID 0x0510 // Ver.: always -#define ZCL_AVERAGE_RMS_VOLTAGE_MEASUREMENT_PERIOD_ATTRIBUTE_ID 0x0511 // Ver.: always -#define ZCL_AVERAGE_RMS_UNDER_VOLTAGE_COUNTER_ATTRIBUTE_ID 0x0513 // Ver.: always -#define ZCL_RMS_EXTREME_OVER_VOLTAGE_PERIOD_ATTRIBUTE_ID 0x0514 // Ver.: always -#define ZCL_RMS_EXTREME_UNDER_VOLTAGE_PERIOD_ATTRIBUTE_ID 0x0515 // Ver.: always -#define ZCL_RMS_VOLTAGE_SAG_PERIOD_ATTRIBUTE_ID 0x0516 // Ver.: always -#define ZCL_RMS_VOLTAGE_SWELL_PERIOD_ATTRIBUTE_ID 0x0517 // Ver.: always -#define ZCL_AC_VOLTAGE_MULTIPLIER_ATTRIBUTE_ID 0x0600 // Ver.: always -#define ZCL_AC_VOLTAGE_DIVISOR_ATTRIBUTE_ID 0x0601 // Ver.: always -#define ZCL_AC_CURRENT_MULTIPLIER_ATTRIBUTE_ID 0x0602 // Ver.: always -#define ZCL_AC_CURRENT_DIVISOR_ATTRIBUTE_ID 0x0603 // Ver.: always -#define ZCL_AC_POWER_MULTIPLIER_ATTRIBUTE_ID 0x0604 // Ver.: always -#define ZCL_AC_POWER_DIVISOR_ATTRIBUTE_ID 0x0605 // Ver.: always -#define ZCL_DC_OVERLOAD_ALARMS_MASK_ATTRIBUTE_ID 0x0700 // Ver.: always -#define ZCL_DC_VOLTAGE_OVERLOAD_ATTRIBUTE_ID 0x0701 // Ver.: always -#define ZCL_DC_CURRENT_OVERLOAD_ATTRIBUTE_ID 0x0702 // Ver.: always -#define ZCL_AC_OVERLOAD_ALARMS_MASK_ATTRIBUTE_ID 0x0800 // Ver.: always -#define ZCL_AC_VOLTAGE_OVERLOAD_ATTRIBUTE_ID 0x0801 // Ver.: always -#define ZCL_AC_CURRENT_OVERLOAD_ATTRIBUTE_ID 0x0802 // Ver.: always -#define ZCL_AC_POWER_OVERLOAD_ATTRIBUTE_ID 0x0803 // Ver.: always -#define ZCL_AC_REACTIVE_POWER_OVERLOAD_ATTRIBUTE_ID 0x0804 // Ver.: always -#define ZCL_AVERAGE_RMS_OVER_VOLTAGE_ATTRIBUTE_ID 0x0805 // Ver.: always -#define ZCL_AVERAGE_RMS_UNDER_VOLTAGE_ATTRIBUTE_ID 0x0806 // Ver.: always -#define ZCL_RMS_EXTREME_OVER_VOLTAGE_ATTRIBUTE_ID 0x0807 // Ver.: always -#define ZCL_RMS_EXTREME_UNDER_VOLTAGE_ATTRIBUTE_ID 0x0808 // Ver.: always -#define ZCL_RMS_VOLTAGE_SAG_ATTRIBUTE_ID 0x0809 // Ver.: always -#define ZCL_RMS_VOLTAGE_SWELL_ATTRIBUTE_ID 0x080A // Ver.: always -#define ZCL_LINE_CURRENT_PHASE_B_ATTRIBUTE_ID 0x0901 // Ver.: always -#define ZCL_ACTIVE_CURRENT_PHASE_B_ATTRIBUTE_ID 0x0902 // Ver.: always -#define ZCL_REACTIVE_CURRENT_PHASE_B_ATTRIBUTE_ID 0x0903 // Ver.: always -#define ZCL_RMS_VOLTAGE_PHASE_B_ATTRIBUTE_ID 0x0905 // Ver.: always -#define ZCL_RMS_VOLTAGE_MIN_PHASE_B_ATTRIBUTE_ID 0x0906 // Ver.: always -#define ZCL_RMS_VOLTAGE_MAX_PHASE_B_ATTRIBUTE_ID 0x0907 // Ver.: always -#define ZCL_RMS_CURRENT_PHASE_B_ATTRIBUTE_ID 0x0908 // Ver.: always -#define ZCL_RMS_CURRENT_MIN_PHASE_B_ATTRIBUTE_ID 0x0909 // Ver.: always -#define ZCL_RMS_CURRENT_MAX_PHASE_B_ATTRIBUTE_ID 0x090A // Ver.: always -#define ZCL_ACTIVE_POWER_PHASE_B_ATTRIBUTE_ID 0x090B // Ver.: always -#define ZCL_ACTIVE_POWER_MIN_PHASE_B_ATTRIBUTE_ID 0x090C // Ver.: always -#define ZCL_ACTIVE_POWER_MAX_PHASE_B_ATTRIBUTE_ID 0x090D // Ver.: always -#define ZCL_REACTIVE_POWER_PHASE_B_ATTRIBUTE_ID 0x090E // Ver.: always -#define ZCL_APPARENT_POWER_PHASE_B_ATTRIBUTE_ID 0x090F // Ver.: always -#define ZCL_POWER_FACTOR_PHASE_B_ATTRIBUTE_ID 0x0910 // Ver.: always -#define ZCL_AVERAGE_RMS_VOLTAGE_MEASUREMENT_PERIOD_PHASE_B_ATTRIBUTE_ID 0x0911 // Ver.: always -#define ZCL_AVERAGE_RMS_OVER_VOLTAGE_COUNTER_PHASE_B_ATTRIBUTE_ID 0x0912 // Ver.: always -#define ZCL_AVERAGE_RMS_UNDER_VOLTAGE_COUNTER_PHASE_B_ATTRIBUTE_ID 0x0913 // Ver.: always -#define ZCL_RMS_EXTREME_OVER_VOLTAGE_PERIOD_PHASE_B_ATTRIBUTE_ID 0x0914 // Ver.: always -#define ZCL_RMS_EXTREME_UNDER_VOLTAGE_PERIOD_PHASE_B_ATTRIBUTE_ID 0x0915 // Ver.: always -#define ZCL_RMS_VOLTAGE_SAG_PERIOD_PHASE_B_ATTRIBUTE_ID 0x0916 // Ver.: always -#define ZCL_RMS_VOLTAGE_SWELL_PERIOD_PHASE_B_ATTRIBUTE_ID 0x0917 // Ver.: always -#define ZCL_LINE_CURRENT_PHASE_C_ATTRIBUTE_ID 0x0A01 // Ver.: always -#define ZCL_ACTIVE_CURRENT_PHASE_C_ATTRIBUTE_ID 0x0A02 // Ver.: always -#define ZCL_REACTIVE_CURRENT_PHASE_C_ATTRIBUTE_ID 0x0A03 // Ver.: always -#define ZCL_RMS_VOLTAGE_PHASE_C_ATTRIBUTE_ID 0x0A05 // Ver.: always -#define ZCL_RMS_VOLTAGE_MIN_PHASE_C_ATTRIBUTE_ID 0x0A06 // Ver.: always -#define ZCL_RMS_VOLTAGE_MAX_PHASE_C_ATTRIBUTE_ID 0x0A07 // Ver.: always -#define ZCL_RMS_CURRENT_PHASE_C_ATTRIBUTE_ID 0x0A08 // Ver.: always -#define ZCL_RMS_CURRENT_MIN_PHASE_C_ATTRIBUTE_ID 0x0A09 // Ver.: always -#define ZCL_RMS_CURRENT_MAX_PHASE_C_ATTRIBUTE_ID 0x0A0A // Ver.: always -#define ZCL_ACTIVE_POWER_PHASE_C_ATTRIBUTE_ID 0x0A0B // Ver.: always -#define ZCL_ACTIVE_POWER_MIN_PHASE_C_ATTRIBUTE_ID 0x0A0C // Ver.: always -#define ZCL_ACTIVE_POWER_MAX_PHASE_C_ATTRIBUTE_ID 0x0A0D // Ver.: always -#define ZCL_REACTIVE_POWER_PHASE_C_ATTRIBUTE_ID 0x0A0E // Ver.: always -#define ZCL_APPARENT_POWER_PHASE_C_ATTRIBUTE_ID 0x0A0F // Ver.: always -#define ZCL_POWER_FACTOR_PHASE_C_ATTRIBUTE_ID 0x0A10 // Ver.: always -#define ZCL_AVERAGE_RMS_VOLTAGE_MEASUREMENT_PERIOD_PHASE_C_ATTRIBUTE_ID 0x0A11 // Ver.: always -#define ZCL_AVERAGE_RMS_OVER_VOLTAGE_COUNTER_PHASE_C_ATTRIBUTE_ID 0x0A12 // Ver.: always -#define ZCL_AVERAGE_RMS_UNDER_VOLTAGE_COUNTER_PHASE_C_ATTRIBUTE_ID 0x0A13 // Ver.: always -#define ZCL_RMS_EXTREME_OVER_VOLTAGE_PERIOD_PHASE_C_ATTRIBUTE_ID 0x0A14 // Ver.: always -#define ZCL_RMS_EXTREME_UNDER_VOLTAGE_PERIOD_PHASE_C_ATTRIBUTE_ID 0x0A15 // Ver.: always -#define ZCL_RMS_VOLTAGE_SAG_PERIOD_PHASE_C_ATTRIBUTE_ID 0x0A16 // Ver.: always -#define ZCL_RMS_VOLTAGE_SWELL_PERIOD_PHASE_C_ATTRIBUTE_ID 0x0A17 // Ver.: always -#define ZCL_ELECTRICAL_MEASUREMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_ELECTRICAL_MEASUREMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Diagnostics -// Cluster specification level: UNKNOWN +#define ZCL_MEASUREMENT_TYPE_ATTRIBUTE_ID (0x0000) +#define ZCL_DC_VOLTAGE_ATTRIBUTE_ID (0x0100) +#define ZCL_DC_VOLTAGE_MIN_ATTRIBUTE_ID (0x0101) +#define ZCL_DC_VOLTAGE_MAX_ATTRIBUTE_ID (0x0102) +#define ZCL_DC_CURRENT_ATTRIBUTE_ID (0x0103) +#define ZCL_DC_CURRENT_MIN_ATTRIBUTE_ID (0x0104) +#define ZCL_DC_CURRENT_MAX_ATTRIBUTE_ID (0x0105) +#define ZCL_DC_POWER_ATTRIBUTE_ID (0x0106) +#define ZCL_DC_POWER_MIN_ATTRIBUTE_ID (0x0107) +#define ZCL_DC_POWER_MAX_ATTRIBUTE_ID (0x0108) +#define ZCL_DC_VOLTAGE_MULTIPLIER_ATTRIBUTE_ID (0x0200) +#define ZCL_DC_VOLTAGE_DIVISOR_ATTRIBUTE_ID (0x0201) +#define ZCL_DC_CURRENT_MULTIPLIER_ATTRIBUTE_ID (0x0202) +#define ZCL_DC_CURRENT_DIVISOR_ATTRIBUTE_ID (0x0203) +#define ZCL_DC_POWER_MULTIPLIER_ATTRIBUTE_ID (0x0204) +#define ZCL_DC_POWER_DIVISOR_ATTRIBUTE_ID (0x0205) +#define ZCL_AC_FREQUENCY_ATTRIBUTE_ID (0x0300) +#define ZCL_AC_FREQUENCY_MIN_ATTRIBUTE_ID (0x0301) +#define ZCL_AC_FREQUENCY_MAX_ATTRIBUTE_ID (0x0302) +#define ZCL_NEUTRAL_CURRENT_ATTRIBUTE_ID (0x0303) +#define ZCL_TOTAL_ACTIVE_POWER_ATTRIBUTE_ID (0x0304) +#define ZCL_TOTAL_REACTIVE_POWER_ATTRIBUTE_ID (0x0305) +#define ZCL_TOTAL_APPARENT_POWER_ATTRIBUTE_ID (0x0306) +#define ZCL_MEASURED_1_ST_HARMONIC_CURRENT_ATTRIBUTE_ID (0x0307) +#define ZCL_MEASURED_3_RD_HARMONIC_CURRENT_ATTRIBUTE_ID (0x0308) +#define ZCL_MEASURED_5_TH_HARMONIC_CURRENT_ATTRIBUTE_ID (0x0309) +#define ZCL_MEASURED_7_TH_HARMONIC_CURRENT_ATTRIBUTE_ID (0x030A) +#define ZCL_MEASURED_9_TH_HARMONIC_CURRENT_ATTRIBUTE_ID (0x030B) +#define ZCL_MEASURED_11_TH_HARMONIC_CURRENT_ATTRIBUTE_ID (0x030C) +#define ZCL_MEASURED_PHASE_1_ST_HARMONIC_CURRENT_ATTRIBUTE_ID (0x030D) +#define ZCL_MEASURED_PHASE_3_RD_HARMONIC_CURRENT_ATTRIBUTE_ID (0x030E) +#define ZCL_MEASURED_PHASE_5_TH_HARMONIC_CURRENT_ATTRIBUTE_ID (0x030F) +#define ZCL_MEASURED_PHASE_7_TH_HARMONIC_CURRENT_ATTRIBUTE_ID (0x0310) +#define ZCL_MEASURED_PHASE_9_TH_HARMONIC_CURRENT_ATTRIBUTE_ID (0x0311) +#define ZCL_MEASURED_PHASE_11_TH_HARMONIC_CURRENT_ATTRIBUTE_ID (0x0312) +#define ZCL_AC_FREQUENCY_MULTIPLIER_ATTRIBUTE_ID (0x0400) +#define ZCL_AC_FREQUENCY_DIVISOR_ATTRIBUTE_ID (0x0401) +#define ZCL_POWER_MULTIPLIER_ATTRIBUTE_ID (0x0402) +#define ZCL_POWER_DIVISOR_ATTRIBUTE_ID (0x0403) +#define ZCL_HARMONIC_CURRENT_MULTIPLIER_ATTRIBUTE_ID (0x0404) +#define ZCL_PHASE_HARMONIC_CURRENT_MULTIPLIER_ATTRIBUTE_ID (0x0405) +#define ZCL_INSTANTANEOUS_VOLTAGE_ATTRIBUTE_ID (0x0500) +#define ZCL_INSTANTANEOUS_LINE_CURRENT_ATTRIBUTE_ID (0x0501) +#define ZCL_INSTANTANEOUS_ACTIVE_CURRENT_ATTRIBUTE_ID (0x0502) +#define ZCL_INSTANTANEOUS_REACTIVE_CURRENT_ATTRIBUTE_ID (0x0503) +#define ZCL_INSTANTANEOUS_POWER_ATTRIBUTE_ID (0x0504) +#define ZCL_RMS_VOLTAGE_ATTRIBUTE_ID (0x0505) +#define ZCL_RMS_VOLTAGE_MIN_ATTRIBUTE_ID (0x0506) +#define ZCL_RMS_VOLTAGE_MAX_ATTRIBUTE_ID (0x0507) +#define ZCL_RMS_CURRENT_ATTRIBUTE_ID (0x0508) +#define ZCL_RMS_CURRENT_MIN_ATTRIBUTE_ID (0x0509) +#define ZCL_RMS_CURRENT_MAX_ATTRIBUTE_ID (0x050A) +#define ZCL_ACTIVE_POWER_ATTRIBUTE_ID (0x050B) +#define ZCL_ACTIVE_POWER_MIN_ATTRIBUTE_ID (0x050C) +#define ZCL_ACTIVE_POWER_MAX_ATTRIBUTE_ID (0x050D) +#define ZCL_REACTIVE_POWER_ATTRIBUTE_ID (0x050E) +#define ZCL_APPARENT_POWER_ATTRIBUTE_ID (0x050F) +#define ZCL_AC_POWER_FACTOR_ATTRIBUTE_ID (0x0510) +#define ZCL_AVERAGE_RMS_VOLTAGE_MEASUREMENT_PERIOD_ATTRIBUTE_ID (0x0511) +#define ZCL_AVERAGE_RMS_UNDER_VOLTAGE_COUNTER_ATTRIBUTE_ID (0x0513) +#define ZCL_RMS_EXTREME_OVER_VOLTAGE_PERIOD_ATTRIBUTE_ID (0x0514) +#define ZCL_RMS_EXTREME_UNDER_VOLTAGE_PERIOD_ATTRIBUTE_ID (0x0515) +#define ZCL_RMS_VOLTAGE_SAG_PERIOD_ATTRIBUTE_ID (0x0516) +#define ZCL_RMS_VOLTAGE_SWELL_PERIOD_ATTRIBUTE_ID (0x0517) +#define ZCL_AC_VOLTAGE_MULTIPLIER_ATTRIBUTE_ID (0x0600) +#define ZCL_AC_VOLTAGE_DIVISOR_ATTRIBUTE_ID (0x0601) +#define ZCL_AC_CURRENT_MULTIPLIER_ATTRIBUTE_ID (0x0602) +#define ZCL_AC_CURRENT_DIVISOR_ATTRIBUTE_ID (0x0603) +#define ZCL_AC_POWER_MULTIPLIER_ATTRIBUTE_ID (0x0604) +#define ZCL_AC_POWER_DIVISOR_ATTRIBUTE_ID (0x0605) +#define ZCL_DC_OVERLOAD_ALARMS_MASK_ATTRIBUTE_ID (0x0700) +#define ZCL_DC_VOLTAGE_OVERLOAD_ATTRIBUTE_ID (0x0701) +#define ZCL_DC_CURRENT_OVERLOAD_ATTRIBUTE_ID (0x0702) +#define ZCL_AC_OVERLOAD_ALARMS_MASK_ATTRIBUTE_ID (0x0800) +#define ZCL_AC_VOLTAGE_OVERLOAD_ATTRIBUTE_ID (0x0801) +#define ZCL_AC_CURRENT_OVERLOAD_ATTRIBUTE_ID (0x0802) +#define ZCL_AC_POWER_OVERLOAD_ATTRIBUTE_ID (0x0803) +#define ZCL_AC_REACTIVE_POWER_OVERLOAD_ATTRIBUTE_ID (0x0804) +#define ZCL_AVERAGE_RMS_OVER_VOLTAGE_ATTRIBUTE_ID (0x0805) +#define ZCL_AVERAGE_RMS_UNDER_VOLTAGE_ATTRIBUTE_ID (0x0806) +#define ZCL_RMS_EXTREME_OVER_VOLTAGE_ATTRIBUTE_ID (0x0807) +#define ZCL_RMS_EXTREME_UNDER_VOLTAGE_ATTRIBUTE_ID (0x0808) +#define ZCL_RMS_VOLTAGE_SAG_ATTRIBUTE_ID (0x0809) +#define ZCL_RMS_VOLTAGE_SWELL_ATTRIBUTE_ID (0x080A) +#define ZCL_LINE_CURRENT_PHASE_B_ATTRIBUTE_ID (0x0901) +#define ZCL_ACTIVE_CURRENT_PHASE_B_ATTRIBUTE_ID (0x0902) +#define ZCL_REACTIVE_CURRENT_PHASE_B_ATTRIBUTE_ID (0x0903) +#define ZCL_RMS_VOLTAGE_PHASE_B_ATTRIBUTE_ID (0x0905) +#define ZCL_RMS_VOLTAGE_MIN_PHASE_B_ATTRIBUTE_ID (0x0906) +#define ZCL_RMS_VOLTAGE_MAX_PHASE_B_ATTRIBUTE_ID (0x0907) +#define ZCL_RMS_CURRENT_PHASE_B_ATTRIBUTE_ID (0x0908) +#define ZCL_RMS_CURRENT_MIN_PHASE_B_ATTRIBUTE_ID (0x0909) +#define ZCL_RMS_CURRENT_MAX_PHASE_B_ATTRIBUTE_ID (0x090A) +#define ZCL_ACTIVE_POWER_PHASE_B_ATTRIBUTE_ID (0x090B) +#define ZCL_ACTIVE_POWER_MIN_PHASE_B_ATTRIBUTE_ID (0x090C) +#define ZCL_ACTIVE_POWER_MAX_PHASE_B_ATTRIBUTE_ID (0x090D) +#define ZCL_REACTIVE_POWER_PHASE_B_ATTRIBUTE_ID (0x090E) +#define ZCL_APPARENT_POWER_PHASE_B_ATTRIBUTE_ID (0x090F) +#define ZCL_POWER_FACTOR_PHASE_B_ATTRIBUTE_ID (0x0910) +#define ZCL_AVERAGE_RMS_VOLTAGE_MEASUREMENT_PERIOD_PHASE_B_ATTRIBUTE_ID (0x0911) +#define ZCL_AVERAGE_RMS_OVER_VOLTAGE_COUNTER_PHASE_B_ATTRIBUTE_ID (0x0912) +#define ZCL_AVERAGE_RMS_UNDER_VOLTAGE_COUNTER_PHASE_B_ATTRIBUTE_ID (0x0913) +#define ZCL_RMS_EXTREME_OVER_VOLTAGE_PERIOD_PHASE_B_ATTRIBUTE_ID (0x0914) +#define ZCL_RMS_EXTREME_UNDER_VOLTAGE_PERIOD_PHASE_B_ATTRIBUTE_ID (0x0915) +#define ZCL_RMS_VOLTAGE_SAG_PERIOD_PHASE_B_ATTRIBUTE_ID (0x0916) +#define ZCL_RMS_VOLTAGE_SWELL_PERIOD_PHASE_B_ATTRIBUTE_ID (0x0917) +#define ZCL_LINE_CURRENT_PHASE_C_ATTRIBUTE_ID (0x0A01) +#define ZCL_ACTIVE_CURRENT_PHASE_C_ATTRIBUTE_ID (0x0A02) +#define ZCL_REACTIVE_CURRENT_PHASE_C_ATTRIBUTE_ID (0x0A03) +#define ZCL_RMS_VOLTAGE_PHASE_C_ATTRIBUTE_ID (0x0A05) +#define ZCL_RMS_VOLTAGE_MIN_PHASE_C_ATTRIBUTE_ID (0x0A06) +#define ZCL_RMS_VOLTAGE_MAX_PHASE_C_ATTRIBUTE_ID (0x0A07) +#define ZCL_RMS_CURRENT_PHASE_C_ATTRIBUTE_ID (0x0A08) +#define ZCL_RMS_CURRENT_MIN_PHASE_C_ATTRIBUTE_ID (0x0A09) +#define ZCL_RMS_CURRENT_MAX_PHASE_C_ATTRIBUTE_ID (0x0A0A) +#define ZCL_ACTIVE_POWER_PHASE_C_ATTRIBUTE_ID (0x0A0B) +#define ZCL_ACTIVE_POWER_MIN_PHASE_C_ATTRIBUTE_ID (0x0A0C) +#define ZCL_ACTIVE_POWER_MAX_PHASE_C_ATTRIBUTE_ID (0x0A0D) +#define ZCL_REACTIVE_POWER_PHASE_C_ATTRIBUTE_ID (0x0A0E) +#define ZCL_APPARENT_POWER_PHASE_C_ATTRIBUTE_ID (0x0A0F) +#define ZCL_POWER_FACTOR_PHASE_C_ATTRIBUTE_ID (0x0A10) +#define ZCL_AVERAGE_RMS_VOLTAGE_MEASUREMENT_PERIOD_PHASE_C_ATTRIBUTE_ID (0x0A11) +#define ZCL_AVERAGE_RMS_OVER_VOLTAGE_COUNTER_PHASE_C_ATTRIBUTE_ID (0x0A12) +#define ZCL_AVERAGE_RMS_UNDER_VOLTAGE_COUNTER_PHASE_C_ATTRIBUTE_ID (0x0A13) +#define ZCL_RMS_EXTREME_OVER_VOLTAGE_PERIOD_PHASE_C_ATTRIBUTE_ID (0x0A14) +#define ZCL_RMS_EXTREME_UNDER_VOLTAGE_PERIOD_PHASE_C_ATTRIBUTE_ID (0x0A15) +#define ZCL_RMS_VOLTAGE_SAG_PERIOD_PHASE_C_ATTRIBUTE_ID (0x0A16) +#define ZCL_RMS_VOLTAGE_SWELL_PERIOD_PHASE_C_ATTRIBUTE_ID (0x0A17) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Diagnostics // Client attributes -#define ZCL_DIAGNOSTICS_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_DIAGNOSTICS_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_NUMBER_OF_RESETS_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_PERSISTENT_MEMORY_WRITES_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_MAC_RX_BCAST_ATTRIBUTE_ID 0x0100 // Ver.: always -#define ZCL_MAC_TX_BCAST_ATTRIBUTE_ID 0x0101 // Ver.: always -#define ZCL_MAC_RX_UCAST_ATTRIBUTE_ID 0x0102 // Ver.: always -#define ZCL_MAC_TX_UCAST_ATTRIBUTE_ID 0x0103 // Ver.: always -#define ZCL_MAC_TX_UCAST_RETRY_ATTRIBUTE_ID 0x0104 // Ver.: always -#define ZCL_MAC_TX_UCAST_FAIL_ATTRIBUTE_ID 0x0105 // Ver.: always -#define ZCL_APS_RX_BCAST_ATTRIBUTE_ID 0x0106 // Ver.: always -#define ZCL_APS_TX_BCAST_ATTRIBUTE_ID 0x0107 // Ver.: always -#define ZCL_APS_RX_UCAST_ATTRIBUTE_ID 0x0108 // Ver.: always -#define ZCL_APS_UCAST_SUCCESS_ATTRIBUTE_ID 0x0109 // Ver.: always -#define ZCL_APS_TX_UCAST_RETRY_ATTRIBUTE_ID 0x010A // Ver.: always -#define ZCL_APS_TX_UCAST_FAIL_ATTRIBUTE_ID 0x010B // Ver.: always -#define ZCL_ROUTE_DISC_INITIATED_ATTRIBUTE_ID 0x010C // Ver.: always -#define ZCL_NEIGHBOR_ADDED_ATTRIBUTE_ID 0x010D // Ver.: always -#define ZCL_NEIGHBOR_REMOVED_ATTRIBUTE_ID 0x010E // Ver.: always -#define ZCL_NEIGHBOR_STALE_ATTRIBUTE_ID 0x010F // Ver.: always -#define ZCL_JOIN_INDICATION_ATTRIBUTE_ID 0x0110 // Ver.: always -#define ZCL_CHILD_MOVED_ATTRIBUTE_ID 0x0111 // Ver.: always -#define ZCL_NWK_FC_FAILURE_ATTRIBUTE_ID 0x0112 // Ver.: always -#define ZCL_APS_FC_FAILURE_ATTRIBUTE_ID 0x0113 // Ver.: always -#define ZCL_APS_UNAUTHORIZED_KEY_ATTRIBUTE_ID 0x0114 // Ver.: always -#define ZCL_NWK_DECRYPT_FAILURE_ATTRIBUTE_ID 0x0115 // Ver.: always -#define ZCL_APS_DECRYPT_FAILURE_ATTRIBUTE_ID 0x0116 // Ver.: always -#define ZCL_PACKET_BUFFER_ALLOC_FAILURES_ATTRIBUTE_ID 0x0117 // Ver.: always -#define ZCL_RELAYED_UNICAST_ATTRIBUTE_ID 0x0118 // Ver.: always -#define ZCL_PHY_TO_MAC_QUEUE_LIMIT_REACHED_ATTRIBUTE_ID 0x0119 // Ver.: always -#define ZCL_PACKET_VALIDATE_DROP_COUNT_ATTRIBUTE_ID 0x011A // Ver.: always -#define ZCL_AVERAGE_MAC_RETRY_PER_APS_MSG_SENT_ATTRIBUTE_ID 0x011B // Ver.: always -#define ZCL_LAST_MESSAGE_LQI_ATTRIBUTE_ID 0x011C // Ver.: always -#define ZCL_LAST_MESSAGE_RSSI_ATTRIBUTE_ID 0x011D // Ver.: always -#define ZCL_DIAGNOSTICS_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_DIAGNOSTICS_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: ZLL Commissioning -// Cluster specification level: zll-1.0-11-0037-10 +#define ZCL_NUMBER_OF_RESETS_ATTRIBUTE_ID (0x0000) +#define ZCL_PERSISTENT_MEMORY_WRITES_ATTRIBUTE_ID (0x0001) +#define ZCL_MAC_RX_BCAST_ATTRIBUTE_ID (0x0100) +#define ZCL_MAC_TX_BCAST_ATTRIBUTE_ID (0x0101) +#define ZCL_MAC_RX_UCAST_ATTRIBUTE_ID (0x0102) +#define ZCL_MAC_TX_UCAST_ATTRIBUTE_ID (0x0103) +#define ZCL_MAC_TX_UCAST_RETRY_ATTRIBUTE_ID (0x0104) +#define ZCL_MAC_TX_UCAST_FAIL_ATTRIBUTE_ID (0x0105) +#define ZCL_APS_RX_BCAST_ATTRIBUTE_ID (0x0106) +#define ZCL_APS_TX_BCAST_ATTRIBUTE_ID (0x0107) +#define ZCL_APS_RX_UCAST_ATTRIBUTE_ID (0x0108) +#define ZCL_APS_UCAST_SUCCESS_ATTRIBUTE_ID (0x0109) +#define ZCL_APS_TX_UCAST_RETRY_ATTRIBUTE_ID (0x010A) +#define ZCL_APS_TX_UCAST_FAIL_ATTRIBUTE_ID (0x010B) +#define ZCL_ROUTE_DISC_INITIATED_ATTRIBUTE_ID (0x010C) +#define ZCL_NEIGHBOR_ADDED_ATTRIBUTE_ID (0x010D) +#define ZCL_NEIGHBOR_REMOVED_ATTRIBUTE_ID (0x010E) +#define ZCL_NEIGHBOR_STALE_ATTRIBUTE_ID (0x010F) +#define ZCL_JOIN_INDICATION_ATTRIBUTE_ID (0x0110) +#define ZCL_CHILD_MOVED_ATTRIBUTE_ID (0x0111) +#define ZCL_NWK_FC_FAILURE_ATTRIBUTE_ID (0x0112) +#define ZCL_APS_FC_FAILURE_ATTRIBUTE_ID (0x0113) +#define ZCL_APS_UNAUTHORIZED_KEY_ATTRIBUTE_ID (0x0114) +#define ZCL_NWK_DECRYPT_FAILURE_ATTRIBUTE_ID (0x0115) +#define ZCL_APS_DECRYPT_FAILURE_ATTRIBUTE_ID (0x0116) +#define ZCL_PACKET_BUFFER_ALLOC_FAILURES_ATTRIBUTE_ID (0x0117) +#define ZCL_RELAYED_UNICAST_ATTRIBUTE_ID (0x0118) +#define ZCL_PHY_TO_MAC_QUEUE_LIMIT_REACHED_ATTRIBUTE_ID (0x0119) +#define ZCL_PACKET_VALIDATE_DROP_COUNT_ATTRIBUTE_ID (0x011A) +#define ZCL_AVERAGE_MAC_RETRY_PER_APS_MSG_SENT_ATTRIBUTE_ID (0x011B) +#define ZCL_LAST_MESSAGE_LQI_ATTRIBUTE_ID (0x011C) +#define ZCL_LAST_MESSAGE_RSSI_ATTRIBUTE_ID (0x011D) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: ZLL Commissioning // Client attributes -#define ZCL_ZLL_COMMISSIONING_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_ZLL_COMMISSIONING_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_ZLL_COMMISSIONING_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_ZLL_COMMISSIONING_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) -// Attribute types for cluster: Sample Mfg Specific Cluster -// Cluster specification level: UNKNOWN +// Attribute ids for cluster: Sample Mfg Specific Cluster // Client attributes -#define ZCL_SAMPLE_MFG_SPECIFIC_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_SAMPLE_MFG_SPECIFIC_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_ATTRIBUTE_ONE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_ATTRIBUTE_TWO_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_SAMPLE_MFG_SPECIFIC_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_SAMPLE_MFG_SPECIFIC_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_ATTRIBUTE_ONE_ATTRIBUTE_ID (0x0000) +#define ZCL_ATTRIBUTE_TWO_ATTRIBUTE_ID (0x0001) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) -// Attribute types for cluster: Sample Mfg Specific Cluster 2 -// Cluster specification level: UNKNOWN +// Attribute ids for cluster: Sample Mfg Specific Cluster 2 // Client attributes -#define ZCL_SAMPLE_MFG_SPECIFIC_CLUSTER_2_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_SAMPLE_MFG_SPECIFIC_CLUSTER_2_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_ATTRIBUTE_THREE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_ATTRIBUTE_FOUR_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_SAMPLE_MFG_SPECIFIC_CLUSTER_2_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_SAMPLE_MFG_SPECIFIC_CLUSTER_2_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_ATTRIBUTE_THREE_ATTRIBUTE_ID (0x0000) +#define ZCL_ATTRIBUTE_FOUR_ATTRIBUTE_ID (0x0001) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) -// Attribute types for cluster: Configuration Cluster -// Cluster specification level: UNKNOWN +// Attribute ids for cluster: Configuration Cluster // Client attributes -#define ZCL_OTA_CONFIGURATION_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_OTA_CONFIGURATION_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_TOKENS_LOCKED_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_OTA_CONFIGURATION_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_OTA_CONFIGURATION_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_TOKENS_LOCKED_ATTRIBUTE_ID (0x0000) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) -// Attribute types for cluster: MFGLIB Cluster -// Cluster specification level: UNKNOWN +// Attribute ids for cluster: MFGLIB Cluster // Client attributes -#define ZCL_MFGLIB_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_MFGLIB_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_PACKETS_RECEIVED_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_SAVED_RSSI_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_SAVED_LQI_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_MFGLIB_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_MFGLIB_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_PACKETS_RECEIVED_ATTRIBUTE_ID (0x0000) +#define ZCL_SAVED_RSSI_ATTRIBUTE_ID (0x0001) +#define ZCL_SAVED_LQI_ATTRIBUTE_ID (0x0002) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) -// Attribute types for cluster: SL Works With All Hubs -// Cluster specification level: UNKNOWN +// Attribute ids for cluster: SL Works With All Hubs // Client attributes -#define ZCL_SL_WWAH_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_SL_WWAH_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_SL_DISABLE_OTA_DOWNGRADES_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_SL_MGMT_LEAVE_WITHOUT_REJOIN_ENABLED_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_SL_NWK_RETRY_COUNT_ATTRIBUTE_ID 0x0004 // Ver.: always -#define ZCL_SL_MAC_RETRY_COUNT_ATTRIBUTE_ID 0x0005 // Ver.: always -#define ZCL_SL_ROUTER_CHECKIN_ENABLED_ATTRIBUTE_ID 0x0006 // Ver.: always -#define ZCL_SL_TOUCHLINK_INTERPAN_ENABLED_ATTRIBUTE_ID 0x0007 // Ver.: always -#define ZCL_SL_WWAH_PARENT_CLASSIFICATION_ENABLED_ATTRIBUTE_ID 0x0008 // Ver.: always -#define ZCL_SL_WWAH_APP_EVENT_RETRY_ENABLED_ATTRIBUTE_ID 0x0009 // Ver.: always -#define ZCL_SL_WWAH_APP_EVENT_RETRY_QUEUE_SIZE_ATTRIBUTE_ID 0x000A // Ver.: always -#define ZCL_SL_WWAH_REJOIN_ENABLED_ATTRIBUTE_ID 0x000B // Ver.: always -#define ZCL_SL_MAC_POLL_FAILURE_WAIT_TIME_ATTRIBUTE_ID 0x000C // Ver.: always -#define ZCL_SL_CONFIGURATION_MODE_ENABLED_ATTRIBUTE_ID 0x000D // Ver.: always -#define ZCL_SL_CURRENT_DEBUG_REPORT_ID_ATTRIBUTE_ID 0x000E // Ver.: always -#define ZCL_SL_TC_SECURITY_ON_NTWK_KEY_ROTATION_ENABLED_ATTRIBUTE_ID 0x000F // Ver.: always -#define ZCL_SL_WWAH_BAD_PARENT_RECOVERY_ENABLED_ATTRIBUTE_ID 0x0010 // Ver.: always -#define ZCL_SL_PENDING_NETWORK_UPDATE_CHANNEL_ATTRIBUTE_ID 0x0011 // Ver.: always -#define ZCL_SL_PENDING_NETWORK_UPDATE_PANID_ATTRIBUTE_ID 0x0012 // Ver.: always -#define ZCL_SL_OTA_MAX_OFFLINE_DURATION_ATTRIBUTE_ID 0x0013 // Ver.: always -#define ZCL_SL_WWAH_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_SL_WWAH_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -#endif // SILABS_EMBER_AF_ATTRIBUTE_ID +#define ZCL_SL_DISABLE_OTA_DOWNGRADES_ATTRIBUTE_ID (0x0002) +#define ZCL_SL_MGMT_LEAVE_WITHOUT_REJOIN_ENABLED_ATTRIBUTE_ID (0x0003) +#define ZCL_SL_NWK_RETRY_COUNT_ATTRIBUTE_ID (0x0004) +#define ZCL_SL_MAC_RETRY_COUNT_ATTRIBUTE_ID (0x0005) +#define ZCL_SL_ROUTER_CHECKIN_ENABLED_ATTRIBUTE_ID (0x0006) +#define ZCL_SL_TOUCHLINK_INTERPAN_ENABLED_ATTRIBUTE_ID (0x0007) +#define ZCL_SL_WWAH_PARENT_CLASSIFICATION_ENABLED_ATTRIBUTE_ID (0x0008) +#define ZCL_SL_WWAH_APP_EVENT_RETRY_ENABLED_ATTRIBUTE_ID (0x0009) +#define ZCL_SL_WWAH_APP_EVENT_RETRY_QUEUE_SIZE_ATTRIBUTE_ID (0x000A) +#define ZCL_SL_WWAH_REJOIN_ENABLED_ATTRIBUTE_ID (0x000B) +#define ZCL_SL_MAC_POLL_FAILURE_WAIT_TIME_ATTRIBUTE_ID (0x000C) +#define ZCL_SL_CONFIGURATION_MODE_ENABLED_ATTRIBUTE_ID (0x000D) +#define ZCL_SL_CURRENT_DEBUG_REPORT_ID_ATTRIBUTE_ID (0x000E) +#define ZCL_SL_TC_SECURITY_ON_NTWK_KEY_ROTATION_ENABLED_ATTRIBUTE_ID (0x000F) +#define ZCL_SL_WWAH_BAD_PARENT_RECOVERY_ENABLED_ATTRIBUTE_ID (0x0010) +#define ZCL_SL_PENDING_NETWORK_UPDATE_CHANNEL_ATTRIBUTE_ID (0x0011) +#define ZCL_SL_PENDING_NETWORK_UPDATE_PANID_ATTRIBUTE_ID (0x0012) +#define ZCL_SL_OTA_MAX_OFFLINE_DURATION_ATTRIBUTE_ID (0x0013) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) diff --git a/examples/lock-app/lock-common/gen/attribute-size.h b/examples/lock-app/lock-common/gen/attribute-size.h index 8ab0dae3944631..8d8659ee7ece2e 100644 --- a/examples/lock-app/lock-common/gen/attribute-size.h +++ b/examples/lock-app/lock-common/gen/attribute-size.h @@ -1,23 +1,7 @@ -/** - * - * 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 + * 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. @@ -31,19 +15,20 @@ * 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 SILABS_ATTRIBUTE_SIZE -#define SILABS_ATTRIBUTE_SIZE +// Prevent multiple inclusion +#pragma once -// Used ZCL attribute type sizes -ZCL_BITMAP16_ATTRIBUTE_TYPE, 2, ZCL_BITMAP24_ATTRIBUTE_TYPE, 3, ZCL_BITMAP32_ATTRIBUTE_TYPE, 4, ZCL_BITMAP48_ATTRIBUTE_TYPE, 6, - ZCL_BITMAP64_ATTRIBUTE_TYPE, 8, ZCL_BITMAP8_ATTRIBUTE_TYPE, 1, ZCL_BOOLEAN_ATTRIBUTE_TYPE, 1, ZCL_DATA8_ATTRIBUTE_TYPE, 1, - ZCL_ENUM16_ATTRIBUTE_TYPE, 2, ZCL_ENUM8_ATTRIBUTE_TYPE, 1, ZCL_FLOAT_SINGLE_ATTRIBUTE_TYPE, 4, ZCL_IEEE_ADDRESS_ATTRIBUTE_TYPE, - 8, ZCL_INT16S_ATTRIBUTE_TYPE, 2, ZCL_INT16U_ATTRIBUTE_TYPE, 2, ZCL_INT24S_ATTRIBUTE_TYPE, 3, ZCL_INT24U_ATTRIBUTE_TYPE, 3, - ZCL_INT32S_ATTRIBUTE_TYPE, 4, ZCL_INT32U_ATTRIBUTE_TYPE, 4, ZCL_INT48U_ATTRIBUTE_TYPE, 6, ZCL_INT56U_ATTRIBUTE_TYPE, 7, - ZCL_INT8S_ATTRIBUTE_TYPE, 1, ZCL_INT8U_ATTRIBUTE_TYPE, 1, ZCL_SECURITY_KEY_ATTRIBUTE_TYPE, 16, ZCL_UTC_TIME_ATTRIBUTE_TYPE, 4, -#endif // SILABS_ATTRIBUTE_SIZE +// ZCL attribute sizes +ZCL_DATA8_ATTRIBUTE_TYPE, 1, ZCL_DATA16_ATTRIBUTE_TYPE, 2, ZCL_DATA24_ATTRIBUTE_TYPE, 3, ZCL_DATA32_ATTRIBUTE_TYPE, 4, + ZCL_DATA40_ATTRIBUTE_TYPE, 5, ZCL_DATA48_ATTRIBUTE_TYPE, 6, ZCL_DATA56_ATTRIBUTE_TYPE, 7, ZCL_DATA64_ATTRIBUTE_TYPE, 8, + ZCL_BOOLEAN_ATTRIBUTE_TYPE, 1, ZCL_BITMAP8_ATTRIBUTE_TYPE, 1, ZCL_BITMAP16_ATTRIBUTE_TYPE, 2, ZCL_BITMAP24_ATTRIBUTE_TYPE, 3, + ZCL_BITMAP32_ATTRIBUTE_TYPE, 4, ZCL_BITMAP40_ATTRIBUTE_TYPE, 5, ZCL_BITMAP48_ATTRIBUTE_TYPE, 6, ZCL_BITMAP56_ATTRIBUTE_TYPE, 7, + ZCL_BITMAP64_ATTRIBUTE_TYPE, 8, ZCL_INT8U_ATTRIBUTE_TYPE, 1, ZCL_INT16U_ATTRIBUTE_TYPE, 2, ZCL_INT24U_ATTRIBUTE_TYPE, 3, + ZCL_INT32U_ATTRIBUTE_TYPE, 4, ZCL_INT40U_ATTRIBUTE_TYPE, 5, ZCL_INT48U_ATTRIBUTE_TYPE, 6, ZCL_INT56U_ATTRIBUTE_TYPE, 7, + ZCL_INT64U_ATTRIBUTE_TYPE, 8, ZCL_INT8S_ATTRIBUTE_TYPE, 1, ZCL_INT16S_ATTRIBUTE_TYPE, 2, ZCL_INT24S_ATTRIBUTE_TYPE, 3, + ZCL_INT32S_ATTRIBUTE_TYPE, 4, ZCL_INT40S_ATTRIBUTE_TYPE, 5, ZCL_INT48S_ATTRIBUTE_TYPE, 6, ZCL_INT56S_ATTRIBUTE_TYPE, 7, + ZCL_INT64S_ATTRIBUTE_TYPE, 8, ZCL_ENUM8_ATTRIBUTE_TYPE, 1, ZCL_ENUM16_ATTRIBUTE_TYPE, 2, ZCL_FLOAT_SEMI_ATTRIBUTE_TYPE, 2, + ZCL_FLOAT_SINGLE_ATTRIBUTE_TYPE, 4, ZCL_FLOAT_DOUBLE_ATTRIBUTE_TYPE, 8, ZCL_TIME_OF_DAY_ATTRIBUTE_TYPE, 4, + ZCL_DATE_ATTRIBUTE_TYPE, 4, ZCL_UTC_TIME_ATTRIBUTE_TYPE, 4, ZCL_CLUSTER_ID_ATTRIBUTE_TYPE, 2, ZCL_ATTRIBUTE_ID_ATTRIBUTE_TYPE, + 2, ZCL_BACNET_OID_ATTRIBUTE_TYPE, 4, ZCL_IEEE_ADDRESS_ATTRIBUTE_TYPE, 8, ZCL_SECURITY_KEY_ATTRIBUTE_TYPE, 16, diff --git a/examples/lock-app/lock-common/gen/attribute-type.h b/examples/lock-app/lock-common/gen/attribute-type.h index 35879dabb2ed6e..bc5d1bae34b365 100644 --- a/examples/lock-app/lock-common/gen/attribute-type.h +++ b/examples/lock-app/lock-common/gen/attribute-type.h @@ -1,23 +1,7 @@ -/** - * - * 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 + * 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. @@ -31,13 +15,9 @@ * 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 SILABS_EMBER_AF_ATTRIBUTE_TYPES -#define SILABS_EMBER_AF_ATTRIBUTE_TYPES +// Prevent multiple inclusion +#pragma once // ZCL attribute types enum @@ -97,7 +77,5 @@ enum ZCL_BACNET_OID_ATTRIBUTE_TYPE = 0xEA, // BACnet OID ZCL_IEEE_ADDRESS_ATTRIBUTE_TYPE = 0xF0, // IEEE address ZCL_SECURITY_KEY_ATTRIBUTE_TYPE = 0xF1, // 128-bit security key - ZCL_UNKNOWN_ATTRIBUTE_TYPE = 0xFF // Unknown - + ZCL_UNKNOWN_ATTRIBUTE_TYPE = 0xFF, // Unknown }; -#endif // SILABS_EMBER_AF_ATTRIBUTE_TYPES diff --git a/examples/lock-app/lock-common/gen/call-command-handler.c b/examples/lock-app/lock-common/gen/call-command-handler.c deleted file mode 100644 index 41782ce01ad83b..00000000000000 --- a/examples/lock-app/lock-common/gen/call-command-handler.c +++ /dev/null @@ -1,143 +0,0 @@ -/** - * - * 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. -// -// - -// This is a set of generated functions that parse the -// the incomming message, and call appropriate command handler. - -// #include PLATFORM_HEADER -#ifdef EZSP_HOST -// Includes needed for ember related functions for the EZSP host -#include "app/util/ezsp/ezsp-protocol.h" -#include "app/util/ezsp/ezsp-utils.h" -#include "app/util/ezsp/ezsp.h" -#include "app/util/ezsp/serial-interface.h" -#include "stack/include/ember-types.h" -#include "stack/include/error.h" -#else -// Includes needed for ember related functions for the EM250 -// #include "stack/include/ember.h" -#endif // EZSP_HOST - -#include - -#include "af-structs.h" -#include "call-command-handler.h" -#include "callback.h" -#include "command-id.h" -#include "util.h" - -static EmberAfStatus status(bool wasHandled, bool clusterExists, bool mfgSpecific) -{ - if (wasHandled) - { - return EMBER_ZCL_STATUS_SUCCESS; - } - else if (mfgSpecific) - { - return EMBER_ZCL_STATUS_UNSUP_MANUF_CLUSTER_COMMAND; - } - else if (clusterExists) - { - return EMBER_ZCL_STATUS_UNSUP_CLUSTER_COMMAND; - } - else - { - return EMBER_ZCL_STATUS_UNSUPPORTED_CLUSTER; - } -} - -// Main command parsing controller. -EmberAfStatus emberAfClusterSpecificCommandParse(EmberAfClusterCommand * cmd) -{ - EmberAfStatus result = status(false, false, cmd->mfgSpecific); - if (cmd->direction == (uint8_t) ZCL_DIRECTION_SERVER_TO_CLIENT && - emberAfContainsClientWithMfgCode(cmd->apsFrame->destinationEndpoint, cmd->apsFrame->clusterId, cmd->mfgCode)) - { - switch (cmd->apsFrame->clusterId) - { - default: - // Unrecognized cluster ID, error status will apply. - break; - } - } - else if (cmd->direction == (uint8_t) ZCL_DIRECTION_CLIENT_TO_SERVER && - emberAfContainsServerWithMfgCode(cmd->apsFrame->destinationEndpoint, cmd->apsFrame->clusterId, cmd->mfgCode)) - { - switch (cmd->apsFrame->clusterId) - { - case ZCL_ON_OFF_CLUSTER_ID: - result = emberAfOnOffClusterServerCommandParse(cmd); - break; - default: - // Unrecognized cluster ID, error status will apply. - break; - } - } - return result; -} - -// Cluster: On/off, server -EmberAfStatus emberAfOnOffClusterServerCommandParse(EmberAfClusterCommand * cmd) -{ - bool wasHandled = false; - if (!cmd->mfgSpecific) - { - switch (cmd->commandId) - { - case ZCL_OFF_COMMAND_ID: { - // Command is fixed length: 0 - wasHandled = emberAfOnOffClusterOffCallback(); - break; - } - case ZCL_ON_COMMAND_ID: { - // Command is fixed length: 0 - wasHandled = emberAfOnOffClusterOnCallback(); - break; - } - case ZCL_TOGGLE_COMMAND_ID: { - // Command is fixed length: 0 - wasHandled = emberAfOnOffClusterToggleCallback(); - break; - } - default: { - // Unrecognized command ID, error status will apply. - break; - } - } - } - return status(wasHandled, true, cmd->mfgSpecific); -} diff --git a/examples/lighting-app/lighting-common/gen/call-command-handler.c b/examples/lock-app/lock-common/gen/call-command-handler.cpp similarity index 66% rename from examples/lighting-app/lighting-common/gen/call-command-handler.c rename to examples/lock-app/lock-common/gen/call-command-handler.cpp index 41782ce01ad83b..b4313f5129d251 100644 --- a/examples/lighting-app/lighting-common/gen/call-command-handler.c +++ b/examples/lock-app/lock-common/gen/call-command-handler.cpp @@ -1,23 +1,7 @@ -/** - * - * 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 + * 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. @@ -31,26 +15,6 @@ * 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. -// -// - -// This is a set of generated functions that parse the -// the incomming message, and call appropriate command handler. - -// #include PLATFORM_HEADER -#ifdef EZSP_HOST -// Includes needed for ember related functions for the EZSP host -#include "app/util/ezsp/ezsp-protocol.h" -#include "app/util/ezsp/ezsp-utils.h" -#include "app/util/ezsp/ezsp.h" -#include "app/util/ezsp/serial-interface.h" -#include "stack/include/ember-types.h" -#include "stack/include/error.h" -#else -// Includes needed for ember related functions for the EM250 -// #include "stack/include/ember.h" -#endif // EZSP_HOST #include @@ -60,6 +24,10 @@ #include "command-id.h" #include "util.h" +using namespace chip; + +EmberAfStatus emberAfOnOffClusterServerCommandParse(EmberAfClusterCommand * cmd); + static EmberAfStatus status(bool wasHandled, bool clusterExists, bool mfgSpecific) { if (wasHandled) @@ -72,7 +40,7 @@ static EmberAfStatus status(bool wasHandled, bool clusterExists, bool mfgSpecifi } else if (clusterExists) { - return EMBER_ZCL_STATUS_UNSUP_CLUSTER_COMMAND; + return EMBER_ZCL_STATUS_UNSUP_COMMAND; } else { @@ -110,26 +78,25 @@ EmberAfStatus emberAfClusterSpecificCommandParse(EmberAfClusterCommand * cmd) return result; } -// Cluster: On/off, server +// Cluster specific command parsing + EmberAfStatus emberAfOnOffClusterServerCommandParse(EmberAfClusterCommand * cmd) { bool wasHandled = false; + if (!cmd->mfgSpecific) { switch (cmd->commandId) { case ZCL_OFF_COMMAND_ID: { - // Command is fixed length: 0 wasHandled = emberAfOnOffClusterOffCallback(); break; } case ZCL_ON_COMMAND_ID: { - // Command is fixed length: 0 wasHandled = emberAfOnOffClusterOnCallback(); break; } case ZCL_TOGGLE_COMMAND_ID: { - // Command is fixed length: 0 wasHandled = emberAfOnOffClusterToggleCallback(); break; } diff --git a/examples/lock-app/lock-common/gen/call-command-handler.h b/examples/lock-app/lock-common/gen/call-command-handler.h index 56c84133c3f612..c1b06642f07ac9 100644 --- a/examples/lock-app/lock-common/gen/call-command-handler.h +++ b/examples/lock-app/lock-common/gen/call-command-handler.h @@ -1,23 +1,7 @@ -/** - * - * 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 + * 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. @@ -31,20 +15,8 @@ * 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 SILABS_EMBER_AF_COMMAND_PARSE_HEADER -#define SILABS_EMBER_AF_COMMAND_PARSE_HEADER +// Prevent multiple inclusion +#pragma once #include "af-types.h" - -// This is a set of generated prototype for functions that parse the -// the incomming message, and call appropriate command handler. - -// Cluster: On/off, server -EmberAfStatus emberAfOnOffClusterServerCommandParse(EmberAfClusterCommand * cmd); - -#endif // SILABS_EMBER_AF_COMMAND_PARSE_HEADER diff --git a/examples/lock-app/lock-common/gen/callback-stub.c b/examples/lock-app/lock-common/gen/callback-stub.c deleted file mode 100644 index 3bc85ee4ef736b..00000000000000 --- a/examples/lock-app/lock-common/gen/callback-stub.c +++ /dev/null @@ -1,2476 +0,0 @@ -/** - * - * 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. -// -// - -// This c file provides stubs for all callbacks. These stubs -// will be used in the case where user defined implementations -// of the callbacks have not been provided. -#include "af.h" -#include - -//#include "hal/hal.h" -//#include EMBER_AF_API_NETWORK_STEERING - -/** @brief Add To Current App Tasks - * - * This function is only useful to sleepy end devices. This function will note - * the passed item as part of a set of tasks the application has outstanding - * (e.g. message sent requiring APS acknwoledgement). This will affect how the - * application behaves with regard to sleeping and polling. Until the - * outstanding task is completed, the device may poll more frequently and sleep - * less often. - * - * @param tasks Ver.: always - */ -void emberAfAddToCurrentAppTasksCallback(EmberAfApplicationTask tasks) {} - -/** @brief Allow Network Write Attribute - * - * This function is called by the application framework before it writes an - * attribute in response to a write attribute request from an external device. - * The value passed into this callback is the value to which the attribute is to - * be set by the framework. - Example: In mirroring simple metering data - * on an Energy Services Interface (ESI) (formerly called Energy Service Portal - * (ESP) in SE 1.0).), a mirrored simple meter needs to write read-only - * attributes on its mirror. The-meter-mirror sample application, located in - * app/framework/sample-apps, uses this callback to allow the mirrored device to - * write simple metering attributes on the mirror regardless of the fact that - * most simple metering attributes are defined as read-only by the ZigBee - * specification. - Note: The ZCL specification does not (as of this - * writing) specify any permission-level security for writing writeable - * attributes. As far as the ZCL specification is concerned, if an attribute is - * writeable, any device that has a link key for the device should be able to - * write that attribute. Furthermore if an attribute is read only, it should not - * be written over the air. Thus, if you implement permissions for writing - * attributes as a feature, you MAY be operating outside the specification. This - * is unlikely to be a problem for writing read-only attributes, but it may be a - * problem for attributes that are writeable according to the specification but - * restricted by the application implementing this callback. - * - * @param endpoint Ver.: always - * @param clusterId Ver.: always - * @param attributeId Ver.: always - * @param mask Ver.: always - * @param manufacturerCode Ver.: always - * @param value Ver.: always - * @param type Ver.: always - */ -EmberAfAttributeWritePermission emberAfAllowNetworkWriteAttributeCallback(uint8_t endpoint, EmberAfClusterId clusterId, - EmberAfAttributeId attributeId, uint8_t mask, - uint16_t manufacturerCode, uint8_t * value, uint8_t type) -{ - return EMBER_ZCL_ATTRIBUTE_WRITE_PERMISSION_ALLOW_WRITE_NORMAL; // Default -} - -/** @brief Attribute Read Access - * - * This function is called whenever the Application Framework needs to check - * access permission for an attribute read. - * - * @param endpoint Ver.: always - * @param clusterId Ver.: always - * @param manufacturerCode Ver.: always - * @param attributeId Ver.: always - */ -bool emberAfAttributeReadAccessCallback(uint8_t endpoint, EmberAfClusterId clusterId, uint16_t manufacturerCode, - uint16_t attributeId) -{ - return true; -} - -/** @brief Attribute Write Access - * - * This function is called whenever the Application Framework needs to check - * access permission for an attribute write. - * - * @param endpoint Ver.: always - * @param clusterId Ver.: always - * @param manufacturerCode Ver.: always - * @param attributeId Ver.: always - */ -bool emberAfAttributeWriteAccessCallback(uint8_t endpoint, EmberAfClusterId clusterId, uint16_t manufacturerCode, - uint16_t attributeId) -{ - return true; -} - -/** @brief Groups Cluster Clear Group Table - * - * This function is called by the framework when the application should clear - * the group table. - * - * @param endpoint The endpoint. Ver.: always - */ -void emberAfGroupsClusterClearGroupTableCallback(uint8_t endpoint) {} - -/** @brief Clear Report Table - * - * This function is called by the framework when the application should clear - * the report table. - * - */ -EmberStatus emberAfClearReportTableCallback(void) -{ - return EMBER_LIBRARY_NOT_PRESENT; -} - -/** @brief Scenes Cluster ClearSceneTable - * - * This function is called by the framework when the application should clear - * the scene table. - * - * @param endpoint The endpoint. Ver.: always - */ -void emberAfScenesClusterClearSceneTableCallback(uint8_t endpoint) {} - -/** @brief Key Establishment Cluster Client Command Received - * - * This function is called by the application framework when a server-to-client - * key establishment command is received but has yet to be handled by the - * framework code. This function should return a bool value indicating whether - * the command has been handled by the application code and should not be - * further processed by the framework. - * - * @param cmd Ver.: always - */ -bool emberAfKeyEstablishmentClusterClientCommandReceivedCallback(EmberAfClusterCommand * cmd) -{ - return false; -} - -/** @brief Cluster Init - * - * This function is called when a specific cluster is initialized. It gives the - * application an opportunity to take care of cluster initialization procedures. - * It is called exactly once for each endpoint where cluster is present. - * - * @param endpoint Ver.: always - * @param clusterId Ver.: always - */ -void emberAfClusterInitCallback(uint8_t endpoint, EmberAfClusterId clusterId) {} - -/** @brief Cluster Security Custom - * - * This callback is fired when determining if APS encryption is required for a - * cluster outside of the specification's required clusters. In other words, - * for the Smart Energy profile this would be a cluster beyond the list that - * normally requires APS encryption. - * - * @param profileId The profile ID Ver.: always - * @param clusterId The cluster ID Ver.: always - * @param incoming Whether this is an incoming or outgoing message. Ver.: - * always - * @param commandId The ZCL command ID being sent/received. Ver.: always - */ -bool emberAfClusterSecurityCustomCallback(EmberAfProfileId profileId, EmberAfClusterId clusterId, bool incoming, uint8_t commandId) -{ - // By default, assume APS encryption is not required. - return false; -} - -/** @brief Configure Reporting Command - * - * This function is called by the application framework when a Configure - * Reporting command is received from an external device. The Configure - * Reporting command contains a series of attribute reporting configuration - * records. The application should return true if the message was processed or - * false if it was not. - * - * @param cmd Ver.: always - */ -bool emberAfConfigureReportingCommandCallback(const EmberAfClusterCommand * cmd) -{ - return false; -} - -/** @brief Configure Reporting Response - * - * This function is called by the application framework when a Configure - * Reporting Response command is received from an external device. The - * application should return true if the message was processed or false if it - * was not. - * - * @param clusterId The cluster identifier of this response. Ver.: always - * @param buffer Buffer containing the list of attribute status records. Ver.: - * always - * @param bufLen The length in bytes of the list. Ver.: always - */ -bool emberAfConfigureReportingResponseCallback(EmberAfClusterId clusterId, uint8_t * buffer, uint16_t bufLen) -{ - return false; -} - -/** @brief Default Response - * - * This function is called by the application framework when a Default Response - * command is received from an external device. The application should return - * true if the message was processed or false if it was not. - * - * @param clusterId The cluster identifier of this response. Ver.: always - * @param commandId The command identifier to which this is a response. Ver.: - * always - * @param status Specifies either SUCCESS or the nature of the error that was - * detected in the received command. Ver.: always - */ -bool emberAfDefaultResponseCallback(EmberAfClusterId clusterId, uint8_t commandId, EmberAfStatus status) -{ - return false; -} - -/** @brief Discover Attributes Response - * - * This function is called by the application framework when a Discover - * Attributes Response or Discover Attributes Extended Response command is - * received from an external device. The Discover Attributes Response command - * contains a bool indicating if discovery is complete and a list of zero or - * more attribute identifier/type records. The final argument indicates whether - * the response is in the extended format or not. The application should return - * true if the message was processed or false if it was not. - * - * @param clusterId The cluster identifier of this response. Ver.: always - * @param discoveryComplete Indicates whether there are more attributes to be - * discovered. true if there are no more attributes to be discovered. Ver.: - * always - * @param buffer Buffer containing the list of attribute identifier/type - * records. Ver.: always - * @param bufLen The length in bytes of the list. Ver.: always - * @param extended Indicates whether the response is in the extended format or - * not. Ver.: always - */ -bool emberAfDiscoverAttributesResponseCallback(EmberAfClusterId clusterId, bool discoveryComplete, uint8_t * buffer, - uint16_t bufLen, bool extended) -{ - return false; -} - -/** @brief Discover Commands Generated Response - * - * This function is called by the framework when Discover Commands Generated - * Response is received. - * - * @param clusterId The cluster identifier of this response. Ver.: always - * @param manufacturerCode Manufacturer code Ver.: always - * @param discoveryComplete Indicates whether there are more commands to be - * discovered. Ver.: always - * @param commandIds Buffer containing the list of command identifiers. Ver.: - * always - * @param commandIdCount The length of bytes of the list, whish is the same as - * the number of identifiers. Ver.: always - */ -bool emberAfDiscoverCommandsGeneratedResponseCallback(EmberAfClusterId clusterId, uint16_t manufacturerCode, bool discoveryComplete, - uint8_t * commandIds, uint16_t commandIdCount) -{ - return false; -} - -/** @brief Discover Commands Received Response - * - * This function is called by the framework when Discover Commands Received - * Response is received. - * - * @param clusterId The cluster identifier of this response. Ver.: always - * @param manufacturerCode Manufacturer code Ver.: always - * @param discoveryComplete Indicates whether there are more commands to be - * discovered. Ver.: always - * @param commandIds Buffer containing the list of command identifiers. Ver.: - * always - * @param commandIdCount The length of bytes of the list, whish is the same as - * the number of identifiers. Ver.: always - */ -bool emberAfDiscoverCommandsReceivedResponseCallback(EmberAfClusterId clusterId, uint16_t manufacturerCode, bool discoveryComplete, - uint8_t * commandIds, uint16_t commandIdCount) -{ - return false; -} - -/** @brief Eeprom Init - * - * Tells the system to initialize the EEPROM if it is not already initialized. - * - */ -void emberAfEepromInitCallback(void) {} - -/** @brief Eeprom Note Initialized State - * - * Records the state of the EEPROM so that an intelligent driver (like the - * EEPROM plugin) can re-initialize the driver prior to any calls to it. - * - * @param state The state of the EEPROM, false=re-initalization needed, - * true=no-re-init needed Ver.: always - */ -void emberAfEepromNoteInitializedStateCallback(bool state) {} - -/** @brief Eeprom Shutdown - * - * Tells the system to shutdown the EEPROM if it is not already shutdown. - * - */ -void emberAfEepromShutdownCallback(void) {} - -/** @brief Groups Cluster Endpoint In Group - * - * This function is called by the framework when it needs to determine if an - * endpoint is a member of a group. The application should return true if the - * endpoint is a member of the group and false otherwise. - * - * @param endpoint The endpoint. Ver.: always - * @param groupId The group identifier. Ver.: always - */ -bool emberAfGroupsClusterEndpointInGroupCallback(uint8_t endpoint, uint16_t groupId) -{ - return false; -} - -/** @brief External Attribute Read - * - * Like emberAfExternalAttributeWriteCallback above, this function is called - * when the framework needs to read an attribute that is not stored within the - * Application Framework's data structures. - All of the important - * information about the attribute itself is passed as a pointer to an - * EmberAfAttributeMetadata struct, which is stored within the application and - * used to manage the attribute. A complete description of the - * EmberAfAttributeMetadata struct is provided in - * app/framework/include/af-types.h - This function assumes that the - * application is able to read the attribute, write it into the passed buffer, - * and return immediately. Any attributes that require a state machine for - * reading and writing are not really candidates for externalization at the - * present time. The Application Framework does not currently include a state - * machine for reading or writing attributes that must take place across a - * series of application ticks. Attributes that cannot be read in a timely - * manner should be stored within the Application Framework and updated - * occasionally by the application code from within the - * emberAfMainTickCallback. - If the application was successfully able to - * read the attribute and write it into the passed buffer, it should return a - * value of EMBER_ZCL_STATUS_SUCCESS. Ensure that the size of the externally - * managed attribute value is smaller than what the buffer can hold. In the case - * of a buffer overflow throw an appropriate error such as - * EMBER_ZCL_STATUS_INSUFFICIENT_SPACE. Any other return value indicates the - * application was not able to read the attribute. - * - * @param endpoint Ver.: always - * @param clusterId Ver.: always - * @param attributeMetadata Ver.: always - * @param manufacturerCode Ver.: always - * @param buffer Ver.: always - * @param maxReadLength Ver.: always - */ -EmberAfStatus emberAfExternalAttributeReadCallback(uint8_t endpoint, EmberAfClusterId clusterId, - EmberAfAttributeMetadata * attributeMetadata, uint16_t manufacturerCode, - uint8_t * buffer, uint16_t maxReadLength) -{ - return EMBER_ZCL_STATUS_FAILURE; -} - -/** @brief External Attribute Write - * - * This function is called whenever the Application Framework needs to write an - * attribute which is not stored within the data structures of the Application - * Framework itself. One of the new features in Version 2 is the ability to - * store attributes outside the Framework. This is particularly useful for - * attributes that do not need to be stored because they can be read off the - * hardware when they are needed, or are stored in some central location used by - * many modules within the system. In this case, you can indicate that the - * attribute is stored externally. When the framework needs to write an external - * attribute, it makes a call to this callback. - This callback is very - * useful for host micros which need to store attributes in persistent memory. - * Because each host micro (used with an Ember NCP) has its own type of - * persistent memory storage, the Application Framework does not include the - * ability to mark attributes as stored in flash the way that it does for Ember - * SoCs like the EM35x. On a host micro, any attributes that need to be stored - * in persistent memory should be marked as external and accessed through the - * external read and write callbacks. Any host code associated with the - * persistent storage should be implemented within this callback. - All of - * the important information about the attribute itself is passed as a pointer - * to an EmberAfAttributeMetadata struct, which is stored within the application - * and used to manage the attribute. A complete description of the - * EmberAfAttributeMetadata struct is provided in - * app/framework/include/af-types.h. - This function assumes that the - * application is able to write the attribute and return immediately. Any - * attributes that require a state machine for reading and writing are not - * candidates for externalization at the present time. The Application Framework - * does not currently include a state machine for reading or writing attributes - * that must take place across a series of application ticks. Attributes that - * cannot be written immediately should be stored within the Application - * Framework and updated occasionally by the application code from within the - * emberAfMainTickCallback. - If the application was successfully able to - * write the attribute, it returns a value of EMBER_ZCL_STATUS_SUCCESS. Any - * other return value indicates the application was not able to write the - * attribute. - * - * @param endpoint Ver.: always - * @param clusterId Ver.: always - * @param attributeMetadata Ver.: always - * @param manufacturerCode Ver.: always - * @param buffer Ver.: always - */ -EmberAfStatus emberAfExternalAttributeWriteCallback(uint8_t endpoint, EmberAfClusterId clusterId, - EmberAfAttributeMetadata * attributeMetadata, uint16_t manufacturerCode, - uint8_t * buffer) -{ - return EMBER_ZCL_STATUS_FAILURE; -} - -/** @brief Find Unused Pan Id And Form - * - * This function is called by the framework to search for an unused PAN id and - * form a new network. The application should return EMBER_SUCCESS if the - * operation was initiated successfully. - * - */ -EmberStatus emberAfFindUnusedPanIdAndFormCallback(void) -{ - return EMBER_LIBRARY_NOT_PRESENT; -} - -/** @brief Get Current App Tasks - * - * This function is only useful to sleepy end devices. This function will - * return the set of tasks the application has outstanding. These tasks affect - * how the application behaves with regard to sleeping and polling. - * - */ -EmberAfApplicationTask emberAfGetCurrentAppTasksCallback(void) -{ - return 0; -} - -/** @brief Get Current Poll Control - * - * This function will retrieve the current poll control that the system is using - * for the current network. This is determined by examining all the scheduled - * events and obtaining the most restrictive poll control context across all - * events. The most restrictive poll control is EMBER_AF_SHORT_POLL followed by - * EMBER_AF_LONG_POLL. - * - */ -EmberAfEventPollControl emberAfGetCurrentPollControlCallback(void) -{ - return EMBER_AF_LONG_POLL; -} - -/** @brief Get Current Poll Interval Ms - * - * This function is only useful to end devices. This function will return the - * current poll interval (in milliseconds) for the current network. This - * interval is the maximum amount of time a child is currently waiting between - * polls of its parent. - * - */ -uint32_t emberAfGetCurrentPollIntervalMsCallback(void) -{ - return 0; -} - -/** @brief Get Current Poll Interval Qs - * - * This function is only useful to end devices. This function will return the - * current poll interval (in quarter seconds) for the current network. This - * interval is the maximum amount of time a child is currently waiting between - * polls of its parent. - * - */ -uint32_t emberAfGetCurrentPollIntervalQsCallback(void) -{ - return 0; -} - -/** @brief Get Current Sleep Control - * - * This function will retrieve the current sleep control that the system is - * using. This is determined by examining all the scheduled events and - * obtaining the most restrictive sleep control context across all events. The - * most restrictive sleep control is EMBER_AF_STAY_AWAKE followed by - * EMBER_AF_OK_TO_SLEEP. - * - */ -EmberAfEventSleepControl emberAfGetCurrentSleepControlCallback(void) -{ - return EMBER_AF_OK_TO_SLEEP; -} - -/** @brief Get Current Time - * - * This callback is called when device attempts to get current time from the - * hardware. If this device has means to retrieve exact time, then this method - * should implement it. If the callback can't provide the exact time it should - * return 0 to indicate failure. Default action is to return 0, which indicates - * that device does not have access to real time. - * - */ -uint32_t emberAfGetCurrentTimeCallback(void) -{ - return 0; -} - -/** @brief Get Default Poll Control - * - * This function will retrieve the default poll control for the current network - * as previously set by emberAfSetDefaultPollControlCallback(). The default - * poll control will limit whether the network can long poll. - * - */ -EmberAfEventPollControl emberAfGetDefaultPollControlCallback(void) -{ - return EMBER_AF_LONG_POLL; -} - -/** @brief Get Default Sleep Control - * - * This function will retrieve the default sleep control the system is using as - * previously set by emberAfSetDefaultSleepControlCallback(). The default sleep - * control will limit whether the device can sleep. - * - */ -EmberAfEventSleepControl emberAfGetDefaultSleepControlCallback(void) -{ - return EMBER_AF_OK_TO_SLEEP; -} - -/** @brief Get Endpoint By Index - * - * Get the endpoint number based on the passed index. By default the framework - * handles this by managing endpoints based on the precompiled configuration - * defined in AppBuilder. This callback can override this behavior at runtime - * and provide additional endpoints or different data than the compiled values. - * If the index is overridden than the callback shall return true and set the - * endpointReturn parameter accordingly. A value of 0xFF means the endpoint - * doesn't exist at that index. - Otherwise false must be returned by the - * callback and the default framework behavior will be executed. This is only - * applicable to the SOC devices. - * - * @param index The index of the endpoint. Ver.: always - * @param endpointReturn The value of endpoint. Ver.: always - */ -bool emberAfGetEndpointByIndexCallback(uint8_t index, uint8_t * endpointReturn) -{ - return false; -} - -/** @brief Get Endpoint Description - * - * This callback is called by the framework whenever it receives a ZDO request - * to enumerate the details about an endpoint. By default the framework - * provides the information based on the precompiled endpoint information as - * defined in AppBuilder. This callback can override that behavior at runtime - * and return different information. If the endpoint information is being - * overridden then the callback must return true. Otherwise it should return - * false, which allows the framework to perform its default behavior. This is - * only applicable to SOC devices. - * - * @param endpoint The endpoint number that is being queried. Ver.: always - * @param result This is a pointer to a data structure where the endpoint - * information is written if the callback is providing the information. Ver.: - * always - */ -bool emberAfGetEndpointDescriptionCallback(uint8_t endpoint, EmberEndpointDescription * result) -{ - return false; -} - -/** @brief Get Endpoint Info - * - * This function is a callback to an application implemented endpoint that - * operates outside the normal application framework. When the framework wishes - * to perform operations with that endpoint it uses this callback to retrieve - * the endpoint's information. If the endpoint exists and the application can - * provide data then true shall be returned. Otherwise the callback must return - * false. - * - * @param endpoint The endpoint to retrieve data for. Ver.: always - * @param returnNetworkIndex The index corresponding to the ZigBee network the - * endpoint belongs to. If not using a multi-network device, 0 must be - * returned. Otherwise on a multi-network device the stack will switch to this - * network before sending the message. Ver.: always - * @param returnEndpointInfo A pointer to a data struct that will be written - * with information about the endpoint. Ver.: always - */ -bool emberAfGetEndpointInfoCallback(uint8_t endpoint, uint8_t * returnNetworkIndex, EmberAfEndpointInfoStruct * returnEndpointInfo) -{ - return false; -} - -/** @brief Get Form And Join Extended Pan Id - * - * This callback is called by the framework to get the extended PAN ID used by - * the current network for forming and joining. The extended PAN ID used for - * forming and joining is not necessarily the same extended PAN ID actually in - * use on the network. - * - * @param resultLocation Ver.: always - */ -void emberAfGetFormAndJoinExtendedPanIdCallback(uint8_t * resultLocation) {} - -/** @brief Get Long Poll Interval Ms - * - * This function is only useful to end devices. This function will return the - * long poll interval (in milliseconds) for the current network. This interval - * is the maximum amount of time a child will wait between polls of its parent - * when it is not expecting data. - * - */ -uint32_t emberAfGetLongPollIntervalMsCallback(void) -{ - return 0; -} - -/** @brief Get Long Poll Interval Qs - * - * This function is only useful to end devices. This function will return the - * long poll interval (in quarter seconds) for the current network. This - * interval is the maximum amount of time a child will wait between polls of its - * parent when it is not expecting data. - * - */ -uint32_t emberAfGetLongPollIntervalQsCallback(void) -{ - return 0; -} - -/** @brief Get Short Poll Interval Ms - * - * This function is only useful to sleepy end devices. This function will - * return the short poll interval (in milliseconds) for the current network. - * This interval is the maximum amount of time a child will wait between polls - * of its parent when it is expecting data. - * - */ -uint16_t emberAfGetShortPollIntervalMsCallback(void) -{ - return 0; -} - -/** @brief Get Short Poll Interval Qs - * - * This function is only useful to sleepy end devices. This function will - * return the short poll interval (in quarter seconds) for the current network. - * This interval is the maximum amount of time a child will wait between polls - * of its parent when it is expecting data. - * - */ -uint16_t emberAfGetShortPollIntervalQsCallback(void) -{ - return 0; -} - -/** @brief Get Source Route Overhead - * - * This function is called by the framework to determine the overhead required - * in the network frame for source routing to a particular destination. - * - * @param destination The node id of the destination Ver.: always - */ -uint8_t emberAfGetSourceRouteOverheadCallback(EmberNodeId destination) -{ - return 0; -} - -/** @brief Get Wake Timeout Bitmask - * - * This function is only useful to sleepy end devices. This function will - * return the wake timeout bitmask for the current network. The bitmask - * determines which tasks will timeout automatically and which tasks require - * manual removal from the task list. - * - */ -EmberAfApplicationTask emberAfGetWakeTimeoutBitmaskCallback(void) -{ - return 0; -} - -/** @brief Get Wake Timeout Ms - * - * This function is only useful to sleepy end devices. This function will - * return the wake timeout (in milliseconds) for the current network. This - * timeout is the maximum amount of time a child will wait for a task in the - * wake bitmask to finish. While waiting, the device will short poll. - * - */ -uint16_t emberAfGetWakeTimeoutMsCallback(void) -{ - return 0; -} - -/** @brief Get Wake Timeout Qs - * - * This function is only useful to sleepy end devices. This function will - * return the wake timeout (in quarter seconds) for the current network. This - * timeout is the maximum amount of time a child will wait for a task in the - * wake bitmask to finish. While waiting, the device will short poll. - * - */ -uint16_t emberAfGetWakeTimeoutQsCallback(void) -{ - return 0; -} - -/** @brief Hal Button Isr - * - * This callback is called by the framework whenever a button is pressed on the - * device. This callback is called within ISR context. - * - * @param button The button which has changed state, either BUTTON0 or BUTTON1 - * as defined in the appropriate BOARD_HEADER. Ver.: always - * @param state The new state of the button referenced by the button parameter, - * either ::BUTTON_PRESSED if the button has been pressed or ::BUTTON_RELEASED - * if the button has been released. Ver.: always - */ -void emberAfHalButtonIsrCallback(uint8_t button, uint8_t state) {} - -/** @brief Incoming Packet Filter - * - * ** REQUIRES INCLUDING THE PACKET-HANDOFF PLUGIN ** - - This is called by - * the Packet Handoff plugin when the stack receives a packet from one of the - * protocol layers specified in ::EmberZigbeePacketType. - - The packetType - * argument is one of the values of the ::EmberZigbeePacketType enum. If the - * stack receives an 802.15.4 MAC beacon, it will call this function with the - * packetType argument set to ::EMBER_ZIGBEE_PACKET_TYPE_BEACON. - - The - * implementation of this callback may alter the data contained in packetData, - * modify options and flags in the auxillary data, or consume the packet itself, - * either sending the message, or discarding it as it sees fit. - * - * @param packetType the type of packet and associated protocol layer Ver.: - * always - * @param packetData flat buffer containing the packet data associated with the - * packet type Ver.: always - * @param size_p a pointer containing the size value of the packet Ver.: always - * @param data auxillary data included with the packet Ver.: always - */ -EmberPacketAction emberAfIncomingPacketFilterCallback(EmberZigbeePacketType packetType, uint8_t * packetData, uint8_t * size_p, - void * data) -{ - return EMBER_ACCEPT_PACKET; -} - -/** @brief Initiate Inter Pan Key Establishment - * - * This function is called by the framework to initiate key establishment with a - * remote device on a different PAN. The application should return - * EMBER_SUCCESS if key establishment was initiated successfully. The - * application should call ::emberAfInterPanKeyEstablishmentCallback as events - * occur. - * - * @param panId The PAN id of the remote device. Ver.: always - * @param eui64 The EUI64 of the remote device. Ver.: always - */ -EmberStatus emberAfInitiateInterPanKeyEstablishmentCallback(EmberPanId panId, const EmberEUI64 eui64) -{ - return EMBER_LIBRARY_NOT_PRESENT; -} - -/** @brief Initiate Key Establishment - * - * This function is called by the framework to initiate key establishment with a - * remote device. The application should return EMBER_SUCCESS if key - * establishment was initiated successfully. The application should call - * ::emberAfKeyEstablishmentCallback as events occur. - * - * @param nodeId The node id of the remote device. Ver.: always - * @param endpoint The endpoint on the remote device. Ver.: always - */ -EmberStatus emberAfInitiateKeyEstablishmentCallback(EmberNodeId nodeId, uint8_t endpoint) -{ - return EMBER_LIBRARY_NOT_PRESENT; -} - -/** @brief Initiate Partner Link Key Exchange - * - * This function is called by the framework to initiate a partner link key - * exchange with a remote device. The application should return EMBER_SUCCESS - * if the partner link key exchange was initiated successfully. When the - * partner link key exchange completes, the application should call the given - * callback. - * - * @param target The node id of the remote device. Ver.: always - * @param endpoint The key establishment endpoint of the remote device. Ver.: - * always - * @param callback The callback that should be called when the partner link key - * exchange completse. Ver.: always - */ -EmberStatus emberAfInitiatePartnerLinkKeyExchangeCallback(EmberNodeId target, uint8_t endpoint, - EmberAfPartnerLinkKeyExchangeCallback * callback) -{ - return EMBER_LIBRARY_NOT_PRESENT; -} - -/** @brief Inter Pan Key Establishment - * - * A callback by the key-establishment code to indicate an event has occurred. - * For error codes this is purely a notification. For non-error status codes - * (besides LINK_KEY_ESTABLISHED), it is the application's chance to allow or - * disallow the operation. If the application returns true then the key - * establishment is allowed to proceed. If it returns false, then key - * establishment is aborted. LINK_KEY_ESTABLISHED is a notification of success. - * - * @param status Ver.: always - * @param amInitiator Ver.: always - * @param panId Ver.: always - * @param eui64 Ver.: always - * @param delayInSeconds Ver.: always - */ -bool emberAfInterPanKeyEstablishmentCallback(EmberAfKeyEstablishmentNotifyMessage status, bool amInitiator, EmberPanId panId, - const EmberEUI64 eui64, uint8_t delayInSeconds) -{ - return true; -} - -/** @brief Interpan Send Message - * - * This function will send a raw MAC message with interpan frame format using - * the passed parameters. - * - * @param header Interpan header info Ver.: always - * @param messageLength The length of the message received or to send Ver.: - * always - * @param message The message data received or to send. Ver.: always - */ -EmberStatus emberAfInterpanSendMessageCallback(EmberAfInterpanHeader * header, uint16_t messageLength, uint8_t * message) -{ - return EMBER_LIBRARY_NOT_PRESENT; -} - -/** @brief Key Establishment - * - * A callback by the key-establishment code to indicate an event has occurred. - * For error codes this is purely a notification. For non-error status codes - * (besides LINK_KEY_ESTABLISHED), it is the application's chance to allow or - * disallow the operation. If the application returns true then the key - * establishment is allowed to proceed. If it returns false, then key - * establishment is aborted. LINK_KEY_ESTABLISHED is a notification of success. - * - * @param status Ver.: always - * @param amInitiator Ver.: always - * @param partnerShortId Ver.: always - * @param delayInSeconds Ver.: always - */ -bool emberAfKeyEstablishmentCallback(EmberAfKeyEstablishmentNotifyMessage status, bool amInitiator, EmberNodeId partnerShortId, - uint8_t delayInSeconds) -{ - return true; -} - -/** @brief On/off Cluster Level Control Effect - * - * This is called by the framework when the on/off cluster initiates a command - * that must effect a level control change. The implementation assumes that the - * client will handle any effect on the On/Off Cluster. - * - * @param endpoint Ver.: always - * @param newValue Ver.: always - */ -void emberAfOnOffClusterLevelControlEffectCallback(uint8_t endpoint, bool newValue) {} - -/** @brief Main Init - * - * This function is called from the application's main function. It gives the - * application a chance to do any initialization required at system startup. Any - * code that you would normally put into the top of the application's main() - * routine should be put into this function. This is called before the clusters, - * plugins, and the network are initialized so some functionality is not yet - * available. - Note: No callback in the Application Framework is - * associated with resource cleanup. If you are implementing your application on - * a Unix host where resource cleanup is a consideration, we expect that you - * will use the standard Posix system calls, including the use of atexit() and - * handlers for signals such as SIGTERM, SIGINT, SIGCHLD, SIGPIPE and so on. If - * you use the signal() function to register your signal handler, please mind - * the returned value which may be an Application Framework function. If the - * return value is non-null, please make sure that you call the returned - * function from your handler to avoid negating the resource cleanup of the - * Application Framework itself. - * - */ -void emberAfMainInitCallback(void) {} - -/** @brief Main Start - * - * This function is called at the start of main after the HAL has been - * initialized. The standard main function arguments of argc and argv are - * passed in. However not all platforms have support for main() function - * arguments. Those that do not are passed NULL for argv, therefore argv should - * be checked for NULL before using it. If the callback determines that the - * program must exit, it should return true. The value returned by main() will - * be the value written to the returnCode pointer. Otherwise the callback - * should return false to let normal execution continue. - * - * @param returnCode Ver.: always - * @param argc Ver.: always - * @param argv Ver.: always - */ -bool emberAfMainStartCallback(int * returnCode, int argc, char ** argv) -{ - // NOTE: argc and argv may not be supported on all platforms, so argv MUST be - // checked for NULL before referencing it. On those platforms without argc - // and argv "0" and "NULL" are passed respectively. - - return false; // exit? -} - -/** @brief Main Tick - * - * Whenever main application tick is called, this callback will be called at the - * end of the main tick execution. - * - */ -void emberAfMainTickCallback(void) {} - -/** @brief Scenes Cluster Make Invalid - * - * This function is called to invalidate the valid attribute in the Scenes - * cluster. - * - * @param endpoint Ver.: always - */ -EmberAfStatus emberAfScenesClusterMakeInvalidCallback(uint8_t endpoint) -{ - return EMBER_ZCL_STATUS_UNSUP_CLUSTER_COMMAND; -} - -/** @brief Mark Buffers - * - * This function is called when the garbage collector runs. Any buffers held by - * the application must be marked. - * - */ -void emberAfMarkBuffersCallback(void) -{ - // emMarkBuffer(&bufferUsed); -} - -/** @brief Message Sent - * - * This function is called by the application framework from the message sent - * handler, when it is informed by the stack regarding the message sent status. - * All of the values passed to the emberMessageSentHandler are passed on to this - * callback. This provides an opportunity for the application to verify that its - * message has been sent successfully and take the appropriate action. This - * callback should return a bool value of true or false. A value of true - * indicates that the message sent notification has been handled and should not - * be handled by the application framework. - * - * @param type Ver.: always - * @param indexOrDestination Ver.: always - * @param apsFrame Ver.: always - * @param msgLen Ver.: always - * @param message Ver.: always - * @param status Ver.: always - */ -bool emberAfMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, EmberApsFrame * apsFrame, - uint16_t msgLen, uint8_t * message, EmberStatus status) -{ - return false; -} - -/** @brief Ncp Init - * - * This function is called when the network coprocessor is being initialized, - * either at startup or upon reset. It provides applications on opportunity to - * perform additional configuration of the NCP. The function is always called - * twice when the NCP is initialized. In the first invocation, memoryAllocation - * will be true and the application should only issue EZSP commands that affect - * memory allocation on the NCP. For example, tables on the NCP can be resized - * in the first call. In the second invocation, memoryAllocation will be false - * and the application should only issue EZSP commands that do not affect memory - * allocation. For example, tables on the NCP can be populated in the second - * call. This callback is not called on SoCs. - * - * @param memoryAllocation Ver.: always - */ -void emberAfNcpInitCallback(bool memoryAllocation) {} - -/** @brief Ncp Is Awake Isr - * - * This function is called IN ISR CONTEXT. It notes that the NCP is awake after - * sleeping. Care should be taken to do minimal processing in this ISR handler - * function. - * - */ -void emberAfNcpIsAwakeIsrCallback(void) {} - -/** @brief Network Key Update Complete - * - * This is called by the framework when a network key update operation started - * by the trust center is complete. - * - * @param status Ver.: always - */ -void emberAfNetworkKeyUpdateCompleteCallback(EmberStatus status) {} - -/** @brief Ota Bootload - * - * The platform specific routine to bootload the device from a ZigBee - * over-the-air upgrade file. - * - * @param id A pointer to the structure that contains the information about what - * OTA image to bootload. Ver.: always - * @param ncpUpgradeTagId The tag ID of the upgrade data that will be used to - * bootload the device. Ver.: always - */ -uint8_t emberAfOtaBootloadCallback(const EmberAfOtaImageId * id, uint16_t ncpUpgradeTagId) -{ - // Please implement me - emberAfCorePrintln("Not supported."); - return 1; -} - -/** @brief Ota Client Bootload - * - * This callback is fired when the OTA Client recevies a command to bootload the - * newly downloaded OTA image. This callback will perform the platform specific - * to bootload their device. - * - * @param id This is the identifier relating to the image that has been - * downloaded and is ready for bootload. Ver.: always - */ -void emberAfOtaClientBootloadCallback(const EmberAfOtaImageId * id) -{ - // Any final preperation prior to the bootload should be done here. - // It is assumed that the device will reset in most all cases. - // Please implement me. -} - -/** @brief Ota Client Custom Verify - * - * This callback is executed by the OTA client after the signature verification - * has successfully completed. It allows the device to do its own custom - * verification of the image (such as verifying that the EBL is intact). - * - * @param newVerification This indicates if a new verification should be - * started. Ver.: always - * @param id This is ID of the image to be verified. Ver.: always - */ -EmberAfImageVerifyStatus emberAfOtaClientCustomVerifyCallback(bool newVerification, const EmberAfOtaImageId * id) -{ - // Manufacturing specific checks can be made to the image in this function to - // determine if it is valid. This function is called AFTER cryptographic - // checks have passed. If the cryptographic checks failed, this function will - // never be called. - - // The function shall return one of the following based on its own - // verification process. - // 1) EMBER_AF_IMAGE_GOOD - the image has passed all checks - // 2) EMBER_AF_IMAGE_BAD - the image is not valid - // 3) EMBER_AF_IMAGE_VERIFY_IN_PROGRESS - the image is valid so far, but more - // checks are needed. This callback shall be re-executed later to - // continue verification. This allows other code in the framework to run. - return EMBER_AF_IMAGE_GOOD; -} - -/** @brief Ota Client Download Complete - * - * This callback indicates that the OTA client has completed the download of a - * file. If the file has been completely downloaded and cryptographic checks - * have been turned on, then those will be performed prior to this callback and - * that outcome included in the 'success' result. On failure, this callback is - * merely informative, and the return type is ignored. On succesful download, - * this callback allows the client to perform any additional verification of the - * downloaded image and return that result to the OTA server. - * - * @param success This indicates the success or failure of the download and - * cryptographic verification process (if applicable). Ver.: always - * @param id This is the image identifier information that corresponds to the - * download result. Ver.: always - */ -bool emberAfOtaClientDownloadCompleteCallback(EmberAfOtaDownloadResult success, const EmberAfOtaImageId * id) -{ - // At this point the image has been completely downloaded and cryptographic - // checks (if applicable) have been performed. - - if (!success) - { - emberAfOtaBootloadClusterPrintln("Download failed."); - return true; // return value is ignored - } - - // This is for any additional validation that needs to be performed - // on the image by the application. - - // The results of checks here will be returned back to the OTA server - // in the Upgrade End request. - return true; -} - -/** @brief Ota Client Incoming Message Raw - * - * This callback is for processing incoming messages for the Over-the-air - * bootload cluster client. ZCL will not process the message and instead hand - * the raw over the air data to the callback for its own processing. - * - * @param message A pointer to the structure containing the message buffer and - * other information about it. Ver.: always - */ -bool emberAfOtaClientIncomingMessageRawCallback(EmberAfClusterCommand * message) -{ - return false; -} - -/** @brief Ota Client Start - * - * This callback should be called when the profile specific registration has - * completed successfully. It will start the client's state machine that will - * find the OTA server, query it for the next image, download the image, wait - * for the bootload message, and kick off the bootload. - * - */ -void emberAfOtaClientStartCallback(void) {} - -/** @brief Ota Client Version Info - * - * This function is called by the OTA client when a new query will occur to the - * server asking what the next version of firmware is. The client can inform - * the cluster software as to what information to use in the query (and - * subsequent download). - * - * @param currentImageInfo This is the information to use in the next query by - * the client cluster code. It contains the manufacturer ID, image type ID, and - * the firmware version to be specified in the query message sent to the server. - * Ver.: always - * @param hardwareVersion This is a pointer to the hardware version to use in - * the query. If no hardware version should be used, then - * EMBER_AF_INVALID_HARDWARE_VERSION should be used. Ver.: always - */ -void emberAfOtaClientVersionInfoCallback(EmberAfOtaImageId * currentImageInfo, uint16_t * hardwareVersion) -{ - // Customer will fill in the image info with their manufacturer ID, - // image type ID, and current software version number. - // The deviceSpecificFileEui64 can be ignored. - - // It may be necessary to dynamically determine this by talking to - // another device, as is the case with a host talking to an NCP device. - - // However, this routine will be called repeatedly so it may be wise - // to cache the data! - - /* This is commented out since the #defines below are not defined. - - if (currentImageInfo != NULL) { - MEMSET(currentImageInfo, 0, sizeof(EmberAfOtaImageId)); - currentImageInfo->manufacturerId = EMBER_AF_MANUFACTURER_CODE; - currentImageInfo->imageTypeId = EMBER_AF_IMAGE_TYPE_ID; - currentImageInfo->firmwareVersion = EMBER_AF_CUSTOM_FIRMWARE_VERSION; - } - - if (hardwareVersion != NULL) { - *hardwareVersion = EMBER_AF_INVALID_HARDWARE_VERSION; - } - - assert(false); - */ -} - -/** @brief Ota Page Request Server Policy - * - * This callback is called by the OTA server page request code when it wants to - * determine if it is allowed for an OTA client to make a page request. It is - * only called if page request support has been enabled on the server. It - * should return EMBER_ZCL_STATUS_SUCCESS if it allows the page request, and - * EMBER_ZCL_STATUS_UNSUP_CLUSTER_COMMAND if it does not want to allow it. - * - */ -uint8_t emberAfOtaPageRequestServerPolicyCallback(void) -{ - return EMBER_ZCL_STATUS_SUCCESS; -} - -/** @brief Ota Server Block Size - * - * This function provides a way for the server to adjust the block size of its - * response to an Image block request by a client. - * - * @param clientNodeId The node Id of OTA client making an image block request. - * Ver.: always - */ -uint8_t emberAfOtaServerBlockSizeCallback(EmberNodeId clientNodeId) -{ - // This function provides a way for the server to potentially - // adjust the block size based on the client who is requesting. - // In other words if we are using source routing we will limit - // data returned by enough to put a source route into the message. - - // Image Block Response Message Format - // Status Code: 1-byte - // Manuf Code: 2-bytes - // Image Type: 2-bytes - // File Ver: 4-bytes - // File Offset: 4-bytes - // Data Size: 1-byte - // Data: variable - const uint8_t IMAGE_BLOCK_RESPONSE_OVERHEAD = (EMBER_AF_ZCL_OVERHEAD + 14); - - EmberApsFrame apsFrame; - uint8_t maxSize; - apsFrame.options = EMBER_APS_OPTION_NONE; - - if (emberAfIsCurrentSecurityProfileSmartEnergy()) - { - apsFrame.options |= EMBER_APS_OPTION_ENCRYPTION; - } - - maxSize = emberAfMaximumApsPayloadLength(EMBER_OUTGOING_DIRECT, clientNodeId, &apsFrame); - maxSize -= IMAGE_BLOCK_RESPONSE_OVERHEAD; - return maxSize; -} - -/** @brief Ota Server Incoming Message Raw - * - * This callback is for processing incoming messages for the Over-the-air - * bootload cluster server. ZCL will not process the message and instead hand - * the raw over the air data to the callback for its own processing. - * - * @param message A pointer to the structure containing the message buffer and - * other information about it. Ver.: always - */ -bool emberAfOtaServerIncomingMessageRawCallback(EmberAfClusterCommand * message) -{ - return false; -} - -/** @brief Ota Server Query - * - * This callback is fired when the OTA server receives a query request by the - * client. The callback lets the server application indicate to the client what - * the 'next' version of software is for the device, or if there is not one - * available. - * - * @param currentImageId This is the current software image that the client - * hase. Ver.: always - * @param hardwareVersion If this value is non-NULL, it indicates the hardware - * version of the client device. If NULL, the client did not specify a hardware - * version. Ver.: always - * @param nextUpgradeImageId This is a pointer to a data structure containing - * the 'next' software version for the client to download. Ver.: always - */ -uint8_t emberAfOtaServerQueryCallback(const EmberAfOtaImageId * currentImageId, uint16_t * hardwareVersion, - EmberAfOtaImageId * nextUpgradeImageId) -{ - // If a new software image is available, this function should return EMBER_ZCL_STATUS_SUCCESS - // and populate the 'nextUpgradeImageId' structure with the appropriate values. - // If no new software image is available (i.e. the client should not download a firmware image) - // then the server should return EMBER_ZCL_STATUS_NO_IMAGE_AVAILABLE. - return EMBER_ZCL_STATUS_NO_IMAGE_AVAILABLE; -} - -/** @brief Ota Server Send Image Notify - * - * This callback is an indication to the OTA server that it should send out - * notification about an OTA file that is available for download. - * - * @param dest The destination of the image notify message. May be a broadcast - * address. Ver.: always - * @param endpoint The destination endpoint of the image notify message. May be - * a broadcast endpoint. Ver.: always - * @param payloadType The type of data the image notify message will contain. 0 - * = no data. 1 = Manufacturer ID. 2 = Manufacturer ID and the image type ID. - * 3 = Manufacturer ID, image type ID, and firmware version. Ver.: always - * @param queryJitter The percentage of nodes that should respond to this - * message, from 1-100. On receipt of this message, each recipient will - * randomly choose a percentage and only query the server if their percentage is - * below this value. Ver.: always - * @param id The image information that will be put in the message. The data - * within this struct that will be appended to the message is determined by the - * previous 'payloadType' argument. Ver.: always - */ -bool emberAfOtaServerSendImageNotifyCallback(EmberNodeId dest, uint8_t endpoint, uint8_t payloadType, uint8_t queryJitter, - const EmberAfOtaImageId * id) -{ - return false; -} - -/** @brief Ota Server Upgrade End Request - * - * This function is called when the OTA server receives a request an upgrade end - * request. If the request indicated a successful download by the client, the - * server must tell the client when and if to upgrade to the downloaded image. - * - * @param source The node ID of the device that sent the upgrade end request. - * Ver.: always - * @param status This is the ZCL status sent by the client indicating the result - * of its attempt to download the new upgrade image. If the status is not - * EMBER_ZCL_STATUS_SUCCESS then this callback is merely informative and no - * response mesasge will be generated by the server. Ver.: always - * @param returnValue If the server returns true indicating that the client - * should apply the upgrade, this time value indicates when in the future the - * client should apply the upgrade. Ver.: always - * @param imageId This variable indicates the software version that the client - * successfully downloaded and is asking to upgrade to. Ver.: always - */ -bool emberAfOtaServerUpgradeEndRequestCallback(EmberNodeId source, uint8_t status, uint32_t * returnValue, - const EmberAfOtaImageId * imageId) -{ - // If the status value is not EMBER_ZCL_STATUS_SUCCESS, then this callback is - // merely informative and no response message will be generated by the server. - // If the server wants the client to NOT apply the upgrade, then it should - // return false. - // If the server wants the client to apply the upgrade, it should return true - // and set the 'returnValue' parameter to when it wants the client to - // apply the upgrade. There are three possible values: - // 0 = Apply the upgrade now - // 0xFFFFFFFF = Don't apply yet, ask again later. - // (anything-else) = Apply the upgrade X minutes from now. - *returnValue = 0; - return true; -} - -/** @brief Ota Storage Check Temp Data - * - * This callback will validate temporary data in the storage device to determine - * whether it is a complete file, a partially downloaded file, or there is no - * file present. When a complete or partial file is found it will return - * EMBER_AF_OTA_STORAGE_SUCCESS or EMBER_AF_OTA_STORAGE_PARTIAL_FILE_FOUND, - * respectively. In that case, the currentOffset, totalImageSize, and - * newFileInfo will be populated with data. When EMBER_AF_OTA_STORAGE_ERROR is - * returned, no temporary data is present. - * - * @param currentOffset A pointer to a value that will be written with the - * offset within the total file size that has been successfully stored in the - * storage device. This will indicate how much data has been currently - * dowloaded. Ver.: always - * @param totalImageSize A pointer to a value that will be written with the - * total image size of the OTA file when a download has completed. This does - * not indicate how much data has actually been downloaded currently. Ver.: - * always - * @param newFileInfo This is the image id of the temporary file data stored in - * the storage device. Ver.: always - */ -EmberAfOtaStorageStatus emberAfOtaStorageCheckTempDataCallback(uint32_t * currentOffset, uint32_t * totalImageSize, - EmberAfOtaImageId * newFileInfo) -{ - // If the image data cannot be successfully verified, an error should be returned. - return EMBER_AF_OTA_STORAGE_ERROR; -} - -/** @brief Ota Storage Clear Temp Data - * - * This function clears any existing temp data that was downloaed. It is used - * immediately prior to downloading a raw image over the air. - * - */ -EmberAfOtaStorageStatus emberAfOtaStorageClearTempDataCallback(void) -{ - // If the image data cannot be stored, an error should be returned. - return EMBER_AF_OTA_STORAGE_ERROR; -} - -/** @brief Ota Storage Close - * - * This callback shuts down the ZigBee Over-the-air storage module. - * - */ -void emberAfOtaStorageCloseCallback(void) -{ - // Please implement me. - assert(false); -} - -/** @brief Ota Storage Driver Download Finish - * - * This callback defines the low-level means by which a device records the final - * offset value of the download image. - * - * @param offset The value of the final offset of the image download. Ver.: - * always - */ -void emberAfOtaStorageDriverDownloadFinishCallback(uint32_t offset) -{ - // The storage driver and the rest of the OTA bootload code will not function correctly unless it is implemnted. - // Please implement me. - assert(false); -} - -/** @brief Ota Storage Driver Init - * - * The initialization code for the OTA storage driver. - * - */ -bool emberAfOtaStorageDriverInitCallback(void) -{ - // The storage driver and the rest of the OTA bootload code will not function correctly unless it is implemnted. - // Please implement me. - assert(false); - return false; -} - -/** @brief Ota Storage Driver Invalidate Image - * - * This callback invalidates the image stored on disk so that it will not be - * bootloaded, and it will not be a valid image that is in the middle of - * downloading. - * - */ -EmberAfOtaStorageStatus emberAfOtaStorageDriverInvalidateImageCallback(void) -{ - // The storage driver and the rest of the OTA bootload code will not function correctly unless it is implemnted. - // Please implement me. - assert(false); - return EMBER_AF_OTA_STORAGE_ERROR; -} - -/** @brief Ota Storage Driver Prepare To Resume Download - * - * This callback allows the underlying storage driver to prepare to resume the - * OTA file download. For example, the driver may exceute a page erase to - * insure the next page is ready to be written to. - * - */ -EmberAfOtaStorageStatus emberAfOtaStorageDriverPrepareToResumeDownloadCallback(void) -{ - assert(false); - return EMBER_AF_OTA_STORAGE_ERROR; -} - -/** @brief Ota Storage Driver Read - * - * This callback defines the low-level means by which a device reads from the - * OTA storage device. - * - * @param offset The address offset from the start of the storage device where - * data is to be read. Ver.: always - * @param length The length of the data to be read from the storage device. - * Ver.: always - * @param returnData A pointer where the data read from the device should be - * written to. Ver.: always - */ -bool emberAfOtaStorageDriverReadCallback(uint32_t offset, uint32_t length, uint8_t * returnData) -{ - // The storage driver and the rest of the OTA bootload code will not function correctly unless it is implemnted. - // Please implement me. - assert(false); - return false; -} - -/** @brief Ota Storage Driver Retrieve Last Stored Offset - * - * This callback defines the low-level means by which a device retrieves the - * last persistently recorded download offset. This may be different than last - * actual download offset. - * - */ -uint32_t emberAfOtaStorageDriverRetrieveLastStoredOffsetCallback(void) -{ - // The storage driver and the rest of the OTA bootload code will not function correctly unless it is implemnted. - // Please implement me. - assert(false); - return 0; -} - -/** @brief Ota Storage Driver Write - * - * This callback defines the low-level means by which a device reads from the - * OTA storage device. - * - * @param dataToWrite A pointer to the data that will be written to the storage - * device. Ver.: always - * @param offset The address offset from the start of the storage device where - * data will be written. Ver.: always - * @param length The length of the data to be written to the storage device. - * Ver.: always - */ -bool emberAfOtaStorageDriverWriteCallback(const uint8_t * dataToWrite, uint32_t offset, uint32_t length) -{ - // The storage driver and the rest of the OTA bootload code will not function correctly unless it is implemnted. - // Please implement me. - assert(false); - return false; -} - -/** @brief Ota Storage Finish Download - * - * This function indicates to the storage module that the download has finished. - * - * @param offset The final offset of the downloaded file (i.e. the total size) - * Ver.: always - */ -EmberAfOtaStorageStatus emberAfOtaStorageFinishDownloadCallback(uint32_t offset) -{ - return EMBER_AF_OTA_STORAGE_SUCCESS; -} - -/** @brief Ota Storage Get Count - * - * This callback returns the total number of ZigBee Over-the-air upgrade images - * stored in the storage module. - * - */ -uint8_t emberAfOtaStorageGetCountCallback(void) -{ - return 0; -} - -/** @brief Ota Storage Get Full Header - * - * This callback populates the EmberAfOtaHeader structure pointed to by the - * returnData with data about the OTA file stored in the storage module. - * - * @param id This is a pointer to the image id for the OTA file to retrieve - * information about. Ver.: always - * @param returnData This is a pointer to the location of the structure that - * will be populated with data. Ver.: always - */ -EmberAfOtaStorageStatus emberAfOtaStorageGetFullHeaderCallback(const EmberAfOtaImageId * id, EmberAfOtaHeader * returnData) -{ - // If the requested image cannot be found, then an error shouldb e returned. - return EMBER_AF_OTA_STORAGE_ERROR; -} - -/** @brief Ota Storage Get Total Image Size - * - * This function returns the total size of the ZigBee Over-the-air file with the - * passed parameters. If no file is found with those parameters, 0 is returned. - * - * @param id A pointer to the image identifier for the OTA file to retrieve - * information for. Ver.: always - */ -uint32_t emberAfOtaStorageGetTotalImageSizeCallback(const EmberAfOtaImageId * id) -{ - // On failure this should return an image size of zero. - return 0; -} - -/** @brief Ota Storage Init - * - * This callback initializes the ZigBee Over-the-air storage module. - * - */ -EmberAfOtaStorageStatus emberAfOtaStorageInitCallback(void) -{ - return EMBER_AF_OTA_STORAGE_SUCCESS; -} - -/** @brief Ota Storage Iterator First - * - * This callback lets you walk through the list of all OTA files by jumping to - * the first file in the list maintained by the storage module. If there is no - * file then emberAfOtaInvalidImageId is returned. - * - */ -EmberAfOtaImageId emberAfOtaStorageIteratorFirstCallback(void) -{ - // It is expected that the storage module maintain its own internal iterator that the 'first' and 'next' functions will - // manipulate. - - // If there are no images at all, this function should return the invalid image id. - return emberAfInvalidImageId; -} - -/** @brief Ota Storage Iterator Next - * - * This callback lets you walk through the list of all OTA files by jumping to - * the next file in the list maintained by the storage module. If there is no - * next file then emberAfOtaInvalidImageId is returned. - * - */ -EmberAfOtaImageId emberAfOtaStorageIteratorNextCallback(void) -{ - // It is expected that the storage module maintain its own internal iterator that the 'first' and 'next' functions will - // manipulate. - - // If there are no more images, this function should return the invalid image id. - return emberAfInvalidImageId; -} - -/** @brief Ota Storage Read Image Data - * - * This callback reads data from the specified OTA file and returns that data to - * the caller. - * - * @param id This is a pointer to the image id for the OTA file to retrieve data - * from. Ver.: always - * @param offset This is the offset relative to the start of the image where the - * data should be read from. Ver.: always - * @param length This is the length of data that will be read. Ver.: always - * @param returnData This is a pointer to where the data read out of the file - * will be written to Ver.: always - * @param returnedLength This is a pointer to a variable where the actual length - * of data read will be written to. A short read may occur if the end of file - * was reached. Ver.: always - */ -EmberAfOtaStorageStatus emberAfOtaStorageReadImageDataCallback(const EmberAfOtaImageId * id, uint32_t offset, uint32_t length, - uint8_t * returnData, uint32_t * returnedLength) -{ - // If the requested image cannot be found, then an error should be returned. - return EMBER_AF_OTA_STORAGE_ERROR; -} - -/** @brief Ota Storage Search - * - * This callback searches through the list of all images for one that matches - * the passed parameters. On success an image identifier is returned with a - * matching image. On failure emberAfInvalidImageId is returned. - * - * @param manufacturerId The ZigBee assigned identifier of the manufacturer - * contained in the OTA image being searched for. Ver.: always - * @param imageTypeId The image type identifier contained in the OTA image being - * searched for. Ver.: always - * @param hardwareVersion This is a pointer to the hardware version that will be - * used in the search. If the pointer is NULL, hardware version will not be - * considered when searching for matching images. If it points to a value, the - * search will only consider images where that value falls between the minimum - * and maxmimum hardware version specified in the OTA file. If no hardware - * version is present in an OTA file but the other parameters match, the file - * will be considered a match Ver.: always - */ -EmberAfOtaImageId emberAfOtaStorageSearchCallback(uint16_t manufacturerId, uint16_t imageTypeId, const uint16_t * hardwareVersion) -{ - // If no image is found that matches the search criteria, this function should return the invalid image id. - return emberAfInvalidImageId; -} - -/** @brief Ota Storage Write Temp Data - * - * This function writes to the temporary data in the storage device at the - * specified offset. It is used when downloading a raw image over the air. - * - * @param offset The location within the download image file where to write the - * data. Ver.: always - * @param length The length of data to write. Ver.: always - * @param data A pointer to the temporary data that will be written to the - * storage device. Ver.: always - */ -EmberAfOtaStorageStatus emberAfOtaStorageWriteTempDataCallback(uint32_t offset, uint32_t length, const uint8_t * data) -{ - // If the image data cannot be stored, an error should be returned. - return EMBER_AF_OTA_STORAGE_ERROR; -} - -/** @brief Outgoing Packet Filter - * - * ** REQUIRES INCLUDING THE PACKET-HANDOFF PLUGIN ** - - This is called by - * the Packet Handoff plugin when the stack prepares to send a packet from one - * of the protocol layers specified in ::EmberZigbeePacketType. - - The - * packetType argument is one of the values of the ::EmberZigbeePacketType enum. - * If the stack receives an 802.15.4 MAC beacon, it will call this function with - * the packetType argument set to ::EMBER_ZIGBEE_PACKET_TYPE_BEACON. - - - * The implementation of this callback may alter the data contained in - * packetData, modify options and flags in the auxillary data, or consume the - * packet itself, either sending the message, or discarding it as it sees fit. - * - * @param packetType the type of packet and associated protocol layer Ver.: - * always - * @param packetData flat buffer containing the packet data associated with the - * packet type Ver.: always - * @param size_p a pointer containing the size value of the packet Ver.: always - * @param data auxillary data included with the packet Ver.: always - */ -EmberPacketAction emberAfOutgoingPacketFilterCallback(EmberZigbeePacketType packetType, uint8_t * packetData, uint8_t * size_p, - void * data) -{ - return EMBER_ACCEPT_PACKET; -} - -/** @brief Partner Link Key Exchange Request - * - * This function is called by the framework on SOC platforms when a remote node - * requests a partner link key exchange. The application should return - * EMBER_SUCCESS to accept the request or any other status to reject it. On - * network coprocessor platforms, this function will not be called because the - * NCP handles partner link key exchange requests based on the binding policy. - * - * @param partner The EUI of the remote node. Ver.: always - */ -EmberZdoStatus emberAfPartnerLinkKeyExchangeRequestCallback(EmberEUI64 partner) -{ - return EMBER_ZDP_NOT_SUPPORTED; -} - -/** @brief Partner Link Key Exchange Response - * - * This function is called by the framework when a remote node requests a - * partner link key exchange. The application should return true to accept the - * request or false to reject it. On network coprocessor platforms, this - * function will not be called because the NCP handles partner link key exchange - * requests based on the binding policy. - * - * @param sender The EUI of the remote node. Ver.: always - * @param status The ZDO response status. Ver.: always - */ -void emberAfPartnerLinkKeyExchangeResponseCallback(EmberNodeId sender, EmberZdoStatus status) {} - -/** @brief Performing Key Establishment - * - * This function is called by the framework to determine if the device is - * performing key establishment. The application should return true if key - * establishment is in progress. - * - */ -bool emberAfPerformingKeyEstablishmentCallback(void) -{ - return false; -} - -/** @brief Get Distributed Key - * - * This callback is fired when the Network Steering plugin needs to set the distributed - * key. The application set the distributed key from Zigbee Alliance thru this callback - * or the network steering will use the default test key. - * - * @param pointer to the distributed key struct - * @return true if the key is loaded successfully, otherwise false. - * level. Ver.: always - */ -bool emberAfPluginNetworkSteeringGetDistributedKeyCallback(EmberKeyData * key) -{ - return false; -} - -/** @brief Get Power For Radio Channel - * - * This callback is fired when the Network Steering plugin needs to set the - * power level. The application has the ability to change the max power level - * used for this particular channel. - * - * @param channel The channel that the plugin is inquiring about the power - * level. Ver.: always - */ -int8_t emberAfPluginNetworkSteeringGetPowerForRadioChannelCallback(uint8_t channel) -{ - return emberAfMaxPowerLevel(); -} - -// Ifdef out the attribute change callback, since we implement it in -// DataModelHandler -#if 0 -/** @brief Post Attribute Change - * - * This function is called by the application framework after it changes an - * attribute value. The value passed into this callback is the value to which - * the attribute was set by the framework. - * - * @param endpoint Ver.: always - * @param clusterId Ver.: always - * @param attributeId Ver.: always - * @param mask Ver.: always - * @param manufacturerCode Ver.: always - * @param type Ver.: always - * @param size Ver.: always - * @param value Ver.: always - */ -void emberAfPostAttributeChangeCallback(uint8_t endpoint, EmberAfClusterId clusterId, EmberAfAttributeId attributeId, uint8_t mask, - uint16_t manufacturerCode, uint8_t type, uint8_t size, uint8_t * value) -{} -#endif - -/** @brief Post Em4 Reset - * - * A callback called by application framework, and implemented by em4 plugin - * - */ -void emberAfPostEm4ResetCallback(void) -{ - return; -} - -/** @brief Pre Attribute Change - * - * This function is called by the application framework before it changes an - * attribute value. The value passed into this callback is the value to which - * the attribute is to be set by the framework. The application should return - * ::EMBER_ZCL_STATUS_SUCCESS to permit the change or any other ::EmberAfStatus - * to reject it. - * - * @param endpoint Ver.: always - * @param clusterId Ver.: always - * @param attributeId Ver.: always - * @param mask Ver.: always - * @param manufacturerCode Ver.: always - * @param type Ver.: always - * @param size Ver.: always - * @param value Ver.: always - */ -EmberAfStatus emberAfPreAttributeChangeCallback(uint8_t endpoint, EmberAfClusterId clusterId, EmberAfAttributeId attributeId, - uint8_t mask, uint16_t manufacturerCode, uint8_t type, uint8_t size, - uint8_t * value) -{ - return EMBER_ZCL_STATUS_SUCCESS; -} - -/** @brief Pre Cli Send - * - * This function is called by the framework when it is about to pass a message - * constructed over CLI to the stack primitives for sending. If the function - * returns true it is assumed that the callback has consumed and processed the - * message. The framework will not do any further processing on the message. - - * If the function returns false then it is assumed that the callback has - * not processed the message and the framework will continue to process - * accordingly. - * - * @param apsFrame The structure containing the APS frame Ver.: always - * @param source Source Node Id Ver.: always - * @param destination Destintion Node Id Ver.: always - * @param message Pointer to the message payload Ver.: always - * @param messageLength Length of the message payload Ver.: always - */ -bool emberAfPreCliSendCallback(EmberApsFrame * apsFrame, EmberNodeId source, EmberNodeId destination, uint8_t * message, - uint16_t messageLength) -{ - return false; -} - -/** @brief Pre Command Received - * - * This callback is the second in the Application Framework's message processing - * chain. At this point in the processing of incoming over-the-air messages, the - * application has determined that the incoming message is a ZCL command. It - * parses enough of the message to populate an EmberAfClusterCommand struct. The - * Application Framework defines this struct value in a local scope to the - * command processing but also makes it available through a global pointer - * called emberAfCurrentCommand, in app/framework/util/util.c. When command - * processing is complete, this pointer is cleared. - * - * @param cmd Ver.: always - */ -bool emberAfPreCommandReceivedCallback(EmberAfClusterCommand * cmd) -{ - return false; -} - -/** @brief Pre Message Received - * - * This callback is the first in the Application Framework's message processing - * chain. The Application Framework calls it when a message has been received - * over the air but has not yet been parsed by the ZCL command-handling code. If - * you wish to parse some messages that are completely outside the ZCL - * specification or are not handled by the Application Framework's command - * handling code, you should intercept them for parsing in this callback. - - * This callback returns a Boolean value indicating whether or not the message - * has been handled. If the callback returns a value of true, then the - * Application Framework assumes that the message has been handled and it does - * nothing else with it. If the callback returns a value of false, then the - * application framework continues to process the message as it would with any - * incoming message. - Note: This callback receives a pointer to an - * incoming message struct. This struct allows the application framework to - * provide a unified interface between both Host devices, which receive their - * message through the ezspIncomingMessageHandler, and SoC devices, which - * receive their message through emberIncomingMessageHandler. - * - * @param incomingMessage Ver.: always - */ -bool emberAfPreMessageReceivedCallback(EmberAfIncomingMessage * incomingMessage) -{ - return false; -} - -/** @brief Pre Message Send - * - * This function is called by the framework when it is about to pass a message - * to the stack primitives for sending. This message may or may not be ZCL, - * ZDO, or some other protocol. This is called prior to - any ZigBee - * fragmentation that may be done. If the function returns true it is assumed - * the callback has consumed and processed the message. The callback must also - * set the EmberStatus status code to be passed back to the caller. The - * framework will do no further processing on the message. - If the - * function returns false then it is assumed that the callback has not processed - * the mesasge and the framework will continue to process accordingly. - * - * @param messageStruct The structure containing the parameters of the APS - * message to be sent. Ver.: always - * @param status A pointer to the status code value that will be returned to the - * caller. Ver.: always - */ -bool emberAfPreMessageSendCallback(EmberAfMessageStruct * messageStruct, EmberStatus * status) -{ - return false; -} - -/** @brief Pre Ncp Reset - * - * This function will be called prior to the reset of the NCP by the host. - * - */ -void emberAfPreNcpResetCallback(void) {} - -/** @brief Pre ZDO Message Received - * - * This function passes the application an incoming ZDO message and gives the - * appictation the opportunity to handle it. By default, this callback returns - * false indicating that the incoming ZDO message has not been handled and - * should be handled by the Application Framework. - * - * @param emberNodeId Ver.: always - * @param apsFrame Ver.: always - * @param message Ver.: always - * @param length Ver.: always - */ -bool emberAfPreZDOMessageReceivedCallback(EmberNodeId emberNodeId, EmberApsFrame * apsFrame, uint8_t * message, uint16_t length) -{ - return false; -} - -/** @brief Read Attributes Response - * - * This function is called by the application framework when a Read Attributes - * Response command is received from an external device. The application should - * return true if the message was processed or false if it was not. - * - * @param clusterId The cluster identifier of this response. Ver.: always - * @param buffer Buffer containing the list of read attribute status records. - * Ver.: always - * @param bufLen The length in bytes of the list. Ver.: always - */ -bool emberAfReadAttributesResponseCallback(EmberAfClusterId clusterId, uint8_t * buffer, uint16_t bufLen) -{ - return false; -} - -/** @brief Read Reporting Configuration Command - * - * This function is called by the application framework when a Read Reporting - * Configuration command is received from an external device. The application - * should return true if the message was processed or false if it was not. - * - * @param cmd Ver.: always - */ -bool emberAfReadReportingConfigurationCommandCallback(const EmberAfClusterCommand * cmd) -{ - return false; -} - -/** @brief Activate Door Lock Callback - * This function is provided by the door lock server plugin. - * - * @param activate True if the lock should move to the locked position, - * false if it should move to the unlocked position Ver.: always - * - * @returns true if the callback was able to activate/deactivate the Lock. - */ -bool emberAfPluginDoorLockServerActivateDoorLockCallback(bool activate) -{ - return false; -}; - -/** @brief Read Reporting Configuration Response - * - * This function is called by the application framework when a Read Reporting - * Configuration Response command is received from an external device. The - * application should return true if the message was processed or false if it - * was not. - * - * @param clusterId The cluster identifier of this response. Ver.: always - * @param buffer Buffer containing the list of attribute reporting configuration - * records. Ver.: always - * @param bufLen The length in bytes of the list. Ver.: always - */ -bool emberAfReadReportingConfigurationResponseCallback(EmberAfClusterId clusterId, uint8_t * buffer, uint16_t bufLen) -{ - return false; -} - -/** @brief Scenes Cluster Recall Saved Scene - * - * This function is called by the framework when the application should recall a - * saved scene. - * - * @param endpoint The endpoint. Ver.: always - * @param groupId The group identifier. Ver.: always - * @param sceneId The scene identifier. Ver.: always - */ -EmberAfStatus emberAfScenesClusterRecallSavedSceneCallback(uint8_t endpoint, uint16_t groupId, uint8_t sceneId) -{ - return EMBER_ZCL_STATUS_FAILURE; -} - -/** @brief Registration Abort - * - * This callback is called when the device should abort the registration - * process. - * - */ -void emberAfRegistrationAbortCallback(void) {} - -/** @brief Registration - * - * This callback is called when the device joins a network and the process of - * registration is complete. This callback provides a success value of true if - * the registration process was successful and a value of false if registration - * failed. - * - * @param success true if registration succeeded, false otherwise. Ver.: always - */ -void emberAfRegistrationCallback(bool success) {} - -/** @brief Registration Start - * - * This callback is called when the device joins a network and the registration - * process should begin. The application should return EMBER_SUCCESS if the - * registration process started successfully. When registration is complete, - * the application should call emberAfRegistrationCallback with an indication of - * success or failure. - * - */ -EmberStatus emberAfRegistrationStartCallback(void) -{ - return EMBER_LIBRARY_NOT_PRESENT; -} - -/** @brief Remote Delete Binding Permission - * - * This function is called by the framework to request permission to service the - * remote delete binding request. Return EMBER_SUCCESS to allow request, - * anything else to disallow request. - * - * @param index index to an Ember binding table entry Ver.: always - */ -EmberStatus emberAfRemoteDeleteBindingPermissionCallback(uint8_t index) -{ - return EMBER_SUCCESS; // default -} - -/** @brief Remote Set Binding Permission - * - * This function is called by the framework to request permission to service the - * remote set binding request. Return EMBER_SUCCESS to allow request, anything - * else to disallow request. - * - * @param entry Ember Binding Tablet Entry Ver.: always - */ -EmberStatus emberAfRemoteSetBindingPermissionCallback(const EmberBindingTableEntry * entry) -{ - return EMBER_SUCCESS; // default -} - -/** @brief Remove From Current App Tasks - * - * This function is only useful to sleepy end devices. This function will - * remove the passed item from the set of tasks the application has outstanding - * (e.g. message sent requiring APS acknwoledgement). This will affect how the - * application behaves with regard to sleeping and polling. Removing the item - * from the list of outstanding tasks may allow the device to sleep longer and - * poll less frequently. If there are other outstanding tasks the system may - * still have to stay away and poll more often. - * - * @param tasks Ver.: always - */ -void emberAfRemoveFromCurrentAppTasksCallback(EmberAfApplicationTask tasks) {} - -/** @brief Scenes Cluster Remove Scenes In Group - * - * This function removes the scenes from a specified group. - * - * @param endpoint Endpoint Ver.: always - * @param groupId Group ID Ver.: always - */ -void emberAfScenesClusterRemoveScenesInGroupCallback(uint8_t endpoint, uint16_t groupId) {} - -/** @brief Report Attributes - * - * This function is called by the application framework when a Report Attributes - * command is received from an external device. The application should return - * true if the message was processed or false if it was not. - * - * @param clusterId The cluster identifier of this command. Ver.: always - * @param buffer Buffer containing the list of attribute report records. Ver.: - * always - * @param bufLen The length in bytes of the list. Ver.: always - */ -bool emberAfReportAttributesCallback(EmberAfClusterId clusterId, uint8_t * buffer, uint16_t bufLen) -{ - return false; -} - -/** @brief Reporting Attribute Change - * - * This function is called by the framework when an attribute managed by the - * framework changes. The application should call this function when an - * externally-managed attribute changes. The application should use the change - * notification to inform its reporting decisions. - * - * @param endpoint Ver.: always - * @param clusterId Ver.: always - * @param attributeId Ver.: always - * @param mask Ver.: always - * @param manufacturerCode Ver.: always - * @param type Ver.: always - * @param data Ver.: always - */ -void emberAfReportingAttributeChangeCallback(uint8_t endpoint, EmberAfClusterId clusterId, EmberAfAttributeId attributeId, - uint8_t mask, uint16_t manufacturerCode, EmberAfAttributeType type, uint8_t * data) -{} - -/** @brief Scan Error - * - * This is called by the framework on behalf of the form-and-join library to - * notify the application if an error occurs while scanning. See form-and-join - * documentation for more information. - * - * @param status The status of the scan. Ver.: always - */ -void emberAfScanErrorCallback(EmberStatus status) {} - -/** @brief Security Init - * - * This callback is called by the framework to give the application a chance to - * modify the security settings of the node during network initialization. - * Depending on the context when this callback is called, the pointer to the - * initial security state may be NULL, which means the initial security state - * can no longer be modified as the node is already operating on the network. - * - * @param state Ver.: always - * @param extended Ver.: always - * @param trustCenter Ver.: always - */ -void emberAfSecurityInitCallback(EmberInitialSecurityState * state, EmberExtendedSecurityBitmask * extended, bool trustCenter) {} - -/** @brief Key Establishment Cluster Server Command Received - * - * This function is called by the application framework when a client-to-server - * key establishment command is received but has yet to be handled by the - * framework code. This function should return a bool value indicating whether - * the command has been handled by the application code and should not be - * further processed by the framework. - * - * @param cmd Ver.: always - */ -bool emberAfKeyEstablishmentClusterServerCommandReceivedCallback(EmberAfClusterCommand * cmd) -{ - return false; -} - -/** @brief Set Default Poll Control - * - * This function will set the default poll control for the current network to - * control whether or not it can long poll. - * - * @param control Ver.: always - */ -void emberAfSetDefaultPollControlCallback(EmberAfEventPollControl control) {} - -/** @brief Set Default Sleep Control - * - * This function will set the default behavior of a sleeping device to control - * whether or not it must stay awake. A device that stays awake does not sleep - * at all. Otherwise, the device can sleep between events when appropriate. - * - * @param control Ver.: always - */ -void emberAfSetDefaultSleepControlCallback(EmberAfEventSleepControl control) {} - -/** @brief Set Form And Join Extended Pan Id - * - * This callback is called by the framework to set the extended PAN ID used by - * the current network for forming and joining. The extended PAN ID used for - * forming and joining is not necessarily the same extended PAN ID actually in - * use on the network. - * - * @param extendedPanId Ver.: always - */ -void emberAfSetFormAndJoinExtendedPanIdCallback(const uint8_t * extendedPanId) {} - -/** @brief Set Long Poll Interval Ms - * - * This function is only useful to end devices. This function will set the long - * poll interval (in milliseconds) for the current network. This interval is - * the maximum amount of time a child will wait between polls of its parent when - * it is not expecting data. - * - * @param longPollIntervalMs Ver.: always - */ -void emberAfSetLongPollIntervalMsCallback(uint32_t longPollIntervalMs) {} - -/** @brief Set Long Poll Interval Qs - * - * This function is only useful to end devices. This function will set the long - * poll interval (in quarter seconds) for the current network. This interval is - * the maximum amount of time a child will wait between polls of its parent when - * it is not expecting data. - * - * @param longPollIntervalQs Ver.: always - */ -void emberAfSetLongPollIntervalQsCallback(uint32_t longPollIntervalQs) {} - -/** @brief Set Short Poll Interval Ms - * - * This function is only useful to sleepy end devices. This function will set - * the short poll interval (in milliseconds) for the current network. This - * interval is the maximum amount of time a child will wait between polls of its - * parent when it is expecting data. - * - * @param shortPollIntervalMs Ver.: always - */ -void emberAfSetShortPollIntervalMsCallback(uint16_t shortPollIntervalMs) {} - -/** @brief Set Short Poll Interval Qs - * - * This function is only useful to sleepy end devices. This function will set - * the short poll interval (in quarter seconds) for the current network. This - * interval is the maximum amount of time a child will wait between polls of its - * parent when it is expecting data. - * - * @param shortPollIntervalQs Ver.: always - */ -void emberAfSetShortPollIntervalQsCallback(uint16_t shortPollIntervalQs) {} - -/** @brief Set Source Route Overhead - * - * This function is called by the framework when it has information about the - * source route overhead to a particular destination. The application may use - * this information to cache the source route overhead. - * - * @param destination The node id of the destination Ver.: always - * @param overhead The overhead in bytes Ver.: always - */ -void emberAfSetSourceRouteOverheadCallback(EmberNodeId destination, uint8_t overhead) {} - -/** @brief Set Time - * - * This callback should be implemented, if the device has access to real time - * clock, and has an ability to update that clock. The application framework - * expects to be passed the utcTime which is the number of seconds since the - * year 2000. Default implementation does nothing. Note: This function used to - * take time in year, month, day, hour, min, sec. We have changed this to - * utcTime in order to conserve code space. - * - * @param utcTime Ver.: always - */ -void emberAfSetTimeCallback(uint32_t utcTime) {} - -// Ifdef out emberAfOnOffClusterSetValueCallback, since it's implemented by -// on-off.c -#if 0 -/** @brief On/off Cluster Set Value - * - * This function is called when the on/off value needs to be set, either through - * normal channels or as a result of a level change. - * - * @param endpoint Ver.: always - * @param command Ver.: always - * @param initiatedByLevelChange Ver.: always - */ -EmberAfStatus emberAfOnOffClusterSetValueCallback(uint8_t endpoint, uint8_t command, bool initiatedByLevelChange) -{ - return EMBER_ZCL_STATUS_UNSUP_CLUSTER_COMMAND; -} -#endif - -/** @brief Set Wake Timeout Bitmask - * - * This function is only useful to sleepy end devices. This function will set - * the wake timeout bitmask for the current network. The bitmask determines - * which tasks will timeout automatically and which tasks require manual removal - * from the task list. - * - * @param tasks Ver.: always - */ -void emberAfSetWakeTimeoutBitmaskCallback(EmberAfApplicationTask tasks) {} - -/** @brief Set Wake Timeout Ms - * - * This function is only useful to sleepy end devices. This function will set - * the wake timeout (in milliseconds) for the current network. This timeout is - * the maximum amount of time a child will wait for a task in the wake bitmask - * to finish. While waiting, the device will short poll. - * - * @param wakeTimeoutMs Ver.: always - */ -void emberAfSetWakeTimeoutMsCallback(uint16_t wakeTimeoutMs) {} - -/** @brief Set Wake Timeout Qs - * - * This function is only useful to sleepy end devices. This function will set - * the wake timeout (in quarter seconds) for the current network. This timeout - * is the maximum amount of time a child will wait for a task in the wake - * bitmask to finish. While waiting, the device will short poll. - * - * @param wakeTimeoutQs Ver.: always - */ -void emberAfSetWakeTimeoutQsCallback(uint16_t wakeTimeoutQs) {} - -/** @brief Start Move - * - * This function is called to initiate the process for a device to move (rejoin) - * to a new parent. - * - */ -bool emberAfStartMoveCallback(void) -{ - return false; -} - -/** @brief Start Search For Joinable Network - * - * This function is called by the framework to search for joinable networks and - * join a network. The application should return EMBER_SUCCESS if the operation - * was initiated successfully. - * - */ -EmberStatus emberAfStartSearchForJoinableNetworkCallback(void) -{ - return EMBER_LIBRARY_NOT_PRESENT; -} - -/** @brief Stop Move - * - * This function is called to cancel a previously scheduled move (rejoin) to a - * new parent. - * - */ -void emberAfStopMoveCallback(void) {} - -/** @brief Scenes Cluster Store Current Scene - * - * This function is called by the framework when the application should store - * the current scene. If an entry already exists in the scene table with the - * same scene and group ids, the application should update the entry with the - * current scene. Otherwise, a new entry should be adde to the scene table, if - * possible. - * - * @param endpoint The endpoint. Ver.: always - * @param groupId The group identifier. Ver.: always - * @param sceneId The scene identifier. Ver.: always - */ -EmberAfStatus emberAfScenesClusterStoreCurrentSceneCallback(uint8_t endpoint, uint16_t groupId, uint8_t sceneId) -{ - return EMBER_ZCL_STATUS_FAILURE; -} - -/** @brief Trust Center Join - * - * This callback is called from within the application framework's - * implementation of emberTrustCenterJoinHandler or ezspTrustCenterJoinHandler. - * This callback provides the same arguments passed to the - * TrustCenterJoinHandler. For more information about the TrustCenterJoinHandler - * please see documentation included in stack/include/trust-center.h. - * - * @param newNodeId Ver.: always - * @param newNodeEui64 Ver.: always - * @param parentOfNewNode Ver.: always - * @param status Ver.: always - * @param decision Ver.: always - */ -void emberAfTrustCenterJoinCallback(EmberNodeId newNodeId, EmberEUI64 newNodeEui64, EmberNodeId parentOfNewNode, - EmberDeviceUpdate status, EmberJoinDecision decision) -{} - -/** @brief Trust Center Keepalive Abort - * - * This callback is called when the device should abort the trust center - * keepalive process. - * - */ -void emberAfTrustCenterKeepaliveAbortCallback(void) {} - -/** @brief Trust Center Keepalive Update - * - * This callback is called when the device finishes registration (successfully - * or otherwise) and the trust center keepalive process must be updated. If the - * keepalive process has not been started, then it is started. Otherwise if the - * keepalive is in the process of searching for the TC, it will process the - * result of that Trust Center search operation. - * - * @param registrationComplete Ver.: always - */ -void emberAfTrustCenterKeepaliveUpdateCallback(bool registrationComplete) {} - -/** @brief Unused Pan Id Found - * - * This is called by the framework on behalf of the form-and-join library to - * notify the application of the PAN id and channel found following a call to - * ::emberScanForUnusedPanId(). See form-and-join documentation for more - * information. - * - * @param panId Ver.: always - * @param channel Ver.: always - */ -void emberAfUnusedPanIdFoundCallback(EmberPanId panId, uint8_t channel) {} - -/** @brief Write Attributes Response - * - * This function is called by the application framework when a Write Attributes - * Response command is received from an external device. The application should - * return true if the message was processed or false if it was not. - * - * @param clusterId The cluster identifier of this response. Ver.: always - * @param buffer Buffer containing the list of write attribute status records. - * Ver.: always - * @param bufLen The length in bytes of the list. Ver.: always - */ -bool emberAfWriteAttributesResponseCallback(EmberAfClusterId clusterId, uint8_t * buffer, uint16_t bufLen) -{ - return false; -} - -/** @brief Zigbee Key Establishment - * - * A callback to the application to notify it of the status of the request for a - * Link Key. - * - * @param partner partner The IEEE address of the partner device. Or all zeros - * if the Key establishment failed. Ver.: always - * @param status The status of the key establishment. Ver.: always - */ -void emberAfZigbeeKeyEstablishmentCallback(EmberEUI64 partner, EmberKeyStatus status) {} - -/** - * @brief Called whenever the radio is powered off. - */ -void halRadioPowerDownHandler(void) {} - -/** - * @brief Called whenever the radio is powered on. - */ -void halRadioPowerUpHandler(void) {} - -/** - * @brief Called whenever the microcontroller enters/exits a idle/sleep mode - * - * @param enter True if entering idle/sleep, False if exiting - * @param sleepMode Idle/sleep mode - */ -void halSleepCallback(bool enter, SleepModes sleepMode) {} diff --git a/examples/lock-app/lock-common/gen/callback-stub.cpp b/examples/lock-app/lock-common/gen/callback-stub.cpp new file mode 100644 index 00000000000000..6f597e18afb113 --- /dev/null +++ b/examples/lock-app/lock-common/gen/callback-stub.cpp @@ -0,0 +1,538 @@ + +/* + * + * 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. + */ + +#include "callback.h" +#include "cluster-id.h" + +using namespace chip; + +// Cluster Init Functions +void emberAfClusterInitCallback(EndpointId endpoint, ClusterId clusterId) +{ + switch (clusterId) + { + case ZCL_ON_OFF_CLUSTER_ID: + emberAfOnOffClusterInitCallback(endpoint); + break; + default: + // Unrecognized cluster ID + break; + } +} + +// +// Non-Cluster Related Callbacks +// + +/** @brief Add To Current App Tasks + * + * This function is only useful to sleepy end devices. This function will note + * the passed item as part of a set of tasks the application has outstanding + * (e.g. message sent requiring APS acknwoledgement). This will affect how the + * application behaves with regard to sleeping and polling. Until the + * outstanding task is completed, the device may poll more frequently and sleep + * less often. + * + * @param tasks Ver.: always + */ +void emberAfAddToCurrentAppTasksCallback(EmberAfApplicationTask tasks) {} + +/** @brief Remove From Current App Tasks + * + * This function is only useful to sleepy end devices. This function will + * remove the passed item from the set of tasks the application has outstanding + * (e.g. message sent requiring APS acknwoledgement). This will affect how the + * application behaves with regard to sleeping and polling. Removing the item + * from the list of outstanding tasks may allow the device to sleep longer and + * poll less frequently. If there are other outstanding tasks the system may + * still have to stay away and poll more often. + * + * @param tasks Ver.: always + */ +void emberAfRemoveFromCurrentAppTasksCallback(EmberAfApplicationTask tasks) {} + +/** @brief Allow Network Write Attribute + * + * This function is called by the application framework before it writes an + * attribute in response to a write attribute request from an external device. + * The value passed into this callback is the value to which the attribute is to + * be set by the framework. + Example: In mirroring simple metering data + * on an Energy Services Interface (ESI) (formerly called Energy Service Portal + * (ESP) in SE 1.0).), a mirrored simple meter needs to write read-only + * attributes on its mirror. The-meter-mirror sample application, located in + * app/framework/sample-apps, uses this callback to allow the mirrored device to + * write simple metering attributes on the mirror regardless of the fact that + * most simple metering attributes are defined as read-only by the ZigBee + * specification. + Note: The ZCL specification does not (as of this + * writing) specify any permission-level security for writing writeable + * attributes. As far as the ZCL specification is concerned, if an attribute is + * writeable, any device that has a link key for the device should be able to + * write that attribute. Furthermore if an attribute is read only, it should not + * be written over the air. Thus, if you implement permissions for writing + * attributes as a feature, you MAY be operating outside the specification. This + * is unlikely to be a problem for writing read-only attributes, but it may be a + * problem for attributes that are writeable according to the specification but + * restricted by the application implementing this callback. + * + * @param endpoint Ver.: always + * @param clusterId Ver.: always + * @param attributeId Ver.: always + * @param mask Ver.: always + * @param manufacturerCode Ver.: always + * @param value Ver.: always + * @param type Ver.: always + */ +EmberAfAttributeWritePermission emberAfAllowNetworkWriteAttributeCallback(EndpointId endpoint, ClusterId clusterId, + AttributeId attributeId, uint8_t mask, + uint16_t manufacturerCode, uint8_t * value, uint8_t type) +{ + return EMBER_ZCL_ATTRIBUTE_WRITE_PERMISSION_ALLOW_WRITE_NORMAL; // Default +} + +/** @brief Attribute Read Access + * + * This function is called whenever the Application Framework needs to check + * access permission for an attribute read. + * + * @param endpoint Ver.: always + * @param clusterId Ver.: always + * @param manufacturerCode Ver.: always + * @param attributeId Ver.: always + */ +bool emberAfAttributeReadAccessCallback(EndpointId endpoint, ClusterId clusterId, uint16_t manufacturerCode, + AttributeId attributeId) +{ + return true; +} + +/** @brief Attribute Write Access + * + * This function is called whenever the Application Framework needs to check + * access permission for an attribute write. + * + * @param endpoint Ver.: always + * @param clusterId Ver.: always + * @param manufacturerCode Ver.: always + * @param attributeId Ver.: always + */ +bool emberAfAttributeWriteAccessCallback(EndpointId endpoint, ClusterId clusterId, uint16_t manufacturerCode, + AttributeId attributeId) +{ + return true; +} + +/** @brief Default Response + * + * This function is called by the application framework when a Default Response + * command is received from an external device. The application should return + * true if the message was processed or false if it was not. + * + * @param clusterId The cluster identifier of this response. Ver.: always + * @param commandId The command identifier to which this is a response. Ver.: + * always + * @param status Specifies either SUCCESS or the nature of the error that was + * detected in the received command. Ver.: always + */ +bool emberAfDefaultResponseCallback(ClusterId clusterId, CommandId commandId, EmberAfStatus status) +{ + return false; +} + +/** @brief Discover Attributes Response + * + * This function is called by the application framework when a Discover + * Attributes Response or Discover Attributes Extended Response command is + * received from an external device. The Discover Attributes Response command + * contains a bool indicating if discovery is complete and a list of zero or + * more attribute identifier/type records. The final argument indicates whether + * the response is in the extended format or not. The application should return + * true if the message was processed or false if it was not. + * + * @param clusterId The cluster identifier of this response. Ver.: always + * @param discoveryComplete Indicates whether there are more attributes to be + * discovered. true if there are no more attributes to be discovered. Ver.: + * always + * @param buffer Buffer containing the list of attribute identifier/type + * records. Ver.: always + * @param bufLen The length in bytes of the list. Ver.: always + * @param extended Indicates whether the response is in the extended format or + * not. Ver.: always + */ +bool emberAfDiscoverAttributesResponseCallback(ClusterId clusterId, bool discoveryComplete, uint8_t * buffer, uint16_t bufLen, + bool extended) +{ + return false; +} + +/** @brief Discover Commands Generated Response + * + * This function is called by the framework when Discover Commands Generated + * Response is received. + * + * @param clusterId The cluster identifier of this response. Ver.: always + * @param manufacturerCode Manufacturer code Ver.: always + * @param discoveryComplete Indicates whether there are more commands to be + * discovered. Ver.: always + * @param commandIds Buffer containing the list of command identifiers. Ver.: + * always + * @param commandIdCount The length of bytes of the list, whish is the same as + * the number of identifiers. Ver.: always + */ +bool emberAfDiscoverCommandsGeneratedResponseCallback(ClusterId clusterId, uint16_t manufacturerCode, bool discoveryComplete, + CommandId * commandIds, uint16_t commandIdCount) +{ + return false; +} + +/** @brief Discover Commands Received Response + * + * This function is called by the framework when Discover Commands Received + * Response is received. + * + * @param clusterId The cluster identifier of this response. Ver.: always + * @param manufacturerCode Manufacturer code Ver.: always + * @param discoveryComplete Indicates whether there are more commands to be + * discovered. Ver.: always + * @param commandIds Buffer containing the list of command identifiers. Ver.: + * always + * @param commandIdCount The length of bytes of the list, whish is the same as + * the number of identifiers. Ver.: always + */ +bool emberAfDiscoverCommandsReceivedResponseCallback(ClusterId clusterId, uint16_t manufacturerCode, bool discoveryComplete, + CommandId * commandIds, uint16_t commandIdCount) +{ + return false; +} + +/** @brief Pre Command Received + * + * This callback is the second in the Application Framework's message processing + * chain. At this point in the processing of incoming over-the-air messages, the + * application has determined that the incoming message is a ZCL command. It + * parses enough of the message to populate an EmberAfClusterCommand struct. The + * Application Framework defines this struct value in a local scope to the + * command processing but also makes it available through a global pointer + * called emberAfCurrentCommand, in app/framework/util/util.c. When command + * processing is complete, this pointer is cleared. + * + * @param cmd Ver.: always + */ +bool emberAfPreCommandReceivedCallback(EmberAfClusterCommand * cmd) +{ + return false; +} + +/** @brief Pre Message Send + * + * This function is called by the framework when it is about to pass a message + * to the stack primitives for sending. This message may or may not be ZCL, + * ZDO, or some other protocol. This is called prior to + any ZigBee + * fragmentation that may be done. If the function returns true it is assumed + * the callback has consumed and processed the message. The callback must also + * set the EmberStatus status code to be passed back to the caller. The + * framework will do no further processing on the message. + If the + * function returns false then it is assumed that the callback has not processed + * the mesasge and the framework will continue to process accordingly. + * + * @param messageStruct The structure containing the parameters of the APS + * message to be sent. Ver.: always + * @param status A pointer to the status code value that will be returned to the + * caller. Ver.: always + */ +bool emberAfPreMessageSendCallback(EmberAfMessageStruct * messageStruct, EmberStatus * status) +{ + return false; +} + +/** @brief Message Sent + * + * This function is called by the application framework from the message sent + * handler, when it is informed by the stack regarding the message sent status. + * All of the values passed to the emberMessageSentHandler are passed on to this + * callback. This provides an opportunity for the application to verify that its + * message has been sent successfully and take the appropriate action. This + * callback should return a bool value of true or false. A value of true + * indicates that the message sent notification has been handled and should not + * be handled by the application framework. + * + * @param type Ver.: always + * @param indexOrDestination Ver.: always + * @param apsFrame Ver.: always + * @param msgLen Ver.: always + * @param message Ver.: always + * @param status Ver.: always + */ +bool emberAfMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, EmberApsFrame * apsFrame, + uint16_t msgLen, uint8_t * message, EmberStatus status) +{ + return false; +} + +/** @brief Pre Attribute Change + * + * This function is called by the application framework before it changes an + * attribute value. The value passed into this callback is the value to which + * the attribute is to be set by the framework. The application should return + * ::EMBER_ZCL_STATUS_SUCCESS to permit the change or any other ::EmberAfStatus + * to reject it. + * + * @param endpoint Ver.: always + * @param clusterId Ver.: always + * @param attributeId Ver.: always + * @param mask Ver.: always + * @param manufacturerCode Ver.: always + * @param type Ver.: always + * @param size Ver.: always + * @param value Ver.: always + */ +EmberAfStatus emberAfPreAttributeChangeCallback(EndpointId endpoint, ClusterId clusterId, AttributeId attributeId, uint8_t mask, + uint16_t manufacturerCode, uint8_t type, uint8_t size, uint8_t * value) +{ + return EMBER_ZCL_STATUS_SUCCESS; +} + +/** @brief Read Attributes Response + * + * This function is called by the application framework when a Read Attributes + * Response command is received from an external device. The application should + * return true if the message was processed or false if it was not. + * + * @param clusterId The cluster identifier of this response. Ver.: always + * @param buffer Buffer containing the list of read attribute status records. + * Ver.: always + * @param bufLen The length in bytes of the list. Ver.: always + */ +bool emberAfReadAttributesResponseCallback(ClusterId clusterId, uint8_t * buffer, uint16_t bufLen) +{ + return false; +} + +/** @brief External Attribute Read + * + * Like emberAfExternalAttributeWriteCallback above, this function is called + * when the framework needs to read an attribute that is not stored within the + * Application Framework's data structures. + All of the important + * information about the attribute itself is passed as a pointer to an + * EmberAfAttributeMetadata struct, which is stored within the application and + * used to manage the attribute. A complete description of the + * EmberAfAttributeMetadata struct is provided in + * app/framework/include/af-types.h + This function assumes that the + * application is able to read the attribute, write it into the passed buffer, + * and return immediately. Any attributes that require a state machine for + * reading and writing are not really candidates for externalization at the + * present time. The Application Framework does not currently include a state + * machine for reading or writing attributes that must take place across a + * series of application ticks. Attributes that cannot be read in a timely + * manner should be stored within the Application Framework and updated + * occasionally by the application code from within the + * emberAfMainTickCallback. + If the application was successfully able to + * read the attribute and write it into the passed buffer, it should return a + * value of EMBER_ZCL_STATUS_SUCCESS. Ensure that the size of the externally + * managed attribute value is smaller than what the buffer can hold. In the case + * of a buffer overflow throw an appropriate error such as + * EMBER_ZCL_STATUS_INSUFFICIENT_SPACE. Any other return value indicates the + * application was not able to read the attribute. + * + * @param endpoint Ver.: always + * @param clusterId Ver.: always + * @param attributeMetadata Ver.: always + * @param manufacturerCode Ver.: always + * @param buffer Ver.: always + * @param maxReadLength Ver.: always + */ +EmberAfStatus emberAfExternalAttributeReadCallback(EndpointId endpoint, ClusterId clusterId, + EmberAfAttributeMetadata * attributeMetadata, uint16_t manufacturerCode, + uint8_t * buffer, uint16_t maxReadLength) +{ + return EMBER_ZCL_STATUS_FAILURE; +} + +/** @brief Write Attributes Response + * + * This function is called by the application framework when a Write Attributes + * Response command is received from an external device. The application should + * return true if the message was processed or false if it was not. + * + * @param clusterId The cluster identifier of this response. Ver.: always + * @param buffer Buffer containing the list of write attribute status records. + * Ver.: always + * @param bufLen The length in bytes of the list. Ver.: always + */ +bool emberAfWriteAttributesResponseCallback(ClusterId clusterId, uint8_t * buffer, uint16_t bufLen) +{ + return false; +} + +/** @brief External Attribute Write + * + * This function is called whenever the Application Framework needs to write an + * attribute which is not stored within the data structures of the Application + * Framework itself. One of the new features in Version 2 is the ability to + * store attributes outside the Framework. This is particularly useful for + * attributes that do not need to be stored because they can be read off the + * hardware when they are needed, or are stored in some central location used by + * many modules within the system. In this case, you can indicate that the + * attribute is stored externally. When the framework needs to write an external + * attribute, it makes a call to this callback. + This callback is very + * useful for host micros which need to store attributes in persistent memory. + * Because each host micro (used with an Ember NCP) has its own type of + * persistent memory storage, the Application Framework does not include the + * ability to mark attributes as stored in flash the way that it does for Ember + * SoCs like the EM35x. On a host micro, any attributes that need to be stored + * in persistent memory should be marked as external and accessed through the + * external read and write callbacks. Any host code associated with the + * persistent storage should be implemented within this callback. + All of + * the important information about the attribute itself is passed as a pointer + * to an EmberAfAttributeMetadata struct, which is stored within the application + * and used to manage the attribute. A complete description of the + * EmberAfAttributeMetadata struct is provided in + * app/framework/include/af-types.h. + This function assumes that the + * application is able to write the attribute and return immediately. Any + * attributes that require a state machine for reading and writing are not + * candidates for externalization at the present time. The Application Framework + * does not currently include a state machine for reading or writing attributes + * that must take place across a series of application ticks. Attributes that + * cannot be written immediately should be stored within the Application + * Framework and updated occasionally by the application code from within the + * emberAfMainTickCallback. + If the application was successfully able to + * write the attribute, it returns a value of EMBER_ZCL_STATUS_SUCCESS. Any + * other return value indicates the application was not able to write the + * attribute. + * + * @param endpoint Ver.: always + * @param clusterId Ver.: always + * @param attributeMetadata Ver.: always + * @param manufacturerCode Ver.: always + * @param buffer Ver.: always + */ +EmberAfStatus emberAfExternalAttributeWriteCallback(EndpointId endpoint, ClusterId clusterId, + EmberAfAttributeMetadata * attributeMetadata, uint16_t manufacturerCode, + uint8_t * buffer) +{ + return EMBER_ZCL_STATUS_FAILURE; +} + +/** @brief Report Attributes + * + * This function is called by the application framework when a Report Attributes + * command is received from an external device. The application should return + * true if the message was processed or false if it was not. + * + * @param clusterId The cluster identifier of this command. Ver.: always + * @param buffer Buffer containing the list of attribute report records. Ver.: + * always + * @param bufLen The length in bytes of the list. Ver.: always + */ +bool emberAfReportAttributesCallback(ClusterId clusterId, uint8_t * buffer, uint16_t bufLen) +{ + return false; +} + +/** @brief Get Current Time + * + * This callback is called when device attempts to get current time from the + * hardware. If this device has means to retrieve exact time, then this method + * should implement it. If the callback can't provide the exact time it should + * return 0 to indicate failure. Default action is to return 0, which indicates + * that device does not have access to real time. + * + */ +uint32_t emberAfGetCurrentTimeCallback() +{ + return 0; +} + +/** @brief Get Endpoint Info + * + * This function is a callback to an application implemented endpoint that + * operates outside the normal application framework. When the framework wishes + * to perform operations with that endpoint it uses this callback to retrieve + * the endpoint's information. If the endpoint exists and the application can + * provide data then true shall be returned. Otherwise the callback must return + * false. + * + * @param endpoint The endpoint to retrieve data for. Ver.: always + * @param returnNetworkIndex The index corresponding to the ZigBee network the + * endpoint belongs to. If not using a multi-network device, 0 must be + * returned. Otherwise on a multi-network device the stack will switch to this + * network before sending the message. Ver.: always + * @param returnEndpointInfo A pointer to a data struct that will be written + * with information about the endpoint. Ver.: always + */ +bool emberAfGetEndpointInfoCallback(EndpointId endpoint, uint8_t * returnNetworkIndex, + EmberAfEndpointInfoStruct * returnEndpointInfo) +{ + return false; +} + +/** @brief Get Source Route Overhead + * + * This function is called by the framework to determine the overhead required + * in the network frame for source routing to a particular destination. + * + * @param destination The node id of the destination Ver.: always + */ +uint8_t emberAfGetSourceRouteOverheadCallback(EmberNodeId destination) +{ + return 0; +} + +/** @brief Registration Abort + * + * This callback is called when the device should abort the registration + * process. + * + */ +void emberAfRegistrationAbortCallback() {} + +/** @brief Interpan Send Message + * + * This function will send a raw MAC message with interpan frame format using + * the passed parameters. + * + * @param header Interpan header info Ver.: always + * @param messageLength The length of the message received or to send Ver.: + * always + * @param message The message data received or to send. Ver.: always + */ +EmberStatus emberAfInterpanSendMessageCallback(EmberAfInterpanHeader * header, uint16_t messageLength, uint8_t * message) +{ + return EMBER_LIBRARY_NOT_PRESENT; +} + +/** @brief Start Move + * + * This function is called to initiate the process for a device to move (rejoin) + * to a new parent. + * + */ +bool emberAfStartMoveCallback() +{ + return false; +} diff --git a/examples/lock-app/lock-common/gen/callback.h b/examples/lock-app/lock-common/gen/callback.h index e64238dc7c91df..17c21dfad82831 100644 --- a/examples/lock-app/lock-common/gen/callback.h +++ b/examples/lock-app/lock-common/gen/callback.h @@ -1,4 +1,5 @@ -/** + +/* * * Copyright (c) 2020 Project CHIP Authors * @@ -15,43 +16,128 @@ * limitations under the License. */ -/** +// Prevent multiple inclusion +#pragma once + +#include "af-structs.h" +#include "af-types.h" +#include "basic-types.h" + +/** @brief Cluster Init * - * Copyright (c) 2020 Silicon Labs + * This function is called when a specific cluster is initialized. It gives the + * application an opportunity to take care of cluster initialization procedures. + * It is called exactly once for each endpoint where cluster is present. * - * 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 + * @param endpoint Ver.: always + * @param clusterId Ver.: always + */ +void emberAfClusterInitCallback(chip::EndpointId endpoint, chip::ClusterId clusterId); + +// Cluster Init Functions + +/** @brief On/off Cluster Init * - * http://www.apache.org/licenses/LICENSE-2.0 + * Cluster Init * - * 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. + * @param endpoint Endpoint that is being initialized */ -// This file is generated by Simplicity Studio. Please do not edit manually. +void emberAfOnOffClusterInitCallback(chip::EndpointId endpoint); + +// Cluster Server/Client Init Functions + // +// On/off Cluster server // -// Enclosing macro to prevent multiple inclusion -#ifndef SILABS_EMBER_AF_CALLBACK_PROTOTYPES -#define SILABS_EMBER_AF_CALLBACK_PROTOTYPES +/** @brief On/off Cluster Server Init + * + * Server Init + * + * @param endpoint Endpoint that is being initialized + */ +void emberAfOnOffClusterServerInitCallback(chip::EndpointId endpoint); + +/** @brief On/off Cluster Server Attribute Changed + * + * Server Attribute Changed + * + * @param endpoint Endpoint that is being initialized + * @param attributeId Attribute that changed + */ +void emberAfOnOffClusterServerAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId); + +/** @brief On/off Cluster Server Manufacturer Specific Attribute Changed + * + * Server Manufacturer Specific Attribute Changed + * + * @param endpoint Endpoint that is being initialized + * @param attributeId Attribute that changed + * @param manufacturerCode Manufacturer Code of the attribute that changed + */ +void emberAfOnOffClusterServerManufacturerSpecificAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId, + uint16_t manufacturerCode); + +/** @brief On/off Cluster Server Message Sent + * + * Server Message Sent + * + * @param type The type of message sent + * @param indexOrDestination The destination or address to which the message was sent + * @param apsFrame The APS frame for the message + * @param msgLen The length of the message + * @param message The message that was sent + * @param status The status of the sent message + */ +void emberAfOnOffClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint64_t indexOrDestination, + EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, EmberStatus status); + +/** @brief On/off Cluster Server Pre Attribute Changed + * + * server Pre Attribute Changed + * + * @param endpoint Endpoint that is being initialized + * @param attributeId Attribute to be changed + * @param attributeType Attribute type + * @param size Attribute size + * @param value Attribute value + */ +EmberAfStatus emberAfOnOffClusterServerPreAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId, + EmberAfAttributeType attributeType, uint8_t size, + uint8_t * value); + +/** @brief On/off Cluster Server Tick + * + * server Tick + * + * @param endpoint Endpoint that is being served + */ +void emberAfOnOffClusterServerTickCallback(chip::EndpointId endpoint); + +// Cluster Commands Callback /** - * @addtogroup callback Application Framework callback interface Reference - * This header provides callback function prototypes to interface the - * developer's application code with the Ember Application Framework. - * @{ + * @brief On/off Cluster Off Command callback */ -#include "af-types.h" -//#include "hal/hal.h" -//#include EMBER_AF_API_NETWORK_STEERING +bool emberAfOnOffClusterOffCallback(); + +/** + * @brief On/off Cluster On Command callback + */ + +bool emberAfOnOffClusterOnCallback(); + +/** + * @brief On/off Cluster Toggle Command callback + */ + +bool emberAfOnOffClusterToggleCallback(); + +// +// Non-Cluster Related Callbacks +// -/** @name Non-Cluster Related Callbacks */ -// @{ /** @brief Add To Current App Tasks * * This function is only useful to sleepy end devices. This function will note @@ -64,6 +150,21 @@ * @param tasks Ver.: always */ void emberAfAddToCurrentAppTasksCallback(EmberAfApplicationTask tasks); + +/** @brief Remove From Current App Tasks + * + * This function is only useful to sleepy end devices. This function will + * remove the passed item from the set of tasks the application has outstanding + * (e.g. message sent requiring APS acknwoledgement). This will affect how the + * application behaves with regard to sleeping and polling. Removing the item + * from the list of outstanding tasks may allow the device to sleep longer and + * poll less frequently. If there are other outstanding tasks the system may + * still have to stay away and poll more often. + * + * @param tasks Ver.: always + */ +void emberAfRemoveFromCurrentAppTasksCallback(EmberAfApplicationTask tasks); + /** @brief Allow Network Write Attribute * * This function is called by the application framework before it writes an @@ -97,9 +198,10 @@ void emberAfAddToCurrentAppTasksCallback(EmberAfApplicationTask tasks); * @param value Ver.: always * @param type Ver.: always */ -EmberAfAttributeWritePermission emberAfAllowNetworkWriteAttributeCallback(uint8_t endpoint, EmberAfClusterId clusterId, - EmberAfAttributeId attributeId, uint8_t mask, +EmberAfAttributeWritePermission emberAfAllowNetworkWriteAttributeCallback(chip::EndpointId endpoint, chip::ClusterId clusterId, + chip::AttributeId attributeId, uint8_t mask, uint16_t manufacturerCode, uint8_t * value, uint8_t type); + /** @brief Attribute Read Access * * This function is called whenever the Application Framework needs to check @@ -110,8 +212,9 @@ EmberAfAttributeWritePermission emberAfAllowNetworkWriteAttributeCallback(uint8_ * @param manufacturerCode Ver.: always * @param attributeId Ver.: always */ -bool emberAfAttributeReadAccessCallback(uint8_t endpoint, EmberAfClusterId clusterId, uint16_t manufacturerCode, - uint16_t attributeId); +bool emberAfAttributeReadAccessCallback(chip::EndpointId endpoint, chip::ClusterId clusterId, uint16_t manufacturerCode, + chip::AttributeId attributeId); + /** @brief Attribute Write Access * * This function is called whenever the Application Framework needs to check @@ -122,63 +225,9 @@ bool emberAfAttributeReadAccessCallback(uint8_t endpoint, EmberAfClusterId clust * @param manufacturerCode Ver.: always * @param attributeId Ver.: always */ -bool emberAfAttributeWriteAccessCallback(uint8_t endpoint, EmberAfClusterId clusterId, uint16_t manufacturerCode, - uint16_t attributeId); -/** @brief Clear Report Table - * - * This function is called by the framework when the application should clear - * the report table. - * - */ -EmberStatus emberAfClearReportTableCallback(void); -/** @brief Cluster Init - * - * This function is called when a specific cluster is initialized. It gives the - * application an opportunity to take care of cluster initialization procedures. - * It is called exactly once for each endpoint where cluster is present. - * - * @param endpoint Ver.: always - * @param clusterId Ver.: always - */ -void emberAfClusterInitCallback(uint8_t endpoint, EmberAfClusterId clusterId); -/** @brief Cluster Security Custom - * - * This callback is fired when determining if APS encryption is required for a - * cluster outside of the specification's required clusters. In other words, - * for the Smart Energy profile this would be a cluster beyond the list that - * normally requires APS encryption. - * - * @param profileId The profile ID Ver.: always - * @param clusterId The cluster ID Ver.: always - * @param incoming Whether this is an incoming or outgoing message. Ver.: - * always - * @param commandId The ZCL command ID being sent/received. Ver.: always - */ -bool emberAfClusterSecurityCustomCallback(EmberAfProfileId profileId, EmberAfClusterId clusterId, bool incoming, uint8_t commandId); -/** @brief Configure Reporting Command - * - * This function is called by the application framework when a Configure - * Reporting command is received from an external device. The Configure - * Reporting command contains a series of attribute reporting configuration - * records. The application should return true if the message was processed or - * false if it was not. - * - * @param cmd Ver.: always - */ -bool emberAfConfigureReportingCommandCallback(const EmberAfClusterCommand * cmd); -/** @brief Configure Reporting Response - * - * This function is called by the application framework when a Configure - * Reporting Response command is received from an external device. The - * application should return true if the message was processed or false if it - * was not. - * - * @param clusterId The cluster identifier of this response. Ver.: always - * @param buffer Buffer containing the list of attribute status records. Ver.: - * always - * @param bufLen The length in bytes of the list. Ver.: always - */ -bool emberAfConfigureReportingResponseCallback(EmberAfClusterId clusterId, uint8_t * buffer, uint16_t bufLen); +bool emberAfAttributeWriteAccessCallback(chip::EndpointId endpoint, chip::ClusterId clusterId, uint16_t manufacturerCode, + chip::AttributeId attributeId); + /** @brief Default Response * * This function is called by the application framework when a Default Response @@ -191,7 +240,8 @@ bool emberAfConfigureReportingResponseCallback(EmberAfClusterId clusterId, uint8 * @param status Specifies either SUCCESS or the nature of the error that was * detected in the received command. Ver.: always */ -bool emberAfDefaultResponseCallback(EmberAfClusterId clusterId, uint8_t commandId, EmberAfStatus status); +bool emberAfDefaultResponseCallback(chip::ClusterId clusterId, chip::CommandId commandId, EmberAfStatus status); + /** @brief Discover Attributes Response * * This function is called by the application framework when a Discover @@ -212,8 +262,9 @@ bool emberAfDefaultResponseCallback(EmberAfClusterId clusterId, uint8_t commandI * @param extended Indicates whether the response is in the extended format or * not. Ver.: always */ -bool emberAfDiscoverAttributesResponseCallback(EmberAfClusterId clusterId, bool discoveryComplete, uint8_t * buffer, - uint16_t bufLen, bool extended); +bool emberAfDiscoverAttributesResponseCallback(chip::ClusterId clusterId, bool discoveryComplete, uint8_t * buffer, uint16_t bufLen, + bool extended); + /** @brief Discover Commands Generated Response * * This function is called by the framework when Discover Commands Generated @@ -228,8 +279,9 @@ bool emberAfDiscoverAttributesResponseCallback(EmberAfClusterId clusterId, bool * @param commandIdCount The length of bytes of the list, whish is the same as * the number of identifiers. Ver.: always */ -bool emberAfDiscoverCommandsGeneratedResponseCallback(EmberAfClusterId clusterId, uint16_t manufacturerCode, bool discoveryComplete, - uint8_t * commandIds, uint16_t commandIdCount); +bool emberAfDiscoverCommandsGeneratedResponseCallback(chip::ClusterId clusterId, uint16_t manufacturerCode, bool discoveryComplete, + chip::CommandId * commandIds, uint16_t commandIdCount); + /** @brief Discover Commands Received Response * * This function is called by the framework when Discover Commands Received @@ -244,39 +296,118 @@ bool emberAfDiscoverCommandsGeneratedResponseCallback(EmberAfClusterId clusterId * @param commandIdCount The length of bytes of the list, whish is the same as * the number of identifiers. Ver.: always */ -bool emberAfDiscoverCommandsReceivedResponseCallback(EmberAfClusterId clusterId, uint16_t manufacturerCode, bool discoveryComplete, - uint8_t * commandIds, uint16_t commandIdCount); -/** @brief Eeprom Init +bool emberAfDiscoverCommandsReceivedResponseCallback(chip::ClusterId clusterId, uint16_t manufacturerCode, bool discoveryComplete, + chip::CommandId * commandIds, uint16_t commandIdCount); + +/** @brief Pre Command Received + * + * This callback is the second in the Application Framework's message processing + * chain. At this point in the processing of incoming over-the-air messages, the + * application has determined that the incoming message is a ZCL command. It + * parses enough of the message to populate an EmberAfClusterCommand struct. The + * Application Framework defines this struct value in a local scope to the + * command processing but also makes it available through a global pointer + * called emberAfCurrentCommand, in app/framework/util/util.c. When command + * processing is complete, this pointer is cleared. + * + * @param cmd Ver.: always + */ +bool emberAfPreCommandReceivedCallback(EmberAfClusterCommand * cmd); + +/** @brief Pre Message Send + * + * This function is called by the framework when it is about to pass a message + * to the stack primitives for sending. This message may or may not be ZCL, + * ZDO, or some other protocol. This is called prior to + any ZigBee + * fragmentation that may be done. If the function returns true it is assumed + * the callback has consumed and processed the message. The callback must also + * set the EmberStatus status code to be passed back to the caller. The + * framework will do no further processing on the message. + If the + * function returns false then it is assumed that the callback has not processed + * the mesasge and the framework will continue to process accordingly. + * + * @param messageStruct The structure containing the parameters of the APS + * message to be sent. Ver.: always + * @param status A pointer to the status code value that will be returned to the + * caller. Ver.: always + */ +bool emberAfPreMessageSendCallback(EmberAfMessageStruct * messageStruct, EmberStatus * status); + +/** @brief Message Sent * - * Tells the system to initialize the EEPROM if it is not already initialized. + * This function is called by the application framework from the message sent + * handler, when it is informed by the stack regarding the message sent status. + * All of the values passed to the emberMessageSentHandler are passed on to this + * callback. This provides an opportunity for the application to verify that its + * message has been sent successfully and take the appropriate action. This + * callback should return a bool value of true or false. A value of true + * indicates that the message sent notification has been handled and should not + * be handled by the application framework. * + * @param type Ver.: always + * @param indexOrDestination Ver.: always + * @param apsFrame Ver.: always + * @param msgLen Ver.: always + * @param message Ver.: always + * @param status Ver.: always */ -void emberAfEepromInitCallback(void); -/** @brief Eeprom Note Initialized State +bool emberAfMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, EmberApsFrame * apsFrame, + uint16_t msgLen, uint8_t * message, EmberStatus status); + +/** @brief Pre Attribute Change * - * Records the state of the EEPROM so that an intelligent driver (like the - * EEPROM plugin) can re-initialize the driver prior to any calls to it. + * This function is called by the application framework before it changes an + * attribute value. The value passed into this callback is the value to which + * the attribute is to be set by the framework. The application should return + * ::EMBER_ZCL_STATUS_SUCCESS to permit the change or any other ::EmberAfStatus + * to reject it. * - * @param state The state of the EEPROM, false=re-initalization needed, - * true=no-re-init needed Ver.: always + * @param endpoint Ver.: always + * @param clusterId Ver.: always + * @param attributeId Ver.: always + * @param mask Ver.: always + * @param manufacturerCode Ver.: always + * @param type Ver.: always + * @param size Ver.: always + * @param value Ver.: always */ -void emberAfEepromNoteInitializedStateCallback(bool state); -/** @brief Eeprom Shutdown +EmberAfStatus emberAfPreAttributeChangeCallback(chip::EndpointId endpoint, chip::ClusterId clusterId, chip::AttributeId attributeId, + uint8_t mask, uint16_t manufacturerCode, uint8_t type, uint8_t size, + uint8_t * value); + +/** @brief Post Attribute Change * - * Tells the system to shutdown the EEPROM if it is not already shutdown. + * This function is called by the application framework after it changes an + * attribute value. The value passed into this callback is the value to which + * the attribute was set by the framework. * + * @param endpoint Ver.: always + * @param clusterId Ver.: always + * @param attributeId Ver.: always + * @param mask Ver.: always + * @param manufacturerCode Ver.: always + * @param type Ver.: always + * @param size Ver.: always + * @param value Ver.: always */ -void emberAfEepromShutdownCallback(void); -/** @brief Energy Scan Result +void emberAfPostAttributeChangeCallback(chip::EndpointId endpoint, chip::ClusterId clusterId, chip::AttributeId attributeId, + uint8_t mask, uint16_t manufacturerCode, uint8_t type, uint8_t size, uint8_t * value); + +/** @brief Read Attributes Response * - * This is called by the low-level stack code when an 802.15.4 energy scan - * completes. + * This function is called by the application framework when a Read Attributes + * Response command is received from an external device. The application should + * return true if the message was processed or false if it was not. * - * @param channel The channel where the energy scan took place. Ver.: always - * @param rssi The receive signal strength indicator for the channel. Ver.: - * always + * @param clusterId The cluster identifier of this response. Ver.: always + * @param buffer Buffer containing the list of read attribute status records. + * Ver.: always + * @param bufLen The length in bytes of the list. Ver.: always */ -void emberAfEnergyScanResultCallback(uint8_t channel, int8_t rssi); +bool emberAfReadAttributesResponseCallback(chip::ClusterId clusterId, uint8_t * buffer, uint16_t bufLen); + /** @brief External Attribute Read * * Like emberAfExternalAttributeWriteCallback above, this function is called @@ -313,9 +444,23 @@ void emberAfEnergyScanResultCallback(uint8_t channel, int8_t rssi); * @param buffer Ver.: always * @param maxReadLength Ver.: always */ -EmberAfStatus emberAfExternalAttributeReadCallback(uint8_t endpoint, EmberAfClusterId clusterId, +EmberAfStatus emberAfExternalAttributeReadCallback(chip::EndpointId endpoint, chip::ClusterId clusterId, EmberAfAttributeMetadata * attributeMetadata, uint16_t manufacturerCode, uint8_t * buffer, uint16_t maxReadLength); + +/** @brief Write Attributes Response + * + * This function is called by the application framework when a Write Attributes + * Response command is received from an external device. The application should + * return true if the message was processed or false if it was not. + * + * @param clusterId The cluster identifier of this response. Ver.: always + * @param buffer Buffer containing the list of write attribute status records. + * Ver.: always + * @param bufLen The length in bytes of the list. Ver.: always + */ +bool emberAfWriteAttributesResponseCallback(chip::ClusterId clusterId, uint8_t * buffer, uint16_t bufLen); + /** @brief External Attribute Write * * This function is called whenever the Application Framework needs to write an @@ -362,131 +507,42 @@ EmberAfStatus emberAfExternalAttributeReadCallback(uint8_t endpoint, EmberAfClus * @param manufacturerCode Ver.: always * @param buffer Ver.: always */ -EmberAfStatus emberAfExternalAttributeWriteCallback(uint8_t endpoint, EmberAfClusterId clusterId, +EmberAfStatus emberAfExternalAttributeWriteCallback(chip::EndpointId endpoint, chip::ClusterId clusterId, EmberAfAttributeMetadata * attributeMetadata, uint16_t manufacturerCode, uint8_t * buffer); -/** @brief Find Unused Pan Id And Form + +/** @brief Report Attributes * - * This function is called by the framework to search for an unused PAN id and - * form a new network. The application should return EMBER_SUCCESS if the - * operation was initiated successfully. + * This function is called by the application framework when a Report Attributes + * command is received from an external device. The application should return + * true if the message was processed or false if it was not. * + * @param clusterId The cluster identifier of this command. Ver.: always + * @param buffer Buffer containing the list of attribute report records. Ver.: + * always + * @param bufLen The length in bytes of the list. Ver.: always */ -EmberStatus emberAfFindUnusedPanIdAndFormCallback(void); -/** @brief Get Current App Tasks +bool emberAfReportAttributesCallback(chip::ClusterId clusterId, uint8_t * buffer, uint16_t bufLen); + +/** @brief Get Current Time * - * This function is only useful to sleepy end devices. This function will - * return the set of tasks the application has outstanding. These tasks affect - * how the application behaves with regard to sleeping and polling. + * This callback is called when device attempts to get current time from the + * hardware. If this device has means to retrieve exact time, then this method + * should implement it. If the callback can't provide the exact time it should + * return 0 to indicate failure. Default action is to return 0, which indicates + * that device does not have access to real time. * */ -EmberAfApplicationTask emberAfGetCurrentAppTasksCallback(void); -/** @brief Get Current Poll Control +uint32_t emberAfGetCurrentTimeCallback(); + +/** @brief Get Endpoint Info * - * This function will retrieve the current poll control that the system is using - * for the current network. This is determined by examining all the scheduled - * events and obtaining the most restrictive poll control context across all - * events. The most restrictive poll control is EMBER_AF_SHORT_POLL followed by - * EMBER_AF_LONG_POLL. - * - */ -EmberAfEventPollControl emberAfGetCurrentPollControlCallback(void); -/** @brief Get Current Poll Interval Ms - * - * This function is only useful to end devices. This function will return the - * current poll interval (in milliseconds) for the current network. This - * interval is the maximum amount of time a child is currently waiting between - * polls of its parent. - * - */ -uint32_t emberAfGetCurrentPollIntervalMsCallback(void); -/** @brief Get Current Poll Interval Qs - * - * This function is only useful to end devices. This function will return the - * current poll interval (in quarter seconds) for the current network. This - * interval is the maximum amount of time a child is currently waiting between - * polls of its parent. - * - */ -uint32_t emberAfGetCurrentPollIntervalQsCallback(void); -/** @brief Get Current Sleep Control - * - * This function will retrieve the current sleep control that the system is - * using. This is determined by examining all the scheduled events and - * obtaining the most restrictive sleep control context across all events. The - * most restrictive sleep control is EMBER_AF_STAY_AWAKE followed by - * EMBER_AF_OK_TO_SLEEP. - * - */ -EmberAfEventSleepControl emberAfGetCurrentSleepControlCallback(void); -/** @brief Get Current Time - * - * This callback is called when device attempts to get current time from the - * hardware. If this device has means to retrieve exact time, then this method - * should implement it. If the callback can't provide the exact time it should - * return 0 to indicate failure. Default action is to return 0, which indicates - * that device does not have access to real time. - * - */ -uint32_t emberAfGetCurrentTimeCallback(void); -/** @brief Get Default Poll Control - * - * This function will retrieve the default poll control for the current network - * as previously set by emberAfSetDefaultPollControlCallback(). The default - * poll control will limit whether the network can long poll. - * - */ -EmberAfEventPollControl emberAfGetDefaultPollControlCallback(void); -/** @brief Get Default Sleep Control - * - * This function will retrieve the default sleep control the system is using as - * previously set by emberAfSetDefaultSleepControlCallback(). The default sleep - * control will limit whether the device can sleep. - * - */ -EmberAfEventSleepControl emberAfGetDefaultSleepControlCallback(void); -/** @brief Get Endpoint By Index - * - * Get the endpoint number based on the passed index. By default the framework - * handles this by managing endpoints based on the precompiled configuration - * defined in AppBuilder. This callback can override this behavior at runtime - * and provide additional endpoints or different data than the compiled values. - * If the index is overridden than the callback shall return true and set the - * endpointReturn parameter accordingly. A value of 0xFF means the endpoint - * doesn't exist at that index. - Otherwise false must be returned by the - * callback and the default framework behavior will be executed. This is only - * applicable to the SOC devices. - * - * @param index The index of the endpoint. Ver.: always - * @param endpointReturn The value of endpoint. Ver.: always - */ -bool emberAfGetEndpointByIndexCallback(uint8_t index, uint8_t * endpointReturn); -/** @brief Get Endpoint Description - * - * This callback is called by the framework whenever it receives a ZDO request - * to enumerate the details about an endpoint. By default the framework - * provides the information based on the precompiled endpoint information as - * defined in AppBuilder. This callback can override that behavior at runtime - * and return different information. If the endpoint information is being - * overridden then the callback must return true. Otherwise it should return - * false, which allows the framework to perform its default behavior. This is - * only applicable to SOC devices. - * - * @param endpoint The endpoint number that is being queried. Ver.: always - * @param result This is a pointer to a data structure where the endpoint - * information is written if the callback is providing the information. Ver.: - * always - */ -bool emberAfGetEndpointDescriptionCallback(uint8_t endpoint, EmberEndpointDescription * result); -/** @brief Get Endpoint Info - * - * This function is a callback to an application implemented endpoint that - * operates outside the normal application framework. When the framework wishes - * to perform operations with that endpoint it uses this callback to retrieve - * the endpoint's information. If the endpoint exists and the application can - * provide data then true shall be returned. Otherwise the callback must return - * false. + * This function is a callback to an application implemented endpoint that + * operates outside the normal application framework. When the framework wishes + * to perform operations with that endpoint it uses this callback to retrieve + * the endpoint's information. If the endpoint exists and the application can + * provide data then true shall be returned. Otherwise the callback must return + * false. * * @param endpoint The endpoint to retrieve data for. Ver.: always * @param returnNetworkIndex The index corresponding to the ZigBee network the @@ -496,53 +552,9 @@ bool emberAfGetEndpointDescriptionCallback(uint8_t endpoint, EmberEndpointDescri * @param returnEndpointInfo A pointer to a data struct that will be written * with information about the endpoint. Ver.: always */ -bool emberAfGetEndpointInfoCallback(uint8_t endpoint, uint8_t * returnNetworkIndex, EmberAfEndpointInfoStruct * returnEndpointInfo); -/** @brief Get Form And Join Extended Pan Id - * - * This callback is called by the framework to get the extended PAN ID used by - * the current network for forming and joining. The extended PAN ID used for - * forming and joining is not necessarily the same extended PAN ID actually in - * use on the network. - * - * @param resultLocation Ver.: always - */ -void emberAfGetFormAndJoinExtendedPanIdCallback(uint8_t * resultLocation); -/** @brief Get Long Poll Interval Ms - * - * This function is only useful to end devices. This function will return the - * long poll interval (in milliseconds) for the current network. This interval - * is the maximum amount of time a child will wait between polls of its parent - * when it is not expecting data. - * - */ -uint32_t emberAfGetLongPollIntervalMsCallback(void); -/** @brief Get Long Poll Interval Qs - * - * This function is only useful to end devices. This function will return the - * long poll interval (in quarter seconds) for the current network. This - * interval is the maximum amount of time a child will wait between polls of its - * parent when it is not expecting data. - * - */ -uint32_t emberAfGetLongPollIntervalQsCallback(void); -/** @brief Get Short Poll Interval Ms - * - * This function is only useful to sleepy end devices. This function will - * return the short poll interval (in milliseconds) for the current network. - * This interval is the maximum amount of time a child will wait between polls - * of its parent when it is expecting data. - * - */ -uint16_t emberAfGetShortPollIntervalMsCallback(void); -/** @brief Get Short Poll Interval Qs - * - * This function is only useful to sleepy end devices. This function will - * return the short poll interval (in quarter seconds) for the current network. - * This interval is the maximum amount of time a child will wait between polls - * of its parent when it is expecting data. - * - */ -uint16_t emberAfGetShortPollIntervalQsCallback(void); +bool emberAfGetEndpointInfoCallback(chip::EndpointId endpoint, uint8_t * returnNetworkIndex, + EmberAfEndpointInfoStruct * returnEndpointInfo); + /** @brief Get Source Route Overhead * * This function is called by the framework to determine the overhead required @@ -551,128 +563,15 @@ uint16_t emberAfGetShortPollIntervalQsCallback(void); * @param destination The node id of the destination Ver.: always */ uint8_t emberAfGetSourceRouteOverheadCallback(EmberNodeId destination); -/** @brief Get Wake Timeout Bitmask - * - * This function is only useful to sleepy end devices. This function will - * return the wake timeout bitmask for the current network. The bitmask - * determines which tasks will timeout automatically and which tasks require - * manual removal from the task list. - * - */ -EmberAfApplicationTask emberAfGetWakeTimeoutBitmaskCallback(void); -/** @brief Get Wake Timeout Ms - * - * This function is only useful to sleepy end devices. This function will - * return the wake timeout (in milliseconds) for the current network. This - * timeout is the maximum amount of time a child will wait for a task in the - * wake bitmask to finish. While waiting, the device will short poll. - * - */ -uint16_t emberAfGetWakeTimeoutMsCallback(void); -/** @brief Get Wake Timeout Qs - * - * This function is only useful to sleepy end devices. This function will - * return the wake timeout (in quarter seconds) for the current network. This - * timeout is the maximum amount of time a child will wait for a task in the - * wake bitmask to finish. While waiting, the device will short poll. - * - */ -uint16_t emberAfGetWakeTimeoutQsCallback(void); -/** @brief Hal Button Isr - * - * This callback is called by the framework whenever a button is pressed on the - * device. This callback is called within ISR context. - * - * @param button The button which has changed state, either BUTTON0 or BUTTON1 - * as defined in the appropriate BOARD_HEADER. Ver.: always - * @param state The new state of the button referenced by the button parameter, - * either ::BUTTON_PRESSED if the button has been pressed or ::BUTTON_RELEASED - * if the button has been released. Ver.: always - */ -void emberAfHalButtonIsrCallback(uint8_t button, uint8_t state); -/** @brief Incoming Packet Filter - * - * ** REQUIRES INCLUDING THE PACKET-HANDOFF PLUGIN ** - - This is called by - * the Packet Handoff plugin when the stack receives a packet from one of the - * protocol layers specified in ::EmberZigbeePacketType. - The packetType - * argument is one of the values of the ::EmberZigbeePacketType enum. If the - * stack receives an 802.15.4 MAC beacon, it will call this function with the - * packetType argument set to ::EMBER_ZIGBEE_PACKET_TYPE_BEACON. - - The - * implementation of this callback may alter the data contained in packetData, - * modify options and flags in the auxillary data, or consume the packet itself, - * either sending the message, or discarding it as it sees fit. - * - * @param packetType the type of packet and associated protocol layer Ver.: - * always - * @param packetData flat buffer containing the packet data associated with the - * packet type Ver.: always - * @param size_p a pointer containing the size value of the packet Ver.: always - * @param data auxillary data included with the packet Ver.: always - */ -EmberPacketAction emberAfIncomingPacketFilterCallback(EmberZigbeePacketType packetType, uint8_t * packetData, uint8_t * size_p, - void * data); -/** @brief Initiate Inter Pan Key Establishment - * - * This function is called by the framework to initiate key establishment with a - * remote device on a different PAN. The application should return - * EMBER_SUCCESS if key establishment was initiated successfully. The - * application should call ::emberAfInterPanKeyEstablishmentCallback as events - * occur. - * - * @param panId The PAN id of the remote device. Ver.: always - * @param eui64 The EUI64 of the remote device. Ver.: always - */ -EmberStatus emberAfInitiateInterPanKeyEstablishmentCallback(EmberPanId panId, const EmberEUI64 eui64); -/** @brief Initiate Key Establishment - * - * This function is called by the framework to initiate key establishment with a - * remote device. The application should return EMBER_SUCCESS if key - * establishment was initiated successfully. The application should call - * ::emberAfKeyEstablishmentCallback as events occur. - * - * @param nodeId The node id of the remote device. Ver.: always - * @param endpoint The endpoint on the remote device. Ver.: always - */ -EmberStatus emberAfInitiateKeyEstablishmentCallback(EmberNodeId nodeId, uint8_t endpoint); -/** @brief Initiate Partner Link Key Exchange - * - * This function is called by the framework to initiate a partner link key - * exchange with a remote device. The application should return EMBER_SUCCESS - * if the partner link key exchange was initiated successfully. When the - * partner link key exchange completes, the application should call the given - * callback. - * - * @param target The node id of the remote device. Ver.: always - * @param endpoint The key establishment endpoint of the remote device. Ver.: - * always - * @param callback The callback that should be called when the partner link key - * exchange completse. Ver.: always - */ -EmberStatus emberAfInitiatePartnerLinkKeyExchangeCallback(EmberNodeId target, uint8_t endpoint, - EmberAfPartnerLinkKeyExchangeCallback * callback); -/** @brief Inter Pan Key Establishment +/** @brief Registration Abort * - * A callback by the key-establishment code to indicate an event has occurred. - * For error codes this is purely a notification. For non-error status codes - * (besides LINK_KEY_ESTABLISHED), it is the application's chance to allow or - * disallow the operation. If the application returns true then the key - * establishment is allowed to proceed. If it returns false, then key - * establishment is aborted. LINK_KEY_ESTABLISHED is a notification of success. + * This callback is called when the device should abort the registration + * process. * - * @param status Ver.: always - * @param amInitiator Ver.: always - * @param panId Ver.: always - * @param eui64 Ver.: always - * @param delayInSeconds Ver.: always */ -bool emberAfInterPanKeyEstablishmentCallback(EmberAfKeyEstablishmentNotifyMessage status, bool amInitiator, EmberPanId panId, - const EmberEUI64 eui64, uint8_t delayInSeconds); +void emberAfRegistrationAbortCallback(); + /** @brief Interpan Send Message * * This function will send a raw MAC message with interpan frame format using @@ -684,23115 +583,11 @@ bool emberAfInterPanKeyEstablishmentCallback(EmberAfKeyEstablishmentNotifyMessag * @param message The message data received or to send. Ver.: always */ EmberStatus emberAfInterpanSendMessageCallback(EmberAfInterpanHeader * header, uint16_t messageLength, uint8_t * message); -/** @brief Key Establishment - * - * A callback by the key-establishment code to indicate an event has occurred. - * For error codes this is purely a notification. For non-error status codes - * (besides LINK_KEY_ESTABLISHED), it is the application's chance to allow or - * disallow the operation. If the application returns true then the key - * establishment is allowed to proceed. If it returns false, then key - * establishment is aborted. LINK_KEY_ESTABLISHED is a notification of success. - * - * @param status Ver.: always - * @param amInitiator Ver.: always - * @param partnerShortId Ver.: always - * @param delayInSeconds Ver.: always - */ -bool emberAfKeyEstablishmentCallback(EmberAfKeyEstablishmentNotifyMessage status, bool amInitiator, EmberNodeId partnerShortId, - uint8_t delayInSeconds); -/** @brief Main Init - * - * This function is called from the application's main function. It gives the - * application a chance to do any initialization required at system startup. Any - * code that you would normally put into the top of the application's main() - * routine should be put into this function. This is called before the clusters, - * plugins, and the network are initialized so some functionality is not yet - * available. - Note: No callback in the Application Framework is - * associated with resource cleanup. If you are implementing your application on - * a Unix host where resource cleanup is a consideration, we expect that you - * will use the standard Posix system calls, including the use of atexit() and - * handlers for signals such as SIGTERM, SIGINT, SIGCHLD, SIGPIPE and so on. If - * you use the signal() function to register your signal handler, please mind - * the returned value which may be an Application Framework function. If the - * return value is non-null, please make sure that you call the returned - * function from your handler to avoid negating the resource cleanup of the - * Application Framework itself. - * - */ -void emberAfMainInitCallback(void); -/** @brief Main Start - * - * This function is called at the start of main after the HAL has been - * initialized. The standard main function arguments of argc and argv are - * passed in. However not all platforms have support for main() function - * arguments. Those that do not are passed NULL for argv, therefore argv should - * be checked for NULL before using it. If the callback determines that the - * program must exit, it should return true. The value returned by main() will - * be the value written to the returnCode pointer. Otherwise the callback - * should return false to let normal execution continue. - * - * @param returnCode Ver.: always - * @param argc Ver.: always - * @param argv Ver.: always - */ -bool emberAfMainStartCallback(int * returnCode, int argc, char ** argv); -/** @brief Main Tick - * - * Whenever main application tick is called, this callback will be called at the - * end of the main tick execution. - * - */ -void emberAfMainTickCallback(void); -/** @brief Mark Buffers - * - * This function is called when the garbage collector runs. Any buffers held by - * the application must be marked. - * - */ -void emberAfMarkBuffersCallback(void); -/** @brief Message Sent - * - * This function is called by the application framework from the message sent - * handler, when it is informed by the stack regarding the message sent status. - * All of the values passed to the emberMessageSentHandler are passed on to this - * callback. This provides an opportunity for the application to verify that its - * message has been sent successfully and take the appropriate action. This - * callback should return a bool value of true or false. A value of true - * indicates that the message sent notification has been handled and should not - * be handled by the application framework. - * - * @param type Ver.: always - * @param indexOrDestination Ver.: always - * @param apsFrame Ver.: always - * @param msgLen Ver.: always - * @param message Ver.: always - * @param status Ver.: always - */ -bool emberAfMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, EmberApsFrame * apsFrame, - uint16_t msgLen, uint8_t * message, EmberStatus status); -/** @brief Ncp Init - * - * This function is called when the network coprocessor is being initialized, - * either at startup or upon reset. It provides applications on opportunity to - * perform additional configuration of the NCP. The function is always called - * twice when the NCP is initialized. In the first invocation, memoryAllocation - * will be true and the application should only issue EZSP commands that affect - * memory allocation on the NCP. For example, tables on the NCP can be resized - * in the first call. In the second invocation, memoryAllocation will be false - * and the application should only issue EZSP commands that do not affect memory - * allocation. For example, tables on the NCP can be populated in the second - * call. This callback is not called on SoCs. - * - * @param memoryAllocation Ver.: always - */ -void emberAfNcpInitCallback(bool memoryAllocation); -/** @brief Ncp Is Awake Isr - * - * This function is called IN ISR CONTEXT. It notes that the NCP is awake after - * sleeping. Care should be taken to do minimal processing in this ISR handler - * function. - * - */ -void emberAfNcpIsAwakeIsrCallback(void); -/** @brief Network Found - * - * This callback is generated when an active scan finds a 802.15.4 network. - * - * @param networkFound A struct containing information about the network found. - * Ver.: always - * @param lqi The link quality indication of the network found. Ver.: always - * @param rssi The received signal strength indication of the network found. - * Ver.: always - */ -void emberAfNetworkFoundCallback(EmberZigbeeNetwork * networkFound, uint8_t lqi, int8_t rssi); -/** @brief Network Key Update Complete - * - * This is called by the framework when a network key update operation started - * by the trust center is complete. - * - * @param status Ver.: always - */ -void emberAfNetworkKeyUpdateCompleteCallback(EmberStatus status); -/** @brief Ota Bootload - * - * The platform specific routine to bootload the device from a ZigBee - * over-the-air upgrade file. - * - * @param id A pointer to the structure that contains the information about what - * OTA image to bootload. Ver.: always - * @param ncpUpgradeTagId The tag ID of the upgrade data that will be used to - * bootload the device. Ver.: always - */ -uint8_t emberAfOtaBootloadCallback(const EmberAfOtaImageId * id, uint16_t ncpUpgradeTagId); -/** @brief Ota Client Bootload - * - * This callback is fired when the OTA Client recevies a command to bootload the - * newly downloaded OTA image. This callback will perform the platform specific - * to bootload their device. - * - * @param id This is the identifier relating to the image that has been - * downloaded and is ready for bootload. Ver.: always - */ -void emberAfOtaClientBootloadCallback(const EmberAfOtaImageId * id); -/** @brief Ota Client Custom Verify - * - * This callback is executed by the OTA client after the signature verification - * has successfully completed. It allows the device to do its own custom - * verification of the image (such as verifying that the EBL is intact). - * - * @param newVerification This indicates if a new verification should be - * started. Ver.: always - * @param id This is ID of the image to be verified. Ver.: always - */ -EmberAfImageVerifyStatus emberAfOtaClientCustomVerifyCallback(bool newVerification, const EmberAfOtaImageId * id); -/** @brief Ota Client Download Complete - * - * This callback indicates that the OTA client has completed the download of a - * file. If the file has been completely downloaded and cryptographic checks - * have been turned on, then those will be performed prior to this callback and - * that outcome included in the 'success' result. On failure, this callback is - * merely informative, and the return type is ignored. On succesful download, - * this callback allows the client to perform any additional verification of the - * downloaded image and return that result to the OTA server. - * - * @param success This indicates the success or failure of the download and - * cryptographic verification process (if applicable). Ver.: always - * @param id This is the image identifier information that corresponds to the - * download result. Ver.: always - */ -bool emberAfOtaClientDownloadCompleteCallback(EmberAfOtaDownloadResult success, const EmberAfOtaImageId * id); -/** @brief Ota Client Incoming Message Raw - * - * This callback is for processing incoming messages for the Over-the-air - * bootload cluster client. ZCL will not process the message and instead hand - * the raw over the air data to the callback for its own processing. - * - * @param message A pointer to the structure containing the message buffer and - * other information about it. Ver.: always - */ -bool emberAfOtaClientIncomingMessageRawCallback(EmberAfClusterCommand * message); -/** @brief Ota Client Start - * - * This callback should be called when the profile specific registration has - * completed successfully. It will start the client's state machine that will - * find the OTA server, query it for the next image, download the image, wait - * for the bootload message, and kick off the bootload. - * - */ -void emberAfOtaClientStartCallback(void); -/** @brief Ota Client Version Info - * - * This function is called by the OTA client when a new query will occur to the - * server asking what the next version of firmware is. The client can inform - * the cluster software as to what information to use in the query (and - * subsequent download). - * - * @param currentImageInfo This is the information to use in the next query by - * the client cluster code. It contains the manufacturer ID, image type ID, and - * the firmware version to be specified in the query message sent to the server. - * Ver.: always - * @param hardwareVersion This is a pointer to the hardware version to use in - * the query. If no hardware version should be used, then - * EMBER_AF_INVALID_HARDWARE_VERSION should be used. Ver.: always - */ -void emberAfOtaClientVersionInfoCallback(EmberAfOtaImageId * currentImageInfo, uint16_t * hardwareVersion); -/** @brief Ota Page Request Server Policy - * - * This callback is called by the OTA server page request code when it wants to - * determine if it is allowed for an OTA client to make a page request. It is - * only called if page request support has been enabled on the server. It - * should return EMBER_ZCL_STATUS_SUCCESS if it allows the page request, and - * EMBER_ZCL_STATUS_UNSUP_CLUSTER_COMMAND if it does not want to allow it. - * - */ -uint8_t emberAfOtaPageRequestServerPolicyCallback(void); -/** @brief Ota Server Block Size - * - * This function provides a way for the server to adjust the block size of its - * response to an Image block request by a client. - * - * @param clientNodeId The node Id of OTA client making an image block request. - * Ver.: always - */ -uint8_t emberAfOtaServerBlockSizeCallback(EmberNodeId clientNodeId); -/** @brief Ota Server Incoming Message Raw - * - * This callback is for processing incoming messages for the Over-the-air - * bootload cluster server. ZCL will not process the message and instead hand - * the raw over the air data to the callback for its own processing. - * - * @param message A pointer to the structure containing the message buffer and - * other information about it. Ver.: always - */ -bool emberAfOtaServerIncomingMessageRawCallback(EmberAfClusterCommand * message); -/** @brief Ota Server Query - * - * This callback is fired when the OTA server receives a query request by the - * client. The callback lets the server application indicate to the client what - * the 'next' version of software is for the device, or if there is not one - * available. - * - * @param currentImageId This is the current software image that the client - * hase. Ver.: always - * @param hardwareVersion If this value is non-NULL, it indicates the hardware - * version of the client device. If NULL, the client did not specify a hardware - * version. Ver.: always - * @param nextUpgradeImageId This is a pointer to a data structure containing - * the 'next' software version for the client to download. Ver.: always - */ -uint8_t emberAfOtaServerQueryCallback(const EmberAfOtaImageId * currentImageId, uint16_t * hardwareVersion, - EmberAfOtaImageId * nextUpgradeImageId); -/** @brief Ota Server Send Image Notify - * - * This callback is an indication to the OTA server that it should send out - * notification about an OTA file that is available for download. - * - * @param dest The destination of the image notify message. May be a broadcast - * address. Ver.: always - * @param endpoint The destination endpoint of the image notify message. May be - * a broadcast endpoint. Ver.: always - * @param payloadType The type of data the image notify message will contain. 0 - * = no data. 1 = Manufacturer ID. 2 = Manufacturer ID and the image type ID. - * 3 = Manufacturer ID, image type ID, and firmware version. Ver.: always - * @param queryJitter The percentage of nodes that should respond to this - * message, from 1-100. On receipt of this message, each recipient will - * randomly choose a percentage and only query the server if their percentage is - * below this value. Ver.: always - * @param id The image information that will be put in the message. The data - * within this struct that will be appended to the message is determined by the - * previous 'payloadType' argument. Ver.: always - */ -bool emberAfOtaServerSendImageNotifyCallback(EmberNodeId dest, uint8_t endpoint, uint8_t payloadType, uint8_t queryJitter, - const EmberAfOtaImageId * id); -/** @brief Ota Server Upgrade End Request - * - * This function is called when the OTA server receives a request an upgrade end - * request. If the request indicated a successful download by the client, the - * server must tell the client when and if to upgrade to the downloaded image. - * - * @param source The node ID of the device that sent the upgrade end request. - * Ver.: always - * @param status This is the ZCL status sent by the client indicating the result - * of its attempt to download the new upgrade image. If the status is not - * EMBER_ZCL_STATUS_SUCCESS then this callback is merely informative and no - * response mesasge will be generated by the server. Ver.: always - * @param returnValue If the server returns true indicating that the client - * should apply the upgrade, this time value indicates when in the future the - * client should apply the upgrade. Ver.: always - * @param imageId This variable indicates the software version that the client - * successfully downloaded and is asking to upgrade to. Ver.: always - */ -bool emberAfOtaServerUpgradeEndRequestCallback(EmberNodeId source, uint8_t status, uint32_t * returnValue, - const EmberAfOtaImageId * imageId); -/** @brief Ota Storage Check Temp Data - * - * This callback will validate temporary data in the storage device to determine - * whether it is a complete file, a partially downloaded file, or there is no - * file present. When a complete or partial file is found it will return - * EMBER_AF_OTA_STORAGE_SUCCESS or EMBER_AF_OTA_STORAGE_PARTIAL_FILE_FOUND, - * respectively. In that case, the currentOffset, totalImageSize, and - * newFileInfo will be populated with data. When EMBER_AF_OTA_STORAGE_ERROR is - * returned, no temporary data is present. - * - * @param currentOffset A pointer to a value that will be written with the - * offset within the total file size that has been successfully stored in the - * storage device. This will indicate how much data has been currently - * dowloaded. Ver.: always - * @param totalImageSize A pointer to a value that will be written with the - * total image size of the OTA file when a download has completed. This does - * not indicate how much data has actually been downloaded currently. Ver.: - * always - * @param newFileInfo This is the image id of the temporary file data stored in - * the storage device. Ver.: always - */ -EmberAfOtaStorageStatus emberAfOtaStorageCheckTempDataCallback(uint32_t * currentOffset, uint32_t * totalImageSize, - EmberAfOtaImageId * newFileInfo); -/** @brief Ota Storage Clear Temp Data - * - * This function clears any existing temp data that was downloaed. It is used - * immediately prior to downloading a raw image over the air. - * - */ -EmberAfOtaStorageStatus emberAfOtaStorageClearTempDataCallback(void); -/** @brief Ota Storage Close - * - * This callback shuts down the ZigBee Over-the-air storage module. - * - */ -void emberAfOtaStorageCloseCallback(void); -/** @brief Ota Storage Driver Download Finish - * - * This callback defines the low-level means by which a device records the final - * offset value of the download image. - * - * @param offset The value of the final offset of the image download. Ver.: - * always - */ -void emberAfOtaStorageDriverDownloadFinishCallback(uint32_t offset); -/** @brief Ota Storage Driver Init - * - * The initialization code for the OTA storage driver. - * - */ -bool emberAfOtaStorageDriverInitCallback(void); -/** @brief Ota Storage Driver Invalidate Image - * - * This callback invalidates the image stored on disk so that it will not be - * bootloaded, and it will not be a valid image that is in the middle of - * downloading. - * - */ -EmberAfOtaStorageStatus emberAfOtaStorageDriverInvalidateImageCallback(void); -/** @brief Ota Storage Driver Prepare To Resume Download - * - * This callback allows the underlying storage driver to prepare to resume the - * OTA file download. For example, the driver may exceute a page erase to - * insure the next page is ready to be written to. - * - */ -EmberAfOtaStorageStatus emberAfOtaStorageDriverPrepareToResumeDownloadCallback(void); -/** @brief Ota Storage Driver Read - * - * This callback defines the low-level means by which a device reads from the - * OTA storage device. - * - * @param offset The address offset from the start of the storage device where - * data is to be read. Ver.: always - * @param length The length of the data to be read from the storage device. - * Ver.: always - * @param returnData A pointer where the data read from the device should be - * written to. Ver.: always - */ -bool emberAfOtaStorageDriverReadCallback(uint32_t offset, uint32_t length, uint8_t * returnData); -/** @brief Ota Storage Driver Retrieve Last Stored Offset - * - * This callback defines the low-level means by which a device retrieves the - * last persistently recorded download offset. This may be different than last - * actual download offset. - * - */ -uint32_t emberAfOtaStorageDriverRetrieveLastStoredOffsetCallback(void); -/** @brief Ota Storage Driver Write - * - * This callback defines the low-level means by which a device reads from the - * OTA storage device. - * - * @param dataToWrite A pointer to the data that will be written to the storage - * device. Ver.: always - * @param offset The address offset from the start of the storage device where - * data will be written. Ver.: always - * @param length The length of the data to be written to the storage device. - * Ver.: always - */ -bool emberAfOtaStorageDriverWriteCallback(const uint8_t * dataToWrite, uint32_t offset, uint32_t length); -/** @brief Ota Storage Finish Download - * - * This function indicates to the storage module that the download has finished. - * - * @param offset The final offset of the downloaded file (i.e. the total size) - * Ver.: always - */ -EmberAfOtaStorageStatus emberAfOtaStorageFinishDownloadCallback(uint32_t offset); -/** @brief Ota Storage Get Count - * - * This callback returns the total number of ZigBee Over-the-air upgrade images - * stored in the storage module. - * - */ -uint8_t emberAfOtaStorageGetCountCallback(void); -/** @brief Ota Storage Get Full Header - * - * This callback populates the EmberAfOtaHeader structure pointed to by the - * returnData with data about the OTA file stored in the storage module. - * - * @param id This is a pointer to the image id for the OTA file to retrieve - * information about. Ver.: always - * @param returnData This is a pointer to the location of the structure that - * will be populated with data. Ver.: always - */ -EmberAfOtaStorageStatus emberAfOtaStorageGetFullHeaderCallback(const EmberAfOtaImageId * id, EmberAfOtaHeader * returnData); -/** @brief Ota Storage Get Total Image Size - * - * This function returns the total size of the ZigBee Over-the-air file with the - * passed parameters. If no file is found with those parameters, 0 is returned. - * - * @param id A pointer to the image identifier for the OTA file to retrieve - * information for. Ver.: always - */ -uint32_t emberAfOtaStorageGetTotalImageSizeCallback(const EmberAfOtaImageId * id); -/** @brief Ota Storage Init - * - * This callback initializes the ZigBee Over-the-air storage module. - * - */ -EmberAfOtaStorageStatus emberAfOtaStorageInitCallback(void); -/** @brief Ota Storage Iterator First - * - * This callback lets you walk through the list of all OTA files by jumping to - * the first file in the list maintained by the storage module. If there is no - * file then emberAfOtaInvalidImageId is returned. - * - */ -EmberAfOtaImageId emberAfOtaStorageIteratorFirstCallback(void); -/** @brief Ota Storage Iterator Next - * - * This callback lets you walk through the list of all OTA files by jumping to - * the next file in the list maintained by the storage module. If there is no - * next file then emberAfOtaInvalidImageId is returned. - * - */ -EmberAfOtaImageId emberAfOtaStorageIteratorNextCallback(void); -/** @brief Ota Storage Read Image Data - * - * This callback reads data from the specified OTA file and returns that data to - * the caller. - * - * @param id This is a pointer to the image id for the OTA file to retrieve data - * from. Ver.: always - * @param offset This is the offset relative to the start of the image where the - * data should be read from. Ver.: always - * @param length This is the length of data that will be read. Ver.: always - * @param returnData This is a pointer to where the data read out of the file - * will be written to Ver.: always - * @param returnedLength This is a pointer to a variable where the actual length - * of data read will be written to. A short read may occur if the end of file - * was reached. Ver.: always - */ -EmberAfOtaStorageStatus emberAfOtaStorageReadImageDataCallback(const EmberAfOtaImageId * id, uint32_t offset, uint32_t length, - uint8_t * returnData, uint32_t * returnedLength); -/** @brief Ota Storage Search - * - * This callback searches through the list of all images for one that matches - * the passed parameters. On success an image identifier is returned with a - * matching image. On failure emberAfInvalidImageId is returned. - * - * @param manufacturerId The ZigBee assigned identifier of the manufacturer - * contained in the OTA image being searched for. Ver.: always - * @param imageTypeId The image type identifier contained in the OTA image being - * searched for. Ver.: always - * @param hardwareVersion This is a pointer to the hardware version that will be - * used in the search. If the pointer is NULL, hardware version will not be - * considered when searching for matching images. If it points to a value, the - * search will only consider images where that value falls between the minimum - * and maxmimum hardware version specified in the OTA file. If no hardware - * version is present in an OTA file but the other parameters match, the file - * will be considered a match Ver.: always - */ -EmberAfOtaImageId emberAfOtaStorageSearchCallback(uint16_t manufacturerId, uint16_t imageTypeId, const uint16_t * hardwareVersion); -/** @brief Ota Storage Write Temp Data + +/** @brief Start Move * - * This function writes to the temporary data in the storage device at the - * specified offset. It is used when downloading a raw image over the air. + * This function is called to initiate the process for a device to move (rejoin) + * to a new parent. * - * @param offset The location within the download image file where to write the - * data. Ver.: always - * @param length The length of data to write. Ver.: always - * @param data A pointer to the temporary data that will be written to the - * storage device. Ver.: always */ -EmberAfOtaStorageStatus emberAfOtaStorageWriteTempDataCallback(uint32_t offset, uint32_t length, const uint8_t * data); -/** @brief Outgoing Packet Filter - * - * ** REQUIRES INCLUDING THE PACKET-HANDOFF PLUGIN ** - - This is called by - * the Packet Handoff plugin when the stack prepares to send a packet from one - * of the protocol layers specified in ::EmberZigbeePacketType. - - The - * packetType argument is one of the values of the ::EmberZigbeePacketType enum. - * If the stack receives an 802.15.4 MAC beacon, it will call this function with - * the packetType argument set to ::EMBER_ZIGBEE_PACKET_TYPE_BEACON. - - - * The implementation of this callback may alter the data contained in - * packetData, modify options and flags in the auxillary data, or consume the - * packet itself, either sending the message, or discarding it as it sees fit. - * - * @param packetType the type of packet and associated protocol layer Ver.: - * always - * @param packetData flat buffer containing the packet data associated with the - * packet type Ver.: always - * @param size_p a pointer containing the size value of the packet Ver.: always - * @param data auxillary data included with the packet Ver.: always - */ -EmberPacketAction emberAfOutgoingPacketFilterCallback(EmberZigbeePacketType packetType, uint8_t * packetData, uint8_t * size_p, - void * data); -/** @brief Partner Link Key Exchange Request - * - * This function is called by the framework on SOC platforms when a remote node - * requests a partner link key exchange. The application should return - * EMBER_SUCCESS to accept the request or any other status to reject it. On - * network coprocessor platforms, this function will not be called because the - * NCP handles partner link key exchange requests based on the binding policy. - * - * @param partner The EUI of the remote node. Ver.: always - */ -EmberZdoStatus emberAfPartnerLinkKeyExchangeRequestCallback(EmberEUI64 partner); -/** @brief Partner Link Key Exchange Response - * - * This function is called by the framework when a remote node requests a - * partner link key exchange. The application should return true to accept the - * request or false to reject it. On network coprocessor platforms, this - * function will not be called because the NCP handles partner link key exchange - * requests based on the binding policy. - * - * @param sender The EUI of the remote node. Ver.: always - * @param status The ZDO response status. Ver.: always - */ -void emberAfPartnerLinkKeyExchangeResponseCallback(EmberNodeId sender, EmberZdoStatus status); -/** @brief Performing Key Establishment - * - * This function is called by the framework to determine if the device is - * performing key establishment. The application should return true if key - * establishment is in progress. - * - */ -bool emberAfPerformingKeyEstablishmentCallback(void); -/** @brief Post Attribute Change - * - * This function is called by the application framework after it changes an - * attribute value. The value passed into this callback is the value to which - * the attribute was set by the framework. - * - * @param endpoint Ver.: always - * @param clusterId Ver.: always - * @param attributeId Ver.: always - * @param mask Ver.: always - * @param manufacturerCode Ver.: always - * @param type Ver.: always - * @param size Ver.: always - * @param value Ver.: always - */ -void emberAfPostAttributeChangeCallback(uint8_t endpoint, EmberAfClusterId clusterId, EmberAfAttributeId attributeId, uint8_t mask, - uint16_t manufacturerCode, uint8_t type, uint8_t size, uint8_t * value); -/** @brief Post Em4 Reset - * - * A callback called by application framework, and implemented by em4 plugin - * - */ -void emberAfPostEm4ResetCallback(void); -/** @brief Pre Attribute Change - * - * This function is called by the application framework before it changes an - * attribute value. The value passed into this callback is the value to which - * the attribute is to be set by the framework. The application should return - * ::EMBER_ZCL_STATUS_SUCCESS to permit the change or any other ::EmberAfStatus - * to reject it. - * - * @param endpoint Ver.: always - * @param clusterId Ver.: always - * @param attributeId Ver.: always - * @param mask Ver.: always - * @param manufacturerCode Ver.: always - * @param type Ver.: always - * @param size Ver.: always - * @param value Ver.: always - */ -EmberAfStatus emberAfPreAttributeChangeCallback(uint8_t endpoint, EmberAfClusterId clusterId, EmberAfAttributeId attributeId, - uint8_t mask, uint16_t manufacturerCode, uint8_t type, uint8_t size, - uint8_t * value); -/** @brief Pre Cli Send - * - * This function is called by the framework when it is about to pass a message - * constructed over CLI to the stack primitives for sending. If the function - * returns true it is assumed that the callback has consumed and processed the - * message. The framework will not do any further processing on the message. - - * If the function returns false then it is assumed that the callback has - * not processed the message and the framework will continue to process - * accordingly. - * - * @param apsFrame The structure containing the APS frame Ver.: always - * @param source Source Node Id Ver.: always - * @param destination Destintion Node Id Ver.: always - * @param message Pointer to the message payload Ver.: always - * @param messageLength Length of the message payload Ver.: always - */ -bool emberAfPreCliSendCallback(EmberApsFrame * apsFrame, EmberNodeId source, EmberNodeId destination, uint8_t * message, - uint16_t messageLength); -/** @brief Pre Command Received - * - * This callback is the second in the Application Framework's message processing - * chain. At this point in the processing of incoming over-the-air messages, the - * application has determined that the incoming message is a ZCL command. It - * parses enough of the message to populate an EmberAfClusterCommand struct. The - * Application Framework defines this struct value in a local scope to the - * command processing but also makes it available through a global pointer - * called emberAfCurrentCommand, in app/framework/util/util.c. When command - * processing is complete, this pointer is cleared. - * - * @param cmd Ver.: always - */ -bool emberAfPreCommandReceivedCallback(EmberAfClusterCommand * cmd); -/** @brief Pre Message Received - * - * This callback is the first in the Application Framework's message processing - * chain. The Application Framework calls it when a message has been received - * over the air but has not yet been parsed by the ZCL command-handling code. If - * you wish to parse some messages that are completely outside the ZCL - * specification or are not handled by the Application Framework's command - * handling code, you should intercept them for parsing in this callback. - - * This callback returns a Boolean value indicating whether or not the message - * has been handled. If the callback returns a value of true, then the - * Application Framework assumes that the message has been handled and it does - * nothing else with it. If the callback returns a value of false, then the - * application framework continues to process the message as it would with any - * incoming message. - Note: This callback receives a pointer to an - * incoming message struct. This struct allows the application framework to - * provide a unified interface between both Host devices, which receive their - * message through the ezspIncomingMessageHandler, and SoC devices, which - * receive their message through emberIncomingMessageHandler. - * - * @param incomingMessage Ver.: always - */ -bool emberAfPreMessageReceivedCallback(EmberAfIncomingMessage * incomingMessage); -/** @brief Pre Message Send - * - * This function is called by the framework when it is about to pass a message - * to the stack primitives for sending. This message may or may not be ZCL, - * ZDO, or some other protocol. This is called prior to - any ZigBee - * fragmentation that may be done. If the function returns true it is assumed - * the callback has consumed and processed the message. The callback must also - * set the EmberStatus status code to be passed back to the caller. The - * framework will do no further processing on the message. - If the - * function returns false then it is assumed that the callback has not processed - * the mesasge and the framework will continue to process accordingly. - * - * @param messageStruct The structure containing the parameters of the APS - * message to be sent. Ver.: always - * @param status A pointer to the status code value that will be returned to the - * caller. Ver.: always - */ -bool emberAfPreMessageSendCallback(EmberAfMessageStruct * messageStruct, EmberStatus * status); -/** @brief Pre Ncp Reset - * - * This function will be called prior to the reset of the NCP by the host. - * - */ -void emberAfPreNcpResetCallback(void); -/** @brief Pre ZDO Message Received - * - * This function passes the application an incoming ZDO message and gives the - * appictation the opportunity to handle it. By default, this callback returns - * false indicating that the incoming ZDO message has not been handled and - * should be handled by the Application Framework. - * - * @param emberNodeId Ver.: always - * @param apsFrame Ver.: always - * @param message Ver.: always - * @param length Ver.: always - */ -bool emberAfPreZDOMessageReceivedCallback(EmberNodeId emberNodeId, EmberApsFrame * apsFrame, uint8_t * message, uint16_t length); -/** @brief Read Attributes Response - * - * This function is called by the application framework when a Read Attributes - * Response command is received from an external device. The application should - * return true if the message was processed or false if it was not. - * - * @param clusterId The cluster identifier of this response. Ver.: always - * @param buffer Buffer containing the list of read attribute status records. - * Ver.: always - * @param bufLen The length in bytes of the list. Ver.: always - */ -bool emberAfReadAttributesResponseCallback(EmberAfClusterId clusterId, uint8_t * buffer, uint16_t bufLen); -/** @brief Read Reporting Configuration Command - * - * This function is called by the application framework when a Read Reporting - * Configuration command is received from an external device. The application - * should return true if the message was processed or false if it was not. - * - * @param cmd Ver.: always - */ -bool emberAfReadReportingConfigurationCommandCallback(const EmberAfClusterCommand * cmd); -/** @brief Read Reporting Configuration Response - * - * This function is called by the application framework when a Read Reporting - * Configuration Response command is received from an external device. The - * application should return true if the message was processed or false if it - * was not. - * - * @param clusterId The cluster identifier of this response. Ver.: always - * @param buffer Buffer containing the list of attribute reporting configuration - * records. Ver.: always - * @param bufLen The length in bytes of the list. Ver.: always - */ -bool emberAfReadReportingConfigurationResponseCallback(EmberAfClusterId clusterId, uint8_t * buffer, uint16_t bufLen); -/** @brief Registration Abort - * - * This callback is called when the device should abort the registration - * process. - * - */ -void emberAfRegistrationAbortCallback(void); -/** @brief Registration - * - * This callback is called when the device joins a network and the process of - * registration is complete. This callback provides a success value of true if - * the registration process was successful and a value of false if registration - * failed. - * - * @param success true if registration succeeded, false otherwise. Ver.: always - */ -void emberAfRegistrationCallback(bool success); -/** @brief Registration Start - * - * This callback is called when the device joins a network and the registration - * process should begin. The application should return EMBER_SUCCESS if the - * registration process started successfully. When registration is complete, - * the application should call emberAfRegistrationCallback with an indication of - * success or failure. - * - */ -EmberStatus emberAfRegistrationStartCallback(void); -/** @brief Remote Delete Binding Permission - * - * This function is called by the framework to request permission to service the - * remote delete binding request. Return EMBER_SUCCESS to allow request, - * anything else to disallow request. - * - * @param index index to an Ember binding table entry Ver.: always - */ -EmberStatus emberAfRemoteDeleteBindingPermissionCallback(uint8_t index); -/** @brief Remote Set Binding Permission - * - * This function is called by the framework to request permission to service the - * remote set binding request. Return EMBER_SUCCESS to allow request, anything - * else to disallow request. - * - * @param entry Ember Binding Tablet Entry Ver.: always - */ -EmberStatus emberAfRemoteSetBindingPermissionCallback(const EmberBindingTableEntry * entry); -/** @brief Remove From Current App Tasks - * - * This function is only useful to sleepy end devices. This function will - * remove the passed item from the set of tasks the application has outstanding - * (e.g. message sent requiring APS acknwoledgement). This will affect how the - * application behaves with regard to sleeping and polling. Removing the item - * from the list of outstanding tasks may allow the device to sleep longer and - * poll less frequently. If there are other outstanding tasks the system may - * still have to stay away and poll more often. - * - * @param tasks Ver.: always - */ -void emberAfRemoveFromCurrentAppTasksCallback(EmberAfApplicationTask tasks); -/** @brief Report Attributes - * - * This function is called by the application framework when a Report Attributes - * command is received from an external device. The application should return - * true if the message was processed or false if it was not. - * - * @param clusterId The cluster identifier of this command. Ver.: always - * @param buffer Buffer containing the list of attribute report records. Ver.: - * always - * @param bufLen The length in bytes of the list. Ver.: always - */ -bool emberAfReportAttributesCallback(EmberAfClusterId clusterId, uint8_t * buffer, uint16_t bufLen); -/** @brief Reporting Attribute Change - * - * This function is called by the framework when an attribute managed by the - * framework changes. The application should call this function when an - * externally-managed attribute changes. The application should use the change - * notification to inform its reporting decisions. - * - * @param endpoint Ver.: always - * @param clusterId Ver.: always - * @param attributeId Ver.: always - * @param mask Ver.: always - * @param manufacturerCode Ver.: always - * @param type Ver.: always - * @param data Ver.: always - */ -void emberAfReportingAttributeChangeCallback(uint8_t endpoint, EmberAfClusterId clusterId, EmberAfAttributeId attributeId, - uint8_t mask, uint16_t manufacturerCode, EmberAfAttributeType type, uint8_t * data); -/** @brief Scan Complete - * - * This is called by the low-level stack code when an 802.15.4 active scan - * completes. - * - * @param channel If the status indicates an error, the channel on which the - * error occurred. Otherwise it is undefined for EMBER_SUCCESS. Ver.: always - * @param status The status of the scan. Ver.: always - */ -void emberAfScanCompleteCallback(uint8_t channel, EmberStatus status); -/** @brief Scan Error - * - * This is called by the framework on behalf of the form-and-join library to - * notify the application if an error occurs while scanning. See form-and-join - * documentation for more information. - * - * @param status The status of the scan. Ver.: always - */ -void emberAfScanErrorCallback(EmberStatus status); -/** @brief Security Init - * - * This callback is called by the framework to give the application a chance to - * modify the security settings of the node during network initialization. - * Depending on the context when this callback is called, the pointer to the - * initial security state may be NULL, which means the initial security state - * can no longer be modified as the node is already operating on the network. - * - * @param state Ver.: always - * @param extended Ver.: always - * @param trustCenter Ver.: always - */ -void emberAfSecurityInitCallback(EmberInitialSecurityState * state, EmberExtendedSecurityBitmask * extended, bool trustCenter); -/** @brief Set Default Poll Control - * - * This function will set the default poll control for the current network to - * control whether or not it can long poll. - * - * @param control Ver.: always - */ -void emberAfSetDefaultPollControlCallback(EmberAfEventPollControl control); -/** @brief Set Default Sleep Control - * - * This function will set the default behavior of a sleeping device to control - * whether or not it must stay awake. A device that stays awake does not sleep - * at all. Otherwise, the device can sleep between events when appropriate. - * - * @param control Ver.: always - */ -void emberAfSetDefaultSleepControlCallback(EmberAfEventSleepControl control); -/** @brief Set Form And Join Extended Pan Id - * - * This callback is called by the framework to set the extended PAN ID used by - * the current network for forming and joining. The extended PAN ID used for - * forming and joining is not necessarily the same extended PAN ID actually in - * use on the network. - * - * @param extendedPanId Ver.: always - */ -void emberAfSetFormAndJoinExtendedPanIdCallback(const uint8_t * extendedPanId); -/** @brief Set Long Poll Interval Ms - * - * This function is only useful to end devices. This function will set the long - * poll interval (in milliseconds) for the current network. This interval is - * the maximum amount of time a child will wait between polls of its parent when - * it is not expecting data. - * - * @param longPollIntervalMs Ver.: always - */ -void emberAfSetLongPollIntervalMsCallback(uint32_t longPollIntervalMs); -/** @brief Set Long Poll Interval Qs - * - * This function is only useful to end devices. This function will set the long - * poll interval (in quarter seconds) for the current network. This interval is - * the maximum amount of time a child will wait between polls of its parent when - * it is not expecting data. - * - * @param longPollIntervalQs Ver.: always - */ -void emberAfSetLongPollIntervalQsCallback(uint32_t longPollIntervalQs); -/** @brief Set Short Poll Interval Ms - * - * This function is only useful to sleepy end devices. This function will set - * the short poll interval (in milliseconds) for the current network. This - * interval is the maximum amount of time a child will wait between polls of its - * parent when it is expecting data. - * - * @param shortPollIntervalMs Ver.: always - */ -void emberAfSetShortPollIntervalMsCallback(uint16_t shortPollIntervalMs); -/** @brief Set Short Poll Interval Qs - * - * This function is only useful to sleepy end devices. This function will set - * the short poll interval (in quarter seconds) for the current network. This - * interval is the maximum amount of time a child will wait between polls of its - * parent when it is expecting data. - * - * @param shortPollIntervalQs Ver.: always - */ -void emberAfSetShortPollIntervalQsCallback(uint16_t shortPollIntervalQs); -/** @brief Set Source Route Overhead - * - * This function is called by the framework when it has information about the - * source route overhead to a particular destination. The application may use - * this information to cache the source route overhead. - * - * @param destination The node id of the destination Ver.: always - * @param overhead The overhead in bytes Ver.: always - */ -void emberAfSetSourceRouteOverheadCallback(EmberNodeId destination, uint8_t overhead); -/** @brief Set Time - * - * This callback should be implemented, if the device has access to real time - * clock, and has an ability to update that clock. The application framework - * expects to be passed the utcTime which is the number of seconds since the - * year 2000. Default implementation does nothing. Note: This function used to - * take time in year, month, day, hour, min, sec. We have changed this to - * utcTime in order to conserve code space. - * - * @param utcTime Ver.: always - */ -void emberAfSetTimeCallback(uint32_t utcTime); -/** @brief Set Wake Timeout Bitmask - * - * This function is only useful to sleepy end devices. This function will set - * the wake timeout bitmask for the current network. The bitmask determines - * which tasks will timeout automatically and which tasks require manual removal - * from the task list. - * - * @param tasks Ver.: always - */ -void emberAfSetWakeTimeoutBitmaskCallback(EmberAfApplicationTask tasks); -/** @brief Set Wake Timeout Ms - * - * This function is only useful to sleepy end devices. This function will set - * the wake timeout (in milliseconds) for the current network. This timeout is - * the maximum amount of time a child will wait for a task in the wake bitmask - * to finish. While waiting, the device will short poll. - * - * @param wakeTimeoutMs Ver.: always - */ -void emberAfSetWakeTimeoutMsCallback(uint16_t wakeTimeoutMs); -/** @brief Set Wake Timeout Qs - * - * This function is only useful to sleepy end devices. This function will set - * the wake timeout (in quarter seconds) for the current network. This timeout - * is the maximum amount of time a child will wait for a task in the wake - * bitmask to finish. While waiting, the device will short poll. - * - * @param wakeTimeoutQs Ver.: always - */ -void emberAfSetWakeTimeoutQsCallback(uint16_t wakeTimeoutQs); -/** @brief Stack Status - * - * This function is called by the application framework from the stack status - * handler. This callbacks provides applications an opportunity to be notified - * of changes to the stack status and take appropriate action. The return code - * from this callback is ignored by the framework. The framework will always - * process the stack status after the callback returns. - * - * @param status Ver.: always - */ -bool emberAfStackStatusCallback(EmberStatus status); -/** @brief Start Move - * - * This function is called to initiate the process for a device to move (rejoin) - * to a new parent. - * - */ -bool emberAfStartMoveCallback(void); -/** @brief Start Search For Joinable Network - * - * This function is called by the framework to search for joinable networks and - * join a network. The application should return EMBER_SUCCESS if the operation - * was initiated successfully. - * - */ -EmberStatus emberAfStartSearchForJoinableNetworkCallback(void); -/** @brief Stop Move - * - * This function is called to cancel a previously scheduled move (rejoin) to a - * new parent. - * - */ -void emberAfStopMoveCallback(void); -/** @brief Trust Center Join - * - * This callback is called from within the application framework's - * implementation of emberTrustCenterJoinHandler or ezspTrustCenterJoinHandler. - * This callback provides the same arguments passed to the - * TrustCenterJoinHandler. For more information about the TrustCenterJoinHandler - * please see documentation included in stack/include/trust-center.h. - * - * @param newNodeId Ver.: always - * @param newNodeEui64 Ver.: always - * @param parentOfNewNode Ver.: always - * @param status Ver.: always - * @param decision Ver.: always - */ -void emberAfTrustCenterJoinCallback(EmberNodeId newNodeId, EmberEUI64 newNodeEui64, EmberNodeId parentOfNewNode, - EmberDeviceUpdate status, EmberJoinDecision decision); -/** @brief Trust Center Keepalive Abort - * - * This callback is called when the device should abort the trust center - * keepalive process. - * - */ -void emberAfTrustCenterKeepaliveAbortCallback(void); -/** @brief Trust Center Keepalive Update - * - * This callback is called when the device finishes registration (successfully - * or otherwise) and the trust center keepalive process must be updated. If the - * keepalive process has not been started, then it is started. Otherwise if the - * keepalive is in the process of searching for the TC, it will process the - * result of that Trust Center search operation. - * - * @param registrationComplete Ver.: always - */ -void emberAfTrustCenterKeepaliveUpdateCallback(bool registrationComplete); -/** @brief Unused Pan Id Found - * - * This is called by the framework on behalf of the form-and-join library to - * notify the application of the PAN id and channel found following a call to - * ::emberScanForUnusedPanId(). See form-and-join documentation for more - * information. - * - * @param panId Ver.: always - * @param channel Ver.: always - */ -void emberAfUnusedPanIdFoundCallback(EmberPanId panId, uint8_t channel); -/** @brief Write Attributes Response - * - * This function is called by the application framework when a Write Attributes - * Response command is received from an external device. The application should - * return true if the message was processed or false if it was not. - * - * @param clusterId The cluster identifier of this response. Ver.: always - * @param buffer Buffer containing the list of write attribute status records. - * Ver.: always - * @param bufLen The length in bytes of the list. Ver.: always - */ -bool emberAfWriteAttributesResponseCallback(EmberAfClusterId clusterId, uint8_t * buffer, uint16_t bufLen); -/** @brief Zigbee Key Establishment - * - * A callback to the application to notify it of the status of the request for a - * Link Key. - * - * @param partner partner The IEEE address of the partner device. Or all zeros - * if the Key establishment failed. Ver.: always - * @param status The status of the key establishment. Ver.: always - */ -void emberAfZigbeeKeyEstablishmentCallback(EmberEUI64 partner, EmberKeyStatus status); -/** @} END Non-Cluster Related Callbacks */ - -/** @name Basic Cluster Callbacks */ -// @{ - -/** @brief Basic Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfBasicClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Basic Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfBasicClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Basic Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfBasicClusterClientInitCallback(uint8_t endpoint); -/** @brief Basic Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfBasicClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Basic Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfBasicClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, EmberStatus status); -/** @brief Basic Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfBasicClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Basic Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfBasicClusterClientTickCallback(uint8_t endpoint); -/** @brief Basic Cluster Get Locales Supported - * - * - * - * @param startLocale Ver.: always - * @param maxLocalesRequested Ver.: always - */ -bool emberAfBasicClusterGetLocalesSupportedCallback(uint8_t * startLocale, uint8_t maxLocalesRequested); -/** @brief Basic Cluster Get Locales Supported Response - * - * - * - * @param discoveryComplete Ver.: always - * @param localeSupported Ver.: always - */ -bool emberAfBasicClusterGetLocalesSupportedResponseCallback(uint8_t discoveryComplete, uint8_t * localeSupported); -/** @brief Basic Cluster Reset To Factory Defaults - * - * - * - */ -bool emberAfBasicClusterResetToFactoryDefaultsCallback(void); -/** @brief Basic Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfBasicClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Basic Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfBasicClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Basic Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfBasicClusterServerInitCallback(uint8_t endpoint); -/** @brief Basic Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfBasicClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Basic Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfBasicClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, EmberStatus status); -/** @brief Basic Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfBasicClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Basic Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfBasicClusterServerTickCallback(uint8_t endpoint); - -/** @} END Basic Cluster Callbacks */ - -/** @name Power Configuration Cluster Callbacks */ -// @{ - -/** @brief Power Configuration Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfPowerConfigClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Power Configuration Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfPowerConfigClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Power Configuration Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfPowerConfigClusterClientInitCallback(uint8_t endpoint); -/** @brief Power Configuration Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfPowerConfigClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Power Configuration Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfPowerConfigClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Power Configuration Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfPowerConfigClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Power Configuration Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfPowerConfigClusterClientTickCallback(uint8_t endpoint); -/** @brief Power Configuration Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfPowerConfigClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Power Configuration Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfPowerConfigClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Power Configuration Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfPowerConfigClusterServerInitCallback(uint8_t endpoint); -/** @brief Power Configuration Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfPowerConfigClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Power Configuration Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfPowerConfigClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Power Configuration Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfPowerConfigClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Power Configuration Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfPowerConfigClusterServerTickCallback(uint8_t endpoint); - -/** @} END Power Configuration Cluster Callbacks */ - -/** @name Device Temperature Configuration Cluster Callbacks */ -// @{ - -/** @brief Device Temperature Configuration Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfDeviceTempClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Device Temperature Configuration Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfDeviceTempClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Device Temperature Configuration Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfDeviceTempClusterClientInitCallback(uint8_t endpoint); -/** @brief Device Temperature Configuration Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfDeviceTempClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Device Temperature Configuration Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfDeviceTempClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Device Temperature Configuration Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfDeviceTempClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Device Temperature Configuration Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfDeviceTempClusterClientTickCallback(uint8_t endpoint); -/** @brief Device Temperature Configuration Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfDeviceTempClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Device Temperature Configuration Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfDeviceTempClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Device Temperature Configuration Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfDeviceTempClusterServerInitCallback(uint8_t endpoint); -/** @brief Device Temperature Configuration Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfDeviceTempClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Device Temperature Configuration Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfDeviceTempClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Device Temperature Configuration Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfDeviceTempClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Device Temperature Configuration Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfDeviceTempClusterServerTickCallback(uint8_t endpoint); - -/** @} END Device Temperature Configuration Cluster Callbacks */ - -/** @name Identify Cluster Callbacks */ -// @{ - -/** @brief Identify Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfIdentifyClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Identify Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfIdentifyClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Identify Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfIdentifyClusterClientInitCallback(uint8_t endpoint); -/** @brief Identify Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfIdentifyClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Identify Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfIdentifyClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Identify Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfIdentifyClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Identify Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfIdentifyClusterClientTickCallback(uint8_t endpoint); -/** @brief Identify Cluster E Z Mode Invoke - * - * - * - * @param action Ver.: always - */ -bool emberAfIdentifyClusterEZModeInvokeCallback(uint8_t action); -/** @brief Identify Cluster Identify - * - * - * - * @param identifyTime Ver.: always - */ -bool emberAfIdentifyClusterIdentifyCallback(uint16_t identifyTime); -/** @brief Identify Cluster Identify Query - * - * - * - */ -bool emberAfIdentifyClusterIdentifyQueryCallback(void); -/** @brief Identify Cluster Identify Query Response - * - * - * - * @param timeout Ver.: always - */ -bool emberAfIdentifyClusterIdentifyQueryResponseCallback(uint16_t timeout); -/** @brief Identify Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfIdentifyClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Identify Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfIdentifyClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Identify Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfIdentifyClusterServerInitCallback(uint8_t endpoint); -/** @brief Identify Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfIdentifyClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Identify Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfIdentifyClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Identify Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfIdentifyClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Identify Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfIdentifyClusterServerTickCallback(uint8_t endpoint); -/** @brief Identify Cluster Trigger Effect - * - * - * - * @param effectId Ver.: always - * @param effectVariant Ver.: always - */ -bool emberAfIdentifyClusterTriggerEffectCallback(uint8_t effectId, uint8_t effectVariant); -/** @brief Identify Cluster Update Commission State - * - * - * - * @param action Ver.: always - * @param commissionStateMask Ver.: always - */ -bool emberAfIdentifyClusterUpdateCommissionStateCallback(uint8_t action, uint8_t commissionStateMask); - -/** @} END Identify Cluster Callbacks */ - -/** @name Groups Cluster Callbacks */ -// @{ - -/** @brief Groups Cluster Clear Group Table - * - * This function is called by the framework when the application should clear - * the group table. - * - * @param endpoint The endpoint. Ver.: always - */ -void emberAfGroupsClusterClearGroupTableCallback(uint8_t endpoint); -/** @brief Groups Cluster Endpoint In Group - * - * This function is called by the framework when it needs to determine if an - * endpoint is a member of a group. The application should return true if the - * endpoint is a member of the group and false otherwise. - * - * @param endpoint The endpoint. Ver.: always - * @param groupId The group identifier. Ver.: always - */ -bool emberAfGroupsClusterEndpointInGroupCallback(uint8_t endpoint, uint16_t groupId); -/** @brief Groups Cluster Add Group - * - * - * - * @param groupId Ver.: always - * @param groupName Ver.: always - */ -bool emberAfGroupsClusterAddGroupCallback(uint16_t groupId, uint8_t * groupName); -/** @brief Groups Cluster Add Group If Identifying - * - * - * - * @param groupId Ver.: always - * @param groupName Ver.: always - */ -bool emberAfGroupsClusterAddGroupIfIdentifyingCallback(uint16_t groupId, uint8_t * groupName); -/** @brief Groups Cluster Add Group Response - * - * - * - * @param status Ver.: always - * @param groupId Ver.: always - */ -bool emberAfGroupsClusterAddGroupResponseCallback(uint8_t status, uint16_t groupId); -/** @brief Groups Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfGroupsClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Groups Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfGroupsClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Groups Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfGroupsClusterClientInitCallback(uint8_t endpoint); -/** @brief Groups Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfGroupsClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Groups Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfGroupsClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Groups Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfGroupsClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Groups Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfGroupsClusterClientTickCallback(uint8_t endpoint); -/** @brief Groups Cluster Get Group Membership - * - * - * - * @param groupCount Ver.: always - * @param groupList Ver.: always - */ -bool emberAfGroupsClusterGetGroupMembershipCallback(uint8_t groupCount, uint8_t * groupList); -/** @brief Groups Cluster Get Group Membership Response - * - * - * - * @param capacity Ver.: always - * @param groupCount Ver.: always - * @param groupList Ver.: always - */ -bool emberAfGroupsClusterGetGroupMembershipResponseCallback(uint8_t capacity, uint8_t groupCount, uint8_t * groupList); -/** @brief Groups Cluster Remove All Groups - * - * - * - */ -bool emberAfGroupsClusterRemoveAllGroupsCallback(void); -/** @brief Groups Cluster Remove Group - * - * - * - * @param groupId Ver.: always - */ -bool emberAfGroupsClusterRemoveGroupCallback(uint16_t groupId); -/** @brief Groups Cluster Remove Group Response - * - * - * - * @param status Ver.: always - * @param groupId Ver.: always - */ -bool emberAfGroupsClusterRemoveGroupResponseCallback(uint8_t status, uint16_t groupId); -/** @brief Groups Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfGroupsClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Groups Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfGroupsClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Groups Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfGroupsClusterServerInitCallback(uint8_t endpoint); -/** @brief Groups Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfGroupsClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Groups Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfGroupsClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Groups Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfGroupsClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Groups Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfGroupsClusterServerTickCallback(uint8_t endpoint); -/** @brief Groups Cluster View Group - * - * - * - * @param groupId Ver.: always - */ -bool emberAfGroupsClusterViewGroupCallback(uint16_t groupId); -/** @brief Groups Cluster View Group Response - * - * - * - * @param status Ver.: always - * @param groupId Ver.: always - * @param groupName Ver.: always - */ -bool emberAfGroupsClusterViewGroupResponseCallback(uint8_t status, uint16_t groupId, uint8_t * groupName); - -/** @} END Groups Cluster Callbacks */ - -/** @name Scenes Cluster Callbacks */ -// @{ - -/** @brief Scenes Cluster ClearSceneTable - * - * This function is called by the framework when the application should clear - * the scene table. - * - * @param endpoint The endpoint. Ver.: always - */ -void emberAfScenesClusterClearSceneTableCallback(uint8_t endpoint); -/** @brief Scenes Cluster Make Invalid - * - * This function is called to invalidate the valid attribute in the Scenes - * cluster. - * - * @param endpoint Ver.: always - */ -EmberAfStatus emberAfScenesClusterMakeInvalidCallback(uint8_t endpoint); -/** @brief Scenes Cluster Recall Saved Scene - * - * This function is called by the framework when the application should recall a - * saved scene. - * - * @param endpoint The endpoint. Ver.: always - * @param groupId The group identifier. Ver.: always - * @param sceneId The scene identifier. Ver.: always - */ -EmberAfStatus emberAfScenesClusterRecallSavedSceneCallback(uint8_t endpoint, uint16_t groupId, uint8_t sceneId); -/** @brief Scenes Cluster Remove Scenes In Group - * - * This function removes the scenes from a specified group. - * - * @param endpoint Endpoint Ver.: always - * @param groupId Group ID Ver.: always - */ -void emberAfScenesClusterRemoveScenesInGroupCallback(uint8_t endpoint, uint16_t groupId); -/** @brief Scenes Cluster Add Scene - * - * - * - * @param groupId Ver.: always - * @param sceneId Ver.: always - * @param transitionTime Ver.: always - * @param sceneName Ver.: always - * @param extensionFieldSets Ver.: always - */ -bool emberAfScenesClusterAddSceneCallback(uint16_t groupId, uint8_t sceneId, uint16_t transitionTime, uint8_t * sceneName, - uint8_t * extensionFieldSets); -/** @brief Scenes Cluster Add Scene Response - * - * - * - * @param status Ver.: always - * @param groupId Ver.: always - * @param sceneId Ver.: always - */ -bool emberAfScenesClusterAddSceneResponseCallback(uint8_t status, uint16_t groupId, uint8_t sceneId); -/** @brief Scenes Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfScenesClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Scenes Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfScenesClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Scenes Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfScenesClusterClientInitCallback(uint8_t endpoint); -/** @brief Scenes Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfScenesClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Scenes Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfScenesClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Scenes Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfScenesClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Scenes Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfScenesClusterClientTickCallback(uint8_t endpoint); -/** @brief Scenes Cluster Copy Scene - * - * - * - * @param mode Ver.: always - * @param groupIdFrom Ver.: always - * @param sceneIdFrom Ver.: always - * @param groupIdTo Ver.: always - * @param sceneIdTo Ver.: always - */ -bool emberAfScenesClusterCopySceneCallback(uint8_t mode, uint16_t groupIdFrom, uint8_t sceneIdFrom, uint16_t groupIdTo, - uint8_t sceneIdTo); -/** @brief Scenes Cluster Copy Scene Response - * - * - * - * @param status Ver.: always - * @param groupIdFrom Ver.: always - * @param sceneIdFrom Ver.: always - */ -bool emberAfScenesClusterCopySceneResponseCallback(uint8_t status, uint16_t groupIdFrom, uint8_t sceneIdFrom); -/** @brief Scenes Cluster Enhanced Add Scene - * - * - * - * @param groupId Ver.: always - * @param sceneId Ver.: always - * @param transitionTime Ver.: always - * @param sceneName Ver.: always - * @param extensionFieldSets Ver.: always - */ -bool emberAfScenesClusterEnhancedAddSceneCallback(uint16_t groupId, uint8_t sceneId, uint16_t transitionTime, uint8_t * sceneName, - uint8_t * extensionFieldSets); -/** @brief Scenes Cluster Enhanced Add Scene Response - * - * - * - * @param status Ver.: always - * @param groupId Ver.: always - * @param sceneId Ver.: always - */ -bool emberAfScenesClusterEnhancedAddSceneResponseCallback(uint8_t status, uint16_t groupId, uint8_t sceneId); -/** @brief Scenes Cluster Enhanced View Scene - * - * - * - * @param groupId Ver.: always - * @param sceneId Ver.: always - */ -bool emberAfScenesClusterEnhancedViewSceneCallback(uint16_t groupId, uint8_t sceneId); -/** @brief Scenes Cluster Enhanced View Scene Response - * - * - * - * @param status Ver.: always - * @param groupId Ver.: always - * @param sceneId Ver.: always - * @param transitionTime Ver.: always - * @param sceneName Ver.: always - * @param extensionFieldSets Ver.: always - */ -bool emberAfScenesClusterEnhancedViewSceneResponseCallback(uint8_t status, uint16_t groupId, uint8_t sceneId, - uint16_t transitionTime, uint8_t * sceneName, - uint8_t * extensionFieldSets); -/** @brief Scenes Cluster Get Scene Membership - * - * - * - * @param groupId Ver.: always - */ -bool emberAfScenesClusterGetSceneMembershipCallback(uint16_t groupId); -/** @brief Scenes Cluster Get Scene Membership Response - * - * - * - * @param status Ver.: always - * @param capacity Ver.: always - * @param groupId Ver.: always - * @param sceneCount Ver.: always - * @param sceneList Ver.: always - */ -bool emberAfScenesClusterGetSceneMembershipResponseCallback(uint8_t status, uint8_t capacity, uint16_t groupId, uint8_t sceneCount, - uint8_t * sceneList); -/** @brief Scenes Cluster Recall Scene - * - * - * - * @param groupId Ver.: always - * @param sceneId Ver.: always - * @param transitionTime Ver.: since zcl-7.0-07-5123-07 - */ -bool emberAfScenesClusterRecallSceneCallback(uint16_t groupId, uint8_t sceneId, uint16_t transitionTime); -/** @brief Scenes Cluster Remove All Scenes - * - * - * - * @param groupId Ver.: always - */ -bool emberAfScenesClusterRemoveAllScenesCallback(uint16_t groupId); -/** @brief Scenes Cluster Remove All Scenes Response - * - * - * - * @param status Ver.: always - * @param groupId Ver.: always - */ -bool emberAfScenesClusterRemoveAllScenesResponseCallback(uint8_t status, uint16_t groupId); -/** @brief Scenes Cluster Remove Scene - * - * - * - * @param groupId Ver.: always - * @param sceneId Ver.: always - */ -bool emberAfScenesClusterRemoveSceneCallback(uint16_t groupId, uint8_t sceneId); -/** @brief Scenes Cluster Remove Scene Response - * - * - * - * @param status Ver.: always - * @param groupId Ver.: always - * @param sceneId Ver.: always - */ -bool emberAfScenesClusterRemoveSceneResponseCallback(uint8_t status, uint16_t groupId, uint8_t sceneId); -/** @brief Scenes Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfScenesClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Scenes Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfScenesClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Scenes Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfScenesClusterServerInitCallback(uint8_t endpoint); -/** @brief Scenes Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfScenesClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Scenes Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfScenesClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Scenes Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfScenesClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Scenes Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfScenesClusterServerTickCallback(uint8_t endpoint); -/** @brief Scenes Cluster Store Scene - * - * - * - * @param groupId Ver.: always - * @param sceneId Ver.: always - */ -bool emberAfScenesClusterStoreSceneCallback(uint16_t groupId, uint8_t sceneId); -/** @brief Scenes Cluster Store Scene Response - * - * - * - * @param status Ver.: always - * @param groupId Ver.: always - * @param sceneId Ver.: always - */ -bool emberAfScenesClusterStoreSceneResponseCallback(uint8_t status, uint16_t groupId, uint8_t sceneId); -/** @brief Scenes Cluster View Scene - * - * - * - * @param groupId Ver.: always - * @param sceneId Ver.: always - */ -bool emberAfScenesClusterViewSceneCallback(uint16_t groupId, uint8_t sceneId); -/** @brief Scenes Cluster View Scene Response - * - * - * - * @param status Ver.: always - * @param groupId Ver.: always - * @param sceneId Ver.: always - * @param transitionTime Ver.: always - * @param sceneName Ver.: always - * @param extensionFieldSets Ver.: always - */ -bool emberAfScenesClusterViewSceneResponseCallback(uint8_t status, uint16_t groupId, uint8_t sceneId, uint16_t transitionTime, - uint8_t * sceneName, uint8_t * extensionFieldSets); -/** @brief Scenes Cluster Store Current Scene - * - * This function is called by the framework when the application should store - * the current scene. If an entry already exists in the scene table with the - * same scene and group ids, the application should update the entry with the - * current scene. Otherwise, a new entry should be adde to the scene table, if - * possible. - * - * @param endpoint The endpoint. Ver.: always - * @param groupId The group identifier. Ver.: always - * @param sceneId The scene identifier. Ver.: always - */ -EmberAfStatus emberAfScenesClusterStoreCurrentSceneCallback(uint8_t endpoint, uint16_t groupId, uint8_t sceneId); - -/** @} END Scenes Cluster Callbacks */ - -/** @name On/off Cluster Callbacks */ -// @{ - -/** @brief On/off Cluster Level Control Effect - * - * This is called by the framework when the on/off cluster initiates a command - * that must effect a level control change. The implementation assumes that the - * client will handle any effect on the On/Off Cluster. - * - * @param endpoint Ver.: always - * @param newValue Ver.: always - */ -void emberAfOnOffClusterLevelControlEffectCallback(uint8_t endpoint, bool newValue); -/** @brief On/off Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfOnOffClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief On/off Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfOnOffClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief On/off Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfOnOffClusterClientInitCallback(uint8_t endpoint); -/** @brief On/off Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfOnOffClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief On/off Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfOnOffClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, EmberStatus status); -/** @brief On/off Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfOnOffClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief On/off Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfOnOffClusterClientTickCallback(uint8_t endpoint); -/** @brief On/off Cluster Off - * - * - * - */ -bool emberAfOnOffClusterOffCallback(void); -/** @brief On/off Cluster Off With Effect - * - * - * - * @param effectId Ver.: always - * @param effectVariant Ver.: always - */ -bool emberAfOnOffClusterOffWithEffectCallback(uint8_t effectId, uint8_t effectVariant); -/** @brief On/off Cluster On - * - * - * - */ -bool emberAfOnOffClusterOnCallback(void); -/** @brief On/off Cluster On With Recall Global Scene - * - * - * - */ -bool emberAfOnOffClusterOnWithRecallGlobalSceneCallback(void); -/** @brief On/off Cluster On With Timed Off - * - * - * - * @param onOffControl Ver.: always - * @param onTime Ver.: always - * @param offWaitTime Ver.: always - */ -bool emberAfOnOffClusterOnWithTimedOffCallback(uint8_t onOffControl, uint16_t onTime, uint16_t offWaitTime); -/** @brief On/off Cluster Sample Mfg Specific Off With Transition - * - * - * - */ -bool emberAfOnOffClusterSampleMfgSpecificOffWithTransitionCallback(void); -/** @brief On/off Cluster Sample Mfg Specific On With Transition2 - * - * - * - */ -bool emberAfOnOffClusterSampleMfgSpecificOnWithTransition2Callback(void); -/** @brief On/off Cluster Sample Mfg Specific On With Transition - * - * - * - */ -bool emberAfOnOffClusterSampleMfgSpecificOnWithTransitionCallback(void); -/** @brief On/off Cluster Sample Mfg Specific Toggle With Transition2 - * - * - * - */ -bool emberAfOnOffClusterSampleMfgSpecificToggleWithTransition2Callback(void); -/** @brief On/off Cluster Sample Mfg Specific Toggle With Transition - * - * - * - */ -bool emberAfOnOffClusterSampleMfgSpecificToggleWithTransitionCallback(void); -/** @brief On/off Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfOnOffClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief On/off Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfOnOffClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief On/off Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfOnOffClusterServerInitCallback(uint8_t endpoint); -/** @brief On/off Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfOnOffClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief On/off Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfOnOffClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, EmberStatus status); -/** @brief On/off Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfOnOffClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief On/off Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfOnOffClusterServerTickCallback(uint8_t endpoint); -/** @brief On/off Cluster Toggle - * - * - * - */ -bool emberAfOnOffClusterToggleCallback(void); -/** @brief On/off Cluster Set Value - * - * This function is called when the on/off value needs to be set, either through - * normal channels or as a result of a level change. - * - * @param endpoint Ver.: always - * @param command Ver.: always - * @param initiatedByLevelChange Ver.: always - */ -EmberAfStatus emberAfOnOffClusterSetValueCallback(uint8_t endpoint, uint8_t command, bool initiatedByLevelChange); -/** @brief On/off Cluster Server Post Init - * - * Following resolution of the On/Off state at startup for this endpoint, perform any - * additional initialization needed; e.g., synchronize hardware state. - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfPluginOnOffClusterServerPostInitCallback(uint8_t endpoint); - -/** @brief Basic Cluster Reset To Factory Defaults - * - * This function is called by the Basic server plugin when a request to - * reset to factory defaults is received. The plugin will reset attributes - * managed by the framework to their default values. - * The application should perform any other necessary reset-related operations - * in this callback, including resetting any externally-stored attributes. - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfPluginBasicResetToFactoryDefaultsCallback(uint8_t endpoint); -/** @brief Activate Door Lock Callback - * This function is provided by the door lock server plugin. - * - * @param activate True if the lock should move to the locked position, - * false if it should move to the unlocked position Ver.: always - * - * @returns true if the callback was able to activate/deactivate the Lock. - */ -bool emberAfPluginDoorLockServerActivateDoorLockCallback(bool activate); - -/** @} END On/off Cluster Callbacks */ - -/** @name On/off Switch Configuration Cluster Callbacks */ -// @{ - -/** @brief On/off Switch Configuration Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfOnOffSwitchConfigClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief On/off Switch Configuration Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfOnOffSwitchConfigClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief On/off Switch Configuration Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfOnOffSwitchConfigClusterClientInitCallback(uint8_t endpoint); -/** @brief On/off Switch Configuration Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfOnOffSwitchConfigClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief On/off Switch Configuration Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfOnOffSwitchConfigClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief On/off Switch Configuration Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfOnOffSwitchConfigClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief On/off Switch Configuration Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfOnOffSwitchConfigClusterClientTickCallback(uint8_t endpoint); -/** @brief On/off Switch Configuration Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfOnOffSwitchConfigClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief On/off Switch Configuration Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfOnOffSwitchConfigClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief On/off Switch Configuration Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfOnOffSwitchConfigClusterServerInitCallback(uint8_t endpoint); -/** @brief On/off Switch Configuration Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfOnOffSwitchConfigClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief On/off Switch Configuration Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfOnOffSwitchConfigClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief On/off Switch Configuration Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfOnOffSwitchConfigClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief On/off Switch Configuration Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfOnOffSwitchConfigClusterServerTickCallback(uint8_t endpoint); - -/** @} END On/off Switch Configuration Cluster Callbacks */ - -/** @name Level Control Cluster Callbacks */ -// @{ - -/** @brief Level Control Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfLevelControlClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Level Control Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfLevelControlClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Level Control Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfLevelControlClusterClientInitCallback(uint8_t endpoint); -/** @brief Level Control Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfLevelControlClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Level Control Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfLevelControlClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Level Control Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfLevelControlClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Level Control Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfLevelControlClusterClientTickCallback(uint8_t endpoint); -/** @brief Level Control Cluster Move - * - * - * - * @param moveMode Ver.: always - * @param rate Ver.: always - * @param optionMask Ver.: since zcl6-errata-14-0129-15 - * @param optionOverride Ver.: since zcl6-errata-14-0129-15 - */ -bool emberAfLevelControlClusterMoveCallback(uint8_t moveMode, uint8_t rate, uint8_t optionMask, uint8_t optionOverride); -/** @brief Level Control Cluster Move To Level - * - * - * - * @param level Ver.: always - * @param transitionTime Ver.: always - * @param optionMask Ver.: since zcl6-errata-14-0129-15 - * @param optionOverride Ver.: since zcl6-errata-14-0129-15 - */ -bool emberAfLevelControlClusterMoveToLevelCallback(uint8_t level, uint16_t transitionTime, uint8_t optionMask, - uint8_t optionOverride); -/** @brief Level Control Cluster Move To Level With On Off - * - * - * - * @param level Ver.: always - * @param transitionTime Ver.: always - */ -bool emberAfLevelControlClusterMoveToLevelWithOnOffCallback(uint8_t level, uint16_t transitionTime); -/** @brief Level Control Cluster Move With On Off - * - * - * - * @param moveMode Ver.: always - * @param rate Ver.: always - */ -bool emberAfLevelControlClusterMoveWithOnOffCallback(uint8_t moveMode, uint8_t rate); -/** @brief Level Control Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfLevelControlClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Level Control Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfLevelControlClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Level Control Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfLevelControlClusterServerInitCallback(uint8_t endpoint); -/** @brief Level Control Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfLevelControlClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Level Control Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfLevelControlClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Level Control Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfLevelControlClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Level Control Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfLevelControlClusterServerTickCallback(uint8_t endpoint); -/** @brief Level Control Cluster Step - * - * - * - * @param stepMode Ver.: always - * @param stepSize Ver.: always - * @param transitionTime Ver.: always - * @param optionMask Ver.: since zcl6-errata-14-0129-15 - * @param optionOverride Ver.: since zcl6-errata-14-0129-15 - */ -bool emberAfLevelControlClusterStepCallback(uint8_t stepMode, uint8_t stepSize, uint16_t transitionTime, uint8_t optionMask, - uint8_t optionOverride); -/** @brief Level Control Cluster Step With On Off - * - * - * - * @param stepMode Ver.: always - * @param stepSize Ver.: always - * @param transitionTime Ver.: always - */ -bool emberAfLevelControlClusterStepWithOnOffCallback(uint8_t stepMode, uint8_t stepSize, uint16_t transitionTime); -/** @brief Level Control Cluster Stop - * - * - * - * @param optionMask Ver.: since zcl6-errata-14-0129-15 - * @param optionOverride Ver.: since zcl6-errata-14-0129-15 - */ -bool emberAfLevelControlClusterStopCallback(uint8_t optionMask, uint8_t optionOverride); -/** @brief Level Control Cluster Stop With On Off - * - * - * - */ -bool emberAfLevelControlClusterStopWithOnOffCallback(void); - -/** @} END Level Control Cluster Callbacks */ - -/** @name Alarms Cluster Callbacks */ -// @{ - -/** @brief Alarms Cluster Alarm - * - * - * - * @param alarmCode Ver.: always - * @param clusterId Ver.: always - */ -bool emberAfAlarmClusterAlarmCallback(uint8_t alarmCode, uint16_t clusterId); -/** @brief Alarms Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfAlarmClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Alarms Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfAlarmClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Alarms Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfAlarmClusterClientInitCallback(uint8_t endpoint); -/** @brief Alarms Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfAlarmClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Alarms Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfAlarmClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, EmberStatus status); -/** @brief Alarms Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfAlarmClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Alarms Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfAlarmClusterClientTickCallback(uint8_t endpoint); -/** @brief Alarms Cluster Get Alarm - * - * - * - */ -bool emberAfAlarmClusterGetAlarmCallback(void); -/** @brief Alarms Cluster Get Alarm Response - * - * - * - * @param status Ver.: always - * @param alarmCode Ver.: always - * @param clusterId Ver.: always - * @param timeStamp Ver.: always - */ -bool emberAfAlarmClusterGetAlarmResponseCallback(uint8_t status, uint8_t alarmCode, uint16_t clusterId, uint32_t timeStamp); -/** @brief Alarms Cluster Reset Alarm - * - * - * - * @param alarmCode Ver.: always - * @param clusterId Ver.: always - */ -bool emberAfAlarmClusterResetAlarmCallback(uint8_t alarmCode, uint16_t clusterId); -/** @brief Alarms Cluster Reset Alarm Log - * - * - * - */ -bool emberAfAlarmClusterResetAlarmLogCallback(void); -/** @brief Alarms Cluster Reset All Alarms - * - * - * - */ -bool emberAfAlarmClusterResetAllAlarmsCallback(void); -/** @brief Alarms Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfAlarmClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Alarms Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfAlarmClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Alarms Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfAlarmClusterServerInitCallback(uint8_t endpoint); -/** @brief Alarms Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfAlarmClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Alarms Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfAlarmClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, EmberStatus status); -/** @brief Alarms Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfAlarmClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Alarms Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfAlarmClusterServerTickCallback(uint8_t endpoint); - -/** @} END Alarms Cluster Callbacks */ - -/** @name Time Cluster Callbacks */ -// @{ - -/** @brief Time Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfTimeClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Time Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfTimeClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Time Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfTimeClusterClientInitCallback(uint8_t endpoint); -/** @brief Time Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfTimeClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Time Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfTimeClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, EmberStatus status); -/** @brief Time Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfTimeClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Time Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfTimeClusterClientTickCallback(uint8_t endpoint); -/** @brief Time Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfTimeClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Time Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfTimeClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Time Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfTimeClusterServerInitCallback(uint8_t endpoint); -/** @brief Time Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfTimeClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Time Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfTimeClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, EmberStatus status); -/** @brief Time Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfTimeClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Time Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfTimeClusterServerTickCallback(uint8_t endpoint); - -/** @} END Time Cluster Callbacks */ - -/** @name RSSI Location Cluster Callbacks */ -// @{ - -/** @brief RSSI Location Cluster Anchor Node Announce - * - * - * - * @param anchorNodeIeeeAddress Ver.: always - * @param coordinate1 Ver.: always - * @param coordinate2 Ver.: always - * @param coordinate3 Ver.: always - */ -bool emberAfRssiLocationClusterAnchorNodeAnnounceCallback(uint8_t * anchorNodeIeeeAddress, int16_t coordinate1, int16_t coordinate2, - int16_t coordinate3); -/** @brief RSSI Location Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfRssiLocationClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief RSSI Location Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfRssiLocationClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief RSSI Location Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfRssiLocationClusterClientInitCallback(uint8_t endpoint); -/** @brief RSSI Location Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfRssiLocationClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief RSSI Location Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfRssiLocationClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief RSSI Location Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfRssiLocationClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief RSSI Location Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfRssiLocationClusterClientTickCallback(uint8_t endpoint); -/** @brief RSSI Location Cluster Compact Location Data Notification - * - * - * - * @param locationType Ver.: always - * @param coordinate1 Ver.: always - * @param coordinate2 Ver.: always - * @param coordinate3 Ver.: always - * @param qualityMeasure Ver.: always - * @param locationAge Ver.: always - */ -bool emberAfRssiLocationClusterCompactLocationDataNotificationCallback(uint8_t locationType, int16_t coordinate1, - int16_t coordinate2, int16_t coordinate3, - uint8_t qualityMeasure, uint16_t locationAge); -/** @brief RSSI Location Cluster Device Configuration Response - * - * - * - * @param status Ver.: always - * @param power Ver.: always - * @param pathLossExponent Ver.: always - * @param calculationPeriod Ver.: always - * @param numberRssiMeasurements Ver.: always - * @param reportingPeriod Ver.: always - */ -bool emberAfRssiLocationClusterDeviceConfigurationResponseCallback(uint8_t status, int16_t power, uint16_t pathLossExponent, - uint16_t calculationPeriod, uint8_t numberRssiMeasurements, - uint16_t reportingPeriod); -/** @brief RSSI Location Cluster Get Device Configuration - * - * - * - * @param targetAddress Ver.: always - */ -bool emberAfRssiLocationClusterGetDeviceConfigurationCallback(uint8_t * targetAddress); -/** @brief RSSI Location Cluster Get Location Data - * - * - * - * @param flags Ver.: always - * @param numberResponses Ver.: always - * @param targetAddress Ver.: always - */ -bool emberAfRssiLocationClusterGetLocationDataCallback(uint8_t flags, uint8_t numberResponses, uint8_t * targetAddress); -/** @brief RSSI Location Cluster Location Data Notification - * - * - * - * @param locationType Ver.: always - * @param coordinate1 Ver.: always - * @param coordinate2 Ver.: always - * @param coordinate3 Ver.: always - * @param power Ver.: always - * @param pathLossExponent Ver.: always - * @param locationMethod Ver.: always - * @param qualityMeasure Ver.: always - * @param locationAge Ver.: always - */ -bool emberAfRssiLocationClusterLocationDataNotificationCallback(uint8_t locationType, int16_t coordinate1, int16_t coordinate2, - int16_t coordinate3, int16_t power, uint16_t pathLossExponent, - uint8_t locationMethod, uint8_t qualityMeasure, - uint16_t locationAge); -/** @brief RSSI Location Cluster Location Data Response - * - * - * - * @param status Ver.: always - * @param locationType Ver.: always - * @param coordinate1 Ver.: always - * @param coordinate2 Ver.: always - * @param coordinate3 Ver.: always - * @param power Ver.: always - * @param pathLossExponent Ver.: always - * @param locationMethod Ver.: always - * @param qualityMeasure Ver.: always - * @param locationAge Ver.: always - */ -bool emberAfRssiLocationClusterLocationDataResponseCallback(uint8_t status, uint8_t locationType, int16_t coordinate1, - int16_t coordinate2, int16_t coordinate3, int16_t power, - uint16_t pathLossExponent, uint8_t locationMethod, - uint8_t qualityMeasure, uint16_t locationAge); -/** @brief RSSI Location Cluster Report Rssi Measurements - * - * - * - * @param measuringDevice Ver.: always - * @param neighbors Ver.: always - * @param neighborsInfo Ver.: always - */ -bool emberAfRssiLocationClusterReportRssiMeasurementsCallback(uint8_t * measuringDevice, uint8_t neighbors, - uint8_t * neighborsInfo); -/** @brief RSSI Location Cluster Request Own Location - * - * - * - * @param blindNode Ver.: always - */ -bool emberAfRssiLocationClusterRequestOwnLocationCallback(uint8_t * blindNode); -/** @brief RSSI Location Cluster Rssi Ping - * - * - * - * @param locationType Ver.: always - */ -bool emberAfRssiLocationClusterRssiPingCallback(uint8_t locationType); -/** @brief RSSI Location Cluster Rssi Request - * - * - * - */ -bool emberAfRssiLocationClusterRssiRequestCallback(void); -/** @brief RSSI Location Cluster Rssi Response - * - * - * - * @param replyingDevice Ver.: always - * @param coordinate1 Ver.: always - * @param coordinate2 Ver.: always - * @param coordinate3 Ver.: always - * @param rssi Ver.: always - * @param numberRssiMeasurements Ver.: always - */ -bool emberAfRssiLocationClusterRssiResponseCallback(uint8_t * replyingDevice, int16_t coordinate1, int16_t coordinate2, - int16_t coordinate3, int8_t rssi, uint8_t numberRssiMeasurements); -/** @brief RSSI Location Cluster Send Pings - * - * - * - * @param targetAddress Ver.: always - * @param numberRssiMeasurements Ver.: always - * @param calculationPeriod Ver.: always - */ -bool emberAfRssiLocationClusterSendPingsCallback(uint8_t * targetAddress, uint8_t numberRssiMeasurements, - uint16_t calculationPeriod); -/** @brief RSSI Location Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfRssiLocationClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief RSSI Location Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfRssiLocationClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief RSSI Location Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfRssiLocationClusterServerInitCallback(uint8_t endpoint); -/** @brief RSSI Location Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfRssiLocationClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief RSSI Location Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfRssiLocationClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief RSSI Location Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfRssiLocationClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief RSSI Location Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfRssiLocationClusterServerTickCallback(uint8_t endpoint); -/** @brief RSSI Location Cluster Set Absolute Location - * - * - * - * @param coordinate1 Ver.: always - * @param coordinate2 Ver.: always - * @param coordinate3 Ver.: always - * @param power Ver.: always - * @param pathLossExponent Ver.: always - */ -bool emberAfRssiLocationClusterSetAbsoluteLocationCallback(int16_t coordinate1, int16_t coordinate2, int16_t coordinate3, - int16_t power, uint16_t pathLossExponent); -/** @brief RSSI Location Cluster Set Device Configuration - * - * - * - * @param power Ver.: always - * @param pathLossExponent Ver.: always - * @param calculationPeriod Ver.: always - * @param numberRssiMeasurements Ver.: always - * @param reportingPeriod Ver.: always - */ -bool emberAfRssiLocationClusterSetDeviceConfigurationCallback(int16_t power, uint16_t pathLossExponent, uint16_t calculationPeriod, - uint8_t numberRssiMeasurements, uint16_t reportingPeriod); - -/** @} END RSSI Location Cluster Callbacks */ - -/** @name Binary Input (Basic) Cluster Callbacks */ -// @{ - -/** @brief Binary Input (Basic) Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfBinaryInputBasicClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Binary Input (Basic) Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfBinaryInputBasicClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Binary Input (Basic) Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfBinaryInputBasicClusterClientInitCallback(uint8_t endpoint); -/** @brief Binary Input (Basic) Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfBinaryInputBasicClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Binary Input (Basic) Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfBinaryInputBasicClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Binary Input (Basic) Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfBinaryInputBasicClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Binary Input (Basic) Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfBinaryInputBasicClusterClientTickCallback(uint8_t endpoint); -/** @brief Binary Input (Basic) Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfBinaryInputBasicClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Binary Input (Basic) Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfBinaryInputBasicClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Binary Input (Basic) Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfBinaryInputBasicClusterServerInitCallback(uint8_t endpoint); -/** @brief Binary Input (Basic) Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfBinaryInputBasicClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Binary Input (Basic) Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfBinaryInputBasicClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Binary Input (Basic) Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfBinaryInputBasicClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Binary Input (Basic) Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfBinaryInputBasicClusterServerTickCallback(uint8_t endpoint); - -/** @} END Binary Input (Basic) Cluster Callbacks */ - -/** @name Commissioning Cluster Callbacks */ -// @{ - -/** @brief Commissioning Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfCommissioningClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Commissioning Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfCommissioningClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Commissioning Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfCommissioningClusterClientInitCallback(uint8_t endpoint); -/** @brief Commissioning Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfCommissioningClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Commissioning Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfCommissioningClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Commissioning Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfCommissioningClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Commissioning Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfCommissioningClusterClientTickCallback(uint8_t endpoint); -/** @brief Commissioning Cluster Reset Startup Parameters - * - * - * - * @param options Ver.: always - * @param index Ver.: always - */ -bool emberAfCommissioningClusterResetStartupParametersCallback(uint8_t options, uint8_t index); -/** @brief Commissioning Cluster Reset Startup Parameters Response - * - * - * - * @param status Ver.: always - */ -bool emberAfCommissioningClusterResetStartupParametersResponseCallback(uint8_t status); -/** @brief Commissioning Cluster Restart Device - * - * - * - * @param options Ver.: always - * @param delay Ver.: always - * @param jitter Ver.: always - */ -bool emberAfCommissioningClusterRestartDeviceCallback(uint8_t options, uint8_t delay, uint8_t jitter); -/** @brief Commissioning Cluster Restart Device Response - * - * - * - * @param status Ver.: always - */ -bool emberAfCommissioningClusterRestartDeviceResponseCallback(uint8_t status); -/** @brief Commissioning Cluster Restore Startup Parameters - * - * - * - * @param options Ver.: always - * @param index Ver.: always - */ -bool emberAfCommissioningClusterRestoreStartupParametersCallback(uint8_t options, uint8_t index); -/** @brief Commissioning Cluster Restore Startup Parameters Response - * - * - * - * @param status Ver.: always - */ -bool emberAfCommissioningClusterRestoreStartupParametersResponseCallback(uint8_t status); -/** @brief Commissioning Cluster Save Startup Parameters - * - * - * - * @param options Ver.: always - * @param index Ver.: always - */ -bool emberAfCommissioningClusterSaveStartupParametersCallback(uint8_t options, uint8_t index); -/** @brief Commissioning Cluster Save Startup Parameters Response - * - * - * - * @param status Ver.: always - */ -bool emberAfCommissioningClusterSaveStartupParametersResponseCallback(uint8_t status); -/** @brief Commissioning Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfCommissioningClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Commissioning Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfCommissioningClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Commissioning Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfCommissioningClusterServerInitCallback(uint8_t endpoint); -/** @brief Commissioning Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfCommissioningClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Commissioning Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfCommissioningClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Commissioning Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfCommissioningClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Commissioning Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfCommissioningClusterServerTickCallback(uint8_t endpoint); - -/** @} END Commissioning Cluster Callbacks */ - -/** @name Partition Cluster Callbacks */ -// @{ - -/** @brief Partition Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfPartitionClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Partition Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfPartitionClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Partition Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfPartitionClusterClientInitCallback(uint8_t endpoint); -/** @brief Partition Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfPartitionClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Partition Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfPartitionClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Partition Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfPartitionClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Partition Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfPartitionClusterClientTickCallback(uint8_t endpoint); -/** @brief Partition Cluster Multiple Ack - * - * - * - * @param ackOptions Ver.: always - * @param firstFrameIdAndNackList Ver.: always - */ -bool emberAfPartitionClusterMultipleAckCallback(uint8_t ackOptions, uint8_t * firstFrameIdAndNackList); -/** @brief Partition Cluster Read Handshake Param - * - * - * - * @param partitionedClusterId Ver.: always - * @param attributeList Ver.: always - */ -bool emberAfPartitionClusterReadHandshakeParamCallback(uint16_t partitionedClusterId, uint8_t * attributeList); -/** @brief Partition Cluster Read Handshake Param Response - * - * - * - * @param partitionedClusterId Ver.: always - * @param readAttributeStatusRecords Ver.: always - */ -bool emberAfPartitionClusterReadHandshakeParamResponseCallback(uint16_t partitionedClusterId, uint8_t * readAttributeStatusRecords); -/** @brief Partition Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfPartitionClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Partition Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfPartitionClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Partition Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfPartitionClusterServerInitCallback(uint8_t endpoint); -/** @brief Partition Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfPartitionClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Partition Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfPartitionClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Partition Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfPartitionClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Partition Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfPartitionClusterServerTickCallback(uint8_t endpoint); -/** @brief Partition Cluster Transfer Partitioned Frame - * - * - * - * @param fragmentationOptions Ver.: always - * @param partitionedIndicatorAndFrame Ver.: always - */ -bool emberAfPartitionClusterTransferPartitionedFrameCallback(uint8_t fragmentationOptions, uint8_t * partitionedIndicatorAndFrame); -/** @brief Partition Cluster Write Handshake Param - * - * - * - * @param partitionedClusterId Ver.: always - * @param writeAttributeRecords Ver.: always - */ -bool emberAfPartitionClusterWriteHandshakeParamCallback(uint16_t partitionedClusterId, uint8_t * writeAttributeRecords); - -/** @} END Partition Cluster Callbacks */ - -/** @name Over the Air Bootloading Cluster Callbacks */ -// @{ - -/** @brief Over the Air Bootloading Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfOtaBootloadClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Over the Air Bootloading Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfOtaBootloadClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Over the Air Bootloading Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfOtaBootloadClusterClientInitCallback(uint8_t endpoint); -/** @brief Over the Air Bootloading Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfOtaBootloadClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Over the Air Bootloading Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfOtaBootloadClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Over the Air Bootloading Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfOtaBootloadClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Over the Air Bootloading Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfOtaBootloadClusterClientTickCallback(uint8_t endpoint); -/** @brief Over the Air Bootloading Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfOtaBootloadClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Over the Air Bootloading Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfOtaBootloadClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Over the Air Bootloading Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfOtaBootloadClusterServerInitCallback(uint8_t endpoint); -/** @brief Over the Air Bootloading Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfOtaBootloadClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Over the Air Bootloading Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfOtaBootloadClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Over the Air Bootloading Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfOtaBootloadClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Over the Air Bootloading Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfOtaBootloadClusterServerTickCallback(uint8_t endpoint); - -/** @} END Over the Air Bootloading Cluster Callbacks */ - -/** @name Power Profile Cluster Callbacks */ -// @{ - -/** @brief Power Profile Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfPowerProfileClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Power Profile Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfPowerProfileClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Power Profile Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfPowerProfileClusterClientInitCallback(uint8_t endpoint); -/** @brief Power Profile Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfPowerProfileClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Power Profile Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfPowerProfileClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Power Profile Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfPowerProfileClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Power Profile Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfPowerProfileClusterClientTickCallback(uint8_t endpoint); -/** @brief Power Profile Cluster Energy Phases Schedule Notification - * - * - * - * @param powerProfileId Ver.: always - * @param numOfScheduledPhases Ver.: always - * @param scheduledPhases Ver.: always - */ -bool emberAfPowerProfileClusterEnergyPhasesScheduleNotificationCallback(uint8_t powerProfileId, uint8_t numOfScheduledPhases, - uint8_t * scheduledPhases); -/** @brief Power Profile Cluster Energy Phases Schedule Request - * - * - * - * @param powerProfileId Ver.: always - */ -bool emberAfPowerProfileClusterEnergyPhasesScheduleRequestCallback(uint8_t powerProfileId); -/** @brief Power Profile Cluster Energy Phases Schedule Response - * - * - * - * @param powerProfileId Ver.: always - * @param numOfScheduledPhases Ver.: always - * @param scheduledPhases Ver.: always - */ -bool emberAfPowerProfileClusterEnergyPhasesScheduleResponseCallback(uint8_t powerProfileId, uint8_t numOfScheduledPhases, - uint8_t * scheduledPhases); -/** @brief Power Profile Cluster Energy Phases Schedule State Notification - * - * - * - * @param powerProfileId Ver.: always - * @param numOfScheduledPhases Ver.: always - * @param scheduledPhases Ver.: always - */ -bool emberAfPowerProfileClusterEnergyPhasesScheduleStateNotificationCallback(uint8_t powerProfileId, uint8_t numOfScheduledPhases, - uint8_t * scheduledPhases); -/** @brief Power Profile Cluster Energy Phases Schedule State Request - * - * - * - * @param powerProfileId Ver.: always - */ -bool emberAfPowerProfileClusterEnergyPhasesScheduleStateRequestCallback(uint8_t powerProfileId); -/** @brief Power Profile Cluster Energy Phases Schedule State Response - * - * - * - * @param powerProfileId Ver.: always - * @param numOfScheduledPhases Ver.: always - * @param scheduledPhases Ver.: always - */ -bool emberAfPowerProfileClusterEnergyPhasesScheduleStateResponseCallback(uint8_t powerProfileId, uint8_t numOfScheduledPhases, - uint8_t * scheduledPhases); -/** @brief Power Profile Cluster Get Overall Schedule Price - * - * - * - */ -bool emberAfPowerProfileClusterGetOverallSchedulePriceCallback(void); -/** @brief Power Profile Cluster Get Overall Schedule Price Response - * - * - * - * @param currency Ver.: always - * @param price Ver.: always - * @param priceTrailingDigit Ver.: always - */ -bool emberAfPowerProfileClusterGetOverallSchedulePriceResponseCallback(uint16_t currency, uint32_t price, - uint8_t priceTrailingDigit); -/** @brief Power Profile Cluster Get Power Profile Price - * - * - * - * @param powerProfileId Ver.: always - */ -bool emberAfPowerProfileClusterGetPowerProfilePriceCallback(uint8_t powerProfileId); -/** @brief Power Profile Cluster Get Power Profile Price Extended - * - * - * - * @param options Ver.: always - * @param powerProfileId Ver.: always - * @param powerProfileStartTime Ver.: always - */ -bool emberAfPowerProfileClusterGetPowerProfilePriceExtendedCallback(uint8_t options, uint8_t powerProfileId, - uint16_t powerProfileStartTime); -/** @brief Power Profile Cluster Get Power Profile Price Extended Response - * - * - * - * @param powerProfileId Ver.: always - * @param currency Ver.: always - * @param price Ver.: always - * @param priceTrailingDigit Ver.: always - */ -bool emberAfPowerProfileClusterGetPowerProfilePriceExtendedResponseCallback(uint8_t powerProfileId, uint16_t currency, - uint32_t price, uint8_t priceTrailingDigit); -/** @brief Power Profile Cluster Get Power Profile Price Response - * - * - * - * @param powerProfileId Ver.: always - * @param currency Ver.: always - * @param price Ver.: always - * @param priceTrailingDigit Ver.: always - */ -bool emberAfPowerProfileClusterGetPowerProfilePriceResponseCallback(uint8_t powerProfileId, uint16_t currency, uint32_t price, - uint8_t priceTrailingDigit); -/** @brief Power Profile Cluster Power Profile Notification - * - * - * - * @param totalProfileNum Ver.: always - * @param powerProfileId Ver.: always - * @param numOfTransferredPhases Ver.: always - * @param transferredPhases Ver.: always - */ -bool emberAfPowerProfileClusterPowerProfileNotificationCallback(uint8_t totalProfileNum, uint8_t powerProfileId, - uint8_t numOfTransferredPhases, uint8_t * transferredPhases); -/** @brief Power Profile Cluster Power Profile Request - * - * - * - * @param powerProfileId Ver.: always - */ -bool emberAfPowerProfileClusterPowerProfileRequestCallback(uint8_t powerProfileId); -/** @brief Power Profile Cluster Power Profile Response - * - * - * - * @param totalProfileNum Ver.: always - * @param powerProfileId Ver.: always - * @param numOfTransferredPhases Ver.: always - * @param transferredPhases Ver.: always - */ -bool emberAfPowerProfileClusterPowerProfileResponseCallback(uint8_t totalProfileNum, uint8_t powerProfileId, - uint8_t numOfTransferredPhases, uint8_t * transferredPhases); -/** @brief Power Profile Cluster Power Profile Schedule Constraints Notification - * - * - * - * @param powerProfileId Ver.: always - * @param startAfter Ver.: always - * @param stopBefore Ver.: always - */ -bool emberAfPowerProfileClusterPowerProfileScheduleConstraintsNotificationCallback(uint8_t powerProfileId, uint16_t startAfter, - uint16_t stopBefore); -/** @brief Power Profile Cluster Power Profile Schedule Constraints Request - * - * - * - * @param powerProfileId Ver.: always - */ -bool emberAfPowerProfileClusterPowerProfileScheduleConstraintsRequestCallback(uint8_t powerProfileId); -/** @brief Power Profile Cluster Power Profile Schedule Constraints Response - * - * - * - * @param powerProfileId Ver.: always - * @param startAfter Ver.: always - * @param stopBefore Ver.: always - */ -bool emberAfPowerProfileClusterPowerProfileScheduleConstraintsResponseCallback(uint8_t powerProfileId, uint16_t startAfter, - uint16_t stopBefore); -/** @brief Power Profile Cluster Power Profile State Request - * - * - * - */ -bool emberAfPowerProfileClusterPowerProfileStateRequestCallback(void); -/** @brief Power Profile Cluster Power Profile State Response - * - * - * - * @param powerProfileCount Ver.: always - * @param powerProfileRecords Ver.: always - */ -bool emberAfPowerProfileClusterPowerProfileStateResponseCallback(uint8_t powerProfileCount, uint8_t * powerProfileRecords); -/** @brief Power Profile Cluster Power Profiles State Notification - * - * - * - * @param powerProfileCount Ver.: always - * @param powerProfileRecords Ver.: always - */ -bool emberAfPowerProfileClusterPowerProfilesStateNotificationCallback(uint8_t powerProfileCount, uint8_t * powerProfileRecords); -/** @brief Power Profile Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfPowerProfileClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Power Profile Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfPowerProfileClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Power Profile Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfPowerProfileClusterServerInitCallback(uint8_t endpoint); -/** @brief Power Profile Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfPowerProfileClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Power Profile Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfPowerProfileClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Power Profile Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfPowerProfileClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Power Profile Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfPowerProfileClusterServerTickCallback(uint8_t endpoint); - -/** @} END Power Profile Cluster Callbacks */ - -/** @name Appliance Control Cluster Callbacks */ -// @{ - -/** @brief Appliance Control Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfApplianceControlClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Appliance Control Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfApplianceControlClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Appliance Control Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfApplianceControlClusterClientInitCallback(uint8_t endpoint); -/** @brief Appliance Control Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfApplianceControlClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Appliance Control Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfApplianceControlClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Appliance Control Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfApplianceControlClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Appliance Control Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfApplianceControlClusterClientTickCallback(uint8_t endpoint); -/** @brief Appliance Control Cluster Execution Of A Command - * - * - * - * @param commandId Ver.: always - */ -bool emberAfApplianceControlClusterExecutionOfACommandCallback(uint8_t commandId); -/** @brief Appliance Control Cluster Overload Pause - * - * - * - */ -bool emberAfApplianceControlClusterOverloadPauseCallback(void); -/** @brief Appliance Control Cluster Overload Pause Resume - * - * - * - */ -bool emberAfApplianceControlClusterOverloadPauseResumeCallback(void); -/** @brief Appliance Control Cluster Overload Warning - * - * - * - * @param warningEvent Ver.: always - */ -bool emberAfApplianceControlClusterOverloadWarningCallback(uint8_t warningEvent); -/** @brief Appliance Control Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfApplianceControlClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Appliance Control Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfApplianceControlClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Appliance Control Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfApplianceControlClusterServerInitCallback(uint8_t endpoint); -/** @brief Appliance Control Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfApplianceControlClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Appliance Control Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfApplianceControlClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Appliance Control Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfApplianceControlClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Appliance Control Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfApplianceControlClusterServerTickCallback(uint8_t endpoint); -/** @brief Appliance Control Cluster Signal State - * - * - * - */ -bool emberAfApplianceControlClusterSignalStateCallback(void); -/** @brief Appliance Control Cluster Signal State Notification - * - * - * - * @param applianceStatus Ver.: always - * @param remoteEnableFlagsAndDeviceStatus2 Ver.: always - * @param applianceStatus2 Ver.: always - */ -bool emberAfApplianceControlClusterSignalStateNotificationCallback(uint8_t applianceStatus, - uint8_t remoteEnableFlagsAndDeviceStatus2, - uint32_t applianceStatus2); -/** @brief Appliance Control Cluster Signal State Response - * - * - * - * @param applianceStatus Ver.: always - * @param remoteEnableFlagsAndDeviceStatus2 Ver.: always - * @param applianceStatus2 Ver.: always - */ -bool emberAfApplianceControlClusterSignalStateResponseCallback(uint8_t applianceStatus, uint8_t remoteEnableFlagsAndDeviceStatus2, - uint32_t applianceStatus2); -/** @brief Appliance Control Cluster Write Functions - * - * - * - * @param functionId Ver.: always - * @param functionDataType Ver.: always - * @param functionData Ver.: always - */ -bool emberAfApplianceControlClusterWriteFunctionsCallback(uint16_t functionId, uint8_t functionDataType, uint8_t * functionData); - -/** @} END Appliance Control Cluster Callbacks */ - -/** @name Poll Control Cluster Callbacks */ -// @{ - -/** @brief Poll Control Cluster Check In - * - * - * - */ -bool emberAfPollControlClusterCheckInCallback(void); -/** @brief Poll Control Cluster Check In Response - * - * - * - * @param startFastPolling Ver.: always - * @param fastPollTimeout Ver.: always - */ -bool emberAfPollControlClusterCheckInResponseCallback(uint8_t startFastPolling, uint16_t fastPollTimeout); -/** @brief Poll Control Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfPollControlClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Poll Control Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfPollControlClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Poll Control Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfPollControlClusterClientInitCallback(uint8_t endpoint); -/** @brief Poll Control Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfPollControlClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Poll Control Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfPollControlClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Poll Control Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfPollControlClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Poll Control Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfPollControlClusterClientTickCallback(uint8_t endpoint); -/** @brief Poll Control Cluster Fast Poll Stop - * - * - * - */ -bool emberAfPollControlClusterFastPollStopCallback(void); -/** @brief Poll Control Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfPollControlClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Poll Control Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfPollControlClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Poll Control Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfPollControlClusterServerInitCallback(uint8_t endpoint); -/** @brief Poll Control Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfPollControlClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Poll Control Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfPollControlClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Poll Control Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfPollControlClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Poll Control Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfPollControlClusterServerTickCallback(uint8_t endpoint); -/** @brief Poll Control Cluster Set Long Poll Interval - * - * - * - * @param newLongPollInterval Ver.: always - */ -bool emberAfPollControlClusterSetLongPollIntervalCallback(uint32_t newLongPollInterval); -/** @brief Poll Control Cluster Set Short Poll Interval - * - * - * - * @param newShortPollInterval Ver.: always - */ -bool emberAfPollControlClusterSetShortPollIntervalCallback(uint16_t newShortPollInterval); - -/** @} END Poll Control Cluster Callbacks */ - -/** @name Green Power Cluster Callbacks */ -// @{ - -/** @brief Green Power Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfGreenPowerClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Green Power Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfGreenPowerClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Green Power Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfGreenPowerClusterClientInitCallback(uint8_t endpoint); -/** @brief Green Power Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfGreenPowerClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Green Power Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfGreenPowerClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Green Power Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfGreenPowerClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Green Power Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfGreenPowerClusterClientTickCallback(uint8_t endpoint); -/** @brief Green Power Cluster Gp Commissioning Notification - * - * - * - * @param options Ver.: since gp-1.0-09-5499-24 - * @param gpdSrcId Ver.: since gp-1.0-09-5499-24 - * @param gpdIeee Ver.: since gp-1.0-09-5499-24 - * @param endpoint Ver.: since gp-1.0-09-5499-24 - * @param gpdSecurityFrameCounter Ver.: since gp-1.0-09-5499-24 - * @param gpdCommandId Ver.: since gp-1.0-09-5499-24 - * @param gpdCommandPayload Ver.: since gp-1.0-09-5499-24 - * @param gppShortAddress Ver.: since gp-1.0-09-5499-24 - * @param gppLink Ver.: since gp-1.0-09-5499-24 - * @param mic Ver.: since gp-1.0-09-5499-24 - */ -bool emberAfGreenPowerClusterGpCommissioningNotificationCallback(uint16_t options, uint32_t gpdSrcId, uint8_t * gpdIeee, - uint8_t endpoint, uint32_t gpdSecurityFrameCounter, - uint8_t gpdCommandId, uint8_t * gpdCommandPayload, - uint16_t gppShortAddress, uint8_t gppLink, uint32_t mic); -/** @brief Green Power Cluster Gp Notification - * - * - * - * @param options Ver.: since gp-1.0-09-5499-24 - * @param gpdSrcId Ver.: since gp-1.0-09-5499-24 - * @param gpdIeee Ver.: since gp-1.0-09-5499-24 - * @param gpdEndpoint Ver.: since gp-1.0-09-5499-24 - * @param gpdSecurityFrameCounter Ver.: since gp-1.0-09-5499-24 - * @param gpdCommandId Ver.: since gp-1.0-09-5499-24 - * @param gpdCommandPayload Ver.: since gp-1.0-09-5499-24 - * @param gppShortAddress Ver.: since gp-1.0-09-5499-24 - * @param gppDistance Ver.: since gp-1.0-09-5499-24 - */ -bool emberAfGreenPowerClusterGpNotificationCallback(uint16_t options, uint32_t gpdSrcId, uint8_t * gpdIeee, uint8_t gpdEndpoint, - uint32_t gpdSecurityFrameCounter, uint8_t gpdCommandId, - uint8_t * gpdCommandPayload, uint16_t gppShortAddress, uint8_t gppDistance); -/** @brief Green Power Cluster Gp Notification Response - * - * - * - * @param options Ver.: since gp-1.0-09-5499-24 - * @param gpdSrcId Ver.: since gp-1.0-09-5499-24 - * @param gpdIeee Ver.: since gp-1.0-09-5499-24 - * @param endpoint Ver.: since gp-1.0-09-5499-24 - * @param gpdSecurityFrameCounter Ver.: since gp-1.0-09-5499-24 - */ -bool emberAfGreenPowerClusterGpNotificationResponseCallback(uint8_t options, uint32_t gpdSrcId, uint8_t * gpdIeee, uint8_t endpoint, - uint32_t gpdSecurityFrameCounter); -/** @brief Green Power Cluster Gp Pairing - * - * - * - * @param options Ver.: since gp-1.0-09-5499-24 - * @param gpdSrcId Ver.: since gp-1.0-09-5499-24 - * @param gpdIeee Ver.: since gp-1.0-09-5499-24 - * @param endpoint Ver.: since gp-1.0-09-5499-24 - * @param sinkIeeeAddress Ver.: since gp-1.0-09-5499-24 - * @param sinkNwkAddress Ver.: since gp-1.0-09-5499-24 - * @param sinkGroupId Ver.: since gp-1.0-09-5499-24 - * @param deviceId Ver.: since gp-1.0-09-5499-24 - * @param gpdSecurityFrameCounter Ver.: since gp-1.0-09-5499-24 - * @param gpdKey Ver.: since gp-1.0-09-5499-24 - * @param assignedAlias Ver.: since gp-1.0-09-5499-24 - * @param groupcastRadius Ver.: since gp-1.0-09-5499-24 - */ -bool emberAfGreenPowerClusterGpPairingCallback(uint32_t options, uint32_t gpdSrcId, uint8_t * gpdIeee, uint8_t endpoint, - uint8_t * sinkIeeeAddress, uint16_t sinkNwkAddress, uint16_t sinkGroupId, - uint8_t deviceId, uint32_t gpdSecurityFrameCounter, uint8_t * gpdKey, - uint16_t assignedAlias, uint8_t groupcastRadius); -/** @brief Green Power Cluster Gp Pairing Configuration - * - * - * - * @param actions Ver.: since gp-1.0-09-5499-24 - * @param options Ver.: since gp-1.0-09-5499-24 - * @param gpdSrcId Ver.: since gp-1.0-09-5499-24 - * @param gpdIeee Ver.: since gp-1.0-09-5499-24 - * @param endpoint Ver.: since gp-1.0-09-5499-24 - * @param deviceId Ver.: since gp-1.0-09-5499-24 - * @param groupListCount Ver.: since gp-1.0-09-5499-24 - * @param groupList Ver.: since gp-1.0-09-5499-24 - * @param gpdAssignedAlias Ver.: since gp-1.0-09-5499-24 - * @param groupcastRadius Ver.: since gp-1.0-15-2014-05-CCB2180 - * @param securityOptions Ver.: since gp-1.0-09-5499-24 - * @param gpdSecurityFrameCounter Ver.: since gp-1.0-09-5499-24 - * @param gpdSecurityKey Ver.: since gp-1.0-09-5499-24 - * @param numberOfPairedEndpoints Ver.: since gp-1.0-09-5499-24 - * @param pairedEndpoints Ver.: since gp-1.0-09-5499-24 - * @param applicationInformation Ver.: always - * @param manufacturerId Ver.: always - * @param modeId Ver.: always - * @param numberOfGpdCommands Ver.: always - * @param gpdCommandIdList Ver.: always - * @param clusterIdListCount Ver.: always - * @param clusterListServer Ver.: always - * @param clusterListClient Ver.: always - * @param switchInformationLength Ver.: always - * @param switchConfiguration Ver.: always - * @param currentContactStatus Ver.: always - * @param totalNumberOfReports Ver.: always - * @param numberOfReports Ver.: always - * @param reportDescriptor Ver.: always - */ -bool emberAfGreenPowerClusterGpPairingConfigurationCallback( - uint8_t actions, uint16_t options, uint32_t gpdSrcId, uint8_t * gpdIeee, uint8_t endpoint, uint8_t deviceId, - uint8_t groupListCount, uint8_t * groupList, uint16_t gpdAssignedAlias, uint8_t groupcastRadius, uint8_t securityOptions, - uint32_t gpdSecurityFrameCounter, uint8_t * gpdSecurityKey, uint8_t numberOfPairedEndpoints, uint8_t * pairedEndpoints, - uint8_t applicationInformation, uint16_t manufacturerId, uint16_t modeId, uint8_t numberOfGpdCommands, - uint8_t * gpdCommandIdList, uint8_t clusterIdListCount, uint8_t * clusterListServer, uint8_t * clusterListClient, - uint8_t switchInformationLength, uint8_t switchConfiguration, uint8_t currentContactStatus, uint8_t totalNumberOfReports, - uint8_t numberOfReports, uint8_t * reportDescriptor); -/** @brief Green Power Cluster Gp Pairing Search - * - * - * - * @param options Ver.: since gp-1.0-09-5499-24 - * @param gpdSrcId Ver.: since gp-1.0-09-5499-24 - * @param gpdIeee Ver.: since gp-1.0-09-5499-24 - * @param endpoint Ver.: always - */ -bool emberAfGreenPowerClusterGpPairingSearchCallback(uint16_t options, uint32_t gpdSrcId, uint8_t * gpdIeee, uint8_t endpoint); -/** @brief Green Power Cluster Gp Proxy Commissioning Mode - * - * - * - * @param options Ver.: since gp-1.0-09-5499-24 - * @param commissioningWindow Ver.: since gp-1.0-15-02014-011 - * @param channel Ver.: since gp-1.0-09-5499-24 - */ -bool emberAfGreenPowerClusterGpProxyCommissioningModeCallback(uint8_t options, uint16_t commissioningWindow, uint8_t channel); -/** @brief Green Power Cluster Gp Proxy Table Request - * - * - * - * @param options Ver.: always - * @param gpdSrcId Ver.: always - * @param gpdIeee Ver.: always - * @param endpoint Ver.: always - * @param index Ver.: always - */ -bool emberAfGreenPowerClusterGpProxyTableRequestCallback(uint8_t options, uint32_t gpdSrcId, uint8_t * gpdIeee, uint8_t endpoint, - uint8_t index); -/** @brief Green Power Cluster Gp Proxy Table Response - * - * - * - * @param status Ver.: always - * @param totalNumberOfNonEmptyProxyTableEntries Ver.: always - * @param startIndex Ver.: always - * @param entriesCount Ver.: always - * @param proxyTableEntries Ver.: always - */ -bool emberAfGreenPowerClusterGpProxyTableResponseCallback(uint8_t status, uint8_t totalNumberOfNonEmptyProxyTableEntries, - uint8_t startIndex, uint8_t entriesCount, uint8_t * proxyTableEntries); -/** @brief Green Power Cluster Gp Response - * - * - * - * @param options Ver.: since gp-1.0-09-5499-24 - * @param tempMasterShortAddress Ver.: since gp-1.0-09-5499-24 - * @param tempMasterTxChannel Ver.: since gp-1.0-09-5499-24 - * @param gpdSrcId Ver.: since gp-1.0-09-5499-24 - * @param gpdIeee Ver.: since gp-1.0-09-5499-24 - * @param endpoint Ver.: always - * @param gpdCommandId Ver.: since gp-1.0-09-5499-24 - * @param gpdCommandPayload Ver.: always - */ -bool emberAfGreenPowerClusterGpResponseCallback(uint8_t options, uint16_t tempMasterShortAddress, uint8_t tempMasterTxChannel, - uint32_t gpdSrcId, uint8_t * gpdIeee, uint8_t endpoint, uint8_t gpdCommandId, - uint8_t * gpdCommandPayload); -/** @brief Green Power Cluster Gp Sink Commissioning Mode - * - * - * - * @param options Ver.: always - * @param gpmAddrForSecurity Ver.: always - * @param gpmAddrForPairing Ver.: always - * @param sinkEndpoint Ver.: always - */ -bool emberAfGreenPowerClusterGpSinkCommissioningModeCallback(uint8_t options, uint16_t gpmAddrForSecurity, - uint16_t gpmAddrForPairing, uint8_t sinkEndpoint); -/** @brief Green Power Cluster Gp Sink Table Request - * - * - * - * @param options Ver.: always - * @param gpdSrcId Ver.: always - * @param gpdIeee Ver.: always - * @param endpoint Ver.: always - * @param index Ver.: always - */ -bool emberAfGreenPowerClusterGpSinkTableRequestCallback(uint8_t options, uint32_t gpdSrcId, uint8_t * gpdIeee, uint8_t endpoint, - uint8_t index); -/** @brief Green Power Cluster Gp Sink Table Response - * - * - * - * @param status Ver.: always - * @param totalNumberofNonEmptySinkTableEntries Ver.: always - * @param startIndex Ver.: always - * @param sinkTableEntriesCount Ver.: always - * @param sinkTableEntries Ver.: always - */ -bool emberAfGreenPowerClusterGpSinkTableResponseCallback(uint8_t status, uint8_t totalNumberofNonEmptySinkTableEntries, - uint8_t startIndex, uint8_t sinkTableEntriesCount, - uint8_t * sinkTableEntries); -/** @brief Green Power Cluster Gp Translation Table Request - * - * - * - * @param startIndex Ver.: since gp-1.0-09-5499-24 - */ -bool emberAfGreenPowerClusterGpTranslationTableRequestCallback(uint8_t startIndex); -/** @brief Green Power Cluster Gp Translation Table Response - * - * - * - * @param status Ver.: since gp-1.0-09-5499-24 - * @param options Ver.: since gp-1.0-09-5499-24 - * @param totalNumberOfEntries Ver.: since gp-1.0-09-5499-24 - * @param startIndex Ver.: since gp-1.0-09-5499-24 - * @param entriesCount Ver.: since gp-1.0-09-5499-24 - * @param translationTableList Ver.: since gp-1.0-09-5499-24 - */ -bool emberAfGreenPowerClusterGpTranslationTableResponseCallback(uint8_t status, uint8_t options, uint8_t totalNumberOfEntries, - uint8_t startIndex, uint8_t entriesCount, - uint8_t * translationTableList); -/** @brief Green Power Cluster Gp Translation Table Update - * - * - * - * @param options Ver.: since gp-1.0-09-5499-24 - * @param gpdSrcId Ver.: since gp-1.0-09-5499-24 - * @param gpdIeee Ver.: since gp-1.0-09-5499-24 - * @param endpoint Ver.: since gp-1.0-09-5499-24 - * @param translations Ver.: since gp-1.0-09-5499-24 - */ -bool emberAfGreenPowerClusterGpTranslationTableUpdateCallback(uint16_t options, uint32_t gpdSrcId, uint8_t * gpdIeee, - uint8_t endpoint, uint8_t * translations); -/** @brief Green Power Cluster Gp Tunneling Stop - * - * - * - * @param options Ver.: since gp-1.0-09-5499-24 - * @param gpdSrcId Ver.: since gp-1.0-09-5499-24 - * @param gpdIeee Ver.: since gp-1.0-09-5499-24 - * @param endpoint Ver.: since gp-1.0-09-5499-24 - * @param gpdSecurityFrameCounter Ver.: since gp-1.0-09-5499-24 - * @param gppShortAddress Ver.: since gp-1.0-09-5499-24 - * @param gppDistance Ver.: since gp-1.0-09-5499-24 - */ -bool emberAfGreenPowerClusterGpTunnelingStopCallback(uint8_t options, uint32_t gpdSrcId, uint8_t * gpdIeee, uint8_t endpoint, - uint32_t gpdSecurityFrameCounter, uint16_t gppShortAddress, - int8_t gppDistance); -/** @brief Green Power Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfGreenPowerClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Green Power Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfGreenPowerClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Green Power Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfGreenPowerClusterServerInitCallback(uint8_t endpoint); -/** @brief Green Power Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfGreenPowerClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Green Power Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfGreenPowerClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Green Power Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfGreenPowerClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Green Power Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfGreenPowerClusterServerTickCallback(uint8_t endpoint); - -/** @} END Green Power Cluster Callbacks */ - -/** @name Keep-Alive Cluster Callbacks */ -// @{ - -/** @brief Keep-Alive Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfKeepaliveClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Keep-Alive Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfKeepaliveClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Keep-Alive Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfKeepaliveClusterClientInitCallback(uint8_t endpoint); -/** @brief Keep-Alive Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfKeepaliveClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Keep-Alive Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfKeepaliveClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Keep-Alive Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfKeepaliveClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Keep-Alive Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfKeepaliveClusterClientTickCallback(uint8_t endpoint); -/** @brief Keep-Alive Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfKeepaliveClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Keep-Alive Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfKeepaliveClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Keep-Alive Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfKeepaliveClusterServerInitCallback(uint8_t endpoint); -/** @brief Keep-Alive Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfKeepaliveClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Keep-Alive Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfKeepaliveClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Keep-Alive Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfKeepaliveClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Keep-Alive Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfKeepaliveClusterServerTickCallback(uint8_t endpoint); - -/** @} END Keep-Alive Cluster Callbacks */ - -/** @name Shade Configuration Cluster Callbacks */ -// @{ - -/** @brief Shade Configuration Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfShadeConfigClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Shade Configuration Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfShadeConfigClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Shade Configuration Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfShadeConfigClusterClientInitCallback(uint8_t endpoint); -/** @brief Shade Configuration Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfShadeConfigClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Shade Configuration Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfShadeConfigClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Shade Configuration Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfShadeConfigClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Shade Configuration Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfShadeConfigClusterClientTickCallback(uint8_t endpoint); -/** @brief Shade Configuration Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfShadeConfigClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Shade Configuration Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfShadeConfigClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Shade Configuration Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfShadeConfigClusterServerInitCallback(uint8_t endpoint); -/** @brief Shade Configuration Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfShadeConfigClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Shade Configuration Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfShadeConfigClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Shade Configuration Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfShadeConfigClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Shade Configuration Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfShadeConfigClusterServerTickCallback(uint8_t endpoint); - -/** @} END Shade Configuration Cluster Callbacks */ - -/** @name Door Lock Cluster Callbacks */ -// @{ - -/** @brief Door Lock Cluster Clear All Pins - * - * - * - */ -bool emberAfDoorLockClusterClearAllPinsCallback(void); -/** @brief Door Lock Cluster Clear All Pins Response - * - * - * - * @param status Ver.: always - */ -bool emberAfDoorLockClusterClearAllPinsResponseCallback(uint8_t status); -/** @brief Door Lock Cluster Clear All Rfids - * - * - * - */ -bool emberAfDoorLockClusterClearAllRfidsCallback(void); -/** @brief Door Lock Cluster Clear All Rfids Response - * - * - * - * @param status Ver.: always - */ -bool emberAfDoorLockClusterClearAllRfidsResponseCallback(uint8_t status); -/** @brief Door Lock Cluster Clear Holiday Schedule - * - * - * - * @param scheduleId Ver.: always - */ -bool emberAfDoorLockClusterClearHolidayScheduleCallback(uint8_t scheduleId); -/** @brief Door Lock Cluster Clear Holiday Schedule Response - * - * - * - * @param status Ver.: always - */ -bool emberAfDoorLockClusterClearHolidayScheduleResponseCallback(uint8_t status); -/** @brief Door Lock Cluster Clear Pin - * - * - * - * @param userId Ver.: always - */ -bool emberAfDoorLockClusterClearPinCallback(uint16_t userId); -/** @brief Door Lock Cluster Clear Pin Response - * - * - * - * @param status Ver.: always - */ -bool emberAfDoorLockClusterClearPinResponseCallback(uint8_t status); -/** @brief Door Lock Cluster Clear Rfid - * - * - * - * @param userId Ver.: always - */ -bool emberAfDoorLockClusterClearRfidCallback(uint16_t userId); -/** @brief Door Lock Cluster Clear Rfid Response - * - * - * - * @param status Ver.: always - */ -bool emberAfDoorLockClusterClearRfidResponseCallback(uint8_t status); -/** @brief Door Lock Cluster Clear Weekday Schedule - * - * - * - * @param scheduleId Ver.: always - * @param userId Ver.: always - */ -bool emberAfDoorLockClusterClearWeekdayScheduleCallback(uint8_t scheduleId, uint16_t userId); -/** @brief Door Lock Cluster Clear Weekday Schedule Response - * - * - * - * @param status Ver.: always - */ -bool emberAfDoorLockClusterClearWeekdayScheduleResponseCallback(uint8_t status); -/** @brief Door Lock Cluster Clear Yearday Schedule - * - * - * - * @param scheduleId Ver.: always - * @param userId Ver.: always - */ -bool emberAfDoorLockClusterClearYeardayScheduleCallback(uint8_t scheduleId, uint16_t userId); -/** @brief Door Lock Cluster Clear Yearday Schedule Response - * - * - * - * @param status Ver.: always - */ -bool emberAfDoorLockClusterClearYeardayScheduleResponseCallback(uint8_t status); -/** @brief Door Lock Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfDoorLockClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Door Lock Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfDoorLockClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Door Lock Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfDoorLockClusterClientInitCallback(uint8_t endpoint); -/** @brief Door Lock Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfDoorLockClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Door Lock Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfDoorLockClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Door Lock Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfDoorLockClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Door Lock Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfDoorLockClusterClientTickCallback(uint8_t endpoint); -/** @brief Door Lock Cluster Get Holiday Schedule - * - * - * - * @param scheduleId Ver.: always - */ -bool emberAfDoorLockClusterGetHolidayScheduleCallback(uint8_t scheduleId); -/** @brief Door Lock Cluster Get Holiday Schedule Response - * - * - * - * @param scheduleId Ver.: always - * @param status Ver.: always - * @param localStartTime Ver.: since ha-1.2-05-3520-29 - * @param localEndTime Ver.: since ha-1.2-05-3520-29 - * @param operatingModeDuringHoliday Ver.: since ha-1.2-05-3520-29 - */ -bool emberAfDoorLockClusterGetHolidayScheduleResponseCallback(uint8_t scheduleId, uint8_t status, uint32_t localStartTime, - uint32_t localEndTime, uint8_t operatingModeDuringHoliday); -/** @brief Door Lock Cluster Get Log Record - * - * - * - * @param logIndex Ver.: always - */ -bool emberAfDoorLockClusterGetLogRecordCallback(uint16_t logIndex); -/** @brief Door Lock Cluster Get Log Record Response - * - * - * - * @param logEntryId Ver.: always - * @param timestamp Ver.: always - * @param eventType Ver.: always - * @param source Ver.: always - * @param eventIdOrAlarmCode Ver.: always - * @param userId Ver.: always - * @param pin Ver.: always - */ -bool emberAfDoorLockClusterGetLogRecordResponseCallback(uint16_t logEntryId, uint32_t timestamp, uint8_t eventType, uint8_t source, - uint8_t eventIdOrAlarmCode, uint16_t userId, uint8_t * pin); -/** @brief Door Lock Cluster Get Pin - * - * - * - * @param userId Ver.: always - */ -bool emberAfDoorLockClusterGetPinCallback(uint16_t userId); -/** @brief Door Lock Cluster Get Pin Response - * - * - * - * @param userId Ver.: always - * @param userStatus Ver.: always - * @param userType Ver.: always - * @param pin Ver.: always - */ -bool emberAfDoorLockClusterGetPinResponseCallback(uint16_t userId, uint8_t userStatus, uint8_t userType, uint8_t * pin); -/** @brief Door Lock Cluster Get Rfid - * - * - * - * @param userId Ver.: always - */ -bool emberAfDoorLockClusterGetRfidCallback(uint16_t userId); -/** @brief Door Lock Cluster Get Rfid Response - * - * - * - * @param userId Ver.: always - * @param userStatus Ver.: always - * @param userType Ver.: always - * @param rfid Ver.: always - */ -bool emberAfDoorLockClusterGetRfidResponseCallback(uint16_t userId, uint8_t userStatus, uint8_t userType, uint8_t * rfid); -/** @brief Door Lock Cluster Get User Status - * - * - * - * @param userId Ver.: always - */ -bool emberAfDoorLockClusterGetUserStatusCallback(uint16_t userId); -/** @brief Door Lock Cluster Get User Status Response - * - * - * - * @param userId Ver.: always - * @param status Ver.: always - */ -bool emberAfDoorLockClusterGetUserStatusResponseCallback(uint16_t userId, uint8_t status); -/** @brief Door Lock Cluster Get User Type - * - * - * - * @param userId Ver.: always - */ -bool emberAfDoorLockClusterGetUserTypeCallback(uint16_t userId); -/** @brief Door Lock Cluster Get User Type Response - * - * - * - * @param userId Ver.: always - * @param userType Ver.: always - */ -bool emberAfDoorLockClusterGetUserTypeResponseCallback(uint16_t userId, uint8_t userType); -/** @brief Door Lock Cluster Get Weekday Schedule - * - * - * - * @param scheduleId Ver.: always - * @param userId Ver.: always - */ -bool emberAfDoorLockClusterGetWeekdayScheduleCallback(uint8_t scheduleId, uint16_t userId); -/** @brief Door Lock Cluster Get Weekday Schedule Response - * - * - * - * @param scheduleId Ver.: always - * @param userId Ver.: always - * @param status Ver.: always - * @param daysMask Ver.: since ha-1.2-05-3520-29 - * @param startHour Ver.: since ha-1.2-05-3520-29 - * @param startMinute Ver.: since ha-1.2-05-3520-29 - * @param endHour Ver.: since ha-1.2-05-3520-29 - * @param endMinute Ver.: since ha-1.2-05-3520-29 - */ -bool emberAfDoorLockClusterGetWeekdayScheduleResponseCallback(uint8_t scheduleId, uint16_t userId, uint8_t status, uint8_t daysMask, - uint8_t startHour, uint8_t startMinute, uint8_t endHour, - uint8_t endMinute); -/** @brief Door Lock Cluster Get Yearday Schedule - * - * - * - * @param scheduleId Ver.: always - * @param userId Ver.: always - */ -bool emberAfDoorLockClusterGetYeardayScheduleCallback(uint8_t scheduleId, uint16_t userId); -/** @brief Door Lock Cluster Get Yearday Schedule Response - * - * - * - * @param scheduleId Ver.: always - * @param userId Ver.: always - * @param status Ver.: always - * @param localStartTime Ver.: since ha-1.2-05-3520-29 - * @param localEndTime Ver.: since ha-1.2-05-3520-29 - */ -bool emberAfDoorLockClusterGetYeardayScheduleResponseCallback(uint8_t scheduleId, uint16_t userId, uint8_t status, - uint32_t localStartTime, uint32_t localEndTime); -/** @brief Door Lock Cluster Lock Door - * - * - * - * @param PIN Ver.: since ha-1.2-05-3520-29 - */ -bool emberAfDoorLockClusterLockDoorCallback(uint8_t * PIN); -/** @brief Door Lock Cluster Lock Door Response - * - * - * - * @param status Ver.: always - */ -bool emberAfDoorLockClusterLockDoorResponseCallback(uint8_t status); -/** @brief Door Lock Cluster Operation Event Notification - * - * - * - * @param source Ver.: always - * @param eventCode Ver.: always - * @param userId Ver.: always - * @param pin Ver.: always - * @param timeStamp Ver.: always - * @param data Ver.: since ha-1.2-05-3520-29 - */ -bool emberAfDoorLockClusterOperationEventNotificationCallback(uint8_t source, uint8_t eventCode, uint16_t userId, uint8_t * pin, - uint32_t timeStamp, uint8_t * data); -/** @brief Door Lock Cluster Programming Event Notification - * - * - * - * @param source Ver.: always - * @param eventCode Ver.: always - * @param userId Ver.: always - * @param pin Ver.: always - * @param userType Ver.: always - * @param userStatus Ver.: always - * @param timeStamp Ver.: always - * @param data Ver.: since ha-1.2-05-3520-29 - */ -bool emberAfDoorLockClusterProgrammingEventNotificationCallback(uint8_t source, uint8_t eventCode, uint16_t userId, uint8_t * pin, - uint8_t userType, uint8_t userStatus, uint32_t timeStamp, - uint8_t * data); -/** @brief Door Lock Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfDoorLockClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Door Lock Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfDoorLockClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Door Lock Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfDoorLockClusterServerInitCallback(uint8_t endpoint); -/** @brief Door Lock Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfDoorLockClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Door Lock Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfDoorLockClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Door Lock Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfDoorLockClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Door Lock Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfDoorLockClusterServerTickCallback(uint8_t endpoint); -/** @brief Door Lock Cluster Set Holiday Schedule - * - * - * - * @param scheduleId Ver.: always - * @param localStartTime Ver.: always - * @param localEndTime Ver.: always - * @param operatingModeDuringHoliday Ver.: always - */ -bool emberAfDoorLockClusterSetHolidayScheduleCallback(uint8_t scheduleId, uint32_t localStartTime, uint32_t localEndTime, - uint8_t operatingModeDuringHoliday); -/** @brief Door Lock Cluster Set Holiday Schedule Response - * - * - * - * @param status Ver.: always - */ -bool emberAfDoorLockClusterSetHolidayScheduleResponseCallback(uint8_t status); -/** @brief Door Lock Cluster Set Pin - * - * - * - * @param userId Ver.: always - * @param userStatus Ver.: always - * @param userType Ver.: always - * @param pin Ver.: always - */ -bool emberAfDoorLockClusterSetPinCallback(uint16_t userId, uint8_t userStatus, uint8_t userType, uint8_t * pin); -/** @brief Door Lock Cluster Set Pin Response - * - * - * - * @param status Ver.: always - */ -bool emberAfDoorLockClusterSetPinResponseCallback(uint8_t status); -/** @brief Door Lock Cluster Set Rfid - * - * - * - * @param userId Ver.: always - * @param userStatus Ver.: always - * @param userType Ver.: always - * @param id Ver.: always - */ -bool emberAfDoorLockClusterSetRfidCallback(uint16_t userId, uint8_t userStatus, uint8_t userType, uint8_t * id); -/** @brief Door Lock Cluster Set Rfid Response - * - * - * - * @param status Ver.: always - */ -bool emberAfDoorLockClusterSetRfidResponseCallback(uint8_t status); -/** @brief Door Lock Cluster Set User Status - * - * - * - * @param userId Ver.: always - * @param userStatus Ver.: always - */ -bool emberAfDoorLockClusterSetUserStatusCallback(uint16_t userId, uint8_t userStatus); -/** @brief Door Lock Cluster Set User Status Response - * - * - * - * @param status Ver.: always - */ -bool emberAfDoorLockClusterSetUserStatusResponseCallback(uint8_t status); -/** @brief Door Lock Cluster Set User Type - * - * - * - * @param userId Ver.: always - * @param userType Ver.: always - */ -bool emberAfDoorLockClusterSetUserTypeCallback(uint16_t userId, uint8_t userType); -/** @brief Door Lock Cluster Set User Type Response - * - * - * - * @param status Ver.: always - */ -bool emberAfDoorLockClusterSetUserTypeResponseCallback(uint8_t status); -/** @brief Door Lock Cluster Set Weekday Schedule - * - * - * - * @param scheduleId Ver.: always - * @param userId Ver.: always - * @param daysMask Ver.: always - * @param startHour Ver.: always - * @param startMinute Ver.: always - * @param endHour Ver.: always - * @param endMinute Ver.: always - */ -bool emberAfDoorLockClusterSetWeekdayScheduleCallback(uint8_t scheduleId, uint16_t userId, uint8_t daysMask, uint8_t startHour, - uint8_t startMinute, uint8_t endHour, uint8_t endMinute); -/** @brief Door Lock Cluster Set Weekday Schedule Response - * - * - * - * @param status Ver.: always - */ -bool emberAfDoorLockClusterSetWeekdayScheduleResponseCallback(uint8_t status); -/** @brief Door Lock Cluster Set Yearday Schedule - * - * - * - * @param scheduleId Ver.: always - * @param userId Ver.: always - * @param localStartTime Ver.: always - * @param localEndTime Ver.: always - */ -bool emberAfDoorLockClusterSetYeardayScheduleCallback(uint8_t scheduleId, uint16_t userId, uint32_t localStartTime, - uint32_t localEndTime); -/** @brief Door Lock Cluster Set Yearday Schedule Response - * - * - * - * @param status Ver.: always - */ -bool emberAfDoorLockClusterSetYeardayScheduleResponseCallback(uint8_t status); -/** @brief Door Lock Cluster Toggle - * - * - * - * @param pin Ver.: since ha-1.2-05-3520-29 - */ -bool emberAfDoorLockClusterToggleCallback(uint8_t * pin); -/** @brief Door Lock Cluster Toggle Response - * - * - * - * @param status Ver.: always - */ -bool emberAfDoorLockClusterToggleResponseCallback(uint8_t status); -/** @brief Door Lock Cluster Unlock Door - * - * - * - * @param PIN Ver.: since ha-1.2-05-3520-29 - */ -bool emberAfDoorLockClusterUnlockDoorCallback(uint8_t * PIN); -/** @brief Door Lock Cluster Unlock Door Response - * - * - * - * @param status Ver.: always - */ -bool emberAfDoorLockClusterUnlockDoorResponseCallback(uint8_t status); -/** @brief Door Lock Cluster Unlock With Timeout - * - * - * - * @param timeoutInSeconds Ver.: always - * @param pin Ver.: since ha-1.2-05-3520-29 - */ -bool emberAfDoorLockClusterUnlockWithTimeoutCallback(uint16_t timeoutInSeconds, uint8_t * pin); -/** @brief Door Lock Cluster Unlock With Timeout Response - * - * - * - * @param status Ver.: always - */ -bool emberAfDoorLockClusterUnlockWithTimeoutResponseCallback(uint8_t status); - -/** @} END Door Lock Cluster Callbacks */ - -/** @name Window Covering Cluster Callbacks */ -// @{ - -/** @brief Window Covering Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfWindowCoveringClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Window Covering Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfWindowCoveringClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Window Covering Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfWindowCoveringClusterClientInitCallback(uint8_t endpoint); -/** @brief Window Covering Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfWindowCoveringClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Window Covering Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfWindowCoveringClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Window Covering Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfWindowCoveringClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Window Covering Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfWindowCoveringClusterClientTickCallback(uint8_t endpoint); -/** @brief Window Covering Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfWindowCoveringClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Window Covering Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfWindowCoveringClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Window Covering Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfWindowCoveringClusterServerInitCallback(uint8_t endpoint); -/** @brief Window Covering Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfWindowCoveringClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Window Covering Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfWindowCoveringClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Window Covering Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfWindowCoveringClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Window Covering Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfWindowCoveringClusterServerTickCallback(uint8_t endpoint); -/** @brief Window Covering Cluster Window Covering Down Close - * - * - * - */ -bool emberAfWindowCoveringClusterWindowCoveringDownCloseCallback(void); -/** @brief Window Covering Cluster Window Covering Go To Lift Percentage - * - * - * - * @param percentageLiftValue Ver.: always - */ -bool emberAfWindowCoveringClusterWindowCoveringGoToLiftPercentageCallback(uint8_t percentageLiftValue); -/** @brief Window Covering Cluster Window Covering Go To Lift Value - * - * - * - * @param liftValue Ver.: always - */ -bool emberAfWindowCoveringClusterWindowCoveringGoToLiftValueCallback(uint16_t liftValue); -/** @brief Window Covering Cluster Window Covering Go To Tilt Percentage - * - * - * - * @param percentageTiltValue Ver.: always - */ -bool emberAfWindowCoveringClusterWindowCoveringGoToTiltPercentageCallback(uint8_t percentageTiltValue); -/** @brief Window Covering Cluster Window Covering Go To Tilt Value - * - * - * - * @param tiltValue Ver.: always - */ -bool emberAfWindowCoveringClusterWindowCoveringGoToTiltValueCallback(uint16_t tiltValue); -/** @brief Window Covering Cluster Window Covering Stop - * - * - * - */ -bool emberAfWindowCoveringClusterWindowCoveringStopCallback(void); -/** @brief Window Covering Cluster Window Covering Up Open - * - * - * - */ -bool emberAfWindowCoveringClusterWindowCoveringUpOpenCallback(void); - -/** @} END Window Covering Cluster Callbacks */ - -/** @name Barrier Control Cluster Callbacks */ -// @{ - -/** @brief Barrier Control Cluster Barrier Control Go To Percent - * - * - * - * @param percentOpen Ver.: always - */ -bool emberAfBarrierControlClusterBarrierControlGoToPercentCallback(uint8_t percentOpen); -/** @brief Barrier Control Cluster Barrier Control Stop - * - * - * - */ -bool emberAfBarrierControlClusterBarrierControlStopCallback(void); -/** @brief Barrier Control Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfBarrierControlClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Barrier Control Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfBarrierControlClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Barrier Control Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfBarrierControlClusterClientInitCallback(uint8_t endpoint); -/** @brief Barrier Control Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfBarrierControlClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Barrier Control Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfBarrierControlClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Barrier Control Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfBarrierControlClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Barrier Control Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfBarrierControlClusterClientTickCallback(uint8_t endpoint); -/** @brief Barrier Control Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfBarrierControlClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Barrier Control Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfBarrierControlClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Barrier Control Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfBarrierControlClusterServerInitCallback(uint8_t endpoint); -/** @brief Barrier Control Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfBarrierControlClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Barrier Control Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfBarrierControlClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Barrier Control Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfBarrierControlClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Barrier Control Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfBarrierControlClusterServerTickCallback(uint8_t endpoint); - -/** @} END Barrier Control Cluster Callbacks */ - -/** @name Pump Configuration and Control Cluster Callbacks */ -// @{ - -/** @brief Pump Configuration and Control Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfPumpConfigControlClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Pump Configuration and Control Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfPumpConfigControlClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Pump Configuration and Control Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfPumpConfigControlClusterClientInitCallback(uint8_t endpoint); -/** @brief Pump Configuration and Control Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfPumpConfigControlClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Pump Configuration and Control Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfPumpConfigControlClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Pump Configuration and Control Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfPumpConfigControlClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Pump Configuration and Control Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfPumpConfigControlClusterClientTickCallback(uint8_t endpoint); -/** @brief Pump Configuration and Control Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfPumpConfigControlClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Pump Configuration and Control Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfPumpConfigControlClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Pump Configuration and Control Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfPumpConfigControlClusterServerInitCallback(uint8_t endpoint); -/** @brief Pump Configuration and Control Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfPumpConfigControlClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Pump Configuration and Control Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfPumpConfigControlClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Pump Configuration and Control Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfPumpConfigControlClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Pump Configuration and Control Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfPumpConfigControlClusterServerTickCallback(uint8_t endpoint); - -/** @} END Pump Configuration and Control Cluster Callbacks */ - -/** @name Thermostat Cluster Callbacks */ -// @{ - -/** @brief Thermostat Cluster Clear Weekly Schedule - * - * - * - */ -bool emberAfThermostatClusterClearWeeklyScheduleCallback(void); -/** @brief Thermostat Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfThermostatClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Thermostat Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfThermostatClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Thermostat Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfThermostatClusterClientInitCallback(uint8_t endpoint); -/** @brief Thermostat Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfThermostatClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Thermostat Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfThermostatClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Thermostat Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfThermostatClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Thermostat Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfThermostatClusterClientTickCallback(uint8_t endpoint); -/** @brief Thermostat Cluster Current Weekly Schedule - * - * - * - * @param numberOfTransitionsForSequence Ver.: always - * @param dayOfWeekForSequence Ver.: always - * @param modeForSequence Ver.: always - * @param payload Ver.: always - */ -bool emberAfThermostatClusterCurrentWeeklyScheduleCallback(uint8_t numberOfTransitionsForSequence, uint8_t dayOfWeekForSequence, - uint8_t modeForSequence, uint8_t * payload); -/** @brief Thermostat Cluster Get Relay Status Log - * - * - * - */ -bool emberAfThermostatClusterGetRelayStatusLogCallback(void); -/** @brief Thermostat Cluster Get Weekly Schedule - * - * - * - * @param daysToReturn Ver.: always - * @param modeToReturn Ver.: always - */ -bool emberAfThermostatClusterGetWeeklyScheduleCallback(uint8_t daysToReturn, uint8_t modeToReturn); -/** @brief Thermostat Cluster Relay Status Log - * - * - * - * @param timeOfDay Ver.: always - * @param relayStatus Ver.: always - * @param localTemperature Ver.: always - * @param humidityInPercentage Ver.: always - * @param setpoint Ver.: always - * @param unreadEntries Ver.: always - */ -bool emberAfThermostatClusterRelayStatusLogCallback(uint16_t timeOfDay, uint16_t relayStatus, int16_t localTemperature, - uint8_t humidityInPercentage, int16_t setpoint, uint16_t unreadEntries); -/** @brief Thermostat Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfThermostatClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Thermostat Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfThermostatClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Thermostat Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfThermostatClusterServerInitCallback(uint8_t endpoint); -/** @brief Thermostat Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfThermostatClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Thermostat Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfThermostatClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Thermostat Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfThermostatClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Thermostat Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfThermostatClusterServerTickCallback(uint8_t endpoint); -/** @brief Thermostat Cluster Set Weekly Schedule - * - * - * - * @param numberOfTransitionsForSequence Ver.: always - * @param dayOfWeekForSequence Ver.: always - * @param modeForSequence Ver.: always - * @param payload Ver.: always - */ -bool emberAfThermostatClusterSetWeeklyScheduleCallback(uint8_t numberOfTransitionsForSequence, uint8_t dayOfWeekForSequence, - uint8_t modeForSequence, uint8_t * payload); -/** @brief Thermostat Cluster Setpoint Raise Lower - * - * - * - * @param mode Ver.: always - * @param amount Ver.: always - */ -bool emberAfThermostatClusterSetpointRaiseLowerCallback(uint8_t mode, int8_t amount); - -/** @} END Thermostat Cluster Callbacks */ - -/** @name Fan Control Cluster Callbacks */ -// @{ - -/** @brief Fan Control Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfFanControlClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Fan Control Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfFanControlClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Fan Control Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfFanControlClusterClientInitCallback(uint8_t endpoint); -/** @brief Fan Control Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfFanControlClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Fan Control Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfFanControlClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Fan Control Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfFanControlClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Fan Control Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfFanControlClusterClientTickCallback(uint8_t endpoint); -/** @brief Fan Control Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfFanControlClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Fan Control Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfFanControlClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Fan Control Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfFanControlClusterServerInitCallback(uint8_t endpoint); -/** @brief Fan Control Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfFanControlClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Fan Control Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfFanControlClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Fan Control Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfFanControlClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Fan Control Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfFanControlClusterServerTickCallback(uint8_t endpoint); - -/** @} END Fan Control Cluster Callbacks */ - -/** @name Dehumidification Control Cluster Callbacks */ -// @{ - -/** @brief Dehumidification Control Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfDehumidControlClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Dehumidification Control Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfDehumidControlClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Dehumidification Control Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfDehumidControlClusterClientInitCallback(uint8_t endpoint); -/** @brief Dehumidification Control Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfDehumidControlClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Dehumidification Control Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfDehumidControlClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Dehumidification Control Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfDehumidControlClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Dehumidification Control Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfDehumidControlClusterClientTickCallback(uint8_t endpoint); -/** @brief Dehumidification Control Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfDehumidControlClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Dehumidification Control Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfDehumidControlClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Dehumidification Control Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfDehumidControlClusterServerInitCallback(uint8_t endpoint); -/** @brief Dehumidification Control Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfDehumidControlClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Dehumidification Control Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfDehumidControlClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Dehumidification Control Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfDehumidControlClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Dehumidification Control Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfDehumidControlClusterServerTickCallback(uint8_t endpoint); - -/** @} END Dehumidification Control Cluster Callbacks */ - -/** @name Thermostat User Interface Configuration Cluster Callbacks */ -// @{ - -/** @brief Thermostat User Interface Configuration Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfThermostatUiConfigClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Thermostat User Interface Configuration Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfThermostatUiConfigClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Thermostat User Interface Configuration Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfThermostatUiConfigClusterClientInitCallback(uint8_t endpoint); -/** @brief Thermostat User Interface Configuration Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfThermostatUiConfigClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Thermostat User Interface Configuration Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfThermostatUiConfigClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Thermostat User Interface Configuration Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfThermostatUiConfigClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Thermostat User Interface Configuration Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfThermostatUiConfigClusterClientTickCallback(uint8_t endpoint); -/** @brief Thermostat User Interface Configuration Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfThermostatUiConfigClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Thermostat User Interface Configuration Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfThermostatUiConfigClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Thermostat User Interface Configuration Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfThermostatUiConfigClusterServerInitCallback(uint8_t endpoint); -/** @brief Thermostat User Interface Configuration Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfThermostatUiConfigClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Thermostat User Interface Configuration Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfThermostatUiConfigClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Thermostat User Interface Configuration Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfThermostatUiConfigClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Thermostat User Interface Configuration Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfThermostatUiConfigClusterServerTickCallback(uint8_t endpoint); - -/** @} END Thermostat User Interface Configuration Cluster Callbacks */ - -/** @name Color Control Cluster Callbacks */ -// @{ - -/** @brief Color Control Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfColorControlClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Color Control Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfColorControlClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Color Control Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfColorControlClusterClientInitCallback(uint8_t endpoint); -/** @brief Color Control Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfColorControlClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Color Control Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfColorControlClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Color Control Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfColorControlClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Color Control Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfColorControlClusterClientTickCallback(uint8_t endpoint); -/** @brief Color Control Cluster Color Loop Set - * - * - * - * @param updateFlags Ver.: always - * @param action Ver.: always - * @param direction Ver.: always - * @param time Ver.: always - * @param startHue Ver.: always - */ -bool emberAfColorControlClusterColorLoopSetCallback(uint8_t updateFlags, uint8_t action, uint8_t direction, uint16_t time, - uint16_t startHue); -/** @brief Color Control Cluster Enhanced Move Hue - * - * - * - * @param moveMode Ver.: always - * @param rate Ver.: always - */ -bool emberAfColorControlClusterEnhancedMoveHueCallback(uint8_t moveMode, uint16_t rate); -/** @brief Color Control Cluster Enhanced Move To Hue And Saturation - * - * - * - * @param enhancedHue Ver.: always - * @param saturation Ver.: always - * @param transitionTime Ver.: always - */ -bool emberAfColorControlClusterEnhancedMoveToHueAndSaturationCallback(uint16_t enhancedHue, uint8_t saturation, - uint16_t transitionTime); -/** @brief Color Control Cluster Enhanced Move To Hue - * - * - * - * @param enhancedHue Ver.: always - * @param direction Ver.: always - * @param transitionTime Ver.: always - */ -bool emberAfColorControlClusterEnhancedMoveToHueCallback(uint16_t enhancedHue, uint8_t direction, uint16_t transitionTime); -/** @brief Color Control Cluster Enhanced Step Hue - * - * - * - * @param stepMode Ver.: always - * @param stepSize Ver.: always - * @param transitionTime Ver.: always - */ -bool emberAfColorControlClusterEnhancedStepHueCallback(uint8_t stepMode, uint16_t stepSize, uint16_t transitionTime); -/** @brief Color Control Cluster Move Color - * - * - * - * @param rateX Ver.: always - * @param rateY Ver.: always - * @param optionsMask Ver.: since zcl6-errata-14-0129-15 - * @param optionsOverride Ver.: since zcl6-errata-14-0129-15 - */ -bool emberAfColorControlClusterMoveColorCallback(int16_t rateX, int16_t rateY, uint8_t optionsMask, uint8_t optionsOverride); -/** @brief Color Control Cluster Move Color Temperature - * - * - * - * @param moveMode Ver.: always - * @param rate Ver.: always - * @param colorTemperatureMinimum Ver.: always - * @param colorTemperatureMaximum Ver.: always - * @param optionsMask Ver.: since zcl6-errata-14-0129-15 - * @param optionsOverride Ver.: since zcl6-errata-14-0129-15 - */ -bool emberAfColorControlClusterMoveColorTemperatureCallback(uint8_t moveMode, uint16_t rate, uint16_t colorTemperatureMinimum, - uint16_t colorTemperatureMaximum, uint8_t optionsMask, - uint8_t optionsOverride); -/** @brief Color Control Cluster Move Hue - * - * - * - * @param moveMode Ver.: always - * @param rate Ver.: always - * @param optionsMask Ver.: since zcl6-errata-14-0129-15 - * @param optionsOverride Ver.: since zcl6-errata-14-0129-15 - */ -bool emberAfColorControlClusterMoveHueCallback(uint8_t moveMode, uint8_t rate, uint8_t optionsMask, uint8_t optionsOverride); -/** @brief Color Control Cluster Move Saturation - * - * - * - * @param moveMode Ver.: always - * @param rate Ver.: always - * @param optionsMask Ver.: since zcl6-errata-14-0129-15 - * @param optionsOverride Ver.: since zcl6-errata-14-0129-15 - */ -bool emberAfColorControlClusterMoveSaturationCallback(uint8_t moveMode, uint8_t rate, uint8_t optionsMask, uint8_t optionsOverride); -/** @brief Color Control Cluster Move To Color - * - * - * - * @param colorX Ver.: always - * @param colorY Ver.: always - * @param transitionTime Ver.: always - * @param optionsMask Ver.: since zcl6-errata-14-0129-15 - * @param optionsOverride Ver.: since zcl6-errata-14-0129-15 - */ -bool emberAfColorControlClusterMoveToColorCallback(uint16_t colorX, uint16_t colorY, uint16_t transitionTime, uint8_t optionsMask, - uint8_t optionsOverride); -/** @brief Color Control Cluster Move To Color Temperature - * - * - * - * @param colorTemperature Ver.: always - * @param transitionTime Ver.: always - * @param optionsMask Ver.: since zcl6-errata-14-0129-15 - * @param optionsOverride Ver.: since zcl6-errata-14-0129-15 - */ -bool emberAfColorControlClusterMoveToColorTemperatureCallback(uint16_t colorTemperature, uint16_t transitionTime, - uint8_t optionsMask, uint8_t optionsOverride); -/** @brief Color Control Cluster Move To Hue And Saturation - * - * - * - * @param hue Ver.: always - * @param saturation Ver.: always - * @param transitionTime Ver.: always - * @param optionsMask Ver.: since zcl6-errata-14-0129-15 - * @param optionsOverride Ver.: since zcl6-errata-14-0129-15 - */ -bool emberAfColorControlClusterMoveToHueAndSaturationCallback(uint8_t hue, uint8_t saturation, uint16_t transitionTime, - uint8_t optionsMask, uint8_t optionsOverride); -/** @brief Color Control Cluster Move To Hue - * - * - * - * @param hue Ver.: always - * @param direction Ver.: always - * @param transitionTime Ver.: always - * @param optionsMask Ver.: since zcl6-errata-14-0129-15 - * @param optionsOverride Ver.: since zcl6-errata-14-0129-15 - */ -bool emberAfColorControlClusterMoveToHueCallback(uint8_t hue, uint8_t direction, uint16_t transitionTime, uint8_t optionsMask, - uint8_t optionsOverride); -/** @brief Color Control Cluster Move To Saturation - * - * - * - * @param saturation Ver.: always - * @param transitionTime Ver.: always - * @param optionsMask Ver.: since zcl6-errata-14-0129-15 - * @param optionsOverride Ver.: since zcl6-errata-14-0129-15 - */ -bool emberAfColorControlClusterMoveToSaturationCallback(uint8_t saturation, uint16_t transitionTime, uint8_t optionsMask, - uint8_t optionsOverride); -/** @brief Color Control Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfColorControlClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Color Control Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfColorControlClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Color Control Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfColorControlClusterServerInitCallback(uint8_t endpoint); -/** @brief Color Control Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfColorControlClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Color Control Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfColorControlClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Color Control Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfColorControlClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Color Control Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfColorControlClusterServerTickCallback(uint8_t endpoint); -/** @brief Color Control Cluster Step Color - * - * - * - * @param stepX Ver.: always - * @param stepY Ver.: always - * @param transitionTime Ver.: always - * @param optionsMask Ver.: since zcl6-errata-14-0129-15 - * @param optionsOverride Ver.: since zcl6-errata-14-0129-15 - */ -bool emberAfColorControlClusterStepColorCallback(int16_t stepX, int16_t stepY, uint16_t transitionTime, uint8_t optionsMask, - uint8_t optionsOverride); -/** @brief Color Control Cluster Step Color Temperature - * - * - * - * @param stepMode Ver.: always - * @param stepSize Ver.: always - * @param transitionTime Ver.: always - * @param colorTemperatureMinimum Ver.: always - * @param colorTemperatureMaximum Ver.: always - * @param optionsMask Ver.: since zcl6-errata-14-0129-15 - * @param optionsOverride Ver.: since zcl6-errata-14-0129-15 - */ -bool emberAfColorControlClusterStepColorTemperatureCallback(uint8_t stepMode, uint16_t stepSize, uint16_t transitionTime, - uint16_t colorTemperatureMinimum, uint16_t colorTemperatureMaximum, - uint8_t optionsMask, uint8_t optionsOverride); -/** @brief Color Control Cluster Step Hue - * - * - * - * @param stepMode Ver.: always - * @param stepSize Ver.: always - * @param transitionTime Ver.: always - * @param optionsMask Ver.: since zcl6-errata-14-0129-15 - * @param optionsOverride Ver.: since zcl6-errata-14-0129-15 - */ -bool emberAfColorControlClusterStepHueCallback(uint8_t stepMode, uint8_t stepSize, uint8_t transitionTime, uint8_t optionsMask, - uint8_t optionsOverride); -/** @brief Color Control Cluster Step Saturation - * - * - * - * @param stepMode Ver.: always - * @param stepSize Ver.: always - * @param transitionTime Ver.: always - * @param optionsMask Ver.: since zcl6-errata-14-0129-15 - * @param optionsOverride Ver.: since zcl6-errata-14-0129-15 - */ -bool emberAfColorControlClusterStepSaturationCallback(uint8_t stepMode, uint8_t stepSize, uint8_t transitionTime, - uint8_t optionsMask, uint8_t optionsOverride); -/** @brief Color Control Cluster Stop Move Step - * - * - * - * @param optionsMask Ver.: since zcl6-errata-14-0129-15 - * @param optionsOverride Ver.: since zcl6-errata-14-0129-15 - */ -bool emberAfColorControlClusterStopMoveStepCallback(uint8_t optionsMask, uint8_t optionsOverride); - -/** @} END Color Control Cluster Callbacks */ - -/** @name Ballast Configuration Cluster Callbacks */ -// @{ - -/** @brief Ballast Configuration Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfBallastConfigurationClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Ballast Configuration Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfBallastConfigurationClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Ballast Configuration Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfBallastConfigurationClusterClientInitCallback(uint8_t endpoint); -/** @brief Ballast Configuration Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfBallastConfigurationClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Ballast Configuration Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfBallastConfigurationClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Ballast Configuration Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfBallastConfigurationClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Ballast Configuration Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfBallastConfigurationClusterClientTickCallback(uint8_t endpoint); -/** @brief Ballast Configuration Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfBallastConfigurationClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Ballast Configuration Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfBallastConfigurationClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Ballast Configuration Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfBallastConfigurationClusterServerInitCallback(uint8_t endpoint); -/** @brief Ballast Configuration Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfBallastConfigurationClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Ballast Configuration Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfBallastConfigurationClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Ballast Configuration Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfBallastConfigurationClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Ballast Configuration Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfBallastConfigurationClusterServerTickCallback(uint8_t endpoint); - -/** @} END Ballast Configuration Cluster Callbacks */ - -/** @name Illuminance Measurement Cluster Callbacks */ -// @{ - -/** @brief Illuminance Measurement Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfIllumMeasurementClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Illuminance Measurement Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfIllumMeasurementClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Illuminance Measurement Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfIllumMeasurementClusterClientInitCallback(uint8_t endpoint); -/** @brief Illuminance Measurement Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfIllumMeasurementClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Illuminance Measurement Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfIllumMeasurementClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Illuminance Measurement Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfIllumMeasurementClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Illuminance Measurement Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfIllumMeasurementClusterClientTickCallback(uint8_t endpoint); -/** @brief Illuminance Measurement Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfIllumMeasurementClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Illuminance Measurement Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfIllumMeasurementClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Illuminance Measurement Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfIllumMeasurementClusterServerInitCallback(uint8_t endpoint); -/** @brief Illuminance Measurement Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfIllumMeasurementClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Illuminance Measurement Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfIllumMeasurementClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Illuminance Measurement Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfIllumMeasurementClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Illuminance Measurement Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfIllumMeasurementClusterServerTickCallback(uint8_t endpoint); - -/** @} END Illuminance Measurement Cluster Callbacks */ - -/** @name Illuminance Level Sensing Cluster Callbacks */ -// @{ - -/** @brief Illuminance Level Sensing Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfIllumLevelSensingClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Illuminance Level Sensing Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfIllumLevelSensingClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Illuminance Level Sensing Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfIllumLevelSensingClusterClientInitCallback(uint8_t endpoint); -/** @brief Illuminance Level Sensing Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfIllumLevelSensingClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Illuminance Level Sensing Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfIllumLevelSensingClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Illuminance Level Sensing Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfIllumLevelSensingClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Illuminance Level Sensing Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfIllumLevelSensingClusterClientTickCallback(uint8_t endpoint); -/** @brief Illuminance Level Sensing Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfIllumLevelSensingClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Illuminance Level Sensing Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfIllumLevelSensingClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Illuminance Level Sensing Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfIllumLevelSensingClusterServerInitCallback(uint8_t endpoint); -/** @brief Illuminance Level Sensing Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfIllumLevelSensingClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Illuminance Level Sensing Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfIllumLevelSensingClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Illuminance Level Sensing Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfIllumLevelSensingClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Illuminance Level Sensing Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfIllumLevelSensingClusterServerTickCallback(uint8_t endpoint); - -/** @} END Illuminance Level Sensing Cluster Callbacks */ - -/** @name Temperature Measurement Cluster Callbacks */ -// @{ - -/** @brief Temperature Measurement Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfTempMeasurementClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Temperature Measurement Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfTempMeasurementClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Temperature Measurement Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfTempMeasurementClusterClientInitCallback(uint8_t endpoint); -/** @brief Temperature Measurement Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfTempMeasurementClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Temperature Measurement Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfTempMeasurementClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Temperature Measurement Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfTempMeasurementClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Temperature Measurement Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfTempMeasurementClusterClientTickCallback(uint8_t endpoint); -/** @brief Temperature Measurement Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfTempMeasurementClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Temperature Measurement Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfTempMeasurementClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Temperature Measurement Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfTempMeasurementClusterServerInitCallback(uint8_t endpoint); -/** @brief Temperature Measurement Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfTempMeasurementClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Temperature Measurement Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfTempMeasurementClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Temperature Measurement Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfTempMeasurementClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Temperature Measurement Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfTempMeasurementClusterServerTickCallback(uint8_t endpoint); - -/** @} END Temperature Measurement Cluster Callbacks */ - -/** @name Pressure Measurement Cluster Callbacks */ -// @{ - -/** @brief Pressure Measurement Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfPressureMeasurementClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Pressure Measurement Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfPressureMeasurementClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Pressure Measurement Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfPressureMeasurementClusterClientInitCallback(uint8_t endpoint); -/** @brief Pressure Measurement Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfPressureMeasurementClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Pressure Measurement Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfPressureMeasurementClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Pressure Measurement Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfPressureMeasurementClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Pressure Measurement Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfPressureMeasurementClusterClientTickCallback(uint8_t endpoint); -/** @brief Pressure Measurement Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfPressureMeasurementClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Pressure Measurement Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfPressureMeasurementClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Pressure Measurement Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfPressureMeasurementClusterServerInitCallback(uint8_t endpoint); -/** @brief Pressure Measurement Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfPressureMeasurementClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Pressure Measurement Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfPressureMeasurementClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Pressure Measurement Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfPressureMeasurementClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Pressure Measurement Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfPressureMeasurementClusterServerTickCallback(uint8_t endpoint); - -/** @} END Pressure Measurement Cluster Callbacks */ - -/** @name Flow Measurement Cluster Callbacks */ -// @{ - -/** @brief Flow Measurement Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfFlowMeasurementClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Flow Measurement Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfFlowMeasurementClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Flow Measurement Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfFlowMeasurementClusterClientInitCallback(uint8_t endpoint); -/** @brief Flow Measurement Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfFlowMeasurementClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Flow Measurement Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfFlowMeasurementClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Flow Measurement Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfFlowMeasurementClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Flow Measurement Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfFlowMeasurementClusterClientTickCallback(uint8_t endpoint); -/** @brief Flow Measurement Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfFlowMeasurementClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Flow Measurement Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfFlowMeasurementClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Flow Measurement Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfFlowMeasurementClusterServerInitCallback(uint8_t endpoint); -/** @brief Flow Measurement Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfFlowMeasurementClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Flow Measurement Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfFlowMeasurementClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Flow Measurement Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfFlowMeasurementClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Flow Measurement Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfFlowMeasurementClusterServerTickCallback(uint8_t endpoint); - -/** @} END Flow Measurement Cluster Callbacks */ - -/** @name Relative Humidity Measurement Cluster Callbacks */ -// @{ - -/** @brief Relative Humidity Measurement Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfRelativeHumidityMeasurementClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Relative Humidity Measurement Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfRelativeHumidityMeasurementClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Relative Humidity Measurement Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfRelativeHumidityMeasurementClusterClientInitCallback(uint8_t endpoint); -/** @brief Relative Humidity Measurement Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfRelativeHumidityMeasurementClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Relative Humidity Measurement Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfRelativeHumidityMeasurementClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, - uint8_t * message, EmberStatus status); -/** @brief Relative Humidity Measurement Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfRelativeHumidityMeasurementClusterClientPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Relative Humidity Measurement Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfRelativeHumidityMeasurementClusterClientTickCallback(uint8_t endpoint); -/** @brief Relative Humidity Measurement Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfRelativeHumidityMeasurementClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Relative Humidity Measurement Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfRelativeHumidityMeasurementClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Relative Humidity Measurement Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfRelativeHumidityMeasurementClusterServerInitCallback(uint8_t endpoint); -/** @brief Relative Humidity Measurement Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfRelativeHumidityMeasurementClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Relative Humidity Measurement Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfRelativeHumidityMeasurementClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, - uint8_t * message, EmberStatus status); -/** @brief Relative Humidity Measurement Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfRelativeHumidityMeasurementClusterServerPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Relative Humidity Measurement Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfRelativeHumidityMeasurementClusterServerTickCallback(uint8_t endpoint); - -/** @} END Relative Humidity Measurement Cluster Callbacks */ - -/** @name Occupancy Sensing Cluster Callbacks */ -// @{ - -/** @brief Occupancy Sensing Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfOccupancySensingClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Occupancy Sensing Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfOccupancySensingClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Occupancy Sensing Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfOccupancySensingClusterClientInitCallback(uint8_t endpoint); -/** @brief Occupancy Sensing Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfOccupancySensingClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Occupancy Sensing Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfOccupancySensingClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Occupancy Sensing Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfOccupancySensingClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Occupancy Sensing Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfOccupancySensingClusterClientTickCallback(uint8_t endpoint); -/** @brief Occupancy Sensing Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfOccupancySensingClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Occupancy Sensing Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfOccupancySensingClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Occupancy Sensing Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfOccupancySensingClusterServerInitCallback(uint8_t endpoint); -/** @brief Occupancy Sensing Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfOccupancySensingClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Occupancy Sensing Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfOccupancySensingClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Occupancy Sensing Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfOccupancySensingClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Occupancy Sensing Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfOccupancySensingClusterServerTickCallback(uint8_t endpoint); - -/** @} END Occupancy Sensing Cluster Callbacks */ - -/** @name Carbon Monoxide Concentration Measurement Cluster Callbacks */ -// @{ - -/** @brief Carbon Monoxide Concentration Measurement Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfCarbonMonoxideConcentrationMeasurementClusterClientAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId); -/** @brief Carbon Monoxide Concentration Measurement Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfCarbonMonoxideConcentrationMeasurementClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Carbon Monoxide Concentration Measurement Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfCarbonMonoxideConcentrationMeasurementClusterClientInitCallback(uint8_t endpoint); -/** @brief Carbon Monoxide Concentration Measurement Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfCarbonMonoxideConcentrationMeasurementClusterClientManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Carbon Monoxide Concentration Measurement Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfCarbonMonoxideConcentrationMeasurementClusterClientMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, - uint8_t * message, EmberStatus status); -/** @brief Carbon Monoxide Concentration Measurement Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfCarbonMonoxideConcentrationMeasurementClusterClientPreAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, EmberAfAttributeType attributeType, uint8_t size, uint8_t * value); -/** @brief Carbon Monoxide Concentration Measurement Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfCarbonMonoxideConcentrationMeasurementClusterClientTickCallback(uint8_t endpoint); -/** @brief Carbon Monoxide Concentration Measurement Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfCarbonMonoxideConcentrationMeasurementClusterServerAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId); -/** @brief Carbon Monoxide Concentration Measurement Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfCarbonMonoxideConcentrationMeasurementClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Carbon Monoxide Concentration Measurement Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfCarbonMonoxideConcentrationMeasurementClusterServerInitCallback(uint8_t endpoint); -/** @brief Carbon Monoxide Concentration Measurement Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfCarbonMonoxideConcentrationMeasurementClusterServerManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Carbon Monoxide Concentration Measurement Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfCarbonMonoxideConcentrationMeasurementClusterServerMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, - uint8_t * message, EmberStatus status); -/** @brief Carbon Monoxide Concentration Measurement Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfCarbonMonoxideConcentrationMeasurementClusterServerPreAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, EmberAfAttributeType attributeType, uint8_t size, uint8_t * value); -/** @brief Carbon Monoxide Concentration Measurement Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfCarbonMonoxideConcentrationMeasurementClusterServerTickCallback(uint8_t endpoint); - -/** @} END Carbon Monoxide Concentration Measurement Cluster Callbacks */ - -/** @name Carbon Dioxide Concentration Measurement Cluster Callbacks */ -// @{ - -/** @brief Carbon Dioxide Concentration Measurement Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfCarbonDioxideConcentrationMeasurementClusterClientAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId); -/** @brief Carbon Dioxide Concentration Measurement Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfCarbonDioxideConcentrationMeasurementClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Carbon Dioxide Concentration Measurement Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfCarbonDioxideConcentrationMeasurementClusterClientInitCallback(uint8_t endpoint); -/** @brief Carbon Dioxide Concentration Measurement Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfCarbonDioxideConcentrationMeasurementClusterClientManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Carbon Dioxide Concentration Measurement Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfCarbonDioxideConcentrationMeasurementClusterClientMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, - uint8_t * message, EmberStatus status); -/** @brief Carbon Dioxide Concentration Measurement Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfCarbonDioxideConcentrationMeasurementClusterClientPreAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, EmberAfAttributeType attributeType, uint8_t size, uint8_t * value); -/** @brief Carbon Dioxide Concentration Measurement Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfCarbonDioxideConcentrationMeasurementClusterClientTickCallback(uint8_t endpoint); -/** @brief Carbon Dioxide Concentration Measurement Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfCarbonDioxideConcentrationMeasurementClusterServerAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId); -/** @brief Carbon Dioxide Concentration Measurement Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfCarbonDioxideConcentrationMeasurementClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Carbon Dioxide Concentration Measurement Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfCarbonDioxideConcentrationMeasurementClusterServerInitCallback(uint8_t endpoint); -/** @brief Carbon Dioxide Concentration Measurement Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfCarbonDioxideConcentrationMeasurementClusterServerManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Carbon Dioxide Concentration Measurement Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfCarbonDioxideConcentrationMeasurementClusterServerMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, - uint8_t * message, EmberStatus status); -/** @brief Carbon Dioxide Concentration Measurement Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfCarbonDioxideConcentrationMeasurementClusterServerPreAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, EmberAfAttributeType attributeType, uint8_t size, uint8_t * value); -/** @brief Carbon Dioxide Concentration Measurement Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfCarbonDioxideConcentrationMeasurementClusterServerTickCallback(uint8_t endpoint); - -/** @} END Carbon Dioxide Concentration Measurement Cluster Callbacks */ - -/** @name Ethylene Concentration Measurement Cluster Callbacks */ -// @{ - -/** @brief Ethylene Concentration Measurement Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfEthyleneConcentrationMeasurementClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Ethylene Concentration Measurement Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfEthyleneConcentrationMeasurementClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Ethylene Concentration Measurement Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfEthyleneConcentrationMeasurementClusterClientInitCallback(uint8_t endpoint); -/** @brief Ethylene Concentration Measurement Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfEthyleneConcentrationMeasurementClusterClientManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Ethylene Concentration Measurement Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfEthyleneConcentrationMeasurementClusterClientMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, EmberApsFrame * apsFrame, - uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Ethylene Concentration Measurement Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfEthyleneConcentrationMeasurementClusterClientPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Ethylene Concentration Measurement Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfEthyleneConcentrationMeasurementClusterClientTickCallback(uint8_t endpoint); -/** @brief Ethylene Concentration Measurement Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfEthyleneConcentrationMeasurementClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Ethylene Concentration Measurement Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfEthyleneConcentrationMeasurementClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Ethylene Concentration Measurement Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfEthyleneConcentrationMeasurementClusterServerInitCallback(uint8_t endpoint); -/** @brief Ethylene Concentration Measurement Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfEthyleneConcentrationMeasurementClusterServerManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Ethylene Concentration Measurement Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfEthyleneConcentrationMeasurementClusterServerMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, EmberApsFrame * apsFrame, - uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Ethylene Concentration Measurement Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfEthyleneConcentrationMeasurementClusterServerPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Ethylene Concentration Measurement Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfEthyleneConcentrationMeasurementClusterServerTickCallback(uint8_t endpoint); - -/** @} END Ethylene Concentration Measurement Cluster Callbacks */ - -/** @name Ethylene Oxide Concentration Measurement Cluster Callbacks */ -// @{ - -/** @brief Ethylene Oxide Concentration Measurement Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfEthyleneOxideConcentrationMeasurementClusterClientAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId); -/** @brief Ethylene Oxide Concentration Measurement Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfEthyleneOxideConcentrationMeasurementClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Ethylene Oxide Concentration Measurement Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfEthyleneOxideConcentrationMeasurementClusterClientInitCallback(uint8_t endpoint); -/** @brief Ethylene Oxide Concentration Measurement Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfEthyleneOxideConcentrationMeasurementClusterClientManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Ethylene Oxide Concentration Measurement Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfEthyleneOxideConcentrationMeasurementClusterClientMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, - uint8_t * message, EmberStatus status); -/** @brief Ethylene Oxide Concentration Measurement Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfEthyleneOxideConcentrationMeasurementClusterClientPreAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, EmberAfAttributeType attributeType, uint8_t size, uint8_t * value); -/** @brief Ethylene Oxide Concentration Measurement Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfEthyleneOxideConcentrationMeasurementClusterClientTickCallback(uint8_t endpoint); -/** @brief Ethylene Oxide Concentration Measurement Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfEthyleneOxideConcentrationMeasurementClusterServerAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId); -/** @brief Ethylene Oxide Concentration Measurement Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfEthyleneOxideConcentrationMeasurementClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Ethylene Oxide Concentration Measurement Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfEthyleneOxideConcentrationMeasurementClusterServerInitCallback(uint8_t endpoint); -/** @brief Ethylene Oxide Concentration Measurement Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfEthyleneOxideConcentrationMeasurementClusterServerManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Ethylene Oxide Concentration Measurement Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfEthyleneOxideConcentrationMeasurementClusterServerMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, - uint8_t * message, EmberStatus status); -/** @brief Ethylene Oxide Concentration Measurement Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfEthyleneOxideConcentrationMeasurementClusterServerPreAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, EmberAfAttributeType attributeType, uint8_t size, uint8_t * value); -/** @brief Ethylene Oxide Concentration Measurement Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfEthyleneOxideConcentrationMeasurementClusterServerTickCallback(uint8_t endpoint); - -/** @} END Ethylene Oxide Concentration Measurement Cluster Callbacks */ - -/** @name Hydrogen Concentration Measurement Cluster Callbacks */ -// @{ - -/** @brief Hydrogen Concentration Measurement Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfHydrogenConcentrationMeasurementClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Hydrogen Concentration Measurement Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfHydrogenConcentrationMeasurementClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Hydrogen Concentration Measurement Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfHydrogenConcentrationMeasurementClusterClientInitCallback(uint8_t endpoint); -/** @brief Hydrogen Concentration Measurement Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfHydrogenConcentrationMeasurementClusterClientManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Hydrogen Concentration Measurement Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfHydrogenConcentrationMeasurementClusterClientMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, EmberApsFrame * apsFrame, - uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Hydrogen Concentration Measurement Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfHydrogenConcentrationMeasurementClusterClientPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Hydrogen Concentration Measurement Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfHydrogenConcentrationMeasurementClusterClientTickCallback(uint8_t endpoint); -/** @brief Hydrogen Concentration Measurement Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfHydrogenConcentrationMeasurementClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Hydrogen Concentration Measurement Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfHydrogenConcentrationMeasurementClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Hydrogen Concentration Measurement Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfHydrogenConcentrationMeasurementClusterServerInitCallback(uint8_t endpoint); -/** @brief Hydrogen Concentration Measurement Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfHydrogenConcentrationMeasurementClusterServerManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Hydrogen Concentration Measurement Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfHydrogenConcentrationMeasurementClusterServerMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, EmberApsFrame * apsFrame, - uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Hydrogen Concentration Measurement Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfHydrogenConcentrationMeasurementClusterServerPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Hydrogen Concentration Measurement Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfHydrogenConcentrationMeasurementClusterServerTickCallback(uint8_t endpoint); - -/** @} END Hydrogen Concentration Measurement Cluster Callbacks */ - -/** @name Hydrogen Sulphide Concentration Measurement Cluster Callbacks */ -// @{ - -/** @brief Hydrogen Sulphide Concentration Measurement Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfHydrogenSulphideConcentrationMeasurementClusterClientAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId); -/** @brief Hydrogen Sulphide Concentration Measurement Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfHydrogenSulphideConcentrationMeasurementClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Hydrogen Sulphide Concentration Measurement Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfHydrogenSulphideConcentrationMeasurementClusterClientInitCallback(uint8_t endpoint); -/** @brief Hydrogen Sulphide Concentration Measurement Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfHydrogenSulphideConcentrationMeasurementClusterClientManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Hydrogen Sulphide Concentration Measurement Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfHydrogenSulphideConcentrationMeasurementClusterClientMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, - uint8_t * message, EmberStatus status); -/** @brief Hydrogen Sulphide Concentration Measurement Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfHydrogenSulphideConcentrationMeasurementClusterClientPreAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, EmberAfAttributeType attributeType, uint8_t size, uint8_t * value); -/** @brief Hydrogen Sulphide Concentration Measurement Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfHydrogenSulphideConcentrationMeasurementClusterClientTickCallback(uint8_t endpoint); -/** @brief Hydrogen Sulphide Concentration Measurement Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfHydrogenSulphideConcentrationMeasurementClusterServerAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId); -/** @brief Hydrogen Sulphide Concentration Measurement Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfHydrogenSulphideConcentrationMeasurementClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Hydrogen Sulphide Concentration Measurement Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfHydrogenSulphideConcentrationMeasurementClusterServerInitCallback(uint8_t endpoint); -/** @brief Hydrogen Sulphide Concentration Measurement Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfHydrogenSulphideConcentrationMeasurementClusterServerManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Hydrogen Sulphide Concentration Measurement Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfHydrogenSulphideConcentrationMeasurementClusterServerMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, - uint8_t * message, EmberStatus status); -/** @brief Hydrogen Sulphide Concentration Measurement Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfHydrogenSulphideConcentrationMeasurementClusterServerPreAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, EmberAfAttributeType attributeType, uint8_t size, uint8_t * value); -/** @brief Hydrogen Sulphide Concentration Measurement Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfHydrogenSulphideConcentrationMeasurementClusterServerTickCallback(uint8_t endpoint); - -/** @} END Hydrogen Sulphide Concentration Measurement Cluster Callbacks */ - -/** @name Nitric Oxide Concentration Measurement Cluster Callbacks */ -// @{ - -/** @brief Nitric Oxide Concentration Measurement Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfNitricOxideConcentrationMeasurementClusterClientAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId); -/** @brief Nitric Oxide Concentration Measurement Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfNitricOxideConcentrationMeasurementClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Nitric Oxide Concentration Measurement Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfNitricOxideConcentrationMeasurementClusterClientInitCallback(uint8_t endpoint); -/** @brief Nitric Oxide Concentration Measurement Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfNitricOxideConcentrationMeasurementClusterClientManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Nitric Oxide Concentration Measurement Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfNitricOxideConcentrationMeasurementClusterClientMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, - uint8_t * message, EmberStatus status); -/** @brief Nitric Oxide Concentration Measurement Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfNitricOxideConcentrationMeasurementClusterClientPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Nitric Oxide Concentration Measurement Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfNitricOxideConcentrationMeasurementClusterClientTickCallback(uint8_t endpoint); -/** @brief Nitric Oxide Concentration Measurement Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfNitricOxideConcentrationMeasurementClusterServerAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId); -/** @brief Nitric Oxide Concentration Measurement Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfNitricOxideConcentrationMeasurementClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Nitric Oxide Concentration Measurement Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfNitricOxideConcentrationMeasurementClusterServerInitCallback(uint8_t endpoint); -/** @brief Nitric Oxide Concentration Measurement Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfNitricOxideConcentrationMeasurementClusterServerManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Nitric Oxide Concentration Measurement Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfNitricOxideConcentrationMeasurementClusterServerMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, - uint8_t * message, EmberStatus status); -/** @brief Nitric Oxide Concentration Measurement Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfNitricOxideConcentrationMeasurementClusterServerPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Nitric Oxide Concentration Measurement Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfNitricOxideConcentrationMeasurementClusterServerTickCallback(uint8_t endpoint); - -/** @} END Nitric Oxide Concentration Measurement Cluster Callbacks */ - -/** @name Nitrogen Dioxide Concentration Measurement Cluster Callbacks */ -// @{ - -/** @brief Nitrogen Dioxide Concentration Measurement Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfNitrogenDioxideConcentrationMeasurementClusterClientAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId); -/** @brief Nitrogen Dioxide Concentration Measurement Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfNitrogenDioxideConcentrationMeasurementClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Nitrogen Dioxide Concentration Measurement Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfNitrogenDioxideConcentrationMeasurementClusterClientInitCallback(uint8_t endpoint); -/** @brief Nitrogen Dioxide Concentration Measurement Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfNitrogenDioxideConcentrationMeasurementClusterClientManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Nitrogen Dioxide Concentration Measurement Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfNitrogenDioxideConcentrationMeasurementClusterClientMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, - uint8_t * message, EmberStatus status); -/** @brief Nitrogen Dioxide Concentration Measurement Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfNitrogenDioxideConcentrationMeasurementClusterClientPreAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, EmberAfAttributeType attributeType, uint8_t size, uint8_t * value); -/** @brief Nitrogen Dioxide Concentration Measurement Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfNitrogenDioxideConcentrationMeasurementClusterClientTickCallback(uint8_t endpoint); -/** @brief Nitrogen Dioxide Concentration Measurement Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfNitrogenDioxideConcentrationMeasurementClusterServerAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId); -/** @brief Nitrogen Dioxide Concentration Measurement Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfNitrogenDioxideConcentrationMeasurementClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Nitrogen Dioxide Concentration Measurement Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfNitrogenDioxideConcentrationMeasurementClusterServerInitCallback(uint8_t endpoint); -/** @brief Nitrogen Dioxide Concentration Measurement Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfNitrogenDioxideConcentrationMeasurementClusterServerManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Nitrogen Dioxide Concentration Measurement Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfNitrogenDioxideConcentrationMeasurementClusterServerMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, - uint8_t * message, EmberStatus status); -/** @brief Nitrogen Dioxide Concentration Measurement Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfNitrogenDioxideConcentrationMeasurementClusterServerPreAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, EmberAfAttributeType attributeType, uint8_t size, uint8_t * value); -/** @brief Nitrogen Dioxide Concentration Measurement Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfNitrogenDioxideConcentrationMeasurementClusterServerTickCallback(uint8_t endpoint); - -/** @} END Nitrogen Dioxide Concentration Measurement Cluster Callbacks */ - -/** @name Oxygen Concentration Measurement Cluster Callbacks */ -// @{ - -/** @brief Oxygen Concentration Measurement Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfOxygenConcentrationMeasurementClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Oxygen Concentration Measurement Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfOxygenConcentrationMeasurementClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Oxygen Concentration Measurement Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfOxygenConcentrationMeasurementClusterClientInitCallback(uint8_t endpoint); -/** @brief Oxygen Concentration Measurement Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfOxygenConcentrationMeasurementClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Oxygen Concentration Measurement Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfOxygenConcentrationMeasurementClusterClientMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, EmberApsFrame * apsFrame, - uint16_t msgLen, uint8_t * message, EmberStatus status); -/** @brief Oxygen Concentration Measurement Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfOxygenConcentrationMeasurementClusterClientPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Oxygen Concentration Measurement Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfOxygenConcentrationMeasurementClusterClientTickCallback(uint8_t endpoint); -/** @brief Oxygen Concentration Measurement Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfOxygenConcentrationMeasurementClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Oxygen Concentration Measurement Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfOxygenConcentrationMeasurementClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Oxygen Concentration Measurement Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfOxygenConcentrationMeasurementClusterServerInitCallback(uint8_t endpoint); -/** @brief Oxygen Concentration Measurement Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfOxygenConcentrationMeasurementClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Oxygen Concentration Measurement Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfOxygenConcentrationMeasurementClusterServerMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, EmberApsFrame * apsFrame, - uint16_t msgLen, uint8_t * message, EmberStatus status); -/** @brief Oxygen Concentration Measurement Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfOxygenConcentrationMeasurementClusterServerPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Oxygen Concentration Measurement Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfOxygenConcentrationMeasurementClusterServerTickCallback(uint8_t endpoint); - -/** @} END Oxygen Concentration Measurement Cluster Callbacks */ - -/** @name Ozone Concentration Measurement Cluster Callbacks */ -// @{ - -/** @brief Ozone Concentration Measurement Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfOzoneConcentrationMeasurementClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Ozone Concentration Measurement Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfOzoneConcentrationMeasurementClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Ozone Concentration Measurement Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfOzoneConcentrationMeasurementClusterClientInitCallback(uint8_t endpoint); -/** @brief Ozone Concentration Measurement Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfOzoneConcentrationMeasurementClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Ozone Concentration Measurement Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfOzoneConcentrationMeasurementClusterClientMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, EmberApsFrame * apsFrame, - uint16_t msgLen, uint8_t * message, EmberStatus status); -/** @brief Ozone Concentration Measurement Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfOzoneConcentrationMeasurementClusterClientPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Ozone Concentration Measurement Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfOzoneConcentrationMeasurementClusterClientTickCallback(uint8_t endpoint); -/** @brief Ozone Concentration Measurement Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfOzoneConcentrationMeasurementClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Ozone Concentration Measurement Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfOzoneConcentrationMeasurementClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Ozone Concentration Measurement Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfOzoneConcentrationMeasurementClusterServerInitCallback(uint8_t endpoint); -/** @brief Ozone Concentration Measurement Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfOzoneConcentrationMeasurementClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Ozone Concentration Measurement Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfOzoneConcentrationMeasurementClusterServerMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, EmberApsFrame * apsFrame, - uint16_t msgLen, uint8_t * message, EmberStatus status); -/** @brief Ozone Concentration Measurement Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfOzoneConcentrationMeasurementClusterServerPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Ozone Concentration Measurement Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfOzoneConcentrationMeasurementClusterServerTickCallback(uint8_t endpoint); - -/** @} END Ozone Concentration Measurement Cluster Callbacks */ - -/** @name Sulfur Dioxide Concentration Measurement Cluster Callbacks */ -// @{ - -/** @brief Sulfur Dioxide Concentration Measurement Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfSulfurDioxideConcentrationMeasurementClusterClientAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId); -/** @brief Sulfur Dioxide Concentration Measurement Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfSulfurDioxideConcentrationMeasurementClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Sulfur Dioxide Concentration Measurement Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfSulfurDioxideConcentrationMeasurementClusterClientInitCallback(uint8_t endpoint); -/** @brief Sulfur Dioxide Concentration Measurement Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfSulfurDioxideConcentrationMeasurementClusterClientManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Sulfur Dioxide Concentration Measurement Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfSulfurDioxideConcentrationMeasurementClusterClientMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, - uint8_t * message, EmberStatus status); -/** @brief Sulfur Dioxide Concentration Measurement Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfSulfurDioxideConcentrationMeasurementClusterClientPreAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, EmberAfAttributeType attributeType, uint8_t size, uint8_t * value); -/** @brief Sulfur Dioxide Concentration Measurement Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfSulfurDioxideConcentrationMeasurementClusterClientTickCallback(uint8_t endpoint); -/** @brief Sulfur Dioxide Concentration Measurement Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfSulfurDioxideConcentrationMeasurementClusterServerAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId); -/** @brief Sulfur Dioxide Concentration Measurement Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfSulfurDioxideConcentrationMeasurementClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Sulfur Dioxide Concentration Measurement Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfSulfurDioxideConcentrationMeasurementClusterServerInitCallback(uint8_t endpoint); -/** @brief Sulfur Dioxide Concentration Measurement Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfSulfurDioxideConcentrationMeasurementClusterServerManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Sulfur Dioxide Concentration Measurement Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfSulfurDioxideConcentrationMeasurementClusterServerMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, - uint8_t * message, EmberStatus status); -/** @brief Sulfur Dioxide Concentration Measurement Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfSulfurDioxideConcentrationMeasurementClusterServerPreAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, EmberAfAttributeType attributeType, uint8_t size, uint8_t * value); -/** @brief Sulfur Dioxide Concentration Measurement Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfSulfurDioxideConcentrationMeasurementClusterServerTickCallback(uint8_t endpoint); - -/** @} END Sulfur Dioxide Concentration Measurement Cluster Callbacks */ - -/** @name Dissolved Oxygen Concentration Measurement Cluster Callbacks */ -// @{ - -/** @brief Dissolved Oxygen Concentration Measurement Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfDissolvedOxygenConcentrationMeasurementClusterClientAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId); -/** @brief Dissolved Oxygen Concentration Measurement Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfDissolvedOxygenConcentrationMeasurementClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Dissolved Oxygen Concentration Measurement Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfDissolvedOxygenConcentrationMeasurementClusterClientInitCallback(uint8_t endpoint); -/** @brief Dissolved Oxygen Concentration Measurement Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfDissolvedOxygenConcentrationMeasurementClusterClientManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Dissolved Oxygen Concentration Measurement Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfDissolvedOxygenConcentrationMeasurementClusterClientMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, - uint8_t * message, EmberStatus status); -/** @brief Dissolved Oxygen Concentration Measurement Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfDissolvedOxygenConcentrationMeasurementClusterClientPreAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, EmberAfAttributeType attributeType, uint8_t size, uint8_t * value); -/** @brief Dissolved Oxygen Concentration Measurement Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfDissolvedOxygenConcentrationMeasurementClusterClientTickCallback(uint8_t endpoint); -/** @brief Dissolved Oxygen Concentration Measurement Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfDissolvedOxygenConcentrationMeasurementClusterServerAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId); -/** @brief Dissolved Oxygen Concentration Measurement Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfDissolvedOxygenConcentrationMeasurementClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Dissolved Oxygen Concentration Measurement Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfDissolvedOxygenConcentrationMeasurementClusterServerInitCallback(uint8_t endpoint); -/** @brief Dissolved Oxygen Concentration Measurement Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfDissolvedOxygenConcentrationMeasurementClusterServerManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Dissolved Oxygen Concentration Measurement Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfDissolvedOxygenConcentrationMeasurementClusterServerMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, - uint8_t * message, EmberStatus status); -/** @brief Dissolved Oxygen Concentration Measurement Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfDissolvedOxygenConcentrationMeasurementClusterServerPreAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, EmberAfAttributeType attributeType, uint8_t size, uint8_t * value); -/** @brief Dissolved Oxygen Concentration Measurement Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfDissolvedOxygenConcentrationMeasurementClusterServerTickCallback(uint8_t endpoint); - -/** @} END Dissolved Oxygen Concentration Measurement Cluster Callbacks */ - -/** @name Bromate Concentration Measurement Cluster Callbacks */ -// @{ - -/** @brief Bromate Concentration Measurement Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfBromateConcentrationMeasurementClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Bromate Concentration Measurement Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfBromateConcentrationMeasurementClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Bromate Concentration Measurement Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfBromateConcentrationMeasurementClusterClientInitCallback(uint8_t endpoint); -/** @brief Bromate Concentration Measurement Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfBromateConcentrationMeasurementClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Bromate Concentration Measurement Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfBromateConcentrationMeasurementClusterClientMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, EmberApsFrame * apsFrame, - uint16_t msgLen, uint8_t * message, EmberStatus status); -/** @brief Bromate Concentration Measurement Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfBromateConcentrationMeasurementClusterClientPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Bromate Concentration Measurement Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfBromateConcentrationMeasurementClusterClientTickCallback(uint8_t endpoint); -/** @brief Bromate Concentration Measurement Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfBromateConcentrationMeasurementClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Bromate Concentration Measurement Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfBromateConcentrationMeasurementClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Bromate Concentration Measurement Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfBromateConcentrationMeasurementClusterServerInitCallback(uint8_t endpoint); -/** @brief Bromate Concentration Measurement Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfBromateConcentrationMeasurementClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Bromate Concentration Measurement Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfBromateConcentrationMeasurementClusterServerMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, EmberApsFrame * apsFrame, - uint16_t msgLen, uint8_t * message, EmberStatus status); -/** @brief Bromate Concentration Measurement Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfBromateConcentrationMeasurementClusterServerPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Bromate Concentration Measurement Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfBromateConcentrationMeasurementClusterServerTickCallback(uint8_t endpoint); - -/** @} END Bromate Concentration Measurement Cluster Callbacks */ - -/** @name Chloramines Concentration Measurement Cluster Callbacks */ -// @{ - -/** @brief Chloramines Concentration Measurement Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfChloraminesConcentrationMeasurementClusterClientAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId); -/** @brief Chloramines Concentration Measurement Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfChloraminesConcentrationMeasurementClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Chloramines Concentration Measurement Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfChloraminesConcentrationMeasurementClusterClientInitCallback(uint8_t endpoint); -/** @brief Chloramines Concentration Measurement Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfChloraminesConcentrationMeasurementClusterClientManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Chloramines Concentration Measurement Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfChloraminesConcentrationMeasurementClusterClientMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, - uint8_t * message, EmberStatus status); -/** @brief Chloramines Concentration Measurement Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfChloraminesConcentrationMeasurementClusterClientPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Chloramines Concentration Measurement Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfChloraminesConcentrationMeasurementClusterClientTickCallback(uint8_t endpoint); -/** @brief Chloramines Concentration Measurement Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfChloraminesConcentrationMeasurementClusterServerAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId); -/** @brief Chloramines Concentration Measurement Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfChloraminesConcentrationMeasurementClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Chloramines Concentration Measurement Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfChloraminesConcentrationMeasurementClusterServerInitCallback(uint8_t endpoint); -/** @brief Chloramines Concentration Measurement Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfChloraminesConcentrationMeasurementClusterServerManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Chloramines Concentration Measurement Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfChloraminesConcentrationMeasurementClusterServerMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, - uint8_t * message, EmberStatus status); -/** @brief Chloramines Concentration Measurement Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfChloraminesConcentrationMeasurementClusterServerPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Chloramines Concentration Measurement Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfChloraminesConcentrationMeasurementClusterServerTickCallback(uint8_t endpoint); - -/** @} END Chloramines Concentration Measurement Cluster Callbacks */ - -/** @name Chlorine Concentration Measurement Cluster Callbacks */ -// @{ - -/** @brief Chlorine Concentration Measurement Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfChlorineConcentrationMeasurementClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Chlorine Concentration Measurement Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfChlorineConcentrationMeasurementClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Chlorine Concentration Measurement Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfChlorineConcentrationMeasurementClusterClientInitCallback(uint8_t endpoint); -/** @brief Chlorine Concentration Measurement Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfChlorineConcentrationMeasurementClusterClientManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Chlorine Concentration Measurement Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfChlorineConcentrationMeasurementClusterClientMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, EmberApsFrame * apsFrame, - uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Chlorine Concentration Measurement Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfChlorineConcentrationMeasurementClusterClientPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Chlorine Concentration Measurement Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfChlorineConcentrationMeasurementClusterClientTickCallback(uint8_t endpoint); -/** @brief Chlorine Concentration Measurement Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfChlorineConcentrationMeasurementClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Chlorine Concentration Measurement Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfChlorineConcentrationMeasurementClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Chlorine Concentration Measurement Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfChlorineConcentrationMeasurementClusterServerInitCallback(uint8_t endpoint); -/** @brief Chlorine Concentration Measurement Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfChlorineConcentrationMeasurementClusterServerManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Chlorine Concentration Measurement Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfChlorineConcentrationMeasurementClusterServerMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, EmberApsFrame * apsFrame, - uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Chlorine Concentration Measurement Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfChlorineConcentrationMeasurementClusterServerPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Chlorine Concentration Measurement Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfChlorineConcentrationMeasurementClusterServerTickCallback(uint8_t endpoint); - -/** @} END Chlorine Concentration Measurement Cluster Callbacks */ - -/** @name Fecal coliform and E. Coli Concentration Measurement Cluster Callbacks */ -// @{ - -/** @brief Fecal coliform and E. Coli Concentration Measurement Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfFecalColiformAndEColiConcentrationMeasurementClusterClientAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId); -/** @brief Fecal coliform and E. Coli Concentration Measurement Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfFecalColiformAndEColiConcentrationMeasurementClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Fecal coliform and E. Coli Concentration Measurement Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfFecalColiformAndEColiConcentrationMeasurementClusterClientInitCallback(uint8_t endpoint); -/** @brief Fecal coliform and E. Coli Concentration Measurement Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfFecalColiformAndEColiConcentrationMeasurementClusterClientManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Fecal coliform and E. Coli Concentration Measurement Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfFecalColiformAndEColiConcentrationMeasurementClusterClientMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, - uint8_t * message, EmberStatus status); -/** @brief Fecal coliform and E. Coli Concentration Measurement Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfFecalColiformAndEColiConcentrationMeasurementClusterClientPreAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, EmberAfAttributeType attributeType, uint8_t size, uint8_t * value); -/** @brief Fecal coliform and E. Coli Concentration Measurement Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfFecalColiformAndEColiConcentrationMeasurementClusterClientTickCallback(uint8_t endpoint); -/** @brief Fecal coliform and E. Coli Concentration Measurement Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfFecalColiformAndEColiConcentrationMeasurementClusterServerAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId); -/** @brief Fecal coliform and E. Coli Concentration Measurement Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfFecalColiformAndEColiConcentrationMeasurementClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Fecal coliform and E. Coli Concentration Measurement Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfFecalColiformAndEColiConcentrationMeasurementClusterServerInitCallback(uint8_t endpoint); -/** @brief Fecal coliform and E. Coli Concentration Measurement Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfFecalColiformAndEColiConcentrationMeasurementClusterServerManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Fecal coliform and E. Coli Concentration Measurement Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfFecalColiformAndEColiConcentrationMeasurementClusterServerMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, - uint8_t * message, EmberStatus status); -/** @brief Fecal coliform and E. Coli Concentration Measurement Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfFecalColiformAndEColiConcentrationMeasurementClusterServerPreAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, EmberAfAttributeType attributeType, uint8_t size, uint8_t * value); -/** @brief Fecal coliform and E. Coli Concentration Measurement Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfFecalColiformAndEColiConcentrationMeasurementClusterServerTickCallback(uint8_t endpoint); - -/** @} END Fecal coliform and E. Coli Concentration Measurement Cluster Callbacks */ - -/** @name Fluoride Concentration Measurement Cluster Callbacks */ -// @{ - -/** @brief Fluoride Concentration Measurement Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfFluorideConcentrationMeasurementClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Fluoride Concentration Measurement Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfFluorideConcentrationMeasurementClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Fluoride Concentration Measurement Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfFluorideConcentrationMeasurementClusterClientInitCallback(uint8_t endpoint); -/** @brief Fluoride Concentration Measurement Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfFluorideConcentrationMeasurementClusterClientManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Fluoride Concentration Measurement Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfFluorideConcentrationMeasurementClusterClientMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, EmberApsFrame * apsFrame, - uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Fluoride Concentration Measurement Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfFluorideConcentrationMeasurementClusterClientPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Fluoride Concentration Measurement Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfFluorideConcentrationMeasurementClusterClientTickCallback(uint8_t endpoint); -/** @brief Fluoride Concentration Measurement Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfFluorideConcentrationMeasurementClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Fluoride Concentration Measurement Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfFluorideConcentrationMeasurementClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Fluoride Concentration Measurement Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfFluorideConcentrationMeasurementClusterServerInitCallback(uint8_t endpoint); -/** @brief Fluoride Concentration Measurement Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfFluorideConcentrationMeasurementClusterServerManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Fluoride Concentration Measurement Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfFluorideConcentrationMeasurementClusterServerMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, EmberApsFrame * apsFrame, - uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Fluoride Concentration Measurement Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfFluorideConcentrationMeasurementClusterServerPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Fluoride Concentration Measurement Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfFluorideConcentrationMeasurementClusterServerTickCallback(uint8_t endpoint); - -/** @} END Fluoride Concentration Measurement Cluster Callbacks */ - -/** @name Haloacetic Acids Concentration Measurement Cluster Callbacks */ -// @{ - -/** @brief Haloacetic Acids Concentration Measurement Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfHaloaceticAcidsConcentrationMeasurementClusterClientAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId); -/** @brief Haloacetic Acids Concentration Measurement Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfHaloaceticAcidsConcentrationMeasurementClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Haloacetic Acids Concentration Measurement Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfHaloaceticAcidsConcentrationMeasurementClusterClientInitCallback(uint8_t endpoint); -/** @brief Haloacetic Acids Concentration Measurement Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfHaloaceticAcidsConcentrationMeasurementClusterClientManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Haloacetic Acids Concentration Measurement Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfHaloaceticAcidsConcentrationMeasurementClusterClientMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, - uint8_t * message, EmberStatus status); -/** @brief Haloacetic Acids Concentration Measurement Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfHaloaceticAcidsConcentrationMeasurementClusterClientPreAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, EmberAfAttributeType attributeType, uint8_t size, uint8_t * value); -/** @brief Haloacetic Acids Concentration Measurement Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfHaloaceticAcidsConcentrationMeasurementClusterClientTickCallback(uint8_t endpoint); -/** @brief Haloacetic Acids Concentration Measurement Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfHaloaceticAcidsConcentrationMeasurementClusterServerAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId); -/** @brief Haloacetic Acids Concentration Measurement Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfHaloaceticAcidsConcentrationMeasurementClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Haloacetic Acids Concentration Measurement Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfHaloaceticAcidsConcentrationMeasurementClusterServerInitCallback(uint8_t endpoint); -/** @brief Haloacetic Acids Concentration Measurement Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfHaloaceticAcidsConcentrationMeasurementClusterServerManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Haloacetic Acids Concentration Measurement Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfHaloaceticAcidsConcentrationMeasurementClusterServerMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, - uint8_t * message, EmberStatus status); -/** @brief Haloacetic Acids Concentration Measurement Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfHaloaceticAcidsConcentrationMeasurementClusterServerPreAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, EmberAfAttributeType attributeType, uint8_t size, uint8_t * value); -/** @brief Haloacetic Acids Concentration Measurement Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfHaloaceticAcidsConcentrationMeasurementClusterServerTickCallback(uint8_t endpoint); - -/** @} END Haloacetic Acids Concentration Measurement Cluster Callbacks */ - -/** @name Total Trihalomethanes Concentration Measurement Cluster Callbacks */ -// @{ - -/** @brief Total Trihalomethanes Concentration Measurement Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfTotalTrihalomethanesConcentrationMeasurementClusterClientAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId); -/** @brief Total Trihalomethanes Concentration Measurement Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfTotalTrihalomethanesConcentrationMeasurementClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Total Trihalomethanes Concentration Measurement Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfTotalTrihalomethanesConcentrationMeasurementClusterClientInitCallback(uint8_t endpoint); -/** @brief Total Trihalomethanes Concentration Measurement Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfTotalTrihalomethanesConcentrationMeasurementClusterClientManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Total Trihalomethanes Concentration Measurement Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfTotalTrihalomethanesConcentrationMeasurementClusterClientMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, - uint8_t * message, EmberStatus status); -/** @brief Total Trihalomethanes Concentration Measurement Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfTotalTrihalomethanesConcentrationMeasurementClusterClientPreAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, EmberAfAttributeType attributeType, uint8_t size, uint8_t * value); -/** @brief Total Trihalomethanes Concentration Measurement Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfTotalTrihalomethanesConcentrationMeasurementClusterClientTickCallback(uint8_t endpoint); -/** @brief Total Trihalomethanes Concentration Measurement Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfTotalTrihalomethanesConcentrationMeasurementClusterServerAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId); -/** @brief Total Trihalomethanes Concentration Measurement Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfTotalTrihalomethanesConcentrationMeasurementClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Total Trihalomethanes Concentration Measurement Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfTotalTrihalomethanesConcentrationMeasurementClusterServerInitCallback(uint8_t endpoint); -/** @brief Total Trihalomethanes Concentration Measurement Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfTotalTrihalomethanesConcentrationMeasurementClusterServerManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Total Trihalomethanes Concentration Measurement Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfTotalTrihalomethanesConcentrationMeasurementClusterServerMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, - uint8_t * message, EmberStatus status); -/** @brief Total Trihalomethanes Concentration Measurement Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfTotalTrihalomethanesConcentrationMeasurementClusterServerPreAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, EmberAfAttributeType attributeType, uint8_t size, uint8_t * value); -/** @brief Total Trihalomethanes Concentration Measurement Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfTotalTrihalomethanesConcentrationMeasurementClusterServerTickCallback(uint8_t endpoint); - -/** @} END Total Trihalomethanes Concentration Measurement Cluster Callbacks */ - -/** @name Total Coliform Bacteria Concentration Measurement Cluster Callbacks */ -// @{ - -/** @brief Total Coliform Bacteria Concentration Measurement Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfTotalColiformBacteriaConcentrationMeasurementClusterClientAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId); -/** @brief Total Coliform Bacteria Concentration Measurement Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfTotalColiformBacteriaConcentrationMeasurementClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Total Coliform Bacteria Concentration Measurement Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfTotalColiformBacteriaConcentrationMeasurementClusterClientInitCallback(uint8_t endpoint); -/** @brief Total Coliform Bacteria Concentration Measurement Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfTotalColiformBacteriaConcentrationMeasurementClusterClientManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Total Coliform Bacteria Concentration Measurement Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfTotalColiformBacteriaConcentrationMeasurementClusterClientMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, - uint8_t * message, EmberStatus status); -/** @brief Total Coliform Bacteria Concentration Measurement Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfTotalColiformBacteriaConcentrationMeasurementClusterClientPreAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, EmberAfAttributeType attributeType, uint8_t size, uint8_t * value); -/** @brief Total Coliform Bacteria Concentration Measurement Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfTotalColiformBacteriaConcentrationMeasurementClusterClientTickCallback(uint8_t endpoint); -/** @brief Total Coliform Bacteria Concentration Measurement Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfTotalColiformBacteriaConcentrationMeasurementClusterServerAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId); -/** @brief Total Coliform Bacteria Concentration Measurement Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfTotalColiformBacteriaConcentrationMeasurementClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Total Coliform Bacteria Concentration Measurement Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfTotalColiformBacteriaConcentrationMeasurementClusterServerInitCallback(uint8_t endpoint); -/** @brief Total Coliform Bacteria Concentration Measurement Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfTotalColiformBacteriaConcentrationMeasurementClusterServerManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Total Coliform Bacteria Concentration Measurement Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfTotalColiformBacteriaConcentrationMeasurementClusterServerMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, - uint8_t * message, EmberStatus status); -/** @brief Total Coliform Bacteria Concentration Measurement Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfTotalColiformBacteriaConcentrationMeasurementClusterServerPreAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, EmberAfAttributeType attributeType, uint8_t size, uint8_t * value); -/** @brief Total Coliform Bacteria Concentration Measurement Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfTotalColiformBacteriaConcentrationMeasurementClusterServerTickCallback(uint8_t endpoint); - -/** @} END Total Coliform Bacteria Concentration Measurement Cluster Callbacks */ - -/** @name Turbidity Concentration Measurement Cluster Callbacks */ -// @{ - -/** @brief Turbidity Concentration Measurement Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfTurbidityConcentrationMeasurementClusterClientAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId); -/** @brief Turbidity Concentration Measurement Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfTurbidityConcentrationMeasurementClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Turbidity Concentration Measurement Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfTurbidityConcentrationMeasurementClusterClientInitCallback(uint8_t endpoint); -/** @brief Turbidity Concentration Measurement Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfTurbidityConcentrationMeasurementClusterClientManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Turbidity Concentration Measurement Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfTurbidityConcentrationMeasurementClusterClientMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, EmberApsFrame * apsFrame, - uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Turbidity Concentration Measurement Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfTurbidityConcentrationMeasurementClusterClientPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Turbidity Concentration Measurement Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfTurbidityConcentrationMeasurementClusterClientTickCallback(uint8_t endpoint); -/** @brief Turbidity Concentration Measurement Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfTurbidityConcentrationMeasurementClusterServerAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId); -/** @brief Turbidity Concentration Measurement Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfTurbidityConcentrationMeasurementClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Turbidity Concentration Measurement Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfTurbidityConcentrationMeasurementClusterServerInitCallback(uint8_t endpoint); -/** @brief Turbidity Concentration Measurement Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfTurbidityConcentrationMeasurementClusterServerManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Turbidity Concentration Measurement Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfTurbidityConcentrationMeasurementClusterServerMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, EmberApsFrame * apsFrame, - uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Turbidity Concentration Measurement Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfTurbidityConcentrationMeasurementClusterServerPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Turbidity Concentration Measurement Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfTurbidityConcentrationMeasurementClusterServerTickCallback(uint8_t endpoint); - -/** @} END Turbidity Concentration Measurement Cluster Callbacks */ - -/** @name Copper Concentration Measurement Cluster Callbacks */ -// @{ - -/** @brief Copper Concentration Measurement Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfCopperConcentrationMeasurementClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Copper Concentration Measurement Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfCopperConcentrationMeasurementClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Copper Concentration Measurement Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfCopperConcentrationMeasurementClusterClientInitCallback(uint8_t endpoint); -/** @brief Copper Concentration Measurement Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfCopperConcentrationMeasurementClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Copper Concentration Measurement Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfCopperConcentrationMeasurementClusterClientMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, EmberApsFrame * apsFrame, - uint16_t msgLen, uint8_t * message, EmberStatus status); -/** @brief Copper Concentration Measurement Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfCopperConcentrationMeasurementClusterClientPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Copper Concentration Measurement Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfCopperConcentrationMeasurementClusterClientTickCallback(uint8_t endpoint); -/** @brief Copper Concentration Measurement Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfCopperConcentrationMeasurementClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Copper Concentration Measurement Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfCopperConcentrationMeasurementClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Copper Concentration Measurement Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfCopperConcentrationMeasurementClusterServerInitCallback(uint8_t endpoint); -/** @brief Copper Concentration Measurement Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfCopperConcentrationMeasurementClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Copper Concentration Measurement Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfCopperConcentrationMeasurementClusterServerMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, EmberApsFrame * apsFrame, - uint16_t msgLen, uint8_t * message, EmberStatus status); -/** @brief Copper Concentration Measurement Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfCopperConcentrationMeasurementClusterServerPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Copper Concentration Measurement Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfCopperConcentrationMeasurementClusterServerTickCallback(uint8_t endpoint); - -/** @} END Copper Concentration Measurement Cluster Callbacks */ - -/** @name Lead Concentration Measurement Cluster Callbacks */ -// @{ - -/** @brief Lead Concentration Measurement Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfLeadConcentrationMeasurementClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Lead Concentration Measurement Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfLeadConcentrationMeasurementClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Lead Concentration Measurement Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfLeadConcentrationMeasurementClusterClientInitCallback(uint8_t endpoint); -/** @brief Lead Concentration Measurement Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfLeadConcentrationMeasurementClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Lead Concentration Measurement Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfLeadConcentrationMeasurementClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, - uint8_t * message, EmberStatus status); -/** @brief Lead Concentration Measurement Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfLeadConcentrationMeasurementClusterClientPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Lead Concentration Measurement Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfLeadConcentrationMeasurementClusterClientTickCallback(uint8_t endpoint); -/** @brief Lead Concentration Measurement Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfLeadConcentrationMeasurementClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Lead Concentration Measurement Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfLeadConcentrationMeasurementClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Lead Concentration Measurement Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfLeadConcentrationMeasurementClusterServerInitCallback(uint8_t endpoint); -/** @brief Lead Concentration Measurement Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfLeadConcentrationMeasurementClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Lead Concentration Measurement Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfLeadConcentrationMeasurementClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, - uint8_t * message, EmberStatus status); -/** @brief Lead Concentration Measurement Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfLeadConcentrationMeasurementClusterServerPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Lead Concentration Measurement Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfLeadConcentrationMeasurementClusterServerTickCallback(uint8_t endpoint); - -/** @} END Lead Concentration Measurement Cluster Callbacks */ - -/** @name Manganese Concentration Measurement Cluster Callbacks */ -// @{ - -/** @brief Manganese Concentration Measurement Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfManganeseConcentrationMeasurementClusterClientAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId); -/** @brief Manganese Concentration Measurement Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfManganeseConcentrationMeasurementClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Manganese Concentration Measurement Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfManganeseConcentrationMeasurementClusterClientInitCallback(uint8_t endpoint); -/** @brief Manganese Concentration Measurement Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfManganeseConcentrationMeasurementClusterClientManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Manganese Concentration Measurement Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfManganeseConcentrationMeasurementClusterClientMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, EmberApsFrame * apsFrame, - uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Manganese Concentration Measurement Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfManganeseConcentrationMeasurementClusterClientPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Manganese Concentration Measurement Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfManganeseConcentrationMeasurementClusterClientTickCallback(uint8_t endpoint); -/** @brief Manganese Concentration Measurement Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfManganeseConcentrationMeasurementClusterServerAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId); -/** @brief Manganese Concentration Measurement Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfManganeseConcentrationMeasurementClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Manganese Concentration Measurement Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfManganeseConcentrationMeasurementClusterServerInitCallback(uint8_t endpoint); -/** @brief Manganese Concentration Measurement Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfManganeseConcentrationMeasurementClusterServerManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Manganese Concentration Measurement Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfManganeseConcentrationMeasurementClusterServerMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, EmberApsFrame * apsFrame, - uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Manganese Concentration Measurement Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfManganeseConcentrationMeasurementClusterServerPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Manganese Concentration Measurement Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfManganeseConcentrationMeasurementClusterServerTickCallback(uint8_t endpoint); - -/** @} END Manganese Concentration Measurement Cluster Callbacks */ - -/** @name Sulfate Concentration Measurement Cluster Callbacks */ -// @{ - -/** @brief Sulfate Concentration Measurement Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfSulfateConcentrationMeasurementClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Sulfate Concentration Measurement Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfSulfateConcentrationMeasurementClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Sulfate Concentration Measurement Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfSulfateConcentrationMeasurementClusterClientInitCallback(uint8_t endpoint); -/** @brief Sulfate Concentration Measurement Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfSulfateConcentrationMeasurementClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Sulfate Concentration Measurement Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfSulfateConcentrationMeasurementClusterClientMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, EmberApsFrame * apsFrame, - uint16_t msgLen, uint8_t * message, EmberStatus status); -/** @brief Sulfate Concentration Measurement Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfSulfateConcentrationMeasurementClusterClientPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Sulfate Concentration Measurement Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfSulfateConcentrationMeasurementClusterClientTickCallback(uint8_t endpoint); -/** @brief Sulfate Concentration Measurement Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfSulfateConcentrationMeasurementClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Sulfate Concentration Measurement Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfSulfateConcentrationMeasurementClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Sulfate Concentration Measurement Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfSulfateConcentrationMeasurementClusterServerInitCallback(uint8_t endpoint); -/** @brief Sulfate Concentration Measurement Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfSulfateConcentrationMeasurementClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Sulfate Concentration Measurement Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfSulfateConcentrationMeasurementClusterServerMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, EmberApsFrame * apsFrame, - uint16_t msgLen, uint8_t * message, EmberStatus status); -/** @brief Sulfate Concentration Measurement Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfSulfateConcentrationMeasurementClusterServerPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Sulfate Concentration Measurement Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfSulfateConcentrationMeasurementClusterServerTickCallback(uint8_t endpoint); - -/** @} END Sulfate Concentration Measurement Cluster Callbacks */ - -/** @name Bromodichloromethane Concentration Measurement Cluster Callbacks */ -// @{ - -/** @brief Bromodichloromethane Concentration Measurement Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfBromodichloromethaneConcentrationMeasurementClusterClientAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId); -/** @brief Bromodichloromethane Concentration Measurement Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfBromodichloromethaneConcentrationMeasurementClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Bromodichloromethane Concentration Measurement Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfBromodichloromethaneConcentrationMeasurementClusterClientInitCallback(uint8_t endpoint); -/** @brief Bromodichloromethane Concentration Measurement Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfBromodichloromethaneConcentrationMeasurementClusterClientManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Bromodichloromethane Concentration Measurement Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfBromodichloromethaneConcentrationMeasurementClusterClientMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, - uint8_t * message, EmberStatus status); -/** @brief Bromodichloromethane Concentration Measurement Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfBromodichloromethaneConcentrationMeasurementClusterClientPreAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, EmberAfAttributeType attributeType, uint8_t size, uint8_t * value); -/** @brief Bromodichloromethane Concentration Measurement Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfBromodichloromethaneConcentrationMeasurementClusterClientTickCallback(uint8_t endpoint); -/** @brief Bromodichloromethane Concentration Measurement Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfBromodichloromethaneConcentrationMeasurementClusterServerAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId); -/** @brief Bromodichloromethane Concentration Measurement Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfBromodichloromethaneConcentrationMeasurementClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Bromodichloromethane Concentration Measurement Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfBromodichloromethaneConcentrationMeasurementClusterServerInitCallback(uint8_t endpoint); -/** @brief Bromodichloromethane Concentration Measurement Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfBromodichloromethaneConcentrationMeasurementClusterServerManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Bromodichloromethane Concentration Measurement Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfBromodichloromethaneConcentrationMeasurementClusterServerMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, - uint8_t * message, EmberStatus status); -/** @brief Bromodichloromethane Concentration Measurement Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfBromodichloromethaneConcentrationMeasurementClusterServerPreAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, EmberAfAttributeType attributeType, uint8_t size, uint8_t * value); -/** @brief Bromodichloromethane Concentration Measurement Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfBromodichloromethaneConcentrationMeasurementClusterServerTickCallback(uint8_t endpoint); - -/** @} END Bromodichloromethane Concentration Measurement Cluster Callbacks */ - -/** @name Bromoform Concentration Measurement Cluster Callbacks */ -// @{ - -/** @brief Bromoform Concentration Measurement Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfBromoformConcentrationMeasurementClusterClientAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId); -/** @brief Bromoform Concentration Measurement Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfBromoformConcentrationMeasurementClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Bromoform Concentration Measurement Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfBromoformConcentrationMeasurementClusterClientInitCallback(uint8_t endpoint); -/** @brief Bromoform Concentration Measurement Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfBromoformConcentrationMeasurementClusterClientManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Bromoform Concentration Measurement Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfBromoformConcentrationMeasurementClusterClientMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, EmberApsFrame * apsFrame, - uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Bromoform Concentration Measurement Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfBromoformConcentrationMeasurementClusterClientPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Bromoform Concentration Measurement Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfBromoformConcentrationMeasurementClusterClientTickCallback(uint8_t endpoint); -/** @brief Bromoform Concentration Measurement Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfBromoformConcentrationMeasurementClusterServerAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId); -/** @brief Bromoform Concentration Measurement Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfBromoformConcentrationMeasurementClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Bromoform Concentration Measurement Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfBromoformConcentrationMeasurementClusterServerInitCallback(uint8_t endpoint); -/** @brief Bromoform Concentration Measurement Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfBromoformConcentrationMeasurementClusterServerManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Bromoform Concentration Measurement Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfBromoformConcentrationMeasurementClusterServerMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, EmberApsFrame * apsFrame, - uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Bromoform Concentration Measurement Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfBromoformConcentrationMeasurementClusterServerPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Bromoform Concentration Measurement Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfBromoformConcentrationMeasurementClusterServerTickCallback(uint8_t endpoint); - -/** @} END Bromoform Concentration Measurement Cluster Callbacks */ - -/** @name Chlorodibromomethane Concentration Measurement Cluster Callbacks */ -// @{ - -/** @brief Chlorodibromomethane Concentration Measurement Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfChlorodibromomethaneConcentrationMeasurementClusterClientAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId); -/** @brief Chlorodibromomethane Concentration Measurement Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfChlorodibromomethaneConcentrationMeasurementClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Chlorodibromomethane Concentration Measurement Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfChlorodibromomethaneConcentrationMeasurementClusterClientInitCallback(uint8_t endpoint); -/** @brief Chlorodibromomethane Concentration Measurement Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfChlorodibromomethaneConcentrationMeasurementClusterClientManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Chlorodibromomethane Concentration Measurement Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfChlorodibromomethaneConcentrationMeasurementClusterClientMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, - uint8_t * message, EmberStatus status); -/** @brief Chlorodibromomethane Concentration Measurement Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfChlorodibromomethaneConcentrationMeasurementClusterClientPreAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, EmberAfAttributeType attributeType, uint8_t size, uint8_t * value); -/** @brief Chlorodibromomethane Concentration Measurement Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfChlorodibromomethaneConcentrationMeasurementClusterClientTickCallback(uint8_t endpoint); -/** @brief Chlorodibromomethane Concentration Measurement Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfChlorodibromomethaneConcentrationMeasurementClusterServerAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId); -/** @brief Chlorodibromomethane Concentration Measurement Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfChlorodibromomethaneConcentrationMeasurementClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Chlorodibromomethane Concentration Measurement Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfChlorodibromomethaneConcentrationMeasurementClusterServerInitCallback(uint8_t endpoint); -/** @brief Chlorodibromomethane Concentration Measurement Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfChlorodibromomethaneConcentrationMeasurementClusterServerManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Chlorodibromomethane Concentration Measurement Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfChlorodibromomethaneConcentrationMeasurementClusterServerMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, - uint8_t * message, EmberStatus status); -/** @brief Chlorodibromomethane Concentration Measurement Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfChlorodibromomethaneConcentrationMeasurementClusterServerPreAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, EmberAfAttributeType attributeType, uint8_t size, uint8_t * value); -/** @brief Chlorodibromomethane Concentration Measurement Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfChlorodibromomethaneConcentrationMeasurementClusterServerTickCallback(uint8_t endpoint); - -/** @} END Chlorodibromomethane Concentration Measurement Cluster Callbacks */ - -/** @name Chloroform Concentration Measurement Cluster Callbacks */ -// @{ - -/** @brief Chloroform Concentration Measurement Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfChloroformConcentrationMeasurementClusterClientAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId); -/** @brief Chloroform Concentration Measurement Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfChloroformConcentrationMeasurementClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Chloroform Concentration Measurement Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfChloroformConcentrationMeasurementClusterClientInitCallback(uint8_t endpoint); -/** @brief Chloroform Concentration Measurement Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfChloroformConcentrationMeasurementClusterClientManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Chloroform Concentration Measurement Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfChloroformConcentrationMeasurementClusterClientMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, - uint8_t * message, EmberStatus status); -/** @brief Chloroform Concentration Measurement Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfChloroformConcentrationMeasurementClusterClientPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Chloroform Concentration Measurement Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfChloroformConcentrationMeasurementClusterClientTickCallback(uint8_t endpoint); -/** @brief Chloroform Concentration Measurement Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfChloroformConcentrationMeasurementClusterServerAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId); -/** @brief Chloroform Concentration Measurement Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfChloroformConcentrationMeasurementClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Chloroform Concentration Measurement Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfChloroformConcentrationMeasurementClusterServerInitCallback(uint8_t endpoint); -/** @brief Chloroform Concentration Measurement Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfChloroformConcentrationMeasurementClusterServerManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Chloroform Concentration Measurement Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfChloroformConcentrationMeasurementClusterServerMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, - uint8_t * message, EmberStatus status); -/** @brief Chloroform Concentration Measurement Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfChloroformConcentrationMeasurementClusterServerPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Chloroform Concentration Measurement Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfChloroformConcentrationMeasurementClusterServerTickCallback(uint8_t endpoint); - -/** @} END Chloroform Concentration Measurement Cluster Callbacks */ - -/** @name Sodium Concentration Measurement Cluster Callbacks */ -// @{ - -/** @brief Sodium Concentration Measurement Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfSodiumConcentrationMeasurementClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Sodium Concentration Measurement Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfSodiumConcentrationMeasurementClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Sodium Concentration Measurement Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfSodiumConcentrationMeasurementClusterClientInitCallback(uint8_t endpoint); -/** @brief Sodium Concentration Measurement Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfSodiumConcentrationMeasurementClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Sodium Concentration Measurement Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfSodiumConcentrationMeasurementClusterClientMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, EmberApsFrame * apsFrame, - uint16_t msgLen, uint8_t * message, EmberStatus status); -/** @brief Sodium Concentration Measurement Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfSodiumConcentrationMeasurementClusterClientPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Sodium Concentration Measurement Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfSodiumConcentrationMeasurementClusterClientTickCallback(uint8_t endpoint); -/** @brief Sodium Concentration Measurement Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfSodiumConcentrationMeasurementClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Sodium Concentration Measurement Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfSodiumConcentrationMeasurementClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Sodium Concentration Measurement Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfSodiumConcentrationMeasurementClusterServerInitCallback(uint8_t endpoint); -/** @brief Sodium Concentration Measurement Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfSodiumConcentrationMeasurementClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Sodium Concentration Measurement Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfSodiumConcentrationMeasurementClusterServerMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, EmberApsFrame * apsFrame, - uint16_t msgLen, uint8_t * message, EmberStatus status); -/** @brief Sodium Concentration Measurement Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfSodiumConcentrationMeasurementClusterServerPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Sodium Concentration Measurement Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfSodiumConcentrationMeasurementClusterServerTickCallback(uint8_t endpoint); - -/** @} END Sodium Concentration Measurement Cluster Callbacks */ - -/** @name IAS Zone Cluster Callbacks */ -// @{ - -/** @brief IAS Zone Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfIasZoneClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief IAS Zone Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfIasZoneClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief IAS Zone Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfIasZoneClusterClientInitCallback(uint8_t endpoint); -/** @brief IAS Zone Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfIasZoneClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief IAS Zone Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfIasZoneClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief IAS Zone Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfIasZoneClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief IAS Zone Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfIasZoneClusterClientTickCallback(uint8_t endpoint); -/** @brief IAS Zone Cluster Initiate Normal Operation Mode - * - * - * - */ -bool emberAfIasZoneClusterInitiateNormalOperationModeCallback(void); -/** @brief IAS Zone Cluster Initiate Normal Operation Mode Response - * - * - * - */ -bool emberAfIasZoneClusterInitiateNormalOperationModeResponseCallback(void); -/** @brief IAS Zone Cluster Initiate Test Mode - * - * - * - * @param testModeDuration Ver.: always - * @param currentZoneSensitivityLevel Ver.: always - */ -bool emberAfIasZoneClusterInitiateTestModeCallback(uint8_t testModeDuration, uint8_t currentZoneSensitivityLevel); -/** @brief IAS Zone Cluster Initiate Test Mode Response - * - * - * - */ -bool emberAfIasZoneClusterInitiateTestModeResponseCallback(void); -/** @brief IAS Zone Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfIasZoneClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief IAS Zone Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfIasZoneClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief IAS Zone Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfIasZoneClusterServerInitCallback(uint8_t endpoint); -/** @brief IAS Zone Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfIasZoneClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief IAS Zone Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfIasZoneClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief IAS Zone Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfIasZoneClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief IAS Zone Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfIasZoneClusterServerTickCallback(uint8_t endpoint); -/** @brief IAS Zone Cluster Zone Enroll Request - * - * - * - * @param zoneType Ver.: always - * @param manufacturerCode Ver.: always - */ -bool emberAfIasZoneClusterZoneEnrollRequestCallback(uint16_t zoneType, uint16_t manufacturerCode); -/** @brief IAS Zone Cluster Zone Enroll Response - * - * - * - * @param enrollResponseCode Ver.: always - * @param zoneId Ver.: always - */ -bool emberAfIasZoneClusterZoneEnrollResponseCallback(uint8_t enrollResponseCode, uint8_t zoneId); -/** @brief IAS Zone Cluster Zone Status Change Notification - * - * - * - * @param zoneStatus Ver.: always - * @param extendedStatus Ver.: always - * @param zoneId Ver.: since ha-1.2-05-3520-29 - * @param delay Ver.: since ha-1.2-05-3520-29 - */ -bool emberAfIasZoneClusterZoneStatusChangeNotificationCallback(uint16_t zoneStatus, uint8_t extendedStatus, uint8_t zoneId, - uint16_t delay); - -/** @} END IAS Zone Cluster Callbacks */ - -/** @name IAS ACE Cluster Callbacks */ -// @{ - -/** @brief IAS ACE Cluster Arm - * - * - * - * @param armMode Ver.: always - * @param armDisarmCode Ver.: since ha-1.2-05-3520-29 - * @param zoneId Ver.: since ha-1.2-05-3520-29 - */ -bool emberAfIasAceClusterArmCallback(uint8_t armMode, uint8_t * armDisarmCode, uint8_t zoneId); -/** @brief IAS ACE Cluster Arm Response - * - * - * - * @param armNotification Ver.: always - */ -bool emberAfIasAceClusterArmResponseCallback(uint8_t armNotification); -/** @brief IAS ACE Cluster Bypass - * - * - * - * @param numberOfZones Ver.: always - * @param zoneIds Ver.: always - * @param armDisarmCode Ver.: since ha-1.2.1-05-3520-30 - */ -bool emberAfIasAceClusterBypassCallback(uint8_t numberOfZones, uint8_t * zoneIds, uint8_t * armDisarmCode); -/** @brief IAS ACE Cluster Bypass Response - * - * - * - * @param numberOfZones Ver.: always - * @param bypassResult Ver.: always - */ -bool emberAfIasAceClusterBypassResponseCallback(uint8_t numberOfZones, uint8_t * bypassResult); -/** @brief IAS ACE Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfIasAceClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief IAS ACE Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfIasAceClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief IAS ACE Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfIasAceClusterClientInitCallback(uint8_t endpoint); -/** @brief IAS ACE Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfIasAceClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief IAS ACE Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfIasAceClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief IAS ACE Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfIasAceClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief IAS ACE Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfIasAceClusterClientTickCallback(uint8_t endpoint); -/** @brief IAS ACE Cluster Emergency - * - * - * - */ -bool emberAfIasAceClusterEmergencyCallback(void); -/** @brief IAS ACE Cluster Fire - * - * - * - */ -bool emberAfIasAceClusterFireCallback(void); -/** @brief IAS ACE Cluster Get Bypassed Zone List - * - * - * - */ -bool emberAfIasAceClusterGetBypassedZoneListCallback(void); -/** @brief IAS ACE Cluster Get Panel Status - * - * - * - */ -bool emberAfIasAceClusterGetPanelStatusCallback(void); -/** @brief IAS ACE Cluster Get Panel Status Response - * - * - * - * @param panelStatus Ver.: always - * @param secondsRemaining Ver.: always - * @param audibleNotification Ver.: always - * @param alarmStatus Ver.: always - */ -bool emberAfIasAceClusterGetPanelStatusResponseCallback(uint8_t panelStatus, uint8_t secondsRemaining, uint8_t audibleNotification, - uint8_t alarmStatus); -/** @brief IAS ACE Cluster Get Zone Id Map - * - * - * - */ -bool emberAfIasAceClusterGetZoneIdMapCallback(void); -/** @brief IAS ACE Cluster Get Zone Id Map Response - * - * - * - * @param section0 Ver.: always - * @param section1 Ver.: always - * @param section2 Ver.: always - * @param section3 Ver.: always - * @param section4 Ver.: always - * @param section5 Ver.: always - * @param section6 Ver.: always - * @param section7 Ver.: always - * @param section8 Ver.: always - * @param section9 Ver.: always - * @param section10 Ver.: always - * @param section11 Ver.: always - * @param section12 Ver.: always - * @param section13 Ver.: always - * @param section14 Ver.: always - * @param section15 Ver.: always - */ -bool emberAfIasAceClusterGetZoneIdMapResponseCallback(uint16_t section0, uint16_t section1, uint16_t section2, uint16_t section3, - uint16_t section4, uint16_t section5, uint16_t section6, uint16_t section7, - uint16_t section8, uint16_t section9, uint16_t section10, uint16_t section11, - uint16_t section12, uint16_t section13, uint16_t section14, - uint16_t section15); -/** @brief IAS ACE Cluster Get Zone Information - * - * - * - * @param zoneId Ver.: always - */ -bool emberAfIasAceClusterGetZoneInformationCallback(uint8_t zoneId); -/** @brief IAS ACE Cluster Get Zone Information Response - * - * - * - * @param zoneId Ver.: always - * @param zoneType Ver.: always - * @param ieeeAddress Ver.: always - * @param zoneLabel Ver.: since ha-1.2.1-05-3520-30 - */ -bool emberAfIasAceClusterGetZoneInformationResponseCallback(uint8_t zoneId, uint16_t zoneType, uint8_t * ieeeAddress, - uint8_t * zoneLabel); -/** @brief IAS ACE Cluster Get Zone Status - * - * - * - * @param startingZoneId Ver.: always - * @param maxNumberOfZoneIds Ver.: always - * @param zoneStatusMaskFlag Ver.: always - * @param zoneStatusMask Ver.: always - */ -bool emberAfIasAceClusterGetZoneStatusCallback(uint8_t startingZoneId, uint8_t maxNumberOfZoneIds, uint8_t zoneStatusMaskFlag, - uint16_t zoneStatusMask); -/** @brief IAS ACE Cluster Get Zone Status Response - * - * - * - * @param zoneStatusComplete Ver.: always - * @param numberOfZones Ver.: always - * @param zoneStatusResult Ver.: always - */ -bool emberAfIasAceClusterGetZoneStatusResponseCallback(uint8_t zoneStatusComplete, uint8_t numberOfZones, - uint8_t * zoneStatusResult); -/** @brief IAS ACE Cluster Panel Status Changed - * - * - * - * @param panelStatus Ver.: always - * @param secondsRemaining Ver.: always - * @param audibleNotification Ver.: since ha-1.2.1-05-3520-30 - * @param alarmStatus Ver.: since ha-1.2.1-05-3520-30 - */ -bool emberAfIasAceClusterPanelStatusChangedCallback(uint8_t panelStatus, uint8_t secondsRemaining, uint8_t audibleNotification, - uint8_t alarmStatus); -/** @brief IAS ACE Cluster Panic - * - * - * - */ -bool emberAfIasAceClusterPanicCallback(void); -/** @brief IAS ACE Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfIasAceClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief IAS ACE Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfIasAceClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief IAS ACE Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfIasAceClusterServerInitCallback(uint8_t endpoint); -/** @brief IAS ACE Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfIasAceClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief IAS ACE Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfIasAceClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief IAS ACE Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfIasAceClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief IAS ACE Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfIasAceClusterServerTickCallback(uint8_t endpoint); -/** @brief IAS ACE Cluster Set Bypassed Zone List - * - * - * - * @param numberOfZones Ver.: always - * @param zoneIds Ver.: always - */ -bool emberAfIasAceClusterSetBypassedZoneListCallback(uint8_t numberOfZones, uint8_t * zoneIds); -/** @brief IAS ACE Cluster Zone Status Changed - * - * - * - * @param zoneId Ver.: always - * @param zoneStatus Ver.: always - * @param audibleNotification Ver.: since ha-1.2.1-05-3520-30 - * @param zoneLabel Ver.: since ha-1.2.1-05-3520-30 - */ -bool emberAfIasAceClusterZoneStatusChangedCallback(uint8_t zoneId, uint16_t zoneStatus, uint8_t audibleNotification, - uint8_t * zoneLabel); - -/** @} END IAS ACE Cluster Callbacks */ - -/** @name IAS WD Cluster Callbacks */ -// @{ - -/** @brief IAS WD Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfIasWdClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief IAS WD Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfIasWdClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief IAS WD Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfIasWdClusterClientInitCallback(uint8_t endpoint); -/** @brief IAS WD Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfIasWdClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief IAS WD Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfIasWdClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, EmberStatus status); -/** @brief IAS WD Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfIasWdClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief IAS WD Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfIasWdClusterClientTickCallback(uint8_t endpoint); -/** @brief IAS WD Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfIasWdClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief IAS WD Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfIasWdClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief IAS WD Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfIasWdClusterServerInitCallback(uint8_t endpoint); -/** @brief IAS WD Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfIasWdClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief IAS WD Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfIasWdClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, EmberStatus status); -/** @brief IAS WD Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfIasWdClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief IAS WD Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfIasWdClusterServerTickCallback(uint8_t endpoint); -/** @brief IAS WD Cluster Squawk - * - * - * - * @param squawkInfo Ver.: always - */ -bool emberAfIasWdClusterSquawkCallback(uint8_t squawkInfo); -/** @brief IAS WD Cluster Start Warning - * - * - * - * @param warningInfo Ver.: always - * @param warningDuration Ver.: always - * @param strobeDutyCycle Ver.: since ha-1.2-05-3520-29 - * @param strobeLevel Ver.: since ha-1.2-05-3520-29 - */ -bool emberAfIasWdClusterStartWarningCallback(uint8_t warningInfo, uint16_t warningDuration, uint8_t strobeDutyCycle, - uint8_t strobeLevel); - -/** @} END IAS WD Cluster Callbacks */ - -/** @name Generic Tunnel Cluster Callbacks */ -// @{ - -/** @brief Generic Tunnel Cluster Advertise Protocol Address - * - * - * - * @param protocolAddress Ver.: always - */ -bool emberAfGenericTunnelClusterAdvertiseProtocolAddressCallback(uint8_t * protocolAddress); -/** @brief Generic Tunnel Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfGenericTunnelClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Generic Tunnel Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfGenericTunnelClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Generic Tunnel Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfGenericTunnelClusterClientInitCallback(uint8_t endpoint); -/** @brief Generic Tunnel Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfGenericTunnelClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Generic Tunnel Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfGenericTunnelClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Generic Tunnel Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfGenericTunnelClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Generic Tunnel Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfGenericTunnelClusterClientTickCallback(uint8_t endpoint); -/** @brief Generic Tunnel Cluster Match Protocol Address - * - * - * - * @param protocolAddress Ver.: always - */ -bool emberAfGenericTunnelClusterMatchProtocolAddressCallback(uint8_t * protocolAddress); -/** @brief Generic Tunnel Cluster Match Protocol Address Response - * - * - * - * @param deviceIeeeAddress Ver.: always - * @param protocolAddress Ver.: always - */ -bool emberAfGenericTunnelClusterMatchProtocolAddressResponseCallback(uint8_t * deviceIeeeAddress, uint8_t * protocolAddress); -/** @brief Generic Tunnel Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfGenericTunnelClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Generic Tunnel Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfGenericTunnelClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Generic Tunnel Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfGenericTunnelClusterServerInitCallback(uint8_t endpoint); -/** @brief Generic Tunnel Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfGenericTunnelClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Generic Tunnel Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfGenericTunnelClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Generic Tunnel Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfGenericTunnelClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Generic Tunnel Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfGenericTunnelClusterServerTickCallback(uint8_t endpoint); - -/** @} END Generic Tunnel Cluster Callbacks */ - -/** @name BACnet Protocol Tunnel Cluster Callbacks */ -// @{ - -/** @brief BACnet Protocol Tunnel Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfBacnetProtocolTunnelClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief BACnet Protocol Tunnel Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfBacnetProtocolTunnelClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief BACnet Protocol Tunnel Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfBacnetProtocolTunnelClusterClientInitCallback(uint8_t endpoint); -/** @brief BACnet Protocol Tunnel Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfBacnetProtocolTunnelClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief BACnet Protocol Tunnel Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfBacnetProtocolTunnelClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief BACnet Protocol Tunnel Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfBacnetProtocolTunnelClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief BACnet Protocol Tunnel Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfBacnetProtocolTunnelClusterClientTickCallback(uint8_t endpoint); -/** @brief BACnet Protocol Tunnel Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfBacnetProtocolTunnelClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief BACnet Protocol Tunnel Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfBacnetProtocolTunnelClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief BACnet Protocol Tunnel Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfBacnetProtocolTunnelClusterServerInitCallback(uint8_t endpoint); -/** @brief BACnet Protocol Tunnel Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfBacnetProtocolTunnelClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief BACnet Protocol Tunnel Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfBacnetProtocolTunnelClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief BACnet Protocol Tunnel Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfBacnetProtocolTunnelClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief BACnet Protocol Tunnel Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfBacnetProtocolTunnelClusterServerTickCallback(uint8_t endpoint); -/** @brief BACnet Protocol Tunnel Cluster Transfer Npdu - * - * - * - * @param npdu Ver.: always - */ -bool emberAfBacnetProtocolTunnelClusterTransferNpduCallback(uint8_t * npdu); - -/** @} END BACnet Protocol Tunnel Cluster Callbacks */ - -/** @name 11073 Protocol Tunnel Cluster Callbacks */ -// @{ - -/** @brief 11073 Protocol Tunnel Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAf11073ProtocolTunnelClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief 11073 Protocol Tunnel Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAf11073ProtocolTunnelClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief 11073 Protocol Tunnel Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAf11073ProtocolTunnelClusterClientInitCallback(uint8_t endpoint); -/** @brief 11073 Protocol Tunnel Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAf11073ProtocolTunnelClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief 11073 Protocol Tunnel Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAf11073ProtocolTunnelClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief 11073 Protocol Tunnel Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAf11073ProtocolTunnelClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief 11073 Protocol Tunnel Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAf11073ProtocolTunnelClusterClientTickCallback(uint8_t endpoint); -/** @brief 11073 Protocol Tunnel Cluster Connect Request - * - * - * - * @param connectControl Ver.: always - * @param idleTimeout Ver.: always - * @param managerTarget Ver.: always - * @param managerEndpoint Ver.: always - */ -bool emberAf11073ProtocolTunnelClusterConnectRequestCallback(uint8_t connectControl, uint16_t idleTimeout, uint8_t * managerTarget, - uint8_t managerEndpoint); -/** @brief 11073 Protocol Tunnel Cluster Connect Status Notification - * - * - * - * @param connectStatus Ver.: always - */ -bool emberAf11073ProtocolTunnelClusterConnectStatusNotificationCallback(uint8_t connectStatus); -/** @brief 11073 Protocol Tunnel Cluster Disconnect Request - * - * - * - * @param managerIEEEAddress Ver.: always - */ -bool emberAf11073ProtocolTunnelClusterDisconnectRequestCallback(uint8_t * managerIEEEAddress); -/** @brief 11073 Protocol Tunnel Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAf11073ProtocolTunnelClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief 11073 Protocol Tunnel Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAf11073ProtocolTunnelClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief 11073 Protocol Tunnel Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAf11073ProtocolTunnelClusterServerInitCallback(uint8_t endpoint); -/** @brief 11073 Protocol Tunnel Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAf11073ProtocolTunnelClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief 11073 Protocol Tunnel Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAf11073ProtocolTunnelClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief 11073 Protocol Tunnel Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAf11073ProtocolTunnelClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief 11073 Protocol Tunnel Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAf11073ProtocolTunnelClusterServerTickCallback(uint8_t endpoint); -/** @brief 11073 Protocol Tunnel Cluster Transfer A P D U - * - * - * - * @param apdu Ver.: always - */ -bool emberAf11073ProtocolTunnelClusterTransferAPDUCallback(uint8_t * apdu); - -/** @} END 11073 Protocol Tunnel Cluster Callbacks */ - -/** @name ISO 7816 Protocol Tunnel Cluster Callbacks */ -// @{ - -/** @brief ISO 7816 Protocol Tunnel Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfIso7816ProtocolTunnelClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief ISO 7816 Protocol Tunnel Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfIso7816ProtocolTunnelClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief ISO 7816 Protocol Tunnel Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfIso7816ProtocolTunnelClusterClientInitCallback(uint8_t endpoint); -/** @brief ISO 7816 Protocol Tunnel Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfIso7816ProtocolTunnelClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief ISO 7816 Protocol Tunnel Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfIso7816ProtocolTunnelClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief ISO 7816 Protocol Tunnel Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfIso7816ProtocolTunnelClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief ISO 7816 Protocol Tunnel Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfIso7816ProtocolTunnelClusterClientTickCallback(uint8_t endpoint); -/** @brief ISO 7816 Protocol Tunnel Cluster Extract Smart Card - * - * - * - */ -bool emberAfIso7816ProtocolTunnelClusterExtractSmartCardCallback(void); -/** @brief ISO 7816 Protocol Tunnel Cluster Insert Smart Card - * - * - * - */ -bool emberAfIso7816ProtocolTunnelClusterInsertSmartCardCallback(void); -/** @brief ISO 7816 Protocol Tunnel Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfIso7816ProtocolTunnelClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief ISO 7816 Protocol Tunnel Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfIso7816ProtocolTunnelClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief ISO 7816 Protocol Tunnel Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfIso7816ProtocolTunnelClusterServerInitCallback(uint8_t endpoint); -/** @brief ISO 7816 Protocol Tunnel Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfIso7816ProtocolTunnelClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief ISO 7816 Protocol Tunnel Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfIso7816ProtocolTunnelClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief ISO 7816 Protocol Tunnel Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfIso7816ProtocolTunnelClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief ISO 7816 Protocol Tunnel Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfIso7816ProtocolTunnelClusterServerTickCallback(uint8_t endpoint); -/** @brief ISO 7816 Protocol Tunnel Cluster Transfer Apdu - * - * - * - * @param apdu Ver.: always - */ -bool emberAfIso7816ProtocolTunnelClusterTransferApduCallback(uint8_t * apdu); - -/** @} END ISO 7816 Protocol Tunnel Cluster Callbacks */ - -/** @name Price Cluster Callbacks */ -// @{ - -/** @brief Price Cluster Cancel Tariff - * - * - * - * @param providerId Ver.: always - * @param issuerTariffId Ver.: always - * @param tariffType Ver.: always - */ -bool emberAfPriceClusterCancelTariffCallback(uint32_t providerId, uint32_t issuerTariffId, uint8_t tariffType); -/** @brief Price Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfPriceClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Price Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfPriceClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Price Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfPriceClusterClientInitCallback(uint8_t endpoint); -/** @brief Price Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfPriceClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Price Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfPriceClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, EmberStatus status); -/** @brief Price Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfPriceClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Price Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfPriceClusterClientTickCallback(uint8_t endpoint); -/** @brief Price Cluster Cpp Event Response - * - * - * - * @param issuerEventId Ver.: always - * @param cppAuth Ver.: always - */ -bool emberAfPriceClusterCppEventResponseCallback(uint32_t issuerEventId, uint8_t cppAuth); -/** @brief Price Cluster Get Billing Period - * - * - * - * @param earliestStartTime Ver.: always - * @param minIssuerEventId Ver.: always - * @param numberOfCommands Ver.: always - * @param tariffType Ver.: always - */ -bool emberAfPriceClusterGetBillingPeriodCallback(uint32_t earliestStartTime, uint32_t minIssuerEventId, uint8_t numberOfCommands, - uint8_t tariffType); -/** @brief Price Cluster Get Block Periods - * - * - * - * @param startTime Ver.: always - * @param numberOfEvents Ver.: always - * @param tariffType Ver.: always - */ -bool emberAfPriceClusterGetBlockPeriodsCallback(uint32_t startTime, uint8_t numberOfEvents, uint8_t tariffType); -/** @brief Price Cluster Get Block Thresholds - * - * - * - * @param issuerTariffId Ver.: always - */ -bool emberAfPriceClusterGetBlockThresholdsCallback(uint32_t issuerTariffId); -/** @brief Price Cluster Get C O2 Value - * - * - * - * @param earliestStartTime Ver.: always - * @param minIssuerEventId Ver.: always - * @param numberOfCommands Ver.: always - * @param tariffType Ver.: always - */ -bool emberAfPriceClusterGetCO2ValueCallback(uint32_t earliestStartTime, uint32_t minIssuerEventId, uint8_t numberOfCommands, - uint8_t tariffType); -/** @brief Price Cluster Get Calorific Value - * - * - * - * @param earliestStartTime Ver.: always - * @param minIssuerEventId Ver.: always - * @param numberOfCommands Ver.: always - */ -bool emberAfPriceClusterGetCalorificValueCallback(uint32_t earliestStartTime, uint32_t minIssuerEventId, uint8_t numberOfCommands); -/** @brief Price Cluster Get Consolidated Bill - * - * - * - * @param earliestStartTime Ver.: always - * @param minIssuerEventId Ver.: always - * @param numberOfCommands Ver.: always - * @param tariffType Ver.: always - */ -bool emberAfPriceClusterGetConsolidatedBillCallback(uint32_t earliestStartTime, uint32_t minIssuerEventId, uint8_t numberOfCommands, - uint8_t tariffType); -/** @brief Price Cluster Get Conversion Factor - * - * - * - * @param earliestStartTime Ver.: always - * @param minIssuerEventId Ver.: always - * @param numberOfCommands Ver.: always - */ -bool emberAfPriceClusterGetConversionFactorCallback(uint32_t earliestStartTime, uint32_t minIssuerEventId, - uint8_t numberOfCommands); -/** @brief Price Cluster Get Credit Payment - * - * - * - * @param latestEndTime Ver.: always - * @param numberOfRecords Ver.: always - */ -bool emberAfPriceClusterGetCreditPaymentCallback(uint32_t latestEndTime, uint8_t numberOfRecords); -/** @brief Price Cluster Get Currency Conversion Command - * - * - * - */ -bool emberAfPriceClusterGetCurrencyConversionCommandCallback(void); -/** @brief Price Cluster Get Current Price - * - * - * - * @param commandOptions Ver.: always - */ -bool emberAfPriceClusterGetCurrentPriceCallback(uint8_t commandOptions); -/** @brief Price Cluster Get Price Matrix - * - * - * - * @param issuerTariffId Ver.: always - */ -bool emberAfPriceClusterGetPriceMatrixCallback(uint32_t issuerTariffId); -/** @brief Price Cluster Get Scheduled Prices - * - * - * - * @param startTime Ver.: always - * @param numberOfEvents Ver.: always - */ -bool emberAfPriceClusterGetScheduledPricesCallback(uint32_t startTime, uint8_t numberOfEvents); -/** @brief Price Cluster Get Tariff Cancellation - * - * - * - */ -bool emberAfPriceClusterGetTariffCancellationCallback(void); -/** @brief Price Cluster Get Tariff Information - * - * - * - * @param earliestStartTime Ver.: always - * @param minIssuerEventId Ver.: always - * @param numberOfCommands Ver.: always - * @param tariffType Ver.: always - */ -bool emberAfPriceClusterGetTariffInformationCallback(uint32_t earliestStartTime, uint32_t minIssuerEventId, - uint8_t numberOfCommands, uint8_t tariffType); -/** @brief Price Cluster Get Tier Labels - * - * - * - * @param issuerTariffId Ver.: always - */ -bool emberAfPriceClusterGetTierLabelsCallback(uint32_t issuerTariffId); -/** @brief Price Cluster Price Acknowledgement - * - * - * - * @param providerId Ver.: always - * @param issuerEventId Ver.: always - * @param priceAckTime Ver.: always - * @param control Ver.: always - */ -bool emberAfPriceClusterPriceAcknowledgementCallback(uint32_t providerId, uint32_t issuerEventId, uint32_t priceAckTime, - uint8_t control); -/** @brief Price Cluster Publish Billing Period - * - * - * - * @param providerId Ver.: always - * @param issuerEventId Ver.: always - * @param billingPeriodStartTime Ver.: always - * @param billingPeriodDuration Ver.: always - * @param billingPeriodDurationType Ver.: always - * @param tariffType Ver.: always - */ -bool emberAfPriceClusterPublishBillingPeriodCallback(uint32_t providerId, uint32_t issuerEventId, uint32_t billingPeriodStartTime, - uint32_t billingPeriodDuration, uint8_t billingPeriodDurationType, - uint8_t tariffType); -/** @brief Price Cluster Publish Block Period - * - * - * - * @param providerId Ver.: always - * @param issuerEventId Ver.: always - * @param blockPeriodStartTime Ver.: always - * @param blockPeriodDuration Ver.: always - * @param blockPeriodControl Ver.: always - * @param blockPeriodDurationType Ver.: since se-1.2a-07-5356-19 - * @param tariffType Ver.: since se-1.2a-07-5356-19 - * @param tariffResolutionPeriod Ver.: since se-1.2a-07-5356-19 - */ -bool emberAfPriceClusterPublishBlockPeriodCallback(uint32_t providerId, uint32_t issuerEventId, uint32_t blockPeriodStartTime, - uint32_t blockPeriodDuration, uint8_t blockPeriodControl, - uint8_t blockPeriodDurationType, uint8_t tariffType, - uint8_t tariffResolutionPeriod); -/** @brief Price Cluster Publish Block Thresholds - * - * - * - * @param providerId Ver.: always - * @param issuerEventId Ver.: always - * @param startTime Ver.: always - * @param issuerTariffId Ver.: always - * @param commandIndex Ver.: always - * @param numberOfCommands Ver.: always - * @param subPayloadControl Ver.: always - * @param payload Ver.: always - */ -bool emberAfPriceClusterPublishBlockThresholdsCallback(uint32_t providerId, uint32_t issuerEventId, uint32_t startTime, - uint32_t issuerTariffId, uint8_t commandIndex, uint8_t numberOfCommands, - uint8_t subPayloadControl, uint8_t * payload); -/** @brief Price Cluster Publish C O2 Value - * - * - * - * @param providerId Ver.: always - * @param issuerEventId Ver.: always - * @param startTime Ver.: always - * @param tariffType Ver.: always - * @param cO2Value Ver.: always - * @param cO2ValueUnit Ver.: always - * @param cO2ValueTrailingDigit Ver.: always - */ -bool emberAfPriceClusterPublishCO2ValueCallback(uint32_t providerId, uint32_t issuerEventId, uint32_t startTime, uint8_t tariffType, - uint32_t cO2Value, uint8_t cO2ValueUnit, uint8_t cO2ValueTrailingDigit); -/** @brief Price Cluster Publish Calorific Value - * - * - * - * @param issuerEventId Ver.: always - * @param startTime Ver.: always - * @param calorificValue Ver.: always - * @param calorificValueUnit Ver.: always - * @param calorificValueTrailingDigit Ver.: always - */ -bool emberAfPriceClusterPublishCalorificValueCallback(uint32_t issuerEventId, uint32_t startTime, uint32_t calorificValue, - uint8_t calorificValueUnit, uint8_t calorificValueTrailingDigit); -/** @brief Price Cluster Publish Consolidated Bill - * - * - * - * @param providerId Ver.: always - * @param issuerEventId Ver.: always - * @param billingPeriodStartTime Ver.: always - * @param billingPeriodDuration Ver.: always - * @param billingPeriodDurationType Ver.: always - * @param tariffType Ver.: always - * @param consolidatedBill Ver.: always - * @param currency Ver.: always - * @param billTrailingDigit Ver.: always - */ -bool emberAfPriceClusterPublishConsolidatedBillCallback(uint32_t providerId, uint32_t issuerEventId, - uint32_t billingPeriodStartTime, uint32_t billingPeriodDuration, - uint8_t billingPeriodDurationType, uint8_t tariffType, - uint32_t consolidatedBill, uint16_t currency, uint8_t billTrailingDigit); -/** @brief Price Cluster Publish Conversion Factor - * - * - * - * @param issuerEventId Ver.: always - * @param startTime Ver.: always - * @param conversionFactor Ver.: always - * @param conversionFactorTrailingDigit Ver.: always - */ -bool emberAfPriceClusterPublishConversionFactorCallback(uint32_t issuerEventId, uint32_t startTime, uint32_t conversionFactor, - uint8_t conversionFactorTrailingDigit); -/** @brief Price Cluster Publish Cpp Event - * - * - * - * @param providerId Ver.: always - * @param issuerEventId Ver.: always - * @param startTime Ver.: always - * @param durationInMinutes Ver.: always - * @param tariffType Ver.: always - * @param cppPriceTier Ver.: always - * @param cppAuth Ver.: always - */ -bool emberAfPriceClusterPublishCppEventCallback(uint32_t providerId, uint32_t issuerEventId, uint32_t startTime, - uint16_t durationInMinutes, uint8_t tariffType, uint8_t cppPriceTier, - uint8_t cppAuth); -/** @brief Price Cluster Publish Credit Payment - * - * - * - * @param providerId Ver.: always - * @param issuerEventId Ver.: always - * @param creditPaymentDueDate Ver.: always - * @param creditPaymentOverDueAmount Ver.: always - * @param creditPaymentStatus Ver.: always - * @param creditPayment Ver.: always - * @param creditPaymentDate Ver.: always - * @param creditPaymentRef Ver.: always - */ -bool emberAfPriceClusterPublishCreditPaymentCallback(uint32_t providerId, uint32_t issuerEventId, uint32_t creditPaymentDueDate, - uint32_t creditPaymentOverDueAmount, uint8_t creditPaymentStatus, - uint32_t creditPayment, uint32_t creditPaymentDate, - uint8_t * creditPaymentRef); -/** @brief Price Cluster Publish Currency Conversion - * - * - * - * @param providerId Ver.: always - * @param issuerEventId Ver.: always - * @param startTime Ver.: always - * @param oldCurrency Ver.: always - * @param newCurrency Ver.: always - * @param conversionFactor Ver.: always - * @param conversionFactorTrailingDigit Ver.: always - * @param currencyChangeControlFlags Ver.: always - */ -bool emberAfPriceClusterPublishCurrencyConversionCallback(uint32_t providerId, uint32_t issuerEventId, uint32_t startTime, - uint16_t oldCurrency, uint16_t newCurrency, uint32_t conversionFactor, - uint8_t conversionFactorTrailingDigit, - uint32_t currencyChangeControlFlags); -/** @brief Price Cluster Publish Price - * - * - * - * @param providerId Ver.: always - * @param rateLabel Ver.: always - * @param issuerEventId Ver.: always - * @param currentTime Ver.: always - * @param unitOfMeasure Ver.: always - * @param currency Ver.: always - * @param priceTrailingDigitAndPriceTier Ver.: always - * @param numberOfPriceTiersAndRegisterTier Ver.: always - * @param startTime Ver.: always - * @param durationInMinutes Ver.: always - * @param price Ver.: always - * @param priceRatio Ver.: always - * @param generationPrice Ver.: always - * @param generationPriceRatio Ver.: always - * @param alternateCostDelivered Ver.: since se-1.0-07-5356-15 - * @param alternateCostUnit Ver.: since se-1.0-07-5356-15 - * @param alternateCostTrailingDigit Ver.: since se-1.0-07-5356-15 - * @param numberOfBlockThresholds Ver.: since se-1.1-07-5356-16 - * @param priceControl Ver.: since se-1.1-07-5356-16 - * @param numberOfGenerationTiers Ver.: since se-1.2a-07-5356-19 - * @param generationTier Ver.: since se-1.2a-07-5356-19 - * @param extendedNumberOfPriceTiers Ver.: since se-1.2a-07-5356-19 - * @param extendedPriceTier Ver.: since se-1.2a-07-5356-19 - * @param extendedRegisterTier Ver.: since se-1.2a-07-5356-19 - */ -bool emberAfPriceClusterPublishPriceCallback( - uint32_t providerId, uint8_t * rateLabel, uint32_t issuerEventId, uint32_t currentTime, uint8_t unitOfMeasure, - uint16_t currency, uint8_t priceTrailingDigitAndPriceTier, uint8_t numberOfPriceTiersAndRegisterTier, uint32_t startTime, - uint16_t durationInMinutes, uint32_t price, uint8_t priceRatio, uint32_t generationPrice, uint8_t generationPriceRatio, - uint32_t alternateCostDelivered, uint8_t alternateCostUnit, uint8_t alternateCostTrailingDigit, uint8_t numberOfBlockThresholds, - uint8_t priceControl, uint8_t numberOfGenerationTiers, uint8_t generationTier, uint8_t extendedNumberOfPriceTiers, - uint8_t extendedPriceTier, uint8_t extendedRegisterTier); -/** @brief Price Cluster Publish Price Matrix - * - * - * - * @param providerId Ver.: always - * @param issuerEventId Ver.: always - * @param startTime Ver.: always - * @param issuerTariffId Ver.: always - * @param commandIndex Ver.: always - * @param numberOfCommands Ver.: always - * @param subPayloadControl Ver.: always - * @param payload Ver.: always - */ -bool emberAfPriceClusterPublishPriceMatrixCallback(uint32_t providerId, uint32_t issuerEventId, uint32_t startTime, - uint32_t issuerTariffId, uint8_t commandIndex, uint8_t numberOfCommands, - uint8_t subPayloadControl, uint8_t * payload); -/** @brief Price Cluster Publish Tariff Information - * - * - * - * @param providerId Ver.: always - * @param issuerEventId Ver.: always - * @param issuerTariffId Ver.: always - * @param startTime Ver.: always - * @param tariffTypeChargingScheme Ver.: always - * @param tariffLabel Ver.: always - * @param numberOfPriceTiersInUse Ver.: always - * @param numberOfBlockThresholdsInUse Ver.: always - * @param unitOfMeasure Ver.: always - * @param currency Ver.: always - * @param priceTrailingDigit Ver.: always - * @param standingCharge Ver.: always - * @param tierBlockMode Ver.: always - * @param blockThresholdMultiplier Ver.: always - * @param blockThresholdDivisor Ver.: always - */ -bool emberAfPriceClusterPublishTariffInformationCallback(uint32_t providerId, uint32_t issuerEventId, uint32_t issuerTariffId, - uint32_t startTime, uint8_t tariffTypeChargingScheme, - uint8_t * tariffLabel, uint8_t numberOfPriceTiersInUse, - uint8_t numberOfBlockThresholdsInUse, uint8_t unitOfMeasure, - uint16_t currency, uint8_t priceTrailingDigit, uint32_t standingCharge, - uint8_t tierBlockMode, uint32_t blockThresholdMultiplier, - uint32_t blockThresholdDivisor); -/** @brief Price Cluster Publish Tier Labels - * - * - * - * @param providerId Ver.: always - * @param issuerEventId Ver.: always - * @param issuerTariffId Ver.: always - * @param commandIndex Ver.: always - * @param numberOfCommands Ver.: always - * @param numberOfLabels Ver.: always - * @param tierLabelsPayload Ver.: always - */ -bool emberAfPriceClusterPublishTierLabelsCallback(uint32_t providerId, uint32_t issuerEventId, uint32_t issuerTariffId, - uint8_t commandIndex, uint8_t numberOfCommands, uint8_t numberOfLabels, - uint8_t * tierLabelsPayload); -/** @brief Price Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfPriceClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Price Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfPriceClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Price Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfPriceClusterServerInitCallback(uint8_t endpoint); -/** @brief Price Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfPriceClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Price Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfPriceClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, EmberStatus status); -/** @brief Price Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfPriceClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Price Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfPriceClusterServerTickCallback(uint8_t endpoint); - -/** @} END Price Cluster Callbacks */ - -/** @name Demand Response and Load Control Cluster Callbacks */ -// @{ - -/** @brief Demand Response and Load Control Cluster Cancel All Load Control Events - * - * - * - * @param cancelControl Ver.: always - */ -bool emberAfDemandResponseLoadControlClusterCancelAllLoadControlEventsCallback(uint8_t cancelControl); -/** @brief Demand Response and Load Control Cluster Cancel Load Control Event - * - * - * - * @param issuerEventId Ver.: always - * @param deviceClass Ver.: always - * @param utilityEnrollmentGroup Ver.: always - * @param cancelControl Ver.: always - * @param effectiveTime Ver.: always - */ -bool emberAfDemandResponseLoadControlClusterCancelLoadControlEventCallback(uint32_t issuerEventId, uint16_t deviceClass, - uint8_t utilityEnrollmentGroup, uint8_t cancelControl, - uint32_t effectiveTime); -/** @brief Demand Response and Load Control Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfDemandResponseLoadControlClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Demand Response and Load Control Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfDemandResponseLoadControlClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Demand Response and Load Control Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfDemandResponseLoadControlClusterClientInitCallback(uint8_t endpoint); -/** @brief Demand Response and Load Control Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfDemandResponseLoadControlClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Demand Response and Load Control Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfDemandResponseLoadControlClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Demand Response and Load Control Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfDemandResponseLoadControlClusterClientPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Demand Response and Load Control Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfDemandResponseLoadControlClusterClientTickCallback(uint8_t endpoint); -/** @brief Demand Response and Load Control Cluster Get Scheduled Events - * - * - * - * @param startTime Ver.: always - * @param numberOfEvents Ver.: always - * @param issuerEventId Ver.: since se-1.2b-15-0131-02 - */ -bool emberAfDemandResponseLoadControlClusterGetScheduledEventsCallback(uint32_t startTime, uint8_t numberOfEvents, - uint32_t issuerEventId); -/** @brief Demand Response and Load Control Cluster Load Control Event - * - * - * - * @param issuerEventId Ver.: always - * @param deviceClass Ver.: always - * @param utilityEnrollmentGroup Ver.: always - * @param startTime Ver.: always - * @param durationInMinutes Ver.: always - * @param criticalityLevel Ver.: always - * @param coolingTemperatureOffset Ver.: always - * @param heatingTemperatureOffset Ver.: always - * @param coolingTemperatureSetPoint Ver.: always - * @param heatingTemperatureSetPoint Ver.: always - * @param averageLoadAdjustmentPercentage Ver.: always - * @param dutyCycle Ver.: always - * @param eventControl Ver.: always - */ -bool emberAfDemandResponseLoadControlClusterLoadControlEventCallback( - uint32_t issuerEventId, uint16_t deviceClass, uint8_t utilityEnrollmentGroup, uint32_t startTime, uint16_t durationInMinutes, - uint8_t criticalityLevel, uint8_t coolingTemperatureOffset, uint8_t heatingTemperatureOffset, - int16_t coolingTemperatureSetPoint, int16_t heatingTemperatureSetPoint, int8_t averageLoadAdjustmentPercentage, - uint8_t dutyCycle, uint8_t eventControl); -/** @brief Demand Response and Load Control Cluster Report Event Status - * - * - * - * @param issuerEventId Ver.: always - * @param eventStatus Ver.: always - * @param eventStatusTime Ver.: always - * @param criticalityLevelApplied Ver.: always - * @param coolingTemperatureSetPointApplied Ver.: always - * @param heatingTemperatureSetPointApplied Ver.: always - * @param averageLoadAdjustmentPercentageApplied Ver.: always - * @param dutyCycleApplied Ver.: always - * @param eventControl Ver.: always - * @param signatureType Ver.: always - * @param signature Ver.: always - */ -bool emberAfDemandResponseLoadControlClusterReportEventStatusCallback(uint32_t issuerEventId, uint8_t eventStatus, - uint32_t eventStatusTime, uint8_t criticalityLevelApplied, - uint16_t coolingTemperatureSetPointApplied, - uint16_t heatingTemperatureSetPointApplied, - int8_t averageLoadAdjustmentPercentageApplied, - uint8_t dutyCycleApplied, uint8_t eventControl, - uint8_t signatureType, uint8_t * signature); -/** @brief Demand Response and Load Control Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfDemandResponseLoadControlClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Demand Response and Load Control Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfDemandResponseLoadControlClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Demand Response and Load Control Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfDemandResponseLoadControlClusterServerInitCallback(uint8_t endpoint); -/** @brief Demand Response and Load Control Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfDemandResponseLoadControlClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Demand Response and Load Control Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfDemandResponseLoadControlClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Demand Response and Load Control Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfDemandResponseLoadControlClusterServerPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Demand Response and Load Control Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfDemandResponseLoadControlClusterServerTickCallback(uint8_t endpoint); - -/** @} END Demand Response and Load Control Cluster Callbacks */ - -/** @name Simple Metering Cluster Callbacks */ -// @{ - -/** @brief Simple Metering Cluster Change Supply - * - * - * - * @param providerId Ver.: always - * @param issuerEventId Ver.: always - * @param requestDateTime Ver.: always - * @param implementationDateTime Ver.: always - * @param proposedSupplyStatus Ver.: always - * @param supplyControlBits Ver.: always - */ -bool emberAfSimpleMeteringClusterChangeSupplyCallback(uint32_t providerId, uint32_t issuerEventId, uint32_t requestDateTime, - uint32_t implementationDateTime, uint8_t proposedSupplyStatus, - uint8_t supplyControlBits); -/** @brief Simple Metering Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfSimpleMeteringClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Simple Metering Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfSimpleMeteringClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Simple Metering Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfSimpleMeteringClusterClientInitCallback(uint8_t endpoint); -/** @brief Simple Metering Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfSimpleMeteringClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Simple Metering Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfSimpleMeteringClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Simple Metering Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfSimpleMeteringClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Simple Metering Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfSimpleMeteringClusterClientTickCallback(uint8_t endpoint); -/** @brief Simple Metering Cluster Configure Mirror - * - * - * - * @param issuerEventId Ver.: always - * @param reportingInterval Ver.: always - * @param mirrorNotificationReporting Ver.: always - * @param notificationScheme Ver.: always - */ -bool emberAfSimpleMeteringClusterConfigureMirrorCallback(uint32_t issuerEventId, uint32_t reportingInterval, - uint8_t mirrorNotificationReporting, uint8_t notificationScheme); -/** @brief Simple Metering Cluster Configure Notification Flags - * - * - * - * @param issuerEventId Ver.: always - * @param notificationScheme Ver.: always - * @param notificationFlagAttributeId Ver.: always - * @param clusterId Ver.: always - * @param manufacturerCode Ver.: always - * @param numberOfCommands Ver.: always - * @param commandIds Ver.: always - */ -bool emberAfSimpleMeteringClusterConfigureNotificationFlagsCallback(uint32_t issuerEventId, uint8_t notificationScheme, - uint16_t notificationFlagAttributeId, uint16_t clusterId, - uint16_t manufacturerCode, uint8_t numberOfCommands, - uint8_t * commandIds); -/** @brief Simple Metering Cluster Configure Notification Scheme - * - * - * - * @param issuerEventId Ver.: always - * @param notificationScheme Ver.: always - * @param notificationFlagOrder Ver.: always - */ -bool emberAfSimpleMeteringClusterConfigureNotificationSchemeCallback(uint32_t issuerEventId, uint8_t notificationScheme, - uint32_t notificationFlagOrder); -/** @brief Simple Metering Cluster Get Notified Message - * - * - * - * @param notificationScheme Ver.: always - * @param notificationFlagAttributeId Ver.: always - * @param notificationFlagsN Ver.: always - */ -bool emberAfSimpleMeteringClusterGetNotifiedMessageCallback(uint8_t notificationScheme, uint16_t notificationFlagAttributeId, - uint32_t notificationFlagsN); -/** @brief Simple Metering Cluster Get Profile - * - * - * - * @param intervalChannel Ver.: always - * @param endTime Ver.: always - * @param numberOfPeriods Ver.: always - */ -bool emberAfSimpleMeteringClusterGetProfileCallback(uint8_t intervalChannel, uint32_t endTime, uint8_t numberOfPeriods); -/** @brief Simple Metering Cluster Get Profile Response - * - * - * - * @param endTime Ver.: always - * @param status Ver.: always - * @param profileIntervalPeriod Ver.: always - * @param numberOfPeriodsDelivered Ver.: always - * @param intervals Ver.: always - */ -bool emberAfSimpleMeteringClusterGetProfileResponseCallback(uint32_t endTime, uint8_t status, uint8_t profileIntervalPeriod, - uint8_t numberOfPeriodsDelivered, uint8_t * intervals); -/** @brief Simple Metering Cluster Get Sampled Data - * - * - * - * @param sampleId Ver.: always - * @param earliestSampleTime Ver.: always - * @param sampleType Ver.: always - * @param numberOfSamples Ver.: always - */ -bool emberAfSimpleMeteringClusterGetSampledDataCallback(uint16_t sampleId, uint32_t earliestSampleTime, uint8_t sampleType, - uint16_t numberOfSamples); -/** @brief Simple Metering Cluster Get Sampled Data Response - * - * - * - * @param sampleId Ver.: always - * @param sampleStartTime Ver.: always - * @param sampleType Ver.: always - * @param sampleRequestInterval Ver.: always - * @param numberOfSamples Ver.: always - * @param samples Ver.: always - */ -bool emberAfSimpleMeteringClusterGetSampledDataResponseCallback(uint16_t sampleId, uint32_t sampleStartTime, uint8_t sampleType, - uint16_t sampleRequestInterval, uint16_t numberOfSamples, - uint8_t * samples); -/** @brief Simple Metering Cluster Get Snapshot - * - * - * - * @param earliestStartTime Ver.: always - * @param latestEndTime Ver.: always - * @param snapshotOffset Ver.: always - * @param snapshotCause Ver.: always - */ -bool emberAfSimpleMeteringClusterGetSnapshotCallback(uint32_t earliestStartTime, uint32_t latestEndTime, uint8_t snapshotOffset, - uint32_t snapshotCause); -/** @brief Simple Metering Cluster Local Change Supply - * - * - * - * @param proposedSupplyStatus Ver.: always - */ -bool emberAfSimpleMeteringClusterLocalChangeSupplyCallback(uint8_t proposedSupplyStatus); -/** @brief Simple Metering Cluster Mirror Removed - * - * - * - * @param endpointId Ver.: always - */ -bool emberAfSimpleMeteringClusterMirrorRemovedCallback(uint16_t endpointId); -/** @brief Simple Metering Cluster Mirror Report Attribute Response - * - * - * - * @param notificationScheme Ver.: always - * @param notificationFlags Ver.: always - */ -bool emberAfSimpleMeteringClusterMirrorReportAttributeResponseCallback(uint8_t notificationScheme, uint8_t * notificationFlags); -/** @brief Simple Metering Cluster Publish Snapshot - * - * - * - * @param snapshotId Ver.: always - * @param snapshotTime Ver.: always - * @param totalSnapshotsFound Ver.: always - * @param commandIndex Ver.: always - * @param totalCommands Ver.: always - * @param snapshotCause Ver.: always - * @param snapshotPayloadType Ver.: always - * @param snapshotPayload Ver.: always - */ -bool emberAfSimpleMeteringClusterPublishSnapshotCallback(uint32_t snapshotId, uint32_t snapshotTime, uint8_t totalSnapshotsFound, - uint8_t commandIndex, uint8_t totalCommands, uint32_t snapshotCause, - uint8_t snapshotPayloadType, uint8_t * snapshotPayload); -/** @brief Simple Metering Cluster Remove Mirror - * - * - * - */ -bool emberAfSimpleMeteringClusterRemoveMirrorCallback(void); -/** @brief Simple Metering Cluster Request Fast Poll Mode - * - * - * - * @param fastPollUpdatePeriod Ver.: always - * @param duration Ver.: always - */ -bool emberAfSimpleMeteringClusterRequestFastPollModeCallback(uint8_t fastPollUpdatePeriod, uint8_t duration); -/** @brief Simple Metering Cluster Request Fast Poll Mode Response - * - * - * - * @param appliedUpdatePeriod Ver.: always - * @param fastPollModeEndtime Ver.: always - */ -bool emberAfSimpleMeteringClusterRequestFastPollModeResponseCallback(uint8_t appliedUpdatePeriod, uint32_t fastPollModeEndtime); -/** @brief Simple Metering Cluster Request Mirror - * - * - * - */ -bool emberAfSimpleMeteringClusterRequestMirrorCallback(void); -/** @brief Simple Metering Cluster Request Mirror Response - * - * - * - * @param endpointId Ver.: always - */ -bool emberAfSimpleMeteringClusterRequestMirrorResponseCallback(uint16_t endpointId); -/** @brief Simple Metering Cluster Reset Load Limit Counter - * - * - * - * @param providerId Ver.: always - * @param issuerEventId Ver.: always - */ -bool emberAfSimpleMeteringClusterResetLoadLimitCounterCallback(uint32_t providerId, uint32_t issuerEventId); -/** @brief Simple Metering Cluster Schedule Snapshot - * - * - * - * @param issuerEventId Ver.: always - * @param commandIndex Ver.: always - * @param commandCount Ver.: always - * @param snapshotSchedulePayload Ver.: always - */ -bool emberAfSimpleMeteringClusterScheduleSnapshotCallback(uint32_t issuerEventId, uint8_t commandIndex, uint8_t commandCount, - uint8_t * snapshotSchedulePayload); -/** @brief Simple Metering Cluster Schedule Snapshot Response - * - * - * - * @param issuerEventId Ver.: always - * @param snapshotResponsePayload Ver.: always - */ -bool emberAfSimpleMeteringClusterScheduleSnapshotResponseCallback(uint32_t issuerEventId, uint8_t * snapshotResponsePayload); -/** @brief Simple Metering Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfSimpleMeteringClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Simple Metering Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfSimpleMeteringClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Simple Metering Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfSimpleMeteringClusterServerInitCallback(uint8_t endpoint); -/** @brief Simple Metering Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfSimpleMeteringClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Simple Metering Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfSimpleMeteringClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Simple Metering Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfSimpleMeteringClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Simple Metering Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfSimpleMeteringClusterServerTickCallback(uint8_t endpoint); -/** @brief Simple Metering Cluster Set Supply Status - * - * - * - * @param issuerEventId Ver.: always - * @param supplyTamperState Ver.: always - * @param supplyDepletionState Ver.: always - * @param supplyUncontrolledFlowState Ver.: always - * @param loadLimitSupplyState Ver.: always - */ -bool emberAfSimpleMeteringClusterSetSupplyStatusCallback(uint32_t issuerEventId, uint8_t supplyTamperState, - uint8_t supplyDepletionState, uint8_t supplyUncontrolledFlowState, - uint8_t loadLimitSupplyState); -/** @brief Simple Metering Cluster Set Uncontrolled Flow Threshold - * - * - * - * @param providerId Ver.: always - * @param issuerEventId Ver.: always - * @param uncontrolledFlowThreshold Ver.: always - * @param unitOfMeasure Ver.: always - * @param multiplier Ver.: always - * @param divisor Ver.: always - * @param stabilisationPeriod Ver.: always - * @param measurementPeriod Ver.: always - */ -bool emberAfSimpleMeteringClusterSetUncontrolledFlowThresholdCallback(uint32_t providerId, uint32_t issuerEventId, - uint16_t uncontrolledFlowThreshold, uint8_t unitOfMeasure, - uint16_t multiplier, uint16_t divisor, - uint8_t stabilisationPeriod, uint16_t measurementPeriod); -/** @brief Simple Metering Cluster Start Sampling - * - * - * - * @param issuerEventId Ver.: always - * @param startSamplingTime Ver.: always - * @param sampleType Ver.: always - * @param sampleRequestInterval Ver.: always - * @param maxNumberOfSamples Ver.: always - */ -bool emberAfSimpleMeteringClusterStartSamplingCallback(uint32_t issuerEventId, uint32_t startSamplingTime, uint8_t sampleType, - uint16_t sampleRequestInterval, uint16_t maxNumberOfSamples); -/** @brief Simple Metering Cluster Start Sampling Response - * - * - * - * @param sampleId Ver.: always - */ -bool emberAfSimpleMeteringClusterStartSamplingResponseCallback(uint16_t sampleId); -/** @brief Simple Metering Cluster Supply Status Response - * - * - * - * @param providerId Ver.: always - * @param issuerEventId Ver.: always - * @param implementationDateTime Ver.: always - * @param supplyStatus Ver.: always - */ -bool emberAfSimpleMeteringClusterSupplyStatusResponseCallback(uint32_t providerId, uint32_t issuerEventId, - uint32_t implementationDateTime, uint8_t supplyStatus); -/** @brief Simple Metering Cluster Take Snapshot - * - * - * - * @param snapshotCause Ver.: always - */ -bool emberAfSimpleMeteringClusterTakeSnapshotCallback(uint32_t snapshotCause); -/** @brief Simple Metering Cluster Take Snapshot Response - * - * - * - * @param snapshotId Ver.: always - * @param snapshotConfirmation Ver.: always - */ -bool emberAfSimpleMeteringClusterTakeSnapshotResponseCallback(uint32_t snapshotId, uint8_t snapshotConfirmation); - -/** @} END Simple Metering Cluster Callbacks */ - -/** @name Messaging Cluster Callbacks */ -// @{ - -/** @brief Messaging Cluster Cancel All Messages - * - * - * - * @param implementationDateTime Ver.: always - */ -bool emberAfMessagingClusterCancelAllMessagesCallback(uint32_t implementationDateTime); -/** @brief Messaging Cluster Cancel Message - * - * - * - * @param messageId Ver.: always - * @param messageControl Ver.: always - */ -bool emberAfMessagingClusterCancelMessageCallback(uint32_t messageId, uint8_t messageControl); -/** @brief Messaging Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfMessagingClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Messaging Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfMessagingClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Messaging Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfMessagingClusterClientInitCallback(uint8_t endpoint); -/** @brief Messaging Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfMessagingClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Messaging Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfMessagingClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Messaging Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfMessagingClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Messaging Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfMessagingClusterClientTickCallback(uint8_t endpoint); -/** @brief Messaging Cluster Display Message - * - * - * - * @param messageId Ver.: always - * @param messageControl Ver.: always - * @param startTime Ver.: always - * @param durationInMinutes Ver.: always - * @param message Ver.: always - * @param optionalExtendedMessageControl Ver.: since se-1.2a-07-5356-19 - */ -bool emberAfMessagingClusterDisplayMessageCallback(uint32_t messageId, uint8_t messageControl, uint32_t startTime, - uint16_t durationInMinutes, uint8_t * message, - uint8_t optionalExtendedMessageControl); -/** @brief Messaging Cluster Display Protected Message - * - * - * - * @param messageId Ver.: always - * @param messageControl Ver.: always - * @param startTime Ver.: always - * @param durationInMinutes Ver.: always - * @param message Ver.: always - * @param optionalExtendedMessageControl Ver.: always - */ -bool emberAfMessagingClusterDisplayProtectedMessageCallback(uint32_t messageId, uint8_t messageControl, uint32_t startTime, - uint16_t durationInMinutes, uint8_t * message, - uint8_t optionalExtendedMessageControl); -/** @brief Messaging Cluster Get Last Message - * - * - * - */ -bool emberAfMessagingClusterGetLastMessageCallback(void); -/** @brief Messaging Cluster Get Message Cancellation - * - * - * - * @param earliestImplementationTime Ver.: always - */ -bool emberAfMessagingClusterGetMessageCancellationCallback(uint32_t earliestImplementationTime); -/** @brief Messaging Cluster Message Confirmation - * - * - * - * @param messageId Ver.: always - * @param confirmationTime Ver.: always - * @param messageConfirmationControl Ver.: since se-1.2a-07-5356-19 - * @param messageResponse Ver.: since se-1.2a-07-5356-19 - */ -bool emberAfMessagingClusterMessageConfirmationCallback(uint32_t messageId, uint32_t confirmationTime, - uint8_t messageConfirmationControl, uint8_t * messageResponse); -/** @brief Messaging Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfMessagingClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Messaging Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfMessagingClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Messaging Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfMessagingClusterServerInitCallback(uint8_t endpoint); -/** @brief Messaging Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfMessagingClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Messaging Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfMessagingClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Messaging Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfMessagingClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Messaging Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfMessagingClusterServerTickCallback(uint8_t endpoint); - -/** @} END Messaging Cluster Callbacks */ - -/** @name Tunneling Cluster Callbacks */ -// @{ - -/** @brief Tunneling Cluster Ack Transfer Data Client To Server - * - * - * - * @param tunnelId Ver.: always - * @param numberOfBytesLeft Ver.: always - */ -bool emberAfTunnelingClusterAckTransferDataClientToServerCallback(uint16_t tunnelId, uint16_t numberOfBytesLeft); -/** @brief Tunneling Cluster Ack Transfer Data Server To Client - * - * - * - * @param tunnelId Ver.: always - * @param numberOfBytesLeft Ver.: always - */ -bool emberAfTunnelingClusterAckTransferDataServerToClientCallback(uint16_t tunnelId, uint16_t numberOfBytesLeft); -/** @brief Tunneling Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfTunnelingClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Tunneling Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfTunnelingClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Tunneling Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfTunnelingClusterClientInitCallback(uint8_t endpoint); -/** @brief Tunneling Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfTunnelingClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Tunneling Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfTunnelingClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Tunneling Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfTunnelingClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Tunneling Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfTunnelingClusterClientTickCallback(uint8_t endpoint); -/** @brief Tunneling Cluster Close Tunnel - * - * - * - * @param tunnelId Ver.: always - */ -bool emberAfTunnelingClusterCloseTunnelCallback(uint16_t tunnelId); -/** @brief Tunneling Cluster Get Supported Tunnel Protocols - * - * - * - * @param protocolOffset Ver.: always - */ -bool emberAfTunnelingClusterGetSupportedTunnelProtocolsCallback(uint8_t protocolOffset); -/** @brief Tunneling Cluster Ready Data Client To Server - * - * - * - * @param tunnelId Ver.: always - * @param numberOfOctetsLeft Ver.: always - */ -bool emberAfTunnelingClusterReadyDataClientToServerCallback(uint16_t tunnelId, uint16_t numberOfOctetsLeft); -/** @brief Tunneling Cluster Ready Data Server To Client - * - * - * - * @param tunnelId Ver.: always - * @param numberOfOctetsLeft Ver.: always - */ -bool emberAfTunnelingClusterReadyDataServerToClientCallback(uint16_t tunnelId, uint16_t numberOfOctetsLeft); -/** @brief Tunneling Cluster Request Tunnel - * - * - * - * @param protocolId Ver.: always - * @param manufacturerCode Ver.: always - * @param flowControlSupport Ver.: always - * @param maximumIncomingTransferSize Ver.: since se-1.1a-07-5356-17 - */ -bool emberAfTunnelingClusterRequestTunnelCallback(uint8_t protocolId, uint16_t manufacturerCode, uint8_t flowControlSupport, - uint16_t maximumIncomingTransferSize); -/** @brief Tunneling Cluster Request Tunnel Response - * - * - * - * @param tunnelId Ver.: always - * @param tunnelStatus Ver.: always - * @param maximumIncomingTransferSize Ver.: since se-1.1a-07-5356-17 - */ -bool emberAfTunnelingClusterRequestTunnelResponseCallback(uint16_t tunnelId, uint8_t tunnelStatus, - uint16_t maximumIncomingTransferSize); -/** @brief Tunneling Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfTunnelingClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Tunneling Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfTunnelingClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Tunneling Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfTunnelingClusterServerInitCallback(uint8_t endpoint); -/** @brief Tunneling Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfTunnelingClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Tunneling Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfTunnelingClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Tunneling Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfTunnelingClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Tunneling Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfTunnelingClusterServerTickCallback(uint8_t endpoint); -/** @brief Tunneling Cluster Supported Tunnel Protocols Response - * - * - * - * @param protocolListComplete Ver.: always - * @param protocolCount Ver.: always - * @param protocolList Ver.: always - */ -bool emberAfTunnelingClusterSupportedTunnelProtocolsResponseCallback(uint8_t protocolListComplete, uint8_t protocolCount, - uint8_t * protocolList); -/** @brief Tunneling Cluster Transfer Data Client To Server - * - * - * - * @param tunnelId Ver.: always - * @param data Ver.: always - */ -bool emberAfTunnelingClusterTransferDataClientToServerCallback(uint16_t tunnelId, uint8_t * data); -/** @brief Tunneling Cluster Transfer Data Error Client To Server - * - * - * - * @param tunnelId Ver.: always - * @param transferDataStatus Ver.: always - */ -bool emberAfTunnelingClusterTransferDataErrorClientToServerCallback(uint16_t tunnelId, uint8_t transferDataStatus); -/** @brief Tunneling Cluster Transfer Data Error Server To Client - * - * - * - * @param tunnelId Ver.: always - * @param transferDataStatus Ver.: always - */ -bool emberAfTunnelingClusterTransferDataErrorServerToClientCallback(uint16_t tunnelId, uint8_t transferDataStatus); -/** @brief Tunneling Cluster Transfer Data Server To Client - * - * - * - * @param tunnelId Ver.: always - * @param data Ver.: always - */ -bool emberAfTunnelingClusterTransferDataServerToClientCallback(uint16_t tunnelId, uint8_t * data); -/** @brief Tunneling Cluster Tunnel Closure Notification - * - * - * - * @param tunnelId Ver.: always - */ -bool emberAfTunnelingClusterTunnelClosureNotificationCallback(uint16_t tunnelId); - -/** @} END Tunneling Cluster Callbacks */ - -/** @name Prepayment Cluster Callbacks */ -// @{ - -/** @brief Prepayment Cluster Change Debt - * - * - * - * @param issuerEventId Ver.: always - * @param debtLabel Ver.: always - * @param debtAmount Ver.: always - * @param debtRecoveryMethod Ver.: always - * @param debtAmountType Ver.: always - * @param debtRecoveryStartTime Ver.: always - * @param debtRecoveryCollectionTime Ver.: always - * @param debtRecoveryFrequency Ver.: always - * @param debtRecoveryAmount Ver.: always - * @param debtRecoveryBalancePercentage Ver.: always - */ -bool emberAfPrepaymentClusterChangeDebtCallback(uint32_t issuerEventId, uint8_t * debtLabel, uint32_t debtAmount, - uint8_t debtRecoveryMethod, uint8_t debtAmountType, uint32_t debtRecoveryStartTime, - uint16_t debtRecoveryCollectionTime, uint8_t debtRecoveryFrequency, - uint32_t debtRecoveryAmount, uint16_t debtRecoveryBalancePercentage); -/** @brief Prepayment Cluster Change Payment Mode - * - * - * - * @param providerId Ver.: always - * @param issuerEventId Ver.: always - * @param implementationDateTime Ver.: always - * @param proposedPaymentControlConfiguration Ver.: always - * @param cutOffValue Ver.: always - */ -bool emberAfPrepaymentClusterChangePaymentModeCallback(uint32_t providerId, uint32_t issuerEventId, uint32_t implementationDateTime, - uint16_t proposedPaymentControlConfiguration, uint32_t cutOffValue); -/** @brief Prepayment Cluster Change Payment Mode Response - * - * - * - * @param friendlyCredit Ver.: always - * @param friendlyCreditCalendarId Ver.: always - * @param emergencyCreditLimit Ver.: always - * @param emergencyCreditThreshold Ver.: always - */ -bool emberAfPrepaymentClusterChangePaymentModeResponseCallback(uint8_t friendlyCredit, uint32_t friendlyCreditCalendarId, - uint32_t emergencyCreditLimit, uint32_t emergencyCreditThreshold); -/** @brief Prepayment Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfPrepaymentClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Prepayment Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfPrepaymentClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Prepayment Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfPrepaymentClusterClientInitCallback(uint8_t endpoint); -/** @brief Prepayment Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfPrepaymentClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Prepayment Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfPrepaymentClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Prepayment Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfPrepaymentClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Prepayment Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfPrepaymentClusterClientTickCallback(uint8_t endpoint); -/** @brief Prepayment Cluster Consumer Top Up - * - * - * - * @param originatingDevice Ver.: always - * @param topUpCode Ver.: always - */ -bool emberAfPrepaymentClusterConsumerTopUpCallback(uint8_t originatingDevice, uint8_t * topUpCode); -/** @brief Prepayment Cluster Consumer Top Up Response - * - * - * - * @param resultType Ver.: always - * @param topUpValue Ver.: always - * @param sourceOfTopUp Ver.: always - * @param creditRemaining Ver.: always - */ -bool emberAfPrepaymentClusterConsumerTopUpResponseCallback(uint8_t resultType, uint32_t topUpValue, uint8_t sourceOfTopUp, - uint32_t creditRemaining); -/** @brief Prepayment Cluster Credit Adjustment - * - * - * - * @param issuerEventId Ver.: always - * @param startTime Ver.: always - * @param creditAdjustmentType Ver.: always - * @param creditAdjustmentValue Ver.: always - */ -bool emberAfPrepaymentClusterCreditAdjustmentCallback(uint32_t issuerEventId, uint32_t startTime, uint8_t creditAdjustmentType, - uint32_t creditAdjustmentValue); -/** @brief Prepayment Cluster Emergency Credit Setup - * - * - * - * @param issuerEventId Ver.: always - * @param startTime Ver.: always - * @param emergencyCreditLimit Ver.: always - * @param emergencyCreditThreshold Ver.: always - */ -bool emberAfPrepaymentClusterEmergencyCreditSetupCallback(uint32_t issuerEventId, uint32_t startTime, uint32_t emergencyCreditLimit, - uint32_t emergencyCreditThreshold); -/** @brief Prepayment Cluster Get Debt Repayment Log - * - * - * - * @param latestEndTime Ver.: always - * @param numberOfDebts Ver.: always - * @param debtType Ver.: always - */ -bool emberAfPrepaymentClusterGetDebtRepaymentLogCallback(uint32_t latestEndTime, uint8_t numberOfDebts, uint8_t debtType); -/** @brief Prepayment Cluster Get Prepay Snapshot - * - * - * - * @param earliestStartTime Ver.: always - * @param latestEndTime Ver.: always - * @param snapshotOffset Ver.: always - * @param snapshotCause Ver.: always - */ -bool emberAfPrepaymentClusterGetPrepaySnapshotCallback(uint32_t earliestStartTime, uint32_t latestEndTime, uint8_t snapshotOffset, - uint32_t snapshotCause); -/** @brief Prepayment Cluster Get Top Up Log - * - * - * - * @param latestEndTime Ver.: always - * @param numberOfRecords Ver.: always - */ -bool emberAfPrepaymentClusterGetTopUpLogCallback(uint32_t latestEndTime, uint8_t numberOfRecords); -/** @brief Prepayment Cluster Publish Debt Log - * - * - * - * @param commandIndex Ver.: always - * @param totalNumberOfCommands Ver.: always - * @param debtPayload Ver.: always - */ -bool emberAfPrepaymentClusterPublishDebtLogCallback(uint8_t commandIndex, uint8_t totalNumberOfCommands, uint8_t * debtPayload); -/** @brief Prepayment Cluster Publish Prepay Snapshot - * - * - * - * @param snapshotId Ver.: always - * @param snapshotTime Ver.: always - * @param totalSnapshotsFound Ver.: always - * @param commandIndex Ver.: always - * @param totalNumberOfCommands Ver.: always - * @param snapshotCause Ver.: always - * @param snapshotPayloadType Ver.: always - * @param snapshotPayload Ver.: always - */ -bool emberAfPrepaymentClusterPublishPrepaySnapshotCallback(uint32_t snapshotId, uint32_t snapshotTime, uint8_t totalSnapshotsFound, - uint8_t commandIndex, uint8_t totalNumberOfCommands, - uint32_t snapshotCause, uint8_t snapshotPayloadType, - uint8_t * snapshotPayload); -/** @brief Prepayment Cluster Publish Top Up Log - * - * - * - * @param commandIndex Ver.: always - * @param totalNumberOfCommands Ver.: always - * @param topUpPayload Ver.: always - */ -bool emberAfPrepaymentClusterPublishTopUpLogCallback(uint8_t commandIndex, uint8_t totalNumberOfCommands, uint8_t * topUpPayload); -/** @brief Prepayment Cluster Select Available Emergency Credit - * - * - * - * @param commandIssueDateTime Ver.: always - * @param originatingDevice Ver.: always - */ -bool emberAfPrepaymentClusterSelectAvailableEmergencyCreditCallback(uint32_t commandIssueDateTime, uint8_t originatingDevice); -/** @brief Prepayment Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfPrepaymentClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Prepayment Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfPrepaymentClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Prepayment Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfPrepaymentClusterServerInitCallback(uint8_t endpoint); -/** @brief Prepayment Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfPrepaymentClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Prepayment Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfPrepaymentClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Prepayment Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfPrepaymentClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Prepayment Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfPrepaymentClusterServerTickCallback(uint8_t endpoint); -/** @brief Prepayment Cluster Set Low Credit Warning Level - * - * - * - * @param lowCreditWarningLevel Ver.: always - */ -bool emberAfPrepaymentClusterSetLowCreditWarningLevelCallback(uint32_t lowCreditWarningLevel); -/** @brief Prepayment Cluster Set Maximum Credit Limit - * - * - * - * @param providerId Ver.: always - * @param issuerEventId Ver.: always - * @param implementationDateTime Ver.: always - * @param maximumCreditLevel Ver.: always - * @param maximumCreditPerTopUp Ver.: always - */ -bool emberAfPrepaymentClusterSetMaximumCreditLimitCallback(uint32_t providerId, uint32_t issuerEventId, - uint32_t implementationDateTime, uint32_t maximumCreditLevel, - uint32_t maximumCreditPerTopUp); -/** @brief Prepayment Cluster Set Overall Debt Cap - * - * - * - * @param providerId Ver.: always - * @param issuerEventId Ver.: always - * @param implementationDateTime Ver.: always - * @param overallDebtCap Ver.: always - */ -bool emberAfPrepaymentClusterSetOverallDebtCapCallback(uint32_t providerId, uint32_t issuerEventId, uint32_t implementationDateTime, - uint32_t overallDebtCap); - -/** @} END Prepayment Cluster Callbacks */ - -/** @name Energy Management Cluster Callbacks */ -// @{ - -/** @brief Energy Management Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfEnergyManagementClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Energy Management Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfEnergyManagementClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Energy Management Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfEnergyManagementClusterClientInitCallback(uint8_t endpoint); -/** @brief Energy Management Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfEnergyManagementClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Energy Management Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfEnergyManagementClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Energy Management Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfEnergyManagementClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Energy Management Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfEnergyManagementClusterClientTickCallback(uint8_t endpoint); -/** @brief Energy Management Cluster Manage Event - * - * - * - * @param issuerEventId Ver.: always - * @param deviceClass Ver.: always - * @param utilityEnrollmentGroup Ver.: always - * @param actionRequired Ver.: always - */ -bool emberAfEnergyManagementClusterManageEventCallback(uint32_t issuerEventId, uint16_t deviceClass, uint8_t utilityEnrollmentGroup, - uint8_t actionRequired); -/** @brief Energy Management Cluster Report Event Status - * - * - * - * @param issuerEventId Ver.: always - * @param eventStatus Ver.: always - * @param eventStatusTime Ver.: always - * @param criticalityLevelApplied Ver.: always - * @param coolingTemperatureSetPointApplied Ver.: always - * @param heatingTemperatureSetPointApplied Ver.: always - * @param averageLoadAdjustmentPercentageApplied Ver.: always - * @param dutyCycleApplied Ver.: always - * @param eventControl Ver.: always - */ -bool emberAfEnergyManagementClusterReportEventStatusCallback(uint32_t issuerEventId, uint8_t eventStatus, uint32_t eventStatusTime, - uint8_t criticalityLevelApplied, - uint16_t coolingTemperatureSetPointApplied, - uint16_t heatingTemperatureSetPointApplied, - int8_t averageLoadAdjustmentPercentageApplied, - uint8_t dutyCycleApplied, uint8_t eventControl); -/** @brief Energy Management Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfEnergyManagementClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Energy Management Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfEnergyManagementClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Energy Management Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfEnergyManagementClusterServerInitCallback(uint8_t endpoint); -/** @brief Energy Management Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfEnergyManagementClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Energy Management Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfEnergyManagementClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Energy Management Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfEnergyManagementClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Energy Management Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfEnergyManagementClusterServerTickCallback(uint8_t endpoint); - -/** @} END Energy Management Cluster Callbacks */ - -/** @name Calendar Cluster Callbacks */ -// @{ - -/** @brief Calendar Cluster Cancel Calendar - * - * - * - * @param providerId Ver.: always - * @param issuerCalendarId Ver.: always - * @param calendarType Ver.: always - */ -bool emberAfCalendarClusterCancelCalendarCallback(uint32_t providerId, uint32_t issuerCalendarId, uint8_t calendarType); -/** @brief Calendar Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfCalendarClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Calendar Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfCalendarClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Calendar Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfCalendarClusterClientInitCallback(uint8_t endpoint); -/** @brief Calendar Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfCalendarClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Calendar Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfCalendarClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Calendar Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfCalendarClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Calendar Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfCalendarClusterClientTickCallback(uint8_t endpoint); -/** @brief Calendar Cluster Get Calendar - * - * - * - * @param earliestStartTime Ver.: always - * @param minIssuerEventId Ver.: always - * @param numberOfCalendars Ver.: always - * @param calendarType Ver.: always - * @param providerId Ver.: always - */ -bool emberAfCalendarClusterGetCalendarCallback(uint32_t earliestStartTime, uint32_t minIssuerEventId, uint8_t numberOfCalendars, - uint8_t calendarType, uint32_t providerId); -/** @brief Calendar Cluster Get Calendar Cancellation - * - * - * - */ -bool emberAfCalendarClusterGetCalendarCancellationCallback(void); -/** @brief Calendar Cluster Get Day Profiles - * - * - * - * @param providerId Ver.: always - * @param issuerCalendarId Ver.: always - * @param startDayId Ver.: always - * @param numberOfDays Ver.: always - */ -bool emberAfCalendarClusterGetDayProfilesCallback(uint32_t providerId, uint32_t issuerCalendarId, uint8_t startDayId, - uint8_t numberOfDays); -/** @brief Calendar Cluster Get Seasons - * - * - * - * @param providerId Ver.: always - * @param issuerCalendarId Ver.: always - */ -bool emberAfCalendarClusterGetSeasonsCallback(uint32_t providerId, uint32_t issuerCalendarId); -/** @brief Calendar Cluster Get Special Days - * - * - * - * @param startTime Ver.: always - * @param numberOfEvents Ver.: always - * @param calendarType Ver.: always - * @param providerId Ver.: always - * @param issuerCalendarId Ver.: always - */ -bool emberAfCalendarClusterGetSpecialDaysCallback(uint32_t startTime, uint8_t numberOfEvents, uint8_t calendarType, - uint32_t providerId, uint32_t issuerCalendarId); -/** @brief Calendar Cluster Get Week Profiles - * - * - * - * @param providerId Ver.: always - * @param issuerCalendarId Ver.: always - * @param startWeekId Ver.: always - * @param numberOfWeeks Ver.: always - */ -bool emberAfCalendarClusterGetWeekProfilesCallback(uint32_t providerId, uint32_t issuerCalendarId, uint8_t startWeekId, - uint8_t numberOfWeeks); -/** @brief Calendar Cluster Publish Calendar - * - * - * - * @param providerId Ver.: always - * @param issuerEventId Ver.: always - * @param issuerCalendarId Ver.: always - * @param startTime Ver.: always - * @param calendarType Ver.: always - * @param calendarTimeReference Ver.: always - * @param calendarName Ver.: always - * @param numberOfSeasons Ver.: always - * @param numberOfWeekProfiles Ver.: always - * @param numberOfDayProfiles Ver.: always - */ -bool emberAfCalendarClusterPublishCalendarCallback(uint32_t providerId, uint32_t issuerEventId, uint32_t issuerCalendarId, - uint32_t startTime, uint8_t calendarType, uint8_t calendarTimeReference, - uint8_t * calendarName, uint8_t numberOfSeasons, uint8_t numberOfWeekProfiles, - uint8_t numberOfDayProfiles); -/** @brief Calendar Cluster Publish Day Profile - * - * - * - * @param providerId Ver.: always - * @param issuerEventId Ver.: always - * @param issuerCalendarId Ver.: always - * @param dayId Ver.: always - * @param totalNumberOfScheduleEntries Ver.: always - * @param commandIndex Ver.: always - * @param totalNumberOfCommands Ver.: always - * @param calendarType Ver.: always - * @param dayScheduleEntries Ver.: always - */ -bool emberAfCalendarClusterPublishDayProfileCallback(uint32_t providerId, uint32_t issuerEventId, uint32_t issuerCalendarId, - uint8_t dayId, uint8_t totalNumberOfScheduleEntries, uint8_t commandIndex, - uint8_t totalNumberOfCommands, uint8_t calendarType, - uint8_t * dayScheduleEntries); -/** @brief Calendar Cluster Publish Seasons - * - * - * - * @param providerId Ver.: always - * @param issuerEventId Ver.: always - * @param issuerCalendarId Ver.: always - * @param commandIndex Ver.: always - * @param totalNumberOfCommands Ver.: always - * @param seasonEntries Ver.: always - */ -bool emberAfCalendarClusterPublishSeasonsCallback(uint32_t providerId, uint32_t issuerEventId, uint32_t issuerCalendarId, - uint8_t commandIndex, uint8_t totalNumberOfCommands, uint8_t * seasonEntries); -/** @brief Calendar Cluster Publish Special Days - * - * - * - * @param providerId Ver.: always - * @param issuerEventId Ver.: always - * @param issuerCalendarId Ver.: always - * @param startTime Ver.: always - * @param calendarType Ver.: always - * @param totalNumberOfSpecialDays Ver.: always - * @param commandIndex Ver.: always - * @param totalNumberOfCommands Ver.: always - * @param specialDayEntries Ver.: always - */ -bool emberAfCalendarClusterPublishSpecialDaysCallback(uint32_t providerId, uint32_t issuerEventId, uint32_t issuerCalendarId, - uint32_t startTime, uint8_t calendarType, uint8_t totalNumberOfSpecialDays, - uint8_t commandIndex, uint8_t totalNumberOfCommands, - uint8_t * specialDayEntries); -/** @brief Calendar Cluster Publish Week Profile - * - * - * - * @param providerId Ver.: always - * @param issuerEventId Ver.: always - * @param issuerCalendarId Ver.: always - * @param weekId Ver.: always - * @param dayIdRefMonday Ver.: always - * @param dayIdRefTuesday Ver.: always - * @param dayIdRefWednesday Ver.: always - * @param dayIdRefThursday Ver.: always - * @param dayIdRefFriday Ver.: always - * @param dayIdRefSaturday Ver.: always - * @param dayIdRefSunday Ver.: always - */ -bool emberAfCalendarClusterPublishWeekProfileCallback(uint32_t providerId, uint32_t issuerEventId, uint32_t issuerCalendarId, - uint8_t weekId, uint8_t dayIdRefMonday, uint8_t dayIdRefTuesday, - uint8_t dayIdRefWednesday, uint8_t dayIdRefThursday, uint8_t dayIdRefFriday, - uint8_t dayIdRefSaturday, uint8_t dayIdRefSunday); -/** @brief Calendar Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfCalendarClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Calendar Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfCalendarClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Calendar Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfCalendarClusterServerInitCallback(uint8_t endpoint); -/** @brief Calendar Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfCalendarClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Calendar Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfCalendarClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Calendar Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfCalendarClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Calendar Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfCalendarClusterServerTickCallback(uint8_t endpoint); - -/** @} END Calendar Cluster Callbacks */ - -/** @name Device Management Cluster Callbacks */ -// @{ - -/** @brief Device Management Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfDeviceManagementClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Device Management Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfDeviceManagementClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Device Management Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfDeviceManagementClusterClientInitCallback(uint8_t endpoint); -/** @brief Device Management Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfDeviceManagementClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Device Management Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfDeviceManagementClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Device Management Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfDeviceManagementClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Device Management Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfDeviceManagementClusterClientTickCallback(uint8_t endpoint); -/** @brief Device Management Cluster Get C I N - * - * - * - */ -bool emberAfDeviceManagementClusterGetCINCallback(void); -/** @brief Device Management Cluster Get Change Of Supplier - * - * - * - */ -bool emberAfDeviceManagementClusterGetChangeOfSupplierCallback(void); -/** @brief Device Management Cluster Get Change Of Tenancy - * - * - * - */ -bool emberAfDeviceManagementClusterGetChangeOfTenancyCallback(void); -/** @brief Device Management Cluster Get Event Configuration - * - * - * - * @param eventId Ver.: always - */ -bool emberAfDeviceManagementClusterGetEventConfigurationCallback(uint16_t eventId); -/** @brief Device Management Cluster Get Site Id - * - * - * - */ -bool emberAfDeviceManagementClusterGetSiteIdCallback(void); -/** @brief Device Management Cluster Publish Change Of Supplier - * - * - * - * @param currentProviderId Ver.: always - * @param issuerEventId Ver.: always - * @param tariffType Ver.: always - * @param proposedProviderId Ver.: always - * @param providerChangeImplementationTime Ver.: always - * @param providerChangeControl Ver.: always - * @param proposedProviderName Ver.: always - * @param proposedProviderContactDetails Ver.: always - */ -bool emberAfDeviceManagementClusterPublishChangeOfSupplierCallback(uint32_t currentProviderId, uint32_t issuerEventId, - uint8_t tariffType, uint32_t proposedProviderId, - uint32_t providerChangeImplementationTime, - uint32_t providerChangeControl, uint8_t * proposedProviderName, - uint8_t * proposedProviderContactDetails); -/** @brief Device Management Cluster Publish Change Of Tenancy - * - * - * - * @param providerId Ver.: always - * @param issuerEventId Ver.: always - * @param tariffType Ver.: always - * @param implementationDateTime Ver.: always - * @param proposedTenancyChangeControl Ver.: always - */ -bool emberAfDeviceManagementClusterPublishChangeOfTenancyCallback(uint32_t providerId, uint32_t issuerEventId, uint8_t tariffType, - uint32_t implementationDateTime, - uint32_t proposedTenancyChangeControl); -/** @brief Device Management Cluster Report Event Configuration - * - * - * - * @param commandIndex Ver.: always - * @param totalCommands Ver.: always - * @param eventConfigurationPayload Ver.: always - */ -bool emberAfDeviceManagementClusterReportEventConfigurationCallback(uint8_t commandIndex, uint8_t totalCommands, - uint8_t * eventConfigurationPayload); -/** @brief Device Management Cluster Request New Password - * - * - * - * @param passwordType Ver.: always - */ -bool emberAfDeviceManagementClusterRequestNewPasswordCallback(uint8_t passwordType); -/** @brief Device Management Cluster Request New Password Response - * - * - * - * @param issuerEventId Ver.: always - * @param implementationDateTime Ver.: always - * @param durationInMinutes Ver.: always - * @param passwordType Ver.: always - * @param password Ver.: always - */ -bool emberAfDeviceManagementClusterRequestNewPasswordResponseCallback(uint32_t issuerEventId, uint32_t implementationDateTime, - uint16_t durationInMinutes, uint8_t passwordType, - uint8_t * password); -/** @brief Device Management Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfDeviceManagementClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Device Management Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfDeviceManagementClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Device Management Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfDeviceManagementClusterServerInitCallback(uint8_t endpoint); -/** @brief Device Management Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfDeviceManagementClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Device Management Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfDeviceManagementClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Device Management Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfDeviceManagementClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Device Management Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfDeviceManagementClusterServerTickCallback(uint8_t endpoint); -/** @brief Device Management Cluster Set Event Configuration - * - * - * - * @param issuerEventId Ver.: always - * @param startDateTime Ver.: always - * @param eventConfiguration Ver.: always - * @param configurationControl Ver.: always - * @param eventConfigurationPayload Ver.: always - */ -bool emberAfDeviceManagementClusterSetEventConfigurationCallback(uint32_t issuerEventId, uint32_t startDateTime, - uint8_t eventConfiguration, uint8_t configurationControl, - uint8_t * eventConfigurationPayload); -/** @brief Device Management Cluster Update C I N - * - * - * - * @param issuerEventId Ver.: always - * @param implementationTime Ver.: always - * @param providerId Ver.: always - * @param customerIdNumber Ver.: always - */ -bool emberAfDeviceManagementClusterUpdateCINCallback(uint32_t issuerEventId, uint32_t implementationTime, uint32_t providerId, - uint8_t * customerIdNumber); -/** @brief Device Management Cluster Update Site Id - * - * - * - * @param issuerEventId Ver.: always - * @param siteIdTime Ver.: always - * @param providerId Ver.: always - * @param siteId Ver.: always - */ -bool emberAfDeviceManagementClusterUpdateSiteIdCallback(uint32_t issuerEventId, uint32_t siteIdTime, uint32_t providerId, - uint8_t * siteId); - -/** @} END Device Management Cluster Callbacks */ - -/** @name Events Cluster Callbacks */ -// @{ - -/** @brief Events Cluster Clear Event Log Request - * - * - * - * @param logId Ver.: always - */ -bool emberAfEventsClusterClearEventLogRequestCallback(uint8_t logId); -/** @brief Events Cluster Clear Event Log Response - * - * - * - * @param clearedEventsLogs Ver.: always - */ -bool emberAfEventsClusterClearEventLogResponseCallback(uint8_t clearedEventsLogs); -/** @brief Events Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfEventsClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Events Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfEventsClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Events Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfEventsClusterClientInitCallback(uint8_t endpoint); -/** @brief Events Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfEventsClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Events Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfEventsClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Events Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfEventsClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Events Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfEventsClusterClientTickCallback(uint8_t endpoint); -/** @brief Events Cluster Get Event Log - * - * - * - * @param eventControlLogId Ver.: always - * @param eventId Ver.: always - * @param startTime Ver.: always - * @param endTime Ver.: always - * @param numberOfEvents Ver.: always - * @param eventOffset Ver.: always - */ -bool emberAfEventsClusterGetEventLogCallback(uint8_t eventControlLogId, uint16_t eventId, uint32_t startTime, uint32_t endTime, - uint8_t numberOfEvents, uint16_t eventOffset); -/** @brief Events Cluster Publish Event - * - * - * - * @param logId Ver.: always - * @param eventId Ver.: always - * @param eventTime Ver.: always - * @param eventControl Ver.: always - * @param eventData Ver.: always - */ -bool emberAfEventsClusterPublishEventCallback(uint8_t logId, uint16_t eventId, uint32_t eventTime, uint8_t eventControl, - uint8_t * eventData); -/** @brief Events Cluster Publish Event Log - * - * - * - * @param totalNumberOfEvents Ver.: always - * @param commandIndex Ver.: always - * @param totalCommands Ver.: always - * @param logPayloadControl Ver.: always - * @param logPayload Ver.: always - */ -bool emberAfEventsClusterPublishEventLogCallback(uint16_t totalNumberOfEvents, uint8_t commandIndex, uint8_t totalCommands, - uint8_t logPayloadControl, uint8_t * logPayload); -/** @brief Events Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfEventsClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Events Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfEventsClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Events Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfEventsClusterServerInitCallback(uint8_t endpoint); -/** @brief Events Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfEventsClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Events Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfEventsClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Events Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfEventsClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Events Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfEventsClusterServerTickCallback(uint8_t endpoint); - -/** @} END Events Cluster Callbacks */ - -/** @name MDU Pairing Cluster Callbacks */ -// @{ - -/** @brief MDU Pairing Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfMduPairingClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief MDU Pairing Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfMduPairingClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief MDU Pairing Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfMduPairingClusterClientInitCallback(uint8_t endpoint); -/** @brief MDU Pairing Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfMduPairingClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief MDU Pairing Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfMduPairingClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief MDU Pairing Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfMduPairingClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief MDU Pairing Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfMduPairingClusterClientTickCallback(uint8_t endpoint); -/** @brief MDU Pairing Cluster Pairing Request - * - * - * - * @param localPairingInformationVersion Ver.: always - * @param eui64OfRequestingDevice Ver.: always - */ -bool emberAfMduPairingClusterPairingRequestCallback(uint32_t localPairingInformationVersion, uint8_t * eui64OfRequestingDevice); -/** @brief MDU Pairing Cluster Pairing Response - * - * - * - * @param pairingInformationVersion Ver.: always - * @param totalNumberOfDevices Ver.: always - * @param commandIndex Ver.: always - * @param totalNumberOfCommands Ver.: always - * @param eui64s Ver.: always - */ -bool emberAfMduPairingClusterPairingResponseCallback(uint32_t pairingInformationVersion, uint8_t totalNumberOfDevices, - uint8_t commandIndex, uint8_t totalNumberOfCommands, uint8_t * eui64s); -/** @brief MDU Pairing Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfMduPairingClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief MDU Pairing Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfMduPairingClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief MDU Pairing Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfMduPairingClusterServerInitCallback(uint8_t endpoint); -/** @brief MDU Pairing Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfMduPairingClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief MDU Pairing Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfMduPairingClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief MDU Pairing Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfMduPairingClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief MDU Pairing Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfMduPairingClusterServerTickCallback(uint8_t endpoint); - -/** @} END MDU Pairing Cluster Callbacks */ - -/** @name Sub-GHz Cluster Callbacks */ -// @{ - -/** @brief Sub-GHz Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfSubGhzClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Sub-GHz Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfSubGhzClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Sub-GHz Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfSubGhzClusterClientInitCallback(uint8_t endpoint); -/** @brief Sub-GHz Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfSubGhzClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Sub-GHz Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfSubGhzClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Sub-GHz Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfSubGhzClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Sub-GHz Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfSubGhzClusterClientTickCallback(uint8_t endpoint); -/** @brief Sub-GHz Cluster Get Suspend Zcl Messages Status - * - * - * - */ -bool emberAfSubGhzClusterGetSuspendZclMessagesStatusCallback(void); -/** @brief Sub-GHz Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfSubGhzClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Sub-GHz Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfSubGhzClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Sub-GHz Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfSubGhzClusterServerInitCallback(uint8_t endpoint); -/** @brief Sub-GHz Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfSubGhzClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Sub-GHz Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfSubGhzClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Sub-GHz Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfSubGhzClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Sub-GHz Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfSubGhzClusterServerTickCallback(uint8_t endpoint); -/** @brief Sub-GHz Cluster Suspend Zcl Messages - * - * - * - * @param period Ver.: always - */ -bool emberAfSubGhzClusterSuspendZclMessagesCallback(uint8_t period); - -/** @} END Sub-GHz Cluster Callbacks */ - -/** @name Key Establishment Cluster Callbacks */ -// @{ - -/** @brief Key Establishment Cluster Client Command Received - * - * This function is called by the application framework when a server-to-client - * key establishment command is received but has yet to be handled by the - * framework code. This function should return a bool value indicating whether - * the command has been handled by the application code and should not be - * further processed by the framework. - * - * @param cmd Ver.: always - */ -bool emberAfKeyEstablishmentClusterClientCommandReceivedCallback(EmberAfClusterCommand * cmd); -/** @brief Key Establishment Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfKeyEstablishmentClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Key Establishment Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfKeyEstablishmentClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Key Establishment Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfKeyEstablishmentClusterClientInitCallback(uint8_t endpoint); -/** @brief Key Establishment Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfKeyEstablishmentClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Key Establishment Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfKeyEstablishmentClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Key Establishment Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfKeyEstablishmentClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Key Establishment Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfKeyEstablishmentClusterClientTickCallback(uint8_t endpoint); -/** @brief Key Establishment Cluster Confirm Key Data Request - * - * - * - * @param secureMessageAuthenticationCode Ver.: always - */ -bool emberAfKeyEstablishmentClusterConfirmKeyDataRequestCallback(uint8_t * secureMessageAuthenticationCode); -/** @brief Key Establishment Cluster Confirm Key Data Response - * - * - * - * @param secureMessageAuthenticationCode Ver.: always - */ -bool emberAfKeyEstablishmentClusterConfirmKeyDataResponseCallback(uint8_t * secureMessageAuthenticationCode); -/** @brief Key Establishment Cluster Ephemeral Data Request - * - * - * - * @param ephemeralData Ver.: always - */ -bool emberAfKeyEstablishmentClusterEphemeralDataRequestCallback(uint8_t * ephemeralData); -/** @brief Key Establishment Cluster Ephemeral Data Response - * - * - * - * @param ephemeralData Ver.: always - */ -bool emberAfKeyEstablishmentClusterEphemeralDataResponseCallback(uint8_t * ephemeralData); -/** @brief Key Establishment Cluster Initiate Key Establishment Request - * - * - * - * @param keyEstablishmentSuite Ver.: always - * @param ephemeralDataGenerateTime Ver.: always - * @param confirmKeyGenerateTime Ver.: always - * @param identity Ver.: always - */ -bool emberAfKeyEstablishmentClusterInitiateKeyEstablishmentRequestCallback(uint16_t keyEstablishmentSuite, - uint8_t ephemeralDataGenerateTime, - uint8_t confirmKeyGenerateTime, uint8_t * identity); -/** @brief Key Establishment Cluster Initiate Key Establishment Response - * - * - * - * @param requestedKeyEstablishmentSuite Ver.: always - * @param ephemeralDataGenerateTime Ver.: always - * @param confirmKeyGenerateTime Ver.: always - * @param identity Ver.: always - */ -bool emberAfKeyEstablishmentClusterInitiateKeyEstablishmentResponseCallback(uint16_t requestedKeyEstablishmentSuite, - uint8_t ephemeralDataGenerateTime, - uint8_t confirmKeyGenerateTime, uint8_t * identity); -/** @brief Key Establishment Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfKeyEstablishmentClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Key Establishment Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfKeyEstablishmentClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Key Establishment Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfKeyEstablishmentClusterServerInitCallback(uint8_t endpoint); -/** @brief Key Establishment Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfKeyEstablishmentClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Key Establishment Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfKeyEstablishmentClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Key Establishment Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfKeyEstablishmentClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Key Establishment Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfKeyEstablishmentClusterServerTickCallback(uint8_t endpoint); -/** @brief Key Establishment Cluster Terminate Key Establishment - * - * - * - * @param statusCode Ver.: always - * @param waitTime Ver.: always - * @param keyEstablishmentSuite Ver.: always - */ -bool emberAfKeyEstablishmentClusterTerminateKeyEstablishmentCallback(uint8_t statusCode, uint8_t waitTime, - uint16_t keyEstablishmentSuite); -/** @brief Key Establishment Cluster Server Command Received - * - * This function is called by the application framework when a client-to-server - * key establishment command is received but has yet to be handled by the - * framework code. This function should return a bool value indicating whether - * the command has been handled by the application code and should not be - * further processed by the framework. - * - * @param cmd Ver.: always - */ -bool emberAfKeyEstablishmentClusterServerCommandReceivedCallback(EmberAfClusterCommand * cmd); - -/** @} END Key Establishment Cluster Callbacks */ - -/** @name Information Cluster Callbacks */ -// @{ - -/** @brief Information Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfInformationClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Information Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfInformationClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Information Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfInformationClusterClientInitCallback(uint8_t endpoint); -/** @brief Information Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfInformationClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Information Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfInformationClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Information Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfInformationClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Information Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfInformationClusterClientTickCallback(uint8_t endpoint); -/** @brief Information Cluster Configure Delivery Enable - * - * - * - * @param enable Ver.: always - */ -bool emberAfInformationClusterConfigureDeliveryEnableCallback(uint8_t enable); -/** @brief Information Cluster Configure Node Description - * - * - * - * @param description Ver.: always - */ -bool emberAfInformationClusterConfigureNodeDescriptionCallback(uint8_t * description); -/** @brief Information Cluster Configure Push Information Timer - * - * - * - * @param timer Ver.: always - */ -bool emberAfInformationClusterConfigurePushInformationTimerCallback(uint32_t timer); -/** @brief Information Cluster Configure Set Root Id - * - * - * - * @param rootId Ver.: always - */ -bool emberAfInformationClusterConfigureSetRootIdCallback(uint16_t rootId); -/** @brief Information Cluster Delete - * - * - * - * @param deletionOptions Ver.: always - * @param contentIds Ver.: always - */ -bool emberAfInformationClusterDeleteCallback(uint8_t deletionOptions, uint8_t * contentIds); -/** @brief Information Cluster Delete Response - * - * - * - * @param notificationList Ver.: always - */ -bool emberAfInformationClusterDeleteResponseCallback(uint8_t * notificationList); -/** @brief Information Cluster Push Information - * - * - * - * @param contents Ver.: always - */ -bool emberAfInformationClusterPushInformationCallback(uint8_t * contents); -/** @brief Information Cluster Push Information Response - * - * - * - * @param notificationList Ver.: always - */ -bool emberAfInformationClusterPushInformationResponseCallback(uint8_t * notificationList); -/** @brief Information Cluster Request Information - * - * - * - * @param inquiryId Ver.: always - * @param dataTypeId Ver.: always - * @param requestInformationPayload Ver.: always - */ -bool emberAfInformationClusterRequestInformationCallback(uint8_t inquiryId, uint8_t dataTypeId, - uint8_t * requestInformationPayload); -/** @brief Information Cluster Request Information Response - * - * - * - * @param number Ver.: always - * @param buffer Ver.: always - */ -bool emberAfInformationClusterRequestInformationResponseCallback(uint8_t number, uint8_t * buffer); -/** @brief Information Cluster Request Preference Confirmation - * - * - * - * @param statusFeedbackList Ver.: always - */ -bool emberAfInformationClusterRequestPreferenceConfirmationCallback(uint8_t * statusFeedbackList); -/** @brief Information Cluster Request Preference Response - * - * - * - * @param statusFeedback Ver.: always - * @param preferenceType Ver.: always - * @param preferencePayload Ver.: always - */ -bool emberAfInformationClusterRequestPreferenceResponseCallback(uint8_t statusFeedback, uint16_t preferenceType, - uint8_t * preferencePayload); -/** @brief Information Cluster Send Preference - * - * - * - * @param preferenceType Ver.: always - * @param preferencePayload Ver.: always - */ -bool emberAfInformationClusterSendPreferenceCallback(uint16_t preferenceType, uint8_t * preferencePayload); -/** @brief Information Cluster Send Preference Response - * - * - * - * @param statusFeedbackList Ver.: always - */ -bool emberAfInformationClusterSendPreferenceResponseCallback(uint8_t * statusFeedbackList); -/** @brief Information Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfInformationClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Information Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfInformationClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Information Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfInformationClusterServerInitCallback(uint8_t endpoint); -/** @brief Information Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfInformationClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Information Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfInformationClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Information Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfInformationClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Information Cluster Server Request Preference - * - * - * - */ -bool emberAfInformationClusterServerRequestPreferenceCallback(void); -/** @brief Information Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfInformationClusterServerTickCallback(uint8_t endpoint); -/** @brief Information Cluster Update - * - * - * - * @param accessControl Ver.: always - * @param option Ver.: always - * @param contents Ver.: always - */ -bool emberAfInformationClusterUpdateCallback(uint8_t accessControl, uint8_t option, uint8_t * contents); -/** @brief Information Cluster Update Response - * - * - * - * @param notificationList Ver.: always - */ -bool emberAfInformationClusterUpdateResponseCallback(uint8_t * notificationList); - -/** @} END Information Cluster Callbacks */ - -/** @name Data Sharing Cluster Callbacks */ -// @{ - -/** @brief Data Sharing Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfDataSharingClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Data Sharing Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfDataSharingClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Data Sharing Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfDataSharingClusterClientInitCallback(uint8_t endpoint); -/** @brief Data Sharing Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfDataSharingClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Data Sharing Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfDataSharingClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Data Sharing Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfDataSharingClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Data Sharing Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfDataSharingClusterClientTickCallback(uint8_t endpoint); -/** @brief Data Sharing Cluster File Transmission - * - * - * - * @param transmitOptions Ver.: always - * @param buffer Ver.: always - */ -bool emberAfDataSharingClusterFileTransmissionCallback(uint8_t transmitOptions, uint8_t * buffer); -/** @brief Data Sharing Cluster Modify File Request - * - * - * - * @param fileIndex Ver.: always - * @param fileStartPosition Ver.: always - * @param octetCount Ver.: always - */ -bool emberAfDataSharingClusterModifyFileRequestCallback(uint16_t fileIndex, uint32_t fileStartPosition, uint32_t octetCount); -/** @brief Data Sharing Cluster Modify Record Request - * - * - * - * @param fileIndex Ver.: always - * @param fileStartRecord Ver.: always - * @param recordCount Ver.: always - */ -bool emberAfDataSharingClusterModifyRecordRequestCallback(uint16_t fileIndex, uint16_t fileStartRecord, uint16_t recordCount); -/** @brief Data Sharing Cluster Read File Request - * - * - * - * @param fileIndex Ver.: always - * @param fileStartPositionAndRequestedOctetCount Ver.: always - */ -bool emberAfDataSharingClusterReadFileRequestCallback(uint16_t fileIndex, uint8_t * fileStartPositionAndRequestedOctetCount); -/** @brief Data Sharing Cluster Read Record Request - * - * - * - * @param fileIndex Ver.: always - * @param fileStartRecordAndRequestedRecordCount Ver.: always - */ -bool emberAfDataSharingClusterReadRecordRequestCallback(uint16_t fileIndex, uint8_t * fileStartRecordAndRequestedRecordCount); -/** @brief Data Sharing Cluster Record Transmission - * - * - * - * @param transmitOptions Ver.: always - * @param buffer Ver.: always - */ -bool emberAfDataSharingClusterRecordTransmissionCallback(uint8_t transmitOptions, uint8_t * buffer); -/** @brief Data Sharing Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfDataSharingClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Data Sharing Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfDataSharingClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Data Sharing Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfDataSharingClusterServerInitCallback(uint8_t endpoint); -/** @brief Data Sharing Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfDataSharingClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Data Sharing Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfDataSharingClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Data Sharing Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfDataSharingClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Data Sharing Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfDataSharingClusterServerTickCallback(uint8_t endpoint); -/** @brief Data Sharing Cluster Write File Request - * - * - * - * @param writeOptions Ver.: always - * @param fileSize Ver.: always - */ -bool emberAfDataSharingClusterWriteFileRequestCallback(uint8_t writeOptions, uint8_t * fileSize); -/** @brief Data Sharing Cluster Write File Response - * - * - * - * @param status Ver.: always - * @param fileIndex Ver.: always - */ -bool emberAfDataSharingClusterWriteFileResponseCallback(uint8_t status, uint8_t * fileIndex); - -/** @} END Data Sharing Cluster Callbacks */ - -/** @name Gaming Cluster Callbacks */ -// @{ - -/** @brief Gaming Cluster Action Control - * - * - * - * @param actions Ver.: always - */ -bool emberAfGamingClusterActionControlCallback(uint32_t actions); -/** @brief Gaming Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfGamingClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Gaming Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfGamingClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Gaming Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfGamingClusterClientInitCallback(uint8_t endpoint); -/** @brief Gaming Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfGamingClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Gaming Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfGamingClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Gaming Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfGamingClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Gaming Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfGamingClusterClientTickCallback(uint8_t endpoint); -/** @brief Gaming Cluster Download Game - * - * - * - */ -bool emberAfGamingClusterDownloadGameCallback(void); -/** @brief Gaming Cluster End Game - * - * - * - */ -bool emberAfGamingClusterEndGameCallback(void); -/** @brief Gaming Cluster Game Announcement - * - * - * - * @param gameId Ver.: always - * @param gameMaster Ver.: always - * @param listOfGame Ver.: always - */ -bool emberAfGamingClusterGameAnnouncementCallback(uint16_t gameId, uint8_t gameMaster, uint8_t * listOfGame); -/** @brief Gaming Cluster General Response - * - * - * - * @param commandId Ver.: always - * @param status Ver.: always - * @param message Ver.: always - */ -bool emberAfGamingClusterGeneralResponseCallback(uint8_t commandId, uint8_t status, uint8_t * message); -/** @brief Gaming Cluster Join Game - * - * - * - * @param gameId Ver.: always - * @param joinAsMaster Ver.: always - * @param nameOfGame Ver.: always - */ -bool emberAfGamingClusterJoinGameCallback(uint16_t gameId, uint8_t joinAsMaster, uint8_t * nameOfGame); -/** @brief Gaming Cluster Pause Game - * - * - * - */ -bool emberAfGamingClusterPauseGameCallback(void); -/** @brief Gaming Cluster Quit Game - * - * - * - */ -bool emberAfGamingClusterQuitGameCallback(void); -/** @brief Gaming Cluster Resume Game - * - * - * - */ -bool emberAfGamingClusterResumeGameCallback(void); -/** @brief Gaming Cluster Search Game - * - * - * - * @param specificGame Ver.: always - * @param gameId Ver.: always - */ -bool emberAfGamingClusterSearchGameCallback(uint8_t specificGame, uint16_t gameId); -/** @brief Gaming Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfGamingClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Gaming Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfGamingClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Gaming Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfGamingClusterServerInitCallback(uint8_t endpoint); -/** @brief Gaming Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfGamingClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Gaming Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfGamingClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Gaming Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfGamingClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Gaming Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfGamingClusterServerTickCallback(uint8_t endpoint); -/** @brief Gaming Cluster Start Game - * - * - * - */ -bool emberAfGamingClusterStartGameCallback(void); -/** @brief Gaming Cluster Start Over - * - * - * - */ -bool emberAfGamingClusterStartOverCallback(void); - -/** @} END Gaming Cluster Callbacks */ - -/** @name Data Rate Control Cluster Callbacks */ -// @{ - -/** @brief Data Rate Control Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfDataRateControlClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Data Rate Control Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfDataRateControlClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Data Rate Control Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfDataRateControlClusterClientInitCallback(uint8_t endpoint); -/** @brief Data Rate Control Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfDataRateControlClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Data Rate Control Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfDataRateControlClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Data Rate Control Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfDataRateControlClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Data Rate Control Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfDataRateControlClusterClientTickCallback(uint8_t endpoint); -/** @brief Data Rate Control Cluster Data Rate Control - * - * - * - * @param originatorAddress Ver.: always - * @param destinationAddress Ver.: always - * @param dataRate Ver.: always - */ -bool emberAfDataRateControlClusterDataRateControlCallback(uint16_t originatorAddress, uint16_t destinationAddress, - uint8_t dataRate); -/** @brief Data Rate Control Cluster Data Rate Notification - * - * - * - * @param originatorAddress Ver.: always - * @param destinationAddress Ver.: always - * @param dataRate Ver.: always - */ -bool emberAfDataRateControlClusterDataRateNotificationCallback(uint16_t originatorAddress, uint16_t destinationAddress, - uint8_t dataRate); -/** @brief Data Rate Control Cluster Path Creation - * - * - * - * @param originatorAddress Ver.: always - * @param destinationAddress Ver.: always - * @param dataRate Ver.: always - */ -bool emberAfDataRateControlClusterPathCreationCallback(uint16_t originatorAddress, uint16_t destinationAddress, uint8_t dataRate); -/** @brief Data Rate Control Cluster Path Deletion - * - * - * - * @param originatorAddress Ver.: always - * @param destinationAddress Ver.: always - */ -bool emberAfDataRateControlClusterPathDeletionCallback(uint16_t originatorAddress, uint16_t destinationAddress); -/** @brief Data Rate Control Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfDataRateControlClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Data Rate Control Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfDataRateControlClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Data Rate Control Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfDataRateControlClusterServerInitCallback(uint8_t endpoint); -/** @brief Data Rate Control Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfDataRateControlClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Data Rate Control Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfDataRateControlClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Data Rate Control Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfDataRateControlClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Data Rate Control Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfDataRateControlClusterServerTickCallback(uint8_t endpoint); - -/** @} END Data Rate Control Cluster Callbacks */ - -/** @name Voice over ZigBee Cluster Callbacks */ -// @{ - -/** @brief Voice over ZigBee Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfVoiceOverZigbeeClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Voice over ZigBee Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfVoiceOverZigbeeClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Voice over ZigBee Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfVoiceOverZigbeeClusterClientInitCallback(uint8_t endpoint); -/** @brief Voice over ZigBee Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfVoiceOverZigbeeClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Voice over ZigBee Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfVoiceOverZigbeeClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Voice over ZigBee Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfVoiceOverZigbeeClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Voice over ZigBee Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfVoiceOverZigbeeClusterClientTickCallback(uint8_t endpoint); -/** @brief Voice over ZigBee Cluster Control - * - * - * - * @param controlType Ver.: always - */ -bool emberAfVoiceOverZigbeeClusterControlCallback(uint8_t controlType); -/** @brief Voice over ZigBee Cluster Control Response - * - * - * - * @param ackNack Ver.: always - */ -bool emberAfVoiceOverZigbeeClusterControlResponseCallback(uint8_t ackNack); -/** @brief Voice over ZigBee Cluster Establishment Request - * - * - * - * @param flag Ver.: always - * @param codecType Ver.: always - * @param sampFreq Ver.: always - * @param codecRate Ver.: always - * @param serviceType Ver.: always - * @param buffer Ver.: always - */ -bool emberAfVoiceOverZigbeeClusterEstablishmentRequestCallback(uint8_t flag, uint8_t codecType, uint8_t sampFreq, uint8_t codecRate, - uint8_t serviceType, uint8_t * buffer); -/** @brief Voice over ZigBee Cluster Establishment Response - * - * - * - * @param ackNack Ver.: always - * @param codecType Ver.: always - */ -bool emberAfVoiceOverZigbeeClusterEstablishmentResponseCallback(uint8_t ackNack, uint8_t codecType); -/** @brief Voice over ZigBee Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfVoiceOverZigbeeClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Voice over ZigBee Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfVoiceOverZigbeeClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Voice over ZigBee Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfVoiceOverZigbeeClusterServerInitCallback(uint8_t endpoint); -/** @brief Voice over ZigBee Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfVoiceOverZigbeeClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Voice over ZigBee Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfVoiceOverZigbeeClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Voice over ZigBee Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfVoiceOverZigbeeClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Voice over ZigBee Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfVoiceOverZigbeeClusterServerTickCallback(uint8_t endpoint); -/** @brief Voice over ZigBee Cluster Voice Transmission - * - * - * - * @param voiceData Ver.: always - */ -bool emberAfVoiceOverZigbeeClusterVoiceTransmissionCallback(uint8_t * voiceData); -/** @brief Voice over ZigBee Cluster Voice Transmission Completion - * - * - * - */ -bool emberAfVoiceOverZigbeeClusterVoiceTransmissionCompletionCallback(void); -/** @brief Voice over ZigBee Cluster Voice Transmission Response - * - * - * - * @param sequenceNumber Ver.: always - * @param errorFlag Ver.: always - */ -bool emberAfVoiceOverZigbeeClusterVoiceTransmissionResponseCallback(uint8_t sequenceNumber, uint8_t errorFlag); - -/** @} END Voice over ZigBee Cluster Callbacks */ - -/** @name Chatting Cluster Callbacks */ -// @{ - -/** @brief Chatting Cluster Chat Message - * - * - * - * @param destinationUid Ver.: always - * @param sourceUid Ver.: always - * @param cid Ver.: always - * @param nickname Ver.: always - * @param message Ver.: always - */ -bool emberAfChattingClusterChatMessageCallback(uint16_t destinationUid, uint16_t sourceUid, uint16_t cid, uint8_t * nickname, - uint8_t * message); -/** @brief Chatting Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfChattingClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Chatting Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfChattingClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Chatting Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfChattingClusterClientInitCallback(uint8_t endpoint); -/** @brief Chatting Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfChattingClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Chatting Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfChattingClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Chatting Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfChattingClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Chatting Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfChattingClusterClientTickCallback(uint8_t endpoint); -/** @brief Chatting Cluster Get Node Information Request - * - * - * - * @param cid Ver.: always - * @param uid Ver.: always - */ -bool emberAfChattingClusterGetNodeInformationRequestCallback(uint16_t cid, uint16_t uid); -/** @brief Chatting Cluster Get Node Information Response - * - * - * - * @param status Ver.: always - * @param cid Ver.: always - * @param uid Ver.: always - * @param addressEndpointAndNickname Ver.: always - */ -bool emberAfChattingClusterGetNodeInformationResponseCallback(uint8_t status, uint16_t cid, uint16_t uid, - uint8_t * addressEndpointAndNickname); -/** @brief Chatting Cluster Join Chat Request - * - * - * - * @param uid Ver.: always - * @param nickname Ver.: always - * @param cid Ver.: always - */ -bool emberAfChattingClusterJoinChatRequestCallback(uint16_t uid, uint8_t * nickname, uint16_t cid); -/** @brief Chatting Cluster Join Chat Response - * - * - * - * @param status Ver.: always - * @param cid Ver.: always - * @param chatParticipantList Ver.: always - */ -bool emberAfChattingClusterJoinChatResponseCallback(uint8_t status, uint16_t cid, uint8_t * chatParticipantList); -/** @brief Chatting Cluster Leave Chat Request - * - * - * - * @param cid Ver.: always - * @param uid Ver.: always - */ -bool emberAfChattingClusterLeaveChatRequestCallback(uint16_t cid, uint16_t uid); -/** @brief Chatting Cluster Search Chat Request - * - * - * - */ -bool emberAfChattingClusterSearchChatRequestCallback(void); -/** @brief Chatting Cluster Search Chat Response - * - * - * - * @param options Ver.: always - * @param chatRoomList Ver.: always - */ -bool emberAfChattingClusterSearchChatResponseCallback(uint8_t options, uint8_t * chatRoomList); -/** @brief Chatting Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfChattingClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Chatting Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfChattingClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Chatting Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfChattingClusterServerInitCallback(uint8_t endpoint); -/** @brief Chatting Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfChattingClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Chatting Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfChattingClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Chatting Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfChattingClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Chatting Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfChattingClusterServerTickCallback(uint8_t endpoint); -/** @brief Chatting Cluster Start Chat Request - * - * - * - * @param name Ver.: always - * @param uid Ver.: always - * @param nickname Ver.: always - */ -bool emberAfChattingClusterStartChatRequestCallback(uint8_t * name, uint16_t uid, uint8_t * nickname); -/** @brief Chatting Cluster Start Chat Response - * - * - * - * @param status Ver.: always - * @param cid Ver.: always - */ -bool emberAfChattingClusterStartChatResponseCallback(uint8_t status, uint16_t cid); -/** @brief Chatting Cluster Switch Chairman Confirm - * - * - * - * @param cid Ver.: always - * @param nodeInformationList Ver.: always - */ -bool emberAfChattingClusterSwitchChairmanConfirmCallback(uint16_t cid, uint8_t * nodeInformationList); -/** @brief Chatting Cluster Switch Chairman Notification - * - * - * - * @param cid Ver.: always - * @param uid Ver.: always - * @param address Ver.: always - * @param endpoint Ver.: always - */ -bool emberAfChattingClusterSwitchChairmanNotificationCallback(uint16_t cid, uint16_t uid, uint16_t address, uint8_t endpoint); -/** @brief Chatting Cluster Switch Chairman Request - * - * - * - * @param cid Ver.: always - */ -bool emberAfChattingClusterSwitchChairmanRequestCallback(uint16_t cid); -/** @brief Chatting Cluster Switch Chairman Response - * - * - * - * @param cid Ver.: always - * @param uid Ver.: always - */ -bool emberAfChattingClusterSwitchChairmanResponseCallback(uint16_t cid, uint16_t uid); -/** @brief Chatting Cluster User Joined - * - * - * - * @param cid Ver.: always - * @param uid Ver.: always - * @param nickname Ver.: always - */ -bool emberAfChattingClusterUserJoinedCallback(uint16_t cid, uint16_t uid, uint8_t * nickname); -/** @brief Chatting Cluster User Left - * - * - * - * @param cid Ver.: always - * @param uid Ver.: always - * @param nickname Ver.: always - */ -bool emberAfChattingClusterUserLeftCallback(uint16_t cid, uint16_t uid, uint8_t * nickname); - -/** @} END Chatting Cluster Callbacks */ - -/** @name Payment Cluster Callbacks */ -// @{ - -/** @brief Payment Cluster Accept Payment - * - * - * - * @param userId Ver.: always - * @param userType Ver.: always - * @param serviceId Ver.: always - * @param goodId Ver.: always - */ -bool emberAfPaymentClusterAcceptPaymentCallback(uint8_t * userId, uint16_t userType, uint16_t serviceId, uint8_t * goodId); -/** @brief Payment Cluster Buy Confirm - * - * - * - * @param serialNumber Ver.: always - * @param currency Ver.: always - * @param priceTrailingDigit Ver.: always - * @param price Ver.: always - * @param timestamp Ver.: always - * @param transId Ver.: always - * @param transStatus Ver.: always - */ -bool emberAfPaymentClusterBuyConfirmCallback(uint8_t * serialNumber, uint32_t currency, uint8_t priceTrailingDigit, uint32_t price, - uint8_t * timestamp, uint16_t transId, uint8_t transStatus); -/** @brief Payment Cluster Buy Request - * - * - * - * @param userId Ver.: always - * @param userType Ver.: always - * @param serviceId Ver.: always - * @param goodId Ver.: always - */ -bool emberAfPaymentClusterBuyRequestCallback(uint8_t * userId, uint16_t userType, uint16_t serviceId, uint8_t * goodId); -/** @brief Payment Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfPaymentClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Payment Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfPaymentClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Payment Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfPaymentClusterClientInitCallback(uint8_t endpoint); -/** @brief Payment Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfPaymentClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Payment Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfPaymentClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Payment Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfPaymentClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Payment Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfPaymentClusterClientTickCallback(uint8_t endpoint); -/** @brief Payment Cluster Payment Confirm - * - * - * - * @param serialNumber Ver.: always - * @param transId Ver.: always - * @param transStatus Ver.: always - */ -bool emberAfPaymentClusterPaymentConfirmCallback(uint8_t * serialNumber, uint16_t transId, uint8_t transStatus); -/** @brief Payment Cluster Receipt Delivery - * - * - * - * @param serialNumber Ver.: always - * @param currency Ver.: always - * @param priceTrailingDigit Ver.: always - * @param price Ver.: always - * @param timestamp Ver.: always - */ -bool emberAfPaymentClusterReceiptDeliveryCallback(uint8_t * serialNumber, uint32_t currency, uint8_t priceTrailingDigit, - uint32_t price, uint8_t * timestamp); -/** @brief Payment Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfPaymentClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Payment Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfPaymentClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Payment Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfPaymentClusterServerInitCallback(uint8_t endpoint); -/** @brief Payment Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfPaymentClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Payment Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfPaymentClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Payment Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfPaymentClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Payment Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfPaymentClusterServerTickCallback(uint8_t endpoint); -/** @brief Payment Cluster Transaction End - * - * - * - * @param serialNumber Ver.: always - * @param status Ver.: always - */ -bool emberAfPaymentClusterTransactionEndCallback(uint8_t * serialNumber, uint8_t status); - -/** @} END Payment Cluster Callbacks */ - -/** @name Billing Cluster Callbacks */ -// @{ - -/** @brief Billing Cluster Bill Status Notification - * - * - * - * @param userId Ver.: always - * @param status Ver.: always - */ -bool emberAfBillingClusterBillStatusNotificationCallback(uint8_t * userId, uint8_t status); -/** @brief Billing Cluster Check Bill Status - * - * - * - * @param userId Ver.: always - * @param serviceId Ver.: always - * @param serviceProviderId Ver.: always - */ -bool emberAfBillingClusterCheckBillStatusCallback(uint8_t * userId, uint16_t serviceId, uint16_t serviceProviderId); -/** @brief Billing Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfBillingClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Billing Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfBillingClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Billing Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfBillingClusterClientInitCallback(uint8_t endpoint); -/** @brief Billing Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfBillingClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Billing Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfBillingClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Billing Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfBillingClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Billing Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfBillingClusterClientTickCallback(uint8_t endpoint); -/** @brief Billing Cluster Send Bill Record - * - * - * - * @param userId Ver.: always - * @param serviceId Ver.: always - * @param serviceProviderId Ver.: always - * @param timestamp Ver.: always - * @param duration Ver.: always - */ -bool emberAfBillingClusterSendBillRecordCallback(uint8_t * userId, uint16_t serviceId, uint16_t serviceProviderId, - uint8_t * timestamp, uint16_t duration); -/** @brief Billing Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfBillingClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Billing Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfBillingClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Billing Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfBillingClusterServerInitCallback(uint8_t endpoint); -/** @brief Billing Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfBillingClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Billing Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfBillingClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Billing Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfBillingClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Billing Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfBillingClusterServerTickCallback(uint8_t endpoint); -/** @brief Billing Cluster Session Keep Alive - * - * - * - * @param userId Ver.: always - * @param serviceId Ver.: always - * @param serviceProviderId Ver.: always - */ -bool emberAfBillingClusterSessionKeepAliveCallback(uint8_t * userId, uint16_t serviceId, uint16_t serviceProviderId); -/** @brief Billing Cluster Start Billing Session - * - * - * - * @param userId Ver.: always - * @param serviceId Ver.: always - * @param serviceProviderId Ver.: always - */ -bool emberAfBillingClusterStartBillingSessionCallback(uint8_t * userId, uint16_t serviceId, uint16_t serviceProviderId); -/** @brief Billing Cluster Stop Billing Session - * - * - * - * @param userId Ver.: always - * @param serviceId Ver.: always - * @param serviceProviderId Ver.: always - */ -bool emberAfBillingClusterStopBillingSessionCallback(uint8_t * userId, uint16_t serviceId, uint16_t serviceProviderId); -/** @brief Billing Cluster Subscribe - * - * - * - * @param userId Ver.: always - * @param serviceId Ver.: always - * @param serviceProviderId Ver.: always - */ -bool emberAfBillingClusterSubscribeCallback(uint8_t * userId, uint16_t serviceId, uint16_t serviceProviderId); -/** @brief Billing Cluster Unsubscribe - * - * - * - * @param userId Ver.: always - * @param serviceId Ver.: always - * @param serviceProviderId Ver.: always - */ -bool emberAfBillingClusterUnsubscribeCallback(uint8_t * userId, uint16_t serviceId, uint16_t serviceProviderId); - -/** @} END Billing Cluster Callbacks */ - -/** @name Appliance Identification Cluster Callbacks */ -// @{ - -/** @brief Appliance Identification Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfApplianceIdentificationClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Appliance Identification Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfApplianceIdentificationClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Appliance Identification Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfApplianceIdentificationClusterClientInitCallback(uint8_t endpoint); -/** @brief Appliance Identification Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfApplianceIdentificationClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Appliance Identification Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfApplianceIdentificationClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Appliance Identification Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfApplianceIdentificationClusterClientPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Appliance Identification Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfApplianceIdentificationClusterClientTickCallback(uint8_t endpoint); -/** @brief Appliance Identification Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfApplianceIdentificationClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Appliance Identification Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfApplianceIdentificationClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Appliance Identification Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfApplianceIdentificationClusterServerInitCallback(uint8_t endpoint); -/** @brief Appliance Identification Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfApplianceIdentificationClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Appliance Identification Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfApplianceIdentificationClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Appliance Identification Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfApplianceIdentificationClusterServerPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Appliance Identification Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfApplianceIdentificationClusterServerTickCallback(uint8_t endpoint); - -/** @} END Appliance Identification Cluster Callbacks */ - -/** @name Meter Identification Cluster Callbacks */ -// @{ - -/** @brief Meter Identification Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfMeterIdentificationClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Meter Identification Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfMeterIdentificationClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Meter Identification Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfMeterIdentificationClusterClientInitCallback(uint8_t endpoint); -/** @brief Meter Identification Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfMeterIdentificationClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Meter Identification Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfMeterIdentificationClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Meter Identification Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfMeterIdentificationClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Meter Identification Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfMeterIdentificationClusterClientTickCallback(uint8_t endpoint); -/** @brief Meter Identification Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfMeterIdentificationClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Meter Identification Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfMeterIdentificationClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Meter Identification Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfMeterIdentificationClusterServerInitCallback(uint8_t endpoint); -/** @brief Meter Identification Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfMeterIdentificationClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Meter Identification Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfMeterIdentificationClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Meter Identification Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfMeterIdentificationClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Meter Identification Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfMeterIdentificationClusterServerTickCallback(uint8_t endpoint); - -/** @} END Meter Identification Cluster Callbacks */ - -/** @name Appliance Events and Alert Cluster Callbacks */ -// @{ - -/** @brief Appliance Events and Alert Cluster Alerts Notification - * - * - * - * @param alertsCount Ver.: always - * @param alertStructures Ver.: always - */ -bool emberAfApplianceEventsAndAlertClusterAlertsNotificationCallback(uint8_t alertsCount, uint8_t * alertStructures); -/** @brief Appliance Events and Alert Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfApplianceEventsAndAlertClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Appliance Events and Alert Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfApplianceEventsAndAlertClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Appliance Events and Alert Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfApplianceEventsAndAlertClusterClientInitCallback(uint8_t endpoint); -/** @brief Appliance Events and Alert Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfApplianceEventsAndAlertClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Appliance Events and Alert Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfApplianceEventsAndAlertClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Appliance Events and Alert Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfApplianceEventsAndAlertClusterClientPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Appliance Events and Alert Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfApplianceEventsAndAlertClusterClientTickCallback(uint8_t endpoint); -/** @brief Appliance Events and Alert Cluster Events Notification - * - * - * - * @param eventHeader Ver.: always - * @param eventId Ver.: always - */ -bool emberAfApplianceEventsAndAlertClusterEventsNotificationCallback(uint8_t eventHeader, uint8_t eventId); -/** @brief Appliance Events and Alert Cluster Get Alerts - * - * - * - */ -bool emberAfApplianceEventsAndAlertClusterGetAlertsCallback(void); -/** @brief Appliance Events and Alert Cluster Get Alerts Response - * - * - * - * @param alertsCount Ver.: always - * @param alertStructures Ver.: always - */ -bool emberAfApplianceEventsAndAlertClusterGetAlertsResponseCallback(uint8_t alertsCount, uint8_t * alertStructures); -/** @brief Appliance Events and Alert Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfApplianceEventsAndAlertClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Appliance Events and Alert Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfApplianceEventsAndAlertClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Appliance Events and Alert Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfApplianceEventsAndAlertClusterServerInitCallback(uint8_t endpoint); -/** @brief Appliance Events and Alert Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfApplianceEventsAndAlertClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Appliance Events and Alert Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfApplianceEventsAndAlertClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Appliance Events and Alert Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfApplianceEventsAndAlertClusterServerPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Appliance Events and Alert Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfApplianceEventsAndAlertClusterServerTickCallback(uint8_t endpoint); - -/** @} END Appliance Events and Alert Cluster Callbacks */ - -/** @name Appliance Statistics Cluster Callbacks */ -// @{ - -/** @brief Appliance Statistics Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfApplianceStatisticsClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Appliance Statistics Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfApplianceStatisticsClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Appliance Statistics Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfApplianceStatisticsClusterClientInitCallback(uint8_t endpoint); -/** @brief Appliance Statistics Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfApplianceStatisticsClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Appliance Statistics Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfApplianceStatisticsClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Appliance Statistics Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfApplianceStatisticsClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Appliance Statistics Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfApplianceStatisticsClusterClientTickCallback(uint8_t endpoint); -/** @brief Appliance Statistics Cluster Log Notification - * - * - * - * @param timeStamp Ver.: always - * @param logId Ver.: always - * @param logLength Ver.: always - * @param logPayload Ver.: always - */ -bool emberAfApplianceStatisticsClusterLogNotificationCallback(uint32_t timeStamp, uint32_t logId, uint32_t logLength, - uint8_t * logPayload); -/** @brief Appliance Statistics Cluster Log Queue Request - * - * - * - */ -bool emberAfApplianceStatisticsClusterLogQueueRequestCallback(void); -/** @brief Appliance Statistics Cluster Log Queue Response - * - * - * - * @param logQueueSize Ver.: always - * @param logIds Ver.: always - */ -bool emberAfApplianceStatisticsClusterLogQueueResponseCallback(uint8_t logQueueSize, uint8_t * logIds); -/** @brief Appliance Statistics Cluster Log Request - * - * - * - * @param logId Ver.: always - */ -bool emberAfApplianceStatisticsClusterLogRequestCallback(uint32_t logId); -/** @brief Appliance Statistics Cluster Log Response - * - * - * - * @param timeStamp Ver.: always - * @param logId Ver.: always - * @param logLength Ver.: always - * @param logPayload Ver.: always - */ -bool emberAfApplianceStatisticsClusterLogResponseCallback(uint32_t timeStamp, uint32_t logId, uint32_t logLength, - uint8_t * logPayload); -/** @brief Appliance Statistics Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfApplianceStatisticsClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Appliance Statistics Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfApplianceStatisticsClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Appliance Statistics Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfApplianceStatisticsClusterServerInitCallback(uint8_t endpoint); -/** @brief Appliance Statistics Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfApplianceStatisticsClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Appliance Statistics Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfApplianceStatisticsClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Appliance Statistics Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfApplianceStatisticsClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Appliance Statistics Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfApplianceStatisticsClusterServerTickCallback(uint8_t endpoint); -/** @brief Appliance Statistics Cluster Statistics Available - * - * - * - * @param logQueueSize Ver.: always - * @param logIds Ver.: always - */ -bool emberAfApplianceStatisticsClusterStatisticsAvailableCallback(uint8_t logQueueSize, uint8_t * logIds); - -/** @} END Appliance Statistics Cluster Callbacks */ - -/** @name Electrical Measurement Cluster Callbacks */ -// @{ - -/** @brief Electrical Measurement Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfElectricalMeasurementClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Electrical Measurement Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfElectricalMeasurementClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Electrical Measurement Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfElectricalMeasurementClusterClientInitCallback(uint8_t endpoint); -/** @brief Electrical Measurement Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfElectricalMeasurementClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Electrical Measurement Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfElectricalMeasurementClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Electrical Measurement Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfElectricalMeasurementClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Electrical Measurement Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfElectricalMeasurementClusterClientTickCallback(uint8_t endpoint); -/** @brief Electrical Measurement Cluster Get Measurement Profile Command - * - * - * - * @param attributeId Ver.: always - * @param startTime Ver.: always - * @param numberOfIntervals Ver.: always - */ -bool emberAfElectricalMeasurementClusterGetMeasurementProfileCommandCallback(uint16_t attributeId, uint32_t startTime, - uint8_t numberOfIntervals); -/** @brief Electrical Measurement Cluster Get Measurement Profile Response Command - * - * - * - * @param startTime Ver.: always - * @param status Ver.: always - * @param profileIntervalPeriod Ver.: always - * @param numberOfIntervalsDelivered Ver.: always - * @param attributeId Ver.: always - * @param intervals Ver.: always - */ -bool emberAfElectricalMeasurementClusterGetMeasurementProfileResponseCommandCallback(uint32_t startTime, uint8_t status, - uint8_t profileIntervalPeriod, - uint8_t numberOfIntervalsDelivered, - uint16_t attributeId, uint8_t * intervals); -/** @brief Electrical Measurement Cluster Get Profile Info Command - * - * - * - */ -bool emberAfElectricalMeasurementClusterGetProfileInfoCommandCallback(void); -/** @brief Electrical Measurement Cluster Get Profile Info Response Command - * - * - * - * @param profileCount Ver.: always - * @param profileIntervalPeriod Ver.: always - * @param maxNumberOfIntervals Ver.: always - * @param listOfAttributes Ver.: always - */ -bool emberAfElectricalMeasurementClusterGetProfileInfoResponseCommandCallback(uint8_t profileCount, uint8_t profileIntervalPeriod, - uint8_t maxNumberOfIntervals, - uint8_t * listOfAttributes); -/** @brief Electrical Measurement Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfElectricalMeasurementClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Electrical Measurement Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfElectricalMeasurementClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Electrical Measurement Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfElectricalMeasurementClusterServerInitCallback(uint8_t endpoint); -/** @brief Electrical Measurement Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfElectricalMeasurementClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Electrical Measurement Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfElectricalMeasurementClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Electrical Measurement Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfElectricalMeasurementClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Electrical Measurement Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfElectricalMeasurementClusterServerTickCallback(uint8_t endpoint); - -/** @} END Electrical Measurement Cluster Callbacks */ - -/** @name Diagnostics Cluster Callbacks */ -// @{ - -/** @brief Diagnostics Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfDiagnosticsClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Diagnostics Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfDiagnosticsClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Diagnostics Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfDiagnosticsClusterClientInitCallback(uint8_t endpoint); -/** @brief Diagnostics Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfDiagnosticsClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Diagnostics Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfDiagnosticsClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Diagnostics Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfDiagnosticsClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Diagnostics Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfDiagnosticsClusterClientTickCallback(uint8_t endpoint); -/** @brief Diagnostics Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfDiagnosticsClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Diagnostics Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfDiagnosticsClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Diagnostics Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfDiagnosticsClusterServerInitCallback(uint8_t endpoint); -/** @brief Diagnostics Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfDiagnosticsClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Diagnostics Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfDiagnosticsClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Diagnostics Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfDiagnosticsClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Diagnostics Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfDiagnosticsClusterServerTickCallback(uint8_t endpoint); - -/** @} END Diagnostics Cluster Callbacks */ - -/** @name ZLL Commissioning Cluster Callbacks */ -// @{ - -/** @brief ZLL Commissioning Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfZllCommissioningClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief ZLL Commissioning Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfZllCommissioningClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief ZLL Commissioning Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfZllCommissioningClusterClientInitCallback(uint8_t endpoint); -/** @brief ZLL Commissioning Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfZllCommissioningClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief ZLL Commissioning Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfZllCommissioningClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief ZLL Commissioning Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfZllCommissioningClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief ZLL Commissioning Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfZllCommissioningClusterClientTickCallback(uint8_t endpoint); -/** @brief ZLL Commissioning Cluster Device Information Request - * - * - * - * @param transaction Ver.: always - * @param startIndex Ver.: always - */ -bool emberAfZllCommissioningClusterDeviceInformationRequestCallback(uint32_t transaction, uint8_t startIndex); -/** @brief ZLL Commissioning Cluster Device Information Response - * - * - * - * @param transaction Ver.: always - * @param numberOfSubDevices Ver.: always - * @param startIndex Ver.: always - * @param deviceInformationRecordCount Ver.: always - * @param deviceInformationRecordList Ver.: always - */ -bool emberAfZllCommissioningClusterDeviceInformationResponseCallback(uint32_t transaction, uint8_t numberOfSubDevices, - uint8_t startIndex, uint8_t deviceInformationRecordCount, - uint8_t * deviceInformationRecordList); -/** @brief ZLL Commissioning Cluster Endpoint Information - * - * - * - * @param ieeeAddress Ver.: always - * @param networkAddress Ver.: always - * @param endpointId Ver.: always - * @param profileId Ver.: always - * @param deviceId Ver.: always - * @param version Ver.: always - */ -bool emberAfZllCommissioningClusterEndpointInformationCallback(uint8_t * ieeeAddress, uint16_t networkAddress, uint8_t endpointId, - uint16_t profileId, uint16_t deviceId, uint8_t version); -/** @brief ZLL Commissioning Cluster Get Endpoint List Request - * - * - * - * @param startIndex Ver.: always - */ -bool emberAfZllCommissioningClusterGetEndpointListRequestCallback(uint8_t startIndex); -/** @brief ZLL Commissioning Cluster Get Endpoint List Response - * - * - * - * @param total Ver.: always - * @param startIndex Ver.: always - * @param count Ver.: always - * @param endpointInformationRecordList Ver.: always - */ -bool emberAfZllCommissioningClusterGetEndpointListResponseCallback(uint8_t total, uint8_t startIndex, uint8_t count, - uint8_t * endpointInformationRecordList); -/** @brief ZLL Commissioning Cluster Get Group Identifiers Request - * - * - * - * @param startIndex Ver.: always - */ -bool emberAfZllCommissioningClusterGetGroupIdentifiersRequestCallback(uint8_t startIndex); -/** @brief ZLL Commissioning Cluster Get Group Identifiers Response - * - * - * - * @param total Ver.: always - * @param startIndex Ver.: always - * @param count Ver.: always - * @param groupInformationRecordList Ver.: always - */ -bool emberAfZllCommissioningClusterGetGroupIdentifiersResponseCallback(uint8_t total, uint8_t startIndex, uint8_t count, - uint8_t * groupInformationRecordList); -/** @brief ZLL Commissioning Cluster Identify Request - * - * - * - * @param transaction Ver.: always - * @param identifyDuration Ver.: always - */ -bool emberAfZllCommissioningClusterIdentifyRequestCallback(uint32_t transaction, uint16_t identifyDuration); -/** @brief ZLL Commissioning Cluster Network Join End Device Request - * - * - * - * @param transaction Ver.: always - * @param extendedPanId Ver.: always - * @param keyIndex Ver.: always - * @param encryptedNetworkKey Ver.: always - * @param networkUpdateId Ver.: always - * @param logicalChannel Ver.: always - * @param panId Ver.: always - * @param networkAddress Ver.: always - * @param groupIdentifiersBegin Ver.: always - * @param groupIdentifiersEnd Ver.: always - * @param freeNetworkAddressRangeBegin Ver.: always - * @param freeNetworkAddressRangeEnd Ver.: always - * @param freeGroupIdentifierRangeBegin Ver.: always - * @param freeGroupIdentifierRangeEnd Ver.: always - */ -bool emberAfZllCommissioningClusterNetworkJoinEndDeviceRequestCallback( - uint32_t transaction, uint8_t * extendedPanId, uint8_t keyIndex, uint8_t * encryptedNetworkKey, uint8_t networkUpdateId, - uint8_t logicalChannel, uint16_t panId, uint16_t networkAddress, uint16_t groupIdentifiersBegin, uint16_t groupIdentifiersEnd, - uint16_t freeNetworkAddressRangeBegin, uint16_t freeNetworkAddressRangeEnd, uint16_t freeGroupIdentifierRangeBegin, - uint16_t freeGroupIdentifierRangeEnd); -/** @brief ZLL Commissioning Cluster Network Join End Device Response - * - * - * - * @param transaction Ver.: always - * @param status Ver.: always - */ -bool emberAfZllCommissioningClusterNetworkJoinEndDeviceResponseCallback(uint32_t transaction, uint8_t status); -/** @brief ZLL Commissioning Cluster Network Join Router Request - * - * - * - * @param transaction Ver.: always - * @param extendedPanId Ver.: always - * @param keyIndex Ver.: always - * @param encryptedNetworkKey Ver.: always - * @param networkUpdateId Ver.: always - * @param logicalChannel Ver.: always - * @param panId Ver.: always - * @param networkAddress Ver.: always - * @param groupIdentifiersBegin Ver.: always - * @param groupIdentifiersEnd Ver.: always - * @param freeNetworkAddressRangeBegin Ver.: always - * @param freeNetworkAddressRangeEnd Ver.: always - * @param freeGroupIdentifierRangeBegin Ver.: always - * @param freeGroupIdentifierRangeEnd Ver.: always - */ -bool emberAfZllCommissioningClusterNetworkJoinRouterRequestCallback( - uint32_t transaction, uint8_t * extendedPanId, uint8_t keyIndex, uint8_t * encryptedNetworkKey, uint8_t networkUpdateId, - uint8_t logicalChannel, uint16_t panId, uint16_t networkAddress, uint16_t groupIdentifiersBegin, uint16_t groupIdentifiersEnd, - uint16_t freeNetworkAddressRangeBegin, uint16_t freeNetworkAddressRangeEnd, uint16_t freeGroupIdentifierRangeBegin, - uint16_t freeGroupIdentifierRangeEnd); -/** @brief ZLL Commissioning Cluster Network Join Router Response - * - * - * - * @param transaction Ver.: always - * @param status Ver.: always - */ -bool emberAfZllCommissioningClusterNetworkJoinRouterResponseCallback(uint32_t transaction, uint8_t status); -/** @brief ZLL Commissioning Cluster Network Start Request - * - * - * - * @param transaction Ver.: always - * @param extendedPanId Ver.: always - * @param keyIndex Ver.: always - * @param encryptedNetworkKey Ver.: always - * @param logicalChannel Ver.: always - * @param panId Ver.: always - * @param networkAddress Ver.: always - * @param groupIdentifiersBegin Ver.: always - * @param groupIdentifiersEnd Ver.: always - * @param freeNetworkAddressRangeBegin Ver.: always - * @param freeNetworkAddressRangeEnd Ver.: always - * @param freeGroupIdentifierRangeBegin Ver.: always - * @param freeGroupIdentifierRangeEnd Ver.: always - * @param initiatorIeeeAddress Ver.: always - * @param initiatorNetworkAddress Ver.: always - */ -bool emberAfZllCommissioningClusterNetworkStartRequestCallback( - uint32_t transaction, uint8_t * extendedPanId, uint8_t keyIndex, uint8_t * encryptedNetworkKey, uint8_t logicalChannel, - uint16_t panId, uint16_t networkAddress, uint16_t groupIdentifiersBegin, uint16_t groupIdentifiersEnd, - uint16_t freeNetworkAddressRangeBegin, uint16_t freeNetworkAddressRangeEnd, uint16_t freeGroupIdentifierRangeBegin, - uint16_t freeGroupIdentifierRangeEnd, uint8_t * initiatorIeeeAddress, uint16_t initiatorNetworkAddress); -/** @brief ZLL Commissioning Cluster Network Start Response - * - * - * - * @param transaction Ver.: always - * @param status Ver.: always - * @param extendedPanId Ver.: always - * @param networkUpdateId Ver.: always - * @param logicalChannel Ver.: always - * @param panId Ver.: always - */ -bool emberAfZllCommissioningClusterNetworkStartResponseCallback(uint32_t transaction, uint8_t status, uint8_t * extendedPanId, - uint8_t networkUpdateId, uint8_t logicalChannel, uint16_t panId); -/** @brief ZLL Commissioning Cluster Network Update Request - * - * - * - * @param transaction Ver.: always - * @param extendedPanId Ver.: always - * @param networkUpdateId Ver.: always - * @param logicalChannel Ver.: always - * @param panId Ver.: always - * @param networkAddress Ver.: always - */ -bool emberAfZllCommissioningClusterNetworkUpdateRequestCallback(uint32_t transaction, uint8_t * extendedPanId, - uint8_t networkUpdateId, uint8_t logicalChannel, uint16_t panId, - uint16_t networkAddress); -/** @brief ZLL Commissioning Cluster Reset To Factory New Request - * - * - * - * @param transaction Ver.: always - */ -bool emberAfZllCommissioningClusterResetToFactoryNewRequestCallback(uint32_t transaction); -/** @brief ZLL Commissioning Cluster Scan Request - * - * - * - * @param transaction Ver.: always - * @param zigbeeInformation Ver.: always - * @param zllInformation Ver.: always - */ -bool emberAfZllCommissioningClusterScanRequestCallback(uint32_t transaction, uint8_t zigbeeInformation, uint8_t zllInformation); -/** @brief ZLL Commissioning Cluster Scan Response - * - * - * - * @param transaction Ver.: always - * @param rssiCorrection Ver.: always - * @param zigbeeInformation Ver.: always - * @param zllInformation Ver.: always - * @param keyBitmask Ver.: always - * @param responseId Ver.: always - * @param extendedPanId Ver.: always - * @param networkUpdateId Ver.: always - * @param logicalChannel Ver.: always - * @param panId Ver.: always - * @param networkAddress Ver.: always - * @param numberOfSubDevices Ver.: always - * @param totalGroupIds Ver.: always - * @param endpointId Ver.: always - * @param profileId Ver.: always - * @param deviceId Ver.: always - * @param version Ver.: always - * @param groupIdCount Ver.: always - */ -bool emberAfZllCommissioningClusterScanResponseCallback(uint32_t transaction, uint8_t rssiCorrection, uint8_t zigbeeInformation, - uint8_t zllInformation, uint16_t keyBitmask, uint32_t responseId, - uint8_t * extendedPanId, uint8_t networkUpdateId, uint8_t logicalChannel, - uint16_t panId, uint16_t networkAddress, uint8_t numberOfSubDevices, - uint8_t totalGroupIds, uint8_t endpointId, uint16_t profileId, - uint16_t deviceId, uint8_t version, uint8_t groupIdCount); -/** @brief ZLL Commissioning Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfZllCommissioningClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief ZLL Commissioning Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfZllCommissioningClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief ZLL Commissioning Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfZllCommissioningClusterServerInitCallback(uint8_t endpoint); -/** @brief ZLL Commissioning Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfZllCommissioningClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief ZLL Commissioning Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfZllCommissioningClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief ZLL Commissioning Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfZllCommissioningClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief ZLL Commissioning Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfZllCommissioningClusterServerTickCallback(uint8_t endpoint); - -/** @} END ZLL Commissioning Cluster Callbacks */ - -/** @name Sample Mfg Specific Cluster Cluster Callbacks */ -// @{ - -/** @brief Sample Mfg Specific Cluster Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfSampleMfgSpecificClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Sample Mfg Specific Cluster Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfSampleMfgSpecificClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Sample Mfg Specific Cluster Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfSampleMfgSpecificClusterClientInitCallback(uint8_t endpoint); -/** @brief Sample Mfg Specific Cluster Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfSampleMfgSpecificClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Sample Mfg Specific Cluster Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfSampleMfgSpecificClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Sample Mfg Specific Cluster Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfSampleMfgSpecificClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Sample Mfg Specific Cluster Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfSampleMfgSpecificClusterClientTickCallback(uint8_t endpoint); -/** @brief Sample Mfg Specific Cluster Cluster Command One - * - * - * - * @param argOne Ver.: always - */ -bool emberAfSampleMfgSpecificClusterCommandOneCallback(uint8_t argOne); -/** @brief Sample Mfg Specific Cluster Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfSampleMfgSpecificClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Sample Mfg Specific Cluster Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfSampleMfgSpecificClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Sample Mfg Specific Cluster Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfSampleMfgSpecificClusterServerInitCallback(uint8_t endpoint); -/** @brief Sample Mfg Specific Cluster Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfSampleMfgSpecificClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Sample Mfg Specific Cluster Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfSampleMfgSpecificClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Sample Mfg Specific Cluster Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfSampleMfgSpecificClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Sample Mfg Specific Cluster Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfSampleMfgSpecificClusterServerTickCallback(uint8_t endpoint); - -/** @} END Sample Mfg Specific Cluster Cluster Callbacks */ - -/** @name Sample Mfg Specific Cluster 2 Cluster Callbacks */ -// @{ - -/** @brief Sample Mfg Specific Cluster 2 Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfSampleMfgSpecificCluster2ClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Sample Mfg Specific Cluster 2 Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfSampleMfgSpecificCluster2ClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Sample Mfg Specific Cluster 2 Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfSampleMfgSpecificCluster2ClientInitCallback(uint8_t endpoint); -/** @brief Sample Mfg Specific Cluster 2 Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfSampleMfgSpecificCluster2ClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Sample Mfg Specific Cluster 2 Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfSampleMfgSpecificCluster2ClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Sample Mfg Specific Cluster 2 Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfSampleMfgSpecificCluster2ClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Sample Mfg Specific Cluster 2 Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfSampleMfgSpecificCluster2ClientTickCallback(uint8_t endpoint); -/** @brief Sample Mfg Specific Cluster 2 Cluster Command Two - * - * - * - * @param argOne Ver.: always - */ -bool emberAfSampleMfgSpecificCluster2CommandTwoCallback(uint8_t argOne); -/** @brief Sample Mfg Specific Cluster 2 Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfSampleMfgSpecificCluster2ServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Sample Mfg Specific Cluster 2 Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfSampleMfgSpecificCluster2ServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Sample Mfg Specific Cluster 2 Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfSampleMfgSpecificCluster2ServerInitCallback(uint8_t endpoint); -/** @brief Sample Mfg Specific Cluster 2 Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfSampleMfgSpecificCluster2ServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Sample Mfg Specific Cluster 2 Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfSampleMfgSpecificCluster2ServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Sample Mfg Specific Cluster 2 Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfSampleMfgSpecificCluster2ServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Sample Mfg Specific Cluster 2 Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfSampleMfgSpecificCluster2ServerTickCallback(uint8_t endpoint); - -/** @} END Sample Mfg Specific Cluster 2 Cluster Callbacks */ - -/** @name Configuration Cluster Cluster Callbacks */ -// @{ - -/** @brief Configuration Cluster Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfOtaConfigurationClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Configuration Cluster Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfOtaConfigurationClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Configuration Cluster Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfOtaConfigurationClusterClientInitCallback(uint8_t endpoint); -/** @brief Configuration Cluster Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfOtaConfigurationClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Configuration Cluster Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfOtaConfigurationClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Configuration Cluster Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfOtaConfigurationClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Configuration Cluster Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfOtaConfigurationClusterClientTickCallback(uint8_t endpoint); -/** @brief Configuration Cluster Cluster Lock Tokens - * - * - * - */ -bool emberAfOtaConfigurationClusterLockTokensCallback(void); -/** @brief Configuration Cluster Cluster Read Tokens - * - * - * - * @param token Ver.: always - */ -bool emberAfOtaConfigurationClusterReadTokensCallback(uint16_t token); -/** @brief Configuration Cluster Cluster Return Token - * - * - * - * @param token Ver.: always - * @param data Ver.: always - */ -bool emberAfOtaConfigurationClusterReturnTokenCallback(uint16_t token, uint8_t * data); -/** @brief Configuration Cluster Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfOtaConfigurationClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Configuration Cluster Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfOtaConfigurationClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Configuration Cluster Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfOtaConfigurationClusterServerInitCallback(uint8_t endpoint); -/** @brief Configuration Cluster Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfOtaConfigurationClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Configuration Cluster Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfOtaConfigurationClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Configuration Cluster Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfOtaConfigurationClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Configuration Cluster Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfOtaConfigurationClusterServerTickCallback(uint8_t endpoint); -/** @brief Configuration Cluster Cluster Set Token - * - * - * - * @param token Ver.: always - * @param data Ver.: always - */ -bool emberAfOtaConfigurationClusterSetTokenCallback(uint16_t token, uint8_t * data); -/** @brief Configuration Cluster Cluster Unlock Tokens - * - * - * - * @param data Ver.: always - */ -bool emberAfOtaConfigurationClusterUnlockTokensCallback(uint8_t * data); - -/** @} END Configuration Cluster Cluster Callbacks */ - -/** @name MFGLIB Cluster Cluster Callbacks */ -// @{ - -/** @brief MFGLIB Cluster Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfMfglibClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief MFGLIB Cluster Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfMfglibClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief MFGLIB Cluster Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfMfglibClusterClientInitCallback(uint8_t endpoint); -/** @brief MFGLIB Cluster Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfMfglibClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief MFGLIB Cluster Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfMfglibClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief MFGLIB Cluster Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfMfglibClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief MFGLIB Cluster Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfMfglibClusterClientTickCallback(uint8_t endpoint); -/** @brief MFGLIB Cluster Cluster Rx Mode - * - * - * - * @param channel Ver.: always - * @param power Ver.: always - * @param time Ver.: always - */ -bool emberAfMfglibClusterRxModeCallback(uint8_t channel, int8_t power, uint16_t time); -/** @brief MFGLIB Cluster Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfMfglibClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief MFGLIB Cluster Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfMfglibClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief MFGLIB Cluster Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfMfglibClusterServerInitCallback(uint8_t endpoint); -/** @brief MFGLIB Cluster Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfMfglibClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief MFGLIB Cluster Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfMfglibClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief MFGLIB Cluster Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfMfglibClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief MFGLIB Cluster Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfMfglibClusterServerTickCallback(uint8_t endpoint); -/** @brief MFGLIB Cluster Cluster Stream - * - * - * - * @param channel Ver.: always - * @param power Ver.: always - * @param time Ver.: always - */ -bool emberAfMfglibClusterStreamCallback(uint8_t channel, int8_t power, uint16_t time); -/** @brief MFGLIB Cluster Cluster Tone - * - * - * - * @param channel Ver.: always - * @param power Ver.: always - * @param time Ver.: always - */ -bool emberAfMfglibClusterToneCallback(uint8_t channel, int8_t power, uint16_t time); - -/** @} END MFGLIB Cluster Cluster Callbacks */ - -/** @name SL Works With All Hubs Cluster Callbacks */ -// @{ - -/** @brief SL Works With All Hubs Cluster Aps Ack Enablement Query Response - * - * - * - * @param numberExemptClusters Ver.: always - * @param clusterId Ver.: always - */ -bool emberAfSlWwahClusterApsAckEnablementQueryResponseCallback(uint8_t numberExemptClusters, uint8_t * clusterId); -/** @brief SL Works With All Hubs Cluster Aps Ack Requirement Query - * - * - * - */ -bool emberAfSlWwahClusterApsAckRequirementQueryCallback(void); -/** @brief SL Works With All Hubs Cluster Aps Link Key Authorization Query - * - * - * - * @param clusterId Ver.: always - */ -bool emberAfSlWwahClusterApsLinkKeyAuthorizationQueryCallback(uint16_t clusterId); -/** @brief SL Works With All Hubs Cluster Aps Link Key Authorization Query Response - * - * - * - * @param clusterId Ver.: always - * @param apsLinkKeyAuthStatus Ver.: always - */ -bool emberAfSlWwahClusterApsLinkKeyAuthorizationQueryResponseCallback(uint16_t clusterId, uint8_t apsLinkKeyAuthStatus); -/** @brief SL Works With All Hubs Cluster Clear Binding Table - * - * - * - */ -bool emberAfSlWwahClusterClearBindingTableCallback(void); -/** @brief SL Works With All Hubs Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfSlWwahClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief SL Works With All Hubs Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfSlWwahClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief SL Works With All Hubs Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfSlWwahClusterClientInitCallback(uint8_t endpoint); -/** @brief SL Works With All Hubs Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfSlWwahClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief SL Works With All Hubs Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfSlWwahClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief SL Works With All Hubs Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfSlWwahClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief SL Works With All Hubs Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfSlWwahClusterClientTickCallback(uint8_t endpoint); -/** @brief SL Works With All Hubs Cluster Debug Report Query - * - * - * - * @param debugReportId Ver.: always - */ -bool emberAfSlWwahClusterDebugReportQueryCallback(uint8_t debugReportId); -/** @brief SL Works With All Hubs Cluster Debug Report Query Response - * - * - * - * @param debugReportId Ver.: always - * @param debugReportData Ver.: always - */ -bool emberAfSlWwahClusterDebugReportQueryResponseCallback(uint8_t debugReportId, uint8_t * debugReportData); -/** @brief SL Works With All Hubs Cluster Disable Aps Link Key Authorization - * - * - * - * @param numberExemptClusters Ver.: always - * @param clusterId Ver.: always - */ -bool emberAfSlWwahClusterDisableApsLinkKeyAuthorizationCallback(uint8_t numberExemptClusters, uint8_t * clusterId); -/** @brief SL Works With All Hubs Cluster Disable Configuration Mode - * - * - * - */ -bool emberAfSlWwahClusterDisableConfigurationModeCallback(void); -/** @brief SL Works With All Hubs Cluster Disable Mgmt Leave Without Rejoin - * - * - * - */ -bool emberAfSlWwahClusterDisableMgmtLeaveWithoutRejoinCallback(void); -/** @brief SL Works With All Hubs Cluster Disable Ota Downgrades - * - * - * - */ -bool emberAfSlWwahClusterDisableOtaDowngradesCallback(void); -/** @brief SL Works With All Hubs Cluster Disable Periodic Router Check Ins - * - * - * - */ -bool emberAfSlWwahClusterDisablePeriodicRouterCheckInsCallback(void); -/** @brief SL Works With All Hubs Cluster Disable Touchlink Interpan Message Support - * - * - * - */ -bool emberAfSlWwahClusterDisableTouchlinkInterpanMessageSupportCallback(void); -/** @brief SL Works With All Hubs Cluster Disable Wwah App Event Retry Algorithm - * - * - * - */ -bool emberAfSlWwahClusterDisableWwahAppEventRetryAlgorithmCallback(void); -/** @brief SL Works With All Hubs Cluster Disable Wwah Bad Parent Recovery - * - * - * - */ -bool emberAfSlWwahClusterDisableWwahBadParentRecoveryCallback(void); -/** @brief SL Works With All Hubs Cluster Disable Wwah Parent Classification - * - * - * - */ -bool emberAfSlWwahClusterDisableWwahParentClassificationCallback(void); -/** @brief SL Works With All Hubs Cluster Disable Wwah Rejoin Algorithm - * - * - * - */ -bool emberAfSlWwahClusterDisableWwahRejoinAlgorithmCallback(void); -/** @brief SL Works With All Hubs Cluster Enable Aps Link Key Authorization - * - * - * - * @param numberExemptClusters Ver.: always - * @param clusterId Ver.: always - */ -bool emberAfSlWwahClusterEnableApsLinkKeyAuthorizationCallback(uint8_t numberExemptClusters, uint8_t * clusterId); -/** @brief SL Works With All Hubs Cluster Enable Configuration Mode - * - * - * - */ -bool emberAfSlWwahClusterEnableConfigurationModeCallback(void); -/** @brief SL Works With All Hubs Cluster Enable Periodic Router Check Ins - * - * - * - * @param checkInInterval Ver.: always - */ -bool emberAfSlWwahClusterEnablePeriodicRouterCheckInsCallback(uint16_t checkInInterval); -/** @brief SL Works With All Hubs Cluster Enable Tc Security On Ntwk Key Rotation - * - * - * - */ -bool emberAfSlWwahClusterEnableTcSecurityOnNtwkKeyRotationCallback(void); -/** @brief SL Works With All Hubs Cluster Enable Wwah App Event Retry Algorithm - * - * - * - * @param firstBackoffTimeSeconds Ver.: always - * @param backoffSeqCommonRatio Ver.: always - * @param maxBackoffTimeSeconds Ver.: always - * @param maxRedeliveryAttempts Ver.: always - */ -bool emberAfSlWwahClusterEnableWwahAppEventRetryAlgorithmCallback(uint8_t firstBackoffTimeSeconds, uint8_t backoffSeqCommonRatio, - uint32_t maxBackoffTimeSeconds, uint8_t maxRedeliveryAttempts); -/** @brief SL Works With All Hubs Cluster Enable Wwah Bad Parent Recovery - * - * - * - */ -bool emberAfSlWwahClusterEnableWwahBadParentRecoveryCallback(void); -/** @brief SL Works With All Hubs Cluster Enable Wwah Parent Classification - * - * - * - */ -bool emberAfSlWwahClusterEnableWwahParentClassificationCallback(void); -/** @brief SL Works With All Hubs Cluster Enable Wwah Rejoin Algorithm - * - * - * - * @param fastRejoinTimeoutSeconds Ver.: always - * @param durationBetweenRejoinsSeconds Ver.: always - * @param fastRejoinFirstBackoffSeconds Ver.: always - * @param maxBackoffTimeSeconds Ver.: always - * @param maxBackoffIterations Ver.: always - */ -bool emberAfSlWwahClusterEnableWwahRejoinAlgorithmCallback(uint16_t fastRejoinTimeoutSeconds, - uint16_t durationBetweenRejoinsSeconds, - uint16_t fastRejoinFirstBackoffSeconds, uint16_t maxBackoffTimeSeconds, - uint16_t maxBackoffIterations); -/** @brief SL Works With All Hubs Cluster New Debug Report Notification - * - * - * - * @param debugReportId Ver.: always - * @param debugReportSize Ver.: always - */ -bool emberAfSlWwahClusterNewDebugReportNotificationCallback(uint8_t debugReportId, uint32_t debugReportSize); -/** @brief SL Works With All Hubs Cluster Power Descriptor Change - * - * - * - * @param currentPowerMode Ver.: always - * @param availablePowerSources Ver.: always - * @param currentPowerSource Ver.: always - * @param currentPowerSourceLevel Ver.: always - */ -bool emberAfSlWwahClusterPowerDescriptorChangeCallback(uint32_t currentPowerMode, uint32_t availablePowerSources, - uint32_t currentPowerSource, uint32_t currentPowerSourceLevel); -/** @brief SL Works With All Hubs Cluster Powering Off Notification - * - * - * - * @param powerNotificationReason Ver.: always - * @param manufacturerId Ver.: always - * @param manufacturerReasonLength Ver.: always - * @param manufacturerReason Ver.: always - */ -bool emberAfSlWwahClusterPoweringOffNotificationCallback(uint8_t powerNotificationReason, uint16_t manufacturerId, - uint8_t manufacturerReasonLength, uint8_t * manufacturerReason); -/** @brief SL Works With All Hubs Cluster Powering On Notification - * - * - * - * @param powerNotificationReason Ver.: always - * @param manufacturerId Ver.: always - * @param manufacturerReasonLength Ver.: always - * @param manufacturerReason Ver.: always - */ -bool emberAfSlWwahClusterPoweringOnNotificationCallback(uint8_t powerNotificationReason, uint16_t manufacturerId, - uint8_t manufacturerReasonLength, uint8_t * manufacturerReason); -/** @brief SL Works With All Hubs Cluster Remove Aps Acks On Unicasts Requirement - * - * - * - */ -bool emberAfSlWwahClusterRemoveApsAcksOnUnicastsRequirementCallback(void); -/** @brief SL Works With All Hubs Cluster Request New Aps Link Key - * - * - * - */ -bool emberAfSlWwahClusterRequestNewApsLinkKeyCallback(void); -/** @brief SL Works With All Hubs Cluster Request Time - * - * - * - */ -bool emberAfSlWwahClusterRequestTimeCallback(void); -/** @brief SL Works With All Hubs Cluster Require Aps Acks On Unicasts - * - * - * - * @param numberExemptClusters Ver.: always - * @param clusterId Ver.: always - */ -bool emberAfSlWwahClusterRequireApsAcksOnUnicastsCallback(uint8_t numberExemptClusters, uint8_t * clusterId); -/** @brief SL Works With All Hubs Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfSlWwahClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief SL Works With All Hubs Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfSlWwahClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief SL Works With All Hubs Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfSlWwahClusterServerInitCallback(uint8_t endpoint); -/** @brief SL Works With All Hubs Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfSlWwahClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief SL Works With All Hubs Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfSlWwahClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief SL Works With All Hubs Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfSlWwahClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief SL Works With All Hubs Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfSlWwahClusterServerTickCallback(uint8_t endpoint); -/** @brief SL Works With All Hubs Cluster Set Ias Zone Enrollment Method - * - * - * - * @param enrollmentMode Ver.: always - */ -bool emberAfSlWwahClusterSetIasZoneEnrollmentMethodCallback(uint8_t enrollmentMode); -/** @brief SL Works With All Hubs Cluster Set Mac Poll Failure Wait Time - * - * - * - * @param waitTime Ver.: always - */ -bool emberAfSlWwahClusterSetMacPollFailureWaitTimeCallback(uint8_t waitTime); -/** @brief SL Works With All Hubs Cluster Set Pending Network Update - * - * - * - * @param channel Ver.: always - * @param panId Ver.: always - */ -bool emberAfSlWwahClusterSetPendingNetworkUpdateCallback(uint8_t channel, uint16_t panId); -/** @brief SL Works With All Hubs Cluster Short Address Change - * - * - * - * @param deviceEui64 Ver.: always - * @param deviceShort Ver.: always - */ -bool emberAfSlWwahClusterShortAddressChangeCallback(uint8_t * deviceEui64, uint16_t deviceShort); -/** @brief SL Works With All Hubs Cluster Survey Beacons - * - * - * - * @param standardBeacons Ver.: always - */ -bool emberAfSlWwahClusterSurveyBeaconsCallback(uint8_t standardBeacons); -/** @brief SL Works With All Hubs Cluster Survey Beacons Response - * - * - * - * @param numberOfBeacons Ver.: always - * @param beacon Ver.: always - */ -bool emberAfSlWwahClusterSurveyBeaconsResponseCallback(uint8_t numberOfBeacons, uint8_t * beacon); -/** @brief SL Works With All Hubs Cluster Trust Center For Cluster Server Query - * - * - * - */ -bool emberAfSlWwahClusterTrustCenterForClusterServerQueryCallback(void); -/** @brief SL Works With All Hubs Cluster Trust Center For Cluster Server Query Response - * - * - * - * @param numberOfClusters Ver.: always - * @param clusterId Ver.: always - */ -bool emberAfSlWwahClusterTrustCenterForClusterServerQueryResponseCallback(uint8_t numberOfClusters, uint8_t * clusterId); -/** @brief SL Works With All Hubs Cluster Use Trust Center For Cluster Server - * - * - * - * @param numberOfClusters Ver.: always - * @param clusterId Ver.: always - */ -bool emberAfSlWwahClusterUseTrustCenterForClusterServerCallback(uint8_t numberOfClusters, uint8_t * clusterId); -/** @brief SL Works With All Hubs Cluster Use Trust Center For Cluster Server Response - * - * - * - * @param status Ver.: always - * @param clusterStatusLength Ver.: always - * @param clusterStatus Ver.: always - */ -bool emberAfSlWwahClusterUseTrustCenterForClusterServerResponseCallback(uint8_t status, uint8_t clusterStatusLength, - uint8_t * clusterStatus); - -/** @} END SL Works With All Hubs Cluster Callbacks */ - -/** @name Update TC Link Key Plugin Callbacks */ -// @{ - -/** @brief Status - * - * This callback is fired when the Update Link Key exchange process is updated - * with a status from the stack. Implementations will know that the Update TC - * Link Key plugin has completed its link key request when the keyStatus - * parameter is EMBER_VERIFY_LINK_KEY_SUCCESS. - * - * @param keyStatus An ::EmberKeyStatus value describing the success or failure - * of the key exchange process. Ver.: always - */ -void emberAfPluginUpdateTcLinkKeyStatusCallback(EmberKeyStatus keyStatus); -/** @} END Update TC Link Key Plugin Callbacks */ - -/** @name Network Steering Plugin Callbacks */ -// @{ - -/** @brief Complete - * - * This callback is fired when the Network Steering plugin is complete. - * - * @param status On success this will be set to EMBER_SUCCESS to indicate a - * network was joined successfully. On failure this will be the status code of - * the last join or scan attempt. Ver.: always - * @param totalBeacons The total number of 802.15.4 beacons that were heard, - * including beacons from different devices with the same PAN ID. Ver.: always - * @param joinAttempts The number of join attempts that were made to get onto - * an open Zigbee network. Ver.: always - * @param finalState The finishing state of the network steering process. From - * this, one is able to tell on which channel mask and with which key the - * process was complete. Ver.: always - */ -void emberAfPluginNetworkSteeringCompleteCallback(EmberStatus status, uint8_t totalBeacons, uint8_t joinAttempts, - uint8_t finalState); -/** @brief Get Power For Radio Channel - * - * This callback is fired when the Network Steering plugin needs to set the - * power level. The application has the ability to change the max power level - * used for this particular channel. - * - * @param channel The channel that the plugin is inquiring about the power - * level. Ver.: always - */ -int8_t emberAfPluginNetworkSteeringGetPowerForRadioChannelCallback(uint8_t channel); -/** @brief Get Distributed Key - * - * This callback is fired when the Network Steering plugin needs to set the distributed - * key. The application set the distributed key from Zigbee Alliance thru this callback - * or the network steering will use the default test key. - * - * @param pointer to the distributed key struct - * @return true if the key is loaded successfully, otherwise false. - * level. Ver.: always - */ -bool emberAfPluginNetworkSteeringGetDistributedKeyCallback(EmberKeyData * key); -/** @brief Get Node Type - * - * This callback allows the application to set the node type that the network - * steering process will use in joining a network. - * - * @param state The current ::EmberAfPluginNetworkSteeringJoiningState. - * - * @return An ::EmberNodeType value that the network steering process will - * try to join a network as. - */ -EmberNodeType emberAfPluginNetworkSteeringGetNodeTypeCallback(EmberAfPluginNetworkSteeringJoiningState state); -/** @} END Network Steering Plugin Callbacks */ - -/** @name HAL Library Plugin Callbacks */ -// @{ - -/** - * @brief Called whenever the radio is powered on. - */ -void halRadioPowerUpHandler(void); -/** - * @brief Called whenever the radio is powered off. - */ -void halRadioPowerDownHandler(void); -/** - * @brief Called whenever the microcontroller enters/exits a idle/sleep mode - * - * @param enter True if entering idle/sleep, False if exiting - * @param sleepMode Idle/sleep mode - */ -void halSleepCallback(bool enter, SleepModes sleepMode); -/** @} END HAL Library Plugin Callbacks */ - -/** @} END addtogroup */ -#endif // SILABS_EMBER_AF_CALLBACK_PROTOTYPES +bool emberAfStartMoveCallback(); diff --git a/examples/lock-app/lock-common/gen/client-command-macro.h b/examples/lock-app/lock-common/gen/client-command-macro.h new file mode 100644 index 00000000000000..f1b0c4633a2b14 --- /dev/null +++ b/examples/lock-app/lock-common/gen/client-command-macro.h @@ -0,0 +1,6165 @@ + +/* + * + * 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. + */ + +// Prevent multiple inclusion +#pragma once + +/** @brief Command description for ReadAttributes + * + * Command: ReadAttributes + * @param attributeIds ATTRIBUTE_ID [] + * @param attributeIdsLen int + */ +#define emberAfFillCommandGlobalReadAttributes(clusterId, attributeIds, attributeIdsLen) \ + emberAfFillExternalBuffer(mask, clusterId, ZCL_READ_ATTRIBUTES_COMMAND_ID, "b", attributeIds, attributeIdsLen); + +/** @brief Command description for ReadAttributesResponse + * + * Command: ReadAttributesResponse + * @param readAttributeStatusRecords ReadAttributeStatusRecord [] + * @param readAttributeStatusRecordsLen int + */ +#define emberAfFillCommandGlobalReadAttributesResponse(clusterId, readAttributeStatusRecords, readAttributeStatusRecordsLen) \ + emberAfFillExternalBuffer(mask, clusterId, ZCL_READ_ATTRIBUTES_RESPONSE_COMMAND_ID, "b", readAttributeStatusRecords, \ + readAttributeStatusRecordsLen); + +/** @brief Command description for WriteAttributes + * + * Command: WriteAttributes + * @param writeAttributeRecords WriteAttributeRecord [] + * @param writeAttributeRecordsLen int + */ +#define emberAfFillCommandGlobalWriteAttributes(clusterId, writeAttributeRecords, writeAttributeRecordsLen) \ + emberAfFillExternalBuffer(mask, clusterId, ZCL_WRITE_ATTRIBUTES_COMMAND_ID, "b", writeAttributeRecords, \ + writeAttributeRecordsLen); + +/** @brief Command description for WriteAttributesUndivided + * + * Command: WriteAttributesUndivided + * @param writeAttributeRecords WriteAttributeRecord [] + * @param writeAttributeRecordsLen int + */ +#define emberAfFillCommandGlobalWriteAttributesUndivided(clusterId, writeAttributeRecords, writeAttributeRecordsLen) \ + emberAfFillExternalBuffer(mask, clusterId, ZCL_WRITE_ATTRIBUTES_UNDIVIDED_COMMAND_ID, "b", writeAttributeRecords, \ + writeAttributeRecordsLen); + +/** @brief Command description for WriteAttributesResponse + * + * Command: WriteAttributesResponse + * @param writeAttributeStatusRecords WriteAttributeStatusRecord [] + * @param writeAttributeStatusRecordsLen int + */ +#define emberAfFillCommandGlobalWriteAttributesResponse(clusterId, writeAttributeStatusRecords, writeAttributeStatusRecordsLen) \ + emberAfFillExternalBuffer(mask, clusterId, ZCL_WRITE_ATTRIBUTES_RESPONSE_COMMAND_ID, "b", writeAttributeStatusRecords, \ + writeAttributeStatusRecordsLen); + +/** @brief Command description for WriteAttributesNoResponse + * + * Command: WriteAttributesNoResponse + * @param writeAttributeRecords WriteAttributeRecord [] + * @param writeAttributeRecordsLen int + */ +#define emberAfFillCommandGlobalWriteAttributesNoResponse(clusterId, writeAttributeRecords, writeAttributeRecordsLen) \ + emberAfFillExternalBuffer(mask, clusterId, ZCL_WRITE_ATTRIBUTES_NO_RESPONSE_COMMAND_ID, "b", writeAttributeRecords, \ + writeAttributeRecordsLen); + +/** @brief Command description for ConfigureReporting + * + * Command: ConfigureReporting + * @param configureReportingRecords ConfigureReportingRecord [] + * @param configureReportingRecordsLen int + */ +#define emberAfFillCommandGlobalConfigureReporting(clusterId, configureReportingRecords, configureReportingRecordsLen) \ + emberAfFillExternalBuffer(mask, clusterId, ZCL_CONFIGURE_REPORTING_COMMAND_ID, "b", configureReportingRecords, \ + configureReportingRecordsLen); + +/** @brief Command description for ConfigureReportingResponse + * + * Command: ConfigureReportingResponse + * @param configureReportingStatusRecords ConfigureReportingStatusRecord [] + * @param configureReportingStatusRecordsLen int + */ +#define emberAfFillCommandGlobalConfigureReportingResponse(clusterId, configureReportingStatusRecords, \ + configureReportingStatusRecordsLen) \ + emberAfFillExternalBuffer(mask, clusterId, ZCL_CONFIGURE_REPORTING_RESPONSE_COMMAND_ID, "b", configureReportingStatusRecords, \ + configureReportingStatusRecordsLen); + +/** @brief Command description for ReadReportingConfiguration + * + * Command: ReadReportingConfiguration + * @param readReportingConfigurationAttributeRecords ReadReportingConfigurationAttributeRecord [] + * @param readReportingConfigurationAttributeRecordsLen int + */ +#define emberAfFillCommandGlobalReadReportingConfiguration(clusterId, readReportingConfigurationAttributeRecords, \ + readReportingConfigurationAttributeRecordsLen) \ + emberAfFillExternalBuffer(mask, clusterId, ZCL_READ_REPORTING_CONFIGURATION_COMMAND_ID, "b", \ + readReportingConfigurationAttributeRecords, readReportingConfigurationAttributeRecordsLen); + +/** @brief Command description for ReadReportingConfigurationResponse + * + * Command: ReadReportingConfigurationResponse + * @param readReportingConfigurationRecords ReadReportingConfigurationRecord [] + * @param readReportingConfigurationRecordsLen int + */ +#define emberAfFillCommandGlobalReadReportingConfigurationResponse(clusterId, readReportingConfigurationRecords, \ + readReportingConfigurationRecordsLen) \ + emberAfFillExternalBuffer(mask, clusterId, ZCL_READ_REPORTING_CONFIGURATION_RESPONSE_COMMAND_ID, "b", \ + readReportingConfigurationRecords, readReportingConfigurationRecordsLen); + +/** @brief Command description for ReportAttributes + * + * Command: ReportAttributes + * @param reportAttributeRecords ReportAttributeRecord [] + * @param reportAttributeRecordsLen int + */ +#define emberAfFillCommandGlobalReportAttributes(clusterId, reportAttributeRecords, reportAttributeRecordsLen) \ + emberAfFillExternalBuffer(mask, clusterId, ZCL_REPORT_ATTRIBUTES_COMMAND_ID, "b", reportAttributeRecords, \ + reportAttributeRecordsLen); + +/** @brief Command description for DefaultResponse + * + * Command: DefaultResponse + * @param commandId INT8U + * @param status Status + */ +#define emberAfFillCommandGlobalDefaultResponse(clusterId, commandId, status) \ + emberAfFillExternalBuffer(mask, clusterId, ZCL_DEFAULT_RESPONSE_COMMAND_ID, "uu", commandId, status); + +/** @brief Command description for DiscoverAttributes + * + * Command: DiscoverAttributes + * @param startId ATTRIBUTE_ID + * @param maxAttributeIds INT8U + */ +#define emberAfFillCommandGlobalDiscoverAttributes(clusterId, startId, maxAttributeIds) \ + emberAfFillExternalBuffer(mask, clusterId, ZCL_DISCOVER_ATTRIBUTES_COMMAND_ID, "uu", startId, maxAttributeIds); + +/** @brief Command description for DiscoverAttributesResponse + * + * Command: DiscoverAttributesResponse + * @param discoveryComplete INT8U + * @param discoverAttributesInfoRecords DiscoverAttributesInfoRecord [] + * @param discoverAttributesInfoRecordsLen int + */ +#define emberAfFillCommandGlobalDiscoverAttributesResponse(clusterId, discoveryComplete, discoverAttributesInfoRecords, \ + discoverAttributesInfoRecordsLen) \ + emberAfFillExternalBuffer(mask, clusterId, ZCL_DISCOVER_ATTRIBUTES_RESPONSE_COMMAND_ID, "ub", discoveryComplete, \ + discoverAttributesInfoRecords, discoverAttributesInfoRecordsLen); + +/** @brief Command description for ReadAttributesStructured + * + * Command: ReadAttributesStructured + * @param readStructuredAttributeRecords ReadStructuredAttributeRecord [] + * @param readStructuredAttributeRecordsLen int + */ +#define emberAfFillCommandGlobalReadAttributesStructured(clusterId, readStructuredAttributeRecords, \ + readStructuredAttributeRecordsLen) \ + emberAfFillExternalBuffer(mask, clusterId, ZCL_READ_ATTRIBUTES_STRUCTURED_COMMAND_ID, "b", readStructuredAttributeRecords, \ + readStructuredAttributeRecordsLen); + +/** @brief Command description for WriteAttributesStructured + * + * Command: WriteAttributesStructured + * @param writeStructuredAttributeRecords WriteStructuredAttributeRecord [] + * @param writeStructuredAttributeRecordsLen int + */ +#define emberAfFillCommandGlobalWriteAttributesStructured(clusterId, writeStructuredAttributeRecords, \ + writeStructuredAttributeRecordsLen) \ + emberAfFillExternalBuffer(mask, clusterId, ZCL_WRITE_ATTRIBUTES_STRUCTURED_COMMAND_ID, "b", writeStructuredAttributeRecords, \ + writeStructuredAttributeRecordsLen); + +/** @brief Command description for WriteAttributesStructuredResponse + * + * Command: WriteAttributesStructuredResponse + * @param writeStructuredAttributeStatusRecords WriteStructuredAttributeStatusRecord [] + * @param writeStructuredAttributeStatusRecordsLen int + */ +#define emberAfFillCommandGlobalWriteAttributesStructuredResponse(clusterId, writeStructuredAttributeStatusRecords, \ + writeStructuredAttributeStatusRecordsLen) \ + emberAfFillExternalBuffer(mask, clusterId, ZCL_WRITE_ATTRIBUTES_STRUCTURED_RESPONSE_COMMAND_ID, "b", \ + writeStructuredAttributeStatusRecords, writeStructuredAttributeStatusRecordsLen); + +/** @brief Command description for DiscoverCommandsReceived + * + * Command: DiscoverCommandsReceived + * @param startCommandId INT8U + * @param maxCommandIds INT8U + */ +#define emberAfFillCommandGlobalDiscoverCommandsReceived(clusterId, startCommandId, maxCommandIds) \ + emberAfFillExternalBuffer(mask, clusterId, ZCL_DISCOVER_COMMANDS_RECEIVED_COMMAND_ID, "uu", startCommandId, maxCommandIds); + +/** @brief Command description for DiscoverCommandsReceivedResponse + * + * Command: DiscoverCommandsReceivedResponse + * @param discoveryComplete INT8U + * @param commandIds INT8U [] + * @param commandIdsLen int + */ +#define emberAfFillCommandGlobalDiscoverCommandsReceivedResponse(clusterId, discoveryComplete, commandIds, commandIdsLen) \ + emberAfFillExternalBuffer(mask, clusterId, ZCL_DISCOVER_COMMANDS_RECEIVED_RESPONSE_COMMAND_ID, "ub", discoveryComplete, \ + commandIds, commandIdsLen); + +/** @brief Command description for DiscoverCommandsGenerated + * + * Command: DiscoverCommandsGenerated + * @param startCommandId INT8U + * @param maxCommandIds INT8U + */ +#define emberAfFillCommandGlobalDiscoverCommandsGenerated(clusterId, startCommandId, maxCommandIds) \ + emberAfFillExternalBuffer(mask, clusterId, ZCL_DISCOVER_COMMANDS_GENERATED_COMMAND_ID, "uu", startCommandId, maxCommandIds); + +/** @brief Command description for DiscoverCommandsGeneratedResponse + * + * Command: DiscoverCommandsGeneratedResponse + * @param discoveryComplete INT8U + * @param commandIds INT8U [] + * @param commandIdsLen int + */ +#define emberAfFillCommandGlobalDiscoverCommandsGeneratedResponse(clusterId, discoveryComplete, commandIds, commandIdsLen) \ + emberAfFillExternalBuffer(mask, clusterId, ZCL_DISCOVER_COMMANDS_GENERATED_RESPONSE_COMMAND_ID, "ub", discoveryComplete, \ + commandIds, commandIdsLen); + +/** @brief Command description for DiscoverAttributesExtended + * + * Command: DiscoverAttributesExtended + * @param startId ATTRIBUTE_ID + * @param maxAttributeIds INT8U + */ +#define emberAfFillCommandGlobalDiscoverAttributesExtended(clusterId, startId, maxAttributeIds) \ + emberAfFillExternalBuffer(mask, clusterId, ZCL_DISCOVER_ATTRIBUTES_EXTENDED_COMMAND_ID, "uu", startId, maxAttributeIds); + +/** @brief Command description for DiscoverAttributesExtendedResponse + * + * Command: DiscoverAttributesExtendedResponse + * @param discoveryComplete INT8U + * @param extendedDiscoverAttributesInfoRecords ExtendedDiscoverAttributesInfoRecord [] + * @param extendedDiscoverAttributesInfoRecordsLen int + */ +#define emberAfFillCommandGlobalDiscoverAttributesExtendedResponse( \ + clusterId, discoveryComplete, extendedDiscoverAttributesInfoRecords, extendedDiscoverAttributesInfoRecordsLen) \ + emberAfFillExternalBuffer(mask, clusterId, ZCL_DISCOVER_ATTRIBUTES_EXTENDED_RESPONSE_COMMAND_ID, "ub", discoveryComplete, \ + extendedDiscoverAttributesInfoRecords, extendedDiscoverAttributesInfoRecordsLen); + +/** @brief Command description for ResetToFactoryDefaults + * + * Command: ResetToFactoryDefaults + */ +#define emberAfFillCommandBasicClusterResetToFactoryDefaults() \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_RESET_TO_FACTORY_DEFAULTS_COMMAND_ID, "", ); + +/** @brief Command description for Identify + * + * Command: Identify + * @param identifyTime INT16U + * @param timeout INT16U + */ +#define emberAfFillCommandIdentifyClusterIdentify(identifyTime, timeout) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_IDENTIFY_COMMAND_ID, "uu", identifyTime, timeout); + +/** @brief Command description for IdentifyQuery + * + * Command: IdentifyQuery + */ +#define emberAfFillCommandIdentifyClusterIdentifyQuery() \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_IDENTIFY_QUERY_COMMAND_ID, "", ); + +/** @brief Command description for EZModeInvoke + * + * Command: EZModeInvoke + * @param action BITMAP8 + */ +#define emberAfFillCommandIdentifyClusterEZModeInvoke(action) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_EZ_MODE_INVOKE_COMMAND_ID, "u", action); + +/** @brief Command description for UpdateCommissionState + * + * Command: UpdateCommissionState + * @param action ENUM8 + * @param commissionStateMask BITMAP8 + */ +#define emberAfFillCommandIdentifyClusterUpdateCommissionState(action, commissionStateMask) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_UPDATE_COMMISSION_STATE_COMMAND_ID, "uu", action, commissionStateMask); + +/** @brief Command description for TriggerEffect + * + * Command: TriggerEffect + * @param effectId IdentifyEffectIdentifier + * @param effectVariant IdentifyEffectVariant + */ +#define emberAfFillCommandIdentifyClusterTriggerEffect(effectId, effectVariant) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_TRIGGER_EFFECT_COMMAND_ID, "uu", effectId, effectVariant); + +/** @brief Command description for AddGroup + * + * Command: AddGroup + * @param groupId INT16U + * @param status Status + * @param groupName CHAR_STRING + * @param groupId INT16U + */ +#define emberAfFillCommandGroupsClusterAddGroup(groupId, status, groupName, groupId) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_ADD_GROUP_COMMAND_ID, "uuuu", groupId, status, groupName, groupId); + +/** @brief Command description for ViewGroup + * + * Command: ViewGroup + * @param groupId INT16U + * @param status Status + * @param groupId INT16U + * @param groupName CHAR_STRING + */ +#define emberAfFillCommandGroupsClusterViewGroup(groupId, status, groupId, groupName) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_VIEW_GROUP_COMMAND_ID, "uuuu", groupId, status, groupId, groupName); + +/** @brief Command description for GetGroupMembership + * + * Command: GetGroupMembership + * @param groupCount INT8U + * @param capacity INT8U + * @param groupList INT16U [] + * @param groupListLen int + * @param groupCount INT8U + * @param groupList INT16U [] + * @param groupListLen int + */ +#define emberAfFillCommandGroupsClusterGetGroupMembership(groupCount, capacity, groupList, groupListLen, groupCount, groupList, \ + groupListLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_GET_GROUP_MEMBERSHIP_COMMAND_ID, "uubub", groupCount, capacity, groupList, groupListLen, \ + groupCount, groupList, groupListLen); + +/** @brief Command description for RemoveGroup + * + * Command: RemoveGroup + * @param groupId INT16U + * @param status Status + * @param groupId INT16U + */ +#define emberAfFillCommandGroupsClusterRemoveGroup(groupId, status, groupId) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_REMOVE_GROUP_COMMAND_ID, "uuu", groupId, status, groupId); + +/** @brief Command description for RemoveAllGroups + * + * Command: RemoveAllGroups + */ +#define emberAfFillCommandGroupsClusterRemoveAllGroups() \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_REMOVE_ALL_GROUPS_COMMAND_ID, "", ); + +/** @brief Command description for AddGroupIfIdentifying + * + * Command: AddGroupIfIdentifying + * @param groupId INT16U + * @param groupName CHAR_STRING + */ +#define emberAfFillCommandGroupsClusterAddGroupIfIdentifying(groupId, groupName) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_ADD_GROUP_IF_IDENTIFYING_COMMAND_ID, "uu", groupId, groupName); + +/** @brief Command description for AddScene + * + * Command: AddScene + * @param groupId INT16U + * @param status Status + * @param sceneId INT8U + * @param groupId INT16U + * @param transitionTime INT16U + * @param sceneId INT8U + * @param sceneName CHAR_STRING + * @param extensionFieldSets SceneExtensionFieldSet [] + * @param extensionFieldSetsLen int + */ +#define emberAfFillCommandScenesClusterAddScene(groupId, status, sceneId, groupId, transitionTime, sceneId, sceneName, \ + extensionFieldSets, extensionFieldSetsLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_ADD_SCENE_COMMAND_ID, "uuuuuuub", groupId, status, sceneId, groupId, transitionTime, sceneId, \ + sceneName, extensionFieldSets, extensionFieldSetsLen); + +/** @brief Command description for ViewScene + * + * Command: ViewScene + * @param groupId INT16U + * @param status Status + * @param sceneId INT8U + * @param groupId INT16U + * @param sceneId INT8U + * @param transitionTime INT16U + * @param sceneName CHAR_STRING + * @param extensionFieldSets SceneExtensionFieldSet [] + * @param extensionFieldSetsLen int + */ +#define emberAfFillCommandScenesClusterViewScene(groupId, status, sceneId, groupId, sceneId, transitionTime, sceneName, \ + extensionFieldSets, extensionFieldSetsLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_VIEW_SCENE_COMMAND_ID, "uuuuuuub", groupId, status, sceneId, groupId, sceneId, transitionTime, \ + sceneName, extensionFieldSets, extensionFieldSetsLen); + +/** @brief Command description for RemoveScene + * + * Command: RemoveScene + * @param groupId INT16U + * @param status Status + * @param sceneId INT8U + * @param groupId INT16U + * @param sceneId INT8U + */ +#define emberAfFillCommandScenesClusterRemoveScene(groupId, status, sceneId, groupId, sceneId) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_REMOVE_SCENE_COMMAND_ID, "uuuuu", groupId, status, sceneId, groupId, sceneId); + +/** @brief Command description for RemoveAllScenes + * + * Command: RemoveAllScenes + * @param groupId INT16U + * @param status Status + * @param groupId INT16U + */ +#define emberAfFillCommandScenesClusterRemoveAllScenes(groupId, status, groupId) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_REMOVE_ALL_SCENES_COMMAND_ID, "uuu", groupId, status, groupId); + +/** @brief Command description for StoreScene + * + * Command: StoreScene + * @param groupId INT16U + * @param status Status + * @param sceneId INT8U + * @param groupId INT16U + * @param sceneId INT8U + */ +#define emberAfFillCommandScenesClusterStoreScene(groupId, status, sceneId, groupId, sceneId) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_STORE_SCENE_COMMAND_ID, "uuuuu", groupId, status, sceneId, groupId, sceneId); + +/** @brief Command description for RecallScene + * + * Command: RecallScene + * @param groupId INT16U + * @param sceneId INT8U + * @param transitionTime INT16U + */ +#define emberAfFillCommandScenesClusterRecallScene(groupId, sceneId, transitionTime) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_RECALL_SCENE_COMMAND_ID, "uuu", groupId, sceneId, transitionTime); + +/** @brief Command description for GetSceneMembership + * + * Command: GetSceneMembership + * @param groupId INT16U + * @param status Status + * @param capacity INT8U + * @param groupId INT16U + * @param sceneCount INT8U + * @param sceneList INT8U [] + * @param sceneListLen int + */ +#define emberAfFillCommandScenesClusterGetSceneMembership(groupId, status, capacity, groupId, sceneCount, sceneList, sceneListLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_GET_SCENE_MEMBERSHIP_COMMAND_ID, "uuuuub", groupId, status, capacity, groupId, sceneCount, \ + sceneList, sceneListLen); + +/** @brief Command description for EnhancedAddScene + * + * Command: EnhancedAddScene + * @param groupId INT16U + * @param status Status + * @param sceneId INT8U + * @param groupId INT16U + * @param transitionTime INT16U + * @param sceneId INT8U + * @param sceneName CHAR_STRING + * @param extensionFieldSets SceneExtensionFieldSet [] + * @param extensionFieldSetsLen int + */ +#define emberAfFillCommandScenesClusterEnhancedAddScene(groupId, status, sceneId, groupId, transitionTime, sceneId, sceneName, \ + extensionFieldSets, extensionFieldSetsLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_ENHANCED_ADD_SCENE_COMMAND_ID, "uuuuuuub", groupId, status, sceneId, groupId, transitionTime, \ + sceneId, sceneName, extensionFieldSets, extensionFieldSetsLen); + +/** @brief Command description for EnhancedViewScene + * + * Command: EnhancedViewScene + * @param groupId INT16U + * @param status Status + * @param sceneId INT8U + * @param groupId INT16U + * @param sceneId INT8U + * @param transitionTime INT16U + * @param sceneName CHAR_STRING + * @param extensionFieldSets SceneExtensionFieldSet [] + * @param extensionFieldSetsLen int + */ +#define emberAfFillCommandScenesClusterEnhancedViewScene(groupId, status, sceneId, groupId, sceneId, transitionTime, sceneName, \ + extensionFieldSets, extensionFieldSetsLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_ENHANCED_VIEW_SCENE_COMMAND_ID, "uuuuuuub", groupId, status, sceneId, groupId, sceneId, \ + transitionTime, sceneName, extensionFieldSets, extensionFieldSetsLen); + +/** @brief Command description for CopyScene + * + * Command: CopyScene + * @param mode ScenesCopyMode + * @param status Status + * @param groupIdFrom INT16U + * @param groupIdFrom INT16U + * @param sceneIdFrom INT8U + * @param sceneIdFrom INT8U + * @param groupIdTo INT16U + * @param sceneIdTo INT8U + */ +#define emberAfFillCommandScenesClusterCopyScene(mode, status, groupIdFrom, groupIdFrom, sceneIdFrom, sceneIdFrom, groupIdTo, \ + sceneIdTo) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_COPY_SCENE_COMMAND_ID, "uuuuuuuu", mode, status, groupIdFrom, groupIdFrom, sceneIdFrom, \ + sceneIdFrom, groupIdTo, sceneIdTo); + +/** @brief Command description for Off + * + * Command: Off + */ +#define emberAfFillCommandOn \ + / \ + offClusterOff() emberAfFillExternalBuffer(mask, \ + \ + ZCL_OFF_COMMAND_ID, "", ); + +/** @brief Command description for On + * + * Command: On + */ +#define emberAfFillCommandOn \ + / \ + offClusterOn() emberAfFillExternalBuffer(mask, \ + \ + ZCL_ON_COMMAND_ID, "", ); + +/** @brief Command description for Toggle + * + * Command: Toggle + */ +#define emberAfFillCommandOn \ + / \ + offClusterToggle() emberAfFillExternalBuffer(mask, \ + \ + ZCL_TOGGLE_COMMAND_ID, "", ); + +/** @brief Command description for OffWithEffect + * + * Command: OffWithEffect + * @param effectId OnOffEffectIdentifier + * @param effectVariant ENUM8 + */ +#define emberAfFillCommandOn \ + / \ + offClusterOffWithEffect(effectId, effectVariant) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_OFF_WITH_EFFECT_COMMAND_ID, "uu", effectId, effectVariant); + +/** @brief Command description for OnWithRecallGlobalScene + * + * Command: OnWithRecallGlobalScene + */ +#define emberAfFillCommandOn \ + / \ + offClusterOnWithRecallGlobalScene() emberAfFillExternalBuffer(mask, \ + \ + ZCL_ON_WITH_RECALL_GLOBAL_SCENE_COMMAND_ID, "", ); + +/** @brief Command description for OnWithTimedOff + * + * Command: OnWithTimedOff + * @param onOffControl OnOffControl + * @param onTime INT16U + * @param offWaitTime INT16U + */ +#define emberAfFillCommandOn \ + / \ + offClusterOnWithTimedOff(onOffControl, onTime, offWaitTime) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_ON_WITH_TIMED_OFF_COMMAND_ID, "uuu", onOffControl, onTime, offWaitTime); + +/** @brief Command description for MoveToLevel + * + * Command: MoveToLevel + * @param level INT8U + * @param transitionTime INT16U + * @param optionMask BITMAP8 + * @param optionOverride BITMAP8 + */ +#define emberAfFillCommandLevel \ + ControlClusterMoveToLevel(level, transitionTime, optionMask, optionOverride) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_MOVE_TO_LEVEL_COMMAND_ID, "uuuu", level, transitionTime, optionMask, optionOverride); + +/** @brief Command description for Move + * + * Command: Move + * @param moveMode MoveMode + * @param rate INT8U + * @param optionMask BITMAP8 + * @param optionOverride BITMAP8 + */ +#define emberAfFillCommandLevel \ + ControlClusterMove(moveMode, rate, optionMask, optionOverride) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_MOVE_COMMAND_ID, "uuuu", moveMode, rate, optionMask, optionOverride); + +/** @brief Command description for Step + * + * Command: Step + * @param stepMode StepMode + * @param stepSize INT8U + * @param transitionTime INT16U + * @param optionMask BITMAP8 + * @param optionOverride BITMAP8 + */ +#define emberAfFillCommandLevel \ + ControlClusterStep(stepMode, stepSize, transitionTime, optionMask, optionOverride) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_STEP_COMMAND_ID, "uuuuu", stepMode, stepSize, transitionTime, optionMask, optionOverride); + +/** @brief Command description for Stop + * + * Command: Stop + * @param optionMask BITMAP8 + * @param optionOverride BITMAP8 + */ +#define emberAfFillCommandLevel \ + ControlClusterStop(optionMask, optionOverride) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_STOP_COMMAND_ID, "uu", optionMask, optionOverride); + +/** @brief Command description for MoveToLevelWithOnOff + * + * Command: MoveToLevelWithOnOff + * @param level INT8U + * @param transitionTime INT16U + */ +#define emberAfFillCommandLevel \ + ControlClusterMoveToLevelWithOnOff(level, transitionTime) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_MOVE_TO_LEVEL_WITH_ON_OFF_COMMAND_ID, "uu", level, transitionTime); + +/** @brief Command description for MoveWithOnOff + * + * Command: MoveWithOnOff + * @param moveMode MoveMode + * @param rate INT8U + */ +#define emberAfFillCommandLevel \ + ControlClusterMoveWithOnOff(moveMode, rate) emberAfFillExternalBuffer(mask, \ + \ + ZCL_MOVE_WITH_ON_OFF_COMMAND_ID, "uu", moveMode, rate); + +/** @brief Command description for StepWithOnOff + * + * Command: StepWithOnOff + * @param stepMode StepMode + * @param stepSize INT8U + * @param transitionTime INT16U + */ +#define emberAfFillCommandLevel \ + ControlClusterStepWithOnOff(stepMode, stepSize, transitionTime) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_STEP_WITH_ON_OFF_COMMAND_ID, "uuu", stepMode, stepSize, transitionTime); + +/** @brief Command description for StopWithOnOff + * + * Command: StopWithOnOff + */ +#define emberAfFillCommandLevel \ + ControlClusterStopWithOnOff() emberAfFillExternalBuffer(mask, \ + \ + ZCL_STOP_WITH_ON_OFF_COMMAND_ID, "", ); + +/** @brief Command description for ResetAlarm + * + * Command: ResetAlarm + * @param alarmCode ENUM8 + * @param alarmCode ENUM8 + * @param clusterId CLUSTER_ID + * @param clusterId CLUSTER_ID + */ +#define emberAfFillCommandAlarmsClusterResetAlarm(alarmCode, alarmCode, clusterId, clusterId) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_RESET_ALARM_COMMAND_ID, "uuuu", alarmCode, alarmCode, clusterId, clusterId); + +/** @brief Command description for ResetAllAlarms + * + * Command: ResetAllAlarms + * @param status Status + * @param alarmCode ENUM8 + * @param clusterId CLUSTER_ID + * @param timeStamp INT32U + */ +#define emberAfFillCommandAlarmsClusterResetAllAlarms(status, alarmCode, clusterId, timeStamp) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_RESET_ALL_ALARMS_COMMAND_ID, "uuuu", status, alarmCode, clusterId, timeStamp); + +/** @brief Command description for GetAlarm + * + * Command: GetAlarm + */ +#define emberAfFillCommandAlarmsClusterGetAlarm() \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_GET_ALARM_COMMAND_ID, "", ); + +/** @brief Command description for ResetAlarmLog + * + * Command: ResetAlarmLog + */ +#define emberAfFillCommandAlarmsClusterResetAlarmLog() \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_RESET_ALARM_LOG_COMMAND_ID, "", ); + +/** @brief Command description for SetAbsoluteLocation + * + * Command: SetAbsoluteLocation + * @param coordinate1 INT16S + * @param status Status + * @param coordinate2 INT16S + * @param power INT16S + * @param coordinate3 INT16S + * @param pathLossExponent INT16U + * @param power INT16S + * @param calculationPeriod INT16U + * @param pathLossExponent INT16U + * @param numberRssiMeasurements INT8U + * @param reportingPeriod INT16U + */ +#define emberAfFillCommandRSSI \ + LocationClusterSetAbsoluteLocation(coordinate1, status, coordinate2, power, coordinate3, pathLossExponent, power, \ + calculationPeriod, pathLossExponent, numberRssiMeasurements, reportingPeriod) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_SET_ABSOLUTE_LOCATION_COMMAND_ID, "uuuuuuuuuuu", coordinate1, status, coordinate2, power, \ + coordinate3, pathLossExponent, power, calculationPeriod, pathLossExponent, \ + numberRssiMeasurements, reportingPeriod); + +/** @brief Command description for SetDeviceConfiguration + * + * Command: SetDeviceConfiguration + * @param power INT16S + * @param status Status + * @param pathLossExponent INT16U + * @param locationType LocationType + * @param calculationPeriod INT16U + * @param coordinate1 INT16S + * @param numberRssiMeasurements INT8U + * @param coordinate2 INT16S + * @param reportingPeriod INT16U + * @param coordinate3 INT16S + * @param power INT16S + * @param pathLossExponent INT16U + * @param locationMethod LocationMethod + * @param qualityMeasure INT8U + * @param locationAge INT16U + */ +#define emberAfFillCommandRSSI \ + LocationClusterSetDeviceConfiguration(power, status, pathLossExponent, locationType, calculationPeriod, coordinate1, \ + numberRssiMeasurements, coordinate2, reportingPeriod, coordinate3, power, \ + pathLossExponent, locationMethod, qualityMeasure, locationAge) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_SET_DEVICE_CONFIGURATION_COMMAND_ID, "uuuuuuuuuuuuuuu", power, status, pathLossExponent, \ + locationType, calculationPeriod, coordinate1, numberRssiMeasurements, coordinate2, \ + reportingPeriod, coordinate3, power, pathLossExponent, locationMethod, qualityMeasure, \ + locationAge); + +/** @brief Command description for GetDeviceConfiguration + * + * Command: GetDeviceConfiguration + * @param targetAddress IEEE_ADDRESS + * @param locationType LocationType + * @param coordinate1 INT16S + * @param coordinate2 INT16S + * @param coordinate3 INT16S + * @param power INT16S + * @param pathLossExponent INT16U + * @param locationMethod LocationMethod + * @param qualityMeasure INT8U + * @param locationAge INT16U + */ +#define emberAfFillCommandRSSI \ + LocationClusterGetDeviceConfiguration(targetAddress, locationType, coordinate1, coordinate2, coordinate3, power, \ + pathLossExponent, locationMethod, qualityMeasure, locationAge) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_GET_DEVICE_CONFIGURATION_COMMAND_ID, "uuuuuuuuuu", targetAddress, locationType, coordinate1, \ + coordinate2, coordinate3, power, pathLossExponent, locationMethod, qualityMeasure, locationAge); + +/** @brief Command description for GetLocationData + * + * Command: GetLocationData + * @param flags GetLocationDataFlags + * @param locationType LocationType + * @param numberResponses INT8U + * @param coordinate1 INT16S + * @param targetAddress IEEE_ADDRESS + * @param coordinate2 INT16S + * @param coordinate3 INT16S + * @param qualityMeasure INT8U + * @param locationAge INT16U + */ +#define emberAfFillCommandRSSI \ + LocationClusterGetLocationData(flags, locationType, numberResponses, coordinate1, targetAddress, coordinate2, coordinate3, \ + qualityMeasure, locationAge) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_GET_LOCATION_DATA_COMMAND_ID, "uuuuuuuuu", flags, locationType, numberResponses, \ + coordinate1, targetAddress, coordinate2, coordinate3, qualityMeasure, locationAge); + +/** @brief Command description for RssiResponse + * + * Command: RssiResponse + * @param replyingDevice IEEE_ADDRESS + * @param locationType LocationType + * @param coordinate1 INT16S + * @param coordinate2 INT16S + * @param coordinate3 INT16S + * @param rssi INT8S + * @param numberRssiMeasurements INT8U + */ +#define emberAfFillCommandRSSI \ + LocationClusterRssiResponse(replyingDevice, locationType, coordinate1, coordinate2, coordinate3, rssi, numberRssiMeasurements) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_RSSI_RESPONSE_COMMAND_ID, "uuuuuuu", replyingDevice, locationType, coordinate1, coordinate2, \ + coordinate3, rssi, numberRssiMeasurements); + +/** @brief Command description for RssiRequest + * + * Command: RssiRequest + * @param targetAddress IEEE_ADDRESS + * @param numberRssiMeasurements INT8U + * @param calculationPeriod INT16U + */ +#define emberAfFillCommandRSSI \ + LocationClusterRssiRequest(targetAddress, numberRssiMeasurements, calculationPeriod) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_RSSI_REQUEST_COMMAND_ID, "uuu", targetAddress, numberRssiMeasurements, calculationPeriod); + +/** @brief Command description for AnchorNodeAnnounce + * + * Command: AnchorNodeAnnounce + * @param anchorNodeIeeeAddress IEEE_ADDRESS + * @param measuringDevice IEEE_ADDRESS + * @param coordinate1 INT16S + * @param neighbors INT8U + * @param coordinate2 INT16S + * @param neighborsInfo NeighborInfo [] + * @param neighborsInfoLen int + * @param coordinate3 INT16S + */ +#define emberAfFillCommandRSSI \ + LocationClusterAnchorNodeAnnounce(anchorNodeIeeeAddress, measuringDevice, coordinate1, neighbors, coordinate2, neighborsInfo, \ + neighborsInfoLen, coordinate3) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_ANCHOR_NODE_ANNOUNCE_COMMAND_ID, "uuuuubu", anchorNodeIeeeAddress, measuringDevice, \ + coordinate1, neighbors, coordinate2, neighborsInfo, neighborsInfoLen, coordinate3); + +/** @brief Command description for RequestOwnLocation + * + * Command: RequestOwnLocation + * @param blindNode IEEE_ADDRESS + */ +#define emberAfFillCommandRSSI \ + LocationClusterRequestOwnLocation(blindNode) emberAfFillExternalBuffer(mask, \ + \ + ZCL_REQUEST_OWN_LOCATION_COMMAND_ID, "u", blindNode); + +/** @brief Command description for RestartDevice + * + * Command: RestartDevice + * @param options RestartOptions + * @param status ENUM8 + * @param delay INT8U + * @param jitter INT8U + */ +#define emberAfFillCommandCommissioningClusterRestartDevice(options, status, delay, jitter) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_RESTART_DEVICE_COMMAND_ID, "uuuu", options, status, delay, jitter); + +/** @brief Command description for SaveStartupParameters + * + * Command: SaveStartupParameters + * @param options BITMAP8 + * @param status ENUM8 + * @param index INT8U + */ +#define emberAfFillCommandCommissioningClusterSaveStartupParameters(options, status, index) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_SAVE_STARTUP_PARAMETERS_COMMAND_ID, "uuu", options, status, index); + +/** @brief Command description for RestoreStartupParameters + * + * Command: RestoreStartupParameters + * @param options BITMAP8 + * @param status ENUM8 + * @param index INT8U + */ +#define emberAfFillCommandCommissioningClusterRestoreStartupParameters(options, status, index) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_RESTORE_STARTUP_PARAMETERS_COMMAND_ID, "uuu", options, status, index); + +/** @brief Command description for ResetStartupParameters + * + * Command: ResetStartupParameters + * @param options ResetOptions + * @param status ENUM8 + * @param index INT8U + */ +#define emberAfFillCommandCommissioningClusterResetStartupParameters(options, status, index) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_RESET_STARTUP_PARAMETERS_COMMAND_ID, "uuu", options, status, index); + +/** @brief Command description for TransferPartitionedFrame + * + * Command: TransferPartitionedFrame + * @param fragmentationOptions BITMAP8 + * @param ackOptions BITMAP8 + * @param partitionedIndicatorAndFrame INT8U [] + * @param partitionedIndicatorAndFrameLen int + * @param firstFrameIdAndNackList INT8U [] + * @param firstFrameIdAndNackListLen int + */ +#define emberAfFillCommandPartitionClusterTransferPartitionedFrame(fragmentationOptions, ackOptions, partitionedIndicatorAndFrame, \ + partitionedIndicatorAndFrameLen, firstFrameIdAndNackList, \ + firstFrameIdAndNackListLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_TRANSFER_PARTITIONED_FRAME_COMMAND_ID, "uubb", fragmentationOptions, ackOptions, \ + partitionedIndicatorAndFrame, partitionedIndicatorAndFrameLen, firstFrameIdAndNackList, \ + firstFrameIdAndNackListLen); + +/** @brief Command description for ReadHandshakeParam + * + * Command: ReadHandshakeParam + * @param partitionedClusterId CLUSTER_ID + * @param partitionedClusterId CLUSTER_ID + * @param attributeList ATTRIBUTE_ID [] + * @param attributeListLen int + * @param readAttributeStatusRecords ReadAttributeStatusRecord [] + * @param readAttributeStatusRecordsLen int + */ +#define emberAfFillCommandPartitionClusterReadHandshakeParam(partitionedClusterId, partitionedClusterId, attributeList, \ + attributeListLen, readAttributeStatusRecords, \ + readAttributeStatusRecordsLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_READ_HANDSHAKE_PARAM_COMMAND_ID, "uubb", partitionedClusterId, partitionedClusterId, \ + attributeList, attributeListLen, readAttributeStatusRecords, readAttributeStatusRecordsLen); + +/** @brief Command description for WriteHandshakeParam + * + * Command: WriteHandshakeParam + * @param partitionedClusterId CLUSTER_ID + * @param writeAttributeRecords WriteAttributeRecord [] + * @param writeAttributeRecordsLen int + */ +#define emberAfFillCommandPartitionClusterWriteHandshakeParam(partitionedClusterId, writeAttributeRecords, \ + writeAttributeRecordsLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_WRITE_HANDSHAKE_PARAM_COMMAND_ID, "ub", partitionedClusterId, writeAttributeRecords, \ + writeAttributeRecordsLen); + +/** @brief Command description for ImageNotify + * + * Command: ImageNotify + * @param payloadType ENUM8 + * @param queryJitter INT8U + * @param manufacturerId INT16U + * @param imageType INT16U + * @param newFileVersion INT32U + */ +#define emberAfFillCommandOver \ + the Air BootloadingClusterImageNotify(payloadType, queryJitter, manufacturerId, imageType, newFileVersion) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_IMAGE_NOTIFY_COMMAND_ID, "uuuuu", payloadType, queryJitter, manufacturerId, imageType, \ + newFileVersion); + +/** @brief Command description for QueryNextImageRequest + * + * Command: QueryNextImageRequest + * @param fieldControl INT8U + * @param manufacturerId INT16U + * @param imageType INT16U + * @param currentFileVersion INT32U + * @param hardwareVersion INT16U + */ +#define emberAfFillCommandOver \ + the Air BootloadingClusterQueryNextImageRequest(fieldControl, manufacturerId, imageType, currentFileVersion, hardwareVersion) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_QUERY_NEXT_IMAGE_REQUEST_COMMAND_ID, "uuuuu", fieldControl, manufacturerId, imageType, \ + currentFileVersion, hardwareVersion); + +/** @brief Command description for QueryNextImageResponse + * + * Command: QueryNextImageResponse + * @param status Status + * @param manufacturerId INT16U + * @param imageType INT16U + * @param fileVersion INT32U + * @param imageSize INT32U + */ +#define emberAfFillCommandOver \ + the Air BootloadingClusterQueryNextImageResponse(status, manufacturerId, imageType, fileVersion, imageSize) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_QUERY_NEXT_IMAGE_RESPONSE_COMMAND_ID, "uuuuu", status, manufacturerId, imageType, \ + fileVersion, imageSize); + +/** @brief Command description for ImageBlockRequest + * + * Command: ImageBlockRequest + * @param fieldControl INT8U + * @param manufacturerId INT16U + * @param imageType INT16U + * @param fileVersion INT32U + * @param fileOffset INT32U + * @param maxDataSize INT8U + * @param requestNodeAddress IEEE_ADDRESS + */ +#define emberAfFillCommandOver \ + the Air BootloadingClusterImageBlockRequest(fieldControl, manufacturerId, imageType, fileVersion, fileOffset, maxDataSize, \ + requestNodeAddress) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_IMAGE_BLOCK_REQUEST_COMMAND_ID, "uuuuuuu", fieldControl, manufacturerId, imageType, \ + fileVersion, fileOffset, maxDataSize, requestNodeAddress); + +/** @brief Command description for ImagePageRequest + * + * Command: ImagePageRequest + * @param fieldControl INT8U + * @param manufacturerId INT16U + * @param imageType INT16U + * @param fileVersion INT32U + * @param fileOffset INT32U + * @param maxDataSize INT8U + * @param pageSize INT16U + * @param responseSpacing INT16U + * @param requestNodeAddress IEEE_ADDRESS + */ +#define emberAfFillCommandOver \ + the Air BootloadingClusterImagePageRequest(fieldControl, manufacturerId, imageType, fileVersion, fileOffset, maxDataSize, \ + pageSize, responseSpacing, requestNodeAddress) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_IMAGE_PAGE_REQUEST_COMMAND_ID, "uuuuuuuuu", fieldControl, manufacturerId, imageType, \ + fileVersion, fileOffset, maxDataSize, pageSize, responseSpacing, requestNodeAddress); + +/** @brief Command description for ImageBlockResponse + * + * Command: ImageBlockResponse + * @param status Status + * @param manufacturerId INT16U + * @param imageType INT16U + * @param fileVersion INT32U + * @param fileOffset INT32U + * @param dataSize INT8U + * @param imageData INT8U [] + * @param imageDataLen int + */ +#define emberAfFillCommandOver \ + the Air BootloadingClusterImageBlockResponse(status, manufacturerId, imageType, fileVersion, fileOffset, dataSize, imageData, \ + imageDataLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_IMAGE_BLOCK_RESPONSE_COMMAND_ID, "uuuuuub", status, manufacturerId, imageType, fileVersion, \ + fileOffset, dataSize, imageData, imageDataLen); + +/** @brief Command description for UpgradeEndRequest + * + * Command: UpgradeEndRequest + * @param status Status + * @param manufacturerId INT16U + * @param imageType INT16U + * @param fileVersion INT32U + */ +#define emberAfFillCommandOver \ + the Air BootloadingClusterUpgradeEndRequest(status, manufacturerId, imageType, fileVersion) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_UPGRADE_END_REQUEST_COMMAND_ID, "uuuu", status, manufacturerId, imageType, fileVersion); + +/** @brief Command description for UpgradeEndResponse + * + * Command: UpgradeEndResponse + * @param manufacturerId INT16U + * @param imageType INT16U + * @param fileVersion INT32U + * @param currentTime UTC_TIME + * @param upgradeTime UTC_TIME + */ +#define emberAfFillCommandOver \ + the Air BootloadingClusterUpgradeEndResponse(manufacturerId, imageType, fileVersion, currentTime, upgradeTime) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_UPGRADE_END_RESPONSE_COMMAND_ID, "uuuuu", manufacturerId, imageType, fileVersion, \ + currentTime, upgradeTime); + +/** @brief Command description for QuerySpecificFileRequest + * + * Command: QuerySpecificFileRequest + * @param requestNodeAddress IEEE_ADDRESS + * @param manufacturerId INT16U + * @param imageType INT16U + * @param fileVersion INT32U + * @param currentZigbeeStackVersion INT16U + */ +#define emberAfFillCommandOver \ + the Air BootloadingClusterQuerySpecificFileRequest(requestNodeAddress, manufacturerId, imageType, fileVersion, \ + currentZigbeeStackVersion) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_QUERY_SPECIFIC_FILE_REQUEST_COMMAND_ID, "uuuuu", requestNodeAddress, manufacturerId, \ + imageType, fileVersion, currentZigbeeStackVersion); + +/** @brief Command description for QuerySpecificFileResponse + * + * Command: QuerySpecificFileResponse + * @param status Status + * @param manufacturerId INT16U + * @param imageType INT16U + * @param fileVersion INT32U + * @param imageSize INT32U + */ +#define emberAfFillCommandOver \ + the Air BootloadingClusterQuerySpecificFileResponse(status, manufacturerId, imageType, fileVersion, imageSize) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_QUERY_SPECIFIC_FILE_RESPONSE_COMMAND_ID, "uuuuu", status, manufacturerId, imageType, \ + fileVersion, imageSize); + +/** @brief Command description for PowerProfileRequest + * + * Command: PowerProfileRequest + * @param powerProfileId INT8U + * @param totalProfileNum INT8U + * @param powerProfileId INT8U + * @param numOfTransferredPhases INT8U + * @param transferredPhases TransferredPhase [] + * @param transferredPhasesLen int + */ +#define emberAfFillCommandPower \ + ProfileClusterPowerProfileRequest(powerProfileId, totalProfileNum, powerProfileId, numOfTransferredPhases, transferredPhases, \ + transferredPhasesLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_POWER_PROFILE_REQUEST_COMMAND_ID, "uuuub", powerProfileId, totalProfileNum, powerProfileId, \ + numOfTransferredPhases, transferredPhases, transferredPhasesLen); + +/** @brief Command description for PowerProfileStateRequest + * + * Command: PowerProfileStateRequest + * @param totalProfileNum INT8U + * @param powerProfileId INT8U + * @param numOfTransferredPhases INT8U + * @param transferredPhases TransferredPhase [] + * @param transferredPhasesLen int + */ +#define emberAfFillCommandPower \ + ProfileClusterPowerProfileStateRequest(totalProfileNum, powerProfileId, numOfTransferredPhases, transferredPhases, \ + transferredPhasesLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_POWER_PROFILE_STATE_REQUEST_COMMAND_ID, "uuub", totalProfileNum, powerProfileId, \ + numOfTransferredPhases, transferredPhases, transferredPhasesLen); + +/** @brief Command description for GetPowerProfilePriceResponse + * + * Command: GetPowerProfilePriceResponse + * @param powerProfileId INT8U + * @param powerProfileCount INT8U + * @param currency INT16U + * @param powerProfileRecords PowerProfileRecord [] + * @param powerProfileRecordsLen int + * @param price INT32U + * @param priceTrailingDigit INT8U + */ +#define emberAfFillCommandPower \ + ProfileClusterGetPowerProfilePriceResponse(powerProfileId, powerProfileCount, currency, powerProfileRecords, \ + powerProfileRecordsLen, price, priceTrailingDigit) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_GET_POWER_PROFILE_PRICE_RESPONSE_COMMAND_ID, "uuubuu", powerProfileId, powerProfileCount, \ + currency, powerProfileRecords, powerProfileRecordsLen, price, priceTrailingDigit); + +/** @brief Command description for GetOverallSchedulePriceResponse + * + * Command: GetOverallSchedulePriceResponse + * @param currency INT16U + * @param powerProfileId INT8U + * @param price INT32U + * @param priceTrailingDigit INT8U + */ +#define emberAfFillCommandPower \ + ProfileClusterGetOverallSchedulePriceResponse(currency, powerProfileId, price, priceTrailingDigit) emberAfFillExternalBuffer( \ + mask, \ + \ + ZCL_GET_OVERALL_SCHEDULE_PRICE_RESPONSE_COMMAND_ID, "uuuu", currency, powerProfileId, price, priceTrailingDigit); + +/** @brief Command description for EnergyPhasesScheduleNotification + * + * Command: EnergyPhasesScheduleNotification + * @param powerProfileId INT8U + * @param powerProfileCount INT8U + * @param numOfScheduledPhases INT8U + * @param powerProfileRecords PowerProfileRecord [] + * @param powerProfileRecordsLen int + * @param scheduledPhases ScheduledPhase [] + * @param scheduledPhasesLen int + */ +#define emberAfFillCommandPower \ + ProfileClusterEnergyPhasesScheduleNotification(powerProfileId, powerProfileCount, numOfScheduledPhases, powerProfileRecords, \ + powerProfileRecordsLen, scheduledPhases, scheduledPhasesLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_ENERGY_PHASES_SCHEDULE_NOTIFICATION_COMMAND_ID, "uuubb", powerProfileId, powerProfileCount, \ + numOfScheduledPhases, powerProfileRecords, powerProfileRecordsLen, scheduledPhases, \ + scheduledPhasesLen); + +/** @brief Command description for GetOverallSchedulePrice + * + * Command: GetOverallSchedulePrice + * @param powerProfileId INT8U + * @param numOfScheduledPhases INT8U + * @param scheduledPhases ScheduledPhase [] + * @param scheduledPhasesLen int + */ +#define emberAfFillCommandPower \ + ProfileClusterGetOverallSchedulePrice(powerProfileId, numOfScheduledPhases, scheduledPhases, scheduledPhasesLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_GET_OVERALL_SCHEDULE_PRICE_COMMAND_ID, "uub", powerProfileId, numOfScheduledPhases, \ + scheduledPhases, scheduledPhasesLen); + +/** @brief Command description for PowerProfileScheduleConstraintsRequest + * + * Command: PowerProfileScheduleConstraintsRequest + * @param powerProfileId INT8U + * @param powerProfileId INT8U + */ +#define emberAfFillCommandPower \ + ProfileClusterPowerProfileScheduleConstraintsRequest(powerProfileId, powerProfileId) emberAfFillExternalBuffer( \ + mask, \ + \ + ZCL_POWER_PROFILE_SCHEDULE_CONSTRAINTS_REQUEST_COMMAND_ID, "uu", powerProfileId, powerProfileId); + +/** @brief Command description for EnergyPhasesScheduleStateRequest + * + * Command: EnergyPhasesScheduleStateRequest + * @param powerProfileId INT8U + * @param powerProfileId INT8U + * @param numOfScheduledPhases INT8U + * @param scheduledPhases ScheduledPhase [] + * @param scheduledPhasesLen int + */ +#define emberAfFillCommandPower \ + ProfileClusterEnergyPhasesScheduleStateRequest(powerProfileId, powerProfileId, numOfScheduledPhases, scheduledPhases, \ + scheduledPhasesLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_ENERGY_PHASES_SCHEDULE_STATE_REQUEST_COMMAND_ID, "uuub", powerProfileId, powerProfileId, \ + numOfScheduledPhases, scheduledPhases, scheduledPhasesLen); + +/** @brief Command description for GetPowerProfilePriceExtendedResponse + * + * Command: GetPowerProfilePriceExtendedResponse + * @param powerProfileId INT8U + * @param powerProfileId INT8U + * @param currency INT16U + * @param numOfScheduledPhases INT8U + * @param price INT32U + * @param scheduledPhases ScheduledPhase [] + * @param scheduledPhasesLen int + * @param priceTrailingDigit INT8U + */ +#define emberAfFillCommandPower \ + ProfileClusterGetPowerProfilePriceExtendedResponse(powerProfileId, powerProfileId, currency, numOfScheduledPhases, price, \ + scheduledPhases, scheduledPhasesLen, priceTrailingDigit) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_GET_POWER_PROFILE_PRICE_EXTENDED_RESPONSE_COMMAND_ID, "uuuuubu", powerProfileId, \ + powerProfileId, currency, numOfScheduledPhases, price, scheduledPhases, scheduledPhasesLen, \ + priceTrailingDigit); + +/** @brief Command description for PowerProfileScheduleConstraintsNotification + * + * Command: PowerProfileScheduleConstraintsNotification + * @param powerProfileId INT8U + * @param startAfter INT16U + * @param stopBefore INT16U + */ +#define emberAfFillCommandPower \ + ProfileClusterPowerProfileScheduleConstraintsNotification(powerProfileId, startAfter, stopBefore) emberAfFillExternalBuffer( \ + mask, \ + \ + ZCL_POWER_PROFILE_SCHEDULE_CONSTRAINTS_NOTIFICATION_COMMAND_ID, "uuu", powerProfileId, startAfter, stopBefore); + +/** @brief Command description for PowerProfileScheduleConstraintsResponse + * + * Command: PowerProfileScheduleConstraintsResponse + * @param powerProfileId INT8U + * @param startAfter INT16U + * @param stopBefore INT16U + */ +#define emberAfFillCommandPower \ + ProfileClusterPowerProfileScheduleConstraintsResponse(powerProfileId, startAfter, stopBefore) emberAfFillExternalBuffer( \ + mask, \ + \ + ZCL_POWER_PROFILE_SCHEDULE_CONSTRAINTS_RESPONSE_COMMAND_ID, "uuu", powerProfileId, startAfter, stopBefore); + +/** @brief Command description for GetPowerProfilePriceExtended + * + * Command: GetPowerProfilePriceExtended + * @param options BITMAP8 + * @param powerProfileId INT8U + * @param powerProfileStartTime INT16U + */ +#define emberAfFillCommandPower \ + ProfileClusterGetPowerProfilePriceExtended(options, powerProfileId, powerProfileStartTime) emberAfFillExternalBuffer( \ + mask, \ + \ + ZCL_GET_POWER_PROFILE_PRICE_EXTENDED_COMMAND_ID, "uuu", options, powerProfileId, powerProfileStartTime); + +/** @brief Command description for ExecutionOfACommand + * + * Command: ExecutionOfACommand + * @param commandId CommandIdentification + * @param applianceStatus ApplianceStatus + * @param remoteEnableFlagsAndDeviceStatus2 RemoteEnableFlagsAndDeviceStatus2 + * @param applianceStatus2 INT24U + */ +#define emberAfFillCommandAppliance \ + ControlClusterExecutionOfACommand(commandId, applianceStatus, remoteEnableFlagsAndDeviceStatus2, applianceStatus2) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_EXECUTION_OF_A_COMMAND_COMMAND_ID, "uuuu", commandId, applianceStatus, \ + remoteEnableFlagsAndDeviceStatus2, applianceStatus2); + +/** @brief Command description for SignalState + * + * Command: SignalState + * @param applianceStatus ApplianceStatus + * @param remoteEnableFlagsAndDeviceStatus2 RemoteEnableFlagsAndDeviceStatus2 + * @param applianceStatus2 INT24U + */ +#define emberAfFillCommandAppliance \ + ControlClusterSignalState(applianceStatus, remoteEnableFlagsAndDeviceStatus2, applianceStatus2) emberAfFillExternalBuffer( \ + mask, \ + \ + ZCL_SIGNAL_STATE_COMMAND_ID, "uuu", applianceStatus, remoteEnableFlagsAndDeviceStatus2, applianceStatus2); + +/** @brief Command description for WriteFunctions + * + * Command: WriteFunctions + * @param functionId INT16U + * @param functionDataType ENUM8 + * @param functionData INT8U [] + * @param functionDataLen int + */ +#define emberAfFillCommandAppliance \ + ControlClusterWriteFunctions(functionId, functionDataType, functionData, functionDataLen) emberAfFillExternalBuffer( \ + mask, \ + \ + ZCL_WRITE_FUNCTIONS_COMMAND_ID, "uub", functionId, functionDataType, functionData, functionDataLen); + +/** @brief Command description for OverloadPauseResume + * + * Command: OverloadPauseResume + */ +#define emberAfFillCommandAppliance \ + ControlClusterOverloadPauseResume() emberAfFillExternalBuffer(mask, \ + \ + ZCL_OVERLOAD_PAUSE_RESUME_COMMAND_ID, "", ); + +/** @brief Command description for OverloadPause + * + * Command: OverloadPause + */ +#define emberAfFillCommandAppliance \ + ControlClusterOverloadPause() emberAfFillExternalBuffer(mask, \ + \ + ZCL_OVERLOAD_PAUSE_COMMAND_ID, "", ); + +/** @brief Command description for OverloadWarning + * + * Command: OverloadWarning + * @param warningEvent WarningEvent + */ +#define emberAfFillCommandAppliance \ + ControlClusterOverloadWarning(warningEvent) emberAfFillExternalBuffer(mask, \ + \ + ZCL_OVERLOAD_WARNING_COMMAND_ID, "u", warningEvent); + +/** @brief Command description for CheckIn + * + * Command: CheckIn + * @param startFastPolling BOOLEAN + * @param fastPollTimeout INT16U + */ +#define emberAfFillCommandPoll \ + ControlClusterCheckIn(startFastPolling, fastPollTimeout) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_CHECK_IN_COMMAND_ID, "uu", startFastPolling, fastPollTimeout); + +/** @brief Command description for FastPollStop + * + * Command: FastPollStop + */ +#define emberAfFillCommandPoll \ + ControlClusterFastPollStop() emberAfFillExternalBuffer(mask, \ + \ + ZCL_FAST_POLL_STOP_COMMAND_ID, "", ); + +/** @brief Command description for SetLongPollInterval + * + * Command: SetLongPollInterval + * @param newLongPollInterval INT32U + */ +#define emberAfFillCommandPoll \ + ControlClusterSetLongPollInterval(newLongPollInterval) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_SET_LONG_POLL_INTERVAL_COMMAND_ID, "u", newLongPollInterval); + +/** @brief Command description for SetShortPollInterval + * + * Command: SetShortPollInterval + * @param newShortPollInterval INT16U + */ +#define emberAfFillCommandPoll \ + ControlClusterSetShortPollInterval(newShortPollInterval) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_SET_SHORT_POLL_INTERVAL_COMMAND_ID, "u", newShortPollInterval); + +/** @brief Command description for GpNotification + * + * Command: GpNotification + * @param options GpNotificationOption + * @param options GpNotificationResponseOption + * @param gpdSrcId INT32U + * @param gpdSrcId INT32U + * @param gpdIeee IEEE_ADDRESS + * @param gpdIeee IEEE_ADDRESS + * @param gpdEndpoint INT8U + * @param endpoint INT8U + * @param gpdSecurityFrameCounter INT32U + * @param gpdSecurityFrameCounter INT32U + * @param gpdCommandId INT8U + * @param gpdCommandPayload OCTET_STRING + * @param gppShortAddress INT16U + * @param gppDistance INT8U + */ +#define emberAfFillCommandGreen \ + PowerClusterGpNotification(options, options, gpdSrcId, gpdSrcId, gpdIeee, gpdIeee, gpdEndpoint, endpoint, \ + gpdSecurityFrameCounter, gpdSecurityFrameCounter, gpdCommandId, gpdCommandPayload, gppShortAddress, \ + gppDistance) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_GP_NOTIFICATION_COMMAND_ID, "uuuuuuuuuuuuuu", options, options, gpdSrcId, gpdSrcId, gpdIeee, \ + gpdIeee, gpdEndpoint, endpoint, gpdSecurityFrameCounter, gpdSecurityFrameCounter, gpdCommandId, \ + gpdCommandPayload, gppShortAddress, gppDistance); + +/** @brief Command description for GpPairingSearch + * + * Command: GpPairingSearch + * @param options GpPairingSearchOption + * @param options GpPairingOption + * @param gpdSrcId INT32U + * @param gpdSrcId INT32U + * @param gpdIeee IEEE_ADDRESS + * @param gpdIeee IEEE_ADDRESS + * @param endpoint INT8U + * @param endpoint INT8U + * @param sinkIeeeAddress IEEE_ADDRESS + * @param sinkNwkAddress INT16U + * @param sinkGroupId INT16U + * @param deviceId GpDeviceId + * @param gpdSecurityFrameCounter INT32U + * @param gpdKey SECURITY_KEY + * @param assignedAlias INT16U + * @param groupcastRadius INT8U + */ +#define emberAfFillCommandGreen \ + PowerClusterGpPairingSearch(options, options, gpdSrcId, gpdSrcId, gpdIeee, gpdIeee, endpoint, endpoint, sinkIeeeAddress, \ + sinkNwkAddress, sinkGroupId, deviceId, gpdSecurityFrameCounter, gpdKey, assignedAlias, \ + groupcastRadius) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_GP_PAIRING_SEARCH_COMMAND_ID, "uuuuuuuuuuuuuuuu", options, options, gpdSrcId, gpdSrcId, \ + gpdIeee, gpdIeee, endpoint, endpoint, sinkIeeeAddress, sinkNwkAddress, sinkGroupId, deviceId, \ + gpdSecurityFrameCounter, gpdKey, assignedAlias, groupcastRadius); + +/** @brief Command description for GpProxyCommissioningMode + * + * Command: GpProxyCommissioningMode + * @param options GpProxyCommissioningModeOption + * @param commissioningWindow INT16U + * @param channel INT8U + */ +#define emberAfFillCommandGreen \ + PowerClusterGpProxyCommissioningMode(options, commissioningWindow, channel) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_GP_PROXY_COMMISSIONING_MODE_COMMAND_ID, "uuu", options, commissioningWindow, channel); + +/** @brief Command description for GpTunnelingStop + * + * Command: GpTunnelingStop + * @param options GpTunnelingStopOption + * @param gpdSrcId INT32U + * @param gpdIeee IEEE_ADDRESS + * @param endpoint INT8U + * @param gpdSecurityFrameCounter INT32U + * @param gppShortAddress INT16U + * @param gppDistance INT8S + */ +#define emberAfFillCommandGreen \ + PowerClusterGpTunnelingStop(options, gpdSrcId, gpdIeee, endpoint, gpdSecurityFrameCounter, gppShortAddress, gppDistance) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_GP_TUNNELING_STOP_COMMAND_ID, "uuuuuuu", options, gpdSrcId, gpdIeee, endpoint, \ + gpdSecurityFrameCounter, gppShortAddress, gppDistance); + +/** @brief Command description for GpCommissioningNotification + * + * Command: GpCommissioningNotification + * @param options GpCommissioningNotificationOption + * @param gpdSrcId INT32U + * @param gpdIeee IEEE_ADDRESS + * @param endpoint INT8U + * @param gpdSecurityFrameCounter INT32U + * @param gpdCommandId INT8U + * @param gpdCommandPayload OCTET_STRING + * @param gppShortAddress INT16U + * @param gppLink INT8U + * @param mic INT32U + */ +#define emberAfFillCommandGreen \ + PowerClusterGpCommissioningNotification(options, gpdSrcId, gpdIeee, endpoint, gpdSecurityFrameCounter, gpdCommandId, \ + gpdCommandPayload, gppShortAddress, gppLink, mic) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_GP_COMMISSIONING_NOTIFICATION_COMMAND_ID, "uuuuuuuuuu", options, gpdSrcId, gpdIeee, \ + endpoint, gpdSecurityFrameCounter, gpdCommandId, gpdCommandPayload, gppShortAddress, gppLink, \ + mic); + +/** @brief Command description for GpSinkCommissioningMode + * + * Command: GpSinkCommissioningMode + * @param options GpSinkCommissioningModeOptions + * @param gpmAddrForSecurity INT16U + * @param gpmAddrForPairing INT16U + * @param sinkEndpoint INT8U + */ +#define emberAfFillCommandGreen \ + PowerClusterGpSinkCommissioningMode(options, gpmAddrForSecurity, gpmAddrForPairing, sinkEndpoint) emberAfFillExternalBuffer( \ + mask, \ + \ + ZCL_GP_SINK_COMMISSIONING_MODE_COMMAND_ID, "uuuu", options, gpmAddrForSecurity, gpmAddrForPairing, sinkEndpoint); + +/** @brief Command description for GpResponse + * + * Command: GpResponse + * @param options GpResponseOption + * @param tempMasterShortAddress INT16U + * @param tempMasterTxChannel BITMAP8 + * @param gpdSrcId INT32U + * @param gpdIeee IEEE_ADDRESS + * @param endpoint INT8U + * @param gpdCommandId INT8U + * @param gpdCommandPayload OCTET_STRING + */ +#define emberAfFillCommandGreen \ + PowerClusterGpResponse(options, tempMasterShortAddress, tempMasterTxChannel, gpdSrcId, gpdIeee, endpoint, gpdCommandId, \ + gpdCommandPayload) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_GP_RESPONSE_COMMAND_ID, "uuuuuuuu", options, tempMasterShortAddress, tempMasterTxChannel, \ + gpdSrcId, gpdIeee, endpoint, gpdCommandId, gpdCommandPayload); + +/** @brief Command description for GpTranslationTableUpdate + * + * Command: GpTranslationTableUpdate + * @param options GpTranslationTableUpdateOption + * @param gpdSrcId INT32U + * @param gpdIeee IEEE_ADDRESS + * @param endpoint INT8U + * @param translations GpTranslationTableUpdateTranslation [] + * @param translationsLen int + */ +#define emberAfFillCommandGreen \ + PowerClusterGpTranslationTableUpdate(options, gpdSrcId, gpdIeee, endpoint, translations, translationsLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_GP_TRANSLATION_TABLE_UPDATE_COMMAND_ID, "uuuub", options, gpdSrcId, gpdIeee, endpoint, \ + translations, translationsLen); + +/** @brief Command description for GpTranslationTableRequest + * + * Command: GpTranslationTableRequest + * @param startIndex INT8U + * @param status GpTranslationTableResponseStatus + * @param options GpTranslationTableResponseOption + * @param totalNumberOfEntries INT8U + * @param startIndex INT8U + * @param entriesCount INT8U + * @param translationTableList INT8U [] + * @param translationTableListLen int + */ +#define emberAfFillCommandGreen \ + PowerClusterGpTranslationTableRequest(startIndex, status, options, totalNumberOfEntries, startIndex, entriesCount, \ + translationTableList, translationTableListLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_GP_TRANSLATION_TABLE_REQUEST_COMMAND_ID, "uuuuuub", startIndex, status, options, \ + totalNumberOfEntries, startIndex, entriesCount, translationTableList, translationTableListLen); + +/** @brief Command description for GpPairingConfiguration + * + * Command: GpPairingConfiguration + * @param actions GpPairingConfigurationActions + * @param options GpPairingConfigurationOption + * @param gpdSrcId INT32U + * @param gpdIeee IEEE_ADDRESS + * @param endpoint INT8U + * @param deviceId INT8U + * @param groupListCount INT8U + * @param groupList GpPairingConfigurationGroupList [] + * @param groupListLen int + * @param gpdAssignedAlias INT16U + * @param groupcastRadius INT8U + * @param securityOptions INT8U + * @param gpdSecurityFrameCounter INT32U + * @param gpdSecurityKey SECURITY_KEY + * @param numberOfPairedEndpoints INT8U + * @param pairedEndpoints INT8U [] + * @param pairedEndpointsLen int + * @param applicationInformation GpApplicationInformation + * @param manufacturerId INT16U + * @param modeId INT16U + * @param numberOfGpdCommands INT8U + * @param gpdCommandIdList INT8U [] + * @param gpdCommandIdListLen int + * @param clusterIdListCount INT8U + * @param clusterListServer INT16U [] + * @param clusterListServerLen int + * @param clusterListClient INT16U [] + * @param clusterListClientLen int + * @param switchInformationLength INT8U + * @param switchConfiguration INT8U + * @param currentContactStatus INT8U + * @param totalNumberOfReports INT8U + * @param numberOfReports INT8U + * @param reportDescriptor INT8U [] + * @param reportDescriptorLen int + */ +#define emberAfFillCommandGreen \ + PowerClusterGpPairingConfiguration( \ + actions, options, gpdSrcId, gpdIeee, endpoint, deviceId, groupListCount, groupList, groupListLen, gpdAssignedAlias, \ + groupcastRadius, securityOptions, gpdSecurityFrameCounter, gpdSecurityKey, numberOfPairedEndpoints, pairedEndpoints, \ + pairedEndpointsLen, applicationInformation, manufacturerId, modeId, numberOfGpdCommands, gpdCommandIdList, \ + gpdCommandIdListLen, clusterIdListCount, clusterListServer, clusterListServerLen, clusterListClient, clusterListClientLen, \ + switchInformationLength, switchConfiguration, currentContactStatus, totalNumberOfReports, numberOfReports, \ + reportDescriptor, reportDescriptorLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_GP_PAIRING_CONFIGURATION_COMMAND_ID, "uuuuuuubuuuuuubuuuububbuuuuub", actions, options, \ + gpdSrcId, gpdIeee, endpoint, deviceId, groupListCount, groupList, groupListLen, \ + gpdAssignedAlias, groupcastRadius, securityOptions, gpdSecurityFrameCounter, gpdSecurityKey, \ + numberOfPairedEndpoints, pairedEndpoints, pairedEndpointsLen, applicationInformation, \ + manufacturerId, modeId, numberOfGpdCommands, gpdCommandIdList, gpdCommandIdListLen, \ + clusterIdListCount, clusterListServer, clusterListServerLen, clusterListClient, \ + clusterListClientLen, switchInformationLength, switchConfiguration, currentContactStatus, \ + totalNumberOfReports, numberOfReports, reportDescriptor, reportDescriptorLen); + +/** @brief Command description for GpSinkTableRequest + * + * Command: GpSinkTableRequest + * @param options GpSinkTableRequestOptions + * @param status ENUM8 + * @param gpdSrcId INT32U + * @param totalNumberofNonEmptySinkTableEntries INT8U + * @param gpdIeee INT64U + * @param startIndex INT8U + * @param endpoint INT8U + * @param sinkTableEntriesCount INT8U + * @param index INT8U + * @param sinkTableEntries INT8U [] + * @param sinkTableEntriesLen int + */ +#define emberAfFillCommandGreen \ + PowerClusterGpSinkTableRequest(options, status, gpdSrcId, totalNumberofNonEmptySinkTableEntries, gpdIeee, startIndex, \ + endpoint, sinkTableEntriesCount, index, sinkTableEntries, sinkTableEntriesLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_GP_SINK_TABLE_REQUEST_COMMAND_ID, "uuuuuuuuub", options, status, gpdSrcId, \ + totalNumberofNonEmptySinkTableEntries, gpdIeee, startIndex, endpoint, sinkTableEntriesCount, \ + index, sinkTableEntries, sinkTableEntriesLen); + +/** @brief Command description for GpProxyTableResponse + * + * Command: GpProxyTableResponse + * @param status GpProxyTableResponseStatus + * @param options GpProxyTableRequestOptions + * @param totalNumberOfNonEmptyProxyTableEntries INT8U + * @param gpdSrcId INT32U + * @param startIndex INT8U + * @param gpdIeee INT64U + * @param entriesCount INT8U + * @param endpoint INT8U + * @param proxyTableEntries INT8U [] + * @param proxyTableEntriesLen int + * @param index INT8U + */ +#define emberAfFillCommandGreen \ + PowerClusterGpProxyTableResponse(status, options, totalNumberOfNonEmptyProxyTableEntries, gpdSrcId, startIndex, gpdIeee, \ + entriesCount, endpoint, proxyTableEntries, proxyTableEntriesLen, index) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_GP_PROXY_TABLE_RESPONSE_COMMAND_ID, "uuuuuuuubu", status, options, \ + totalNumberOfNonEmptyProxyTableEntries, gpdSrcId, startIndex, gpdIeee, entriesCount, endpoint, \ + proxyTableEntries, proxyTableEntriesLen, index); + +/** @brief Command description for LockDoor + * + * Command: LockDoor + * @param PIN CHAR_STRING + * @param status INT8U + */ +#define emberAfFillCommandDoor \ + LockClusterLockDoor(PIN, status) emberAfFillExternalBuffer(mask, \ + \ + ZCL_LOCK_DOOR_COMMAND_ID, "uu", PIN, status); + +/** @brief Command description for UnlockDoor + * + * Command: UnlockDoor + * @param PIN CHAR_STRING + * @param status INT8U + */ +#define emberAfFillCommandDoor \ + LockClusterUnlockDoor(PIN, status) emberAfFillExternalBuffer(mask, \ + \ + ZCL_UNLOCK_DOOR_COMMAND_ID, "uu", PIN, status); + +/** @brief Command description for Toggle + * + * Command: Toggle + * @param pin CHAR_STRING + * @param status INT8U + */ +#define emberAfFillCommandDoor \ + LockClusterToggle(pin, status) emberAfFillExternalBuffer(mask, \ + \ + ZCL_TOGGLE_COMMAND_ID, "uu", pin, status); + +/** @brief Command description for UnlockWithTimeout + * + * Command: UnlockWithTimeout + * @param timeoutInSeconds INT16U + * @param status INT8U + * @param pin CHAR_STRING + */ +#define emberAfFillCommandDoor \ + LockClusterUnlockWithTimeout(timeoutInSeconds, status, pin) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_UNLOCK_WITH_TIMEOUT_COMMAND_ID, "uuu", timeoutInSeconds, status, pin); + +/** @brief Command description for GetLogRecord + * + * Command: GetLogRecord + * @param logIndex INT16U + * @param logEntryId INT16U + * @param timestamp INT32U + * @param eventType ENUM8 + * @param source INT8U + * @param eventIdOrAlarmCode INT8U + * @param userId INT16U + * @param pin CHAR_STRING + */ +#define emberAfFillCommandDoor \ + LockClusterGetLogRecord(logIndex, logEntryId, timestamp, eventType, source, eventIdOrAlarmCode, userId, pin) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_GET_LOG_RECORD_COMMAND_ID, "uuuuuuuu", logIndex, logEntryId, timestamp, eventType, source, \ + eventIdOrAlarmCode, userId, pin); + +/** @brief Command description for SetPin + * + * Command: SetPin + * @param userId INT16U + * @param status DoorLockSetPinOrIdStatus + * @param userStatus DoorLockUserStatus + * @param userType DoorLockUserType + * @param pin CHAR_STRING + */ +#define emberAfFillCommandDoor \ + LockClusterSetPin(userId, status, userStatus, userType, pin) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_SET_PIN_COMMAND_ID, "uuuuu", userId, status, userStatus, userType, pin); + +/** @brief Command description for GetPin + * + * Command: GetPin + * @param userId INT16U + * @param userId INT16U + * @param userStatus DoorLockUserStatus + * @param userType DoorLockUserType + * @param pin CHAR_STRING + */ +#define emberAfFillCommandDoor \ + LockClusterGetPin(userId, userId, userStatus, userType, pin) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_GET_PIN_COMMAND_ID, "uuuuu", userId, userId, userStatus, userType, pin); + +/** @brief Command description for ClearPin + * + * Command: ClearPin + * @param userId INT16U + * @param status INT8U + */ +#define emberAfFillCommandDoor \ + LockClusterClearPin(userId, status) emberAfFillExternalBuffer(mask, \ + \ + ZCL_CLEAR_PIN_COMMAND_ID, "uu", userId, status); + +/** @brief Command description for ClearAllPins + * + * Command: ClearAllPins + * @param status INT8U + */ +#define emberAfFillCommandDoor \ + LockClusterClearAllPins(status) emberAfFillExternalBuffer(mask, \ + \ + ZCL_CLEAR_ALL_PINS_COMMAND_ID, "u", status); + +/** @brief Command description for SetUserStatus + * + * Command: SetUserStatus + * @param userId INT16U + * @param status INT8U + * @param userStatus INT8U + */ +#define emberAfFillCommandDoor \ + LockClusterSetUserStatus(userId, status, userStatus) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_SET_USER_STATUS_COMMAND_ID, "uuu", userId, status, userStatus); + +/** @brief Command description for GetUserStatus + * + * Command: GetUserStatus + * @param userId INT16U + * @param userId INT16U + * @param status INT8U + */ +#define emberAfFillCommandDoor \ + LockClusterGetUserStatus(userId, userId, status) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_GET_USER_STATUS_COMMAND_ID, "uuu", userId, userId, status); + +/** @brief Command description for SetWeekdaySchedule + * + * Command: SetWeekdaySchedule + * @param scheduleId INT8U + * @param status INT8U + * @param userId INT16U + * @param daysMask DoorLockDayOfWeek + * @param startHour INT8U + * @param startMinute INT8U + * @param endHour INT8U + * @param endMinute INT8U + */ +#define emberAfFillCommandDoor \ + LockClusterSetWeekdaySchedule(scheduleId, status, userId, daysMask, startHour, startMinute, endHour, endMinute) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_SET_WEEKDAY_SCHEDULE_COMMAND_ID, "uuuuuuuu", scheduleId, status, userId, daysMask, \ + startHour, startMinute, endHour, endMinute); + +/** @brief Command description for GetWeekdaySchedule + * + * Command: GetWeekdaySchedule + * @param scheduleId INT8U + * @param scheduleId INT8U + * @param userId INT16U + * @param userId INT16U + * @param status INT8U + * @param daysMask INT8U + * @param startHour INT8U + * @param startMinute INT8U + * @param endHour INT8U + * @param endMinute INT8U + */ +#define emberAfFillCommandDoor \ + LockClusterGetWeekdaySchedule(scheduleId, scheduleId, userId, userId, status, daysMask, startHour, startMinute, endHour, \ + endMinute) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_GET_WEEKDAY_SCHEDULE_COMMAND_ID, "uuuuuuuuuu", scheduleId, scheduleId, userId, userId, \ + status, daysMask, startHour, startMinute, endHour, endMinute); + +/** @brief Command description for ClearWeekdaySchedule + * + * Command: ClearWeekdaySchedule + * @param scheduleId INT8U + * @param status INT8U + * @param userId INT16U + */ +#define emberAfFillCommandDoor \ + LockClusterClearWeekdaySchedule(scheduleId, status, userId) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_CLEAR_WEEKDAY_SCHEDULE_COMMAND_ID, "uuu", scheduleId, status, userId); + +/** @brief Command description for SetYeardaySchedule + * + * Command: SetYeardaySchedule + * @param scheduleId INT8U + * @param status INT8U + * @param userId INT16U + * @param localStartTime INT32U + * @param localEndTime INT32U + */ +#define emberAfFillCommandDoor \ + LockClusterSetYeardaySchedule(scheduleId, status, userId, localStartTime, localEndTime) emberAfFillExternalBuffer( \ + mask, \ + \ + ZCL_SET_YEARDAY_SCHEDULE_COMMAND_ID, "uuuuu", scheduleId, status, userId, localStartTime, localEndTime); + +/** @brief Command description for GetYeardaySchedule + * + * Command: GetYeardaySchedule + * @param scheduleId INT8U + * @param scheduleId INT8U + * @param userId INT16U + * @param userId INT16U + * @param status INT8U + * @param localStartTime INT32U + * @param localEndTime INT32U + */ +#define emberAfFillCommandDoor \ + LockClusterGetYeardaySchedule(scheduleId, scheduleId, userId, userId, status, localStartTime, localEndTime) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_GET_YEARDAY_SCHEDULE_COMMAND_ID, "uuuuuuu", scheduleId, scheduleId, userId, userId, status, \ + localStartTime, localEndTime); + +/** @brief Command description for ClearYeardaySchedule + * + * Command: ClearYeardaySchedule + * @param scheduleId INT8U + * @param status INT8U + * @param userId INT16U + */ +#define emberAfFillCommandDoor \ + LockClusterClearYeardaySchedule(scheduleId, status, userId) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_CLEAR_YEARDAY_SCHEDULE_COMMAND_ID, "uuu", scheduleId, status, userId); + +/** @brief Command description for SetHolidaySchedule + * + * Command: SetHolidaySchedule + * @param scheduleId INT8U + * @param status INT8U + * @param localStartTime INT32U + * @param localEndTime INT32U + * @param operatingModeDuringHoliday ENUM8 + */ +#define emberAfFillCommandDoor \ + LockClusterSetHolidaySchedule(scheduleId, status, localStartTime, localEndTime, operatingModeDuringHoliday) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_SET_HOLIDAY_SCHEDULE_COMMAND_ID, "uuuuu", scheduleId, status, localStartTime, localEndTime, \ + operatingModeDuringHoliday); + +/** @brief Command description for GetHolidaySchedule + * + * Command: GetHolidaySchedule + * @param scheduleId INT8U + * @param scheduleId INT8U + * @param status INT8U + * @param localStartTime INT32U + * @param localEndTime INT32U + * @param operatingModeDuringHoliday ENUM8 + */ +#define emberAfFillCommandDoor \ + LockClusterGetHolidaySchedule(scheduleId, scheduleId, status, localStartTime, localEndTime, operatingModeDuringHoliday) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_GET_HOLIDAY_SCHEDULE_COMMAND_ID, "uuuuuu", scheduleId, scheduleId, status, localStartTime, \ + localEndTime, operatingModeDuringHoliday); + +/** @brief Command description for ClearHolidaySchedule + * + * Command: ClearHolidaySchedule + * @param scheduleId INT8U + * @param status INT8U + */ +#define emberAfFillCommandDoor \ + LockClusterClearHolidaySchedule(scheduleId, status) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_CLEAR_HOLIDAY_SCHEDULE_COMMAND_ID, "uu", scheduleId, status); + +/** @brief Command description for SetUserType + * + * Command: SetUserType + * @param userId INT16U + * @param status INT8U + * @param userType DoorLockUserType + */ +#define emberAfFillCommandDoor \ + LockClusterSetUserType(userId, status, userType) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_SET_USER_TYPE_COMMAND_ID, "uuu", userId, status, userType); + +/** @brief Command description for GetUserType + * + * Command: GetUserType + * @param userId INT16U + * @param userId INT16U + * @param userType DoorLockUserType + */ +#define emberAfFillCommandDoor \ + LockClusterGetUserType(userId, userId, userType) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_GET_USER_TYPE_COMMAND_ID, "uuu", userId, userId, userType); + +/** @brief Command description for SetRfid + * + * Command: SetRfid + * @param userId INT16U + * @param status DoorLockSetPinOrIdStatus + * @param userStatus DoorLockUserStatus + * @param userType DoorLockUserType + * @param id CHAR_STRING + */ +#define emberAfFillCommandDoor \ + LockClusterSetRfid(userId, status, userStatus, userType, id) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_SET_RFID_COMMAND_ID, "uuuuu", userId, status, userStatus, userType, id); + +/** @brief Command description for GetRfid + * + * Command: GetRfid + * @param userId INT16U + * @param userId INT16U + * @param userStatus DoorLockUserStatus + * @param userType DoorLockUserType + * @param rfid CHAR_STRING + */ +#define emberAfFillCommandDoor \ + LockClusterGetRfid(userId, userId, userStatus, userType, rfid) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_GET_RFID_COMMAND_ID, "uuuuu", userId, userId, userStatus, userType, rfid); + +/** @brief Command description for ClearRfid + * + * Command: ClearRfid + * @param userId INT16U + * @param status INT8U + */ +#define emberAfFillCommandDoor \ + LockClusterClearRfid(userId, status) emberAfFillExternalBuffer(mask, \ + \ + ZCL_CLEAR_RFID_COMMAND_ID, "uu", userId, status); + +/** @brief Command description for ClearAllRfids + * + * Command: ClearAllRfids + * @param status INT8U + */ +#define emberAfFillCommandDoor \ + LockClusterClearAllRfids(status) emberAfFillExternalBuffer(mask, \ + \ + ZCL_CLEAR_ALL_RFIDS_COMMAND_ID, "u", status); + +/** @brief Command description for OperationEventNotification + * + * Command: OperationEventNotification + * @param source INT8U + * @param eventCode DoorLockOperationEventCode + * @param userId INT16U + * @param pin CHAR_STRING + * @param timeStamp INT32U + * @param data CHAR_STRING + */ +#define emberAfFillCommandDoor \ + LockClusterOperationEventNotification(source, eventCode, userId, pin, timeStamp, data) emberAfFillExternalBuffer( \ + mask, \ + \ + ZCL_OPERATION_EVENT_NOTIFICATION_COMMAND_ID, "uuuuuu", source, eventCode, userId, pin, timeStamp, data); + +/** @brief Command description for ProgrammingEventNotification + * + * Command: ProgrammingEventNotification + * @param source INT8U + * @param eventCode DoorLockProgrammingEventCode + * @param userId INT16U + * @param pin CHAR_STRING + * @param userType DoorLockUserType + * @param userStatus DoorLockUserStatus + * @param timeStamp INT32U + * @param data CHAR_STRING + */ +#define emberAfFillCommandDoor \ + LockClusterProgrammingEventNotification(source, eventCode, userId, pin, userType, userStatus, timeStamp, data) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_PROGRAMMING_EVENT_NOTIFICATION_COMMAND_ID, "uuuuuuuu", source, eventCode, userId, pin, \ + userType, userStatus, timeStamp, data); + +/** @brief Command description for WindowCoveringUpOpen + * + * Command: WindowCoveringUpOpen + */ +#define emberAfFillCommandWindow \ + CoveringClusterWindowCoveringUpOpen() emberAfFillExternalBuffer(mask, \ + \ + ZCL_WINDOW_COVERING_UP_OPEN_COMMAND_ID, "", ); + +/** @brief Command description for WindowCoveringDownClose + * + * Command: WindowCoveringDownClose + */ +#define emberAfFillCommandWindow \ + CoveringClusterWindowCoveringDownClose() emberAfFillExternalBuffer(mask, \ + \ + ZCL_WINDOW_COVERING_DOWN_CLOSE_COMMAND_ID, "", ); + +/** @brief Command description for WindowCoveringStop + * + * Command: WindowCoveringStop + */ +#define emberAfFillCommandWindow \ + CoveringClusterWindowCoveringStop() emberAfFillExternalBuffer(mask, \ + \ + ZCL_WINDOW_COVERING_STOP_COMMAND_ID, "", ); + +/** @brief Command description for WindowCoveringGoToLiftValue + * + * Command: WindowCoveringGoToLiftValue + * @param liftValue INT16U + */ +#define emberAfFillCommandWindow \ + CoveringClusterWindowCoveringGoToLiftValue(liftValue) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_WINDOW_COVERING_GO_TO_LIFT_VALUE_COMMAND_ID, "u", liftValue); + +/** @brief Command description for WindowCoveringGoToLiftPercentage + * + * Command: WindowCoveringGoToLiftPercentage + * @param percentageLiftValue INT8U + */ +#define emberAfFillCommandWindow \ + CoveringClusterWindowCoveringGoToLiftPercentage(percentageLiftValue) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_WINDOW_COVERING_GO_TO_LIFT_PERCENTAGE_COMMAND_ID, "u", percentageLiftValue); + +/** @brief Command description for WindowCoveringGoToTiltValue + * + * Command: WindowCoveringGoToTiltValue + * @param tiltValue INT16U + */ +#define emberAfFillCommandWindow \ + CoveringClusterWindowCoveringGoToTiltValue(tiltValue) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_WINDOW_COVERING_GO_TO_TILT_VALUE_COMMAND_ID, "u", tiltValue); + +/** @brief Command description for WindowCoveringGoToTiltPercentage + * + * Command: WindowCoveringGoToTiltPercentage + * @param percentageTiltValue INT8U + */ +#define emberAfFillCommandWindow \ + CoveringClusterWindowCoveringGoToTiltPercentage(percentageTiltValue) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_WINDOW_COVERING_GO_TO_TILT_PERCENTAGE_COMMAND_ID, "u", percentageTiltValue); + +/** @brief Command description for BarrierControlGoToPercent + * + * Command: BarrierControlGoToPercent + * @param percentOpen INT8U + */ +#define emberAfFillCommandBarrier \ + ControlClusterBarrierControlGoToPercent(percentOpen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_BARRIER_CONTROL_GO_TO_PERCENT_COMMAND_ID, "u", percentOpen); + +/** @brief Command description for BarrierControlStop + * + * Command: BarrierControlStop + */ +#define emberAfFillCommandBarrier \ + ControlClusterBarrierControlStop() emberAfFillExternalBuffer(mask, \ + \ + ZCL_BARRIER_CONTROL_STOP_COMMAND_ID, "", ); + +/** @brief Command description for SetpointRaiseLower + * + * Command: SetpointRaiseLower + * @param mode SetpointAdjustMode + * @param numberOfTransitionsForSequence ENUM8 + * @param amount INT8S + * @param dayOfWeekForSequence DayOfWeek + * @param modeForSequence ModeForSequence + * @param payload INT8U [] + * @param payloadLen int + */ +#define emberAfFillCommandThermostatClusterSetpointRaiseLower(mode, numberOfTransitionsForSequence, amount, dayOfWeekForSequence, \ + modeForSequence, payload, payloadLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_SETPOINT_RAISE_LOWER_COMMAND_ID, "uuuuub", mode, numberOfTransitionsForSequence, amount, \ + dayOfWeekForSequence, modeForSequence, payload, payloadLen); + +/** @brief Command description for SetWeeklySchedule + * + * Command: SetWeeklySchedule + * @param numberOfTransitionsForSequence ENUM8 + * @param timeOfDay INT16U + * @param dayOfWeekForSequence DayOfWeek + * @param relayStatus BITMAP16 + * @param modeForSequence ModeForSequence + * @param localTemperature INT16S + * @param payload INT8U [] + * @param payloadLen int + * @param humidityInPercentage INT8U + * @param setpoint INT16S + * @param unreadEntries INT16U + */ +#define emberAfFillCommandThermostatClusterSetWeeklySchedule(numberOfTransitionsForSequence, timeOfDay, dayOfWeekForSequence, \ + relayStatus, modeForSequence, localTemperature, payload, payloadLen, \ + humidityInPercentage, setpoint, unreadEntries) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_SET_WEEKLY_SCHEDULE_COMMAND_ID, "uuuuuubuuu", numberOfTransitionsForSequence, timeOfDay, \ + dayOfWeekForSequence, relayStatus, modeForSequence, localTemperature, payload, payloadLen, \ + humidityInPercentage, setpoint, unreadEntries); + +/** @brief Command description for GetWeeklySchedule + * + * Command: GetWeeklySchedule + * @param daysToReturn DayOfWeek + * @param modeToReturn ModeForSequence + */ +#define emberAfFillCommandThermostatClusterGetWeeklySchedule(daysToReturn, modeToReturn) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_GET_WEEKLY_SCHEDULE_COMMAND_ID, "uu", daysToReturn, modeToReturn); + +/** @brief Command description for ClearWeeklySchedule + * + * Command: ClearWeeklySchedule + */ +#define emberAfFillCommandThermostatClusterClearWeeklySchedule() \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_CLEAR_WEEKLY_SCHEDULE_COMMAND_ID, "", ); + +/** @brief Command description for GetRelayStatusLog + * + * Command: GetRelayStatusLog + */ +#define emberAfFillCommandThermostatClusterGetRelayStatusLog() \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_GET_RELAY_STATUS_LOG_COMMAND_ID, "", ); + +/** @brief Command description for MoveToHue + * + * Command: MoveToHue + * @param hue INT8U + * @param direction HueDirection + * @param transitionTime INT16U + * @param optionsMask BITMAP8 + * @param optionsOverride BITMAP8 + */ +#define emberAfFillCommandColor \ + ControlClusterMoveToHue(hue, direction, transitionTime, optionsMask, optionsOverride) emberAfFillExternalBuffer( \ + mask, \ + \ + ZCL_MOVE_TO_HUE_COMMAND_ID, "uuuuu", hue, direction, transitionTime, optionsMask, optionsOverride); + +/** @brief Command description for MoveHue + * + * Command: MoveHue + * @param moveMode HueMoveMode + * @param rate INT8U + * @param optionsMask BITMAP8 + * @param optionsOverride BITMAP8 + */ +#define emberAfFillCommandColor \ + ControlClusterMoveHue(moveMode, rate, optionsMask, optionsOverride) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_MOVE_HUE_COMMAND_ID, "uuuu", moveMode, rate, optionsMask, optionsOverride); + +/** @brief Command description for StepHue + * + * Command: StepHue + * @param stepMode HueStepMode + * @param stepSize INT8U + * @param transitionTime INT8U + * @param optionsMask BITMAP8 + * @param optionsOverride BITMAP8 + */ +#define emberAfFillCommandColor \ + ControlClusterStepHue(stepMode, stepSize, transitionTime, optionsMask, optionsOverride) emberAfFillExternalBuffer( \ + mask, \ + \ + ZCL_STEP_HUE_COMMAND_ID, "uuuuu", stepMode, stepSize, transitionTime, optionsMask, optionsOverride); + +/** @brief Command description for MoveToSaturation + * + * Command: MoveToSaturation + * @param saturation INT8U + * @param transitionTime INT16U + * @param optionsMask BITMAP8 + * @param optionsOverride BITMAP8 + */ +#define emberAfFillCommandColor \ + ControlClusterMoveToSaturation(saturation, transitionTime, optionsMask, optionsOverride) emberAfFillExternalBuffer( \ + mask, \ + \ + ZCL_MOVE_TO_SATURATION_COMMAND_ID, "uuuu", saturation, transitionTime, optionsMask, optionsOverride); + +/** @brief Command description for MoveSaturation + * + * Command: MoveSaturation + * @param moveMode SaturationMoveMode + * @param rate INT8U + * @param optionsMask BITMAP8 + * @param optionsOverride BITMAP8 + */ +#define emberAfFillCommandColor \ + ControlClusterMoveSaturation(moveMode, rate, optionsMask, optionsOverride) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_MOVE_SATURATION_COMMAND_ID, "uuuu", moveMode, rate, optionsMask, optionsOverride); + +/** @brief Command description for StepSaturation + * + * Command: StepSaturation + * @param stepMode SaturationStepMode + * @param stepSize INT8U + * @param transitionTime INT8U + * @param optionsMask BITMAP8 + * @param optionsOverride BITMAP8 + */ +#define emberAfFillCommandColor \ + ControlClusterStepSaturation(stepMode, stepSize, transitionTime, optionsMask, optionsOverride) emberAfFillExternalBuffer( \ + mask, \ + \ + ZCL_STEP_SATURATION_COMMAND_ID, "uuuuu", stepMode, stepSize, transitionTime, optionsMask, optionsOverride); + +/** @brief Command description for MoveToHueAndSaturation + * + * Command: MoveToHueAndSaturation + * @param hue INT8U + * @param saturation INT8U + * @param transitionTime INT16U + * @param optionsMask BITMAP8 + * @param optionsOverride BITMAP8 + */ +#define emberAfFillCommandColor \ + ControlClusterMoveToHueAndSaturation(hue, saturation, transitionTime, optionsMask, optionsOverride) emberAfFillExternalBuffer( \ + mask, \ + \ + ZCL_MOVE_TO_HUE_AND_SATURATION_COMMAND_ID, "uuuuu", hue, saturation, transitionTime, optionsMask, optionsOverride); + +/** @brief Command description for MoveToColor + * + * Command: MoveToColor + * @param colorX INT16U + * @param colorY INT16U + * @param transitionTime INT16U + * @param optionsMask BITMAP8 + * @param optionsOverride BITMAP8 + */ +#define emberAfFillCommandColor \ + ControlClusterMoveToColor(colorX, colorY, transitionTime, optionsMask, optionsOverride) emberAfFillExternalBuffer( \ + mask, \ + \ + ZCL_MOVE_TO_COLOR_COMMAND_ID, "uuuuu", colorX, colorY, transitionTime, optionsMask, optionsOverride); + +/** @brief Command description for MoveColor + * + * Command: MoveColor + * @param rateX INT16S + * @param rateY INT16S + * @param optionsMask BITMAP8 + * @param optionsOverride BITMAP8 + */ +#define emberAfFillCommandColor \ + ControlClusterMoveColor(rateX, rateY, optionsMask, optionsOverride) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_MOVE_COLOR_COMMAND_ID, "uuuu", rateX, rateY, optionsMask, optionsOverride); + +/** @brief Command description for StepColor + * + * Command: StepColor + * @param stepX INT16S + * @param stepY INT16S + * @param transitionTime INT16U + * @param optionsMask BITMAP8 + * @param optionsOverride BITMAP8 + */ +#define emberAfFillCommandColor \ + ControlClusterStepColor(stepX, stepY, transitionTime, optionsMask, optionsOverride) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_STEP_COLOR_COMMAND_ID, "uuuuu", stepX, stepY, transitionTime, optionsMask, optionsOverride); + +/** @brief Command description for MoveToColorTemperature + * + * Command: MoveToColorTemperature + * @param colorTemperature INT16U + * @param transitionTime INT16U + * @param optionsMask BITMAP8 + * @param optionsOverride BITMAP8 + */ +#define emberAfFillCommandColor \ + ControlClusterMoveToColorTemperature(colorTemperature, transitionTime, optionsMask, optionsOverride) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_MOVE_TO_COLOR_TEMPERATURE_COMMAND_ID, "uuuu", colorTemperature, transitionTime, optionsMask, \ + optionsOverride); + +/** @brief Command description for EnhancedMoveToHue + * + * Command: EnhancedMoveToHue + * @param enhancedHue INT16U + * @param direction HueDirection + * @param transitionTime INT16U + */ +#define emberAfFillCommandColor \ + ControlClusterEnhancedMoveToHue(enhancedHue, direction, transitionTime) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_ENHANCED_MOVE_TO_HUE_COMMAND_ID, "uuu", enhancedHue, direction, transitionTime); + +/** @brief Command description for EnhancedMoveHue + * + * Command: EnhancedMoveHue + * @param moveMode HueMoveMode + * @param rate INT16U + */ +#define emberAfFillCommandColor \ + ControlClusterEnhancedMoveHue(moveMode, rate) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_ENHANCED_MOVE_HUE_COMMAND_ID, "uu", moveMode, rate); + +/** @brief Command description for EnhancedStepHue + * + * Command: EnhancedStepHue + * @param stepMode HueStepMode + * @param stepSize INT16U + * @param transitionTime INT16U + */ +#define emberAfFillCommandColor \ + ControlClusterEnhancedStepHue(stepMode, stepSize, transitionTime) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_ENHANCED_STEP_HUE_COMMAND_ID, "uuu", stepMode, stepSize, transitionTime); + +/** @brief Command description for EnhancedMoveToHueAndSaturation + * + * Command: EnhancedMoveToHueAndSaturation + * @param enhancedHue INT16U + * @param saturation INT8U + * @param transitionTime INT16U + */ +#define emberAfFillCommandColor \ + ControlClusterEnhancedMoveToHueAndSaturation(enhancedHue, saturation, transitionTime) emberAfFillExternalBuffer( \ + mask, \ + \ + ZCL_ENHANCED_MOVE_TO_HUE_AND_SATURATION_COMMAND_ID, "uuu", enhancedHue, saturation, transitionTime); + +/** @brief Command description for ColorLoopSet + * + * Command: ColorLoopSet + * @param updateFlags ColorLoopUpdateFlags + * @param action ColorLoopAction + * @param direction ColorLoopDirection + * @param time INT16U + * @param startHue INT16U + */ +#define emberAfFillCommandColor \ + ControlClusterColorLoopSet(updateFlags, action, direction, time, startHue) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_COLOR_LOOP_SET_COMMAND_ID, "uuuuu", updateFlags, action, direction, time, startHue); + +/** @brief Command description for StopMoveStep + * + * Command: StopMoveStep + * @param optionsMask BITMAP8 + * @param optionsOverride BITMAP8 + */ +#define emberAfFillCommandColor \ + ControlClusterStopMoveStep(optionsMask, optionsOverride) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_STOP_MOVE_STEP_COMMAND_ID, "uu", optionsMask, optionsOverride); + +/** @brief Command description for MoveColorTemperature + * + * Command: MoveColorTemperature + * @param moveMode HueMoveMode + * @param rate INT16U + * @param colorTemperatureMinimum INT16U + * @param colorTemperatureMaximum INT16U + * @param optionsMask BITMAP8 + * @param optionsOverride BITMAP8 + */ +#define emberAfFillCommandColor \ + ControlClusterMoveColorTemperature(moveMode, rate, colorTemperatureMinimum, colorTemperatureMaximum, optionsMask, \ + optionsOverride) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_MOVE_COLOR_TEMPERATURE_COMMAND_ID, "uuuuuu", moveMode, rate, colorTemperatureMinimum, \ + colorTemperatureMaximum, optionsMask, optionsOverride); + +/** @brief Command description for StepColorTemperature + * + * Command: StepColorTemperature + * @param stepMode HueStepMode + * @param stepSize INT16U + * @param transitionTime INT16U + * @param colorTemperatureMinimum INT16U + * @param colorTemperatureMaximum INT16U + * @param optionsMask BITMAP8 + * @param optionsOverride BITMAP8 + */ +#define emberAfFillCommandColor \ + ControlClusterStepColorTemperature(stepMode, stepSize, transitionTime, colorTemperatureMinimum, colorTemperatureMaximum, \ + optionsMask, optionsOverride) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_STEP_COLOR_TEMPERATURE_COMMAND_ID, "uuuuuuu", stepMode, stepSize, transitionTime, \ + colorTemperatureMinimum, colorTemperatureMaximum, optionsMask, optionsOverride); + +/** @brief Command description for ZoneEnrollResponse + * + * Command: ZoneEnrollResponse + * @param enrollResponseCode IasEnrollResponseCode + * @param zoneStatus IasZoneStatus + * @param zoneId INT8U + * @param extendedStatus BITMAP8 + * @param zoneId INT8U + * @param delay INT16U + */ +#define emberAfFillCommandIAS \ + ZoneClusterZoneEnrollResponse(enrollResponseCode, zoneStatus, zoneId, extendedStatus, zoneId, delay) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_ZONE_ENROLL_RESPONSE_COMMAND_ID, "uuuuuu", enrollResponseCode, zoneStatus, zoneId, \ + extendedStatus, zoneId, delay); + +/** @brief Command description for InitiateNormalOperationMode + * + * Command: InitiateNormalOperationMode + * @param zoneType IasZoneType + * @param manufacturerCode INT16U + */ +#define emberAfFillCommandIAS \ + ZoneClusterInitiateNormalOperationMode(zoneType, manufacturerCode) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_INITIATE_NORMAL_OPERATION_MODE_COMMAND_ID, "uu", zoneType, manufacturerCode); + +/** @brief Command description for InitiateNormalOperationModeResponse + * + * Command: InitiateNormalOperationModeResponse + * @param testModeDuration INT8U + * @param currentZoneSensitivityLevel INT8U + */ +#define emberAfFillCommandIAS \ + ZoneClusterInitiateNormalOperationModeResponse(testModeDuration, currentZoneSensitivityLevel) emberAfFillExternalBuffer( \ + mask, \ + \ + ZCL_INITIATE_NORMAL_OPERATION_MODE_RESPONSE_COMMAND_ID, "uu", testModeDuration, currentZoneSensitivityLevel); + +/** @brief Command description for InitiateTestModeResponse + * + * Command: InitiateTestModeResponse + */ +#define emberAfFillCommandIAS \ + ZoneClusterInitiateTestModeResponse() emberAfFillExternalBuffer(mask, \ + \ + ZCL_INITIATE_TEST_MODE_RESPONSE_COMMAND_ID, "", ); + +/** @brief Command description for Arm + * + * Command: Arm + * @param armMode IasAceArmMode + * @param armNotification IasAceArmNotification + * @param armDisarmCode CHAR_STRING + * @param zoneId INT8U + */ +#define emberAfFillCommandIAS \ + ACEClusterArm(armMode, armNotification, armDisarmCode, zoneId) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_ARM_COMMAND_ID, "uuuu", armMode, armNotification, armDisarmCode, zoneId); + +/** @brief Command description for Bypass + * + * Command: Bypass + * @param numberOfZones INT8U + * @param section0 BITMAP16 + * @param zoneIds INT8U [] + * @param zoneIdsLen int + * @param section1 BITMAP16 + * @param armDisarmCode CHAR_STRING + * @param section2 BITMAP16 + * @param section3 BITMAP16 + * @param section4 BITMAP16 + * @param section5 BITMAP16 + * @param section6 BITMAP16 + * @param section7 BITMAP16 + * @param section8 BITMAP16 + * @param section9 BITMAP16 + * @param section10 BITMAP16 + * @param section11 BITMAP16 + * @param section12 BITMAP16 + * @param section13 BITMAP16 + * @param section14 BITMAP16 + * @param section15 BITMAP16 + */ +#define emberAfFillCommandIAS \ + ACEClusterBypass(numberOfZones, section0, zoneIds, zoneIdsLen, section1, armDisarmCode, section2, section3, section4, \ + section5, section6, section7, section8, section9, section10, section11, section12, section13, section14, \ + section15) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_BYPASS_COMMAND_ID, "uubuuuuuuuuuuuuuuuu", numberOfZones, section0, zoneIds, zoneIdsLen, \ + section1, armDisarmCode, section2, section3, section4, section5, section6, section7, section8, \ + section9, section10, section11, section12, section13, section14, section15); + +/** @brief Command description for Emergency + * + * Command: Emergency + * @param zoneId INT8U + * @param zoneType IasZoneType + * @param ieeeAddress IEEE_ADDRESS + * @param zoneLabel CHAR_STRING + */ +#define emberAfFillCommandIAS \ + ACEClusterEmergency(zoneId, zoneType, ieeeAddress, zoneLabel) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_EMERGENCY_COMMAND_ID, "uuuu", zoneId, zoneType, ieeeAddress, zoneLabel); + +/** @brief Command description for Fire + * + * Command: Fire + * @param zoneId INT8U + * @param zoneStatus ENUM16 + * @param audibleNotification IasAceAudibleNotification + * @param zoneLabel CHAR_STRING + */ +#define emberAfFillCommandIAS \ + ACEClusterFire(zoneId, zoneStatus, audibleNotification, zoneLabel) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_FIRE_COMMAND_ID, "uuuu", zoneId, zoneStatus, audibleNotification, zoneLabel); + +/** @brief Command description for Panic + * + * Command: Panic + * @param panelStatus IasAcePanelStatus + * @param secondsRemaining INT8U + * @param audibleNotification IasAceAudibleNotification + * @param alarmStatus IasAceAlarmStatus + */ +#define emberAfFillCommandIAS \ + ACEClusterPanic(panelStatus, secondsRemaining, audibleNotification, alarmStatus) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_PANIC_COMMAND_ID, "uuuu", panelStatus, secondsRemaining, audibleNotification, alarmStatus); + +/** @brief Command description for GetZoneIdMap + * + * Command: GetZoneIdMap + * @param panelStatus IasAcePanelStatus + * @param secondsRemaining INT8U + * @param audibleNotification IasAceAudibleNotification + * @param alarmStatus IasAceAlarmStatus + */ +#define emberAfFillCommandIAS \ + ACEClusterGetZoneIdMap(panelStatus, secondsRemaining, audibleNotification, alarmStatus) emberAfFillExternalBuffer( \ + mask, \ + \ + ZCL_GET_ZONE_ID_MAP_COMMAND_ID, "uuuu", panelStatus, secondsRemaining, audibleNotification, alarmStatus); + +/** @brief Command description for GetZoneInformation + * + * Command: GetZoneInformation + * @param zoneId INT8U + * @param numberOfZones INT8U + * @param zoneIds INT8U [] + * @param zoneIdsLen int + */ +#define emberAfFillCommandIAS \ + ACEClusterGetZoneInformation(zoneId, numberOfZones, zoneIds, zoneIdsLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_GET_ZONE_INFORMATION_COMMAND_ID, "uub", zoneId, numberOfZones, zoneIds, zoneIdsLen); + +/** @brief Command description for GetPanelStatus + * + * Command: GetPanelStatus + * @param numberOfZones INT8U + * @param bypassResult IasAceBypassResult [] + * @param bypassResultLen int + */ +#define emberAfFillCommandIAS \ + ACEClusterGetPanelStatus(numberOfZones, bypassResult, bypassResultLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_GET_PANEL_STATUS_COMMAND_ID, "ub", numberOfZones, bypassResult, bypassResultLen); + +/** @brief Command description for GetBypassedZoneList + * + * Command: GetBypassedZoneList + * @param zoneStatusComplete BOOLEAN + * @param numberOfZones INT8U + * @param zoneStatusResult IasAceZoneStatusResult [] + * @param zoneStatusResultLen int + */ +#define emberAfFillCommandIAS \ + ACEClusterGetBypassedZoneList(zoneStatusComplete, numberOfZones, zoneStatusResult, zoneStatusResultLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_GET_BYPASSED_ZONE_LIST_COMMAND_ID, "uub", zoneStatusComplete, numberOfZones, \ + zoneStatusResult, zoneStatusResultLen); + +/** @brief Command description for GetZoneStatus + * + * Command: GetZoneStatus + * @param startingZoneId INT8U + * @param maxNumberOfZoneIds INT8U + * @param zoneStatusMaskFlag BOOLEAN + * @param zoneStatusMask BITMAP16 + */ +#define emberAfFillCommandIAS \ + ACEClusterGetZoneStatus(startingZoneId, maxNumberOfZoneIds, zoneStatusMaskFlag, zoneStatusMask) emberAfFillExternalBuffer( \ + mask, \ + \ + ZCL_GET_ZONE_STATUS_COMMAND_ID, "uuuu", startingZoneId, maxNumberOfZoneIds, zoneStatusMaskFlag, zoneStatusMask); + +/** @brief Command description for StartWarning + * + * Command: StartWarning + * @param warningInfo WarningInfo + * @param warningDuration INT16U + * @param strobeDutyCycle INT8U + * @param strobeLevel ENUM8 + */ +#define emberAfFillCommandIAS \ + WDClusterStartWarning(warningInfo, warningDuration, strobeDutyCycle, strobeLevel) emberAfFillExternalBuffer( \ + mask, \ + \ + ZCL_START_WARNING_COMMAND_ID, "uuuu", warningInfo, warningDuration, strobeDutyCycle, strobeLevel); + +/** @brief Command description for Squawk + * + * Command: Squawk + * @param squawkInfo SquawkInfo + */ +#define emberAfFillCommandIAS \ + WDClusterSquawk(squawkInfo) emberAfFillExternalBuffer(mask, \ + \ + ZCL_SQUAWK_COMMAND_ID, "u", squawkInfo); + +/** @brief Command description for MatchProtocolAddress + * + * Command: MatchProtocolAddress + * @param protocolAddress OCTET_STRING + * @param deviceIeeeAddress IEEE_ADDRESS + * @param protocolAddress OCTET_STRING + */ +#define emberAfFillCommandGeneric \ + TunnelClusterMatchProtocolAddress(protocolAddress, deviceIeeeAddress, protocolAddress) emberAfFillExternalBuffer( \ + mask, \ + \ + ZCL_MATCH_PROTOCOL_ADDRESS_COMMAND_ID, "uuu", protocolAddress, deviceIeeeAddress, protocolAddress); + +/** @brief Command description for AdvertiseProtocolAddress + * + * Command: AdvertiseProtocolAddress + * @param protocolAddress OCTET_STRING + */ +#define emberAfFillCommandGeneric \ + TunnelClusterAdvertiseProtocolAddress(protocolAddress) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_ADVERTISE_PROTOCOL_ADDRESS_COMMAND_ID, "u", protocolAddress); + +/** @brief Command description for TransferNpdu + * + * Command: TransferNpdu + * @param npdu DATA8 [] + * @param npduLen int + */ +#define emberAfFillCommandBACnet \ + Protocol TunnelClusterTransferNpdu(npdu, npduLen) emberAfFillExternalBuffer(mask, \ + \ + ZCL_TRANSFER_NPDU_COMMAND_ID, "b", npdu, npduLen); + +/** @brief Command description for TransferAPDU + * + * Command: TransferAPDU + * @param apdu OCTET_STRING + */ +#define emberAfFillCommand11073 \ + Protocol TunnelClusterTransferAPDU(apdu) emberAfFillExternalBuffer(mask, \ + \ + ZCL_TRANSFER_APDU_COMMAND_ID, "u", apdu); + +/** @brief Command description for ConnectRequest + * + * Command: ConnectRequest + * @param connectControl 11073ConnectRequestConnectControl + * @param idleTimeout INT16U + * @param managerTarget IEEE_ADDRESS + * @param managerEndpoint INT8U + */ +#define emberAfFillCommand11073 \ + Protocol TunnelClusterConnectRequest(connectControl, idleTimeout, managerTarget, managerEndpoint) emberAfFillExternalBuffer( \ + mask, \ + \ + ZCL_CONNECT_REQUEST_COMMAND_ID, "uuuu", connectControl, idleTimeout, managerTarget, managerEndpoint); + +/** @brief Command description for DisconnectRequest + * + * Command: DisconnectRequest + * @param managerIEEEAddress IEEE_ADDRESS + */ +#define emberAfFillCommand11073 \ + Protocol TunnelClusterDisconnectRequest(managerIEEEAddress) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_DISCONNECT_REQUEST_COMMAND_ID, "u", managerIEEEAddress); + +/** @brief Command description for ConnectStatusNotification + * + * Command: ConnectStatusNotification + * @param connectStatus 11073TunnelConnectionStatus + */ +#define emberAfFillCommand11073 \ + Protocol TunnelClusterConnectStatusNotification(connectStatus) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_CONNECT_STATUS_NOTIFICATION_COMMAND_ID, "u", connectStatus); + +/** @brief Command description for TransferApdu + * + * Command: TransferApdu + * @param apdu OCTET_STRING + */ +#define emberAfFillCommandISO \ + 7816 Protocol TunnelClusterTransferApdu(apdu) emberAfFillExternalBuffer(mask, \ + \ + ZCL_TRANSFER_APDU_COMMAND_ID, "u", apdu); + +/** @brief Command description for InsertSmartCard + * + * Command: InsertSmartCard + */ +#define emberAfFillCommandISO \ + 7816 Protocol TunnelClusterInsertSmartCard() emberAfFillExternalBuffer(mask, \ + \ + ZCL_INSERT_SMART_CARD_COMMAND_ID, "", ); + +/** @brief Command description for ExtractSmartCard + * + * Command: ExtractSmartCard + */ +#define emberAfFillCommandISO \ + 7816 Protocol TunnelClusterExtractSmartCard() emberAfFillExternalBuffer(mask, \ + \ + ZCL_EXTRACT_SMART_CARD_COMMAND_ID, "", ); + +/** @brief Command description for PublishPrice + * + * Command: PublishPrice + * @param providerId INT32U + * @param commandOptions AmiCommandOptions + * @param rateLabel OCTET_STRING + * @param issuerEventId INT32U + * @param currentTime UTC_TIME + * @param unitOfMeasure AmiUnitOfMeasure + * @param currency INT16U + * @param priceTrailingDigitAndPriceTier PriceTrailingDigitAndPriceTier + * @param numberOfPriceTiersAndRegisterTier PriceNumberOfPriceTiersAndRegisterTier + * @param startTime UTC_TIME + * @param durationInMinutes INT16U + * @param price INT32U + * @param priceRatio INT8U + * @param generationPrice INT32U + * @param generationPriceRatio INT8U + * @param alternateCostDelivered INT32U + * @param alternateCostUnit AlternateCostUnit + * @param alternateCostTrailingDigit AlternateCostTrailingDigit + * @param numberOfBlockThresholds INT8U + * @param priceControl PriceControlMask + * @param numberOfGenerationTiers INT8U + * @param generationTier GenerationTier + * @param extendedNumberOfPriceTiers ExtendedNumberOfPriceTiers + * @param extendedPriceTier ExtendedPriceTier + * @param extendedRegisterTier ExtendedRegisterTier + */ +#define emberAfFillCommandPriceClusterPublishPrice( \ + providerId, commandOptions, rateLabel, issuerEventId, currentTime, unitOfMeasure, currency, priceTrailingDigitAndPriceTier, \ + numberOfPriceTiersAndRegisterTier, startTime, durationInMinutes, price, priceRatio, generationPrice, generationPriceRatio, \ + alternateCostDelivered, alternateCostUnit, alternateCostTrailingDigit, numberOfBlockThresholds, priceControl, \ + numberOfGenerationTiers, generationTier, extendedNumberOfPriceTiers, extendedPriceTier, extendedRegisterTier) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_PUBLISH_PRICE_COMMAND_ID, "uuuuuuuuuuuuuuuuuuuuuuuuu", providerId, commandOptions, rateLabel, \ + issuerEventId, currentTime, unitOfMeasure, currency, priceTrailingDigitAndPriceTier, \ + numberOfPriceTiersAndRegisterTier, startTime, durationInMinutes, price, priceRatio, generationPrice, \ + generationPriceRatio, alternateCostDelivered, alternateCostUnit, alternateCostTrailingDigit, \ + numberOfBlockThresholds, priceControl, numberOfGenerationTiers, generationTier, \ + extendedNumberOfPriceTiers, extendedPriceTier, extendedRegisterTier); + +/** @brief Command description for PublishBlockPeriod + * + * Command: PublishBlockPeriod + * @param providerId INT32U + * @param startTime UTC_TIME + * @param issuerEventId INT32U + * @param numberOfEvents INT8U + * @param blockPeriodStartTime UTC_TIME + * @param blockPeriodDuration INT24U + * @param numberOfPriceTiersAndNumberOfBlockThresholds BITMAP8 + * @param blockPeriodControl BlockPeriodControl + * @param blockPeriodDurationType BlockPeriodDurationType + * @param tariffType TariffType + * @param tariffResolutionPeriod TariffResolutionPeriod + */ +#define emberAfFillCommandPriceClusterPublishBlockPeriod( \ + providerId, startTime, issuerEventId, numberOfEvents, blockPeriodStartTime, blockPeriodDuration, \ + numberOfPriceTiersAndNumberOfBlockThresholds, blockPeriodControl, blockPeriodDurationType, tariffType, tariffResolutionPeriod) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_PUBLISH_BLOCK_PERIOD_COMMAND_ID, "uuuuuuuuuuu", providerId, startTime, issuerEventId, \ + numberOfEvents, blockPeriodStartTime, blockPeriodDuration, \ + numberOfPriceTiersAndNumberOfBlockThresholds, blockPeriodControl, blockPeriodDurationType, \ + tariffType, tariffResolutionPeriod); + +/** @brief Command description for PublishConversionFactor + * + * Command: PublishConversionFactor + * @param issuerEventId INT32U + * @param providerId INT32U + * @param startTime UTC_TIME + * @param issuerEventId INT32U + * @param conversionFactor INT32U + * @param priceAckTime UTC_TIME + * @param conversionFactorTrailingDigit ConversionFactorTrailingDigit + * @param control PriceControlMask + */ +#define emberAfFillCommandPriceClusterPublishConversionFactor( \ + issuerEventId, providerId, startTime, issuerEventId, conversionFactor, priceAckTime, conversionFactorTrailingDigit, control) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_PUBLISH_CONVERSION_FACTOR_COMMAND_ID, "uuuuuuuu", issuerEventId, providerId, startTime, \ + issuerEventId, conversionFactor, priceAckTime, conversionFactorTrailingDigit, control); + +/** @brief Command description for PublishCalorificValue + * + * Command: PublishCalorificValue + * @param issuerEventId INT32U + * @param startTime UTC_TIME + * @param startTime UTC_TIME + * @param numberOfEvents INT8U + * @param calorificValue INT32U + * @param tariffType TariffType + * @param calorificValueUnit CalorificValueUnit + * @param calorificValueTrailingDigit CalorificValueTrailingDigit + */ +#define emberAfFillCommandPriceClusterPublishCalorificValue(issuerEventId, startTime, startTime, numberOfEvents, calorificValue, \ + tariffType, calorificValueUnit, calorificValueTrailingDigit) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_PUBLISH_CALORIFIC_VALUE_COMMAND_ID, "uuuuuuuu", issuerEventId, startTime, startTime, \ + numberOfEvents, calorificValue, tariffType, calorificValueUnit, calorificValueTrailingDigit); + +/** @brief Command description for PublishTariffInformation + * + * Command: PublishTariffInformation + * @param providerId INT32U + * @param earliestStartTime UTC_TIME + * @param issuerEventId INT32U + * @param minIssuerEventId INT32U + * @param issuerTariffId INT32U + * @param numberOfCommands INT8U + * @param startTime UTC_TIME + * @param tariffTypeChargingScheme TariffTypeChargingScheme + * @param tariffLabel OCTET_STRING + * @param numberOfPriceTiersInUse INT8U + * @param numberOfBlockThresholdsInUse INT8U + * @param unitOfMeasure AmiUnitOfMeasure + * @param currency INT16U + * @param priceTrailingDigit PriceTrailingDigit + * @param standingCharge INT32U + * @param tierBlockMode TierBlockMode + * @param blockThresholdMultiplier INT24U + * @param blockThresholdDivisor INT24U + */ +#define emberAfFillCommandPriceClusterPublishTariffInformation( \ + providerId, earliestStartTime, issuerEventId, minIssuerEventId, issuerTariffId, numberOfCommands, startTime, \ + tariffTypeChargingScheme, tariffLabel, numberOfPriceTiersInUse, numberOfBlockThresholdsInUse, unitOfMeasure, currency, \ + priceTrailingDigit, standingCharge, tierBlockMode, blockThresholdMultiplier, blockThresholdDivisor) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_PUBLISH_TARIFF_INFORMATION_COMMAND_ID, "uuuuuuuuuuuuuuuuuu", providerId, earliestStartTime, \ + issuerEventId, minIssuerEventId, issuerTariffId, numberOfCommands, startTime, \ + tariffTypeChargingScheme, tariffLabel, numberOfPriceTiersInUse, numberOfBlockThresholdsInUse, \ + unitOfMeasure, currency, priceTrailingDigit, standingCharge, tierBlockMode, \ + blockThresholdMultiplier, blockThresholdDivisor); + +/** @brief Command description for PublishPriceMatrix + * + * Command: PublishPriceMatrix + * @param providerId INT32U + * @param earliestStartTime UTC_TIME + * @param issuerEventId INT32U + * @param minIssuerEventId INT32U + * @param startTime UTC_TIME + * @param numberOfCommands INT8U + * @param issuerTariffId INT32U + * @param commandIndex INT8U + * @param numberOfCommands INT8U + * @param subPayloadControl PriceMatrixSubPayloadControl + * @param payload PriceMatrixSubPayload [] + * @param payloadLen int + */ +#define emberAfFillCommandPriceClusterPublishPriceMatrix(providerId, earliestStartTime, issuerEventId, minIssuerEventId, \ + startTime, numberOfCommands, issuerTariffId, commandIndex, \ + numberOfCommands, subPayloadControl, payload, payloadLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_PUBLISH_PRICE_MATRIX_COMMAND_ID, "uuuuuuuuuub", providerId, earliestStartTime, issuerEventId, \ + minIssuerEventId, startTime, numberOfCommands, issuerTariffId, commandIndex, numberOfCommands, \ + subPayloadControl, payload, payloadLen); + +/** @brief Command description for PublishBlockThresholds + * + * Command: PublishBlockThresholds + * @param providerId INT32U + * @param earliestStartTime UTC_TIME + * @param issuerEventId INT32U + * @param minIssuerEventId INT32U + * @param startTime UTC_TIME + * @param numberOfCommands INT8U + * @param issuerTariffId INT32U + * @param tariffType TariffType + * @param commandIndex INT8U + * @param numberOfCommands INT8U + * @param subPayloadControl BlockThresholdSubPayloadControl + * @param payload BlockThresholdSubPayload [] + * @param payloadLen int + */ +#define emberAfFillCommandPriceClusterPublishBlockThresholds( \ + providerId, earliestStartTime, issuerEventId, minIssuerEventId, startTime, numberOfCommands, issuerTariffId, tariffType, \ + commandIndex, numberOfCommands, subPayloadControl, payload, payloadLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_PUBLISH_BLOCK_THRESHOLDS_COMMAND_ID, "uuuuuuuuuuub", providerId, earliestStartTime, \ + issuerEventId, minIssuerEventId, startTime, numberOfCommands, issuerTariffId, tariffType, \ + commandIndex, numberOfCommands, subPayloadControl, payload, payloadLen); + +/** @brief Command description for PublishCO2Value + * + * Command: PublishCO2Value + * @param providerId INT32U + * @param issuerTariffId INT32U + * @param issuerEventId INT32U + * @param startTime UTC_TIME + * @param tariffType TariffType + * @param cO2Value INT32U + * @param cO2ValueUnit CO2Unit + * @param cO2ValueTrailingDigit CO2TrailingDigit + */ +#define emberAfFillCommandPriceClusterPublishCO2Value(providerId, issuerTariffId, issuerEventId, startTime, tariffType, cO2Value, \ + cO2ValueUnit, cO2ValueTrailingDigit) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_PUBLISH_CO2_VALUE_COMMAND_ID, "uuuuuuuu", providerId, issuerTariffId, issuerEventId, startTime, \ + tariffType, cO2Value, cO2ValueUnit, cO2ValueTrailingDigit); + +/** @brief Command description for PublishTierLabels + * + * Command: PublishTierLabels + * @param providerId INT32U + * @param issuerTariffId INT32U + * @param issuerEventId INT32U + * @param issuerTariffId INT32U + * @param commandIndex INT8U + * @param numberOfCommands INT8U + * @param numberOfLabels INT8U + * @param tierLabelsPayload INT8U [] + * @param tierLabelsPayloadLen int + */ +#define emberAfFillCommandPriceClusterPublishTierLabels(providerId, issuerTariffId, issuerEventId, issuerTariffId, commandIndex, \ + numberOfCommands, numberOfLabels, tierLabelsPayload, tierLabelsPayloadLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_PUBLISH_TIER_LABELS_COMMAND_ID, "uuuuuuub", providerId, issuerTariffId, issuerEventId, \ + issuerTariffId, commandIndex, numberOfCommands, numberOfLabels, tierLabelsPayload, \ + tierLabelsPayloadLen); + +/** @brief Command description for PublishBillingPeriod + * + * Command: PublishBillingPeriod + * @param providerId INT32U + * @param earliestStartTime UTC_TIME + * @param issuerEventId INT32U + * @param minIssuerEventId INT32U + * @param billingPeriodStartTime UTC_TIME + * @param numberOfCommands INT8U + * @param billingPeriodDuration BillingPeriodDuration + * @param tariffType TariffType + * @param billingPeriodDurationType BillingPeriodDurationType + * @param tariffType TariffType + */ +#define emberAfFillCommandPriceClusterPublishBillingPeriod(providerId, earliestStartTime, issuerEventId, minIssuerEventId, \ + billingPeriodStartTime, numberOfCommands, billingPeriodDuration, \ + tariffType, billingPeriodDurationType, tariffType) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_PUBLISH_BILLING_PERIOD_COMMAND_ID, "uuuuuuuuuu", providerId, earliestStartTime, issuerEventId, \ + minIssuerEventId, billingPeriodStartTime, numberOfCommands, billingPeriodDuration, tariffType, \ + billingPeriodDurationType, tariffType); + +/** @brief Command description for PublishConsolidatedBill + * + * Command: PublishConsolidatedBill + * @param providerId INT32U + * @param issuerTariffId INT32U + * @param issuerEventId INT32U + * @param billingPeriodStartTime UTC_TIME + * @param billingPeriodDuration BillingPeriodDuration + * @param billingPeriodDurationType BillingPeriodDurationType + * @param tariffType TariffType + * @param consolidatedBill INT32U + * @param currency INT16U + * @param billTrailingDigit BillTrailingDigit + */ +#define emberAfFillCommandPriceClusterPublishConsolidatedBill(providerId, issuerTariffId, issuerEventId, billingPeriodStartTime, \ + billingPeriodDuration, billingPeriodDurationType, tariffType, \ + consolidatedBill, currency, billTrailingDigit) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_PUBLISH_CONSOLIDATED_BILL_COMMAND_ID, "uuuuuuuuuu", providerId, issuerTariffId, issuerEventId, \ + billingPeriodStartTime, billingPeriodDuration, billingPeriodDurationType, tariffType, \ + consolidatedBill, currency, billTrailingDigit); + +/** @brief Command description for PublishCppEvent + * + * Command: PublishCppEvent + * @param providerId INT32U + * @param earliestStartTime UTC_TIME + * @param issuerEventId INT32U + * @param minIssuerEventId INT32U + * @param startTime UTC_TIME + * @param numberOfCommands INT8U + * @param durationInMinutes INT16U + * @param tariffType TariffType + * @param tariffType TariffType + * @param cppPriceTier CppPriceTier + * @param cppAuth PublishCppEventCppAuth + */ +#define emberAfFillCommandPriceClusterPublishCppEvent(providerId, earliestStartTime, issuerEventId, minIssuerEventId, startTime, \ + numberOfCommands, durationInMinutes, tariffType, tariffType, cppPriceTier, \ + cppAuth) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_PUBLISH_CPP_EVENT_COMMAND_ID, "uuuuuuuuuuu", providerId, earliestStartTime, issuerEventId, \ + minIssuerEventId, startTime, numberOfCommands, durationInMinutes, tariffType, tariffType, \ + cppPriceTier, cppAuth); + +/** @brief Command description for PublishCreditPayment + * + * Command: PublishCreditPayment + * @param providerId INT32U + * @param earliestStartTime UTC_TIME + * @param issuerEventId INT32U + * @param minIssuerEventId INT32U + * @param creditPaymentDueDate UTC_TIME + * @param numberOfCommands INT8U + * @param creditPaymentOverDueAmount INT32U + * @param tariffType TariffType + * @param creditPaymentStatus CreditPaymentStatus + * @param creditPayment INT32U + * @param creditPaymentDate UTC_TIME + * @param creditPaymentRef OCTET_STRING + */ +#define emberAfFillCommandPriceClusterPublishCreditPayment( \ + providerId, earliestStartTime, issuerEventId, minIssuerEventId, creditPaymentDueDate, numberOfCommands, \ + creditPaymentOverDueAmount, tariffType, creditPaymentStatus, creditPayment, creditPaymentDate, creditPaymentRef) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_PUBLISH_CREDIT_PAYMENT_COMMAND_ID, "uuuuuuuuuuuu", providerId, earliestStartTime, issuerEventId, \ + minIssuerEventId, creditPaymentDueDate, numberOfCommands, creditPaymentOverDueAmount, tariffType, \ + creditPaymentStatus, creditPayment, creditPaymentDate, creditPaymentRef); + +/** @brief Command description for PublishCurrencyConversion + * + * Command: PublishCurrencyConversion + * @param providerId INT32U + * @param issuerEventId INT32U + * @param issuerEventId INT32U + * @param cppAuth CppEventResponseCppAuth + * @param startTime UTC_TIME + * @param oldCurrency INT16U + * @param newCurrency INT16U + * @param conversionFactor INT32U + * @param conversionFactorTrailingDigit ConversionFactorTrailingDigit + * @param currencyChangeControlFlags CurrencyChangeControl + */ +#define emberAfFillCommandPriceClusterPublishCurrencyConversion(providerId, issuerEventId, issuerEventId, cppAuth, startTime, \ + oldCurrency, newCurrency, conversionFactor, \ + conversionFactorTrailingDigit, currencyChangeControlFlags) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_PUBLISH_CURRENCY_CONVERSION_COMMAND_ID, "uuuuuuuuuu", providerId, issuerEventId, issuerEventId, \ + cppAuth, startTime, oldCurrency, newCurrency, conversionFactor, conversionFactorTrailingDigit, \ + currencyChangeControlFlags); + +/** @brief Command description for CancelTariff + * + * Command: CancelTariff + * @param providerId INT32U + * @param latestEndTime UTC_TIME + * @param issuerTariffId INT32U + * @param numberOfRecords INT8U + * @param tariffType TariffType + */ +#define emberAfFillCommandPriceClusterCancelTariff(providerId, latestEndTime, issuerTariffId, numberOfRecords, tariffType) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_CANCEL_TARIFF_COMMAND_ID, "uuuuu", providerId, latestEndTime, issuerTariffId, numberOfRecords, \ + tariffType); + +/** @brief Command description for GetCurrencyConversionCommand + * + * Command: GetCurrencyConversionCommand + */ +#define emberAfFillCommandPriceClusterGetCurrencyConversionCommand() \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_GET_CURRENCY_CONVERSION_COMMAND_COMMAND_ID, "", ); + +/** @brief Command description for GetTariffCancellation + * + * Command: GetTariffCancellation + */ +#define emberAfFillCommandPriceClusterGetTariffCancellation() \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_GET_TARIFF_CANCELLATION_COMMAND_ID, "", ); + +/** @brief Command description for LoadControlEvent + * + * Command: LoadControlEvent + * @param issuerEventId INT32U + * @param issuerEventId INT32U + * @param deviceClass AmiDeviceClass + * @param eventStatus AmiEventStatus + * @param utilityEnrollmentGroup INT8U + * @param eventStatusTime UTC_TIME + * @param startTime UTC_TIME + * @param criticalityLevelApplied AmiCriticalityLevel + * @param durationInMinutes INT16U + * @param coolingTemperatureSetPointApplied INT16U + * @param criticalityLevel AmiCriticalityLevel + * @param heatingTemperatureSetPointApplied INT16U + * @param coolingTemperatureOffset INT8U + * @param averageLoadAdjustmentPercentageApplied INT8S + * @param heatingTemperatureOffset INT8U + * @param dutyCycleApplied INT8U + * @param coolingTemperatureSetPoint INT16S + * @param eventControl AmiEventControl + * @param heatingTemperatureSetPoint INT16S + * @param signatureType SignatureType + * @param averageLoadAdjustmentPercentage INT8S + * @param signature Signature + * @param dutyCycle INT8U + * @param eventControl AmiEventControl + */ +#define emberAfFillCommandDemand \ + Response and Load ControlClusterLoadControlEvent( \ + issuerEventId, issuerEventId, deviceClass, eventStatus, utilityEnrollmentGroup, eventStatusTime, startTime, \ + criticalityLevelApplied, durationInMinutes, coolingTemperatureSetPointApplied, criticalityLevel, \ + heatingTemperatureSetPointApplied, coolingTemperatureOffset, averageLoadAdjustmentPercentageApplied, \ + heatingTemperatureOffset, dutyCycleApplied, coolingTemperatureSetPoint, eventControl, heatingTemperatureSetPoint, \ + signatureType, averageLoadAdjustmentPercentage, signature, dutyCycle, eventControl) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_LOAD_CONTROL_EVENT_COMMAND_ID, "uuuuuuuuuuuuuuuuuuuuuuuu", issuerEventId, issuerEventId, \ + deviceClass, eventStatus, utilityEnrollmentGroup, eventStatusTime, startTime, \ + criticalityLevelApplied, durationInMinutes, coolingTemperatureSetPointApplied, criticalityLevel, \ + heatingTemperatureSetPointApplied, coolingTemperatureOffset, \ + averageLoadAdjustmentPercentageApplied, heatingTemperatureOffset, dutyCycleApplied, \ + coolingTemperatureSetPoint, eventControl, heatingTemperatureSetPoint, signatureType, \ + averageLoadAdjustmentPercentage, signature, dutyCycle, eventControl); + +/** @brief Command description for CancelLoadControlEvent + * + * Command: CancelLoadControlEvent + * @param issuerEventId INT32U + * @param startTime UTC_TIME + * @param deviceClass AmiDeviceClass + * @param numberOfEvents INT8U + * @param utilityEnrollmentGroup INT8U + * @param issuerEventId INT32U + * @param cancelControl AmiCancelControl + * @param effectiveTime UTC_TIME + */ +#define emberAfFillCommandDemand \ + Response and Load ControlClusterCancelLoadControlEvent(issuerEventId, startTime, deviceClass, numberOfEvents, \ + utilityEnrollmentGroup, issuerEventId, cancelControl, effectiveTime) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_CANCEL_LOAD_CONTROL_EVENT_COMMAND_ID, "uuuuuuuu", issuerEventId, startTime, deviceClass, \ + numberOfEvents, utilityEnrollmentGroup, issuerEventId, cancelControl, effectiveTime); + +/** @brief Command description for CancelAllLoadControlEvents + * + * Command: CancelAllLoadControlEvents + * @param cancelControl AmiCancelControl + */ +#define emberAfFillCommandDemand \ + Response and Load ControlClusterCancelAllLoadControlEvents(cancelControl) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_CANCEL_ALL_LOAD_CONTROL_EVENTS_COMMAND_ID, "u", cancelControl); + +/** @brief Command description for GetProfileResponse + * + * Command: GetProfileResponse + * @param endTime UTC_TIME + * @param intervalChannel AmiIntervalChannel + * @param status AmiGetProfileStatus + * @param endTime UTC_TIME + * @param profileIntervalPeriod AmiIntervalPeriod + * @param numberOfPeriods INT8U + * @param numberOfPeriodsDelivered INT8U + * @param intervals INT24U [] + * @param intervalsLen int + */ +#define emberAfFillCommandSimple \ + MeteringClusterGetProfileResponse(endTime, intervalChannel, status, endTime, profileIntervalPeriod, numberOfPeriods, \ + numberOfPeriodsDelivered, intervals, intervalsLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_GET_PROFILE_RESPONSE_COMMAND_ID, "uuuuuuub", endTime, intervalChannel, status, endTime, \ + profileIntervalPeriod, numberOfPeriods, numberOfPeriodsDelivered, intervals, intervalsLen); + +/** @brief Command description for RequestMirror + * + * Command: RequestMirror + * @param endpointId INT16U + */ +#define emberAfFillCommandSimple \ + MeteringClusterRequestMirror(endpointId) emberAfFillExternalBuffer(mask, \ + \ + ZCL_REQUEST_MIRROR_COMMAND_ID, "u", endpointId); + +/** @brief Command description for RemoveMirror + * + * Command: RemoveMirror + * @param endpointId INT16U + */ +#define emberAfFillCommandSimple \ + MeteringClusterRemoveMirror(endpointId) emberAfFillExternalBuffer(mask, \ + \ + ZCL_REMOVE_MIRROR_COMMAND_ID, "u", endpointId); + +/** @brief Command description for RequestFastPollModeResponse + * + * Command: RequestFastPollModeResponse + * @param appliedUpdatePeriod INT8U + * @param fastPollUpdatePeriod INT8U + * @param fastPollModeEndtime UTC_TIME + * @param duration INT8U + */ +#define emberAfFillCommandSimple \ + MeteringClusterRequestFastPollModeResponse(appliedUpdatePeriod, fastPollUpdatePeriod, fastPollModeEndtime, duration) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_REQUEST_FAST_POLL_MODE_RESPONSE_COMMAND_ID, "uuuu", appliedUpdatePeriod, \ + fastPollUpdatePeriod, fastPollModeEndtime, duration); + +/** @brief Command description for ScheduleSnapshotResponse + * + * Command: ScheduleSnapshotResponse + * @param issuerEventId INT32U + * @param issuerEventId INT32U + * @param snapshotResponsePayload SnapshotResponsePayload [] + * @param snapshotResponsePayloadLen int + * @param commandIndex INT8U + * @param commandCount INT8U + * @param snapshotSchedulePayload SnapshotSchedulePayload [] + * @param snapshotSchedulePayloadLen int + */ +#define emberAfFillCommandSimple \ + MeteringClusterScheduleSnapshotResponse(issuerEventId, issuerEventId, snapshotResponsePayload, snapshotResponsePayloadLen, \ + commandIndex, commandCount, snapshotSchedulePayload, snapshotSchedulePayloadLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_SCHEDULE_SNAPSHOT_RESPONSE_COMMAND_ID, "uubuub", issuerEventId, issuerEventId, \ + snapshotResponsePayload, snapshotResponsePayloadLen, commandIndex, commandCount, \ + snapshotSchedulePayload, snapshotSchedulePayloadLen); + +/** @brief Command description for TakeSnapshotResponse + * + * Command: TakeSnapshotResponse + * @param snapshotId INT32U + * @param snapshotCause SnapshotCause + * @param snapshotConfirmation SnapshotConfirmation + */ +#define emberAfFillCommandSimple \ + MeteringClusterTakeSnapshotResponse(snapshotId, snapshotCause, snapshotConfirmation) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_TAKE_SNAPSHOT_RESPONSE_COMMAND_ID, "uuu", snapshotId, snapshotCause, snapshotConfirmation); + +/** @brief Command description for PublishSnapshot + * + * Command: PublishSnapshot + * @param snapshotId INT32U + * @param earliestStartTime UTC_TIME + * @param snapshotTime UTC_TIME + * @param latestEndTime UTC_TIME + * @param totalSnapshotsFound INT8U + * @param snapshotOffset INT8U + * @param commandIndex INT8U + * @param snapshotCause SnapshotCause + * @param totalCommands INT8U + * @param snapshotCause SnapshotCause + * @param snapshotPayloadType SnapshotPayloadType + * @param snapshotPayload INT8U [] + * @param snapshotPayloadLen int + */ +#define emberAfFillCommandSimple \ + MeteringClusterPublishSnapshot(snapshotId, earliestStartTime, snapshotTime, latestEndTime, totalSnapshotsFound, \ + snapshotOffset, commandIndex, snapshotCause, totalCommands, snapshotCause, snapshotPayloadType, \ + snapshotPayload, snapshotPayloadLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_PUBLISH_SNAPSHOT_COMMAND_ID, "uuuuuuuuuuub", snapshotId, earliestStartTime, snapshotTime, \ + latestEndTime, totalSnapshotsFound, snapshotOffset, commandIndex, snapshotCause, totalCommands, \ + snapshotCause, snapshotPayloadType, snapshotPayload, snapshotPayloadLen); + +/** @brief Command description for GetSampledDataResponse + * + * Command: GetSampledDataResponse + * @param sampleId INT16U + * @param issuerEventId INT32U + * @param sampleStartTime UTC_TIME + * @param startSamplingTime UTC_TIME + * @param sampleType SampleType + * @param sampleType SampleType + * @param sampleRequestInterval INT16U + * @param sampleRequestInterval INT16U + * @param numberOfSamples INT16U + * @param maxNumberOfSamples INT16U + * @param samples INT24U [] + * @param samplesLen int + */ +#define emberAfFillCommandSimple \ + MeteringClusterGetSampledDataResponse(sampleId, issuerEventId, sampleStartTime, startSamplingTime, sampleType, sampleType, \ + sampleRequestInterval, sampleRequestInterval, numberOfSamples, maxNumberOfSamples, \ + samples, samplesLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_GET_SAMPLED_DATA_RESPONSE_COMMAND_ID, "uuuuuuuuuub", sampleId, issuerEventId, \ + sampleStartTime, startSamplingTime, sampleType, sampleType, sampleRequestInterval, \ + sampleRequestInterval, numberOfSamples, maxNumberOfSamples, samples, samplesLen); + +/** @brief Command description for ConfigureMirror + * + * Command: ConfigureMirror + * @param issuerEventId INT32U + * @param sampleId INT16U + * @param reportingInterval INT24U + * @param earliestSampleTime UTC_TIME + * @param mirrorNotificationReporting BOOLEAN + * @param sampleType SampleType + * @param notificationScheme INT8U + * @param numberOfSamples INT16U + */ +#define emberAfFillCommandSimple \ + MeteringClusterConfigureMirror(issuerEventId, sampleId, reportingInterval, earliestSampleTime, mirrorNotificationReporting, \ + sampleType, notificationScheme, numberOfSamples) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_CONFIGURE_MIRROR_COMMAND_ID, "uuuuuuuu", issuerEventId, sampleId, reportingInterval, \ + earliestSampleTime, mirrorNotificationReporting, sampleType, notificationScheme, \ + numberOfSamples); + +/** @brief Command description for ConfigureNotificationScheme + * + * Command: ConfigureNotificationScheme + * @param issuerEventId INT32U + * @param notificationScheme INT8U + * @param notificationScheme INT8U + * @param notificationFlags BITMAP32 [] + * @param notificationFlagsLen int + * @param notificationFlagOrder BITMAP32 + */ +#define emberAfFillCommandSimple \ + MeteringClusterConfigureNotificationScheme(issuerEventId, notificationScheme, notificationScheme, notificationFlags, \ + notificationFlagsLen, notificationFlagOrder) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_CONFIGURE_NOTIFICATION_SCHEME_COMMAND_ID, "uuubu", issuerEventId, notificationScheme, \ + notificationScheme, notificationFlags, notificationFlagsLen, notificationFlagOrder); + +/** @brief Command description for ConfigureNotificationFlags + * + * Command: ConfigureNotificationFlags + * @param issuerEventId INT32U + * @param providerId INT32U + * @param notificationScheme INT8U + * @param issuerEventId INT32U + * @param notificationFlagAttributeId INT16U + * @param clusterId INT16U + * @param manufacturerCode INT16U + * @param numberOfCommands INT8U + * @param commandIds INT8U [] + * @param commandIdsLen int + */ +#define emberAfFillCommandSimple \ + MeteringClusterConfigureNotificationFlags(issuerEventId, providerId, notificationScheme, issuerEventId, \ + notificationFlagAttributeId, clusterId, manufacturerCode, numberOfCommands, \ + commandIds, commandIdsLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_CONFIGURE_NOTIFICATION_FLAGS_COMMAND_ID, "uuuuuuuub", issuerEventId, providerId, \ + notificationScheme, issuerEventId, notificationFlagAttributeId, clusterId, manufacturerCode, \ + numberOfCommands, commandIds, commandIdsLen); + +/** @brief Command description for GetNotifiedMessage + * + * Command: GetNotifiedMessage + * @param notificationScheme INT8U + * @param providerId INT32U + * @param notificationFlagAttributeId INT16U + * @param issuerEventId INT32U + * @param notificationFlagsN BITMAP32 + * @param requestDateTime UTC_TIME + * @param implementationDateTime UTC_TIME + * @param proposedSupplyStatus MeteringSupplyStatus + * @param supplyControlBits SupplyControlBits + */ +#define emberAfFillCommandSimple \ + MeteringClusterGetNotifiedMessage(notificationScheme, providerId, notificationFlagAttributeId, issuerEventId, \ + notificationFlagsN, requestDateTime, implementationDateTime, proposedSupplyStatus, \ + supplyControlBits) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_GET_NOTIFIED_MESSAGE_COMMAND_ID, "uuuuuuuuu", notificationScheme, providerId, \ + notificationFlagAttributeId, issuerEventId, notificationFlagsN, requestDateTime, \ + implementationDateTime, proposedSupplyStatus, supplyControlBits); + +/** @brief Command description for SupplyStatusResponse + * + * Command: SupplyStatusResponse + * @param providerId INT32U + * @param proposedSupplyStatus ProposedSupplyStatus + * @param issuerEventId INT32U + * @param implementationDateTime UTC_TIME + * @param supplyStatus MeteringSupplyStatus + */ +#define emberAfFillCommandSimple \ + MeteringClusterSupplyStatusResponse(providerId, proposedSupplyStatus, issuerEventId, implementationDateTime, supplyStatus) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_SUPPLY_STATUS_RESPONSE_COMMAND_ID, "uuuuu", providerId, proposedSupplyStatus, issuerEventId, \ + implementationDateTime, supplyStatus); + +/** @brief Command description for StartSamplingResponse + * + * Command: StartSamplingResponse + * @param sampleId INT16U + * @param issuerEventId INT32U + * @param supplyTamperState SupplyStatus + * @param supplyDepletionState SupplyStatus + * @param supplyUncontrolledFlowState SupplyStatus + * @param loadLimitSupplyState SupplyStatus + */ +#define emberAfFillCommandSimple \ + MeteringClusterStartSamplingResponse(sampleId, issuerEventId, supplyTamperState, supplyDepletionState, \ + supplyUncontrolledFlowState, loadLimitSupplyState) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_START_SAMPLING_RESPONSE_COMMAND_ID, "uuuuuu", sampleId, issuerEventId, supplyTamperState, \ + supplyDepletionState, supplyUncontrolledFlowState, loadLimitSupplyState); + +/** @brief Command description for SetUncontrolledFlowThreshold + * + * Command: SetUncontrolledFlowThreshold + * @param providerId INT32U + * @param issuerEventId INT32U + * @param uncontrolledFlowThreshold INT16U + * @param unitOfMeasure AmiUnitOfMeasure + * @param multiplier INT16U + * @param divisor INT16U + * @param stabilisationPeriod INT8U + * @param measurementPeriod INT16U + */ +#define emberAfFillCommandSimple \ + MeteringClusterSetUncontrolledFlowThreshold(providerId, issuerEventId, uncontrolledFlowThreshold, unitOfMeasure, multiplier, \ + divisor, stabilisationPeriod, measurementPeriod) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_SET_UNCONTROLLED_FLOW_THRESHOLD_COMMAND_ID, "uuuuuuuu", providerId, issuerEventId, \ + uncontrolledFlowThreshold, unitOfMeasure, multiplier, divisor, stabilisationPeriod, \ + measurementPeriod); + +/** @brief Command description for GetLastMessage + * + * Command: GetLastMessage + * @param messageId INT32U + * @param messageControl MessagingControlMask + * @param startTime UTC_TIME + * @param durationInMinutes INT16U + * @param message CHAR_STRING + * @param optionalExtendedMessageControl MessagingExtendedControlMask + */ +#define emberAfFillCommandMessagingClusterGetLastMessage(messageId, messageControl, startTime, durationInMinutes, message, \ + optionalExtendedMessageControl) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_GET_LAST_MESSAGE_COMMAND_ID, "uuuuuu", messageId, messageControl, startTime, durationInMinutes, \ + message, optionalExtendedMessageControl); + +/** @brief Command description for CancelMessage + * + * Command: CancelMessage + * @param messageId INT32U + * @param messageId INT32U + * @param messageControl MessagingControlMask + * @param confirmationTime UTC_TIME + * @param messageConfirmationControl BITMAP8 + * @param messageResponse OCTET_STRING + */ +#define emberAfFillCommandMessagingClusterCancelMessage(messageId, messageId, messageControl, confirmationTime, \ + messageConfirmationControl, messageResponse) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_CANCEL_MESSAGE_COMMAND_ID, "uuuuuu", messageId, messageId, messageControl, confirmationTime, \ + messageConfirmationControl, messageResponse); + +/** @brief Command description for DisplayProtectedMessage + * + * Command: DisplayProtectedMessage + * @param messageId INT32U + * @param earliestImplementationTime UTC_TIME + * @param messageControl MessagingControlMask + * @param startTime UTC_TIME + * @param durationInMinutes INT16U + * @param message CHAR_STRING + * @param optionalExtendedMessageControl MessagingExtendedControlMask + */ +#define emberAfFillCommandMessagingClusterDisplayProtectedMessage( \ + messageId, earliestImplementationTime, messageControl, startTime, durationInMinutes, message, optionalExtendedMessageControl) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_DISPLAY_PROTECTED_MESSAGE_COMMAND_ID, "uuuuuuu", messageId, earliestImplementationTime, \ + messageControl, startTime, durationInMinutes, message, optionalExtendedMessageControl); + +/** @brief Command description for CancelAllMessages + * + * Command: CancelAllMessages + * @param implementationDateTime UTC_TIME + */ +#define emberAfFillCommandMessagingClusterCancelAllMessages(implementationDateTime) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_CANCEL_ALL_MESSAGES_COMMAND_ID, "u", implementationDateTime); + +/** @brief Command description for RequestTunnel + * + * Command: RequestTunnel + * @param protocolId INT8U + * @param tunnelId INT16U + * @param manufacturerCode INT16U + * @param tunnelStatus TunnelingTunnelStatus + * @param flowControlSupport BOOLEAN + * @param maximumIncomingTransferSize INT16U + * @param maximumIncomingTransferSize INT16U + */ +#define emberAfFillCommandTunnelingClusterRequestTunnel(protocolId, tunnelId, manufacturerCode, tunnelStatus, flowControlSupport, \ + maximumIncomingTransferSize, maximumIncomingTransferSize) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_REQUEST_TUNNEL_COMMAND_ID, "uuuuuuu", protocolId, tunnelId, manufacturerCode, tunnelStatus, \ + flowControlSupport, maximumIncomingTransferSize, maximumIncomingTransferSize); + +/** @brief Command description for CloseTunnel + * + * Command: CloseTunnel + * @param tunnelId INT16U + * @param tunnelId INT16U + * @param data INT8U [] + * @param dataLen int + */ +#define emberAfFillCommandTunnelingClusterCloseTunnel(tunnelId, tunnelId, data, dataLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_CLOSE_TUNNEL_COMMAND_ID, "uub", tunnelId, tunnelId, data, dataLen); + +/** @brief Command description for TransferDataClientToServer + * + * Command: TransferDataClientToServer + * @param tunnelId INT16U + * @param tunnelId INT16U + * @param data INT8U [] + * @param dataLen int + * @param transferDataStatus TunnelingTransferDataStatus + */ +#define emberAfFillCommandTunnelingClusterTransferDataClientToServer(tunnelId, tunnelId, data, dataLen, transferDataStatus) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_TRANSFER_DATA_CLIENT_TO_SERVER_COMMAND_ID, "uubu", tunnelId, tunnelId, data, dataLen, \ + transferDataStatus); + +/** @brief Command description for TransferDataErrorClientToServer + * + * Command: TransferDataErrorClientToServer + * @param tunnelId INT16U + * @param tunnelId INT16U + * @param transferDataStatus TunnelingTransferDataStatus + * @param numberOfBytesLeft INT16U + */ +#define emberAfFillCommandTunnelingClusterTransferDataErrorClientToServer(tunnelId, tunnelId, transferDataStatus, \ + numberOfBytesLeft) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_TRANSFER_DATA_ERROR_CLIENT_TO_SERVER_COMMAND_ID, "uuuu", tunnelId, tunnelId, transferDataStatus, \ + numberOfBytesLeft); + +/** @brief Command description for AckTransferDataClientToServer + * + * Command: AckTransferDataClientToServer + * @param tunnelId INT16U + * @param tunnelId INT16U + * @param numberOfBytesLeft INT16U + * @param numberOfOctetsLeft INT16U + */ +#define emberAfFillCommandTunnelingClusterAckTransferDataClientToServer(tunnelId, tunnelId, numberOfBytesLeft, numberOfOctetsLeft) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_ACK_TRANSFER_DATA_CLIENT_TO_SERVER_COMMAND_ID, "uuuu", tunnelId, tunnelId, numberOfBytesLeft, \ + numberOfOctetsLeft); + +/** @brief Command description for ReadyDataClientToServer + * + * Command: ReadyDataClientToServer + * @param tunnelId INT16U + * @param protocolListComplete BOOLEAN + * @param numberOfOctetsLeft INT16U + * @param protocolCount INT8U + * @param protocolList Protocol [] + * @param protocolListLen int + */ +#define emberAfFillCommandTunnelingClusterReadyDataClientToServer(tunnelId, protocolListComplete, numberOfOctetsLeft, \ + protocolCount, protocolList, protocolListLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_READY_DATA_CLIENT_TO_SERVER_COMMAND_ID, "uuuub", tunnelId, protocolListComplete, \ + numberOfOctetsLeft, protocolCount, protocolList, protocolListLen); + +/** @brief Command description for GetSupportedTunnelProtocols + * + * Command: GetSupportedTunnelProtocols + * @param protocolOffset INT8U + * @param tunnelId INT16U + */ +#define emberAfFillCommandTunnelingClusterGetSupportedTunnelProtocols(protocolOffset, tunnelId) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_GET_SUPPORTED_TUNNEL_PROTOCOLS_COMMAND_ID, "uu", protocolOffset, tunnelId); + +/** @brief Command description for SelectAvailableEmergencyCredit + * + * Command: SelectAvailableEmergencyCredit + * @param commandIssueDateTime UTC_TIME + * @param originatingDevice OriginatingDevice + * @param siteId OCTET_STRING + * @param meterSerialNumber OCTET_STRING + */ +#define emberAfFillCommandPrepaymentClusterSelectAvailableEmergencyCredit(commandIssueDateTime, originatingDevice, siteId, \ + meterSerialNumber) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_SELECT_AVAILABLE_EMERGENCY_CREDIT_COMMAND_ID, "uuuu", commandIssueDateTime, originatingDevice, \ + siteId, meterSerialNumber); + +/** @brief Command description for PublishPrepaySnapshot + * + * Command: PublishPrepaySnapshot + * @param snapshotId INT32U + * @param snapshotTime UTC_TIME + * @param totalSnapshotsFound INT8U + * @param commandIndex INT8U + * @param totalNumberOfCommands INT8U + * @param snapshotCause PrepaySnapshotPayloadCause + * @param snapshotPayloadType PrepaySnapshotPayloadType + * @param snapshotPayload INT8U [] + * @param snapshotPayloadLen int + */ +#define emberAfFillCommandPrepaymentClusterPublishPrepaySnapshot(snapshotId, snapshotTime, totalSnapshotsFound, commandIndex, \ + totalNumberOfCommands, snapshotCause, snapshotPayloadType, \ + snapshotPayload, snapshotPayloadLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_PUBLISH_PREPAY_SNAPSHOT_COMMAND_ID, "uuuuuuub", snapshotId, snapshotTime, totalSnapshotsFound, \ + commandIndex, totalNumberOfCommands, snapshotCause, snapshotPayloadType, snapshotPayload, \ + snapshotPayloadLen); + +/** @brief Command description for ChangeDebt + * + * Command: ChangeDebt + * @param issuerEventId INT32U + * @param friendlyCredit FriendlyCredit + * @param debtLabel OCTET_STRING + * @param friendlyCreditCalendarId INT32U + * @param debtAmount INT32U + * @param emergencyCreditLimit INT32U + * @param debtRecoveryMethod DebtRecoveryMethod + * @param emergencyCreditThreshold INT32U + * @param debtAmountType DebtAmountType + * @param debtRecoveryStartTime UTC_TIME + * @param debtRecoveryCollectionTime INT16U + * @param debtRecoveryFrequency DebtRecoveryFrequency + * @param debtRecoveryAmount INT32U + * @param debtRecoveryBalancePercentage INT16U + */ +#define emberAfFillCommandPrepaymentClusterChangeDebt( \ + issuerEventId, friendlyCredit, debtLabel, friendlyCreditCalendarId, debtAmount, emergencyCreditLimit, debtRecoveryMethod, \ + emergencyCreditThreshold, debtAmountType, debtRecoveryStartTime, debtRecoveryCollectionTime, debtRecoveryFrequency, \ + debtRecoveryAmount, debtRecoveryBalancePercentage) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_CHANGE_DEBT_COMMAND_ID, "uuuuuuuuuuuuuu", issuerEventId, friendlyCredit, debtLabel, \ + friendlyCreditCalendarId, debtAmount, emergencyCreditLimit, debtRecoveryMethod, \ + emergencyCreditThreshold, debtAmountType, debtRecoveryStartTime, debtRecoveryCollectionTime, \ + debtRecoveryFrequency, debtRecoveryAmount, debtRecoveryBalancePercentage); + +/** @brief Command description for EmergencyCreditSetup + * + * Command: EmergencyCreditSetup + * @param issuerEventId INT32U + * @param resultType ResultType + * @param startTime UTC_TIME + * @param topUpValue INT32U + * @param emergencyCreditLimit INT32U + * @param sourceOfTopUp OriginatingDevice + * @param emergencyCreditThreshold INT32U + * @param creditRemaining INT32U + */ +#define emberAfFillCommandPrepaymentClusterEmergencyCreditSetup(issuerEventId, resultType, startTime, topUpValue, \ + emergencyCreditLimit, sourceOfTopUp, emergencyCreditThreshold, \ + creditRemaining) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_EMERGENCY_CREDIT_SETUP_COMMAND_ID, "uuuuuuuu", issuerEventId, resultType, startTime, topUpValue, \ + emergencyCreditLimit, sourceOfTopUp, emergencyCreditThreshold, creditRemaining); + +/** @brief Command description for ConsumerTopUp + * + * Command: ConsumerTopUp + * @param originatingDevice OriginatingDevice + * @param topUpCode OCTET_STRING + */ +#define emberAfFillCommandPrepaymentClusterConsumerTopUp(originatingDevice, topUpCode) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_CONSUMER_TOP_UP_COMMAND_ID, "uu", originatingDevice, topUpCode); + +/** @brief Command description for CreditAdjustment + * + * Command: CreditAdjustment + * @param issuerEventId INT32U + * @param commandIndex INT8U + * @param startTime UTC_TIME + * @param totalNumberOfCommands INT8U + * @param creditAdjustmentType CreditAdjustmentType + * @param topUpPayload TopUpPayload [] + * @param topUpPayloadLen int + * @param creditAdjustmentValue INT32U + */ +#define emberAfFillCommandPrepaymentClusterCreditAdjustment(issuerEventId, commandIndex, startTime, totalNumberOfCommands, \ + creditAdjustmentType, topUpPayload, topUpPayloadLen, \ + creditAdjustmentValue) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_CREDIT_ADJUSTMENT_COMMAND_ID, "uuuuubu", issuerEventId, commandIndex, startTime, \ + totalNumberOfCommands, creditAdjustmentType, topUpPayload, topUpPayloadLen, creditAdjustmentValue); + +/** @brief Command description for ChangePaymentMode + * + * Command: ChangePaymentMode + * @param providerId INT32U + * @param commandIndex INT8U + * @param issuerEventId INT32U + * @param totalNumberOfCommands INT8U + * @param implementationDateTime UTC_TIME + * @param debtPayload DebtPayload [] + * @param debtPayloadLen int + * @param proposedPaymentControlConfiguration PaymentControlConfiguration + * @param cutOffValue INT32U + */ +#define emberAfFillCommandPrepaymentClusterChangePaymentMode(providerId, commandIndex, issuerEventId, totalNumberOfCommands, \ + implementationDateTime, debtPayload, debtPayloadLen, \ + proposedPaymentControlConfiguration, cutOffValue) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_CHANGE_PAYMENT_MODE_COMMAND_ID, "uuuuubuu", providerId, commandIndex, issuerEventId, \ + totalNumberOfCommands, implementationDateTime, debtPayload, debtPayloadLen, \ + proposedPaymentControlConfiguration, cutOffValue); + +/** @brief Command description for GetPrepaySnapshot + * + * Command: GetPrepaySnapshot + * @param earliestStartTime UTC_TIME + * @param latestEndTime UTC_TIME + * @param snapshotOffset INT8U + * @param snapshotCause PrepaySnapshotPayloadCause + */ +#define emberAfFillCommandPrepaymentClusterGetPrepaySnapshot(earliestStartTime, latestEndTime, snapshotOffset, snapshotCause) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_GET_PREPAY_SNAPSHOT_COMMAND_ID, "uuuu", earliestStartTime, latestEndTime, snapshotOffset, \ + snapshotCause); + +/** @brief Command description for GetTopUpLog + * + * Command: GetTopUpLog + * @param latestEndTime UTC_TIME + * @param numberOfRecords INT8U + */ +#define emberAfFillCommandPrepaymentClusterGetTopUpLog(latestEndTime, numberOfRecords) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_GET_TOP_UP_LOG_COMMAND_ID, "uu", latestEndTime, numberOfRecords); + +/** @brief Command description for SetLowCreditWarningLevel + * + * Command: SetLowCreditWarningLevel + * @param lowCreditWarningLevel INT32U + */ +#define emberAfFillCommandPrepaymentClusterSetLowCreditWarningLevel(lowCreditWarningLevel) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_SET_LOW_CREDIT_WARNING_LEVEL_COMMAND_ID, "u", lowCreditWarningLevel); + +/** @brief Command description for GetDebtRepaymentLog + * + * Command: GetDebtRepaymentLog + * @param latestEndTime UTC_TIME + * @param numberOfDebts INT8U + * @param debtType RepaymentDebtType + */ +#define emberAfFillCommandPrepaymentClusterGetDebtRepaymentLog(latestEndTime, numberOfDebts, debtType) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_GET_DEBT_REPAYMENT_LOG_COMMAND_ID, "uuu", latestEndTime, numberOfDebts, debtType); + +/** @brief Command description for SetMaximumCreditLimit + * + * Command: SetMaximumCreditLimit + * @param providerId INT32U + * @param issuerEventId INT32U + * @param implementationDateTime UTC_TIME + * @param maximumCreditLevel INT32U + * @param maximumCreditPerTopUp INT32U + */ +#define emberAfFillCommandPrepaymentClusterSetMaximumCreditLimit(providerId, issuerEventId, implementationDateTime, \ + maximumCreditLevel, maximumCreditPerTopUp) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_SET_MAXIMUM_CREDIT_LIMIT_COMMAND_ID, "uuuuu", providerId, issuerEventId, implementationDateTime, \ + maximumCreditLevel, maximumCreditPerTopUp); + +/** @brief Command description for SetOverallDebtCap + * + * Command: SetOverallDebtCap + * @param providerId INT32U + * @param issuerEventId INT32U + * @param implementationDateTime UTC_TIME + * @param overallDebtCap INT32U + */ +#define emberAfFillCommandPrepaymentClusterSetOverallDebtCap(providerId, issuerEventId, implementationDateTime, overallDebtCap) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_SET_OVERALL_DEBT_CAP_COMMAND_ID, "uuuu", providerId, issuerEventId, implementationDateTime, \ + overallDebtCap); + +/** @brief Command description for ReportEventStatus + * + * Command: ReportEventStatus + * @param issuerEventId INT32U + * @param issuerEventId INT32U + * @param eventStatus AmiEventStatus + * @param deviceClass AmiDeviceClass + * @param eventStatusTime UTC_TIME + * @param utilityEnrollmentGroup INT8U + * @param criticalityLevelApplied AmiCriticalityLevel + * @param actionRequired INT8U + * @param coolingTemperatureSetPointApplied INT16U + * @param heatingTemperatureSetPointApplied INT16U + * @param averageLoadAdjustmentPercentageApplied INT8S + * @param dutyCycleApplied INT8U + * @param eventControl AmiEventControl + */ +#define emberAfFillCommandEnergy \ + ManagementClusterReportEventStatus(issuerEventId, issuerEventId, eventStatus, deviceClass, eventStatusTime, \ + utilityEnrollmentGroup, criticalityLevelApplied, actionRequired, \ + coolingTemperatureSetPointApplied, heatingTemperatureSetPointApplied, \ + averageLoadAdjustmentPercentageApplied, dutyCycleApplied, eventControl) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_REPORT_EVENT_STATUS_COMMAND_ID, "uuuuuuuuuuuuu", issuerEventId, issuerEventId, eventStatus, \ + deviceClass, eventStatusTime, utilityEnrollmentGroup, criticalityLevelApplied, actionRequired, \ + coolingTemperatureSetPointApplied, heatingTemperatureSetPointApplied, \ + averageLoadAdjustmentPercentageApplied, dutyCycleApplied, eventControl); + +/** @brief Command description for PublishCalendar + * + * Command: PublishCalendar + * @param providerId INT32U + * @param earliestStartTime UTC_TIME + * @param issuerEventId INT32U + * @param minIssuerEventId INT32U + * @param issuerCalendarId INT32U + * @param numberOfCalendars INT8U + * @param startTime UTC_TIME + * @param calendarType CalendarType + * @param calendarType CalendarType + * @param providerId INT32U + * @param calendarTimeReference CalendarTimeReference + * @param calendarName OCTET_STRING + * @param numberOfSeasons INT8U + * @param numberOfWeekProfiles INT8U + * @param numberOfDayProfiles INT8U + */ +#define emberAfFillCommandCalendarClusterPublishCalendar( \ + providerId, earliestStartTime, issuerEventId, minIssuerEventId, issuerCalendarId, numberOfCalendars, startTime, calendarType, \ + calendarType, providerId, calendarTimeReference, calendarName, numberOfSeasons, numberOfWeekProfiles, numberOfDayProfiles) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_PUBLISH_CALENDAR_COMMAND_ID, "uuuuuuuuuuuuuuu", providerId, earliestStartTime, issuerEventId, \ + minIssuerEventId, issuerCalendarId, numberOfCalendars, startTime, calendarType, calendarType, \ + providerId, calendarTimeReference, calendarName, numberOfSeasons, numberOfWeekProfiles, \ + numberOfDayProfiles); + +/** @brief Command description for PublishDayProfile + * + * Command: PublishDayProfile + * @param providerId INT32U + * @param providerId INT32U + * @param issuerEventId INT32U + * @param issuerCalendarId INT32U + * @param issuerCalendarId INT32U + * @param startDayId INT8U + * @param dayId INT8U + * @param numberOfDays INT8U + * @param totalNumberOfScheduleEntries INT8U + * @param commandIndex INT8U + * @param totalNumberOfCommands INT8U + * @param calendarType CalendarType + * @param dayScheduleEntries ScheduleEntry [] + * @param dayScheduleEntriesLen int + */ +#define emberAfFillCommandCalendarClusterPublishDayProfile( \ + providerId, providerId, issuerEventId, issuerCalendarId, issuerCalendarId, startDayId, dayId, numberOfDays, \ + totalNumberOfScheduleEntries, commandIndex, totalNumberOfCommands, calendarType, dayScheduleEntries, dayScheduleEntriesLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_PUBLISH_DAY_PROFILE_COMMAND_ID, "uuuuuuuuuuuub", providerId, providerId, issuerEventId, \ + issuerCalendarId, issuerCalendarId, startDayId, dayId, numberOfDays, totalNumberOfScheduleEntries, \ + commandIndex, totalNumberOfCommands, calendarType, dayScheduleEntries, dayScheduleEntriesLen); + +/** @brief Command description for PublishWeekProfile + * + * Command: PublishWeekProfile + * @param providerId INT32U + * @param providerId INT32U + * @param issuerEventId INT32U + * @param issuerCalendarId INT32U + * @param issuerCalendarId INT32U + * @param startWeekId INT8U + * @param weekId INT8U + * @param numberOfWeeks INT8U + * @param dayIdRefMonday INT8U + * @param dayIdRefTuesday INT8U + * @param dayIdRefWednesday INT8U + * @param dayIdRefThursday INT8U + * @param dayIdRefFriday INT8U + * @param dayIdRefSaturday INT8U + * @param dayIdRefSunday INT8U + */ +#define emberAfFillCommandCalendarClusterPublishWeekProfile( \ + providerId, providerId, issuerEventId, issuerCalendarId, issuerCalendarId, startWeekId, weekId, numberOfWeeks, dayIdRefMonday, \ + dayIdRefTuesday, dayIdRefWednesday, dayIdRefThursday, dayIdRefFriday, dayIdRefSaturday, dayIdRefSunday) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_PUBLISH_WEEK_PROFILE_COMMAND_ID, "uuuuuuuuuuuuuuu", providerId, providerId, issuerEventId, \ + issuerCalendarId, issuerCalendarId, startWeekId, weekId, numberOfWeeks, dayIdRefMonday, \ + dayIdRefTuesday, dayIdRefWednesday, dayIdRefThursday, dayIdRefFriday, dayIdRefSaturday, \ + dayIdRefSunday); + +/** @brief Command description for PublishSeasons + * + * Command: PublishSeasons + * @param providerId INT32U + * @param providerId INT32U + * @param issuerEventId INT32U + * @param issuerCalendarId INT32U + * @param issuerCalendarId INT32U + * @param commandIndex INT8U + * @param totalNumberOfCommands INT8U + * @param seasonEntries SeasonEntry [] + * @param seasonEntriesLen int + */ +#define emberAfFillCommandCalendarClusterPublishSeasons(providerId, providerId, issuerEventId, issuerCalendarId, issuerCalendarId, \ + commandIndex, totalNumberOfCommands, seasonEntries, seasonEntriesLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_PUBLISH_SEASONS_COMMAND_ID, "uuuuuuub", providerId, providerId, issuerEventId, issuerCalendarId, \ + issuerCalendarId, commandIndex, totalNumberOfCommands, seasonEntries, seasonEntriesLen); + +/** @brief Command description for PublishSpecialDays + * + * Command: PublishSpecialDays + * @param providerId INT32U + * @param startTime UTC_TIME + * @param issuerEventId INT32U + * @param numberOfEvents INT8U + * @param issuerCalendarId INT32U + * @param calendarType CalendarType + * @param startTime UTC_TIME + * @param providerId INT32U + * @param calendarType CalendarType + * @param issuerCalendarId INT32U + * @param totalNumberOfSpecialDays INT8U + * @param commandIndex INT8U + * @param totalNumberOfCommands INT8U + * @param specialDayEntries SpecialDay [] + * @param specialDayEntriesLen int + */ +#define emberAfFillCommandCalendarClusterPublishSpecialDays( \ + providerId, startTime, issuerEventId, numberOfEvents, issuerCalendarId, calendarType, startTime, providerId, calendarType, \ + issuerCalendarId, totalNumberOfSpecialDays, commandIndex, totalNumberOfCommands, specialDayEntries, specialDayEntriesLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_PUBLISH_SPECIAL_DAYS_COMMAND_ID, "uuuuuuuuuuuuub", providerId, startTime, issuerEventId, \ + numberOfEvents, issuerCalendarId, calendarType, startTime, providerId, calendarType, \ + issuerCalendarId, totalNumberOfSpecialDays, commandIndex, totalNumberOfCommands, specialDayEntries, \ + specialDayEntriesLen); + +/** @brief Command description for GetCalendarCancellation + * + * Command: GetCalendarCancellation + * @param providerId INT32U + * @param issuerCalendarId INT32U + * @param calendarType CalendarType + */ +#define emberAfFillCommandCalendarClusterGetCalendarCancellation(providerId, issuerCalendarId, calendarType) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_GET_CALENDAR_CANCELLATION_COMMAND_ID, "uuu", providerId, issuerCalendarId, calendarType); + +/** @brief Command description for GetChangeOfTenancy + * + * Command: GetChangeOfTenancy + * @param providerId INT32U + * @param issuerEventId INT32U + * @param tariffType TariffType + * @param implementationDateTime UTC_TIME + * @param proposedTenancyChangeControl ProposedChangeControl + */ +#define emberAfFillCommandDevice \ + ManagementClusterGetChangeOfTenancy(providerId, issuerEventId, tariffType, implementationDateTime, \ + proposedTenancyChangeControl) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_GET_CHANGE_OF_TENANCY_COMMAND_ID, "uuuuu", providerId, issuerEventId, tariffType, \ + implementationDateTime, proposedTenancyChangeControl); + +/** @brief Command description for GetChangeOfSupplier + * + * Command: GetChangeOfSupplier + * @param currentProviderId INT32U + * @param issuerEventId INT32U + * @param tariffType TariffType + * @param proposedProviderId INT32U + * @param providerChangeImplementationTime UTC_TIME + * @param providerChangeControl ProposedChangeControl + * @param proposedProviderName OCTET_STRING + * @param proposedProviderContactDetails OCTET_STRING + */ +#define emberAfFillCommandDevice \ + ManagementClusterGetChangeOfSupplier(currentProviderId, issuerEventId, tariffType, proposedProviderId, \ + providerChangeImplementationTime, providerChangeControl, proposedProviderName, \ + proposedProviderContactDetails) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_GET_CHANGE_OF_SUPPLIER_COMMAND_ID, "uuuuuuuu", currentProviderId, issuerEventId, tariffType, \ + proposedProviderId, providerChangeImplementationTime, providerChangeControl, \ + proposedProviderName, proposedProviderContactDetails); + +/** @brief Command description for RequestNewPassword + * + * Command: RequestNewPassword + * @param passwordType PasswordType + * @param issuerEventId INT32U + * @param implementationDateTime UTC_TIME + * @param durationInMinutes INT16U + * @param passwordType PasswordType + * @param password OCTET_STRING + */ +#define emberAfFillCommandDevice \ + ManagementClusterRequestNewPassword(passwordType, issuerEventId, implementationDateTime, durationInMinutes, passwordType, \ + password) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_REQUEST_NEW_PASSWORD_COMMAND_ID, "uuuuuu", passwordType, issuerEventId, \ + implementationDateTime, durationInMinutes, passwordType, password); + +/** @brief Command description for GetSiteId + * + * Command: GetSiteId + * @param issuerEventId INT32U + * @param siteIdTime UTC_TIME + * @param providerId INT32U + * @param siteId OCTET_STRING + */ +#define emberAfFillCommandDevice \ + ManagementClusterGetSiteId(issuerEventId, siteIdTime, providerId, siteId) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_GET_SITE_ID_COMMAND_ID, "uuuu", issuerEventId, siteIdTime, providerId, siteId); + +/** @brief Command description for ReportEventConfiguration + * + * Command: ReportEventConfiguration + * @param commandIndex INT8U + * @param issuerEventId INT32U + * @param totalCommands INT8U + * @param startDateTime UTC_TIME + * @param eventConfigurationPayload EventConfigurationPayload [] + * @param eventConfigurationPayloadLen int + * @param eventConfiguration EventConfiguration + * @param configurationControl EventConfigurationControl + * @param eventConfigurationPayload INT8U [] + * @param eventConfigurationPayloadLen int + */ +#define emberAfFillCommandDevice \ + ManagementClusterReportEventConfiguration(commandIndex, issuerEventId, totalCommands, startDateTime, \ + eventConfigurationPayload, eventConfigurationPayloadLen, eventConfiguration, \ + configurationControl, eventConfigurationPayload, eventConfigurationPayloadLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_REPORT_EVENT_CONFIGURATION_COMMAND_ID, "uuuubuub", commandIndex, issuerEventId, \ + totalCommands, startDateTime, eventConfigurationPayload, eventConfigurationPayloadLen, \ + eventConfiguration, configurationControl, eventConfigurationPayload, \ + eventConfigurationPayloadLen); + +/** @brief Command description for GetCIN + * + * Command: GetCIN + * @param eventId INT16U + */ +#define emberAfFillCommandDevice \ + ManagementClusterGetCIN(eventId) emberAfFillExternalBuffer(mask, \ + \ + ZCL_GET_CIN_COMMAND_ID, "u", eventId); + +/** @brief Command description for UpdateCIN + * + * Command: UpdateCIN + * @param issuerEventId INT32U + * @param implementationTime UTC_TIME + * @param providerId INT32U + * @param customerIdNumber OCTET_STRING + */ +#define emberAfFillCommandDevice \ + ManagementClusterUpdateCIN(issuerEventId, implementationTime, providerId, customerIdNumber) emberAfFillExternalBuffer( \ + mask, \ + \ + ZCL_UPDATE_CIN_COMMAND_ID, "uuuu", issuerEventId, implementationTime, providerId, customerIdNumber); + +/** @brief Command description for GetEventLog + * + * Command: GetEventLog + * @param eventControlLogId EventControlLogId + * @param logId EventLogId + * @param eventId INT16U + * @param eventId INT16U + * @param startTime UTC_TIME + * @param eventTime UTC_TIME + * @param endTime UTC_TIME + * @param eventControl EventActionControl + * @param numberOfEvents INT8U + * @param eventData OCTET_STRING + * @param eventOffset INT16U + */ +#define emberAfFillCommandEventsClusterGetEventLog(eventControlLogId, logId, eventId, eventId, startTime, eventTime, endTime, \ + eventControl, numberOfEvents, eventData, eventOffset) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_GET_EVENT_LOG_COMMAND_ID, "uuuuuuuuuuu", eventControlLogId, logId, eventId, eventId, startTime, \ + eventTime, endTime, eventControl, numberOfEvents, eventData, eventOffset); + +/** @brief Command description for ClearEventLogRequest + * + * Command: ClearEventLogRequest + * @param logId EventLogId + * @param totalNumberOfEvents INT16U + * @param commandIndex INT8U + * @param totalCommands INT8U + * @param logPayloadControl NumberOfEventsLogPayloadControl + * @param logPayload EventLogPayload [] + * @param logPayloadLen int + */ +#define emberAfFillCommandEventsClusterClearEventLogRequest(logId, totalNumberOfEvents, commandIndex, totalCommands, \ + logPayloadControl, logPayload, logPayloadLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_CLEAR_EVENT_LOG_REQUEST_COMMAND_ID, "uuuuub", logId, totalNumberOfEvents, commandIndex, \ + totalCommands, logPayloadControl, logPayload, logPayloadLen); + +/** @brief Command description for ClearEventLogResponse + * + * Command: ClearEventLogResponse + * @param clearedEventsLogs ClearedEventsLogs + */ +#define emberAfFillCommandEventsClusterClearEventLogResponse(clearedEventsLogs) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_CLEAR_EVENT_LOG_RESPONSE_COMMAND_ID, "u", clearedEventsLogs); + +/** @brief Command description for PairingResponse + * + * Command: PairingResponse + * @param pairingInformationVersion INT32U + * @param localPairingInformationVersion INT32U + * @param totalNumberOfDevices INT8U + * @param eui64OfRequestingDevice IEEE_ADDRESS + * @param commandIndex INT8U + * @param totalNumberOfCommands INT8U + * @param eui64s IEEE_ADDRESS [] + * @param eui64sLen int + */ +#define emberAfFillCommandMDU \ + PairingClusterPairingResponse(pairingInformationVersion, localPairingInformationVersion, totalNumberOfDevices, \ + eui64OfRequestingDevice, commandIndex, totalNumberOfCommands, eui64s, eui64sLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_PAIRING_RESPONSE_COMMAND_ID, "uuuuuub", pairingInformationVersion, \ + localPairingInformationVersion, totalNumberOfDevices, eui64OfRequestingDevice, commandIndex, \ + totalNumberOfCommands, eui64s, eui64sLen); + +/** @brief Command description for GetSuspendZclMessagesStatus + * + * Command: GetSuspendZclMessagesStatus + * @param period INT8U + */ +#define emberAfFillCommandSub \ + -GHzClusterGetSuspendZclMessagesStatus(period) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_GET_SUSPEND_ZCL_MESSAGES_STATUS_COMMAND_ID, "u", period); + +/** @brief Command description for InitiateKeyEstablishmentRequest + * + * Command: InitiateKeyEstablishmentRequest + * @param keyEstablishmentSuite BITMAP16 + * @param requestedKeyEstablishmentSuite BITMAP16 + * @param ephemeralDataGenerateTime INT8U + * @param ephemeralDataGenerateTime INT8U + * @param confirmKeyGenerateTime INT8U + * @param confirmKeyGenerateTime INT8U + * @param identity Identity + * @param identity Identity + */ +#define emberAfFillCommandKey \ + EstablishmentClusterInitiateKeyEstablishmentRequest(keyEstablishmentSuite, requestedKeyEstablishmentSuite, \ + ephemeralDataGenerateTime, ephemeralDataGenerateTime, \ + confirmKeyGenerateTime, confirmKeyGenerateTime, identity, identity) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_INITIATE_KEY_ESTABLISHMENT_REQUEST_COMMAND_ID, "uuuuuuuu", keyEstablishmentSuite, \ + requestedKeyEstablishmentSuite, ephemeralDataGenerateTime, ephemeralDataGenerateTime, \ + confirmKeyGenerateTime, confirmKeyGenerateTime, identity, identity); + +/** @brief Command description for EphemeralDataRequest + * + * Command: EphemeralDataRequest + * @param ephemeralData EphemeralData + * @param ephemeralData EphemeralData + */ +#define emberAfFillCommandKey \ + EstablishmentClusterEphemeralDataRequest(ephemeralData, ephemeralData) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_EPHEMERAL_DATA_REQUEST_COMMAND_ID, "uu", ephemeralData, ephemeralData); + +/** @brief Command description for ConfirmKeyDataRequest + * + * Command: ConfirmKeyDataRequest + * @param secureMessageAuthenticationCode Smac + * @param secureMessageAuthenticationCode Smac + */ +#define emberAfFillCommandKey \ + EstablishmentClusterConfirmKeyDataRequest(secureMessageAuthenticationCode, secureMessageAuthenticationCode) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_CONFIRM_KEY_DATA_REQUEST_COMMAND_ID, "uu", secureMessageAuthenticationCode, \ + secureMessageAuthenticationCode); + +/** @brief Command description for TerminateKeyEstablishment + * + * Command: TerminateKeyEstablishment + * @param statusCode AmiKeyEstablishmentStatus + * @param waitTime INT8U + * @param keyEstablishmentSuite BITMAP16 + */ +#define emberAfFillCommandKey \ + EstablishmentClusterTerminateKeyEstablishment(statusCode, waitTime, keyEstablishmentSuite) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_TERMINATE_KEY_ESTABLISHMENT_COMMAND_ID, "uuu", statusCode, waitTime, keyEstablishmentSuite); + +/** @brief Command description for RequestInformation + * + * Command: RequestInformation + * @param inquiryId ENUM8 + * @param number INT8U + * @param dataTypeId BITMAP8 + * @param buffer INT8U [] + * @param bufferLen int + * @param requestInformationPayload INT8U [] + * @param requestInformationPayloadLen int + */ +#define emberAfFillCommandInformationClusterRequestInformation(inquiryId, number, dataTypeId, buffer, bufferLen, \ + requestInformationPayload, requestInformationPayloadLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_REQUEST_INFORMATION_COMMAND_ID, "uuubb", inquiryId, number, dataTypeId, buffer, bufferLen, \ + requestInformationPayload, requestInformationPayloadLen); + +/** @brief Command description for PushInformationResponse + * + * Command: PushInformationResponse + * @param notificationList Notification [] + * @param notificationListLen int + * @param contents INT8U [] + * @param contentsLen int + */ +#define emberAfFillCommandInformationClusterPushInformationResponse(notificationList, notificationListLen, contents, contentsLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_PUSH_INFORMATION_RESPONSE_COMMAND_ID, "bb", notificationList, notificationListLen, contents, \ + contentsLen); + +/** @brief Command description for SendPreference + * + * Command: SendPreference + * @param preferenceType INT16U + * @param statusFeedbackList Status [] + * @param statusFeedbackListLen int + * @param preferencePayload INT8U [] + * @param preferencePayloadLen int + */ +#define emberAfFillCommandInformationClusterSendPreference(preferenceType, statusFeedbackList, statusFeedbackListLen, \ + preferencePayload, preferencePayloadLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_SEND_PREFERENCE_COMMAND_ID, "ubb", preferenceType, statusFeedbackList, statusFeedbackListLen, \ + preferencePayload, preferencePayloadLen); + +/** @brief Command description for ServerRequestPreference + * + * Command: ServerRequestPreference + * @param statusFeedback Status + * @param preferenceType INT16U + * @param preferencePayload INT8U [] + * @param preferencePayloadLen int + */ +#define emberAfFillCommandInformationClusterServerRequestPreference(statusFeedback, preferenceType, preferencePayload, \ + preferencePayloadLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_SERVER_REQUEST_PREFERENCE_COMMAND_ID, "uub", statusFeedback, preferenceType, preferencePayload, \ + preferencePayloadLen); + +/** @brief Command description for Update + * + * Command: Update + * @param accessControl ENUM8 + * @param statusFeedbackList Status [] + * @param statusFeedbackListLen int + * @param option BITMAP8 + * @param contents INT8U [] + * @param contentsLen int + */ +#define emberAfFillCommandInformationClusterUpdate(accessControl, statusFeedbackList, statusFeedbackListLen, option, contents, \ + contentsLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_UPDATE_COMMAND_ID, "ubub", accessControl, statusFeedbackList, statusFeedbackListLen, option, \ + contents, contentsLen); + +/** @brief Command description for Delete + * + * Command: Delete + * @param deletionOptions BITMAP8 + * @param notificationList Notification [] + * @param notificationListLen int + * @param contentIds INT16U [] + * @param contentIdsLen int + */ +#define emberAfFillCommandInformationClusterDelete(deletionOptions, notificationList, notificationListLen, contentIds, \ + contentIdsLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_DELETE_COMMAND_ID, "ubb", deletionOptions, notificationList, notificationListLen, contentIds, \ + contentIdsLen); + +/** @brief Command description for ConfigureNodeDescription + * + * Command: ConfigureNodeDescription + * @param description CHAR_STRING + * @param notificationList Notification [] + * @param notificationListLen int + */ +#define emberAfFillCommandInformationClusterConfigureNodeDescription(description, notificationList, notificationListLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_CONFIGURE_NODE_DESCRIPTION_COMMAND_ID, "ub", description, notificationList, \ + notificationListLen); + +/** @brief Command description for ConfigureDeliveryEnable + * + * Command: ConfigureDeliveryEnable + * @param enable BOOLEAN + */ +#define emberAfFillCommandInformationClusterConfigureDeliveryEnable(enable) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_CONFIGURE_DELIVERY_ENABLE_COMMAND_ID, "u", enable); + +/** @brief Command description for ConfigurePushInformationTimer + * + * Command: ConfigurePushInformationTimer + * @param timer INT32U + */ +#define emberAfFillCommandInformationClusterConfigurePushInformationTimer(timer) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_CONFIGURE_PUSH_INFORMATION_TIMER_COMMAND_ID, "u", timer); + +/** @brief Command description for ConfigureSetRootId + * + * Command: ConfigureSetRootId + * @param rootId INT16U + */ +#define emberAfFillCommandInformationClusterConfigureSetRootId(rootId) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_CONFIGURE_SET_ROOT_ID_COMMAND_ID, "u", rootId); + +/** @brief Command description for ReadFileRequest + * + * Command: ReadFileRequest + * @param fileIndex INT16U + * @param writeOptions BITMAP8 + * @param fileStartPositionAndRequestedOctetCount INT8U [] + * @param fileStartPositionAndRequestedOctetCountLen int + * @param fileSize INT8U [] + * @param fileSizeLen int + */ +#define emberAfFillCommandData \ + SharingClusterReadFileRequest(fileIndex, writeOptions, fileStartPositionAndRequestedOctetCount, \ + fileStartPositionAndRequestedOctetCountLen, fileSize, fileSizeLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_READ_FILE_REQUEST_COMMAND_ID, "uubb", fileIndex, writeOptions, \ + fileStartPositionAndRequestedOctetCount, fileStartPositionAndRequestedOctetCountLen, fileSize, \ + fileSizeLen); + +/** @brief Command description for ReadRecordRequest + * + * Command: ReadRecordRequest + * @param fileIndex INT16U + * @param fileIndex INT16U + * @param fileStartRecordAndRequestedRecordCount INT8U [] + * @param fileStartRecordAndRequestedRecordCountLen int + * @param fileStartPosition INT32U + * @param octetCount INT32U + */ +#define emberAfFillCommandData \ + SharingClusterReadRecordRequest(fileIndex, fileIndex, fileStartRecordAndRequestedRecordCount, \ + fileStartRecordAndRequestedRecordCountLen, fileStartPosition, octetCount) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_READ_RECORD_REQUEST_COMMAND_ID, "uubuu", fileIndex, fileIndex, \ + fileStartRecordAndRequestedRecordCount, fileStartRecordAndRequestedRecordCountLen, \ + fileStartPosition, octetCount); + +/** @brief Command description for WriteFileResponse + * + * Command: WriteFileResponse + * @param status ENUM8 + * @param fileIndex INT16U + * @param fileIndex INT8U [] + * @param fileIndexLen int + * @param fileStartRecord INT16U + * @param recordCount INT16U + */ +#define emberAfFillCommandData \ + SharingClusterWriteFileResponse(status, fileIndex, fileIndex, fileIndexLen, fileStartRecord, recordCount) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_WRITE_FILE_RESPONSE_COMMAND_ID, "uubuu", status, fileIndex, fileIndex, fileIndexLen, \ + fileStartRecord, recordCount); + +/** @brief Command description for FileTransmission + * + * Command: FileTransmission + * @param transmitOptions BITMAP8 + * @param buffer INT8U [] + * @param bufferLen int + */ +#define emberAfFillCommandData \ + SharingClusterFileTransmission(transmitOptions, buffer, bufferLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_FILE_TRANSMISSION_COMMAND_ID, "ub", transmitOptions, buffer, bufferLen); + +/** @brief Command description for RecordTransmission + * + * Command: RecordTransmission + * @param transmitOptions BITMAP8 + * @param buffer INT8U [] + * @param bufferLen int + */ +#define emberAfFillCommandData \ + SharingClusterRecordTransmission(transmitOptions, buffer, bufferLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_RECORD_TRANSMISSION_COMMAND_ID, "ub", transmitOptions, buffer, bufferLen); + +/** @brief Command description for SearchGame + * + * Command: SearchGame + * @param specificGame ENUM8 + * @param gameId INT16U + * @param gameId INT16U + * @param gameMaster BOOLEAN + * @param listOfGame CHAR_STRING + */ +#define emberAfFillCommandGamingClusterSearchGame(specificGame, gameId, gameId, gameMaster, listOfGame) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_SEARCH_GAME_COMMAND_ID, "uuuuu", specificGame, gameId, gameId, gameMaster, listOfGame); + +/** @brief Command description for JoinGame + * + * Command: JoinGame + * @param gameId INT16U + * @param commandId INT8U + * @param joinAsMaster BOOLEAN + * @param status BITMAP8 + * @param nameOfGame CHAR_STRING + * @param message CHAR_STRING + */ +#define emberAfFillCommandGamingClusterJoinGame(gameId, commandId, joinAsMaster, status, nameOfGame, message) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_JOIN_GAME_COMMAND_ID, "uuuuuu", gameId, commandId, joinAsMaster, status, nameOfGame, message); + +/** @brief Command description for StartGame + * + * Command: StartGame + */ +#define emberAfFillCommandGamingClusterStartGame() \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_START_GAME_COMMAND_ID, "", ); + +/** @brief Command description for PauseGame + * + * Command: PauseGame + */ +#define emberAfFillCommandGamingClusterPauseGame() \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_PAUSE_GAME_COMMAND_ID, "", ); + +/** @brief Command description for ResumeGame + * + * Command: ResumeGame + */ +#define emberAfFillCommandGamingClusterResumeGame() \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_RESUME_GAME_COMMAND_ID, "", ); + +/** @brief Command description for QuitGame + * + * Command: QuitGame + */ +#define emberAfFillCommandGamingClusterQuitGame() \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_QUIT_GAME_COMMAND_ID, "", ); + +/** @brief Command description for EndGame + * + * Command: EndGame + */ +#define emberAfFillCommandGamingClusterEndGame() \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_END_GAME_COMMAND_ID, "", ); + +/** @brief Command description for StartOver + * + * Command: StartOver + */ +#define emberAfFillCommandGamingClusterStartOver() \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_START_OVER_COMMAND_ID, "", ); + +/** @brief Command description for ActionControl + * + * Command: ActionControl + * @param actions BITMAP32 + */ +#define emberAfFillCommandGamingClusterActionControl(actions) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_ACTION_CONTROL_COMMAND_ID, "u", actions); + +/** @brief Command description for DownloadGame + * + * Command: DownloadGame + */ +#define emberAfFillCommandGamingClusterDownloadGame() \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_DOWNLOAD_GAME_COMMAND_ID, "", ); + +/** @brief Command description for PathCreation + * + * Command: PathCreation + * @param originatorAddress DATA16 + * @param originatorAddress DATA16 + * @param destinationAddress DATA16 + * @param destinationAddress DATA16 + * @param dataRate INT8U + * @param dataRate INT8U + */ +#define emberAfFillCommandData \ + Rate ControlClusterPathCreation(originatorAddress, originatorAddress, destinationAddress, destinationAddress, dataRate, \ + dataRate) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_PATH_CREATION_COMMAND_ID, "uuuuuu", originatorAddress, originatorAddress, \ + destinationAddress, destinationAddress, dataRate, dataRate); + +/** @brief Command description for DataRateNotification + * + * Command: DataRateNotification + * @param originatorAddress DATA16 + * @param destinationAddress DATA16 + * @param dataRate INT8U + */ +#define emberAfFillCommandData \ + Rate ControlClusterDataRateNotification(originatorAddress, destinationAddress, dataRate) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_DATA_RATE_NOTIFICATION_COMMAND_ID, "uuu", originatorAddress, destinationAddress, dataRate); + +/** @brief Command description for PathDeletion + * + * Command: PathDeletion + * @param originatorAddress DATA16 + * @param destinationAddress DATA16 + */ +#define emberAfFillCommandData \ + Rate ControlClusterPathDeletion(originatorAddress, destinationAddress) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_PATH_DELETION_COMMAND_ID, "uu", originatorAddress, destinationAddress); + +/** @brief Command description for EstablishmentRequest + * + * Command: EstablishmentRequest + * @param flag BITMAP8 + * @param ackNack ENUM8 + * @param codecType ENUM8 + * @param codecType ENUM8 + * @param sampFreq ENUM8 + * @param codecRate ENUM8 + * @param serviceType ENUM8 + * @param buffer INT8U [] + * @param bufferLen int + */ +#define emberAfFillCommandVoice \ + over ZigBeeClusterEstablishmentRequest(flag, ackNack, codecType, codecType, sampFreq, codecRate, serviceType, buffer, \ + bufferLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_ESTABLISHMENT_REQUEST_COMMAND_ID, "uuuuuuub", flag, ackNack, codecType, codecType, sampFreq, \ + codecRate, serviceType, buffer, bufferLen); + +/** @brief Command description for VoiceTransmission + * + * Command: VoiceTransmission + * @param voiceData INT8U [] + * @param voiceDataLen int + * @param sequenceNumber INT8U + * @param errorFlag ENUM8 + */ +#define emberAfFillCommandVoice \ + over ZigBeeClusterVoiceTransmission(voiceData, voiceDataLen, sequenceNumber, errorFlag) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_VOICE_TRANSMISSION_COMMAND_ID, "buu", voiceData, voiceDataLen, sequenceNumber, errorFlag); + +/** @brief Command description for VoiceTransmissionCompletion + * + * Command: VoiceTransmissionCompletion + * @param controlType ENUM8 + */ +#define emberAfFillCommandVoice \ + over ZigBeeClusterVoiceTransmissionCompletion(controlType) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_VOICE_TRANSMISSION_COMPLETION_COMMAND_ID, "u", controlType); + +/** @brief Command description for ControlResponse + * + * Command: ControlResponse + * @param ackNack ENUM8 + */ +#define emberAfFillCommandVoice \ + over ZigBeeClusterControlResponse(ackNack) emberAfFillExternalBuffer(mask, \ + \ + ZCL_CONTROL_RESPONSE_COMMAND_ID, "u", ackNack); + +/** @brief Command description for JoinChatRequest + * + * Command: JoinChatRequest + * @param uid INT16U + * @param status ENUM8 + * @param nickname CHAR_STRING + * @param cid INT16U + * @param cid INT16U + */ +#define emberAfFillCommandChattingClusterJoinChatRequest(uid, status, nickname, cid, cid) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_JOIN_CHAT_REQUEST_COMMAND_ID, "uuuuu", uid, status, nickname, cid, cid); + +/** @brief Command description for LeaveChatRequest + * + * Command: LeaveChatRequest + * @param cid INT16U + * @param status ENUM8 + * @param uid INT16U + * @param cid INT16U + * @param chatParticipantList ChatParticipant [] + * @param chatParticipantListLen int + */ +#define emberAfFillCommandChattingClusterLeaveChatRequest(cid, status, uid, cid, chatParticipantList, chatParticipantListLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_LEAVE_CHAT_REQUEST_COMMAND_ID, "uuuub", cid, status, uid, cid, chatParticipantList, \ + chatParticipantListLen); + +/** @brief Command description for SearchChatRequest + * + * Command: SearchChatRequest + * @param cid INT16U + * @param uid INT16U + * @param nickname CHAR_STRING + */ +#define emberAfFillCommandChattingClusterSearchChatRequest(cid, uid, nickname) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_SEARCH_CHAT_REQUEST_COMMAND_ID, "uuu", cid, uid, nickname); + +/** @brief Command description for SwitchChairmanResponse + * + * Command: SwitchChairmanResponse + * @param cid INT16U + * @param cid INT16U + * @param uid INT16U + * @param uid INT16U + * @param nickname CHAR_STRING + */ +#define emberAfFillCommandChattingClusterSwitchChairmanResponse(cid, cid, uid, uid, nickname) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_SWITCH_CHAIRMAN_RESPONSE_COMMAND_ID, "uuuuu", cid, cid, uid, uid, nickname); + +/** @brief Command description for StartChatRequest + * + * Command: StartChatRequest + * @param name CHAR_STRING + * @param options BITMAP8 + * @param uid INT16U + * @param chatRoomList ChatRoom [] + * @param chatRoomListLen int + * @param nickname CHAR_STRING + */ +#define emberAfFillCommandChattingClusterStartChatRequest(name, options, uid, chatRoomList, chatRoomListLen, nickname) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_START_CHAT_REQUEST_COMMAND_ID, "uuubu", name, options, uid, chatRoomList, chatRoomListLen, \ + nickname); + +/** @brief Command description for ChatMessage + * + * Command: ChatMessage + * @param destinationUid INT16U + * @param cid INT16U + * @param sourceUid INT16U + * @param cid INT16U + * @param nickname CHAR_STRING + * @param message CHAR_STRING + */ +#define emberAfFillCommandChattingClusterChatMessage(destinationUid, cid, sourceUid, cid, nickname, message) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_CHAT_MESSAGE_COMMAND_ID, "uuuuuu", destinationUid, cid, sourceUid, cid, nickname, message); + +/** @brief Command description for GetNodeInformationRequest + * + * Command: GetNodeInformationRequest + * @param cid INT16U + * @param cid INT16U + * @param uid INT16U + * @param nodeInformationList NodeInformation [] + * @param nodeInformationListLen int + */ +#define emberAfFillCommandChattingClusterGetNodeInformationRequest(cid, cid, uid, nodeInformationList, nodeInformationListLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_GET_NODE_INFORMATION_REQUEST_COMMAND_ID, "uuub", cid, cid, uid, nodeInformationList, \ + nodeInformationListLen); + +/** @brief Command description for SwitchChairmanNotification + * + * Command: SwitchChairmanNotification + * @param cid INT16U + * @param uid INT16U + * @param address DATA16 + * @param endpoint INT8U + */ +#define emberAfFillCommandChattingClusterSwitchChairmanNotification(cid, uid, address, endpoint) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_SWITCH_CHAIRMAN_NOTIFICATION_COMMAND_ID, "uuuu", cid, uid, address, endpoint); + +/** @brief Command description for GetNodeInformationResponse + * + * Command: GetNodeInformationResponse + * @param status ENUM8 + * @param cid INT16U + * @param uid INT16U + * @param addressEndpointAndNickname INT8U [] + * @param addressEndpointAndNicknameLen int + */ +#define emberAfFillCommandChattingClusterGetNodeInformationResponse(status, cid, uid, addressEndpointAndNickname, \ + addressEndpointAndNicknameLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_GET_NODE_INFORMATION_RESPONSE_COMMAND_ID, "uuub", status, cid, uid, addressEndpointAndNickname, \ + addressEndpointAndNicknameLen); + +/** @brief Command description for BuyRequest + * + * Command: BuyRequest + * @param userId OCTET_STRING + * @param serialNumber OCTET_STRING + * @param userType INT16U + * @param currency INT32U + * @param serviceId INT16U + * @param priceTrailingDigit INT8U + * @param goodId OCTET_STRING + * @param price INT32U + * @param timestamp OCTET_STRING + * @param transId INT16U + * @param transStatus ENUM8 + */ +#define emberAfFillCommandPaymentClusterBuyRequest(userId, serialNumber, userType, currency, serviceId, priceTrailingDigit, \ + goodId, price, timestamp, transId, transStatus) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_BUY_REQUEST_COMMAND_ID, "uuuuuuuuuuu", userId, serialNumber, userType, currency, serviceId, \ + priceTrailingDigit, goodId, price, timestamp, transId, transStatus); + +/** @brief Command description for AcceptPayment + * + * Command: AcceptPayment + * @param userId OCTET_STRING + * @param serialNumber OCTET_STRING + * @param userType INT16U + * @param currency INT32U + * @param serviceId INT16U + * @param priceTrailingDigit INT8U + * @param goodId OCTET_STRING + * @param price INT32U + * @param timestamp OCTET_STRING + */ +#define emberAfFillCommandPaymentClusterAcceptPayment(userId, serialNumber, userType, currency, serviceId, priceTrailingDigit, \ + goodId, price, timestamp) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_ACCEPT_PAYMENT_COMMAND_ID, "uuuuuuuuu", userId, serialNumber, userType, currency, serviceId, \ + priceTrailingDigit, goodId, price, timestamp); + +/** @brief Command description for PaymentConfirm + * + * Command: PaymentConfirm + * @param serialNumber OCTET_STRING + * @param serialNumber OCTET_STRING + * @param transId INT16U + * @param status ENUM8 + * @param transStatus ENUM8 + */ +#define emberAfFillCommandPaymentClusterPaymentConfirm(serialNumber, serialNumber, transId, status, transStatus) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_PAYMENT_CONFIRM_COMMAND_ID, "uuuuu", serialNumber, serialNumber, transId, status, transStatus); + +/** @brief Command description for Subscribe + * + * Command: Subscribe + * @param userId OCTET_STRING + * @param userId OCTET_STRING + * @param serviceId INT16U + * @param serviceId INT16U + * @param serviceProviderId INT16U + * @param serviceProviderId INT16U + */ +#define emberAfFillCommandBillingClusterSubscribe(userId, userId, serviceId, serviceId, serviceProviderId, serviceProviderId) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_SUBSCRIBE_COMMAND_ID, "uuuuuu", userId, userId, serviceId, serviceId, serviceProviderId, \ + serviceProviderId); + +/** @brief Command description for Unsubscribe + * + * Command: Unsubscribe + * @param userId OCTET_STRING + * @param userId OCTET_STRING + * @param serviceId INT16U + * @param serviceId INT16U + * @param serviceProviderId INT16U + * @param serviceProviderId INT16U + * @param timestamp OCTET_STRING + * @param duration INT16U + */ +#define emberAfFillCommandBillingClusterUnsubscribe(userId, userId, serviceId, serviceId, serviceProviderId, serviceProviderId, \ + timestamp, duration) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_UNSUBSCRIBE_COMMAND_ID, "uuuuuuuu", userId, userId, serviceId, serviceId, serviceProviderId, \ + serviceProviderId, timestamp, duration); + +/** @brief Command description for StartBillingSession + * + * Command: StartBillingSession + * @param userId OCTET_STRING + * @param serviceId INT16U + * @param serviceProviderId INT16U + */ +#define emberAfFillCommandBillingClusterStartBillingSession(userId, serviceId, serviceProviderId) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_START_BILLING_SESSION_COMMAND_ID, "uuu", userId, serviceId, serviceProviderId); + +/** @brief Command description for StopBillingSession + * + * Command: StopBillingSession + * @param userId OCTET_STRING + * @param serviceId INT16U + * @param serviceProviderId INT16U + */ +#define emberAfFillCommandBillingClusterStopBillingSession(userId, serviceId, serviceProviderId) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_STOP_BILLING_SESSION_COMMAND_ID, "uuu", userId, serviceId, serviceProviderId); + +/** @brief Command description for BillStatusNotification + * + * Command: BillStatusNotification + * @param userId OCTET_STRING + * @param status ENUM8 + */ +#define emberAfFillCommandBillingClusterBillStatusNotification(userId, status) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_BILL_STATUS_NOTIFICATION_COMMAND_ID, "uu", userId, status); + +/** @brief Command description for SessionKeepAlive + * + * Command: SessionKeepAlive + * @param userId OCTET_STRING + * @param serviceId INT16U + * @param serviceProviderId INT16U + */ +#define emberAfFillCommandBillingClusterSessionKeepAlive(userId, serviceId, serviceProviderId) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_SESSION_KEEP_ALIVE_COMMAND_ID, "uuu", userId, serviceId, serviceProviderId); + +/** @brief Command description for GetAlerts + * + * Command: GetAlerts + * @param alertsCount AlertCount + * @param alertStructures AlertStructure [] + * @param alertStructuresLen int + */ +#define emberAfFillCommandAppliance \ + Events and AlertClusterGetAlerts(alertsCount, alertStructures, alertStructuresLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_GET_ALERTS_COMMAND_ID, "ub", alertsCount, alertStructures, alertStructuresLen); + +/** @brief Command description for AlertsNotification + * + * Command: AlertsNotification + * @param alertsCount AlertCount + * @param alertStructures AlertStructure [] + * @param alertStructuresLen int + */ +#define emberAfFillCommandAppliance \ + Events and AlertClusterAlertsNotification(alertsCount, alertStructures, alertStructuresLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_ALERTS_NOTIFICATION_COMMAND_ID, "ub", alertsCount, alertStructures, alertStructuresLen); + +/** @brief Command description for EventsNotification + * + * Command: EventsNotification + * @param eventHeader INT8U + * @param eventId EventIdentification + */ +#define emberAfFillCommandAppliance \ + Events and AlertClusterEventsNotification(eventHeader, eventId) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_EVENTS_NOTIFICATION_COMMAND_ID, "uu", eventHeader, eventId); + +/** @brief Command description for LogNotification + * + * Command: LogNotification + * @param timeStamp TIME_OF_DAY + * @param logId INT32U + * @param logId INT32U + * @param logLength INT32U + * @param logPayload INT8U [] + * @param logPayloadLen int + */ +#define emberAfFillCommandAppliance \ + StatisticsClusterLogNotification(timeStamp, logId, logId, logLength, logPayload, logPayloadLen) emberAfFillExternalBuffer( \ + mask, \ + \ + ZCL_LOG_NOTIFICATION_COMMAND_ID, "uuuub", timeStamp, logId, logId, logLength, logPayload, logPayloadLen); + +/** @brief Command description for LogQueueRequest + * + * Command: LogQueueRequest + * @param timeStamp TIME_OF_DAY + * @param logId INT32U + * @param logLength INT32U + * @param logPayload INT8U [] + * @param logPayloadLen int + */ +#define emberAfFillCommandAppliance \ + StatisticsClusterLogQueueRequest(timeStamp, logId, logLength, logPayload, logPayloadLen) emberAfFillExternalBuffer( \ + mask, \ + \ + ZCL_LOG_QUEUE_REQUEST_COMMAND_ID, "uuub", timeStamp, logId, logLength, logPayload, logPayloadLen); + +/** @brief Command description for LogQueueResponse + * + * Command: LogQueueResponse + * @param logQueueSize INT8U + * @param logIds INT32U [] + * @param logIdsLen int + */ +#define emberAfFillCommandAppliance \ + StatisticsClusterLogQueueResponse(logQueueSize, logIds, logIdsLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_LOG_QUEUE_RESPONSE_COMMAND_ID, "ub", logQueueSize, logIds, logIdsLen); + +/** @brief Command description for StatisticsAvailable + * + * Command: StatisticsAvailable + * @param logQueueSize INT8U + * @param logIds INT32U [] + * @param logIdsLen int + */ +#define emberAfFillCommandAppliance \ + StatisticsClusterStatisticsAvailable(logQueueSize, logIds, logIdsLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_STATISTICS_AVAILABLE_COMMAND_ID, "ub", logQueueSize, logIds, logIdsLen); + +/** @brief Command description for GetProfileInfoCommand + * + * Command: GetProfileInfoCommand + * @param profileCount INT8U + * @param profileIntervalPeriod ENUM8 + * @param maxNumberOfIntervals INT8U + * @param listOfAttributes INT16U [] + * @param listOfAttributesLen int + */ +#define emberAfFillCommandElectrical \ + MeasurementClusterGetProfileInfoCommand(profileCount, profileIntervalPeriod, maxNumberOfIntervals, listOfAttributes, \ + listOfAttributesLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_GET_PROFILE_INFO_COMMAND_COMMAND_ID, "uuub", profileCount, profileIntervalPeriod, \ + maxNumberOfIntervals, listOfAttributes, listOfAttributesLen); + +/** @brief Command description for GetMeasurementProfileResponseCommand + * + * Command: GetMeasurementProfileResponseCommand + * @param startTime INT32U + * @param attributeId INT16U + * @param status ENUM8 + * @param startTime INT32U + * @param profileIntervalPeriod ENUM8 + * @param numberOfIntervals ENUM8 + * @param numberOfIntervalsDelivered INT8U + * @param attributeId INT16U + * @param intervals INT8U [] + * @param intervalsLen int + */ +#define emberAfFillCommandElectrical \ + MeasurementClusterGetMeasurementProfileResponseCommand(startTime, attributeId, status, startTime, profileIntervalPeriod, \ + numberOfIntervals, numberOfIntervalsDelivered, attributeId, intervals, \ + intervalsLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_GET_MEASUREMENT_PROFILE_RESPONSE_COMMAND_COMMAND_ID, "uuuuuuuub", startTime, attributeId, \ + status, startTime, profileIntervalPeriod, numberOfIntervals, numberOfIntervalsDelivered, \ + attributeId, intervals, intervalsLen); + +/** @brief Command description for ScanRequest + * + * Command: ScanRequest + * @param transaction INT32U + * @param zigbeeInformation ZigbeeInformation + * @param zllInformation ZllInformation + */ +#define emberAfFillCommandZLL \ + CommissioningClusterScanRequest(transaction, zigbeeInformation, zllInformation) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_SCAN_REQUEST_COMMAND_ID, "uuu", transaction, zigbeeInformation, zllInformation); + +/** @brief Command description for ScanResponse + * + * Command: ScanResponse + * @param transaction INT32U + * @param rssiCorrection INT8U + * @param zigbeeInformation ZigbeeInformation + * @param zllInformation ZllInformation + * @param keyBitmask KeyBitmask + * @param responseId INT32U + * @param extendedPanId IEEE_ADDRESS + * @param networkUpdateId INT8U + * @param logicalChannel INT8U + * @param panId INT16U + * @param networkAddress INT16U + * @param numberOfSubDevices INT8U + * @param totalGroupIds INT8U + * @param endpointId INT8U + * @param profileId INT16U + * @param deviceId INT16U + * @param version INT8U + * @param groupIdCount INT8U + */ +#define emberAfFillCommandZLL \ + CommissioningClusterScanResponse(transaction, rssiCorrection, zigbeeInformation, zllInformation, keyBitmask, responseId, \ + extendedPanId, networkUpdateId, logicalChannel, panId, networkAddress, numberOfSubDevices, \ + totalGroupIds, endpointId, profileId, deviceId, version, groupIdCount) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_SCAN_RESPONSE_COMMAND_ID, "uuuuuuuuuuuuuuuuuu", transaction, rssiCorrection, \ + zigbeeInformation, zllInformation, keyBitmask, responseId, extendedPanId, networkUpdateId, \ + logicalChannel, panId, networkAddress, numberOfSubDevices, totalGroupIds, endpointId, profileId, \ + deviceId, version, groupIdCount); + +/** @brief Command description for DeviceInformationRequest + * + * Command: DeviceInformationRequest + * @param transaction INT32U + * @param startIndex INT8U + */ +#define emberAfFillCommandZLL \ + CommissioningClusterDeviceInformationRequest(transaction, startIndex) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_DEVICE_INFORMATION_REQUEST_COMMAND_ID, "uu", transaction, startIndex); + +/** @brief Command description for DeviceInformationResponse + * + * Command: DeviceInformationResponse + * @param transaction INT32U + * @param numberOfSubDevices INT8U + * @param startIndex INT8U + * @param deviceInformationRecordCount INT8U + * @param deviceInformationRecordList DeviceInformationRecord [] + * @param deviceInformationRecordListLen int + */ +#define emberAfFillCommandZLL \ + CommissioningClusterDeviceInformationResponse(transaction, numberOfSubDevices, startIndex, deviceInformationRecordCount, \ + deviceInformationRecordList, deviceInformationRecordListLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_DEVICE_INFORMATION_RESPONSE_COMMAND_ID, "uuuub", transaction, numberOfSubDevices, \ + startIndex, deviceInformationRecordCount, deviceInformationRecordList, \ + deviceInformationRecordListLen); + +/** @brief Command description for IdentifyRequest + * + * Command: IdentifyRequest + * @param transaction INT32U + * @param identifyDuration INT16U + */ +#define emberAfFillCommandZLL \ + CommissioningClusterIdentifyRequest(transaction, identifyDuration) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_IDENTIFY_REQUEST_COMMAND_ID, "uu", transaction, identifyDuration); + +/** @brief Command description for ResetToFactoryNewRequest + * + * Command: ResetToFactoryNewRequest + * @param transaction INT32U + */ +#define emberAfFillCommandZLL \ + CommissioningClusterResetToFactoryNewRequest(transaction) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_RESET_TO_FACTORY_NEW_REQUEST_COMMAND_ID, "u", transaction); + +/** @brief Command description for NetworkStartRequest + * + * Command: NetworkStartRequest + * @param transaction INT32U + * @param extendedPanId IEEE_ADDRESS + * @param keyIndex KeyIndex + * @param encryptedNetworkKey SECURITY_KEY + * @param logicalChannel INT8U + * @param panId INT16U + * @param networkAddress INT16U + * @param groupIdentifiersBegin INT16U + * @param groupIdentifiersEnd INT16U + * @param freeNetworkAddressRangeBegin INT16U + * @param freeNetworkAddressRangeEnd INT16U + * @param freeGroupIdentifierRangeBegin INT16U + * @param freeGroupIdentifierRangeEnd INT16U + * @param initiatorIeeeAddress IEEE_ADDRESS + * @param initiatorNetworkAddress INT16U + */ +#define emberAfFillCommandZLL \ + CommissioningClusterNetworkStartRequest( \ + transaction, extendedPanId, keyIndex, encryptedNetworkKey, logicalChannel, panId, networkAddress, groupIdentifiersBegin, \ + groupIdentifiersEnd, freeNetworkAddressRangeBegin, freeNetworkAddressRangeEnd, freeGroupIdentifierRangeBegin, \ + freeGroupIdentifierRangeEnd, initiatorIeeeAddress, initiatorNetworkAddress) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_NETWORK_START_REQUEST_COMMAND_ID, "uuuuuuuuuuuuuuu", transaction, extendedPanId, keyIndex, \ + encryptedNetworkKey, logicalChannel, panId, networkAddress, groupIdentifiersBegin, \ + groupIdentifiersEnd, freeNetworkAddressRangeBegin, freeNetworkAddressRangeEnd, \ + freeGroupIdentifierRangeBegin, freeGroupIdentifierRangeEnd, initiatorIeeeAddress, \ + initiatorNetworkAddress); + +/** @brief Command description for NetworkStartResponse + * + * Command: NetworkStartResponse + * @param transaction INT32U + * @param status ZllStatus + * @param extendedPanId IEEE_ADDRESS + * @param networkUpdateId INT8U + * @param logicalChannel INT8U + * @param panId INT16U + */ +#define emberAfFillCommandZLL \ + CommissioningClusterNetworkStartResponse(transaction, status, extendedPanId, networkUpdateId, logicalChannel, panId) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_NETWORK_START_RESPONSE_COMMAND_ID, "uuuuuu", transaction, status, extendedPanId, \ + networkUpdateId, logicalChannel, panId); + +/** @brief Command description for NetworkJoinRouterRequest + * + * Command: NetworkJoinRouterRequest + * @param transaction INT32U + * @param extendedPanId IEEE_ADDRESS + * @param keyIndex KeyIndex + * @param encryptedNetworkKey SECURITY_KEY + * @param networkUpdateId INT8U + * @param logicalChannel INT8U + * @param panId INT16U + * @param networkAddress INT16U + * @param groupIdentifiersBegin INT16U + * @param groupIdentifiersEnd INT16U + * @param freeNetworkAddressRangeBegin INT16U + * @param freeNetworkAddressRangeEnd INT16U + * @param freeGroupIdentifierRangeBegin INT16U + * @param freeGroupIdentifierRangeEnd INT16U + */ +#define emberAfFillCommandZLL \ + CommissioningClusterNetworkJoinRouterRequest(transaction, extendedPanId, keyIndex, encryptedNetworkKey, networkUpdateId, \ + logicalChannel, panId, networkAddress, groupIdentifiersBegin, \ + groupIdentifiersEnd, freeNetworkAddressRangeBegin, freeNetworkAddressRangeEnd, \ + freeGroupIdentifierRangeBegin, freeGroupIdentifierRangeEnd) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_NETWORK_JOIN_ROUTER_REQUEST_COMMAND_ID, "uuuuuuuuuuuuuu", transaction, extendedPanId, \ + keyIndex, encryptedNetworkKey, networkUpdateId, logicalChannel, panId, networkAddress, \ + groupIdentifiersBegin, groupIdentifiersEnd, freeNetworkAddressRangeBegin, \ + freeNetworkAddressRangeEnd, freeGroupIdentifierRangeBegin, freeGroupIdentifierRangeEnd); + +/** @brief Command description for NetworkJoinRouterResponse + * + * Command: NetworkJoinRouterResponse + * @param transaction INT32U + * @param status ZllStatus + */ +#define emberAfFillCommandZLL \ + CommissioningClusterNetworkJoinRouterResponse(transaction, status) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_NETWORK_JOIN_ROUTER_RESPONSE_COMMAND_ID, "uu", transaction, status); + +/** @brief Command description for NetworkJoinEndDeviceRequest + * + * Command: NetworkJoinEndDeviceRequest + * @param transaction INT32U + * @param extendedPanId IEEE_ADDRESS + * @param keyIndex KeyIndex + * @param encryptedNetworkKey SECURITY_KEY + * @param networkUpdateId INT8U + * @param logicalChannel INT8U + * @param panId INT16U + * @param networkAddress INT16U + * @param groupIdentifiersBegin INT16U + * @param groupIdentifiersEnd INT16U + * @param freeNetworkAddressRangeBegin INT16U + * @param freeNetworkAddressRangeEnd INT16U + * @param freeGroupIdentifierRangeBegin INT16U + * @param freeGroupIdentifierRangeEnd INT16U + */ +#define emberAfFillCommandZLL \ + CommissioningClusterNetworkJoinEndDeviceRequest(transaction, extendedPanId, keyIndex, encryptedNetworkKey, networkUpdateId, \ + logicalChannel, panId, networkAddress, groupIdentifiersBegin, \ + groupIdentifiersEnd, freeNetworkAddressRangeBegin, freeNetworkAddressRangeEnd, \ + freeGroupIdentifierRangeBegin, freeGroupIdentifierRangeEnd) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_NETWORK_JOIN_END_DEVICE_REQUEST_COMMAND_ID, "uuuuuuuuuuuuuu", transaction, extendedPanId, \ + keyIndex, encryptedNetworkKey, networkUpdateId, logicalChannel, panId, networkAddress, \ + groupIdentifiersBegin, groupIdentifiersEnd, freeNetworkAddressRangeBegin, \ + freeNetworkAddressRangeEnd, freeGroupIdentifierRangeBegin, freeGroupIdentifierRangeEnd); + +/** @brief Command description for NetworkJoinEndDeviceResponse + * + * Command: NetworkJoinEndDeviceResponse + * @param transaction INT32U + * @param status ZllStatus + */ +#define emberAfFillCommandZLL \ + CommissioningClusterNetworkJoinEndDeviceResponse(transaction, status) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_NETWORK_JOIN_END_DEVICE_RESPONSE_COMMAND_ID, "uu", transaction, status); + +/** @brief Command description for NetworkUpdateRequest + * + * Command: NetworkUpdateRequest + * @param transaction INT32U + * @param extendedPanId IEEE_ADDRESS + * @param networkUpdateId INT8U + * @param logicalChannel INT8U + * @param panId INT16U + * @param networkAddress INT16U + */ +#define emberAfFillCommandZLL \ + CommissioningClusterNetworkUpdateRequest(transaction, extendedPanId, networkUpdateId, logicalChannel, panId, networkAddress) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_NETWORK_UPDATE_REQUEST_COMMAND_ID, "uuuuuu", transaction, extendedPanId, networkUpdateId, \ + logicalChannel, panId, networkAddress); + +/** @brief Command description for EndpointInformation + * + * Command: EndpointInformation + * @param ieeeAddress IEEE_ADDRESS + * @param networkAddress INT16U + * @param endpointId INT8U + * @param profileId INT16U + * @param deviceId INT16U + * @param version INT8U + */ +#define emberAfFillCommandZLL \ + CommissioningClusterEndpointInformation(ieeeAddress, networkAddress, endpointId, profileId, deviceId, version) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_ENDPOINT_INFORMATION_COMMAND_ID, "uuuuuu", ieeeAddress, networkAddress, endpointId, \ + profileId, deviceId, version); + +/** @brief Command description for GetGroupIdentifiersRequest + * + * Command: GetGroupIdentifiersRequest + * @param startIndex INT8U + * @param total INT8U + * @param startIndex INT8U + * @param count INT8U + * @param groupInformationRecordList GroupInformationRecord [] + * @param groupInformationRecordListLen int + */ +#define emberAfFillCommandZLL \ + CommissioningClusterGetGroupIdentifiersRequest(startIndex, total, startIndex, count, groupInformationRecordList, \ + groupInformationRecordListLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_GET_GROUP_IDENTIFIERS_REQUEST_COMMAND_ID, "uuuub", startIndex, total, startIndex, count, \ + groupInformationRecordList, groupInformationRecordListLen); + +/** @brief Command description for GetEndpointListRequest + * + * Command: GetEndpointListRequest + * @param startIndex INT8U + * @param total INT8U + * @param startIndex INT8U + * @param count INT8U + * @param endpointInformationRecordList EndpointInformationRecord [] + * @param endpointInformationRecordListLen int + */ +#define emberAfFillCommandZLL \ + CommissioningClusterGetEndpointListRequest(startIndex, total, startIndex, count, endpointInformationRecordList, \ + endpointInformationRecordListLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_GET_ENDPOINT_LIST_REQUEST_COMMAND_ID, "uuuub", startIndex, total, startIndex, count, \ + endpointInformationRecordList, endpointInformationRecordListLen); + +/** @brief Command description for CommandOne + * + * Command: CommandOne + * @param argOne INT8U + * @param argOne INT8U + */ +#define emberAfFillCommandSample \ + Mfg Specific ClusterClusterCommandOne(argOne, argOne) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_COMMAND_ONE_COMMAND_ID, "uu", argOne, argOne); + +/** @brief Command description for SetToken + * + * Command: SetToken + * @param token INT16U + * @param token INT16U + * @param data OCTET_STRING + * @param data OCTET_STRING + */ +#define emberAfFillCommandConfiguration \ + ClusterClusterSetToken(token, token, data, data) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_SET_TOKEN_COMMAND_ID, "uuuu", token, token, data, data); + +/** @brief Command description for LockTokens + * + * Command: LockTokens + */ +#define emberAfFillCommandConfiguration \ + ClusterClusterLockTokens() emberAfFillExternalBuffer(mask, \ + \ + ZCL_LOCK_TOKENS_COMMAND_ID, "", ); + +/** @brief Command description for ReadTokens + * + * Command: ReadTokens + * @param token INT16U + */ +#define emberAfFillCommandConfiguration \ + ClusterClusterReadTokens(token) emberAfFillExternalBuffer(mask, \ + \ + ZCL_READ_TOKENS_COMMAND_ID, "u", token); + +/** @brief Command description for UnlockTokens + * + * Command: UnlockTokens + * @param data OCTET_STRING + */ +#define emberAfFillCommandConfiguration \ + ClusterClusterUnlockTokens(data) emberAfFillExternalBuffer(mask, \ + \ + ZCL_UNLOCK_TOKENS_COMMAND_ID, "u", data); + +/** @brief Command description for stream + * + * Command: stream + * @param channel INT8U + * @param power INT8S + * @param time INT16U + */ +#define emberAfFillCommandMFGLIB \ + ClusterClusterstream(channel, power, time) emberAfFillExternalBuffer(mask, \ + \ + ZCL_STREAM_COMMAND_ID, "uuu", channel, power, time); + +/** @brief Command description for tone + * + * Command: tone + * @param channel INT8U + * @param power INT8S + * @param time INT16U + */ +#define emberAfFillCommandMFGLIB \ + ClusterClustertone(channel, power, time) emberAfFillExternalBuffer(mask, \ + \ + ZCL_TONE_COMMAND_ID, "uuu", channel, power, time); + +/** @brief Command description for rxMode + * + * Command: rxMode + * @param channel INT8U + * @param power INT8S + * @param time INT16U + */ +#define emberAfFillCommandMFGLIB \ + ClusterClusterrxMode(channel, power, time) emberAfFillExternalBuffer(mask, \ + \ + ZCL_RX_MODE_COMMAND_ID, "uuu", channel, power, time); + +/** @brief Command description for EnableApsLinkKeyAuthorization + * + * Command: EnableApsLinkKeyAuthorization + * @param numberExemptClusters INT8U + * @param clusterId CLUSTER_ID + * @param clusterId CLUSTER_ID [] + * @param clusterIdLen int + * @param apsLinkKeyAuthStatus BOOLEAN + */ +#define emberAfFillCommandSL \ + Works With All HubsClusterEnableApsLinkKeyAuthorization(numberExemptClusters, clusterId, clusterId, clusterIdLen, \ + apsLinkKeyAuthStatus) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_ENABLE_APS_LINK_KEY_AUTHORIZATION_COMMAND_ID, "uubu", numberExemptClusters, clusterId, \ + clusterId, clusterIdLen, apsLinkKeyAuthStatus); + +/** @brief Command description for DisableApsLinkKeyAuthorization + * + * Command: DisableApsLinkKeyAuthorization + * @param numberExemptClusters INT8U + * @param powerNotificationReason WwahPowerNotificationReason + * @param clusterId CLUSTER_ID [] + * @param clusterIdLen int + * @param manufacturerId INT16U + * @param manufacturerReasonLength INT8U + * @param manufacturerReason INT8U [] + * @param manufacturerReasonLen int + */ +#define emberAfFillCommandSL \ + Works With All HubsClusterDisableApsLinkKeyAuthorization(numberExemptClusters, powerNotificationReason, clusterId, \ + clusterIdLen, manufacturerId, manufacturerReasonLength, \ + manufacturerReason, manufacturerReasonLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_DISABLE_APS_LINK_KEY_AUTHORIZATION_COMMAND_ID, "uubuub", numberExemptClusters, \ + powerNotificationReason, clusterId, clusterIdLen, manufacturerId, manufacturerReasonLength, \ + manufacturerReason, manufacturerReasonLen); + +/** @brief Command description for ApsLinkKeyAuthorizationQuery + * + * Command: ApsLinkKeyAuthorizationQuery + * @param clusterId CLUSTER_ID + * @param powerNotificationReason WwahPowerNotificationReason + * @param manufacturerId INT16U + * @param manufacturerReasonLength INT8U + * @param manufacturerReason INT8U [] + * @param manufacturerReasonLen int + */ +#define emberAfFillCommandSL \ + Works With All HubsClusterApsLinkKeyAuthorizationQuery(clusterId, powerNotificationReason, manufacturerId, \ + manufacturerReasonLength, manufacturerReason, manufacturerReasonLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_APS_LINK_KEY_AUTHORIZATION_QUERY_COMMAND_ID, "uuuub", clusterId, powerNotificationReason, \ + manufacturerId, manufacturerReasonLength, manufacturerReason, manufacturerReasonLen); + +/** @brief Command description for RequestNewApsLinkKey + * + * Command: RequestNewApsLinkKey + * @param deviceEui64 IEEE_ADDRESS + * @param deviceShort INT16U + */ +#define emberAfFillCommandSL \ + Works With All HubsClusterRequestNewApsLinkKey(deviceEui64, deviceShort) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_REQUEST_NEW_APS_LINK_KEY_COMMAND_ID, "uu", deviceEui64, deviceShort); + +/** @brief Command description for EnableWwahAppEventRetryAlgorithm + * + * Command: EnableWwahAppEventRetryAlgorithm + * @param firstBackoffTimeSeconds INT8U + * @param numberExemptClusters INT8U + * @param backoffSeqCommonRatio INT8U + * @param clusterId CLUSTER_ID [] + * @param clusterIdLen int + * @param maxBackoffTimeSeconds INT32U + * @param maxRedeliveryAttempts INT8U + */ +#define emberAfFillCommandSL \ + Works With All HubsClusterEnableWwahAppEventRetryAlgorithm( \ + firstBackoffTimeSeconds, numberExemptClusters, backoffSeqCommonRatio, clusterId, clusterIdLen, maxBackoffTimeSeconds, \ + maxRedeliveryAttempts) emberAfFillExternalBuffer(mask, \ + \ + ZCL_ENABLE_WWAH_APP_EVENT_RETRY_ALGORITHM_COMMAND_ID, "uuubuu", \ + firstBackoffTimeSeconds, numberExemptClusters, backoffSeqCommonRatio, \ + clusterId, clusterIdLen, maxBackoffTimeSeconds, maxRedeliveryAttempts); + +/** @brief Command description for DisableWwahAppEventRetryAlgorithm + * + * Command: DisableWwahAppEventRetryAlgorithm + * @param currentPowerMode INT32U + * @param availablePowerSources INT32U + * @param currentPowerSource INT32U + * @param currentPowerSourceLevel INT32U + */ +#define emberAfFillCommandSL \ + Works With All HubsClusterDisableWwahAppEventRetryAlgorithm(currentPowerMode, availablePowerSources, currentPowerSource, \ + currentPowerSourceLevel) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_DISABLE_WWAH_APP_EVENT_RETRY_ALGORITHM_COMMAND_ID, "uuuu", currentPowerMode, \ + availablePowerSources, currentPowerSource, currentPowerSourceLevel); + +/** @brief Command description for RequestTime + * + * Command: RequestTime + * @param debugReportId INT8U + * @param debugReportSize INT32U + */ +#define emberAfFillCommandSL \ + Works With All HubsClusterRequestTime(debugReportId, debugReportSize) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_REQUEST_TIME_COMMAND_ID, "uu", debugReportId, debugReportSize); + +/** @brief Command description for EnableWwahRejoinAlgorithm + * + * Command: EnableWwahRejoinAlgorithm + * @param fastRejoinTimeoutSeconds INT16U + * @param debugReportId INT8U + * @param durationBetweenRejoinsSeconds INT16U + * @param debugReportData INT8U [] + * @param debugReportDataLen int + * @param fastRejoinFirstBackoffSeconds INT16U + * @param maxBackoffTimeSeconds INT16U + * @param maxBackoffIterations INT16U + */ +#define emberAfFillCommandSL \ + Works With All HubsClusterEnableWwahRejoinAlgorithm(fastRejoinTimeoutSeconds, debugReportId, durationBetweenRejoinsSeconds, \ + debugReportData, debugReportDataLen, fastRejoinFirstBackoffSeconds, \ + maxBackoffTimeSeconds, maxBackoffIterations) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_ENABLE_WWAH_REJOIN_ALGORITHM_COMMAND_ID, "uuubuuu", fastRejoinTimeoutSeconds, debugReportId, \ + durationBetweenRejoinsSeconds, debugReportData, debugReportDataLen, \ + fastRejoinFirstBackoffSeconds, maxBackoffTimeSeconds, maxBackoffIterations); + +/** @brief Command description for DisableWwahRejoinAlgorithm + * + * Command: DisableWwahRejoinAlgorithm + * @param numberOfClusters INT8U + * @param clusterId CLUSTER_ID [] + * @param clusterIdLen int + */ +#define emberAfFillCommandSL \ + Works With All HubsClusterDisableWwahRejoinAlgorithm(numberOfClusters, clusterId, clusterIdLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_DISABLE_WWAH_REJOIN_ALGORITHM_COMMAND_ID, "ub", numberOfClusters, clusterId, clusterIdLen); + +/** @brief Command description for SetIasZoneEnrollmentMethod + * + * Command: SetIasZoneEnrollmentMethod + * @param enrollmentMode WwahIasZoneEnrollmentMode + * @param numberOfBeacons INT8U + * @param beacon WwahBeaconSurvey [] + * @param beaconLen int + */ +#define emberAfFillCommandSL \ + Works With All HubsClusterSetIasZoneEnrollmentMethod(enrollmentMode, numberOfBeacons, beacon, beaconLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_SET_IAS_ZONE_ENROLLMENT_METHOD_COMMAND_ID, "uub", enrollmentMode, numberOfBeacons, beacon, \ + beaconLen); + +/** @brief Command description for ClearBindingTable + * + * Command: ClearBindingTable + */ +#define emberAfFillCommandSL \ + Works With All HubsClusterClearBindingTable() emberAfFillExternalBuffer(mask, \ + \ + ZCL_CLEAR_BINDING_TABLE_COMMAND_ID, "", ); + +/** @brief Command description for EnablePeriodicRouterCheckIns + * + * Command: EnablePeriodicRouterCheckIns + * @param checkInInterval INT16U + */ +#define emberAfFillCommandSL \ + Works With All HubsClusterEnablePeriodicRouterCheckIns(checkInInterval) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_ENABLE_PERIODIC_ROUTER_CHECK_INS_COMMAND_ID, "u", checkInInterval); + +/** @brief Command description for DisablePeriodicRouterCheckIns + * + * Command: DisablePeriodicRouterCheckIns + */ +#define emberAfFillCommandSL \ + Works With All HubsClusterDisablePeriodicRouterCheckIns() \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_DISABLE_PERIODIC_ROUTER_CHECK_INS_COMMAND_ID, "", ); + +/** @brief Command description for SetMacPollFailureWaitTime + * + * Command: SetMacPollFailureWaitTime + * @param waitTime INT8U + */ +#define emberAfFillCommandSL \ + Works With All HubsClusterSetMacPollFailureWaitTime(waitTime) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_SET_MAC_POLL_FAILURE_WAIT_TIME_COMMAND_ID, "u", waitTime); + +/** @brief Command description for SetPendingNetworkUpdate + * + * Command: SetPendingNetworkUpdate + * @param channel INT8U + * @param panId INT16U + */ +#define emberAfFillCommandSL \ + Works With All HubsClusterSetPendingNetworkUpdate(channel, panId) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_SET_PENDING_NETWORK_UPDATE_COMMAND_ID, "uu", channel, panId); + +/** @brief Command description for RequireApsAcksOnUnicasts + * + * Command: RequireApsAcksOnUnicasts + * @param numberExemptClusters INT8U + * @param clusterId CLUSTER_ID [] + * @param clusterIdLen int + */ +#define emberAfFillCommandSL \ + Works With All HubsClusterRequireApsAcksOnUnicasts(numberExemptClusters, clusterId, clusterIdLen) emberAfFillExternalBuffer( \ + mask, \ + \ + ZCL_REQUIRE_APS_ACKS_ON_UNICASTS_COMMAND_ID, "ub", numberExemptClusters, clusterId, clusterIdLen); + +/** @brief Command description for RemoveApsAcksOnUnicastsRequirement + * + * Command: RemoveApsAcksOnUnicastsRequirement + */ +#define emberAfFillCommandSL \ + Works With All HubsClusterRemoveApsAcksOnUnicastsRequirement() \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_REMOVE_APS_ACKS_ON_UNICASTS_REQUIREMENT_COMMAND_ID, "", ); + +/** @brief Command description for ApsAckRequirementQuery + * + * Command: ApsAckRequirementQuery + */ +#define emberAfFillCommandSL \ + Works With All HubsClusterApsAckRequirementQuery() emberAfFillExternalBuffer(mask, \ + \ + ZCL_APS_ACK_REQUIREMENT_QUERY_COMMAND_ID, "", ); + +/** @brief Command description for DebugReportQuery + * + * Command: DebugReportQuery + * @param debugReportId INT8U + */ +#define emberAfFillCommandSL \ + Works With All HubsClusterDebugReportQuery(debugReportId) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_DEBUG_REPORT_QUERY_COMMAND_ID, "u", debugReportId); + +/** @brief Command description for SurveyBeacons + * + * Command: SurveyBeacons + * @param standardBeacons BOOLEAN + */ +#define emberAfFillCommandSL \ + Works With All HubsClusterSurveyBeacons(standardBeacons) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_SURVEY_BEACONS_COMMAND_ID, "u", standardBeacons); + +/** @brief Command description for DisableOtaDowngrades + * + * Command: DisableOtaDowngrades + */ +#define emberAfFillCommandSL \ + Works With All HubsClusterDisableOtaDowngrades() emberAfFillExternalBuffer(mask, \ + \ + ZCL_DISABLE_OTA_DOWNGRADES_COMMAND_ID, "", ); + +/** @brief Command description for DisableMgmtLeaveWithoutRejoin + * + * Command: DisableMgmtLeaveWithoutRejoin + */ +#define emberAfFillCommandSL \ + Works With All HubsClusterDisableMgmtLeaveWithoutRejoin() \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_DISABLE_MGMT_LEAVE_WITHOUT_REJOIN_COMMAND_ID, "", ); + +/** @brief Command description for DisableTouchlinkInterpanMessageSupport + * + * Command: DisableTouchlinkInterpanMessageSupport + */ +#define emberAfFillCommandSL \ + Works With All HubsClusterDisableTouchlinkInterpanMessageSupport() \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_DISABLE_TOUCHLINK_INTERPAN_MESSAGE_SUPPORT_COMMAND_ID, "", ); + +/** @brief Command description for EnableWwahParentClassification + * + * Command: EnableWwahParentClassification + */ +#define emberAfFillCommandSL \ + Works With All HubsClusterEnableWwahParentClassification() \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_ENABLE_WWAH_PARENT_CLASSIFICATION_COMMAND_ID, "", ); + +/** @brief Command description for DisableWwahParentClassification + * + * Command: DisableWwahParentClassification + */ +#define emberAfFillCommandSL \ + Works With All HubsClusterDisableWwahParentClassification() \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_DISABLE_WWAH_PARENT_CLASSIFICATION_COMMAND_ID, "", ); + +/** @brief Command description for EnableTcSecurityOnNtwkKeyRotation + * + * Command: EnableTcSecurityOnNtwkKeyRotation + */ +#define emberAfFillCommandSL \ + Works With All HubsClusterEnableTcSecurityOnNtwkKeyRotation() \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_ENABLE_TC_SECURITY_ON_NTWK_KEY_ROTATION_COMMAND_ID, "", ); + +/** @brief Command description for EnableWwahBadParentRecovery + * + * Command: EnableWwahBadParentRecovery + */ +#define emberAfFillCommandSL \ + Works With All HubsClusterEnableWwahBadParentRecovery() \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_ENABLE_WWAH_BAD_PARENT_RECOVERY_COMMAND_ID, "", ); + +/** @brief Command description for DisableWwahBadParentRecovery + * + * Command: DisableWwahBadParentRecovery + */ +#define emberAfFillCommandSL \ + Works With All HubsClusterDisableWwahBadParentRecovery() \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_DISABLE_WWAH_BAD_PARENT_RECOVERY_COMMAND_ID, "", ); + +/** @brief Command description for EnableConfigurationMode + * + * Command: EnableConfigurationMode + */ +#define emberAfFillCommandSL \ + Works With All HubsClusterEnableConfigurationMode() emberAfFillExternalBuffer(mask, \ + \ + ZCL_ENABLE_CONFIGURATION_MODE_COMMAND_ID, "", ); + +/** @brief Command description for DisableConfigurationMode + * + * Command: DisableConfigurationMode + */ +#define emberAfFillCommandSL \ + Works With All HubsClusterDisableConfigurationMode() \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_DISABLE_CONFIGURATION_MODE_COMMAND_ID, "", ); + +/** @brief Command description for UseTrustCenterForClusterServer + * + * Command: UseTrustCenterForClusterServer + * @param numberOfClusters INT8U + * @param clusterId CLUSTER_ID [] + * @param clusterIdLen int + */ +#define emberAfFillCommandSL \ + Works With All HubsClusterUseTrustCenterForClusterServer(numberOfClusters, clusterId, clusterIdLen) emberAfFillExternalBuffer( \ + mask, \ + \ + ZCL_USE_TRUST_CENTER_FOR_CLUSTER_SERVER_COMMAND_ID, "ub", numberOfClusters, clusterId, clusterIdLen); + +/** @brief Command description for TrustCenterForClusterServerQuery + * + * Command: TrustCenterForClusterServerQuery + */ +#define emberAfFillCommandSL \ + Works With All HubsClusterTrustCenterForClusterServerQuery() \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_TRUST_CENTER_FOR_CLUSTER_SERVER_QUERY_COMMAND_ID, "", ); + +/** @brief Command description for UseTrustCenterForClusterServerResponse + * + * Command: UseTrustCenterForClusterServerResponse + * @param status Status + * @param clusterStatusLength INT8U + * @param clusterStatus WwahClusterStatusToUseTC [] + * @param clusterStatusLen int + */ +#define emberAfFillCommandSL \ + Works With All HubsClusterUseTrustCenterForClusterServerResponse(status, clusterStatusLength, clusterStatus, clusterStatusLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_USE_TRUST_CENTER_FOR_CLUSTER_SERVER_RESPONSE_COMMAND_ID, "uub", status, clusterStatusLength, \ + clusterStatus, clusterStatusLen); diff --git a/examples/lock-app/lock-common/gen/cluster-id.h b/examples/lock-app/lock-common/gen/cluster-id.h index 7462d4e9cf279b..c341b079be401d 100644 --- a/examples/lock-app/lock-common/gen/cluster-id.h +++ b/examples/lock-app/lock-common/gen/cluster-id.h @@ -1,4 +1,5 @@ -/** + +/* * * Copyright (c) 2020 Project CHIP Authors * @@ -15,160 +16,332 @@ * 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 SILABS_EMBER_AF_CLUSTER_ID -#define SILABS_EMBER_AF_CLUSTER_ID - -// Cluster domain specification levels: -// * General: zcl-7.0-07-5123-07 -// * Lighting & Occupancy: l&o-1.0-15-0014-04 -// * HA: ha-1.2.1-05-3520-30 -// * Closures: zcl-6.0-15-02018-001 -// * HVAC: zcl-6.0-15-02018-001 -// * Lighting: zcl6-errata-14-0129-15 -// * Measurement & Sensing: zcl-6.0-15-02018-001 -// * Security & Safety: zcl-6.0-15-02018-001 -// * Home Automation: UNKNOWN -// * CBA: cba-1.0-05-3516-12 -// * SE: se-1.2b-15-0131-02 -// * ZLL: zll-1.0-11-0037-10 -// * Telecom Applications: ta-1.0-07-5307-07 -// * Protocol Interfaces: ta-1.0-07-5307-07 -// * Telecommunication: ta-1.0-07-5307-07 -// * Financial: ta-1.0-07-5307-07 -// * Ember: UNKNOWN -// * HC: hc-1.0-07-5360-15 -// * GP: gp-1.0a-09-5499-26 -// * LO: UNKNOWN -// * Works With All Hubs: UNKNOWN -// * WWAH: UNKNOWN -#define ZCL_BASIC_CLUSTER_ID 0x0000 -#define ZCL_POWER_CONFIG_CLUSTER_ID 0x0001 -#define ZCL_DEVICE_TEMP_CLUSTER_ID 0x0002 -#define ZCL_IDENTIFY_CLUSTER_ID 0x0003 -#define ZCL_GROUPS_CLUSTER_ID 0x0004 -#define ZCL_SCENES_CLUSTER_ID 0x0005 -#define ZCL_ON_OFF_CLUSTER_ID 0x0006 -#define ZCL_ON_OFF_SWITCH_CONFIG_CLUSTER_ID 0x0007 -#define ZCL_LEVEL_CONTROL_CLUSTER_ID 0x0008 -#define ZCL_ALARM_CLUSTER_ID 0x0009 -#define ZCL_TIME_CLUSTER_ID 0x000A -#define ZCL_RSSI_LOCATION_CLUSTER_ID 0x000B -#define ZCL_BINARY_INPUT_BASIC_CLUSTER_ID 0x000F -#define ZCL_COMMISSIONING_CLUSTER_ID 0x0015 -#define ZCL_PARTITION_CLUSTER_ID 0x0016 -#define ZCL_OTA_BOOTLOAD_CLUSTER_ID 0x0019 -#define ZCL_POWER_PROFILE_CLUSTER_ID 0x001A -#define ZCL_APPLIANCE_CONTROL_CLUSTER_ID 0x001B -#define ZCL_POLL_CONTROL_CLUSTER_ID 0x0020 -#define ZCL_GREEN_POWER_CLUSTER_ID 0x0021 -#define ZCL_KEEPALIVE_CLUSTER_ID 0x0025 -#define ZCL_SHADE_CONFIG_CLUSTER_ID 0x0100 -#define ZCL_DOOR_LOCK_CLUSTER_ID 0x0101 -#define ZCL_WINDOW_COVERING_CLUSTER_ID 0x0102 -#define ZCL_BARRIER_CONTROL_CLUSTER_ID 0x0103 -#define ZCL_PUMP_CONFIG_CONTROL_CLUSTER_ID 0x0200 -#define ZCL_THERMOSTAT_CLUSTER_ID 0x0201 -#define ZCL_FAN_CONTROL_CLUSTER_ID 0x0202 -#define ZCL_DEHUMID_CONTROL_CLUSTER_ID 0x0203 -#define ZCL_THERMOSTAT_UI_CONFIG_CLUSTER_ID 0x0204 -#define ZCL_COLOR_CONTROL_CLUSTER_ID 0x0300 -#define ZCL_BALLAST_CONFIGURATION_CLUSTER_ID 0x0301 -#define ZCL_ILLUM_MEASUREMENT_CLUSTER_ID 0x0400 -#define ZCL_ILLUM_LEVEL_SENSING_CLUSTER_ID 0x0401 -#define ZCL_TEMP_MEASUREMENT_CLUSTER_ID 0x0402 -#define ZCL_PRESSURE_MEASUREMENT_CLUSTER_ID 0x0403 -#define ZCL_FLOW_MEASUREMENT_CLUSTER_ID 0x0404 -#define ZCL_RELATIVE_HUMIDITY_MEASUREMENT_CLUSTER_ID 0x0405 -#define ZCL_OCCUPANCY_SENSING_CLUSTER_ID 0x0406 -#define ZCL_CARBON_MONOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_ID 0x040C -#define ZCL_CARBON_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_ID 0x040D -#define ZCL_ETHYLENE_CONCENTRATION_MEASUREMENT_CLUSTER_ID 0x040E -#define ZCL_ETHYLENE_OXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_ID 0x040F -#define ZCL_HYDROGEN_CONCENTRATION_MEASUREMENT_CLUSTER_ID 0x0410 -#define ZCL_HYDROGEN_SULPHIDE_CONCENTRATION_MEASUREMENT_CLUSTER_ID 0x0411 -#define ZCL_NITRIC_OXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_ID 0x0412 -#define ZCL_NITROGEN_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_ID 0x0413 -#define ZCL_OXYGEN_CONCENTRATION_MEASUREMENT_CLUSTER_ID 0x0414 -#define ZCL_OZONE_CONCENTRATION_MEASUREMENT_CLUSTER_ID 0x0415 -#define ZCL_SULFUR_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_ID 0x0416 -#define ZCL_DISSOLVED_OXYGEN_CONCENTRATION_MEASUREMENT_CLUSTER_ID 0x0417 -#define ZCL_BROMATE_CONCENTRATION_MEASUREMENT_CLUSTER_ID 0x0418 -#define ZCL_CHLORAMINES_CONCENTRATION_MEASUREMENT_CLUSTER_ID 0x0419 -#define ZCL_CHLORINE_CONCENTRATION_MEASUREMENT_CLUSTER_ID 0x041A -#define ZCL_FECAL_COLIFORM_AND_E_COLI_CONCENTRATION_MEASUREMENT_CLUSTER_ID 0x041B -#define ZCL_FLUORIDE_CONCENTRATION_MEASUREMENT_CLUSTER_ID 0x041C -#define ZCL_HALOACETIC_ACIDS_CONCENTRATION_MEASUREMENT_CLUSTER_ID 0x041D -#define ZCL_TOTAL_TRIHALOMETHANES_CONCENTRATION_MEASUREMENT_CLUSTER_ID 0x041E -#define ZCL_TOTAL_COLIFORM_BACTERIA_CONCENTRATION_MEASUREMENT_CLUSTER_ID 0x041F -#define ZCL_TURBIDITY_CONCENTRATION_MEASUREMENT_CLUSTER_ID 0x0420 -#define ZCL_COPPER_CONCENTRATION_MEASUREMENT_CLUSTER_ID 0x0421 -#define ZCL_LEAD_CONCENTRATION_MEASUREMENT_CLUSTER_ID 0x0422 -#define ZCL_MANGANESE_CONCENTRATION_MEASUREMENT_CLUSTER_ID 0x0423 -#define ZCL_SULFATE_CONCENTRATION_MEASUREMENT_CLUSTER_ID 0x0424 -#define ZCL_BROMODICHLOROMETHANE_CONCENTRATION_MEASUREMENT_CLUSTER_ID 0x0425 -#define ZCL_BROMOFORM_CONCENTRATION_MEASUREMENT_CLUSTER_ID 0x0426 -#define ZCL_CHLORODIBROMOMETHANE_CONCENTRATION_MEASUREMENT_CLUSTER_ID 0x0427 -#define ZCL_CHLOROFORM_CONCENTRATION_MEASUREMENT_CLUSTER_ID 0x0428 -#define ZCL_SODIUM_CONCENTRATION_MEASUREMENT_CLUSTER_ID 0x0429 -#define ZCL_IAS_ZONE_CLUSTER_ID 0x0500 -#define ZCL_IAS_ACE_CLUSTER_ID 0x0501 -#define ZCL_IAS_WD_CLUSTER_ID 0x0502 -#define ZCL_GENERIC_TUNNEL_CLUSTER_ID 0x0600 -#define ZCL_BACNET_PROTOCOL_TUNNEL_CLUSTER_ID 0x0601 -#define ZCL_11073_PROTOCOL_TUNNEL_CLUSTER_ID 0x0614 -#define ZCL_ISO7816_PROTOCOL_TUNNEL_CLUSTER_ID 0x0615 -#define ZCL_PRICE_CLUSTER_ID 0x0700 -#define ZCL_DEMAND_RESPONSE_LOAD_CONTROL_CLUSTER_ID 0x0701 -#define ZCL_SIMPLE_METERING_CLUSTER_ID 0x0702 -#define ZCL_MESSAGING_CLUSTER_ID 0x0703 -#define ZCL_TUNNELING_CLUSTER_ID 0x0704 -#define ZCL_PREPAYMENT_CLUSTER_ID 0x0705 -#define ZCL_ENERGY_MANAGEMENT_CLUSTER_ID 0x0706 -#define ZCL_CALENDAR_CLUSTER_ID 0x0707 -#define ZCL_DEVICE_MANAGEMENT_CLUSTER_ID 0x0708 -#define ZCL_EVENTS_CLUSTER_ID 0x0709 -#define ZCL_MDU_PAIRING_CLUSTER_ID 0x070A -#define ZCL_SUB_GHZ_CLUSTER_ID 0x070B -#define ZCL_KEY_ESTABLISHMENT_CLUSTER_ID 0x0800 -#define ZCL_INFORMATION_CLUSTER_ID 0x0900 -#define ZCL_DATA_SHARING_CLUSTER_ID 0x0901 -#define ZCL_GAMING_CLUSTER_ID 0x0902 -#define ZCL_DATA_RATE_CONTROL_CLUSTER_ID 0x0903 -#define ZCL_VOICE_OVER_ZIGBEE_CLUSTER_ID 0x0904 -#define ZCL_CHATTING_CLUSTER_ID 0x0905 -#define ZCL_PAYMENT_CLUSTER_ID 0x0A01 -#define ZCL_BILLING_CLUSTER_ID 0x0A02 -#define ZCL_APPLIANCE_IDENTIFICATION_CLUSTER_ID 0x0B00 -#define ZCL_METER_IDENTIFICATION_CLUSTER_ID 0x0B01 -#define ZCL_APPLIANCE_EVENTS_AND_ALERT_CLUSTER_ID 0x0B02 -#define ZCL_APPLIANCE_STATISTICS_CLUSTER_ID 0x0B03 -#define ZCL_ELECTRICAL_MEASUREMENT_CLUSTER_ID 0x0B04 -#define ZCL_DIAGNOSTICS_CLUSTER_ID 0x0B05 -#define ZCL_ZLL_COMMISSIONING_CLUSTER_ID 0x1000 -#define ZCL_SAMPLE_MFG_SPECIFIC_CLUSTER_ID 0xFC00 -#define ZCL_SAMPLE_MFG_SPECIFIC_CLUSTER_2_ID 0xFC00 -#define ZCL_OTA_CONFIGURATION_CLUSTER_ID 0xFC01 -#define ZCL_MFGLIB_CLUSTER_ID 0xFC02 -#define ZCL_SL_WWAH_CLUSTER_ID 0xFC57 -#endif // SILABS_EMBER_AF_CLUSTER_ID +// Prevent multiple inclusion +#pragma once + +// Definitions for cluster: Basic +#define ZCL_BASIC_CLUSTER_ID (0x0000) + +// Definitions for cluster: Power Configuration +#define ZCL_POWER_CONFIG_CLUSTER_ID (0x0001) + +// Definitions for cluster: Device Temperature Configuration +#define ZCL_DEVICE_TEMP_CLUSTER_ID (0x0002) + +// Definitions for cluster: Identify +#define ZCL_IDENTIFY_CLUSTER_ID (0x0003) + +// Definitions for cluster: Groups +#define ZCL_GROUPS_CLUSTER_ID (0x0004) + +// Definitions for cluster: Scenes +#define ZCL_SCENES_CLUSTER_ID (0x0005) + +// Definitions for cluster: On/off +#define ZCL_ON_OFF_CLUSTER_ID (0x0006) + +// Definitions for cluster: On/off Switch Configuration +#define ZCL_ON_OFF_SWITCH_CONFIG_CLUSTER_ID (0x0007) + +// Definitions for cluster: Level Control +#define ZCL_LEVEL_CONTROL_CLUSTER_ID (0x0008) + +// Definitions for cluster: Alarms +#define ZCL_ALARM_CLUSTER_ID (0x0009) + +// Definitions for cluster: Time +#define ZCL_TIME_CLUSTER_ID (0x000A) + +// Definitions for cluster: RSSI Location +#define ZCL_RSSI_LOCATION_CLUSTER_ID (0x000B) + +// Definitions for cluster: Binary Input (Basic) +#define ZCL_BINARY_INPUT_BASIC_CLUSTER_ID (0x000F) + +// Definitions for cluster: Commissioning +#define ZCL_COMMISSIONING_CLUSTER_ID (0x0015) + +// Definitions for cluster: Partition +#define ZCL_PARTITION_CLUSTER_ID (0x0016) + +// Definitions for cluster: Over the Air Bootloading +#define ZCL_OTA_BOOTLOAD_CLUSTER_ID (0x0019) + +// Definitions for cluster: Power Profile +#define ZCL_POWER_PROFILE_CLUSTER_ID (0x001A) + +// Definitions for cluster: Appliance Control +#define ZCL_APPLIANCE_CONTROL_CLUSTER_ID (0x001B) + +// Definitions for cluster: Poll Control +#define ZCL_POLL_CONTROL_CLUSTER_ID (0x0020) + +// Definitions for cluster: Green Power +#define ZCL_GREEN_POWER_CLUSTER_ID (0x0021) + +// Definitions for cluster: Keep-Alive +#define ZCL_KEEPALIVE_CLUSTER_ID (0x0025) + +// Definitions for cluster: Shade Configuration +#define ZCL_SHADE_CONFIG_CLUSTER_ID (0x0100) + +// Definitions for cluster: Door Lock +#define ZCL_DOOR_LOCK_CLUSTER_ID (0x0101) + +// Definitions for cluster: Window Covering +#define ZCL_WINDOW_COVERING_CLUSTER_ID (0x0102) + +// Definitions for cluster: Barrier Control +#define ZCL_BARRIER_CONTROL_CLUSTER_ID (0x0103) + +// Definitions for cluster: Pump Configuration and Control +#define ZCL_PUMP_CONFIG_CONTROL_CLUSTER_ID (0x0200) + +// Definitions for cluster: Thermostat +#define ZCL_THERMOSTAT_CLUSTER_ID (0x0201) + +// Definitions for cluster: Fan Control +#define ZCL_FAN_CONTROL_CLUSTER_ID (0x0202) + +// Definitions for cluster: Dehumidification Control +#define ZCL_DEHUMID_CONTROL_CLUSTER_ID (0x0203) + +// Definitions for cluster: Thermostat User Interface Configuration +#define ZCL_THERMOSTAT_UI_CONFIG_CLUSTER_ID (0x0204) + +// Definitions for cluster: Color Control +#define ZCL_COLOR_CONTROL_CLUSTER_ID (0x0300) + +// Definitions for cluster: Ballast Configuration +#define ZCL_BALLAST_CONFIGURATION_CLUSTER_ID (0x0301) + +// Definitions for cluster: Illuminance Measurement +#define ZCL_ILLUM_MEASUREMENT_CLUSTER_ID (0x0400) + +// Definitions for cluster: Illuminance Level Sensing +#define ZCL_ILLUM_LEVEL_SENSING_CLUSTER_ID (0x0401) + +// Definitions for cluster: Temperature Measurement +#define ZCL_TEMP_MEASUREMENT_CLUSTER_ID (0x0402) + +// Definitions for cluster: Pressure Measurement +#define ZCL_PRESSURE_MEASUREMENT_CLUSTER_ID (0x0403) + +// Definitions for cluster: Flow Measurement +#define ZCL_FLOW_MEASUREMENT_CLUSTER_ID (0x0404) + +// Definitions for cluster: Relative Humidity Measurement +#define ZCL_RELATIVE_HUMIDITY_MEASUREMENT_CLUSTER_ID (0x0405) + +// Definitions for cluster: Occupancy Sensing +#define ZCL_OCCUPANCY_SENSING_CLUSTER_ID (0x0406) + +// Definitions for cluster: Carbon Monoxide Concentration Measurement +#define ZCL_CARBON_MONOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_ID (0x040C) + +// Definitions for cluster: Carbon Dioxide Concentration Measurement +#define ZCL_CARBON_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_ID (0x040D) + +// Definitions for cluster: Ethylene Concentration Measurement +#define ZCL_ETHYLENE_CONCENTRATION_MEASUREMENT_CLUSTER_ID (0x040E) + +// Definitions for cluster: Ethylene Oxide Concentration Measurement +#define ZCL_ETHYLENE_OXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_ID (0x040F) + +// Definitions for cluster: Hydrogen Concentration Measurement +#define ZCL_HYDROGEN_CONCENTRATION_MEASUREMENT_CLUSTER_ID (0x0410) + +// Definitions for cluster: Hydrogen Sulphide Concentration Measurement +#define ZCL_HYDROGEN_SULPHIDE_CONCENTRATION_MEASUREMENT_CLUSTER_ID (0x0411) + +// Definitions for cluster: Nitric Oxide Concentration Measurement +#define ZCL_NITRIC_OXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_ID (0x0412) + +// Definitions for cluster: Nitrogen Dioxide Concentration Measurement +#define ZCL_NITROGEN_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_ID (0x0413) + +// Definitions for cluster: Oxygen Concentration Measurement +#define ZCL_OXYGEN_CONCENTRATION_MEASUREMENT_CLUSTER_ID (0x0414) + +// Definitions for cluster: Ozone Concentration Measurement +#define ZCL_OZONE_CONCENTRATION_MEASUREMENT_CLUSTER_ID (0x0415) + +// Definitions for cluster: Sulfur Dioxide Concentration Measurement +#define ZCL_SULFUR_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_ID (0x0416) + +// Definitions for cluster: Dissolved Oxygen Concentration Measurement +#define ZCL_DISSOLVED_OXYGEN_CONCENTRATION_MEASUREMENT_CLUSTER_ID (0x0417) + +// Definitions for cluster: Bromate Concentration Measurement +#define ZCL_BROMATE_CONCENTRATION_MEASUREMENT_CLUSTER_ID (0x0418) + +// Definitions for cluster: Chloramines Concentration Measurement +#define ZCL_CHLORAMINES_CONCENTRATION_MEASUREMENT_CLUSTER_ID (0x0419) + +// Definitions for cluster: Chlorine Concentration Measurement +#define ZCL_CHLORINE_CONCENTRATION_MEASUREMENT_CLUSTER_ID (0x041A) + +// Definitions for cluster: Fecal coliform and E. Coli Concentration Measurement +#define ZCL_FECAL_COLIFORM_AND_E_COLI_CONCENTRATION_MEASUREMENT_CLUSTER_ID (0x041B) + +// Definitions for cluster: Fluoride Concentration Measurement +#define ZCL_FLUORIDE_CONCENTRATION_MEASUREMENT_CLUSTER_ID (0x041C) + +// Definitions for cluster: Haloacetic Acids Concentration Measurement +#define ZCL_HALOACETIC_ACIDS_CONCENTRATION_MEASUREMENT_CLUSTER_ID (0x041D) + +// Definitions for cluster: Total Trihalomethanes Concentration Measurement +#define ZCL_TOTAL_TRIHALOMETHANES_CONCENTRATION_MEASUREMENT_CLUSTER_ID (0x041E) + +// Definitions for cluster: Total Coliform Bacteria Concentration Measurement +#define ZCL_TOTAL_COLIFORM_BACTERIA_CONCENTRATION_MEASUREMENT_CLUSTER_ID (0x041F) + +// Definitions for cluster: Turbidity Concentration Measurement +#define ZCL_TURBIDITY_CONCENTRATION_MEASUREMENT_CLUSTER_ID (0x0420) + +// Definitions for cluster: Copper Concentration Measurement +#define ZCL_COPPER_CONCENTRATION_MEASUREMENT_CLUSTER_ID (0x0421) + +// Definitions for cluster: Lead Concentration Measurement +#define ZCL_LEAD_CONCENTRATION_MEASUREMENT_CLUSTER_ID (0x0422) + +// Definitions for cluster: Manganese Concentration Measurement +#define ZCL_MANGANESE_CONCENTRATION_MEASUREMENT_CLUSTER_ID (0x0423) + +// Definitions for cluster: Sulfate Concentration Measurement +#define ZCL_SULFATE_CONCENTRATION_MEASUREMENT_CLUSTER_ID (0x0424) + +// Definitions for cluster: Bromodichloromethane Concentration Measurement +#define ZCL_BROMODICHLOROMETHANE_CONCENTRATION_MEASUREMENT_CLUSTER_ID (0x0425) + +// Definitions for cluster: Bromoform Concentration Measurement +#define ZCL_BROMOFORM_CONCENTRATION_MEASUREMENT_CLUSTER_ID (0x0426) + +// Definitions for cluster: Chlorodibromomethane Concentration Measurement +#define ZCL_CHLORODIBROMOMETHANE_CONCENTRATION_MEASUREMENT_CLUSTER_ID (0x0427) + +// Definitions for cluster: Chloroform Concentration Measurement +#define ZCL_CHLOROFORM_CONCENTRATION_MEASUREMENT_CLUSTER_ID (0x0428) + +// Definitions for cluster: Sodium Concentration Measurement +#define ZCL_SODIUM_CONCENTRATION_MEASUREMENT_CLUSTER_ID (0x0429) + +// Definitions for cluster: IAS Zone +#define ZCL_IAS_ZONE_CLUSTER_ID (0x0500) + +// Definitions for cluster: IAS ACE +#define ZCL_IAS_ACE_CLUSTER_ID (0x0501) + +// Definitions for cluster: IAS WD +#define ZCL_IAS_WD_CLUSTER_ID (0x0502) + +// Definitions for cluster: Generic Tunnel +#define ZCL_GENERIC_TUNNEL_CLUSTER_ID (0x0600) + +// Definitions for cluster: BACnet Protocol Tunnel +#define ZCL_BACNET_PROTOCOL_TUNNEL_CLUSTER_ID (0x0601) + +// Definitions for cluster: 11073 Protocol Tunnel +#define ZCL_11073_PROTOCOL_TUNNEL_CLUSTER_ID (0x0614) + +// Definitions for cluster: ISO 7816 Protocol Tunnel +#define ZCL_ISO7816_PROTOCOL_TUNNEL_CLUSTER_ID (0x0615) + +// Definitions for cluster: Price +#define ZCL_PRICE_CLUSTER_ID (0x0700) + +// Definitions for cluster: Demand Response and Load Control +#define ZCL_DEMAND_RESPONSE_LOAD_CONTROL_CLUSTER_ID (0x0701) + +// Definitions for cluster: Simple Metering +#define ZCL_SIMPLE_METERING_CLUSTER_ID (0x0702) + +// Definitions for cluster: Messaging +#define ZCL_MESSAGING_CLUSTER_ID (0x0703) + +// Definitions for cluster: Tunneling +#define ZCL_TUNNELING_CLUSTER_ID (0x0704) + +// Definitions for cluster: Prepayment +#define ZCL_PREPAYMENT_CLUSTER_ID (0x0705) + +// Definitions for cluster: Energy Management +#define ZCL_ENERGY_MANAGEMENT_CLUSTER_ID (0x0706) + +// Definitions for cluster: Calendar +#define ZCL_CALENDAR_CLUSTER_ID (0x0707) + +// Definitions for cluster: Device Management +#define ZCL_DEVICE_MANAGEMENT_CLUSTER_ID (0x0708) + +// Definitions for cluster: Events +#define ZCL_EVENTS_CLUSTER_ID (0x0709) + +// Definitions for cluster: MDU Pairing +#define ZCL_MDU_PAIRING_CLUSTER_ID (0x070A) + +// Definitions for cluster: Sub-GHz +#define ZCL_SUB_GHZ_CLUSTER_ID (0x070B) + +// Definitions for cluster: Key Establishment +#define ZCL_KEY_ESTABLISHMENT_CLUSTER_ID (0x0800) + +// Definitions for cluster: Information +#define ZCL_INFORMATION_CLUSTER_ID (0x0900) + +// Definitions for cluster: Data Sharing +#define ZCL_DATA_SHARING_CLUSTER_ID (0x0901) + +// Definitions for cluster: Gaming +#define ZCL_GAMING_CLUSTER_ID (0x0902) + +// Definitions for cluster: Data Rate Control +#define ZCL_DATA_RATE_CONTROL_CLUSTER_ID (0x0903) + +// Definitions for cluster: Voice over ZigBee +#define ZCL_VOICE_OVER_ZIGBEE_CLUSTER_ID (0x0904) + +// Definitions for cluster: Chatting +#define ZCL_CHATTING_CLUSTER_ID (0x0905) + +// Definitions for cluster: Payment +#define ZCL_PAYMENT_CLUSTER_ID (0x0A01) + +// Definitions for cluster: Billing +#define ZCL_BILLING_CLUSTER_ID (0x0A02) + +// Definitions for cluster: Appliance Identification +#define ZCL_APPLIANCE_IDENTIFICATION_CLUSTER_ID (0x0B00) + +// Definitions for cluster: Meter Identification +#define ZCL_METER_IDENTIFICATION_CLUSTER_ID (0x0B01) + +// Definitions for cluster: Appliance Events and Alert +#define ZCL_APPLIANCE_EVENTS_AND_ALERT_CLUSTER_ID (0x0B02) + +// Definitions for cluster: Appliance Statistics +#define ZCL_APPLIANCE_STATISTICS_CLUSTER_ID (0x0B03) + +// Definitions for cluster: Electrical Measurement +#define ZCL_ELECTRICAL_MEASUREMENT_CLUSTER_ID (0x0B04) + +// Definitions for cluster: Diagnostics +#define ZCL_DIAGNOSTICS_CLUSTER_ID (0x0B05) + +// Definitions for cluster: ZLL Commissioning +#define ZCL_ZLL_COMMISSIONING_CLUSTER_ID (0x1000) + +// Definitions for cluster: Sample Mfg Specific Cluster +#define ZCL_SAMPLE_MFG_SPECIFIC_CLUSTER_ID (0xFC00) + +// Definitions for cluster: Sample Mfg Specific Cluster 2 +#define ZCL_SAMPLE_MFG_SPECIFIC_CLUSTER_2_ID (0xFC00) + +// Definitions for cluster: Configuration Cluster +#define ZCL_OTA_CONFIGURATION_CLUSTER_ID (0xFC01) + +// Definitions for cluster: MFGLIB Cluster +#define ZCL_MFGLIB_CLUSTER_ID (0xFC02) + +// Definitions for cluster: SL Works With All Hubs +#define ZCL_SL_WWAH_CLUSTER_ID (0xFC57) diff --git a/examples/lock-app/lock-common/gen/command-id.h b/examples/lock-app/lock-common/gen/command-id.h index 823914d0466035..940258f4527aa5 100644 --- a/examples/lock-app/lock-common/gen/command-id.h +++ b/examples/lock-app/lock-common/gen/command-id.h @@ -1,23 +1,7 @@ -/** - * - * 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 + * 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. @@ -31,1007 +15,733 @@ * 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 SILABS_EMBER_AF_COMMAND_ID -#define SILABS_EMBER_AF_COMMAND_ID - -// Global commands - -// Either direction -#define ZCL_READ_ATTRIBUTES_COMMAND_ID 0x00 // Ver.: always -#define ZCL_READ_ATTRIBUTES_RESPONSE_COMMAND_ID 0x01 // Ver.: always -#define ZCL_WRITE_ATTRIBUTES_COMMAND_ID 0x02 // Ver.: always -#define ZCL_WRITE_ATTRIBUTES_UNDIVIDED_COMMAND_ID 0x03 // Ver.: always -#define ZCL_WRITE_ATTRIBUTES_RESPONSE_COMMAND_ID 0x04 // Ver.: always -#define ZCL_WRITE_ATTRIBUTES_NO_RESPONSE_COMMAND_ID 0x05 // Ver.: always -#define ZCL_CONFIGURE_REPORTING_COMMAND_ID 0x06 // Ver.: always -#define ZCL_CONFIGURE_REPORTING_RESPONSE_COMMAND_ID 0x07 // Ver.: always -#define ZCL_READ_REPORTING_CONFIGURATION_COMMAND_ID 0x08 // Ver.: always -#define ZCL_READ_REPORTING_CONFIGURATION_RESPONSE_COMMAND_ID 0x09 // Ver.: always -#define ZCL_REPORT_ATTRIBUTES_COMMAND_ID 0x0A // Ver.: always -#define ZCL_DEFAULT_RESPONSE_COMMAND_ID 0x0B // Ver.: always -#define ZCL_DISCOVER_ATTRIBUTES_COMMAND_ID 0x0C // Ver.: always -#define ZCL_DISCOVER_ATTRIBUTES_RESPONSE_COMMAND_ID 0x0D // Ver.: always -#define ZCL_READ_ATTRIBUTES_STRUCTURED_COMMAND_ID 0x0E // Ver.: always -#define ZCL_WRITE_ATTRIBUTES_STRUCTURED_COMMAND_ID 0x0F // Ver.: always -#define ZCL_WRITE_ATTRIBUTES_STRUCTURED_RESPONSE_COMMAND_ID 0x10 // Ver.: always -#define ZCL_DISCOVER_COMMANDS_RECEIVED_COMMAND_ID 0x11 // Ver.: always -#define ZCL_DISCOVER_COMMANDS_RECEIVED_RESPONSE_COMMAND_ID 0x12 // Ver.: always -#define ZCL_DISCOVER_COMMANDS_GENERATED_COMMAND_ID 0x13 // Ver.: always -#define ZCL_DISCOVER_COMMANDS_GENERATED_RESPONSE_COMMAND_ID 0x14 // Ver.: always -#define ZCL_DISCOVER_ATTRIBUTES_EXTENDED_COMMAND_ID 0x15 // Ver.: always -#define ZCL_DISCOVER_ATTRIBUTES_EXTENDED_RESPONSE_COMMAND_ID 0x16 // Ver.: always -// Command types for cluster: Basic -// Cluster specification level: zcl-7.0-07-5123-07 - -// Server to client -#define ZCL_GET_LOCALES_SUPPORTED_RESPONSE_COMMAND_ID 0x01 // Ver.: always - -// Client to server -#define ZCL_RESET_TO_FACTORY_DEFAULTS_COMMAND_ID 0x00 // Ver.: always -#define ZCL_GET_LOCALES_SUPPORTED_COMMAND_ID 0x01 // Ver.: always - -// Command types for cluster: Identify -// Cluster specification level: zcl-7.0-07-5123-07 - -// Server to client -#define ZCL_IDENTIFY_QUERY_RESPONSE_COMMAND_ID 0x00 // Ver.: always - -// Client to server -#define ZCL_IDENTIFY_COMMAND_ID 0x00 // Ver.: always -#define ZCL_IDENTIFY_QUERY_COMMAND_ID 0x01 // Ver.: always -#define ZCL_E_Z_MODE_INVOKE_COMMAND_ID 0x02 // Ver.: always -#define ZCL_UPDATE_COMMISSION_STATE_COMMAND_ID 0x03 // Ver.: always -#define ZCL_TRIGGER_EFFECT_COMMAND_ID 0x40 // Ver.: since zll-1.0-11-0037-10 - -// Command types for cluster: Groups -// Cluster specification level: zcl-7.0-07-5123-07 - -// Server to client -#define ZCL_ADD_GROUP_RESPONSE_COMMAND_ID 0x00 // Ver.: always -#define ZCL_VIEW_GROUP_RESPONSE_COMMAND_ID 0x01 // Ver.: always -#define ZCL_GET_GROUP_MEMBERSHIP_RESPONSE_COMMAND_ID 0x02 // Ver.: always -#define ZCL_REMOVE_GROUP_RESPONSE_COMMAND_ID 0x03 // Ver.: always - -// Client to server -#define ZCL_ADD_GROUP_COMMAND_ID 0x00 // Ver.: always -#define ZCL_VIEW_GROUP_COMMAND_ID 0x01 // Ver.: always -#define ZCL_GET_GROUP_MEMBERSHIP_COMMAND_ID 0x02 // Ver.: always -#define ZCL_REMOVE_GROUP_COMMAND_ID 0x03 // Ver.: always -#define ZCL_REMOVE_ALL_GROUPS_COMMAND_ID 0x04 // Ver.: always -#define ZCL_ADD_GROUP_IF_IDENTIFYING_COMMAND_ID 0x05 // Ver.: always - -// Command types for cluster: Scenes -// Cluster specification level: zcl-7.0-07-5123-07 - -// Server to client -#define ZCL_ADD_SCENE_RESPONSE_COMMAND_ID 0x00 // Ver.: always -#define ZCL_VIEW_SCENE_RESPONSE_COMMAND_ID 0x01 // Ver.: always -#define ZCL_REMOVE_SCENE_RESPONSE_COMMAND_ID 0x02 // Ver.: always -#define ZCL_REMOVE_ALL_SCENES_RESPONSE_COMMAND_ID 0x03 // Ver.: always -#define ZCL_STORE_SCENE_RESPONSE_COMMAND_ID 0x04 // Ver.: always -#define ZCL_GET_SCENE_MEMBERSHIP_RESPONSE_COMMAND_ID 0x06 // Ver.: always -#define ZCL_ENHANCED_ADD_SCENE_RESPONSE_COMMAND_ID 0x40 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_ENHANCED_VIEW_SCENE_RESPONSE_COMMAND_ID 0x41 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_COPY_SCENE_RESPONSE_COMMAND_ID 0x42 // Ver.: since zll-1.0-11-0037-10 - -// Client to server -#define ZCL_ADD_SCENE_COMMAND_ID 0x00 // Ver.: always -#define ZCL_VIEW_SCENE_COMMAND_ID 0x01 // Ver.: always -#define ZCL_REMOVE_SCENE_COMMAND_ID 0x02 // Ver.: always -#define ZCL_REMOVE_ALL_SCENES_COMMAND_ID 0x03 // Ver.: always -#define ZCL_STORE_SCENE_COMMAND_ID 0x04 // Ver.: always -#define ZCL_RECALL_SCENE_COMMAND_ID 0x05 // Ver.: always -#define ZCL_GET_SCENE_MEMBERSHIP_COMMAND_ID 0x06 // Ver.: always -#define ZCL_ENHANCED_ADD_SCENE_COMMAND_ID 0x40 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_ENHANCED_VIEW_SCENE_COMMAND_ID 0x41 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_COPY_SCENE_COMMAND_ID 0x42 // Ver.: since zll-1.0-11-0037-10 - -// Command types for cluster: On/off -// Cluster specification level: zcl-7.0-07-5123-07 - -// Client to server -#define ZCL_OFF_COMMAND_ID 0x00 // Ver.: always -#define ZCL_ON_COMMAND_ID 0x01 // Ver.: always -#define ZCL_TOGGLE_COMMAND_ID 0x02 // Ver.: always -#define ZCL_OFF_WITH_EFFECT_COMMAND_ID 0x40 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_ON_WITH_RECALL_GLOBAL_SCENE_COMMAND_ID 0x41 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_ON_WITH_TIMED_OFF_COMMAND_ID 0x42 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_SAMPLE_MFG_SPECIFIC_OFF_WITH_TRANSITION_COMMAND_ID 0x00 // Ver.: always mfgCode: 0x1002 -#define ZCL_SAMPLE_MFG_SPECIFIC_ON_WITH_TRANSITION_COMMAND_ID 0x01 // Ver.: always mfgCode: 0x1002 -#define ZCL_SAMPLE_MFG_SPECIFIC_TOGGLE_WITH_TRANSITION_COMMAND_ID 0x02 // Ver.: always mfgCode: 0x1002 -#define ZCL_SAMPLE_MFG_SPECIFIC_ON_WITH_TRANSITION2_COMMAND_ID 0x01 // Ver.: always mfgCode: 0x1049 -#define ZCL_SAMPLE_MFG_SPECIFIC_TOGGLE_WITH_TRANSITION2_COMMAND_ID 0x02 // Ver.: always mfgCode: 0x1049 - -// Command types for cluster: Level Control -// Cluster specification level: zcl-7.0-07-5123-07 - -// Client to server -#define ZCL_MOVE_TO_LEVEL_COMMAND_ID 0x00 // Ver.: always -#define ZCL_MOVE_COMMAND_ID 0x01 // Ver.: always -#define ZCL_STEP_COMMAND_ID 0x02 // Ver.: always -#define ZCL_STOP_COMMAND_ID 0x03 // Ver.: always -#define ZCL_MOVE_TO_LEVEL_WITH_ON_OFF_COMMAND_ID 0x04 // Ver.: always -#define ZCL_MOVE_WITH_ON_OFF_COMMAND_ID 0x05 // Ver.: always -#define ZCL_STEP_WITH_ON_OFF_COMMAND_ID 0x06 // Ver.: always -#define ZCL_STOP_WITH_ON_OFF_COMMAND_ID 0x07 // Ver.: always - -// Command types for cluster: Alarms -// Cluster specification level: zcl-7.0-07-5123-07 - -// Server to client -#define ZCL_ALARM_COMMAND_ID 0x00 // Ver.: always -#define ZCL_GET_ALARM_RESPONSE_COMMAND_ID 0x01 // Ver.: always - -// Client to server -#define ZCL_RESET_ALARM_COMMAND_ID 0x00 // Ver.: always -#define ZCL_RESET_ALL_ALARMS_COMMAND_ID 0x01 // Ver.: always -#define ZCL_GET_ALARM_COMMAND_ID 0x02 // Ver.: always -#define ZCL_RESET_ALARM_LOG_COMMAND_ID 0x03 // Ver.: always - -// Command types for cluster: RSSI Location -// Cluster specification level: zcl-7.0-07-5123-07 - -// Server to client -#define ZCL_DEVICE_CONFIGURATION_RESPONSE_COMMAND_ID 0x00 // Ver.: always -#define ZCL_LOCATION_DATA_RESPONSE_COMMAND_ID 0x01 // Ver.: always -#define ZCL_LOCATION_DATA_NOTIFICATION_COMMAND_ID 0x02 // Ver.: always -#define ZCL_COMPACT_LOCATION_DATA_NOTIFICATION_COMMAND_ID 0x03 // Ver.: always -#define ZCL_RSSI_PING_COMMAND_ID 0x04 // Ver.: always -#define ZCL_RSSI_REQUEST_COMMAND_ID 0x05 // Ver.: always -#define ZCL_REPORT_RSSI_MEASUREMENTS_COMMAND_ID 0x06 // Ver.: always -#define ZCL_REQUEST_OWN_LOCATION_COMMAND_ID 0x07 // Ver.: always - -// Client to server -#define ZCL_SET_ABSOLUTE_LOCATION_COMMAND_ID 0x00 // Ver.: always -#define ZCL_SET_DEVICE_CONFIGURATION_COMMAND_ID 0x01 // Ver.: always -#define ZCL_GET_DEVICE_CONFIGURATION_COMMAND_ID 0x02 // Ver.: always -#define ZCL_GET_LOCATION_DATA_COMMAND_ID 0x03 // Ver.: always -#define ZCL_RSSI_RESPONSE_COMMAND_ID 0x04 // Ver.: always -#define ZCL_SEND_PINGS_COMMAND_ID 0x05 // Ver.: always -#define ZCL_ANCHOR_NODE_ANNOUNCE_COMMAND_ID 0x06 // Ver.: always - -// Command types for cluster: Commissioning -// Cluster specification level: zcl-7.0-07-5123-07 - -// Server to client -#define ZCL_RESTART_DEVICE_RESPONSE_COMMAND_ID 0x00 // Ver.: always -#define ZCL_SAVE_STARTUP_PARAMETERS_RESPONSE_COMMAND_ID 0x01 // Ver.: always -#define ZCL_RESTORE_STARTUP_PARAMETERS_RESPONSE_COMMAND_ID 0x02 // Ver.: always -#define ZCL_RESET_STARTUP_PARAMETERS_RESPONSE_COMMAND_ID 0x03 // Ver.: always - -// Client to server -#define ZCL_RESTART_DEVICE_COMMAND_ID 0x00 // Ver.: always -#define ZCL_SAVE_STARTUP_PARAMETERS_COMMAND_ID 0x01 // Ver.: always -#define ZCL_RESTORE_STARTUP_PARAMETERS_COMMAND_ID 0x02 // Ver.: always -#define ZCL_RESET_STARTUP_PARAMETERS_COMMAND_ID 0x03 // Ver.: always - -// Command types for cluster: Partition -// Cluster specification level: zcl-7.0-07-5123-07 - -// Server to client -#define ZCL_MULTIPLE_ACK_COMMAND_ID 0x00 // Ver.: always -#define ZCL_READ_HANDSHAKE_PARAM_RESPONSE_COMMAND_ID 0x01 // Ver.: always - -// Client to server -#define ZCL_TRANSFER_PARTITIONED_FRAME_COMMAND_ID 0x00 // Ver.: always -#define ZCL_READ_HANDSHAKE_PARAM_COMMAND_ID 0x01 // Ver.: always -#define ZCL_WRITE_HANDSHAKE_PARAM_COMMAND_ID 0x02 // Ver.: always - -// Command types for cluster: Over the Air Bootloading -// Cluster specification level: zcl-7.0-07-5123-07 - -// Server to client -#define ZCL_IMAGE_NOTIFY_COMMAND_ID 0x00 // Ver.: always -#define ZCL_QUERY_NEXT_IMAGE_RESPONSE_COMMAND_ID 0x02 // Ver.: always -#define ZCL_IMAGE_BLOCK_RESPONSE_COMMAND_ID 0x05 // Ver.: always -#define ZCL_UPGRADE_END_RESPONSE_COMMAND_ID 0x07 // Ver.: always -#define ZCL_QUERY_SPECIFIC_FILE_RESPONSE_COMMAND_ID 0x09 // Ver.: always - -// Client to server -#define ZCL_QUERY_NEXT_IMAGE_REQUEST_COMMAND_ID 0x01 // Ver.: always -#define ZCL_IMAGE_BLOCK_REQUEST_COMMAND_ID 0x03 // Ver.: always -#define ZCL_IMAGE_PAGE_REQUEST_COMMAND_ID 0x04 // Ver.: always -#define ZCL_UPGRADE_END_REQUEST_COMMAND_ID 0x06 // Ver.: always -#define ZCL_QUERY_SPECIFIC_FILE_REQUEST_COMMAND_ID 0x08 // Ver.: always - -// Command types for cluster: Power Profile -// Cluster specification level: zcl-7.0-07-5123-07 - -// Server to client -#define ZCL_POWER_PROFILE_NOTIFICATION_COMMAND_ID 0x00 // Ver.: always -#define ZCL_POWER_PROFILE_RESPONSE_COMMAND_ID 0x01 // Ver.: always -#define ZCL_POWER_PROFILE_STATE_RESPONSE_COMMAND_ID 0x02 // Ver.: always -#define ZCL_GET_POWER_PROFILE_PRICE_COMMAND_ID 0x03 // Ver.: always -#define ZCL_POWER_PROFILES_STATE_NOTIFICATION_COMMAND_ID 0x04 // Ver.: always -#define ZCL_GET_OVERALL_SCHEDULE_PRICE_COMMAND_ID 0x05 // Ver.: always -#define ZCL_ENERGY_PHASES_SCHEDULE_REQUEST_COMMAND_ID 0x06 // Ver.: always -#define ZCL_ENERGY_PHASES_SCHEDULE_STATE_RESPONSE_COMMAND_ID 0x07 // Ver.: always -#define ZCL_ENERGY_PHASES_SCHEDULE_STATE_NOTIFICATION_COMMAND_ID 0x08 // Ver.: always -#define ZCL_POWER_PROFILE_SCHEDULE_CONSTRAINTS_NOTIFICATION_COMMAND_ID 0x09 // Ver.: always -#define ZCL_POWER_PROFILE_SCHEDULE_CONSTRAINTS_RESPONSE_COMMAND_ID 0x0A // Ver.: always -#define ZCL_GET_POWER_PROFILE_PRICE_EXTENDED_COMMAND_ID 0x0B // Ver.: always - -// Client to server -#define ZCL_POWER_PROFILE_REQUEST_COMMAND_ID 0x00 // Ver.: always -#define ZCL_POWER_PROFILE_STATE_REQUEST_COMMAND_ID 0x01 // Ver.: always -#define ZCL_GET_POWER_PROFILE_PRICE_RESPONSE_COMMAND_ID 0x02 // Ver.: always -#define ZCL_GET_OVERALL_SCHEDULE_PRICE_RESPONSE_COMMAND_ID 0x03 // Ver.: always -#define ZCL_ENERGY_PHASES_SCHEDULE_NOTIFICATION_COMMAND_ID 0x04 // Ver.: always -#define ZCL_ENERGY_PHASES_SCHEDULE_RESPONSE_COMMAND_ID 0x05 // Ver.: always -#define ZCL_POWER_PROFILE_SCHEDULE_CONSTRAINTS_REQUEST_COMMAND_ID 0x06 // Ver.: always -#define ZCL_ENERGY_PHASES_SCHEDULE_STATE_REQUEST_COMMAND_ID 0x07 // Ver.: always -#define ZCL_GET_POWER_PROFILE_PRICE_EXTENDED_RESPONSE_COMMAND_ID 0x08 // Ver.: always - -// Command types for cluster: Appliance Control -// Cluster specification level: zcl-7.0-07-5123-07 - -// Server to client -#define ZCL_SIGNAL_STATE_RESPONSE_COMMAND_ID 0x00 // Ver.: always -#define ZCL_SIGNAL_STATE_NOTIFICATION_COMMAND_ID 0x01 // Ver.: always - -// Client to server -#define ZCL_EXECUTION_OF_A_COMMAND_COMMAND_ID 0x00 // Ver.: always -#define ZCL_SIGNAL_STATE_COMMAND_ID 0x01 // Ver.: always -#define ZCL_WRITE_FUNCTIONS_COMMAND_ID 0x02 // Ver.: always -#define ZCL_OVERLOAD_PAUSE_RESUME_COMMAND_ID 0x03 // Ver.: always -#define ZCL_OVERLOAD_PAUSE_COMMAND_ID 0x04 // Ver.: always -#define ZCL_OVERLOAD_WARNING_COMMAND_ID 0x05 // Ver.: always - -// Command types for cluster: Poll Control -// Cluster specification level: zcl-7.0-07-5123-07 - -// Server to client -#define ZCL_CHECK_IN_COMMAND_ID 0x00 // Ver.: always - -// Client to server -#define ZCL_CHECK_IN_RESPONSE_COMMAND_ID 0x00 // Ver.: always -#define ZCL_FAST_POLL_STOP_COMMAND_ID 0x01 // Ver.: always -#define ZCL_SET_LONG_POLL_INTERVAL_COMMAND_ID 0x02 // Ver.: always -#define ZCL_SET_SHORT_POLL_INTERVAL_COMMAND_ID 0x03 // Ver.: always - -// Command types for cluster: Green Power -// Cluster specification level: gp-1.0a-09-5499-26 - -// Server to client -#define ZCL_GP_NOTIFICATION_RESPONSE_COMMAND_ID 0x00 // Ver.: since gp-1.0-09-5499-24 -#define ZCL_GP_PAIRING_COMMAND_ID 0x01 // Ver.: since gp-1.0-09-5499-24 -#define ZCL_GP_PROXY_COMMISSIONING_MODE_COMMAND_ID 0x02 // Ver.: since gp-1.0-09-5499-24 -#define ZCL_GP_RESPONSE_COMMAND_ID 0x06 // Ver.: since gp-1.0-09-5499-24 -#define ZCL_GP_TRANSLATION_TABLE_RESPONSE_COMMAND_ID 0x08 // Ver.: since gp-1.0-09-5499-24 -#define ZCL_GP_SINK_TABLE_RESPONSE_COMMAND_ID 0x0A // Ver.: always -#define ZCL_GP_PROXY_TABLE_REQUEST_COMMAND_ID 0x0B // Ver.: always - -// Client to server -#define ZCL_GP_NOTIFICATION_COMMAND_ID 0x00 // Ver.: since gp-1.0-09-5499-24 -#define ZCL_GP_PAIRING_SEARCH_COMMAND_ID 0x01 // Ver.: since gp-1.0-09-5499-24 -#define ZCL_GP_TUNNELING_STOP_COMMAND_ID 0x03 // Ver.: since gp-1.0-09-5499-24 -#define ZCL_GP_COMMISSIONING_NOTIFICATION_COMMAND_ID 0x04 // Ver.: since gp-1.0-09-5499-24 -#define ZCL_GP_SINK_COMMISSIONING_MODE_COMMAND_ID 0x05 // Ver.: always -#define ZCL_GP_TRANSLATION_TABLE_UPDATE_COMMAND_ID 0x07 // Ver.: since gp-1.0-09-5499-24 -#define ZCL_GP_TRANSLATION_TABLE_REQUEST_COMMAND_ID 0x08 // Ver.: always -#define ZCL_GP_PAIRING_CONFIGURATION_COMMAND_ID 0x09 // Ver.: since gp-1.0-09-5499-24 -#define ZCL_GP_SINK_TABLE_REQUEST_COMMAND_ID 0x0A // Ver.: always -#define ZCL_GP_PROXY_TABLE_RESPONSE_COMMAND_ID 0x0B // Ver.: always - -// Command types for cluster: Door Lock -// Cluster specification level: zcl-6.0-15-02018-001 - -// Server to client -#define ZCL_LOCK_DOOR_RESPONSE_COMMAND_ID 0x00 // Ver.: always -#define ZCL_UNLOCK_DOOR_RESPONSE_COMMAND_ID 0x01 // Ver.: always -#define ZCL_TOGGLE_RESPONSE_COMMAND_ID 0x02 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_UNLOCK_WITH_TIMEOUT_RESPONSE_COMMAND_ID 0x03 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_GET_LOG_RECORD_RESPONSE_COMMAND_ID 0x04 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_SET_PIN_RESPONSE_COMMAND_ID 0x05 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_GET_PIN_RESPONSE_COMMAND_ID 0x06 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_CLEAR_PIN_RESPONSE_COMMAND_ID 0x07 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_CLEAR_ALL_PINS_RESPONSE_COMMAND_ID 0x08 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_SET_USER_STATUS_RESPONSE_COMMAND_ID 0x09 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_GET_USER_STATUS_RESPONSE_COMMAND_ID 0x0A // Ver.: since ha-1.2-05-3520-29 -#define ZCL_SET_WEEKDAY_SCHEDULE_RESPONSE_COMMAND_ID 0x0B // Ver.: since ha-1.2-05-3520-29 -#define ZCL_GET_WEEKDAY_SCHEDULE_RESPONSE_COMMAND_ID 0x0C // Ver.: since ha-1.2-05-3520-29 -#define ZCL_CLEAR_WEEKDAY_SCHEDULE_RESPONSE_COMMAND_ID 0x0D // Ver.: since ha-1.2-05-3520-29 -#define ZCL_SET_YEARDAY_SCHEDULE_RESPONSE_COMMAND_ID 0x0E // Ver.: since ha-1.2-05-3520-29 -#define ZCL_GET_YEARDAY_SCHEDULE_RESPONSE_COMMAND_ID 0x0F // Ver.: since ha-1.2-05-3520-29 -#define ZCL_CLEAR_YEARDAY_SCHEDULE_RESPONSE_COMMAND_ID 0x10 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_SET_HOLIDAY_SCHEDULE_RESPONSE_COMMAND_ID 0x11 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_GET_HOLIDAY_SCHEDULE_RESPONSE_COMMAND_ID 0x12 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_CLEAR_HOLIDAY_SCHEDULE_RESPONSE_COMMAND_ID 0x13 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_SET_USER_TYPE_RESPONSE_COMMAND_ID 0x14 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_GET_USER_TYPE_RESPONSE_COMMAND_ID 0x15 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_SET_RFID_RESPONSE_COMMAND_ID 0x16 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_GET_RFID_RESPONSE_COMMAND_ID 0x17 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_CLEAR_RFID_RESPONSE_COMMAND_ID 0x18 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_CLEAR_ALL_RFIDS_RESPONSE_COMMAND_ID 0x19 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_OPERATION_EVENT_NOTIFICATION_COMMAND_ID 0x20 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_PROGRAMMING_EVENT_NOTIFICATION_COMMAND_ID 0x21 // Ver.: since ha-1.2-05-3520-29 - -// Client to server -#define ZCL_LOCK_DOOR_COMMAND_ID 0x00 // Ver.: always -#define ZCL_UNLOCK_DOOR_COMMAND_ID 0x01 // Ver.: always -#define ZCL_TOGGLE_COMMAND_ID 0x02 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_UNLOCK_WITH_TIMEOUT_COMMAND_ID 0x03 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_GET_LOG_RECORD_COMMAND_ID 0x04 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_SET_PIN_COMMAND_ID 0x05 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_GET_PIN_COMMAND_ID 0x06 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_CLEAR_PIN_COMMAND_ID 0x07 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_CLEAR_ALL_PINS_COMMAND_ID 0x08 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_SET_USER_STATUS_COMMAND_ID 0x09 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_GET_USER_STATUS_COMMAND_ID 0x0A // Ver.: since ha-1.2-05-3520-29 -#define ZCL_SET_WEEKDAY_SCHEDULE_COMMAND_ID 0x0B // Ver.: since ha-1.2-05-3520-29 -#define ZCL_GET_WEEKDAY_SCHEDULE_COMMAND_ID 0x0C // Ver.: since ha-1.2-05-3520-29 -#define ZCL_CLEAR_WEEKDAY_SCHEDULE_COMMAND_ID 0x0D // Ver.: since ha-1.2-05-3520-29 -#define ZCL_SET_YEARDAY_SCHEDULE_COMMAND_ID 0x0E // Ver.: since ha-1.2-05-3520-29 -#define ZCL_GET_YEARDAY_SCHEDULE_COMMAND_ID 0x0F // Ver.: since ha-1.2-05-3520-29 -#define ZCL_CLEAR_YEARDAY_SCHEDULE_COMMAND_ID 0x10 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_SET_HOLIDAY_SCHEDULE_COMMAND_ID 0x11 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_GET_HOLIDAY_SCHEDULE_COMMAND_ID 0x12 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_CLEAR_HOLIDAY_SCHEDULE_COMMAND_ID 0x13 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_SET_USER_TYPE_COMMAND_ID 0x14 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_GET_USER_TYPE_COMMAND_ID 0x15 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_SET_RFID_COMMAND_ID 0x16 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_GET_RFID_COMMAND_ID 0x17 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_CLEAR_RFID_COMMAND_ID 0x18 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_CLEAR_ALL_RFIDS_COMMAND_ID 0x19 // Ver.: since ha-1.2-05-3520-29 - -// Command types for cluster: Window Covering -// Cluster specification level: zcl-6.0-15-02018-001 - -// Client to server -#define ZCL_WINDOW_COVERING_UP_OPEN_COMMAND_ID 0x00 // Ver.: always -#define ZCL_WINDOW_COVERING_DOWN_CLOSE_COMMAND_ID 0x01 // Ver.: always -#define ZCL_WINDOW_COVERING_STOP_COMMAND_ID 0x02 // Ver.: always -#define ZCL_WINDOW_COVERING_GO_TO_LIFT_VALUE_COMMAND_ID 0x04 // Ver.: always -#define ZCL_WINDOW_COVERING_GO_TO_LIFT_PERCENTAGE_COMMAND_ID 0x05 // Ver.: always -#define ZCL_WINDOW_COVERING_GO_TO_TILT_VALUE_COMMAND_ID 0x07 // Ver.: always -#define ZCL_WINDOW_COVERING_GO_TO_TILT_PERCENTAGE_COMMAND_ID 0x08 // Ver.: always - -// Command types for cluster: Barrier Control -// Cluster specification level: zcl-6.0-15-02018-001 - -// Client to server -#define ZCL_BARRIER_CONTROL_GO_TO_PERCENT_COMMAND_ID 0x00 // Ver.: always -#define ZCL_BARRIER_CONTROL_STOP_COMMAND_ID 0x01 // Ver.: always - -// Command types for cluster: Thermostat -// Cluster specification level: zcl-6.0-15-02018-001 - -// Server to client -#define ZCL_CURRENT_WEEKLY_SCHEDULE_COMMAND_ID 0x00 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_RELAY_STATUS_LOG_COMMAND_ID 0x01 // Ver.: since ha-1.2-05-3520-29 - -// Client to server -#define ZCL_SETPOINT_RAISE_LOWER_COMMAND_ID 0x00 // Ver.: always -#define ZCL_SET_WEEKLY_SCHEDULE_COMMAND_ID 0x01 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_GET_WEEKLY_SCHEDULE_COMMAND_ID 0x02 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_CLEAR_WEEKLY_SCHEDULE_COMMAND_ID 0x03 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_GET_RELAY_STATUS_LOG_COMMAND_ID 0x04 // Ver.: since ha-1.2-05-3520-29 - -// Command types for cluster: Color Control -// Cluster specification level: zcl6-errata-14-0129-15 - -// Client to server -#define ZCL_MOVE_TO_HUE_COMMAND_ID 0x00 // Ver.: always -#define ZCL_MOVE_HUE_COMMAND_ID 0x01 // Ver.: always -#define ZCL_STEP_HUE_COMMAND_ID 0x02 // Ver.: always -#define ZCL_MOVE_TO_SATURATION_COMMAND_ID 0x03 // Ver.: always -#define ZCL_MOVE_SATURATION_COMMAND_ID 0x04 // Ver.: always -#define ZCL_STEP_SATURATION_COMMAND_ID 0x05 // Ver.: always -#define ZCL_MOVE_TO_HUE_AND_SATURATION_COMMAND_ID 0x06 // Ver.: always -#define ZCL_MOVE_TO_COLOR_COMMAND_ID 0x07 // Ver.: always -#define ZCL_MOVE_COLOR_COMMAND_ID 0x08 // Ver.: always -#define ZCL_STEP_COLOR_COMMAND_ID 0x09 // Ver.: always -#define ZCL_MOVE_TO_COLOR_TEMPERATURE_COMMAND_ID 0x0A // Ver.: always -#define ZCL_ENHANCED_MOVE_TO_HUE_COMMAND_ID 0x40 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_ENHANCED_MOVE_HUE_COMMAND_ID 0x41 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_ENHANCED_STEP_HUE_COMMAND_ID 0x42 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_ENHANCED_MOVE_TO_HUE_AND_SATURATION_COMMAND_ID 0x43 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_COLOR_LOOP_SET_COMMAND_ID 0x44 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_STOP_MOVE_STEP_COMMAND_ID 0x47 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_MOVE_COLOR_TEMPERATURE_COMMAND_ID 0x4B // Ver.: since zll-1.0-11-0037-10 -#define ZCL_STEP_COLOR_TEMPERATURE_COMMAND_ID 0x4C // Ver.: since zll-1.0-11-0037-10 - -// Command types for cluster: IAS Zone -// Cluster specification level: zcl-6.0-15-02018-001 - -// Server to client -#define ZCL_ZONE_STATUS_CHANGE_NOTIFICATION_COMMAND_ID 0x00 // Ver.: always -#define ZCL_ZONE_ENROLL_REQUEST_COMMAND_ID 0x01 // Ver.: always -#define ZCL_INITIATE_NORMAL_OPERATION_MODE_RESPONSE_COMMAND_ID 0x02 // Ver.: always -#define ZCL_INITIATE_TEST_MODE_RESPONSE_COMMAND_ID 0x03 // Ver.: always - -// Client to server -#define ZCL_ZONE_ENROLL_RESPONSE_COMMAND_ID 0x00 // Ver.: always -#define ZCL_INITIATE_NORMAL_OPERATION_MODE_COMMAND_ID 0x01 // Ver.: always -#define ZCL_INITIATE_TEST_MODE_COMMAND_ID 0x02 // Ver.: always - -// Command types for cluster: IAS ACE -// Cluster specification level: zcl-6.0-15-02018-001 - -// Server to client -#define ZCL_ARM_RESPONSE_COMMAND_ID 0x00 // Ver.: always -#define ZCL_GET_ZONE_ID_MAP_RESPONSE_COMMAND_ID 0x01 // Ver.: always -#define ZCL_GET_ZONE_INFORMATION_RESPONSE_COMMAND_ID 0x02 // Ver.: always -#define ZCL_ZONE_STATUS_CHANGED_COMMAND_ID 0x03 // Ver.: always -#define ZCL_PANEL_STATUS_CHANGED_COMMAND_ID 0x04 // Ver.: always -#define ZCL_GET_PANEL_STATUS_RESPONSE_COMMAND_ID 0x05 // Ver.: since ha-1.2.1-05-3520-30 -#define ZCL_SET_BYPASSED_ZONE_LIST_COMMAND_ID 0x06 // Ver.: since ha-1.2.1-05-3520-30 -#define ZCL_BYPASS_RESPONSE_COMMAND_ID 0x07 // Ver.: since ha-1.2.1-05-3520-30 -#define ZCL_GET_ZONE_STATUS_RESPONSE_COMMAND_ID 0x08 // Ver.: since ha-1.2.1-05-3520-30 - -// Client to server -#define ZCL_ARM_COMMAND_ID 0x00 // Ver.: always -#define ZCL_BYPASS_COMMAND_ID 0x01 // Ver.: always -#define ZCL_EMERGENCY_COMMAND_ID 0x02 // Ver.: always -#define ZCL_FIRE_COMMAND_ID 0x03 // Ver.: always -#define ZCL_PANIC_COMMAND_ID 0x04 // Ver.: always -#define ZCL_GET_ZONE_ID_MAP_COMMAND_ID 0x05 // Ver.: always -#define ZCL_GET_ZONE_INFORMATION_COMMAND_ID 0x06 // Ver.: always -#define ZCL_GET_PANEL_STATUS_COMMAND_ID 0x07 // Ver.: since ha-1.2.1-05-3520-30 -#define ZCL_GET_BYPASSED_ZONE_LIST_COMMAND_ID 0x08 // Ver.: since ha-1.2.1-05-3520-30 -#define ZCL_GET_ZONE_STATUS_COMMAND_ID 0x09 // Ver.: since ha-1.2.1-05-3520-30 - -// Command types for cluster: IAS WD -// Cluster specification level: zcl-6.0-15-02018-001 - -// Client to server -#define ZCL_START_WARNING_COMMAND_ID 0x00 // Ver.: always -#define ZCL_SQUAWK_COMMAND_ID 0x01 // Ver.: always - -// Command types for cluster: Generic Tunnel -// Cluster specification level: cba-1.0-05-3516-12 - -// Server to client -#define ZCL_MATCH_PROTOCOL_ADDRESS_RESPONSE_COMMAND_ID 0x00 // Ver.: always -#define ZCL_ADVERTISE_PROTOCOL_ADDRESS_COMMAND_ID 0x01 // Ver.: always - -// Client to server -#define ZCL_MATCH_PROTOCOL_ADDRESS_COMMAND_ID 0x00 // Ver.: always - -// Command types for cluster: BACnet Protocol Tunnel -// Cluster specification level: cba-1.0-05-3516-12 - -// Client to server -#define ZCL_TRANSFER_NPDU_COMMAND_ID 0x00 // Ver.: always - -// Command types for cluster: 11073 Protocol Tunnel -// Cluster specification level: hc-1.0-07-5360-15 - -// Client to server -#define ZCL_TRANSFER_A_P_D_U_COMMAND_ID 0x00 // Ver.: always -#define ZCL_CONNECT_REQUEST_COMMAND_ID 0x01 // Ver.: always -#define ZCL_DISCONNECT_REQUEST_COMMAND_ID 0x02 // Ver.: always -#define ZCL_CONNECT_STATUS_NOTIFICATION_COMMAND_ID 0x03 // Ver.: always - -// Command types for cluster: ISO 7816 Protocol Tunnel -// Cluster specification level: ta-1.0-07-5307-07 - -// Client to server -#define ZCL_INSERT_SMART_CARD_COMMAND_ID 0x01 // Ver.: always -#define ZCL_EXTRACT_SMART_CARD_COMMAND_ID 0x02 // Ver.: always - -// Either direction -#define ZCL_TRANSFER_APDU_COMMAND_ID 0x00 // Ver.: always - -// Command types for cluster: Price -// Cluster specification level: se-1.2b-15-0131-02 - -// Server to client -#define ZCL_PUBLISH_PRICE_COMMAND_ID 0x00 // Ver.: always -#define ZCL_PUBLISH_BLOCK_PERIOD_COMMAND_ID 0x01 // Ver.: since se-1.1-07-5356-16 -#define ZCL_PUBLISH_CONVERSION_FACTOR_COMMAND_ID 0x02 // Ver.: since se-1.1a-07-5356-17 -#define ZCL_PUBLISH_CALORIFIC_VALUE_COMMAND_ID 0x03 // Ver.: since se-1.1a-07-5356-17 -#define ZCL_PUBLISH_TARIFF_INFORMATION_COMMAND_ID 0x04 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PUBLISH_PRICE_MATRIX_COMMAND_ID 0x05 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PUBLISH_BLOCK_THRESHOLDS_COMMAND_ID 0x06 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PUBLISH_C_O2_VALUE_COMMAND_ID 0x07 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PUBLISH_TIER_LABELS_COMMAND_ID 0x08 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PUBLISH_BILLING_PERIOD_COMMAND_ID 0x09 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PUBLISH_CONSOLIDATED_BILL_COMMAND_ID 0x0A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PUBLISH_CPP_EVENT_COMMAND_ID 0x0B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PUBLISH_CREDIT_PAYMENT_COMMAND_ID 0x0C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PUBLISH_CURRENCY_CONVERSION_COMMAND_ID 0x0D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CANCEL_TARIFF_COMMAND_ID 0x0E // Ver.: since se-1.2a-07-5356-19 - -// Client to server -#define ZCL_GET_CURRENT_PRICE_COMMAND_ID 0x00 // Ver.: always -#define ZCL_GET_SCHEDULED_PRICES_COMMAND_ID 0x01 // Ver.: always -#define ZCL_PRICE_ACKNOWLEDGEMENT_COMMAND_ID 0x02 // Ver.: since se-1.1-07-5356-16 -#define ZCL_GET_BLOCK_PERIODS_COMMAND_ID 0x03 // Ver.: since se-1.1-07-5356-16 -#define ZCL_GET_CONVERSION_FACTOR_COMMAND_ID 0x04 // Ver.: since se-1.1a-07-5356-17 -#define ZCL_GET_CALORIFIC_VALUE_COMMAND_ID 0x05 // Ver.: since se-1.1a-07-5356-17 -#define ZCL_GET_TARIFF_INFORMATION_COMMAND_ID 0x06 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_GET_PRICE_MATRIX_COMMAND_ID 0x07 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_GET_BLOCK_THRESHOLDS_COMMAND_ID 0x08 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_GET_C_O2_VALUE_COMMAND_ID 0x09 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_GET_TIER_LABELS_COMMAND_ID 0x0A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_GET_BILLING_PERIOD_COMMAND_ID 0x0B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_GET_CONSOLIDATED_BILL_COMMAND_ID 0x0C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CPP_EVENT_RESPONSE_COMMAND_ID 0x0D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_GET_CREDIT_PAYMENT_COMMAND_ID 0x0E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_GET_CURRENCY_CONVERSION_COMMAND_COMMAND_ID 0x0F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_GET_TARIFF_CANCELLATION_COMMAND_ID 0x10 // Ver.: since se-1.2a-07-5356-19 - -// Command types for cluster: Demand Response and Load Control -// Cluster specification level: se-1.2b-15-0131-02 - -// Server to client -#define ZCL_LOAD_CONTROL_EVENT_COMMAND_ID 0x00 // Ver.: always -#define ZCL_CANCEL_LOAD_CONTROL_EVENT_COMMAND_ID 0x01 // Ver.: always -#define ZCL_CANCEL_ALL_LOAD_CONTROL_EVENTS_COMMAND_ID 0x02 // Ver.: always - -// Client to server -#define ZCL_REPORT_EVENT_STATUS_COMMAND_ID 0x00 // Ver.: always -#define ZCL_GET_SCHEDULED_EVENTS_COMMAND_ID 0x01 // Ver.: always - -// Command types for cluster: Simple Metering -// Cluster specification level: se-1.2b-15-0131-02 - -// Server to client -#define ZCL_GET_PROFILE_RESPONSE_COMMAND_ID 0x00 // Ver.: always -#define ZCL_REQUEST_MIRROR_COMMAND_ID 0x01 // Ver.: always -#define ZCL_REMOVE_MIRROR_COMMAND_ID 0x02 // Ver.: always -#define ZCL_REQUEST_FAST_POLL_MODE_RESPONSE_COMMAND_ID 0x03 // Ver.: since se-1.1-07-5356-16 -#define ZCL_SCHEDULE_SNAPSHOT_RESPONSE_COMMAND_ID 0x04 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TAKE_SNAPSHOT_RESPONSE_COMMAND_ID 0x05 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PUBLISH_SNAPSHOT_COMMAND_ID 0x06 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_GET_SAMPLED_DATA_RESPONSE_COMMAND_ID 0x07 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CONFIGURE_MIRROR_COMMAND_ID 0x08 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CONFIGURE_NOTIFICATION_SCHEME_COMMAND_ID 0x09 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CONFIGURE_NOTIFICATION_FLAGS_COMMAND_ID 0x0A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_GET_NOTIFIED_MESSAGE_COMMAND_ID 0x0B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_SUPPLY_STATUS_RESPONSE_COMMAND_ID 0x0C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_START_SAMPLING_RESPONSE_COMMAND_ID 0x0D // Ver.: since se-1.2a-07-5356-19 - -// Client to server -#define ZCL_GET_PROFILE_COMMAND_ID 0x00 // Ver.: always -#define ZCL_REQUEST_MIRROR_RESPONSE_COMMAND_ID 0x01 // Ver.: always -#define ZCL_MIRROR_REMOVED_COMMAND_ID 0x02 // Ver.: always -#define ZCL_REQUEST_FAST_POLL_MODE_COMMAND_ID 0x03 // Ver.: since se-1.1-07-5356-16 -#define ZCL_SCHEDULE_SNAPSHOT_COMMAND_ID 0x04 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TAKE_SNAPSHOT_COMMAND_ID 0x05 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_GET_SNAPSHOT_COMMAND_ID 0x06 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_START_SAMPLING_COMMAND_ID 0x07 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_GET_SAMPLED_DATA_COMMAND_ID 0x08 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_MIRROR_REPORT_ATTRIBUTE_RESPONSE_COMMAND_ID 0x09 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RESET_LOAD_LIMIT_COUNTER_COMMAND_ID 0x0A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CHANGE_SUPPLY_COMMAND_ID 0x0B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_LOCAL_CHANGE_SUPPLY_COMMAND_ID 0x0C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_SET_SUPPLY_STATUS_COMMAND_ID 0x0D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_SET_UNCONTROLLED_FLOW_THRESHOLD_COMMAND_ID 0x0E // Ver.: since se-1.2a-07-5356-19 - -// Command types for cluster: Messaging -// Cluster specification level: se-1.2b-15-0131-02 - -// Server to client -#define ZCL_DISPLAY_MESSAGE_COMMAND_ID 0x00 // Ver.: always -#define ZCL_CANCEL_MESSAGE_COMMAND_ID 0x01 // Ver.: always -#define ZCL_DISPLAY_PROTECTED_MESSAGE_COMMAND_ID 0x02 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CANCEL_ALL_MESSAGES_COMMAND_ID 0x03 // Ver.: since se-1.2a-07-5356-19 - -// Client to server -#define ZCL_GET_LAST_MESSAGE_COMMAND_ID 0x00 // Ver.: always -#define ZCL_MESSAGE_CONFIRMATION_COMMAND_ID 0x01 // Ver.: always -#define ZCL_GET_MESSAGE_CANCELLATION_COMMAND_ID 0x02 // Ver.: since se-1.2a-07-5356-19 - -// Command types for cluster: Tunneling -// Cluster specification level: se-1.2b-15-0131-02 - -// Server to client -#define ZCL_REQUEST_TUNNEL_RESPONSE_COMMAND_ID 0x00 // Ver.: always -#define ZCL_TRANSFER_DATA_SERVER_TO_CLIENT_COMMAND_ID 0x01 // Ver.: always -#define ZCL_TRANSFER_DATA_ERROR_SERVER_TO_CLIENT_COMMAND_ID 0x02 // Ver.: always -#define ZCL_ACK_TRANSFER_DATA_SERVER_TO_CLIENT_COMMAND_ID 0x03 // Ver.: always -#define ZCL_READY_DATA_SERVER_TO_CLIENT_COMMAND_ID 0x04 // Ver.: always -#define ZCL_SUPPORTED_TUNNEL_PROTOCOLS_RESPONSE_COMMAND_ID 0x05 // Ver.: since se-1.1a-07-5356-17 -#define ZCL_TUNNEL_CLOSURE_NOTIFICATION_COMMAND_ID 0x06 // Ver.: since se-1.1a-07-5356-17 - -// Client to server -#define ZCL_REQUEST_TUNNEL_COMMAND_ID 0x00 // Ver.: always -#define ZCL_CLOSE_TUNNEL_COMMAND_ID 0x01 // Ver.: always -#define ZCL_TRANSFER_DATA_CLIENT_TO_SERVER_COMMAND_ID 0x02 // Ver.: always -#define ZCL_TRANSFER_DATA_ERROR_CLIENT_TO_SERVER_COMMAND_ID 0x03 // Ver.: always -#define ZCL_ACK_TRANSFER_DATA_CLIENT_TO_SERVER_COMMAND_ID 0x04 // Ver.: always -#define ZCL_READY_DATA_CLIENT_TO_SERVER_COMMAND_ID 0x05 // Ver.: always -#define ZCL_GET_SUPPORTED_TUNNEL_PROTOCOLS_COMMAND_ID 0x06 // Ver.: since se-1.1a-07-5356-17 - -// Command types for cluster: Prepayment -// Cluster specification level: se-1.2b-15-0131-02 - -// Server to client -#define ZCL_PUBLISH_PREPAY_SNAPSHOT_COMMAND_ID 0x01 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CHANGE_PAYMENT_MODE_RESPONSE_COMMAND_ID 0x02 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CONSUMER_TOP_UP_RESPONSE_COMMAND_ID 0x03 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PUBLISH_TOP_UP_LOG_COMMAND_ID 0x05 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PUBLISH_DEBT_LOG_COMMAND_ID 0x06 // Ver.: since se-1.2a-07-5356-19 - -// Client to server -#define ZCL_SELECT_AVAILABLE_EMERGENCY_CREDIT_COMMAND_ID 0x00 // Ver.: always -#define ZCL_CHANGE_DEBT_COMMAND_ID 0x02 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_EMERGENCY_CREDIT_SETUP_COMMAND_ID 0x03 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CONSUMER_TOP_UP_COMMAND_ID 0x04 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CREDIT_ADJUSTMENT_COMMAND_ID 0x05 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CHANGE_PAYMENT_MODE_COMMAND_ID 0x06 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_GET_PREPAY_SNAPSHOT_COMMAND_ID 0x07 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_GET_TOP_UP_LOG_COMMAND_ID 0x08 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_SET_LOW_CREDIT_WARNING_LEVEL_COMMAND_ID 0x09 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_GET_DEBT_REPAYMENT_LOG_COMMAND_ID 0x0A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_SET_MAXIMUM_CREDIT_LIMIT_COMMAND_ID 0x0B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_SET_OVERALL_DEBT_CAP_COMMAND_ID 0x0C // Ver.: since se-1.2a-07-5356-19 - -// Command types for cluster: Energy Management -// Cluster specification level: se-1.2b-15-0131-02 - -// Server to client -#define ZCL_REPORT_EVENT_STATUS_COMMAND_ID 0x00 // Ver.: always - -// Client to server -#define ZCL_MANAGE_EVENT_COMMAND_ID 0x00 // Ver.: always - -// Command types for cluster: Calendar -// Cluster specification level: se-1.2b-15-0131-02 - -// Server to client -#define ZCL_PUBLISH_CALENDAR_COMMAND_ID 0x00 // Ver.: always -#define ZCL_PUBLISH_DAY_PROFILE_COMMAND_ID 0x01 // Ver.: always -#define ZCL_PUBLISH_WEEK_PROFILE_COMMAND_ID 0x02 // Ver.: always -#define ZCL_PUBLISH_SEASONS_COMMAND_ID 0x03 // Ver.: always -#define ZCL_PUBLISH_SPECIAL_DAYS_COMMAND_ID 0x04 // Ver.: always -#define ZCL_CANCEL_CALENDAR_COMMAND_ID 0x05 // Ver.: always - -// Client to server -#define ZCL_GET_CALENDAR_COMMAND_ID 0x00 // Ver.: always -#define ZCL_GET_DAY_PROFILES_COMMAND_ID 0x01 // Ver.: always -#define ZCL_GET_WEEK_PROFILES_COMMAND_ID 0x02 // Ver.: always -#define ZCL_GET_SEASONS_COMMAND_ID 0x03 // Ver.: always -#define ZCL_GET_SPECIAL_DAYS_COMMAND_ID 0x04 // Ver.: always -#define ZCL_GET_CALENDAR_CANCELLATION_COMMAND_ID 0x05 // Ver.: always - -// Command types for cluster: Device Management -// Cluster specification level: se-1.2b-15-0131-02 - -// Server to client -#define ZCL_PUBLISH_CHANGE_OF_TENANCY_COMMAND_ID 0x00 // Ver.: always -#define ZCL_PUBLISH_CHANGE_OF_SUPPLIER_COMMAND_ID 0x01 // Ver.: always -#define ZCL_REQUEST_NEW_PASSWORD_RESPONSE_COMMAND_ID 0x02 // Ver.: always -#define ZCL_UPDATE_SITE_ID_COMMAND_ID 0x03 // Ver.: always -#define ZCL_SET_EVENT_CONFIGURATION_COMMAND_ID 0x04 // Ver.: always -#define ZCL_GET_EVENT_CONFIGURATION_COMMAND_ID 0x05 // Ver.: always -#define ZCL_UPDATE_C_I_N_COMMAND_ID 0x06 // Ver.: always - -// Client to server -#define ZCL_GET_CHANGE_OF_TENANCY_COMMAND_ID 0x00 // Ver.: always -#define ZCL_GET_CHANGE_OF_SUPPLIER_COMMAND_ID 0x01 // Ver.: always -#define ZCL_REQUEST_NEW_PASSWORD_COMMAND_ID 0x02 // Ver.: always -#define ZCL_GET_SITE_ID_COMMAND_ID 0x03 // Ver.: always -#define ZCL_REPORT_EVENT_CONFIGURATION_COMMAND_ID 0x04 // Ver.: always -#define ZCL_GET_C_I_N_COMMAND_ID 0x05 // Ver.: always - -// Command types for cluster: Events -// Cluster specification level: se-1.2b-15-0131-02 - -// Server to client -#define ZCL_PUBLISH_EVENT_COMMAND_ID 0x00 // Ver.: always -#define ZCL_PUBLISH_EVENT_LOG_COMMAND_ID 0x01 // Ver.: always -#define ZCL_CLEAR_EVENT_LOG_RESPONSE_COMMAND_ID 0x02 // Ver.: always - -// Client to server -#define ZCL_GET_EVENT_LOG_COMMAND_ID 0x00 // Ver.: always -#define ZCL_CLEAR_EVENT_LOG_REQUEST_COMMAND_ID 0x01 // Ver.: always - -// Command types for cluster: MDU Pairing -// Cluster specification level: se-1.2b-15-0131-02 - -// Server to client -#define ZCL_PAIRING_RESPONSE_COMMAND_ID 0x00 // Ver.: always - -// Client to server -#define ZCL_PAIRING_REQUEST_COMMAND_ID 0x00 // Ver.: always - -// Command types for cluster: Sub-GHz -// Cluster specification level: se-1.2b-15-0131-02 - -// Server to client -#define ZCL_SUSPEND_ZCL_MESSAGES_COMMAND_ID 0x00 // Ver.: always - -// Client to server -#define ZCL_GET_SUSPEND_ZCL_MESSAGES_STATUS_COMMAND_ID 0x00 // Ver.: always - -// Command types for cluster: Key Establishment -// Cluster specification level: zcl-7.0-07-5123-07 - -// Server to client -#define ZCL_INITIATE_KEY_ESTABLISHMENT_RESPONSE_COMMAND_ID 0x00 // Ver.: always -#define ZCL_EPHEMERAL_DATA_RESPONSE_COMMAND_ID 0x01 // Ver.: always -#define ZCL_CONFIRM_KEY_DATA_RESPONSE_COMMAND_ID 0x02 // Ver.: always - -// Client to server -#define ZCL_INITIATE_KEY_ESTABLISHMENT_REQUEST_COMMAND_ID 0x00 // Ver.: always -#define ZCL_EPHEMERAL_DATA_REQUEST_COMMAND_ID 0x01 // Ver.: always -#define ZCL_CONFIRM_KEY_DATA_REQUEST_COMMAND_ID 0x02 // Ver.: always - -// Either direction -#define ZCL_TERMINATE_KEY_ESTABLISHMENT_COMMAND_ID 0x03 // Ver.: always - -// Command types for cluster: Information -// Cluster specification level: ta-1.0-07-5307-07 - -// Server to client -#define ZCL_REQUEST_INFORMATION_RESPONSE_COMMAND_ID 0x00 // Ver.: always -#define ZCL_PUSH_INFORMATION_COMMAND_ID 0x01 // Ver.: always -#define ZCL_SEND_PREFERENCE_RESPONSE_COMMAND_ID 0x02 // Ver.: always -#define ZCL_SERVER_REQUEST_PREFERENCE_COMMAND_ID 0x03 // Ver.: always -#define ZCL_REQUEST_PREFERENCE_CONFIRMATION_COMMAND_ID 0x04 // Ver.: always -#define ZCL_UPDATE_RESPONSE_COMMAND_ID 0x05 // Ver.: always -#define ZCL_DELETE_RESPONSE_COMMAND_ID 0x06 // Ver.: always - -// Client to server -#define ZCL_REQUEST_INFORMATION_COMMAND_ID 0x00 // Ver.: always -#define ZCL_PUSH_INFORMATION_RESPONSE_COMMAND_ID 0x01 // Ver.: always -#define ZCL_SEND_PREFERENCE_COMMAND_ID 0x02 // Ver.: always -#define ZCL_REQUEST_PREFERENCE_RESPONSE_COMMAND_ID 0x03 // Ver.: always -#define ZCL_UPDATE_COMMAND_ID 0x04 // Ver.: always -#define ZCL_DELETE_COMMAND_ID 0x05 // Ver.: always -#define ZCL_CONFIGURE_NODE_DESCRIPTION_COMMAND_ID 0x06 // Ver.: always -#define ZCL_CONFIGURE_DELIVERY_ENABLE_COMMAND_ID 0x07 // Ver.: always -#define ZCL_CONFIGURE_PUSH_INFORMATION_TIMER_COMMAND_ID 0x08 // Ver.: always -#define ZCL_CONFIGURE_SET_ROOT_ID_COMMAND_ID 0x09 // Ver.: always - -// Command types for cluster: Data Sharing -// Cluster specification level: ta-1.0-07-5307-07 - -// Server to client -#define ZCL_WRITE_FILE_REQUEST_COMMAND_ID 0x00 // Ver.: always -#define ZCL_MODIFY_FILE_REQUEST_COMMAND_ID 0x01 // Ver.: always -#define ZCL_MODIFY_RECORD_REQUEST_COMMAND_ID 0x02 // Ver.: always -#define ZCL_FILE_TRANSMISSION_COMMAND_ID 0x03 // Ver.: always -#define ZCL_RECORD_TRANSMISSION_COMMAND_ID 0x04 // Ver.: always - -// Client to server -#define ZCL_READ_FILE_REQUEST_COMMAND_ID 0x00 // Ver.: always -#define ZCL_READ_RECORD_REQUEST_COMMAND_ID 0x01 // Ver.: always -#define ZCL_WRITE_FILE_RESPONSE_COMMAND_ID 0x02 // Ver.: always - -// Command types for cluster: Gaming -// Cluster specification level: ta-1.0-07-5307-07 - -// Server to client -#define ZCL_GAME_ANNOUNCEMENT_COMMAND_ID 0x00 // Ver.: always -#define ZCL_GENERAL_RESPONSE_COMMAND_ID 0x01 // Ver.: always - -// Client to server -#define ZCL_SEARCH_GAME_COMMAND_ID 0x00 // Ver.: always -#define ZCL_JOIN_GAME_COMMAND_ID 0x01 // Ver.: always -#define ZCL_START_GAME_COMMAND_ID 0x02 // Ver.: always -#define ZCL_PAUSE_GAME_COMMAND_ID 0x03 // Ver.: always -#define ZCL_RESUME_GAME_COMMAND_ID 0x04 // Ver.: always -#define ZCL_QUIT_GAME_COMMAND_ID 0x05 // Ver.: always -#define ZCL_END_GAME_COMMAND_ID 0x06 // Ver.: always -#define ZCL_START_OVER_COMMAND_ID 0x07 // Ver.: always -#define ZCL_ACTION_CONTROL_COMMAND_ID 0x08 // Ver.: always -#define ZCL_DOWNLOAD_GAME_COMMAND_ID 0x09 // Ver.: always - -// Command types for cluster: Data Rate Control -// Cluster specification level: ta-1.0-07-5307-07 - -// Server to client -#define ZCL_DATA_RATE_CONTROL_COMMAND_ID 0x00 // Ver.: always - -// Client to server -#define ZCL_PATH_CREATION_COMMAND_ID 0x00 // Ver.: always -#define ZCL_DATA_RATE_NOTIFICATION_COMMAND_ID 0x01 // Ver.: always -#define ZCL_PATH_DELETION_COMMAND_ID 0x02 // Ver.: always - -// Command types for cluster: Voice over ZigBee -// Cluster specification level: ta-1.0-07-5307-07 - -// Server to client -#define ZCL_ESTABLISHMENT_RESPONSE_COMMAND_ID 0x00 // Ver.: always -#define ZCL_VOICE_TRANSMISSION_RESPONSE_COMMAND_ID 0x01 // Ver.: always -#define ZCL_CONTROL_COMMAND_ID 0x02 // Ver.: always - -// Client to server -#define ZCL_ESTABLISHMENT_REQUEST_COMMAND_ID 0x00 // Ver.: always -#define ZCL_VOICE_TRANSMISSION_COMMAND_ID 0x01 // Ver.: always -#define ZCL_VOICE_TRANSMISSION_COMPLETION_COMMAND_ID 0x02 // Ver.: always -#define ZCL_CONTROL_RESPONSE_COMMAND_ID 0x03 // Ver.: always - -// Command types for cluster: Chatting -// Cluster specification level: ta-1.0-07-5307-07 - -// Server to client -#define ZCL_START_CHAT_RESPONSE_COMMAND_ID 0x00 // Ver.: always -#define ZCL_JOIN_CHAT_RESPONSE_COMMAND_ID 0x01 // Ver.: always -#define ZCL_USER_LEFT_COMMAND_ID 0x02 // Ver.: always -#define ZCL_USER_JOINED_COMMAND_ID 0x03 // Ver.: always -#define ZCL_SEARCH_CHAT_RESPONSE_COMMAND_ID 0x04 // Ver.: always -#define ZCL_SWITCH_CHAIRMAN_REQUEST_COMMAND_ID 0x05 // Ver.: always -#define ZCL_SWITCH_CHAIRMAN_CONFIRM_COMMAND_ID 0x06 // Ver.: always -#define ZCL_SWITCH_CHAIRMAN_NOTIFICATION_COMMAND_ID 0x07 // Ver.: always -#define ZCL_GET_NODE_INFORMATION_RESPONSE_COMMAND_ID 0x08 // Ver.: always - -// Client to server -#define ZCL_JOIN_CHAT_REQUEST_COMMAND_ID 0x00 // Ver.: always -#define ZCL_LEAVE_CHAT_REQUEST_COMMAND_ID 0x01 // Ver.: always -#define ZCL_SEARCH_CHAT_REQUEST_COMMAND_ID 0x02 // Ver.: always -#define ZCL_SWITCH_CHAIRMAN_RESPONSE_COMMAND_ID 0x03 // Ver.: always -#define ZCL_START_CHAT_REQUEST_COMMAND_ID 0x04 // Ver.: always -#define ZCL_CHAT_MESSAGE_COMMAND_ID 0x05 // Ver.: always -#define ZCL_GET_NODE_INFORMATION_REQUEST_COMMAND_ID 0x06 // Ver.: always - -// Command types for cluster: Payment -// Cluster specification level: ta-1.0-07-5307-07 - -// Server to client -#define ZCL_BUY_CONFIRM_COMMAND_ID 0x00 // Ver.: always -#define ZCL_RECEIPT_DELIVERY_COMMAND_ID 0x01 // Ver.: always -#define ZCL_TRANSACTION_END_COMMAND_ID 0x02 // Ver.: always - -// Client to server -#define ZCL_BUY_REQUEST_COMMAND_ID 0x00 // Ver.: always -#define ZCL_ACCEPT_PAYMENT_COMMAND_ID 0x01 // Ver.: always -#define ZCL_PAYMENT_CONFIRM_COMMAND_ID 0x02 // Ver.: always - -// Command types for cluster: Billing -// Cluster specification level: ta-1.0-07-5307-07 - -// Server to client -#define ZCL_CHECK_BILL_STATUS_COMMAND_ID 0x00 // Ver.: always -#define ZCL_SEND_BILL_RECORD_COMMAND_ID 0x01 // Ver.: always - -// Client to server -#define ZCL_SUBSCRIBE_COMMAND_ID 0x00 // Ver.: always -#define ZCL_UNSUBSCRIBE_COMMAND_ID 0x01 // Ver.: always -#define ZCL_START_BILLING_SESSION_COMMAND_ID 0x02 // Ver.: always -#define ZCL_STOP_BILLING_SESSION_COMMAND_ID 0x03 // Ver.: always -#define ZCL_BILL_STATUS_NOTIFICATION_COMMAND_ID 0x04 // Ver.: always -#define ZCL_SESSION_KEEP_ALIVE_COMMAND_ID 0x05 // Ver.: always - -// Command types for cluster: Appliance Events and Alert -// Cluster specification level: UNKNOWN - -// Server to client -#define ZCL_GET_ALERTS_RESPONSE_COMMAND_ID 0x00 // Ver.: always -#define ZCL_ALERTS_NOTIFICATION_COMMAND_ID 0x01 // Ver.: always -#define ZCL_EVENTS_NOTIFICATION_COMMAND_ID 0x02 // Ver.: always - -// Client to server -#define ZCL_GET_ALERTS_COMMAND_ID 0x00 // Ver.: always - -// Command types for cluster: Appliance Statistics -// Cluster specification level: UNKNOWN - -// Server to client -#define ZCL_LOG_NOTIFICATION_COMMAND_ID 0x00 // Ver.: always -#define ZCL_LOG_RESPONSE_COMMAND_ID 0x01 // Ver.: always -#define ZCL_LOG_QUEUE_RESPONSE_COMMAND_ID 0x02 // Ver.: always -#define ZCL_STATISTICS_AVAILABLE_COMMAND_ID 0x03 // Ver.: always - -// Client to server -#define ZCL_LOG_REQUEST_COMMAND_ID 0x00 // Ver.: always -#define ZCL_LOG_QUEUE_REQUEST_COMMAND_ID 0x01 // Ver.: always - -// Command types for cluster: Electrical Measurement -// Cluster specification level: UNKNOWN - -// Server to client -#define ZCL_GET_PROFILE_INFO_RESPONSE_COMMAND_COMMAND_ID 0x00 // Ver.: always -#define ZCL_GET_MEASUREMENT_PROFILE_RESPONSE_COMMAND_COMMAND_ID 0x01 // Ver.: always - -// Client to server -#define ZCL_GET_PROFILE_INFO_COMMAND_COMMAND_ID 0x00 // Ver.: always -#define ZCL_GET_MEASUREMENT_PROFILE_COMMAND_COMMAND_ID 0x01 // Ver.: always - -// Command types for cluster: ZLL Commissioning -// Cluster specification level: zll-1.0-11-0037-10 - -// Server to client -#define ZCL_SCAN_RESPONSE_COMMAND_ID 0x01 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_DEVICE_INFORMATION_RESPONSE_COMMAND_ID 0x03 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_NETWORK_START_RESPONSE_COMMAND_ID 0x11 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_NETWORK_JOIN_ROUTER_RESPONSE_COMMAND_ID 0x13 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_NETWORK_JOIN_END_DEVICE_RESPONSE_COMMAND_ID 0x15 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_ENDPOINT_INFORMATION_COMMAND_ID 0x40 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_GET_GROUP_IDENTIFIERS_RESPONSE_COMMAND_ID 0x41 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_GET_ENDPOINT_LIST_RESPONSE_COMMAND_ID 0x42 // Ver.: since zll-1.0-11-0037-10 - -// Client to server -#define ZCL_SCAN_REQUEST_COMMAND_ID 0x00 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_DEVICE_INFORMATION_REQUEST_COMMAND_ID 0x02 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_IDENTIFY_REQUEST_COMMAND_ID 0x06 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_RESET_TO_FACTORY_NEW_REQUEST_COMMAND_ID 0x07 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_NETWORK_START_REQUEST_COMMAND_ID 0x10 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_NETWORK_JOIN_ROUTER_REQUEST_COMMAND_ID 0x12 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_NETWORK_JOIN_END_DEVICE_REQUEST_COMMAND_ID 0x14 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_NETWORK_UPDATE_REQUEST_COMMAND_ID 0x16 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_GET_GROUP_IDENTIFIERS_REQUEST_COMMAND_ID 0x41 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_GET_ENDPOINT_LIST_REQUEST_COMMAND_ID 0x42 // Ver.: since zll-1.0-11-0037-10 - -// Command types for cluster: Sample Mfg Specific Cluster -// Cluster specification level: UNKNOWN - -// Client to server -#define ZCL_COMMAND_ONE_COMMAND_ID 0x00 // Ver.: always mfgCode: 0x1002 - -// Command types for cluster: Sample Mfg Specific Cluster 2 -// Cluster specification level: UNKNOWN - -// Client to server -#define ZCL_COMMAND_TWO_COMMAND_ID 0x00 // Ver.: always mfgCode: 0x1049 - -// Command types for cluster: Configuration Cluster -// Cluster specification level: UNKNOWN - -// Server to client -#define ZCL_RETURN_TOKEN_COMMAND_ID 0x00 // Ver.: always mfgCode: 0x1002 - -// Client to server -#define ZCL_SET_TOKEN_COMMAND_ID 0x00 // Ver.: always mfgCode: 0x1002 -#define ZCL_LOCK_TOKENS_COMMAND_ID 0x01 // Ver.: always mfgCode: 0x1002 -#define ZCL_READ_TOKENS_COMMAND_ID 0x02 // Ver.: always mfgCode: 0x1002 -#define ZCL_UNLOCK_TOKENS_COMMAND_ID 0x03 // Ver.: always mfgCode: 0x1002 - -// Command types for cluster: MFGLIB Cluster -// Cluster specification level: UNKNOWN - -// Client to server -#define ZCL_STREAM_COMMAND_ID 0x00 // Ver.: always mfgCode: 0x1002 -#define ZCL_TONE_COMMAND_ID 0x01 // Ver.: always mfgCode: 0x1002 -#define ZCL_RX_MODE_COMMAND_ID 0x02 // Ver.: always mfgCode: 0x1002 - -// Command types for cluster: SL Works With All Hubs -// Cluster specification level: UNKNOWN - -// Server to client -#define ZCL_APS_LINK_KEY_AUTHORIZATION_QUERY_RESPONSE_COMMAND_ID 0x00 // Ver.: always mfgCode: 0x1217 -#define ZCL_POWERING_OFF_NOTIFICATION_COMMAND_ID 0x01 // Ver.: always mfgCode: 0x1217 -#define ZCL_POWERING_ON_NOTIFICATION_COMMAND_ID 0x02 // Ver.: always mfgCode: 0x1217 -#define ZCL_SHORT_ADDRESS_CHANGE_COMMAND_ID 0x03 // Ver.: always mfgCode: 0x1217 -#define ZCL_APS_ACK_ENABLEMENT_QUERY_RESPONSE_COMMAND_ID 0x04 // Ver.: always mfgCode: 0x1217 -#define ZCL_POWER_DESCRIPTOR_CHANGE_COMMAND_ID 0x05 // Ver.: always mfgCode: 0x1217 -#define ZCL_NEW_DEBUG_REPORT_NOTIFICATION_COMMAND_ID 0x06 // Ver.: always mfgCode: 0x1217 -#define ZCL_DEBUG_REPORT_QUERY_RESPONSE_COMMAND_ID 0x07 // Ver.: always mfgCode: 0x1217 -#define ZCL_TRUST_CENTER_FOR_CLUSTER_SERVER_QUERY_RESPONSE_COMMAND_ID 0x08 // Ver.: always mfgCode: 0x1217 -#define ZCL_SURVEY_BEACONS_RESPONSE_COMMAND_ID 0x09 // Ver.: always mfgCode: 0x1217 -#define ZCL_USE_TRUST_CENTER_FOR_CLUSTER_SERVER_RESPONSE_COMMAND_ID 0x9E // Ver.: always mfgCode: 0x1217 - -// Client to server -#define ZCL_ENABLE_APS_LINK_KEY_AUTHORIZATION_COMMAND_ID 0x00 // Ver.: always mfgCode: 0x1217 -#define ZCL_DISABLE_APS_LINK_KEY_AUTHORIZATION_COMMAND_ID 0x01 // Ver.: always mfgCode: 0x1217 -#define ZCL_APS_LINK_KEY_AUTHORIZATION_QUERY_COMMAND_ID 0x02 // Ver.: always mfgCode: 0x1217 -#define ZCL_REQUEST_NEW_APS_LINK_KEY_COMMAND_ID 0x03 // Ver.: always mfgCode: 0x1217 -#define ZCL_ENABLE_WWAH_APP_EVENT_RETRY_ALGORITHM_COMMAND_ID 0x04 // Ver.: always mfgCode: 0x1217 -#define ZCL_DISABLE_WWAH_APP_EVENT_RETRY_ALGORITHM_COMMAND_ID 0x05 // Ver.: always mfgCode: 0x1217 -#define ZCL_REQUEST_TIME_COMMAND_ID 0x06 // Ver.: always mfgCode: 0x1217 -#define ZCL_ENABLE_WWAH_REJOIN_ALGORITHM_COMMAND_ID 0x07 // Ver.: always mfgCode: 0x1217 -#define ZCL_DISABLE_WWAH_REJOIN_ALGORITHM_COMMAND_ID 0x08 // Ver.: always mfgCode: 0x1217 -#define ZCL_SET_IAS_ZONE_ENROLLMENT_METHOD_COMMAND_ID 0x09 // Ver.: always mfgCode: 0x1217 -#define ZCL_CLEAR_BINDING_TABLE_COMMAND_ID 0x0A // Ver.: always mfgCode: 0x1217 -#define ZCL_ENABLE_PERIODIC_ROUTER_CHECK_INS_COMMAND_ID 0x0B // Ver.: always mfgCode: 0x1217 -#define ZCL_DISABLE_PERIODIC_ROUTER_CHECK_INS_COMMAND_ID 0x0C // Ver.: always mfgCode: 0x1217 -#define ZCL_SET_MAC_POLL_FAILURE_WAIT_TIME_COMMAND_ID 0x0D // Ver.: always mfgCode: 0x1217 -#define ZCL_SET_PENDING_NETWORK_UPDATE_COMMAND_ID 0x0E // Ver.: always mfgCode: 0x1217 -#define ZCL_REQUIRE_APS_ACKS_ON_UNICASTS_COMMAND_ID 0x0F // Ver.: always mfgCode: 0x1217 -#define ZCL_REMOVE_APS_ACKS_ON_UNICASTS_REQUIREMENT_COMMAND_ID 0x10 // Ver.: always mfgCode: 0x1217 -#define ZCL_APS_ACK_REQUIREMENT_QUERY_COMMAND_ID 0x11 // Ver.: always mfgCode: 0x1217 -#define ZCL_DEBUG_REPORT_QUERY_COMMAND_ID 0x12 // Ver.: always mfgCode: 0x1217 -#define ZCL_SURVEY_BEACONS_COMMAND_ID 0x13 // Ver.: always mfgCode: 0x1217 -#define ZCL_DISABLE_OTA_DOWNGRADES_COMMAND_ID 0x14 // Ver.: always mfgCode: 0x1217 -#define ZCL_DISABLE_MGMT_LEAVE_WITHOUT_REJOIN_COMMAND_ID 0x15 // Ver.: always mfgCode: 0x1217 -#define ZCL_DISABLE_TOUCHLINK_INTERPAN_MESSAGE_SUPPORT_COMMAND_ID 0x16 // Ver.: always mfgCode: 0x1217 -#define ZCL_ENABLE_WWAH_PARENT_CLASSIFICATION_COMMAND_ID 0x17 // Ver.: always mfgCode: 0x1217 -#define ZCL_DISABLE_WWAH_PARENT_CLASSIFICATION_COMMAND_ID 0x18 // Ver.: always mfgCode: 0x1217 -#define ZCL_ENABLE_TC_SECURITY_ON_NTWK_KEY_ROTATION_COMMAND_ID 0x19 // Ver.: always mfgCode: 0x1217 -#define ZCL_ENABLE_WWAH_BAD_PARENT_RECOVERY_COMMAND_ID 0x1A // Ver.: always mfgCode: 0x1217 -#define ZCL_DISABLE_WWAH_BAD_PARENT_RECOVERY_COMMAND_ID 0x1B // Ver.: always mfgCode: 0x1217 -#define ZCL_ENABLE_CONFIGURATION_MODE_COMMAND_ID 0x1C // Ver.: always mfgCode: 0x1217 -#define ZCL_DISABLE_CONFIGURATION_MODE_COMMAND_ID 0x1D // Ver.: always mfgCode: 0x1217 -#define ZCL_USE_TRUST_CENTER_FOR_CLUSTER_SERVER_COMMAND_ID 0x1E // Ver.: always mfgCode: 0x1217 -#define ZCL_TRUST_CENTER_FOR_CLUSTER_SERVER_QUERY_COMMAND_ID 0x1F // Ver.: always mfgCode: 0x1217 -#endif // SILABS_EMBER_AF_COMMAND_ID +// Prevent multiple inclusion +#pragma once + +// Global, non-cluster-specific commands +#define ZCL_READ_ATTRIBUTES_COMMAND_ID (0x00) +#define ZCL_READ_ATTRIBUTES_RESPONSE_COMMAND_ID (0x01) +#define ZCL_WRITE_ATTRIBUTES_COMMAND_ID (0x02) +#define ZCL_WRITE_ATTRIBUTES_UNDIVIDED_COMMAND_ID (0x03) +#define ZCL_WRITE_ATTRIBUTES_RESPONSE_COMMAND_ID (0x04) +#define ZCL_WRITE_ATTRIBUTES_NO_RESPONSE_COMMAND_ID (0x05) +#define ZCL_CONFIGURE_REPORTING_COMMAND_ID (0x06) +#define ZCL_CONFIGURE_REPORTING_RESPONSE_COMMAND_ID (0x07) +#define ZCL_READ_REPORTING_CONFIGURATION_COMMAND_ID (0x08) +#define ZCL_READ_REPORTING_CONFIGURATION_RESPONSE_COMMAND_ID (0x09) +#define ZCL_REPORT_ATTRIBUTES_COMMAND_ID (0x0A) +#define ZCL_DEFAULT_RESPONSE_COMMAND_ID (0x0B) +#define ZCL_DISCOVER_ATTRIBUTES_COMMAND_ID (0x0C) +#define ZCL_DISCOVER_ATTRIBUTES_RESPONSE_COMMAND_ID (0x0D) +#define ZCL_READ_ATTRIBUTES_STRUCTURED_COMMAND_ID (0x0E) +#define ZCL_WRITE_ATTRIBUTES_STRUCTURED_COMMAND_ID (0x0F) +#define ZCL_WRITE_ATTRIBUTES_STRUCTURED_RESPONSE_COMMAND_ID (0x10) +#define ZCL_DISCOVER_COMMANDS_RECEIVED_COMMAND_ID (0x11) +#define ZCL_DISCOVER_COMMANDS_RECEIVED_RESPONSE_COMMAND_ID (0x12) +#define ZCL_DISCOVER_COMMANDS_GENERATED_COMMAND_ID (0x13) +#define ZCL_DISCOVER_COMMANDS_GENERATED_RESPONSE_COMMAND_ID (0x14) +#define ZCL_DISCOVER_ATTRIBUTES_EXTENDED_COMMAND_ID (0x15) +#define ZCL_DISCOVER_ATTRIBUTES_EXTENDED_RESPONSE_COMMAND_ID (0x16) + +// Commands for cluster: Basic +#define ZCL_RESET_TO_FACTORY_DEFAULTS_COMMAND_ID (0x00) + +// Commands for cluster: Identify +#define ZCL_IDENTIFY_COMMAND_ID (0x00) +#define ZCL_IDENTIFY_QUERY_RESPONSE_COMMAND_ID (0x00) +#define ZCL_IDENTIFY_QUERY_COMMAND_ID (0x01) +#define ZCL_EZ_MODE_INVOKE_COMMAND_ID (0x02) +#define ZCL_UPDATE_COMMISSION_STATE_COMMAND_ID (0x03) +#define ZCL_TRIGGER_EFFECT_COMMAND_ID (0x40) + +// Commands for cluster: Groups +#define ZCL_ADD_GROUP_COMMAND_ID (0x00) +#define ZCL_ADD_GROUP_RESPONSE_COMMAND_ID (0x00) +#define ZCL_VIEW_GROUP_COMMAND_ID (0x01) +#define ZCL_VIEW_GROUP_RESPONSE_COMMAND_ID (0x01) +#define ZCL_GET_GROUP_MEMBERSHIP_COMMAND_ID (0x02) +#define ZCL_GET_GROUP_MEMBERSHIP_RESPONSE_COMMAND_ID (0x02) +#define ZCL_REMOVE_GROUP_COMMAND_ID (0x03) +#define ZCL_REMOVE_GROUP_RESPONSE_COMMAND_ID (0x03) +#define ZCL_REMOVE_ALL_GROUPS_COMMAND_ID (0x04) +#define ZCL_ADD_GROUP_IF_IDENTIFYING_COMMAND_ID (0x05) + +// Commands for cluster: Scenes +#define ZCL_ADD_SCENE_COMMAND_ID (0x00) +#define ZCL_ADD_SCENE_RESPONSE_COMMAND_ID (0x00) +#define ZCL_VIEW_SCENE_COMMAND_ID (0x01) +#define ZCL_VIEW_SCENE_RESPONSE_COMMAND_ID (0x01) +#define ZCL_REMOVE_SCENE_COMMAND_ID (0x02) +#define ZCL_REMOVE_SCENE_RESPONSE_COMMAND_ID (0x02) +#define ZCL_REMOVE_ALL_SCENES_COMMAND_ID (0x03) +#define ZCL_REMOVE_ALL_SCENES_RESPONSE_COMMAND_ID (0x03) +#define ZCL_STORE_SCENE_COMMAND_ID (0x04) +#define ZCL_STORE_SCENE_RESPONSE_COMMAND_ID (0x04) +#define ZCL_RECALL_SCENE_COMMAND_ID (0x05) +#define ZCL_GET_SCENE_MEMBERSHIP_COMMAND_ID (0x06) +#define ZCL_GET_SCENE_MEMBERSHIP_RESPONSE_COMMAND_ID (0x06) +#define ZCL_ENHANCED_ADD_SCENE_COMMAND_ID (0x40) +#define ZCL_ENHANCED_ADD_SCENE_RESPONSE_COMMAND_ID (0x40) +#define ZCL_ENHANCED_VIEW_SCENE_COMMAND_ID (0x41) +#define ZCL_ENHANCED_VIEW_SCENE_RESPONSE_COMMAND_ID (0x41) +#define ZCL_COPY_SCENE_COMMAND_ID (0x42) +#define ZCL_COPY_SCENE_RESPONSE_COMMAND_ID (0x42) + +// Commands for cluster: On/off +#define ZCL_OFF_COMMAND_ID (0x00) +#define ZCL_SAMPLE_MFG_SPECIFIC_OFF_WITH_TRANSITION_COMMAND_ID (0x00) +#define ZCL_ON_COMMAND_ID (0x01) +#define ZCL_SAMPLE_MFG_SPECIFIC_ON_WITH_TRANSITION_COMMAND_ID (0x01) +#define ZCL_SAMPLE_MFG_SPECIFIC_ON_WITH_TRANSITION2_COMMAND_ID (0x01) +#define ZCL_TOGGLE_COMMAND_ID (0x02) +#define ZCL_SAMPLE_MFG_SPECIFIC_TOGGLE_WITH_TRANSITION_COMMAND_ID (0x02) +#define ZCL_SAMPLE_MFG_SPECIFIC_TOGGLE_WITH_TRANSITION2_COMMAND_ID (0x02) +#define ZCL_OFF_WITH_EFFECT_COMMAND_ID (0x40) +#define ZCL_ON_WITH_RECALL_GLOBAL_SCENE_COMMAND_ID (0x41) +#define ZCL_ON_WITH_TIMED_OFF_COMMAND_ID (0x42) + +// Commands for cluster: Level Control +#define ZCL_MOVE_TO_LEVEL_COMMAND_ID (0x00) +#define ZCL_MOVE_COMMAND_ID (0x01) +#define ZCL_STEP_COMMAND_ID (0x02) +#define ZCL_STOP_COMMAND_ID (0x03) +#define ZCL_MOVE_TO_LEVEL_WITH_ON_OFF_COMMAND_ID (0x04) +#define ZCL_MOVE_WITH_ON_OFF_COMMAND_ID (0x05) +#define ZCL_STEP_WITH_ON_OFF_COMMAND_ID (0x06) +#define ZCL_STOP_WITH_ON_OFF_COMMAND_ID (0x07) + +// Commands for cluster: Alarms +#define ZCL_RESET_ALARM_COMMAND_ID (0x00) +#define ZCL_ALARM_COMMAND_ID (0x00) +#define ZCL_RESET_ALL_ALARMS_COMMAND_ID (0x01) +#define ZCL_GET_ALARM_RESPONSE_COMMAND_ID (0x01) +#define ZCL_GET_ALARM_COMMAND_ID (0x02) +#define ZCL_RESET_ALARM_LOG_COMMAND_ID (0x03) + +// Commands for cluster: RSSI Location +#define ZCL_SET_ABSOLUTE_LOCATION_COMMAND_ID (0x00) +#define ZCL_DEVICE_CONFIGURATION_RESPONSE_COMMAND_ID (0x00) +#define ZCL_SET_DEVICE_CONFIGURATION_COMMAND_ID (0x01) +#define ZCL_LOCATION_DATA_RESPONSE_COMMAND_ID (0x01) +#define ZCL_GET_DEVICE_CONFIGURATION_COMMAND_ID (0x02) +#define ZCL_LOCATION_DATA_NOTIFICATION_COMMAND_ID (0x02) +#define ZCL_GET_LOCATION_DATA_COMMAND_ID (0x03) +#define ZCL_COMPACT_LOCATION_DATA_NOTIFICATION_COMMAND_ID (0x03) +#define ZCL_RSSI_RESPONSE_COMMAND_ID (0x04) +#define ZCL_RSSI_PING_COMMAND_ID (0x04) +#define ZCL_SEND_PINGS_COMMAND_ID (0x05) +#define ZCL_RSSI_REQUEST_COMMAND_ID (0x05) +#define ZCL_ANCHOR_NODE_ANNOUNCE_COMMAND_ID (0x06) +#define ZCL_REPORT_RSSI_MEASUREMENTS_COMMAND_ID (0x06) +#define ZCL_REQUEST_OWN_LOCATION_COMMAND_ID (0x07) + +// Commands for cluster: Commissioning +#define ZCL_RESTART_DEVICE_COMMAND_ID (0x00) +#define ZCL_RESTART_DEVICE_RESPONSE_COMMAND_ID (0x00) +#define ZCL_SAVE_STARTUP_PARAMETERS_COMMAND_ID (0x01) +#define ZCL_SAVE_STARTUP_PARAMETERS_RESPONSE_COMMAND_ID (0x01) +#define ZCL_RESTORE_STARTUP_PARAMETERS_COMMAND_ID (0x02) +#define ZCL_RESTORE_STARTUP_PARAMETERS_RESPONSE_COMMAND_ID (0x02) +#define ZCL_RESET_STARTUP_PARAMETERS_COMMAND_ID (0x03) +#define ZCL_RESET_STARTUP_PARAMETERS_RESPONSE_COMMAND_ID (0x03) + +// Commands for cluster: Partition +#define ZCL_TRANSFER_PARTITIONED_FRAME_COMMAND_ID (0x00) +#define ZCL_MULTIPLE_ACK_COMMAND_ID (0x00) +#define ZCL_READ_HANDSHAKE_PARAM_COMMAND_ID (0x01) +#define ZCL_READ_HANDSHAKE_PARAM_RESPONSE_COMMAND_ID (0x01) +#define ZCL_WRITE_HANDSHAKE_PARAM_COMMAND_ID (0x02) + +// Commands for cluster: Over the Air Bootloading +#define ZCL_IMAGE_NOTIFY_COMMAND_ID (0x00) +#define ZCL_QUERY_NEXT_IMAGE_REQUEST_COMMAND_ID (0x01) +#define ZCL_QUERY_NEXT_IMAGE_RESPONSE_COMMAND_ID (0x02) +#define ZCL_IMAGE_BLOCK_REQUEST_COMMAND_ID (0x03) +#define ZCL_IMAGE_PAGE_REQUEST_COMMAND_ID (0x04) +#define ZCL_IMAGE_BLOCK_RESPONSE_COMMAND_ID (0x05) +#define ZCL_UPGRADE_END_REQUEST_COMMAND_ID (0x06) +#define ZCL_UPGRADE_END_RESPONSE_COMMAND_ID (0x07) +#define ZCL_QUERY_SPECIFIC_FILE_REQUEST_COMMAND_ID (0x08) +#define ZCL_QUERY_SPECIFIC_FILE_RESPONSE_COMMAND_ID (0x09) + +// Commands for cluster: Power Profile +#define ZCL_POWER_PROFILE_REQUEST_COMMAND_ID (0x00) +#define ZCL_POWER_PROFILE_NOTIFICATION_COMMAND_ID (0x00) +#define ZCL_POWER_PROFILE_STATE_REQUEST_COMMAND_ID (0x01) +#define ZCL_POWER_PROFILE_RESPONSE_COMMAND_ID (0x01) +#define ZCL_GET_POWER_PROFILE_PRICE_RESPONSE_COMMAND_ID (0x02) +#define ZCL_POWER_PROFILE_STATE_RESPONSE_COMMAND_ID (0x02) +#define ZCL_GET_OVERALL_SCHEDULE_PRICE_RESPONSE_COMMAND_ID (0x03) +#define ZCL_GET_POWER_PROFILE_PRICE_COMMAND_ID (0x03) +#define ZCL_ENERGY_PHASES_SCHEDULE_NOTIFICATION_COMMAND_ID (0x04) +#define ZCL_POWER_PROFILES_STATE_NOTIFICATION_COMMAND_ID (0x04) +#define ZCL_ENERGY_PHASES_SCHEDULE_RESPONSE_COMMAND_ID (0x05) +#define ZCL_GET_OVERALL_SCHEDULE_PRICE_COMMAND_ID (0x05) +#define ZCL_POWER_PROFILE_SCHEDULE_CONSTRAINTS_REQUEST_COMMAND_ID (0x06) +#define ZCL_ENERGY_PHASES_SCHEDULE_REQUEST_COMMAND_ID (0x06) +#define ZCL_ENERGY_PHASES_SCHEDULE_STATE_REQUEST_COMMAND_ID (0x07) +#define ZCL_ENERGY_PHASES_SCHEDULE_STATE_RESPONSE_COMMAND_ID (0x07) +#define ZCL_GET_POWER_PROFILE_PRICE_EXTENDED_RESPONSE_COMMAND_ID (0x08) +#define ZCL_ENERGY_PHASES_SCHEDULE_STATE_NOTIFICATION_COMMAND_ID (0x08) +#define ZCL_POWER_PROFILE_SCHEDULE_CONSTRAINTS_NOTIFICATION_COMMAND_ID (0x09) +#define ZCL_POWER_PROFILE_SCHEDULE_CONSTRAINTS_RESPONSE_COMMAND_ID (0x0A) +#define ZCL_GET_POWER_PROFILE_PRICE_EXTENDED_COMMAND_ID (0x0B) + +// Commands for cluster: Appliance Control +#define ZCL_EXECUTION_OF_A_COMMAND_COMMAND_ID (0x00) +#define ZCL_SIGNAL_STATE_RESPONSE_COMMAND_ID (0x00) +#define ZCL_SIGNAL_STATE_COMMAND_ID (0x01) +#define ZCL_SIGNAL_STATE_NOTIFICATION_COMMAND_ID (0x01) +#define ZCL_WRITE_FUNCTIONS_COMMAND_ID (0x02) +#define ZCL_OVERLOAD_PAUSE_RESUME_COMMAND_ID (0x03) +#define ZCL_OVERLOAD_PAUSE_COMMAND_ID (0x04) +#define ZCL_OVERLOAD_WARNING_COMMAND_ID (0x05) + +// Commands for cluster: Poll Control +#define ZCL_CHECK_IN_COMMAND_ID (0x00) +#define ZCL_CHECK_IN_RESPONSE_COMMAND_ID (0x00) +#define ZCL_FAST_POLL_STOP_COMMAND_ID (0x01) +#define ZCL_SET_LONG_POLL_INTERVAL_COMMAND_ID (0x02) +#define ZCL_SET_SHORT_POLL_INTERVAL_COMMAND_ID (0x03) + +// Commands for cluster: Green Power +#define ZCL_GP_NOTIFICATION_COMMAND_ID (0x00) +#define ZCL_GP_NOTIFICATION_RESPONSE_COMMAND_ID (0x00) +#define ZCL_GP_PAIRING_SEARCH_COMMAND_ID (0x01) +#define ZCL_GP_PAIRING_COMMAND_ID (0x01) +#define ZCL_GP_PROXY_COMMISSIONING_MODE_COMMAND_ID (0x02) +#define ZCL_GP_TUNNELING_STOP_COMMAND_ID (0x03) +#define ZCL_GP_COMMISSIONING_NOTIFICATION_COMMAND_ID (0x04) +#define ZCL_GP_SINK_COMMISSIONING_MODE_COMMAND_ID (0x05) +#define ZCL_GP_RESPONSE_COMMAND_ID (0x06) +#define ZCL_GP_TRANSLATION_TABLE_UPDATE_COMMAND_ID (0x07) +#define ZCL_GP_TRANSLATION_TABLE_REQUEST_COMMAND_ID (0x08) +#define ZCL_GP_TRANSLATION_TABLE_RESPONSE_COMMAND_ID (0x08) +#define ZCL_GP_PAIRING_CONFIGURATION_COMMAND_ID (0x09) +#define ZCL_GP_SINK_TABLE_REQUEST_COMMAND_ID (0x0A) +#define ZCL_GP_SINK_TABLE_RESPONSE_COMMAND_ID (0x0A) +#define ZCL_GP_PROXY_TABLE_RESPONSE_COMMAND_ID (0x0B) +#define ZCL_GP_PROXY_TABLE_REQUEST_COMMAND_ID (0x0B) + +// Commands for cluster: Door Lock +#define ZCL_LOCK_DOOR_COMMAND_ID (0x00) +#define ZCL_LOCK_DOOR_RESPONSE_COMMAND_ID (0x00) +#define ZCL_UNLOCK_DOOR_COMMAND_ID (0x01) +#define ZCL_UNLOCK_DOOR_RESPONSE_COMMAND_ID (0x01) +#define ZCL_TOGGLE_COMMAND_ID (0x02) +#define ZCL_TOGGLE_RESPONSE_COMMAND_ID (0x02) +#define ZCL_UNLOCK_WITH_TIMEOUT_COMMAND_ID (0x03) +#define ZCL_UNLOCK_WITH_TIMEOUT_RESPONSE_COMMAND_ID (0x03) +#define ZCL_GET_LOG_RECORD_COMMAND_ID (0x04) +#define ZCL_GET_LOG_RECORD_RESPONSE_COMMAND_ID (0x04) +#define ZCL_SET_PIN_COMMAND_ID (0x05) +#define ZCL_SET_PIN_RESPONSE_COMMAND_ID (0x05) +#define ZCL_GET_PIN_COMMAND_ID (0x06) +#define ZCL_GET_PIN_RESPONSE_COMMAND_ID (0x06) +#define ZCL_CLEAR_PIN_COMMAND_ID (0x07) +#define ZCL_CLEAR_PIN_RESPONSE_COMMAND_ID (0x07) +#define ZCL_CLEAR_ALL_PINS_COMMAND_ID (0x08) +#define ZCL_CLEAR_ALL_PINS_RESPONSE_COMMAND_ID (0x08) +#define ZCL_SET_USER_STATUS_COMMAND_ID (0x09) +#define ZCL_SET_USER_STATUS_RESPONSE_COMMAND_ID (0x09) +#define ZCL_GET_USER_STATUS_COMMAND_ID (0x0A) +#define ZCL_GET_USER_STATUS_RESPONSE_COMMAND_ID (0x0A) +#define ZCL_SET_WEEKDAY_SCHEDULE_COMMAND_ID (0x0B) +#define ZCL_SET_WEEKDAY_SCHEDULE_RESPONSE_COMMAND_ID (0x0B) +#define ZCL_GET_WEEKDAY_SCHEDULE_COMMAND_ID (0x0C) +#define ZCL_GET_WEEKDAY_SCHEDULE_RESPONSE_COMMAND_ID (0x0C) +#define ZCL_CLEAR_WEEKDAY_SCHEDULE_COMMAND_ID (0x0D) +#define ZCL_CLEAR_WEEKDAY_SCHEDULE_RESPONSE_COMMAND_ID (0x0D) +#define ZCL_SET_YEARDAY_SCHEDULE_COMMAND_ID (0x0E) +#define ZCL_SET_YEARDAY_SCHEDULE_RESPONSE_COMMAND_ID (0x0E) +#define ZCL_GET_YEARDAY_SCHEDULE_COMMAND_ID (0x0F) +#define ZCL_GET_YEARDAY_SCHEDULE_RESPONSE_COMMAND_ID (0x0F) +#define ZCL_CLEAR_YEARDAY_SCHEDULE_COMMAND_ID (0x10) +#define ZCL_CLEAR_YEARDAY_SCHEDULE_RESPONSE_COMMAND_ID (0x10) +#define ZCL_SET_HOLIDAY_SCHEDULE_COMMAND_ID (0x11) +#define ZCL_SET_HOLIDAY_SCHEDULE_RESPONSE_COMMAND_ID (0x11) +#define ZCL_GET_HOLIDAY_SCHEDULE_COMMAND_ID (0x12) +#define ZCL_GET_HOLIDAY_SCHEDULE_RESPONSE_COMMAND_ID (0x12) +#define ZCL_CLEAR_HOLIDAY_SCHEDULE_COMMAND_ID (0x13) +#define ZCL_CLEAR_HOLIDAY_SCHEDULE_RESPONSE_COMMAND_ID (0x13) +#define ZCL_SET_USER_TYPE_COMMAND_ID (0x14) +#define ZCL_SET_USER_TYPE_RESPONSE_COMMAND_ID (0x14) +#define ZCL_GET_USER_TYPE_COMMAND_ID (0x15) +#define ZCL_GET_USER_TYPE_RESPONSE_COMMAND_ID (0x15) +#define ZCL_SET_RFID_COMMAND_ID (0x16) +#define ZCL_SET_RFID_RESPONSE_COMMAND_ID (0x16) +#define ZCL_GET_RFID_COMMAND_ID (0x17) +#define ZCL_GET_RFID_RESPONSE_COMMAND_ID (0x17) +#define ZCL_CLEAR_RFID_COMMAND_ID (0x18) +#define ZCL_CLEAR_RFID_RESPONSE_COMMAND_ID (0x18) +#define ZCL_CLEAR_ALL_RFIDS_COMMAND_ID (0x19) +#define ZCL_CLEAR_ALL_RFIDS_RESPONSE_COMMAND_ID (0x19) +#define ZCL_OPERATION_EVENT_NOTIFICATION_COMMAND_ID (0x20) +#define ZCL_PROGRAMMING_EVENT_NOTIFICATION_COMMAND_ID (0x21) + +// Commands for cluster: Window Covering +#define ZCL_WINDOW_COVERING_UP_OPEN_COMMAND_ID (0x00) +#define ZCL_WINDOW_COVERING_DOWN_CLOSE_COMMAND_ID (0x01) +#define ZCL_WINDOW_COVERING_STOP_COMMAND_ID (0x02) +#define ZCL_WINDOW_COVERING_GO_TO_LIFT_VALUE_COMMAND_ID (0x04) +#define ZCL_WINDOW_COVERING_GO_TO_LIFT_PERCENTAGE_COMMAND_ID (0x05) +#define ZCL_WINDOW_COVERING_GO_TO_TILT_VALUE_COMMAND_ID (0x07) +#define ZCL_WINDOW_COVERING_GO_TO_TILT_PERCENTAGE_COMMAND_ID (0x08) + +// Commands for cluster: Barrier Control +#define ZCL_BARRIER_CONTROL_GO_TO_PERCENT_COMMAND_ID (0x00) +#define ZCL_BARRIER_CONTROL_STOP_COMMAND_ID (0x01) + +// Commands for cluster: Thermostat +#define ZCL_SETPOINT_RAISE_LOWER_COMMAND_ID (0x00) +#define ZCL_CURRENT_WEEKLY_SCHEDULE_COMMAND_ID (0x00) +#define ZCL_SET_WEEKLY_SCHEDULE_COMMAND_ID (0x01) +#define ZCL_RELAY_STATUS_LOG_COMMAND_ID (0x01) +#define ZCL_GET_WEEKLY_SCHEDULE_COMMAND_ID (0x02) +#define ZCL_CLEAR_WEEKLY_SCHEDULE_COMMAND_ID (0x03) +#define ZCL_GET_RELAY_STATUS_LOG_COMMAND_ID (0x04) + +// Commands for cluster: Color Control +#define ZCL_MOVE_TO_HUE_COMMAND_ID (0x00) +#define ZCL_MOVE_HUE_COMMAND_ID (0x01) +#define ZCL_STEP_HUE_COMMAND_ID (0x02) +#define ZCL_MOVE_TO_SATURATION_COMMAND_ID (0x03) +#define ZCL_MOVE_SATURATION_COMMAND_ID (0x04) +#define ZCL_STEP_SATURATION_COMMAND_ID (0x05) +#define ZCL_MOVE_TO_HUE_AND_SATURATION_COMMAND_ID (0x06) +#define ZCL_MOVE_TO_COLOR_COMMAND_ID (0x07) +#define ZCL_MOVE_COLOR_COMMAND_ID (0x08) +#define ZCL_STEP_COLOR_COMMAND_ID (0x09) +#define ZCL_MOVE_TO_COLOR_TEMPERATURE_COMMAND_ID (0x0A) +#define ZCL_ENHANCED_MOVE_TO_HUE_COMMAND_ID (0x40) +#define ZCL_ENHANCED_MOVE_HUE_COMMAND_ID (0x41) +#define ZCL_ENHANCED_STEP_HUE_COMMAND_ID (0x42) +#define ZCL_ENHANCED_MOVE_TO_HUE_AND_SATURATION_COMMAND_ID (0x43) +#define ZCL_COLOR_LOOP_SET_COMMAND_ID (0x44) +#define ZCL_STOP_MOVE_STEP_COMMAND_ID (0x47) +#define ZCL_MOVE_COLOR_TEMPERATURE_COMMAND_ID (0x4B) +#define ZCL_STEP_COLOR_TEMPERATURE_COMMAND_ID (0x4C) + +// Commands for cluster: IAS Zone +#define ZCL_ZONE_ENROLL_RESPONSE_COMMAND_ID (0x00) +#define ZCL_ZONE_STATUS_CHANGE_NOTIFICATION_COMMAND_ID (0x00) +#define ZCL_INITIATE_NORMAL_OPERATION_MODE_COMMAND_ID (0x01) +#define ZCL_ZONE_ENROLL_REQUEST_COMMAND_ID (0x01) +#define ZCL_INITIATE_TEST_MODE_COMMAND_ID (0x02) +#define ZCL_INITIATE_NORMAL_OPERATION_MODE_RESPONSE_COMMAND_ID (0x02) +#define ZCL_INITIATE_TEST_MODE_RESPONSE_COMMAND_ID (0x03) + +// Commands for cluster: IAS ACE +#define ZCL_ARM_COMMAND_ID (0x00) +#define ZCL_ARM_RESPONSE_COMMAND_ID (0x00) +#define ZCL_BYPASS_COMMAND_ID (0x01) +#define ZCL_GET_ZONE_ID_MAP_RESPONSE_COMMAND_ID (0x01) +#define ZCL_EMERGENCY_COMMAND_ID (0x02) +#define ZCL_GET_ZONE_INFORMATION_RESPONSE_COMMAND_ID (0x02) +#define ZCL_FIRE_COMMAND_ID (0x03) +#define ZCL_ZONE_STATUS_CHANGED_COMMAND_ID (0x03) +#define ZCL_PANIC_COMMAND_ID (0x04) +#define ZCL_PANEL_STATUS_CHANGED_COMMAND_ID (0x04) +#define ZCL_GET_ZONE_ID_MAP_COMMAND_ID (0x05) +#define ZCL_GET_PANEL_STATUS_RESPONSE_COMMAND_ID (0x05) +#define ZCL_GET_ZONE_INFORMATION_COMMAND_ID (0x06) +#define ZCL_SET_BYPASSED_ZONE_LIST_COMMAND_ID (0x06) +#define ZCL_GET_PANEL_STATUS_COMMAND_ID (0x07) +#define ZCL_BYPASS_RESPONSE_COMMAND_ID (0x07) +#define ZCL_GET_BYPASSED_ZONE_LIST_COMMAND_ID (0x08) +#define ZCL_GET_ZONE_STATUS_RESPONSE_COMMAND_ID (0x08) +#define ZCL_GET_ZONE_STATUS_COMMAND_ID (0x09) + +// Commands for cluster: IAS WD +#define ZCL_START_WARNING_COMMAND_ID (0x00) +#define ZCL_SQUAWK_COMMAND_ID (0x01) + +// Commands for cluster: Generic Tunnel +#define ZCL_MATCH_PROTOCOL_ADDRESS_COMMAND_ID (0x00) +#define ZCL_MATCH_PROTOCOL_ADDRESS_RESPONSE_COMMAND_ID (0x00) +#define ZCL_ADVERTISE_PROTOCOL_ADDRESS_COMMAND_ID (0x01) + +// Commands for cluster: BACnet Protocol Tunnel +#define ZCL_TRANSFER_NPDU_COMMAND_ID (0x00) + +// Commands for cluster: 11073 Protocol Tunnel +#define ZCL_TRANSFER_APDU_COMMAND_ID (0x00) +#define ZCL_CONNECT_REQUEST_COMMAND_ID (0x01) +#define ZCL_DISCONNECT_REQUEST_COMMAND_ID (0x02) +#define ZCL_CONNECT_STATUS_NOTIFICATION_COMMAND_ID (0x03) + +// Commands for cluster: ISO 7816 Protocol Tunnel +#define ZCL_TRANSFER_APDU_COMMAND_ID (0x00) +#define ZCL_INSERT_SMART_CARD_COMMAND_ID (0x01) +#define ZCL_EXTRACT_SMART_CARD_COMMAND_ID (0x02) + +// Commands for cluster: Price +#define ZCL_PUBLISH_PRICE_COMMAND_ID (0x00) +#define ZCL_GET_CURRENT_PRICE_COMMAND_ID (0x00) +#define ZCL_PUBLISH_BLOCK_PERIOD_COMMAND_ID (0x01) +#define ZCL_GET_SCHEDULED_PRICES_COMMAND_ID (0x01) +#define ZCL_PUBLISH_CONVERSION_FACTOR_COMMAND_ID (0x02) +#define ZCL_PRICE_ACKNOWLEDGEMENT_COMMAND_ID (0x02) +#define ZCL_PUBLISH_CALORIFIC_VALUE_COMMAND_ID (0x03) +#define ZCL_GET_BLOCK_PERIODS_COMMAND_ID (0x03) +#define ZCL_PUBLISH_TARIFF_INFORMATION_COMMAND_ID (0x04) +#define ZCL_GET_CONVERSION_FACTOR_COMMAND_ID (0x04) +#define ZCL_PUBLISH_PRICE_MATRIX_COMMAND_ID (0x05) +#define ZCL_GET_CALORIFIC_VALUE_COMMAND_ID (0x05) +#define ZCL_PUBLISH_BLOCK_THRESHOLDS_COMMAND_ID (0x06) +#define ZCL_GET_TARIFF_INFORMATION_COMMAND_ID (0x06) +#define ZCL_PUBLISH_CO2_VALUE_COMMAND_ID (0x07) +#define ZCL_GET_PRICE_MATRIX_COMMAND_ID (0x07) +#define ZCL_PUBLISH_TIER_LABELS_COMMAND_ID (0x08) +#define ZCL_GET_BLOCK_THRESHOLDS_COMMAND_ID (0x08) +#define ZCL_PUBLISH_BILLING_PERIOD_COMMAND_ID (0x09) +#define ZCL_GET_CO2_VALUE_COMMAND_ID (0x09) +#define ZCL_PUBLISH_CONSOLIDATED_BILL_COMMAND_ID (0x0A) +#define ZCL_GET_TIER_LABELS_COMMAND_ID (0x0A) +#define ZCL_PUBLISH_CPP_EVENT_COMMAND_ID (0x0B) +#define ZCL_GET_BILLING_PERIOD_COMMAND_ID (0x0B) +#define ZCL_PUBLISH_CREDIT_PAYMENT_COMMAND_ID (0x0C) +#define ZCL_GET_CONSOLIDATED_BILL_COMMAND_ID (0x0C) +#define ZCL_PUBLISH_CURRENCY_CONVERSION_COMMAND_ID (0x0D) +#define ZCL_CPP_EVENT_RESPONSE_COMMAND_ID (0x0D) +#define ZCL_CANCEL_TARIFF_COMMAND_ID (0x0E) +#define ZCL_GET_CREDIT_PAYMENT_COMMAND_ID (0x0E) +#define ZCL_GET_CURRENCY_CONVERSION_COMMAND_COMMAND_ID (0x0F) +#define ZCL_GET_TARIFF_CANCELLATION_COMMAND_ID (0x10) + +// Commands for cluster: Demand Response and Load Control +#define ZCL_LOAD_CONTROL_EVENT_COMMAND_ID (0x00) +#define ZCL_REPORT_EVENT_STATUS_COMMAND_ID (0x00) +#define ZCL_CANCEL_LOAD_CONTROL_EVENT_COMMAND_ID (0x01) +#define ZCL_GET_SCHEDULED_EVENTS_COMMAND_ID (0x01) +#define ZCL_CANCEL_ALL_LOAD_CONTROL_EVENTS_COMMAND_ID (0x02) + +// Commands for cluster: Simple Metering +#define ZCL_GET_PROFILE_RESPONSE_COMMAND_ID (0x00) +#define ZCL_GET_PROFILE_COMMAND_ID (0x00) +#define ZCL_REQUEST_MIRROR_COMMAND_ID (0x01) +#define ZCL_REQUEST_MIRROR_RESPONSE_COMMAND_ID (0x01) +#define ZCL_REMOVE_MIRROR_COMMAND_ID (0x02) +#define ZCL_MIRROR_REMOVED_COMMAND_ID (0x02) +#define ZCL_REQUEST_FAST_POLL_MODE_RESPONSE_COMMAND_ID (0x03) +#define ZCL_REQUEST_FAST_POLL_MODE_COMMAND_ID (0x03) +#define ZCL_SCHEDULE_SNAPSHOT_RESPONSE_COMMAND_ID (0x04) +#define ZCL_SCHEDULE_SNAPSHOT_COMMAND_ID (0x04) +#define ZCL_TAKE_SNAPSHOT_RESPONSE_COMMAND_ID (0x05) +#define ZCL_TAKE_SNAPSHOT_COMMAND_ID (0x05) +#define ZCL_PUBLISH_SNAPSHOT_COMMAND_ID (0x06) +#define ZCL_GET_SNAPSHOT_COMMAND_ID (0x06) +#define ZCL_GET_SAMPLED_DATA_RESPONSE_COMMAND_ID (0x07) +#define ZCL_START_SAMPLING_COMMAND_ID (0x07) +#define ZCL_CONFIGURE_MIRROR_COMMAND_ID (0x08) +#define ZCL_GET_SAMPLED_DATA_COMMAND_ID (0x08) +#define ZCL_CONFIGURE_NOTIFICATION_SCHEME_COMMAND_ID (0x09) +#define ZCL_MIRROR_REPORT_ATTRIBUTE_RESPONSE_COMMAND_ID (0x09) +#define ZCL_CONFIGURE_NOTIFICATION_FLAGS_COMMAND_ID (0x0A) +#define ZCL_RESET_LOAD_LIMIT_COUNTER_COMMAND_ID (0x0A) +#define ZCL_GET_NOTIFIED_MESSAGE_COMMAND_ID (0x0B) +#define ZCL_CHANGE_SUPPLY_COMMAND_ID (0x0B) +#define ZCL_SUPPLY_STATUS_RESPONSE_COMMAND_ID (0x0C) +#define ZCL_LOCAL_CHANGE_SUPPLY_COMMAND_ID (0x0C) +#define ZCL_START_SAMPLING_RESPONSE_COMMAND_ID (0x0D) +#define ZCL_SET_SUPPLY_STATUS_COMMAND_ID (0x0D) +#define ZCL_SET_UNCONTROLLED_FLOW_THRESHOLD_COMMAND_ID (0x0E) + +// Commands for cluster: Messaging +#define ZCL_DISPLAY_MESSAGE_COMMAND_ID (0x00) +#define ZCL_GET_LAST_MESSAGE_COMMAND_ID (0x00) +#define ZCL_CANCEL_MESSAGE_COMMAND_ID (0x01) +#define ZCL_MESSAGE_CONFIRMATION_COMMAND_ID (0x01) +#define ZCL_DISPLAY_PROTECTED_MESSAGE_COMMAND_ID (0x02) +#define ZCL_GET_MESSAGE_CANCELLATION_COMMAND_ID (0x02) +#define ZCL_CANCEL_ALL_MESSAGES_COMMAND_ID (0x03) + +// Commands for cluster: Tunneling +#define ZCL_REQUEST_TUNNEL_COMMAND_ID (0x00) +#define ZCL_REQUEST_TUNNEL_RESPONSE_COMMAND_ID (0x00) +#define ZCL_CLOSE_TUNNEL_COMMAND_ID (0x01) +#define ZCL_TRANSFER_DATA_SERVER_TO_CLIENT_COMMAND_ID (0x01) +#define ZCL_TRANSFER_DATA_CLIENT_TO_SERVER_COMMAND_ID (0x02) +#define ZCL_TRANSFER_DATA_ERROR_SERVER_TO_CLIENT_COMMAND_ID (0x02) +#define ZCL_TRANSFER_DATA_ERROR_CLIENT_TO_SERVER_COMMAND_ID (0x03) +#define ZCL_ACK_TRANSFER_DATA_SERVER_TO_CLIENT_COMMAND_ID (0x03) +#define ZCL_ACK_TRANSFER_DATA_CLIENT_TO_SERVER_COMMAND_ID (0x04) +#define ZCL_READY_DATA_SERVER_TO_CLIENT_COMMAND_ID (0x04) +#define ZCL_READY_DATA_CLIENT_TO_SERVER_COMMAND_ID (0x05) +#define ZCL_SUPPORTED_TUNNEL_PROTOCOLS_RESPONSE_COMMAND_ID (0x05) +#define ZCL_GET_SUPPORTED_TUNNEL_PROTOCOLS_COMMAND_ID (0x06) +#define ZCL_TUNNEL_CLOSURE_NOTIFICATION_COMMAND_ID (0x06) + +// Commands for cluster: Prepayment +#define ZCL_SELECT_AVAILABLE_EMERGENCY_CREDIT_COMMAND_ID (0x00) +#define ZCL_PUBLISH_PREPAY_SNAPSHOT_COMMAND_ID (0x01) +#define ZCL_CHANGE_DEBT_COMMAND_ID (0x02) +#define ZCL_CHANGE_PAYMENT_MODE_RESPONSE_COMMAND_ID (0x02) +#define ZCL_EMERGENCY_CREDIT_SETUP_COMMAND_ID (0x03) +#define ZCL_CONSUMER_TOP_UP_RESPONSE_COMMAND_ID (0x03) +#define ZCL_CONSUMER_TOP_UP_COMMAND_ID (0x04) +#define ZCL_CREDIT_ADJUSTMENT_COMMAND_ID (0x05) +#define ZCL_PUBLISH_TOP_UP_LOG_COMMAND_ID (0x05) +#define ZCL_CHANGE_PAYMENT_MODE_COMMAND_ID (0x06) +#define ZCL_PUBLISH_DEBT_LOG_COMMAND_ID (0x06) +#define ZCL_GET_PREPAY_SNAPSHOT_COMMAND_ID (0x07) +#define ZCL_GET_TOP_UP_LOG_COMMAND_ID (0x08) +#define ZCL_SET_LOW_CREDIT_WARNING_LEVEL_COMMAND_ID (0x09) +#define ZCL_GET_DEBT_REPAYMENT_LOG_COMMAND_ID (0x0A) +#define ZCL_SET_MAXIMUM_CREDIT_LIMIT_COMMAND_ID (0x0B) +#define ZCL_SET_OVERALL_DEBT_CAP_COMMAND_ID (0x0C) + +// Commands for cluster: Energy Management +#define ZCL_REPORT_EVENT_STATUS_COMMAND_ID (0x00) +#define ZCL_MANAGE_EVENT_COMMAND_ID (0x00) + +// Commands for cluster: Calendar +#define ZCL_PUBLISH_CALENDAR_COMMAND_ID (0x00) +#define ZCL_GET_CALENDAR_COMMAND_ID (0x00) +#define ZCL_PUBLISH_DAY_PROFILE_COMMAND_ID (0x01) +#define ZCL_GET_DAY_PROFILES_COMMAND_ID (0x01) +#define ZCL_PUBLISH_WEEK_PROFILE_COMMAND_ID (0x02) +#define ZCL_GET_WEEK_PROFILES_COMMAND_ID (0x02) +#define ZCL_PUBLISH_SEASONS_COMMAND_ID (0x03) +#define ZCL_GET_SEASONS_COMMAND_ID (0x03) +#define ZCL_PUBLISH_SPECIAL_DAYS_COMMAND_ID (0x04) +#define ZCL_GET_SPECIAL_DAYS_COMMAND_ID (0x04) +#define ZCL_CANCEL_CALENDAR_COMMAND_ID (0x05) +#define ZCL_GET_CALENDAR_CANCELLATION_COMMAND_ID (0x05) + +// Commands for cluster: Device Management +#define ZCL_GET_CHANGE_OF_TENANCY_COMMAND_ID (0x00) +#define ZCL_PUBLISH_CHANGE_OF_TENANCY_COMMAND_ID (0x00) +#define ZCL_GET_CHANGE_OF_SUPPLIER_COMMAND_ID (0x01) +#define ZCL_PUBLISH_CHANGE_OF_SUPPLIER_COMMAND_ID (0x01) +#define ZCL_REQUEST_NEW_PASSWORD_COMMAND_ID (0x02) +#define ZCL_REQUEST_NEW_PASSWORD_RESPONSE_COMMAND_ID (0x02) +#define ZCL_GET_SITE_ID_COMMAND_ID (0x03) +#define ZCL_UPDATE_SITE_ID_COMMAND_ID (0x03) +#define ZCL_REPORT_EVENT_CONFIGURATION_COMMAND_ID (0x04) +#define ZCL_SET_EVENT_CONFIGURATION_COMMAND_ID (0x04) +#define ZCL_GET_CIN_COMMAND_ID (0x05) +#define ZCL_GET_EVENT_CONFIGURATION_COMMAND_ID (0x05) +#define ZCL_UPDATE_CIN_COMMAND_ID (0x06) + +// Commands for cluster: Events +#define ZCL_GET_EVENT_LOG_COMMAND_ID (0x00) +#define ZCL_PUBLISH_EVENT_COMMAND_ID (0x00) +#define ZCL_CLEAR_EVENT_LOG_REQUEST_COMMAND_ID (0x01) +#define ZCL_PUBLISH_EVENT_LOG_COMMAND_ID (0x01) +#define ZCL_CLEAR_EVENT_LOG_RESPONSE_COMMAND_ID (0x02) + +// Commands for cluster: MDU Pairing +#define ZCL_PAIRING_RESPONSE_COMMAND_ID (0x00) +#define ZCL_PAIRING_REQUEST_COMMAND_ID (0x00) + +// Commands for cluster: Sub-GHz +#define ZCL_SUSPEND_ZCL_MESSAGES_COMMAND_ID (0x00) +#define ZCL_GET_SUSPEND_ZCL_MESSAGES_STATUS_COMMAND_ID (0x00) + +// Commands for cluster: Key Establishment +#define ZCL_INITIATE_KEY_ESTABLISHMENT_REQUEST_COMMAND_ID (0x00) +#define ZCL_INITIATE_KEY_ESTABLISHMENT_RESPONSE_COMMAND_ID (0x00) +#define ZCL_EPHEMERAL_DATA_REQUEST_COMMAND_ID (0x01) +#define ZCL_EPHEMERAL_DATA_RESPONSE_COMMAND_ID (0x01) +#define ZCL_CONFIRM_KEY_DATA_REQUEST_COMMAND_ID (0x02) +#define ZCL_CONFIRM_KEY_DATA_RESPONSE_COMMAND_ID (0x02) +#define ZCL_TERMINATE_KEY_ESTABLISHMENT_COMMAND_ID (0x03) + +// Commands for cluster: Information +#define ZCL_REQUEST_INFORMATION_COMMAND_ID (0x00) +#define ZCL_REQUEST_INFORMATION_RESPONSE_COMMAND_ID (0x00) +#define ZCL_PUSH_INFORMATION_RESPONSE_COMMAND_ID (0x01) +#define ZCL_PUSH_INFORMATION_COMMAND_ID (0x01) +#define ZCL_SEND_PREFERENCE_COMMAND_ID (0x02) +#define ZCL_SEND_PREFERENCE_RESPONSE_COMMAND_ID (0x02) +#define ZCL_REQUEST_PREFERENCE_RESPONSE_COMMAND_ID (0x03) +#define ZCL_SERVER_REQUEST_PREFERENCE_COMMAND_ID (0x03) +#define ZCL_UPDATE_COMMAND_ID (0x04) +#define ZCL_REQUEST_PREFERENCE_CONFIRMATION_COMMAND_ID (0x04) +#define ZCL_DELETE_COMMAND_ID (0x05) +#define ZCL_UPDATE_RESPONSE_COMMAND_ID (0x05) +#define ZCL_CONFIGURE_NODE_DESCRIPTION_COMMAND_ID (0x06) +#define ZCL_DELETE_RESPONSE_COMMAND_ID (0x06) +#define ZCL_CONFIGURE_DELIVERY_ENABLE_COMMAND_ID (0x07) +#define ZCL_CONFIGURE_PUSH_INFORMATION_TIMER_COMMAND_ID (0x08) +#define ZCL_CONFIGURE_SET_ROOT_ID_COMMAND_ID (0x09) + +// Commands for cluster: Data Sharing +#define ZCL_READ_FILE_REQUEST_COMMAND_ID (0x00) +#define ZCL_WRITE_FILE_REQUEST_COMMAND_ID (0x00) +#define ZCL_READ_RECORD_REQUEST_COMMAND_ID (0x01) +#define ZCL_MODIFY_FILE_REQUEST_COMMAND_ID (0x01) +#define ZCL_WRITE_FILE_RESPONSE_COMMAND_ID (0x02) +#define ZCL_MODIFY_RECORD_REQUEST_COMMAND_ID (0x02) +#define ZCL_FILE_TRANSMISSION_COMMAND_ID (0x03) +#define ZCL_RECORD_TRANSMISSION_COMMAND_ID (0x04) + +// Commands for cluster: Gaming +#define ZCL_SEARCH_GAME_COMMAND_ID (0x00) +#define ZCL_GAME_ANNOUNCEMENT_COMMAND_ID (0x00) +#define ZCL_JOIN_GAME_COMMAND_ID (0x01) +#define ZCL_GENERAL_RESPONSE_COMMAND_ID (0x01) +#define ZCL_START_GAME_COMMAND_ID (0x02) +#define ZCL_PAUSE_GAME_COMMAND_ID (0x03) +#define ZCL_RESUME_GAME_COMMAND_ID (0x04) +#define ZCL_QUIT_GAME_COMMAND_ID (0x05) +#define ZCL_END_GAME_COMMAND_ID (0x06) +#define ZCL_START_OVER_COMMAND_ID (0x07) +#define ZCL_ACTION_CONTROL_COMMAND_ID (0x08) +#define ZCL_DOWNLOAD_GAME_COMMAND_ID (0x09) + +// Commands for cluster: Data Rate Control +#define ZCL_PATH_CREATION_COMMAND_ID (0x00) +#define ZCL_DATA_RATE_CONTROL_COMMAND_ID (0x00) +#define ZCL_DATA_RATE_NOTIFICATION_COMMAND_ID (0x01) +#define ZCL_PATH_DELETION_COMMAND_ID (0x02) + +// Commands for cluster: Voice over ZigBee +#define ZCL_ESTABLISHMENT_REQUEST_COMMAND_ID (0x00) +#define ZCL_ESTABLISHMENT_RESPONSE_COMMAND_ID (0x00) +#define ZCL_VOICE_TRANSMISSION_COMMAND_ID (0x01) +#define ZCL_VOICE_TRANSMISSION_RESPONSE_COMMAND_ID (0x01) +#define ZCL_VOICE_TRANSMISSION_COMPLETION_COMMAND_ID (0x02) +#define ZCL_CONTROL_COMMAND_ID (0x02) +#define ZCL_CONTROL_RESPONSE_COMMAND_ID (0x03) + +// Commands for cluster: Chatting +#define ZCL_JOIN_CHAT_REQUEST_COMMAND_ID (0x00) +#define ZCL_START_CHAT_RESPONSE_COMMAND_ID (0x00) +#define ZCL_LEAVE_CHAT_REQUEST_COMMAND_ID (0x01) +#define ZCL_JOIN_CHAT_RESPONSE_COMMAND_ID (0x01) +#define ZCL_SEARCH_CHAT_REQUEST_COMMAND_ID (0x02) +#define ZCL_USER_LEFT_COMMAND_ID (0x02) +#define ZCL_SWITCH_CHAIRMAN_RESPONSE_COMMAND_ID (0x03) +#define ZCL_USER_JOINED_COMMAND_ID (0x03) +#define ZCL_START_CHAT_REQUEST_COMMAND_ID (0x04) +#define ZCL_SEARCH_CHAT_RESPONSE_COMMAND_ID (0x04) +#define ZCL_CHAT_MESSAGE_COMMAND_ID (0x05) +#define ZCL_SWITCH_CHAIRMAN_REQUEST_COMMAND_ID (0x05) +#define ZCL_GET_NODE_INFORMATION_REQUEST_COMMAND_ID (0x06) +#define ZCL_SWITCH_CHAIRMAN_CONFIRM_COMMAND_ID (0x06) +#define ZCL_SWITCH_CHAIRMAN_NOTIFICATION_COMMAND_ID (0x07) +#define ZCL_GET_NODE_INFORMATION_RESPONSE_COMMAND_ID (0x08) + +// Commands for cluster: Payment +#define ZCL_BUY_REQUEST_COMMAND_ID (0x00) +#define ZCL_BUY_CONFIRM_COMMAND_ID (0x00) +#define ZCL_ACCEPT_PAYMENT_COMMAND_ID (0x01) +#define ZCL_RECEIPT_DELIVERY_COMMAND_ID (0x01) +#define ZCL_PAYMENT_CONFIRM_COMMAND_ID (0x02) +#define ZCL_TRANSACTION_END_COMMAND_ID (0x02) + +// Commands for cluster: Billing +#define ZCL_SUBSCRIBE_COMMAND_ID (0x00) +#define ZCL_CHECK_BILL_STATUS_COMMAND_ID (0x00) +#define ZCL_UNSUBSCRIBE_COMMAND_ID (0x01) +#define ZCL_SEND_BILL_RECORD_COMMAND_ID (0x01) +#define ZCL_START_BILLING_SESSION_COMMAND_ID (0x02) +#define ZCL_STOP_BILLING_SESSION_COMMAND_ID (0x03) +#define ZCL_BILL_STATUS_NOTIFICATION_COMMAND_ID (0x04) +#define ZCL_SESSION_KEEP_ALIVE_COMMAND_ID (0x05) + +// Commands for cluster: Appliance Events and Alert +#define ZCL_GET_ALERTS_COMMAND_ID (0x00) +#define ZCL_GET_ALERTS_RESPONSE_COMMAND_ID (0x00) +#define ZCL_ALERTS_NOTIFICATION_COMMAND_ID (0x01) +#define ZCL_EVENTS_NOTIFICATION_COMMAND_ID (0x02) + +// Commands for cluster: Appliance Statistics +#define ZCL_LOG_NOTIFICATION_COMMAND_ID (0x00) +#define ZCL_LOG_REQUEST_COMMAND_ID (0x00) +#define ZCL_LOG_RESPONSE_COMMAND_ID (0x01) +#define ZCL_LOG_QUEUE_REQUEST_COMMAND_ID (0x01) +#define ZCL_LOG_QUEUE_RESPONSE_COMMAND_ID (0x02) +#define ZCL_STATISTICS_AVAILABLE_COMMAND_ID (0x03) + +// Commands for cluster: Electrical Measurement +#define ZCL_GET_PROFILE_INFO_RESPONSE_COMMAND_COMMAND_ID (0x00) +#define ZCL_GET_PROFILE_INFO_COMMAND_COMMAND_ID (0x00) +#define ZCL_GET_MEASUREMENT_PROFILE_RESPONSE_COMMAND_COMMAND_ID (0x01) +#define ZCL_GET_MEASUREMENT_PROFILE_COMMAND_COMMAND_ID (0x01) + +// Commands for cluster: ZLL Commissioning +#define ZCL_SCAN_REQUEST_COMMAND_ID (0x00) +#define ZCL_SCAN_RESPONSE_COMMAND_ID (0x01) +#define ZCL_DEVICE_INFORMATION_REQUEST_COMMAND_ID (0x02) +#define ZCL_DEVICE_INFORMATION_RESPONSE_COMMAND_ID (0x03) +#define ZCL_IDENTIFY_REQUEST_COMMAND_ID (0x06) +#define ZCL_RESET_TO_FACTORY_NEW_REQUEST_COMMAND_ID (0x07) +#define ZCL_NETWORK_START_REQUEST_COMMAND_ID (0x10) +#define ZCL_NETWORK_START_RESPONSE_COMMAND_ID (0x11) +#define ZCL_NETWORK_JOIN_ROUTER_REQUEST_COMMAND_ID (0x12) +#define ZCL_NETWORK_JOIN_ROUTER_RESPONSE_COMMAND_ID (0x13) +#define ZCL_NETWORK_JOIN_END_DEVICE_REQUEST_COMMAND_ID (0x14) +#define ZCL_NETWORK_JOIN_END_DEVICE_RESPONSE_COMMAND_ID (0x15) +#define ZCL_NETWORK_UPDATE_REQUEST_COMMAND_ID (0x16) +#define ZCL_ENDPOINT_INFORMATION_COMMAND_ID (0x40) +#define ZCL_GET_GROUP_IDENTIFIERS_REQUEST_COMMAND_ID (0x41) +#define ZCL_GET_GROUP_IDENTIFIERS_RESPONSE_COMMAND_ID (0x41) +#define ZCL_GET_ENDPOINT_LIST_REQUEST_COMMAND_ID (0x42) +#define ZCL_GET_ENDPOINT_LIST_RESPONSE_COMMAND_ID (0x42) + +// Commands for cluster: Sample Mfg Specific Cluster +#define ZCL_COMMAND_ONE_COMMAND_ID (0x00) + +// Commands for cluster: Sample Mfg Specific Cluster 2 +#define ZCL_COMMAND_TWO_COMMAND_ID (0x00) + +// Commands for cluster: Configuration Cluster +#define ZCL_SET_TOKEN_COMMAND_ID (0x00) +#define ZCL_RETURN_TOKEN_COMMAND_ID (0x00) +#define ZCL_LOCK_TOKENS_COMMAND_ID (0x01) +#define ZCL_READ_TOKENS_COMMAND_ID (0x02) +#define ZCL_UNLOCK_TOKENS_COMMAND_ID (0x03) + +// Commands for cluster: MFGLIB Cluster +#define ZCL_STREAM_COMMAND_ID (0x00) +#define ZCL_TONE_COMMAND_ID (0x01) +#define ZCL_RX_MODE_COMMAND_ID (0x02) + +// Commands for cluster: SL Works With All Hubs +#define ZCL_ENABLE_APS_LINK_KEY_AUTHORIZATION_COMMAND_ID (0x00) +#define ZCL_APS_LINK_KEY_AUTHORIZATION_QUERY_RESPONSE_COMMAND_ID (0x00) +#define ZCL_DISABLE_APS_LINK_KEY_AUTHORIZATION_COMMAND_ID (0x01) +#define ZCL_POWERING_OFF_NOTIFICATION_COMMAND_ID (0x01) +#define ZCL_APS_LINK_KEY_AUTHORIZATION_QUERY_COMMAND_ID (0x02) +#define ZCL_POWERING_ON_NOTIFICATION_COMMAND_ID (0x02) +#define ZCL_REQUEST_NEW_APS_LINK_KEY_COMMAND_ID (0x03) +#define ZCL_SHORT_ADDRESS_CHANGE_COMMAND_ID (0x03) +#define ZCL_ENABLE_WWAH_APP_EVENT_RETRY_ALGORITHM_COMMAND_ID (0x04) +#define ZCL_APS_ACK_ENABLEMENT_QUERY_RESPONSE_COMMAND_ID (0x04) +#define ZCL_DISABLE_WWAH_APP_EVENT_RETRY_ALGORITHM_COMMAND_ID (0x05) +#define ZCL_POWER_DESCRIPTOR_CHANGE_COMMAND_ID (0x05) +#define ZCL_REQUEST_TIME_COMMAND_ID (0x06) +#define ZCL_NEW_DEBUG_REPORT_NOTIFICATION_COMMAND_ID (0x06) +#define ZCL_ENABLE_WWAH_REJOIN_ALGORITHM_COMMAND_ID (0x07) +#define ZCL_DEBUG_REPORT_QUERY_RESPONSE_COMMAND_ID (0x07) +#define ZCL_DISABLE_WWAH_REJOIN_ALGORITHM_COMMAND_ID (0x08) +#define ZCL_TRUST_CENTER_FOR_CLUSTER_SERVER_QUERY_RESPONSE_COMMAND_ID (0x08) +#define ZCL_SET_IAS_ZONE_ENROLLMENT_METHOD_COMMAND_ID (0x09) +#define ZCL_SURVEY_BEACONS_RESPONSE_COMMAND_ID (0x09) +#define ZCL_CLEAR_BINDING_TABLE_COMMAND_ID (0x0A) +#define ZCL_ENABLE_PERIODIC_ROUTER_CHECK_INS_COMMAND_ID (0x0B) +#define ZCL_DISABLE_PERIODIC_ROUTER_CHECK_INS_COMMAND_ID (0x0C) +#define ZCL_SET_MAC_POLL_FAILURE_WAIT_TIME_COMMAND_ID (0x0D) +#define ZCL_SET_PENDING_NETWORK_UPDATE_COMMAND_ID (0x0E) +#define ZCL_REQUIRE_APS_ACKS_ON_UNICASTS_COMMAND_ID (0x0F) +#define ZCL_REMOVE_APS_ACKS_ON_UNICASTS_REQUIREMENT_COMMAND_ID (0x10) +#define ZCL_APS_ACK_REQUIREMENT_QUERY_COMMAND_ID (0x11) +#define ZCL_DEBUG_REPORT_QUERY_COMMAND_ID (0x12) +#define ZCL_SURVEY_BEACONS_COMMAND_ID (0x13) +#define ZCL_DISABLE_OTA_DOWNGRADES_COMMAND_ID (0x14) +#define ZCL_DISABLE_MGMT_LEAVE_WITHOUT_REJOIN_COMMAND_ID (0x15) +#define ZCL_DISABLE_TOUCHLINK_INTERPAN_MESSAGE_SUPPORT_COMMAND_ID (0x16) +#define ZCL_ENABLE_WWAH_PARENT_CLASSIFICATION_COMMAND_ID (0x17) +#define ZCL_DISABLE_WWAH_PARENT_CLASSIFICATION_COMMAND_ID (0x18) +#define ZCL_ENABLE_TC_SECURITY_ON_NTWK_KEY_ROTATION_COMMAND_ID (0x19) +#define ZCL_ENABLE_WWAH_BAD_PARENT_RECOVERY_COMMAND_ID (0x1A) +#define ZCL_DISABLE_WWAH_BAD_PARENT_RECOVERY_COMMAND_ID (0x1B) +#define ZCL_ENABLE_CONFIGURATION_MODE_COMMAND_ID (0x1C) +#define ZCL_DISABLE_CONFIGURATION_MODE_COMMAND_ID (0x1D) +#define ZCL_USE_TRUST_CENTER_FOR_CLUSTER_SERVER_COMMAND_ID (0x1E) +#define ZCL_TRUST_CENTER_FOR_CLUSTER_SERVER_QUERY_COMMAND_ID (0x1F) +#define ZCL_USE_TRUST_CENTER_FOR_CLUSTER_SERVER_RESPONSE_COMMAND_ID (0x9E) diff --git a/examples/lock-app/lock-common/gen/enums.h b/examples/lock-app/lock-common/gen/enums.h index c1881b3732b9e3..07c2881e641e97 100644 --- a/examples/lock-app/lock-common/gen/enums.h +++ b/examples/lock-app/lock-common/gen/enums.h @@ -1,4 +1,5 @@ -/** + +/* * * Copyright (c) 2020 Project CHIP Authors * @@ -15,43 +16,18 @@ * 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 SILABS_EMBER_AF_ENUMS -#define SILABS_EMBER_AF_ENUMS - -/** - * @addtogroup enums Application Framework Enums Reference - * This header provides Application Framework enum definitions. - * @{ - */ -/** @name Enums */ -// @{ +// Prevent multiple inclusion +#pragma once +// ZCL enums + +// Enum for 11073ConnectRequestConnectControl typedef enum { EMBER_ZCL_11073_CONNECT_REQUEST_CONNECT_CONTROL_PREEMPTIBLE = 0x01, } EmberAf11073ConnectRequestConnectControl; +// Enum for 11073TunnelConnectionStatus typedef enum { EMBER_ZCL_11073_TUNNEL_CONNECTION_STATUS_DISCONNECTED = 0x00, @@ -61,11 +37,13 @@ typedef enum EMBER_ZCL_11073_TUNNEL_CONNECTION_STATUS_ALREADY_CONNECTED = 0x04, } EmberAf11073TunnelConnectionStatus; +// Enum for AlertCountType typedef enum { EMBER_ZCL_ALERT_COUNT_TYPE_UNSTRUCTURED = 0x00, } EmberAfAlertCountType; +// Enum for AlertStructureCategory typedef enum { EMBER_ZCL_ALERT_STRUCTURE_CATEGORY_WARNING = 0x0100, @@ -73,17 +51,20 @@ typedef enum EMBER_ZCL_ALERT_STRUCTURE_CATEGORY_FAILURE = 0x0300, } EmberAfAlertStructureCategory; +// Enum for AlertStructurePresenceRecovery typedef enum { EMBER_ZCL_ALERT_STRUCTURE_PRESENCE_RECOVERY_RECOVERY = 0x0000, EMBER_ZCL_ALERT_STRUCTURE_PRESENCE_RECOVERY_PRESENCE = 0x1000, } EmberAfAlertStructurePresenceRecovery; +// Enum for AlternateCostUnit typedef enum { EMBER_ZCL_ALTERNATE_COST_UNIT_KG_OF_CO2_PER_UNIT_OF_MEASURE = 0x02, } EmberAfAlternateCostUnit; +// Enum for AmiCriticalityLevel typedef enum { EMBER_ZCL_AMI_CRITICALITY_LEVEL_RESERVED = 0x00, @@ -104,6 +85,7 @@ typedef enum EMBER_ZCL_AMI_CRITICALITY_LEVEL_UTILITY_DEFINED6 = 0x0F, } EmberAfAmiCriticalityLevel; +// Enum for AmiEventStatus typedef enum { EMBER_ZCL_AMI_EVENT_STATUS_LOAD_CONTROL_EVENT_COMMAND_RX = 0x01, @@ -125,6 +107,7 @@ typedef enum EMBER_ZCL_AMI_EVENT_STATUS_LOAD_CONTROL_EVENT_COMMAND_REJECTED = 0xFE, } EmberAfAmiEventStatus; +// Enum for AmiGetProfileStatus typedef enum { EMBER_ZCL_AMI_GET_PROFILE_STATUS_SUCCESS = 0x00, @@ -135,12 +118,14 @@ typedef enum EMBER_ZCL_AMI_GET_PROFILE_STATUS_NO_INTERVALS_AVAILABLE_FOR_THE_REQUESTED_TIME = 0x05, } EmberAfAmiGetProfileStatus; +// Enum for AmiIntervalChannel typedef enum { EMBER_ZCL_AMI_INTERVAL_CHANNEL_CONSUMPTION_DELIVERED = 0x00, EMBER_ZCL_AMI_INTERVAL_CHANNEL_CONSUMPTION_RECEIVED = 0x01, } EmberAfAmiIntervalChannel; +// Enum for AmiIntervalPeriod typedef enum { EMBER_ZCL_AMI_INTERVAL_PERIOD_DAILY = 0x00, @@ -153,6 +138,7 @@ typedef enum EMBER_ZCL_AMI_INTERVAL_PERIOD_MINUTES2P5 = 0x07, } EmberAfAmiIntervalPeriod; +// Enum for AmiKeyEstablishmentStatus typedef enum { EMBER_ZCL_AMI_KEY_ESTABLISHMENT_STATUS_SUCCESS = 0x00, @@ -164,17 +150,19 @@ typedef enum EMBER_ZCL_AMI_KEY_ESTABLISHMENT_STATUS_INVALID_KEY_USAGE = 0x06, } EmberAfAmiKeyEstablishmentStatus; +// Enum for AmiRegistrationState typedef enum { - EMBER_ZCL_AMI_REGISTRATION_STATE_UNREGISTERED = 0x00, - EMBER_ZCL_AMI_REGISTRATION_STATE_JOINING_NETWORK = 0x01, - EMBER_ZCL_AMI_REGISTRATION_STATE_JOINED_NETWORK = 0x02, - EMBER_ZCL_AMI_REGISTRATION_STATE_SUBMITTED_REGISTRATION_REQUEST = 0x03, - EMBER_ZCL_AMI_REGISTRATION_STATE_REGISTRATION_REJECTED = 0x04, - EMBER_ZCL_AMI_REGISTRATION_STATE_REGISTERED = 0x05, - EMBER_ZCL_AMI_REGISTRATION_STATE_REGISTERATION_NOT_POSSIBLE = 0x06, + EMBER_ZCL_AMI_REGISTRATION_STATE_UNREGISTERED = 0x0, + EMBER_ZCL_AMI_REGISTRATION_STATE_JOINING_NETWORK = 0x1, + EMBER_ZCL_AMI_REGISTRATION_STATE_JOINED_NETWORK = 0x2, + EMBER_ZCL_AMI_REGISTRATION_STATE_SUBMITTED_REGISTRATION_REQUEST = 0x3, + EMBER_ZCL_AMI_REGISTRATION_STATE_REGISTRATION_REJECTED = 0x4, + EMBER_ZCL_AMI_REGISTRATION_STATE_REGISTERED = 0x5, + EMBER_ZCL_AMI_REGISTRATION_STATE_REGISTERATION_NOT_POSSIBLE = 0x6, } EmberAfAmiRegistrationState; +// Enum for AmiUnitOfMeasure typedef enum { EMBER_ZCL_AMI_UNIT_OF_MEASURE_KILO_WATT_HOURS = 0x00, @@ -207,12 +195,14 @@ typedef enum EMBER_ZCL_AMI_UNIT_OF_MEASURE_K_VAR_OR_K_VAR_HOURS_BCD = 0x8D, } EmberAfAmiUnitOfMeasure; +// Enum for AnonymousDataState typedef enum { - EMBER_ZCL_ANONYMOUS_DATA_STATE_NO_SOURCE_FOUND = 0x00, - EMBER_ZCL_ANONYMOUS_DATA_STATE_SOURCE_FOUND = 0x01, + EMBER_ZCL_ANONYMOUS_DATA_STATE_NO_SOURCE_FOUND = 0x0, + EMBER_ZCL_ANONYMOUS_DATA_STATE_SOURCE_FOUND = 0x1, } EmberAfAnonymousDataState; +// Enum for ApplianceStatus typedef enum { EMBER_ZCL_APPLIANCE_STATUS_OFF = 0x01, @@ -232,12 +222,14 @@ typedef enum EMBER_ZCL_APPLIANCE_STATUS_SUPERHEATING = 0x0F, } EmberAfApplianceStatus; +// Enum for AttributeReportingStatus typedef enum { EMBER_ZCL_ATTRIBUTE_REPORTING_STATUS_PENDING = 0x00, EMBER_ZCL_ATTRIBUTE_REPORTING_STATUS_ATTRIBUTE_REPORTING_COMPLETE = 0x01, } EmberAfAttributeReportingStatus; +// Enum for AttributeWritePermission typedef enum { EMBER_ZCL_ATTRIBUTE_WRITE_PERMISSION_DENY_WRITE = 0x00, @@ -249,13 +241,15 @@ typedef enum EMBER_ZCL_ATTRIBUTE_WRITE_PERMISSION_INVALID_DATA_TYPE = 0x8D, } EmberAfAttributeWritePermission; +// Enum for BarrierControlBarrierPosition typedef enum { - EMBER_ZCL_BARRIER_CONTROL_BARRIER_POSITION_CLOSED = 0x00, - EMBER_ZCL_BARRIER_CONTROL_BARRIER_POSITION_OPEN = 0x64, + EMBER_ZCL_BARRIER_CONTROL_BARRIER_POSITION_CLOSED = 0, + EMBER_ZCL_BARRIER_CONTROL_BARRIER_POSITION_OPEN = 100, EMBER_ZCL_BARRIER_CONTROL_BARRIER_POSITION_UNKNOWN = 0xFF, } EmberAfBarrierControlBarrierPosition; +// Enum for BarrierControlMovingState typedef enum { EMBER_ZCL_BARRIER_CONTROL_MOVING_STATE_STOPPED = 0x00, @@ -263,18 +257,20 @@ typedef enum EMBER_ZCL_BARRIER_CONTROL_MOVING_STATE_OPENING = 0x02, } EmberAfBarrierControlMovingState; +// Enum for BatterySize typedef enum { - EMBER_ZCL_BATTERY_SIZE_NO_BATTERY = 0x00, - EMBER_ZCL_BATTERY_SIZE_BUILT_IN = 0x01, - EMBER_ZCL_BATTERY_SIZE_OTHER = 0x02, - EMBER_ZCL_BATTERY_SIZE_AA = 0x03, - EMBER_ZCL_BATTERY_SIZE_AAA = 0x04, - EMBER_ZCL_BATTERY_SIZE_C = 0x05, - EMBER_ZCL_BATTERY_SIZE_D = 0x06, - EMBER_ZCL_BATTERY_SIZE_UNKNOWN = 0xFF, + EMBER_ZCL_BATTERY_SIZE_NO_BATTERY = 0x0, + EMBER_ZCL_BATTERY_SIZE_BUILT_IN = 0x1, + EMBER_ZCL_BATTERY_SIZE_OTHER = 0x2, + EMBER_ZCL_BATTERY_SIZE_AA = 0x3, + EMBER_ZCL_BATTERY_SIZE_AAA = 0x4, + EMBER_ZCL_BATTERY_SIZE_C = 0x5, + EMBER_ZCL_BATTERY_SIZE_D = 0x6, + EMBER_ZCL_BATTERY_SIZE_UNKNOWN = 0xff, } EmberAfBatterySize; +// Enum for BillingPeriodDurationUnits typedef enum { EMBER_ZCL_BILLING_PERIOD_DURATION_UNITS_MINUTES = 0x000000, @@ -283,6 +279,7 @@ typedef enum EMBER_ZCL_BILLING_PERIOD_DURATION_UNITS_MONTHS = 0xC00000, } EmberAfBillingPeriodDurationUnits; +// Enum for Block typedef enum { EMBER_ZCL_BLOCK_NO_BLOCKS_IN_USE = 0x00, @@ -304,6 +301,7 @@ typedef enum EMBER_ZCL_BLOCK_BLOCK16 = 0x10, } EmberAfBlock; +// Enum for BlockPeriodDurationTypeControl typedef enum { EMBER_ZCL_BLOCK_PERIOD_DURATION_TYPE_CONTROL_START_OF_TIMEBASE = 0x00, @@ -311,6 +309,7 @@ typedef enum EMBER_ZCL_BLOCK_PERIOD_DURATION_TYPE_CONTROL_NOT_SPECIFIED = 0x20, } EmberAfBlockPeriodDurationTypeControl; +// Enum for BlockPeriodDurationTypeTimebase typedef enum { EMBER_ZCL_BLOCK_PERIOD_DURATION_TYPE_TIMEBASE_MINUTES = 0x00, @@ -319,13 +318,15 @@ typedef enum EMBER_ZCL_BLOCK_PERIOD_DURATION_TYPE_TIMEBASE_MONTHS = 0x03, } EmberAfBlockPeriodDurationTypeTimebase; +// Enum for CO2Unit typedef enum { - EMBER_ZCL_C_O2_UNIT_KILOGRAM_PER_KILOWATT_HOUR = 0x01, - EMBER_ZCL_C_O2_UNIT_KILOGRAM_PER_GALLON_OF_GASOLINE = 0x02, - EMBER_ZCL_C_O2_UNIT_KILOGRAM_PER_THERM_OF_NATURAL_GAS = 0x03, + EMBER_ZCL_CO2_UNIT_KILOGRAM_PER_KILOWATT_HOUR = 0x01, + EMBER_ZCL_CO2_UNIT_KILOGRAM_PER_GALLON_OF_GASOLINE = 0x02, + EMBER_ZCL_CO2_UNIT_KILOGRAM_PER_THERM_OF_NATURAL_GAS = 0x03, } EmberAfCO2Unit; +// Enum for CalendarTimeReference typedef enum { EMBER_ZCL_CALENDAR_TIME_REFERENCE_UTC_TIME = 0x00, @@ -333,6 +334,7 @@ typedef enum EMBER_ZCL_CALENDAR_TIME_REFERENCE_LOCAL_TIME = 0x02, } EmberAfCalendarTimeReference; +// Enum for CalendarType typedef enum { EMBER_ZCL_CALENDAR_TYPE_DELIVERED_CALENDAR = 0x00, @@ -342,23 +344,27 @@ typedef enum EMBER_ZCL_CALENDAR_TYPE_AUXILLIARY_LOAD_SWITCH_CALENDAR = 0x04, } EmberAfCalendarType; +// Enum for CalorificValueUnit typedef enum { EMBER_ZCL_CALORIFIC_VALUE_UNIT_MEGAJOULE_PER_CUBIC_METER = 0x01, EMBER_ZCL_CALORIFIC_VALUE_UNIT_MEGAJOULE_PER_KILOGRAM = 0x02, } EmberAfCalorificValueUnit; +// Enum for CecedSpecificationVersion typedef enum { EMBER_ZCL_CECED_SPECIFICATION_VERSION_COMPLIANT_WITH_V10_NOT_CERTIFIED = 0x10, EMBER_ZCL_CECED_SPECIFICATION_VERSION_COMPLIANT_WITH_V10_CERTIFIED = 0x1A, } EmberAfCecedSpecificationVersion; +// Enum for ColorControlOptions typedef enum { - EMBER_ZCL_COLOR_CONTROL_OPTIONS_EXECUTE_IF_OFF = 0x01, + EMBER_ZCL_COLOR_CONTROL_OPTIONS_EXECUTE_IF_OFF = 0x1, } EmberAfColorControlOptions; +// Enum for ColorLoopAction typedef enum { EMBER_ZCL_COLOR_LOOP_ACTION_DEACTIVATE = 0x00, @@ -366,12 +372,14 @@ typedef enum EMBER_ZCL_COLOR_LOOP_ACTION_ACTIVATE_FROM_ENHANCED_CURRENT_HUE = 0x02, } EmberAfColorLoopAction; +// Enum for ColorLoopDirection typedef enum { EMBER_ZCL_COLOR_LOOP_DIRECTION_DECREMENT_HUE = 0x00, EMBER_ZCL_COLOR_LOOP_DIRECTION_INCREMENT_HUE = 0x01, } EmberAfColorLoopDirection; +// Enum for ColorMode typedef enum { EMBER_ZCL_COLOR_MODE_CURRENT_HUE_AND_CURRENT_SATURATION = 0x00, @@ -379,6 +387,7 @@ typedef enum EMBER_ZCL_COLOR_MODE_COLOR_TEMPERATURE = 0x02, } EmberAfColorMode; +// Enum for CommandIdentification typedef enum { EMBER_ZCL_COMMAND_IDENTIFICATION_START = 0x01, @@ -394,6 +403,7 @@ typedef enum EMBER_ZCL_COMMAND_IDENTIFICATION_DISABLE_ENERGY_CONTROL = 0x0B, } EmberAfCommandIdentification; +// Enum for CommissioningStartupControl typedef enum { EMBER_ZCL_COMMISSIONING_STARTUP_CONTROL_NO_ACTION = 0x00, @@ -402,6 +412,7 @@ typedef enum EMBER_ZCL_COMMISSIONING_STARTUP_CONTROL_START_FROM_SCRATCH = 0x03, } EmberAfCommissioningStartupControl; +// Enum for CommodityType typedef enum { EMBER_ZCL_COMMODITY_TYPE_ELECTRIC_METERING = 0x00, @@ -422,24 +433,28 @@ typedef enum EMBER_ZCL_COMMODITY_TYPE_ELECTRIC_METERING_ELEMENT3 = 0x0F, } EmberAfCommodityType; +// Enum for CppEventResponseCppAuth typedef enum { EMBER_ZCL_CPP_EVENT_RESPONSE_CPP_AUTH_ACCEPTED = 0x01, EMBER_ZCL_CPP_EVENT_RESPONSE_CPP_AUTH_REJECTED = 0x02, } EmberAfCppEventResponseCppAuth; +// Enum for CppPriceTier typedef enum { EMBER_ZCL_CPP_PRICE_TIER_CPP1 = 0x00, EMBER_ZCL_CPP_PRICE_TIER_CPP2 = 0x01, } EmberAfCppPriceTier; +// Enum for CreditAdjustmentType typedef enum { EMBER_ZCL_CREDIT_ADJUSTMENT_TYPE_CREDIT_INCREMENTAL = 0x00, EMBER_ZCL_CREDIT_ADJUSTMENT_TYPE_CREDIT_ABSOLUTE = 0x01, } EmberAfCreditAdjustmentType; +// Enum for CreditPaymentStatus typedef enum { EMBER_ZCL_CREDIT_PAYMENT_STATUS_PENDING = 0x00, @@ -449,6 +464,7 @@ typedef enum EMBER_ZCL_CREDIT_PAYMENT_STATUS_3_PAYMENTS_OVERDUE = 0x04, } EmberAfCreditPaymentStatus; +// Enum for DataQualityId typedef enum { EMBER_ZCL_DATA_QUALITY_ID_ALL_DATA_CERTIFIED = 0x0000, @@ -457,6 +473,7 @@ typedef enum EMBER_ZCL_DATA_QUALITY_ID_NOT_CERTIFIED_DATA = 0x0003, } EmberAfDataQualityId; +// Enum for DebtAmountType typedef enum { EMBER_ZCL_DEBT_AMOUNT_TYPE_TYPE1_ABSOLUTE = 0x00, @@ -467,6 +484,7 @@ typedef enum EMBER_ZCL_DEBT_AMOUNT_TYPE_TYPE3_INCREMENTAL = 0x05, } EmberAfDebtAmountType; +// Enum for DebtRecoveryFrequency typedef enum { EMBER_ZCL_DEBT_RECOVERY_FREQUENCY_PER_HOUR = 0x00, @@ -476,6 +494,7 @@ typedef enum EMBER_ZCL_DEBT_RECOVERY_FREQUENCY_PER_QUARTER = 0x04, } EmberAfDebtRecoveryFrequency; +// Enum for DebtRecoveryMethod typedef enum { EMBER_ZCL_DEBT_RECOVERY_METHOD_TIME_BASED = 0x00, @@ -483,23 +502,27 @@ typedef enum EMBER_ZCL_DEBT_RECOVERY_METHOD_CATCH_UP_BASED = 0x02, } EmberAfDebtRecoveryMethod; +// Enum for DehumidifcationLockout typedef enum { - EMBER_ZCL_DEHUMIDIFCATION_LOCKOUT_NOT_ALLOWED = 0x00, - EMBER_ZCL_DEHUMIDIFCATION_LOCKOUT_ALLOWED = 0x01, + EMBER_ZCL_DEHUMIDIFCATION_LOCKOUT_NOT_ALLOWED = 0x0, + EMBER_ZCL_DEHUMIDIFCATION_LOCKOUT_ALLOWED = 0x1, } EmberAfDehumidifcationLockout; +// Enum for DeviceInformationRecordSort typedef enum { EMBER_ZCL_DEVICE_INFORMATION_RECORD_SORT_NOT_SORTED = 0x00, EMBER_ZCL_DEVICE_INFORMATION_RECORD_SORT_TOP_OF_THE_LIST = 0x01, } EmberAfDeviceInformationRecordSort; +// Enum for DeviceStatus2Structure typedef enum { EMBER_ZCL_DEVICE_STATUS2_STRUCTURE_IRIS_SYMPTOM_CODE = 0x20, } EmberAfDeviceStatus2Structure; +// Enum for DoorLockEventSource typedef enum { EMBER_ZCL_DOOR_LOCK_EVENT_SOURCE_KEYPAD = 0x00, @@ -509,6 +532,7 @@ typedef enum EMBER_ZCL_DOOR_LOCK_EVENT_SOURCE_INDETERMINATE = 0xFF, } EmberAfDoorLockEventSource; +// Enum for DoorLockEventType typedef enum { EMBER_ZCL_DOOR_LOCK_EVENT_TYPE_OPERATION = 0x00, @@ -516,6 +540,7 @@ typedef enum EMBER_ZCL_DOOR_LOCK_EVENT_TYPE_ALARM = 0x02, } EmberAfDoorLockEventType; +// Enum for DoorLockOperatingMode typedef enum { EMBER_ZCL_DOOR_LOCK_OPERATING_MODE_NORMAL_MODE = 0x00, @@ -523,9 +548,10 @@ typedef enum EMBER_ZCL_DOOR_LOCK_OPERATING_MODE_PRIVACY_MODE = 0x02, EMBER_ZCL_DOOR_LOCK_OPERATING_MODE_NO_RF_LOCK_OR_UNLOCK = 0x03, EMBER_ZCL_DOOR_LOCK_OPERATING_MODE_LOCAL_PROGRAMMING_MODE = 0x04, - EMBER_ZCL_DOOR_LOCK_OPERATING_MODE_PASSAGE_MODE = 0x05, + EMBER_ZCL_DOOR_LOCK_OPERATING_MODE_PASSAGE_MODE______ = 0x05, } EmberAfDoorLockOperatingMode; +// Enum for DoorLockOperationEventCode typedef enum { EMBER_ZCL_DOOR_LOCK_OPERATION_EVENT_CODE_UNKNOWN_OR_MFG_SPECIFIC = 0x00, @@ -545,6 +571,7 @@ typedef enum EMBER_ZCL_DOOR_LOCK_OPERATION_EVENT_CODE_MANUAL_UNLOCK = 0x0E, } EmberAfDoorLockOperationEventCode; +// Enum for DoorLockProgrammingEventCode typedef enum { EMBER_ZCL_DOOR_LOCK_PROGRAMMING_EVENT_CODE_UNKNOWN_OR_MFG_SPECIFIC = 0x00, @@ -556,12 +583,14 @@ typedef enum EMBER_ZCL_DOOR_LOCK_PROGRAMMING_EVENT_CODE_ID_DELETED = 0x06, } EmberAfDoorLockProgrammingEventCode; +// Enum for DoorLockSecurityLevel typedef enum { EMBER_ZCL_DOOR_LOCK_SECURITY_LEVEL_NETWORK_SECURITY = 0x00, EMBER_ZCL_DOOR_LOCK_SECURITY_LEVEL_APS_SECURITY = 0x01, } EmberAfDoorLockSecurityLevel; +// Enum for DoorLockSetPinOrIdStatus typedef enum { EMBER_ZCL_DOOR_LOCK_SET_PIN_OR_ID_STATUS_SUCCESS = 0x00, @@ -570,6 +599,7 @@ typedef enum EMBER_ZCL_DOOR_LOCK_SET_PIN_OR_ID_STATUS_DUPLICATE_CODE_ERROR = 0x03, } EmberAfDoorLockSetPinOrIdStatus; +// Enum for DoorLockSoundVolume typedef enum { EMBER_ZCL_DOOR_LOCK_SOUND_VOLUME_SILENT = 0x00, @@ -577,6 +607,7 @@ typedef enum EMBER_ZCL_DOOR_LOCK_SOUND_VOLUME_HIGH = 0x02, } EmberAfDoorLockSoundVolume; +// Enum for DoorLockState typedef enum { EMBER_ZCL_DOOR_LOCK_STATE_NOT_FULLY_LOCKED = 0x00, @@ -584,6 +615,7 @@ typedef enum EMBER_ZCL_DOOR_LOCK_STATE_UNLOCKED = 0x02, } EmberAfDoorLockState; +// Enum for DoorLockType typedef enum { EMBER_ZCL_DOOR_LOCK_TYPE_DEAD_BOLT = 0x00, @@ -598,6 +630,7 @@ typedef enum EMBER_ZCL_DOOR_LOCK_TYPE_OTHER = 0x09, } EmberAfDoorLockType; +// Enum for DoorLockUserStatus typedef enum { EMBER_ZCL_DOOR_LOCK_USER_STATUS_AVAILABLE = 0x00, @@ -606,15 +639,18 @@ typedef enum EMBER_ZCL_DOOR_LOCK_USER_STATUS_NOT_SUPPORTED = 0xFF, } EmberAfDoorLockUserStatus; +// Enum for DoorLockUserType typedef enum { - EMBER_ZCL_DOOR_LOCK_USER_TYPE_UNRESTRICTED = 0x00, - EMBER_ZCL_DOOR_LOCK_USER_TYPE_ONE_TIME_USER = 0x01, - EMBER_ZCL_DOOR_LOCK_USER_TYPE_USER_WITH_SCHEDULE = 0x02, - EMBER_ZCL_DOOR_LOCK_USER_TYPE_MASTER_USER = 0x03, - EMBER_ZCL_DOOR_LOCK_USER_TYPE_NOT_SUPPORTED = 0xFF, + EMBER_ZCL_DOOR_LOCK_USER_TYPE_UNRESTRICTED = 0x00, + EMBER_ZCL_DOOR_LOCK_USER_TYPE_YEAR_DAY_SCHEDULE_USER = 0x01, + EMBER_ZCL_DOOR_LOCK_USER_TYPE_WEEK_DAY_SCHEDULE_USER = 0x02, + EMBER_ZCL_DOOR_LOCK_USER_TYPE_MASTER_USER = 0x03, + EMBER_ZCL_DOOR_LOCK_USER_TYPE_NON_ACCESS_USER = 0x04, + EMBER_ZCL_DOOR_LOCK_USER_TYPE_NOT_SUPPORTED = 0xFF, } EmberAfDoorLockUserType; +// Enum for DoorState typedef enum { EMBER_ZCL_DOOR_STATE_OPEN = 0x00, @@ -624,6 +660,7 @@ typedef enum EMBER_ZCL_DOOR_STATE_ERROR_UNSPECIFIED = 0x04, } EmberAfDoorState; +// Enum for ElectricityAlarmGroups typedef enum { EMBER_ZCL_ELECTRICITY_ALARM_GROUPS_LOW_VOLTAGE_L1 = 0x10, @@ -648,12 +685,13 @@ typedef enum EMBER_ZCL_ELECTRICITY_ALARM_GROUPS_UNDER_VOLTAGE = 0x23, EMBER_ZCL_ELECTRICITY_ALARM_GROUPS_OVER_VOLTAGE = 0x24, EMBER_ZCL_ELECTRICITY_ALARM_GROUPS_NORMAL_VOLTAGE = 0x25, - EMBER_ZCL_ELECTRICITY_ALARM_GROUPS_P_F_BELOW_THRESHOLD = 0x26, - EMBER_ZCL_ELECTRICITY_ALARM_GROUPS_P_F_ABOVE_THRESHOLD = 0x27, + EMBER_ZCL_ELECTRICITY_ALARM_GROUPS_PF_BELOW_THRESHOLD = 0x26, + EMBER_ZCL_ELECTRICITY_ALARM_GROUPS_PF_ABOVE_THRESHOLD = 0x27, EMBER_ZCL_ELECTRICITY_ALARM_GROUPS_TERMINAL_COVER_REMOVED = 0x28, EMBER_ZCL_ELECTRICITY_ALARM_GROUPS_TERMINAL_COVER_CLOSED = 0x29, } EmberAfElectricityAlarmGroups; +// Enum for EnhancedColorMode typedef enum { EMBER_ZCL_ENHANCED_COLOR_MODE_CURRENT_HUE_AND_CURRENT_SATURATION = 0x00, @@ -662,6 +700,7 @@ typedef enum EMBER_ZCL_ENHANCED_COLOR_MODE_ENHANCED_CURRENT_HUE_AND_CURRENT_SATURATION = 0x03, } EmberAfEnhancedColorMode; +// Enum for EventConfigurationControl typedef enum { EMBER_ZCL_EVENT_CONFIGURATION_CONTROL_APPLY_BY_LIST = 0x00, @@ -670,6 +709,7 @@ typedef enum EMBER_ZCL_EVENT_CONFIGURATION_CONTROL_APPLY_BY_CONFIGURATION_MATCH = 0x03, } EmberAfEventConfigurationControl; +// Enum for EventConfigurationLogAction typedef enum { EMBER_ZCL_EVENT_CONFIGURATION_LOG_ACTION_DO_NOT_LOG = 0x00, @@ -680,12 +720,14 @@ typedef enum EMBER_ZCL_EVENT_CONFIGURATION_LOG_ACTION_LOG_AS_NETWORK_EVENT = 0x05, } EmberAfEventConfigurationLogAction; +// Enum for EventControl typedef enum { EMBER_ZCL_EVENT_CONTROL_RETRIEVE_MINIMAL_INFORMATION = 0x00, EMBER_ZCL_EVENT_CONTROL_RETRIEVE_FULL_INFORMATION = 0x10, } EmberAfEventControl; +// Enum for EventId typedef enum { EMBER_ZCL_EVENT_ID_METER_COVER_REMOVED = 0x00, @@ -751,6 +793,8 @@ typedef enum EMBER_ZCL_EVENT_ID_BATTERY_COVER_REMOVED = 0xA2, EMBER_ZCL_EVENT_ID_BATTERY_COVER_CLOSED = 0xA3, EMBER_ZCL_EVENT_ID_EXCESS_FLOW = 0xA4, + EMBER_ZCL_EVENT_ID_CREDIT_OK = 0xC0, + EMBER_ZCL_EVENT_ID_LOW_CREDIT = 0xC1, EMBER_ZCL_EVENT_ID_EMERGENCY_CREDIT_IN_USE = 0xC0, EMBER_ZCL_EVENT_ID_EMERGENCY_CREDIT_EXHAUSTED = 0xC1, EMBER_ZCL_EVENT_ID_ZERO_CREDIT_EC_NOT_SELECTED = 0xC2, @@ -769,6 +813,7 @@ typedef enum EMBER_ZCL_EVENT_ID_MANUFACTURER_SPECIFIC_I = 0xE8, } EmberAfEventId; +// Enum for EventIdentification typedef enum { EMBER_ZCL_EVENT_IDENTIFICATION_END_OF_CYCLE = 0x01, @@ -778,6 +823,7 @@ typedef enum EMBER_ZCL_EVENT_IDENTIFICATION_WRONG_DATA = 0x07, } EmberAfEventIdentification; +// Enum for EventLogId typedef enum { EMBER_ZCL_EVENT_LOG_ID_ALL_LOGS = 0x00, @@ -790,12 +836,14 @@ typedef enum EMBER_ZCL_EVENT_LOG_ID_GBCS_SECURITY_EVENT_LOG = 0x07, } EmberAfEventLogId; +// Enum for EventLogPayloadControl typedef enum { EMBER_ZCL_EVENT_LOG_PAYLOAD_CONTROL_EVENTS_DO_NOT_CROSS_FRAME_BOUNDARY = 0x00, EMBER_ZCL_EVENT_LOG_PAYLOAD_CONTROL_EVENT_CROSSES_FRAME_BOUNDARY = 0x01, } EmberAfEventLogPayloadControl; +// Enum for ExtendedGenericAlarmGroups typedef enum { EMBER_ZCL_EXTENDED_GENERIC_ALARM_GROUPS_MEASUREMENT_SYSTEM_ERROR = 0x70, @@ -839,6 +887,7 @@ typedef enum EMBER_ZCL_EXTENDED_GENERIC_ALARM_GROUPS_EXTENDED_METER_ALARM_STATUS_REGISTER_CHANGED = 0x96, } EmberAfExtendedGenericAlarmGroups; +// Enum for ExtendedNumberOfPriceTiers typedef enum { EMBER_ZCL_EXTENDED_NUMBER_OF_PRICE_TIERS_REFER_TO_NUMBER_OF_PRICE_TIERS_FIELD = 0x00, @@ -877,6 +926,7 @@ typedef enum EMBER_ZCL_EXTENDED_NUMBER_OF_PRICE_TIERS_NUMBER_OF_PRICE_TIERS48 = 0x21, } EmberAfExtendedNumberOfPriceTiers; +// Enum for ExtendedPriceTier typedef enum { EMBER_ZCL_EXTENDED_PRICE_TIER_REFER_TO_PRICE_TIER_FIELD = 0x00, @@ -915,6 +965,7 @@ typedef enum EMBER_ZCL_EXTENDED_PRICE_TIER_TIER48_PRICE_LABEL = 0x21, } EmberAfExtendedPriceTier; +// Enum for ExtendedRegisterTier typedef enum { EMBER_ZCL_EXTENDED_REGISTER_TIER_REFER_TO_REGISTER_TIER_FIELD = 0x00, @@ -953,32 +1004,36 @@ typedef enum EMBER_ZCL_EXTENDED_REGISTER_TIER_CURRENT_TIER48_SUMMATION_DELIVERED_ATTRIBUTE = 0x21, } EmberAfExtendedRegisterTier; +// Enum for EzModeCommissioningClusterType typedef enum { EMBER_ZCL_EZ_MODE_COMMISSIONING_CLUSTER_TYPE_SERVER = 0x00, EMBER_ZCL_EZ_MODE_COMMISSIONING_CLUSTER_TYPE_CLIENT = 0x01, } EmberAfEzModeCommissioningClusterType; +// Enum for FanMode typedef enum { - EMBER_ZCL_FAN_MODE_OFF = 0x00, - EMBER_ZCL_FAN_MODE_LOW = 0x01, - EMBER_ZCL_FAN_MODE_MEDIUM = 0x02, - EMBER_ZCL_FAN_MODE_HIGH = 0x03, - EMBER_ZCL_FAN_MODE_ON = 0x04, - EMBER_ZCL_FAN_MODE_AUTO = 0x05, - EMBER_ZCL_FAN_MODE_SMART = 0x06, + EMBER_ZCL_FAN_MODE_OFF = 0x0, + EMBER_ZCL_FAN_MODE_LOW = 0x1, + EMBER_ZCL_FAN_MODE_MEDIUM = 0x2, + EMBER_ZCL_FAN_MODE_HIGH = 0x3, + EMBER_ZCL_FAN_MODE_ON = 0x4, + EMBER_ZCL_FAN_MODE_AUTO = 0x5, + EMBER_ZCL_FAN_MODE_SMART = 0x6, } EmberAfFanMode; +// Enum for FanModeSequence typedef enum { - EMBER_ZCL_FAN_MODE_SEQUENCE_LOW_MED_HIGH = 0x00, - EMBER_ZCL_FAN_MODE_SEQUENCE_LOW_HIGH = 0x01, - EMBER_ZCL_FAN_MODE_SEQUENCE_LOW_MED_HIGH_AUTO = 0x02, - EMBER_ZCL_FAN_MODE_SEQUENCE_LOW_HIGH_AUTO = 0x03, - EMBER_ZCL_FAN_MODE_SEQUENCE_ON_AUTO = 0x04, + EMBER_ZCL_FAN_MODE_SEQUENCE_LOW_MED_HIGH = 0x0, + EMBER_ZCL_FAN_MODE_SEQUENCE_LOW_HIGH = 0x1, + EMBER_ZCL_FAN_MODE_SEQUENCE_LOW_MED_HIGH_AUTO = 0x2, + EMBER_ZCL_FAN_MODE_SEQUENCE_LOW_HIGH_AUTO = 0x3, + EMBER_ZCL_FAN_MODE_SEQUENCE_ON_AUTO = 0x4, } EmberAfFanModeSequence; +// Enum for GasSpecificAlarmGroups typedef enum { EMBER_ZCL_GAS_SPECIFIC_ALARM_GROUPS_TILT_TAMPER = 0x60, @@ -988,6 +1043,7 @@ typedef enum EMBER_ZCL_GAS_SPECIFIC_ALARM_GROUPS_TILT_TAMPER_ENDED = 0x64, } EmberAfGasSpecificAlarmGroups; +// Enum for GenerationTier typedef enum { EMBER_ZCL_GENERATION_TIER_CURRENT_TIER1_SUMMATION_RECEIVED_ATTRIBUTE = 0x01, @@ -1040,6 +1096,7 @@ typedef enum EMBER_ZCL_GENERATION_TIER_CURRENT_TIER48_SUMMATION_RECEIVED_ATTRIBUTE = 0x30, } EmberAfGenerationTier; +// Enum for GenericAlarmGroups typedef enum { EMBER_ZCL_GENERIC_ALARM_GROUPS_CHECK_METER = 0x00, @@ -1053,22 +1110,25 @@ typedef enum EMBER_ZCL_GENERIC_ALARM_GROUPS_NO_STRONG_MAGNETIC_FIELD = 0x0B, EMBER_ZCL_GENERIC_ALARM_GROUPS_BATTERY_FAILURE = 0x0C, EMBER_ZCL_GENERIC_ALARM_GROUPS_PROGRAM_MEMORY_ERROR = 0x0D, - EMBER_ZCL_GENERIC_ALARM_GROUPS_R_A_M_ERROR = 0x0E, - EMBER_ZCL_GENERIC_ALARM_GROUPS_N_V_MEMORY_ERROR = 0x0F, + EMBER_ZCL_GENERIC_ALARM_GROUPS_RAM_ERROR = 0x0E, + EMBER_ZCL_GENERIC_ALARM_GROUPS_NV_MEMORY_ERROR = 0x0F, } EmberAfGenericAlarmGroups; +// Enum for GenericAlarmGroupsElectricity typedef enum { EMBER_ZCL_GENERIC_ALARM_GROUPS_ELECTRICITY_POWER_FAILURE = 0x03, EMBER_ZCL_GENERIC_ALARM_GROUPS_ELECTRICITY_POWER_QUALITY = 0x04, } EmberAfGenericAlarmGroupsElectricity; +// Enum for GenericAlarmGroupsGas typedef enum { EMBER_ZCL_GENERIC_ALARM_GROUPS_GAS_LOW_PRESSURE = 0x04, EMBER_ZCL_GENERIC_ALARM_GROUPS_GAS_REVERSE_FLOW = 0x07, } EmberAfGenericAlarmGroupsGas; +// Enum for GenericAlarmGroupsHeatCooling typedef enum { EMBER_ZCL_GENERIC_ALARM_GROUPS_HEAT_COOLING_TEMPERATURE_SENSOR = 0x03, @@ -1076,6 +1136,7 @@ typedef enum EMBER_ZCL_GENERIC_ALARM_GROUPS_HEAT_COOLING_FLOW_SENSOR = 0x07, } EmberAfGenericAlarmGroupsHeatCooling; +// Enum for GenericAlarmGroupsWater typedef enum { EMBER_ZCL_GENERIC_ALARM_GROUPS_WATER_WATER_PIPE_EMPTY = 0x03, @@ -1083,11 +1144,13 @@ typedef enum EMBER_ZCL_GENERIC_ALARM_GROUPS_WATER_WATER_REVERSE_FLOW = 0x07, } EmberAfGenericAlarmGroupsWater; +// Enum for GenericDeviceClass typedef enum { EMBER_ZCL_GENERIC_DEVICE_CLASS_LIGHTING = 0x00, } EmberAfGenericDeviceClass; +// Enum for GenericDeviceType typedef enum { EMBER_ZCL_GENERIC_DEVICE_TYPE_INCANDESCENT = 0x00, @@ -1113,6 +1176,7 @@ typedef enum EMBER_ZCL_GENERIC_DEVICE_TYPE_UNSPECIFIED = 0xFF, } EmberAfGenericDeviceType; +// Enum for GenericFlowPressureAlarmGroups typedef enum { EMBER_ZCL_GENERIC_FLOW_PRESSURE_ALARM_GROUPS_BURST_DETECT = 0x30, @@ -1125,14 +1189,27 @@ typedef enum EMBER_ZCL_GENERIC_FLOW_PRESSURE_ALARM_GROUPS_PIPE_EMPTY = 0x37, } EmberAfGenericFlowPressureAlarmGroups; -typedef enum -{ - EMBER_ZCL_GP_DEVICE_ID_GP_SIMPLE_GENERICE_TWO_STATE_SWITCH = 0x00, - EMBER_ZCL_GP_DEVICE_ID_GP_ON_OFF_SWITCH = 0x08, - EMBER_ZCL_GP_DEVICE_ID_GP_LEVEL_CONTROL_SWITCH = 0x10, - EMBER_ZCL_GP_DEVICE_ID_GP_INDOOR_ENVIRONMENT_SNESOR = 0x18, +// Enum for GpDeviceId +typedef enum +{ + EMBER_ZCL_GP_DEVICE_ID_GP_SIMPLE_GENERIC_ONE_STATE_SWITCH = 0x00, + EMBER_ZCL_GP_DEVICE_ID_GP_SIMPLE_GENERIC_TWO_STATE_SWITCH = 0x00, + EMBER_ZCL_GP_DEVICE_ID_GP_ON_OFF_SWITCH = 0x08, + EMBER_ZCL_GP_DEVICE_ID_GP_LEVEL_CONTROL_SWITCH = 0x10, + EMBER_ZCL_GP_DEVICE_ID_GP_SIMPLE_SENSOR = 0x18, + EMBER_ZCL_GP_DEVICE_ID_GP_ADVANCED_GENERIC_ONE_STATE_SWITCH = 0x18, + EMBER_ZCL_GP_DEVICE_ID_GP_ADVANCED_GENERIC_TWO_STATE_SWITCH = 0x18, + EMBER_ZCL_GP_DEVICE_ID_GP_COLOR_DIMMER_SWITCH = 0x18, + EMBER_ZCL_GP_DEVICE_ID_GP_LIGHT_SENSOR = 0x18, + EMBER_ZCL_GP_DEVICE_ID_GP_OCCPANCY_SENSOR = 0x18, + EMBER_ZCL_GP_DEVICE_ID_GP_DOOR_LOCK_CONTROLLER = 0x18, + EMBER_ZCL_GP_DEVICE_ID_GP_TEMPERATURE_SENSOR = 0x18, + EMBER_ZCL_GP_DEVICE_ID_GP_PRESSURE_SENSOR = 0x18, + EMBER_ZCL_GP_DEVICE_ID_GP_FLOW_SENSOR = 0x18, + EMBER_ZCL_GP_DEVICE_ID_GP_INDOOR_ENVIRONMENT_SNESOR = 0x18, } EmberAfGpDeviceId; +// Enum for GpGpdf typedef enum { EMBER_ZCL_GP_GPDF_IDENTIFY = 0x00, @@ -1228,6 +1305,7 @@ typedef enum EMBER_ZCL_GP_GPDF_ZCL_TUNNELING = 0xF6, } EmberAfGpGpdf; +// Enum for GpPairingConfigurationAction typedef enum { EMBER_ZCL_GP_PAIRING_CONFIGURATION_ACTION_NO_ACTION = 0x00, @@ -1238,14 +1316,16 @@ typedef enum EMBER_ZCL_GP_PAIRING_CONFIGURATION_ACTION_APPLICATION_DESCRIPTION = 0x05, } EmberAfGpPairingConfigurationAction; +// Enum for GpPairingConfigurationOptionCommunicationMode typedef enum { EMBER_ZCL_GP_PAIRING_CONFIGURATION_OPTION_COMMUNICATION_MODE_UNICAST_FORWARDING = 0x00, - EMBER_ZCL_GP_PAIRING_CONFIGURATION_OPTION_COMMUNICATION_MODE_GROUPCAST_FORWARDING_TO_D_GROUP_I_D = 0x08, + EMBER_ZCL_GP_PAIRING_CONFIGURATION_OPTION_COMMUNICATION_MODE_GROUPCAST_FORWARDING_TO_D_GROUP_ID = 0x08, EMBER_ZCL_GP_PAIRING_CONFIGURATION_OPTION_COMMUNICATION_MODE_GROUPCAST_FORWARDING_TO_PRE_COMMISSIONED = 0x10, EMBER_ZCL_GP_PAIRING_CONFIGURATION_OPTION_COMMUNICATION_MODE_UNICAST_FORWARDING_LIGHTWEIGHT = 0x18, } EmberAfGpPairingConfigurationOptionCommunicationMode; +// Enum for GpPairingOptionsCommunicationMode typedef enum { EMBER_ZCL_GP_PAIRING_OPTIONS_COMMUNICATION_MODE_FULL_UNICAST_FORWARDING = 0x00, @@ -1254,18 +1334,21 @@ typedef enum EMBER_ZCL_GP_PAIRING_OPTIONS_COMMUNICATION_MODE_UNICAST_FORWARDING_BY_PROX_SUPPORT = 0x11, } EmberAfGpPairingOptionsCommunicationMode; +// Enum for GpProxyTableRequestOptionsRequestType typedef enum { EMBER_ZCL_GP_PROXY_TABLE_REQUEST_OPTIONS_REQUEST_TYPE_BY_GPD_ID = 0x00, EMBER_ZCL_GP_PROXY_TABLE_REQUEST_OPTIONS_REQUEST_TYPE_BY_INDEX = 0x01, } EmberAfGpProxyTableRequestOptionsRequestType; +// Enum for GpProxyTableResponseStatus typedef enum { EMBER_ZCL_GP_PROXY_TABLE_RESPONSE_STATUS_SUCCESS = 0x00, EMBER_ZCL_GP_PROXY_TABLE_RESPONSE_STATUS_NOT_FOUND = 0x8B, } EmberAfGpProxyTableResponseStatus; +// Enum for GpSecurityKeyType typedef enum { EMBER_ZCL_GP_SECURITY_KEY_TYPE_NONE = 0x00, @@ -1276,24 +1359,28 @@ typedef enum EMBER_ZCL_GP_SECURITY_KEY_TYPE_DERIVED_INDIVIDUAL_GPD_KEY = 0x07, } EmberAfGpSecurityKeyType; +// Enum for GpSinkTableRequestOptions typedef enum { EMBER_ZCL_GP_SINK_TABLE_REQUEST_OPTIONS_REQUEST_TABLE_ENTRIES_BY_GPD_ID = 0x00, EMBER_ZCL_GP_SINK_TABLE_REQUEST_OPTIONS_REQUEST_TABLE_ENTRIES_BY_INDEX = 0x01, } EmberAfGpSinkTableRequestOptions; +// Enum for GpSinkTableResponseStatus typedef enum { EMBER_ZCL_GP_SINK_TABLE_RESPONSE_STATUS_SUCCESS = 0x00, EMBER_ZCL_GP_SINK_TABLE_RESPONSE_STATUS_NOT_FOUND = 0x8B, } EmberAfGpSinkTableResponseStatus; +// Enum for GpTranslationTableResponseStatus typedef enum { EMBER_ZCL_GP_TRANSLATION_TABLE_RESPONSE_STATUS_SUCCESS = 0x00, EMBER_ZCL_GP_TRANSLATION_TABLE_RESPONSE_STATUS_NOT_FOUND = 0x8B, } EmberAfGpTranslationTableResponseStatus; +// Enum for GpTranslationTableUpdateAction typedef enum { EMBER_ZCL_GP_TRANSLATION_TABLE_UPDATE_ACTION_ADD_TRANSLATION_TABLE_ENTRY = 0x00, @@ -1302,79 +1389,89 @@ typedef enum EMBER_ZCL_GP_TRANSLATION_TABLE_UPDATE_ACTION_RESERVED = 0x18, } EmberAfGpTranslationTableUpdateAction; +// Enum for HeatAndCoolingSpecificAlarmGroups typedef enum { EMBER_ZCL_HEAT_AND_COOLING_SPECIFIC_ALARM_GROUPS_INLET_TEMPERATURE_SENSOR_FAULT = 0x50, EMBER_ZCL_HEAT_AND_COOLING_SPECIFIC_ALARM_GROUPS_OUTLET_TEMPERATURE_SENSOR_FAULT = 0x51, } EmberAfHeatAndCoolingSpecificAlarmGroups; +// Enum for HueDirection typedef enum { - EMBER_ZCL_HUE_DIRECTION_SHORTEST_DISTANCE = 0x00, - EMBER_ZCL_HUE_DIRECTION_LONGEST_DISTANCE = 0x01, - EMBER_ZCL_HUE_DIRECTION_UP = 0x02, - EMBER_ZCL_HUE_DIRECTION_DOWN = 0x03, + EMBER_ZCL_HUE_DIRECTION_SHORTEST_DISTANCE = 0x0, + EMBER_ZCL_HUE_DIRECTION_LONGEST_DISTANCE = 0x1, + EMBER_ZCL_HUE_DIRECTION_UP = 0x2, + EMBER_ZCL_HUE_DIRECTION_DOWN = 0x3, } EmberAfHueDirection; +// Enum for HueMoveMode typedef enum { - EMBER_ZCL_HUE_MOVE_MODE_STOP = 0x00, - EMBER_ZCL_HUE_MOVE_MODE_UP = 0x01, - EMBER_ZCL_HUE_MOVE_MODE_DOWN = 0x03, + EMBER_ZCL_HUE_MOVE_MODE_STOP = 0x0, + EMBER_ZCL_HUE_MOVE_MODE_UP = 0x1, + EMBER_ZCL_HUE_MOVE_MODE_DOWN = 0x3, } EmberAfHueMoveMode; +// Enum for HueStepMode typedef enum { - EMBER_ZCL_HUE_STEP_MODE_UP = 0x01, - EMBER_ZCL_HUE_STEP_MODE_DOWN = 0x03, + EMBER_ZCL_HUE_STEP_MODE_UP = 0x1, + EMBER_ZCL_HUE_STEP_MODE_DOWN = 0x3, } EmberAfHueStepMode; +// Enum for IasAceAlarmStatus typedef enum { - EMBER_ZCL_IAS_ACE_ALARM_STATUS_NO_ALARM = 0x00, - EMBER_ZCL_IAS_ACE_ALARM_STATUS_BURGLAR = 0x01, - EMBER_ZCL_IAS_ACE_ALARM_STATUS_FIRE = 0x02, - EMBER_ZCL_IAS_ACE_ALARM_STATUS_EMERGENCY = 0x03, - EMBER_ZCL_IAS_ACE_ALARM_STATUS_POLICE_PANIC = 0x04, - EMBER_ZCL_IAS_ACE_ALARM_STATUS_FIRE_PANIC = 0x05, - EMBER_ZCL_IAS_ACE_ALARM_STATUS_EMERGENCY_PANIC = 0x06, + EMBER_ZCL_IAS_ACE_ALARM_STATUS_NO_ALARM = 0x0, + EMBER_ZCL_IAS_ACE_ALARM_STATUS_BURGLAR = 0x1, + EMBER_ZCL_IAS_ACE_ALARM_STATUS_FIRE = 0x2, + EMBER_ZCL_IAS_ACE_ALARM_STATUS_EMERGENCY = 0x3, + EMBER_ZCL_IAS_ACE_ALARM_STATUS_POLICE_PANIC = 0x4, + EMBER_ZCL_IAS_ACE_ALARM_STATUS_FIRE_PANIC = 0x5, + EMBER_ZCL_IAS_ACE_ALARM_STATUS_EMERGENCY_PANIC = 0x6, } EmberAfIasAceAlarmStatus; +// Enum for IasAceArmMode typedef enum { - EMBER_ZCL_IAS_ACE_ARM_MODE_DISARM = 0x00, - EMBER_ZCL_IAS_ACE_ARM_MODE_ARM_DAY_HOME_ZONES_ONLY = 0x01, - EMBER_ZCL_IAS_ACE_ARM_MODE_ARM_NIGHT_SLEEP_ZONES_ONLY = 0x02, - EMBER_ZCL_IAS_ACE_ARM_MODE_ARM_ALL_ZONES = 0x03, + EMBER_ZCL_IAS_ACE_ARM_MODE_DISARM = 0x0, + EMBER_ZCL_IAS_ACE_ARM_MODE_ARM_DAY_HOME_ZONES_ONLY = 0x1, + EMBER_ZCL_IAS_ACE_ARM_MODE_ARM_NIGHT_SLEEP_ZONES_ONLY = 0x2, + EMBER_ZCL_IAS_ACE_ARM_MODE_ARM_ALL_ZONES = 0x3, } EmberAfIasAceArmMode; +// Enum for IasAceArmNotification typedef enum { - EMBER_ZCL_IAS_ACE_ARM_NOTIFICATION_ALL_ZONES_DISARMED = 0x00, - EMBER_ZCL_IAS_ACE_ARM_NOTIFICATION_ONLY_DAY_HOME_ZONES_ARMED = 0x01, - EMBER_ZCL_IAS_ACE_ARM_NOTIFICATION_ONLY_NIGHT_SLEEP_ZONES_ARMED = 0x02, - EMBER_ZCL_IAS_ACE_ARM_NOTIFICATION_ALL_ZONES_ARMED = 0x03, + EMBER_ZCL_IAS_ACE_ARM_NOTIFICATION_ALL_ZONES_DISARMED = 0x0, + EMBER_ZCL_IAS_ACE_ARM_NOTIFICATION_ONLY_DAY_HOME_ZONES_ARMED = 0x1, + EMBER_ZCL_IAS_ACE_ARM_NOTIFICATION_ONLY_NIGHT_SLEEP_ZONES_ARMED = 0x2, + EMBER_ZCL_IAS_ACE_ARM_NOTIFICATION_ALL_ZONES_ARMED = 0x3, EMBER_ZCL_IAS_ACE_ARM_NOTIFICATION_INVALID_ARM_DISARM_CODE = 0x04, EMBER_ZCL_IAS_ACE_ARM_NOTIFICATION_NOT_READY_TO_ARM = 0x05, EMBER_ZCL_IAS_ACE_ARM_NOTIFICATION_ALREADY_DISARMED = 0x06, } EmberAfIasAceArmNotification; +// Enum for IasAceAudibleNotification typedef enum { - EMBER_ZCL_IAS_ACE_AUDIBLE_NOTIFICATION_MUTE = 0x00, - EMBER_ZCL_IAS_ACE_AUDIBLE_NOTIFICATION_DEFAULT_SOUND = 0x01, + EMBER_ZCL_IAS_ACE_AUDIBLE_NOTIFICATION_MUTE = 0x0, + EMBER_ZCL_IAS_ACE_AUDIBLE_NOTIFICATION_DEFAULT_SOUND = 0x1, } EmberAfIasAceAudibleNotification; +// Enum for IasAceBypassResult typedef enum { - EMBER_ZCL_IAS_ACE_BYPASS_RESULT_ZONE_BYPASSED = 0x00, - EMBER_ZCL_IAS_ACE_BYPASS_RESULT_ZONE_NOT_BYPASSED = 0x01, - EMBER_ZCL_IAS_ACE_BYPASS_RESULT_NOT_ALLOWED = 0x02, - EMBER_ZCL_IAS_ACE_BYPASS_RESULT_INVALID_ZONE_ID = 0x03, - EMBER_ZCL_IAS_ACE_BYPASS_RESULT_UNKNOWN_ZONE_ID = 0x04, - EMBER_ZCL_IAS_ACE_BYPASS_RESULT_INVALID_ARM_DISARM_CODE = 0x05, + EMBER_ZCL_IAS_ACE_BYPASS_RESULT_ZONE_BYPASSED = 0x0, + EMBER_ZCL_IAS_ACE_BYPASS_RESULT_ZONE_NOT_BYPASSED = 0x1, + EMBER_ZCL_IAS_ACE_BYPASS_RESULT_NOT_ALLOWED = 0x2, + EMBER_ZCL_IAS_ACE_BYPASS_RESULT_INVALID_ZONE_ID = 0x3, + EMBER_ZCL_IAS_ACE_BYPASS_RESULT_UNKNOWN_ZONE_ID = 0x4, + EMBER_ZCL_IAS_ACE_BYPASS_RESULT_INVALID_ARM_DISARM_CODE = 0x5, } EmberAfIasAceBypassResult; +// Enum for IasAcePanelStatus typedef enum { EMBER_ZCL_IAS_ACE_PANEL_STATUS_PANEL_DISARMED = 0x00, @@ -1390,40 +1487,44 @@ typedef enum EMBER_ZCL_IAS_ACE_PANEL_STATUS_ARMING_AWAY = 0x0A, } EmberAfIasAcePanelStatus; +// Enum for IasEnrollResponseCode typedef enum { - EMBER_ZCL_IAS_ENROLL_RESPONSE_CODE_SUCCESS = 0x00, - EMBER_ZCL_IAS_ENROLL_RESPONSE_CODE_NOT_SUPPORTED = 0x01, - EMBER_ZCL_IAS_ENROLL_RESPONSE_CODE_NO_ENROLL_PERMIT = 0x02, - EMBER_ZCL_IAS_ENROLL_RESPONSE_CODE_TOO_MANY_ZONES = 0x03, + EMBER_ZCL_IAS_ENROLL_RESPONSE_CODE_SUCCESS = 0x0, + EMBER_ZCL_IAS_ENROLL_RESPONSE_CODE_NOT_SUPPORTED = 0x1, + EMBER_ZCL_IAS_ENROLL_RESPONSE_CODE_NO_ENROLL_PERMIT = 0x2, + EMBER_ZCL_IAS_ENROLL_RESPONSE_CODE_TOO_MANY_ZONES = 0x3, } EmberAfIasEnrollResponseCode; +// Enum for IasZoneState typedef enum { - EMBER_ZCL_IAS_ZONE_STATE_NOT_ENROLLED = 0x00, - EMBER_ZCL_IAS_ZONE_STATE_ENROLLED = 0x01, + EMBER_ZCL_IAS_ZONE_STATE_NOT_ENROLLED = 0x0, + EMBER_ZCL_IAS_ZONE_STATE_ENROLLED = 0x1, } EmberAfIasZoneState; -typedef enum -{ - EMBER_ZCL_IAS_ZONE_TYPE_STANDARD_CIE = 0x0000, - EMBER_ZCL_IAS_ZONE_TYPE_MOTION_SENSOR = 0x000D, - EMBER_ZCL_IAS_ZONE_TYPE_CONTACT_SWITCH = 0x0015, - EMBER_ZCL_IAS_ZONE_TYPE_FIRE_SENSOR = 0x0028, - EMBER_ZCL_IAS_ZONE_TYPE_WATER_SENSOR = 0x002A, - EMBER_ZCL_IAS_ZONE_TYPE_GAS_SENSOR = 0x002B, - EMBER_ZCL_IAS_ZONE_TYPE_PERSONAL_EMERGENCY_DEVICE = 0x002C, - EMBER_ZCL_IAS_ZONE_TYPE_VIBRATION_MOVEMENT_SENSOR = 0x002D, - EMBER_ZCL_IAS_ZONE_TYPE_REMOTE_CONTROL = 0x010F, - EMBER_ZCL_IAS_ZONE_TYPE_KEY_FOB = 0x0115, - EMBER_ZCL_IAS_ZONE_TYPE_KEYPAD = 0x021D, - EMBER_ZCL_IAS_ZONE_TYPE_STANDARD_WARNING_DEVICE = 0x0225, - EMBER_ZCL_IAS_ZONE_TYPE_GLASS_BREAK_SENSOR = 0x0226, - EMBER_ZCL_IAS_ZONE_TYPE_CARBON_MONOXIDE_SENSOR = 0x0227, +// Enum for IasZoneType +typedef enum +{ + EMBER_ZCL_IAS_ZONE_TYPE_STANDARD_CIE = 0x0, + EMBER_ZCL_IAS_ZONE_TYPE_MOTION_SENSOR = 0xd, + EMBER_ZCL_IAS_ZONE_TYPE_CONTACT_SWITCH = 0x15, + EMBER_ZCL_IAS_ZONE_TYPE_FIRE_SENSOR = 0x28, + EMBER_ZCL_IAS_ZONE_TYPE_WATER_SENSOR = 0x2a, + EMBER_ZCL_IAS_ZONE_TYPE_GAS_SENSOR = 0x2b, + EMBER_ZCL_IAS_ZONE_TYPE_PERSONAL_EMERGENCY_DEVICE = 0x2c, + EMBER_ZCL_IAS_ZONE_TYPE_VIBRATION_MOVEMENT_SENSOR = 0x2d, + EMBER_ZCL_IAS_ZONE_TYPE_REMOTE_CONTROL = 0x10f, + EMBER_ZCL_IAS_ZONE_TYPE_KEY_FOB = 0x115, + EMBER_ZCL_IAS_ZONE_TYPE_KEYPAD = 0x21d, + EMBER_ZCL_IAS_ZONE_TYPE_STANDARD_WARNING_DEVICE = 0x225, + EMBER_ZCL_IAS_ZONE_TYPE_GLASS_BREAK_SENSOR = 0x226, + EMBER_ZCL_IAS_ZONE_TYPE_CARBON_MONOXIDE_SENSOR = 0x227, EMBER_ZCL_IAS_ZONE_TYPE_SECURITY_REPEATER = 0x0229, EMBER_ZCL_IAS_ZONE_TYPE_INVALID_ZONE_TYPE = 0xFFFF, } EmberAfIasZoneType; +// Enum for IdentifyEffectIdentifier typedef enum { EMBER_ZCL_IDENTIFY_EFFECT_IDENTIFIER_BLINK = 0x00, @@ -1434,11 +1535,13 @@ typedef enum EMBER_ZCL_IDENTIFY_EFFECT_IDENTIFIER_STOP_EFFECT = 0xFF, } EmberAfIdentifyEffectIdentifier; +// Enum for IdentifyEffectVariant typedef enum { EMBER_ZCL_IDENTIFY_EFFECT_VARIANT_DEFAULT = 0x00, } EmberAfIdentifyEffectVariant; +// Enum for KeyIndex typedef enum { EMBER_ZCL_KEY_INDEX_DEVELOPMENT = 0x00, @@ -1446,37 +1549,42 @@ typedef enum EMBER_ZCL_KEY_INDEX_CERTIFICATION = 0x0F, } EmberAfKeyIndex; +// Enum for KeypadLockout typedef enum { - EMBER_ZCL_KEYPAD_LOCKOUT_NO_LOCKOUT = 0x00, - EMBER_ZCL_KEYPAD_LOCKOUT_LEVEL_ONE_LOCKOUT = 0x01, - EMBER_ZCL_KEYPAD_LOCKOUT_LEVEL_TWO_LOCKOUT = 0x02, - EMBER_ZCL_KEYPAD_LOCKOUT_LEVEL_THREE_LOCKOUT = 0x03, - EMBER_ZCL_KEYPAD_LOCKOUT_LEVEL_FOUR_LOCKOUT = 0x04, - EMBER_ZCL_KEYPAD_LOCKOUT_LEVELFIVE_LOCKOUT = 0x05, + EMBER_ZCL_KEYPAD_LOCKOUT_NO_LOCKOUT = 0x0, + EMBER_ZCL_KEYPAD_LOCKOUT_LEVEL_ONE_LOCKOUT = 0x1, + EMBER_ZCL_KEYPAD_LOCKOUT_LEVEL_TWO_LOCKOUT = 0x2, + EMBER_ZCL_KEYPAD_LOCKOUT_LEVEL_THREE_LOCKOUT = 0x3, + EMBER_ZCL_KEYPAD_LOCKOUT_LEVEL_FOUR_LOCKOUT = 0x4, + EMBER_ZCL_KEYPAD_LOCKOUT_LEVELFIVE_LOCKOUT = 0x5, } EmberAfKeypadLockout; +// Enum for LevelControlOptions typedef enum { - EMBER_ZCL_LEVEL_CONTROL_OPTIONS_EXECUTE_IF_OFF = 0x01, + EMBER_ZCL_LEVEL_CONTROL_OPTIONS_EXECUTE_IF_OFF = 0x1, EMBER_ZCL_LEVEL_CONTROL_OPTIONS_COUPLE_COLOR_TEMP_TO_LEVEL = 0x02, } EmberAfLevelControlOptions; +// Enum for LevelStatus typedef enum { - EMBER_ZCL_LEVEL_STATUS_ON_TARGET = 0x00, - EMBER_ZCL_LEVEL_STATUS_BELOW_TARGET = 0x01, - EMBER_ZCL_LEVEL_STATUS_ABOVE_TARGET = 0x02, + EMBER_ZCL_LEVEL_STATUS_ON_TARGET = 0x0, + EMBER_ZCL_LEVEL_STATUS_BELOW_TARGET = 0x1, + EMBER_ZCL_LEVEL_STATUS_ABOVE_TARGET = 0x2, } EmberAfLevelStatus; +// Enum for LocationMethod typedef enum { - EMBER_ZCL_LOCATION_METHOD_LATERATION = 0x00, - EMBER_ZCL_LOCATION_METHOD_SIGNPOSTING = 0x01, - EMBER_ZCL_LOCATION_METHOD_RF_FINGERPRINTING = 0x02, - EMBER_ZCL_LOCATION_METHOD_OUT_OF_BAND = 0x03, + EMBER_ZCL_LOCATION_METHOD_LATERATION = 0x0, + EMBER_ZCL_LOCATION_METHOD_SIGNPOSTING = 0x1, + EMBER_ZCL_LOCATION_METHOD_RF_FINGERPRINTING = 0x2, + EMBER_ZCL_LOCATION_METHOD_OUT_OF_BAND = 0x3, } EmberAfLocationMethod; +// Enum for ManufacturerSpecificAlarmGroups typedef enum { EMBER_ZCL_MANUFACTURER_SPECIFIC_ALARM_GROUPS_MANUFACTURER_SPECIFIC_A = 0xB0, @@ -1490,24 +1598,28 @@ typedef enum EMBER_ZCL_MANUFACTURER_SPECIFIC_ALARM_GROUPS_MANUFACTURER_SPECIFIC_I = 0xB8, } EmberAfManufacturerSpecificAlarmGroups; +// Enum for MeasurementLightSensorType typedef enum { - EMBER_ZCL_MEASUREMENT_LIGHT_SENSOR_TYPE_PHOTODIODE = 0x00, - EMBER_ZCL_MEASUREMENT_LIGHT_SENSOR_TYPE_CMOS = 0x01, + EMBER_ZCL_MEASUREMENT_LIGHT_SENSOR_TYPE_PHOTODIODE = 0x0, + EMBER_ZCL_MEASUREMENT_LIGHT_SENSOR_TYPE_CMOS = 0x1, } EmberAfMeasurementLightSensorType; +// Enum for MessagingControlConfirmation typedef enum { EMBER_ZCL_MESSAGING_CONTROL_CONFIRMATION_NOT_REQUIRED = 0x00, EMBER_ZCL_MESSAGING_CONTROL_CONFIRMATION_REQUIRED = 0x80, } EmberAfMessagingControlConfirmation; +// Enum for MessagingControlEnhancedConfirmation typedef enum { EMBER_ZCL_MESSAGING_CONTROL_ENHANCED_CONFIRMATION_NOT_REQUIRED = 0x00, EMBER_ZCL_MESSAGING_CONTROL_ENHANCED_CONFIRMATION_REQUIRED = 0x20, } EmberAfMessagingControlEnhancedConfirmation; +// Enum for MessagingControlImportance typedef enum { EMBER_ZCL_MESSAGING_CONTROL_IMPORTANCE_LOW = 0x00, @@ -1516,6 +1628,7 @@ typedef enum EMBER_ZCL_MESSAGING_CONTROL_IMPORTANCE_CRITICAL = 0x0C, } EmberAfMessagingControlImportance; +// Enum for MessagingControlTransmission typedef enum { EMBER_ZCL_MESSAGING_CONTROL_TRANSMISSION_NORMAL = 0x00, @@ -1524,6 +1637,7 @@ typedef enum EMBER_ZCL_MESSAGING_CONTROL_TRANSMISSION_RESERVED = 0x03, } EmberAfMessagingControlTransmission; +// Enum for MeterDeviceType typedef enum { EMBER_ZCL_METER_DEVICE_TYPE_ELECTRIC_METER = 0x00, @@ -1542,6 +1656,7 @@ typedef enum EMBER_ZCL_METER_DEVICE_TYPE_UNDEFINED_MIRROR_METER = 0xFE, } EmberAfMeterDeviceType; +// Enum for MeterTypeId typedef enum { EMBER_ZCL_METER_TYPE_ID_UTILITY_PRIMARY_METER = 0x0000, @@ -1553,6 +1668,7 @@ typedef enum EMBER_ZCL_METER_TYPE_ID_GENERIC_METER = 0x0110, } EmberAfMeterTypeId; +// Enum for MeteringAlarmCode typedef enum { EMBER_ZCL_METERING_ALARM_CODE_CHECK_METER = 0x00, @@ -1569,8 +1685,8 @@ typedef enum EMBER_ZCL_METERING_ALARM_CODE_NO_STRONG_MAGNETIC_FIELD = 0x0B, EMBER_ZCL_METERING_ALARM_CODE_BATTERY_FAILURE = 0x0C, EMBER_ZCL_METERING_ALARM_CODE_PROGRAM_MEMORY_ERROR = 0x0D, - EMBER_ZCL_METERING_ALARM_CODE_R_A_M_ERROR = 0x0E, - EMBER_ZCL_METERING_ALARM_CODE_N_V_MEMORY_ERROR = 0x0F, + EMBER_ZCL_METERING_ALARM_CODE_RAM_ERROR = 0x0E, + EMBER_ZCL_METERING_ALARM_CODE_NV_MEMORY_ERROR = 0x0F, EMBER_ZCL_METERING_ALARM_CODE_LOW_VOLTAGE_L1 = 0x10, EMBER_ZCL_METERING_ALARM_CODE_HIGH_VOLTAGE_L1 = 0x11, EMBER_ZCL_METERING_ALARM_CODE_LOW_VOLTAGE_L2 = 0x12, @@ -1593,8 +1709,8 @@ typedef enum EMBER_ZCL_METERING_ALARM_CODE_UNDER_VOLTAGE = 0x23, EMBER_ZCL_METERING_ALARM_CODE_OVER_VOLTAGE = 0x24, EMBER_ZCL_METERING_ALARM_CODE_NORMAL_VOLTAGE = 0x25, - EMBER_ZCL_METERING_ALARM_CODE_P_F_BELOW_THRESHOLD = 0x26, - EMBER_ZCL_METERING_ALARM_CODE_P_F_ABOVE_THRESHOLD = 0x27, + EMBER_ZCL_METERING_ALARM_CODE_PF_BELOW_THRESHOLD = 0x26, + EMBER_ZCL_METERING_ALARM_CODE_PF_ABOVE_THRESHOLD = 0x27, EMBER_ZCL_METERING_ALARM_CODE_TERMINAL_COVER_REMOVED = 0x28, EMBER_ZCL_METERING_ALARM_CODE_TERMINAL_COVER_CLOSED = 0x29, EMBER_ZCL_METERING_ALARM_CODE_BURST_DETECT = 0x30, @@ -1662,6 +1778,7 @@ typedef enum EMBER_ZCL_METERING_ALARM_CODE_MANUFACTURER_SPECIFIC_I = 0xB8, } EmberAfMeteringAlarmCode; +// Enum for MeteringBlockEnumerations typedef enum { EMBER_ZCL_METERING_BLOCK_ENUMERATIONS_NO_BLOCKS_IN_USE = 0x00, @@ -1683,6 +1800,7 @@ typedef enum EMBER_ZCL_METERING_BLOCK_ENUMERATIONS_BLOCK16 = 0x10, } EmberAfMeteringBlockEnumerations; +// Enum for MeteringConsumptionStatus typedef enum { EMBER_ZCL_METERING_CONSUMPTION_STATUS_LOW_ENERGY_USAGE = 0x00, @@ -1690,6 +1808,7 @@ typedef enum EMBER_ZCL_METERING_CONSUMPTION_STATUS_HIGH_ENERGY_USAGE = 0x02, } EmberAfMeteringConsumptionStatus; +// Enum for MeteringDeviceType typedef enum { EMBER_ZCL_METERING_DEVICE_TYPE_ELECTRIC_METERING = 0x00, @@ -1727,6 +1846,7 @@ typedef enum EMBER_ZCL_METERING_DEVICE_TYPE_UNDEFINED_MIRROR_METER = 0xFE, } EmberAfMeteringDeviceType; +// Enum for MeteringSupplyStatus typedef enum { EMBER_ZCL_METERING_SUPPLY_STATUS_SUPPLY_OFF = 0x00, @@ -1734,6 +1854,7 @@ typedef enum EMBER_ZCL_METERING_SUPPLY_STATUS_SUPPLY_ON = 0x02, } EmberAfMeteringSupplyStatus; +// Enum for MeteringTemperatureUnitOfMeasure typedef enum { EMBER_ZCL_METERING_TEMPERATURE_UNIT_OF_MEASURE_KELVIN = 0x00, @@ -1744,12 +1865,14 @@ typedef enum EMBER_ZCL_METERING_TEMPERATURE_UNIT_OF_MEASURE_FAHRENHEIT_BCD = 0x82, } EmberAfMeteringTemperatureUnitOfMeasure; +// Enum for MoveMode typedef enum { - EMBER_ZCL_MOVE_MODE_UP = 0x00, - EMBER_ZCL_MOVE_MODE_DOWN = 0x01, + EMBER_ZCL_MOVE_MODE_UP = 0x0, + EMBER_ZCL_MOVE_MODE_DOWN = 0x1, } EmberAfMoveMode; +// Enum for NotificationScheme typedef enum { EMBER_ZCL_NOTIFICATION_SCHEME_NO_NOTIFICATION_SCHEME_DEFINED = 0x00, @@ -1757,14 +1880,16 @@ typedef enum EMBER_ZCL_NOTIFICATION_SCHEME_PREDEFINED_NOTIFICATION_SCHEME_B = 0x02, } EmberAfNotificationScheme; +// Enum for OccupancySensorType typedef enum { - EMBER_ZCL_OCCUPANCY_SENSOR_TYPE_PIR = 0x00, - EMBER_ZCL_OCCUPANCY_SENSOR_TYPE_ULTRASONIC = 0x01, - EMBER_ZCL_OCCUPANCY_SENSOR_TYPE_PIR_AND_ULTRASONIC = 0x02, - EMBER_ZCL_OCCUPANCY_SENSOR_TYPE_PHYSICAL_CONTACT = 0x03, + EMBER_ZCL_OCCUPANCY_SENSOR_TYPE_PIR = 0x0, + EMBER_ZCL_OCCUPANCY_SENSOR_TYPE_ULTRASONIC = 0x1, + EMBER_ZCL_OCCUPANCY_SENSOR_TYPE_PIR_AND_ULTRASONIC = 0x2, + EMBER_ZCL_OCCUPANCY_SENSOR_TYPE_PHYSICAL_CONTACT = 0x3, } EmberAfOccupancySensorType; +// Enum for OnOffDelayedAllOffEffectVariant typedef enum { EMBER_ZCL_ON_OFF_DELAYED_ALL_OFF_EFFECT_VARIANT_FADE_TO_OFF_IN_0P8_SECONDS = 0x00, @@ -1772,23 +1897,27 @@ typedef enum EMBER_ZCL_ON_OFF_DELAYED_ALL_OFF_EFFECT_VARIANT_50_PERCENT_DIM_DOWN_IN_0P8_SECONDS_THEN_FADE_TO_OFF_IN_12_SECONDS = 0x02, } EmberAfOnOffDelayedAllOffEffectVariant; +// Enum for OnOffDyingLightEffectVariant typedef enum { EMBER_ZCL_ON_OFF_DYING_LIGHT_EFFECT_VARIANT_20_PERCENTER_DIM_UP_IN_0P5_SECONDS_THEN_FADE_TO_OFF_IN_1_SECOND = 0x00, } EmberAfOnOffDyingLightEffectVariant; +// Enum for OnOffEffectIdentifier typedef enum { EMBER_ZCL_ON_OFF_EFFECT_IDENTIFIER_DELAYED_ALL_OFF = 0x00, EMBER_ZCL_ON_OFF_EFFECT_IDENTIFIER_DYING_LIGHT = 0x01, } EmberAfOnOffEffectIdentifier; +// Enum for OperatingMode typedef enum { - EMBER_ZCL_OPERATING_MODE_NORMAL = 0x00, - EMBER_ZCL_OPERATING_MODE_CONFIGURE = 0x01, + EMBER_ZCL_OPERATING_MODE_NORMAL = 0x0, + EMBER_ZCL_OPERATING_MODE_CONFIGURE = 0x1, } EmberAfOperatingMode; +// Enum for OriginatingDevice typedef enum { EMBER_ZCL_ORIGINATING_DEVICE_ENERGY_SERVICE_INTERFACE = 0x00, @@ -1796,6 +1925,7 @@ typedef enum EMBER_ZCL_ORIGINATING_DEVICE_IN_HOME_DISPLAY_DEVICE = 0x02, } EmberAfOriginatingDevice; +// Enum for PasswordType typedef enum { EMBER_ZCL_PASSWORD_TYPE_PASSWORD1_SERVICE_MENU_ACCESS = 0x01, @@ -1804,6 +1934,7 @@ typedef enum EMBER_ZCL_PASSWORD_TYPE_PASSWORD4 = 0x04, } EmberAfPasswordType; +// Enum for PaymentDiscountDuration typedef enum { EMBER_ZCL_PAYMENT_DISCOUNT_DURATION_CURRENT_BILLING_PERIOD = 0x00, @@ -1813,14 +1944,16 @@ typedef enum EMBER_ZCL_PAYMENT_DISCOUNT_DURATION_ONE_YEAR = 0x04, } EmberAfPaymentDiscountDuration; +// Enum for PhysicalEnvironment typedef enum { - EMBER_ZCL_PHYSICAL_ENVIRONMENT_UNSPECIFIED = 0x00, - EMBER_ZCL_PHYSICAL_ENVIRONMENT_FIRST_PROFILE_SPECIFIED_VALUE = 0x01, - EMBER_ZCL_PHYSICAL_ENVIRONMENT_LAST_PROFILE_SPECIFIED_VALUE = 0x7F, - EMBER_ZCL_PHYSICAL_ENVIRONMENT_UNKNOWN = 0xFF, + EMBER_ZCL_PHYSICAL_ENVIRONMENT_UNSPECIFIED = 0x0, + EMBER_ZCL_PHYSICAL_ENVIRONMENT_FIRST_PROFILE_SPECIFIED_VALUE = 0x1, + EMBER_ZCL_PHYSICAL_ENVIRONMENT_LAST_PROFILE_SPECIFIED_VALUE = 0x7f, + EMBER_ZCL_PHYSICAL_ENVIRONMENT_UNKNOWN = 0xff, } EmberAfPhysicalEnvironment; +// Enum for PowerProfileState typedef enum { EMBER_ZCL_POWER_PROFILE_STATE_POWER_PROFILE_WAITING_TO_START = 0x01, @@ -1834,18 +1967,20 @@ typedef enum EMBER_ZCL_POWER_PROFILE_STATE_POWER_PROFILE_SCHEDULED = 0x09, } EmberAfPowerProfileState; +// Enum for PowerSource typedef enum { - EMBER_ZCL_POWER_SOURCE_UNKNOWN = 0x00, - EMBER_ZCL_POWER_SOURCE_SINGLE_PHASE_MAINS = 0x01, - EMBER_ZCL_POWER_SOURCE_THREE_PHASE_MAINS = 0x02, - EMBER_ZCL_POWER_SOURCE_BATTERY = 0x03, - EMBER_ZCL_POWER_SOURCE_DC_SOURCE = 0x04, - EMBER_ZCL_POWER_SOURCE_EMERGENCY_MAINS_CONSTANT_POWER = 0x05, - EMBER_ZCL_POWER_SOURCE_EMERGENCY_MAINS_TRANSFER_SWITCH = 0x06, + EMBER_ZCL_POWER_SOURCE_UNKNOWN = 0x0, + EMBER_ZCL_POWER_SOURCE_SINGLE_PHASE_MAINS = 0x1, + EMBER_ZCL_POWER_SOURCE_THREE_PHASE_MAINS = 0x2, + EMBER_ZCL_POWER_SOURCE_BATTERY = 0x3, + EMBER_ZCL_POWER_SOURCE_DC_SOURCE = 0x4, + EMBER_ZCL_POWER_SOURCE_EMERGENCY_MAINS_CONSTANT_POWER = 0x5, + EMBER_ZCL_POWER_SOURCE_EMERGENCY_MAINS_TRANSFER_SWITCH = 0x6, EMBER_ZCL_POWER_SOURCE_BATTERY_BACKUP = 0x80, } EmberAfPowerSource; +// Enum for PrePayGenericAlarmGroup typedef enum { EMBER_ZCL_PRE_PAY_GENERIC_ALARM_GROUP_LOW_CREDIT = 0x00, @@ -1857,6 +1992,7 @@ typedef enum EMBER_ZCL_PRE_PAY_GENERIC_ALARM_GROUP_EVENT_LOG_CLEARED = 0x06, } EmberAfPrePayGenericAlarmGroup; +// Enum for PrepayEventAlarmGroup typedef enum { EMBER_ZCL_PREPAY_EVENT_ALARM_GROUP_PHYSICAL_ATTACK_ON_THE_PREPAY_METER = 0x20, @@ -1881,12 +2017,14 @@ typedef enum EMBER_ZCL_PREPAY_EVENT_ALARM_GROUP_MODE_DEFAULT = 0x43, } EmberAfPrepayEventAlarmGroup; +// Enum for PrepaySnapshotPayloadType typedef enum { EMBER_ZCL_PREPAY_SNAPSHOT_PAYLOAD_TYPE_DEBT_CREDIT_STATUS = 0x00, EMBER_ZCL_PREPAY_SNAPSHOT_PAYLOAD_TYPE_NOT_USED = 0xFF, } EmberAfPrepaySnapshotPayloadType; +// Enum for PrepaySwitchAlarmGroup typedef enum { EMBER_ZCL_PREPAY_SWITCH_ALARM_GROUP_SUPPLY_ON = 0x10, @@ -1898,32 +2036,36 @@ typedef enum EMBER_ZCL_PREPAY_SWITCH_ALARM_GROUP_REMOTE_DISCONNECTED = 0x16, } EmberAfPrepaySwitchAlarmGroup; +// Enum for PriceControlAcknowledgement typedef enum { EMBER_ZCL_PRICE_CONTROL_ACKNOWLEDGEMENT_NOT_REQUIRED = 0x00, EMBER_ZCL_PRICE_CONTROL_ACKNOWLEDGEMENT_REQUIRED = 0x01, } EmberAfPriceControlAcknowledgement; -typedef enum -{ - EMBER_ZCL_PRICE_TIER_NO_TIER_RELATED = 0x00, - EMBER_ZCL_PRICE_TIER_TIER1_PRICE_LABEL = 0x01, - EMBER_ZCL_PRICE_TIER_TIER2_PRICE_LABEL = 0x02, - EMBER_ZCL_PRICE_TIER_TIER3_PRICE_LABEL = 0x03, - EMBER_ZCL_PRICE_TIER_TIER4_PRICE_LABEL = 0x04, - EMBER_ZCL_PRICE_TIER_TIER5_PRICE_LABEL = 0x05, - EMBER_ZCL_PRICE_TIER_TIER6_PRICE_LABEL = 0x06, - EMBER_ZCL_PRICE_TIER_TIER7_PRICE_LABEL = 0x07, - EMBER_ZCL_PRICE_TIER_TIER8_PRICE_LABEL = 0x08, - EMBER_ZCL_PRICE_TIER_TIER9_PRICE_LABEL = 0x09, - EMBER_ZCL_PRICE_TIER_TIER10_PRICE_LABEL = 0x0A, - EMBER_ZCL_PRICE_TIER_TIER11_PRICE_LABEL = 0x0B, - EMBER_ZCL_PRICE_TIER_TIER12_PRICE_LABEL = 0x0C, - EMBER_ZCL_PRICE_TIER_TIER13_PRICE_LABEL = 0x0D, - EMBER_ZCL_PRICE_TIER_TIER14_PRICE_LABEL = 0x0E, - EMBER_ZCL_PRICE_TIER_TIER15_PRICE_LABEL = 0x0F, +// Enum for PriceTier +typedef enum +{ + EMBER_ZCL_PRICE_TIER_NO_TIER_RELATED = 0x00, + EMBER_ZCL_PRICE_TIER_TIER1_PRICE_LABEL = 0x01, + EMBER_ZCL_PRICE_TIER_TIER2_PRICE_LABEL = 0x02, + EMBER_ZCL_PRICE_TIER_TIER3_PRICE_LABEL = 0x03, + EMBER_ZCL_PRICE_TIER_TIER4_PRICE_LABEL = 0x04, + EMBER_ZCL_PRICE_TIER_TIER5_PRICE_LABEL = 0x05, + EMBER_ZCL_PRICE_TIER_TIER6_PRICE_LABEL = 0x06, + EMBER_ZCL_PRICE_TIER_TIER7_PRICE_LABEL = 0x07, + EMBER_ZCL_PRICE_TIER_TIER8_PRICE_LABEL = 0x08, + EMBER_ZCL_PRICE_TIER_TIER9_PRICE_LABEL = 0x09, + EMBER_ZCL_PRICE_TIER_TIER10_PRICE_LABEL = 0x0A, + EMBER_ZCL_PRICE_TIER_TIER11_PRICE_LABEL = 0x0B, + EMBER_ZCL_PRICE_TIER_TIER12_PRICE_LABEL = 0x0C, + EMBER_ZCL_PRICE_TIER_TIER13_PRICE_LABEL = 0x0D, + EMBER_ZCL_PRICE_TIER_TIER14_PRICE_LABEL = 0x0E, + EMBER_ZCL_PRICE_TIER_REFER_TO_EXTENDED_PRICE_TIER_FIELD = 0x0F, + EMBER_ZCL_PRICE_TIER_TIER15_PRICE_LABEL = 0x0F, } EmberAfPriceTier; +// Enum for ProductCode typedef enum { EMBER_ZCL_PRODUCT_CODE_MANUFACTURER_DEFINED = 0x00, @@ -1933,6 +2075,7 @@ typedef enum EMBER_ZCL_PRODUCT_CODE_STOCK_KEEPING_UNIT = 0x04, } EmberAfProductCode; +// Enum for ProductTypeId typedef enum { EMBER_ZCL_PRODUCT_TYPE_ID_WHITE_GOODS = 0x0000, @@ -1947,6 +2090,7 @@ typedef enum EMBER_ZCL_PRODUCT_TYPE_ID_REFRIGERATOR_FREEZER = 0x6601, } EmberAfProductTypeId; +// Enum for ProposedSupplyStatus typedef enum { EMBER_ZCL_PROPOSED_SUPPLY_STATUS_RESERVED = 0x00, @@ -1954,6 +2098,7 @@ typedef enum EMBER_ZCL_PROPOSED_SUPPLY_STATUS_SUPPLY_ON = 0x02, } EmberAfProposedSupplyStatus; +// Enum for PublishCppEventCppAuth typedef enum { EMBER_ZCL_PUBLISH_CPP_EVENT_CPP_AUTH_PENDING = 0x00, @@ -1962,24 +2107,27 @@ typedef enum EMBER_ZCL_PUBLISH_CPP_EVENT_CPP_AUTH_FORCED = 0x03, } EmberAfPublishCppEventCppAuth; +// Enum for PumpControlMode typedef enum { - EMBER_ZCL_PUMP_CONTROL_MODE_CONSTANT_SPEED = 0x00, - EMBER_ZCL_PUMP_CONTROL_MODE_CONSTANT_PRESSURE = 0x01, - EMBER_ZCL_PUMP_CONTROL_MODE_PROPORTIONAL_PRESSURE = 0x02, - EMBER_ZCL_PUMP_CONTROL_MODE_CONSTANT_FLOW = 0x03, - EMBER_ZCL_PUMP_CONTROL_MODE_CONSTANT_TEMPERATURE = 0x05, - EMBER_ZCL_PUMP_CONTROL_MODE_AUTOMATIC = 0x07, + EMBER_ZCL_PUMP_CONTROL_MODE_CONSTANT_SPEED = 0x0, + EMBER_ZCL_PUMP_CONTROL_MODE_CONSTANT_PRESSURE = 0x1, + EMBER_ZCL_PUMP_CONTROL_MODE_PROPORTIONAL_PRESSURE = 0x2, + EMBER_ZCL_PUMP_CONTROL_MODE_CONSTANT_FLOW = 0x3, + EMBER_ZCL_PUMP_CONTROL_MODE_CONSTANT_TEMPERATURE = 0x5, + EMBER_ZCL_PUMP_CONTROL_MODE_AUTOMATIC = 0x7, } EmberAfPumpControlMode; +// Enum for PumpOperationMode typedef enum { - EMBER_ZCL_PUMP_OPERATION_MODE_NORMAL = 0x00, - EMBER_ZCL_PUMP_OPERATION_MODE_MINIMUM = 0x01, - EMBER_ZCL_PUMP_OPERATION_MODE_MAXIMUM = 0x02, - EMBER_ZCL_PUMP_OPERATION_MODE_LOCAL = 0x03, + EMBER_ZCL_PUMP_OPERATION_MODE_NORMAL = 0x0, + EMBER_ZCL_PUMP_OPERATION_MODE_MINIMUM = 0x1, + EMBER_ZCL_PUMP_OPERATION_MODE_MAXIMUM = 0x2, + EMBER_ZCL_PUMP_OPERATION_MODE_LOCAL = 0x3, } EmberAfPumpOperationMode; +// Enum for PushHistoricalMeteringData typedef enum { EMBER_ZCL_PUSH_HISTORICAL_METERING_DATA_DAY = 0x0040, @@ -1988,6 +2136,7 @@ typedef enum EMBER_ZCL_PUSH_HISTORICAL_METERING_DATA_YEAR = 0x01C0, } EmberAfPushHistoricalMeteringData; +// Enum for PushHistoricalPaymentData typedef enum { EMBER_ZCL_PUSH_HISTORICAL_PAYMENT_DATA_DAY = 0x0200, @@ -1996,6 +2145,7 @@ typedef enum EMBER_ZCL_PUSH_HISTORICAL_PAYMENT_DATA_YEAR = 0x0E00, } EmberAfPushHistoricalPaymentData; +// Enum for RegisterTier typedef enum { EMBER_ZCL_REGISTER_TIER_NO_TIER_RELATED = 0x00, @@ -2013,21 +2163,25 @@ typedef enum EMBER_ZCL_REGISTER_TIER_CURRENT_TIER12_SUMMATION_DELIVERED_ATTRIBUTE = 0x0C, EMBER_ZCL_REGISTER_TIER_CURRENT_TIER13_SUMMATION_DELIVERED_ATTRIBUTE = 0x0D, EMBER_ZCL_REGISTER_TIER_CURRENT_TIER14_SUMMATION_DELIVERED_ATTRIBUTE = 0x0E, + EMBER_ZCL_REGISTER_TIER_REFER_TO_EXTENDED_REGISTER_TIER_FIELD = 0x0F, EMBER_ZCL_REGISTER_TIER_CURRENT_TIER15_SUMMATION_DELIVERED_ATTRIBUTE = 0x0F, } EmberAfRegisterTier; +// Enum for RelativeHumidityDisplay typedef enum { - EMBER_ZCL_RELATIVE_HUMIDITY_DISPLAY_NOT_DISPLAYED = 0x00, - EMBER_ZCL_RELATIVE_HUMIDITY_DISPLAY_DISPLAYED = 0x01, + EMBER_ZCL_RELATIVE_HUMIDITY_DISPLAY_NOT_DISPLAYED = 0x0, + EMBER_ZCL_RELATIVE_HUMIDITY_DISPLAY_DISPLAYED = 0x1, } EmberAfRelativeHumidityDisplay; +// Enum for RelativeHumidityMode typedef enum { - EMBER_ZCL_RELATIVE_HUMIDITY_MODE_MEASURE_LOCALLY = 0x00, - EMBER_ZCL_RELATIVE_HUMIDITY_MODE_UPDATED_OVER_THE_NETWORK = 0x01, + EMBER_ZCL_RELATIVE_HUMIDITY_MODE_MEASURE_LOCALLY = 0x0, + EMBER_ZCL_RELATIVE_HUMIDITY_MODE_UPDATED_OVER_THE_NETWORK = 0x1, } EmberAfRelativeHumidityMode; +// Enum for RemoteEnableFlags typedef enum { EMBER_ZCL_REMOTE_ENABLE_FLAGS_DISABLED = 0x00, @@ -2036,6 +2190,7 @@ typedef enum EMBER_ZCL_REMOTE_ENABLE_FLAGS_ENABLED_REMOTE_AND_ENERGY_CONTROL = 0x01, } EmberAfRemoteEnableFlags; +// Enum for RepaymentDebtType typedef enum { EMBER_ZCL_REPAYMENT_DEBT_TYPE_DEBT1 = 0x00, @@ -2044,12 +2199,14 @@ typedef enum EMBER_ZCL_REPAYMENT_DEBT_TYPE_ALL_DEBTS = 0xFF, } EmberAfRepaymentDebtType; +// Enum for ReportingDirection typedef enum { EMBER_ZCL_REPORTING_DIRECTION_REPORTED = 0x00, EMBER_ZCL_REPORTING_DIRECTION_RECEIVED = 0x01, } EmberAfReportingDirection; +// Enum for ResultType typedef enum { EMBER_ZCL_RESULT_TYPE_ACCEPTED = 0x00, @@ -2064,49 +2221,57 @@ typedef enum EMBER_ZCL_RESULT_TYPE_ACCEPTED_SUPPLY_ARMED = 0x12, } EmberAfResultType; +// Enum for SampleType typedef enum { EMBER_ZCL_SAMPLE_TYPE_CONSUMPTION_DELIVERED = 0x00, } EmberAfSampleType; +// Enum for SaturationMoveMode typedef enum { - EMBER_ZCL_SATURATION_MOVE_MODE_STOP = 0x00, - EMBER_ZCL_SATURATION_MOVE_MODE_UP = 0x01, - EMBER_ZCL_SATURATION_MOVE_MODE_DOWN = 0x03, + EMBER_ZCL_SATURATION_MOVE_MODE_STOP = 0x0, + EMBER_ZCL_SATURATION_MOVE_MODE_UP = 0x1, + EMBER_ZCL_SATURATION_MOVE_MODE_DOWN = 0x3, } EmberAfSaturationMoveMode; +// Enum for SaturationStepMode typedef enum { - EMBER_ZCL_SATURATION_STEP_MODE_UP = 0x01, - EMBER_ZCL_SATURATION_STEP_MODE_DOWN = 0x03, + EMBER_ZCL_SATURATION_STEP_MODE_UP = 0x1, + EMBER_ZCL_SATURATION_STEP_MODE_DOWN = 0x3, } EmberAfSaturationStepMode; +// Enum for SensingLightSensorType typedef enum { - EMBER_ZCL_SENSING_LIGHT_SENSOR_TYPE_PHOTODIODE = 0x00, - EMBER_ZCL_SENSING_LIGHT_SENSOR_TYPE_CMOS = 0x01, + EMBER_ZCL_SENSING_LIGHT_SENSOR_TYPE_PHOTODIODE = 0x0, + EMBER_ZCL_SENSING_LIGHT_SENSOR_TYPE_CMOS = 0x1, } EmberAfSensingLightSensorType; +// Enum for SetpointAdjustMode typedef enum { - EMBER_ZCL_SETPOINT_ADJUST_MODE_HEAT_SETPOINT = 0x00, - EMBER_ZCL_SETPOINT_ADJUST_MODE_COOL_SETPOINT = 0x01, - EMBER_ZCL_SETPOINT_ADJUST_MODE_HEAT_AND_COOL_SETPOINTS = 0x02, + EMBER_ZCL_SETPOINT_ADJUST_MODE_HEAT_SETPOINT = 0x0, + EMBER_ZCL_SETPOINT_ADJUST_MODE_COOL_SETPOINT = 0x1, + EMBER_ZCL_SETPOINT_ADJUST_MODE_HEAT_AND_COOL_SETPOINTS = 0x2, } EmberAfSetpointAdjustMode; +// Enum for SignatureType typedef enum { EMBER_ZCL_SIGNATURE_TYPE_RESERVED = 0x00, EMBER_ZCL_SIGNATURE_TYPE_ECDSA = 0x01, } EmberAfSignatureType; +// Enum for SnapshotConfirmation typedef enum { EMBER_ZCL_SNAPSHOT_CONFIRMATION_ACCEPTED = 0x00, EMBER_ZCL_SNAPSHOT_CONFIRMATION_SNAPSHOT_CAUSE_NOT_SUPPORTED = 0x01, } EmberAfSnapshotConfirmation; +// Enum for SnapshotPayloadType typedef enum { EMBER_ZCL_SNAPSHOT_PAYLOAD_TYPE_TOU_INFORMATION_SET_DELIVERED_REGISTERS = 0x00, @@ -2120,6 +2285,7 @@ typedef enum EMBER_ZCL_SNAPSHOT_PAYLOAD_TYPE_DATA_UNAVAILABLE = 0x80, } EmberAfSnapshotPayloadType; +// Enum for SnapshotScheduleConfirmation typedef enum { EMBER_ZCL_SNAPSHOT_SCHEDULE_CONFIRMATION_ACCEPTED = 0x00, @@ -2130,25 +2296,30 @@ typedef enum EMBER_ZCL_SNAPSHOT_SCHEDULE_CONFIRMATION_INSUFFICIENT_SPACE_FOR_SNAPSHOT_SCHEDULE = 0x05, } EmberAfSnapshotScheduleConfirmation; +// Enum for SquawkLevel typedef enum { - EMBER_ZCL_SQUAWK_LEVEL_LOW_LEVEL = 0x00, - EMBER_ZCL_SQUAWK_LEVEL_MEDIUM_LEVEL = 0x01, - EMBER_ZCL_SQUAWK_LEVEL_VERY_HIGH_LEVEL = 0x02, + EMBER_ZCL_SQUAWK_LEVEL_LOW_LEVEL = 0x0, + EMBER_ZCL_SQUAWK_LEVEL_MEDIUM_LEVEL = 0x1, + EMBER_ZCL_SQUAWK_LEVEL_HIGH_LEVEL = 0x2, + EMBER_ZCL_SQUAWK_LEVEL_VERY_HIGH_LEVEL = 0x2, } EmberAfSquawkLevel; +// Enum for SquawkMode typedef enum { - EMBER_ZCL_SQUAWK_MODE_SYSTEM_IS_ARMED = 0x00, - EMBER_ZCL_SQUAWK_MODE_SYSTEM_IS_DISARMED = 0x01, + EMBER_ZCL_SQUAWK_MODE_SYSTEM_IS_ARMED = 0x0, + EMBER_ZCL_SQUAWK_MODE_SYSTEM_IS_DISARMED = 0x1, } EmberAfSquawkMode; +// Enum for SquawkStobe typedef enum { - EMBER_ZCL_SQUAWK_STOBE_NO_STROBE = 0x00, - EMBER_ZCL_SQUAWK_STOBE_USE_STROBE = 0x01, + EMBER_ZCL_SQUAWK_STOBE_NO_STROBE = 0x0, + EMBER_ZCL_SQUAWK_STOBE_USE_STROBE = 0x1, } EmberAfSquawkStobe; +// Enum for StartOfWeek typedef enum { EMBER_ZCL_START_OF_WEEK_SUNDAY = 0x00, @@ -2160,6 +2331,7 @@ typedef enum EMBER_ZCL_START_OF_WEEK_SATURDAY = 0x06, } EmberAfStartOfWeek; +// Enum for StartUpOnOffValue typedef enum { EMBER_ZCL_START_UP_ON_OFF_VALUE_SET_TO_OFF = 0x00, @@ -2168,55 +2340,52 @@ typedef enum EMBER_ZCL_START_UP_ON_OFF_VALUE_SET_TO_PREVIOUS = 0xFF, } EmberAfStartUpOnOffValue; -typedef enum -{ - EMBER_ZCL_STATUS_SUCCESS = 0x00, - EMBER_ZCL_STATUS_FAILURE = 0x01, - EMBER_ZCL_STATUS_REQUEST_DENIED = 0x70, - EMBER_ZCL_STATUS_MULTIPLE_REQUEST_NOT_ALLOWED = 0x71, - EMBER_ZCL_STATUS_INDICATION_REDIRECTION_TO_AP = 0x72, - EMBER_ZCL_STATUS_PREFERENCE_DENIED = 0x73, - EMBER_ZCL_STATUS_PREFERENCE_IGNORED = 0x74, - EMBER_ZCL_STATUS_NOT_AUTHORIZED = 0x7E, - EMBER_ZCL_STATUS_RESERVED_FIELD_NOT_ZERO = 0x7F, - EMBER_ZCL_STATUS_MALFORMED_COMMAND = 0x80, - EMBER_ZCL_STATUS_UNSUP_CLUSTER_COMMAND = 0x81, - EMBER_ZCL_STATUS_UNSUP_GENERAL_COMMAND = 0x82, - EMBER_ZCL_STATUS_UNSUP_MANUF_CLUSTER_COMMAND = 0x83, - EMBER_ZCL_STATUS_UNSUP_MANUF_GENERAL_COMMAND = 0x84, - EMBER_ZCL_STATUS_INVALID_FIELD = 0x85, - EMBER_ZCL_STATUS_UNSUPPORTED_ATTRIBUTE = 0x86, - EMBER_ZCL_STATUS_INVALID_VALUE = 0x87, - EMBER_ZCL_STATUS_READ_ONLY = 0x88, - EMBER_ZCL_STATUS_INSUFFICIENT_SPACE = 0x89, - EMBER_ZCL_STATUS_DUPLICATE_EXISTS = 0x8A, - EMBER_ZCL_STATUS_NOT_FOUND = 0x8B, - EMBER_ZCL_STATUS_UNREPORTABLE_ATTRIBUTE = 0x8C, - EMBER_ZCL_STATUS_INVALID_DATA_TYPE = 0x8D, - EMBER_ZCL_STATUS_INVALID_SELECTOR = 0x8E, - EMBER_ZCL_STATUS_WRITE_ONLY = 0x8F, - EMBER_ZCL_STATUS_INCONSISTENT_STARTUP_STATE = 0x90, - EMBER_ZCL_STATUS_DEFINED_OUT_OF_BAND = 0x91, - EMBER_ZCL_STATUS_INCONSISTENT = 0x92, - EMBER_ZCL_STATUS_ACTION_DENIED = 0x93, - EMBER_ZCL_STATUS_TIMEOUT = 0x94, - EMBER_ZCL_STATUS_ABORT = 0x95, - EMBER_ZCL_STATUS_INVALID_IMAGE = 0x96, - EMBER_ZCL_STATUS_WAIT_FOR_DATA = 0x97, - EMBER_ZCL_STATUS_NO_IMAGE_AVAILABLE = 0x98, - EMBER_ZCL_STATUS_REQUIRE_MORE_IMAGE = 0x99, - EMBER_ZCL_STATUS_HARDWARE_FAILURE = 0xC0, - EMBER_ZCL_STATUS_SOFTWARE_FAILURE = 0xC1, - EMBER_ZCL_STATUS_CALIBRATION_ERROR = 0xC2, - EMBER_ZCL_STATUS_UNSUPPORTED_CLUSTER = 0xC3, +// Enum for Status +typedef enum +{ + EMBER_ZCL_STATUS_SUCCESS = 0x00, + EMBER_ZCL_STATUS_FAILURE = 0x01, + EMBER_ZCL_STATUS_NOT_AUTHORIZED = 0x7E, + EMBER_ZCL_STATUS_MALFORMED_COMMAND = 0x80, + EMBER_ZCL_STATUS_UNSUP_COMMAND = 0x81, + EMBER_ZCL_STATUS_UNSUP_GENERAL_COMMAND = 0x82, + EMBER_ZCL_STATUS_UNSUP_MANUF_CLUSTER_COMMAND = 0x83, + EMBER_ZCL_STATUS_UNSUP_MANUF_GENERAL_COMMAND = 0x84, + EMBER_ZCL_STATUS_INVALID_FIELD = 0x85, + EMBER_ZCL_STATUS_UNSUPPORTED_ATTRIBUTE = 0x86, + EMBER_ZCL_STATUS_INVALID_VALUE = 0x87, + EMBER_ZCL_STATUS_READ_ONLY = 0x88, + EMBER_ZCL_STATUS_INSUFFICIENT_SPACE = 0x89, + EMBER_ZCL_STATUS_DUPLICATE_EXISTS = 0x8A, + EMBER_ZCL_STATUS_NOT_FOUND = 0x8B, + EMBER_ZCL_STATUS_UNREPORTABLE_ATTRIBUTE = 0x8C, + EMBER_ZCL_STATUS_INVALID_DATA_TYPE = 0x8D, + EMBER_ZCL_STATUS_INVALID_SELECTOR = 0x8E, + EMBER_ZCL_STATUS_WRITE_ONLY = 0x8F, + EMBER_ZCL_STATUS_INCONSISTENT_STARTUP_STATE = 0x90, + EMBER_ZCL_STATUS_DEFINED_OUT_OF_BAND = 0x91, + EMBER_ZCL_STATUS_ACTION_DENIED = 0x93, + EMBER_ZCL_STATUS_TIMEOUT = 0x94, + EMBER_ZCL_STATUS_ABORT = 0x95, + EMBER_ZCL_STATUS_INVALID_IMAGE = 0x96, + EMBER_ZCL_STATUS_WAIT_FOR_DATA = 0x97, + EMBER_ZCL_STATUS_NO_IMAGE_AVAILABLE = 0x98, + EMBER_ZCL_STATUS_REQUIRE_MORE_IMAGE = 0x99, + EMBER_ZCL_STATUS_NOTIFICATION_PENDING = 0x9A, + EMBER_ZCL_STATUS_HARDWARE_FAILURE = 0xC0, + EMBER_ZCL_STATUS_SOFTWARE_FAILURE = 0xC1, + EMBER_ZCL_STATUS_UNSUPPORTED_CLUSTER = 0xC3, + EMBER_ZCL_STATUS_LIMIT_REACHED = 0xC4, } EmberAfStatus; +// Enum for StepMode typedef enum { - EMBER_ZCL_STEP_MODE_UP = 0x00, - EMBER_ZCL_STEP_MODE_DOWN = 0x01, + EMBER_ZCL_STEP_MODE_UP = 0x0, + EMBER_ZCL_STEP_MODE_DOWN = 0x1, } EmberAfStepMode; +// Enum for SupplyStatus typedef enum { EMBER_ZCL_SUPPLY_STATUS_SUPPLY_OFF = 0x00, @@ -2225,13 +2394,15 @@ typedef enum EMBER_ZCL_SUPPLY_STATUS_SUPPLY_UNCHANGED = 0x03, } EmberAfSupplyStatus; +// Enum for SwitchActions typedef enum { - EMBER_ZCL_SWITCH_ACTIONS_ON = 0x00, - EMBER_ZCL_SWITCH_ACTIONS_OFF = 0x01, - EMBER_ZCL_SWITCH_ACTIONS_TOGGLE = 0x02, + EMBER_ZCL_SWITCH_ACTIONS_ON = 0x0, + EMBER_ZCL_SWITCH_ACTIONS_OFF = 0x1, + EMBER_ZCL_SWITCH_ACTIONS_TOGGLE = 0x2, } EmberAfSwitchActions; +// Enum for SwitchType typedef enum { EMBER_ZCL_SWITCH_TYPE_TOGGLE = 0x00, @@ -2239,6 +2410,7 @@ typedef enum EMBER_ZCL_SWITCH_TYPE_MULTI_FUNCTION = 0x02, } EmberAfSwitchType; +// Enum for TariffChargingScheme typedef enum { EMBER_ZCL_TARIFF_CHARGING_SCHEME_TOU_TARIFF = 0x00, @@ -2247,6 +2419,7 @@ typedef enum EMBER_ZCL_TARIFF_CHARGING_SCHEME_BLOCK_TOU_TARIFF_WITH_INDIVIDUAL_THRESHOLDS_PER_TIER = 0x30, } EmberAfTariffChargingScheme; +// Enum for TariffResolutionPeriod typedef enum { EMBER_ZCL_TARIFF_RESOLUTION_PERIOD_NOT_DEFINED = 0x00, @@ -2254,6 +2427,7 @@ typedef enum EMBER_ZCL_TARIFF_RESOLUTION_PERIOD_ONE_DAY = 0x02, } EmberAfTariffResolutionPeriod; +// Enum for TariffType typedef enum { EMBER_ZCL_TARIFF_TYPE_DELIVERED_TARIFF = 0x00, @@ -2261,28 +2435,32 @@ typedef enum EMBER_ZCL_TARIFF_TYPE_DELIVERED_AND_RECEIVED_TARIFF = 0x02, } EmberAfTariffType; +// Enum for TemperatureDisplayMode typedef enum { - EMBER_ZCL_TEMPERATURE_DISPLAY_MODE_CELSIUS = 0x00, - EMBER_ZCL_TEMPERATURE_DISPLAY_MODE_FAHRENHEIT = 0x01, + EMBER_ZCL_TEMPERATURE_DISPLAY_MODE_CELSIUS = 0x0, + EMBER_ZCL_TEMPERATURE_DISPLAY_MODE_FAHRENHEIT = 0x1, } EmberAfTemperatureDisplayMode; +// Enum for TemperatureSetpointHold typedef enum { EMBER_ZCL_TEMPERATURE_SETPOINT_HOLD_SETPOINT_HOLD_OFF = 0x00, EMBER_ZCL_TEMPERATURE_SETPOINT_HOLD_SETPOINT_HOLD_ON = 0x01, } EmberAfTemperatureSetpointHold; +// Enum for ThermostatControlSequence typedef enum { - EMBER_ZCL_THERMOSTAT_CONTROL_SEQUENCE_COOLING_ONLY = 0x00, - EMBER_ZCL_THERMOSTAT_CONTROL_SEQUENCE_COOLING_WITH_REHEAT = 0x01, - EMBER_ZCL_THERMOSTAT_CONTROL_SEQUENCE_HEATING_ONLY = 0x02, - EMBER_ZCL_THERMOSTAT_CONTROL_SEQUENCE_HEATING_WITH_REHEAT = 0x03, - EMBER_ZCL_THERMOSTAT_CONTROL_SEQUENCE_COOLING_AND_HEATING = 0x04, - EMBER_ZCL_THERMOSTAT_CONTROL_SEQUENCE_COOLING_AND_HEATING_WITH_REHEAT = 0x05, + EMBER_ZCL_THERMOSTAT_CONTROL_SEQUENCE_COOLING_ONLY = 0x0, + EMBER_ZCL_THERMOSTAT_CONTROL_SEQUENCE_COOLING_WITH_REHEAT = 0x1, + EMBER_ZCL_THERMOSTAT_CONTROL_SEQUENCE_HEATING_ONLY = 0x2, + EMBER_ZCL_THERMOSTAT_CONTROL_SEQUENCE_HEATING_WITH_REHEAT = 0x3, + EMBER_ZCL_THERMOSTAT_CONTROL_SEQUENCE_COOLING_AND_HEATING = 0x4, + EMBER_ZCL_THERMOSTAT_CONTROL_SEQUENCE_COOLING_AND_HEATING_WITH_REHEAT = 0x5, } EmberAfThermostatControlSequence; +// Enum for ThermostatRunningMode typedef enum { EMBER_ZCL_THERMOSTAT_RUNNING_MODE_OFF = 0x00, @@ -2290,17 +2468,19 @@ typedef enum EMBER_ZCL_THERMOSTAT_RUNNING_MODE_HEAT = 0x04, } EmberAfThermostatRunningMode; +// Enum for ThermostatSystemMode typedef enum { - EMBER_ZCL_THERMOSTAT_SYSTEM_MODE_OFF = 0x00, - EMBER_ZCL_THERMOSTAT_SYSTEM_MODE_AUTO = 0x01, - EMBER_ZCL_THERMOSTAT_SYSTEM_MODE_COOL = 0x03, - EMBER_ZCL_THERMOSTAT_SYSTEM_MODE_HEAT = 0x04, - EMBER_ZCL_THERMOSTAT_SYSTEM_MODE_EMERGENCY_HEATING = 0x05, - EMBER_ZCL_THERMOSTAT_SYSTEM_MODE_PRECOOLING = 0x06, - EMBER_ZCL_THERMOSTAT_SYSTEM_MODE_FAN_ONLY = 0x07, + EMBER_ZCL_THERMOSTAT_SYSTEM_MODE_OFF = 0x0, + EMBER_ZCL_THERMOSTAT_SYSTEM_MODE_AUTO = 0x1, + EMBER_ZCL_THERMOSTAT_SYSTEM_MODE_COOL = 0x3, + EMBER_ZCL_THERMOSTAT_SYSTEM_MODE_HEAT = 0x4, + EMBER_ZCL_THERMOSTAT_SYSTEM_MODE_EMERGENCY_HEATING = 0x5, + EMBER_ZCL_THERMOSTAT_SYSTEM_MODE_PRECOOLING = 0x6, + EMBER_ZCL_THERMOSTAT_SYSTEM_MODE_FAN_ONLY = 0x7, } EmberAfThermostatSystemMode; +// Enum for TierBlockMode typedef enum { EMBER_ZCL_TIER_BLOCK_MODE_ACTIVE_BLOCK = 0x00, @@ -2309,12 +2489,14 @@ typedef enum EMBER_ZCL_TIER_BLOCK_MODE_NOT_USED = 0xFF, } EmberAfTierBlockMode; +// Enum for TimeEncoding typedef enum { EMBER_ZCL_TIME_ENCODING_RELATIVE = 0x00, EMBER_ZCL_TIME_ENCODING_ABSOLUTE = 0x40, } EmberAfTimeEncoding; +// Enum for TunnelingProtocolId typedef enum { EMBER_ZCL_TUNNELING_PROTOCOL_ID_DLMS_COSEM = 0x00, @@ -2324,9 +2506,12 @@ typedef enum EMBER_ZCL_TUNNELING_PROTOCOL_ID_SML = 0x04, EMBER_ZCL_TUNNELING_PROTOCOL_ID_CLIMATE_TALK = 0x05, EMBER_ZCL_TUNNELING_PROTOCOL_ID_GB_HRGP = 0x06, + EMBER_ZCL_TUNNELING_PROTOCOL_ID_IP_V4 = 0x07, + EMBER_ZCL_TUNNELING_PROTOCOL_ID_IP_V6 = 0x08, EMBER_ZCL_TUNNELING_PROTOCOL_ID_TEST = 0xC7, } EmberAfTunnelingProtocolId; +// Enum for TunnelingTransferDataStatus typedef enum { EMBER_ZCL_TUNNELING_TRANSFER_DATA_STATUS_NO_SUCH_TUNNEL = 0x00, @@ -2334,6 +2519,7 @@ typedef enum EMBER_ZCL_TUNNELING_TRANSFER_DATA_STATUS_DATA_OVERFLOW = 0x02, } EmberAfTunnelingTransferDataStatus; +// Enum for TunnelingTunnelStatus typedef enum { EMBER_ZCL_TUNNELING_TUNNEL_STATUS_SUCCESS = 0x00, @@ -2343,12 +2529,14 @@ typedef enum EMBER_ZCL_TUNNELING_TUNNEL_STATUS_FLOW_CONTROL_NOT_SUPPORTED = 0x04, } EmberAfTunnelingTunnelStatus; +// Enum for WanStatus typedef enum { EMBER_ZCL_WAN_STATUS_CONNECTION_TO_WAN_IS_NOT_AVAILABLE = 0x00, EMBER_ZCL_WAN_STATUS_CONNECTION_TO_WAN_IS_AVAILABLE = 0x01, } EmberAfWanStatus; +// Enum for WarningEvent typedef enum { EMBER_ZCL_WARNING_EVENT_WARNING1_OVERALL_POWER_ABOVE_AVAILABLE_POWER_LEVEL = 0x00, @@ -2358,23 +2546,26 @@ typedef enum EMBER_ZCL_WARNING_EVENT_WARNING5_OVERALL_POWER_WILL_BE_POTENTIALLY_ABOVE_AVAILABLE_POWER_LEVEL_IF_THE_APPLIANCE_STARTS = 0x04, } EmberAfWarningEvent; +// Enum for WarningMode typedef enum { - EMBER_ZCL_WARNING_MODE_STOP = 0x00, - EMBER_ZCL_WARNING_MODE_BURGLAR = 0x01, - EMBER_ZCL_WARNING_MODE_FIRE = 0x02, - EMBER_ZCL_WARNING_MODE_EMERGENCY = 0x03, - EMBER_ZCL_WARNING_MODE_POLICE_PANIC = 0x04, - EMBER_ZCL_WARNING_MODE_FIRE_PANIC = 0x05, - EMBER_ZCL_WARNING_MODE_EMERGENCY_PANIC = 0x06, + EMBER_ZCL_WARNING_MODE_STOP = 0x0, + EMBER_ZCL_WARNING_MODE_BURGLAR = 0x1, + EMBER_ZCL_WARNING_MODE_FIRE = 0x2, + EMBER_ZCL_WARNING_MODE_EMERGENCY = 0x3, + EMBER_ZCL_WARNING_MODE_POLICE_PANIC = 0x4, + EMBER_ZCL_WARNING_MODE_FIRE_PANIC = 0x5, + EMBER_ZCL_WARNING_MODE_EMERGENCY_PANIC = 0x6, } EmberAfWarningMode; +// Enum for WarningStobe typedef enum { - EMBER_ZCL_WARNING_STOBE_NO_STROBE = 0x00, - EMBER_ZCL_WARNING_STOBE_USE_STROBE = 0x01, + EMBER_ZCL_WARNING_STOBE_NO_STROBE = 0x0, + EMBER_ZCL_WARNING_STOBE_USE_STROBE = 0x1, } EmberAfWarningStobe; +// Enum for WwahIasZoneEnrollmentMode typedef enum { EMBER_ZCL_WWAH_IAS_ZONE_ENROLLMENT_MODE_TRIP_TO_PAIR = 0x00, @@ -2382,6 +2573,7 @@ typedef enum EMBER_ZCL_WWAH_IAS_ZONE_ENROLLMENT_MODE_REQUEST = 0x02, } EmberAfWwahIasZoneEnrollmentMode; +// Enum for WwahPowerNotificationReason typedef enum { EMBER_ZCL_WWAH_POWER_NOTIFICATION_REASON_UNKNOWN = 0x00, @@ -2398,6 +2590,7 @@ typedef enum EMBER_ZCL_WWAH_POWER_NOTIFICATION_REASON_BOOTLOAD_FAILURE = 0x0B, } EmberAfWwahPowerNotificationReason; +// Enum for ZigbeeInformationLogicalType typedef enum { EMBER_ZCL_ZIGBEE_INFORMATION_LOGICAL_TYPE_COORDINATOR = 0x00, @@ -2405,308 +2598,35 @@ typedef enum EMBER_ZCL_ZIGBEE_INFORMATION_LOGICAL_TYPE_END_DEVICE = 0x02, } EmberAfZigbeeInformationLogicalType; +// Enum for ZllStatus typedef enum { EMBER_ZCL_ZLL_STATUS_SUCCESS = 0x00, EMBER_ZCL_ZLL_STATUS_FAILURE = 0x01, } EmberAfZllStatus; -#define EMBER_AF_SHADE_CLOSURE_STATUS_OPERATIONAL (0x01) -#define EMBER_AF_SHADE_CLOSURE_STATUS_ADJUSTING (0x02) -#define EMBER_AF_SHADE_CLOSURE_STATUS_ADJUSTING_OFFSET (1) -#define EMBER_AF_SHADE_CLOSURE_STATUS_OPENING (0x04) -#define EMBER_AF_SHADE_CLOSURE_STATUS_OPENING_OFFSET (2) -#define EMBER_AF_SHADE_CLOSURE_STATUS_MOTOR_OPENING (0x08) -#define EMBER_AF_SHADE_CLOSURE_STATUS_MOTOR_OPENING_OFFSET (3) -#define EMBER_AF_ALARM_MASK_GENERAL_HW_FAULT (0x01) -#define EMBER_AF_ALARM_MASK_GENERAL_SW_FAULT (0x02) +#define EMBER_AF_ALARM_MASK_GENERAL_HW_FAULT (0x1) +#define EMBER_AF_ALARM_MASK_GENERAL_HW_FAULT_OFFSET (0) +#define EMBER_AF_ALARM_MASK_GENERAL_SW_FAULT (0x2) #define EMBER_AF_ALARM_MASK_GENERAL_SW_FAULT_OFFSET (1) -#define EMBER_AF_RESTART_OPTIONS_START_MODE1 (0x01) -#define EMBER_AF_RESTART_OPTIONS_STARTUP_MODE2 (0x02) -#define EMBER_AF_RESTART_OPTIONS_STARTUP_MODE2_OFFSET (1) -#define EMBER_AF_RESTART_OPTIONS_STARTUP_MODE3 (0x04) -#define EMBER_AF_RESTART_OPTIONS_STARTUP_MODE3_OFFSET (2) -#define EMBER_AF_RESTART_OPTIONS_IMMEDIATE (0x08) -#define EMBER_AF_RESTART_OPTIONS_IMMEDIATE_OFFSET (3) -#define EMBER_AF_RESET_OPTIONS_RESET_CURRENT (0x01) -#define EMBER_AF_RESET_OPTIONS_RESET_ALL (0x02) -#define EMBER_AF_RESET_OPTIONS_RESET_ALL_OFFSET (1) -#define EMBER_AF_RESET_OPTIONS_ERASE_INDEX (0x04) -#define EMBER_AF_RESET_OPTIONS_ERASE_INDEX_OFFSET (2) -#define EMBER_AF_MAINS_ALARM_MASK_VOLTAGE_TOO_LOW (0x01) -#define EMBER_AF_MAINS_ALARM_MASK_VOLTAGE_TOO_HIGH (0x02) -#define EMBER_AF_MAINS_ALARM_MASK_VOLTAGE_TOO_HIGH_OFFSET (1) -#define EMBER_AF_MAINS_ALARM_MASK_MAINS_POWER_SUPPLY_LOST (0x04) -#define EMBER_AF_MAINS_ALARM_MASK_MAINS_POWER_SUPPLY_LOST_OFFSET (2) -#define EMBER_AF_BATTERY_ALARM_MASK_VOLTAGE_TOO_LOW (0x01) -#define EMBER_AF_DEVICE_TEMP_ALARM_MASK_TOO_LOW (0x01) -#define EMBER_AF_DEVICE_TEMP_ALARM_MASK_TOO_HIGH (0x02) -#define EMBER_AF_DEVICE_TEMP_ALARM_MASK_TOO_HIGH_OFFSET (1) -#define EMBER_AF_TIME_STATUS_MASK_MASTER_CLOCK (0x01) -#define EMBER_AF_TIME_STATUS_MASK_SYNCHRONIZED (0x02) -#define EMBER_AF_TIME_STATUS_MASK_SYNCHRONIZED_OFFSET (1) -#define EMBER_AF_TIME_STATUS_MASK_MASTER_ZONE_DST (0x04) -#define EMBER_AF_TIME_STATUS_MASK_MASTER_ZONE_DST_OFFSET (2) -#define EMBER_AF_TIME_STATUS_MASK_SUPERSEDING (0x08) -#define EMBER_AF_TIME_STATUS_MASK_SUPERSEDING_OFFSET (3) -#define EMBER_AF_LOCATION_TYPE_ABSOLUTE (0x01) -#define EMBER_AF_LOCATION_TYPE2_D (0x02) -#define EMBER_AF_LOCATION_TYPE2_D_OFFSET (1) -#define EMBER_AF_LOCATION_TYPE_COORDINATE_SYSTEM (0x0C) -#define EMBER_AF_LOCATION_TYPE_COORDINATE_SYSTEM_OFFSET (2) -#define EMBER_AF_GET_LOCATION_DATA_FLAGS_ABSOLUTE_ONLY (0x01) -#define EMBER_AF_GET_LOCATION_DATA_FLAGS_RECALCULATE (0x02) -#define EMBER_AF_GET_LOCATION_DATA_FLAGS_RECALCULATE_OFFSET (1) -#define EMBER_AF_GET_LOCATION_DATA_FLAGS_BROADCAST (0x04) -#define EMBER_AF_GET_LOCATION_DATA_FLAGS_BROADCAST_OFFSET (2) -#define EMBER_AF_GET_LOCATION_DATA_FLAGS_BROADCAST_RESPONSE (0x08) -#define EMBER_AF_GET_LOCATION_DATA_FLAGS_BROADCAST_RESPONSE_OFFSET (3) -#define EMBER_AF_GET_LOCATION_DATA_FLAGS_COMPACT_RESPONSE (0x10) -#define EMBER_AF_GET_LOCATION_DATA_FLAGS_COMPACT_RESPONSE_OFFSET (4) -#define EMBER_AF_PUMP_STATUS_DEVICE_FAULT (0x0001) -#define EMBER_AF_PUMP_STATUS_SUPPLYFAULT (0x0002) -#define EMBER_AF_PUMP_STATUS_SUPPLYFAULT_OFFSET (1) -#define EMBER_AF_PUMP_STATUS_SPEED_LOW (0x0004) -#define EMBER_AF_PUMP_STATUS_SPEED_LOW_OFFSET (2) -#define EMBER_AF_PUMP_STATUS_SPEED_HIGH (0x0008) -#define EMBER_AF_PUMP_STATUS_SPEED_HIGH_OFFSET (3) -#define EMBER_AF_PUMP_STATUS_LOCAL_OVERRIDE (0x0010) -#define EMBER_AF_PUMP_STATUS_LOCAL_OVERRIDE_OFFSET (4) -#define EMBER_AF_PUMP_STATUS_RUNNING (0x0020) -#define EMBER_AF_PUMP_STATUS_RUNNING_OFFSET (5) -#define EMBER_AF_PUMP_STATUS_REMOTE_PRESSURE (0x0040) -#define EMBER_AF_PUMP_STATUS_REMOTE_PRESSURE_OFFSET (6) -#define EMBER_AF_PUMP_STATUS_REMOTE_FLOW (0x0080) -#define EMBER_AF_PUMP_STATUS_REMOTE_FLOW_OFFSET (7) -#define EMBER_AF_PUMP_STATUS_REMOTE_TEMPERATURE (0x0100) -#define EMBER_AF_PUMP_STATUS_REMOTE_TEMPERATURE_OFFSET (8) -#define EMBER_AF_PUMP_ALARM_MASK_SUPPLY_VOLTAGE_TOO_LOW (0x0001) -#define EMBER_AF_PUMP_ALARM_MASK_SUPPLY_VOLTAGE_TOO_HIGH (0x0002) -#define EMBER_AF_PUMP_ALARM_MASK_SUPPLY_VOLTAGE_TOO_HIGH_OFFSET (1) -#define EMBER_AF_PUMP_ALARM_MASK_POWER_MISSING_PHASE (0x0004) -#define EMBER_AF_PUMP_ALARM_MASK_POWER_MISSING_PHASE_OFFSET (2) -#define EMBER_AF_PUMP_ALARM_MASK_SYSTEM_PRESSURE_TOO_LOW (0x0008) -#define EMBER_AF_PUMP_ALARM_MASK_SYSTEM_PRESSURE_TOO_LOW_OFFSET (3) -#define EMBER_AF_PUMP_ALARM_MASK_SYSTEM_PRESSURE_TOO_HIGH (0x0010) -#define EMBER_AF_PUMP_ALARM_MASK_SYSTEM_PRESSURE_TOO_HIGH_OFFSET (4) -#define EMBER_AF_PUMP_ALARM_MASK_DRY_RUNNING (0x0020) -#define EMBER_AF_PUMP_ALARM_MASK_DRY_RUNNING_OFFSET (5) -#define EMBER_AF_PUMP_ALARM_MASK_MOTOR_TEMPERATURE_TOO_HIGH (0x0040) -#define EMBER_AF_PUMP_ALARM_MASK_MOTOR_TEMPERATURE_TOO_HIGH_OFFSET (6) -#define EMBER_AF_PUMP_ALARM_MASK_PUMP_MOTOR_HAS_FATAL_FAILURE (0x0080) -#define EMBER_AF_PUMP_ALARM_MASK_PUMP_MOTOR_HAS_FATAL_FAILURE_OFFSET (7) -#define EMBER_AF_PUMP_ALARM_MASK_ELECTRONIC_TEMPERATURE_TOO_HIGH (0x0100) -#define EMBER_AF_PUMP_ALARM_MASK_ELECTRONIC_TEMPERATURE_TOO_HIGH_OFFSET (8) -#define EMBER_AF_PUMP_ALARM_MASK_PUMP_BLOCKED (0x0200) -#define EMBER_AF_PUMP_ALARM_MASK_PUMP_BLOCKED_OFFSET (9) -#define EMBER_AF_PUMP_ALARM_MASK_SENSOR_FAILURE (0x0400) -#define EMBER_AF_PUMP_ALARM_MASK_SENSOR_FAILURE_OFFSET (10) -#define EMBER_AF_PUMP_ALARM_MASK_ELECTRONIC_NON_FATAL_FAILURE (0x0800) -#define EMBER_AF_PUMP_ALARM_MASK_ELECTRONIC_NON_FATAL_FAILURE_OFFSET (11) -#define EMBER_AF_PUMP_ALARM_MASK_ELECTRONIC_FATAL_FAILURE (0x1000) -#define EMBER_AF_PUMP_ALARM_MASK_ELECTRONIC_FATAL_FAILURE_OFFSET (12) -#define EMBER_AF_PUMP_ALARM_MASK_GENERAL_FAULT (0x2000) -#define EMBER_AF_PUMP_ALARM_MASK_GENERAL_FAULT_OFFSET (13) -#define EMBER_AF_THERMOSTAT_OCCUPANCY_OCCUPIED (0x01) -#define EMBER_AF_THERMOSTAT_SENSING_LOCAL_TEMP_SENSED_REMOTELY (0x01) -#define EMBER_AF_THERMOSTAT_SENSING_OUTDOOR_TEMP_SENSED_REMOTELY (0x02) -#define EMBER_AF_THERMOSTAT_SENSING_OUTDOOR_TEMP_SENSED_REMOTELY_OFFSET (1) -#define EMBER_AF_THERMOSTAT_SENSING_OCCUPANCY_SENSED_REMOTELY (0x04) -#define EMBER_AF_THERMOSTAT_SENSING_OCCUPANCY_SENSED_REMOTELY_OFFSET (2) -#define EMBER_AF_THERMOSTAT_ALARM_MASK_INITIALIZATION_FAILURE (0x01) -#define EMBER_AF_THERMOSTAT_ALARM_MASK_HARDWARE_FAILURE (0x02) -#define EMBER_AF_THERMOSTAT_ALARM_MASK_HARDWARE_FAILURE_OFFSET (1) -#define EMBER_AF_THERMOSTAT_ALARM_MASK_SELFCALIBRATION_FAILURE (0x04) -#define EMBER_AF_THERMOSTAT_ALARM_MASK_SELFCALIBRATION_FAILURE_OFFSET (2) -#define EMBER_AF_BALLAST_STATUS_NON_OPERATIONAL (0x01) -#define EMBER_AF_BALLAST_STATUS_LAMP_NOT_IN_SOCKET (0x02) -#define EMBER_AF_BALLAST_STATUS_LAMP_NOT_IN_SOCKET_OFFSET (1) -#define EMBER_AF_LAMP_ALARM_MODE_LAMP_BURN_HOURS (0x01) -#define EMBER_AF_OCCUPANCY_OCCUPIED (0x01) -#define EMBER_AF_IAS_ZONE_STATUS_ALARM1 (0x0001) -#define EMBER_AF_IAS_ZONE_STATUS_ALARM2 (0x0002) -#define EMBER_AF_IAS_ZONE_STATUS_ALARM2_OFFSET (1) -#define EMBER_AF_IAS_ZONE_STATUS_TAMPER (0x0004) -#define EMBER_AF_IAS_ZONE_STATUS_TAMPER_OFFSET (2) -#define EMBER_AF_IAS_ZONE_STATUS_BATTERY (0x0008) -#define EMBER_AF_IAS_ZONE_STATUS_BATTERY_OFFSET (3) -#define EMBER_AF_IAS_ZONE_STATUS_SUPERVISION_REPORTS (0x0010) -#define EMBER_AF_IAS_ZONE_STATUS_SUPERVISION_REPORTS_OFFSET (4) -#define EMBER_AF_IAS_ZONE_STATUS_RESTORE_REPORTS (0x0020) -#define EMBER_AF_IAS_ZONE_STATUS_RESTORE_REPORTS_OFFSET (5) -#define EMBER_AF_IAS_ZONE_STATUS_TROUBLE (0x0040) -#define EMBER_AF_IAS_ZONE_STATUS_TROUBLE_OFFSET (6) -#define EMBER_AF_IAS_ZONE_STATUS_A_C (0x0080) -#define EMBER_AF_IAS_ZONE_STATUS_A_C_OFFSET (7) -#define EMBER_AF_IAS_ZONE_STATUS_TEST (0x0100) -#define EMBER_AF_IAS_ZONE_STATUS_TEST_OFFSET (8) -#define EMBER_AF_IAS_ZONE_STATUS_BATTERY_DEFECT (0x0200) -#define EMBER_AF_IAS_ZONE_STATUS_BATTERY_DEFECT_OFFSET (9) -#define EMBER_AF_WARNING_INFO_MODE (0xF0) -#define EMBER_AF_WARNING_INFO_MODE_OFFSET (4) -#define EMBER_AF_WARNING_INFO_STROBE (0x0C) -#define EMBER_AF_WARNING_INFO_STROBE_OFFSET (2) -#define EMBER_AF_WARNING_INFO_SIREN_LEVEL (0x03) -#define EMBER_AF_SQUAWK_INFO_MODE (0xF0) -#define EMBER_AF_SQUAWK_INFO_MODE_OFFSET (4) -#define EMBER_AF_SQUAWK_INFO_STROBE (0x08) -#define EMBER_AF_SQUAWK_INFO_STROBE_OFFSET (3) -#define EMBER_AF_SQUAWK_INFO_LEVEL (0x03) -#define EMBER_AF_OCCUPANCY_SENSOR_TYPE_BITMAP_PIR (0x01) -#define EMBER_AF_OCCUPANCY_SENSOR_TYPE_BITMAP_ULTRASONIC (0x02) -#define EMBER_AF_OCCUPANCY_SENSOR_TYPE_BITMAP_ULTRASONIC_OFFSET (1) -#define EMBER_AF_OCCUPANCY_SENSOR_TYPE_BITMAP_PHYSICAL_CONTACT (0x04) -#define EMBER_AF_OCCUPANCY_SENSOR_TYPE_BITMAP_PHYSICAL_CONTACT_OFFSET (2) -#define EMBER_AF_ENERGY_FORMATTING_NUMBER_OF_DIGITS_TO_THE_RIGHT_OF_THE_DECIMAL_POINT (0x07) -#define EMBER_AF_ENERGY_FORMATTING_NUMBER_OF_DIGITS_TO_THE_LEFT_OF_THE_DECIMAL_POINT (0x78) -#define EMBER_AF_ENERGY_FORMATTING_NUMBER_OF_DIGITS_TO_THE_LEFT_OF_THE_DECIMAL_POINT_OFFSET (3) -#define EMBER_AF_ENERGY_FORMATTING_SUPPRESS_LEADING_ZEROS (0x80) -#define EMBER_AF_ENERGY_FORMATTING_SUPPRESS_LEADING_ZEROS_OFFSET (7) -#define EMBER_AF_REMOTE_ENABLE_FLAGS_AND_DEVICE_STATUS2_REMOTE_ENABLE_FLAGS (0x0F) -#define EMBER_AF_REMOTE_ENABLE_FLAGS_AND_DEVICE_STATUS2_DEVICE_STATUS2_STRUCTURE (0xF0) -#define EMBER_AF_REMOTE_ENABLE_FLAGS_AND_DEVICE_STATUS2_DEVICE_STATUS2_STRUCTURE_OFFSET (4) -#define EMBER_AF_START_TIME_MINUTES (0x003F) -#define EMBER_AF_START_TIME_TIME_ENCODING (0x00C0) -#define EMBER_AF_START_TIME_TIME_ENCODING_OFFSET (6) -#define EMBER_AF_START_TIME_HOURS (0xFF00) -#define EMBER_AF_START_TIME_HOURS_OFFSET (8) -#define EMBER_AF_DOOR_LOCK_DAY_OF_WEEK_SUNDAY (0x01) -#define EMBER_AF_DOOR_LOCK_DAY_OF_WEEK_MONDAY (0x02) -#define EMBER_AF_DOOR_LOCK_DAY_OF_WEEK_MONDAY_OFFSET (1) -#define EMBER_AF_DOOR_LOCK_DAY_OF_WEEK_TUESDAY (0x04) -#define EMBER_AF_DOOR_LOCK_DAY_OF_WEEK_TUESDAY_OFFSET (2) -#define EMBER_AF_DOOR_LOCK_DAY_OF_WEEK_WEDNESDAY (0x08) -#define EMBER_AF_DOOR_LOCK_DAY_OF_WEEK_WEDNESDAY_OFFSET (3) -#define EMBER_AF_DOOR_LOCK_DAY_OF_WEEK_THURSDAY (0x10) -#define EMBER_AF_DOOR_LOCK_DAY_OF_WEEK_THURSDAY_OFFSET (4) -#define EMBER_AF_DOOR_LOCK_DAY_OF_WEEK_FRIDAY (0x20) -#define EMBER_AF_DOOR_LOCK_DAY_OF_WEEK_FRIDAY_OFFSET (5) -#define EMBER_AF_DOOR_LOCK_DAY_OF_WEEK_SATURDAY (0x40) -#define EMBER_AF_DOOR_LOCK_DAY_OF_WEEK_SATURDAY_OFFSET (6) -#define EMBER_AF_THERMOSTAT_RUNNING_STATE_HEAT_STATE_ON (0x0001) -#define EMBER_AF_THERMOSTAT_RUNNING_STATE_COOL_STATE_ON (0x0002) -#define EMBER_AF_THERMOSTAT_RUNNING_STATE_COOL_STATE_ON_OFFSET (1) -#define EMBER_AF_THERMOSTAT_RUNNING_STATE_FAN_STATE_ON (0x0004) -#define EMBER_AF_THERMOSTAT_RUNNING_STATE_FAN_STATE_ON_OFFSET (2) -#define EMBER_AF_THERMOSTAT_RUNNING_STATE_HEAT_SECOND_STAGE_STATE_ON (0x0008) -#define EMBER_AF_THERMOSTAT_RUNNING_STATE_HEAT_SECOND_STAGE_STATE_ON_OFFSET (3) -#define EMBER_AF_THERMOSTAT_RUNNING_STATE_COOL_SECOND_STAGE_STATE_ON (0x0010) -#define EMBER_AF_THERMOSTAT_RUNNING_STATE_COOL_SECOND_STAGE_STATE_ON_OFFSET (4) -#define EMBER_AF_THERMOSTAT_RUNNING_STATE_FAN_SECOND_STAGE_STATE_ON (0x0020) -#define EMBER_AF_THERMOSTAT_RUNNING_STATE_FAN_SECOND_STAGE_STATE_ON_OFFSET (5) -#define EMBER_AF_THERMOSTAT_RUNNING_STATE_FAN_THIRD_STAGE_STATE_ON (0x0040) -#define EMBER_AF_THERMOSTAT_RUNNING_STATE_FAN_THIRD_STAGE_STATE_ON_OFFSET (6) -#define EMBER_AF_DAY_OF_WEEK_SUNDAY (0x01) -#define EMBER_AF_DAY_OF_WEEK_MONDAY (0x02) -#define EMBER_AF_DAY_OF_WEEK_MONDAY_OFFSET (1) -#define EMBER_AF_DAY_OF_WEEK_TUESDAY (0x04) -#define EMBER_AF_DAY_OF_WEEK_TUESDAY_OFFSET (2) -#define EMBER_AF_DAY_OF_WEEK_WEDNESDAY (0x08) -#define EMBER_AF_DAY_OF_WEEK_WEDNESDAY_OFFSET (3) -#define EMBER_AF_DAY_OF_WEEK_THURSDAY (0x10) -#define EMBER_AF_DAY_OF_WEEK_THURSDAY_OFFSET (4) -#define EMBER_AF_DAY_OF_WEEK_FRIDAY (0x20) -#define EMBER_AF_DAY_OF_WEEK_FRIDAY_OFFSET (5) -#define EMBER_AF_DAY_OF_WEEK_SATURDAY (0x40) -#define EMBER_AF_DAY_OF_WEEK_SATURDAY_OFFSET (6) -#define EMBER_AF_DAY_OF_WEEK_AWAY_OR_VACATION (0x80) -#define EMBER_AF_DAY_OF_WEEK_AWAY_OR_VACATION_OFFSET (7) -#define EMBER_AF_MODE_FOR_SEQUENCE_HEAT_SETPOINT_FIELD_PRESENT (0x01) -#define EMBER_AF_MODE_FOR_SEQUENCE_COOL_SETPOINT_FIELD_PRESENT (0x02) -#define EMBER_AF_MODE_FOR_SEQUENCE_COOL_SETPOINT_FIELD_PRESENT_OFFSET (1) +#define EMBER_AF_ALERT_COUNT_NUMBER_OF_ALERTS (0x0F) +#define EMBER_AF_ALERT_COUNT_NUMBER_OF_ALERTS_OFFSET (0) +#define EMBER_AF_ALERT_COUNT_TYPE_OF_ALERT (0xF0) +#define EMBER_AF_ALERT_COUNT_TYPE_OF_ALERT_OFFSET (4) #define EMBER_AF_ALERT_STRUCTURE_ALERT_ID (0x0000FF) +#define EMBER_AF_ALERT_STRUCTURE_ALERT_ID_OFFSET (0) #define EMBER_AF_ALERT_STRUCTURE_CATEGORY (0x000F00) #define EMBER_AF_ALERT_STRUCTURE_CATEGORY_OFFSET (8) #define EMBER_AF_ALERT_STRUCTURE_PRESENCE_RECOVERY (0x003000) #define EMBER_AF_ALERT_STRUCTURE_PRESENCE_RECOVERY_OFFSET (12) -#define EMBER_AF_ALERT_COUNT_NUMBER_OF_ALERTS (0x0F) -#define EMBER_AF_ALERT_COUNT_TYPE_OF_ALERT (0xF0) -#define EMBER_AF_ALERT_COUNT_TYPE_OF_ALERT_OFFSET (4) -#define EMBER_AF_BARRIER_CONTROL_CAPABILITIES_PARTIAL_BARRIER (0x01) -#define EMBER_AF_BARRIER_CONTROL_SAFETY_STATUS_REMOTE_LOCKOUT (0x0001) -#define EMBER_AF_BARRIER_CONTROL_SAFETY_STATUS_TEMPER_DETECTED (0x0002) -#define EMBER_AF_BARRIER_CONTROL_SAFETY_STATUS_TEMPER_DETECTED_OFFSET (1) -#define EMBER_AF_BARRIER_CONTROL_SAFETY_STATUS_FAILED_COMMUNICATION (0x0004) -#define EMBER_AF_BARRIER_CONTROL_SAFETY_STATUS_FAILED_COMMUNICATION_OFFSET (2) -#define EMBER_AF_BARRIER_CONTROL_SAFETY_STATUS_POSITION_FAILURE (0x0008) -#define EMBER_AF_BARRIER_CONTROL_SAFETY_STATUS_POSITION_FAILURE_OFFSET (3) -#define EMBER_AF_BLOCK_PERIOD_DURATION_TYPE_TIMEBASE (0x0F) -#define EMBER_AF_BLOCK_PERIOD_DURATION_TYPE_CONTROL (0xF0) -#define EMBER_AF_BLOCK_PERIOD_DURATION_TYPE_CONTROL_OFFSET (4) -#define EMBER_AF_CONVERSION_FACTOR_TRAILING_DIGIT_TRAILING_DIGIT (0xF0) -#define EMBER_AF_CONVERSION_FACTOR_TRAILING_DIGIT_TRAILING_DIGIT_OFFSET (4) -#define EMBER_AF_CALORIFIC_VALUE_TRAILING_DIGIT_TRAILING_DIGIT (0xF0) -#define EMBER_AF_CALORIFIC_VALUE_TRAILING_DIGIT_TRAILING_DIGIT_OFFSET (4) -#define EMBER_AF_PRICE_TRAILING_DIGIT_TRAILING_DIGIT (0xF0) -#define EMBER_AF_PRICE_TRAILING_DIGIT_TRAILING_DIGIT_OFFSET (4) -#define EMBER_AF_C_O2_TRAILING_DIGIT_TRAILING_DIGIT (0xF0) -#define EMBER_AF_C_O2_TRAILING_DIGIT_TRAILING_DIGIT_OFFSET (4) -#define EMBER_AF_PRICE_TRAILING_DIGIT_AND_PRICE_TIER_PRICE_TIER (0x0F) -#define EMBER_AF_PRICE_TRAILING_DIGIT_AND_PRICE_TIER_TRAILING_DIGIT (0xF0) -#define EMBER_AF_PRICE_TRAILING_DIGIT_AND_PRICE_TIER_TRAILING_DIGIT_OFFSET (4) -#define EMBER_AF_PRICE_NUMBER_OF_PRICE_TIERS_AND_REGISTER_TIER_REGISTER_TIER (0x0F) -#define EMBER_AF_PRICE_NUMBER_OF_PRICE_TIERS_AND_REGISTER_TIER_NUMBER_OF_PRICE_TIERS (0xF0) -#define EMBER_AF_PRICE_NUMBER_OF_PRICE_TIERS_AND_REGISTER_TIER_NUMBER_OF_PRICE_TIERS_OFFSET (4) #define EMBER_AF_ALTERNATE_COST_TRAILING_DIGIT_TRAILING_DIGIT (0xF0) #define EMBER_AF_ALTERNATE_COST_TRAILING_DIGIT_TRAILING_DIGIT_OFFSET (4) -#define EMBER_AF_PRICE_CONTROL_MASK_PRICE_ACKNOWLEDGEMENT_REQUIRED (0x01) -#define EMBER_AF_PRICE_CONTROL_MASK_TOTAL_TIERS_EXCEEDS15 (0x02) -#define EMBER_AF_PRICE_CONTROL_MASK_TOTAL_TIERS_EXCEEDS15_OFFSET (1) -#define EMBER_AF_BLOCK_PERIOD_CONTROL_PRICE_ACKNOWLEDGEMENT_REQUIREMENT (0x01) -#define EMBER_AF_BLOCK_PERIOD_CONTROL_REPEATING_BLOCK (0x02) -#define EMBER_AF_BLOCK_PERIOD_CONTROL_REPEATING_BLOCK_OFFSET (1) -#define EMBER_AF_TARIFF_TYPE_CHARGING_SCHEME_TARIFF_TYPE (0x0F) -#define EMBER_AF_TARIFF_TYPE_CHARGING_SCHEME_TARIFF_CHARGING_SCHEME (0xF0) -#define EMBER_AF_TARIFF_TYPE_CHARGING_SCHEME_TARIFF_CHARGING_SCHEME_OFFSET (4) -#define EMBER_AF_PRICE_MATRIX_SUB_PAYLOAD_CONTROL_TOU_BASED (0x01) -#define EMBER_AF_BLOCK_THRESHOLD_SUB_PAYLOAD_CONTROL_APPLY_TO_ALL_TOU_TIERS_OR_WHEN_BLOCK_ONLY_CHARGING (0x01) -#define EMBER_AF_BILLING_PERIOD_DURATION_DURATION (0x3FFFFF) -#define EMBER_AF_BILLING_PERIOD_DURATION_UNITS (0xC00000) -#define EMBER_AF_BILLING_PERIOD_DURATION_UNITS_OFFSET (22) -#define EMBER_AF_BILLING_PERIOD_DURATION_TYPE_TIMEBASE (0x0F) -#define EMBER_AF_BILLING_PERIOD_DURATION_TYPE_CONTROL (0xF0) -#define EMBER_AF_BILLING_PERIOD_DURATION_TYPE_CONTROL_OFFSET (4) -#define EMBER_AF_BILL_TRAILING_DIGIT_TRAILING_DIGIT (0xF0) -#define EMBER_AF_BILL_TRAILING_DIGIT_TRAILING_DIGIT_OFFSET (4) -#define EMBER_AF_CURRENCY_CHANGE_CONTROL_CLEAR_BILLING_INFO (0x00000001) -#define EMBER_AF_CURRENCY_CHANGE_CONTROL_CONVERT_BILLING_INFO_USING_NEW_CURRENCY (0x00000002) -#define EMBER_AF_CURRENCY_CHANGE_CONTROL_CONVERT_BILLING_INFO_USING_NEW_CURRENCY_OFFSET (1) -#define EMBER_AF_CURRENCY_CHANGE_CONTROL_CLEAR_OLD_CONSUMPTION_DATA (0x00000004) -#define EMBER_AF_CURRENCY_CHANGE_CONTROL_CLEAR_OLD_CONSUMPTION_DATA_OFFSET (2) -#define EMBER_AF_CURRENCY_CHANGE_CONTROL_CONVERT_OLD_CONSUMPTION_DATA_USING_NEW_CURRENCY (0x00000008) -#define EMBER_AF_CURRENCY_CHANGE_CONTROL_CONVERT_OLD_CONSUMPTION_DATA_USING_NEW_CURRENCY_OFFSET (3) -#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER1 (0x0002) -#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER1_OFFSET (1) -#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER2 (0x0004) -#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER2_OFFSET (2) -#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER3 (0x0008) -#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER3_OFFSET (3) -#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER4 (0x0010) -#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER4_OFFSET (4) -#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER5 (0x0020) -#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER5_OFFSET (5) -#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER6 (0x0040) -#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER6_OFFSET (6) -#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER7 (0x0080) -#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER7_OFFSET (7) -#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER8 (0x0100) -#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER8_OFFSET (8) -#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER9 (0x0200) -#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER9_OFFSET (9) -#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER10 (0x0400) -#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER10_OFFSET (10) -#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER11 (0x0800) -#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER11_OFFSET (11) -#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER12 (0x1000) -#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER12_OFFSET (12) -#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER13 (0x2000) -#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER13_OFFSET (13) -#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER14 (0x4000) -#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER14_OFFSET (14) -#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER15 (0x8000) -#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER15_OFFSET (15) +#define EMBER_AF_AMI_CANCEL_CONTROL_TERMINATE_WITH_RANDOMIZATION (0x01) +#define EMBER_AF_AMI_CANCEL_CONTROL_TERMINATE_WITH_RANDOMIZATION_OFFSET (0) #define EMBER_AF_AMI_COMMAND_OPTIONS_REQUEST_RX_ON_WHEN_IDLE (0x01) +#define EMBER_AF_AMI_COMMAND_OPTIONS_REQUEST_RX_ON_WHEN_IDLE_OFFSET (0) #define EMBER_AF_AMI_DEVICE_CLASS_HVAC_COMPRESSOR_OR_FURNACE (0x0001) +#define EMBER_AF_AMI_DEVICE_CLASS_HVAC_COMPRESSOR_OR_FURNACE_OFFSET (0) #define EMBER_AF_AMI_DEVICE_CLASS_STRIP_HEAT_BASEBOARD_HEAT (0x0002) #define EMBER_AF_AMI_DEVICE_CLASS_STRIP_HEAT_BASEBOARD_HEAT_OFFSET (1) #define EMBER_AF_AMI_DEVICE_CLASS_WATER_HEATER (0x0004) @@ -2730,10 +2650,11 @@ typedef enum #define EMBER_AF_AMI_DEVICE_CLASS_GENERATION_SYSTEMS (0x0800) #define EMBER_AF_AMI_DEVICE_CLASS_GENERATION_SYSTEMS_OFFSET (11) #define EMBER_AF_AMI_EVENT_CONTROL_RANDOMIZED_START_TIME (0x01) +#define EMBER_AF_AMI_EVENT_CONTROL_RANDOMIZED_START_TIME_OFFSET (0) #define EMBER_AF_AMI_EVENT_CONTROL_RANDOMIZED_END_TIME (0x02) #define EMBER_AF_AMI_EVENT_CONTROL_RANDOMIZED_END_TIME_OFFSET (1) -#define EMBER_AF_AMI_CANCEL_CONTROL_TERMINATE_WITH_RANDOMIZATION (0x01) #define EMBER_AF_AMI_METER_STATUS_CHECK_METER (0x01) +#define EMBER_AF_AMI_METER_STATUS_CHECK_METER_OFFSET (0) #define EMBER_AF_AMI_METER_STATUS_LOW_BATTERY (0x02) #define EMBER_AF_AMI_METER_STATUS_LOW_BATTERY_OFFSET (1) #define EMBER_AF_AMI_METER_STATUS_TAMPER_DETECT (0x04) @@ -2748,324 +2669,8 @@ typedef enum #define EMBER_AF_AMI_METER_STATUS_SERVICE_DISCONNECT_OPEN_OFFSET (6) #define EMBER_AF_AMI_METER_STATUS_RESERVED (0x80) #define EMBER_AF_AMI_METER_STATUS_RESERVED_OFFSET (7) -#define EMBER_AF_METERING_STATUS_ELECTRICITY_CHECK_METER (0x01) -#define EMBER_AF_METERING_STATUS_ELECTRICITY_LOW_BATTERY (0x02) -#define EMBER_AF_METERING_STATUS_ELECTRICITY_LOW_BATTERY_OFFSET (1) -#define EMBER_AF_METERING_STATUS_ELECTRICITY_TAMPER_DETECT (0x04) -#define EMBER_AF_METERING_STATUS_ELECTRICITY_TAMPER_DETECT_OFFSET (2) -#define EMBER_AF_METERING_STATUS_ELECTRICITY_POWER_FAILURE (0x08) -#define EMBER_AF_METERING_STATUS_ELECTRICITY_POWER_FAILURE_OFFSET (3) -#define EMBER_AF_METERING_STATUS_ELECTRICITY_POWER_QUALITY (0x10) -#define EMBER_AF_METERING_STATUS_ELECTRICITY_POWER_QUALITY_OFFSET (4) -#define EMBER_AF_METERING_STATUS_ELECTRICITY_LEAK_DETECT (0x20) -#define EMBER_AF_METERING_STATUS_ELECTRICITY_LEAK_DETECT_OFFSET (5) -#define EMBER_AF_METERING_STATUS_ELECTRICITY_SERVICE_DISCONNECT_OPEN (0x40) -#define EMBER_AF_METERING_STATUS_ELECTRICITY_SERVICE_DISCONNECT_OPEN_OFFSET (6) -#define EMBER_AF_METERING_STATUS_ELECTRICITY_RESERVED (0x80) -#define EMBER_AF_METERING_STATUS_ELECTRICITY_RESERVED_OFFSET (7) -#define EMBER_AF_METERING_STATUS_GAS_CHECK_METER (0x01) -#define EMBER_AF_METERING_STATUS_GAS_LOW_BATTERY (0x02) -#define EMBER_AF_METERING_STATUS_GAS_LOW_BATTERY_OFFSET (1) -#define EMBER_AF_METERING_STATUS_GAS_TAMPER_DETECT (0x04) -#define EMBER_AF_METERING_STATUS_GAS_TAMPER_DETECT_OFFSET (2) -#define EMBER_AF_METERING_STATUS_GAS_NOT_DEFINED (0x08) -#define EMBER_AF_METERING_STATUS_GAS_NOT_DEFINED_OFFSET (3) -#define EMBER_AF_METERING_STATUS_GAS_LOW_PRESSURE (0x10) -#define EMBER_AF_METERING_STATUS_GAS_LOW_PRESSURE_OFFSET (4) -#define EMBER_AF_METERING_STATUS_GAS_LEAK_DETECT (0x20) -#define EMBER_AF_METERING_STATUS_GAS_LEAK_DETECT_OFFSET (5) -#define EMBER_AF_METERING_STATUS_GAS_SERVICE_DISCONNECT (0x40) -#define EMBER_AF_METERING_STATUS_GAS_SERVICE_DISCONNECT_OFFSET (6) -#define EMBER_AF_METERING_STATUS_GAS_REVERSE_FLOW (0x80) -#define EMBER_AF_METERING_STATUS_GAS_REVERSE_FLOW_OFFSET (7) -#define EMBER_AF_METERING_STATUS_WATER_CHECK_METER (0x01) -#define EMBER_AF_METERING_STATUS_WATER_LOW_BATTERY (0x02) -#define EMBER_AF_METERING_STATUS_WATER_LOW_BATTERY_OFFSET (1) -#define EMBER_AF_METERING_STATUS_WATER_TAMPER_DETECT (0x04) -#define EMBER_AF_METERING_STATUS_WATER_TAMPER_DETECT_OFFSET (2) -#define EMBER_AF_METERING_STATUS_WATER_PIPE_EMPTY (0x08) -#define EMBER_AF_METERING_STATUS_WATER_PIPE_EMPTY_OFFSET (3) -#define EMBER_AF_METERING_STATUS_WATER_LOW_PRESSURE (0x10) -#define EMBER_AF_METERING_STATUS_WATER_LOW_PRESSURE_OFFSET (4) -#define EMBER_AF_METERING_STATUS_WATER_LEAK_DETECT (0x20) -#define EMBER_AF_METERING_STATUS_WATER_LEAK_DETECT_OFFSET (5) -#define EMBER_AF_METERING_STATUS_WATER_SERVICE_DISCONNECT (0x40) -#define EMBER_AF_METERING_STATUS_WATER_SERVICE_DISCONNECT_OFFSET (6) -#define EMBER_AF_METERING_STATUS_WATER_REVERSE_FLOW (0x80) -#define EMBER_AF_METERING_STATUS_WATER_REVERSE_FLOW_OFFSET (7) -#define EMBER_AF_METERING_STATUS_HEAT_AND_COOLING_CHECK_METER (0x01) -#define EMBER_AF_METERING_STATUS_HEAT_AND_COOLING_LOW_BATTERY (0x02) -#define EMBER_AF_METERING_STATUS_HEAT_AND_COOLING_LOW_BATTERY_OFFSET (1) -#define EMBER_AF_METERING_STATUS_HEAT_AND_COOLING_TAMPER_DETECT (0x04) -#define EMBER_AF_METERING_STATUS_HEAT_AND_COOLING_TAMPER_DETECT_OFFSET (2) -#define EMBER_AF_METERING_STATUS_HEAT_AND_COOLING_TEMPERATURE_SENSOR (0x08) -#define EMBER_AF_METERING_STATUS_HEAT_AND_COOLING_TEMPERATURE_SENSOR_OFFSET (3) -#define EMBER_AF_METERING_STATUS_HEAT_AND_COOLING_BURST_DETECT (0x10) -#define EMBER_AF_METERING_STATUS_HEAT_AND_COOLING_BURST_DETECT_OFFSET (4) -#define EMBER_AF_METERING_STATUS_HEAT_AND_COOLING_LEAK_DETECT (0x20) -#define EMBER_AF_METERING_STATUS_HEAT_AND_COOLING_LEAK_DETECT_OFFSET (5) -#define EMBER_AF_METERING_STATUS_HEAT_AND_COOLING_SERVICE_DISCONNECT (0x40) -#define EMBER_AF_METERING_STATUS_HEAT_AND_COOLING_SERVICE_DISCONNECT_OFFSET (6) -#define EMBER_AF_METERING_STATUS_HEAT_AND_COOLING_FLOW_SENSOR (0x80) -#define EMBER_AF_METERING_STATUS_HEAT_AND_COOLING_FLOW_SENSOR_OFFSET (7) -#define EMBER_AF_METERING_EXTENDED_STATUS_METER_COVER_REMOVED (0x0000000000000001) -#define EMBER_AF_METERING_EXTENDED_STATUS_STRONG_MAGNETIC_FIELD_DETECTED (0x0000000000000002) -#define EMBER_AF_METERING_EXTENDED_STATUS_STRONG_MAGNETIC_FIELD_DETECTED_OFFSET (1) -#define EMBER_AF_METERING_EXTENDED_STATUS_BATTERY_FAILURE (0x0000000000000004) -#define EMBER_AF_METERING_EXTENDED_STATUS_BATTERY_FAILURE_OFFSET (2) -#define EMBER_AF_METERING_EXTENDED_STATUS_PROGRAM_MEMORY_ERROR (0x0000000000000008) -#define EMBER_AF_METERING_EXTENDED_STATUS_PROGRAM_MEMORY_ERROR_OFFSET (3) -#define EMBER_AF_METERING_EXTENDED_STATUS_RAM_ERROR (0x0000000000000010) -#define EMBER_AF_METERING_EXTENDED_STATUS_RAM_ERROR_OFFSET (4) -#define EMBER_AF_METERING_EXTENDED_STATUS_NV_MEMORY_ERROR (0x0000000000000020) -#define EMBER_AF_METERING_EXTENDED_STATUS_NV_MEMORY_ERROR_OFFSET (5) -#define EMBER_AF_METERING_EXTENDED_STATUS_MEASUREMENT_SYSTEM_ERROR (0x0000000000000040) -#define EMBER_AF_METERING_EXTENDED_STATUS_MEASUREMENT_SYSTEM_ERROR_OFFSET (6) -#define EMBER_AF_METERING_EXTENDED_STATUS_WATCHDOG_ERROR (0x0000000000000080) -#define EMBER_AF_METERING_EXTENDED_STATUS_WATCHDOG_ERROR_OFFSET (7) -#define EMBER_AF_METERING_EXTENDED_STATUS_SUPPLY_DISCONNECT_FAILURE (0x0000000000000100) -#define EMBER_AF_METERING_EXTENDED_STATUS_SUPPLY_DISCONNECT_FAILURE_OFFSET (8) -#define EMBER_AF_METERING_EXTENDED_STATUS_SUPPLY_CONNECT_FAILURE (0x0000000000000200) -#define EMBER_AF_METERING_EXTENDED_STATUS_SUPPLY_CONNECT_FAILURE_OFFSET (9) -#define EMBER_AF_METERING_EXTENDED_STATUS_MEASUREMENT_SW_CHANGED_TAMPERED (0x0000000000000400) -#define EMBER_AF_METERING_EXTENDED_STATUS_MEASUREMENT_SW_CHANGED_TAMPERED_OFFSET (10) -#define EMBER_AF_METERING_EXTENDED_STATUS_CLOCK_INVALID (0x0000000000000800) -#define EMBER_AF_METERING_EXTENDED_STATUS_CLOCK_INVALID_OFFSET (11) -#define EMBER_AF_METERING_EXTENDED_STATUS_TEMPERATURE_EXCEEDED (0x0000000000001000) -#define EMBER_AF_METERING_EXTENDED_STATUS_TEMPERATURE_EXCEEDED_OFFSET (12) -#define EMBER_AF_METERING_EXTENDED_STATUS_MOISTURE_DETECTED (0x0000000000002000) -#define EMBER_AF_METERING_EXTENDED_STATUS_MOISTURE_DETECTED_OFFSET (13) -#define EMBER_AF_METERING_EXTENDED_STATUS_GAS_METER_BATTERY_COVER_REMOVED (0x0000000001000000) -#define EMBER_AF_METERING_EXTENDED_STATUS_GAS_METER_BATTERY_COVER_REMOVED_OFFSET (24) -#define EMBER_AF_METERING_EXTENDED_STATUS_GAS_METER_TILT_TAMPER (0x0000000002000000) -#define EMBER_AF_METERING_EXTENDED_STATUS_GAS_METER_TILT_TAMPER_OFFSET (25) -#define EMBER_AF_METERING_EXTENDED_STATUS_GAS_METER_EXCESS_FLOW (0x0000000004000000) -#define EMBER_AF_METERING_EXTENDED_STATUS_GAS_METER_EXCESS_FLOW_OFFSET (26) -#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_LIMIT_THRESHOLD_EXCEEDED (0x0000000008000000) -#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_LIMIT_THRESHOLD_EXCEEDED_OFFSET (27) -#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_UNDER_VOLTAGE (0x0000000010000000) -#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_UNDER_VOLTAGE_OFFSET (28) -#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_OVER_VOLTAGE (0x0000000020000000) -#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_OVER_VOLTAGE_OFFSET (29) -#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_SERVICE_DISCONNECTION_REASON_OFF_DUE_TO_OVER_POWER (0x0000000040000000) -#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_SERVICE_DISCONNECTION_REASON_OFF_DUE_TO_OVER_POWER_OFFSET (30) -#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_SERVICE_DISCONNECTION_REASON_OFF_DUE_TO_OVER_VOLTAGE \ - (0x0000000080000000) -#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_SERVICE_DISCONNECTION_REASON_OFF_DUE_TO_OVER_VOLTAGE_OFFSET (31) -#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_SERVICE_DISCONNECTION_REASON_OFF_DUE_TO_REMOTE_LOAD_CONTROL \ - (0x00000000C0000000) -#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_SERVICE_DISCONNECTION_REASON_OFF_DUE_TO_REMOTE_LOAD_CONTROL_OFFSET (30) -#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_SERVICE_DISCONNECTION_REASON_OFF_BY_OTHER_REMOTE_COMMAND \ - (0x0000000100000000) -#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_SERVICE_DISCONNECTION_REASON_OFF_BY_OTHER_REMOTE_COMMAND_OFFSET (32) -#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_SERVICE_DISCONNECTION_REASON_OFF_DUE_TO_OVERHEATING_SHORT_CIRCUIT \ - (0x0000000140000000) -#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_SERVICE_DISCONNECTION_REASON_OFF_DUE_TO_OVERHEATING_SHORT_CIRCUIT_OFFSET \ - (30) -#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_SERVICE_DISCONNECTION_REASON_OFF_DUE_TO_OVERHEATING_OTHER \ - (0x0000000180000000) -#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_SERVICE_DISCONNECTION_REASON_OFF_DUE_TO_OVERHEATING_OTHER_OFFSET (31) -#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_BI_DIRECTIONAL_OPERATION (0x0000000400000000) -#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_BI_DIRECTIONAL_OPERATION_OFFSET (34) -#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_ACTIVE_POWER_RECEIVED (0x0000000800000000) -#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_ACTIVE_POWER_RECEIVED_OFFSET (35) -#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_MODE_OF_OPERATION (0x0000001000000000) -#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_MODE_OF_OPERATION_OFFSET (36) -#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_NEW_OTA_FIRMWARE (0x00000001) -#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_CBKE_UPDATE_REQUEST (0x00000002) -#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_CBKE_UPDATE_REQUEST_OFFSET (1) -#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_TIME_SYNC (0x00000004) -#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_TIME_SYNC_OFFSET (2) -#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_STAY_AWAKE_REQUEST_HAN (0x00000010) -#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_STAY_AWAKE_REQUEST_HAN_OFFSET (4) -#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_STAY_AWAKE_REQUEST_WAN (0x00000020) -#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_STAY_AWAKE_REQUEST_WAN_OFFSET (5) -#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_PUSH_HISTORICAL_METERING_DATA_ATTRIBUTE_SET (0x000001C0) -#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_PUSH_HISTORICAL_METERING_DATA_ATTRIBUTE_SET_OFFSET (6) -#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_PUSH_HISTORICAL_PREPAYMENT_DATA_ATTRIBUTE_SET (0x00000E00) -#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_PUSH_HISTORICAL_PREPAYMENT_DATA_ATTRIBUTE_SET_OFFSET (9) -#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_PUSH_ALL_STATIC_DATA_BASIC_CLUSTER (0x00001000) -#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_PUSH_ALL_STATIC_DATA_BASIC_CLUSTER_OFFSET (12) -#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_PUSH_ALL_STATIC_DATA_METERING_CLUSTER (0x00002000) -#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_PUSH_ALL_STATIC_DATA_METERING_CLUSTER_OFFSET (13) -#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_PUSH_ALL_STATIC_DATA_PREPAYMENT_CLUSTER (0x00004000) -#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_PUSH_ALL_STATIC_DATA_PREPAYMENT_CLUSTER_OFFSET (14) -#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_NETWORK_KEY_ACTIVE (0x00008000) -#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_NETWORK_KEY_ACTIVE_OFFSET (15) -#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_DISPLAY_MESSAGE (0x00010000) -#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_DISPLAY_MESSAGE_OFFSET (16) -#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_CANCEL_ALL_MESSAGES (0x00020000) -#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_CANCEL_ALL_MESSAGES_OFFSET (17) -#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_CHANGE_SUPPLY (0x00040000) -#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_CHANGE_SUPPLY_OFFSET (18) -#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_LOCAL_CHANGE_SUPPLY (0x00080000) -#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_LOCAL_CHANGE_SUPPLY_OFFSET (19) -#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_SET_UNCONTROLLED_FLOW_THRESHOLD (0x00100000) -#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_SET_UNCONTROLLED_FLOW_THRESHOLD_OFFSET (20) -#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_TUNNEL_MESSAGE_PENDING (0x00200000) -#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_TUNNEL_MESSAGE_PENDING_OFFSET (21) -#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_GET_SNAPSHOT (0x00400000) -#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_GET_SNAPSHOT_OFFSET (22) -#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_GET_SAMPLED_DATA (0x00800000) -#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_GET_SAMPLED_DATA_OFFSET (23) -#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_NEW_SUB_GHZ_CHANNEL_MASKS_AVAILABLE (0x01000000) -#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_NEW_SUB_GHZ_CHANNEL_MASKS_AVAILABLE_OFFSET (24) -#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_ENERGY_SCAN_PENDING (0x02000000) -#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_ENERGY_SCAN_PENDING_OFFSET (25) -#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_CHANNEL_CHANGE_PENDING (0x04000000) -#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_CHANNEL_CHANGE_PENDING_OFFSET (26) -#define EMBER_AF_SNAPSHOT_CAUSE_GENERAL (0x00000001) -#define EMBER_AF_SNAPSHOT_CAUSE_END_OF_BILLING_PERIOD (0x00000002) -#define EMBER_AF_SNAPSHOT_CAUSE_END_OF_BILLING_PERIOD_OFFSET (1) -#define EMBER_AF_SNAPSHOT_CAUSE_END_OF_BLOCK_PERIOD (0x00000004) -#define EMBER_AF_SNAPSHOT_CAUSE_END_OF_BLOCK_PERIOD_OFFSET (2) -#define EMBER_AF_SNAPSHOT_CAUSE_CHANGE_OF_TARIFF_INFORMATION (0x00000008) -#define EMBER_AF_SNAPSHOT_CAUSE_CHANGE_OF_TARIFF_INFORMATION_OFFSET (3) -#define EMBER_AF_SNAPSHOT_CAUSE_CHANGE_OF_PRICE_MATRIX (0x00000010) -#define EMBER_AF_SNAPSHOT_CAUSE_CHANGE_OF_PRICE_MATRIX_OFFSET (4) -#define EMBER_AF_SNAPSHOT_CAUSE_CHANGE_OF_BLOCK_THRESHOLDS (0x00000020) -#define EMBER_AF_SNAPSHOT_CAUSE_CHANGE_OF_BLOCK_THRESHOLDS_OFFSET (5) -#define EMBER_AF_SNAPSHOT_CAUSE_CHANGE_OF_CV (0x00000040) -#define EMBER_AF_SNAPSHOT_CAUSE_CHANGE_OF_CV_OFFSET (6) -#define EMBER_AF_SNAPSHOT_CAUSE_CHANGE_OF_CF (0x00000080) -#define EMBER_AF_SNAPSHOT_CAUSE_CHANGE_OF_CF_OFFSET (7) -#define EMBER_AF_SNAPSHOT_CAUSE_CHANGE_OF_CALENDAR (0x00000100) -#define EMBER_AF_SNAPSHOT_CAUSE_CHANGE_OF_CALENDAR_OFFSET (8) -#define EMBER_AF_SNAPSHOT_CAUSE_CRITICAL_PEAK_PRICING (0x00000200) -#define EMBER_AF_SNAPSHOT_CAUSE_CRITICAL_PEAK_PRICING_OFFSET (9) -#define EMBER_AF_SNAPSHOT_CAUSE_MANUALLY_TRIGGERED_FROM_CLIENT (0x00000400) -#define EMBER_AF_SNAPSHOT_CAUSE_MANUALLY_TRIGGERED_FROM_CLIENT_OFFSET (10) -#define EMBER_AF_SNAPSHOT_CAUSE_END_OF_RESOLVE_PERIOD (0x00000800) -#define EMBER_AF_SNAPSHOT_CAUSE_END_OF_RESOLVE_PERIOD_OFFSET (11) -#define EMBER_AF_SNAPSHOT_CAUSE_CHANGE_OF_TENANCY (0x00001000) -#define EMBER_AF_SNAPSHOT_CAUSE_CHANGE_OF_TENANCY_OFFSET (12) -#define EMBER_AF_SNAPSHOT_CAUSE_CHANGE_OF_SUPPLIER (0x00002000) -#define EMBER_AF_SNAPSHOT_CAUSE_CHANGE_OF_SUPPLIER_OFFSET (13) -#define EMBER_AF_SNAPSHOT_CAUSE_CHANGE_OF_MODE (0x00004000) -#define EMBER_AF_SNAPSHOT_CAUSE_CHANGE_OF_MODE_OFFSET (14) -#define EMBER_AF_SNAPSHOT_CAUSE_DEBT_PAYMENT (0x00008000) -#define EMBER_AF_SNAPSHOT_CAUSE_DEBT_PAYMENT_OFFSET (15) -#define EMBER_AF_SNAPSHOT_CAUSE_SCHEDULED_SNAPSHOT (0x00010000) -#define EMBER_AF_SNAPSHOT_CAUSE_SCHEDULED_SNAPSHOT_OFFSET (16) -#define EMBER_AF_SNAPSHOT_CAUSE_OTA_FIRMWARE_DOWNLOAD (0x00020000) -#define EMBER_AF_SNAPSHOT_CAUSE_OTA_FIRMWARE_DOWNLOAD_OFFSET (17) -#define EMBER_AF_SUPPLY_CONTROL_BITS_ACKNOWLEDGE_REQUIRED (0x01) -#define EMBER_AF_MESSAGING_CONTROL_MASK_TRANS_MECHANISM (0x03) -#define EMBER_AF_MESSAGING_CONTROL_MASK_MESSAGE_URGENCY (0x0C) -#define EMBER_AF_MESSAGING_CONTROL_MASK_MESSAGE_URGENCY_OFFSET (2) -#define EMBER_AF_MESSAGING_CONTROL_MASK_ENHANCED_CONFIRMATION_REQUEST (0x20) -#define EMBER_AF_MESSAGING_CONTROL_MASK_ENHANCED_CONFIRMATION_REQUEST_OFFSET (5) -#define EMBER_AF_MESSAGING_CONTROL_MASK_MESSAGE_CONFIRMATION (0x80) -#define EMBER_AF_MESSAGING_CONTROL_MASK_MESSAGE_CONFIRMATION_OFFSET (7) -#define EMBER_AF_MESSAGING_EXTENDED_CONTROL_MASK_MESSAGE_CONFIRMATION_STATUS (0x01) -#define EMBER_AF_MESSAGING_CONFIRMATION_CONTROL_NO_RETURNED (0x01) -#define EMBER_AF_MESSAGING_CONFIRMATION_CONTROL_YES_RETURNED (0x02) -#define EMBER_AF_MESSAGING_CONFIRMATION_CONTROL_YES_RETURNED_OFFSET (1) -#define EMBER_AF_PAYMENT_CONTROL_CONFIGURATION_DISCONNECTION_ENABLED (0x0001) -#define EMBER_AF_PAYMENT_CONTROL_CONFIGURATION_PREPAYMENT_ENABLED (0x0002) -#define EMBER_AF_PAYMENT_CONTROL_CONFIGURATION_PREPAYMENT_ENABLED_OFFSET (1) -#define EMBER_AF_PAYMENT_CONTROL_CONFIGURATION_CREDIT_MANAGEMENT_ENABLED (0x0004) -#define EMBER_AF_PAYMENT_CONTROL_CONFIGURATION_CREDIT_MANAGEMENT_ENABLED_OFFSET (2) -#define EMBER_AF_PAYMENT_CONTROL_CONFIGURATION_CREDIT_DISPLAY_ENABLED (0x0010) -#define EMBER_AF_PAYMENT_CONTROL_CONFIGURATION_CREDIT_DISPLAY_ENABLED_OFFSET (4) -#define EMBER_AF_PAYMENT_CONTROL_CONFIGURATION_ACCOUNT_BASE (0x0040) -#define EMBER_AF_PAYMENT_CONTROL_CONFIGURATION_ACCOUNT_BASE_OFFSET (6) -#define EMBER_AF_PAYMENT_CONTROL_CONFIGURATION_CONTACTOR_FITTED (0x0080) -#define EMBER_AF_PAYMENT_CONTROL_CONFIGURATION_CONTACTOR_FITTED_OFFSET (7) -#define EMBER_AF_PAYMENT_CONTROL_CONFIGURATION_STANDING_CHARGE_CONFIGURATION (0x0100) -#define EMBER_AF_PAYMENT_CONTROL_CONFIGURATION_STANDING_CHARGE_CONFIGURATION_OFFSET (8) -#define EMBER_AF_PAYMENT_CONTROL_CONFIGURATION_EMERGENCY_STANDING_CHARGE_CONFIGURATION (0x0200) -#define EMBER_AF_PAYMENT_CONTROL_CONFIGURATION_EMERGENCY_STANDING_CHARGE_CONFIGURATION_OFFSET (9) -#define EMBER_AF_PAYMENT_CONTROL_CONFIGURATION_DEBT_CONFIGURATION (0x0400) -#define EMBER_AF_PAYMENT_CONTROL_CONFIGURATION_DEBT_CONFIGURATION_OFFSET (10) -#define EMBER_AF_PAYMENT_CONTROL_CONFIGURATION_EMERGENCY_DEBT_CONFIGURATION (0x0800) -#define EMBER_AF_PAYMENT_CONTROL_CONFIGURATION_EMERGENCY_DEBT_CONFIGURATION_OFFSET (11) -#define EMBER_AF_CREDIT_STATUS_CREDIT_OK (0x01) -#define EMBER_AF_CREDIT_STATUS_LOW_CREDIT (0x02) -#define EMBER_AF_CREDIT_STATUS_LOW_CREDIT_OFFSET (1) -#define EMBER_AF_CREDIT_STATUS_EMERGENCY_CREDIT_ENABLED (0x04) -#define EMBER_AF_CREDIT_STATUS_EMERGENCY_CREDIT_ENABLED_OFFSET (2) -#define EMBER_AF_CREDIT_STATUS_EMERGENCY_CREDIT_AVAILABLE (0x08) -#define EMBER_AF_CREDIT_STATUS_EMERGENCY_CREDIT_AVAILABLE_OFFSET (3) -#define EMBER_AF_CREDIT_STATUS_EMERGENCY_CREDIT_SELECTED (0x10) -#define EMBER_AF_CREDIT_STATUS_EMERGENCY_CREDIT_SELECTED_OFFSET (4) -#define EMBER_AF_CREDIT_STATUS_EMERGENCY_CREDIT_IN_USE (0x20) -#define EMBER_AF_CREDIT_STATUS_EMERGENCY_CREDIT_IN_USE_OFFSET (5) -#define EMBER_AF_CREDIT_STATUS_CREDIT_EXHAUSTED (0x40) -#define EMBER_AF_CREDIT_STATUS_CREDIT_EXHAUSTED_OFFSET (6) -#define EMBER_AF_PREPAYMENT_ALARM_STATUS_LOW_CREDIT_WARNING (0x0001) -#define EMBER_AF_PREPAYMENT_ALARM_STATUS_TOP_UP_CODE_ERROR (0x0002) -#define EMBER_AF_PREPAYMENT_ALARM_STATUS_TOP_UP_CODE_ERROR_OFFSET (1) -#define EMBER_AF_PREPAYMENT_ALARM_STATUS_TOP_UP_CODE_ALREADY_USED (0x0004) -#define EMBER_AF_PREPAYMENT_ALARM_STATUS_TOP_UP_CODE_ALREADY_USED_OFFSET (2) -#define EMBER_AF_PREPAYMENT_ALARM_STATUS_TOP_UP_CODE_INVALID (0x0008) -#define EMBER_AF_PREPAYMENT_ALARM_STATUS_TOP_UP_CODE_INVALID_OFFSET (3) -#define EMBER_AF_PREPAYMENT_ALARM_STATUS_FRIENDLY_CREDIT_IN_USE (0x0010) -#define EMBER_AF_PREPAYMENT_ALARM_STATUS_FRIENDLY_CREDIT_IN_USE_OFFSET (4) -#define EMBER_AF_PREPAYMENT_ALARM_STATUS_FRIENDLY_CREDIT_PERIOD_END_WARNING (0x0020) -#define EMBER_AF_PREPAYMENT_ALARM_STATUS_FRIENDLY_CREDIT_PERIOD_END_WARNING_OFFSET (5) -#define EMBER_AF_PREPAYMENT_ALARM_STATUS_EC_AVAILABLE (0x0040) -#define EMBER_AF_PREPAYMENT_ALARM_STATUS_EC_AVAILABLE_OFFSET (6) -#define EMBER_AF_PREPAYMENT_ALARM_STATUS_UNAUTHORISED_ENERGY_USE (0x0080) -#define EMBER_AF_PREPAYMENT_ALARM_STATUS_UNAUTHORISED_ENERGY_USE_OFFSET (7) -#define EMBER_AF_PREPAYMENT_ALARM_STATUS_DISCONNECTED_SUPPLY_DUE_TO_CREDIT (0x0100) -#define EMBER_AF_PREPAYMENT_ALARM_STATUS_DISCONNECTED_SUPPLY_DUE_TO_CREDIT_OFFSET (8) -#define EMBER_AF_PREPAYMENT_ALARM_STATUS_DISCONNECTED_SUPPLY_DUE_TO_TAMPER (0x0200) -#define EMBER_AF_PREPAYMENT_ALARM_STATUS_DISCONNECTED_SUPPLY_DUE_TO_TAMPER_OFFSET (9) -#define EMBER_AF_PREPAYMENT_ALARM_STATUS_DISCONNECTED_SUPPLY_DUE_TO_HES (0x0400) -#define EMBER_AF_PREPAYMENT_ALARM_STATUS_DISCONNECTED_SUPPLY_DUE_TO_HES_OFFSET (10) -#define EMBER_AF_PREPAYMENT_ALARM_STATUS_PHYSICAL_ATTACK (0x0800) -#define EMBER_AF_PREPAYMENT_ALARM_STATUS_PHYSICAL_ATTACK_OFFSET (11) -#define EMBER_AF_PREPAYMENT_ALARM_STATUS_ELECTRONIC_ATTACK (0x1000) -#define EMBER_AF_PREPAYMENT_ALARM_STATUS_ELECTRONIC_ATTACK_OFFSET (12) -#define EMBER_AF_PREPAYMENT_ALARM_STATUS_MANUFACTURE_ALARM_CODE_A (0x2000) -#define EMBER_AF_PREPAYMENT_ALARM_STATUS_MANUFACTURE_ALARM_CODE_A_OFFSET (13) -#define EMBER_AF_PREPAYMENT_ALARM_STATUS_MANUFACTURE_ALARM_CODE_B (0x4000) -#define EMBER_AF_PREPAYMENT_ALARM_STATUS_MANUFACTURE_ALARM_CODE_B_OFFSET (14) -#define EMBER_AF_ORIGINATOR_ID_SUPPLY_CONTROL_BITS_ACKNOWLEDGE_REQUIRED (0x01) -#define EMBER_AF_PREPAY_SNAPSHOT_PAYLOAD_CAUSE_GENERAL (0x00000001) -#define EMBER_AF_PREPAY_SNAPSHOT_PAYLOAD_CAUSE_CHANGE_OF_TARIFF_INFORMATION (0x00000008) -#define EMBER_AF_PREPAY_SNAPSHOT_PAYLOAD_CAUSE_CHANGE_OF_TARIFF_INFORMATION_OFFSET (3) -#define EMBER_AF_PREPAY_SNAPSHOT_PAYLOAD_CAUSE_CHANGE_OF_PRICE_MATRIX (0x00000010) -#define EMBER_AF_PREPAY_SNAPSHOT_PAYLOAD_CAUSE_CHANGE_OF_PRICE_MATRIX_OFFSET (4) -#define EMBER_AF_PREPAY_SNAPSHOT_PAYLOAD_CAUSE_MANUALLY_TRIGGERED_FROM_CLIENT (0x00000400) -#define EMBER_AF_PREPAY_SNAPSHOT_PAYLOAD_CAUSE_MANUALLY_TRIGGERED_FROM_CLIENT_OFFSET (10) -#define EMBER_AF_PREPAY_SNAPSHOT_PAYLOAD_CAUSE_CHANGE_OF_TENANCY (0x00001000) -#define EMBER_AF_PREPAY_SNAPSHOT_PAYLOAD_CAUSE_CHANGE_OF_TENANCY_OFFSET (12) -#define EMBER_AF_PREPAY_SNAPSHOT_PAYLOAD_CAUSE_CHANGE_OF_SUPPLIER (0x00002000) -#define EMBER_AF_PREPAY_SNAPSHOT_PAYLOAD_CAUSE_CHANGE_OF_SUPPLIER_OFFSET (13) -#define EMBER_AF_PREPAY_SNAPSHOT_PAYLOAD_CAUSE_CHANGE_OF_METER_MODE (0x00004000) -#define EMBER_AF_PREPAY_SNAPSHOT_PAYLOAD_CAUSE_CHANGE_OF_METER_MODE_OFFSET (14) -#define EMBER_AF_PREPAY_SNAPSHOT_PAYLOAD_CAUSE_TOP_UP_ADDITION (0x00040000) -#define EMBER_AF_PREPAY_SNAPSHOT_PAYLOAD_CAUSE_TOP_UP_ADDITION_OFFSET (18) -#define EMBER_AF_PREPAY_SNAPSHOT_PAYLOAD_CAUSE_DEBT_CREDIT_ADDITION (0x00080000) -#define EMBER_AF_PREPAY_SNAPSHOT_PAYLOAD_CAUSE_DEBT_CREDIT_ADDITION_OFFSET (19) -#define EMBER_AF_FRIENDLY_CREDIT_FRIENDLY_CREDIT_ENABLED (0x01) -#define EMBER_AF_LOAD_CONTROL_STATE_RELAY_OPEN_OR_CONSUMPTION_INTERUPTED (0x01) -#define EMBER_AF_LOAD_CONTROL_STATE_EVENT_IN_PROGRESS (0x02) -#define EMBER_AF_LOAD_CONTROL_STATE_EVENT_IN_PROGRESS_OFFSET (1) -#define EMBER_AF_LOAD_CONTROL_STATE_POWER_STABILIZING (0x04) -#define EMBER_AF_LOAD_CONTROL_STATE_POWER_STABILIZING_OFFSET (2) -#define EMBER_AF_LOAD_CONTROL_STATE_OTHER_LOAD_REDUCTION (0x08) -#define EMBER_AF_LOAD_CONTROL_STATE_OTHER_LOAD_REDUCTION_OFFSET (3) -#define EMBER_AF_LOAD_CONTROL_STATE_CURRENT_FLOW_OR_CONSUMING_COMMODITY (0x10) -#define EMBER_AF_LOAD_CONTROL_STATE_CURRENT_FLOW_OR_CONSUMING_COMMODITY_OFFSET (4) -#define EMBER_AF_LOAD_CONTROL_STATE_LOAD_CALL (0x20) -#define EMBER_AF_LOAD_CONTROL_STATE_LOAD_CALL_OFFSET (5) -#define EMBER_AF_CURRENT_EVENT_STATUS_RANDOMIZED_START_TIME (0x01) -#define EMBER_AF_CURRENT_EVENT_STATUS_RANDOMIZED_DURATION (0x02) -#define EMBER_AF_CURRENT_EVENT_STATUS_RANDOMIZED_DURATION_OFFSET (1) -#define EMBER_AF_CURRENT_EVENT_STATUS_EXTENDED_BITS_PRESENT (0x04) -#define EMBER_AF_CURRENT_EVENT_STATUS_EXTENDED_BITS_PRESENT_OFFSET (2) -#define EMBER_AF_CURRENT_EVENT_STATUS_EVENT_ACTIVE (0x08) -#define EMBER_AF_CURRENT_EVENT_STATUS_EVENT_ACTIVE_OFFSET (3) -#define EMBER_AF_CURRENT_EVENT_STATUS_DEVICE_PARTICIPATING_IN_EVENT (0x10) -#define EMBER_AF_CURRENT_EVENT_STATUS_DEVICE_PARTICIPATING_IN_EVENT_OFFSET (4) -#define EMBER_AF_CURRENT_EVENT_STATUS_REDUCING_LOAD (0x20) -#define EMBER_AF_CURRENT_EVENT_STATUS_REDUCING_LOAD_OFFSET (5) -#define EMBER_AF_CURRENT_EVENT_STATUS_ON_AT_END_OF_EVENT (0x40) -#define EMBER_AF_CURRENT_EVENT_STATUS_ON_AT_END_OF_EVENT_OFFSET (6) #define EMBER_AF_AUXILIARY_LOAD_SWITCH_STATE_AUXILIARY_SWITCH1 (0x01) +#define EMBER_AF_AUXILIARY_LOAD_SWITCH_STATE_AUXILIARY_SWITCH1_OFFSET (0) #define EMBER_AF_AUXILIARY_LOAD_SWITCH_STATE_AUXILIARY_SWITCH2 (0x02) #define EMBER_AF_AUXILIARY_LOAD_SWITCH_STATE_AUXILIARY_SWITCH2_OFFSET (1) #define EMBER_AF_AUXILIARY_LOAD_SWITCH_STATE_AUXILIARY_SWITCH3 (0x04) @@ -3080,52 +2685,314 @@ typedef enum #define EMBER_AF_AUXILIARY_LOAD_SWITCH_STATE_AUXILIARY_SWITCH7_OFFSET (6) #define EMBER_AF_AUXILIARY_LOAD_SWITCH_STATE_AUXILIARY_SWITCH8 (0x80) #define EMBER_AF_AUXILIARY_LOAD_SWITCH_STATE_AUXILIARY_SWITCH8_OFFSET (7) -#define EMBER_AF_PROPOSED_CHANGE_CONTROL_PRE_SNAPSHOTS (0x00000001) -#define EMBER_AF_PROPOSED_CHANGE_CONTROL_POST_SNAPSHOTS (0x00000002) -#define EMBER_AF_PROPOSED_CHANGE_CONTROL_POST_SNAPSHOTS_OFFSET (1) -#define EMBER_AF_PROPOSED_CHANGE_CONTROL_RESET_CREDIT_REGISTER (0x00000004) -#define EMBER_AF_PROPOSED_CHANGE_CONTROL_RESET_CREDIT_REGISTER_OFFSET (2) -#define EMBER_AF_PROPOSED_CHANGE_CONTROL_RESET_DEBIT_REGISTER (0x00000008) -#define EMBER_AF_PROPOSED_CHANGE_CONTROL_RESET_DEBIT_REGISTER_OFFSET (3) -#define EMBER_AF_PROPOSED_CHANGE_CONTROL_RESET_BILLING_PERIOD (0x00000010) -#define EMBER_AF_PROPOSED_CHANGE_CONTROL_RESET_BILLING_PERIOD_OFFSET (4) -#define EMBER_AF_PROPOSED_CHANGE_CONTROL_CLEAR_TARIFF_PLAN (0x00000020) -#define EMBER_AF_PROPOSED_CHANGE_CONTROL_CLEAR_TARIFF_PLAN_OFFSET (5) -#define EMBER_AF_PROPOSED_CHANGE_CONTROL_CLEAR_STANDING_CHARGE (0x00000040) -#define EMBER_AF_PROPOSED_CHANGE_CONTROL_CLEAR_STANDING_CHARGE_OFFSET (6) -#define EMBER_AF_PROPOSED_CHANGE_CONTROL_BLOCK_HISTORICAL_LOAD_PROFILE_INFORMATION (0x00000080) -#define EMBER_AF_PROPOSED_CHANGE_CONTROL_BLOCK_HISTORICAL_LOAD_PROFILE_INFORMATION_OFFSET (7) -#define EMBER_AF_PROPOSED_CHANGE_CONTROL_CLEAR_HISTORICAL_LOAD_PROFILE_INFORMATION (0x00000100) -#define EMBER_AF_PROPOSED_CHANGE_CONTROL_CLEAR_HISTORICAL_LOAD_PROFILE_INFORMATION_OFFSET (8) -#define EMBER_AF_PROPOSED_CHANGE_CONTROL_CLEAR_IHD_DATA_CONSUMER (0x00000200) -#define EMBER_AF_PROPOSED_CHANGE_CONTROL_CLEAR_IHD_DATA_CONSUMER_OFFSET (9) -#define EMBER_AF_PROPOSED_CHANGE_CONTROL_CLEAR_IHD_DATA_SUPPLIER (0x00000400) -#define EMBER_AF_PROPOSED_CHANGE_CONTROL_CLEAR_IHD_DATA_SUPPLIER_OFFSET (10) -#define EMBER_AF_PROPOSED_CHANGE_CONTROL_METER_CONNECTOR_STATE_ON_OFF_ARMED (0x00001800) -#define EMBER_AF_PROPOSED_CHANGE_CONTROL_METER_CONNECTOR_STATE_ON_OFF_ARMED_OFFSET (11) -#define EMBER_AF_PROPOSED_CHANGE_CONTROL_CLEAR_TRANSACTION_LOG (0x00002000) -#define EMBER_AF_PROPOSED_CHANGE_CONTROL_CLEAR_TRANSACTION_LOG_OFFSET (13) -#define EMBER_AF_PROPOSED_CHANGE_CONTROL_CLEAR_PREPAYMENT_LOG (0x00004000) -#define EMBER_AF_PROPOSED_CHANGE_CONTROL_CLEAR_PREPAYMENT_LOG_OFFSET (14) -#define EMBER_AF_EVENT_CONFIGURATION_LOG_ACTION (0x07) -#define EMBER_AF_EVENT_CONFIGURATION_PUSH_EVENT_TO_W_A_N (0x08) -#define EMBER_AF_EVENT_CONFIGURATION_PUSH_EVENT_TO_W_A_N_OFFSET (3) -#define EMBER_AF_EVENT_CONFIGURATION_PUSH_EVENT_TO_H_A_N (0x10) -#define EMBER_AF_EVENT_CONFIGURATION_PUSH_EVENT_TO_H_A_N_OFFSET (4) -#define EMBER_AF_EVENT_CONFIGURATION_RAISE_ALARM_ZIG_BEE (0x20) -#define EMBER_AF_EVENT_CONFIGURATION_RAISE_ALARM_ZIG_BEE_OFFSET (5) -#define EMBER_AF_EVENT_CONFIGURATION_RAISE_ALARM_PHYSICAL (0x40) -#define EMBER_AF_EVENT_CONFIGURATION_RAISE_ALARM_PHYSICAL_OFFSET (6) -#define EMBER_AF_EVENT_CONTROL_LOG_ID_LOG_ID (0x0F) -#define EMBER_AF_EVENT_CONTROL_LOG_ID_EVENT_CONTROL (0xF0) -#define EMBER_AF_EVENT_CONTROL_LOG_ID_EVENT_CONTROL_OFFSET (4) -#define EMBER_AF_EVENT_ACTION_CONTROL_REPORT_EVENT_TO_H_A_N_DEVICES (0x01) -#define EMBER_AF_EVENT_ACTION_CONTROL_REPORT_EVENT_TO_W_A_N (0x02) -#define EMBER_AF_EVENT_ACTION_CONTROL_REPORT_EVENT_TO_W_A_N_OFFSET (1) -#define EMBER_AF_NUMBER_OF_EVENTS_LOG_PAYLOAD_CONTROL_LOG_PAYLOAD_CONTROL (0x0F) -#define EMBER_AF_NUMBER_OF_EVENTS_LOG_PAYLOAD_CONTROL_NUMBER_OF_EVENTS (0xF0) -#define EMBER_AF_NUMBER_OF_EVENTS_LOG_PAYLOAD_CONTROL_NUMBER_OF_EVENTS_OFFSET (4) +#define EMBER_AF_BALLAST_STATUS_NON_OPERATIONAL (0x1) +#define EMBER_AF_BALLAST_STATUS_NON_OPERATIONAL_OFFSET (0) +#define EMBER_AF_BALLAST_STATUS_LAMP_NOT_IN_SOCKET (0x2) +#define EMBER_AF_BALLAST_STATUS_LAMP_NOT_IN_SOCKET_OFFSET (1) +#define EMBER_AF_BARRIER_CONTROL_CAPABILITIES_PARTIAL_BARRIER (0x01) +#define EMBER_AF_BARRIER_CONTROL_CAPABILITIES_PARTIAL_BARRIER_OFFSET (0) +#define EMBER_AF_BARRIER_CONTROL_SAFETY_STATUS_REMOTE_LOCKOUT (0x01) +#define EMBER_AF_BARRIER_CONTROL_SAFETY_STATUS_REMOTE_LOCKOUT_OFFSET (0) +#define EMBER_AF_BARRIER_CONTROL_SAFETY_STATUS_TEMPER_DETECTED (0x02) +#define EMBER_AF_BARRIER_CONTROL_SAFETY_STATUS_TEMPER_DETECTED_OFFSET (1) +#define EMBER_AF_BARRIER_CONTROL_SAFETY_STATUS_FAILED_COMMUNICATION (0x04) +#define EMBER_AF_BARRIER_CONTROL_SAFETY_STATUS_FAILED_COMMUNICATION_OFFSET (2) +#define EMBER_AF_BARRIER_CONTROL_SAFETY_STATUS_POSITION_FAILURE (0x08) +#define EMBER_AF_BARRIER_CONTROL_SAFETY_STATUS_POSITION_FAILURE_OFFSET (3) +#define EMBER_AF_BATTERY_ALARM_MASK_VOLTAGE_TOO_LOW (0x1) +#define EMBER_AF_BATTERY_ALARM_MASK_VOLTAGE_TOO_LOW_OFFSET (0) +#define EMBER_AF_BILL_TRAILING_DIGIT_TRAILING_DIGIT (0xF0) +#define EMBER_AF_BILL_TRAILING_DIGIT_TRAILING_DIGIT_OFFSET (4) +#define EMBER_AF_BILLING_PERIOD_DURATION_DURATION (0x3FFFFF) +#define EMBER_AF_BILLING_PERIOD_DURATION_DURATION_OFFSET (0) +#define EMBER_AF_BILLING_PERIOD_DURATION_UNITS (0xC00000) +#define EMBER_AF_BILLING_PERIOD_DURATION_UNITS_OFFSET (22) +#define EMBER_AF_BILLING_PERIOD_DURATION_TYPE_TIMEBASE (0x0F) +#define EMBER_AF_BILLING_PERIOD_DURATION_TYPE_TIMEBASE_OFFSET (0) +#define EMBER_AF_BILLING_PERIOD_DURATION_TYPE_CONTROL (0xF0) +#define EMBER_AF_BILLING_PERIOD_DURATION_TYPE_CONTROL_OFFSET (4) +#define EMBER_AF_BLOCK_PERIOD_CONTROL_PRICE_ACKNOWLEDGEMENT_REQUIREMENT (0x01) +#define EMBER_AF_BLOCK_PERIOD_CONTROL_PRICE_ACKNOWLEDGEMENT_REQUIREMENT_OFFSET (0) +#define EMBER_AF_BLOCK_PERIOD_CONTROL_REPEATING_BLOCK (0x02) +#define EMBER_AF_BLOCK_PERIOD_CONTROL_REPEATING_BLOCK_OFFSET (1) +#define EMBER_AF_BLOCK_PERIOD_DURATION_TYPE_TIMEBASE (0x0F) +#define EMBER_AF_BLOCK_PERIOD_DURATION_TYPE_TIMEBASE_OFFSET (0) +#define EMBER_AF_BLOCK_PERIOD_DURATION_TYPE_CONTROL (0xF0) +#define EMBER_AF_BLOCK_PERIOD_DURATION_TYPE_CONTROL_OFFSET (4) +#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER1 (0x0002) +#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER1_OFFSET (1) +#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER2 (0x0004) +#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER2_OFFSET (2) +#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER3 (0x0008) +#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER3_OFFSET (3) +#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER4 (0x0010) +#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER4_OFFSET (4) +#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER5 (0x0020) +#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER5_OFFSET (5) +#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER6 (0x0040) +#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER6_OFFSET (6) +#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER7 (0x0080) +#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER7_OFFSET (7) +#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER8 (0x0100) +#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER8_OFFSET (8) +#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER9 (0x0200) +#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER9_OFFSET (9) +#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER10 (0x0400) +#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER10_OFFSET (10) +#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER11 (0x0800) +#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER11_OFFSET (11) +#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER12 (0x1000) +#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER12_OFFSET (12) +#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER13 (0x2000) +#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER13_OFFSET (13) +#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER14 (0x4000) +#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER14_OFFSET (14) +#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER15 (0x8000) +#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER15_OFFSET (15) +#define EMBER_AF_BLOCK_THRESHOLD_SUB_PAYLOAD_CONTROL_APPLY_TO_ALL_TOU_TIERS_OR_WHEN_BLOCK_ONLY_CHARGING (0x01) +#define EMBER_AF_BLOCK_THRESHOLD_SUB_PAYLOAD_CONTROL_APPLY_TO_ALL_TOU_TIERS_OR_WHEN_BLOCK_ONLY_CHARGING_OFFSET (0) +#define EMBER_AF_CO2_TRAILING_DIGIT_TRAILING_DIGIT (0xF0) +#define EMBER_AF_CO2_TRAILING_DIGIT_TRAILING_DIGIT_OFFSET (4) +#define EMBER_AF_CALORIFIC_VALUE_TRAILING_DIGIT_TRAILING_DIGIT (0xF0) +#define EMBER_AF_CALORIFIC_VALUE_TRAILING_DIGIT_TRAILING_DIGIT_OFFSET (4) +#define EMBER_AF_CHANNEL_MASK_CHANNEL0 (0x00000001) +#define EMBER_AF_CHANNEL_MASK_CHANNEL0_OFFSET (0) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL0 (0x00000001) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL0_OFFSET (0) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL27 (0x00000001) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL27_OFFSET (0) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL35 (0x00000001) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL35_OFFSET (0) +#define EMBER_AF_CHANNEL_MASK_915_CHANNEL0 (0x00000001) +#define EMBER_AF_CHANNEL_MASK_915_CHANNEL0_OFFSET (0) +#define EMBER_AF_CHANNEL_MASK_CHANNEL1 (0x00000002) +#define EMBER_AF_CHANNEL_MASK_CHANNEL1_OFFSET (1) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL1 (0x00000002) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL1_OFFSET (1) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL28 (0x00000002) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL28_OFFSET (1) +#define EMBER_AF_CHANNEL_MASK_853_CHANNEL36 (0x00000002) +#define EMBER_AF_CHANNEL_MASK_853_CHANNEL36_OFFSET (1) +#define EMBER_AF_CHANNEL_MASK_915_CHANNEL1 (0x00000002) +#define EMBER_AF_CHANNEL_MASK_915_CHANNEL1_OFFSET (1) +#define EMBER_AF_CHANNEL_MASK_CHANNEL2 (0x00000004) +#define EMBER_AF_CHANNEL_MASK_CHANNEL2_OFFSET (2) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL2 (0x00000004) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL2_OFFSET (2) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL29 (0x00000004) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL29_OFFSET (2) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL37 (0x00000004) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL37_OFFSET (2) +#define EMBER_AF_CHANNEL_MASK_915_CHANNEL2 (0x00000004) +#define EMBER_AF_CHANNEL_MASK_915_CHANNEL2_OFFSET (2) +#define EMBER_AF_CHANNEL_MASK_CHANNEL3 (0x00000008) +#define EMBER_AF_CHANNEL_MASK_CHANNEL3_OFFSET (3) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL3 (0x00000008) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL3_OFFSET (3) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL30 (0x00000008) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL30_OFFSET (3) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL38 (0x00000008) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL38_OFFSET (3) +#define EMBER_AF_CHANNEL_MASK_915_CHANNEL3 (0x00000008) +#define EMBER_AF_CHANNEL_MASK_915_CHANNEL3_OFFSET (3) +#define EMBER_AF_CHANNEL_MASK_CHANNEL4 (0x00000010) +#define EMBER_AF_CHANNEL_MASK_CHANNEL4_OFFSET (4) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL4 (0x00000010) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL4_OFFSET (4) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL31 (0x00000010) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL31_OFFSET (4) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL39 (0x00000010) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL39_OFFSET (4) +#define EMBER_AF_CHANNEL_MASK_915_CHANNEL4 (0x00000010) +#define EMBER_AF_CHANNEL_MASK_915_CHANNEL4_OFFSET (4) +#define EMBER_AF_CHANNEL_MASK_CHANNEL5 (0x00000020) +#define EMBER_AF_CHANNEL_MASK_CHANNEL5_OFFSET (5) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL5 (0x00000020) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL5_OFFSET (5) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL32 (0x00000020) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL32_OFFSET (5) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL40 (0x00000020) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL40_OFFSET (5) +#define EMBER_AF_CHANNEL_MASK_915_CHANNEL5 (0x00000020) +#define EMBER_AF_CHANNEL_MASK_915_CHANNEL5_OFFSET (5) +#define EMBER_AF_CHANNEL_MASK_CHANNEL6 (0x00000040) +#define EMBER_AF_CHANNEL_MASK_CHANNEL6_OFFSET (6) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL6 (0x00000040) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL6_OFFSET (6) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL33 (0x00000040) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL33_OFFSET (6) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL41 (0x00000040) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL41_OFFSET (6) +#define EMBER_AF_CHANNEL_MASK_915_CHANNEL6 (0x00000040) +#define EMBER_AF_CHANNEL_MASK_915_CHANNEL6_OFFSET (6) +#define EMBER_AF_CHANNEL_MASK_CHANNEL7 (0x00000080) +#define EMBER_AF_CHANNEL_MASK_CHANNEL7_OFFSET (7) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL7 (0x00000080) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL7_OFFSET (7) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL34 (0x00000080) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL34_OFFSET (7) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL42 (0x00000080) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL42_OFFSET (7) +#define EMBER_AF_CHANNEL_MASK_915_CHANNEL7 (0x00000080) +#define EMBER_AF_CHANNEL_MASK_915_CHANNEL7_OFFSET (7) +#define EMBER_AF_CHANNEL_MASK_CHANNEL8 (0x00000100) +#define EMBER_AF_CHANNEL_MASK_CHANNEL8_OFFSET (8) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL8 (0x00000100) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL8_OFFSET (8) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL62 (0x00000100) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL62_OFFSET (8) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL43 (0x00000100) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL43_OFFSET (8) +#define EMBER_AF_CHANNEL_MASK_915_CHANNEL8 (0x00000100) +#define EMBER_AF_CHANNEL_MASK_915_CHANNEL8_OFFSET (8) +#define EMBER_AF_CHANNEL_MASK_CHANNEL9 (0x00000200) +#define EMBER_AF_CHANNEL_MASK_CHANNEL9_OFFSET (9) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL9 (0x00000200) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL9_OFFSET (9) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL44 (0x00000200) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL44_OFFSET (9) +#define EMBER_AF_CHANNEL_MASK_915_CHANNEL9 (0x00000200) +#define EMBER_AF_CHANNEL_MASK_915_CHANNEL9_OFFSET (9) +#define EMBER_AF_CHANNEL_MASK_CHANNEL10 (0x00000400) +#define EMBER_AF_CHANNEL_MASK_CHANNEL10_OFFSET (10) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL10 (0x00000400) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL10_OFFSET (10) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL45 (0x00000400) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL45_OFFSET (10) +#define EMBER_AF_CHANNEL_MASK_915_CHANNEL10 (0x00000400) +#define EMBER_AF_CHANNEL_MASK_915_CHANNEL10_OFFSET (10) +#define EMBER_AF_CHANNEL_MASK_CHANNEL11 (0x00000800) +#define EMBER_AF_CHANNEL_MASK_CHANNEL11_OFFSET (11) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL11 (0x00000800) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL11_OFFSET (11) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL46 (0x00000800) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL46_OFFSET (11) +#define EMBER_AF_CHANNEL_MASK_915_CHANNEL11 (0x00000800) +#define EMBER_AF_CHANNEL_MASK_915_CHANNEL11_OFFSET (11) +#define EMBER_AF_CHANNEL_MASK_CHANNEL12 (0x00001000) +#define EMBER_AF_CHANNEL_MASK_CHANNEL12_OFFSET (12) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL12 (0x00001000) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL12_OFFSET (12) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL47 (0x00001000) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL47_OFFSET (12) +#define EMBER_AF_CHANNEL_MASK_915_CHANNEL12 (0x00001000) +#define EMBER_AF_CHANNEL_MASK_915_CHANNEL12_OFFSET (12) +#define EMBER_AF_CHANNEL_MASK_CHANNEL13 (0x00002000) +#define EMBER_AF_CHANNEL_MASK_CHANNEL13_OFFSET (13) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL13 (0x00002000) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL13_OFFSET (13) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL48 (0x00002000) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL48_OFFSET (13) +#define EMBER_AF_CHANNEL_MASK_915_CHANNEL13 (0x00002000) +#define EMBER_AF_CHANNEL_MASK_915_CHANNEL13_OFFSET (13) +#define EMBER_AF_CHANNEL_MASK_CHANNEL14 (0x00004000) +#define EMBER_AF_CHANNEL_MASK_CHANNEL14_OFFSET (14) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL14 (0x00004000) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL14_OFFSET (14) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL49 (0x00004000) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL49_OFFSET (14) +#define EMBER_AF_CHANNEL_MASK_915_CHANNEL14 (0x00004000) +#define EMBER_AF_CHANNEL_MASK_915_CHANNEL14_OFFSET (14) +#define EMBER_AF_CHANNEL_MASK_CHANNEL15 (0x00008000) +#define EMBER_AF_CHANNEL_MASK_CHANNEL15_OFFSET (15) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL15 (0x00008000) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL15_OFFSET (15) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL50 (0x00008000) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL50_OFFSET (15) +#define EMBER_AF_CHANNEL_MASK_915_CHANNEL15 (0x00008000) +#define EMBER_AF_CHANNEL_MASK_915_CHANNEL15_OFFSET (15) +#define EMBER_AF_CHANNEL_MASK_CHANNEL16 (0x00010000) +#define EMBER_AF_CHANNEL_MASK_CHANNEL16_OFFSET (16) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL16 (0x00010000) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL16_OFFSET (16) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL51 (0x00010000) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL51_OFFSET (16) +#define EMBER_AF_CHANNEL_MASK_915_CHANNEL16 (0x00010000) +#define EMBER_AF_CHANNEL_MASK_915_CHANNEL16_OFFSET (16) +#define EMBER_AF_CHANNEL_MASK_CHANNEL17 (0x00020000) +#define EMBER_AF_CHANNEL_MASK_CHANNEL17_OFFSET (17) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL17 (0x00020000) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL17_OFFSET (17) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL52 (0x00020000) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL52_OFFSET (17) +#define EMBER_AF_CHANNEL_MASK_915_CHANNEL17 (0x00020000) +#define EMBER_AF_CHANNEL_MASK_915_CHANNEL17_OFFSET (17) +#define EMBER_AF_CHANNEL_MASK_CHANNEL18 (0x00040000) +#define EMBER_AF_CHANNEL_MASK_CHANNEL18_OFFSET (18) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL18 (0x00040000) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL18_OFFSET (18) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL53 (0x00040000) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL53_OFFSET (18) +#define EMBER_AF_CHANNEL_MASK_915_CHANNEL18 (0x00040000) +#define EMBER_AF_CHANNEL_MASK_915_CHANNEL18_OFFSET (18) +#define EMBER_AF_CHANNEL_MASK_CHANNEL19 (0x00080000) +#define EMBER_AF_CHANNEL_MASK_CHANNEL19_OFFSET (19) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL19 (0x00080000) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL19_OFFSET (19) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL54 (0x00080000) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL54_OFFSET (19) +#define EMBER_AF_CHANNEL_MASK_915_CHANNEL19 (0x00080000) +#define EMBER_AF_CHANNEL_MASK_915_CHANNEL19_OFFSET (19) +#define EMBER_AF_CHANNEL_MASK_CHANNEL20 (0x00100000) +#define EMBER_AF_CHANNEL_MASK_CHANNEL20_OFFSET (20) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL20 (0x00100000) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL20_OFFSET (20) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL55 (0x00100000) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL55_OFFSET (20) +#define EMBER_AF_CHANNEL_MASK_915_CHANNEL20 (0x00100000) +#define EMBER_AF_CHANNEL_MASK_915_CHANNEL20_OFFSET (20) +#define EMBER_AF_CHANNEL_MASK_CHANNEL21 (0x00200000) +#define EMBER_AF_CHANNEL_MASK_CHANNEL21_OFFSET (21) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL21 (0x00200000) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL21_OFFSET (21) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL56 (0x00200000) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL56_OFFSET (21) +#define EMBER_AF_CHANNEL_MASK_915_CHANNEL21 (0x00200000) +#define EMBER_AF_CHANNEL_MASK_915_CHANNEL21_OFFSET (21) +#define EMBER_AF_CHANNEL_MASK_CHANNEL22 (0x00400000) +#define EMBER_AF_CHANNEL_MASK_CHANNEL22_OFFSET (22) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL22 (0x00400000) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL22_OFFSET (22) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL57 (0x00400000) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL57_OFFSET (22) +#define EMBER_AF_CHANNEL_MASK_915_CHANNEL22 (0x00400000) +#define EMBER_AF_CHANNEL_MASK_915_CHANNEL22_OFFSET (22) +#define EMBER_AF_CHANNEL_MASK_CHANNEL23 (0x00800000) +#define EMBER_AF_CHANNEL_MASK_CHANNEL23_OFFSET (23) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL23 (0x00800000) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL23_OFFSET (23) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL58 (0x00800000) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL58_OFFSET (23) +#define EMBER_AF_CHANNEL_MASK_915_CHANNEL23 (0x00800000) +#define EMBER_AF_CHANNEL_MASK_915_CHANNEL23_OFFSET (23) +#define EMBER_AF_CHANNEL_MASK_CHANNEL24 (0x01000000) +#define EMBER_AF_CHANNEL_MASK_CHANNEL24_OFFSET (24) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL24 (0x01000000) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL24_OFFSET (24) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL59 (0x01000000) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL59_OFFSET (24) +#define EMBER_AF_CHANNEL_MASK_915_CHANNEL24 (0x01000000) +#define EMBER_AF_CHANNEL_MASK_915_CHANNEL24_OFFSET (24) +#define EMBER_AF_CHANNEL_MASK_CHANNEL25 (0x02000000) +#define EMBER_AF_CHANNEL_MASK_CHANNEL25_OFFSET (25) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL25 (0x02000000) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL25_OFFSET (25) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL60 (0x02000000) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL60_OFFSET (25) +#define EMBER_AF_CHANNEL_MASK_915_CHANNEL25 (0x02000000) +#define EMBER_AF_CHANNEL_MASK_915_CHANNEL25_OFFSET (25) +#define EMBER_AF_CHANNEL_MASK_CHANNEL26 (0x04000000) +#define EMBER_AF_CHANNEL_MASK_CHANNEL26_OFFSET (26) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL26 (0x04000000) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL26_OFFSET (26) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL61 (0x04000000) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL61_OFFSET (26) +#define EMBER_AF_CHANNEL_MASK_915_CHANNEL26 (0x04000000) +#define EMBER_AF_CHANNEL_MASK_915_CHANNEL26_OFFSET (26) +#define EMBER_AF_CHANNEL_MASK_PAGE (0xF8000000) +#define EMBER_AF_CHANNEL_MASK_PAGE_OFFSET (27) #define EMBER_AF_CLEARED_EVENTS_LOGS_ALL_LOGS_CLEARED (0x01) +#define EMBER_AF_CLEARED_EVENTS_LOGS_ALL_LOGS_CLEARED_OFFSET (0) #define EMBER_AF_CLEARED_EVENTS_LOGS_TAMPER_LOG_CLEARED (0x02) #define EMBER_AF_CLEARED_EVENTS_LOGS_TAMPER_LOG_CLEARED_OFFSET (1) #define EMBER_AF_CLEARED_EVENTS_LOGS_FAULT_LOG_CLEARED (0x04) @@ -3136,97 +3003,254 @@ typedef enum #define EMBER_AF_CLEARED_EVENTS_LOGS_SECURITY_EVENT_LOG_CLEARED_OFFSET (4) #define EMBER_AF_CLEARED_EVENTS_LOGS_NETWORK_EVENT_LOG_CLEARED (0x20) #define EMBER_AF_CLEARED_EVENTS_LOGS_NETWORK_EVENT_LOG_CLEARED_OFFSET (5) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL0 (0x00000001) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL1 (0x00000002) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL1_OFFSET (1) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL2 (0x00000004) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL2_OFFSET (2) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL3 (0x00000008) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL3_OFFSET (3) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL4 (0x00000010) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL4_OFFSET (4) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL5 (0x00000020) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL5_OFFSET (5) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL6 (0x00000040) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL6_OFFSET (6) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL7 (0x00000080) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL7_OFFSET (7) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL8 (0x00000100) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL8_OFFSET (8) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL9 (0x00000200) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL9_OFFSET (9) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL10 (0x00000400) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL10_OFFSET (10) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL11 (0x00000800) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL11_OFFSET (11) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL12 (0x00001000) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL12_OFFSET (12) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL13 (0x00002000) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL13_OFFSET (13) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL14 (0x00004000) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL14_OFFSET (14) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL15 (0x00008000) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL15_OFFSET (15) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL16 (0x00010000) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL16_OFFSET (16) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL17 (0x00020000) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL17_OFFSET (17) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL18 (0x00040000) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL18_OFFSET (18) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL19 (0x00080000) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL19_OFFSET (19) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL20 (0x00100000) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL20_OFFSET (20) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL21 (0x00200000) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL21_OFFSET (21) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL22 (0x00400000) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL22_OFFSET (22) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL23 (0x00800000) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL23_OFFSET (23) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL24 (0x01000000) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL24_OFFSET (24) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL25 (0x02000000) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL25_OFFSET (25) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL26 (0x04000000) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL26_OFFSET (26) -#define EMBER_AF_CHANNEL_MASK_PAGE (0xF8000000) -#define EMBER_AF_CHANNEL_MASK_PAGE_OFFSET (27) -#define EMBER_AF_SCENES_COPY_MODE_COPY_ALL_SCENES (0x01) -#define EMBER_AF_ON_OFF_CONTROL_ACCEPT_ONLY_WHEN_ON (0x01) #define EMBER_AF_COLOR_CAPABILITIES_HUE_SATURATION_SUPPORTED (0x0001) +#define EMBER_AF_COLOR_CAPABILITIES_HUE_SATURATION_SUPPORTED_OFFSET (0) #define EMBER_AF_COLOR_CAPABILITIES_ENHANCED_HUE_SUPPORTED (0x0002) #define EMBER_AF_COLOR_CAPABILITIES_ENHANCED_HUE_SUPPORTED_OFFSET (1) #define EMBER_AF_COLOR_CAPABILITIES_COLOR_LOOP_SUPPORTED (0x0004) #define EMBER_AF_COLOR_CAPABILITIES_COLOR_LOOP_SUPPORTED_OFFSET (2) -#define EMBER_AF_COLOR_CAPABILITIES_X_Y_ATTRIBUTES_SUPPORTED (0x0008) -#define EMBER_AF_COLOR_CAPABILITIES_X_Y_ATTRIBUTES_SUPPORTED_OFFSET (3) +#define EMBER_AF_COLOR_CAPABILITIES_XY_ATTRIBUTES_SUPPORTED (0x0008) +#define EMBER_AF_COLOR_CAPABILITIES_XY_ATTRIBUTES_SUPPORTED_OFFSET (3) #define EMBER_AF_COLOR_CAPABILITIES_COLOR_TEMPERATURE_SUPPORTED (0x0010) #define EMBER_AF_COLOR_CAPABILITIES_COLOR_TEMPERATURE_SUPPORTED_OFFSET (4) #define EMBER_AF_COLOR_LOOP_UPDATE_FLAGS_UPDATE_ACTION (0x01) +#define EMBER_AF_COLOR_LOOP_UPDATE_FLAGS_UPDATE_ACTION_OFFSET (0) #define EMBER_AF_COLOR_LOOP_UPDATE_FLAGS_UPDATE_DIRECTION (0x02) #define EMBER_AF_COLOR_LOOP_UPDATE_FLAGS_UPDATE_DIRECTION_OFFSET (1) #define EMBER_AF_COLOR_LOOP_UPDATE_FLAGS_UPDATE_TIME (0x04) #define EMBER_AF_COLOR_LOOP_UPDATE_FLAGS_UPDATE_TIME_OFFSET (2) #define EMBER_AF_COLOR_LOOP_UPDATE_FLAGS_UPDATE_START_HUE (0x08) #define EMBER_AF_COLOR_LOOP_UPDATE_FLAGS_UPDATE_START_HUE_OFFSET (3) -#define EMBER_AF_ZIGBEE_INFORMATION_LOGICAL_TYPE (0x03) -#define EMBER_AF_ZIGBEE_INFORMATION_RX_ON_WHEN_IDLE (0x04) -#define EMBER_AF_ZIGBEE_INFORMATION_RX_ON_WHEN_IDLE_OFFSET (2) -#define EMBER_AF_ZLL_INFORMATION_FACTORY_NEW (0x01) -#define EMBER_AF_ZLL_INFORMATION_ADDRESS_ASSIGNMENT (0x02) -#define EMBER_AF_ZLL_INFORMATION_ADDRESS_ASSIGNMENT_OFFSET (1) -#define EMBER_AF_ZLL_INFORMATION_TOUCH_LINK_INITIATOR (0x10) -#define EMBER_AF_ZLL_INFORMATION_TOUCH_LINK_INITIATOR_OFFSET (4) -#define EMBER_AF_ZLL_INFORMATION_TOUCH_LINK_PRIORITY_REQUEST (0x20) -#define EMBER_AF_ZLL_INFORMATION_TOUCH_LINK_PRIORITY_REQUEST_OFFSET (5) -#define EMBER_AF_ZLL_INFORMATION_PROFILE_INTEROP (0x80) -#define EMBER_AF_ZLL_INFORMATION_PROFILE_INTEROP_OFFSET (7) -#define EMBER_AF_KEY_BITMASK_DEVELOPMENT (0x0001) -#define EMBER_AF_KEY_BITMASK_MASTER (0x0010) -#define EMBER_AF_KEY_BITMASK_MASTER_OFFSET (4) -#define EMBER_AF_KEY_BITMASK_CERTIFICATION (0x8000) -#define EMBER_AF_KEY_BITMASK_CERTIFICATION_OFFSET (15) +#define EMBER_AF_CONVERSION_FACTOR_TRAILING_DIGIT_TRAILING_DIGIT (0xF0) +#define EMBER_AF_CONVERSION_FACTOR_TRAILING_DIGIT_TRAILING_DIGIT_OFFSET (4) +#define EMBER_AF_CREDIT_STATUS_CREDIT_OK (0x01) +#define EMBER_AF_CREDIT_STATUS_CREDIT_OK_OFFSET (0) +#define EMBER_AF_CREDIT_STATUS_LOW_CREDIT (0x02) +#define EMBER_AF_CREDIT_STATUS_LOW_CREDIT_OFFSET (1) +#define EMBER_AF_CREDIT_STATUS_EMERGENCY_CREDIT_ENABLED (0x04) +#define EMBER_AF_CREDIT_STATUS_EMERGENCY_CREDIT_ENABLED_OFFSET (2) +#define EMBER_AF_CREDIT_STATUS_EMERGENCY_CREDIT_AVAILABLE (0x08) +#define EMBER_AF_CREDIT_STATUS_EMERGENCY_CREDIT_AVAILABLE_OFFSET (3) +#define EMBER_AF_CREDIT_STATUS_EMERGENCY_CREDIT_SELECTED (0x10) +#define EMBER_AF_CREDIT_STATUS_EMERGENCY_CREDIT_SELECTED_OFFSET (4) +#define EMBER_AF_CREDIT_STATUS_EMERGENCY_CREDIT_IN_USE (0x20) +#define EMBER_AF_CREDIT_STATUS_EMERGENCY_CREDIT_IN_USE_OFFSET (5) +#define EMBER_AF_CREDIT_STATUS_CREDIT_EXHAUSTED (0x40) +#define EMBER_AF_CREDIT_STATUS_CREDIT_EXHAUSTED_OFFSET (6) +#define EMBER_AF_CURRENCY_CHANGE_CONTROL_CLEAR_BILLING_INFO (0x01) +#define EMBER_AF_CURRENCY_CHANGE_CONTROL_CLEAR_BILLING_INFO_OFFSET (0) +#define EMBER_AF_CURRENCY_CHANGE_CONTROL_CONVERT_BILLING_INFO_USING_NEW_CURRENCY (0x02) +#define EMBER_AF_CURRENCY_CHANGE_CONTROL_CONVERT_BILLING_INFO_USING_NEW_CURRENCY_OFFSET (1) +#define EMBER_AF_CURRENCY_CHANGE_CONTROL_CLEAR_OLD_CONSUMPTION_DATA (0x04) +#define EMBER_AF_CURRENCY_CHANGE_CONTROL_CLEAR_OLD_CONSUMPTION_DATA_OFFSET (2) +#define EMBER_AF_CURRENCY_CHANGE_CONTROL_CONVERT_OLD_CONSUMPTION_DATA_USING_NEW_CURRENCY (0x08) +#define EMBER_AF_CURRENCY_CHANGE_CONTROL_CONVERT_OLD_CONSUMPTION_DATA_USING_NEW_CURRENCY_OFFSET (3) +#define EMBER_AF_CURRENT_EVENT_STATUS_RANDOMIZED_START_TIME (0x01) +#define EMBER_AF_CURRENT_EVENT_STATUS_RANDOMIZED_START_TIME_OFFSET (0) +#define EMBER_AF_CURRENT_EVENT_STATUS_RANDOMIZED_DURATION (0x02) +#define EMBER_AF_CURRENT_EVENT_STATUS_RANDOMIZED_DURATION_OFFSET (1) +#define EMBER_AF_CURRENT_EVENT_STATUS_EXTENDED_BITS_PRESENT (0x04) +#define EMBER_AF_CURRENT_EVENT_STATUS_EXTENDED_BITS_PRESENT_OFFSET (2) +#define EMBER_AF_CURRENT_EVENT_STATUS_EVENT_ACTIVE (0x08) +#define EMBER_AF_CURRENT_EVENT_STATUS_EVENT_ACTIVE_OFFSET (3) +#define EMBER_AF_CURRENT_EVENT_STATUS_DEVICE_PARTICIPATING_IN_EVENT (0x10) +#define EMBER_AF_CURRENT_EVENT_STATUS_DEVICE_PARTICIPATING_IN_EVENT_OFFSET (4) +#define EMBER_AF_CURRENT_EVENT_STATUS_REDUCING_LOAD (0x20) +#define EMBER_AF_CURRENT_EVENT_STATUS_REDUCING_LOAD_OFFSET (5) +#define EMBER_AF_CURRENT_EVENT_STATUS_ON_AT_END_OF_EVENT (0x40) +#define EMBER_AF_CURRENT_EVENT_STATUS_ON_AT_END_OF_EVENT_OFFSET (6) +#define EMBER_AF_DAY_OF_WEEK_SUNDAY (0x01) +#define EMBER_AF_DAY_OF_WEEK_SUNDAY_OFFSET (0) +#define EMBER_AF_DAY_OF_WEEK_MONDAY (0x02) +#define EMBER_AF_DAY_OF_WEEK_MONDAY_OFFSET (1) +#define EMBER_AF_DAY_OF_WEEK_TUESDAY (0x04) +#define EMBER_AF_DAY_OF_WEEK_TUESDAY_OFFSET (2) +#define EMBER_AF_DAY_OF_WEEK_WEDNESDAY (0x08) +#define EMBER_AF_DAY_OF_WEEK_WEDNESDAY_OFFSET (3) +#define EMBER_AF_DAY_OF_WEEK_THURSDAY (0x10) +#define EMBER_AF_DAY_OF_WEEK_THURSDAY_OFFSET (4) +#define EMBER_AF_DAY_OF_WEEK_FRIDAY (0x20) +#define EMBER_AF_DAY_OF_WEEK_FRIDAY_OFFSET (5) +#define EMBER_AF_DAY_OF_WEEK_SATURDAY (0x40) +#define EMBER_AF_DAY_OF_WEEK_SATURDAY_OFFSET (6) +#define EMBER_AF_DAY_OF_WEEK_AWAY_OR_VACATION (0x80) +#define EMBER_AF_DAY_OF_WEEK_AWAY_OR_VACATION_OFFSET (7) +#define EMBER_AF_DEVICE_TEMP_ALARM_MASK_TOO_LOW (0x1) +#define EMBER_AF_DEVICE_TEMP_ALARM_MASK_TOO_LOW_OFFSET (0) +#define EMBER_AF_DEVICE_TEMP_ALARM_MASK_TOO_HIGH (0x2) +#define EMBER_AF_DEVICE_TEMP_ALARM_MASK_TOO_HIGH_OFFSET (1) +#define EMBER_AF_DOOR_LOCK_DAY_OF_WEEK_SUNDAY (0x01) +#define EMBER_AF_DOOR_LOCK_DAY_OF_WEEK_SUNDAY_OFFSET (0) +#define EMBER_AF_DOOR_LOCK_DAY_OF_WEEK_MONDAY (0x02) +#define EMBER_AF_DOOR_LOCK_DAY_OF_WEEK_MONDAY_OFFSET (1) +#define EMBER_AF_DOOR_LOCK_DAY_OF_WEEK_TUESDAY (0x04) +#define EMBER_AF_DOOR_LOCK_DAY_OF_WEEK_TUESDAY_OFFSET (2) +#define EMBER_AF_DOOR_LOCK_DAY_OF_WEEK_WEDNESDAY (0x08) +#define EMBER_AF_DOOR_LOCK_DAY_OF_WEEK_WEDNESDAY_OFFSET (3) +#define EMBER_AF_DOOR_LOCK_DAY_OF_WEEK_THURSDAY (0x10) +#define EMBER_AF_DOOR_LOCK_DAY_OF_WEEK_THURSDAY_OFFSET (4) +#define EMBER_AF_DOOR_LOCK_DAY_OF_WEEK_FRIDAY (0x20) +#define EMBER_AF_DOOR_LOCK_DAY_OF_WEEK_FRIDAY_OFFSET (5) +#define EMBER_AF_DOOR_LOCK_DAY_OF_WEEK_SATURDAY (0x40) +#define EMBER_AF_DOOR_LOCK_DAY_OF_WEEK_SATURDAY_OFFSET (6) +#define EMBER_AF_ENERGY_FORMATTING_NUMBER_OF_DIGITS_TO_THE_RIGHT_OF_THE_DECIMAL_POINT (0x07) +#define EMBER_AF_ENERGY_FORMATTING_NUMBER_OF_DIGITS_TO_THE_RIGHT_OF_THE_DECIMAL_POINT_OFFSET (0) +#define EMBER_AF_ENERGY_FORMATTING_NUMBER_OF_DIGITS_TO_THE_LEFT_OF_THE_DECIMAL_POINT (0x78) +#define EMBER_AF_ENERGY_FORMATTING_NUMBER_OF_DIGITS_TO_THE_LEFT_OF_THE_DECIMAL_POINT_OFFSET (3) +#define EMBER_AF_ENERGY_FORMATTING_SUPPRESS_LEADING_ZEROS (0x80) +#define EMBER_AF_ENERGY_FORMATTING_SUPPRESS_LEADING_ZEROS_OFFSET (7) +#define EMBER_AF_EVENT_ACTION_CONTROL_REPORT_EVENT_TO_HAN_DEVICES (0x01) +#define EMBER_AF_EVENT_ACTION_CONTROL_REPORT_EVENT_TO_HAN_DEVICES_OFFSET (0) +#define EMBER_AF_EVENT_ACTION_CONTROL_REPORT_EVENT_TO_WAN (0x02) +#define EMBER_AF_EVENT_ACTION_CONTROL_REPORT_EVENT_TO_WAN_OFFSET (1) +#define EMBER_AF_EVENT_CONFIGURATION_LOG_ACTION (0x07) +#define EMBER_AF_EVENT_CONFIGURATION_LOG_ACTION_OFFSET (0) +#define EMBER_AF_EVENT_CONFIGURATION_PUSH_EVENT_TO_WAN (0x08) +#define EMBER_AF_EVENT_CONFIGURATION_PUSH_EVENT_TO_WAN_OFFSET (3) +#define EMBER_AF_EVENT_CONFIGURATION_PUSH_EVENT_TO_HAN (0x10) +#define EMBER_AF_EVENT_CONFIGURATION_PUSH_EVENT_TO_HAN_OFFSET (4) +#define EMBER_AF_EVENT_CONFIGURATION_RAISE_ALARM_ZIG_BEE (0x20) +#define EMBER_AF_EVENT_CONFIGURATION_RAISE_ALARM_ZIG_BEE_OFFSET (5) +#define EMBER_AF_EVENT_CONFIGURATION_RAISE_ALARM_PHYSICAL (0x40) +#define EMBER_AF_EVENT_CONFIGURATION_RAISE_ALARM_PHYSICAL_OFFSET (6) +#define EMBER_AF_EVENT_CONTROL_LOG_ID_LOG_ID (0x0F) +#define EMBER_AF_EVENT_CONTROL_LOG_ID_LOG_ID_OFFSET (0) +#define EMBER_AF_EVENT_CONTROL_LOG_ID_EVENT_CONTROL (0xF0) +#define EMBER_AF_EVENT_CONTROL_LOG_ID_EVENT_CONTROL_OFFSET (4) +#define EMBER_AF_FRIENDLY_CREDIT_FRIENDLY_CREDIT_ENABLED (0x01) +#define EMBER_AF_FRIENDLY_CREDIT_FRIENDLY_CREDIT_ENABLED_OFFSET (0) +#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_NEW_OTA_FIRMWARE (0x00000001) +#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_NEW_OTA_FIRMWARE_OFFSET (0) +#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_CBKE_UPDATE_REQUEST (0x00000002) +#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_CBKE_UPDATE_REQUEST_OFFSET (1) +#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_TIME_SYNC (0x00000004) +#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_TIME_SYNC_OFFSET (2) +#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_STAY_AWAKE_REQUEST_HAN (0x00000010) +#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_STAY_AWAKE_REQUEST_HAN_OFFSET (4) +#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_STAY_AWAKE_REQUEST_WAN (0x00000020) +#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_STAY_AWAKE_REQUEST_WAN_OFFSET (5) +#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_PUSH_HISTORICAL_METERING_DATA_ATTRIBUTE_SET (0x000001C0) +#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_PUSH_HISTORICAL_METERING_DATA_ATTRIBUTE_SET_OFFSET (6) +#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_PUSH_HISTORICAL_PREPAYMENT_DATA_ATTRIBUTE_SET (0x00000E00) +#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_PUSH_HISTORICAL_PREPAYMENT_DATA_ATTRIBUTE_SET_OFFSET (9) +#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_PUSH_ALL_STATIC_DATA_BASIC_CLUSTER (0x00001000) +#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_PUSH_ALL_STATIC_DATA_BASIC_CLUSTER_OFFSET (12) +#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_PUSH_ALL_STATIC_DATA_METERING_CLUSTER (0x00002000) +#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_PUSH_ALL_STATIC_DATA_METERING_CLUSTER_OFFSET (13) +#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_PUSH_ALL_STATIC_DATA_PREPAYMENT_CLUSTER (0x00004000) +#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_PUSH_ALL_STATIC_DATA_PREPAYMENT_CLUSTER_OFFSET (14) +#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_NETWORK_KEY_ACTIVE (0x00008000) +#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_NETWORK_KEY_ACTIVE_OFFSET (15) +#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_DISPLAY_MESSAGE (0x00010000) +#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_DISPLAY_MESSAGE_OFFSET (16) +#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_CANCEL_ALL_MESSAGES (0x00020000) +#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_CANCEL_ALL_MESSAGES_OFFSET (17) +#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_CHANGE_SUPPLY (0x00040000) +#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_CHANGE_SUPPLY_OFFSET (18) +#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_LOCAL_CHANGE_SUPPLY (0x00080000) +#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_LOCAL_CHANGE_SUPPLY_OFFSET (19) +#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_SET_UNCONTROLLED_FLOW_THRESHOLD (0x00100000) +#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_SET_UNCONTROLLED_FLOW_THRESHOLD_OFFSET (20) +#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_TUNNEL_MESSAGE_PENDING (0x00200000) +#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_TUNNEL_MESSAGE_PENDING_OFFSET (21) +#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_GET_SNAPSHOT (0x00400000) +#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_GET_SNAPSHOT_OFFSET (22) +#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_GET_SAMPLED_DATA (0x00800000) +#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_GET_SAMPLED_DATA_OFFSET (23) +#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_NEW_SUB_GHZ_CHANNEL_MASKS_AVAILABLE (0x01000000) +#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_NEW_SUB_GHZ_CHANNEL_MASKS_AVAILABLE_OFFSET (24) +#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_ENERGY_SCAN_PENDING (0x02000000) +#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_ENERGY_SCAN_PENDING_OFFSET (25) +#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_CHANNEL_CHANGE_PENDING (0x04000000) +#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_CHANNEL_CHANGE_PENDING_OFFSET (26) +#define EMBER_AF_GET_LOCATION_DATA_FLAGS_ABSOLUTE_ONLY (0x1) +#define EMBER_AF_GET_LOCATION_DATA_FLAGS_ABSOLUTE_ONLY_OFFSET (0) +#define EMBER_AF_GET_LOCATION_DATA_FLAGS_RECALCULATE (0x2) +#define EMBER_AF_GET_LOCATION_DATA_FLAGS_RECALCULATE_OFFSET (1) +#define EMBER_AF_GET_LOCATION_DATA_FLAGS_BROADCAST (0x4) +#define EMBER_AF_GET_LOCATION_DATA_FLAGS_BROADCAST_OFFSET (2) +#define EMBER_AF_GET_LOCATION_DATA_FLAGS_BROADCAST_RESPONSE (0x8) +#define EMBER_AF_GET_LOCATION_DATA_FLAGS_BROADCAST_RESPONSE_OFFSET (3) +#define EMBER_AF_GET_LOCATION_DATA_FLAGS_COMPACT_RESPONSE (0x10) +#define EMBER_AF_GET_LOCATION_DATA_FLAGS_COMPACT_RESPONSE_OFFSET (4) +#define EMBER_AF_GP_APPLICATION_INFORMATION_MANUFACTURE_ID_PRESENT (0x01) +#define EMBER_AF_GP_APPLICATION_INFORMATION_MANUFACTURE_ID_PRESENT_OFFSET (0) +#define EMBER_AF_GP_APPLICATION_INFORMATION_MODEL_ID_PRESENT (0x02) +#define EMBER_AF_GP_APPLICATION_INFORMATION_MODEL_ID_PRESENT_OFFSET (1) +#define EMBER_AF_GP_APPLICATION_INFORMATION_GPD_COMMANDS_PRESENT (0x04) +#define EMBER_AF_GP_APPLICATION_INFORMATION_GPD_COMMANDS_PRESENT_OFFSET (2) +#define EMBER_AF_GP_APPLICATION_INFORMATION_CLUSTER_LIST_PRESENT (0x08) +#define EMBER_AF_GP_APPLICATION_INFORMATION_CLUSTER_LIST_PRESENT_OFFSET (3) +#define EMBER_AF_GP_APPLICATION_INFORMATION_SWITCH_INFORMATION_PRESENT (0x10) +#define EMBER_AF_GP_APPLICATION_INFORMATION_SWITCH_INFORMATION_PRESENT_OFFSET (4) +#define EMBER_AF_GP_APPLICATION_INFORMATION_APPLICATION_DESCRIPTION_PRESENT (0x20) +#define EMBER_AF_GP_APPLICATION_INFORMATION_APPLICATION_DESCRIPTION_PRESENT_OFFSET (5) +#define EMBER_AF_GP_COMMISSIONING_NOTIFICATION_OPTION_APPLICATION_ID (0x0007) +#define EMBER_AF_GP_COMMISSIONING_NOTIFICATION_OPTION_APPLICATION_ID_OFFSET (0) +#define EMBER_AF_GP_COMMISSIONING_NOTIFICATION_OPTION_RX_AFTER_TX (0x0008) +#define EMBER_AF_GP_COMMISSIONING_NOTIFICATION_OPTION_RX_AFTER_TX_OFFSET (3) +#define EMBER_AF_GP_COMMISSIONING_NOTIFICATION_OPTION_SECURITY_LEVEL (0x0030) +#define EMBER_AF_GP_COMMISSIONING_NOTIFICATION_OPTION_SECURITY_LEVEL_OFFSET (4) +#define EMBER_AF_GP_COMMISSIONING_NOTIFICATION_OPTION_SECURITY_KEY_TYPE (0x01C0) +#define EMBER_AF_GP_COMMISSIONING_NOTIFICATION_OPTION_SECURITY_KEY_TYPE_OFFSET (6) +#define EMBER_AF_GP_COMMISSIONING_NOTIFICATION_OPTION_SECURITY_PROCESSING_FAILED (0x0200) +#define EMBER_AF_GP_COMMISSIONING_NOTIFICATION_OPTION_SECURITY_PROCESSING_FAILED_OFFSET (9) +#define EMBER_AF_GP_COMMISSIONING_NOTIFICATION_OPTION_BIDIRECTIONAL_CAPABILITY (0x0400) +#define EMBER_AF_GP_COMMISSIONING_NOTIFICATION_OPTION_BIDIRECTIONAL_CAPABILITY_OFFSET (10) +#define EMBER_AF_GP_COMMISSIONING_NOTIFICATION_OPTION_PROXY_INFO_PRESENT (0x0800) +#define EMBER_AF_GP_COMMISSIONING_NOTIFICATION_OPTION_PROXY_INFO_PRESENT_OFFSET (11) +#define EMBER_AF_GP_COMMISSIONING_NOTIFICATION_OPTION_RESERVED (0xF000) +#define EMBER_AF_GP_COMMISSIONING_NOTIFICATION_OPTION_RESERVED_OFFSET (12) +#define EMBER_AF_GP_GPD_CHANNEL_CONFIGURATION_CHANNEL_MASK (0x1F) +#define EMBER_AF_GP_GPD_CHANNEL_CONFIGURATION_CHANNEL_MASK_OFFSET (0) +#define EMBER_AF_GP_GPD_CHANNEL_CONFIGURATION_CHANNEL_OPERATIONAL_CHANNEL (0x0F) +#define EMBER_AF_GP_GPD_CHANNEL_CONFIGURATION_CHANNEL_OPERATIONAL_CHANNEL_OFFSET (0) +#define EMBER_AF_GP_GPD_CHANNEL_CONFIGURATION_CHANNEL_BASIC (0x10) +#define EMBER_AF_GP_GPD_CHANNEL_CONFIGURATION_CHANNEL_BASIC_OFFSET (4) +#define EMBER_AF_GP_GPD_CHANNEL_CONFIGURATION_CHANNEL_RESERVED (0xE0) +#define EMBER_AF_GP_GPD_CHANNEL_CONFIGURATION_CHANNEL_RESERVED_OFFSET (5) +#define EMBER_AF_GP_GPD_CHANNEL_REQUEST_CHANNEL_TOGGLING_BEHAVIOUR_RX_CHANNEL_NEXT_ATTEMPT (0x0F) +#define EMBER_AF_GP_GPD_CHANNEL_REQUEST_CHANNEL_TOGGLING_BEHAVIOUR_RX_CHANNEL_NEXT_ATTEMPT_OFFSET (0) +#define EMBER_AF_GP_GPD_CHANNEL_REQUEST_CHANNEL_TOGGLING_BEHAVIOUR_RX_CHANNEL_SECOND_NEXT_ATTEMPT (0xF0) +#define EMBER_AF_GP_GPD_CHANNEL_REQUEST_CHANNEL_TOGGLING_BEHAVIOUR_RX_CHANNEL_SECOND_NEXT_ATTEMPT_OFFSET (4) +#define EMBER_AF_GP_GPD_COMMISSIONING_EXTENDED_OPTIONS_SECURITY_LEVEL_CAPABILITIES (0x03) +#define EMBER_AF_GP_GPD_COMMISSIONING_EXTENDED_OPTIONS_SECURITY_LEVEL_CAPABILITIES_OFFSET (0) +#define EMBER_AF_GP_GPD_COMMISSIONING_EXTENDED_OPTIONS_KEY_TYPE (0x1C) +#define EMBER_AF_GP_GPD_COMMISSIONING_EXTENDED_OPTIONS_KEY_TYPE_OFFSET (2) +#define EMBER_AF_GP_GPD_COMMISSIONING_EXTENDED_OPTIONS_GPD_KEY_PRESENT (0x20) +#define EMBER_AF_GP_GPD_COMMISSIONING_EXTENDED_OPTIONS_GPD_KEY_PRESENT_OFFSET (5) +#define EMBER_AF_GP_GPD_COMMISSIONING_EXTENDED_OPTIONS_GPD_KEY_ENCRYPTION (0x40) +#define EMBER_AF_GP_GPD_COMMISSIONING_EXTENDED_OPTIONS_GPD_KEY_ENCRYPTION_OFFSET (6) +#define EMBER_AF_GP_GPD_COMMISSIONING_EXTENDED_OPTIONS_GPD_OUTGOING_COUNTER_PRESENT (0x80) +#define EMBER_AF_GP_GPD_COMMISSIONING_EXTENDED_OPTIONS_GPD_OUTGOING_COUNTER_PRESENT_OFFSET (7) +#define EMBER_AF_GP_GPD_COMMISSIONING_OPTIONS_MAC_SEQ_NUM_CAP (0x01) +#define EMBER_AF_GP_GPD_COMMISSIONING_OPTIONS_MAC_SEQ_NUM_CAP_OFFSET (0) +#define EMBER_AF_GP_GPD_COMMISSIONING_OPTIONS_RX_ON_CAP (0x02) +#define EMBER_AF_GP_GPD_COMMISSIONING_OPTIONS_RX_ON_CAP_OFFSET (1) +#define EMBER_AF_GP_GPD_COMMISSIONING_OPTIONS_APPLICATION_INFORMATION_PRESENT (0x04) +#define EMBER_AF_GP_GPD_COMMISSIONING_OPTIONS_APPLICATION_INFORMATION_PRESENT_OFFSET (2) +#define EMBER_AF_GP_GPD_COMMISSIONING_OPTIONS_RESERVED (0x08) +#define EMBER_AF_GP_GPD_COMMISSIONING_OPTIONS_RESERVED_OFFSET (3) +#define EMBER_AF_GP_GPD_COMMISSIONING_OPTIONS_PAN_ID_REQUEST (0x10) +#define EMBER_AF_GP_GPD_COMMISSIONING_OPTIONS_PAN_ID_REQUEST_OFFSET (4) +#define EMBER_AF_GP_GPD_COMMISSIONING_OPTIONS_GP_SECURITY_KEY_REQUEST (0x20) +#define EMBER_AF_GP_GPD_COMMISSIONING_OPTIONS_GP_SECURITY_KEY_REQUEST_OFFSET (5) +#define EMBER_AF_GP_GPD_COMMISSIONING_OPTIONS_FIXED_LOCATION (0x40) +#define EMBER_AF_GP_GPD_COMMISSIONING_OPTIONS_FIXED_LOCATION_OFFSET (6) +#define EMBER_AF_GP_GPD_COMMISSIONING_OPTIONS_EXTENDED_OPTIONS_FIELD (0x80) +#define EMBER_AF_GP_GPD_COMMISSIONING_OPTIONS_EXTENDED_OPTIONS_FIELD_OFFSET (7) +#define EMBER_AF_GP_GPD_COMMISSIONING_REPLY_OPTIONS_PAN_ID_PRESENT (0x01) +#define EMBER_AF_GP_GPD_COMMISSIONING_REPLY_OPTIONS_PAN_ID_PRESENT_OFFSET (0) +#define EMBER_AF_GP_GPD_COMMISSIONING_REPLY_OPTIONS_GPD_SECURITY_KEY_PRESENT (0x02) +#define EMBER_AF_GP_GPD_COMMISSIONING_REPLY_OPTIONS_GPD_SECURITY_KEY_PRESENT_OFFSET (1) +#define EMBER_AF_GP_GPD_COMMISSIONING_REPLY_OPTIONS_GPDKEY_ENCRYPTION (0x04) +#define EMBER_AF_GP_GPD_COMMISSIONING_REPLY_OPTIONS_GPDKEY_ENCRYPTION_OFFSET (2) +#define EMBER_AF_GP_GPD_COMMISSIONING_REPLY_OPTIONS_SECURITY_LEVEL (0x18) +#define EMBER_AF_GP_GPD_COMMISSIONING_REPLY_OPTIONS_SECURITY_LEVEL_OFFSET (3) +#define EMBER_AF_GP_GPD_COMMISSIONING_REPLY_OPTIONS_KEY_TYPE (0xE0) +#define EMBER_AF_GP_GPD_COMMISSIONING_REPLY_OPTIONS_KEY_TYPE_OFFSET (5) #define EMBER_AF_GP_GPS_FUNCTIONALITY_GP_FEATURE (0x000001) +#define EMBER_AF_GP_GPS_FUNCTIONALITY_GP_FEATURE_OFFSET (0) #define EMBER_AF_GP_GPS_FUNCTIONALITY_DIRECT_COMMUNICATION (0x000002) #define EMBER_AF_GP_GPS_FUNCTIONALITY_DIRECT_COMMUNICATION_OFFSET (1) #define EMBER_AF_GP_GPS_FUNCTIONALITY_DERIVED_GROUPCAST_COMMUNICATION (0x000004) @@ -3269,74 +3293,8 @@ typedef enum #define EMBER_AF_GP_GPS_FUNCTIONALITY_COMPACT_ATTRIBUTE_REPORTING_OFFSET (20) #define EMBER_AF_GP_GPS_FUNCTIONALITY_RESERVED (0xE00000) #define EMBER_AF_GP_GPS_FUNCTIONALITY_RESERVED_OFFSET (21) -#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_APPLICATION_ID (0x00000007) -#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_ENTRY_ACTIVE (0x00000008) -#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_ENTRY_ACTIVE_OFFSET (3) -#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_ENTRY_VALID (0x00000010) -#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_ENTRY_VALID_OFFSET (4) -#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_SEQUENCE_NUMBER_CAP (0x00000020) -#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_SEQUENCE_NUMBER_CAP_OFFSET (5) -#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_LIGHTWEIGHT_UNICAST_GPS (0x00000040) -#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_LIGHTWEIGHT_UNICAST_GPS_OFFSET (6) -#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_DERIVED_GROUP_GPS (0x00000080) -#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_DERIVED_GROUP_GPS_OFFSET (7) -#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_COMMISIONED_GROUP_GPS (0x00000100) -#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_COMMISIONED_GROUP_GPS_OFFSET (8) -#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_FIRST_TO_FORWARD (0x00000200) -#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_FIRST_TO_FORWARD_OFFSET (9) -#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_IN_RANGE (0x00000400) -#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_IN_RANGE_OFFSET (10) -#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_GPD_FIXED (0x00000800) -#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_GPD_FIXED_OFFSET (11) -#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_HAS_ALL_UNICAST_ROUTES (0x00001000) -#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_HAS_ALL_UNICAST_ROUTES_OFFSET (12) -#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_ASSIGNED_ALIAS (0x00002000) -#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_ASSIGNED_ALIAS_OFFSET (13) -#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_SECURITY_USE (0x00004000) -#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_SECURITY_USE_OFFSET (14) -#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_EXTENSION (0x00008000) -#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_EXTENSION_OFFSET (15) -#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_FULL_UNICAST_GPS (0x00010000) -#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_FULL_UNICAST_GPS_OFFSET (16) -#define EMBER_AF_GP_PROXY_TABLE_ENTRY_SECURITY_OPTIONS_SECURITY_LEVEL (0x03) -#define EMBER_AF_GP_PROXY_TABLE_ENTRY_SECURITY_OPTIONS_SECURITY_KEY_TYPE (0x1C) -#define EMBER_AF_GP_PROXY_TABLE_ENTRY_SECURITY_OPTIONS_SECURITY_KEY_TYPE_OFFSET (2) -#define EMBER_AF_GP_PROXY_TABLE_ENTRY_SECURITY_OPTIONS_RESERVED (0xE0) -#define EMBER_AF_GP_PROXY_TABLE_ENTRY_SECURITY_OPTIONS_RESERVED_OFFSET (5) -#define EMBER_AF_GP_GPD_COMMISSIONING_OPTIONS_MAC_SEQ_NUM_CAP (0x01) -#define EMBER_AF_GP_GPD_COMMISSIONING_OPTIONS_RX_ON_CAP (0x02) -#define EMBER_AF_GP_GPD_COMMISSIONING_OPTIONS_RX_ON_CAP_OFFSET (1) -#define EMBER_AF_GP_GPD_COMMISSIONING_OPTIONS_APPLICATION_INFORMATION_PRESENT (0x04) -#define EMBER_AF_GP_GPD_COMMISSIONING_OPTIONS_APPLICATION_INFORMATION_PRESENT_OFFSET (2) -#define EMBER_AF_GP_GPD_COMMISSIONING_OPTIONS_RESERVED (0x08) -#define EMBER_AF_GP_GPD_COMMISSIONING_OPTIONS_RESERVED_OFFSET (3) -#define EMBER_AF_GP_GPD_COMMISSIONING_OPTIONS_PAN_ID_REQUEST (0x10) -#define EMBER_AF_GP_GPD_COMMISSIONING_OPTIONS_PAN_ID_REQUEST_OFFSET (4) -#define EMBER_AF_GP_GPD_COMMISSIONING_OPTIONS_GP_SECURITY_KEY_REQUEST (0x20) -#define EMBER_AF_GP_GPD_COMMISSIONING_OPTIONS_GP_SECURITY_KEY_REQUEST_OFFSET (5) -#define EMBER_AF_GP_GPD_COMMISSIONING_OPTIONS_FIXED_LOCATION (0x40) -#define EMBER_AF_GP_GPD_COMMISSIONING_OPTIONS_FIXED_LOCATION_OFFSET (6) -#define EMBER_AF_GP_GPD_COMMISSIONING_OPTIONS_EXTENDED_OPTIONS_FIELD (0x80) -#define EMBER_AF_GP_GPD_COMMISSIONING_OPTIONS_EXTENDED_OPTIONS_FIELD_OFFSET (7) -#define EMBER_AF_GP_GPD_COMMISSIONING_EXTENDED_OPTIONS_SECURITY_LEVEL_CAPABILITIES (0x03) -#define EMBER_AF_GP_GPD_COMMISSIONING_EXTENDED_OPTIONS_KEY_TYPE (0x1C) -#define EMBER_AF_GP_GPD_COMMISSIONING_EXTENDED_OPTIONS_KEY_TYPE_OFFSET (2) -#define EMBER_AF_GP_GPD_COMMISSIONING_EXTENDED_OPTIONS_GPD_KEY_PRESENT (0x20) -#define EMBER_AF_GP_GPD_COMMISSIONING_EXTENDED_OPTIONS_GPD_KEY_PRESENT_OFFSET (5) -#define EMBER_AF_GP_GPD_COMMISSIONING_EXTENDED_OPTIONS_GPD_KEY_ENCRYPTION (0x40) -#define EMBER_AF_GP_GPD_COMMISSIONING_EXTENDED_OPTIONS_GPD_KEY_ENCRYPTION_OFFSET (6) -#define EMBER_AF_GP_GPD_COMMISSIONING_EXTENDED_OPTIONS_GPD_OUTGOING_COUNTER_PRESENT (0x80) -#define EMBER_AF_GP_GPD_COMMISSIONING_EXTENDED_OPTIONS_GPD_OUTGOING_COUNTER_PRESENT_OFFSET (7) -#define EMBER_AF_GP_GPD_COMMISSIONING_REPLY_OPTIONS_PAN_ID_PRESENT (0x01) -#define EMBER_AF_GP_GPD_COMMISSIONING_REPLY_OPTIONS_GPD_SECURITY_KEY_PRESENT (0x02) -#define EMBER_AF_GP_GPD_COMMISSIONING_REPLY_OPTIONS_GPD_SECURITY_KEY_PRESENT_OFFSET (1) -#define EMBER_AF_GP_GPD_COMMISSIONING_REPLY_OPTIONS_GPDKEY_ENCRYPTION (0x04) -#define EMBER_AF_GP_GPD_COMMISSIONING_REPLY_OPTIONS_GPDKEY_ENCRYPTION_OFFSET (2) -#define EMBER_AF_GP_GPD_COMMISSIONING_REPLY_OPTIONS_SECURITY_LEVEL (0x18) -#define EMBER_AF_GP_GPD_COMMISSIONING_REPLY_OPTIONS_SECURITY_LEVEL_OFFSET (3) -#define EMBER_AF_GP_GPD_COMMISSIONING_REPLY_OPTIONS_KEY_TYPE (0xE0) -#define EMBER_AF_GP_GPD_COMMISSIONING_REPLY_OPTIONS_KEY_TYPE_OFFSET (5) #define EMBER_AF_GP_NOTIFICATION_OPTION_APPLICATION_ID (0x0007) +#define EMBER_AF_GP_NOTIFICATION_OPTION_APPLICATION_ID_OFFSET (0) #define EMBER_AF_GP_NOTIFICATION_OPTION_ALSO_UNICAST (0x0008) #define EMBER_AF_GP_NOTIFICATION_OPTION_ALSO_UNICAST_OFFSET (3) #define EMBER_AF_GP_NOTIFICATION_OPTION_ALSO_DERIVED_GROUP (0x0010) @@ -3357,86 +3315,22 @@ typedef enum #define EMBER_AF_GP_NOTIFICATION_OPTION_PROXY_INFO_PRESENT_OFFSET (14) #define EMBER_AF_GP_NOTIFICATION_OPTION_RESERVED (0x8000) #define EMBER_AF_GP_NOTIFICATION_OPTION_RESERVED_OFFSET (15) -#define EMBER_AF_GP_PAIRING_SEARCH_OPTION_APPLICATION_ID (0x0007) -#define EMBER_AF_GP_PAIRING_SEARCH_OPTION_REQUEST_UNICAST_SINKS (0x0008) -#define EMBER_AF_GP_PAIRING_SEARCH_OPTION_REQUEST_UNICAST_SINKS_OFFSET (3) -#define EMBER_AF_GP_PAIRING_SEARCH_OPTION_REQUEST_DERIVED_GROUPCAST_SINKS (0x0010) -#define EMBER_AF_GP_PAIRING_SEARCH_OPTION_REQUEST_DERIVED_GROUPCAST_SINKS_OFFSET (4) -#define EMBER_AF_GP_PAIRING_SEARCH_OPTION_REQUEST_COMMISSIONED_GROUPCAST_SINKS (0x0020) -#define EMBER_AF_GP_PAIRING_SEARCH_OPTION_REQUEST_COMMISSIONED_GROUPCAST_SINKS_OFFSET (5) -#define EMBER_AF_GP_PAIRING_SEARCH_OPTION_REQUEST_GPD_SECURITY_FRAME_COUNTER (0x0040) -#define EMBER_AF_GP_PAIRING_SEARCH_OPTION_REQUEST_GPD_SECURITY_FRAME_COUNTER_OFFSET (6) -#define EMBER_AF_GP_PAIRING_SEARCH_OPTION_REQUEST_GPD_SECURITY_KEY (0x0080) -#define EMBER_AF_GP_PAIRING_SEARCH_OPTION_REQUEST_GPD_SECURITY_KEY_OFFSET (7) -#define EMBER_AF_GP_PAIRING_SEARCH_OPTION_RESERVED (0xFF00) -#define EMBER_AF_GP_PAIRING_SEARCH_OPTION_RESERVED_OFFSET (8) -#define EMBER_AF_GP_TUNNELING_STOP_OPTION_APPLICATION_ID (0x07) -#define EMBER_AF_GP_TUNNELING_STOP_OPTION_ALSO_DERIVED_GROUP (0x08) -#define EMBER_AF_GP_TUNNELING_STOP_OPTION_ALSO_DERIVED_GROUP_OFFSET (3) -#define EMBER_AF_GP_TUNNELING_STOP_OPTION_ALSO_COMMISSIONED_GROUP (0x10) -#define EMBER_AF_GP_TUNNELING_STOP_OPTION_ALSO_COMMISSIONED_GROUP_OFFSET (4) -#define EMBER_AF_GP_TUNNELING_STOP_OPTION_RESERVED (0xE0) -#define EMBER_AF_GP_TUNNELING_STOP_OPTION_RESERVED_OFFSET (5) -#define EMBER_AF_GP_COMMISSIONING_NOTIFICATION_OPTION_APPLICATION_ID (0x0007) -#define EMBER_AF_GP_COMMISSIONING_NOTIFICATION_OPTION_RX_AFTER_TX (0x0008) -#define EMBER_AF_GP_COMMISSIONING_NOTIFICATION_OPTION_RX_AFTER_TX_OFFSET (3) -#define EMBER_AF_GP_COMMISSIONING_NOTIFICATION_OPTION_SECURITY_LEVEL (0x0030) -#define EMBER_AF_GP_COMMISSIONING_NOTIFICATION_OPTION_SECURITY_LEVEL_OFFSET (4) -#define EMBER_AF_GP_COMMISSIONING_NOTIFICATION_OPTION_SECURITY_KEY_TYPE (0x01C0) -#define EMBER_AF_GP_COMMISSIONING_NOTIFICATION_OPTION_SECURITY_KEY_TYPE_OFFSET (6) -#define EMBER_AF_GP_COMMISSIONING_NOTIFICATION_OPTION_SECURITY_PROCESSING_FAILED (0x0200) -#define EMBER_AF_GP_COMMISSIONING_NOTIFICATION_OPTION_SECURITY_PROCESSING_FAILED_OFFSET (9) -#define EMBER_AF_GP_COMMISSIONING_NOTIFICATION_OPTION_BIDIRECTIONAL_CAPABILITY (0x0400) -#define EMBER_AF_GP_COMMISSIONING_NOTIFICATION_OPTION_BIDIRECTIONAL_CAPABILITY_OFFSET (10) -#define EMBER_AF_GP_COMMISSIONING_NOTIFICATION_OPTION_PROXY_INFO_PRESENT (0x0800) -#define EMBER_AF_GP_COMMISSIONING_NOTIFICATION_OPTION_PROXY_INFO_PRESENT_OFFSET (11) -#define EMBER_AF_GP_COMMISSIONING_NOTIFICATION_OPTION_RESERVED (0xF000) -#define EMBER_AF_GP_COMMISSIONING_NOTIFICATION_OPTION_RESERVED_OFFSET (12) -#define EMBER_AF_GP_SINK_COMMISSIONING_MODE_OPTIONS_ACTION (0x01) -#define EMBER_AF_GP_SINK_COMMISSIONING_MODE_OPTIONS_INVOLVE_GPM_IN_SECURITY (0x02) -#define EMBER_AF_GP_SINK_COMMISSIONING_MODE_OPTIONS_INVOLVE_GPM_IN_SECURITY_OFFSET (1) -#define EMBER_AF_GP_SINK_COMMISSIONING_MODE_OPTIONS_INVOLVE_GPM_IN_PAIRING (0x04) -#define EMBER_AF_GP_SINK_COMMISSIONING_MODE_OPTIONS_INVOLVE_GPM_IN_PAIRING_OFFSET (2) -#define EMBER_AF_GP_SINK_COMMISSIONING_MODE_OPTIONS_INVOLVE_PROXIES (0x08) -#define EMBER_AF_GP_SINK_COMMISSIONING_MODE_OPTIONS_INVOLVE_PROXIES_OFFSET (3) -#define EMBER_AF_GP_SINK_COMMISSIONING_MODE_OPTIONS_RESERVED (0xF0) -#define EMBER_AF_GP_SINK_COMMISSIONING_MODE_OPTIONS_RESERVED_OFFSET (4) -#define EMBER_AF_GP_SINK_COMMISSIONING_MODE_EXIT_MODE_ON_COMMISSIONING_WINDOW_EXPIRATION (0x01) -#define EMBER_AF_GP_SINK_COMMISSIONING_MODE_EXIT_MODE_ON_FIRST_PAIRING_SUCCESS (0x02) -#define EMBER_AF_GP_SINK_COMMISSIONING_MODE_EXIT_MODE_ON_FIRST_PAIRING_SUCCESS_OFFSET (1) -#define EMBER_AF_GP_SINK_COMMISSIONING_MODE_EXIT_MODE_ON_GP_PROXY_COMMISSIONING_MODE_EXIT (0x04) -#define EMBER_AF_GP_SINK_COMMISSIONING_MODE_EXIT_MODE_ON_GP_PROXY_COMMISSIONING_MODE_EXIT_OFFSET (2) -#define EMBER_AF_GP_SINK_COMMISSIONING_MODE_EXIT_MODE_RESERVED (0xF8) -#define EMBER_AF_GP_SINK_COMMISSIONING_MODE_EXIT_MODE_RESERVED_OFFSET (3) -#define EMBER_AF_GP_SINK_TABLE_REQUEST_OPTIONS_APPLICATION_ID (0x07) -#define EMBER_AF_GP_SINK_TABLE_REQUEST_OPTIONS_REQUEST_TYPE (0x18) -#define EMBER_AF_GP_SINK_TABLE_REQUEST_OPTIONS_REQUEST_TYPE_OFFSET (3) -#define EMBER_AF_GP_SINK_TABLE_REQUEST_OPTIONS_RESERVED (0xE0) -#define EMBER_AF_GP_SINK_TABLE_REQUEST_OPTIONS_RESERVED_OFFSET (5) -#define EMBER_AF_GP_TRANSLATION_TABLE_UPDATE_OPTION_APPLICATION_ID (0x0007) -#define EMBER_AF_GP_TRANSLATION_TABLE_UPDATE_OPTION_ACTION (0x0018) -#define EMBER_AF_GP_TRANSLATION_TABLE_UPDATE_OPTION_ACTION_OFFSET (3) -#define EMBER_AF_GP_TRANSLATION_TABLE_UPDATE_OPTION_NUMBER_OF_TRANSLATIONS (0x00E0) -#define EMBER_AF_GP_TRANSLATION_TABLE_UPDATE_OPTION_NUMBER_OF_TRANSLATIONS_OFFSET (5) -#define EMBER_AF_GP_TRANSLATION_TABLE_UPDATE_OPTION_ADDITIONAL_INFORMATION_BLOCK_PRESENT (0x0100) -#define EMBER_AF_GP_TRANSLATION_TABLE_UPDATE_OPTION_ADDITIONAL_INFORMATION_BLOCK_PRESENT_OFFSET (8) -#define EMBER_AF_GP_TRANSLATION_TABLE_UPDATE_OPTION_RESERVED (0xFE00) -#define EMBER_AF_GP_TRANSLATION_TABLE_UPDATE_OPTION_RESERVED_OFFSET (9) -#define EMBER_AF_GP_TRANSLATION_TABLE_SCAN_LEVEL_GPD_ID (0x01) -#define EMBER_AF_GP_TRANSLATION_TABLE_SCAN_LEVEL_CMD_ID (0x02) -#define EMBER_AF_GP_TRANSLATION_TABLE_SCAN_LEVEL_CMD_ID_OFFSET (1) -#define EMBER_AF_GP_TRANSLATION_TABLE_SCAN_LEVEL_PAYLOAD (0x04) -#define EMBER_AF_GP_TRANSLATION_TABLE_SCAN_LEVEL_PAYLOAD_OFFSET (2) -#define EMBER_AF_GP_TRANSLATION_TABLE_SCAN_LEVEL_ZB_ENDPOINT (0x08) -#define EMBER_AF_GP_TRANSLATION_TABLE_SCAN_LEVEL_ZB_ENDPOINT_OFFSET (3) -#define EMBER_AF_GP_TRANSLATION_TABLE_SCAN_LEVEL_ADDITIONAL_INFO_BLOCK (0x10) -#define EMBER_AF_GP_TRANSLATION_TABLE_SCAN_LEVEL_ADDITIONAL_INFO_BLOCK_OFFSET (4) +#define EMBER_AF_GP_NOTIFICATION_RESPONSE_OPTION_APPLICATION_ID (0x07) +#define EMBER_AF_GP_NOTIFICATION_RESPONSE_OPTION_APPLICATION_ID_OFFSET (0) +#define EMBER_AF_GP_NOTIFICATION_RESPONSE_OPTION_FIRST_TO_FORWARD (0x08) +#define EMBER_AF_GP_NOTIFICATION_RESPONSE_OPTION_FIRST_TO_FORWARD_OFFSET (3) +#define EMBER_AF_GP_NOTIFICATION_RESPONSE_OPTION_NO_PAIRING (0x10) +#define EMBER_AF_GP_NOTIFICATION_RESPONSE_OPTION_NO_PAIRING_OFFSET (4) +#define EMBER_AF_GP_NOTIFICATION_RESPONSE_OPTION_RESERVED (0xE0) +#define EMBER_AF_GP_NOTIFICATION_RESPONSE_OPTION_RESERVED_OFFSET (5) #define EMBER_AF_GP_PAIRING_CONFIGURATION_ACTIONS_ACTION (0x07) +#define EMBER_AF_GP_PAIRING_CONFIGURATION_ACTIONS_ACTION_OFFSET (0) #define EMBER_AF_GP_PAIRING_CONFIGURATION_ACTIONS_SEND_GP_PAIRING (0x08) #define EMBER_AF_GP_PAIRING_CONFIGURATION_ACTIONS_SEND_GP_PAIRING_OFFSET (3) #define EMBER_AF_GP_PAIRING_CONFIGURATION_ACTIONS_RESERVED (0xF0) #define EMBER_AF_GP_PAIRING_CONFIGURATION_ACTIONS_RESERVED_OFFSET (4) #define EMBER_AF_GP_PAIRING_CONFIGURATION_OPTION_APPLICATION_ID (0x0007) +#define EMBER_AF_GP_PAIRING_CONFIGURATION_OPTION_APPLICATION_ID_OFFSET (0) #define EMBER_AF_GP_PAIRING_CONFIGURATION_OPTION_COMMUNICATION_MODE (0x0018) #define EMBER_AF_GP_PAIRING_CONFIGURATION_OPTION_COMMUNICATION_MODE_OFFSET (3) #define EMBER_AF_GP_PAIRING_CONFIGURATION_OPTION_SEQUENCE_NUMBER_CAPABILITIES (0x0020) @@ -3453,25 +3347,8 @@ typedef enum #define EMBER_AF_GP_PAIRING_CONFIGURATION_OPTION_APPLICATION_INFORMATION_PRESENT_OFFSET (10) #define EMBER_AF_GP_PAIRING_CONFIGURATION_OPTION_RESERVED (0xF800) #define EMBER_AF_GP_PAIRING_CONFIGURATION_OPTION_RESERVED_OFFSET (11) -#define EMBER_AF_GP_APPLICATION_INFORMATION_MANUFACTURE_ID_PRESENT (0x01) -#define EMBER_AF_GP_APPLICATION_INFORMATION_MODEL_ID_PRESENT (0x02) -#define EMBER_AF_GP_APPLICATION_INFORMATION_MODEL_ID_PRESENT_OFFSET (1) -#define EMBER_AF_GP_APPLICATION_INFORMATION_GPD_COMMANDS_PRESENT (0x04) -#define EMBER_AF_GP_APPLICATION_INFORMATION_GPD_COMMANDS_PRESENT_OFFSET (2) -#define EMBER_AF_GP_APPLICATION_INFORMATION_CLUSTER_LIST_PRESENT (0x08) -#define EMBER_AF_GP_APPLICATION_INFORMATION_CLUSTER_LIST_PRESENT_OFFSET (3) -#define EMBER_AF_GP_APPLICATION_INFORMATION_SWITCH_INFORMATION_PRESENT (0x10) -#define EMBER_AF_GP_APPLICATION_INFORMATION_SWITCH_INFORMATION_PRESENT_OFFSET (4) -#define EMBER_AF_GP_APPLICATION_INFORMATION_APPLICATION_DESCRIPTION_PRESENT (0x20) -#define EMBER_AF_GP_APPLICATION_INFORMATION_APPLICATION_DESCRIPTION_PRESENT_OFFSET (5) -#define EMBER_AF_GP_NOTIFICATION_RESPONSE_OPTION_APPLICATION_ID (0x07) -#define EMBER_AF_GP_NOTIFICATION_RESPONSE_OPTION_FIRST_TO_FORWARD (0x08) -#define EMBER_AF_GP_NOTIFICATION_RESPONSE_OPTION_FIRST_TO_FORWARD_OFFSET (3) -#define EMBER_AF_GP_NOTIFICATION_RESPONSE_OPTION_NO_PAIRING (0x10) -#define EMBER_AF_GP_NOTIFICATION_RESPONSE_OPTION_NO_PAIRING_OFFSET (4) -#define EMBER_AF_GP_NOTIFICATION_RESPONSE_OPTION_RESERVED (0xE0) -#define EMBER_AF_GP_NOTIFICATION_RESPONSE_OPTION_RESERVED_OFFSET (5) #define EMBER_AF_GP_PAIRING_OPTION_APPLICATION_ID (0x000007) +#define EMBER_AF_GP_PAIRING_OPTION_APPLICATION_ID_OFFSET (0) #define EMBER_AF_GP_PAIRING_OPTION_ADD_SINK (0x000008) #define EMBER_AF_GP_PAIRING_OPTION_ADD_SINK_OFFSET (3) #define EMBER_AF_GP_PAIRING_OPTION_REMOVE_GPD (0x000010) @@ -3496,7 +3373,28 @@ typedef enum #define EMBER_AF_GP_PAIRING_OPTION_GROUPCAST_RADIUS_PRESENT_OFFSET (17) #define EMBER_AF_GP_PAIRING_OPTION_RESERVED (0xFC0000) #define EMBER_AF_GP_PAIRING_OPTION_RESERVED_OFFSET (18) +#define EMBER_AF_GP_PAIRING_SEARCH_OPTION_APPLICATION_ID (0x0007) +#define EMBER_AF_GP_PAIRING_SEARCH_OPTION_APPLICATION_ID_OFFSET (0) +#define EMBER_AF_GP_PAIRING_SEARCH_OPTION_REQUEST_UNICAST_SINKS (0x0008) +#define EMBER_AF_GP_PAIRING_SEARCH_OPTION_REQUEST_UNICAST_SINKS_OFFSET (3) +#define EMBER_AF_GP_PAIRING_SEARCH_OPTION_REQUEST_DERIVED_GROUPCAST_SINKS (0x0010) +#define EMBER_AF_GP_PAIRING_SEARCH_OPTION_REQUEST_DERIVED_GROUPCAST_SINKS_OFFSET (4) +#define EMBER_AF_GP_PAIRING_SEARCH_OPTION_REQUEST_COMMISSIONED_GROUPCAST_SINKS (0x0020) +#define EMBER_AF_GP_PAIRING_SEARCH_OPTION_REQUEST_COMMISSIONED_GROUPCAST_SINKS_OFFSET (5) +#define EMBER_AF_GP_PAIRING_SEARCH_OPTION_REQUEST_GPD_SECURITY_FRAME_COUNTER (0x0040) +#define EMBER_AF_GP_PAIRING_SEARCH_OPTION_REQUEST_GPD_SECURITY_FRAME_COUNTER_OFFSET (6) +#define EMBER_AF_GP_PAIRING_SEARCH_OPTION_REQUEST_GPD_SECURITY_KEY (0x0080) +#define EMBER_AF_GP_PAIRING_SEARCH_OPTION_REQUEST_GPD_SECURITY_KEY_OFFSET (7) +#define EMBER_AF_GP_PAIRING_SEARCH_OPTION_RESERVED (0xFF00) +#define EMBER_AF_GP_PAIRING_SEARCH_OPTION_RESERVED_OFFSET (8) +#define EMBER_AF_GP_PROXY_COMMISSIONING_MODE_EXIT_MODE_ON_COMMISSIONING_WINDOW_EXPIRATION (0x02) +#define EMBER_AF_GP_PROXY_COMMISSIONING_MODE_EXIT_MODE_ON_COMMISSIONING_WINDOW_EXPIRATION_OFFSET (1) +#define EMBER_AF_GP_PROXY_COMMISSIONING_MODE_EXIT_MODE_ON_FIRST_PAIRING_SUCCESS (0x04) +#define EMBER_AF_GP_PROXY_COMMISSIONING_MODE_EXIT_MODE_ON_FIRST_PAIRING_SUCCESS_OFFSET (2) +#define EMBER_AF_GP_PROXY_COMMISSIONING_MODE_EXIT_MODE_ON_GP_PROXY_COMMISSIONING_MODE_EXIT (0x08) +#define EMBER_AF_GP_PROXY_COMMISSIONING_MODE_EXIT_MODE_ON_GP_PROXY_COMMISSIONING_MODE_EXIT_OFFSET (3) #define EMBER_AF_GP_PROXY_COMMISSIONING_MODE_OPTION_ACTION (0x01) +#define EMBER_AF_GP_PROXY_COMMISSIONING_MODE_OPTION_ACTION_OFFSET (0) #define EMBER_AF_GP_PROXY_COMMISSIONING_MODE_OPTION_COMMISSIONING_WINDOW_PRESENT (0x02) #define EMBER_AF_GP_PROXY_COMMISSIONING_MODE_OPTION_COMMISSIONING_WINDOW_PRESENT_OFFSET (1) #define EMBER_AF_GP_PROXY_COMMISSIONING_MODE_OPTION_EXIT_MODE (0x0C) @@ -3507,21 +3405,78 @@ typedef enum #define EMBER_AF_GP_PROXY_COMMISSIONING_MODE_OPTION_UNICAST_COMMUNICATION_OFFSET (5) #define EMBER_AF_GP_PROXY_COMMISSIONING_MODE_OPTION_RESERVED (0xC0) #define EMBER_AF_GP_PROXY_COMMISSIONING_MODE_OPTION_RESERVED_OFFSET (6) -#define EMBER_AF_GP_PROXY_COMMISSIONING_MODE_EXIT_MODE_ON_COMMISSIONING_WINDOW_EXPIRATION (0x02) -#define EMBER_AF_GP_PROXY_COMMISSIONING_MODE_EXIT_MODE_ON_COMMISSIONING_WINDOW_EXPIRATION_OFFSET (1) -#define EMBER_AF_GP_PROXY_COMMISSIONING_MODE_EXIT_MODE_ON_FIRST_PAIRING_SUCCESS (0x04) -#define EMBER_AF_GP_PROXY_COMMISSIONING_MODE_EXIT_MODE_ON_FIRST_PAIRING_SUCCESS_OFFSET (2) -#define EMBER_AF_GP_PROXY_COMMISSIONING_MODE_EXIT_MODE_ON_GP_PROXY_COMMISSIONING_MODE_EXIT (0x08) -#define EMBER_AF_GP_PROXY_COMMISSIONING_MODE_EXIT_MODE_ON_GP_PROXY_COMMISSIONING_MODE_EXIT_OFFSET (3) +#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_APPLICATION_ID (0x00000007) +#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_APPLICATION_ID_OFFSET (0) +#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_ENTRY_ACTIVE (0x00000008) +#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_ENTRY_ACTIVE_OFFSET (3) +#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_ENTRY_VALID (0x00000010) +#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_ENTRY_VALID_OFFSET (4) +#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_SEQUENCE_NUMBER_CAP (0x00000020) +#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_SEQUENCE_NUMBER_CAP_OFFSET (5) +#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_LIGHTWEIGHT_UNICAST_GPS (0x00000040) +#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_LIGHTWEIGHT_UNICAST_GPS_OFFSET (6) +#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_DERIVED_GROUP_GPS (0x00000080) +#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_DERIVED_GROUP_GPS_OFFSET (7) +#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_COMMISIONED_GROUP_GPS (0x00000100) +#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_COMMISIONED_GROUP_GPS_OFFSET (8) +#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_FIRST_TO_FORWARD (0x00000200) +#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_FIRST_TO_FORWARD_OFFSET (9) +#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_IN_RANGE (0x00000400) +#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_IN_RANGE_OFFSET (10) +#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_GPD_FIXED (0x00000800) +#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_GPD_FIXED_OFFSET (11) +#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_HAS_ALL_UNICAST_ROUTES (0x00001000) +#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_HAS_ALL_UNICAST_ROUTES_OFFSET (12) +#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_ASSIGNED_ALIAS (0x00002000) +#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_ASSIGNED_ALIAS_OFFSET (13) +#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_SECURITY_USE (0x00004000) +#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_SECURITY_USE_OFFSET (14) +#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_EXTENSION (0x00008000) +#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_EXTENSION_OFFSET (15) +#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_FULL_UNICAST_GPS (0x00010000) +#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_FULL_UNICAST_GPS_OFFSET (16) +#define EMBER_AF_GP_PROXY_TABLE_ENTRY_SECURITY_OPTIONS_SECURITY_LEVEL (0x03) +#define EMBER_AF_GP_PROXY_TABLE_ENTRY_SECURITY_OPTIONS_SECURITY_LEVEL_OFFSET (0) +#define EMBER_AF_GP_PROXY_TABLE_ENTRY_SECURITY_OPTIONS_SECURITY_KEY_TYPE (0x1C) +#define EMBER_AF_GP_PROXY_TABLE_ENTRY_SECURITY_OPTIONS_SECURITY_KEY_TYPE_OFFSET (2) +#define EMBER_AF_GP_PROXY_TABLE_ENTRY_SECURITY_OPTIONS_RESERVED (0xE0) +#define EMBER_AF_GP_PROXY_TABLE_ENTRY_SECURITY_OPTIONS_RESERVED_OFFSET (5) +#define EMBER_AF_GP_PROXY_TABLE_REQUEST_OPTIONS_APPLICATION_ID (0x07) +#define EMBER_AF_GP_PROXY_TABLE_REQUEST_OPTIONS_APPLICATION_ID_OFFSET (0) +#define EMBER_AF_GP_PROXY_TABLE_REQUEST_OPTIONS_REQUEST_TYPE (0x18) +#define EMBER_AF_GP_PROXY_TABLE_REQUEST_OPTIONS_REQUEST_TYPE_OFFSET (3) +#define EMBER_AF_GP_PROXY_TABLE_REQUEST_OPTIONS_RESERVED (0xE0) +#define EMBER_AF_GP_PROXY_TABLE_REQUEST_OPTIONS_RESERVED_OFFSET (5) #define EMBER_AF_GP_RESPONSE_OPTION_APPLICATION_ID (0x07) +#define EMBER_AF_GP_RESPONSE_OPTION_APPLICATION_ID_OFFSET (0) #define EMBER_AF_GP_RESPONSE_OPTION_TRANSMIT_ON_END_POINT_MATCH (0x08) #define EMBER_AF_GP_RESPONSE_OPTION_TRANSMIT_ON_END_POINT_MATCH_OFFSET (3) #define EMBER_AF_GP_RESPONSE_OPTION_RESERVED (0xF0) #define EMBER_AF_GP_RESPONSE_OPTION_RESERVED_OFFSET (4) #define EMBER_AF_GP_RESPONSE_TEMP_MASTER_TX_CHANNEL_TRANSMIT_CHANNEL (0x0F) +#define EMBER_AF_GP_RESPONSE_TEMP_MASTER_TX_CHANNEL_TRANSMIT_CHANNEL_OFFSET (0) #define EMBER_AF_GP_RESPONSE_TEMP_MASTER_TX_CHANNEL_RESERVED (0xF0) #define EMBER_AF_GP_RESPONSE_TEMP_MASTER_TX_CHANNEL_RESERVED_OFFSET (4) +#define EMBER_AF_GP_SINK_COMMISSIONING_MODE_EXIT_MODE_ON_COMMISSIONING_WINDOW_EXPIRATION (0x01) +#define EMBER_AF_GP_SINK_COMMISSIONING_MODE_EXIT_MODE_ON_COMMISSIONING_WINDOW_EXPIRATION_OFFSET (0) +#define EMBER_AF_GP_SINK_COMMISSIONING_MODE_EXIT_MODE_ON_FIRST_PAIRING_SUCCESS (0x02) +#define EMBER_AF_GP_SINK_COMMISSIONING_MODE_EXIT_MODE_ON_FIRST_PAIRING_SUCCESS_OFFSET (1) +#define EMBER_AF_GP_SINK_COMMISSIONING_MODE_EXIT_MODE_ON_GP_PROXY_COMMISSIONING_MODE_EXIT (0x04) +#define EMBER_AF_GP_SINK_COMMISSIONING_MODE_EXIT_MODE_ON_GP_PROXY_COMMISSIONING_MODE_EXIT_OFFSET (2) +#define EMBER_AF_GP_SINK_COMMISSIONING_MODE_EXIT_MODE_RESERVED (0xF8) +#define EMBER_AF_GP_SINK_COMMISSIONING_MODE_EXIT_MODE_RESERVED_OFFSET (3) +#define EMBER_AF_GP_SINK_COMMISSIONING_MODE_OPTIONS_ACTION (0x01) +#define EMBER_AF_GP_SINK_COMMISSIONING_MODE_OPTIONS_ACTION_OFFSET (0) +#define EMBER_AF_GP_SINK_COMMISSIONING_MODE_OPTIONS_INVOLVE_GPM_IN_SECURITY (0x02) +#define EMBER_AF_GP_SINK_COMMISSIONING_MODE_OPTIONS_INVOLVE_GPM_IN_SECURITY_OFFSET (1) +#define EMBER_AF_GP_SINK_COMMISSIONING_MODE_OPTIONS_INVOLVE_GPM_IN_PAIRING (0x04) +#define EMBER_AF_GP_SINK_COMMISSIONING_MODE_OPTIONS_INVOLVE_GPM_IN_PAIRING_OFFSET (2) +#define EMBER_AF_GP_SINK_COMMISSIONING_MODE_OPTIONS_INVOLVE_PROXIES (0x08) +#define EMBER_AF_GP_SINK_COMMISSIONING_MODE_OPTIONS_INVOLVE_PROXIES_OFFSET (3) +#define EMBER_AF_GP_SINK_COMMISSIONING_MODE_OPTIONS_RESERVED (0xF0) +#define EMBER_AF_GP_SINK_COMMISSIONING_MODE_OPTIONS_RESERVED_OFFSET (4) #define EMBER_AF_GP_SINK_TABLE_ENTRY_OPTIONS_APPLICATION_ID (0x0007) +#define EMBER_AF_GP_SINK_TABLE_ENTRY_OPTIONS_APPLICATION_ID_OFFSET (0) #define EMBER_AF_GP_SINK_TABLE_ENTRY_OPTIONS_COMMUNICATION_MODE (0x0018) #define EMBER_AF_GP_SINK_TABLE_ENTRY_OPTIONS_COMMUNICATION_MODE_OFFSET (3) #define EMBER_AF_GP_SINK_TABLE_ENTRY_OPTIONS_SEQUENCE_NUM_CAPABILITIES (0x0020) @@ -3537,34 +3492,564 @@ typedef enum #define EMBER_AF_GP_SINK_TABLE_ENTRY_OPTIONS_RESERVED (0xFC00) #define EMBER_AF_GP_SINK_TABLE_ENTRY_OPTIONS_RESERVED_OFFSET (10) #define EMBER_AF_GP_SINK_TABLE_ENTRY_SECURITY_OPTIONS_SECURITY_LEVEL (0x03) +#define EMBER_AF_GP_SINK_TABLE_ENTRY_SECURITY_OPTIONS_SECURITY_LEVEL_OFFSET (0) #define EMBER_AF_GP_SINK_TABLE_ENTRY_SECURITY_OPTIONS_SECURITY_KEY_TYPE (0x1C) #define EMBER_AF_GP_SINK_TABLE_ENTRY_SECURITY_OPTIONS_SECURITY_KEY_TYPE_OFFSET (2) #define EMBER_AF_GP_SINK_TABLE_ENTRY_SECURITY_OPTIONS_RESERVED (0xE0) #define EMBER_AF_GP_SINK_TABLE_ENTRY_SECURITY_OPTIONS_RESERVED_OFFSET (5) +#define EMBER_AF_GP_SINK_TABLE_REQUEST_OPTIONS_APPLICATION_ID (0x07) +#define EMBER_AF_GP_SINK_TABLE_REQUEST_OPTIONS_APPLICATION_ID_OFFSET (0) +#define EMBER_AF_GP_SINK_TABLE_REQUEST_OPTIONS_REQUEST_TYPE (0x18) +#define EMBER_AF_GP_SINK_TABLE_REQUEST_OPTIONS_REQUEST_TYPE_OFFSET (3) +#define EMBER_AF_GP_SINK_TABLE_REQUEST_OPTIONS_RESERVED (0xE0) +#define EMBER_AF_GP_SINK_TABLE_REQUEST_OPTIONS_RESERVED_OFFSET (5) #define EMBER_AF_GP_TRANSLATION_TABLE_RESPONSE_OPTION_APPLICATION_ID (0x07) +#define EMBER_AF_GP_TRANSLATION_TABLE_RESPONSE_OPTION_APPLICATION_ID_OFFSET (0) #define EMBER_AF_GP_TRANSLATION_TABLE_RESPONSE_OPTION_ADDITIONAL_INFORMATION_BLOCK_PRESENT (0x08) #define EMBER_AF_GP_TRANSLATION_TABLE_RESPONSE_OPTION_ADDITIONAL_INFORMATION_BLOCK_PRESENT_OFFSET (3) #define EMBER_AF_GP_TRANSLATION_TABLE_RESPONSE_OPTION_RESERVED (0xF0) #define EMBER_AF_GP_TRANSLATION_TABLE_RESPONSE_OPTION_RESERVED_OFFSET (4) -#define EMBER_AF_GP_PROXY_TABLE_REQUEST_OPTIONS_APPLICATION_ID (0x07) -#define EMBER_AF_GP_PROXY_TABLE_REQUEST_OPTIONS_REQUEST_TYPE (0x18) -#define EMBER_AF_GP_PROXY_TABLE_REQUEST_OPTIONS_REQUEST_TYPE_OFFSET (3) -#define EMBER_AF_GP_PROXY_TABLE_REQUEST_OPTIONS_RESERVED (0xE0) -#define EMBER_AF_GP_PROXY_TABLE_REQUEST_OPTIONS_RESERVED_OFFSET (5) -#define EMBER_AF_GP_GPD_CHANNEL_REQUEST_CHANNEL_TOGGLING_BEHAVIOUR_RX_CHANNEL_NEXT_ATTEMPT (0x0F) -#define EMBER_AF_GP_GPD_CHANNEL_REQUEST_CHANNEL_TOGGLING_BEHAVIOUR_RX_CHANNEL_SECOND_NEXT_ATTEMPT (0xF0) -#define EMBER_AF_GP_GPD_CHANNEL_REQUEST_CHANNEL_TOGGLING_BEHAVIOUR_RX_CHANNEL_SECOND_NEXT_ATTEMPT_OFFSET (4) -#define EMBER_AF_GP_GPD_CHANNEL_CONFIGURATION_CHANNEL_MASK (0x1F) -#define EMBER_AF_GP_GPD_CHANNEL_CONFIGURATION_CHANNEL_OPERATIONAL_CHANNEL (0x0F) -#define EMBER_AF_GP_GPD_CHANNEL_CONFIGURATION_CHANNEL_BASIC (0x10) -#define EMBER_AF_GP_GPD_CHANNEL_CONFIGURATION_CHANNEL_BASIC_OFFSET (4) -#define EMBER_AF_GP_GPD_CHANNEL_CONFIGURATION_CHANNEL_RESERVED (0xE0) -#define EMBER_AF_GP_GPD_CHANNEL_CONFIGURATION_CHANNEL_RESERVED_OFFSET (5) -#define EMBER_AF_GP_RESPONSE_OPTION_MASK (0x0F) -#define EMBER_AF_GP_RESPONSE_OPTION_TRANSMIT_ON_END_POINT_MATCH (0x08) -#define EMBER_AF_GP_RESPONSE_OPTION_TRANSMIT_ON_END_POINT_MATCH_OFFSET (3) -#define EMBER_AF_GP_RESPONSE_OPTION_RESERVED (0xF0) -#define EMBER_AF_GP_RESPONSE_OPTION_RESERVED_OFFSET (4) -/** @} END Enums */ -/** @} END addtogroup */ -#endif // SILABS_EMBER_AF_ENUMS +#define EMBER_AF_GP_TRANSLATION_TABLE_SCAN_LEVEL_GPD_ID (0x01) +#define EMBER_AF_GP_TRANSLATION_TABLE_SCAN_LEVEL_GPD_ID_OFFSET (0) +#define EMBER_AF_GP_TRANSLATION_TABLE_SCAN_LEVEL_CMD_ID (0x02) +#define EMBER_AF_GP_TRANSLATION_TABLE_SCAN_LEVEL_CMD_ID_OFFSET (1) +#define EMBER_AF_GP_TRANSLATION_TABLE_SCAN_LEVEL_PAYLOAD (0x04) +#define EMBER_AF_GP_TRANSLATION_TABLE_SCAN_LEVEL_PAYLOAD_OFFSET (2) +#define EMBER_AF_GP_TRANSLATION_TABLE_SCAN_LEVEL_ZB_ENDPOINT (0x08) +#define EMBER_AF_GP_TRANSLATION_TABLE_SCAN_LEVEL_ZB_ENDPOINT_OFFSET (3) +#define EMBER_AF_GP_TRANSLATION_TABLE_SCAN_LEVEL_ADDITIONAL_INFO_BLOCK (0x10) +#define EMBER_AF_GP_TRANSLATION_TABLE_SCAN_LEVEL_ADDITIONAL_INFO_BLOCK_OFFSET (4) +#define EMBER_AF_GP_TRANSLATION_TABLE_UPDATE_OPTION_APPLICATION_ID (0x0007) +#define EMBER_AF_GP_TRANSLATION_TABLE_UPDATE_OPTION_APPLICATION_ID_OFFSET (0) +#define EMBER_AF_GP_TRANSLATION_TABLE_UPDATE_OPTION_ACTION (0x0018) +#define EMBER_AF_GP_TRANSLATION_TABLE_UPDATE_OPTION_ACTION_OFFSET (3) +#define EMBER_AF_GP_TRANSLATION_TABLE_UPDATE_OPTION_NUMBER_OF_TRANSLATIONS (0x00E0) +#define EMBER_AF_GP_TRANSLATION_TABLE_UPDATE_OPTION_NUMBER_OF_TRANSLATIONS_OFFSET (5) +#define EMBER_AF_GP_TRANSLATION_TABLE_UPDATE_OPTION_ADDITIONAL_INFORMATION_BLOCK_PRESENT (0x0100) +#define EMBER_AF_GP_TRANSLATION_TABLE_UPDATE_OPTION_ADDITIONAL_INFORMATION_BLOCK_PRESENT_OFFSET (8) +#define EMBER_AF_GP_TRANSLATION_TABLE_UPDATE_OPTION_RESERVED (0xFE00) +#define EMBER_AF_GP_TRANSLATION_TABLE_UPDATE_OPTION_RESERVED_OFFSET (9) +#define EMBER_AF_GP_TUNNELING_STOP_OPTION_APPLICATION_ID (0x07) +#define EMBER_AF_GP_TUNNELING_STOP_OPTION_APPLICATION_ID_OFFSET (0) +#define EMBER_AF_GP_TUNNELING_STOP_OPTION_ALSO_DERIVED_GROUP (0x08) +#define EMBER_AF_GP_TUNNELING_STOP_OPTION_ALSO_DERIVED_GROUP_OFFSET (3) +#define EMBER_AF_GP_TUNNELING_STOP_OPTION_ALSO_COMMISSIONED_GROUP (0x10) +#define EMBER_AF_GP_TUNNELING_STOP_OPTION_ALSO_COMMISSIONED_GROUP_OFFSET (4) +#define EMBER_AF_GP_TUNNELING_STOP_OPTION_RESERVED (0xE0) +#define EMBER_AF_GP_TUNNELING_STOP_OPTION_RESERVED_OFFSET (5) +#define EMBER_AF_IAS_ZONE_STATUS_ALARM1 (0x1) +#define EMBER_AF_IAS_ZONE_STATUS_ALARM1_OFFSET (0) +#define EMBER_AF_IAS_ZONE_STATUS_ALARM2 (0x2) +#define EMBER_AF_IAS_ZONE_STATUS_ALARM2_OFFSET (1) +#define EMBER_AF_IAS_ZONE_STATUS_TAMPER (0x4) +#define EMBER_AF_IAS_ZONE_STATUS_TAMPER_OFFSET (2) +#define EMBER_AF_IAS_ZONE_STATUS_BATTERY (0x8) +#define EMBER_AF_IAS_ZONE_STATUS_BATTERY_OFFSET (3) +#define EMBER_AF_IAS_ZONE_STATUS_SUPERVISION_REPORTS (0x10) +#define EMBER_AF_IAS_ZONE_STATUS_SUPERVISION_REPORTS_OFFSET (4) +#define EMBER_AF_IAS_ZONE_STATUS_RESTORE_REPORTS (0x20) +#define EMBER_AF_IAS_ZONE_STATUS_RESTORE_REPORTS_OFFSET (5) +#define EMBER_AF_IAS_ZONE_STATUS_TROUBLE (0x40) +#define EMBER_AF_IAS_ZONE_STATUS_TROUBLE_OFFSET (6) +#define EMBER_AF_IAS_ZONE_STATUS_AC (0x80) +#define EMBER_AF_IAS_ZONE_STATUS_AC_OFFSET (7) +#define EMBER_AF_IAS_ZONE_STATUS_TEST (0x100) +#define EMBER_AF_IAS_ZONE_STATUS_TEST_OFFSET (8) +#define EMBER_AF_IAS_ZONE_STATUS_BATTERY_DEFECT (0x200) +#define EMBER_AF_IAS_ZONE_STATUS_BATTERY_DEFECT_OFFSET (9) +#define EMBER_AF_KEY_BITMASK_DEVELOPMENT (0x0001) +#define EMBER_AF_KEY_BITMASK_DEVELOPMENT_OFFSET (0) +#define EMBER_AF_KEY_BITMASK_MASTER (0x0010) +#define EMBER_AF_KEY_BITMASK_MASTER_OFFSET (4) +#define EMBER_AF_KEY_BITMASK_CERTIFICATION (0x8000) +#define EMBER_AF_KEY_BITMASK_CERTIFICATION_OFFSET (15) +#define EMBER_AF_LAMP_ALARM_MODE_LAMP_BURN_HOURS (0x1) +#define EMBER_AF_LAMP_ALARM_MODE_LAMP_BURN_HOURS_OFFSET (0) +#define EMBER_AF_LOAD_CONTROL_STATE_RELAY_OPEN_OR_CONSUMPTION_INTERUPTED (0x01) +#define EMBER_AF_LOAD_CONTROL_STATE_RELAY_OPEN_OR_CONSUMPTION_INTERUPTED_OFFSET (0) +#define EMBER_AF_LOAD_CONTROL_STATE_EVENT_IN_PROGRESS (0x02) +#define EMBER_AF_LOAD_CONTROL_STATE_EVENT_IN_PROGRESS_OFFSET (1) +#define EMBER_AF_LOAD_CONTROL_STATE_POWER_STABILIZING (0x04) +#define EMBER_AF_LOAD_CONTROL_STATE_POWER_STABILIZING_OFFSET (2) +#define EMBER_AF_LOAD_CONTROL_STATE_OTHER_LOAD_REDUCTION (0x08) +#define EMBER_AF_LOAD_CONTROL_STATE_OTHER_LOAD_REDUCTION_OFFSET (3) +#define EMBER_AF_LOAD_CONTROL_STATE_CURRENT_FLOW_OR_CONSUMING_COMMODITY (0x10) +#define EMBER_AF_LOAD_CONTROL_STATE_CURRENT_FLOW_OR_CONSUMING_COMMODITY_OFFSET (4) +#define EMBER_AF_LOAD_CONTROL_STATE_LOAD_CALL (0x20) +#define EMBER_AF_LOAD_CONTROL_STATE_LOAD_CALL_OFFSET (5) +#define EMBER_AF_LOCATION_TYPE_ABSOLUTE (0x1) +#define EMBER_AF_LOCATION_TYPE_ABSOLUTE_OFFSET (0) +#define EMBER_AF_LOCATION_TYPE_2_D (0x2) +#define EMBER_AF_LOCATION_TYPE_2_D_OFFSET (1) +#define EMBER_AF_LOCATION_TYPE_COORDINATE_SYSTEM (0xc) +#define EMBER_AF_LOCATION_TYPE_COORDINATE_SYSTEM_OFFSET (2) +#define EMBER_AF_MAINS_ALARM_MASK_VOLTAGE_TOO_LOW (0x1) +#define EMBER_AF_MAINS_ALARM_MASK_VOLTAGE_TOO_LOW_OFFSET (0) +#define EMBER_AF_MAINS_ALARM_MASK_VOLTAGE_TOO_HIGH (0x2) +#define EMBER_AF_MAINS_ALARM_MASK_VOLTAGE_TOO_HIGH_OFFSET (1) +#define EMBER_AF_MAINS_ALARM_MASK_MAINS_POWER_SUPPLY_LOST (0x4) +#define EMBER_AF_MAINS_ALARM_MASK_MAINS_POWER_SUPPLY_LOST_OFFSET (2) +#define EMBER_AF_MESSAGING_CONFIRMATION_CONTROL_NO_RETURNED (0x01) +#define EMBER_AF_MESSAGING_CONFIRMATION_CONTROL_NO_RETURNED_OFFSET (0) +#define EMBER_AF_MESSAGING_CONFIRMATION_CONTROL_YES_RETURNED (0x02) +#define EMBER_AF_MESSAGING_CONFIRMATION_CONTROL_YES_RETURNED_OFFSET (1) +#define EMBER_AF_MESSAGING_CONTROL_MASK_TRANS_MECHANISM (0x03) +#define EMBER_AF_MESSAGING_CONTROL_MASK_TRANS_MECHANISM_OFFSET (0) +#define EMBER_AF_MESSAGING_CONTROL_MASK_MESSAGE_URGENCY (0x0C) +#define EMBER_AF_MESSAGING_CONTROL_MASK_MESSAGE_URGENCY_OFFSET (2) +#define EMBER_AF_MESSAGING_CONTROL_MASK_ENHANCED_CONFIRMATION_REQUEST (0x20) +#define EMBER_AF_MESSAGING_CONTROL_MASK_ENHANCED_CONFIRMATION_REQUEST_OFFSET (5) +#define EMBER_AF_MESSAGING_CONTROL_MASK_MESSAGE_CONFIRMATION (0x80) +#define EMBER_AF_MESSAGING_CONTROL_MASK_MESSAGE_CONFIRMATION_OFFSET (7) +#define EMBER_AF_MESSAGING_EXTENDED_CONTROL_MASK_MESSAGE_CONFIRMATION_STATUS (0x01) +#define EMBER_AF_MESSAGING_EXTENDED_CONTROL_MASK_MESSAGE_CONFIRMATION_STATUS_OFFSET (0) +#define EMBER_AF_METERING_EXTENDED_STATUS_METER_COVER_REMOVED (0x0000000000000001) +#define EMBER_AF_METERING_EXTENDED_STATUS_METER_COVER_REMOVED_OFFSET (0) +#define EMBER_AF_METERING_EXTENDED_STATUS_STRONG_MAGNETIC_FIELD_DETECTED (0x0000000000000002) +#define EMBER_AF_METERING_EXTENDED_STATUS_STRONG_MAGNETIC_FIELD_DETECTED_OFFSET (1) +#define EMBER_AF_METERING_EXTENDED_STATUS_BATTERY_FAILURE (0x0000000000000004) +#define EMBER_AF_METERING_EXTENDED_STATUS_BATTERY_FAILURE_OFFSET (2) +#define EMBER_AF_METERING_EXTENDED_STATUS_PROGRAM_MEMORY_ERROR (0x0000000000000008) +#define EMBER_AF_METERING_EXTENDED_STATUS_PROGRAM_MEMORY_ERROR_OFFSET (3) +#define EMBER_AF_METERING_EXTENDED_STATUS_RAM_ERROR (0x0000000000000010) +#define EMBER_AF_METERING_EXTENDED_STATUS_RAM_ERROR_OFFSET (4) +#define EMBER_AF_METERING_EXTENDED_STATUS_NV_MEMORY_ERROR (0x0000000000000020) +#define EMBER_AF_METERING_EXTENDED_STATUS_NV_MEMORY_ERROR_OFFSET (5) +#define EMBER_AF_METERING_EXTENDED_STATUS_MEASUREMENT_SYSTEM_ERROR (0x0000000000000040) +#define EMBER_AF_METERING_EXTENDED_STATUS_MEASUREMENT_SYSTEM_ERROR_OFFSET (6) +#define EMBER_AF_METERING_EXTENDED_STATUS_WATCHDOG_ERROR (0x0000000000000080) +#define EMBER_AF_METERING_EXTENDED_STATUS_WATCHDOG_ERROR_OFFSET (7) +#define EMBER_AF_METERING_EXTENDED_STATUS_SUPPLY_DISCONNECT_FAILURE (0x0000000000000100) +#define EMBER_AF_METERING_EXTENDED_STATUS_SUPPLY_DISCONNECT_FAILURE_OFFSET (8) +#define EMBER_AF_METERING_EXTENDED_STATUS_SUPPLY_CONNECT_FAILURE (0x0000000000000200) +#define EMBER_AF_METERING_EXTENDED_STATUS_SUPPLY_CONNECT_FAILURE_OFFSET (9) +#define EMBER_AF_METERING_EXTENDED_STATUS_MEASUREMENT_SW_CHANGED_TAMPERED (0x0000000000000400) +#define EMBER_AF_METERING_EXTENDED_STATUS_MEASUREMENT_SW_CHANGED_TAMPERED_OFFSET (10) +#define EMBER_AF_METERING_EXTENDED_STATUS_CLOCK_INVALID (0x0000000000000800) +#define EMBER_AF_METERING_EXTENDED_STATUS_CLOCK_INVALID_OFFSET (11) +#define EMBER_AF_METERING_EXTENDED_STATUS_TEMPERATURE_EXCEEDED (0x0000000000001000) +#define EMBER_AF_METERING_EXTENDED_STATUS_TEMPERATURE_EXCEEDED_OFFSET (12) +#define EMBER_AF_METERING_EXTENDED_STATUS_MOISTURE_DETECTED (0x0000000000002000) +#define EMBER_AF_METERING_EXTENDED_STATUS_MOISTURE_DETECTED_OFFSET (13) +#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_TERMINAL_COVER_REMOVED (0x0000000001000000) +#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_TERMINAL_COVER_REMOVED_OFFSET (24) +#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_INCORRECT_POLARITY (0x0000000002000000) +#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_INCORRECT_POLARITY_OFFSET (25) +#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_CURRENT_WITH_NO_VOLTAGE (0x0000000004000000) +#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_CURRENT_WITH_NO_VOLTAGE_OFFSET (26) +#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_LIMIT_THRESHOLD_EXCEEDED (0x0000000008000000) +#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_LIMIT_THRESHOLD_EXCEEDED_OFFSET (27) +#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_UNDER_VOLTAGE (0x0000000010000000) +#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_UNDER_VOLTAGE_OFFSET (28) +#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_OVER_VOLTAGE (0x0000000020000000) +#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_OVER_VOLTAGE_OFFSET (29) +#define EMBER_AF_METERING_EXTENDED_STATUS_GAS_METER_BATTERY_COVER_REMOVED (0x0000000001000000) +#define EMBER_AF_METERING_EXTENDED_STATUS_GAS_METER_BATTERY_COVER_REMOVED_OFFSET (24) +#define EMBER_AF_METERING_EXTENDED_STATUS_GAS_METER_TILT_TAMPER (0x0000000002000000) +#define EMBER_AF_METERING_EXTENDED_STATUS_GAS_METER_TILT_TAMPER_OFFSET (25) +#define EMBER_AF_METERING_EXTENDED_STATUS_GAS_METER_EXCESS_FLOW (0x0000000004000000) +#define EMBER_AF_METERING_EXTENDED_STATUS_GAS_METER_EXCESS_FLOW_OFFSET (26) +#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_SERVICE_DISCONNECTION_REASON_OFF_DUE_TO_OVER_POWER (0x0000000040000000) +#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_SERVICE_DISCONNECTION_REASON_OFF_DUE_TO_OVER_POWER_OFFSET (30) +#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_SERVICE_DISCONNECTION_REASON_OFF_DUE_TO_OVER_VOLTAGE \ + (0x0000000080000000) +#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_SERVICE_DISCONNECTION_REASON_OFF_DUE_TO_OVER_VOLTAGE_OFFSET (31) +#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_SERVICE_DISCONNECTION_REASON_OFF_DUE_TO_REMOTE_LOAD_CONTROL \ + (0x00000000C0000000) +#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_SERVICE_DISCONNECTION_REASON_OFF_DUE_TO_REMOTE_LOAD_CONTROL_OFFSET (30) +#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_SERVICE_DISCONNECTION_REASON_OFF_BY_OTHER_REMOTE_COMMAND \ + (0x0000000100000000) +#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_SERVICE_DISCONNECTION_REASON_OFF_BY_OTHER_REMOTE_COMMAND_OFFSET (32) +#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_SERVICE_DISCONNECTION_REASON_OFF_DUE_TO_OVERHEATING_SHORT_CIRCUIT \ + (0x0000000140000000) +#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_SERVICE_DISCONNECTION_REASON_OFF_DUE_TO_OVERHEATING_SHORT_CIRCUIT_OFFSET \ + (30) +#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_SERVICE_DISCONNECTION_REASON_OFF_DUE_TO_OVERHEATING_OTHER \ + (0x0000000180000000) +#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_SERVICE_DISCONNECTION_REASON_OFF_DUE_TO_OVERHEATING_OTHER_OFFSET (31) +#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_BI_DIRECTIONAL_OPERATION (0x0000000400000000) +#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_BI_DIRECTIONAL_OPERATION_OFFSET (34) +#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_ACTIVE_POWER_RECEIVED (0x0000000800000000) +#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_ACTIVE_POWER_RECEIVED_OFFSET (35) +#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_MODE_OF_OPERATION (0x0000001000000000) +#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_MODE_OF_OPERATION_OFFSET (36) +#define EMBER_AF_METERING_STATUS_ELECTRICITY_CHECK_METER (0x01) +#define EMBER_AF_METERING_STATUS_ELECTRICITY_CHECK_METER_OFFSET (0) +#define EMBER_AF_METERING_STATUS_ELECTRICITY_LOW_BATTERY (0x02) +#define EMBER_AF_METERING_STATUS_ELECTRICITY_LOW_BATTERY_OFFSET (1) +#define EMBER_AF_METERING_STATUS_ELECTRICITY_TAMPER_DETECT (0x04) +#define EMBER_AF_METERING_STATUS_ELECTRICITY_TAMPER_DETECT_OFFSET (2) +#define EMBER_AF_METERING_STATUS_ELECTRICITY_POWER_FAILURE (0x08) +#define EMBER_AF_METERING_STATUS_ELECTRICITY_POWER_FAILURE_OFFSET (3) +#define EMBER_AF_METERING_STATUS_ELECTRICITY_POWER_QUALITY (0x10) +#define EMBER_AF_METERING_STATUS_ELECTRICITY_POWER_QUALITY_OFFSET (4) +#define EMBER_AF_METERING_STATUS_ELECTRICITY_LEAK_DETECT (0x20) +#define EMBER_AF_METERING_STATUS_ELECTRICITY_LEAK_DETECT_OFFSET (5) +#define EMBER_AF_METERING_STATUS_ELECTRICITY_SERVICE_DISCONNECT_OPEN (0x40) +#define EMBER_AF_METERING_STATUS_ELECTRICITY_SERVICE_DISCONNECT_OPEN_OFFSET (6) +#define EMBER_AF_METERING_STATUS_ELECTRICITY_RESERVED (0x80) +#define EMBER_AF_METERING_STATUS_ELECTRICITY_RESERVED_OFFSET (7) +#define EMBER_AF_METERING_STATUS_GAS_CHECK_METER (0x01) +#define EMBER_AF_METERING_STATUS_GAS_CHECK_METER_OFFSET (0) +#define EMBER_AF_METERING_STATUS_GAS_LOW_BATTERY (0x02) +#define EMBER_AF_METERING_STATUS_GAS_LOW_BATTERY_OFFSET (1) +#define EMBER_AF_METERING_STATUS_GAS_TAMPER_DETECT (0x04) +#define EMBER_AF_METERING_STATUS_GAS_TAMPER_DETECT_OFFSET (2) +#define EMBER_AF_METERING_STATUS_GAS_NOT_DEFINED (0x08) +#define EMBER_AF_METERING_STATUS_GAS_NOT_DEFINED_OFFSET (3) +#define EMBER_AF_METERING_STATUS_GAS_LOW_PRESSURE (0x10) +#define EMBER_AF_METERING_STATUS_GAS_LOW_PRESSURE_OFFSET (4) +#define EMBER_AF_METERING_STATUS_GAS_LEAK_DETECT (0x20) +#define EMBER_AF_METERING_STATUS_GAS_LEAK_DETECT_OFFSET (5) +#define EMBER_AF_METERING_STATUS_GAS_SERVICE_DISCONNECT (0x40) +#define EMBER_AF_METERING_STATUS_GAS_SERVICE_DISCONNECT_OFFSET (6) +#define EMBER_AF_METERING_STATUS_GAS_REVERSE_FLOW (0x80) +#define EMBER_AF_METERING_STATUS_GAS_REVERSE_FLOW_OFFSET (7) +#define EMBER_AF_METERING_STATUS_HEAT_AND_COOLING_CHECK_METER (0x01) +#define EMBER_AF_METERING_STATUS_HEAT_AND_COOLING_CHECK_METER_OFFSET (0) +#define EMBER_AF_METERING_STATUS_HEAT_AND_COOLING_LOW_BATTERY (0x02) +#define EMBER_AF_METERING_STATUS_HEAT_AND_COOLING_LOW_BATTERY_OFFSET (1) +#define EMBER_AF_METERING_STATUS_HEAT_AND_COOLING_TAMPER_DETECT (0x04) +#define EMBER_AF_METERING_STATUS_HEAT_AND_COOLING_TAMPER_DETECT_OFFSET (2) +#define EMBER_AF_METERING_STATUS_HEAT_AND_COOLING_TEMPERATURE_SENSOR (0x08) +#define EMBER_AF_METERING_STATUS_HEAT_AND_COOLING_TEMPERATURE_SENSOR_OFFSET (3) +#define EMBER_AF_METERING_STATUS_HEAT_AND_COOLING_BURST_DETECT (0x10) +#define EMBER_AF_METERING_STATUS_HEAT_AND_COOLING_BURST_DETECT_OFFSET (4) +#define EMBER_AF_METERING_STATUS_HEAT_AND_COOLING_LEAK_DETECT (0x20) +#define EMBER_AF_METERING_STATUS_HEAT_AND_COOLING_LEAK_DETECT_OFFSET (5) +#define EMBER_AF_METERING_STATUS_HEAT_AND_COOLING_SERVICE_DISCONNECT (0x40) +#define EMBER_AF_METERING_STATUS_HEAT_AND_COOLING_SERVICE_DISCONNECT_OFFSET (6) +#define EMBER_AF_METERING_STATUS_HEAT_AND_COOLING_FLOW_SENSOR (0x80) +#define EMBER_AF_METERING_STATUS_HEAT_AND_COOLING_FLOW_SENSOR_OFFSET (7) +#define EMBER_AF_METERING_STATUS_WATER_CHECK_METER (0x01) +#define EMBER_AF_METERING_STATUS_WATER_CHECK_METER_OFFSET (0) +#define EMBER_AF_METERING_STATUS_WATER_LOW_BATTERY (0x02) +#define EMBER_AF_METERING_STATUS_WATER_LOW_BATTERY_OFFSET (1) +#define EMBER_AF_METERING_STATUS_WATER_TAMPER_DETECT (0x04) +#define EMBER_AF_METERING_STATUS_WATER_TAMPER_DETECT_OFFSET (2) +#define EMBER_AF_METERING_STATUS_WATER_PIPE_EMPTY (0x08) +#define EMBER_AF_METERING_STATUS_WATER_PIPE_EMPTY_OFFSET (3) +#define EMBER_AF_METERING_STATUS_WATER_LOW_PRESSURE (0x10) +#define EMBER_AF_METERING_STATUS_WATER_LOW_PRESSURE_OFFSET (4) +#define EMBER_AF_METERING_STATUS_WATER_LEAK_DETECT (0x20) +#define EMBER_AF_METERING_STATUS_WATER_LEAK_DETECT_OFFSET (5) +#define EMBER_AF_METERING_STATUS_WATER_SERVICE_DISCONNECT (0x40) +#define EMBER_AF_METERING_STATUS_WATER_SERVICE_DISCONNECT_OFFSET (6) +#define EMBER_AF_METERING_STATUS_WATER_REVERSE_FLOW (0x80) +#define EMBER_AF_METERING_STATUS_WATER_REVERSE_FLOW_OFFSET (7) +#define EMBER_AF_MODE_FOR_SEQUENCE_HEAT_SETPOINT_FIELD_PRESENT (0x01) +#define EMBER_AF_MODE_FOR_SEQUENCE_HEAT_SETPOINT_FIELD_PRESENT_OFFSET (0) +#define EMBER_AF_MODE_FOR_SEQUENCE_COOL_SETPOINT_FIELD_PRESENT (0x02) +#define EMBER_AF_MODE_FOR_SEQUENCE_COOL_SETPOINT_FIELD_PRESENT_OFFSET (1) +#define EMBER_AF_NUMBER_OF_EVENTS_LOG_PAYLOAD_CONTROL_LOG_PAYLOAD_CONTROL (0x0F) +#define EMBER_AF_NUMBER_OF_EVENTS_LOG_PAYLOAD_CONTROL_LOG_PAYLOAD_CONTROL_OFFSET (0) +#define EMBER_AF_NUMBER_OF_EVENTS_LOG_PAYLOAD_CONTROL_NUMBER_OF_EVENTS (0xF0) +#define EMBER_AF_NUMBER_OF_EVENTS_LOG_PAYLOAD_CONTROL_NUMBER_OF_EVENTS_OFFSET (4) +#define EMBER_AF_OCCUPANCY_OCCUPIED (0x1) +#define EMBER_AF_OCCUPANCY_OCCUPIED_OFFSET (0) +#define EMBER_AF_OCCUPANCY_SENSOR_TYPE_BITMAP_PIR (0x01) +#define EMBER_AF_OCCUPANCY_SENSOR_TYPE_BITMAP_PIR_OFFSET (0) +#define EMBER_AF_OCCUPANCY_SENSOR_TYPE_BITMAP_ULTRASONIC (0x02) +#define EMBER_AF_OCCUPANCY_SENSOR_TYPE_BITMAP_ULTRASONIC_OFFSET (1) +#define EMBER_AF_OCCUPANCY_SENSOR_TYPE_BITMAP_PHYSICAL_CONTACT (0x04) +#define EMBER_AF_OCCUPANCY_SENSOR_TYPE_BITMAP_PHYSICAL_CONTACT_OFFSET (2) +#define EMBER_AF_ON_OFF_CONTROL_ACCEPT_ONLY_WHEN_ON (0x01) +#define EMBER_AF_ON_OFF_CONTROL_ACCEPT_ONLY_WHEN_ON_OFFSET (0) +#define EMBER_AF_ORIGINATOR_ID_SUPPLY_CONTROL_BITS_ACKNOWLEDGE_REQUIRED (0x01) +#define EMBER_AF_ORIGINATOR_ID_SUPPLY_CONTROL_BITS_ACKNOWLEDGE_REQUIRED_OFFSET (0) +#define EMBER_AF_PAYMENT_CONTROL_CONFIGURATION_DISCONNECTION_ENABLED (0x0001) +#define EMBER_AF_PAYMENT_CONTROL_CONFIGURATION_DISCONNECTION_ENABLED_OFFSET (0) +#define EMBER_AF_PAYMENT_CONTROL_CONFIGURATION_PREPAYMENT_ENABLED (0x0002) +#define EMBER_AF_PAYMENT_CONTROL_CONFIGURATION_PREPAYMENT_ENABLED_OFFSET (1) +#define EMBER_AF_PAYMENT_CONTROL_CONFIGURATION_CREDIT_MANAGEMENT_ENABLED (0x0004) +#define EMBER_AF_PAYMENT_CONTROL_CONFIGURATION_CREDIT_MANAGEMENT_ENABLED_OFFSET (2) +#define EMBER_AF_PAYMENT_CONTROL_CONFIGURATION_CREDIT_DISPLAY_ENABLED (0x0010) +#define EMBER_AF_PAYMENT_CONTROL_CONFIGURATION_CREDIT_DISPLAY_ENABLED_OFFSET (4) +#define EMBER_AF_PAYMENT_CONTROL_CONFIGURATION_ACCOUNT_BASE (0x0040) +#define EMBER_AF_PAYMENT_CONTROL_CONFIGURATION_ACCOUNT_BASE_OFFSET (6) +#define EMBER_AF_PAYMENT_CONTROL_CONFIGURATION_CONTACTOR_FITTED (0x0080) +#define EMBER_AF_PAYMENT_CONTROL_CONFIGURATION_CONTACTOR_FITTED_OFFSET (7) +#define EMBER_AF_PAYMENT_CONTROL_CONFIGURATION_STANDING_CHARGE_CONFIGURATION (0x0100) +#define EMBER_AF_PAYMENT_CONTROL_CONFIGURATION_STANDING_CHARGE_CONFIGURATION_OFFSET (8) +#define EMBER_AF_PAYMENT_CONTROL_CONFIGURATION_EMERGENCY_STANDING_CHARGE_CONFIGURATION (0x0200) +#define EMBER_AF_PAYMENT_CONTROL_CONFIGURATION_EMERGENCY_STANDING_CHARGE_CONFIGURATION_OFFSET (9) +#define EMBER_AF_PAYMENT_CONTROL_CONFIGURATION_DEBT_CONFIGURATION (0x0400) +#define EMBER_AF_PAYMENT_CONTROL_CONFIGURATION_DEBT_CONFIGURATION_OFFSET (10) +#define EMBER_AF_PAYMENT_CONTROL_CONFIGURATION_EMERGENCY_DEBT_CONFIGURATION (0x0800) +#define EMBER_AF_PAYMENT_CONTROL_CONFIGURATION_EMERGENCY_DEBT_CONFIGURATION_OFFSET (11) +#define EMBER_AF_PREPAY_SNAPSHOT_PAYLOAD_CAUSE_GENERAL (0x00000001) +#define EMBER_AF_PREPAY_SNAPSHOT_PAYLOAD_CAUSE_GENERAL_OFFSET (0) +#define EMBER_AF_PREPAY_SNAPSHOT_PAYLOAD_CAUSE_CHANGE_OF_TARIFF_INFORMATION (0x00000008) +#define EMBER_AF_PREPAY_SNAPSHOT_PAYLOAD_CAUSE_CHANGE_OF_TARIFF_INFORMATION_OFFSET (3) +#define EMBER_AF_PREPAY_SNAPSHOT_PAYLOAD_CAUSE_CHANGE_OF_PRICE_MATRIX (0x00000010) +#define EMBER_AF_PREPAY_SNAPSHOT_PAYLOAD_CAUSE_CHANGE_OF_PRICE_MATRIX_OFFSET (4) +#define EMBER_AF_PREPAY_SNAPSHOT_PAYLOAD_CAUSE_MANUALLY_TRIGGERED_FROM_CLIENT (0x00000400) +#define EMBER_AF_PREPAY_SNAPSHOT_PAYLOAD_CAUSE_MANUALLY_TRIGGERED_FROM_CLIENT_OFFSET (10) +#define EMBER_AF_PREPAY_SNAPSHOT_PAYLOAD_CAUSE_CHANGE_OF_TENANCY (0x00001000) +#define EMBER_AF_PREPAY_SNAPSHOT_PAYLOAD_CAUSE_CHANGE_OF_TENANCY_OFFSET (12) +#define EMBER_AF_PREPAY_SNAPSHOT_PAYLOAD_CAUSE_CHANGE_OF_SUPPLIER (0x00002000) +#define EMBER_AF_PREPAY_SNAPSHOT_PAYLOAD_CAUSE_CHANGE_OF_SUPPLIER_OFFSET (13) +#define EMBER_AF_PREPAY_SNAPSHOT_PAYLOAD_CAUSE_CHANGE_OF_METER_MODE (0x00004000) +#define EMBER_AF_PREPAY_SNAPSHOT_PAYLOAD_CAUSE_CHANGE_OF_METER_MODE_OFFSET (14) +#define EMBER_AF_PREPAY_SNAPSHOT_PAYLOAD_CAUSE_TOP_UP_ADDITION (0x00040000) +#define EMBER_AF_PREPAY_SNAPSHOT_PAYLOAD_CAUSE_TOP_UP_ADDITION_OFFSET (18) +#define EMBER_AF_PREPAY_SNAPSHOT_PAYLOAD_CAUSE_DEBT_CREDIT_ADDITION (0x00080000) +#define EMBER_AF_PREPAY_SNAPSHOT_PAYLOAD_CAUSE_DEBT_CREDIT_ADDITION_OFFSET (19) +#define EMBER_AF_PREPAYMENT_ALARM_STATUS_LOW_CREDIT_WARNING (0x0001) +#define EMBER_AF_PREPAYMENT_ALARM_STATUS_LOW_CREDIT_WARNING_OFFSET (0) +#define EMBER_AF_PREPAYMENT_ALARM_STATUS_TOP_UP_CODE_ERROR (0x0002) +#define EMBER_AF_PREPAYMENT_ALARM_STATUS_TOP_UP_CODE_ERROR_OFFSET (1) +#define EMBER_AF_PREPAYMENT_ALARM_STATUS_TOP_UP_CODE_ALREADY_USED (0x0004) +#define EMBER_AF_PREPAYMENT_ALARM_STATUS_TOP_UP_CODE_ALREADY_USED_OFFSET (2) +#define EMBER_AF_PREPAYMENT_ALARM_STATUS_TOP_UP_CODE_INVALID (0x0008) +#define EMBER_AF_PREPAYMENT_ALARM_STATUS_TOP_UP_CODE_INVALID_OFFSET (3) +#define EMBER_AF_PREPAYMENT_ALARM_STATUS_FRIENDLY_CREDIT_IN_USE (0x0010) +#define EMBER_AF_PREPAYMENT_ALARM_STATUS_FRIENDLY_CREDIT_IN_USE_OFFSET (4) +#define EMBER_AF_PREPAYMENT_ALARM_STATUS_FRIENDLY_CREDIT_PERIOD_END_WARNING (0x0020) +#define EMBER_AF_PREPAYMENT_ALARM_STATUS_FRIENDLY_CREDIT_PERIOD_END_WARNING_OFFSET (5) +#define EMBER_AF_PREPAYMENT_ALARM_STATUS_EC_AVAILABLE (0x0040) +#define EMBER_AF_PREPAYMENT_ALARM_STATUS_EC_AVAILABLE_OFFSET (6) +#define EMBER_AF_PREPAYMENT_ALARM_STATUS_UNAUTHORISED_ENERGY_USE (0x0080) +#define EMBER_AF_PREPAYMENT_ALARM_STATUS_UNAUTHORISED_ENERGY_USE_OFFSET (7) +#define EMBER_AF_PREPAYMENT_ALARM_STATUS_DISCONNECTED_SUPPLY_DUE_TO_CREDIT (0x0100) +#define EMBER_AF_PREPAYMENT_ALARM_STATUS_DISCONNECTED_SUPPLY_DUE_TO_CREDIT_OFFSET (8) +#define EMBER_AF_PREPAYMENT_ALARM_STATUS_DISCONNECTED_SUPPLY_DUE_TO_TAMPER (0x0200) +#define EMBER_AF_PREPAYMENT_ALARM_STATUS_DISCONNECTED_SUPPLY_DUE_TO_TAMPER_OFFSET (9) +#define EMBER_AF_PREPAYMENT_ALARM_STATUS_DISCONNECTED_SUPPLY_DUE_TO_HES (0x0400) +#define EMBER_AF_PREPAYMENT_ALARM_STATUS_DISCONNECTED_SUPPLY_DUE_TO_HES_OFFSET (10) +#define EMBER_AF_PREPAYMENT_ALARM_STATUS_PHYSICAL_ATTACK (0x0800) +#define EMBER_AF_PREPAYMENT_ALARM_STATUS_PHYSICAL_ATTACK_OFFSET (11) +#define EMBER_AF_PREPAYMENT_ALARM_STATUS_ELECTRONIC_ATTACK (0x1000) +#define EMBER_AF_PREPAYMENT_ALARM_STATUS_ELECTRONIC_ATTACK_OFFSET (12) +#define EMBER_AF_PREPAYMENT_ALARM_STATUS_MANUFACTURE_ALARM_CODE_A (0x2000) +#define EMBER_AF_PREPAYMENT_ALARM_STATUS_MANUFACTURE_ALARM_CODE_A_OFFSET (13) +#define EMBER_AF_PREPAYMENT_ALARM_STATUS_MANUFACTURE_ALARM_CODE_B (0x4000) +#define EMBER_AF_PREPAYMENT_ALARM_STATUS_MANUFACTURE_ALARM_CODE_B_OFFSET (14) +#define EMBER_AF_PRICE_CONTROL_MASK_PRICE_ACKNOWLEDGEMENT_REQUIRED (0x01) +#define EMBER_AF_PRICE_CONTROL_MASK_PRICE_ACKNOWLEDGEMENT_REQUIRED_OFFSET (0) +#define EMBER_AF_PRICE_CONTROL_MASK_TOTAL_TIERS_EXCEEDS15 (0x02) +#define EMBER_AF_PRICE_CONTROL_MASK_TOTAL_TIERS_EXCEEDS15_OFFSET (1) +#define EMBER_AF_PRICE_MATRIX_SUB_PAYLOAD_CONTROL_TOU_BASED (0x01) +#define EMBER_AF_PRICE_MATRIX_SUB_PAYLOAD_CONTROL_TOU_BASED_OFFSET (0) +#define EMBER_AF_PRICE_NUMBER_OF_PRICE_TIERS_AND_REGISTER_TIER_REGISTER_TIER (0x0F) +#define EMBER_AF_PRICE_NUMBER_OF_PRICE_TIERS_AND_REGISTER_TIER_REGISTER_TIER_OFFSET (0) +#define EMBER_AF_PRICE_NUMBER_OF_PRICE_TIERS_AND_REGISTER_TIER_NUMBER_OF_PRICE_TIERS (0xF0) +#define EMBER_AF_PRICE_NUMBER_OF_PRICE_TIERS_AND_REGISTER_TIER_NUMBER_OF_PRICE_TIERS_OFFSET (4) +#define EMBER_AF_PRICE_TRAILING_DIGIT_TRAILING_DIGIT (0xF0) +#define EMBER_AF_PRICE_TRAILING_DIGIT_TRAILING_DIGIT_OFFSET (4) +#define EMBER_AF_PRICE_TRAILING_DIGIT_AND_PRICE_TIER_PRICE_TIER (0x0F) +#define EMBER_AF_PRICE_TRAILING_DIGIT_AND_PRICE_TIER_PRICE_TIER_OFFSET (0) +#define EMBER_AF_PRICE_TRAILING_DIGIT_AND_PRICE_TIER_TRAILING_DIGIT (0xF0) +#define EMBER_AF_PRICE_TRAILING_DIGIT_AND_PRICE_TIER_TRAILING_DIGIT_OFFSET (4) +#define EMBER_AF_PROPOSED_CHANGE_CONTROL_PRE_SNAPSHOTS (0x00000001) +#define EMBER_AF_PROPOSED_CHANGE_CONTROL_PRE_SNAPSHOTS_OFFSET (0) +#define EMBER_AF_PROPOSED_CHANGE_CONTROL_POST_SNAPSHOTS (0x00000002) +#define EMBER_AF_PROPOSED_CHANGE_CONTROL_POST_SNAPSHOTS_OFFSET (1) +#define EMBER_AF_PROPOSED_CHANGE_CONTROL_RESET_CREDIT_REGISTER (0x00000004) +#define EMBER_AF_PROPOSED_CHANGE_CONTROL_RESET_CREDIT_REGISTER_OFFSET (2) +#define EMBER_AF_PROPOSED_CHANGE_CONTROL_RESET_DEBIT_REGISTER (0x00000008) +#define EMBER_AF_PROPOSED_CHANGE_CONTROL_RESET_DEBIT_REGISTER_OFFSET (3) +#define EMBER_AF_PROPOSED_CHANGE_CONTROL_RESET_BILLING_PERIOD (0x00000010) +#define EMBER_AF_PROPOSED_CHANGE_CONTROL_RESET_BILLING_PERIOD_OFFSET (4) +#define EMBER_AF_PROPOSED_CHANGE_CONTROL_CLEAR_TARIFF_PLAN (0x00000020) +#define EMBER_AF_PROPOSED_CHANGE_CONTROL_CLEAR_TARIFF_PLAN_OFFSET (5) +#define EMBER_AF_PROPOSED_CHANGE_CONTROL_CLEAR_STANDING_CHARGE (0x00000040) +#define EMBER_AF_PROPOSED_CHANGE_CONTROL_CLEAR_STANDING_CHARGE_OFFSET (6) +#define EMBER_AF_PROPOSED_CHANGE_CONTROL_BLOCK_HISTORICAL_LOAD_PROFILE_INFORMATION (0x00000080) +#define EMBER_AF_PROPOSED_CHANGE_CONTROL_BLOCK_HISTORICAL_LOAD_PROFILE_INFORMATION_OFFSET (7) +#define EMBER_AF_PROPOSED_CHANGE_CONTROL_CLEAR_HISTORICAL_LOAD_PROFILE_INFORMATION (0x00000100) +#define EMBER_AF_PROPOSED_CHANGE_CONTROL_CLEAR_HISTORICAL_LOAD_PROFILE_INFORMATION_OFFSET (8) +#define EMBER_AF_PROPOSED_CHANGE_CONTROL_CLEAR_IHD_DATA_CONSUMER (0x00000200) +#define EMBER_AF_PROPOSED_CHANGE_CONTROL_CLEAR_IHD_DATA_CONSUMER_OFFSET (9) +#define EMBER_AF_PROPOSED_CHANGE_CONTROL_CLEAR_IHD_DATA_SUPPLIER (0x00000400) +#define EMBER_AF_PROPOSED_CHANGE_CONTROL_CLEAR_IHD_DATA_SUPPLIER_OFFSET (10) +#define EMBER_AF_PROPOSED_CHANGE_CONTROL_METER_CONNECTOR_STATE_ON_OFF_ARMED (0x00001800) +#define EMBER_AF_PROPOSED_CHANGE_CONTROL_METER_CONNECTOR_STATE_ON_OFF_ARMED_OFFSET (11) +#define EMBER_AF_PROPOSED_CHANGE_CONTROL_CLEAR_TRANSACTION_LOG (0x00002000) +#define EMBER_AF_PROPOSED_CHANGE_CONTROL_CLEAR_TRANSACTION_LOG_OFFSET (13) +#define EMBER_AF_PROPOSED_CHANGE_CONTROL_CLEAR_PREPAYMENT_LOG (0x00004000) +#define EMBER_AF_PROPOSED_CHANGE_CONTROL_CLEAR_PREPAYMENT_LOG_OFFSET (14) +#define EMBER_AF_PUMP_ALARM_MASK_SUPPLY_VOLTAGE_TOO_LOW (0x1) +#define EMBER_AF_PUMP_ALARM_MASK_SUPPLY_VOLTAGE_TOO_LOW_OFFSET (0) +#define EMBER_AF_PUMP_ALARM_MASK_SUPPLY_VOLTAGE_TOO_HIGH (0x2) +#define EMBER_AF_PUMP_ALARM_MASK_SUPPLY_VOLTAGE_TOO_HIGH_OFFSET (1) +#define EMBER_AF_PUMP_ALARM_MASK_POWER_MISSING_PHASE (0x4) +#define EMBER_AF_PUMP_ALARM_MASK_POWER_MISSING_PHASE_OFFSET (2) +#define EMBER_AF_PUMP_ALARM_MASK_SYSTEM_PRESSURE_TOO_LOW (0x8) +#define EMBER_AF_PUMP_ALARM_MASK_SYSTEM_PRESSURE_TOO_LOW_OFFSET (3) +#define EMBER_AF_PUMP_ALARM_MASK_SYSTEM_PRESSURE_TOO_HIGH (0x10) +#define EMBER_AF_PUMP_ALARM_MASK_SYSTEM_PRESSURE_TOO_HIGH_OFFSET (4) +#define EMBER_AF_PUMP_ALARM_MASK_DRY_RUNNING (0x20) +#define EMBER_AF_PUMP_ALARM_MASK_DRY_RUNNING_OFFSET (5) +#define EMBER_AF_PUMP_ALARM_MASK_MOTOR_TEMPERATURE_TOO_HIGH (0x40) +#define EMBER_AF_PUMP_ALARM_MASK_MOTOR_TEMPERATURE_TOO_HIGH_OFFSET (6) +#define EMBER_AF_PUMP_ALARM_MASK_PUMP_MOTOR_HAS_FATAL_FAILURE (0x80) +#define EMBER_AF_PUMP_ALARM_MASK_PUMP_MOTOR_HAS_FATAL_FAILURE_OFFSET (7) +#define EMBER_AF_PUMP_ALARM_MASK_ELECTRONIC_TEMPERATURE_TOO_HIGH (0x100) +#define EMBER_AF_PUMP_ALARM_MASK_ELECTRONIC_TEMPERATURE_TOO_HIGH_OFFSET (8) +#define EMBER_AF_PUMP_ALARM_MASK_PUMP_BLOCKED (0x200) +#define EMBER_AF_PUMP_ALARM_MASK_PUMP_BLOCKED_OFFSET (9) +#define EMBER_AF_PUMP_ALARM_MASK_SENSOR_FAILURE (0x400) +#define EMBER_AF_PUMP_ALARM_MASK_SENSOR_FAILURE_OFFSET (10) +#define EMBER_AF_PUMP_ALARM_MASK_ELECTRONIC_NON_FATAL_FAILURE (0x800) +#define EMBER_AF_PUMP_ALARM_MASK_ELECTRONIC_NON_FATAL_FAILURE_OFFSET (11) +#define EMBER_AF_PUMP_ALARM_MASK_ELECTRONIC_FATAL_FAILURE (0x1000) +#define EMBER_AF_PUMP_ALARM_MASK_ELECTRONIC_FATAL_FAILURE_OFFSET (12) +#define EMBER_AF_PUMP_ALARM_MASK_GENERAL_FAULT (0x2000) +#define EMBER_AF_PUMP_ALARM_MASK_GENERAL_FAULT_OFFSET (13) +#define EMBER_AF_PUMP_STATUS_DEVICE_FAULT (0x1) +#define EMBER_AF_PUMP_STATUS_DEVICE_FAULT_OFFSET (0) +#define EMBER_AF_PUMP_STATUS_SUPPLYFAULT (0x2) +#define EMBER_AF_PUMP_STATUS_SUPPLYFAULT_OFFSET (1) +#define EMBER_AF_PUMP_STATUS_SPEED_LOW (0x4) +#define EMBER_AF_PUMP_STATUS_SPEED_LOW_OFFSET (2) +#define EMBER_AF_PUMP_STATUS_SPEED_HIGH (0x8) +#define EMBER_AF_PUMP_STATUS_SPEED_HIGH_OFFSET (3) +#define EMBER_AF_PUMP_STATUS_LOCAL_OVERRIDE (0x10) +#define EMBER_AF_PUMP_STATUS_LOCAL_OVERRIDE_OFFSET (4) +#define EMBER_AF_PUMP_STATUS_RUNNING (0x20) +#define EMBER_AF_PUMP_STATUS_RUNNING_OFFSET (5) +#define EMBER_AF_PUMP_STATUS_REMOTE_PRESSURE (0x40) +#define EMBER_AF_PUMP_STATUS_REMOTE_PRESSURE_OFFSET (6) +#define EMBER_AF_PUMP_STATUS_REMOTE_FLOW (0x80) +#define EMBER_AF_PUMP_STATUS_REMOTE_FLOW_OFFSET (7) +#define EMBER_AF_PUMP_STATUS_REMOTE_TEMPERATURE (0x100) +#define EMBER_AF_PUMP_STATUS_REMOTE_TEMPERATURE_OFFSET (8) +#define EMBER_AF_REMOTE_ENABLE_FLAGS_AND_DEVICE_STATUS2_REMOTE_ENABLE_FLAGS (0x0F) +#define EMBER_AF_REMOTE_ENABLE_FLAGS_AND_DEVICE_STATUS2_REMOTE_ENABLE_FLAGS_OFFSET (0) +#define EMBER_AF_REMOTE_ENABLE_FLAGS_AND_DEVICE_STATUS2_DEVICE_STATUS2_STRUCTURE (0xF0) +#define EMBER_AF_REMOTE_ENABLE_FLAGS_AND_DEVICE_STATUS2_DEVICE_STATUS2_STRUCTURE_OFFSET (4) +#define EMBER_AF_RESET_OPTIONS_RESET_CURRENT (0x1) +#define EMBER_AF_RESET_OPTIONS_RESET_CURRENT_OFFSET (0) +#define EMBER_AF_RESET_OPTIONS_RESET_ALL (0x2) +#define EMBER_AF_RESET_OPTIONS_RESET_ALL_OFFSET (1) +#define EMBER_AF_RESET_OPTIONS_ERASE_INDEX (0x4) +#define EMBER_AF_RESET_OPTIONS_ERASE_INDEX_OFFSET (2) +#define EMBER_AF_RESTART_OPTIONS_START_MODE1 (0x1) +#define EMBER_AF_RESTART_OPTIONS_START_MODE1_OFFSET (0) +#define EMBER_AF_RESTART_OPTIONS_STARTUP_MODE2 (0x2) +#define EMBER_AF_RESTART_OPTIONS_STARTUP_MODE2_OFFSET (1) +#define EMBER_AF_RESTART_OPTIONS_STARTUP_MODE3 (0x4) +#define EMBER_AF_RESTART_OPTIONS_STARTUP_MODE3_OFFSET (2) +#define EMBER_AF_RESTART_OPTIONS_IMMEDIATE (0x8) +#define EMBER_AF_RESTART_OPTIONS_IMMEDIATE_OFFSET (3) +#define EMBER_AF_SCENES_COPY_MODE_COPY_ALL_SCENES (0x01) +#define EMBER_AF_SCENES_COPY_MODE_COPY_ALL_SCENES_OFFSET (0) +#define EMBER_AF_SHADE_CLOSURE_STATUS_OPERATIONAL (0x1) +#define EMBER_AF_SHADE_CLOSURE_STATUS_OPERATIONAL_OFFSET (0) +#define EMBER_AF_SHADE_CLOSURE_STATUS_ADJUSTING (0x2) +#define EMBER_AF_SHADE_CLOSURE_STATUS_ADJUSTING_OFFSET (1) +#define EMBER_AF_SHADE_CLOSURE_STATUS_OPENING (0x4) +#define EMBER_AF_SHADE_CLOSURE_STATUS_OPENING_OFFSET (2) +#define EMBER_AF_SHADE_CLOSURE_STATUS_MOTOR_OPENING (0x8) +#define EMBER_AF_SHADE_CLOSURE_STATUS_MOTOR_OPENING_OFFSET (3) +#define EMBER_AF_SNAPSHOT_CAUSE_GENERAL (0x00000001) +#define EMBER_AF_SNAPSHOT_CAUSE_GENERAL_OFFSET (0) +#define EMBER_AF_SNAPSHOT_CAUSE_END_OF_BILLING_PERIOD (0x00000002) +#define EMBER_AF_SNAPSHOT_CAUSE_END_OF_BILLING_PERIOD_OFFSET (1) +#define EMBER_AF_SNAPSHOT_CAUSE_END_OF_BLOCK_PERIOD (0x00000004) +#define EMBER_AF_SNAPSHOT_CAUSE_END_OF_BLOCK_PERIOD_OFFSET (2) +#define EMBER_AF_SNAPSHOT_CAUSE_CHANGE_OF_TARIFF_INFORMATION (0x00000008) +#define EMBER_AF_SNAPSHOT_CAUSE_CHANGE_OF_TARIFF_INFORMATION_OFFSET (3) +#define EMBER_AF_SNAPSHOT_CAUSE_CHANGE_OF_PRICE_MATRIX (0x00000010) +#define EMBER_AF_SNAPSHOT_CAUSE_CHANGE_OF_PRICE_MATRIX_OFFSET (4) +#define EMBER_AF_SNAPSHOT_CAUSE_CHANGE_OF_BLOCK_THRESHOLDS (0x00000020) +#define EMBER_AF_SNAPSHOT_CAUSE_CHANGE_OF_BLOCK_THRESHOLDS_OFFSET (5) +#define EMBER_AF_SNAPSHOT_CAUSE_CHANGE_OF_CV (0x00000040) +#define EMBER_AF_SNAPSHOT_CAUSE_CHANGE_OF_CV_OFFSET (6) +#define EMBER_AF_SNAPSHOT_CAUSE_CHANGE_OF_CF (0x00000080) +#define EMBER_AF_SNAPSHOT_CAUSE_CHANGE_OF_CF_OFFSET (7) +#define EMBER_AF_SNAPSHOT_CAUSE_CHANGE_OF_CALENDAR (0x00000100) +#define EMBER_AF_SNAPSHOT_CAUSE_CHANGE_OF_CALENDAR_OFFSET (8) +#define EMBER_AF_SNAPSHOT_CAUSE_CRITICAL_PEAK_PRICING (0x00000200) +#define EMBER_AF_SNAPSHOT_CAUSE_CRITICAL_PEAK_PRICING_OFFSET (9) +#define EMBER_AF_SNAPSHOT_CAUSE_MANUALLY_TRIGGERED_FROM_CLIENT (0x00000400) +#define EMBER_AF_SNAPSHOT_CAUSE_MANUALLY_TRIGGERED_FROM_CLIENT_OFFSET (10) +#define EMBER_AF_SNAPSHOT_CAUSE_END_OF_RESOLVE_PERIOD (0x00000800) +#define EMBER_AF_SNAPSHOT_CAUSE_END_OF_RESOLVE_PERIOD_OFFSET (11) +#define EMBER_AF_SNAPSHOT_CAUSE_CHANGE_OF_TENANCY (0x00001000) +#define EMBER_AF_SNAPSHOT_CAUSE_CHANGE_OF_TENANCY_OFFSET (12) +#define EMBER_AF_SNAPSHOT_CAUSE_CHANGE_OF_SUPPLIER (0x00002000) +#define EMBER_AF_SNAPSHOT_CAUSE_CHANGE_OF_SUPPLIER_OFFSET (13) +#define EMBER_AF_SNAPSHOT_CAUSE_CHANGE_OF_MODE (0x00004000) +#define EMBER_AF_SNAPSHOT_CAUSE_CHANGE_OF_MODE_OFFSET (14) +#define EMBER_AF_SNAPSHOT_CAUSE_DEBT_PAYMENT (0x00008000) +#define EMBER_AF_SNAPSHOT_CAUSE_DEBT_PAYMENT_OFFSET (15) +#define EMBER_AF_SNAPSHOT_CAUSE_SCHEDULED_SNAPSHOT (0x00010000) +#define EMBER_AF_SNAPSHOT_CAUSE_SCHEDULED_SNAPSHOT_OFFSET (16) +#define EMBER_AF_SNAPSHOT_CAUSE_OTA_FIRMWARE_DOWNLOAD (0x00020000) +#define EMBER_AF_SNAPSHOT_CAUSE_OTA_FIRMWARE_DOWNLOAD_OFFSET (17) +#define EMBER_AF_SQUAWK_INFO_MODE (0xf0) +#define EMBER_AF_SQUAWK_INFO_MODE_OFFSET (4) +#define EMBER_AF_SQUAWK_INFO_STROBE (0x08) +#define EMBER_AF_SQUAWK_INFO_STROBE_OFFSET (3) +#define EMBER_AF_SQUAWK_INFO_LEVEL (0x03) +#define EMBER_AF_SQUAWK_INFO_LEVEL_OFFSET (0) +#define EMBER_AF_START_TIME_MINUTES (0x003F) +#define EMBER_AF_START_TIME_MINUTES_OFFSET (0) +#define EMBER_AF_START_TIME_TIME_ENCODING (0x00C0) +#define EMBER_AF_START_TIME_TIME_ENCODING_OFFSET (6) +#define EMBER_AF_START_TIME_HOURS (0xFF00) +#define EMBER_AF_START_TIME_HOURS_OFFSET (8) +#define EMBER_AF_SUPPLY_CONTROL_BITS_ACKNOWLEDGE_REQUIRED (0x01) +#define EMBER_AF_SUPPLY_CONTROL_BITS_ACKNOWLEDGE_REQUIRED_OFFSET (0) +#define EMBER_AF_TARIFF_TYPE_CHARGING_SCHEME_TARIFF_TYPE (0x0F) +#define EMBER_AF_TARIFF_TYPE_CHARGING_SCHEME_TARIFF_TYPE_OFFSET (0) +#define EMBER_AF_TARIFF_TYPE_CHARGING_SCHEME_TARIFF_CHARGING_SCHEME (0xF0) +#define EMBER_AF_TARIFF_TYPE_CHARGING_SCHEME_TARIFF_CHARGING_SCHEME_OFFSET (4) +#define EMBER_AF_THERMOSTAT_ALARM_MASK_INITIALIZATION_FAILURE (0x1) +#define EMBER_AF_THERMOSTAT_ALARM_MASK_INITIALIZATION_FAILURE_OFFSET (0) +#define EMBER_AF_THERMOSTAT_ALARM_MASK_HARDWARE_FAILURE (0x2) +#define EMBER_AF_THERMOSTAT_ALARM_MASK_HARDWARE_FAILURE_OFFSET (1) +#define EMBER_AF_THERMOSTAT_ALARM_MASK_SELFCALIBRATION_FAILURE (0x4) +#define EMBER_AF_THERMOSTAT_ALARM_MASK_SELFCALIBRATION_FAILURE_OFFSET (2) +#define EMBER_AF_THERMOSTAT_OCCUPANCY_OCCUPIED (0x1) +#define EMBER_AF_THERMOSTAT_OCCUPANCY_OCCUPIED_OFFSET (0) +#define EMBER_AF_THERMOSTAT_RUNNING_STATE_HEAT_STATE_ON (0x0001) +#define EMBER_AF_THERMOSTAT_RUNNING_STATE_HEAT_STATE_ON_OFFSET (0) +#define EMBER_AF_THERMOSTAT_RUNNING_STATE_COOL_STATE_ON (0x0002) +#define EMBER_AF_THERMOSTAT_RUNNING_STATE_COOL_STATE_ON_OFFSET (1) +#define EMBER_AF_THERMOSTAT_RUNNING_STATE_FAN_STATE_ON (0x0004) +#define EMBER_AF_THERMOSTAT_RUNNING_STATE_FAN_STATE_ON_OFFSET (2) +#define EMBER_AF_THERMOSTAT_RUNNING_STATE_HEAT_SECOND_STAGE_STATE_ON (0x0008) +#define EMBER_AF_THERMOSTAT_RUNNING_STATE_HEAT_SECOND_STAGE_STATE_ON_OFFSET (3) +#define EMBER_AF_THERMOSTAT_RUNNING_STATE_COOL_SECOND_STAGE_STATE_ON (0x0010) +#define EMBER_AF_THERMOSTAT_RUNNING_STATE_COOL_SECOND_STAGE_STATE_ON_OFFSET (4) +#define EMBER_AF_THERMOSTAT_RUNNING_STATE_FAN_SECOND_STAGE_STATE_ON (0x0020) +#define EMBER_AF_THERMOSTAT_RUNNING_STATE_FAN_SECOND_STAGE_STATE_ON_OFFSET (5) +#define EMBER_AF_THERMOSTAT_RUNNING_STATE_FAN_THIRD_STAGE_STATE_ON (0x0040) +#define EMBER_AF_THERMOSTAT_RUNNING_STATE_FAN_THIRD_STAGE_STATE_ON_OFFSET (6) +#define EMBER_AF_THERMOSTAT_SENSING_LOCAL_TEMP_SENSED_REMOTELY (0x1) +#define EMBER_AF_THERMOSTAT_SENSING_LOCAL_TEMP_SENSED_REMOTELY_OFFSET (0) +#define EMBER_AF_THERMOSTAT_SENSING_OUTDOOR_TEMP_SENSED_REMOTELY (0x2) +#define EMBER_AF_THERMOSTAT_SENSING_OUTDOOR_TEMP_SENSED_REMOTELY_OFFSET (1) +#define EMBER_AF_THERMOSTAT_SENSING_OCCUPANCY_SENSED_REMOTELY (0x4) +#define EMBER_AF_THERMOSTAT_SENSING_OCCUPANCY_SENSED_REMOTELY_OFFSET (2) +#define EMBER_AF_TIME_STATUS_MASK_MASTER_CLOCK (0x1) +#define EMBER_AF_TIME_STATUS_MASK_MASTER_CLOCK_OFFSET (0) +#define EMBER_AF_TIME_STATUS_MASK_SYNCHRONIZED (0x2) +#define EMBER_AF_TIME_STATUS_MASK_SYNCHRONIZED_OFFSET (1) +#define EMBER_AF_TIME_STATUS_MASK_MASTER_ZONE_DST (0x4) +#define EMBER_AF_TIME_STATUS_MASK_MASTER_ZONE_DST_OFFSET (2) +#define EMBER_AF_TIME_STATUS_MASK_SUPERSEDING (0x8) +#define EMBER_AF_TIME_STATUS_MASK_SUPERSEDING_OFFSET (3) +#define EMBER_AF_WARNING_INFO_MODE (0xf0) +#define EMBER_AF_WARNING_INFO_MODE_OFFSET (4) +#define EMBER_AF_WARNING_INFO_STROBE (0x0c) +#define EMBER_AF_WARNING_INFO_STROBE_OFFSET (2) +#define EMBER_AF_WARNING_INFO_SIREN_LEVEL (0x03) +#define EMBER_AF_WARNING_INFO_SIREN_LEVEL_OFFSET (0) +#define EMBER_AF_ZIGBEE_INFORMATION_LOGICAL_TYPE (0x03) +#define EMBER_AF_ZIGBEE_INFORMATION_LOGICAL_TYPE_OFFSET (0) +#define EMBER_AF_ZIGBEE_INFORMATION_RX_ON_WHEN_IDLE (0x04) +#define EMBER_AF_ZIGBEE_INFORMATION_RX_ON_WHEN_IDLE_OFFSET (2) +#define EMBER_AF_ZLL_INFORMATION_FACTORY_NEW (0x01) +#define EMBER_AF_ZLL_INFORMATION_FACTORY_NEW_OFFSET (0) +#define EMBER_AF_ZLL_INFORMATION_ADDRESS_ASSIGNMENT (0x02) +#define EMBER_AF_ZLL_INFORMATION_ADDRESS_ASSIGNMENT_OFFSET (1) +#define EMBER_AF_ZLL_INFORMATION_TOUCH_LINK_INITIATOR (0x10) +#define EMBER_AF_ZLL_INFORMATION_TOUCH_LINK_INITIATOR_OFFSET (4) +#define EMBER_AF_ZLL_INFORMATION_TOUCH_LINK_PRIORITY_REQUEST (0x20) +#define EMBER_AF_ZLL_INFORMATION_TOUCH_LINK_PRIORITY_REQUEST_OFFSET (5) +#define EMBER_AF_ZLL_INFORMATION_PROFILE_INTEROP (0x80) +#define EMBER_AF_ZLL_INFORMATION_PROFILE_INTEROP_OFFSET (7) diff --git a/examples/lock-app/lock-common/gen/gen_config.h b/examples/lock-app/lock-common/gen/gen_config.h index f7efba427e27c3..61b55dca38755d 100644 --- a/examples/lock-app/lock-common/gen/gen_config.h +++ b/examples/lock-app/lock-common/gen/gen_config.h @@ -1,23 +1,7 @@ -/** - * - * 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 + * 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. @@ -31,241 +15,31 @@ * 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 SILABS_ZNET_CONFIG -#define SILABS_ZNET_CONFIG - -#include "debug-printing-test.h" - -/**** Included Header Section ****/ - -// Networks -#define EM_AF_GENERATED_NETWORK_TYPES \ - { \ - EM_AF_NETWORK_TYPE_ZIGBEE_PRO, /* Primary */ \ - } -#define EM_AF_GENERATED_ZIGBEE_PRO_NETWORKS \ - { \ - { \ - /* Primary */ \ - ZA_ROUTER, \ - EMBER_AF_SECURITY_PROFILE_Z3, \ - }, \ - } -#define EM_AF_GENERATED_NETWORK_STRINGS "Primary (pro)", /**** ZCL Section ****/ -#define ZA_PROMPT "ZigbeeMinimalSoc" -#define ZCL_USING_ON_OFF_CLUSTER_SERVER -#define EMBER_AF_MANUFACTURER_CODE 0x1002 -#define EMBER_AF_DEFAULT_RESPONSE_POLICY_ALWAYS - -/**** Cluster endpoint counts ****/ -#define EMBER_AF_ON_OFF_CLUSTER_SERVER_ENDPOINT_COUNT (1) - -/**** Cluster Endpoint Summaries ****/ -#define EMBER_AF_MAX_SERVER_CLUSTER_COUNT (1) -#define EMBER_AF_MAX_CLIENT_CLUSTER_COUNT (0) -#define EMBER_AF_MAX_TOTAL_CLUSTER_COUNT (1) - -/**** CLI Section ****/ -#define EMBER_AF_GENERATE_CLI - -/**** Security Section ****/ -#define EMBER_AF_HAS_SECURITY_PROFILE_Z3 - -/**** Network Section ****/ -#define EMBER_SUPPORTED_NETWORKS (1) -#define EMBER_AF_NETWORK_INDEX_PRIMARY (0) -#define EMBER_AF_DEFAULT_NETWORK_INDEX EMBER_AF_NETWORK_INDEX_PRIMARY -#define EMBER_AF_HAS_ROUTER_NETWORK -#define EMBER_AF_HAS_RX_ON_WHEN_IDLE_NETWORK -#define EMBER_AF_TX_POWER_MODE EMBER_TX_POWER_MODE_USE_TOKEN - -/**** Callback Section ****/ -#define EMBER_CALLBACK_STACK_STATUS -#define EMBER_CALLBACK_ON_OFF_CLUSTER_OFF -#define EMBER_CALLBACK_ON_OFF_CLUSTER_ON -#define EMBER_CALLBACK_ON_OFF_CLUSTER_TOGGLE -#define EMBER_CALLBACK_ON_OFF_CLUSTER_ON_OFF_CLUSTER_SERVER_INIT -#define EMBER_CALLBACK_ENERGY_SCAN_RESULT -#define EMBER_CALLBACK_SCAN_COMPLETE -#define EMBER_CALLBACK_NETWORK_FOUND -/**** Debug printing section ****/ - -// Global switch -#define EMBER_AF_PRINT_ENABLE - -#define EMBER_AF_SUPPORT_COMMAND_DISCOVERY -// Generated plugin macros +// Prevent multiple inclusion +#pragma once -// Use this macro to check if Antenna Stub plugin is included -#define EMBER_AF_PLUGIN_ANTENNA_STUB - -// Use this macro to check if Binding Table Library plugin is included -#define EMBER_AF_PLUGIN_BINDING_TABLE_LIBRARY // User options for plugin Binding Table Library #define EMBER_BINDING_TABLE_SIZE 10 -// Use this macro to check if CCM* Encryption plugin is included -#define EMBER_AF_PLUGIN_CCM_ENCRYPTION -// User options for plugin CCM* Encryption -#define EMBER_AF_PLUGIN_CCM_ENCRYPTION_SOFTWARE_CCM -#define USE_SOFTWARE_CCM - -// Use this macro to check if Radio Coexistence Stub plugin is included -#define EMBER_AF_PLUGIN_COEXISTENCE_STUB - -// Use this macro to check if Debug Basic Library plugin is included -#define EMBER_AF_PLUGIN_DEBUG_BASIC_LIBRARY - -// Use this macro to check if Debug JTAG plugin is included -#define EMBER_AF_PLUGIN_DEBUG_JTAG - -// Use this macro to check if Ember Minimal Printf plugin is included -#define EMBER_AF_PLUGIN_EMBER_MINIMAL_PRINTF - -// Use this macro to check if HAL Library plugin is included -#define EMBER_AF_PLUGIN_HAL_LIBRARY - -// Use this macro to check if mbed TLS plugin is included -#define EMBER_AF_PLUGIN_MBEDTLS -// User options for plugin mbed TLS -#define EMBER_AF_PLUGIN_MBEDTLS_CONF_DEVICE_ACCELERATION -#define EMBER_AF_PLUGIN_MBEDTLS_CONF_DEVICE_ACCELERATION_APP - -// Use this macro to check if Network Steering plugin is included -#define EMBER_AF_PLUGIN_NETWORK_STEERING -// User options for plugin Network Steering -#define EMBER_AF_PLUGIN_NETWORK_STEERING_CHANNEL_MASK 0x0318C800 -#define EMBER_AF_PLUGIN_NETWORK_STEERING_RADIO_TX_POWER 3 -#define EMBER_AF_PLUGIN_NETWORK_STEERING_SCAN_DURATION 4 -#define EMBER_AF_PLUGIN_NETWORK_STEERING_COMMISSIONING_TIME_S 180 -#define EMBER_AF_PLUGIN_NETWORK_STEERING_OPTIMIZE_SCANS - -// Use this macro to check if NVM3 Library plugin is included -#define EMBER_AF_PLUGIN_NVM3 -// User options for plugin NVM3 Library -#define EMBER_AF_PLUGIN_NVM3_FLASH_PAGES 18 -#define EMBER_AF_PLUGIN_NVM3_CACHE_SIZE 200 -#define EMBER_AF_PLUGIN_NVM3_MAX_OBJECT_SIZE 254 -#define EMBER_AF_PLUGIN_NVM3_USER_REPACK_HEADROOM 0 - -// Use this macro to check if Packet Validate Library plugin is included -#define EMBER_AF_PLUGIN_PACKET_VALIDATE_LIBRARY - -// Use this macro to check if RAIL Library plugin is included -#define EMBER_AF_PLUGIN_RAIL_LIBRARY -// User options for plugin RAIL Library -#define EMBER_AF_PLUGIN_RAIL_LIBRARY_RAILPHYDEF 1 - -// Use this macro to check if Scan Dispatch plugin is included -#define EMBER_AF_PLUGIN_SCAN_DISPATCH -// User options for plugin Scan Dispatch -#define EMBER_AF_PLUGIN_SCAN_DISPATCH_SCAN_QUEUE_SIZE 10 - -// Use this macro to check if Serial plugin is included -#define EMBER_AF_PLUGIN_SERIAL - -// Use this macro to check if Simulated EEPROM version 2 to NVM3 Upgrade Stub plugin is included -#define EMBER_AF_PLUGIN_SIM_EEPROM2_TO_NVM3_UPGRADE_STUB - -// Use this macro to check if Simple Main plugin is included -#define EMBER_AF_PLUGIN_SIMPLE_MAIN - -// Use this macro to check if Strong Random plugin is included -#define EMBER_AF_PLUGIN_STRONG_RANDOM -// User options for plugin Strong Random -#define EMBER_AF_PLUGIN_STRONG_RANDOM_RADIO_PRNG -#define USE_RADIO_API_FOR_TRNG - -// Use this macro to check if Update TC Link Key plugin is included -#define EMBER_AF_PLUGIN_UPDATE_TC_LINK_KEY -// User options for plugin Update TC Link Key -#define EMBER_AF_PLUGIN_UPDATE_TC_LINK_KEY_MAX_ATTEMPTS 3 - -// Use this macro to check if ZCL Framework Core plugin is included -#define EMBER_AF_PLUGIN_ZCL_FRAMEWORK_CORE -// User options for plugin ZCL Framework Core -#define EMBER_AF_PLUGIN_ZCL_FRAMEWORK_CORE_CLI_ENABLED -#define ZA_CLI_FULL +/**** Network Section ****/ +#define EMBER_SUPPORTED_NETWORKS (1) -// Use this macro to check if ZigBee PRO Stack Library plugin is included -#define EMBER_AF_PLUGIN_ZIGBEE_PRO_LIBRARY -// User options for plugin ZigBee PRO Stack Library -#define EMBER_MAX_END_DEVICE_CHILDREN 6 -#define EMBER_PACKET_BUFFER_COUNT 75 -#define EMBER_END_DEVICE_KEEP_ALIVE_SUPPORT_MODE EMBER_KEEP_ALIVE_SUPPORT_ALL -#define EMBER_END_DEVICE_POLL_TIMEOUT MINUTES_256 -#define EMBER_END_DEVICE_POLL_TIMEOUT_SHIFT 6 -#define EMBER_LINK_POWER_DELTA_INTERVAL 300 #define EMBER_APS_UNICAST_MESSAGE_COUNT 10 -#define EMBER_BROADCAST_TABLE_SIZE 15 -#define EMBER_NEIGHBOR_TABLE_SIZE 16 - -// Generated API headers - -// API antenna from Antenna Stub plugin -#define EMBER_AF_API_ANTENNA \ - "../../../../../Applications/Simplicity " \ - "Studio.app/Contents/Eclipse/developer/sdks/gecko_sdk_suite/v3.0/platform/base/hal/plugin/antenna/antenna.h" - -// API coexistence from Radio Coexistence Stub plugin -#define EMBER_AF_API_COEXISTENCE \ - "../../../../../Applications/Simplicity " \ - "Studio.app/Contents/Eclipse/developer/sdks/gecko_sdk_suite/v3.0/platform/radio/rail_lib/plugin/coexistence/protocol/" \ - "ieee802154/coexistence-802154.h" - -// API network-steering from Network Steering plugin -#define EMBER_AF_API_NETWORK_STEERING \ - "../../../../../Applications/Simplicity " \ - "Studio.app/Contents/Eclipse/developer/sdks/gecko_sdk_suite/v3.0/protocol/zigbee/app/framework/plugin/network-steering/" \ - "network-steering.h" - -// API nvm3 from NVM3 Library plugin -#define EMBER_AF_API_NVM3 \ - "../../../../../Applications/Simplicity " \ - "Studio.app/Contents/Eclipse/developer/sdks/gecko_sdk_suite/v3.0/platform/base/hal/plugin/nvm3/nvm3-token.h" -// API rail-library from RAIL Library plugin -#define EMBER_AF_API_RAIL_LIBRARY \ - "../../../../../Applications/Simplicity " \ - "Studio.app/Contents/Eclipse/developer/sdks/gecko_sdk_suite/v3.0/platform/radio/rail_lib/common/rail.h" - -// API scan-dispatch from Scan Dispatch plugin -#define EMBER_AF_API_SCAN_DISPATCH \ - "../../../../../Applications/Simplicity " \ - "Studio.app/Contents/Eclipse/developer/sdks/gecko_sdk_suite/v3.0/protocol/zigbee/app/framework/plugin/scan-dispatch/" \ - "scan-dispatch.h" - -// API serial from Serial plugin -#define EMBER_AF_API_SERIAL \ - "../../../../../Applications/Simplicity " \ - "Studio.app/Contents/Eclipse/developer/sdks/gecko_sdk_suite/v3.0/platform/base/hal/plugin/serial/serial.h" - -// API update-tc-link-key from Update TC Link Key plugin -#define EMBER_AF_API_UPDATE_TC_LINK_KEY \ - "../../../../../Applications/Simplicity " \ - "Studio.app/Contents/Eclipse/developer/sdks/gecko_sdk_suite/v3.0/protocol/zigbee/app/framework/plugin/update-tc-link-key/" \ - "update-tc-link-key.h" - -// API command-interpreter2 from ZCL Framework Core plugin -#define EMBER_AF_API_COMMAND_INTERPRETER2 \ - "../../../../../Applications/Simplicity " \ - "Studio.app/Contents/Eclipse/developer/sdks/gecko_sdk_suite/v3.0/protocol/zigbee/app/util/serial/command-interpreter2.h" - -// Custom macros -#ifdef TRANSITION_TIME_DS -#undef TRANSITION_TIME_DS -#endif -#define TRANSITION_TIME_DS 20 +/**** Cluster endpoint counts ****/ +#define EMBER_AF_ON_OFF_CLUSTER_SERVER_ENDPOINT_COUNT (1) -#ifdef FINDING_AND_BINDING_DELAY_MS -#undef FINDING_AND_BINDING_DELAY_MS -#endif -#define FINDING_AND_BINDING_DELAY_MS 3000 +/**** Cluster Plugins ****/ -#endif // SILABS_ZNET_CONFIG +// 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 + +// TODO Issue #3871 Reporting should only be enabled if there are reportable attributes +// Use this macro to check if Reporting plugin is included +#define EMBER_AF_PLUGIN_REPORTING +// User options for plugin Reporting +#define EMBER_AF_PLUGIN_REPORTING_TABLE_SIZE 5 +#define EMBER_AF_PLUGIN_REPORTING_ENABLE_GROUP_BOUND_REPORTS diff --git a/examples/lock-app/lock-common/gen/print-cluster.h b/examples/lock-app/lock-common/gen/print-cluster.h index 87d2771f942629..a37d7fb0495995 100644 --- a/examples/lock-app/lock-common/gen/print-cluster.h +++ b/examples/lock-app/lock-common/gen/print-cluster.h @@ -1,23 +1,7 @@ -/** - * - * 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 + * 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. @@ -31,748 +15,846 @@ * 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 SILABS_PRINT_CLUSTER -#define SILABS_PRINT_CLUSTER +// Prevent multiple inclusion +#pragma once // This is the mapping of IDs to cluster names assuming a format according // to the "EmberAfClusterName" defined in the ZCL header. // The names of clusters that are not present, are removed. #if defined(ZCL_USING_BASIC_CLUSTER_SERVER) || defined(ZCL_USING_BASIC_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_BASIC_CLUSTER { ZCL_BASIC_CLUSTER_ID, 0x0000, "Basic" }, +#define CHIP_PRINTCLUSTER_BASIC_CLUSTER { ZCL_BASIC_CLUSTER_ID, 0, "Basic" }, #else -#define SILABS_PRINTCLUSTER_BASIC_CLUSTER +#define CHIP_PRINTCLUSTER_BASIC_CLUSTER #endif + #if defined(ZCL_USING_POWER_CONFIG_CLUSTER_SERVER) || defined(ZCL_USING_POWER_CONFIG_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_POWER_CONFIG_CLUSTER { ZCL_POWER_CONFIG_CLUSTER_ID, 0x0000, "Power Configuration" }, +#define CHIP_PRINTCLUSTER_POWER_CONFIG_CLUSTER { ZCL_POWER_CONFIG_CLUSTER_ID, 1, "Power Configuration" }, #else -#define SILABS_PRINTCLUSTER_POWER_CONFIG_CLUSTER +#define CHIP_PRINTCLUSTER_POWER_CONFIG_CLUSTER #endif + #if defined(ZCL_USING_DEVICE_TEMP_CLUSTER_SERVER) || defined(ZCL_USING_DEVICE_TEMP_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_DEVICE_TEMP_CLUSTER { ZCL_DEVICE_TEMP_CLUSTER_ID, 0x0000, "Device Temperature Configuration" }, +#define CHIP_PRINTCLUSTER_DEVICE_TEMP_CLUSTER { ZCL_DEVICE_TEMP_CLUSTER_ID, 2, "Device Temperature Configuration" }, #else -#define SILABS_PRINTCLUSTER_DEVICE_TEMP_CLUSTER +#define CHIP_PRINTCLUSTER_DEVICE_TEMP_CLUSTER #endif + #if defined(ZCL_USING_IDENTIFY_CLUSTER_SERVER) || defined(ZCL_USING_IDENTIFY_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_IDENTIFY_CLUSTER { ZCL_IDENTIFY_CLUSTER_ID, 0x0000, "Identify" }, +#define CHIP_PRINTCLUSTER_IDENTIFY_CLUSTER { ZCL_IDENTIFY_CLUSTER_ID, 3, "Identify" }, #else -#define SILABS_PRINTCLUSTER_IDENTIFY_CLUSTER +#define CHIP_PRINTCLUSTER_IDENTIFY_CLUSTER #endif + #if defined(ZCL_USING_GROUPS_CLUSTER_SERVER) || defined(ZCL_USING_GROUPS_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_GROUPS_CLUSTER { ZCL_GROUPS_CLUSTER_ID, 0x0000, "Groups" }, +#define CHIP_PRINTCLUSTER_GROUPS_CLUSTER { ZCL_GROUPS_CLUSTER_ID, 4, "Groups" }, #else -#define SILABS_PRINTCLUSTER_GROUPS_CLUSTER +#define CHIP_PRINTCLUSTER_GROUPS_CLUSTER #endif + #if defined(ZCL_USING_SCENES_CLUSTER_SERVER) || defined(ZCL_USING_SCENES_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_SCENES_CLUSTER { ZCL_SCENES_CLUSTER_ID, 0x0000, "Scenes" }, +#define CHIP_PRINTCLUSTER_SCENES_CLUSTER { ZCL_SCENES_CLUSTER_ID, 5, "Scenes" }, #else -#define SILABS_PRINTCLUSTER_SCENES_CLUSTER +#define CHIP_PRINTCLUSTER_SCENES_CLUSTER #endif + #if defined(ZCL_USING_ON_OFF_CLUSTER_SERVER) || defined(ZCL_USING_ON_OFF_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_ON_OFF_CLUSTER { ZCL_ON_OFF_CLUSTER_ID, 0x0000, "On/off" }, +#define CHIP_PRINTCLUSTER_ON_OFF_CLUSTER { ZCL_ON_OFF_CLUSTER_ID, 6, "On/off" }, #else -#define SILABS_PRINTCLUSTER_ON_OFF_CLUSTER +#define CHIP_PRINTCLUSTER_ON_OFF_CLUSTER #endif + #if defined(ZCL_USING_ON_OFF_SWITCH_CONFIG_CLUSTER_SERVER) || defined(ZCL_USING_ON_OFF_SWITCH_CONFIG_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_ON_OFF_SWITCH_CONFIG_CLUSTER \ - { ZCL_ON_OFF_SWITCH_CONFIG_CLUSTER_ID, 0x0000, "On/off Switch Configuration" }, +#define CHIP_PRINTCLUSTER_ON_OFF_SWITCH_CONFIG_CLUSTER { ZCL_ON_OFF_SWITCH_CONFIG_CLUSTER_ID, 7, "On/off Switch Configuration" }, #else -#define SILABS_PRINTCLUSTER_ON_OFF_SWITCH_CONFIG_CLUSTER +#define CHIP_PRINTCLUSTER_ON_OFF_SWITCH_CONFIG_CLUSTER #endif + #if defined(ZCL_USING_LEVEL_CONTROL_CLUSTER_SERVER) || defined(ZCL_USING_LEVEL_CONTROL_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_LEVEL_CONTROL_CLUSTER { ZCL_LEVEL_CONTROL_CLUSTER_ID, 0x0000, "Level Control" }, +#define CHIP_PRINTCLUSTER_LEVEL_CONTROL_CLUSTER { ZCL_LEVEL_CONTROL_CLUSTER_ID, 8, "Level Control" }, #else -#define SILABS_PRINTCLUSTER_LEVEL_CONTROL_CLUSTER +#define CHIP_PRINTCLUSTER_LEVEL_CONTROL_CLUSTER #endif + #if defined(ZCL_USING_ALARM_CLUSTER_SERVER) || defined(ZCL_USING_ALARM_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_ALARM_CLUSTER { ZCL_ALARM_CLUSTER_ID, 0x0000, "Alarms" }, +#define CHIP_PRINTCLUSTER_ALARM_CLUSTER { ZCL_ALARM_CLUSTER_ID, 9, "Alarms" }, #else -#define SILABS_PRINTCLUSTER_ALARM_CLUSTER +#define CHIP_PRINTCLUSTER_ALARM_CLUSTER #endif + #if defined(ZCL_USING_TIME_CLUSTER_SERVER) || defined(ZCL_USING_TIME_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_TIME_CLUSTER { ZCL_TIME_CLUSTER_ID, 0x0000, "Time" }, +#define CHIP_PRINTCLUSTER_TIME_CLUSTER { ZCL_TIME_CLUSTER_ID, 10, "Time" }, #else -#define SILABS_PRINTCLUSTER_TIME_CLUSTER +#define CHIP_PRINTCLUSTER_TIME_CLUSTER #endif + #if defined(ZCL_USING_RSSI_LOCATION_CLUSTER_SERVER) || defined(ZCL_USING_RSSI_LOCATION_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_RSSI_LOCATION_CLUSTER { ZCL_RSSI_LOCATION_CLUSTER_ID, 0x0000, "RSSI Location" }, +#define CHIP_PRINTCLUSTER_RSSI_LOCATION_CLUSTER { ZCL_RSSI_LOCATION_CLUSTER_ID, 11, "RSSI Location" }, #else -#define SILABS_PRINTCLUSTER_RSSI_LOCATION_CLUSTER +#define CHIP_PRINTCLUSTER_RSSI_LOCATION_CLUSTER #endif + #if defined(ZCL_USING_BINARY_INPUT_BASIC_CLUSTER_SERVER) || defined(ZCL_USING_BINARY_INPUT_BASIC_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_BINARY_INPUT_BASIC_CLUSTER { ZCL_BINARY_INPUT_BASIC_CLUSTER_ID, 0x0000, "Binary Input (Basic)" }, +#define CHIP_PRINTCLUSTER_BINARY_INPUT_BASIC_CLUSTER { ZCL_BINARY_INPUT_BASIC_CLUSTER_ID, 15, "Binary Input (Basic)" }, #else -#define SILABS_PRINTCLUSTER_BINARY_INPUT_BASIC_CLUSTER +#define CHIP_PRINTCLUSTER_BINARY_INPUT_BASIC_CLUSTER #endif + #if defined(ZCL_USING_COMMISSIONING_CLUSTER_SERVER) || defined(ZCL_USING_COMMISSIONING_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_COMMISSIONING_CLUSTER { ZCL_COMMISSIONING_CLUSTER_ID, 0x0000, "Commissioning" }, +#define CHIP_PRINTCLUSTER_COMMISSIONING_CLUSTER { ZCL_COMMISSIONING_CLUSTER_ID, 21, "Commissioning" }, #else -#define SILABS_PRINTCLUSTER_COMMISSIONING_CLUSTER +#define CHIP_PRINTCLUSTER_COMMISSIONING_CLUSTER #endif + #if defined(ZCL_USING_PARTITION_CLUSTER_SERVER) || defined(ZCL_USING_PARTITION_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_PARTITION_CLUSTER { ZCL_PARTITION_CLUSTER_ID, 0x0000, "Partition" }, +#define CHIP_PRINTCLUSTER_PARTITION_CLUSTER { ZCL_PARTITION_CLUSTER_ID, 22, "Partition" }, #else -#define SILABS_PRINTCLUSTER_PARTITION_CLUSTER +#define CHIP_PRINTCLUSTER_PARTITION_CLUSTER #endif + #if defined(ZCL_USING_OTA_BOOTLOAD_CLUSTER_SERVER) || defined(ZCL_USING_OTA_BOOTLOAD_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_OTA_BOOTLOAD_CLUSTER { ZCL_OTA_BOOTLOAD_CLUSTER_ID, 0x0000, "Over the Air Bootloading" }, +#define CHIP_PRINTCLUSTER_OTA_BOOTLOAD_CLUSTER { ZCL_OTA_BOOTLOAD_CLUSTER_ID, 25, "Over the Air Bootloading" }, #else -#define SILABS_PRINTCLUSTER_OTA_BOOTLOAD_CLUSTER +#define CHIP_PRINTCLUSTER_OTA_BOOTLOAD_CLUSTER #endif + #if defined(ZCL_USING_POWER_PROFILE_CLUSTER_SERVER) || defined(ZCL_USING_POWER_PROFILE_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_POWER_PROFILE_CLUSTER { ZCL_POWER_PROFILE_CLUSTER_ID, 0x0000, "Power Profile" }, +#define CHIP_PRINTCLUSTER_POWER_PROFILE_CLUSTER { ZCL_POWER_PROFILE_CLUSTER_ID, 26, "Power Profile" }, #else -#define SILABS_PRINTCLUSTER_POWER_PROFILE_CLUSTER +#define CHIP_PRINTCLUSTER_POWER_PROFILE_CLUSTER #endif + #if defined(ZCL_USING_APPLIANCE_CONTROL_CLUSTER_SERVER) || defined(ZCL_USING_APPLIANCE_CONTROL_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_APPLIANCE_CONTROL_CLUSTER { ZCL_APPLIANCE_CONTROL_CLUSTER_ID, 0x0000, "Appliance Control" }, +#define CHIP_PRINTCLUSTER_APPLIANCE_CONTROL_CLUSTER { ZCL_APPLIANCE_CONTROL_CLUSTER_ID, 27, "Appliance Control" }, #else -#define SILABS_PRINTCLUSTER_APPLIANCE_CONTROL_CLUSTER +#define CHIP_PRINTCLUSTER_APPLIANCE_CONTROL_CLUSTER #endif + #if defined(ZCL_USING_POLL_CONTROL_CLUSTER_SERVER) || defined(ZCL_USING_POLL_CONTROL_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_POLL_CONTROL_CLUSTER { ZCL_POLL_CONTROL_CLUSTER_ID, 0x0000, "Poll Control" }, +#define CHIP_PRINTCLUSTER_POLL_CONTROL_CLUSTER { ZCL_POLL_CONTROL_CLUSTER_ID, 32, "Poll Control" }, #else -#define SILABS_PRINTCLUSTER_POLL_CONTROL_CLUSTER +#define CHIP_PRINTCLUSTER_POLL_CONTROL_CLUSTER #endif + #if defined(ZCL_USING_GREEN_POWER_CLUSTER_SERVER) || defined(ZCL_USING_GREEN_POWER_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_GREEN_POWER_CLUSTER { ZCL_GREEN_POWER_CLUSTER_ID, 0x0000, "Green Power" }, +#define CHIP_PRINTCLUSTER_GREEN_POWER_CLUSTER { ZCL_GREEN_POWER_CLUSTER_ID, 33, "Green Power" }, #else -#define SILABS_PRINTCLUSTER_GREEN_POWER_CLUSTER +#define CHIP_PRINTCLUSTER_GREEN_POWER_CLUSTER #endif + #if defined(ZCL_USING_KEEPALIVE_CLUSTER_SERVER) || defined(ZCL_USING_KEEPALIVE_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_KEEPALIVE_CLUSTER { ZCL_KEEPALIVE_CLUSTER_ID, 0x0000, "Keep-Alive" }, +#define CHIP_PRINTCLUSTER_KEEPALIVE_CLUSTER { ZCL_KEEPALIVE_CLUSTER_ID, 37, "Keep-Alive" }, #else -#define SILABS_PRINTCLUSTER_KEEPALIVE_CLUSTER +#define CHIP_PRINTCLUSTER_KEEPALIVE_CLUSTER #endif + #if defined(ZCL_USING_SHADE_CONFIG_CLUSTER_SERVER) || defined(ZCL_USING_SHADE_CONFIG_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_SHADE_CONFIG_CLUSTER { ZCL_SHADE_CONFIG_CLUSTER_ID, 0x0000, "Shade Configuration" }, +#define CHIP_PRINTCLUSTER_SHADE_CONFIG_CLUSTER { ZCL_SHADE_CONFIG_CLUSTER_ID, 256, "Shade Configuration" }, #else -#define SILABS_PRINTCLUSTER_SHADE_CONFIG_CLUSTER +#define CHIP_PRINTCLUSTER_SHADE_CONFIG_CLUSTER #endif + #if defined(ZCL_USING_DOOR_LOCK_CLUSTER_SERVER) || defined(ZCL_USING_DOOR_LOCK_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_DOOR_LOCK_CLUSTER { ZCL_DOOR_LOCK_CLUSTER_ID, 0x0000, "Door Lock" }, +#define CHIP_PRINTCLUSTER_DOOR_LOCK_CLUSTER { ZCL_DOOR_LOCK_CLUSTER_ID, 257, "Door Lock" }, #else -#define SILABS_PRINTCLUSTER_DOOR_LOCK_CLUSTER +#define CHIP_PRINTCLUSTER_DOOR_LOCK_CLUSTER #endif + #if defined(ZCL_USING_WINDOW_COVERING_CLUSTER_SERVER) || defined(ZCL_USING_WINDOW_COVERING_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_WINDOW_COVERING_CLUSTER { ZCL_WINDOW_COVERING_CLUSTER_ID, 0x0000, "Window Covering" }, +#define CHIP_PRINTCLUSTER_WINDOW_COVERING_CLUSTER { ZCL_WINDOW_COVERING_CLUSTER_ID, 258, "Window Covering" }, #else -#define SILABS_PRINTCLUSTER_WINDOW_COVERING_CLUSTER +#define CHIP_PRINTCLUSTER_WINDOW_COVERING_CLUSTER #endif + #if defined(ZCL_USING_BARRIER_CONTROL_CLUSTER_SERVER) || defined(ZCL_USING_BARRIER_CONTROL_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_BARRIER_CONTROL_CLUSTER { ZCL_BARRIER_CONTROL_CLUSTER_ID, 0x0000, "Barrier Control" }, +#define CHIP_PRINTCLUSTER_BARRIER_CONTROL_CLUSTER { ZCL_BARRIER_CONTROL_CLUSTER_ID, 259, "Barrier Control" }, #else -#define SILABS_PRINTCLUSTER_BARRIER_CONTROL_CLUSTER +#define CHIP_PRINTCLUSTER_BARRIER_CONTROL_CLUSTER #endif + #if defined(ZCL_USING_PUMP_CONFIG_CONTROL_CLUSTER_SERVER) || defined(ZCL_USING_PUMP_CONFIG_CONTROL_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_PUMP_CONFIG_CONTROL_CLUSTER \ - { ZCL_PUMP_CONFIG_CONTROL_CLUSTER_ID, 0x0000, "Pump Configuration and Control" }, +#define CHIP_PRINTCLUSTER_PUMP_CONFIG_CONTROL_CLUSTER { ZCL_PUMP_CONFIG_CONTROL_CLUSTER_ID, 512, "Pump Configuration and Control" }, #else -#define SILABS_PRINTCLUSTER_PUMP_CONFIG_CONTROL_CLUSTER +#define CHIP_PRINTCLUSTER_PUMP_CONFIG_CONTROL_CLUSTER #endif + #if defined(ZCL_USING_THERMOSTAT_CLUSTER_SERVER) || defined(ZCL_USING_THERMOSTAT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_THERMOSTAT_CLUSTER { ZCL_THERMOSTAT_CLUSTER_ID, 0x0000, "Thermostat" }, +#define CHIP_PRINTCLUSTER_THERMOSTAT_CLUSTER { ZCL_THERMOSTAT_CLUSTER_ID, 513, "Thermostat" }, #else -#define SILABS_PRINTCLUSTER_THERMOSTAT_CLUSTER +#define CHIP_PRINTCLUSTER_THERMOSTAT_CLUSTER #endif + #if defined(ZCL_USING_FAN_CONTROL_CLUSTER_SERVER) || defined(ZCL_USING_FAN_CONTROL_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_FAN_CONTROL_CLUSTER { ZCL_FAN_CONTROL_CLUSTER_ID, 0x0000, "Fan Control" }, +#define CHIP_PRINTCLUSTER_FAN_CONTROL_CLUSTER { ZCL_FAN_CONTROL_CLUSTER_ID, 514, "Fan Control" }, #else -#define SILABS_PRINTCLUSTER_FAN_CONTROL_CLUSTER +#define CHIP_PRINTCLUSTER_FAN_CONTROL_CLUSTER #endif + #if defined(ZCL_USING_DEHUMID_CONTROL_CLUSTER_SERVER) || defined(ZCL_USING_DEHUMID_CONTROL_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_DEHUMID_CONTROL_CLUSTER { ZCL_DEHUMID_CONTROL_CLUSTER_ID, 0x0000, "Dehumidification Control" }, +#define CHIP_PRINTCLUSTER_DEHUMID_CONTROL_CLUSTER { ZCL_DEHUMID_CONTROL_CLUSTER_ID, 515, "Dehumidification Control" }, #else -#define SILABS_PRINTCLUSTER_DEHUMID_CONTROL_CLUSTER +#define CHIP_PRINTCLUSTER_DEHUMID_CONTROL_CLUSTER #endif + #if defined(ZCL_USING_THERMOSTAT_UI_CONFIG_CLUSTER_SERVER) || defined(ZCL_USING_THERMOSTAT_UI_CONFIG_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_THERMOSTAT_UI_CONFIG_CLUSTER \ - { ZCL_THERMOSTAT_UI_CONFIG_CLUSTER_ID, 0x0000, "Thermostat User Interface Configuration" }, +#define CHIP_PRINTCLUSTER_THERMOSTAT_UI_CONFIG_CLUSTER \ + { ZCL_THERMOSTAT_UI_CONFIG_CLUSTER_ID, 516, "Thermostat User Interface Configuration" }, #else -#define SILABS_PRINTCLUSTER_THERMOSTAT_UI_CONFIG_CLUSTER +#define CHIP_PRINTCLUSTER_THERMOSTAT_UI_CONFIG_CLUSTER #endif + #if defined(ZCL_USING_COLOR_CONTROL_CLUSTER_SERVER) || defined(ZCL_USING_COLOR_CONTROL_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_COLOR_CONTROL_CLUSTER { ZCL_COLOR_CONTROL_CLUSTER_ID, 0x0000, "Color Control" }, +#define CHIP_PRINTCLUSTER_COLOR_CONTROL_CLUSTER { ZCL_COLOR_CONTROL_CLUSTER_ID, 768, "Color Control" }, #else -#define SILABS_PRINTCLUSTER_COLOR_CONTROL_CLUSTER +#define CHIP_PRINTCLUSTER_COLOR_CONTROL_CLUSTER #endif + #if defined(ZCL_USING_BALLAST_CONFIGURATION_CLUSTER_SERVER) || defined(ZCL_USING_BALLAST_CONFIGURATION_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_BALLAST_CONFIGURATION_CLUSTER { ZCL_BALLAST_CONFIGURATION_CLUSTER_ID, 0x0000, "Ballast Configuration" }, +#define CHIP_PRINTCLUSTER_BALLAST_CONFIGURATION_CLUSTER { ZCL_BALLAST_CONFIGURATION_CLUSTER_ID, 769, "Ballast Configuration" }, #else -#define SILABS_PRINTCLUSTER_BALLAST_CONFIGURATION_CLUSTER +#define CHIP_PRINTCLUSTER_BALLAST_CONFIGURATION_CLUSTER #endif + #if defined(ZCL_USING_ILLUM_MEASUREMENT_CLUSTER_SERVER) || defined(ZCL_USING_ILLUM_MEASUREMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_ILLUM_MEASUREMENT_CLUSTER { ZCL_ILLUM_MEASUREMENT_CLUSTER_ID, 0x0000, "Illuminance Measurement" }, +#define CHIP_PRINTCLUSTER_ILLUM_MEASUREMENT_CLUSTER { ZCL_ILLUM_MEASUREMENT_CLUSTER_ID, 1024, "Illuminance Measurement" }, #else -#define SILABS_PRINTCLUSTER_ILLUM_MEASUREMENT_CLUSTER +#define CHIP_PRINTCLUSTER_ILLUM_MEASUREMENT_CLUSTER #endif + #if defined(ZCL_USING_ILLUM_LEVEL_SENSING_CLUSTER_SERVER) || defined(ZCL_USING_ILLUM_LEVEL_SENSING_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_ILLUM_LEVEL_SENSING_CLUSTER { ZCL_ILLUM_LEVEL_SENSING_CLUSTER_ID, 0x0000, "Illuminance Level Sensing" }, +#define CHIP_PRINTCLUSTER_ILLUM_LEVEL_SENSING_CLUSTER { ZCL_ILLUM_LEVEL_SENSING_CLUSTER_ID, 1025, "Illuminance Level Sensing" }, #else -#define SILABS_PRINTCLUSTER_ILLUM_LEVEL_SENSING_CLUSTER +#define CHIP_PRINTCLUSTER_ILLUM_LEVEL_SENSING_CLUSTER #endif + #if defined(ZCL_USING_TEMP_MEASUREMENT_CLUSTER_SERVER) || defined(ZCL_USING_TEMP_MEASUREMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_TEMP_MEASUREMENT_CLUSTER { ZCL_TEMP_MEASUREMENT_CLUSTER_ID, 0x0000, "Temperature Measurement" }, +#define CHIP_PRINTCLUSTER_TEMP_MEASUREMENT_CLUSTER { ZCL_TEMP_MEASUREMENT_CLUSTER_ID, 1026, "Temperature Measurement" }, #else -#define SILABS_PRINTCLUSTER_TEMP_MEASUREMENT_CLUSTER +#define CHIP_PRINTCLUSTER_TEMP_MEASUREMENT_CLUSTER #endif + #if defined(ZCL_USING_PRESSURE_MEASUREMENT_CLUSTER_SERVER) || defined(ZCL_USING_PRESSURE_MEASUREMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_PRESSURE_MEASUREMENT_CLUSTER { ZCL_PRESSURE_MEASUREMENT_CLUSTER_ID, 0x0000, "Pressure Measurement" }, +#define CHIP_PRINTCLUSTER_PRESSURE_MEASUREMENT_CLUSTER { ZCL_PRESSURE_MEASUREMENT_CLUSTER_ID, 1027, "Pressure Measurement" }, #else -#define SILABS_PRINTCLUSTER_PRESSURE_MEASUREMENT_CLUSTER +#define CHIP_PRINTCLUSTER_PRESSURE_MEASUREMENT_CLUSTER #endif + #if defined(ZCL_USING_FLOW_MEASUREMENT_CLUSTER_SERVER) || defined(ZCL_USING_FLOW_MEASUREMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_FLOW_MEASUREMENT_CLUSTER { ZCL_FLOW_MEASUREMENT_CLUSTER_ID, 0x0000, "Flow Measurement" }, +#define CHIP_PRINTCLUSTER_FLOW_MEASUREMENT_CLUSTER { ZCL_FLOW_MEASUREMENT_CLUSTER_ID, 1028, "Flow Measurement" }, #else -#define SILABS_PRINTCLUSTER_FLOW_MEASUREMENT_CLUSTER +#define CHIP_PRINTCLUSTER_FLOW_MEASUREMENT_CLUSTER #endif + #if defined(ZCL_USING_RELATIVE_HUMIDITY_MEASUREMENT_CLUSTER_SERVER) || \ defined(ZCL_USING_RELATIVE_HUMIDITY_MEASUREMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_RELATIVE_HUMIDITY_MEASUREMENT_CLUSTER \ - { ZCL_RELATIVE_HUMIDITY_MEASUREMENT_CLUSTER_ID, 0x0000, "Relative Humidity Measurement" }, +#define CHIP_PRINTCLUSTER_RELATIVE_HUMIDITY_MEASUREMENT_CLUSTER \ + { ZCL_RELATIVE_HUMIDITY_MEASUREMENT_CLUSTER_ID, 1029, "Relative Humidity Measurement" }, #else -#define SILABS_PRINTCLUSTER_RELATIVE_HUMIDITY_MEASUREMENT_CLUSTER +#define CHIP_PRINTCLUSTER_RELATIVE_HUMIDITY_MEASUREMENT_CLUSTER #endif + #if defined(ZCL_USING_OCCUPANCY_SENSING_CLUSTER_SERVER) || defined(ZCL_USING_OCCUPANCY_SENSING_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_OCCUPANCY_SENSING_CLUSTER { ZCL_OCCUPANCY_SENSING_CLUSTER_ID, 0x0000, "Occupancy Sensing" }, +#define CHIP_PRINTCLUSTER_OCCUPANCY_SENSING_CLUSTER { ZCL_OCCUPANCY_SENSING_CLUSTER_ID, 1030, "Occupancy Sensing" }, #else -#define SILABS_PRINTCLUSTER_OCCUPANCY_SENSING_CLUSTER +#define CHIP_PRINTCLUSTER_OCCUPANCY_SENSING_CLUSTER #endif + #if defined(ZCL_USING_CARBON_MONOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_SERVER) || \ defined(ZCL_USING_CARBON_MONOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_CARBON_MONOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER \ - { ZCL_CARBON_MONOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 0x0000, "Carbon Monoxide Concentration Measurement" }, +#define CHIP_PRINTCLUSTER_CARBON_MONOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER \ + { ZCL_CARBON_MONOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 1036, "Carbon Monoxide Concentration Measurement" }, #else -#define SILABS_PRINTCLUSTER_CARBON_MONOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER +#define CHIP_PRINTCLUSTER_CARBON_MONOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER #endif + #if defined(ZCL_USING_CARBON_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_SERVER) || \ defined(ZCL_USING_CARBON_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_CARBON_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER \ - { ZCL_CARBON_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 0x0000, "Carbon Dioxide Concentration Measurement" }, +#define CHIP_PRINTCLUSTER_CARBON_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER \ + { ZCL_CARBON_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 1037, "Carbon Dioxide Concentration Measurement" }, #else -#define SILABS_PRINTCLUSTER_CARBON_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER +#define CHIP_PRINTCLUSTER_CARBON_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER #endif + #if defined(ZCL_USING_ETHYLENE_CONCENTRATION_MEASUREMENT_CLUSTER_SERVER) || \ defined(ZCL_USING_ETHYLENE_CONCENTRATION_MEASUREMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_ETHYLENE_CONCENTRATION_MEASUREMENT_CLUSTER \ - { ZCL_ETHYLENE_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 0x0000, "Ethylene Concentration Measurement" }, +#define CHIP_PRINTCLUSTER_ETHYLENE_CONCENTRATION_MEASUREMENT_CLUSTER \ + { ZCL_ETHYLENE_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 1038, "Ethylene Concentration Measurement" }, #else -#define SILABS_PRINTCLUSTER_ETHYLENE_CONCENTRATION_MEASUREMENT_CLUSTER +#define CHIP_PRINTCLUSTER_ETHYLENE_CONCENTRATION_MEASUREMENT_CLUSTER #endif + #if defined(ZCL_USING_ETHYLENE_OXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_SERVER) || \ defined(ZCL_USING_ETHYLENE_OXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_ETHYLENE_OXIDE_CONCENTRATION_MEASUREMENT_CLUSTER \ - { ZCL_ETHYLENE_OXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 0x0000, "Ethylene Oxide Concentration Measurement" }, +#define CHIP_PRINTCLUSTER_ETHYLENE_OXIDE_CONCENTRATION_MEASUREMENT_CLUSTER \ + { ZCL_ETHYLENE_OXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 1039, "Ethylene Oxide Concentration Measurement" }, #else -#define SILABS_PRINTCLUSTER_ETHYLENE_OXIDE_CONCENTRATION_MEASUREMENT_CLUSTER +#define CHIP_PRINTCLUSTER_ETHYLENE_OXIDE_CONCENTRATION_MEASUREMENT_CLUSTER #endif + #if defined(ZCL_USING_HYDROGEN_CONCENTRATION_MEASUREMENT_CLUSTER_SERVER) || \ defined(ZCL_USING_HYDROGEN_CONCENTRATION_MEASUREMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_HYDROGEN_CONCENTRATION_MEASUREMENT_CLUSTER \ - { ZCL_HYDROGEN_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 0x0000, "Hydrogen Concentration Measurement" }, +#define CHIP_PRINTCLUSTER_HYDROGEN_CONCENTRATION_MEASUREMENT_CLUSTER \ + { ZCL_HYDROGEN_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 1040, "Hydrogen Concentration Measurement" }, #else -#define SILABS_PRINTCLUSTER_HYDROGEN_CONCENTRATION_MEASUREMENT_CLUSTER +#define CHIP_PRINTCLUSTER_HYDROGEN_CONCENTRATION_MEASUREMENT_CLUSTER #endif + #if defined(ZCL_USING_HYDROGEN_SULPHIDE_CONCENTRATION_MEASUREMENT_CLUSTER_SERVER) || \ defined(ZCL_USING_HYDROGEN_SULPHIDE_CONCENTRATION_MEASUREMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_HYDROGEN_SULPHIDE_CONCENTRATION_MEASUREMENT_CLUSTER \ - { ZCL_HYDROGEN_SULPHIDE_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 0x0000, "Hydrogen Sulphide Concentration Measurement" }, +#define CHIP_PRINTCLUSTER_HYDROGEN_SULPHIDE_CONCENTRATION_MEASUREMENT_CLUSTER \ + { ZCL_HYDROGEN_SULPHIDE_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 1041, "Hydrogen Sulphide Concentration Measurement" }, #else -#define SILABS_PRINTCLUSTER_HYDROGEN_SULPHIDE_CONCENTRATION_MEASUREMENT_CLUSTER +#define CHIP_PRINTCLUSTER_HYDROGEN_SULPHIDE_CONCENTRATION_MEASUREMENT_CLUSTER #endif + #if defined(ZCL_USING_NITRIC_OXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_SERVER) || \ defined(ZCL_USING_NITRIC_OXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_NITRIC_OXIDE_CONCENTRATION_MEASUREMENT_CLUSTER \ - { ZCL_NITRIC_OXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 0x0000, "Nitric Oxide Concentration Measurement" }, +#define CHIP_PRINTCLUSTER_NITRIC_OXIDE_CONCENTRATION_MEASUREMENT_CLUSTER \ + { ZCL_NITRIC_OXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 1042, "Nitric Oxide Concentration Measurement" }, #else -#define SILABS_PRINTCLUSTER_NITRIC_OXIDE_CONCENTRATION_MEASUREMENT_CLUSTER +#define CHIP_PRINTCLUSTER_NITRIC_OXIDE_CONCENTRATION_MEASUREMENT_CLUSTER #endif + #if defined(ZCL_USING_NITROGEN_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_SERVER) || \ defined(ZCL_USING_NITROGEN_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_NITROGEN_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER \ - { ZCL_NITROGEN_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 0x0000, "Nitrogen Dioxide Concentration Measurement" }, +#define CHIP_PRINTCLUSTER_NITROGEN_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER \ + { ZCL_NITROGEN_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 1043, "Nitrogen Dioxide Concentration Measurement" }, #else -#define SILABS_PRINTCLUSTER_NITROGEN_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER +#define CHIP_PRINTCLUSTER_NITROGEN_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER #endif + #if defined(ZCL_USING_OXYGEN_CONCENTRATION_MEASUREMENT_CLUSTER_SERVER) || \ defined(ZCL_USING_OXYGEN_CONCENTRATION_MEASUREMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_OXYGEN_CONCENTRATION_MEASUREMENT_CLUSTER \ - { ZCL_OXYGEN_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 0x0000, "Oxygen Concentration Measurement" }, +#define CHIP_PRINTCLUSTER_OXYGEN_CONCENTRATION_MEASUREMENT_CLUSTER \ + { ZCL_OXYGEN_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 1044, "Oxygen Concentration Measurement" }, #else -#define SILABS_PRINTCLUSTER_OXYGEN_CONCENTRATION_MEASUREMENT_CLUSTER +#define CHIP_PRINTCLUSTER_OXYGEN_CONCENTRATION_MEASUREMENT_CLUSTER #endif + #if defined(ZCL_USING_OZONE_CONCENTRATION_MEASUREMENT_CLUSTER_SERVER) || \ defined(ZCL_USING_OZONE_CONCENTRATION_MEASUREMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_OZONE_CONCENTRATION_MEASUREMENT_CLUSTER \ - { ZCL_OZONE_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 0x0000, "Ozone Concentration Measurement" }, +#define CHIP_PRINTCLUSTER_OZONE_CONCENTRATION_MEASUREMENT_CLUSTER \ + { ZCL_OZONE_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 1045, "Ozone Concentration Measurement" }, #else -#define SILABS_PRINTCLUSTER_OZONE_CONCENTRATION_MEASUREMENT_CLUSTER +#define CHIP_PRINTCLUSTER_OZONE_CONCENTRATION_MEASUREMENT_CLUSTER #endif + #if defined(ZCL_USING_SULFUR_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_SERVER) || \ defined(ZCL_USING_SULFUR_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_SULFUR_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER \ - { ZCL_SULFUR_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 0x0000, "Sulfur Dioxide Concentration Measurement" }, +#define CHIP_PRINTCLUSTER_SULFUR_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER \ + { ZCL_SULFUR_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 1046, "Sulfur Dioxide Concentration Measurement" }, #else -#define SILABS_PRINTCLUSTER_SULFUR_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER +#define CHIP_PRINTCLUSTER_SULFUR_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER #endif + #if defined(ZCL_USING_DISSOLVED_OXYGEN_CONCENTRATION_MEASUREMENT_CLUSTER_SERVER) || \ defined(ZCL_USING_DISSOLVED_OXYGEN_CONCENTRATION_MEASUREMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_DISSOLVED_OXYGEN_CONCENTRATION_MEASUREMENT_CLUSTER \ - { ZCL_DISSOLVED_OXYGEN_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 0x0000, "Dissolved Oxygen Concentration Measurement" }, +#define CHIP_PRINTCLUSTER_DISSOLVED_OXYGEN_CONCENTRATION_MEASUREMENT_CLUSTER \ + { ZCL_DISSOLVED_OXYGEN_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 1047, "Dissolved Oxygen Concentration Measurement" }, #else -#define SILABS_PRINTCLUSTER_DISSOLVED_OXYGEN_CONCENTRATION_MEASUREMENT_CLUSTER +#define CHIP_PRINTCLUSTER_DISSOLVED_OXYGEN_CONCENTRATION_MEASUREMENT_CLUSTER #endif + #if defined(ZCL_USING_BROMATE_CONCENTRATION_MEASUREMENT_CLUSTER_SERVER) || \ defined(ZCL_USING_BROMATE_CONCENTRATION_MEASUREMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_BROMATE_CONCENTRATION_MEASUREMENT_CLUSTER \ - { ZCL_BROMATE_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 0x0000, "Bromate Concentration Measurement" }, +#define CHIP_PRINTCLUSTER_BROMATE_CONCENTRATION_MEASUREMENT_CLUSTER \ + { ZCL_BROMATE_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 1048, "Bromate Concentration Measurement" }, #else -#define SILABS_PRINTCLUSTER_BROMATE_CONCENTRATION_MEASUREMENT_CLUSTER +#define CHIP_PRINTCLUSTER_BROMATE_CONCENTRATION_MEASUREMENT_CLUSTER #endif + #if defined(ZCL_USING_CHLORAMINES_CONCENTRATION_MEASUREMENT_CLUSTER_SERVER) || \ defined(ZCL_USING_CHLORAMINES_CONCENTRATION_MEASUREMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_CHLORAMINES_CONCENTRATION_MEASUREMENT_CLUSTER \ - { ZCL_CHLORAMINES_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 0x0000, "Chloramines Concentration Measurement" }, +#define CHIP_PRINTCLUSTER_CHLORAMINES_CONCENTRATION_MEASUREMENT_CLUSTER \ + { ZCL_CHLORAMINES_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 1049, "Chloramines Concentration Measurement" }, #else -#define SILABS_PRINTCLUSTER_CHLORAMINES_CONCENTRATION_MEASUREMENT_CLUSTER +#define CHIP_PRINTCLUSTER_CHLORAMINES_CONCENTRATION_MEASUREMENT_CLUSTER #endif + #if defined(ZCL_USING_CHLORINE_CONCENTRATION_MEASUREMENT_CLUSTER_SERVER) || \ defined(ZCL_USING_CHLORINE_CONCENTRATION_MEASUREMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_CHLORINE_CONCENTRATION_MEASUREMENT_CLUSTER \ - { ZCL_CHLORINE_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 0x0000, "Chlorine Concentration Measurement" }, +#define CHIP_PRINTCLUSTER_CHLORINE_CONCENTRATION_MEASUREMENT_CLUSTER \ + { ZCL_CHLORINE_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 1050, "Chlorine Concentration Measurement" }, #else -#define SILABS_PRINTCLUSTER_CHLORINE_CONCENTRATION_MEASUREMENT_CLUSTER +#define CHIP_PRINTCLUSTER_CHLORINE_CONCENTRATION_MEASUREMENT_CLUSTER #endif + #if defined(ZCL_USING_FECAL_COLIFORM_AND_E_COLI_CONCENTRATION_MEASUREMENT_CLUSTER_SERVER) || \ defined(ZCL_USING_FECAL_COLIFORM_AND_E_COLI_CONCENTRATION_MEASUREMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_FECAL_COLIFORM_AND_E_COLI_CONCENTRATION_MEASUREMENT_CLUSTER \ - { ZCL_FECAL_COLIFORM_AND_E_COLI_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 0x0000, \ +#define CHIP_PRINTCLUSTER_FECAL_COLIFORM_AND_E_COLI_CONCENTRATION_MEASUREMENT_CLUSTER \ + { ZCL_FECAL_COLIFORM_AND_E_COLI_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 1051, \ "Fecal coliform and E. Coli Concentration Measurement" }, #else -#define SILABS_PRINTCLUSTER_FECAL_COLIFORM_AND_E_COLI_CONCENTRATION_MEASUREMENT_CLUSTER +#define CHIP_PRINTCLUSTER_FECAL_COLIFORM_AND_E_COLI_CONCENTRATION_MEASUREMENT_CLUSTER #endif + #if defined(ZCL_USING_FLUORIDE_CONCENTRATION_MEASUREMENT_CLUSTER_SERVER) || \ defined(ZCL_USING_FLUORIDE_CONCENTRATION_MEASUREMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_FLUORIDE_CONCENTRATION_MEASUREMENT_CLUSTER \ - { ZCL_FLUORIDE_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 0x0000, "Fluoride Concentration Measurement" }, +#define CHIP_PRINTCLUSTER_FLUORIDE_CONCENTRATION_MEASUREMENT_CLUSTER \ + { ZCL_FLUORIDE_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 1052, "Fluoride Concentration Measurement" }, #else -#define SILABS_PRINTCLUSTER_FLUORIDE_CONCENTRATION_MEASUREMENT_CLUSTER +#define CHIP_PRINTCLUSTER_FLUORIDE_CONCENTRATION_MEASUREMENT_CLUSTER #endif + #if defined(ZCL_USING_HALOACETIC_ACIDS_CONCENTRATION_MEASUREMENT_CLUSTER_SERVER) || \ defined(ZCL_USING_HALOACETIC_ACIDS_CONCENTRATION_MEASUREMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_HALOACETIC_ACIDS_CONCENTRATION_MEASUREMENT_CLUSTER \ - { ZCL_HALOACETIC_ACIDS_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 0x0000, "Haloacetic Acids Concentration Measurement" }, +#define CHIP_PRINTCLUSTER_HALOACETIC_ACIDS_CONCENTRATION_MEASUREMENT_CLUSTER \ + { ZCL_HALOACETIC_ACIDS_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 1053, "Haloacetic Acids Concentration Measurement" }, #else -#define SILABS_PRINTCLUSTER_HALOACETIC_ACIDS_CONCENTRATION_MEASUREMENT_CLUSTER +#define CHIP_PRINTCLUSTER_HALOACETIC_ACIDS_CONCENTRATION_MEASUREMENT_CLUSTER #endif + #if defined(ZCL_USING_TOTAL_TRIHALOMETHANES_CONCENTRATION_MEASUREMENT_CLUSTER_SERVER) || \ defined(ZCL_USING_TOTAL_TRIHALOMETHANES_CONCENTRATION_MEASUREMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_TOTAL_TRIHALOMETHANES_CONCENTRATION_MEASUREMENT_CLUSTER \ - { ZCL_TOTAL_TRIHALOMETHANES_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 0x0000, "Total Trihalomethanes Concentration Measurement" }, +#define CHIP_PRINTCLUSTER_TOTAL_TRIHALOMETHANES_CONCENTRATION_MEASUREMENT_CLUSTER \ + { ZCL_TOTAL_TRIHALOMETHANES_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 1054, "Total Trihalomethanes Concentration Measurement" }, #else -#define SILABS_PRINTCLUSTER_TOTAL_TRIHALOMETHANES_CONCENTRATION_MEASUREMENT_CLUSTER +#define CHIP_PRINTCLUSTER_TOTAL_TRIHALOMETHANES_CONCENTRATION_MEASUREMENT_CLUSTER #endif + #if defined(ZCL_USING_TOTAL_COLIFORM_BACTERIA_CONCENTRATION_MEASUREMENT_CLUSTER_SERVER) || \ defined(ZCL_USING_TOTAL_COLIFORM_BACTERIA_CONCENTRATION_MEASUREMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_TOTAL_COLIFORM_BACTERIA_CONCENTRATION_MEASUREMENT_CLUSTER \ - { ZCL_TOTAL_COLIFORM_BACTERIA_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 0x0000, \ - "Total Coliform Bacteria Concentration Measurement" }, +#define CHIP_PRINTCLUSTER_TOTAL_COLIFORM_BACTERIA_CONCENTRATION_MEASUREMENT_CLUSTER \ + { ZCL_TOTAL_COLIFORM_BACTERIA_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 1055, "Total Coliform Bacteria Concentration Measurement" }, #else -#define SILABS_PRINTCLUSTER_TOTAL_COLIFORM_BACTERIA_CONCENTRATION_MEASUREMENT_CLUSTER +#define CHIP_PRINTCLUSTER_TOTAL_COLIFORM_BACTERIA_CONCENTRATION_MEASUREMENT_CLUSTER #endif + #if defined(ZCL_USING_TURBIDITY_CONCENTRATION_MEASUREMENT_CLUSTER_SERVER) || \ defined(ZCL_USING_TURBIDITY_CONCENTRATION_MEASUREMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_TURBIDITY_CONCENTRATION_MEASUREMENT_CLUSTER \ - { ZCL_TURBIDITY_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 0x0000, "Turbidity Concentration Measurement" }, +#define CHIP_PRINTCLUSTER_TURBIDITY_CONCENTRATION_MEASUREMENT_CLUSTER \ + { ZCL_TURBIDITY_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 1056, "Turbidity Concentration Measurement" }, #else -#define SILABS_PRINTCLUSTER_TURBIDITY_CONCENTRATION_MEASUREMENT_CLUSTER +#define CHIP_PRINTCLUSTER_TURBIDITY_CONCENTRATION_MEASUREMENT_CLUSTER #endif + #if defined(ZCL_USING_COPPER_CONCENTRATION_MEASUREMENT_CLUSTER_SERVER) || \ defined(ZCL_USING_COPPER_CONCENTRATION_MEASUREMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_COPPER_CONCENTRATION_MEASUREMENT_CLUSTER \ - { ZCL_COPPER_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 0x0000, "Copper Concentration Measurement" }, +#define CHIP_PRINTCLUSTER_COPPER_CONCENTRATION_MEASUREMENT_CLUSTER \ + { ZCL_COPPER_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 1057, "Copper Concentration Measurement" }, #else -#define SILABS_PRINTCLUSTER_COPPER_CONCENTRATION_MEASUREMENT_CLUSTER +#define CHIP_PRINTCLUSTER_COPPER_CONCENTRATION_MEASUREMENT_CLUSTER #endif + #if defined(ZCL_USING_LEAD_CONCENTRATION_MEASUREMENT_CLUSTER_SERVER) || \ defined(ZCL_USING_LEAD_CONCENTRATION_MEASUREMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_LEAD_CONCENTRATION_MEASUREMENT_CLUSTER \ - { ZCL_LEAD_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 0x0000, "Lead Concentration Measurement" }, +#define CHIP_PRINTCLUSTER_LEAD_CONCENTRATION_MEASUREMENT_CLUSTER \ + { ZCL_LEAD_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 1058, "Lead Concentration Measurement" }, #else -#define SILABS_PRINTCLUSTER_LEAD_CONCENTRATION_MEASUREMENT_CLUSTER +#define CHIP_PRINTCLUSTER_LEAD_CONCENTRATION_MEASUREMENT_CLUSTER #endif + #if defined(ZCL_USING_MANGANESE_CONCENTRATION_MEASUREMENT_CLUSTER_SERVER) || \ defined(ZCL_USING_MANGANESE_CONCENTRATION_MEASUREMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_MANGANESE_CONCENTRATION_MEASUREMENT_CLUSTER \ - { ZCL_MANGANESE_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 0x0000, "Manganese Concentration Measurement" }, +#define CHIP_PRINTCLUSTER_MANGANESE_CONCENTRATION_MEASUREMENT_CLUSTER \ + { ZCL_MANGANESE_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 1059, "Manganese Concentration Measurement" }, #else -#define SILABS_PRINTCLUSTER_MANGANESE_CONCENTRATION_MEASUREMENT_CLUSTER +#define CHIP_PRINTCLUSTER_MANGANESE_CONCENTRATION_MEASUREMENT_CLUSTER #endif + #if defined(ZCL_USING_SULFATE_CONCENTRATION_MEASUREMENT_CLUSTER_SERVER) || \ defined(ZCL_USING_SULFATE_CONCENTRATION_MEASUREMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_SULFATE_CONCENTRATION_MEASUREMENT_CLUSTER \ - { ZCL_SULFATE_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 0x0000, "Sulfate Concentration Measurement" }, +#define CHIP_PRINTCLUSTER_SULFATE_CONCENTRATION_MEASUREMENT_CLUSTER \ + { ZCL_SULFATE_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 1060, "Sulfate Concentration Measurement" }, #else -#define SILABS_PRINTCLUSTER_SULFATE_CONCENTRATION_MEASUREMENT_CLUSTER +#define CHIP_PRINTCLUSTER_SULFATE_CONCENTRATION_MEASUREMENT_CLUSTER #endif + #if defined(ZCL_USING_BROMODICHLOROMETHANE_CONCENTRATION_MEASUREMENT_CLUSTER_SERVER) || \ defined(ZCL_USING_BROMODICHLOROMETHANE_CONCENTRATION_MEASUREMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_BROMODICHLOROMETHANE_CONCENTRATION_MEASUREMENT_CLUSTER \ - { ZCL_BROMODICHLOROMETHANE_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 0x0000, "Bromodichloromethane Concentration Measurement" }, +#define CHIP_PRINTCLUSTER_BROMODICHLOROMETHANE_CONCENTRATION_MEASUREMENT_CLUSTER \ + { ZCL_BROMODICHLOROMETHANE_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 1061, "Bromodichloromethane Concentration Measurement" }, #else -#define SILABS_PRINTCLUSTER_BROMODICHLOROMETHANE_CONCENTRATION_MEASUREMENT_CLUSTER +#define CHIP_PRINTCLUSTER_BROMODICHLOROMETHANE_CONCENTRATION_MEASUREMENT_CLUSTER #endif + #if defined(ZCL_USING_BROMOFORM_CONCENTRATION_MEASUREMENT_CLUSTER_SERVER) || \ defined(ZCL_USING_BROMOFORM_CONCENTRATION_MEASUREMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_BROMOFORM_CONCENTRATION_MEASUREMENT_CLUSTER \ - { ZCL_BROMOFORM_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 0x0000, "Bromoform Concentration Measurement" }, +#define CHIP_PRINTCLUSTER_BROMOFORM_CONCENTRATION_MEASUREMENT_CLUSTER \ + { ZCL_BROMOFORM_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 1062, "Bromoform Concentration Measurement" }, #else -#define SILABS_PRINTCLUSTER_BROMOFORM_CONCENTRATION_MEASUREMENT_CLUSTER +#define CHIP_PRINTCLUSTER_BROMOFORM_CONCENTRATION_MEASUREMENT_CLUSTER #endif + #if defined(ZCL_USING_CHLORODIBROMOMETHANE_CONCENTRATION_MEASUREMENT_CLUSTER_SERVER) || \ defined(ZCL_USING_CHLORODIBROMOMETHANE_CONCENTRATION_MEASUREMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_CHLORODIBROMOMETHANE_CONCENTRATION_MEASUREMENT_CLUSTER \ - { ZCL_CHLORODIBROMOMETHANE_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 0x0000, "Chlorodibromomethane Concentration Measurement" }, +#define CHIP_PRINTCLUSTER_CHLORODIBROMOMETHANE_CONCENTRATION_MEASUREMENT_CLUSTER \ + { ZCL_CHLORODIBROMOMETHANE_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 1063, "Chlorodibromomethane Concentration Measurement" }, #else -#define SILABS_PRINTCLUSTER_CHLORODIBROMOMETHANE_CONCENTRATION_MEASUREMENT_CLUSTER +#define CHIP_PRINTCLUSTER_CHLORODIBROMOMETHANE_CONCENTRATION_MEASUREMENT_CLUSTER #endif + #if defined(ZCL_USING_CHLOROFORM_CONCENTRATION_MEASUREMENT_CLUSTER_SERVER) || \ defined(ZCL_USING_CHLOROFORM_CONCENTRATION_MEASUREMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_CHLOROFORM_CONCENTRATION_MEASUREMENT_CLUSTER \ - { ZCL_CHLOROFORM_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 0x0000, "Chloroform Concentration Measurement" }, +#define CHIP_PRINTCLUSTER_CHLOROFORM_CONCENTRATION_MEASUREMENT_CLUSTER \ + { ZCL_CHLOROFORM_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 1064, "Chloroform Concentration Measurement" }, #else -#define SILABS_PRINTCLUSTER_CHLOROFORM_CONCENTRATION_MEASUREMENT_CLUSTER +#define CHIP_PRINTCLUSTER_CHLOROFORM_CONCENTRATION_MEASUREMENT_CLUSTER #endif + #if defined(ZCL_USING_SODIUM_CONCENTRATION_MEASUREMENT_CLUSTER_SERVER) || \ defined(ZCL_USING_SODIUM_CONCENTRATION_MEASUREMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_SODIUM_CONCENTRATION_MEASUREMENT_CLUSTER \ - { ZCL_SODIUM_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 0x0000, "Sodium Concentration Measurement" }, +#define CHIP_PRINTCLUSTER_SODIUM_CONCENTRATION_MEASUREMENT_CLUSTER \ + { ZCL_SODIUM_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 1065, "Sodium Concentration Measurement" }, #else -#define SILABS_PRINTCLUSTER_SODIUM_CONCENTRATION_MEASUREMENT_CLUSTER +#define CHIP_PRINTCLUSTER_SODIUM_CONCENTRATION_MEASUREMENT_CLUSTER #endif + #if defined(ZCL_USING_IAS_ZONE_CLUSTER_SERVER) || defined(ZCL_USING_IAS_ZONE_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_IAS_ZONE_CLUSTER { ZCL_IAS_ZONE_CLUSTER_ID, 0x0000, "IAS Zone" }, +#define CHIP_PRINTCLUSTER_IAS_ZONE_CLUSTER { ZCL_IAS_ZONE_CLUSTER_ID, 1280, "IAS Zone" }, #else -#define SILABS_PRINTCLUSTER_IAS_ZONE_CLUSTER +#define CHIP_PRINTCLUSTER_IAS_ZONE_CLUSTER #endif + #if defined(ZCL_USING_IAS_ACE_CLUSTER_SERVER) || defined(ZCL_USING_IAS_ACE_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_IAS_ACE_CLUSTER { ZCL_IAS_ACE_CLUSTER_ID, 0x0000, "IAS ACE" }, +#define CHIP_PRINTCLUSTER_IAS_ACE_CLUSTER { ZCL_IAS_ACE_CLUSTER_ID, 1281, "IAS ACE" }, #else -#define SILABS_PRINTCLUSTER_IAS_ACE_CLUSTER +#define CHIP_PRINTCLUSTER_IAS_ACE_CLUSTER #endif + #if defined(ZCL_USING_IAS_WD_CLUSTER_SERVER) || defined(ZCL_USING_IAS_WD_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_IAS_WD_CLUSTER { ZCL_IAS_WD_CLUSTER_ID, 0x0000, "IAS WD" }, +#define CHIP_PRINTCLUSTER_IAS_WD_CLUSTER { ZCL_IAS_WD_CLUSTER_ID, 1282, "IAS WD" }, #else -#define SILABS_PRINTCLUSTER_IAS_WD_CLUSTER +#define CHIP_PRINTCLUSTER_IAS_WD_CLUSTER #endif + #if defined(ZCL_USING_GENERIC_TUNNEL_CLUSTER_SERVER) || defined(ZCL_USING_GENERIC_TUNNEL_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_GENERIC_TUNNEL_CLUSTER { ZCL_GENERIC_TUNNEL_CLUSTER_ID, 0x0000, "Generic Tunnel" }, +#define CHIP_PRINTCLUSTER_GENERIC_TUNNEL_CLUSTER { ZCL_GENERIC_TUNNEL_CLUSTER_ID, 1536, "Generic Tunnel" }, #else -#define SILABS_PRINTCLUSTER_GENERIC_TUNNEL_CLUSTER +#define CHIP_PRINTCLUSTER_GENERIC_TUNNEL_CLUSTER #endif + #if defined(ZCL_USING_BACNET_PROTOCOL_TUNNEL_CLUSTER_SERVER) || defined(ZCL_USING_BACNET_PROTOCOL_TUNNEL_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_BACNET_PROTOCOL_TUNNEL_CLUSTER \ - { ZCL_BACNET_PROTOCOL_TUNNEL_CLUSTER_ID, 0x0000, "BACnet Protocol Tunnel" }, +#define CHIP_PRINTCLUSTER_BACNET_PROTOCOL_TUNNEL_CLUSTER { ZCL_BACNET_PROTOCOL_TUNNEL_CLUSTER_ID, 1537, "BACnet Protocol Tunnel" }, #else -#define SILABS_PRINTCLUSTER_BACNET_PROTOCOL_TUNNEL_CLUSTER +#define CHIP_PRINTCLUSTER_BACNET_PROTOCOL_TUNNEL_CLUSTER #endif + #if defined(ZCL_USING_11073_PROTOCOL_TUNNEL_CLUSTER_SERVER) || defined(ZCL_USING_11073_PROTOCOL_TUNNEL_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_11073_PROTOCOL_TUNNEL_CLUSTER { ZCL_11073_PROTOCOL_TUNNEL_CLUSTER_ID, 0x0000, "11073 Protocol Tunnel" }, +#define CHIP_PRINTCLUSTER_11073_PROTOCOL_TUNNEL_CLUSTER { ZCL_11073_PROTOCOL_TUNNEL_CLUSTER_ID, 1556, "11073 Protocol Tunnel" }, #else -#define SILABS_PRINTCLUSTER_11073_PROTOCOL_TUNNEL_CLUSTER +#define CHIP_PRINTCLUSTER_11073_PROTOCOL_TUNNEL_CLUSTER #endif + #if defined(ZCL_USING_ISO7816_PROTOCOL_TUNNEL_CLUSTER_SERVER) || defined(ZCL_USING_ISO7816_PROTOCOL_TUNNEL_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_ISO7816_PROTOCOL_TUNNEL_CLUSTER \ - { ZCL_ISO7816_PROTOCOL_TUNNEL_CLUSTER_ID, 0x0000, "ISO 7816 Protocol Tunnel" }, +#define CHIP_PRINTCLUSTER_ISO7816_PROTOCOL_TUNNEL_CLUSTER \ + { ZCL_ISO7816_PROTOCOL_TUNNEL_CLUSTER_ID, 1557, "ISO 7816 Protocol Tunnel" }, #else -#define SILABS_PRINTCLUSTER_ISO7816_PROTOCOL_TUNNEL_CLUSTER +#define CHIP_PRINTCLUSTER_ISO7816_PROTOCOL_TUNNEL_CLUSTER #endif + #if defined(ZCL_USING_PRICE_CLUSTER_SERVER) || defined(ZCL_USING_PRICE_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_PRICE_CLUSTER { ZCL_PRICE_CLUSTER_ID, 0x0000, "Price" }, +#define CHIP_PRINTCLUSTER_PRICE_CLUSTER { ZCL_PRICE_CLUSTER_ID, 1792, "Price" }, #else -#define SILABS_PRINTCLUSTER_PRICE_CLUSTER +#define CHIP_PRINTCLUSTER_PRICE_CLUSTER #endif + #if defined(ZCL_USING_DEMAND_RESPONSE_LOAD_CONTROL_CLUSTER_SERVER) || defined(ZCL_USING_DEMAND_RESPONSE_LOAD_CONTROL_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_DEMAND_RESPONSE_LOAD_CONTROL_CLUSTER \ - { ZCL_DEMAND_RESPONSE_LOAD_CONTROL_CLUSTER_ID, 0x0000, "Demand Response and Load Control" }, +#define CHIP_PRINTCLUSTER_DEMAND_RESPONSE_LOAD_CONTROL_CLUSTER \ + { ZCL_DEMAND_RESPONSE_LOAD_CONTROL_CLUSTER_ID, 1793, "Demand Response and Load Control" }, #else -#define SILABS_PRINTCLUSTER_DEMAND_RESPONSE_LOAD_CONTROL_CLUSTER +#define CHIP_PRINTCLUSTER_DEMAND_RESPONSE_LOAD_CONTROL_CLUSTER #endif + #if defined(ZCL_USING_SIMPLE_METERING_CLUSTER_SERVER) || defined(ZCL_USING_SIMPLE_METERING_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_SIMPLE_METERING_CLUSTER { ZCL_SIMPLE_METERING_CLUSTER_ID, 0x0000, "Simple Metering" }, +#define CHIP_PRINTCLUSTER_SIMPLE_METERING_CLUSTER { ZCL_SIMPLE_METERING_CLUSTER_ID, 1794, "Simple Metering" }, #else -#define SILABS_PRINTCLUSTER_SIMPLE_METERING_CLUSTER +#define CHIP_PRINTCLUSTER_SIMPLE_METERING_CLUSTER #endif + #if defined(ZCL_USING_MESSAGING_CLUSTER_SERVER) || defined(ZCL_USING_MESSAGING_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_MESSAGING_CLUSTER { ZCL_MESSAGING_CLUSTER_ID, 0x0000, "Messaging" }, +#define CHIP_PRINTCLUSTER_MESSAGING_CLUSTER { ZCL_MESSAGING_CLUSTER_ID, 1795, "Messaging" }, #else -#define SILABS_PRINTCLUSTER_MESSAGING_CLUSTER +#define CHIP_PRINTCLUSTER_MESSAGING_CLUSTER #endif + #if defined(ZCL_USING_TUNNELING_CLUSTER_SERVER) || defined(ZCL_USING_TUNNELING_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_TUNNELING_CLUSTER { ZCL_TUNNELING_CLUSTER_ID, 0x0000, "Tunneling" }, +#define CHIP_PRINTCLUSTER_TUNNELING_CLUSTER { ZCL_TUNNELING_CLUSTER_ID, 1796, "Tunneling" }, #else -#define SILABS_PRINTCLUSTER_TUNNELING_CLUSTER +#define CHIP_PRINTCLUSTER_TUNNELING_CLUSTER #endif + #if defined(ZCL_USING_PREPAYMENT_CLUSTER_SERVER) || defined(ZCL_USING_PREPAYMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_PREPAYMENT_CLUSTER { ZCL_PREPAYMENT_CLUSTER_ID, 0x0000, "Prepayment" }, +#define CHIP_PRINTCLUSTER_PREPAYMENT_CLUSTER { ZCL_PREPAYMENT_CLUSTER_ID, 1797, "Prepayment" }, #else -#define SILABS_PRINTCLUSTER_PREPAYMENT_CLUSTER +#define CHIP_PRINTCLUSTER_PREPAYMENT_CLUSTER #endif + #if defined(ZCL_USING_ENERGY_MANAGEMENT_CLUSTER_SERVER) || defined(ZCL_USING_ENERGY_MANAGEMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_ENERGY_MANAGEMENT_CLUSTER { ZCL_ENERGY_MANAGEMENT_CLUSTER_ID, 0x0000, "Energy Management" }, +#define CHIP_PRINTCLUSTER_ENERGY_MANAGEMENT_CLUSTER { ZCL_ENERGY_MANAGEMENT_CLUSTER_ID, 1798, "Energy Management" }, #else -#define SILABS_PRINTCLUSTER_ENERGY_MANAGEMENT_CLUSTER +#define CHIP_PRINTCLUSTER_ENERGY_MANAGEMENT_CLUSTER #endif + #if defined(ZCL_USING_CALENDAR_CLUSTER_SERVER) || defined(ZCL_USING_CALENDAR_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_CALENDAR_CLUSTER { ZCL_CALENDAR_CLUSTER_ID, 0x0000, "Calendar" }, +#define CHIP_PRINTCLUSTER_CALENDAR_CLUSTER { ZCL_CALENDAR_CLUSTER_ID, 1799, "Calendar" }, #else -#define SILABS_PRINTCLUSTER_CALENDAR_CLUSTER +#define CHIP_PRINTCLUSTER_CALENDAR_CLUSTER #endif + #if defined(ZCL_USING_DEVICE_MANAGEMENT_CLUSTER_SERVER) || defined(ZCL_USING_DEVICE_MANAGEMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_DEVICE_MANAGEMENT_CLUSTER { ZCL_DEVICE_MANAGEMENT_CLUSTER_ID, 0x0000, "Device Management" }, +#define CHIP_PRINTCLUSTER_DEVICE_MANAGEMENT_CLUSTER { ZCL_DEVICE_MANAGEMENT_CLUSTER_ID, 1800, "Device Management" }, #else -#define SILABS_PRINTCLUSTER_DEVICE_MANAGEMENT_CLUSTER +#define CHIP_PRINTCLUSTER_DEVICE_MANAGEMENT_CLUSTER #endif + #if defined(ZCL_USING_EVENTS_CLUSTER_SERVER) || defined(ZCL_USING_EVENTS_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_EVENTS_CLUSTER { ZCL_EVENTS_CLUSTER_ID, 0x0000, "Events" }, +#define CHIP_PRINTCLUSTER_EVENTS_CLUSTER { ZCL_EVENTS_CLUSTER_ID, 1801, "Events" }, #else -#define SILABS_PRINTCLUSTER_EVENTS_CLUSTER +#define CHIP_PRINTCLUSTER_EVENTS_CLUSTER #endif + #if defined(ZCL_USING_MDU_PAIRING_CLUSTER_SERVER) || defined(ZCL_USING_MDU_PAIRING_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_MDU_PAIRING_CLUSTER { ZCL_MDU_PAIRING_CLUSTER_ID, 0x0000, "MDU Pairing" }, +#define CHIP_PRINTCLUSTER_MDU_PAIRING_CLUSTER { ZCL_MDU_PAIRING_CLUSTER_ID, 1802, "MDU Pairing" }, #else -#define SILABS_PRINTCLUSTER_MDU_PAIRING_CLUSTER +#define CHIP_PRINTCLUSTER_MDU_PAIRING_CLUSTER #endif + #if defined(ZCL_USING_SUB_GHZ_CLUSTER_SERVER) || defined(ZCL_USING_SUB_GHZ_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_SUB_GHZ_CLUSTER { ZCL_SUB_GHZ_CLUSTER_ID, 0x0000, "Sub-GHz" }, +#define CHIP_PRINTCLUSTER_SUB_GHZ_CLUSTER { ZCL_SUB_GHZ_CLUSTER_ID, 1803, "Sub-GHz" }, #else -#define SILABS_PRINTCLUSTER_SUB_GHZ_CLUSTER +#define CHIP_PRINTCLUSTER_SUB_GHZ_CLUSTER #endif + #if defined(ZCL_USING_KEY_ESTABLISHMENT_CLUSTER_SERVER) || defined(ZCL_USING_KEY_ESTABLISHMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_KEY_ESTABLISHMENT_CLUSTER { ZCL_KEY_ESTABLISHMENT_CLUSTER_ID, 0x0000, "Key Establishment" }, +#define CHIP_PRINTCLUSTER_KEY_ESTABLISHMENT_CLUSTER { ZCL_KEY_ESTABLISHMENT_CLUSTER_ID, 2048, "Key Establishment" }, #else -#define SILABS_PRINTCLUSTER_KEY_ESTABLISHMENT_CLUSTER +#define CHIP_PRINTCLUSTER_KEY_ESTABLISHMENT_CLUSTER #endif + #if defined(ZCL_USING_INFORMATION_CLUSTER_SERVER) || defined(ZCL_USING_INFORMATION_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_INFORMATION_CLUSTER { ZCL_INFORMATION_CLUSTER_ID, 0x0000, "Information" }, +#define CHIP_PRINTCLUSTER_INFORMATION_CLUSTER { ZCL_INFORMATION_CLUSTER_ID, 2304, "Information" }, #else -#define SILABS_PRINTCLUSTER_INFORMATION_CLUSTER +#define CHIP_PRINTCLUSTER_INFORMATION_CLUSTER #endif + #if defined(ZCL_USING_DATA_SHARING_CLUSTER_SERVER) || defined(ZCL_USING_DATA_SHARING_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_DATA_SHARING_CLUSTER { ZCL_DATA_SHARING_CLUSTER_ID, 0x0000, "Data Sharing" }, +#define CHIP_PRINTCLUSTER_DATA_SHARING_CLUSTER { ZCL_DATA_SHARING_CLUSTER_ID, 2305, "Data Sharing" }, #else -#define SILABS_PRINTCLUSTER_DATA_SHARING_CLUSTER +#define CHIP_PRINTCLUSTER_DATA_SHARING_CLUSTER #endif + #if defined(ZCL_USING_GAMING_CLUSTER_SERVER) || defined(ZCL_USING_GAMING_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_GAMING_CLUSTER { ZCL_GAMING_CLUSTER_ID, 0x0000, "Gaming" }, +#define CHIP_PRINTCLUSTER_GAMING_CLUSTER { ZCL_GAMING_CLUSTER_ID, 2306, "Gaming" }, #else -#define SILABS_PRINTCLUSTER_GAMING_CLUSTER +#define CHIP_PRINTCLUSTER_GAMING_CLUSTER #endif + #if defined(ZCL_USING_DATA_RATE_CONTROL_CLUSTER_SERVER) || defined(ZCL_USING_DATA_RATE_CONTROL_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_DATA_RATE_CONTROL_CLUSTER { ZCL_DATA_RATE_CONTROL_CLUSTER_ID, 0x0000, "Data Rate Control" }, +#define CHIP_PRINTCLUSTER_DATA_RATE_CONTROL_CLUSTER { ZCL_DATA_RATE_CONTROL_CLUSTER_ID, 2307, "Data Rate Control" }, #else -#define SILABS_PRINTCLUSTER_DATA_RATE_CONTROL_CLUSTER +#define CHIP_PRINTCLUSTER_DATA_RATE_CONTROL_CLUSTER #endif + #if defined(ZCL_USING_VOICE_OVER_ZIGBEE_CLUSTER_SERVER) || defined(ZCL_USING_VOICE_OVER_ZIGBEE_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_VOICE_OVER_ZIGBEE_CLUSTER { ZCL_VOICE_OVER_ZIGBEE_CLUSTER_ID, 0x0000, "Voice over ZigBee" }, +#define CHIP_PRINTCLUSTER_VOICE_OVER_ZIGBEE_CLUSTER { ZCL_VOICE_OVER_ZIGBEE_CLUSTER_ID, 2308, "Voice over ZigBee" }, #else -#define SILABS_PRINTCLUSTER_VOICE_OVER_ZIGBEE_CLUSTER +#define CHIP_PRINTCLUSTER_VOICE_OVER_ZIGBEE_CLUSTER #endif + #if defined(ZCL_USING_CHATTING_CLUSTER_SERVER) || defined(ZCL_USING_CHATTING_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_CHATTING_CLUSTER { ZCL_CHATTING_CLUSTER_ID, 0x0000, "Chatting" }, +#define CHIP_PRINTCLUSTER_CHATTING_CLUSTER { ZCL_CHATTING_CLUSTER_ID, 2309, "Chatting" }, #else -#define SILABS_PRINTCLUSTER_CHATTING_CLUSTER +#define CHIP_PRINTCLUSTER_CHATTING_CLUSTER #endif + #if defined(ZCL_USING_PAYMENT_CLUSTER_SERVER) || defined(ZCL_USING_PAYMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_PAYMENT_CLUSTER { ZCL_PAYMENT_CLUSTER_ID, 0x0000, "Payment" }, +#define CHIP_PRINTCLUSTER_PAYMENT_CLUSTER { ZCL_PAYMENT_CLUSTER_ID, 2561, "Payment" }, #else -#define SILABS_PRINTCLUSTER_PAYMENT_CLUSTER +#define CHIP_PRINTCLUSTER_PAYMENT_CLUSTER #endif + #if defined(ZCL_USING_BILLING_CLUSTER_SERVER) || defined(ZCL_USING_BILLING_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_BILLING_CLUSTER { ZCL_BILLING_CLUSTER_ID, 0x0000, "Billing" }, +#define CHIP_PRINTCLUSTER_BILLING_CLUSTER { ZCL_BILLING_CLUSTER_ID, 2562, "Billing" }, #else -#define SILABS_PRINTCLUSTER_BILLING_CLUSTER +#define CHIP_PRINTCLUSTER_BILLING_CLUSTER #endif + #if defined(ZCL_USING_APPLIANCE_IDENTIFICATION_CLUSTER_SERVER) || defined(ZCL_USING_APPLIANCE_IDENTIFICATION_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_APPLIANCE_IDENTIFICATION_CLUSTER \ - { ZCL_APPLIANCE_IDENTIFICATION_CLUSTER_ID, 0x0000, "Appliance Identification" }, +#define CHIP_PRINTCLUSTER_APPLIANCE_IDENTIFICATION_CLUSTER \ + { ZCL_APPLIANCE_IDENTIFICATION_CLUSTER_ID, 2816, "Appliance Identification" }, #else -#define SILABS_PRINTCLUSTER_APPLIANCE_IDENTIFICATION_CLUSTER +#define CHIP_PRINTCLUSTER_APPLIANCE_IDENTIFICATION_CLUSTER #endif + #if defined(ZCL_USING_METER_IDENTIFICATION_CLUSTER_SERVER) || defined(ZCL_USING_METER_IDENTIFICATION_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_METER_IDENTIFICATION_CLUSTER { ZCL_METER_IDENTIFICATION_CLUSTER_ID, 0x0000, "Meter Identification" }, +#define CHIP_PRINTCLUSTER_METER_IDENTIFICATION_CLUSTER { ZCL_METER_IDENTIFICATION_CLUSTER_ID, 2817, "Meter Identification" }, #else -#define SILABS_PRINTCLUSTER_METER_IDENTIFICATION_CLUSTER +#define CHIP_PRINTCLUSTER_METER_IDENTIFICATION_CLUSTER #endif + #if defined(ZCL_USING_APPLIANCE_EVENTS_AND_ALERT_CLUSTER_SERVER) || defined(ZCL_USING_APPLIANCE_EVENTS_AND_ALERT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_APPLIANCE_EVENTS_AND_ALERT_CLUSTER \ - { ZCL_APPLIANCE_EVENTS_AND_ALERT_CLUSTER_ID, 0x0000, "Appliance Events and Alert" }, +#define CHIP_PRINTCLUSTER_APPLIANCE_EVENTS_AND_ALERT_CLUSTER \ + { ZCL_APPLIANCE_EVENTS_AND_ALERT_CLUSTER_ID, 2818, "Appliance Events and Alert" }, #else -#define SILABS_PRINTCLUSTER_APPLIANCE_EVENTS_AND_ALERT_CLUSTER +#define CHIP_PRINTCLUSTER_APPLIANCE_EVENTS_AND_ALERT_CLUSTER #endif + #if defined(ZCL_USING_APPLIANCE_STATISTICS_CLUSTER_SERVER) || defined(ZCL_USING_APPLIANCE_STATISTICS_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_APPLIANCE_STATISTICS_CLUSTER { ZCL_APPLIANCE_STATISTICS_CLUSTER_ID, 0x0000, "Appliance Statistics" }, +#define CHIP_PRINTCLUSTER_APPLIANCE_STATISTICS_CLUSTER { ZCL_APPLIANCE_STATISTICS_CLUSTER_ID, 2819, "Appliance Statistics" }, #else -#define SILABS_PRINTCLUSTER_APPLIANCE_STATISTICS_CLUSTER +#define CHIP_PRINTCLUSTER_APPLIANCE_STATISTICS_CLUSTER #endif + #if defined(ZCL_USING_ELECTRICAL_MEASUREMENT_CLUSTER_SERVER) || defined(ZCL_USING_ELECTRICAL_MEASUREMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_ELECTRICAL_MEASUREMENT_CLUSTER \ - { ZCL_ELECTRICAL_MEASUREMENT_CLUSTER_ID, 0x0000, "Electrical Measurement" }, +#define CHIP_PRINTCLUSTER_ELECTRICAL_MEASUREMENT_CLUSTER { ZCL_ELECTRICAL_MEASUREMENT_CLUSTER_ID, 2820, "Electrical Measurement" }, #else -#define SILABS_PRINTCLUSTER_ELECTRICAL_MEASUREMENT_CLUSTER +#define CHIP_PRINTCLUSTER_ELECTRICAL_MEASUREMENT_CLUSTER #endif + #if defined(ZCL_USING_DIAGNOSTICS_CLUSTER_SERVER) || defined(ZCL_USING_DIAGNOSTICS_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_DIAGNOSTICS_CLUSTER { ZCL_DIAGNOSTICS_CLUSTER_ID, 0x0000, "Diagnostics" }, +#define CHIP_PRINTCLUSTER_DIAGNOSTICS_CLUSTER { ZCL_DIAGNOSTICS_CLUSTER_ID, 2821, "Diagnostics" }, #else -#define SILABS_PRINTCLUSTER_DIAGNOSTICS_CLUSTER +#define CHIP_PRINTCLUSTER_DIAGNOSTICS_CLUSTER #endif + #if defined(ZCL_USING_ZLL_COMMISSIONING_CLUSTER_SERVER) || defined(ZCL_USING_ZLL_COMMISSIONING_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_ZLL_COMMISSIONING_CLUSTER { ZCL_ZLL_COMMISSIONING_CLUSTER_ID, 0x0000, "ZLL Commissioning" }, +#define CHIP_PRINTCLUSTER_ZLL_COMMISSIONING_CLUSTER { ZCL_ZLL_COMMISSIONING_CLUSTER_ID, 4096, "ZLL Commissioning" }, #else -#define SILABS_PRINTCLUSTER_ZLL_COMMISSIONING_CLUSTER +#define CHIP_PRINTCLUSTER_ZLL_COMMISSIONING_CLUSTER #endif + #if defined(ZCL_USING_SAMPLE_MFG_SPECIFIC_CLUSTER_SERVER) || defined(ZCL_USING_SAMPLE_MFG_SPECIFIC_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_SAMPLE_MFG_SPECIFIC_CLUSTER \ - { ZCL_SAMPLE_MFG_SPECIFIC_CLUSTER_ID, 0x1002, "Sample Mfg Specific Cluster" }, +#define CHIP_PRINTCLUSTER_SAMPLE_MFG_SPECIFIC_CLUSTER { ZCL_SAMPLE_MFG_SPECIFIC_CLUSTER_ID, 64512, "Sample Mfg Specific Cluster" }, #else -#define SILABS_PRINTCLUSTER_SAMPLE_MFG_SPECIFIC_CLUSTER +#define CHIP_PRINTCLUSTER_SAMPLE_MFG_SPECIFIC_CLUSTER #endif + #if defined(ZCL_USING_SAMPLE_MFG_SPECIFIC_CLUSTER_2_SERVER) || defined(ZCL_USING_SAMPLE_MFG_SPECIFIC_CLUSTER_2_CLIENT) -#define SILABS_PRINTCLUSTER_SAMPLE_MFG_SPECIFIC_CLUSTER_2 \ - { ZCL_SAMPLE_MFG_SPECIFIC_CLUSTER_2_ID, 0x1049, "Sample Mfg Specific Cluster 2" }, +#define CHIP_PRINTCLUSTER_SAMPLE_MFG_SPECIFIC_CLUSTER_2 \ + { ZCL_SAMPLE_MFG_SPECIFIC_CLUSTER_2_ID, 64512, "Sample Mfg Specific Cluster 2" }, #else -#define SILABS_PRINTCLUSTER_SAMPLE_MFG_SPECIFIC_CLUSTER_2 +#define CHIP_PRINTCLUSTER_SAMPLE_MFG_SPECIFIC_CLUSTER_2 #endif + #if defined(ZCL_USING_OTA_CONFIGURATION_CLUSTER_SERVER) || defined(ZCL_USING_OTA_CONFIGURATION_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_OTA_CONFIGURATION_CLUSTER { ZCL_OTA_CONFIGURATION_CLUSTER_ID, 0x1002, "Configuration Cluster" }, +#define CHIP_PRINTCLUSTER_OTA_CONFIGURATION_CLUSTER { ZCL_OTA_CONFIGURATION_CLUSTER_ID, 64513, "Configuration Cluster" }, #else -#define SILABS_PRINTCLUSTER_OTA_CONFIGURATION_CLUSTER +#define CHIP_PRINTCLUSTER_OTA_CONFIGURATION_CLUSTER #endif + #if defined(ZCL_USING_MFGLIB_CLUSTER_SERVER) || defined(ZCL_USING_MFGLIB_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_MFGLIB_CLUSTER { ZCL_MFGLIB_CLUSTER_ID, 0x1002, "MFGLIB Cluster" }, +#define CHIP_PRINTCLUSTER_MFGLIB_CLUSTER { ZCL_MFGLIB_CLUSTER_ID, 64514, "MFGLIB Cluster" }, #else -#define SILABS_PRINTCLUSTER_MFGLIB_CLUSTER +#define CHIP_PRINTCLUSTER_MFGLIB_CLUSTER #endif + #if defined(ZCL_USING_SL_WWAH_CLUSTER_SERVER) || defined(ZCL_USING_SL_WWAH_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_SL_WWAH_CLUSTER { ZCL_SL_WWAH_CLUSTER_ID, 0x1217, "SL Works With All Hubs" }, +#define CHIP_PRINTCLUSTER_SL_WWAH_CLUSTER { ZCL_SL_WWAH_CLUSTER_ID, 64599, "SL Works With All Hubs" }, #else -#define SILABS_PRINTCLUSTER_SL_WWAH_CLUSTER +#define CHIP_PRINTCLUSTER_SL_WWAH_CLUSTER #endif + #define CLUSTER_IDS_TO_NAMES \ - SILABS_PRINTCLUSTER_BASIC_CLUSTER \ - SILABS_PRINTCLUSTER_POWER_CONFIG_CLUSTER \ - SILABS_PRINTCLUSTER_DEVICE_TEMP_CLUSTER \ - SILABS_PRINTCLUSTER_IDENTIFY_CLUSTER \ - SILABS_PRINTCLUSTER_GROUPS_CLUSTER \ - SILABS_PRINTCLUSTER_SCENES_CLUSTER \ - SILABS_PRINTCLUSTER_ON_OFF_CLUSTER \ - SILABS_PRINTCLUSTER_ON_OFF_SWITCH_CONFIG_CLUSTER \ - SILABS_PRINTCLUSTER_LEVEL_CONTROL_CLUSTER \ - SILABS_PRINTCLUSTER_ALARM_CLUSTER \ - SILABS_PRINTCLUSTER_TIME_CLUSTER \ - SILABS_PRINTCLUSTER_RSSI_LOCATION_CLUSTER \ - SILABS_PRINTCLUSTER_BINARY_INPUT_BASIC_CLUSTER \ - SILABS_PRINTCLUSTER_COMMISSIONING_CLUSTER \ - SILABS_PRINTCLUSTER_PARTITION_CLUSTER \ - SILABS_PRINTCLUSTER_OTA_BOOTLOAD_CLUSTER \ - SILABS_PRINTCLUSTER_POWER_PROFILE_CLUSTER \ - SILABS_PRINTCLUSTER_APPLIANCE_CONTROL_CLUSTER \ - SILABS_PRINTCLUSTER_POLL_CONTROL_CLUSTER \ - SILABS_PRINTCLUSTER_GREEN_POWER_CLUSTER \ - SILABS_PRINTCLUSTER_KEEPALIVE_CLUSTER \ - SILABS_PRINTCLUSTER_SHADE_CONFIG_CLUSTER \ - SILABS_PRINTCLUSTER_DOOR_LOCK_CLUSTER \ - SILABS_PRINTCLUSTER_WINDOW_COVERING_CLUSTER \ - SILABS_PRINTCLUSTER_BARRIER_CONTROL_CLUSTER \ - SILABS_PRINTCLUSTER_PUMP_CONFIG_CONTROL_CLUSTER \ - SILABS_PRINTCLUSTER_THERMOSTAT_CLUSTER \ - SILABS_PRINTCLUSTER_FAN_CONTROL_CLUSTER \ - SILABS_PRINTCLUSTER_DEHUMID_CONTROL_CLUSTER \ - SILABS_PRINTCLUSTER_THERMOSTAT_UI_CONFIG_CLUSTER \ - SILABS_PRINTCLUSTER_COLOR_CONTROL_CLUSTER \ - SILABS_PRINTCLUSTER_BALLAST_CONFIGURATION_CLUSTER \ - SILABS_PRINTCLUSTER_ILLUM_MEASUREMENT_CLUSTER \ - SILABS_PRINTCLUSTER_ILLUM_LEVEL_SENSING_CLUSTER \ - SILABS_PRINTCLUSTER_TEMP_MEASUREMENT_CLUSTER \ - SILABS_PRINTCLUSTER_PRESSURE_MEASUREMENT_CLUSTER \ - SILABS_PRINTCLUSTER_FLOW_MEASUREMENT_CLUSTER \ - SILABS_PRINTCLUSTER_RELATIVE_HUMIDITY_MEASUREMENT_CLUSTER \ - SILABS_PRINTCLUSTER_OCCUPANCY_SENSING_CLUSTER \ - SILABS_PRINTCLUSTER_CARBON_MONOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER \ - SILABS_PRINTCLUSTER_CARBON_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER \ - SILABS_PRINTCLUSTER_ETHYLENE_CONCENTRATION_MEASUREMENT_CLUSTER \ - SILABS_PRINTCLUSTER_ETHYLENE_OXIDE_CONCENTRATION_MEASUREMENT_CLUSTER \ - SILABS_PRINTCLUSTER_HYDROGEN_CONCENTRATION_MEASUREMENT_CLUSTER \ - SILABS_PRINTCLUSTER_HYDROGEN_SULPHIDE_CONCENTRATION_MEASUREMENT_CLUSTER \ - SILABS_PRINTCLUSTER_NITRIC_OXIDE_CONCENTRATION_MEASUREMENT_CLUSTER \ - SILABS_PRINTCLUSTER_NITROGEN_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER \ - SILABS_PRINTCLUSTER_OXYGEN_CONCENTRATION_MEASUREMENT_CLUSTER \ - SILABS_PRINTCLUSTER_OZONE_CONCENTRATION_MEASUREMENT_CLUSTER \ - SILABS_PRINTCLUSTER_SULFUR_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER \ - SILABS_PRINTCLUSTER_DISSOLVED_OXYGEN_CONCENTRATION_MEASUREMENT_CLUSTER \ - SILABS_PRINTCLUSTER_BROMATE_CONCENTRATION_MEASUREMENT_CLUSTER \ - SILABS_PRINTCLUSTER_CHLORAMINES_CONCENTRATION_MEASUREMENT_CLUSTER \ - SILABS_PRINTCLUSTER_CHLORINE_CONCENTRATION_MEASUREMENT_CLUSTER \ - SILABS_PRINTCLUSTER_FECAL_COLIFORM_AND_E_COLI_CONCENTRATION_MEASUREMENT_CLUSTER \ - SILABS_PRINTCLUSTER_FLUORIDE_CONCENTRATION_MEASUREMENT_CLUSTER \ - SILABS_PRINTCLUSTER_HALOACETIC_ACIDS_CONCENTRATION_MEASUREMENT_CLUSTER \ - SILABS_PRINTCLUSTER_TOTAL_TRIHALOMETHANES_CONCENTRATION_MEASUREMENT_CLUSTER \ - SILABS_PRINTCLUSTER_TOTAL_COLIFORM_BACTERIA_CONCENTRATION_MEASUREMENT_CLUSTER \ - SILABS_PRINTCLUSTER_TURBIDITY_CONCENTRATION_MEASUREMENT_CLUSTER \ - SILABS_PRINTCLUSTER_COPPER_CONCENTRATION_MEASUREMENT_CLUSTER \ - SILABS_PRINTCLUSTER_LEAD_CONCENTRATION_MEASUREMENT_CLUSTER \ - SILABS_PRINTCLUSTER_MANGANESE_CONCENTRATION_MEASUREMENT_CLUSTER \ - SILABS_PRINTCLUSTER_SULFATE_CONCENTRATION_MEASUREMENT_CLUSTER \ - SILABS_PRINTCLUSTER_BROMODICHLOROMETHANE_CONCENTRATION_MEASUREMENT_CLUSTER \ - SILABS_PRINTCLUSTER_BROMOFORM_CONCENTRATION_MEASUREMENT_CLUSTER \ - SILABS_PRINTCLUSTER_CHLORODIBROMOMETHANE_CONCENTRATION_MEASUREMENT_CLUSTER \ - SILABS_PRINTCLUSTER_CHLOROFORM_CONCENTRATION_MEASUREMENT_CLUSTER \ - SILABS_PRINTCLUSTER_SODIUM_CONCENTRATION_MEASUREMENT_CLUSTER \ - SILABS_PRINTCLUSTER_IAS_ZONE_CLUSTER \ - SILABS_PRINTCLUSTER_IAS_ACE_CLUSTER \ - SILABS_PRINTCLUSTER_IAS_WD_CLUSTER \ - SILABS_PRINTCLUSTER_GENERIC_TUNNEL_CLUSTER \ - SILABS_PRINTCLUSTER_BACNET_PROTOCOL_TUNNEL_CLUSTER \ - SILABS_PRINTCLUSTER_11073_PROTOCOL_TUNNEL_CLUSTER \ - SILABS_PRINTCLUSTER_ISO7816_PROTOCOL_TUNNEL_CLUSTER \ - SILABS_PRINTCLUSTER_PRICE_CLUSTER \ - SILABS_PRINTCLUSTER_DEMAND_RESPONSE_LOAD_CONTROL_CLUSTER \ - SILABS_PRINTCLUSTER_SIMPLE_METERING_CLUSTER \ - SILABS_PRINTCLUSTER_MESSAGING_CLUSTER \ - SILABS_PRINTCLUSTER_TUNNELING_CLUSTER \ - SILABS_PRINTCLUSTER_PREPAYMENT_CLUSTER \ - SILABS_PRINTCLUSTER_ENERGY_MANAGEMENT_CLUSTER \ - SILABS_PRINTCLUSTER_CALENDAR_CLUSTER \ - SILABS_PRINTCLUSTER_DEVICE_MANAGEMENT_CLUSTER \ - SILABS_PRINTCLUSTER_EVENTS_CLUSTER \ - SILABS_PRINTCLUSTER_MDU_PAIRING_CLUSTER \ - SILABS_PRINTCLUSTER_SUB_GHZ_CLUSTER \ - SILABS_PRINTCLUSTER_KEY_ESTABLISHMENT_CLUSTER \ - SILABS_PRINTCLUSTER_INFORMATION_CLUSTER \ - SILABS_PRINTCLUSTER_DATA_SHARING_CLUSTER \ - SILABS_PRINTCLUSTER_GAMING_CLUSTER \ - SILABS_PRINTCLUSTER_DATA_RATE_CONTROL_CLUSTER \ - SILABS_PRINTCLUSTER_VOICE_OVER_ZIGBEE_CLUSTER \ - SILABS_PRINTCLUSTER_CHATTING_CLUSTER \ - SILABS_PRINTCLUSTER_PAYMENT_CLUSTER \ - SILABS_PRINTCLUSTER_BILLING_CLUSTER \ - SILABS_PRINTCLUSTER_APPLIANCE_IDENTIFICATION_CLUSTER \ - SILABS_PRINTCLUSTER_METER_IDENTIFICATION_CLUSTER \ - SILABS_PRINTCLUSTER_APPLIANCE_EVENTS_AND_ALERT_CLUSTER \ - SILABS_PRINTCLUSTER_APPLIANCE_STATISTICS_CLUSTER \ - SILABS_PRINTCLUSTER_ELECTRICAL_MEASUREMENT_CLUSTER \ - SILABS_PRINTCLUSTER_DIAGNOSTICS_CLUSTER \ - SILABS_PRINTCLUSTER_ZLL_COMMISSIONING_CLUSTER \ - SILABS_PRINTCLUSTER_SAMPLE_MFG_SPECIFIC_CLUSTER \ - SILABS_PRINTCLUSTER_SAMPLE_MFG_SPECIFIC_CLUSTER_2 \ - SILABS_PRINTCLUSTER_OTA_CONFIGURATION_CLUSTER \ - SILABS_PRINTCLUSTER_MFGLIB_CLUSTER \ - SILABS_PRINTCLUSTER_SL_WWAH_CLUSTER + CHIP_PRINTCLUSTER_BASIC_CLUSTER \ + CHIP_PRINTCLUSTER_POWER_CONFIG_CLUSTER \ + CHIP_PRINTCLUSTER_DEVICE_TEMP_CLUSTER \ + CHIP_PRINTCLUSTER_IDENTIFY_CLUSTER \ + CHIP_PRINTCLUSTER_GROUPS_CLUSTER \ + CHIP_PRINTCLUSTER_SCENES_CLUSTER \ + CHIP_PRINTCLUSTER_ON_OFF_CLUSTER \ + CHIP_PRINTCLUSTER_ON_OFF_SWITCH_CONFIG_CLUSTER \ + CHIP_PRINTCLUSTER_LEVEL_CONTROL_CLUSTER \ + CHIP_PRINTCLUSTER_ALARM_CLUSTER \ + CHIP_PRINTCLUSTER_TIME_CLUSTER \ + CHIP_PRINTCLUSTER_RSSI_LOCATION_CLUSTER \ + CHIP_PRINTCLUSTER_BINARY_INPUT_BASIC_CLUSTER \ + CHIP_PRINTCLUSTER_COMMISSIONING_CLUSTER \ + CHIP_PRINTCLUSTER_PARTITION_CLUSTER \ + CHIP_PRINTCLUSTER_OTA_BOOTLOAD_CLUSTER \ + CHIP_PRINTCLUSTER_POWER_PROFILE_CLUSTER \ + CHIP_PRINTCLUSTER_APPLIANCE_CONTROL_CLUSTER \ + CHIP_PRINTCLUSTER_POLL_CONTROL_CLUSTER \ + CHIP_PRINTCLUSTER_GREEN_POWER_CLUSTER \ + CHIP_PRINTCLUSTER_KEEPALIVE_CLUSTER \ + CHIP_PRINTCLUSTER_SHADE_CONFIG_CLUSTER \ + CHIP_PRINTCLUSTER_DOOR_LOCK_CLUSTER \ + CHIP_PRINTCLUSTER_WINDOW_COVERING_CLUSTER \ + CHIP_PRINTCLUSTER_BARRIER_CONTROL_CLUSTER \ + CHIP_PRINTCLUSTER_PUMP_CONFIG_CONTROL_CLUSTER \ + CHIP_PRINTCLUSTER_THERMOSTAT_CLUSTER \ + CHIP_PRINTCLUSTER_FAN_CONTROL_CLUSTER \ + CHIP_PRINTCLUSTER_DEHUMID_CONTROL_CLUSTER \ + CHIP_PRINTCLUSTER_THERMOSTAT_UI_CONFIG_CLUSTER \ + CHIP_PRINTCLUSTER_COLOR_CONTROL_CLUSTER \ + CHIP_PRINTCLUSTER_BALLAST_CONFIGURATION_CLUSTER \ + CHIP_PRINTCLUSTER_ILLUM_MEASUREMENT_CLUSTER \ + CHIP_PRINTCLUSTER_ILLUM_LEVEL_SENSING_CLUSTER \ + CHIP_PRINTCLUSTER_TEMP_MEASUREMENT_CLUSTER \ + CHIP_PRINTCLUSTER_PRESSURE_MEASUREMENT_CLUSTER \ + CHIP_PRINTCLUSTER_FLOW_MEASUREMENT_CLUSTER \ + CHIP_PRINTCLUSTER_RELATIVE_HUMIDITY_MEASUREMENT_CLUSTER \ + CHIP_PRINTCLUSTER_OCCUPANCY_SENSING_CLUSTER \ + CHIP_PRINTCLUSTER_CARBON_MONOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER \ + CHIP_PRINTCLUSTER_CARBON_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER \ + CHIP_PRINTCLUSTER_ETHYLENE_CONCENTRATION_MEASUREMENT_CLUSTER \ + CHIP_PRINTCLUSTER_ETHYLENE_OXIDE_CONCENTRATION_MEASUREMENT_CLUSTER \ + CHIP_PRINTCLUSTER_HYDROGEN_CONCENTRATION_MEASUREMENT_CLUSTER \ + CHIP_PRINTCLUSTER_HYDROGEN_SULPHIDE_CONCENTRATION_MEASUREMENT_CLUSTER \ + CHIP_PRINTCLUSTER_NITRIC_OXIDE_CONCENTRATION_MEASUREMENT_CLUSTER \ + CHIP_PRINTCLUSTER_NITROGEN_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER \ + CHIP_PRINTCLUSTER_OXYGEN_CONCENTRATION_MEASUREMENT_CLUSTER \ + CHIP_PRINTCLUSTER_OZONE_CONCENTRATION_MEASUREMENT_CLUSTER \ + CHIP_PRINTCLUSTER_SULFUR_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER \ + CHIP_PRINTCLUSTER_DISSOLVED_OXYGEN_CONCENTRATION_MEASUREMENT_CLUSTER \ + CHIP_PRINTCLUSTER_BROMATE_CONCENTRATION_MEASUREMENT_CLUSTER \ + CHIP_PRINTCLUSTER_CHLORAMINES_CONCENTRATION_MEASUREMENT_CLUSTER \ + CHIP_PRINTCLUSTER_CHLORINE_CONCENTRATION_MEASUREMENT_CLUSTER \ + CHIP_PRINTCLUSTER_FECAL_COLIFORM_AND_E_COLI_CONCENTRATION_MEASUREMENT_CLUSTER \ + CHIP_PRINTCLUSTER_FLUORIDE_CONCENTRATION_MEASUREMENT_CLUSTER \ + CHIP_PRINTCLUSTER_HALOACETIC_ACIDS_CONCENTRATION_MEASUREMENT_CLUSTER \ + CHIP_PRINTCLUSTER_TOTAL_TRIHALOMETHANES_CONCENTRATION_MEASUREMENT_CLUSTER \ + CHIP_PRINTCLUSTER_TOTAL_COLIFORM_BACTERIA_CONCENTRATION_MEASUREMENT_CLUSTER \ + CHIP_PRINTCLUSTER_TURBIDITY_CONCENTRATION_MEASUREMENT_CLUSTER \ + CHIP_PRINTCLUSTER_COPPER_CONCENTRATION_MEASUREMENT_CLUSTER \ + CHIP_PRINTCLUSTER_LEAD_CONCENTRATION_MEASUREMENT_CLUSTER \ + CHIP_PRINTCLUSTER_MANGANESE_CONCENTRATION_MEASUREMENT_CLUSTER \ + CHIP_PRINTCLUSTER_SULFATE_CONCENTRATION_MEASUREMENT_CLUSTER \ + CHIP_PRINTCLUSTER_BROMODICHLOROMETHANE_CONCENTRATION_MEASUREMENT_CLUSTER \ + CHIP_PRINTCLUSTER_BROMOFORM_CONCENTRATION_MEASUREMENT_CLUSTER \ + CHIP_PRINTCLUSTER_CHLORODIBROMOMETHANE_CONCENTRATION_MEASUREMENT_CLUSTER \ + CHIP_PRINTCLUSTER_CHLOROFORM_CONCENTRATION_MEASUREMENT_CLUSTER \ + CHIP_PRINTCLUSTER_SODIUM_CONCENTRATION_MEASUREMENT_CLUSTER \ + CHIP_PRINTCLUSTER_IAS_ZONE_CLUSTER \ + CHIP_PRINTCLUSTER_IAS_ACE_CLUSTER \ + CHIP_PRINTCLUSTER_IAS_WD_CLUSTER \ + CHIP_PRINTCLUSTER_GENERIC_TUNNEL_CLUSTER \ + CHIP_PRINTCLUSTER_BACNET_PROTOCOL_TUNNEL_CLUSTER \ + CHIP_PRINTCLUSTER_11073_PROTOCOL_TUNNEL_CLUSTER \ + CHIP_PRINTCLUSTER_ISO7816_PROTOCOL_TUNNEL_CLUSTER \ + CHIP_PRINTCLUSTER_PRICE_CLUSTER \ + CHIP_PRINTCLUSTER_DEMAND_RESPONSE_LOAD_CONTROL_CLUSTER \ + CHIP_PRINTCLUSTER_SIMPLE_METERING_CLUSTER \ + CHIP_PRINTCLUSTER_MESSAGING_CLUSTER \ + CHIP_PRINTCLUSTER_TUNNELING_CLUSTER \ + CHIP_PRINTCLUSTER_PREPAYMENT_CLUSTER \ + CHIP_PRINTCLUSTER_ENERGY_MANAGEMENT_CLUSTER \ + CHIP_PRINTCLUSTER_CALENDAR_CLUSTER \ + CHIP_PRINTCLUSTER_DEVICE_MANAGEMENT_CLUSTER \ + CHIP_PRINTCLUSTER_EVENTS_CLUSTER \ + CHIP_PRINTCLUSTER_MDU_PAIRING_CLUSTER \ + CHIP_PRINTCLUSTER_SUB_GHZ_CLUSTER \ + CHIP_PRINTCLUSTER_KEY_ESTABLISHMENT_CLUSTER \ + CHIP_PRINTCLUSTER_INFORMATION_CLUSTER \ + CHIP_PRINTCLUSTER_DATA_SHARING_CLUSTER \ + CHIP_PRINTCLUSTER_GAMING_CLUSTER \ + CHIP_PRINTCLUSTER_DATA_RATE_CONTROL_CLUSTER \ + CHIP_PRINTCLUSTER_VOICE_OVER_ZIGBEE_CLUSTER \ + CHIP_PRINTCLUSTER_CHATTING_CLUSTER \ + CHIP_PRINTCLUSTER_PAYMENT_CLUSTER \ + CHIP_PRINTCLUSTER_BILLING_CLUSTER \ + CHIP_PRINTCLUSTER_APPLIANCE_IDENTIFICATION_CLUSTER \ + CHIP_PRINTCLUSTER_METER_IDENTIFICATION_CLUSTER \ + CHIP_PRINTCLUSTER_APPLIANCE_EVENTS_AND_ALERT_CLUSTER \ + CHIP_PRINTCLUSTER_APPLIANCE_STATISTICS_CLUSTER \ + CHIP_PRINTCLUSTER_ELECTRICAL_MEASUREMENT_CLUSTER \ + CHIP_PRINTCLUSTER_DIAGNOSTICS_CLUSTER \ + CHIP_PRINTCLUSTER_ZLL_COMMISSIONING_CLUSTER \ + CHIP_PRINTCLUSTER_SAMPLE_MFG_SPECIFIC_CLUSTER \ + CHIP_PRINTCLUSTER_SAMPLE_MFG_SPECIFIC_CLUSTER_2 \ + CHIP_PRINTCLUSTER_OTA_CONFIGURATION_CLUSTER \ + CHIP_PRINTCLUSTER_MFGLIB_CLUSTER \ + CHIP_PRINTCLUSTER_SL_WWAH_CLUSTER #define MAX_CLUSTER_NAME_LENGTH 52 -#endif // SILABS_PRINT_CLUSTER diff --git a/examples/lock-app/lock-common/lock-app.zap b/examples/lock-app/lock-common/lock-app.zap new file mode 100644 index 00000000000000..8420b8f918403d --- /dev/null +++ b/examples/lock-app/lock-common/lock-app.zap @@ -0,0 +1,1472 @@ +{ + "writeTime": "Wed Nov 18 2020 11:03:31 GMT+0100 (Central European Standard Time)", + "featureLevel": 4, + "creator": "zap", + "keyValuePairs": [ + { + "key": "commandDiscovery", + "value": "1" + }, + { + "key": "defaultResponsePolicy", + "value": "always" + }, + { + "key": "manufacturerCodes", + "value": "0x1002" + } + ], + "package": [ + { + "pathRelativity": "relativeToZap", + "path": "../../../../third_party/zap/repo/zcl-builtin/silabs/zcl.json", + "version": "ZCL Test Data", + "type": "zcl-properties" + }, + { + "pathRelativity": "relativeToZap", + "path": "../../../../src/app/zap-templates/chip-templates.json", + "version": "chip-v1", + "type": "gen-templates-json" + } + ], + "endpointTypes": [ + { + "name": "Anonymous Endpoint Type", + "deviceTypeName": "CBA-onofflight", + "deviceTypeCode": "0x0100", + "deviceTypeProfileId": "0x109", + "clusters": [ + { + "name": "Basic", + "code": 0, + "mfgCode": null, + "define": "BASIC_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [], + "attributes": [ + { + "name": "cluster revision", + "code": 65533, + "mfgCode": null, + "side": "client", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "3", + "reportable": 0, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Basic", + "code": 0, + "mfgCode": null, + "define": "BASIC_CLUSTER", + "side": "server", + "enabled": 0, + "commands": [], + "attributes": [ + { + "name": "cluster revision", + "code": 65533, + "mfgCode": null, + "side": "server", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "3", + "reportable": 0, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ZCL version", + "code": 0, + "mfgCode": null, + "side": "server", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x08", + "reportable": 0, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "power source", + "code": 7, + "mfgCode": null, + "side": "server", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 0, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Power Configuration", + "code": 1, + "mfgCode": null, + "define": "POWER_CONFIG_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [], + "attributes": [ + { + "name": "cluster revision", + "code": 65533, + "mfgCode": null, + "side": "client", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "2", + "reportable": 0, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Power Configuration", + "code": 1, + "mfgCode": null, + "define": "POWER_CONFIG_CLUSTER", + "side": "server", + "enabled": 0, + "attributes": [ + { + "name": "cluster revision", + "code": 65533, + "mfgCode": null, + "side": "server", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "2", + "reportable": 0, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "battery percentage remaining", + "code": 33, + "mfgCode": null, + "side": "server", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "battery alarm state", + "code": 62, + "mfgCode": null, + "side": "server", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00000000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ], + "commands": [] + }, + { + "name": "Device Temperature Configuration", + "code": 2, + "mfgCode": null, + "define": "DEVICE_TEMP_CLUSTER", + "side": "client", + "enabled": 0, + "attributes": [ + { + "name": "cluster revision", + "code": 65533, + "mfgCode": null, + "side": "client", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0001", + "reportable": 0, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ], + "commands": [] + }, + { + "name": "Device Temperature Configuration", + "code": 2, + "mfgCode": null, + "define": "DEVICE_TEMP_CLUSTER", + "side": "server", + "enabled": 0, + "commands": [], + "attributes": [ + { + "name": "cluster revision", + "code": 65533, + "mfgCode": null, + "side": "server", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0001", + "reportable": 0, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "current temperature", + "code": 0, + "mfgCode": null, + "side": "server", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 0, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Identify", + "code": 3, + "mfgCode": null, + "define": "IDENTIFY_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [ + { + "name": "Identify", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "IdentifyQuery", + "code": 1, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + } + ], + "attributes": [ + { + "name": "cluster revision", + "code": 65533, + "mfgCode": null, + "side": "client", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "2", + "reportable": 0, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Identify", + "code": 3, + "mfgCode": null, + "define": "IDENTIFY_CLUSTER", + "side": "server", + "enabled": 0, + "commands": [ + { + "name": "IdentifyQueryResponse", + "code": 0, + "mfgCode": null, + "source": "server", + "incoming": 0, + "outgoing": 1 + } + ], + "attributes": [ + { + "name": "cluster revision", + "code": 65533, + "mfgCode": null, + "side": "server", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "2", + "reportable": 0, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "identify time", + "code": 0, + "mfgCode": null, + "side": "server", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 0, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Groups", + "code": 4, + "mfgCode": null, + "define": "GROUPS_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [ + { + "name": "AddGroup", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "ViewGroup", + "code": 1, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "GetGroupMembership", + "code": 2, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "RemoveGroup", + "code": 3, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "RemoveAllGroups", + "code": 4, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "AddGroupIfIdentifying", + "code": 5, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + } + ], + "attributes": [ + { + "name": "cluster revision", + "code": 65533, + "mfgCode": null, + "side": "client", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "3", + "reportable": 0, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Groups", + "code": 4, + "mfgCode": null, + "define": "GROUPS_CLUSTER", + "side": "server", + "enabled": 0, + "commands": [ + { + "name": "AddGroupResponse", + "code": 0, + "mfgCode": null, + "source": "server", + "incoming": 0, + "outgoing": 1 + }, + { + "name": "ViewGroupResponse", + "code": 1, + "mfgCode": null, + "source": "server", + "incoming": 0, + "outgoing": 1 + }, + { + "name": "GetGroupMembershipResponse", + "code": 2, + "mfgCode": null, + "source": "server", + "incoming": 0, + "outgoing": 1 + }, + { + "name": "RemoveGroupResponse", + "code": 3, + "mfgCode": null, + "source": "server", + "incoming": 0, + "outgoing": 1 + } + ], + "attributes": [ + { + "name": "cluster revision", + "code": 65533, + "mfgCode": null, + "side": "server", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "3", + "reportable": 0, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "name support", + "code": 0, + "mfgCode": null, + "side": "server", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 0, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Scenes", + "code": 5, + "mfgCode": null, + "define": "SCENES_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [ + { + "name": "AddScene", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "ViewScene", + "code": 1, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "RemoveScene", + "code": 2, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "RemoveAllScenes", + "code": 3, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "StoreScene", + "code": 4, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "RecallScene", + "code": 5, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "GetSceneMembership", + "code": 6, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + } + ], + "attributes": [ + { + "name": "cluster revision", + "code": 65533, + "mfgCode": null, + "side": "client", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "3", + "reportable": 0, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Scenes", + "code": 5, + "mfgCode": null, + "define": "SCENES_CLUSTER", + "side": "server", + "enabled": 0, + "commands": [ + { + "name": "AddSceneResponse", + "code": 0, + "mfgCode": null, + "source": "server", + "incoming": 0, + "outgoing": 1 + }, + { + "name": "ViewSceneResponse", + "code": 1, + "mfgCode": null, + "source": "server", + "incoming": 0, + "outgoing": 1 + }, + { + "name": "RemoveSceneResponse", + "code": 2, + "mfgCode": null, + "source": "server", + "incoming": 0, + "outgoing": 1 + }, + { + "name": "RemoveAllScenesResponse", + "code": 3, + "mfgCode": null, + "source": "server", + "incoming": 0, + "outgoing": 1 + }, + { + "name": "StoreSceneResponse", + "code": 4, + "mfgCode": null, + "source": "server", + "incoming": 0, + "outgoing": 1 + }, + { + "name": "GetSceneMembershipResponse", + "code": 6, + "mfgCode": null, + "source": "server", + "incoming": 0, + "outgoing": 1 + } + ], + "attributes": [ + { + "name": "cluster revision", + "code": 65533, + "mfgCode": null, + "side": "server", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "3", + "reportable": 0, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "scene count", + "code": 0, + "mfgCode": null, + "side": "server", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 0, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "current scene", + "code": 1, + "mfgCode": null, + "side": "server", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 0, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "current group", + "code": 2, + "mfgCode": null, + "side": "server", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 0, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "scene valid", + "code": 3, + "mfgCode": null, + "side": "server", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 0, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "name support", + "code": 4, + "mfgCode": null, + "side": "server", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 0, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "On/off", + "code": 6, + "mfgCode": null, + "define": "ON_OFF_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [ + { + "name": "Off", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "On", + "code": 1, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "Toggle", + "code": 2, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + } + ], + "attributes": [ + { + "name": "cluster revision", + "code": 65533, + "mfgCode": null, + "side": "client", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "2", + "reportable": 0, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "On/off", + "code": 6, + "mfgCode": null, + "define": "ON_OFF_CLUSTER", + "side": "server", + "enabled": 1, + "commands": [], + "attributes": [ + { + "name": "cluster revision", + "code": 65533, + "mfgCode": null, + "side": "server", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "2", + "reportable": 0, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "on/off", + "code": 0, + "mfgCode": null, + "side": "server", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Alarms", + "code": 9, + "mfgCode": null, + "define": "ALARM_CLUSTER", + "side": "client", + "enabled": 0, + "attributes": [ + { + "name": "cluster revision", + "code": 65533, + "mfgCode": null, + "side": "client", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0001", + "reportable": 0, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ], + "commands": [ + { + "name": "ResetAlarm", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "ResetAllAlarms", + "code": 1, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + } + ] + }, + { + "name": "Alarms", + "code": 9, + "mfgCode": null, + "define": "ALARM_CLUSTER", + "side": "server", + "enabled": 0, + "commands": [ + { + "name": "Alarm", + "code": 0, + "mfgCode": null, + "source": "server", + "incoming": 0, + "outgoing": 1 + } + ], + "attributes": [ + { + "name": "cluster revision", + "code": 65533, + "mfgCode": null, + "side": "server", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0001", + "reportable": 0, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Commissioning", + "code": 21, + "mfgCode": null, + "define": "COMMISSIONING_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [ + { + "name": "RestartDevice", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "ResetStartupParameters", + "code": 3, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + } + ], + "attributes": [ + { + "name": "cluster revision", + "code": 65533, + "mfgCode": null, + "side": "client", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "2", + "reportable": 0, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Commissioning", + "code": 21, + "mfgCode": null, + "define": "COMMISSIONING_CLUSTER", + "side": "server", + "enabled": 0, + "commands": [ + { + "name": "RestartDeviceResponse", + "code": 0, + "mfgCode": null, + "source": "server", + "incoming": 0, + "outgoing": 1 + }, + { + "name": "SaveStartupParametersResponse", + "code": 1, + "mfgCode": null, + "source": "server", + "incoming": 0, + "outgoing": 1 + }, + { + "name": "RestoreStartupParametersResponse", + "code": 2, + "mfgCode": null, + "source": "server", + "incoming": 0, + "outgoing": 1 + }, + { + "name": "ResetStartupParametersResponse", + "code": 3, + "mfgCode": null, + "source": "server", + "incoming": 0, + "outgoing": 1 + } + ], + "attributes": [ + { + "name": "cluster revision", + "code": 65533, + "mfgCode": null, + "side": "server", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "2", + "reportable": 0, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "short address", + "code": 0, + "mfgCode": null, + "side": "server", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0xFFFF", + "reportable": 0, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "extended pan id", + "code": 1, + "mfgCode": null, + "side": "server", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0xFFFFFFFFFFFFFFFF", + "reportable": 0, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "pan id", + "code": 2, + "mfgCode": null, + "side": "server", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0xFFFF", + "reportable": 0, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "channel mask", + "code": 3, + "mfgCode": null, + "side": "server", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x07FFF800", + "reportable": 0, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "protocol version", + "code": 4, + "mfgCode": null, + "side": "server", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x02", + "reportable": 0, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "stack profile", + "code": 5, + "mfgCode": null, + "side": "server", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x02", + "reportable": 0, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "startup control", + "code": 6, + "mfgCode": null, + "side": "server", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x03", + "reportable": 0, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "trust center address", + "code": 16, + "mfgCode": null, + "side": "server", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000000000000000", + "reportable": 0, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "network key", + "code": 18, + "mfgCode": null, + "side": "server", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00000000000000000000000000000000", + "reportable": 0, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "use insecure join", + "code": 19, + "mfgCode": null, + "side": "server", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x01", + "reportable": 0, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "preconfigured link key", + "code": 20, + "mfgCode": null, + "side": "server", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00000000000000000000000000000000", + "reportable": 0, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "network key sequence number", + "code": 21, + "mfgCode": null, + "side": "server", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 0, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "network key type", + "code": 22, + "mfgCode": null, + "side": "server", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x05", + "reportable": 0, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "network manager address", + "code": 23, + "mfgCode": null, + "side": "server", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 0, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "scan attempts", + "code": 32, + "mfgCode": null, + "side": "server", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x05", + "reportable": 0, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "time between scans", + "code": 33, + "mfgCode": null, + "side": "server", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0064", + "reportable": 0, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "rejoin interval", + "code": 34, + "mfgCode": null, + "side": "server", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x003C", + "reportable": 0, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "max rejoin interval", + "code": 35, + "mfgCode": null, + "side": "server", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0E10", + "reportable": 0, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "indirect poll rate", + "code": 48, + "mfgCode": null, + "side": "server", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 0, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "parent retry threshold", + "code": 49, + "mfgCode": null, + "side": "server", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 0, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "concentrator flag", + "code": 64, + "mfgCode": null, + "side": "server", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 0, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "concentrator radius", + "code": 65, + "mfgCode": null, + "side": "server", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0F", + "reportable": 0, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "concentrator discovery time", + "code": 66, + "mfgCode": null, + "side": "server", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 0, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Occupancy Sensing", + "code": 1030, + "mfgCode": null, + "define": "OCCUPANCY_SENSING_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [], + "attributes": [ + { + "name": "cluster revision", + "code": 65533, + "mfgCode": null, + "side": "client", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "2", + "reportable": 0, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Occupancy Sensing", + "code": 1030, + "mfgCode": null, + "define": "OCCUPANCY_SENSING_CLUSTER", + "side": "server", + "enabled": 0, + "commands": [], + "attributes": [ + { + "name": "cluster revision", + "code": 65533, + "mfgCode": null, + "side": "server", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "2", + "reportable": 0, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "occupancy", + "code": 0, + "mfgCode": null, + "side": "server", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "occupancy sensor type", + "code": 1, + "mfgCode": null, + "side": "server", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 0, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "occupancy sensor type bitmap", + "code": 2, + "mfgCode": null, + "side": "server", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 0, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + } + ] + } + ], + "endpoints": [ + { + "endpointTypeName": "Anonymous Endpoint Type", + "endpointTypeIndex": 0, + "profileId": "0x109", + "endpointId": 1, + "networkId": 1 + } + ] +} \ No newline at end of file diff --git a/examples/lock-app/nrfconnect/CMakeLists.txt b/examples/lock-app/nrfconnect/CMakeLists.txt index 7c71e34343d7ab..ff11433e73f69e 100644 --- a/examples/lock-app/nrfconnect/CMakeLists.txt +++ b/examples/lock-app/nrfconnect/CMakeLists.txt @@ -20,7 +20,8 @@ get_filename_component(CHIP_APP_SERVER ${CHIP_ROOT}/examples/common/chip-app-ser get_filename_component(NRFCONNECT_COMMON ${CHIP_ROOT}/examples/platform/nrfconnect REALPATH) get_filename_component(LOCK_COMMON ${CHIP_ROOT}/examples/lock-app/lock-common REALPATH) -list(INSERT OVERLAY_CONFIG 0 ${CHIP_ROOT}/config/nrfconnect/overlay-sample-defaults.conf) +set(CONF_FILE ${CHIP_ROOT}/config/nrfconnect/sample-defaults.conf prj.conf) +set(CHIP_OPENTHREAD_CONFIG ${NRFCONNECT_COMMON}/project_include/OpenThreadConfig.h) set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CHIP_ROOT}/config/nrfconnect/) include(nrfconnect-app) @@ -32,8 +33,8 @@ target_sources(app PRIVATE main/BoltLockManager.cpp main/main.cpp main/ZclCallbacks.cpp - ${LOCK_COMMON}/gen/call-command-handler.c - ${LOCK_COMMON}/gen/callback-stub.c + ${LOCK_COMMON}/gen/call-command-handler.cpp + ${LOCK_COMMON}/gen/callback-stub.cpp ${NRFCONNECT_COMMON}/util/LEDWidget.cpp ${NRFCONNECT_COMMON}/util/NFCWidget.cpp ${NRFCONNECT_COMMON}/util/ThreadUtil.cpp @@ -42,6 +43,8 @@ target_sources(app PRIVATE ${CHIP_APP_SERVER}/Server.cpp ${CHIP_APP_SERVER}/QRCodeUtil.cpp ${CHIP_APP_SERVER}/RendezvousServer.cpp + ${CHIP_ROOT}/src/app/reporting/reporting-default-configuration.cpp + ${CHIP_ROOT}/src/app/reporting/reporting.cpp ${CHIP_ROOT}/src/app/util/af-event.cpp ${CHIP_ROOT}/src/app/util/af-main-common.cpp ${CHIP_ROOT}/src/app/util/attribute-size.cpp diff --git a/examples/lock-app/nrfconnect/README.md b/examples/lock-app/nrfconnect/README.md index 246941b1140af5..9fbf6d893f2f76 100644 --- a/examples/lock-app/nrfconnect/README.md +++ b/examples/lock-app/nrfconnect/README.md @@ -1,277 +1,347 @@ -# CHIP nRF Connect nRF52840 Lock Example Application +# CHIP nRF Connect Lock Example Application -An example application showing the use -[CHIP](https://github.com/project-chip/connectedhomeip) on the Nordic nRF52840. +The nRF Connect Lock Example demonstrates how to remotely control a door lock +device with one basic bolt. It uses buttons to test changing the lock and device +states and LEDs to show the state of these changes. You can use this example as +a reference for creating your own application. + +The example is based on [CHIP](https://github.com/project-chip/connectedhomeip) +and the nRF Connect platform, and supports remote access and control of a +simulated door lock over a low-power, 802.15.4 Thread network. + +The example behaves as a CHIP accessory, that is a device that can be paired +into an existing CHIP network and can be controlled by this network.
-- [CHIP nRF52840 Lock Example Application](#chip-nrf52840-lock-example-application) - - [Introduction](#introduction) - - [Device UI](#device-ui) - - [Building](#building) - - [Using Docker container](#using-docker-container) - - [Using Native shell](#using-native-shell) - - [Supported nRF Connect SDK versions](#supported-nrf-connect-sdk-versions) - - [Configuring the example](#configuring-the-example) - - [Flashing and debugging](#flashing-and-debugging) - - [Accessing the command line](#accessing-the-command-line) +- [Overview](#overview) + - [Bluetooth LE advertising](#bluetooth-le-advertising) + - [Bluetooth LE rendezvous](#bluetooth-le-rendezvous) +- [Requirements](#requirements) +- [Device UI](#device-ui) +- [Setting up the environment](#setting-up-the-environment) + - [Using Docker container for setup](#using-docker-container-for-setup) + - [Using native shell for setup](#using-native-shell-for-setup) +- [Building](#building) +- [Configuring the example](#configuring-the-example) +- [Flashing and debugging](#flashing-and-debugging) +- [Testing the example](#testing-the-example)
- + + +## Overview + +This example is running on the nRF Connect platform, which is based on the +[nRF Connect SDK](https://developer.nordicsemi.com/nRF_Connect_SDK/doc/latest/nrf/index.html) +and [Zephyr RTOS](https://zephyrproject.org/). Visit CHIP's +[nRF Connect platform overview](../../../docs/guides/nrfconnect_platform_overview.md) +to read more about the platform structure and dependencies. + +The CHIP device that runs the lock application is controlled by the CHIP +controller device over the Thread protocol. By default, the CHIP device has +Thread disabled, and it should be paired with CHIP controller and get +configuration from it. Some actions required before establishing full +communication are described below. + +The example also comes with a test mode, which allows to start Thread with the +default settings by pressing button manually. However, this mode does not +guarantee that the device will be able to communicate with the CHIP controller +and other devices. + +### Bluetooth LE advertising -## Introduction +To commission the device onto a CHIP network, the device must be discoverable +over Bluetooth LE. For security reasons, you must start Bluetooth LE advertising +manually after powering up the device by pressing **Button 4**. + +### Bluetooth LE rendezvous + +In CHIP, the commissioning procedure (called rendezvous) is done over Bluetooth +LE between a CHIP device and the CHIP controller, where the controller has the +commissioner role. + +To start the rendezvous, the controller must get the commissioning information +from the CHIP device. The data payload is encoded within a QR code, printed to +the UART console, and shared using an NFC tag. + +#### Thread provisioning + +Last part of the rendezvous procedure, the provisioning operation involves +sending the Thread network credentials from the CHIP controller to the CHIP +device. As a result, device is able to join the Thread network and communicate +with other Thread devices in the network. + +
-![nrf52840 DK](../../platform/nrf528xx/doc/images/nrf52840-dk.jpg) + -The nRF52840 lock example application provides a working demonstration of a -connected door lock device, built using CHIP, and the Nordic nRF Connect. The -example supports remote access and control of a simulated door lock over a -low-power, 802.15.4 Thread network. It is capable of being paired into an -existing CHIP network along with other CHIP-enabled devices. The example targets -the -[Nordic nRF52840 DK](https://www.nordicsemi.com/Software-and-Tools/Development-Kits/nRF52840-DK) -development kit, but is readily adaptable to other nRF52840-based hardware. +## Requirements -The lock 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 Nordic -platform. +The application requires the nRF Connect SDK v1.4.0 to work correctly. -The example makes use of the CMake build system to generate the ninja build -script. The build system takes care of invoking the CHIP library build with all -necessary flags exported from the Zephyr environment. +The example supports building and running on the following devices: + +| Board name | Board platform build name | +| ----------------------------------------------------------------------------------------- | ------------------------- | +| [nRF52840 DK](https://www.nordicsemi.com/Software-and-Tools/Development-Kits/nRF52840-DK) | `nrf52840dk_nrf52840` | + +
## Device UI -The example application provides a simple UI that depicts the state of the -device and offers basic user control. This UI is implemented via the -general-purpose LEDs and buttons built in to the nRF52840 DK dev board. +This section lists the User Interface elements that you can use to control and +monitor the state of the device. All these elements can be located on the +following board picture: + +![nrf52840 DK](../../platform/nrfconnect/doc/images/nrf52840-dk.jpg) -**LED #1** shows the overall state of the device and its connectivity. Four -states are depicted: +**LED 1** shows the overall state of the device and its connectivity. The +following states are possible: -- _Short Flash On (50ms on/950ms off)_ — The device is in an +- _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 (100ms on/100ms off)_ — The device is in an - unprovisioned state and a commissioning application is connected via BLE. +- _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 network (Thread) or service + provisioned, but does not yet have full Thread network or service connectivity. -* _Solid On_ — The device is fully provisioned and has full network and - service connectivity. +- _Solid On_ — The device is fully provisioned and has full Thread + network and service connectivity. -**Button #1** can be used to initiate a OTA software update as well as to reset -the device to a default state. +**LED 2** simulates the lock bolt and shows the state of the lock. The following +states are possible: -Pressing and holding Button #1 for 6 seconds initiates a factory reset. After an -initial period of 3 seconds, all four LED will flash in unison to signal the -pending reset. Holding the button past 6 seconds will cause the device to reset -its persistent configuration and initiate a reboot. The reset action can be -cancelled by releasing the button at any point before the 6 second limit. +- _Solid On_ — The bolt is extended and the door is locked. -**LED #2** shows the state of the simulated lock bolt. When the LED is lit the -bolt is extended (i.e. door locked); when not lit, the bolt is retracted (door -unlocked). The LED will flash whenever the simulated bolt is in motion from one -position to another. +- _Off_ — The bolt is retracted and the door is unlocked. -**Button #2** can be used to change the state of the simulated bolt. This can be -used to mimick a user manually operating the lock. The button behaves as a -toggle, swapping the state every time it is pressed. +- _Rapid Even Flashing (100 ms on/100 ms off during 2 s)_ — The + simulated bolt is in motion from one position to another. -**Button #3** can be used to start Thread networking using default configuration -which was selected to match OpenThread Border Router default settings and -network credentials. +**Button 1** can be used for the following purposes: -**Button #4** can be used to start BLE advertisement, which is disabled by -default. +- _Pressed for 6 s_ — Initiates the factory reset of the device. + Releasing the button within the 6-second window cancels the factory reset + procedure. **LEDs 1-4** blink in unison when the factory reset procedure is + initiated. -The remaining two LEDs (#3 and #4) are unused. +- _Pressed for less than 3 s_ — Initiates the OTA software update + process. This feature is not currently supported. -**NFC** can be used to scan shared tag and get information about device -necessary to perform rendezvous and network provisioning operation. +**Button 2** — Pressing the button once changes the lock state to the +opposite one. -Tag can be read by bringing NFC poller e.g. smartphone supporting NFC close to -the nRF52840's NFC antenna. Moreover in the reaction on sensing field from the -smartphone CHIP device will start BLE advertisement, what is an alternative way -to trigger this from manually pressing Button 4. +**Button 3** — Pressing the button once starts the Thread networking in +the test mode using the default configuration. - +**Button 4** — Pressing the button once starts the Bluetooth LE +advertising for the predefined period of time. -## Building +**SEGGER J-Link USB port** can be used to get logs from the device or +communicate with it using the +[command line interface](../../../docs/guides/nrfconnect_examples_cli.md). + +**NFC port with antenna attached** can be used to start the +[rendezvous](#bluetooth-le-rendezvous) by providing the commissioning +information from the CHIP device in a data payload that can be shared using NFC. + +
+ +## Setting up the environment + +Before building the example, check out the CHIP repository and sync submodules +using the following command: + + $ git submodule update --init + +The example requires the nRF Connect SDK v1.4.0. You can either install it along +with the related tools directly on your system or use a Docker image that has +the tools pre-installed. -### Using Docker container +If you are a macOS user, you won't be able to use the Docker container to flash +the application onto a Nordic board due to +[certain limitations of Docker for macOS](https://docs.docker.com/docker-for-mac/faqs/#can-i-pass-through-a-usb-device-to-a-container). +Use the [native shell](#using-native-shell) for building instead. -> **Important**: -> -> Due to -> [certain limitations of Docker for MacOS](https://docs.docker.com/docker-for-mac/faqs/#can-i-pass-through-a-usb-device-to-a-container) -> it is impossible to use the Docker container to communicate with a USB device -> such as nRF 52840 DK. Therefore, MacOS users are advised to follow the -> [Using Native shell](#using-native-shell) instruction. +### Using Docker container for setup -The easiest way to get started with the example is to use nRF Connect SDK Docker -image for CHIP applications. Run the following commands to start a Docker -container: +To use the Docker container for setup, complete the following steps: + +1. If you do not have the nRF Connect SDK installed yet, create a directory for + it by running the following command: $ mkdir ~/nrfconnect - $ mkdir ~/connectedhomeip + +2. Download the latest version of the nRF Connect SDK Docker image by running + the following command: + $ docker pull nordicsemi/nrfconnect-chip - $ docker run --rm -it -v ~/nrfconnect:/var/ncs -v ~/connectedhomeip:/var/chip -v /dev/bus/usb:/dev/bus/usb --device-cgroup-rule "c 189:* rmw" nordicsemi/nrfconnect-chip -> **Note**: -> -> - `~/nrfconnect` can be replaced with an absolute path to nRF Connect SDK -> source directory in case you have it already installed. -> - Likewise, `~/connectedhomeip` can be replaced with an absolute path to -> CHIP source directory. -> - `-v /dev/bus/usb:/dev/bus/usb --device-cgroup-rule 'c 189:* rmw` -> parameters can be omitted if you're not planning to flash the example onto -> hardware. The parameters give the container access to USB devices -> connected to your computer such as the nRF52840 DK. -> - `--rm` flag can be omitted if you don't want the container to be -> auto-removed when you exit the container shell session. +3. Start Docker with the downloaded image by running the following command, + customized to your needs as described below: + + $ docker run --rm -it -e RUNAS=$(id -u) -v ~/nrfconnect:/var/ncs -v ~/connectedhomeip:/var/chip \ + -v /dev/bus/usb:/dev/bus/usb --device-cgroup-rule "c 189:* rmw" nordicsemi/nrfconnect-chip + + In this command: + + - _~/nrfconnect_ can be replaced with an absolute path to the nRF Connect + SDK source directory. + - _~/connectedhomeip_ must be replaced with an absolute path to the CHIP + source directory. + - _-v /dev/bus/usb:/dev/bus/usb --device-cgroup-rule "c 189:_ rmw"\* + parameters can be omitted if you are not planning to flash the example + onto hardware. These parameters give the container access to USB devices + connected to your computer such as the nRF52840 DK. + - _--rm_ can be omitted if you do not want the container to be + auto-removed when you exit the container shell session. + - _-e RUNAS=\$(id -u)_ is needed to start the container session as the + current user instead of root. + +4. Check out or update the nRF Connect SDK to the recommended `v1.4.0` version + by running the following command in the Docker container: + + $ setup --ncs v1.4.0 + /var/ncs repository is empty. Do you wish to check out nRF Connect SDK sources [v1.4.0]? [Y/N] y + ... + /var/chip repository is initialized, skipping... + +Now you can proceed with the [Building](#building) instruction. + +### Using native shell for setup + +To use the native shell for setup, complete the following steps: + +1. Download and install the following additional software: + + - [nRF Command Line Tools](https://www.nordicsemi.com/Software-and-Tools/Development-Tools/nRF-Command-Line-Tools) + - [GN meta-build system](https://gn.googlesource.com/gn/) -If you use the container for the first time and you don't have nRF Connect SDK -and CHIP sources downloaded yet, run `setup` command in the container to pull -the sources into directories mounted as `/var/ncs` and `/var/chip`, -respectively: +2. Depending on whether you have the nRF Connect SDK installed: - $ setup --ncs 83764f - /var/ncs repository is empty. Do you wish to check out nRF Connect SDK sources [83764f]? [Y/N] y - ... - /var/chip repository is empty. Do you wish to check out Project CHIP sources [master]? [Y/N] y - ... + - Follow the + [guide](https://developer.nordicsemi.com/nRF_Connect_SDK/doc/latest/nrf/gs_assistant.html#) + in the nRF Connect SDK documentation to install the nRF Connect SDK + v1.4.0. Since command-line tools will be used for building the example, + installing SEGGER Embedded Studio is not required. -Now you may build the example by running the commands below in the Docker -container: + - If you have an older version of the SDK installed, use the following + commands to update it to the recommended version. Replace + _nrfconnect-dir_ with the path to your nRF Connect SDK installation + directory. - $ cd /var/chip/examples/lock-app/nrfconnect - $ west build -b nrf52840dk_nrf52840 + $ cd nrfconnect-dir/nrf + $ git fetch origin + $ git checkout v1.4.0 + $ west update -If the build succeeds, the binary will be available under -`/var/chip/examples/lock-app/nrfconnect/build/zephyr/zephyr.hex`. Note that -other operations described in this document like flashing or debugging can also -be done in the container. +3. Initialize environment variables referred to by the CHIP and the nRF Connect + SDK build scripts. Replace _nrfconnect-dir_ with the path to your nRF + Connect SDK installation directory, and _toolchain-dir_ with the path to GNU + Arm Embedded Toolchain. -### Using native shell + $ source nrfconnect-dir/zephyr/zephyr-env.sh + $ export ZEPHYR_TOOLCHAIN_VARIANT=gnuarmemb + $ export GNUARMEMB_TOOLCHAIN_PATH=toolchain-dir -Before building the example, -[download the nRF Connect SDK and install all requirements](https://developer.nordicsemi.com/nRF_Connect_SDK/doc/latest/nrf/gs_installing.html). -Please read the -[Supported nRF Connect SDK versions](#supported-nrf-connect-sdk-versions) -section to learn which version to use to avoid unexpected compatibility issues. +Now you can proceed with the [Building](#building) instruction. -If you don't want to use SEGGER Embedded Studio, you may skip the part about -installing and configuring it. +
+ + -Download and install the -[nRF Command Line Tools](https://www.nordicsemi.com/Software-and-Tools/Development-Tools/nRF-Command-Line-Tools). +## Building -Download and install [GN meta-build system](https://gn.googlesource.com/gn/). +Complete the following steps, regardless of the method used for setting up the +environment: -Make sure that you source the following file: +1. Navigate to the example's directory: - $ source /zephyr/zephyr-env.sh + $ cd examples/lock-app/nrfconnect -> **Note:** -> -> Ensure that `$ZEPHYR_BASE`, `$GNUARMEMB_TOOLCHAIN_PATH`, and -> `$ZEPHYR_TOOLCHAIN_VARIANT` environment variables are set in your current -> terminal before building. `$GNUARMEMB_TOOLCHAIN_PATH` and -> `$ZEPHYR_TOOLCHAIN_VARIANT` must be set manually. +2. Run the following command to build the example, with _board-name_ replaced + with the name of the Nordic Semiconductor's board you own, for example + `nrf52840dk_nrf52840`: -After your environment is set up, you are ready to build the example. The -recommended tool for building and flashing the device is -[west](https://docs.zephyrproject.org/latest/guides/west/). + $ west build -b board-name -The following commands will build the `lock-app` example: + You only need to specify the board name on the first build. See + [Requirements](#requirements) for the names of compatible boards. - $ cd ~/connectedhomeip/examples/lock-app/nrfconnect +The output `zephyr.hex` file will be available in the `build/zephyr/` directory. - # If this is a first time build or if `build` directory was deleted - $ west build -b nrf52840dk_nrf52840 +### Removing build artifacts - # Any subsequent build - $ west build +If you're planning to build the example for a different board or make changes to +the configuration, remove all build artifacts before building. To do so, use the +following command: -After a successful build, the binary will be available under -`/build/zephyr/zephyr.hex` + $ rm -r build -### Supported nRF Connect SDK versions +### Building with release configuration -It is recommended to use the nRF Connect version which is being verified as a -part of CHIP Continuous Integration testing, which happens to be `83764f` at the -moment. You may verify that the revision is used in -[chip-build-nrf-platform](https://github.com/project-chip/connectedhomeip/blob/master/integrations/docker/images/chip-build-nrf-platform/Dockerfile) -Docker image in case of doubt. +To build the example with release configuration that disables the diagnostic +features like logs and command-line interface, run the following command: -Please refer to -[this section](https://developer.nordicsemi.com/nRF_Connect_SDK/doc/latest/nrf/gs_installing.html#updating-the-repositories) -in the user guide to learn how to update nRF Connect SDK repository. + $ west build -b board-name -- -DOVERLAY_CONFIG=third_party/connectedhomeip/config/nrfconnect/release.conf + +Remember to replace _board-name_ with the name of the Nordic Semiconductor's +board you own. + +
## Configuring the example -The Zephyr ecosystem is higly configurable and allows the user to modify many -aspects of the application. The configuration system is based on `Kconfig` and -the settings can be modified using the `menuconfig` utility. +The Zephyr ecosystem is based on Kconfig files and the settings can be modified +using the menuconfig utility. -To open the configuration menu, do the following: +To open the menuconfig utility, run the following command from the example +directory: - $ cd - # First time build - $ west build -b nrf52840dk_nrf52840 -t menuconfig + $ west build -b board-name -t menuconfig - # Any subsequent build - $ west build -t menuconfig +Remember to replace _board-name_ with the name of the Nordic Semiconductor's +board you own. - # Running menuconfig with ninja - $ cd /build - $ ninja menuconfig +Changes done with menuconfig will be lost if the `build` directory is deleted. +To make them persistent, save the configuration options in the `prj.conf` file. +For more information, see the +[Configuring nRF Connect SDK examples](../../../docs/guides/nrfconnect_examples_configuration.md) +page. -Changes done with `menuconfig` will be lost, if the `build` directory is -deleted. To make them persistent, save the configuration options in `prj.conf` -file. +
## Flashing and debugging -The example application is designed to run on the -[Nordic nRF52840 DK](https://www.nordicsemi.com/Software-and-Tools/Development-Kits/nRF52840-DK) -development kit. - -To flash the application to the device, use the `west` tool: +To flash the application to the device, use the west tool and run the following +command from the example directory: - $ cd $ west flash -If you have multiple nRF52840 DK boards connected, `west` will prompt you to -pick the correct one. +If you have multiple nRF52840 DK boards connected, west will prompt you to pick +the correct one. -To debug the application on target: +To debug the application on target, run the following command from the example +directory: - $ cd $ west debug - - -## Accessing the command line - -The application includes a command line interface with support for logs and the -OpenThread commands. - -To access it, use any serial terminal program you like, for example `minicom` or -`GNU screen`. +
-The UART interface is configured for `115200` baud rate. +## Testing the example -All OpenThread commands must be prefixed with `ot`, for example -`ot thread start`. +Check the [CLI tutorial](../../../docs/guides/nrfconnect_examples_cli.md) to +learn how to use command-line interface of the application. diff --git a/examples/lock-app/nrfconnect/main/AppTask.cpp b/examples/lock-app/nrfconnect/main/AppTask.cpp index 7b9e8b7e940a54..e4d180c0e3839c 100644 --- a/examples/lock-app/nrfconnect/main/AppTask.cpp +++ b/examples/lock-app/nrfconnect/main/AppTask.cpp @@ -387,7 +387,7 @@ void AppTask::StartBLEAdvertisementHandler(AppEvent * aEvent) if (!ConnectivityMgr().IsBLEAdvertisingEnabled()) { - ConnectivityMgr().SetBLEAdvertisingEnabled(ConnectivityManager::kCHIPoBLEServiceMode_Enabled); + ConnectivityMgr().SetBLEAdvertisingEnabled(true); LOG_INF("Enabled BLE Advertisement"); } else diff --git a/examples/lock-app/nrfconnect/main/ZclCallbacks.cpp b/examples/lock-app/nrfconnect/main/ZclCallbacks.cpp index dd7ad10d3ec4ba..7f8b2aed97d3fe 100644 --- a/examples/lock-app/nrfconnect/main/ZclCallbacks.cpp +++ b/examples/lock-app/nrfconnect/main/ZclCallbacks.cpp @@ -28,8 +28,7 @@ using namespace ::chip; -extern "C" { -void emberAfPostAttributeChangeCallback(uint8_t endpoint, EmberAfClusterId clusterId, EmberAfAttributeId attributeId, uint8_t mask, +void emberAfPostAttributeChangeCallback(EndpointId endpoint, ClusterId clusterId, AttributeId attributeId, uint8_t mask, uint16_t manufacturerCode, uint8_t type, uint8_t size, uint8_t * value) { if (clusterId != ZCL_ON_OFF_CLUSTER_ID) @@ -47,16 +46,22 @@ void emberAfPostAttributeChangeCallback(uint8_t endpoint, EmberAfClusterId clust BoltLockMgr().InitiateAction(0, *value ? BoltLockManager::LOCK_ACTION : BoltLockManager::UNLOCK_ACTION); } -/** @brief On/off Cluster Server Post Init +/** @brief OnOff Cluster Init * - * Following resolution of the On/Off state at startup for this endpoint, - * perform any additional initialization needed; e.g., synchronize hardware - * state. + * This function is called when a specific cluster is initialized. It gives the + * application an opportunity to take care of cluster initialization procedures. + * It is called exactly once for each endpoint where cluster is present. + * + * @param endpoint Ver.: always + * + * TODO Issue #3841 + * emberAfOnOffClusterInitCallback happens before the stack initialize the cluster + * attributes to the default value. + * The logic here expects something similar to the deprecated Plugins callback + * emberAfPluginOnOffClusterServerPostInitCallback. * - * @param endpoint Endpoint that is being initialized Ver.: always */ -void emberAfPluginOnOffClusterServerPostInitCallback(uint8_t endpoint) +void emberAfOnOffClusterInitCallback(EndpointId endpoint) { GetAppTask().UpdateClusterState(); } -} diff --git a/examples/lock-app/nrfconnect/prj.conf b/examples/lock-app/nrfconnect/prj.conf index 13fe44d079aafc..4c4df25d91b01c 100644 --- a/examples/lock-app/nrfconnect/prj.conf +++ b/examples/lock-app/nrfconnect/prj.conf @@ -14,7 +14,7 @@ # limitations under the License. # -# This sample uses overlay-sample-defaults.conf to set options common for all +# This sample uses sample-defaults.conf to set options common for all # samples. This file should contain only options specific for this sample # or overrides of default values. diff --git a/examples/lock-app/qpg6100/BUILD.gn b/examples/lock-app/qpg6100/BUILD.gn index 0989269b2a52c5..07e1d8e61a295c 100644 --- a/examples/lock-app/qpg6100/BUILD.gn +++ b/examples/lock-app/qpg6100/BUILD.gn @@ -22,15 +22,15 @@ assert(current_os == "freertos") qpg6100_project_dir = "${chip_root}/examples/lock-app/qpg6100" examples_plat_dir = "${chip_root}/examples/platform/qpg6100" +examples_common_dir = "${chip_root}/examples/common" qpg6100_sdk("sdk") { include_dirs = [ "${chip_root}/src/platform/qpg6100", - "${qpg6100_project_dir}/include/", - "${qpg6100_project_dir}/src/", + "${examples_plat_dir}/project_include", ] - sources = [ "${qpg6100_project_dir}/include/CHIPProjectConfig.h" ] + sources = [ "${examples_plat_dir}/project_include/CHIPProjectConfig.h" ] defines = [] if (is_debug) { @@ -49,6 +49,7 @@ qpg6100_executable("lock_app") { ":sdk", "${chip_root}/src/lib", "${chip_root}/src/setup_payload", + "${examples_common_dir}/chip-app-server:chip-app-server", # OpenThread to be enabled # https://github.com/project-chip/connectedhomeip/issues/293 @@ -64,7 +65,20 @@ qpg6100_executable("lock_app") { "${examples_plat_dir}/", ] - sources = [ "src/main.cpp" ] + sources = [ + "${examples_common_dir}/chip-app-server/QRCodeUtil.cpp", + "src/AppTask.cpp", + "src/BoltLockManager.cpp", + "src/ZclCallbacks.cpp", + "src/main.cpp", + ] + + deps = [ + "${chip_root}/examples/common/chip-app-server:chip-app-server", + "${chip_root}/examples/lock-app/lock-common", + "${chip_root}/src/lib", + "${chip_root}/src/setup_payload", + ] output_dir = root_out_dir diff --git a/examples/lock-app/qpg6100/README.md b/examples/lock-app/qpg6100/README.md index defd0ea2304c52..bcfce4ca54b3bf 100644 --- a/examples/lock-app/qpg6100/README.md +++ b/examples/lock-app/qpg6100/README.md @@ -26,18 +26,19 @@ with separate updates. Current status of implementation: +- Button and LED control - Initialization of the CHIP stack. - CHIP Logging, PlatformManager and ConfigurationManager enabled. - BLE: CHIPoBLE advertisement and connection available for provisioning +- CHIP ZCL cluster control for the Lock mechanism through CHIP tool. Pending: -- Button and LED control - Thread: Linking QPG6100 OpenThread implementation to CHIP build -- Intake CHIP ZCL cluster control for the Lock mechanism through CHIP tool. For more information on Qorvo and the platforms, please visit -[the Qorvo website](www.qorvo.com) or contact us on LPW.support@qorvo.com. +[the Qorvo website](http://www.qorvo.com) or contact us on +LPW.support@qorvo.com. ## Building diff --git a/examples/lock-app/qpg6100/include/AppConfig.h b/examples/lock-app/qpg6100/include/AppConfig.h new file mode 100644 index 00000000000000..09a65bb1b413ce --- /dev/null +++ b/examples/lock-app/qpg6100/include/AppConfig.h @@ -0,0 +1,42 @@ +/* + * + * Copyright (c) 2020 Project CHIP Authors + * All rights reserved. + * + * 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. + */ + +#ifndef APP_CONFIG_H +#define APP_CONFIG_H + +// ---- Lock Example App Config ---- + +#define APP_LOCK_BUTTON BTN_LOCK +#define APP_FUNCTION_BUTTON BTN_FUNCTION + +#define SYSTEM_STATE_LED LED_GREEN +#define LOCK_STATE_LED LED_RED + +// Time it takes in ms for the simulated actuator to move from one +// state to another. +#define ACTUATOR_MOVEMENT_PERIOS_MS 2000 + +// ---- Lock Example SWU Config ---- +#define SWU_INTERVAl_WINDOW_MIN_MS (23 * 60 * 60 * 1000) // 23 hours +#define SWU_INTERVAl_WINDOW_MAX_MS (24 * 60 * 60 * 1000) // 24 hours + +// ---- Thread Polling Config ---- +#define THREAD_ACTIVE_POLLING_INTERVAL_MS 100 +#define THREAD_INACTIVE_POLLING_INTERVAL_MS 1000 + +#endif // APP_CONFIG_H diff --git a/src/lib/support/tests/TestPersistedCounterDriver.cpp b/examples/lock-app/qpg6100/include/AppEvent.h similarity index 51% rename from src/lib/support/tests/TestPersistedCounterDriver.cpp rename to examples/lock-app/qpg6100/include/AppEvent.h index adfe0829a78d62..4acad9fc80bb71 100644 --- a/src/lib/support/tests/TestPersistedCounterDriver.cpp +++ b/examples/lock-app/qpg6100/include/AppEvent.h @@ -16,20 +16,43 @@ * limitations under the License. */ -/** - * @file - * Unit tests driver for the Chip Persisted Storage API. - * - */ - -#include "TestSupport.h" +#ifndef APP_EVENT_H +#define APP_EVENT_H -#include +struct AppEvent; +typedef void (*EventHandler)(AppEvent *); -int main(int argc, char * argv[]) +struct AppEvent { - // Generate machine-readable, comma-separated value (CSV) output. - nl_test_set_output_style(OUTPUT_CSV); + enum AppEventTypes + { + kEventType_Button = 0, + kEventType_Timer, + kEventType_Lock, + kEventType_Install, + }; + + uint16_t Type; + + union + { + struct + { + uint8_t ButtonIdx; + uint8_t Action; + } ButtonEvent; + struct + { + void * Context; + } TimerEvent; + struct + { + uint8_t Action; + int32_t Actor; + } LockEvent; + }; + + EventHandler Handler; +}; - return TestPersistedCounter(argc, argv); -} +#endif // APP_EVENT_H diff --git a/examples/lock-app/qpg6100/include/AppTask.h b/examples/lock-app/qpg6100/include/AppTask.h new file mode 100644 index 00000000000000..4d0249e209ab38 --- /dev/null +++ b/examples/lock-app/qpg6100/include/AppTask.h @@ -0,0 +1,88 @@ +/* + * + * Copyright (c) 2020 Project CHIP Authors + * All rights reserved. + * + * 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. + */ + +#ifndef APP_TASK_H +#define APP_TASK_H + +#include +#include + +#include "AppEvent.h" +#include "BoltLockManager.h" + +#include "FreeRTOS.h" +#include "timers.h" // provides FreeRTOS timer support +#include +#include + +class AppTask +{ + +public: + int StartAppTask(); + static void AppTaskMain(void * pvParameter); + + void PostLockActionRequest(int32_t aActor, BoltLockManager::Action_t aAction); + void PostEvent(const AppEvent * event); + void UpdateClusterState(); + + static void ButtonEventHandler(uint8_t btnIdx, bool btnPressed); + +private: + friend AppTask & GetAppTask(void); + + int Init(); + + static void ActionInitiated(BoltLockManager::Action_t aAction, int32_t aActor); + static void ActionCompleted(BoltLockManager::Action_t aAction); + + void CancelTimer(void); + + void DispatchEvent(AppEvent * event); + + static void FunctionTimerEventHandler(AppEvent * aEvent); + static void FunctionHandler(AppEvent * aEvent); + static void LockActionEventHandler(AppEvent * aEvent); + static void TimerEventHandler(chip::System::Layer * aLayer, void * aAppState, chip::System::Error aError); + + void StartTimer(uint32_t aTimeoutMs); + + enum Function_t + { + kFunction_NoneSelected = 0, + kFunction_SoftwareUpdate = 0, + kFunction_Joiner = 1, + kFunction_FactoryReset = 2, + + kFunction_Invalid + } Function; + + Function_t mFunction; + bool mFunctionTimerActive; + bool mSyncClusterToButtonAction; + chip::Ble::BLEEndPoint * mBLEEndPoint; + + static AppTask sAppTask; +}; + +inline AppTask & GetAppTask(void) +{ + return AppTask::sAppTask; +} + +#endif // APP_TASK_H diff --git a/examples/lock-app/qpg6100/include/BoltLockManager.h b/examples/lock-app/qpg6100/include/BoltLockManager.h new file mode 100644 index 00000000000000..20b6dbb6344cd0 --- /dev/null +++ b/examples/lock-app/qpg6100/include/BoltLockManager.h @@ -0,0 +1,86 @@ +/* + * + * Copyright (c) 2020 Project CHIP Authors + * All rights reserved. + * + * 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. + */ + +#ifndef LOCK_MANAGER_H +#define LOCK_MANAGER_H + +#include +#include + +#include "AppEvent.h" + +#include "FreeRTOS.h" +#include "timers.h" // provides FreeRTOS timer support + +class BoltLockManager +{ +public: + enum Action_t + { + LOCK_ACTION = 0, + UNLOCK_ACTION, + + INVALID_ACTION + } Action; + + enum State_t + { + kState_LockingInitiated = 0, + kState_LockingCompleted, + kState_UnlockingInitiated, + kState_UnlockingCompleted, + } State; + + int Init(); + bool IsUnlocked(); + void EnableAutoRelock(bool aOn); + void SetAutoLockDuration(uint32_t aDurationInSecs); + bool IsActionInProgress(); + bool InitiateAction(int32_t aActor, Action_t aAction); + + typedef void (*Callback_fn_initiated)(Action_t, int32_t aActor); + typedef void (*Callback_fn_completed)(Action_t); + void SetCallbacks(Callback_fn_initiated aActionInitiated_CB, Callback_fn_completed aActionCompleted_CB); + +private: + friend BoltLockManager & BoltLockMgr(void); + State_t mState; + + Callback_fn_initiated mActionInitiated_CB; + Callback_fn_completed mActionCompleted_CB; + + bool mAutoRelock; + uint32_t mAutoLockDuration; + bool mAutoLockTimerArmed; + + void CancelTimer(void); + void StartTimer(uint32_t aTimeoutMs); + + static void TimerEventHandler(TimerHandle_t xTimer); + static void AutoReLockTimerEventHandler(AppEvent * aEvent); + static void ActuatorMovementTimerEventHandler(AppEvent * aEvent); + + static BoltLockManager sLock; +}; + +inline BoltLockManager & BoltLockMgr(void) +{ + return BoltLockManager::sLock; +} + +#endif // LOCK_MANAGER_H diff --git a/examples/lock-app/qpg6100/src/AppTask.cpp b/examples/lock-app/qpg6100/src/AppTask.cpp new file mode 100644 index 00000000000000..065d2f04f0a336 --- /dev/null +++ b/examples/lock-app/qpg6100/src/AppTask.cpp @@ -0,0 +1,496 @@ +/* + * + * Copyright (c) 2020 Project CHIP Authors + * Copyright (c) 2019 Google LLC. + * All rights reserved. + * + * 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. + */ + +#include "qvCHIP.h" + +#include "AppConfig.h" +#include "AppEvent.h" +#include "AppTask.h" + +#include "QRCodeUtil.h" + +#include "Server.h" +#include "attribute-storage.h" +#include "gen/cluster-id.h" + +#include +#include + +using namespace chip::TLV; +using namespace chip::DeviceLayer; + +#include +#if CHIP_ENABLE_OPENTHREAD +#include +#include +#include +#include +#define JOINER_START_TRIGGER_TIMEOUT 1500 +#endif + +#define FACTORY_RESET_TRIGGER_TIMEOUT 3000 +#define FACTORY_RESET_CANCEL_WINDOW_TIMEOUT 3000 +#define APP_TASK_STACK_SIZE (4096) +#define APP_TASK_PRIORITY 2 +#define APP_EVENT_QUEUE_SIZE 10 + +static TaskHandle_t sAppTaskHandle; +static QueueHandle_t sAppEventQueue; + +static bool sIsThreadProvisioned = false; +static bool sIsThreadEnabled = false; +static bool sIsThreadAttached = false; +static bool sIsPairedToAccount = false; +static bool sHaveBLEConnections = false; +static bool sHaveServiceConnectivity = false; + +AppTask AppTask::sAppTask; + +int AppTask::StartAppTask() +{ + sAppEventQueue = xQueueCreate(APP_EVENT_QUEUE_SIZE, sizeof(AppEvent)); + if (sAppEventQueue == NULL) + { + ChipLogError(NotSpecified, "Failed to allocate app event queue"); + return CHIP_ERROR_NO_MEMORY; + } + + // Start App task. + if (xTaskCreate(AppTaskMain, "APP", APP_TASK_STACK_SIZE / sizeof(StackType_t), NULL, 1, &sAppTaskHandle) != pdPASS) + { + return CHIP_ERROR_NO_MEMORY; + } + + return CHIP_NO_ERROR; +} + +int AppTask::Init() +{ + CHIP_ERROR err = CHIP_NO_ERROR; + + ChipLogProgress(NotSpecified, "Current Firmware Version: %s", CHIP_DEVICE_CONFIG_DEVICE_FIRMWARE_REVISION); + + err = BoltLockMgr().Init(); + if (err != CHIP_NO_ERROR) + { + ChipLogError(NotSpecified, "BoltLockMgr().Init() failed"); + return err; + } + BoltLockMgr().SetCallbacks(ActionInitiated, ActionCompleted); + + // Subscribe with our button callback to the qvCHIP button handler. + qvCHIP_SetBtnCallback(ButtonEventHandler); + + qvCHIP_LedSet(LOCK_STATE_LED, !BoltLockMgr().IsUnlocked()); + + // Init ZCL Data Model + InitServer(); + UpdateClusterState(); + + PrintQRCode(chip::RendezvousInformationFlags::kBLE); + + return err; +} + +void AppTask::AppTaskMain(void * pvParameter) +{ + int err; + AppEvent event; + uint64_t mLastChangeTimeUS = 0; + + err = sAppTask.Init(); + if (err != CHIP_NO_ERROR) + { + ChipLogError(NotSpecified, "AppTask.Init() failed"); + // appError(err); + } + + ChipLogProgress(NotSpecified, "App Task started"); + // TODO: PR # 2939 - OT support + // SetDeviceName("QPG6100LockDemo._chip._udp.local."); + + while (true) + { + BaseType_t eventReceived = xQueueReceive(sAppEventQueue, &event, pdMS_TO_TICKS(10)); + while (eventReceived == pdTRUE) + { + sAppTask.DispatchEvent(&event); + eventReceived = xQueueReceive(sAppEventQueue, &event, 0); + } + + // Collect connectivity and configuration state from the CHIP stack. Because + // the CHIP event loop is being run in a separate task, the stack must be + // locked while these values are queried. However we use a non-blocking + // lock request (TryLockCHIPStack()) to avoid blocking other UI activities + // when the CHIP task is busy (e.g. with a long crypto operation). + if (PlatformMgr().TryLockChipStack()) + { + sIsThreadProvisioned = ConnectivityMgr().IsThreadProvisioned(); + sIsThreadEnabled = ConnectivityMgr().IsThreadEnabled(); + sIsThreadAttached = ConnectivityMgr().IsThreadAttached(); + sHaveBLEConnections = (ConnectivityMgr().NumBLEConnections() != 0); + sHaveServiceConnectivity = ConnectivityMgr().HaveServiceConnectivity(); + PlatformMgr().UnlockChipStack(); + } + + // Update the status LED if factory reset has not been initiated. + // + // If system has "full connectivity", keep the LED On constantly. + // + // If thread and service provisioned, but not attached to the thread network + // yet OR no connectivity to the service OR subscriptions are not fully + // established THEN blink the LED Off for a short period of time. + // + // If the system has ble connection(s) uptill the stage above, THEN blink + // the LEDs at an even rate of 100ms. + // + // Otherwise, blink the LED ON for a very short time. + if (sAppTask.mFunction != kFunction_FactoryReset) + { + // Consider the system to be "fully connected" if it has service + // connectivity + if (sHaveServiceConnectivity) + { + qvCHIP_LedSet(SYSTEM_STATE_LED, true); + } + else if (sIsThreadProvisioned && sIsThreadEnabled && sIsPairedToAccount && + (!sIsThreadAttached || !sHaveServiceConnectivity)) + { + qvCHIP_LedBlink(SYSTEM_STATE_LED, 950, 50); + } + else if (sHaveBLEConnections) + { + qvCHIP_LedBlink(SYSTEM_STATE_LED, 100, 100); + } + else + { + qvCHIP_LedBlink(SYSTEM_STATE_LED, 50, 950); + } + } + + uint64_t nowUS = chip::System::Layer::GetClock_Monotonic(); + uint64_t nextChangeTimeUS = mLastChangeTimeUS + 5 * 1000 * 1000UL; + + if (nowUS > nextChangeTimeUS) + { + // TODO: PR # 2939 - OT support + /* + PublishService(); + */ + mLastChangeTimeUS = nowUS; + } + } +} + +void AppTask::LockActionEventHandler(AppEvent * aEvent) +{ + bool initiated = false; + BoltLockManager::Action_t action; + int32_t actor; + int err = CHIP_NO_ERROR; + + if (aEvent->Type == AppEvent::kEventType_Lock) + { + action = static_cast(aEvent->LockEvent.Action); + actor = aEvent->LockEvent.Actor; + } + else if (aEvent->Type == AppEvent::kEventType_Button) + { + if (BoltLockMgr().IsUnlocked()) + { + action = BoltLockManager::LOCK_ACTION; + } + else + { + action = BoltLockManager::UNLOCK_ACTION; + } + actor = AppEvent::kEventType_Button; + } + else + { + err = CHIP_ERROR_MAX; + } + + if (err == CHIP_NO_ERROR) + { + initiated = BoltLockMgr().InitiateAction(actor, action); + + if (!initiated) + { + ChipLogProgress(NotSpecified, "Action is already in progress or active."); + } + } +} + +void AppTask::ButtonEventHandler(uint8_t btnIdx, bool btnPressed) +{ + if (btnIdx != APP_LOCK_BUTTON && btnIdx != APP_FUNCTION_BUTTON) + { + return; + } + + AppEvent button_event = {}; + button_event.Type = AppEvent::kEventType_Button; + button_event.ButtonEvent.ButtonIdx = btnIdx; + button_event.ButtonEvent.Action = btnPressed; + + if (btnIdx == APP_LOCK_BUTTON && btnPressed == true) + { + button_event.Handler = LockActionEventHandler; + sAppTask.PostEvent(&button_event); + } + else if (btnIdx == APP_FUNCTION_BUTTON) + { + button_event.Handler = FunctionHandler; + sAppTask.PostEvent(&button_event); + } +} + +void AppTask::TimerEventHandler(chip::System::Layer * aLayer, void * aAppState, chip::System::Error aError) +{ + AppEvent event; + event.Type = AppEvent::kEventType_Timer; + event.TimerEvent.Context = aAppState; + event.Handler = FunctionTimerEventHandler; + sAppTask.PostEvent(&event); +} + +void AppTask::FunctionTimerEventHandler(AppEvent * aEvent) +{ + if (aEvent->Type != AppEvent::kEventType_Timer) + { + return; + } + + // If we reached here, the button was held past FACTORY_RESET_TRIGGER_TIMEOUT, + // initiate factory reset + if (sAppTask.mFunctionTimerActive && sAppTask.mFunction == kFunction_SoftwareUpdate) + { +#if CHIP_ENABLE_OPENTHREAD + ChipLogProgress(NotSpecified, "Release button now to Start Thread Joiner"); + ChipLogProgress(NotSpecified, "Hold to trigger Factory Reset"); + sAppTask.mFunction = kFunction_Joiner; + sAppTask.StartTimer(FACTORY_RESET_TRIGGER_TIMEOUT); + } + else if (sAppTask.mFunctionTimerActive && sAppTask.mFunction == kFunction_Joiner) + { +#endif + ChipLogProgress(NotSpecified, "Factory Reset Triggered. Release button within %ums to cancel.", + FACTORY_RESET_CANCEL_WINDOW_TIMEOUT); + + // Start timer for FACTORY_RESET_CANCEL_WINDOW_TIMEOUT to allow user to + // cancel, if required. + sAppTask.StartTimer(FACTORY_RESET_CANCEL_WINDOW_TIMEOUT); + + sAppTask.mFunction = kFunction_FactoryReset; + + // Turn off all LEDs before starting blink to make sure blink is + // co-ordinated. + qvCHIP_LedSet(SYSTEM_STATE_LED, false); + qvCHIP_LedSet(LOCK_STATE_LED, false); + + qvCHIP_LedBlink(SYSTEM_STATE_LED, 500, 500); + qvCHIP_LedBlink(LOCK_STATE_LED, 500, 500); + } + else if (sAppTask.mFunctionTimerActive && sAppTask.mFunction == kFunction_FactoryReset) + { + // Actually trigger Factory Reset + sAppTask.mFunction = kFunction_NoneSelected; + ConfigurationMgr().InitiateFactoryReset(); + } +} + +void AppTask::FunctionHandler(AppEvent * aEvent) +{ + if (aEvent->ButtonEvent.ButtonIdx != APP_FUNCTION_BUTTON) + { + return; + } + + // To trigger software update: press the APP_FUNCTION_BUTTON button briefly (< + // FACTORY_RESET_TRIGGER_TIMEOUT) To initiate factory reset: press the + // APP_FUNCTION_BUTTON for FACTORY_RESET_TRIGGER_TIMEOUT + + // FACTORY_RESET_CANCEL_WINDOW_TIMEOUT All LEDs start blinking after + // FACTORY_RESET_TRIGGER_TIMEOUT to signal factory reset has been initiated. + // To cancel factory reset: release the APP_FUNCTION_BUTTON once all LEDs + // start blinking within the FACTORY_RESET_CANCEL_WINDOW_TIMEOUT + if (aEvent->ButtonEvent.Action == true) + { + if (!sAppTask.mFunctionTimerActive && sAppTask.mFunction == kFunction_NoneSelected) + { +#if CHIP_ENABLE_OPENTHREAD + sAppTask.StartTimer(JOINER_START_TRIGGER_TIMEOUT); +#else + sAppTask.StartTimer(FACTORY_RESET_TRIGGER_TIMEOUT); +#endif + + sAppTask.mFunction = kFunction_SoftwareUpdate; + } + } + else + { + // If the button was released before factory reset got initiated, trigger a + // software update. + if (sAppTask.mFunctionTimerActive && sAppTask.mFunction == kFunction_SoftwareUpdate) + { + sAppTask.CancelTimer(); + + sAppTask.mFunction = kFunction_NoneSelected; + + ChipLogError(NotSpecified, "Software Update currently not supported."); + } +#if CHIP_ENABLE_OPENTHREAD + else if (sAppTask.mFunctionTimerActive && sAppTask.mFunction == kFunction_Joiner) + { + sAppTask.CancelTimer(); + sAppTask.mFunction = kFunction_NoneSelected; + + CHIP_ERROR error = ThreadStackMgr().JoinerStart(); + ChipLogProgress(NotSpecified, "Thread joiner triggered: %s", chip::ErrorStr(error)); + } +#endif + else if (sAppTask.mFunctionTimerActive && sAppTask.mFunction == kFunction_FactoryReset) + { + // Set lock status LED back to show state of lock. + qvCHIP_LedSet(LOCK_STATE_LED, !BoltLockMgr().IsUnlocked()); + + sAppTask.CancelTimer(); + + // Change the function to none selected since factory reset has been + // canceled. + sAppTask.mFunction = kFunction_NoneSelected; + + ChipLogProgress(NotSpecified, "Factory Reset has been Canceled"); + } + } +} + +void AppTask::CancelTimer() +{ + SystemLayer.CancelTimer(TimerEventHandler, this); + mFunctionTimerActive = false; +} + +void AppTask::StartTimer(uint32_t aTimeoutInMs) +{ + CHIP_ERROR err; + + SystemLayer.CancelTimer(TimerEventHandler, this); + err = SystemLayer.StartTimer(aTimeoutInMs, TimerEventHandler, this); + SuccessOrExit(err); + + mFunctionTimerActive = true; +exit: + if (err != CHIP_NO_ERROR) + { + ChipLogError(NotSpecified, "StartTimer failed %s: ", chip::ErrorStr(err)); + } +} + +void AppTask::ActionInitiated(BoltLockManager::Action_t aAction, int32_t aActor) +{ + // If the action has been initiated by the lock, update the bolt lock trait + // and start flashing the LEDs rapidly to indicate action initiation. + if (aAction == BoltLockManager::LOCK_ACTION) + { + ChipLogProgress(NotSpecified, "Lock Action has been initiated"); + } + else if (aAction == BoltLockManager::UNLOCK_ACTION) + { + ChipLogProgress(NotSpecified, "Unlock Action has been initiated"); + } + + if (aActor == AppEvent::kEventType_Button) + { + sAppTask.mSyncClusterToButtonAction = true; + } + + qvCHIP_LedBlink(LOCK_STATE_LED, 50, 50); +} + +void AppTask::ActionCompleted(BoltLockManager::Action_t aAction) +{ + // if the action has been completed by the lock, update the bolt lock trait. + // Turn on the lock LED if in a LOCKED state OR + // Turn off the lock LED if in an UNLOCKED state. + if (aAction == BoltLockManager::LOCK_ACTION) + { + ChipLogProgress(NotSpecified, "Lock Action has been completed"); + + qvCHIP_LedSet(LOCK_STATE_LED, true); + } + else if (aAction == BoltLockManager::UNLOCK_ACTION) + { + ChipLogProgress(NotSpecified, "Unlock Action has been completed"); + + qvCHIP_LedSet(LOCK_STATE_LED, false); + } + + if (sAppTask.mSyncClusterToButtonAction) + { + sAppTask.UpdateClusterState(); + sAppTask.mSyncClusterToButtonAction = false; + } +} + +void AppTask::PostLockActionRequest(int32_t aActor, BoltLockManager::Action_t aAction) +{ + AppEvent event; + event.Type = AppEvent::kEventType_Lock; + event.LockEvent.Actor = aActor; + event.LockEvent.Action = aAction; + event.Handler = LockActionEventHandler; + PostEvent(&event); +} + +void AppTask::PostEvent(const AppEvent * aEvent) +{ + if (sAppEventQueue != NULL) + { + if (!xQueueSend(sAppEventQueue, aEvent, 1)) + { + ChipLogError(NotSpecified, "Failed to post event to app task event queue"); + } + } +} + +void AppTask::DispatchEvent(AppEvent * aEvent) +{ + if (aEvent->Handler) + { + aEvent->Handler(aEvent); + } + else + { + ChipLogError(NotSpecified, "Event received with no handler. Dropping event."); + } +} + +void AppTask::UpdateClusterState(void) +{ + uint8_t newValue = !BoltLockMgr().IsUnlocked(); + + // write the new on/off value + EmberAfStatus status = emberAfWriteAttribute(1, ZCL_ON_OFF_CLUSTER_ID, ZCL_ON_OFF_ATTRIBUTE_ID, CLUSTER_MASK_SERVER, + (uint8_t *) &newValue, ZCL_BOOLEAN_ATTRIBUTE_TYPE); + if (status != EMBER_ZCL_STATUS_SUCCESS) + { + ChipLogError(NotSpecified, "ERR: updating on/off %x", status); + } +} diff --git a/examples/lock-app/qpg6100/src/BoltLockManager.cpp b/examples/lock-app/qpg6100/src/BoltLockManager.cpp new file mode 100644 index 00000000000000..888355bfdce197 --- /dev/null +++ b/examples/lock-app/qpg6100/src/BoltLockManager.cpp @@ -0,0 +1,226 @@ +/* + * + * Copyright (c) 2020 Project CHIP Authors + * Copyright (c) 2019 Google LLC. + * All rights reserved. + * + * 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. + */ + +#include "BoltLockManager.h" + +#include "AppConfig.h" +#include "AppTask.h" +#include + +BoltLockManager BoltLockManager::sLock; + +TimerHandle_t sLockTimer; + +int BoltLockManager::Init() +{ + // Create FreeRTOS sw timer for lock timer. + sLockTimer = xTimerCreate("lockTmr", // Just a text name, not used by the RTOS kernel + 1, // == default timer period (mS) + false, // no timer reload (==one-shot) + (void *) this, // init timer id = lock obj context + TimerEventHandler // timer callback handler + ); + + if (sLockTimer == NULL) + { + ChipLogProgress(NotSpecified, "sLockTimer timer create failed"); + // TODO: + // appError(CHIP_ERROR_MAX); + } + + mState = kState_LockingCompleted; + mAutoLockTimerArmed = false; + mAutoRelock = false; + mAutoLockDuration = 0; + + return CHIP_NO_ERROR; +} + +void BoltLockManager::SetCallbacks(Callback_fn_initiated aActionInitiated_CB, Callback_fn_completed aActionCompleted_CB) +{ + mActionInitiated_CB = aActionInitiated_CB; + mActionCompleted_CB = aActionCompleted_CB; +} + +bool BoltLockManager::IsActionInProgress() +{ + return (mState == kState_LockingInitiated || mState == kState_UnlockingInitiated); +} + +bool BoltLockManager::IsUnlocked() +{ + return (mState == kState_UnlockingCompleted); +} + +void BoltLockManager::EnableAutoRelock(bool aOn) +{ + mAutoRelock = aOn; +} + +void BoltLockManager::SetAutoLockDuration(uint32_t aDurationInSecs) +{ + mAutoLockDuration = aDurationInSecs; +} + +bool BoltLockManager::InitiateAction(int32_t aActor, Action_t aAction) +{ + bool action_initiated = false; + State_t new_state; + + // Initiate Lock/Unlock Action only when the previous one is complete. + if (mState == kState_LockingCompleted && aAction == UNLOCK_ACTION) + { + action_initiated = true; + + new_state = kState_UnlockingInitiated; + } + else if (mState == kState_UnlockingCompleted && aAction == LOCK_ACTION) + { + action_initiated = true; + + new_state = kState_LockingInitiated; + } + + if (action_initiated) + { + if (mAutoLockTimerArmed && new_state == kState_LockingInitiated) + { + // If auto lock timer has been armed and someone initiates locking, + // cancel the timer and continue as normal. + mAutoLockTimerArmed = false; + + CancelTimer(); + } + + StartTimer(ACTUATOR_MOVEMENT_PERIOS_MS); + + // Since the timer started successfully, update the state and trigger callback + mState = new_state; + + if (mActionInitiated_CB) + { + mActionInitiated_CB(aAction, aActor); + } + } + + return action_initiated; +} + +void BoltLockManager::StartTimer(uint32_t aTimeoutMs) +{ + if (xTimerIsTimerActive(sLockTimer)) + { + ChipLogError(NotSpecified, "app timer already started!"); + CancelTimer(); + } + + // timer is not active, change its period to required value (== restart). + // FreeRTOS- Block for a maximum of 100 ticks if the change period command + // cannot immediately be sent to the timer command queue. + if (xTimerChangePeriod(sLockTimer, (aTimeoutMs / portTICK_PERIOD_MS), 100) != pdPASS) + { + ChipLogError(NotSpecified, "sLockTimer timer start() failed"); + // appError(CHIP_ERROR_MAX); + } +} + +void BoltLockManager::CancelTimer(void) +{ + if (xTimerStop(sLockTimer, 0) == pdFAIL) + { + ChipLogError(NotSpecified, "Lock timer timer stop() failed"); + // appError(CHIP_ERROR_MAX); + } +} + +void BoltLockManager::TimerEventHandler(TimerHandle_t xTimer) +{ + // Get lock obj context from timer id. + BoltLockManager * lock = static_cast(pvTimerGetTimerID(xTimer)); + + // The timer event handler will be called in the context of the timer task + // once sLockTimer expires. Post an event to apptask queue with the actual handler + // so that the event can be handled in the context of the apptask. + AppEvent event; + event.Type = AppEvent::kEventType_Timer; + event.TimerEvent.Context = lock; + if (lock->mAutoLockTimerArmed) + { + event.Handler = AutoReLockTimerEventHandler; + } + else + { + event.Handler = ActuatorMovementTimerEventHandler; + } + GetAppTask().PostEvent(&event); +} + +void BoltLockManager::AutoReLockTimerEventHandler(AppEvent * aEvent) +{ + BoltLockManager * lock = static_cast(aEvent->TimerEvent.Context); + int32_t actor = 0; + + // Make sure auto lock timer is still armed. + if (!lock->mAutoLockTimerArmed) + { + return; + } + + lock->mAutoLockTimerArmed = false; + + ChipLogProgress(NotSpecified, "Auto Re-Lock has been triggered!"); + + lock->InitiateAction(actor, LOCK_ACTION); +} + +void BoltLockManager::ActuatorMovementTimerEventHandler(AppEvent * aEvent) +{ + Action_t actionCompleted = INVALID_ACTION; + + BoltLockManager * lock = static_cast(aEvent->TimerEvent.Context); + + if (lock->mState == kState_LockingInitiated) + { + lock->mState = kState_LockingCompleted; + actionCompleted = LOCK_ACTION; + } + else if (lock->mState == kState_UnlockingInitiated) + { + lock->mState = kState_UnlockingCompleted; + actionCompleted = UNLOCK_ACTION; + } + + if (actionCompleted != INVALID_ACTION) + { + if (lock->mActionCompleted_CB) + { + lock->mActionCompleted_CB(actionCompleted); + } + + if (lock->mAutoRelock && actionCompleted == UNLOCK_ACTION) + { + // Start the timer for auto relock + lock->StartTimer(lock->mAutoLockDuration * 1000); + + lock->mAutoLockTimerArmed = true; + + ChipLogProgress(NotSpecified, "Auto Re-lock enabled. Will be triggered in %u seconds", lock->mAutoLockDuration); + } + } +} diff --git a/examples/lock-app/qpg6100/src/ZclCallbacks.cpp b/examples/lock-app/qpg6100/src/ZclCallbacks.cpp new file mode 100644 index 00000000000000..b2271dae35dab1 --- /dev/null +++ b/examples/lock-app/qpg6100/src/ZclCallbacks.cpp @@ -0,0 +1,76 @@ +/* + * + * Copyright (c) 2020 Project CHIP Authors + * All rights reserved. + * + * 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. + */ + +#include + +#include "AppTask.h" +#include "BoltLockManager.h" + +#include "gen/attribute-id.h" +#include "gen/cluster-id.h" +#include +#include +#include +#include + +using namespace ::chip; + +void emberAfPostAttributeChangeCallback(EndpointId endpoint, ClusterId clusterId, AttributeId attributeId, uint8_t mask, + uint16_t manufacturerCode, uint8_t type, uint8_t size, uint8_t * value) +{ + if (clusterId != ZCL_ON_OFF_CLUSTER_ID) + { + ChipLogProgress(Zcl, "Unknown cluster ID: %d", clusterId); + return; + } + + if (attributeId != ZCL_ON_OFF_ATTRIBUTE_ID) + { + ChipLogProgress(Zcl, "Unknown attribute ID: %d", attributeId); + return; + } + + if (*value) + { + BoltLockMgr().InitiateAction(0, BoltLockManager::LOCK_ACTION); + } + else + { + BoltLockMgr().InitiateAction(0, BoltLockManager::UNLOCK_ACTION); + } +} + +/** @brief OnOff Cluster Init + * + * This function is called when a specific cluster is initialized. It gives the + * application an opportunity to take care of cluster initialization procedures. + * It is called exactly once for each endpoint where cluster is present. + * + * @param endpoint Ver.: always + * + * TODO Issue #3841 + * emberAfOnOffClusterInitCallback happens before the stack initialize the cluster + * attributes to the default value. + * The logic here expects something similar to the deprecated Plugins callback + * emberAfPluginOnOffClusterServerPostInitCallback. + * + */ +void emberAfOnOffClusterInitCallback(EndpointId endpoint) +{ + GetAppTask().UpdateClusterState(); +} diff --git a/examples/lock-app/qpg6100/src/main.cpp b/examples/lock-app/qpg6100/src/main.cpp index b1e6953494b455..ea78c9518be6d9 100644 --- a/examples/lock-app/qpg6100/src/main.cpp +++ b/examples/lock-app/qpg6100/src/main.cpp @@ -53,8 +53,7 @@ * Includes Definitions *****************************************************************************/ -#define GP_COMPONENT_ID GP_COMPONENT_ID_APP - +// FreeRTOS #include "FreeRTOS.h" #include "task.h" @@ -65,6 +64,9 @@ #include #include +// Application level logic +#include "AppTask.h" + using namespace ::chip; using namespace ::chip::Inet; using namespace ::chip::DeviceLayer; @@ -86,11 +88,20 @@ using namespace ::chip::DeviceLayer::Internal; int Application_Init(void) { + int ret = CHIP_ERROR_MAX; + /* Launch application task */ ChipLogProgress(NotSpecified, "============================"); ChipLogProgress(NotSpecified, "Qorvo " APP_NAME " Launching"); ChipLogProgress(NotSpecified, "============================"); + ret = GetAppTask().StartAppTask(); + if (ret != CHIP_NO_ERROR) + { + ChipLogError(NotSpecified, "GetAppTask().Init() failed"); + return -1; + } + return 0; } diff --git a/examples/minimal-mdns/.gn b/examples/minimal-mdns/.gn new file mode 100644 index 00000000000000..c3cfa5fd40318d --- /dev/null +++ b/examples/minimal-mdns/.gn @@ -0,0 +1,23 @@ +# 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. + +# The location of the build configuration file. +buildconfig = "//build/config/BUILDCONFIG.gn" + +# CHIP uses angle bracket includes. +check_system_includes = true + +default_args = { + import("//args.gni") +} diff --git a/examples/minimal-mdns/AllInterfaceListener.h b/examples/minimal-mdns/AllInterfaceListener.h new file mode 100644 index 00000000000000..fa87c3889a0b07 --- /dev/null +++ b/examples/minimal-mdns/AllInterfaceListener.h @@ -0,0 +1,116 @@ +/* + * + * 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. + */ + +#include + +namespace MdnsExample { + +/// Returns +/// - NULL interface for IPv4 +/// - all interfaces for IPv6 +class AllInterfaces : public mdns::Minimal::ListenIterator +{ +public: + AllInterfaces(bool enableIpV4) : mState(enableIpV4 ? State::kIpV4 : State::kIpV6) + { + if (!enableIpV4) + { + SkipToFirstValidInterface(); + } + } + + bool Next(chip::Inet::InterfaceId * id, chip::Inet::IPAddressType * type) override + { + if (mState == State::kIpV4) + { + *id = INET_NULL_INTERFACEID; + *type = chip::Inet::kIPAddressType_IPv4; + mState = State::kIpV6; + + SkipToFirstValidInterface(); + + return true; + } + + if (!mIterator.HasCurrent()) + { + return false; + } + + *id = mIterator.GetInterfaceId(); + *type = chip::Inet::kIPAddressType_IPv6; + + for (mIterator.Next(); SkipCurrentInterface(); mIterator.Next()) + { + } + return true; + } + +private: + enum class State + { + kIpV4, + kIpV6, + }; + State mState; + chip::Inet::InterfaceIterator mIterator; + + void SkipToFirstValidInterface() + { + if (SkipCurrentInterface()) + { + while (mIterator.Next()) + { + if (!SkipCurrentInterface()) + { + break; + } + } + } + } + + bool SkipCurrentInterface() + { + if (!mIterator.HasCurrent()) + { + return false; // nothing to try. + } + + if (!mIterator.IsUp() || !mIterator.SupportsMulticast()) + { + return true; // not a usable interface + } + char name[64]; + if (!mIterator.GetInterfaceName(name, sizeof(name)) == CHIP_NO_ERROR) + { + printf("!!!! FAILED TO GET INTERFACE NAME\n"); + return true; + } + + if (strncmp(name, "lo", 2) == 0) + { + printf("Skipping interface '%s' (assume local loopback)\n", name); + return true; + } + + printf("Usable interface: %s (%d)\n", name, static_cast(mIterator.GetInterfaceId())); + + return false; + } +}; + +} // namespace MdnsExample diff --git a/examples/minimal-mdns/BUILD.gn b/examples/minimal-mdns/BUILD.gn new file mode 100644 index 00000000000000..e37aea77d78708 --- /dev/null +++ b/examples/minimal-mdns/BUILD.gn @@ -0,0 +1,59 @@ +# 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. + +import("//build_overrides/chip.gni") + +import("${chip_root}/build/chip/tools.gni") + +static_library("minimal-mdns-example-common") { + sources = [ + "AllInterfaceListener.h", + "PacketReporter.cpp", + "PacketReporter.h", + ] + + public_deps = [ + "${chip_root}/src/lib", + "${chip_root}/src/lib/mdns/minimal", + ] +} + +executable("minimal-mdns-client") { + sources = [ "client.cpp" ] + + cflags = [ "-Wconversion" ] + + public_deps = [ + ":minimal-mdns-example-common", + "${chip_root}/src/lib", + "${chip_root}/src/lib/mdns/minimal", + ] + + output_dir = root_out_dir +} + +executable("minimal-mdns-server") { + sources = [ "server.cpp" ] + + cflags = [ "-Wconversion" ] + + public_deps = [ + ":minimal-mdns-example-common", + "${chip_root}/src/lib", + "${chip_root}/src/lib/mdns/minimal", + "${chip_root}/src/lib/mdns/minimal/responders", + ] + + output_dir = root_out_dir +} diff --git a/examples/minimal-mdns/PacketReporter.cpp b/examples/minimal-mdns/PacketReporter.cpp new file mode 100644 index 00000000000000..74e1c2d77357a5 --- /dev/null +++ b/examples/minimal-mdns/PacketReporter.cpp @@ -0,0 +1,218 @@ +/* + * + * 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. + */ + +#include "PacketReporter.h" + +#include +#include + +#include + +namespace MdnsExample { + +namespace { + +const char * ToString(mdns::Minimal::QType qtype) +{ + static char buff[32]; + + switch (qtype) + { + case mdns::Minimal::QType::A: + return "A"; + case mdns::Minimal::QType::NS: + return "NS"; + case mdns::Minimal::QType::CNAME: + return "CNAME"; + case mdns::Minimal::QType::SOA: + return "SOA"; + case mdns::Minimal::QType::WKS: + return "WKS"; + case mdns::Minimal::QType::PTR: + return "PTR"; + case mdns::Minimal::QType::MX: + return "MX"; + case mdns::Minimal::QType::SRV: + return "SRV"; + case mdns::Minimal::QType::AAAA: + return "AAAA"; + case mdns::Minimal::QType::ANY: + return "ANY"; + case mdns::Minimal::QType::TXT: + return "TXT"; + default: + sprintf(buff, "UNKNOWN (%d)!!", static_cast(qtype)); + return buff; + } +} + +const char * ToString(mdns::Minimal::QClass qclass) +{ + static char buff[32]; + + switch (qclass) + { + case mdns::Minimal::QClass::IN_UNICAST: + return "IN(UNICAST)"; + case mdns::Minimal::QClass::IN: + return "IN"; + default: + sprintf(buff, "UNKNOWN (%d)!!", static_cast(qclass)); + return buff; + } +} + +const char * ToString(mdns::Minimal::ResourceType type) +{ + static char buff[32]; + + switch (type) + { + case mdns::Minimal::ResourceType::kAnswer: + return "ANSWER"; + case mdns::Minimal::ResourceType::kAdditional: + return "ADDITIONAL"; + case mdns::Minimal::ResourceType::kAuthority: + return "AUTHORITY"; + default: + sprintf(buff, "UNKNOWN (%d)!!", static_cast(type)); + return buff; + } +} + +class TxtReport : public mdns::Minimal::TxtRecordDelegate +{ +public: + TxtReport(const char * prefix) : mPrefix(prefix) {} + + void OnRecord(const mdns::Minimal::BytesRange & name, const mdns::Minimal::BytesRange & value) override + { + std::string sname(reinterpret_cast(name.Start()), name.Size()); + std::string svalue(reinterpret_cast(value.Start()), value.Size()); + + printf("%s TXT: '%s' = '%s'\n", mPrefix, sname.c_str(), svalue.c_str()); + } + +private: + const char * mPrefix; +}; + +void PrintQName(mdns::Minimal::SerializedQNameIterator it) +{ + while (it.Next()) + { + printf("%s.", it.Value()); + } + if (!it.IsValid()) + { + printf(" (INVALID!)"); + } + printf("\n"); +} + +} // namespace + +void PacketReporter::OnHeader(mdns::Minimal::ConstHeaderRef & header) +{ + printf("%s%s %d (%d, %d, %d, %d):\n", mPrefix, header.GetFlags().IsQuery() ? "QUERY" : "REPLY", header.GetMessageId(), + header.GetQueryCount(), header.GetAnswerCount(), header.GetAuthorityCount(), header.GetAdditionalCount()); +} + +void PacketReporter::OnQuery(const mdns::Minimal::QueryData & data) +{ + printf("%s QUERY %s/%s%s: ", mPrefix, ToString(data.GetType()), ToString(data.GetClass()), + data.RequestedUnicastAnswer() ? " UNICAST" : ""); + PrintQName(data.GetName()); +} + +void PacketReporter::OnResource(mdns::Minimal::ResourceType type, const mdns::Minimal::ResourceData & data) +{ + printf("%s %s %s/%s ttl %ld: ", mPrefix, ToString(type), ToString(data.GetType()), ToString(data.GetClass()), + static_cast(data.GetTtlSeconds())); + PrintQName(data.GetName()); + + if (data.GetType() == mdns::Minimal::QType::TXT) + { + TxtReport txtReport(mPrefix); + if (!mdns::Minimal::ParseTxtRecord(data.GetData(), &txtReport)) + { + printf("FAILED TO PARSE TXT RECORD\n"); + } + } + else if (data.GetType() == mdns::Minimal::QType::SRV) + { + mdns::Minimal::SrvRecord srv; + + if (!srv.Parse(data.GetData(), mPacketRange)) + { + printf("Failed to parse SRV record!!!!"); + } + else + { + printf("%s SRV on port %d, priority %d, weight %d: ", mPrefix, srv.GetPort(), srv.GetPriority(), srv.GetWeight()); + PrintQName(srv.GetName()); + } + } + else if (data.GetType() == mdns::Minimal::QType::A) + { + chip::Inet::IPAddress addr; + + if (!mdns::Minimal::ParseARecord(data.GetData(), &addr)) + { + printf("FAILED TO PARSE A RECORD\n"); + } + else + { + char buff[128]; + printf("%s IP: %s\n", mPrefix, addr.ToString(buff, sizeof(buff))); + } + } + else if (data.GetType() == mdns::Minimal::QType::AAAA) + { + chip::Inet::IPAddress addr; + + if (!mdns::Minimal::ParseAAAARecord(data.GetData(), &addr)) + { + printf("FAILED TO PARSE AAAA RECORD\n"); + } + else + { + char buff[128]; + printf("%s IP: %s\n", mPrefix, addr.ToString(buff, sizeof(buff))); + } + } + else if (data.GetType() == mdns::Minimal::QType::PTR) + { + mdns::Minimal::SerializedQNameIterator name; + if (!mdns::Minimal::ParsePtrRecord(data.GetData(), mPacketRange, &name)) + { + printf("FAILED TO PARSE AAAA RECORD\n"); + } + else + { + printf("%s PTR: ", mPrefix); + PrintQName(name); + } + } + else + { + // Unknown packet, just print data size. + printf("%s Data size: %ld\n", mPrefix, static_cast(data.GetData().Size())); + } +} + +} // namespace MdnsExample diff --git a/examples/minimal-mdns/PacketReporter.h b/examples/minimal-mdns/PacketReporter.h new file mode 100644 index 00000000000000..8a9441f0aa8418 --- /dev/null +++ b/examples/minimal-mdns/PacketReporter.h @@ -0,0 +1,38 @@ +/* + * + * 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. + */ + +#include + +namespace MdnsExample { + +/// Prints out the contents of a MDNS packet +/// useful for visual debug of data +class PacketReporter : public mdns::Minimal::ParserDelegate +{ +public: + PacketReporter(const char * prefix, const mdns::Minimal::BytesRange & packet) : mPrefix(prefix), mPacketRange(packet) {} + + void OnHeader(mdns::Minimal::ConstHeaderRef & header) override; + void OnQuery(const mdns::Minimal::QueryData & data) override; + void OnResource(mdns::Minimal::ResourceType type, const mdns::Minimal::ResourceData & data) override; + +private: + const char * mPrefix; + mdns::Minimal::BytesRange mPacketRange; +}; + +} // namespace MdnsExample diff --git a/examples/minimal-mdns/README.md b/examples/minimal-mdns/README.md new file mode 100644 index 00000000000000..740cc59bdfb5a6 --- /dev/null +++ b/examples/minimal-mdns/README.md @@ -0,0 +1,124 @@ +## Example server + +The file `server.cpp` contains an example of a mdns server that can listen on +both IPv4 and IPv6 interfaces or mDNS queries. + +To run, you can use: + +```sh +./out/minimal_mdns/minimal-mdns-server -4 +``` + +which will listen on both IPv4 and IPv6 addresses, on port 5353. + +See + +```sh +./out/minimal_mdns/minimal-mdns-server --help +``` + +for supported options. + +The server will print out any queries as well as any advertisements it sees on +the network while running. + +## Example client + +The file -client.cpp` contains an example of a mdns client. By default it +queries for **\_services.\_dns-sd.\_udp.local** (DNS-SD list services) and uses +unicast queries. + +Example run: + +```sh +./out/minimal_mdns/minimal-mdns-client -4 +``` + +which is likely to list a lot of answers. + +You can customize the queries run: + +```sh +/out/minimal_mdns/minimal-mdns-client -4 -q chip-mdns-demo._chip._tcp.local +``` + +see + +```sh +./out/minimal_mdns/minimal-mdns-client --help +``` + +for full command line details. + +## Testing with dns-sd + +If you have a mac computer (or are able to install dns-sd via opkg), here are +some helpful examples on usage. More details are available in the CHIP spec on +discovery. + +### Advertising to test client listings + +#### Simulated uncommisioned node + +```sh +dns-sd -R DD200C20D25AE5F7 _chipc._udp,S052,L0840,V123 . 11111 D=0840 VP=123+456 +``` + +Will create the following records + +``` +_chipc._udp.local. PTR DD200C20D25AE5F7._chipc._udp.local. +S052._sub._chipc._udp.local. PTR DD200C20D25AE5F7._chipc._udp.local. +L0840._sub._chipc._udp.local. PTR DD200C20D25AE5F7._chipc._udp.local. +V123._sub._chipc._udp.local. PTR DD200C20D25AE5F7._chipc._udp.local. +DD200C20D25AE5F7._chipc._udp.local. TXT "D=0840" "VP=123+456" +DD200C20D25AE5F7._chipc._udp.local. SRV 0 0 11111 B75AFB458ECD.local. +B75AFB458ECD.local. AAAA ba2a:b311:742e:b44c:f515:576f:9783:3f30 +``` + +#### Simulated commisionable node + +```sh +dns-sd -R DD200C20D25AE5F7 _chipd._udp,S052,L0840,V123 . 11111 D=0840 VP=123+456 PH=3 +``` + +Will create the following records: + +``` +_chipd._udp.local. PTR DD200C20D25AE5F7._chipd._udp.local. +S052._sub._chipd._udp.local. PTR DD200C20D25AE5F7._chipd._udp.local. +V123._sub._chipd._udp.local. PTR DD200C20D25AE5F7._chipd._udp.local. +D0840._sub._chipd._udp.local. PTR DD200C20D25AE5F7._chipd._udp.local. +DD200C20D25AE5F7._chipd._udp.local. TXT "D=0840" "VP=123+456" "PH=3" +DD200C20D25AE5F7._chipd._udp.local. SRV 0 0 11111 B75AFB458ECD.local. +B75AFB458ECD.local. AAAA ba2a:b311:742e:b44c:f515:576f:9783:3f30 +``` + +#### Simulated commisioned node + +```sh +dns-sd -R 2906C908D115D362-8FC7772401CD0696 _chip._tcp . 22222 +``` + +### Discovery commands + +Nodes: + +```sh +dns-sd -B _chipc._udp # Nodes awaiting commisioning +dns-sd -B _chipc._udp,S052 # Nodes awaiting commisioning with short discriminator 052 +dns-sd -B _chipc._udp,L0840 # Nodes awaiting commisioning with long discriminator 0840 +dns-sd -B _chipc._udp,V123 # Nodes awaiting commisioning with vendor id 123 + +dns-sd -B _chipd._udp # Commisionable nodes +dns-sd -B _chipd._udp,S052 # Commisionable nodes with short discriminator 052 +dns-sd -B _chipd._udp,L0840 # Commisionable nodes with long discriminator 0840 +dns-sd -B _chipd._udp,V123 # Commisionable nodes with vendor id 123 +``` + +IP Address: + +```sh +dns-sd -L 2906C908D115D362-8FC7772401CD0696 _chip._tcp # find server address +dns-sd -Gv6 B75AFB458ECD.local # get IPv6 address +``` diff --git a/examples/minimal-mdns/args.gni b/examples/minimal-mdns/args.gni new file mode 100644 index 00000000000000..311ddab32d5fe5 --- /dev/null +++ b/examples/minimal-mdns/args.gni @@ -0,0 +1,17 @@ +# 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. + +import("//build_overrides/chip.gni") + +import("${chip_root}/config/standalone/args.gni") diff --git a/examples/minimal-mdns/build b/examples/minimal-mdns/build new file mode 120000 index 00000000000000..d56ed62ae4d1ff --- /dev/null +++ b/examples/minimal-mdns/build @@ -0,0 +1 @@ +third_party/connectedhomeip/build \ No newline at end of file diff --git a/examples/minimal-mdns/build_overrides b/examples/minimal-mdns/build_overrides new file mode 120000 index 00000000000000..b430cf6a2e6391 --- /dev/null +++ b/examples/minimal-mdns/build_overrides @@ -0,0 +1 @@ +../build_overrides \ No newline at end of file diff --git a/examples/minimal-mdns/client.cpp b/examples/minimal-mdns/client.cpp new file mode 100644 index 00000000000000..e9ffd1409111f1 --- /dev/null +++ b/examples/minimal-mdns/client.cpp @@ -0,0 +1,344 @@ +/* + * + * 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. + */ + +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "AllInterfaceListener.h" +#include "PacketReporter.h" + +using namespace chip; + +namespace { + +struct Options +{ + bool enableIpV4 = false; + bool unicastAnswers = true; + uint32_t runtimeMs = 500; + uint16_t querySendPort = 5353; + uint16_t listenPort = 5388; + const char * query = "_services._dns-sd._udp.local"; + mdns::Minimal::QType type = mdns::Minimal::QType::ANY; +} gOptions; + +constexpr uint32_t kTestMessageId = 0x1234; +constexpr size_t kMdnsMaxPacketSize = 1'024; + +using namespace chip::ArgParser; + +constexpr uint16_t kOptionEnableIpV4 = '4'; +constexpr uint16_t kOptionQuery = 'q'; +constexpr uint16_t kOptionType = 't'; + +// non-ascii options have no short option version +constexpr uint16_t kOptionListenPort = 0x100; +constexpr uint16_t kOptionQueryPort = 0x101; +constexpr uint16_t kOptionRuntimeMs = 0x102; +constexpr uint16_t kOptionMulticastReplies = 0x103; + +bool HandleOptions(const char * aProgram, OptionSet * aOpotions, int aIdentifier, const char * aName, const char * aValue) +{ + switch (aIdentifier) + { + case kOptionEnableIpV4: + gOptions.enableIpV4 = true; + return true; + + case kOptionListenPort: + if (!ParseInt(aValue, gOptions.listenPort)) + { + PrintArgError("%s: invalid value for listen port: %s\n", aProgram, aValue); + return false; + } + return true; + case kOptionQuery: + gOptions.query = aValue; + return true; + case kOptionType: + if (strcasecmp(aValue, "ANY") == 0) + { + gOptions.type = mdns::Minimal::QType::ANY; + } + else if (strcasecmp(aValue, "A") == 0) + { + gOptions.type = mdns::Minimal::QType::A; + } + else if (strcasecmp(aValue, "AAAA") == 0) + { + gOptions.type = mdns::Minimal::QType::AAAA; + } + else if (strcasecmp(aValue, "PTR") == 0) + { + gOptions.type = mdns::Minimal::QType::PTR; + } + else if (strcasecmp(aValue, "TXT") == 0) + { + gOptions.type = mdns::Minimal::QType::TXT; + } + else if (strcasecmp(aValue, "SRV") == 0) + { + gOptions.type = mdns::Minimal::QType::SRV; + } + else if (strcasecmp(aValue, "CNAME") == 0) + { + gOptions.type = mdns::Minimal::QType::CNAME; + } + else + { + PrintArgError("%s: invalid value for query type: %s\n", aProgram, aValue); + return false; + } + return true; + + case kOptionQueryPort: + if (!ParseInt(aValue, gOptions.querySendPort)) + { + PrintArgError("%s: invalid value for query send port: %s\n", aProgram, aValue); + return false; + } + return true; + + case kOptionRuntimeMs: + if (!ParseInt(aValue, gOptions.runtimeMs)) + { + PrintArgError("%s: invalid value for runtime ms: %s\n", aProgram, aValue); + return false; + } + return true; + + case kOptionMulticastReplies: + gOptions.unicastAnswers = false; + return true; + + default: + PrintArgError("%s: INTERNAL ERROR: Unhandled option: %s\n", aProgram, aName); + return false; + } +} + +OptionDef cmdLineOptionsDef[] = { + { "listen-port", kArgumentRequired, kOptionListenPort }, + { "enable-ip-v4", kNoArgument, kOptionEnableIpV4 }, + { "query", kArgumentRequired, kOptionQuery }, + { "type", kArgumentRequired, kOptionType }, + { "query-port", kArgumentRequired, kOptionQueryPort }, + { "timeout-ms", kArgumentRequired, kOptionRuntimeMs }, + { "multicast-reply", kNoArgument, kOptionMulticastReplies }, + nullptr, +}; + +OptionSet cmdLineOptions = { HandleOptions, cmdLineOptionsDef, "PROGRAM OPTIONS", + " --listen-port \n" + " The port number to listen on\n" + " -4\n" + " --enable-ip-v4\n" + " enable listening on IPv4\n" + " -q\n" + " --query\n" + " The query to send\n" + " -t\n" + " --type\n" + " The query type to ask for (ANY/PTR/A/AAAA/SRV/TXT)\n" + " --query-port\n" + " On what port to multicast the query\n" + " --timeout-ms\n" + " How long to wait for replies\n" + " --multicast-reply\n" + " Do not request unicast replies\n" + "\n" }; + +HelpOptions helpOptions("minimal-mdns-client", "Usage: minimal-mdns-client [options]", "1.0"); + +OptionSet * allOptions[] = { &cmdLineOptions, &helpOptions, nullptr }; + +class ReportDelegate : public mdns::Minimal::ServerDelegate +{ +public: + void OnQuery(const mdns::Minimal::BytesRange & data, const chip::Inet::IPPacketInfo * info) override + { + char addr[32]; + info->SrcAddress.ToString(addr, sizeof(addr)); + + printf("QUERY from: %-15s on port %d, via interface %d\n", addr, info->SrcPort, info->Interface); + Report("QUERY: ", data); + } + + void OnResponse(const mdns::Minimal::BytesRange & data, const chip::Inet::IPPacketInfo * info) override + { + char addr[32]; + info->SrcAddress.ToString(addr, sizeof(addr)); + + printf("RESPONSE from: %-15s on port %d, via interface %d\n", addr, info->SrcPort, info->Interface); + Report("RESPONSE: ", data); + } + +private: + void Report(const char * prefix, const mdns::Minimal::BytesRange & data) + { + MdnsExample::PacketReporter reporter(prefix, data); + if (!mdns::Minimal::ParsePacket(data, &reporter)) + { + printf("INVALID PACKET!!!!!!\n"); + } + } +}; + +class QuerySplitter +{ +public: + void Split(const char * query) + { + mStorage.clear(); + mParts.clear(); + + const char * dot = nullptr; + while (nullptr != (dot = strchr(query, '.'))) + { + mStorage.push_back(std::string(query, dot)); + query = dot + 1; + } + + mStorage.push_back(query); + + for (unsigned i = 0; i < mStorage.size(); i++) + { + mParts.push_back(mStorage[i].c_str()); + } + } + + mdns::Minimal::Query MdnsQuery() const + { + mdns::Minimal::FullQName qName; + + qName.nameCount = mParts.size(); + qName.names = mParts.data(); + + return mdns::Minimal::Query(qName); + } + +private: + std::vector mParts; + std::vector mStorage; +}; + +void BroadcastPacket(mdns::Minimal::ServerBase * server) +{ + System::PacketBufferHandle buffer = System::PacketBuffer::NewWithAvailableSize(kMdnsMaxPacketSize); + if (buffer.IsNull()) + { + printf("Buffer allocation failure."); + abort(); + return; + } + + QuerySplitter query; + query.Split(gOptions.query); + + mdns::Minimal::QueryBuilder builder(buffer.Get_ForNow()); + + builder.Header().SetMessageId(kTestMessageId); + builder.AddQuery(query + .MdnsQuery() // + .SetClass(mdns::Minimal::QClass::IN) // + .SetType(gOptions.type) // + .SetAnswerViaUnicast(gOptions.unicastAnswers) // + ); + + if (!builder.Ok()) + { + printf("Failed to build the question"); + return; + } + + if (server->BroadcastSend(buffer.Release_ForNow(), gOptions.querySendPort) != CHIP_NO_ERROR) + { + printf("Error sending\n"); + return; + } +} + +} // namespace + +int main(int argc, char ** args) +{ + if (Platform::MemoryInit() != CHIP_NO_ERROR) + { + printf("FAILED to initialize memory"); + return 1; + } + + if (DeviceLayer::PlatformMgr().InitChipStack() != CHIP_NO_ERROR) + { + printf("FAILED to initialize chip stack"); + return 1; + } + + if (!chip::ArgParser::ParseArgs(args[0], argc, args, allOptions)) + { + return 1; + } + + printf("Running...\n"); + + mdns::Minimal::Server<10> mdnsServer; + ReportDelegate reporter; + + mdnsServer.SetDelegate(&reporter); + + { + MdnsExample::AllInterfaces allInterfaces(gOptions.enableIpV4); + + if (mdnsServer.Listen(&chip::DeviceLayer::InetLayer, &allInterfaces, gOptions.listenPort) != CHIP_NO_ERROR) + { + printf("Server failed to listen on all interfaces\n"); + return 1; + } + } + + BroadcastPacket(&mdnsServer); + + System::Timer * timer = nullptr; + + if (DeviceLayer::SystemLayer.NewTimer(timer) == CHIP_NO_ERROR) + { + timer->Start( + gOptions.runtimeMs, [](System::Layer *, void *, System::Error err) { DeviceLayer::PlatformMgr().Shutdown(); }, nullptr); + } + else + { + + printf("Failed to create the shutdown timer. Kill with ^C.\n"); + } + + DeviceLayer::PlatformMgr().RunEventLoop(); + + printf("Done...\n"); + return 0; +} diff --git a/examples/minimal-mdns/server.cpp b/examples/minimal-mdns/server.cpp new file mode 100644 index 00000000000000..1811278c120fb7 --- /dev/null +++ b/examples/minimal-mdns/server.cpp @@ -0,0 +1,258 @@ +/* + * + * 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. + */ + +#include +#include + +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "AllInterfaceListener.h" +#include "PacketReporter.h" + +using namespace chip; + +namespace { + +struct Options +{ + bool enableIpV4 = false; + uint16_t listenPort = 5353; + const char * instanceName = "chip-mdns-demo"; +} gOptions; + +using namespace chip::ArgParser; + +constexpr uint16_t kOptionEnableIpV4 = '4'; +constexpr uint16_t kOptionListenPort = 'p'; +constexpr uint16_t kOptionInstanceName = 'i'; + +bool HandleOptions(const char * aProgram, OptionSet * aOpotions, int aIdentifier, const char * aName, const char * aValue) +{ + switch (aIdentifier) + { + case kOptionEnableIpV4: + gOptions.enableIpV4 = true; + return true; + + case kOptionInstanceName: + gOptions.instanceName = aValue; + return true; + + case kOptionListenPort: + if (!ParseInt(aValue, gOptions.listenPort)) + { + PrintArgError("%s: invalid value for port: %s\n", aProgram, aValue); + return false; + } + return true; + + default: + PrintArgError("%s: INTERNAL ERROR: Unhandled option: %s\n", aProgram, aName); + return false; + } +} + +OptionDef cmdLineOptionsDef[] = { + { "listen-port", kArgumentRequired, kOptionListenPort }, + { "enable-ip-v4", kNoArgument, kOptionEnableIpV4 }, + { "instance-name", kArgumentRequired, kOptionInstanceName }, + nullptr, +}; + +OptionSet cmdLineOptions = { HandleOptions, cmdLineOptionsDef, "PROGRAM OPTIONS", + " -p \n" + " --listen-port \n" + " The port number to listen on\n" + " -4\n" + " --enable-ip-v4\n" + " enable listening on IPv4\n" + " -i \n" + " --instance-name \n" + " instance name to advertise.\n" + "\n" }; + +HelpOptions helpOptions("minimal-mdns-server", "Usage: minimal-mdns-server [options]", "1.0"); + +OptionSet * allOptions[] = { &cmdLineOptions, &helpOptions, nullptr }; + +class ReplyDelegate : public mdns::Minimal::ServerDelegate, public mdns::Minimal::ParserDelegate +{ +public: + ReplyDelegate(mdns::Minimal::ResponseSender * responder) : mResponder(responder) {} + + void OnQuery(const mdns::Minimal::BytesRange & data, const chip::Inet::IPPacketInfo * info) override + { + char addr[INET6_ADDRSTRLEN]; + info->SrcAddress.ToString(addr, sizeof(addr)); + + printf("QUERY from: %-15s on port %d, via interface %d\n", addr, info->SrcPort, info->Interface); + Report("QUERY: ", data); + + mCurrentSource = info; + if (!mdns::Minimal::ParsePacket(data, this)) + { + printf("Parsing failure may result in reply failure!\n"); + } + mCurrentSource = nullptr; + } + + void OnResponse(const mdns::Minimal::BytesRange & data, const chip::Inet::IPPacketInfo * info) override + { + char addr[INET6_ADDRSTRLEN]; + info->SrcAddress.ToString(addr, sizeof(addr)); + + printf("RESPONSE from: %-15s on port %d, via interface %d\n", addr, info->SrcPort, info->Interface); + } + + // ParserDelegate + void OnHeader(mdns::Minimal::ConstHeaderRef & header) override { mMessageId = header.GetMessageId(); } + void OnResource(mdns::Minimal::ResourceType type, const mdns::Minimal::ResourceData & data) override {} + + void OnQuery(const mdns::Minimal::QueryData & data) override + { + if (mResponder->Respond(mMessageId, data, mCurrentSource) != CHIP_NO_ERROR) + { + printf("FAILED to respond!\n"); + } + } + +private: + void Report(const char * prefix, const mdns::Minimal::BytesRange & data) + { + MdnsExample::PacketReporter reporter(prefix, data); + if (!mdns::Minimal::ParsePacket(data, &reporter)) + { + printf("INVALID PACKET!!!!!!\n"); + } + } + + mdns::Minimal::ResponseSender * mResponder; + const chip::Inet::IPPacketInfo * mCurrentSource = nullptr; + uint32_t mMessageId = 0; +}; + +} // namespace + +int main(int argc, char ** args) +{ + if (Platform::MemoryInit() != CHIP_NO_ERROR) + { + printf("FAILED to initialize memory"); + return 1; + } + + if (DeviceLayer::PlatformMgr().InitChipStack() != CHIP_NO_ERROR) + { + printf("FAILED to initialize chip stack"); + return 1; + } + + if (!chip::ArgParser::ParseArgs(args[0], argc, args, allOptions)) + { + return 1; + } + + printf("Running on port %d using %s...\n", gOptions.listenPort, gOptions.enableIpV4 ? "IPv4 AND IPv6" : "IPv6 ONLY"); + + mdns::Minimal::Server<10 /* endpoints */> mdnsServer; + mdns::Minimal::QueryResponder<16 /* maxRecords */> queryResponder; + + mdns::Minimal::QNamePart tcpServiceName[] = { "_chip", "_tcp", "local" }; + mdns::Minimal::QNamePart tcpServerServiceName[] = { gOptions.instanceName, "_chip", "_tcp", "local" }; + mdns::Minimal::QNamePart udpServiceName[] = { "_chip", "_udp", "local" }; + mdns::Minimal::QNamePart udpServerServiceName[] = { gOptions.instanceName, "_chip", "_udp", "local" }; + + // several UDP versions for discriminators + mdns::Minimal::QNamePart udpDiscriminator1[] = { "S052", "_sub", "_chip", "_udp", "local" }; + mdns::Minimal::QNamePart udpDiscriminator2[] = { "V123", "_sub", "_chip", "_udp", "local" }; + mdns::Minimal::QNamePart udpDiscriminator3[] = { "L0840", "_sub", "_chip", "_udp", "local" }; + + mdns::Minimal::QNamePart serverName[] = { gOptions.instanceName, "local" }; + + mdns::Minimal::IPv4Responder ipv4Responder(serverName); + mdns::Minimal::IPv6Responder ipv6Responder(serverName); + mdns::Minimal::SrvResourceRecord srvRecord(tcpServerServiceName, serverName, CHIP_PORT); + mdns::Minimal::SrvResponder tcpSrvResponder(tcpServerServiceName, srvRecord); + mdns::Minimal::SrvResponder udpSrvResponder(udpServerServiceName, srvRecord); + mdns::Minimal::PtrResponder ptrTcpResponder(tcpServiceName, tcpServerServiceName); + mdns::Minimal::PtrResponder ptrUdpResponder(udpServiceName, udpServerServiceName); + mdns::Minimal::PtrResponder ptrUdpDiscriminator1Responder(udpDiscriminator1, udpServerServiceName); + mdns::Minimal::PtrResponder ptrUdpDiscriminator2Responder(udpDiscriminator2, udpServerServiceName); + mdns::Minimal::PtrResponder ptrUdpDiscriminator3Responder(udpDiscriminator3, udpServerServiceName); + + // report TXT records for our service. + const char * txtEntries[] = { + "D0840=yes", + "VP=123+456", + "PH=3", + "OTH=Some text here...", + }; + mdns::Minimal::TxtResponder tcpTxtResponder(mdns::Minimal::TxtResourceRecord(tcpServerServiceName, txtEntries)); + mdns::Minimal::TxtResponder udpTxtResponder(mdns::Minimal::TxtResourceRecord(udpServerServiceName, txtEntries)); + + queryResponder.AddResponder(&ptrTcpResponder).SetReportInServiceListing(true).SetReportAdditional(tcpServerServiceName); + queryResponder.AddResponder(&ptrUdpResponder).SetReportInServiceListing(true).SetReportAdditional(udpServerServiceName); + queryResponder.AddResponder(&ptrUdpDiscriminator1Responder).SetReportAdditional(udpServerServiceName); + queryResponder.AddResponder(&ptrUdpDiscriminator2Responder).SetReportAdditional(udpServerServiceName); + queryResponder.AddResponder(&ptrUdpDiscriminator3Responder).SetReportAdditional(udpServerServiceName); + queryResponder.AddResponder(&tcpTxtResponder); + queryResponder.AddResponder(&udpTxtResponder); + queryResponder.AddResponder(&tcpSrvResponder).SetReportAdditional(serverName); + queryResponder.AddResponder(&udpSrvResponder).SetReportAdditional(serverName); + queryResponder.AddResponder(&ipv6Responder); + + if (gOptions.enableIpV4) + { + queryResponder.AddResponder(&ipv4Responder); + } + + mdns::Minimal::ResponseSender responseSender(&mdnsServer, &queryResponder); + + ReplyDelegate delegate(&responseSender); + mdnsServer.SetDelegate(&delegate); + + { + MdnsExample::AllInterfaces allInterfaces(gOptions.enableIpV4); + + if (mdnsServer.Listen(&chip::DeviceLayer::InetLayer, &allInterfaces, gOptions.listenPort) != CHIP_NO_ERROR) + { + printf("Server failed to listen on all interfaces\n"); + return 1; + } + } + + DeviceLayer::PlatformMgr().RunEventLoop(); + + printf("Done...\n"); + return 0; +} diff --git a/examples/minimal-mdns/third_party/connectedhomeip b/examples/minimal-mdns/third_party/connectedhomeip new file mode 120000 index 00000000000000..1b20c9fb816b63 --- /dev/null +++ b/examples/minimal-mdns/third_party/connectedhomeip @@ -0,0 +1 @@ +../../../ \ No newline at end of file diff --git a/examples/pigweed-app/README.md b/examples/pigweed-app/nrf5/README.md similarity index 100% rename from examples/pigweed-app/README.md rename to examples/pigweed-app/nrf5/README.md diff --git a/examples/pigweed-app/nrfconnect/CMakeLists.txt b/examples/pigweed-app/nrfconnect/CMakeLists.txt index 3518a43349412e..b52d96aaac3968 100644 --- a/examples/pigweed-app/nrfconnect/CMakeLists.txt +++ b/examples/pigweed-app/nrfconnect/CMakeLists.txt @@ -18,6 +18,10 @@ cmake_minimum_required(VERSION 3.13.1) get_filename_component(CHIP_ROOT ${CMAKE_CURRENT_SOURCE_DIR}/third_party/connectedhomeip REALPATH) get_filename_component(NRFCONNECT_COMMON ${CHIP_ROOT}/examples/platform/nrfconnect REALPATH) +if(${BOARD} STREQUAL "nrf52840dongle_nrf52840") +list(INSERT OVERLAY_CONFIG 0 ${CHIP_ROOT}/config/nrfconnect/overlay-usb_support.conf) +endif() + set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CHIP_ROOT}/config/nrfconnect/) set(PIGWEED_ROOT "${CHIP_ROOT}/third_party/pigweed/repo") include(nrfconnect-app) diff --git a/examples/pigweed-app/nrfconnect/README.md b/examples/pigweed-app/nrfconnect/README.md new file mode 100644 index 00000000000000..22bc46dbb35102 --- /dev/null +++ b/examples/pigweed-app/nrfconnect/README.md @@ -0,0 +1,325 @@ +# CHIP nRF Connect Pigweed Example Application + +The nRF Connect Pigweed Example demonstrates the usage of Pigweed module +functionalities in an application. + +The example is based on [CHIP](https://github.com/project-chip/connectedhomeip), +the [Pigweed](https://pigweed.googlesource.com/pigweed/pigweed) module, which is +a collection of libraries that provide different functionalities for embedded +systems, and the nRF Connect platform. + +You can use this example as a training ground for making experiments, testing +Pigweed module features and checking what actions are necessary to fully +integrate Pigweed in a CHIP project. + +Pigweed functionalities are being gradually integrated into CHIP. Currently, the +following features are available: + +- **Echo RPC** - Creates a Remote Procedure Call server and allows sending + commands through the serial port to the device, which makes echo and sends + the received commands back. + +
+ +- [Overview](#overview) +- [Requirements](#requirements) +- [Device UI](#device-ui) +- [Setting up the environment](#setting-up-the-environment) + - [Using Docker container for setup](#using-docker-container-for-setup) + - [Using native shell for setup](#using-native-shell-for-setup) +- [Building](#building) +- [Configuring the example](#configuring-the-example) +- [Flashing and debugging](#flashing-and-debugging) + - [Flashing on the nRF52840 DK](#nrf52840dk_flashing) + - [Flashing on the nRF52840 Dongle](#nrf52840dongle_flashing) +- [Testing the example](#testing-the-example) + +
+ + + +## Overview + +This example is running on the nRF Connect platform, which is based on the +[nRF Connect SDK](https://developer.nordicsemi.com/nRF_Connect_SDK/doc/latest/nrf/index.html) +and [Zephyr RTOS](https://zephyrproject.org/). Visit CHIP's +[nRF Connect platform overview](../../../docs/guides/nrfconnect_platform_overview.md) +to read more about the platform structure and dependencies. + +Pigweed libraries are built and organized in a way that enables faster and more +reliable development. In the CHIP project, the Pigweed module is planned to be +used to create system infrastructures, for example for performing on-device +tests, but considering its general functionalities, it can be useful also in +other cases. + +
+ + + +## Requirements + +The application requires the nRF Connect SDK v1.4.0 to work correctly. + +The example supports building and running on the following devices: + +| Board name | Board platform build name | +| ------------------------------------------------------------------------------------------------- | ------------------------- | +| [nRF52840 Dongle](https://www.nordicsemi.com/Software-and-tools/Development-Kits/nRF52840-Dongle) | `nrf52840dongle_nrf52840` | +| [nRF52840 DK](https://www.nordicsemi.com/Software-and-Tools/Development-Kits/nRF52840-DK) | `nrf52840dk_nrf52840` | + +
+ + + +## Device UI + +This section lists the User Interface elements that you can use to control and +monitor the state of the device. + +**LED 1** shows the overall state of the device. The following states are +possible: + +- _Solid On_ — The application was flashed and ran successfully. + +**Serial port** can be used to communicate with the device by sending commands +and receiving responses. + +> **Important**: +> +> Please note that supported hardware platforms are using different transport +> interfaces to perform serial communication, which leads to differences in +> configuration. By default, these interfaces are used: +> +> - `nrf52840dk_nrf52840` - UART interface routed to the SEGGER J-Link USB +> port. +> - `nrf52840dongle_nrf52840` - USB interface routed to the USB port. + +
+ +## Setting up the environment + +Before building the example, check out the CHIP repository and sync submodules +using the following command: + + $ git submodule update --init + +The example requires the nRF Connect SDK v1.4.0. You can either install it along +with the related tools directly on your system or use a Docker image that has +the tools pre-installed. + +If you are a macOS user, you won't be able to use the Docker container to flash +the application onto a Nordic board due to +[certain limitations of Docker for macOS](https://docs.docker.com/docker-for-mac/faqs/#can-i-pass-through-a-usb-device-to-a-container). +Use the [native shell](#using-native-shell) for building instead. + +### Using Docker container for setup + +To use the Docker container for setup, complete the following steps: + +1. If you do not have the nRF Connect SDK installed yet, create a directory for + it by running the following command: + + $ mkdir ~/nrfconnect + +2. Download the latest version of the nRF Connect SDK Docker image by running + the following command: + + $ docker pull nordicsemi/nrfconnect-chip + +3. Start Docker with the downloaded image by running the following command, + customized to your needs as described below: + + $ docker run --rm -it -e RUNAS=$(id -u) -v ~/nrfconnect:/var/ncs -v ~/connectedhomeip:/var/chip \ + -v /dev/bus/usb:/dev/bus/usb --device-cgroup-rule "c 189:* rmw" nordicsemi/nrfconnect-chip + + In this command: + + - _~/nrfconnect_ can be replaced with an absolute path to the nRF Connect + SDK source directory. + - _~/connectedhomeip_ must be replaced with an absolute path to the CHIP + source directory. + - _-v /dev/bus/usb:/dev/bus/usb --device-cgroup-rule "c 189:_ rmw"\* + parameters can be omitted if you are not planning to flash the example + onto hardware. These parameters give the container access to USB devices + connected to your computer such as the nRF52840 DK. + - _--rm_ can be omitted if you do not want the container to be + auto-removed when you exit the container shell session. + - _-e RUNAS=\$(id -u)_ is needed to start the container session as the + current user instead of root. + +4. Check out or update the nRF Connect SDK to the recommended `v1.4.0` version + by running the following command in the Docker container: + + $ setup --ncs v1.4.0 + /var/ncs repository is empty. Do you wish to check out nRF Connect SDK sources [v1.4.0]? [Y/N] y + ... + /var/chip repository is initialized, skipping... + +Now you can proceed with the [Building](#building) instruction. + +### Using native shell for setup + +To use the native shell for setup, complete the following steps: + +1. Download and install the following additional software: + + - [nRF Command Line Tools](https://www.nordicsemi.com/Software-and-Tools/Development-Tools/nRF-Command-Line-Tools) + - [GN meta-build system](https://gn.googlesource.com/gn/) + +2. Depending on whether you have the nRF Connect SDK installed: + + - Follow the + [guide](https://developer.nordicsemi.com/nRF_Connect_SDK/doc/latest/nrf/gs_assistant.html#) + in the nRF Connect SDK documentation to install the nRF Connect SDK + v1.4.0. Since command-line tools will be used for building the example, + installing SEGGER Embedded Studio is not required. + + - If you have an older version of the SDK installed, use the following + commands to update it to the recommended version. Replace + _nrfconnect-dir_ with the path to your nRF Connect SDK installation + directory. + + $ cd nrfconnect-dir/nrf + $ git fetch origin + $ git checkout v1.4.0 + $ west update + +3. Initialize environment variables referred to by the CHIP and the nRF Connect + SDK build scripts. Replace _nrfconnect-dir_ with the path to your nRF + Connect SDK installation directory, and _toolchain-dir_ with the path to GNU + Arm Embedded Toolchain. + + $ source nrfconnect-dir/zephyr/zephyr-env.sh + $ export ZEPHYR_TOOLCHAIN_VARIANT=gnuarmemb + $ export GNUARMEMB_TOOLCHAIN_PATH=toolchain-dir + +Now you can proceed with the [Building](#building) instruction. + +
+ + + +## Building + +Complete the following steps, regardless of the method used for setting up the +environment: + +1. Run the `activate.sh` script, regardless of the building strategy. The + script is required for building the Pigweed library. Use the following + command: + + $ source scripts/activate.sh + +2. Navigate to the example's directory: + + $ cd examples/pigweed-app/nrfconnect + +3. Run the following command to build the example, with _board-name_ replaced + with the name of the Nordic Semiconductor's board you own, for example + `nrf52840dk_nrf52840`: + + $ west build -b board-name + + You only need to specify the board name on the first build. See + [Requirements](#requirements) for the names of compatible boards. + +The output `zephyr.hex` file will be available in the `build/zephyr/` directory. + +### Removing build artifacts + +If you're planning to build the example for a different board or make changes to +the configuration, remove all build artifacts before building. To do so, use the +following command: + + $ rm -r build + +
+ + + +## Configuring the example + +The Zephyr ecosystem is highly configurable and allows you to modify many +aspects of the application. The configuration system is based on Kconfig files +and the settings can be modified using the menuconfig utility. + +To open the menuconfig utility, complete the following steps: + +1. Go to the example directory by running the following command, with the + _example-dir_ directory name updated for your configuration: + + $ cd example-dir + +2. Choose one of the following options: + + - If you are running the build for the first time, run the following + command: + + $ west build -b nrf52840dk_nrf52840 -t menuconfig + + - If you are running a subsequent build, run the following command: + + $ west build -t menuconfig + + - If you are running menuconfig with ninja, run the following commands: + + $ cd example-dir/build + $ ninja menuconfig + +Changes done with menuconfig will be lost if the `build` directory is deleted. +To make them persistent, save the configuration options in the `prj.conf` file. + +For more information, see the +[Configuring nRF Connect SDK examples](../../../docs/guides/nrfconnect_examples_configuration.md) +page. + +
+ + + +## Flashing and debugging + +The flashing and debugging procedure is different for the nRF52840 DK and the +nRF52840 Dongle. + + + +### Flashing on the nRF52840 DK + +To flash the application to the device, use the west tool and run the following +commands, with the _example-dir_ directory name updated for your configuration: + + $ cd example-dir + $ west flash + +If you have multiple nRF52840 DK boards connected, west will prompt you to pick +the correct one. + +To debug the application on target, run the following commands: + + $ cd example-dir + $ west debug + + + +### Flashing on the nRF52840 Dongle + +Visit +[Programming and Flashing nRF52840 Dongle](https://docs.zephyrproject.org/latest/boards/arm/nrf52840dongle_nrf52840/doc/index.html#programming-and-debugging) +to read more about flashing on the nRF52840 Dongle. + +
+ + + +## Testing the example + +Run the following command to start an interactive Python shell, where the Echo +RPC commands can be invoked: + + python -m pw_hdlc_lite.rpc_console --device /dev/ttyACM0 -b 115200 $CHIP_ROOT/third_party/pigweed/repo/pw_rpc/pw_rpc_protos/echo.proto -o /tmp/pw_rpc.out + +To send an Echo RPC message, type the following command, where the actual +message is the text in quotation marks after the `msg=` phrase: + + rpcs.pw.rpc.EchoService.Echo(msg="hi") diff --git a/examples/pigweed-app/nrfconnect/prj.conf b/examples/pigweed-app/nrfconnect/prj.conf index d30477c280da5c..b59c4148650a33 100644 --- a/examples/pigweed-app/nrfconnect/prj.conf +++ b/examples/pigweed-app/nrfconnect/prj.conf @@ -22,8 +22,8 @@ CONFIG_POSIX_API=y CONFIG_PTHREAD_IPC=y CONFIG_EVENTFD=y -CONFIG_LOG=y -CONFIG_LOG_MINIMAL=y +CONFIG_LOG=n +CONFIG_LOG_MINIMAL=n CONFIG_ASSERT=y CONFIG_HW_STACK_PROTECTION=y @@ -68,10 +68,6 @@ CONFIG_MBEDTLS_GCM_C=n # Add support for LEDs and buttons on Nordic development kits CONFIG_DK_LIBRARY=y -# Long log strings -CONFIG_LOG_STRDUP_MAX_STRING=256 -CONFIG_LOG_STRDUP_BUF_COUNT=20 - # Additional configs for debbugging experience. CONFIG_THREAD_NAME=y CONFIG_MPU_STACK_GUARD=y @@ -85,3 +81,4 @@ CONFIG_STD_CPP17=y # Add support for Zephyr console component to use it for Pigweed console purposes CONFIG_CONSOLE_SUBSYS=y CONFIG_CONSOLE_GETCHAR=y +CONFIG_CONSOLE_GETCHAR_BUFSIZE=256 diff --git a/examples/platform/nrfconnect/doc/images/nrf52840-dk.jpg b/examples/platform/nrfconnect/doc/images/nrf52840-dk.jpg new file mode 100644 index 00000000000000..f052916ef5ec32 Binary files /dev/null and b/examples/platform/nrfconnect/doc/images/nrf52840-dk.jpg differ diff --git a/src/ble/tests/TestBleLayer.h b/examples/platform/nrfconnect/project_include/OpenThreadConfig.h similarity index 72% rename from src/ble/tests/TestBleLayer.h rename to examples/platform/nrfconnect/project_include/OpenThreadConfig.h index 30d850e7c56cd9..2144493727b91b 100644 --- a/src/ble/tests/TestBleLayer.h +++ b/examples/platform/nrfconnect/project_include/OpenThreadConfig.h @@ -1,6 +1,7 @@ /* * * Copyright (c) 2020 Project CHIP Authors + * All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -15,14 +16,13 @@ * limitations under the License. */ -/** - * @file - * This file declares test entry points for CHIP Bluetooth Low - * Energy (BLE) layer library unit tests. - * - */ - #pragma once -int TestBleErrorStr(); -int TestBleUUID(); +// Include Zephyr-supplied OpenThread configuration + +#include "openthread-core-zephyr-config.h" + +// Project-specific settings + +#undef OPENTHREAD_CONFIG_NUM_MESSAGE_BUFFERS +#define OPENTHREAD_CONFIG_NUM_MESSAGE_BUFFERS 64 diff --git a/examples/platform/nrfconnect/pw_sys_io/CMakeLists.txt b/examples/platform/nrfconnect/pw_sys_io/CMakeLists.txt new file mode 100644 index 00000000000000..bcd5d40f0a069d --- /dev/null +++ b/examples/platform/nrfconnect/pw_sys_io/CMakeLists.txt @@ -0,0 +1,21 @@ +include(chip-lib) +include($ENV{PW_ROOT}/pw_build/pigweed.cmake) + +pw_add_module_library(pw_sys_io.nrfconnect + SOURCES + sys_io_nrfconnect.cc +) + +target_include_directories(pw_sys_io.nrfconnect INTERFACE + $ENV{ZEPHYR_BASE}/include + include/ +) + +target_link_libraries(pw_sys_io.nrfconnect PUBLIC + zephyr_interface + pw_sys_io +) + +target_compile_options(pw_sys_io.nrfconnect PUBLIC + -Wno-error=redundant-decls +) diff --git a/examples/platform/nrfconnect/pw_sys_io/sys_io_nrfconnect.cc b/examples/platform/nrfconnect/pw_sys_io/sys_io_nrfconnect.cc index 6c83a6ecc658c8..1bcba751e31d27 100644 --- a/examples/platform/nrfconnect/pw_sys_io/sys_io_nrfconnect.cc +++ b/examples/platform/nrfconnect/pw_sys_io/sys_io_nrfconnect.cc @@ -22,9 +22,20 @@ #include #include +#ifdef CONFIG_USB +#include +#endif + extern "C" void pw_sys_io_Init() { - int err = console_init(); + int err; + +#ifdef CONFIG_USB + err = usb_enable(nullptr); + assert(err == 0); +#endif + + err = console_init(); assert(err == 0); } @@ -37,6 +48,7 @@ Status ReadByte(std::byte * dest) const int c = console_getchar(); *dest = static_cast(c); + return c < 0 ? Status::FAILED_PRECONDITION : Status::OK; } diff --git a/examples/platform/nrfconnect/util/include/LogUtils.h b/examples/platform/nrfconnect/util/include/LogUtils.h new file mode 100644 index 00000000000000..4d9f95458ca771 --- /dev/null +++ b/examples/platform/nrfconnect/util/include/LogUtils.h @@ -0,0 +1,12 @@ +#pragma once + +#ifndef CONFIG_CHIP_PW_RPC +#include +LOG_MODULE_DECLARE(app); +#define LOG_STRDUP log_strdup +#else +#include "pw_log/log.h" +#define LOG_INF(message, ...) PW_LOG_INFO(message, __VA_ARGS__) +#define LOG_ERR(message, ...) PW_LOG_ERROR(message, __VA_ARGS__) +#define LOG_STRDUP +#endif diff --git a/examples/platform/nrfconnect/util/test/TestInetCommon.cpp b/examples/platform/nrfconnect/util/test/TestInetCommon.cpp new file mode 100644 index 00000000000000..1670b6118f772e --- /dev/null +++ b/examples/platform/nrfconnect/util/test/TestInetCommon.cpp @@ -0,0 +1,229 @@ +/* + * + * Copyright (c) 2020 Project CHIP Authors + * Copyright (c) 2013-2018 Nest Labs, Inc. + * + * 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. + */ + +/** + * @file + * This file implements constants, globals and interfaces common to + * and used by all CHP Inet layer library test applications and + * tools. + * + * NOTE: These do not comprise a public part of the CHIP API and + * are subject to change without notice. + * + */ + +#ifndef __STDC_LIMIT_MACROS +#define __STDC_LIMIT_MACROS +#endif +#ifndef __STDC_FORMAT_MACROS +#define __STDC_FORMAT_MACROS +#endif + +#include "TestInetCommon.h" +#include "LogUtils.h" + +#include + +#include +#include +#include +#include + +#include +#include +#include +#include + +#if CHIP_SYSTEM_CONFIG_USE_SOCKETS +#include +#include +#endif // CHIP_SYSTEM_CONFIG_USE_SOCKETS + +using namespace chip; +using namespace chip::Inet; + +System::Layer gSystemLayer; + +Inet::InetLayer gInet; + +char gDefaultTapDeviceName[32]; +bool gDone = false; + +void InetFailError(int32_t err, const char * msg) +{ + if (err != INET_NO_ERROR) + { + LOG_ERR("%s: %s", msg, ErrorStr(err)); + exit(-1); + } +} + +void InitTestInetCommon() +{ + chip::Platform::MemoryInit(); +} + +void InitSystemLayer() +{ + gSystemLayer.Init(nullptr); +} + +void ShutdownSystemLayer() +{ + gSystemLayer.Shutdown(); +} + +void InitNetwork() +{ + void * lContext = nullptr; + + gInet.Init(gSystemLayer, lContext); +} + +void ServiceEvents(struct ::timeval & aSleepTime) +{ + static bool printed = false; + + if (!printed) + { + { + LOG_INF("CHIP node ready to service events"); + printed = true; + } + } +#if CHIP_SYSTEM_CONFIG_USE_SOCKETS + fd_set readFDs, writeFDs, exceptFDs; + int numFDs = 0; + + FD_ZERO(&readFDs); + FD_ZERO(&writeFDs); + FD_ZERO(&exceptFDs); + +#if CHIP_SYSTEM_CONFIG_USE_SOCKETS + if (gSystemLayer.State() == System::kLayerState_Initialized) + gSystemLayer.PrepareSelect(numFDs, &readFDs, &writeFDs, &exceptFDs, aSleepTime); +#endif // CHIP_SYSTEM_CONFIG_USE_SOCKETS + +#if CHIP_SYSTEM_CONFIG_USE_SOCKETS + if (gInet.State == InetLayer::kState_Initialized) + gInet.PrepareSelect(numFDs, &readFDs, &writeFDs, &exceptFDs, aSleepTime); +#endif // CHIP_SYSTEM_CONFIG_USE_SOCKETS + + int selectRes = select(numFDs, &readFDs, &writeFDs, &exceptFDs, &aSleepTime); + if (selectRes < 0) + { + LOG_INF("select failed: %s", ErrorStr(System::MapErrorPOSIX(errno))); + return; + } +#endif // CHIP_SYSTEM_CONFIG_USE_SOCKETS + + if (gSystemLayer.State() == System::kLayerState_Initialized) + { + +#if CHIP_SYSTEM_CONFIG_USE_SOCKETS + + gSystemLayer.HandleSelectResult(selectRes, &readFDs, &writeFDs, &exceptFDs); + +#endif // CHIP_SYSTEM_CONFIG_USE_SOCKETS + } + + if (gInet.State == InetLayer::kState_Initialized) + { +#if CHIP_SYSTEM_CONFIG_USE_SOCKETS + + gInet.HandleSelectResult(selectRes, &readFDs, &writeFDs, &exceptFDs); + +#endif // CHIP_SYSTEM_CONFIG_USE_SOCKETS + } +} + +void ShutdownNetwork() +{ + gInet.Shutdown(); +} + +#define DUMP_BUF_LEN 80 + +void DumpMemory(const uint8_t * mem, uint32_t len, const char * prefix, uint32_t rowWidth) +{ + int indexWidth = snprintf(nullptr, 0, "%X", len); + + if (indexWidth < 4) + indexWidth = 4; + + for (uint32_t i = 0; i < len; i += rowWidth) + { + char buf[DUMP_BUF_LEN]; + char * ptr = buf; + const char * buf_end = buf + DUMP_BUF_LEN; + uint32_t rowEnd; + uint32_t j; + int result = snprintf(ptr, DUMP_BUF_LEN, "%s%0*X: ", prefix, indexWidth, i); + if (result < 0 || result >= DUMP_BUF_LEN) + goto print_line; + + ptr += result; + rowEnd = i + rowWidth; + + j = i; + for (; j < rowEnd && j < len; j++) + { + result = snprintf(ptr, buf_end - ptr, "%02X ", mem[j]); + if (result < 0 || result >= buf_end - ptr) + goto print_line; + ptr += result; + } + + for (; j < rowEnd; j++) + { + result = snprintf(ptr, buf_end - ptr, " "); + if (result < 0 || result >= buf_end - ptr) + goto print_line; + ptr += result; + } + + for (j = i; j < rowEnd && j < len; j++) + { + if (isprint(static_cast(mem[j]))) + result = snprintf(ptr, buf_end - ptr, "%c", mem[j]); + else + result = snprintf(ptr, buf_end - ptr, "."); + if (result < 0 || result >= buf_end - ptr) + goto print_line; + ptr += result; + } + + print_line: + if (result < 0 || result >= buf_end - ptr) + { + LOG_ERR("Dump buffer overflow"); + } + if (ptr > buf && ptr < buf + DUMP_BUF_LEN) + { + *ptr = '\0'; + LOG_INF(buf); + } + } +} + +void DumpMemory(const uint8_t * mem, uint32_t len, const char * prefix) +{ + const uint32_t kRowWidth = 16; + + DumpMemory(mem, len, prefix, kRowWidth); +} diff --git a/examples/lock-app/qpg6100/include/CHIPProjectConfig.h b/examples/platform/qpg6100/project_include/CHIPProjectConfig.h similarity index 95% rename from examples/lock-app/qpg6100/include/CHIPProjectConfig.h rename to examples/platform/qpg6100/project_include/CHIPProjectConfig.h index 0f429ff7cb5250..cecc061b941710 100644 --- a/examples/lock-app/qpg6100/include/CHIPProjectConfig.h +++ b/examples/platform/qpg6100/project_include/CHIPProjectConfig.h @@ -38,6 +38,10 @@ */ #define CHIP_DEVICE_CONFIG_ENABLE_TEST_DEVICE_IDENTITY 34 +// Use a default setup PIN code if one hasn't been provisioned in flash. +#define CHIP_DEVICE_CONFIG_USE_TEST_SETUP_PIN_CODE 12345678 +#define CHIP_DEVICE_CONFIG_USE_TEST_SETUP_DISCRIMINATOR 0xF00 + // Use a default pairing code if one hasn't been provisioned in flash. #define CHIP_DEVICE_CONFIG_USE_TEST_PAIRING_CODE "CHIPUS" diff --git a/examples/platform/qpg6100/util/streamer/streamer_qpg6100.cpp b/examples/platform/qpg6100/util/streamer/streamer_qpg6100.cpp new file mode 100644 index 00000000000000..7ac43152c00659 --- /dev/null +++ b/examples/platform/qpg6100/util/streamer/streamer_qpg6100.cpp @@ -0,0 +1,63 @@ +/* + * + * 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. + */ + +/** + * @file + * Source implementation of an input / output stream for QPG6100 targets. + */ + +#include + +#ifdef QPG6100_SHELL_STREAMER + +#include "qvCHIP.h" + +namespace chip { +namespace Shell { + +int streamer_qpg6100_init(streamer_t * streamer) +{ + qvCHIP_UartInit(); + return 0; +} + +int streamer_qpg6100_read(streamer_t * streamer, char * buf, size_t len) +{ + return qvCHIP_UartReadRxData(len, buf); +} + +int streamer_qpg6100_write(streamer_t * streamer, const char * buf, size_t len) +{ + qvCHIP_UartTxData(len, buf); + return len; +} + +static streamer_t streamer_qpg6100 = { + .init_cb = streamer_qpg6100_init, + .read_cb = streamer_qpg6100_read, + .write_cb = streamer_qpg6100_write, +}; + +streamer_t * streamer_get(void) +{ + return &streamer_qpg6100; +} + +} // namespace Shell +} // namespace chip + +#endif //#ifdef QPG6100_SHELL_STREAMER diff --git a/examples/shell/nrfconnect/CMakeLists.txt b/examples/shell/nrfconnect/CMakeLists.txt index e49a946f34c123..32f52766fcbfbe 100644 --- a/examples/shell/nrfconnect/CMakeLists.txt +++ b/examples/shell/nrfconnect/CMakeLists.txt @@ -17,9 +17,10 @@ cmake_minimum_required(VERSION 3.13.1) get_filename_component(CHIP_ROOT ${CMAKE_CURRENT_SOURCE_DIR}/third_party/connectedhomeip REALPATH) get_filename_component(APP_ROOT ${CMAKE_CURRENT_SOURCE_DIR}/.. REALPATH) +get_filename_component(NRFCONNECT_COMMON ${CHIP_ROOT}/examples/platform/nrfconnect REALPATH) -list(INSERT OVERLAY_CONFIG 0 ${CHIP_ROOT}/config/nrfconnect/overlay-sample-defaults.conf) - +set(CONF_FILE ${CHIP_ROOT}/config/nrfconnect/sample-defaults.conf prj.conf) +set(CHIP_OPENTHREAD_CONFIG ${NRFCONNECT_COMMON}/project_include/OpenThreadConfig.h) set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CHIP_ROOT}/config/nrfconnect/) include(nrfconnect-app) diff --git a/examples/shell/nrfconnect/prj.conf b/examples/shell/nrfconnect/prj.conf index ab6a9fbe828761..c078b39ffd6c42 100644 --- a/examples/shell/nrfconnect/prj.conf +++ b/examples/shell/nrfconnect/prj.conf @@ -14,7 +14,7 @@ # limitations under the License. # -# This sample uses overlay-sample-defaults.conf to set options common for all +# This sample uses sample-defaults.conf to set options common for all # samples. This file should contain only options specific for this sample # or overrides of default values. @@ -28,9 +28,9 @@ CONFIG_CONSOLE_GETCHAR=y CONFIG_SHELL=n CONFIG_OPENTHREAD_SHELL=n -# Long log strings -CONFIG_LOG_STRDUP_MAX_STRING=256 -CONFIG_LOG_STRDUP_BUF_COUNT=20 +# Some shell commands require OpenThread FTD configuration +CONFIG_OPENTHREAD_MTD=n +CONFIG_OPENTHREAD_FTD=y # Additional configs for debbugging experience. CONFIG_THREAD_NAME=y diff --git a/examples/shell/qpg6100/.gn b/examples/shell/qpg6100/.gn new file mode 100644 index 00000000000000..89dc9a6fcb5f6c --- /dev/null +++ b/examples/shell/qpg6100/.gn @@ -0,0 +1,26 @@ +# 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. + +# The location of the build configuration file. +buildconfig = "//build/config/BUILDCONFIG.gn" + +# CHIP uses angle bracket includes. +check_system_includes = true + +default_args = { + target_cpu = "arm" + target_os = "freertos" + + import("//args.gni") +} diff --git a/examples/shell/qpg6100/BUILD.gn b/examples/shell/qpg6100/BUILD.gn new file mode 100644 index 00000000000000..c634817d5e7e19 --- /dev/null +++ b/examples/shell/qpg6100/BUILD.gn @@ -0,0 +1,83 @@ +# 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. + +import("//build/config/defaults.gni") +import("//build_overrides/chip.gni") +import("//build_overrides/qpg6100_sdk.gni") +import("${qpg6100_sdk_build_root}/qpg6100_executable.gni") +import("${qpg6100_sdk_build_root}/qpg6100_sdk.gni") + +assert(current_os == "freertos") + +examples_plat_dir = "${chip_root}/examples/platform/qpg6100" + +qpg6100_sdk("sdk") { + include_dirs = [ + "${chip_root}/src/platform/qpg6100", + "${examples_plat_dir}/project_include", + "${chip_root}/src/app/util", + ] + + sources = [ "${examples_plat_dir}/project_include/CHIPProjectConfig.h" ] + + defines = [] + if (is_debug) { + defines += [ "BUILD_RELEASE=0" ] + } else { + defines += [ "BUILD_RELEASE=1" ] + } +} + +qpg6100_executable("shell_qpg6100") { + include_dirs = [] + defines = [] + output_name = "shell-qpg6100.out" + + public_deps = [ + ":sdk", + "${chip_root}/examples/shell/shell_common", + "${chip_root}/src/lib", + "${chip_root}/src/lib/shell", + "${chip_root}/src/setup_payload", + + # OpenThread to be enabled + # https://github.com/project-chip/connectedhomeip/issues/293 + ] + + include_dirs += [ "${chip_root}/src/app/util" ] + + sources = [ + "${examples_plat_dir}/project_include/CHIPProjectConfig.h", + "${examples_plat_dir}/util/streamer/streamer_qpg6100.cpp", + "main.cpp", + ] + + output_dir = root_out_dir + + ldscript = "${qpg6100_sdk_root}/qpg6100/ldscripts/chip-qpg6100-example.ld" + + ldflags = [ "-T" + rebase_path(ldscript, root_build_dir) ] + defines = [ + "QPG6100_SHELL_STREAMER", + "SHELL_STREAMER_APP_SPECIFIC", + ] +} + +group("qpg6100") { + deps = [ ":shell_qpg6100" ] +} + +group("default") { + deps = [ ":qpg6100" ] +} diff --git a/examples/shell/qpg6100/README.md b/examples/shell/qpg6100/README.md new file mode 100644 index 00000000000000..3519f4d0303885 --- /dev/null +++ b/examples/shell/qpg6100/README.md @@ -0,0 +1,9 @@ +# CHIP QPG6100 Shell Application + +A [chip-shell](../README.md) project for the Qorvo QPG6100 development kit. + +## Building + +The Shell Application builds and flashes like any other QPG6100 example +application. Further information can be found in +[this](../../lock-app/qpg6100/README.md) README. diff --git a/examples/shell/qpg6100/args.gni b/examples/shell/qpg6100/args.gni new file mode 100644 index 00000000000000..38f955bb59c89b --- /dev/null +++ b/examples/shell/qpg6100/args.gni @@ -0,0 +1,18 @@ +# 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. + +import("//build_overrides/chip.gni") +import("${chip_root}/examples/platform/qpg6100/args.gni") + +qpg6100_sdk_target = get_label_info(":sdk", "label_no_toolchain") diff --git a/examples/shell/qpg6100/build b/examples/shell/qpg6100/build new file mode 120000 index 00000000000000..d56ed62ae4d1ff --- /dev/null +++ b/examples/shell/qpg6100/build @@ -0,0 +1 @@ +third_party/connectedhomeip/build \ No newline at end of file diff --git a/examples/shell/qpg6100/build_overrides b/examples/shell/qpg6100/build_overrides new file mode 120000 index 00000000000000..e578e73312ebd1 --- /dev/null +++ b/examples/shell/qpg6100/build_overrides @@ -0,0 +1 @@ +../../build_overrides \ No newline at end of file diff --git a/examples/shell/qpg6100/main.cpp b/examples/shell/qpg6100/main.cpp new file mode 100644 index 00000000000000..bc14524d30ec03 --- /dev/null +++ b/examples/shell/qpg6100/main.cpp @@ -0,0 +1,100 @@ +/* + * + * 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. + */ + +#include "FreeRTOS.h" +#include "task.h" + +#include + +#include +#include +#include +#include +#include +#include + +#include + +#include "qvCHIP.h" + +#if CHIP_ENABLE_OPENTHREAD +extern "C" { +#include +} +#endif // CHIP_ENABLE_OPENTHREAD + +using namespace chip; +using namespace chip::Shell; + +namespace { + +const size_t kShellTaskStackSize = 2048; +const int kShellTaskPriority = 1; +TaskHandle_t sShellTaskHandle; + +void ShellCLIMain(void * pvParameter) +{ + // Initialize the default streamer that was linked. + const int rc = streamer_init(streamer_get()); + + if (rc != 0) + { + ChipLogError(Shell, "Streamer initialization failed: %d", rc); + return; + } + + ChipLogDetail(Shell, "Initializing CHIP shell commands: %d", rc); + + cmd_device_init(); + cmd_base64_init(); + cmd_misc_init(); + cmd_btp_init(); + cmd_otcli_init(); + + ChipLogDetail(Shell, "Run CHIP shell Task: %d", rc); + + shell_task(nullptr); +} + +} // namespace + +int StartShellTask(void) +{ + int ret = 0; + + // Start Shell task. + if (xTaskCreate(ShellCLIMain, "SHELL", kShellTaskStackSize / sizeof(StackType_t), NULL, kShellTaskPriority, + &sShellTaskHandle) != pdPASS) + { + ret = -1; + } + + return ret; +} + +int main(void) +{ + /* Initialize platform */ + qvCHIP_init(); + + /* Launch shell task */ + StartShellTask(); + + /* Start FreeRTOS */ + vTaskStartScheduler(); + return 0; +} diff --git a/examples/shell/qpg6100/third_party/connectedhomeip b/examples/shell/qpg6100/third_party/connectedhomeip new file mode 120000 index 00000000000000..c866b86874994d --- /dev/null +++ b/examples/shell/qpg6100/third_party/connectedhomeip @@ -0,0 +1 @@ +../../../.. \ No newline at end of file diff --git a/examples/shell/shell_common/cmd_btp.cpp b/examples/shell/shell_common/cmd_btp.cpp index 99952b1e3ed696..46789cf53440c0 100644 --- a/examples/shell/shell_common/cmd_btp.cpp +++ b/examples/shell/shell_common/cmd_btp.cpp @@ -55,21 +55,37 @@ int cmd_btp_adv(int argc, char ** argv) { CHIP_ERROR error = CHIP_NO_ERROR; streamer_t * sout = streamer_get(); + bool adv_enabled; if (argc == 0) { ExitNow(error = CHIP_ERROR_INVALID_ARGUMENT); } + adv_enabled = ConnectivityMgr().IsBLEAdvertisingEnabled(); if (strcmp(argv[0], "start") == 0) { - streamer_printf(sout, "Starting BLE advertising"); - // TODO: start advertising + if (adv_enabled) + { + streamer_printf(sout, "BLE advertising already enabled"); + } + else + { + streamer_printf(sout, "Starting BLE advertising"); + ConnectivityMgr().SetBLEAdvertisingEnabled(true); + } } else if (strcmp(argv[0], "stop") == 0) { - streamer_printf(sout, "Stopping BLE advertising"); - // TODO: stop advertising + if (adv_enabled) + { + streamer_printf(sout, "Stopping BLE advertising"); + ConnectivityMgr().SetBLEAdvertisingEnabled(false); + } + else + { + streamer_printf(sout, "BLE advertising already stopped"); + } } else { @@ -162,7 +178,7 @@ static const shell_command_t cmds_btp[] = { { &cmd_btp_help, "help", "Usage: btp " }, { &cmd_btp_scan, "scan", "Enable or disable scan. Usage: btp scan " }, { &cmd_btp_connect, "connect", "Connect or disconnect to a device. Usage: btp connect " }, - { &cmd_btp_adv, "adv", "Enable or disable advertisement. Usage: device dump" }, + { &cmd_btp_adv, "adv", "Enable or disable advertisement. Usage: btp adv " }, { &cmd_btp_send, "send", "Send binary data. Usage: device dump" }, }; diff --git a/examples/shell/shell_common/cmd_device.cpp b/examples/shell/shell_common/cmd_device.cpp index 8eaa5b5b67fdbf..5699366db65d37 100644 --- a/examples/shell/shell_common/cmd_device.cpp +++ b/examples/shell/shell_common/cmd_device.cpp @@ -528,6 +528,49 @@ int cmd_device_sta(int argc, char ** argv) } streamer_printf(sout, "%s\r\n", typeStr); } + else if (strcmp(argv[0], "set_mode") == 0) + { + if (argc < 2) + { + streamer_printf(sout, + "Invalid command: needs to specify mode:\r\n" + "disable\r\n" + "enable\r\n" + "app_ctrl\r\n"); + error = CHIP_ERROR_INVALID_ARGUMENT; + } + else + { + ConnectivityManager::WiFiStationMode mode = ConnectivityManager::WiFiStationMode::kWiFiStationMode_NotSupported; + + if (strcmp(argv[1], "disable") == 0) + { + mode = ConnectivityManager::WiFiStationMode::kWiFiStationMode_Disabled; + } + else if (strcmp(argv[1], "enable") == 0) + { + mode = ConnectivityManager::WiFiStationMode::kWiFiStationMode_Enabled; + } + else if (strcmp(argv[1], "app_ctrl") == 0) + { + mode = ConnectivityManager::WiFiStationMode::kWiFiStationMode_ApplicationControlled; + } + + if (mode != ConnectivityManager::WiFiStationMode::kWiFiStationMode_NotSupported) + { + error = ConnectivityMgr().SetWiFiStationMode(mode); + } + else + { + streamer_printf(sout, + "Invalid command: needs to be one of the following modes:\r\n" + "disable\r\n" + "enable\r\n" + "app_ctrl\r\n"); + error = CHIP_ERROR_INVALID_ARGUMENT; + } + } + } else if (strcmp(argv[0], "enabled") == 0) { bool isState = ConnectivityMgr().IsWiFiStationEnabled(); @@ -558,6 +601,20 @@ int cmd_device_sta(int argc, char ** argv) uint32_t interval = ConnectivityMgr().GetWiFiStationReconnectIntervalMS(); streamer_printf(sout, "WiFi Station Reconnect Interval (in seconds): %d\r\n", interval / 1000); } + else if (strcmp(argv[0], "set_reconnect_interval") == 0) + { + if (argc < 2) + { + streamer_printf(sout, "Invalid command: needs to specify Station Reconnect Interval (in seconds):\r\n"); + error = CHIP_ERROR_INVALID_ARGUMENT; + } + else + { + uint32_t interval = std::stoi(argv[1]) * 1000; + + ConnectivityMgr().SetWiFiStationReconnectIntervalMS(interval); + } + } else if (strcmp(argv[0], "stats") == 0) { SuccessOrExit(error = ConnectivityMgr().GetAndLogWifiStatsCounters()); @@ -568,6 +625,186 @@ int cmd_device_sta(int argc, char ** argv) ExitNow(error = CHIP_ERROR_INVALID_ARGUMENT); } +exit: + PlatformMgr().UnlockChipStack(); + return error; +} + +int cmd_device_ap(int argc, char ** argv) +{ + streamer_t * sout = streamer_get(); + + CHIP_ERROR error = CHIP_NO_ERROR; + + VerifyOrExit(argc > 0, error = CHIP_ERROR_INVALID_ARGUMENT); + + VerifyOrExit(PlatformMgr().TryLockChipStack(), error = CHIP_ERROR_INVALID_ARGUMENT); + + if (strcmp(argv[0], "mode") == 0) + { + const char * typeStr = "Unknown"; + ConnectivityManager::WiFiAPMode mode = ConnectivityMgr().GetWiFiAPMode(); + switch (mode) + { + case ConnectivityManager::WiFiAPMode::kWiFiAPMode_NotSupported: + typeStr = "NotSupported"; + break; + case ConnectivityManager::WiFiAPMode::kWiFiAPMode_ApplicationControlled: + typeStr = "ApplicationControlled"; + break; + case ConnectivityManager::WiFiAPMode::kWiFiAPMode_Disabled: + typeStr = "Disabled"; + break; + case ConnectivityManager::WiFiAPMode::kWiFiAPMode_Enabled: + typeStr = "Enabled"; + break; + case ConnectivityManager::WiFiAPMode::kWiFiAPMode_OnDemand: + typeStr = "OnDemand"; + break; + case ConnectivityManager::WiFiAPMode::kWiFiAPMode_OnDemand_NoStationProvision: + typeStr = "OnDemand-NoStation"; + break; + } + streamer_printf(sout, "%s\r\n", typeStr); + } + else if (strcmp(argv[0], "set_mode") == 0) + { + if (argc < 2) + { + streamer_printf(sout, + "Invalid command: needs to specify mode:\r\n" + "disable\r\n" + "enable\r\n" + "on_demand\r\n" + "on_demand_no_sta\r\n" + "app_ctrl\r\n"); + error = CHIP_ERROR_INVALID_ARGUMENT; + } + else + { + ConnectivityManager::WiFiAPMode mode = ConnectivityManager::WiFiAPMode::kWiFiAPMode_NotSupported; + + if (strcmp(argv[1], "disable") == 0) + { + mode = ConnectivityManager::WiFiAPMode::kWiFiAPMode_Disabled; + } + else if (strcmp(argv[1], "enable") == 0) + { + mode = ConnectivityManager::WiFiAPMode::kWiFiAPMode_Enabled; + } + else if (strcmp(argv[1], "on_demand") == 0) + { + mode = ConnectivityManager::WiFiAPMode::kWiFiAPMode_OnDemand; + } + else if (strcmp(argv[1], "on_demand_no_sta") == 0) + { + mode = ConnectivityManager::WiFiAPMode::kWiFiAPMode_OnDemand_NoStationProvision; + } + else if (strcmp(argv[1], "app_ctrl") == 0) + { + mode = ConnectivityManager::WiFiAPMode::kWiFiAPMode_ApplicationControlled; + } + + if (mode != ConnectivityManager::WiFiAPMode::kWiFiAPMode_NotSupported) + { + error = ConnectivityMgr().SetWiFiAPMode(mode); + } + else + { + streamer_printf(sout, + "Invalid command: needs to be one of the following modes:\r\n" + "disable\r\n" + "enable\r\n" + "on_demand\r\n" + "on_demand_no_sta\r\n" + "app_ctrl\r\n"); + error = CHIP_ERROR_INVALID_ARGUMENT; + } + } + } + else if (strcmp(argv[0], "active") == 0) + { + bool isState = ConnectivityMgr().IsWiFiAPActive(); + streamer_printf(sout, "%s\r\n", (isState) ? "true" : "false"); + } + else if (strcmp(argv[0], "controlled") == 0) + { + bool isState = ConnectivityMgr().IsWiFiAPApplicationControlled(); + streamer_printf(sout, "%s\r\n", (isState) ? "true" : "false"); + } + else if (strcmp(argv[0], "start") == 0) + { + ConnectivityMgr().DemandStartWiFiAP(); + streamer_printf(sout, "start AP mode\r\n"); + } + else if (strcmp(argv[0], "stop") == 0) + { + ConnectivityMgr().StopOnDemandWiFiAP(); + streamer_printf(sout, "stop AP mode\r\n"); + } + else if (strcmp(argv[0], "idle_timeout") == 0) + { + uint32_t interval = ConnectivityMgr().GetWiFiAPIdleTimeoutMS(); + streamer_printf(sout, "WiFi AP Idle Timeout (in seconds): %d\r\n", interval / 1000); + } + else if (strcmp(argv[0], "set_idle") == 0) + { + if (argc < 2) + { + streamer_printf(sout, "Invalid command: needs to specify AP Idle Timeout (in seconds):\r\n"); + error = CHIP_ERROR_INVALID_ARGUMENT; + } + else + { + uint32_t timeout = std::stoi(argv[1]) * 1000; + + ConnectivityMgr().SetWiFiAPIdleTimeoutMS(timeout); + } + } + else + { + ExitNow(error = CHIP_ERROR_INVALID_ARGUMENT); + } + +exit: + PlatformMgr().UnlockChipStack(); + return error; +} + +int cmd_device_connect(int argc, char ** argv) +{ + streamer_t * sout = streamer_get(); + + CHIP_ERROR error = CHIP_NO_ERROR; + + VerifyOrExit(argc > 0, error = CHIP_ERROR_INVALID_ARGUMENT); + + VerifyOrExit(PlatformMgr().TryLockChipStack(), error = CHIP_ERROR_INVALID_ARGUMENT); + + if (argc < 2) + { + streamer_printf(sout, + "Invalid command: needs two arguments " + "(network ssid and password)\r\n"); + error = CHIP_ERROR_INVALID_ARGUMENT; + } + else if (strlen(argv[0]) > 32) + { + streamer_printf(sout, "Invalid network SSID\r\n"); + error = CHIP_ERROR_INVALID_ARGUMENT; + } + else + { + streamer_printf(sout, "Connect to WiFi network: SSID: %s\r\n", argv[0]); + + error = ConnectivityMgrImpl().ProvisionWiFiNetwork(argv[0], argv[1]); + + if (error != CHIP_NO_ERROR) + { + streamer_printf(sout, "Failed to connect to WiFi network: %s\r\n", chip::ErrorStr(error)); + } + } + exit: PlatformMgr().UnlockChipStack(); return error; @@ -695,7 +932,9 @@ static const shell_command_t cmds_device[] = { { &cmd_device_thread, "thread", "Control the Thread interface. Usage: device thread " }, #endif #if CHIP_DEVICE_CONFIG_ENABLE_WPA - { &cmd_device_sta, "sta", "Control the WiFi sta interface. Usage: device sta " }, + { &cmd_device_sta, "sta", "Control the WiFi STA interface. Usage: device sta " }, + { &cmd_device_ap, "ap", "Control the WiFi AP interface. Usage: device ap " }, + { &cmd_device_connect, "connect", "Join the network with the given SSID and PSK. Usage: device connect " }, #endif }; diff --git a/examples/temperature-measurement-app/esp32/Makefile b/examples/temperature-measurement-app/esp32/Makefile index 2444cc08f35ba9..88502c0f08b0c7 100644 --- a/examples/temperature-measurement-app/esp32/Makefile +++ b/examples/temperature-measurement-app/esp32/Makefile @@ -19,7 +19,7 @@ # project subdirectory. # -PROJECT_NAME := chip-wifi-echo +PROJECT_NAME := chip-temperature-measurement-app EXTRA_COMPONENT_DIRS += $(PROJECT_PATH)/third_party/connectedhomeip/config/esp32/components \ $(PROJECT_PATH)/../../common/m5stack-tft/repo/components \ diff --git a/examples/temperature-measurement-app/esp32/main/CHIPDeviceManager.cpp b/examples/temperature-measurement-app/esp32/main/CHIPDeviceManager.cpp index 15fa68ddd1bc4c..f7c557062de632 100644 --- a/examples/temperature-measurement-app/esp32/main/CHIPDeviceManager.cpp +++ b/examples/temperature-measurement-app/esp32/main/CHIPDeviceManager.cpp @@ -25,11 +25,14 @@ #include #include "CHIPDeviceManager.h" +#include #include #include #include #include +using namespace ::chip; + namespace chip { namespace DeviceManager { @@ -60,11 +63,11 @@ CHIP_ERROR CHIPDeviceManager::Init(CHIPDeviceManagerCallbacks * cb) switch (static_cast(CONFIG_RENDEZVOUS_MODE)) { case RendezvousInformationFlags::kBLE: - ConnectivityMgr().SetBLEAdvertisingEnabled(ConnectivityManager::kCHIPoBLEServiceMode_Enabled); + ConnectivityMgr().SetBLEAdvertisingEnabled(true); break; case RendezvousInformationFlags::kWiFi: - ConnectivityMgr().SetBLEAdvertisingEnabled(ConnectivityManager::kCHIPoBLEServiceMode_Disabled); + ConnectivityMgr().SetBLEAdvertisingEnabled(false); ConnectivityMgr().SetWiFiAPMode(ConnectivityManager::kWiFiAPMode_Enabled); break; @@ -92,18 +95,16 @@ CHIP_ERROR CHIPDeviceManager::Init(CHIPDeviceManagerCallbacks * cb) exit: return err; } +} // namespace DeviceManager +} // namespace chip -extern "C" { -void emberAfPostAttributeChangeCallback(uint8_t endpoint, EmberAfClusterId clusterId, EmberAfAttributeId attributeId, uint8_t mask, +void emberAfPostAttributeChangeCallback(EndpointId endpointId, ClusterId clusterId, AttributeId attributeId, uint8_t mask, uint16_t manufacturerCode, uint8_t type, uint8_t size, uint8_t * value) { - CHIPDeviceManagerCallbacks * cb = CHIPDeviceManager::GetInstance().GetCHIPDeviceManagerCallbacks(); + chip::DeviceManager::CHIPDeviceManagerCallbacks * cb = + chip::DeviceManager::CHIPDeviceManager::GetInstance().GetCHIPDeviceManagerCallbacks(); if (cb != nullptr) { - cb->PostAttributeChangeCallback(endpoint, clusterId, attributeId, mask, manufacturerCode, type, size, value); + cb->PostAttributeChangeCallback(endpointId, clusterId, attributeId, mask, manufacturerCode, type, size, value); } } -} // extern "C" - -} // namespace DeviceManager -} // namespace chip diff --git a/examples/temperature-measurement-app/esp32/main/DeviceCallbacks.cpp b/examples/temperature-measurement-app/esp32/main/DeviceCallbacks.cpp index e9133d722acb74..c232b7e4ec5c63 100644 --- a/examples/temperature-measurement-app/esp32/main/DeviceCallbacks.cpp +++ b/examples/temperature-measurement-app/esp32/main/DeviceCallbacks.cpp @@ -24,17 +24,15 @@ **/ #include "DeviceCallbacks.h" +#include "../gen/attribute-id.h" +#include "../gen/cluster-id.h" #include "esp_heap_caps.h" #include "esp_log.h" #include -extern "C" { -#include "../gen/attribute-id.h" -#include "../gen/cluster-id.h" -} // extern "C" - static const char * TAG = "echo-devicecallbacks"; +using namespace ::chip; using namespace ::chip::Inet; using namespace ::chip::System; using namespace ::chip::DeviceLayer; @@ -55,9 +53,8 @@ void DeviceCallbacks::DeviceEventCallback(const ChipDeviceEvent * event, intptr_ ESP_LOGI(TAG, "Current free heap: %d\n", heap_caps_get_free_size(MALLOC_CAP_8BIT)); } -void DeviceCallbacks::PostAttributeChangeCallback(uint8_t endpointId, EmberAfClusterId clusterId, EmberAfAttributeId attributeId, - uint8_t mask, uint16_t manufacturerCode, uint8_t type, uint8_t size, - uint8_t * value) +void DeviceCallbacks::PostAttributeChangeCallback(EndpointId endpointId, ClusterId clusterId, AttributeId attributeId, uint8_t mask, + uint16_t manufacturerCode, uint8_t type, uint8_t size, uint8_t * value) { ESP_LOGI(TAG, "PostAttributeChangeCallback - Cluster ID: '0x%04x', EndPoint ID: '0x%02x', Attribute ID: '0x%04x'", clusterId, endpointId, attributeId); diff --git a/examples/temperature-measurement-app/esp32/main/Kconfig.projbuild b/examples/temperature-measurement-app/esp32/main/Kconfig.projbuild index 29e80d2e94b9ae..4889800b5f3538 100644 --- a/examples/temperature-measurement-app/esp32/main/Kconfig.projbuild +++ b/examples/temperature-measurement-app/esp32/main/Kconfig.projbuild @@ -18,7 +18,7 @@ # Configuration options CHIP ESP32 demo application. # -menu "WiFi Echo Demo" +menu "Demo" choice prompt "Device Type" diff --git a/examples/temperature-measurement-app/esp32/main/RendezvousDeviceDelegate.cpp b/examples/temperature-measurement-app/esp32/main/RendezvousDeviceDelegate.cpp deleted file mode 100644 index 5f7ad8d5c9c142..00000000000000 --- a/examples/temperature-measurement-app/esp32/main/RendezvousDeviceDelegate.cpp +++ /dev/null @@ -1,78 +0,0 @@ -/* - * - * 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. - */ - -#include "RendezvousDeviceDelegate.h" - -#include "esp_log.h" -#include -#include -#include -#include - -using namespace ::chip; -using namespace ::chip::Inet; -using namespace ::chip::System; - -extern NodeId kLocalNodeId; -extern void PairingComplete(SecurePairingSession * pairing); - -static const char * TAG = "rendezvous-devicedelegate"; - -RendezvousDeviceDelegate::RendezvousDeviceDelegate() -{ - CHIP_ERROR err = CHIP_NO_ERROR; - RendezvousParameters params; - - uint32_t setupPINCode; - err = DeviceLayer::ConfigurationMgr().GetSetupPinCode(setupPINCode); - SuccessOrExit(err); - - params.SetSetupPINCode(setupPINCode).SetLocalNodeId(kLocalNodeId).SetBleLayer(DeviceLayer::ConnectivityMgr().GetBleLayer()); - - mRendezvousSession = new RendezvousSession(this); - err = mRendezvousSession->Init(params); - -exit: - if (err != CHIP_NO_ERROR) - { - ESP_LOGE(TAG, "RendezvousDeviceDelegate Init failure: %s", ErrorStr(err)); - } -} - -void RendezvousDeviceDelegate::OnRendezvousStatusUpdate(RendezvousSessionDelegate::Status status, CHIP_ERROR err) -{ - if (err != CHIP_NO_ERROR) - { - ESP_LOGE(TAG, "OnRendezvousStatusUpdate: %s, status %d", ErrorStr(err), status); - } - - switch (status) - { - case RendezvousSessionDelegate::SecurePairingSuccess: - ESP_LOGI(TAG, "Device completed SPAKE2+ handshake\n"); - PairingComplete(&mRendezvousSession->GetPairingSession()); - break; - - case RendezvousSessionDelegate::NetworkProvisioningSuccess: - - ESP_LOGI(TAG, "Device was assigned an ip address\n"); - break; - - default: - break; - }; -} diff --git a/examples/temperature-measurement-app/esp32/main/ResponseServer.cpp b/examples/temperature-measurement-app/esp32/main/ResponseServer.cpp deleted file mode 100644 index f2c5c9d92ce642..00000000000000 --- a/examples/temperature-measurement-app/esp32/main/ResponseServer.cpp +++ /dev/null @@ -1,171 +0,0 @@ -/* - * - * 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. - */ - -#include "esp_event.h" -#include "esp_log.h" -#include "esp_system.h" -#include "esp_wifi.h" -#include "freertos/FreeRTOS.h" -#include "freertos/task.h" -#include "nvs_flash.h" - -#include -#include -#include -#include -#include - -#include "lwip/err.h" -#include "lwip/sockets.h" -#include "lwip/sys.h" -#include - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include "DataModelHandler.h" - -static const char * TAG = "echo_server"; - -using namespace ::chip; -using namespace ::chip::Inet; -using namespace ::chip::Transport; - -extern const NodeId kLocalNodeId = 12344321; - -namespace { - -class ResponseServerCallback : public SecureSessionMgrDelegate -{ -public: - void OnMessageReceived(const PacketHeader & header, const PayloadHeader & payloadHeader, Transport::PeerConnectionState * state, - System::PacketBuffer * buffer, SecureSessionMgrBase * mgr) override - { - CHIP_ERROR err; - const size_t data_len = buffer->DataLength(); - - // as soon as a client connects, assume it is connected - VerifyOrExit(mgr != nullptr && buffer != nullptr, ESP_LOGE(TAG, "Received data but couldn't process it...")); - VerifyOrExit(state->GetPeerNodeId() != kUndefinedNodeId, ESP_LOGE(TAG, "Unknown source for received message")); - - { - char src_addr[Transport::PeerAddress::kMaxToStringSize]; - - state->GetPeerAddress().ToString(src_addr, sizeof(src_addr)); - - ESP_LOGI(TAG, "Packet received from %s: %zu bytes", src_addr, static_cast(data_len)); - } - - HandleDataModelMessage(header, buffer, mgr); - buffer = nullptr; - - exit: - - // SendTo calls Free on the buffer without an AddRef, if SendTo was not called, free the buffer. - if (buffer != nullptr) - { - System::PacketBuffer::Free(buffer); - } - } - - void OnReceiveError(CHIP_ERROR error, const Transport::PeerAddress & source, SecureSessionMgrBase * mgr) override - { - ESP_LOGE(TAG, "ERROR: %s\n Got UDP error", ErrorStr(error)); - } - - void OnNewConnection(Transport::PeerConnectionState * state, SecureSessionMgrBase * mgr) override - { - ESP_LOGI(TAG, "Received a new connection."); - } - -private: - /** - * A data model message has nonzero length and always has a first byte whose - * value is one of: 0x00, 0x01, 0x02, 0x03. See chipZclEncodeZclHeader for the - * construction of the message and in particular the first byte. - * - * Echo messages should generally not have a first byte with those values, so we - * can use that to try to distinguish between the two. - */ - bool ContentMayBeADataModelMessage(System::PacketBuffer * buffer) - { - const size_t data_len = buffer->DataLength(); - const uint8_t * data = buffer->Start(); - bool maybeDataModelMessage = true; - - // Has to have nonzero length. - VerifyOrExit(data_len > 0, maybeDataModelMessage = false); - - // Has to have a valid first byte value. - VerifyOrExit(data[0] < 0x04, maybeDataModelMessage = false); - - exit: - return maybeDataModelMessage; - } -}; - -ResponseServerCallback gCallbacks; - -SecureSessionMgr - sessions; - -} // namespace - -namespace chip { -SecureSessionMgrBase & SessionManager() -{ - return sessions; -} -} // namespace chip - -void PairingComplete(SecurePairingSession * pairing) -{ - Optional peer(Transport::Type::kUndefined); - sessions.NewPairing(peer, pairing); -} - -// The echo server assumes the platform's networking has been setup already -void startServer() -{ - CHIP_ERROR err = CHIP_NO_ERROR; - err = sessions.Init(kLocalNodeId, &DeviceLayer::SystemLayer, - UdpListenParameters(&DeviceLayer::InetLayer).SetAddressType(kIPAddressType_IPv6).SetInterfaceId(nullptr), - UdpListenParameters(&DeviceLayer::InetLayer).SetAddressType(kIPAddressType_IPv4)); - SuccessOrExit(err); - - sessions.SetDelegate(&gCallbacks); - -exit: - if (err != CHIP_NO_ERROR) - { - ESP_LOGE(TAG, "ERROR setting up transport: %s", ErrorStr(err)); - } - else - { - ESP_LOGI(TAG, "Echo Server Listening..."); - } -} diff --git a/examples/temperature-measurement-app/esp32/main/component.mk b/examples/temperature-measurement-app/esp32/main/component.mk index a1fa47a35339f0..9762d2b50b1e47 100644 --- a/examples/temperature-measurement-app/esp32/main/component.mk +++ b/examples/temperature-measurement-app/esp32/main/component.mk @@ -26,11 +26,13 @@ COMPONENT_SRCDIRS := gen \ ../third_party/connectedhomeip/examples/common/chip-app-server \ ../third_party/connectedhomeip/src/app/util \ + ../third_party/connectedhomeip/src/app/reporting \ ../third_party/connectedhomeip/src/app/clusters/basic \ ../third_party/connectedhomeip/src/app/clusters/temperature-measurement-server \ COMPONENT_EXTRA_INCLUDES := $(PROJECT_PATH)/third_party/connectedhomeip/src/app/util \ + $(PROJECT_PATH)/third_party/connectedhomeip/src/app/reporting \ $(PROJECT_PATH)/third_party/connectedhomeip/examples/common/chip-app-server/include \ $(PROJECT_PATH)/third_party/connectedhomeip/src diff --git a/examples/temperature-measurement-app/esp32/main/gen/af-structs.h b/examples/temperature-measurement-app/esp32/main/gen/af-structs.h index 12c9364e76becd..6d04f3faa8e82d 100644 --- a/examples/temperature-measurement-app/esp32/main/gen/af-structs.h +++ b/examples/temperature-measurement-app/esp32/main/gen/af-structs.h @@ -1,4 +1,5 @@ -/** + +/* * * Copyright (c) 2020 Project CHIP Authors * @@ -14,218 +15,196 @@ * 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 SILABS_EMBER_AF_STRUCTS -#define SILABS_EMBER_AF_STRUCTS +// Prevent multiple inclusion +#pragma once -// Generated structs from the metadata -// Struct for IasAceZoneStatusResult -typedef struct _IasAceZoneStatusResult +#include "basic-types.h" +#include "enums.h" +#include + +// Struct for BlockThreshold +typedef struct _BlockThreshold { - uint8_t zoneId; - uint16_t zoneStatus; -} IasAceZoneStatusResult; + uint8_t blockThreshold; + uint8_t priceControl; + uint32_t blockPeriodStartTime; + uint32_t blockPeriodDurationMinutes; + uint8_t fuelType; + uint32_t standingCharge; +} EmberAfBlockThreshold; -// Struct for ReadAttributeStatusRecord -typedef struct _ReadAttributeStatusRecord +// Struct for BlockThresholdSubPayload +typedef struct _BlockThresholdSubPayload { - uint16_t attributeId; - uint8_t status; - uint8_t attributeType; - uint8_t * attributeLocation; -} ReadAttributeStatusRecord; + uint8_t tierNumberOfBlockThresholds; + uint8_t * blockThreshold; +} EmberAfBlockThresholdSubPayload; -// Struct for WriteAttributeRecord -typedef struct _WriteAttributeRecord +// Struct for ChatParticipant +typedef struct _ChatParticipant { - uint16_t attributeId; - uint8_t attributeType; - uint8_t * attributeLocation; -} WriteAttributeRecord; + uint16_t uid; + uint8_t * nickname; +} EmberAfChatParticipant; -// Struct for WriteAttributeStatusRecord -typedef struct _WriteAttributeStatusRecord +// Struct for ChatRoom +typedef struct _ChatRoom { - uint8_t status; - uint16_t attributeId; -} WriteAttributeStatusRecord; + uint16_t cid; + uint8_t * name; +} EmberAfChatRoom; // Struct for ConfigureReportingRecord typedef struct _ConfigureReportingRecord { uint8_t direction; - uint16_t attributeId; + chip::AttributeId attributeId; uint8_t attributeType; uint16_t minimumReportingInterval; uint16_t maximumReportingInterval; uint8_t * reportableChangeLocation; uint16_t timeoutPeriod; -} ConfigureReportingRecord; +} EmberAfConfigureReportingRecord; // Struct for ConfigureReportingStatusRecord typedef struct _ConfigureReportingStatusRecord { uint8_t status; uint8_t direction; - uint16_t attributeId; -} ConfigureReportingStatusRecord; - -// Struct for ReadReportingConfigurationRecord -typedef struct _ReadReportingConfigurationRecord -{ - uint8_t status; - uint8_t direction; - uint16_t attributeId; - uint8_t attributeType; - uint16_t minimumReportingInterval; - uint16_t maximumReportingInterval; - uint8_t * reportableChangeLocation; - uint16_t timeoutPeriod; -} ReadReportingConfigurationRecord; + chip::AttributeId attributeId; +} EmberAfConfigureReportingStatusRecord; -// Struct for ReadReportingConfigurationAttributeRecord -typedef struct _ReadReportingConfigurationAttributeRecord +// Struct for DebtPayload +typedef struct _DebtPayload { - uint8_t direction; - uint16_t attributeId; -} ReadReportingConfigurationAttributeRecord; + uint32_t collectionTime; + uint32_t amountCollected; + uint8_t debtType; + uint32_t outstandingDebt; +} EmberAfDebtPayload; -// Struct for ReportAttributeRecord -typedef struct _ReportAttributeRecord +// Struct for DeviceInformationRecord +typedef struct _DeviceInformationRecord { - uint16_t attributeId; - uint8_t attributeType; - uint8_t * attributeLocation; -} ReportAttributeRecord; + uint64_t ieeeAddress; + chip::EndpointId endpointId; + uint16_t profileId; + uint16_t deviceId; + uint8_t version; + uint8_t groupIdCount; + uint8_t sort; +} EmberAfDeviceInformationRecord; // Struct for DiscoverAttributesInfoRecord typedef struct _DiscoverAttributesInfoRecord { - uint16_t attributeId; + chip::AttributeId attributeId; uint8_t attributeType; -} DiscoverAttributesInfoRecord; +} EmberAfDiscoverAttributesInfoRecord; -// Struct for ExtendedDiscoverAttributesInfoRecord -typedef struct _ExtendedDiscoverAttributesInfoRecord +// Struct for EndpointInformationRecord +typedef struct _EndpointInformationRecord { - uint16_t attributeId; - uint8_t attributeType; - uint8_t attributeAccessControl; -} ExtendedDiscoverAttributesInfoRecord; + uint16_t networkAddress; + chip::EndpointId endpointId; + uint16_t profileId; + uint16_t deviceId; + uint8_t version; +} EmberAfEndpointInformationRecord; -// Struct for ReadStructuredAttributeRecord -typedef struct _ReadStructuredAttributeRecord -{ - uint16_t attributeId; - uint8_t indicator; - uint16_t indicies; -} ReadStructuredAttributeRecord; +// Void typedef for EmberAfEphemeralData which is empty. +// this will result in all the references to the data being as uint8_t* +typedef uint8_t EmberAfEphemeralData; -// Struct for WriteStructuredAttributeRecord -typedef struct _WriteStructuredAttributeRecord +// Struct for EventConfigurationPayload +typedef struct _EventConfigurationPayload { - uint16_t attributeId; - uint8_t indicator; - uint16_t indicies; - uint8_t attributeType; - uint8_t * attributeLocation; -} WriteStructuredAttributeRecord; + uint16_t eventId; + uint8_t eventConfiguration; +} EmberAfEventConfigurationPayload; -// Struct for WriteStructuredAttributeStatusRecord -typedef struct _WriteStructuredAttributeStatusRecord +// Struct for EventLogPayload +typedef struct _EventLogPayload { - uint8_t status; - uint16_t attributeId; - uint8_t indicator; - uint16_t indicies; -} WriteStructuredAttributeStatusRecord; + uint8_t logId; + uint16_t eventId; + uint32_t eventTime; + uint8_t * eventData; +} EmberAfEventLogPayload; -// Struct for SceneExtensionAttributeInfo -typedef struct _SceneExtensionAttributeInfo +// Struct for ExtendedDiscoverAttributesInfoRecord +typedef struct _ExtendedDiscoverAttributesInfoRecord { + chip::AttributeId attributeId; uint8_t attributeType; - uint8_t * attributeLocation; -} SceneExtensionAttributeInfo; + uint8_t attributeAccessControl; +} EmberAfExtendedDiscoverAttributesInfoRecord; -// Struct for SceneExtensionFieldSet -typedef struct _SceneExtensionFieldSet +// Struct for GpPairingConfigurationGroupList +typedef struct _GpPairingConfigurationGroupList { - uint16_t clusterId; - uint8_t length; - uint8_t value; -} SceneExtensionFieldSet; + uint16_t SinkGroup; + uint16_t Alias; +} EmberAfGpPairingConfigurationGroupList; -// Struct for BlockThreshold -typedef struct _BlockThreshold +// Struct for GpTranslationTableUpdateTranslation +typedef struct _GpTranslationTableUpdateTranslation { - uint8_t blockThreshold; - uint8_t priceControl; - uint32_t blockPeriodStartTime; - uint32_t blockPeriodDurationMinutes; - uint8_t fuelType; - uint32_t standingCharge; -} BlockThreshold; + uint8_t index; + uint8_t gpdCommandId; + chip::EndpointId endpoint; + uint16_t profile; + uint16_t cluster; + uint8_t zigbeeCommandId; + uint8_t * zigbeeCommandPayload; + uint8_t * additionalInfoBlock; +} EmberAfGpTranslationTableUpdateTranslation; -// Struct for Notification -typedef struct _Notification +// Struct for GroupInformationRecord +typedef struct _GroupInformationRecord { - uint16_t contentId; - uint8_t statusFeedback; -} Notification; + chip::GroupId groupId; + uint8_t groupType; +} EmberAfGroupInformationRecord; + +// Struct for IasAceZoneStatusResult +typedef struct _IasAceZoneStatusResult +{ + uint8_t zoneId; + uint16_t zoneStatus; +} EmberAfIasAceZoneStatusResult; + +// Void typedef for EmberAfIdentity which is empty. +// this will result in all the references to the data being as uint8_t* +typedef uint8_t EmberAfIdentity; // Struct for NeighborInfo typedef struct _NeighborInfo { - uint8_t * neighbor; + uint64_t neighbor; int16_t x; int16_t y; int16_t z; int8_t rssi; uint8_t numberRssiMeasurements; -} NeighborInfo; - -// Struct for ChatParticipant -typedef struct _ChatParticipant -{ - uint16_t uid; - uint8_t * nickname; -} ChatParticipant; - -// Struct for ChatRoom -typedef struct _ChatRoom -{ - uint16_t cid; - uint8_t * name; -} ChatRoom; +} EmberAfNeighborInfo; // Struct for NodeInformation typedef struct _NodeInformation { uint16_t uid; uint16_t address; - uint8_t endpoint; + chip::EndpointId endpoint; uint8_t * nickname; -} NodeInformation; +} EmberAfNodeInformation; -// Struct for ScheduledPhase -typedef struct _ScheduledPhase -{ - uint8_t energyPhaseId; - uint16_t scheduledTime; -} ScheduledPhase; - -// Struct for TransferredPhase -typedef struct _TransferredPhase +// Struct for Notification +typedef struct _Notification { - uint8_t energyPhaseId; - uint8_t macroPhaseId; - uint16_t expectedDuration; - uint16_t peakPower; - uint16_t energy; - uint16_t maxActivationDelay; -} TransferredPhase; + uint16_t contentId; + uint8_t statusFeedback; +} EmberAfNotification; // Struct for PowerProfileRecord typedef struct _PowerProfileRecord @@ -234,192 +213,215 @@ typedef struct _PowerProfileRecord uint8_t energyPhaseId; uint8_t powerProfileRemoteControl; uint8_t powerProfileState; -} PowerProfileRecord; +} EmberAfPowerProfileRecord; // Struct for PriceMatrixSubPayload typedef struct _PriceMatrixSubPayload { uint8_t tierBlockId; uint32_t price; -} PriceMatrixSubPayload; +} EmberAfPriceMatrixSubPayload; -// Struct for BlockThresholdSubPayload -typedef struct _BlockThresholdSubPayload +// Struct for Protocol +typedef struct _Protocol { - uint8_t tierNumberOfBlockThresholds; - uint8_t * blockThreshold; -} BlockThresholdSubPayload; + uint16_t manufacturerCode; + uint8_t protocolId; +} EmberAfProtocol; -// Struct for TierLabelsPayload -typedef struct _TierLabelsPayload +// Struct for ReadAttributeStatusRecord +typedef struct _ReadAttributeStatusRecord { - uint8_t tierId; - uint8_t * tierLabel; -} TierLabelsPayload; + chip::AttributeId attributeId; + uint8_t status; + uint8_t attributeType; + uint8_t * attributeLocation; +} EmberAfReadAttributeStatusRecord; -// Void typedef for Signature which is empty. -// this will result in all the references to the data being as uint8_t* -typedef uint8_t Signature; +// Struct for ReadReportingConfigurationAttributeRecord +typedef struct _ReadReportingConfigurationAttributeRecord +{ + uint8_t direction; + chip::AttributeId attributeId; +} EmberAfReadReportingConfigurationAttributeRecord; -// Struct for SnapshotResponsePayload -typedef struct _SnapshotResponsePayload +// Struct for ReadReportingConfigurationRecord +typedef struct _ReadReportingConfigurationRecord { - uint8_t snapshotScheduleId; - uint8_t snapshotScheduleConfirmation; -} SnapshotResponsePayload; + uint8_t status; + uint8_t direction; + chip::AttributeId attributeId; + uint8_t attributeType; + uint16_t minimumReportingInterval; + uint16_t maximumReportingInterval; + uint8_t * reportableChangeLocation; + uint16_t timeoutPeriod; +} EmberAfReadReportingConfigurationRecord; -// Struct for SnapshotSchedulePayload -typedef struct _SnapshotSchedulePayload +// Struct for ReadStructuredAttributeRecord +typedef struct _ReadStructuredAttributeRecord { - uint8_t snapshotScheduleId; - uint32_t snapshotStartTime; - uint32_t snapshotSchedule; - uint8_t snapshotPayloadType; - uint32_t snapshotCause; -} SnapshotSchedulePayload; + chip::AttributeId attributeId; + uint8_t indicator; + uint16_t indicies; +} EmberAfReadStructuredAttributeRecord; -// Struct for Protocol -typedef struct _Protocol +// Struct for ReportAttributeRecord +typedef struct _ReportAttributeRecord { - uint16_t manufacturerCode; - uint8_t protocolId; -} Protocol; + chip::AttributeId attributeId; + uint8_t attributeType; + uint8_t * attributeLocation; +} EmberAfReportAttributeRecord; -// Struct for TopUpPayload -typedef struct _TopUpPayload +// Struct for SceneExtensionAttributeInfo +typedef struct _SceneExtensionAttributeInfo { - uint8_t * topUpCode; - int32_t topUpAmount; - uint32_t topUpTime; -} TopUpPayload; + uint8_t attributeType; + uint8_t * attributeLocation; +} EmberAfSceneExtensionAttributeInfo; -// Struct for DebtPayload -typedef struct _DebtPayload +// Struct for SceneExtensionFieldSet +typedef struct _SceneExtensionFieldSet { - uint32_t collectionTime; - uint32_t amountCollected; - uint8_t debtType; - uint32_t outstandingDebt; -} DebtPayload; + chip::ClusterId clusterId; + uint8_t length; + uint8_t value; +} EmberAfSceneExtensionFieldSet; // Struct for ScheduleEntry typedef struct _ScheduleEntry { uint16_t startTime; uint8_t activePriceTierOrFriendlyCreditEnable; -} ScheduleEntry; +} EmberAfScheduleEntry; -// Struct for ScheduleEntryRateSwitchTimes -typedef struct _ScheduleEntryRateSwitchTimes +// Struct for ScheduleEntryAuxilliaryLoadSwitchTimes +typedef struct _ScheduleEntryAuxilliaryLoadSwitchTimes { uint16_t startTime; - uint8_t priceTier; -} ScheduleEntryRateSwitchTimes; + uint8_t auxiliaryLoadSwitchState; +} EmberAfScheduleEntryAuxilliaryLoadSwitchTimes; // Struct for ScheduleEntryFriendlyCreditSwitchTimes typedef struct _ScheduleEntryFriendlyCreditSwitchTimes { uint16_t startTime; uint8_t friendlyCreditEnable; -} ScheduleEntryFriendlyCreditSwitchTimes; +} EmberAfScheduleEntryFriendlyCreditSwitchTimes; -// Struct for ScheduleEntryAuxilliaryLoadSwitchTimes -typedef struct _ScheduleEntryAuxilliaryLoadSwitchTimes +// Struct for ScheduleEntryRateSwitchTimes +typedef struct _ScheduleEntryRateSwitchTimes { uint16_t startTime; - uint8_t auxiliaryLoadSwitchState; -} ScheduleEntryAuxilliaryLoadSwitchTimes; + uint8_t priceTier; +} EmberAfScheduleEntryRateSwitchTimes; + +// Struct for ScheduledPhase +typedef struct _ScheduledPhase +{ + uint8_t energyPhaseId; + uint16_t scheduledTime; +} EmberAfScheduledPhase; // Struct for SeasonEntry typedef struct _SeasonEntry { uint32_t seasonStartDate; uint8_t weekIdRef; -} SeasonEntry; +} EmberAfSeasonEntry; + +// Void typedef for EmberAfSignature which is empty. +// this will result in all the references to the data being as uint8_t* +typedef uint8_t EmberAfSignature; + +// Void typedef for EmberAfSmac which is empty. +// this will result in all the references to the data being as uint8_t* +typedef uint8_t EmberAfSmac; + +// Struct for SnapshotResponsePayload +typedef struct _SnapshotResponsePayload +{ + uint8_t snapshotScheduleId; + uint8_t snapshotScheduleConfirmation; +} EmberAfSnapshotResponsePayload; + +// Struct for SnapshotSchedulePayload +typedef struct _SnapshotSchedulePayload +{ + uint8_t snapshotScheduleId; + uint32_t snapshotStartTime; + uint32_t snapshotSchedule; + uint8_t snapshotPayloadType; + uint32_t snapshotCause; +} EmberAfSnapshotSchedulePayload; // Struct for SpecialDay typedef struct _SpecialDay { uint32_t specialDayDate; uint8_t dayIdRef; -} SpecialDay; +} EmberAfSpecialDay; -// Struct for EventConfigurationPayload -typedef struct _EventConfigurationPayload +// Struct for TierLabelsPayload +typedef struct _TierLabelsPayload { - uint16_t eventId; - uint8_t eventConfiguration; -} EventConfigurationPayload; + uint8_t tierId; + uint8_t * tierLabel; +} EmberAfTierLabelsPayload; -// Struct for EventLogPayload -typedef struct _EventLogPayload +// Struct for TopUpPayload +typedef struct _TopUpPayload { - uint8_t logId; - uint16_t eventId; - uint32_t eventTime; - uint8_t * eventData; -} EventLogPayload; - -// Void typedef for Identity which is empty. -// this will result in all the references to the data being as uint8_t* -typedef uint8_t Identity; - -// Void typedef for EphemeralData which is empty. -// this will result in all the references to the data being as uint8_t* -typedef uint8_t EphemeralData; - -// Void typedef for Smac which is empty. -// this will result in all the references to the data being as uint8_t* -typedef uint8_t Smac; + uint8_t * topUpCode; + int32_t topUpAmount; + uint32_t topUpTime; +} EmberAfTopUpPayload; -// Struct for DeviceInformationRecord -typedef struct _DeviceInformationRecord +// Struct for TransferredPhase +typedef struct _TransferredPhase { - uint8_t * ieeeAddress; - uint8_t endpointId; - uint16_t profileId; - uint16_t deviceId; - uint8_t version; - uint8_t groupIdCount; - uint8_t sort; -} DeviceInformationRecord; + uint8_t energyPhaseId; + uint8_t macroPhaseId; + uint16_t expectedDuration; + uint16_t peakPower; + uint16_t energy; + uint16_t maxActivationDelay; +} EmberAfTransferredPhase; -// Struct for GroupInformationRecord -typedef struct _GroupInformationRecord +// Struct for WriteAttributeRecord +typedef struct _WriteAttributeRecord { - uint16_t groupId; - uint8_t groupType; -} GroupInformationRecord; + chip::AttributeId attributeId; + uint8_t attributeType; + uint8_t * attributeLocation; +} EmberAfWriteAttributeRecord; -// Struct for EndpointInformationRecord -typedef struct _EndpointInformationRecord +// Struct for WriteAttributeStatusRecord +typedef struct _WriteAttributeStatusRecord { - uint16_t networkAddress; - uint8_t endpointId; - uint16_t profileId; - uint16_t deviceId; - uint8_t version; -} EndpointInformationRecord; + uint8_t status; + chip::AttributeId attributeId; +} EmberAfWriteAttributeStatusRecord; -// Struct for GpTranslationTableUpdateTranslation -typedef struct _GpTranslationTableUpdateTranslation +// Struct for WriteStructuredAttributeRecord +typedef struct _WriteStructuredAttributeRecord { - uint8_t index; - uint8_t gpdCommandId; - uint8_t endpoint; - uint16_t profile; - uint16_t cluster; - uint8_t zigbeeCommandId; - uint8_t * zigbeeCommandPayload; - uint8_t * additionalInfoBlock; -} GpTranslationTableUpdateTranslation; + chip::AttributeId attributeId; + uint8_t indicator; + uint16_t indicies; + uint8_t attributeType; + uint8_t * attributeLocation; +} EmberAfWriteStructuredAttributeRecord; -// Struct for GpPairingConfigurationGroupList -typedef struct _GpPairingConfigurationGroupList +// Struct for WriteStructuredAttributeStatusRecord +typedef struct _WriteStructuredAttributeStatusRecord { - uint16_t SinkGroup; - uint16_t Alias; -} GpPairingConfigurationGroupList; + uint8_t status; + chip::AttributeId attributeId; + uint8_t indicator; + uint16_t indicies; +} EmberAfWriteStructuredAttributeStatusRecord; // Struct for WwahBeaconSurvey typedef struct _WwahBeaconSurvey @@ -427,13 +429,11 @@ typedef struct _WwahBeaconSurvey uint16_t deviceShort; uint8_t rssi; uint8_t classificationMask; -} WwahBeaconSurvey; +} EmberAfWwahBeaconSurvey; // Struct for WwahClusterStatusToUseTC typedef struct _WwahClusterStatusToUseTC { - uint16_t clusterId; + chip::ClusterId clusterId; uint8_t status; -} WwahClusterStatusToUseTC; - -#endif // SILABS_EMBER_AF_STRUCTS +} EmberAfWwahClusterStatusToUseTC; diff --git a/examples/temperature-measurement-app/esp32/main/gen/att-storage.h b/examples/temperature-measurement-app/esp32/main/gen/att-storage.h index f3122982e72b81..7572c8cbc338fb 100644 --- a/examples/temperature-measurement-app/esp32/main/gen/att-storage.h +++ b/examples/temperature-measurement-app/esp32/main/gen/att-storage.h @@ -1,4 +1,5 @@ -/** + +/* * * Copyright (c) 2020 Project CHIP Authors * @@ -14,13 +15,12 @@ * 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 SILABS_ATTRIBUTE_STORAGE_GEN -#define SILABS_ATTRIBUTE_STORAGE_GEN +// Prevent multiple inclusion +#pragma once // Attribute masks modify how attributes are used by the framework +// // Attribute that has this mask is NOT read-only #define ATTRIBUTE_MASK_WRITABLE (0x01) // Attribute that has this mask is saved to a token @@ -37,6 +37,7 @@ #define ATTRIBUTE_MASK_CLIENT (0x40) // Cluster masks modify how clusters are used by the framework +// // Does this cluster have init function? #define CLUSTER_MASK_INIT_FUNCTION (0x01) // Does this cluster have attribute changed function? @@ -45,7 +46,7 @@ #define CLUSTER_MASK_DEFAULT_RESPONSE_FUNCTION (0x04) // Does this cluster have message sent function? #define CLUSTER_MASK_MESSAGE_SENT_FUNCTION (0x08) -// Does this cluster have manufacturer specific attribute changed funciton? +// Does this cluster have manufacturer specific attribute changed function? #define CLUSTER_MASK_MANUFACTURER_SPECIFIC_ATTRIBUTE_CHANGED_FUNCTION (0x10) // Does this cluster have pre-attribute changed function? #define CLUSTER_MASK_PRE_ATTRIBUTE_CHANGED_FUNCTION (0x20) @@ -55,6 +56,7 @@ #define CLUSTER_MASK_CLIENT (0x80) // Command masks modify meanings of commands +// // Is sending of this client command supported #define COMMAND_MASK_OUTGOING_CLIENT (0x01) // Is sending of this server command supported @@ -65,4 +67,3 @@ #define COMMAND_MASK_INCOMING_SERVER (0x08) // Is this command manufacturer specific? #define COMMAND_MASK_MANUFACTURER_SPECIFIC (0x10) -#endif // SILABS_ATTRIBUTE_STORAGE_GEN diff --git a/examples/temperature-measurement-app/esp32/main/gen/attribute-id.h b/examples/temperature-measurement-app/esp32/main/gen/attribute-id.h index 0b3523bb7e9459..648809ca67cd83 100644 --- a/examples/temperature-measurement-app/esp32/main/gen/attribute-id.h +++ b/examples/temperature-measurement-app/esp32/main/gen/attribute-id.h @@ -1,4 +1,5 @@ -/** + +/* * * Copyright (c) 2020 Project CHIP Authors * @@ -14,4754 +15,4530 @@ * 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 SILABS_EMBER_AF_ATTRIBUTE_ID -#define SILABS_EMBER_AF_ATTRIBUTE_ID +// Prevent multiple inclusion +#pragma once -// Attribute types for cluster: Basic -// Cluster specification level: zcl-7.0-07-5123-07 +// Attribute ids for cluster: Basic // Client attributes -#define ZCL_BASIC_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_BASIC_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_VERSION_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_APPLICATION_VERSION_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_STACK_VERSION_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_HW_VERSION_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_MANUFACTURER_NAME_ATTRIBUTE_ID 0x0004 // Ver.: always -#define ZCL_MODEL_IDENTIFIER_ATTRIBUTE_ID 0x0005 // Ver.: always -#define ZCL_DATE_CODE_ATTRIBUTE_ID 0x0006 // Ver.: always -#define ZCL_POWER_SOURCE_ATTRIBUTE_ID 0x0007 // Ver.: always -#define ZCL_GENERIC_DEVICE_CLASS_ATTRIBUTE_ID 0x0008 // Ver.: since l&o-1.0-15-0014-04 -#define ZCL_GENERIC_DEVICE_TYPE_ATTRIBUTE_ID 0x0009 // Ver.: since l&o-1.0-15-0014-04 -#define ZCL_PRODUCT_CODE_ATTRIBUTE_ID 0x000A // Ver.: since l&o-1.0-15-0014-04 -#define ZCL_PRODUCT_URL_ATTRIBUTE_ID 0x000B // Ver.: since l&o-1.0-15-0014-04 -#define ZCL_LOCATION_DESCRIPTION_ATTRIBUTE_ID 0x0010 // Ver.: always -#define ZCL_PHYSICAL_ENVIRONMENT_ATTRIBUTE_ID 0x0011 // Ver.: always -#define ZCL_DEVICE_ENABLED_ATTRIBUTE_ID 0x0012 // Ver.: always -#define ZCL_ALARM_MASK_ATTRIBUTE_ID 0x0013 // Ver.: always -#define ZCL_DISABLE_LOCAL_CONFIG_ATTRIBUTE_ID 0x0014 // Ver.: always -#define ZCL_CURRENT_LOCALE_ATTRIBUTE_ID 0x0015 // Ver.: always -#define ZCL_SW_BUILD_ID_ATTRIBUTE_ID 0x4000 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_BASIC_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_BASIC_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Power Configuration -// Cluster specification level: zcl-7.0-07-5123-07 +#define ZCL_VERSION_ATTRIBUTE_ID (0x0000) +#define ZCL_APPLICATION_VERSION_ATTRIBUTE_ID (0x0001) +#define ZCL_STACK_VERSION_ATTRIBUTE_ID (0x0002) +#define ZCL_HW_VERSION_ATTRIBUTE_ID (0x0003) +#define ZCL_MANUFACTURER_NAME_ATTRIBUTE_ID (0x0004) +#define ZCL_MODEL_IDENTIFIER_ATTRIBUTE_ID (0x0005) +#define ZCL_DATE_CODE_ATTRIBUTE_ID (0x0006) +#define ZCL_POWER_SOURCE_ATTRIBUTE_ID (0x0007) +#define ZCL_GENERIC_DEVICE_CLASS_ATTRIBUTE_ID (0x0008) +#define ZCL_GENERIC_DEVICE_TYPE_ATTRIBUTE_ID (0x0009) +#define ZCL_PRODUCT_CODE_ATTRIBUTE_ID (0x000A) +#define ZCL_PRODUCT_URL_ATTRIBUTE_ID (0x000B) +#define ZCL_LOCATION_DESCRIPTION_ATTRIBUTE_ID (0x0010) +#define ZCL_PHYSICAL_ENVIRONMENT_ATTRIBUTE_ID (0x0011) +#define ZCL_DEVICE_ENABLED_ATTRIBUTE_ID (0x0012) +#define ZCL_ALARM_MASK_ATTRIBUTE_ID (0x0013) +#define ZCL_DISABLE_LOCAL_CONFIG_ATTRIBUTE_ID (0x0014) +#define ZCL_SW_BUILD_ID_ATTRIBUTE_ID (0x4000) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Power Configuration // Client attributes -#define ZCL_POWER_CONFIG_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_POWER_CONFIG_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_MAINS_VOLTAGE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_MAINS_FREQUENCY_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_MAINS_ALARM_MASK_ATTRIBUTE_ID 0x0010 // Ver.: always -#define ZCL_MAINS_VOLTAGE_MIN_THRESHOLD_ATTRIBUTE_ID 0x0011 // Ver.: always -#define ZCL_MAINS_VOLTAGE_MAX_THRESHOLD_ATTRIBUTE_ID 0x0012 // Ver.: always -#define ZCL_MAINS_VOLTAGE_DWELL_TRIP_POINT_ATTRIBUTE_ID 0x0013 // Ver.: always -#define ZCL_BATTERY_VOLTAGE_ATTRIBUTE_ID 0x0020 // Ver.: always -#define ZCL_BATTERY_PERCENTAGE_REMAINING_ATTRIBUTE_ID 0x0021 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_MANUFACTURER_ATTRIBUTE_ID 0x0030 // Ver.: always -#define ZCL_BATTERY_SIZE_ATTRIBUTE_ID 0x0031 // Ver.: always -#define ZCL_BATTERY_AHR_RATING_ATTRIBUTE_ID 0x0032 // Ver.: always -#define ZCL_BATTERY_QUANTITY_ATTRIBUTE_ID 0x0033 // Ver.: always -#define ZCL_BATTERY_RATED_VOLTAGE_ATTRIBUTE_ID 0x0034 // Ver.: always -#define ZCL_BATTERY_ALARM_MASK_ATTRIBUTE_ID 0x0035 // Ver.: always -#define ZCL_BATTERY_VOLTAGE_MIN_THRESHOLD_ATTRIBUTE_ID 0x0036 // Ver.: always -#define ZCL_BATTERY_VOLTAGE_THRESHOLD_1_ATTRIBUTE_ID 0x0037 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_VOLTAGE_THRESHOLD_2_ATTRIBUTE_ID 0x0038 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_VOLTAGE_THRESHOLD_3_ATTRIBUTE_ID 0x0039 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_PERCENTAGE_MIN_THRESHOLD_ATTRIBUTE_ID 0x003A // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_PERCENTAGE_THRESHOLD_1_ATTRIBUTE_ID 0x003B // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_PERCENTAGE_THRESHOLD_2_ATTRIBUTE_ID 0x003C // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_PERCENTAGE_THRESHOLD_3_ATTRIBUTE_ID 0x003D // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_ALARM_STATE_ATTRIBUTE_ID 0x003E // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_2_VOLTAGE_ATTRIBUTE_ID 0x0040 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_2_PERCENTAGE_REMAINING_ATTRIBUTE_ID 0x0041 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_2_MANUFACTURER_ATTRIBUTE_ID 0x0050 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_2_SIZE_ATTRIBUTE_ID 0x0051 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_2_AHR_RATING_ATTRIBUTE_ID 0x0052 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_2_QUANTITY_ATTRIBUTE_ID 0x0053 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_2_RATED_VOLTAGE_ATTRIBUTE_ID 0x0054 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_2_ALARM_MASK_ATTRIBUTE_ID 0x0055 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_2_VOLTAGE_MIN_THRESHOLD_ATTRIBUTE_ID 0x0056 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_2_VOLTAGE_THRESHOLD_1_ATTRIBUTE_ID 0x0057 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_2_VOLTAGE_THRESHOLD_2_ATTRIBUTE_ID 0x0058 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_2_VOLTAGE_THRESHOLD_3_ATTRIBUTE_ID 0x0059 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_2_PERCENTAGE_MIN_THRESHOLD_ATTRIBUTE_ID 0x005A // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_2_PERCENTAGE_THRESHOLD_1_ATTRIBUTE_ID 0x005B // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_2_PERCENTAGE_THRESHOLD_2_ATTRIBUTE_ID 0x005C // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_2_PERCENTAGE_THRESHOLD_3_ATTRIBUTE_ID 0x005D // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_2_ALARM_STATE_ATTRIBUTE_ID 0x005E // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_3_VOLTAGE_ATTRIBUTE_ID 0x0060 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_3_PERCENTAGE_REMAINING_ATTRIBUTE_ID 0x0061 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_3_MANUFACTURER_ATTRIBUTE_ID 0x0070 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_3_SIZE_ATTRIBUTE_ID 0x0071 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_3_AHR_RATING_ATTRIBUTE_ID 0x0072 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_3_QUANTITY_ATTRIBUTE_ID 0x0073 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_3_RATED_VOLTAGE_ATTRIBUTE_ID 0x0074 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_3_ALARM_MASK_ATTRIBUTE_ID 0x0075 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_3_VOLTAGE_MIN_THRESHOLD_ATTRIBUTE_ID 0x0076 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_3_VOLTAGE_THRESHOLD_1_ATTRIBUTE_ID 0x0077 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_3_VOLTAGE_THRESHOLD_2_ATTRIBUTE_ID 0x0078 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_3_VOLTAGE_THRESHOLD_3_ATTRIBUTE_ID 0x0079 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_3_PERCENTAGE_MIN_THRESHOLD_ATTRIBUTE_ID 0x007A // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_3_PERCENTAGE_THRESHOLD_1_ATTRIBUTE_ID 0x007B // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_3_PERCENTAGE_THRESHOLD_2_ATTRIBUTE_ID 0x007C // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_3_PERCENTAGE_THRESHOLD_3_ATTRIBUTE_ID 0x007D // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_3_ALARM_STATE_ATTRIBUTE_ID 0x007E // Ver.: since ha-1.2-05-3520-29 -#define ZCL_POWER_CONFIG_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_POWER_CONFIG_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Device Temperature Configuration -// Cluster specification level: zcl-7.0-07-5123-07 +#define ZCL_MAINS_VOLTAGE_ATTRIBUTE_ID (0x0000) +#define ZCL_MAINS_FREQUENCY_ATTRIBUTE_ID (0x0001) +#define ZCL_MAINS_ALARM_MASK_ATTRIBUTE_ID (0x0010) +#define ZCL_MAINS_VOLTAGE_MIN_THRESHOLD_ATTRIBUTE_ID (0x0011) +#define ZCL_MAINS_VOLTAGE_MAX_THRESHOLD_ATTRIBUTE_ID (0x0012) +#define ZCL_MAINS_VOLTAGE_DWELL_TRIP_POINT_ATTRIBUTE_ID (0x0013) +#define ZCL_BATTERY_VOLTAGE_ATTRIBUTE_ID (0x0020) +#define ZCL_BATTERY_PERCENTAGE_REMAINING_ATTRIBUTE_ID (0x0021) +#define ZCL_BATTERY_MANUFACTURER_ATTRIBUTE_ID (0x0030) +#define ZCL_BATTERY_SIZE_ATTRIBUTE_ID (0x0031) +#define ZCL_BATTERY_AHR_RATING_ATTRIBUTE_ID (0x0032) +#define ZCL_BATTERY_QUANTITY_ATTRIBUTE_ID (0x0033) +#define ZCL_BATTERY_RATED_VOLTAGE_ATTRIBUTE_ID (0x0034) +#define ZCL_BATTERY_ALARM_MASK_ATTRIBUTE_ID (0x0035) +#define ZCL_BATTERY_VOLTAGE_MIN_THRESHOLD_ATTRIBUTE_ID (0x0036) +#define ZCL_BATTERY_VOLTAGE_THRESHOLD_1_ATTRIBUTE_ID (0x0037) +#define ZCL_BATTERY_VOLTAGE_THRESHOLD_2_ATTRIBUTE_ID (0x0038) +#define ZCL_BATTERY_VOLTAGE_THRESHOLD_3_ATTRIBUTE_ID (0x0039) +#define ZCL_BATTERY_PERCENTAGE_MIN_THRESHOLD_ATTRIBUTE_ID (0x003A) +#define ZCL_BATTERY_PERCENTAGE_THRESHOLD_1_ATTRIBUTE_ID (0x003B) +#define ZCL_BATTERY_PERCENTAGE_THRESHOLD_2_ATTRIBUTE_ID (0x003C) +#define ZCL_BATTERY_PERCENTAGE_THRESHOLD_3_ATTRIBUTE_ID (0x003D) +#define ZCL_BATTERY_ALARM_STATE_ATTRIBUTE_ID (0x003E) +#define ZCL_BATTERY_2_VOLTAGE_ATTRIBUTE_ID (0x0040) +#define ZCL_BATTERY_2_PERCENTAGE_REMAINING_ATTRIBUTE_ID (0x0041) +#define ZCL_BATTERY_2_MANUFACTURER_ATTRIBUTE_ID (0x0050) +#define ZCL_BATTERY_2_SIZE_ATTRIBUTE_ID (0x0051) +#define ZCL_BATTERY_2_AHR_RATING_ATTRIBUTE_ID (0x0052) +#define ZCL_BATTERY_2_QUANTITY_ATTRIBUTE_ID (0x0053) +#define ZCL_BATTERY_2_RATED_VOLTAGE_ATTRIBUTE_ID (0x0054) +#define ZCL_BATTERY_2_ALARM_MASK_ATTRIBUTE_ID (0x0055) +#define ZCL_BATTERY_2_VOLTAGE_MIN_THRESHOLD_ATTRIBUTE_ID (0x0056) +#define ZCL_BATTERY_2_VOLTAGE_THRESHOLD_1_ATTRIBUTE_ID (0x0057) +#define ZCL_BATTERY_2_VOLTAGE_THRESHOLD_2_ATTRIBUTE_ID (0x0058) +#define ZCL_BATTERY_2_VOLTAGE_THRESHOLD_3_ATTRIBUTE_ID (0x0059) +#define ZCL_BATTERY_2_PERCENTAGE_MIN_THRESHOLD_ATTRIBUTE_ID (0x005A) +#define ZCL_BATTERY_2_PERCENTAGE_THRESHOLD_1_ATTRIBUTE_ID (0x005B) +#define ZCL_BATTERY_2_PERCENTAGE_THRESHOLD_2_ATTRIBUTE_ID (0x005C) +#define ZCL_BATTERY_2_PERCENTAGE_THRESHOLD_3_ATTRIBUTE_ID (0x005D) +#define ZCL_BATTERY_2_ALARM_STATE_ATTRIBUTE_ID (0x005E) +#define ZCL_BATTERY_3_VOLTAGE_ATTRIBUTE_ID (0x0060) +#define ZCL_BATTERY_3_PERCENTAGE_REMAINING_ATTRIBUTE_ID (0x0061) +#define ZCL_BATTERY_3_MANUFACTURER_ATTRIBUTE_ID (0x0070) +#define ZCL_BATTERY_3_SIZE_ATTRIBUTE_ID (0x0071) +#define ZCL_BATTERY_3_AHR_RATING_ATTRIBUTE_ID (0x0072) +#define ZCL_BATTERY_3_QUANTITY_ATTRIBUTE_ID (0x0073) +#define ZCL_BATTERY_3_RATED_VOLTAGE_ATTRIBUTE_ID (0x0074) +#define ZCL_BATTERY_3_ALARM_MASK_ATTRIBUTE_ID (0x0075) +#define ZCL_BATTERY_3_VOLTAGE_MIN_THRESHOLD_ATTRIBUTE_ID (0x0076) +#define ZCL_BATTERY_3_VOLTAGE_THRESHOLD_1_ATTRIBUTE_ID (0x0077) +#define ZCL_BATTERY_3_VOLTAGE_THRESHOLD_2_ATTRIBUTE_ID (0x0078) +#define ZCL_BATTERY_3_VOLTAGE_THRESHOLD_3_ATTRIBUTE_ID (0x0079) +#define ZCL_BATTERY_3_PERCENTAGE_MIN_THRESHOLD_ATTRIBUTE_ID (0x007A) +#define ZCL_BATTERY_3_PERCENTAGE_THRESHOLD_1_ATTRIBUTE_ID (0x007B) +#define ZCL_BATTERY_3_PERCENTAGE_THRESHOLD_2_ATTRIBUTE_ID (0x007C) +#define ZCL_BATTERY_3_PERCENTAGE_THRESHOLD_3_ATTRIBUTE_ID (0x007D) +#define ZCL_BATTERY_3_ALARM_STATE_ATTRIBUTE_ID (0x007E) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Device Temperature Configuration // Client attributes -#define ZCL_DEVICE_TEMP_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_DEVICE_TEMP_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_CURRENT_TEMPERATURE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_MIN_TEMP_EXPERIENCED_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_MAX_TEMP_EXPERIENCED_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_OVER_TEMP_TOTAL_DWELL_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_DEVICE_TEMP_ALARM_MASK_ATTRIBUTE_ID 0x0010 // Ver.: always -#define ZCL_LOW_TEMP_THRESHOLD_ATTRIBUTE_ID 0x0011 // Ver.: always -#define ZCL_HIGH_TEMP_THRESHOLD_ATTRIBUTE_ID 0x0012 // Ver.: always -#define ZCL_LOW_TEMP_DWELL_TRIP_POINT_ATTRIBUTE_ID 0x0013 // Ver.: always -#define ZCL_HIGH_TEMP_DWELL_TRIP_POINT_ATTRIBUTE_ID 0x0014 // Ver.: always -#define ZCL_DEVICE_TEMP_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_DEVICE_TEMP_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Identify -// Cluster specification level: zcl-7.0-07-5123-07 +#define ZCL_CURRENT_TEMPERATURE_ATTRIBUTE_ID (0x0000) +#define ZCL_MIN_TEMP_EXPERIENCED_ATTRIBUTE_ID (0x0001) +#define ZCL_MAX_TEMP_EXPERIENCED_ATTRIBUTE_ID (0x0002) +#define ZCL_OVER_TEMP_TOTAL_DWELL_ATTRIBUTE_ID (0x0003) +#define ZCL_DEVICE_TEMP_ALARM_MASK_ATTRIBUTE_ID (0x0010) +#define ZCL_LOW_TEMP_THRESHOLD_ATTRIBUTE_ID (0x0011) +#define ZCL_HIGH_TEMP_THRESHOLD_ATTRIBUTE_ID (0x0012) +#define ZCL_LOW_TEMP_DWELL_TRIP_POINT_ATTRIBUTE_ID (0x0013) +#define ZCL_HIGH_TEMP_DWELL_TRIP_POINT_ATTRIBUTE_ID (0x0014) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Identify // Client attributes -#define ZCL_IDENTIFY_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_IDENTIFY_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_IDENTIFY_TIME_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_COMMISSION_STATE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_IDENTIFY_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_IDENTIFY_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_IDENTIFY_TIME_ATTRIBUTE_ID (0x0000) +#define ZCL_COMMISSION_STATE_ATTRIBUTE_ID (0x0001) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) -// Attribute types for cluster: Groups -// Cluster specification level: zcl-7.0-07-5123-07 +// Attribute ids for cluster: Groups // Client attributes -#define ZCL_GROUPS_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_GROUPS_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_GROUP_NAME_SUPPORT_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_GROUPS_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_GROUPS_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_GROUP_NAME_SUPPORT_ATTRIBUTE_ID (0x0000) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) -// Attribute types for cluster: Scenes -// Cluster specification level: zcl-7.0-07-5123-07 +// Attribute ids for cluster: Scenes // Client attributes -#define ZCL_SCENES_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_SCENES_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_SCENE_COUNT_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_CURRENT_SCENE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_CURRENT_GROUP_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_SCENE_VALID_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_SCENE_NAME_SUPPORT_ATTRIBUTE_ID 0x0004 // Ver.: always -#define ZCL_LAST_CONFIGURED_BY_ATTRIBUTE_ID 0x0005 // Ver.: always -#define ZCL_SCENES_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_SCENES_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: On/off -// Cluster specification level: zcl-7.0-07-5123-07 +#define ZCL_SCENE_COUNT_ATTRIBUTE_ID (0x0000) +#define ZCL_CURRENT_SCENE_ATTRIBUTE_ID (0x0001) +#define ZCL_CURRENT_GROUP_ATTRIBUTE_ID (0x0002) +#define ZCL_SCENE_VALID_ATTRIBUTE_ID (0x0003) +#define ZCL_SCENE_NAME_SUPPORT_ATTRIBUTE_ID (0x0004) +#define ZCL_LAST_CONFIGURED_BY_ATTRIBUTE_ID (0x0005) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: On/off // Client attributes -#define ZCL_ON_OFF_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_ON_OFF_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_ON_OFF_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_SAMPLE_MFG_SPECIFIC_TRANSITION_TIME_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_SAMPLE_MFG_SPECIFIC_TRANSITION_TIME_2_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_SAMPLE_MFG_SPECIFIC_TRANSITION_TIME_3_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_SAMPLE_MFG_SPECIFIC_TRANSITION_TIME_4_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_GLOBAL_SCENE_CONTROL_ATTRIBUTE_ID 0x4000 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_ON_TIME_ATTRIBUTE_ID 0x4001 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_OFF_WAIT_TIME_ATTRIBUTE_ID 0x4002 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_START_UP_ON_OFF_ATTRIBUTE_ID 0x4003 // Ver.: since l&o-1.0-15-0014-04 -#define ZCL_ON_OFF_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_ON_OFF_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: On/off Switch Configuration -// Cluster specification level: zcl-7.0-07-5123-07 +#define ZCL_ON_OFF_ATTRIBUTE_ID (0x0000) +#define ZCL_SAMPLE_MFG_SPECIFIC_TRANSITION_TIME_ATTRIBUTE_ID (0x0000) +#define ZCL_SAMPLE_MFG_SPECIFIC_TRANSITION_TIME_2_ATTRIBUTE_ID (0x0000) +#define ZCL_SAMPLE_MFG_SPECIFIC_TRANSITION_TIME_3_ATTRIBUTE_ID (0x0001) +#define ZCL_SAMPLE_MFG_SPECIFIC_TRANSITION_TIME_4_ATTRIBUTE_ID (0x0001) +#define ZCL_GLOBAL_SCENE_CONTROL_ATTRIBUTE_ID (0x4000) +#define ZCL_ON_TIME_ATTRIBUTE_ID (0x4001) +#define ZCL_OFF_WAIT_TIME_ATTRIBUTE_ID (0x4002) +#define ZCL_START_UP_ON_OFF_ATTRIBUTE_ID (0x4003) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: On/off Switch Configuration // Client attributes -#define ZCL_ON_OFF_SWITCH_CONFIG_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_ON_OFF_SWITCH_CONFIG_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_SWITCH_TYPE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_SWITCH_ACTIONS_ATTRIBUTE_ID 0x0010 // Ver.: always -#define ZCL_ON_OFF_SWITCH_CONFIG_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_ON_OFF_SWITCH_CONFIG_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_SWITCH_TYPE_ATTRIBUTE_ID (0x0000) +#define ZCL_SWITCH_ACTIONS_ATTRIBUTE_ID (0x0010) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) -// Attribute types for cluster: Level Control -// Cluster specification level: zcl-7.0-07-5123-07 +// Attribute ids for cluster: Level Control // Client attributes -#define ZCL_LEVEL_CONTROL_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_LEVEL_CONTROL_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_CURRENT_LEVEL_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_LEVEL_CONTROL_REMAINING_TIME_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_OPTIONS_ATTRIBUTE_ID 0x000F // Ver.: since l&o-1.0-15-0014-04 -#define ZCL_ON_OFF_TRANSITION_TIME_ATTRIBUTE_ID 0x0010 // Ver.: always -#define ZCL_ON_LEVEL_ATTRIBUTE_ID 0x0011 // Ver.: always -#define ZCL_ON_TRANSITION_TIME_ATTRIBUTE_ID 0x0012 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_OFF_TRANSITION_TIME_ATTRIBUTE_ID 0x0013 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_DEFAULT_MOVE_RATE_ATTRIBUTE_ID 0x0014 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_START_UP_CURRENT_LEVEL_ATTRIBUTE_ID 0x4000 // Ver.: since l&o-1.0-15-0014-04 -#define ZCL_LEVEL_CONTROL_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_LEVEL_CONTROL_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Alarms -// Cluster specification level: zcl-7.0-07-5123-07 +#define ZCL_CURRENT_LEVEL_ATTRIBUTE_ID (0x0000) +#define ZCL_LEVEL_CONTROL_REMAINING_TIME_ATTRIBUTE_ID (0x0001) +#define ZCL_OPTIONS_ATTRIBUTE_ID (0x000F) +#define ZCL_ON_OFF_TRANSITION_TIME_ATTRIBUTE_ID (0x0010) +#define ZCL_ON_LEVEL_ATTRIBUTE_ID (0x0011) +#define ZCL_ON_TRANSITION_TIME_ATTRIBUTE_ID (0x0012) +#define ZCL_OFF_TRANSITION_TIME_ATTRIBUTE_ID (0x0013) +#define ZCL_DEFAULT_MOVE_RATE_ATTRIBUTE_ID (0x0014) +#define ZCL_START_UP_CURRENT_LEVEL_ATTRIBUTE_ID (0x4000) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Alarms // Client attributes -#define ZCL_ALARM_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_ALARM_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_ALARM_COUNT_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_ALARM_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_ALARM_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_ALARM_COUNT_ATTRIBUTE_ID (0x0000) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) -// Attribute types for cluster: Time -// Cluster specification level: zcl-7.0-07-5123-07 +// Attribute ids for cluster: Time // Client attributes -#define ZCL_TIME_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_TIME_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_TIME_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_TIME_STATUS_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_TIME_ZONE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_DST_START_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_DST_END_ATTRIBUTE_ID 0x0004 // Ver.: always -#define ZCL_DST_SHIFT_ATTRIBUTE_ID 0x0005 // Ver.: always -#define ZCL_STANDARD_TIME_ATTRIBUTE_ID 0x0006 // Ver.: always -#define ZCL_LOCAL_TIME_ATTRIBUTE_ID 0x0007 // Ver.: always -#define ZCL_LAST_SET_TIME_ATTRIBUTE_ID 0x0008 // Ver.: always -#define ZCL_VALID_UNTIL_TIME_ATTRIBUTE_ID 0x0009 // Ver.: always -#define ZCL_TIME_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_TIME_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: RSSI Location -// Cluster specification level: zcl-7.0-07-5123-07 +#define ZCL_TIME_ATTRIBUTE_ID (0x0000) +#define ZCL_TIME_STATUS_ATTRIBUTE_ID (0x0001) +#define ZCL_TIME_ZONE_ATTRIBUTE_ID (0x0002) +#define ZCL_DST_START_ATTRIBUTE_ID (0x0003) +#define ZCL_DST_END_ATTRIBUTE_ID (0x0004) +#define ZCL_DST_SHIFT_ATTRIBUTE_ID (0x0005) +#define ZCL_STANDARD_TIME_ATTRIBUTE_ID (0x0006) +#define ZCL_LOCAL_TIME_ATTRIBUTE_ID (0x0007) +#define ZCL_LAST_SET_TIME_ATTRIBUTE_ID (0x0008) +#define ZCL_VALID_UNTIL_TIME_ATTRIBUTE_ID (0x0009) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: RSSI Location // Client attributes -#define ZCL_RSSI_LOCATION_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_RSSI_LOCATION_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_LOCATION_TYPE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_LOCATION_METHOD_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_LOCATION_AGE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_QUALITY_MEASURE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_NUMBER_OF_DEVICES_ATTRIBUTE_ID 0x0004 // Ver.: always -#define ZCL_COORDINATE1_ATTRIBUTE_ID 0x0010 // Ver.: always -#define ZCL_COORDINATE2_ATTRIBUTE_ID 0x0011 // Ver.: always -#define ZCL_COORDINATE3_ATTRIBUTE_ID 0x0012 // Ver.: always -#define ZCL_POWER_ATTRIBUTE_ID 0x0013 // Ver.: always -#define ZCL_PATH_LOSS_EXPONENT_ATTRIBUTE_ID 0x0014 // Ver.: always -#define ZCL_REPORTING_PERIOD_ATTRIBUTE_ID 0x0015 // Ver.: always -#define ZCL_CALCULATION_PERIOD_ATTRIBUTE_ID 0x0016 // Ver.: always -#define ZCL_NUMBER_RSSI_MEASUREMENTS_ATTRIBUTE_ID 0x0017 // Ver.: always -#define ZCL_RSSI_LOCATION_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_RSSI_LOCATION_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Binary Input (Basic) -// Cluster specification level: zcl-7.0-07-5123-07 +#define ZCL_LOCATION_TYPE_ATTRIBUTE_ID (0x0000) +#define ZCL_LOCATION_METHOD_ATTRIBUTE_ID (0x0001) +#define ZCL_LOCATION_AGE_ATTRIBUTE_ID (0x0002) +#define ZCL_QUALITY_MEASURE_ATTRIBUTE_ID (0x0003) +#define ZCL_NUMBER_OF_DEVICES_ATTRIBUTE_ID (0x0004) +#define ZCL_COORDINATE1_ATTRIBUTE_ID (0x0010) +#define ZCL_COORDINATE2_ATTRIBUTE_ID (0x0011) +#define ZCL_COORDINATE3_ATTRIBUTE_ID (0x0012) +#define ZCL_POWER_ATTRIBUTE_ID (0x0013) +#define ZCL_PATH_LOSS_EXPONENT_ATTRIBUTE_ID (0x0014) +#define ZCL_REPORTING_PERIOD_ATTRIBUTE_ID (0x0015) +#define ZCL_CALCULATION_PERIOD_ATTRIBUTE_ID (0x0016) +#define ZCL_NUMBER_RSSI_MEASUREMENTS_ATTRIBUTE_ID (0x0017) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Binary Input (Basic) // Client attributes -#define ZCL_BINARY_INPUT_BASIC_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_BINARY_INPUT_BASIC_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_ACTIVE_TEXT_ATTRIBUTE_ID 0x0004 // Ver.: always -#define ZCL_DESCRIPTION_ATTRIBUTE_ID 0x001C // Ver.: always -#define ZCL_INACTIVE_TEXT_ATTRIBUTE_ID 0x002E // Ver.: always -#define ZCL_OUT_OF_SERVICE_ATTRIBUTE_ID 0x0051 // Ver.: always -#define ZCL_POLARITY_ATTRIBUTE_ID 0x0054 // Ver.: always -#define ZCL_PRESENT_VALUE_ATTRIBUTE_ID 0x0055 // Ver.: always -#define ZCL_RELIABILITY_ATTRIBUTE_ID 0x0067 // Ver.: always -#define ZCL_STATUS_FLAGS_ATTRIBUTE_ID 0x006F // Ver.: always -#define ZCL_APPLICATION_TYPE_ATTRIBUTE_ID 0x0100 // Ver.: always -#define ZCL_BINARY_INPUT_BASIC_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_BINARY_INPUT_BASIC_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Commissioning -// Cluster specification level: zcl-7.0-07-5123-07 +#define ZCL_ACTIVE_TEXT_ATTRIBUTE_ID (0x0004) +#define ZCL_DESCRIPTION_ATTRIBUTE_ID (0x001C) +#define ZCL_INACTIVE_TEXT_ATTRIBUTE_ID (0x002E) +#define ZCL_OUT_OF_SERVICE_ATTRIBUTE_ID (0x0051) +#define ZCL_POLARITY_ATTRIBUTE_ID (0x0054) +#define ZCL_PRESENT_VALUE_ATTRIBUTE_ID (0x0055) +#define ZCL_RELIABILITY_ATTRIBUTE_ID (0x0067) +#define ZCL_STATUS_FLAGS_ATTRIBUTE_ID (0x006F) +#define ZCL_APPLICATION_TYPE_ATTRIBUTE_ID (0x0100) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Commissioning // Client attributes -#define ZCL_COMMISSIONING_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_COMMISSIONING_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_SHORT_ADDRESS_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_EXTENDED_PAN_ID_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_PAN_ID_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_CHANNEL_MASK_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_PROTOCOL_VERSION_ATTRIBUTE_ID 0x0004 // Ver.: always -#define ZCL_STACK_PROFILE_ATTRIBUTE_ID 0x0005 // Ver.: always -#define ZCL_STARTUP_CONTROL_ATTRIBUTE_ID 0x0006 // Ver.: always -#define ZCL_TRUST_CENTER_ADDRESS_ATTRIBUTE_ID 0x0010 // Ver.: always -#define ZCL_TRUST_CENTER_MASTER_KEY_ATTRIBUTE_ID 0x0011 // Ver.: always -#define ZCL_NETWORK_KEY_ATTRIBUTE_ID 0x0012 // Ver.: always -#define ZCL_USE_INSECURE_JOIN_ATTRIBUTE_ID 0x0013 // Ver.: always -#define ZCL_PRECONFIGURED_LINK_KEY_ATTRIBUTE_ID 0x0014 // Ver.: always -#define ZCL_NETWORK_KEY_SEQUENCE_NUMBER_ATTRIBUTE_ID 0x0015 // Ver.: always -#define ZCL_NETWORK_KEY_TYPE_ATTRIBUTE_ID 0x0016 // Ver.: always -#define ZCL_NETWORK_MANAGER_ADDRESS_ATTRIBUTE_ID 0x0017 // Ver.: always -#define ZCL_SCAN_ATTEMPTS_ATTRIBUTE_ID 0x0020 // Ver.: always -#define ZCL_TIME_BETWEEN_SCANS_ATTRIBUTE_ID 0x0021 // Ver.: always -#define ZCL_REJOIN_INTERVAL_ATTRIBUTE_ID 0x0022 // Ver.: always -#define ZCL_MAX_REJOIN_INTERVAL_ATTRIBUTE_ID 0x0023 // Ver.: always -#define ZCL_INDIRECT_POLL_RATE_ATTRIBUTE_ID 0x0030 // Ver.: always -#define ZCL_PARENT_RETRY_THRESHOLD_ATTRIBUTE_ID 0x0031 // Ver.: always -#define ZCL_CONCENTRATOR_FLAG_ATTRIBUTE_ID 0x0040 // Ver.: always -#define ZCL_CONCENTRATOR_RADIUS_ATTRIBUTE_ID 0x0041 // Ver.: always -#define ZCL_CONCENTRATOR_DISCOVERY_TIME_ATTRIBUTE_ID 0x0042 // Ver.: always -#define ZCL_COMMISSIONING_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_COMMISSIONING_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Partition -// Cluster specification level: zcl-7.0-07-5123-07 +#define ZCL_SHORT_ADDRESS_ATTRIBUTE_ID (0x0000) +#define ZCL_EXTENDED_PAN_ID_ATTRIBUTE_ID (0x0001) +#define ZCL_PAN_ID_ATTRIBUTE_ID (0x0002) +#define ZCL_CHANNEL_MASK_ATTRIBUTE_ID (0x0003) +#define ZCL_PROTOCOL_VERSION_ATTRIBUTE_ID (0x0004) +#define ZCL_STACK_PROFILE_ATTRIBUTE_ID (0x0005) +#define ZCL_STARTUP_CONTROL_ATTRIBUTE_ID (0x0006) +#define ZCL_TRUST_CENTER_ADDRESS_ATTRIBUTE_ID (0x0010) +#define ZCL_TRUST_CENTER_MASTER_KEY_ATTRIBUTE_ID (0x0011) +#define ZCL_NETWORK_KEY_ATTRIBUTE_ID (0x0012) +#define ZCL_USE_INSECURE_JOIN_ATTRIBUTE_ID (0x0013) +#define ZCL_PRECONFIGURED_LINK_KEY_ATTRIBUTE_ID (0x0014) +#define ZCL_NETWORK_KEY_SEQUENCE_NUMBER_ATTRIBUTE_ID (0x0015) +#define ZCL_NETWORK_KEY_TYPE_ATTRIBUTE_ID (0x0016) +#define ZCL_NETWORK_MANAGER_ADDRESS_ATTRIBUTE_ID (0x0017) +#define ZCL_SCAN_ATTEMPTS_ATTRIBUTE_ID (0x0020) +#define ZCL_TIME_BETWEEN_SCANS_ATTRIBUTE_ID (0x0021) +#define ZCL_REJOIN_INTERVAL_ATTRIBUTE_ID (0x0022) +#define ZCL_MAX_REJOIN_INTERVAL_ATTRIBUTE_ID (0x0023) +#define ZCL_INDIRECT_POLL_RATE_ATTRIBUTE_ID (0x0030) +#define ZCL_PARENT_RETRY_THRESHOLD_ATTRIBUTE_ID (0x0031) +#define ZCL_CONCENTRATOR_FLAG_ATTRIBUTE_ID (0x0040) +#define ZCL_CONCENTRATOR_RADIUS_ATTRIBUTE_ID (0x0041) +#define ZCL_CONCENTRATOR_DISCOVERY_TIME_ATTRIBUTE_ID (0x0042) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Partition // Client attributes -#define ZCL_PARTITION_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_PARTITION_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_PARTITION_MAXIMUM_INCOMING_TRANSFER_SIZE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_PARTITION_MAXIMUM_OUTGOING_TRANSFER_SIZE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_PARTIONED_FRAME_SIZE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_LARGE_FRAME_SIZE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_NUMBER_OF_ACK_FRAME_ATTRIBUTE_ID 0x0004 // Ver.: always -#define ZCL_NACK_TIMEOUT_ATTRIBUTE_ID 0x0005 // Ver.: always -#define ZCL_INTERFRAME_DELAY_ATTRIBUTE_ID 0x0006 // Ver.: always -#define ZCL_NUMBER_OF_SEND_RETRIES_ATTRIBUTE_ID 0x0007 // Ver.: always -#define ZCL_SENDER_TIMEOUT_ATTRIBUTE_ID 0x0008 // Ver.: always -#define ZCL_RECEIVER_TIMEOUT_ATTRIBUTE_ID 0x0009 // Ver.: always -#define ZCL_PARTITION_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_PARTITION_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Over the Air Bootloading -// Cluster specification level: zcl-7.0-07-5123-07 +#define ZCL_PARTITION_MAXIMUM_INCOMING_TRANSFER_SIZE_ATTRIBUTE_ID (0x0000) +#define ZCL_PARTITION_MAXIMUM_OUTGOING_TRANSFER_SIZE_ATTRIBUTE_ID (0x0001) +#define ZCL_PARTIONED_FRAME_SIZE_ATTRIBUTE_ID (0x0002) +#define ZCL_LARGE_FRAME_SIZE_ATTRIBUTE_ID (0x0003) +#define ZCL_NUMBER_OF_ACK_FRAME_ATTRIBUTE_ID (0x0004) +#define ZCL_NACK_TIMEOUT_ATTRIBUTE_ID (0x0005) +#define ZCL_INTERFRAME_DELAY_ATTRIBUTE_ID (0x0006) +#define ZCL_NUMBER_OF_SEND_RETRIES_ATTRIBUTE_ID (0x0007) +#define ZCL_SENDER_TIMEOUT_ATTRIBUTE_ID (0x0008) +#define ZCL_RECEIVER_TIMEOUT_ATTRIBUTE_ID (0x0009) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Over the Air Bootloading // Client attributes -#define ZCL_UPGRADE_SERVER_ID_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_FILE_OFFSET_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_CURRENT_FILE_VERSION_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_CURRENT_ZIGBEE_STACK_VERSION_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_DOWNLOADED_FILE_VERSION_ATTRIBUTE_ID 0x0004 // Ver.: always -#define ZCL_DOWNLOADED_ZIGBEE_STACK_VERSION_ATTRIBUTE_ID 0x0005 // Ver.: always -#define ZCL_IMAGE_UPGRADE_STATUS_ATTRIBUTE_ID 0x0006 // Ver.: always -#define ZCL_MANUFACTURER_ID_ATTRIBUTE_ID 0x0007 // Ver.: always -#define ZCL_IMAGE_TYPE_ID_ATTRIBUTE_ID 0x0008 // Ver.: always -#define ZCL_MINIMUM_BLOCK_REQUEST_PERIOD_ATTRIBUTE_ID 0x0009 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_IMAGE_STAMP_ATTRIBUTE_ID 0x000A // Ver.: since ha-1.2-05-3520-29 -#define ZCL_UPGRADE_ACTIVATION_POLICY_ATTRIBUTE_ID 0x000B // Ver.: since se-1.2b-15-0131-02 -#define ZCL_UPGRADE_TIMEOUT_POLICY_ATTRIBUTE_ID 0x000C // Ver.: since se-1.2b-15-0131-02 -#define ZCL_OTA_BOOTLOAD_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_OTA_BOOTLOAD_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_UPGRADE_SERVER_ID_ATTRIBUTE_ID (0x0000) +#define ZCL_FILE_OFFSET_ATTRIBUTE_ID (0x0001) +#define ZCL_CURRENT_FILE_VERSION_ATTRIBUTE_ID (0x0002) +#define ZCL_CURRENT_ZIGBEE_STACK_VERSION_ATTRIBUTE_ID (0x0003) +#define ZCL_DOWNLOADED_FILE_VERSION_ATTRIBUTE_ID (0x0004) +#define ZCL_DOWNLOADED_ZIGBEE_STACK_VERSION_ATTRIBUTE_ID (0x0005) +#define ZCL_IMAGE_UPGRADE_STATUS_ATTRIBUTE_ID (0x0006) +#define ZCL_MANUFACTURER_ID_ATTRIBUTE_ID (0x0007) +#define ZCL_IMAGE_TYPE_ID_ATTRIBUTE_ID (0x0008) +#define ZCL_MINIMUM_BLOCK_REQUEST_PERIOD_ATTRIBUTE_ID (0x0009) +#define ZCL_IMAGE_STAMP_ATTRIBUTE_ID (0x000A) +#define ZCL_UPGRADE_ACTIVATION_POLICY_ATTRIBUTE_ID (0x000B) +#define ZCL_UPGRADE_TIMEOUT_POLICY_ATTRIBUTE_ID (0x000C) +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_OTA_BOOTLOAD_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_OTA_BOOTLOAD_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) -// Attribute types for cluster: Power Profile -// Cluster specification level: zcl-7.0-07-5123-07 +// Attribute ids for cluster: Power Profile // Client attributes -#define ZCL_POWER_PROFILE_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_POWER_PROFILE_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_TOTAL_PROFILE_NUM_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_MULTIPLE_SCHEDULING_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_ENERGY_FORMATTING_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_ENERGY_REMOTE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_SCHEDULE_MODE_ATTRIBUTE_ID 0x0004 // Ver.: always -#define ZCL_POWER_PROFILE_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_POWER_PROFILE_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_TOTAL_PROFILE_NUM_ATTRIBUTE_ID (0x0000) +#define ZCL_MULTIPLE_SCHEDULING_ATTRIBUTE_ID (0x0001) +#define ZCL_ENERGY_FORMATTING_ATTRIBUTE_ID (0x0002) +#define ZCL_ENERGY_REMOTE_ATTRIBUTE_ID (0x0003) +#define ZCL_SCHEDULE_MODE_ATTRIBUTE_ID (0x0004) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) -// Attribute types for cluster: Appliance Control -// Cluster specification level: zcl-7.0-07-5123-07 +// Attribute ids for cluster: Appliance Control // Client attributes -#define ZCL_APPLIANCE_CONTROL_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_APPLIANCE_CONTROL_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_START_TIME_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_FINISH_TIME_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_REMAINING_TIME_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_APPLIANCE_CONTROL_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_APPLIANCE_CONTROL_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_START_TIME_ATTRIBUTE_ID (0x0000) +#define ZCL_FINISH_TIME_ATTRIBUTE_ID (0x0001) +#define ZCL_REMAINING_TIME_ATTRIBUTE_ID (0x0002) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) -// Attribute types for cluster: Poll Control -// Cluster specification level: zcl-7.0-07-5123-07 +// Attribute ids for cluster: Poll Control // Client attributes -#define ZCL_POLL_CONTROL_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_POLL_CONTROL_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_CHECK_IN_INTERVAL_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_LONG_POLL_INTERVAL_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_SHORT_POLL_INTERVAL_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_FAST_POLL_TIMEOUT_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_CHECK_IN_INTERVAL_MIN_ATTRIBUTE_ID 0x0004 // Ver.: always -#define ZCL_LONG_POLL_INTERVAL_MIN_ATTRIBUTE_ID 0x0005 // Ver.: always -#define ZCL_FAST_POLL_TIMEOUT_MAX_ATTRIBUTE_ID 0x0006 // Ver.: always -#define ZCL_POLL_CONTROL_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_POLL_CONTROL_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Green Power -// Cluster specification level: gp-1.0a-09-5499-26 +#define ZCL_CHECK_IN_INTERVAL_ATTRIBUTE_ID (0x0000) +#define ZCL_LONG_POLL_INTERVAL_ATTRIBUTE_ID (0x0001) +#define ZCL_SHORT_POLL_INTERVAL_ATTRIBUTE_ID (0x0002) +#define ZCL_FAST_POLL_TIMEOUT_ATTRIBUTE_ID (0x0003) +#define ZCL_CHECK_IN_INTERVAL_MIN_ATTRIBUTE_ID (0x0004) +#define ZCL_LONG_POLL_INTERVAL_MIN_ATTRIBUTE_ID (0x0005) +#define ZCL_FAST_POLL_TIMEOUT_MAX_ATTRIBUTE_ID (0x0006) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Green Power // Client attributes -#define ZCL_GP_CLIENT_GPP_MAX_PROXY_TABLE_ENTRIES_ATTRIBUTE_ID 0x0010 // Ver.: since gp-1.0-09-5499-24 -#define ZCL_GP_CLIENT_PROXY_TABLE_ATTRIBUTE_ID 0x0011 // Ver.: since gp-1.0-09-5499-24 -#define ZCL_GP_CLIENT_GPP_NOTIFICATION_RETRY_NUMBER_ATTRIBUTE_ID 0x0012 // Ver.: since gp-1.0-09-5499-24 -#define ZCL_GP_CLIENT_GPP_NOTIFICATION_RETRY_TIMER_ATTRIBUTE_ID 0x0013 // Ver.: since gp-1.0-09-5499-24 -#define ZCL_GP_CLIENT_GPP_MAX_SEARCH_COUNTER_ATTRIBUTE_ID 0x0014 // Ver.: since gp-1.0-09-5499-24 -#define ZCL_GP_CLIENT_GPP_BLOCKED_GPD_ID_ATTRIBUTE_ID 0x0015 // Ver.: since gp-1.0-09-5499-24 -#define ZCL_GP_CLIENT_GPP_FUNCTIONALITY_ATTRIBUTE_ID 0x0016 // Ver.: since gp-1.0-09-5499-24 -#define ZCL_GP_CLIENT_GPP_ACTIVE_FUNCTIONALITY_ATTRIBUTE_ID 0x0017 // Ver.: since gp-1.0-09-5499-24 -#define ZCL_GP_CLIENT_GP_SHARED_SECURITY_KEY_TYPE_ATTRIBUTE_ID 0x0020 // Ver.: since gp-1.0-09-5499-24 -#define ZCL_GP_CLIENT_GP_SHARED_SECURITY_KEY_ATTRIBUTE_ID 0x0021 // Ver.: since gp-1.0-09-5499-24 -#define ZCL_GP_CLIENT_GP_LINK_KEY_ATTRIBUTE_ID 0x0022 // Ver.: since gp-1.0-09-5499-24 -#define ZCL_GREEN_POWER_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_GREEN_POWER_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_GP_CLIENT_GPP_MAX_PROXY_TABLE_ENTRIES_ATTRIBUTE_ID (0x0010) +#define ZCL_GP_CLIENT_PROXY_TABLE_ATTRIBUTE_ID (0x0011) +#define ZCL_GP_CLIENT_GPP_NOTIFICATION_RETRY_NUMBER_ATTRIBUTE_ID (0x0012) +#define ZCL_GP_CLIENT_GPP_NOTIFICATION_RETRY_TIMER_ATTRIBUTE_ID (0x0013) +#define ZCL_GP_CLIENT_GPP_MAX_SEARCH_COUNTER_ATTRIBUTE_ID (0x0014) +#define ZCL_GP_CLIENT_GPP_BLOCKED_GPD_ID_ATTRIBUTE_ID (0x0015) +#define ZCL_GP_CLIENT_GPP_FUNCTIONALITY_ATTRIBUTE_ID (0x0016) +#define ZCL_GP_CLIENT_GPP_ACTIVE_FUNCTIONALITY_ATTRIBUTE_ID (0x0017) +#define ZCL_GP_CLIENT_GP_SHARED_SECURITY_KEY_TYPE_ATTRIBUTE_ID (0x0020) +#define ZCL_GP_CLIENT_GP_SHARED_SECURITY_KEY_ATTRIBUTE_ID (0x0021) +#define ZCL_GP_CLIENT_GP_LINK_KEY_ATTRIBUTE_ID (0x0022) +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_GP_SERVER_GPS_MAX_SINK_TABLE_ENTRIES_ATTRIBUTE_ID 0x0000 // Ver.: since gp-1.0-09-5499-24 -#define ZCL_GP_SERVER_SINK_TABLE_ATTRIBUTE_ID 0x0001 // Ver.: since gp-1.0-09-5499-24 -#define ZCL_GP_SERVER_GPS_COMMUNICATION_MODE_ATTRIBUTE_ID 0x0002 // Ver.: since gp-1.0-09-5499-24 -#define ZCL_GP_SERVER_GPS_COMMISSIONING_EXIT_MODE_ATTRIBUTE_ID 0x0003 // Ver.: since gp-1.0-09-5499-24 -#define ZCL_GP_SERVER_GPS_COMMISSIONING_WINDOW_ATTRIBUTE_ID 0x0004 // Ver.: since gp-1.0-09-5499-24 -#define ZCL_GP_SERVER_GPS_SECURITY_LEVEL_ATTRIBUTE_ID 0x0005 // Ver.: since gp-1.0-09-5499-24 -#define ZCL_GP_SERVER_GPS_FUNCTIONALITY_ATTRIBUTE_ID 0x0006 // Ver.: since gp-1.0-09-5499-24 -#define ZCL_GP_SERVER_GPS_ACTIVE_FUNCTIONALITY_ATTRIBUTE_ID 0x0007 // Ver.: since gp-1.0-09-5499-24 -#define ZCL_GP_SERVER_GP_SHARED_SECURITY_KEY_TYPE_ATTRIBUTE_ID 0x0020 // Ver.: since gp-1.0-09-5499-24 -#define ZCL_GP_SERVER_GP_SHARED_SECURITY_KEY_ATTRIBUTE_ID 0x0021 // Ver.: since gp-1.0-09-5499-24 -#define ZCL_GP_SERVER_GP_LINK_KEY_ATTRIBUTE_ID 0x0022 // Ver.: since gp-1.0-09-5499-24 -#define ZCL_GREEN_POWER_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_GREEN_POWER_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Keep-Alive -// Cluster specification level: se-1.2b-15-0131-02 +#define ZCL_GP_SERVER_GPS_MAX_SINK_TABLE_ENTRIES_ATTRIBUTE_ID (0x0000) +#define ZCL_GP_SERVER_SINK_TABLE_ATTRIBUTE_ID (0x0001) +#define ZCL_GP_SERVER_GPS_COMMUNICATION_MODE_ATTRIBUTE_ID (0x0002) +#define ZCL_GP_SERVER_GPS_COMMISSIONING_EXIT_MODE_ATTRIBUTE_ID (0x0003) +#define ZCL_GP_SERVER_GPS_COMMISSIONING_WINDOW_ATTRIBUTE_ID (0x0004) +#define ZCL_GP_SERVER_GPS_SECURITY_LEVEL_ATTRIBUTE_ID (0x0005) +#define ZCL_GP_SERVER_GPS_FUNCTIONALITY_ATTRIBUTE_ID (0x0006) +#define ZCL_GP_SERVER_GPS_ACTIVE_FUNCTIONALITY_ATTRIBUTE_ID (0x0007) +#define ZCL_GP_SERVER_GP_SHARED_SECURITY_KEY_TYPE_ATTRIBUTE_ID (0x0020) +#define ZCL_GP_SERVER_GP_SHARED_SECURITY_KEY_ATTRIBUTE_ID (0x0021) +#define ZCL_GP_SERVER_GP_LINK_KEY_ATTRIBUTE_ID (0x0022) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Keep-Alive // Client attributes -#define ZCL_KEEPALIVE_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_KEEPALIVE_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_KEEPALIVE_BASE_ATTRIBUTE_ID 0x0000 // Ver.: since se-1.2b-15-0131-02 -#define ZCL_KEEPALIVE_JITTER_ATTRIBUTE_ID 0x0001 // Ver.: since se-1.2b-15-0131-02 -#define ZCL_KEEPALIVE_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_KEEPALIVE_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_KEEPALIVE_BASE_ATTRIBUTE_ID (0x0000) +#define ZCL_KEEPALIVE_JITTER_ATTRIBUTE_ID (0x0001) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) -// Attribute types for cluster: Shade Configuration -// Cluster specification level: zcl-6.0-15-02018-001 +// Attribute ids for cluster: Shade Configuration // Client attributes -#define ZCL_SHADE_CONFIG_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_SHADE_CONFIG_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_SHADE_CONFIG_PHYSICAL_CLOSED_LIMIT_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_SHADE_CONFIG_MOTOR_STEP_SIZE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_SHADE_CONFIG_STATUS_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_SHADE_CONFIG_CLOSED_LIMIT_ATTRIBUTE_ID 0x0010 // Ver.: always -#define ZCL_SHADE_CONFIG_MODE_ATTRIBUTE_ID 0x0011 // Ver.: always -#define ZCL_SHADE_CONFIG_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_SHADE_CONFIG_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_SHADE_CONFIG_PHYSICAL_CLOSED_LIMIT_ATTRIBUTE_ID (0x0000) +#define ZCL_SHADE_CONFIG_MOTOR_STEP_SIZE_ATTRIBUTE_ID (0x0001) +#define ZCL_SHADE_CONFIG_STATUS_ATTRIBUTE_ID (0x0002) +#define ZCL_SHADE_CONFIG_CLOSED_LIMIT_ATTRIBUTE_ID (0x0010) +#define ZCL_SHADE_CONFIG_MODE_ATTRIBUTE_ID (0x0011) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) -// Attribute types for cluster: Door Lock -// Cluster specification level: zcl-6.0-15-02018-001 +// Attribute ids for cluster: Door Lock // Client attributes -#define ZCL_DOOR_LOCK_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_DOOR_LOCK_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_LOCK_STATE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_LOCK_TYPE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_ACTUATOR_ENABLED_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_DOOR_STATE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_DOOR_OPEN_EVENTS_ATTRIBUTE_ID 0x0004 // Ver.: always -#define ZCL_DOOR_CLOSED_EVENTS_ATTRIBUTE_ID 0x0005 // Ver.: always -#define ZCL_OPEN_PERIOD_ATTRIBUTE_ID 0x0006 // Ver.: always -#define ZCL_NUM_LOCK_RECORDS_SUPPORTED_ATTRIBUTE_ID 0x0010 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_NUM_TOTAL_USERS_SUPPORTED_ATTRIBUTE_ID 0x0011 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_NUM_PIN_USERS_SUPPORTED_ATTRIBUTE_ID 0x0012 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_NUM_RFID_USERS_SUPPORTED_ATTRIBUTE_ID 0x0013 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_NUM_WEEKDAY_SCHEDULES_SUPPORTED_PER_USER_ATTRIBUTE_ID 0x0014 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_NUM_YEARDAY_SCHEDULES_SUPPORTED_PER_USER_ATTRIBUTE_ID 0x0015 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_NUM_HOLIDAY_SCHEDULES_SUPPORTED_PER_USER_ATTRIBUTE_ID 0x0016 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_MAX_PIN_LENGTH_ATTRIBUTE_ID 0x0017 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_MIN_PIN_LENGTH_ATTRIBUTE_ID 0x0018 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_MAX_RFID_CODE_LENGTH_ATTRIBUTE_ID 0x0019 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_MIN_RFID_CODE_LENGTH_ATTRIBUTE_ID 0x001A // Ver.: since ha-1.2-05-3520-29 -#define ZCL_ENABLE_LOGGING_ATTRIBUTE_ID 0x0020 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_LANGUAGE_ATTRIBUTE_ID 0x0021 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_LED_SETTINGS_ATTRIBUTE_ID 0x0022 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_AUTO_RELOCK_TIME_ATTRIBUTE_ID 0x0023 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_SOUND_VOLUME_ATTRIBUTE_ID 0x0024 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_OPERATING_MODE_ATTRIBUTE_ID 0x0025 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_SUPPORTED_OPERATING_MODES_ATTRIBUTE_ID 0x0026 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_DEFAULT_CONFIGURATION_REGISTER_ATTRIBUTE_ID 0x0027 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_ENABLE_LOCAL_PROGRAMMING_ATTRIBUTE_ID 0x0028 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_ENABLE_ONE_TOUCH_LOCKING_ATTRIBUTE_ID 0x0029 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_ENABLE_INSIDE_STATUS_LED_ATTRIBUTE_ID 0x002A // Ver.: since ha-1.2-05-3520-29 -#define ZCL_ENABLE_PRIVACY_MODE_BUTTON_ATTRIBUTE_ID 0x002B // Ver.: since ha-1.2-05-3520-29 -#define ZCL_WRONG_CODE_ENTRY_LIMIT_ATTRIBUTE_ID 0x0030 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_USER_CODE_TEMPORARY_DISABLE_TIME_ATTRIBUTE_ID 0x0031 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_SEND_PIN_OVER_THE_AIR_ATTRIBUTE_ID 0x0032 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_REQUIRE_PIN_FOR_RF_OPERATION_ATTRIBUTE_ID 0x0033 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_ZIGBEE_SECURITY_LEVEL_ATTRIBUTE_ID 0x0034 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_DOOR_LOCK_ALARM_MASK_ATTRIBUTE_ID 0x0040 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_KEYPAD_OPERATION_EVENT_MASK_ATTRIBUTE_ID 0x0041 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_RF_OPERATION_EVENT_MASK_ATTRIBUTE_ID 0x0042 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_MANUAL_OPERATION_EVENT_MASK_ATTRIBUTE_ID 0x0043 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_RFID_OPERATION_EVENT_MASK_ATTRIBUTE_ID 0x0044 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_KEYPAD_PROGRAMMING_EVENT_MASK_ATTRIBUTE_ID 0x0045 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_RF_PROGRAMMING_EVENT_MASK_ATTRIBUTE_ID 0x0046 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_RFID_PROGRAMMING_EVENT_MASK_ATTRIBUTE_ID 0x0047 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_DOOR_LOCK_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_DOOR_LOCK_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Window Covering -// Cluster specification level: zcl-6.0-15-02018-001 +#define ZCL_LOCK_STATE_ATTRIBUTE_ID (0x0000) +#define ZCL_LOCK_TYPE_ATTRIBUTE_ID (0x0001) +#define ZCL_ACTUATOR_ENABLED_ATTRIBUTE_ID (0x0002) +#define ZCL_DOOR_STATE_ATTRIBUTE_ID (0x0003) +#define ZCL_DOOR_OPEN_EVENTS_ATTRIBUTE_ID (0x0004) +#define ZCL_DOOR_CLOSED_EVENTS_ATTRIBUTE_ID (0x0005) +#define ZCL_OPEN_PERIOD_ATTRIBUTE_ID (0x0006) +#define ZCL_NUM_LOCK_RECORDS_SUPPORTED_ATTRIBUTE_ID (0x0010) +#define ZCL_NUM_TOTAL_USERS_SUPPORTED_ATTRIBUTE_ID (0x0011) +#define ZCL_NUM_PIN_USERS_SUPPORTED_ATTRIBUTE_ID (0x0012) +#define ZCL_NUM_RFID_USERS_SUPPORTED_ATTRIBUTE_ID (0x0013) +#define ZCL_NUM_WEEKDAY_SCHEDULES_SUPPORTED_PER_USER_ATTRIBUTE_ID (0x0014) +#define ZCL_NUM_YEARDAY_SCHEDULES_SUPPORTED_PER_USER_ATTRIBUTE_ID (0x0015) +#define ZCL_NUM_HOLIDAY_SCHEDULES_SUPPORTED_PER_USER_ATTRIBUTE_ID (0x0016) +#define ZCL_MAX_PIN_LENGTH_ATTRIBUTE_ID (0x0017) +#define ZCL_MIN_PIN_LENGTH_ATTRIBUTE_ID (0x0018) +#define ZCL_MAX_RFID_CODE_LENGTH_ATTRIBUTE_ID (0x0019) +#define ZCL_MIN_RFID_CODE_LENGTH_ATTRIBUTE_ID (0x001A) +#define ZCL_ENABLE_LOGGING_ATTRIBUTE_ID (0x0020) +#define ZCL_LANGUAGE_ATTRIBUTE_ID (0x0021) +#define ZCL_LED_SETTINGS_ATTRIBUTE_ID (0x0022) +#define ZCL_AUTO_RELOCK_TIME_ATTRIBUTE_ID (0x0023) +#define ZCL_SOUND_VOLUME_ATTRIBUTE_ID (0x0024) +#define ZCL_OPERATING_MODE_ATTRIBUTE_ID (0x0025) +#define ZCL_SUPPORTED_OPERATING_MODES_ATTRIBUTE_ID (0x0026) +#define ZCL_DEFAULT_CONFIGURATION_REGISTER_ATTRIBUTE_ID (0x0027) +#define ZCL_ENABLE_LOCAL_PROGRAMMING_ATTRIBUTE_ID (0x0028) +#define ZCL_ENABLE_ONE_TOUCH_LOCKING_ATTRIBUTE_ID (0x0029) +#define ZCL_ENABLE_INSIDE_STATUS_LED_ATTRIBUTE_ID (0x002A) +#define ZCL_ENABLE_PRIVACY_MODE_BUTTON_ATTRIBUTE_ID (0x002B) +#define ZCL_WRONG_CODE_ENTRY_LIMIT_ATTRIBUTE_ID (0x0030) +#define ZCL_USER_CODE_TEMPORARY_DISABLE_TIME_ATTRIBUTE_ID (0x0031) +#define ZCL_SEND_PIN_OVER_THE_AIR_ATTRIBUTE_ID (0x0032) +#define ZCL_REQUIRE_PIN_FOR_RF_OPERATION_ATTRIBUTE_ID (0x0033) +#define ZCL_ZIGBEE_SECURITY_LEVEL_ATTRIBUTE_ID (0x0034) +#define ZCL_DOOR_LOCK_ALARM_MASK_ATTRIBUTE_ID (0x0040) +#define ZCL_KEYPAD_OPERATION_EVENT_MASK_ATTRIBUTE_ID (0x0041) +#define ZCL_RF_OPERATION_EVENT_MASK_ATTRIBUTE_ID (0x0042) +#define ZCL_MANUAL_OPERATION_EVENT_MASK_ATTRIBUTE_ID (0x0043) +#define ZCL_RFID_OPERATION_EVENT_MASK_ATTRIBUTE_ID (0x0044) +#define ZCL_KEYPAD_PROGRAMMING_EVENT_MASK_ATTRIBUTE_ID (0x0045) +#define ZCL_RF_PROGRAMMING_EVENT_MASK_ATTRIBUTE_ID (0x0046) +#define ZCL_RFID_PROGRAMMING_EVENT_MASK_ATTRIBUTE_ID (0x0047) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Window Covering // Client attributes -#define ZCL_WINDOW_COVERING_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_WINDOW_COVERING_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_COVERING_TYPE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_LIMIT_LIFT_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_LIMIT_TILT_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_CURRENT_LIFT_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_CURRENT_TILT_ATTRIBUTE_ID 0x0004 // Ver.: always -#define ZCL_NUMBER_LIFT_ATTRIBUTE_ID 0x0005 // Ver.: always -#define ZCL_NUMBER_TILT_ATTRIBUTE_ID 0x0006 // Ver.: always -#define ZCL_CONFIG_STATUS_ATTRIBUTE_ID 0x0007 // Ver.: always -#define ZCL_CURRENT_LIFT_PERCENTAGE_ATTRIBUTE_ID 0x0008 // Ver.: always -#define ZCL_CURRENT_TILT_PERCENTAGE_ATTRIBUTE_ID 0x0009 // Ver.: always -#define ZCL_OPEN_LIMIT_LIFT_ATTRIBUTE_ID 0x0010 // Ver.: always -#define ZCL_CLOSED_LIMIT_LIFT_ATTRIBUTE_ID 0x0011 // Ver.: always -#define ZCL_OPEN_LIMIT_TILT_ATTRIBUTE_ID 0x0012 // Ver.: always -#define ZCL_CLOSED_LIMIT_TILT_ATTRIBUTE_ID 0x0013 // Ver.: always -#define ZCL_VELOCITY_LIFT_ATTRIBUTE_ID 0x0014 // Ver.: always -#define ZCL_ACCELERATION_LIFT_ATTRIBUTE_ID 0x0015 // Ver.: always -#define ZCL_DECELERATION_LIFT_ATTRIBUTE_ID 0x0016 // Ver.: always -#define ZCL_MODE_ATTRIBUTE_ID 0x0017 // Ver.: always -#define ZCL_SETPOINTS_LIFT_ATTRIBUTE_ID 0x0018 // Ver.: always -#define ZCL_SETPOINTS_TILT_ATTRIBUTE_ID 0x0019 // Ver.: always -#define ZCL_WINDOW_COVERING_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_WINDOW_COVERING_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Barrier Control -// Cluster specification level: zcl-6.0-15-02018-001 +#define ZCL_COVERING_TYPE_ATTRIBUTE_ID (0x0000) +#define ZCL_LIMIT_LIFT_ATTRIBUTE_ID (0x0001) +#define ZCL_LIMIT_TILT_ATTRIBUTE_ID (0x0002) +#define ZCL_CURRENT_LIFT_ATTRIBUTE_ID (0x0003) +#define ZCL_CURRENT_TILT_ATTRIBUTE_ID (0x0004) +#define ZCL_NUMBER_LIFT_ATTRIBUTE_ID (0x0005) +#define ZCL_NUMBER_TILT_ATTRIBUTE_ID (0x0006) +#define ZCL_CONFIG_STATUS_ATTRIBUTE_ID (0x0007) +#define ZCL_CURRENT_LIFT_PERCENTAGE_ATTRIBUTE_ID (0x0008) +#define ZCL_CURRENT_TILT_PERCENTAGE_ATTRIBUTE_ID (0x0009) +#define ZCL_OPEN_LIMIT_LIFT_ATTRIBUTE_ID (0x0010) +#define ZCL_CLOSED_LIMIT_LIFT_ATTRIBUTE_ID (0x0011) +#define ZCL_OPEN_LIMIT_TILT_ATTRIBUTE_ID (0x0012) +#define ZCL_CLOSED_LIMIT_TILT_ATTRIBUTE_ID (0x0013) +#define ZCL_VELOCITY_LIFT_ATTRIBUTE_ID (0x0014) +#define ZCL_ACCELERATION_LIFT_ATTRIBUTE_ID (0x0015) +#define ZCL_DECELERATION_LIFT_ATTRIBUTE_ID (0x0016) +#define ZCL_MODE_ATTRIBUTE_ID (0x0017) +#define ZCL_SETPOINTS_LIFT_ATTRIBUTE_ID (0x0018) +#define ZCL_SETPOINTS_TILT_ATTRIBUTE_ID (0x0019) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Barrier Control // Client attributes -#define ZCL_BARRIER_CONTROL_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_BARRIER_CONTROL_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_BARRIER_MOVING_STATE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_BARRIER_SAFETY_STATUS_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_BARRIER_CAPABILITIES_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_BARRIER_OPEN_EVENTS_ATTRIBUTE_ID 0x0004 // Ver.: always -#define ZCL_BARRIER_CLOSE_EVENTS_ATTRIBUTE_ID 0x0005 // Ver.: always -#define ZCL_BARRIER_COMMAND_OPEN_EVENTS_ATTRIBUTE_ID 0x0006 // Ver.: always -#define ZCL_BARRIER_COMMAND_CLOSE_EVENTS_ATTRIBUTE_ID 0x0007 // Ver.: always -#define ZCL_BARRIER_OPEN_PERIOD_ATTRIBUTE_ID 0x0008 // Ver.: always -#define ZCL_BARRIER_CLOSE_PERIOD_ATTRIBUTE_ID 0x0009 // Ver.: always -#define ZCL_BARRIER_POSITION_ATTRIBUTE_ID 0x000A // Ver.: always -#define ZCL_BARRIER_CONTROL_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_BARRIER_CONTROL_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Pump Configuration and Control -// Cluster specification level: zcl-6.0-15-02018-001 +#define ZCL_BARRIER_MOVING_STATE_ATTRIBUTE_ID (0x0001) +#define ZCL_BARRIER_SAFETY_STATUS_ATTRIBUTE_ID (0x0002) +#define ZCL_BARRIER_CAPABILITIES_ATTRIBUTE_ID (0x0003) +#define ZCL_BARRIER_OPEN_EVENTS_ATTRIBUTE_ID (0x0004) +#define ZCL_BARRIER_CLOSE_EVENTS_ATTRIBUTE_ID (0x0005) +#define ZCL_BARRIER_COMMAND_OPEN_EVENTS_ATTRIBUTE_ID (0x0006) +#define ZCL_BARRIER_COMMAND_CLOSE_EVENTS_ATTRIBUTE_ID (0x0007) +#define ZCL_BARRIER_OPEN_PERIOD_ATTRIBUTE_ID (0x0008) +#define ZCL_BARRIER_CLOSE_PERIOD_ATTRIBUTE_ID (0x0009) +#define ZCL_BARRIER_POSITION_ATTRIBUTE_ID (0x000A) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Pump Configuration and Control // Client attributes -#define ZCL_PUMP_CONFIG_CONTROL_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_PUMP_CONFIG_CONTROL_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_MAX_PRESSURE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_MAX_SPEED_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_MAX_FLOW_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_MIN_CONST_PRESSURE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_MAX_CONST_PRESSURE_ATTRIBUTE_ID 0x0004 // Ver.: always -#define ZCL_MIN_COMP_PRESSURE_ATTRIBUTE_ID 0x0005 // Ver.: always -#define ZCL_MAX_COMP_PRESSURE_ATTRIBUTE_ID 0x0006 // Ver.: always -#define ZCL_MIN_CONST_SPEED_ATTRIBUTE_ID 0x0007 // Ver.: always -#define ZCL_MAX_CONST_SPEED_ATTRIBUTE_ID 0x0008 // Ver.: always -#define ZCL_MIN_CONST_FLOW_ATTRIBUTE_ID 0x0009 // Ver.: always -#define ZCL_MAX_CONST_FLOW_ATTRIBUTE_ID 0x000A // Ver.: always -#define ZCL_MIN_CONST_TEMP_ATTRIBUTE_ID 0x000B // Ver.: always -#define ZCL_MAX_CONST_TEMP_ATTRIBUTE_ID 0x000C // Ver.: always -#define ZCL_PUMP_STATUS_ATTRIBUTE_ID 0x0010 // Ver.: always -#define ZCL_EFFECTIVE_OPERATION_MODE_ATTRIBUTE_ID 0x0011 // Ver.: always -#define ZCL_EFFECTIVE_CONTROL_MODE_ATTRIBUTE_ID 0x0012 // Ver.: always -#define ZCL_CAPACITY_ATTRIBUTE_ID 0x0013 // Ver.: always -#define ZCL_SPEED_ATTRIBUTE_ID 0x0014 // Ver.: always -#define ZCL_LIFETIME_RUNNING_HOURS_ATTRIBUTE_ID 0x0015 // Ver.: always -#define ZCL_PUMP_POWER_ATTRIBUTE_ID 0x0016 // Ver.: always -#define ZCL_LIFETIME_ENERGY_CONSUMED_ATTRIBUTE_ID 0x0017 // Ver.: always -#define ZCL_OPERATION_MODE_ATTRIBUTE_ID 0x0020 // Ver.: always -#define ZCL_CONTROL_MODE_ATTRIBUTE_ID 0x0021 // Ver.: always -#define ZCL_PUMP_ALARM_MASK_ATTRIBUTE_ID 0x0022 // Ver.: always -#define ZCL_PUMP_CONFIG_CONTROL_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_PUMP_CONFIG_CONTROL_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Thermostat -// Cluster specification level: zcl-6.0-15-02018-001 +#define ZCL_MAX_PRESSURE_ATTRIBUTE_ID (0x0000) +#define ZCL_MAX_SPEED_ATTRIBUTE_ID (0x0001) +#define ZCL_MAX_FLOW_ATTRIBUTE_ID (0x0002) +#define ZCL_MIN_CONST_PRESSURE_ATTRIBUTE_ID (0x0003) +#define ZCL_MAX_CONST_PRESSURE_ATTRIBUTE_ID (0x0004) +#define ZCL_MIN_COMP_PRESSURE_ATTRIBUTE_ID (0x0005) +#define ZCL_MAX_COMP_PRESSURE_ATTRIBUTE_ID (0x0006) +#define ZCL_MIN_CONST_SPEED_ATTRIBUTE_ID (0x0007) +#define ZCL_MAX_CONST_SPEED_ATTRIBUTE_ID (0x0008) +#define ZCL_MIN_CONST_FLOW_ATTRIBUTE_ID (0x0009) +#define ZCL_MAX_CONST_FLOW_ATTRIBUTE_ID (0x000A) +#define ZCL_MIN_CONST_TEMP_ATTRIBUTE_ID (0x000B) +#define ZCL_MAX_CONST_TEMP_ATTRIBUTE_ID (0x000C) +#define ZCL_PUMP_STATUS_ATTRIBUTE_ID (0x0010) +#define ZCL_EFFECTIVE_OPERATION_MODE_ATTRIBUTE_ID (0x0011) +#define ZCL_EFFECTIVE_CONTROL_MODE_ATTRIBUTE_ID (0x0012) +#define ZCL_CAPACITY_ATTRIBUTE_ID (0x0013) +#define ZCL_SPEED_ATTRIBUTE_ID (0x0014) +#define ZCL_LIFETIME_RUNNING_HOURS_ATTRIBUTE_ID (0x0015) +#define ZCL_PUMP_POWER_ATTRIBUTE_ID (0x0016) +#define ZCL_LIFETIME_ENERGY_CONSUMED_ATTRIBUTE_ID (0x0017) +#define ZCL_OPERATION_MODE_ATTRIBUTE_ID (0x0020) +#define ZCL_CONTROL_MODE_ATTRIBUTE_ID (0x0021) +#define ZCL_PUMP_ALARM_MASK_ATTRIBUTE_ID (0x0022) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Thermostat // Client attributes -#define ZCL_THERMOSTAT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_THERMOSTAT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_LOCAL_TEMPERATURE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_OUTDOOR_TEMPERATURE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_THERMOSTAT_OCCUPANCY_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_ABS_MIN_HEAT_SETPOINT_LIMIT_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_ABS_MAX_HEAT_SETPOINT_LIMIT_ATTRIBUTE_ID 0x0004 // Ver.: always -#define ZCL_ABS_MIN_COOL_SETPOINT_LIMIT_ATTRIBUTE_ID 0x0005 // Ver.: always -#define ZCL_ABS_MAX_COOL_SETPOINT_LIMIT_ATTRIBUTE_ID 0x0006 // Ver.: always -#define ZCL_PI_COOLING_DEMAND_ATTRIBUTE_ID 0x0007 // Ver.: always -#define ZCL_PI_HEATING_DEMAND_ATTRIBUTE_ID 0x0008 // Ver.: always -#define ZCL_HVAC_SYSTEM_TYPE_CONFIGURATION_ATTRIBUTE_ID 0x0009 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_LOCAL_TEMPERATURE_CALIBRATION_ATTRIBUTE_ID 0x0010 // Ver.: always -#define ZCL_OCCUPIED_COOLING_SETPOINT_ATTRIBUTE_ID 0x0011 // Ver.: always -#define ZCL_OCCUPIED_HEATING_SETPOINT_ATTRIBUTE_ID 0x0012 // Ver.: always -#define ZCL_UNOCCUPIED_COOLING_SETPOINT_ATTRIBUTE_ID 0x0013 // Ver.: always -#define ZCL_UNOCCUPIED_HEATING_SETPOINT_ATTRIBUTE_ID 0x0014 // Ver.: always -#define ZCL_MIN_HEAT_SETPOINT_LIMIT_ATTRIBUTE_ID 0x0015 // Ver.: always -#define ZCL_MAX_HEAT_SETPOINT_LIMIT_ATTRIBUTE_ID 0x0016 // Ver.: always -#define ZCL_MIN_COOL_SETPOINT_LIMIT_ATTRIBUTE_ID 0x0017 // Ver.: always -#define ZCL_MAX_COOL_SETPOINT_LIMIT_ATTRIBUTE_ID 0x0018 // Ver.: always -#define ZCL_MIN_SETPOINT_DEAD_BAND_ATTRIBUTE_ID 0x0019 // Ver.: always -#define ZCL_REMOTE_SENSING_ATTRIBUTE_ID 0x001A // Ver.: always -#define ZCL_CONTROL_SEQUENCE_OF_OPERATION_ATTRIBUTE_ID 0x001B // Ver.: always -#define ZCL_SYSTEM_MODE_ATTRIBUTE_ID 0x001C // Ver.: always -#define ZCL_THERMOSTAT_ALARM_MASK_ATTRIBUTE_ID 0x001D // Ver.: always -#define ZCL_THERMOSTAT_RUNNING_MODE_ATTRIBUTE_ID 0x001E // Ver.: since ha-1.2-05-3520-29 -#define ZCL_START_OF_WEEK_ATTRIBUTE_ID 0x0020 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_NUMBER_OF_WEEKLY_TRANSITIONS_ATTRIBUTE_ID 0x0021 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_NUMBER_OF_DAILY_TRANSITIONS_ATTRIBUTE_ID 0x0022 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_TEMPERATURE_SETPOINT_HOLD_ATTRIBUTE_ID 0x0023 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_TEMPERATURE_SETPOINT_HOLD_DURATION_ATTRIBUTE_ID 0x0024 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_THERMOSTAT_PROGRAMMING_OPERATION_MODE_ATTRIBUTE_ID 0x0025 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_THERMOSTAT_RUNNING_STATE_ATTRIBUTE_ID 0x0029 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_SETPOINT_CHANGE_SOURCE_ATTRIBUTE_ID 0x0030 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_SETPOINT_CHANGE_AMOUNT_ATTRIBUTE_ID 0x0031 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_SETPOINT_CHANGE_SOURCE_TIMESTAMP_ATTRIBUTE_ID 0x0032 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_OCCUPIED_SETBACK_ATTRIBUTE_ID 0x0034 // Ver.: always -#define ZCL_OCCUPIED_SETBACK_MIN_ATTRIBUTE_ID 0x0035 // Ver.: always -#define ZCL_OCCUPIED_SETBACK_MAX_ATTRIBUTE_ID 0x0036 // Ver.: always -#define ZCL_UNOCCUPIED_SETBACK_ATTRIBUTE_ID 0x0037 // Ver.: always -#define ZCL_UNOCCUPIED_SETBACK_MIN_ATTRIBUTE_ID 0x0038 // Ver.: always -#define ZCL_UNOCCUPIED_SETBACK_MAX_ATTRIBUTE_ID 0x0039 // Ver.: always -#define ZCL_EMERGENCY_HEAT_DELTA_ATTRIBUTE_ID 0x003A // Ver.: always -#define ZCL_AC_TYPE_ATTRIBUTE_ID 0x0040 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_AC_CAPACITY_ATTRIBUTE_ID 0x0041 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_AC_REFRIGERANT_TYPE_ATTRIBUTE_ID 0x0042 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_AC_COMPRESSOR_ATTRIBUTE_ID 0x0043 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_AC_ERROR_CODE_ATTRIBUTE_ID 0x0044 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_AC_LOUVER_POSITION_ATTRIBUTE_ID 0x0045 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_AC_COIL_TEMPERATURE_ATTRIBUTE_ID 0x0046 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_AC_CAPACITY_FORMAT_ATTRIBUTE_ID 0x0047 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_THERMOSTAT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_THERMOSTAT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Fan Control -// Cluster specification level: zcl-6.0-15-02018-001 +#define ZCL_LOCAL_TEMPERATURE_ATTRIBUTE_ID (0x0000) +#define ZCL_OUTDOOR_TEMPERATURE_ATTRIBUTE_ID (0x0001) +#define ZCL_THERMOSTAT_OCCUPANCY_ATTRIBUTE_ID (0x0002) +#define ZCL_ABS_MIN_HEAT_SETPOINT_LIMIT_ATTRIBUTE_ID (0x0003) +#define ZCL_ABS_MAX_HEAT_SETPOINT_LIMIT_ATTRIBUTE_ID (0x0004) +#define ZCL_ABS_MIN_COOL_SETPOINT_LIMIT_ATTRIBUTE_ID (0x0005) +#define ZCL_ABS_MAX_COOL_SETPOINT_LIMIT_ATTRIBUTE_ID (0x0006) +#define ZCL_PI_COOLING_DEMAND_ATTRIBUTE_ID (0x0007) +#define ZCL_PI_HEATING_DEMAND_ATTRIBUTE_ID (0x0008) +#define ZCL_HVAC_SYSTEM_TYPE_CONFIGURATION_ATTRIBUTE_ID (0x0009) +#define ZCL_LOCAL_TEMPERATURE_CALIBRATION_ATTRIBUTE_ID (0x0010) +#define ZCL_OCCUPIED_COOLING_SETPOINT_ATTRIBUTE_ID (0x0011) +#define ZCL_OCCUPIED_HEATING_SETPOINT_ATTRIBUTE_ID (0x0012) +#define ZCL_UNOCCUPIED_COOLING_SETPOINT_ATTRIBUTE_ID (0x0013) +#define ZCL_UNOCCUPIED_HEATING_SETPOINT_ATTRIBUTE_ID (0x0014) +#define ZCL_MIN_HEAT_SETPOINT_LIMIT_ATTRIBUTE_ID (0x0015) +#define ZCL_MAX_HEAT_SETPOINT_LIMIT_ATTRIBUTE_ID (0x0016) +#define ZCL_MIN_COOL_SETPOINT_LIMIT_ATTRIBUTE_ID (0x0017) +#define ZCL_MAX_COOL_SETPOINT_LIMIT_ATTRIBUTE_ID (0x0018) +#define ZCL_MIN_SETPOINT_DEAD_BAND_ATTRIBUTE_ID (0x0019) +#define ZCL_REMOTE_SENSING_ATTRIBUTE_ID (0x001A) +#define ZCL_CONTROL_SEQUENCE_OF_OPERATION_ATTRIBUTE_ID (0x001B) +#define ZCL_SYSTEM_MODE_ATTRIBUTE_ID (0x001C) +#define ZCL_THERMOSTAT_ALARM_MASK_ATTRIBUTE_ID (0x001D) +#define ZCL_THERMOSTAT_RUNNING_MODE_ATTRIBUTE_ID (0x001E) +#define ZCL_START_OF_WEEK_ATTRIBUTE_ID (0x0020) +#define ZCL_NUMBER_OF_WEEKLY_TRANSITIONS_ATTRIBUTE_ID (0x0021) +#define ZCL_NUMBER_OF_DAILY_TRANSITIONS_ATTRIBUTE_ID (0x0022) +#define ZCL_TEMPERATURE_SETPOINT_HOLD_ATTRIBUTE_ID (0x0023) +#define ZCL_TEMPERATURE_SETPOINT_HOLD_DURATION_ATTRIBUTE_ID (0x0024) +#define ZCL_THERMOSTAT_PROGRAMMING_OPERATION_MODE_ATTRIBUTE_ID (0x0025) +#define ZCL_THERMOSTAT_RUNNING_STATE_ATTRIBUTE_ID (0x0029) +#define ZCL_SETPOINT_CHANGE_SOURCE_ATTRIBUTE_ID (0x0030) +#define ZCL_SETPOINT_CHANGE_AMOUNT_ATTRIBUTE_ID (0x0031) +#define ZCL_SETPOINT_CHANGE_SOURCE_TIMESTAMP_ATTRIBUTE_ID (0x0032) +#define ZCL_AC_TYPE_ATTRIBUTE_ID (0x0040) +#define ZCL_AC_CAPACITY_ATTRIBUTE_ID (0x0041) +#define ZCL_AC_REFRIGERANT_TYPE_ATTRIBUTE_ID (0x0042) +#define ZCL_AC_COMPRESSOR_ATTRIBUTE_ID (0x0043) +#define ZCL_AC_ERROR_CODE_ATTRIBUTE_ID (0x0044) +#define ZCL_AC_LOUVER_POSITION_ATTRIBUTE_ID (0x0045) +#define ZCL_AC_COIL_TEMPERATURE_ATTRIBUTE_ID (0x0046) +#define ZCL_AC_CAPACITY_FORMAT_ATTRIBUTE_ID (0x0047) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Fan Control // Client attributes -#define ZCL_FAN_CONTROL_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_FAN_CONTROL_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_FAN_CONTROL_FAN_MODE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_FAN_CONTROL_FAN_MODE_SEQUENCE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_FAN_DELAY_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_FAN_CONTROL_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_FAN_CONTROL_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_FAN_CONTROL_FAN_MODE_ATTRIBUTE_ID (0x0000) +#define ZCL_FAN_CONTROL_FAN_MODE_SEQUENCE_ATTRIBUTE_ID (0x0001) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) -// Attribute types for cluster: Dehumidification Control -// Cluster specification level: zcl-6.0-15-02018-001 +// Attribute ids for cluster: Dehumidification Control // Client attributes -#define ZCL_DEHUMID_CONTROL_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_DEHUMID_CONTROL_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_RELATIVE_HUMIDITY_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_DEHUMIDIFICATION_COOLING_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_RH_DEHUMIDIFICATION_SETPOINT_ATTRIBUTE_ID 0x0010 // Ver.: always -#define ZCL_RELATIVE_HUMIDITY_MODE_ATTRIBUTE_ID 0x0011 // Ver.: always -#define ZCL_DEHUMIDIFICATION_LOCKOUT_ATTRIBUTE_ID 0x0012 // Ver.: always -#define ZCL_DEHUMIDIFICATION_HYSTERESIS_ATTRIBUTE_ID 0x0013 // Ver.: always -#define ZCL_DEHUMIDIFICATION_MAX_COOL_ATTRIBUTE_ID 0x0014 // Ver.: always -#define ZCL_RELATIVE_HUMIDITY_DISPLAY_ATTRIBUTE_ID 0x0015 // Ver.: always -#define ZCL_DEHUMID_CONTROL_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_DEHUMID_CONTROL_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Thermostat User Interface Configuration -// Cluster specification level: zcl-6.0-15-02018-001 +#define ZCL_RELATIVE_HUMIDITY_ATTRIBUTE_ID (0x0000) +#define ZCL_DEHUMIDIFICATION_COOLING_ATTRIBUTE_ID (0x0001) +#define ZCL_RH_DEHUMIDIFICATION_SETPOINT_ATTRIBUTE_ID (0x0010) +#define ZCL_RELATIVE_HUMIDITY_MODE_ATTRIBUTE_ID (0x0011) +#define ZCL_DEHUMIDIFICATION_LOCKOUT_ATTRIBUTE_ID (0x0012) +#define ZCL_DEHUMIDIFICATION_HYSTERESIS_ATTRIBUTE_ID (0x0013) +#define ZCL_DEHUMIDIFICATION_MAX_COOL_ATTRIBUTE_ID (0x0014) +#define ZCL_RELATIVE_HUMIDITY_DISPLAY_ATTRIBUTE_ID (0x0015) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Thermostat User Interface Configuration // Client attributes -#define ZCL_THERMOSTAT_UI_CONFIG_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_THERMOSTAT_UI_CONFIG_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_TEMPERATURE_DISPLAY_MODE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_KEYPAD_LOCKOUT_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_SCHEDULE_PROGRAMMING_VISIBILITY_ATTRIBUTE_ID 0x0002 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BACKLIGHT_TIMEOUT_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_SETPOINT_SOURCE_INDICATION_ATTRIBUTE_ID 0x0004 // Ver.: always -#define ZCL_THERMOSTAT_UI_CONFIG_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_THERMOSTAT_UI_CONFIG_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_TEMPERATURE_DISPLAY_MODE_ATTRIBUTE_ID (0x0000) +#define ZCL_KEYPAD_LOCKOUT_ATTRIBUTE_ID (0x0001) +#define ZCL_SCHEDULE_PROGRAMMING_VISIBILITY_ATTRIBUTE_ID (0x0002) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) -// Attribute types for cluster: Color Control -// Cluster specification level: zcl6-errata-14-0129-15 +// Attribute ids for cluster: Color Control // Client attributes -#define ZCL_COLOR_CONTROL_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_COLOR_CONTROL_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_COLOR_CONTROL_CURRENT_HUE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_COLOR_CONTROL_CURRENT_SATURATION_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_COLOR_CONTROL_REMAINING_TIME_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_COLOR_CONTROL_CURRENT_X_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_COLOR_CONTROL_CURRENT_Y_ATTRIBUTE_ID 0x0004 // Ver.: always -#define ZCL_COLOR_CONTROL_DRIFT_COMPENSATION_ATTRIBUTE_ID 0x0005 // Ver.: always -#define ZCL_COLOR_CONTROL_COMPENSATION_TEXT_ATTRIBUTE_ID 0x0006 // Ver.: always -#define ZCL_COLOR_CONTROL_COLOR_TEMPERATURE_ATTRIBUTE_ID 0x0007 // Ver.: always -#define ZCL_COLOR_CONTROL_COLOR_MODE_ATTRIBUTE_ID 0x0008 // Ver.: always -#define ZCL_COLOR_CONTROL_OPTIONS_ATTRIBUTE_ID 0x000F // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_COLOR_CONTROL_NUMBER_OF_PRIMARIES_ATTRIBUTE_ID 0x0010 // Ver.: always -#define ZCL_COLOR_CONTROL_PRIMARY_1_X_ATTRIBUTE_ID 0x0011 // Ver.: always -#define ZCL_COLOR_CONTROL_PRIMARY_1_Y_ATTRIBUTE_ID 0x0012 // Ver.: always -#define ZCL_COLOR_CONTROL_PRIMARY_1_INTENSITY_ATTRIBUTE_ID 0x0013 // Ver.: always -#define ZCL_COLOR_CONTROL_PRIMARY_2_X_ATTRIBUTE_ID 0x0015 // Ver.: always -#define ZCL_COLOR_CONTROL_PRIMARY_2_Y_ATTRIBUTE_ID 0x0016 // Ver.: always -#define ZCL_COLOR_CONTROL_PRIMARY_2_INTENSITY_ATTRIBUTE_ID 0x0017 // Ver.: always -#define ZCL_COLOR_CONTROL_PRIMARY_3_X_ATTRIBUTE_ID 0x0019 // Ver.: always -#define ZCL_COLOR_CONTROL_PRIMARY_3_Y_ATTRIBUTE_ID 0x001A // Ver.: always -#define ZCL_COLOR_CONTROL_PRIMARY_3_INTENSITY_ATTRIBUTE_ID 0x001B // Ver.: always -#define ZCL_COLOR_CONTROL_PRIMARY_4_X_ATTRIBUTE_ID 0x0020 // Ver.: always -#define ZCL_COLOR_CONTROL_PRIMARY_4_Y_ATTRIBUTE_ID 0x0021 // Ver.: always -#define ZCL_COLOR_CONTROL_PRIMARY_4_INTENSITY_ATTRIBUTE_ID 0x0022 // Ver.: always -#define ZCL_COLOR_CONTROL_PRIMARY_5_X_ATTRIBUTE_ID 0x0024 // Ver.: always -#define ZCL_COLOR_CONTROL_PRIMARY_5_Y_ATTRIBUTE_ID 0x0025 // Ver.: always -#define ZCL_COLOR_CONTROL_PRIMARY_5_INTENSITY_ATTRIBUTE_ID 0x0026 // Ver.: always -#define ZCL_COLOR_CONTROL_PRIMARY_6_X_ATTRIBUTE_ID 0x0028 // Ver.: always -#define ZCL_COLOR_CONTROL_PRIMARY_6_Y_ATTRIBUTE_ID 0x0029 // Ver.: always -#define ZCL_COLOR_CONTROL_PRIMARY_6_INTENSITY_ATTRIBUTE_ID 0x002A // Ver.: always -#define ZCL_COLOR_CONTROL_WHITE_POINT_X_ATTRIBUTE_ID 0x0030 // Ver.: always -#define ZCL_COLOR_CONTROL_WHITE_POINT_Y_ATTRIBUTE_ID 0x0031 // Ver.: always -#define ZCL_COLOR_CONTROL_COLOR_POINT_R_X_ATTRIBUTE_ID 0x0032 // Ver.: always -#define ZCL_COLOR_CONTROL_COLOR_POINT_R_Y_ATTRIBUTE_ID 0x0033 // Ver.: always -#define ZCL_COLOR_CONTROL_COLOR_POINT_R_INTENSITY_ATTRIBUTE_ID 0x0034 // Ver.: always -#define ZCL_COLOR_CONTROL_COLOR_POINT_G_X_ATTRIBUTE_ID 0x0036 // Ver.: always -#define ZCL_COLOR_CONTROL_COLOR_POINT_G_Y_ATTRIBUTE_ID 0x0037 // Ver.: always -#define ZCL_COLOR_CONTROL_COLOR_POINT_G_INTENSITY_ATTRIBUTE_ID 0x0038 // Ver.: always -#define ZCL_COLOR_CONTROL_COLOR_POINT_B_X_ATTRIBUTE_ID 0x003A // Ver.: always -#define ZCL_COLOR_CONTROL_COLOR_POINT_B_Y_ATTRIBUTE_ID 0x003B // Ver.: always -#define ZCL_COLOR_CONTROL_COLOR_POINT_B_INTENSITY_ATTRIBUTE_ID 0x003C // Ver.: always -#define ZCL_COLOR_CONTROL_ENHANCED_CURRENT_HUE_ATTRIBUTE_ID 0x4000 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_COLOR_CONTROL_ENHANCED_COLOR_MODE_ATTRIBUTE_ID 0x4001 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_COLOR_CONTROL_COLOR_LOOP_ACTIVE_ATTRIBUTE_ID 0x4002 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_COLOR_CONTROL_COLOR_LOOP_DIRECTION_ATTRIBUTE_ID 0x4003 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_COLOR_CONTROL_COLOR_LOOP_TIME_ATTRIBUTE_ID 0x4004 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_COLOR_CONTROL_COLOR_LOOP_START_ENHANCED_HUE_ATTRIBUTE_ID 0x4005 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_COLOR_CONTROL_COLOR_LOOP_STORED_ENHANCED_HUE_ATTRIBUTE_ID 0x4006 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_COLOR_CONTROL_COLOR_CAPABILITIES_ATTRIBUTE_ID 0x400A // Ver.: since zll-1.0-11-0037-10 -#define ZCL_COLOR_CONTROL_COLOR_TEMP_PHYSICAL_MIN_ATTRIBUTE_ID 0x400B // Ver.: since zll-1.0-11-0037-10 -#define ZCL_COLOR_CONTROL_COLOR_TEMP_PHYSICAL_MAX_ATTRIBUTE_ID 0x400C // Ver.: since zll-1.0-11-0037-10 -#define ZCL_COLOR_CONTROL_TEMPERATURE_LEVEL_MIN_MIREDS_ATTRIBUTE_ID 0x400D // Ver.: since l&o-1.0-15-0014-04 -#define ZCL_START_UP_COLOR_TEMPERATURE_MIREDS_ATTRIBUTE_ID 0x4010 // Ver.: since l&o-1.0-15-0014-04 -#define ZCL_COLOR_CONTROL_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_COLOR_CONTROL_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Ballast Configuration -// Cluster specification level: zcl6-errata-14-0129-15 +#define ZCL_COLOR_CONTROL_CURRENT_HUE_ATTRIBUTE_ID (0x0000) +#define ZCL_COLOR_CONTROL_CURRENT_SATURATION_ATTRIBUTE_ID (0x0001) +#define ZCL_COLOR_CONTROL_REMAINING_TIME_ATTRIBUTE_ID (0x0002) +#define ZCL_COLOR_CONTROL_CURRENT_X_ATTRIBUTE_ID (0x0003) +#define ZCL_COLOR_CONTROL_CURRENT_Y_ATTRIBUTE_ID (0x0004) +#define ZCL_COLOR_CONTROL_DRIFT_COMPENSATION_ATTRIBUTE_ID (0x0005) +#define ZCL_COLOR_CONTROL_COMPENSATION_TEXT_ATTRIBUTE_ID (0x0006) +#define ZCL_COLOR_CONTROL_COLOR_TEMPERATURE_ATTRIBUTE_ID (0x0007) +#define ZCL_COLOR_CONTROL_COLOR_MODE_ATTRIBUTE_ID (0x0008) +#define ZCL_COLOR_CONTROL_OPTIONS_ATTRIBUTE_ID (0x000F) +#define ZCL_COLOR_CONTROL_NUMBER_OF_PRIMARIES_ATTRIBUTE_ID (0x0010) +#define ZCL_COLOR_CONTROL_PRIMARY_1_X_ATTRIBUTE_ID (0x0011) +#define ZCL_COLOR_CONTROL_PRIMARY_1_Y_ATTRIBUTE_ID (0x0012) +#define ZCL_COLOR_CONTROL_PRIMARY_1_INTENSITY_ATTRIBUTE_ID (0x0013) +#define ZCL_COLOR_CONTROL_PRIMARY_2_X_ATTRIBUTE_ID (0x0015) +#define ZCL_COLOR_CONTROL_PRIMARY_2_Y_ATTRIBUTE_ID (0x0016) +#define ZCL_COLOR_CONTROL_PRIMARY_2_INTENSITY_ATTRIBUTE_ID (0x0017) +#define ZCL_COLOR_CONTROL_PRIMARY_3_X_ATTRIBUTE_ID (0x0019) +#define ZCL_COLOR_CONTROL_PRIMARY_3_Y_ATTRIBUTE_ID (0x001A) +#define ZCL_COLOR_CONTROL_PRIMARY_3_INTENSITY_ATTRIBUTE_ID (0x001B) +#define ZCL_COLOR_CONTROL_PRIMARY_4_X_ATTRIBUTE_ID (0x0020) +#define ZCL_COLOR_CONTROL_PRIMARY_4_Y_ATTRIBUTE_ID (0x0021) +#define ZCL_COLOR_CONTROL_PRIMARY_4_INTENSITY_ATTRIBUTE_ID (0x0022) +#define ZCL_COLOR_CONTROL_PRIMARY_5_X_ATTRIBUTE_ID (0x0024) +#define ZCL_COLOR_CONTROL_PRIMARY_5_Y_ATTRIBUTE_ID (0x0025) +#define ZCL_COLOR_CONTROL_PRIMARY_5_INTENSITY_ATTRIBUTE_ID (0x0026) +#define ZCL_COLOR_CONTROL_PRIMARY_6_X_ATTRIBUTE_ID (0x0028) +#define ZCL_COLOR_CONTROL_PRIMARY_6_Y_ATTRIBUTE_ID (0x0029) +#define ZCL_COLOR_CONTROL_PRIMARY_6_INTENSITY_ATTRIBUTE_ID (0x002A) +#define ZCL_COLOR_CONTROL_WHITE_POINT_X_ATTRIBUTE_ID (0x0030) +#define ZCL_COLOR_CONTROL_WHITE_POINT_Y_ATTRIBUTE_ID (0x0031) +#define ZCL_COLOR_CONTROL_COLOR_POINT_R_X_ATTRIBUTE_ID (0x0032) +#define ZCL_COLOR_CONTROL_COLOR_POINT_R_Y_ATTRIBUTE_ID (0x0033) +#define ZCL_COLOR_CONTROL_COLOR_POINT_R_INTENSITY_ATTRIBUTE_ID (0x0034) +#define ZCL_COLOR_CONTROL_COLOR_POINT_G_X_ATTRIBUTE_ID (0x0036) +#define ZCL_COLOR_CONTROL_COLOR_POINT_G_Y_ATTRIBUTE_ID (0x0037) +#define ZCL_COLOR_CONTROL_COLOR_POINT_G_INTENSITY_ATTRIBUTE_ID (0x0038) +#define ZCL_COLOR_CONTROL_COLOR_POINT_B_X_ATTRIBUTE_ID (0x003A) +#define ZCL_COLOR_CONTROL_COLOR_POINT_B_Y_ATTRIBUTE_ID (0x003B) +#define ZCL_COLOR_CONTROL_COLOR_POINT_B_INTENSITY_ATTRIBUTE_ID (0x003C) +#define ZCL_COLOR_CONTROL_ENHANCED_CURRENT_HUE_ATTRIBUTE_ID (0x4000) +#define ZCL_COLOR_CONTROL_ENHANCED_COLOR_MODE_ATTRIBUTE_ID (0x4001) +#define ZCL_COLOR_CONTROL_COLOR_LOOP_ACTIVE_ATTRIBUTE_ID (0x4002) +#define ZCL_COLOR_CONTROL_COLOR_LOOP_DIRECTION_ATTRIBUTE_ID (0x4003) +#define ZCL_COLOR_CONTROL_COLOR_LOOP_TIME_ATTRIBUTE_ID (0x4004) +#define ZCL_COLOR_CONTROL_COLOR_LOOP_START_ENHANCED_HUE_ATTRIBUTE_ID (0x4005) +#define ZCL_COLOR_CONTROL_COLOR_LOOP_STORED_ENHANCED_HUE_ATTRIBUTE_ID (0x4006) +#define ZCL_COLOR_CONTROL_COLOR_CAPABILITIES_ATTRIBUTE_ID (0x400A) +#define ZCL_COLOR_CONTROL_COLOR_TEMP_PHYSICAL_MIN_ATTRIBUTE_ID (0x400B) +#define ZCL_COLOR_CONTROL_COLOR_TEMP_PHYSICAL_MAX_ATTRIBUTE_ID (0x400C) +#define ZCL_COLOR_CONTROL_TEMPERATURE_LEVEL_MIN_MIREDS_ATTRIBUTE_ID (0x400D) +#define ZCL_START_UP_COLOR_TEMPERATURE_MIREDS_ATTRIBUTE_ID (0x4010) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Ballast Configuration // Client attributes -#define ZCL_BALLAST_CONFIGURATION_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_BALLAST_CONFIGURATION_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_PHYSICAL_MIN_LEVEL_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_PHYSICAL_MAX_LEVEL_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_BALLAST_STATUS_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_MIN_LEVEL_ATTRIBUTE_ID 0x0010 // Ver.: always -#define ZCL_MAX_LEVEL_ATTRIBUTE_ID 0x0011 // Ver.: always -#define ZCL_POWER_ON_LEVEL_ATTRIBUTE_ID 0x0012 // Ver.: always -#define ZCL_POWER_ON_FADE_TIME_ATTRIBUTE_ID 0x0013 // Ver.: always -#define ZCL_INTRINSIC_BALLAST_FACTOR_ATTRIBUTE_ID 0x0014 // Ver.: always -#define ZCL_BALLAST_FACTOR_ADJUSTMENT_ATTRIBUTE_ID 0x0015 // Ver.: always -#define ZCL_LAMP_QUALITY_ATTRIBUTE_ID 0x0020 // Ver.: always -#define ZCL_LAMP_TYPE_ATTRIBUTE_ID 0x0030 // Ver.: always -#define ZCL_LAMP_MANUFACTURER_ATTRIBUTE_ID 0x0031 // Ver.: always -#define ZCL_LAMP_RATED_HOURS_ATTRIBUTE_ID 0x0032 // Ver.: always -#define ZCL_LAMP_BURN_HOURS_ATTRIBUTE_ID 0x0033 // Ver.: always -#define ZCL_LAMP_ALARM_MODE_ATTRIBUTE_ID 0x0034 // Ver.: always -#define ZCL_LAMP_BURN_HOURS_TRIP_POINT_ATTRIBUTE_ID 0x0035 // Ver.: always -#define ZCL_BALLAST_CONFIGURATION_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_BALLAST_CONFIGURATION_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Illuminance Measurement -// Cluster specification level: zcl-6.0-15-02018-001 +#define ZCL_PHYSICAL_MIN_LEVEL_ATTRIBUTE_ID (0x0000) +#define ZCL_PHYSICAL_MAX_LEVEL_ATTRIBUTE_ID (0x0001) +#define ZCL_BALLAST_STATUS_ATTRIBUTE_ID (0x0002) +#define ZCL_MIN_LEVEL_ATTRIBUTE_ID (0x0010) +#define ZCL_MAX_LEVEL_ATTRIBUTE_ID (0x0011) +#define ZCL_POWER_ON_LEVEL_ATTRIBUTE_ID (0x0012) +#define ZCL_POWER_ON_FADE_TIME_ATTRIBUTE_ID (0x0013) +#define ZCL_INTRINSIC_BALLAST_FACTOR_ATTRIBUTE_ID (0x0014) +#define ZCL_BALLAST_FACTOR_ADJUSTMENT_ATTRIBUTE_ID (0x0015) +#define ZCL_LAMP_QUALITY_ATTRIBUTE_ID (0x0020) +#define ZCL_LAMP_TYPE_ATTRIBUTE_ID (0x0030) +#define ZCL_LAMP_MANUFACTURER_ATTRIBUTE_ID (0x0031) +#define ZCL_LAMP_RATED_HOURS_ATTRIBUTE_ID (0x0032) +#define ZCL_LAMP_BURN_HOURS_ATTRIBUTE_ID (0x0033) +#define ZCL_LAMP_ALARM_MODE_ATTRIBUTE_ID (0x0034) +#define ZCL_LAMP_BURN_HOURS_TRIP_POINT_ATTRIBUTE_ID (0x0035) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Illuminance Measurement // Client attributes -#define ZCL_ILLUM_MEASUREMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_ILLUM_MEASUREMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_ILLUM_MEASURED_VALUE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_ILLUM_MIN_MEASURED_VALUE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_ILLUM_MAX_MEASURED_VALUE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_ILLUM_TOLERANCE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_MEASUREMENT_LIGHT_SENSOR_TYPE_ATTRIBUTE_ID 0x0004 // Ver.: always -#define ZCL_ILLUM_MEASUREMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_ILLUM_MEASUREMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_ILLUM_MEASURED_VALUE_ATTRIBUTE_ID (0x0000) +#define ZCL_ILLUM_MIN_MEASURED_VALUE_ATTRIBUTE_ID (0x0001) +#define ZCL_ILLUM_MAX_MEASURED_VALUE_ATTRIBUTE_ID (0x0002) +#define ZCL_ILLUM_TOLERANCE_ATTRIBUTE_ID (0x0003) +#define ZCL_MEASUREMENT_LIGHT_SENSOR_TYPE_ATTRIBUTE_ID (0x0004) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) -// Attribute types for cluster: Illuminance Level Sensing -// Cluster specification level: zcl-6.0-15-02018-001 +// Attribute ids for cluster: Illuminance Level Sensing // Client attributes -#define ZCL_ILLUM_LEVEL_SENSING_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_ILLUM_LEVEL_SENSING_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_LEVEL_STATUS_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_SENSING_LIGHT_SENSOR_TYPE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_ILLUMINANCE_TARGET_LEVEL_ATTRIBUTE_ID 0x0010 // Ver.: always -#define ZCL_ILLUM_LEVEL_SENSING_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_ILLUM_LEVEL_SENSING_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_LEVEL_STATUS_ATTRIBUTE_ID (0x0000) +#define ZCL_SENSING_LIGHT_SENSOR_TYPE_ATTRIBUTE_ID (0x0001) +#define ZCL_ILLUMINANCE_TARGET_LEVEL_ATTRIBUTE_ID (0x0010) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) -// Attribute types for cluster: Temperature Measurement -// Cluster specification level: zcl-6.0-15-02018-001 +// Attribute ids for cluster: Temperature Measurement // Client attributes -#define ZCL_TEMP_MEASUREMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_TEMP_MEASUREMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_TEMP_MEASURED_VALUE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_TEMP_MIN_MEASURED_VALUE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_TEMP_MAX_MEASURED_VALUE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_TEMP_TOLERANCE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_TEMP_MEASUREMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_TEMP_MEASUREMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_TEMP_MEASURED_VALUE_ATTRIBUTE_ID (0x0000) +#define ZCL_TEMP_MIN_MEASURED_VALUE_ATTRIBUTE_ID (0x0001) +#define ZCL_TEMP_MAX_MEASURED_VALUE_ATTRIBUTE_ID (0x0002) +#define ZCL_TEMP_TOLERANCE_ATTRIBUTE_ID (0x0003) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) -// Attribute types for cluster: Pressure Measurement -// Cluster specification level: zcl-6.0-15-02018-001 +// Attribute ids for cluster: Pressure Measurement // Client attributes -#define ZCL_PRESSURE_MEASUREMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_PRESSURE_MEASUREMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_PRESSURE_MEASURED_VALUE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_PRESSURE_MIN_MEASURED_VALUE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_PRESSURE_MAX_MEASURED_VALUE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_PRESSURE_TOLERANCE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_PRESSURE_SCALED_VALUE_ATTRIBUTE_ID 0x0010 // Ver.: always -#define ZCL_PRESSURE_MIN_SCALED_VALUE_ATTRIBUTE_ID 0x0011 // Ver.: always -#define ZCL_PRESSURE_MAX_SCALED_VALUE_ATTRIBUTE_ID 0x0012 // Ver.: always -#define ZCL_PRESSURE_SCALED_TOLERANCE_ATTRIBUTE_ID 0x0013 // Ver.: always -#define ZCL_PRESSURE_SCALE_ATTRIBUTE_ID 0x0014 // Ver.: always -#define ZCL_PRESSURE_MEASUREMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_PRESSURE_MEASUREMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Flow Measurement -// Cluster specification level: zcl-6.0-15-02018-001 +#define ZCL_PRESSURE_MEASURED_VALUE_ATTRIBUTE_ID (0x0000) +#define ZCL_PRESSURE_MIN_MEASURED_VALUE_ATTRIBUTE_ID (0x0001) +#define ZCL_PRESSURE_MAX_MEASURED_VALUE_ATTRIBUTE_ID (0x0002) +#define ZCL_PRESSURE_TOLERANCE_ATTRIBUTE_ID (0x0003) +#define ZCL_PRESSURE_SCALED_VALUE_ATTRIBUTE_ID (0x0010) +#define ZCL_PRESSURE_MIN_SCALED_VALUE_ATTRIBUTE_ID (0x0011) +#define ZCL_PRESSURE_MAX_SCALED_VALUE_ATTRIBUTE_ID (0x0012) +#define ZCL_PRESSURE_SCALED_TOLERANCE_ATTRIBUTE_ID (0x0013) +#define ZCL_PRESSURE_SCALE_ATTRIBUTE_ID (0x0014) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Flow Measurement // Client attributes -#define ZCL_FLOW_MEASUREMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_FLOW_MEASUREMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_FLOW_MEASURED_VALUE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_FLOW_MIN_MEASURED_VALUE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_FLOW_MAX_MEASURED_VALUE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_FLOW_TOLERANCE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_FLOW_MEASUREMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_FLOW_MEASUREMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_FLOW_MEASURED_VALUE_ATTRIBUTE_ID (0x0000) +#define ZCL_FLOW_MIN_MEASURED_VALUE_ATTRIBUTE_ID (0x0001) +#define ZCL_FLOW_MAX_MEASURED_VALUE_ATTRIBUTE_ID (0x0002) +#define ZCL_FLOW_TOLERANCE_ATTRIBUTE_ID (0x0003) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) -// Attribute types for cluster: Relative Humidity Measurement -// Cluster specification level: zcl-6.0-15-02018-001 +// Attribute ids for cluster: Relative Humidity Measurement // Client attributes -#define ZCL_RELATIVE_HUMIDITY_MEASUREMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_RELATIVE_HUMIDITY_MEASUREMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_RELATIVE_HUMIDITY_MEASURED_VALUE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_RELATIVE_HUMIDITY_MIN_MEASURED_VALUE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_RELATIVE_HUMIDITY_MAX_MEASURED_VALUE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_RELATIVE_HUMIDITY_TOLERANCE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_RELATIVE_HUMIDITY_MEASUREMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_RELATIVE_HUMIDITY_MEASUREMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_RELATIVE_HUMIDITY_MEASURED_VALUE_ATTRIBUTE_ID (0x0000) +#define ZCL_RELATIVE_HUMIDITY_MIN_MEASURED_VALUE_ATTRIBUTE_ID (0x0001) +#define ZCL_RELATIVE_HUMIDITY_MAX_MEASURED_VALUE_ATTRIBUTE_ID (0x0002) +#define ZCL_RELATIVE_HUMIDITY_TOLERANCE_ATTRIBUTE_ID (0x0003) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) -// Attribute types for cluster: Occupancy Sensing -// Cluster specification level: zcl-6.0-15-02018-001 +// Attribute ids for cluster: Occupancy Sensing // Client attributes -#define ZCL_OCCUPANCY_SENSING_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_OCCUPANCY_SENSING_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_OCCUPANCY_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_OCCUPANCY_SENSOR_TYPE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_OCCUPANCY_SENSOR_TYPE_BITMAP_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_PIR_OCCUPIED_TO_UNOCCUPIED_DELAY_ATTRIBUTE_ID 0x0010 // Ver.: always -#define ZCL_PIR_UNOCCUPIED_TO_OCCUPIED_DELAY_ATTRIBUTE_ID 0x0011 // Ver.: always -#define ZCL_PIR_UNOCCUPIED_TO_OCCUPIED_THRESHOLD_ATTRIBUTE_ID 0x0012 // Ver.: always -#define ZCL_ULTRASONIC_OCCUPIED_TO_UNOCCUPIED_DELAY_ATTRIBUTE_ID 0x0020 // Ver.: always -#define ZCL_ULTRASONIC_UNOCCUPIED_TO_OCCUPIED_DELAY_ATTRIBUTE_ID 0x0021 // Ver.: always -#define ZCL_ULTRASONIC_UNOCCUPIED_TO_OCCUPIED_THRESHOLD_ATTRIBUTE_ID 0x0022 // Ver.: always -#define ZCL_PHYSICAL_CONTACT_OCCUPIED_TO_UNOCCUPIED_DELAY_ATTRIBUTE_ID 0x0030 // Ver.: always -#define ZCL_PHYSICAL_CONTACT_UNOCCUPIED_TO_OCCUPIED_DELAY_ATTRIBUTE_ID 0x0031 // Ver.: always -#define ZCL_PHYSICAL_CONTACT_UNOCCUPIED_TO_OCCUPIED_THRESHOLD_ATTRIBUTE_ID 0x0032 // Ver.: always -#define ZCL_OCCUPANCY_SENSING_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_OCCUPANCY_SENSING_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Carbon Monoxide Concentration Measurement -// Cluster specification level: zcl-6.0-15-02018-001 +#define ZCL_OCCUPANCY_ATTRIBUTE_ID (0x0000) +#define ZCL_OCCUPANCY_SENSOR_TYPE_ATTRIBUTE_ID (0x0001) +#define ZCL_OCCUPANCY_SENSOR_TYPE_BITMAP_ATTRIBUTE_ID (0x0002) +#define ZCL_PIR_OCCUPIED_TO_UNOCCUPIED_DELAY_ATTRIBUTE_ID (0x0010) +#define ZCL_PIR_UNOCCUPIED_TO_OCCUPIED_DELAY_ATTRIBUTE_ID (0x0011) +#define ZCL_PIR_UNOCCUPIED_TO_OCCUPIED_THRESHOLD_ATTRIBUTE_ID (0x0012) +#define ZCL_ULTRASONIC_OCCUPIED_TO_UNOCCUPIED_DELAY_ATTRIBUTE_ID (0x0020) +#define ZCL_ULTRASONIC_UNOCCUPIED_TO_OCCUPIED_DELAY_ATTRIBUTE_ID (0x0021) +#define ZCL_ULTRASONIC_UNOCCUPIED_TO_OCCUPIED_THRESHOLD_ATTRIBUTE_ID (0x0022) +#define ZCL_PHYSICAL_CONTACT_OCCUPIED_TO_UNOCCUPIED_DELAY_ATTRIBUTE_ID (0x0030) +#define ZCL_PHYSICAL_CONTACT_UNOCCUPIED_TO_OCCUPIED_DELAY_ATTRIBUTE_ID (0x0031) +#define ZCL_PHYSICAL_CONTACT_UNOCCUPIED_TO_OCCUPIED_THRESHOLD_ATTRIBUTE_ID (0x0032) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Carbon Monoxide Concentration Measurement // Client attributes -#define ZCL_CARBON_MONOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_CARBON_MONOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_CARBON_MONOXIDE_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_CARBON_MONOXIDE_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_CARBON_MONOXIDE_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_CARBON_MONOXIDE_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_CARBON_MONOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_CARBON_MONOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Carbon Dioxide Concentration Measurement -// Cluster specification level: zcl-6.0-15-02018-001 +#define ZCL_CARBON_MONOXIDE_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID (0x0000) +#define ZCL_CARBON_MONOXIDE_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID (0x0001) +#define ZCL_CARBON_MONOXIDE_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID (0x0002) +#define ZCL_CARBON_MONOXIDE_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID (0x0003) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Carbon Dioxide Concentration Measurement // Client attributes -#define ZCL_CARBON_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_CARBON_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_CARBON_DIOXIDE_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_CARBON_DIOXIDE_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_CARBON_DIOXIDE_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_CARBON_DIOXIDE_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_CARBON_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_CARBON_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Ethylene Concentration Measurement -// Cluster specification level: zcl-6.0-15-02018-001 +#define ZCL_CARBON_DIOXIDE_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID (0x0000) +#define ZCL_CARBON_DIOXIDE_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID (0x0001) +#define ZCL_CARBON_DIOXIDE_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID (0x0002) +#define ZCL_CARBON_DIOXIDE_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID (0x0003) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Ethylene Concentration Measurement // Client attributes -#define ZCL_ETHYLENE_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_ETHYLENE_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_ETHYLENE_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_ETHYLENE_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_ETHYLENE_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_ETHYLENE_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_ETHYLENE_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_ETHYLENE_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Ethylene Oxide Concentration Measurement -// Cluster specification level: zcl-6.0-15-02018-001 +#define ZCL_ETHYLENE_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID (0x0000) +#define ZCL_ETHYLENE_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID (0x0001) +#define ZCL_ETHYLENE_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID (0x0002) +#define ZCL_ETHYLENE_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID (0x0003) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Ethylene Oxide Concentration Measurement // Client attributes -#define ZCL_ETHYLENE_OXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_ETHYLENE_OXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_ETHYLENE_OXIDE_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_ETHYLENE_OXIDE_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_ETHYLENE_OXIDE_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_ETHYLENE_OXIDE_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_ETHYLENE_OXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_ETHYLENE_OXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Hydrogen Concentration Measurement -// Cluster specification level: zcl-6.0-15-02018-001 +#define ZCL_ETHYLENE_OXIDE_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID (0x0000) +#define ZCL_ETHYLENE_OXIDE_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID (0x0001) +#define ZCL_ETHYLENE_OXIDE_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID (0x0002) +#define ZCL_ETHYLENE_OXIDE_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID (0x0003) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Hydrogen Concentration Measurement // Client attributes -#define ZCL_HYDROGEN_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_HYDROGEN_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_HYDROGEN_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_HYDROGEN_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_HYDROGEN_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_HYDROGEN_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_HYDROGEN_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_HYDROGEN_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Hydrogen Sulphide Concentration Measurement -// Cluster specification level: zcl-6.0-15-02018-001 +#define ZCL_HYDROGEN_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID (0x0000) +#define ZCL_HYDROGEN_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID (0x0001) +#define ZCL_HYDROGEN_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID (0x0002) +#define ZCL_HYDROGEN_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID (0x0003) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Hydrogen Sulphide Concentration Measurement // Client attributes -#define ZCL_HYDROGEN_SULPHIDE_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_HYDROGEN_SULPHIDE_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_HYDROGEN_SULPHIDE_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_HYDROGEN_SULPHIDE_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_HYDROGEN_SULPHIDE_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_HYDROGEN_SULPHIDE_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_HYDROGEN_SULPHIDE_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_HYDROGEN_SULPHIDE_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Nitric Oxide Concentration Measurement -// Cluster specification level: zcl-6.0-15-02018-001 +#define ZCL_HYDROGEN_SULPHIDE_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID (0x0000) +#define ZCL_HYDROGEN_SULPHIDE_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID (0x0001) +#define ZCL_HYDROGEN_SULPHIDE_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID (0x0002) +#define ZCL_HYDROGEN_SULPHIDE_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID (0x0003) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Nitric Oxide Concentration Measurement // Client attributes -#define ZCL_NITRIC_OXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_NITRIC_OXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_NITRIC_OXIDE_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_NITRIC_OXIDE_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_NITRIC_OXIDE_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_NITRIC_OXIDE_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_NITRIC_OXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_NITRIC_OXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Nitrogen Dioxide Concentration Measurement -// Cluster specification level: zcl-6.0-15-02018-001 +#define ZCL_NITRIC_OXIDE_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID (0x0000) +#define ZCL_NITRIC_OXIDE_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID (0x0001) +#define ZCL_NITRIC_OXIDE_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID (0x0002) +#define ZCL_NITRIC_OXIDE_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID (0x0003) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Nitrogen Dioxide Concentration Measurement // Client attributes -#define ZCL_NITROGEN_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_NITROGEN_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_NITROGEN_DIOXIDE_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_NITROGEN_DIOXIDE_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_NITROGEN_DIOXIDE_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_NITROGEN_DIOXIDE_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_NITROGEN_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_NITROGEN_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Oxygen Concentration Measurement -// Cluster specification level: zcl-6.0-15-02018-001 +#define ZCL_NITROGEN_DIOXIDE_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID (0x0000) +#define ZCL_NITROGEN_DIOXIDE_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID (0x0001) +#define ZCL_NITROGEN_DIOXIDE_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID (0x0002) +#define ZCL_NITROGEN_DIOXIDE_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID (0x0003) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Oxygen Concentration Measurement // Client attributes -#define ZCL_OXYGEN_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_OXYGEN_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_OXYGEN_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_OXYGEN_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_OXYGEN_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_OXYGEN_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_OXYGEN_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_OXYGEN_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_OXYGEN_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID (0x0000) +#define ZCL_OXYGEN_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID (0x0001) +#define ZCL_OXYGEN_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID (0x0002) +#define ZCL_OXYGEN_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID (0x0003) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) -// Attribute types for cluster: Ozone Concentration Measurement -// Cluster specification level: zcl-6.0-15-02018-001 +// Attribute ids for cluster: Ozone Concentration Measurement // Client attributes -#define ZCL_OZONE_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_OZONE_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_OZONE_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_OZONE_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_OZONE_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_OZONE_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_OZONE_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_OZONE_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_OZONE_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID (0x0000) +#define ZCL_OZONE_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID (0x0001) +#define ZCL_OZONE_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID (0x0002) +#define ZCL_OZONE_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID (0x0003) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) -// Attribute types for cluster: Sulfur Dioxide Concentration Measurement -// Cluster specification level: zcl-6.0-15-02018-001 +// Attribute ids for cluster: Sulfur Dioxide Concentration Measurement // Client attributes -#define ZCL_SULFUR_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_SULFUR_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_SULFUR_DIOXIDE_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_SULFUR_DIOXIDE_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_SULFUR_DIOXIDE_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_SULFUR_DIOXIDE_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_SULFUR_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_SULFUR_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Dissolved Oxygen Concentration Measurement -// Cluster specification level: zcl-6.0-15-02018-001 +#define ZCL_SULFUR_DIOXIDE_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID (0x0000) +#define ZCL_SULFUR_DIOXIDE_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID (0x0001) +#define ZCL_SULFUR_DIOXIDE_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID (0x0002) +#define ZCL_SULFUR_DIOXIDE_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID (0x0003) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Dissolved Oxygen Concentration Measurement // Client attributes -#define ZCL_DISSOLVED_OXYGEN_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_DISSOLVED_OXYGEN_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_DISSOLVED_OXYGEN_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_DISSOLVED_OXYGEN_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_DISSOLVED_OXYGEN_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_DISSOLVED_OXYGEN_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_DISSOLVED_OXYGEN_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_DISSOLVED_OXYGEN_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Bromate Concentration Measurement -// Cluster specification level: zcl-6.0-15-02018-001 +#define ZCL_DISSOLVED_OXYGEN_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID (0x0000) +#define ZCL_DISSOLVED_OXYGEN_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID (0x0001) +#define ZCL_DISSOLVED_OXYGEN_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID (0x0002) +#define ZCL_DISSOLVED_OXYGEN_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID (0x0003) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Bromate Concentration Measurement // Client attributes -#define ZCL_BROMATE_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_BROMATE_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_BROMATE_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_BROMATE_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_BROMATE_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_BROMATE_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_BROMATE_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_BROMATE_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Chloramines Concentration Measurement -// Cluster specification level: zcl-6.0-15-02018-001 +#define ZCL_BROMATE_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID (0x0000) +#define ZCL_BROMATE_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID (0x0001) +#define ZCL_BROMATE_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID (0x0002) +#define ZCL_BROMATE_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID (0x0003) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Chloramines Concentration Measurement // Client attributes -#define ZCL_CHLORAMINES_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_CHLORAMINES_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_CHLORAMINES_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_CHLORAMINES_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_CHLORAMINES_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_CHLORAMINES_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_CHLORAMINES_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_CHLORAMINES_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Chlorine Concentration Measurement -// Cluster specification level: zcl-6.0-15-02018-001 +#define ZCL_CHLORAMINES_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID (0x0000) +#define ZCL_CHLORAMINES_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID (0x0001) +#define ZCL_CHLORAMINES_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID (0x0002) +#define ZCL_CHLORAMINES_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID (0x0003) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Chlorine Concentration Measurement // Client attributes -#define ZCL_CHLORINE_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_CHLORINE_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_CHLORINE_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_CHLORINE_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_CHLORINE_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_CHLORINE_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_CHLORINE_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_CHLORINE_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Fecal coliform and E. Coli Concentration Measurement -// Cluster specification level: zcl-6.0-15-02018-001 +#define ZCL_CHLORINE_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID (0x0000) +#define ZCL_CHLORINE_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID (0x0001) +#define ZCL_CHLORINE_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID (0x0002) +#define ZCL_CHLORINE_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID (0x0003) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Fecal coliform and E. Coli Concentration Measurement // Client attributes -#define ZCL_FECAL_COLIFORM_AND_E_COLI_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_FECAL_COLIFORM_AND_E_COLI_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_FECAL_COLIFORM_AND_E_COLI_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_FECAL_COLIFORM_AND_E_COLI_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_FECAL_COLIFORM_AND_E_COLI_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_FECAL_COLIFORM_AND_E_COLI_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_FECAL_COLIFORM_AND_E_COLI_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_FECAL_COLIFORM_AND_E_COLI_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Fluoride Concentration Measurement -// Cluster specification level: zcl-6.0-15-02018-001 +#define ZCL_FECAL_COLIFORM_AND_E_COLI_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID (0x0000) +#define ZCL_FECAL_COLIFORM_AND_E_COLI_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID (0x0001) +#define ZCL_FECAL_COLIFORM_AND_E_COLI_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID (0x0002) +#define ZCL_FECAL_COLIFORM_AND_E_COLI_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID (0x0003) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Fluoride Concentration Measurement // Client attributes -#define ZCL_FLUORIDE_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_FLUORIDE_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_FLUORIDE_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_FLUORIDE_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_FLUORIDE_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_FLUORIDE_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_FLUORIDE_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_FLUORIDE_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Haloacetic Acids Concentration Measurement -// Cluster specification level: zcl-6.0-15-02018-001 +#define ZCL_FLUORIDE_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID (0x0000) +#define ZCL_FLUORIDE_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID (0x0001) +#define ZCL_FLUORIDE_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID (0x0002) +#define ZCL_FLUORIDE_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID (0x0003) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Haloacetic Acids Concentration Measurement // Client attributes -#define ZCL_HALOACETIC_ACIDS_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_HALOACETIC_ACIDS_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_HALOACETIC_ACIDS_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_HALOACETIC_ACIDS_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_HALOACETIC_ACIDS_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_HALOACETIC_ACIDS_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_HALOACETIC_ACIDS_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_HALOACETIC_ACIDS_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Total Trihalomethanes Concentration Measurement -// Cluster specification level: zcl-6.0-15-02018-001 +#define ZCL_HALOACETIC_ACIDS_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID (0x0000) +#define ZCL_HALOACETIC_ACIDS_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID (0x0001) +#define ZCL_HALOACETIC_ACIDS_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID (0x0002) +#define ZCL_HALOACETIC_ACIDS_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID (0x0003) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Total Trihalomethanes Concentration Measurement // Client attributes -#define ZCL_TOTAL_TRIHALOMETHANES_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_TOTAL_TRIHALOMETHANES_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_TOTAL_TRIHALOMETHANES_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_TOTAL_TRIHALOMETHANES_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_TOTAL_TRIHALOMETHANES_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_TOTAL_TRIHALOMETHANES_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_TOTAL_TRIHALOMETHANES_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_TOTAL_TRIHALOMETHANES_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Total Coliform Bacteria Concentration Measurement -// Cluster specification level: zcl-6.0-15-02018-001 +#define ZCL_TOTAL_TRIHALOMETHANES_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID (0x0000) +#define ZCL_TOTAL_TRIHALOMETHANES_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID (0x0001) +#define ZCL_TOTAL_TRIHALOMETHANES_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID (0x0002) +#define ZCL_TOTAL_TRIHALOMETHANES_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID (0x0003) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Total Coliform Bacteria Concentration Measurement // Client attributes -#define ZCL_TOTAL_COLIFORM_BACTERIA_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_TOTAL_COLIFORM_BACTERIA_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_TOTAL_COLIFORM_BACTERIA_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_TOTAL_COLIFORM_BACTERIA_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_TOTAL_COLIFORM_BACTERIA_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_TOTAL_COLIFORM_BACTERIA_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_TOTAL_COLIFORM_BACTERIA_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_TOTAL_COLIFORM_BACTERIA_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Turbidity Concentration Measurement -// Cluster specification level: zcl-6.0-15-02018-001 +#define ZCL_TOTAL_COLIFORM_BACTERIA_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID (0x0000) +#define ZCL_TOTAL_COLIFORM_BACTERIA_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID (0x0001) +#define ZCL_TOTAL_COLIFORM_BACTERIA_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID (0x0002) +#define ZCL_TOTAL_COLIFORM_BACTERIA_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID (0x0003) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Turbidity Concentration Measurement // Client attributes -#define ZCL_TURBIDITY_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_TURBIDITY_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_TURBIDITY_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_TURBIDITY_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_TURBIDITY_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_TURBIDITY_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_TURBIDITY_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_TURBIDITY_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Copper Concentration Measurement -// Cluster specification level: zcl-6.0-15-02018-001 +#define ZCL_TURBIDITY_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID (0x0000) +#define ZCL_TURBIDITY_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID (0x0001) +#define ZCL_TURBIDITY_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID (0x0002) +#define ZCL_TURBIDITY_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID (0x0003) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Copper Concentration Measurement // Client attributes -#define ZCL_COPPER_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_COPPER_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_COPPER_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_COPPER_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_COPPER_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_COPPER_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_COPPER_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_COPPER_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_COPPER_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID (0x0000) +#define ZCL_COPPER_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID (0x0001) +#define ZCL_COPPER_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID (0x0002) +#define ZCL_COPPER_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID (0x0003) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) -// Attribute types for cluster: Lead Concentration Measurement -// Cluster specification level: zcl-6.0-15-02018-001 +// Attribute ids for cluster: Lead Concentration Measurement // Client attributes -#define ZCL_LEAD_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_LEAD_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_LEAD_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_LEAD_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_LEAD_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_LEAD_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_LEAD_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_LEAD_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_LEAD_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID (0x0000) +#define ZCL_LEAD_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID (0x0001) +#define ZCL_LEAD_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID (0x0002) +#define ZCL_LEAD_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID (0x0003) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) -// Attribute types for cluster: Manganese Concentration Measurement -// Cluster specification level: zcl-6.0-15-02018-001 +// Attribute ids for cluster: Manganese Concentration Measurement // Client attributes -#define ZCL_MANGANESE_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_MANGANESE_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_MANGANESE_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_MANGANESE_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_MANGANESE_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_MANGANESE_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_MANGANESE_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_MANGANESE_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Sulfate Concentration Measurement -// Cluster specification level: zcl-6.0-15-02018-001 +#define ZCL_MANGANESE_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID (0x0000) +#define ZCL_MANGANESE_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID (0x0001) +#define ZCL_MANGANESE_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID (0x0002) +#define ZCL_MANGANESE_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID (0x0003) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Sulfate Concentration Measurement // Client attributes -#define ZCL_SULFATE_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_SULFATE_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_SULFATE_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_SULFATE_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_SULFATE_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_SULFATE_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_SULFATE_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_SULFATE_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Bromodichloromethane Concentration Measurement -// Cluster specification level: zcl-6.0-15-02018-001 +#define ZCL_SULFATE_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID (0x0000) +#define ZCL_SULFATE_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID (0x0001) +#define ZCL_SULFATE_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID (0x0002) +#define ZCL_SULFATE_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID (0x0003) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Bromodichloromethane Concentration Measurement // Client attributes -#define ZCL_BROMODICHLOROMETHANE_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_BROMODICHLOROMETHANE_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_BROMODICHLOROMETHANE_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_BROMODICHLOROMETHANE_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_BROMODICHLOROMETHANE_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_BROMODICHLOROMETHANE_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_BROMODICHLOROMETHANE_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_BROMODICHLOROMETHANE_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Bromoform Concentration Measurement -// Cluster specification level: zcl-6.0-15-02018-001 +#define ZCL_BROMODICHLOROMETHANE_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID (0x0000) +#define ZCL_BROMODICHLOROMETHANE_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID (0x0001) +#define ZCL_BROMODICHLOROMETHANE_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID (0x0002) +#define ZCL_BROMODICHLOROMETHANE_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID (0x0003) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Bromoform Concentration Measurement // Client attributes -#define ZCL_BROMOFORM_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_BROMOFORM_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_BROMOFORM_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_BROMOFORM_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_BROMOFORM_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_BROMOFORM_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_BROMOFORM_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_BROMOFORM_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Chlorodibromomethane Concentration Measurement -// Cluster specification level: zcl-6.0-15-02018-001 +#define ZCL_BROMOFORM_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID (0x0000) +#define ZCL_BROMOFORM_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID (0x0001) +#define ZCL_BROMOFORM_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID (0x0002) +#define ZCL_BROMOFORM_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID (0x0003) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Chlorodibromomethane Concentration Measurement // Client attributes -#define ZCL_CHLORODIBROMOMETHANE_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_CHLORODIBROMOMETHANE_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_CHLORODIBROMOMETHANE_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_CHLORODIBROMOMETHANE_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_CHLORODIBROMOMETHANE_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_CHLORODIBROMOMETHANE_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_CHLORODIBROMOMETHANE_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_CHLORODIBROMOMETHANE_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Chloroform Concentration Measurement -// Cluster specification level: zcl-6.0-15-02018-001 +#define ZCL_CHLORODIBROMOMETHANE_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID (0x0000) +#define ZCL_CHLORODIBROMOMETHANE_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID (0x0001) +#define ZCL_CHLORODIBROMOMETHANE_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID (0x0002) +#define ZCL_CHLORODIBROMOMETHANE_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID (0x0003) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Chloroform Concentration Measurement // Client attributes -#define ZCL_CHLOROFORM_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_CHLOROFORM_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_CHLOROFORM_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_CHLOROFORM_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_CHLOROFORM_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_CHLOROFORM_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_CHLOROFORM_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_CHLOROFORM_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Sodium Concentration Measurement -// Cluster specification level: zcl-6.0-15-02018-001 +#define ZCL_CHLOROFORM_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID (0x0000) +#define ZCL_CHLOROFORM_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID (0x0001) +#define ZCL_CHLOROFORM_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID (0x0002) +#define ZCL_CHLOROFORM_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID (0x0003) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Sodium Concentration Measurement // Client attributes -#define ZCL_SODIUM_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_SODIUM_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_SODIUM_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_SODIUM_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_SODIUM_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_SODIUM_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_SODIUM_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_SODIUM_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_SODIUM_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID (0x0000) +#define ZCL_SODIUM_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID (0x0001) +#define ZCL_SODIUM_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID (0x0002) +#define ZCL_SODIUM_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID (0x0003) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) -// Attribute types for cluster: IAS Zone -// Cluster specification level: zcl-6.0-15-02018-001 +// Attribute ids for cluster: IAS Zone // Client attributes -#define ZCL_IAS_ZONE_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_IAS_ZONE_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_ZONE_STATE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_ZONE_TYPE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_ZONE_STATUS_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_IAS_CIE_ADDRESS_ATTRIBUTE_ID 0x0010 // Ver.: always -#define ZCL_ZONE_ID_ATTRIBUTE_ID 0x0011 // Ver.: always -#define ZCL_NUMBER_OF_ZONE_SENSITIVITY_LEVELS_SUPPORTED_ATTRIBUTE_ID 0x0012 // Ver.: always -#define ZCL_CURRENT_ZONE_SENSITIVITY_LEVEL_ATTRIBUTE_ID 0x0013 // Ver.: always -#define ZCL_IAS_ZONE_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_IAS_ZONE_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: IAS ACE -// Cluster specification level: zcl-6.0-15-02018-001 +#define ZCL_ZONE_STATE_ATTRIBUTE_ID (0x0000) +#define ZCL_ZONE_TYPE_ATTRIBUTE_ID (0x0001) +#define ZCL_ZONE_STATUS_ATTRIBUTE_ID (0x0002) +#define ZCL_IAS_CIE_ADDRESS_ATTRIBUTE_ID (0x0010) +#define ZCL_ZONE_ID_ATTRIBUTE_ID (0x0011) +#define ZCL_NUMBER_OF_ZONE_SENSITIVITY_LEVELS_SUPPORTED_ATTRIBUTE_ID (0x0012) +#define ZCL_CURRENT_ZONE_SENSITIVITY_LEVEL_ATTRIBUTE_ID (0x0013) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: IAS ACE // Client attributes -#define ZCL_IAS_ACE_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_IAS_ACE_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_IAS_ACE_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_IAS_ACE_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) -// Attribute types for cluster: IAS WD -// Cluster specification level: zcl-6.0-15-02018-001 +// Attribute ids for cluster: IAS WD // Client attributes -#define ZCL_IAS_WD_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_IAS_WD_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_MAX_DURATION_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_IAS_WD_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_IAS_WD_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_MAX_DURATION_ATTRIBUTE_ID (0x0000) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) -// Attribute types for cluster: Generic Tunnel -// Cluster specification level: cba-1.0-05-3516-12 +// Attribute ids for cluster: Generic Tunnel // Client attributes -#define ZCL_GENERIC_TUNNEL_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_GENERIC_TUNNEL_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_MAXIMUM_INCOMING_TRANSFER_SIZE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_MAXIMUM_OUTGOING_TRANSFER_SIZE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_PROTOCOL_ADDRESS_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_GENERIC_TUNNEL_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_GENERIC_TUNNEL_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_MAXIMUM_INCOMING_TRANSFER_SIZE_ATTRIBUTE_ID (0x0001) +#define ZCL_MAXIMUM_OUTGOING_TRANSFER_SIZE_ATTRIBUTE_ID (0x0002) +#define ZCL_PROTOCOL_ADDRESS_ATTRIBUTE_ID (0x0003) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) -// Attribute types for cluster: BACnet Protocol Tunnel -// Cluster specification level: cba-1.0-05-3516-12 +// Attribute ids for cluster: BACnet Protocol Tunnel // Client attributes -#define ZCL_BACNET_PROTOCOL_TUNNEL_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_BACNET_PROTOCOL_TUNNEL_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_BACNET_PROTOCOL_TUNNEL_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_BACNET_PROTOCOL_TUNNEL_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) -// Attribute types for cluster: 11073 Protocol Tunnel -// Cluster specification level: hc-1.0-07-5360-15 +// Attribute ids for cluster: 11073 Protocol Tunnel // Client attributes -#define ZCL_11073_PROTOCOL_TUNNEL_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_11073_PROTOCOL_TUNNEL_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_DEVICE_ID_LIST_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_MANAGER_TARGET_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_MANAGER_ENDPOINT_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_CONNECTED_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_PREEMPTIBLE_ATTRIBUTE_ID 0x0004 // Ver.: always -#define ZCL_IDLE_TIMEOUT_ATTRIBUTE_ID 0x0005 // Ver.: always -#define ZCL_11073_PROTOCOL_TUNNEL_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_11073_PROTOCOL_TUNNEL_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: ISO 7816 Protocol Tunnel -// Cluster specification level: ta-1.0-07-5307-07 +#define ZCL_DEVICE_ID_LIST_ATTRIBUTE_ID (0x0000) +#define ZCL_MANAGER_TARGET_ATTRIBUTE_ID (0x0001) +#define ZCL_MANAGER_ENDPOINT_ATTRIBUTE_ID (0x0002) +#define ZCL_CONNECTED_ATTRIBUTE_ID (0x0003) +#define ZCL_PREEMPTIBLE_ATTRIBUTE_ID (0x0004) +#define ZCL_IDLE_TIMEOUT_ATTRIBUTE_ID (0x0005) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: ISO 7816 Protocol Tunnel // Client attributes -#define ZCL_ISO7816_PROTOCOL_TUNNEL_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_ISO7816_PROTOCOL_TUNNEL_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_ISO7816_PROTOCOL_TUNNEL_STATUS_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_ISO7816_PROTOCOL_TUNNEL_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_ISO7816_PROTOCOL_TUNNEL_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_ISO7816_PROTOCOL_TUNNEL_STATUS_ATTRIBUTE_ID (0x0000) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) -// Attribute types for cluster: Price -// Cluster specification level: se-1.2b-15-0131-02 +// Attribute ids for cluster: Price // Client attributes -#define ZCL_PRICE_INCREASE_RANDOMIZE_MINUTES_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_PRICE_DECREASE_RANDOMIZE_MINUTES_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_COMMODITY_TYPE_CLIENT_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_PRICE_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_PRICE_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_PRICE_INCREASE_RANDOMIZE_MINUTES_ATTRIBUTE_ID (0x0000) +#define ZCL_PRICE_DECREASE_RANDOMIZE_MINUTES_ATTRIBUTE_ID (0x0001) +#define ZCL_COMMODITY_TYPE_CLIENT_ATTRIBUTE_ID (0x0002) +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_TIER1_PRICE_LABEL_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_TIER2_PRICE_LABEL_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_TIER3_PRICE_LABEL_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_TIER4_PRICE_LABEL_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_TIER5_PRICE_LABEL_ATTRIBUTE_ID 0x0004 // Ver.: always -#define ZCL_TIER6_PRICE_LABEL_ATTRIBUTE_ID 0x0005 // Ver.: always -#define ZCL_TIER7_PRICE_LABEL_ATTRIBUTE_ID 0x0006 // Ver.: always -#define ZCL_TIER8_PRICE_LABEL_ATTRIBUTE_ID 0x0007 // Ver.: always -#define ZCL_TIER9_PRICE_LABEL_ATTRIBUTE_ID 0x0008 // Ver.: always -#define ZCL_TIER10_PRICE_LABEL_ATTRIBUTE_ID 0x0009 // Ver.: always -#define ZCL_TIER11_PRICE_LABEL_ATTRIBUTE_ID 0x000A // Ver.: always -#define ZCL_TIER12_PRICE_LABEL_ATTRIBUTE_ID 0x000B // Ver.: always -#define ZCL_TIER13_PRICE_LABEL_ATTRIBUTE_ID 0x000C // Ver.: always -#define ZCL_TIER14_PRICE_LABEL_ATTRIBUTE_ID 0x000D // Ver.: always -#define ZCL_TIER15_PRICE_LABEL_ATTRIBUTE_ID 0x000E // Ver.: always -#define ZCL_TIER16_PRICE_LABEL_ATTRIBUTE_ID 0x000F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER17_PRICE_LABEL_ATTRIBUTE_ID 0x0010 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER18_PRICE_LABEL_ATTRIBUTE_ID 0x0011 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER19_PRICE_LABEL_ATTRIBUTE_ID 0x0012 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER20_PRICE_LABEL_ATTRIBUTE_ID 0x0013 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER21_PRICE_LABEL_ATTRIBUTE_ID 0x0014 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER22_PRICE_LABEL_ATTRIBUTE_ID 0x0015 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER23_PRICE_LABEL_ATTRIBUTE_ID 0x0016 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER24_PRICE_LABEL_ATTRIBUTE_ID 0x0017 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER25_PRICE_LABEL_ATTRIBUTE_ID 0x0018 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER26_PRICE_LABEL_ATTRIBUTE_ID 0x0019 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER27_PRICE_LABEL_ATTRIBUTE_ID 0x001A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER28_PRICE_LABEL_ATTRIBUTE_ID 0x001B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER29_PRICE_LABEL_ATTRIBUTE_ID 0x001C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER30_PRICE_LABEL_ATTRIBUTE_ID 0x001D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER31_PRICE_LABEL_ATTRIBUTE_ID 0x001E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER32_PRICE_LABEL_ATTRIBUTE_ID 0x001F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER33_PRICE_LABEL_ATTRIBUTE_ID 0x0020 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER34_PRICE_LABEL_ATTRIBUTE_ID 0x0021 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER35_PRICE_LABEL_ATTRIBUTE_ID 0x0022 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER36_PRICE_LABEL_ATTRIBUTE_ID 0x0023 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER37_PRICE_LABEL_ATTRIBUTE_ID 0x0024 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER38_PRICE_LABEL_ATTRIBUTE_ID 0x0025 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER39_PRICE_LABEL_ATTRIBUTE_ID 0x0026 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER40_PRICE_LABEL_ATTRIBUTE_ID 0x0027 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER41_PRICE_LABEL_ATTRIBUTE_ID 0x0028 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER42_PRICE_LABEL_ATTRIBUTE_ID 0x0029 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER43_PRICE_LABEL_ATTRIBUTE_ID 0x002A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER44_PRICE_LABEL_ATTRIBUTE_ID 0x002B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER45_PRICE_LABEL_ATTRIBUTE_ID 0x002C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER46_PRICE_LABEL_ATTRIBUTE_ID 0x002D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER47_PRICE_LABEL_ATTRIBUTE_ID 0x002E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER48_PRICE_LABEL_ATTRIBUTE_ID 0x002F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_BLOCK1_THRESHOLD_ATTRIBUTE_ID 0x0100 // Ver.: always -#define ZCL_BLOCK2_THRESHOLD_ATTRIBUTE_ID 0x0101 // Ver.: always -#define ZCL_BLOCK3_THRESHOLD_ATTRIBUTE_ID 0x0102 // Ver.: always -#define ZCL_BLOCK4_THRESHOLD_ATTRIBUTE_ID 0x0103 // Ver.: always -#define ZCL_BLOCK5_THRESHOLD_ATTRIBUTE_ID 0x0104 // Ver.: always -#define ZCL_BLOCK6_THRESHOLD_ATTRIBUTE_ID 0x0105 // Ver.: always -#define ZCL_BLOCK7_THRESHOLD_ATTRIBUTE_ID 0x0106 // Ver.: always -#define ZCL_BLOCK8_THRESHOLD_ATTRIBUTE_ID 0x0107 // Ver.: always -#define ZCL_BLOCK9_THRESHOLD_ATTRIBUTE_ID 0x0108 // Ver.: always -#define ZCL_BLOCK10_THRESHOLD_ATTRIBUTE_ID 0x0109 // Ver.: always -#define ZCL_BLOCK11_THRESHOLD_ATTRIBUTE_ID 0x010A // Ver.: always -#define ZCL_BLOCK12_THRESHOLD_ATTRIBUTE_ID 0x010B // Ver.: always -#define ZCL_BLOCK13_THRESHOLD_ATTRIBUTE_ID 0x010C // Ver.: always -#define ZCL_BLOCK14_THRESHOLD_ATTRIBUTE_ID 0x010D // Ver.: always -#define ZCL_BLOCK15_THRESHOLD_ATTRIBUTE_ID 0x010E // Ver.: always -#define ZCL_BLOCK_THRESHOLD_COUNT_ATTRIBUTE_ID 0x010F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER1_BLOCK1_THRESHOLD_ATTRIBUTE_ID 0x0110 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER1_BLOCK2_THRESHOLD_ATTRIBUTE_ID 0x0111 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER1_BLOCK3_THRESHOLD_ATTRIBUTE_ID 0x0112 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER1_BLOCK4_THRESHOLD_ATTRIBUTE_ID 0x0113 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER1_BLOCK5_THRESHOLD_ATTRIBUTE_ID 0x0114 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER1_BLOCK6_THRESHOLD_ATTRIBUTE_ID 0x0115 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER1_BLOCK7_THRESHOLD_ATTRIBUTE_ID 0x0116 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER1_BLOCK8_THRESHOLD_ATTRIBUTE_ID 0x0117 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER1_BLOCK9_THRESHOLD_ATTRIBUTE_ID 0x0118 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER1_BLOCK10_THRESHOLD_ATTRIBUTE_ID 0x0119 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER1_BLOCK11_THRESHOLD_ATTRIBUTE_ID 0x011A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER1_BLOCK12_THRESHOLD_ATTRIBUTE_ID 0x011B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER1_BLOCK13_THRESHOLD_ATTRIBUTE_ID 0x011C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER1_BLOCK14_THRESHOLD_ATTRIBUTE_ID 0x011D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER1_BLOCK15_THRESHOLD_ATTRIBUTE_ID 0x011E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER1_BLOCK_THRESHOLD_COUNT_ATTRIBUTE_ID 0x011F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER2_BLOCK1_THRESHOLD_ATTRIBUTE_ID 0x0120 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER2_BLOCK2_THRESHOLD_ATTRIBUTE_ID 0x0121 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER2_BLOCK3_THRESHOLD_ATTRIBUTE_ID 0x0122 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER2_BLOCK4_THRESHOLD_ATTRIBUTE_ID 0x0123 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER2_BLOCK5_THRESHOLD_ATTRIBUTE_ID 0x0124 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER2_BLOCK6_THRESHOLD_ATTRIBUTE_ID 0x0125 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER2_BLOCK7_THRESHOLD_ATTRIBUTE_ID 0x0126 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER2_BLOCK8_THRESHOLD_ATTRIBUTE_ID 0x0127 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER2_BLOCK9_THRESHOLD_ATTRIBUTE_ID 0x0128 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER2_BLOCK10_THRESHOLD_ATTRIBUTE_ID 0x0129 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER2_BLOCK11_THRESHOLD_ATTRIBUTE_ID 0x012A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER2_BLOCK12_THRESHOLD_ATTRIBUTE_ID 0x012B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER2_BLOCK13_THRESHOLD_ATTRIBUTE_ID 0x012C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER2_BLOCK14_THRESHOLD_ATTRIBUTE_ID 0x012D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER2_BLOCK15_THRESHOLD_ATTRIBUTE_ID 0x012E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER2_BLOCK_THRESHOLD_COUNT_ATTRIBUTE_ID 0x012F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER3_BLOCK1_THRESHOLD_ATTRIBUTE_ID 0x0130 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER3_BLOCK2_THRESHOLD_ATTRIBUTE_ID 0x0131 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER3_BLOCK3_THRESHOLD_ATTRIBUTE_ID 0x0132 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER3_BLOCK4_THRESHOLD_ATTRIBUTE_ID 0x0133 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER3_BLOCK5_THRESHOLD_ATTRIBUTE_ID 0x0134 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER3_BLOCK6_THRESHOLD_ATTRIBUTE_ID 0x0135 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER3_BLOCK7_THRESHOLD_ATTRIBUTE_ID 0x0136 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER3_BLOCK8_THRESHOLD_ATTRIBUTE_ID 0x0137 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER3_BLOCK9_THRESHOLD_ATTRIBUTE_ID 0x0138 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER3_BLOCK10_THRESHOLD_ATTRIBUTE_ID 0x0139 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER3_BLOCK11_THRESHOLD_ATTRIBUTE_ID 0x013A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER3_BLOCK12_THRESHOLD_ATTRIBUTE_ID 0x013B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER3_BLOCK13_THRESHOLD_ATTRIBUTE_ID 0x013C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER3_BLOCK14_THRESHOLD_ATTRIBUTE_ID 0x013D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER3_BLOCK15_THRESHOLD_ATTRIBUTE_ID 0x013E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER3_BLOCK_THRESHOLD_COUNT_ATTRIBUTE_ID 0x013F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER4_BLOCK1_THRESHOLD_ATTRIBUTE_ID 0x0140 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER4_BLOCK2_THRESHOLD_ATTRIBUTE_ID 0x0141 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER4_BLOCK3_THRESHOLD_ATTRIBUTE_ID 0x0142 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER4_BLOCK4_THRESHOLD_ATTRIBUTE_ID 0x0143 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER4_BLOCK5_THRESHOLD_ATTRIBUTE_ID 0x0144 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER4_BLOCK6_THRESHOLD_ATTRIBUTE_ID 0x0145 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER4_BLOCK7_THRESHOLD_ATTRIBUTE_ID 0x0146 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER4_BLOCK8_THRESHOLD_ATTRIBUTE_ID 0x0147 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER4_BLOCK9_THRESHOLD_ATTRIBUTE_ID 0x0148 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER4_BLOCK10_THRESHOLD_ATTRIBUTE_ID 0x0149 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER4_BLOCK11_THRESHOLD_ATTRIBUTE_ID 0x014A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER4_BLOCK12_THRESHOLD_ATTRIBUTE_ID 0x014B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER4_BLOCK13_THRESHOLD_ATTRIBUTE_ID 0x014C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER4_BLOCK14_THRESHOLD_ATTRIBUTE_ID 0x014D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER4_BLOCK15_THRESHOLD_ATTRIBUTE_ID 0x014E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER4_BLOCK_THRESHOLD_COUNT_ATTRIBUTE_ID 0x014F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER5_BLOCK1_THRESHOLD_ATTRIBUTE_ID 0x0150 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER5_BLOCK2_THRESHOLD_ATTRIBUTE_ID 0x0151 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER5_BLOCK3_THRESHOLD_ATTRIBUTE_ID 0x0152 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER5_BLOCK4_THRESHOLD_ATTRIBUTE_ID 0x0153 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER5_BLOCK5_THRESHOLD_ATTRIBUTE_ID 0x0154 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER5_BLOCK6_THRESHOLD_ATTRIBUTE_ID 0x0155 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER5_BLOCK7_THRESHOLD_ATTRIBUTE_ID 0x0156 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER5_BLOCK8_THRESHOLD_ATTRIBUTE_ID 0x0157 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER5_BLOCK9_THRESHOLD_ATTRIBUTE_ID 0x0158 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER5_BLOCK10_THRESHOLD_ATTRIBUTE_ID 0x0159 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER5_BLOCK11_THRESHOLD_ATTRIBUTE_ID 0x015A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER5_BLOCK12_THRESHOLD_ATTRIBUTE_ID 0x015B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER5_BLOCK13_THRESHOLD_ATTRIBUTE_ID 0x015C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER5_BLOCK14_THRESHOLD_ATTRIBUTE_ID 0x015D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER5_BLOCK15_THRESHOLD_ATTRIBUTE_ID 0x015E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER5_BLOCK_THRESHOLD_COUNT_ATTRIBUTE_ID 0x015F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER6_BLOCK1_THRESHOLD_ATTRIBUTE_ID 0x0160 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER6_BLOCK2_THRESHOLD_ATTRIBUTE_ID 0x0161 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER6_BLOCK3_THRESHOLD_ATTRIBUTE_ID 0x0162 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER6_BLOCK4_THRESHOLD_ATTRIBUTE_ID 0x0163 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER6_BLOCK5_THRESHOLD_ATTRIBUTE_ID 0x0164 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER6_BLOCK6_THRESHOLD_ATTRIBUTE_ID 0x0165 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER6_BLOCK7_THRESHOLD_ATTRIBUTE_ID 0x0166 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER6_BLOCK8_THRESHOLD_ATTRIBUTE_ID 0x0167 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER6_BLOCK9_THRESHOLD_ATTRIBUTE_ID 0x0168 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER6_BLOCK10_THRESHOLD_ATTRIBUTE_ID 0x0169 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER6_BLOCK11_THRESHOLD_ATTRIBUTE_ID 0x016A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER6_BLOCK12_THRESHOLD_ATTRIBUTE_ID 0x016B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER6_BLOCK13_THRESHOLD_ATTRIBUTE_ID 0x016C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER6_BLOCK14_THRESHOLD_ATTRIBUTE_ID 0x016D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER6_BLOCK15_THRESHOLD_ATTRIBUTE_ID 0x016E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER6_BLOCK_THRESHOLD_COUNT_ATTRIBUTE_ID 0x016F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER7_BLOCK1_THRESHOLD_ATTRIBUTE_ID 0x0170 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER7_BLOCK2_THRESHOLD_ATTRIBUTE_ID 0x0171 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER7_BLOCK3_THRESHOLD_ATTRIBUTE_ID 0x0172 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER7_BLOCK4_THRESHOLD_ATTRIBUTE_ID 0x0173 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER7_BLOCK5_THRESHOLD_ATTRIBUTE_ID 0x0174 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER7_BLOCK6_THRESHOLD_ATTRIBUTE_ID 0x0175 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER7_BLOCK7_THRESHOLD_ATTRIBUTE_ID 0x0176 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER7_BLOCK8_THRESHOLD_ATTRIBUTE_ID 0x0177 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER7_BLOCK9_THRESHOLD_ATTRIBUTE_ID 0x0178 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER7_BLOCK10_THRESHOLD_ATTRIBUTE_ID 0x0179 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER7_BLOCK11_THRESHOLD_ATTRIBUTE_ID 0x017A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER7_BLOCK12_THRESHOLD_ATTRIBUTE_ID 0x017B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER7_BLOCK13_THRESHOLD_ATTRIBUTE_ID 0x017C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER7_BLOCK14_THRESHOLD_ATTRIBUTE_ID 0x017D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER7_BLOCK15_THRESHOLD_ATTRIBUTE_ID 0x017E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER7_BLOCK_THRESHOLD_COUNT_ATTRIBUTE_ID 0x017F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER8_BLOCK1_THRESHOLD_ATTRIBUTE_ID 0x0180 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER8_BLOCK2_THRESHOLD_ATTRIBUTE_ID 0x0181 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER8_BLOCK3_THRESHOLD_ATTRIBUTE_ID 0x0182 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER8_BLOCK4_THRESHOLD_ATTRIBUTE_ID 0x0183 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER8_BLOCK5_THRESHOLD_ATTRIBUTE_ID 0x0184 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER8_BLOCK6_THRESHOLD_ATTRIBUTE_ID 0x0185 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER8_BLOCK7_THRESHOLD_ATTRIBUTE_ID 0x0186 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER8_BLOCK8_THRESHOLD_ATTRIBUTE_ID 0x0187 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER8_BLOCK9_THRESHOLD_ATTRIBUTE_ID 0x0188 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER8_BLOCK10_THRESHOLD_ATTRIBUTE_ID 0x0189 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER8_BLOCK11_THRESHOLD_ATTRIBUTE_ID 0x018A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER8_BLOCK12_THRESHOLD_ATTRIBUTE_ID 0x018B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER8_BLOCK13_THRESHOLD_ATTRIBUTE_ID 0x018C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER8_BLOCK14_THRESHOLD_ATTRIBUTE_ID 0x018D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER8_BLOCK15_THRESHOLD_ATTRIBUTE_ID 0x018E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER8_BLOCK_THRESHOLD_COUNT_ATTRIBUTE_ID 0x018F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER9_BLOCK1_THRESHOLD_ATTRIBUTE_ID 0x0190 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER9_BLOCK2_THRESHOLD_ATTRIBUTE_ID 0x0191 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER9_BLOCK3_THRESHOLD_ATTRIBUTE_ID 0x0192 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER9_BLOCK4_THRESHOLD_ATTRIBUTE_ID 0x0193 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER9_BLOCK5_THRESHOLD_ATTRIBUTE_ID 0x0194 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER9_BLOCK6_THRESHOLD_ATTRIBUTE_ID 0x0195 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER9_BLOCK7_THRESHOLD_ATTRIBUTE_ID 0x0196 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER9_BLOCK8_THRESHOLD_ATTRIBUTE_ID 0x0197 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER9_BLOCK9_THRESHOLD_ATTRIBUTE_ID 0x0198 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER9_BLOCK10_THRESHOLD_ATTRIBUTE_ID 0x0199 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER9_BLOCK11_THRESHOLD_ATTRIBUTE_ID 0x019A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER9_BLOCK12_THRESHOLD_ATTRIBUTE_ID 0x019B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER9_BLOCK13_THRESHOLD_ATTRIBUTE_ID 0x019C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER9_BLOCK14_THRESHOLD_ATTRIBUTE_ID 0x019D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER9_BLOCK15_THRESHOLD_ATTRIBUTE_ID 0x019E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER9_BLOCK_THRESHOLD_COUNT_ATTRIBUTE_ID 0x019F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER10_BLOCK1_THRESHOLD_ATTRIBUTE_ID 0x01A0 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER10_BLOCK2_THRESHOLD_ATTRIBUTE_ID 0x01A1 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER10_BLOCK3_THRESHOLD_ATTRIBUTE_ID 0x01A2 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER10_BLOCK4_THRESHOLD_ATTRIBUTE_ID 0x01A3 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER10_BLOCK5_THRESHOLD_ATTRIBUTE_ID 0x01A4 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER10_BLOCK6_THRESHOLD_ATTRIBUTE_ID 0x01A5 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER10_BLOCK7_THRESHOLD_ATTRIBUTE_ID 0x01A6 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER10_BLOCK8_THRESHOLD_ATTRIBUTE_ID 0x01A7 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER10_BLOCK9_THRESHOLD_ATTRIBUTE_ID 0x01A8 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER10_BLOCK10_THRESHOLD_ATTRIBUTE_ID 0x01A9 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER10_BLOCK11_THRESHOLD_ATTRIBUTE_ID 0x01AA // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER10_BLOCK12_THRESHOLD_ATTRIBUTE_ID 0x01AB // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER10_BLOCK13_THRESHOLD_ATTRIBUTE_ID 0x01AC // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER10_BLOCK14_THRESHOLD_ATTRIBUTE_ID 0x01AD // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER10_BLOCK15_THRESHOLD_ATTRIBUTE_ID 0x01AE // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER10_BLOCK_THRESHOLD_COUNT_ATTRIBUTE_ID 0x01AF // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER11_BLOCK1_THRESHOLD_ATTRIBUTE_ID 0x01B0 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER11_BLOCK2_THRESHOLD_ATTRIBUTE_ID 0x01B1 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER11_BLOCK3_THRESHOLD_ATTRIBUTE_ID 0x01B2 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER11_BLOCK4_THRESHOLD_ATTRIBUTE_ID 0x01B3 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER11_BLOCK5_THRESHOLD_ATTRIBUTE_ID 0x01B4 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER11_BLOCK6_THRESHOLD_ATTRIBUTE_ID 0x01B5 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER11_BLOCK7_THRESHOLD_ATTRIBUTE_ID 0x01B6 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER11_BLOCK8_THRESHOLD_ATTRIBUTE_ID 0x01B7 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER11_BLOCK9_THRESHOLD_ATTRIBUTE_ID 0x01B8 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER11_BLOCK10_THRESHOLD_ATTRIBUTE_ID 0x01B9 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER11_BLOCK11_THRESHOLD_ATTRIBUTE_ID 0x01BA // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER11_BLOCK12_THRESHOLD_ATTRIBUTE_ID 0x01BB // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER11_BLOCK13_THRESHOLD_ATTRIBUTE_ID 0x01BC // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER11_BLOCK14_THRESHOLD_ATTRIBUTE_ID 0x01BD // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER11_BLOCK15_THRESHOLD_ATTRIBUTE_ID 0x01BE // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER11_BLOCK_THRESHOLD_COUNT_ATTRIBUTE_ID 0x01BF // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER12_BLOCK1_THRESHOLD_ATTRIBUTE_ID 0x01C0 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER12_BLOCK2_THRESHOLD_ATTRIBUTE_ID 0x01C1 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER12_BLOCK3_THRESHOLD_ATTRIBUTE_ID 0x01C2 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER12_BLOCK4_THRESHOLD_ATTRIBUTE_ID 0x01C3 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER12_BLOCK5_THRESHOLD_ATTRIBUTE_ID 0x01C4 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER12_BLOCK6_THRESHOLD_ATTRIBUTE_ID 0x01C5 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER12_BLOCK7_THRESHOLD_ATTRIBUTE_ID 0x01C6 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER12_BLOCK8_THRESHOLD_ATTRIBUTE_ID 0x01C7 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER12_BLOCK9_THRESHOLD_ATTRIBUTE_ID 0x01C8 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER12_BLOCK10_THRESHOLD_ATTRIBUTE_ID 0x01C9 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER12_BLOCK11_THRESHOLD_ATTRIBUTE_ID 0x01CA // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER12_BLOCK12_THRESHOLD_ATTRIBUTE_ID 0x01CB // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER12_BLOCK13_THRESHOLD_ATTRIBUTE_ID 0x01CC // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER12_BLOCK14_THRESHOLD_ATTRIBUTE_ID 0x01CD // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER12_BLOCK15_THRESHOLD_ATTRIBUTE_ID 0x01CE // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER12_BLOCK_THRESHOLD_COUNT_ATTRIBUTE_ID 0x01CF // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER13_BLOCK1_THRESHOLD_ATTRIBUTE_ID 0x01D0 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER13_BLOCK2_THRESHOLD_ATTRIBUTE_ID 0x01D1 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER13_BLOCK3_THRESHOLD_ATTRIBUTE_ID 0x01D2 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER13_BLOCK4_THRESHOLD_ATTRIBUTE_ID 0x01D3 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER13_BLOCK5_THRESHOLD_ATTRIBUTE_ID 0x01D4 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER13_BLOCK6_THRESHOLD_ATTRIBUTE_ID 0x01D5 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER13_BLOCK7_THRESHOLD_ATTRIBUTE_ID 0x01D6 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER13_BLOCK8_THRESHOLD_ATTRIBUTE_ID 0x01D7 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER13_BLOCK9_THRESHOLD_ATTRIBUTE_ID 0x01D8 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER13_BLOCK10_THRESHOLD_ATTRIBUTE_ID 0x01D9 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER13_BLOCK11_THRESHOLD_ATTRIBUTE_ID 0x01DA // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER13_BLOCK12_THRESHOLD_ATTRIBUTE_ID 0x01DB // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER13_BLOCK13_THRESHOLD_ATTRIBUTE_ID 0x01DC // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER13_BLOCK14_THRESHOLD_ATTRIBUTE_ID 0x01DD // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER13_BLOCK15_THRESHOLD_ATTRIBUTE_ID 0x01DE // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER13_BLOCK_THRESHOLD_COUNT_ATTRIBUTE_ID 0x01DF // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER14_BLOCK1_THRESHOLD_ATTRIBUTE_ID 0x01E0 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER14_BLOCK2_THRESHOLD_ATTRIBUTE_ID 0x01E1 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER14_BLOCK3_THRESHOLD_ATTRIBUTE_ID 0x01E2 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER14_BLOCK4_THRESHOLD_ATTRIBUTE_ID 0x01E3 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER14_BLOCK5_THRESHOLD_ATTRIBUTE_ID 0x01E4 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER14_BLOCK6_THRESHOLD_ATTRIBUTE_ID 0x01E5 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER14_BLOCK7_THRESHOLD_ATTRIBUTE_ID 0x01E6 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER14_BLOCK8_THRESHOLD_ATTRIBUTE_ID 0x01E7 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER14_BLOCK9_THRESHOLD_ATTRIBUTE_ID 0x01E8 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER14_BLOCK10_THRESHOLD_ATTRIBUTE_ID 0x01E9 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER14_BLOCK11_THRESHOLD_ATTRIBUTE_ID 0x01EA // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER14_BLOCK12_THRESHOLD_ATTRIBUTE_ID 0x01EB // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER14_BLOCK13_THRESHOLD_ATTRIBUTE_ID 0x01EC // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER14_BLOCK14_THRESHOLD_ATTRIBUTE_ID 0x01ED // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER14_BLOCK15_THRESHOLD_ATTRIBUTE_ID 0x01EE // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER14_BLOCK_THRESHOLD_COUNT_ATTRIBUTE_ID 0x01EF // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER15_BLOCK1_THRESHOLD_ATTRIBUTE_ID 0x01F0 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER15_BLOCK2_THRESHOLD_ATTRIBUTE_ID 0x01F1 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER15_BLOCK3_THRESHOLD_ATTRIBUTE_ID 0x01F2 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER15_BLOCK4_THRESHOLD_ATTRIBUTE_ID 0x01F3 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER15_BLOCK5_THRESHOLD_ATTRIBUTE_ID 0x01F4 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER15_BLOCK6_THRESHOLD_ATTRIBUTE_ID 0x01F5 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER15_BLOCK7_THRESHOLD_ATTRIBUTE_ID 0x01F6 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER15_BLOCK8_THRESHOLD_ATTRIBUTE_ID 0x01F7 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER15_BLOCK9_THRESHOLD_ATTRIBUTE_ID 0x01F8 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER15_BLOCK10_THRESHOLD_ATTRIBUTE_ID 0x01F9 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER15_BLOCK11_THRESHOLD_ATTRIBUTE_ID 0x01FA // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER15_BLOCK12_THRESHOLD_ATTRIBUTE_ID 0x01FB // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER15_BLOCK13_THRESHOLD_ATTRIBUTE_ID 0x01FC // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER15_BLOCK14_THRESHOLD_ATTRIBUTE_ID 0x01FD // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER15_BLOCK15_THRESHOLD_ATTRIBUTE_ID 0x01FE // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER15_BLOCK_THRESHOLD_COUNT_ATTRIBUTE_ID 0x01FF // Ver.: since se-1.2a-07-5356-19 -#define ZCL_START_OF_BLOCK_PERIOD_ATTRIBUTE_ID 0x0200 // Ver.: always -#define ZCL_BLOCK_PERIOD_DURATION_MINUTES_ATTRIBUTE_ID 0x0201 // Ver.: always -#define ZCL_THRESHOLD_MULTIPLIER_ATTRIBUTE_ID 0x0202 // Ver.: always -#define ZCL_THRESHOLD_DIVISOR_ATTRIBUTE_ID 0x0203 // Ver.: always -#define ZCL_BLOCK_PERIOD_DURATION_TYPE_ATTRIBUTE_ID 0x0204 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_COMMODITY_TYPE_SERVER_ATTRIBUTE_ID 0x0300 // Ver.: always -#define ZCL_STANDING_CHARGE_ATTRIBUTE_ID 0x0301 // Ver.: always -#define ZCL_CONVERSION_FACTOR_ATTRIBUTE_ID 0x0302 // Ver.: since se-1.1a-07-5356-17 -#define ZCL_CONVERSION_FACTOR_TRAILING_DIGIT_ATTRIBUTE_ID 0x0303 // Ver.: since se-1.1a-07-5356-17 -#define ZCL_CALORIFIC_VALUE_ATTRIBUTE_ID 0x0304 // Ver.: since se-1.1a-07-5356-17 -#define ZCL_CALORIFIC_VALUE_UNIT_ATTRIBUTE_ID 0x0305 // Ver.: since se-1.1a-07-5356-17 -#define ZCL_CALORIFIC_VALUE_TRAILING_DIGIT_ATTRIBUTE_ID 0x0306 // Ver.: since se-1.1a-07-5356-17 -#define ZCL_NO_TIER_BLOCK1_PRICE_ATTRIBUTE_ID 0x0400 // Ver.: always -#define ZCL_NO_TIER_BLOCK2_PRICE_ATTRIBUTE_ID 0x0401 // Ver.: always -#define ZCL_NO_TIER_BLOCK3_PRICE_ATTRIBUTE_ID 0x0402 // Ver.: always -#define ZCL_NO_TIER_BLOCK4_PRICE_ATTRIBUTE_ID 0x0403 // Ver.: always -#define ZCL_NO_TIER_BLOCK5_PRICE_ATTRIBUTE_ID 0x0404 // Ver.: always -#define ZCL_NO_TIER_BLOCK6_PRICE_ATTRIBUTE_ID 0x0405 // Ver.: always -#define ZCL_NO_TIER_BLOCK7_PRICE_ATTRIBUTE_ID 0x0406 // Ver.: always -#define ZCL_NO_TIER_BLOCK8_PRICE_ATTRIBUTE_ID 0x0407 // Ver.: always -#define ZCL_NO_TIER_BLOCK9_PRICE_ATTRIBUTE_ID 0x0408 // Ver.: always -#define ZCL_NO_TIER_BLOCK10_PRICE_ATTRIBUTE_ID 0x0409 // Ver.: always -#define ZCL_NO_TIER_BLOCK11_PRICE_ATTRIBUTE_ID 0x040A // Ver.: always -#define ZCL_NO_TIER_BLOCK12_PRICE_ATTRIBUTE_ID 0x040B // Ver.: always -#define ZCL_NO_TIER_BLOCK13_PRICE_ATTRIBUTE_ID 0x040C // Ver.: always -#define ZCL_NO_TIER_BLOCK14_PRICE_ATTRIBUTE_ID 0x040D // Ver.: always -#define ZCL_NO_TIER_BLOCK15_PRICE_ATTRIBUTE_ID 0x040E // Ver.: always -#define ZCL_NO_TIER_BLOCK16_PRICE_ATTRIBUTE_ID 0x040F // Ver.: always -#define ZCL_TIER1_BLOCK1_PRICE_ATTRIBUTE_ID 0x0410 // Ver.: always -#define ZCL_TIER1_BLOCK2_PRICE_ATTRIBUTE_ID 0x0411 // Ver.: always -#define ZCL_TIER1_BLOCK3_PRICE_ATTRIBUTE_ID 0x0412 // Ver.: always -#define ZCL_TIER1_BLOCK4_PRICE_ATTRIBUTE_ID 0x0413 // Ver.: always -#define ZCL_TIER1_BLOCK5_PRICE_ATTRIBUTE_ID 0x0414 // Ver.: always -#define ZCL_TIER1_BLOCK6_PRICE_ATTRIBUTE_ID 0x0415 // Ver.: always -#define ZCL_TIER1_BLOCK7_PRICE_ATTRIBUTE_ID 0x0416 // Ver.: always -#define ZCL_TIER1_BLOCK8_PRICE_ATTRIBUTE_ID 0x0417 // Ver.: always -#define ZCL_TIER1_BLOCK9_PRICE_ATTRIBUTE_ID 0x0418 // Ver.: always -#define ZCL_TIER1_BLOCK10_PRICE_ATTRIBUTE_ID 0x0419 // Ver.: always -#define ZCL_TIER1_BLOCK11_PRICE_ATTRIBUTE_ID 0x041A // Ver.: always -#define ZCL_TIER1_BLOCK12_PRICE_ATTRIBUTE_ID 0x041B // Ver.: always -#define ZCL_TIER1_BLOCK13_PRICE_ATTRIBUTE_ID 0x041C // Ver.: always -#define ZCL_TIER1_BLOCK14_PRICE_ATTRIBUTE_ID 0x041D // Ver.: always -#define ZCL_TIER1_BLOCK15_PRICE_ATTRIBUTE_ID 0x041E // Ver.: always -#define ZCL_TIER1_BLOCK16_PRICE_ATTRIBUTE_ID 0x041F // Ver.: always -#define ZCL_TIER2_BLOCK1_PRICE_ATTRIBUTE_ID 0x0420 // Ver.: always -#define ZCL_TIER2_BLOCK2_PRICE_ATTRIBUTE_ID 0x0421 // Ver.: always -#define ZCL_TIER2_BLOCK3_PRICE_ATTRIBUTE_ID 0x0422 // Ver.: always -#define ZCL_TIER2_BLOCK4_PRICE_ATTRIBUTE_ID 0x0423 // Ver.: always -#define ZCL_TIER2_BLOCK5_PRICE_ATTRIBUTE_ID 0x0424 // Ver.: always -#define ZCL_TIER2_BLOCK6_PRICE_ATTRIBUTE_ID 0x0425 // Ver.: always -#define ZCL_TIER2_BLOCK7_PRICE_ATTRIBUTE_ID 0x0426 // Ver.: always -#define ZCL_TIER2_BLOCK8_PRICE_ATTRIBUTE_ID 0x0427 // Ver.: always -#define ZCL_TIER2_BLOCK9_PRICE_ATTRIBUTE_ID 0x0428 // Ver.: always -#define ZCL_TIER2_BLOCK10_PRICE_ATTRIBUTE_ID 0x0429 // Ver.: always -#define ZCL_TIER2_BLOCK11_PRICE_ATTRIBUTE_ID 0x042A // Ver.: always -#define ZCL_TIER2_BLOCK12_PRICE_ATTRIBUTE_ID 0x042B // Ver.: always -#define ZCL_TIER2_BLOCK13_PRICE_ATTRIBUTE_ID 0x042C // Ver.: always -#define ZCL_TIER2_BLOCK14_PRICE_ATTRIBUTE_ID 0x042D // Ver.: always -#define ZCL_TIER2_BLOCK15_PRICE_ATTRIBUTE_ID 0x042E // Ver.: always -#define ZCL_TIER2_BLOCK16_PRICE_ATTRIBUTE_ID 0x042F // Ver.: always -#define ZCL_TIER3_BLOCK1_PRICE_ATTRIBUTE_ID 0x0430 // Ver.: always -#define ZCL_TIER3_BLOCK2_PRICE_ATTRIBUTE_ID 0x0431 // Ver.: always -#define ZCL_TIER3_BLOCK3_PRICE_ATTRIBUTE_ID 0x0432 // Ver.: always -#define ZCL_TIER3_BLOCK4_PRICE_ATTRIBUTE_ID 0x0433 // Ver.: always -#define ZCL_TIER3_BLOCK5_PRICE_ATTRIBUTE_ID 0x0434 // Ver.: always -#define ZCL_TIER3_BLOCK6_PRICE_ATTRIBUTE_ID 0x0435 // Ver.: always -#define ZCL_TIER3_BLOCK7_PRICE_ATTRIBUTE_ID 0x0436 // Ver.: always -#define ZCL_TIER3_BLOCK8_PRICE_ATTRIBUTE_ID 0x0437 // Ver.: always -#define ZCL_TIER3_BLOCK9_PRICE_ATTRIBUTE_ID 0x0438 // Ver.: always -#define ZCL_TIER3_BLOCK10_PRICE_ATTRIBUTE_ID 0x0439 // Ver.: always -#define ZCL_TIER3_BLOCK11_PRICE_ATTRIBUTE_ID 0x043A // Ver.: always -#define ZCL_TIER3_BLOCK12_PRICE_ATTRIBUTE_ID 0x043B // Ver.: always -#define ZCL_TIER3_BLOCK13_PRICE_ATTRIBUTE_ID 0x043C // Ver.: always -#define ZCL_TIER3_BLOCK14_PRICE_ATTRIBUTE_ID 0x043D // Ver.: always -#define ZCL_TIER3_BLOCK15_PRICE_ATTRIBUTE_ID 0x043E // Ver.: always -#define ZCL_TIER3_BLOCK16_PRICE_ATTRIBUTE_ID 0x043F // Ver.: always -#define ZCL_TIER4_BLOCK1_PRICE_ATTRIBUTE_ID 0x0440 // Ver.: always -#define ZCL_TIER4_BLOCK2_PRICE_ATTRIBUTE_ID 0x0441 // Ver.: always -#define ZCL_TIER4_BLOCK3_PRICE_ATTRIBUTE_ID 0x0442 // Ver.: always -#define ZCL_TIER4_BLOCK4_PRICE_ATTRIBUTE_ID 0x0443 // Ver.: always -#define ZCL_TIER4_BLOCK5_PRICE_ATTRIBUTE_ID 0x0444 // Ver.: always -#define ZCL_TIER4_BLOCK6_PRICE_ATTRIBUTE_ID 0x0445 // Ver.: always -#define ZCL_TIER4_BLOCK7_PRICE_ATTRIBUTE_ID 0x0446 // Ver.: always -#define ZCL_TIER4_BLOCK8_PRICE_ATTRIBUTE_ID 0x0447 // Ver.: always -#define ZCL_TIER4_BLOCK9_PRICE_ATTRIBUTE_ID 0x0448 // Ver.: always -#define ZCL_TIER4_BLOCK10_PRICE_ATTRIBUTE_ID 0x0449 // Ver.: always -#define ZCL_TIER4_BLOCK11_PRICE_ATTRIBUTE_ID 0x044A // Ver.: always -#define ZCL_TIER4_BLOCK12_PRICE_ATTRIBUTE_ID 0x044B // Ver.: always -#define ZCL_TIER4_BLOCK13_PRICE_ATTRIBUTE_ID 0x044C // Ver.: always -#define ZCL_TIER4_BLOCK14_PRICE_ATTRIBUTE_ID 0x044D // Ver.: always -#define ZCL_TIER4_BLOCK15_PRICE_ATTRIBUTE_ID 0x044E // Ver.: always -#define ZCL_TIER4_BLOCK16_PRICE_ATTRIBUTE_ID 0x044F // Ver.: always -#define ZCL_TIER5_BLOCK1_PRICE_ATTRIBUTE_ID 0x0450 // Ver.: always -#define ZCL_TIER5_BLOCK2_PRICE_ATTRIBUTE_ID 0x0451 // Ver.: always -#define ZCL_TIER5_BLOCK3_PRICE_ATTRIBUTE_ID 0x0452 // Ver.: always -#define ZCL_TIER5_BLOCK4_PRICE_ATTRIBUTE_ID 0x0453 // Ver.: always -#define ZCL_TIER5_BLOCK5_PRICE_ATTRIBUTE_ID 0x0454 // Ver.: always -#define ZCL_TIER5_BLOCK6_PRICE_ATTRIBUTE_ID 0x0455 // Ver.: always -#define ZCL_TIER5_BLOCK7_PRICE_ATTRIBUTE_ID 0x0456 // Ver.: always -#define ZCL_TIER5_BLOCK8_PRICE_ATTRIBUTE_ID 0x0457 // Ver.: always -#define ZCL_TIER5_BLOCK9_PRICE_ATTRIBUTE_ID 0x0458 // Ver.: always -#define ZCL_TIER5_BLOCK10_PRICE_ATTRIBUTE_ID 0x0459 // Ver.: always -#define ZCL_TIER5_BLOCK11_PRICE_ATTRIBUTE_ID 0x045A // Ver.: always -#define ZCL_TIER5_BLOCK12_PRICE_ATTRIBUTE_ID 0x045B // Ver.: always -#define ZCL_TIER5_BLOCK13_PRICE_ATTRIBUTE_ID 0x045C // Ver.: always -#define ZCL_TIER5_BLOCK14_PRICE_ATTRIBUTE_ID 0x045D // Ver.: always -#define ZCL_TIER5_BLOCK15_PRICE_ATTRIBUTE_ID 0x045E // Ver.: always -#define ZCL_TIER5_BLOCK16_PRICE_ATTRIBUTE_ID 0x045F // Ver.: always -#define ZCL_TIER6_BLOCK1_PRICE_ATTRIBUTE_ID 0x0460 // Ver.: always -#define ZCL_TIER6_BLOCK2_PRICE_ATTRIBUTE_ID 0x0461 // Ver.: always -#define ZCL_TIER6_BLOCK3_PRICE_ATTRIBUTE_ID 0x0462 // Ver.: always -#define ZCL_TIER6_BLOCK4_PRICE_ATTRIBUTE_ID 0x0463 // Ver.: always -#define ZCL_TIER6_BLOCK5_PRICE_ATTRIBUTE_ID 0x0464 // Ver.: always -#define ZCL_TIER6_BLOCK6_PRICE_ATTRIBUTE_ID 0x0465 // Ver.: always -#define ZCL_TIER6_BLOCK7_PRICE_ATTRIBUTE_ID 0x0466 // Ver.: always -#define ZCL_TIER6_BLOCK8_PRICE_ATTRIBUTE_ID 0x0467 // Ver.: always -#define ZCL_TIER6_BLOCK9_PRICE_ATTRIBUTE_ID 0x0468 // Ver.: always -#define ZCL_TIER6_BLOCK10_PRICE_ATTRIBUTE_ID 0x0469 // Ver.: always -#define ZCL_TIER6_BLOCK11_PRICE_ATTRIBUTE_ID 0x046A // Ver.: always -#define ZCL_TIER6_BLOCK12_PRICE_ATTRIBUTE_ID 0x046B // Ver.: always -#define ZCL_TIER6_BLOCK13_PRICE_ATTRIBUTE_ID 0x046C // Ver.: always -#define ZCL_TIER6_BLOCK14_PRICE_ATTRIBUTE_ID 0x046D // Ver.: always -#define ZCL_TIER6_BLOCK15_PRICE_ATTRIBUTE_ID 0x046E // Ver.: always -#define ZCL_TIER6_BLOCK16_PRICE_ATTRIBUTE_ID 0x046F // Ver.: always -#define ZCL_TIER7_BLOCK1_PRICE_ATTRIBUTE_ID 0x0470 // Ver.: always -#define ZCL_TIER7_BLOCK2_PRICE_ATTRIBUTE_ID 0x0471 // Ver.: always -#define ZCL_TIER7_BLOCK3_PRICE_ATTRIBUTE_ID 0x0472 // Ver.: always -#define ZCL_TIER7_BLOCK4_PRICE_ATTRIBUTE_ID 0x0473 // Ver.: always -#define ZCL_TIER7_BLOCK5_PRICE_ATTRIBUTE_ID 0x0474 // Ver.: always -#define ZCL_TIER7_BLOCK6_PRICE_ATTRIBUTE_ID 0x0475 // Ver.: always -#define ZCL_TIER7_BLOCK7_PRICE_ATTRIBUTE_ID 0x0476 // Ver.: always -#define ZCL_TIER7_BLOCK8_PRICE_ATTRIBUTE_ID 0x0477 // Ver.: always -#define ZCL_TIER7_BLOCK9_PRICE_ATTRIBUTE_ID 0x0478 // Ver.: always -#define ZCL_TIER7_BLOCK10_PRICE_ATTRIBUTE_ID 0x0479 // Ver.: always -#define ZCL_TIER7_BLOCK11_PRICE_ATTRIBUTE_ID 0x047A // Ver.: always -#define ZCL_TIER7_BLOCK12_PRICE_ATTRIBUTE_ID 0x047B // Ver.: always -#define ZCL_TIER7_BLOCK13_PRICE_ATTRIBUTE_ID 0x047C // Ver.: always -#define ZCL_TIER7_BLOCK14_PRICE_ATTRIBUTE_ID 0x047D // Ver.: always -#define ZCL_TIER7_BLOCK15_PRICE_ATTRIBUTE_ID 0x047E // Ver.: always -#define ZCL_TIER7_BLOCK16_PRICE_ATTRIBUTE_ID 0x047F // Ver.: always -#define ZCL_TIER8_BLOCK1_PRICE_ATTRIBUTE_ID 0x0480 // Ver.: always -#define ZCL_TIER8_BLOCK2_PRICE_ATTRIBUTE_ID 0x0481 // Ver.: always -#define ZCL_TIER8_BLOCK3_PRICE_ATTRIBUTE_ID 0x0482 // Ver.: always -#define ZCL_TIER8_BLOCK4_PRICE_ATTRIBUTE_ID 0x0483 // Ver.: always -#define ZCL_TIER8_BLOCK5_PRICE_ATTRIBUTE_ID 0x0484 // Ver.: always -#define ZCL_TIER8_BLOCK6_PRICE_ATTRIBUTE_ID 0x0485 // Ver.: always -#define ZCL_TIER8_BLOCK7_PRICE_ATTRIBUTE_ID 0x0486 // Ver.: always -#define ZCL_TIER8_BLOCK8_PRICE_ATTRIBUTE_ID 0x0487 // Ver.: always -#define ZCL_TIER8_BLOCK9_PRICE_ATTRIBUTE_ID 0x0488 // Ver.: always -#define ZCL_TIER8_BLOCK10_PRICE_ATTRIBUTE_ID 0x0489 // Ver.: always -#define ZCL_TIER8_BLOCK11_PRICE_ATTRIBUTE_ID 0x048A // Ver.: always -#define ZCL_TIER8_BLOCK12_PRICE_ATTRIBUTE_ID 0x048B // Ver.: always -#define ZCL_TIER8_BLOCK13_PRICE_ATTRIBUTE_ID 0x048C // Ver.: always -#define ZCL_TIER8_BLOCK14_PRICE_ATTRIBUTE_ID 0x048D // Ver.: always -#define ZCL_TIER8_BLOCK15_PRICE_ATTRIBUTE_ID 0x048E // Ver.: always -#define ZCL_TIER8_BLOCK16_PRICE_ATTRIBUTE_ID 0x048F // Ver.: always -#define ZCL_TIER9_BLOCK1_PRICE_ATTRIBUTE_ID 0x0490 // Ver.: always -#define ZCL_TIER9_BLOCK2_PRICE_ATTRIBUTE_ID 0x0491 // Ver.: always -#define ZCL_TIER9_BLOCK3_PRICE_ATTRIBUTE_ID 0x0492 // Ver.: always -#define ZCL_TIER9_BLOCK4_PRICE_ATTRIBUTE_ID 0x0493 // Ver.: always -#define ZCL_TIER9_BLOCK5_PRICE_ATTRIBUTE_ID 0x0494 // Ver.: always -#define ZCL_TIER9_BLOCK6_PRICE_ATTRIBUTE_ID 0x0495 // Ver.: always -#define ZCL_TIER9_BLOCK7_PRICE_ATTRIBUTE_ID 0x0496 // Ver.: always -#define ZCL_TIER9_BLOCK8_PRICE_ATTRIBUTE_ID 0x0497 // Ver.: always -#define ZCL_TIER9_BLOCK9_PRICE_ATTRIBUTE_ID 0x0498 // Ver.: always -#define ZCL_TIER9_BLOCK10_PRICE_ATTRIBUTE_ID 0x0499 // Ver.: always -#define ZCL_TIER9_BLOCK11_PRICE_ATTRIBUTE_ID 0x049A // Ver.: always -#define ZCL_TIER9_BLOCK12_PRICE_ATTRIBUTE_ID 0x049B // Ver.: always -#define ZCL_TIER9_BLOCK13_PRICE_ATTRIBUTE_ID 0x049C // Ver.: always -#define ZCL_TIER9_BLOCK14_PRICE_ATTRIBUTE_ID 0x049D // Ver.: always -#define ZCL_TIER9_BLOCK15_PRICE_ATTRIBUTE_ID 0x049E // Ver.: always -#define ZCL_TIER9_BLOCK16_PRICE_ATTRIBUTE_ID 0x049F // Ver.: always -#define ZCL_TIER10_BLOCK1_PRICE_ATTRIBUTE_ID 0x04A0 // Ver.: always -#define ZCL_TIER10_BLOCK2_PRICE_ATTRIBUTE_ID 0x04A1 // Ver.: always -#define ZCL_TIER10_BLOCK3_PRICE_ATTRIBUTE_ID 0x04A2 // Ver.: always -#define ZCL_TIER10_BLOCK4_PRICE_ATTRIBUTE_ID 0x04A3 // Ver.: always -#define ZCL_TIER10_BLOCK5_PRICE_ATTRIBUTE_ID 0x04A4 // Ver.: always -#define ZCL_TIER10_BLOCK6_PRICE_ATTRIBUTE_ID 0x04A5 // Ver.: always -#define ZCL_TIER10_BLOCK7_PRICE_ATTRIBUTE_ID 0x04A6 // Ver.: always -#define ZCL_TIER10_BLOCK8_PRICE_ATTRIBUTE_ID 0x04A7 // Ver.: always -#define ZCL_TIER10_BLOCK9_PRICE_ATTRIBUTE_ID 0x04A8 // Ver.: always -#define ZCL_TIER10_BLOCK10_PRICE_ATTRIBUTE_ID 0x04A9 // Ver.: always -#define ZCL_TIER10_BLOCK11_PRICE_ATTRIBUTE_ID 0x04AA // Ver.: always -#define ZCL_TIER10_BLOCK12_PRICE_ATTRIBUTE_ID 0x04AB // Ver.: always -#define ZCL_TIER10_BLOCK13_PRICE_ATTRIBUTE_ID 0x04AC // Ver.: always -#define ZCL_TIER10_BLOCK14_PRICE_ATTRIBUTE_ID 0x04AD // Ver.: always -#define ZCL_TIER10_BLOCK15_PRICE_ATTRIBUTE_ID 0x04AE // Ver.: always -#define ZCL_TIER10_BLOCK16_PRICE_ATTRIBUTE_ID 0x04AF // Ver.: always -#define ZCL_TIER11_BLOCK1_PRICE_ATTRIBUTE_ID 0x04B0 // Ver.: always -#define ZCL_TIER11_BLOCK2_PRICE_ATTRIBUTE_ID 0x04B1 // Ver.: always -#define ZCL_TIER11_BLOCK3_PRICE_ATTRIBUTE_ID 0x04B2 // Ver.: always -#define ZCL_TIER11_BLOCK4_PRICE_ATTRIBUTE_ID 0x04B3 // Ver.: always -#define ZCL_TIER11_BLOCK5_PRICE_ATTRIBUTE_ID 0x04B4 // Ver.: always -#define ZCL_TIER11_BLOCK6_PRICE_ATTRIBUTE_ID 0x04B5 // Ver.: always -#define ZCL_TIER11_BLOCK7_PRICE_ATTRIBUTE_ID 0x04B6 // Ver.: always -#define ZCL_TIER11_BLOCK8_PRICE_ATTRIBUTE_ID 0x04B7 // Ver.: always -#define ZCL_TIER11_BLOCK9_PRICE_ATTRIBUTE_ID 0x04B8 // Ver.: always -#define ZCL_TIER11_BLOCK10_PRICE_ATTRIBUTE_ID 0x04B9 // Ver.: always -#define ZCL_TIER11_BLOCK11_PRICE_ATTRIBUTE_ID 0x04BA // Ver.: always -#define ZCL_TIER11_BLOCK12_PRICE_ATTRIBUTE_ID 0x04BB // Ver.: always -#define ZCL_TIER11_BLOCK13_PRICE_ATTRIBUTE_ID 0x04BC // Ver.: always -#define ZCL_TIER11_BLOCK14_PRICE_ATTRIBUTE_ID 0x04BD // Ver.: always -#define ZCL_TIER11_BLOCK15_PRICE_ATTRIBUTE_ID 0x04BE // Ver.: always -#define ZCL_TIER11_BLOCK16_PRICE_ATTRIBUTE_ID 0x04BF // Ver.: always -#define ZCL_TIER12_BLOCK1_PRICE_ATTRIBUTE_ID 0x04C0 // Ver.: always -#define ZCL_TIER12_BLOCK2_PRICE_ATTRIBUTE_ID 0x04C1 // Ver.: always -#define ZCL_TIER12_BLOCK3_PRICE_ATTRIBUTE_ID 0x04C2 // Ver.: always -#define ZCL_TIER12_BLOCK4_PRICE_ATTRIBUTE_ID 0x04C3 // Ver.: always -#define ZCL_TIER12_BLOCK5_PRICE_ATTRIBUTE_ID 0x04C4 // Ver.: always -#define ZCL_TIER12_BLOCK6_PRICE_ATTRIBUTE_ID 0x04C5 // Ver.: always -#define ZCL_TIER12_BLOCK7_PRICE_ATTRIBUTE_ID 0x04C6 // Ver.: always -#define ZCL_TIER12_BLOCK8_PRICE_ATTRIBUTE_ID 0x04C7 // Ver.: always -#define ZCL_TIER12_BLOCK9_PRICE_ATTRIBUTE_ID 0x04C8 // Ver.: always -#define ZCL_TIER12_BLOCK10_PRICE_ATTRIBUTE_ID 0x04C9 // Ver.: always -#define ZCL_TIER12_BLOCK11_PRICE_ATTRIBUTE_ID 0x04CA // Ver.: always -#define ZCL_TIER12_BLOCK12_PRICE_ATTRIBUTE_ID 0x04CB // Ver.: always -#define ZCL_TIER12_BLOCK13_PRICE_ATTRIBUTE_ID 0x04CC // Ver.: always -#define ZCL_TIER12_BLOCK14_PRICE_ATTRIBUTE_ID 0x04CD // Ver.: always -#define ZCL_TIER12_BLOCK15_PRICE_ATTRIBUTE_ID 0x04CE // Ver.: always -#define ZCL_TIER12_BLOCK16_PRICE_ATTRIBUTE_ID 0x04CF // Ver.: always -#define ZCL_TIER13_BLOCK1_PRICE_ATTRIBUTE_ID 0x04D0 // Ver.: always -#define ZCL_TIER13_BLOCK2_PRICE_ATTRIBUTE_ID 0x04D1 // Ver.: always -#define ZCL_TIER13_BLOCK3_PRICE_ATTRIBUTE_ID 0x04D2 // Ver.: always -#define ZCL_TIER13_BLOCK4_PRICE_ATTRIBUTE_ID 0x04D3 // Ver.: always -#define ZCL_TIER13_BLOCK5_PRICE_ATTRIBUTE_ID 0x04D4 // Ver.: always -#define ZCL_TIER13_BLOCK6_PRICE_ATTRIBUTE_ID 0x04D5 // Ver.: always -#define ZCL_TIER13_BLOCK7_PRICE_ATTRIBUTE_ID 0x04D6 // Ver.: always -#define ZCL_TIER13_BLOCK8_PRICE_ATTRIBUTE_ID 0x04D7 // Ver.: always -#define ZCL_TIER13_BLOCK9_PRICE_ATTRIBUTE_ID 0x04D8 // Ver.: always -#define ZCL_TIER13_BLOCK10_PRICE_ATTRIBUTE_ID 0x04D9 // Ver.: always -#define ZCL_TIER13_BLOCK11_PRICE_ATTRIBUTE_ID 0x04DA // Ver.: always -#define ZCL_TIER13_BLOCK12_PRICE_ATTRIBUTE_ID 0x04DB // Ver.: always -#define ZCL_TIER13_BLOCK13_PRICE_ATTRIBUTE_ID 0x04DC // Ver.: always -#define ZCL_TIER13_BLOCK14_PRICE_ATTRIBUTE_ID 0x04DD // Ver.: always -#define ZCL_TIER13_BLOCK15_PRICE_ATTRIBUTE_ID 0x04DE // Ver.: always -#define ZCL_TIER13_BLOCK16_PRICE_ATTRIBUTE_ID 0x04DF // Ver.: always -#define ZCL_TIER14_BLOCK1_PRICE_ATTRIBUTE_ID 0x04E0 // Ver.: always -#define ZCL_TIER14_BLOCK2_PRICE_ATTRIBUTE_ID 0x04E1 // Ver.: always -#define ZCL_TIER14_BLOCK3_PRICE_ATTRIBUTE_ID 0x04E2 // Ver.: always -#define ZCL_TIER14_BLOCK4_PRICE_ATTRIBUTE_ID 0x04E3 // Ver.: always -#define ZCL_TIER14_BLOCK5_PRICE_ATTRIBUTE_ID 0x04E4 // Ver.: always -#define ZCL_TIER14_BLOCK6_PRICE_ATTRIBUTE_ID 0x04E5 // Ver.: always -#define ZCL_TIER14_BLOCK7_PRICE_ATTRIBUTE_ID 0x04E6 // Ver.: always -#define ZCL_TIER14_BLOCK8_PRICE_ATTRIBUTE_ID 0x04E7 // Ver.: always -#define ZCL_TIER14_BLOCK9_PRICE_ATTRIBUTE_ID 0x04E8 // Ver.: always -#define ZCL_TIER14_BLOCK10_PRICE_ATTRIBUTE_ID 0x04E9 // Ver.: always -#define ZCL_TIER14_BLOCK11_PRICE_ATTRIBUTE_ID 0x04EA // Ver.: always -#define ZCL_TIER14_BLOCK12_PRICE_ATTRIBUTE_ID 0x04EB // Ver.: always -#define ZCL_TIER14_BLOCK13_PRICE_ATTRIBUTE_ID 0x04EC // Ver.: always -#define ZCL_TIER14_BLOCK14_PRICE_ATTRIBUTE_ID 0x04ED // Ver.: always -#define ZCL_TIER14_BLOCK15_PRICE_ATTRIBUTE_ID 0x04EE // Ver.: always -#define ZCL_TIER14_BLOCK16_PRICE_ATTRIBUTE_ID 0x04EF // Ver.: always -#define ZCL_TIER15_BLOCK1_PRICE_ATTRIBUTE_ID 0x04F0 // Ver.: always -#define ZCL_TIER15_BLOCK2_PRICE_ATTRIBUTE_ID 0x04F1 // Ver.: always -#define ZCL_TIER15_BLOCK3_PRICE_ATTRIBUTE_ID 0x04F2 // Ver.: always -#define ZCL_TIER15_BLOCK4_PRICE_ATTRIBUTE_ID 0x04F3 // Ver.: always -#define ZCL_TIER15_BLOCK5_PRICE_ATTRIBUTE_ID 0x04F4 // Ver.: always -#define ZCL_TIER15_BLOCK6_PRICE_ATTRIBUTE_ID 0x04F5 // Ver.: always -#define ZCL_TIER15_BLOCK7_PRICE_ATTRIBUTE_ID 0x04F6 // Ver.: always -#define ZCL_TIER15_BLOCK8_PRICE_ATTRIBUTE_ID 0x04F7 // Ver.: always -#define ZCL_TIER15_BLOCK9_PRICE_ATTRIBUTE_ID 0x04F8 // Ver.: always -#define ZCL_TIER15_BLOCK10_PRICE_ATTRIBUTE_ID 0x04F9 // Ver.: always -#define ZCL_TIER15_BLOCK11_PRICE_ATTRIBUTE_ID 0x04FA // Ver.: always -#define ZCL_TIER15_BLOCK12_PRICE_ATTRIBUTE_ID 0x04FB // Ver.: always -#define ZCL_TIER15_BLOCK13_PRICE_ATTRIBUTE_ID 0x04FC // Ver.: always -#define ZCL_TIER15_BLOCK14_PRICE_ATTRIBUTE_ID 0x04FD // Ver.: always -#define ZCL_TIER15_BLOCK15_PRICE_ATTRIBUTE_ID 0x04FE // Ver.: always -#define ZCL_TIER15_BLOCK16_PRICE_ATTRIBUTE_ID 0x04FF // Ver.: always -#define ZCL_PRICE_TIER16_ATTRIBUTE_ID 0x050F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PRICE_TIER17_ATTRIBUTE_ID 0x0510 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PRICE_TIER18_ATTRIBUTE_ID 0x0511 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PRICE_TIER19_ATTRIBUTE_ID 0x0512 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PRICE_TIER20_ATTRIBUTE_ID 0x0513 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PRICE_TIER21_ATTRIBUTE_ID 0x0514 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PRICE_TIER22_ATTRIBUTE_ID 0x0515 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PRICE_TIER23_ATTRIBUTE_ID 0x0516 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PRICE_TIER24_ATTRIBUTE_ID 0x0517 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PRICE_TIER25_ATTRIBUTE_ID 0x0518 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PRICE_TIER26_ATTRIBUTE_ID 0x0519 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PRICE_TIER27_ATTRIBUTE_ID 0x051A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PRICE_TIER28_ATTRIBUTE_ID 0x051B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PRICE_TIER29_ATTRIBUTE_ID 0x051C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PRICE_TIER30_ATTRIBUTE_ID 0x051D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PRICE_TIER31_ATTRIBUTE_ID 0x051E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PRICE_TIER32_ATTRIBUTE_ID 0x051F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PRICE_TIER33_ATTRIBUTE_ID 0x0520 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PRICE_TIER34_ATTRIBUTE_ID 0x0521 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PRICE_TIER35_ATTRIBUTE_ID 0x0522 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PRICE_TIER36_ATTRIBUTE_ID 0x0523 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PRICE_TIER37_ATTRIBUTE_ID 0x0524 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PRICE_TIER38_ATTRIBUTE_ID 0x0525 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PRICE_TIER39_ATTRIBUTE_ID 0x0526 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PRICE_TIER40_ATTRIBUTE_ID 0x0527 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PRICE_TIER41_ATTRIBUTE_ID 0x0528 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PRICE_TIER42_ATTRIBUTE_ID 0x0529 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PRICE_TIER43_ATTRIBUTE_ID 0x052A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PRICE_TIER44_ATTRIBUTE_ID 0x052B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PRICE_TIER45_ATTRIBUTE_ID 0x052C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PRICE_TIER46_ATTRIBUTE_ID 0x052D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PRICE_TIER47_ATTRIBUTE_ID 0x052E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PRICE_TIER48_ATTRIBUTE_ID 0x052F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CPP1_PRICE_ATTRIBUTE_ID 0x05FE // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CPP2_PRICE_ATTRIBUTE_ID 0x05FF // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TARIFF_LABEL_ATTRIBUTE_ID 0x0610 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_NUMBER_OF_PRICE_TIERS_IN_USE_ATTRIBUTE_ID 0x0611 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_NUMBER_OF_BLOCK_THRESHOLDS_IN_USE_ATTRIBUTE_ID 0x0612 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER_BLOCK_MODE_ATTRIBUTE_ID 0x0613 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TARIFF_UNIT_OF_MEASURE_ATTRIBUTE_ID 0x0615 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TARIFF_CURRENCY_ATTRIBUTE_ID 0x0616 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TARIFF_PRICE_TRAILING_DIGIT_ATTRIBUTE_ID 0x0617 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TARIFF_RESOLUTION_PERIOD_ATTRIBUTE_ID 0x0619 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TARIFF_CO2_ATTRIBUTE_ID 0x0620 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TARIFF_CO2_UNIT_ATTRIBUTE_ID 0x0621 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TARIFF_CO2_TRAILING_DIGIT_ATTRIBUTE_ID 0x0622 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_BILLING_PERIOD_START_ATTRIBUTE_ID 0x0700 // Ver.: since se-1.1b-07-5356-18 -#define ZCL_CURRENT_BILLING_PERIOD_DURATION_ATTRIBUTE_ID 0x0701 // Ver.: since se-1.1b-07-5356-18 -#define ZCL_LAST_BILLING_PERIOD_START_ATTRIBUTE_ID 0x0702 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_LAST_BILLING_PERIOD_DURATION_ATTRIBUTE_ID 0x0703 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_LAST_BILLING_PERIOD_CONSOLIDATED_BILL_ATTRIBUTE_ID 0x0704 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CREDIT_PAYMENT_DUE_DATE_ATTRIBUTE_ID 0x0800 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CREDIT_PAYMENT_STATUS_ATTRIBUTE_ID 0x0801 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CREDIT_PAYMENT_OVER_DUE_AMOUNT_ATTRIBUTE_ID 0x0802 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PAYMENT_DISCOUNT_ATTRIBUTE_ID 0x080A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PAYMENT_DISCOUNT_PERIOD_ATTRIBUTE_ID 0x080B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CREDIT_PAYMENT_1_ATTRIBUTE_ID 0x0810 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CREDIT_PAYMENT_DATE_1_ATTRIBUTE_ID 0x0811 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CREDIT_PAYMENT_REF_1_ATTRIBUTE_ID 0x0812 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CREDIT_PAYMENT_2_ATTRIBUTE_ID 0x0820 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CREDIT_PAYMENT_DATE_2_ATTRIBUTE_ID 0x0821 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CREDIT_PAYMENT_REF_2_ATTRIBUTE_ID 0x0822 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CREDIT_PAYMENT_3_ATTRIBUTE_ID 0x0830 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CREDIT_PAYMENT_DATE_3_ATTRIBUTE_ID 0x0831 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CREDIT_PAYMENT_REF_3_ATTRIBUTE_ID 0x0832 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CREDIT_PAYMENT_4_ATTRIBUTE_ID 0x0840 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CREDIT_PAYMENT_DATE_4_ATTRIBUTE_ID 0x0841 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CREDIT_PAYMENT_REF_4_ATTRIBUTE_ID 0x0842 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CREDIT_PAYMENT_5_ATTRIBUTE_ID 0x0850 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CREDIT_PAYMENT_DATE_5_ATTRIBUTE_ID 0x0851 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CREDIT_PAYMENT_REF_5_ATTRIBUTE_ID 0x0852 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER1_PRICE_LABEL_ATTRIBUTE_ID 0x8000 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER2_PRICE_LABEL_ATTRIBUTE_ID 0x8001 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER3_PRICE_LABEL_ATTRIBUTE_ID 0x8002 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER4_PRICE_LABEL_ATTRIBUTE_ID 0x8003 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER5_PRICE_LABEL_ATTRIBUTE_ID 0x8004 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER6_PRICE_LABEL_ATTRIBUTE_ID 0x8005 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER7_PRICE_LABEL_ATTRIBUTE_ID 0x8006 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER8_PRICE_LABEL_ATTRIBUTE_ID 0x8007 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER9_PRICE_LABEL_ATTRIBUTE_ID 0x8008 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER10_PRICE_LABEL_ATTRIBUTE_ID 0x8009 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER11_PRICE_LABEL_ATTRIBUTE_ID 0x800A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER12_PRICE_LABEL_ATTRIBUTE_ID 0x800B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER13_PRICE_LABEL_ATTRIBUTE_ID 0x800C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER14_PRICE_LABEL_ATTRIBUTE_ID 0x800D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER15_PRICE_LABEL_ATTRIBUTE_ID 0x800E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER16_PRICE_LABEL_ATTRIBUTE_ID 0x800F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER17_PRICE_LABEL_ATTRIBUTE_ID 0x8010 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER18_PRICE_LABEL_ATTRIBUTE_ID 0x8011 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER19_PRICE_LABEL_ATTRIBUTE_ID 0x8012 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER20_PRICE_LABEL_ATTRIBUTE_ID 0x8013 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER21_PRICE_LABEL_ATTRIBUTE_ID 0x8014 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER22_PRICE_LABEL_ATTRIBUTE_ID 0x8015 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER23_PRICE_LABEL_ATTRIBUTE_ID 0x8016 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER24_PRICE_LABEL_ATTRIBUTE_ID 0x8017 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER25_PRICE_LABEL_ATTRIBUTE_ID 0x8018 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER26_PRICE_LABEL_ATTRIBUTE_ID 0x8019 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER27_PRICE_LABEL_ATTRIBUTE_ID 0x801A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER28_PRICE_LABEL_ATTRIBUTE_ID 0x801B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER29_PRICE_LABEL_ATTRIBUTE_ID 0x801C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER30_PRICE_LABEL_ATTRIBUTE_ID 0x801D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER31_PRICE_LABEL_ATTRIBUTE_ID 0x801E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER32_PRICE_LABEL_ATTRIBUTE_ID 0x801F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER33_PRICE_LABEL_ATTRIBUTE_ID 0x8020 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER34_PRICE_LABEL_ATTRIBUTE_ID 0x8021 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER35_PRICE_LABEL_ATTRIBUTE_ID 0x8022 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER36_PRICE_LABEL_ATTRIBUTE_ID 0x8023 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER37_PRICE_LABEL_ATTRIBUTE_ID 0x8024 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER38_PRICE_LABEL_ATTRIBUTE_ID 0x8025 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER39_PRICE_LABEL_ATTRIBUTE_ID 0x8026 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER40_PRICE_LABEL_ATTRIBUTE_ID 0x8027 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER41_PRICE_LABEL_ATTRIBUTE_ID 0x8028 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER42_PRICE_LABEL_ATTRIBUTE_ID 0x8029 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER43_PRICE_LABEL_ATTRIBUTE_ID 0x802A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER44_PRICE_LABEL_ATTRIBUTE_ID 0x802B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER45_PRICE_LABEL_ATTRIBUTE_ID 0x802C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER46_PRICE_LABEL_ATTRIBUTE_ID 0x802D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER47_PRICE_LABEL_ATTRIBUTE_ID 0x802E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER48_PRICE_LABEL_ATTRIBUTE_ID 0x802F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_BLOCK1_THRESHOLD_ATTRIBUTE_ID 0x8100 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_BLOCK2_THRESHOLD_ATTRIBUTE_ID 0x8101 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_BLOCK3_THRESHOLD_ATTRIBUTE_ID 0x8102 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_BLOCK4_THRESHOLD_ATTRIBUTE_ID 0x8103 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_BLOCK5_THRESHOLD_ATTRIBUTE_ID 0x8104 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_BLOCK6_THRESHOLD_ATTRIBUTE_ID 0x8105 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_BLOCK7_THRESHOLD_ATTRIBUTE_ID 0x8106 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_BLOCK8_THRESHOLD_ATTRIBUTE_ID 0x8107 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_BLOCK9_THRESHOLD_ATTRIBUTE_ID 0x8108 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_BLOCK10_THRESHOLD_ATTRIBUTE_ID 0x8109 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_BLOCK11_THRESHOLD_ATTRIBUTE_ID 0x810A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_BLOCK12_THRESHOLD_ATTRIBUTE_ID 0x810B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_BLOCK13_THRESHOLD_ATTRIBUTE_ID 0x810C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_BLOCK14_THRESHOLD_ATTRIBUTE_ID 0x810D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_BLOCK15_THRESHOLD_ATTRIBUTE_ID 0x810E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_START_OF_BLOCK_PERIOD_ATTRIBUTE_ID 0x8200 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_BLOCK_PERIOD_DURATION_ATTRIBUTE_ID 0x8201 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_THRESHOLD_MULTIPLIER_ATTRIBUTE_ID 0x8202 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_THRESHOLD_DIVISOR_ATTRIBUTE_ID 0x8203 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_NO_TIER_BLOCK1_PRICE_ATTRIBUTE_ID 0x8400 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_NO_TIER_BLOCK2_PRICE_ATTRIBUTE_ID 0x8401 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_NO_TIER_BLOCK3_PRICE_ATTRIBUTE_ID 0x8402 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_NO_TIER_BLOCK4_PRICE_ATTRIBUTE_ID 0x8403 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_NO_TIER_BLOCK5_PRICE_ATTRIBUTE_ID 0x8404 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_NO_TIER_BLOCK6_PRICE_ATTRIBUTE_ID 0x8405 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_NO_TIER_BLOCK7_PRICE_ATTRIBUTE_ID 0x8406 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_NO_TIER_BLOCK8_PRICE_ATTRIBUTE_ID 0x8407 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_NO_TIER_BLOCK9_PRICE_ATTRIBUTE_ID 0x8408 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_NO_TIER_BLOCK10_PRICE_ATTRIBUTE_ID 0x8409 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_NO_TIER_BLOCK11_PRICE_ATTRIBUTE_ID 0x840A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_NO_TIER_BLOCK12_PRICE_ATTRIBUTE_ID 0x840B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_NO_TIER_BLOCK13_PRICE_ATTRIBUTE_ID 0x840C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_NO_TIER_BLOCK14_PRICE_ATTRIBUTE_ID 0x840D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_NO_TIER_BLOCK15_PRICE_ATTRIBUTE_ID 0x840E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_NO_TIER_BLOCK16_PRICE_ATTRIBUTE_ID 0x840F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER1_BLOCK1_PRICE_ATTRIBUTE_ID 0x8410 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER1_BLOCK2_PRICE_ATTRIBUTE_ID 0x8411 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER1_BLOCK3_PRICE_ATTRIBUTE_ID 0x8412 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER1_BLOCK4_PRICE_ATTRIBUTE_ID 0x8413 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER1_BLOCK5_PRICE_ATTRIBUTE_ID 0x8414 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER1_BLOCK6_PRICE_ATTRIBUTE_ID 0x8415 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER1_BLOCK7_PRICE_ATTRIBUTE_ID 0x8416 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER1_BLOCK8_PRICE_ATTRIBUTE_ID 0x8417 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER1_BLOCK9_PRICE_ATTRIBUTE_ID 0x8418 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER1_BLOCK10_PRICE_ATTRIBUTE_ID 0x8419 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER1_BLOCK11_PRICE_ATTRIBUTE_ID 0x841A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER1_BLOCK12_PRICE_ATTRIBUTE_ID 0x841B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER1_BLOCK13_PRICE_ATTRIBUTE_ID 0x841C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER1_BLOCK14_PRICE_ATTRIBUTE_ID 0x841D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER1_BLOCK15_PRICE_ATTRIBUTE_ID 0x841E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER1_BLOCK16_PRICE_ATTRIBUTE_ID 0x841F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER2_BLOCK1_PRICE_ATTRIBUTE_ID 0x8420 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER2_BLOCK2_PRICE_ATTRIBUTE_ID 0x8421 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER2_BLOCK3_PRICE_ATTRIBUTE_ID 0x8422 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER2_BLOCK4_PRICE_ATTRIBUTE_ID 0x8423 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER2_BLOCK5_PRICE_ATTRIBUTE_ID 0x8424 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER2_BLOCK6_PRICE_ATTRIBUTE_ID 0x8425 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER2_BLOCK7_PRICE_ATTRIBUTE_ID 0x8426 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER2_BLOCK8_PRICE_ATTRIBUTE_ID 0x8427 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER2_BLOCK9_PRICE_ATTRIBUTE_ID 0x8428 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER2_BLOCK10_PRICE_ATTRIBUTE_ID 0x8429 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER2_BLOCK11_PRICE_ATTRIBUTE_ID 0x842A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER2_BLOCK12_PRICE_ATTRIBUTE_ID 0x842B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER2_BLOCK13_PRICE_ATTRIBUTE_ID 0x842C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER2_BLOCK14_PRICE_ATTRIBUTE_ID 0x842D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER2_BLOCK15_PRICE_ATTRIBUTE_ID 0x842E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER2_BLOCK16_PRICE_ATTRIBUTE_ID 0x842F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER3_BLOCK1_PRICE_ATTRIBUTE_ID 0x8430 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER3_BLOCK2_PRICE_ATTRIBUTE_ID 0x8431 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER3_BLOCK3_PRICE_ATTRIBUTE_ID 0x8432 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER3_BLOCK4_PRICE_ATTRIBUTE_ID 0x8433 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER3_BLOCK5_PRICE_ATTRIBUTE_ID 0x8434 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER3_BLOCK6_PRICE_ATTRIBUTE_ID 0x8435 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER3_BLOCK7_PRICE_ATTRIBUTE_ID 0x8436 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER3_BLOCK8_PRICE_ATTRIBUTE_ID 0x8437 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER3_BLOCK9_PRICE_ATTRIBUTE_ID 0x8438 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER3_BLOCK10_PRICE_ATTRIBUTE_ID 0x8439 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER3_BLOCK11_PRICE_ATTRIBUTE_ID 0x843A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER3_BLOCK12_PRICE_ATTRIBUTE_ID 0x843B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER3_BLOCK13_PRICE_ATTRIBUTE_ID 0x843C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER3_BLOCK14_PRICE_ATTRIBUTE_ID 0x843D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER3_BLOCK15_PRICE_ATTRIBUTE_ID 0x843E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER3_BLOCK16_PRICE_ATTRIBUTE_ID 0x843F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER4_BLOCK1_PRICE_ATTRIBUTE_ID 0x8440 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER4_BLOCK2_PRICE_ATTRIBUTE_ID 0x8441 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER4_BLOCK3_PRICE_ATTRIBUTE_ID 0x8442 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER4_BLOCK4_PRICE_ATTRIBUTE_ID 0x8443 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER4_BLOCK5_PRICE_ATTRIBUTE_ID 0x8444 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER4_BLOCK6_PRICE_ATTRIBUTE_ID 0x8445 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER4_BLOCK7_PRICE_ATTRIBUTE_ID 0x8446 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER4_BLOCK8_PRICE_ATTRIBUTE_ID 0x8447 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER4_BLOCK9_PRICE_ATTRIBUTE_ID 0x8448 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER4_BLOCK10_PRICE_ATTRIBUTE_ID 0x8449 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER4_BLOCK11_PRICE_ATTRIBUTE_ID 0x844A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER4_BLOCK12_PRICE_ATTRIBUTE_ID 0x844B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER4_BLOCK13_PRICE_ATTRIBUTE_ID 0x844C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER4_BLOCK14_PRICE_ATTRIBUTE_ID 0x844D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER4_BLOCK15_PRICE_ATTRIBUTE_ID 0x844E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER4_BLOCK16_PRICE_ATTRIBUTE_ID 0x844F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER5_BLOCK1_PRICE_ATTRIBUTE_ID 0x8450 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER5_BLOCK2_PRICE_ATTRIBUTE_ID 0x8451 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER5_BLOCK3_PRICE_ATTRIBUTE_ID 0x8452 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER5_BLOCK4_PRICE_ATTRIBUTE_ID 0x8453 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER5_BLOCK5_PRICE_ATTRIBUTE_ID 0x8454 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER5_BLOCK6_PRICE_ATTRIBUTE_ID 0x8455 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER5_BLOCK7_PRICE_ATTRIBUTE_ID 0x8456 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER5_BLOCK8_PRICE_ATTRIBUTE_ID 0x8457 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER5_BLOCK9_PRICE_ATTRIBUTE_ID 0x8458 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER5_BLOCK10_PRICE_ATTRIBUTE_ID 0x8459 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER5_BLOCK11_PRICE_ATTRIBUTE_ID 0x845A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER5_BLOCK12_PRICE_ATTRIBUTE_ID 0x845B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER5_BLOCK13_PRICE_ATTRIBUTE_ID 0x845C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER5_BLOCK14_PRICE_ATTRIBUTE_ID 0x845D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER5_BLOCK15_PRICE_ATTRIBUTE_ID 0x845E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER5_BLOCK16_PRICE_ATTRIBUTE_ID 0x845F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER6_BLOCK1_PRICE_ATTRIBUTE_ID 0x8460 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER6_BLOCK2_PRICE_ATTRIBUTE_ID 0x8461 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER6_BLOCK3_PRICE_ATTRIBUTE_ID 0x8462 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER6_BLOCK4_PRICE_ATTRIBUTE_ID 0x8463 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER6_BLOCK5_PRICE_ATTRIBUTE_ID 0x8464 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER6_BLOCK6_PRICE_ATTRIBUTE_ID 0x8465 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER6_BLOCK7_PRICE_ATTRIBUTE_ID 0x8466 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER6_BLOCK8_PRICE_ATTRIBUTE_ID 0x8467 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER6_BLOCK9_PRICE_ATTRIBUTE_ID 0x8468 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER6_BLOCK10_PRICE_ATTRIBUTE_ID 0x8469 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER6_BLOCK11_PRICE_ATTRIBUTE_ID 0x846A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER6_BLOCK12_PRICE_ATTRIBUTE_ID 0x846B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER6_BLOCK13_PRICE_ATTRIBUTE_ID 0x846C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER6_BLOCK14_PRICE_ATTRIBUTE_ID 0x846D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER6_BLOCK15_PRICE_ATTRIBUTE_ID 0x846E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER6_BLOCK16_PRICE_ATTRIBUTE_ID 0x846F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER7_BLOCK1_PRICE_ATTRIBUTE_ID 0x8470 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER7_BLOCK2_PRICE_ATTRIBUTE_ID 0x8471 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER7_BLOCK3_PRICE_ATTRIBUTE_ID 0x8472 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER7_BLOCK4_PRICE_ATTRIBUTE_ID 0x8473 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER7_BLOCK5_PRICE_ATTRIBUTE_ID 0x8474 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER7_BLOCK6_PRICE_ATTRIBUTE_ID 0x8475 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER7_BLOCK7_PRICE_ATTRIBUTE_ID 0x8476 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER7_BLOCK8_PRICE_ATTRIBUTE_ID 0x8477 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER7_BLOCK9_PRICE_ATTRIBUTE_ID 0x8478 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER7_BLOCK10_PRICE_ATTRIBUTE_ID 0x8479 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER7_BLOCK11_PRICE_ATTRIBUTE_ID 0x847A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER7_BLOCK12_PRICE_ATTRIBUTE_ID 0x847B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER7_BLOCK13_PRICE_ATTRIBUTE_ID 0x847C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER7_BLOCK14_PRICE_ATTRIBUTE_ID 0x847D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER7_BLOCK15_PRICE_ATTRIBUTE_ID 0x847E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER7_BLOCK16_PRICE_ATTRIBUTE_ID 0x847F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER8_BLOCK1_PRICE_ATTRIBUTE_ID 0x8480 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER8_BLOCK2_PRICE_ATTRIBUTE_ID 0x8481 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER8_BLOCK3_PRICE_ATTRIBUTE_ID 0x8482 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER8_BLOCK4_PRICE_ATTRIBUTE_ID 0x8483 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER8_BLOCK5_PRICE_ATTRIBUTE_ID 0x8484 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER8_BLOCK6_PRICE_ATTRIBUTE_ID 0x8485 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER8_BLOCK7_PRICE_ATTRIBUTE_ID 0x8486 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER8_BLOCK8_PRICE_ATTRIBUTE_ID 0x8487 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER8_BLOCK9_PRICE_ATTRIBUTE_ID 0x8488 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER8_BLOCK10_PRICE_ATTRIBUTE_ID 0x8489 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER8_BLOCK11_PRICE_ATTRIBUTE_ID 0x848A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER8_BLOCK12_PRICE_ATTRIBUTE_ID 0x848B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER8_BLOCK13_PRICE_ATTRIBUTE_ID 0x848C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER8_BLOCK14_PRICE_ATTRIBUTE_ID 0x848D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER8_BLOCK15_PRICE_ATTRIBUTE_ID 0x848E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER8_BLOCK16_PRICE_ATTRIBUTE_ID 0x848F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER9_BLOCK1_PRICE_ATTRIBUTE_ID 0x8490 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER9_BLOCK2_PRICE_ATTRIBUTE_ID 0x8491 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER9_BLOCK3_PRICE_ATTRIBUTE_ID 0x8492 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER9_BLOCK4_PRICE_ATTRIBUTE_ID 0x8493 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER9_BLOCK5_PRICE_ATTRIBUTE_ID 0x8494 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER9_BLOCK6_PRICE_ATTRIBUTE_ID 0x8495 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER9_BLOCK7_PRICE_ATTRIBUTE_ID 0x8496 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER9_BLOCK8_PRICE_ATTRIBUTE_ID 0x8497 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER9_BLOCK9_PRICE_ATTRIBUTE_ID 0x8498 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER9_BLOCK10_PRICE_ATTRIBUTE_ID 0x8499 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER9_BLOCK11_PRICE_ATTRIBUTE_ID 0x849A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER9_BLOCK12_PRICE_ATTRIBUTE_ID 0x849B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER9_BLOCK13_PRICE_ATTRIBUTE_ID 0x849C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER9_BLOCK14_PRICE_ATTRIBUTE_ID 0x849D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER9_BLOCK15_PRICE_ATTRIBUTE_ID 0x849E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER9_BLOCK16_PRICE_ATTRIBUTE_ID 0x849F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER10_BLOCK1_PRICE_ATTRIBUTE_ID 0x84A0 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER10_BLOCK2_PRICE_ATTRIBUTE_ID 0x84A1 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER10_BLOCK3_PRICE_ATTRIBUTE_ID 0x84A2 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER10_BLOCK4_PRICE_ATTRIBUTE_ID 0x84A3 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER10_BLOCK5_PRICE_ATTRIBUTE_ID 0x84A4 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER10_BLOCK6_PRICE_ATTRIBUTE_ID 0x84A5 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER10_BLOCK7_PRICE_ATTRIBUTE_ID 0x84A6 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER10_BLOCK8_PRICE_ATTRIBUTE_ID 0x84A7 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER10_BLOCK9_PRICE_ATTRIBUTE_ID 0x84A8 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER10_BLOCK10_PRICE_ATTRIBUTE_ID 0x84A9 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER10_BLOCK11_PRICE_ATTRIBUTE_ID 0x84AA // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER10_BLOCK12_PRICE_ATTRIBUTE_ID 0x84AB // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER10_BLOCK13_PRICE_ATTRIBUTE_ID 0x84AC // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER10_BLOCK14_PRICE_ATTRIBUTE_ID 0x84AD // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER10_BLOCK15_PRICE_ATTRIBUTE_ID 0x84AE // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER10_BLOCK16_PRICE_ATTRIBUTE_ID 0x84AF // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER11_BLOCK1_PRICE_ATTRIBUTE_ID 0x84B0 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER11_BLOCK2_PRICE_ATTRIBUTE_ID 0x84B1 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER11_BLOCK3_PRICE_ATTRIBUTE_ID 0x84B2 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER11_BLOCK4_PRICE_ATTRIBUTE_ID 0x84B3 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER11_BLOCK5_PRICE_ATTRIBUTE_ID 0x84B4 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER11_BLOCK6_PRICE_ATTRIBUTE_ID 0x84B5 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER11_BLOCK7_PRICE_ATTRIBUTE_ID 0x84B6 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER11_BLOCK8_PRICE_ATTRIBUTE_ID 0x84B7 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER11_BLOCK9_PRICE_ATTRIBUTE_ID 0x84B8 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER11_BLOCK10_PRICE_ATTRIBUTE_ID 0x84B9 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER11_BLOCK11_PRICE_ATTRIBUTE_ID 0x84BA // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER11_BLOCK12_PRICE_ATTRIBUTE_ID 0x84BB // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER11_BLOCK13_PRICE_ATTRIBUTE_ID 0x84BC // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER11_BLOCK14_PRICE_ATTRIBUTE_ID 0x84BD // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER11_BLOCK15_PRICE_ATTRIBUTE_ID 0x84BE // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER11_BLOCK16_PRICE_ATTRIBUTE_ID 0x84BF // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER12_BLOCK1_PRICE_ATTRIBUTE_ID 0x84C0 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER12_BLOCK2_PRICE_ATTRIBUTE_ID 0x84C1 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER12_BLOCK3_PRICE_ATTRIBUTE_ID 0x84C2 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER12_BLOCK4_PRICE_ATTRIBUTE_ID 0x84C3 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER12_BLOCK5_PRICE_ATTRIBUTE_ID 0x84C4 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER12_BLOCK6_PRICE_ATTRIBUTE_ID 0x84C5 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER12_BLOCK7_PRICE_ATTRIBUTE_ID 0x84C6 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER12_BLOCK8_PRICE_ATTRIBUTE_ID 0x84C7 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER12_BLOCK9_PRICE_ATTRIBUTE_ID 0x84C8 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER12_BLOCK10_PRICE_ATTRIBUTE_ID 0x84C9 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER12_BLOCK11_PRICE_ATTRIBUTE_ID 0x84CA // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER12_BLOCK12_PRICE_ATTRIBUTE_ID 0x84CB // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER12_BLOCK13_PRICE_ATTRIBUTE_ID 0x84CC // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER12_BLOCK14_PRICE_ATTRIBUTE_ID 0x84CD // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER12_BLOCK15_PRICE_ATTRIBUTE_ID 0x84CE // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER12_BLOCK16_PRICE_ATTRIBUTE_ID 0x84CF // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER13_BLOCK1_PRICE_ATTRIBUTE_ID 0x84D0 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER13_BLOCK2_PRICE_ATTRIBUTE_ID 0x84D1 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER13_BLOCK3_PRICE_ATTRIBUTE_ID 0x84D2 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER13_BLOCK4_PRICE_ATTRIBUTE_ID 0x84D3 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER13_BLOCK5_PRICE_ATTRIBUTE_ID 0x84D4 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER13_BLOCK6_PRICE_ATTRIBUTE_ID 0x84D5 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER13_BLOCK7_PRICE_ATTRIBUTE_ID 0x84D6 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER13_BLOCK8_PRICE_ATTRIBUTE_ID 0x84D7 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER13_BLOCK9_PRICE_ATTRIBUTE_ID 0x84D8 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER13_BLOCK10_PRICE_ATTRIBUTE_ID 0x84D9 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER13_BLOCK11_PRICE_ATTRIBUTE_ID 0x84DA // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER13_BLOCK12_PRICE_ATTRIBUTE_ID 0x84DB // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER13_BLOCK13_PRICE_ATTRIBUTE_ID 0x84DC // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER13_BLOCK14_PRICE_ATTRIBUTE_ID 0x84DD // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER13_BLOCK15_PRICE_ATTRIBUTE_ID 0x84DE // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER13_BLOCK16_PRICE_ATTRIBUTE_ID 0x84DF // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER14_BLOCK1_PRICE_ATTRIBUTE_ID 0x84E0 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER14_BLOCK2_PRICE_ATTRIBUTE_ID 0x84E1 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER14_BLOCK3_PRICE_ATTRIBUTE_ID 0x84E2 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER14_BLOCK4_PRICE_ATTRIBUTE_ID 0x84E3 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER14_BLOCK5_PRICE_ATTRIBUTE_ID 0x84E4 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER14_BLOCK6_PRICE_ATTRIBUTE_ID 0x84E5 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER14_BLOCK7_PRICE_ATTRIBUTE_ID 0x84E6 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER14_BLOCK8_PRICE_ATTRIBUTE_ID 0x84E7 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER14_BLOCK9_PRICE_ATTRIBUTE_ID 0x84E8 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER14_BLOCK10_PRICE_ATTRIBUTE_ID 0x84E9 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER14_BLOCK11_PRICE_ATTRIBUTE_ID 0x84EA // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER14_BLOCK12_PRICE_ATTRIBUTE_ID 0x84EB // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER14_BLOCK13_PRICE_ATTRIBUTE_ID 0x84EC // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER14_BLOCK14_PRICE_ATTRIBUTE_ID 0x84ED // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER14_BLOCK15_PRICE_ATTRIBUTE_ID 0x84EE // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER14_BLOCK16_PRICE_ATTRIBUTE_ID 0x84EF // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER15_BLOCK1_PRICE_ATTRIBUTE_ID 0x84F0 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER15_BLOCK2_PRICE_ATTRIBUTE_ID 0x84F1 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER15_BLOCK3_PRICE_ATTRIBUTE_ID 0x84F2 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER15_BLOCK4_PRICE_ATTRIBUTE_ID 0x84F3 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER15_BLOCK5_PRICE_ATTRIBUTE_ID 0x84F4 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER15_BLOCK6_PRICE_ATTRIBUTE_ID 0x84F5 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER15_BLOCK7_PRICE_ATTRIBUTE_ID 0x84F6 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER15_BLOCK8_PRICE_ATTRIBUTE_ID 0x84F7 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER15_BLOCK9_PRICE_ATTRIBUTE_ID 0x84F8 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER15_BLOCK10_PRICE_ATTRIBUTE_ID 0x84F9 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER15_BLOCK11_PRICE_ATTRIBUTE_ID 0x84FA // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER15_BLOCK12_PRICE_ATTRIBUTE_ID 0x84FB // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER15_BLOCK13_PRICE_ATTRIBUTE_ID 0x84FC // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER15_BLOCK14_PRICE_ATTRIBUTE_ID 0x84FD // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER15_BLOCK15_PRICE_ATTRIBUTE_ID 0x84FE // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER15_BLOCK16_PRICE_ATTRIBUTE_ID 0x84FF // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_PRICE_TIER16_ATTRIBUTE_ID 0x850F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_PRICE_TIER17_ATTRIBUTE_ID 0x8510 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_PRICE_TIER18_ATTRIBUTE_ID 0x8511 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_PRICE_TIER19_ATTRIBUTE_ID 0x8512 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_PRICE_TIER20_ATTRIBUTE_ID 0x8513 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_PRICE_TIER21_ATTRIBUTE_ID 0x8514 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_PRICE_TIER22_ATTRIBUTE_ID 0x8515 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_PRICE_TIER23_ATTRIBUTE_ID 0x8516 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_PRICE_TIER24_ATTRIBUTE_ID 0x8517 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_PRICE_TIER25_ATTRIBUTE_ID 0x8518 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_PRICE_TIER26_ATTRIBUTE_ID 0x8519 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_PRICE_TIER27_ATTRIBUTE_ID 0x851A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_PRICE_TIER28_ATTRIBUTE_ID 0x851B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_PRICE_TIER29_ATTRIBUTE_ID 0x851C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_PRICE_TIER30_ATTRIBUTE_ID 0x851D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_PRICE_TIER31_ATTRIBUTE_ID 0x851E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_PRICE_TIER32_ATTRIBUTE_ID 0x851F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_PRICE_TIER33_ATTRIBUTE_ID 0x8520 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_PRICE_TIER34_ATTRIBUTE_ID 0x8521 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_PRICE_TIER35_ATTRIBUTE_ID 0x8522 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_PRICE_TIER36_ATTRIBUTE_ID 0x8523 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_PRICE_TIER37_ATTRIBUTE_ID 0x8524 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_PRICE_TIER38_ATTRIBUTE_ID 0x8525 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_PRICE_TIER39_ATTRIBUTE_ID 0x8526 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_PRICE_TIER40_ATTRIBUTE_ID 0x8527 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_PRICE_TIER41_ATTRIBUTE_ID 0x8528 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_PRICE_TIER42_ATTRIBUTE_ID 0x8529 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_PRICE_TIER43_ATTRIBUTE_ID 0x852A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_PRICE_TIER44_ATTRIBUTE_ID 0x852B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_PRICE_TIER45_ATTRIBUTE_ID 0x852C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_PRICE_TIER46_ATTRIBUTE_ID 0x852D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_PRICE_TIER47_ATTRIBUTE_ID 0x852E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_PRICE_TIER48_ATTRIBUTE_ID 0x852F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TARIFF_LABEL_ATTRIBUTE_ID 0x8610 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_NUMBER_OF_PRICE_TIERS_IN_USE_ATTRIBUTE_ID 0x8611 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_NUMBER_OF_BLOCK_THRESHOLDS_IN_USE_ATTRIBUTE_ID 0x8612 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER_BLOCK_MODE_ATTRIBUTE_ID 0x8613 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TARIFF_RESOLUTION_PERIOD_ATTRIBUTE_ID 0x8615 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_CO2_ATTRIBUTE_ID 0x8625 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_CO2_UNIT_ATTRIBUTE_ID 0x8626 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_CO2_TRAILING_DIGIT_ATTRIBUTE_ID 0x8627 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_CURRENT_BILLING_PERIOD_START_ATTRIBUTE_ID 0x8700 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_CURRENT_BILLING_PERIOD_DURATION_ATTRIBUTE_ID 0x8701 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_LAST_BILLING_PERIOD_START_ATTRIBUTE_ID 0x8702 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_LAST_BILLING_PERIOD_DURATION_ATTRIBUTE_ID 0x8703 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_LAST_BILLING_PERIOD_CONSOLIDATED_BILL_ATTRIBUTE_ID 0x8704 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PRICE_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_PRICE_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Demand Response and Load Control -// Cluster specification level: se-1.2b-15-0131-02 +#define ZCL_TIER1_PRICE_LABEL_ATTRIBUTE_ID (0x0000) +#define ZCL_TIER2_PRICE_LABEL_ATTRIBUTE_ID (0x0001) +#define ZCL_TIER3_PRICE_LABEL_ATTRIBUTE_ID (0x0002) +#define ZCL_TIER4_PRICE_LABEL_ATTRIBUTE_ID (0x0003) +#define ZCL_TIER5_PRICE_LABEL_ATTRIBUTE_ID (0x0004) +#define ZCL_TIER6_PRICE_LABEL_ATTRIBUTE_ID (0x0005) +#define ZCL_TIER7_PRICE_LABEL_ATTRIBUTE_ID (0x0006) +#define ZCL_TIER8_PRICE_LABEL_ATTRIBUTE_ID (0x0007) +#define ZCL_TIER9_PRICE_LABEL_ATTRIBUTE_ID (0x0008) +#define ZCL_TIER10_PRICE_LABEL_ATTRIBUTE_ID (0x0009) +#define ZCL_TIER11_PRICE_LABEL_ATTRIBUTE_ID (0x000A) +#define ZCL_TIER12_PRICE_LABEL_ATTRIBUTE_ID (0x000B) +#define ZCL_TIER13_PRICE_LABEL_ATTRIBUTE_ID (0x000C) +#define ZCL_TIER14_PRICE_LABEL_ATTRIBUTE_ID (0x000D) +#define ZCL_TIER15_PRICE_LABEL_ATTRIBUTE_ID (0x000E) +#define ZCL_TIER16_PRICE_LABEL_ATTRIBUTE_ID (0x000F) +#define ZCL_TIER17_PRICE_LABEL_ATTRIBUTE_ID (0x0010) +#define ZCL_TIER18_PRICE_LABEL_ATTRIBUTE_ID (0x0011) +#define ZCL_TIER19_PRICE_LABEL_ATTRIBUTE_ID (0x0012) +#define ZCL_TIER20_PRICE_LABEL_ATTRIBUTE_ID (0x0013) +#define ZCL_TIER21_PRICE_LABEL_ATTRIBUTE_ID (0x0014) +#define ZCL_TIER22_PRICE_LABEL_ATTRIBUTE_ID (0x0015) +#define ZCL_TIER23_PRICE_LABEL_ATTRIBUTE_ID (0x0016) +#define ZCL_TIER24_PRICE_LABEL_ATTRIBUTE_ID (0x0017) +#define ZCL_TIER25_PRICE_LABEL_ATTRIBUTE_ID (0x0018) +#define ZCL_TIER26_PRICE_LABEL_ATTRIBUTE_ID (0x0019) +#define ZCL_TIER27_PRICE_LABEL_ATTRIBUTE_ID (0x001A) +#define ZCL_TIER28_PRICE_LABEL_ATTRIBUTE_ID (0x001B) +#define ZCL_TIER29_PRICE_LABEL_ATTRIBUTE_ID (0x001C) +#define ZCL_TIER30_PRICE_LABEL_ATTRIBUTE_ID (0x001D) +#define ZCL_TIER31_PRICE_LABEL_ATTRIBUTE_ID (0x001E) +#define ZCL_TIER32_PRICE_LABEL_ATTRIBUTE_ID (0x001F) +#define ZCL_TIER33_PRICE_LABEL_ATTRIBUTE_ID (0x0020) +#define ZCL_TIER34_PRICE_LABEL_ATTRIBUTE_ID (0x0021) +#define ZCL_TIER35_PRICE_LABEL_ATTRIBUTE_ID (0x0022) +#define ZCL_TIER36_PRICE_LABEL_ATTRIBUTE_ID (0x0023) +#define ZCL_TIER37_PRICE_LABEL_ATTRIBUTE_ID (0x0024) +#define ZCL_TIER38_PRICE_LABEL_ATTRIBUTE_ID (0x0025) +#define ZCL_TIER39_PRICE_LABEL_ATTRIBUTE_ID (0x0026) +#define ZCL_TIER40_PRICE_LABEL_ATTRIBUTE_ID (0x0027) +#define ZCL_TIER41_PRICE_LABEL_ATTRIBUTE_ID (0x0028) +#define ZCL_TIER42_PRICE_LABEL_ATTRIBUTE_ID (0x0029) +#define ZCL_TIER43_PRICE_LABEL_ATTRIBUTE_ID (0x002A) +#define ZCL_TIER44_PRICE_LABEL_ATTRIBUTE_ID (0x002B) +#define ZCL_TIER45_PRICE_LABEL_ATTRIBUTE_ID (0x002C) +#define ZCL_TIER46_PRICE_LABEL_ATTRIBUTE_ID (0x002D) +#define ZCL_TIER47_PRICE_LABEL_ATTRIBUTE_ID (0x002E) +#define ZCL_TIER48_PRICE_LABEL_ATTRIBUTE_ID (0x002F) +#define ZCL_BLOCK1_THRESHOLD_ATTRIBUTE_ID (0x0100) +#define ZCL_BLOCK2_THRESHOLD_ATTRIBUTE_ID (0x0101) +#define ZCL_BLOCK3_THRESHOLD_ATTRIBUTE_ID (0x0102) +#define ZCL_BLOCK4_THRESHOLD_ATTRIBUTE_ID (0x0103) +#define ZCL_BLOCK5_THRESHOLD_ATTRIBUTE_ID (0x0104) +#define ZCL_BLOCK6_THRESHOLD_ATTRIBUTE_ID (0x0105) +#define ZCL_BLOCK7_THRESHOLD_ATTRIBUTE_ID (0x0106) +#define ZCL_BLOCK8_THRESHOLD_ATTRIBUTE_ID (0x0107) +#define ZCL_BLOCK9_THRESHOLD_ATTRIBUTE_ID (0x0108) +#define ZCL_BLOCK10_THRESHOLD_ATTRIBUTE_ID (0x0109) +#define ZCL_BLOCK11_THRESHOLD_ATTRIBUTE_ID (0x010A) +#define ZCL_BLOCK12_THRESHOLD_ATTRIBUTE_ID (0x010B) +#define ZCL_BLOCK13_THRESHOLD_ATTRIBUTE_ID (0x010C) +#define ZCL_BLOCK14_THRESHOLD_ATTRIBUTE_ID (0x010D) +#define ZCL_BLOCK15_THRESHOLD_ATTRIBUTE_ID (0x010E) +#define ZCL_BLOCK_THRESHOLD_COUNT_ATTRIBUTE_ID (0x010F) +#define ZCL_TIER1_BLOCK1_THRESHOLD_ATTRIBUTE_ID (0x0110) +#define ZCL_TIER1_BLOCK2_THRESHOLD_ATTRIBUTE_ID (0x0111) +#define ZCL_TIER1_BLOCK3_THRESHOLD_ATTRIBUTE_ID (0x0112) +#define ZCL_TIER1_BLOCK4_THRESHOLD_ATTRIBUTE_ID (0x0113) +#define ZCL_TIER1_BLOCK5_THRESHOLD_ATTRIBUTE_ID (0x0114) +#define ZCL_TIER1_BLOCK6_THRESHOLD_ATTRIBUTE_ID (0x0115) +#define ZCL_TIER1_BLOCK7_THRESHOLD_ATTRIBUTE_ID (0x0116) +#define ZCL_TIER1_BLOCK8_THRESHOLD_ATTRIBUTE_ID (0x0117) +#define ZCL_TIER1_BLOCK9_THRESHOLD_ATTRIBUTE_ID (0x0118) +#define ZCL_TIER1_BLOCK10_THRESHOLD_ATTRIBUTE_ID (0x0119) +#define ZCL_TIER1_BLOCK11_THRESHOLD_ATTRIBUTE_ID (0x011A) +#define ZCL_TIER1_BLOCK12_THRESHOLD_ATTRIBUTE_ID (0x011B) +#define ZCL_TIER1_BLOCK13_THRESHOLD_ATTRIBUTE_ID (0x011C) +#define ZCL_TIER1_BLOCK14_THRESHOLD_ATTRIBUTE_ID (0x011D) +#define ZCL_TIER1_BLOCK15_THRESHOLD_ATTRIBUTE_ID (0x011E) +#define ZCL_TIER1_BLOCK_THRESHOLD_COUNT_ATTRIBUTE_ID (0x011F) +#define ZCL_TIER2_BLOCK1_THRESHOLD_ATTRIBUTE_ID (0x0120) +#define ZCL_TIER2_BLOCK2_THRESHOLD_ATTRIBUTE_ID (0x0121) +#define ZCL_TIER2_BLOCK3_THRESHOLD_ATTRIBUTE_ID (0x0122) +#define ZCL_TIER2_BLOCK4_THRESHOLD_ATTRIBUTE_ID (0x0123) +#define ZCL_TIER2_BLOCK5_THRESHOLD_ATTRIBUTE_ID (0x0124) +#define ZCL_TIER2_BLOCK6_THRESHOLD_ATTRIBUTE_ID (0x0125) +#define ZCL_TIER2_BLOCK7_THRESHOLD_ATTRIBUTE_ID (0x0126) +#define ZCL_TIER2_BLOCK8_THRESHOLD_ATTRIBUTE_ID (0x0127) +#define ZCL_TIER2_BLOCK9_THRESHOLD_ATTRIBUTE_ID (0x0128) +#define ZCL_TIER2_BLOCK10_THRESHOLD_ATTRIBUTE_ID (0x0129) +#define ZCL_TIER2_BLOCK11_THRESHOLD_ATTRIBUTE_ID (0x012A) +#define ZCL_TIER2_BLOCK12_THRESHOLD_ATTRIBUTE_ID (0x012B) +#define ZCL_TIER2_BLOCK13_THRESHOLD_ATTRIBUTE_ID (0x012C) +#define ZCL_TIER2_BLOCK14_THRESHOLD_ATTRIBUTE_ID (0x012D) +#define ZCL_TIER2_BLOCK15_THRESHOLD_ATTRIBUTE_ID (0x012E) +#define ZCL_TIER2_BLOCK_THRESHOLD_COUNT_ATTRIBUTE_ID (0x012F) +#define ZCL_TIER3_BLOCK1_THRESHOLD_ATTRIBUTE_ID (0x0130) +#define ZCL_TIER3_BLOCK2_THRESHOLD_ATTRIBUTE_ID (0x0131) +#define ZCL_TIER3_BLOCK3_THRESHOLD_ATTRIBUTE_ID (0x0132) +#define ZCL_TIER3_BLOCK4_THRESHOLD_ATTRIBUTE_ID (0x0133) +#define ZCL_TIER3_BLOCK5_THRESHOLD_ATTRIBUTE_ID (0x0134) +#define ZCL_TIER3_BLOCK6_THRESHOLD_ATTRIBUTE_ID (0x0135) +#define ZCL_TIER3_BLOCK7_THRESHOLD_ATTRIBUTE_ID (0x0136) +#define ZCL_TIER3_BLOCK8_THRESHOLD_ATTRIBUTE_ID (0x0137) +#define ZCL_TIER3_BLOCK9_THRESHOLD_ATTRIBUTE_ID (0x0138) +#define ZCL_TIER3_BLOCK10_THRESHOLD_ATTRIBUTE_ID (0x0139) +#define ZCL_TIER3_BLOCK11_THRESHOLD_ATTRIBUTE_ID (0x013A) +#define ZCL_TIER3_BLOCK12_THRESHOLD_ATTRIBUTE_ID (0x013B) +#define ZCL_TIER3_BLOCK13_THRESHOLD_ATTRIBUTE_ID (0x013C) +#define ZCL_TIER3_BLOCK14_THRESHOLD_ATTRIBUTE_ID (0x013D) +#define ZCL_TIER3_BLOCK15_THRESHOLD_ATTRIBUTE_ID (0x013E) +#define ZCL_TIER3_BLOCK_THRESHOLD_COUNT_ATTRIBUTE_ID (0x013F) +#define ZCL_TIER4_BLOCK1_THRESHOLD_ATTRIBUTE_ID (0x0140) +#define ZCL_TIER4_BLOCK2_THRESHOLD_ATTRIBUTE_ID (0x0141) +#define ZCL_TIER4_BLOCK3_THRESHOLD_ATTRIBUTE_ID (0x0142) +#define ZCL_TIER4_BLOCK4_THRESHOLD_ATTRIBUTE_ID (0x0143) +#define ZCL_TIER4_BLOCK5_THRESHOLD_ATTRIBUTE_ID (0x0144) +#define ZCL_TIER4_BLOCK6_THRESHOLD_ATTRIBUTE_ID (0x0145) +#define ZCL_TIER4_BLOCK7_THRESHOLD_ATTRIBUTE_ID (0x0146) +#define ZCL_TIER4_BLOCK8_THRESHOLD_ATTRIBUTE_ID (0x0147) +#define ZCL_TIER4_BLOCK9_THRESHOLD_ATTRIBUTE_ID (0x0148) +#define ZCL_TIER4_BLOCK10_THRESHOLD_ATTRIBUTE_ID (0x0149) +#define ZCL_TIER4_BLOCK11_THRESHOLD_ATTRIBUTE_ID (0x014A) +#define ZCL_TIER4_BLOCK12_THRESHOLD_ATTRIBUTE_ID (0x014B) +#define ZCL_TIER4_BLOCK13_THRESHOLD_ATTRIBUTE_ID (0x014C) +#define ZCL_TIER4_BLOCK14_THRESHOLD_ATTRIBUTE_ID (0x014D) +#define ZCL_TIER4_BLOCK15_THRESHOLD_ATTRIBUTE_ID (0x014E) +#define ZCL_TIER4_BLOCK_THRESHOLD_COUNT_ATTRIBUTE_ID (0x014F) +#define ZCL_TIER5_BLOCK1_THRESHOLD_ATTRIBUTE_ID (0x0150) +#define ZCL_TIER5_BLOCK2_THRESHOLD_ATTRIBUTE_ID (0x0151) +#define ZCL_TIER5_BLOCK3_THRESHOLD_ATTRIBUTE_ID (0x0152) +#define ZCL_TIER5_BLOCK4_THRESHOLD_ATTRIBUTE_ID (0x0153) +#define ZCL_TIER5_BLOCK5_THRESHOLD_ATTRIBUTE_ID (0x0154) +#define ZCL_TIER5_BLOCK6_THRESHOLD_ATTRIBUTE_ID (0x0155) +#define ZCL_TIER5_BLOCK7_THRESHOLD_ATTRIBUTE_ID (0x0156) +#define ZCL_TIER5_BLOCK8_THRESHOLD_ATTRIBUTE_ID (0x0157) +#define ZCL_TIER5_BLOCK9_THRESHOLD_ATTRIBUTE_ID (0x0158) +#define ZCL_TIER5_BLOCK10_THRESHOLD_ATTRIBUTE_ID (0x0159) +#define ZCL_TIER5_BLOCK11_THRESHOLD_ATTRIBUTE_ID (0x015A) +#define ZCL_TIER5_BLOCK12_THRESHOLD_ATTRIBUTE_ID (0x015B) +#define ZCL_TIER5_BLOCK13_THRESHOLD_ATTRIBUTE_ID (0x015C) +#define ZCL_TIER5_BLOCK14_THRESHOLD_ATTRIBUTE_ID (0x015D) +#define ZCL_TIER5_BLOCK15_THRESHOLD_ATTRIBUTE_ID (0x015E) +#define ZCL_TIER5_BLOCK_THRESHOLD_COUNT_ATTRIBUTE_ID (0x015F) +#define ZCL_TIER6_BLOCK1_THRESHOLD_ATTRIBUTE_ID (0x0160) +#define ZCL_TIER6_BLOCK2_THRESHOLD_ATTRIBUTE_ID (0x0161) +#define ZCL_TIER6_BLOCK3_THRESHOLD_ATTRIBUTE_ID (0x0162) +#define ZCL_TIER6_BLOCK4_THRESHOLD_ATTRIBUTE_ID (0x0163) +#define ZCL_TIER6_BLOCK5_THRESHOLD_ATTRIBUTE_ID (0x0164) +#define ZCL_TIER6_BLOCK6_THRESHOLD_ATTRIBUTE_ID (0x0165) +#define ZCL_TIER6_BLOCK7_THRESHOLD_ATTRIBUTE_ID (0x0166) +#define ZCL_TIER6_BLOCK8_THRESHOLD_ATTRIBUTE_ID (0x0167) +#define ZCL_TIER6_BLOCK9_THRESHOLD_ATTRIBUTE_ID (0x0168) +#define ZCL_TIER6_BLOCK10_THRESHOLD_ATTRIBUTE_ID (0x0169) +#define ZCL_TIER6_BLOCK11_THRESHOLD_ATTRIBUTE_ID (0x016A) +#define ZCL_TIER6_BLOCK12_THRESHOLD_ATTRIBUTE_ID (0x016B) +#define ZCL_TIER6_BLOCK13_THRESHOLD_ATTRIBUTE_ID (0x016C) +#define ZCL_TIER6_BLOCK14_THRESHOLD_ATTRIBUTE_ID (0x016D) +#define ZCL_TIER6_BLOCK15_THRESHOLD_ATTRIBUTE_ID (0x016E) +#define ZCL_TIER6_BLOCK_THRESHOLD_COUNT_ATTRIBUTE_ID (0x016F) +#define ZCL_TIER7_BLOCK1_THRESHOLD_ATTRIBUTE_ID (0x0170) +#define ZCL_TIER7_BLOCK2_THRESHOLD_ATTRIBUTE_ID (0x0171) +#define ZCL_TIER7_BLOCK3_THRESHOLD_ATTRIBUTE_ID (0x0172) +#define ZCL_TIER7_BLOCK4_THRESHOLD_ATTRIBUTE_ID (0x0173) +#define ZCL_TIER7_BLOCK5_THRESHOLD_ATTRIBUTE_ID (0x0174) +#define ZCL_TIER7_BLOCK6_THRESHOLD_ATTRIBUTE_ID (0x0175) +#define ZCL_TIER7_BLOCK7_THRESHOLD_ATTRIBUTE_ID (0x0176) +#define ZCL_TIER7_BLOCK8_THRESHOLD_ATTRIBUTE_ID (0x0177) +#define ZCL_TIER7_BLOCK9_THRESHOLD_ATTRIBUTE_ID (0x0178) +#define ZCL_TIER7_BLOCK10_THRESHOLD_ATTRIBUTE_ID (0x0179) +#define ZCL_TIER7_BLOCK11_THRESHOLD_ATTRIBUTE_ID (0x017A) +#define ZCL_TIER7_BLOCK12_THRESHOLD_ATTRIBUTE_ID (0x017B) +#define ZCL_TIER7_BLOCK13_THRESHOLD_ATTRIBUTE_ID (0x017C) +#define ZCL_TIER7_BLOCK14_THRESHOLD_ATTRIBUTE_ID (0x017D) +#define ZCL_TIER7_BLOCK15_THRESHOLD_ATTRIBUTE_ID (0x017E) +#define ZCL_TIER7_BLOCK_THRESHOLD_COUNT_ATTRIBUTE_ID (0x017F) +#define ZCL_TIER8_BLOCK1_THRESHOLD_ATTRIBUTE_ID (0x0180) +#define ZCL_TIER8_BLOCK2_THRESHOLD_ATTRIBUTE_ID (0x0181) +#define ZCL_TIER8_BLOCK3_THRESHOLD_ATTRIBUTE_ID (0x0182) +#define ZCL_TIER8_BLOCK4_THRESHOLD_ATTRIBUTE_ID (0x0183) +#define ZCL_TIER8_BLOCK5_THRESHOLD_ATTRIBUTE_ID (0x0184) +#define ZCL_TIER8_BLOCK6_THRESHOLD_ATTRIBUTE_ID (0x0185) +#define ZCL_TIER8_BLOCK7_THRESHOLD_ATTRIBUTE_ID (0x0186) +#define ZCL_TIER8_BLOCK8_THRESHOLD_ATTRIBUTE_ID (0x0187) +#define ZCL_TIER8_BLOCK9_THRESHOLD_ATTRIBUTE_ID (0x0188) +#define ZCL_TIER8_BLOCK10_THRESHOLD_ATTRIBUTE_ID (0x0189) +#define ZCL_TIER8_BLOCK11_THRESHOLD_ATTRIBUTE_ID (0x018A) +#define ZCL_TIER8_BLOCK12_THRESHOLD_ATTRIBUTE_ID (0x018B) +#define ZCL_TIER8_BLOCK13_THRESHOLD_ATTRIBUTE_ID (0x018C) +#define ZCL_TIER8_BLOCK14_THRESHOLD_ATTRIBUTE_ID (0x018D) +#define ZCL_TIER8_BLOCK15_THRESHOLD_ATTRIBUTE_ID (0x018E) +#define ZCL_TIER8_BLOCK_THRESHOLD_COUNT_ATTRIBUTE_ID (0x018F) +#define ZCL_TIER9_BLOCK1_THRESHOLD_ATTRIBUTE_ID (0x0190) +#define ZCL_TIER9_BLOCK2_THRESHOLD_ATTRIBUTE_ID (0x0191) +#define ZCL_TIER9_BLOCK3_THRESHOLD_ATTRIBUTE_ID (0x0192) +#define ZCL_TIER9_BLOCK4_THRESHOLD_ATTRIBUTE_ID (0x0193) +#define ZCL_TIER9_BLOCK5_THRESHOLD_ATTRIBUTE_ID (0x0194) +#define ZCL_TIER9_BLOCK6_THRESHOLD_ATTRIBUTE_ID (0x0195) +#define ZCL_TIER9_BLOCK7_THRESHOLD_ATTRIBUTE_ID (0x0196) +#define ZCL_TIER9_BLOCK8_THRESHOLD_ATTRIBUTE_ID (0x0197) +#define ZCL_TIER9_BLOCK9_THRESHOLD_ATTRIBUTE_ID (0x0198) +#define ZCL_TIER9_BLOCK10_THRESHOLD_ATTRIBUTE_ID (0x0199) +#define ZCL_TIER9_BLOCK11_THRESHOLD_ATTRIBUTE_ID (0x019A) +#define ZCL_TIER9_BLOCK12_THRESHOLD_ATTRIBUTE_ID (0x019B) +#define ZCL_TIER9_BLOCK13_THRESHOLD_ATTRIBUTE_ID (0x019C) +#define ZCL_TIER9_BLOCK14_THRESHOLD_ATTRIBUTE_ID (0x019D) +#define ZCL_TIER9_BLOCK15_THRESHOLD_ATTRIBUTE_ID (0x019E) +#define ZCL_TIER9_BLOCK_THRESHOLD_COUNT_ATTRIBUTE_ID (0x019F) +#define ZCL_TIER10_BLOCK1_THRESHOLD_ATTRIBUTE_ID (0x01A0) +#define ZCL_TIER10_BLOCK2_THRESHOLD_ATTRIBUTE_ID (0x01A1) +#define ZCL_TIER10_BLOCK3_THRESHOLD_ATTRIBUTE_ID (0x01A2) +#define ZCL_TIER10_BLOCK4_THRESHOLD_ATTRIBUTE_ID (0x01A3) +#define ZCL_TIER10_BLOCK5_THRESHOLD_ATTRIBUTE_ID (0x01A4) +#define ZCL_TIER10_BLOCK6_THRESHOLD_ATTRIBUTE_ID (0x01A5) +#define ZCL_TIER10_BLOCK7_THRESHOLD_ATTRIBUTE_ID (0x01A6) +#define ZCL_TIER10_BLOCK8_THRESHOLD_ATTRIBUTE_ID (0x01A7) +#define ZCL_TIER10_BLOCK9_THRESHOLD_ATTRIBUTE_ID (0x01A8) +#define ZCL_TIER10_BLOCK10_THRESHOLD_ATTRIBUTE_ID (0x01A9) +#define ZCL_TIER10_BLOCK11_THRESHOLD_ATTRIBUTE_ID (0x01AA) +#define ZCL_TIER10_BLOCK12_THRESHOLD_ATTRIBUTE_ID (0x01AB) +#define ZCL_TIER10_BLOCK13_THRESHOLD_ATTRIBUTE_ID (0x01AC) +#define ZCL_TIER10_BLOCK14_THRESHOLD_ATTRIBUTE_ID (0x01AD) +#define ZCL_TIER10_BLOCK15_THRESHOLD_ATTRIBUTE_ID (0x01AE) +#define ZCL_TIER10_BLOCK_THRESHOLD_COUNT_ATTRIBUTE_ID (0x01AF) +#define ZCL_TIER11_BLOCK1_THRESHOLD_ATTRIBUTE_ID (0x01B0) +#define ZCL_TIER11_BLOCK2_THRESHOLD_ATTRIBUTE_ID (0x01B1) +#define ZCL_TIER11_BLOCK3_THRESHOLD_ATTRIBUTE_ID (0x01B2) +#define ZCL_TIER11_BLOCK4_THRESHOLD_ATTRIBUTE_ID (0x01B3) +#define ZCL_TIER11_BLOCK5_THRESHOLD_ATTRIBUTE_ID (0x01B4) +#define ZCL_TIER11_BLOCK6_THRESHOLD_ATTRIBUTE_ID (0x01B5) +#define ZCL_TIER11_BLOCK7_THRESHOLD_ATTRIBUTE_ID (0x01B6) +#define ZCL_TIER11_BLOCK8_THRESHOLD_ATTRIBUTE_ID (0x01B7) +#define ZCL_TIER11_BLOCK9_THRESHOLD_ATTRIBUTE_ID (0x01B8) +#define ZCL_TIER11_BLOCK10_THRESHOLD_ATTRIBUTE_ID (0x01B9) +#define ZCL_TIER11_BLOCK11_THRESHOLD_ATTRIBUTE_ID (0x01BA) +#define ZCL_TIER11_BLOCK12_THRESHOLD_ATTRIBUTE_ID (0x01BB) +#define ZCL_TIER11_BLOCK13_THRESHOLD_ATTRIBUTE_ID (0x01BC) +#define ZCL_TIER11_BLOCK14_THRESHOLD_ATTRIBUTE_ID (0x01BD) +#define ZCL_TIER11_BLOCK15_THRESHOLD_ATTRIBUTE_ID (0x01BE) +#define ZCL_TIER11_BLOCK_THRESHOLD_COUNT_ATTRIBUTE_ID (0x01BF) +#define ZCL_TIER12_BLOCK1_THRESHOLD_ATTRIBUTE_ID (0x01C0) +#define ZCL_TIER12_BLOCK2_THRESHOLD_ATTRIBUTE_ID (0x01C1) +#define ZCL_TIER12_BLOCK3_THRESHOLD_ATTRIBUTE_ID (0x01C2) +#define ZCL_TIER12_BLOCK4_THRESHOLD_ATTRIBUTE_ID (0x01C3) +#define ZCL_TIER12_BLOCK5_THRESHOLD_ATTRIBUTE_ID (0x01C4) +#define ZCL_TIER12_BLOCK6_THRESHOLD_ATTRIBUTE_ID (0x01C5) +#define ZCL_TIER12_BLOCK7_THRESHOLD_ATTRIBUTE_ID (0x01C6) +#define ZCL_TIER12_BLOCK8_THRESHOLD_ATTRIBUTE_ID (0x01C7) +#define ZCL_TIER12_BLOCK9_THRESHOLD_ATTRIBUTE_ID (0x01C8) +#define ZCL_TIER12_BLOCK10_THRESHOLD_ATTRIBUTE_ID (0x01C9) +#define ZCL_TIER12_BLOCK11_THRESHOLD_ATTRIBUTE_ID (0x01CA) +#define ZCL_TIER12_BLOCK12_THRESHOLD_ATTRIBUTE_ID (0x01CB) +#define ZCL_TIER12_BLOCK13_THRESHOLD_ATTRIBUTE_ID (0x01CC) +#define ZCL_TIER12_BLOCK14_THRESHOLD_ATTRIBUTE_ID (0x01CD) +#define ZCL_TIER12_BLOCK15_THRESHOLD_ATTRIBUTE_ID (0x01CE) +#define ZCL_TIER12_BLOCK_THRESHOLD_COUNT_ATTRIBUTE_ID (0x01CF) +#define ZCL_TIER13_BLOCK1_THRESHOLD_ATTRIBUTE_ID (0x01D0) +#define ZCL_TIER13_BLOCK2_THRESHOLD_ATTRIBUTE_ID (0x01D1) +#define ZCL_TIER13_BLOCK3_THRESHOLD_ATTRIBUTE_ID (0x01D2) +#define ZCL_TIER13_BLOCK4_THRESHOLD_ATTRIBUTE_ID (0x01D3) +#define ZCL_TIER13_BLOCK5_THRESHOLD_ATTRIBUTE_ID (0x01D4) +#define ZCL_TIER13_BLOCK6_THRESHOLD_ATTRIBUTE_ID (0x01D5) +#define ZCL_TIER13_BLOCK7_THRESHOLD_ATTRIBUTE_ID (0x01D6) +#define ZCL_TIER13_BLOCK8_THRESHOLD_ATTRIBUTE_ID (0x01D7) +#define ZCL_TIER13_BLOCK9_THRESHOLD_ATTRIBUTE_ID (0x01D8) +#define ZCL_TIER13_BLOCK10_THRESHOLD_ATTRIBUTE_ID (0x01D9) +#define ZCL_TIER13_BLOCK11_THRESHOLD_ATTRIBUTE_ID (0x01DA) +#define ZCL_TIER13_BLOCK12_THRESHOLD_ATTRIBUTE_ID (0x01DB) +#define ZCL_TIER13_BLOCK13_THRESHOLD_ATTRIBUTE_ID (0x01DC) +#define ZCL_TIER13_BLOCK14_THRESHOLD_ATTRIBUTE_ID (0x01DD) +#define ZCL_TIER13_BLOCK15_THRESHOLD_ATTRIBUTE_ID (0x01DE) +#define ZCL_TIER13_BLOCK_THRESHOLD_COUNT_ATTRIBUTE_ID (0x01DF) +#define ZCL_TIER14_BLOCK1_THRESHOLD_ATTRIBUTE_ID (0x01E0) +#define ZCL_TIER14_BLOCK2_THRESHOLD_ATTRIBUTE_ID (0x01E1) +#define ZCL_TIER14_BLOCK3_THRESHOLD_ATTRIBUTE_ID (0x01E2) +#define ZCL_TIER14_BLOCK4_THRESHOLD_ATTRIBUTE_ID (0x01E3) +#define ZCL_TIER14_BLOCK5_THRESHOLD_ATTRIBUTE_ID (0x01E4) +#define ZCL_TIER14_BLOCK6_THRESHOLD_ATTRIBUTE_ID (0x01E5) +#define ZCL_TIER14_BLOCK7_THRESHOLD_ATTRIBUTE_ID (0x01E6) +#define ZCL_TIER14_BLOCK8_THRESHOLD_ATTRIBUTE_ID (0x01E7) +#define ZCL_TIER14_BLOCK9_THRESHOLD_ATTRIBUTE_ID (0x01E8) +#define ZCL_TIER14_BLOCK10_THRESHOLD_ATTRIBUTE_ID (0x01E9) +#define ZCL_TIER14_BLOCK11_THRESHOLD_ATTRIBUTE_ID (0x01EA) +#define ZCL_TIER14_BLOCK12_THRESHOLD_ATTRIBUTE_ID (0x01EB) +#define ZCL_TIER14_BLOCK13_THRESHOLD_ATTRIBUTE_ID (0x01EC) +#define ZCL_TIER14_BLOCK14_THRESHOLD_ATTRIBUTE_ID (0x01ED) +#define ZCL_TIER14_BLOCK15_THRESHOLD_ATTRIBUTE_ID (0x01EE) +#define ZCL_TIER14_BLOCK_THRESHOLD_COUNT_ATTRIBUTE_ID (0x01EF) +#define ZCL_TIER15_BLOCK1_THRESHOLD_ATTRIBUTE_ID (0x01F0) +#define ZCL_TIER15_BLOCK2_THRESHOLD_ATTRIBUTE_ID (0x01F1) +#define ZCL_TIER15_BLOCK3_THRESHOLD_ATTRIBUTE_ID (0x01F2) +#define ZCL_TIER15_BLOCK4_THRESHOLD_ATTRIBUTE_ID (0x01F3) +#define ZCL_TIER15_BLOCK5_THRESHOLD_ATTRIBUTE_ID (0x01F4) +#define ZCL_TIER15_BLOCK6_THRESHOLD_ATTRIBUTE_ID (0x01F5) +#define ZCL_TIER15_BLOCK7_THRESHOLD_ATTRIBUTE_ID (0x01F6) +#define ZCL_TIER15_BLOCK8_THRESHOLD_ATTRIBUTE_ID (0x01F7) +#define ZCL_TIER15_BLOCK9_THRESHOLD_ATTRIBUTE_ID (0x01F8) +#define ZCL_TIER15_BLOCK10_THRESHOLD_ATTRIBUTE_ID (0x01F9) +#define ZCL_TIER15_BLOCK11_THRESHOLD_ATTRIBUTE_ID (0x01FA) +#define ZCL_TIER15_BLOCK12_THRESHOLD_ATTRIBUTE_ID (0x01FB) +#define ZCL_TIER15_BLOCK13_THRESHOLD_ATTRIBUTE_ID (0x01FC) +#define ZCL_TIER15_BLOCK14_THRESHOLD_ATTRIBUTE_ID (0x01FD) +#define ZCL_TIER15_BLOCK15_THRESHOLD_ATTRIBUTE_ID (0x01FE) +#define ZCL_TIER15_BLOCK_THRESHOLD_COUNT_ATTRIBUTE_ID (0x01FF) +#define ZCL_START_OF_BLOCK_PERIOD_ATTRIBUTE_ID (0x0200) +#define ZCL_BLOCK_PERIOD_DURATION_MINUTES_ATTRIBUTE_ID (0x0201) +#define ZCL_THRESHOLD_MULTIPLIER_ATTRIBUTE_ID (0x0202) +#define ZCL_THRESHOLD_DIVISOR_ATTRIBUTE_ID (0x0203) +#define ZCL_BLOCK_PERIOD_DURATION_TYPE_ATTRIBUTE_ID (0x0204) +#define ZCL_COMMODITY_TYPE_SERVER_ATTRIBUTE_ID (0x0300) +#define ZCL_STANDING_CHARGE_ATTRIBUTE_ID (0x0301) +#define ZCL_CONVERSION_FACTOR_ATTRIBUTE_ID (0x0302) +#define ZCL_CONVERSION_FACTOR_TRAILING_DIGIT_ATTRIBUTE_ID (0x0303) +#define ZCL_CALORIFIC_VALUE_ATTRIBUTE_ID (0x0304) +#define ZCL_CALORIFIC_VALUE_UNIT_ATTRIBUTE_ID (0x0305) +#define ZCL_CALORIFIC_VALUE_TRAILING_DIGIT_ATTRIBUTE_ID (0x0306) +#define ZCL_NO_TIER_BLOCK1_PRICE_ATTRIBUTE_ID (0x0400) +#define ZCL_NO_TIER_BLOCK2_PRICE_ATTRIBUTE_ID (0x0401) +#define ZCL_NO_TIER_BLOCK3_PRICE_ATTRIBUTE_ID (0x0402) +#define ZCL_NO_TIER_BLOCK4_PRICE_ATTRIBUTE_ID (0x0403) +#define ZCL_NO_TIER_BLOCK5_PRICE_ATTRIBUTE_ID (0x0404) +#define ZCL_NO_TIER_BLOCK6_PRICE_ATTRIBUTE_ID (0x0405) +#define ZCL_NO_TIER_BLOCK7_PRICE_ATTRIBUTE_ID (0x0406) +#define ZCL_NO_TIER_BLOCK8_PRICE_ATTRIBUTE_ID (0x0407) +#define ZCL_NO_TIER_BLOCK9_PRICE_ATTRIBUTE_ID (0x0408) +#define ZCL_NO_TIER_BLOCK10_PRICE_ATTRIBUTE_ID (0x0409) +#define ZCL_NO_TIER_BLOCK11_PRICE_ATTRIBUTE_ID (0x040A) +#define ZCL_NO_TIER_BLOCK12_PRICE_ATTRIBUTE_ID (0x040B) +#define ZCL_NO_TIER_BLOCK13_PRICE_ATTRIBUTE_ID (0x040C) +#define ZCL_NO_TIER_BLOCK14_PRICE_ATTRIBUTE_ID (0x040D) +#define ZCL_NO_TIER_BLOCK15_PRICE_ATTRIBUTE_ID (0x040E) +#define ZCL_NO_TIER_BLOCK16_PRICE_ATTRIBUTE_ID (0x040F) +#define ZCL_TIER1_BLOCK1_PRICE_ATTRIBUTE_ID (0x0410) +#define ZCL_TIER1_BLOCK2_PRICE_ATTRIBUTE_ID (0x0411) +#define ZCL_TIER1_BLOCK3_PRICE_ATTRIBUTE_ID (0x0412) +#define ZCL_TIER1_BLOCK4_PRICE_ATTRIBUTE_ID (0x0413) +#define ZCL_TIER1_BLOCK5_PRICE_ATTRIBUTE_ID (0x0414) +#define ZCL_TIER1_BLOCK6_PRICE_ATTRIBUTE_ID (0x0415) +#define ZCL_TIER1_BLOCK7_PRICE_ATTRIBUTE_ID (0x0416) +#define ZCL_TIER1_BLOCK8_PRICE_ATTRIBUTE_ID (0x0417) +#define ZCL_TIER1_BLOCK9_PRICE_ATTRIBUTE_ID (0x0418) +#define ZCL_TIER1_BLOCK10_PRICE_ATTRIBUTE_ID (0x0419) +#define ZCL_TIER1_BLOCK11_PRICE_ATTRIBUTE_ID (0x041A) +#define ZCL_TIER1_BLOCK12_PRICE_ATTRIBUTE_ID (0x041B) +#define ZCL_TIER1_BLOCK13_PRICE_ATTRIBUTE_ID (0x041C) +#define ZCL_TIER1_BLOCK14_PRICE_ATTRIBUTE_ID (0x041D) +#define ZCL_TIER1_BLOCK15_PRICE_ATTRIBUTE_ID (0x041E) +#define ZCL_TIER1_BLOCK16_PRICE_ATTRIBUTE_ID (0x041F) +#define ZCL_TIER2_BLOCK1_PRICE_ATTRIBUTE_ID (0x0420) +#define ZCL_TIER2_BLOCK2_PRICE_ATTRIBUTE_ID (0x0421) +#define ZCL_TIER2_BLOCK3_PRICE_ATTRIBUTE_ID (0x0422) +#define ZCL_TIER2_BLOCK4_PRICE_ATTRIBUTE_ID (0x0423) +#define ZCL_TIER2_BLOCK5_PRICE_ATTRIBUTE_ID (0x0424) +#define ZCL_TIER2_BLOCK6_PRICE_ATTRIBUTE_ID (0x0425) +#define ZCL_TIER2_BLOCK7_PRICE_ATTRIBUTE_ID (0x0426) +#define ZCL_TIER2_BLOCK8_PRICE_ATTRIBUTE_ID (0x0427) +#define ZCL_TIER2_BLOCK9_PRICE_ATTRIBUTE_ID (0x0428) +#define ZCL_TIER2_BLOCK10_PRICE_ATTRIBUTE_ID (0x0429) +#define ZCL_TIER2_BLOCK11_PRICE_ATTRIBUTE_ID (0x042A) +#define ZCL_TIER2_BLOCK12_PRICE_ATTRIBUTE_ID (0x042B) +#define ZCL_TIER2_BLOCK13_PRICE_ATTRIBUTE_ID (0x042C) +#define ZCL_TIER2_BLOCK14_PRICE_ATTRIBUTE_ID (0x042D) +#define ZCL_TIER2_BLOCK15_PRICE_ATTRIBUTE_ID (0x042E) +#define ZCL_TIER2_BLOCK16_PRICE_ATTRIBUTE_ID (0x042F) +#define ZCL_TIER3_BLOCK1_PRICE_ATTRIBUTE_ID (0x0430) +#define ZCL_TIER3_BLOCK2_PRICE_ATTRIBUTE_ID (0x0431) +#define ZCL_TIER3_BLOCK3_PRICE_ATTRIBUTE_ID (0x0432) +#define ZCL_TIER3_BLOCK4_PRICE_ATTRIBUTE_ID (0x0433) +#define ZCL_TIER3_BLOCK5_PRICE_ATTRIBUTE_ID (0x0434) +#define ZCL_TIER3_BLOCK6_PRICE_ATTRIBUTE_ID (0x0435) +#define ZCL_TIER3_BLOCK7_PRICE_ATTRIBUTE_ID (0x0436) +#define ZCL_TIER3_BLOCK8_PRICE_ATTRIBUTE_ID (0x0437) +#define ZCL_TIER3_BLOCK9_PRICE_ATTRIBUTE_ID (0x0438) +#define ZCL_TIER3_BLOCK10_PRICE_ATTRIBUTE_ID (0x0439) +#define ZCL_TIER3_BLOCK11_PRICE_ATTRIBUTE_ID (0x043A) +#define ZCL_TIER3_BLOCK12_PRICE_ATTRIBUTE_ID (0x043B) +#define ZCL_TIER3_BLOCK13_PRICE_ATTRIBUTE_ID (0x043C) +#define ZCL_TIER3_BLOCK14_PRICE_ATTRIBUTE_ID (0x043D) +#define ZCL_TIER3_BLOCK15_PRICE_ATTRIBUTE_ID (0x043E) +#define ZCL_TIER3_BLOCK16_PRICE_ATTRIBUTE_ID (0x043F) +#define ZCL_TIER4_BLOCK1_PRICE_ATTRIBUTE_ID (0x0440) +#define ZCL_TIER4_BLOCK2_PRICE_ATTRIBUTE_ID (0x0441) +#define ZCL_TIER4_BLOCK3_PRICE_ATTRIBUTE_ID (0x0442) +#define ZCL_TIER4_BLOCK4_PRICE_ATTRIBUTE_ID (0x0443) +#define ZCL_TIER4_BLOCK5_PRICE_ATTRIBUTE_ID (0x0444) +#define ZCL_TIER4_BLOCK6_PRICE_ATTRIBUTE_ID (0x0445) +#define ZCL_TIER4_BLOCK7_PRICE_ATTRIBUTE_ID (0x0446) +#define ZCL_TIER4_BLOCK8_PRICE_ATTRIBUTE_ID (0x0447) +#define ZCL_TIER4_BLOCK9_PRICE_ATTRIBUTE_ID (0x0448) +#define ZCL_TIER4_BLOCK10_PRICE_ATTRIBUTE_ID (0x0449) +#define ZCL_TIER4_BLOCK11_PRICE_ATTRIBUTE_ID (0x044A) +#define ZCL_TIER4_BLOCK12_PRICE_ATTRIBUTE_ID (0x044B) +#define ZCL_TIER4_BLOCK13_PRICE_ATTRIBUTE_ID (0x044C) +#define ZCL_TIER4_BLOCK14_PRICE_ATTRIBUTE_ID (0x044D) +#define ZCL_TIER4_BLOCK15_PRICE_ATTRIBUTE_ID (0x044E) +#define ZCL_TIER4_BLOCK16_PRICE_ATTRIBUTE_ID (0x044F) +#define ZCL_TIER5_BLOCK1_PRICE_ATTRIBUTE_ID (0x0450) +#define ZCL_TIER5_BLOCK2_PRICE_ATTRIBUTE_ID (0x0451) +#define ZCL_TIER5_BLOCK3_PRICE_ATTRIBUTE_ID (0x0452) +#define ZCL_TIER5_BLOCK4_PRICE_ATTRIBUTE_ID (0x0453) +#define ZCL_TIER5_BLOCK5_PRICE_ATTRIBUTE_ID (0x0454) +#define ZCL_TIER5_BLOCK6_PRICE_ATTRIBUTE_ID (0x0455) +#define ZCL_TIER5_BLOCK7_PRICE_ATTRIBUTE_ID (0x0456) +#define ZCL_TIER5_BLOCK8_PRICE_ATTRIBUTE_ID (0x0457) +#define ZCL_TIER5_BLOCK9_PRICE_ATTRIBUTE_ID (0x0458) +#define ZCL_TIER5_BLOCK10_PRICE_ATTRIBUTE_ID (0x0459) +#define ZCL_TIER5_BLOCK11_PRICE_ATTRIBUTE_ID (0x045A) +#define ZCL_TIER5_BLOCK12_PRICE_ATTRIBUTE_ID (0x045B) +#define ZCL_TIER5_BLOCK13_PRICE_ATTRIBUTE_ID (0x045C) +#define ZCL_TIER5_BLOCK14_PRICE_ATTRIBUTE_ID (0x045D) +#define ZCL_TIER5_BLOCK15_PRICE_ATTRIBUTE_ID (0x045E) +#define ZCL_TIER5_BLOCK16_PRICE_ATTRIBUTE_ID (0x045F) +#define ZCL_TIER6_BLOCK1_PRICE_ATTRIBUTE_ID (0x0460) +#define ZCL_TIER6_BLOCK2_PRICE_ATTRIBUTE_ID (0x0461) +#define ZCL_TIER6_BLOCK3_PRICE_ATTRIBUTE_ID (0x0462) +#define ZCL_TIER6_BLOCK4_PRICE_ATTRIBUTE_ID (0x0463) +#define ZCL_TIER6_BLOCK5_PRICE_ATTRIBUTE_ID (0x0464) +#define ZCL_TIER6_BLOCK6_PRICE_ATTRIBUTE_ID (0x0465) +#define ZCL_TIER6_BLOCK7_PRICE_ATTRIBUTE_ID (0x0466) +#define ZCL_TIER6_BLOCK8_PRICE_ATTRIBUTE_ID (0x0467) +#define ZCL_TIER6_BLOCK9_PRICE_ATTRIBUTE_ID (0x0468) +#define ZCL_TIER6_BLOCK10_PRICE_ATTRIBUTE_ID (0x0469) +#define ZCL_TIER6_BLOCK11_PRICE_ATTRIBUTE_ID (0x046A) +#define ZCL_TIER6_BLOCK12_PRICE_ATTRIBUTE_ID (0x046B) +#define ZCL_TIER6_BLOCK13_PRICE_ATTRIBUTE_ID (0x046C) +#define ZCL_TIER6_BLOCK14_PRICE_ATTRIBUTE_ID (0x046D) +#define ZCL_TIER6_BLOCK15_PRICE_ATTRIBUTE_ID (0x046E) +#define ZCL_TIER6_BLOCK16_PRICE_ATTRIBUTE_ID (0x046F) +#define ZCL_TIER7_BLOCK1_PRICE_ATTRIBUTE_ID (0x0470) +#define ZCL_TIER7_BLOCK2_PRICE_ATTRIBUTE_ID (0x0471) +#define ZCL_TIER7_BLOCK3_PRICE_ATTRIBUTE_ID (0x0472) +#define ZCL_TIER7_BLOCK4_PRICE_ATTRIBUTE_ID (0x0473) +#define ZCL_TIER7_BLOCK5_PRICE_ATTRIBUTE_ID (0x0474) +#define ZCL_TIER7_BLOCK6_PRICE_ATTRIBUTE_ID (0x0475) +#define ZCL_TIER7_BLOCK7_PRICE_ATTRIBUTE_ID (0x0476) +#define ZCL_TIER7_BLOCK8_PRICE_ATTRIBUTE_ID (0x0477) +#define ZCL_TIER7_BLOCK9_PRICE_ATTRIBUTE_ID (0x0478) +#define ZCL_TIER7_BLOCK10_PRICE_ATTRIBUTE_ID (0x0479) +#define ZCL_TIER7_BLOCK11_PRICE_ATTRIBUTE_ID (0x047A) +#define ZCL_TIER7_BLOCK12_PRICE_ATTRIBUTE_ID (0x047B) +#define ZCL_TIER7_BLOCK13_PRICE_ATTRIBUTE_ID (0x047C) +#define ZCL_TIER7_BLOCK14_PRICE_ATTRIBUTE_ID (0x047D) +#define ZCL_TIER7_BLOCK15_PRICE_ATTRIBUTE_ID (0x047E) +#define ZCL_TIER7_BLOCK16_PRICE_ATTRIBUTE_ID (0x047F) +#define ZCL_TIER8_BLOCK1_PRICE_ATTRIBUTE_ID (0x0480) +#define ZCL_TIER8_BLOCK2_PRICE_ATTRIBUTE_ID (0x0481) +#define ZCL_TIER8_BLOCK3_PRICE_ATTRIBUTE_ID (0x0482) +#define ZCL_TIER8_BLOCK4_PRICE_ATTRIBUTE_ID (0x0483) +#define ZCL_TIER8_BLOCK5_PRICE_ATTRIBUTE_ID (0x0484) +#define ZCL_TIER8_BLOCK6_PRICE_ATTRIBUTE_ID (0x0485) +#define ZCL_TIER8_BLOCK7_PRICE_ATTRIBUTE_ID (0x0486) +#define ZCL_TIER8_BLOCK8_PRICE_ATTRIBUTE_ID (0x0487) +#define ZCL_TIER8_BLOCK9_PRICE_ATTRIBUTE_ID (0x0488) +#define ZCL_TIER8_BLOCK10_PRICE_ATTRIBUTE_ID (0x0489) +#define ZCL_TIER8_BLOCK11_PRICE_ATTRIBUTE_ID (0x048A) +#define ZCL_TIER8_BLOCK12_PRICE_ATTRIBUTE_ID (0x048B) +#define ZCL_TIER8_BLOCK13_PRICE_ATTRIBUTE_ID (0x048C) +#define ZCL_TIER8_BLOCK14_PRICE_ATTRIBUTE_ID (0x048D) +#define ZCL_TIER8_BLOCK15_PRICE_ATTRIBUTE_ID (0x048E) +#define ZCL_TIER8_BLOCK16_PRICE_ATTRIBUTE_ID (0x048F) +#define ZCL_TIER9_BLOCK1_PRICE_ATTRIBUTE_ID (0x0490) +#define ZCL_TIER9_BLOCK2_PRICE_ATTRIBUTE_ID (0x0491) +#define ZCL_TIER9_BLOCK3_PRICE_ATTRIBUTE_ID (0x0492) +#define ZCL_TIER9_BLOCK4_PRICE_ATTRIBUTE_ID (0x0493) +#define ZCL_TIER9_BLOCK5_PRICE_ATTRIBUTE_ID (0x0494) +#define ZCL_TIER9_BLOCK6_PRICE_ATTRIBUTE_ID (0x0495) +#define ZCL_TIER9_BLOCK7_PRICE_ATTRIBUTE_ID (0x0496) +#define ZCL_TIER9_BLOCK8_PRICE_ATTRIBUTE_ID (0x0497) +#define ZCL_TIER9_BLOCK9_PRICE_ATTRIBUTE_ID (0x0498) +#define ZCL_TIER9_BLOCK10_PRICE_ATTRIBUTE_ID (0x0499) +#define ZCL_TIER9_BLOCK11_PRICE_ATTRIBUTE_ID (0x049A) +#define ZCL_TIER9_BLOCK12_PRICE_ATTRIBUTE_ID (0x049B) +#define ZCL_TIER9_BLOCK13_PRICE_ATTRIBUTE_ID (0x049C) +#define ZCL_TIER9_BLOCK14_PRICE_ATTRIBUTE_ID (0x049D) +#define ZCL_TIER9_BLOCK15_PRICE_ATTRIBUTE_ID (0x049E) +#define ZCL_TIER9_BLOCK16_PRICE_ATTRIBUTE_ID (0x049F) +#define ZCL_TIER10_BLOCK1_PRICE_ATTRIBUTE_ID (0x04A0) +#define ZCL_TIER10_BLOCK2_PRICE_ATTRIBUTE_ID (0x04A1) +#define ZCL_TIER10_BLOCK3_PRICE_ATTRIBUTE_ID (0x04A2) +#define ZCL_TIER10_BLOCK4_PRICE_ATTRIBUTE_ID (0x04A3) +#define ZCL_TIER10_BLOCK5_PRICE_ATTRIBUTE_ID (0x04A4) +#define ZCL_TIER10_BLOCK6_PRICE_ATTRIBUTE_ID (0x04A5) +#define ZCL_TIER10_BLOCK7_PRICE_ATTRIBUTE_ID (0x04A6) +#define ZCL_TIER10_BLOCK8_PRICE_ATTRIBUTE_ID (0x04A7) +#define ZCL_TIER10_BLOCK9_PRICE_ATTRIBUTE_ID (0x04A8) +#define ZCL_TIER10_BLOCK10_PRICE_ATTRIBUTE_ID (0x04A9) +#define ZCL_TIER10_BLOCK11_PRICE_ATTRIBUTE_ID (0x04AA) +#define ZCL_TIER10_BLOCK12_PRICE_ATTRIBUTE_ID (0x04AB) +#define ZCL_TIER10_BLOCK13_PRICE_ATTRIBUTE_ID (0x04AC) +#define ZCL_TIER10_BLOCK14_PRICE_ATTRIBUTE_ID (0x04AD) +#define ZCL_TIER10_BLOCK15_PRICE_ATTRIBUTE_ID (0x04AE) +#define ZCL_TIER10_BLOCK16_PRICE_ATTRIBUTE_ID (0x04AF) +#define ZCL_TIER11_BLOCK1_PRICE_ATTRIBUTE_ID (0x04B0) +#define ZCL_TIER11_BLOCK2_PRICE_ATTRIBUTE_ID (0x04B1) +#define ZCL_TIER11_BLOCK3_PRICE_ATTRIBUTE_ID (0x04B2) +#define ZCL_TIER11_BLOCK4_PRICE_ATTRIBUTE_ID (0x04B3) +#define ZCL_TIER11_BLOCK5_PRICE_ATTRIBUTE_ID (0x04B4) +#define ZCL_TIER11_BLOCK6_PRICE_ATTRIBUTE_ID (0x04B5) +#define ZCL_TIER11_BLOCK7_PRICE_ATTRIBUTE_ID (0x04B6) +#define ZCL_TIER11_BLOCK8_PRICE_ATTRIBUTE_ID (0x04B7) +#define ZCL_TIER11_BLOCK9_PRICE_ATTRIBUTE_ID (0x04B8) +#define ZCL_TIER11_BLOCK10_PRICE_ATTRIBUTE_ID (0x04B9) +#define ZCL_TIER11_BLOCK11_PRICE_ATTRIBUTE_ID (0x04BA) +#define ZCL_TIER11_BLOCK12_PRICE_ATTRIBUTE_ID (0x04BB) +#define ZCL_TIER11_BLOCK13_PRICE_ATTRIBUTE_ID (0x04BC) +#define ZCL_TIER11_BLOCK14_PRICE_ATTRIBUTE_ID (0x04BD) +#define ZCL_TIER11_BLOCK15_PRICE_ATTRIBUTE_ID (0x04BE) +#define ZCL_TIER11_BLOCK16_PRICE_ATTRIBUTE_ID (0x04BF) +#define ZCL_TIER12_BLOCK1_PRICE_ATTRIBUTE_ID (0x04C0) +#define ZCL_TIER12_BLOCK2_PRICE_ATTRIBUTE_ID (0x04C1) +#define ZCL_TIER12_BLOCK3_PRICE_ATTRIBUTE_ID (0x04C2) +#define ZCL_TIER12_BLOCK4_PRICE_ATTRIBUTE_ID (0x04C3) +#define ZCL_TIER12_BLOCK5_PRICE_ATTRIBUTE_ID (0x04C4) +#define ZCL_TIER12_BLOCK6_PRICE_ATTRIBUTE_ID (0x04C5) +#define ZCL_TIER12_BLOCK7_PRICE_ATTRIBUTE_ID (0x04C6) +#define ZCL_TIER12_BLOCK8_PRICE_ATTRIBUTE_ID (0x04C7) +#define ZCL_TIER12_BLOCK9_PRICE_ATTRIBUTE_ID (0x04C8) +#define ZCL_TIER12_BLOCK10_PRICE_ATTRIBUTE_ID (0x04C9) +#define ZCL_TIER12_BLOCK11_PRICE_ATTRIBUTE_ID (0x04CA) +#define ZCL_TIER12_BLOCK12_PRICE_ATTRIBUTE_ID (0x04CB) +#define ZCL_TIER12_BLOCK13_PRICE_ATTRIBUTE_ID (0x04CC) +#define ZCL_TIER12_BLOCK14_PRICE_ATTRIBUTE_ID (0x04CD) +#define ZCL_TIER12_BLOCK15_PRICE_ATTRIBUTE_ID (0x04CE) +#define ZCL_TIER12_BLOCK16_PRICE_ATTRIBUTE_ID (0x04CF) +#define ZCL_TIER13_BLOCK1_PRICE_ATTRIBUTE_ID (0x04D0) +#define ZCL_TIER13_BLOCK2_PRICE_ATTRIBUTE_ID (0x04D1) +#define ZCL_TIER13_BLOCK3_PRICE_ATTRIBUTE_ID (0x04D2) +#define ZCL_TIER13_BLOCK4_PRICE_ATTRIBUTE_ID (0x04D3) +#define ZCL_TIER13_BLOCK5_PRICE_ATTRIBUTE_ID (0x04D4) +#define ZCL_TIER13_BLOCK6_PRICE_ATTRIBUTE_ID (0x04D5) +#define ZCL_TIER13_BLOCK7_PRICE_ATTRIBUTE_ID (0x04D6) +#define ZCL_TIER13_BLOCK8_PRICE_ATTRIBUTE_ID (0x04D7) +#define ZCL_TIER13_BLOCK9_PRICE_ATTRIBUTE_ID (0x04D8) +#define ZCL_TIER13_BLOCK10_PRICE_ATTRIBUTE_ID (0x04D9) +#define ZCL_TIER13_BLOCK11_PRICE_ATTRIBUTE_ID (0x04DA) +#define ZCL_TIER13_BLOCK12_PRICE_ATTRIBUTE_ID (0x04DB) +#define ZCL_TIER13_BLOCK13_PRICE_ATTRIBUTE_ID (0x04DC) +#define ZCL_TIER13_BLOCK14_PRICE_ATTRIBUTE_ID (0x04DD) +#define ZCL_TIER13_BLOCK15_PRICE_ATTRIBUTE_ID (0x04DE) +#define ZCL_TIER13_BLOCK16_PRICE_ATTRIBUTE_ID (0x04DF) +#define ZCL_TIER14_BLOCK1_PRICE_ATTRIBUTE_ID (0x04E0) +#define ZCL_TIER14_BLOCK2_PRICE_ATTRIBUTE_ID (0x04E1) +#define ZCL_TIER14_BLOCK3_PRICE_ATTRIBUTE_ID (0x04E2) +#define ZCL_TIER14_BLOCK4_PRICE_ATTRIBUTE_ID (0x04E3) +#define ZCL_TIER14_BLOCK5_PRICE_ATTRIBUTE_ID (0x04E4) +#define ZCL_TIER14_BLOCK6_PRICE_ATTRIBUTE_ID (0x04E5) +#define ZCL_TIER14_BLOCK7_PRICE_ATTRIBUTE_ID (0x04E6) +#define ZCL_TIER14_BLOCK8_PRICE_ATTRIBUTE_ID (0x04E7) +#define ZCL_TIER14_BLOCK9_PRICE_ATTRIBUTE_ID (0x04E8) +#define ZCL_TIER14_BLOCK10_PRICE_ATTRIBUTE_ID (0x04E9) +#define ZCL_TIER14_BLOCK11_PRICE_ATTRIBUTE_ID (0x04EA) +#define ZCL_TIER14_BLOCK12_PRICE_ATTRIBUTE_ID (0x04EB) +#define ZCL_TIER14_BLOCK13_PRICE_ATTRIBUTE_ID (0x04EC) +#define ZCL_TIER14_BLOCK14_PRICE_ATTRIBUTE_ID (0x04ED) +#define ZCL_TIER14_BLOCK15_PRICE_ATTRIBUTE_ID (0x04EE) +#define ZCL_TIER14_BLOCK16_PRICE_ATTRIBUTE_ID (0x04EF) +#define ZCL_TIER15_BLOCK1_PRICE_ATTRIBUTE_ID (0x04F0) +#define ZCL_TIER15_BLOCK2_PRICE_ATTRIBUTE_ID (0x04F1) +#define ZCL_TIER15_BLOCK3_PRICE_ATTRIBUTE_ID (0x04F2) +#define ZCL_TIER15_BLOCK4_PRICE_ATTRIBUTE_ID (0x04F3) +#define ZCL_TIER15_BLOCK5_PRICE_ATTRIBUTE_ID (0x04F4) +#define ZCL_TIER15_BLOCK6_PRICE_ATTRIBUTE_ID (0x04F5) +#define ZCL_TIER15_BLOCK7_PRICE_ATTRIBUTE_ID (0x04F6) +#define ZCL_TIER15_BLOCK8_PRICE_ATTRIBUTE_ID (0x04F7) +#define ZCL_TIER15_BLOCK9_PRICE_ATTRIBUTE_ID (0x04F8) +#define ZCL_TIER15_BLOCK10_PRICE_ATTRIBUTE_ID (0x04F9) +#define ZCL_TIER15_BLOCK11_PRICE_ATTRIBUTE_ID (0x04FA) +#define ZCL_TIER15_BLOCK12_PRICE_ATTRIBUTE_ID (0x04FB) +#define ZCL_TIER15_BLOCK13_PRICE_ATTRIBUTE_ID (0x04FC) +#define ZCL_TIER15_BLOCK14_PRICE_ATTRIBUTE_ID (0x04FD) +#define ZCL_TIER15_BLOCK15_PRICE_ATTRIBUTE_ID (0x04FE) +#define ZCL_TIER15_BLOCK16_PRICE_ATTRIBUTE_ID (0x04FF) +#define ZCL_PRICE_TIER16_ATTRIBUTE_ID (0x050F) +#define ZCL_PRICE_TIER17_ATTRIBUTE_ID (0x0510) +#define ZCL_PRICE_TIER18_ATTRIBUTE_ID (0x0511) +#define ZCL_PRICE_TIER19_ATTRIBUTE_ID (0x0512) +#define ZCL_PRICE_TIER20_ATTRIBUTE_ID (0x0513) +#define ZCL_PRICE_TIER21_ATTRIBUTE_ID (0x0514) +#define ZCL_PRICE_TIER22_ATTRIBUTE_ID (0x0515) +#define ZCL_PRICE_TIER23_ATTRIBUTE_ID (0x0516) +#define ZCL_PRICE_TIER24_ATTRIBUTE_ID (0x0517) +#define ZCL_PRICE_TIER25_ATTRIBUTE_ID (0x0518) +#define ZCL_PRICE_TIER26_ATTRIBUTE_ID (0x0519) +#define ZCL_PRICE_TIER27_ATTRIBUTE_ID (0x051A) +#define ZCL_PRICE_TIER28_ATTRIBUTE_ID (0x051B) +#define ZCL_PRICE_TIER29_ATTRIBUTE_ID (0x051C) +#define ZCL_PRICE_TIER30_ATTRIBUTE_ID (0x051D) +#define ZCL_PRICE_TIER31_ATTRIBUTE_ID (0x051E) +#define ZCL_PRICE_TIER32_ATTRIBUTE_ID (0x051F) +#define ZCL_PRICE_TIER33_ATTRIBUTE_ID (0x0520) +#define ZCL_PRICE_TIER34_ATTRIBUTE_ID (0x0521) +#define ZCL_PRICE_TIER35_ATTRIBUTE_ID (0x0522) +#define ZCL_PRICE_TIER36_ATTRIBUTE_ID (0x0523) +#define ZCL_PRICE_TIER37_ATTRIBUTE_ID (0x0524) +#define ZCL_PRICE_TIER38_ATTRIBUTE_ID (0x0525) +#define ZCL_PRICE_TIER39_ATTRIBUTE_ID (0x0526) +#define ZCL_PRICE_TIER40_ATTRIBUTE_ID (0x0527) +#define ZCL_PRICE_TIER41_ATTRIBUTE_ID (0x0528) +#define ZCL_PRICE_TIER42_ATTRIBUTE_ID (0x0529) +#define ZCL_PRICE_TIER43_ATTRIBUTE_ID (0x052A) +#define ZCL_PRICE_TIER44_ATTRIBUTE_ID (0x052B) +#define ZCL_PRICE_TIER45_ATTRIBUTE_ID (0x052C) +#define ZCL_PRICE_TIER46_ATTRIBUTE_ID (0x052D) +#define ZCL_PRICE_TIER47_ATTRIBUTE_ID (0x052E) +#define ZCL_PRICE_TIER48_ATTRIBUTE_ID (0x052F) +#define ZCL_CPP1_PRICE_ATTRIBUTE_ID (0x05FE) +#define ZCL_CPP2_PRICE_ATTRIBUTE_ID (0x05FF) +#define ZCL_TARIFF_LABEL_ATTRIBUTE_ID (0x0610) +#define ZCL_NUMBER_OF_PRICE_TIERS_IN_USE_ATTRIBUTE_ID (0x0611) +#define ZCL_NUMBER_OF_BLOCK_THRESHOLDS_IN_USE_ATTRIBUTE_ID (0x0612) +#define ZCL_TIER_BLOCK_MODE_ATTRIBUTE_ID (0x0613) +#define ZCL_TARIFF_UNIT_OF_MEASURE_ATTRIBUTE_ID (0x0615) +#define ZCL_TARIFF_CURRENCY_ATTRIBUTE_ID (0x0616) +#define ZCL_TARIFF_PRICE_TRAILING_DIGIT_ATTRIBUTE_ID (0x0617) +#define ZCL_TARIFF_RESOLUTION_PERIOD_ATTRIBUTE_ID (0x0619) +#define ZCL_TARIFF_CO2_ATTRIBUTE_ID (0x0620) +#define ZCL_TARIFF_CO2_UNIT_ATTRIBUTE_ID (0x0621) +#define ZCL_TARIFF_CO2_TRAILING_DIGIT_ATTRIBUTE_ID (0x0622) +#define ZCL_CURRENT_BILLING_PERIOD_START_ATTRIBUTE_ID (0x0700) +#define ZCL_CURRENT_BILLING_PERIOD_DURATION_ATTRIBUTE_ID (0x0701) +#define ZCL_LAST_BILLING_PERIOD_START_ATTRIBUTE_ID (0x0702) +#define ZCL_LAST_BILLING_PERIOD_DURATION_ATTRIBUTE_ID (0x0703) +#define ZCL_LAST_BILLING_PERIOD_CONSOLIDATED_BILL_ATTRIBUTE_ID (0x0704) +#define ZCL_CREDIT_PAYMENT_DUE_DATE_ATTRIBUTE_ID (0x0800) +#define ZCL_CREDIT_PAYMENT_STATUS_ATTRIBUTE_ID (0x0801) +#define ZCL_CREDIT_PAYMENT_OVER_DUE_AMOUNT_ATTRIBUTE_ID (0x0802) +#define ZCL_PAYMENT_DISCOUNT_ATTRIBUTE_ID (0x080A) +#define ZCL_PAYMENT_DISCOUNT_PERIOD_ATTRIBUTE_ID (0x080B) +#define ZCL_CREDIT_PAYMENT_1_ATTRIBUTE_ID (0x0810) +#define ZCL_CREDIT_PAYMENT_DATE_1_ATTRIBUTE_ID (0x0811) +#define ZCL_CREDIT_PAYMENT_REF_1_ATTRIBUTE_ID (0x0812) +#define ZCL_CREDIT_PAYMENT_2_ATTRIBUTE_ID (0x0820) +#define ZCL_CREDIT_PAYMENT_DATE_2_ATTRIBUTE_ID (0x0821) +#define ZCL_CREDIT_PAYMENT_REF_2_ATTRIBUTE_ID (0x0822) +#define ZCL_CREDIT_PAYMENT_3_ATTRIBUTE_ID (0x0830) +#define ZCL_CREDIT_PAYMENT_DATE_3_ATTRIBUTE_ID (0x0831) +#define ZCL_CREDIT_PAYMENT_REF_3_ATTRIBUTE_ID (0x0832) +#define ZCL_CREDIT_PAYMENT_4_ATTRIBUTE_ID (0x0840) +#define ZCL_CREDIT_PAYMENT_DATE_4_ATTRIBUTE_ID (0x0841) +#define ZCL_CREDIT_PAYMENT_REF_4_ATTRIBUTE_ID (0x0842) +#define ZCL_CREDIT_PAYMENT_5_ATTRIBUTE_ID (0x0850) +#define ZCL_CREDIT_PAYMENT_DATE_5_ATTRIBUTE_ID (0x0851) +#define ZCL_CREDIT_PAYMENT_REF_5_ATTRIBUTE_ID (0x0852) +#define ZCL_RX_TIER1_PRICE_LABEL_ATTRIBUTE_ID (0x8000) +#define ZCL_RX_TIER2_PRICE_LABEL_ATTRIBUTE_ID (0x8001) +#define ZCL_RX_TIER3_PRICE_LABEL_ATTRIBUTE_ID (0x8002) +#define ZCL_RX_TIER4_PRICE_LABEL_ATTRIBUTE_ID (0x8003) +#define ZCL_RX_TIER5_PRICE_LABEL_ATTRIBUTE_ID (0x8004) +#define ZCL_RX_TIER6_PRICE_LABEL_ATTRIBUTE_ID (0x8005) +#define ZCL_RX_TIER7_PRICE_LABEL_ATTRIBUTE_ID (0x8006) +#define ZCL_RX_TIER8_PRICE_LABEL_ATTRIBUTE_ID (0x8007) +#define ZCL_RX_TIER9_PRICE_LABEL_ATTRIBUTE_ID (0x8008) +#define ZCL_RX_TIER10_PRICE_LABEL_ATTRIBUTE_ID (0x8009) +#define ZCL_RX_TIER11_PRICE_LABEL_ATTRIBUTE_ID (0x800A) +#define ZCL_RX_TIER12_PRICE_LABEL_ATTRIBUTE_ID (0x800B) +#define ZCL_RX_TIER13_PRICE_LABEL_ATTRIBUTE_ID (0x800C) +#define ZCL_RX_TIER14_PRICE_LABEL_ATTRIBUTE_ID (0x800D) +#define ZCL_RX_TIER15_PRICE_LABEL_ATTRIBUTE_ID (0x800E) +#define ZCL_RX_TIER16_PRICE_LABEL_ATTRIBUTE_ID (0x800F) +#define ZCL_RX_TIER17_PRICE_LABEL_ATTRIBUTE_ID (0x8010) +#define ZCL_RX_TIER18_PRICE_LABEL_ATTRIBUTE_ID (0x8011) +#define ZCL_RX_TIER19_PRICE_LABEL_ATTRIBUTE_ID (0x8012) +#define ZCL_RX_TIER20_PRICE_LABEL_ATTRIBUTE_ID (0x8013) +#define ZCL_RX_TIER21_PRICE_LABEL_ATTRIBUTE_ID (0x8014) +#define ZCL_RX_TIER22_PRICE_LABEL_ATTRIBUTE_ID (0x8015) +#define ZCL_RX_TIER23_PRICE_LABEL_ATTRIBUTE_ID (0x8016) +#define ZCL_RX_TIER24_PRICE_LABEL_ATTRIBUTE_ID (0x8017) +#define ZCL_RX_TIER25_PRICE_LABEL_ATTRIBUTE_ID (0x8018) +#define ZCL_RX_TIER26_PRICE_LABEL_ATTRIBUTE_ID (0x8019) +#define ZCL_RX_TIER27_PRICE_LABEL_ATTRIBUTE_ID (0x801A) +#define ZCL_RX_TIER28_PRICE_LABEL_ATTRIBUTE_ID (0x801B) +#define ZCL_RX_TIER29_PRICE_LABEL_ATTRIBUTE_ID (0x801C) +#define ZCL_RX_TIER30_PRICE_LABEL_ATTRIBUTE_ID (0x801D) +#define ZCL_RX_TIER31_PRICE_LABEL_ATTRIBUTE_ID (0x801E) +#define ZCL_RX_TIER32_PRICE_LABEL_ATTRIBUTE_ID (0x801F) +#define ZCL_RX_TIER33_PRICE_LABEL_ATTRIBUTE_ID (0x8020) +#define ZCL_RX_TIER34_PRICE_LABEL_ATTRIBUTE_ID (0x8021) +#define ZCL_RX_TIER35_PRICE_LABEL_ATTRIBUTE_ID (0x8022) +#define ZCL_RX_TIER36_PRICE_LABEL_ATTRIBUTE_ID (0x8023) +#define ZCL_RX_TIER37_PRICE_LABEL_ATTRIBUTE_ID (0x8024) +#define ZCL_RX_TIER38_PRICE_LABEL_ATTRIBUTE_ID (0x8025) +#define ZCL_RX_TIER39_PRICE_LABEL_ATTRIBUTE_ID (0x8026) +#define ZCL_RX_TIER40_PRICE_LABEL_ATTRIBUTE_ID (0x8027) +#define ZCL_RX_TIER41_PRICE_LABEL_ATTRIBUTE_ID (0x8028) +#define ZCL_RX_TIER42_PRICE_LABEL_ATTRIBUTE_ID (0x8029) +#define ZCL_RX_TIER43_PRICE_LABEL_ATTRIBUTE_ID (0x802A) +#define ZCL_RX_TIER44_PRICE_LABEL_ATTRIBUTE_ID (0x802B) +#define ZCL_RX_TIER45_PRICE_LABEL_ATTRIBUTE_ID (0x802C) +#define ZCL_RX_TIER46_PRICE_LABEL_ATTRIBUTE_ID (0x802D) +#define ZCL_RX_TIER47_PRICE_LABEL_ATTRIBUTE_ID (0x802E) +#define ZCL_RX_TIER48_PRICE_LABEL_ATTRIBUTE_ID (0x802F) +#define ZCL_RX_BLOCK1_THRESHOLD_ATTRIBUTE_ID (0x8100) +#define ZCL_RX_BLOCK2_THRESHOLD_ATTRIBUTE_ID (0x8101) +#define ZCL_RX_BLOCK3_THRESHOLD_ATTRIBUTE_ID (0x8102) +#define ZCL_RX_BLOCK4_THRESHOLD_ATTRIBUTE_ID (0x8103) +#define ZCL_RX_BLOCK5_THRESHOLD_ATTRIBUTE_ID (0x8104) +#define ZCL_RX_BLOCK6_THRESHOLD_ATTRIBUTE_ID (0x8105) +#define ZCL_RX_BLOCK7_THRESHOLD_ATTRIBUTE_ID (0x8106) +#define ZCL_RX_BLOCK8_THRESHOLD_ATTRIBUTE_ID (0x8107) +#define ZCL_RX_BLOCK9_THRESHOLD_ATTRIBUTE_ID (0x8108) +#define ZCL_RX_BLOCK10_THRESHOLD_ATTRIBUTE_ID (0x8109) +#define ZCL_RX_BLOCK11_THRESHOLD_ATTRIBUTE_ID (0x810A) +#define ZCL_RX_BLOCK12_THRESHOLD_ATTRIBUTE_ID (0x810B) +#define ZCL_RX_BLOCK13_THRESHOLD_ATTRIBUTE_ID (0x810C) +#define ZCL_RX_BLOCK14_THRESHOLD_ATTRIBUTE_ID (0x810D) +#define ZCL_RX_BLOCK15_THRESHOLD_ATTRIBUTE_ID (0x810E) +#define ZCL_RX_START_OF_BLOCK_PERIOD_ATTRIBUTE_ID (0x8200) +#define ZCL_RX_BLOCK_PERIOD_DURATION_ATTRIBUTE_ID (0x8201) +#define ZCL_RX_THRESHOLD_MULTIPLIER_ATTRIBUTE_ID (0x8202) +#define ZCL_RX_THRESHOLD_DIVISOR_ATTRIBUTE_ID (0x8203) +#define ZCL_RX_NO_TIER_BLOCK1_PRICE_ATTRIBUTE_ID (0x8400) +#define ZCL_RX_NO_TIER_BLOCK2_PRICE_ATTRIBUTE_ID (0x8401) +#define ZCL_RX_NO_TIER_BLOCK3_PRICE_ATTRIBUTE_ID (0x8402) +#define ZCL_RX_NO_TIER_BLOCK4_PRICE_ATTRIBUTE_ID (0x8403) +#define ZCL_RX_NO_TIER_BLOCK5_PRICE_ATTRIBUTE_ID (0x8404) +#define ZCL_RX_NO_TIER_BLOCK6_PRICE_ATTRIBUTE_ID (0x8405) +#define ZCL_RX_NO_TIER_BLOCK7_PRICE_ATTRIBUTE_ID (0x8406) +#define ZCL_RX_NO_TIER_BLOCK8_PRICE_ATTRIBUTE_ID (0x8407) +#define ZCL_RX_NO_TIER_BLOCK9_PRICE_ATTRIBUTE_ID (0x8408) +#define ZCL_RX_NO_TIER_BLOCK10_PRICE_ATTRIBUTE_ID (0x8409) +#define ZCL_RX_NO_TIER_BLOCK11_PRICE_ATTRIBUTE_ID (0x840A) +#define ZCL_RX_NO_TIER_BLOCK12_PRICE_ATTRIBUTE_ID (0x840B) +#define ZCL_RX_NO_TIER_BLOCK13_PRICE_ATTRIBUTE_ID (0x840C) +#define ZCL_RX_NO_TIER_BLOCK14_PRICE_ATTRIBUTE_ID (0x840D) +#define ZCL_RX_NO_TIER_BLOCK15_PRICE_ATTRIBUTE_ID (0x840E) +#define ZCL_RX_NO_TIER_BLOCK16_PRICE_ATTRIBUTE_ID (0x840F) +#define ZCL_RX_TIER1_BLOCK1_PRICE_ATTRIBUTE_ID (0x8410) +#define ZCL_RX_TIER1_BLOCK2_PRICE_ATTRIBUTE_ID (0x8411) +#define ZCL_RX_TIER1_BLOCK3_PRICE_ATTRIBUTE_ID (0x8412) +#define ZCL_RX_TIER1_BLOCK4_PRICE_ATTRIBUTE_ID (0x8413) +#define ZCL_RX_TIER1_BLOCK5_PRICE_ATTRIBUTE_ID (0x8414) +#define ZCL_RX_TIER1_BLOCK6_PRICE_ATTRIBUTE_ID (0x8415) +#define ZCL_RX_TIER1_BLOCK7_PRICE_ATTRIBUTE_ID (0x8416) +#define ZCL_RX_TIER1_BLOCK8_PRICE_ATTRIBUTE_ID (0x8417) +#define ZCL_RX_TIER1_BLOCK9_PRICE_ATTRIBUTE_ID (0x8418) +#define ZCL_RX_TIER1_BLOCK10_PRICE_ATTRIBUTE_ID (0x8419) +#define ZCL_RX_TIER1_BLOCK11_PRICE_ATTRIBUTE_ID (0x841A) +#define ZCL_RX_TIER1_BLOCK12_PRICE_ATTRIBUTE_ID (0x841B) +#define ZCL_RX_TIER1_BLOCK13_PRICE_ATTRIBUTE_ID (0x841C) +#define ZCL_RX_TIER1_BLOCK14_PRICE_ATTRIBUTE_ID (0x841D) +#define ZCL_RX_TIER1_BLOCK15_PRICE_ATTRIBUTE_ID (0x841E) +#define ZCL_RX_TIER1_BLOCK16_PRICE_ATTRIBUTE_ID (0x841F) +#define ZCL_RX_TIER2_BLOCK1_PRICE_ATTRIBUTE_ID (0x8420) +#define ZCL_RX_TIER2_BLOCK2_PRICE_ATTRIBUTE_ID (0x8421) +#define ZCL_RX_TIER2_BLOCK3_PRICE_ATTRIBUTE_ID (0x8422) +#define ZCL_RX_TIER2_BLOCK4_PRICE_ATTRIBUTE_ID (0x8423) +#define ZCL_RX_TIER2_BLOCK5_PRICE_ATTRIBUTE_ID (0x8424) +#define ZCL_RX_TIER2_BLOCK6_PRICE_ATTRIBUTE_ID (0x8425) +#define ZCL_RX_TIER2_BLOCK7_PRICE_ATTRIBUTE_ID (0x8426) +#define ZCL_RX_TIER2_BLOCK8_PRICE_ATTRIBUTE_ID (0x8427) +#define ZCL_RX_TIER2_BLOCK9_PRICE_ATTRIBUTE_ID (0x8428) +#define ZCL_RX_TIER2_BLOCK10_PRICE_ATTRIBUTE_ID (0x8429) +#define ZCL_RX_TIER2_BLOCK11_PRICE_ATTRIBUTE_ID (0x842A) +#define ZCL_RX_TIER2_BLOCK12_PRICE_ATTRIBUTE_ID (0x842B) +#define ZCL_RX_TIER2_BLOCK13_PRICE_ATTRIBUTE_ID (0x842C) +#define ZCL_RX_TIER2_BLOCK14_PRICE_ATTRIBUTE_ID (0x842D) +#define ZCL_RX_TIER2_BLOCK15_PRICE_ATTRIBUTE_ID (0x842E) +#define ZCL_RX_TIER2_BLOCK16_PRICE_ATTRIBUTE_ID (0x842F) +#define ZCL_RX_TIER3_BLOCK1_PRICE_ATTRIBUTE_ID (0x8430) +#define ZCL_RX_TIER3_BLOCK2_PRICE_ATTRIBUTE_ID (0x8431) +#define ZCL_RX_TIER3_BLOCK3_PRICE_ATTRIBUTE_ID (0x8432) +#define ZCL_RX_TIER3_BLOCK4_PRICE_ATTRIBUTE_ID (0x8433) +#define ZCL_RX_TIER3_BLOCK5_PRICE_ATTRIBUTE_ID (0x8434) +#define ZCL_RX_TIER3_BLOCK6_PRICE_ATTRIBUTE_ID (0x8435) +#define ZCL_RX_TIER3_BLOCK7_PRICE_ATTRIBUTE_ID (0x8436) +#define ZCL_RX_TIER3_BLOCK8_PRICE_ATTRIBUTE_ID (0x8437) +#define ZCL_RX_TIER3_BLOCK9_PRICE_ATTRIBUTE_ID (0x8438) +#define ZCL_RX_TIER3_BLOCK10_PRICE_ATTRIBUTE_ID (0x8439) +#define ZCL_RX_TIER3_BLOCK11_PRICE_ATTRIBUTE_ID (0x843A) +#define ZCL_RX_TIER3_BLOCK12_PRICE_ATTRIBUTE_ID (0x843B) +#define ZCL_RX_TIER3_BLOCK13_PRICE_ATTRIBUTE_ID (0x843C) +#define ZCL_RX_TIER3_BLOCK14_PRICE_ATTRIBUTE_ID (0x843D) +#define ZCL_RX_TIER3_BLOCK15_PRICE_ATTRIBUTE_ID (0x843E) +#define ZCL_RX_TIER3_BLOCK16_PRICE_ATTRIBUTE_ID (0x843F) +#define ZCL_RX_TIER4_BLOCK1_PRICE_ATTRIBUTE_ID (0x8440) +#define ZCL_RX_TIER4_BLOCK2_PRICE_ATTRIBUTE_ID (0x8441) +#define ZCL_RX_TIER4_BLOCK3_PRICE_ATTRIBUTE_ID (0x8442) +#define ZCL_RX_TIER4_BLOCK4_PRICE_ATTRIBUTE_ID (0x8443) +#define ZCL_RX_TIER4_BLOCK5_PRICE_ATTRIBUTE_ID (0x8444) +#define ZCL_RX_TIER4_BLOCK6_PRICE_ATTRIBUTE_ID (0x8445) +#define ZCL_RX_TIER4_BLOCK7_PRICE_ATTRIBUTE_ID (0x8446) +#define ZCL_RX_TIER4_BLOCK8_PRICE_ATTRIBUTE_ID (0x8447) +#define ZCL_RX_TIER4_BLOCK9_PRICE_ATTRIBUTE_ID (0x8448) +#define ZCL_RX_TIER4_BLOCK10_PRICE_ATTRIBUTE_ID (0x8449) +#define ZCL_RX_TIER4_BLOCK11_PRICE_ATTRIBUTE_ID (0x844A) +#define ZCL_RX_TIER4_BLOCK12_PRICE_ATTRIBUTE_ID (0x844B) +#define ZCL_RX_TIER4_BLOCK13_PRICE_ATTRIBUTE_ID (0x844C) +#define ZCL_RX_TIER4_BLOCK14_PRICE_ATTRIBUTE_ID (0x844D) +#define ZCL_RX_TIER4_BLOCK15_PRICE_ATTRIBUTE_ID (0x844E) +#define ZCL_RX_TIER4_BLOCK16_PRICE_ATTRIBUTE_ID (0x844F) +#define ZCL_RX_TIER5_BLOCK1_PRICE_ATTRIBUTE_ID (0x8450) +#define ZCL_RX_TIER5_BLOCK2_PRICE_ATTRIBUTE_ID (0x8451) +#define ZCL_RX_TIER5_BLOCK3_PRICE_ATTRIBUTE_ID (0x8452) +#define ZCL_RX_TIER5_BLOCK4_PRICE_ATTRIBUTE_ID (0x8453) +#define ZCL_RX_TIER5_BLOCK5_PRICE_ATTRIBUTE_ID (0x8454) +#define ZCL_RX_TIER5_BLOCK6_PRICE_ATTRIBUTE_ID (0x8455) +#define ZCL_RX_TIER5_BLOCK7_PRICE_ATTRIBUTE_ID (0x8456) +#define ZCL_RX_TIER5_BLOCK8_PRICE_ATTRIBUTE_ID (0x8457) +#define ZCL_RX_TIER5_BLOCK9_PRICE_ATTRIBUTE_ID (0x8458) +#define ZCL_RX_TIER5_BLOCK10_PRICE_ATTRIBUTE_ID (0x8459) +#define ZCL_RX_TIER5_BLOCK11_PRICE_ATTRIBUTE_ID (0x845A) +#define ZCL_RX_TIER5_BLOCK12_PRICE_ATTRIBUTE_ID (0x845B) +#define ZCL_RX_TIER5_BLOCK13_PRICE_ATTRIBUTE_ID (0x845C) +#define ZCL_RX_TIER5_BLOCK14_PRICE_ATTRIBUTE_ID (0x845D) +#define ZCL_RX_TIER5_BLOCK15_PRICE_ATTRIBUTE_ID (0x845E) +#define ZCL_RX_TIER5_BLOCK16_PRICE_ATTRIBUTE_ID (0x845F) +#define ZCL_RX_TIER6_BLOCK1_PRICE_ATTRIBUTE_ID (0x8460) +#define ZCL_RX_TIER6_BLOCK2_PRICE_ATTRIBUTE_ID (0x8461) +#define ZCL_RX_TIER6_BLOCK3_PRICE_ATTRIBUTE_ID (0x8462) +#define ZCL_RX_TIER6_BLOCK4_PRICE_ATTRIBUTE_ID (0x8463) +#define ZCL_RX_TIER6_BLOCK5_PRICE_ATTRIBUTE_ID (0x8464) +#define ZCL_RX_TIER6_BLOCK6_PRICE_ATTRIBUTE_ID (0x8465) +#define ZCL_RX_TIER6_BLOCK7_PRICE_ATTRIBUTE_ID (0x8466) +#define ZCL_RX_TIER6_BLOCK8_PRICE_ATTRIBUTE_ID (0x8467) +#define ZCL_RX_TIER6_BLOCK9_PRICE_ATTRIBUTE_ID (0x8468) +#define ZCL_RX_TIER6_BLOCK10_PRICE_ATTRIBUTE_ID (0x8469) +#define ZCL_RX_TIER6_BLOCK11_PRICE_ATTRIBUTE_ID (0x846A) +#define ZCL_RX_TIER6_BLOCK12_PRICE_ATTRIBUTE_ID (0x846B) +#define ZCL_RX_TIER6_BLOCK13_PRICE_ATTRIBUTE_ID (0x846C) +#define ZCL_RX_TIER6_BLOCK14_PRICE_ATTRIBUTE_ID (0x846D) +#define ZCL_RX_TIER6_BLOCK15_PRICE_ATTRIBUTE_ID (0x846E) +#define ZCL_RX_TIER6_BLOCK16_PRICE_ATTRIBUTE_ID (0x846F) +#define ZCL_RX_TIER7_BLOCK1_PRICE_ATTRIBUTE_ID (0x8470) +#define ZCL_RX_TIER7_BLOCK2_PRICE_ATTRIBUTE_ID (0x8471) +#define ZCL_RX_TIER7_BLOCK3_PRICE_ATTRIBUTE_ID (0x8472) +#define ZCL_RX_TIER7_BLOCK4_PRICE_ATTRIBUTE_ID (0x8473) +#define ZCL_RX_TIER7_BLOCK5_PRICE_ATTRIBUTE_ID (0x8474) +#define ZCL_RX_TIER7_BLOCK6_PRICE_ATTRIBUTE_ID (0x8475) +#define ZCL_RX_TIER7_BLOCK7_PRICE_ATTRIBUTE_ID (0x8476) +#define ZCL_RX_TIER7_BLOCK8_PRICE_ATTRIBUTE_ID (0x8477) +#define ZCL_RX_TIER7_BLOCK9_PRICE_ATTRIBUTE_ID (0x8478) +#define ZCL_RX_TIER7_BLOCK10_PRICE_ATTRIBUTE_ID (0x8479) +#define ZCL_RX_TIER7_BLOCK11_PRICE_ATTRIBUTE_ID (0x847A) +#define ZCL_RX_TIER7_BLOCK12_PRICE_ATTRIBUTE_ID (0x847B) +#define ZCL_RX_TIER7_BLOCK13_PRICE_ATTRIBUTE_ID (0x847C) +#define ZCL_RX_TIER7_BLOCK14_PRICE_ATTRIBUTE_ID (0x847D) +#define ZCL_RX_TIER7_BLOCK15_PRICE_ATTRIBUTE_ID (0x847E) +#define ZCL_RX_TIER7_BLOCK16_PRICE_ATTRIBUTE_ID (0x847F) +#define ZCL_RX_TIER8_BLOCK1_PRICE_ATTRIBUTE_ID (0x8480) +#define ZCL_RX_TIER8_BLOCK2_PRICE_ATTRIBUTE_ID (0x8481) +#define ZCL_RX_TIER8_BLOCK3_PRICE_ATTRIBUTE_ID (0x8482) +#define ZCL_RX_TIER8_BLOCK4_PRICE_ATTRIBUTE_ID (0x8483) +#define ZCL_RX_TIER8_BLOCK5_PRICE_ATTRIBUTE_ID (0x8484) +#define ZCL_RX_TIER8_BLOCK6_PRICE_ATTRIBUTE_ID (0x8485) +#define ZCL_RX_TIER8_BLOCK7_PRICE_ATTRIBUTE_ID (0x8486) +#define ZCL_RX_TIER8_BLOCK8_PRICE_ATTRIBUTE_ID (0x8487) +#define ZCL_RX_TIER8_BLOCK9_PRICE_ATTRIBUTE_ID (0x8488) +#define ZCL_RX_TIER8_BLOCK10_PRICE_ATTRIBUTE_ID (0x8489) +#define ZCL_RX_TIER8_BLOCK11_PRICE_ATTRIBUTE_ID (0x848A) +#define ZCL_RX_TIER8_BLOCK12_PRICE_ATTRIBUTE_ID (0x848B) +#define ZCL_RX_TIER8_BLOCK13_PRICE_ATTRIBUTE_ID (0x848C) +#define ZCL_RX_TIER8_BLOCK14_PRICE_ATTRIBUTE_ID (0x848D) +#define ZCL_RX_TIER8_BLOCK15_PRICE_ATTRIBUTE_ID (0x848E) +#define ZCL_RX_TIER8_BLOCK16_PRICE_ATTRIBUTE_ID (0x848F) +#define ZCL_RX_TIER9_BLOCK1_PRICE_ATTRIBUTE_ID (0x8490) +#define ZCL_RX_TIER9_BLOCK2_PRICE_ATTRIBUTE_ID (0x8491) +#define ZCL_RX_TIER9_BLOCK3_PRICE_ATTRIBUTE_ID (0x8492) +#define ZCL_RX_TIER9_BLOCK4_PRICE_ATTRIBUTE_ID (0x8493) +#define ZCL_RX_TIER9_BLOCK5_PRICE_ATTRIBUTE_ID (0x8494) +#define ZCL_RX_TIER9_BLOCK6_PRICE_ATTRIBUTE_ID (0x8495) +#define ZCL_RX_TIER9_BLOCK7_PRICE_ATTRIBUTE_ID (0x8496) +#define ZCL_RX_TIER9_BLOCK8_PRICE_ATTRIBUTE_ID (0x8497) +#define ZCL_RX_TIER9_BLOCK9_PRICE_ATTRIBUTE_ID (0x8498) +#define ZCL_RX_TIER9_BLOCK10_PRICE_ATTRIBUTE_ID (0x8499) +#define ZCL_RX_TIER9_BLOCK11_PRICE_ATTRIBUTE_ID (0x849A) +#define ZCL_RX_TIER9_BLOCK12_PRICE_ATTRIBUTE_ID (0x849B) +#define ZCL_RX_TIER9_BLOCK13_PRICE_ATTRIBUTE_ID (0x849C) +#define ZCL_RX_TIER9_BLOCK14_PRICE_ATTRIBUTE_ID (0x849D) +#define ZCL_RX_TIER9_BLOCK15_PRICE_ATTRIBUTE_ID (0x849E) +#define ZCL_RX_TIER9_BLOCK16_PRICE_ATTRIBUTE_ID (0x849F) +#define ZCL_RX_TIER10_BLOCK1_PRICE_ATTRIBUTE_ID (0x84A0) +#define ZCL_RX_TIER10_BLOCK2_PRICE_ATTRIBUTE_ID (0x84A1) +#define ZCL_RX_TIER10_BLOCK3_PRICE_ATTRIBUTE_ID (0x84A2) +#define ZCL_RX_TIER10_BLOCK4_PRICE_ATTRIBUTE_ID (0x84A3) +#define ZCL_RX_TIER10_BLOCK5_PRICE_ATTRIBUTE_ID (0x84A4) +#define ZCL_RX_TIER10_BLOCK6_PRICE_ATTRIBUTE_ID (0x84A5) +#define ZCL_RX_TIER10_BLOCK7_PRICE_ATTRIBUTE_ID (0x84A6) +#define ZCL_RX_TIER10_BLOCK8_PRICE_ATTRIBUTE_ID (0x84A7) +#define ZCL_RX_TIER10_BLOCK9_PRICE_ATTRIBUTE_ID (0x84A8) +#define ZCL_RX_TIER10_BLOCK10_PRICE_ATTRIBUTE_ID (0x84A9) +#define ZCL_RX_TIER10_BLOCK11_PRICE_ATTRIBUTE_ID (0x84AA) +#define ZCL_RX_TIER10_BLOCK12_PRICE_ATTRIBUTE_ID (0x84AB) +#define ZCL_RX_TIER10_BLOCK13_PRICE_ATTRIBUTE_ID (0x84AC) +#define ZCL_RX_TIER10_BLOCK14_PRICE_ATTRIBUTE_ID (0x84AD) +#define ZCL_RX_TIER10_BLOCK15_PRICE_ATTRIBUTE_ID (0x84AE) +#define ZCL_RX_TIER10_BLOCK16_PRICE_ATTRIBUTE_ID (0x84AF) +#define ZCL_RX_TIER11_BLOCK1_PRICE_ATTRIBUTE_ID (0x84B0) +#define ZCL_RX_TIER11_BLOCK2_PRICE_ATTRIBUTE_ID (0x84B1) +#define ZCL_RX_TIER11_BLOCK3_PRICE_ATTRIBUTE_ID (0x84B2) +#define ZCL_RX_TIER11_BLOCK4_PRICE_ATTRIBUTE_ID (0x84B3) +#define ZCL_RX_TIER11_BLOCK5_PRICE_ATTRIBUTE_ID (0x84B4) +#define ZCL_RX_TIER11_BLOCK6_PRICE_ATTRIBUTE_ID (0x84B5) +#define ZCL_RX_TIER11_BLOCK7_PRICE_ATTRIBUTE_ID (0x84B6) +#define ZCL_RX_TIER11_BLOCK8_PRICE_ATTRIBUTE_ID (0x84B7) +#define ZCL_RX_TIER11_BLOCK9_PRICE_ATTRIBUTE_ID (0x84B8) +#define ZCL_RX_TIER11_BLOCK10_PRICE_ATTRIBUTE_ID (0x84B9) +#define ZCL_RX_TIER11_BLOCK11_PRICE_ATTRIBUTE_ID (0x84BA) +#define ZCL_RX_TIER11_BLOCK12_PRICE_ATTRIBUTE_ID (0x84BB) +#define ZCL_RX_TIER11_BLOCK13_PRICE_ATTRIBUTE_ID (0x84BC) +#define ZCL_RX_TIER11_BLOCK14_PRICE_ATTRIBUTE_ID (0x84BD) +#define ZCL_RX_TIER11_BLOCK15_PRICE_ATTRIBUTE_ID (0x84BE) +#define ZCL_RX_TIER11_BLOCK16_PRICE_ATTRIBUTE_ID (0x84BF) +#define ZCL_RX_TIER12_BLOCK1_PRICE_ATTRIBUTE_ID (0x84C0) +#define ZCL_RX_TIER12_BLOCK2_PRICE_ATTRIBUTE_ID (0x84C1) +#define ZCL_RX_TIER12_BLOCK3_PRICE_ATTRIBUTE_ID (0x84C2) +#define ZCL_RX_TIER12_BLOCK4_PRICE_ATTRIBUTE_ID (0x84C3) +#define ZCL_RX_TIER12_BLOCK5_PRICE_ATTRIBUTE_ID (0x84C4) +#define ZCL_RX_TIER12_BLOCK6_PRICE_ATTRIBUTE_ID (0x84C5) +#define ZCL_RX_TIER12_BLOCK7_PRICE_ATTRIBUTE_ID (0x84C6) +#define ZCL_RX_TIER12_BLOCK8_PRICE_ATTRIBUTE_ID (0x84C7) +#define ZCL_RX_TIER12_BLOCK9_PRICE_ATTRIBUTE_ID (0x84C8) +#define ZCL_RX_TIER12_BLOCK10_PRICE_ATTRIBUTE_ID (0x84C9) +#define ZCL_RX_TIER12_BLOCK11_PRICE_ATTRIBUTE_ID (0x84CA) +#define ZCL_RX_TIER12_BLOCK12_PRICE_ATTRIBUTE_ID (0x84CB) +#define ZCL_RX_TIER12_BLOCK13_PRICE_ATTRIBUTE_ID (0x84CC) +#define ZCL_RX_TIER12_BLOCK14_PRICE_ATTRIBUTE_ID (0x84CD) +#define ZCL_RX_TIER12_BLOCK15_PRICE_ATTRIBUTE_ID (0x84CE) +#define ZCL_RX_TIER12_BLOCK16_PRICE_ATTRIBUTE_ID (0x84CF) +#define ZCL_RX_TIER13_BLOCK1_PRICE_ATTRIBUTE_ID (0x84D0) +#define ZCL_RX_TIER13_BLOCK2_PRICE_ATTRIBUTE_ID (0x84D1) +#define ZCL_RX_TIER13_BLOCK3_PRICE_ATTRIBUTE_ID (0x84D2) +#define ZCL_RX_TIER13_BLOCK4_PRICE_ATTRIBUTE_ID (0x84D3) +#define ZCL_RX_TIER13_BLOCK5_PRICE_ATTRIBUTE_ID (0x84D4) +#define ZCL_RX_TIER13_BLOCK6_PRICE_ATTRIBUTE_ID (0x84D5) +#define ZCL_RX_TIER13_BLOCK7_PRICE_ATTRIBUTE_ID (0x84D6) +#define ZCL_RX_TIER13_BLOCK8_PRICE_ATTRIBUTE_ID (0x84D7) +#define ZCL_RX_TIER13_BLOCK9_PRICE_ATTRIBUTE_ID (0x84D8) +#define ZCL_RX_TIER13_BLOCK10_PRICE_ATTRIBUTE_ID (0x84D9) +#define ZCL_RX_TIER13_BLOCK11_PRICE_ATTRIBUTE_ID (0x84DA) +#define ZCL_RX_TIER13_BLOCK12_PRICE_ATTRIBUTE_ID (0x84DB) +#define ZCL_RX_TIER13_BLOCK13_PRICE_ATTRIBUTE_ID (0x84DC) +#define ZCL_RX_TIER13_BLOCK14_PRICE_ATTRIBUTE_ID (0x84DD) +#define ZCL_RX_TIER13_BLOCK15_PRICE_ATTRIBUTE_ID (0x84DE) +#define ZCL_RX_TIER13_BLOCK16_PRICE_ATTRIBUTE_ID (0x84DF) +#define ZCL_RX_TIER14_BLOCK1_PRICE_ATTRIBUTE_ID (0x84E0) +#define ZCL_RX_TIER14_BLOCK2_PRICE_ATTRIBUTE_ID (0x84E1) +#define ZCL_RX_TIER14_BLOCK3_PRICE_ATTRIBUTE_ID (0x84E2) +#define ZCL_RX_TIER14_BLOCK4_PRICE_ATTRIBUTE_ID (0x84E3) +#define ZCL_RX_TIER14_BLOCK5_PRICE_ATTRIBUTE_ID (0x84E4) +#define ZCL_RX_TIER14_BLOCK6_PRICE_ATTRIBUTE_ID (0x84E5) +#define ZCL_RX_TIER14_BLOCK7_PRICE_ATTRIBUTE_ID (0x84E6) +#define ZCL_RX_TIER14_BLOCK8_PRICE_ATTRIBUTE_ID (0x84E7) +#define ZCL_RX_TIER14_BLOCK9_PRICE_ATTRIBUTE_ID (0x84E8) +#define ZCL_RX_TIER14_BLOCK10_PRICE_ATTRIBUTE_ID (0x84E9) +#define ZCL_RX_TIER14_BLOCK11_PRICE_ATTRIBUTE_ID (0x84EA) +#define ZCL_RX_TIER14_BLOCK12_PRICE_ATTRIBUTE_ID (0x84EB) +#define ZCL_RX_TIER14_BLOCK13_PRICE_ATTRIBUTE_ID (0x84EC) +#define ZCL_RX_TIER14_BLOCK14_PRICE_ATTRIBUTE_ID (0x84ED) +#define ZCL_RX_TIER14_BLOCK15_PRICE_ATTRIBUTE_ID (0x84EE) +#define ZCL_RX_TIER14_BLOCK16_PRICE_ATTRIBUTE_ID (0x84EF) +#define ZCL_RX_TIER15_BLOCK1_PRICE_ATTRIBUTE_ID (0x84F0) +#define ZCL_RX_TIER15_BLOCK2_PRICE_ATTRIBUTE_ID (0x84F1) +#define ZCL_RX_TIER15_BLOCK3_PRICE_ATTRIBUTE_ID (0x84F2) +#define ZCL_RX_TIER15_BLOCK4_PRICE_ATTRIBUTE_ID (0x84F3) +#define ZCL_RX_TIER15_BLOCK5_PRICE_ATTRIBUTE_ID (0x84F4) +#define ZCL_RX_TIER15_BLOCK6_PRICE_ATTRIBUTE_ID (0x84F5) +#define ZCL_RX_TIER15_BLOCK7_PRICE_ATTRIBUTE_ID (0x84F6) +#define ZCL_RX_TIER15_BLOCK8_PRICE_ATTRIBUTE_ID (0x84F7) +#define ZCL_RX_TIER15_BLOCK9_PRICE_ATTRIBUTE_ID (0x84F8) +#define ZCL_RX_TIER15_BLOCK10_PRICE_ATTRIBUTE_ID (0x84F9) +#define ZCL_RX_TIER15_BLOCK11_PRICE_ATTRIBUTE_ID (0x84FA) +#define ZCL_RX_TIER15_BLOCK12_PRICE_ATTRIBUTE_ID (0x84FB) +#define ZCL_RX_TIER15_BLOCK13_PRICE_ATTRIBUTE_ID (0x84FC) +#define ZCL_RX_TIER15_BLOCK14_PRICE_ATTRIBUTE_ID (0x84FD) +#define ZCL_RX_TIER15_BLOCK15_PRICE_ATTRIBUTE_ID (0x84FE) +#define ZCL_RX_TIER15_BLOCK16_PRICE_ATTRIBUTE_ID (0x84FF) +#define ZCL_RX_PRICE_TIER16_ATTRIBUTE_ID (0x850F) +#define ZCL_RX_PRICE_TIER17_ATTRIBUTE_ID (0x8510) +#define ZCL_RX_PRICE_TIER18_ATTRIBUTE_ID (0x8511) +#define ZCL_RX_PRICE_TIER19_ATTRIBUTE_ID (0x8512) +#define ZCL_RX_PRICE_TIER20_ATTRIBUTE_ID (0x8513) +#define ZCL_RX_PRICE_TIER21_ATTRIBUTE_ID (0x8514) +#define ZCL_RX_PRICE_TIER22_ATTRIBUTE_ID (0x8515) +#define ZCL_RX_PRICE_TIER23_ATTRIBUTE_ID (0x8516) +#define ZCL_RX_PRICE_TIER24_ATTRIBUTE_ID (0x8517) +#define ZCL_RX_PRICE_TIER25_ATTRIBUTE_ID (0x8518) +#define ZCL_RX_PRICE_TIER26_ATTRIBUTE_ID (0x8519) +#define ZCL_RX_PRICE_TIER27_ATTRIBUTE_ID (0x851A) +#define ZCL_RX_PRICE_TIER28_ATTRIBUTE_ID (0x851B) +#define ZCL_RX_PRICE_TIER29_ATTRIBUTE_ID (0x851C) +#define ZCL_RX_PRICE_TIER30_ATTRIBUTE_ID (0x851D) +#define ZCL_RX_PRICE_TIER31_ATTRIBUTE_ID (0x851E) +#define ZCL_RX_PRICE_TIER32_ATTRIBUTE_ID (0x851F) +#define ZCL_RX_PRICE_TIER33_ATTRIBUTE_ID (0x8520) +#define ZCL_RX_PRICE_TIER34_ATTRIBUTE_ID (0x8521) +#define ZCL_RX_PRICE_TIER35_ATTRIBUTE_ID (0x8522) +#define ZCL_RX_PRICE_TIER36_ATTRIBUTE_ID (0x8523) +#define ZCL_RX_PRICE_TIER37_ATTRIBUTE_ID (0x8524) +#define ZCL_RX_PRICE_TIER38_ATTRIBUTE_ID (0x8525) +#define ZCL_RX_PRICE_TIER39_ATTRIBUTE_ID (0x8526) +#define ZCL_RX_PRICE_TIER40_ATTRIBUTE_ID (0x8527) +#define ZCL_RX_PRICE_TIER41_ATTRIBUTE_ID (0x8528) +#define ZCL_RX_PRICE_TIER42_ATTRIBUTE_ID (0x8529) +#define ZCL_RX_PRICE_TIER43_ATTRIBUTE_ID (0x852A) +#define ZCL_RX_PRICE_TIER44_ATTRIBUTE_ID (0x852B) +#define ZCL_RX_PRICE_TIER45_ATTRIBUTE_ID (0x852C) +#define ZCL_RX_PRICE_TIER46_ATTRIBUTE_ID (0x852D) +#define ZCL_RX_PRICE_TIER47_ATTRIBUTE_ID (0x852E) +#define ZCL_RX_PRICE_TIER48_ATTRIBUTE_ID (0x852F) +#define ZCL_RX_TARIFF_LABEL_ATTRIBUTE_ID (0x8610) +#define ZCL_RX_NUMBER_OF_PRICE_TIERS_IN_USE_ATTRIBUTE_ID (0x8611) +#define ZCL_RX_NUMBER_OF_BLOCK_THRESHOLDS_IN_USE_ATTRIBUTE_ID (0x8612) +#define ZCL_RX_TIER_BLOCK_MODE_ATTRIBUTE_ID (0x8613) +#define ZCL_RX_TARIFF_RESOLUTION_PERIOD_ATTRIBUTE_ID (0x8615) +#define ZCL_RX_CO2_ATTRIBUTE_ID (0x8625) +#define ZCL_RX_CO2_UNIT_ATTRIBUTE_ID (0x8626) +#define ZCL_RX_CO2_TRAILING_DIGIT_ATTRIBUTE_ID (0x8627) +#define ZCL_RX_CURRENT_BILLING_PERIOD_START_ATTRIBUTE_ID (0x8700) +#define ZCL_RX_CURRENT_BILLING_PERIOD_DURATION_ATTRIBUTE_ID (0x8701) +#define ZCL_RX_LAST_BILLING_PERIOD_START_ATTRIBUTE_ID (0x8702) +#define ZCL_RX_LAST_BILLING_PERIOD_DURATION_ATTRIBUTE_ID (0x8703) +#define ZCL_RX_LAST_BILLING_PERIOD_CONSOLIDATED_BILL_ATTRIBUTE_ID (0x8704) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Demand Response and Load Control // Client attributes -#define ZCL_UTILITY_ENROLLMENT_GROUP_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_START_RANDOMIZATION_MINUTES_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_DURATION_RANDOMIZATION_MINUTES_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_DEVICE_CLASS_VALUE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_DEMAND_RESPONSE_LOAD_CONTROL_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_DEMAND_RESPONSE_LOAD_CONTROL_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_UTILITY_ENROLLMENT_GROUP_ATTRIBUTE_ID (0x0000) +#define ZCL_START_RANDOMIZATION_MINUTES_ATTRIBUTE_ID (0x0001) +#define ZCL_DURATION_RANDOMIZATION_MINUTES_ATTRIBUTE_ID (0x0002) +#define ZCL_DEVICE_CLASS_VALUE_ATTRIBUTE_ID (0x0003) +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_DEMAND_RESPONSE_LOAD_CONTROL_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_DEMAND_RESPONSE_LOAD_CONTROL_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) -// Attribute types for cluster: Simple Metering -// Cluster specification level: se-1.2b-15-0131-02 +// Attribute ids for cluster: Simple Metering // Client attributes -#define ZCL_FUNCTIONAL_NOTIFICATION_FLAGS_ATTRIBUTE_ID 0x0000 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_NOTIFICATION_FLAGS_2_ATTRIBUTE_ID 0x0001 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_NOTIFICATION_FLAGS_3_ATTRIBUTE_ID 0x0002 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_NOTIFICATION_FLAGS_4_ATTRIBUTE_ID 0x0003 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_NOTIFICATION_FLAGS_5_ATTRIBUTE_ID 0x0004 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_NOTIFICATION_FLAGS_6_ATTRIBUTE_ID 0x0005 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_NOTIFICATION_FLAGS_7_ATTRIBUTE_ID 0x0006 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_NOTIFICATION_FLAGS_8_ATTRIBUTE_ID 0x0007 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_SIMPLE_METERING_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_SIMPLE_METERING_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_FUNCTIONAL_NOTIFICATION_FLAGS_ATTRIBUTE_ID (0x0000) +#define ZCL_NOTIFICATION_FLAGS_2_ATTRIBUTE_ID (0x0001) +#define ZCL_NOTIFICATION_FLAGS_3_ATTRIBUTE_ID (0x0002) +#define ZCL_NOTIFICATION_FLAGS_4_ATTRIBUTE_ID (0x0003) +#define ZCL_NOTIFICATION_FLAGS_5_ATTRIBUTE_ID (0x0004) +#define ZCL_NOTIFICATION_FLAGS_6_ATTRIBUTE_ID (0x0005) +#define ZCL_NOTIFICATION_FLAGS_7_ATTRIBUTE_ID (0x0006) +#define ZCL_NOTIFICATION_FLAGS_8_ATTRIBUTE_ID (0x0007) +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_CURRENT_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_CURRENT_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_CURRENT_MAX_DEMAND_DELIVERED_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_CURRENT_MAX_DEMAND_RECEIVED_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_DFT_SUMMATION_ATTRIBUTE_ID 0x0004 // Ver.: always -#define ZCL_DAILY_FREEZE_TIME_ATTRIBUTE_ID 0x0005 // Ver.: always -#define ZCL_POWER_FACTOR_ATTRIBUTE_ID 0x0006 // Ver.: always -#define ZCL_READING_SNAP_SHOT_TIME_ATTRIBUTE_ID 0x0007 // Ver.: always -#define ZCL_CURRENT_MAX_DEMAND_DELIVERED_TIME_ATTRIBUTE_ID 0x0008 // Ver.: always -#define ZCL_CURRENT_MAX_DEMAND_RECEIVED_TIME_ATTRIBUTE_ID 0x0009 // Ver.: always -#define ZCL_DEFAULT_UPDATE_PERIOD_ATTRIBUTE_ID 0x000A // Ver.: since se-1.1-07-5356-16 -#define ZCL_FAST_POLL_UPDATE_PERIOD_ATTRIBUTE_ID 0x000B // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_BLOCK_PERIOD_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x000C // Ver.: since se-1.1-07-5356-16 -#define ZCL_DAILY_CONSUMPTION_TARGET_ATTRIBUTE_ID 0x000D // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_BLOCK_ATTRIBUTE_ID 0x000E // Ver.: since se-1.1-07-5356-16 -#define ZCL_PROFILE_INTERVAL_PERIOD_ATTRIBUTE_ID 0x000F // Ver.: since se-1.1-07-5356-16 -#define ZCL_INTERVAL_READ_REPORTING_PERIOD_ATTRIBUTE_ID 0x0010 // Ver.: since se-1.1-07-5356-16 -#define ZCL_PRESET_READING_TIME_ATTRIBUTE_ID 0x0011 // Ver.: since se-1.1-07-5356-16 -#define ZCL_VOLUME_PER_REPORT_ATTRIBUTE_ID 0x0012 // Ver.: since se-1.1-07-5356-16 -#define ZCL_FLOW_RESTRICTION_ATTRIBUTE_ID 0x0013 // Ver.: since se-1.1-07-5356-16 -#define ZCL_SUPPLY_STATUS_ATTRIBUTE_ID 0x0014 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_INLET_ENERGY_CARRIER_SUMMATION_ATTRIBUTE_ID 0x0015 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_OUTLET_ENERGY_CARRIER_SUMMATION_ATTRIBUTE_ID 0x0016 // Ver.: since se-1.1-07-5356-16 -#define ZCL_INLET_TEMPERATURE_ATTRIBUTE_ID 0x0017 // Ver.: since se-1.1-07-5356-16 -#define ZCL_OUTLET_TEMPERATURE_ATTRIBUTE_ID 0x0018 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CONTROL_TEMPERATURE_ATTRIBUTE_ID 0x0019 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_INLET_ENERGY_CARRIER_DEMAND_ATTRIBUTE_ID 0x001A // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_OUTLET_ENERGY_CARRIER_DEMAND_ATTRIBUTE_ID 0x001B // Ver.: since se-1.1-07-5356-16 -#define ZCL_PREVIOUS_BLOCK_PERIOD_CONSUMIPTION_DELIVERED_ATTRIBUTE_ID 0x001C // Ver.: since se-1.1b-07-5356-18 -#define ZCL_CURRENT_BLOCK_PERIOD_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x001D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_BLOCK_RECEIVED_ATTRIBUTE_ID 0x001E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_DFT_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x001F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_ACTIVE_REGISTER_TIER_DELIVERED_ATTRIBUTE_ID 0x0020 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_ACTIVE_REGISTER_TIER_RECEIVED_ATTRIBUTE_ID 0x0021 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_LAST_BLOCK_SWITCH_TIME_ATTRIBUTE_ID 0x0022 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER1_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0100 // Ver.: always -#define ZCL_CURRENT_TIER1_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0101 // Ver.: always -#define ZCL_CURRENT_TIER2_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0102 // Ver.: always -#define ZCL_CURRENT_TIER2_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0103 // Ver.: always -#define ZCL_CURRENT_TIER3_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0104 // Ver.: always -#define ZCL_CURRENT_TIER3_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0105 // Ver.: always -#define ZCL_CURRENT_TIER4_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0106 // Ver.: always -#define ZCL_CURRENT_TIER4_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0107 // Ver.: always -#define ZCL_CURRENT_TIER5_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0108 // Ver.: always -#define ZCL_CURRENT_TIER5_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0109 // Ver.: always -#define ZCL_CURRENT_TIER6_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x010A // Ver.: always -#define ZCL_CURRENT_TIER6_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x010B // Ver.: always -#define ZCL_CURRENT_TIER7_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x010C // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER7_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x010D // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER8_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x010E // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER8_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x010F // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER9_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0110 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER9_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0111 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER10_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0112 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER10_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0113 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER11_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0114 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER11_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0115 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER12_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0116 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER12_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0117 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER13_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0118 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER13_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0119 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER14_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x011A // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER14_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x011B // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER15_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x011C // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER15_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x011D // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER16_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x011E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER16_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x011F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER17_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0120 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER17_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0121 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER18_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0122 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER18_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0123 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER19_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0124 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER19_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0125 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER20_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0126 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER20_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0127 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER21_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0128 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER21_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0129 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER22_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x012A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER22_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x012B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER23_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x012C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER23_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x012D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER24_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x012E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER24_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x012F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER25_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0130 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER25_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0131 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER26_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0132 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER26_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0133 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER27_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0134 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER27_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0135 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER28_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0136 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER28_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0137 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER29_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0138 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER29_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0139 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER30_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x013A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER30_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x013B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER31_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x013C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER31_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x013D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER32_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x013E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER32_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x013F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER33_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0140 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER33_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0141 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER34_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0142 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER34_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0143 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER35_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0144 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER35_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0145 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER36_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0146 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER36_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0147 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER37_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0148 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER37_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0149 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER38_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x014A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER38_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x014B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER39_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x014C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER39_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x014D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER40_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x014E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER40_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x014F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER41_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0150 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER41_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0151 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER42_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0152 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER42_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0153 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER43_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0154 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER43_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0155 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER44_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0156 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER44_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0157 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER45_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0158 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER45_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0159 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER46_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x015A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER46_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x015B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER47_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x015C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER47_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x015D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER48_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x015E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER48_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x015F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CPP1_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x01FC // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CPP2_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x01FE // Ver.: since se-1.2a-07-5356-19 -#define ZCL_STATUS_ATTRIBUTE_ID 0x0200 // Ver.: always -#define ZCL_REMAINING_BATTERY_LIFE_ATTRIBUTE_ID 0x0201 // Ver.: since se-1.1-07-5356-16 -#define ZCL_HOURS_IN_OPERATION_ATTRIBUTE_ID 0x0202 // Ver.: since se-1.1-07-5356-16 -#define ZCL_HOURS_IN_FAULT_ATTRIBUTE_ID 0x0203 // Ver.: since se-1.1-07-5356-16 -#define ZCL_EXTENDED_STATUS_ATTRIBUTE_ID 0x0204 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_REMAINING_BATTERY_LIFE_IN_DAYS_ATTRIBUTE_ID 0x0205 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_METER_ID_ATTRIBUTE_ID 0x0206 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_AMBIENT_CONSUMPTION_INDICATOR_ATTRIBUTE_ID 0x0207 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_UNIT_OF_MEASURE_ATTRIBUTE_ID 0x0300 // Ver.: always -#define ZCL_MULTIPLIER_ATTRIBUTE_ID 0x0301 // Ver.: always -#define ZCL_DIVISOR_ATTRIBUTE_ID 0x0302 // Ver.: always -#define ZCL_SUMMATION_FORMATTING_ATTRIBUTE_ID 0x0303 // Ver.: always -#define ZCL_DEMAND_FORMATTING_ATTRIBUTE_ID 0x0304 // Ver.: always -#define ZCL_HISTORICAL_CONSUMPTION_FORMATTING_ATTRIBUTE_ID 0x0305 // Ver.: always -#define ZCL_METERING_DEVICE_TYPE_ATTRIBUTE_ID 0x0306 // Ver.: always -#define ZCL_SITE_ID_ATTRIBUTE_ID 0x0307 // Ver.: since se-1.1-07-5356-16 -#define ZCL_METER_SERIAL_NUMBER_ATTRIBUTE_ID 0x0308 // Ver.: since se-1.1-07-5356-16 -#define ZCL_ENERGY_CARRIER_UNIT_OF_MEASURE_ATTRIBUTE_ID 0x0309 // Ver.: since se-1.1-07-5356-16 -#define ZCL_ENERGY_CARRIER_SUMMATION_FORMATTING_ATTRIBUTE_ID 0x030A // Ver.: since se-1.1-07-5356-16 -#define ZCL_ENERGY_CARRIER_DEMAND_FORMATTING_ATTRIBUTE_ID 0x030B // Ver.: since se-1.1-07-5356-16 -#define ZCL_TEMPERATURE_UNIT_OF_MEASURE_ATTRIBUTE_ID 0x030C // Ver.: since se-1.1-07-5356-16 -#define ZCL_TEMPERATURE_FORMATTING_ATTRIBUTE_ID 0x030D // Ver.: since se-1.1-07-5356-16 -#define ZCL_MODULE_SERIAL_NUMBER_ATTRIBUTE_ID 0x030E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_OPERATING_TARIFF_LABEL_DELIVERED_ATTRIBUTE_ID 0x030F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_OPERATING_TARIFF_LABEL_RECEIVED_ATTRIBUTE_ID 0x0310 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CUSTOMER_ID_NUMBER_ATTRIBUTE_ID 0x0311 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_ALTERNATIVE_UNIT_OF_MEASURE_ATTRIBUTE_ID 0x0312 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_ALTERNATIVE_DEMAND_FORMATTING_ATTRIBUTE_ID 0x0313 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_ALTERNATIVE_CONSUMPTION_FORMATTING_ATTRIBUTE_ID 0x0314 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_INSTANTANEOUS_DEMAND_ATTRIBUTE_ID 0x0400 // Ver.: always -#define ZCL_CURRENT_DAY_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0401 // Ver.: always -#define ZCL_CURRENT_DAY_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0402 // Ver.: always -#define ZCL_PREVIOUS_DAY_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0403 // Ver.: always -#define ZCL_PREVIOUS_DAY_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0404 // Ver.: always -#define ZCL_CURRENT_PARTIAL_PROFILE_INTERVAL_START_TIME_DELIVERED_ATTRIBUTE_ID 0x0405 // Ver.: always -#define ZCL_CURRENT_PARTIAL_PROFILE_INTERVAL_START_TIME_RECEIVED_ATTRIBUTE_ID 0x0406 // Ver.: always -#define ZCL_CURRENT_PARTIAL_PROFILE_INTERVAL_VALUE_DELIVERED_ATTRIBUTE_ID 0x0407 // Ver.: always -#define ZCL_CURRENT_PARTIAL_PROFILE_INTERVAL_VALUE_RECEIVED_ATTRIBUTE_ID 0x0408 // Ver.: always -#define ZCL_CURRENT_DAY_MAX_PRESSURE_ATTRIBUTE_ID 0x0409 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_DAY_MIN_PRESSURE_ATTRIBUTE_ID 0x040A // Ver.: since se-1.1-07-5356-16 -#define ZCL_PREVIOUS_DAY_MAX_PRESSURE_ATTRIBUTE_ID 0x040B // Ver.: since se-1.1-07-5356-16 -#define ZCL_PREVIOUS_DAY_MIN_PRESSURE_ATTRIBUTE_ID 0x040C // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_DAY_MAX_DEMAND_ATTRIBUTE_ID 0x040D // Ver.: since se-1.1-07-5356-16 -#define ZCL_PREVIOUS_DAY_MAX_DEMAND_ATTRIBUTE_ID 0x040E // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_MONTH_MAX_DEMAND_ATTRIBUTE_ID 0x040F // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_YEAR_MAX_DEMAND_ATTRIBUTE_ID 0x0410 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_DAY_MAX_ENERGY_CARRIER_DEMAND_ATTRIBUTE_ID 0x0411 // Ver.: since se-1.1-07-5356-16 -#define ZCL_PREVIOUS_DAY_MAX_ENERGY_CARRIER_DEMAND_ATTRIBUTE_ID 0x0412 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_MONTH_MAX_ENERGY_CARRIER_DEMAND_ATTRIBUTE_ID 0x0413 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_MONTH_MIN_ENERGY_CARRIER_DEMAND_ATTRIBUTE_ID 0x0414 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_YEAR_MAX_ENERGY_CARRIER_DEMAND_ATTRIBUTE_ID 0x0415 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_YEAR_MIN_ENERGY_CARRIER_DEMAND_ATTRIBUTE_ID 0x0416 // Ver.: since se-1.1-07-5356-16 -#define ZCL_PREVIOUS_DAY2_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0420 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY2_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0421 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY3_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0422 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY3_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0423 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY4_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0424 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY4_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0425 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY5_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0426 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY5_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0427 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY6_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0428 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY6_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0429 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY7_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x042A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY7_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x042B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY8_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x042C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY8_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x042D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_WEEK_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0430 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_WEEK_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0431 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_WEEK_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0432 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_WEEK_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0433 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_WEEK2_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0434 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_WEEK2_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0435 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_WEEK3_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0436 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_WEEK3_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0437 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_WEEK4_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0438 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_WEEK4_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0439 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_WEEK5_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x043A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_WEEK5_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x043B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_MONTH_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0440 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_MONTH_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0441 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0442 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0443 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH2_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0444 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH2_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0445 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH3_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0446 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH3_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0447 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH4_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0448 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH4_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0449 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH5_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x044A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH5_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x044B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH6_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x044C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH6_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x044D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH7_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x044E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH7_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x044F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH8_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0450 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH8_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0451 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH9_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0452 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH9_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0453 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH10_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0454 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH10_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0455 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH11_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0456 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH11_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0457 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH12_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0458 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH12_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0459 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH13_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x045A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH13_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x045B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_METERING_HISTORICAL_FREEZE_TIME_ATTRIBUTE_ID 0x045C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_DAY_MAX_DEMAND_DELIVERED_ATTRIBUTE_ID 0x045D // Ver.: since se-1.4-17-05019-001 -#define ZCL_CURRENT_DAY_MAX_DEMAND_DELIVERED_TIME_ATTRIBUTE_ID 0x045E // Ver.: since se-1.4-17-05019-001 -#define ZCL_CURRENT_DAY_MAX_DEMAND_RECEIVED_ATTRIBUTE_ID 0x045F // Ver.: since se-1.4-17-05019-001 -#define ZCL_CURRENT_DAY_MAX_DEMAND_RECEIVED_TIME_ATTRIBUTE_ID 0x0460 // Ver.: since se-1.4-17-05019-001 -#define ZCL_PREVIOUS_DAY_MAX_DEMAND_DELIVERED_ATTRIBUTE_ID 0x0461 // Ver.: since se-1.4-17-05019-001 -#define ZCL_PREVIOUS_DAY_MAX_DEMAND_DELIVERED_TIME_ATTRIBUTE_ID 0x0462 // Ver.: since se-1.4-17-05019-001 -#define ZCL_PREVIOUS_DAY_MAX_DEMAND_RECEIVED_ATTRIBUTE_ID 0x0463 // Ver.: since se-1.4-17-05019-001 -#define ZCL_PREVIOUS_DAY_MAX_DEMAND_RECEIVED_TIME_ATTRIBUTE_ID 0x0464 // Ver.: since se-1.4-17-05019-001 -#define ZCL_MAX_NUMBER_OF_PERIODS_DELIVERED_ATTRIBUTE_ID 0x0500 // Ver.: always -#define ZCL_CURRENT_DEMAND_DELIVERED_ATTRIBUTE_ID 0x0600 // Ver.: always -#define ZCL_DEMAND_LIMIT_ATTRIBUTE_ID 0x0601 // Ver.: always -#define ZCL_DEMAND_INTEGRATION_PERIOD_ATTRIBUTE_ID 0x0602 // Ver.: always -#define ZCL_NUMBER_OF_DEMAND_SUBINTERVALS_ATTRIBUTE_ID 0x0603 // Ver.: always -#define ZCL_DEMAND_LIMIT_ARM_DURATION_IN_MINUTES_ATTRIBUTE_ID 0x0604 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_LOAD_LIMIT_SUPPLY_STATE_ATTRIBUTE_ID 0x0605 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_LOAD_LIMIT_COUNTER_ATTRIBUTE_ID 0x0606 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_SUPPLY_TAMPER_STATE_ATTRIBUTE_ID 0x0607 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_SUPPLY_DEPLETION_STATE_ATTRIBUTE_ID 0x0608 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_SUPPLY_UNCONTROLLED_FLOW_STATE_ATTRIBUTE_ID 0x0609 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_NO_TIER_BLOCK1_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0700 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_NO_TIER_BLOCK2_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0701 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_NO_TIER_BLOCK3_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0702 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_NO_TIER_BLOCK4_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0703 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_NO_TIER_BLOCK5_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0704 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_NO_TIER_BLOCK6_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0705 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_NO_TIER_BLOCK7_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0706 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_NO_TIER_BLOCK8_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0707 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_NO_TIER_BLOCK9_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0708 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_NO_TIER_BLOCK10_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0709 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_NO_TIER_BLOCK11_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x070A // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_NO_TIER_BLOCK12_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x070B // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_NO_TIER_BLOCK13_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x070C // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_NO_TIER_BLOCK14_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x070D // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_NO_TIER_BLOCK15_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x070E // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_NO_TIER_BLOCK16_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x070F // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER1_BLOCK1_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0710 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER1_BLOCK2_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0711 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER1_BLOCK3_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0712 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER1_BLOCK4_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0713 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER1_BLOCK5_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0714 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER1_BLOCK6_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0715 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER1_BLOCK7_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0716 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER1_BLOCK8_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0717 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER1_BLOCK9_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0718 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER1_BLOCK10_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0719 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER1_BLOCK11_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x071A // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER1_BLOCK12_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x071B // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER1_BLOCK13_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x071C // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER1_BLOCK14_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x071D // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER1_BLOCK15_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x071E // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER1_BLOCK16_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x071F // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER2_BLOCK1_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0720 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER2_BLOCK2_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0721 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER2_BLOCK3_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0722 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER2_BLOCK4_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0723 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER2_BLOCK5_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0724 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER2_BLOCK6_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0725 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER2_BLOCK7_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0726 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER2_BLOCK8_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0727 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER2_BLOCK9_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0728 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER2_BLOCK10_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0729 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER2_BLOCK11_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x072A // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER2_BLOCK12_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x072B // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER2_BLOCK13_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x072C // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER2_BLOCK14_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x072D // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER2_BLOCK15_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x072E // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER2_BLOCK16_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x072F // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER3_BLOCK1_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0730 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER3_BLOCK2_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0731 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER3_BLOCK3_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0732 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER3_BLOCK4_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0733 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER3_BLOCK5_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0734 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER3_BLOCK6_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0735 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER3_BLOCK7_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0736 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER3_BLOCK8_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0737 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER3_BLOCK9_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0738 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER3_BLOCK10_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0739 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER3_BLOCK11_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x073A // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER3_BLOCK12_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x073B // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER3_BLOCK13_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x073C // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER3_BLOCK14_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x073D // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER3_BLOCK15_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x073E // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER3_BLOCK16_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x073F // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER4_BLOCK1_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0740 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER4_BLOCK2_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0741 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER4_BLOCK3_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0742 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER4_BLOCK4_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0743 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER4_BLOCK5_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0744 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER4_BLOCK6_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0745 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER4_BLOCK7_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0746 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER4_BLOCK8_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0747 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER4_BLOCK9_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0748 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER4_BLOCK10_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0749 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER4_BLOCK11_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x074A // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER4_BLOCK12_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x074B // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER4_BLOCK13_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x074C // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER4_BLOCK14_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x074D // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER4_BLOCK15_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x074E // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER4_BLOCK16_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x074F // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER5_BLOCK1_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0750 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER5_BLOCK2_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0751 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER5_BLOCK3_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0752 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER5_BLOCK4_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0753 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER5_BLOCK5_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0754 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER5_BLOCK6_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0755 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER5_BLOCK7_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0756 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER5_BLOCK8_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0757 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER5_BLOCK9_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0758 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER5_BLOCK10_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0759 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER5_BLOCK11_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x075A // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER5_BLOCK12_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x075B // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER5_BLOCK13_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x075C // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER5_BLOCK14_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x075D // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER5_BLOCK15_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x075E // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER5_BLOCK16_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x075F // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER6_BLOCK1_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0760 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER6_BLOCK2_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0761 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER6_BLOCK3_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0762 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER6_BLOCK4_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0763 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER6_BLOCK5_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0764 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER6_BLOCK6_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0765 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER6_BLOCK7_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0766 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER6_BLOCK8_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0767 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER6_BLOCK9_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0768 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER6_BLOCK10_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0769 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER6_BLOCK11_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x076A // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER6_BLOCK12_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x076B // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER6_BLOCK13_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x076C // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER6_BLOCK14_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x076D // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER6_BLOCK15_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x076E // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER6_BLOCK16_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x076F // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER7_BLOCK1_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0770 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER7_BLOCK2_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0771 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER7_BLOCK3_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0772 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER7_BLOCK4_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0773 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER7_BLOCK5_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0774 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER7_BLOCK6_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0775 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER7_BLOCK7_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0776 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER7_BLOCK8_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0777 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER7_BLOCK9_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0778 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER7_BLOCK10_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0779 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER7_BLOCK11_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x077A // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER7_BLOCK12_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x077B // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER7_BLOCK13_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x077C // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER7_BLOCK14_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x077D // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER7_BLOCK15_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x077E // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER7_BLOCK16_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x077F // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER8_BLOCK1_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0780 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER8_BLOCK2_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0781 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER8_BLOCK3_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0782 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER8_BLOCK4_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0783 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER8_BLOCK5_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0784 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER8_BLOCK6_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0785 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER8_BLOCK7_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0786 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER8_BLOCK8_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0787 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER8_BLOCK9_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0788 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER8_BLOCK10_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0789 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER8_BLOCK11_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x078A // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER8_BLOCK12_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x078B // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER8_BLOCK13_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x078C // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER8_BLOCK14_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x078D // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER8_BLOCK15_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x078E // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER8_BLOCK16_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x078F // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER9_BLOCK1_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0790 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER9_BLOCK2_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0791 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER9_BLOCK3_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0792 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER9_BLOCK4_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0793 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER9_BLOCK5_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0794 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER9_BLOCK6_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0795 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER9_BLOCK7_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0796 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER9_BLOCK8_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0797 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER9_BLOCK9_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0798 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER9_BLOCK10_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0799 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER9_BLOCK11_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x079A // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER9_BLOCK12_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x079B // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER9_BLOCK13_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x079C // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER9_BLOCK14_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x079D // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER9_BLOCK15_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x079E // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER9_BLOCK16_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x079F // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER10_BLOCK1_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07A0 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER10_BLOCK2_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07A1 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER10_BLOCK3_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07A2 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER10_BLOCK4_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07A3 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER10_BLOCK5_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07A4 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER10_BLOCK6_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07A5 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER10_BLOCK7_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07A6 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER10_BLOCK8_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07A7 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER10_BLOCK9_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07A8 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER10_BLOCK10_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07A9 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER10_BLOCK11_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07AA // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER10_BLOCK12_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07AB // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER10_BLOCK13_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07AC // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER10_BLOCK14_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07AD // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER10_BLOCK15_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07AE // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER10_BLOCK16_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07AF // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER11_BLOCK1_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07B0 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER11_BLOCK2_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07B1 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER11_BLOCK3_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07B2 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER11_BLOCK4_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07B3 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER11_BLOCK5_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07B4 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER11_BLOCK6_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07B5 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER11_BLOCK7_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07B6 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER11_BLOCK8_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07B7 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER11_BLOCK9_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07B8 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER11_BLOCK10_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07B9 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER11_BLOCK11_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07BA // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER11_BLOCK12_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07BB // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER11_BLOCK13_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07BC // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER11_BLOCK14_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07BD // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER11_BLOCK15_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07BE // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER11_BLOCK16_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07BF // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER12_BLOCK1_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07C0 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER12_BLOCK2_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07C1 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER12_BLOCK3_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07C2 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER12_BLOCK4_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07C3 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER12_BLOCK5_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07C4 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER12_BLOCK6_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07C5 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER12_BLOCK7_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07C6 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER12_BLOCK8_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07C7 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER12_BLOCK9_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07C8 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER12_BLOCK10_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07C9 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER12_BLOCK11_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07CA // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER12_BLOCK12_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07CB // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER12_BLOCK13_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07CC // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER12_BLOCK14_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07CD // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER12_BLOCK15_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07CE // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER12_BLOCK16_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07CF // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER13_BLOCK1_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07D0 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER13_BLOCK2_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07D1 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER13_BLOCK3_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07D2 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER13_BLOCK4_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07D3 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER13_BLOCK5_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07D4 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER13_BLOCK6_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07D5 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER13_BLOCK7_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07D6 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER13_BLOCK8_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07D7 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER13_BLOCK9_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07D8 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER13_BLOCK10_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07D9 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER13_BLOCK11_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07DA // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER13_BLOCK12_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07DB // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER13_BLOCK13_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07DC // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER13_BLOCK14_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07DD // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER13_BLOCK15_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07DE // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER13_BLOCK16_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07DF // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER14_BLOCK1_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07E0 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER14_BLOCK2_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07E1 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER14_BLOCK3_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07E2 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER14_BLOCK4_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07E3 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER14_BLOCK5_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07E4 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER14_BLOCK6_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07E5 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER14_BLOCK7_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07E6 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER14_BLOCK8_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07E7 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER14_BLOCK9_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07E8 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER14_BLOCK10_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07E9 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER14_BLOCK11_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07EA // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER14_BLOCK12_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07EB // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER14_BLOCK13_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07EC // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER14_BLOCK14_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07ED // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER14_BLOCK15_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07EE // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER14_BLOCK16_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07EF // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER15_BLOCK1_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07F0 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER15_BLOCK2_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07F1 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER15_BLOCK3_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07F2 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER15_BLOCK4_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07F3 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER15_BLOCK5_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07F4 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER15_BLOCK6_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07F5 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER15_BLOCK7_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07F6 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER15_BLOCK8_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07F7 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER15_BLOCK9_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07F8 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER15_BLOCK10_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07F9 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER15_BLOCK11_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07FA // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER15_BLOCK12_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07FB // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER15_BLOCK13_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07FC // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER15_BLOCK14_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07FD // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER15_BLOCK15_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07FE // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER15_BLOCK16_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07FF // Ver.: since se-1.1-07-5356-16 -#define ZCL_GENERIC_ALARM_MASK_ATTRIBUTE_ID 0x0800 // Ver.: since se-1.1-07-5356-16 -#define ZCL_ELECTRICITY_ALARM_MASK_ATTRIBUTE_ID 0x0801 // Ver.: since se-1.1-07-5356-16 -#define ZCL_GENERIC_FLOW_PRESSURE_ALARM_MASK_ATTRIBUTE_ID 0x0802 // Ver.: since se-1.1-07-5356-16 -#define ZCL_WATER_SPECIFIC_ALARM_MASK_ATTRIBUTE_ID 0x0803 // Ver.: since se-1.1-07-5356-16 -#define ZCL_HEAT_AND_COOLING_SPECIFIC_ALARM_MASK_ATTRIBUTE_ID 0x0804 // Ver.: since se-1.1-07-5356-16 -#define ZCL_GAS_SPECIFIC_ALARM_MASK_ATTRIBUTE_ID 0x0805 // Ver.: since se-1.1-07-5356-16 -#define ZCL_METERING_EXTENDED_GENERIC_ALARM_MASK_ATTRIBUTE_ID 0x0806 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_METERING_MANUFACTURE_ALARM_MASK_ATTRIBUTE_ID 0x0807 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_NO_TIER_BLOCK1_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0900 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_NO_TIER_BLOCK2_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0901 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_NO_TIER_BLOCK3_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0902 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_NO_TIER_BLOCK4_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0903 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_NO_TIER_BLOCK5_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0904 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_NO_TIER_BLOCK6_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0905 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_NO_TIER_BLOCK7_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0906 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_NO_TIER_BLOCK8_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0907 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_NO_TIER_BLOCK9_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0908 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_NO_TIER_BLOCK10_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0909 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_NO_TIER_BLOCK11_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x090A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_NO_TIER_BLOCK12_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x090B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_NO_TIER_BLOCK13_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x090C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_NO_TIER_BLOCK14_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x090D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_NO_TIER_BLOCK15_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x090E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_NO_TIER_BLOCK16_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x090F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER1_BLOCK1_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0910 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER1_BLOCK2_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0911 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER1_BLOCK3_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0912 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER1_BLOCK4_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0913 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER1_BLOCK5_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0914 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER1_BLOCK6_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0915 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER1_BLOCK7_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0916 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER1_BLOCK8_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0917 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER1_BLOCK9_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0918 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER1_BLOCK10_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0919 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER1_BLOCK11_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x091A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER1_BLOCK12_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x091B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER1_BLOCK13_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x091C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER1_BLOCK14_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x091D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER1_BLOCK15_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x091E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER1_BLOCK16_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x091F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER2_BLOCK1_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0920 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER2_BLOCK2_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0921 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER2_BLOCK3_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0922 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER2_BLOCK4_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0923 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER2_BLOCK5_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0924 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER2_BLOCK6_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0925 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER2_BLOCK7_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0926 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER2_BLOCK8_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0927 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER2_BLOCK9_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0928 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER2_BLOCK10_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0929 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER2_BLOCK11_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x092A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER2_BLOCK12_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x092B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER2_BLOCK13_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x092C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER2_BLOCK14_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x092D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER2_BLOCK15_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x092E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER2_BLOCK16_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x092F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER3_BLOCK1_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0930 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER3_BLOCK2_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0931 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER3_BLOCK3_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0932 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER3_BLOCK4_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0933 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER3_BLOCK5_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0934 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER3_BLOCK6_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0935 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER3_BLOCK7_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0936 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER3_BLOCK8_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0937 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER3_BLOCK9_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0938 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER3_BLOCK10_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0939 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER3_BLOCK11_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x093A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER3_BLOCK12_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x093B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER3_BLOCK13_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x093C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER3_BLOCK14_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x093D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER3_BLOCK15_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x093E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER3_BLOCK16_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x093F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER4_BLOCK1_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0940 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER4_BLOCK2_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0941 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER4_BLOCK3_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0942 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER4_BLOCK4_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0943 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER4_BLOCK5_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0944 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER4_BLOCK6_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0945 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER4_BLOCK7_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0946 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER4_BLOCK8_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0947 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER4_BLOCK9_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0948 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER4_BLOCK10_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0949 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER4_BLOCK11_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x094A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER4_BLOCK12_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x094B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER4_BLOCK13_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x094C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER4_BLOCK14_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x094D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER4_BLOCK15_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x094E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER4_BLOCK16_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x094F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER5_BLOCK1_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0950 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER5_BLOCK2_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0951 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER5_BLOCK3_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0952 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER5_BLOCK4_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0953 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER5_BLOCK5_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0954 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER5_BLOCK6_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0955 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER5_BLOCK7_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0956 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER5_BLOCK8_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0957 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER5_BLOCK9_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0958 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER5_BLOCK10_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0959 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER5_BLOCK11_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x095A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER5_BLOCK12_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x095B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER5_BLOCK13_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x095C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER5_BLOCK14_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x095D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER5_BLOCK15_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x095E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER5_BLOCK16_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x095F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER6_BLOCK1_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0960 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER6_BLOCK2_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0961 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER6_BLOCK3_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0962 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER6_BLOCK4_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0963 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER6_BLOCK5_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0964 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER6_BLOCK6_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0965 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER6_BLOCK7_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0966 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER6_BLOCK8_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0967 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER6_BLOCK9_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0968 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER6_BLOCK10_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0969 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER6_BLOCK11_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x096A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER6_BLOCK12_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x096B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER6_BLOCK13_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x096C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER6_BLOCK14_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x096D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER6_BLOCK15_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x096E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER6_BLOCK16_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x096F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER7_BLOCK1_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0970 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER7_BLOCK2_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0971 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER7_BLOCK3_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0972 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER7_BLOCK4_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0973 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER7_BLOCK5_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0974 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER7_BLOCK6_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0975 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER7_BLOCK7_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0976 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER7_BLOCK8_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0977 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER7_BLOCK9_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0978 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER7_BLOCK10_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0979 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER7_BLOCK11_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x097A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER7_BLOCK12_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x097B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER7_BLOCK13_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x097C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER7_BLOCK14_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x097D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER7_BLOCK15_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x097E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER7_BLOCK16_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x097F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER8_BLOCK1_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0980 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER8_BLOCK2_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0981 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER8_BLOCK3_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0982 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER8_BLOCK4_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0983 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER8_BLOCK5_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0984 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER8_BLOCK6_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0985 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER8_BLOCK7_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0986 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER8_BLOCK8_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0987 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER8_BLOCK9_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0988 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER8_BLOCK10_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0989 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER8_BLOCK11_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x098A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER8_BLOCK12_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x098B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER8_BLOCK13_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x098C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER8_BLOCK14_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x098D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER8_BLOCK15_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x098E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER8_BLOCK16_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x098F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER9_BLOCK1_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0990 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER9_BLOCK2_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0991 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER9_BLOCK3_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0992 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER9_BLOCK4_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0993 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER9_BLOCK5_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0994 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER9_BLOCK6_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0995 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER9_BLOCK7_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0996 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER9_BLOCK8_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0997 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER9_BLOCK9_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0998 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER9_BLOCK10_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0999 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER9_BLOCK11_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x099A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER9_BLOCK12_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x099B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER9_BLOCK13_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x099C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER9_BLOCK14_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x099D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER9_BLOCK15_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x099E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER9_BLOCK16_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x099F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER10_BLOCK1_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09A0 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER10_BLOCK2_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09A1 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER10_BLOCK3_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09A2 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER10_BLOCK4_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09A3 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER10_BLOCK5_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09A4 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER10_BLOCK6_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09A5 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER10_BLOCK7_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09A6 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER10_BLOCK8_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09A7 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER10_BLOCK9_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09A8 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER10_BLOCK10_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09A9 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER10_BLOCK11_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09AA // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER10_BLOCK12_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09AB // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER10_BLOCK13_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09AC // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER10_BLOCK14_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09AD // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER10_BLOCK15_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09AE // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER10_BLOCK16_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09AF // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER11_BLOCK1_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09B0 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER11_BLOCK2_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09B1 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER11_BLOCK3_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09B2 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER11_BLOCK4_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09B3 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER11_BLOCK5_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09B4 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER11_BLOCK6_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09B5 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER11_BLOCK7_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09B6 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER11_BLOCK8_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09B7 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER11_BLOCK9_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09B8 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER11_BLOCK10_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09B9 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER11_BLOCK11_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09BA // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER11_BLOCK12_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09BB // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER11_BLOCK13_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09BC // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER11_BLOCK14_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09BD // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER11_BLOCK15_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09BE // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER11_BLOCK16_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09BF // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER12_BLOCK1_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09C0 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER12_BLOCK2_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09C1 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER12_BLOCK3_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09C2 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER12_BLOCK4_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09C3 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER12_BLOCK5_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09C4 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER12_BLOCK6_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09C5 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER12_BLOCK7_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09C6 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER12_BLOCK8_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09C7 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER12_BLOCK9_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09C8 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER12_BLOCK10_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09C9 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER12_BLOCK11_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09CA // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER12_BLOCK12_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09CB // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER12_BLOCK13_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09CC // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER12_BLOCK14_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09CD // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER12_BLOCK15_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09CE // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER12_BLOCK16_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09CF // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER13_BLOCK1_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09D0 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER13_BLOCK2_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09D1 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER13_BLOCK3_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09D2 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER13_BLOCK4_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09D3 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER13_BLOCK5_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09D4 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER13_BLOCK6_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09D5 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER13_BLOCK7_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09D6 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER13_BLOCK8_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09D7 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER13_BLOCK9_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09D8 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER13_BLOCK10_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09D9 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER13_BLOCK11_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09DA // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER13_BLOCK12_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09DB // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER13_BLOCK13_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09DC // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER13_BLOCK14_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09DD // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER13_BLOCK15_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09DE // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER13_BLOCK16_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09DF // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER14_BLOCK1_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09E0 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER14_BLOCK2_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09E1 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER14_BLOCK3_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09E2 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER14_BLOCK4_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09E3 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER14_BLOCK5_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09E4 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER14_BLOCK6_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09E5 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER14_BLOCK7_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09E6 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER14_BLOCK8_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09E7 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER14_BLOCK9_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09E8 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER14_BLOCK10_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09E9 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER14_BLOCK11_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09EA // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER14_BLOCK12_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09EB // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER14_BLOCK13_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09EC // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER14_BLOCK14_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09ED // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER14_BLOCK15_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09EE // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER14_BLOCK16_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09EF // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER15_BLOCK1_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09F0 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER15_BLOCK2_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09F1 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER15_BLOCK3_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09F2 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER15_BLOCK4_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09F3 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER15_BLOCK5_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09F4 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER15_BLOCK6_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09F5 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER15_BLOCK7_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09F6 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER15_BLOCK8_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09F7 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER15_BLOCK9_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09F8 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER15_BLOCK10_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09F9 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER15_BLOCK11_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09FA // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER15_BLOCK12_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09FB // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER15_BLOCK13_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09FC // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER15_BLOCK14_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09FD // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER15_BLOCK15_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09FE // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER15_BLOCK16_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09FF // Ver.: since se-1.2a-07-5356-19 -#define ZCL_BILL_TO_DATE_DELIVERED_ATTRIBUTE_ID 0x0A00 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_BILL_TO_DATE_TIME_STAMP_DELIVERED_ATTRIBUTE_ID 0x0A01 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PROJECTED_BILL_DELIVERED_ATTRIBUTE_ID 0x0A02 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PROJECTED_BILL_TIME_STAMP_DELIVERED_ATTRIBUTE_ID 0x0A03 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_BILL_DELIVERED_TRAILING_DIGIT_ATTRIBUTE_ID 0x0A04 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_BILL_TO_DATE_RECEIVED_ATTRIBUTE_ID 0x0A10 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_BILL_TO_DATE_TIME_STAMP_RECEIVED_ATTRIBUTE_ID 0x0A11 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PROJECTED_BILL_RECEIVED_ATTRIBUTE_ID 0x0A12 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PROJECTED_BILL_TIME_STAMP_RECEIVED_ATTRIBUTE_ID 0x0A13 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_BILL_RECEIVED_TRAILING_DIGIT_ATTRIBUTE_ID 0x0A14 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PROPOSED_CHANGE_SUPPLY_IMPLEMENTATION_TIME_ATTRIBUTE_ID 0x0B00 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PROPOSED_CHANGE_SUPPLY_STATUS_ATTRIBUTE_ID 0x0B01 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_UNCONTROLLED_FLOW_THESHOLD_ATTRIBUTE_ID 0x0B10 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_UNCONTROLLED_FLOW_THESHOLD_UNIT_OF_MEASURE_ATTRIBUTE_ID 0x0B11 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_UNCONTROLLED_FLOW_MULTIPLIER_ATTRIBUTE_ID 0x0B12 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_UNCONTROLLED_FLOW_DIVISOR_ATTRIBUTE_ID 0x0B13 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_FLOW_STABILIZATION_PERIOD_ATTRIBUTE_ID 0x0B14 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_FLOW_MEASUREMENT_PERIOD_ATTRIBUTE_ID 0x0B15 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_ALTERNATIVE_INSTANTANEOUS_DEMAND_ATTRIBUTE_ID 0x0C00 // Ver.: always -#define ZCL_CURRENT_ALTERNATIVE_DAY_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0C01 // Ver.: always -#define ZCL_CURRENT_ALTERNATIVE_DAY_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0C02 // Ver.: always -#define ZCL_PREVIOUS_DAY_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0C03 // Ver.: always -#define ZCL_PREVIOUS_DAY_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0C04 // Ver.: always -#define ZCL_CURRENT_ALTERNATIVE_PARTIAL_PROFILE_INTERVAL_START_TIME_DELIVERED_ATTRIBUTE_ID 0x0C05 // Ver.: always -#define ZCL_CURRENT_ALTERNATIVE_PARTIAL_PROFILE_INTERVAL_START_TIME_RECEIVED_ATTRIBUTE_ID 0x0C06 // Ver.: always -#define ZCL_CURRENT_ALTERNATIVE_PARTIAL_PROFILE_INTERVAL_VALUE_DELIVERED_ATTRIBUTE_ID 0x0C07 // Ver.: always -#define ZCL_CURRENT_ALTERNATIVE_PARTIAL_PROFILE_INTERVAL_VALUE_RECEIVED_ATTRIBUTE_ID 0x0C08 // Ver.: always -#define ZCL_CURRENT_ALTERNATIVE_DAY_MAX_PRESSURE_ATTRIBUTE_ID 0x0C09 // Ver.: always -#define ZCL_CURRENT_ALTERNATIVE_DAY_MIN_PRESSURE_ATTRIBUTE_ID 0x0C0A // Ver.: always -#define ZCL_PREVIOUS_DAY_ALTERNATIVE_MAX_PRESSURE_ATTRIBUTE_ID 0x0C0B // Ver.: always -#define ZCL_PREVIOUS_DAY_ALTERNATIVE_MIN_PRESSURE_ATTRIBUTE_ID 0x0C0C // Ver.: always -#define ZCL_CURRENT_ALTERNATIVE_DAY_ALTERNATIVE_MAX_DEMAND_ATTRIBUTE_ID 0x0C0D // Ver.: always -#define ZCL_PREVIOUS_DAY_ALTERNATIVE_MAX_DEMAND_ATTRIBUTE_ID 0x0C0E // Ver.: always -#define ZCL_CURRENT_ALTERNATIVE_MONTH_MAX_DEMAND_ATTRIBUTE_ID 0x0C0F // Ver.: always -#define ZCL_CURRENT_ALTERNATIVE_YEAR_MAX_DEMAND_ATTRIBUTE_ID 0x0C10 // Ver.: always -#define ZCL_PREVIOUS_DAY2_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0C20 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY2_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0C21 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY3_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0C22 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY3_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0C23 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY4_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0C24 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY4_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0C25 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY5_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0C26 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY5_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0C27 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY6_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0C28 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY6_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0C29 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY7_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0C2A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY7_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0C2B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY8_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0C2C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY8_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0C2D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_WEEK_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0C30 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_WEEK_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0C31 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_WEEK_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0C32 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_WEEK_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0C33 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_WEEK2_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0C34 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_WEEK2_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0C35 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_WEEK3_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0C36 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_WEEK3_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0C37 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_WEEK4_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0C38 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_WEEK4_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0C39 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_WEEK5_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0C3A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_WEEK5_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0C3B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_MONTH_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0C40 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_MONTH_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0C41 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0C42 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0C43 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH2_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0C44 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH2_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0C45 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH3_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0C46 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH3_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0C47 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH4_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0C48 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH4_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0C49 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH5_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0C4A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH5_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0C4B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH6_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0C4C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH6_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0C4D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH7_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0C4E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH7_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0C4F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH8_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0C50 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH8_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0C51 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH9_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0C52 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH9_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0C53 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH10_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0C54 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH10_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0C55 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH11_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0C56 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH11_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0C57 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH12_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0C58 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH12_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0C59 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH13_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0C5A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH13_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0C5B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_DAY_ALTERNATIVE_MAX_DEMAND_DELIVERED_ATTRIBUTE_ID 0x0C5C // Ver.: since se-1.4-17-05019-001 -#define ZCL_CURRENT_DAY_ALTERNATIVE_MAX_DEMAND_DELIVERED_TIME_ATTRIBUTE_ID 0x0C5D // Ver.: since se-1.4-17-05019-001 -#define ZCL_CURRENT_DAY_ALTERNATIVE_MAX_DEMAND_RECEIVED_ATTRIBUTE_ID 0x0C5E // Ver.: since se-1.4-17-05019-001 -#define ZCL_CURRENT_DAY_ALTERNATIVE_MAX_DEMAND_RECEIVED_TIME_ATTRIBUTE_ID 0x0C5F // Ver.: since se-1.4-17-05019-001 -#define ZCL_PREVIOUS_DAY_ALTERNATIVE_MAX_DEMAND_DELIVERED_ATTRIBUTE_ID 0x0C60 // Ver.: since se-1.4-17-05019-001 -#define ZCL_PREVIOUS_DAY_ALTERNATIVE_MAX_DEMAND_DELIVERED_TIME_ATTRIBUTE_ID 0x0C61 // Ver.: since se-1.4-17-05019-001 -#define ZCL_PREVIOUS_DAY_ALTERNATIVE_MAX_DEMAND_RECEIVED_ATTRIBUTE_ID 0x0C62 // Ver.: since se-1.4-17-05019-001 -#define ZCL_PREVIOUS_DAY_ALTERNATIVE_MAX_DEMAND_RECEIVED_TIME_ATTRIBUTE_ID 0x0C63 // Ver.: since se-1.4-17-05019-001 -#define ZCL_CURRENT_ACTIVE_SUMMATION_Q1_ATTRIBUTE_ID 0x0D01 // Ver.: since se-1.4-17-05019-001 -#define ZCL_CURRENT_ACTIVE_SUMMATION_Q2_ATTRIBUTE_ID 0x0D02 // Ver.: since se-1.4-17-05019-001 -#define ZCL_CURRENT_ACTIVE_SUMMATION_Q3_ATTRIBUTE_ID 0x0D03 // Ver.: since se-1.4-17-05019-001 -#define ZCL_CURRENT_ACTIVE_SUMMATION_Q4_ATTRIBUTE_ID 0x0D04 // Ver.: since se-1.4-17-05019-001 -#define ZCL_CURRENT_REACTIVE_SUMMATION_Q1_ATTRIBUTE_ID 0x0D05 // Ver.: since se-1.4-17-05019-001 -#define ZCL_CURRENT_REACTIVE_SUMMATION_Q2_ATTRIBUTE_ID 0x0D06 // Ver.: since se-1.4-17-05019-001 -#define ZCL_CURRENT_REACTIVE_SUMMATION_Q3_ATTRIBUTE_ID 0x0D07 // Ver.: since se-1.4-17-05019-001 -#define ZCL_CURRENT_REACTIVE_SUMMATION_Q4_ATTRIBUTE_ID 0x0D08 // Ver.: since se-1.4-17-05019-001 -#define ZCL_SIMPLE_METERING_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_SIMPLE_METERING_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Messaging -// Cluster specification level: se-1.2b-15-0131-02 +#define ZCL_CURRENT_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0000) +#define ZCL_CURRENT_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0001) +#define ZCL_CURRENT_MAX_DEMAND_DELIVERED_ATTRIBUTE_ID (0x0002) +#define ZCL_CURRENT_MAX_DEMAND_RECEIVED_ATTRIBUTE_ID (0x0003) +#define ZCL_DFT_SUMMATION_ATTRIBUTE_ID (0x0004) +#define ZCL_DAILY_FREEZE_TIME_ATTRIBUTE_ID (0x0005) +#define ZCL_POWER_FACTOR_ATTRIBUTE_ID (0x0006) +#define ZCL_READING_SNAP_SHOT_TIME_ATTRIBUTE_ID (0x0007) +#define ZCL_CURRENT_MAX_DEMAND_DELIVERED_TIME_ATTRIBUTE_ID (0x0008) +#define ZCL_CURRENT_MAX_DEMAND_RECEIVED_TIME_ATTRIBUTE_ID (0x0009) +#define ZCL_DEFAULT_UPDATE_PERIOD_ATTRIBUTE_ID (0x000A) +#define ZCL_FAST_POLL_UPDATE_PERIOD_ATTRIBUTE_ID (0x000B) +#define ZCL_CURRENT_BLOCK_PERIOD_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x000C) +#define ZCL_DAILY_CONSUMPTION_TARGET_ATTRIBUTE_ID (0x000D) +#define ZCL_CURRENT_BLOCK_ATTRIBUTE_ID (0x000E) +#define ZCL_PROFILE_INTERVAL_PERIOD_ATTRIBUTE_ID (0x000F) +#define ZCL_INTERVAL_READ_REPORTING_PERIOD_ATTRIBUTE_ID (0x0010) +#define ZCL_PRESET_READING_TIME_ATTRIBUTE_ID (0x0011) +#define ZCL_VOLUME_PER_REPORT_ATTRIBUTE_ID (0x0012) +#define ZCL_FLOW_RESTRICTION_ATTRIBUTE_ID (0x0013) +#define ZCL_SUPPLY_STATUS_ATTRIBUTE_ID (0x0014) +#define ZCL_CURRENT_INLET_ENERGY_CARRIER_SUMMATION_ATTRIBUTE_ID (0x0015) +#define ZCL_CURRENT_OUTLET_ENERGY_CARRIER_SUMMATION_ATTRIBUTE_ID (0x0016) +#define ZCL_INLET_TEMPERATURE_ATTRIBUTE_ID (0x0017) +#define ZCL_OUTLET_TEMPERATURE_ATTRIBUTE_ID (0x0018) +#define ZCL_CONTROL_TEMPERATURE_ATTRIBUTE_ID (0x0019) +#define ZCL_CURRENT_INLET_ENERGY_CARRIER_DEMAND_ATTRIBUTE_ID (0x001A) +#define ZCL_CURRENT_OUTLET_ENERGY_CARRIER_DEMAND_ATTRIBUTE_ID (0x001B) +#define ZCL_PREVIOUS_BLOCK_PERIOD_CONSUMIPTION_DELIVERED_ATTRIBUTE_ID (0x001C) +#define ZCL_CURRENT_BLOCK_PERIOD_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x001D) +#define ZCL_CURRENT_BLOCK_RECEIVED_ATTRIBUTE_ID (0x001E) +#define ZCL_DFT_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x001F) +#define ZCL_ACTIVE_REGISTER_TIER_DELIVERED_ATTRIBUTE_ID (0x0020) +#define ZCL_ACTIVE_REGISTER_TIER_RECEIVED_ATTRIBUTE_ID (0x0021) +#define ZCL_LAST_BLOCK_SWITCH_TIME_ATTRIBUTE_ID (0x0022) +#define ZCL_CURRENT_TIER1_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0100) +#define ZCL_CURRENT_TIER1_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0101) +#define ZCL_CURRENT_TIER2_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0102) +#define ZCL_CURRENT_TIER2_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0103) +#define ZCL_CURRENT_TIER3_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0104) +#define ZCL_CURRENT_TIER3_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0105) +#define ZCL_CURRENT_TIER4_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0106) +#define ZCL_CURRENT_TIER4_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0107) +#define ZCL_CURRENT_TIER5_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0108) +#define ZCL_CURRENT_TIER5_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0109) +#define ZCL_CURRENT_TIER6_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x010A) +#define ZCL_CURRENT_TIER6_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x010B) +#define ZCL_CURRENT_TIER7_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x010C) +#define ZCL_CURRENT_TIER7_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x010D) +#define ZCL_CURRENT_TIER8_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x010E) +#define ZCL_CURRENT_TIER8_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x010F) +#define ZCL_CURRENT_TIER9_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0110) +#define ZCL_CURRENT_TIER9_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0111) +#define ZCL_CURRENT_TIER10_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0112) +#define ZCL_CURRENT_TIER10_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0113) +#define ZCL_CURRENT_TIER11_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0114) +#define ZCL_CURRENT_TIER11_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0115) +#define ZCL_CURRENT_TIER12_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0116) +#define ZCL_CURRENT_TIER12_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0117) +#define ZCL_CURRENT_TIER13_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0118) +#define ZCL_CURRENT_TIER13_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0119) +#define ZCL_CURRENT_TIER14_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x011A) +#define ZCL_CURRENT_TIER14_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x011B) +#define ZCL_CURRENT_TIER15_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x011C) +#define ZCL_CURRENT_TIER15_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x011D) +#define ZCL_CURRENT_TIER16_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x011E) +#define ZCL_CURRENT_TIER16_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x011F) +#define ZCL_CURRENT_TIER17_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0120) +#define ZCL_CURRENT_TIER17_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0121) +#define ZCL_CURRENT_TIER18_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0122) +#define ZCL_CURRENT_TIER18_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0123) +#define ZCL_CURRENT_TIER19_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0124) +#define ZCL_CURRENT_TIER19_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0125) +#define ZCL_CURRENT_TIER20_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0126) +#define ZCL_CURRENT_TIER20_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0127) +#define ZCL_CURRENT_TIER21_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0128) +#define ZCL_CURRENT_TIER21_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0129) +#define ZCL_CURRENT_TIER22_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x012A) +#define ZCL_CURRENT_TIER22_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x012B) +#define ZCL_CURRENT_TIER23_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x012C) +#define ZCL_CURRENT_TIER23_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x012D) +#define ZCL_CURRENT_TIER24_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x012E) +#define ZCL_CURRENT_TIER24_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x012F) +#define ZCL_CURRENT_TIER25_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0130) +#define ZCL_CURRENT_TIER25_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0131) +#define ZCL_CURRENT_TIER26_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0132) +#define ZCL_CURRENT_TIER26_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0133) +#define ZCL_CURRENT_TIER27_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0134) +#define ZCL_CURRENT_TIER27_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0135) +#define ZCL_CURRENT_TIER28_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0136) +#define ZCL_CURRENT_TIER28_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0137) +#define ZCL_CURRENT_TIER29_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0138) +#define ZCL_CURRENT_TIER29_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0139) +#define ZCL_CURRENT_TIER30_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x013A) +#define ZCL_CURRENT_TIER30_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x013B) +#define ZCL_CURRENT_TIER31_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x013C) +#define ZCL_CURRENT_TIER31_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x013D) +#define ZCL_CURRENT_TIER32_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x013E) +#define ZCL_CURRENT_TIER32_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x013F) +#define ZCL_CURRENT_TIER33_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0140) +#define ZCL_CURRENT_TIER33_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0141) +#define ZCL_CURRENT_TIER34_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0142) +#define ZCL_CURRENT_TIER34_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0143) +#define ZCL_CURRENT_TIER35_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0144) +#define ZCL_CURRENT_TIER35_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0145) +#define ZCL_CURRENT_TIER36_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0146) +#define ZCL_CURRENT_TIER36_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0147) +#define ZCL_CURRENT_TIER37_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0148) +#define ZCL_CURRENT_TIER37_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0149) +#define ZCL_CURRENT_TIER38_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x014A) +#define ZCL_CURRENT_TIER38_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x014B) +#define ZCL_CURRENT_TIER39_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x014C) +#define ZCL_CURRENT_TIER39_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x014D) +#define ZCL_CURRENT_TIER40_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x014E) +#define ZCL_CURRENT_TIER40_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x014F) +#define ZCL_CURRENT_TIER41_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0150) +#define ZCL_CURRENT_TIER41_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0151) +#define ZCL_CURRENT_TIER42_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0152) +#define ZCL_CURRENT_TIER42_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0153) +#define ZCL_CURRENT_TIER43_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0154) +#define ZCL_CURRENT_TIER43_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0155) +#define ZCL_CURRENT_TIER44_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0156) +#define ZCL_CURRENT_TIER44_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0157) +#define ZCL_CURRENT_TIER45_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0158) +#define ZCL_CURRENT_TIER45_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0159) +#define ZCL_CURRENT_TIER46_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x015A) +#define ZCL_CURRENT_TIER46_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x015B) +#define ZCL_CURRENT_TIER47_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x015C) +#define ZCL_CURRENT_TIER47_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x015D) +#define ZCL_CURRENT_TIER48_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x015E) +#define ZCL_CURRENT_TIER48_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x015F) +#define ZCL_CPP1_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x01FC) +#define ZCL_CPP2_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x01FE) +#define ZCL_STATUS_ATTRIBUTE_ID (0x0200) +#define ZCL_REMAINING_BATTERY_LIFE_ATTRIBUTE_ID (0x0201) +#define ZCL_HOURS_IN_OPERATION_ATTRIBUTE_ID (0x0202) +#define ZCL_HOURS_IN_FAULT_ATTRIBUTE_ID (0x0203) +#define ZCL_EXTENDED_STATUS_ATTRIBUTE_ID (0x0204) +#define ZCL_REMAINING_BATTERY_LIFE_IN_DAYS_ATTRIBUTE_ID (0x0205) +#define ZCL_CURRENT_METER_ID_ATTRIBUTE_ID (0x0206) +#define ZCL_AMBIENT_CONSUMPTION_INDICATOR_ATTRIBUTE_ID (0x0207) +#define ZCL_UNIT_OF_MEASURE_ATTRIBUTE_ID (0x0300) +#define ZCL_MULTIPLIER_ATTRIBUTE_ID (0x0301) +#define ZCL_DIVISOR_ATTRIBUTE_ID (0x0302) +#define ZCL_SUMMATION_FORMATTING_ATTRIBUTE_ID (0x0303) +#define ZCL_DEMAND_FORMATTING_ATTRIBUTE_ID (0x0304) +#define ZCL_HISTORICAL_CONSUMPTION_FORMATTING_ATTRIBUTE_ID (0x0305) +#define ZCL_METERING_DEVICE_TYPE_ATTRIBUTE_ID (0x0306) +#define ZCL_SITE_ID_ATTRIBUTE_ID (0x0307) +#define ZCL_METER_SERIAL_NUMBER_ATTRIBUTE_ID (0x0308) +#define ZCL_ENERGY_CARRIER_UNIT_OF_MEASURE_ATTRIBUTE_ID (0x0309) +#define ZCL_ENERGY_CARRIER_SUMMATION_FORMATTING_ATTRIBUTE_ID (0x030A) +#define ZCL_ENERGY_CARRIER_DEMAND_FORMATTING_ATTRIBUTE_ID (0x030B) +#define ZCL_TEMPERATURE_UNIT_OF_MEASURE_ATTRIBUTE_ID (0x030C) +#define ZCL_TEMPERATURE_FORMATTING_ATTRIBUTE_ID (0x030D) +#define ZCL_MODULE_SERIAL_NUMBER_ATTRIBUTE_ID (0x030E) +#define ZCL_OPERATING_TARIFF_LABEL_DELIVERED_ATTRIBUTE_ID (0x030F) +#define ZCL_OPERATING_TARIFF_LABEL_RECEIVED_ATTRIBUTE_ID (0x0310) +#define ZCL_CUSTOMER_ID_NUMBER_ATTRIBUTE_ID (0x0311) +#define ZCL_ALTERNATIVE_UNIT_OF_MEASURE_ATTRIBUTE_ID (0x0312) +#define ZCL_ALTERNATIVE_DEMAND_FORMATTING_ATTRIBUTE_ID (0x0313) +#define ZCL_ALTERNATIVE_CONSUMPTION_FORMATTING_ATTRIBUTE_ID (0x0314) +#define ZCL_INSTANTANEOUS_DEMAND_ATTRIBUTE_ID (0x0400) +#define ZCL_CURRENT_DAY_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0401) +#define ZCL_CURRENT_DAY_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0402) +#define ZCL_PREVIOUS_DAY_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0403) +#define ZCL_PREVIOUS_DAY_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0404) +#define ZCL_CURRENT_PARTIAL_PROFILE_INTERVAL_START_TIME_DELIVERED_ATTRIBUTE_ID (0x0405) +#define ZCL_CURRENT_PARTIAL_PROFILE_INTERVAL_START_TIME_RECEIVED_ATTRIBUTE_ID (0x0406) +#define ZCL_CURRENT_PARTIAL_PROFILE_INTERVAL_VALUE_DELIVERED_ATTRIBUTE_ID (0x0407) +#define ZCL_CURRENT_PARTIAL_PROFILE_INTERVAL_VALUE_RECEIVED_ATTRIBUTE_ID (0x0408) +#define ZCL_CURRENT_DAY_MAX_PRESSURE_ATTRIBUTE_ID (0x0409) +#define ZCL_CURRENT_DAY_MIN_PRESSURE_ATTRIBUTE_ID (0x040A) +#define ZCL_PREVIOUS_DAY_MAX_PRESSURE_ATTRIBUTE_ID (0x040B) +#define ZCL_PREVIOUS_DAY_MIN_PRESSURE_ATTRIBUTE_ID (0x040C) +#define ZCL_CURRENT_DAY_MAX_DEMAND_ATTRIBUTE_ID (0x040D) +#define ZCL_PREVIOUS_DAY_MAX_DEMAND_ATTRIBUTE_ID (0x040E) +#define ZCL_CURRENT_MONTH_MAX_DEMAND_ATTRIBUTE_ID (0x040F) +#define ZCL_CURRENT_YEAR_MAX_DEMAND_ATTRIBUTE_ID (0x0410) +#define ZCL_CURRENT_DAY_MAX_ENERGY_CARRIER_DEMAND_ATTRIBUTE_ID (0x0411) +#define ZCL_PREVIOUS_DAY_MAX_ENERGY_CARRIER_DEMAND_ATTRIBUTE_ID (0x0412) +#define ZCL_CURRENT_MONTH_MAX_ENERGY_CARRIER_DEMAND_ATTRIBUTE_ID (0x0413) +#define ZCL_CURRENT_MONTH_MIN_ENERGY_CARRIER_DEMAND_ATTRIBUTE_ID (0x0414) +#define ZCL_CURRENT_YEAR_MAX_ENERGY_CARRIER_DEMAND_ATTRIBUTE_ID (0x0415) +#define ZCL_CURRENT_YEAR_MIN_ENERGY_CARRIER_DEMAND_ATTRIBUTE_ID (0x0416) +#define ZCL_PREVIOUS_DAY2_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0420) +#define ZCL_PREVIOUS_DAY2_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0421) +#define ZCL_PREVIOUS_DAY3_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0422) +#define ZCL_PREVIOUS_DAY3_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0423) +#define ZCL_PREVIOUS_DAY4_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0424) +#define ZCL_PREVIOUS_DAY4_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0425) +#define ZCL_PREVIOUS_DAY5_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0426) +#define ZCL_PREVIOUS_DAY5_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0427) +#define ZCL_PREVIOUS_DAY6_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0428) +#define ZCL_PREVIOUS_DAY6_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0429) +#define ZCL_PREVIOUS_DAY7_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x042A) +#define ZCL_PREVIOUS_DAY7_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x042B) +#define ZCL_PREVIOUS_DAY8_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x042C) +#define ZCL_PREVIOUS_DAY8_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x042D) +#define ZCL_CURRENT_WEEK_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0430) +#define ZCL_CURRENT_WEEK_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0431) +#define ZCL_PREVIOUS_WEEK_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0432) +#define ZCL_PREVIOUS_WEEK_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0433) +#define ZCL_PREVIOUS_WEEK2_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0434) +#define ZCL_PREVIOUS_WEEK2_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0435) +#define ZCL_PREVIOUS_WEEK3_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0436) +#define ZCL_PREVIOUS_WEEK3_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0437) +#define ZCL_PREVIOUS_WEEK4_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0438) +#define ZCL_PREVIOUS_WEEK4_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0439) +#define ZCL_PREVIOUS_WEEK5_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x043A) +#define ZCL_PREVIOUS_WEEK5_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x043B) +#define ZCL_CURRENT_MONTH_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0440) +#define ZCL_CURRENT_MONTH_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0441) +#define ZCL_PREVIOUS_MONTH_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0442) +#define ZCL_PREVIOUS_MONTH_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0443) +#define ZCL_PREVIOUS_MONTH2_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0444) +#define ZCL_PREVIOUS_MONTH2_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0445) +#define ZCL_PREVIOUS_MONTH3_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0446) +#define ZCL_PREVIOUS_MONTH3_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0447) +#define ZCL_PREVIOUS_MONTH4_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0448) +#define ZCL_PREVIOUS_MONTH4_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0449) +#define ZCL_PREVIOUS_MONTH5_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x044A) +#define ZCL_PREVIOUS_MONTH5_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x044B) +#define ZCL_PREVIOUS_MONTH6_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x044C) +#define ZCL_PREVIOUS_MONTH6_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x044D) +#define ZCL_PREVIOUS_MONTH7_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x044E) +#define ZCL_PREVIOUS_MONTH7_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x044F) +#define ZCL_PREVIOUS_MONTH8_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0450) +#define ZCL_PREVIOUS_MONTH8_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0451) +#define ZCL_PREVIOUS_MONTH9_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0452) +#define ZCL_PREVIOUS_MONTH9_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0453) +#define ZCL_PREVIOUS_MONTH10_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0454) +#define ZCL_PREVIOUS_MONTH10_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0455) +#define ZCL_PREVIOUS_MONTH11_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0456) +#define ZCL_PREVIOUS_MONTH11_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0457) +#define ZCL_PREVIOUS_MONTH12_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0458) +#define ZCL_PREVIOUS_MONTH12_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0459) +#define ZCL_PREVIOUS_MONTH13_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x045A) +#define ZCL_PREVIOUS_MONTH13_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x045B) +#define ZCL_METERING_HISTORICAL_FREEZE_TIME_ATTRIBUTE_ID (0x045C) +#define ZCL_CURRENT_DAY_MAX_DEMAND_DELIVERED_ATTRIBUTE_ID (0x045D) +#define ZCL_CURRENT_DAY_MAX_DEMAND_DELIVERED_TIME_ATTRIBUTE_ID (0x045E) +#define ZCL_CURRENT_DAY_MAX_DEMAND_RECEIVED_ATTRIBUTE_ID (0x045F) +#define ZCL_CURRENT_DAY_MAX_DEMAND_RECEIVED_TIME_ATTRIBUTE_ID (0x0460) +#define ZCL_PREVIOUS_DAY_MAX_DEMAND_DELIVERED_ATTRIBUTE_ID (0x0461) +#define ZCL_PREVIOUS_DAY_MAX_DEMAND_DELIVERED_TIME_ATTRIBUTE_ID (0x0462) +#define ZCL_PREVIOUS_DAY_MAX_DEMAND_RECEIVED_ATTRIBUTE_ID (0x0463) +#define ZCL_PREVIOUS_DAY_MAX_DEMAND_RECEIVED_TIME_ATTRIBUTE_ID (0x0464) +#define ZCL_MAX_NUMBER_OF_PERIODS_DELIVERED_ATTRIBUTE_ID (0x0500) +#define ZCL_CURRENT_DEMAND_DELIVERED_ATTRIBUTE_ID (0x0600) +#define ZCL_DEMAND_LIMIT_ATTRIBUTE_ID (0x0601) +#define ZCL_DEMAND_INTEGRATION_PERIOD_ATTRIBUTE_ID (0x0602) +#define ZCL_NUMBER_OF_DEMAND_SUBINTERVALS_ATTRIBUTE_ID (0x0603) +#define ZCL_DEMAND_LIMIT_ARM_DURATION_IN_MINUTES_ATTRIBUTE_ID (0x0604) +#define ZCL_LOAD_LIMIT_SUPPLY_STATE_ATTRIBUTE_ID (0x0605) +#define ZCL_LOAD_LIMIT_COUNTER_ATTRIBUTE_ID (0x0606) +#define ZCL_SUPPLY_TAMPER_STATE_ATTRIBUTE_ID (0x0607) +#define ZCL_SUPPLY_DEPLETION_STATE_ATTRIBUTE_ID (0x0608) +#define ZCL_SUPPLY_UNCONTROLLED_FLOW_STATE_ATTRIBUTE_ID (0x0609) +#define ZCL_CURRENT_NO_TIER_BLOCK1_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0700) +#define ZCL_CURRENT_NO_TIER_BLOCK2_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0701) +#define ZCL_CURRENT_NO_TIER_BLOCK3_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0702) +#define ZCL_CURRENT_NO_TIER_BLOCK4_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0703) +#define ZCL_CURRENT_NO_TIER_BLOCK5_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0704) +#define ZCL_CURRENT_NO_TIER_BLOCK6_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0705) +#define ZCL_CURRENT_NO_TIER_BLOCK7_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0706) +#define ZCL_CURRENT_NO_TIER_BLOCK8_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0707) +#define ZCL_CURRENT_NO_TIER_BLOCK9_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0708) +#define ZCL_CURRENT_NO_TIER_BLOCK10_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0709) +#define ZCL_CURRENT_NO_TIER_BLOCK11_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x070A) +#define ZCL_CURRENT_NO_TIER_BLOCK12_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x070B) +#define ZCL_CURRENT_NO_TIER_BLOCK13_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x070C) +#define ZCL_CURRENT_NO_TIER_BLOCK14_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x070D) +#define ZCL_CURRENT_NO_TIER_BLOCK15_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x070E) +#define ZCL_CURRENT_NO_TIER_BLOCK16_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x070F) +#define ZCL_CURRENT_TIER1_BLOCK1_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0710) +#define ZCL_CURRENT_TIER1_BLOCK2_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0711) +#define ZCL_CURRENT_TIER1_BLOCK3_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0712) +#define ZCL_CURRENT_TIER1_BLOCK4_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0713) +#define ZCL_CURRENT_TIER1_BLOCK5_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0714) +#define ZCL_CURRENT_TIER1_BLOCK6_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0715) +#define ZCL_CURRENT_TIER1_BLOCK7_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0716) +#define ZCL_CURRENT_TIER1_BLOCK8_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0717) +#define ZCL_CURRENT_TIER1_BLOCK9_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0718) +#define ZCL_CURRENT_TIER1_BLOCK10_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0719) +#define ZCL_CURRENT_TIER1_BLOCK11_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x071A) +#define ZCL_CURRENT_TIER1_BLOCK12_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x071B) +#define ZCL_CURRENT_TIER1_BLOCK13_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x071C) +#define ZCL_CURRENT_TIER1_BLOCK14_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x071D) +#define ZCL_CURRENT_TIER1_BLOCK15_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x071E) +#define ZCL_CURRENT_TIER1_BLOCK16_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x071F) +#define ZCL_CURRENT_TIER2_BLOCK1_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0720) +#define ZCL_CURRENT_TIER2_BLOCK2_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0721) +#define ZCL_CURRENT_TIER2_BLOCK3_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0722) +#define ZCL_CURRENT_TIER2_BLOCK4_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0723) +#define ZCL_CURRENT_TIER2_BLOCK5_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0724) +#define ZCL_CURRENT_TIER2_BLOCK6_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0725) +#define ZCL_CURRENT_TIER2_BLOCK7_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0726) +#define ZCL_CURRENT_TIER2_BLOCK8_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0727) +#define ZCL_CURRENT_TIER2_BLOCK9_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0728) +#define ZCL_CURRENT_TIER2_BLOCK10_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0729) +#define ZCL_CURRENT_TIER2_BLOCK11_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x072A) +#define ZCL_CURRENT_TIER2_BLOCK12_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x072B) +#define ZCL_CURRENT_TIER2_BLOCK13_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x072C) +#define ZCL_CURRENT_TIER2_BLOCK14_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x072D) +#define ZCL_CURRENT_TIER2_BLOCK15_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x072E) +#define ZCL_CURRENT_TIER2_BLOCK16_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x072F) +#define ZCL_CURRENT_TIER3_BLOCK1_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0730) +#define ZCL_CURRENT_TIER3_BLOCK2_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0731) +#define ZCL_CURRENT_TIER3_BLOCK3_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0732) +#define ZCL_CURRENT_TIER3_BLOCK4_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0733) +#define ZCL_CURRENT_TIER3_BLOCK5_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0734) +#define ZCL_CURRENT_TIER3_BLOCK6_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0735) +#define ZCL_CURRENT_TIER3_BLOCK7_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0736) +#define ZCL_CURRENT_TIER3_BLOCK8_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0737) +#define ZCL_CURRENT_TIER3_BLOCK9_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0738) +#define ZCL_CURRENT_TIER3_BLOCK10_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0739) +#define ZCL_CURRENT_TIER3_BLOCK11_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x073A) +#define ZCL_CURRENT_TIER3_BLOCK12_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x073B) +#define ZCL_CURRENT_TIER3_BLOCK13_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x073C) +#define ZCL_CURRENT_TIER3_BLOCK14_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x073D) +#define ZCL_CURRENT_TIER3_BLOCK15_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x073E) +#define ZCL_CURRENT_TIER3_BLOCK16_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x073F) +#define ZCL_CURRENT_TIER4_BLOCK1_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0740) +#define ZCL_CURRENT_TIER4_BLOCK2_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0741) +#define ZCL_CURRENT_TIER4_BLOCK3_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0742) +#define ZCL_CURRENT_TIER4_BLOCK4_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0743) +#define ZCL_CURRENT_TIER4_BLOCK5_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0744) +#define ZCL_CURRENT_TIER4_BLOCK6_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0745) +#define ZCL_CURRENT_TIER4_BLOCK7_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0746) +#define ZCL_CURRENT_TIER4_BLOCK8_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0747) +#define ZCL_CURRENT_TIER4_BLOCK9_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0748) +#define ZCL_CURRENT_TIER4_BLOCK10_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0749) +#define ZCL_CURRENT_TIER4_BLOCK11_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x074A) +#define ZCL_CURRENT_TIER4_BLOCK12_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x074B) +#define ZCL_CURRENT_TIER4_BLOCK13_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x074C) +#define ZCL_CURRENT_TIER4_BLOCK14_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x074D) +#define ZCL_CURRENT_TIER4_BLOCK15_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x074E) +#define ZCL_CURRENT_TIER4_BLOCK16_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x074F) +#define ZCL_CURRENT_TIER5_BLOCK1_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0750) +#define ZCL_CURRENT_TIER5_BLOCK2_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0751) +#define ZCL_CURRENT_TIER5_BLOCK3_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0752) +#define ZCL_CURRENT_TIER5_BLOCK4_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0753) +#define ZCL_CURRENT_TIER5_BLOCK5_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0754) +#define ZCL_CURRENT_TIER5_BLOCK6_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0755) +#define ZCL_CURRENT_TIER5_BLOCK7_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0756) +#define ZCL_CURRENT_TIER5_BLOCK8_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0757) +#define ZCL_CURRENT_TIER5_BLOCK9_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0758) +#define ZCL_CURRENT_TIER5_BLOCK10_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0759) +#define ZCL_CURRENT_TIER5_BLOCK11_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x075A) +#define ZCL_CURRENT_TIER5_BLOCK12_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x075B) +#define ZCL_CURRENT_TIER5_BLOCK13_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x075C) +#define ZCL_CURRENT_TIER5_BLOCK14_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x075D) +#define ZCL_CURRENT_TIER5_BLOCK15_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x075E) +#define ZCL_CURRENT_TIER5_BLOCK16_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x075F) +#define ZCL_CURRENT_TIER6_BLOCK1_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0760) +#define ZCL_CURRENT_TIER6_BLOCK2_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0761) +#define ZCL_CURRENT_TIER6_BLOCK3_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0762) +#define ZCL_CURRENT_TIER6_BLOCK4_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0763) +#define ZCL_CURRENT_TIER6_BLOCK5_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0764) +#define ZCL_CURRENT_TIER6_BLOCK6_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0765) +#define ZCL_CURRENT_TIER6_BLOCK7_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0766) +#define ZCL_CURRENT_TIER6_BLOCK8_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0767) +#define ZCL_CURRENT_TIER6_BLOCK9_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0768) +#define ZCL_CURRENT_TIER6_BLOCK10_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0769) +#define ZCL_CURRENT_TIER6_BLOCK11_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x076A) +#define ZCL_CURRENT_TIER6_BLOCK12_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x076B) +#define ZCL_CURRENT_TIER6_BLOCK13_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x076C) +#define ZCL_CURRENT_TIER6_BLOCK14_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x076D) +#define ZCL_CURRENT_TIER6_BLOCK15_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x076E) +#define ZCL_CURRENT_TIER6_BLOCK16_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x076F) +#define ZCL_CURRENT_TIER7_BLOCK1_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0770) +#define ZCL_CURRENT_TIER7_BLOCK2_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0771) +#define ZCL_CURRENT_TIER7_BLOCK3_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0772) +#define ZCL_CURRENT_TIER7_BLOCK4_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0773) +#define ZCL_CURRENT_TIER7_BLOCK5_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0774) +#define ZCL_CURRENT_TIER7_BLOCK6_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0775) +#define ZCL_CURRENT_TIER7_BLOCK7_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0776) +#define ZCL_CURRENT_TIER7_BLOCK8_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0777) +#define ZCL_CURRENT_TIER7_BLOCK9_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0778) +#define ZCL_CURRENT_TIER7_BLOCK10_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0779) +#define ZCL_CURRENT_TIER7_BLOCK11_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x077A) +#define ZCL_CURRENT_TIER7_BLOCK12_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x077B) +#define ZCL_CURRENT_TIER7_BLOCK13_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x077C) +#define ZCL_CURRENT_TIER7_BLOCK14_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x077D) +#define ZCL_CURRENT_TIER7_BLOCK15_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x077E) +#define ZCL_CURRENT_TIER7_BLOCK16_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x077F) +#define ZCL_CURRENT_TIER8_BLOCK1_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0780) +#define ZCL_CURRENT_TIER8_BLOCK2_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0781) +#define ZCL_CURRENT_TIER8_BLOCK3_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0782) +#define ZCL_CURRENT_TIER8_BLOCK4_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0783) +#define ZCL_CURRENT_TIER8_BLOCK5_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0784) +#define ZCL_CURRENT_TIER8_BLOCK6_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0785) +#define ZCL_CURRENT_TIER8_BLOCK7_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0786) +#define ZCL_CURRENT_TIER8_BLOCK8_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0787) +#define ZCL_CURRENT_TIER8_BLOCK9_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0788) +#define ZCL_CURRENT_TIER8_BLOCK10_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0789) +#define ZCL_CURRENT_TIER8_BLOCK11_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x078A) +#define ZCL_CURRENT_TIER8_BLOCK12_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x078B) +#define ZCL_CURRENT_TIER8_BLOCK13_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x078C) +#define ZCL_CURRENT_TIER8_BLOCK14_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x078D) +#define ZCL_CURRENT_TIER8_BLOCK15_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x078E) +#define ZCL_CURRENT_TIER8_BLOCK16_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x078F) +#define ZCL_CURRENT_TIER9_BLOCK1_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0790) +#define ZCL_CURRENT_TIER9_BLOCK2_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0791) +#define ZCL_CURRENT_TIER9_BLOCK3_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0792) +#define ZCL_CURRENT_TIER9_BLOCK4_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0793) +#define ZCL_CURRENT_TIER9_BLOCK5_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0794) +#define ZCL_CURRENT_TIER9_BLOCK6_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0795) +#define ZCL_CURRENT_TIER9_BLOCK7_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0796) +#define ZCL_CURRENT_TIER9_BLOCK8_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0797) +#define ZCL_CURRENT_TIER9_BLOCK9_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0798) +#define ZCL_CURRENT_TIER9_BLOCK10_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x0799) +#define ZCL_CURRENT_TIER9_BLOCK11_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x079A) +#define ZCL_CURRENT_TIER9_BLOCK12_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x079B) +#define ZCL_CURRENT_TIER9_BLOCK13_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x079C) +#define ZCL_CURRENT_TIER9_BLOCK14_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x079D) +#define ZCL_CURRENT_TIER9_BLOCK15_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x079E) +#define ZCL_CURRENT_TIER9_BLOCK16_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x079F) +#define ZCL_CURRENT_TIER10_BLOCK1_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07A0) +#define ZCL_CURRENT_TIER10_BLOCK2_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07A1) +#define ZCL_CURRENT_TIER10_BLOCK3_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07A2) +#define ZCL_CURRENT_TIER10_BLOCK4_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07A3) +#define ZCL_CURRENT_TIER10_BLOCK5_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07A4) +#define ZCL_CURRENT_TIER10_BLOCK6_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07A5) +#define ZCL_CURRENT_TIER10_BLOCK7_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07A6) +#define ZCL_CURRENT_TIER10_BLOCK8_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07A7) +#define ZCL_CURRENT_TIER10_BLOCK9_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07A8) +#define ZCL_CURRENT_TIER10_BLOCK10_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07A9) +#define ZCL_CURRENT_TIER10_BLOCK11_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07AA) +#define ZCL_CURRENT_TIER10_BLOCK12_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07AB) +#define ZCL_CURRENT_TIER10_BLOCK13_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07AC) +#define ZCL_CURRENT_TIER10_BLOCK14_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07AD) +#define ZCL_CURRENT_TIER10_BLOCK15_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07AE) +#define ZCL_CURRENT_TIER10_BLOCK16_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07AF) +#define ZCL_CURRENT_TIER11_BLOCK1_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07B0) +#define ZCL_CURRENT_TIER11_BLOCK2_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07B1) +#define ZCL_CURRENT_TIER11_BLOCK3_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07B2) +#define ZCL_CURRENT_TIER11_BLOCK4_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07B3) +#define ZCL_CURRENT_TIER11_BLOCK5_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07B4) +#define ZCL_CURRENT_TIER11_BLOCK6_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07B5) +#define ZCL_CURRENT_TIER11_BLOCK7_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07B6) +#define ZCL_CURRENT_TIER11_BLOCK8_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07B7) +#define ZCL_CURRENT_TIER11_BLOCK9_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07B8) +#define ZCL_CURRENT_TIER11_BLOCK10_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07B9) +#define ZCL_CURRENT_TIER11_BLOCK11_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07BA) +#define ZCL_CURRENT_TIER11_BLOCK12_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07BB) +#define ZCL_CURRENT_TIER11_BLOCK13_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07BC) +#define ZCL_CURRENT_TIER11_BLOCK14_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07BD) +#define ZCL_CURRENT_TIER11_BLOCK15_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07BE) +#define ZCL_CURRENT_TIER11_BLOCK16_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07BF) +#define ZCL_CURRENT_TIER12_BLOCK1_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07C0) +#define ZCL_CURRENT_TIER12_BLOCK2_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07C1) +#define ZCL_CURRENT_TIER12_BLOCK3_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07C2) +#define ZCL_CURRENT_TIER12_BLOCK4_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07C3) +#define ZCL_CURRENT_TIER12_BLOCK5_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07C4) +#define ZCL_CURRENT_TIER12_BLOCK6_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07C5) +#define ZCL_CURRENT_TIER12_BLOCK7_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07C6) +#define ZCL_CURRENT_TIER12_BLOCK8_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07C7) +#define ZCL_CURRENT_TIER12_BLOCK9_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07C8) +#define ZCL_CURRENT_TIER12_BLOCK10_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07C9) +#define ZCL_CURRENT_TIER12_BLOCK11_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07CA) +#define ZCL_CURRENT_TIER12_BLOCK12_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07CB) +#define ZCL_CURRENT_TIER12_BLOCK13_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07CC) +#define ZCL_CURRENT_TIER12_BLOCK14_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07CD) +#define ZCL_CURRENT_TIER12_BLOCK15_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07CE) +#define ZCL_CURRENT_TIER12_BLOCK16_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07CF) +#define ZCL_CURRENT_TIER13_BLOCK1_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07D0) +#define ZCL_CURRENT_TIER13_BLOCK2_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07D1) +#define ZCL_CURRENT_TIER13_BLOCK3_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07D2) +#define ZCL_CURRENT_TIER13_BLOCK4_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07D3) +#define ZCL_CURRENT_TIER13_BLOCK5_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07D4) +#define ZCL_CURRENT_TIER13_BLOCK6_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07D5) +#define ZCL_CURRENT_TIER13_BLOCK7_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07D6) +#define ZCL_CURRENT_TIER13_BLOCK8_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07D7) +#define ZCL_CURRENT_TIER13_BLOCK9_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07D8) +#define ZCL_CURRENT_TIER13_BLOCK10_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07D9) +#define ZCL_CURRENT_TIER13_BLOCK11_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07DA) +#define ZCL_CURRENT_TIER13_BLOCK12_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07DB) +#define ZCL_CURRENT_TIER13_BLOCK13_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07DC) +#define ZCL_CURRENT_TIER13_BLOCK14_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07DD) +#define ZCL_CURRENT_TIER13_BLOCK15_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07DE) +#define ZCL_CURRENT_TIER13_BLOCK16_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07DF) +#define ZCL_CURRENT_TIER14_BLOCK1_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07E0) +#define ZCL_CURRENT_TIER14_BLOCK2_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07E1) +#define ZCL_CURRENT_TIER14_BLOCK3_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07E2) +#define ZCL_CURRENT_TIER14_BLOCK4_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07E3) +#define ZCL_CURRENT_TIER14_BLOCK5_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07E4) +#define ZCL_CURRENT_TIER14_BLOCK6_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07E5) +#define ZCL_CURRENT_TIER14_BLOCK7_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07E6) +#define ZCL_CURRENT_TIER14_BLOCK8_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07E7) +#define ZCL_CURRENT_TIER14_BLOCK9_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07E8) +#define ZCL_CURRENT_TIER14_BLOCK10_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07E9) +#define ZCL_CURRENT_TIER14_BLOCK11_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07EA) +#define ZCL_CURRENT_TIER14_BLOCK12_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07EB) +#define ZCL_CURRENT_TIER14_BLOCK13_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07EC) +#define ZCL_CURRENT_TIER14_BLOCK14_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07ED) +#define ZCL_CURRENT_TIER14_BLOCK15_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07EE) +#define ZCL_CURRENT_TIER14_BLOCK16_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07EF) +#define ZCL_CURRENT_TIER15_BLOCK1_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07F0) +#define ZCL_CURRENT_TIER15_BLOCK2_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07F1) +#define ZCL_CURRENT_TIER15_BLOCK3_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07F2) +#define ZCL_CURRENT_TIER15_BLOCK4_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07F3) +#define ZCL_CURRENT_TIER15_BLOCK5_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07F4) +#define ZCL_CURRENT_TIER15_BLOCK6_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07F5) +#define ZCL_CURRENT_TIER15_BLOCK7_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07F6) +#define ZCL_CURRENT_TIER15_BLOCK8_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07F7) +#define ZCL_CURRENT_TIER15_BLOCK9_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07F8) +#define ZCL_CURRENT_TIER15_BLOCK10_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07F9) +#define ZCL_CURRENT_TIER15_BLOCK11_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07FA) +#define ZCL_CURRENT_TIER15_BLOCK12_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07FB) +#define ZCL_CURRENT_TIER15_BLOCK13_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07FC) +#define ZCL_CURRENT_TIER15_BLOCK14_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07FD) +#define ZCL_CURRENT_TIER15_BLOCK15_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07FE) +#define ZCL_CURRENT_TIER15_BLOCK16_SUMMATION_DELIVERED_ATTRIBUTE_ID (0x07FF) +#define ZCL_GENERIC_ALARM_MASK_ATTRIBUTE_ID (0x0800) +#define ZCL_ELECTRICITY_ALARM_MASK_ATTRIBUTE_ID (0x0801) +#define ZCL_GENERIC_FLOW_PRESSURE_ALARM_MASK_ATTRIBUTE_ID (0x0802) +#define ZCL_WATER_SPECIFIC_ALARM_MASK_ATTRIBUTE_ID (0x0803) +#define ZCL_HEAT_AND_COOLING_SPECIFIC_ALARM_MASK_ATTRIBUTE_ID (0x0804) +#define ZCL_GAS_SPECIFIC_ALARM_MASK_ATTRIBUTE_ID (0x0805) +#define ZCL_METERING_EXTENDED_GENERIC_ALARM_MASK_ATTRIBUTE_ID (0x0806) +#define ZCL_METERING_MANUFACTURE_ALARM_MASK_ATTRIBUTE_ID (0x0807) +#define ZCL_CURRENT_NO_TIER_BLOCK1_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0900) +#define ZCL_CURRENT_NO_TIER_BLOCK2_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0901) +#define ZCL_CURRENT_NO_TIER_BLOCK3_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0902) +#define ZCL_CURRENT_NO_TIER_BLOCK4_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0903) +#define ZCL_CURRENT_NO_TIER_BLOCK5_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0904) +#define ZCL_CURRENT_NO_TIER_BLOCK6_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0905) +#define ZCL_CURRENT_NO_TIER_BLOCK7_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0906) +#define ZCL_CURRENT_NO_TIER_BLOCK8_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0907) +#define ZCL_CURRENT_NO_TIER_BLOCK9_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0908) +#define ZCL_CURRENT_NO_TIER_BLOCK10_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0909) +#define ZCL_CURRENT_NO_TIER_BLOCK11_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x090A) +#define ZCL_CURRENT_NO_TIER_BLOCK12_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x090B) +#define ZCL_CURRENT_NO_TIER_BLOCK13_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x090C) +#define ZCL_CURRENT_NO_TIER_BLOCK14_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x090D) +#define ZCL_CURRENT_NO_TIER_BLOCK15_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x090E) +#define ZCL_CURRENT_NO_TIER_BLOCK16_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x090F) +#define ZCL_CURRENT_TIER1_BLOCK1_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0910) +#define ZCL_CURRENT_TIER1_BLOCK2_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0911) +#define ZCL_CURRENT_TIER1_BLOCK3_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0912) +#define ZCL_CURRENT_TIER1_BLOCK4_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0913) +#define ZCL_CURRENT_TIER1_BLOCK5_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0914) +#define ZCL_CURRENT_TIER1_BLOCK6_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0915) +#define ZCL_CURRENT_TIER1_BLOCK7_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0916) +#define ZCL_CURRENT_TIER1_BLOCK8_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0917) +#define ZCL_CURRENT_TIER1_BLOCK9_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0918) +#define ZCL_CURRENT_TIER1_BLOCK10_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0919) +#define ZCL_CURRENT_TIER1_BLOCK11_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x091A) +#define ZCL_CURRENT_TIER1_BLOCK12_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x091B) +#define ZCL_CURRENT_TIER1_BLOCK13_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x091C) +#define ZCL_CURRENT_TIER1_BLOCK14_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x091D) +#define ZCL_CURRENT_TIER1_BLOCK15_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x091E) +#define ZCL_CURRENT_TIER1_BLOCK16_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x091F) +#define ZCL_CURRENT_TIER2_BLOCK1_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0920) +#define ZCL_CURRENT_TIER2_BLOCK2_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0921) +#define ZCL_CURRENT_TIER2_BLOCK3_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0922) +#define ZCL_CURRENT_TIER2_BLOCK4_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0923) +#define ZCL_CURRENT_TIER2_BLOCK5_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0924) +#define ZCL_CURRENT_TIER2_BLOCK6_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0925) +#define ZCL_CURRENT_TIER2_BLOCK7_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0926) +#define ZCL_CURRENT_TIER2_BLOCK8_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0927) +#define ZCL_CURRENT_TIER2_BLOCK9_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0928) +#define ZCL_CURRENT_TIER2_BLOCK10_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0929) +#define ZCL_CURRENT_TIER2_BLOCK11_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x092A) +#define ZCL_CURRENT_TIER2_BLOCK12_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x092B) +#define ZCL_CURRENT_TIER2_BLOCK13_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x092C) +#define ZCL_CURRENT_TIER2_BLOCK14_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x092D) +#define ZCL_CURRENT_TIER2_BLOCK15_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x092E) +#define ZCL_CURRENT_TIER2_BLOCK16_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x092F) +#define ZCL_CURRENT_TIER3_BLOCK1_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0930) +#define ZCL_CURRENT_TIER3_BLOCK2_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0931) +#define ZCL_CURRENT_TIER3_BLOCK3_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0932) +#define ZCL_CURRENT_TIER3_BLOCK4_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0933) +#define ZCL_CURRENT_TIER3_BLOCK5_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0934) +#define ZCL_CURRENT_TIER3_BLOCK6_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0935) +#define ZCL_CURRENT_TIER3_BLOCK7_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0936) +#define ZCL_CURRENT_TIER3_BLOCK8_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0937) +#define ZCL_CURRENT_TIER3_BLOCK9_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0938) +#define ZCL_CURRENT_TIER3_BLOCK10_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0939) +#define ZCL_CURRENT_TIER3_BLOCK11_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x093A) +#define ZCL_CURRENT_TIER3_BLOCK12_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x093B) +#define ZCL_CURRENT_TIER3_BLOCK13_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x093C) +#define ZCL_CURRENT_TIER3_BLOCK14_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x093D) +#define ZCL_CURRENT_TIER3_BLOCK15_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x093E) +#define ZCL_CURRENT_TIER3_BLOCK16_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x093F) +#define ZCL_CURRENT_TIER4_BLOCK1_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0940) +#define ZCL_CURRENT_TIER4_BLOCK2_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0941) +#define ZCL_CURRENT_TIER4_BLOCK3_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0942) +#define ZCL_CURRENT_TIER4_BLOCK4_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0943) +#define ZCL_CURRENT_TIER4_BLOCK5_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0944) +#define ZCL_CURRENT_TIER4_BLOCK6_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0945) +#define ZCL_CURRENT_TIER4_BLOCK7_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0946) +#define ZCL_CURRENT_TIER4_BLOCK8_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0947) +#define ZCL_CURRENT_TIER4_BLOCK9_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0948) +#define ZCL_CURRENT_TIER4_BLOCK10_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0949) +#define ZCL_CURRENT_TIER4_BLOCK11_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x094A) +#define ZCL_CURRENT_TIER4_BLOCK12_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x094B) +#define ZCL_CURRENT_TIER4_BLOCK13_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x094C) +#define ZCL_CURRENT_TIER4_BLOCK14_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x094D) +#define ZCL_CURRENT_TIER4_BLOCK15_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x094E) +#define ZCL_CURRENT_TIER4_BLOCK16_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x094F) +#define ZCL_CURRENT_TIER5_BLOCK1_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0950) +#define ZCL_CURRENT_TIER5_BLOCK2_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0951) +#define ZCL_CURRENT_TIER5_BLOCK3_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0952) +#define ZCL_CURRENT_TIER5_BLOCK4_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0953) +#define ZCL_CURRENT_TIER5_BLOCK5_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0954) +#define ZCL_CURRENT_TIER5_BLOCK6_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0955) +#define ZCL_CURRENT_TIER5_BLOCK7_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0956) +#define ZCL_CURRENT_TIER5_BLOCK8_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0957) +#define ZCL_CURRENT_TIER5_BLOCK9_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0958) +#define ZCL_CURRENT_TIER5_BLOCK10_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0959) +#define ZCL_CURRENT_TIER5_BLOCK11_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x095A) +#define ZCL_CURRENT_TIER5_BLOCK12_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x095B) +#define ZCL_CURRENT_TIER5_BLOCK13_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x095C) +#define ZCL_CURRENT_TIER5_BLOCK14_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x095D) +#define ZCL_CURRENT_TIER5_BLOCK15_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x095E) +#define ZCL_CURRENT_TIER5_BLOCK16_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x095F) +#define ZCL_CURRENT_TIER6_BLOCK1_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0960) +#define ZCL_CURRENT_TIER6_BLOCK2_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0961) +#define ZCL_CURRENT_TIER6_BLOCK3_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0962) +#define ZCL_CURRENT_TIER6_BLOCK4_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0963) +#define ZCL_CURRENT_TIER6_BLOCK5_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0964) +#define ZCL_CURRENT_TIER6_BLOCK6_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0965) +#define ZCL_CURRENT_TIER6_BLOCK7_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0966) +#define ZCL_CURRENT_TIER6_BLOCK8_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0967) +#define ZCL_CURRENT_TIER6_BLOCK9_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0968) +#define ZCL_CURRENT_TIER6_BLOCK10_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0969) +#define ZCL_CURRENT_TIER6_BLOCK11_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x096A) +#define ZCL_CURRENT_TIER6_BLOCK12_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x096B) +#define ZCL_CURRENT_TIER6_BLOCK13_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x096C) +#define ZCL_CURRENT_TIER6_BLOCK14_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x096D) +#define ZCL_CURRENT_TIER6_BLOCK15_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x096E) +#define ZCL_CURRENT_TIER6_BLOCK16_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x096F) +#define ZCL_CURRENT_TIER7_BLOCK1_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0970) +#define ZCL_CURRENT_TIER7_BLOCK2_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0971) +#define ZCL_CURRENT_TIER7_BLOCK3_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0972) +#define ZCL_CURRENT_TIER7_BLOCK4_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0973) +#define ZCL_CURRENT_TIER7_BLOCK5_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0974) +#define ZCL_CURRENT_TIER7_BLOCK6_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0975) +#define ZCL_CURRENT_TIER7_BLOCK7_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0976) +#define ZCL_CURRENT_TIER7_BLOCK8_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0977) +#define ZCL_CURRENT_TIER7_BLOCK9_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0978) +#define ZCL_CURRENT_TIER7_BLOCK10_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0979) +#define ZCL_CURRENT_TIER7_BLOCK11_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x097A) +#define ZCL_CURRENT_TIER7_BLOCK12_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x097B) +#define ZCL_CURRENT_TIER7_BLOCK13_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x097C) +#define ZCL_CURRENT_TIER7_BLOCK14_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x097D) +#define ZCL_CURRENT_TIER7_BLOCK15_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x097E) +#define ZCL_CURRENT_TIER7_BLOCK16_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x097F) +#define ZCL_CURRENT_TIER8_BLOCK1_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0980) +#define ZCL_CURRENT_TIER8_BLOCK2_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0981) +#define ZCL_CURRENT_TIER8_BLOCK3_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0982) +#define ZCL_CURRENT_TIER8_BLOCK4_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0983) +#define ZCL_CURRENT_TIER8_BLOCK5_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0984) +#define ZCL_CURRENT_TIER8_BLOCK6_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0985) +#define ZCL_CURRENT_TIER8_BLOCK7_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0986) +#define ZCL_CURRENT_TIER8_BLOCK8_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0987) +#define ZCL_CURRENT_TIER8_BLOCK9_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0988) +#define ZCL_CURRENT_TIER8_BLOCK10_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0989) +#define ZCL_CURRENT_TIER8_BLOCK11_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x098A) +#define ZCL_CURRENT_TIER8_BLOCK12_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x098B) +#define ZCL_CURRENT_TIER8_BLOCK13_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x098C) +#define ZCL_CURRENT_TIER8_BLOCK14_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x098D) +#define ZCL_CURRENT_TIER8_BLOCK15_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x098E) +#define ZCL_CURRENT_TIER8_BLOCK16_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x098F) +#define ZCL_CURRENT_TIER9_BLOCK1_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0990) +#define ZCL_CURRENT_TIER9_BLOCK2_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0991) +#define ZCL_CURRENT_TIER9_BLOCK3_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0992) +#define ZCL_CURRENT_TIER9_BLOCK4_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0993) +#define ZCL_CURRENT_TIER9_BLOCK5_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0994) +#define ZCL_CURRENT_TIER9_BLOCK6_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0995) +#define ZCL_CURRENT_TIER9_BLOCK7_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0996) +#define ZCL_CURRENT_TIER9_BLOCK8_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0997) +#define ZCL_CURRENT_TIER9_BLOCK9_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0998) +#define ZCL_CURRENT_TIER9_BLOCK10_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x0999) +#define ZCL_CURRENT_TIER9_BLOCK11_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x099A) +#define ZCL_CURRENT_TIER9_BLOCK12_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x099B) +#define ZCL_CURRENT_TIER9_BLOCK13_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x099C) +#define ZCL_CURRENT_TIER9_BLOCK14_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x099D) +#define ZCL_CURRENT_TIER9_BLOCK15_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x099E) +#define ZCL_CURRENT_TIER9_BLOCK16_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x099F) +#define ZCL_CURRENT_TIER10_BLOCK1_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09A0) +#define ZCL_CURRENT_TIER10_BLOCK2_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09A1) +#define ZCL_CURRENT_TIER10_BLOCK3_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09A2) +#define ZCL_CURRENT_TIER10_BLOCK4_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09A3) +#define ZCL_CURRENT_TIER10_BLOCK5_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09A4) +#define ZCL_CURRENT_TIER10_BLOCK6_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09A5) +#define ZCL_CURRENT_TIER10_BLOCK7_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09A6) +#define ZCL_CURRENT_TIER10_BLOCK8_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09A7) +#define ZCL_CURRENT_TIER10_BLOCK9_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09A8) +#define ZCL_CURRENT_TIER10_BLOCK10_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09A9) +#define ZCL_CURRENT_TIER10_BLOCK11_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09AA) +#define ZCL_CURRENT_TIER10_BLOCK12_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09AB) +#define ZCL_CURRENT_TIER10_BLOCK13_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09AC) +#define ZCL_CURRENT_TIER10_BLOCK14_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09AD) +#define ZCL_CURRENT_TIER10_BLOCK15_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09AE) +#define ZCL_CURRENT_TIER10_BLOCK16_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09AF) +#define ZCL_CURRENT_TIER11_BLOCK1_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09B0) +#define ZCL_CURRENT_TIER11_BLOCK2_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09B1) +#define ZCL_CURRENT_TIER11_BLOCK3_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09B2) +#define ZCL_CURRENT_TIER11_BLOCK4_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09B3) +#define ZCL_CURRENT_TIER11_BLOCK5_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09B4) +#define ZCL_CURRENT_TIER11_BLOCK6_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09B5) +#define ZCL_CURRENT_TIER11_BLOCK7_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09B6) +#define ZCL_CURRENT_TIER11_BLOCK8_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09B7) +#define ZCL_CURRENT_TIER11_BLOCK9_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09B8) +#define ZCL_CURRENT_TIER11_BLOCK10_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09B9) +#define ZCL_CURRENT_TIER11_BLOCK11_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09BA) +#define ZCL_CURRENT_TIER11_BLOCK12_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09BB) +#define ZCL_CURRENT_TIER11_BLOCK13_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09BC) +#define ZCL_CURRENT_TIER11_BLOCK14_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09BD) +#define ZCL_CURRENT_TIER11_BLOCK15_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09BE) +#define ZCL_CURRENT_TIER11_BLOCK16_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09BF) +#define ZCL_CURRENT_TIER12_BLOCK1_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09C0) +#define ZCL_CURRENT_TIER12_BLOCK2_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09C1) +#define ZCL_CURRENT_TIER12_BLOCK3_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09C2) +#define ZCL_CURRENT_TIER12_BLOCK4_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09C3) +#define ZCL_CURRENT_TIER12_BLOCK5_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09C4) +#define ZCL_CURRENT_TIER12_BLOCK6_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09C5) +#define ZCL_CURRENT_TIER12_BLOCK7_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09C6) +#define ZCL_CURRENT_TIER12_BLOCK8_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09C7) +#define ZCL_CURRENT_TIER12_BLOCK9_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09C8) +#define ZCL_CURRENT_TIER12_BLOCK10_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09C9) +#define ZCL_CURRENT_TIER12_BLOCK11_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09CA) +#define ZCL_CURRENT_TIER12_BLOCK12_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09CB) +#define ZCL_CURRENT_TIER12_BLOCK13_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09CC) +#define ZCL_CURRENT_TIER12_BLOCK14_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09CD) +#define ZCL_CURRENT_TIER12_BLOCK15_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09CE) +#define ZCL_CURRENT_TIER12_BLOCK16_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09CF) +#define ZCL_CURRENT_TIER13_BLOCK1_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09D0) +#define ZCL_CURRENT_TIER13_BLOCK2_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09D1) +#define ZCL_CURRENT_TIER13_BLOCK3_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09D2) +#define ZCL_CURRENT_TIER13_BLOCK4_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09D3) +#define ZCL_CURRENT_TIER13_BLOCK5_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09D4) +#define ZCL_CURRENT_TIER13_BLOCK6_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09D5) +#define ZCL_CURRENT_TIER13_BLOCK7_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09D6) +#define ZCL_CURRENT_TIER13_BLOCK8_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09D7) +#define ZCL_CURRENT_TIER13_BLOCK9_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09D8) +#define ZCL_CURRENT_TIER13_BLOCK10_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09D9) +#define ZCL_CURRENT_TIER13_BLOCK11_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09DA) +#define ZCL_CURRENT_TIER13_BLOCK12_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09DB) +#define ZCL_CURRENT_TIER13_BLOCK13_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09DC) +#define ZCL_CURRENT_TIER13_BLOCK14_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09DD) +#define ZCL_CURRENT_TIER13_BLOCK15_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09DE) +#define ZCL_CURRENT_TIER13_BLOCK16_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09DF) +#define ZCL_CURRENT_TIER14_BLOCK1_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09E0) +#define ZCL_CURRENT_TIER14_BLOCK2_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09E1) +#define ZCL_CURRENT_TIER14_BLOCK3_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09E2) +#define ZCL_CURRENT_TIER14_BLOCK4_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09E3) +#define ZCL_CURRENT_TIER14_BLOCK5_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09E4) +#define ZCL_CURRENT_TIER14_BLOCK6_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09E5) +#define ZCL_CURRENT_TIER14_BLOCK7_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09E6) +#define ZCL_CURRENT_TIER14_BLOCK8_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09E7) +#define ZCL_CURRENT_TIER14_BLOCK9_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09E8) +#define ZCL_CURRENT_TIER14_BLOCK10_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09E9) +#define ZCL_CURRENT_TIER14_BLOCK11_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09EA) +#define ZCL_CURRENT_TIER14_BLOCK12_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09EB) +#define ZCL_CURRENT_TIER14_BLOCK13_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09EC) +#define ZCL_CURRENT_TIER14_BLOCK14_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09ED) +#define ZCL_CURRENT_TIER14_BLOCK15_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09EE) +#define ZCL_CURRENT_TIER14_BLOCK16_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09EF) +#define ZCL_CURRENT_TIER15_BLOCK1_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09F0) +#define ZCL_CURRENT_TIER15_BLOCK2_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09F1) +#define ZCL_CURRENT_TIER15_BLOCK3_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09F2) +#define ZCL_CURRENT_TIER15_BLOCK4_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09F3) +#define ZCL_CURRENT_TIER15_BLOCK5_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09F4) +#define ZCL_CURRENT_TIER15_BLOCK6_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09F5) +#define ZCL_CURRENT_TIER15_BLOCK7_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09F6) +#define ZCL_CURRENT_TIER15_BLOCK8_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09F7) +#define ZCL_CURRENT_TIER15_BLOCK9_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09F8) +#define ZCL_CURRENT_TIER15_BLOCK10_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09F9) +#define ZCL_CURRENT_TIER15_BLOCK11_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09FA) +#define ZCL_CURRENT_TIER15_BLOCK12_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09FB) +#define ZCL_CURRENT_TIER15_BLOCK13_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09FC) +#define ZCL_CURRENT_TIER15_BLOCK14_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09FD) +#define ZCL_CURRENT_TIER15_BLOCK15_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09FE) +#define ZCL_CURRENT_TIER15_BLOCK16_SUMMATION_RECEIVED_ATTRIBUTE_ID (0x09FF) +#define ZCL_BILL_TO_DATE_DELIVERED_ATTRIBUTE_ID (0x0A00) +#define ZCL_BILL_TO_DATE_TIME_STAMP_DELIVERED_ATTRIBUTE_ID (0x0A01) +#define ZCL_PROJECTED_BILL_DELIVERED_ATTRIBUTE_ID (0x0A02) +#define ZCL_PROJECTED_BILL_TIME_STAMP_DELIVERED_ATTRIBUTE_ID (0x0A03) +#define ZCL_BILL_DELIVERED_TRAILING_DIGIT_ATTRIBUTE_ID (0x0A04) +#define ZCL_BILL_TO_DATE_RECEIVED_ATTRIBUTE_ID (0x0A10) +#define ZCL_BILL_TO_DATE_TIME_STAMP_RECEIVED_ATTRIBUTE_ID (0x0A11) +#define ZCL_PROJECTED_BILL_RECEIVED_ATTRIBUTE_ID (0x0A12) +#define ZCL_PROJECTED_BILL_TIME_STAMP_RECEIVED_ATTRIBUTE_ID (0x0A13) +#define ZCL_BILL_RECEIVED_TRAILING_DIGIT_ATTRIBUTE_ID (0x0A14) +#define ZCL_PROPOSED_CHANGE_SUPPLY_IMPLEMENTATION_TIME_ATTRIBUTE_ID (0x0B00) +#define ZCL_PROPOSED_CHANGE_SUPPLY_STATUS_ATTRIBUTE_ID (0x0B01) +#define ZCL_UNCONTROLLED_FLOW_THESHOLD_ATTRIBUTE_ID (0x0B10) +#define ZCL_UNCONTROLLED_FLOW_THESHOLD_UNIT_OF_MEASURE_ATTRIBUTE_ID (0x0B11) +#define ZCL_UNCONTROLLED_FLOW_MULTIPLIER_ATTRIBUTE_ID (0x0B12) +#define ZCL_UNCONTROLLED_FLOW_DIVISOR_ATTRIBUTE_ID (0x0B13) +#define ZCL_FLOW_STABILIZATION_PERIOD_ATTRIBUTE_ID (0x0B14) +#define ZCL_FLOW_MEASUREMENT_PERIOD_ATTRIBUTE_ID (0x0B15) +#define ZCL_ALTERNATIVE_INSTANTANEOUS_DEMAND_ATTRIBUTE_ID (0x0C00) +#define ZCL_CURRENT_ALTERNATIVE_DAY_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0C01) +#define ZCL_CURRENT_ALTERNATIVE_DAY_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0C02) +#define ZCL_PREVIOUS_DAY_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0C03) +#define ZCL_PREVIOUS_DAY_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0C04) +#define ZCL_CURRENT_ALTERNATIVE_PARTIAL_PROFILE_INTERVAL_START_TIME_DELIVERED_ATTRIBUTE_ID (0x0C05) +#define ZCL_CURRENT_ALTERNATIVE_PARTIAL_PROFILE_INTERVAL_START_TIME_RECEIVED_ATTRIBUTE_ID (0x0C06) +#define ZCL_CURRENT_ALTERNATIVE_PARTIAL_PROFILE_INTERVAL_VALUE_DELIVERED_ATTRIBUTE_ID (0x0C07) +#define ZCL_CURRENT_ALTERNATIVE_PARTIAL_PROFILE_INTERVAL_VALUE_RECEIVED_ATTRIBUTE_ID (0x0C08) +#define ZCL_CURRENT_ALTERNATIVE_DAY_MAX_PRESSURE_ATTRIBUTE_ID (0x0C09) +#define ZCL_CURRENT_ALTERNATIVE_DAY_MIN_PRESSURE_ATTRIBUTE_ID (0x0C0A) +#define ZCL_PREVIOUS_DAY_ALTERNATIVE_MAX_PRESSURE_ATTRIBUTE_ID (0x0C0B) +#define ZCL_PREVIOUS_DAY_ALTERNATIVE_MIN_PRESSURE_ATTRIBUTE_ID (0x0C0C) +#define ZCL_CURRENT_ALTERNATIVE_DAY_ALTERNATIVE_MAX_DEMAND_ATTRIBUTE_ID (0x0C0D) +#define ZCL_PREVIOUS_DAY_ALTERNATIVE_MAX_DEMAND_ATTRIBUTE_ID (0x0C0E) +#define ZCL_CURRENT_ALTERNATIVE_MONTH_MAX_DEMAND_ATTRIBUTE_ID (0x0C0F) +#define ZCL_CURRENT_ALTERNATIVE_YEAR_MAX_DEMAND_ATTRIBUTE_ID (0x0C10) +#define ZCL_PREVIOUS_DAY2_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0C20) +#define ZCL_PREVIOUS_DAY2_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0C21) +#define ZCL_PREVIOUS_DAY3_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0C22) +#define ZCL_PREVIOUS_DAY3_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0C23) +#define ZCL_PREVIOUS_DAY4_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0C24) +#define ZCL_PREVIOUS_DAY4_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0C25) +#define ZCL_PREVIOUS_DAY5_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0C26) +#define ZCL_PREVIOUS_DAY5_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0C27) +#define ZCL_PREVIOUS_DAY6_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0C28) +#define ZCL_PREVIOUS_DAY6_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0C29) +#define ZCL_PREVIOUS_DAY7_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0C2A) +#define ZCL_PREVIOUS_DAY7_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0C2B) +#define ZCL_PREVIOUS_DAY8_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0C2C) +#define ZCL_PREVIOUS_DAY8_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0C2D) +#define ZCL_CURRENT_WEEK_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0C30) +#define ZCL_CURRENT_WEEK_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0C31) +#define ZCL_PREVIOUS_WEEK_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0C32) +#define ZCL_PREVIOUS_WEEK_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0C33) +#define ZCL_PREVIOUS_WEEK2_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0C34) +#define ZCL_PREVIOUS_WEEK2_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0C35) +#define ZCL_PREVIOUS_WEEK3_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0C36) +#define ZCL_PREVIOUS_WEEK3_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0C37) +#define ZCL_PREVIOUS_WEEK4_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0C38) +#define ZCL_PREVIOUS_WEEK4_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0C39) +#define ZCL_PREVIOUS_WEEK5_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0C3A) +#define ZCL_PREVIOUS_WEEK5_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0C3B) +#define ZCL_CURRENT_MONTH_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0C40) +#define ZCL_CURRENT_MONTH_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0C41) +#define ZCL_PREVIOUS_MONTH_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0C42) +#define ZCL_PREVIOUS_MONTH_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0C43) +#define ZCL_PREVIOUS_MONTH2_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0C44) +#define ZCL_PREVIOUS_MONTH2_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0C45) +#define ZCL_PREVIOUS_MONTH3_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0C46) +#define ZCL_PREVIOUS_MONTH3_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0C47) +#define ZCL_PREVIOUS_MONTH4_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0C48) +#define ZCL_PREVIOUS_MONTH4_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0C49) +#define ZCL_PREVIOUS_MONTH5_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0C4A) +#define ZCL_PREVIOUS_MONTH5_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0C4B) +#define ZCL_PREVIOUS_MONTH6_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0C4C) +#define ZCL_PREVIOUS_MONTH6_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0C4D) +#define ZCL_PREVIOUS_MONTH7_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0C4E) +#define ZCL_PREVIOUS_MONTH7_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0C4F) +#define ZCL_PREVIOUS_MONTH8_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0C50) +#define ZCL_PREVIOUS_MONTH8_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0C51) +#define ZCL_PREVIOUS_MONTH9_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0C52) +#define ZCL_PREVIOUS_MONTH9_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0C53) +#define ZCL_PREVIOUS_MONTH10_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0C54) +#define ZCL_PREVIOUS_MONTH10_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0C55) +#define ZCL_PREVIOUS_MONTH11_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0C56) +#define ZCL_PREVIOUS_MONTH11_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0C57) +#define ZCL_PREVIOUS_MONTH12_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0C58) +#define ZCL_PREVIOUS_MONTH12_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0C59) +#define ZCL_PREVIOUS_MONTH13_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0C5A) +#define ZCL_PREVIOUS_MONTH13_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0C5B) +#define ZCL_CURRENT_DAY_ALTERNATIVE_MAX_DEMAND_DELIVERED_ATTRIBUTE_ID (0x0C5C) +#define ZCL_CURRENT_DAY_ALTERNATIVE_MAX_DEMAND_DELIVERED_TIME_ATTRIBUTE_ID (0x0C5D) +#define ZCL_CURRENT_DAY_ALTERNATIVE_MAX_DEMAND_RECEIVED_ATTRIBUTE_ID (0x0C5E) +#define ZCL_CURRENT_DAY_ALTERNATIVE_MAX_DEMAND_RECEIVED_TIME_ATTRIBUTE_ID (0x0C5F) +#define ZCL_PREVIOUS_DAY_ALTERNATIVE_MAX_DEMAND_DELIVERED_ATTRIBUTE_ID (0x0C60) +#define ZCL_PREVIOUS_DAY_ALTERNATIVE_MAX_DEMAND_DELIVERED_TIME_ATTRIBUTE_ID (0x0C61) +#define ZCL_PREVIOUS_DAY_ALTERNATIVE_MAX_DEMAND_RECEIVED_ATTRIBUTE_ID (0x0C62) +#define ZCL_PREVIOUS_DAY_ALTERNATIVE_MAX_DEMAND_RECEIVED_TIME_ATTRIBUTE_ID (0x0C63) +#define ZCL_CURRENT_ACTIVE_SUMMATION_Q1_ATTRIBUTE_ID (0x0D01) +#define ZCL_CURRENT_ACTIVE_SUMMATION_Q2_ATTRIBUTE_ID (0x0D02) +#define ZCL_CURRENT_ACTIVE_SUMMATION_Q3_ATTRIBUTE_ID (0x0D03) +#define ZCL_CURRENT_ACTIVE_SUMMATION_Q4_ATTRIBUTE_ID (0x0D04) +#define ZCL_CURRENT_REACTIVE_SUMMATION_Q1_ATTRIBUTE_ID (0x0D05) +#define ZCL_CURRENT_REACTIVE_SUMMATION_Q2_ATTRIBUTE_ID (0x0D06) +#define ZCL_CURRENT_REACTIVE_SUMMATION_Q3_ATTRIBUTE_ID (0x0D07) +#define ZCL_CURRENT_REACTIVE_SUMMATION_Q4_ATTRIBUTE_ID (0x0D08) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Messaging // Client attributes -#define ZCL_MESSAGING_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_MESSAGING_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_MESSAGING_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_MESSAGING_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) -// Attribute types for cluster: Tunneling -// Cluster specification level: se-1.2b-15-0131-02 +// Attribute ids for cluster: Tunneling // Client attributes -#define ZCL_TUNNELING_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_TUNNELING_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_CLOSE_TUNNEL_TIMEOUT_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_TUNNELING_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_TUNNELING_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLOSE_TUNNEL_TIMEOUT_ATTRIBUTE_ID (0x0000) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) -// Attribute types for cluster: Prepayment -// Cluster specification level: se-1.2b-15-0131-02 +// Attribute ids for cluster: Prepayment // Client attributes -#define ZCL_PREPAYMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_PREPAYMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_PAYMENT_CONTROL_CONFIGURATION_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_CREDIT_REMAINING_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_EMERGENCY_CREDIT_REMAINING_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_CREDIT_STATUS_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_CREDIT_REMAINING_TIMESTAMP_ATTRIBUTE_ID 0x0004 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_ACCUMULATED_DEBT_ATTRIBUTE_ID 0x0005 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_OVERALL_DEBT_CAP_ATTRIBUTE_ID 0x0006 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_EMERGENCY_CREDIT_LIMIT_ALLOWANCE_ATTRIBUTE_ID 0x0010 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_EMERGENCY_CREDIT_THRESHOLD_ATTRIBUTE_ID 0x0011 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TOTAL_CREDIT_ADDED_ATTRIBUTE_ID 0x0020 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_MAX_CREDIT_LIMIT_ATTRIBUTE_ID 0x0021 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_MAX_CREDIT_PER_TOP_UP_ATTRIBUTE_ID 0x0022 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_FRIENDLY_CREDIT_WARNING_ATTRIBUTE_ID 0x0030 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_LOW_CREDIT_WARNING_ATTRIBUTE_ID 0x0031 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_IHD_LOW_CREDIT_WARNING_ATTRIBUTE_ID 0x0032 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_INTERRUPT_SUSPEND_TIME_ATTRIBUTE_ID 0x0033 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_REMAINING_FRIENDLY_CREDIT_TIME_ATTRIBUTE_ID 0x0034 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_NEXT_FRIENDLY_CREDIT_PERIOD_ATTRIBUTE_ID 0x0035 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CUT_OFF_VALUE_ATTRIBUTE_ID 0x0040 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TOKEN_CARRIER_ID_ATTRIBUTE_ID 0x0080 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TOP_UP_DATE_TIME_1_ATTRIBUTE_ID 0x0100 // Ver.: always -#define ZCL_TOP_UP_AMOUNT_1_ATTRIBUTE_ID 0x0101 // Ver.: always -#define ZCL_TOP_UP_ORIGINATING_DEVICE_1_ATTRIBUTE_ID 0x0102 // Ver.: always -#define ZCL_TOP_UP_CODE_1_ATTRIBUTE_ID 0x0103 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TOP_UP_DATE_TIME_2_ATTRIBUTE_ID 0x0110 // Ver.: always -#define ZCL_TOP_UP_AMOUNT_2_ATTRIBUTE_ID 0x0111 // Ver.: always -#define ZCL_TOP_UP_ORIGINATING_DEVICE_2_ATTRIBUTE_ID 0x0112 // Ver.: always -#define ZCL_TOP_UP_CODE_2_ATTRIBUTE_ID 0x0113 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TOP_UP_DATE_TIME_3_ATTRIBUTE_ID 0x0120 // Ver.: always -#define ZCL_TOP_UP_AMOUNT_3_ATTRIBUTE_ID 0x0121 // Ver.: always -#define ZCL_TOP_UP_ORIGINATING_DEVICE_3_ATTRIBUTE_ID 0x0122 // Ver.: always -#define ZCL_TOP_UP_CODE_3_ATTRIBUTE_ID 0x0123 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TOP_UP_DATE_TIME_4_ATTRIBUTE_ID 0x0130 // Ver.: always -#define ZCL_TOP_UP_AMOUNT_4_ATTRIBUTE_ID 0x0131 // Ver.: always -#define ZCL_TOP_UP_ORIGINATING_DEVICE_4_ATTRIBUTE_ID 0x0132 // Ver.: always -#define ZCL_TOP_UP_CODE_4_ATTRIBUTE_ID 0x0133 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TOP_UP_DATE_TIME_5_ATTRIBUTE_ID 0x0140 // Ver.: always -#define ZCL_TOP_UP_AMOUNT_5_ATTRIBUTE_ID 0x0141 // Ver.: always -#define ZCL_TOP_UP_ORIGINATING_DEVICE_5_ATTRIBUTE_ID 0x0142 // Ver.: always -#define ZCL_TOP_UP_CODE_5_ATTRIBUTE_ID 0x0143 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_DEBT_LABEL_1_ATTRIBUTE_ID 0x0210 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_DEBT_AMOUNT_1_ATTRIBUTE_ID 0x0211 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_DEBT_RECOVERY_METHOD_1_ATTRIBUTE_ID 0x0212 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_DEBT_RECOVERY_START_TIME_1_ATTRIBUTE_ID 0x0213 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_DEBT_RECOVERY_COLLECTION_TIME_1_ATTRIBUTE_ID 0x0214 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_DEBT_RECOVERY_FREQUENCY_1_ATTRIBUTE_ID 0x0216 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_DEBT_RECOVERY_AMOUNT_1_ATTRIBUTE_ID 0x0217 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_DEBT_RECOVERY_TOP_UP_PERCENTAGE_1_ATTRIBUTE_ID 0x0219 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_DEBT_LABEL_2_ATTRIBUTE_ID 0x0220 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_DEBT_AMOUNT_2_ATTRIBUTE_ID 0x0221 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_DEBT_RECOVERY_METHOD_2_ATTRIBUTE_ID 0x0222 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_DEBT_RECOVERY_START_TIME_2_ATTRIBUTE_ID 0x0223 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_DEBT_RECOVERY_COLLECTION_TIME_2_ATTRIBUTE_ID 0x0224 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_DEBT_RECOVERY_FREQUENCY_2_ATTRIBUTE_ID 0x0226 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_DEBT_RECOVERY_AMOUNT_2_ATTRIBUTE_ID 0x0227 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_DEBT_RECOVERY_TOP_UP_PERCENTAGE_2_ATTRIBUTE_ID 0x0229 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_DEBT_LABEL_3_ATTRIBUTE_ID 0x0230 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_DEBT_AMOUNT_3_ATTRIBUTE_ID 0x0231 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_DEBT_RECOVERY_METHOD_3_ATTRIBUTE_ID 0x0232 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_DEBT_RECOVERY_START_TIME_3_ATTRIBUTE_ID 0x0233 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_DEBT_RECOVERY_COLLECTION_TIME_3_ATTRIBUTE_ID 0x0234 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_DEBT_RECOVERY_FREQUENCY_3_ATTRIBUTE_ID 0x0236 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_DEBT_RECOVERY_AMOUNT_3_ATTRIBUTE_ID 0x0237 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_DEBT_RECOVERY_TOP_UP_PERCENTAGE_3_ATTRIBUTE_ID 0x0239 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREPAYMENT_ALARM_STATUS_ATTRIBUTE_ID 0x0400 // Ver.: since se-1.2a-07-5356-21 -#define ZCL_PREPAY_GENERIC_ALARM_MASK_ATTRIBUTE_ID 0x0401 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREPAY_SWITCH_ALARM_MASK_ATTRIBUTE_ID 0x0402 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREPAY_EVENT_ALARM_MASK_ATTRIBUTE_ID 0x0403 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_HISTORICAL_COST_CONSUMPTION_FORMATTING_ATTRIBUTE_ID 0x0500 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CONSUMPTION_UNIT_OF_MEASUREMENT_ATTRIBUTE_ID 0x0501 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENCY_SCALING_FACTOR_ATTRIBUTE_ID 0x0502 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREPAYMANT_CURRENCY_ATTRIBUTE_ID 0x0503 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_DAY_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x051C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_DAY_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x051D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x051E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x051F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY_2_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0520 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY_2_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0521 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY_3_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0522 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY_3_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0523 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY_4_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0524 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY_4_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0525 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY_5_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0526 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY_5_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0527 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY_6_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0528 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY_6_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0529 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY_7_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x052A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY_7_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x052B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY_8_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x052C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY_8_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x052D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_WEEK_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0530 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_WEEK_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0531 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_WEEK_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0532 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_WEEK_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0533 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_WEEK_2_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0534 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_WEEK_2_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0535 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_WEEK_3_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0536 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_WEEK_3_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0537 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_WEEK_4_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0538 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_WEEK_4_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0539 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_WEEK_5_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x053A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_WEEK_5_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x053B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_MONTH_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0540 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_MONTH_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0541 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0542 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0543 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH_2_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0544 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH_2_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0545 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH_3_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0546 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH_3_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0547 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH_4_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0548 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH_4_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0549 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH_5_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x054A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH_5_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x054B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH_6_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x054C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH_6_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x054D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH_7_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x054E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH_7_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x054F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH_8_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0550 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH_8_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0551 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH_9_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0552 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH_9_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0553 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH_10_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0554 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH_10_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0555 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH_11_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0556 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH_11_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0557 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH_12_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0558 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH_12_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0559 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH_13_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x055A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH_13_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x055B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREPAYMENT_HISTORICAL_FREEZE_TIME_ATTRIBUTE_ID 0x055C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREPAYMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_PREPAYMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Energy Management -// Cluster specification level: se-1.2b-15-0131-02 +#define ZCL_PAYMENT_CONTROL_CONFIGURATION_ATTRIBUTE_ID (0x0000) +#define ZCL_CREDIT_REMAINING_ATTRIBUTE_ID (0x0001) +#define ZCL_EMERGENCY_CREDIT_REMAINING_ATTRIBUTE_ID (0x0002) +#define ZCL_CREDIT_STATUS_ATTRIBUTE_ID (0x0003) +#define ZCL_CREDIT_REMAINING_TIMESTAMP_ATTRIBUTE_ID (0x0004) +#define ZCL_ACCUMULATED_DEBT_ATTRIBUTE_ID (0x0005) +#define ZCL_OVERALL_DEBT_CAP_ATTRIBUTE_ID (0x0006) +#define ZCL_EMERGENCY_CREDIT_LIMIT_ALLOWANCE_ATTRIBUTE_ID (0x0010) +#define ZCL_EMERGENCY_CREDIT_THRESHOLD_ATTRIBUTE_ID (0x0011) +#define ZCL_TOTAL_CREDIT_ADDED_ATTRIBUTE_ID (0x0020) +#define ZCL_MAX_CREDIT_LIMIT_ATTRIBUTE_ID (0x0021) +#define ZCL_MAX_CREDIT_PER_TOP_UP_ATTRIBUTE_ID (0x0022) +#define ZCL_FRIENDLY_CREDIT_WARNING_ATTRIBUTE_ID (0x0030) +#define ZCL_LOW_CREDIT_WARNING_ATTRIBUTE_ID (0x0031) +#define ZCL_IHD_LOW_CREDIT_WARNING_ATTRIBUTE_ID (0x0032) +#define ZCL_INTERRUPT_SUSPEND_TIME_ATTRIBUTE_ID (0x0033) +#define ZCL_REMAINING_FRIENDLY_CREDIT_TIME_ATTRIBUTE_ID (0x0034) +#define ZCL_NEXT_FRIENDLY_CREDIT_PERIOD_ATTRIBUTE_ID (0x0035) +#define ZCL_CUT_OFF_VALUE_ATTRIBUTE_ID (0x0040) +#define ZCL_TOKEN_CARRIER_ID_ATTRIBUTE_ID (0x0080) +#define ZCL_TOP_UP_DATE_TIME_1_ATTRIBUTE_ID (0x0100) +#define ZCL_TOP_UP_AMOUNT_1_ATTRIBUTE_ID (0x0101) +#define ZCL_TOP_UP_ORIGINATING_DEVICE_1_ATTRIBUTE_ID (0x0102) +#define ZCL_TOP_UP_CODE_1_ATTRIBUTE_ID (0x0103) +#define ZCL_TOP_UP_DATE_TIME_2_ATTRIBUTE_ID (0x0110) +#define ZCL_TOP_UP_AMOUNT_2_ATTRIBUTE_ID (0x0111) +#define ZCL_TOP_UP_ORIGINATING_DEVICE_2_ATTRIBUTE_ID (0x0112) +#define ZCL_TOP_UP_CODE_2_ATTRIBUTE_ID (0x0113) +#define ZCL_TOP_UP_DATE_TIME_3_ATTRIBUTE_ID (0x0120) +#define ZCL_TOP_UP_AMOUNT_3_ATTRIBUTE_ID (0x0121) +#define ZCL_TOP_UP_ORIGINATING_DEVICE_3_ATTRIBUTE_ID (0x0122) +#define ZCL_TOP_UP_CODE_3_ATTRIBUTE_ID (0x0123) +#define ZCL_TOP_UP_DATE_TIME_4_ATTRIBUTE_ID (0x0130) +#define ZCL_TOP_UP_AMOUNT_4_ATTRIBUTE_ID (0x0131) +#define ZCL_TOP_UP_ORIGINATING_DEVICE_4_ATTRIBUTE_ID (0x0132) +#define ZCL_TOP_UP_CODE_4_ATTRIBUTE_ID (0x0133) +#define ZCL_TOP_UP_DATE_TIME_5_ATTRIBUTE_ID (0x0140) +#define ZCL_TOP_UP_AMOUNT_5_ATTRIBUTE_ID (0x0141) +#define ZCL_TOP_UP_ORIGINATING_DEVICE_5_ATTRIBUTE_ID (0x0142) +#define ZCL_TOP_UP_CODE_5_ATTRIBUTE_ID (0x0143) +#define ZCL_DEBT_LABEL_1_ATTRIBUTE_ID (0x0210) +#define ZCL_DEBT_AMOUNT_1_ATTRIBUTE_ID (0x0211) +#define ZCL_DEBT_RECOVERY_METHOD_1_ATTRIBUTE_ID (0x0212) +#define ZCL_DEBT_RECOVERY_START_TIME_1_ATTRIBUTE_ID (0x0213) +#define ZCL_DEBT_RECOVERY_COLLECTION_TIME_1_ATTRIBUTE_ID (0x0214) +#define ZCL_DEBT_RECOVERY_FREQUENCY_1_ATTRIBUTE_ID (0x0216) +#define ZCL_DEBT_RECOVERY_AMOUNT_1_ATTRIBUTE_ID (0x0217) +#define ZCL_DEBT_RECOVERY_TOP_UP_PERCENTAGE_1_ATTRIBUTE_ID (0x0219) +#define ZCL_DEBT_LABEL_2_ATTRIBUTE_ID (0x0220) +#define ZCL_DEBT_AMOUNT_2_ATTRIBUTE_ID (0x0221) +#define ZCL_DEBT_RECOVERY_METHOD_2_ATTRIBUTE_ID (0x0222) +#define ZCL_DEBT_RECOVERY_START_TIME_2_ATTRIBUTE_ID (0x0223) +#define ZCL_DEBT_RECOVERY_COLLECTION_TIME_2_ATTRIBUTE_ID (0x0224) +#define ZCL_DEBT_RECOVERY_FREQUENCY_2_ATTRIBUTE_ID (0x0226) +#define ZCL_DEBT_RECOVERY_AMOUNT_2_ATTRIBUTE_ID (0x0227) +#define ZCL_DEBT_RECOVERY_TOP_UP_PERCENTAGE_2_ATTRIBUTE_ID (0x0229) +#define ZCL_DEBT_LABEL_3_ATTRIBUTE_ID (0x0230) +#define ZCL_DEBT_AMOUNT_3_ATTRIBUTE_ID (0x0231) +#define ZCL_DEBT_RECOVERY_METHOD_3_ATTRIBUTE_ID (0x0232) +#define ZCL_DEBT_RECOVERY_START_TIME_3_ATTRIBUTE_ID (0x0233) +#define ZCL_DEBT_RECOVERY_COLLECTION_TIME_3_ATTRIBUTE_ID (0x0234) +#define ZCL_DEBT_RECOVERY_FREQUENCY_3_ATTRIBUTE_ID (0x0236) +#define ZCL_DEBT_RECOVERY_AMOUNT_3_ATTRIBUTE_ID (0x0237) +#define ZCL_DEBT_RECOVERY_TOP_UP_PERCENTAGE_3_ATTRIBUTE_ID (0x0239) +#define ZCL_PREPAYMENT_ALARM_STATUS_ATTRIBUTE_ID (0x0400) +#define ZCL_PREPAY_GENERIC_ALARM_MASK_ATTRIBUTE_ID (0x0401) +#define ZCL_PREPAY_SWITCH_ALARM_MASK_ATTRIBUTE_ID (0x0402) +#define ZCL_PREPAY_EVENT_ALARM_MASK_ATTRIBUTE_ID (0x0403) +#define ZCL_HISTORICAL_COST_CONSUMPTION_FORMATTING_ATTRIBUTE_ID (0x0500) +#define ZCL_CONSUMPTION_UNIT_OF_MEASUREMENT_ATTRIBUTE_ID (0x0501) +#define ZCL_CURRENCY_SCALING_FACTOR_ATTRIBUTE_ID (0x0502) +#define ZCL_PREPAYMANT_CURRENCY_ATTRIBUTE_ID (0x0503) +#define ZCL_CURRENT_DAY_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x051C) +#define ZCL_CURRENT_DAY_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x051D) +#define ZCL_PREVIOUS_DAY_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x051E) +#define ZCL_PREVIOUS_DAY_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x051F) +#define ZCL_PREVIOUS_DAY_2_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0520) +#define ZCL_PREVIOUS_DAY_2_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0521) +#define ZCL_PREVIOUS_DAY_3_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0522) +#define ZCL_PREVIOUS_DAY_3_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0523) +#define ZCL_PREVIOUS_DAY_4_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0524) +#define ZCL_PREVIOUS_DAY_4_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0525) +#define ZCL_PREVIOUS_DAY_5_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0526) +#define ZCL_PREVIOUS_DAY_5_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0527) +#define ZCL_PREVIOUS_DAY_6_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0528) +#define ZCL_PREVIOUS_DAY_6_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0529) +#define ZCL_PREVIOUS_DAY_7_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x052A) +#define ZCL_PREVIOUS_DAY_7_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x052B) +#define ZCL_PREVIOUS_DAY_8_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x052C) +#define ZCL_PREVIOUS_DAY_8_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x052D) +#define ZCL_CURRENT_WEEK_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0530) +#define ZCL_CURRENT_WEEK_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0531) +#define ZCL_PREVIOUS_WEEK_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0532) +#define ZCL_PREVIOUS_WEEK_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0533) +#define ZCL_PREVIOUS_WEEK_2_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0534) +#define ZCL_PREVIOUS_WEEK_2_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0535) +#define ZCL_PREVIOUS_WEEK_3_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0536) +#define ZCL_PREVIOUS_WEEK_3_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0537) +#define ZCL_PREVIOUS_WEEK_4_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0538) +#define ZCL_PREVIOUS_WEEK_4_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0539) +#define ZCL_PREVIOUS_WEEK_5_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x053A) +#define ZCL_PREVIOUS_WEEK_5_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x053B) +#define ZCL_CURRENT_MONTH_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0540) +#define ZCL_CURRENT_MONTH_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0541) +#define ZCL_PREVIOUS_MONTH_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0542) +#define ZCL_PREVIOUS_MONTH_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0543) +#define ZCL_PREVIOUS_MONTH_2_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0544) +#define ZCL_PREVIOUS_MONTH_2_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0545) +#define ZCL_PREVIOUS_MONTH_3_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0546) +#define ZCL_PREVIOUS_MONTH_3_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0547) +#define ZCL_PREVIOUS_MONTH_4_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0548) +#define ZCL_PREVIOUS_MONTH_4_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0549) +#define ZCL_PREVIOUS_MONTH_5_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x054A) +#define ZCL_PREVIOUS_MONTH_5_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x054B) +#define ZCL_PREVIOUS_MONTH_6_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x054C) +#define ZCL_PREVIOUS_MONTH_6_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x054D) +#define ZCL_PREVIOUS_MONTH_7_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x054E) +#define ZCL_PREVIOUS_MONTH_7_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x054F) +#define ZCL_PREVIOUS_MONTH_8_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0550) +#define ZCL_PREVIOUS_MONTH_8_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0551) +#define ZCL_PREVIOUS_MONTH_9_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0552) +#define ZCL_PREVIOUS_MONTH_9_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0553) +#define ZCL_PREVIOUS_MONTH_10_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0554) +#define ZCL_PREVIOUS_MONTH_10_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0555) +#define ZCL_PREVIOUS_MONTH_11_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0556) +#define ZCL_PREVIOUS_MONTH_11_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0557) +#define ZCL_PREVIOUS_MONTH_12_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x0558) +#define ZCL_PREVIOUS_MONTH_12_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x0559) +#define ZCL_PREVIOUS_MONTH_13_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID (0x055A) +#define ZCL_PREVIOUS_MONTH_13_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID (0x055B) +#define ZCL_PREPAYMENT_HISTORICAL_FREEZE_TIME_ATTRIBUTE_ID (0x055C) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Energy Management // Client attributes -#define ZCL_ENERGY_MANAGEMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_ENERGY_MANAGEMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_LOAD_CONTROL_STATE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_CURRENT_EVENT_ID_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_CURRENT_EVENT_STATUS_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_CONFORMANCE_LEVEL_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_MINIMUM_OFF_TIME_ATTRIBUTE_ID 0x0004 // Ver.: always -#define ZCL_MINIMUM_ON_TIME_ATTRIBUTE_ID 0x0005 // Ver.: always -#define ZCL_MINIMUM_CYCLE_PERIOD_ATTRIBUTE_ID 0x0006 // Ver.: always -#define ZCL_ENERGY_MANAGEMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_ENERGY_MANAGEMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Calendar -// Cluster specification level: se-1.2b-15-0131-02 +#define ZCL_LOAD_CONTROL_STATE_ATTRIBUTE_ID (0x0000) +#define ZCL_CURRENT_EVENT_ID_ATTRIBUTE_ID (0x0001) +#define ZCL_CURRENT_EVENT_STATUS_ATTRIBUTE_ID (0x0002) +#define ZCL_CONFORMANCE_LEVEL_ATTRIBUTE_ID (0x0003) +#define ZCL_MINIMUM_OFF_TIME_ATTRIBUTE_ID (0x0004) +#define ZCL_MINIMUM_ON_TIME_ATTRIBUTE_ID (0x0005) +#define ZCL_MINIMUM_CYCLE_PERIOD_ATTRIBUTE_ID (0x0006) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Calendar // Client attributes -#define ZCL_CALENDAR_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_CALENDAR_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_AUXILIARY_SWITCH_1_LABEL_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_AUXILIARY_SWITCH_2_LABEL_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_AUXILIARY_SWITCH_3_LABEL_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_AUXILIARY_SWITCH_4_LABEL_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_AUXILIARY_SWITCH_5_LABEL_ATTRIBUTE_ID 0x0004 // Ver.: always -#define ZCL_AUXILIARY_SWITCH_6_LABEL_ATTRIBUTE_ID 0x0005 // Ver.: always -#define ZCL_AUXILIARY_SWITCH_7_LABEL_ATTRIBUTE_ID 0x0006 // Ver.: always -#define ZCL_AUXILIARY_SWITCH_8_LABEL_ATTRIBUTE_ID 0x0007 // Ver.: always -#define ZCL_CALENDAR_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_CALENDAR_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Device Management -// Cluster specification level: se-1.2b-15-0131-02 +#define ZCL_AUXILIARY_SWITCH_1_LABEL_ATTRIBUTE_ID (0x0000) +#define ZCL_AUXILIARY_SWITCH_2_LABEL_ATTRIBUTE_ID (0x0001) +#define ZCL_AUXILIARY_SWITCH_3_LABEL_ATTRIBUTE_ID (0x0002) +#define ZCL_AUXILIARY_SWITCH_4_LABEL_ATTRIBUTE_ID (0x0003) +#define ZCL_AUXILIARY_SWITCH_5_LABEL_ATTRIBUTE_ID (0x0004) +#define ZCL_AUXILIARY_SWITCH_6_LABEL_ATTRIBUTE_ID (0x0005) +#define ZCL_AUXILIARY_SWITCH_7_LABEL_ATTRIBUTE_ID (0x0006) +#define ZCL_AUXILIARY_SWITCH_8_LABEL_ATTRIBUTE_ID (0x0007) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Device Management // Client attributes -#define ZCL_PROVIDER_ID_CLIENT_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_RECEIVED_PROVIDER_ID_CLIENT_ATTRIBUTE_ID 0x0010 // Ver.: always -#define ZCL_TOU_TARIFF_ACTIVATION_ATTRIBUTE_ID 0x0100 // Ver.: always -#define ZCL_BLOCK_TARIFF_ACTIVATED_ATTRIBUTE_ID 0x0101 // Ver.: always -#define ZCL_BLOCK_TOU_TARIFF_ACTIVATED_ATTRIBUTE_ID 0x0102 // Ver.: always -#define ZCL_SINGLE_TARIFF_RATE_ACTIVATED_ATTRIBUTE_ID 0x0103 // Ver.: always -#define ZCL_ASYNCHRONOUS_BILLING_OCCURRED_ATTRIBUTE_ID 0x0104 // Ver.: always -#define ZCL_SYNCHRONOUS_BILLING_OCCURRED_ATTRIBUTE_ID 0x0105 // Ver.: always -#define ZCL_TARIFF_NOT_SUPPORTED_ATTRIBUTE_ID 0x0106 // Ver.: always -#define ZCL_PRICE_CLUSTER_NOT_FOUND_ATTRIBUTE_ID 0x0107 // Ver.: always -#define ZCL_CURRENCY_CHANGE_PASSIVE_ACTIVATED_ATTRIBUTE_ID 0x0108 // Ver.: always -#define ZCL_CURRENCY_CHANGE_PASSIVE_UPDATED_ATTRIBUTE_ID 0x0109 // Ver.: always -#define ZCL_PRICE_MATRIX_PASSIVE_ACTIVATED_ATTRIBUTE_ID 0x010A // Ver.: always -#define ZCL_PRICE_MATRIX_PASSIVE_UPDATED_ATTRIBUTE_ID 0x010B // Ver.: always -#define ZCL_TARIFF_CHANGE_PASSIVE_ACTIVATED_ATTRIBUTE_ID 0x010C // Ver.: always -#define ZCL_TARIFF_CHANGE_PASSIVE_UPDATED_ATTRIBUTE_ID 0x010D // Ver.: always -#define ZCL_PUBLISH_PRICE_RECEIVED_ATTRIBUTE_ID 0x01B0 // Ver.: always -#define ZCL_PUBLISH_PRICE_ACTIONED_ATTRIBUTE_ID 0x01B1 // Ver.: always -#define ZCL_PUBLISH_PRICE_CANCELLED_ATTRIBUTE_ID 0x01B2 // Ver.: always -#define ZCL_PUBLISH_PRICE_REJECTED_ATTRIBUTE_ID 0x01B3 // Ver.: always -#define ZCL_PUBLISH_TARIFF_INFO_RECEIVED_ATTRIBUTE_ID 0x01B4 // Ver.: always -#define ZCL_PUBLISH_TARIFF_INFO_ACTIONED_ATTRIBUTE_ID 0x01B5 // Ver.: always -#define ZCL_PUBLISH_TARIFF_INFO_CANCELLED_ATTRIBUTE_ID 0x01B6 // Ver.: always -#define ZCL_PUBLISH_TARIFF_INFO_REJECTED_ATTRIBUTE_ID 0x01B7 // Ver.: always -#define ZCL_PUBLISH_PRICE_MATRIX_RECEIVED_ATTRIBUTE_ID 0x01B8 // Ver.: always -#define ZCL_PUBLISH_PRICE_MATRIX_ACTIONED_ATTRIBUTE_ID 0x01B9 // Ver.: always -#define ZCL_PUBLISH_PRICE_MATRIX_CANCELLED_ATTRIBUTE_ID 0x01BA // Ver.: always -#define ZCL_PUBLISH_PRICE_MATRIX_REJECTED_ATTRIBUTE_ID 0x01BB // Ver.: always -#define ZCL_PUBLISH_BLOCK_THRESHOLDS_RECEIVED_ATTRIBUTE_ID 0x01BC // Ver.: always -#define ZCL_PUBLISH_BLOCK_THRESHOLDS_ACTIONED_ATTRIBUTE_ID 0x01BD // Ver.: always -#define ZCL_PUBLISH_BLOCK_THRESHOLDS_CANCELLED_ATTRIBUTE_ID 0x01BE // Ver.: always -#define ZCL_PUBLISH_BLOCK_THRESHOLDS_REJECTED_ATTRIBUTE_ID 0x01BF // Ver.: always -#define ZCL_PUBLISH_CALORIFIC_VALUE_RECEIVED_ATTRIBUTE_ID 0x01C0 // Ver.: always -#define ZCL_PUBLISH_CALORIFIC_VALUE_ACTIONED_ATTRIBUTE_ID 0x01C1 // Ver.: always -#define ZCL_PUBLISH_CALORIFIC_VALUE_CANCELLED_ATTRIBUTE_ID 0x01C2 // Ver.: always -#define ZCL_PUBLISH_CALORIFIC_VALUE_REJECTED_ATTRIBUTE_ID 0x01C3 // Ver.: always -#define ZCL_PUBLISH_CONVERSION_FACTOR_RECEIVED_ATTRIBUTE_ID 0x01C4 // Ver.: always -#define ZCL_PUBLISH_CONVERSION_FACTOR_ACTIONED_ATTRIBUTE_ID 0x01C5 // Ver.: always -#define ZCL_PUBLISH_CONVERSION_FACTOR_CANCELLED_ATTRIBUTE_ID 0x01C6 // Ver.: always -#define ZCL_PUBLISH_CONVERSION_FACTOR_REJECTED_ATTRIBUTE_ID 0x01C7 // Ver.: always -#define ZCL_PUBLISH_CO2_VALUE_RECEIVED_ATTRIBUTE_ID 0x01C8 // Ver.: always -#define ZCL_PUBLISH_CO2_VALUE_ACTIONED_ATTRIBUTE_ID 0x01C9 // Ver.: always -#define ZCL_PUBLISH_CO2_VALUE_CANCELLED_ATTRIBUTE_ID 0x01CA // Ver.: always -#define ZCL_PUBLISH_CO2_VALUE_REJECTED_ATTRIBUTE_ID 0x01CB // Ver.: always -#define ZCL_PUBLISH_CPP_EVENT_RECEIVED_ATTRIBUTE_ID 0x01CC // Ver.: always -#define ZCL_PUBLISH_CPP_EVENT_ACTIONED_ATTRIBUTE_ID 0x01CD // Ver.: always -#define ZCL_PUBLISH_CPP_EVENT_CANCELLED_ATTRIBUTE_ID 0x01CE // Ver.: always -#define ZCL_PUBLISH_CPP_EVENT_REJECTED_ATTRIBUTE_ID 0x01CF // Ver.: always -#define ZCL_PUBLISH_TIER_LABELS_RECEIVED_ATTRIBUTE_ID 0x01D0 // Ver.: always -#define ZCL_PUBLISH_TIER_LABELS_ACTIONED_ATTRIBUTE_ID 0x01D1 // Ver.: always -#define ZCL_PUBLISH_TIER_LABELS_CANCELLED_ATTRIBUTE_ID 0x01D2 // Ver.: always -#define ZCL_PUBLISH_TIER_LABELS_REJECTED_ATTRIBUTE_ID 0x01D3 // Ver.: always -#define ZCL_PUBLISH_BILLING_PERIOD_RECEIVED_ATTRIBUTE_ID 0x01D4 // Ver.: always -#define ZCL_PUBLISH_BILLING_PERIOD_ACTIONED_ATTRIBUTE_ID 0x01D5 // Ver.: always -#define ZCL_PUBLISH_BILLING_PERIOD_CANCELLED_ATTRIBUTE_ID 0x01D6 // Ver.: always -#define ZCL_PUBLISH_BILLING_PERIOD_REJECTED_ATTRIBUTE_ID 0x01D7 // Ver.: always -#define ZCL_PUBLISH_CONSOLIDATED_BILL_RECEIVED_ATTRIBUTE_ID 0x01D8 // Ver.: always -#define ZCL_PUBLISH_CONSOLIDATED_BILL_ACTIONED_ATTRIBUTE_ID 0x01D9 // Ver.: always -#define ZCL_PUBLISH_CONSOLIDATED_BILL_CANCELLED_ATTRIBUTE_ID 0x01DA // Ver.: always -#define ZCL_PUBLISH_CONSOLIDATED_BILL_REJECTED_ATTRIBUTE_ID 0x01DB // Ver.: always -#define ZCL_PUBLISH_BLOCK_PERIOD_RECEIVED_ATTRIBUTE_ID 0x01DC // Ver.: always -#define ZCL_PUBLISH_BLOCK_PERIOD_ACTIONED_ATTRIBUTE_ID 0x01DD // Ver.: always -#define ZCL_PUBLISH_BLOCK_PERIOD_CANCELLED_ATTRIBUTE_ID 0x01DE // Ver.: always -#define ZCL_PUBLISH_BLOCK_PERIOD_REJECTED_ATTRIBUTE_ID 0x01DF // Ver.: always -#define ZCL_PUBLISH_CREDIT_PAYMENT_INFO_RECEIVED_ATTRIBUTE_ID 0x01E0 // Ver.: always -#define ZCL_PUBLISH_CREDIT_PAYMENT_INFO_ACTIONED_ATTRIBUTE_ID 0x01E1 // Ver.: always -#define ZCL_PUBLISH_CREDIT_PAYMENT_INFO_CANCELLED_ATTRIBUTE_ID 0x01E2 // Ver.: always -#define ZCL_PUBLISH_CREDIT_PAYMENT_INFO_REJECTED_ATTRIBUTE_ID 0x01E3 // Ver.: always -#define ZCL_PUBLISH_CURRENCY_CONVERSION_RECEIVED_ATTRIBUTE_ID 0x01E4 // Ver.: always -#define ZCL_PUBLISH_CURRENCY_CONVERSION_ACTIONED_ATTRIBUTE_ID 0x01E5 // Ver.: always -#define ZCL_PUBLISH_CURRENCY_CONVERSION_CANCELLED_ATTRIBUTE_ID 0x01E6 // Ver.: always -#define ZCL_PUBLISH_CURRENCY_CONVERSION_REJECTED_ATTRIBUTE_ID 0x01E7 // Ver.: always -#define ZCL_CHECK_METER_ATTRIBUTE_ID 0x0200 // Ver.: always -#define ZCL_LOW_BATTERY_ATTRIBUTE_ID 0x0201 // Ver.: always -#define ZCL_TAMPER_DETECT_ATTRIBUTE_ID 0x0202 // Ver.: always -#define ZCL_DEVICE_MANAGEMENT_SUPPLY_STATUS_ATTRIBUTE_ID 0x0203 // Ver.: always -#define ZCL_SUPPLY_QUALITY_ATTRIBUTE_ID 0x0204 // Ver.: always -#define ZCL_LEAK_DETECT_ATTRIBUTE_ID 0x0205 // Ver.: always -#define ZCL_SERVICE_DISCONNECT_ATTRIBUTE_ID 0x0206 // Ver.: always -#define ZCL_REVERSE_FLOW_GENERAL_ATTRIBUTE_ID 0x0207 // Ver.: always -#define ZCL_METER_COVER_REMOVED_ATTRIBUTE_ID 0x0208 // Ver.: always -#define ZCL_METER_COVER_CLOSED_ATTRIBUTE_ID 0x0209 // Ver.: always -#define ZCL_STRONG_MAGNETIC_FIELD_ATTRIBUTE_ID 0x020A // Ver.: always -#define ZCL_NO_STRONG_MAGNETIC_FIELD_ATTRIBUTE_ID 0x020B // Ver.: always -#define ZCL_BATTERY_FAILURE_ATTRIBUTE_ID 0x020C // Ver.: always -#define ZCL_PROGRAM_MEMORY_ERROR_ATTRIBUTE_ID 0x020D // Ver.: always -#define ZCL_RAM_ERROR_ATTRIBUTE_ID 0x020E // Ver.: always -#define ZCL_NV_MEMORY_ERROR_ATTRIBUTE_ID 0x020F // Ver.: always -#define ZCL_LOW_VOLTAGE_L1_ATTRIBUTE_ID 0x0210 // Ver.: always -#define ZCL_HIGH_VOLTAGE_L1_ATTRIBUTE_ID 0x0211 // Ver.: always -#define ZCL_LOW_VOLTAGE_L2_ATTRIBUTE_ID 0x0212 // Ver.: always -#define ZCL_HIGH_VOLTAGE_L2_ATTRIBUTE_ID 0x0213 // Ver.: always -#define ZCL_LOW_VOLTAGE_L3_ATTRIBUTE_ID 0x0214 // Ver.: always -#define ZCL_HIGH_VOLTAGE_L3_ATTRIBUTE_ID 0x0215 // Ver.: always -#define ZCL_OVER_CURRENT_L1_ATTRIBUTE_ID 0x0216 // Ver.: always -#define ZCL_OVER_CURRENT_L2_ATTRIBUTE_ID 0x0217 // Ver.: always -#define ZCL_OVER_CURRENT_L3_ATTRIBUTE_ID 0x0218 // Ver.: always -#define ZCL_FREQUENCY_TOO_LOW_L1_ATTRIBUTE_ID 0x0219 // Ver.: always -#define ZCL_FREQUENCY_TOO_HIGH_L1_ATTRIBUTE_ID 0x021A // Ver.: always -#define ZCL_FREQUENCY_TOO_LOW_L2_ATTRIBUTE_ID 0x021B // Ver.: always -#define ZCL_FREQUENCY_TOO_HIGH_L2_ATTRIBUTE_ID 0x021C // Ver.: always -#define ZCL_FREQUENCY_TOO_LOW_L3_ATTRIBUTE_ID 0x021D // Ver.: always -#define ZCL_FREQUENCY_TOO_HIGH_L3_ATTRIBUTE_ID 0x021E // Ver.: always -#define ZCL_GROUND_FAULT_ATTRIBUTE_ID 0x021F // Ver.: always -#define ZCL_ELECTRIC_TAMPER_DETECT_ATTRIBUTE_ID 0x0220 // Ver.: always -#define ZCL_INCORRECT_POLARITY_ATTRIBUTE_ID 0x0221 // Ver.: always -#define ZCL_CURRENT_NO_VOLTAGE_ATTRIBUTE_ID 0x0222 // Ver.: always -#define ZCL_UNDER_VOLTAGE_ATTRIBUTE_ID 0x0223 // Ver.: always -#define ZCL_OVER_VOLTAGE_ATTRIBUTE_ID 0x0224 // Ver.: always -#define ZCL_NORMAL_VOLTAGE_ATTRIBUTE_ID 0x0225 // Ver.: always -#define ZCL_PF_BELOW_THRESHOLD_ATTRIBUTE_ID 0x0226 // Ver.: always -#define ZCL_PF_ABOVE_THRESHOLD_ATTRIBUTE_ID 0x0227 // Ver.: always -#define ZCL_TERMINAL_COVER_REMOVED_ATTRIBUTE_ID 0x0228 // Ver.: always -#define ZCL_TERMINAL_COVER_CLOSED_ATTRIBUTE_ID 0x0229 // Ver.: always -#define ZCL_BURST_DETECT_ATTRIBUTE_ID 0x0230 // Ver.: always -#define ZCL_PRESSURE_TOO_LOW_ATTRIBUTE_ID 0x0231 // Ver.: always -#define ZCL_PRESSURE_TOO_HIGH_ATTRIBUTE_ID 0x0232 // Ver.: always -#define ZCL_FLOW_SENSOR_COMMUNICATION_ERROR_ATTRIBUTE_ID 0x0233 // Ver.: always -#define ZCL_FLOW_SENSOR_MEASUREMENT_FAULT_ATTRIBUTE_ID 0x0234 // Ver.: always -#define ZCL_FLOW_SENSOR_REVERSE_FLOW_ATTRIBUTE_ID 0x0235 // Ver.: always -#define ZCL_FLOW_SENSOR_AIR_DETECT_ATTRIBUTE_ID 0x0236 // Ver.: always -#define ZCL_PIPE_EMPTY_ATTRIBUTE_ID 0x0237 // Ver.: always -#define ZCL_INLET_TEMP_SENSOR_FAULT_ATTRIBUTE_ID 0x0250 // Ver.: always -#define ZCL_OUTLET_TEMP_SENSOR_FAULT_ATTRIBUTE_ID 0x0251 // Ver.: always -#define ZCL_REVERSE_FLOW_ATTRIBUTE_ID 0x0260 // Ver.: always -#define ZCL_TILT_TAMPER_ATTRIBUTE_ID 0x0261 // Ver.: always -#define ZCL_BATTERY_COVER_REMOVED_ATTRIBUTE_ID 0x0262 // Ver.: always -#define ZCL_BATTERY_COVER_CLOSED_ATTRIBUTE_ID 0x0263 // Ver.: always -#define ZCL_EXCESS_FLOW_ATTRIBUTE_ID 0x0264 // Ver.: always -#define ZCL_TILT_TAMPER_ENABLED_ATTRIBUTE_ID 0x0265 // Ver.: always -#define ZCL_MEASUREMENT_SYSTEM_ERROR_ATTRIBUTE_ID 0x0270 // Ver.: always -#define ZCL_WATCHDOG_ERROR_ATTRIBUTE_ID 0x0271 // Ver.: always -#define ZCL_SUPPLY_DISCONNECT_FAILURE_ATTRIBUTE_ID 0x0272 // Ver.: always -#define ZCL_SUPPLY_CONNECT_FAILURE_ATTRIBUTE_ID 0x0273 // Ver.: always -#define ZCL_MEASUREMENT_SOFTWARE_CHANGED_ATTRIBUTE_ID 0x0274 // Ver.: always -#define ZCL_DST_ENABLED_ATTRIBUTE_ID 0x0275 // Ver.: always -#define ZCL_DST_DISABLED_ATTRIBUTE_ID 0x0276 // Ver.: always -#define ZCL_CLOCK_ADJ_BACKWARD_ATTRIBUTE_ID 0x0277 // Ver.: always -#define ZCL_CLOCK_ADJ_FORWARD_ATTRIBUTE_ID 0x0278 // Ver.: always -#define ZCL_CLOCK_INVALID_ATTRIBUTE_ID 0x0279 // Ver.: always -#define ZCL_COMMUNICATION_ERROR_HAN_ATTRIBUTE_ID 0x027A // Ver.: always -#define ZCL_COMMUNICATION_OK_HAN_ATTRIBUTE_ID 0x027B // Ver.: always -#define ZCL_METER_FRAUD_ATTEMPT_ATTRIBUTE_ID 0x027C // Ver.: always -#define ZCL_POWER_LOSS_ATTRIBUTE_ID 0x027D // Ver.: always -#define ZCL_UNUSUAL_HAN_TRAFFIC_ATTRIBUTE_ID 0x027E // Ver.: always -#define ZCL_UNEXPECTED_CLOCK_CHANGE_ATTRIBUTE_ID 0x027F // Ver.: always -#define ZCL_COMMS_USING_UNAUTHENTICATED_COMPONENT_ATTRIBUTE_ID 0x0280 // Ver.: always -#define ZCL_METERING_ERROR_REG_CLEAR_ATTRIBUTE_ID 0x0281 // Ver.: always -#define ZCL_METERING_ALARM_REG_CLEAR_ATTRIBUTE_ID 0x0282 // Ver.: always -#define ZCL_UNEXPECTED_HW_RESET_ATTRIBUTE_ID 0x0283 // Ver.: always -#define ZCL_UNEXPECTED_PROGRAM_EXECUTION_ATTRIBUTE_ID 0x0284 // Ver.: always -#define ZCL_LIMIT_THRESHOLD_EXCEEDED_ATTRIBUTE_ID 0x0285 // Ver.: always -#define ZCL_LIMIT_THRESHOLD_OK_ATTRIBUTE_ID 0x0286 // Ver.: always -#define ZCL_LIMIT_THRESHOLD_CHANGED_ATTRIBUTE_ID 0x0287 // Ver.: always -#define ZCL_MAXIMUM_DEMAND_EXCEEDED_ATTRIBUTE_ID 0x0288 // Ver.: always -#define ZCL_PROFILE_CLEARED_ATTRIBUTE_ID 0x0289 // Ver.: always -#define ZCL_LOAD_PROFILE_CLEARED_ATTRIBUTE_ID 0x028A // Ver.: always -#define ZCL_BATTERY_WARN_ATTRIBUTE_ID 0x028B // Ver.: always -#define ZCL_WRONG_SIGNATURE_ATTRIBUTE_ID 0x028C // Ver.: always -#define ZCL_NO_SIGNATURE_ATTRIBUTE_ID 0x028D // Ver.: always -#define ZCL_SIGNATURE_NOT_VALID_ATTRIBUTE_ID 0x028E // Ver.: always -#define ZCL_UNAUTHORISE_ACTION_FROM_HAN_ATTRIBUTE_ID 0x028F // Ver.: always -#define ZCL_FAST_POLLING_START_ATTRIBUTE_ID 0x0290 // Ver.: always -#define ZCL_FAST_POLLING_END_ATTRIBUTE_ID 0x0291 // Ver.: always -#define ZCL_METER_REPORTING_INTERVAL_CHANGED_ATTRIBUTE_ID 0x0292 // Ver.: always -#define ZCL_DISCONNECT_TO_LOAD_LIMIT_ATTRIBUTE_ID 0x0293 // Ver.: always -#define ZCL_METER_SUPPLY_STATUS_REGISTER_CHANGED_ATTRIBUTE_ID 0x0294 // Ver.: always -#define ZCL_METER_ALARM_STATUS_REGISTER_CHANGED_ATTRIBUTE_ID 0x0295 // Ver.: always -#define ZCL_EXTENDED_METER_ALARM_STATUS_REGISTER_CHANGED_ATTRIBUTE_ID 0x0296 // Ver.: always -#define ZCL_DATA_ACCESS_VIA_LOCAL_PORT_ATTRIBUTE_ID 0x0297 // Ver.: always -#define ZCL_CONFIGURE_MIRROR_SUCCESS_ATTRIBUTE_ID 0x0298 // Ver.: always -#define ZCL_CONFIGURE_MIRROR_FAILURE_ATTRIBUTE_ID 0x0299 // Ver.: always -#define ZCL_CONFIGURE_NOTIFICATION_FLAG_SCHEME_SUCCESS_ATTRIBUTE_ID 0x029A // Ver.: always -#define ZCL_CONFIGURE_NOTIFICATION_FLAG_SCHEME_FAILURE_ATTRIBUTE_ID 0x029B // Ver.: always -#define ZCL_CONFIGURE_NOTIFICATION_FLAGS_SUCCESS_ATTRIBUTE_ID 0x029C // Ver.: always -#define ZCL_CONFIGURE_NOTIFICATION_FLAGS_FAILURE_ATTRIBUTE_ID 0x029D // Ver.: always -#define ZCL_STAY_AWAKE_REQUEST_HAN_ATTRIBUTE_ID 0x029E // Ver.: always -#define ZCL_STAY_AWAKE_REQUEST_WAN_ATTRIBUTE_ID 0x029F // Ver.: always -#define ZCL_MANUFACTURER_SPECIFIC_A_ATTRIBUTE_ID 0x02B0 // Ver.: always -#define ZCL_MANUFACTURER_SPECIFIC_B_ATTRIBUTE_ID 0x02B1 // Ver.: always -#define ZCL_MANUFACTURER_SPECIFIC_C_ATTRIBUTE_ID 0x02B2 // Ver.: always -#define ZCL_MANUFACTURER_SPECIFIC_D_ATTRIBUTE_ID 0x02B3 // Ver.: always -#define ZCL_MANUFACTURER_SPECIFIC_E_ATTRIBUTE_ID 0x02B4 // Ver.: always -#define ZCL_MANUFACTURER_SPECIFIC_F_ATTRIBUTE_ID 0x02B5 // Ver.: always -#define ZCL_MANUFACTURER_SPECIFIC_G_ATTRIBUTE_ID 0x02B6 // Ver.: always -#define ZCL_MANUFACTURER_SPECIFIC_H_ATTRIBUTE_ID 0x02B7 // Ver.: always -#define ZCL_MANUFACTURER_SPECIFIC_I_ATTRIBUTE_ID 0x02B8 // Ver.: always -#define ZCL_GET_PROFILE_COMMAND_RECEIVED_ATTRIBUTE_ID 0x02C0 // Ver.: always -#define ZCL_GET_PROFILE_COMMAND_ACTIONED_ATTRIBUTE_ID 0x02C1 // Ver.: always -#define ZCL_GET_PROFILE_COMMAND_CANCELLED_ATTRIBUTE_ID 0x02C2 // Ver.: always -#define ZCL_GET_PROFILE_COMMAND_REJECTED_ATTRIBUTE_ID 0x02C3 // Ver.: always -#define ZCL_REQUEST_MIRROR_RESPONSE_COMMAND_RECEIVED_ATTRIBUTE_ID 0x02C4 // Ver.: always -#define ZCL_REQUEST_MIRROR_RESPONSE_COMMAND_ACTIONED_ATTRIBUTE_ID 0x02C5 // Ver.: always -#define ZCL_REQUEST_MIRROR_RESPONSE_COMMAND_CANCELLED_ATTRIBUTE_ID 0x02C6 // Ver.: always -#define ZCL_REQUEST_MIRROR_RESPONSE_COMMAND_REJECTED_ATTRIBUTE_ID 0x02C7 // Ver.: always -#define ZCL_MIRROR_REMOVED_COMMAND_RECEIVED_ATTRIBUTE_ID 0x02C8 // Ver.: always -#define ZCL_MIRROR_REMOVED_COMMAND_ACTIONED_ATTRIBUTE_ID 0x02C9 // Ver.: always -#define ZCL_MIRROR_REMOVED_COMMAND_CANCELLED_ATTRIBUTE_ID 0x02CA // Ver.: always -#define ZCL_MIRROR_REMOVED_COMMAND_REJECTED_ATTRIBUTE_ID 0x02CB // Ver.: always -#define ZCL_GET_SNAPSHOT_COMMAND_RECEIVED_ATTRIBUTE_ID 0x02CC // Ver.: always -#define ZCL_GET_SNAPSHOT_COMMAND_ACTIONED_ATTRIBUTE_ID 0x02CD // Ver.: always -#define ZCL_GET_SNAPSHOT_COMMAND_CANCELLED_ATTRIBUTE_ID 0x02CE // Ver.: always -#define ZCL_GET_SNAPSHOT_COMMAND_REJECTED_ATTRIBUTE_ID 0x02CF // Ver.: always -#define ZCL_TAKE_SNAPSHOT_COMMAND_RECEIVED_ATTRIBUTE_ID 0x02D0 // Ver.: always -#define ZCL_TAKE_SNAPSHOT_COMMAND_ACTIONED_ATTRIBUTE_ID 0x02D1 // Ver.: always -#define ZCL_TAKE_SNAPSHOT_COMMAND_CANCELLED_ATTRIBUTE_ID 0x02D2 // Ver.: always -#define ZCL_TAKE_SNAPSHOT_COMMAND_REJECTED_ATTRIBUTE_ID 0x02D3 // Ver.: always -#define ZCL_MIRROR_REPORT_ATTRIBUTE_RESPONSE_COMMAND_RECEIVED_ATTRIBUTE_ID 0x02D4 // Ver.: always -#define ZCL_MIRROR_REPORT_ATTRIBUTE_RESPONSE_COMMAND_ACTIONED_ATTRIBUTE_ID 0x02D5 // Ver.: always -#define ZCL_MIRROR_REPORT_ATTRIBUTE_RESPONSE_COMMAND_CANCELLED_ATTRIBUTE_ID 0x02D6 // Ver.: always -#define ZCL_MIRROR_REPORT_ATTRIBUTE_RESPONSE_COMMAND_REJECTED_ATTRIBUTE_ID 0x02D7 // Ver.: always -#define ZCL_SCHEDULE_SNAPSHOT_COMMAND_RECEIVED_ATTRIBUTE_ID 0x02D8 // Ver.: always -#define ZCL_SCHEDULE_SNAPSHOT_COMMAND_ACTIONED_ATTRIBUTE_ID 0x02D9 // Ver.: always -#define ZCL_SCHEDULE_SNAPSHOT_COMMAND_CANCELLED_ATTRIBUTE_ID 0x02DA // Ver.: always -#define ZCL_SCHEDULE_SNAPSHOT_COMMAND_REJECTED_ATTRIBUTE_ID 0x02DB // Ver.: always -#define ZCL_START_SAMPLING_COMMAND_RECEIVED_ATTRIBUTE_ID 0x02DC // Ver.: always -#define ZCL_START_SAMPLING_COMMAND_ACTIONED_ATTRIBUTE_ID 0x02DD // Ver.: always -#define ZCL_START_SAMPLING_COMMAND_CANCELLED_ATTRIBUTE_ID 0x02DE // Ver.: always -#define ZCL_START_SAMPLING_COMMAND_REJECTED_ATTRIBUTE_ID 0x02DF // Ver.: always -#define ZCL_GET_SAMPLED_DATA_COMMAND_RECEIVED_ATTRIBUTE_ID 0x02E0 // Ver.: always -#define ZCL_GET_SAMPLED_DATA_COMMAND_ACTIONED_ATTRIBUTE_ID 0x02E1 // Ver.: always -#define ZCL_GET_SAMPLED_DATA_COMMAND_CANCELLED_ATTRIBUTE_ID 0x02E2 // Ver.: always -#define ZCL_GET_SAMPLED_DATA_COMMAND_REJECTED_ATTRIBUTE_ID 0x02E3 // Ver.: always -#define ZCL_SUPPLY_ON_ATTRIBUTE_ID 0x02E4 // Ver.: always -#define ZCL_SUPPLY_ARMED_ATTRIBUTE_ID 0x02E5 // Ver.: always -#define ZCL_SUPPLY_OFF_ATTRIBUTE_ID 0x02E6 // Ver.: always -#define ZCL_DISCONNECTED_DUE_TO_TAMPER_DETECTED_ATTRIBUTE_ID 0x02E7 // Ver.: always -#define ZCL_MANUAL_DISCONNECT_ATTRIBUTE_ID 0x02E8 // Ver.: always -#define ZCL_MANUAL_CONNECT_ATTRIBUTE_ID 0x02E9 // Ver.: always -#define ZCL_REMOTE_DISCONNECTION_ATTRIBUTE_ID 0x02EA // Ver.: always -#define ZCL_REMOTE_CONNECT_ATTRIBUTE_ID 0x02EB // Ver.: always -#define ZCL_LOCAL_DISCONNECTION_ATTRIBUTE_ID 0x02EC // Ver.: always -#define ZCL_LOCAL_CONNECT_ATTRIBUTE_ID 0x02ED // Ver.: always -#define ZCL_CHANGE_SUPPLY_RECEIVED_ATTRIBUTE_ID 0x02EE // Ver.: always -#define ZCL_CHANGE_SUPPLY_ACTIONED_ATTRIBUTE_ID 0x02EF // Ver.: always -#define ZCL_CHANGE_SUPPLY_CANCELLED_ATTRIBUTE_ID 0x02F0 // Ver.: always -#define ZCL_CHANGE_SUPPLY_REJECTED_ATTRIBUTE_ID 0x02F1 // Ver.: always -#define ZCL_LOCAL_CHANGE_SUPPLY_RECEIVED_ATTRIBUTE_ID 0x02F2 // Ver.: always -#define ZCL_LOCAL_CHANGE_SUPPLY_ACTIONED_ATTRIBUTE_ID 0x02F3 // Ver.: always -#define ZCL_LOCAL_CHANGE_SUPPLY_CANCELLED_ATTRIBUTE_ID 0x02F4 // Ver.: always -#define ZCL_LOCAL_CHANGE_SUPPLY_REJECTED_ATTRIBUTE_ID 0x02F5 // Ver.: always -#define ZCL_PUBLISH_UNCONTROLLED_FLOW_THRESHOLD_RECEIVED_ATTRIBUTE_ID 0x02F6 // Ver.: always -#define ZCL_PUBLISH_UNCONTROLLED_FLOW_THRESHOLD_ACTIONED_ATTRIBUTE_ID 0x02F7 // Ver.: always -#define ZCL_PUBLISH_UNCONTROLLED_FLOW_THRESHOLD_CANCELLED_ATTRIBUTE_ID 0x02F8 // Ver.: always -#define ZCL_PUBLISH_UNCONTROLLED_FLOW_THRESHOLD_REJECTED_ATTRIBUTE_ID 0x02F9 // Ver.: always -#define ZCL_MESSAGE_CONFIRMATION_SENT_ATTRIBUTE_ID 0x0300 // Ver.: always -#define ZCL_DISPLAY_MESSAGE_RECEIVED_ATTRIBUTE_ID 0x03C0 // Ver.: always -#define ZCL_DISPLAY_MESSAGE_ACTIONED_ATTRIBUTE_ID 0x03C1 // Ver.: always -#define ZCL_DISPLAY_MESSAGE_CANCELLED_ATTRIBUTE_ID 0x03C2 // Ver.: always -#define ZCL_DISPLAY_MESSAGE_REJECTED_ATTRIBUTE_ID 0x03C3 // Ver.: always -#define ZCL_CANCEL_MESSAGE_RECEIVED_ATTRIBUTE_ID 0x03C4 // Ver.: always -#define ZCL_CANCEL_MESSAGE_ACTIONED_ATTRIBUTE_ID 0x03C5 // Ver.: always -#define ZCL_CANCEL_MESSAGE_CANCELLED_ATTRIBUTE_ID 0x03C6 // Ver.: always -#define ZCL_CANCEL_MESSAGE_REJECTED_ATTRIBUTE_ID 0x03C7 // Ver.: always -#define ZCL_LOW_CREDIT_ATTRIBUTE_ID 0x0400 // Ver.: always -#define ZCL_NO_CREDIT_ATTRIBUTE_ID 0x0401 // Ver.: always -#define ZCL_CREDIT_EXHAUSTED_ATTRIBUTE_ID 0x0402 // Ver.: always -#define ZCL_EMERGENCY_CREDIT_ENABLED_ATTRIBUTE_ID 0x0403 // Ver.: always -#define ZCL_EMERGENCY_CREDIT_EXHAUSTED_ATTRIBUTE_ID 0x0404 // Ver.: always -#define ZCL_PREPAY_IHD_LOW_CREDIT_WARNING_ATTRIBUTE_ID 0x0405 // Ver.: always -#define ZCL_PHYSICAL_ATTACK_ON_THE_PREPAY_METER_ATTRIBUTE_ID 0x0420 // Ver.: always -#define ZCL_ELECTRONIC_ATTACK_ON_THE_PREPAY_METER_ATTRIBUTE_ID 0x0421 // Ver.: always -#define ZCL_DISCOUNT_APPLIED_ATTRIBUTE_ID 0x0422 // Ver.: always -#define ZCL_CREDIT_ADJUSTMENT_ATTRIBUTE_ID 0x0423 // Ver.: always -#define ZCL_CREDIT_ADJUST_FAIL_ATTRIBUTE_ID 0x0424 // Ver.: always -#define ZCL_DEBT_ADJUSTMENT_ATTRIBUTE_ID 0x0425 // Ver.: always -#define ZCL_DEBT_ADJUST_FAIL_ATTRIBUTE_ID 0x0426 // Ver.: always -#define ZCL_MODE_CHANGE_ATTRIBUTE_ID 0x0427 // Ver.: always -#define ZCL_TOPUP_CODE_ERROR_ATTRIBUTE_ID 0x0428 // Ver.: always -#define ZCL_TOPUP_ALREADY_USED_ATTRIBUTE_ID 0x0429 // Ver.: always -#define ZCL_TOPUP_CODE_INVALID_ATTRIBUTE_ID 0x042A // Ver.: always -#define ZCL_TOPUP_ACCEPTED_VIA_REMOTE_ATTRIBUTE_ID 0x042B // Ver.: always -#define ZCL_TOPUP_ACCEPTED_VIA_MANUAL_ENTRY_ATTRIBUTE_ID 0x042C // Ver.: always -#define ZCL_FRIENDLY_CREDIT_IN_USE_ATTRIBUTE_ID 0x042D // Ver.: always -#define ZCL_FRIENDLY_CREDIT_END_WARNING_ATTRIBUTE_ID 0x042E // Ver.: always -#define ZCL_FRIENDLY_CREDIT_PERIOD_END_ATTRIBUTE_ID 0x042F // Ver.: always -#define ZCL_PREPAY_ERROR_REG_CLEAR_ATTRIBUTE_ID 0x0430 // Ver.: always -#define ZCL_PREPAY_ALARM_REG_CLEAR_ATTRIBUTE_ID 0x0431 // Ver.: always -#define ZCL_PREPAY_CLUSTER_NOT_FOUND_ATTRIBUTE_ID 0x0432 // Ver.: always -#define ZCL_TOPUP_VALUE_TOO_LARGE_ATTRIBUTE_ID 0x0433 // Ver.: always -#define ZCL_MODE_CREDIT_2_PREPAY_ATTRIBUTE_ID 0x0441 // Ver.: always -#define ZCL_MODE_PREPAY_2_CREDIT_ATTRIBUTE_ID 0x0442 // Ver.: always -#define ZCL_MODE_DEFAULT_ATTRIBUTE_ID 0x0443 // Ver.: always -#define ZCL_SELECT_AVAILABLE_EMERGENCY_CREDIT_RECEIVED_ATTRIBUTE_ID 0x04C0 // Ver.: always -#define ZCL_SELECT_AVAILABLE_EMERGENCY_CREDIT_ACTIONED_ATTRIBUTE_ID 0x04C1 // Ver.: always -#define ZCL_SELECT_AVAILABLE_EMERGENCY_CREDIT_CANCELLED_ATTRIBUTE_ID 0x04C2 // Ver.: always -#define ZCL_SELECT_AVAILABLE_EMERGENCY_CREDIT_REJECTED_ATTRIBUTE_ID 0x04C3 // Ver.: always -#define ZCL_CHANGE_DEBT_RECEIVED_ATTRIBUTE_ID 0x04C4 // Ver.: always -#define ZCL_CHANGE_DEBT_ACTIONED_ATTRIBUTE_ID 0x04C5 // Ver.: always -#define ZCL_CHANGE_DEBT_CANCELLED_ATTRIBUTE_ID 0x04C6 // Ver.: always -#define ZCL_CHANGE_DEBT_REJECTED_ATTRIBUTE_ID 0x04C7 // Ver.: always -#define ZCL_EMERGENCY_CREDIT_SETUP_RECEIVED_ATTRIBUTE_ID 0x04C8 // Ver.: always -#define ZCL_EMERGENCY_CREDIT_SETUP_ACTIONED_ATTRIBUTE_ID 0x04C9 // Ver.: always -#define ZCL_EMERGENCY_CREDIT_SETUP_CANCELLED_ATTRIBUTE_ID 0x04CA // Ver.: always -#define ZCL_EMERGENCY_CREDIT_SETUP_REJECTED_ATTRIBUTE_ID 0x04CB // Ver.: always -#define ZCL_CONSUMER_TOPUP_RECEIVED_ATTRIBUTE_ID 0x04CC // Ver.: always -#define ZCL_CONSUMER_TOPUP_ACTIONED_ATTRIBUTE_ID 0x04CD // Ver.: always -#define ZCL_CONSUMER_TOPUP_CANCELLED_ATTRIBUTE_ID 0x04CE // Ver.: always -#define ZCL_CONSUMER_TOPUP_REJECTED_ATTRIBUTE_ID 0x04CF // Ver.: always -#define ZCL_CREDIT_ADJUSTMENT_RECEIVED_ATTRIBUTE_ID 0x04D0 // Ver.: always -#define ZCL_CREDIT_ADJUSTMENT_ACTIONED_ATTRIBUTE_ID 0x04D1 // Ver.: always -#define ZCL_CREDIT_ADJUSTMENT_CANCELLED_ATTRIBUTE_ID 0x04D2 // Ver.: always -#define ZCL_CREDIT_ADJUSTMENT_REJECTED_ATTRIBUTE_ID 0x04D3 // Ver.: always -#define ZCL_CHANGE_PAYMENT_MODE_RECEIVED_ATTRIBUTE_ID 0x04D4 // Ver.: always -#define ZCL_CHANGE_PAYMENT_MODE_ACTIONED_ATTRIBUTE_ID 0x04D5 // Ver.: always -#define ZCL_CHANGE_PAYMENT_MODE_CANCELLED_ATTRIBUTE_ID 0x04D6 // Ver.: always -#define ZCL_CHANGE_PAYMENT_MODE_REJECTED_ATTRIBUTE_ID 0x04D7 // Ver.: always -#define ZCL_GET_PREPAY_SNAPSHOT_RECEIVED_ATTRIBUTE_ID 0x04D8 // Ver.: always -#define ZCL_GET_PREPAY_SNAPSHOT_ACTIONED_ATTRIBUTE_ID 0x04D9 // Ver.: always -#define ZCL_GET_PREPAY_SNAPSHOT_CANCELLED_ATTRIBUTE_ID 0x04DA // Ver.: always -#define ZCL_GET_PREPAY_SNAPSHOT_REJECTED_ATTRIBUTE_ID 0x04DB // Ver.: always -#define ZCL_GET_TOPUP_LOG_RECEIVED_ATTRIBUTE_ID 0x04DC // Ver.: always -#define ZCL_GET_TOPUP_LOG_ACTIONED_ATTRIBUTE_ID 0x04DD // Ver.: always -#define ZCL_GET_TOPUP_LOG_CANCELLED_ATTRIBUTE_ID 0x04DE // Ver.: always -#define ZCL_GET_TOPUP_LOG_REJECTED_ATTRIBUTE_ID 0x04DF // Ver.: always -#define ZCL_SET_LOW_CREDIT_WARNING_LEVEL_RECEIVED_ATTRIBUTE_ID 0x04E0 // Ver.: always -#define ZCL_SET_LOW_CREDIT_WARNING_LEVEL_ACTIONED_ATTRIBUTE_ID 0x04E1 // Ver.: always -#define ZCL_SET_LOW_CREDIT_WARNING_LEVEL_CANCELLED_ATTRIBUTE_ID 0x04E2 // Ver.: always -#define ZCL_SET_LOW_CREDIT_WARNING_LEVEL_REJECTED_ATTRIBUTE_ID 0x04E3 // Ver.: always -#define ZCL_GET_DEBT_REPAY_LOG_RECEIVED_ATTRIBUTE_ID 0x04E4 // Ver.: always -#define ZCL_GET_DEBT_REPAY_LOG_ACTIONED_ATTRIBUTE_ID 0x04E5 // Ver.: always -#define ZCL_GET_DEBT_REPAY_LOG_CANCELLED_ATTRIBUTE_ID 0x04E6 // Ver.: always -#define ZCL_GET_DEBT_REPAY_LOG_REJECTED_ATTRIBUTE_ID 0x04E7 // Ver.: always -#define ZCL_SET_MAXIMUM_CREDIT_LIMIT_RECEIVED_ATTRIBUTE_ID 0x04E8 // Ver.: always -#define ZCL_SET_MAXIMUM_CREDIT_LIMIT_ACTIONED_ATTRIBUTE_ID 0x04E9 // Ver.: always -#define ZCL_SET_MAXIMUM_CREDIT_LIMIT_CANCELLED_ATTRIBUTE_ID 0x04EA // Ver.: always -#define ZCL_SET_MAXIMUM_CREDIT_LIMIT_REJECTED_ATTRIBUTE_ID 0x04EB // Ver.: always -#define ZCL_SET_OVERALL_DEBT_CAP_RECEIVED_ATTRIBUTE_ID 0x04EC // Ver.: always -#define ZCL_SET_OVERALL_DEBT_CAP_ACTIONED_ATTRIBUTE_ID 0x04ED // Ver.: always -#define ZCL_SET_OVERALL_DEBT_CAP_CANCELLED_ATTRIBUTE_ID 0x04EE // Ver.: always -#define ZCL_SET_OVERALL_DEBT_CAP_REJECTED_ATTRIBUTE_ID 0x04EF // Ver.: always -#define ZCL_CALENDAR_CLUSTER_NOT_FOUND_ATTRIBUTE_ID 0x0500 // Ver.: always -#define ZCL_CALENDAR_CHANGE_PASSIVE_ACTIVATED_ATTRIBUTE_ID 0x0501 // Ver.: always -#define ZCL_CALENDAR_CHANGE_PASSIVE_UPDATED_ATTRIBUTE_ID 0x0502 // Ver.: always -#define ZCL_PUBLISH_CALENDAR_RECEIVED_ATTRIBUTE_ID 0x05C0 // Ver.: always -#define ZCL_PUBLISH_CALENDAR_ACTIONED_ATTRIBUTE_ID 0x05C1 // Ver.: always -#define ZCL_PUBLISH_CALENDAR_CANCELLED_ATTRIBUTE_ID 0x05C2 // Ver.: always -#define ZCL_PUBLISH_CALENDAR_REJECTED_ATTRIBUTE_ID 0x05C3 // Ver.: always -#define ZCL_PUBLISH_DAY_PROFILE_RECEIVED_ATTRIBUTE_ID 0x05C4 // Ver.: always -#define ZCL_PUBLISH_DAY_PROFILE_ACTIONED_ATTRIBUTE_ID 0x05C5 // Ver.: always -#define ZCL_PUBLISH_DAY_PROFILE_CANCELLED_ATTRIBUTE_ID 0x05C6 // Ver.: always -#define ZCL_PUBLISH_DAY_PROFILE_REJECTED_ATTRIBUTE_ID 0x05C7 // Ver.: always -#define ZCL_PUBLISH_WEEK_PROFILE_RECEIVED_ATTRIBUTE_ID 0x05C8 // Ver.: always -#define ZCL_PUBLISH_WEEK_PROFILE_ACTIONED_ATTRIBUTE_ID 0x05C9 // Ver.: always -#define ZCL_PUBLISH_WEEK_PROFILE_CANCELLED_ATTRIBUTE_ID 0x05CA // Ver.: always -#define ZCL_PUBLISH_WEEK_PROFILE_REJECTED_ATTRIBUTE_ID 0x05CB // Ver.: always -#define ZCL_PUBLISH_SEASONS_RECEIVED_ATTRIBUTE_ID 0x05CC // Ver.: always -#define ZCL_PUBLISH_SEASONS_ACTIONED_ATTRIBUTE_ID 0x05CD // Ver.: always -#define ZCL_PUBLISH_SEASONS_CANCELLED_ATTRIBUTE_ID 0x05CE // Ver.: always -#define ZCL_PUBLISH_SEASONS_REJECTED_ATTRIBUTE_ID 0x05CF // Ver.: always -#define ZCL_PUBLISH_SPECIAL_DAYS_RECEIVED_ATTRIBUTE_ID 0x05D0 // Ver.: always -#define ZCL_PUBLISH_SPECIAL_DAYS_ACTIONED_ATTRIBUTE_ID 0x05D1 // Ver.: always -#define ZCL_PUBLISH_SPECIAL_DAYS_CANCELLED_ATTRIBUTE_ID 0x05D2 // Ver.: always -#define ZCL_PUBLISH_SPECIAL_DAYS_REJECTED_ATTRIBUTE_ID 0x05D3 // Ver.: always -#define ZCL_PASSWORD_1_CHANGE_ATTRIBUTE_ID 0x0600 // Ver.: always -#define ZCL_PASSWORD_2_CHANGE_ATTRIBUTE_ID 0x0601 // Ver.: always -#define ZCL_PASSWORD_3_CHANGE_ATTRIBUTE_ID 0x0602 // Ver.: always -#define ZCL_PASSWORD_4_CHANGE_ATTRIBUTE_ID 0x0603 // Ver.: always -#define ZCL_EVENT_LOG_CLEARED_ATTRIBUTE_ID 0x0604 // Ver.: always -#define ZCL_ZIGBEE_APS_TIMEOUT_ATTRIBUTE_ID 0x0610 // Ver.: always -#define ZCL_ZIGBEE_IEEE_TRANSMISSION_FAILURE_OVER_THRESHOLD_ATTRIBUTE_ID 0x0611 // Ver.: always -#define ZCL_ZIGBEE_IEEE_FRAME_CHECK_SEQUENCE_THRESHOLD_ATTRIBUTE_ID 0x0612 // Ver.: always -#define ZCL_ERROR_CERTIFICATE_ATTRIBUTE_ID 0x0613 // Ver.: always -#define ZCL_ERROR_SIGNATURE_ATTRIBUTE_ID 0x0614 // Ver.: always -#define ZCL_ERROR_PROGRAM_STORAGE_ATTRIBUTE_ID 0x0615 // Ver.: always -#define ZCL_PUBLISH_COT_RECEIVED_ATTRIBUTE_ID 0x06C0 // Ver.: always -#define ZCL_PUBLISH_COT_ACTIONED_ATTRIBUTE_ID 0x06C1 // Ver.: always -#define ZCL_PUBLISH_COT_CANCELLED_ATTRIBUTE_ID 0x06C2 // Ver.: always -#define ZCL_PUBLISH_COT_REJECTED_ATTRIBUTE_ID 0x06C3 // Ver.: always -#define ZCL_PUBLISH_COS_RECEIVED_ATTRIBUTE_ID 0x06C4 // Ver.: always -#define ZCL_PUBLISH_COS_ACTIONED_ATTRIBUTE_ID 0x06C5 // Ver.: always -#define ZCL_PUBLISH_COS_CANCELLED_ATTRIBUTE_ID 0x06C6 // Ver.: always -#define ZCL_PUBLISH_COS_REJECTED_ATTRIBUTE_ID 0x06C7 // Ver.: always -#define ZCL_CHANGE_PASSWORD_RECEIVED_ATTRIBUTE_ID 0x06C8 // Ver.: always -#define ZCL_CHANGE_PASSWORD_ACTIONED_ATTRIBUTE_ID 0x06C9 // Ver.: always -#define ZCL_CHANGE_PASSWORD_CANCELLED_ATTRIBUTE_ID 0x06CA // Ver.: always -#define ZCL_CHANGE_PASSWORD_REJECTED_ATTRIBUTE_ID 0x06CB // Ver.: always -#define ZCL_SET_EVENT_CONFIGURATION_RECEIVED_ATTRIBUTE_ID 0x06CC // Ver.: always -#define ZCL_SET_EVENT_CONFIGURATION_ACTIONED_ATTRIBUTE_ID 0x06CD // Ver.: always -#define ZCL_SET_EVENT_CONFIGURATION_CANCELLED_ATTRIBUTE_ID 0x06CE // Ver.: always -#define ZCL_SET_EVENT_CONFIGURATION_REJECTED_ATTRIBUTE_ID 0x06CF // Ver.: always -#define ZCL_UPDATE_SITE_ID_RECEIVED_ATTRIBUTE_ID 0x06D0 // Ver.: always -#define ZCL_UPDATE_SITE_ID_ACTIONED_ATTRIBUTE_ID 0x06D1 // Ver.: always -#define ZCL_UPDATE_SITE_ID_CANCELLED_ATTRIBUTE_ID 0x06D2 // Ver.: always -#define ZCL_UPDATE_SITE_ID_REJECTED_ATTRIBUTE_ID 0x06D3 // Ver.: always -#define ZCL_UPDATE_CIN_RECEIVED_ATTRIBUTE_ID 0x06D4 // Ver.: always -#define ZCL_UPDATE_CIN_ACTIONED_ATTRIBUTE_ID 0x06D5 // Ver.: always -#define ZCL_UPDATE_CIN_CANCELLED_ATTRIBUTE_ID 0x06D6 // Ver.: always -#define ZCL_UPDATE_CIN_REJECTED_ATTRIBUTE_ID 0x06D7 // Ver.: always -#define ZCL_TUNNELING_CLUSTER_NOT_FOUND_ATTRIBUTE_ID 0x0700 // Ver.: always -#define ZCL_UNSUPPORTED_PROTOCOL_ATTRIBUTE_ID 0x0701 // Ver.: always -#define ZCL_INCORRECT_PROTOCOL_ATTRIBUTE_ID 0x0702 // Ver.: always -#define ZCL_REQUEST_TUNNEL_COMMAND_RECEIVED_ATTRIBUTE_ID 0x07C0 // Ver.: always -#define ZCL_REQUEST_TUNNEL_COMMAND_REJECTED_ATTRIBUTE_ID 0x07C1 // Ver.: always -#define ZCL_REQUEST_TUNNEL_COMMAND_GENERATED_ATTRIBUTE_ID 0x07C2 // Ver.: always -#define ZCL_CLOSE_TUNNEL_COMMAND_RECEIVED_ATTRIBUTE_ID 0x07C3 // Ver.: always -#define ZCL_CLOSE_TUNNEL_COMMAND_REJECTED_ATTRIBUTE_ID 0x07C4 // Ver.: always -#define ZCL_CLOSE_TUNNEL_COMMAND_GENERATED_ATTRIBUTE_ID 0x07C5 // Ver.: always -#define ZCL_TRANSFER_DATA_COMMAND_RECEIVED_ATTRIBUTE_ID 0x07C6 // Ver.: always -#define ZCL_TRANSFER_DATA_COMMAND_REJECTED_ATTRIBUTE_ID 0x07C7 // Ver.: always -#define ZCL_TRANSFER_DATA_COMMAND_GENERATED_ATTRIBUTE_ID 0x07C8 // Ver.: always -#define ZCL_TRANSFER_DATA_ERROR_COMMAND_RECEIVED_ATTRIBUTE_ID 0x07C9 // Ver.: always -#define ZCL_TRANSFER_DATA_ERROR_COMMAND_REJECTED_ATTRIBUTE_ID 0x07CA // Ver.: always -#define ZCL_TRANSFER_DATA_ERROR_COMMAND_GENERATED_ATTRIBUTE_ID 0x07CB // Ver.: always -#define ZCL_ACK_TRANSFER_DATA_COMMAND_RECEIVED_ATTRIBUTE_ID 0x07CC // Ver.: always -#define ZCL_ACK_TRANSFER_DATA_COMMAND_REJECTED_ATTRIBUTE_ID 0x07CD // Ver.: always -#define ZCL_ACK_TRANSFER_DATA_COMMAND_GENERATED_ATTRIBUTE_ID 0x07CE // Ver.: always -#define ZCL_READY_DATA_COMMAND_RECEIVED_ATTRIBUTE_ID 0x07CF // Ver.: always -#define ZCL_READY_DATA_COMMAND_REJECTED_ATTRIBUTE_ID 0x07D0 // Ver.: always -#define ZCL_READY_DATA_COMMAND_GENERATED_ATTRIBUTE_ID 0x07D1 // Ver.: always -#define ZCL_GET_SUPPORTED_TUNNEL_PROTOCOLS_COMMAND_RECEIVED_ATTRIBUTE_ID 0x07D2 // Ver.: always -#define ZCL_GET_SUPPORTED_TUNNEL_PROTOCOLS_COMMAND_REJECTED_ATTRIBUTE_ID 0x07D3 // Ver.: always -#define ZCL_GET_SUPPORTED_TUNNEL_PROTOCOLS_COMMAND_GENERATED_ATTRIBUTE_ID 0x07D4 // Ver.: always -#define ZCL_FIRMWARE_READY_FOR_ACTIVATION_ATTRIBUTE_ID 0x0800 // Ver.: always -#define ZCL_FIRMWARE_ACTIVATED_ATTRIBUTE_ID 0x0801 // Ver.: always -#define ZCL_FIRMWARE_ACTIVATION_FAILURE_ATTRIBUTE_ID 0x0802 // Ver.: always -#define ZCL_PATCH_READY_FOR_ACTIVATION_ATTRIBUTE_ID 0x0803 // Ver.: always -#define ZCL_PATCH_ACTIVATED_ATTRIBUTE_ID 0x0804 // Ver.: always -#define ZCL_PATCH_FAILURE_ATTRIBUTE_ID 0x0805 // Ver.: always -#define ZCL_IMAGE_NOTIFY_COMMAND_RECEIVED_ATTRIBUTE_ID 0x08C0 // Ver.: always -#define ZCL_IMAGE_NOTIFY_COMMAND_REJECTED_ATTRIBUTE_ID 0x08C1 // Ver.: always -#define ZCL_QUERY_NEXT_IMAGE_REQUEST_GENERATED_ATTRIBUTE_ID 0x08C2 // Ver.: always -#define ZCL_QUERY_NEXT_IMAGE_RESPONSE_RECEIVED_ATTRIBUTE_ID 0x08C3 // Ver.: always -#define ZCL_QUERY_NEXT_IMAGE_RESPONSE_REJECTED_ATTRIBUTE_ID 0x08C4 // Ver.: always -#define ZCL_IMAGE_BLOCK_REQUEST_GENERATED_ATTRIBUTE_ID 0x08C5 // Ver.: always -#define ZCL_IMAGE_PAGE_REQUEST_GENERATED_ATTRIBUTE_ID 0x08C6 // Ver.: always -#define ZCL_IMAGE_BLOCK_RESPONSE_RECEIVED_ATTRIBUTE_ID 0x08C7 // Ver.: always -#define ZCL_IMAGE_BLOCK_RESPONSE_REJECTED_ATTRIBUTE_ID 0x08C8 // Ver.: always -#define ZCL_UPGRADE_END_REQUEST_GENERATED_ATTRIBUTE_ID 0x08C9 // Ver.: always -#define ZCL_UPGRADE_END_RESPONSE_RECEIVED_ATTRIBUTE_ID 0x08CA // Ver.: always -#define ZCL_UPGRADE_END_RESPONSE_REJECTED_ATTRIBUTE_ID 0x08CB // Ver.: always -#define ZCL_QUERY_SPECIFIC_FILE_REQUEST_GENERATED_ATTRIBUTE_ID 0x08CC // Ver.: always -#define ZCL_QUERY_SPECIFIC_FILE_RESPONSE_RECEIVED_ATTRIBUTE_ID 0x08CD // Ver.: always -#define ZCL_QUERY_SPECIFIC_FILE_RESPONSE_REJECTED_ATTRIBUTE_ID 0x08CE // Ver.: always -#define ZCL_DEVICE_MANAGEMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_DEVICE_MANAGEMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_PROVIDER_ID_CLIENT_ATTRIBUTE_ID (0x0000) +#define ZCL_RECEIVED_PROVIDER_ID_CLIENT_ATTRIBUTE_ID (0x0010) +#define ZCL_TOU_TARIFF_ACTIVATION_ATTRIBUTE_ID (0x0100) +#define ZCL_BLOCK_TARIFF_ACTIVATED_ATTRIBUTE_ID (0x0101) +#define ZCL_BLOCK_TOU_TARIFF_ACTIVATED_ATTRIBUTE_ID (0x0102) +#define ZCL_SINGLE_TARIFF_RATE_ACTIVATED_ATTRIBUTE_ID (0x0103) +#define ZCL_ASYNCHRONOUS_BILLING_OCCURRED_ATTRIBUTE_ID (0x0104) +#define ZCL_SYNCHRONOUS_BILLING_OCCURRED_ATTRIBUTE_ID (0x0105) +#define ZCL_TARIFF_NOT_SUPPORTED_ATTRIBUTE_ID (0x0106) +#define ZCL_PRICE_CLUSTER_NOT_FOUND_ATTRIBUTE_ID (0x0107) +#define ZCL_CURRENCY_CHANGE_PASSIVE_ACTIVATED_ATTRIBUTE_ID (0x0108) +#define ZCL_CURRENCY_CHANGE_PASSIVE_UPDATED_ATTRIBUTE_ID (0x0109) +#define ZCL_PRICE_MATRIX_PASSIVE_ACTIVATED_ATTRIBUTE_ID (0x010A) +#define ZCL_PRICE_MATRIX_PASSIVE_UPDATED_ATTRIBUTE_ID (0x010B) +#define ZCL_TARIFF_CHANGE_PASSIVE_ACTIVATED_ATTRIBUTE_ID (0x010C) +#define ZCL_TARIFF_CHANGE_PASSIVE_UPDATED_ATTRIBUTE_ID (0x010D) +#define ZCL_PUBLISH_PRICE_RECEIVED_ATTRIBUTE_ID (0x01B0) +#define ZCL_PUBLISH_PRICE_ACTIONED_ATTRIBUTE_ID (0x01B1) +#define ZCL_PUBLISH_PRICE_CANCELLED_ATTRIBUTE_ID (0x01B2) +#define ZCL_PUBLISH_PRICE_REJECTED_ATTRIBUTE_ID (0x01B3) +#define ZCL_PUBLISH_TARIFF_INFO_RECEIVED_ATTRIBUTE_ID (0x01B4) +#define ZCL_PUBLISH_TARIFF_INFO_ACTIONED_ATTRIBUTE_ID (0x01B5) +#define ZCL_PUBLISH_TARIFF_INFO_CANCELLED_ATTRIBUTE_ID (0x01B6) +#define ZCL_PUBLISH_TARIFF_INFO_REJECTED_ATTRIBUTE_ID (0x01B7) +#define ZCL_PUBLISH_PRICE_MATRIX_RECEIVED_ATTRIBUTE_ID (0x01B8) +#define ZCL_PUBLISH_PRICE_MATRIX_ACTIONED_ATTRIBUTE_ID (0x01B9) +#define ZCL_PUBLISH_PRICE_MATRIX_CANCELLED_ATTRIBUTE_ID (0x01BA) +#define ZCL_PUBLISH_PRICE_MATRIX_REJECTED_ATTRIBUTE_ID (0x01BB) +#define ZCL_PUBLISH_BLOCK_THRESHOLDS_RECEIVED_ATTRIBUTE_ID (0x01BC) +#define ZCL_PUBLISH_BLOCK_THRESHOLDS_ACTIONED_ATTRIBUTE_ID (0x01BD) +#define ZCL_PUBLISH_BLOCK_THRESHOLDS_CANCELLED_ATTRIBUTE_ID (0x01BE) +#define ZCL_PUBLISH_BLOCK_THRESHOLDS_REJECTED_ATTRIBUTE_ID (0x01BF) +#define ZCL_PUBLISH_CALORIFIC_VALUE_RECEIVED_ATTRIBUTE_ID (0x01C0) +#define ZCL_PUBLISH_CALORIFIC_VALUE_ACTIONED_ATTRIBUTE_ID (0x01C1) +#define ZCL_PUBLISH_CALORIFIC_VALUE_CANCELLED_ATTRIBUTE_ID (0x01C2) +#define ZCL_PUBLISH_CALORIFIC_VALUE_REJECTED_ATTRIBUTE_ID (0x01C3) +#define ZCL_PUBLISH_CONVERSION_FACTOR_RECEIVED_ATTRIBUTE_ID (0x01C4) +#define ZCL_PUBLISH_CONVERSION_FACTOR_ACTIONED_ATTRIBUTE_ID (0x01C5) +#define ZCL_PUBLISH_CONVERSION_FACTOR_CANCELLED_ATTRIBUTE_ID (0x01C6) +#define ZCL_PUBLISH_CONVERSION_FACTOR_REJECTED_ATTRIBUTE_ID (0x01C7) +#define ZCL_PUBLISH_CO2_VALUE_RECEIVED_ATTRIBUTE_ID (0x01C8) +#define ZCL_PUBLISH_CO2_VALUE_ACTIONED_ATTRIBUTE_ID (0x01C9) +#define ZCL_PUBLISH_CO2_VALUE_CANCELLED_ATTRIBUTE_ID (0x01CA) +#define ZCL_PUBLISH_CO2_VALUE_REJECTED_ATTRIBUTE_ID (0x01CB) +#define ZCL_PUBLISH_CPP_EVENT_RECEIVED_ATTRIBUTE_ID (0x01CC) +#define ZCL_PUBLISH_CPP_EVENT_ACTIONED_ATTRIBUTE_ID (0x01CD) +#define ZCL_PUBLISH_CPP_EVENT_CANCELLED_ATTRIBUTE_ID (0x01CE) +#define ZCL_PUBLISH_CPP_EVENT_REJECTED_ATTRIBUTE_ID (0x01CF) +#define ZCL_PUBLISH_TIER_LABELS_RECEIVED_ATTRIBUTE_ID (0x01D0) +#define ZCL_PUBLISH_TIER_LABELS_ACTIONED_ATTRIBUTE_ID (0x01D1) +#define ZCL_PUBLISH_TIER_LABELS_CANCELLED_ATTRIBUTE_ID (0x01D2) +#define ZCL_PUBLISH_TIER_LABELS_REJECTED_ATTRIBUTE_ID (0x01D3) +#define ZCL_PUBLISH_BILLING_PERIOD_RECEIVED_ATTRIBUTE_ID (0x01D4) +#define ZCL_PUBLISH_BILLING_PERIOD_ACTIONED_ATTRIBUTE_ID (0x01D5) +#define ZCL_PUBLISH_BILLING_PERIOD_CANCELLED_ATTRIBUTE_ID (0x01D6) +#define ZCL_PUBLISH_BILLING_PERIOD_REJECTED_ATTRIBUTE_ID (0x01D7) +#define ZCL_PUBLISH_CONSOLIDATED_BILL_RECEIVED_ATTRIBUTE_ID (0x01D8) +#define ZCL_PUBLISH_CONSOLIDATED_BILL_ACTIONED_ATTRIBUTE_ID (0x01D9) +#define ZCL_PUBLISH_CONSOLIDATED_BILL_CANCELLED_ATTRIBUTE_ID (0x01DA) +#define ZCL_PUBLISH_CONSOLIDATED_BILL_REJECTED_ATTRIBUTE_ID (0x01DB) +#define ZCL_PUBLISH_BLOCK_PERIOD_RECEIVED_ATTRIBUTE_ID (0x01DC) +#define ZCL_PUBLISH_BLOCK_PERIOD_ACTIONED_ATTRIBUTE_ID (0x01DD) +#define ZCL_PUBLISH_BLOCK_PERIOD_CANCELLED_ATTRIBUTE_ID (0x01DE) +#define ZCL_PUBLISH_BLOCK_PERIOD_REJECTED_ATTRIBUTE_ID (0x01DF) +#define ZCL_PUBLISH_CREDIT_PAYMENT_INFO_RECEIVED_ATTRIBUTE_ID (0x01E0) +#define ZCL_PUBLISH_CREDIT_PAYMENT_INFO_ACTIONED_ATTRIBUTE_ID (0x01E1) +#define ZCL_PUBLISH_CREDIT_PAYMENT_INFO_CANCELLED_ATTRIBUTE_ID (0x01E2) +#define ZCL_PUBLISH_CREDIT_PAYMENT_INFO_REJECTED_ATTRIBUTE_ID (0x01E3) +#define ZCL_PUBLISH_CURRENCY_CONVERSION_RECEIVED_ATTRIBUTE_ID (0x01E4) +#define ZCL_PUBLISH_CURRENCY_CONVERSION_ACTIONED_ATTRIBUTE_ID (0x01E5) +#define ZCL_PUBLISH_CURRENCY_CONVERSION_CANCELLED_ATTRIBUTE_ID (0x01E6) +#define ZCL_PUBLISH_CURRENCY_CONVERSION_REJECTED_ATTRIBUTE_ID (0x01E7) +#define ZCL_CHECK_METER_ATTRIBUTE_ID (0x0200) +#define ZCL_LOW_BATTERY_ATTRIBUTE_ID (0x0201) +#define ZCL_TAMPER_DETECT_ATTRIBUTE_ID (0x0202) +#define ZCL_DEVICE_MANAGEMENT_SUPPLY_STATUS_ATTRIBUTE_ID (0x0203) +#define ZCL_SUPPLY_QUALITY_ATTRIBUTE_ID (0x0204) +#define ZCL_LEAK_DETECT_ATTRIBUTE_ID (0x0205) +#define ZCL_SERVICE_DISCONNECT_ATTRIBUTE_ID (0x0206) +#define ZCL_REVERSE_FLOW_GENERAL_ATTRIBUTE_ID (0x0207) +#define ZCL_METER_COVER_REMOVED_ATTRIBUTE_ID (0x0208) +#define ZCL_METER_COVER_CLOSED_ATTRIBUTE_ID (0x0209) +#define ZCL_STRONG_MAGNETIC_FIELD_ATTRIBUTE_ID (0x020A) +#define ZCL_NO_STRONG_MAGNETIC_FIELD_ATTRIBUTE_ID (0x020B) +#define ZCL_BATTERY_FAILURE_ATTRIBUTE_ID (0x020C) +#define ZCL_PROGRAM_MEMORY_ERROR_ATTRIBUTE_ID (0x020D) +#define ZCL_RAM_ERROR_ATTRIBUTE_ID (0x020E) +#define ZCL_NV_MEMORY_ERROR_ATTRIBUTE_ID (0x020F) +#define ZCL_LOW_VOLTAGE_L1_ATTRIBUTE_ID (0x0210) +#define ZCL_HIGH_VOLTAGE_L1_ATTRIBUTE_ID (0x0211) +#define ZCL_LOW_VOLTAGE_L2_ATTRIBUTE_ID (0x0212) +#define ZCL_HIGH_VOLTAGE_L2_ATTRIBUTE_ID (0x0213) +#define ZCL_LOW_VOLTAGE_L3_ATTRIBUTE_ID (0x0214) +#define ZCL_HIGH_VOLTAGE_L3_ATTRIBUTE_ID (0x0215) +#define ZCL_OVER_CURRENT_L1_ATTRIBUTE_ID (0x0216) +#define ZCL_OVER_CURRENT_L2_ATTRIBUTE_ID (0x0217) +#define ZCL_OVER_CURRENT_L3_ATTRIBUTE_ID (0x0218) +#define ZCL_FREQUENCY_TOO_LOW_L1_ATTRIBUTE_ID (0x0219) +#define ZCL_FREQUENCY_TOO_HIGH_L1_ATTRIBUTE_ID (0x021A) +#define ZCL_FREQUENCY_TOO_LOW_L2_ATTRIBUTE_ID (0x021B) +#define ZCL_FREQUENCY_TOO_HIGH_L2_ATTRIBUTE_ID (0x021C) +#define ZCL_FREQUENCY_TOO_LOW_L3_ATTRIBUTE_ID (0x021D) +#define ZCL_FREQUENCY_TOO_HIGH_L3_ATTRIBUTE_ID (0x021E) +#define ZCL_GROUND_FAULT_ATTRIBUTE_ID (0x021F) +#define ZCL_ELECTRIC_TAMPER_DETECT_ATTRIBUTE_ID (0x0220) +#define ZCL_INCORRECT_POLARITY_ATTRIBUTE_ID (0x0221) +#define ZCL_CURRENT_NO_VOLTAGE_ATTRIBUTE_ID (0x0222) +#define ZCL_UNDER_VOLTAGE_ATTRIBUTE_ID (0x0223) +#define ZCL_OVER_VOLTAGE_ATTRIBUTE_ID (0x0224) +#define ZCL_NORMAL_VOLTAGE_ATTRIBUTE_ID (0x0225) +#define ZCL_PF_BELOW_THRESHOLD_ATTRIBUTE_ID (0x0226) +#define ZCL_PF_ABOVE_THRESHOLD_ATTRIBUTE_ID (0x0227) +#define ZCL_TERMINAL_COVER_REMOVED_ATTRIBUTE_ID (0x0228) +#define ZCL_TERMINAL_COVER_CLOSED_ATTRIBUTE_ID (0x0229) +#define ZCL_BURST_DETECT_ATTRIBUTE_ID (0x0230) +#define ZCL_PRESSURE_TOO_LOW_ATTRIBUTE_ID (0x0231) +#define ZCL_PRESSURE_TOO_HIGH_ATTRIBUTE_ID (0x0232) +#define ZCL_FLOW_SENSOR_COMMUNICATION_ERROR_ATTRIBUTE_ID (0x0233) +#define ZCL_FLOW_SENSOR_MEASUREMENT_FAULT_ATTRIBUTE_ID (0x0234) +#define ZCL_FLOW_SENSOR_REVERSE_FLOW_ATTRIBUTE_ID (0x0235) +#define ZCL_FLOW_SENSOR_AIR_DETECT_ATTRIBUTE_ID (0x0236) +#define ZCL_PIPE_EMPTY_ATTRIBUTE_ID (0x0237) +#define ZCL_INLET_TEMP_SENSOR_FAULT_ATTRIBUTE_ID (0x0250) +#define ZCL_OUTLET_TEMP_SENSOR_FAULT_ATTRIBUTE_ID (0x0251) +#define ZCL_REVERSE_FLOW_ATTRIBUTE_ID (0x0260) +#define ZCL_TILT_TAMPER_ATTRIBUTE_ID (0x0261) +#define ZCL_BATTERY_COVER_REMOVED_ATTRIBUTE_ID (0x0262) +#define ZCL_BATTERY_COVER_CLOSED_ATTRIBUTE_ID (0x0263) +#define ZCL_EXCESS_FLOW_ATTRIBUTE_ID (0x0264) +#define ZCL_TILT_TAMPER_ENABLED_ATTRIBUTE_ID (0x0265) +#define ZCL_MEASUREMENT_SYSTEM_ERROR_ATTRIBUTE_ID (0x0270) +#define ZCL_WATCHDOG_ERROR_ATTRIBUTE_ID (0x0271) +#define ZCL_SUPPLY_DISCONNECT_FAILURE_ATTRIBUTE_ID (0x0272) +#define ZCL_SUPPLY_CONNECT_FAILURE_ATTRIBUTE_ID (0x0273) +#define ZCL_MEASUREMENT_SOFTWARE_CHANGED_ATTRIBUTE_ID (0x0274) +#define ZCL_DST_ENABLED_ATTRIBUTE_ID (0x0275) +#define ZCL_DST_DISABLED_ATTRIBUTE_ID (0x0276) +#define ZCL_CLOCK_ADJ_BACKWARD_ATTRIBUTE_ID (0x0277) +#define ZCL_CLOCK_ADJ_FORWARD_ATTRIBUTE_ID (0x0278) +#define ZCL_CLOCK_INVALID_ATTRIBUTE_ID (0x0279) +#define ZCL_COMMUNICATION_ERROR_HAN_ATTRIBUTE_ID (0x027A) +#define ZCL_COMMUNICATION_OK_HAN_ATTRIBUTE_ID (0x027B) +#define ZCL_METER_FRAUD_ATTEMPT_ATTRIBUTE_ID (0x027C) +#define ZCL_POWER_LOSS_ATTRIBUTE_ID (0x027D) +#define ZCL_UNUSUAL_HAN_TRAFFIC_ATTRIBUTE_ID (0x027E) +#define ZCL_UNEXPECTED_CLOCK_CHANGE_ATTRIBUTE_ID (0x027F) +#define ZCL_COMMS_USING_UNAUTHENTICATED_COMPONENT_ATTRIBUTE_ID (0x0280) +#define ZCL_METERING_ERROR_REG_CLEAR_ATTRIBUTE_ID (0x0281) +#define ZCL_METERING_ALARM_REG_CLEAR_ATTRIBUTE_ID (0x0282) +#define ZCL_UNEXPECTED_HW_RESET_ATTRIBUTE_ID (0x0283) +#define ZCL_UNEXPECTED_PROGRAM_EXECUTION_ATTRIBUTE_ID (0x0284) +#define ZCL_LIMIT_THRESHOLD_EXCEEDED_ATTRIBUTE_ID (0x0285) +#define ZCL_LIMIT_THRESHOLD_OK_ATTRIBUTE_ID (0x0286) +#define ZCL_LIMIT_THRESHOLD_CHANGED_ATTRIBUTE_ID (0x0287) +#define ZCL_MAXIMUM_DEMAND_EXCEEDED_ATTRIBUTE_ID (0x0288) +#define ZCL_PROFILE_CLEARED_ATTRIBUTE_ID (0x0289) +#define ZCL_LOAD_PROFILE_CLEARED_ATTRIBUTE_ID (0x028A) +#define ZCL_BATTERY_WARN_ATTRIBUTE_ID (0x028B) +#define ZCL_WRONG_SIGNATURE_ATTRIBUTE_ID (0x028C) +#define ZCL_NO_SIGNATURE_ATTRIBUTE_ID (0x028D) +#define ZCL_SIGNATURE_NOT_VALID_ATTRIBUTE_ID (0x028E) +#define ZCL_UNAUTHORISE_ACTION_FROM_HAN_ATTRIBUTE_ID (0x028F) +#define ZCL_FAST_POLLING_START_ATTRIBUTE_ID (0x0290) +#define ZCL_FAST_POLLING_END_ATTRIBUTE_ID (0x0291) +#define ZCL_METER_REPORTING_INTERVAL_CHANGED_ATTRIBUTE_ID (0x0292) +#define ZCL_DISCONNECT_TO_LOAD_LIMIT_ATTRIBUTE_ID (0x0293) +#define ZCL_METER_SUPPLY_STATUS_REGISTER_CHANGED_ATTRIBUTE_ID (0x0294) +#define ZCL_METER_ALARM_STATUS_REGISTER_CHANGED_ATTRIBUTE_ID (0x0295) +#define ZCL_EXTENDED_METER_ALARM_STATUS_REGISTER_CHANGED_ATTRIBUTE_ID (0x0296) +#define ZCL_DATA_ACCESS_VIA_LOCAL_PORT_ATTRIBUTE_ID (0x0297) +#define ZCL_CONFIGURE_MIRROR_SUCCESS_ATTRIBUTE_ID (0x0298) +#define ZCL_CONFIGURE_MIRROR_FAILURE_ATTRIBUTE_ID (0x0299) +#define ZCL_CONFIGURE_NOTIFICATION_FLAG_SCHEME_SUCCESS_ATTRIBUTE_ID (0x029A) +#define ZCL_CONFIGURE_NOTIFICATION_FLAG_SCHEME_FAILURE_ATTRIBUTE_ID (0x029B) +#define ZCL_CONFIGURE_NOTIFICATION_FLAGS_SUCCESS_ATTRIBUTE_ID (0x029C) +#define ZCL_CONFIGURE_NOTIFICATION_FLAGS_FAILURE_ATTRIBUTE_ID (0x029D) +#define ZCL_STAY_AWAKE_REQUEST_HAN_ATTRIBUTE_ID (0x029E) +#define ZCL_STAY_AWAKE_REQUEST_WAN_ATTRIBUTE_ID (0x029F) +#define ZCL_MANUFACTURER_SPECIFIC_A_ATTRIBUTE_ID (0x02B0) +#define ZCL_MANUFACTURER_SPECIFIC_B_ATTRIBUTE_ID (0x02B1) +#define ZCL_MANUFACTURER_SPECIFIC_C_ATTRIBUTE_ID (0x02B2) +#define ZCL_MANUFACTURER_SPECIFIC_D_ATTRIBUTE_ID (0x02B3) +#define ZCL_MANUFACTURER_SPECIFIC_E_ATTRIBUTE_ID (0x02B4) +#define ZCL_MANUFACTURER_SPECIFIC_F_ATTRIBUTE_ID (0x02B5) +#define ZCL_MANUFACTURER_SPECIFIC_G_ATTRIBUTE_ID (0x02B6) +#define ZCL_MANUFACTURER_SPECIFIC_H_ATTRIBUTE_ID (0x02B7) +#define ZCL_MANUFACTURER_SPECIFIC_I_ATTRIBUTE_ID (0x02B8) +#define ZCL_GET_PROFILE_COMMAND_RECEIVED_ATTRIBUTE_ID (0x02C0) +#define ZCL_GET_PROFILE_COMMAND_ACTIONED_ATTRIBUTE_ID (0x02C1) +#define ZCL_GET_PROFILE_COMMAND_CANCELLED_ATTRIBUTE_ID (0x02C2) +#define ZCL_GET_PROFILE_COMMAND_REJECTED_ATTRIBUTE_ID (0x02C3) +#define ZCL_REQUEST_MIRROR_RESPONSE_COMMAND_RECEIVED_ATTRIBUTE_ID (0x02C4) +#define ZCL_REQUEST_MIRROR_RESPONSE_COMMAND_ACTIONED_ATTRIBUTE_ID (0x02C5) +#define ZCL_REQUEST_MIRROR_RESPONSE_COMMAND_CANCELLED_ATTRIBUTE_ID (0x02C6) +#define ZCL_REQUEST_MIRROR_RESPONSE_COMMAND_REJECTED_ATTRIBUTE_ID (0x02C7) +#define ZCL_MIRROR_REMOVED_COMMAND_RECEIVED_ATTRIBUTE_ID (0x02C8) +#define ZCL_MIRROR_REMOVED_COMMAND_ACTIONED_ATTRIBUTE_ID (0x02C9) +#define ZCL_MIRROR_REMOVED_COMMAND_CANCELLED_ATTRIBUTE_ID (0x02CA) +#define ZCL_MIRROR_REMOVED_COMMAND_REJECTED_ATTRIBUTE_ID (0x02CB) +#define ZCL_GET_SNAPSHOT_COMMAND_RECEIVED_ATTRIBUTE_ID (0x02CC) +#define ZCL_GET_SNAPSHOT_COMMAND_ACTIONED_ATTRIBUTE_ID (0x02CD) +#define ZCL_GET_SNAPSHOT_COMMAND_CANCELLED_ATTRIBUTE_ID (0x02CE) +#define ZCL_GET_SNAPSHOT_COMMAND_REJECTED_ATTRIBUTE_ID (0x02CF) +#define ZCL_TAKE_SNAPSHOT_COMMAND_RECEIVED_ATTRIBUTE_ID (0x02D0) +#define ZCL_TAKE_SNAPSHOT_COMMAND_ACTIONED_ATTRIBUTE_ID (0x02D1) +#define ZCL_TAKE_SNAPSHOT_COMMAND_CANCELLED_ATTRIBUTE_ID (0x02D2) +#define ZCL_TAKE_SNAPSHOT_COMMAND_REJECTED_ATTRIBUTE_ID (0x02D3) +#define ZCL_MIRROR_REPORT_ATTRIBUTE_RESPONSE_COMMAND_RECEIVED_ATTRIBUTE_ID (0x02D4) +#define ZCL_MIRROR_REPORT_ATTRIBUTE_RESPONSE_COMMAND_ACTIONED_ATTRIBUTE_ID (0x02D5) +#define ZCL_MIRROR_REPORT_ATTRIBUTE_RESPONSE_COMMAND_CANCELLED_ATTRIBUTE_ID (0x02D6) +#define ZCL_MIRROR_REPORT_ATTRIBUTE_RESPONSE_COMMAND_REJECTED_ATTRIBUTE_ID (0x02D7) +#define ZCL_SCHEDULE_SNAPSHOT_COMMAND_RECEIVED_ATTRIBUTE_ID (0x02D8) +#define ZCL_SCHEDULE_SNAPSHOT_COMMAND_ACTIONED_ATTRIBUTE_ID (0x02D9) +#define ZCL_SCHEDULE_SNAPSHOT_COMMAND_CANCELLED_ATTRIBUTE_ID (0x02DA) +#define ZCL_SCHEDULE_SNAPSHOT_COMMAND_REJECTED_ATTRIBUTE_ID (0x02DB) +#define ZCL_START_SAMPLING_COMMAND_RECEIVED_ATTRIBUTE_ID (0x02DC) +#define ZCL_START_SAMPLING_COMMAND_ACTIONED_ATTRIBUTE_ID (0x02DD) +#define ZCL_START_SAMPLING_COMMAND_CANCELLED_ATTRIBUTE_ID (0x02DE) +#define ZCL_START_SAMPLING_COMMAND_REJECTED_ATTRIBUTE_ID (0x02DF) +#define ZCL_GET_SAMPLED_DATA_COMMAND_RECEIVED_ATTRIBUTE_ID (0x02E0) +#define ZCL_GET_SAMPLED_DATA_COMMAND_ACTIONED_ATTRIBUTE_ID (0x02E1) +#define ZCL_GET_SAMPLED_DATA_COMMAND_CANCELLED_ATTRIBUTE_ID (0x02E2) +#define ZCL_GET_SAMPLED_DATA_COMMAND_REJECTED_ATTRIBUTE_ID (0x02E3) +#define ZCL_SUPPLY_ON_ATTRIBUTE_ID (0x02E4) +#define ZCL_SUPPLY_ARMED_ATTRIBUTE_ID (0x02E5) +#define ZCL_SUPPLY_OFF_ATTRIBUTE_ID (0x02E6) +#define ZCL_DISCONNECTED_DUE_TO_TAMPER_DETECTED_ATTRIBUTE_ID (0x02E7) +#define ZCL_MANUAL_DISCONNECT_ATTRIBUTE_ID (0x02E8) +#define ZCL_MANUAL_CONNECT_ATTRIBUTE_ID (0x02E9) +#define ZCL_REMOTE_DISCONNECTION_ATTRIBUTE_ID (0x02EA) +#define ZCL_REMOTE_CONNECT_ATTRIBUTE_ID (0x02EB) +#define ZCL_LOCAL_DISCONNECTION_ATTRIBUTE_ID (0x02EC) +#define ZCL_LOCAL_CONNECT_ATTRIBUTE_ID (0x02ED) +#define ZCL_CHANGE_SUPPLY_RECEIVED_ATTRIBUTE_ID (0x02EE) +#define ZCL_CHANGE_SUPPLY_ACTIONED_ATTRIBUTE_ID (0x02EF) +#define ZCL_CHANGE_SUPPLY_CANCELLED_ATTRIBUTE_ID (0x02F0) +#define ZCL_CHANGE_SUPPLY_REJECTED_ATTRIBUTE_ID (0x02F1) +#define ZCL_LOCAL_CHANGE_SUPPLY_RECEIVED_ATTRIBUTE_ID (0x02F2) +#define ZCL_LOCAL_CHANGE_SUPPLY_ACTIONED_ATTRIBUTE_ID (0x02F3) +#define ZCL_LOCAL_CHANGE_SUPPLY_CANCELLED_ATTRIBUTE_ID (0x02F4) +#define ZCL_LOCAL_CHANGE_SUPPLY_REJECTED_ATTRIBUTE_ID (0x02F5) +#define ZCL_PUBLISH_UNCONTROLLED_FLOW_THRESHOLD_RECEIVED_ATTRIBUTE_ID (0x02F6) +#define ZCL_PUBLISH_UNCONTROLLED_FLOW_THRESHOLD_ACTIONED_ATTRIBUTE_ID (0x02F7) +#define ZCL_PUBLISH_UNCONTROLLED_FLOW_THRESHOLD_CANCELLED_ATTRIBUTE_ID (0x02F8) +#define ZCL_PUBLISH_UNCONTROLLED_FLOW_THRESHOLD_REJECTED_ATTRIBUTE_ID (0x02F9) +#define ZCL_MESSAGE_CONFIRMATION_SENT_ATTRIBUTE_ID (0x0300) +#define ZCL_DISPLAY_MESSAGE_RECEIVED_ATTRIBUTE_ID (0x03C0) +#define ZCL_DISPLAY_MESSAGE_ACTIONED_ATTRIBUTE_ID (0x03C1) +#define ZCL_DISPLAY_MESSAGE_CANCELLED_ATTRIBUTE_ID (0x03C2) +#define ZCL_DISPLAY_MESSAGE_REJECTED_ATTRIBUTE_ID (0x03C3) +#define ZCL_CANCEL_MESSAGE_RECEIVED_ATTRIBUTE_ID (0x03C4) +#define ZCL_CANCEL_MESSAGE_ACTIONED_ATTRIBUTE_ID (0x03C5) +#define ZCL_CANCEL_MESSAGE_CANCELLED_ATTRIBUTE_ID (0x03C6) +#define ZCL_CANCEL_MESSAGE_REJECTED_ATTRIBUTE_ID (0x03C7) +#define ZCL_LOW_CREDIT_ATTRIBUTE_ID (0x0400) +#define ZCL_NO_CREDIT_ATTRIBUTE_ID (0x0401) +#define ZCL_CREDIT_EXHAUSTED_ATTRIBUTE_ID (0x0402) +#define ZCL_EMERGENCY_CREDIT_ENABLED_ATTRIBUTE_ID (0x0403) +#define ZCL_EMERGENCY_CREDIT_EXHAUSTED_ATTRIBUTE_ID (0x0404) +#define ZCL_PREPAY_IHD_LOW_CREDIT_WARNING_ATTRIBUTE_ID (0x0405) +#define ZCL_PHYSICAL_ATTACK_ON_THE_PREPAY_METER_ATTRIBUTE_ID (0x0420) +#define ZCL_ELECTRONIC_ATTACK_ON_THE_PREPAY_METER_ATTRIBUTE_ID (0x0421) +#define ZCL_DISCOUNT_APPLIED_ATTRIBUTE_ID (0x0422) +#define ZCL_CREDIT_ADJUSTMENT_ATTRIBUTE_ID (0x0423) +#define ZCL_CREDIT_ADJUST_FAIL_ATTRIBUTE_ID (0x0424) +#define ZCL_DEBT_ADJUSTMENT_ATTRIBUTE_ID (0x0425) +#define ZCL_DEBT_ADJUST_FAIL_ATTRIBUTE_ID (0x0426) +#define ZCL_MODE_CHANGE_ATTRIBUTE_ID (0x0427) +#define ZCL_TOPUP_CODE_ERROR_ATTRIBUTE_ID (0x0428) +#define ZCL_TOPUP_ALREADY_USED_ATTRIBUTE_ID (0x0429) +#define ZCL_TOPUP_CODE_INVALID_ATTRIBUTE_ID (0x042A) +#define ZCL_TOPUP_ACCEPTED_VIA_REMOTE_ATTRIBUTE_ID (0x042B) +#define ZCL_TOPUP_ACCEPTED_VIA_MANUAL_ENTRY_ATTRIBUTE_ID (0x042C) +#define ZCL_FRIENDLY_CREDIT_IN_USE_ATTRIBUTE_ID (0x042D) +#define ZCL_FRIENDLY_CREDIT_END_WARNING_ATTRIBUTE_ID (0x042E) +#define ZCL_FRIENDLY_CREDIT_PERIOD_END_ATTRIBUTE_ID (0x042F) +#define ZCL_PREPAY_ERROR_REG_CLEAR_ATTRIBUTE_ID (0x0430) +#define ZCL_PREPAY_ALARM_REG_CLEAR_ATTRIBUTE_ID (0x0431) +#define ZCL_PREPAY_CLUSTER_NOT_FOUND_ATTRIBUTE_ID (0x0432) +#define ZCL_TOPUP_VALUE_TOO_LARGE_ATTRIBUTE_ID (0x0433) +#define ZCL_MODE_CREDIT_2_PREPAY_ATTRIBUTE_ID (0x0441) +#define ZCL_MODE_PREPAY_2_CREDIT_ATTRIBUTE_ID (0x0442) +#define ZCL_MODE_DEFAULT_ATTRIBUTE_ID (0x0443) +#define ZCL_SELECT_AVAILABLE_EMERGENCY_CREDIT_RECEIVED_ATTRIBUTE_ID (0x04C0) +#define ZCL_SELECT_AVAILABLE_EMERGENCY_CREDIT_ACTIONED_ATTRIBUTE_ID (0x04C1) +#define ZCL_SELECT_AVAILABLE_EMERGENCY_CREDIT_CANCELLED_ATTRIBUTE_ID (0x04C2) +#define ZCL_SELECT_AVAILABLE_EMERGENCY_CREDIT_REJECTED_ATTRIBUTE_ID (0x04C3) +#define ZCL_CHANGE_DEBT_RECEIVED_ATTRIBUTE_ID (0x04C4) +#define ZCL_CHANGE_DEBT_ACTIONED_ATTRIBUTE_ID (0x04C5) +#define ZCL_CHANGE_DEBT_CANCELLED_ATTRIBUTE_ID (0x04C6) +#define ZCL_CHANGE_DEBT_REJECTED_ATTRIBUTE_ID (0x04C7) +#define ZCL_EMERGENCY_CREDIT_SETUP_RECEIVED_ATTRIBUTE_ID (0x04C8) +#define ZCL_EMERGENCY_CREDIT_SETUP_ACTIONED_ATTRIBUTE_ID (0x04C9) +#define ZCL_EMERGENCY_CREDIT_SETUP_CANCELLED_ATTRIBUTE_ID (0x04CA) +#define ZCL_EMERGENCY_CREDIT_SETUP_REJECTED_ATTRIBUTE_ID (0x04CB) +#define ZCL_CONSUMER_TOPUP_RECEIVED_ATTRIBUTE_ID (0x04CC) +#define ZCL_CONSUMER_TOPUP_ACTIONED_ATTRIBUTE_ID (0x04CD) +#define ZCL_CONSUMER_TOPUP_CANCELLED_ATTRIBUTE_ID (0x04CE) +#define ZCL_CONSUMER_TOPUP_REJECTED_ATTRIBUTE_ID (0x04CF) +#define ZCL_CREDIT_ADJUSTMENT_RECEIVED_ATTRIBUTE_ID (0x04D0) +#define ZCL_CREDIT_ADJUSTMENT_ACTIONED_ATTRIBUTE_ID (0x04D1) +#define ZCL_CREDIT_ADJUSTMENT_CANCELLED_ATTRIBUTE_ID (0x04D2) +#define ZCL_CREDIT_ADJUSTMENT_REJECTED_ATTRIBUTE_ID (0x04D3) +#define ZCL_CHANGE_PAYMENT_MODE_RECEIVED_ATTRIBUTE_ID (0x04D4) +#define ZCL_CHANGE_PAYMENT_MODE_ACTIONED_ATTRIBUTE_ID (0x04D5) +#define ZCL_CHANGE_PAYMENT_MODE_CANCELLED_ATTRIBUTE_ID (0x04D6) +#define ZCL_CHANGE_PAYMENT_MODE_REJECTED_ATTRIBUTE_ID (0x04D7) +#define ZCL_GET_PREPAY_SNAPSHOT_RECEIVED_ATTRIBUTE_ID (0x04D8) +#define ZCL_GET_PREPAY_SNAPSHOT_ACTIONED_ATTRIBUTE_ID (0x04D9) +#define ZCL_GET_PREPAY_SNAPSHOT_CANCELLED_ATTRIBUTE_ID (0x04DA) +#define ZCL_GET_PREPAY_SNAPSHOT_REJECTED_ATTRIBUTE_ID (0x04DB) +#define ZCL_GET_TOPUP_LOG_RECEIVED_ATTRIBUTE_ID (0x04DC) +#define ZCL_GET_TOPUP_LOG_ACTIONED_ATTRIBUTE_ID (0x04DD) +#define ZCL_GET_TOPUP_LOG_CANCELLED_ATTRIBUTE_ID (0x04DE) +#define ZCL_GET_TOPUP_LOG_REJECTED_ATTRIBUTE_ID (0x04DF) +#define ZCL_SET_LOW_CREDIT_WARNING_LEVEL_RECEIVED_ATTRIBUTE_ID (0x04E0) +#define ZCL_SET_LOW_CREDIT_WARNING_LEVEL_ACTIONED_ATTRIBUTE_ID (0x04E1) +#define ZCL_SET_LOW_CREDIT_WARNING_LEVEL_CANCELLED_ATTRIBUTE_ID (0x04E2) +#define ZCL_SET_LOW_CREDIT_WARNING_LEVEL_REJECTED_ATTRIBUTE_ID (0x04E3) +#define ZCL_GET_DEBT_REPAY_LOG_RECEIVED_ATTRIBUTE_ID (0x04E4) +#define ZCL_GET_DEBT_REPAY_LOG_ACTIONED_ATTRIBUTE_ID (0x04E5) +#define ZCL_GET_DEBT_REPAY_LOG_CANCELLED_ATTRIBUTE_ID (0x04E6) +#define ZCL_GET_DEBT_REPAY_LOG_REJECTED_ATTRIBUTE_ID (0x04E7) +#define ZCL_SET_MAXIMUM_CREDIT_LIMIT_RECEIVED_ATTRIBUTE_ID (0x04E8) +#define ZCL_SET_MAXIMUM_CREDIT_LIMIT_ACTIONED_ATTRIBUTE_ID (0x04E9) +#define ZCL_SET_MAXIMUM_CREDIT_LIMIT_CANCELLED_ATTRIBUTE_ID (0x04EA) +#define ZCL_SET_MAXIMUM_CREDIT_LIMIT_REJECTED_ATTRIBUTE_ID (0x04EB) +#define ZCL_SET_OVERALL_DEBT_CAP_RECEIVED_ATTRIBUTE_ID (0x04EC) +#define ZCL_SET_OVERALL_DEBT_CAP_ACTIONED_ATTRIBUTE_ID (0x04ED) +#define ZCL_SET_OVERALL_DEBT_CAP_CANCELLED_ATTRIBUTE_ID (0x04EE) +#define ZCL_SET_OVERALL_DEBT_CAP_REJECTED_ATTRIBUTE_ID (0x04EF) +#define ZCL_CALENDAR_CLUSTER_NOT_FOUND_ATTRIBUTE_ID (0x0500) +#define ZCL_CALENDAR_CHANGE_PASSIVE_ACTIVATED_ATTRIBUTE_ID (0x0501) +#define ZCL_CALENDAR_CHANGE_PASSIVE_UPDATED_ATTRIBUTE_ID (0x0502) +#define ZCL_PUBLISH_CALENDAR_RECEIVED_ATTRIBUTE_ID (0x05C0) +#define ZCL_PUBLISH_CALENDAR_ACTIONED_ATTRIBUTE_ID (0x05C1) +#define ZCL_PUBLISH_CALENDAR_CANCELLED_ATTRIBUTE_ID (0x05C2) +#define ZCL_PUBLISH_CALENDAR_REJECTED_ATTRIBUTE_ID (0x05C3) +#define ZCL_PUBLISH_DAY_PROFILE_RECEIVED_ATTRIBUTE_ID (0x05C4) +#define ZCL_PUBLISH_DAY_PROFILE_ACTIONED_ATTRIBUTE_ID (0x05C5) +#define ZCL_PUBLISH_DAY_PROFILE_CANCELLED_ATTRIBUTE_ID (0x05C6) +#define ZCL_PUBLISH_DAY_PROFILE_REJECTED_ATTRIBUTE_ID (0x05C7) +#define ZCL_PUBLISH_WEEK_PROFILE_RECEIVED_ATTRIBUTE_ID (0x05C8) +#define ZCL_PUBLISH_WEEK_PROFILE_ACTIONED_ATTRIBUTE_ID (0x05C9) +#define ZCL_PUBLISH_WEEK_PROFILE_CANCELLED_ATTRIBUTE_ID (0x05CA) +#define ZCL_PUBLISH_WEEK_PROFILE_REJECTED_ATTRIBUTE_ID (0x05CB) +#define ZCL_PUBLISH_SEASONS_RECEIVED_ATTRIBUTE_ID (0x05CC) +#define ZCL_PUBLISH_SEASONS_ACTIONED_ATTRIBUTE_ID (0x05CD) +#define ZCL_PUBLISH_SEASONS_CANCELLED_ATTRIBUTE_ID (0x05CE) +#define ZCL_PUBLISH_SEASONS_REJECTED_ATTRIBUTE_ID (0x05CF) +#define ZCL_PUBLISH_SPECIAL_DAYS_RECEIVED_ATTRIBUTE_ID (0x05D0) +#define ZCL_PUBLISH_SPECIAL_DAYS_ACTIONED_ATTRIBUTE_ID (0x05D1) +#define ZCL_PUBLISH_SPECIAL_DAYS_CANCELLED_ATTRIBUTE_ID (0x05D2) +#define ZCL_PUBLISH_SPECIAL_DAYS_REJECTED_ATTRIBUTE_ID (0x05D3) +#define ZCL_PASSWORD_1_CHANGE_ATTRIBUTE_ID (0x0600) +#define ZCL_PASSWORD_2_CHANGE_ATTRIBUTE_ID (0x0601) +#define ZCL_PASSWORD_3_CHANGE_ATTRIBUTE_ID (0x0602) +#define ZCL_PASSWORD_4_CHANGE_ATTRIBUTE_ID (0x0603) +#define ZCL_EVENT_LOG_CLEARED_ATTRIBUTE_ID (0x0604) +#define ZCL_ZIGBEE_APS_TIMEOUT_ATTRIBUTE_ID (0x0610) +#define ZCL_ZIGBEE_IEEE_TRANSMISSION_FAILURE_OVER_THRESHOLD_ATTRIBUTE_ID (0x0611) +#define ZCL_ZIGBEE_IEEE_FRAME_CHECK_SEQUENCE_THRESHOLD_ATTRIBUTE_ID (0x0612) +#define ZCL_ERROR_CERTIFICATE_ATTRIBUTE_ID (0x0613) +#define ZCL_ERROR_SIGNATURE_ATTRIBUTE_ID (0x0614) +#define ZCL_ERROR_PROGRAM_STORAGE_ATTRIBUTE_ID (0x0615) +#define ZCL_PUBLISH_COT_RECEIVED_ATTRIBUTE_ID (0x06C0) +#define ZCL_PUBLISH_COT_ACTIONED_ATTRIBUTE_ID (0x06C1) +#define ZCL_PUBLISH_COT_CANCELLED_ATTRIBUTE_ID (0x06C2) +#define ZCL_PUBLISH_COT_REJECTED_ATTRIBUTE_ID (0x06C3) +#define ZCL_PUBLISH_COS_RECEIVED_ATTRIBUTE_ID (0x06C4) +#define ZCL_PUBLISH_COS_ACTIONED_ATTRIBUTE_ID (0x06C5) +#define ZCL_PUBLISH_COS_CANCELLED_ATTRIBUTE_ID (0x06C6) +#define ZCL_PUBLISH_COS_REJECTED_ATTRIBUTE_ID (0x06C7) +#define ZCL_CHANGE_PASSWORD_RECEIVED_ATTRIBUTE_ID (0x06C8) +#define ZCL_CHANGE_PASSWORD_ACTIONED_ATTRIBUTE_ID (0x06C9) +#define ZCL_CHANGE_PASSWORD_CANCELLED_ATTRIBUTE_ID (0x06CA) +#define ZCL_CHANGE_PASSWORD_REJECTED_ATTRIBUTE_ID (0x06CB) +#define ZCL_SET_EVENT_CONFIGURATION_RECEIVED_ATTRIBUTE_ID (0x06CC) +#define ZCL_SET_EVENT_CONFIGURATION_ACTIONED_ATTRIBUTE_ID (0x06CD) +#define ZCL_SET_EVENT_CONFIGURATION_CANCELLED_ATTRIBUTE_ID (0x06CE) +#define ZCL_SET_EVENT_CONFIGURATION_REJECTED_ATTRIBUTE_ID (0x06CF) +#define ZCL_UPDATE_SITE_ID_RECEIVED_ATTRIBUTE_ID (0x06D0) +#define ZCL_UPDATE_SITE_ID_ACTIONED_ATTRIBUTE_ID (0x06D1) +#define ZCL_UPDATE_SITE_ID_CANCELLED_ATTRIBUTE_ID (0x06D2) +#define ZCL_UPDATE_SITE_ID_REJECTED_ATTRIBUTE_ID (0x06D3) +#define ZCL_UPDATE_CIN_RECEIVED_ATTRIBUTE_ID (0x06D4) +#define ZCL_UPDATE_CIN_ACTIONED_ATTRIBUTE_ID (0x06D5) +#define ZCL_UPDATE_CIN_CANCELLED_ATTRIBUTE_ID (0x06D6) +#define ZCL_UPDATE_CIN_REJECTED_ATTRIBUTE_ID (0x06D7) +#define ZCL_TUNNELING_CLUSTER_NOT_FOUND_ATTRIBUTE_ID (0x0700) +#define ZCL_UNSUPPORTED_PROTOCOL_ATTRIBUTE_ID (0x0701) +#define ZCL_INCORRECT_PROTOCOL_ATTRIBUTE_ID (0x0702) +#define ZCL_REQUEST_TUNNEL_COMMAND_RECEIVED_ATTRIBUTE_ID (0x07C0) +#define ZCL_REQUEST_TUNNEL_COMMAND_REJECTED_ATTRIBUTE_ID (0x07C1) +#define ZCL_REQUEST_TUNNEL_COMMAND_GENERATED_ATTRIBUTE_ID (0x07C2) +#define ZCL_CLOSE_TUNNEL_COMMAND_RECEIVED_ATTRIBUTE_ID (0x07C3) +#define ZCL_CLOSE_TUNNEL_COMMAND_REJECTED_ATTRIBUTE_ID (0x07C4) +#define ZCL_CLOSE_TUNNEL_COMMAND_GENERATED_ATTRIBUTE_ID (0x07C5) +#define ZCL_TRANSFER_DATA_COMMAND_RECEIVED_ATTRIBUTE_ID (0x07C6) +#define ZCL_TRANSFER_DATA_COMMAND_REJECTED_ATTRIBUTE_ID (0x07C7) +#define ZCL_TRANSFER_DATA_COMMAND_GENERATED_ATTRIBUTE_ID (0x07C8) +#define ZCL_TRANSFER_DATA_ERROR_COMMAND_RECEIVED_ATTRIBUTE_ID (0x07C9) +#define ZCL_TRANSFER_DATA_ERROR_COMMAND_REJECTED_ATTRIBUTE_ID (0x07CA) +#define ZCL_TRANSFER_DATA_ERROR_COMMAND_GENERATED_ATTRIBUTE_ID (0x07CB) +#define ZCL_ACK_TRANSFER_DATA_COMMAND_RECEIVED_ATTRIBUTE_ID (0x07CC) +#define ZCL_ACK_TRANSFER_DATA_COMMAND_REJECTED_ATTRIBUTE_ID (0x07CD) +#define ZCL_ACK_TRANSFER_DATA_COMMAND_GENERATED_ATTRIBUTE_ID (0x07CE) +#define ZCL_READY_DATA_COMMAND_RECEIVED_ATTRIBUTE_ID (0x07CF) +#define ZCL_READY_DATA_COMMAND_REJECTED_ATTRIBUTE_ID (0x07D0) +#define ZCL_READY_DATA_COMMAND_GENERATED_ATTRIBUTE_ID (0x07D1) +#define ZCL_GET_SUPPORTED_TUNNEL_PROTOCOLS_COMMAND_RECEIVED_ATTRIBUTE_ID (0x07D2) +#define ZCL_GET_SUPPORTED_TUNNEL_PROTOCOLS_COMMAND_REJECTED_ATTRIBUTE_ID (0x07D3) +#define ZCL_GET_SUPPORTED_TUNNEL_PROTOCOLS_COMMAND_GENERATED_ATTRIBUTE_ID (0x07D4) +#define ZCL_FIRMWARE_READY_FOR_ACTIVATION_ATTRIBUTE_ID (0x0800) +#define ZCL_FIRMWARE_ACTIVATED_ATTRIBUTE_ID (0x0801) +#define ZCL_FIRMWARE_ACTIVATION_FAILURE_ATTRIBUTE_ID (0x0802) +#define ZCL_PATCH_READY_FOR_ACTIVATION_ATTRIBUTE_ID (0x0803) +#define ZCL_PATCH_ACTIVATED_ATTRIBUTE_ID (0x0804) +#define ZCL_PATCH_FAILURE_ATTRIBUTE_ID (0x0805) +#define ZCL_IMAGE_NOTIFY_COMMAND_RECEIVED_ATTRIBUTE_ID (0x08C0) +#define ZCL_IMAGE_NOTIFY_COMMAND_REJECTED_ATTRIBUTE_ID (0x08C1) +#define ZCL_QUERY_NEXT_IMAGE_REQUEST_GENERATED_ATTRIBUTE_ID (0x08C2) +#define ZCL_QUERY_NEXT_IMAGE_RESPONSE_RECEIVED_ATTRIBUTE_ID (0x08C3) +#define ZCL_QUERY_NEXT_IMAGE_RESPONSE_REJECTED_ATTRIBUTE_ID (0x08C4) +#define ZCL_IMAGE_BLOCK_REQUEST_GENERATED_ATTRIBUTE_ID (0x08C5) +#define ZCL_IMAGE_PAGE_REQUEST_GENERATED_ATTRIBUTE_ID (0x08C6) +#define ZCL_IMAGE_BLOCK_RESPONSE_RECEIVED_ATTRIBUTE_ID (0x08C7) +#define ZCL_IMAGE_BLOCK_RESPONSE_REJECTED_ATTRIBUTE_ID (0x08C8) +#define ZCL_UPGRADE_END_REQUEST_GENERATED_ATTRIBUTE_ID (0x08C9) +#define ZCL_UPGRADE_END_RESPONSE_RECEIVED_ATTRIBUTE_ID (0x08CA) +#define ZCL_UPGRADE_END_RESPONSE_REJECTED_ATTRIBUTE_ID (0x08CB) +#define ZCL_QUERY_SPECIFIC_FILE_REQUEST_GENERATED_ATTRIBUTE_ID (0x08CC) +#define ZCL_QUERY_SPECIFIC_FILE_RESPONSE_RECEIVED_ATTRIBUTE_ID (0x08CD) +#define ZCL_QUERY_SPECIFIC_FILE_RESPONSE_REJECTED_ATTRIBUTE_ID (0x08CE) +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_PROVIDER_ID_SERVER_ATTRIBUTE_ID 0x0100 // Ver.: always -#define ZCL_PROVIDER_NAME_ATTRIBUTE_ID 0x0101 // Ver.: always -#define ZCL_PROVIDER_CONTACT_DETAILS_ATTRIBUTE_ID 0x0102 // Ver.: always -#define ZCL_PROPOSED_PROVIDER_ID_ATTRIBUTE_ID 0x0110 // Ver.: always -#define ZCL_PROPOSED_PROVIDER_NAME_ATTRIBUTE_ID 0x0111 // Ver.: always -#define ZCL_PROPOSED_PROVIDER_CHANGE_DATE_TIME_ATTRIBUTE_ID 0x0112 // Ver.: always -#define ZCL_PROPOSED_PROVIDER_CHANGE_CONTROL_ATTRIBUTE_ID 0x0113 // Ver.: always -#define ZCL_RECEIVED_PROVIDER_ID_SERVER_ATTRIBUTE_ID 0x0120 // Ver.: always -#define ZCL_RECEIVED_PROVIDER_NAME_ATTRIBUTE_ID 0x0121 // Ver.: always -#define ZCL_RECEIVED_PROVIDER_CONTACT_DETAILS_ATTRIBUTE_ID 0x0122 // Ver.: always -#define ZCL_RECEIVED_PROPOSED_PROVIDER_ID_ATTRIBUTE_ID 0x0130 // Ver.: always -#define ZCL_RECEIVED_PROPOSED_PROVIDER_NAME_ATTRIBUTE_ID 0x0131 // Ver.: always -#define ZCL_RECEIVED_PROPOSED_PROVIDER_CHANGE_DATE_TIME_ATTRIBUTE_ID 0x0132 // Ver.: always -#define ZCL_RECEIVED_PROPOSED_PROVIDER_CHANGE_CONTROL_ATTRIBUTE_ID 0x0133 // Ver.: always -#define ZCL_CHANGE_OF_TENANCY_UPDATE_DATE_TIME_ATTRIBUTE_ID 0x0200 // Ver.: always -#define ZCL_PROPOSED_TENANCY_CHANGE_CONTROL_ATTRIBUTE_ID 0x0201 // Ver.: always -#define ZCL_WAN_STATUS_ATTRIBUTE_ID 0x0300 // Ver.: always -#define ZCL_LOW_MEDIUM_THRESHOLD_ATTRIBUTE_ID 0x0400 // Ver.: always -#define ZCL_MEDIUM_HIGH_THRESHOLD_ATTRIBUTE_ID 0x0401 // Ver.: always -#define ZCL_DEVICE_MANAGEMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_DEVICE_MANAGEMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Events -// Cluster specification level: se-1.2b-15-0131-02 +#define ZCL_PROVIDER_ID_SERVER_ATTRIBUTE_ID (0x0100) +#define ZCL_PROVIDER_NAME_ATTRIBUTE_ID (0x0101) +#define ZCL_PROVIDER_CONTACT_DETAILS_ATTRIBUTE_ID (0x0102) +#define ZCL_PROPOSED_PROVIDER_ID_ATTRIBUTE_ID (0x0110) +#define ZCL_PROPOSED_PROVIDER_NAME_ATTRIBUTE_ID (0x0111) +#define ZCL_PROPOSED_PROVIDER_CHANGE_DATE_TIME_ATTRIBUTE_ID (0x0112) +#define ZCL_PROPOSED_PROVIDER_CHANGE_CONTROL_ATTRIBUTE_ID (0x0113) +#define ZCL_RECEIVED_PROVIDER_ID_SERVER_ATTRIBUTE_ID (0x0120) +#define ZCL_RECEIVED_PROVIDER_NAME_ATTRIBUTE_ID (0x0121) +#define ZCL_RECEIVED_PROVIDER_CONTACT_DETAILS_ATTRIBUTE_ID (0x0122) +#define ZCL_RECEIVED_PROPOSED_PROVIDER_ID_ATTRIBUTE_ID (0x0130) +#define ZCL_RECEIVED_PROPOSED_PROVIDER_NAME_ATTRIBUTE_ID (0x0131) +#define ZCL_RECEIVED_PROPOSED_PROVIDER_CHANGE_DATE_TIME_ATTRIBUTE_ID (0x0132) +#define ZCL_RECEIVED_PROPOSED_PROVIDER_CHANGE_CONTROL_ATTRIBUTE_ID (0x0133) +#define ZCL_CHANGE_OF_TENANCY_UPDATE_DATE_TIME_ATTRIBUTE_ID (0x0200) +#define ZCL_PROPOSED_TENANCY_CHANGE_CONTROL_ATTRIBUTE_ID (0x0201) +#define ZCL_WAN_STATUS_ATTRIBUTE_ID (0x0300) +#define ZCL_LOW_MEDIUM_THRESHOLD_ATTRIBUTE_ID (0x0400) +#define ZCL_MEDIUM_HIGH_THRESHOLD_ATTRIBUTE_ID (0x0401) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Events // Client attributes -#define ZCL_EVENTS_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_EVENTS_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_EVENTS_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_EVENTS_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) -// Attribute types for cluster: MDU Pairing -// Cluster specification level: se-1.2b-15-0131-02 +// Attribute ids for cluster: MDU Pairing // Client attributes -#define ZCL_MDU_PAIRING_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_MDU_PAIRING_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_MDU_PAIRING_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_MDU_PAIRING_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) -// Attribute types for cluster: Sub-GHz -// Cluster specification level: se-1.2b-15-0131-02 +// Attribute ids for cluster: Sub-GHz // Client attributes -#define ZCL_SUB_GHZ_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_SUB_GHZ_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_SUB_GHZ_CLUSTER_CHANNEL_CHANGE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_SUB_GHZ_CLUSTER_PAGE_28_CHANNEL_MASK_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_SUB_GHZ_CLUSTER_PAGE_29_CHANNEL_MASK_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_SUB_GHZ_CLUSTER_PAGE_30_CHANNEL_MASK_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_SUB_GHZ_CLUSTER_PAGE_31_CHANNEL_MASK_ATTRIBUTE_ID 0x0004 // Ver.: always -#define ZCL_SUB_GHZ_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_SUB_GHZ_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_SUB_GHZ_CLUSTER_CHANNEL_CHANGE_ATTRIBUTE_ID (0x0000) +#define ZCL_SUB_GHZ_CLUSTER_PAGE_28_CHANNEL_MASK_ATTRIBUTE_ID (0x0001) +#define ZCL_SUB_GHZ_CLUSTER_PAGE_29_CHANNEL_MASK_ATTRIBUTE_ID (0x0002) +#define ZCL_SUB_GHZ_CLUSTER_PAGE_30_CHANNEL_MASK_ATTRIBUTE_ID (0x0003) +#define ZCL_SUB_GHZ_CLUSTER_PAGE_31_CHANNEL_MASK_ATTRIBUTE_ID (0x0004) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) -// Attribute types for cluster: Key Establishment -// Cluster specification level: zcl-7.0-07-5123-07 +// Attribute ids for cluster: Key Establishment // Client attributes -#define ZCL_KEY_ESTABLISHMENT_SUITE_CLIENT_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_KEY_ESTABLISHMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_KEY_ESTABLISHMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_KEY_ESTABLISHMENT_SUITE_CLIENT_ATTRIBUTE_ID (0x0000) +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_KEY_ESTABLISHMENT_SUITE_SERVER_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_KEY_ESTABLISHMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_KEY_ESTABLISHMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_KEY_ESTABLISHMENT_SUITE_SERVER_ATTRIBUTE_ID (0x0000) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) -// Attribute types for cluster: Information -// Cluster specification level: ta-1.0-07-5307-07 +// Attribute ids for cluster: Information // Client attributes -#define ZCL_INFORMATION_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_INFORMATION_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_NODE_DESCRIPTION_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_DELIVERY_ENABLE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_PUSH_INFORMATION_TIMER_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_ENABLE_SECURE_CONFIGURATION_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_NUMBER_OF_CONTENTS_ATTRIBUTE_ID 0x0010 // Ver.: always -#define ZCL_CONTENT_ROOT_ID_ATTRIBUTE_ID 0x0011 // Ver.: always -#define ZCL_INFORMATION_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_INFORMATION_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Data Sharing -// Cluster specification level: ta-1.0-07-5307-07 +#define ZCL_NODE_DESCRIPTION_ATTRIBUTE_ID (0x0000) +#define ZCL_DELIVERY_ENABLE_ATTRIBUTE_ID (0x0001) +#define ZCL_PUSH_INFORMATION_TIMER_ATTRIBUTE_ID (0x0002) +#define ZCL_ENABLE_SECURE_CONFIGURATION_ATTRIBUTE_ID (0x0003) +#define ZCL_NUMBER_OF_CONTENTS_ATTRIBUTE_ID (0x0010) +#define ZCL_CONTENT_ROOT_ID_ATTRIBUTE_ID (0x0011) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Data Sharing // Client attributes -#define ZCL_DATA_SHARING_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_DATA_SHARING_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_DEVICE_NAME_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_DEVICE_DESCRIPTION_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_DATA_SHARING_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_DATA_SHARING_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_DEVICE_NAME_ATTRIBUTE_ID (0x0000) +#define ZCL_DEVICE_DESCRIPTION_ATTRIBUTE_ID (0x0001) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) -// Attribute types for cluster: Gaming -// Cluster specification level: ta-1.0-07-5307-07 +// Attribute ids for cluster: Gaming // Client attributes -#define ZCL_GAMING_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_GAMING_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_PLAYER_NAME_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_NB_OF_GAMES_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_LIST_OF_GAMES_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_ANNOUNCEMENT_INTERVAL_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_GAME_ID_ATTRIBUTE_ID 0x0010 // Ver.: always -#define ZCL_NAME_OF_GAME_ATTRIBUTE_ID 0x0011 // Ver.: always -#define ZCL_GAME_MASTER_ATTRIBUTE_ID 0x0012 // Ver.: always -#define ZCL_GAMING_STATUS_ATTRIBUTE_ID 0x0013 // Ver.: always -#define ZCL_CURRENT_NB_OF_PLAYERS_ATTRIBUTE_ID 0x0014 // Ver.: always -#define ZCL_LIST_OF_CURRENT_PLAYERS_ATTRIBUTE_ID 0x0015 // Ver.: always -#define ZCL_MAX_NB_OF_PLAYERS_ATTRIBUTE_ID 0x0016 // Ver.: always -#define ZCL_MIN_NB_OF_PLAYERS_ATTRIBUTE_ID 0x0017 // Ver.: always -#define ZCL_CURRENT_GAME_LEVEL_ATTRIBUTE_ID 0x0018 // Ver.: always -#define ZCL_SCORE_OF_THIS_PLAYER_ATTRIBUTE_ID 0x0019 // Ver.: always -#define ZCL_TIMER1_ATTRIBUTE_ID 0x001A // Ver.: always -#define ZCL_TIMER2_ATTRIBUTE_ID 0x001B // Ver.: always -#define ZCL_TIMER3_ATTRIBUTE_ID 0x001C // Ver.: always -#define ZCL_COUNTER1_ATTRIBUTE_ID 0x001D // Ver.: always -#define ZCL_COUNTER2_ATTRIBUTE_ID 0x001E // Ver.: always -#define ZCL_DOWNLOADABLE_ATTRIBUTE_ID 0x001F // Ver.: always -#define ZCL_GAMING_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_GAMING_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Data Rate Control -// Cluster specification level: ta-1.0-07-5307-07 +#define ZCL_PLAYER_NAME_ATTRIBUTE_ID (0x0000) +#define ZCL_NB_OF_GAMES_ATTRIBUTE_ID (0x0001) +#define ZCL_LIST_OF_GAMES_ATTRIBUTE_ID (0x0002) +#define ZCL_ANNOUNCEMENT_INTERVAL_ATTRIBUTE_ID (0x0003) +#define ZCL_GAME_ID_ATTRIBUTE_ID (0x0010) +#define ZCL_NAME_OF_GAME_ATTRIBUTE_ID (0x0011) +#define ZCL_GAME_MASTER_ATTRIBUTE_ID (0x0012) +#define ZCL_GAMING_STATUS_ATTRIBUTE_ID (0x0013) +#define ZCL_CURRENT_NB_OF_PLAYERS_ATTRIBUTE_ID (0x0014) +#define ZCL_LIST_OF_CURRENT_PLAYERS_ATTRIBUTE_ID (0x0015) +#define ZCL_MAX_NB_OF_PLAYERS_ATTRIBUTE_ID (0x0016) +#define ZCL_MIN_NB_OF_PLAYERS_ATTRIBUTE_ID (0x0017) +#define ZCL_CURRENT_GAME_LEVEL_ATTRIBUTE_ID (0x0018) +#define ZCL_SCORE_OF_THIS_PLAYER_ATTRIBUTE_ID (0x0019) +#define ZCL_TIMER1_ATTRIBUTE_ID (0x001A) +#define ZCL_TIMER2_ATTRIBUTE_ID (0x001B) +#define ZCL_TIMER3_ATTRIBUTE_ID (0x001C) +#define ZCL_COUNTER1_ATTRIBUTE_ID (0x001D) +#define ZCL_COUNTER2_ATTRIBUTE_ID (0x001E) +#define ZCL_DOWNLOADABLE_ATTRIBUTE_ID (0x001F) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Data Rate Control // Client attributes -#define ZCL_DATA_RATE_CONTROL_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_DATA_RATE_CONTROL_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_AVERAGE_LATENCY_REQUIREMENT_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_MAX_LATENCY_REQUIREMENT_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_BANDWIDTH_REQUIREMENT_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_DATA_RATE_CONTROL_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_DATA_RATE_CONTROL_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_AVERAGE_LATENCY_REQUIREMENT_ATTRIBUTE_ID (0x0000) +#define ZCL_MAX_LATENCY_REQUIREMENT_ATTRIBUTE_ID (0x0001) +#define ZCL_BANDWIDTH_REQUIREMENT_ATTRIBUTE_ID (0x0002) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) -// Attribute types for cluster: Voice over ZigBee -// Cluster specification level: ta-1.0-07-5307-07 +// Attribute ids for cluster: Voice over ZigBee // Client attributes -#define ZCL_VOICE_OVER_ZIGBEE_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_VOICE_OVER_ZIGBEE_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_CODEC_TYPE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_SAMPLING_FREQUENCY_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_CODEC_RATE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_ESTABLISHMENT_TIMEOUT_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_CODEC_TYPE_SUB1_ATTRIBUTE_ID 0x0004 // Ver.: always -#define ZCL_CODEC_TYPE_SUB2_ATTRIBUTE_ID 0x0005 // Ver.: always -#define ZCL_CODEC_TYPE_SUB3_ATTRIBUTE_ID 0x0006 // Ver.: always -#define ZCL_COMPRESSION_TYPE_ATTRIBUTE_ID 0x0007 // Ver.: always -#define ZCL_COMPRESSION_RATE_ATTRIBUTE_ID 0x0008 // Ver.: always -#define ZCL_OPTION_FLAGS_ATTRIBUTE_ID 0x0009 // Ver.: always -#define ZCL_THRESHOLD_ATTRIBUTE_ID 0x000A // Ver.: always -#define ZCL_VOICE_OVER_ZIGBEE_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_VOICE_OVER_ZIGBEE_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Chatting -// Cluster specification level: ta-1.0-07-5307-07 +#define ZCL_CODEC_TYPE_ATTRIBUTE_ID (0x0000) +#define ZCL_SAMPLING_FREQUENCY_ATTRIBUTE_ID (0x0001) +#define ZCL_CODEC_RATE_ATTRIBUTE_ID (0x0002) +#define ZCL_ESTABLISHMENT_TIMEOUT_ATTRIBUTE_ID (0x0003) +#define ZCL_CODEC_TYPE_SUB1_ATTRIBUTE_ID (0x0004) +#define ZCL_CODEC_TYPE_SUB2_ATTRIBUTE_ID (0x0005) +#define ZCL_CODEC_TYPE_SUB3_ATTRIBUTE_ID (0x0006) +#define ZCL_COMPRESSION_TYPE_ATTRIBUTE_ID (0x0007) +#define ZCL_COMPRESSION_RATE_ATTRIBUTE_ID (0x0008) +#define ZCL_OPTION_FLAGS_ATTRIBUTE_ID (0x0009) +#define ZCL_THRESHOLD_ATTRIBUTE_ID (0x000A) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Chatting // Client attributes -#define ZCL_CHATTING_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_CHATTING_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_U_ID_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_NICKNAME_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_C_ID_ATTRIBUTE_ID 0x0010 // Ver.: always -#define ZCL_NAME_ATTRIBUTE_ID 0x0011 // Ver.: always -#define ZCL_ENABLE_ADD_CHAT_ATTRIBUTE_ID 0x0020 // Ver.: always -#define ZCL_CHATTING_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_CHATTING_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_U_ID_ATTRIBUTE_ID (0x0000) +#define ZCL_NICKNAME_ATTRIBUTE_ID (0x0001) +#define ZCL_C_ID_ATTRIBUTE_ID (0x0010) +#define ZCL_NAME_ATTRIBUTE_ID (0x0011) +#define ZCL_ENABLE_ADD_CHAT_ATTRIBUTE_ID (0x0020) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) -// Attribute types for cluster: Payment -// Cluster specification level: ta-1.0-07-5307-07 +// Attribute ids for cluster: Payment // Client attributes -#define ZCL_PAYMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_PAYMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_PAYMENT_USER_ID_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_USER_TYPE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_PAYMENT_SERVICE_ID_ATTRIBUTE_ID 0x0010 // Ver.: always -#define ZCL_PAYMENT_SERVICE_PROVIDER_ID_ATTRIBUTE_ID 0x0011 // Ver.: always -#define ZCL_TOTEM_ID_ATTRIBUTE_ID 0x0012 // Ver.: always -#define ZCL_CURRENCY_ATTRIBUTE_ID 0x0020 // Ver.: always -#define ZCL_PRICE_TRAILING_DIGIT_ATTRIBUTE_ID 0x0021 // Ver.: always -#define ZCL_PRICE_ATTRIBUTE_ID 0x0022 // Ver.: always -#define ZCL_GOOD_ID_ATTRIBUTE_ID 0x0030 // Ver.: always -#define ZCL_SERIAL_NUMBER_ATTRIBUTE_ID 0x0031 // Ver.: always -#define ZCL_PAYMENT_TIMESTAMP_ATTRIBUTE_ID 0x0032 // Ver.: always -#define ZCL_TRANS_ID_ATTRIBUTE_ID 0x0033 // Ver.: always -#define ZCL_TRANS_STATUS_ATTRIBUTE_ID 0x0034 // Ver.: always -#define ZCL_PAYMENT_STATUS_ATTRIBUTE_ID 0x0035 // Ver.: always -#define ZCL_PAYMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_PAYMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Billing -// Cluster specification level: ta-1.0-07-5307-07 +#define ZCL_PAYMENT_USER_ID_ATTRIBUTE_ID (0x0000) +#define ZCL_USER_TYPE_ATTRIBUTE_ID (0x0001) +#define ZCL_PAYMENT_SERVICE_ID_ATTRIBUTE_ID (0x0010) +#define ZCL_PAYMENT_SERVICE_PROVIDER_ID_ATTRIBUTE_ID (0x0011) +#define ZCL_TOTEM_ID_ATTRIBUTE_ID (0x0012) +#define ZCL_CURRENCY_ATTRIBUTE_ID (0x0020) +#define ZCL_PRICE_TRAILING_DIGIT_ATTRIBUTE_ID (0x0021) +#define ZCL_PRICE_ATTRIBUTE_ID (0x0022) +#define ZCL_GOOD_ID_ATTRIBUTE_ID (0x0030) +#define ZCL_SERIAL_NUMBER_ATTRIBUTE_ID (0x0031) +#define ZCL_PAYMENT_TIMESTAMP_ATTRIBUTE_ID (0x0032) +#define ZCL_TRANS_ID_ATTRIBUTE_ID (0x0033) +#define ZCL_TRANS_STATUS_ATTRIBUTE_ID (0x0034) +#define ZCL_PAYMENT_STATUS_ATTRIBUTE_ID (0x0035) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Billing // Client attributes -#define ZCL_BILLING_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_BILLING_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_USER_ID_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_SERVICE_ID_ATTRIBUTE_ID 0x0010 // Ver.: always -#define ZCL_SERVICE_PROVIDER_ID_ATTRIBUTE_ID 0x0011 // Ver.: always -#define ZCL_SESSION_INTERVAL_ATTRIBUTE_ID 0x0012 // Ver.: always -#define ZCL_TIMESTAMP_ATTRIBUTE_ID 0x0020 // Ver.: always -#define ZCL_DURATION_ATTRIBUTE_ID 0x0021 // Ver.: always -#define ZCL_BILLING_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_BILLING_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Appliance Identification -// Cluster specification level: UNKNOWN +#define ZCL_USER_ID_ATTRIBUTE_ID (0x0000) +#define ZCL_SERVICE_ID_ATTRIBUTE_ID (0x0010) +#define ZCL_SERVICE_PROVIDER_ID_ATTRIBUTE_ID (0x0011) +#define ZCL_SESSION_INTERVAL_ATTRIBUTE_ID (0x0012) +#define ZCL_TIMESTAMP_ATTRIBUTE_ID (0x0020) +#define ZCL_DURATION_ATTRIBUTE_ID (0x0021) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Appliance Identification // Client attributes -#define ZCL_APPLIANCE_IDENTIFICATION_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_APPLIANCE_IDENTIFICATION_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_BASIC_IDENTIFICATION_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_APPLIANCE_COMPANY_NAME_ATTRIBUTE_ID 0x0010 // Ver.: always -#define ZCL_COMPANY_ID_ATTRIBUTE_ID 0x0011 // Ver.: always -#define ZCL_BRAND_NAME_ATTRIBUTE_ID 0x0012 // Ver.: always -#define ZCL_BRAND_ID_ATTRIBUTE_ID 0x0013 // Ver.: always -#define ZCL_APPLIANCE_MODEL_ATTRIBUTE_ID 0x0014 // Ver.: always -#define ZCL_APPLIANCE_PART_NUMBER_ATTRIBUTE_ID 0x0015 // Ver.: always -#define ZCL_APPLIANCE_PRODUCT_REVISION_ATTRIBUTE_ID 0x0016 // Ver.: always -#define ZCL_APPLIANCE_SOFTWARE_REVISION_ATTRIBUTE_ID 0x0017 // Ver.: always -#define ZCL_PRODUCT_TYPE_NAME_ATTRIBUTE_ID 0x0018 // Ver.: always -#define ZCL_PRODUCT_TYPE_ID_ATTRIBUTE_ID 0x0019 // Ver.: always -#define ZCL_CECED_SPECIFICATION_VERSION_ATTRIBUTE_ID 0x001A // Ver.: always -#define ZCL_APPLIANCE_IDENTIFICATION_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_APPLIANCE_IDENTIFICATION_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Meter Identification -// Cluster specification level: UNKNOWN +#define ZCL_BASIC_IDENTIFICATION_ATTRIBUTE_ID (0x0000) +#define ZCL_APPLIANCE_COMPANY_NAME_ATTRIBUTE_ID (0x0010) +#define ZCL_COMPANY_ID_ATTRIBUTE_ID (0x0011) +#define ZCL_BRAND_NAME_ATTRIBUTE_ID (0x0012) +#define ZCL_BRAND_ID_ATTRIBUTE_ID (0x0013) +#define ZCL_APPLIANCE_MODEL_ATTRIBUTE_ID (0x0014) +#define ZCL_APPLIANCE_PART_NUMBER_ATTRIBUTE_ID (0x0015) +#define ZCL_APPLIANCE_PRODUCT_REVISION_ATTRIBUTE_ID (0x0016) +#define ZCL_APPLIANCE_SOFTWARE_REVISION_ATTRIBUTE_ID (0x0017) +#define ZCL_PRODUCT_TYPE_NAME_ATTRIBUTE_ID (0x0018) +#define ZCL_PRODUCT_TYPE_ID_ATTRIBUTE_ID (0x0019) +#define ZCL_CECED_SPECIFICATION_VERSION_ATTRIBUTE_ID (0x001A) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Meter Identification // Client attributes -#define ZCL_METER_IDENTIFICATION_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_METER_IDENTIFICATION_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_METER_COMPANY_NAME_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_METER_TYPE_ID_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_DATA_QUALITY_ID_ATTRIBUTE_ID 0x0004 // Ver.: always -#define ZCL_CUSTOMER_NAME_ATTRIBUTE_ID 0x0005 // Ver.: always -#define ZCL_METER_MODEL_ATTRIBUTE_ID 0x0006 // Ver.: always -#define ZCL_METER_PART_NUMBER_ATTRIBUTE_ID 0x0007 // Ver.: always -#define ZCL_METER_PRODUCT_REVISION_ATTRIBUTE_ID 0x0008 // Ver.: always -#define ZCL_METER_SOFTWARE_REVISION_ATTRIBUTE_ID 0x000A // Ver.: always -#define ZCL_UTILITY_NAME_ATTRIBUTE_ID 0x000B // Ver.: always -#define ZCL_POD_ATTRIBUTE_ID 0x000C // Ver.: always -#define ZCL_AVAILABLE_POWER_ATTRIBUTE_ID 0x000D // Ver.: always -#define ZCL_POWER_THRESHOLD_ATTRIBUTE_ID 0x000E // Ver.: always -#define ZCL_METER_IDENTIFICATION_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_METER_IDENTIFICATION_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Appliance Events and Alert -// Cluster specification level: UNKNOWN +#define ZCL_METER_COMPANY_NAME_ATTRIBUTE_ID (0x0000) +#define ZCL_METER_TYPE_ID_ATTRIBUTE_ID (0x0001) +#define ZCL_DATA_QUALITY_ID_ATTRIBUTE_ID (0x0004) +#define ZCL_CUSTOMER_NAME_ATTRIBUTE_ID (0x0005) +#define ZCL_METER_MODEL_ATTRIBUTE_ID (0x0006) +#define ZCL_METER_PART_NUMBER_ATTRIBUTE_ID (0x0007) +#define ZCL_METER_PRODUCT_REVISION_ATTRIBUTE_ID (0x0008) +#define ZCL_METER_SOFTWARE_REVISION_ATTRIBUTE_ID (0x000A) +#define ZCL_UTILITY_NAME_ATTRIBUTE_ID (0x000B) +#define ZCL_POD_ATTRIBUTE_ID (0x000C) +#define ZCL_AVAILABLE_POWER_ATTRIBUTE_ID (0x000D) +#define ZCL_POWER_THRESHOLD_ATTRIBUTE_ID (0x000E) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Appliance Events and Alert // Client attributes -#define ZCL_APPLIANCE_EVENTS_AND_ALERT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_APPLIANCE_EVENTS_AND_ALERT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_APPLIANCE_EVENTS_AND_ALERT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_APPLIANCE_EVENTS_AND_ALERT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) -// Attribute types for cluster: Appliance Statistics -// Cluster specification level: UNKNOWN +// Attribute ids for cluster: Appliance Statistics // Client attributes -#define ZCL_APPLIANCE_STATISTICS_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_APPLIANCE_STATISTICS_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_LOG_MAX_SIZE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_LOG_QUEUE_MAX_SIZE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_APPLIANCE_STATISTICS_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_APPLIANCE_STATISTICS_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_LOG_MAX_SIZE_ATTRIBUTE_ID (0x0000) +#define ZCL_LOG_QUEUE_MAX_SIZE_ATTRIBUTE_ID (0x0001) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) -// Attribute types for cluster: Electrical Measurement -// Cluster specification level: UNKNOWN +// Attribute ids for cluster: Electrical Measurement // Client attributes -#define ZCL_ELECTRICAL_MEASUREMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_ELECTRICAL_MEASUREMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_MEASUREMENT_TYPE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_DC_VOLTAGE_ATTRIBUTE_ID 0x0100 // Ver.: always -#define ZCL_DC_VOLTAGE_MIN_ATTRIBUTE_ID 0x0101 // Ver.: always -#define ZCL_DC_VOLTAGE_MAX_ATTRIBUTE_ID 0x0102 // Ver.: always -#define ZCL_DC_CURRENT_ATTRIBUTE_ID 0x0103 // Ver.: always -#define ZCL_DC_CURRENT_MIN_ATTRIBUTE_ID 0x0104 // Ver.: always -#define ZCL_DC_CURRENT_MAX_ATTRIBUTE_ID 0x0105 // Ver.: always -#define ZCL_DC_POWER_ATTRIBUTE_ID 0x0106 // Ver.: always -#define ZCL_DC_POWER_MIN_ATTRIBUTE_ID 0x0107 // Ver.: always -#define ZCL_DC_POWER_MAX_ATTRIBUTE_ID 0x0108 // Ver.: always -#define ZCL_DC_VOLTAGE_MULTIPLIER_ATTRIBUTE_ID 0x0200 // Ver.: always -#define ZCL_DC_VOLTAGE_DIVISOR_ATTRIBUTE_ID 0x0201 // Ver.: always -#define ZCL_DC_CURRENT_MULTIPLIER_ATTRIBUTE_ID 0x0202 // Ver.: always -#define ZCL_DC_CURRENT_DIVISOR_ATTRIBUTE_ID 0x0203 // Ver.: always -#define ZCL_DC_POWER_MULTIPLIER_ATTRIBUTE_ID 0x0204 // Ver.: always -#define ZCL_DC_POWER_DIVISOR_ATTRIBUTE_ID 0x0205 // Ver.: always -#define ZCL_AC_FREQUENCY_ATTRIBUTE_ID 0x0300 // Ver.: always -#define ZCL_AC_FREQUENCY_MIN_ATTRIBUTE_ID 0x0301 // Ver.: always -#define ZCL_AC_FREQUENCY_MAX_ATTRIBUTE_ID 0x0302 // Ver.: always -#define ZCL_NEUTRAL_CURRENT_ATTRIBUTE_ID 0x0303 // Ver.: always -#define ZCL_TOTAL_ACTIVE_POWER_ATTRIBUTE_ID 0x0304 // Ver.: always -#define ZCL_TOTAL_REACTIVE_POWER_ATTRIBUTE_ID 0x0305 // Ver.: always -#define ZCL_TOTAL_APPARENT_POWER_ATTRIBUTE_ID 0x0306 // Ver.: always -#define ZCL_MEASURED_1ST_HARMONIC_CURRENT_ATTRIBUTE_ID 0x0307 // Ver.: always -#define ZCL_MEASURED_3RD_HARMONIC_CURRENT_ATTRIBUTE_ID 0x0308 // Ver.: always -#define ZCL_MEASURED_5TH_HARMONIC_CURRENT_ATTRIBUTE_ID 0x0309 // Ver.: always -#define ZCL_MEASURED_7TH_HARMONIC_CURRENT_ATTRIBUTE_ID 0x030A // Ver.: always -#define ZCL_MEASURED_9TH_HARMONIC_CURRENT_ATTRIBUTE_ID 0x030B // Ver.: always -#define ZCL_MEASURED_11TH_HARMONIC_CURRENT_ATTRIBUTE_ID 0x030C // Ver.: always -#define ZCL_MEASURED_PHASE_1ST_HARMONIC_CURRENT_ATTRIBUTE_ID 0x030D // Ver.: always -#define ZCL_MEASURED_PHASE_3RD_HARMONIC_CURRENT_ATTRIBUTE_ID 0x030E // Ver.: always -#define ZCL_MEASURED_PHASE_5TH_HARMONIC_CURRENT_ATTRIBUTE_ID 0x030F // Ver.: always -#define ZCL_MEASURED_PHASE_7TH_HARMONIC_CURRENT_ATTRIBUTE_ID 0x0310 // Ver.: always -#define ZCL_MEASURED_PHASE_9TH_HARMONIC_CURRENT_ATTRIBUTE_ID 0x0311 // Ver.: always -#define ZCL_MEASURED_PHASE_11TH_HARMONIC_CURRENT_ATTRIBUTE_ID 0x0312 // Ver.: always -#define ZCL_AC_FREQUENCY_MULTIPLIER_ATTRIBUTE_ID 0x0400 // Ver.: always -#define ZCL_AC_FREQUENCY_DIVISOR_ATTRIBUTE_ID 0x0401 // Ver.: always -#define ZCL_POWER_MULTIPLIER_ATTRIBUTE_ID 0x0402 // Ver.: always -#define ZCL_POWER_DIVISOR_ATTRIBUTE_ID 0x0403 // Ver.: always -#define ZCL_HARMONIC_CURRENT_MULTIPLIER_ATTRIBUTE_ID 0x0404 // Ver.: always -#define ZCL_PHASE_HARMONIC_CURRENT_MULTIPLIER_ATTRIBUTE_ID 0x0405 // Ver.: always -#define ZCL_INSTANTANEOUS_VOLTAGE_ATTRIBUTE_ID 0x0500 // Ver.: always -#define ZCL_INSTANTANEOUS_LINE_CURRENT_ATTRIBUTE_ID 0x0501 // Ver.: always -#define ZCL_INSTANTANEOUS_ACTIVE_CURRENT_ATTRIBUTE_ID 0x0502 // Ver.: always -#define ZCL_INSTANTANEOUS_REACTIVE_CURRENT_ATTRIBUTE_ID 0x0503 // Ver.: always -#define ZCL_INSTANTANEOUS_POWER_ATTRIBUTE_ID 0x0504 // Ver.: always -#define ZCL_RMS_VOLTAGE_ATTRIBUTE_ID 0x0505 // Ver.: always -#define ZCL_RMS_VOLTAGE_MIN_ATTRIBUTE_ID 0x0506 // Ver.: always -#define ZCL_RMS_VOLTAGE_MAX_ATTRIBUTE_ID 0x0507 // Ver.: always -#define ZCL_RMS_CURRENT_ATTRIBUTE_ID 0x0508 // Ver.: always -#define ZCL_RMS_CURRENT_MIN_ATTRIBUTE_ID 0x0509 // Ver.: always -#define ZCL_RMS_CURRENT_MAX_ATTRIBUTE_ID 0x050A // Ver.: always -#define ZCL_ACTIVE_POWER_ATTRIBUTE_ID 0x050B // Ver.: always -#define ZCL_ACTIVE_POWER_MIN_ATTRIBUTE_ID 0x050C // Ver.: always -#define ZCL_ACTIVE_POWER_MAX_ATTRIBUTE_ID 0x050D // Ver.: always -#define ZCL_REACTIVE_POWER_ATTRIBUTE_ID 0x050E // Ver.: always -#define ZCL_APPARENT_POWER_ATTRIBUTE_ID 0x050F // Ver.: always -#define ZCL_AC_POWER_FACTOR_ATTRIBUTE_ID 0x0510 // Ver.: always -#define ZCL_AVERAGE_RMS_VOLTAGE_MEASUREMENT_PERIOD_ATTRIBUTE_ID 0x0511 // Ver.: always -#define ZCL_AVERAGE_RMS_UNDER_VOLTAGE_COUNTER_ATTRIBUTE_ID 0x0513 // Ver.: always -#define ZCL_RMS_EXTREME_OVER_VOLTAGE_PERIOD_ATTRIBUTE_ID 0x0514 // Ver.: always -#define ZCL_RMS_EXTREME_UNDER_VOLTAGE_PERIOD_ATTRIBUTE_ID 0x0515 // Ver.: always -#define ZCL_RMS_VOLTAGE_SAG_PERIOD_ATTRIBUTE_ID 0x0516 // Ver.: always -#define ZCL_RMS_VOLTAGE_SWELL_PERIOD_ATTRIBUTE_ID 0x0517 // Ver.: always -#define ZCL_AC_VOLTAGE_MULTIPLIER_ATTRIBUTE_ID 0x0600 // Ver.: always -#define ZCL_AC_VOLTAGE_DIVISOR_ATTRIBUTE_ID 0x0601 // Ver.: always -#define ZCL_AC_CURRENT_MULTIPLIER_ATTRIBUTE_ID 0x0602 // Ver.: always -#define ZCL_AC_CURRENT_DIVISOR_ATTRIBUTE_ID 0x0603 // Ver.: always -#define ZCL_AC_POWER_MULTIPLIER_ATTRIBUTE_ID 0x0604 // Ver.: always -#define ZCL_AC_POWER_DIVISOR_ATTRIBUTE_ID 0x0605 // Ver.: always -#define ZCL_DC_OVERLOAD_ALARMS_MASK_ATTRIBUTE_ID 0x0700 // Ver.: always -#define ZCL_DC_VOLTAGE_OVERLOAD_ATTRIBUTE_ID 0x0701 // Ver.: always -#define ZCL_DC_CURRENT_OVERLOAD_ATTRIBUTE_ID 0x0702 // Ver.: always -#define ZCL_AC_OVERLOAD_ALARMS_MASK_ATTRIBUTE_ID 0x0800 // Ver.: always -#define ZCL_AC_VOLTAGE_OVERLOAD_ATTRIBUTE_ID 0x0801 // Ver.: always -#define ZCL_AC_CURRENT_OVERLOAD_ATTRIBUTE_ID 0x0802 // Ver.: always -#define ZCL_AC_POWER_OVERLOAD_ATTRIBUTE_ID 0x0803 // Ver.: always -#define ZCL_AC_REACTIVE_POWER_OVERLOAD_ATTRIBUTE_ID 0x0804 // Ver.: always -#define ZCL_AVERAGE_RMS_OVER_VOLTAGE_ATTRIBUTE_ID 0x0805 // Ver.: always -#define ZCL_AVERAGE_RMS_UNDER_VOLTAGE_ATTRIBUTE_ID 0x0806 // Ver.: always -#define ZCL_RMS_EXTREME_OVER_VOLTAGE_ATTRIBUTE_ID 0x0807 // Ver.: always -#define ZCL_RMS_EXTREME_UNDER_VOLTAGE_ATTRIBUTE_ID 0x0808 // Ver.: always -#define ZCL_RMS_VOLTAGE_SAG_ATTRIBUTE_ID 0x0809 // Ver.: always -#define ZCL_RMS_VOLTAGE_SWELL_ATTRIBUTE_ID 0x080A // Ver.: always -#define ZCL_LINE_CURRENT_PHASE_B_ATTRIBUTE_ID 0x0901 // Ver.: always -#define ZCL_ACTIVE_CURRENT_PHASE_B_ATTRIBUTE_ID 0x0902 // Ver.: always -#define ZCL_REACTIVE_CURRENT_PHASE_B_ATTRIBUTE_ID 0x0903 // Ver.: always -#define ZCL_RMS_VOLTAGE_PHASE_B_ATTRIBUTE_ID 0x0905 // Ver.: always -#define ZCL_RMS_VOLTAGE_MIN_PHASE_B_ATTRIBUTE_ID 0x0906 // Ver.: always -#define ZCL_RMS_VOLTAGE_MAX_PHASE_B_ATTRIBUTE_ID 0x0907 // Ver.: always -#define ZCL_RMS_CURRENT_PHASE_B_ATTRIBUTE_ID 0x0908 // Ver.: always -#define ZCL_RMS_CURRENT_MIN_PHASE_B_ATTRIBUTE_ID 0x0909 // Ver.: always -#define ZCL_RMS_CURRENT_MAX_PHASE_B_ATTRIBUTE_ID 0x090A // Ver.: always -#define ZCL_ACTIVE_POWER_PHASE_B_ATTRIBUTE_ID 0x090B // Ver.: always -#define ZCL_ACTIVE_POWER_MIN_PHASE_B_ATTRIBUTE_ID 0x090C // Ver.: always -#define ZCL_ACTIVE_POWER_MAX_PHASE_B_ATTRIBUTE_ID 0x090D // Ver.: always -#define ZCL_REACTIVE_POWER_PHASE_B_ATTRIBUTE_ID 0x090E // Ver.: always -#define ZCL_APPARENT_POWER_PHASE_B_ATTRIBUTE_ID 0x090F // Ver.: always -#define ZCL_POWER_FACTOR_PHASE_B_ATTRIBUTE_ID 0x0910 // Ver.: always -#define ZCL_AVERAGE_RMS_VOLTAGE_MEASUREMENT_PERIOD_PHASE_B_ATTRIBUTE_ID 0x0911 // Ver.: always -#define ZCL_AVERAGE_RMS_OVER_VOLTAGE_COUNTER_PHASE_B_ATTRIBUTE_ID 0x0912 // Ver.: always -#define ZCL_AVERAGE_RMS_UNDER_VOLTAGE_COUNTER_PHASE_B_ATTRIBUTE_ID 0x0913 // Ver.: always -#define ZCL_RMS_EXTREME_OVER_VOLTAGE_PERIOD_PHASE_B_ATTRIBUTE_ID 0x0914 // Ver.: always -#define ZCL_RMS_EXTREME_UNDER_VOLTAGE_PERIOD_PHASE_B_ATTRIBUTE_ID 0x0915 // Ver.: always -#define ZCL_RMS_VOLTAGE_SAG_PERIOD_PHASE_B_ATTRIBUTE_ID 0x0916 // Ver.: always -#define ZCL_RMS_VOLTAGE_SWELL_PERIOD_PHASE_B_ATTRIBUTE_ID 0x0917 // Ver.: always -#define ZCL_LINE_CURRENT_PHASE_C_ATTRIBUTE_ID 0x0A01 // Ver.: always -#define ZCL_ACTIVE_CURRENT_PHASE_C_ATTRIBUTE_ID 0x0A02 // Ver.: always -#define ZCL_REACTIVE_CURRENT_PHASE_C_ATTRIBUTE_ID 0x0A03 // Ver.: always -#define ZCL_RMS_VOLTAGE_PHASE_C_ATTRIBUTE_ID 0x0A05 // Ver.: always -#define ZCL_RMS_VOLTAGE_MIN_PHASE_C_ATTRIBUTE_ID 0x0A06 // Ver.: always -#define ZCL_RMS_VOLTAGE_MAX_PHASE_C_ATTRIBUTE_ID 0x0A07 // Ver.: always -#define ZCL_RMS_CURRENT_PHASE_C_ATTRIBUTE_ID 0x0A08 // Ver.: always -#define ZCL_RMS_CURRENT_MIN_PHASE_C_ATTRIBUTE_ID 0x0A09 // Ver.: always -#define ZCL_RMS_CURRENT_MAX_PHASE_C_ATTRIBUTE_ID 0x0A0A // Ver.: always -#define ZCL_ACTIVE_POWER_PHASE_C_ATTRIBUTE_ID 0x0A0B // Ver.: always -#define ZCL_ACTIVE_POWER_MIN_PHASE_C_ATTRIBUTE_ID 0x0A0C // Ver.: always -#define ZCL_ACTIVE_POWER_MAX_PHASE_C_ATTRIBUTE_ID 0x0A0D // Ver.: always -#define ZCL_REACTIVE_POWER_PHASE_C_ATTRIBUTE_ID 0x0A0E // Ver.: always -#define ZCL_APPARENT_POWER_PHASE_C_ATTRIBUTE_ID 0x0A0F // Ver.: always -#define ZCL_POWER_FACTOR_PHASE_C_ATTRIBUTE_ID 0x0A10 // Ver.: always -#define ZCL_AVERAGE_RMS_VOLTAGE_MEASUREMENT_PERIOD_PHASE_C_ATTRIBUTE_ID 0x0A11 // Ver.: always -#define ZCL_AVERAGE_RMS_OVER_VOLTAGE_COUNTER_PHASE_C_ATTRIBUTE_ID 0x0A12 // Ver.: always -#define ZCL_AVERAGE_RMS_UNDER_VOLTAGE_COUNTER_PHASE_C_ATTRIBUTE_ID 0x0A13 // Ver.: always -#define ZCL_RMS_EXTREME_OVER_VOLTAGE_PERIOD_PHASE_C_ATTRIBUTE_ID 0x0A14 // Ver.: always -#define ZCL_RMS_EXTREME_UNDER_VOLTAGE_PERIOD_PHASE_C_ATTRIBUTE_ID 0x0A15 // Ver.: always -#define ZCL_RMS_VOLTAGE_SAG_PERIOD_PHASE_C_ATTRIBUTE_ID 0x0A16 // Ver.: always -#define ZCL_RMS_VOLTAGE_SWELL_PERIOD_PHASE_C_ATTRIBUTE_ID 0x0A17 // Ver.: always -#define ZCL_ELECTRICAL_MEASUREMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_ELECTRICAL_MEASUREMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Diagnostics -// Cluster specification level: UNKNOWN +#define ZCL_MEASUREMENT_TYPE_ATTRIBUTE_ID (0x0000) +#define ZCL_DC_VOLTAGE_ATTRIBUTE_ID (0x0100) +#define ZCL_DC_VOLTAGE_MIN_ATTRIBUTE_ID (0x0101) +#define ZCL_DC_VOLTAGE_MAX_ATTRIBUTE_ID (0x0102) +#define ZCL_DC_CURRENT_ATTRIBUTE_ID (0x0103) +#define ZCL_DC_CURRENT_MIN_ATTRIBUTE_ID (0x0104) +#define ZCL_DC_CURRENT_MAX_ATTRIBUTE_ID (0x0105) +#define ZCL_DC_POWER_ATTRIBUTE_ID (0x0106) +#define ZCL_DC_POWER_MIN_ATTRIBUTE_ID (0x0107) +#define ZCL_DC_POWER_MAX_ATTRIBUTE_ID (0x0108) +#define ZCL_DC_VOLTAGE_MULTIPLIER_ATTRIBUTE_ID (0x0200) +#define ZCL_DC_VOLTAGE_DIVISOR_ATTRIBUTE_ID (0x0201) +#define ZCL_DC_CURRENT_MULTIPLIER_ATTRIBUTE_ID (0x0202) +#define ZCL_DC_CURRENT_DIVISOR_ATTRIBUTE_ID (0x0203) +#define ZCL_DC_POWER_MULTIPLIER_ATTRIBUTE_ID (0x0204) +#define ZCL_DC_POWER_DIVISOR_ATTRIBUTE_ID (0x0205) +#define ZCL_AC_FREQUENCY_ATTRIBUTE_ID (0x0300) +#define ZCL_AC_FREQUENCY_MIN_ATTRIBUTE_ID (0x0301) +#define ZCL_AC_FREQUENCY_MAX_ATTRIBUTE_ID (0x0302) +#define ZCL_NEUTRAL_CURRENT_ATTRIBUTE_ID (0x0303) +#define ZCL_TOTAL_ACTIVE_POWER_ATTRIBUTE_ID (0x0304) +#define ZCL_TOTAL_REACTIVE_POWER_ATTRIBUTE_ID (0x0305) +#define ZCL_TOTAL_APPARENT_POWER_ATTRIBUTE_ID (0x0306) +#define ZCL_MEASURED_1_ST_HARMONIC_CURRENT_ATTRIBUTE_ID (0x0307) +#define ZCL_MEASURED_3_RD_HARMONIC_CURRENT_ATTRIBUTE_ID (0x0308) +#define ZCL_MEASURED_5_TH_HARMONIC_CURRENT_ATTRIBUTE_ID (0x0309) +#define ZCL_MEASURED_7_TH_HARMONIC_CURRENT_ATTRIBUTE_ID (0x030A) +#define ZCL_MEASURED_9_TH_HARMONIC_CURRENT_ATTRIBUTE_ID (0x030B) +#define ZCL_MEASURED_11_TH_HARMONIC_CURRENT_ATTRIBUTE_ID (0x030C) +#define ZCL_MEASURED_PHASE_1_ST_HARMONIC_CURRENT_ATTRIBUTE_ID (0x030D) +#define ZCL_MEASURED_PHASE_3_RD_HARMONIC_CURRENT_ATTRIBUTE_ID (0x030E) +#define ZCL_MEASURED_PHASE_5_TH_HARMONIC_CURRENT_ATTRIBUTE_ID (0x030F) +#define ZCL_MEASURED_PHASE_7_TH_HARMONIC_CURRENT_ATTRIBUTE_ID (0x0310) +#define ZCL_MEASURED_PHASE_9_TH_HARMONIC_CURRENT_ATTRIBUTE_ID (0x0311) +#define ZCL_MEASURED_PHASE_11_TH_HARMONIC_CURRENT_ATTRIBUTE_ID (0x0312) +#define ZCL_AC_FREQUENCY_MULTIPLIER_ATTRIBUTE_ID (0x0400) +#define ZCL_AC_FREQUENCY_DIVISOR_ATTRIBUTE_ID (0x0401) +#define ZCL_POWER_MULTIPLIER_ATTRIBUTE_ID (0x0402) +#define ZCL_POWER_DIVISOR_ATTRIBUTE_ID (0x0403) +#define ZCL_HARMONIC_CURRENT_MULTIPLIER_ATTRIBUTE_ID (0x0404) +#define ZCL_PHASE_HARMONIC_CURRENT_MULTIPLIER_ATTRIBUTE_ID (0x0405) +#define ZCL_INSTANTANEOUS_VOLTAGE_ATTRIBUTE_ID (0x0500) +#define ZCL_INSTANTANEOUS_LINE_CURRENT_ATTRIBUTE_ID (0x0501) +#define ZCL_INSTANTANEOUS_ACTIVE_CURRENT_ATTRIBUTE_ID (0x0502) +#define ZCL_INSTANTANEOUS_REACTIVE_CURRENT_ATTRIBUTE_ID (0x0503) +#define ZCL_INSTANTANEOUS_POWER_ATTRIBUTE_ID (0x0504) +#define ZCL_RMS_VOLTAGE_ATTRIBUTE_ID (0x0505) +#define ZCL_RMS_VOLTAGE_MIN_ATTRIBUTE_ID (0x0506) +#define ZCL_RMS_VOLTAGE_MAX_ATTRIBUTE_ID (0x0507) +#define ZCL_RMS_CURRENT_ATTRIBUTE_ID (0x0508) +#define ZCL_RMS_CURRENT_MIN_ATTRIBUTE_ID (0x0509) +#define ZCL_RMS_CURRENT_MAX_ATTRIBUTE_ID (0x050A) +#define ZCL_ACTIVE_POWER_ATTRIBUTE_ID (0x050B) +#define ZCL_ACTIVE_POWER_MIN_ATTRIBUTE_ID (0x050C) +#define ZCL_ACTIVE_POWER_MAX_ATTRIBUTE_ID (0x050D) +#define ZCL_REACTIVE_POWER_ATTRIBUTE_ID (0x050E) +#define ZCL_APPARENT_POWER_ATTRIBUTE_ID (0x050F) +#define ZCL_AC_POWER_FACTOR_ATTRIBUTE_ID (0x0510) +#define ZCL_AVERAGE_RMS_VOLTAGE_MEASUREMENT_PERIOD_ATTRIBUTE_ID (0x0511) +#define ZCL_AVERAGE_RMS_UNDER_VOLTAGE_COUNTER_ATTRIBUTE_ID (0x0513) +#define ZCL_RMS_EXTREME_OVER_VOLTAGE_PERIOD_ATTRIBUTE_ID (0x0514) +#define ZCL_RMS_EXTREME_UNDER_VOLTAGE_PERIOD_ATTRIBUTE_ID (0x0515) +#define ZCL_RMS_VOLTAGE_SAG_PERIOD_ATTRIBUTE_ID (0x0516) +#define ZCL_RMS_VOLTAGE_SWELL_PERIOD_ATTRIBUTE_ID (0x0517) +#define ZCL_AC_VOLTAGE_MULTIPLIER_ATTRIBUTE_ID (0x0600) +#define ZCL_AC_VOLTAGE_DIVISOR_ATTRIBUTE_ID (0x0601) +#define ZCL_AC_CURRENT_MULTIPLIER_ATTRIBUTE_ID (0x0602) +#define ZCL_AC_CURRENT_DIVISOR_ATTRIBUTE_ID (0x0603) +#define ZCL_AC_POWER_MULTIPLIER_ATTRIBUTE_ID (0x0604) +#define ZCL_AC_POWER_DIVISOR_ATTRIBUTE_ID (0x0605) +#define ZCL_DC_OVERLOAD_ALARMS_MASK_ATTRIBUTE_ID (0x0700) +#define ZCL_DC_VOLTAGE_OVERLOAD_ATTRIBUTE_ID (0x0701) +#define ZCL_DC_CURRENT_OVERLOAD_ATTRIBUTE_ID (0x0702) +#define ZCL_AC_OVERLOAD_ALARMS_MASK_ATTRIBUTE_ID (0x0800) +#define ZCL_AC_VOLTAGE_OVERLOAD_ATTRIBUTE_ID (0x0801) +#define ZCL_AC_CURRENT_OVERLOAD_ATTRIBUTE_ID (0x0802) +#define ZCL_AC_POWER_OVERLOAD_ATTRIBUTE_ID (0x0803) +#define ZCL_AC_REACTIVE_POWER_OVERLOAD_ATTRIBUTE_ID (0x0804) +#define ZCL_AVERAGE_RMS_OVER_VOLTAGE_ATTRIBUTE_ID (0x0805) +#define ZCL_AVERAGE_RMS_UNDER_VOLTAGE_ATTRIBUTE_ID (0x0806) +#define ZCL_RMS_EXTREME_OVER_VOLTAGE_ATTRIBUTE_ID (0x0807) +#define ZCL_RMS_EXTREME_UNDER_VOLTAGE_ATTRIBUTE_ID (0x0808) +#define ZCL_RMS_VOLTAGE_SAG_ATTRIBUTE_ID (0x0809) +#define ZCL_RMS_VOLTAGE_SWELL_ATTRIBUTE_ID (0x080A) +#define ZCL_LINE_CURRENT_PHASE_B_ATTRIBUTE_ID (0x0901) +#define ZCL_ACTIVE_CURRENT_PHASE_B_ATTRIBUTE_ID (0x0902) +#define ZCL_REACTIVE_CURRENT_PHASE_B_ATTRIBUTE_ID (0x0903) +#define ZCL_RMS_VOLTAGE_PHASE_B_ATTRIBUTE_ID (0x0905) +#define ZCL_RMS_VOLTAGE_MIN_PHASE_B_ATTRIBUTE_ID (0x0906) +#define ZCL_RMS_VOLTAGE_MAX_PHASE_B_ATTRIBUTE_ID (0x0907) +#define ZCL_RMS_CURRENT_PHASE_B_ATTRIBUTE_ID (0x0908) +#define ZCL_RMS_CURRENT_MIN_PHASE_B_ATTRIBUTE_ID (0x0909) +#define ZCL_RMS_CURRENT_MAX_PHASE_B_ATTRIBUTE_ID (0x090A) +#define ZCL_ACTIVE_POWER_PHASE_B_ATTRIBUTE_ID (0x090B) +#define ZCL_ACTIVE_POWER_MIN_PHASE_B_ATTRIBUTE_ID (0x090C) +#define ZCL_ACTIVE_POWER_MAX_PHASE_B_ATTRIBUTE_ID (0x090D) +#define ZCL_REACTIVE_POWER_PHASE_B_ATTRIBUTE_ID (0x090E) +#define ZCL_APPARENT_POWER_PHASE_B_ATTRIBUTE_ID (0x090F) +#define ZCL_POWER_FACTOR_PHASE_B_ATTRIBUTE_ID (0x0910) +#define ZCL_AVERAGE_RMS_VOLTAGE_MEASUREMENT_PERIOD_PHASE_B_ATTRIBUTE_ID (0x0911) +#define ZCL_AVERAGE_RMS_OVER_VOLTAGE_COUNTER_PHASE_B_ATTRIBUTE_ID (0x0912) +#define ZCL_AVERAGE_RMS_UNDER_VOLTAGE_COUNTER_PHASE_B_ATTRIBUTE_ID (0x0913) +#define ZCL_RMS_EXTREME_OVER_VOLTAGE_PERIOD_PHASE_B_ATTRIBUTE_ID (0x0914) +#define ZCL_RMS_EXTREME_UNDER_VOLTAGE_PERIOD_PHASE_B_ATTRIBUTE_ID (0x0915) +#define ZCL_RMS_VOLTAGE_SAG_PERIOD_PHASE_B_ATTRIBUTE_ID (0x0916) +#define ZCL_RMS_VOLTAGE_SWELL_PERIOD_PHASE_B_ATTRIBUTE_ID (0x0917) +#define ZCL_LINE_CURRENT_PHASE_C_ATTRIBUTE_ID (0x0A01) +#define ZCL_ACTIVE_CURRENT_PHASE_C_ATTRIBUTE_ID (0x0A02) +#define ZCL_REACTIVE_CURRENT_PHASE_C_ATTRIBUTE_ID (0x0A03) +#define ZCL_RMS_VOLTAGE_PHASE_C_ATTRIBUTE_ID (0x0A05) +#define ZCL_RMS_VOLTAGE_MIN_PHASE_C_ATTRIBUTE_ID (0x0A06) +#define ZCL_RMS_VOLTAGE_MAX_PHASE_C_ATTRIBUTE_ID (0x0A07) +#define ZCL_RMS_CURRENT_PHASE_C_ATTRIBUTE_ID (0x0A08) +#define ZCL_RMS_CURRENT_MIN_PHASE_C_ATTRIBUTE_ID (0x0A09) +#define ZCL_RMS_CURRENT_MAX_PHASE_C_ATTRIBUTE_ID (0x0A0A) +#define ZCL_ACTIVE_POWER_PHASE_C_ATTRIBUTE_ID (0x0A0B) +#define ZCL_ACTIVE_POWER_MIN_PHASE_C_ATTRIBUTE_ID (0x0A0C) +#define ZCL_ACTIVE_POWER_MAX_PHASE_C_ATTRIBUTE_ID (0x0A0D) +#define ZCL_REACTIVE_POWER_PHASE_C_ATTRIBUTE_ID (0x0A0E) +#define ZCL_APPARENT_POWER_PHASE_C_ATTRIBUTE_ID (0x0A0F) +#define ZCL_POWER_FACTOR_PHASE_C_ATTRIBUTE_ID (0x0A10) +#define ZCL_AVERAGE_RMS_VOLTAGE_MEASUREMENT_PERIOD_PHASE_C_ATTRIBUTE_ID (0x0A11) +#define ZCL_AVERAGE_RMS_OVER_VOLTAGE_COUNTER_PHASE_C_ATTRIBUTE_ID (0x0A12) +#define ZCL_AVERAGE_RMS_UNDER_VOLTAGE_COUNTER_PHASE_C_ATTRIBUTE_ID (0x0A13) +#define ZCL_RMS_EXTREME_OVER_VOLTAGE_PERIOD_PHASE_C_ATTRIBUTE_ID (0x0A14) +#define ZCL_RMS_EXTREME_UNDER_VOLTAGE_PERIOD_PHASE_C_ATTRIBUTE_ID (0x0A15) +#define ZCL_RMS_VOLTAGE_SAG_PERIOD_PHASE_C_ATTRIBUTE_ID (0x0A16) +#define ZCL_RMS_VOLTAGE_SWELL_PERIOD_PHASE_C_ATTRIBUTE_ID (0x0A17) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: Diagnostics // Client attributes -#define ZCL_DIAGNOSTICS_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_DIAGNOSTICS_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_NUMBER_OF_RESETS_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_PERSISTENT_MEMORY_WRITES_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_MAC_RX_BCAST_ATTRIBUTE_ID 0x0100 // Ver.: always -#define ZCL_MAC_TX_BCAST_ATTRIBUTE_ID 0x0101 // Ver.: always -#define ZCL_MAC_RX_UCAST_ATTRIBUTE_ID 0x0102 // Ver.: always -#define ZCL_MAC_TX_UCAST_ATTRIBUTE_ID 0x0103 // Ver.: always -#define ZCL_MAC_TX_UCAST_RETRY_ATTRIBUTE_ID 0x0104 // Ver.: always -#define ZCL_MAC_TX_UCAST_FAIL_ATTRIBUTE_ID 0x0105 // Ver.: always -#define ZCL_APS_RX_BCAST_ATTRIBUTE_ID 0x0106 // Ver.: always -#define ZCL_APS_TX_BCAST_ATTRIBUTE_ID 0x0107 // Ver.: always -#define ZCL_APS_RX_UCAST_ATTRIBUTE_ID 0x0108 // Ver.: always -#define ZCL_APS_UCAST_SUCCESS_ATTRIBUTE_ID 0x0109 // Ver.: always -#define ZCL_APS_TX_UCAST_RETRY_ATTRIBUTE_ID 0x010A // Ver.: always -#define ZCL_APS_TX_UCAST_FAIL_ATTRIBUTE_ID 0x010B // Ver.: always -#define ZCL_ROUTE_DISC_INITIATED_ATTRIBUTE_ID 0x010C // Ver.: always -#define ZCL_NEIGHBOR_ADDED_ATTRIBUTE_ID 0x010D // Ver.: always -#define ZCL_NEIGHBOR_REMOVED_ATTRIBUTE_ID 0x010E // Ver.: always -#define ZCL_NEIGHBOR_STALE_ATTRIBUTE_ID 0x010F // Ver.: always -#define ZCL_JOIN_INDICATION_ATTRIBUTE_ID 0x0110 // Ver.: always -#define ZCL_CHILD_MOVED_ATTRIBUTE_ID 0x0111 // Ver.: always -#define ZCL_NWK_FC_FAILURE_ATTRIBUTE_ID 0x0112 // Ver.: always -#define ZCL_APS_FC_FAILURE_ATTRIBUTE_ID 0x0113 // Ver.: always -#define ZCL_APS_UNAUTHORIZED_KEY_ATTRIBUTE_ID 0x0114 // Ver.: always -#define ZCL_NWK_DECRYPT_FAILURE_ATTRIBUTE_ID 0x0115 // Ver.: always -#define ZCL_APS_DECRYPT_FAILURE_ATTRIBUTE_ID 0x0116 // Ver.: always -#define ZCL_PACKET_BUFFER_ALLOC_FAILURES_ATTRIBUTE_ID 0x0117 // Ver.: always -#define ZCL_RELAYED_UNICAST_ATTRIBUTE_ID 0x0118 // Ver.: always -#define ZCL_PHY_TO_MAC_QUEUE_LIMIT_REACHED_ATTRIBUTE_ID 0x0119 // Ver.: always -#define ZCL_PACKET_VALIDATE_DROP_COUNT_ATTRIBUTE_ID 0x011A // Ver.: always -#define ZCL_AVERAGE_MAC_RETRY_PER_APS_MSG_SENT_ATTRIBUTE_ID 0x011B // Ver.: always -#define ZCL_LAST_MESSAGE_LQI_ATTRIBUTE_ID 0x011C // Ver.: always -#define ZCL_LAST_MESSAGE_RSSI_ATTRIBUTE_ID 0x011D // Ver.: always -#define ZCL_DIAGNOSTICS_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_DIAGNOSTICS_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: ZLL Commissioning -// Cluster specification level: zll-1.0-11-0037-10 +#define ZCL_NUMBER_OF_RESETS_ATTRIBUTE_ID (0x0000) +#define ZCL_PERSISTENT_MEMORY_WRITES_ATTRIBUTE_ID (0x0001) +#define ZCL_MAC_RX_BCAST_ATTRIBUTE_ID (0x0100) +#define ZCL_MAC_TX_BCAST_ATTRIBUTE_ID (0x0101) +#define ZCL_MAC_RX_UCAST_ATTRIBUTE_ID (0x0102) +#define ZCL_MAC_TX_UCAST_ATTRIBUTE_ID (0x0103) +#define ZCL_MAC_TX_UCAST_RETRY_ATTRIBUTE_ID (0x0104) +#define ZCL_MAC_TX_UCAST_FAIL_ATTRIBUTE_ID (0x0105) +#define ZCL_APS_RX_BCAST_ATTRIBUTE_ID (0x0106) +#define ZCL_APS_TX_BCAST_ATTRIBUTE_ID (0x0107) +#define ZCL_APS_RX_UCAST_ATTRIBUTE_ID (0x0108) +#define ZCL_APS_UCAST_SUCCESS_ATTRIBUTE_ID (0x0109) +#define ZCL_APS_TX_UCAST_RETRY_ATTRIBUTE_ID (0x010A) +#define ZCL_APS_TX_UCAST_FAIL_ATTRIBUTE_ID (0x010B) +#define ZCL_ROUTE_DISC_INITIATED_ATTRIBUTE_ID (0x010C) +#define ZCL_NEIGHBOR_ADDED_ATTRIBUTE_ID (0x010D) +#define ZCL_NEIGHBOR_REMOVED_ATTRIBUTE_ID (0x010E) +#define ZCL_NEIGHBOR_STALE_ATTRIBUTE_ID (0x010F) +#define ZCL_JOIN_INDICATION_ATTRIBUTE_ID (0x0110) +#define ZCL_CHILD_MOVED_ATTRIBUTE_ID (0x0111) +#define ZCL_NWK_FC_FAILURE_ATTRIBUTE_ID (0x0112) +#define ZCL_APS_FC_FAILURE_ATTRIBUTE_ID (0x0113) +#define ZCL_APS_UNAUTHORIZED_KEY_ATTRIBUTE_ID (0x0114) +#define ZCL_NWK_DECRYPT_FAILURE_ATTRIBUTE_ID (0x0115) +#define ZCL_APS_DECRYPT_FAILURE_ATTRIBUTE_ID (0x0116) +#define ZCL_PACKET_BUFFER_ALLOC_FAILURES_ATTRIBUTE_ID (0x0117) +#define ZCL_RELAYED_UNICAST_ATTRIBUTE_ID (0x0118) +#define ZCL_PHY_TO_MAC_QUEUE_LIMIT_REACHED_ATTRIBUTE_ID (0x0119) +#define ZCL_PACKET_VALIDATE_DROP_COUNT_ATTRIBUTE_ID (0x011A) +#define ZCL_AVERAGE_MAC_RETRY_PER_APS_MSG_SENT_ATTRIBUTE_ID (0x011B) +#define ZCL_LAST_MESSAGE_LQI_ATTRIBUTE_ID (0x011C) +#define ZCL_LAST_MESSAGE_RSSI_ATTRIBUTE_ID (0x011D) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) + +// Attribute ids for cluster: ZLL Commissioning // Client attributes -#define ZCL_ZLL_COMMISSIONING_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_ZLL_COMMISSIONING_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_ZLL_COMMISSIONING_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_ZLL_COMMISSIONING_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) -// Attribute types for cluster: Sample Mfg Specific Cluster -// Cluster specification level: UNKNOWN +// Attribute ids for cluster: Sample Mfg Specific Cluster // Client attributes -#define ZCL_SAMPLE_MFG_SPECIFIC_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_SAMPLE_MFG_SPECIFIC_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_ATTRIBUTE_ONE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_ATTRIBUTE_TWO_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_SAMPLE_MFG_SPECIFIC_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_SAMPLE_MFG_SPECIFIC_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_ATTRIBUTE_ONE_ATTRIBUTE_ID (0x0000) +#define ZCL_ATTRIBUTE_TWO_ATTRIBUTE_ID (0x0001) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) -// Attribute types for cluster: Sample Mfg Specific Cluster 2 -// Cluster specification level: UNKNOWN +// Attribute ids for cluster: Sample Mfg Specific Cluster 2 // Client attributes -#define ZCL_SAMPLE_MFG_SPECIFIC_CLUSTER_2_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_SAMPLE_MFG_SPECIFIC_CLUSTER_2_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_ATTRIBUTE_THREE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_ATTRIBUTE_FOUR_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_SAMPLE_MFG_SPECIFIC_CLUSTER_2_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_SAMPLE_MFG_SPECIFIC_CLUSTER_2_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_ATTRIBUTE_THREE_ATTRIBUTE_ID (0x0000) +#define ZCL_ATTRIBUTE_FOUR_ATTRIBUTE_ID (0x0001) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) -// Attribute types for cluster: Configuration Cluster -// Cluster specification level: UNKNOWN +// Attribute ids for cluster: Configuration Cluster // Client attributes -#define ZCL_OTA_CONFIGURATION_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_OTA_CONFIGURATION_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_TOKENS_LOCKED_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_OTA_CONFIGURATION_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_OTA_CONFIGURATION_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_TOKENS_LOCKED_ATTRIBUTE_ID (0x0000) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) -// Attribute types for cluster: MFGLIB Cluster -// Cluster specification level: UNKNOWN +// Attribute ids for cluster: MFGLIB Cluster // Client attributes -#define ZCL_MFGLIB_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_MFGLIB_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_PACKETS_RECEIVED_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_SAVED_RSSI_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_SAVED_LQI_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_MFGLIB_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_MFGLIB_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_PACKETS_RECEIVED_ATTRIBUTE_ID (0x0000) +#define ZCL_SAVED_RSSI_ATTRIBUTE_ID (0x0001) +#define ZCL_SAVED_LQI_ATTRIBUTE_ID (0x0002) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) -// Attribute types for cluster: SL Works With All Hubs -// Cluster specification level: UNKNOWN +// Attribute ids for cluster: SL Works With All Hubs // Client attributes -#define ZCL_SL_WWAH_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_SL_WWAH_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 +#define ZCL_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID (0xFFFE) // Server attributes -#define ZCL_SL_DISABLE_OTA_DOWNGRADES_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_SL_MGMT_LEAVE_WITHOUT_REJOIN_ENABLED_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_SL_NWK_RETRY_COUNT_ATTRIBUTE_ID 0x0004 // Ver.: always -#define ZCL_SL_MAC_RETRY_COUNT_ATTRIBUTE_ID 0x0005 // Ver.: always -#define ZCL_SL_ROUTER_CHECKIN_ENABLED_ATTRIBUTE_ID 0x0006 // Ver.: always -#define ZCL_SL_TOUCHLINK_INTERPAN_ENABLED_ATTRIBUTE_ID 0x0007 // Ver.: always -#define ZCL_SL_WWAH_PARENT_CLASSIFICATION_ENABLED_ATTRIBUTE_ID 0x0008 // Ver.: always -#define ZCL_SL_WWAH_APP_EVENT_RETRY_ENABLED_ATTRIBUTE_ID 0x0009 // Ver.: always -#define ZCL_SL_WWAH_APP_EVENT_RETRY_QUEUE_SIZE_ATTRIBUTE_ID 0x000A // Ver.: always -#define ZCL_SL_WWAH_REJOIN_ENABLED_ATTRIBUTE_ID 0x000B // Ver.: always -#define ZCL_SL_MAC_POLL_FAILURE_WAIT_TIME_ATTRIBUTE_ID 0x000C // Ver.: always -#define ZCL_SL_CONFIGURATION_MODE_ENABLED_ATTRIBUTE_ID 0x000D // Ver.: always -#define ZCL_SL_CURRENT_DEBUG_REPORT_ID_ATTRIBUTE_ID 0x000E // Ver.: always -#define ZCL_SL_TC_SECURITY_ON_NTWK_KEY_ROTATION_ENABLED_ATTRIBUTE_ID 0x000F // Ver.: always -#define ZCL_SL_WWAH_BAD_PARENT_RECOVERY_ENABLED_ATTRIBUTE_ID 0x0010 // Ver.: always -#define ZCL_SL_PENDING_NETWORK_UPDATE_CHANNEL_ATTRIBUTE_ID 0x0011 // Ver.: always -#define ZCL_SL_PENDING_NETWORK_UPDATE_PANID_ATTRIBUTE_ID 0x0012 // Ver.: always -#define ZCL_SL_OTA_MAX_OFFLINE_DURATION_ATTRIBUTE_ID 0x0013 // Ver.: always -#define ZCL_SL_WWAH_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_SL_WWAH_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -#endif // SILABS_EMBER_AF_ATTRIBUTE_ID +#define ZCL_SL_DISABLE_OTA_DOWNGRADES_ATTRIBUTE_ID (0x0002) +#define ZCL_SL_MGMT_LEAVE_WITHOUT_REJOIN_ENABLED_ATTRIBUTE_ID (0x0003) +#define ZCL_SL_NWK_RETRY_COUNT_ATTRIBUTE_ID (0x0004) +#define ZCL_SL_MAC_RETRY_COUNT_ATTRIBUTE_ID (0x0005) +#define ZCL_SL_ROUTER_CHECKIN_ENABLED_ATTRIBUTE_ID (0x0006) +#define ZCL_SL_TOUCHLINK_INTERPAN_ENABLED_ATTRIBUTE_ID (0x0007) +#define ZCL_SL_WWAH_PARENT_CLASSIFICATION_ENABLED_ATTRIBUTE_ID (0x0008) +#define ZCL_SL_WWAH_APP_EVENT_RETRY_ENABLED_ATTRIBUTE_ID (0x0009) +#define ZCL_SL_WWAH_APP_EVENT_RETRY_QUEUE_SIZE_ATTRIBUTE_ID (0x000A) +#define ZCL_SL_WWAH_REJOIN_ENABLED_ATTRIBUTE_ID (0x000B) +#define ZCL_SL_MAC_POLL_FAILURE_WAIT_TIME_ATTRIBUTE_ID (0x000C) +#define ZCL_SL_CONFIGURATION_MODE_ENABLED_ATTRIBUTE_ID (0x000D) +#define ZCL_SL_CURRENT_DEBUG_REPORT_ID_ATTRIBUTE_ID (0x000E) +#define ZCL_SL_TC_SECURITY_ON_NTWK_KEY_ROTATION_ENABLED_ATTRIBUTE_ID (0x000F) +#define ZCL_SL_WWAH_BAD_PARENT_RECOVERY_ENABLED_ATTRIBUTE_ID (0x0010) +#define ZCL_SL_PENDING_NETWORK_UPDATE_CHANNEL_ATTRIBUTE_ID (0x0011) +#define ZCL_SL_PENDING_NETWORK_UPDATE_PANID_ATTRIBUTE_ID (0x0012) +#define ZCL_SL_OTA_MAX_OFFLINE_DURATION_ATTRIBUTE_ID (0x0013) +#define ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID (0xFFFD) +#define ZCL_REPORTING_STATUS_SERVER_ATTRIBUTE_ID (0xFFFE) diff --git a/examples/temperature-measurement-app/esp32/main/gen/attribute-size.h b/examples/temperature-measurement-app/esp32/main/gen/attribute-size.h index 7620e27a5cc56d..8d8659ee7ece2e 100644 --- a/examples/temperature-measurement-app/esp32/main/gen/attribute-size.h +++ b/examples/temperature-measurement-app/esp32/main/gen/attribute-size.h @@ -1,4 +1,5 @@ -/** + +/* * * Copyright (c) 2020 Project CHIP Authors * @@ -14,17 +15,20 @@ * 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 SILABS_ATTRIBUTE_SIZE -#define SILABS_ATTRIBUTE_SIZE +// Prevent multiple inclusion +#pragma once -// Used ZCL attribute type sizes -ZCL_BITMAP16_ATTRIBUTE_TYPE, 2, ZCL_BITMAP24_ATTRIBUTE_TYPE, 3, ZCL_BITMAP32_ATTRIBUTE_TYPE, 4, ZCL_BITMAP48_ATTRIBUTE_TYPE, 6, - ZCL_BITMAP64_ATTRIBUTE_TYPE, 8, ZCL_BITMAP8_ATTRIBUTE_TYPE, 1, ZCL_BOOLEAN_ATTRIBUTE_TYPE, 1, ZCL_DATA8_ATTRIBUTE_TYPE, 1, - ZCL_ENUM16_ATTRIBUTE_TYPE, 2, ZCL_ENUM8_ATTRIBUTE_TYPE, 1, ZCL_FLOAT_SINGLE_ATTRIBUTE_TYPE, 4, ZCL_IEEE_ADDRESS_ATTRIBUTE_TYPE, - 8, ZCL_INT16S_ATTRIBUTE_TYPE, 2, ZCL_INT16U_ATTRIBUTE_TYPE, 2, ZCL_INT24S_ATTRIBUTE_TYPE, 3, ZCL_INT24U_ATTRIBUTE_TYPE, 3, - ZCL_INT32S_ATTRIBUTE_TYPE, 4, ZCL_INT32U_ATTRIBUTE_TYPE, 4, ZCL_INT48U_ATTRIBUTE_TYPE, 6, ZCL_INT56U_ATTRIBUTE_TYPE, 7, - ZCL_INT8S_ATTRIBUTE_TYPE, 1, ZCL_INT8U_ATTRIBUTE_TYPE, 1, ZCL_SECURITY_KEY_ATTRIBUTE_TYPE, 16, ZCL_UTC_TIME_ATTRIBUTE_TYPE, 4, -#endif // SILABS_ATTRIBUTE_SIZE +// ZCL attribute sizes +ZCL_DATA8_ATTRIBUTE_TYPE, 1, ZCL_DATA16_ATTRIBUTE_TYPE, 2, ZCL_DATA24_ATTRIBUTE_TYPE, 3, ZCL_DATA32_ATTRIBUTE_TYPE, 4, + ZCL_DATA40_ATTRIBUTE_TYPE, 5, ZCL_DATA48_ATTRIBUTE_TYPE, 6, ZCL_DATA56_ATTRIBUTE_TYPE, 7, ZCL_DATA64_ATTRIBUTE_TYPE, 8, + ZCL_BOOLEAN_ATTRIBUTE_TYPE, 1, ZCL_BITMAP8_ATTRIBUTE_TYPE, 1, ZCL_BITMAP16_ATTRIBUTE_TYPE, 2, ZCL_BITMAP24_ATTRIBUTE_TYPE, 3, + ZCL_BITMAP32_ATTRIBUTE_TYPE, 4, ZCL_BITMAP40_ATTRIBUTE_TYPE, 5, ZCL_BITMAP48_ATTRIBUTE_TYPE, 6, ZCL_BITMAP56_ATTRIBUTE_TYPE, 7, + ZCL_BITMAP64_ATTRIBUTE_TYPE, 8, ZCL_INT8U_ATTRIBUTE_TYPE, 1, ZCL_INT16U_ATTRIBUTE_TYPE, 2, ZCL_INT24U_ATTRIBUTE_TYPE, 3, + ZCL_INT32U_ATTRIBUTE_TYPE, 4, ZCL_INT40U_ATTRIBUTE_TYPE, 5, ZCL_INT48U_ATTRIBUTE_TYPE, 6, ZCL_INT56U_ATTRIBUTE_TYPE, 7, + ZCL_INT64U_ATTRIBUTE_TYPE, 8, ZCL_INT8S_ATTRIBUTE_TYPE, 1, ZCL_INT16S_ATTRIBUTE_TYPE, 2, ZCL_INT24S_ATTRIBUTE_TYPE, 3, + ZCL_INT32S_ATTRIBUTE_TYPE, 4, ZCL_INT40S_ATTRIBUTE_TYPE, 5, ZCL_INT48S_ATTRIBUTE_TYPE, 6, ZCL_INT56S_ATTRIBUTE_TYPE, 7, + ZCL_INT64S_ATTRIBUTE_TYPE, 8, ZCL_ENUM8_ATTRIBUTE_TYPE, 1, ZCL_ENUM16_ATTRIBUTE_TYPE, 2, ZCL_FLOAT_SEMI_ATTRIBUTE_TYPE, 2, + ZCL_FLOAT_SINGLE_ATTRIBUTE_TYPE, 4, ZCL_FLOAT_DOUBLE_ATTRIBUTE_TYPE, 8, ZCL_TIME_OF_DAY_ATTRIBUTE_TYPE, 4, + ZCL_DATE_ATTRIBUTE_TYPE, 4, ZCL_UTC_TIME_ATTRIBUTE_TYPE, 4, ZCL_CLUSTER_ID_ATTRIBUTE_TYPE, 2, ZCL_ATTRIBUTE_ID_ATTRIBUTE_TYPE, + 2, ZCL_BACNET_OID_ATTRIBUTE_TYPE, 4, ZCL_IEEE_ADDRESS_ATTRIBUTE_TYPE, 8, ZCL_SECURITY_KEY_ATTRIBUTE_TYPE, 16, diff --git a/examples/temperature-measurement-app/esp32/main/gen/attribute-type.h b/examples/temperature-measurement-app/esp32/main/gen/attribute-type.h index 6f60f6af8ad2c3..bc5d1bae34b365 100644 --- a/examples/temperature-measurement-app/esp32/main/gen/attribute-type.h +++ b/examples/temperature-measurement-app/esp32/main/gen/attribute-type.h @@ -1,4 +1,5 @@ -/** + +/* * * Copyright (c) 2020 Project CHIP Authors * @@ -14,11 +15,9 @@ * 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 SILABS_EMBER_AF_ATTRIBUTE_TYPES -#define SILABS_EMBER_AF_ATTRIBUTE_TYPES +// Prevent multiple inclusion +#pragma once // ZCL attribute types enum @@ -78,7 +77,5 @@ enum ZCL_BACNET_OID_ATTRIBUTE_TYPE = 0xEA, // BACnet OID ZCL_IEEE_ADDRESS_ATTRIBUTE_TYPE = 0xF0, // IEEE address ZCL_SECURITY_KEY_ATTRIBUTE_TYPE = 0xF1, // 128-bit security key - ZCL_UNKNOWN_ATTRIBUTE_TYPE = 0xFF // Unknown - + ZCL_UNKNOWN_ATTRIBUTE_TYPE = 0xFF, // Unknown }; -#endif // SILABS_EMBER_AF_ATTRIBUTE_TYPES diff --git a/examples/temperature-measurement-app/esp32/main/gen/call-command-handler.c b/examples/temperature-measurement-app/esp32/main/gen/call-command-handler.cpp similarity index 74% rename from examples/temperature-measurement-app/esp32/main/gen/call-command-handler.c rename to examples/temperature-measurement-app/esp32/main/gen/call-command-handler.cpp index fef98ddbb8cf0a..38afdd93327e0f 100644 --- a/examples/temperature-measurement-app/esp32/main/gen/call-command-handler.c +++ b/examples/temperature-measurement-app/esp32/main/gen/call-command-handler.cpp @@ -1,4 +1,5 @@ -/** + +/* * * Copyright (c) 2020 Project CHIP Authors * @@ -14,23 +15,6 @@ * 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. - -// This is a set of generated functions that parse the -// the incomming message, and call appropriate command handler. - -#ifdef EZSP_HOST -// Includes needed for ember related functions for the EZSP host -#include "app/util/ezsp/ezsp-protocol.h" -#include "app/util/ezsp/ezsp-utils.h" -#include "app/util/ezsp/ezsp.h" -#include "app/util/ezsp/serial-interface.h" -#include "stack/include/ember-types.h" -#include "stack/include/error.h" -#else -// Includes needed for ember related functions for the EM250 -// #include "stack/include/ember.h" -#endif // EZSP_HOST #include @@ -40,6 +24,11 @@ #include "command-id.h" #include "util.h" +using namespace chip; + +EmberAfStatus emberAfBasicClusterServerCommandParse(EmberAfClusterCommand * cmd); +EmberAfStatus emberAfTemperatureMeasurementClusterServerCommandParse(EmberAfClusterCommand * cmd); + static EmberAfStatus status(bool wasHandled, bool clusterExists, bool mfgSpecific) { if (wasHandled) @@ -52,7 +41,7 @@ static EmberAfStatus status(bool wasHandled, bool clusterExists, bool mfgSpecifi } else if (clusterExists) { - return EMBER_ZCL_STATUS_UNSUP_CLUSTER_COMMAND; + return EMBER_ZCL_STATUS_UNSUP_COMMAND; } else { @@ -69,12 +58,6 @@ EmberAfStatus emberAfClusterSpecificCommandParse(EmberAfClusterCommand * cmd) { switch (cmd->apsFrame->clusterId) { - case ZCL_BASIC_CLUSTER_ID: - result = status(false, true, cmd->mfgSpecific); - break; - case ZCL_TEMP_MEASUREMENT_CLUSTER_ID: - result = status(false, true, cmd->mfgSpecific); - break; default: // Unrecognized cluster ID, error status will apply. break; @@ -89,6 +72,7 @@ EmberAfStatus emberAfClusterSpecificCommandParse(EmberAfClusterCommand * cmd) result = emberAfBasicClusterServerCommandParse(cmd); break; case ZCL_TEMP_MEASUREMENT_CLUSTER_ID: + // No commands are enabled for cluster Temperature Measurement result = status(false, true, cmd->mfgSpecific); break; default: @@ -99,16 +83,17 @@ EmberAfStatus emberAfClusterSpecificCommandParse(EmberAfClusterCommand * cmd) return result; } -// Cluster: Basic, server +// Cluster specific command parsing + EmberAfStatus emberAfBasicClusterServerCommandParse(EmberAfClusterCommand * cmd) { bool wasHandled = false; + if (!cmd->mfgSpecific) { switch (cmd->commandId) { case ZCL_RESET_TO_FACTORY_DEFAULTS_COMMAND_ID: { - // Command is fixed length: 0 wasHandled = emberAfBasicClusterResetToFactoryDefaultsCallback(); break; } diff --git a/examples/temperature-measurement-app/esp32/main/gen/call-command-handler.h b/examples/temperature-measurement-app/esp32/main/gen/call-command-handler.h index dcfc47bebe09b5..c1b06642f07ac9 100644 --- a/examples/temperature-measurement-app/esp32/main/gen/call-command-handler.h +++ b/examples/temperature-measurement-app/esp32/main/gen/call-command-handler.h @@ -1,4 +1,5 @@ -/** + +/* * * Copyright (c) 2020 Project CHIP Authors * @@ -14,18 +15,8 @@ * 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 SILABS_EMBER_AF_COMMAND_PARSE_HEADER -#define SILABS_EMBER_AF_COMMAND_PARSE_HEADER +// Prevent multiple inclusion +#pragma once #include "af-types.h" - -// This is a set of generated prototype for functions that parse the -// the incomming message, and call appropriate command handler. - -// Cluster: Basic, server -EmberAfStatus emberAfBasicClusterServerCommandParse(EmberAfClusterCommand * cmd); - -#endif // SILABS_EMBER_AF_COMMAND_PARSE_HEADER diff --git a/examples/temperature-measurement-app/esp32/main/gen/callback-stub.c b/examples/temperature-measurement-app/esp32/main/gen/callback-stub.c deleted file mode 100644 index 7f9c642dac6c23..00000000000000 --- a/examples/temperature-measurement-app/esp32/main/gen/callback-stub.c +++ /dev/null @@ -1,2475 +0,0 @@ -/** - * - * 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. - */ -// This file is generated by Simplicity Studio. Please do not edit manually. - -// This c file provides stubs for all callbacks. These stubs -// will be used in the case where user defined implementations -// of the callbacks have not been provided. -#include "af.h" -#include "callback.h" - -#include -//#include "hal/hal.h" - -/** @brief Add To Current App Tasks - * - * This function is only useful to sleepy end devices. This function will note - * the passed item as part of a set of tasks the application has outstanding - * (e.g. message sent requiring APS acknwoledgement). This will affect how the - * application behaves with regard to sleeping and polling. Until the - * outstanding task is completed, the device may poll more frequently and sleep - * less often. - * - * @param tasks Ver.: always - */ -void emberAfAddToCurrentAppTasksCallback(EmberAfApplicationTask tasks) {} - -/** @brief Allow Network Write Attribute - * - * This function is called by the application framework before it writes an - * attribute in response to a write attribute request from an external device. - * The value passed into this callback is the value to which the attribute is to - * be set by the framework. - Example: In mirroring simple metering data - * on an Energy Services Interface (ESI) (formerly called Energy Service Portal - * (ESP) in SE 1.0).), a mirrored simple meter needs to write read-only - * attributes on its mirror. The-meter-mirror sample application, located in - * app/framework/sample-apps, uses this callback to allow the mirrored device to - * write simple metering attributes on the mirror regardless of the fact that - * most simple metering attributes are defined as read-only by the ZigBee - * specification. - Note: The ZCL specification does not (as of this - * writing) specify any permission-level security for writing writeable - * attributes. As far as the ZCL specification is concerned, if an attribute is - * writeable, any device that has a link key for the device should be able to - * write that attribute. Furthermore if an attribute is read only, it should not - * be written over the air. Thus, if you implement permissions for writing - * attributes as a feature, you MAY be operating outside the specification. This - * is unlikely to be a problem for writing read-only attributes, but it may be a - * problem for attributes that are writeable according to the specification but - * restricted by the application implementing this callback. - * - * @param endpoint Ver.: always - * @param clusterId Ver.: always - * @param attributeId Ver.: always - * @param mask Ver.: always - * @param manufacturerCode Ver.: always - * @param value Ver.: always - * @param type Ver.: always - */ -EmberAfAttributeWritePermission emberAfAllowNetworkWriteAttributeCallback(uint8_t endpoint, EmberAfClusterId clusterId, - EmberAfAttributeId attributeId, uint8_t mask, - uint16_t manufacturerCode, uint8_t * value, uint8_t type) -{ - return EMBER_ZCL_ATTRIBUTE_WRITE_PERMISSION_ALLOW_WRITE_NORMAL; // Default -} - -/** @brief Attribute Read Access - * - * This function is called whenever the Application Framework needs to check - * access permission for an attribute read. - * - * @param endpoint Ver.: always - * @param clusterId Ver.: always - * @param manufacturerCode Ver.: always - * @param attributeId Ver.: always - */ -bool emberAfAttributeReadAccessCallback(uint8_t endpoint, EmberAfClusterId clusterId, uint16_t manufacturerCode, - uint16_t attributeId) -{ - return true; -} - -/** @brief Attribute Write Access - * - * This function is called whenever the Application Framework needs to check - * access permission for an attribute write. - * - * @param endpoint Ver.: always - * @param clusterId Ver.: always - * @param manufacturerCode Ver.: always - * @param attributeId Ver.: always - */ -bool emberAfAttributeWriteAccessCallback(uint8_t endpoint, EmberAfClusterId clusterId, uint16_t manufacturerCode, - uint16_t attributeId) -{ - return true; -} - -/** @brief Groups Cluster Clear Group Table - * - * This function is called by the framework when the application should clear - * the group table. - * - * @param endpoint The endpoint. Ver.: always - */ -void emberAfGroupsClusterClearGroupTableCallback(uint8_t endpoint) {} - -/** @brief Clear Report Table - * - * This function is called by the framework when the application should clear - * the report table. - * - */ -EmberStatus emberAfClearReportTableCallback(void) -{ - return EMBER_LIBRARY_NOT_PRESENT; -} - -/** @brief Scenes Cluster ClearSceneTable - * - * This function is called by the framework when the application should clear - * the scene table. - * - * @param endpoint The endpoint. Ver.: always - */ -void emberAfScenesClusterClearSceneTableCallback(uint8_t endpoint) {} - -/** @brief Key Establishment Cluster Client Command Received - * - * This function is called by the application framework when a server-to-client - * key establishment command is received but has yet to be handled by the - * framework code. This function should return a bool value indicating whether - * the command has been handled by the application code and should not be - * further processed by the framework. - * - * @param cmd Ver.: always - */ -bool emberAfKeyEstablishmentClusterClientCommandReceivedCallback(EmberAfClusterCommand * cmd) -{ - return false; -} - -/** @brief Cluster Init - * - * This function is called when a specific cluster is initialized. It gives the - * application an opportunity to take care of cluster initialization procedures. - * It is called exactly once for each endpoint where cluster is present. - * - * @param endpoint Ver.: always - * @param clusterId Ver.: always - */ -void emberAfClusterInitCallback(uint8_t endpoint, EmberAfClusterId clusterId) {} - -/** @brief Cluster Security Custom - * - * This callback is fired when determining if APS encryption is required for a - * cluster outside of the specification's required clusters. In other words, - * for the Smart Energy profile this would be a cluster beyond the list that - * normally requires APS encryption. - * - * @param profileId The profile ID Ver.: always - * @param clusterId The cluster ID Ver.: always - * @param incoming Whether this is an incoming or outgoing message. Ver.: - * always - * @param commandId The ZCL command ID being sent/received. Ver.: always - */ -bool emberAfClusterSecurityCustomCallback(EmberAfProfileId profileId, EmberAfClusterId clusterId, bool incoming, uint8_t commandId) -{ - // By default, assume APS encryption is not required. - return false; -} - -/** @brief Configure Reporting Command - * - * This function is called by the application framework when a Configure - * Reporting command is received from an external device. The Configure - * Reporting command contains a series of attribute reporting configuration - * records. The application should return true if the message was processed or - * false if it was not. - * - * @param cmd Ver.: always - */ -bool emberAfConfigureReportingCommandCallback(const EmberAfClusterCommand * cmd) -{ - return false; -} - -/** @brief Configure Reporting Response - * - * This function is called by the application framework when a Configure - * Reporting Response command is received from an external device. The - * application should return true if the message was processed or false if it - * was not. - * - * @param clusterId The cluster identifier of this response. Ver.: always - * @param buffer Buffer containing the list of attribute status records. Ver.: - * always - * @param bufLen The length in bytes of the list. Ver.: always - */ -bool emberAfConfigureReportingResponseCallback(EmberAfClusterId clusterId, uint8_t * buffer, uint16_t bufLen) -{ - return false; -} - -/** @brief Default Response - * - * This function is called by the application framework when a Default Response - * command is received from an external device. The application should return - * true if the message was processed or false if it was not. - * - * @param clusterId The cluster identifier of this response. Ver.: always - * @param commandId The command identifier to which this is a response. Ver.: - * always - * @param status Specifies either SUCCESS or the nature of the error that was - * detected in the received command. Ver.: always - */ -bool emberAfDefaultResponseCallback(EmberAfClusterId clusterId, uint8_t commandId, EmberAfStatus status) -{ - return false; -} - -/** @brief Discover Attributes Response - * - * This function is called by the application framework when a Discover - * Attributes Response or Discover Attributes Extended Response command is - * received from an external device. The Discover Attributes Response command - * contains a bool indicating if discovery is complete and a list of zero or - * more attribute identifier/type records. The final argument indicates whether - * the response is in the extended format or not. The application should return - * true if the message was processed or false if it was not. - * - * @param clusterId The cluster identifier of this response. Ver.: always - * @param discoveryComplete Indicates whether there are more attributes to be - * discovered. true if there are no more attributes to be discovered. Ver.: - * always - * @param buffer Buffer containing the list of attribute identifier/type - * records. Ver.: always - * @param bufLen The length in bytes of the list. Ver.: always - * @param extended Indicates whether the response is in the extended format or - * not. Ver.: always - */ -bool emberAfDiscoverAttributesResponseCallback(EmberAfClusterId clusterId, bool discoveryComplete, uint8_t * buffer, - uint16_t bufLen, bool extended) -{ - return false; -} - -/** @brief Discover Commands Generated Response - * - * This function is called by the framework when Discover Commands Generated - * Response is received. - * - * @param clusterId The cluster identifier of this response. Ver.: always - * @param manufacturerCode Manufacturer code Ver.: always - * @param discoveryComplete Indicates whether there are more commands to be - * discovered. Ver.: always - * @param commandIds Buffer containing the list of command identifiers. Ver.: - * always - * @param commandIdCount The length of bytes of the list, whish is the same as - * the number of identifiers. Ver.: always - */ -bool emberAfDiscoverCommandsGeneratedResponseCallback(EmberAfClusterId clusterId, uint16_t manufacturerCode, bool discoveryComplete, - uint8_t * commandIds, uint16_t commandIdCount) -{ - return false; -} - -/** @brief Discover Commands Received Response - * - * This function is called by the framework when Discover Commands Received - * Response is received. - * - * @param clusterId The cluster identifier of this response. Ver.: always - * @param manufacturerCode Manufacturer code Ver.: always - * @param discoveryComplete Indicates whether there are more commands to be - * discovered. Ver.: always - * @param commandIds Buffer containing the list of command identifiers. Ver.: - * always - * @param commandIdCount The length of bytes of the list, whish is the same as - * the number of identifiers. Ver.: always - */ -bool emberAfDiscoverCommandsReceivedResponseCallback(EmberAfClusterId clusterId, uint16_t manufacturerCode, bool discoveryComplete, - uint8_t * commandIds, uint16_t commandIdCount) -{ - return false; -} - -/** @brief Eeprom Init - * - * Tells the system to initialize the EEPROM if it is not already initialized. - * - */ -void emberAfEepromInitCallback(void) {} - -/** @brief Eeprom Note Initialized State - * - * Records the state of the EEPROM so that an intelligent driver (like the - * EEPROM plugin) can re-initialize the driver prior to any calls to it. - * - * @param state The state of the EEPROM, false=re-initalization needed, - * true=no-re-init needed Ver.: always - */ -void emberAfEepromNoteInitializedStateCallback(bool state) {} - -/** @brief Eeprom Shutdown - * - * Tells the system to shutdown the EEPROM if it is not already shutdown. - * - */ -void emberAfEepromShutdownCallback(void) {} - -/** @brief Groups Cluster Endpoint In Group - * - * This function is called by the framework when it needs to determine if an - * endpoint is a member of a group. The application should return true if the - * endpoint is a member of the group and false otherwise. - * - * @param endpoint The endpoint. Ver.: always - * @param groupId The group identifier. Ver.: always - */ -bool emberAfGroupsClusterEndpointInGroupCallback(uint8_t endpoint, uint16_t groupId) -{ - return false; -} - -/** @brief Energy Scan Result - * - * This is called by the low-level stack code when an 802.15.4 energy scan - * completes. - * - * @param channel The channel where the energy scan took place. Ver.: always - * @param rssi The receive signal strength indicator for the channel. Ver.: - * always - */ -void emberAfEnergyScanResultCallback(uint8_t channel, int8_t rssi) {} - -/** @brief External Attribute Read - * - * Like emberAfExternalAttributeWriteCallback above, this function is called - * when the framework needs to read an attribute that is not stored within the - * Application Framework's data structures. - All of the important - * information about the attribute itself is passed as a pointer to an - * EmberAfAttributeMetadata struct, which is stored within the application and - * used to manage the attribute. A complete description of the - * EmberAfAttributeMetadata struct is provided in - * app/framework/include/af-types.h - This function assumes that the - * application is able to read the attribute, write it into the passed buffer, - * and return immediately. Any attributes that require a state machine for - * reading and writing are not really candidates for externalization at the - * present time. The Application Framework does not currently include a state - * machine for reading or writing attributes that must take place across a - * series of application ticks. Attributes that cannot be read in a timely - * manner should be stored within the Application Framework and updated - * occasionally by the application code from within the - * emberAfMainTickCallback. - If the application was successfully able to - * read the attribute and write it into the passed buffer, it should return a - * value of EMBER_ZCL_STATUS_SUCCESS. Ensure that the size of the externally - * managed attribute value is smaller than what the buffer can hold. In the case - * of a buffer overflow throw an appropriate error such as - * EMBER_ZCL_STATUS_INSUFFICIENT_SPACE. Any other return value indicates the - * application was not able to read the attribute. - * - * @param endpoint Ver.: always - * @param clusterId Ver.: always - * @param attributeMetadata Ver.: always - * @param manufacturerCode Ver.: always - * @param buffer Ver.: always - * @param maxReadLength Ver.: always - */ -EmberAfStatus emberAfExternalAttributeReadCallback(uint8_t endpoint, EmberAfClusterId clusterId, - EmberAfAttributeMetadata * attributeMetadata, uint16_t manufacturerCode, - uint8_t * buffer, uint16_t maxReadLength) -{ - return EMBER_ZCL_STATUS_FAILURE; -} - -/** @brief External Attribute Write - * - * This function is called whenever the Application Framework needs to write an - * attribute which is not stored within the data structures of the Application - * Framework itself. One of the new features in Version 2 is the ability to - * store attributes outside the Framework. This is particularly useful for - * attributes that do not need to be stored because they can be read off the - * hardware when they are needed, or are stored in some central location used by - * many modules within the system. In this case, you can indicate that the - * attribute is stored externally. When the framework needs to write an external - * attribute, it makes a call to this callback. - This callback is very - * useful for host micros which need to store attributes in persistent memory. - * Because each host micro (used with an Ember NCP) has its own type of - * persistent memory storage, the Application Framework does not include the - * ability to mark attributes as stored in flash the way that it does for Ember - * SoCs like the EM35x. On a host micro, any attributes that need to be stored - * in persistent memory should be marked as external and accessed through the - * external read and write callbacks. Any host code associated with the - * persistent storage should be implemented within this callback. - All of - * the important information about the attribute itself is passed as a pointer - * to an EmberAfAttributeMetadata struct, which is stored within the application - * and used to manage the attribute. A complete description of the - * EmberAfAttributeMetadata struct is provided in - * app/framework/include/af-types.h. - This function assumes that the - * application is able to write the attribute and return immediately. Any - * attributes that require a state machine for reading and writing are not - * candidates for externalization at the present time. The Application Framework - * does not currently include a state machine for reading or writing attributes - * that must take place across a series of application ticks. Attributes that - * cannot be written immediately should be stored within the Application - * Framework and updated occasionally by the application code from within the - * emberAfMainTickCallback. - If the application was successfully able to - * write the attribute, it returns a value of EMBER_ZCL_STATUS_SUCCESS. Any - * other return value indicates the application was not able to write the - * attribute. - * - * @param endpoint Ver.: always - * @param clusterId Ver.: always - * @param attributeMetadata Ver.: always - * @param manufacturerCode Ver.: always - * @param buffer Ver.: always - */ -EmberAfStatus emberAfExternalAttributeWriteCallback(uint8_t endpoint, EmberAfClusterId clusterId, - EmberAfAttributeMetadata * attributeMetadata, uint16_t manufacturerCode, - uint8_t * buffer) -{ - return EMBER_ZCL_STATUS_FAILURE; -} - -/** @brief Find Unused Pan Id And Form - * - * This function is called by the framework to search for an unused PAN id and - * form a new network. The application should return EMBER_SUCCESS if the - * operation was initiated successfully. - * - */ -EmberStatus emberAfFindUnusedPanIdAndFormCallback(void) -{ - return EMBER_LIBRARY_NOT_PRESENT; -} - -/** @brief Get Current App Tasks - * - * This function is only useful to sleepy end devices. This function will - * return the set of tasks the application has outstanding. These tasks affect - * how the application behaves with regard to sleeping and polling. - * - */ -EmberAfApplicationTask emberAfGetCurrentAppTasksCallback(void) -{ - return 0; -} - -/** @brief Get Current Poll Control - * - * This function will retrieve the current poll control that the system is using - * for the current network. This is determined by examining all the scheduled - * events and obtaining the most restrictive poll control context across all - * events. The most restrictive poll control is EMBER_AF_SHORT_POLL followed by - * EMBER_AF_LONG_POLL. - * - */ -EmberAfEventPollControl emberAfGetCurrentPollControlCallback(void) -{ - return EMBER_AF_LONG_POLL; -} - -/** @brief Get Current Poll Interval Ms - * - * This function is only useful to end devices. This function will return the - * current poll interval (in milliseconds) for the current network. This - * interval is the maximum amount of time a child is currently waiting between - * polls of its parent. - * - */ -uint32_t emberAfGetCurrentPollIntervalMsCallback(void) -{ - return 0; -} - -/** @brief Get Current Poll Interval Qs - * - * This function is only useful to end devices. This function will return the - * current poll interval (in quarter seconds) for the current network. This - * interval is the maximum amount of time a child is currently waiting between - * polls of its parent. - * - */ -uint32_t emberAfGetCurrentPollIntervalQsCallback(void) -{ - return 0; -} - -/** @brief Get Current Sleep Control - * - * This function will retrieve the current sleep control that the system is - * using. This is determined by examining all the scheduled events and - * obtaining the most restrictive sleep control context across all events. The - * most restrictive sleep control is EMBER_AF_STAY_AWAKE followed by - * EMBER_AF_OK_TO_SLEEP. - * - */ -EmberAfEventSleepControl emberAfGetCurrentSleepControlCallback(void) -{ - return EMBER_AF_OK_TO_SLEEP; -} - -/** @brief Get Current Time - * - * This callback is called when device attempts to get current time from the - * hardware. If this device has means to retrieve exact time, then this method - * should implement it. If the callback can't provide the exact time it should - * return 0 to indicate failure. Default action is to return 0, which indicates - * that device does not have access to real time. - * - */ -uint32_t emberAfGetCurrentTimeCallback(void) -{ - return 0; -} - -/** @brief Get Default Poll Control - * - * This function will retrieve the default poll control for the current network - * as previously set by emberAfSetDefaultPollControlCallback(). The default - * poll control will limit whether the network can long poll. - * - */ -EmberAfEventPollControl emberAfGetDefaultPollControlCallback(void) -{ - return EMBER_AF_LONG_POLL; -} - -/** @brief Get Default Sleep Control - * - * This function will retrieve the default sleep control the system is using as - * previously set by emberAfSetDefaultSleepControlCallback(). The default sleep - * control will limit whether the device can sleep. - * - */ -EmberAfEventSleepControl emberAfGetDefaultSleepControlCallback(void) -{ - return EMBER_AF_OK_TO_SLEEP; -} - -/** @brief Get Endpoint By Index - * - * Get the endpoint number based on the passed index. By default the framework - * handles this by managing endpoints based on the precompiled configuration - * defined in AppBuilder. This callback can override this behavior at runtime - * and provide additional endpoints or different data than the compiled values. - * If the index is overridden than the callback shall return true and set the - * endpointReturn parameter accordingly. A value of 0xFF means the endpoint - * doesn't exist at that index. - Otherwise false must be returned by the - * callback and the default framework behavior will be executed. This is only - * applicable to the SOC devices. - * - * @param index The index of the endpoint. Ver.: always - * @param endpointReturn The value of endpoint. Ver.: always - */ -bool emberAfGetEndpointByIndexCallback(uint8_t index, uint8_t * endpointReturn) -{ - return false; -} - -/** @brief Get Endpoint Description - * - * This callback is called by the framework whenever it receives a ZDO request - * to enumerate the details about an endpoint. By default the framework - * provides the information based on the precompiled endpoint information as - * defined in AppBuilder. This callback can override that behavior at runtime - * and return different information. If the endpoint information is being - * overridden then the callback must return true. Otherwise it should return - * false, which allows the framework to perform its default behavior. This is - * only applicable to SOC devices. - * - * @param endpoint The endpoint number that is being queried. Ver.: always - * @param result This is a pointer to a data structure where the endpoint - * information is written if the callback is providing the information. Ver.: - * always - */ -bool emberAfGetEndpointDescriptionCallback(uint8_t endpoint, EmberEndpointDescription * result) -{ - return false; -} - -/** @brief Get Endpoint Info - * - * This function is a callback to an application implemented endpoint that - * operates outside the normal application framework. When the framework wishes - * to perform operations with that endpoint it uses this callback to retrieve - * the endpoint's information. If the endpoint exists and the application can - * provide data then true shall be returned. Otherwise the callback must return - * false. - * - * @param endpoint The endpoint to retrieve data for. Ver.: always - * @param returnNetworkIndex The index corresponding to the ZigBee network the - * endpoint belongs to. If not using a multi-network device, 0 must be - * returned. Otherwise on a multi-network device the stack will switch to this - * network before sending the message. Ver.: always - * @param returnEndpointInfo A pointer to a data struct that will be written - * with information about the endpoint. Ver.: always - */ -bool emberAfGetEndpointInfoCallback(uint8_t endpoint, uint8_t * returnNetworkIndex, EmberAfEndpointInfoStruct * returnEndpointInfo) -{ - return false; -} - -/** @brief Get Form And Join Extended Pan Id - * - * This callback is called by the framework to get the extended PAN ID used by - * the current network for forming and joining. The extended PAN ID used for - * forming and joining is not necessarily the same extended PAN ID actually in - * use on the network. - * - * @param resultLocation Ver.: always - */ -void emberAfGetFormAndJoinExtendedPanIdCallback(uint8_t * resultLocation) {} - -/** @brief Get Long Poll Interval Ms - * - * This function is only useful to end devices. This function will return the - * long poll interval (in milliseconds) for the current network. This interval - * is the maximum amount of time a child will wait between polls of its parent - * when it is not expecting data. - * - */ -uint32_t emberAfGetLongPollIntervalMsCallback(void) -{ - return 0; -} - -/** @brief Get Long Poll Interval Qs - * - * This function is only useful to end devices. This function will return the - * long poll interval (in quarter seconds) for the current network. This - * interval is the maximum amount of time a child will wait between polls of its - * parent when it is not expecting data. - * - */ -uint32_t emberAfGetLongPollIntervalQsCallback(void) -{ - return 0; -} - -/** @brief Get Short Poll Interval Ms - * - * This function is only useful to sleepy end devices. This function will - * return the short poll interval (in milliseconds) for the current network. - * This interval is the maximum amount of time a child will wait between polls - * of its parent when it is expecting data. - * - */ -uint16_t emberAfGetShortPollIntervalMsCallback(void) -{ - return 0; -} - -/** @brief Get Short Poll Interval Qs - * - * This function is only useful to sleepy end devices. This function will - * return the short poll interval (in quarter seconds) for the current network. - * This interval is the maximum amount of time a child will wait between polls - * of its parent when it is expecting data. - * - */ -uint16_t emberAfGetShortPollIntervalQsCallback(void) -{ - return 0; -} - -/** @brief Get Source Route Overhead - * - * This function is called by the framework to determine the overhead required - * in the network frame for source routing to a particular destination. - * - * @param destination The node id of the destination Ver.: always - */ -uint8_t emberAfGetSourceRouteOverheadCallback(EmberNodeId destination) -{ - return 0; -} - -/** @brief Get Wake Timeout Bitmask - * - * This function is only useful to sleepy end devices. This function will - * return the wake timeout bitmask for the current network. The bitmask - * determines which tasks will timeout automatically and which tasks require - * manual removal from the task list. - * - */ -EmberAfApplicationTask emberAfGetWakeTimeoutBitmaskCallback(void) -{ - return 0; -} - -/** @brief Get Wake Timeout Ms - * - * This function is only useful to sleepy end devices. This function will - * return the wake timeout (in milliseconds) for the current network. This - * timeout is the maximum amount of time a child will wait for a task in the - * wake bitmask to finish. While waiting, the device will short poll. - * - */ -uint16_t emberAfGetWakeTimeoutMsCallback(void) -{ - return 0; -} - -/** @brief Get Wake Timeout Qs - * - * This function is only useful to sleepy end devices. This function will - * return the wake timeout (in quarter seconds) for the current network. This - * timeout is the maximum amount of time a child will wait for a task in the - * wake bitmask to finish. While waiting, the device will short poll. - * - */ -uint16_t emberAfGetWakeTimeoutQsCallback(void) -{ - return 0; -} - -/** @brief Hal Button Isr - * - * This callback is called by the framework whenever a button is pressed on the - * device. This callback is called within ISR context. - * - * @param button The button which has changed state, either BUTTON0 or BUTTON1 - * as defined in the appropriate BOARD_HEADER. Ver.: always - * @param state The new state of the button referenced by the button parameter, - * either ::BUTTON_PRESSED if the button has been pressed or ::BUTTON_RELEASED - * if the button has been released. Ver.: always - */ -void emberAfHalButtonIsrCallback(uint8_t button, uint8_t state) {} - -/** @brief Incoming Packet Filter - * - * ** REQUIRES INCLUDING THE PACKET-HANDOFF PLUGIN ** - - This is called by - * the Packet Handoff plugin when the stack receives a packet from one of the - * protocol layers specified in ::EmberZigbeePacketType. - - The packetType - * argument is one of the values of the ::EmberZigbeePacketType enum. If the - * stack receives an 802.15.4 MAC beacon, it will call this function with the - * packetType argument set to ::EMBER_ZIGBEE_PACKET_TYPE_BEACON. - - The - * implementation of this callback may alter the data contained in packetData, - * modify options and flags in the auxillary data, or consume the packet itself, - * either sending the message, or discarding it as it sees fit. - * - * @param packetType the type of packet and associated protocol layer Ver.: - * always - * @param packetData flat buffer containing the packet data associated with the - * packet type Ver.: always - * @param size_p a pointer containing the size value of the packet Ver.: always - * @param data auxillary data included with the packet Ver.: always - */ -EmberPacketAction emberAfIncomingPacketFilterCallback(EmberZigbeePacketType packetType, uint8_t * packetData, uint8_t * size_p, - void * data) -{ - return EMBER_ACCEPT_PACKET; -} - -/** @brief Initiate Inter Pan Key Establishment - * - * This function is called by the framework to initiate key establishment with a - * remote device on a different PAN. The application should return - * EMBER_SUCCESS if key establishment was initiated successfully. The - * application should call ::emberAfInterPanKeyEstablishmentCallback as events - * occur. - * - * @param panId The PAN id of the remote device. Ver.: always - * @param eui64 The EUI64 of the remote device. Ver.: always - */ -EmberStatus emberAfInitiateInterPanKeyEstablishmentCallback(EmberPanId panId, const EmberEUI64 eui64) -{ - return EMBER_LIBRARY_NOT_PRESENT; -} - -/** @brief Initiate Key Establishment - * - * This function is called by the framework to initiate key establishment with a - * remote device. The application should return EMBER_SUCCESS if key - * establishment was initiated successfully. The application should call - * ::emberAfKeyEstablishmentCallback as events occur. - * - * @param nodeId The node id of the remote device. Ver.: always - * @param endpoint The endpoint on the remote device. Ver.: always - */ -EmberStatus emberAfInitiateKeyEstablishmentCallback(EmberNodeId nodeId, uint8_t endpoint) -{ - return EMBER_LIBRARY_NOT_PRESENT; -} - -/** @brief Initiate Partner Link Key Exchange - * - * This function is called by the framework to initiate a partner link key - * exchange with a remote device. The application should return EMBER_SUCCESS - * if the partner link key exchange was initiated successfully. When the - * partner link key exchange completes, the application should call the given - * callback. - * - * @param target The node id of the remote device. Ver.: always - * @param endpoint The key establishment endpoint of the remote device. Ver.: - * always - * @param callback The callback that should be called when the partner link key - * exchange completse. Ver.: always - */ -EmberStatus emberAfInitiatePartnerLinkKeyExchangeCallback(EmberNodeId target, uint8_t endpoint, - EmberAfPartnerLinkKeyExchangeCallback * callback) -{ - return EMBER_LIBRARY_NOT_PRESENT; -} - -/** @brief Inter Pan Key Establishment - * - * A callback by the key-establishment code to indicate an event has occurred. - * For error codes this is purely a notification. For non-error status codes - * (besides LINK_KEY_ESTABLISHED), it is the application's chance to allow or - * disallow the operation. If the application returns true then the key - * establishment is allowed to proceed. If it returns false, then key - * establishment is aborted. LINK_KEY_ESTABLISHED is a notification of success. - * - * @param status Ver.: always - * @param amInitiator Ver.: always - * @param panId Ver.: always - * @param eui64 Ver.: always - * @param delayInSeconds Ver.: always - */ -bool emberAfInterPanKeyEstablishmentCallback(EmberAfKeyEstablishmentNotifyMessage status, bool amInitiator, EmberPanId panId, - const EmberEUI64 eui64, uint8_t delayInSeconds) -{ - return true; -} - -/** @brief Interpan Send Message - * - * This function will send a raw MAC message with interpan frame format using - * the passed parameters. - * - * @param header Interpan header info Ver.: always - * @param messageLength The length of the message received or to send Ver.: - * always - * @param message The message data received or to send. Ver.: always - */ -EmberStatus emberAfInterpanSendMessageCallback(EmberAfInterpanHeader * header, uint16_t messageLength, uint8_t * message) -{ - return EMBER_LIBRARY_NOT_PRESENT; -} - -/** @brief Key Establishment - * - * A callback by the key-establishment code to indicate an event has occurred. - * For error codes this is purely a notification. For non-error status codes - * (besides LINK_KEY_ESTABLISHED), it is the application's chance to allow or - * disallow the operation. If the application returns true then the key - * establishment is allowed to proceed. If it returns false, then key - * establishment is aborted. LINK_KEY_ESTABLISHED is a notification of success. - * - * @param status Ver.: always - * @param amInitiator Ver.: always - * @param partnerShortId Ver.: always - * @param delayInSeconds Ver.: always - */ -bool emberAfKeyEstablishmentCallback(EmberAfKeyEstablishmentNotifyMessage status, bool amInitiator, EmberNodeId partnerShortId, - uint8_t delayInSeconds) -{ - return true; -} - -/** @brief On/off Cluster Level Control Effect - * - * This is called by the framework when the on/off cluster initiates a command - * that must effect a level control change. The implementation assumes that the - * client will handle any effect on the On/Off Cluster. - * - * @param endpoint Ver.: always - * @param newValue Ver.: always - */ -void emberAfOnOffClusterLevelControlEffectCallback(uint8_t endpoint, bool newValue) {} - -/** @brief Main Init - * - * This function is called from the application's main function. It gives the - * application a chance to do any initialization required at system startup. Any - * code that you would normally put into the top of the application's main() - * routine should be put into this function. This is called before the clusters, - * plugins, and the network are initialized so some functionality is not yet - * available. - Note: No callback in the Application Framework is - * associated with resource cleanup. If you are implementing your application on - * a Unix host where resource cleanup is a consideration, we expect that you - * will use the standard Posix system calls, including the use of atexit() and - * handlers for signals such as SIGTERM, SIGINT, SIGCHLD, SIGPIPE and so on. If - * you use the signal() function to register your signal handler, please mind - * the returned value which may be an Application Framework function. If the - * return value is non-null, please make sure that you call the returned - * function from your handler to avoid negating the resource cleanup of the - * Application Framework itself. - * - */ -void emberAfMainInitCallback(void) {} - -/** @brief Main Start - * - * This function is called at the start of main after the HAL has been - * initialized. The standard main function arguments of argc and argv are - * passed in. However not all platforms have support for main() function - * arguments. Those that do not are passed NULL for argv, therefore argv should - * be checked for NULL before using it. If the callback determines that the - * program must exit, it should return true. The value returned by main() will - * be the value written to the returnCode pointer. Otherwise the callback - * should return false to let normal execution continue. - * - * @param returnCode Ver.: always - * @param argc Ver.: always - * @param argv Ver.: always - */ -bool emberAfMainStartCallback(int * returnCode, int argc, char ** argv) -{ - // NOTE: argc and argv may not be supported on all platforms, so argv MUST be - // checked for NULL before referencing it. On those platforms without argc - // and argv "0" and "NULL" are passed respectively. - - return false; // exit? -} - -/** @brief Main Tick - * - * Whenever main application tick is called, this callback will be called at the - * end of the main tick execution. - * - */ -void emberAfMainTickCallback(void) {} - -/** @brief Scenes Cluster Make Invalid - * - * This function is called to invalidate the valid attribute in the Scenes - * cluster. - * - * @param endpoint Ver.: always - */ -EmberAfStatus emberAfScenesClusterMakeInvalidCallback(uint8_t endpoint) -{ - return EMBER_ZCL_STATUS_UNSUP_CLUSTER_COMMAND; -} - -/** @brief Mark Buffers - * - * This function is called when the garbage collector runs. Any buffers held by - * the application must be marked. - * - */ -void emberAfMarkBuffersCallback(void) -{ - // emMarkBuffer(&bufferUsed); -} - -/** @brief Message Sent - * - * This function is called by the application framework from the message sent - * handler, when it is informed by the stack regarding the message sent status. - * All of the values passed to the emberMessageSentHandler are passed on to this - * callback. This provides an opportunity for the application to verify that its - * message has been sent successfully and take the appropriate action. This - * callback should return a bool value of true or false. A value of true - * indicates that the message sent notification has been handled and should not - * be handled by the application framework. - * - * @param type Ver.: always - * @param indexOrDestination Ver.: always - * @param apsFrame Ver.: always - * @param msgLen Ver.: always - * @param message Ver.: always - * @param status Ver.: always - */ -bool emberAfMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, EmberApsFrame * apsFrame, - uint16_t msgLen, uint8_t * message, EmberStatus status) -{ - return false; -} - -/** @brief Ncp Init - * - * This function is called when the network coprocessor is being initialized, - * either at startup or upon reset. It provides applications on opportunity to - * perform additional configuration of the NCP. The function is always called - * twice when the NCP is initialized. In the first invocation, memoryAllocation - * will be true and the application should only issue EZSP commands that affect - * memory allocation on the NCP. For example, tables on the NCP can be resized - * in the first call. In the second invocation, memoryAllocation will be false - * and the application should only issue EZSP commands that do not affect memory - * allocation. For example, tables on the NCP can be populated in the second - * call. This callback is not called on SoCs. - * - * @param memoryAllocation Ver.: always - */ -void emberAfNcpInitCallback(bool memoryAllocation) {} - -/** @brief Ncp Is Awake Isr - * - * This function is called IN ISR CONTEXT. It notes that the NCP is awake after - * sleeping. Care should be taken to do minimal processing in this ISR handler - * function. - * - */ -void emberAfNcpIsAwakeIsrCallback(void) {} - -/** @brief Network Found - * - * This callback is generated when an active scan finds a 802.15.4 network. - * - * @param networkFound A struct containing information about the network found. - * Ver.: always - * @param lqi The link quality indication of the network found. Ver.: always - * @param rssi The received signal strength indication of the network found. - * Ver.: always - */ -void emberAfNetworkFoundCallback(EmberZigbeeNetwork * networkFound, uint8_t lqi, int8_t rssi) {} - -/** @brief Network Key Update Complete - * - * This is called by the framework when a network key update operation started - * by the trust center is complete. - * - * @param status Ver.: always - */ -void emberAfNetworkKeyUpdateCompleteCallback(EmberStatus status) {} - -/** @brief Ota Bootload - * - * The platform specific routine to bootload the device from a ZigBee - * over-the-air upgrade file. - * - * @param id A pointer to the structure that contains the information about what - * OTA image to bootload. Ver.: always - * @param ncpUpgradeTagId The tag ID of the upgrade data that will be used to - * bootload the device. Ver.: always - */ -uint8_t emberAfOtaBootloadCallback(const EmberAfOtaImageId * id, uint16_t ncpUpgradeTagId) -{ - // Please implement me - emberAfCorePrintln("Not supported."); - return 1; -} - -/** @brief Ota Client Bootload - * - * This callback is fired when the OTA Client recevies a command to bootload the - * newly downloaded OTA image. This callback will perform the platform specific - * to bootload their device. - * - * @param id This is the identifier relating to the image that has been - * downloaded and is ready for bootload. Ver.: always - */ -void emberAfOtaClientBootloadCallback(const EmberAfOtaImageId * id) -{ - // Any final preperation prior to the bootload should be done here. - // It is assumed that the device will reset in most all cases. - // Please implement me. -} - -/** @brief Ota Client Custom Verify - * - * This callback is executed by the OTA client after the signature verification - * has successfully completed. It allows the device to do its own custom - * verification of the image (such as verifying that the EBL is intact). - * - * @param newVerification This indicates if a new verification should be - * started. Ver.: always - * @param id This is ID of the image to be verified. Ver.: always - */ -EmberAfImageVerifyStatus emberAfOtaClientCustomVerifyCallback(bool newVerification, const EmberAfOtaImageId * id) -{ - // Manufacturing specific checks can be made to the image in this function to - // determine if it is valid. This function is called AFTER cryptographic - // checks have passed. If the cryptographic checks failed, this function will - // never be called. - - // The function shall return one of the following based on its own - // verification process. - // 1) EMBER_AF_IMAGE_GOOD - the image has passed all checks - // 2) EMBER_AF_IMAGE_BAD - the image is not valid - // 3) EMBER_AF_IMAGE_VERIFY_IN_PROGRESS - the image is valid so far, but more - // checks are needed. This callback shall be re-executed later to - // continue verification. This allows other code in the framework to run. - return EMBER_AF_IMAGE_GOOD; -} - -/** @brief Ota Client Download Complete - * - * This callback indicates that the OTA client has completed the download of a - * file. If the file has been completely downloaded and cryptographic checks - * have been turned on, then those will be performed prior to this callback and - * that outcome included in the 'success' result. On failure, this callback is - * merely informative, and the return type is ignored. On succesful download, - * this callback allows the client to perform any additional verification of the - * downloaded image and return that result to the OTA server. - * - * @param success This indicates the success or failure of the download and - * cryptographic verification process (if applicable). Ver.: always - * @param id This is the image identifier information that corresponds to the - * download result. Ver.: always - */ -bool emberAfOtaClientDownloadCompleteCallback(EmberAfOtaDownloadResult success, const EmberAfOtaImageId * id) -{ - // At this point the image has been completely downloaded and cryptographic - // checks (if applicable) have been performed. - - if (!success) - { - emberAfOtaBootloadClusterPrintln("Download failed."); - return true; // return value is ignored - } - - // This is for any additional validation that needs to be performed - // on the image by the application. - - // The results of checks here will be returned back to the OTA server - // in the Upgrade End request. - return true; -} - -/** @brief Ota Client Incoming Message Raw - * - * This callback is for processing incoming messages for the Over-the-air - * bootload cluster client. ZCL will not process the message and instead hand - * the raw over the air data to the callback for its own processing. - * - * @param message A pointer to the structure containing the message buffer and - * other information about it. Ver.: always - */ -bool emberAfOtaClientIncomingMessageRawCallback(EmberAfClusterCommand * message) -{ - return false; -} - -/** @brief Ota Client Start - * - * This callback should be called when the profile specific registration has - * completed successfully. It will start the client's state machine that will - * find the OTA server, query it for the next image, download the image, wait - * for the bootload message, and kick off the bootload. - * - */ -void emberAfOtaClientStartCallback(void) {} - -/** @brief Ota Client Version Info - * - * This function is called by the OTA client when a new query will occur to the - * server asking what the next version of firmware is. The client can inform - * the cluster software as to what information to use in the query (and - * subsequent download). - * - * @param currentImageInfo This is the information to use in the next query by - * the client cluster code. It contains the manufacturer ID, image type ID, and - * the firmware version to be specified in the query message sent to the server. - * Ver.: always - * @param hardwareVersion This is a pointer to the hardware version to use in - * the query. If no hardware version should be used, then - * EMBER_AF_INVALID_HARDWARE_VERSION should be used. Ver.: always - */ -void emberAfOtaClientVersionInfoCallback(EmberAfOtaImageId * currentImageInfo, uint16_t * hardwareVersion) -{ - // Customer will fill in the image info with their manufacturer ID, - // image type ID, and current software version number. - // The deviceSpecificFileEui64 can be ignored. - - // It may be necessary to dynamically determine this by talking to - // another device, as is the case with a host talking to an NCP device. - - // However, this routine will be called repeatedly so it may be wise - // to cache the data! - - /* This is commented out since the #defines below are not defined. - - if (currentImageInfo != NULL) { - MEMSET(currentImageInfo, 0, sizeof(EmberAfOtaImageId)); - currentImageInfo->manufacturerId = EMBER_AF_MANUFACTURER_CODE; - currentImageInfo->imageTypeId = EMBER_AF_IMAGE_TYPE_ID; - currentImageInfo->firmwareVersion = EMBER_AF_CUSTOM_FIRMWARE_VERSION; - } - - if (hardwareVersion != NULL) { - *hardwareVersion = EMBER_AF_INVALID_HARDWARE_VERSION; - } - - assert(false); - */ -} - -/** @brief Ota Page Request Server Policy - * - * This callback is called by the OTA server page request code when it wants to - * determine if it is allowed for an OTA client to make a page request. It is - * only called if page request support has been enabled on the server. It - * should return EMBER_ZCL_STATUS_SUCCESS if it allows the page request, and - * EMBER_ZCL_STATUS_UNSUP_CLUSTER_COMMAND if it does not want to allow it. - * - */ -uint8_t emberAfOtaPageRequestServerPolicyCallback(void) -{ - return EMBER_ZCL_STATUS_SUCCESS; -} - -/** @brief Ota Server Block Size - * - * This function provides a way for the server to adjust the block size of its - * response to an Image block request by a client. - * - * @param clientNodeId The node Id of OTA client making an image block request. - * Ver.: always - */ -uint8_t emberAfOtaServerBlockSizeCallback(EmberNodeId clientNodeId) -{ - // This function provides a way for the server to potentially - // adjust the block size based on the client who is requesting. - // In other words if we are using source routing we will limit - // data returned by enough to put a source route into the message. - - // Image Block Response Message Format - // Status Code: 1-byte - // Manuf Code: 2-bytes - // Image Type: 2-bytes - // File Ver: 4-bytes - // File Offset: 4-bytes - // Data Size: 1-byte - // Data: variable - const uint8_t IMAGE_BLOCK_RESPONSE_OVERHEAD = (EMBER_AF_ZCL_OVERHEAD + 14); - - EmberApsFrame apsFrame; - uint8_t maxSize; - apsFrame.options = EMBER_APS_OPTION_NONE; - - if (emberAfIsCurrentSecurityProfileSmartEnergy()) - { - apsFrame.options |= EMBER_APS_OPTION_ENCRYPTION; - } - - maxSize = emberAfMaximumApsPayloadLength(EMBER_OUTGOING_DIRECT, clientNodeId, &apsFrame); - maxSize -= IMAGE_BLOCK_RESPONSE_OVERHEAD; - return maxSize; -} - -/** @brief Ota Server Incoming Message Raw - * - * This callback is for processing incoming messages for the Over-the-air - * bootload cluster server. ZCL will not process the message and instead hand - * the raw over the air data to the callback for its own processing. - * - * @param message A pointer to the structure containing the message buffer and - * other information about it. Ver.: always - */ -bool emberAfOtaServerIncomingMessageRawCallback(EmberAfClusterCommand * message) -{ - return false; -} - -/** @brief Ota Server Query - * - * This callback is fired when the OTA server receives a query request by the - * client. The callback lets the server application indicate to the client what - * the 'next' version of software is for the device, or if there is not one - * available. - * - * @param currentImageId This is the current software image that the client - * hase. Ver.: always - * @param hardwareVersion If this value is non-NULL, it indicates the hardware - * version of the client device. If NULL, the client did not specify a hardware - * version. Ver.: always - * @param nextUpgradeImageId This is a pointer to a data structure containing - * the 'next' software version for the client to download. Ver.: always - */ -uint8_t emberAfOtaServerQueryCallback(const EmberAfOtaImageId * currentImageId, uint16_t * hardwareVersion, - EmberAfOtaImageId * nextUpgradeImageId) -{ - // If a new software image is available, this function should return EMBER_ZCL_STATUS_SUCCESS - // and populate the 'nextUpgradeImageId' structure with the appropriate values. - // If no new software image is available (i.e. the client should not download a firmware image) - // then the server should return EMBER_ZCL_STATUS_NO_IMAGE_AVAILABLE. - return EMBER_ZCL_STATUS_NO_IMAGE_AVAILABLE; -} - -/** @brief Ota Server Send Image Notify - * - * This callback is an indication to the OTA server that it should send out - * notification about an OTA file that is available for download. - * - * @param dest The destination of the image notify message. May be a broadcast - * address. Ver.: always - * @param endpoint The destination endpoint of the image notify message. May be - * a broadcast endpoint. Ver.: always - * @param payloadType The type of data the image notify message will contain. 0 - * = no data. 1 = Manufacturer ID. 2 = Manufacturer ID and the image type ID. - * 3 = Manufacturer ID, image type ID, and firmware version. Ver.: always - * @param queryJitter The percentage of nodes that should respond to this - * message, from 1-100. On receipt of this message, each recipient will - * randomly choose a percentage and only query the server if their percentage is - * below this value. Ver.: always - * @param id The image information that will be put in the message. The data - * within this struct that will be appended to the message is determined by the - * previous 'payloadType' argument. Ver.: always - */ -bool emberAfOtaServerSendImageNotifyCallback(EmberNodeId dest, uint8_t endpoint, uint8_t payloadType, uint8_t queryJitter, - const EmberAfOtaImageId * id) -{ - return false; -} - -/** @brief Ota Server Upgrade End Request - * - * This function is called when the OTA server receives a request an upgrade end - * request. If the request indicated a successful download by the client, the - * server must tell the client when and if to upgrade to the downloaded image. - * - * @param source The node ID of the device that sent the upgrade end request. - * Ver.: always - * @param status This is the ZCL status sent by the client indicating the result - * of its attempt to download the new upgrade image. If the status is not - * EMBER_ZCL_STATUS_SUCCESS then this callback is merely informative and no - * response mesasge will be generated by the server. Ver.: always - * @param returnValue If the server returns true indicating that the client - * should apply the upgrade, this time value indicates when in the future the - * client should apply the upgrade. Ver.: always - * @param imageId This variable indicates the software version that the client - * successfully downloaded and is asking to upgrade to. Ver.: always - */ -bool emberAfOtaServerUpgradeEndRequestCallback(EmberNodeId source, uint8_t status, uint32_t * returnValue, - const EmberAfOtaImageId * imageId) -{ - // If the status value is not EMBER_ZCL_STATUS_SUCCESS, then this callback is - // merely informative and no response message will be generated by the server. - // If the server wants the client to NOT apply the upgrade, then it should - // return false. - // If the server wants the client to apply the upgrade, it should return true - // and set the 'returnValue' parameter to when it wants the client to - // apply the upgrade. There are three possible values: - // 0 = Apply the upgrade now - // 0xFFFFFFFF = Don't apply yet, ask again later. - // (anything-else) = Apply the upgrade X minutes from now. - *returnValue = 0; - return true; -} - -/** @brief Ota Storage Check Temp Data - * - * This callback will validate temporary data in the storage device to determine - * whether it is a complete file, a partially downloaded file, or there is no - * file present. When a complete or partial file is found it will return - * EMBER_AF_OTA_STORAGE_SUCCESS or EMBER_AF_OTA_STORAGE_PARTIAL_FILE_FOUND, - * respectively. In that case, the currentOffset, totalImageSize, and - * newFileInfo will be populated with data. When EMBER_AF_OTA_STORAGE_ERROR is - * returned, no temporary data is present. - * - * @param currentOffset A pointer to a value that will be written with the - * offset within the total file size that has been successfully stored in the - * storage device. This will indicate how much data has been currently - * dowloaded. Ver.: always - * @param totalImageSize A pointer to a value that will be written with the - * total image size of the OTA file when a download has completed. This does - * not indicate how much data has actually been downloaded currently. Ver.: - * always - * @param newFileInfo This is the image id of the temporary file data stored in - * the storage device. Ver.: always - */ -EmberAfOtaStorageStatus emberAfOtaStorageCheckTempDataCallback(uint32_t * currentOffset, uint32_t * totalImageSize, - EmberAfOtaImageId * newFileInfo) -{ - // If the image data cannot be successfully verified, an error should be returned. - return EMBER_AF_OTA_STORAGE_ERROR; -} - -/** @brief Ota Storage Clear Temp Data - * - * This function clears any existing temp data that was downloaed. It is used - * immediately prior to downloading a raw image over the air. - * - */ -EmberAfOtaStorageStatus emberAfOtaStorageClearTempDataCallback(void) -{ - // If the image data cannot be stored, an error should be returned. - return EMBER_AF_OTA_STORAGE_ERROR; -} - -/** @brief Ota Storage Close - * - * This callback shuts down the ZigBee Over-the-air storage module. - * - */ -void emberAfOtaStorageCloseCallback(void) -{ - // Please implement me. - assert(false); -} - -/** @brief Ota Storage Driver Download Finish - * - * This callback defines the low-level means by which a device records the final - * offset value of the download image. - * - * @param offset The value of the final offset of the image download. Ver.: - * always - */ -void emberAfOtaStorageDriverDownloadFinishCallback(uint32_t offset) -{ - // The storage driver and the rest of the OTA bootload code will not function correctly unless it is implemnted. - // Please implement me. - assert(false); -} - -/** @brief Ota Storage Driver Init - * - * The initialization code for the OTA storage driver. - * - */ -bool emberAfOtaStorageDriverInitCallback(void) -{ - // The storage driver and the rest of the OTA bootload code will not function correctly unless it is implemnted. - // Please implement me. - assert(false); - return false; -} - -/** @brief Ota Storage Driver Invalidate Image - * - * This callback invalidates the image stored on disk so that it will not be - * bootloaded, and it will not be a valid image that is in the middle of - * downloading. - * - */ -EmberAfOtaStorageStatus emberAfOtaStorageDriverInvalidateImageCallback(void) -{ - // The storage driver and the rest of the OTA bootload code will not function correctly unless it is implemnted. - // Please implement me. - assert(false); - return EMBER_AF_OTA_STORAGE_ERROR; -} - -/** @brief Ota Storage Driver Prepare To Resume Download - * - * This callback allows the underlying storage driver to prepare to resume the - * OTA file download. For example, the driver may exceute a page erase to - * insure the next page is ready to be written to. - * - */ -EmberAfOtaStorageStatus emberAfOtaStorageDriverPrepareToResumeDownloadCallback(void) -{ - assert(false); - return EMBER_AF_OTA_STORAGE_ERROR; -} - -/** @brief Ota Storage Driver Read - * - * This callback defines the low-level means by which a device reads from the - * OTA storage device. - * - * @param offset The address offset from the start of the storage device where - * data is to be read. Ver.: always - * @param length The length of the data to be read from the storage device. - * Ver.: always - * @param returnData A pointer where the data read from the device should be - * written to. Ver.: always - */ -bool emberAfOtaStorageDriverReadCallback(uint32_t offset, uint32_t length, uint8_t * returnData) -{ - // The storage driver and the rest of the OTA bootload code will not function correctly unless it is implemnted. - // Please implement me. - assert(false); - return false; -} - -/** @brief Ota Storage Driver Retrieve Last Stored Offset - * - * This callback defines the low-level means by which a device retrieves the - * last persistently recorded download offset. This may be different than last - * actual download offset. - * - */ -uint32_t emberAfOtaStorageDriverRetrieveLastStoredOffsetCallback(void) -{ - // The storage driver and the rest of the OTA bootload code will not function correctly unless it is implemnted. - // Please implement me. - assert(false); - return 0; -} - -/** @brief Ota Storage Driver Write - * - * This callback defines the low-level means by which a device reads from the - * OTA storage device. - * - * @param dataToWrite A pointer to the data that will be written to the storage - * device. Ver.: always - * @param offset The address offset from the start of the storage device where - * data will be written. Ver.: always - * @param length The length of the data to be written to the storage device. - * Ver.: always - */ -bool emberAfOtaStorageDriverWriteCallback(const uint8_t * dataToWrite, uint32_t offset, uint32_t length) -{ - // The storage driver and the rest of the OTA bootload code will not function correctly unless it is implemnted. - // Please implement me. - assert(false); - return false; -} - -/** @brief Ota Storage Finish Download - * - * This function indicates to the storage module that the download has finished. - * - * @param offset The final offset of the downloaded file (i.e. the total size) - * Ver.: always - */ -EmberAfOtaStorageStatus emberAfOtaStorageFinishDownloadCallback(uint32_t offset) -{ - return EMBER_AF_OTA_STORAGE_SUCCESS; -} - -/** @brief Ota Storage Get Count - * - * This callback returns the total number of ZigBee Over-the-air upgrade images - * stored in the storage module. - * - */ -uint8_t emberAfOtaStorageGetCountCallback(void) -{ - return 0; -} - -/** @brief Ota Storage Get Full Header - * - * This callback populates the EmberAfOtaHeader structure pointed to by the - * returnData with data about the OTA file stored in the storage module. - * - * @param id This is a pointer to the image id for the OTA file to retrieve - * information about. Ver.: always - * @param returnData This is a pointer to the location of the structure that - * will be populated with data. Ver.: always - */ -EmberAfOtaStorageStatus emberAfOtaStorageGetFullHeaderCallback(const EmberAfOtaImageId * id, EmberAfOtaHeader * returnData) -{ - // If the requested image cannot be found, then an error shouldb e returned. - return EMBER_AF_OTA_STORAGE_ERROR; -} - -/** @brief Ota Storage Get Total Image Size - * - * This function returns the total size of the ZigBee Over-the-air file with the - * passed parameters. If no file is found with those parameters, 0 is returned. - * - * @param id A pointer to the image identifier for the OTA file to retrieve - * information for. Ver.: always - */ -uint32_t emberAfOtaStorageGetTotalImageSizeCallback(const EmberAfOtaImageId * id) -{ - // On failure this should return an image size of zero. - return 0; -} - -/** @brief Ota Storage Init - * - * This callback initializes the ZigBee Over-the-air storage module. - * - */ -EmberAfOtaStorageStatus emberAfOtaStorageInitCallback(void) -{ - return EMBER_AF_OTA_STORAGE_SUCCESS; -} - -/** @brief Ota Storage Iterator First - * - * This callback lets you walk through the list of all OTA files by jumping to - * the first file in the list maintained by the storage module. If there is no - * file then emberAfOtaInvalidImageId is returned. - * - */ -EmberAfOtaImageId emberAfOtaStorageIteratorFirstCallback(void) -{ - // It is expected that the storage module maintain its own internal iterator that the 'first' and 'next' functions will - // manipulate. - - // If there are no images at all, this function should return the invalid image id. - return emberAfInvalidImageId; -} - -/** @brief Ota Storage Iterator Next - * - * This callback lets you walk through the list of all OTA files by jumping to - * the next file in the list maintained by the storage module. If there is no - * next file then emberAfOtaInvalidImageId is returned. - * - */ -EmberAfOtaImageId emberAfOtaStorageIteratorNextCallback(void) -{ - // It is expected that the storage module maintain its own internal iterator that the 'first' and 'next' functions will - // manipulate. - - // If there are no more images, this function should return the invalid image id. - return emberAfInvalidImageId; -} - -/** @brief Ota Storage Read Image Data - * - * This callback reads data from the specified OTA file and returns that data to - * the caller. - * - * @param id This is a pointer to the image id for the OTA file to retrieve data - * from. Ver.: always - * @param offset This is the offset relative to the start of the image where the - * data should be read from. Ver.: always - * @param length This is the length of data that will be read. Ver.: always - * @param returnData This is a pointer to where the data read out of the file - * will be written to Ver.: always - * @param returnedLength This is a pointer to a variable where the actual length - * of data read will be written to. A short read may occur if the end of file - * was reached. Ver.: always - */ -EmberAfOtaStorageStatus emberAfOtaStorageReadImageDataCallback(const EmberAfOtaImageId * id, uint32_t offset, uint32_t length, - uint8_t * returnData, uint32_t * returnedLength) -{ - // If the requested image cannot be found, then an error should be returned. - return EMBER_AF_OTA_STORAGE_ERROR; -} - -/** @brief Ota Storage Search - * - * This callback searches through the list of all images for one that matches - * the passed parameters. On success an image identifier is returned with a - * matching image. On failure emberAfInvalidImageId is returned. - * - * @param manufacturerId The ZigBee assigned identifier of the manufacturer - * contained in the OTA image being searched for. Ver.: always - * @param imageTypeId The image type identifier contained in the OTA image being - * searched for. Ver.: always - * @param hardwareVersion This is a pointer to the hardware version that will be - * used in the search. If the pointer is NULL, hardware version will not be - * considered when searching for matching images. If it points to a value, the - * search will only consider images where that value falls between the minimum - * and maxmimum hardware version specified in the OTA file. If no hardware - * version is present in an OTA file but the other parameters match, the file - * will be considered a match Ver.: always - */ -EmberAfOtaImageId emberAfOtaStorageSearchCallback(uint16_t manufacturerId, uint16_t imageTypeId, const uint16_t * hardwareVersion) -{ - // If no image is found that matches the search criteria, this function should return the invalid image id. - return emberAfInvalidImageId; -} - -/** @brief Ota Storage Write Temp Data - * - * This function writes to the temporary data in the storage device at the - * specified offset. It is used when downloading a raw image over the air. - * - * @param offset The location within the download image file where to write the - * data. Ver.: always - * @param length The length of data to write. Ver.: always - * @param data A pointer to the temporary data that will be written to the - * storage device. Ver.: always - */ -EmberAfOtaStorageStatus emberAfOtaStorageWriteTempDataCallback(uint32_t offset, uint32_t length, const uint8_t * data) -{ - // If the image data cannot be stored, an error should be returned. - return EMBER_AF_OTA_STORAGE_ERROR; -} - -/** @brief Outgoing Packet Filter - * - * ** REQUIRES INCLUDING THE PACKET-HANDOFF PLUGIN ** - - This is called by - * the Packet Handoff plugin when the stack prepares to send a packet from one - * of the protocol layers specified in ::EmberZigbeePacketType. - - The - * packetType argument is one of the values of the ::EmberZigbeePacketType enum. - * If the stack receives an 802.15.4 MAC beacon, it will call this function with - * the packetType argument set to ::EMBER_ZIGBEE_PACKET_TYPE_BEACON. - - - * The implementation of this callback may alter the data contained in - * packetData, modify options and flags in the auxillary data, or consume the - * packet itself, either sending the message, or discarding it as it sees fit. - * - * @param packetType the type of packet and associated protocol layer Ver.: - * always - * @param packetData flat buffer containing the packet data associated with the - * packet type Ver.: always - * @param size_p a pointer containing the size value of the packet Ver.: always - * @param data auxillary data included with the packet Ver.: always - */ -EmberPacketAction emberAfOutgoingPacketFilterCallback(EmberZigbeePacketType packetType, uint8_t * packetData, uint8_t * size_p, - void * data) -{ - return EMBER_ACCEPT_PACKET; -} - -/** @brief Partner Link Key Exchange Request - * - * This function is called by the framework on SOC platforms when a remote node - * requests a partner link key exchange. The application should return - * EMBER_SUCCESS to accept the request or any other status to reject it. On - * network coprocessor platforms, this function will not be called because the - * NCP handles partner link key exchange requests based on the binding policy. - * - * @param partner The EUI of the remote node. Ver.: always - */ -EmberZdoStatus emberAfPartnerLinkKeyExchangeRequestCallback(EmberEUI64 partner) -{ - return EMBER_ZDP_NOT_SUPPORTED; -} - -/** @brief Partner Link Key Exchange Response - * - * This function is called by the framework when a remote node requests a - * partner link key exchange. The application should return true to accept the - * request or false to reject it. On network coprocessor platforms, this - * function will not be called because the NCP handles partner link key exchange - * requests based on the binding policy. - * - * @param sender The EUI of the remote node. Ver.: always - * @param status The ZDO response status. Ver.: always - */ -void emberAfPartnerLinkKeyExchangeResponseCallback(EmberNodeId sender, EmberZdoStatus status) {} - -/** @brief Performing Key Establishment - * - * This function is called by the framework to determine if the device is - * performing key establishment. The application should return true if key - * establishment is in progress. - * - */ -bool emberAfPerformingKeyEstablishmentCallback(void) -{ - return false; -} - -/** @brief Reset To Factory Defaults - * - * This function is called by the Basic server plugin when a request to reset - * to factory defaults is received. The plugin will reset attributes managed by - * the framework to their default values. The application should perform any - * other necessary reset-related operations in this callback, including - * resetting any externally-stored attributes. - * - * @param endpoint Ver.: always - */ -void emberAfPluginBasicResetToFactoryDefaultsCallback(uint8_t endpoint) {} - -/** @brief Over temperature state changed - * - * This callback is generated when the temperature rises over the assert - * thresholds (warning and critical) or drops below the deassert thresholds - * (warning and critical) - * - * @param previousState, the state prior to the state change - * - * @param newState, the new state of the state change - * - * EMBER_TEMPERATURE_MEASUREMENT_SERVER_OVER_TEMPERATURE_NORMAL : normal state - * EMBER_TEMPERATURE_MEASUREMENT_SERVER_OVER_TEMPERATURE_WARNING : warning state - * EMBER_TEMPERATURE_MEASUREMENT_SERVER_OVER_TEMPERATURE_CRITICAL : critical state - * - * Ver.: always - */ -void emberAfPluginTemperatureMeasurementServerOverTemperatureCallback(uint8_t previousState, uint8_t newState) {} - -// Ifdef out the attribute change callback, since we implement it in -// DataModelHandler -#if 0 -/** @brief Post Attribute Change - * - * This function is called by the application framework after it changes an - * attribute value. The value passed into this callback is the value to which - * the attribute was set by the framework. - * - * @param endpoint Ver.: always - * @param clusterId Ver.: always - * @param attributeId Ver.: always - * @param mask Ver.: always - * @param manufacturerCode Ver.: always - * @param type Ver.: always - * @param size Ver.: always - * @param value Ver.: always - */ -void emberAfPostAttributeChangeCallback(uint8_t endpoint, EmberAfClusterId clusterId, EmberAfAttributeId attributeId, uint8_t mask, - uint16_t manufacturerCode, uint8_t type, uint8_t size, uint8_t * value) -{} -#endif - -/** @brief Post Em4 Reset - * - * A callback called by application framework, and implemented by em4 plugin - * - */ -void emberAfPostEm4ResetCallback(void) -{ - return; -} - -/** @brief Pre Attribute Change - * - * This function is called by the application framework before it changes an - * attribute value. The value passed into this callback is the value to which - * the attribute is to be set by the framework. The application should return - * ::EMBER_ZCL_STATUS_SUCCESS to permit the change or any other ::EmberAfStatus - * to reject it. - * - * @param endpoint Ver.: always - * @param clusterId Ver.: always - * @param attributeId Ver.: always - * @param mask Ver.: always - * @param manufacturerCode Ver.: always - * @param type Ver.: always - * @param size Ver.: always - * @param value Ver.: always - */ -EmberAfStatus emberAfPreAttributeChangeCallback(uint8_t endpoint, EmberAfClusterId clusterId, EmberAfAttributeId attributeId, - uint8_t mask, uint16_t manufacturerCode, uint8_t type, uint8_t size, - uint8_t * value) -{ - return EMBER_ZCL_STATUS_SUCCESS; -} - -/** @brief Pre Cli Send - * - * This function is called by the framework when it is about to pass a message - * constructed over CLI to the stack primitives for sending. If the function - * returns true it is assumed that the callback has consumed and processed the - * message. The framework will not do any further processing on the message. - - * If the function returns false then it is assumed that the callback has - * not processed the message and the framework will continue to process - * accordingly. - * - * @param apsFrame The structure containing the APS frame Ver.: always - * @param source Source Node Id Ver.: always - * @param destination Destintion Node Id Ver.: always - * @param message Pointer to the message payload Ver.: always - * @param messageLength Length of the message payload Ver.: always - */ -bool emberAfPreCliSendCallback(EmberApsFrame * apsFrame, EmberNodeId source, EmberNodeId destination, uint8_t * message, - uint16_t messageLength) -{ - return false; -} - -/** @brief Pre Command Received - * - * This callback is the second in the Application Framework's message processing - * chain. At this point in the processing of incoming over-the-air messages, the - * application has determined that the incoming message is a ZCL command. It - * parses enough of the message to populate an EmberAfClusterCommand struct. The - * Application Framework defines this struct value in a local scope to the - * command processing but also makes it available through a global pointer - * called emberAfCurrentCommand, in app/framework/util/util.c. When command - * processing is complete, this pointer is cleared. - * - * @param cmd Ver.: always - */ -bool emberAfPreCommandReceivedCallback(EmberAfClusterCommand * cmd) -{ - return false; -} - -/** @brief Pre Message Received - * - * This callback is the first in the Application Framework's message processing - * chain. The Application Framework calls it when a message has been received - * over the air but has not yet been parsed by the ZCL command-handling code. If - * you wish to parse some messages that are completely outside the ZCL - * specification or are not handled by the Application Framework's command - * handling code, you should intercept them for parsing in this callback. - - * This callback returns a Boolean value indicating whether or not the message - * has been handled. If the callback returns a value of true, then the - * Application Framework assumes that the message has been handled and it does - * nothing else with it. If the callback returns a value of false, then the - * application framework continues to process the message as it would with any - * incoming message. - Note: This callback receives a pointer to an - * incoming message struct. This struct allows the application framework to - * provide a unified interface between both Host devices, which receive their - * message through the ezspIncomingMessageHandler, and SoC devices, which - * receive their message through emberIncomingMessageHandler. - * - * @param incomingMessage Ver.: always - */ -bool emberAfPreMessageReceivedCallback(EmberAfIncomingMessage * incomingMessage) -{ - return false; -} - -/** @brief Pre Message Send - * - * This function is called by the framework when it is about to pass a message - * to the stack primitives for sending. This message may or may not be ZCL, - * ZDO, or some other protocol. This is called prior to - any ZigBee - * fragmentation that may be done. If the function returns true it is assumed - * the callback has consumed and processed the message. The callback must also - * set the EmberStatus status code to be passed back to the caller. The - * framework will do no further processing on the message. - If the - * function returns false then it is assumed that the callback has not processed - * the mesasge and the framework will continue to process accordingly. - * - * @param messageStruct The structure containing the parameters of the APS - * message to be sent. Ver.: always - * @param status A pointer to the status code value that will be returned to the - * caller. Ver.: always - */ -bool emberAfPreMessageSendCallback(EmberAfMessageStruct * messageStruct, EmberStatus * status) -{ - return false; -} - -/** @brief Pre Ncp Reset - * - * This function will be called prior to the reset of the NCP by the host. - * - */ -void emberAfPreNcpResetCallback(void) {} - -/** @brief Pre ZDO Message Received - * - * This function passes the application an incoming ZDO message and gives the - * appictation the opportunity to handle it. By default, this callback returns - * false indicating that the incoming ZDO message has not been handled and - * should be handled by the Application Framework. - * - * @param emberNodeId Ver.: always - * @param apsFrame Ver.: always - * @param message Ver.: always - * @param length Ver.: always - */ -bool emberAfPreZDOMessageReceivedCallback(EmberNodeId emberNodeId, EmberApsFrame * apsFrame, uint8_t * message, uint16_t length) -{ - return false; -} - -/** @brief Read Attributes Response - * - * This function is called by the application framework when a Read Attributes - * Response command is received from an external device. The application should - * return true if the message was processed or false if it was not. - * - * @param clusterId The cluster identifier of this response. Ver.: always - * @param buffer Buffer containing the list of read attribute status records. - * Ver.: always - * @param bufLen The length in bytes of the list. Ver.: always - */ -bool emberAfReadAttributesResponseCallback(EmberAfClusterId clusterId, uint8_t * buffer, uint16_t bufLen) -{ - return false; -} - -/** @brief Read Reporting Configuration Command - * - * This function is called by the application framework when a Read Reporting - * Configuration command is received from an external device. The application - * should return true if the message was processed or false if it was not. - * - * @param cmd Ver.: always - */ -bool emberAfReadReportingConfigurationCommandCallback(const EmberAfClusterCommand * cmd) -{ - return false; -} - -/** @brief Read Reporting Configuration Response - * - * This function is called by the application framework when a Read Reporting - * Configuration Response command is received from an external device. The - * application should return true if the message was processed or false if it - * was not. - * - * @param clusterId The cluster identifier of this response. Ver.: always - * @param buffer Buffer containing the list of attribute reporting configuration - * records. Ver.: always - * @param bufLen The length in bytes of the list. Ver.: always - */ -bool emberAfReadReportingConfigurationResponseCallback(EmberAfClusterId clusterId, uint8_t * buffer, uint16_t bufLen) -{ - return false; -} - -/** @brief Scenes Cluster Recall Saved Scene - * - * This function is called by the framework when the application should recall a - * saved scene. - * - * @param endpoint The endpoint. Ver.: always - * @param groupId The group identifier. Ver.: always - * @param sceneId The scene identifier. Ver.: always - */ -EmberAfStatus emberAfScenesClusterRecallSavedSceneCallback(uint8_t endpoint, uint16_t groupId, uint8_t sceneId) -{ - return EMBER_ZCL_STATUS_FAILURE; -} - -/** @brief Registration Abort - * - * This callback is called when the device should abort the registration - * process. - * - */ -void emberAfRegistrationAbortCallback(void) {} - -/** @brief Registration - * - * This callback is called when the device joins a network and the process of - * registration is complete. This callback provides a success value of true if - * the registration process was successful and a value of false if registration - * failed. - * - * @param success true if registration succeeded, false otherwise. Ver.: always - */ -void emberAfRegistrationCallback(bool success) {} - -/** @brief Registration Start - * - * This callback is called when the device joins a network and the registration - * process should begin. The application should return EMBER_SUCCESS if the - * registration process started successfully. When registration is complete, - * the application should call emberAfRegistrationCallback with an indication of - * success or failure. - * - */ -EmberStatus emberAfRegistrationStartCallback(void) -{ - return EMBER_LIBRARY_NOT_PRESENT; -} - -/** @brief Remote Delete Binding Permission - * - * This function is called by the framework to request permission to service the - * remote delete binding request. Return EMBER_SUCCESS to allow request, - * anything else to disallow request. - * - * @param index index to an Ember binding table entry Ver.: always - */ -EmberStatus emberAfRemoteDeleteBindingPermissionCallback(uint8_t index) -{ - return EMBER_SUCCESS; // default -} - -/** @brief Remote Set Binding Permission - * - * This function is called by the framework to request permission to service the - * remote set binding request. Return EMBER_SUCCESS to allow request, anything - * else to disallow request. - * - * @param entry Ember Binding Tablet Entry Ver.: always - */ -EmberStatus emberAfRemoteSetBindingPermissionCallback(const EmberBindingTableEntry * entry) -{ - return EMBER_SUCCESS; // default -} - -/** @brief Remove From Current App Tasks - * - * This function is only useful to sleepy end devices. This function will - * remove the passed item from the set of tasks the application has outstanding - * (e.g. message sent requiring APS acknwoledgement). This will affect how the - * application behaves with regard to sleeping and polling. Removing the item - * from the list of outstanding tasks may allow the device to sleep longer and - * poll less frequently. If there are other outstanding tasks the system may - * still have to stay away and poll more often. - * - * @param tasks Ver.: always - */ -void emberAfRemoveFromCurrentAppTasksCallback(EmberAfApplicationTask tasks) {} - -/** @brief Scenes Cluster Remove Scenes In Group - * - * This function removes the scenes from a specified group. - * - * @param endpoint Endpoint Ver.: always - * @param groupId Group ID Ver.: always - */ -void emberAfScenesClusterRemoveScenesInGroupCallback(uint8_t endpoint, uint16_t groupId) {} - -/** @brief Report Attributes - * - * This function is called by the application framework when a Report Attributes - * command is received from an external device. The application should return - * true if the message was processed or false if it was not. - * - * @param clusterId The cluster identifier of this command. Ver.: always - * @param buffer Buffer containing the list of attribute report records. Ver.: - * always - * @param bufLen The length in bytes of the list. Ver.: always - */ -bool emberAfReportAttributesCallback(EmberAfClusterId clusterId, uint8_t * buffer, uint16_t bufLen) -{ - return false; -} - -/** @brief Reporting Attribute Change - * - * This function is called by the framework when an attribute managed by the - * framework changes. The application should call this function when an - * externally-managed attribute changes. The application should use the change - * notification to inform its reporting decisions. - * - * @param endpoint Ver.: always - * @param clusterId Ver.: always - * @param attributeId Ver.: always - * @param mask Ver.: always - * @param manufacturerCode Ver.: always - * @param type Ver.: always - * @param data Ver.: always - */ -void emberAfReportingAttributeChangeCallback(uint8_t endpoint, EmberAfClusterId clusterId, EmberAfAttributeId attributeId, - uint8_t mask, uint16_t manufacturerCode, EmberAfAttributeType type, uint8_t * data) -{} - -/** @brief Scan Complete - * - * This is called by the low-level stack code when an 802.15.4 active scan - * completes. - * - * @param channel If the status indicates an error, the channel on which the - * error occurred. Otherwise it is undefined for EMBER_SUCCESS. Ver.: always - * @param status The status of the scan. Ver.: always - */ -void emberAfScanCompleteCallback(uint8_t channel, EmberStatus status) {} - -/** @brief Scan Error - * - * This is called by the framework on behalf of the form-and-join library to - * notify the application if an error occurs while scanning. See form-and-join - * documentation for more information. - * - * @param status The status of the scan. Ver.: always - */ -void emberAfScanErrorCallback(EmberStatus status) {} - -/** @brief Security Init - * - * This callback is called by the framework to give the application a chance to - * modify the security settings of the node during network initialization. - * Depending on the context when this callback is called, the pointer to the - * initial security state may be NULL, which means the initial security state - * can no longer be modified as the node is already operating on the network. - * - * @param state Ver.: always - * @param extended Ver.: always - * @param trustCenter Ver.: always - */ -void emberAfSecurityInitCallback(EmberInitialSecurityState * state, EmberExtendedSecurityBitmask * extended, bool trustCenter) {} - -/** @brief Key Establishment Cluster Server Command Received - * - * This function is called by the application framework when a client-to-server - * key establishment command is received but has yet to be handled by the - * framework code. This function should return a bool value indicating whether - * the command has been handled by the application code and should not be - * further processed by the framework. - * - * @param cmd Ver.: always - */ -bool emberAfKeyEstablishmentClusterServerCommandReceivedCallback(EmberAfClusterCommand * cmd) -{ - return false; -} - -/** @brief Set Default Poll Control - * - * This function will set the default poll control for the current network to - * control whether or not it can long poll. - * - * @param control Ver.: always - */ -void emberAfSetDefaultPollControlCallback(EmberAfEventPollControl control) {} - -/** @brief Set Default Sleep Control - * - * This function will set the default behavior of a sleeping device to control - * whether or not it must stay awake. A device that stays awake does not sleep - * at all. Otherwise, the device can sleep between events when appropriate. - * - * @param control Ver.: always - */ -void emberAfSetDefaultSleepControlCallback(EmberAfEventSleepControl control) {} - -/** @brief Set Form And Join Extended Pan Id - * - * This callback is called by the framework to set the extended PAN ID used by - * the current network for forming and joining. The extended PAN ID used for - * forming and joining is not necessarily the same extended PAN ID actually in - * use on the network. - * - * @param extendedPanId Ver.: always - */ -void emberAfSetFormAndJoinExtendedPanIdCallback(const uint8_t * extendedPanId) {} - -/** @brief Set Long Poll Interval Ms - * - * This function is only useful to end devices. This function will set the long - * poll interval (in milliseconds) for the current network. This interval is - * the maximum amount of time a child will wait between polls of its parent when - * it is not expecting data. - * - * @param longPollIntervalMs Ver.: always - */ -void emberAfSetLongPollIntervalMsCallback(uint32_t longPollIntervalMs) {} - -/** @brief Set Long Poll Interval Qs - * - * This function is only useful to end devices. This function will set the long - * poll interval (in quarter seconds) for the current network. This interval is - * the maximum amount of time a child will wait between polls of its parent when - * it is not expecting data. - * - * @param longPollIntervalQs Ver.: always - */ -void emberAfSetLongPollIntervalQsCallback(uint32_t longPollIntervalQs) {} - -/** @brief Set Short Poll Interval Ms - * - * This function is only useful to sleepy end devices. This function will set - * the short poll interval (in milliseconds) for the current network. This - * interval is the maximum amount of time a child will wait between polls of its - * parent when it is expecting data. - * - * @param shortPollIntervalMs Ver.: always - */ -void emberAfSetShortPollIntervalMsCallback(uint16_t shortPollIntervalMs) {} - -/** @brief Set Short Poll Interval Qs - * - * This function is only useful to sleepy end devices. This function will set - * the short poll interval (in quarter seconds) for the current network. This - * interval is the maximum amount of time a child will wait between polls of its - * parent when it is expecting data. - * - * @param shortPollIntervalQs Ver.: always - */ -void emberAfSetShortPollIntervalQsCallback(uint16_t shortPollIntervalQs) {} - -/** @brief Set Source Route Overhead - * - * This function is called by the framework when it has information about the - * source route overhead to a particular destination. The application may use - * this information to cache the source route overhead. - * - * @param destination The node id of the destination Ver.: always - * @param overhead The overhead in bytes Ver.: always - */ -void emberAfSetSourceRouteOverheadCallback(EmberNodeId destination, uint8_t overhead) {} - -/** @brief Set Time - * - * This callback should be implemented, if the device has access to real time - * clock, and has an ability to update that clock. The application framework - * expects to be passed the utcTime which is the number of seconds since the - * year 2000. Default implementation does nothing. Note: This function used to - * take time in year, month, day, hour, min, sec. We have changed this to - * utcTime in order to conserve code space. - * - * @param utcTime Ver.: always - */ -void emberAfSetTimeCallback(uint32_t utcTime) {} - -/** @brief On/off Cluster Set Value - * - * This function is called when the on/off value needs to be set, either through - * normal channels or as a result of a level change. - * - * @param endpoint Ver.: always - * @param command Ver.: always - * @param initiatedByLevelChange Ver.: always - */ -EmberAfStatus emberAfOnOffClusterSetValueCallback(uint8_t endpoint, uint8_t command, bool initiatedByLevelChange) -{ - return EMBER_ZCL_STATUS_UNSUP_CLUSTER_COMMAND; -} - -/** @brief Set Wake Timeout Bitmask - * - * This function is only useful to sleepy end devices. This function will set - * the wake timeout bitmask for the current network. The bitmask determines - * which tasks will timeout automatically and which tasks require manual removal - * from the task list. - * - * @param tasks Ver.: always - */ -void emberAfSetWakeTimeoutBitmaskCallback(EmberAfApplicationTask tasks) {} - -/** @brief Set Wake Timeout Ms - * - * This function is only useful to sleepy end devices. This function will set - * the wake timeout (in milliseconds) for the current network. This timeout is - * the maximum amount of time a child will wait for a task in the wake bitmask - * to finish. While waiting, the device will short poll. - * - * @param wakeTimeoutMs Ver.: always - */ -void emberAfSetWakeTimeoutMsCallback(uint16_t wakeTimeoutMs) {} - -/** @brief Set Wake Timeout Qs - * - * This function is only useful to sleepy end devices. This function will set - * the wake timeout (in quarter seconds) for the current network. This timeout - * is the maximum amount of time a child will wait for a task in the wake - * bitmask to finish. While waiting, the device will short poll. - * - * @param wakeTimeoutQs Ver.: always - */ -void emberAfSetWakeTimeoutQsCallback(uint16_t wakeTimeoutQs) {} - -/** @brief Start Move - * - * This function is called to initiate the process for a device to move (rejoin) - * to a new parent. - * - */ -bool emberAfStartMoveCallback(void) -{ - return false; -} - -/** @brief Start Search For Joinable Network - * - * This function is called by the framework to search for joinable networks and - * join a network. The application should return EMBER_SUCCESS if the operation - * was initiated successfully. - * - */ -EmberStatus emberAfStartSearchForJoinableNetworkCallback(void) -{ - return EMBER_LIBRARY_NOT_PRESENT; -} - -/** @brief Stop Move - * - * This function is called to cancel a previously scheduled move (rejoin) to a - * new parent. - * - */ -void emberAfStopMoveCallback(void) {} - -/** @brief Scenes Cluster Store Current Scene - * - * This function is called by the framework when the application should store - * the current scene. If an entry already exists in the scene table with the - * same scene and group ids, the application should update the entry with the - * current scene. Otherwise, a new entry should be adde to the scene table, if - * possible. - * - * @param endpoint The endpoint. Ver.: always - * @param groupId The group identifier. Ver.: always - * @param sceneId The scene identifier. Ver.: always - */ -EmberAfStatus emberAfScenesClusterStoreCurrentSceneCallback(uint8_t endpoint, uint16_t groupId, uint8_t sceneId) -{ - return EMBER_ZCL_STATUS_FAILURE; -} - -/** @brief Trust Center Join - * - * This callback is called from within the application framework's - * implementation of emberTrustCenterJoinHandler or ezspTrustCenterJoinHandler. - * This callback provides the same arguments passed to the - * TrustCenterJoinHandler. For more information about the TrustCenterJoinHandler - * please see documentation included in stack/include/trust-center.h. - * - * @param newNodeId Ver.: always - * @param newNodeEui64 Ver.: always - * @param parentOfNewNode Ver.: always - * @param status Ver.: always - * @param decision Ver.: always - */ -void emberAfTrustCenterJoinCallback(EmberNodeId newNodeId, EmberEUI64 newNodeEui64, EmberNodeId parentOfNewNode, - EmberDeviceUpdate status, EmberJoinDecision decision) -{} - -/** @brief Trust Center Keepalive Abort - * - * This callback is called when the device should abort the trust center - * keepalive process. - * - */ -void emberAfTrustCenterKeepaliveAbortCallback(void) {} - -/** @brief Trust Center Keepalive Update - * - * This callback is called when the device finishes registration (successfully - * or otherwise) and the trust center keepalive process must be updated. If the - * keepalive process has not been started, then it is started. Otherwise if the - * keepalive is in the process of searching for the TC, it will process the - * result of that Trust Center search operation. - * - * @param registrationComplete Ver.: always - */ -void emberAfTrustCenterKeepaliveUpdateCallback(bool registrationComplete) {} - -/** @brief Unused Pan Id Found - * - * This is called by the framework on behalf of the form-and-join library to - * notify the application of the PAN id and channel found following a call to - * ::emberScanForUnusedPanId(). See form-and-join documentation for more - * information. - * - * @param panId Ver.: always - * @param channel Ver.: always - */ -void emberAfUnusedPanIdFoundCallback(EmberPanId panId, uint8_t channel) {} - -/** @brief Write Attributes Response - * - * This function is called by the application framework when a Write Attributes - * Response command is received from an external device. The application should - * return true if the message was processed or false if it was not. - * - * @param clusterId The cluster identifier of this response. Ver.: always - * @param buffer Buffer containing the list of write attribute status records. - * Ver.: always - * @param bufLen The length in bytes of the list. Ver.: always - */ -bool emberAfWriteAttributesResponseCallback(EmberAfClusterId clusterId, uint8_t * buffer, uint16_t bufLen) -{ - return false; -} - -/** @brief Zigbee Key Establishment - * - * A callback to the application to notify it of the status of the request for a - * Link Key. - * - * @param partner partner The IEEE address of the partner device. Or all zeros - * if the Key establishment failed. Ver.: always - * @param status The status of the key establishment. Ver.: always - */ -void emberAfZigbeeKeyEstablishmentCallback(EmberEUI64 partner, EmberKeyStatus status) {} - -/** - * @brief Called whenever the radio is powered off. - */ -void halRadioPowerDownHandler(void) {} - -/** - * @brief Called whenever the radio is powered on. - */ -void halRadioPowerUpHandler(void) {} - -/** - * @brief Called whenever the microcontroller enters/exits a idle/sleep mode - * - * @param enter True if entering idle/sleep, False if exiting - * @param sleepMode Idle/sleep mode - */ -void halSleepCallback(bool enter, SleepModes sleepMode) {} diff --git a/examples/temperature-measurement-app/esp32/main/gen/callback-stub.cpp b/examples/temperature-measurement-app/esp32/main/gen/callback-stub.cpp new file mode 100644 index 00000000000000..83d63878f3d686 --- /dev/null +++ b/examples/temperature-measurement-app/esp32/main/gen/callback-stub.cpp @@ -0,0 +1,552 @@ + +/* + * + * 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. + */ + +#include "callback.h" +#include "cluster-id.h" + +using namespace chip; + +// Cluster Init Functions +void emberAfClusterInitCallback(EndpointId endpoint, ClusterId clusterId) +{ + switch (clusterId) + { + case ZCL_BASIC_CLUSTER_ID: + emberAfBasicClusterInitCallback(endpoint); + break; + case ZCL_TEMP_MEASUREMENT_CLUSTER_ID: + emberAfTemperatureMeasurementClusterInitCallback(endpoint); + break; + default: + // Unrecognized cluster ID + break; + } +} + +void __attribute__((weak)) emberAfBasicClusterInitCallback(EndpointId endpoint) +{ + // To prevent warning + (void) endpoint; +} +void __attribute__((weak)) emberAfTemperatureMeasurementClusterInitCallback(EndpointId endpoint) +{ + // To prevent warning + (void) endpoint; +} + +// +// Non-Cluster Related Callbacks +// + +/** @brief Add To Current App Tasks + * + * This function is only useful to sleepy end devices. This function will note + * the passed item as part of a set of tasks the application has outstanding + * (e.g. message sent requiring APS acknwoledgement). This will affect how the + * application behaves with regard to sleeping and polling. Until the + * outstanding task is completed, the device may poll more frequently and sleep + * less often. + * + * @param tasks Ver.: always + */ +void emberAfAddToCurrentAppTasksCallback(EmberAfApplicationTask tasks) {} + +/** @brief Remove From Current App Tasks + * + * This function is only useful to sleepy end devices. This function will + * remove the passed item from the set of tasks the application has outstanding + * (e.g. message sent requiring APS acknwoledgement). This will affect how the + * application behaves with regard to sleeping and polling. Removing the item + * from the list of outstanding tasks may allow the device to sleep longer and + * poll less frequently. If there are other outstanding tasks the system may + * still have to stay away and poll more often. + * + * @param tasks Ver.: always + */ +void emberAfRemoveFromCurrentAppTasksCallback(EmberAfApplicationTask tasks) {} + +/** @brief Allow Network Write Attribute + * + * This function is called by the application framework before it writes an + * attribute in response to a write attribute request from an external device. + * The value passed into this callback is the value to which the attribute is to + * be set by the framework. + Example: In mirroring simple metering data + * on an Energy Services Interface (ESI) (formerly called Energy Service Portal + * (ESP) in SE 1.0).), a mirrored simple meter needs to write read-only + * attributes on its mirror. The-meter-mirror sample application, located in + * app/framework/sample-apps, uses this callback to allow the mirrored device to + * write simple metering attributes on the mirror regardless of the fact that + * most simple metering attributes are defined as read-only by the ZigBee + * specification. + Note: The ZCL specification does not (as of this + * writing) specify any permission-level security for writing writeable + * attributes. As far as the ZCL specification is concerned, if an attribute is + * writeable, any device that has a link key for the device should be able to + * write that attribute. Furthermore if an attribute is read only, it should not + * be written over the air. Thus, if you implement permissions for writing + * attributes as a feature, you MAY be operating outside the specification. This + * is unlikely to be a problem for writing read-only attributes, but it may be a + * problem for attributes that are writeable according to the specification but + * restricted by the application implementing this callback. + * + * @param endpoint Ver.: always + * @param clusterId Ver.: always + * @param attributeId Ver.: always + * @param mask Ver.: always + * @param manufacturerCode Ver.: always + * @param value Ver.: always + * @param type Ver.: always + */ +EmberAfAttributeWritePermission emberAfAllowNetworkWriteAttributeCallback(EndpointId endpoint, ClusterId clusterId, + AttributeId attributeId, uint8_t mask, + uint16_t manufacturerCode, uint8_t * value, uint8_t type) +{ + return EMBER_ZCL_ATTRIBUTE_WRITE_PERMISSION_ALLOW_WRITE_NORMAL; // Default +} + +/** @brief Attribute Read Access + * + * This function is called whenever the Application Framework needs to check + * access permission for an attribute read. + * + * @param endpoint Ver.: always + * @param clusterId Ver.: always + * @param manufacturerCode Ver.: always + * @param attributeId Ver.: always + */ +bool emberAfAttributeReadAccessCallback(EndpointId endpoint, ClusterId clusterId, uint16_t manufacturerCode, + AttributeId attributeId) +{ + return true; +} + +/** @brief Attribute Write Access + * + * This function is called whenever the Application Framework needs to check + * access permission for an attribute write. + * + * @param endpoint Ver.: always + * @param clusterId Ver.: always + * @param manufacturerCode Ver.: always + * @param attributeId Ver.: always + */ +bool emberAfAttributeWriteAccessCallback(EndpointId endpoint, ClusterId clusterId, uint16_t manufacturerCode, + AttributeId attributeId) +{ + return true; +} + +/** @brief Default Response + * + * This function is called by the application framework when a Default Response + * command is received from an external device. The application should return + * true if the message was processed or false if it was not. + * + * @param clusterId The cluster identifier of this response. Ver.: always + * @param commandId The command identifier to which this is a response. Ver.: + * always + * @param status Specifies either SUCCESS or the nature of the error that was + * detected in the received command. Ver.: always + */ +bool emberAfDefaultResponseCallback(ClusterId clusterId, CommandId commandId, EmberAfStatus status) +{ + return false; +} + +/** @brief Discover Attributes Response + * + * This function is called by the application framework when a Discover + * Attributes Response or Discover Attributes Extended Response command is + * received from an external device. The Discover Attributes Response command + * contains a bool indicating if discovery is complete and a list of zero or + * more attribute identifier/type records. The final argument indicates whether + * the response is in the extended format or not. The application should return + * true if the message was processed or false if it was not. + * + * @param clusterId The cluster identifier of this response. Ver.: always + * @param discoveryComplete Indicates whether there are more attributes to be + * discovered. true if there are no more attributes to be discovered. Ver.: + * always + * @param buffer Buffer containing the list of attribute identifier/type + * records. Ver.: always + * @param bufLen The length in bytes of the list. Ver.: always + * @param extended Indicates whether the response is in the extended format or + * not. Ver.: always + */ +bool emberAfDiscoverAttributesResponseCallback(ClusterId clusterId, bool discoveryComplete, uint8_t * buffer, uint16_t bufLen, + bool extended) +{ + return false; +} + +/** @brief Discover Commands Generated Response + * + * This function is called by the framework when Discover Commands Generated + * Response is received. + * + * @param clusterId The cluster identifier of this response. Ver.: always + * @param manufacturerCode Manufacturer code Ver.: always + * @param discoveryComplete Indicates whether there are more commands to be + * discovered. Ver.: always + * @param commandIds Buffer containing the list of command identifiers. Ver.: + * always + * @param commandIdCount The length of bytes of the list, whish is the same as + * the number of identifiers. Ver.: always + */ +bool emberAfDiscoverCommandsGeneratedResponseCallback(ClusterId clusterId, uint16_t manufacturerCode, bool discoveryComplete, + CommandId * commandIds, uint16_t commandIdCount) +{ + return false; +} + +/** @brief Discover Commands Received Response + * + * This function is called by the framework when Discover Commands Received + * Response is received. + * + * @param clusterId The cluster identifier of this response. Ver.: always + * @param manufacturerCode Manufacturer code Ver.: always + * @param discoveryComplete Indicates whether there are more commands to be + * discovered. Ver.: always + * @param commandIds Buffer containing the list of command identifiers. Ver.: + * always + * @param commandIdCount The length of bytes of the list, whish is the same as + * the number of identifiers. Ver.: always + */ +bool emberAfDiscoverCommandsReceivedResponseCallback(ClusterId clusterId, uint16_t manufacturerCode, bool discoveryComplete, + CommandId * commandIds, uint16_t commandIdCount) +{ + return false; +} + +/** @brief Pre Command Received + * + * This callback is the second in the Application Framework's message processing + * chain. At this point in the processing of incoming over-the-air messages, the + * application has determined that the incoming message is a ZCL command. It + * parses enough of the message to populate an EmberAfClusterCommand struct. The + * Application Framework defines this struct value in a local scope to the + * command processing but also makes it available through a global pointer + * called emberAfCurrentCommand, in app/framework/util/util.c. When command + * processing is complete, this pointer is cleared. + * + * @param cmd Ver.: always + */ +bool emberAfPreCommandReceivedCallback(EmberAfClusterCommand * cmd) +{ + return false; +} + +/** @brief Pre Message Send + * + * This function is called by the framework when it is about to pass a message + * to the stack primitives for sending. This message may or may not be ZCL, + * ZDO, or some other protocol. This is called prior to + any ZigBee + * fragmentation that may be done. If the function returns true it is assumed + * the callback has consumed and processed the message. The callback must also + * set the EmberStatus status code to be passed back to the caller. The + * framework will do no further processing on the message. + If the + * function returns false then it is assumed that the callback has not processed + * the mesasge and the framework will continue to process accordingly. + * + * @param messageStruct The structure containing the parameters of the APS + * message to be sent. Ver.: always + * @param status A pointer to the status code value that will be returned to the + * caller. Ver.: always + */ +bool emberAfPreMessageSendCallback(EmberAfMessageStruct * messageStruct, EmberStatus * status) +{ + return false; +} + +/** @brief Message Sent + * + * This function is called by the application framework from the message sent + * handler, when it is informed by the stack regarding the message sent status. + * All of the values passed to the emberMessageSentHandler are passed on to this + * callback. This provides an opportunity for the application to verify that its + * message has been sent successfully and take the appropriate action. This + * callback should return a bool value of true or false. A value of true + * indicates that the message sent notification has been handled and should not + * be handled by the application framework. + * + * @param type Ver.: always + * @param indexOrDestination Ver.: always + * @param apsFrame Ver.: always + * @param msgLen Ver.: always + * @param message Ver.: always + * @param status Ver.: always + */ +bool emberAfMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, EmberApsFrame * apsFrame, + uint16_t msgLen, uint8_t * message, EmberStatus status) +{ + return false; +} + +/** @brief Pre Attribute Change + * + * This function is called by the application framework before it changes an + * attribute value. The value passed into this callback is the value to which + * the attribute is to be set by the framework. The application should return + * ::EMBER_ZCL_STATUS_SUCCESS to permit the change or any other ::EmberAfStatus + * to reject it. + * + * @param endpoint Ver.: always + * @param clusterId Ver.: always + * @param attributeId Ver.: always + * @param mask Ver.: always + * @param manufacturerCode Ver.: always + * @param type Ver.: always + * @param size Ver.: always + * @param value Ver.: always + */ +EmberAfStatus emberAfPreAttributeChangeCallback(EndpointId endpoint, ClusterId clusterId, AttributeId attributeId, uint8_t mask, + uint16_t manufacturerCode, uint8_t type, uint8_t size, uint8_t * value) +{ + return EMBER_ZCL_STATUS_SUCCESS; +} + +/** @brief Read Attributes Response + * + * This function is called by the application framework when a Read Attributes + * Response command is received from an external device. The application should + * return true if the message was processed or false if it was not. + * + * @param clusterId The cluster identifier of this response. Ver.: always + * @param buffer Buffer containing the list of read attribute status records. + * Ver.: always + * @param bufLen The length in bytes of the list. Ver.: always + */ +bool emberAfReadAttributesResponseCallback(ClusterId clusterId, uint8_t * buffer, uint16_t bufLen) +{ + return false; +} + +/** @brief External Attribute Read + * + * Like emberAfExternalAttributeWriteCallback above, this function is called + * when the framework needs to read an attribute that is not stored within the + * Application Framework's data structures. + All of the important + * information about the attribute itself is passed as a pointer to an + * EmberAfAttributeMetadata struct, which is stored within the application and + * used to manage the attribute. A complete description of the + * EmberAfAttributeMetadata struct is provided in + * app/framework/include/af-types.h + This function assumes that the + * application is able to read the attribute, write it into the passed buffer, + * and return immediately. Any attributes that require a state machine for + * reading and writing are not really candidates for externalization at the + * present time. The Application Framework does not currently include a state + * machine for reading or writing attributes that must take place across a + * series of application ticks. Attributes that cannot be read in a timely + * manner should be stored within the Application Framework and updated + * occasionally by the application code from within the + * emberAfMainTickCallback. + If the application was successfully able to + * read the attribute and write it into the passed buffer, it should return a + * value of EMBER_ZCL_STATUS_SUCCESS. Ensure that the size of the externally + * managed attribute value is smaller than what the buffer can hold. In the case + * of a buffer overflow throw an appropriate error such as + * EMBER_ZCL_STATUS_INSUFFICIENT_SPACE. Any other return value indicates the + * application was not able to read the attribute. + * + * @param endpoint Ver.: always + * @param clusterId Ver.: always + * @param attributeMetadata Ver.: always + * @param manufacturerCode Ver.: always + * @param buffer Ver.: always + * @param maxReadLength Ver.: always + */ +EmberAfStatus emberAfExternalAttributeReadCallback(EndpointId endpoint, ClusterId clusterId, + EmberAfAttributeMetadata * attributeMetadata, uint16_t manufacturerCode, + uint8_t * buffer, uint16_t maxReadLength) +{ + return EMBER_ZCL_STATUS_FAILURE; +} + +/** @brief Write Attributes Response + * + * This function is called by the application framework when a Write Attributes + * Response command is received from an external device. The application should + * return true if the message was processed or false if it was not. + * + * @param clusterId The cluster identifier of this response. Ver.: always + * @param buffer Buffer containing the list of write attribute status records. + * Ver.: always + * @param bufLen The length in bytes of the list. Ver.: always + */ +bool emberAfWriteAttributesResponseCallback(ClusterId clusterId, uint8_t * buffer, uint16_t bufLen) +{ + return false; +} + +/** @brief External Attribute Write + * + * This function is called whenever the Application Framework needs to write an + * attribute which is not stored within the data structures of the Application + * Framework itself. One of the new features in Version 2 is the ability to + * store attributes outside the Framework. This is particularly useful for + * attributes that do not need to be stored because they can be read off the + * hardware when they are needed, or are stored in some central location used by + * many modules within the system. In this case, you can indicate that the + * attribute is stored externally. When the framework needs to write an external + * attribute, it makes a call to this callback. + This callback is very + * useful for host micros which need to store attributes in persistent memory. + * Because each host micro (used with an Ember NCP) has its own type of + * persistent memory storage, the Application Framework does not include the + * ability to mark attributes as stored in flash the way that it does for Ember + * SoCs like the EM35x. On a host micro, any attributes that need to be stored + * in persistent memory should be marked as external and accessed through the + * external read and write callbacks. Any host code associated with the + * persistent storage should be implemented within this callback. + All of + * the important information about the attribute itself is passed as a pointer + * to an EmberAfAttributeMetadata struct, which is stored within the application + * and used to manage the attribute. A complete description of the + * EmberAfAttributeMetadata struct is provided in + * app/framework/include/af-types.h. + This function assumes that the + * application is able to write the attribute and return immediately. Any + * attributes that require a state machine for reading and writing are not + * candidates for externalization at the present time. The Application Framework + * does not currently include a state machine for reading or writing attributes + * that must take place across a series of application ticks. Attributes that + * cannot be written immediately should be stored within the Application + * Framework and updated occasionally by the application code from within the + * emberAfMainTickCallback. + If the application was successfully able to + * write the attribute, it returns a value of EMBER_ZCL_STATUS_SUCCESS. Any + * other return value indicates the application was not able to write the + * attribute. + * + * @param endpoint Ver.: always + * @param clusterId Ver.: always + * @param attributeMetadata Ver.: always + * @param manufacturerCode Ver.: always + * @param buffer Ver.: always + */ +EmberAfStatus emberAfExternalAttributeWriteCallback(EndpointId endpoint, ClusterId clusterId, + EmberAfAttributeMetadata * attributeMetadata, uint16_t manufacturerCode, + uint8_t * buffer) +{ + return EMBER_ZCL_STATUS_FAILURE; +} + +/** @brief Report Attributes + * + * This function is called by the application framework when a Report Attributes + * command is received from an external device. The application should return + * true if the message was processed or false if it was not. + * + * @param clusterId The cluster identifier of this command. Ver.: always + * @param buffer Buffer containing the list of attribute report records. Ver.: + * always + * @param bufLen The length in bytes of the list. Ver.: always + */ +bool emberAfReportAttributesCallback(ClusterId clusterId, uint8_t * buffer, uint16_t bufLen) +{ + return false; +} + +/** @brief Get Current Time + * + * This callback is called when device attempts to get current time from the + * hardware. If this device has means to retrieve exact time, then this method + * should implement it. If the callback can't provide the exact time it should + * return 0 to indicate failure. Default action is to return 0, which indicates + * that device does not have access to real time. + * + */ +uint32_t emberAfGetCurrentTimeCallback() +{ + return 0; +} + +/** @brief Get Endpoint Info + * + * This function is a callback to an application implemented endpoint that + * operates outside the normal application framework. When the framework wishes + * to perform operations with that endpoint it uses this callback to retrieve + * the endpoint's information. If the endpoint exists and the application can + * provide data then true shall be returned. Otherwise the callback must return + * false. + * + * @param endpoint The endpoint to retrieve data for. Ver.: always + * @param returnNetworkIndex The index corresponding to the ZigBee network the + * endpoint belongs to. If not using a multi-network device, 0 must be + * returned. Otherwise on a multi-network device the stack will switch to this + * network before sending the message. Ver.: always + * @param returnEndpointInfo A pointer to a data struct that will be written + * with information about the endpoint. Ver.: always + */ +bool emberAfGetEndpointInfoCallback(EndpointId endpoint, uint8_t * returnNetworkIndex, + EmberAfEndpointInfoStruct * returnEndpointInfo) +{ + return false; +} + +/** @brief Get Source Route Overhead + * + * This function is called by the framework to determine the overhead required + * in the network frame for source routing to a particular destination. + * + * @param destination The node id of the destination Ver.: always + */ +uint8_t emberAfGetSourceRouteOverheadCallback(EmberNodeId destination) +{ + return 0; +} + +/** @brief Registration Abort + * + * This callback is called when the device should abort the registration + * process. + * + */ +void emberAfRegistrationAbortCallback() {} + +/** @brief Interpan Send Message + * + * This function will send a raw MAC message with interpan frame format using + * the passed parameters. + * + * @param header Interpan header info Ver.: always + * @param messageLength The length of the message received or to send Ver.: + * always + * @param message The message data received or to send. Ver.: always + */ +EmberStatus emberAfInterpanSendMessageCallback(EmberAfInterpanHeader * header, uint16_t messageLength, uint8_t * message) +{ + return EMBER_LIBRARY_NOT_PRESENT; +} + +/** @brief Start Move + * + * This function is called to initiate the process for a device to move (rejoin) + * to a new parent. + * + */ +bool emberAfStartMoveCallback() +{ + return false; +} diff --git a/examples/temperature-measurement-app/esp32/main/gen/callback.h b/examples/temperature-measurement-app/esp32/main/gen/callback.h index 99002ce3c5c92e..888e1699860951 100644 --- a/examples/temperature-measurement-app/esp32/main/gen/callback.h +++ b/examples/temperature-measurement-app/esp32/main/gen/callback.h @@ -1,4 +1,5 @@ -/** + +/* * * Copyright (c) 2020 Project CHIP Authors * @@ -14,29 +15,196 @@ * 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 SILABS_EMBER_AF_CALLBACK_PROTOTYPES -#define SILABS_EMBER_AF_CALLBACK_PROTOTYPES +// Prevent multiple inclusion +#pragma once -/** - * @addtogroup callback Application Framework callback interface Reference - * This header provides callback function prototypes to interface the - * developer's application code with the Ember Application Framework. - * @{ +#include "af-structs.h" +#include "af-types.h" +#include "basic-types.h" + +/** @brief Cluster Init + * + * This function is called when a specific cluster is initialized. It gives the + * application an opportunity to take care of cluster initialization procedures. + * It is called exactly once for each endpoint where cluster is present. + * + * @param endpoint Ver.: always + * @param clusterId Ver.: always */ +void emberAfClusterInitCallback(chip::EndpointId endpoint, chip::ClusterId clusterId); -#include "af-types.h" +// Cluster Init Functions + +/** @brief Basic Cluster Init + * + * Cluster Init + * + * @param endpoint Endpoint that is being initialized + */ +void emberAfBasicClusterInitCallback(chip::EndpointId endpoint); + +/** @brief Temperature Measurement Cluster Init + * + * Cluster Init + * + * @param endpoint Endpoint that is being initialized + */ +void emberAfTemperatureMeasurementClusterInitCallback(chip::EndpointId endpoint); + +// Cluster Server/Client Init Functions + +// +// Basic Cluster server +// + +/** @brief Basic Cluster Server Init + * + * Server Init + * + * @param endpoint Endpoint that is being initialized + */ +void emberAfBasicClusterServerInitCallback(chip::EndpointId endpoint); + +/** @brief Basic Cluster Server Attribute Changed + * + * Server Attribute Changed + * + * @param endpoint Endpoint that is being initialized + * @param attributeId Attribute that changed + */ +void emberAfBasicClusterServerAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId); + +/** @brief Basic Cluster Server Manufacturer Specific Attribute Changed + * + * Server Manufacturer Specific Attribute Changed + * + * @param endpoint Endpoint that is being initialized + * @param attributeId Attribute that changed + * @param manufacturerCode Manufacturer Code of the attribute that changed + */ +void emberAfBasicClusterServerManufacturerSpecificAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId, + uint16_t manufacturerCode); + +/** @brief Basic Cluster Server Message Sent + * + * Server Message Sent + * + * @param type The type of message sent + * @param indexOrDestination The destination or address to which the message was sent + * @param apsFrame The APS frame for the message + * @param msgLen The length of the message + * @param message The message that was sent + * @param status The status of the sent message + */ +void emberAfBasicClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint64_t indexOrDestination, + EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, EmberStatus status); + +/** @brief Basic Cluster Server Pre Attribute Changed + * + * server Pre Attribute Changed + * + * @param endpoint Endpoint that is being initialized + * @param attributeId Attribute to be changed + * @param attributeType Attribute type + * @param size Attribute size + * @param value Attribute value + */ +EmberAfStatus emberAfBasicClusterServerPreAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId, + EmberAfAttributeType attributeType, uint8_t size, + uint8_t * value); + +/** @brief Basic Cluster Server Tick + * + * server Tick + * + * @param endpoint Endpoint that is being served + */ +void emberAfBasicClusterServerTickCallback(chip::EndpointId endpoint); + +// +// Temperature Measurement Cluster server +// + +/** @brief Temperature Measurement Cluster Server Init + * + * Server Init + * + * @param endpoint Endpoint that is being initialized + */ +void emberAfTemperatureMeasurementClusterServerInitCallback(chip::EndpointId endpoint); + +/** @brief Temperature Measurement Cluster Server Attribute Changed + * + * Server Attribute Changed + * + * @param endpoint Endpoint that is being initialized + * @param attributeId Attribute that changed + */ +void emberAfTemperatureMeasurementClusterServerAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId); + +/** @brief Temperature Measurement Cluster Server Manufacturer Specific Attribute Changed + * + * Server Manufacturer Specific Attribute Changed + * + * @param endpoint Endpoint that is being initialized + * @param attributeId Attribute that changed + * @param manufacturerCode Manufacturer Code of the attribute that changed + */ +void emberAfTemperatureMeasurementClusterServerManufacturerSpecificAttributeChangedCallback(chip::EndpointId endpoint, + chip::AttributeId attributeId, + uint16_t manufacturerCode); + +/** @brief Temperature Measurement Cluster Server Message Sent + * + * Server Message Sent + * + * @param type The type of message sent + * @param indexOrDestination The destination or address to which the message was sent + * @param apsFrame The APS frame for the message + * @param msgLen The length of the message + * @param message The message that was sent + * @param status The status of the sent message + */ +void emberAfTemperatureMeasurementClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint64_t indexOrDestination, + EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, + EmberStatus status); + +/** @brief Temperature Measurement Cluster Server Pre Attribute Changed + * + * server Pre Attribute Changed + * + * @param endpoint Endpoint that is being initialized + * @param attributeId Attribute to be changed + * @param attributeType Attribute type + * @param size Attribute size + * @param value Attribute value + */ +EmberAfStatus emberAfTemperatureMeasurementClusterServerPreAttributeChangedCallback(chip::EndpointId endpoint, + chip::AttributeId attributeId, + EmberAfAttributeType attributeType, + uint8_t size, uint8_t * value); + +/** @brief Temperature Measurement Cluster Server Tick + * + * server Tick + * + * @param endpoint Endpoint that is being served + */ +void emberAfTemperatureMeasurementClusterServerTickCallback(chip::EndpointId endpoint); + +// Cluster Commands Callback + +/** + * @brief Basic Cluster ResetToFactoryDefaults Command callback + */ -//#include "hal/hal.h" +bool emberAfBasicClusterResetToFactoryDefaultsCallback(); -#ifdef __cplusplus -extern "C" { -#endif // #ifdef __cplusplus +// +// Non-Cluster Related Callbacks +// -/** @name Non-Cluster Related Callbacks */ -// @{ /** @brief Add To Current App Tasks * * This function is only useful to sleepy end devices. This function will note @@ -49,6 +217,21 @@ extern "C" { * @param tasks Ver.: always */ void emberAfAddToCurrentAppTasksCallback(EmberAfApplicationTask tasks); + +/** @brief Remove From Current App Tasks + * + * This function is only useful to sleepy end devices. This function will + * remove the passed item from the set of tasks the application has outstanding + * (e.g. message sent requiring APS acknwoledgement). This will affect how the + * application behaves with regard to sleeping and polling. Removing the item + * from the list of outstanding tasks may allow the device to sleep longer and + * poll less frequently. If there are other outstanding tasks the system may + * still have to stay away and poll more often. + * + * @param tasks Ver.: always + */ +void emberAfRemoveFromCurrentAppTasksCallback(EmberAfApplicationTask tasks); + /** @brief Allow Network Write Attribute * * This function is called by the application framework before it writes an @@ -82,9 +265,10 @@ void emberAfAddToCurrentAppTasksCallback(EmberAfApplicationTask tasks); * @param value Ver.: always * @param type Ver.: always */ -EmberAfAttributeWritePermission emberAfAllowNetworkWriteAttributeCallback(uint8_t endpoint, EmberAfClusterId clusterId, - EmberAfAttributeId attributeId, uint8_t mask, +EmberAfAttributeWritePermission emberAfAllowNetworkWriteAttributeCallback(chip::EndpointId endpoint, chip::ClusterId clusterId, + chip::AttributeId attributeId, uint8_t mask, uint16_t manufacturerCode, uint8_t * value, uint8_t type); + /** @brief Attribute Read Access * * This function is called whenever the Application Framework needs to check @@ -95,8 +279,9 @@ EmberAfAttributeWritePermission emberAfAllowNetworkWriteAttributeCallback(uint8_ * @param manufacturerCode Ver.: always * @param attributeId Ver.: always */ -bool emberAfAttributeReadAccessCallback(uint8_t endpoint, EmberAfClusterId clusterId, uint16_t manufacturerCode, - uint16_t attributeId); +bool emberAfAttributeReadAccessCallback(chip::EndpointId endpoint, chip::ClusterId clusterId, uint16_t manufacturerCode, + chip::AttributeId attributeId); + /** @brief Attribute Write Access * * This function is called whenever the Application Framework needs to check @@ -107,63 +292,9 @@ bool emberAfAttributeReadAccessCallback(uint8_t endpoint, EmberAfClusterId clust * @param manufacturerCode Ver.: always * @param attributeId Ver.: always */ -bool emberAfAttributeWriteAccessCallback(uint8_t endpoint, EmberAfClusterId clusterId, uint16_t manufacturerCode, - uint16_t attributeId); -/** @brief Clear Report Table - * - * This function is called by the framework when the application should clear - * the report table. - * - */ -EmberStatus emberAfClearReportTableCallback(void); -/** @brief Cluster Init - * - * This function is called when a specific cluster is initialized. It gives the - * application an opportunity to take care of cluster initialization procedures. - * It is called exactly once for each endpoint where cluster is present. - * - * @param endpoint Ver.: always - * @param clusterId Ver.: always - */ -void emberAfClusterInitCallback(uint8_t endpoint, EmberAfClusterId clusterId); -/** @brief Cluster Security Custom - * - * This callback is fired when determining if APS encryption is required for a - * cluster outside of the specification's required clusters. In other words, - * for the Smart Energy profile this would be a cluster beyond the list that - * normally requires APS encryption. - * - * @param profileId The profile ID Ver.: always - * @param clusterId The cluster ID Ver.: always - * @param incoming Whether this is an incoming or outgoing message. Ver.: - * always - * @param commandId The ZCL command ID being sent/received. Ver.: always - */ -bool emberAfClusterSecurityCustomCallback(EmberAfProfileId profileId, EmberAfClusterId clusterId, bool incoming, uint8_t commandId); -/** @brief Configure Reporting Command - * - * This function is called by the application framework when a Configure - * Reporting command is received from an external device. The Configure - * Reporting command contains a series of attribute reporting configuration - * records. The application should return true if the message was processed or - * false if it was not. - * - * @param cmd Ver.: always - */ -bool emberAfConfigureReportingCommandCallback(const EmberAfClusterCommand * cmd); -/** @brief Configure Reporting Response - * - * This function is called by the application framework when a Configure - * Reporting Response command is received from an external device. The - * application should return true if the message was processed or false if it - * was not. - * - * @param clusterId The cluster identifier of this response. Ver.: always - * @param buffer Buffer containing the list of attribute status records. Ver.: - * always - * @param bufLen The length in bytes of the list. Ver.: always - */ -bool emberAfConfigureReportingResponseCallback(EmberAfClusterId clusterId, uint8_t * buffer, uint16_t bufLen); +bool emberAfAttributeWriteAccessCallback(chip::EndpointId endpoint, chip::ClusterId clusterId, uint16_t manufacturerCode, + chip::AttributeId attributeId); + /** @brief Default Response * * This function is called by the application framework when a Default Response @@ -176,7 +307,8 @@ bool emberAfConfigureReportingResponseCallback(EmberAfClusterId clusterId, uint8 * @param status Specifies either SUCCESS or the nature of the error that was * detected in the received command. Ver.: always */ -bool emberAfDefaultResponseCallback(EmberAfClusterId clusterId, uint8_t commandId, EmberAfStatus status); +bool emberAfDefaultResponseCallback(chip::ClusterId clusterId, chip::CommandId commandId, EmberAfStatus status); + /** @brief Discover Attributes Response * * This function is called by the application framework when a Discover @@ -197,8 +329,9 @@ bool emberAfDefaultResponseCallback(EmberAfClusterId clusterId, uint8_t commandI * @param extended Indicates whether the response is in the extended format or * not. Ver.: always */ -bool emberAfDiscoverAttributesResponseCallback(EmberAfClusterId clusterId, bool discoveryComplete, uint8_t * buffer, - uint16_t bufLen, bool extended); +bool emberAfDiscoverAttributesResponseCallback(chip::ClusterId clusterId, bool discoveryComplete, uint8_t * buffer, uint16_t bufLen, + bool extended); + /** @brief Discover Commands Generated Response * * This function is called by the framework when Discover Commands Generated @@ -213,8 +346,9 @@ bool emberAfDiscoverAttributesResponseCallback(EmberAfClusterId clusterId, bool * @param commandIdCount The length of bytes of the list, whish is the same as * the number of identifiers. Ver.: always */ -bool emberAfDiscoverCommandsGeneratedResponseCallback(EmberAfClusterId clusterId, uint16_t manufacturerCode, bool discoveryComplete, - uint8_t * commandIds, uint16_t commandIdCount); +bool emberAfDiscoverCommandsGeneratedResponseCallback(chip::ClusterId clusterId, uint16_t manufacturerCode, bool discoveryComplete, + chip::CommandId * commandIds, uint16_t commandIdCount); + /** @brief Discover Commands Received Response * * This function is called by the framework when Discover Commands Received @@ -229,39 +363,118 @@ bool emberAfDiscoverCommandsGeneratedResponseCallback(EmberAfClusterId clusterId * @param commandIdCount The length of bytes of the list, whish is the same as * the number of identifiers. Ver.: always */ -bool emberAfDiscoverCommandsReceivedResponseCallback(EmberAfClusterId clusterId, uint16_t manufacturerCode, bool discoveryComplete, - uint8_t * commandIds, uint16_t commandIdCount); -/** @brief Eeprom Init +bool emberAfDiscoverCommandsReceivedResponseCallback(chip::ClusterId clusterId, uint16_t manufacturerCode, bool discoveryComplete, + chip::CommandId * commandIds, uint16_t commandIdCount); + +/** @brief Pre Command Received + * + * This callback is the second in the Application Framework's message processing + * chain. At this point in the processing of incoming over-the-air messages, the + * application has determined that the incoming message is a ZCL command. It + * parses enough of the message to populate an EmberAfClusterCommand struct. The + * Application Framework defines this struct value in a local scope to the + * command processing but also makes it available through a global pointer + * called emberAfCurrentCommand, in app/framework/util/util.c. When command + * processing is complete, this pointer is cleared. + * + * @param cmd Ver.: always + */ +bool emberAfPreCommandReceivedCallback(EmberAfClusterCommand * cmd); + +/** @brief Pre Message Send + * + * This function is called by the framework when it is about to pass a message + * to the stack primitives for sending. This message may or may not be ZCL, + * ZDO, or some other protocol. This is called prior to + any ZigBee + * fragmentation that may be done. If the function returns true it is assumed + * the callback has consumed and processed the message. The callback must also + * set the EmberStatus status code to be passed back to the caller. The + * framework will do no further processing on the message. + If the + * function returns false then it is assumed that the callback has not processed + * the mesasge and the framework will continue to process accordingly. + * + * @param messageStruct The structure containing the parameters of the APS + * message to be sent. Ver.: always + * @param status A pointer to the status code value that will be returned to the + * caller. Ver.: always + */ +bool emberAfPreMessageSendCallback(EmberAfMessageStruct * messageStruct, EmberStatus * status); + +/** @brief Message Sent * - * Tells the system to initialize the EEPROM if it is not already initialized. + * This function is called by the application framework from the message sent + * handler, when it is informed by the stack regarding the message sent status. + * All of the values passed to the emberMessageSentHandler are passed on to this + * callback. This provides an opportunity for the application to verify that its + * message has been sent successfully and take the appropriate action. This + * callback should return a bool value of true or false. A value of true + * indicates that the message sent notification has been handled and should not + * be handled by the application framework. * + * @param type Ver.: always + * @param indexOrDestination Ver.: always + * @param apsFrame Ver.: always + * @param msgLen Ver.: always + * @param message Ver.: always + * @param status Ver.: always */ -void emberAfEepromInitCallback(void); -/** @brief Eeprom Note Initialized State +bool emberAfMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, EmberApsFrame * apsFrame, + uint16_t msgLen, uint8_t * message, EmberStatus status); + +/** @brief Pre Attribute Change * - * Records the state of the EEPROM so that an intelligent driver (like the - * EEPROM plugin) can re-initialize the driver prior to any calls to it. + * This function is called by the application framework before it changes an + * attribute value. The value passed into this callback is the value to which + * the attribute is to be set by the framework. The application should return + * ::EMBER_ZCL_STATUS_SUCCESS to permit the change or any other ::EmberAfStatus + * to reject it. * - * @param state The state of the EEPROM, false=re-initalization needed, - * true=no-re-init needed Ver.: always + * @param endpoint Ver.: always + * @param clusterId Ver.: always + * @param attributeId Ver.: always + * @param mask Ver.: always + * @param manufacturerCode Ver.: always + * @param type Ver.: always + * @param size Ver.: always + * @param value Ver.: always */ -void emberAfEepromNoteInitializedStateCallback(bool state); -/** @brief Eeprom Shutdown +EmberAfStatus emberAfPreAttributeChangeCallback(chip::EndpointId endpoint, chip::ClusterId clusterId, chip::AttributeId attributeId, + uint8_t mask, uint16_t manufacturerCode, uint8_t type, uint8_t size, + uint8_t * value); + +/** @brief Post Attribute Change * - * Tells the system to shutdown the EEPROM if it is not already shutdown. + * This function is called by the application framework after it changes an + * attribute value. The value passed into this callback is the value to which + * the attribute was set by the framework. * + * @param endpoint Ver.: always + * @param clusterId Ver.: always + * @param attributeId Ver.: always + * @param mask Ver.: always + * @param manufacturerCode Ver.: always + * @param type Ver.: always + * @param size Ver.: always + * @param value Ver.: always */ -void emberAfEepromShutdownCallback(void); -/** @brief Energy Scan Result +void emberAfPostAttributeChangeCallback(chip::EndpointId endpoint, chip::ClusterId clusterId, chip::AttributeId attributeId, + uint8_t mask, uint16_t manufacturerCode, uint8_t type, uint8_t size, uint8_t * value); + +/** @brief Read Attributes Response * - * This is called by the low-level stack code when an 802.15.4 energy scan - * completes. + * This function is called by the application framework when a Read Attributes + * Response command is received from an external device. The application should + * return true if the message was processed or false if it was not. * - * @param channel The channel where the energy scan took place. Ver.: always - * @param rssi The receive signal strength indicator for the channel. Ver.: - * always + * @param clusterId The cluster identifier of this response. Ver.: always + * @param buffer Buffer containing the list of read attribute status records. + * Ver.: always + * @param bufLen The length in bytes of the list. Ver.: always */ -void emberAfEnergyScanResultCallback(uint8_t channel, int8_t rssi); +bool emberAfReadAttributesResponseCallback(chip::ClusterId clusterId, uint8_t * buffer, uint16_t bufLen); + /** @brief External Attribute Read * * Like emberAfExternalAttributeWriteCallback above, this function is called @@ -298,9 +511,23 @@ void emberAfEnergyScanResultCallback(uint8_t channel, int8_t rssi); * @param buffer Ver.: always * @param maxReadLength Ver.: always */ -EmberAfStatus emberAfExternalAttributeReadCallback(uint8_t endpoint, EmberAfClusterId clusterId, +EmberAfStatus emberAfExternalAttributeReadCallback(chip::EndpointId endpoint, chip::ClusterId clusterId, EmberAfAttributeMetadata * attributeMetadata, uint16_t manufacturerCode, uint8_t * buffer, uint16_t maxReadLength); + +/** @brief Write Attributes Response + * + * This function is called by the application framework when a Write Attributes + * Response command is received from an external device. The application should + * return true if the message was processed or false if it was not. + * + * @param clusterId The cluster identifier of this response. Ver.: always + * @param buffer Buffer containing the list of write attribute status records. + * Ver.: always + * @param bufLen The length in bytes of the list. Ver.: always + */ +bool emberAfWriteAttributesResponseCallback(chip::ClusterId clusterId, uint8_t * buffer, uint16_t bufLen); + /** @brief External Attribute Write * * This function is called whenever the Application Framework needs to write an @@ -347,63 +574,23 @@ EmberAfStatus emberAfExternalAttributeReadCallback(uint8_t endpoint, EmberAfClus * @param manufacturerCode Ver.: always * @param buffer Ver.: always */ -EmberAfStatus emberAfExternalAttributeWriteCallback(uint8_t endpoint, EmberAfClusterId clusterId, +EmberAfStatus emberAfExternalAttributeWriteCallback(chip::EndpointId endpoint, chip::ClusterId clusterId, EmberAfAttributeMetadata * attributeMetadata, uint16_t manufacturerCode, uint8_t * buffer); -/** @brief Find Unused Pan Id And Form - * - * This function is called by the framework to search for an unused PAN id and - * form a new network. The application should return EMBER_SUCCESS if the - * operation was initiated successfully. - * - */ -EmberStatus emberAfFindUnusedPanIdAndFormCallback(void); -/** @brief Get Current App Tasks - * - * This function is only useful to sleepy end devices. This function will - * return the set of tasks the application has outstanding. These tasks affect - * how the application behaves with regard to sleeping and polling. - * - */ -EmberAfApplicationTask emberAfGetCurrentAppTasksCallback(void); -/** @brief Get Current Poll Control - * - * This function will retrieve the current poll control that the system is using - * for the current network. This is determined by examining all the scheduled - * events and obtaining the most restrictive poll control context across all - * events. The most restrictive poll control is EMBER_AF_SHORT_POLL followed by - * EMBER_AF_LONG_POLL. - * - */ -EmberAfEventPollControl emberAfGetCurrentPollControlCallback(void); -/** @brief Get Current Poll Interval Ms - * - * This function is only useful to end devices. This function will return the - * current poll interval (in milliseconds) for the current network. This - * interval is the maximum amount of time a child is currently waiting between - * polls of its parent. - * - */ -uint32_t emberAfGetCurrentPollIntervalMsCallback(void); -/** @brief Get Current Poll Interval Qs - * - * This function is only useful to end devices. This function will return the - * current poll interval (in quarter seconds) for the current network. This - * interval is the maximum amount of time a child is currently waiting between - * polls of its parent. - * - */ -uint32_t emberAfGetCurrentPollIntervalQsCallback(void); -/** @brief Get Current Sleep Control + +/** @brief Report Attributes * - * This function will retrieve the current sleep control that the system is - * using. This is determined by examining all the scheduled events and - * obtaining the most restrictive sleep control context across all events. The - * most restrictive sleep control is EMBER_AF_STAY_AWAKE followed by - * EMBER_AF_OK_TO_SLEEP. + * This function is called by the application framework when a Report Attributes + * command is received from an external device. The application should return + * true if the message was processed or false if it was not. * + * @param clusterId The cluster identifier of this command. Ver.: always + * @param buffer Buffer containing the list of attribute report records. Ver.: + * always + * @param bufLen The length in bytes of the list. Ver.: always */ -EmberAfEventSleepControl emberAfGetCurrentSleepControlCallback(void); +bool emberAfReportAttributesCallback(chip::ClusterId clusterId, uint8_t * buffer, uint16_t bufLen); + /** @brief Get Current Time * * This callback is called when device attempts to get current time from the @@ -413,57 +600,8 @@ EmberAfEventSleepControl emberAfGetCurrentSleepControlCallback(void); * that device does not have access to real time. * */ -uint32_t emberAfGetCurrentTimeCallback(void); -/** @brief Get Default Poll Control - * - * This function will retrieve the default poll control for the current network - * as previously set by emberAfSetDefaultPollControlCallback(). The default - * poll control will limit whether the network can long poll. - * - */ -EmberAfEventPollControl emberAfGetDefaultPollControlCallback(void); -/** @brief Get Default Sleep Control - * - * This function will retrieve the default sleep control the system is using as - * previously set by emberAfSetDefaultSleepControlCallback(). The default sleep - * control will limit whether the device can sleep. - * - */ -EmberAfEventSleepControl emberAfGetDefaultSleepControlCallback(void); -/** @brief Get Endpoint By Index - * - * Get the endpoint number based on the passed index. By default the framework - * handles this by managing endpoints based on the precompiled configuration - * defined in AppBuilder. This callback can override this behavior at runtime - * and provide additional endpoints or different data than the compiled values. - * If the index is overridden than the callback shall return true and set the - * endpointReturn parameter accordingly. A value of 0xFF means the endpoint - * doesn't exist at that index. - Otherwise false must be returned by the - * callback and the default framework behavior will be executed. This is only - * applicable to the SOC devices. - * - * @param index The index of the endpoint. Ver.: always - * @param endpointReturn The value of endpoint. Ver.: always - */ -bool emberAfGetEndpointByIndexCallback(uint8_t index, uint8_t * endpointReturn); -/** @brief Get Endpoint Description - * - * This callback is called by the framework whenever it receives a ZDO request - * to enumerate the details about an endpoint. By default the framework - * provides the information based on the precompiled endpoint information as - * defined in AppBuilder. This callback can override that behavior at runtime - * and return different information. If the endpoint information is being - * overridden then the callback must return true. Otherwise it should return - * false, which allows the framework to perform its default behavior. This is - * only applicable to SOC devices. - * - * @param endpoint The endpoint number that is being queried. Ver.: always - * @param result This is a pointer to a data structure where the endpoint - * information is written if the callback is providing the information. Ver.: - * always - */ -bool emberAfGetEndpointDescriptionCallback(uint8_t endpoint, EmberEndpointDescription * result); +uint32_t emberAfGetCurrentTimeCallback(); + /** @brief Get Endpoint Info * * This function is a callback to an application implemented endpoint that @@ -481,53 +619,9 @@ bool emberAfGetEndpointDescriptionCallback(uint8_t endpoint, EmberEndpointDescri * @param returnEndpointInfo A pointer to a data struct that will be written * with information about the endpoint. Ver.: always */ -bool emberAfGetEndpointInfoCallback(uint8_t endpoint, uint8_t * returnNetworkIndex, EmberAfEndpointInfoStruct * returnEndpointInfo); -/** @brief Get Form And Join Extended Pan Id - * - * This callback is called by the framework to get the extended PAN ID used by - * the current network for forming and joining. The extended PAN ID used for - * forming and joining is not necessarily the same extended PAN ID actually in - * use on the network. - * - * @param resultLocation Ver.: always - */ -void emberAfGetFormAndJoinExtendedPanIdCallback(uint8_t * resultLocation); -/** @brief Get Long Poll Interval Ms - * - * This function is only useful to end devices. This function will return the - * long poll interval (in milliseconds) for the current network. This interval - * is the maximum amount of time a child will wait between polls of its parent - * when it is not expecting data. - * - */ -uint32_t emberAfGetLongPollIntervalMsCallback(void); -/** @brief Get Long Poll Interval Qs - * - * This function is only useful to end devices. This function will return the - * long poll interval (in quarter seconds) for the current network. This - * interval is the maximum amount of time a child will wait between polls of its - * parent when it is not expecting data. - * - */ -uint32_t emberAfGetLongPollIntervalQsCallback(void); -/** @brief Get Short Poll Interval Ms - * - * This function is only useful to sleepy end devices. This function will - * return the short poll interval (in milliseconds) for the current network. - * This interval is the maximum amount of time a child will wait between polls - * of its parent when it is expecting data. - * - */ -uint16_t emberAfGetShortPollIntervalMsCallback(void); -/** @brief Get Short Poll Interval Qs - * - * This function is only useful to sleepy end devices. This function will - * return the short poll interval (in quarter seconds) for the current network. - * This interval is the maximum amount of time a child will wait between polls - * of its parent when it is expecting data. - * - */ -uint16_t emberAfGetShortPollIntervalQsCallback(void); +bool emberAfGetEndpointInfoCallback(chip::EndpointId endpoint, uint8_t * returnNetworkIndex, + EmberAfEndpointInfoStruct * returnEndpointInfo); + /** @brief Get Source Route Overhead * * This function is called by the framework to determine the overhead required @@ -536,128 +630,15 @@ uint16_t emberAfGetShortPollIntervalQsCallback(void); * @param destination The node id of the destination Ver.: always */ uint8_t emberAfGetSourceRouteOverheadCallback(EmberNodeId destination); -/** @brief Get Wake Timeout Bitmask - * - * This function is only useful to sleepy end devices. This function will - * return the wake timeout bitmask for the current network. The bitmask - * determines which tasks will timeout automatically and which tasks require - * manual removal from the task list. - * - */ -EmberAfApplicationTask emberAfGetWakeTimeoutBitmaskCallback(void); -/** @brief Get Wake Timeout Ms - * - * This function is only useful to sleepy end devices. This function will - * return the wake timeout (in milliseconds) for the current network. This - * timeout is the maximum amount of time a child will wait for a task in the - * wake bitmask to finish. While waiting, the device will short poll. - * - */ -uint16_t emberAfGetWakeTimeoutMsCallback(void); -/** @brief Get Wake Timeout Qs - * - * This function is only useful to sleepy end devices. This function will - * return the wake timeout (in quarter seconds) for the current network. This - * timeout is the maximum amount of time a child will wait for a task in the - * wake bitmask to finish. While waiting, the device will short poll. - * - */ -uint16_t emberAfGetWakeTimeoutQsCallback(void); -/** @brief Hal Button Isr - * - * This callback is called by the framework whenever a button is pressed on the - * device. This callback is called within ISR context. - * - * @param button The button which has changed state, either BUTTON0 or BUTTON1 - * as defined in the appropriate BOARD_HEADER. Ver.: always - * @param state The new state of the button referenced by the button parameter, - * either ::BUTTON_PRESSED if the button has been pressed or ::BUTTON_RELEASED - * if the button has been released. Ver.: always - */ -void emberAfHalButtonIsrCallback(uint8_t button, uint8_t state); -/** @brief Incoming Packet Filter - * - * ** REQUIRES INCLUDING THE PACKET-HANDOFF PLUGIN ** - - This is called by - * the Packet Handoff plugin when the stack receives a packet from one of the - * protocol layers specified in ::EmberZigbeePacketType. - - The packetType - * argument is one of the values of the ::EmberZigbeePacketType enum. If the - * stack receives an 802.15.4 MAC beacon, it will call this function with the - * packetType argument set to ::EMBER_ZIGBEE_PACKET_TYPE_BEACON. - The - * implementation of this callback may alter the data contained in packetData, - * modify options and flags in the auxillary data, or consume the packet itself, - * either sending the message, or discarding it as it sees fit. - * - * @param packetType the type of packet and associated protocol layer Ver.: - * always - * @param packetData flat buffer containing the packet data associated with the - * packet type Ver.: always - * @param size_p a pointer containing the size value of the packet Ver.: always - * @param data auxillary data included with the packet Ver.: always - */ -EmberPacketAction emberAfIncomingPacketFilterCallback(EmberZigbeePacketType packetType, uint8_t * packetData, uint8_t * size_p, - void * data); -/** @brief Initiate Inter Pan Key Establishment - * - * This function is called by the framework to initiate key establishment with a - * remote device on a different PAN. The application should return - * EMBER_SUCCESS if key establishment was initiated successfully. The - * application should call ::emberAfInterPanKeyEstablishmentCallback as events - * occur. - * - * @param panId The PAN id of the remote device. Ver.: always - * @param eui64 The EUI64 of the remote device. Ver.: always - */ -EmberStatus emberAfInitiateInterPanKeyEstablishmentCallback(EmberPanId panId, const EmberEUI64 eui64); -/** @brief Initiate Key Establishment - * - * This function is called by the framework to initiate key establishment with a - * remote device. The application should return EMBER_SUCCESS if key - * establishment was initiated successfully. The application should call - * ::emberAfKeyEstablishmentCallback as events occur. - * - * @param nodeId The node id of the remote device. Ver.: always - * @param endpoint The endpoint on the remote device. Ver.: always - */ -EmberStatus emberAfInitiateKeyEstablishmentCallback(EmberNodeId nodeId, uint8_t endpoint); -/** @brief Initiate Partner Link Key Exchange - * - * This function is called by the framework to initiate a partner link key - * exchange with a remote device. The application should return EMBER_SUCCESS - * if the partner link key exchange was initiated successfully. When the - * partner link key exchange completes, the application should call the given - * callback. - * - * @param target The node id of the remote device. Ver.: always - * @param endpoint The key establishment endpoint of the remote device. Ver.: - * always - * @param callback The callback that should be called when the partner link key - * exchange completse. Ver.: always - */ -EmberStatus emberAfInitiatePartnerLinkKeyExchangeCallback(EmberNodeId target, uint8_t endpoint, - EmberAfPartnerLinkKeyExchangeCallback * callback); -/** @brief Inter Pan Key Establishment +/** @brief Registration Abort * - * A callback by the key-establishment code to indicate an event has occurred. - * For error codes this is purely a notification. For non-error status codes - * (besides LINK_KEY_ESTABLISHED), it is the application's chance to allow or - * disallow the operation. If the application returns true then the key - * establishment is allowed to proceed. If it returns false, then key - * establishment is aborted. LINK_KEY_ESTABLISHED is a notification of success. + * This callback is called when the device should abort the registration + * process. * - * @param status Ver.: always - * @param amInitiator Ver.: always - * @param panId Ver.: always - * @param eui64 Ver.: always - * @param delayInSeconds Ver.: always */ -bool emberAfInterPanKeyEstablishmentCallback(EmberAfKeyEstablishmentNotifyMessage status, bool amInitiator, EmberPanId panId, - const EmberEUI64 eui64, uint8_t delayInSeconds); +void emberAfRegistrationAbortCallback(); + /** @brief Interpan Send Message * * This function will send a raw MAC message with interpan frame format using @@ -669,23058 +650,11 @@ bool emberAfInterPanKeyEstablishmentCallback(EmberAfKeyEstablishmentNotifyMessag * @param message The message data received or to send. Ver.: always */ EmberStatus emberAfInterpanSendMessageCallback(EmberAfInterpanHeader * header, uint16_t messageLength, uint8_t * message); -/** @brief Key Establishment - * - * A callback by the key-establishment code to indicate an event has occurred. - * For error codes this is purely a notification. For non-error status codes - * (besides LINK_KEY_ESTABLISHED), it is the application's chance to allow or - * disallow the operation. If the application returns true then the key - * establishment is allowed to proceed. If it returns false, then key - * establishment is aborted. LINK_KEY_ESTABLISHED is a notification of success. - * - * @param status Ver.: always - * @param amInitiator Ver.: always - * @param partnerShortId Ver.: always - * @param delayInSeconds Ver.: always - */ -bool emberAfKeyEstablishmentCallback(EmberAfKeyEstablishmentNotifyMessage status, bool amInitiator, EmberNodeId partnerShortId, - uint8_t delayInSeconds); -/** @brief Main Init - * - * This function is called from the application's main function. It gives the - * application a chance to do any initialization required at system startup. Any - * code that you would normally put into the top of the application's main() - * routine should be put into this function. This is called before the clusters, - * plugins, and the network are initialized so some functionality is not yet - * available. - Note: No callback in the Application Framework is - * associated with resource cleanup. If you are implementing your application on - * a Unix host where resource cleanup is a consideration, we expect that you - * will use the standard Posix system calls, including the use of atexit() and - * handlers for signals such as SIGTERM, SIGINT, SIGCHLD, SIGPIPE and so on. If - * you use the signal() function to register your signal handler, please mind - * the returned value which may be an Application Framework function. If the - * return value is non-null, please make sure that you call the returned - * function from your handler to avoid negating the resource cleanup of the - * Application Framework itself. - * - */ -void emberAfMainInitCallback(void); -/** @brief Main Start - * - * This function is called at the start of main after the HAL has been - * initialized. The standard main function arguments of argc and argv are - * passed in. However not all platforms have support for main() function - * arguments. Those that do not are passed NULL for argv, therefore argv should - * be checked for NULL before using it. If the callback determines that the - * program must exit, it should return true. The value returned by main() will - * be the value written to the returnCode pointer. Otherwise the callback - * should return false to let normal execution continue. - * - * @param returnCode Ver.: always - * @param argc Ver.: always - * @param argv Ver.: always - */ -bool emberAfMainStartCallback(int * returnCode, int argc, char ** argv); -/** @brief Main Tick - * - * Whenever main application tick is called, this callback will be called at the - * end of the main tick execution. - * - */ -void emberAfMainTickCallback(void); -/** @brief Mark Buffers - * - * This function is called when the garbage collector runs. Any buffers held by - * the application must be marked. - * - */ -void emberAfMarkBuffersCallback(void); -/** @brief Message Sent - * - * This function is called by the application framework from the message sent - * handler, when it is informed by the stack regarding the message sent status. - * All of the values passed to the emberMessageSentHandler are passed on to this - * callback. This provides an opportunity for the application to verify that its - * message has been sent successfully and take the appropriate action. This - * callback should return a bool value of true or false. A value of true - * indicates that the message sent notification has been handled and should not - * be handled by the application framework. - * - * @param type Ver.: always - * @param indexOrDestination Ver.: always - * @param apsFrame Ver.: always - * @param msgLen Ver.: always - * @param message Ver.: always - * @param status Ver.: always - */ -bool emberAfMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, EmberApsFrame * apsFrame, - uint16_t msgLen, uint8_t * message, EmberStatus status); -/** @brief Ncp Init - * - * This function is called when the network coprocessor is being initialized, - * either at startup or upon reset. It provides applications on opportunity to - * perform additional configuration of the NCP. The function is always called - * twice when the NCP is initialized. In the first invocation, memoryAllocation - * will be true and the application should only issue EZSP commands that affect - * memory allocation on the NCP. For example, tables on the NCP can be resized - * in the first call. In the second invocation, memoryAllocation will be false - * and the application should only issue EZSP commands that do not affect memory - * allocation. For example, tables on the NCP can be populated in the second - * call. This callback is not called on SoCs. - * - * @param memoryAllocation Ver.: always - */ -void emberAfNcpInitCallback(bool memoryAllocation); -/** @brief Ncp Is Awake Isr - * - * This function is called IN ISR CONTEXT. It notes that the NCP is awake after - * sleeping. Care should be taken to do minimal processing in this ISR handler - * function. - * - */ -void emberAfNcpIsAwakeIsrCallback(void); -/** @brief Network Found - * - * This callback is generated when an active scan finds a 802.15.4 network. - * - * @param networkFound A struct containing information about the network found. - * Ver.: always - * @param lqi The link quality indication of the network found. Ver.: always - * @param rssi The received signal strength indication of the network found. - * Ver.: always - */ -void emberAfNetworkFoundCallback(EmberZigbeeNetwork * networkFound, uint8_t lqi, int8_t rssi); -/** @brief Network Key Update Complete - * - * This is called by the framework when a network key update operation started - * by the trust center is complete. - * - * @param status Ver.: always - */ -void emberAfNetworkKeyUpdateCompleteCallback(EmberStatus status); -/** @brief Ota Bootload - * - * The platform specific routine to bootload the device from a ZigBee - * over-the-air upgrade file. - * - * @param id A pointer to the structure that contains the information about what - * OTA image to bootload. Ver.: always - * @param ncpUpgradeTagId The tag ID of the upgrade data that will be used to - * bootload the device. Ver.: always - */ -uint8_t emberAfOtaBootloadCallback(const EmberAfOtaImageId * id, uint16_t ncpUpgradeTagId); -/** @brief Ota Client Bootload - * - * This callback is fired when the OTA Client recevies a command to bootload the - * newly downloaded OTA image. This callback will perform the platform specific - * to bootload their device. - * - * @param id This is the identifier relating to the image that has been - * downloaded and is ready for bootload. Ver.: always - */ -void emberAfOtaClientBootloadCallback(const EmberAfOtaImageId * id); -/** @brief Ota Client Custom Verify - * - * This callback is executed by the OTA client after the signature verification - * has successfully completed. It allows the device to do its own custom - * verification of the image (such as verifying that the EBL is intact). - * - * @param newVerification This indicates if a new verification should be - * started. Ver.: always - * @param id This is ID of the image to be verified. Ver.: always - */ -EmberAfImageVerifyStatus emberAfOtaClientCustomVerifyCallback(bool newVerification, const EmberAfOtaImageId * id); -/** @brief Ota Client Download Complete - * - * This callback indicates that the OTA client has completed the download of a - * file. If the file has been completely downloaded and cryptographic checks - * have been turned on, then those will be performed prior to this callback and - * that outcome included in the 'success' result. On failure, this callback is - * merely informative, and the return type is ignored. On succesful download, - * this callback allows the client to perform any additional verification of the - * downloaded image and return that result to the OTA server. - * - * @param success This indicates the success or failure of the download and - * cryptographic verification process (if applicable). Ver.: always - * @param id This is the image identifier information that corresponds to the - * download result. Ver.: always - */ -bool emberAfOtaClientDownloadCompleteCallback(EmberAfOtaDownloadResult success, const EmberAfOtaImageId * id); -/** @brief Ota Client Incoming Message Raw - * - * This callback is for processing incoming messages for the Over-the-air - * bootload cluster client. ZCL will not process the message and instead hand - * the raw over the air data to the callback for its own processing. - * - * @param message A pointer to the structure containing the message buffer and - * other information about it. Ver.: always - */ -bool emberAfOtaClientIncomingMessageRawCallback(EmberAfClusterCommand * message); -/** @brief Ota Client Start - * - * This callback should be called when the profile specific registration has - * completed successfully. It will start the client's state machine that will - * find the OTA server, query it for the next image, download the image, wait - * for the bootload message, and kick off the bootload. - * - */ -void emberAfOtaClientStartCallback(void); -/** @brief Ota Client Version Info - * - * This function is called by the OTA client when a new query will occur to the - * server asking what the next version of firmware is. The client can inform - * the cluster software as to what information to use in the query (and - * subsequent download). - * - * @param currentImageInfo This is the information to use in the next query by - * the client cluster code. It contains the manufacturer ID, image type ID, and - * the firmware version to be specified in the query message sent to the server. - * Ver.: always - * @param hardwareVersion This is a pointer to the hardware version to use in - * the query. If no hardware version should be used, then - * EMBER_AF_INVALID_HARDWARE_VERSION should be used. Ver.: always - */ -void emberAfOtaClientVersionInfoCallback(EmberAfOtaImageId * currentImageInfo, uint16_t * hardwareVersion); -/** @brief Ota Page Request Server Policy - * - * This callback is called by the OTA server page request code when it wants to - * determine if it is allowed for an OTA client to make a page request. It is - * only called if page request support has been enabled on the server. It - * should return EMBER_ZCL_STATUS_SUCCESS if it allows the page request, and - * EMBER_ZCL_STATUS_UNSUP_CLUSTER_COMMAND if it does not want to allow it. - * - */ -uint8_t emberAfOtaPageRequestServerPolicyCallback(void); -/** @brief Ota Server Block Size - * - * This function provides a way for the server to adjust the block size of its - * response to an Image block request by a client. - * - * @param clientNodeId The node Id of OTA client making an image block request. - * Ver.: always - */ -uint8_t emberAfOtaServerBlockSizeCallback(EmberNodeId clientNodeId); -/** @brief Ota Server Incoming Message Raw - * - * This callback is for processing incoming messages for the Over-the-air - * bootload cluster server. ZCL will not process the message and instead hand - * the raw over the air data to the callback for its own processing. - * - * @param message A pointer to the structure containing the message buffer and - * other information about it. Ver.: always - */ -bool emberAfOtaServerIncomingMessageRawCallback(EmberAfClusterCommand * message); -/** @brief Ota Server Query - * - * This callback is fired when the OTA server receives a query request by the - * client. The callback lets the server application indicate to the client what - * the 'next' version of software is for the device, or if there is not one - * available. - * - * @param currentImageId This is the current software image that the client - * hase. Ver.: always - * @param hardwareVersion If this value is non-NULL, it indicates the hardware - * version of the client device. If NULL, the client did not specify a hardware - * version. Ver.: always - * @param nextUpgradeImageId This is a pointer to a data structure containing - * the 'next' software version for the client to download. Ver.: always - */ -uint8_t emberAfOtaServerQueryCallback(const EmberAfOtaImageId * currentImageId, uint16_t * hardwareVersion, - EmberAfOtaImageId * nextUpgradeImageId); -/** @brief Ota Server Send Image Notify - * - * This callback is an indication to the OTA server that it should send out - * notification about an OTA file that is available for download. - * - * @param dest The destination of the image notify message. May be a broadcast - * address. Ver.: always - * @param endpoint The destination endpoint of the image notify message. May be - * a broadcast endpoint. Ver.: always - * @param payloadType The type of data the image notify message will contain. 0 - * = no data. 1 = Manufacturer ID. 2 = Manufacturer ID and the image type ID. - * 3 = Manufacturer ID, image type ID, and firmware version. Ver.: always - * @param queryJitter The percentage of nodes that should respond to this - * message, from 1-100. On receipt of this message, each recipient will - * randomly choose a percentage and only query the server if their percentage is - * below this value. Ver.: always - * @param id The image information that will be put in the message. The data - * within this struct that will be appended to the message is determined by the - * previous 'payloadType' argument. Ver.: always - */ -bool emberAfOtaServerSendImageNotifyCallback(EmberNodeId dest, uint8_t endpoint, uint8_t payloadType, uint8_t queryJitter, - const EmberAfOtaImageId * id); -/** @brief Ota Server Upgrade End Request - * - * This function is called when the OTA server receives a request an upgrade end - * request. If the request indicated a successful download by the client, the - * server must tell the client when and if to upgrade to the downloaded image. - * - * @param source The node ID of the device that sent the upgrade end request. - * Ver.: always - * @param status This is the ZCL status sent by the client indicating the result - * of its attempt to download the new upgrade image. If the status is not - * EMBER_ZCL_STATUS_SUCCESS then this callback is merely informative and no - * response mesasge will be generated by the server. Ver.: always - * @param returnValue If the server returns true indicating that the client - * should apply the upgrade, this time value indicates when in the future the - * client should apply the upgrade. Ver.: always - * @param imageId This variable indicates the software version that the client - * successfully downloaded and is asking to upgrade to. Ver.: always - */ -bool emberAfOtaServerUpgradeEndRequestCallback(EmberNodeId source, uint8_t status, uint32_t * returnValue, - const EmberAfOtaImageId * imageId); -/** @brief Ota Storage Check Temp Data - * - * This callback will validate temporary data in the storage device to determine - * whether it is a complete file, a partially downloaded file, or there is no - * file present. When a complete or partial file is found it will return - * EMBER_AF_OTA_STORAGE_SUCCESS or EMBER_AF_OTA_STORAGE_PARTIAL_FILE_FOUND, - * respectively. In that case, the currentOffset, totalImageSize, and - * newFileInfo will be populated with data. When EMBER_AF_OTA_STORAGE_ERROR is - * returned, no temporary data is present. - * - * @param currentOffset A pointer to a value that will be written with the - * offset within the total file size that has been successfully stored in the - * storage device. This will indicate how much data has been currently - * dowloaded. Ver.: always - * @param totalImageSize A pointer to a value that will be written with the - * total image size of the OTA file when a download has completed. This does - * not indicate how much data has actually been downloaded currently. Ver.: - * always - * @param newFileInfo This is the image id of the temporary file data stored in - * the storage device. Ver.: always - */ -EmberAfOtaStorageStatus emberAfOtaStorageCheckTempDataCallback(uint32_t * currentOffset, uint32_t * totalImageSize, - EmberAfOtaImageId * newFileInfo); -/** @brief Ota Storage Clear Temp Data - * - * This function clears any existing temp data that was downloaed. It is used - * immediately prior to downloading a raw image over the air. - * - */ -EmberAfOtaStorageStatus emberAfOtaStorageClearTempDataCallback(void); -/** @brief Ota Storage Close - * - * This callback shuts down the ZigBee Over-the-air storage module. - * - */ -void emberAfOtaStorageCloseCallback(void); -/** @brief Ota Storage Driver Download Finish - * - * This callback defines the low-level means by which a device records the final - * offset value of the download image. - * - * @param offset The value of the final offset of the image download. Ver.: - * always - */ -void emberAfOtaStorageDriverDownloadFinishCallback(uint32_t offset); -/** @brief Ota Storage Driver Init - * - * The initialization code for the OTA storage driver. - * - */ -bool emberAfOtaStorageDriverInitCallback(void); -/** @brief Ota Storage Driver Invalidate Image - * - * This callback invalidates the image stored on disk so that it will not be - * bootloaded, and it will not be a valid image that is in the middle of - * downloading. - * - */ -EmberAfOtaStorageStatus emberAfOtaStorageDriverInvalidateImageCallback(void); -/** @brief Ota Storage Driver Prepare To Resume Download - * - * This callback allows the underlying storage driver to prepare to resume the - * OTA file download. For example, the driver may exceute a page erase to - * insure the next page is ready to be written to. - * - */ -EmberAfOtaStorageStatus emberAfOtaStorageDriverPrepareToResumeDownloadCallback(void); -/** @brief Ota Storage Driver Read - * - * This callback defines the low-level means by which a device reads from the - * OTA storage device. - * - * @param offset The address offset from the start of the storage device where - * data is to be read. Ver.: always - * @param length The length of the data to be read from the storage device. - * Ver.: always - * @param returnData A pointer where the data read from the device should be - * written to. Ver.: always - */ -bool emberAfOtaStorageDriverReadCallback(uint32_t offset, uint32_t length, uint8_t * returnData); -/** @brief Ota Storage Driver Retrieve Last Stored Offset - * - * This callback defines the low-level means by which a device retrieves the - * last persistently recorded download offset. This may be different than last - * actual download offset. - * - */ -uint32_t emberAfOtaStorageDriverRetrieveLastStoredOffsetCallback(void); -/** @brief Ota Storage Driver Write - * - * This callback defines the low-level means by which a device reads from the - * OTA storage device. - * - * @param dataToWrite A pointer to the data that will be written to the storage - * device. Ver.: always - * @param offset The address offset from the start of the storage device where - * data will be written. Ver.: always - * @param length The length of the data to be written to the storage device. - * Ver.: always - */ -bool emberAfOtaStorageDriverWriteCallback(const uint8_t * dataToWrite, uint32_t offset, uint32_t length); -/** @brief Ota Storage Finish Download - * - * This function indicates to the storage module that the download has finished. - * - * @param offset The final offset of the downloaded file (i.e. the total size) - * Ver.: always - */ -EmberAfOtaStorageStatus emberAfOtaStorageFinishDownloadCallback(uint32_t offset); -/** @brief Ota Storage Get Count - * - * This callback returns the total number of ZigBee Over-the-air upgrade images - * stored in the storage module. - * - */ -uint8_t emberAfOtaStorageGetCountCallback(void); -/** @brief Ota Storage Get Full Header - * - * This callback populates the EmberAfOtaHeader structure pointed to by the - * returnData with data about the OTA file stored in the storage module. - * - * @param id This is a pointer to the image id for the OTA file to retrieve - * information about. Ver.: always - * @param returnData This is a pointer to the location of the structure that - * will be populated with data. Ver.: always - */ -EmberAfOtaStorageStatus emberAfOtaStorageGetFullHeaderCallback(const EmberAfOtaImageId * id, EmberAfOtaHeader * returnData); -/** @brief Ota Storage Get Total Image Size - * - * This function returns the total size of the ZigBee Over-the-air file with the - * passed parameters. If no file is found with those parameters, 0 is returned. - * - * @param id A pointer to the image identifier for the OTA file to retrieve - * information for. Ver.: always - */ -uint32_t emberAfOtaStorageGetTotalImageSizeCallback(const EmberAfOtaImageId * id); -/** @brief Ota Storage Init - * - * This callback initializes the ZigBee Over-the-air storage module. - * - */ -EmberAfOtaStorageStatus emberAfOtaStorageInitCallback(void); -/** @brief Ota Storage Iterator First - * - * This callback lets you walk through the list of all OTA files by jumping to - * the first file in the list maintained by the storage module. If there is no - * file then emberAfOtaInvalidImageId is returned. - * - */ -EmberAfOtaImageId emberAfOtaStorageIteratorFirstCallback(void); -/** @brief Ota Storage Iterator Next - * - * This callback lets you walk through the list of all OTA files by jumping to - * the next file in the list maintained by the storage module. If there is no - * next file then emberAfOtaInvalidImageId is returned. - * - */ -EmberAfOtaImageId emberAfOtaStorageIteratorNextCallback(void); -/** @brief Ota Storage Read Image Data - * - * This callback reads data from the specified OTA file and returns that data to - * the caller. - * - * @param id This is a pointer to the image id for the OTA file to retrieve data - * from. Ver.: always - * @param offset This is the offset relative to the start of the image where the - * data should be read from. Ver.: always - * @param length This is the length of data that will be read. Ver.: always - * @param returnData This is a pointer to where the data read out of the file - * will be written to Ver.: always - * @param returnedLength This is a pointer to a variable where the actual length - * of data read will be written to. A short read may occur if the end of file - * was reached. Ver.: always - */ -EmberAfOtaStorageStatus emberAfOtaStorageReadImageDataCallback(const EmberAfOtaImageId * id, uint32_t offset, uint32_t length, - uint8_t * returnData, uint32_t * returnedLength); -/** @brief Ota Storage Search - * - * This callback searches through the list of all images for one that matches - * the passed parameters. On success an image identifier is returned with a - * matching image. On failure emberAfInvalidImageId is returned. - * - * @param manufacturerId The ZigBee assigned identifier of the manufacturer - * contained in the OTA image being searched for. Ver.: always - * @param imageTypeId The image type identifier contained in the OTA image being - * searched for. Ver.: always - * @param hardwareVersion This is a pointer to the hardware version that will be - * used in the search. If the pointer is NULL, hardware version will not be - * considered when searching for matching images. If it points to a value, the - * search will only consider images where that value falls between the minimum - * and maxmimum hardware version specified in the OTA file. If no hardware - * version is present in an OTA file but the other parameters match, the file - * will be considered a match Ver.: always - */ -EmberAfOtaImageId emberAfOtaStorageSearchCallback(uint16_t manufacturerId, uint16_t imageTypeId, const uint16_t * hardwareVersion); -/** @brief Ota Storage Write Temp Data + +/** @brief Start Move * - * This function writes to the temporary data in the storage device at the - * specified offset. It is used when downloading a raw image over the air. + * This function is called to initiate the process for a device to move (rejoin) + * to a new parent. * - * @param offset The location within the download image file where to write the - * data. Ver.: always - * @param length The length of data to write. Ver.: always - * @param data A pointer to the temporary data that will be written to the - * storage device. Ver.: always */ -EmberAfOtaStorageStatus emberAfOtaStorageWriteTempDataCallback(uint32_t offset, uint32_t length, const uint8_t * data); -/** @brief Outgoing Packet Filter - * - * ** REQUIRES INCLUDING THE PACKET-HANDOFF PLUGIN ** - - This is called by - * the Packet Handoff plugin when the stack prepares to send a packet from one - * of the protocol layers specified in ::EmberZigbeePacketType. - - The - * packetType argument is one of the values of the ::EmberZigbeePacketType enum. - * If the stack receives an 802.15.4 MAC beacon, it will call this function with - * the packetType argument set to ::EMBER_ZIGBEE_PACKET_TYPE_BEACON. - - - * The implementation of this callback may alter the data contained in - * packetData, modify options and flags in the auxillary data, or consume the - * packet itself, either sending the message, or discarding it as it sees fit. - * - * @param packetType the type of packet and associated protocol layer Ver.: - * always - * @param packetData flat buffer containing the packet data associated with the - * packet type Ver.: always - * @param size_p a pointer containing the size value of the packet Ver.: always - * @param data auxillary data included with the packet Ver.: always - */ -EmberPacketAction emberAfOutgoingPacketFilterCallback(EmberZigbeePacketType packetType, uint8_t * packetData, uint8_t * size_p, - void * data); -/** @brief Partner Link Key Exchange Request - * - * This function is called by the framework on SOC platforms when a remote node - * requests a partner link key exchange. The application should return - * EMBER_SUCCESS to accept the request or any other status to reject it. On - * network coprocessor platforms, this function will not be called because the - * NCP handles partner link key exchange requests based on the binding policy. - * - * @param partner The EUI of the remote node. Ver.: always - */ -EmberZdoStatus emberAfPartnerLinkKeyExchangeRequestCallback(EmberEUI64 partner); -/** @brief Partner Link Key Exchange Response - * - * This function is called by the framework when a remote node requests a - * partner link key exchange. The application should return true to accept the - * request or false to reject it. On network coprocessor platforms, this - * function will not be called because the NCP handles partner link key exchange - * requests based on the binding policy. - * - * @param sender The EUI of the remote node. Ver.: always - * @param status The ZDO response status. Ver.: always - */ -void emberAfPartnerLinkKeyExchangeResponseCallback(EmberNodeId sender, EmberZdoStatus status); -/** @brief Performing Key Establishment - * - * This function is called by the framework to determine if the device is - * performing key establishment. The application should return true if key - * establishment is in progress. - * - */ -bool emberAfPerformingKeyEstablishmentCallback(void); -/** @brief Post Attribute Change - * - * This function is called by the application framework after it changes an - * attribute value. The value passed into this callback is the value to which - * the attribute was set by the framework. - * - * @param endpoint Ver.: always - * @param clusterId Ver.: always - * @param attributeId Ver.: always - * @param mask Ver.: always - * @param manufacturerCode Ver.: always - * @param type Ver.: always - * @param size Ver.: always - * @param value Ver.: always - */ -void emberAfPostAttributeChangeCallback(uint8_t endpoint, EmberAfClusterId clusterId, EmberAfAttributeId attributeId, uint8_t mask, - uint16_t manufacturerCode, uint8_t type, uint8_t size, uint8_t * value); -/** @brief Post Em4 Reset - * - * A callback called by application framework, and implemented by em4 plugin - * - */ -void emberAfPostEm4ResetCallback(void); -/** @brief Pre Attribute Change - * - * This function is called by the application framework before it changes an - * attribute value. The value passed into this callback is the value to which - * the attribute is to be set by the framework. The application should return - * ::EMBER_ZCL_STATUS_SUCCESS to permit the change or any other ::EmberAfStatus - * to reject it. - * - * @param endpoint Ver.: always - * @param clusterId Ver.: always - * @param attributeId Ver.: always - * @param mask Ver.: always - * @param manufacturerCode Ver.: always - * @param type Ver.: always - * @param size Ver.: always - * @param value Ver.: always - */ -EmberAfStatus emberAfPreAttributeChangeCallback(uint8_t endpoint, EmberAfClusterId clusterId, EmberAfAttributeId attributeId, - uint8_t mask, uint16_t manufacturerCode, uint8_t type, uint8_t size, - uint8_t * value); -/** @brief Pre Cli Send - * - * This function is called by the framework when it is about to pass a message - * constructed over CLI to the stack primitives for sending. If the function - * returns true it is assumed that the callback has consumed and processed the - * message. The framework will not do any further processing on the message. - - * If the function returns false then it is assumed that the callback has - * not processed the message and the framework will continue to process - * accordingly. - * - * @param apsFrame The structure containing the APS frame Ver.: always - * @param source Source Node Id Ver.: always - * @param destination Destintion Node Id Ver.: always - * @param message Pointer to the message payload Ver.: always - * @param messageLength Length of the message payload Ver.: always - */ -bool emberAfPreCliSendCallback(EmberApsFrame * apsFrame, EmberNodeId source, EmberNodeId destination, uint8_t * message, - uint16_t messageLength); -/** @brief Pre Command Received - * - * This callback is the second in the Application Framework's message processing - * chain. At this point in the processing of incoming over-the-air messages, the - * application has determined that the incoming message is a ZCL command. It - * parses enough of the message to populate an EmberAfClusterCommand struct. The - * Application Framework defines this struct value in a local scope to the - * command processing but also makes it available through a global pointer - * called emberAfCurrentCommand, in app/framework/util/util.c. When command - * processing is complete, this pointer is cleared. - * - * @param cmd Ver.: always - */ -bool emberAfPreCommandReceivedCallback(EmberAfClusterCommand * cmd); -/** @brief Pre Message Received - * - * This callback is the first in the Application Framework's message processing - * chain. The Application Framework calls it when a message has been received - * over the air but has not yet been parsed by the ZCL command-handling code. If - * you wish to parse some messages that are completely outside the ZCL - * specification or are not handled by the Application Framework's command - * handling code, you should intercept them for parsing in this callback. - - * This callback returns a Boolean value indicating whether or not the message - * has been handled. If the callback returns a value of true, then the - * Application Framework assumes that the message has been handled and it does - * nothing else with it. If the callback returns a value of false, then the - * application framework continues to process the message as it would with any - * incoming message. - Note: This callback receives a pointer to an - * incoming message struct. This struct allows the application framework to - * provide a unified interface between both Host devices, which receive their - * message through the ezspIncomingMessageHandler, and SoC devices, which - * receive their message through emberIncomingMessageHandler. - * - * @param incomingMessage Ver.: always - */ -bool emberAfPreMessageReceivedCallback(EmberAfIncomingMessage * incomingMessage); -/** @brief Pre Message Send - * - * This function is called by the framework when it is about to pass a message - * to the stack primitives for sending. This message may or may not be ZCL, - * ZDO, or some other protocol. This is called prior to - any ZigBee - * fragmentation that may be done. If the function returns true it is assumed - * the callback has consumed and processed the message. The callback must also - * set the EmberStatus status code to be passed back to the caller. The - * framework will do no further processing on the message. - If the - * function returns false then it is assumed that the callback has not processed - * the mesasge and the framework will continue to process accordingly. - * - * @param messageStruct The structure containing the parameters of the APS - * message to be sent. Ver.: always - * @param status A pointer to the status code value that will be returned to the - * caller. Ver.: always - */ -bool emberAfPreMessageSendCallback(EmberAfMessageStruct * messageStruct, EmberStatus * status); -/** @brief Pre Ncp Reset - * - * This function will be called prior to the reset of the NCP by the host. - * - */ -void emberAfPreNcpResetCallback(void); -/** @brief Pre ZDO Message Received - * - * This function passes the application an incoming ZDO message and gives the - * appictation the opportunity to handle it. By default, this callback returns - * false indicating that the incoming ZDO message has not been handled and - * should be handled by the Application Framework. - * - * @param emberNodeId Ver.: always - * @param apsFrame Ver.: always - * @param message Ver.: always - * @param length Ver.: always - */ -bool emberAfPreZDOMessageReceivedCallback(EmberNodeId emberNodeId, EmberApsFrame * apsFrame, uint8_t * message, uint16_t length); -/** @brief Read Attributes Response - * - * This function is called by the application framework when a Read Attributes - * Response command is received from an external device. The application should - * return true if the message was processed or false if it was not. - * - * @param clusterId The cluster identifier of this response. Ver.: always - * @param buffer Buffer containing the list of read attribute status records. - * Ver.: always - * @param bufLen The length in bytes of the list. Ver.: always - */ -bool emberAfReadAttributesResponseCallback(EmberAfClusterId clusterId, uint8_t * buffer, uint16_t bufLen); -/** @brief Read Reporting Configuration Command - * - * This function is called by the application framework when a Read Reporting - * Configuration command is received from an external device. The application - * should return true if the message was processed or false if it was not. - * - * @param cmd Ver.: always - */ -bool emberAfReadReportingConfigurationCommandCallback(const EmberAfClusterCommand * cmd); -/** @brief Read Reporting Configuration Response - * - * This function is called by the application framework when a Read Reporting - * Configuration Response command is received from an external device. The - * application should return true if the message was processed or false if it - * was not. - * - * @param clusterId The cluster identifier of this response. Ver.: always - * @param buffer Buffer containing the list of attribute reporting configuration - * records. Ver.: always - * @param bufLen The length in bytes of the list. Ver.: always - */ -bool emberAfReadReportingConfigurationResponseCallback(EmberAfClusterId clusterId, uint8_t * buffer, uint16_t bufLen); -/** @brief Registration Abort - * - * This callback is called when the device should abort the registration - * process. - * - */ -void emberAfRegistrationAbortCallback(void); -/** @brief Registration - * - * This callback is called when the device joins a network and the process of - * registration is complete. This callback provides a success value of true if - * the registration process was successful and a value of false if registration - * failed. - * - * @param success true if registration succeeded, false otherwise. Ver.: always - */ -void emberAfRegistrationCallback(bool success); -/** @brief Registration Start - * - * This callback is called when the device joins a network and the registration - * process should begin. The application should return EMBER_SUCCESS if the - * registration process started successfully. When registration is complete, - * the application should call emberAfRegistrationCallback with an indication of - * success or failure. - * - */ -EmberStatus emberAfRegistrationStartCallback(void); -/** @brief Remote Delete Binding Permission - * - * This function is called by the framework to request permission to service the - * remote delete binding request. Return EMBER_SUCCESS to allow request, - * anything else to disallow request. - * - * @param index index to an Ember binding table entry Ver.: always - */ -EmberStatus emberAfRemoteDeleteBindingPermissionCallback(uint8_t index); -/** @brief Remote Set Binding Permission - * - * This function is called by the framework to request permission to service the - * remote set binding request. Return EMBER_SUCCESS to allow request, anything - * else to disallow request. - * - * @param entry Ember Binding Tablet Entry Ver.: always - */ -EmberStatus emberAfRemoteSetBindingPermissionCallback(const EmberBindingTableEntry * entry); -/** @brief Remove From Current App Tasks - * - * This function is only useful to sleepy end devices. This function will - * remove the passed item from the set of tasks the application has outstanding - * (e.g. message sent requiring APS acknwoledgement). This will affect how the - * application behaves with regard to sleeping and polling. Removing the item - * from the list of outstanding tasks may allow the device to sleep longer and - * poll less frequently. If there are other outstanding tasks the system may - * still have to stay away and poll more often. - * - * @param tasks Ver.: always - */ -void emberAfRemoveFromCurrentAppTasksCallback(EmberAfApplicationTask tasks); -/** @brief Report Attributes - * - * This function is called by the application framework when a Report Attributes - * command is received from an external device. The application should return - * true if the message was processed or false if it was not. - * - * @param clusterId The cluster identifier of this command. Ver.: always - * @param buffer Buffer containing the list of attribute report records. Ver.: - * always - * @param bufLen The length in bytes of the list. Ver.: always - */ -bool emberAfReportAttributesCallback(EmberAfClusterId clusterId, uint8_t * buffer, uint16_t bufLen); -/** @brief Reporting Attribute Change - * - * This function is called by the framework when an attribute managed by the - * framework changes. The application should call this function when an - * externally-managed attribute changes. The application should use the change - * notification to inform its reporting decisions. - * - * @param endpoint Ver.: always - * @param clusterId Ver.: always - * @param attributeId Ver.: always - * @param mask Ver.: always - * @param manufacturerCode Ver.: always - * @param type Ver.: always - * @param data Ver.: always - */ -void emberAfReportingAttributeChangeCallback(uint8_t endpoint, EmberAfClusterId clusterId, EmberAfAttributeId attributeId, - uint8_t mask, uint16_t manufacturerCode, EmberAfAttributeType type, uint8_t * data); -/** @brief Scan Complete - * - * This is called by the low-level stack code when an 802.15.4 active scan - * completes. - * - * @param channel If the status indicates an error, the channel on which the - * error occurred. Otherwise it is undefined for EMBER_SUCCESS. Ver.: always - * @param status The status of the scan. Ver.: always - */ -void emberAfScanCompleteCallback(uint8_t channel, EmberStatus status); -/** @brief Scan Error - * - * This is called by the framework on behalf of the form-and-join library to - * notify the application if an error occurs while scanning. See form-and-join - * documentation for more information. - * - * @param status The status of the scan. Ver.: always - */ -void emberAfScanErrorCallback(EmberStatus status); -/** @brief Security Init - * - * This callback is called by the framework to give the application a chance to - * modify the security settings of the node during network initialization. - * Depending on the context when this callback is called, the pointer to the - * initial security state may be NULL, which means the initial security state - * can no longer be modified as the node is already operating on the network. - * - * @param state Ver.: always - * @param extended Ver.: always - * @param trustCenter Ver.: always - */ -void emberAfSecurityInitCallback(EmberInitialSecurityState * state, EmberExtendedSecurityBitmask * extended, bool trustCenter); -/** @brief Set Default Poll Control - * - * This function will set the default poll control for the current network to - * control whether or not it can long poll. - * - * @param control Ver.: always - */ -void emberAfSetDefaultPollControlCallback(EmberAfEventPollControl control); -/** @brief Set Default Sleep Control - * - * This function will set the default behavior of a sleeping device to control - * whether or not it must stay awake. A device that stays awake does not sleep - * at all. Otherwise, the device can sleep between events when appropriate. - * - * @param control Ver.: always - */ -void emberAfSetDefaultSleepControlCallback(EmberAfEventSleepControl control); -/** @brief Set Form And Join Extended Pan Id - * - * This callback is called by the framework to set the extended PAN ID used by - * the current network for forming and joining. The extended PAN ID used for - * forming and joining is not necessarily the same extended PAN ID actually in - * use on the network. - * - * @param extendedPanId Ver.: always - */ -void emberAfSetFormAndJoinExtendedPanIdCallback(const uint8_t * extendedPanId); -/** @brief Set Long Poll Interval Ms - * - * This function is only useful to end devices. This function will set the long - * poll interval (in milliseconds) for the current network. This interval is - * the maximum amount of time a child will wait between polls of its parent when - * it is not expecting data. - * - * @param longPollIntervalMs Ver.: always - */ -void emberAfSetLongPollIntervalMsCallback(uint32_t longPollIntervalMs); -/** @brief Set Long Poll Interval Qs - * - * This function is only useful to end devices. This function will set the long - * poll interval (in quarter seconds) for the current network. This interval is - * the maximum amount of time a child will wait between polls of its parent when - * it is not expecting data. - * - * @param longPollIntervalQs Ver.: always - */ -void emberAfSetLongPollIntervalQsCallback(uint32_t longPollIntervalQs); -/** @brief Set Short Poll Interval Ms - * - * This function is only useful to sleepy end devices. This function will set - * the short poll interval (in milliseconds) for the current network. This - * interval is the maximum amount of time a child will wait between polls of its - * parent when it is expecting data. - * - * @param shortPollIntervalMs Ver.: always - */ -void emberAfSetShortPollIntervalMsCallback(uint16_t shortPollIntervalMs); -/** @brief Set Short Poll Interval Qs - * - * This function is only useful to sleepy end devices. This function will set - * the short poll interval (in quarter seconds) for the current network. This - * interval is the maximum amount of time a child will wait between polls of its - * parent when it is expecting data. - * - * @param shortPollIntervalQs Ver.: always - */ -void emberAfSetShortPollIntervalQsCallback(uint16_t shortPollIntervalQs); -/** @brief Set Source Route Overhead - * - * This function is called by the framework when it has information about the - * source route overhead to a particular destination. The application may use - * this information to cache the source route overhead. - * - * @param destination The node id of the destination Ver.: always - * @param overhead The overhead in bytes Ver.: always - */ -void emberAfSetSourceRouteOverheadCallback(EmberNodeId destination, uint8_t overhead); -/** @brief Set Time - * - * This callback should be implemented, if the device has access to real time - * clock, and has an ability to update that clock. The application framework - * expects to be passed the utcTime which is the number of seconds since the - * year 2000. Default implementation does nothing. Note: This function used to - * take time in year, month, day, hour, min, sec. We have changed this to - * utcTime in order to conserve code space. - * - * @param utcTime Ver.: always - */ -void emberAfSetTimeCallback(uint32_t utcTime); -/** @brief Set Wake Timeout Bitmask - * - * This function is only useful to sleepy end devices. This function will set - * the wake timeout bitmask for the current network. The bitmask determines - * which tasks will timeout automatically and which tasks require manual removal - * from the task list. - * - * @param tasks Ver.: always - */ -void emberAfSetWakeTimeoutBitmaskCallback(EmberAfApplicationTask tasks); -/** @brief Set Wake Timeout Ms - * - * This function is only useful to sleepy end devices. This function will set - * the wake timeout (in milliseconds) for the current network. This timeout is - * the maximum amount of time a child will wait for a task in the wake bitmask - * to finish. While waiting, the device will short poll. - * - * @param wakeTimeoutMs Ver.: always - */ -void emberAfSetWakeTimeoutMsCallback(uint16_t wakeTimeoutMs); -/** @brief Set Wake Timeout Qs - * - * This function is only useful to sleepy end devices. This function will set - * the wake timeout (in quarter seconds) for the current network. This timeout - * is the maximum amount of time a child will wait for a task in the wake - * bitmask to finish. While waiting, the device will short poll. - * - * @param wakeTimeoutQs Ver.: always - */ -void emberAfSetWakeTimeoutQsCallback(uint16_t wakeTimeoutQs); -/** @brief Stack Status - * - * This function is called by the application framework from the stack status - * handler. This callbacks provides applications an opportunity to be notified - * of changes to the stack status and take appropriate action. The return code - * from this callback is ignored by the framework. The framework will always - * process the stack status after the callback returns. - * - * @param status Ver.: always - */ -bool emberAfStackStatusCallback(EmberStatus status); -/** @brief Start Move - * - * This function is called to initiate the process for a device to move (rejoin) - * to a new parent. - * - */ -bool emberAfStartMoveCallback(void); -/** @brief Start Search For Joinable Network - * - * This function is called by the framework to search for joinable networks and - * join a network. The application should return EMBER_SUCCESS if the operation - * was initiated successfully. - * - */ -EmberStatus emberAfStartSearchForJoinableNetworkCallback(void); -/** @brief Stop Move - * - * This function is called to cancel a previously scheduled move (rejoin) to a - * new parent. - * - */ -void emberAfStopMoveCallback(void); -/** @brief Trust Center Join - * - * This callback is called from within the application framework's - * implementation of emberTrustCenterJoinHandler or ezspTrustCenterJoinHandler. - * This callback provides the same arguments passed to the - * TrustCenterJoinHandler. For more information about the TrustCenterJoinHandler - * please see documentation included in stack/include/trust-center.h. - * - * @param newNodeId Ver.: always - * @param newNodeEui64 Ver.: always - * @param parentOfNewNode Ver.: always - * @param status Ver.: always - * @param decision Ver.: always - */ -void emberAfTrustCenterJoinCallback(EmberNodeId newNodeId, EmberEUI64 newNodeEui64, EmberNodeId parentOfNewNode, - EmberDeviceUpdate status, EmberJoinDecision decision); -/** @brief Trust Center Keepalive Abort - * - * This callback is called when the device should abort the trust center - * keepalive process. - * - */ -void emberAfTrustCenterKeepaliveAbortCallback(void); -/** @brief Trust Center Keepalive Update - * - * This callback is called when the device finishes registration (successfully - * or otherwise) and the trust center keepalive process must be updated. If the - * keepalive process has not been started, then it is started. Otherwise if the - * keepalive is in the process of searching for the TC, it will process the - * result of that Trust Center search operation. - * - * @param registrationComplete Ver.: always - */ -void emberAfTrustCenterKeepaliveUpdateCallback(bool registrationComplete); -/** @brief Unused Pan Id Found - * - * This is called by the framework on behalf of the form-and-join library to - * notify the application of the PAN id and channel found following a call to - * ::emberScanForUnusedPanId(). See form-and-join documentation for more - * information. - * - * @param panId Ver.: always - * @param channel Ver.: always - */ -void emberAfUnusedPanIdFoundCallback(EmberPanId panId, uint8_t channel); -/** @brief Write Attributes Response - * - * This function is called by the application framework when a Write Attributes - * Response command is received from an external device. The application should - * return true if the message was processed or false if it was not. - * - * @param clusterId The cluster identifier of this response. Ver.: always - * @param buffer Buffer containing the list of write attribute status records. - * Ver.: always - * @param bufLen The length in bytes of the list. Ver.: always - */ -bool emberAfWriteAttributesResponseCallback(EmberAfClusterId clusterId, uint8_t * buffer, uint16_t bufLen); -/** @brief Zigbee Key Establishment - * - * A callback to the application to notify it of the status of the request for a - * Link Key. - * - * @param partner partner The IEEE address of the partner device. Or all zeros - * if the Key establishment failed. Ver.: always - * @param status The status of the key establishment. Ver.: always - */ -void emberAfZigbeeKeyEstablishmentCallback(EmberEUI64 partner, EmberKeyStatus status); -/** @} END Non-Cluster Related Callbacks */ - -/** @name Basic Cluster Callbacks */ -// @{ - -/** @brief Basic Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfBasicClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Basic Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfBasicClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Basic Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfBasicClusterClientInitCallback(uint8_t endpoint); -/** @brief Basic Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfBasicClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Basic Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfBasicClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, EmberStatus status); -/** @brief Basic Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfBasicClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Basic Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfBasicClusterClientTickCallback(uint8_t endpoint); -/** @brief Basic Cluster Get Locales Supported - * - * - * - * @param startLocale Ver.: always - * @param maxLocalesRequested Ver.: always - */ -bool emberAfBasicClusterGetLocalesSupportedCallback(uint8_t * startLocale, uint8_t maxLocalesRequested); -/** @brief Basic Cluster Get Locales Supported Response - * - * - * - * @param discoveryComplete Ver.: always - * @param localeSupported Ver.: always - */ -bool emberAfBasicClusterGetLocalesSupportedResponseCallback(uint8_t discoveryComplete, uint8_t * localeSupported); -/** @brief Basic Cluster Reset To Factory Defaults - * - * - * - */ -bool emberAfBasicClusterResetToFactoryDefaultsCallback(void); -/** @brief Basic Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfBasicClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Basic Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfBasicClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Basic Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfBasicClusterServerInitCallback(uint8_t endpoint); -/** @brief Basic Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfBasicClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Basic Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfBasicClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, EmberStatus status); -/** @brief Basic Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfBasicClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Basic Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfBasicClusterServerTickCallback(uint8_t endpoint); - -/** @} END Basic Cluster Callbacks */ - -/** @name Power Configuration Cluster Callbacks */ -// @{ - -/** @brief Power Configuration Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfPowerConfigClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Power Configuration Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfPowerConfigClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Power Configuration Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfPowerConfigClusterClientInitCallback(uint8_t endpoint); -/** @brief Power Configuration Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfPowerConfigClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Power Configuration Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfPowerConfigClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Power Configuration Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfPowerConfigClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Power Configuration Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfPowerConfigClusterClientTickCallback(uint8_t endpoint); -/** @brief Power Configuration Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfPowerConfigClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Power Configuration Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfPowerConfigClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Power Configuration Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfPowerConfigClusterServerInitCallback(uint8_t endpoint); -/** @brief Power Configuration Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfPowerConfigClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Power Configuration Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfPowerConfigClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Power Configuration Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfPowerConfigClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Power Configuration Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfPowerConfigClusterServerTickCallback(uint8_t endpoint); - -/** @} END Power Configuration Cluster Callbacks */ - -/** @name Device Temperature Configuration Cluster Callbacks */ -// @{ - -/** @brief Device Temperature Configuration Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfDeviceTempClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Device Temperature Configuration Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfDeviceTempClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Device Temperature Configuration Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfDeviceTempClusterClientInitCallback(uint8_t endpoint); -/** @brief Device Temperature Configuration Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfDeviceTempClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Device Temperature Configuration Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfDeviceTempClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Device Temperature Configuration Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfDeviceTempClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Device Temperature Configuration Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfDeviceTempClusterClientTickCallback(uint8_t endpoint); -/** @brief Device Temperature Configuration Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfDeviceTempClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Device Temperature Configuration Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfDeviceTempClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Device Temperature Configuration Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfDeviceTempClusterServerInitCallback(uint8_t endpoint); -/** @brief Device Temperature Configuration Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfDeviceTempClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Device Temperature Configuration Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfDeviceTempClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Device Temperature Configuration Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfDeviceTempClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Device Temperature Configuration Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfDeviceTempClusterServerTickCallback(uint8_t endpoint); - -/** @} END Device Temperature Configuration Cluster Callbacks */ - -/** @name Identify Cluster Callbacks */ -// @{ - -/** @brief Identify Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfIdentifyClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Identify Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfIdentifyClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Identify Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfIdentifyClusterClientInitCallback(uint8_t endpoint); -/** @brief Identify Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfIdentifyClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Identify Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfIdentifyClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Identify Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfIdentifyClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Identify Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfIdentifyClusterClientTickCallback(uint8_t endpoint); -/** @brief Identify Cluster E Z Mode Invoke - * - * - * - * @param action Ver.: always - */ -bool emberAfIdentifyClusterEZModeInvokeCallback(uint8_t action); -/** @brief Identify Cluster Identify - * - * - * - * @param identifyTime Ver.: always - */ -bool emberAfIdentifyClusterIdentifyCallback(uint16_t identifyTime); -/** @brief Identify Cluster Identify Query - * - * - * - */ -bool emberAfIdentifyClusterIdentifyQueryCallback(void); -/** @brief Identify Cluster Identify Query Response - * - * - * - * @param timeout Ver.: always - */ -bool emberAfIdentifyClusterIdentifyQueryResponseCallback(uint16_t timeout); -/** @brief Identify Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfIdentifyClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Identify Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfIdentifyClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Identify Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfIdentifyClusterServerInitCallback(uint8_t endpoint); -/** @brief Identify Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfIdentifyClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Identify Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfIdentifyClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Identify Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfIdentifyClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Identify Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfIdentifyClusterServerTickCallback(uint8_t endpoint); -/** @brief Identify Cluster Trigger Effect - * - * - * - * @param effectId Ver.: always - * @param effectVariant Ver.: always - */ -bool emberAfIdentifyClusterTriggerEffectCallback(uint8_t effectId, uint8_t effectVariant); -/** @brief Identify Cluster Update Commission State - * - * - * - * @param action Ver.: always - * @param commissionStateMask Ver.: always - */ -bool emberAfIdentifyClusterUpdateCommissionStateCallback(uint8_t action, uint8_t commissionStateMask); - -/** @} END Identify Cluster Callbacks */ - -/** @name Groups Cluster Callbacks */ -// @{ - -/** @brief Groups Cluster Clear Group Table - * - * This function is called by the framework when the application should clear - * the group table. - * - * @param endpoint The endpoint. Ver.: always - */ -void emberAfGroupsClusterClearGroupTableCallback(uint8_t endpoint); -/** @brief Groups Cluster Endpoint In Group - * - * This function is called by the framework when it needs to determine if an - * endpoint is a member of a group. The application should return true if the - * endpoint is a member of the group and false otherwise. - * - * @param endpoint The endpoint. Ver.: always - * @param groupId The group identifier. Ver.: always - */ -bool emberAfGroupsClusterEndpointInGroupCallback(uint8_t endpoint, uint16_t groupId); -/** @brief Groups Cluster Add Group - * - * - * - * @param groupId Ver.: always - * @param groupName Ver.: always - */ -bool emberAfGroupsClusterAddGroupCallback(uint16_t groupId, uint8_t * groupName); -/** @brief Groups Cluster Add Group If Identifying - * - * - * - * @param groupId Ver.: always - * @param groupName Ver.: always - */ -bool emberAfGroupsClusterAddGroupIfIdentifyingCallback(uint16_t groupId, uint8_t * groupName); -/** @brief Groups Cluster Add Group Response - * - * - * - * @param status Ver.: always - * @param groupId Ver.: always - */ -bool emberAfGroupsClusterAddGroupResponseCallback(uint8_t status, uint16_t groupId); -/** @brief Groups Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfGroupsClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Groups Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfGroupsClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Groups Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfGroupsClusterClientInitCallback(uint8_t endpoint); -/** @brief Groups Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfGroupsClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Groups Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfGroupsClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Groups Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfGroupsClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Groups Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfGroupsClusterClientTickCallback(uint8_t endpoint); -/** @brief Groups Cluster Get Group Membership - * - * - * - * @param groupCount Ver.: always - * @param groupList Ver.: always - */ -bool emberAfGroupsClusterGetGroupMembershipCallback(uint8_t groupCount, uint8_t * groupList); -/** @brief Groups Cluster Get Group Membership Response - * - * - * - * @param capacity Ver.: always - * @param groupCount Ver.: always - * @param groupList Ver.: always - */ -bool emberAfGroupsClusterGetGroupMembershipResponseCallback(uint8_t capacity, uint8_t groupCount, uint8_t * groupList); -/** @brief Groups Cluster Remove All Groups - * - * - * - */ -bool emberAfGroupsClusterRemoveAllGroupsCallback(void); -/** @brief Groups Cluster Remove Group - * - * - * - * @param groupId Ver.: always - */ -bool emberAfGroupsClusterRemoveGroupCallback(uint16_t groupId); -/** @brief Groups Cluster Remove Group Response - * - * - * - * @param status Ver.: always - * @param groupId Ver.: always - */ -bool emberAfGroupsClusterRemoveGroupResponseCallback(uint8_t status, uint16_t groupId); -/** @brief Groups Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfGroupsClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Groups Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfGroupsClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Groups Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfGroupsClusterServerInitCallback(uint8_t endpoint); -/** @brief Groups Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfGroupsClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Groups Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfGroupsClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Groups Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfGroupsClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Groups Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfGroupsClusterServerTickCallback(uint8_t endpoint); -/** @brief Groups Cluster View Group - * - * - * - * @param groupId Ver.: always - */ -bool emberAfGroupsClusterViewGroupCallback(uint16_t groupId); -/** @brief Groups Cluster View Group Response - * - * - * - * @param status Ver.: always - * @param groupId Ver.: always - * @param groupName Ver.: always - */ -bool emberAfGroupsClusterViewGroupResponseCallback(uint8_t status, uint16_t groupId, uint8_t * groupName); - -/** @} END Groups Cluster Callbacks */ - -/** @name Scenes Cluster Callbacks */ -// @{ - -/** @brief Scenes Cluster ClearSceneTable - * - * This function is called by the framework when the application should clear - * the scene table. - * - * @param endpoint The endpoint. Ver.: always - */ -void emberAfScenesClusterClearSceneTableCallback(uint8_t endpoint); -/** @brief Scenes Cluster Make Invalid - * - * This function is called to invalidate the valid attribute in the Scenes - * cluster. - * - * @param endpoint Ver.: always - */ -EmberAfStatus emberAfScenesClusterMakeInvalidCallback(uint8_t endpoint); -/** @brief Scenes Cluster Recall Saved Scene - * - * This function is called by the framework when the application should recall a - * saved scene. - * - * @param endpoint The endpoint. Ver.: always - * @param groupId The group identifier. Ver.: always - * @param sceneId The scene identifier. Ver.: always - */ -EmberAfStatus emberAfScenesClusterRecallSavedSceneCallback(uint8_t endpoint, uint16_t groupId, uint8_t sceneId); -/** @brief Scenes Cluster Remove Scenes In Group - * - * This function removes the scenes from a specified group. - * - * @param endpoint Endpoint Ver.: always - * @param groupId Group ID Ver.: always - */ -void emberAfScenesClusterRemoveScenesInGroupCallback(uint8_t endpoint, uint16_t groupId); -/** @brief Scenes Cluster Add Scene - * - * - * - * @param groupId Ver.: always - * @param sceneId Ver.: always - * @param transitionTime Ver.: always - * @param sceneName Ver.: always - * @param extensionFieldSets Ver.: always - */ -bool emberAfScenesClusterAddSceneCallback(uint16_t groupId, uint8_t sceneId, uint16_t transitionTime, uint8_t * sceneName, - uint8_t * extensionFieldSets); -/** @brief Scenes Cluster Add Scene Response - * - * - * - * @param status Ver.: always - * @param groupId Ver.: always - * @param sceneId Ver.: always - */ -bool emberAfScenesClusterAddSceneResponseCallback(uint8_t status, uint16_t groupId, uint8_t sceneId); -/** @brief Scenes Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfScenesClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Scenes Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfScenesClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Scenes Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfScenesClusterClientInitCallback(uint8_t endpoint); -/** @brief Scenes Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfScenesClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Scenes Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfScenesClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Scenes Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfScenesClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Scenes Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfScenesClusterClientTickCallback(uint8_t endpoint); -/** @brief Scenes Cluster Copy Scene - * - * - * - * @param mode Ver.: always - * @param groupIdFrom Ver.: always - * @param sceneIdFrom Ver.: always - * @param groupIdTo Ver.: always - * @param sceneIdTo Ver.: always - */ -bool emberAfScenesClusterCopySceneCallback(uint8_t mode, uint16_t groupIdFrom, uint8_t sceneIdFrom, uint16_t groupIdTo, - uint8_t sceneIdTo); -/** @brief Scenes Cluster Copy Scene Response - * - * - * - * @param status Ver.: always - * @param groupIdFrom Ver.: always - * @param sceneIdFrom Ver.: always - */ -bool emberAfScenesClusterCopySceneResponseCallback(uint8_t status, uint16_t groupIdFrom, uint8_t sceneIdFrom); -/** @brief Scenes Cluster Enhanced Add Scene - * - * - * - * @param groupId Ver.: always - * @param sceneId Ver.: always - * @param transitionTime Ver.: always - * @param sceneName Ver.: always - * @param extensionFieldSets Ver.: always - */ -bool emberAfScenesClusterEnhancedAddSceneCallback(uint16_t groupId, uint8_t sceneId, uint16_t transitionTime, uint8_t * sceneName, - uint8_t * extensionFieldSets); -/** @brief Scenes Cluster Enhanced Add Scene Response - * - * - * - * @param status Ver.: always - * @param groupId Ver.: always - * @param sceneId Ver.: always - */ -bool emberAfScenesClusterEnhancedAddSceneResponseCallback(uint8_t status, uint16_t groupId, uint8_t sceneId); -/** @brief Scenes Cluster Enhanced View Scene - * - * - * - * @param groupId Ver.: always - * @param sceneId Ver.: always - */ -bool emberAfScenesClusterEnhancedViewSceneCallback(uint16_t groupId, uint8_t sceneId); -/** @brief Scenes Cluster Enhanced View Scene Response - * - * - * - * @param status Ver.: always - * @param groupId Ver.: always - * @param sceneId Ver.: always - * @param transitionTime Ver.: always - * @param sceneName Ver.: always - * @param extensionFieldSets Ver.: always - */ -bool emberAfScenesClusterEnhancedViewSceneResponseCallback(uint8_t status, uint16_t groupId, uint8_t sceneId, - uint16_t transitionTime, uint8_t * sceneName, - uint8_t * extensionFieldSets); -/** @brief Scenes Cluster Get Scene Membership - * - * - * - * @param groupId Ver.: always - */ -bool emberAfScenesClusterGetSceneMembershipCallback(uint16_t groupId); -/** @brief Scenes Cluster Get Scene Membership Response - * - * - * - * @param status Ver.: always - * @param capacity Ver.: always - * @param groupId Ver.: always - * @param sceneCount Ver.: always - * @param sceneList Ver.: always - */ -bool emberAfScenesClusterGetSceneMembershipResponseCallback(uint8_t status, uint8_t capacity, uint16_t groupId, uint8_t sceneCount, - uint8_t * sceneList); -/** @brief Scenes Cluster Recall Scene - * - * - * - * @param groupId Ver.: always - * @param sceneId Ver.: always - * @param transitionTime Ver.: since zcl-7.0-07-5123-07 - */ -bool emberAfScenesClusterRecallSceneCallback(uint16_t groupId, uint8_t sceneId, uint16_t transitionTime); -/** @brief Scenes Cluster Remove All Scenes - * - * - * - * @param groupId Ver.: always - */ -bool emberAfScenesClusterRemoveAllScenesCallback(uint16_t groupId); -/** @brief Scenes Cluster Remove All Scenes Response - * - * - * - * @param status Ver.: always - * @param groupId Ver.: always - */ -bool emberAfScenesClusterRemoveAllScenesResponseCallback(uint8_t status, uint16_t groupId); -/** @brief Scenes Cluster Remove Scene - * - * - * - * @param groupId Ver.: always - * @param sceneId Ver.: always - */ -bool emberAfScenesClusterRemoveSceneCallback(uint16_t groupId, uint8_t sceneId); -/** @brief Scenes Cluster Remove Scene Response - * - * - * - * @param status Ver.: always - * @param groupId Ver.: always - * @param sceneId Ver.: always - */ -bool emberAfScenesClusterRemoveSceneResponseCallback(uint8_t status, uint16_t groupId, uint8_t sceneId); -/** @brief Scenes Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfScenesClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Scenes Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfScenesClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Scenes Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfScenesClusterServerInitCallback(uint8_t endpoint); -/** @brief Scenes Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfScenesClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Scenes Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfScenesClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Scenes Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfScenesClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Scenes Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfScenesClusterServerTickCallback(uint8_t endpoint); -/** @brief Scenes Cluster Store Scene - * - * - * - * @param groupId Ver.: always - * @param sceneId Ver.: always - */ -bool emberAfScenesClusterStoreSceneCallback(uint16_t groupId, uint8_t sceneId); -/** @brief Scenes Cluster Store Scene Response - * - * - * - * @param status Ver.: always - * @param groupId Ver.: always - * @param sceneId Ver.: always - */ -bool emberAfScenesClusterStoreSceneResponseCallback(uint8_t status, uint16_t groupId, uint8_t sceneId); -/** @brief Scenes Cluster View Scene - * - * - * - * @param groupId Ver.: always - * @param sceneId Ver.: always - */ -bool emberAfScenesClusterViewSceneCallback(uint16_t groupId, uint8_t sceneId); -/** @brief Scenes Cluster View Scene Response - * - * - * - * @param status Ver.: always - * @param groupId Ver.: always - * @param sceneId Ver.: always - * @param transitionTime Ver.: always - * @param sceneName Ver.: always - * @param extensionFieldSets Ver.: always - */ -bool emberAfScenesClusterViewSceneResponseCallback(uint8_t status, uint16_t groupId, uint8_t sceneId, uint16_t transitionTime, - uint8_t * sceneName, uint8_t * extensionFieldSets); -/** @brief Scenes Cluster Store Current Scene - * - * This function is called by the framework when the application should store - * the current scene. If an entry already exists in the scene table with the - * same scene and group ids, the application should update the entry with the - * current scene. Otherwise, a new entry should be adde to the scene table, if - * possible. - * - * @param endpoint The endpoint. Ver.: always - * @param groupId The group identifier. Ver.: always - * @param sceneId The scene identifier. Ver.: always - */ -EmberAfStatus emberAfScenesClusterStoreCurrentSceneCallback(uint8_t endpoint, uint16_t groupId, uint8_t sceneId); - -/** @} END Scenes Cluster Callbacks */ - -/** @name On/off Cluster Callbacks */ -// @{ - -/** @brief On/off Cluster Level Control Effect - * - * This is called by the framework when the on/off cluster initiates a command - * that must effect a level control change. The implementation assumes that the - * client will handle any effect on the On/Off Cluster. - * - * @param endpoint Ver.: always - * @param newValue Ver.: always - */ -void emberAfOnOffClusterLevelControlEffectCallback(uint8_t endpoint, bool newValue); -/** @brief On/off Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfOnOffClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief On/off Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfOnOffClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief On/off Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfOnOffClusterClientInitCallback(uint8_t endpoint); -/** @brief On/off Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfOnOffClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief On/off Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfOnOffClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, EmberStatus status); -/** @brief On/off Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfOnOffClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief On/off Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfOnOffClusterClientTickCallback(uint8_t endpoint); -/** @brief On/off Cluster Off - * - * - * - */ -bool emberAfOnOffClusterOffCallback(void); -/** @brief On/off Cluster Off With Effect - * - * - * - * @param effectId Ver.: always - * @param effectVariant Ver.: always - */ -bool emberAfOnOffClusterOffWithEffectCallback(uint8_t effectId, uint8_t effectVariant); -/** @brief On/off Cluster On - * - * - * - */ -bool emberAfOnOffClusterOnCallback(void); -/** @brief On/off Cluster On With Recall Global Scene - * - * - * - */ -bool emberAfOnOffClusterOnWithRecallGlobalSceneCallback(void); -/** @brief On/off Cluster On With Timed Off - * - * - * - * @param onOffControl Ver.: always - * @param onTime Ver.: always - * @param offWaitTime Ver.: always - */ -bool emberAfOnOffClusterOnWithTimedOffCallback(uint8_t onOffControl, uint16_t onTime, uint16_t offWaitTime); -/** @brief On/off Cluster Sample Mfg Specific Off With Transition - * - * - * - */ -bool emberAfOnOffClusterSampleMfgSpecificOffWithTransitionCallback(void); -/** @brief On/off Cluster Sample Mfg Specific On With Transition2 - * - * - * - */ -bool emberAfOnOffClusterSampleMfgSpecificOnWithTransition2Callback(void); -/** @brief On/off Cluster Sample Mfg Specific On With Transition - * - * - * - */ -bool emberAfOnOffClusterSampleMfgSpecificOnWithTransitionCallback(void); -/** @brief On/off Cluster Sample Mfg Specific Toggle With Transition2 - * - * - * - */ -bool emberAfOnOffClusterSampleMfgSpecificToggleWithTransition2Callback(void); -/** @brief On/off Cluster Sample Mfg Specific Toggle With Transition - * - * - * - */ -bool emberAfOnOffClusterSampleMfgSpecificToggleWithTransitionCallback(void); -/** @brief On/off Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfOnOffClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief On/off Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfOnOffClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief On/off Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfOnOffClusterServerInitCallback(uint8_t endpoint); -/** @brief On/off Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfOnOffClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief On/off Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfOnOffClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, EmberStatus status); -/** @brief On/off Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfOnOffClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief On/off Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfOnOffClusterServerTickCallback(uint8_t endpoint); -/** @brief On/off Cluster Toggle - * - * - * - */ -bool emberAfOnOffClusterToggleCallback(void); -/** @brief On/off Cluster Set Value - * - * This function is called when the on/off value needs to be set, either through - * normal channels or as a result of a level change. - * - * @param endpoint Ver.: always - * @param command Ver.: always - * @param initiatedByLevelChange Ver.: always - */ -EmberAfStatus emberAfOnOffClusterSetValueCallback(uint8_t endpoint, uint8_t command, bool initiatedByLevelChange); - -/** @} END On/off Cluster Callbacks */ - -/** @name On/off Switch Configuration Cluster Callbacks */ -// @{ - -/** @brief On/off Switch Configuration Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfOnOffSwitchConfigClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief On/off Switch Configuration Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfOnOffSwitchConfigClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief On/off Switch Configuration Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfOnOffSwitchConfigClusterClientInitCallback(uint8_t endpoint); -/** @brief On/off Switch Configuration Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfOnOffSwitchConfigClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief On/off Switch Configuration Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfOnOffSwitchConfigClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief On/off Switch Configuration Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfOnOffSwitchConfigClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief On/off Switch Configuration Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfOnOffSwitchConfigClusterClientTickCallback(uint8_t endpoint); -/** @brief On/off Switch Configuration Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfOnOffSwitchConfigClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief On/off Switch Configuration Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfOnOffSwitchConfigClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief On/off Switch Configuration Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfOnOffSwitchConfigClusterServerInitCallback(uint8_t endpoint); -/** @brief On/off Switch Configuration Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfOnOffSwitchConfigClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief On/off Switch Configuration Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfOnOffSwitchConfigClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief On/off Switch Configuration Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfOnOffSwitchConfigClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief On/off Switch Configuration Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfOnOffSwitchConfigClusterServerTickCallback(uint8_t endpoint); - -/** @} END On/off Switch Configuration Cluster Callbacks */ - -/** @name Level Control Cluster Callbacks */ -// @{ - -/** @brief Level Control Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfLevelControlClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Level Control Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfLevelControlClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Level Control Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfLevelControlClusterClientInitCallback(uint8_t endpoint); -/** @brief Level Control Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfLevelControlClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Level Control Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfLevelControlClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Level Control Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfLevelControlClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Level Control Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfLevelControlClusterClientTickCallback(uint8_t endpoint); -/** @brief Level Control Cluster Move - * - * - * - * @param moveMode Ver.: always - * @param rate Ver.: always - * @param optionMask Ver.: since zcl6-errata-14-0129-15 - * @param optionOverride Ver.: since zcl6-errata-14-0129-15 - */ -bool emberAfLevelControlClusterMoveCallback(uint8_t moveMode, uint8_t rate, uint8_t optionMask, uint8_t optionOverride); -/** @brief Level Control Cluster Move To Level - * - * - * - * @param level Ver.: always - * @param transitionTime Ver.: always - * @param optionMask Ver.: since zcl6-errata-14-0129-15 - * @param optionOverride Ver.: since zcl6-errata-14-0129-15 - */ -bool emberAfLevelControlClusterMoveToLevelCallback(uint8_t level, uint16_t transitionTime, uint8_t optionMask, - uint8_t optionOverride); -/** @brief Level Control Cluster Move To Level With On Off - * - * - * - * @param level Ver.: always - * @param transitionTime Ver.: always - */ -bool emberAfLevelControlClusterMoveToLevelWithOnOffCallback(uint8_t level, uint16_t transitionTime); -/** @brief Level Control Cluster Move With On Off - * - * - * - * @param moveMode Ver.: always - * @param rate Ver.: always - */ -bool emberAfLevelControlClusterMoveWithOnOffCallback(uint8_t moveMode, uint8_t rate); -/** @brief Level Control Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfLevelControlClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Level Control Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfLevelControlClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Level Control Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfLevelControlClusterServerInitCallback(uint8_t endpoint); -/** @brief Level Control Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfLevelControlClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Level Control Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfLevelControlClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Level Control Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfLevelControlClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Level Control Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfLevelControlClusterServerTickCallback(uint8_t endpoint); -/** @brief Level Control Cluster Step - * - * - * - * @param stepMode Ver.: always - * @param stepSize Ver.: always - * @param transitionTime Ver.: always - * @param optionMask Ver.: since zcl6-errata-14-0129-15 - * @param optionOverride Ver.: since zcl6-errata-14-0129-15 - */ -bool emberAfLevelControlClusterStepCallback(uint8_t stepMode, uint8_t stepSize, uint16_t transitionTime, uint8_t optionMask, - uint8_t optionOverride); -/** @brief Level Control Cluster Step With On Off - * - * - * - * @param stepMode Ver.: always - * @param stepSize Ver.: always - * @param transitionTime Ver.: always - */ -bool emberAfLevelControlClusterStepWithOnOffCallback(uint8_t stepMode, uint8_t stepSize, uint16_t transitionTime); -/** @brief Level Control Cluster Stop - * - * - * - * @param optionMask Ver.: since zcl6-errata-14-0129-15 - * @param optionOverride Ver.: since zcl6-errata-14-0129-15 - */ -bool emberAfLevelControlClusterStopCallback(uint8_t optionMask, uint8_t optionOverride); -/** @brief Level Control Cluster Stop With On Off - * - * - * - */ -bool emberAfLevelControlClusterStopWithOnOffCallback(void); - -/** @} END Level Control Cluster Callbacks */ - -/** @name Alarms Cluster Callbacks */ -// @{ - -/** @brief Alarms Cluster Alarm - * - * - * - * @param alarmCode Ver.: always - * @param clusterId Ver.: always - */ -bool emberAfAlarmClusterAlarmCallback(uint8_t alarmCode, uint16_t clusterId); -/** @brief Alarms Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfAlarmClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Alarms Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfAlarmClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Alarms Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfAlarmClusterClientInitCallback(uint8_t endpoint); -/** @brief Alarms Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfAlarmClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Alarms Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfAlarmClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, EmberStatus status); -/** @brief Alarms Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfAlarmClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Alarms Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfAlarmClusterClientTickCallback(uint8_t endpoint); -/** @brief Alarms Cluster Get Alarm - * - * - * - */ -bool emberAfAlarmClusterGetAlarmCallback(void); -/** @brief Alarms Cluster Get Alarm Response - * - * - * - * @param status Ver.: always - * @param alarmCode Ver.: always - * @param clusterId Ver.: always - * @param timeStamp Ver.: always - */ -bool emberAfAlarmClusterGetAlarmResponseCallback(uint8_t status, uint8_t alarmCode, uint16_t clusterId, uint32_t timeStamp); -/** @brief Alarms Cluster Reset Alarm - * - * - * - * @param alarmCode Ver.: always - * @param clusterId Ver.: always - */ -bool emberAfAlarmClusterResetAlarmCallback(uint8_t alarmCode, uint16_t clusterId); -/** @brief Alarms Cluster Reset Alarm Log - * - * - * - */ -bool emberAfAlarmClusterResetAlarmLogCallback(void); -/** @brief Alarms Cluster Reset All Alarms - * - * - * - */ -bool emberAfAlarmClusterResetAllAlarmsCallback(void); -/** @brief Alarms Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfAlarmClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Alarms Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfAlarmClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Alarms Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfAlarmClusterServerInitCallback(uint8_t endpoint); -/** @brief Alarms Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfAlarmClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Alarms Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfAlarmClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, EmberStatus status); -/** @brief Alarms Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfAlarmClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Alarms Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfAlarmClusterServerTickCallback(uint8_t endpoint); - -/** @} END Alarms Cluster Callbacks */ - -/** @name Time Cluster Callbacks */ -// @{ - -/** @brief Time Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfTimeClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Time Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfTimeClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Time Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfTimeClusterClientInitCallback(uint8_t endpoint); -/** @brief Time Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfTimeClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Time Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfTimeClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, EmberStatus status); -/** @brief Time Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfTimeClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Time Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfTimeClusterClientTickCallback(uint8_t endpoint); -/** @brief Time Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfTimeClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Time Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfTimeClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Time Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfTimeClusterServerInitCallback(uint8_t endpoint); -/** @brief Time Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfTimeClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Time Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfTimeClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, EmberStatus status); -/** @brief Time Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfTimeClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Time Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfTimeClusterServerTickCallback(uint8_t endpoint); - -/** @} END Time Cluster Callbacks */ - -/** @name RSSI Location Cluster Callbacks */ -// @{ - -/** @brief RSSI Location Cluster Anchor Node Announce - * - * - * - * @param anchorNodeIeeeAddress Ver.: always - * @param coordinate1 Ver.: always - * @param coordinate2 Ver.: always - * @param coordinate3 Ver.: always - */ -bool emberAfRssiLocationClusterAnchorNodeAnnounceCallback(uint8_t * anchorNodeIeeeAddress, int16_t coordinate1, int16_t coordinate2, - int16_t coordinate3); -/** @brief RSSI Location Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfRssiLocationClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief RSSI Location Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfRssiLocationClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief RSSI Location Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfRssiLocationClusterClientInitCallback(uint8_t endpoint); -/** @brief RSSI Location Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfRssiLocationClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief RSSI Location Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfRssiLocationClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief RSSI Location Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfRssiLocationClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief RSSI Location Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfRssiLocationClusterClientTickCallback(uint8_t endpoint); -/** @brief RSSI Location Cluster Compact Location Data Notification - * - * - * - * @param locationType Ver.: always - * @param coordinate1 Ver.: always - * @param coordinate2 Ver.: always - * @param coordinate3 Ver.: always - * @param qualityMeasure Ver.: always - * @param locationAge Ver.: always - */ -bool emberAfRssiLocationClusterCompactLocationDataNotificationCallback(uint8_t locationType, int16_t coordinate1, - int16_t coordinate2, int16_t coordinate3, - uint8_t qualityMeasure, uint16_t locationAge); -/** @brief RSSI Location Cluster Device Configuration Response - * - * - * - * @param status Ver.: always - * @param power Ver.: always - * @param pathLossExponent Ver.: always - * @param calculationPeriod Ver.: always - * @param numberRssiMeasurements Ver.: always - * @param reportingPeriod Ver.: always - */ -bool emberAfRssiLocationClusterDeviceConfigurationResponseCallback(uint8_t status, int16_t power, uint16_t pathLossExponent, - uint16_t calculationPeriod, uint8_t numberRssiMeasurements, - uint16_t reportingPeriod); -/** @brief RSSI Location Cluster Get Device Configuration - * - * - * - * @param targetAddress Ver.: always - */ -bool emberAfRssiLocationClusterGetDeviceConfigurationCallback(uint8_t * targetAddress); -/** @brief RSSI Location Cluster Get Location Data - * - * - * - * @param flags Ver.: always - * @param numberResponses Ver.: always - * @param targetAddress Ver.: always - */ -bool emberAfRssiLocationClusterGetLocationDataCallback(uint8_t flags, uint8_t numberResponses, uint8_t * targetAddress); -/** @brief RSSI Location Cluster Location Data Notification - * - * - * - * @param locationType Ver.: always - * @param coordinate1 Ver.: always - * @param coordinate2 Ver.: always - * @param coordinate3 Ver.: always - * @param power Ver.: always - * @param pathLossExponent Ver.: always - * @param locationMethod Ver.: always - * @param qualityMeasure Ver.: always - * @param locationAge Ver.: always - */ -bool emberAfRssiLocationClusterLocationDataNotificationCallback(uint8_t locationType, int16_t coordinate1, int16_t coordinate2, - int16_t coordinate3, int16_t power, uint16_t pathLossExponent, - uint8_t locationMethod, uint8_t qualityMeasure, - uint16_t locationAge); -/** @brief RSSI Location Cluster Location Data Response - * - * - * - * @param status Ver.: always - * @param locationType Ver.: always - * @param coordinate1 Ver.: always - * @param coordinate2 Ver.: always - * @param coordinate3 Ver.: always - * @param power Ver.: always - * @param pathLossExponent Ver.: always - * @param locationMethod Ver.: always - * @param qualityMeasure Ver.: always - * @param locationAge Ver.: always - */ -bool emberAfRssiLocationClusterLocationDataResponseCallback(uint8_t status, uint8_t locationType, int16_t coordinate1, - int16_t coordinate2, int16_t coordinate3, int16_t power, - uint16_t pathLossExponent, uint8_t locationMethod, - uint8_t qualityMeasure, uint16_t locationAge); -/** @brief RSSI Location Cluster Report Rssi Measurements - * - * - * - * @param measuringDevice Ver.: always - * @param neighbors Ver.: always - * @param neighborsInfo Ver.: always - */ -bool emberAfRssiLocationClusterReportRssiMeasurementsCallback(uint8_t * measuringDevice, uint8_t neighbors, - uint8_t * neighborsInfo); -/** @brief RSSI Location Cluster Request Own Location - * - * - * - * @param blindNode Ver.: always - */ -bool emberAfRssiLocationClusterRequestOwnLocationCallback(uint8_t * blindNode); -/** @brief RSSI Location Cluster Rssi Ping - * - * - * - * @param locationType Ver.: always - */ -bool emberAfRssiLocationClusterRssiPingCallback(uint8_t locationType); -/** @brief RSSI Location Cluster Rssi Request - * - * - * - */ -bool emberAfRssiLocationClusterRssiRequestCallback(void); -/** @brief RSSI Location Cluster Rssi Response - * - * - * - * @param replyingDevice Ver.: always - * @param coordinate1 Ver.: always - * @param coordinate2 Ver.: always - * @param coordinate3 Ver.: always - * @param rssi Ver.: always - * @param numberRssiMeasurements Ver.: always - */ -bool emberAfRssiLocationClusterRssiResponseCallback(uint8_t * replyingDevice, int16_t coordinate1, int16_t coordinate2, - int16_t coordinate3, int8_t rssi, uint8_t numberRssiMeasurements); -/** @brief RSSI Location Cluster Send Pings - * - * - * - * @param targetAddress Ver.: always - * @param numberRssiMeasurements Ver.: always - * @param calculationPeriod Ver.: always - */ -bool emberAfRssiLocationClusterSendPingsCallback(uint8_t * targetAddress, uint8_t numberRssiMeasurements, - uint16_t calculationPeriod); -/** @brief RSSI Location Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfRssiLocationClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief RSSI Location Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfRssiLocationClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief RSSI Location Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfRssiLocationClusterServerInitCallback(uint8_t endpoint); -/** @brief RSSI Location Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfRssiLocationClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief RSSI Location Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfRssiLocationClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief RSSI Location Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfRssiLocationClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief RSSI Location Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfRssiLocationClusterServerTickCallback(uint8_t endpoint); -/** @brief RSSI Location Cluster Set Absolute Location - * - * - * - * @param coordinate1 Ver.: always - * @param coordinate2 Ver.: always - * @param coordinate3 Ver.: always - * @param power Ver.: always - * @param pathLossExponent Ver.: always - */ -bool emberAfRssiLocationClusterSetAbsoluteLocationCallback(int16_t coordinate1, int16_t coordinate2, int16_t coordinate3, - int16_t power, uint16_t pathLossExponent); -/** @brief RSSI Location Cluster Set Device Configuration - * - * - * - * @param power Ver.: always - * @param pathLossExponent Ver.: always - * @param calculationPeriod Ver.: always - * @param numberRssiMeasurements Ver.: always - * @param reportingPeriod Ver.: always - */ -bool emberAfRssiLocationClusterSetDeviceConfigurationCallback(int16_t power, uint16_t pathLossExponent, uint16_t calculationPeriod, - uint8_t numberRssiMeasurements, uint16_t reportingPeriod); - -/** @} END RSSI Location Cluster Callbacks */ - -/** @name Binary Input (Basic) Cluster Callbacks */ -// @{ - -/** @brief Binary Input (Basic) Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfBinaryInputBasicClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Binary Input (Basic) Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfBinaryInputBasicClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Binary Input (Basic) Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfBinaryInputBasicClusterClientInitCallback(uint8_t endpoint); -/** @brief Binary Input (Basic) Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfBinaryInputBasicClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Binary Input (Basic) Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfBinaryInputBasicClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Binary Input (Basic) Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfBinaryInputBasicClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Binary Input (Basic) Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfBinaryInputBasicClusterClientTickCallback(uint8_t endpoint); -/** @brief Binary Input (Basic) Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfBinaryInputBasicClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Binary Input (Basic) Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfBinaryInputBasicClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Binary Input (Basic) Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfBinaryInputBasicClusterServerInitCallback(uint8_t endpoint); -/** @brief Binary Input (Basic) Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfBinaryInputBasicClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Binary Input (Basic) Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfBinaryInputBasicClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Binary Input (Basic) Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfBinaryInputBasicClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Binary Input (Basic) Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfBinaryInputBasicClusterServerTickCallback(uint8_t endpoint); - -/** @} END Binary Input (Basic) Cluster Callbacks */ - -/** @name Commissioning Cluster Callbacks */ -// @{ - -/** @brief Commissioning Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfCommissioningClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Commissioning Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfCommissioningClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Commissioning Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfCommissioningClusterClientInitCallback(uint8_t endpoint); -/** @brief Commissioning Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfCommissioningClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Commissioning Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfCommissioningClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Commissioning Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfCommissioningClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Commissioning Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfCommissioningClusterClientTickCallback(uint8_t endpoint); -/** @brief Commissioning Cluster Reset Startup Parameters - * - * - * - * @param options Ver.: always - * @param index Ver.: always - */ -bool emberAfCommissioningClusterResetStartupParametersCallback(uint8_t options, uint8_t index); -/** @brief Commissioning Cluster Reset Startup Parameters Response - * - * - * - * @param status Ver.: always - */ -bool emberAfCommissioningClusterResetStartupParametersResponseCallback(uint8_t status); -/** @brief Commissioning Cluster Restart Device - * - * - * - * @param options Ver.: always - * @param delay Ver.: always - * @param jitter Ver.: always - */ -bool emberAfCommissioningClusterRestartDeviceCallback(uint8_t options, uint8_t delay, uint8_t jitter); -/** @brief Commissioning Cluster Restart Device Response - * - * - * - * @param status Ver.: always - */ -bool emberAfCommissioningClusterRestartDeviceResponseCallback(uint8_t status); -/** @brief Commissioning Cluster Restore Startup Parameters - * - * - * - * @param options Ver.: always - * @param index Ver.: always - */ -bool emberAfCommissioningClusterRestoreStartupParametersCallback(uint8_t options, uint8_t index); -/** @brief Commissioning Cluster Restore Startup Parameters Response - * - * - * - * @param status Ver.: always - */ -bool emberAfCommissioningClusterRestoreStartupParametersResponseCallback(uint8_t status); -/** @brief Commissioning Cluster Save Startup Parameters - * - * - * - * @param options Ver.: always - * @param index Ver.: always - */ -bool emberAfCommissioningClusterSaveStartupParametersCallback(uint8_t options, uint8_t index); -/** @brief Commissioning Cluster Save Startup Parameters Response - * - * - * - * @param status Ver.: always - */ -bool emberAfCommissioningClusterSaveStartupParametersResponseCallback(uint8_t status); -/** @brief Commissioning Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfCommissioningClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Commissioning Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfCommissioningClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Commissioning Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfCommissioningClusterServerInitCallback(uint8_t endpoint); -/** @brief Commissioning Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfCommissioningClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Commissioning Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfCommissioningClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Commissioning Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfCommissioningClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Commissioning Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfCommissioningClusterServerTickCallback(uint8_t endpoint); - -/** @} END Commissioning Cluster Callbacks */ - -/** @name Partition Cluster Callbacks */ -// @{ - -/** @brief Partition Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfPartitionClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Partition Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfPartitionClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Partition Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfPartitionClusterClientInitCallback(uint8_t endpoint); -/** @brief Partition Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfPartitionClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Partition Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfPartitionClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Partition Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfPartitionClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Partition Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfPartitionClusterClientTickCallback(uint8_t endpoint); -/** @brief Partition Cluster Multiple Ack - * - * - * - * @param ackOptions Ver.: always - * @param firstFrameIdAndNackList Ver.: always - */ -bool emberAfPartitionClusterMultipleAckCallback(uint8_t ackOptions, uint8_t * firstFrameIdAndNackList); -/** @brief Partition Cluster Read Handshake Param - * - * - * - * @param partitionedClusterId Ver.: always - * @param attributeList Ver.: always - */ -bool emberAfPartitionClusterReadHandshakeParamCallback(uint16_t partitionedClusterId, uint8_t * attributeList); -/** @brief Partition Cluster Read Handshake Param Response - * - * - * - * @param partitionedClusterId Ver.: always - * @param readAttributeStatusRecords Ver.: always - */ -bool emberAfPartitionClusterReadHandshakeParamResponseCallback(uint16_t partitionedClusterId, uint8_t * readAttributeStatusRecords); -/** @brief Partition Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfPartitionClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Partition Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfPartitionClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Partition Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfPartitionClusterServerInitCallback(uint8_t endpoint); -/** @brief Partition Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfPartitionClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Partition Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfPartitionClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Partition Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfPartitionClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Partition Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfPartitionClusterServerTickCallback(uint8_t endpoint); -/** @brief Partition Cluster Transfer Partitioned Frame - * - * - * - * @param fragmentationOptions Ver.: always - * @param partitionedIndicatorAndFrame Ver.: always - */ -bool emberAfPartitionClusterTransferPartitionedFrameCallback(uint8_t fragmentationOptions, uint8_t * partitionedIndicatorAndFrame); -/** @brief Partition Cluster Write Handshake Param - * - * - * - * @param partitionedClusterId Ver.: always - * @param writeAttributeRecords Ver.: always - */ -bool emberAfPartitionClusterWriteHandshakeParamCallback(uint16_t partitionedClusterId, uint8_t * writeAttributeRecords); - -/** @} END Partition Cluster Callbacks */ - -/** @name Over the Air Bootloading Cluster Callbacks */ -// @{ - -/** @brief Over the Air Bootloading Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfOtaBootloadClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Over the Air Bootloading Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfOtaBootloadClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Over the Air Bootloading Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfOtaBootloadClusterClientInitCallback(uint8_t endpoint); -/** @brief Over the Air Bootloading Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfOtaBootloadClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Over the Air Bootloading Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfOtaBootloadClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Over the Air Bootloading Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfOtaBootloadClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Over the Air Bootloading Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfOtaBootloadClusterClientTickCallback(uint8_t endpoint); -/** @brief Over the Air Bootloading Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfOtaBootloadClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Over the Air Bootloading Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfOtaBootloadClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Over the Air Bootloading Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfOtaBootloadClusterServerInitCallback(uint8_t endpoint); -/** @brief Over the Air Bootloading Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfOtaBootloadClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Over the Air Bootloading Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfOtaBootloadClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Over the Air Bootloading Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfOtaBootloadClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Over the Air Bootloading Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfOtaBootloadClusterServerTickCallback(uint8_t endpoint); - -/** @} END Over the Air Bootloading Cluster Callbacks */ - -/** @name Power Profile Cluster Callbacks */ -// @{ - -/** @brief Power Profile Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfPowerProfileClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Power Profile Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfPowerProfileClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Power Profile Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfPowerProfileClusterClientInitCallback(uint8_t endpoint); -/** @brief Power Profile Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfPowerProfileClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Power Profile Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfPowerProfileClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Power Profile Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfPowerProfileClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Power Profile Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfPowerProfileClusterClientTickCallback(uint8_t endpoint); -/** @brief Power Profile Cluster Energy Phases Schedule Notification - * - * - * - * @param powerProfileId Ver.: always - * @param numOfScheduledPhases Ver.: always - * @param scheduledPhases Ver.: always - */ -bool emberAfPowerProfileClusterEnergyPhasesScheduleNotificationCallback(uint8_t powerProfileId, uint8_t numOfScheduledPhases, - uint8_t * scheduledPhases); -/** @brief Power Profile Cluster Energy Phases Schedule Request - * - * - * - * @param powerProfileId Ver.: always - */ -bool emberAfPowerProfileClusterEnergyPhasesScheduleRequestCallback(uint8_t powerProfileId); -/** @brief Power Profile Cluster Energy Phases Schedule Response - * - * - * - * @param powerProfileId Ver.: always - * @param numOfScheduledPhases Ver.: always - * @param scheduledPhases Ver.: always - */ -bool emberAfPowerProfileClusterEnergyPhasesScheduleResponseCallback(uint8_t powerProfileId, uint8_t numOfScheduledPhases, - uint8_t * scheduledPhases); -/** @brief Power Profile Cluster Energy Phases Schedule State Notification - * - * - * - * @param powerProfileId Ver.: always - * @param numOfScheduledPhases Ver.: always - * @param scheduledPhases Ver.: always - */ -bool emberAfPowerProfileClusterEnergyPhasesScheduleStateNotificationCallback(uint8_t powerProfileId, uint8_t numOfScheduledPhases, - uint8_t * scheduledPhases); -/** @brief Power Profile Cluster Energy Phases Schedule State Request - * - * - * - * @param powerProfileId Ver.: always - */ -bool emberAfPowerProfileClusterEnergyPhasesScheduleStateRequestCallback(uint8_t powerProfileId); -/** @brief Power Profile Cluster Energy Phases Schedule State Response - * - * - * - * @param powerProfileId Ver.: always - * @param numOfScheduledPhases Ver.: always - * @param scheduledPhases Ver.: always - */ -bool emberAfPowerProfileClusterEnergyPhasesScheduleStateResponseCallback(uint8_t powerProfileId, uint8_t numOfScheduledPhases, - uint8_t * scheduledPhases); -/** @brief Power Profile Cluster Get Overall Schedule Price - * - * - * - */ -bool emberAfPowerProfileClusterGetOverallSchedulePriceCallback(void); -/** @brief Power Profile Cluster Get Overall Schedule Price Response - * - * - * - * @param currency Ver.: always - * @param price Ver.: always - * @param priceTrailingDigit Ver.: always - */ -bool emberAfPowerProfileClusterGetOverallSchedulePriceResponseCallback(uint16_t currency, uint32_t price, - uint8_t priceTrailingDigit); -/** @brief Power Profile Cluster Get Power Profile Price - * - * - * - * @param powerProfileId Ver.: always - */ -bool emberAfPowerProfileClusterGetPowerProfilePriceCallback(uint8_t powerProfileId); -/** @brief Power Profile Cluster Get Power Profile Price Extended - * - * - * - * @param options Ver.: always - * @param powerProfileId Ver.: always - * @param powerProfileStartTime Ver.: always - */ -bool emberAfPowerProfileClusterGetPowerProfilePriceExtendedCallback(uint8_t options, uint8_t powerProfileId, - uint16_t powerProfileStartTime); -/** @brief Power Profile Cluster Get Power Profile Price Extended Response - * - * - * - * @param powerProfileId Ver.: always - * @param currency Ver.: always - * @param price Ver.: always - * @param priceTrailingDigit Ver.: always - */ -bool emberAfPowerProfileClusterGetPowerProfilePriceExtendedResponseCallback(uint8_t powerProfileId, uint16_t currency, - uint32_t price, uint8_t priceTrailingDigit); -/** @brief Power Profile Cluster Get Power Profile Price Response - * - * - * - * @param powerProfileId Ver.: always - * @param currency Ver.: always - * @param price Ver.: always - * @param priceTrailingDigit Ver.: always - */ -bool emberAfPowerProfileClusterGetPowerProfilePriceResponseCallback(uint8_t powerProfileId, uint16_t currency, uint32_t price, - uint8_t priceTrailingDigit); -/** @brief Power Profile Cluster Power Profile Notification - * - * - * - * @param totalProfileNum Ver.: always - * @param powerProfileId Ver.: always - * @param numOfTransferredPhases Ver.: always - * @param transferredPhases Ver.: always - */ -bool emberAfPowerProfileClusterPowerProfileNotificationCallback(uint8_t totalProfileNum, uint8_t powerProfileId, - uint8_t numOfTransferredPhases, uint8_t * transferredPhases); -/** @brief Power Profile Cluster Power Profile Request - * - * - * - * @param powerProfileId Ver.: always - */ -bool emberAfPowerProfileClusterPowerProfileRequestCallback(uint8_t powerProfileId); -/** @brief Power Profile Cluster Power Profile Response - * - * - * - * @param totalProfileNum Ver.: always - * @param powerProfileId Ver.: always - * @param numOfTransferredPhases Ver.: always - * @param transferredPhases Ver.: always - */ -bool emberAfPowerProfileClusterPowerProfileResponseCallback(uint8_t totalProfileNum, uint8_t powerProfileId, - uint8_t numOfTransferredPhases, uint8_t * transferredPhases); -/** @brief Power Profile Cluster Power Profile Schedule Constraints Notification - * - * - * - * @param powerProfileId Ver.: always - * @param startAfter Ver.: always - * @param stopBefore Ver.: always - */ -bool emberAfPowerProfileClusterPowerProfileScheduleConstraintsNotificationCallback(uint8_t powerProfileId, uint16_t startAfter, - uint16_t stopBefore); -/** @brief Power Profile Cluster Power Profile Schedule Constraints Request - * - * - * - * @param powerProfileId Ver.: always - */ -bool emberAfPowerProfileClusterPowerProfileScheduleConstraintsRequestCallback(uint8_t powerProfileId); -/** @brief Power Profile Cluster Power Profile Schedule Constraints Response - * - * - * - * @param powerProfileId Ver.: always - * @param startAfter Ver.: always - * @param stopBefore Ver.: always - */ -bool emberAfPowerProfileClusterPowerProfileScheduleConstraintsResponseCallback(uint8_t powerProfileId, uint16_t startAfter, - uint16_t stopBefore); -/** @brief Power Profile Cluster Power Profile State Request - * - * - * - */ -bool emberAfPowerProfileClusterPowerProfileStateRequestCallback(void); -/** @brief Power Profile Cluster Power Profile State Response - * - * - * - * @param powerProfileCount Ver.: always - * @param powerProfileRecords Ver.: always - */ -bool emberAfPowerProfileClusterPowerProfileStateResponseCallback(uint8_t powerProfileCount, uint8_t * powerProfileRecords); -/** @brief Power Profile Cluster Power Profiles State Notification - * - * - * - * @param powerProfileCount Ver.: always - * @param powerProfileRecords Ver.: always - */ -bool emberAfPowerProfileClusterPowerProfilesStateNotificationCallback(uint8_t powerProfileCount, uint8_t * powerProfileRecords); -/** @brief Power Profile Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfPowerProfileClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Power Profile Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfPowerProfileClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Power Profile Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfPowerProfileClusterServerInitCallback(uint8_t endpoint); -/** @brief Power Profile Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfPowerProfileClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Power Profile Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfPowerProfileClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Power Profile Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfPowerProfileClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Power Profile Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfPowerProfileClusterServerTickCallback(uint8_t endpoint); - -/** @} END Power Profile Cluster Callbacks */ - -/** @name Appliance Control Cluster Callbacks */ -// @{ - -/** @brief Appliance Control Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfApplianceControlClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Appliance Control Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfApplianceControlClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Appliance Control Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfApplianceControlClusterClientInitCallback(uint8_t endpoint); -/** @brief Appliance Control Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfApplianceControlClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Appliance Control Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfApplianceControlClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Appliance Control Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfApplianceControlClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Appliance Control Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfApplianceControlClusterClientTickCallback(uint8_t endpoint); -/** @brief Appliance Control Cluster Execution Of A Command - * - * - * - * @param commandId Ver.: always - */ -bool emberAfApplianceControlClusterExecutionOfACommandCallback(uint8_t commandId); -/** @brief Appliance Control Cluster Overload Pause - * - * - * - */ -bool emberAfApplianceControlClusterOverloadPauseCallback(void); -/** @brief Appliance Control Cluster Overload Pause Resume - * - * - * - */ -bool emberAfApplianceControlClusterOverloadPauseResumeCallback(void); -/** @brief Appliance Control Cluster Overload Warning - * - * - * - * @param warningEvent Ver.: always - */ -bool emberAfApplianceControlClusterOverloadWarningCallback(uint8_t warningEvent); -/** @brief Appliance Control Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfApplianceControlClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Appliance Control Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfApplianceControlClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Appliance Control Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfApplianceControlClusterServerInitCallback(uint8_t endpoint); -/** @brief Appliance Control Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfApplianceControlClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Appliance Control Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfApplianceControlClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Appliance Control Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfApplianceControlClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Appliance Control Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfApplianceControlClusterServerTickCallback(uint8_t endpoint); -/** @brief Appliance Control Cluster Signal State - * - * - * - */ -bool emberAfApplianceControlClusterSignalStateCallback(void); -/** @brief Appliance Control Cluster Signal State Notification - * - * - * - * @param applianceStatus Ver.: always - * @param remoteEnableFlagsAndDeviceStatus2 Ver.: always - * @param applianceStatus2 Ver.: always - */ -bool emberAfApplianceControlClusterSignalStateNotificationCallback(uint8_t applianceStatus, - uint8_t remoteEnableFlagsAndDeviceStatus2, - uint32_t applianceStatus2); -/** @brief Appliance Control Cluster Signal State Response - * - * - * - * @param applianceStatus Ver.: always - * @param remoteEnableFlagsAndDeviceStatus2 Ver.: always - * @param applianceStatus2 Ver.: always - */ -bool emberAfApplianceControlClusterSignalStateResponseCallback(uint8_t applianceStatus, uint8_t remoteEnableFlagsAndDeviceStatus2, - uint32_t applianceStatus2); -/** @brief Appliance Control Cluster Write Functions - * - * - * - * @param functionId Ver.: always - * @param functionDataType Ver.: always - * @param functionData Ver.: always - */ -bool emberAfApplianceControlClusterWriteFunctionsCallback(uint16_t functionId, uint8_t functionDataType, uint8_t * functionData); - -/** @} END Appliance Control Cluster Callbacks */ - -/** @name Poll Control Cluster Callbacks */ -// @{ - -/** @brief Poll Control Cluster Check In - * - * - * - */ -bool emberAfPollControlClusterCheckInCallback(void); -/** @brief Poll Control Cluster Check In Response - * - * - * - * @param startFastPolling Ver.: always - * @param fastPollTimeout Ver.: always - */ -bool emberAfPollControlClusterCheckInResponseCallback(uint8_t startFastPolling, uint16_t fastPollTimeout); -/** @brief Poll Control Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfPollControlClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Poll Control Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfPollControlClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Poll Control Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfPollControlClusterClientInitCallback(uint8_t endpoint); -/** @brief Poll Control Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfPollControlClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Poll Control Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfPollControlClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Poll Control Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfPollControlClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Poll Control Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfPollControlClusterClientTickCallback(uint8_t endpoint); -/** @brief Poll Control Cluster Fast Poll Stop - * - * - * - */ -bool emberAfPollControlClusterFastPollStopCallback(void); -/** @brief Poll Control Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfPollControlClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Poll Control Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfPollControlClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Poll Control Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfPollControlClusterServerInitCallback(uint8_t endpoint); -/** @brief Poll Control Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfPollControlClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Poll Control Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfPollControlClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Poll Control Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfPollControlClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Poll Control Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfPollControlClusterServerTickCallback(uint8_t endpoint); -/** @brief Poll Control Cluster Set Long Poll Interval - * - * - * - * @param newLongPollInterval Ver.: always - */ -bool emberAfPollControlClusterSetLongPollIntervalCallback(uint32_t newLongPollInterval); -/** @brief Poll Control Cluster Set Short Poll Interval - * - * - * - * @param newShortPollInterval Ver.: always - */ -bool emberAfPollControlClusterSetShortPollIntervalCallback(uint16_t newShortPollInterval); - -/** @} END Poll Control Cluster Callbacks */ - -/** @name Green Power Cluster Callbacks */ -// @{ - -/** @brief Green Power Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfGreenPowerClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Green Power Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfGreenPowerClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Green Power Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfGreenPowerClusterClientInitCallback(uint8_t endpoint); -/** @brief Green Power Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfGreenPowerClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Green Power Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfGreenPowerClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Green Power Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfGreenPowerClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Green Power Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfGreenPowerClusterClientTickCallback(uint8_t endpoint); -/** @brief Green Power Cluster Gp Commissioning Notification - * - * - * - * @param options Ver.: since gp-1.0-09-5499-24 - * @param gpdSrcId Ver.: since gp-1.0-09-5499-24 - * @param gpdIeee Ver.: since gp-1.0-09-5499-24 - * @param endpoint Ver.: since gp-1.0-09-5499-24 - * @param gpdSecurityFrameCounter Ver.: since gp-1.0-09-5499-24 - * @param gpdCommandId Ver.: since gp-1.0-09-5499-24 - * @param gpdCommandPayload Ver.: since gp-1.0-09-5499-24 - * @param gppShortAddress Ver.: since gp-1.0-09-5499-24 - * @param gppLink Ver.: since gp-1.0-09-5499-24 - * @param mic Ver.: since gp-1.0-09-5499-24 - */ -bool emberAfGreenPowerClusterGpCommissioningNotificationCallback(uint16_t options, uint32_t gpdSrcId, uint8_t * gpdIeee, - uint8_t endpoint, uint32_t gpdSecurityFrameCounter, - uint8_t gpdCommandId, uint8_t * gpdCommandPayload, - uint16_t gppShortAddress, uint8_t gppLink, uint32_t mic); -/** @brief Green Power Cluster Gp Notification - * - * - * - * @param options Ver.: since gp-1.0-09-5499-24 - * @param gpdSrcId Ver.: since gp-1.0-09-5499-24 - * @param gpdIeee Ver.: since gp-1.0-09-5499-24 - * @param gpdEndpoint Ver.: since gp-1.0-09-5499-24 - * @param gpdSecurityFrameCounter Ver.: since gp-1.0-09-5499-24 - * @param gpdCommandId Ver.: since gp-1.0-09-5499-24 - * @param gpdCommandPayload Ver.: since gp-1.0-09-5499-24 - * @param gppShortAddress Ver.: since gp-1.0-09-5499-24 - * @param gppDistance Ver.: since gp-1.0-09-5499-24 - */ -bool emberAfGreenPowerClusterGpNotificationCallback(uint16_t options, uint32_t gpdSrcId, uint8_t * gpdIeee, uint8_t gpdEndpoint, - uint32_t gpdSecurityFrameCounter, uint8_t gpdCommandId, - uint8_t * gpdCommandPayload, uint16_t gppShortAddress, uint8_t gppDistance); -/** @brief Green Power Cluster Gp Notification Response - * - * - * - * @param options Ver.: since gp-1.0-09-5499-24 - * @param gpdSrcId Ver.: since gp-1.0-09-5499-24 - * @param gpdIeee Ver.: since gp-1.0-09-5499-24 - * @param endpoint Ver.: since gp-1.0-09-5499-24 - * @param gpdSecurityFrameCounter Ver.: since gp-1.0-09-5499-24 - */ -bool emberAfGreenPowerClusterGpNotificationResponseCallback(uint8_t options, uint32_t gpdSrcId, uint8_t * gpdIeee, uint8_t endpoint, - uint32_t gpdSecurityFrameCounter); -/** @brief Green Power Cluster Gp Pairing - * - * - * - * @param options Ver.: since gp-1.0-09-5499-24 - * @param gpdSrcId Ver.: since gp-1.0-09-5499-24 - * @param gpdIeee Ver.: since gp-1.0-09-5499-24 - * @param endpoint Ver.: since gp-1.0-09-5499-24 - * @param sinkIeeeAddress Ver.: since gp-1.0-09-5499-24 - * @param sinkNwkAddress Ver.: since gp-1.0-09-5499-24 - * @param sinkGroupId Ver.: since gp-1.0-09-5499-24 - * @param deviceId Ver.: since gp-1.0-09-5499-24 - * @param gpdSecurityFrameCounter Ver.: since gp-1.0-09-5499-24 - * @param gpdKey Ver.: since gp-1.0-09-5499-24 - * @param assignedAlias Ver.: since gp-1.0-09-5499-24 - * @param groupcastRadius Ver.: since gp-1.0-09-5499-24 - */ -bool emberAfGreenPowerClusterGpPairingCallback(uint32_t options, uint32_t gpdSrcId, uint8_t * gpdIeee, uint8_t endpoint, - uint8_t * sinkIeeeAddress, uint16_t sinkNwkAddress, uint16_t sinkGroupId, - uint8_t deviceId, uint32_t gpdSecurityFrameCounter, uint8_t * gpdKey, - uint16_t assignedAlias, uint8_t groupcastRadius); -/** @brief Green Power Cluster Gp Pairing Configuration - * - * - * - * @param actions Ver.: since gp-1.0-09-5499-24 - * @param options Ver.: since gp-1.0-09-5499-24 - * @param gpdSrcId Ver.: since gp-1.0-09-5499-24 - * @param gpdIeee Ver.: since gp-1.0-09-5499-24 - * @param endpoint Ver.: since gp-1.0-09-5499-24 - * @param deviceId Ver.: since gp-1.0-09-5499-24 - * @param groupListCount Ver.: since gp-1.0-09-5499-24 - * @param groupList Ver.: since gp-1.0-09-5499-24 - * @param gpdAssignedAlias Ver.: since gp-1.0-09-5499-24 - * @param groupcastRadius Ver.: since gp-1.0-15-2014-05-CCB2180 - * @param securityOptions Ver.: since gp-1.0-09-5499-24 - * @param gpdSecurityFrameCounter Ver.: since gp-1.0-09-5499-24 - * @param gpdSecurityKey Ver.: since gp-1.0-09-5499-24 - * @param numberOfPairedEndpoints Ver.: since gp-1.0-09-5499-24 - * @param pairedEndpoints Ver.: since gp-1.0-09-5499-24 - * @param applicationInformation Ver.: always - * @param manufacturerId Ver.: always - * @param modeId Ver.: always - * @param numberOfGpdCommands Ver.: always - * @param gpdCommandIdList Ver.: always - * @param clusterIdListCount Ver.: always - * @param clusterListServer Ver.: always - * @param clusterListClient Ver.: always - * @param switchInformationLength Ver.: always - * @param switchConfiguration Ver.: always - * @param currentContactStatus Ver.: always - * @param totalNumberOfReports Ver.: always - * @param numberOfReports Ver.: always - * @param reportDescriptor Ver.: always - */ -bool emberAfGreenPowerClusterGpPairingConfigurationCallback( - uint8_t actions, uint16_t options, uint32_t gpdSrcId, uint8_t * gpdIeee, uint8_t endpoint, uint8_t deviceId, - uint8_t groupListCount, uint8_t * groupList, uint16_t gpdAssignedAlias, uint8_t groupcastRadius, uint8_t securityOptions, - uint32_t gpdSecurityFrameCounter, uint8_t * gpdSecurityKey, uint8_t numberOfPairedEndpoints, uint8_t * pairedEndpoints, - uint8_t applicationInformation, uint16_t manufacturerId, uint16_t modeId, uint8_t numberOfGpdCommands, - uint8_t * gpdCommandIdList, uint8_t clusterIdListCount, uint8_t * clusterListServer, uint8_t * clusterListClient, - uint8_t switchInformationLength, uint8_t switchConfiguration, uint8_t currentContactStatus, uint8_t totalNumberOfReports, - uint8_t numberOfReports, uint8_t * reportDescriptor); -/** @brief Green Power Cluster Gp Pairing Search - * - * - * - * @param options Ver.: since gp-1.0-09-5499-24 - * @param gpdSrcId Ver.: since gp-1.0-09-5499-24 - * @param gpdIeee Ver.: since gp-1.0-09-5499-24 - * @param endpoint Ver.: always - */ -bool emberAfGreenPowerClusterGpPairingSearchCallback(uint16_t options, uint32_t gpdSrcId, uint8_t * gpdIeee, uint8_t endpoint); -/** @brief Green Power Cluster Gp Proxy Commissioning Mode - * - * - * - * @param options Ver.: since gp-1.0-09-5499-24 - * @param commissioningWindow Ver.: since gp-1.0-15-02014-011 - * @param channel Ver.: since gp-1.0-09-5499-24 - */ -bool emberAfGreenPowerClusterGpProxyCommissioningModeCallback(uint8_t options, uint16_t commissioningWindow, uint8_t channel); -/** @brief Green Power Cluster Gp Proxy Table Request - * - * - * - * @param options Ver.: always - * @param gpdSrcId Ver.: always - * @param gpdIeee Ver.: always - * @param endpoint Ver.: always - * @param index Ver.: always - */ -bool emberAfGreenPowerClusterGpProxyTableRequestCallback(uint8_t options, uint32_t gpdSrcId, uint8_t * gpdIeee, uint8_t endpoint, - uint8_t index); -/** @brief Green Power Cluster Gp Proxy Table Response - * - * - * - * @param status Ver.: always - * @param totalNumberOfNonEmptyProxyTableEntries Ver.: always - * @param startIndex Ver.: always - * @param entriesCount Ver.: always - * @param proxyTableEntries Ver.: always - */ -bool emberAfGreenPowerClusterGpProxyTableResponseCallback(uint8_t status, uint8_t totalNumberOfNonEmptyProxyTableEntries, - uint8_t startIndex, uint8_t entriesCount, uint8_t * proxyTableEntries); -/** @brief Green Power Cluster Gp Response - * - * - * - * @param options Ver.: since gp-1.0-09-5499-24 - * @param tempMasterShortAddress Ver.: since gp-1.0-09-5499-24 - * @param tempMasterTxChannel Ver.: since gp-1.0-09-5499-24 - * @param gpdSrcId Ver.: since gp-1.0-09-5499-24 - * @param gpdIeee Ver.: since gp-1.0-09-5499-24 - * @param endpoint Ver.: always - * @param gpdCommandId Ver.: since gp-1.0-09-5499-24 - * @param gpdCommandPayload Ver.: always - */ -bool emberAfGreenPowerClusterGpResponseCallback(uint8_t options, uint16_t tempMasterShortAddress, uint8_t tempMasterTxChannel, - uint32_t gpdSrcId, uint8_t * gpdIeee, uint8_t endpoint, uint8_t gpdCommandId, - uint8_t * gpdCommandPayload); -/** @brief Green Power Cluster Gp Sink Commissioning Mode - * - * - * - * @param options Ver.: always - * @param gpmAddrForSecurity Ver.: always - * @param gpmAddrForPairing Ver.: always - * @param sinkEndpoint Ver.: always - */ -bool emberAfGreenPowerClusterGpSinkCommissioningModeCallback(uint8_t options, uint16_t gpmAddrForSecurity, - uint16_t gpmAddrForPairing, uint8_t sinkEndpoint); -/** @brief Green Power Cluster Gp Sink Table Request - * - * - * - * @param options Ver.: always - * @param gpdSrcId Ver.: always - * @param gpdIeee Ver.: always - * @param endpoint Ver.: always - * @param index Ver.: always - */ -bool emberAfGreenPowerClusterGpSinkTableRequestCallback(uint8_t options, uint32_t gpdSrcId, uint8_t * gpdIeee, uint8_t endpoint, - uint8_t index); -/** @brief Green Power Cluster Gp Sink Table Response - * - * - * - * @param status Ver.: always - * @param totalNumberofNonEmptySinkTableEntries Ver.: always - * @param startIndex Ver.: always - * @param sinkTableEntriesCount Ver.: always - * @param sinkTableEntries Ver.: always - */ -bool emberAfGreenPowerClusterGpSinkTableResponseCallback(uint8_t status, uint8_t totalNumberofNonEmptySinkTableEntries, - uint8_t startIndex, uint8_t sinkTableEntriesCount, - uint8_t * sinkTableEntries); -/** @brief Green Power Cluster Gp Translation Table Request - * - * - * - * @param startIndex Ver.: since gp-1.0-09-5499-24 - */ -bool emberAfGreenPowerClusterGpTranslationTableRequestCallback(uint8_t startIndex); -/** @brief Green Power Cluster Gp Translation Table Response - * - * - * - * @param status Ver.: since gp-1.0-09-5499-24 - * @param options Ver.: since gp-1.0-09-5499-24 - * @param totalNumberOfEntries Ver.: since gp-1.0-09-5499-24 - * @param startIndex Ver.: since gp-1.0-09-5499-24 - * @param entriesCount Ver.: since gp-1.0-09-5499-24 - * @param translationTableList Ver.: since gp-1.0-09-5499-24 - */ -bool emberAfGreenPowerClusterGpTranslationTableResponseCallback(uint8_t status, uint8_t options, uint8_t totalNumberOfEntries, - uint8_t startIndex, uint8_t entriesCount, - uint8_t * translationTableList); -/** @brief Green Power Cluster Gp Translation Table Update - * - * - * - * @param options Ver.: since gp-1.0-09-5499-24 - * @param gpdSrcId Ver.: since gp-1.0-09-5499-24 - * @param gpdIeee Ver.: since gp-1.0-09-5499-24 - * @param endpoint Ver.: since gp-1.0-09-5499-24 - * @param translations Ver.: since gp-1.0-09-5499-24 - */ -bool emberAfGreenPowerClusterGpTranslationTableUpdateCallback(uint16_t options, uint32_t gpdSrcId, uint8_t * gpdIeee, - uint8_t endpoint, uint8_t * translations); -/** @brief Green Power Cluster Gp Tunneling Stop - * - * - * - * @param options Ver.: since gp-1.0-09-5499-24 - * @param gpdSrcId Ver.: since gp-1.0-09-5499-24 - * @param gpdIeee Ver.: since gp-1.0-09-5499-24 - * @param endpoint Ver.: since gp-1.0-09-5499-24 - * @param gpdSecurityFrameCounter Ver.: since gp-1.0-09-5499-24 - * @param gppShortAddress Ver.: since gp-1.0-09-5499-24 - * @param gppDistance Ver.: since gp-1.0-09-5499-24 - */ -bool emberAfGreenPowerClusterGpTunnelingStopCallback(uint8_t options, uint32_t gpdSrcId, uint8_t * gpdIeee, uint8_t endpoint, - uint32_t gpdSecurityFrameCounter, uint16_t gppShortAddress, - int8_t gppDistance); -/** @brief Green Power Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfGreenPowerClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Green Power Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfGreenPowerClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Green Power Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfGreenPowerClusterServerInitCallback(uint8_t endpoint); -/** @brief Green Power Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfGreenPowerClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Green Power Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfGreenPowerClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Green Power Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfGreenPowerClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Green Power Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfGreenPowerClusterServerTickCallback(uint8_t endpoint); - -/** @} END Green Power Cluster Callbacks */ - -/** @name Keep-Alive Cluster Callbacks */ -// @{ - -/** @brief Keep-Alive Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfKeepaliveClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Keep-Alive Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfKeepaliveClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Keep-Alive Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfKeepaliveClusterClientInitCallback(uint8_t endpoint); -/** @brief Keep-Alive Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfKeepaliveClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Keep-Alive Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfKeepaliveClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Keep-Alive Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfKeepaliveClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Keep-Alive Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfKeepaliveClusterClientTickCallback(uint8_t endpoint); -/** @brief Keep-Alive Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfKeepaliveClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Keep-Alive Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfKeepaliveClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Keep-Alive Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfKeepaliveClusterServerInitCallback(uint8_t endpoint); -/** @brief Keep-Alive Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfKeepaliveClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Keep-Alive Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfKeepaliveClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Keep-Alive Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfKeepaliveClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Keep-Alive Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfKeepaliveClusterServerTickCallback(uint8_t endpoint); - -/** @} END Keep-Alive Cluster Callbacks */ - -/** @name Shade Configuration Cluster Callbacks */ -// @{ - -/** @brief Shade Configuration Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfShadeConfigClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Shade Configuration Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfShadeConfigClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Shade Configuration Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfShadeConfigClusterClientInitCallback(uint8_t endpoint); -/** @brief Shade Configuration Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfShadeConfigClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Shade Configuration Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfShadeConfigClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Shade Configuration Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfShadeConfigClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Shade Configuration Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfShadeConfigClusterClientTickCallback(uint8_t endpoint); -/** @brief Shade Configuration Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfShadeConfigClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Shade Configuration Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfShadeConfigClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Shade Configuration Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfShadeConfigClusterServerInitCallback(uint8_t endpoint); -/** @brief Shade Configuration Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfShadeConfigClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Shade Configuration Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfShadeConfigClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Shade Configuration Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfShadeConfigClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Shade Configuration Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfShadeConfigClusterServerTickCallback(uint8_t endpoint); - -/** @} END Shade Configuration Cluster Callbacks */ - -/** @name Door Lock Cluster Callbacks */ -// @{ - -/** @brief Door Lock Cluster Clear All Pins - * - * - * - */ -bool emberAfDoorLockClusterClearAllPinsCallback(void); -/** @brief Door Lock Cluster Clear All Pins Response - * - * - * - * @param status Ver.: always - */ -bool emberAfDoorLockClusterClearAllPinsResponseCallback(uint8_t status); -/** @brief Door Lock Cluster Clear All Rfids - * - * - * - */ -bool emberAfDoorLockClusterClearAllRfidsCallback(void); -/** @brief Door Lock Cluster Clear All Rfids Response - * - * - * - * @param status Ver.: always - */ -bool emberAfDoorLockClusterClearAllRfidsResponseCallback(uint8_t status); -/** @brief Door Lock Cluster Clear Holiday Schedule - * - * - * - * @param scheduleId Ver.: always - */ -bool emberAfDoorLockClusterClearHolidayScheduleCallback(uint8_t scheduleId); -/** @brief Door Lock Cluster Clear Holiday Schedule Response - * - * - * - * @param status Ver.: always - */ -bool emberAfDoorLockClusterClearHolidayScheduleResponseCallback(uint8_t status); -/** @brief Door Lock Cluster Clear Pin - * - * - * - * @param userId Ver.: always - */ -bool emberAfDoorLockClusterClearPinCallback(uint16_t userId); -/** @brief Door Lock Cluster Clear Pin Response - * - * - * - * @param status Ver.: always - */ -bool emberAfDoorLockClusterClearPinResponseCallback(uint8_t status); -/** @brief Door Lock Cluster Clear Rfid - * - * - * - * @param userId Ver.: always - */ -bool emberAfDoorLockClusterClearRfidCallback(uint16_t userId); -/** @brief Door Lock Cluster Clear Rfid Response - * - * - * - * @param status Ver.: always - */ -bool emberAfDoorLockClusterClearRfidResponseCallback(uint8_t status); -/** @brief Door Lock Cluster Clear Weekday Schedule - * - * - * - * @param scheduleId Ver.: always - * @param userId Ver.: always - */ -bool emberAfDoorLockClusterClearWeekdayScheduleCallback(uint8_t scheduleId, uint16_t userId); -/** @brief Door Lock Cluster Clear Weekday Schedule Response - * - * - * - * @param status Ver.: always - */ -bool emberAfDoorLockClusterClearWeekdayScheduleResponseCallback(uint8_t status); -/** @brief Door Lock Cluster Clear Yearday Schedule - * - * - * - * @param scheduleId Ver.: always - * @param userId Ver.: always - */ -bool emberAfDoorLockClusterClearYeardayScheduleCallback(uint8_t scheduleId, uint16_t userId); -/** @brief Door Lock Cluster Clear Yearday Schedule Response - * - * - * - * @param status Ver.: always - */ -bool emberAfDoorLockClusterClearYeardayScheduleResponseCallback(uint8_t status); -/** @brief Door Lock Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfDoorLockClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Door Lock Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfDoorLockClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Door Lock Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfDoorLockClusterClientInitCallback(uint8_t endpoint); -/** @brief Door Lock Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfDoorLockClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Door Lock Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfDoorLockClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Door Lock Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfDoorLockClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Door Lock Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfDoorLockClusterClientTickCallback(uint8_t endpoint); -/** @brief Door Lock Cluster Get Holiday Schedule - * - * - * - * @param scheduleId Ver.: always - */ -bool emberAfDoorLockClusterGetHolidayScheduleCallback(uint8_t scheduleId); -/** @brief Door Lock Cluster Get Holiday Schedule Response - * - * - * - * @param scheduleId Ver.: always - * @param status Ver.: always - * @param localStartTime Ver.: since ha-1.2-05-3520-29 - * @param localEndTime Ver.: since ha-1.2-05-3520-29 - * @param operatingModeDuringHoliday Ver.: since ha-1.2-05-3520-29 - */ -bool emberAfDoorLockClusterGetHolidayScheduleResponseCallback(uint8_t scheduleId, uint8_t status, uint32_t localStartTime, - uint32_t localEndTime, uint8_t operatingModeDuringHoliday); -/** @brief Door Lock Cluster Get Log Record - * - * - * - * @param logIndex Ver.: always - */ -bool emberAfDoorLockClusterGetLogRecordCallback(uint16_t logIndex); -/** @brief Door Lock Cluster Get Log Record Response - * - * - * - * @param logEntryId Ver.: always - * @param timestamp Ver.: always - * @param eventType Ver.: always - * @param source Ver.: always - * @param eventIdOrAlarmCode Ver.: always - * @param userId Ver.: always - * @param pin Ver.: always - */ -bool emberAfDoorLockClusterGetLogRecordResponseCallback(uint16_t logEntryId, uint32_t timestamp, uint8_t eventType, uint8_t source, - uint8_t eventIdOrAlarmCode, uint16_t userId, uint8_t * pin); -/** @brief Door Lock Cluster Get Pin - * - * - * - * @param userId Ver.: always - */ -bool emberAfDoorLockClusterGetPinCallback(uint16_t userId); -/** @brief Door Lock Cluster Get Pin Response - * - * - * - * @param userId Ver.: always - * @param userStatus Ver.: always - * @param userType Ver.: always - * @param pin Ver.: always - */ -bool emberAfDoorLockClusterGetPinResponseCallback(uint16_t userId, uint8_t userStatus, uint8_t userType, uint8_t * pin); -/** @brief Door Lock Cluster Get Rfid - * - * - * - * @param userId Ver.: always - */ -bool emberAfDoorLockClusterGetRfidCallback(uint16_t userId); -/** @brief Door Lock Cluster Get Rfid Response - * - * - * - * @param userId Ver.: always - * @param userStatus Ver.: always - * @param userType Ver.: always - * @param rfid Ver.: always - */ -bool emberAfDoorLockClusterGetRfidResponseCallback(uint16_t userId, uint8_t userStatus, uint8_t userType, uint8_t * rfid); -/** @brief Door Lock Cluster Get User Status - * - * - * - * @param userId Ver.: always - */ -bool emberAfDoorLockClusterGetUserStatusCallback(uint16_t userId); -/** @brief Door Lock Cluster Get User Status Response - * - * - * - * @param userId Ver.: always - * @param status Ver.: always - */ -bool emberAfDoorLockClusterGetUserStatusResponseCallback(uint16_t userId, uint8_t status); -/** @brief Door Lock Cluster Get User Type - * - * - * - * @param userId Ver.: always - */ -bool emberAfDoorLockClusterGetUserTypeCallback(uint16_t userId); -/** @brief Door Lock Cluster Get User Type Response - * - * - * - * @param userId Ver.: always - * @param userType Ver.: always - */ -bool emberAfDoorLockClusterGetUserTypeResponseCallback(uint16_t userId, uint8_t userType); -/** @brief Door Lock Cluster Get Weekday Schedule - * - * - * - * @param scheduleId Ver.: always - * @param userId Ver.: always - */ -bool emberAfDoorLockClusterGetWeekdayScheduleCallback(uint8_t scheduleId, uint16_t userId); -/** @brief Door Lock Cluster Get Weekday Schedule Response - * - * - * - * @param scheduleId Ver.: always - * @param userId Ver.: always - * @param status Ver.: always - * @param daysMask Ver.: since ha-1.2-05-3520-29 - * @param startHour Ver.: since ha-1.2-05-3520-29 - * @param startMinute Ver.: since ha-1.2-05-3520-29 - * @param endHour Ver.: since ha-1.2-05-3520-29 - * @param endMinute Ver.: since ha-1.2-05-3520-29 - */ -bool emberAfDoorLockClusterGetWeekdayScheduleResponseCallback(uint8_t scheduleId, uint16_t userId, uint8_t status, uint8_t daysMask, - uint8_t startHour, uint8_t startMinute, uint8_t endHour, - uint8_t endMinute); -/** @brief Door Lock Cluster Get Yearday Schedule - * - * - * - * @param scheduleId Ver.: always - * @param userId Ver.: always - */ -bool emberAfDoorLockClusterGetYeardayScheduleCallback(uint8_t scheduleId, uint16_t userId); -/** @brief Door Lock Cluster Get Yearday Schedule Response - * - * - * - * @param scheduleId Ver.: always - * @param userId Ver.: always - * @param status Ver.: always - * @param localStartTime Ver.: since ha-1.2-05-3520-29 - * @param localEndTime Ver.: since ha-1.2-05-3520-29 - */ -bool emberAfDoorLockClusterGetYeardayScheduleResponseCallback(uint8_t scheduleId, uint16_t userId, uint8_t status, - uint32_t localStartTime, uint32_t localEndTime); -/** @brief Door Lock Cluster Lock Door - * - * - * - * @param PIN Ver.: since ha-1.2-05-3520-29 - */ -bool emberAfDoorLockClusterLockDoorCallback(uint8_t * PIN); -/** @brief Door Lock Cluster Lock Door Response - * - * - * - * @param status Ver.: always - */ -bool emberAfDoorLockClusterLockDoorResponseCallback(uint8_t status); -/** @brief Door Lock Cluster Operation Event Notification - * - * - * - * @param source Ver.: always - * @param eventCode Ver.: always - * @param userId Ver.: always - * @param pin Ver.: always - * @param timeStamp Ver.: always - * @param data Ver.: since ha-1.2-05-3520-29 - */ -bool emberAfDoorLockClusterOperationEventNotificationCallback(uint8_t source, uint8_t eventCode, uint16_t userId, uint8_t * pin, - uint32_t timeStamp, uint8_t * data); -/** @brief Door Lock Cluster Programming Event Notification - * - * - * - * @param source Ver.: always - * @param eventCode Ver.: always - * @param userId Ver.: always - * @param pin Ver.: always - * @param userType Ver.: always - * @param userStatus Ver.: always - * @param timeStamp Ver.: always - * @param data Ver.: since ha-1.2-05-3520-29 - */ -bool emberAfDoorLockClusterProgrammingEventNotificationCallback(uint8_t source, uint8_t eventCode, uint16_t userId, uint8_t * pin, - uint8_t userType, uint8_t userStatus, uint32_t timeStamp, - uint8_t * data); -/** @brief Door Lock Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfDoorLockClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Door Lock Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfDoorLockClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Door Lock Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfDoorLockClusterServerInitCallback(uint8_t endpoint); -/** @brief Door Lock Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfDoorLockClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Door Lock Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfDoorLockClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Door Lock Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfDoorLockClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Door Lock Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfDoorLockClusterServerTickCallback(uint8_t endpoint); -/** @brief Door Lock Cluster Set Holiday Schedule - * - * - * - * @param scheduleId Ver.: always - * @param localStartTime Ver.: always - * @param localEndTime Ver.: always - * @param operatingModeDuringHoliday Ver.: always - */ -bool emberAfDoorLockClusterSetHolidayScheduleCallback(uint8_t scheduleId, uint32_t localStartTime, uint32_t localEndTime, - uint8_t operatingModeDuringHoliday); -/** @brief Door Lock Cluster Set Holiday Schedule Response - * - * - * - * @param status Ver.: always - */ -bool emberAfDoorLockClusterSetHolidayScheduleResponseCallback(uint8_t status); -/** @brief Door Lock Cluster Set Pin - * - * - * - * @param userId Ver.: always - * @param userStatus Ver.: always - * @param userType Ver.: always - * @param pin Ver.: always - */ -bool emberAfDoorLockClusterSetPinCallback(uint16_t userId, uint8_t userStatus, uint8_t userType, uint8_t * pin); -/** @brief Door Lock Cluster Set Pin Response - * - * - * - * @param status Ver.: always - */ -bool emberAfDoorLockClusterSetPinResponseCallback(uint8_t status); -/** @brief Door Lock Cluster Set Rfid - * - * - * - * @param userId Ver.: always - * @param userStatus Ver.: always - * @param userType Ver.: always - * @param id Ver.: always - */ -bool emberAfDoorLockClusterSetRfidCallback(uint16_t userId, uint8_t userStatus, uint8_t userType, uint8_t * id); -/** @brief Door Lock Cluster Set Rfid Response - * - * - * - * @param status Ver.: always - */ -bool emberAfDoorLockClusterSetRfidResponseCallback(uint8_t status); -/** @brief Door Lock Cluster Set User Status - * - * - * - * @param userId Ver.: always - * @param userStatus Ver.: always - */ -bool emberAfDoorLockClusterSetUserStatusCallback(uint16_t userId, uint8_t userStatus); -/** @brief Door Lock Cluster Set User Status Response - * - * - * - * @param status Ver.: always - */ -bool emberAfDoorLockClusterSetUserStatusResponseCallback(uint8_t status); -/** @brief Door Lock Cluster Set User Type - * - * - * - * @param userId Ver.: always - * @param userType Ver.: always - */ -bool emberAfDoorLockClusterSetUserTypeCallback(uint16_t userId, uint8_t userType); -/** @brief Door Lock Cluster Set User Type Response - * - * - * - * @param status Ver.: always - */ -bool emberAfDoorLockClusterSetUserTypeResponseCallback(uint8_t status); -/** @brief Door Lock Cluster Set Weekday Schedule - * - * - * - * @param scheduleId Ver.: always - * @param userId Ver.: always - * @param daysMask Ver.: always - * @param startHour Ver.: always - * @param startMinute Ver.: always - * @param endHour Ver.: always - * @param endMinute Ver.: always - */ -bool emberAfDoorLockClusterSetWeekdayScheduleCallback(uint8_t scheduleId, uint16_t userId, uint8_t daysMask, uint8_t startHour, - uint8_t startMinute, uint8_t endHour, uint8_t endMinute); -/** @brief Door Lock Cluster Set Weekday Schedule Response - * - * - * - * @param status Ver.: always - */ -bool emberAfDoorLockClusterSetWeekdayScheduleResponseCallback(uint8_t status); -/** @brief Door Lock Cluster Set Yearday Schedule - * - * - * - * @param scheduleId Ver.: always - * @param userId Ver.: always - * @param localStartTime Ver.: always - * @param localEndTime Ver.: always - */ -bool emberAfDoorLockClusterSetYeardayScheduleCallback(uint8_t scheduleId, uint16_t userId, uint32_t localStartTime, - uint32_t localEndTime); -/** @brief Door Lock Cluster Set Yearday Schedule Response - * - * - * - * @param status Ver.: always - */ -bool emberAfDoorLockClusterSetYeardayScheduleResponseCallback(uint8_t status); -/** @brief Door Lock Cluster Toggle - * - * - * - * @param pin Ver.: since ha-1.2-05-3520-29 - */ -bool emberAfDoorLockClusterToggleCallback(uint8_t * pin); -/** @brief Door Lock Cluster Toggle Response - * - * - * - * @param status Ver.: always - */ -bool emberAfDoorLockClusterToggleResponseCallback(uint8_t status); -/** @brief Door Lock Cluster Unlock Door - * - * - * - * @param PIN Ver.: since ha-1.2-05-3520-29 - */ -bool emberAfDoorLockClusterUnlockDoorCallback(uint8_t * PIN); -/** @brief Door Lock Cluster Unlock Door Response - * - * - * - * @param status Ver.: always - */ -bool emberAfDoorLockClusterUnlockDoorResponseCallback(uint8_t status); -/** @brief Door Lock Cluster Unlock With Timeout - * - * - * - * @param timeoutInSeconds Ver.: always - * @param pin Ver.: since ha-1.2-05-3520-29 - */ -bool emberAfDoorLockClusterUnlockWithTimeoutCallback(uint16_t timeoutInSeconds, uint8_t * pin); -/** @brief Door Lock Cluster Unlock With Timeout Response - * - * - * - * @param status Ver.: always - */ -bool emberAfDoorLockClusterUnlockWithTimeoutResponseCallback(uint8_t status); - -/** @} END Door Lock Cluster Callbacks */ - -/** @name Window Covering Cluster Callbacks */ -// @{ - -/** @brief Window Covering Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfWindowCoveringClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Window Covering Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfWindowCoveringClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Window Covering Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfWindowCoveringClusterClientInitCallback(uint8_t endpoint); -/** @brief Window Covering Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfWindowCoveringClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Window Covering Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfWindowCoveringClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Window Covering Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfWindowCoveringClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Window Covering Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfWindowCoveringClusterClientTickCallback(uint8_t endpoint); -/** @brief Window Covering Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfWindowCoveringClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Window Covering Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfWindowCoveringClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Window Covering Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfWindowCoveringClusterServerInitCallback(uint8_t endpoint); -/** @brief Window Covering Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfWindowCoveringClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Window Covering Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfWindowCoveringClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Window Covering Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfWindowCoveringClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Window Covering Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfWindowCoveringClusterServerTickCallback(uint8_t endpoint); -/** @brief Window Covering Cluster Window Covering Down Close - * - * - * - */ -bool emberAfWindowCoveringClusterWindowCoveringDownCloseCallback(void); -/** @brief Window Covering Cluster Window Covering Go To Lift Percentage - * - * - * - * @param percentageLiftValue Ver.: always - */ -bool emberAfWindowCoveringClusterWindowCoveringGoToLiftPercentageCallback(uint8_t percentageLiftValue); -/** @brief Window Covering Cluster Window Covering Go To Lift Value - * - * - * - * @param liftValue Ver.: always - */ -bool emberAfWindowCoveringClusterWindowCoveringGoToLiftValueCallback(uint16_t liftValue); -/** @brief Window Covering Cluster Window Covering Go To Tilt Percentage - * - * - * - * @param percentageTiltValue Ver.: always - */ -bool emberAfWindowCoveringClusterWindowCoveringGoToTiltPercentageCallback(uint8_t percentageTiltValue); -/** @brief Window Covering Cluster Window Covering Go To Tilt Value - * - * - * - * @param tiltValue Ver.: always - */ -bool emberAfWindowCoveringClusterWindowCoveringGoToTiltValueCallback(uint16_t tiltValue); -/** @brief Window Covering Cluster Window Covering Stop - * - * - * - */ -bool emberAfWindowCoveringClusterWindowCoveringStopCallback(void); -/** @brief Window Covering Cluster Window Covering Up Open - * - * - * - */ -bool emberAfWindowCoveringClusterWindowCoveringUpOpenCallback(void); - -/** @} END Window Covering Cluster Callbacks */ - -/** @name Barrier Control Cluster Callbacks */ -// @{ - -/** @brief Barrier Control Cluster Barrier Control Go To Percent - * - * - * - * @param percentOpen Ver.: always - */ -bool emberAfBarrierControlClusterBarrierControlGoToPercentCallback(uint8_t percentOpen); -/** @brief Barrier Control Cluster Barrier Control Stop - * - * - * - */ -bool emberAfBarrierControlClusterBarrierControlStopCallback(void); -/** @brief Barrier Control Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfBarrierControlClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Barrier Control Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfBarrierControlClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Barrier Control Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfBarrierControlClusterClientInitCallback(uint8_t endpoint); -/** @brief Barrier Control Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfBarrierControlClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Barrier Control Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfBarrierControlClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Barrier Control Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfBarrierControlClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Barrier Control Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfBarrierControlClusterClientTickCallback(uint8_t endpoint); -/** @brief Barrier Control Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfBarrierControlClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Barrier Control Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfBarrierControlClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Barrier Control Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfBarrierControlClusterServerInitCallback(uint8_t endpoint); -/** @brief Barrier Control Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfBarrierControlClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Barrier Control Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfBarrierControlClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Barrier Control Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfBarrierControlClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Barrier Control Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfBarrierControlClusterServerTickCallback(uint8_t endpoint); - -/** @} END Barrier Control Cluster Callbacks */ - -/** @name Pump Configuration and Control Cluster Callbacks */ -// @{ - -/** @brief Pump Configuration and Control Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfPumpConfigControlClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Pump Configuration and Control Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfPumpConfigControlClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Pump Configuration and Control Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfPumpConfigControlClusterClientInitCallback(uint8_t endpoint); -/** @brief Pump Configuration and Control Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfPumpConfigControlClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Pump Configuration and Control Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfPumpConfigControlClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Pump Configuration and Control Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfPumpConfigControlClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Pump Configuration and Control Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfPumpConfigControlClusterClientTickCallback(uint8_t endpoint); -/** @brief Pump Configuration and Control Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfPumpConfigControlClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Pump Configuration and Control Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfPumpConfigControlClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Pump Configuration and Control Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfPumpConfigControlClusterServerInitCallback(uint8_t endpoint); -/** @brief Pump Configuration and Control Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfPumpConfigControlClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Pump Configuration and Control Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfPumpConfigControlClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Pump Configuration and Control Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfPumpConfigControlClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Pump Configuration and Control Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfPumpConfigControlClusterServerTickCallback(uint8_t endpoint); - -/** @} END Pump Configuration and Control Cluster Callbacks */ - -/** @name Thermostat Cluster Callbacks */ -// @{ - -/** @brief Thermostat Cluster Clear Weekly Schedule - * - * - * - */ -bool emberAfThermostatClusterClearWeeklyScheduleCallback(void); -/** @brief Thermostat Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfThermostatClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Thermostat Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfThermostatClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Thermostat Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfThermostatClusterClientInitCallback(uint8_t endpoint); -/** @brief Thermostat Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfThermostatClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Thermostat Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfThermostatClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Thermostat Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfThermostatClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Thermostat Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfThermostatClusterClientTickCallback(uint8_t endpoint); -/** @brief Thermostat Cluster Current Weekly Schedule - * - * - * - * @param numberOfTransitionsForSequence Ver.: always - * @param dayOfWeekForSequence Ver.: always - * @param modeForSequence Ver.: always - * @param payload Ver.: always - */ -bool emberAfThermostatClusterCurrentWeeklyScheduleCallback(uint8_t numberOfTransitionsForSequence, uint8_t dayOfWeekForSequence, - uint8_t modeForSequence, uint8_t * payload); -/** @brief Thermostat Cluster Get Relay Status Log - * - * - * - */ -bool emberAfThermostatClusterGetRelayStatusLogCallback(void); -/** @brief Thermostat Cluster Get Weekly Schedule - * - * - * - * @param daysToReturn Ver.: always - * @param modeToReturn Ver.: always - */ -bool emberAfThermostatClusterGetWeeklyScheduleCallback(uint8_t daysToReturn, uint8_t modeToReturn); -/** @brief Thermostat Cluster Relay Status Log - * - * - * - * @param timeOfDay Ver.: always - * @param relayStatus Ver.: always - * @param localTemperature Ver.: always - * @param humidityInPercentage Ver.: always - * @param setpoint Ver.: always - * @param unreadEntries Ver.: always - */ -bool emberAfThermostatClusterRelayStatusLogCallback(uint16_t timeOfDay, uint16_t relayStatus, int16_t localTemperature, - uint8_t humidityInPercentage, int16_t setpoint, uint16_t unreadEntries); -/** @brief Thermostat Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfThermostatClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Thermostat Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfThermostatClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Thermostat Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfThermostatClusterServerInitCallback(uint8_t endpoint); -/** @brief Thermostat Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfThermostatClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Thermostat Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfThermostatClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Thermostat Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfThermostatClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Thermostat Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfThermostatClusterServerTickCallback(uint8_t endpoint); -/** @brief Thermostat Cluster Set Weekly Schedule - * - * - * - * @param numberOfTransitionsForSequence Ver.: always - * @param dayOfWeekForSequence Ver.: always - * @param modeForSequence Ver.: always - * @param payload Ver.: always - */ -bool emberAfThermostatClusterSetWeeklyScheduleCallback(uint8_t numberOfTransitionsForSequence, uint8_t dayOfWeekForSequence, - uint8_t modeForSequence, uint8_t * payload); -/** @brief Thermostat Cluster Setpoint Raise Lower - * - * - * - * @param mode Ver.: always - * @param amount Ver.: always - */ -bool emberAfThermostatClusterSetpointRaiseLowerCallback(uint8_t mode, int8_t amount); - -/** @} END Thermostat Cluster Callbacks */ - -/** @name Fan Control Cluster Callbacks */ -// @{ - -/** @brief Fan Control Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfFanControlClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Fan Control Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfFanControlClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Fan Control Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfFanControlClusterClientInitCallback(uint8_t endpoint); -/** @brief Fan Control Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfFanControlClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Fan Control Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfFanControlClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Fan Control Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfFanControlClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Fan Control Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfFanControlClusterClientTickCallback(uint8_t endpoint); -/** @brief Fan Control Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfFanControlClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Fan Control Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfFanControlClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Fan Control Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfFanControlClusterServerInitCallback(uint8_t endpoint); -/** @brief Fan Control Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfFanControlClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Fan Control Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfFanControlClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Fan Control Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfFanControlClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Fan Control Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfFanControlClusterServerTickCallback(uint8_t endpoint); - -/** @} END Fan Control Cluster Callbacks */ - -/** @name Dehumidification Control Cluster Callbacks */ -// @{ - -/** @brief Dehumidification Control Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfDehumidControlClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Dehumidification Control Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfDehumidControlClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Dehumidification Control Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfDehumidControlClusterClientInitCallback(uint8_t endpoint); -/** @brief Dehumidification Control Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfDehumidControlClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Dehumidification Control Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfDehumidControlClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Dehumidification Control Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfDehumidControlClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Dehumidification Control Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfDehumidControlClusterClientTickCallback(uint8_t endpoint); -/** @brief Dehumidification Control Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfDehumidControlClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Dehumidification Control Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfDehumidControlClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Dehumidification Control Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfDehumidControlClusterServerInitCallback(uint8_t endpoint); -/** @brief Dehumidification Control Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfDehumidControlClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Dehumidification Control Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfDehumidControlClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Dehumidification Control Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfDehumidControlClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Dehumidification Control Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfDehumidControlClusterServerTickCallback(uint8_t endpoint); - -/** @} END Dehumidification Control Cluster Callbacks */ - -/** @name Thermostat User Interface Configuration Cluster Callbacks */ -// @{ - -/** @brief Thermostat User Interface Configuration Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfThermostatUiConfigClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Thermostat User Interface Configuration Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfThermostatUiConfigClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Thermostat User Interface Configuration Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfThermostatUiConfigClusterClientInitCallback(uint8_t endpoint); -/** @brief Thermostat User Interface Configuration Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfThermostatUiConfigClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Thermostat User Interface Configuration Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfThermostatUiConfigClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Thermostat User Interface Configuration Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfThermostatUiConfigClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Thermostat User Interface Configuration Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfThermostatUiConfigClusterClientTickCallback(uint8_t endpoint); -/** @brief Thermostat User Interface Configuration Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfThermostatUiConfigClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Thermostat User Interface Configuration Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfThermostatUiConfigClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Thermostat User Interface Configuration Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfThermostatUiConfigClusterServerInitCallback(uint8_t endpoint); -/** @brief Thermostat User Interface Configuration Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfThermostatUiConfigClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Thermostat User Interface Configuration Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfThermostatUiConfigClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Thermostat User Interface Configuration Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfThermostatUiConfigClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Thermostat User Interface Configuration Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfThermostatUiConfigClusterServerTickCallback(uint8_t endpoint); - -/** @} END Thermostat User Interface Configuration Cluster Callbacks */ - -/** @name Color Control Cluster Callbacks */ -// @{ - -/** @brief Color Control Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfColorControlClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Color Control Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfColorControlClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Color Control Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfColorControlClusterClientInitCallback(uint8_t endpoint); -/** @brief Color Control Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfColorControlClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Color Control Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfColorControlClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Color Control Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfColorControlClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Color Control Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfColorControlClusterClientTickCallback(uint8_t endpoint); -/** @brief Color Control Cluster Color Loop Set - * - * - * - * @param updateFlags Ver.: always - * @param action Ver.: always - * @param direction Ver.: always - * @param time Ver.: always - * @param startHue Ver.: always - */ -bool emberAfColorControlClusterColorLoopSetCallback(uint8_t updateFlags, uint8_t action, uint8_t direction, uint16_t time, - uint16_t startHue); -/** @brief Color Control Cluster Enhanced Move Hue - * - * - * - * @param moveMode Ver.: always - * @param rate Ver.: always - */ -bool emberAfColorControlClusterEnhancedMoveHueCallback(uint8_t moveMode, uint16_t rate); -/** @brief Color Control Cluster Enhanced Move To Hue And Saturation - * - * - * - * @param enhancedHue Ver.: always - * @param saturation Ver.: always - * @param transitionTime Ver.: always - */ -bool emberAfColorControlClusterEnhancedMoveToHueAndSaturationCallback(uint16_t enhancedHue, uint8_t saturation, - uint16_t transitionTime); -/** @brief Color Control Cluster Enhanced Move To Hue - * - * - * - * @param enhancedHue Ver.: always - * @param direction Ver.: always - * @param transitionTime Ver.: always - */ -bool emberAfColorControlClusterEnhancedMoveToHueCallback(uint16_t enhancedHue, uint8_t direction, uint16_t transitionTime); -/** @brief Color Control Cluster Enhanced Step Hue - * - * - * - * @param stepMode Ver.: always - * @param stepSize Ver.: always - * @param transitionTime Ver.: always - */ -bool emberAfColorControlClusterEnhancedStepHueCallback(uint8_t stepMode, uint16_t stepSize, uint16_t transitionTime); -/** @brief Color Control Cluster Move Color - * - * - * - * @param rateX Ver.: always - * @param rateY Ver.: always - * @param optionsMask Ver.: since zcl6-errata-14-0129-15 - * @param optionsOverride Ver.: since zcl6-errata-14-0129-15 - */ -bool emberAfColorControlClusterMoveColorCallback(int16_t rateX, int16_t rateY, uint8_t optionsMask, uint8_t optionsOverride); -/** @brief Color Control Cluster Move Color Temperature - * - * - * - * @param moveMode Ver.: always - * @param rate Ver.: always - * @param colorTemperatureMinimum Ver.: always - * @param colorTemperatureMaximum Ver.: always - * @param optionsMask Ver.: since zcl6-errata-14-0129-15 - * @param optionsOverride Ver.: since zcl6-errata-14-0129-15 - */ -bool emberAfColorControlClusterMoveColorTemperatureCallback(uint8_t moveMode, uint16_t rate, uint16_t colorTemperatureMinimum, - uint16_t colorTemperatureMaximum, uint8_t optionsMask, - uint8_t optionsOverride); -/** @brief Color Control Cluster Move Hue - * - * - * - * @param moveMode Ver.: always - * @param rate Ver.: always - * @param optionsMask Ver.: since zcl6-errata-14-0129-15 - * @param optionsOverride Ver.: since zcl6-errata-14-0129-15 - */ -bool emberAfColorControlClusterMoveHueCallback(uint8_t moveMode, uint8_t rate, uint8_t optionsMask, uint8_t optionsOverride); -/** @brief Color Control Cluster Move Saturation - * - * - * - * @param moveMode Ver.: always - * @param rate Ver.: always - * @param optionsMask Ver.: since zcl6-errata-14-0129-15 - * @param optionsOverride Ver.: since zcl6-errata-14-0129-15 - */ -bool emberAfColorControlClusterMoveSaturationCallback(uint8_t moveMode, uint8_t rate, uint8_t optionsMask, uint8_t optionsOverride); -/** @brief Color Control Cluster Move To Color - * - * - * - * @param colorX Ver.: always - * @param colorY Ver.: always - * @param transitionTime Ver.: always - * @param optionsMask Ver.: since zcl6-errata-14-0129-15 - * @param optionsOverride Ver.: since zcl6-errata-14-0129-15 - */ -bool emberAfColorControlClusterMoveToColorCallback(uint16_t colorX, uint16_t colorY, uint16_t transitionTime, uint8_t optionsMask, - uint8_t optionsOverride); -/** @brief Color Control Cluster Move To Color Temperature - * - * - * - * @param colorTemperature Ver.: always - * @param transitionTime Ver.: always - * @param optionsMask Ver.: since zcl6-errata-14-0129-15 - * @param optionsOverride Ver.: since zcl6-errata-14-0129-15 - */ -bool emberAfColorControlClusterMoveToColorTemperatureCallback(uint16_t colorTemperature, uint16_t transitionTime, - uint8_t optionsMask, uint8_t optionsOverride); -/** @brief Color Control Cluster Move To Hue And Saturation - * - * - * - * @param hue Ver.: always - * @param saturation Ver.: always - * @param transitionTime Ver.: always - * @param optionsMask Ver.: since zcl6-errata-14-0129-15 - * @param optionsOverride Ver.: since zcl6-errata-14-0129-15 - */ -bool emberAfColorControlClusterMoveToHueAndSaturationCallback(uint8_t hue, uint8_t saturation, uint16_t transitionTime, - uint8_t optionsMask, uint8_t optionsOverride); -/** @brief Color Control Cluster Move To Hue - * - * - * - * @param hue Ver.: always - * @param direction Ver.: always - * @param transitionTime Ver.: always - * @param optionsMask Ver.: since zcl6-errata-14-0129-15 - * @param optionsOverride Ver.: since zcl6-errata-14-0129-15 - */ -bool emberAfColorControlClusterMoveToHueCallback(uint8_t hue, uint8_t direction, uint16_t transitionTime, uint8_t optionsMask, - uint8_t optionsOverride); -/** @brief Color Control Cluster Move To Saturation - * - * - * - * @param saturation Ver.: always - * @param transitionTime Ver.: always - * @param optionsMask Ver.: since zcl6-errata-14-0129-15 - * @param optionsOverride Ver.: since zcl6-errata-14-0129-15 - */ -bool emberAfColorControlClusterMoveToSaturationCallback(uint8_t saturation, uint16_t transitionTime, uint8_t optionsMask, - uint8_t optionsOverride); -/** @brief Color Control Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfColorControlClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Color Control Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfColorControlClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Color Control Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfColorControlClusterServerInitCallback(uint8_t endpoint); -/** @brief Color Control Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfColorControlClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Color Control Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfColorControlClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Color Control Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfColorControlClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Color Control Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfColorControlClusterServerTickCallback(uint8_t endpoint); -/** @brief Color Control Cluster Step Color - * - * - * - * @param stepX Ver.: always - * @param stepY Ver.: always - * @param transitionTime Ver.: always - * @param optionsMask Ver.: since zcl6-errata-14-0129-15 - * @param optionsOverride Ver.: since zcl6-errata-14-0129-15 - */ -bool emberAfColorControlClusterStepColorCallback(int16_t stepX, int16_t stepY, uint16_t transitionTime, uint8_t optionsMask, - uint8_t optionsOverride); -/** @brief Color Control Cluster Step Color Temperature - * - * - * - * @param stepMode Ver.: always - * @param stepSize Ver.: always - * @param transitionTime Ver.: always - * @param colorTemperatureMinimum Ver.: always - * @param colorTemperatureMaximum Ver.: always - * @param optionsMask Ver.: since zcl6-errata-14-0129-15 - * @param optionsOverride Ver.: since zcl6-errata-14-0129-15 - */ -bool emberAfColorControlClusterStepColorTemperatureCallback(uint8_t stepMode, uint16_t stepSize, uint16_t transitionTime, - uint16_t colorTemperatureMinimum, uint16_t colorTemperatureMaximum, - uint8_t optionsMask, uint8_t optionsOverride); -/** @brief Color Control Cluster Step Hue - * - * - * - * @param stepMode Ver.: always - * @param stepSize Ver.: always - * @param transitionTime Ver.: always - * @param optionsMask Ver.: since zcl6-errata-14-0129-15 - * @param optionsOverride Ver.: since zcl6-errata-14-0129-15 - */ -bool emberAfColorControlClusterStepHueCallback(uint8_t stepMode, uint8_t stepSize, uint8_t transitionTime, uint8_t optionsMask, - uint8_t optionsOverride); -/** @brief Color Control Cluster Step Saturation - * - * - * - * @param stepMode Ver.: always - * @param stepSize Ver.: always - * @param transitionTime Ver.: always - * @param optionsMask Ver.: since zcl6-errata-14-0129-15 - * @param optionsOverride Ver.: since zcl6-errata-14-0129-15 - */ -bool emberAfColorControlClusterStepSaturationCallback(uint8_t stepMode, uint8_t stepSize, uint8_t transitionTime, - uint8_t optionsMask, uint8_t optionsOverride); -/** @brief Color Control Cluster Stop Move Step - * - * - * - * @param optionsMask Ver.: since zcl6-errata-14-0129-15 - * @param optionsOverride Ver.: since zcl6-errata-14-0129-15 - */ -bool emberAfColorControlClusterStopMoveStepCallback(uint8_t optionsMask, uint8_t optionsOverride); - -/** @} END Color Control Cluster Callbacks */ - -/** @name Ballast Configuration Cluster Callbacks */ -// @{ - -/** @brief Ballast Configuration Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfBallastConfigurationClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Ballast Configuration Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfBallastConfigurationClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Ballast Configuration Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfBallastConfigurationClusterClientInitCallback(uint8_t endpoint); -/** @brief Ballast Configuration Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfBallastConfigurationClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Ballast Configuration Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfBallastConfigurationClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Ballast Configuration Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfBallastConfigurationClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Ballast Configuration Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfBallastConfigurationClusterClientTickCallback(uint8_t endpoint); -/** @brief Ballast Configuration Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfBallastConfigurationClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Ballast Configuration Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfBallastConfigurationClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Ballast Configuration Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfBallastConfigurationClusterServerInitCallback(uint8_t endpoint); -/** @brief Ballast Configuration Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfBallastConfigurationClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Ballast Configuration Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfBallastConfigurationClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Ballast Configuration Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfBallastConfigurationClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Ballast Configuration Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfBallastConfigurationClusterServerTickCallback(uint8_t endpoint); - -/** @} END Ballast Configuration Cluster Callbacks */ - -/** @name Illuminance Measurement Cluster Callbacks */ -// @{ - -/** @brief Illuminance Measurement Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfIllumMeasurementClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Illuminance Measurement Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfIllumMeasurementClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Illuminance Measurement Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfIllumMeasurementClusterClientInitCallback(uint8_t endpoint); -/** @brief Illuminance Measurement Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfIllumMeasurementClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Illuminance Measurement Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfIllumMeasurementClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Illuminance Measurement Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfIllumMeasurementClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Illuminance Measurement Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfIllumMeasurementClusterClientTickCallback(uint8_t endpoint); -/** @brief Illuminance Measurement Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfIllumMeasurementClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Illuminance Measurement Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfIllumMeasurementClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Illuminance Measurement Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfIllumMeasurementClusterServerInitCallback(uint8_t endpoint); -/** @brief Illuminance Measurement Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfIllumMeasurementClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Illuminance Measurement Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfIllumMeasurementClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Illuminance Measurement Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfIllumMeasurementClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Illuminance Measurement Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfIllumMeasurementClusterServerTickCallback(uint8_t endpoint); - -/** @} END Illuminance Measurement Cluster Callbacks */ - -/** @name Illuminance Level Sensing Cluster Callbacks */ -// @{ - -/** @brief Illuminance Level Sensing Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfIllumLevelSensingClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Illuminance Level Sensing Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfIllumLevelSensingClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Illuminance Level Sensing Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfIllumLevelSensingClusterClientInitCallback(uint8_t endpoint); -/** @brief Illuminance Level Sensing Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfIllumLevelSensingClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Illuminance Level Sensing Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfIllumLevelSensingClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Illuminance Level Sensing Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfIllumLevelSensingClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Illuminance Level Sensing Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfIllumLevelSensingClusterClientTickCallback(uint8_t endpoint); -/** @brief Illuminance Level Sensing Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfIllumLevelSensingClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Illuminance Level Sensing Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfIllumLevelSensingClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Illuminance Level Sensing Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfIllumLevelSensingClusterServerInitCallback(uint8_t endpoint); -/** @brief Illuminance Level Sensing Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfIllumLevelSensingClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Illuminance Level Sensing Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfIllumLevelSensingClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Illuminance Level Sensing Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfIllumLevelSensingClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Illuminance Level Sensing Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfIllumLevelSensingClusterServerTickCallback(uint8_t endpoint); - -/** @} END Illuminance Level Sensing Cluster Callbacks */ - -/** @name Temperature Measurement Cluster Callbacks */ -// @{ - -/** @brief Temperature Measurement Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfTempMeasurementClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Temperature Measurement Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfTempMeasurementClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Temperature Measurement Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfTempMeasurementClusterClientInitCallback(uint8_t endpoint); -/** @brief Temperature Measurement Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfTempMeasurementClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Temperature Measurement Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfTempMeasurementClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Temperature Measurement Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfTempMeasurementClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Temperature Measurement Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfTempMeasurementClusterClientTickCallback(uint8_t endpoint); -/** @brief Temperature Measurement Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfTempMeasurementClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Temperature Measurement Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfTempMeasurementClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Temperature Measurement Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfTempMeasurementClusterServerInitCallback(uint8_t endpoint); -/** @brief Temperature Measurement Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfTempMeasurementClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Temperature Measurement Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfTempMeasurementClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Temperature Measurement Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfTempMeasurementClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Temperature Measurement Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfTempMeasurementClusterServerTickCallback(uint8_t endpoint); - -/** @} END Temperature Measurement Cluster Callbacks */ - -/** @name Pressure Measurement Cluster Callbacks */ -// @{ - -/** @brief Pressure Measurement Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfPressureMeasurementClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Pressure Measurement Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfPressureMeasurementClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Pressure Measurement Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfPressureMeasurementClusterClientInitCallback(uint8_t endpoint); -/** @brief Pressure Measurement Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfPressureMeasurementClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Pressure Measurement Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfPressureMeasurementClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Pressure Measurement Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfPressureMeasurementClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Pressure Measurement Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfPressureMeasurementClusterClientTickCallback(uint8_t endpoint); -/** @brief Pressure Measurement Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfPressureMeasurementClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Pressure Measurement Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfPressureMeasurementClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Pressure Measurement Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfPressureMeasurementClusterServerInitCallback(uint8_t endpoint); -/** @brief Pressure Measurement Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfPressureMeasurementClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Pressure Measurement Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfPressureMeasurementClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Pressure Measurement Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfPressureMeasurementClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Pressure Measurement Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfPressureMeasurementClusterServerTickCallback(uint8_t endpoint); - -/** @} END Pressure Measurement Cluster Callbacks */ - -/** @name Flow Measurement Cluster Callbacks */ -// @{ - -/** @brief Flow Measurement Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfFlowMeasurementClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Flow Measurement Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfFlowMeasurementClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Flow Measurement Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfFlowMeasurementClusterClientInitCallback(uint8_t endpoint); -/** @brief Flow Measurement Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfFlowMeasurementClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Flow Measurement Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfFlowMeasurementClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Flow Measurement Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfFlowMeasurementClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Flow Measurement Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfFlowMeasurementClusterClientTickCallback(uint8_t endpoint); -/** @brief Flow Measurement Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfFlowMeasurementClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Flow Measurement Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfFlowMeasurementClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Flow Measurement Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfFlowMeasurementClusterServerInitCallback(uint8_t endpoint); -/** @brief Flow Measurement Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfFlowMeasurementClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Flow Measurement Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfFlowMeasurementClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Flow Measurement Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfFlowMeasurementClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Flow Measurement Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfFlowMeasurementClusterServerTickCallback(uint8_t endpoint); - -/** @} END Flow Measurement Cluster Callbacks */ - -/** @name Relative Humidity Measurement Cluster Callbacks */ -// @{ - -/** @brief Relative Humidity Measurement Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfRelativeHumidityMeasurementClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Relative Humidity Measurement Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfRelativeHumidityMeasurementClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Relative Humidity Measurement Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfRelativeHumidityMeasurementClusterClientInitCallback(uint8_t endpoint); -/** @brief Relative Humidity Measurement Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfRelativeHumidityMeasurementClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Relative Humidity Measurement Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfRelativeHumidityMeasurementClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, - uint8_t * message, EmberStatus status); -/** @brief Relative Humidity Measurement Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfRelativeHumidityMeasurementClusterClientPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Relative Humidity Measurement Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfRelativeHumidityMeasurementClusterClientTickCallback(uint8_t endpoint); -/** @brief Relative Humidity Measurement Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfRelativeHumidityMeasurementClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Relative Humidity Measurement Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfRelativeHumidityMeasurementClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Relative Humidity Measurement Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfRelativeHumidityMeasurementClusterServerInitCallback(uint8_t endpoint); -/** @brief Relative Humidity Measurement Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfRelativeHumidityMeasurementClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Relative Humidity Measurement Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfRelativeHumidityMeasurementClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, - uint8_t * message, EmberStatus status); -/** @brief Relative Humidity Measurement Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfRelativeHumidityMeasurementClusterServerPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Relative Humidity Measurement Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfRelativeHumidityMeasurementClusterServerTickCallback(uint8_t endpoint); - -/** @} END Relative Humidity Measurement Cluster Callbacks */ - -/** @name Occupancy Sensing Cluster Callbacks */ -// @{ - -/** @brief Occupancy Sensing Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfOccupancySensingClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Occupancy Sensing Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfOccupancySensingClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Occupancy Sensing Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfOccupancySensingClusterClientInitCallback(uint8_t endpoint); -/** @brief Occupancy Sensing Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfOccupancySensingClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Occupancy Sensing Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfOccupancySensingClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Occupancy Sensing Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfOccupancySensingClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Occupancy Sensing Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfOccupancySensingClusterClientTickCallback(uint8_t endpoint); -/** @brief Occupancy Sensing Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfOccupancySensingClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Occupancy Sensing Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfOccupancySensingClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Occupancy Sensing Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfOccupancySensingClusterServerInitCallback(uint8_t endpoint); -/** @brief Occupancy Sensing Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfOccupancySensingClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Occupancy Sensing Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfOccupancySensingClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Occupancy Sensing Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfOccupancySensingClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Occupancy Sensing Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfOccupancySensingClusterServerTickCallback(uint8_t endpoint); - -/** @} END Occupancy Sensing Cluster Callbacks */ - -/** @name Carbon Monoxide Concentration Measurement Cluster Callbacks */ -// @{ - -/** @brief Carbon Monoxide Concentration Measurement Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfCarbonMonoxideConcentrationMeasurementClusterClientAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId); -/** @brief Carbon Monoxide Concentration Measurement Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfCarbonMonoxideConcentrationMeasurementClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Carbon Monoxide Concentration Measurement Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfCarbonMonoxideConcentrationMeasurementClusterClientInitCallback(uint8_t endpoint); -/** @brief Carbon Monoxide Concentration Measurement Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfCarbonMonoxideConcentrationMeasurementClusterClientManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Carbon Monoxide Concentration Measurement Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfCarbonMonoxideConcentrationMeasurementClusterClientMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, - uint8_t * message, EmberStatus status); -/** @brief Carbon Monoxide Concentration Measurement Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfCarbonMonoxideConcentrationMeasurementClusterClientPreAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, EmberAfAttributeType attributeType, uint8_t size, uint8_t * value); -/** @brief Carbon Monoxide Concentration Measurement Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfCarbonMonoxideConcentrationMeasurementClusterClientTickCallback(uint8_t endpoint); -/** @brief Carbon Monoxide Concentration Measurement Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfCarbonMonoxideConcentrationMeasurementClusterServerAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId); -/** @brief Carbon Monoxide Concentration Measurement Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfCarbonMonoxideConcentrationMeasurementClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Carbon Monoxide Concentration Measurement Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfCarbonMonoxideConcentrationMeasurementClusterServerInitCallback(uint8_t endpoint); -/** @brief Carbon Monoxide Concentration Measurement Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfCarbonMonoxideConcentrationMeasurementClusterServerManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Carbon Monoxide Concentration Measurement Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfCarbonMonoxideConcentrationMeasurementClusterServerMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, - uint8_t * message, EmberStatus status); -/** @brief Carbon Monoxide Concentration Measurement Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfCarbonMonoxideConcentrationMeasurementClusterServerPreAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, EmberAfAttributeType attributeType, uint8_t size, uint8_t * value); -/** @brief Carbon Monoxide Concentration Measurement Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfCarbonMonoxideConcentrationMeasurementClusterServerTickCallback(uint8_t endpoint); - -/** @} END Carbon Monoxide Concentration Measurement Cluster Callbacks */ - -/** @name Carbon Dioxide Concentration Measurement Cluster Callbacks */ -// @{ - -/** @brief Carbon Dioxide Concentration Measurement Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfCarbonDioxideConcentrationMeasurementClusterClientAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId); -/** @brief Carbon Dioxide Concentration Measurement Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfCarbonDioxideConcentrationMeasurementClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Carbon Dioxide Concentration Measurement Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfCarbonDioxideConcentrationMeasurementClusterClientInitCallback(uint8_t endpoint); -/** @brief Carbon Dioxide Concentration Measurement Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfCarbonDioxideConcentrationMeasurementClusterClientManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Carbon Dioxide Concentration Measurement Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfCarbonDioxideConcentrationMeasurementClusterClientMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, - uint8_t * message, EmberStatus status); -/** @brief Carbon Dioxide Concentration Measurement Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfCarbonDioxideConcentrationMeasurementClusterClientPreAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, EmberAfAttributeType attributeType, uint8_t size, uint8_t * value); -/** @brief Carbon Dioxide Concentration Measurement Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfCarbonDioxideConcentrationMeasurementClusterClientTickCallback(uint8_t endpoint); -/** @brief Carbon Dioxide Concentration Measurement Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfCarbonDioxideConcentrationMeasurementClusterServerAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId); -/** @brief Carbon Dioxide Concentration Measurement Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfCarbonDioxideConcentrationMeasurementClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Carbon Dioxide Concentration Measurement Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfCarbonDioxideConcentrationMeasurementClusterServerInitCallback(uint8_t endpoint); -/** @brief Carbon Dioxide Concentration Measurement Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfCarbonDioxideConcentrationMeasurementClusterServerManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Carbon Dioxide Concentration Measurement Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfCarbonDioxideConcentrationMeasurementClusterServerMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, - uint8_t * message, EmberStatus status); -/** @brief Carbon Dioxide Concentration Measurement Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfCarbonDioxideConcentrationMeasurementClusterServerPreAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, EmberAfAttributeType attributeType, uint8_t size, uint8_t * value); -/** @brief Carbon Dioxide Concentration Measurement Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfCarbonDioxideConcentrationMeasurementClusterServerTickCallback(uint8_t endpoint); - -/** @} END Carbon Dioxide Concentration Measurement Cluster Callbacks */ - -/** @name Ethylene Concentration Measurement Cluster Callbacks */ -// @{ - -/** @brief Ethylene Concentration Measurement Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfEthyleneConcentrationMeasurementClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Ethylene Concentration Measurement Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfEthyleneConcentrationMeasurementClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Ethylene Concentration Measurement Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfEthyleneConcentrationMeasurementClusterClientInitCallback(uint8_t endpoint); -/** @brief Ethylene Concentration Measurement Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfEthyleneConcentrationMeasurementClusterClientManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Ethylene Concentration Measurement Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfEthyleneConcentrationMeasurementClusterClientMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, EmberApsFrame * apsFrame, - uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Ethylene Concentration Measurement Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfEthyleneConcentrationMeasurementClusterClientPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Ethylene Concentration Measurement Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfEthyleneConcentrationMeasurementClusterClientTickCallback(uint8_t endpoint); -/** @brief Ethylene Concentration Measurement Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfEthyleneConcentrationMeasurementClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Ethylene Concentration Measurement Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfEthyleneConcentrationMeasurementClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Ethylene Concentration Measurement Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfEthyleneConcentrationMeasurementClusterServerInitCallback(uint8_t endpoint); -/** @brief Ethylene Concentration Measurement Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfEthyleneConcentrationMeasurementClusterServerManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Ethylene Concentration Measurement Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfEthyleneConcentrationMeasurementClusterServerMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, EmberApsFrame * apsFrame, - uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Ethylene Concentration Measurement Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfEthyleneConcentrationMeasurementClusterServerPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Ethylene Concentration Measurement Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfEthyleneConcentrationMeasurementClusterServerTickCallback(uint8_t endpoint); - -/** @} END Ethylene Concentration Measurement Cluster Callbacks */ - -/** @name Ethylene Oxide Concentration Measurement Cluster Callbacks */ -// @{ - -/** @brief Ethylene Oxide Concentration Measurement Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfEthyleneOxideConcentrationMeasurementClusterClientAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId); -/** @brief Ethylene Oxide Concentration Measurement Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfEthyleneOxideConcentrationMeasurementClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Ethylene Oxide Concentration Measurement Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfEthyleneOxideConcentrationMeasurementClusterClientInitCallback(uint8_t endpoint); -/** @brief Ethylene Oxide Concentration Measurement Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfEthyleneOxideConcentrationMeasurementClusterClientManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Ethylene Oxide Concentration Measurement Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfEthyleneOxideConcentrationMeasurementClusterClientMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, - uint8_t * message, EmberStatus status); -/** @brief Ethylene Oxide Concentration Measurement Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfEthyleneOxideConcentrationMeasurementClusterClientPreAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, EmberAfAttributeType attributeType, uint8_t size, uint8_t * value); -/** @brief Ethylene Oxide Concentration Measurement Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfEthyleneOxideConcentrationMeasurementClusterClientTickCallback(uint8_t endpoint); -/** @brief Ethylene Oxide Concentration Measurement Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfEthyleneOxideConcentrationMeasurementClusterServerAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId); -/** @brief Ethylene Oxide Concentration Measurement Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfEthyleneOxideConcentrationMeasurementClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Ethylene Oxide Concentration Measurement Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfEthyleneOxideConcentrationMeasurementClusterServerInitCallback(uint8_t endpoint); -/** @brief Ethylene Oxide Concentration Measurement Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfEthyleneOxideConcentrationMeasurementClusterServerManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Ethylene Oxide Concentration Measurement Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfEthyleneOxideConcentrationMeasurementClusterServerMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, - uint8_t * message, EmberStatus status); -/** @brief Ethylene Oxide Concentration Measurement Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfEthyleneOxideConcentrationMeasurementClusterServerPreAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, EmberAfAttributeType attributeType, uint8_t size, uint8_t * value); -/** @brief Ethylene Oxide Concentration Measurement Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfEthyleneOxideConcentrationMeasurementClusterServerTickCallback(uint8_t endpoint); - -/** @} END Ethylene Oxide Concentration Measurement Cluster Callbacks */ - -/** @name Hydrogen Concentration Measurement Cluster Callbacks */ -// @{ - -/** @brief Hydrogen Concentration Measurement Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfHydrogenConcentrationMeasurementClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Hydrogen Concentration Measurement Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfHydrogenConcentrationMeasurementClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Hydrogen Concentration Measurement Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfHydrogenConcentrationMeasurementClusterClientInitCallback(uint8_t endpoint); -/** @brief Hydrogen Concentration Measurement Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfHydrogenConcentrationMeasurementClusterClientManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Hydrogen Concentration Measurement Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfHydrogenConcentrationMeasurementClusterClientMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, EmberApsFrame * apsFrame, - uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Hydrogen Concentration Measurement Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfHydrogenConcentrationMeasurementClusterClientPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Hydrogen Concentration Measurement Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfHydrogenConcentrationMeasurementClusterClientTickCallback(uint8_t endpoint); -/** @brief Hydrogen Concentration Measurement Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfHydrogenConcentrationMeasurementClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Hydrogen Concentration Measurement Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfHydrogenConcentrationMeasurementClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Hydrogen Concentration Measurement Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfHydrogenConcentrationMeasurementClusterServerInitCallback(uint8_t endpoint); -/** @brief Hydrogen Concentration Measurement Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfHydrogenConcentrationMeasurementClusterServerManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Hydrogen Concentration Measurement Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfHydrogenConcentrationMeasurementClusterServerMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, EmberApsFrame * apsFrame, - uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Hydrogen Concentration Measurement Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfHydrogenConcentrationMeasurementClusterServerPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Hydrogen Concentration Measurement Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfHydrogenConcentrationMeasurementClusterServerTickCallback(uint8_t endpoint); - -/** @} END Hydrogen Concentration Measurement Cluster Callbacks */ - -/** @name Hydrogen Sulphide Concentration Measurement Cluster Callbacks */ -// @{ - -/** @brief Hydrogen Sulphide Concentration Measurement Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfHydrogenSulphideConcentrationMeasurementClusterClientAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId); -/** @brief Hydrogen Sulphide Concentration Measurement Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfHydrogenSulphideConcentrationMeasurementClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Hydrogen Sulphide Concentration Measurement Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfHydrogenSulphideConcentrationMeasurementClusterClientInitCallback(uint8_t endpoint); -/** @brief Hydrogen Sulphide Concentration Measurement Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfHydrogenSulphideConcentrationMeasurementClusterClientManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Hydrogen Sulphide Concentration Measurement Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfHydrogenSulphideConcentrationMeasurementClusterClientMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, - uint8_t * message, EmberStatus status); -/** @brief Hydrogen Sulphide Concentration Measurement Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfHydrogenSulphideConcentrationMeasurementClusterClientPreAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, EmberAfAttributeType attributeType, uint8_t size, uint8_t * value); -/** @brief Hydrogen Sulphide Concentration Measurement Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfHydrogenSulphideConcentrationMeasurementClusterClientTickCallback(uint8_t endpoint); -/** @brief Hydrogen Sulphide Concentration Measurement Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfHydrogenSulphideConcentrationMeasurementClusterServerAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId); -/** @brief Hydrogen Sulphide Concentration Measurement Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfHydrogenSulphideConcentrationMeasurementClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Hydrogen Sulphide Concentration Measurement Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfHydrogenSulphideConcentrationMeasurementClusterServerInitCallback(uint8_t endpoint); -/** @brief Hydrogen Sulphide Concentration Measurement Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfHydrogenSulphideConcentrationMeasurementClusterServerManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Hydrogen Sulphide Concentration Measurement Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfHydrogenSulphideConcentrationMeasurementClusterServerMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, - uint8_t * message, EmberStatus status); -/** @brief Hydrogen Sulphide Concentration Measurement Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfHydrogenSulphideConcentrationMeasurementClusterServerPreAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, EmberAfAttributeType attributeType, uint8_t size, uint8_t * value); -/** @brief Hydrogen Sulphide Concentration Measurement Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfHydrogenSulphideConcentrationMeasurementClusterServerTickCallback(uint8_t endpoint); - -/** @} END Hydrogen Sulphide Concentration Measurement Cluster Callbacks */ - -/** @name Nitric Oxide Concentration Measurement Cluster Callbacks */ -// @{ - -/** @brief Nitric Oxide Concentration Measurement Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfNitricOxideConcentrationMeasurementClusterClientAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId); -/** @brief Nitric Oxide Concentration Measurement Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfNitricOxideConcentrationMeasurementClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Nitric Oxide Concentration Measurement Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfNitricOxideConcentrationMeasurementClusterClientInitCallback(uint8_t endpoint); -/** @brief Nitric Oxide Concentration Measurement Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfNitricOxideConcentrationMeasurementClusterClientManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Nitric Oxide Concentration Measurement Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfNitricOxideConcentrationMeasurementClusterClientMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, - uint8_t * message, EmberStatus status); -/** @brief Nitric Oxide Concentration Measurement Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfNitricOxideConcentrationMeasurementClusterClientPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Nitric Oxide Concentration Measurement Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfNitricOxideConcentrationMeasurementClusterClientTickCallback(uint8_t endpoint); -/** @brief Nitric Oxide Concentration Measurement Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfNitricOxideConcentrationMeasurementClusterServerAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId); -/** @brief Nitric Oxide Concentration Measurement Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfNitricOxideConcentrationMeasurementClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Nitric Oxide Concentration Measurement Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfNitricOxideConcentrationMeasurementClusterServerInitCallback(uint8_t endpoint); -/** @brief Nitric Oxide Concentration Measurement Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfNitricOxideConcentrationMeasurementClusterServerManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Nitric Oxide Concentration Measurement Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfNitricOxideConcentrationMeasurementClusterServerMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, - uint8_t * message, EmberStatus status); -/** @brief Nitric Oxide Concentration Measurement Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfNitricOxideConcentrationMeasurementClusterServerPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Nitric Oxide Concentration Measurement Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfNitricOxideConcentrationMeasurementClusterServerTickCallback(uint8_t endpoint); - -/** @} END Nitric Oxide Concentration Measurement Cluster Callbacks */ - -/** @name Nitrogen Dioxide Concentration Measurement Cluster Callbacks */ -// @{ - -/** @brief Nitrogen Dioxide Concentration Measurement Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfNitrogenDioxideConcentrationMeasurementClusterClientAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId); -/** @brief Nitrogen Dioxide Concentration Measurement Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfNitrogenDioxideConcentrationMeasurementClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Nitrogen Dioxide Concentration Measurement Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfNitrogenDioxideConcentrationMeasurementClusterClientInitCallback(uint8_t endpoint); -/** @brief Nitrogen Dioxide Concentration Measurement Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfNitrogenDioxideConcentrationMeasurementClusterClientManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Nitrogen Dioxide Concentration Measurement Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfNitrogenDioxideConcentrationMeasurementClusterClientMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, - uint8_t * message, EmberStatus status); -/** @brief Nitrogen Dioxide Concentration Measurement Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfNitrogenDioxideConcentrationMeasurementClusterClientPreAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, EmberAfAttributeType attributeType, uint8_t size, uint8_t * value); -/** @brief Nitrogen Dioxide Concentration Measurement Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfNitrogenDioxideConcentrationMeasurementClusterClientTickCallback(uint8_t endpoint); -/** @brief Nitrogen Dioxide Concentration Measurement Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfNitrogenDioxideConcentrationMeasurementClusterServerAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId); -/** @brief Nitrogen Dioxide Concentration Measurement Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfNitrogenDioxideConcentrationMeasurementClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Nitrogen Dioxide Concentration Measurement Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfNitrogenDioxideConcentrationMeasurementClusterServerInitCallback(uint8_t endpoint); -/** @brief Nitrogen Dioxide Concentration Measurement Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfNitrogenDioxideConcentrationMeasurementClusterServerManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Nitrogen Dioxide Concentration Measurement Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfNitrogenDioxideConcentrationMeasurementClusterServerMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, - uint8_t * message, EmberStatus status); -/** @brief Nitrogen Dioxide Concentration Measurement Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfNitrogenDioxideConcentrationMeasurementClusterServerPreAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, EmberAfAttributeType attributeType, uint8_t size, uint8_t * value); -/** @brief Nitrogen Dioxide Concentration Measurement Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfNitrogenDioxideConcentrationMeasurementClusterServerTickCallback(uint8_t endpoint); - -/** @} END Nitrogen Dioxide Concentration Measurement Cluster Callbacks */ - -/** @name Oxygen Concentration Measurement Cluster Callbacks */ -// @{ - -/** @brief Oxygen Concentration Measurement Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfOxygenConcentrationMeasurementClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Oxygen Concentration Measurement Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfOxygenConcentrationMeasurementClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Oxygen Concentration Measurement Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfOxygenConcentrationMeasurementClusterClientInitCallback(uint8_t endpoint); -/** @brief Oxygen Concentration Measurement Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfOxygenConcentrationMeasurementClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Oxygen Concentration Measurement Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfOxygenConcentrationMeasurementClusterClientMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, EmberApsFrame * apsFrame, - uint16_t msgLen, uint8_t * message, EmberStatus status); -/** @brief Oxygen Concentration Measurement Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfOxygenConcentrationMeasurementClusterClientPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Oxygen Concentration Measurement Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfOxygenConcentrationMeasurementClusterClientTickCallback(uint8_t endpoint); -/** @brief Oxygen Concentration Measurement Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfOxygenConcentrationMeasurementClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Oxygen Concentration Measurement Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfOxygenConcentrationMeasurementClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Oxygen Concentration Measurement Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfOxygenConcentrationMeasurementClusterServerInitCallback(uint8_t endpoint); -/** @brief Oxygen Concentration Measurement Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfOxygenConcentrationMeasurementClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Oxygen Concentration Measurement Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfOxygenConcentrationMeasurementClusterServerMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, EmberApsFrame * apsFrame, - uint16_t msgLen, uint8_t * message, EmberStatus status); -/** @brief Oxygen Concentration Measurement Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfOxygenConcentrationMeasurementClusterServerPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Oxygen Concentration Measurement Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfOxygenConcentrationMeasurementClusterServerTickCallback(uint8_t endpoint); - -/** @} END Oxygen Concentration Measurement Cluster Callbacks */ - -/** @name Ozone Concentration Measurement Cluster Callbacks */ -// @{ - -/** @brief Ozone Concentration Measurement Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfOzoneConcentrationMeasurementClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Ozone Concentration Measurement Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfOzoneConcentrationMeasurementClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Ozone Concentration Measurement Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfOzoneConcentrationMeasurementClusterClientInitCallback(uint8_t endpoint); -/** @brief Ozone Concentration Measurement Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfOzoneConcentrationMeasurementClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Ozone Concentration Measurement Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfOzoneConcentrationMeasurementClusterClientMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, EmberApsFrame * apsFrame, - uint16_t msgLen, uint8_t * message, EmberStatus status); -/** @brief Ozone Concentration Measurement Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfOzoneConcentrationMeasurementClusterClientPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Ozone Concentration Measurement Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfOzoneConcentrationMeasurementClusterClientTickCallback(uint8_t endpoint); -/** @brief Ozone Concentration Measurement Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfOzoneConcentrationMeasurementClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Ozone Concentration Measurement Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfOzoneConcentrationMeasurementClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Ozone Concentration Measurement Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfOzoneConcentrationMeasurementClusterServerInitCallback(uint8_t endpoint); -/** @brief Ozone Concentration Measurement Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfOzoneConcentrationMeasurementClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Ozone Concentration Measurement Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfOzoneConcentrationMeasurementClusterServerMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, EmberApsFrame * apsFrame, - uint16_t msgLen, uint8_t * message, EmberStatus status); -/** @brief Ozone Concentration Measurement Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfOzoneConcentrationMeasurementClusterServerPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Ozone Concentration Measurement Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfOzoneConcentrationMeasurementClusterServerTickCallback(uint8_t endpoint); - -/** @} END Ozone Concentration Measurement Cluster Callbacks */ - -/** @name Sulfur Dioxide Concentration Measurement Cluster Callbacks */ -// @{ - -/** @brief Sulfur Dioxide Concentration Measurement Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfSulfurDioxideConcentrationMeasurementClusterClientAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId); -/** @brief Sulfur Dioxide Concentration Measurement Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfSulfurDioxideConcentrationMeasurementClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Sulfur Dioxide Concentration Measurement Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfSulfurDioxideConcentrationMeasurementClusterClientInitCallback(uint8_t endpoint); -/** @brief Sulfur Dioxide Concentration Measurement Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfSulfurDioxideConcentrationMeasurementClusterClientManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Sulfur Dioxide Concentration Measurement Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfSulfurDioxideConcentrationMeasurementClusterClientMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, - uint8_t * message, EmberStatus status); -/** @brief Sulfur Dioxide Concentration Measurement Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfSulfurDioxideConcentrationMeasurementClusterClientPreAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, EmberAfAttributeType attributeType, uint8_t size, uint8_t * value); -/** @brief Sulfur Dioxide Concentration Measurement Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfSulfurDioxideConcentrationMeasurementClusterClientTickCallback(uint8_t endpoint); -/** @brief Sulfur Dioxide Concentration Measurement Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfSulfurDioxideConcentrationMeasurementClusterServerAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId); -/** @brief Sulfur Dioxide Concentration Measurement Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfSulfurDioxideConcentrationMeasurementClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Sulfur Dioxide Concentration Measurement Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfSulfurDioxideConcentrationMeasurementClusterServerInitCallback(uint8_t endpoint); -/** @brief Sulfur Dioxide Concentration Measurement Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfSulfurDioxideConcentrationMeasurementClusterServerManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Sulfur Dioxide Concentration Measurement Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfSulfurDioxideConcentrationMeasurementClusterServerMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, - uint8_t * message, EmberStatus status); -/** @brief Sulfur Dioxide Concentration Measurement Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfSulfurDioxideConcentrationMeasurementClusterServerPreAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, EmberAfAttributeType attributeType, uint8_t size, uint8_t * value); -/** @brief Sulfur Dioxide Concentration Measurement Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfSulfurDioxideConcentrationMeasurementClusterServerTickCallback(uint8_t endpoint); - -/** @} END Sulfur Dioxide Concentration Measurement Cluster Callbacks */ - -/** @name Dissolved Oxygen Concentration Measurement Cluster Callbacks */ -// @{ - -/** @brief Dissolved Oxygen Concentration Measurement Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfDissolvedOxygenConcentrationMeasurementClusterClientAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId); -/** @brief Dissolved Oxygen Concentration Measurement Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfDissolvedOxygenConcentrationMeasurementClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Dissolved Oxygen Concentration Measurement Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfDissolvedOxygenConcentrationMeasurementClusterClientInitCallback(uint8_t endpoint); -/** @brief Dissolved Oxygen Concentration Measurement Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfDissolvedOxygenConcentrationMeasurementClusterClientManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Dissolved Oxygen Concentration Measurement Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfDissolvedOxygenConcentrationMeasurementClusterClientMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, - uint8_t * message, EmberStatus status); -/** @brief Dissolved Oxygen Concentration Measurement Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfDissolvedOxygenConcentrationMeasurementClusterClientPreAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, EmberAfAttributeType attributeType, uint8_t size, uint8_t * value); -/** @brief Dissolved Oxygen Concentration Measurement Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfDissolvedOxygenConcentrationMeasurementClusterClientTickCallback(uint8_t endpoint); -/** @brief Dissolved Oxygen Concentration Measurement Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfDissolvedOxygenConcentrationMeasurementClusterServerAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId); -/** @brief Dissolved Oxygen Concentration Measurement Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfDissolvedOxygenConcentrationMeasurementClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Dissolved Oxygen Concentration Measurement Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfDissolvedOxygenConcentrationMeasurementClusterServerInitCallback(uint8_t endpoint); -/** @brief Dissolved Oxygen Concentration Measurement Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfDissolvedOxygenConcentrationMeasurementClusterServerManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Dissolved Oxygen Concentration Measurement Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfDissolvedOxygenConcentrationMeasurementClusterServerMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, - uint8_t * message, EmberStatus status); -/** @brief Dissolved Oxygen Concentration Measurement Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfDissolvedOxygenConcentrationMeasurementClusterServerPreAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, EmberAfAttributeType attributeType, uint8_t size, uint8_t * value); -/** @brief Dissolved Oxygen Concentration Measurement Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfDissolvedOxygenConcentrationMeasurementClusterServerTickCallback(uint8_t endpoint); - -/** @} END Dissolved Oxygen Concentration Measurement Cluster Callbacks */ - -/** @name Bromate Concentration Measurement Cluster Callbacks */ -// @{ - -/** @brief Bromate Concentration Measurement Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfBromateConcentrationMeasurementClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Bromate Concentration Measurement Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfBromateConcentrationMeasurementClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Bromate Concentration Measurement Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfBromateConcentrationMeasurementClusterClientInitCallback(uint8_t endpoint); -/** @brief Bromate Concentration Measurement Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfBromateConcentrationMeasurementClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Bromate Concentration Measurement Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfBromateConcentrationMeasurementClusterClientMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, EmberApsFrame * apsFrame, - uint16_t msgLen, uint8_t * message, EmberStatus status); -/** @brief Bromate Concentration Measurement Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfBromateConcentrationMeasurementClusterClientPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Bromate Concentration Measurement Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfBromateConcentrationMeasurementClusterClientTickCallback(uint8_t endpoint); -/** @brief Bromate Concentration Measurement Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfBromateConcentrationMeasurementClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Bromate Concentration Measurement Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfBromateConcentrationMeasurementClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Bromate Concentration Measurement Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfBromateConcentrationMeasurementClusterServerInitCallback(uint8_t endpoint); -/** @brief Bromate Concentration Measurement Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfBromateConcentrationMeasurementClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Bromate Concentration Measurement Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfBromateConcentrationMeasurementClusterServerMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, EmberApsFrame * apsFrame, - uint16_t msgLen, uint8_t * message, EmberStatus status); -/** @brief Bromate Concentration Measurement Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfBromateConcentrationMeasurementClusterServerPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Bromate Concentration Measurement Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfBromateConcentrationMeasurementClusterServerTickCallback(uint8_t endpoint); - -/** @} END Bromate Concentration Measurement Cluster Callbacks */ - -/** @name Chloramines Concentration Measurement Cluster Callbacks */ -// @{ - -/** @brief Chloramines Concentration Measurement Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfChloraminesConcentrationMeasurementClusterClientAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId); -/** @brief Chloramines Concentration Measurement Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfChloraminesConcentrationMeasurementClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Chloramines Concentration Measurement Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfChloraminesConcentrationMeasurementClusterClientInitCallback(uint8_t endpoint); -/** @brief Chloramines Concentration Measurement Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfChloraminesConcentrationMeasurementClusterClientManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Chloramines Concentration Measurement Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfChloraminesConcentrationMeasurementClusterClientMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, - uint8_t * message, EmberStatus status); -/** @brief Chloramines Concentration Measurement Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfChloraminesConcentrationMeasurementClusterClientPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Chloramines Concentration Measurement Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfChloraminesConcentrationMeasurementClusterClientTickCallback(uint8_t endpoint); -/** @brief Chloramines Concentration Measurement Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfChloraminesConcentrationMeasurementClusterServerAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId); -/** @brief Chloramines Concentration Measurement Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfChloraminesConcentrationMeasurementClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Chloramines Concentration Measurement Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfChloraminesConcentrationMeasurementClusterServerInitCallback(uint8_t endpoint); -/** @brief Chloramines Concentration Measurement Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfChloraminesConcentrationMeasurementClusterServerManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Chloramines Concentration Measurement Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfChloraminesConcentrationMeasurementClusterServerMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, - uint8_t * message, EmberStatus status); -/** @brief Chloramines Concentration Measurement Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfChloraminesConcentrationMeasurementClusterServerPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Chloramines Concentration Measurement Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfChloraminesConcentrationMeasurementClusterServerTickCallback(uint8_t endpoint); - -/** @} END Chloramines Concentration Measurement Cluster Callbacks */ - -/** @name Chlorine Concentration Measurement Cluster Callbacks */ -// @{ - -/** @brief Chlorine Concentration Measurement Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfChlorineConcentrationMeasurementClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Chlorine Concentration Measurement Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfChlorineConcentrationMeasurementClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Chlorine Concentration Measurement Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfChlorineConcentrationMeasurementClusterClientInitCallback(uint8_t endpoint); -/** @brief Chlorine Concentration Measurement Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfChlorineConcentrationMeasurementClusterClientManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Chlorine Concentration Measurement Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfChlorineConcentrationMeasurementClusterClientMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, EmberApsFrame * apsFrame, - uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Chlorine Concentration Measurement Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfChlorineConcentrationMeasurementClusterClientPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Chlorine Concentration Measurement Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfChlorineConcentrationMeasurementClusterClientTickCallback(uint8_t endpoint); -/** @brief Chlorine Concentration Measurement Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfChlorineConcentrationMeasurementClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Chlorine Concentration Measurement Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfChlorineConcentrationMeasurementClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Chlorine Concentration Measurement Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfChlorineConcentrationMeasurementClusterServerInitCallback(uint8_t endpoint); -/** @brief Chlorine Concentration Measurement Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfChlorineConcentrationMeasurementClusterServerManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Chlorine Concentration Measurement Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfChlorineConcentrationMeasurementClusterServerMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, EmberApsFrame * apsFrame, - uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Chlorine Concentration Measurement Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfChlorineConcentrationMeasurementClusterServerPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Chlorine Concentration Measurement Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfChlorineConcentrationMeasurementClusterServerTickCallback(uint8_t endpoint); - -/** @} END Chlorine Concentration Measurement Cluster Callbacks */ - -/** @name Fecal coliform and E. Coli Concentration Measurement Cluster Callbacks */ -// @{ - -/** @brief Fecal coliform and E. Coli Concentration Measurement Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfFecalColiformAndEColiConcentrationMeasurementClusterClientAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId); -/** @brief Fecal coliform and E. Coli Concentration Measurement Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfFecalColiformAndEColiConcentrationMeasurementClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Fecal coliform and E. Coli Concentration Measurement Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfFecalColiformAndEColiConcentrationMeasurementClusterClientInitCallback(uint8_t endpoint); -/** @brief Fecal coliform and E. Coli Concentration Measurement Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfFecalColiformAndEColiConcentrationMeasurementClusterClientManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Fecal coliform and E. Coli Concentration Measurement Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfFecalColiformAndEColiConcentrationMeasurementClusterClientMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, - uint8_t * message, EmberStatus status); -/** @brief Fecal coliform and E. Coli Concentration Measurement Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfFecalColiformAndEColiConcentrationMeasurementClusterClientPreAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, EmberAfAttributeType attributeType, uint8_t size, uint8_t * value); -/** @brief Fecal coliform and E. Coli Concentration Measurement Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfFecalColiformAndEColiConcentrationMeasurementClusterClientTickCallback(uint8_t endpoint); -/** @brief Fecal coliform and E. Coli Concentration Measurement Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfFecalColiformAndEColiConcentrationMeasurementClusterServerAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId); -/** @brief Fecal coliform and E. Coli Concentration Measurement Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfFecalColiformAndEColiConcentrationMeasurementClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Fecal coliform and E. Coli Concentration Measurement Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfFecalColiformAndEColiConcentrationMeasurementClusterServerInitCallback(uint8_t endpoint); -/** @brief Fecal coliform and E. Coli Concentration Measurement Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfFecalColiformAndEColiConcentrationMeasurementClusterServerManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Fecal coliform and E. Coli Concentration Measurement Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfFecalColiformAndEColiConcentrationMeasurementClusterServerMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, - uint8_t * message, EmberStatus status); -/** @brief Fecal coliform and E. Coli Concentration Measurement Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfFecalColiformAndEColiConcentrationMeasurementClusterServerPreAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, EmberAfAttributeType attributeType, uint8_t size, uint8_t * value); -/** @brief Fecal coliform and E. Coli Concentration Measurement Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfFecalColiformAndEColiConcentrationMeasurementClusterServerTickCallback(uint8_t endpoint); - -/** @} END Fecal coliform and E. Coli Concentration Measurement Cluster Callbacks */ - -/** @name Fluoride Concentration Measurement Cluster Callbacks */ -// @{ - -/** @brief Fluoride Concentration Measurement Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfFluorideConcentrationMeasurementClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Fluoride Concentration Measurement Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfFluorideConcentrationMeasurementClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Fluoride Concentration Measurement Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfFluorideConcentrationMeasurementClusterClientInitCallback(uint8_t endpoint); -/** @brief Fluoride Concentration Measurement Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfFluorideConcentrationMeasurementClusterClientManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Fluoride Concentration Measurement Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfFluorideConcentrationMeasurementClusterClientMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, EmberApsFrame * apsFrame, - uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Fluoride Concentration Measurement Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfFluorideConcentrationMeasurementClusterClientPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Fluoride Concentration Measurement Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfFluorideConcentrationMeasurementClusterClientTickCallback(uint8_t endpoint); -/** @brief Fluoride Concentration Measurement Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfFluorideConcentrationMeasurementClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Fluoride Concentration Measurement Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfFluorideConcentrationMeasurementClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Fluoride Concentration Measurement Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfFluorideConcentrationMeasurementClusterServerInitCallback(uint8_t endpoint); -/** @brief Fluoride Concentration Measurement Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfFluorideConcentrationMeasurementClusterServerManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Fluoride Concentration Measurement Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfFluorideConcentrationMeasurementClusterServerMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, EmberApsFrame * apsFrame, - uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Fluoride Concentration Measurement Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfFluorideConcentrationMeasurementClusterServerPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Fluoride Concentration Measurement Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfFluorideConcentrationMeasurementClusterServerTickCallback(uint8_t endpoint); - -/** @} END Fluoride Concentration Measurement Cluster Callbacks */ - -/** @name Haloacetic Acids Concentration Measurement Cluster Callbacks */ -// @{ - -/** @brief Haloacetic Acids Concentration Measurement Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfHaloaceticAcidsConcentrationMeasurementClusterClientAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId); -/** @brief Haloacetic Acids Concentration Measurement Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfHaloaceticAcidsConcentrationMeasurementClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Haloacetic Acids Concentration Measurement Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfHaloaceticAcidsConcentrationMeasurementClusterClientInitCallback(uint8_t endpoint); -/** @brief Haloacetic Acids Concentration Measurement Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfHaloaceticAcidsConcentrationMeasurementClusterClientManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Haloacetic Acids Concentration Measurement Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfHaloaceticAcidsConcentrationMeasurementClusterClientMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, - uint8_t * message, EmberStatus status); -/** @brief Haloacetic Acids Concentration Measurement Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfHaloaceticAcidsConcentrationMeasurementClusterClientPreAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, EmberAfAttributeType attributeType, uint8_t size, uint8_t * value); -/** @brief Haloacetic Acids Concentration Measurement Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfHaloaceticAcidsConcentrationMeasurementClusterClientTickCallback(uint8_t endpoint); -/** @brief Haloacetic Acids Concentration Measurement Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfHaloaceticAcidsConcentrationMeasurementClusterServerAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId); -/** @brief Haloacetic Acids Concentration Measurement Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfHaloaceticAcidsConcentrationMeasurementClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Haloacetic Acids Concentration Measurement Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfHaloaceticAcidsConcentrationMeasurementClusterServerInitCallback(uint8_t endpoint); -/** @brief Haloacetic Acids Concentration Measurement Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfHaloaceticAcidsConcentrationMeasurementClusterServerManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Haloacetic Acids Concentration Measurement Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfHaloaceticAcidsConcentrationMeasurementClusterServerMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, - uint8_t * message, EmberStatus status); -/** @brief Haloacetic Acids Concentration Measurement Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfHaloaceticAcidsConcentrationMeasurementClusterServerPreAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, EmberAfAttributeType attributeType, uint8_t size, uint8_t * value); -/** @brief Haloacetic Acids Concentration Measurement Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfHaloaceticAcidsConcentrationMeasurementClusterServerTickCallback(uint8_t endpoint); - -/** @} END Haloacetic Acids Concentration Measurement Cluster Callbacks */ - -/** @name Total Trihalomethanes Concentration Measurement Cluster Callbacks */ -// @{ - -/** @brief Total Trihalomethanes Concentration Measurement Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfTotalTrihalomethanesConcentrationMeasurementClusterClientAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId); -/** @brief Total Trihalomethanes Concentration Measurement Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfTotalTrihalomethanesConcentrationMeasurementClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Total Trihalomethanes Concentration Measurement Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfTotalTrihalomethanesConcentrationMeasurementClusterClientInitCallback(uint8_t endpoint); -/** @brief Total Trihalomethanes Concentration Measurement Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfTotalTrihalomethanesConcentrationMeasurementClusterClientManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Total Trihalomethanes Concentration Measurement Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfTotalTrihalomethanesConcentrationMeasurementClusterClientMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, - uint8_t * message, EmberStatus status); -/** @brief Total Trihalomethanes Concentration Measurement Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfTotalTrihalomethanesConcentrationMeasurementClusterClientPreAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, EmberAfAttributeType attributeType, uint8_t size, uint8_t * value); -/** @brief Total Trihalomethanes Concentration Measurement Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfTotalTrihalomethanesConcentrationMeasurementClusterClientTickCallback(uint8_t endpoint); -/** @brief Total Trihalomethanes Concentration Measurement Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfTotalTrihalomethanesConcentrationMeasurementClusterServerAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId); -/** @brief Total Trihalomethanes Concentration Measurement Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfTotalTrihalomethanesConcentrationMeasurementClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Total Trihalomethanes Concentration Measurement Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfTotalTrihalomethanesConcentrationMeasurementClusterServerInitCallback(uint8_t endpoint); -/** @brief Total Trihalomethanes Concentration Measurement Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfTotalTrihalomethanesConcentrationMeasurementClusterServerManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Total Trihalomethanes Concentration Measurement Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfTotalTrihalomethanesConcentrationMeasurementClusterServerMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, - uint8_t * message, EmberStatus status); -/** @brief Total Trihalomethanes Concentration Measurement Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfTotalTrihalomethanesConcentrationMeasurementClusterServerPreAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, EmberAfAttributeType attributeType, uint8_t size, uint8_t * value); -/** @brief Total Trihalomethanes Concentration Measurement Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfTotalTrihalomethanesConcentrationMeasurementClusterServerTickCallback(uint8_t endpoint); - -/** @} END Total Trihalomethanes Concentration Measurement Cluster Callbacks */ - -/** @name Total Coliform Bacteria Concentration Measurement Cluster Callbacks */ -// @{ - -/** @brief Total Coliform Bacteria Concentration Measurement Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfTotalColiformBacteriaConcentrationMeasurementClusterClientAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId); -/** @brief Total Coliform Bacteria Concentration Measurement Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfTotalColiformBacteriaConcentrationMeasurementClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Total Coliform Bacteria Concentration Measurement Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfTotalColiformBacteriaConcentrationMeasurementClusterClientInitCallback(uint8_t endpoint); -/** @brief Total Coliform Bacteria Concentration Measurement Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfTotalColiformBacteriaConcentrationMeasurementClusterClientManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Total Coliform Bacteria Concentration Measurement Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfTotalColiformBacteriaConcentrationMeasurementClusterClientMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, - uint8_t * message, EmberStatus status); -/** @brief Total Coliform Bacteria Concentration Measurement Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfTotalColiformBacteriaConcentrationMeasurementClusterClientPreAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, EmberAfAttributeType attributeType, uint8_t size, uint8_t * value); -/** @brief Total Coliform Bacteria Concentration Measurement Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfTotalColiformBacteriaConcentrationMeasurementClusterClientTickCallback(uint8_t endpoint); -/** @brief Total Coliform Bacteria Concentration Measurement Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfTotalColiformBacteriaConcentrationMeasurementClusterServerAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId); -/** @brief Total Coliform Bacteria Concentration Measurement Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfTotalColiformBacteriaConcentrationMeasurementClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Total Coliform Bacteria Concentration Measurement Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfTotalColiformBacteriaConcentrationMeasurementClusterServerInitCallback(uint8_t endpoint); -/** @brief Total Coliform Bacteria Concentration Measurement Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfTotalColiformBacteriaConcentrationMeasurementClusterServerManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Total Coliform Bacteria Concentration Measurement Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfTotalColiformBacteriaConcentrationMeasurementClusterServerMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, - uint8_t * message, EmberStatus status); -/** @brief Total Coliform Bacteria Concentration Measurement Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfTotalColiformBacteriaConcentrationMeasurementClusterServerPreAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, EmberAfAttributeType attributeType, uint8_t size, uint8_t * value); -/** @brief Total Coliform Bacteria Concentration Measurement Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfTotalColiformBacteriaConcentrationMeasurementClusterServerTickCallback(uint8_t endpoint); - -/** @} END Total Coliform Bacteria Concentration Measurement Cluster Callbacks */ - -/** @name Turbidity Concentration Measurement Cluster Callbacks */ -// @{ - -/** @brief Turbidity Concentration Measurement Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfTurbidityConcentrationMeasurementClusterClientAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId); -/** @brief Turbidity Concentration Measurement Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfTurbidityConcentrationMeasurementClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Turbidity Concentration Measurement Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfTurbidityConcentrationMeasurementClusterClientInitCallback(uint8_t endpoint); -/** @brief Turbidity Concentration Measurement Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfTurbidityConcentrationMeasurementClusterClientManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Turbidity Concentration Measurement Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfTurbidityConcentrationMeasurementClusterClientMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, EmberApsFrame * apsFrame, - uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Turbidity Concentration Measurement Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfTurbidityConcentrationMeasurementClusterClientPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Turbidity Concentration Measurement Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfTurbidityConcentrationMeasurementClusterClientTickCallback(uint8_t endpoint); -/** @brief Turbidity Concentration Measurement Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfTurbidityConcentrationMeasurementClusterServerAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId); -/** @brief Turbidity Concentration Measurement Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfTurbidityConcentrationMeasurementClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Turbidity Concentration Measurement Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfTurbidityConcentrationMeasurementClusterServerInitCallback(uint8_t endpoint); -/** @brief Turbidity Concentration Measurement Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfTurbidityConcentrationMeasurementClusterServerManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Turbidity Concentration Measurement Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfTurbidityConcentrationMeasurementClusterServerMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, EmberApsFrame * apsFrame, - uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Turbidity Concentration Measurement Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfTurbidityConcentrationMeasurementClusterServerPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Turbidity Concentration Measurement Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfTurbidityConcentrationMeasurementClusterServerTickCallback(uint8_t endpoint); - -/** @} END Turbidity Concentration Measurement Cluster Callbacks */ - -/** @name Copper Concentration Measurement Cluster Callbacks */ -// @{ - -/** @brief Copper Concentration Measurement Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfCopperConcentrationMeasurementClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Copper Concentration Measurement Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfCopperConcentrationMeasurementClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Copper Concentration Measurement Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfCopperConcentrationMeasurementClusterClientInitCallback(uint8_t endpoint); -/** @brief Copper Concentration Measurement Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfCopperConcentrationMeasurementClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Copper Concentration Measurement Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfCopperConcentrationMeasurementClusterClientMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, EmberApsFrame * apsFrame, - uint16_t msgLen, uint8_t * message, EmberStatus status); -/** @brief Copper Concentration Measurement Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfCopperConcentrationMeasurementClusterClientPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Copper Concentration Measurement Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfCopperConcentrationMeasurementClusterClientTickCallback(uint8_t endpoint); -/** @brief Copper Concentration Measurement Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfCopperConcentrationMeasurementClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Copper Concentration Measurement Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfCopperConcentrationMeasurementClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Copper Concentration Measurement Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfCopperConcentrationMeasurementClusterServerInitCallback(uint8_t endpoint); -/** @brief Copper Concentration Measurement Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfCopperConcentrationMeasurementClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Copper Concentration Measurement Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfCopperConcentrationMeasurementClusterServerMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, EmberApsFrame * apsFrame, - uint16_t msgLen, uint8_t * message, EmberStatus status); -/** @brief Copper Concentration Measurement Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfCopperConcentrationMeasurementClusterServerPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Copper Concentration Measurement Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfCopperConcentrationMeasurementClusterServerTickCallback(uint8_t endpoint); - -/** @} END Copper Concentration Measurement Cluster Callbacks */ - -/** @name Lead Concentration Measurement Cluster Callbacks */ -// @{ - -/** @brief Lead Concentration Measurement Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfLeadConcentrationMeasurementClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Lead Concentration Measurement Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfLeadConcentrationMeasurementClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Lead Concentration Measurement Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfLeadConcentrationMeasurementClusterClientInitCallback(uint8_t endpoint); -/** @brief Lead Concentration Measurement Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfLeadConcentrationMeasurementClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Lead Concentration Measurement Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfLeadConcentrationMeasurementClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, - uint8_t * message, EmberStatus status); -/** @brief Lead Concentration Measurement Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfLeadConcentrationMeasurementClusterClientPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Lead Concentration Measurement Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfLeadConcentrationMeasurementClusterClientTickCallback(uint8_t endpoint); -/** @brief Lead Concentration Measurement Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfLeadConcentrationMeasurementClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Lead Concentration Measurement Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfLeadConcentrationMeasurementClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Lead Concentration Measurement Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfLeadConcentrationMeasurementClusterServerInitCallback(uint8_t endpoint); -/** @brief Lead Concentration Measurement Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfLeadConcentrationMeasurementClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Lead Concentration Measurement Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfLeadConcentrationMeasurementClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, - uint8_t * message, EmberStatus status); -/** @brief Lead Concentration Measurement Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfLeadConcentrationMeasurementClusterServerPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Lead Concentration Measurement Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfLeadConcentrationMeasurementClusterServerTickCallback(uint8_t endpoint); - -/** @} END Lead Concentration Measurement Cluster Callbacks */ - -/** @name Manganese Concentration Measurement Cluster Callbacks */ -// @{ - -/** @brief Manganese Concentration Measurement Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfManganeseConcentrationMeasurementClusterClientAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId); -/** @brief Manganese Concentration Measurement Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfManganeseConcentrationMeasurementClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Manganese Concentration Measurement Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfManganeseConcentrationMeasurementClusterClientInitCallback(uint8_t endpoint); -/** @brief Manganese Concentration Measurement Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfManganeseConcentrationMeasurementClusterClientManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Manganese Concentration Measurement Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfManganeseConcentrationMeasurementClusterClientMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, EmberApsFrame * apsFrame, - uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Manganese Concentration Measurement Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfManganeseConcentrationMeasurementClusterClientPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Manganese Concentration Measurement Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfManganeseConcentrationMeasurementClusterClientTickCallback(uint8_t endpoint); -/** @brief Manganese Concentration Measurement Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfManganeseConcentrationMeasurementClusterServerAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId); -/** @brief Manganese Concentration Measurement Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfManganeseConcentrationMeasurementClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Manganese Concentration Measurement Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfManganeseConcentrationMeasurementClusterServerInitCallback(uint8_t endpoint); -/** @brief Manganese Concentration Measurement Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfManganeseConcentrationMeasurementClusterServerManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Manganese Concentration Measurement Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfManganeseConcentrationMeasurementClusterServerMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, EmberApsFrame * apsFrame, - uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Manganese Concentration Measurement Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfManganeseConcentrationMeasurementClusterServerPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Manganese Concentration Measurement Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfManganeseConcentrationMeasurementClusterServerTickCallback(uint8_t endpoint); - -/** @} END Manganese Concentration Measurement Cluster Callbacks */ - -/** @name Sulfate Concentration Measurement Cluster Callbacks */ -// @{ - -/** @brief Sulfate Concentration Measurement Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfSulfateConcentrationMeasurementClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Sulfate Concentration Measurement Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfSulfateConcentrationMeasurementClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Sulfate Concentration Measurement Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfSulfateConcentrationMeasurementClusterClientInitCallback(uint8_t endpoint); -/** @brief Sulfate Concentration Measurement Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfSulfateConcentrationMeasurementClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Sulfate Concentration Measurement Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfSulfateConcentrationMeasurementClusterClientMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, EmberApsFrame * apsFrame, - uint16_t msgLen, uint8_t * message, EmberStatus status); -/** @brief Sulfate Concentration Measurement Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfSulfateConcentrationMeasurementClusterClientPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Sulfate Concentration Measurement Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfSulfateConcentrationMeasurementClusterClientTickCallback(uint8_t endpoint); -/** @brief Sulfate Concentration Measurement Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfSulfateConcentrationMeasurementClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Sulfate Concentration Measurement Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfSulfateConcentrationMeasurementClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Sulfate Concentration Measurement Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfSulfateConcentrationMeasurementClusterServerInitCallback(uint8_t endpoint); -/** @brief Sulfate Concentration Measurement Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfSulfateConcentrationMeasurementClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Sulfate Concentration Measurement Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfSulfateConcentrationMeasurementClusterServerMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, EmberApsFrame * apsFrame, - uint16_t msgLen, uint8_t * message, EmberStatus status); -/** @brief Sulfate Concentration Measurement Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfSulfateConcentrationMeasurementClusterServerPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Sulfate Concentration Measurement Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfSulfateConcentrationMeasurementClusterServerTickCallback(uint8_t endpoint); - -/** @} END Sulfate Concentration Measurement Cluster Callbacks */ - -/** @name Bromodichloromethane Concentration Measurement Cluster Callbacks */ -// @{ - -/** @brief Bromodichloromethane Concentration Measurement Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfBromodichloromethaneConcentrationMeasurementClusterClientAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId); -/** @brief Bromodichloromethane Concentration Measurement Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfBromodichloromethaneConcentrationMeasurementClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Bromodichloromethane Concentration Measurement Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfBromodichloromethaneConcentrationMeasurementClusterClientInitCallback(uint8_t endpoint); -/** @brief Bromodichloromethane Concentration Measurement Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfBromodichloromethaneConcentrationMeasurementClusterClientManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Bromodichloromethane Concentration Measurement Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfBromodichloromethaneConcentrationMeasurementClusterClientMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, - uint8_t * message, EmberStatus status); -/** @brief Bromodichloromethane Concentration Measurement Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfBromodichloromethaneConcentrationMeasurementClusterClientPreAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, EmberAfAttributeType attributeType, uint8_t size, uint8_t * value); -/** @brief Bromodichloromethane Concentration Measurement Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfBromodichloromethaneConcentrationMeasurementClusterClientTickCallback(uint8_t endpoint); -/** @brief Bromodichloromethane Concentration Measurement Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfBromodichloromethaneConcentrationMeasurementClusterServerAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId); -/** @brief Bromodichloromethane Concentration Measurement Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfBromodichloromethaneConcentrationMeasurementClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Bromodichloromethane Concentration Measurement Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfBromodichloromethaneConcentrationMeasurementClusterServerInitCallback(uint8_t endpoint); -/** @brief Bromodichloromethane Concentration Measurement Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfBromodichloromethaneConcentrationMeasurementClusterServerManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Bromodichloromethane Concentration Measurement Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfBromodichloromethaneConcentrationMeasurementClusterServerMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, - uint8_t * message, EmberStatus status); -/** @brief Bromodichloromethane Concentration Measurement Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfBromodichloromethaneConcentrationMeasurementClusterServerPreAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, EmberAfAttributeType attributeType, uint8_t size, uint8_t * value); -/** @brief Bromodichloromethane Concentration Measurement Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfBromodichloromethaneConcentrationMeasurementClusterServerTickCallback(uint8_t endpoint); - -/** @} END Bromodichloromethane Concentration Measurement Cluster Callbacks */ - -/** @name Bromoform Concentration Measurement Cluster Callbacks */ -// @{ - -/** @brief Bromoform Concentration Measurement Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfBromoformConcentrationMeasurementClusterClientAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId); -/** @brief Bromoform Concentration Measurement Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfBromoformConcentrationMeasurementClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Bromoform Concentration Measurement Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfBromoformConcentrationMeasurementClusterClientInitCallback(uint8_t endpoint); -/** @brief Bromoform Concentration Measurement Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfBromoformConcentrationMeasurementClusterClientManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Bromoform Concentration Measurement Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfBromoformConcentrationMeasurementClusterClientMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, EmberApsFrame * apsFrame, - uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Bromoform Concentration Measurement Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfBromoformConcentrationMeasurementClusterClientPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Bromoform Concentration Measurement Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfBromoformConcentrationMeasurementClusterClientTickCallback(uint8_t endpoint); -/** @brief Bromoform Concentration Measurement Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfBromoformConcentrationMeasurementClusterServerAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId); -/** @brief Bromoform Concentration Measurement Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfBromoformConcentrationMeasurementClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Bromoform Concentration Measurement Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfBromoformConcentrationMeasurementClusterServerInitCallback(uint8_t endpoint); -/** @brief Bromoform Concentration Measurement Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfBromoformConcentrationMeasurementClusterServerManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Bromoform Concentration Measurement Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfBromoformConcentrationMeasurementClusterServerMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, EmberApsFrame * apsFrame, - uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Bromoform Concentration Measurement Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfBromoformConcentrationMeasurementClusterServerPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Bromoform Concentration Measurement Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfBromoformConcentrationMeasurementClusterServerTickCallback(uint8_t endpoint); - -/** @} END Bromoform Concentration Measurement Cluster Callbacks */ - -/** @name Chlorodibromomethane Concentration Measurement Cluster Callbacks */ -// @{ - -/** @brief Chlorodibromomethane Concentration Measurement Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfChlorodibromomethaneConcentrationMeasurementClusterClientAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId); -/** @brief Chlorodibromomethane Concentration Measurement Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfChlorodibromomethaneConcentrationMeasurementClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Chlorodibromomethane Concentration Measurement Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfChlorodibromomethaneConcentrationMeasurementClusterClientInitCallback(uint8_t endpoint); -/** @brief Chlorodibromomethane Concentration Measurement Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfChlorodibromomethaneConcentrationMeasurementClusterClientManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Chlorodibromomethane Concentration Measurement Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfChlorodibromomethaneConcentrationMeasurementClusterClientMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, - uint8_t * message, EmberStatus status); -/** @brief Chlorodibromomethane Concentration Measurement Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfChlorodibromomethaneConcentrationMeasurementClusterClientPreAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, EmberAfAttributeType attributeType, uint8_t size, uint8_t * value); -/** @brief Chlorodibromomethane Concentration Measurement Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfChlorodibromomethaneConcentrationMeasurementClusterClientTickCallback(uint8_t endpoint); -/** @brief Chlorodibromomethane Concentration Measurement Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfChlorodibromomethaneConcentrationMeasurementClusterServerAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId); -/** @brief Chlorodibromomethane Concentration Measurement Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfChlorodibromomethaneConcentrationMeasurementClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Chlorodibromomethane Concentration Measurement Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfChlorodibromomethaneConcentrationMeasurementClusterServerInitCallback(uint8_t endpoint); -/** @brief Chlorodibromomethane Concentration Measurement Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfChlorodibromomethaneConcentrationMeasurementClusterServerManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Chlorodibromomethane Concentration Measurement Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfChlorodibromomethaneConcentrationMeasurementClusterServerMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, - uint8_t * message, EmberStatus status); -/** @brief Chlorodibromomethane Concentration Measurement Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfChlorodibromomethaneConcentrationMeasurementClusterServerPreAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, EmberAfAttributeType attributeType, uint8_t size, uint8_t * value); -/** @brief Chlorodibromomethane Concentration Measurement Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfChlorodibromomethaneConcentrationMeasurementClusterServerTickCallback(uint8_t endpoint); - -/** @} END Chlorodibromomethane Concentration Measurement Cluster Callbacks */ - -/** @name Chloroform Concentration Measurement Cluster Callbacks */ -// @{ - -/** @brief Chloroform Concentration Measurement Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfChloroformConcentrationMeasurementClusterClientAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId); -/** @brief Chloroform Concentration Measurement Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfChloroformConcentrationMeasurementClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Chloroform Concentration Measurement Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfChloroformConcentrationMeasurementClusterClientInitCallback(uint8_t endpoint); -/** @brief Chloroform Concentration Measurement Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfChloroformConcentrationMeasurementClusterClientManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Chloroform Concentration Measurement Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfChloroformConcentrationMeasurementClusterClientMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, - uint8_t * message, EmberStatus status); -/** @brief Chloroform Concentration Measurement Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfChloroformConcentrationMeasurementClusterClientPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Chloroform Concentration Measurement Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfChloroformConcentrationMeasurementClusterClientTickCallback(uint8_t endpoint); -/** @brief Chloroform Concentration Measurement Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfChloroformConcentrationMeasurementClusterServerAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId); -/** @brief Chloroform Concentration Measurement Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfChloroformConcentrationMeasurementClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Chloroform Concentration Measurement Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfChloroformConcentrationMeasurementClusterServerInitCallback(uint8_t endpoint); -/** @brief Chloroform Concentration Measurement Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfChloroformConcentrationMeasurementClusterServerManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Chloroform Concentration Measurement Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfChloroformConcentrationMeasurementClusterServerMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, - uint8_t * message, EmberStatus status); -/** @brief Chloroform Concentration Measurement Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfChloroformConcentrationMeasurementClusterServerPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Chloroform Concentration Measurement Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfChloroformConcentrationMeasurementClusterServerTickCallback(uint8_t endpoint); - -/** @} END Chloroform Concentration Measurement Cluster Callbacks */ - -/** @name Sodium Concentration Measurement Cluster Callbacks */ -// @{ - -/** @brief Sodium Concentration Measurement Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfSodiumConcentrationMeasurementClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Sodium Concentration Measurement Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfSodiumConcentrationMeasurementClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Sodium Concentration Measurement Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfSodiumConcentrationMeasurementClusterClientInitCallback(uint8_t endpoint); -/** @brief Sodium Concentration Measurement Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfSodiumConcentrationMeasurementClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Sodium Concentration Measurement Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfSodiumConcentrationMeasurementClusterClientMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, EmberApsFrame * apsFrame, - uint16_t msgLen, uint8_t * message, EmberStatus status); -/** @brief Sodium Concentration Measurement Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfSodiumConcentrationMeasurementClusterClientPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Sodium Concentration Measurement Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfSodiumConcentrationMeasurementClusterClientTickCallback(uint8_t endpoint); -/** @brief Sodium Concentration Measurement Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfSodiumConcentrationMeasurementClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Sodium Concentration Measurement Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfSodiumConcentrationMeasurementClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Sodium Concentration Measurement Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfSodiumConcentrationMeasurementClusterServerInitCallback(uint8_t endpoint); -/** @brief Sodium Concentration Measurement Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfSodiumConcentrationMeasurementClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Sodium Concentration Measurement Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfSodiumConcentrationMeasurementClusterServerMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, EmberApsFrame * apsFrame, - uint16_t msgLen, uint8_t * message, EmberStatus status); -/** @brief Sodium Concentration Measurement Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfSodiumConcentrationMeasurementClusterServerPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Sodium Concentration Measurement Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfSodiumConcentrationMeasurementClusterServerTickCallback(uint8_t endpoint); - -/** @} END Sodium Concentration Measurement Cluster Callbacks */ - -/** @name IAS Zone Cluster Callbacks */ -// @{ - -/** @brief IAS Zone Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfIasZoneClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief IAS Zone Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfIasZoneClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief IAS Zone Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfIasZoneClusterClientInitCallback(uint8_t endpoint); -/** @brief IAS Zone Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfIasZoneClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief IAS Zone Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfIasZoneClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief IAS Zone Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfIasZoneClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief IAS Zone Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfIasZoneClusterClientTickCallback(uint8_t endpoint); -/** @brief IAS Zone Cluster Initiate Normal Operation Mode - * - * - * - */ -bool emberAfIasZoneClusterInitiateNormalOperationModeCallback(void); -/** @brief IAS Zone Cluster Initiate Normal Operation Mode Response - * - * - * - */ -bool emberAfIasZoneClusterInitiateNormalOperationModeResponseCallback(void); -/** @brief IAS Zone Cluster Initiate Test Mode - * - * - * - * @param testModeDuration Ver.: always - * @param currentZoneSensitivityLevel Ver.: always - */ -bool emberAfIasZoneClusterInitiateTestModeCallback(uint8_t testModeDuration, uint8_t currentZoneSensitivityLevel); -/** @brief IAS Zone Cluster Initiate Test Mode Response - * - * - * - */ -bool emberAfIasZoneClusterInitiateTestModeResponseCallback(void); -/** @brief IAS Zone Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfIasZoneClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief IAS Zone Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfIasZoneClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief IAS Zone Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfIasZoneClusterServerInitCallback(uint8_t endpoint); -/** @brief IAS Zone Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfIasZoneClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief IAS Zone Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfIasZoneClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief IAS Zone Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfIasZoneClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief IAS Zone Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfIasZoneClusterServerTickCallback(uint8_t endpoint); -/** @brief IAS Zone Cluster Zone Enroll Request - * - * - * - * @param zoneType Ver.: always - * @param manufacturerCode Ver.: always - */ -bool emberAfIasZoneClusterZoneEnrollRequestCallback(uint16_t zoneType, uint16_t manufacturerCode); -/** @brief IAS Zone Cluster Zone Enroll Response - * - * - * - * @param enrollResponseCode Ver.: always - * @param zoneId Ver.: always - */ -bool emberAfIasZoneClusterZoneEnrollResponseCallback(uint8_t enrollResponseCode, uint8_t zoneId); -/** @brief IAS Zone Cluster Zone Status Change Notification - * - * - * - * @param zoneStatus Ver.: always - * @param extendedStatus Ver.: always - * @param zoneId Ver.: since ha-1.2-05-3520-29 - * @param delay Ver.: since ha-1.2-05-3520-29 - */ -bool emberAfIasZoneClusterZoneStatusChangeNotificationCallback(uint16_t zoneStatus, uint8_t extendedStatus, uint8_t zoneId, - uint16_t delay); - -/** @} END IAS Zone Cluster Callbacks */ - -/** @name IAS ACE Cluster Callbacks */ -// @{ - -/** @brief IAS ACE Cluster Arm - * - * - * - * @param armMode Ver.: always - * @param armDisarmCode Ver.: since ha-1.2-05-3520-29 - * @param zoneId Ver.: since ha-1.2-05-3520-29 - */ -bool emberAfIasAceClusterArmCallback(uint8_t armMode, uint8_t * armDisarmCode, uint8_t zoneId); -/** @brief IAS ACE Cluster Arm Response - * - * - * - * @param armNotification Ver.: always - */ -bool emberAfIasAceClusterArmResponseCallback(uint8_t armNotification); -/** @brief IAS ACE Cluster Bypass - * - * - * - * @param numberOfZones Ver.: always - * @param zoneIds Ver.: always - * @param armDisarmCode Ver.: since ha-1.2.1-05-3520-30 - */ -bool emberAfIasAceClusterBypassCallback(uint8_t numberOfZones, uint8_t * zoneIds, uint8_t * armDisarmCode); -/** @brief IAS ACE Cluster Bypass Response - * - * - * - * @param numberOfZones Ver.: always - * @param bypassResult Ver.: always - */ -bool emberAfIasAceClusterBypassResponseCallback(uint8_t numberOfZones, uint8_t * bypassResult); -/** @brief IAS ACE Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfIasAceClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief IAS ACE Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfIasAceClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief IAS ACE Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfIasAceClusterClientInitCallback(uint8_t endpoint); -/** @brief IAS ACE Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfIasAceClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief IAS ACE Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfIasAceClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief IAS ACE Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfIasAceClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief IAS ACE Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfIasAceClusterClientTickCallback(uint8_t endpoint); -/** @brief IAS ACE Cluster Emergency - * - * - * - */ -bool emberAfIasAceClusterEmergencyCallback(void); -/** @brief IAS ACE Cluster Fire - * - * - * - */ -bool emberAfIasAceClusterFireCallback(void); -/** @brief IAS ACE Cluster Get Bypassed Zone List - * - * - * - */ -bool emberAfIasAceClusterGetBypassedZoneListCallback(void); -/** @brief IAS ACE Cluster Get Panel Status - * - * - * - */ -bool emberAfIasAceClusterGetPanelStatusCallback(void); -/** @brief IAS ACE Cluster Get Panel Status Response - * - * - * - * @param panelStatus Ver.: always - * @param secondsRemaining Ver.: always - * @param audibleNotification Ver.: always - * @param alarmStatus Ver.: always - */ -bool emberAfIasAceClusterGetPanelStatusResponseCallback(uint8_t panelStatus, uint8_t secondsRemaining, uint8_t audibleNotification, - uint8_t alarmStatus); -/** @brief IAS ACE Cluster Get Zone Id Map - * - * - * - */ -bool emberAfIasAceClusterGetZoneIdMapCallback(void); -/** @brief IAS ACE Cluster Get Zone Id Map Response - * - * - * - * @param section0 Ver.: always - * @param section1 Ver.: always - * @param section2 Ver.: always - * @param section3 Ver.: always - * @param section4 Ver.: always - * @param section5 Ver.: always - * @param section6 Ver.: always - * @param section7 Ver.: always - * @param section8 Ver.: always - * @param section9 Ver.: always - * @param section10 Ver.: always - * @param section11 Ver.: always - * @param section12 Ver.: always - * @param section13 Ver.: always - * @param section14 Ver.: always - * @param section15 Ver.: always - */ -bool emberAfIasAceClusterGetZoneIdMapResponseCallback(uint16_t section0, uint16_t section1, uint16_t section2, uint16_t section3, - uint16_t section4, uint16_t section5, uint16_t section6, uint16_t section7, - uint16_t section8, uint16_t section9, uint16_t section10, uint16_t section11, - uint16_t section12, uint16_t section13, uint16_t section14, - uint16_t section15); -/** @brief IAS ACE Cluster Get Zone Information - * - * - * - * @param zoneId Ver.: always - */ -bool emberAfIasAceClusterGetZoneInformationCallback(uint8_t zoneId); -/** @brief IAS ACE Cluster Get Zone Information Response - * - * - * - * @param zoneId Ver.: always - * @param zoneType Ver.: always - * @param ieeeAddress Ver.: always - * @param zoneLabel Ver.: since ha-1.2.1-05-3520-30 - */ -bool emberAfIasAceClusterGetZoneInformationResponseCallback(uint8_t zoneId, uint16_t zoneType, uint8_t * ieeeAddress, - uint8_t * zoneLabel); -/** @brief IAS ACE Cluster Get Zone Status - * - * - * - * @param startingZoneId Ver.: always - * @param maxNumberOfZoneIds Ver.: always - * @param zoneStatusMaskFlag Ver.: always - * @param zoneStatusMask Ver.: always - */ -bool emberAfIasAceClusterGetZoneStatusCallback(uint8_t startingZoneId, uint8_t maxNumberOfZoneIds, uint8_t zoneStatusMaskFlag, - uint16_t zoneStatusMask); -/** @brief IAS ACE Cluster Get Zone Status Response - * - * - * - * @param zoneStatusComplete Ver.: always - * @param numberOfZones Ver.: always - * @param zoneStatusResult Ver.: always - */ -bool emberAfIasAceClusterGetZoneStatusResponseCallback(uint8_t zoneStatusComplete, uint8_t numberOfZones, - uint8_t * zoneStatusResult); -/** @brief IAS ACE Cluster Panel Status Changed - * - * - * - * @param panelStatus Ver.: always - * @param secondsRemaining Ver.: always - * @param audibleNotification Ver.: since ha-1.2.1-05-3520-30 - * @param alarmStatus Ver.: since ha-1.2.1-05-3520-30 - */ -bool emberAfIasAceClusterPanelStatusChangedCallback(uint8_t panelStatus, uint8_t secondsRemaining, uint8_t audibleNotification, - uint8_t alarmStatus); -/** @brief IAS ACE Cluster Panic - * - * - * - */ -bool emberAfIasAceClusterPanicCallback(void); -/** @brief IAS ACE Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfIasAceClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief IAS ACE Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfIasAceClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief IAS ACE Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfIasAceClusterServerInitCallback(uint8_t endpoint); -/** @brief IAS ACE Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfIasAceClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief IAS ACE Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfIasAceClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief IAS ACE Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfIasAceClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief IAS ACE Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfIasAceClusterServerTickCallback(uint8_t endpoint); -/** @brief IAS ACE Cluster Set Bypassed Zone List - * - * - * - * @param numberOfZones Ver.: always - * @param zoneIds Ver.: always - */ -bool emberAfIasAceClusterSetBypassedZoneListCallback(uint8_t numberOfZones, uint8_t * zoneIds); -/** @brief IAS ACE Cluster Zone Status Changed - * - * - * - * @param zoneId Ver.: always - * @param zoneStatus Ver.: always - * @param audibleNotification Ver.: since ha-1.2.1-05-3520-30 - * @param zoneLabel Ver.: since ha-1.2.1-05-3520-30 - */ -bool emberAfIasAceClusterZoneStatusChangedCallback(uint8_t zoneId, uint16_t zoneStatus, uint8_t audibleNotification, - uint8_t * zoneLabel); - -/** @} END IAS ACE Cluster Callbacks */ - -/** @name IAS WD Cluster Callbacks */ -// @{ - -/** @brief IAS WD Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfIasWdClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief IAS WD Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfIasWdClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief IAS WD Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfIasWdClusterClientInitCallback(uint8_t endpoint); -/** @brief IAS WD Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfIasWdClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief IAS WD Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfIasWdClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, EmberStatus status); -/** @brief IAS WD Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfIasWdClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief IAS WD Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfIasWdClusterClientTickCallback(uint8_t endpoint); -/** @brief IAS WD Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfIasWdClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief IAS WD Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfIasWdClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief IAS WD Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfIasWdClusterServerInitCallback(uint8_t endpoint); -/** @brief IAS WD Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfIasWdClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief IAS WD Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfIasWdClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, EmberStatus status); -/** @brief IAS WD Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfIasWdClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief IAS WD Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfIasWdClusterServerTickCallback(uint8_t endpoint); -/** @brief IAS WD Cluster Squawk - * - * - * - * @param squawkInfo Ver.: always - */ -bool emberAfIasWdClusterSquawkCallback(uint8_t squawkInfo); -/** @brief IAS WD Cluster Start Warning - * - * - * - * @param warningInfo Ver.: always - * @param warningDuration Ver.: always - * @param strobeDutyCycle Ver.: since ha-1.2-05-3520-29 - * @param strobeLevel Ver.: since ha-1.2-05-3520-29 - */ -bool emberAfIasWdClusterStartWarningCallback(uint8_t warningInfo, uint16_t warningDuration, uint8_t strobeDutyCycle, - uint8_t strobeLevel); - -/** @} END IAS WD Cluster Callbacks */ - -/** @name Generic Tunnel Cluster Callbacks */ -// @{ - -/** @brief Generic Tunnel Cluster Advertise Protocol Address - * - * - * - * @param protocolAddress Ver.: always - */ -bool emberAfGenericTunnelClusterAdvertiseProtocolAddressCallback(uint8_t * protocolAddress); -/** @brief Generic Tunnel Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfGenericTunnelClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Generic Tunnel Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfGenericTunnelClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Generic Tunnel Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfGenericTunnelClusterClientInitCallback(uint8_t endpoint); -/** @brief Generic Tunnel Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfGenericTunnelClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Generic Tunnel Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfGenericTunnelClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Generic Tunnel Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfGenericTunnelClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Generic Tunnel Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfGenericTunnelClusterClientTickCallback(uint8_t endpoint); -/** @brief Generic Tunnel Cluster Match Protocol Address - * - * - * - * @param protocolAddress Ver.: always - */ -bool emberAfGenericTunnelClusterMatchProtocolAddressCallback(uint8_t * protocolAddress); -/** @brief Generic Tunnel Cluster Match Protocol Address Response - * - * - * - * @param deviceIeeeAddress Ver.: always - * @param protocolAddress Ver.: always - */ -bool emberAfGenericTunnelClusterMatchProtocolAddressResponseCallback(uint8_t * deviceIeeeAddress, uint8_t * protocolAddress); -/** @brief Generic Tunnel Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfGenericTunnelClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Generic Tunnel Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfGenericTunnelClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Generic Tunnel Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfGenericTunnelClusterServerInitCallback(uint8_t endpoint); -/** @brief Generic Tunnel Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfGenericTunnelClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Generic Tunnel Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfGenericTunnelClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Generic Tunnel Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfGenericTunnelClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Generic Tunnel Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfGenericTunnelClusterServerTickCallback(uint8_t endpoint); - -/** @} END Generic Tunnel Cluster Callbacks */ - -/** @name BACnet Protocol Tunnel Cluster Callbacks */ -// @{ - -/** @brief BACnet Protocol Tunnel Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfBacnetProtocolTunnelClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief BACnet Protocol Tunnel Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfBacnetProtocolTunnelClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief BACnet Protocol Tunnel Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfBacnetProtocolTunnelClusterClientInitCallback(uint8_t endpoint); -/** @brief BACnet Protocol Tunnel Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfBacnetProtocolTunnelClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief BACnet Protocol Tunnel Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfBacnetProtocolTunnelClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief BACnet Protocol Tunnel Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfBacnetProtocolTunnelClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief BACnet Protocol Tunnel Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfBacnetProtocolTunnelClusterClientTickCallback(uint8_t endpoint); -/** @brief BACnet Protocol Tunnel Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfBacnetProtocolTunnelClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief BACnet Protocol Tunnel Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfBacnetProtocolTunnelClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief BACnet Protocol Tunnel Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfBacnetProtocolTunnelClusterServerInitCallback(uint8_t endpoint); -/** @brief BACnet Protocol Tunnel Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfBacnetProtocolTunnelClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief BACnet Protocol Tunnel Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfBacnetProtocolTunnelClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief BACnet Protocol Tunnel Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfBacnetProtocolTunnelClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief BACnet Protocol Tunnel Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfBacnetProtocolTunnelClusterServerTickCallback(uint8_t endpoint); -/** @brief BACnet Protocol Tunnel Cluster Transfer Npdu - * - * - * - * @param npdu Ver.: always - */ -bool emberAfBacnetProtocolTunnelClusterTransferNpduCallback(uint8_t * npdu); - -/** @} END BACnet Protocol Tunnel Cluster Callbacks */ - -/** @name 11073 Protocol Tunnel Cluster Callbacks */ -// @{ - -/** @brief 11073 Protocol Tunnel Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAf11073ProtocolTunnelClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief 11073 Protocol Tunnel Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAf11073ProtocolTunnelClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief 11073 Protocol Tunnel Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAf11073ProtocolTunnelClusterClientInitCallback(uint8_t endpoint); -/** @brief 11073 Protocol Tunnel Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAf11073ProtocolTunnelClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief 11073 Protocol Tunnel Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAf11073ProtocolTunnelClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief 11073 Protocol Tunnel Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAf11073ProtocolTunnelClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief 11073 Protocol Tunnel Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAf11073ProtocolTunnelClusterClientTickCallback(uint8_t endpoint); -/** @brief 11073 Protocol Tunnel Cluster Connect Request - * - * - * - * @param connectControl Ver.: always - * @param idleTimeout Ver.: always - * @param managerTarget Ver.: always - * @param managerEndpoint Ver.: always - */ -bool emberAf11073ProtocolTunnelClusterConnectRequestCallback(uint8_t connectControl, uint16_t idleTimeout, uint8_t * managerTarget, - uint8_t managerEndpoint); -/** @brief 11073 Protocol Tunnel Cluster Connect Status Notification - * - * - * - * @param connectStatus Ver.: always - */ -bool emberAf11073ProtocolTunnelClusterConnectStatusNotificationCallback(uint8_t connectStatus); -/** @brief 11073 Protocol Tunnel Cluster Disconnect Request - * - * - * - * @param managerIEEEAddress Ver.: always - */ -bool emberAf11073ProtocolTunnelClusterDisconnectRequestCallback(uint8_t * managerIEEEAddress); -/** @brief 11073 Protocol Tunnel Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAf11073ProtocolTunnelClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief 11073 Protocol Tunnel Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAf11073ProtocolTunnelClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief 11073 Protocol Tunnel Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAf11073ProtocolTunnelClusterServerInitCallback(uint8_t endpoint); -/** @brief 11073 Protocol Tunnel Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAf11073ProtocolTunnelClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief 11073 Protocol Tunnel Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAf11073ProtocolTunnelClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief 11073 Protocol Tunnel Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAf11073ProtocolTunnelClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief 11073 Protocol Tunnel Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAf11073ProtocolTunnelClusterServerTickCallback(uint8_t endpoint); -/** @brief 11073 Protocol Tunnel Cluster Transfer A P D U - * - * - * - * @param apdu Ver.: always - */ -bool emberAf11073ProtocolTunnelClusterTransferAPDUCallback(uint8_t * apdu); - -/** @} END 11073 Protocol Tunnel Cluster Callbacks */ - -/** @name ISO 7816 Protocol Tunnel Cluster Callbacks */ -// @{ - -/** @brief ISO 7816 Protocol Tunnel Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfIso7816ProtocolTunnelClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief ISO 7816 Protocol Tunnel Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfIso7816ProtocolTunnelClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief ISO 7816 Protocol Tunnel Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfIso7816ProtocolTunnelClusterClientInitCallback(uint8_t endpoint); -/** @brief ISO 7816 Protocol Tunnel Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfIso7816ProtocolTunnelClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief ISO 7816 Protocol Tunnel Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfIso7816ProtocolTunnelClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief ISO 7816 Protocol Tunnel Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfIso7816ProtocolTunnelClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief ISO 7816 Protocol Tunnel Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfIso7816ProtocolTunnelClusterClientTickCallback(uint8_t endpoint); -/** @brief ISO 7816 Protocol Tunnel Cluster Extract Smart Card - * - * - * - */ -bool emberAfIso7816ProtocolTunnelClusterExtractSmartCardCallback(void); -/** @brief ISO 7816 Protocol Tunnel Cluster Insert Smart Card - * - * - * - */ -bool emberAfIso7816ProtocolTunnelClusterInsertSmartCardCallback(void); -/** @brief ISO 7816 Protocol Tunnel Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfIso7816ProtocolTunnelClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief ISO 7816 Protocol Tunnel Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfIso7816ProtocolTunnelClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief ISO 7816 Protocol Tunnel Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfIso7816ProtocolTunnelClusterServerInitCallback(uint8_t endpoint); -/** @brief ISO 7816 Protocol Tunnel Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfIso7816ProtocolTunnelClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief ISO 7816 Protocol Tunnel Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfIso7816ProtocolTunnelClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief ISO 7816 Protocol Tunnel Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfIso7816ProtocolTunnelClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief ISO 7816 Protocol Tunnel Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfIso7816ProtocolTunnelClusterServerTickCallback(uint8_t endpoint); -/** @brief ISO 7816 Protocol Tunnel Cluster Transfer Apdu - * - * - * - * @param apdu Ver.: always - */ -bool emberAfIso7816ProtocolTunnelClusterTransferApduCallback(uint8_t * apdu); - -/** @} END ISO 7816 Protocol Tunnel Cluster Callbacks */ - -/** @name Price Cluster Callbacks */ -// @{ - -/** @brief Price Cluster Cancel Tariff - * - * - * - * @param providerId Ver.: always - * @param issuerTariffId Ver.: always - * @param tariffType Ver.: always - */ -bool emberAfPriceClusterCancelTariffCallback(uint32_t providerId, uint32_t issuerTariffId, uint8_t tariffType); -/** @brief Price Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfPriceClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Price Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfPriceClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Price Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfPriceClusterClientInitCallback(uint8_t endpoint); -/** @brief Price Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfPriceClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Price Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfPriceClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, EmberStatus status); -/** @brief Price Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfPriceClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Price Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfPriceClusterClientTickCallback(uint8_t endpoint); -/** @brief Price Cluster Cpp Event Response - * - * - * - * @param issuerEventId Ver.: always - * @param cppAuth Ver.: always - */ -bool emberAfPriceClusterCppEventResponseCallback(uint32_t issuerEventId, uint8_t cppAuth); -/** @brief Price Cluster Get Billing Period - * - * - * - * @param earliestStartTime Ver.: always - * @param minIssuerEventId Ver.: always - * @param numberOfCommands Ver.: always - * @param tariffType Ver.: always - */ -bool emberAfPriceClusterGetBillingPeriodCallback(uint32_t earliestStartTime, uint32_t minIssuerEventId, uint8_t numberOfCommands, - uint8_t tariffType); -/** @brief Price Cluster Get Block Periods - * - * - * - * @param startTime Ver.: always - * @param numberOfEvents Ver.: always - * @param tariffType Ver.: always - */ -bool emberAfPriceClusterGetBlockPeriodsCallback(uint32_t startTime, uint8_t numberOfEvents, uint8_t tariffType); -/** @brief Price Cluster Get Block Thresholds - * - * - * - * @param issuerTariffId Ver.: always - */ -bool emberAfPriceClusterGetBlockThresholdsCallback(uint32_t issuerTariffId); -/** @brief Price Cluster Get C O2 Value - * - * - * - * @param earliestStartTime Ver.: always - * @param minIssuerEventId Ver.: always - * @param numberOfCommands Ver.: always - * @param tariffType Ver.: always - */ -bool emberAfPriceClusterGetCO2ValueCallback(uint32_t earliestStartTime, uint32_t minIssuerEventId, uint8_t numberOfCommands, - uint8_t tariffType); -/** @brief Price Cluster Get Calorific Value - * - * - * - * @param earliestStartTime Ver.: always - * @param minIssuerEventId Ver.: always - * @param numberOfCommands Ver.: always - */ -bool emberAfPriceClusterGetCalorificValueCallback(uint32_t earliestStartTime, uint32_t minIssuerEventId, uint8_t numberOfCommands); -/** @brief Price Cluster Get Consolidated Bill - * - * - * - * @param earliestStartTime Ver.: always - * @param minIssuerEventId Ver.: always - * @param numberOfCommands Ver.: always - * @param tariffType Ver.: always - */ -bool emberAfPriceClusterGetConsolidatedBillCallback(uint32_t earliestStartTime, uint32_t minIssuerEventId, uint8_t numberOfCommands, - uint8_t tariffType); -/** @brief Price Cluster Get Conversion Factor - * - * - * - * @param earliestStartTime Ver.: always - * @param minIssuerEventId Ver.: always - * @param numberOfCommands Ver.: always - */ -bool emberAfPriceClusterGetConversionFactorCallback(uint32_t earliestStartTime, uint32_t minIssuerEventId, - uint8_t numberOfCommands); -/** @brief Price Cluster Get Credit Payment - * - * - * - * @param latestEndTime Ver.: always - * @param numberOfRecords Ver.: always - */ -bool emberAfPriceClusterGetCreditPaymentCallback(uint32_t latestEndTime, uint8_t numberOfRecords); -/** @brief Price Cluster Get Currency Conversion Command - * - * - * - */ -bool emberAfPriceClusterGetCurrencyConversionCommandCallback(void); -/** @brief Price Cluster Get Current Price - * - * - * - * @param commandOptions Ver.: always - */ -bool emberAfPriceClusterGetCurrentPriceCallback(uint8_t commandOptions); -/** @brief Price Cluster Get Price Matrix - * - * - * - * @param issuerTariffId Ver.: always - */ -bool emberAfPriceClusterGetPriceMatrixCallback(uint32_t issuerTariffId); -/** @brief Price Cluster Get Scheduled Prices - * - * - * - * @param startTime Ver.: always - * @param numberOfEvents Ver.: always - */ -bool emberAfPriceClusterGetScheduledPricesCallback(uint32_t startTime, uint8_t numberOfEvents); -/** @brief Price Cluster Get Tariff Cancellation - * - * - * - */ -bool emberAfPriceClusterGetTariffCancellationCallback(void); -/** @brief Price Cluster Get Tariff Information - * - * - * - * @param earliestStartTime Ver.: always - * @param minIssuerEventId Ver.: always - * @param numberOfCommands Ver.: always - * @param tariffType Ver.: always - */ -bool emberAfPriceClusterGetTariffInformationCallback(uint32_t earliestStartTime, uint32_t minIssuerEventId, - uint8_t numberOfCommands, uint8_t tariffType); -/** @brief Price Cluster Get Tier Labels - * - * - * - * @param issuerTariffId Ver.: always - */ -bool emberAfPriceClusterGetTierLabelsCallback(uint32_t issuerTariffId); -/** @brief Price Cluster Price Acknowledgement - * - * - * - * @param providerId Ver.: always - * @param issuerEventId Ver.: always - * @param priceAckTime Ver.: always - * @param control Ver.: always - */ -bool emberAfPriceClusterPriceAcknowledgementCallback(uint32_t providerId, uint32_t issuerEventId, uint32_t priceAckTime, - uint8_t control); -/** @brief Price Cluster Publish Billing Period - * - * - * - * @param providerId Ver.: always - * @param issuerEventId Ver.: always - * @param billingPeriodStartTime Ver.: always - * @param billingPeriodDuration Ver.: always - * @param billingPeriodDurationType Ver.: always - * @param tariffType Ver.: always - */ -bool emberAfPriceClusterPublishBillingPeriodCallback(uint32_t providerId, uint32_t issuerEventId, uint32_t billingPeriodStartTime, - uint32_t billingPeriodDuration, uint8_t billingPeriodDurationType, - uint8_t tariffType); -/** @brief Price Cluster Publish Block Period - * - * - * - * @param providerId Ver.: always - * @param issuerEventId Ver.: always - * @param blockPeriodStartTime Ver.: always - * @param blockPeriodDuration Ver.: always - * @param blockPeriodControl Ver.: always - * @param blockPeriodDurationType Ver.: since se-1.2a-07-5356-19 - * @param tariffType Ver.: since se-1.2a-07-5356-19 - * @param tariffResolutionPeriod Ver.: since se-1.2a-07-5356-19 - */ -bool emberAfPriceClusterPublishBlockPeriodCallback(uint32_t providerId, uint32_t issuerEventId, uint32_t blockPeriodStartTime, - uint32_t blockPeriodDuration, uint8_t blockPeriodControl, - uint8_t blockPeriodDurationType, uint8_t tariffType, - uint8_t tariffResolutionPeriod); -/** @brief Price Cluster Publish Block Thresholds - * - * - * - * @param providerId Ver.: always - * @param issuerEventId Ver.: always - * @param startTime Ver.: always - * @param issuerTariffId Ver.: always - * @param commandIndex Ver.: always - * @param numberOfCommands Ver.: always - * @param subPayloadControl Ver.: always - * @param payload Ver.: always - */ -bool emberAfPriceClusterPublishBlockThresholdsCallback(uint32_t providerId, uint32_t issuerEventId, uint32_t startTime, - uint32_t issuerTariffId, uint8_t commandIndex, uint8_t numberOfCommands, - uint8_t subPayloadControl, uint8_t * payload); -/** @brief Price Cluster Publish C O2 Value - * - * - * - * @param providerId Ver.: always - * @param issuerEventId Ver.: always - * @param startTime Ver.: always - * @param tariffType Ver.: always - * @param cO2Value Ver.: always - * @param cO2ValueUnit Ver.: always - * @param cO2ValueTrailingDigit Ver.: always - */ -bool emberAfPriceClusterPublishCO2ValueCallback(uint32_t providerId, uint32_t issuerEventId, uint32_t startTime, uint8_t tariffType, - uint32_t cO2Value, uint8_t cO2ValueUnit, uint8_t cO2ValueTrailingDigit); -/** @brief Price Cluster Publish Calorific Value - * - * - * - * @param issuerEventId Ver.: always - * @param startTime Ver.: always - * @param calorificValue Ver.: always - * @param calorificValueUnit Ver.: always - * @param calorificValueTrailingDigit Ver.: always - */ -bool emberAfPriceClusterPublishCalorificValueCallback(uint32_t issuerEventId, uint32_t startTime, uint32_t calorificValue, - uint8_t calorificValueUnit, uint8_t calorificValueTrailingDigit); -/** @brief Price Cluster Publish Consolidated Bill - * - * - * - * @param providerId Ver.: always - * @param issuerEventId Ver.: always - * @param billingPeriodStartTime Ver.: always - * @param billingPeriodDuration Ver.: always - * @param billingPeriodDurationType Ver.: always - * @param tariffType Ver.: always - * @param consolidatedBill Ver.: always - * @param currency Ver.: always - * @param billTrailingDigit Ver.: always - */ -bool emberAfPriceClusterPublishConsolidatedBillCallback(uint32_t providerId, uint32_t issuerEventId, - uint32_t billingPeriodStartTime, uint32_t billingPeriodDuration, - uint8_t billingPeriodDurationType, uint8_t tariffType, - uint32_t consolidatedBill, uint16_t currency, uint8_t billTrailingDigit); -/** @brief Price Cluster Publish Conversion Factor - * - * - * - * @param issuerEventId Ver.: always - * @param startTime Ver.: always - * @param conversionFactor Ver.: always - * @param conversionFactorTrailingDigit Ver.: always - */ -bool emberAfPriceClusterPublishConversionFactorCallback(uint32_t issuerEventId, uint32_t startTime, uint32_t conversionFactor, - uint8_t conversionFactorTrailingDigit); -/** @brief Price Cluster Publish Cpp Event - * - * - * - * @param providerId Ver.: always - * @param issuerEventId Ver.: always - * @param startTime Ver.: always - * @param durationInMinutes Ver.: always - * @param tariffType Ver.: always - * @param cppPriceTier Ver.: always - * @param cppAuth Ver.: always - */ -bool emberAfPriceClusterPublishCppEventCallback(uint32_t providerId, uint32_t issuerEventId, uint32_t startTime, - uint16_t durationInMinutes, uint8_t tariffType, uint8_t cppPriceTier, - uint8_t cppAuth); -/** @brief Price Cluster Publish Credit Payment - * - * - * - * @param providerId Ver.: always - * @param issuerEventId Ver.: always - * @param creditPaymentDueDate Ver.: always - * @param creditPaymentOverDueAmount Ver.: always - * @param creditPaymentStatus Ver.: always - * @param creditPayment Ver.: always - * @param creditPaymentDate Ver.: always - * @param creditPaymentRef Ver.: always - */ -bool emberAfPriceClusterPublishCreditPaymentCallback(uint32_t providerId, uint32_t issuerEventId, uint32_t creditPaymentDueDate, - uint32_t creditPaymentOverDueAmount, uint8_t creditPaymentStatus, - uint32_t creditPayment, uint32_t creditPaymentDate, - uint8_t * creditPaymentRef); -/** @brief Price Cluster Publish Currency Conversion - * - * - * - * @param providerId Ver.: always - * @param issuerEventId Ver.: always - * @param startTime Ver.: always - * @param oldCurrency Ver.: always - * @param newCurrency Ver.: always - * @param conversionFactor Ver.: always - * @param conversionFactorTrailingDigit Ver.: always - * @param currencyChangeControlFlags Ver.: always - */ -bool emberAfPriceClusterPublishCurrencyConversionCallback(uint32_t providerId, uint32_t issuerEventId, uint32_t startTime, - uint16_t oldCurrency, uint16_t newCurrency, uint32_t conversionFactor, - uint8_t conversionFactorTrailingDigit, - uint32_t currencyChangeControlFlags); -/** @brief Price Cluster Publish Price - * - * - * - * @param providerId Ver.: always - * @param rateLabel Ver.: always - * @param issuerEventId Ver.: always - * @param currentTime Ver.: always - * @param unitOfMeasure Ver.: always - * @param currency Ver.: always - * @param priceTrailingDigitAndPriceTier Ver.: always - * @param numberOfPriceTiersAndRegisterTier Ver.: always - * @param startTime Ver.: always - * @param durationInMinutes Ver.: always - * @param price Ver.: always - * @param priceRatio Ver.: always - * @param generationPrice Ver.: always - * @param generationPriceRatio Ver.: always - * @param alternateCostDelivered Ver.: since se-1.0-07-5356-15 - * @param alternateCostUnit Ver.: since se-1.0-07-5356-15 - * @param alternateCostTrailingDigit Ver.: since se-1.0-07-5356-15 - * @param numberOfBlockThresholds Ver.: since se-1.1-07-5356-16 - * @param priceControl Ver.: since se-1.1-07-5356-16 - * @param numberOfGenerationTiers Ver.: since se-1.2a-07-5356-19 - * @param generationTier Ver.: since se-1.2a-07-5356-19 - * @param extendedNumberOfPriceTiers Ver.: since se-1.2a-07-5356-19 - * @param extendedPriceTier Ver.: since se-1.2a-07-5356-19 - * @param extendedRegisterTier Ver.: since se-1.2a-07-5356-19 - */ -bool emberAfPriceClusterPublishPriceCallback( - uint32_t providerId, uint8_t * rateLabel, uint32_t issuerEventId, uint32_t currentTime, uint8_t unitOfMeasure, - uint16_t currency, uint8_t priceTrailingDigitAndPriceTier, uint8_t numberOfPriceTiersAndRegisterTier, uint32_t startTime, - uint16_t durationInMinutes, uint32_t price, uint8_t priceRatio, uint32_t generationPrice, uint8_t generationPriceRatio, - uint32_t alternateCostDelivered, uint8_t alternateCostUnit, uint8_t alternateCostTrailingDigit, uint8_t numberOfBlockThresholds, - uint8_t priceControl, uint8_t numberOfGenerationTiers, uint8_t generationTier, uint8_t extendedNumberOfPriceTiers, - uint8_t extendedPriceTier, uint8_t extendedRegisterTier); -/** @brief Price Cluster Publish Price Matrix - * - * - * - * @param providerId Ver.: always - * @param issuerEventId Ver.: always - * @param startTime Ver.: always - * @param issuerTariffId Ver.: always - * @param commandIndex Ver.: always - * @param numberOfCommands Ver.: always - * @param subPayloadControl Ver.: always - * @param payload Ver.: always - */ -bool emberAfPriceClusterPublishPriceMatrixCallback(uint32_t providerId, uint32_t issuerEventId, uint32_t startTime, - uint32_t issuerTariffId, uint8_t commandIndex, uint8_t numberOfCommands, - uint8_t subPayloadControl, uint8_t * payload); -/** @brief Price Cluster Publish Tariff Information - * - * - * - * @param providerId Ver.: always - * @param issuerEventId Ver.: always - * @param issuerTariffId Ver.: always - * @param startTime Ver.: always - * @param tariffTypeChargingScheme Ver.: always - * @param tariffLabel Ver.: always - * @param numberOfPriceTiersInUse Ver.: always - * @param numberOfBlockThresholdsInUse Ver.: always - * @param unitOfMeasure Ver.: always - * @param currency Ver.: always - * @param priceTrailingDigit Ver.: always - * @param standingCharge Ver.: always - * @param tierBlockMode Ver.: always - * @param blockThresholdMultiplier Ver.: always - * @param blockThresholdDivisor Ver.: always - */ -bool emberAfPriceClusterPublishTariffInformationCallback(uint32_t providerId, uint32_t issuerEventId, uint32_t issuerTariffId, - uint32_t startTime, uint8_t tariffTypeChargingScheme, - uint8_t * tariffLabel, uint8_t numberOfPriceTiersInUse, - uint8_t numberOfBlockThresholdsInUse, uint8_t unitOfMeasure, - uint16_t currency, uint8_t priceTrailingDigit, uint32_t standingCharge, - uint8_t tierBlockMode, uint32_t blockThresholdMultiplier, - uint32_t blockThresholdDivisor); -/** @brief Price Cluster Publish Tier Labels - * - * - * - * @param providerId Ver.: always - * @param issuerEventId Ver.: always - * @param issuerTariffId Ver.: always - * @param commandIndex Ver.: always - * @param numberOfCommands Ver.: always - * @param numberOfLabels Ver.: always - * @param tierLabelsPayload Ver.: always - */ -bool emberAfPriceClusterPublishTierLabelsCallback(uint32_t providerId, uint32_t issuerEventId, uint32_t issuerTariffId, - uint8_t commandIndex, uint8_t numberOfCommands, uint8_t numberOfLabels, - uint8_t * tierLabelsPayload); -/** @brief Price Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfPriceClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Price Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfPriceClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Price Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfPriceClusterServerInitCallback(uint8_t endpoint); -/** @brief Price Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfPriceClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Price Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfPriceClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, EmberStatus status); -/** @brief Price Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfPriceClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Price Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfPriceClusterServerTickCallback(uint8_t endpoint); - -/** @} END Price Cluster Callbacks */ - -/** @name Demand Response and Load Control Cluster Callbacks */ -// @{ - -/** @brief Demand Response and Load Control Cluster Cancel All Load Control Events - * - * - * - * @param cancelControl Ver.: always - */ -bool emberAfDemandResponseLoadControlClusterCancelAllLoadControlEventsCallback(uint8_t cancelControl); -/** @brief Demand Response and Load Control Cluster Cancel Load Control Event - * - * - * - * @param issuerEventId Ver.: always - * @param deviceClass Ver.: always - * @param utilityEnrollmentGroup Ver.: always - * @param cancelControl Ver.: always - * @param effectiveTime Ver.: always - */ -bool emberAfDemandResponseLoadControlClusterCancelLoadControlEventCallback(uint32_t issuerEventId, uint16_t deviceClass, - uint8_t utilityEnrollmentGroup, uint8_t cancelControl, - uint32_t effectiveTime); -/** @brief Demand Response and Load Control Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfDemandResponseLoadControlClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Demand Response and Load Control Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfDemandResponseLoadControlClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Demand Response and Load Control Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfDemandResponseLoadControlClusterClientInitCallback(uint8_t endpoint); -/** @brief Demand Response and Load Control Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfDemandResponseLoadControlClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Demand Response and Load Control Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfDemandResponseLoadControlClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Demand Response and Load Control Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfDemandResponseLoadControlClusterClientPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Demand Response and Load Control Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfDemandResponseLoadControlClusterClientTickCallback(uint8_t endpoint); -/** @brief Demand Response and Load Control Cluster Get Scheduled Events - * - * - * - * @param startTime Ver.: always - * @param numberOfEvents Ver.: always - * @param issuerEventId Ver.: since se-1.2b-15-0131-02 - */ -bool emberAfDemandResponseLoadControlClusterGetScheduledEventsCallback(uint32_t startTime, uint8_t numberOfEvents, - uint32_t issuerEventId); -/** @brief Demand Response and Load Control Cluster Load Control Event - * - * - * - * @param issuerEventId Ver.: always - * @param deviceClass Ver.: always - * @param utilityEnrollmentGroup Ver.: always - * @param startTime Ver.: always - * @param durationInMinutes Ver.: always - * @param criticalityLevel Ver.: always - * @param coolingTemperatureOffset Ver.: always - * @param heatingTemperatureOffset Ver.: always - * @param coolingTemperatureSetPoint Ver.: always - * @param heatingTemperatureSetPoint Ver.: always - * @param averageLoadAdjustmentPercentage Ver.: always - * @param dutyCycle Ver.: always - * @param eventControl Ver.: always - */ -bool emberAfDemandResponseLoadControlClusterLoadControlEventCallback( - uint32_t issuerEventId, uint16_t deviceClass, uint8_t utilityEnrollmentGroup, uint32_t startTime, uint16_t durationInMinutes, - uint8_t criticalityLevel, uint8_t coolingTemperatureOffset, uint8_t heatingTemperatureOffset, - int16_t coolingTemperatureSetPoint, int16_t heatingTemperatureSetPoint, int8_t averageLoadAdjustmentPercentage, - uint8_t dutyCycle, uint8_t eventControl); -/** @brief Demand Response and Load Control Cluster Report Event Status - * - * - * - * @param issuerEventId Ver.: always - * @param eventStatus Ver.: always - * @param eventStatusTime Ver.: always - * @param criticalityLevelApplied Ver.: always - * @param coolingTemperatureSetPointApplied Ver.: always - * @param heatingTemperatureSetPointApplied Ver.: always - * @param averageLoadAdjustmentPercentageApplied Ver.: always - * @param dutyCycleApplied Ver.: always - * @param eventControl Ver.: always - * @param signatureType Ver.: always - * @param signature Ver.: always - */ -bool emberAfDemandResponseLoadControlClusterReportEventStatusCallback(uint32_t issuerEventId, uint8_t eventStatus, - uint32_t eventStatusTime, uint8_t criticalityLevelApplied, - uint16_t coolingTemperatureSetPointApplied, - uint16_t heatingTemperatureSetPointApplied, - int8_t averageLoadAdjustmentPercentageApplied, - uint8_t dutyCycleApplied, uint8_t eventControl, - uint8_t signatureType, uint8_t * signature); -/** @brief Demand Response and Load Control Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfDemandResponseLoadControlClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Demand Response and Load Control Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfDemandResponseLoadControlClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Demand Response and Load Control Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfDemandResponseLoadControlClusterServerInitCallback(uint8_t endpoint); -/** @brief Demand Response and Load Control Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfDemandResponseLoadControlClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Demand Response and Load Control Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfDemandResponseLoadControlClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Demand Response and Load Control Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfDemandResponseLoadControlClusterServerPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Demand Response and Load Control Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfDemandResponseLoadControlClusterServerTickCallback(uint8_t endpoint); - -/** @} END Demand Response and Load Control Cluster Callbacks */ - -/** @name Simple Metering Cluster Callbacks */ -// @{ - -/** @brief Simple Metering Cluster Change Supply - * - * - * - * @param providerId Ver.: always - * @param issuerEventId Ver.: always - * @param requestDateTime Ver.: always - * @param implementationDateTime Ver.: always - * @param proposedSupplyStatus Ver.: always - * @param supplyControlBits Ver.: always - */ -bool emberAfSimpleMeteringClusterChangeSupplyCallback(uint32_t providerId, uint32_t issuerEventId, uint32_t requestDateTime, - uint32_t implementationDateTime, uint8_t proposedSupplyStatus, - uint8_t supplyControlBits); -/** @brief Simple Metering Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfSimpleMeteringClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Simple Metering Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfSimpleMeteringClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Simple Metering Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfSimpleMeteringClusterClientInitCallback(uint8_t endpoint); -/** @brief Simple Metering Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfSimpleMeteringClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Simple Metering Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfSimpleMeteringClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Simple Metering Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfSimpleMeteringClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Simple Metering Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfSimpleMeteringClusterClientTickCallback(uint8_t endpoint); -/** @brief Simple Metering Cluster Configure Mirror - * - * - * - * @param issuerEventId Ver.: always - * @param reportingInterval Ver.: always - * @param mirrorNotificationReporting Ver.: always - * @param notificationScheme Ver.: always - */ -bool emberAfSimpleMeteringClusterConfigureMirrorCallback(uint32_t issuerEventId, uint32_t reportingInterval, - uint8_t mirrorNotificationReporting, uint8_t notificationScheme); -/** @brief Simple Metering Cluster Configure Notification Flags - * - * - * - * @param issuerEventId Ver.: always - * @param notificationScheme Ver.: always - * @param notificationFlagAttributeId Ver.: always - * @param clusterId Ver.: always - * @param manufacturerCode Ver.: always - * @param numberOfCommands Ver.: always - * @param commandIds Ver.: always - */ -bool emberAfSimpleMeteringClusterConfigureNotificationFlagsCallback(uint32_t issuerEventId, uint8_t notificationScheme, - uint16_t notificationFlagAttributeId, uint16_t clusterId, - uint16_t manufacturerCode, uint8_t numberOfCommands, - uint8_t * commandIds); -/** @brief Simple Metering Cluster Configure Notification Scheme - * - * - * - * @param issuerEventId Ver.: always - * @param notificationScheme Ver.: always - * @param notificationFlagOrder Ver.: always - */ -bool emberAfSimpleMeteringClusterConfigureNotificationSchemeCallback(uint32_t issuerEventId, uint8_t notificationScheme, - uint32_t notificationFlagOrder); -/** @brief Simple Metering Cluster Get Notified Message - * - * - * - * @param notificationScheme Ver.: always - * @param notificationFlagAttributeId Ver.: always - * @param notificationFlagsN Ver.: always - */ -bool emberAfSimpleMeteringClusterGetNotifiedMessageCallback(uint8_t notificationScheme, uint16_t notificationFlagAttributeId, - uint32_t notificationFlagsN); -/** @brief Simple Metering Cluster Get Profile - * - * - * - * @param intervalChannel Ver.: always - * @param endTime Ver.: always - * @param numberOfPeriods Ver.: always - */ -bool emberAfSimpleMeteringClusterGetProfileCallback(uint8_t intervalChannel, uint32_t endTime, uint8_t numberOfPeriods); -/** @brief Simple Metering Cluster Get Profile Response - * - * - * - * @param endTime Ver.: always - * @param status Ver.: always - * @param profileIntervalPeriod Ver.: always - * @param numberOfPeriodsDelivered Ver.: always - * @param intervals Ver.: always - */ -bool emberAfSimpleMeteringClusterGetProfileResponseCallback(uint32_t endTime, uint8_t status, uint8_t profileIntervalPeriod, - uint8_t numberOfPeriodsDelivered, uint8_t * intervals); -/** @brief Simple Metering Cluster Get Sampled Data - * - * - * - * @param sampleId Ver.: always - * @param earliestSampleTime Ver.: always - * @param sampleType Ver.: always - * @param numberOfSamples Ver.: always - */ -bool emberAfSimpleMeteringClusterGetSampledDataCallback(uint16_t sampleId, uint32_t earliestSampleTime, uint8_t sampleType, - uint16_t numberOfSamples); -/** @brief Simple Metering Cluster Get Sampled Data Response - * - * - * - * @param sampleId Ver.: always - * @param sampleStartTime Ver.: always - * @param sampleType Ver.: always - * @param sampleRequestInterval Ver.: always - * @param numberOfSamples Ver.: always - * @param samples Ver.: always - */ -bool emberAfSimpleMeteringClusterGetSampledDataResponseCallback(uint16_t sampleId, uint32_t sampleStartTime, uint8_t sampleType, - uint16_t sampleRequestInterval, uint16_t numberOfSamples, - uint8_t * samples); -/** @brief Simple Metering Cluster Get Snapshot - * - * - * - * @param earliestStartTime Ver.: always - * @param latestEndTime Ver.: always - * @param snapshotOffset Ver.: always - * @param snapshotCause Ver.: always - */ -bool emberAfSimpleMeteringClusterGetSnapshotCallback(uint32_t earliestStartTime, uint32_t latestEndTime, uint8_t snapshotOffset, - uint32_t snapshotCause); -/** @brief Simple Metering Cluster Local Change Supply - * - * - * - * @param proposedSupplyStatus Ver.: always - */ -bool emberAfSimpleMeteringClusterLocalChangeSupplyCallback(uint8_t proposedSupplyStatus); -/** @brief Simple Metering Cluster Mirror Removed - * - * - * - * @param endpointId Ver.: always - */ -bool emberAfSimpleMeteringClusterMirrorRemovedCallback(uint16_t endpointId); -/** @brief Simple Metering Cluster Mirror Report Attribute Response - * - * - * - * @param notificationScheme Ver.: always - * @param notificationFlags Ver.: always - */ -bool emberAfSimpleMeteringClusterMirrorReportAttributeResponseCallback(uint8_t notificationScheme, uint8_t * notificationFlags); -/** @brief Simple Metering Cluster Publish Snapshot - * - * - * - * @param snapshotId Ver.: always - * @param snapshotTime Ver.: always - * @param totalSnapshotsFound Ver.: always - * @param commandIndex Ver.: always - * @param totalCommands Ver.: always - * @param snapshotCause Ver.: always - * @param snapshotPayloadType Ver.: always - * @param snapshotPayload Ver.: always - */ -bool emberAfSimpleMeteringClusterPublishSnapshotCallback(uint32_t snapshotId, uint32_t snapshotTime, uint8_t totalSnapshotsFound, - uint8_t commandIndex, uint8_t totalCommands, uint32_t snapshotCause, - uint8_t snapshotPayloadType, uint8_t * snapshotPayload); -/** @brief Simple Metering Cluster Remove Mirror - * - * - * - */ -bool emberAfSimpleMeteringClusterRemoveMirrorCallback(void); -/** @brief Simple Metering Cluster Request Fast Poll Mode - * - * - * - * @param fastPollUpdatePeriod Ver.: always - * @param duration Ver.: always - */ -bool emberAfSimpleMeteringClusterRequestFastPollModeCallback(uint8_t fastPollUpdatePeriod, uint8_t duration); -/** @brief Simple Metering Cluster Request Fast Poll Mode Response - * - * - * - * @param appliedUpdatePeriod Ver.: always - * @param fastPollModeEndtime Ver.: always - */ -bool emberAfSimpleMeteringClusterRequestFastPollModeResponseCallback(uint8_t appliedUpdatePeriod, uint32_t fastPollModeEndtime); -/** @brief Simple Metering Cluster Request Mirror - * - * - * - */ -bool emberAfSimpleMeteringClusterRequestMirrorCallback(void); -/** @brief Simple Metering Cluster Request Mirror Response - * - * - * - * @param endpointId Ver.: always - */ -bool emberAfSimpleMeteringClusterRequestMirrorResponseCallback(uint16_t endpointId); -/** @brief Simple Metering Cluster Reset Load Limit Counter - * - * - * - * @param providerId Ver.: always - * @param issuerEventId Ver.: always - */ -bool emberAfSimpleMeteringClusterResetLoadLimitCounterCallback(uint32_t providerId, uint32_t issuerEventId); -/** @brief Simple Metering Cluster Schedule Snapshot - * - * - * - * @param issuerEventId Ver.: always - * @param commandIndex Ver.: always - * @param commandCount Ver.: always - * @param snapshotSchedulePayload Ver.: always - */ -bool emberAfSimpleMeteringClusterScheduleSnapshotCallback(uint32_t issuerEventId, uint8_t commandIndex, uint8_t commandCount, - uint8_t * snapshotSchedulePayload); -/** @brief Simple Metering Cluster Schedule Snapshot Response - * - * - * - * @param issuerEventId Ver.: always - * @param snapshotResponsePayload Ver.: always - */ -bool emberAfSimpleMeteringClusterScheduleSnapshotResponseCallback(uint32_t issuerEventId, uint8_t * snapshotResponsePayload); -/** @brief Simple Metering Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfSimpleMeteringClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Simple Metering Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfSimpleMeteringClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Simple Metering Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfSimpleMeteringClusterServerInitCallback(uint8_t endpoint); -/** @brief Simple Metering Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfSimpleMeteringClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Simple Metering Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfSimpleMeteringClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Simple Metering Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfSimpleMeteringClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Simple Metering Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfSimpleMeteringClusterServerTickCallback(uint8_t endpoint); -/** @brief Simple Metering Cluster Set Supply Status - * - * - * - * @param issuerEventId Ver.: always - * @param supplyTamperState Ver.: always - * @param supplyDepletionState Ver.: always - * @param supplyUncontrolledFlowState Ver.: always - * @param loadLimitSupplyState Ver.: always - */ -bool emberAfSimpleMeteringClusterSetSupplyStatusCallback(uint32_t issuerEventId, uint8_t supplyTamperState, - uint8_t supplyDepletionState, uint8_t supplyUncontrolledFlowState, - uint8_t loadLimitSupplyState); -/** @brief Simple Metering Cluster Set Uncontrolled Flow Threshold - * - * - * - * @param providerId Ver.: always - * @param issuerEventId Ver.: always - * @param uncontrolledFlowThreshold Ver.: always - * @param unitOfMeasure Ver.: always - * @param multiplier Ver.: always - * @param divisor Ver.: always - * @param stabilisationPeriod Ver.: always - * @param measurementPeriod Ver.: always - */ -bool emberAfSimpleMeteringClusterSetUncontrolledFlowThresholdCallback(uint32_t providerId, uint32_t issuerEventId, - uint16_t uncontrolledFlowThreshold, uint8_t unitOfMeasure, - uint16_t multiplier, uint16_t divisor, - uint8_t stabilisationPeriod, uint16_t measurementPeriod); -/** @brief Simple Metering Cluster Start Sampling - * - * - * - * @param issuerEventId Ver.: always - * @param startSamplingTime Ver.: always - * @param sampleType Ver.: always - * @param sampleRequestInterval Ver.: always - * @param maxNumberOfSamples Ver.: always - */ -bool emberAfSimpleMeteringClusterStartSamplingCallback(uint32_t issuerEventId, uint32_t startSamplingTime, uint8_t sampleType, - uint16_t sampleRequestInterval, uint16_t maxNumberOfSamples); -/** @brief Simple Metering Cluster Start Sampling Response - * - * - * - * @param sampleId Ver.: always - */ -bool emberAfSimpleMeteringClusterStartSamplingResponseCallback(uint16_t sampleId); -/** @brief Simple Metering Cluster Supply Status Response - * - * - * - * @param providerId Ver.: always - * @param issuerEventId Ver.: always - * @param implementationDateTime Ver.: always - * @param supplyStatus Ver.: always - */ -bool emberAfSimpleMeteringClusterSupplyStatusResponseCallback(uint32_t providerId, uint32_t issuerEventId, - uint32_t implementationDateTime, uint8_t supplyStatus); -/** @brief Simple Metering Cluster Take Snapshot - * - * - * - * @param snapshotCause Ver.: always - */ -bool emberAfSimpleMeteringClusterTakeSnapshotCallback(uint32_t snapshotCause); -/** @brief Simple Metering Cluster Take Snapshot Response - * - * - * - * @param snapshotId Ver.: always - * @param snapshotConfirmation Ver.: always - */ -bool emberAfSimpleMeteringClusterTakeSnapshotResponseCallback(uint32_t snapshotId, uint8_t snapshotConfirmation); - -/** @} END Simple Metering Cluster Callbacks */ - -/** @name Messaging Cluster Callbacks */ -// @{ - -/** @brief Messaging Cluster Cancel All Messages - * - * - * - * @param implementationDateTime Ver.: always - */ -bool emberAfMessagingClusterCancelAllMessagesCallback(uint32_t implementationDateTime); -/** @brief Messaging Cluster Cancel Message - * - * - * - * @param messageId Ver.: always - * @param messageControl Ver.: always - */ -bool emberAfMessagingClusterCancelMessageCallback(uint32_t messageId, uint8_t messageControl); -/** @brief Messaging Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfMessagingClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Messaging Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfMessagingClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Messaging Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfMessagingClusterClientInitCallback(uint8_t endpoint); -/** @brief Messaging Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfMessagingClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Messaging Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfMessagingClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Messaging Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfMessagingClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Messaging Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfMessagingClusterClientTickCallback(uint8_t endpoint); -/** @brief Messaging Cluster Display Message - * - * - * - * @param messageId Ver.: always - * @param messageControl Ver.: always - * @param startTime Ver.: always - * @param durationInMinutes Ver.: always - * @param message Ver.: always - * @param optionalExtendedMessageControl Ver.: since se-1.2a-07-5356-19 - */ -bool emberAfMessagingClusterDisplayMessageCallback(uint32_t messageId, uint8_t messageControl, uint32_t startTime, - uint16_t durationInMinutes, uint8_t * message, - uint8_t optionalExtendedMessageControl); -/** @brief Messaging Cluster Display Protected Message - * - * - * - * @param messageId Ver.: always - * @param messageControl Ver.: always - * @param startTime Ver.: always - * @param durationInMinutes Ver.: always - * @param message Ver.: always - * @param optionalExtendedMessageControl Ver.: always - */ -bool emberAfMessagingClusterDisplayProtectedMessageCallback(uint32_t messageId, uint8_t messageControl, uint32_t startTime, - uint16_t durationInMinutes, uint8_t * message, - uint8_t optionalExtendedMessageControl); -/** @brief Messaging Cluster Get Last Message - * - * - * - */ -bool emberAfMessagingClusterGetLastMessageCallback(void); -/** @brief Messaging Cluster Get Message Cancellation - * - * - * - * @param earliestImplementationTime Ver.: always - */ -bool emberAfMessagingClusterGetMessageCancellationCallback(uint32_t earliestImplementationTime); -/** @brief Messaging Cluster Message Confirmation - * - * - * - * @param messageId Ver.: always - * @param confirmationTime Ver.: always - * @param messageConfirmationControl Ver.: since se-1.2a-07-5356-19 - * @param messageResponse Ver.: since se-1.2a-07-5356-19 - */ -bool emberAfMessagingClusterMessageConfirmationCallback(uint32_t messageId, uint32_t confirmationTime, - uint8_t messageConfirmationControl, uint8_t * messageResponse); -/** @brief Messaging Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfMessagingClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Messaging Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfMessagingClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Messaging Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfMessagingClusterServerInitCallback(uint8_t endpoint); -/** @brief Messaging Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfMessagingClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Messaging Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfMessagingClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Messaging Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfMessagingClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Messaging Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfMessagingClusterServerTickCallback(uint8_t endpoint); - -/** @} END Messaging Cluster Callbacks */ - -/** @name Tunneling Cluster Callbacks */ -// @{ - -/** @brief Tunneling Cluster Ack Transfer Data Client To Server - * - * - * - * @param tunnelId Ver.: always - * @param numberOfBytesLeft Ver.: always - */ -bool emberAfTunnelingClusterAckTransferDataClientToServerCallback(uint16_t tunnelId, uint16_t numberOfBytesLeft); -/** @brief Tunneling Cluster Ack Transfer Data Server To Client - * - * - * - * @param tunnelId Ver.: always - * @param numberOfBytesLeft Ver.: always - */ -bool emberAfTunnelingClusterAckTransferDataServerToClientCallback(uint16_t tunnelId, uint16_t numberOfBytesLeft); -/** @brief Tunneling Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfTunnelingClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Tunneling Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfTunnelingClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Tunneling Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfTunnelingClusterClientInitCallback(uint8_t endpoint); -/** @brief Tunneling Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfTunnelingClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Tunneling Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfTunnelingClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Tunneling Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfTunnelingClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Tunneling Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfTunnelingClusterClientTickCallback(uint8_t endpoint); -/** @brief Tunneling Cluster Close Tunnel - * - * - * - * @param tunnelId Ver.: always - */ -bool emberAfTunnelingClusterCloseTunnelCallback(uint16_t tunnelId); -/** @brief Tunneling Cluster Get Supported Tunnel Protocols - * - * - * - * @param protocolOffset Ver.: always - */ -bool emberAfTunnelingClusterGetSupportedTunnelProtocolsCallback(uint8_t protocolOffset); -/** @brief Tunneling Cluster Ready Data Client To Server - * - * - * - * @param tunnelId Ver.: always - * @param numberOfOctetsLeft Ver.: always - */ -bool emberAfTunnelingClusterReadyDataClientToServerCallback(uint16_t tunnelId, uint16_t numberOfOctetsLeft); -/** @brief Tunneling Cluster Ready Data Server To Client - * - * - * - * @param tunnelId Ver.: always - * @param numberOfOctetsLeft Ver.: always - */ -bool emberAfTunnelingClusterReadyDataServerToClientCallback(uint16_t tunnelId, uint16_t numberOfOctetsLeft); -/** @brief Tunneling Cluster Request Tunnel - * - * - * - * @param protocolId Ver.: always - * @param manufacturerCode Ver.: always - * @param flowControlSupport Ver.: always - * @param maximumIncomingTransferSize Ver.: since se-1.1a-07-5356-17 - */ -bool emberAfTunnelingClusterRequestTunnelCallback(uint8_t protocolId, uint16_t manufacturerCode, uint8_t flowControlSupport, - uint16_t maximumIncomingTransferSize); -/** @brief Tunneling Cluster Request Tunnel Response - * - * - * - * @param tunnelId Ver.: always - * @param tunnelStatus Ver.: always - * @param maximumIncomingTransferSize Ver.: since se-1.1a-07-5356-17 - */ -bool emberAfTunnelingClusterRequestTunnelResponseCallback(uint16_t tunnelId, uint8_t tunnelStatus, - uint16_t maximumIncomingTransferSize); -/** @brief Tunneling Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfTunnelingClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Tunneling Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfTunnelingClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Tunneling Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfTunnelingClusterServerInitCallback(uint8_t endpoint); -/** @brief Tunneling Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfTunnelingClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Tunneling Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfTunnelingClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Tunneling Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfTunnelingClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Tunneling Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfTunnelingClusterServerTickCallback(uint8_t endpoint); -/** @brief Tunneling Cluster Supported Tunnel Protocols Response - * - * - * - * @param protocolListComplete Ver.: always - * @param protocolCount Ver.: always - * @param protocolList Ver.: always - */ -bool emberAfTunnelingClusterSupportedTunnelProtocolsResponseCallback(uint8_t protocolListComplete, uint8_t protocolCount, - uint8_t * protocolList); -/** @brief Tunneling Cluster Transfer Data Client To Server - * - * - * - * @param tunnelId Ver.: always - * @param data Ver.: always - */ -bool emberAfTunnelingClusterTransferDataClientToServerCallback(uint16_t tunnelId, uint8_t * data); -/** @brief Tunneling Cluster Transfer Data Error Client To Server - * - * - * - * @param tunnelId Ver.: always - * @param transferDataStatus Ver.: always - */ -bool emberAfTunnelingClusterTransferDataErrorClientToServerCallback(uint16_t tunnelId, uint8_t transferDataStatus); -/** @brief Tunneling Cluster Transfer Data Error Server To Client - * - * - * - * @param tunnelId Ver.: always - * @param transferDataStatus Ver.: always - */ -bool emberAfTunnelingClusterTransferDataErrorServerToClientCallback(uint16_t tunnelId, uint8_t transferDataStatus); -/** @brief Tunneling Cluster Transfer Data Server To Client - * - * - * - * @param tunnelId Ver.: always - * @param data Ver.: always - */ -bool emberAfTunnelingClusterTransferDataServerToClientCallback(uint16_t tunnelId, uint8_t * data); -/** @brief Tunneling Cluster Tunnel Closure Notification - * - * - * - * @param tunnelId Ver.: always - */ -bool emberAfTunnelingClusterTunnelClosureNotificationCallback(uint16_t tunnelId); - -/** @} END Tunneling Cluster Callbacks */ - -/** @name Prepayment Cluster Callbacks */ -// @{ - -/** @brief Prepayment Cluster Change Debt - * - * - * - * @param issuerEventId Ver.: always - * @param debtLabel Ver.: always - * @param debtAmount Ver.: always - * @param debtRecoveryMethod Ver.: always - * @param debtAmountType Ver.: always - * @param debtRecoveryStartTime Ver.: always - * @param debtRecoveryCollectionTime Ver.: always - * @param debtRecoveryFrequency Ver.: always - * @param debtRecoveryAmount Ver.: always - * @param debtRecoveryBalancePercentage Ver.: always - */ -bool emberAfPrepaymentClusterChangeDebtCallback(uint32_t issuerEventId, uint8_t * debtLabel, uint32_t debtAmount, - uint8_t debtRecoveryMethod, uint8_t debtAmountType, uint32_t debtRecoveryStartTime, - uint16_t debtRecoveryCollectionTime, uint8_t debtRecoveryFrequency, - uint32_t debtRecoveryAmount, uint16_t debtRecoveryBalancePercentage); -/** @brief Prepayment Cluster Change Payment Mode - * - * - * - * @param providerId Ver.: always - * @param issuerEventId Ver.: always - * @param implementationDateTime Ver.: always - * @param proposedPaymentControlConfiguration Ver.: always - * @param cutOffValue Ver.: always - */ -bool emberAfPrepaymentClusterChangePaymentModeCallback(uint32_t providerId, uint32_t issuerEventId, uint32_t implementationDateTime, - uint16_t proposedPaymentControlConfiguration, uint32_t cutOffValue); -/** @brief Prepayment Cluster Change Payment Mode Response - * - * - * - * @param friendlyCredit Ver.: always - * @param friendlyCreditCalendarId Ver.: always - * @param emergencyCreditLimit Ver.: always - * @param emergencyCreditThreshold Ver.: always - */ -bool emberAfPrepaymentClusterChangePaymentModeResponseCallback(uint8_t friendlyCredit, uint32_t friendlyCreditCalendarId, - uint32_t emergencyCreditLimit, uint32_t emergencyCreditThreshold); -/** @brief Prepayment Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfPrepaymentClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Prepayment Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfPrepaymentClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Prepayment Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfPrepaymentClusterClientInitCallback(uint8_t endpoint); -/** @brief Prepayment Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfPrepaymentClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Prepayment Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfPrepaymentClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Prepayment Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfPrepaymentClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Prepayment Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfPrepaymentClusterClientTickCallback(uint8_t endpoint); -/** @brief Prepayment Cluster Consumer Top Up - * - * - * - * @param originatingDevice Ver.: always - * @param topUpCode Ver.: always - */ -bool emberAfPrepaymentClusterConsumerTopUpCallback(uint8_t originatingDevice, uint8_t * topUpCode); -/** @brief Prepayment Cluster Consumer Top Up Response - * - * - * - * @param resultType Ver.: always - * @param topUpValue Ver.: always - * @param sourceOfTopUp Ver.: always - * @param creditRemaining Ver.: always - */ -bool emberAfPrepaymentClusterConsumerTopUpResponseCallback(uint8_t resultType, uint32_t topUpValue, uint8_t sourceOfTopUp, - uint32_t creditRemaining); -/** @brief Prepayment Cluster Credit Adjustment - * - * - * - * @param issuerEventId Ver.: always - * @param startTime Ver.: always - * @param creditAdjustmentType Ver.: always - * @param creditAdjustmentValue Ver.: always - */ -bool emberAfPrepaymentClusterCreditAdjustmentCallback(uint32_t issuerEventId, uint32_t startTime, uint8_t creditAdjustmentType, - uint32_t creditAdjustmentValue); -/** @brief Prepayment Cluster Emergency Credit Setup - * - * - * - * @param issuerEventId Ver.: always - * @param startTime Ver.: always - * @param emergencyCreditLimit Ver.: always - * @param emergencyCreditThreshold Ver.: always - */ -bool emberAfPrepaymentClusterEmergencyCreditSetupCallback(uint32_t issuerEventId, uint32_t startTime, uint32_t emergencyCreditLimit, - uint32_t emergencyCreditThreshold); -/** @brief Prepayment Cluster Get Debt Repayment Log - * - * - * - * @param latestEndTime Ver.: always - * @param numberOfDebts Ver.: always - * @param debtType Ver.: always - */ -bool emberAfPrepaymentClusterGetDebtRepaymentLogCallback(uint32_t latestEndTime, uint8_t numberOfDebts, uint8_t debtType); -/** @brief Prepayment Cluster Get Prepay Snapshot - * - * - * - * @param earliestStartTime Ver.: always - * @param latestEndTime Ver.: always - * @param snapshotOffset Ver.: always - * @param snapshotCause Ver.: always - */ -bool emberAfPrepaymentClusterGetPrepaySnapshotCallback(uint32_t earliestStartTime, uint32_t latestEndTime, uint8_t snapshotOffset, - uint32_t snapshotCause); -/** @brief Prepayment Cluster Get Top Up Log - * - * - * - * @param latestEndTime Ver.: always - * @param numberOfRecords Ver.: always - */ -bool emberAfPrepaymentClusterGetTopUpLogCallback(uint32_t latestEndTime, uint8_t numberOfRecords); -/** @brief Prepayment Cluster Publish Debt Log - * - * - * - * @param commandIndex Ver.: always - * @param totalNumberOfCommands Ver.: always - * @param debtPayload Ver.: always - */ -bool emberAfPrepaymentClusterPublishDebtLogCallback(uint8_t commandIndex, uint8_t totalNumberOfCommands, uint8_t * debtPayload); -/** @brief Prepayment Cluster Publish Prepay Snapshot - * - * - * - * @param snapshotId Ver.: always - * @param snapshotTime Ver.: always - * @param totalSnapshotsFound Ver.: always - * @param commandIndex Ver.: always - * @param totalNumberOfCommands Ver.: always - * @param snapshotCause Ver.: always - * @param snapshotPayloadType Ver.: always - * @param snapshotPayload Ver.: always - */ -bool emberAfPrepaymentClusterPublishPrepaySnapshotCallback(uint32_t snapshotId, uint32_t snapshotTime, uint8_t totalSnapshotsFound, - uint8_t commandIndex, uint8_t totalNumberOfCommands, - uint32_t snapshotCause, uint8_t snapshotPayloadType, - uint8_t * snapshotPayload); -/** @brief Prepayment Cluster Publish Top Up Log - * - * - * - * @param commandIndex Ver.: always - * @param totalNumberOfCommands Ver.: always - * @param topUpPayload Ver.: always - */ -bool emberAfPrepaymentClusterPublishTopUpLogCallback(uint8_t commandIndex, uint8_t totalNumberOfCommands, uint8_t * topUpPayload); -/** @brief Prepayment Cluster Select Available Emergency Credit - * - * - * - * @param commandIssueDateTime Ver.: always - * @param originatingDevice Ver.: always - */ -bool emberAfPrepaymentClusterSelectAvailableEmergencyCreditCallback(uint32_t commandIssueDateTime, uint8_t originatingDevice); -/** @brief Prepayment Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfPrepaymentClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Prepayment Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfPrepaymentClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Prepayment Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfPrepaymentClusterServerInitCallback(uint8_t endpoint); -/** @brief Prepayment Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfPrepaymentClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Prepayment Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfPrepaymentClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Prepayment Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfPrepaymentClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Prepayment Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfPrepaymentClusterServerTickCallback(uint8_t endpoint); -/** @brief Prepayment Cluster Set Low Credit Warning Level - * - * - * - * @param lowCreditWarningLevel Ver.: always - */ -bool emberAfPrepaymentClusterSetLowCreditWarningLevelCallback(uint32_t lowCreditWarningLevel); -/** @brief Prepayment Cluster Set Maximum Credit Limit - * - * - * - * @param providerId Ver.: always - * @param issuerEventId Ver.: always - * @param implementationDateTime Ver.: always - * @param maximumCreditLevel Ver.: always - * @param maximumCreditPerTopUp Ver.: always - */ -bool emberAfPrepaymentClusterSetMaximumCreditLimitCallback(uint32_t providerId, uint32_t issuerEventId, - uint32_t implementationDateTime, uint32_t maximumCreditLevel, - uint32_t maximumCreditPerTopUp); -/** @brief Prepayment Cluster Set Overall Debt Cap - * - * - * - * @param providerId Ver.: always - * @param issuerEventId Ver.: always - * @param implementationDateTime Ver.: always - * @param overallDebtCap Ver.: always - */ -bool emberAfPrepaymentClusterSetOverallDebtCapCallback(uint32_t providerId, uint32_t issuerEventId, uint32_t implementationDateTime, - uint32_t overallDebtCap); - -/** @} END Prepayment Cluster Callbacks */ - -/** @name Energy Management Cluster Callbacks */ -// @{ - -/** @brief Energy Management Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfEnergyManagementClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Energy Management Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfEnergyManagementClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Energy Management Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfEnergyManagementClusterClientInitCallback(uint8_t endpoint); -/** @brief Energy Management Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfEnergyManagementClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Energy Management Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfEnergyManagementClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Energy Management Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfEnergyManagementClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Energy Management Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfEnergyManagementClusterClientTickCallback(uint8_t endpoint); -/** @brief Energy Management Cluster Manage Event - * - * - * - * @param issuerEventId Ver.: always - * @param deviceClass Ver.: always - * @param utilityEnrollmentGroup Ver.: always - * @param actionRequired Ver.: always - */ -bool emberAfEnergyManagementClusterManageEventCallback(uint32_t issuerEventId, uint16_t deviceClass, uint8_t utilityEnrollmentGroup, - uint8_t actionRequired); -/** @brief Energy Management Cluster Report Event Status - * - * - * - * @param issuerEventId Ver.: always - * @param eventStatus Ver.: always - * @param eventStatusTime Ver.: always - * @param criticalityLevelApplied Ver.: always - * @param coolingTemperatureSetPointApplied Ver.: always - * @param heatingTemperatureSetPointApplied Ver.: always - * @param averageLoadAdjustmentPercentageApplied Ver.: always - * @param dutyCycleApplied Ver.: always - * @param eventControl Ver.: always - */ -bool emberAfEnergyManagementClusterReportEventStatusCallback(uint32_t issuerEventId, uint8_t eventStatus, uint32_t eventStatusTime, - uint8_t criticalityLevelApplied, - uint16_t coolingTemperatureSetPointApplied, - uint16_t heatingTemperatureSetPointApplied, - int8_t averageLoadAdjustmentPercentageApplied, - uint8_t dutyCycleApplied, uint8_t eventControl); -/** @brief Energy Management Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfEnergyManagementClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Energy Management Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfEnergyManagementClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Energy Management Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfEnergyManagementClusterServerInitCallback(uint8_t endpoint); -/** @brief Energy Management Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfEnergyManagementClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Energy Management Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfEnergyManagementClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Energy Management Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfEnergyManagementClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Energy Management Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfEnergyManagementClusterServerTickCallback(uint8_t endpoint); - -/** @} END Energy Management Cluster Callbacks */ - -/** @name Calendar Cluster Callbacks */ -// @{ - -/** @brief Calendar Cluster Cancel Calendar - * - * - * - * @param providerId Ver.: always - * @param issuerCalendarId Ver.: always - * @param calendarType Ver.: always - */ -bool emberAfCalendarClusterCancelCalendarCallback(uint32_t providerId, uint32_t issuerCalendarId, uint8_t calendarType); -/** @brief Calendar Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfCalendarClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Calendar Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfCalendarClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Calendar Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfCalendarClusterClientInitCallback(uint8_t endpoint); -/** @brief Calendar Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfCalendarClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Calendar Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfCalendarClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Calendar Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfCalendarClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Calendar Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfCalendarClusterClientTickCallback(uint8_t endpoint); -/** @brief Calendar Cluster Get Calendar - * - * - * - * @param earliestStartTime Ver.: always - * @param minIssuerEventId Ver.: always - * @param numberOfCalendars Ver.: always - * @param calendarType Ver.: always - * @param providerId Ver.: always - */ -bool emberAfCalendarClusterGetCalendarCallback(uint32_t earliestStartTime, uint32_t minIssuerEventId, uint8_t numberOfCalendars, - uint8_t calendarType, uint32_t providerId); -/** @brief Calendar Cluster Get Calendar Cancellation - * - * - * - */ -bool emberAfCalendarClusterGetCalendarCancellationCallback(void); -/** @brief Calendar Cluster Get Day Profiles - * - * - * - * @param providerId Ver.: always - * @param issuerCalendarId Ver.: always - * @param startDayId Ver.: always - * @param numberOfDays Ver.: always - */ -bool emberAfCalendarClusterGetDayProfilesCallback(uint32_t providerId, uint32_t issuerCalendarId, uint8_t startDayId, - uint8_t numberOfDays); -/** @brief Calendar Cluster Get Seasons - * - * - * - * @param providerId Ver.: always - * @param issuerCalendarId Ver.: always - */ -bool emberAfCalendarClusterGetSeasonsCallback(uint32_t providerId, uint32_t issuerCalendarId); -/** @brief Calendar Cluster Get Special Days - * - * - * - * @param startTime Ver.: always - * @param numberOfEvents Ver.: always - * @param calendarType Ver.: always - * @param providerId Ver.: always - * @param issuerCalendarId Ver.: always - */ -bool emberAfCalendarClusterGetSpecialDaysCallback(uint32_t startTime, uint8_t numberOfEvents, uint8_t calendarType, - uint32_t providerId, uint32_t issuerCalendarId); -/** @brief Calendar Cluster Get Week Profiles - * - * - * - * @param providerId Ver.: always - * @param issuerCalendarId Ver.: always - * @param startWeekId Ver.: always - * @param numberOfWeeks Ver.: always - */ -bool emberAfCalendarClusterGetWeekProfilesCallback(uint32_t providerId, uint32_t issuerCalendarId, uint8_t startWeekId, - uint8_t numberOfWeeks); -/** @brief Calendar Cluster Publish Calendar - * - * - * - * @param providerId Ver.: always - * @param issuerEventId Ver.: always - * @param issuerCalendarId Ver.: always - * @param startTime Ver.: always - * @param calendarType Ver.: always - * @param calendarTimeReference Ver.: always - * @param calendarName Ver.: always - * @param numberOfSeasons Ver.: always - * @param numberOfWeekProfiles Ver.: always - * @param numberOfDayProfiles Ver.: always - */ -bool emberAfCalendarClusterPublishCalendarCallback(uint32_t providerId, uint32_t issuerEventId, uint32_t issuerCalendarId, - uint32_t startTime, uint8_t calendarType, uint8_t calendarTimeReference, - uint8_t * calendarName, uint8_t numberOfSeasons, uint8_t numberOfWeekProfiles, - uint8_t numberOfDayProfiles); -/** @brief Calendar Cluster Publish Day Profile - * - * - * - * @param providerId Ver.: always - * @param issuerEventId Ver.: always - * @param issuerCalendarId Ver.: always - * @param dayId Ver.: always - * @param totalNumberOfScheduleEntries Ver.: always - * @param commandIndex Ver.: always - * @param totalNumberOfCommands Ver.: always - * @param calendarType Ver.: always - * @param dayScheduleEntries Ver.: always - */ -bool emberAfCalendarClusterPublishDayProfileCallback(uint32_t providerId, uint32_t issuerEventId, uint32_t issuerCalendarId, - uint8_t dayId, uint8_t totalNumberOfScheduleEntries, uint8_t commandIndex, - uint8_t totalNumberOfCommands, uint8_t calendarType, - uint8_t * dayScheduleEntries); -/** @brief Calendar Cluster Publish Seasons - * - * - * - * @param providerId Ver.: always - * @param issuerEventId Ver.: always - * @param issuerCalendarId Ver.: always - * @param commandIndex Ver.: always - * @param totalNumberOfCommands Ver.: always - * @param seasonEntries Ver.: always - */ -bool emberAfCalendarClusterPublishSeasonsCallback(uint32_t providerId, uint32_t issuerEventId, uint32_t issuerCalendarId, - uint8_t commandIndex, uint8_t totalNumberOfCommands, uint8_t * seasonEntries); -/** @brief Calendar Cluster Publish Special Days - * - * - * - * @param providerId Ver.: always - * @param issuerEventId Ver.: always - * @param issuerCalendarId Ver.: always - * @param startTime Ver.: always - * @param calendarType Ver.: always - * @param totalNumberOfSpecialDays Ver.: always - * @param commandIndex Ver.: always - * @param totalNumberOfCommands Ver.: always - * @param specialDayEntries Ver.: always - */ -bool emberAfCalendarClusterPublishSpecialDaysCallback(uint32_t providerId, uint32_t issuerEventId, uint32_t issuerCalendarId, - uint32_t startTime, uint8_t calendarType, uint8_t totalNumberOfSpecialDays, - uint8_t commandIndex, uint8_t totalNumberOfCommands, - uint8_t * specialDayEntries); -/** @brief Calendar Cluster Publish Week Profile - * - * - * - * @param providerId Ver.: always - * @param issuerEventId Ver.: always - * @param issuerCalendarId Ver.: always - * @param weekId Ver.: always - * @param dayIdRefMonday Ver.: always - * @param dayIdRefTuesday Ver.: always - * @param dayIdRefWednesday Ver.: always - * @param dayIdRefThursday Ver.: always - * @param dayIdRefFriday Ver.: always - * @param dayIdRefSaturday Ver.: always - * @param dayIdRefSunday Ver.: always - */ -bool emberAfCalendarClusterPublishWeekProfileCallback(uint32_t providerId, uint32_t issuerEventId, uint32_t issuerCalendarId, - uint8_t weekId, uint8_t dayIdRefMonday, uint8_t dayIdRefTuesday, - uint8_t dayIdRefWednesday, uint8_t dayIdRefThursday, uint8_t dayIdRefFriday, - uint8_t dayIdRefSaturday, uint8_t dayIdRefSunday); -/** @brief Calendar Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfCalendarClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Calendar Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfCalendarClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Calendar Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfCalendarClusterServerInitCallback(uint8_t endpoint); -/** @brief Calendar Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfCalendarClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Calendar Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfCalendarClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Calendar Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfCalendarClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Calendar Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfCalendarClusterServerTickCallback(uint8_t endpoint); - -/** @} END Calendar Cluster Callbacks */ - -/** @name Device Management Cluster Callbacks */ -// @{ - -/** @brief Device Management Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfDeviceManagementClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Device Management Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfDeviceManagementClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Device Management Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfDeviceManagementClusterClientInitCallback(uint8_t endpoint); -/** @brief Device Management Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfDeviceManagementClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Device Management Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfDeviceManagementClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Device Management Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfDeviceManagementClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Device Management Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfDeviceManagementClusterClientTickCallback(uint8_t endpoint); -/** @brief Device Management Cluster Get C I N - * - * - * - */ -bool emberAfDeviceManagementClusterGetCINCallback(void); -/** @brief Device Management Cluster Get Change Of Supplier - * - * - * - */ -bool emberAfDeviceManagementClusterGetChangeOfSupplierCallback(void); -/** @brief Device Management Cluster Get Change Of Tenancy - * - * - * - */ -bool emberAfDeviceManagementClusterGetChangeOfTenancyCallback(void); -/** @brief Device Management Cluster Get Event Configuration - * - * - * - * @param eventId Ver.: always - */ -bool emberAfDeviceManagementClusterGetEventConfigurationCallback(uint16_t eventId); -/** @brief Device Management Cluster Get Site Id - * - * - * - */ -bool emberAfDeviceManagementClusterGetSiteIdCallback(void); -/** @brief Device Management Cluster Publish Change Of Supplier - * - * - * - * @param currentProviderId Ver.: always - * @param issuerEventId Ver.: always - * @param tariffType Ver.: always - * @param proposedProviderId Ver.: always - * @param providerChangeImplementationTime Ver.: always - * @param providerChangeControl Ver.: always - * @param proposedProviderName Ver.: always - * @param proposedProviderContactDetails Ver.: always - */ -bool emberAfDeviceManagementClusterPublishChangeOfSupplierCallback(uint32_t currentProviderId, uint32_t issuerEventId, - uint8_t tariffType, uint32_t proposedProviderId, - uint32_t providerChangeImplementationTime, - uint32_t providerChangeControl, uint8_t * proposedProviderName, - uint8_t * proposedProviderContactDetails); -/** @brief Device Management Cluster Publish Change Of Tenancy - * - * - * - * @param providerId Ver.: always - * @param issuerEventId Ver.: always - * @param tariffType Ver.: always - * @param implementationDateTime Ver.: always - * @param proposedTenancyChangeControl Ver.: always - */ -bool emberAfDeviceManagementClusterPublishChangeOfTenancyCallback(uint32_t providerId, uint32_t issuerEventId, uint8_t tariffType, - uint32_t implementationDateTime, - uint32_t proposedTenancyChangeControl); -/** @brief Device Management Cluster Report Event Configuration - * - * - * - * @param commandIndex Ver.: always - * @param totalCommands Ver.: always - * @param eventConfigurationPayload Ver.: always - */ -bool emberAfDeviceManagementClusterReportEventConfigurationCallback(uint8_t commandIndex, uint8_t totalCommands, - uint8_t * eventConfigurationPayload); -/** @brief Device Management Cluster Request New Password - * - * - * - * @param passwordType Ver.: always - */ -bool emberAfDeviceManagementClusterRequestNewPasswordCallback(uint8_t passwordType); -/** @brief Device Management Cluster Request New Password Response - * - * - * - * @param issuerEventId Ver.: always - * @param implementationDateTime Ver.: always - * @param durationInMinutes Ver.: always - * @param passwordType Ver.: always - * @param password Ver.: always - */ -bool emberAfDeviceManagementClusterRequestNewPasswordResponseCallback(uint32_t issuerEventId, uint32_t implementationDateTime, - uint16_t durationInMinutes, uint8_t passwordType, - uint8_t * password); -/** @brief Device Management Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfDeviceManagementClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Device Management Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfDeviceManagementClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Device Management Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfDeviceManagementClusterServerInitCallback(uint8_t endpoint); -/** @brief Device Management Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfDeviceManagementClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Device Management Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfDeviceManagementClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Device Management Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfDeviceManagementClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Device Management Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfDeviceManagementClusterServerTickCallback(uint8_t endpoint); -/** @brief Device Management Cluster Set Event Configuration - * - * - * - * @param issuerEventId Ver.: always - * @param startDateTime Ver.: always - * @param eventConfiguration Ver.: always - * @param configurationControl Ver.: always - * @param eventConfigurationPayload Ver.: always - */ -bool emberAfDeviceManagementClusterSetEventConfigurationCallback(uint32_t issuerEventId, uint32_t startDateTime, - uint8_t eventConfiguration, uint8_t configurationControl, - uint8_t * eventConfigurationPayload); -/** @brief Device Management Cluster Update C I N - * - * - * - * @param issuerEventId Ver.: always - * @param implementationTime Ver.: always - * @param providerId Ver.: always - * @param customerIdNumber Ver.: always - */ -bool emberAfDeviceManagementClusterUpdateCINCallback(uint32_t issuerEventId, uint32_t implementationTime, uint32_t providerId, - uint8_t * customerIdNumber); -/** @brief Device Management Cluster Update Site Id - * - * - * - * @param issuerEventId Ver.: always - * @param siteIdTime Ver.: always - * @param providerId Ver.: always - * @param siteId Ver.: always - */ -bool emberAfDeviceManagementClusterUpdateSiteIdCallback(uint32_t issuerEventId, uint32_t siteIdTime, uint32_t providerId, - uint8_t * siteId); - -/** @} END Device Management Cluster Callbacks */ - -/** @name Events Cluster Callbacks */ -// @{ - -/** @brief Events Cluster Clear Event Log Request - * - * - * - * @param logId Ver.: always - */ -bool emberAfEventsClusterClearEventLogRequestCallback(uint8_t logId); -/** @brief Events Cluster Clear Event Log Response - * - * - * - * @param clearedEventsLogs Ver.: always - */ -bool emberAfEventsClusterClearEventLogResponseCallback(uint8_t clearedEventsLogs); -/** @brief Events Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfEventsClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Events Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfEventsClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Events Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfEventsClusterClientInitCallback(uint8_t endpoint); -/** @brief Events Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfEventsClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Events Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfEventsClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Events Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfEventsClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Events Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfEventsClusterClientTickCallback(uint8_t endpoint); -/** @brief Events Cluster Get Event Log - * - * - * - * @param eventControlLogId Ver.: always - * @param eventId Ver.: always - * @param startTime Ver.: always - * @param endTime Ver.: always - * @param numberOfEvents Ver.: always - * @param eventOffset Ver.: always - */ -bool emberAfEventsClusterGetEventLogCallback(uint8_t eventControlLogId, uint16_t eventId, uint32_t startTime, uint32_t endTime, - uint8_t numberOfEvents, uint16_t eventOffset); -/** @brief Events Cluster Publish Event - * - * - * - * @param logId Ver.: always - * @param eventId Ver.: always - * @param eventTime Ver.: always - * @param eventControl Ver.: always - * @param eventData Ver.: always - */ -bool emberAfEventsClusterPublishEventCallback(uint8_t logId, uint16_t eventId, uint32_t eventTime, uint8_t eventControl, - uint8_t * eventData); -/** @brief Events Cluster Publish Event Log - * - * - * - * @param totalNumberOfEvents Ver.: always - * @param commandIndex Ver.: always - * @param totalCommands Ver.: always - * @param logPayloadControl Ver.: always - * @param logPayload Ver.: always - */ -bool emberAfEventsClusterPublishEventLogCallback(uint16_t totalNumberOfEvents, uint8_t commandIndex, uint8_t totalCommands, - uint8_t logPayloadControl, uint8_t * logPayload); -/** @brief Events Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfEventsClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Events Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfEventsClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Events Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfEventsClusterServerInitCallback(uint8_t endpoint); -/** @brief Events Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfEventsClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Events Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfEventsClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Events Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfEventsClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Events Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfEventsClusterServerTickCallback(uint8_t endpoint); - -/** @} END Events Cluster Callbacks */ - -/** @name MDU Pairing Cluster Callbacks */ -// @{ - -/** @brief MDU Pairing Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfMduPairingClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief MDU Pairing Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfMduPairingClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief MDU Pairing Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfMduPairingClusterClientInitCallback(uint8_t endpoint); -/** @brief MDU Pairing Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfMduPairingClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief MDU Pairing Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfMduPairingClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief MDU Pairing Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfMduPairingClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief MDU Pairing Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfMduPairingClusterClientTickCallback(uint8_t endpoint); -/** @brief MDU Pairing Cluster Pairing Request - * - * - * - * @param localPairingInformationVersion Ver.: always - * @param eui64OfRequestingDevice Ver.: always - */ -bool emberAfMduPairingClusterPairingRequestCallback(uint32_t localPairingInformationVersion, uint8_t * eui64OfRequestingDevice); -/** @brief MDU Pairing Cluster Pairing Response - * - * - * - * @param pairingInformationVersion Ver.: always - * @param totalNumberOfDevices Ver.: always - * @param commandIndex Ver.: always - * @param totalNumberOfCommands Ver.: always - * @param eui64s Ver.: always - */ -bool emberAfMduPairingClusterPairingResponseCallback(uint32_t pairingInformationVersion, uint8_t totalNumberOfDevices, - uint8_t commandIndex, uint8_t totalNumberOfCommands, uint8_t * eui64s); -/** @brief MDU Pairing Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfMduPairingClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief MDU Pairing Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfMduPairingClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief MDU Pairing Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfMduPairingClusterServerInitCallback(uint8_t endpoint); -/** @brief MDU Pairing Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfMduPairingClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief MDU Pairing Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfMduPairingClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief MDU Pairing Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfMduPairingClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief MDU Pairing Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfMduPairingClusterServerTickCallback(uint8_t endpoint); - -/** @} END MDU Pairing Cluster Callbacks */ - -/** @name Sub-GHz Cluster Callbacks */ -// @{ - -/** @brief Sub-GHz Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfSubGhzClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Sub-GHz Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfSubGhzClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Sub-GHz Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfSubGhzClusterClientInitCallback(uint8_t endpoint); -/** @brief Sub-GHz Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfSubGhzClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Sub-GHz Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfSubGhzClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Sub-GHz Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfSubGhzClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Sub-GHz Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfSubGhzClusterClientTickCallback(uint8_t endpoint); -/** @brief Sub-GHz Cluster Get Suspend Zcl Messages Status - * - * - * - */ -bool emberAfSubGhzClusterGetSuspendZclMessagesStatusCallback(void); -/** @brief Sub-GHz Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfSubGhzClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Sub-GHz Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfSubGhzClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Sub-GHz Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfSubGhzClusterServerInitCallback(uint8_t endpoint); -/** @brief Sub-GHz Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfSubGhzClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Sub-GHz Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfSubGhzClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Sub-GHz Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfSubGhzClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Sub-GHz Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfSubGhzClusterServerTickCallback(uint8_t endpoint); -/** @brief Sub-GHz Cluster Suspend Zcl Messages - * - * - * - * @param period Ver.: always - */ -bool emberAfSubGhzClusterSuspendZclMessagesCallback(uint8_t period); - -/** @} END Sub-GHz Cluster Callbacks */ - -/** @name Key Establishment Cluster Callbacks */ -// @{ - -/** @brief Key Establishment Cluster Client Command Received - * - * This function is called by the application framework when a server-to-client - * key establishment command is received but has yet to be handled by the - * framework code. This function should return a bool value indicating whether - * the command has been handled by the application code and should not be - * further processed by the framework. - * - * @param cmd Ver.: always - */ -bool emberAfKeyEstablishmentClusterClientCommandReceivedCallback(EmberAfClusterCommand * cmd); -/** @brief Key Establishment Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfKeyEstablishmentClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Key Establishment Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfKeyEstablishmentClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Key Establishment Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfKeyEstablishmentClusterClientInitCallback(uint8_t endpoint); -/** @brief Key Establishment Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfKeyEstablishmentClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Key Establishment Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfKeyEstablishmentClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Key Establishment Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfKeyEstablishmentClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Key Establishment Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfKeyEstablishmentClusterClientTickCallback(uint8_t endpoint); -/** @brief Key Establishment Cluster Confirm Key Data Request - * - * - * - * @param secureMessageAuthenticationCode Ver.: always - */ -bool emberAfKeyEstablishmentClusterConfirmKeyDataRequestCallback(uint8_t * secureMessageAuthenticationCode); -/** @brief Key Establishment Cluster Confirm Key Data Response - * - * - * - * @param secureMessageAuthenticationCode Ver.: always - */ -bool emberAfKeyEstablishmentClusterConfirmKeyDataResponseCallback(uint8_t * secureMessageAuthenticationCode); -/** @brief Key Establishment Cluster Ephemeral Data Request - * - * - * - * @param ephemeralData Ver.: always - */ -bool emberAfKeyEstablishmentClusterEphemeralDataRequestCallback(uint8_t * ephemeralData); -/** @brief Key Establishment Cluster Ephemeral Data Response - * - * - * - * @param ephemeralData Ver.: always - */ -bool emberAfKeyEstablishmentClusterEphemeralDataResponseCallback(uint8_t * ephemeralData); -/** @brief Key Establishment Cluster Initiate Key Establishment Request - * - * - * - * @param keyEstablishmentSuite Ver.: always - * @param ephemeralDataGenerateTime Ver.: always - * @param confirmKeyGenerateTime Ver.: always - * @param identity Ver.: always - */ -bool emberAfKeyEstablishmentClusterInitiateKeyEstablishmentRequestCallback(uint16_t keyEstablishmentSuite, - uint8_t ephemeralDataGenerateTime, - uint8_t confirmKeyGenerateTime, uint8_t * identity); -/** @brief Key Establishment Cluster Initiate Key Establishment Response - * - * - * - * @param requestedKeyEstablishmentSuite Ver.: always - * @param ephemeralDataGenerateTime Ver.: always - * @param confirmKeyGenerateTime Ver.: always - * @param identity Ver.: always - */ -bool emberAfKeyEstablishmentClusterInitiateKeyEstablishmentResponseCallback(uint16_t requestedKeyEstablishmentSuite, - uint8_t ephemeralDataGenerateTime, - uint8_t confirmKeyGenerateTime, uint8_t * identity); -/** @brief Key Establishment Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfKeyEstablishmentClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Key Establishment Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfKeyEstablishmentClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Key Establishment Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfKeyEstablishmentClusterServerInitCallback(uint8_t endpoint); -/** @brief Key Establishment Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfKeyEstablishmentClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Key Establishment Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfKeyEstablishmentClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Key Establishment Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfKeyEstablishmentClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Key Establishment Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfKeyEstablishmentClusterServerTickCallback(uint8_t endpoint); -/** @brief Key Establishment Cluster Terminate Key Establishment - * - * - * - * @param statusCode Ver.: always - * @param waitTime Ver.: always - * @param keyEstablishmentSuite Ver.: always - */ -bool emberAfKeyEstablishmentClusterTerminateKeyEstablishmentCallback(uint8_t statusCode, uint8_t waitTime, - uint16_t keyEstablishmentSuite); -/** @brief Key Establishment Cluster Server Command Received - * - * This function is called by the application framework when a client-to-server - * key establishment command is received but has yet to be handled by the - * framework code. This function should return a bool value indicating whether - * the command has been handled by the application code and should not be - * further processed by the framework. - * - * @param cmd Ver.: always - */ -bool emberAfKeyEstablishmentClusterServerCommandReceivedCallback(EmberAfClusterCommand * cmd); - -/** @} END Key Establishment Cluster Callbacks */ - -/** @name Information Cluster Callbacks */ -// @{ - -/** @brief Information Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfInformationClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Information Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfInformationClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Information Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfInformationClusterClientInitCallback(uint8_t endpoint); -/** @brief Information Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfInformationClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Information Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfInformationClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Information Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfInformationClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Information Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfInformationClusterClientTickCallback(uint8_t endpoint); -/** @brief Information Cluster Configure Delivery Enable - * - * - * - * @param enable Ver.: always - */ -bool emberAfInformationClusterConfigureDeliveryEnableCallback(uint8_t enable); -/** @brief Information Cluster Configure Node Description - * - * - * - * @param description Ver.: always - */ -bool emberAfInformationClusterConfigureNodeDescriptionCallback(uint8_t * description); -/** @brief Information Cluster Configure Push Information Timer - * - * - * - * @param timer Ver.: always - */ -bool emberAfInformationClusterConfigurePushInformationTimerCallback(uint32_t timer); -/** @brief Information Cluster Configure Set Root Id - * - * - * - * @param rootId Ver.: always - */ -bool emberAfInformationClusterConfigureSetRootIdCallback(uint16_t rootId); -/** @brief Information Cluster Delete - * - * - * - * @param deletionOptions Ver.: always - * @param contentIds Ver.: always - */ -bool emberAfInformationClusterDeleteCallback(uint8_t deletionOptions, uint8_t * contentIds); -/** @brief Information Cluster Delete Response - * - * - * - * @param notificationList Ver.: always - */ -bool emberAfInformationClusterDeleteResponseCallback(uint8_t * notificationList); -/** @brief Information Cluster Push Information - * - * - * - * @param contents Ver.: always - */ -bool emberAfInformationClusterPushInformationCallback(uint8_t * contents); -/** @brief Information Cluster Push Information Response - * - * - * - * @param notificationList Ver.: always - */ -bool emberAfInformationClusterPushInformationResponseCallback(uint8_t * notificationList); -/** @brief Information Cluster Request Information - * - * - * - * @param inquiryId Ver.: always - * @param dataTypeId Ver.: always - * @param requestInformationPayload Ver.: always - */ -bool emberAfInformationClusterRequestInformationCallback(uint8_t inquiryId, uint8_t dataTypeId, - uint8_t * requestInformationPayload); -/** @brief Information Cluster Request Information Response - * - * - * - * @param number Ver.: always - * @param buffer Ver.: always - */ -bool emberAfInformationClusterRequestInformationResponseCallback(uint8_t number, uint8_t * buffer); -/** @brief Information Cluster Request Preference Confirmation - * - * - * - * @param statusFeedbackList Ver.: always - */ -bool emberAfInformationClusterRequestPreferenceConfirmationCallback(uint8_t * statusFeedbackList); -/** @brief Information Cluster Request Preference Response - * - * - * - * @param statusFeedback Ver.: always - * @param preferenceType Ver.: always - * @param preferencePayload Ver.: always - */ -bool emberAfInformationClusterRequestPreferenceResponseCallback(uint8_t statusFeedback, uint16_t preferenceType, - uint8_t * preferencePayload); -/** @brief Information Cluster Send Preference - * - * - * - * @param preferenceType Ver.: always - * @param preferencePayload Ver.: always - */ -bool emberAfInformationClusterSendPreferenceCallback(uint16_t preferenceType, uint8_t * preferencePayload); -/** @brief Information Cluster Send Preference Response - * - * - * - * @param statusFeedbackList Ver.: always - */ -bool emberAfInformationClusterSendPreferenceResponseCallback(uint8_t * statusFeedbackList); -/** @brief Information Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfInformationClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Information Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfInformationClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Information Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfInformationClusterServerInitCallback(uint8_t endpoint); -/** @brief Information Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfInformationClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Information Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfInformationClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Information Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfInformationClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Information Cluster Server Request Preference - * - * - * - */ -bool emberAfInformationClusterServerRequestPreferenceCallback(void); -/** @brief Information Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfInformationClusterServerTickCallback(uint8_t endpoint); -/** @brief Information Cluster Update - * - * - * - * @param accessControl Ver.: always - * @param option Ver.: always - * @param contents Ver.: always - */ -bool emberAfInformationClusterUpdateCallback(uint8_t accessControl, uint8_t option, uint8_t * contents); -/** @brief Information Cluster Update Response - * - * - * - * @param notificationList Ver.: always - */ -bool emberAfInformationClusterUpdateResponseCallback(uint8_t * notificationList); - -/** @} END Information Cluster Callbacks */ - -/** @name Data Sharing Cluster Callbacks */ -// @{ - -/** @brief Data Sharing Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfDataSharingClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Data Sharing Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfDataSharingClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Data Sharing Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfDataSharingClusterClientInitCallback(uint8_t endpoint); -/** @brief Data Sharing Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfDataSharingClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Data Sharing Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfDataSharingClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Data Sharing Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfDataSharingClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Data Sharing Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfDataSharingClusterClientTickCallback(uint8_t endpoint); -/** @brief Data Sharing Cluster File Transmission - * - * - * - * @param transmitOptions Ver.: always - * @param buffer Ver.: always - */ -bool emberAfDataSharingClusterFileTransmissionCallback(uint8_t transmitOptions, uint8_t * buffer); -/** @brief Data Sharing Cluster Modify File Request - * - * - * - * @param fileIndex Ver.: always - * @param fileStartPosition Ver.: always - * @param octetCount Ver.: always - */ -bool emberAfDataSharingClusterModifyFileRequestCallback(uint16_t fileIndex, uint32_t fileStartPosition, uint32_t octetCount); -/** @brief Data Sharing Cluster Modify Record Request - * - * - * - * @param fileIndex Ver.: always - * @param fileStartRecord Ver.: always - * @param recordCount Ver.: always - */ -bool emberAfDataSharingClusterModifyRecordRequestCallback(uint16_t fileIndex, uint16_t fileStartRecord, uint16_t recordCount); -/** @brief Data Sharing Cluster Read File Request - * - * - * - * @param fileIndex Ver.: always - * @param fileStartPositionAndRequestedOctetCount Ver.: always - */ -bool emberAfDataSharingClusterReadFileRequestCallback(uint16_t fileIndex, uint8_t * fileStartPositionAndRequestedOctetCount); -/** @brief Data Sharing Cluster Read Record Request - * - * - * - * @param fileIndex Ver.: always - * @param fileStartRecordAndRequestedRecordCount Ver.: always - */ -bool emberAfDataSharingClusterReadRecordRequestCallback(uint16_t fileIndex, uint8_t * fileStartRecordAndRequestedRecordCount); -/** @brief Data Sharing Cluster Record Transmission - * - * - * - * @param transmitOptions Ver.: always - * @param buffer Ver.: always - */ -bool emberAfDataSharingClusterRecordTransmissionCallback(uint8_t transmitOptions, uint8_t * buffer); -/** @brief Data Sharing Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfDataSharingClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Data Sharing Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfDataSharingClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Data Sharing Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfDataSharingClusterServerInitCallback(uint8_t endpoint); -/** @brief Data Sharing Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfDataSharingClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Data Sharing Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfDataSharingClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Data Sharing Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfDataSharingClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Data Sharing Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfDataSharingClusterServerTickCallback(uint8_t endpoint); -/** @brief Data Sharing Cluster Write File Request - * - * - * - * @param writeOptions Ver.: always - * @param fileSize Ver.: always - */ -bool emberAfDataSharingClusterWriteFileRequestCallback(uint8_t writeOptions, uint8_t * fileSize); -/** @brief Data Sharing Cluster Write File Response - * - * - * - * @param status Ver.: always - * @param fileIndex Ver.: always - */ -bool emberAfDataSharingClusterWriteFileResponseCallback(uint8_t status, uint8_t * fileIndex); - -/** @} END Data Sharing Cluster Callbacks */ - -/** @name Gaming Cluster Callbacks */ -// @{ - -/** @brief Gaming Cluster Action Control - * - * - * - * @param actions Ver.: always - */ -bool emberAfGamingClusterActionControlCallback(uint32_t actions); -/** @brief Gaming Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfGamingClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Gaming Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfGamingClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Gaming Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfGamingClusterClientInitCallback(uint8_t endpoint); -/** @brief Gaming Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfGamingClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Gaming Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfGamingClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Gaming Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfGamingClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Gaming Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfGamingClusterClientTickCallback(uint8_t endpoint); -/** @brief Gaming Cluster Download Game - * - * - * - */ -bool emberAfGamingClusterDownloadGameCallback(void); -/** @brief Gaming Cluster End Game - * - * - * - */ -bool emberAfGamingClusterEndGameCallback(void); -/** @brief Gaming Cluster Game Announcement - * - * - * - * @param gameId Ver.: always - * @param gameMaster Ver.: always - * @param listOfGame Ver.: always - */ -bool emberAfGamingClusterGameAnnouncementCallback(uint16_t gameId, uint8_t gameMaster, uint8_t * listOfGame); -/** @brief Gaming Cluster General Response - * - * - * - * @param commandId Ver.: always - * @param status Ver.: always - * @param message Ver.: always - */ -bool emberAfGamingClusterGeneralResponseCallback(uint8_t commandId, uint8_t status, uint8_t * message); -/** @brief Gaming Cluster Join Game - * - * - * - * @param gameId Ver.: always - * @param joinAsMaster Ver.: always - * @param nameOfGame Ver.: always - */ -bool emberAfGamingClusterJoinGameCallback(uint16_t gameId, uint8_t joinAsMaster, uint8_t * nameOfGame); -/** @brief Gaming Cluster Pause Game - * - * - * - */ -bool emberAfGamingClusterPauseGameCallback(void); -/** @brief Gaming Cluster Quit Game - * - * - * - */ -bool emberAfGamingClusterQuitGameCallback(void); -/** @brief Gaming Cluster Resume Game - * - * - * - */ -bool emberAfGamingClusterResumeGameCallback(void); -/** @brief Gaming Cluster Search Game - * - * - * - * @param specificGame Ver.: always - * @param gameId Ver.: always - */ -bool emberAfGamingClusterSearchGameCallback(uint8_t specificGame, uint16_t gameId); -/** @brief Gaming Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfGamingClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Gaming Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfGamingClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Gaming Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfGamingClusterServerInitCallback(uint8_t endpoint); -/** @brief Gaming Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfGamingClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Gaming Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfGamingClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Gaming Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfGamingClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Gaming Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfGamingClusterServerTickCallback(uint8_t endpoint); -/** @brief Gaming Cluster Start Game - * - * - * - */ -bool emberAfGamingClusterStartGameCallback(void); -/** @brief Gaming Cluster Start Over - * - * - * - */ -bool emberAfGamingClusterStartOverCallback(void); - -/** @} END Gaming Cluster Callbacks */ - -/** @name Data Rate Control Cluster Callbacks */ -// @{ - -/** @brief Data Rate Control Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfDataRateControlClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Data Rate Control Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfDataRateControlClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Data Rate Control Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfDataRateControlClusterClientInitCallback(uint8_t endpoint); -/** @brief Data Rate Control Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfDataRateControlClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Data Rate Control Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfDataRateControlClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Data Rate Control Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfDataRateControlClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Data Rate Control Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfDataRateControlClusterClientTickCallback(uint8_t endpoint); -/** @brief Data Rate Control Cluster Data Rate Control - * - * - * - * @param originatorAddress Ver.: always - * @param destinationAddress Ver.: always - * @param dataRate Ver.: always - */ -bool emberAfDataRateControlClusterDataRateControlCallback(uint16_t originatorAddress, uint16_t destinationAddress, - uint8_t dataRate); -/** @brief Data Rate Control Cluster Data Rate Notification - * - * - * - * @param originatorAddress Ver.: always - * @param destinationAddress Ver.: always - * @param dataRate Ver.: always - */ -bool emberAfDataRateControlClusterDataRateNotificationCallback(uint16_t originatorAddress, uint16_t destinationAddress, - uint8_t dataRate); -/** @brief Data Rate Control Cluster Path Creation - * - * - * - * @param originatorAddress Ver.: always - * @param destinationAddress Ver.: always - * @param dataRate Ver.: always - */ -bool emberAfDataRateControlClusterPathCreationCallback(uint16_t originatorAddress, uint16_t destinationAddress, uint8_t dataRate); -/** @brief Data Rate Control Cluster Path Deletion - * - * - * - * @param originatorAddress Ver.: always - * @param destinationAddress Ver.: always - */ -bool emberAfDataRateControlClusterPathDeletionCallback(uint16_t originatorAddress, uint16_t destinationAddress); -/** @brief Data Rate Control Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfDataRateControlClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Data Rate Control Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfDataRateControlClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Data Rate Control Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfDataRateControlClusterServerInitCallback(uint8_t endpoint); -/** @brief Data Rate Control Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfDataRateControlClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Data Rate Control Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfDataRateControlClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Data Rate Control Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfDataRateControlClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Data Rate Control Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfDataRateControlClusterServerTickCallback(uint8_t endpoint); - -/** @} END Data Rate Control Cluster Callbacks */ - -/** @name Voice over ZigBee Cluster Callbacks */ -// @{ - -/** @brief Voice over ZigBee Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfVoiceOverZigbeeClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Voice over ZigBee Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfVoiceOverZigbeeClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Voice over ZigBee Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfVoiceOverZigbeeClusterClientInitCallback(uint8_t endpoint); -/** @brief Voice over ZigBee Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfVoiceOverZigbeeClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Voice over ZigBee Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfVoiceOverZigbeeClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Voice over ZigBee Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfVoiceOverZigbeeClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Voice over ZigBee Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfVoiceOverZigbeeClusterClientTickCallback(uint8_t endpoint); -/** @brief Voice over ZigBee Cluster Control - * - * - * - * @param controlType Ver.: always - */ -bool emberAfVoiceOverZigbeeClusterControlCallback(uint8_t controlType); -/** @brief Voice over ZigBee Cluster Control Response - * - * - * - * @param ackNack Ver.: always - */ -bool emberAfVoiceOverZigbeeClusterControlResponseCallback(uint8_t ackNack); -/** @brief Voice over ZigBee Cluster Establishment Request - * - * - * - * @param flag Ver.: always - * @param codecType Ver.: always - * @param sampFreq Ver.: always - * @param codecRate Ver.: always - * @param serviceType Ver.: always - * @param buffer Ver.: always - */ -bool emberAfVoiceOverZigbeeClusterEstablishmentRequestCallback(uint8_t flag, uint8_t codecType, uint8_t sampFreq, uint8_t codecRate, - uint8_t serviceType, uint8_t * buffer); -/** @brief Voice over ZigBee Cluster Establishment Response - * - * - * - * @param ackNack Ver.: always - * @param codecType Ver.: always - */ -bool emberAfVoiceOverZigbeeClusterEstablishmentResponseCallback(uint8_t ackNack, uint8_t codecType); -/** @brief Voice over ZigBee Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfVoiceOverZigbeeClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Voice over ZigBee Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfVoiceOverZigbeeClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Voice over ZigBee Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfVoiceOverZigbeeClusterServerInitCallback(uint8_t endpoint); -/** @brief Voice over ZigBee Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfVoiceOverZigbeeClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Voice over ZigBee Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfVoiceOverZigbeeClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Voice over ZigBee Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfVoiceOverZigbeeClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Voice over ZigBee Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfVoiceOverZigbeeClusterServerTickCallback(uint8_t endpoint); -/** @brief Voice over ZigBee Cluster Voice Transmission - * - * - * - * @param voiceData Ver.: always - */ -bool emberAfVoiceOverZigbeeClusterVoiceTransmissionCallback(uint8_t * voiceData); -/** @brief Voice over ZigBee Cluster Voice Transmission Completion - * - * - * - */ -bool emberAfVoiceOverZigbeeClusterVoiceTransmissionCompletionCallback(void); -/** @brief Voice over ZigBee Cluster Voice Transmission Response - * - * - * - * @param sequenceNumber Ver.: always - * @param errorFlag Ver.: always - */ -bool emberAfVoiceOverZigbeeClusterVoiceTransmissionResponseCallback(uint8_t sequenceNumber, uint8_t errorFlag); - -/** @} END Voice over ZigBee Cluster Callbacks */ - -/** @name Chatting Cluster Callbacks */ -// @{ - -/** @brief Chatting Cluster Chat Message - * - * - * - * @param destinationUid Ver.: always - * @param sourceUid Ver.: always - * @param cid Ver.: always - * @param nickname Ver.: always - * @param message Ver.: always - */ -bool emberAfChattingClusterChatMessageCallback(uint16_t destinationUid, uint16_t sourceUid, uint16_t cid, uint8_t * nickname, - uint8_t * message); -/** @brief Chatting Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfChattingClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Chatting Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfChattingClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Chatting Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfChattingClusterClientInitCallback(uint8_t endpoint); -/** @brief Chatting Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfChattingClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Chatting Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfChattingClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Chatting Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfChattingClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Chatting Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfChattingClusterClientTickCallback(uint8_t endpoint); -/** @brief Chatting Cluster Get Node Information Request - * - * - * - * @param cid Ver.: always - * @param uid Ver.: always - */ -bool emberAfChattingClusterGetNodeInformationRequestCallback(uint16_t cid, uint16_t uid); -/** @brief Chatting Cluster Get Node Information Response - * - * - * - * @param status Ver.: always - * @param cid Ver.: always - * @param uid Ver.: always - * @param addressEndpointAndNickname Ver.: always - */ -bool emberAfChattingClusterGetNodeInformationResponseCallback(uint8_t status, uint16_t cid, uint16_t uid, - uint8_t * addressEndpointAndNickname); -/** @brief Chatting Cluster Join Chat Request - * - * - * - * @param uid Ver.: always - * @param nickname Ver.: always - * @param cid Ver.: always - */ -bool emberAfChattingClusterJoinChatRequestCallback(uint16_t uid, uint8_t * nickname, uint16_t cid); -/** @brief Chatting Cluster Join Chat Response - * - * - * - * @param status Ver.: always - * @param cid Ver.: always - * @param chatParticipantList Ver.: always - */ -bool emberAfChattingClusterJoinChatResponseCallback(uint8_t status, uint16_t cid, uint8_t * chatParticipantList); -/** @brief Chatting Cluster Leave Chat Request - * - * - * - * @param cid Ver.: always - * @param uid Ver.: always - */ -bool emberAfChattingClusterLeaveChatRequestCallback(uint16_t cid, uint16_t uid); -/** @brief Chatting Cluster Search Chat Request - * - * - * - */ -bool emberAfChattingClusterSearchChatRequestCallback(void); -/** @brief Chatting Cluster Search Chat Response - * - * - * - * @param options Ver.: always - * @param chatRoomList Ver.: always - */ -bool emberAfChattingClusterSearchChatResponseCallback(uint8_t options, uint8_t * chatRoomList); -/** @brief Chatting Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfChattingClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Chatting Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfChattingClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Chatting Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfChattingClusterServerInitCallback(uint8_t endpoint); -/** @brief Chatting Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfChattingClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Chatting Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfChattingClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Chatting Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfChattingClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Chatting Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfChattingClusterServerTickCallback(uint8_t endpoint); -/** @brief Chatting Cluster Start Chat Request - * - * - * - * @param name Ver.: always - * @param uid Ver.: always - * @param nickname Ver.: always - */ -bool emberAfChattingClusterStartChatRequestCallback(uint8_t * name, uint16_t uid, uint8_t * nickname); -/** @brief Chatting Cluster Start Chat Response - * - * - * - * @param status Ver.: always - * @param cid Ver.: always - */ -bool emberAfChattingClusterStartChatResponseCallback(uint8_t status, uint16_t cid); -/** @brief Chatting Cluster Switch Chairman Confirm - * - * - * - * @param cid Ver.: always - * @param nodeInformationList Ver.: always - */ -bool emberAfChattingClusterSwitchChairmanConfirmCallback(uint16_t cid, uint8_t * nodeInformationList); -/** @brief Chatting Cluster Switch Chairman Notification - * - * - * - * @param cid Ver.: always - * @param uid Ver.: always - * @param address Ver.: always - * @param endpoint Ver.: always - */ -bool emberAfChattingClusterSwitchChairmanNotificationCallback(uint16_t cid, uint16_t uid, uint16_t address, uint8_t endpoint); -/** @brief Chatting Cluster Switch Chairman Request - * - * - * - * @param cid Ver.: always - */ -bool emberAfChattingClusterSwitchChairmanRequestCallback(uint16_t cid); -/** @brief Chatting Cluster Switch Chairman Response - * - * - * - * @param cid Ver.: always - * @param uid Ver.: always - */ -bool emberAfChattingClusterSwitchChairmanResponseCallback(uint16_t cid, uint16_t uid); -/** @brief Chatting Cluster User Joined - * - * - * - * @param cid Ver.: always - * @param uid Ver.: always - * @param nickname Ver.: always - */ -bool emberAfChattingClusterUserJoinedCallback(uint16_t cid, uint16_t uid, uint8_t * nickname); -/** @brief Chatting Cluster User Left - * - * - * - * @param cid Ver.: always - * @param uid Ver.: always - * @param nickname Ver.: always - */ -bool emberAfChattingClusterUserLeftCallback(uint16_t cid, uint16_t uid, uint8_t * nickname); - -/** @} END Chatting Cluster Callbacks */ - -/** @name Payment Cluster Callbacks */ -// @{ - -/** @brief Payment Cluster Accept Payment - * - * - * - * @param userId Ver.: always - * @param userType Ver.: always - * @param serviceId Ver.: always - * @param goodId Ver.: always - */ -bool emberAfPaymentClusterAcceptPaymentCallback(uint8_t * userId, uint16_t userType, uint16_t serviceId, uint8_t * goodId); -/** @brief Payment Cluster Buy Confirm - * - * - * - * @param serialNumber Ver.: always - * @param currency Ver.: always - * @param priceTrailingDigit Ver.: always - * @param price Ver.: always - * @param timestamp Ver.: always - * @param transId Ver.: always - * @param transStatus Ver.: always - */ -bool emberAfPaymentClusterBuyConfirmCallback(uint8_t * serialNumber, uint32_t currency, uint8_t priceTrailingDigit, uint32_t price, - uint8_t * timestamp, uint16_t transId, uint8_t transStatus); -/** @brief Payment Cluster Buy Request - * - * - * - * @param userId Ver.: always - * @param userType Ver.: always - * @param serviceId Ver.: always - * @param goodId Ver.: always - */ -bool emberAfPaymentClusterBuyRequestCallback(uint8_t * userId, uint16_t userType, uint16_t serviceId, uint8_t * goodId); -/** @brief Payment Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfPaymentClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Payment Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfPaymentClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Payment Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfPaymentClusterClientInitCallback(uint8_t endpoint); -/** @brief Payment Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfPaymentClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Payment Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfPaymentClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Payment Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfPaymentClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Payment Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfPaymentClusterClientTickCallback(uint8_t endpoint); -/** @brief Payment Cluster Payment Confirm - * - * - * - * @param serialNumber Ver.: always - * @param transId Ver.: always - * @param transStatus Ver.: always - */ -bool emberAfPaymentClusterPaymentConfirmCallback(uint8_t * serialNumber, uint16_t transId, uint8_t transStatus); -/** @brief Payment Cluster Receipt Delivery - * - * - * - * @param serialNumber Ver.: always - * @param currency Ver.: always - * @param priceTrailingDigit Ver.: always - * @param price Ver.: always - * @param timestamp Ver.: always - */ -bool emberAfPaymentClusterReceiptDeliveryCallback(uint8_t * serialNumber, uint32_t currency, uint8_t priceTrailingDigit, - uint32_t price, uint8_t * timestamp); -/** @brief Payment Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfPaymentClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Payment Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfPaymentClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Payment Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfPaymentClusterServerInitCallback(uint8_t endpoint); -/** @brief Payment Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfPaymentClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Payment Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfPaymentClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Payment Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfPaymentClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Payment Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfPaymentClusterServerTickCallback(uint8_t endpoint); -/** @brief Payment Cluster Transaction End - * - * - * - * @param serialNumber Ver.: always - * @param status Ver.: always - */ -bool emberAfPaymentClusterTransactionEndCallback(uint8_t * serialNumber, uint8_t status); - -/** @} END Payment Cluster Callbacks */ - -/** @name Billing Cluster Callbacks */ -// @{ - -/** @brief Billing Cluster Bill Status Notification - * - * - * - * @param userId Ver.: always - * @param status Ver.: always - */ -bool emberAfBillingClusterBillStatusNotificationCallback(uint8_t * userId, uint8_t status); -/** @brief Billing Cluster Check Bill Status - * - * - * - * @param userId Ver.: always - * @param serviceId Ver.: always - * @param serviceProviderId Ver.: always - */ -bool emberAfBillingClusterCheckBillStatusCallback(uint8_t * userId, uint16_t serviceId, uint16_t serviceProviderId); -/** @brief Billing Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfBillingClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Billing Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfBillingClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Billing Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfBillingClusterClientInitCallback(uint8_t endpoint); -/** @brief Billing Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfBillingClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Billing Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfBillingClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Billing Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfBillingClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Billing Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfBillingClusterClientTickCallback(uint8_t endpoint); -/** @brief Billing Cluster Send Bill Record - * - * - * - * @param userId Ver.: always - * @param serviceId Ver.: always - * @param serviceProviderId Ver.: always - * @param timestamp Ver.: always - * @param duration Ver.: always - */ -bool emberAfBillingClusterSendBillRecordCallback(uint8_t * userId, uint16_t serviceId, uint16_t serviceProviderId, - uint8_t * timestamp, uint16_t duration); -/** @brief Billing Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfBillingClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Billing Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfBillingClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Billing Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfBillingClusterServerInitCallback(uint8_t endpoint); -/** @brief Billing Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfBillingClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Billing Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfBillingClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Billing Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfBillingClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Billing Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfBillingClusterServerTickCallback(uint8_t endpoint); -/** @brief Billing Cluster Session Keep Alive - * - * - * - * @param userId Ver.: always - * @param serviceId Ver.: always - * @param serviceProviderId Ver.: always - */ -bool emberAfBillingClusterSessionKeepAliveCallback(uint8_t * userId, uint16_t serviceId, uint16_t serviceProviderId); -/** @brief Billing Cluster Start Billing Session - * - * - * - * @param userId Ver.: always - * @param serviceId Ver.: always - * @param serviceProviderId Ver.: always - */ -bool emberAfBillingClusterStartBillingSessionCallback(uint8_t * userId, uint16_t serviceId, uint16_t serviceProviderId); -/** @brief Billing Cluster Stop Billing Session - * - * - * - * @param userId Ver.: always - * @param serviceId Ver.: always - * @param serviceProviderId Ver.: always - */ -bool emberAfBillingClusterStopBillingSessionCallback(uint8_t * userId, uint16_t serviceId, uint16_t serviceProviderId); -/** @brief Billing Cluster Subscribe - * - * - * - * @param userId Ver.: always - * @param serviceId Ver.: always - * @param serviceProviderId Ver.: always - */ -bool emberAfBillingClusterSubscribeCallback(uint8_t * userId, uint16_t serviceId, uint16_t serviceProviderId); -/** @brief Billing Cluster Unsubscribe - * - * - * - * @param userId Ver.: always - * @param serviceId Ver.: always - * @param serviceProviderId Ver.: always - */ -bool emberAfBillingClusterUnsubscribeCallback(uint8_t * userId, uint16_t serviceId, uint16_t serviceProviderId); - -/** @} END Billing Cluster Callbacks */ - -/** @name Appliance Identification Cluster Callbacks */ -// @{ - -/** @brief Appliance Identification Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfApplianceIdentificationClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Appliance Identification Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfApplianceIdentificationClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Appliance Identification Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfApplianceIdentificationClusterClientInitCallback(uint8_t endpoint); -/** @brief Appliance Identification Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfApplianceIdentificationClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Appliance Identification Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfApplianceIdentificationClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Appliance Identification Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfApplianceIdentificationClusterClientPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Appliance Identification Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfApplianceIdentificationClusterClientTickCallback(uint8_t endpoint); -/** @brief Appliance Identification Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfApplianceIdentificationClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Appliance Identification Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfApplianceIdentificationClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Appliance Identification Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfApplianceIdentificationClusterServerInitCallback(uint8_t endpoint); -/** @brief Appliance Identification Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfApplianceIdentificationClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Appliance Identification Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfApplianceIdentificationClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Appliance Identification Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfApplianceIdentificationClusterServerPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Appliance Identification Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfApplianceIdentificationClusterServerTickCallback(uint8_t endpoint); - -/** @} END Appliance Identification Cluster Callbacks */ - -/** @name Meter Identification Cluster Callbacks */ -// @{ - -/** @brief Meter Identification Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfMeterIdentificationClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Meter Identification Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfMeterIdentificationClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Meter Identification Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfMeterIdentificationClusterClientInitCallback(uint8_t endpoint); -/** @brief Meter Identification Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfMeterIdentificationClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Meter Identification Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfMeterIdentificationClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Meter Identification Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfMeterIdentificationClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Meter Identification Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfMeterIdentificationClusterClientTickCallback(uint8_t endpoint); -/** @brief Meter Identification Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfMeterIdentificationClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Meter Identification Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfMeterIdentificationClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Meter Identification Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfMeterIdentificationClusterServerInitCallback(uint8_t endpoint); -/** @brief Meter Identification Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfMeterIdentificationClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Meter Identification Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfMeterIdentificationClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Meter Identification Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfMeterIdentificationClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Meter Identification Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfMeterIdentificationClusterServerTickCallback(uint8_t endpoint); - -/** @} END Meter Identification Cluster Callbacks */ - -/** @name Appliance Events and Alert Cluster Callbacks */ -// @{ - -/** @brief Appliance Events and Alert Cluster Alerts Notification - * - * - * - * @param alertsCount Ver.: always - * @param alertStructures Ver.: always - */ -bool emberAfApplianceEventsAndAlertClusterAlertsNotificationCallback(uint8_t alertsCount, uint8_t * alertStructures); -/** @brief Appliance Events and Alert Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfApplianceEventsAndAlertClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Appliance Events and Alert Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfApplianceEventsAndAlertClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Appliance Events and Alert Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfApplianceEventsAndAlertClusterClientInitCallback(uint8_t endpoint); -/** @brief Appliance Events and Alert Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfApplianceEventsAndAlertClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Appliance Events and Alert Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfApplianceEventsAndAlertClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Appliance Events and Alert Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfApplianceEventsAndAlertClusterClientPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Appliance Events and Alert Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfApplianceEventsAndAlertClusterClientTickCallback(uint8_t endpoint); -/** @brief Appliance Events and Alert Cluster Events Notification - * - * - * - * @param eventHeader Ver.: always - * @param eventId Ver.: always - */ -bool emberAfApplianceEventsAndAlertClusterEventsNotificationCallback(uint8_t eventHeader, uint8_t eventId); -/** @brief Appliance Events and Alert Cluster Get Alerts - * - * - * - */ -bool emberAfApplianceEventsAndAlertClusterGetAlertsCallback(void); -/** @brief Appliance Events and Alert Cluster Get Alerts Response - * - * - * - * @param alertsCount Ver.: always - * @param alertStructures Ver.: always - */ -bool emberAfApplianceEventsAndAlertClusterGetAlertsResponseCallback(uint8_t alertsCount, uint8_t * alertStructures); -/** @brief Appliance Events and Alert Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfApplianceEventsAndAlertClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Appliance Events and Alert Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfApplianceEventsAndAlertClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Appliance Events and Alert Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfApplianceEventsAndAlertClusterServerInitCallback(uint8_t endpoint); -/** @brief Appliance Events and Alert Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfApplianceEventsAndAlertClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Appliance Events and Alert Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfApplianceEventsAndAlertClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Appliance Events and Alert Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfApplianceEventsAndAlertClusterServerPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Appliance Events and Alert Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfApplianceEventsAndAlertClusterServerTickCallback(uint8_t endpoint); - -/** @} END Appliance Events and Alert Cluster Callbacks */ - -/** @name Appliance Statistics Cluster Callbacks */ -// @{ - -/** @brief Appliance Statistics Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfApplianceStatisticsClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Appliance Statistics Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfApplianceStatisticsClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Appliance Statistics Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfApplianceStatisticsClusterClientInitCallback(uint8_t endpoint); -/** @brief Appliance Statistics Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfApplianceStatisticsClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Appliance Statistics Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfApplianceStatisticsClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Appliance Statistics Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfApplianceStatisticsClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Appliance Statistics Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfApplianceStatisticsClusterClientTickCallback(uint8_t endpoint); -/** @brief Appliance Statistics Cluster Log Notification - * - * - * - * @param timeStamp Ver.: always - * @param logId Ver.: always - * @param logLength Ver.: always - * @param logPayload Ver.: always - */ -bool emberAfApplianceStatisticsClusterLogNotificationCallback(uint32_t timeStamp, uint32_t logId, uint32_t logLength, - uint8_t * logPayload); -/** @brief Appliance Statistics Cluster Log Queue Request - * - * - * - */ -bool emberAfApplianceStatisticsClusterLogQueueRequestCallback(void); -/** @brief Appliance Statistics Cluster Log Queue Response - * - * - * - * @param logQueueSize Ver.: always - * @param logIds Ver.: always - */ -bool emberAfApplianceStatisticsClusterLogQueueResponseCallback(uint8_t logQueueSize, uint8_t * logIds); -/** @brief Appliance Statistics Cluster Log Request - * - * - * - * @param logId Ver.: always - */ -bool emberAfApplianceStatisticsClusterLogRequestCallback(uint32_t logId); -/** @brief Appliance Statistics Cluster Log Response - * - * - * - * @param timeStamp Ver.: always - * @param logId Ver.: always - * @param logLength Ver.: always - * @param logPayload Ver.: always - */ -bool emberAfApplianceStatisticsClusterLogResponseCallback(uint32_t timeStamp, uint32_t logId, uint32_t logLength, - uint8_t * logPayload); -/** @brief Appliance Statistics Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfApplianceStatisticsClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Appliance Statistics Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfApplianceStatisticsClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Appliance Statistics Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfApplianceStatisticsClusterServerInitCallback(uint8_t endpoint); -/** @brief Appliance Statistics Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfApplianceStatisticsClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Appliance Statistics Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfApplianceStatisticsClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Appliance Statistics Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfApplianceStatisticsClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Appliance Statistics Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfApplianceStatisticsClusterServerTickCallback(uint8_t endpoint); -/** @brief Appliance Statistics Cluster Statistics Available - * - * - * - * @param logQueueSize Ver.: always - * @param logIds Ver.: always - */ -bool emberAfApplianceStatisticsClusterStatisticsAvailableCallback(uint8_t logQueueSize, uint8_t * logIds); - -/** @} END Appliance Statistics Cluster Callbacks */ - -/** @name Electrical Measurement Cluster Callbacks */ -// @{ - -/** @brief Electrical Measurement Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfElectricalMeasurementClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Electrical Measurement Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfElectricalMeasurementClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Electrical Measurement Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfElectricalMeasurementClusterClientInitCallback(uint8_t endpoint); -/** @brief Electrical Measurement Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfElectricalMeasurementClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Electrical Measurement Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfElectricalMeasurementClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Electrical Measurement Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfElectricalMeasurementClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Electrical Measurement Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfElectricalMeasurementClusterClientTickCallback(uint8_t endpoint); -/** @brief Electrical Measurement Cluster Get Measurement Profile Command - * - * - * - * @param attributeId Ver.: always - * @param startTime Ver.: always - * @param numberOfIntervals Ver.: always - */ -bool emberAfElectricalMeasurementClusterGetMeasurementProfileCommandCallback(uint16_t attributeId, uint32_t startTime, - uint8_t numberOfIntervals); -/** @brief Electrical Measurement Cluster Get Measurement Profile Response Command - * - * - * - * @param startTime Ver.: always - * @param status Ver.: always - * @param profileIntervalPeriod Ver.: always - * @param numberOfIntervalsDelivered Ver.: always - * @param attributeId Ver.: always - * @param intervals Ver.: always - */ -bool emberAfElectricalMeasurementClusterGetMeasurementProfileResponseCommandCallback(uint32_t startTime, uint8_t status, - uint8_t profileIntervalPeriod, - uint8_t numberOfIntervalsDelivered, - uint16_t attributeId, uint8_t * intervals); -/** @brief Electrical Measurement Cluster Get Profile Info Command - * - * - * - */ -bool emberAfElectricalMeasurementClusterGetProfileInfoCommandCallback(void); -/** @brief Electrical Measurement Cluster Get Profile Info Response Command - * - * - * - * @param profileCount Ver.: always - * @param profileIntervalPeriod Ver.: always - * @param maxNumberOfIntervals Ver.: always - * @param listOfAttributes Ver.: always - */ -bool emberAfElectricalMeasurementClusterGetProfileInfoResponseCommandCallback(uint8_t profileCount, uint8_t profileIntervalPeriod, - uint8_t maxNumberOfIntervals, - uint8_t * listOfAttributes); -/** @brief Electrical Measurement Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfElectricalMeasurementClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Electrical Measurement Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfElectricalMeasurementClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Electrical Measurement Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfElectricalMeasurementClusterServerInitCallback(uint8_t endpoint); -/** @brief Electrical Measurement Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfElectricalMeasurementClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Electrical Measurement Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfElectricalMeasurementClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Electrical Measurement Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfElectricalMeasurementClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Electrical Measurement Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfElectricalMeasurementClusterServerTickCallback(uint8_t endpoint); - -/** @} END Electrical Measurement Cluster Callbacks */ - -/** @name Diagnostics Cluster Callbacks */ -// @{ - -/** @brief Diagnostics Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfDiagnosticsClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Diagnostics Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfDiagnosticsClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Diagnostics Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfDiagnosticsClusterClientInitCallback(uint8_t endpoint); -/** @brief Diagnostics Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfDiagnosticsClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Diagnostics Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfDiagnosticsClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Diagnostics Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfDiagnosticsClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Diagnostics Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfDiagnosticsClusterClientTickCallback(uint8_t endpoint); -/** @brief Diagnostics Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfDiagnosticsClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Diagnostics Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfDiagnosticsClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Diagnostics Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfDiagnosticsClusterServerInitCallback(uint8_t endpoint); -/** @brief Diagnostics Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfDiagnosticsClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Diagnostics Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfDiagnosticsClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Diagnostics Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfDiagnosticsClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Diagnostics Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfDiagnosticsClusterServerTickCallback(uint8_t endpoint); - -/** @} END Diagnostics Cluster Callbacks */ - -/** @name ZLL Commissioning Cluster Callbacks */ -// @{ - -/** @brief ZLL Commissioning Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfZllCommissioningClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief ZLL Commissioning Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfZllCommissioningClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief ZLL Commissioning Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfZllCommissioningClusterClientInitCallback(uint8_t endpoint); -/** @brief ZLL Commissioning Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfZllCommissioningClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief ZLL Commissioning Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfZllCommissioningClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief ZLL Commissioning Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfZllCommissioningClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief ZLL Commissioning Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfZllCommissioningClusterClientTickCallback(uint8_t endpoint); -/** @brief ZLL Commissioning Cluster Device Information Request - * - * - * - * @param transaction Ver.: always - * @param startIndex Ver.: always - */ -bool emberAfZllCommissioningClusterDeviceInformationRequestCallback(uint32_t transaction, uint8_t startIndex); -/** @brief ZLL Commissioning Cluster Device Information Response - * - * - * - * @param transaction Ver.: always - * @param numberOfSubDevices Ver.: always - * @param startIndex Ver.: always - * @param deviceInformationRecordCount Ver.: always - * @param deviceInformationRecordList Ver.: always - */ -bool emberAfZllCommissioningClusterDeviceInformationResponseCallback(uint32_t transaction, uint8_t numberOfSubDevices, - uint8_t startIndex, uint8_t deviceInformationRecordCount, - uint8_t * deviceInformationRecordList); -/** @brief ZLL Commissioning Cluster Endpoint Information - * - * - * - * @param ieeeAddress Ver.: always - * @param networkAddress Ver.: always - * @param endpointId Ver.: always - * @param profileId Ver.: always - * @param deviceId Ver.: always - * @param version Ver.: always - */ -bool emberAfZllCommissioningClusterEndpointInformationCallback(uint8_t * ieeeAddress, uint16_t networkAddress, uint8_t endpointId, - uint16_t profileId, uint16_t deviceId, uint8_t version); -/** @brief ZLL Commissioning Cluster Get Endpoint List Request - * - * - * - * @param startIndex Ver.: always - */ -bool emberAfZllCommissioningClusterGetEndpointListRequestCallback(uint8_t startIndex); -/** @brief ZLL Commissioning Cluster Get Endpoint List Response - * - * - * - * @param total Ver.: always - * @param startIndex Ver.: always - * @param count Ver.: always - * @param endpointInformationRecordList Ver.: always - */ -bool emberAfZllCommissioningClusterGetEndpointListResponseCallback(uint8_t total, uint8_t startIndex, uint8_t count, - uint8_t * endpointInformationRecordList); -/** @brief ZLL Commissioning Cluster Get Group Identifiers Request - * - * - * - * @param startIndex Ver.: always - */ -bool emberAfZllCommissioningClusterGetGroupIdentifiersRequestCallback(uint8_t startIndex); -/** @brief ZLL Commissioning Cluster Get Group Identifiers Response - * - * - * - * @param total Ver.: always - * @param startIndex Ver.: always - * @param count Ver.: always - * @param groupInformationRecordList Ver.: always - */ -bool emberAfZllCommissioningClusterGetGroupIdentifiersResponseCallback(uint8_t total, uint8_t startIndex, uint8_t count, - uint8_t * groupInformationRecordList); -/** @brief ZLL Commissioning Cluster Identify Request - * - * - * - * @param transaction Ver.: always - * @param identifyDuration Ver.: always - */ -bool emberAfZllCommissioningClusterIdentifyRequestCallback(uint32_t transaction, uint16_t identifyDuration); -/** @brief ZLL Commissioning Cluster Network Join End Device Request - * - * - * - * @param transaction Ver.: always - * @param extendedPanId Ver.: always - * @param keyIndex Ver.: always - * @param encryptedNetworkKey Ver.: always - * @param networkUpdateId Ver.: always - * @param logicalChannel Ver.: always - * @param panId Ver.: always - * @param networkAddress Ver.: always - * @param groupIdentifiersBegin Ver.: always - * @param groupIdentifiersEnd Ver.: always - * @param freeNetworkAddressRangeBegin Ver.: always - * @param freeNetworkAddressRangeEnd Ver.: always - * @param freeGroupIdentifierRangeBegin Ver.: always - * @param freeGroupIdentifierRangeEnd Ver.: always - */ -bool emberAfZllCommissioningClusterNetworkJoinEndDeviceRequestCallback( - uint32_t transaction, uint8_t * extendedPanId, uint8_t keyIndex, uint8_t * encryptedNetworkKey, uint8_t networkUpdateId, - uint8_t logicalChannel, uint16_t panId, uint16_t networkAddress, uint16_t groupIdentifiersBegin, uint16_t groupIdentifiersEnd, - uint16_t freeNetworkAddressRangeBegin, uint16_t freeNetworkAddressRangeEnd, uint16_t freeGroupIdentifierRangeBegin, - uint16_t freeGroupIdentifierRangeEnd); -/** @brief ZLL Commissioning Cluster Network Join End Device Response - * - * - * - * @param transaction Ver.: always - * @param status Ver.: always - */ -bool emberAfZllCommissioningClusterNetworkJoinEndDeviceResponseCallback(uint32_t transaction, uint8_t status); -/** @brief ZLL Commissioning Cluster Network Join Router Request - * - * - * - * @param transaction Ver.: always - * @param extendedPanId Ver.: always - * @param keyIndex Ver.: always - * @param encryptedNetworkKey Ver.: always - * @param networkUpdateId Ver.: always - * @param logicalChannel Ver.: always - * @param panId Ver.: always - * @param networkAddress Ver.: always - * @param groupIdentifiersBegin Ver.: always - * @param groupIdentifiersEnd Ver.: always - * @param freeNetworkAddressRangeBegin Ver.: always - * @param freeNetworkAddressRangeEnd Ver.: always - * @param freeGroupIdentifierRangeBegin Ver.: always - * @param freeGroupIdentifierRangeEnd Ver.: always - */ -bool emberAfZllCommissioningClusterNetworkJoinRouterRequestCallback( - uint32_t transaction, uint8_t * extendedPanId, uint8_t keyIndex, uint8_t * encryptedNetworkKey, uint8_t networkUpdateId, - uint8_t logicalChannel, uint16_t panId, uint16_t networkAddress, uint16_t groupIdentifiersBegin, uint16_t groupIdentifiersEnd, - uint16_t freeNetworkAddressRangeBegin, uint16_t freeNetworkAddressRangeEnd, uint16_t freeGroupIdentifierRangeBegin, - uint16_t freeGroupIdentifierRangeEnd); -/** @brief ZLL Commissioning Cluster Network Join Router Response - * - * - * - * @param transaction Ver.: always - * @param status Ver.: always - */ -bool emberAfZllCommissioningClusterNetworkJoinRouterResponseCallback(uint32_t transaction, uint8_t status); -/** @brief ZLL Commissioning Cluster Network Start Request - * - * - * - * @param transaction Ver.: always - * @param extendedPanId Ver.: always - * @param keyIndex Ver.: always - * @param encryptedNetworkKey Ver.: always - * @param logicalChannel Ver.: always - * @param panId Ver.: always - * @param networkAddress Ver.: always - * @param groupIdentifiersBegin Ver.: always - * @param groupIdentifiersEnd Ver.: always - * @param freeNetworkAddressRangeBegin Ver.: always - * @param freeNetworkAddressRangeEnd Ver.: always - * @param freeGroupIdentifierRangeBegin Ver.: always - * @param freeGroupIdentifierRangeEnd Ver.: always - * @param initiatorIeeeAddress Ver.: always - * @param initiatorNetworkAddress Ver.: always - */ -bool emberAfZllCommissioningClusterNetworkStartRequestCallback( - uint32_t transaction, uint8_t * extendedPanId, uint8_t keyIndex, uint8_t * encryptedNetworkKey, uint8_t logicalChannel, - uint16_t panId, uint16_t networkAddress, uint16_t groupIdentifiersBegin, uint16_t groupIdentifiersEnd, - uint16_t freeNetworkAddressRangeBegin, uint16_t freeNetworkAddressRangeEnd, uint16_t freeGroupIdentifierRangeBegin, - uint16_t freeGroupIdentifierRangeEnd, uint8_t * initiatorIeeeAddress, uint16_t initiatorNetworkAddress); -/** @brief ZLL Commissioning Cluster Network Start Response - * - * - * - * @param transaction Ver.: always - * @param status Ver.: always - * @param extendedPanId Ver.: always - * @param networkUpdateId Ver.: always - * @param logicalChannel Ver.: always - * @param panId Ver.: always - */ -bool emberAfZllCommissioningClusterNetworkStartResponseCallback(uint32_t transaction, uint8_t status, uint8_t * extendedPanId, - uint8_t networkUpdateId, uint8_t logicalChannel, uint16_t panId); -/** @brief ZLL Commissioning Cluster Network Update Request - * - * - * - * @param transaction Ver.: always - * @param extendedPanId Ver.: always - * @param networkUpdateId Ver.: always - * @param logicalChannel Ver.: always - * @param panId Ver.: always - * @param networkAddress Ver.: always - */ -bool emberAfZllCommissioningClusterNetworkUpdateRequestCallback(uint32_t transaction, uint8_t * extendedPanId, - uint8_t networkUpdateId, uint8_t logicalChannel, uint16_t panId, - uint16_t networkAddress); -/** @brief ZLL Commissioning Cluster Reset To Factory New Request - * - * - * - * @param transaction Ver.: always - */ -bool emberAfZllCommissioningClusterResetToFactoryNewRequestCallback(uint32_t transaction); -/** @brief ZLL Commissioning Cluster Scan Request - * - * - * - * @param transaction Ver.: always - * @param zigbeeInformation Ver.: always - * @param zllInformation Ver.: always - */ -bool emberAfZllCommissioningClusterScanRequestCallback(uint32_t transaction, uint8_t zigbeeInformation, uint8_t zllInformation); -/** @brief ZLL Commissioning Cluster Scan Response - * - * - * - * @param transaction Ver.: always - * @param rssiCorrection Ver.: always - * @param zigbeeInformation Ver.: always - * @param zllInformation Ver.: always - * @param keyBitmask Ver.: always - * @param responseId Ver.: always - * @param extendedPanId Ver.: always - * @param networkUpdateId Ver.: always - * @param logicalChannel Ver.: always - * @param panId Ver.: always - * @param networkAddress Ver.: always - * @param numberOfSubDevices Ver.: always - * @param totalGroupIds Ver.: always - * @param endpointId Ver.: always - * @param profileId Ver.: always - * @param deviceId Ver.: always - * @param version Ver.: always - * @param groupIdCount Ver.: always - */ -bool emberAfZllCommissioningClusterScanResponseCallback(uint32_t transaction, uint8_t rssiCorrection, uint8_t zigbeeInformation, - uint8_t zllInformation, uint16_t keyBitmask, uint32_t responseId, - uint8_t * extendedPanId, uint8_t networkUpdateId, uint8_t logicalChannel, - uint16_t panId, uint16_t networkAddress, uint8_t numberOfSubDevices, - uint8_t totalGroupIds, uint8_t endpointId, uint16_t profileId, - uint16_t deviceId, uint8_t version, uint8_t groupIdCount); -/** @brief ZLL Commissioning Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfZllCommissioningClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief ZLL Commissioning Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfZllCommissioningClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief ZLL Commissioning Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfZllCommissioningClusterServerInitCallback(uint8_t endpoint); -/** @brief ZLL Commissioning Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfZllCommissioningClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief ZLL Commissioning Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfZllCommissioningClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief ZLL Commissioning Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfZllCommissioningClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief ZLL Commissioning Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfZllCommissioningClusterServerTickCallback(uint8_t endpoint); - -/** @} END ZLL Commissioning Cluster Callbacks */ - -/** @name Sample Mfg Specific Cluster Cluster Callbacks */ -// @{ - -/** @brief Sample Mfg Specific Cluster Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfSampleMfgSpecificClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Sample Mfg Specific Cluster Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfSampleMfgSpecificClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Sample Mfg Specific Cluster Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfSampleMfgSpecificClusterClientInitCallback(uint8_t endpoint); -/** @brief Sample Mfg Specific Cluster Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfSampleMfgSpecificClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Sample Mfg Specific Cluster Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfSampleMfgSpecificClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Sample Mfg Specific Cluster Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfSampleMfgSpecificClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Sample Mfg Specific Cluster Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfSampleMfgSpecificClusterClientTickCallback(uint8_t endpoint); -/** @brief Sample Mfg Specific Cluster Cluster Command One - * - * - * - * @param argOne Ver.: always - */ -bool emberAfSampleMfgSpecificClusterCommandOneCallback(uint8_t argOne); -/** @brief Sample Mfg Specific Cluster Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfSampleMfgSpecificClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Sample Mfg Specific Cluster Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfSampleMfgSpecificClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Sample Mfg Specific Cluster Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfSampleMfgSpecificClusterServerInitCallback(uint8_t endpoint); -/** @brief Sample Mfg Specific Cluster Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfSampleMfgSpecificClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Sample Mfg Specific Cluster Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfSampleMfgSpecificClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Sample Mfg Specific Cluster Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfSampleMfgSpecificClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Sample Mfg Specific Cluster Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfSampleMfgSpecificClusterServerTickCallback(uint8_t endpoint); - -/** @} END Sample Mfg Specific Cluster Cluster Callbacks */ - -/** @name Sample Mfg Specific Cluster 2 Cluster Callbacks */ -// @{ - -/** @brief Sample Mfg Specific Cluster 2 Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfSampleMfgSpecificCluster2ClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Sample Mfg Specific Cluster 2 Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfSampleMfgSpecificCluster2ClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Sample Mfg Specific Cluster 2 Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfSampleMfgSpecificCluster2ClientInitCallback(uint8_t endpoint); -/** @brief Sample Mfg Specific Cluster 2 Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfSampleMfgSpecificCluster2ClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Sample Mfg Specific Cluster 2 Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfSampleMfgSpecificCluster2ClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Sample Mfg Specific Cluster 2 Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfSampleMfgSpecificCluster2ClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Sample Mfg Specific Cluster 2 Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfSampleMfgSpecificCluster2ClientTickCallback(uint8_t endpoint); -/** @brief Sample Mfg Specific Cluster 2 Cluster Command Two - * - * - * - * @param argOne Ver.: always - */ -bool emberAfSampleMfgSpecificCluster2CommandTwoCallback(uint8_t argOne); -/** @brief Sample Mfg Specific Cluster 2 Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfSampleMfgSpecificCluster2ServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Sample Mfg Specific Cluster 2 Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfSampleMfgSpecificCluster2ServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Sample Mfg Specific Cluster 2 Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfSampleMfgSpecificCluster2ServerInitCallback(uint8_t endpoint); -/** @brief Sample Mfg Specific Cluster 2 Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfSampleMfgSpecificCluster2ServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Sample Mfg Specific Cluster 2 Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfSampleMfgSpecificCluster2ServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Sample Mfg Specific Cluster 2 Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfSampleMfgSpecificCluster2ServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Sample Mfg Specific Cluster 2 Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfSampleMfgSpecificCluster2ServerTickCallback(uint8_t endpoint); - -/** @} END Sample Mfg Specific Cluster 2 Cluster Callbacks */ - -/** @name Configuration Cluster Cluster Callbacks */ -// @{ - -/** @brief Configuration Cluster Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfOtaConfigurationClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Configuration Cluster Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfOtaConfigurationClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Configuration Cluster Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfOtaConfigurationClusterClientInitCallback(uint8_t endpoint); -/** @brief Configuration Cluster Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfOtaConfigurationClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Configuration Cluster Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfOtaConfigurationClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Configuration Cluster Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfOtaConfigurationClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Configuration Cluster Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfOtaConfigurationClusterClientTickCallback(uint8_t endpoint); -/** @brief Configuration Cluster Cluster Lock Tokens - * - * - * - */ -bool emberAfOtaConfigurationClusterLockTokensCallback(void); -/** @brief Configuration Cluster Cluster Read Tokens - * - * - * - * @param token Ver.: always - */ -bool emberAfOtaConfigurationClusterReadTokensCallback(uint16_t token); -/** @brief Configuration Cluster Cluster Return Token - * - * - * - * @param token Ver.: always - * @param data Ver.: always - */ -bool emberAfOtaConfigurationClusterReturnTokenCallback(uint16_t token, uint8_t * data); -/** @brief Configuration Cluster Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfOtaConfigurationClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Configuration Cluster Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfOtaConfigurationClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Configuration Cluster Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfOtaConfigurationClusterServerInitCallback(uint8_t endpoint); -/** @brief Configuration Cluster Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfOtaConfigurationClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Configuration Cluster Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfOtaConfigurationClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Configuration Cluster Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfOtaConfigurationClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Configuration Cluster Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfOtaConfigurationClusterServerTickCallback(uint8_t endpoint); -/** @brief Configuration Cluster Cluster Set Token - * - * - * - * @param token Ver.: always - * @param data Ver.: always - */ -bool emberAfOtaConfigurationClusterSetTokenCallback(uint16_t token, uint8_t * data); -/** @brief Configuration Cluster Cluster Unlock Tokens - * - * - * - * @param data Ver.: always - */ -bool emberAfOtaConfigurationClusterUnlockTokensCallback(uint8_t * data); - -/** @} END Configuration Cluster Cluster Callbacks */ - -/** @name MFGLIB Cluster Cluster Callbacks */ -// @{ - -/** @brief MFGLIB Cluster Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfMfglibClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief MFGLIB Cluster Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfMfglibClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief MFGLIB Cluster Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfMfglibClusterClientInitCallback(uint8_t endpoint); -/** @brief MFGLIB Cluster Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfMfglibClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief MFGLIB Cluster Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfMfglibClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief MFGLIB Cluster Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfMfglibClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief MFGLIB Cluster Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfMfglibClusterClientTickCallback(uint8_t endpoint); -/** @brief MFGLIB Cluster Cluster Rx Mode - * - * - * - * @param channel Ver.: always - * @param power Ver.: always - * @param time Ver.: always - */ -bool emberAfMfglibClusterRxModeCallback(uint8_t channel, int8_t power, uint16_t time); -/** @brief MFGLIB Cluster Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfMfglibClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief MFGLIB Cluster Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfMfglibClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief MFGLIB Cluster Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfMfglibClusterServerInitCallback(uint8_t endpoint); -/** @brief MFGLIB Cluster Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfMfglibClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief MFGLIB Cluster Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfMfglibClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief MFGLIB Cluster Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfMfglibClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief MFGLIB Cluster Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfMfglibClusterServerTickCallback(uint8_t endpoint); -/** @brief MFGLIB Cluster Cluster Stream - * - * - * - * @param channel Ver.: always - * @param power Ver.: always - * @param time Ver.: always - */ -bool emberAfMfglibClusterStreamCallback(uint8_t channel, int8_t power, uint16_t time); -/** @brief MFGLIB Cluster Cluster Tone - * - * - * - * @param channel Ver.: always - * @param power Ver.: always - * @param time Ver.: always - */ -bool emberAfMfglibClusterToneCallback(uint8_t channel, int8_t power, uint16_t time); - -/** @} END MFGLIB Cluster Cluster Callbacks */ - -/** @name SL Works With All Hubs Cluster Callbacks */ -// @{ - -/** @brief SL Works With All Hubs Cluster Aps Ack Enablement Query Response - * - * - * - * @param numberExemptClusters Ver.: always - * @param clusterId Ver.: always - */ -bool emberAfSlWwahClusterApsAckEnablementQueryResponseCallback(uint8_t numberExemptClusters, uint8_t * clusterId); -/** @brief SL Works With All Hubs Cluster Aps Ack Requirement Query - * - * - * - */ -bool emberAfSlWwahClusterApsAckRequirementQueryCallback(void); -/** @brief SL Works With All Hubs Cluster Aps Link Key Authorization Query - * - * - * - * @param clusterId Ver.: always - */ -bool emberAfSlWwahClusterApsLinkKeyAuthorizationQueryCallback(uint16_t clusterId); -/** @brief SL Works With All Hubs Cluster Aps Link Key Authorization Query Response - * - * - * - * @param clusterId Ver.: always - * @param apsLinkKeyAuthStatus Ver.: always - */ -bool emberAfSlWwahClusterApsLinkKeyAuthorizationQueryResponseCallback(uint16_t clusterId, uint8_t apsLinkKeyAuthStatus); -/** @brief SL Works With All Hubs Cluster Clear Binding Table - * - * - * - */ -bool emberAfSlWwahClusterClearBindingTableCallback(void); -/** @brief SL Works With All Hubs Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfSlWwahClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief SL Works With All Hubs Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfSlWwahClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief SL Works With All Hubs Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfSlWwahClusterClientInitCallback(uint8_t endpoint); -/** @brief SL Works With All Hubs Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfSlWwahClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief SL Works With All Hubs Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfSlWwahClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief SL Works With All Hubs Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfSlWwahClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief SL Works With All Hubs Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfSlWwahClusterClientTickCallback(uint8_t endpoint); -/** @brief SL Works With All Hubs Cluster Debug Report Query - * - * - * - * @param debugReportId Ver.: always - */ -bool emberAfSlWwahClusterDebugReportQueryCallback(uint8_t debugReportId); -/** @brief SL Works With All Hubs Cluster Debug Report Query Response - * - * - * - * @param debugReportId Ver.: always - * @param debugReportData Ver.: always - */ -bool emberAfSlWwahClusterDebugReportQueryResponseCallback(uint8_t debugReportId, uint8_t * debugReportData); -/** @brief SL Works With All Hubs Cluster Disable Aps Link Key Authorization - * - * - * - * @param numberExemptClusters Ver.: always - * @param clusterId Ver.: always - */ -bool emberAfSlWwahClusterDisableApsLinkKeyAuthorizationCallback(uint8_t numberExemptClusters, uint8_t * clusterId); -/** @brief SL Works With All Hubs Cluster Disable Configuration Mode - * - * - * - */ -bool emberAfSlWwahClusterDisableConfigurationModeCallback(void); -/** @brief SL Works With All Hubs Cluster Disable Mgmt Leave Without Rejoin - * - * - * - */ -bool emberAfSlWwahClusterDisableMgmtLeaveWithoutRejoinCallback(void); -/** @brief SL Works With All Hubs Cluster Disable Ota Downgrades - * - * - * - */ -bool emberAfSlWwahClusterDisableOtaDowngradesCallback(void); -/** @brief SL Works With All Hubs Cluster Disable Periodic Router Check Ins - * - * - * - */ -bool emberAfSlWwahClusterDisablePeriodicRouterCheckInsCallback(void); -/** @brief SL Works With All Hubs Cluster Disable Touchlink Interpan Message Support - * - * - * - */ -bool emberAfSlWwahClusterDisableTouchlinkInterpanMessageSupportCallback(void); -/** @brief SL Works With All Hubs Cluster Disable Wwah App Event Retry Algorithm - * - * - * - */ -bool emberAfSlWwahClusterDisableWwahAppEventRetryAlgorithmCallback(void); -/** @brief SL Works With All Hubs Cluster Disable Wwah Bad Parent Recovery - * - * - * - */ -bool emberAfSlWwahClusterDisableWwahBadParentRecoveryCallback(void); -/** @brief SL Works With All Hubs Cluster Disable Wwah Parent Classification - * - * - * - */ -bool emberAfSlWwahClusterDisableWwahParentClassificationCallback(void); -/** @brief SL Works With All Hubs Cluster Disable Wwah Rejoin Algorithm - * - * - * - */ -bool emberAfSlWwahClusterDisableWwahRejoinAlgorithmCallback(void); -/** @brief SL Works With All Hubs Cluster Enable Aps Link Key Authorization - * - * - * - * @param numberExemptClusters Ver.: always - * @param clusterId Ver.: always - */ -bool emberAfSlWwahClusterEnableApsLinkKeyAuthorizationCallback(uint8_t numberExemptClusters, uint8_t * clusterId); -/** @brief SL Works With All Hubs Cluster Enable Configuration Mode - * - * - * - */ -bool emberAfSlWwahClusterEnableConfigurationModeCallback(void); -/** @brief SL Works With All Hubs Cluster Enable Periodic Router Check Ins - * - * - * - * @param checkInInterval Ver.: always - */ -bool emberAfSlWwahClusterEnablePeriodicRouterCheckInsCallback(uint16_t checkInInterval); -/** @brief SL Works With All Hubs Cluster Enable Tc Security On Ntwk Key Rotation - * - * - * - */ -bool emberAfSlWwahClusterEnableTcSecurityOnNtwkKeyRotationCallback(void); -/** @brief SL Works With All Hubs Cluster Enable Wwah App Event Retry Algorithm - * - * - * - * @param firstBackoffTimeSeconds Ver.: always - * @param backoffSeqCommonRatio Ver.: always - * @param maxBackoffTimeSeconds Ver.: always - * @param maxRedeliveryAttempts Ver.: always - */ -bool emberAfSlWwahClusterEnableWwahAppEventRetryAlgorithmCallback(uint8_t firstBackoffTimeSeconds, uint8_t backoffSeqCommonRatio, - uint32_t maxBackoffTimeSeconds, uint8_t maxRedeliveryAttempts); -/** @brief SL Works With All Hubs Cluster Enable Wwah Bad Parent Recovery - * - * - * - */ -bool emberAfSlWwahClusterEnableWwahBadParentRecoveryCallback(void); -/** @brief SL Works With All Hubs Cluster Enable Wwah Parent Classification - * - * - * - */ -bool emberAfSlWwahClusterEnableWwahParentClassificationCallback(void); -/** @brief SL Works With All Hubs Cluster Enable Wwah Rejoin Algorithm - * - * - * - * @param fastRejoinTimeoutSeconds Ver.: always - * @param durationBetweenRejoinsSeconds Ver.: always - * @param fastRejoinFirstBackoffSeconds Ver.: always - * @param maxBackoffTimeSeconds Ver.: always - * @param maxBackoffIterations Ver.: always - */ -bool emberAfSlWwahClusterEnableWwahRejoinAlgorithmCallback(uint16_t fastRejoinTimeoutSeconds, - uint16_t durationBetweenRejoinsSeconds, - uint16_t fastRejoinFirstBackoffSeconds, uint16_t maxBackoffTimeSeconds, - uint16_t maxBackoffIterations); -/** @brief SL Works With All Hubs Cluster New Debug Report Notification - * - * - * - * @param debugReportId Ver.: always - * @param debugReportSize Ver.: always - */ -bool emberAfSlWwahClusterNewDebugReportNotificationCallback(uint8_t debugReportId, uint32_t debugReportSize); -/** @brief SL Works With All Hubs Cluster Power Descriptor Change - * - * - * - * @param currentPowerMode Ver.: always - * @param availablePowerSources Ver.: always - * @param currentPowerSource Ver.: always - * @param currentPowerSourceLevel Ver.: always - */ -bool emberAfSlWwahClusterPowerDescriptorChangeCallback(uint32_t currentPowerMode, uint32_t availablePowerSources, - uint32_t currentPowerSource, uint32_t currentPowerSourceLevel); -/** @brief SL Works With All Hubs Cluster Powering Off Notification - * - * - * - * @param powerNotificationReason Ver.: always - * @param manufacturerId Ver.: always - * @param manufacturerReasonLength Ver.: always - * @param manufacturerReason Ver.: always - */ -bool emberAfSlWwahClusterPoweringOffNotificationCallback(uint8_t powerNotificationReason, uint16_t manufacturerId, - uint8_t manufacturerReasonLength, uint8_t * manufacturerReason); -/** @brief SL Works With All Hubs Cluster Powering On Notification - * - * - * - * @param powerNotificationReason Ver.: always - * @param manufacturerId Ver.: always - * @param manufacturerReasonLength Ver.: always - * @param manufacturerReason Ver.: always - */ -bool emberAfSlWwahClusterPoweringOnNotificationCallback(uint8_t powerNotificationReason, uint16_t manufacturerId, - uint8_t manufacturerReasonLength, uint8_t * manufacturerReason); -/** @brief SL Works With All Hubs Cluster Remove Aps Acks On Unicasts Requirement - * - * - * - */ -bool emberAfSlWwahClusterRemoveApsAcksOnUnicastsRequirementCallback(void); -/** @brief SL Works With All Hubs Cluster Request New Aps Link Key - * - * - * - */ -bool emberAfSlWwahClusterRequestNewApsLinkKeyCallback(void); -/** @brief SL Works With All Hubs Cluster Request Time - * - * - * - */ -bool emberAfSlWwahClusterRequestTimeCallback(void); -/** @brief SL Works With All Hubs Cluster Require Aps Acks On Unicasts - * - * - * - * @param numberExemptClusters Ver.: always - * @param clusterId Ver.: always - */ -bool emberAfSlWwahClusterRequireApsAcksOnUnicastsCallback(uint8_t numberExemptClusters, uint8_t * clusterId); -/** @brief SL Works With All Hubs Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfSlWwahClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief SL Works With All Hubs Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfSlWwahClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief SL Works With All Hubs Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfSlWwahClusterServerInitCallback(uint8_t endpoint); -/** @brief SL Works With All Hubs Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfSlWwahClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief SL Works With All Hubs Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfSlWwahClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief SL Works With All Hubs Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfSlWwahClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief SL Works With All Hubs Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfSlWwahClusterServerTickCallback(uint8_t endpoint); -/** @brief SL Works With All Hubs Cluster Set Ias Zone Enrollment Method - * - * - * - * @param enrollmentMode Ver.: always - */ -bool emberAfSlWwahClusterSetIasZoneEnrollmentMethodCallback(uint8_t enrollmentMode); -/** @brief SL Works With All Hubs Cluster Set Mac Poll Failure Wait Time - * - * - * - * @param waitTime Ver.: always - */ -bool emberAfSlWwahClusterSetMacPollFailureWaitTimeCallback(uint8_t waitTime); -/** @brief SL Works With All Hubs Cluster Set Pending Network Update - * - * - * - * @param channel Ver.: always - * @param panId Ver.: always - */ -bool emberAfSlWwahClusterSetPendingNetworkUpdateCallback(uint8_t channel, uint16_t panId); -/** @brief SL Works With All Hubs Cluster Short Address Change - * - * - * - * @param deviceEui64 Ver.: always - * @param deviceShort Ver.: always - */ -bool emberAfSlWwahClusterShortAddressChangeCallback(uint8_t * deviceEui64, uint16_t deviceShort); -/** @brief SL Works With All Hubs Cluster Survey Beacons - * - * - * - * @param standardBeacons Ver.: always - */ -bool emberAfSlWwahClusterSurveyBeaconsCallback(uint8_t standardBeacons); -/** @brief SL Works With All Hubs Cluster Survey Beacons Response - * - * - * - * @param numberOfBeacons Ver.: always - * @param beacon Ver.: always - */ -bool emberAfSlWwahClusterSurveyBeaconsResponseCallback(uint8_t numberOfBeacons, uint8_t * beacon); -/** @brief SL Works With All Hubs Cluster Trust Center For Cluster Server Query - * - * - * - */ -bool emberAfSlWwahClusterTrustCenterForClusterServerQueryCallback(void); -/** @brief SL Works With All Hubs Cluster Trust Center For Cluster Server Query Response - * - * - * - * @param numberOfClusters Ver.: always - * @param clusterId Ver.: always - */ -bool emberAfSlWwahClusterTrustCenterForClusterServerQueryResponseCallback(uint8_t numberOfClusters, uint8_t * clusterId); -/** @brief SL Works With All Hubs Cluster Use Trust Center For Cluster Server - * - * - * - * @param numberOfClusters Ver.: always - * @param clusterId Ver.: always - */ -bool emberAfSlWwahClusterUseTrustCenterForClusterServerCallback(uint8_t numberOfClusters, uint8_t * clusterId); -/** @brief SL Works With All Hubs Cluster Use Trust Center For Cluster Server Response - * - * - * - * @param status Ver.: always - * @param clusterStatusLength Ver.: always - * @param clusterStatus Ver.: always - */ -bool emberAfSlWwahClusterUseTrustCenterForClusterServerResponseCallback(uint8_t status, uint8_t clusterStatusLength, - uint8_t * clusterStatus); - -/** @} END SL Works With All Hubs Cluster Callbacks */ - -/** @name Temperature Measurement Server Cluster Plugin Callbacks */ -// @{ - -/** @brief Over temperature state changed - * - * This callback is generated when the temperature rises over the assert - * thresholds (warning and critical) or drops below the deassert thresholds - * (warning and critical) - * - * @param previousState, the state prior to the state change - * - * @param newState, the new state of the state change - * - * EMBER_TEMPERATURE_MEASUREMENT_SERVER_OVER_TEMPERATURE_NORMAL : normal state - * EMBER_TEMPERATURE_MEASUREMENT_SERVER_OVER_TEMPERATURE_WARNING : warning state - * EMBER_TEMPERATURE_MEASUREMENT_SERVER_OVER_TEMPERATURE_CRITICAL : critical state - * - * Ver.: always - */ -void emberAfPluginTemperatureMeasurementServerOverTemperatureCallback(uint8_t previousState, uint8_t newState); -/** @} END Temperature Measurement Server Cluster Plugin Callbacks */ - -/** @name HAL Library Plugin Callbacks */ -// @{ - -/** - * @brief Called whenever the radio is powered on. - */ -void halRadioPowerUpHandler(void); -/** - * @brief Called whenever the radio is powered off. - */ -void halRadioPowerDownHandler(void); -/** - * @brief Called whenever the microcontroller enters/exits a idle/sleep mode - * - * @param enter True if entering idle/sleep, False if exiting - * @param sleepMode Idle/sleep mode - */ -void halSleepCallback(bool enter, SleepModes sleepMode); -/** @} END HAL Library Plugin Callbacks */ - -/** @name Basic Server Cluster Plugin Callbacks */ -// @{ - -/** @brief Reset To Factory Defaults - * - * This function is called by the Basic server plugin when a request to reset - * to factory defaults is received. The plugin will reset attributes managed by - * the framework to their default values. The application should perform any - * other necessary reset-related operations in this callback, including - * resetting any externally-stored attributes. - * - * @param endpoint Ver.: always - */ -void emberAfPluginBasicResetToFactoryDefaultsCallback(uint8_t endpoint); -/** @} END Basic Server Cluster Plugin Callbacks */ - -/** @} END addtogroup */ -#ifdef __cplusplus -} -#endif // #ifdef __cplusplus - -#endif // SILABS_EMBER_AF_CALLBACK_PROTOTYPES +bool emberAfStartMoveCallback(); diff --git a/examples/temperature-measurement-app/esp32/main/gen/client-command-macro.h b/examples/temperature-measurement-app/esp32/main/gen/client-command-macro.h new file mode 100644 index 00000000000000..f1b0c4633a2b14 --- /dev/null +++ b/examples/temperature-measurement-app/esp32/main/gen/client-command-macro.h @@ -0,0 +1,6165 @@ + +/* + * + * 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. + */ + +// Prevent multiple inclusion +#pragma once + +/** @brief Command description for ReadAttributes + * + * Command: ReadAttributes + * @param attributeIds ATTRIBUTE_ID [] + * @param attributeIdsLen int + */ +#define emberAfFillCommandGlobalReadAttributes(clusterId, attributeIds, attributeIdsLen) \ + emberAfFillExternalBuffer(mask, clusterId, ZCL_READ_ATTRIBUTES_COMMAND_ID, "b", attributeIds, attributeIdsLen); + +/** @brief Command description for ReadAttributesResponse + * + * Command: ReadAttributesResponse + * @param readAttributeStatusRecords ReadAttributeStatusRecord [] + * @param readAttributeStatusRecordsLen int + */ +#define emberAfFillCommandGlobalReadAttributesResponse(clusterId, readAttributeStatusRecords, readAttributeStatusRecordsLen) \ + emberAfFillExternalBuffer(mask, clusterId, ZCL_READ_ATTRIBUTES_RESPONSE_COMMAND_ID, "b", readAttributeStatusRecords, \ + readAttributeStatusRecordsLen); + +/** @brief Command description for WriteAttributes + * + * Command: WriteAttributes + * @param writeAttributeRecords WriteAttributeRecord [] + * @param writeAttributeRecordsLen int + */ +#define emberAfFillCommandGlobalWriteAttributes(clusterId, writeAttributeRecords, writeAttributeRecordsLen) \ + emberAfFillExternalBuffer(mask, clusterId, ZCL_WRITE_ATTRIBUTES_COMMAND_ID, "b", writeAttributeRecords, \ + writeAttributeRecordsLen); + +/** @brief Command description for WriteAttributesUndivided + * + * Command: WriteAttributesUndivided + * @param writeAttributeRecords WriteAttributeRecord [] + * @param writeAttributeRecordsLen int + */ +#define emberAfFillCommandGlobalWriteAttributesUndivided(clusterId, writeAttributeRecords, writeAttributeRecordsLen) \ + emberAfFillExternalBuffer(mask, clusterId, ZCL_WRITE_ATTRIBUTES_UNDIVIDED_COMMAND_ID, "b", writeAttributeRecords, \ + writeAttributeRecordsLen); + +/** @brief Command description for WriteAttributesResponse + * + * Command: WriteAttributesResponse + * @param writeAttributeStatusRecords WriteAttributeStatusRecord [] + * @param writeAttributeStatusRecordsLen int + */ +#define emberAfFillCommandGlobalWriteAttributesResponse(clusterId, writeAttributeStatusRecords, writeAttributeStatusRecordsLen) \ + emberAfFillExternalBuffer(mask, clusterId, ZCL_WRITE_ATTRIBUTES_RESPONSE_COMMAND_ID, "b", writeAttributeStatusRecords, \ + writeAttributeStatusRecordsLen); + +/** @brief Command description for WriteAttributesNoResponse + * + * Command: WriteAttributesNoResponse + * @param writeAttributeRecords WriteAttributeRecord [] + * @param writeAttributeRecordsLen int + */ +#define emberAfFillCommandGlobalWriteAttributesNoResponse(clusterId, writeAttributeRecords, writeAttributeRecordsLen) \ + emberAfFillExternalBuffer(mask, clusterId, ZCL_WRITE_ATTRIBUTES_NO_RESPONSE_COMMAND_ID, "b", writeAttributeRecords, \ + writeAttributeRecordsLen); + +/** @brief Command description for ConfigureReporting + * + * Command: ConfigureReporting + * @param configureReportingRecords ConfigureReportingRecord [] + * @param configureReportingRecordsLen int + */ +#define emberAfFillCommandGlobalConfigureReporting(clusterId, configureReportingRecords, configureReportingRecordsLen) \ + emberAfFillExternalBuffer(mask, clusterId, ZCL_CONFIGURE_REPORTING_COMMAND_ID, "b", configureReportingRecords, \ + configureReportingRecordsLen); + +/** @brief Command description for ConfigureReportingResponse + * + * Command: ConfigureReportingResponse + * @param configureReportingStatusRecords ConfigureReportingStatusRecord [] + * @param configureReportingStatusRecordsLen int + */ +#define emberAfFillCommandGlobalConfigureReportingResponse(clusterId, configureReportingStatusRecords, \ + configureReportingStatusRecordsLen) \ + emberAfFillExternalBuffer(mask, clusterId, ZCL_CONFIGURE_REPORTING_RESPONSE_COMMAND_ID, "b", configureReportingStatusRecords, \ + configureReportingStatusRecordsLen); + +/** @brief Command description for ReadReportingConfiguration + * + * Command: ReadReportingConfiguration + * @param readReportingConfigurationAttributeRecords ReadReportingConfigurationAttributeRecord [] + * @param readReportingConfigurationAttributeRecordsLen int + */ +#define emberAfFillCommandGlobalReadReportingConfiguration(clusterId, readReportingConfigurationAttributeRecords, \ + readReportingConfigurationAttributeRecordsLen) \ + emberAfFillExternalBuffer(mask, clusterId, ZCL_READ_REPORTING_CONFIGURATION_COMMAND_ID, "b", \ + readReportingConfigurationAttributeRecords, readReportingConfigurationAttributeRecordsLen); + +/** @brief Command description for ReadReportingConfigurationResponse + * + * Command: ReadReportingConfigurationResponse + * @param readReportingConfigurationRecords ReadReportingConfigurationRecord [] + * @param readReportingConfigurationRecordsLen int + */ +#define emberAfFillCommandGlobalReadReportingConfigurationResponse(clusterId, readReportingConfigurationRecords, \ + readReportingConfigurationRecordsLen) \ + emberAfFillExternalBuffer(mask, clusterId, ZCL_READ_REPORTING_CONFIGURATION_RESPONSE_COMMAND_ID, "b", \ + readReportingConfigurationRecords, readReportingConfigurationRecordsLen); + +/** @brief Command description for ReportAttributes + * + * Command: ReportAttributes + * @param reportAttributeRecords ReportAttributeRecord [] + * @param reportAttributeRecordsLen int + */ +#define emberAfFillCommandGlobalReportAttributes(clusterId, reportAttributeRecords, reportAttributeRecordsLen) \ + emberAfFillExternalBuffer(mask, clusterId, ZCL_REPORT_ATTRIBUTES_COMMAND_ID, "b", reportAttributeRecords, \ + reportAttributeRecordsLen); + +/** @brief Command description for DefaultResponse + * + * Command: DefaultResponse + * @param commandId INT8U + * @param status Status + */ +#define emberAfFillCommandGlobalDefaultResponse(clusterId, commandId, status) \ + emberAfFillExternalBuffer(mask, clusterId, ZCL_DEFAULT_RESPONSE_COMMAND_ID, "uu", commandId, status); + +/** @brief Command description for DiscoverAttributes + * + * Command: DiscoverAttributes + * @param startId ATTRIBUTE_ID + * @param maxAttributeIds INT8U + */ +#define emberAfFillCommandGlobalDiscoverAttributes(clusterId, startId, maxAttributeIds) \ + emberAfFillExternalBuffer(mask, clusterId, ZCL_DISCOVER_ATTRIBUTES_COMMAND_ID, "uu", startId, maxAttributeIds); + +/** @brief Command description for DiscoverAttributesResponse + * + * Command: DiscoverAttributesResponse + * @param discoveryComplete INT8U + * @param discoverAttributesInfoRecords DiscoverAttributesInfoRecord [] + * @param discoverAttributesInfoRecordsLen int + */ +#define emberAfFillCommandGlobalDiscoverAttributesResponse(clusterId, discoveryComplete, discoverAttributesInfoRecords, \ + discoverAttributesInfoRecordsLen) \ + emberAfFillExternalBuffer(mask, clusterId, ZCL_DISCOVER_ATTRIBUTES_RESPONSE_COMMAND_ID, "ub", discoveryComplete, \ + discoverAttributesInfoRecords, discoverAttributesInfoRecordsLen); + +/** @brief Command description for ReadAttributesStructured + * + * Command: ReadAttributesStructured + * @param readStructuredAttributeRecords ReadStructuredAttributeRecord [] + * @param readStructuredAttributeRecordsLen int + */ +#define emberAfFillCommandGlobalReadAttributesStructured(clusterId, readStructuredAttributeRecords, \ + readStructuredAttributeRecordsLen) \ + emberAfFillExternalBuffer(mask, clusterId, ZCL_READ_ATTRIBUTES_STRUCTURED_COMMAND_ID, "b", readStructuredAttributeRecords, \ + readStructuredAttributeRecordsLen); + +/** @brief Command description for WriteAttributesStructured + * + * Command: WriteAttributesStructured + * @param writeStructuredAttributeRecords WriteStructuredAttributeRecord [] + * @param writeStructuredAttributeRecordsLen int + */ +#define emberAfFillCommandGlobalWriteAttributesStructured(clusterId, writeStructuredAttributeRecords, \ + writeStructuredAttributeRecordsLen) \ + emberAfFillExternalBuffer(mask, clusterId, ZCL_WRITE_ATTRIBUTES_STRUCTURED_COMMAND_ID, "b", writeStructuredAttributeRecords, \ + writeStructuredAttributeRecordsLen); + +/** @brief Command description for WriteAttributesStructuredResponse + * + * Command: WriteAttributesStructuredResponse + * @param writeStructuredAttributeStatusRecords WriteStructuredAttributeStatusRecord [] + * @param writeStructuredAttributeStatusRecordsLen int + */ +#define emberAfFillCommandGlobalWriteAttributesStructuredResponse(clusterId, writeStructuredAttributeStatusRecords, \ + writeStructuredAttributeStatusRecordsLen) \ + emberAfFillExternalBuffer(mask, clusterId, ZCL_WRITE_ATTRIBUTES_STRUCTURED_RESPONSE_COMMAND_ID, "b", \ + writeStructuredAttributeStatusRecords, writeStructuredAttributeStatusRecordsLen); + +/** @brief Command description for DiscoverCommandsReceived + * + * Command: DiscoverCommandsReceived + * @param startCommandId INT8U + * @param maxCommandIds INT8U + */ +#define emberAfFillCommandGlobalDiscoverCommandsReceived(clusterId, startCommandId, maxCommandIds) \ + emberAfFillExternalBuffer(mask, clusterId, ZCL_DISCOVER_COMMANDS_RECEIVED_COMMAND_ID, "uu", startCommandId, maxCommandIds); + +/** @brief Command description for DiscoverCommandsReceivedResponse + * + * Command: DiscoverCommandsReceivedResponse + * @param discoveryComplete INT8U + * @param commandIds INT8U [] + * @param commandIdsLen int + */ +#define emberAfFillCommandGlobalDiscoverCommandsReceivedResponse(clusterId, discoveryComplete, commandIds, commandIdsLen) \ + emberAfFillExternalBuffer(mask, clusterId, ZCL_DISCOVER_COMMANDS_RECEIVED_RESPONSE_COMMAND_ID, "ub", discoveryComplete, \ + commandIds, commandIdsLen); + +/** @brief Command description for DiscoverCommandsGenerated + * + * Command: DiscoverCommandsGenerated + * @param startCommandId INT8U + * @param maxCommandIds INT8U + */ +#define emberAfFillCommandGlobalDiscoverCommandsGenerated(clusterId, startCommandId, maxCommandIds) \ + emberAfFillExternalBuffer(mask, clusterId, ZCL_DISCOVER_COMMANDS_GENERATED_COMMAND_ID, "uu", startCommandId, maxCommandIds); + +/** @brief Command description for DiscoverCommandsGeneratedResponse + * + * Command: DiscoverCommandsGeneratedResponse + * @param discoveryComplete INT8U + * @param commandIds INT8U [] + * @param commandIdsLen int + */ +#define emberAfFillCommandGlobalDiscoverCommandsGeneratedResponse(clusterId, discoveryComplete, commandIds, commandIdsLen) \ + emberAfFillExternalBuffer(mask, clusterId, ZCL_DISCOVER_COMMANDS_GENERATED_RESPONSE_COMMAND_ID, "ub", discoveryComplete, \ + commandIds, commandIdsLen); + +/** @brief Command description for DiscoverAttributesExtended + * + * Command: DiscoverAttributesExtended + * @param startId ATTRIBUTE_ID + * @param maxAttributeIds INT8U + */ +#define emberAfFillCommandGlobalDiscoverAttributesExtended(clusterId, startId, maxAttributeIds) \ + emberAfFillExternalBuffer(mask, clusterId, ZCL_DISCOVER_ATTRIBUTES_EXTENDED_COMMAND_ID, "uu", startId, maxAttributeIds); + +/** @brief Command description for DiscoverAttributesExtendedResponse + * + * Command: DiscoverAttributesExtendedResponse + * @param discoveryComplete INT8U + * @param extendedDiscoverAttributesInfoRecords ExtendedDiscoverAttributesInfoRecord [] + * @param extendedDiscoverAttributesInfoRecordsLen int + */ +#define emberAfFillCommandGlobalDiscoverAttributesExtendedResponse( \ + clusterId, discoveryComplete, extendedDiscoverAttributesInfoRecords, extendedDiscoverAttributesInfoRecordsLen) \ + emberAfFillExternalBuffer(mask, clusterId, ZCL_DISCOVER_ATTRIBUTES_EXTENDED_RESPONSE_COMMAND_ID, "ub", discoveryComplete, \ + extendedDiscoverAttributesInfoRecords, extendedDiscoverAttributesInfoRecordsLen); + +/** @brief Command description for ResetToFactoryDefaults + * + * Command: ResetToFactoryDefaults + */ +#define emberAfFillCommandBasicClusterResetToFactoryDefaults() \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_RESET_TO_FACTORY_DEFAULTS_COMMAND_ID, "", ); + +/** @brief Command description for Identify + * + * Command: Identify + * @param identifyTime INT16U + * @param timeout INT16U + */ +#define emberAfFillCommandIdentifyClusterIdentify(identifyTime, timeout) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_IDENTIFY_COMMAND_ID, "uu", identifyTime, timeout); + +/** @brief Command description for IdentifyQuery + * + * Command: IdentifyQuery + */ +#define emberAfFillCommandIdentifyClusterIdentifyQuery() \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_IDENTIFY_QUERY_COMMAND_ID, "", ); + +/** @brief Command description for EZModeInvoke + * + * Command: EZModeInvoke + * @param action BITMAP8 + */ +#define emberAfFillCommandIdentifyClusterEZModeInvoke(action) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_EZ_MODE_INVOKE_COMMAND_ID, "u", action); + +/** @brief Command description for UpdateCommissionState + * + * Command: UpdateCommissionState + * @param action ENUM8 + * @param commissionStateMask BITMAP8 + */ +#define emberAfFillCommandIdentifyClusterUpdateCommissionState(action, commissionStateMask) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_UPDATE_COMMISSION_STATE_COMMAND_ID, "uu", action, commissionStateMask); + +/** @brief Command description for TriggerEffect + * + * Command: TriggerEffect + * @param effectId IdentifyEffectIdentifier + * @param effectVariant IdentifyEffectVariant + */ +#define emberAfFillCommandIdentifyClusterTriggerEffect(effectId, effectVariant) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_TRIGGER_EFFECT_COMMAND_ID, "uu", effectId, effectVariant); + +/** @brief Command description for AddGroup + * + * Command: AddGroup + * @param groupId INT16U + * @param status Status + * @param groupName CHAR_STRING + * @param groupId INT16U + */ +#define emberAfFillCommandGroupsClusterAddGroup(groupId, status, groupName, groupId) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_ADD_GROUP_COMMAND_ID, "uuuu", groupId, status, groupName, groupId); + +/** @brief Command description for ViewGroup + * + * Command: ViewGroup + * @param groupId INT16U + * @param status Status + * @param groupId INT16U + * @param groupName CHAR_STRING + */ +#define emberAfFillCommandGroupsClusterViewGroup(groupId, status, groupId, groupName) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_VIEW_GROUP_COMMAND_ID, "uuuu", groupId, status, groupId, groupName); + +/** @brief Command description for GetGroupMembership + * + * Command: GetGroupMembership + * @param groupCount INT8U + * @param capacity INT8U + * @param groupList INT16U [] + * @param groupListLen int + * @param groupCount INT8U + * @param groupList INT16U [] + * @param groupListLen int + */ +#define emberAfFillCommandGroupsClusterGetGroupMembership(groupCount, capacity, groupList, groupListLen, groupCount, groupList, \ + groupListLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_GET_GROUP_MEMBERSHIP_COMMAND_ID, "uubub", groupCount, capacity, groupList, groupListLen, \ + groupCount, groupList, groupListLen); + +/** @brief Command description for RemoveGroup + * + * Command: RemoveGroup + * @param groupId INT16U + * @param status Status + * @param groupId INT16U + */ +#define emberAfFillCommandGroupsClusterRemoveGroup(groupId, status, groupId) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_REMOVE_GROUP_COMMAND_ID, "uuu", groupId, status, groupId); + +/** @brief Command description for RemoveAllGroups + * + * Command: RemoveAllGroups + */ +#define emberAfFillCommandGroupsClusterRemoveAllGroups() \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_REMOVE_ALL_GROUPS_COMMAND_ID, "", ); + +/** @brief Command description for AddGroupIfIdentifying + * + * Command: AddGroupIfIdentifying + * @param groupId INT16U + * @param groupName CHAR_STRING + */ +#define emberAfFillCommandGroupsClusterAddGroupIfIdentifying(groupId, groupName) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_ADD_GROUP_IF_IDENTIFYING_COMMAND_ID, "uu", groupId, groupName); + +/** @brief Command description for AddScene + * + * Command: AddScene + * @param groupId INT16U + * @param status Status + * @param sceneId INT8U + * @param groupId INT16U + * @param transitionTime INT16U + * @param sceneId INT8U + * @param sceneName CHAR_STRING + * @param extensionFieldSets SceneExtensionFieldSet [] + * @param extensionFieldSetsLen int + */ +#define emberAfFillCommandScenesClusterAddScene(groupId, status, sceneId, groupId, transitionTime, sceneId, sceneName, \ + extensionFieldSets, extensionFieldSetsLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_ADD_SCENE_COMMAND_ID, "uuuuuuub", groupId, status, sceneId, groupId, transitionTime, sceneId, \ + sceneName, extensionFieldSets, extensionFieldSetsLen); + +/** @brief Command description for ViewScene + * + * Command: ViewScene + * @param groupId INT16U + * @param status Status + * @param sceneId INT8U + * @param groupId INT16U + * @param sceneId INT8U + * @param transitionTime INT16U + * @param sceneName CHAR_STRING + * @param extensionFieldSets SceneExtensionFieldSet [] + * @param extensionFieldSetsLen int + */ +#define emberAfFillCommandScenesClusterViewScene(groupId, status, sceneId, groupId, sceneId, transitionTime, sceneName, \ + extensionFieldSets, extensionFieldSetsLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_VIEW_SCENE_COMMAND_ID, "uuuuuuub", groupId, status, sceneId, groupId, sceneId, transitionTime, \ + sceneName, extensionFieldSets, extensionFieldSetsLen); + +/** @brief Command description for RemoveScene + * + * Command: RemoveScene + * @param groupId INT16U + * @param status Status + * @param sceneId INT8U + * @param groupId INT16U + * @param sceneId INT8U + */ +#define emberAfFillCommandScenesClusterRemoveScene(groupId, status, sceneId, groupId, sceneId) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_REMOVE_SCENE_COMMAND_ID, "uuuuu", groupId, status, sceneId, groupId, sceneId); + +/** @brief Command description for RemoveAllScenes + * + * Command: RemoveAllScenes + * @param groupId INT16U + * @param status Status + * @param groupId INT16U + */ +#define emberAfFillCommandScenesClusterRemoveAllScenes(groupId, status, groupId) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_REMOVE_ALL_SCENES_COMMAND_ID, "uuu", groupId, status, groupId); + +/** @brief Command description for StoreScene + * + * Command: StoreScene + * @param groupId INT16U + * @param status Status + * @param sceneId INT8U + * @param groupId INT16U + * @param sceneId INT8U + */ +#define emberAfFillCommandScenesClusterStoreScene(groupId, status, sceneId, groupId, sceneId) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_STORE_SCENE_COMMAND_ID, "uuuuu", groupId, status, sceneId, groupId, sceneId); + +/** @brief Command description for RecallScene + * + * Command: RecallScene + * @param groupId INT16U + * @param sceneId INT8U + * @param transitionTime INT16U + */ +#define emberAfFillCommandScenesClusterRecallScene(groupId, sceneId, transitionTime) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_RECALL_SCENE_COMMAND_ID, "uuu", groupId, sceneId, transitionTime); + +/** @brief Command description for GetSceneMembership + * + * Command: GetSceneMembership + * @param groupId INT16U + * @param status Status + * @param capacity INT8U + * @param groupId INT16U + * @param sceneCount INT8U + * @param sceneList INT8U [] + * @param sceneListLen int + */ +#define emberAfFillCommandScenesClusterGetSceneMembership(groupId, status, capacity, groupId, sceneCount, sceneList, sceneListLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_GET_SCENE_MEMBERSHIP_COMMAND_ID, "uuuuub", groupId, status, capacity, groupId, sceneCount, \ + sceneList, sceneListLen); + +/** @brief Command description for EnhancedAddScene + * + * Command: EnhancedAddScene + * @param groupId INT16U + * @param status Status + * @param sceneId INT8U + * @param groupId INT16U + * @param transitionTime INT16U + * @param sceneId INT8U + * @param sceneName CHAR_STRING + * @param extensionFieldSets SceneExtensionFieldSet [] + * @param extensionFieldSetsLen int + */ +#define emberAfFillCommandScenesClusterEnhancedAddScene(groupId, status, sceneId, groupId, transitionTime, sceneId, sceneName, \ + extensionFieldSets, extensionFieldSetsLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_ENHANCED_ADD_SCENE_COMMAND_ID, "uuuuuuub", groupId, status, sceneId, groupId, transitionTime, \ + sceneId, sceneName, extensionFieldSets, extensionFieldSetsLen); + +/** @brief Command description for EnhancedViewScene + * + * Command: EnhancedViewScene + * @param groupId INT16U + * @param status Status + * @param sceneId INT8U + * @param groupId INT16U + * @param sceneId INT8U + * @param transitionTime INT16U + * @param sceneName CHAR_STRING + * @param extensionFieldSets SceneExtensionFieldSet [] + * @param extensionFieldSetsLen int + */ +#define emberAfFillCommandScenesClusterEnhancedViewScene(groupId, status, sceneId, groupId, sceneId, transitionTime, sceneName, \ + extensionFieldSets, extensionFieldSetsLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_ENHANCED_VIEW_SCENE_COMMAND_ID, "uuuuuuub", groupId, status, sceneId, groupId, sceneId, \ + transitionTime, sceneName, extensionFieldSets, extensionFieldSetsLen); + +/** @brief Command description for CopyScene + * + * Command: CopyScene + * @param mode ScenesCopyMode + * @param status Status + * @param groupIdFrom INT16U + * @param groupIdFrom INT16U + * @param sceneIdFrom INT8U + * @param sceneIdFrom INT8U + * @param groupIdTo INT16U + * @param sceneIdTo INT8U + */ +#define emberAfFillCommandScenesClusterCopyScene(mode, status, groupIdFrom, groupIdFrom, sceneIdFrom, sceneIdFrom, groupIdTo, \ + sceneIdTo) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_COPY_SCENE_COMMAND_ID, "uuuuuuuu", mode, status, groupIdFrom, groupIdFrom, sceneIdFrom, \ + sceneIdFrom, groupIdTo, sceneIdTo); + +/** @brief Command description for Off + * + * Command: Off + */ +#define emberAfFillCommandOn \ + / \ + offClusterOff() emberAfFillExternalBuffer(mask, \ + \ + ZCL_OFF_COMMAND_ID, "", ); + +/** @brief Command description for On + * + * Command: On + */ +#define emberAfFillCommandOn \ + / \ + offClusterOn() emberAfFillExternalBuffer(mask, \ + \ + ZCL_ON_COMMAND_ID, "", ); + +/** @brief Command description for Toggle + * + * Command: Toggle + */ +#define emberAfFillCommandOn \ + / \ + offClusterToggle() emberAfFillExternalBuffer(mask, \ + \ + ZCL_TOGGLE_COMMAND_ID, "", ); + +/** @brief Command description for OffWithEffect + * + * Command: OffWithEffect + * @param effectId OnOffEffectIdentifier + * @param effectVariant ENUM8 + */ +#define emberAfFillCommandOn \ + / \ + offClusterOffWithEffect(effectId, effectVariant) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_OFF_WITH_EFFECT_COMMAND_ID, "uu", effectId, effectVariant); + +/** @brief Command description for OnWithRecallGlobalScene + * + * Command: OnWithRecallGlobalScene + */ +#define emberAfFillCommandOn \ + / \ + offClusterOnWithRecallGlobalScene() emberAfFillExternalBuffer(mask, \ + \ + ZCL_ON_WITH_RECALL_GLOBAL_SCENE_COMMAND_ID, "", ); + +/** @brief Command description for OnWithTimedOff + * + * Command: OnWithTimedOff + * @param onOffControl OnOffControl + * @param onTime INT16U + * @param offWaitTime INT16U + */ +#define emberAfFillCommandOn \ + / \ + offClusterOnWithTimedOff(onOffControl, onTime, offWaitTime) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_ON_WITH_TIMED_OFF_COMMAND_ID, "uuu", onOffControl, onTime, offWaitTime); + +/** @brief Command description for MoveToLevel + * + * Command: MoveToLevel + * @param level INT8U + * @param transitionTime INT16U + * @param optionMask BITMAP8 + * @param optionOverride BITMAP8 + */ +#define emberAfFillCommandLevel \ + ControlClusterMoveToLevel(level, transitionTime, optionMask, optionOverride) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_MOVE_TO_LEVEL_COMMAND_ID, "uuuu", level, transitionTime, optionMask, optionOverride); + +/** @brief Command description for Move + * + * Command: Move + * @param moveMode MoveMode + * @param rate INT8U + * @param optionMask BITMAP8 + * @param optionOverride BITMAP8 + */ +#define emberAfFillCommandLevel \ + ControlClusterMove(moveMode, rate, optionMask, optionOverride) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_MOVE_COMMAND_ID, "uuuu", moveMode, rate, optionMask, optionOverride); + +/** @brief Command description for Step + * + * Command: Step + * @param stepMode StepMode + * @param stepSize INT8U + * @param transitionTime INT16U + * @param optionMask BITMAP8 + * @param optionOverride BITMAP8 + */ +#define emberAfFillCommandLevel \ + ControlClusterStep(stepMode, stepSize, transitionTime, optionMask, optionOverride) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_STEP_COMMAND_ID, "uuuuu", stepMode, stepSize, transitionTime, optionMask, optionOverride); + +/** @brief Command description for Stop + * + * Command: Stop + * @param optionMask BITMAP8 + * @param optionOverride BITMAP8 + */ +#define emberAfFillCommandLevel \ + ControlClusterStop(optionMask, optionOverride) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_STOP_COMMAND_ID, "uu", optionMask, optionOverride); + +/** @brief Command description for MoveToLevelWithOnOff + * + * Command: MoveToLevelWithOnOff + * @param level INT8U + * @param transitionTime INT16U + */ +#define emberAfFillCommandLevel \ + ControlClusterMoveToLevelWithOnOff(level, transitionTime) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_MOVE_TO_LEVEL_WITH_ON_OFF_COMMAND_ID, "uu", level, transitionTime); + +/** @brief Command description for MoveWithOnOff + * + * Command: MoveWithOnOff + * @param moveMode MoveMode + * @param rate INT8U + */ +#define emberAfFillCommandLevel \ + ControlClusterMoveWithOnOff(moveMode, rate) emberAfFillExternalBuffer(mask, \ + \ + ZCL_MOVE_WITH_ON_OFF_COMMAND_ID, "uu", moveMode, rate); + +/** @brief Command description for StepWithOnOff + * + * Command: StepWithOnOff + * @param stepMode StepMode + * @param stepSize INT8U + * @param transitionTime INT16U + */ +#define emberAfFillCommandLevel \ + ControlClusterStepWithOnOff(stepMode, stepSize, transitionTime) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_STEP_WITH_ON_OFF_COMMAND_ID, "uuu", stepMode, stepSize, transitionTime); + +/** @brief Command description for StopWithOnOff + * + * Command: StopWithOnOff + */ +#define emberAfFillCommandLevel \ + ControlClusterStopWithOnOff() emberAfFillExternalBuffer(mask, \ + \ + ZCL_STOP_WITH_ON_OFF_COMMAND_ID, "", ); + +/** @brief Command description for ResetAlarm + * + * Command: ResetAlarm + * @param alarmCode ENUM8 + * @param alarmCode ENUM8 + * @param clusterId CLUSTER_ID + * @param clusterId CLUSTER_ID + */ +#define emberAfFillCommandAlarmsClusterResetAlarm(alarmCode, alarmCode, clusterId, clusterId) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_RESET_ALARM_COMMAND_ID, "uuuu", alarmCode, alarmCode, clusterId, clusterId); + +/** @brief Command description for ResetAllAlarms + * + * Command: ResetAllAlarms + * @param status Status + * @param alarmCode ENUM8 + * @param clusterId CLUSTER_ID + * @param timeStamp INT32U + */ +#define emberAfFillCommandAlarmsClusterResetAllAlarms(status, alarmCode, clusterId, timeStamp) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_RESET_ALL_ALARMS_COMMAND_ID, "uuuu", status, alarmCode, clusterId, timeStamp); + +/** @brief Command description for GetAlarm + * + * Command: GetAlarm + */ +#define emberAfFillCommandAlarmsClusterGetAlarm() \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_GET_ALARM_COMMAND_ID, "", ); + +/** @brief Command description for ResetAlarmLog + * + * Command: ResetAlarmLog + */ +#define emberAfFillCommandAlarmsClusterResetAlarmLog() \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_RESET_ALARM_LOG_COMMAND_ID, "", ); + +/** @brief Command description for SetAbsoluteLocation + * + * Command: SetAbsoluteLocation + * @param coordinate1 INT16S + * @param status Status + * @param coordinate2 INT16S + * @param power INT16S + * @param coordinate3 INT16S + * @param pathLossExponent INT16U + * @param power INT16S + * @param calculationPeriod INT16U + * @param pathLossExponent INT16U + * @param numberRssiMeasurements INT8U + * @param reportingPeriod INT16U + */ +#define emberAfFillCommandRSSI \ + LocationClusterSetAbsoluteLocation(coordinate1, status, coordinate2, power, coordinate3, pathLossExponent, power, \ + calculationPeriod, pathLossExponent, numberRssiMeasurements, reportingPeriod) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_SET_ABSOLUTE_LOCATION_COMMAND_ID, "uuuuuuuuuuu", coordinate1, status, coordinate2, power, \ + coordinate3, pathLossExponent, power, calculationPeriod, pathLossExponent, \ + numberRssiMeasurements, reportingPeriod); + +/** @brief Command description for SetDeviceConfiguration + * + * Command: SetDeviceConfiguration + * @param power INT16S + * @param status Status + * @param pathLossExponent INT16U + * @param locationType LocationType + * @param calculationPeriod INT16U + * @param coordinate1 INT16S + * @param numberRssiMeasurements INT8U + * @param coordinate2 INT16S + * @param reportingPeriod INT16U + * @param coordinate3 INT16S + * @param power INT16S + * @param pathLossExponent INT16U + * @param locationMethod LocationMethod + * @param qualityMeasure INT8U + * @param locationAge INT16U + */ +#define emberAfFillCommandRSSI \ + LocationClusterSetDeviceConfiguration(power, status, pathLossExponent, locationType, calculationPeriod, coordinate1, \ + numberRssiMeasurements, coordinate2, reportingPeriod, coordinate3, power, \ + pathLossExponent, locationMethod, qualityMeasure, locationAge) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_SET_DEVICE_CONFIGURATION_COMMAND_ID, "uuuuuuuuuuuuuuu", power, status, pathLossExponent, \ + locationType, calculationPeriod, coordinate1, numberRssiMeasurements, coordinate2, \ + reportingPeriod, coordinate3, power, pathLossExponent, locationMethod, qualityMeasure, \ + locationAge); + +/** @brief Command description for GetDeviceConfiguration + * + * Command: GetDeviceConfiguration + * @param targetAddress IEEE_ADDRESS + * @param locationType LocationType + * @param coordinate1 INT16S + * @param coordinate2 INT16S + * @param coordinate3 INT16S + * @param power INT16S + * @param pathLossExponent INT16U + * @param locationMethod LocationMethod + * @param qualityMeasure INT8U + * @param locationAge INT16U + */ +#define emberAfFillCommandRSSI \ + LocationClusterGetDeviceConfiguration(targetAddress, locationType, coordinate1, coordinate2, coordinate3, power, \ + pathLossExponent, locationMethod, qualityMeasure, locationAge) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_GET_DEVICE_CONFIGURATION_COMMAND_ID, "uuuuuuuuuu", targetAddress, locationType, coordinate1, \ + coordinate2, coordinate3, power, pathLossExponent, locationMethod, qualityMeasure, locationAge); + +/** @brief Command description for GetLocationData + * + * Command: GetLocationData + * @param flags GetLocationDataFlags + * @param locationType LocationType + * @param numberResponses INT8U + * @param coordinate1 INT16S + * @param targetAddress IEEE_ADDRESS + * @param coordinate2 INT16S + * @param coordinate3 INT16S + * @param qualityMeasure INT8U + * @param locationAge INT16U + */ +#define emberAfFillCommandRSSI \ + LocationClusterGetLocationData(flags, locationType, numberResponses, coordinate1, targetAddress, coordinate2, coordinate3, \ + qualityMeasure, locationAge) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_GET_LOCATION_DATA_COMMAND_ID, "uuuuuuuuu", flags, locationType, numberResponses, \ + coordinate1, targetAddress, coordinate2, coordinate3, qualityMeasure, locationAge); + +/** @brief Command description for RssiResponse + * + * Command: RssiResponse + * @param replyingDevice IEEE_ADDRESS + * @param locationType LocationType + * @param coordinate1 INT16S + * @param coordinate2 INT16S + * @param coordinate3 INT16S + * @param rssi INT8S + * @param numberRssiMeasurements INT8U + */ +#define emberAfFillCommandRSSI \ + LocationClusterRssiResponse(replyingDevice, locationType, coordinate1, coordinate2, coordinate3, rssi, numberRssiMeasurements) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_RSSI_RESPONSE_COMMAND_ID, "uuuuuuu", replyingDevice, locationType, coordinate1, coordinate2, \ + coordinate3, rssi, numberRssiMeasurements); + +/** @brief Command description for RssiRequest + * + * Command: RssiRequest + * @param targetAddress IEEE_ADDRESS + * @param numberRssiMeasurements INT8U + * @param calculationPeriod INT16U + */ +#define emberAfFillCommandRSSI \ + LocationClusterRssiRequest(targetAddress, numberRssiMeasurements, calculationPeriod) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_RSSI_REQUEST_COMMAND_ID, "uuu", targetAddress, numberRssiMeasurements, calculationPeriod); + +/** @brief Command description for AnchorNodeAnnounce + * + * Command: AnchorNodeAnnounce + * @param anchorNodeIeeeAddress IEEE_ADDRESS + * @param measuringDevice IEEE_ADDRESS + * @param coordinate1 INT16S + * @param neighbors INT8U + * @param coordinate2 INT16S + * @param neighborsInfo NeighborInfo [] + * @param neighborsInfoLen int + * @param coordinate3 INT16S + */ +#define emberAfFillCommandRSSI \ + LocationClusterAnchorNodeAnnounce(anchorNodeIeeeAddress, measuringDevice, coordinate1, neighbors, coordinate2, neighborsInfo, \ + neighborsInfoLen, coordinate3) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_ANCHOR_NODE_ANNOUNCE_COMMAND_ID, "uuuuubu", anchorNodeIeeeAddress, measuringDevice, \ + coordinate1, neighbors, coordinate2, neighborsInfo, neighborsInfoLen, coordinate3); + +/** @brief Command description for RequestOwnLocation + * + * Command: RequestOwnLocation + * @param blindNode IEEE_ADDRESS + */ +#define emberAfFillCommandRSSI \ + LocationClusterRequestOwnLocation(blindNode) emberAfFillExternalBuffer(mask, \ + \ + ZCL_REQUEST_OWN_LOCATION_COMMAND_ID, "u", blindNode); + +/** @brief Command description for RestartDevice + * + * Command: RestartDevice + * @param options RestartOptions + * @param status ENUM8 + * @param delay INT8U + * @param jitter INT8U + */ +#define emberAfFillCommandCommissioningClusterRestartDevice(options, status, delay, jitter) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_RESTART_DEVICE_COMMAND_ID, "uuuu", options, status, delay, jitter); + +/** @brief Command description for SaveStartupParameters + * + * Command: SaveStartupParameters + * @param options BITMAP8 + * @param status ENUM8 + * @param index INT8U + */ +#define emberAfFillCommandCommissioningClusterSaveStartupParameters(options, status, index) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_SAVE_STARTUP_PARAMETERS_COMMAND_ID, "uuu", options, status, index); + +/** @brief Command description for RestoreStartupParameters + * + * Command: RestoreStartupParameters + * @param options BITMAP8 + * @param status ENUM8 + * @param index INT8U + */ +#define emberAfFillCommandCommissioningClusterRestoreStartupParameters(options, status, index) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_RESTORE_STARTUP_PARAMETERS_COMMAND_ID, "uuu", options, status, index); + +/** @brief Command description for ResetStartupParameters + * + * Command: ResetStartupParameters + * @param options ResetOptions + * @param status ENUM8 + * @param index INT8U + */ +#define emberAfFillCommandCommissioningClusterResetStartupParameters(options, status, index) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_RESET_STARTUP_PARAMETERS_COMMAND_ID, "uuu", options, status, index); + +/** @brief Command description for TransferPartitionedFrame + * + * Command: TransferPartitionedFrame + * @param fragmentationOptions BITMAP8 + * @param ackOptions BITMAP8 + * @param partitionedIndicatorAndFrame INT8U [] + * @param partitionedIndicatorAndFrameLen int + * @param firstFrameIdAndNackList INT8U [] + * @param firstFrameIdAndNackListLen int + */ +#define emberAfFillCommandPartitionClusterTransferPartitionedFrame(fragmentationOptions, ackOptions, partitionedIndicatorAndFrame, \ + partitionedIndicatorAndFrameLen, firstFrameIdAndNackList, \ + firstFrameIdAndNackListLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_TRANSFER_PARTITIONED_FRAME_COMMAND_ID, "uubb", fragmentationOptions, ackOptions, \ + partitionedIndicatorAndFrame, partitionedIndicatorAndFrameLen, firstFrameIdAndNackList, \ + firstFrameIdAndNackListLen); + +/** @brief Command description for ReadHandshakeParam + * + * Command: ReadHandshakeParam + * @param partitionedClusterId CLUSTER_ID + * @param partitionedClusterId CLUSTER_ID + * @param attributeList ATTRIBUTE_ID [] + * @param attributeListLen int + * @param readAttributeStatusRecords ReadAttributeStatusRecord [] + * @param readAttributeStatusRecordsLen int + */ +#define emberAfFillCommandPartitionClusterReadHandshakeParam(partitionedClusterId, partitionedClusterId, attributeList, \ + attributeListLen, readAttributeStatusRecords, \ + readAttributeStatusRecordsLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_READ_HANDSHAKE_PARAM_COMMAND_ID, "uubb", partitionedClusterId, partitionedClusterId, \ + attributeList, attributeListLen, readAttributeStatusRecords, readAttributeStatusRecordsLen); + +/** @brief Command description for WriteHandshakeParam + * + * Command: WriteHandshakeParam + * @param partitionedClusterId CLUSTER_ID + * @param writeAttributeRecords WriteAttributeRecord [] + * @param writeAttributeRecordsLen int + */ +#define emberAfFillCommandPartitionClusterWriteHandshakeParam(partitionedClusterId, writeAttributeRecords, \ + writeAttributeRecordsLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_WRITE_HANDSHAKE_PARAM_COMMAND_ID, "ub", partitionedClusterId, writeAttributeRecords, \ + writeAttributeRecordsLen); + +/** @brief Command description for ImageNotify + * + * Command: ImageNotify + * @param payloadType ENUM8 + * @param queryJitter INT8U + * @param manufacturerId INT16U + * @param imageType INT16U + * @param newFileVersion INT32U + */ +#define emberAfFillCommandOver \ + the Air BootloadingClusterImageNotify(payloadType, queryJitter, manufacturerId, imageType, newFileVersion) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_IMAGE_NOTIFY_COMMAND_ID, "uuuuu", payloadType, queryJitter, manufacturerId, imageType, \ + newFileVersion); + +/** @brief Command description for QueryNextImageRequest + * + * Command: QueryNextImageRequest + * @param fieldControl INT8U + * @param manufacturerId INT16U + * @param imageType INT16U + * @param currentFileVersion INT32U + * @param hardwareVersion INT16U + */ +#define emberAfFillCommandOver \ + the Air BootloadingClusterQueryNextImageRequest(fieldControl, manufacturerId, imageType, currentFileVersion, hardwareVersion) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_QUERY_NEXT_IMAGE_REQUEST_COMMAND_ID, "uuuuu", fieldControl, manufacturerId, imageType, \ + currentFileVersion, hardwareVersion); + +/** @brief Command description for QueryNextImageResponse + * + * Command: QueryNextImageResponse + * @param status Status + * @param manufacturerId INT16U + * @param imageType INT16U + * @param fileVersion INT32U + * @param imageSize INT32U + */ +#define emberAfFillCommandOver \ + the Air BootloadingClusterQueryNextImageResponse(status, manufacturerId, imageType, fileVersion, imageSize) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_QUERY_NEXT_IMAGE_RESPONSE_COMMAND_ID, "uuuuu", status, manufacturerId, imageType, \ + fileVersion, imageSize); + +/** @brief Command description for ImageBlockRequest + * + * Command: ImageBlockRequest + * @param fieldControl INT8U + * @param manufacturerId INT16U + * @param imageType INT16U + * @param fileVersion INT32U + * @param fileOffset INT32U + * @param maxDataSize INT8U + * @param requestNodeAddress IEEE_ADDRESS + */ +#define emberAfFillCommandOver \ + the Air BootloadingClusterImageBlockRequest(fieldControl, manufacturerId, imageType, fileVersion, fileOffset, maxDataSize, \ + requestNodeAddress) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_IMAGE_BLOCK_REQUEST_COMMAND_ID, "uuuuuuu", fieldControl, manufacturerId, imageType, \ + fileVersion, fileOffset, maxDataSize, requestNodeAddress); + +/** @brief Command description for ImagePageRequest + * + * Command: ImagePageRequest + * @param fieldControl INT8U + * @param manufacturerId INT16U + * @param imageType INT16U + * @param fileVersion INT32U + * @param fileOffset INT32U + * @param maxDataSize INT8U + * @param pageSize INT16U + * @param responseSpacing INT16U + * @param requestNodeAddress IEEE_ADDRESS + */ +#define emberAfFillCommandOver \ + the Air BootloadingClusterImagePageRequest(fieldControl, manufacturerId, imageType, fileVersion, fileOffset, maxDataSize, \ + pageSize, responseSpacing, requestNodeAddress) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_IMAGE_PAGE_REQUEST_COMMAND_ID, "uuuuuuuuu", fieldControl, manufacturerId, imageType, \ + fileVersion, fileOffset, maxDataSize, pageSize, responseSpacing, requestNodeAddress); + +/** @brief Command description for ImageBlockResponse + * + * Command: ImageBlockResponse + * @param status Status + * @param manufacturerId INT16U + * @param imageType INT16U + * @param fileVersion INT32U + * @param fileOffset INT32U + * @param dataSize INT8U + * @param imageData INT8U [] + * @param imageDataLen int + */ +#define emberAfFillCommandOver \ + the Air BootloadingClusterImageBlockResponse(status, manufacturerId, imageType, fileVersion, fileOffset, dataSize, imageData, \ + imageDataLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_IMAGE_BLOCK_RESPONSE_COMMAND_ID, "uuuuuub", status, manufacturerId, imageType, fileVersion, \ + fileOffset, dataSize, imageData, imageDataLen); + +/** @brief Command description for UpgradeEndRequest + * + * Command: UpgradeEndRequest + * @param status Status + * @param manufacturerId INT16U + * @param imageType INT16U + * @param fileVersion INT32U + */ +#define emberAfFillCommandOver \ + the Air BootloadingClusterUpgradeEndRequest(status, manufacturerId, imageType, fileVersion) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_UPGRADE_END_REQUEST_COMMAND_ID, "uuuu", status, manufacturerId, imageType, fileVersion); + +/** @brief Command description for UpgradeEndResponse + * + * Command: UpgradeEndResponse + * @param manufacturerId INT16U + * @param imageType INT16U + * @param fileVersion INT32U + * @param currentTime UTC_TIME + * @param upgradeTime UTC_TIME + */ +#define emberAfFillCommandOver \ + the Air BootloadingClusterUpgradeEndResponse(manufacturerId, imageType, fileVersion, currentTime, upgradeTime) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_UPGRADE_END_RESPONSE_COMMAND_ID, "uuuuu", manufacturerId, imageType, fileVersion, \ + currentTime, upgradeTime); + +/** @brief Command description for QuerySpecificFileRequest + * + * Command: QuerySpecificFileRequest + * @param requestNodeAddress IEEE_ADDRESS + * @param manufacturerId INT16U + * @param imageType INT16U + * @param fileVersion INT32U + * @param currentZigbeeStackVersion INT16U + */ +#define emberAfFillCommandOver \ + the Air BootloadingClusterQuerySpecificFileRequest(requestNodeAddress, manufacturerId, imageType, fileVersion, \ + currentZigbeeStackVersion) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_QUERY_SPECIFIC_FILE_REQUEST_COMMAND_ID, "uuuuu", requestNodeAddress, manufacturerId, \ + imageType, fileVersion, currentZigbeeStackVersion); + +/** @brief Command description for QuerySpecificFileResponse + * + * Command: QuerySpecificFileResponse + * @param status Status + * @param manufacturerId INT16U + * @param imageType INT16U + * @param fileVersion INT32U + * @param imageSize INT32U + */ +#define emberAfFillCommandOver \ + the Air BootloadingClusterQuerySpecificFileResponse(status, manufacturerId, imageType, fileVersion, imageSize) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_QUERY_SPECIFIC_FILE_RESPONSE_COMMAND_ID, "uuuuu", status, manufacturerId, imageType, \ + fileVersion, imageSize); + +/** @brief Command description for PowerProfileRequest + * + * Command: PowerProfileRequest + * @param powerProfileId INT8U + * @param totalProfileNum INT8U + * @param powerProfileId INT8U + * @param numOfTransferredPhases INT8U + * @param transferredPhases TransferredPhase [] + * @param transferredPhasesLen int + */ +#define emberAfFillCommandPower \ + ProfileClusterPowerProfileRequest(powerProfileId, totalProfileNum, powerProfileId, numOfTransferredPhases, transferredPhases, \ + transferredPhasesLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_POWER_PROFILE_REQUEST_COMMAND_ID, "uuuub", powerProfileId, totalProfileNum, powerProfileId, \ + numOfTransferredPhases, transferredPhases, transferredPhasesLen); + +/** @brief Command description for PowerProfileStateRequest + * + * Command: PowerProfileStateRequest + * @param totalProfileNum INT8U + * @param powerProfileId INT8U + * @param numOfTransferredPhases INT8U + * @param transferredPhases TransferredPhase [] + * @param transferredPhasesLen int + */ +#define emberAfFillCommandPower \ + ProfileClusterPowerProfileStateRequest(totalProfileNum, powerProfileId, numOfTransferredPhases, transferredPhases, \ + transferredPhasesLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_POWER_PROFILE_STATE_REQUEST_COMMAND_ID, "uuub", totalProfileNum, powerProfileId, \ + numOfTransferredPhases, transferredPhases, transferredPhasesLen); + +/** @brief Command description for GetPowerProfilePriceResponse + * + * Command: GetPowerProfilePriceResponse + * @param powerProfileId INT8U + * @param powerProfileCount INT8U + * @param currency INT16U + * @param powerProfileRecords PowerProfileRecord [] + * @param powerProfileRecordsLen int + * @param price INT32U + * @param priceTrailingDigit INT8U + */ +#define emberAfFillCommandPower \ + ProfileClusterGetPowerProfilePriceResponse(powerProfileId, powerProfileCount, currency, powerProfileRecords, \ + powerProfileRecordsLen, price, priceTrailingDigit) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_GET_POWER_PROFILE_PRICE_RESPONSE_COMMAND_ID, "uuubuu", powerProfileId, powerProfileCount, \ + currency, powerProfileRecords, powerProfileRecordsLen, price, priceTrailingDigit); + +/** @brief Command description for GetOverallSchedulePriceResponse + * + * Command: GetOverallSchedulePriceResponse + * @param currency INT16U + * @param powerProfileId INT8U + * @param price INT32U + * @param priceTrailingDigit INT8U + */ +#define emberAfFillCommandPower \ + ProfileClusterGetOverallSchedulePriceResponse(currency, powerProfileId, price, priceTrailingDigit) emberAfFillExternalBuffer( \ + mask, \ + \ + ZCL_GET_OVERALL_SCHEDULE_PRICE_RESPONSE_COMMAND_ID, "uuuu", currency, powerProfileId, price, priceTrailingDigit); + +/** @brief Command description for EnergyPhasesScheduleNotification + * + * Command: EnergyPhasesScheduleNotification + * @param powerProfileId INT8U + * @param powerProfileCount INT8U + * @param numOfScheduledPhases INT8U + * @param powerProfileRecords PowerProfileRecord [] + * @param powerProfileRecordsLen int + * @param scheduledPhases ScheduledPhase [] + * @param scheduledPhasesLen int + */ +#define emberAfFillCommandPower \ + ProfileClusterEnergyPhasesScheduleNotification(powerProfileId, powerProfileCount, numOfScheduledPhases, powerProfileRecords, \ + powerProfileRecordsLen, scheduledPhases, scheduledPhasesLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_ENERGY_PHASES_SCHEDULE_NOTIFICATION_COMMAND_ID, "uuubb", powerProfileId, powerProfileCount, \ + numOfScheduledPhases, powerProfileRecords, powerProfileRecordsLen, scheduledPhases, \ + scheduledPhasesLen); + +/** @brief Command description for GetOverallSchedulePrice + * + * Command: GetOverallSchedulePrice + * @param powerProfileId INT8U + * @param numOfScheduledPhases INT8U + * @param scheduledPhases ScheduledPhase [] + * @param scheduledPhasesLen int + */ +#define emberAfFillCommandPower \ + ProfileClusterGetOverallSchedulePrice(powerProfileId, numOfScheduledPhases, scheduledPhases, scheduledPhasesLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_GET_OVERALL_SCHEDULE_PRICE_COMMAND_ID, "uub", powerProfileId, numOfScheduledPhases, \ + scheduledPhases, scheduledPhasesLen); + +/** @brief Command description for PowerProfileScheduleConstraintsRequest + * + * Command: PowerProfileScheduleConstraintsRequest + * @param powerProfileId INT8U + * @param powerProfileId INT8U + */ +#define emberAfFillCommandPower \ + ProfileClusterPowerProfileScheduleConstraintsRequest(powerProfileId, powerProfileId) emberAfFillExternalBuffer( \ + mask, \ + \ + ZCL_POWER_PROFILE_SCHEDULE_CONSTRAINTS_REQUEST_COMMAND_ID, "uu", powerProfileId, powerProfileId); + +/** @brief Command description for EnergyPhasesScheduleStateRequest + * + * Command: EnergyPhasesScheduleStateRequest + * @param powerProfileId INT8U + * @param powerProfileId INT8U + * @param numOfScheduledPhases INT8U + * @param scheduledPhases ScheduledPhase [] + * @param scheduledPhasesLen int + */ +#define emberAfFillCommandPower \ + ProfileClusterEnergyPhasesScheduleStateRequest(powerProfileId, powerProfileId, numOfScheduledPhases, scheduledPhases, \ + scheduledPhasesLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_ENERGY_PHASES_SCHEDULE_STATE_REQUEST_COMMAND_ID, "uuub", powerProfileId, powerProfileId, \ + numOfScheduledPhases, scheduledPhases, scheduledPhasesLen); + +/** @brief Command description for GetPowerProfilePriceExtendedResponse + * + * Command: GetPowerProfilePriceExtendedResponse + * @param powerProfileId INT8U + * @param powerProfileId INT8U + * @param currency INT16U + * @param numOfScheduledPhases INT8U + * @param price INT32U + * @param scheduledPhases ScheduledPhase [] + * @param scheduledPhasesLen int + * @param priceTrailingDigit INT8U + */ +#define emberAfFillCommandPower \ + ProfileClusterGetPowerProfilePriceExtendedResponse(powerProfileId, powerProfileId, currency, numOfScheduledPhases, price, \ + scheduledPhases, scheduledPhasesLen, priceTrailingDigit) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_GET_POWER_PROFILE_PRICE_EXTENDED_RESPONSE_COMMAND_ID, "uuuuubu", powerProfileId, \ + powerProfileId, currency, numOfScheduledPhases, price, scheduledPhases, scheduledPhasesLen, \ + priceTrailingDigit); + +/** @brief Command description for PowerProfileScheduleConstraintsNotification + * + * Command: PowerProfileScheduleConstraintsNotification + * @param powerProfileId INT8U + * @param startAfter INT16U + * @param stopBefore INT16U + */ +#define emberAfFillCommandPower \ + ProfileClusterPowerProfileScheduleConstraintsNotification(powerProfileId, startAfter, stopBefore) emberAfFillExternalBuffer( \ + mask, \ + \ + ZCL_POWER_PROFILE_SCHEDULE_CONSTRAINTS_NOTIFICATION_COMMAND_ID, "uuu", powerProfileId, startAfter, stopBefore); + +/** @brief Command description for PowerProfileScheduleConstraintsResponse + * + * Command: PowerProfileScheduleConstraintsResponse + * @param powerProfileId INT8U + * @param startAfter INT16U + * @param stopBefore INT16U + */ +#define emberAfFillCommandPower \ + ProfileClusterPowerProfileScheduleConstraintsResponse(powerProfileId, startAfter, stopBefore) emberAfFillExternalBuffer( \ + mask, \ + \ + ZCL_POWER_PROFILE_SCHEDULE_CONSTRAINTS_RESPONSE_COMMAND_ID, "uuu", powerProfileId, startAfter, stopBefore); + +/** @brief Command description for GetPowerProfilePriceExtended + * + * Command: GetPowerProfilePriceExtended + * @param options BITMAP8 + * @param powerProfileId INT8U + * @param powerProfileStartTime INT16U + */ +#define emberAfFillCommandPower \ + ProfileClusterGetPowerProfilePriceExtended(options, powerProfileId, powerProfileStartTime) emberAfFillExternalBuffer( \ + mask, \ + \ + ZCL_GET_POWER_PROFILE_PRICE_EXTENDED_COMMAND_ID, "uuu", options, powerProfileId, powerProfileStartTime); + +/** @brief Command description for ExecutionOfACommand + * + * Command: ExecutionOfACommand + * @param commandId CommandIdentification + * @param applianceStatus ApplianceStatus + * @param remoteEnableFlagsAndDeviceStatus2 RemoteEnableFlagsAndDeviceStatus2 + * @param applianceStatus2 INT24U + */ +#define emberAfFillCommandAppliance \ + ControlClusterExecutionOfACommand(commandId, applianceStatus, remoteEnableFlagsAndDeviceStatus2, applianceStatus2) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_EXECUTION_OF_A_COMMAND_COMMAND_ID, "uuuu", commandId, applianceStatus, \ + remoteEnableFlagsAndDeviceStatus2, applianceStatus2); + +/** @brief Command description for SignalState + * + * Command: SignalState + * @param applianceStatus ApplianceStatus + * @param remoteEnableFlagsAndDeviceStatus2 RemoteEnableFlagsAndDeviceStatus2 + * @param applianceStatus2 INT24U + */ +#define emberAfFillCommandAppliance \ + ControlClusterSignalState(applianceStatus, remoteEnableFlagsAndDeviceStatus2, applianceStatus2) emberAfFillExternalBuffer( \ + mask, \ + \ + ZCL_SIGNAL_STATE_COMMAND_ID, "uuu", applianceStatus, remoteEnableFlagsAndDeviceStatus2, applianceStatus2); + +/** @brief Command description for WriteFunctions + * + * Command: WriteFunctions + * @param functionId INT16U + * @param functionDataType ENUM8 + * @param functionData INT8U [] + * @param functionDataLen int + */ +#define emberAfFillCommandAppliance \ + ControlClusterWriteFunctions(functionId, functionDataType, functionData, functionDataLen) emberAfFillExternalBuffer( \ + mask, \ + \ + ZCL_WRITE_FUNCTIONS_COMMAND_ID, "uub", functionId, functionDataType, functionData, functionDataLen); + +/** @brief Command description for OverloadPauseResume + * + * Command: OverloadPauseResume + */ +#define emberAfFillCommandAppliance \ + ControlClusterOverloadPauseResume() emberAfFillExternalBuffer(mask, \ + \ + ZCL_OVERLOAD_PAUSE_RESUME_COMMAND_ID, "", ); + +/** @brief Command description for OverloadPause + * + * Command: OverloadPause + */ +#define emberAfFillCommandAppliance \ + ControlClusterOverloadPause() emberAfFillExternalBuffer(mask, \ + \ + ZCL_OVERLOAD_PAUSE_COMMAND_ID, "", ); + +/** @brief Command description for OverloadWarning + * + * Command: OverloadWarning + * @param warningEvent WarningEvent + */ +#define emberAfFillCommandAppliance \ + ControlClusterOverloadWarning(warningEvent) emberAfFillExternalBuffer(mask, \ + \ + ZCL_OVERLOAD_WARNING_COMMAND_ID, "u", warningEvent); + +/** @brief Command description for CheckIn + * + * Command: CheckIn + * @param startFastPolling BOOLEAN + * @param fastPollTimeout INT16U + */ +#define emberAfFillCommandPoll \ + ControlClusterCheckIn(startFastPolling, fastPollTimeout) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_CHECK_IN_COMMAND_ID, "uu", startFastPolling, fastPollTimeout); + +/** @brief Command description for FastPollStop + * + * Command: FastPollStop + */ +#define emberAfFillCommandPoll \ + ControlClusterFastPollStop() emberAfFillExternalBuffer(mask, \ + \ + ZCL_FAST_POLL_STOP_COMMAND_ID, "", ); + +/** @brief Command description for SetLongPollInterval + * + * Command: SetLongPollInterval + * @param newLongPollInterval INT32U + */ +#define emberAfFillCommandPoll \ + ControlClusterSetLongPollInterval(newLongPollInterval) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_SET_LONG_POLL_INTERVAL_COMMAND_ID, "u", newLongPollInterval); + +/** @brief Command description for SetShortPollInterval + * + * Command: SetShortPollInterval + * @param newShortPollInterval INT16U + */ +#define emberAfFillCommandPoll \ + ControlClusterSetShortPollInterval(newShortPollInterval) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_SET_SHORT_POLL_INTERVAL_COMMAND_ID, "u", newShortPollInterval); + +/** @brief Command description for GpNotification + * + * Command: GpNotification + * @param options GpNotificationOption + * @param options GpNotificationResponseOption + * @param gpdSrcId INT32U + * @param gpdSrcId INT32U + * @param gpdIeee IEEE_ADDRESS + * @param gpdIeee IEEE_ADDRESS + * @param gpdEndpoint INT8U + * @param endpoint INT8U + * @param gpdSecurityFrameCounter INT32U + * @param gpdSecurityFrameCounter INT32U + * @param gpdCommandId INT8U + * @param gpdCommandPayload OCTET_STRING + * @param gppShortAddress INT16U + * @param gppDistance INT8U + */ +#define emberAfFillCommandGreen \ + PowerClusterGpNotification(options, options, gpdSrcId, gpdSrcId, gpdIeee, gpdIeee, gpdEndpoint, endpoint, \ + gpdSecurityFrameCounter, gpdSecurityFrameCounter, gpdCommandId, gpdCommandPayload, gppShortAddress, \ + gppDistance) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_GP_NOTIFICATION_COMMAND_ID, "uuuuuuuuuuuuuu", options, options, gpdSrcId, gpdSrcId, gpdIeee, \ + gpdIeee, gpdEndpoint, endpoint, gpdSecurityFrameCounter, gpdSecurityFrameCounter, gpdCommandId, \ + gpdCommandPayload, gppShortAddress, gppDistance); + +/** @brief Command description for GpPairingSearch + * + * Command: GpPairingSearch + * @param options GpPairingSearchOption + * @param options GpPairingOption + * @param gpdSrcId INT32U + * @param gpdSrcId INT32U + * @param gpdIeee IEEE_ADDRESS + * @param gpdIeee IEEE_ADDRESS + * @param endpoint INT8U + * @param endpoint INT8U + * @param sinkIeeeAddress IEEE_ADDRESS + * @param sinkNwkAddress INT16U + * @param sinkGroupId INT16U + * @param deviceId GpDeviceId + * @param gpdSecurityFrameCounter INT32U + * @param gpdKey SECURITY_KEY + * @param assignedAlias INT16U + * @param groupcastRadius INT8U + */ +#define emberAfFillCommandGreen \ + PowerClusterGpPairingSearch(options, options, gpdSrcId, gpdSrcId, gpdIeee, gpdIeee, endpoint, endpoint, sinkIeeeAddress, \ + sinkNwkAddress, sinkGroupId, deviceId, gpdSecurityFrameCounter, gpdKey, assignedAlias, \ + groupcastRadius) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_GP_PAIRING_SEARCH_COMMAND_ID, "uuuuuuuuuuuuuuuu", options, options, gpdSrcId, gpdSrcId, \ + gpdIeee, gpdIeee, endpoint, endpoint, sinkIeeeAddress, sinkNwkAddress, sinkGroupId, deviceId, \ + gpdSecurityFrameCounter, gpdKey, assignedAlias, groupcastRadius); + +/** @brief Command description for GpProxyCommissioningMode + * + * Command: GpProxyCommissioningMode + * @param options GpProxyCommissioningModeOption + * @param commissioningWindow INT16U + * @param channel INT8U + */ +#define emberAfFillCommandGreen \ + PowerClusterGpProxyCommissioningMode(options, commissioningWindow, channel) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_GP_PROXY_COMMISSIONING_MODE_COMMAND_ID, "uuu", options, commissioningWindow, channel); + +/** @brief Command description for GpTunnelingStop + * + * Command: GpTunnelingStop + * @param options GpTunnelingStopOption + * @param gpdSrcId INT32U + * @param gpdIeee IEEE_ADDRESS + * @param endpoint INT8U + * @param gpdSecurityFrameCounter INT32U + * @param gppShortAddress INT16U + * @param gppDistance INT8S + */ +#define emberAfFillCommandGreen \ + PowerClusterGpTunnelingStop(options, gpdSrcId, gpdIeee, endpoint, gpdSecurityFrameCounter, gppShortAddress, gppDistance) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_GP_TUNNELING_STOP_COMMAND_ID, "uuuuuuu", options, gpdSrcId, gpdIeee, endpoint, \ + gpdSecurityFrameCounter, gppShortAddress, gppDistance); + +/** @brief Command description for GpCommissioningNotification + * + * Command: GpCommissioningNotification + * @param options GpCommissioningNotificationOption + * @param gpdSrcId INT32U + * @param gpdIeee IEEE_ADDRESS + * @param endpoint INT8U + * @param gpdSecurityFrameCounter INT32U + * @param gpdCommandId INT8U + * @param gpdCommandPayload OCTET_STRING + * @param gppShortAddress INT16U + * @param gppLink INT8U + * @param mic INT32U + */ +#define emberAfFillCommandGreen \ + PowerClusterGpCommissioningNotification(options, gpdSrcId, gpdIeee, endpoint, gpdSecurityFrameCounter, gpdCommandId, \ + gpdCommandPayload, gppShortAddress, gppLink, mic) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_GP_COMMISSIONING_NOTIFICATION_COMMAND_ID, "uuuuuuuuuu", options, gpdSrcId, gpdIeee, \ + endpoint, gpdSecurityFrameCounter, gpdCommandId, gpdCommandPayload, gppShortAddress, gppLink, \ + mic); + +/** @brief Command description for GpSinkCommissioningMode + * + * Command: GpSinkCommissioningMode + * @param options GpSinkCommissioningModeOptions + * @param gpmAddrForSecurity INT16U + * @param gpmAddrForPairing INT16U + * @param sinkEndpoint INT8U + */ +#define emberAfFillCommandGreen \ + PowerClusterGpSinkCommissioningMode(options, gpmAddrForSecurity, gpmAddrForPairing, sinkEndpoint) emberAfFillExternalBuffer( \ + mask, \ + \ + ZCL_GP_SINK_COMMISSIONING_MODE_COMMAND_ID, "uuuu", options, gpmAddrForSecurity, gpmAddrForPairing, sinkEndpoint); + +/** @brief Command description for GpResponse + * + * Command: GpResponse + * @param options GpResponseOption + * @param tempMasterShortAddress INT16U + * @param tempMasterTxChannel BITMAP8 + * @param gpdSrcId INT32U + * @param gpdIeee IEEE_ADDRESS + * @param endpoint INT8U + * @param gpdCommandId INT8U + * @param gpdCommandPayload OCTET_STRING + */ +#define emberAfFillCommandGreen \ + PowerClusterGpResponse(options, tempMasterShortAddress, tempMasterTxChannel, gpdSrcId, gpdIeee, endpoint, gpdCommandId, \ + gpdCommandPayload) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_GP_RESPONSE_COMMAND_ID, "uuuuuuuu", options, tempMasterShortAddress, tempMasterTxChannel, \ + gpdSrcId, gpdIeee, endpoint, gpdCommandId, gpdCommandPayload); + +/** @brief Command description for GpTranslationTableUpdate + * + * Command: GpTranslationTableUpdate + * @param options GpTranslationTableUpdateOption + * @param gpdSrcId INT32U + * @param gpdIeee IEEE_ADDRESS + * @param endpoint INT8U + * @param translations GpTranslationTableUpdateTranslation [] + * @param translationsLen int + */ +#define emberAfFillCommandGreen \ + PowerClusterGpTranslationTableUpdate(options, gpdSrcId, gpdIeee, endpoint, translations, translationsLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_GP_TRANSLATION_TABLE_UPDATE_COMMAND_ID, "uuuub", options, gpdSrcId, gpdIeee, endpoint, \ + translations, translationsLen); + +/** @brief Command description for GpTranslationTableRequest + * + * Command: GpTranslationTableRequest + * @param startIndex INT8U + * @param status GpTranslationTableResponseStatus + * @param options GpTranslationTableResponseOption + * @param totalNumberOfEntries INT8U + * @param startIndex INT8U + * @param entriesCount INT8U + * @param translationTableList INT8U [] + * @param translationTableListLen int + */ +#define emberAfFillCommandGreen \ + PowerClusterGpTranslationTableRequest(startIndex, status, options, totalNumberOfEntries, startIndex, entriesCount, \ + translationTableList, translationTableListLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_GP_TRANSLATION_TABLE_REQUEST_COMMAND_ID, "uuuuuub", startIndex, status, options, \ + totalNumberOfEntries, startIndex, entriesCount, translationTableList, translationTableListLen); + +/** @brief Command description for GpPairingConfiguration + * + * Command: GpPairingConfiguration + * @param actions GpPairingConfigurationActions + * @param options GpPairingConfigurationOption + * @param gpdSrcId INT32U + * @param gpdIeee IEEE_ADDRESS + * @param endpoint INT8U + * @param deviceId INT8U + * @param groupListCount INT8U + * @param groupList GpPairingConfigurationGroupList [] + * @param groupListLen int + * @param gpdAssignedAlias INT16U + * @param groupcastRadius INT8U + * @param securityOptions INT8U + * @param gpdSecurityFrameCounter INT32U + * @param gpdSecurityKey SECURITY_KEY + * @param numberOfPairedEndpoints INT8U + * @param pairedEndpoints INT8U [] + * @param pairedEndpointsLen int + * @param applicationInformation GpApplicationInformation + * @param manufacturerId INT16U + * @param modeId INT16U + * @param numberOfGpdCommands INT8U + * @param gpdCommandIdList INT8U [] + * @param gpdCommandIdListLen int + * @param clusterIdListCount INT8U + * @param clusterListServer INT16U [] + * @param clusterListServerLen int + * @param clusterListClient INT16U [] + * @param clusterListClientLen int + * @param switchInformationLength INT8U + * @param switchConfiguration INT8U + * @param currentContactStatus INT8U + * @param totalNumberOfReports INT8U + * @param numberOfReports INT8U + * @param reportDescriptor INT8U [] + * @param reportDescriptorLen int + */ +#define emberAfFillCommandGreen \ + PowerClusterGpPairingConfiguration( \ + actions, options, gpdSrcId, gpdIeee, endpoint, deviceId, groupListCount, groupList, groupListLen, gpdAssignedAlias, \ + groupcastRadius, securityOptions, gpdSecurityFrameCounter, gpdSecurityKey, numberOfPairedEndpoints, pairedEndpoints, \ + pairedEndpointsLen, applicationInformation, manufacturerId, modeId, numberOfGpdCommands, gpdCommandIdList, \ + gpdCommandIdListLen, clusterIdListCount, clusterListServer, clusterListServerLen, clusterListClient, clusterListClientLen, \ + switchInformationLength, switchConfiguration, currentContactStatus, totalNumberOfReports, numberOfReports, \ + reportDescriptor, reportDescriptorLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_GP_PAIRING_CONFIGURATION_COMMAND_ID, "uuuuuuubuuuuuubuuuububbuuuuub", actions, options, \ + gpdSrcId, gpdIeee, endpoint, deviceId, groupListCount, groupList, groupListLen, \ + gpdAssignedAlias, groupcastRadius, securityOptions, gpdSecurityFrameCounter, gpdSecurityKey, \ + numberOfPairedEndpoints, pairedEndpoints, pairedEndpointsLen, applicationInformation, \ + manufacturerId, modeId, numberOfGpdCommands, gpdCommandIdList, gpdCommandIdListLen, \ + clusterIdListCount, clusterListServer, clusterListServerLen, clusterListClient, \ + clusterListClientLen, switchInformationLength, switchConfiguration, currentContactStatus, \ + totalNumberOfReports, numberOfReports, reportDescriptor, reportDescriptorLen); + +/** @brief Command description for GpSinkTableRequest + * + * Command: GpSinkTableRequest + * @param options GpSinkTableRequestOptions + * @param status ENUM8 + * @param gpdSrcId INT32U + * @param totalNumberofNonEmptySinkTableEntries INT8U + * @param gpdIeee INT64U + * @param startIndex INT8U + * @param endpoint INT8U + * @param sinkTableEntriesCount INT8U + * @param index INT8U + * @param sinkTableEntries INT8U [] + * @param sinkTableEntriesLen int + */ +#define emberAfFillCommandGreen \ + PowerClusterGpSinkTableRequest(options, status, gpdSrcId, totalNumberofNonEmptySinkTableEntries, gpdIeee, startIndex, \ + endpoint, sinkTableEntriesCount, index, sinkTableEntries, sinkTableEntriesLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_GP_SINK_TABLE_REQUEST_COMMAND_ID, "uuuuuuuuub", options, status, gpdSrcId, \ + totalNumberofNonEmptySinkTableEntries, gpdIeee, startIndex, endpoint, sinkTableEntriesCount, \ + index, sinkTableEntries, sinkTableEntriesLen); + +/** @brief Command description for GpProxyTableResponse + * + * Command: GpProxyTableResponse + * @param status GpProxyTableResponseStatus + * @param options GpProxyTableRequestOptions + * @param totalNumberOfNonEmptyProxyTableEntries INT8U + * @param gpdSrcId INT32U + * @param startIndex INT8U + * @param gpdIeee INT64U + * @param entriesCount INT8U + * @param endpoint INT8U + * @param proxyTableEntries INT8U [] + * @param proxyTableEntriesLen int + * @param index INT8U + */ +#define emberAfFillCommandGreen \ + PowerClusterGpProxyTableResponse(status, options, totalNumberOfNonEmptyProxyTableEntries, gpdSrcId, startIndex, gpdIeee, \ + entriesCount, endpoint, proxyTableEntries, proxyTableEntriesLen, index) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_GP_PROXY_TABLE_RESPONSE_COMMAND_ID, "uuuuuuuubu", status, options, \ + totalNumberOfNonEmptyProxyTableEntries, gpdSrcId, startIndex, gpdIeee, entriesCount, endpoint, \ + proxyTableEntries, proxyTableEntriesLen, index); + +/** @brief Command description for LockDoor + * + * Command: LockDoor + * @param PIN CHAR_STRING + * @param status INT8U + */ +#define emberAfFillCommandDoor \ + LockClusterLockDoor(PIN, status) emberAfFillExternalBuffer(mask, \ + \ + ZCL_LOCK_DOOR_COMMAND_ID, "uu", PIN, status); + +/** @brief Command description for UnlockDoor + * + * Command: UnlockDoor + * @param PIN CHAR_STRING + * @param status INT8U + */ +#define emberAfFillCommandDoor \ + LockClusterUnlockDoor(PIN, status) emberAfFillExternalBuffer(mask, \ + \ + ZCL_UNLOCK_DOOR_COMMAND_ID, "uu", PIN, status); + +/** @brief Command description for Toggle + * + * Command: Toggle + * @param pin CHAR_STRING + * @param status INT8U + */ +#define emberAfFillCommandDoor \ + LockClusterToggle(pin, status) emberAfFillExternalBuffer(mask, \ + \ + ZCL_TOGGLE_COMMAND_ID, "uu", pin, status); + +/** @brief Command description for UnlockWithTimeout + * + * Command: UnlockWithTimeout + * @param timeoutInSeconds INT16U + * @param status INT8U + * @param pin CHAR_STRING + */ +#define emberAfFillCommandDoor \ + LockClusterUnlockWithTimeout(timeoutInSeconds, status, pin) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_UNLOCK_WITH_TIMEOUT_COMMAND_ID, "uuu", timeoutInSeconds, status, pin); + +/** @brief Command description for GetLogRecord + * + * Command: GetLogRecord + * @param logIndex INT16U + * @param logEntryId INT16U + * @param timestamp INT32U + * @param eventType ENUM8 + * @param source INT8U + * @param eventIdOrAlarmCode INT8U + * @param userId INT16U + * @param pin CHAR_STRING + */ +#define emberAfFillCommandDoor \ + LockClusterGetLogRecord(logIndex, logEntryId, timestamp, eventType, source, eventIdOrAlarmCode, userId, pin) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_GET_LOG_RECORD_COMMAND_ID, "uuuuuuuu", logIndex, logEntryId, timestamp, eventType, source, \ + eventIdOrAlarmCode, userId, pin); + +/** @brief Command description for SetPin + * + * Command: SetPin + * @param userId INT16U + * @param status DoorLockSetPinOrIdStatus + * @param userStatus DoorLockUserStatus + * @param userType DoorLockUserType + * @param pin CHAR_STRING + */ +#define emberAfFillCommandDoor \ + LockClusterSetPin(userId, status, userStatus, userType, pin) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_SET_PIN_COMMAND_ID, "uuuuu", userId, status, userStatus, userType, pin); + +/** @brief Command description for GetPin + * + * Command: GetPin + * @param userId INT16U + * @param userId INT16U + * @param userStatus DoorLockUserStatus + * @param userType DoorLockUserType + * @param pin CHAR_STRING + */ +#define emberAfFillCommandDoor \ + LockClusterGetPin(userId, userId, userStatus, userType, pin) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_GET_PIN_COMMAND_ID, "uuuuu", userId, userId, userStatus, userType, pin); + +/** @brief Command description for ClearPin + * + * Command: ClearPin + * @param userId INT16U + * @param status INT8U + */ +#define emberAfFillCommandDoor \ + LockClusterClearPin(userId, status) emberAfFillExternalBuffer(mask, \ + \ + ZCL_CLEAR_PIN_COMMAND_ID, "uu", userId, status); + +/** @brief Command description for ClearAllPins + * + * Command: ClearAllPins + * @param status INT8U + */ +#define emberAfFillCommandDoor \ + LockClusterClearAllPins(status) emberAfFillExternalBuffer(mask, \ + \ + ZCL_CLEAR_ALL_PINS_COMMAND_ID, "u", status); + +/** @brief Command description for SetUserStatus + * + * Command: SetUserStatus + * @param userId INT16U + * @param status INT8U + * @param userStatus INT8U + */ +#define emberAfFillCommandDoor \ + LockClusterSetUserStatus(userId, status, userStatus) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_SET_USER_STATUS_COMMAND_ID, "uuu", userId, status, userStatus); + +/** @brief Command description for GetUserStatus + * + * Command: GetUserStatus + * @param userId INT16U + * @param userId INT16U + * @param status INT8U + */ +#define emberAfFillCommandDoor \ + LockClusterGetUserStatus(userId, userId, status) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_GET_USER_STATUS_COMMAND_ID, "uuu", userId, userId, status); + +/** @brief Command description for SetWeekdaySchedule + * + * Command: SetWeekdaySchedule + * @param scheduleId INT8U + * @param status INT8U + * @param userId INT16U + * @param daysMask DoorLockDayOfWeek + * @param startHour INT8U + * @param startMinute INT8U + * @param endHour INT8U + * @param endMinute INT8U + */ +#define emberAfFillCommandDoor \ + LockClusterSetWeekdaySchedule(scheduleId, status, userId, daysMask, startHour, startMinute, endHour, endMinute) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_SET_WEEKDAY_SCHEDULE_COMMAND_ID, "uuuuuuuu", scheduleId, status, userId, daysMask, \ + startHour, startMinute, endHour, endMinute); + +/** @brief Command description for GetWeekdaySchedule + * + * Command: GetWeekdaySchedule + * @param scheduleId INT8U + * @param scheduleId INT8U + * @param userId INT16U + * @param userId INT16U + * @param status INT8U + * @param daysMask INT8U + * @param startHour INT8U + * @param startMinute INT8U + * @param endHour INT8U + * @param endMinute INT8U + */ +#define emberAfFillCommandDoor \ + LockClusterGetWeekdaySchedule(scheduleId, scheduleId, userId, userId, status, daysMask, startHour, startMinute, endHour, \ + endMinute) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_GET_WEEKDAY_SCHEDULE_COMMAND_ID, "uuuuuuuuuu", scheduleId, scheduleId, userId, userId, \ + status, daysMask, startHour, startMinute, endHour, endMinute); + +/** @brief Command description for ClearWeekdaySchedule + * + * Command: ClearWeekdaySchedule + * @param scheduleId INT8U + * @param status INT8U + * @param userId INT16U + */ +#define emberAfFillCommandDoor \ + LockClusterClearWeekdaySchedule(scheduleId, status, userId) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_CLEAR_WEEKDAY_SCHEDULE_COMMAND_ID, "uuu", scheduleId, status, userId); + +/** @brief Command description for SetYeardaySchedule + * + * Command: SetYeardaySchedule + * @param scheduleId INT8U + * @param status INT8U + * @param userId INT16U + * @param localStartTime INT32U + * @param localEndTime INT32U + */ +#define emberAfFillCommandDoor \ + LockClusterSetYeardaySchedule(scheduleId, status, userId, localStartTime, localEndTime) emberAfFillExternalBuffer( \ + mask, \ + \ + ZCL_SET_YEARDAY_SCHEDULE_COMMAND_ID, "uuuuu", scheduleId, status, userId, localStartTime, localEndTime); + +/** @brief Command description for GetYeardaySchedule + * + * Command: GetYeardaySchedule + * @param scheduleId INT8U + * @param scheduleId INT8U + * @param userId INT16U + * @param userId INT16U + * @param status INT8U + * @param localStartTime INT32U + * @param localEndTime INT32U + */ +#define emberAfFillCommandDoor \ + LockClusterGetYeardaySchedule(scheduleId, scheduleId, userId, userId, status, localStartTime, localEndTime) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_GET_YEARDAY_SCHEDULE_COMMAND_ID, "uuuuuuu", scheduleId, scheduleId, userId, userId, status, \ + localStartTime, localEndTime); + +/** @brief Command description for ClearYeardaySchedule + * + * Command: ClearYeardaySchedule + * @param scheduleId INT8U + * @param status INT8U + * @param userId INT16U + */ +#define emberAfFillCommandDoor \ + LockClusterClearYeardaySchedule(scheduleId, status, userId) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_CLEAR_YEARDAY_SCHEDULE_COMMAND_ID, "uuu", scheduleId, status, userId); + +/** @brief Command description for SetHolidaySchedule + * + * Command: SetHolidaySchedule + * @param scheduleId INT8U + * @param status INT8U + * @param localStartTime INT32U + * @param localEndTime INT32U + * @param operatingModeDuringHoliday ENUM8 + */ +#define emberAfFillCommandDoor \ + LockClusterSetHolidaySchedule(scheduleId, status, localStartTime, localEndTime, operatingModeDuringHoliday) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_SET_HOLIDAY_SCHEDULE_COMMAND_ID, "uuuuu", scheduleId, status, localStartTime, localEndTime, \ + operatingModeDuringHoliday); + +/** @brief Command description for GetHolidaySchedule + * + * Command: GetHolidaySchedule + * @param scheduleId INT8U + * @param scheduleId INT8U + * @param status INT8U + * @param localStartTime INT32U + * @param localEndTime INT32U + * @param operatingModeDuringHoliday ENUM8 + */ +#define emberAfFillCommandDoor \ + LockClusterGetHolidaySchedule(scheduleId, scheduleId, status, localStartTime, localEndTime, operatingModeDuringHoliday) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_GET_HOLIDAY_SCHEDULE_COMMAND_ID, "uuuuuu", scheduleId, scheduleId, status, localStartTime, \ + localEndTime, operatingModeDuringHoliday); + +/** @brief Command description for ClearHolidaySchedule + * + * Command: ClearHolidaySchedule + * @param scheduleId INT8U + * @param status INT8U + */ +#define emberAfFillCommandDoor \ + LockClusterClearHolidaySchedule(scheduleId, status) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_CLEAR_HOLIDAY_SCHEDULE_COMMAND_ID, "uu", scheduleId, status); + +/** @brief Command description for SetUserType + * + * Command: SetUserType + * @param userId INT16U + * @param status INT8U + * @param userType DoorLockUserType + */ +#define emberAfFillCommandDoor \ + LockClusterSetUserType(userId, status, userType) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_SET_USER_TYPE_COMMAND_ID, "uuu", userId, status, userType); + +/** @brief Command description for GetUserType + * + * Command: GetUserType + * @param userId INT16U + * @param userId INT16U + * @param userType DoorLockUserType + */ +#define emberAfFillCommandDoor \ + LockClusterGetUserType(userId, userId, userType) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_GET_USER_TYPE_COMMAND_ID, "uuu", userId, userId, userType); + +/** @brief Command description for SetRfid + * + * Command: SetRfid + * @param userId INT16U + * @param status DoorLockSetPinOrIdStatus + * @param userStatus DoorLockUserStatus + * @param userType DoorLockUserType + * @param id CHAR_STRING + */ +#define emberAfFillCommandDoor \ + LockClusterSetRfid(userId, status, userStatus, userType, id) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_SET_RFID_COMMAND_ID, "uuuuu", userId, status, userStatus, userType, id); + +/** @brief Command description for GetRfid + * + * Command: GetRfid + * @param userId INT16U + * @param userId INT16U + * @param userStatus DoorLockUserStatus + * @param userType DoorLockUserType + * @param rfid CHAR_STRING + */ +#define emberAfFillCommandDoor \ + LockClusterGetRfid(userId, userId, userStatus, userType, rfid) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_GET_RFID_COMMAND_ID, "uuuuu", userId, userId, userStatus, userType, rfid); + +/** @brief Command description for ClearRfid + * + * Command: ClearRfid + * @param userId INT16U + * @param status INT8U + */ +#define emberAfFillCommandDoor \ + LockClusterClearRfid(userId, status) emberAfFillExternalBuffer(mask, \ + \ + ZCL_CLEAR_RFID_COMMAND_ID, "uu", userId, status); + +/** @brief Command description for ClearAllRfids + * + * Command: ClearAllRfids + * @param status INT8U + */ +#define emberAfFillCommandDoor \ + LockClusterClearAllRfids(status) emberAfFillExternalBuffer(mask, \ + \ + ZCL_CLEAR_ALL_RFIDS_COMMAND_ID, "u", status); + +/** @brief Command description for OperationEventNotification + * + * Command: OperationEventNotification + * @param source INT8U + * @param eventCode DoorLockOperationEventCode + * @param userId INT16U + * @param pin CHAR_STRING + * @param timeStamp INT32U + * @param data CHAR_STRING + */ +#define emberAfFillCommandDoor \ + LockClusterOperationEventNotification(source, eventCode, userId, pin, timeStamp, data) emberAfFillExternalBuffer( \ + mask, \ + \ + ZCL_OPERATION_EVENT_NOTIFICATION_COMMAND_ID, "uuuuuu", source, eventCode, userId, pin, timeStamp, data); + +/** @brief Command description for ProgrammingEventNotification + * + * Command: ProgrammingEventNotification + * @param source INT8U + * @param eventCode DoorLockProgrammingEventCode + * @param userId INT16U + * @param pin CHAR_STRING + * @param userType DoorLockUserType + * @param userStatus DoorLockUserStatus + * @param timeStamp INT32U + * @param data CHAR_STRING + */ +#define emberAfFillCommandDoor \ + LockClusterProgrammingEventNotification(source, eventCode, userId, pin, userType, userStatus, timeStamp, data) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_PROGRAMMING_EVENT_NOTIFICATION_COMMAND_ID, "uuuuuuuu", source, eventCode, userId, pin, \ + userType, userStatus, timeStamp, data); + +/** @brief Command description for WindowCoveringUpOpen + * + * Command: WindowCoveringUpOpen + */ +#define emberAfFillCommandWindow \ + CoveringClusterWindowCoveringUpOpen() emberAfFillExternalBuffer(mask, \ + \ + ZCL_WINDOW_COVERING_UP_OPEN_COMMAND_ID, "", ); + +/** @brief Command description for WindowCoveringDownClose + * + * Command: WindowCoveringDownClose + */ +#define emberAfFillCommandWindow \ + CoveringClusterWindowCoveringDownClose() emberAfFillExternalBuffer(mask, \ + \ + ZCL_WINDOW_COVERING_DOWN_CLOSE_COMMAND_ID, "", ); + +/** @brief Command description for WindowCoveringStop + * + * Command: WindowCoveringStop + */ +#define emberAfFillCommandWindow \ + CoveringClusterWindowCoveringStop() emberAfFillExternalBuffer(mask, \ + \ + ZCL_WINDOW_COVERING_STOP_COMMAND_ID, "", ); + +/** @brief Command description for WindowCoveringGoToLiftValue + * + * Command: WindowCoveringGoToLiftValue + * @param liftValue INT16U + */ +#define emberAfFillCommandWindow \ + CoveringClusterWindowCoveringGoToLiftValue(liftValue) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_WINDOW_COVERING_GO_TO_LIFT_VALUE_COMMAND_ID, "u", liftValue); + +/** @brief Command description for WindowCoveringGoToLiftPercentage + * + * Command: WindowCoveringGoToLiftPercentage + * @param percentageLiftValue INT8U + */ +#define emberAfFillCommandWindow \ + CoveringClusterWindowCoveringGoToLiftPercentage(percentageLiftValue) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_WINDOW_COVERING_GO_TO_LIFT_PERCENTAGE_COMMAND_ID, "u", percentageLiftValue); + +/** @brief Command description for WindowCoveringGoToTiltValue + * + * Command: WindowCoveringGoToTiltValue + * @param tiltValue INT16U + */ +#define emberAfFillCommandWindow \ + CoveringClusterWindowCoveringGoToTiltValue(tiltValue) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_WINDOW_COVERING_GO_TO_TILT_VALUE_COMMAND_ID, "u", tiltValue); + +/** @brief Command description for WindowCoveringGoToTiltPercentage + * + * Command: WindowCoveringGoToTiltPercentage + * @param percentageTiltValue INT8U + */ +#define emberAfFillCommandWindow \ + CoveringClusterWindowCoveringGoToTiltPercentage(percentageTiltValue) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_WINDOW_COVERING_GO_TO_TILT_PERCENTAGE_COMMAND_ID, "u", percentageTiltValue); + +/** @brief Command description for BarrierControlGoToPercent + * + * Command: BarrierControlGoToPercent + * @param percentOpen INT8U + */ +#define emberAfFillCommandBarrier \ + ControlClusterBarrierControlGoToPercent(percentOpen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_BARRIER_CONTROL_GO_TO_PERCENT_COMMAND_ID, "u", percentOpen); + +/** @brief Command description for BarrierControlStop + * + * Command: BarrierControlStop + */ +#define emberAfFillCommandBarrier \ + ControlClusterBarrierControlStop() emberAfFillExternalBuffer(mask, \ + \ + ZCL_BARRIER_CONTROL_STOP_COMMAND_ID, "", ); + +/** @brief Command description for SetpointRaiseLower + * + * Command: SetpointRaiseLower + * @param mode SetpointAdjustMode + * @param numberOfTransitionsForSequence ENUM8 + * @param amount INT8S + * @param dayOfWeekForSequence DayOfWeek + * @param modeForSequence ModeForSequence + * @param payload INT8U [] + * @param payloadLen int + */ +#define emberAfFillCommandThermostatClusterSetpointRaiseLower(mode, numberOfTransitionsForSequence, amount, dayOfWeekForSequence, \ + modeForSequence, payload, payloadLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_SETPOINT_RAISE_LOWER_COMMAND_ID, "uuuuub", mode, numberOfTransitionsForSequence, amount, \ + dayOfWeekForSequence, modeForSequence, payload, payloadLen); + +/** @brief Command description for SetWeeklySchedule + * + * Command: SetWeeklySchedule + * @param numberOfTransitionsForSequence ENUM8 + * @param timeOfDay INT16U + * @param dayOfWeekForSequence DayOfWeek + * @param relayStatus BITMAP16 + * @param modeForSequence ModeForSequence + * @param localTemperature INT16S + * @param payload INT8U [] + * @param payloadLen int + * @param humidityInPercentage INT8U + * @param setpoint INT16S + * @param unreadEntries INT16U + */ +#define emberAfFillCommandThermostatClusterSetWeeklySchedule(numberOfTransitionsForSequence, timeOfDay, dayOfWeekForSequence, \ + relayStatus, modeForSequence, localTemperature, payload, payloadLen, \ + humidityInPercentage, setpoint, unreadEntries) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_SET_WEEKLY_SCHEDULE_COMMAND_ID, "uuuuuubuuu", numberOfTransitionsForSequence, timeOfDay, \ + dayOfWeekForSequence, relayStatus, modeForSequence, localTemperature, payload, payloadLen, \ + humidityInPercentage, setpoint, unreadEntries); + +/** @brief Command description for GetWeeklySchedule + * + * Command: GetWeeklySchedule + * @param daysToReturn DayOfWeek + * @param modeToReturn ModeForSequence + */ +#define emberAfFillCommandThermostatClusterGetWeeklySchedule(daysToReturn, modeToReturn) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_GET_WEEKLY_SCHEDULE_COMMAND_ID, "uu", daysToReturn, modeToReturn); + +/** @brief Command description for ClearWeeklySchedule + * + * Command: ClearWeeklySchedule + */ +#define emberAfFillCommandThermostatClusterClearWeeklySchedule() \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_CLEAR_WEEKLY_SCHEDULE_COMMAND_ID, "", ); + +/** @brief Command description for GetRelayStatusLog + * + * Command: GetRelayStatusLog + */ +#define emberAfFillCommandThermostatClusterGetRelayStatusLog() \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_GET_RELAY_STATUS_LOG_COMMAND_ID, "", ); + +/** @brief Command description for MoveToHue + * + * Command: MoveToHue + * @param hue INT8U + * @param direction HueDirection + * @param transitionTime INT16U + * @param optionsMask BITMAP8 + * @param optionsOverride BITMAP8 + */ +#define emberAfFillCommandColor \ + ControlClusterMoveToHue(hue, direction, transitionTime, optionsMask, optionsOverride) emberAfFillExternalBuffer( \ + mask, \ + \ + ZCL_MOVE_TO_HUE_COMMAND_ID, "uuuuu", hue, direction, transitionTime, optionsMask, optionsOverride); + +/** @brief Command description for MoveHue + * + * Command: MoveHue + * @param moveMode HueMoveMode + * @param rate INT8U + * @param optionsMask BITMAP8 + * @param optionsOverride BITMAP8 + */ +#define emberAfFillCommandColor \ + ControlClusterMoveHue(moveMode, rate, optionsMask, optionsOverride) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_MOVE_HUE_COMMAND_ID, "uuuu", moveMode, rate, optionsMask, optionsOverride); + +/** @brief Command description for StepHue + * + * Command: StepHue + * @param stepMode HueStepMode + * @param stepSize INT8U + * @param transitionTime INT8U + * @param optionsMask BITMAP8 + * @param optionsOverride BITMAP8 + */ +#define emberAfFillCommandColor \ + ControlClusterStepHue(stepMode, stepSize, transitionTime, optionsMask, optionsOverride) emberAfFillExternalBuffer( \ + mask, \ + \ + ZCL_STEP_HUE_COMMAND_ID, "uuuuu", stepMode, stepSize, transitionTime, optionsMask, optionsOverride); + +/** @brief Command description for MoveToSaturation + * + * Command: MoveToSaturation + * @param saturation INT8U + * @param transitionTime INT16U + * @param optionsMask BITMAP8 + * @param optionsOverride BITMAP8 + */ +#define emberAfFillCommandColor \ + ControlClusterMoveToSaturation(saturation, transitionTime, optionsMask, optionsOverride) emberAfFillExternalBuffer( \ + mask, \ + \ + ZCL_MOVE_TO_SATURATION_COMMAND_ID, "uuuu", saturation, transitionTime, optionsMask, optionsOverride); + +/** @brief Command description for MoveSaturation + * + * Command: MoveSaturation + * @param moveMode SaturationMoveMode + * @param rate INT8U + * @param optionsMask BITMAP8 + * @param optionsOverride BITMAP8 + */ +#define emberAfFillCommandColor \ + ControlClusterMoveSaturation(moveMode, rate, optionsMask, optionsOverride) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_MOVE_SATURATION_COMMAND_ID, "uuuu", moveMode, rate, optionsMask, optionsOverride); + +/** @brief Command description for StepSaturation + * + * Command: StepSaturation + * @param stepMode SaturationStepMode + * @param stepSize INT8U + * @param transitionTime INT8U + * @param optionsMask BITMAP8 + * @param optionsOverride BITMAP8 + */ +#define emberAfFillCommandColor \ + ControlClusterStepSaturation(stepMode, stepSize, transitionTime, optionsMask, optionsOverride) emberAfFillExternalBuffer( \ + mask, \ + \ + ZCL_STEP_SATURATION_COMMAND_ID, "uuuuu", stepMode, stepSize, transitionTime, optionsMask, optionsOverride); + +/** @brief Command description for MoveToHueAndSaturation + * + * Command: MoveToHueAndSaturation + * @param hue INT8U + * @param saturation INT8U + * @param transitionTime INT16U + * @param optionsMask BITMAP8 + * @param optionsOverride BITMAP8 + */ +#define emberAfFillCommandColor \ + ControlClusterMoveToHueAndSaturation(hue, saturation, transitionTime, optionsMask, optionsOverride) emberAfFillExternalBuffer( \ + mask, \ + \ + ZCL_MOVE_TO_HUE_AND_SATURATION_COMMAND_ID, "uuuuu", hue, saturation, transitionTime, optionsMask, optionsOverride); + +/** @brief Command description for MoveToColor + * + * Command: MoveToColor + * @param colorX INT16U + * @param colorY INT16U + * @param transitionTime INT16U + * @param optionsMask BITMAP8 + * @param optionsOverride BITMAP8 + */ +#define emberAfFillCommandColor \ + ControlClusterMoveToColor(colorX, colorY, transitionTime, optionsMask, optionsOverride) emberAfFillExternalBuffer( \ + mask, \ + \ + ZCL_MOVE_TO_COLOR_COMMAND_ID, "uuuuu", colorX, colorY, transitionTime, optionsMask, optionsOverride); + +/** @brief Command description for MoveColor + * + * Command: MoveColor + * @param rateX INT16S + * @param rateY INT16S + * @param optionsMask BITMAP8 + * @param optionsOverride BITMAP8 + */ +#define emberAfFillCommandColor \ + ControlClusterMoveColor(rateX, rateY, optionsMask, optionsOverride) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_MOVE_COLOR_COMMAND_ID, "uuuu", rateX, rateY, optionsMask, optionsOverride); + +/** @brief Command description for StepColor + * + * Command: StepColor + * @param stepX INT16S + * @param stepY INT16S + * @param transitionTime INT16U + * @param optionsMask BITMAP8 + * @param optionsOverride BITMAP8 + */ +#define emberAfFillCommandColor \ + ControlClusterStepColor(stepX, stepY, transitionTime, optionsMask, optionsOverride) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_STEP_COLOR_COMMAND_ID, "uuuuu", stepX, stepY, transitionTime, optionsMask, optionsOverride); + +/** @brief Command description for MoveToColorTemperature + * + * Command: MoveToColorTemperature + * @param colorTemperature INT16U + * @param transitionTime INT16U + * @param optionsMask BITMAP8 + * @param optionsOverride BITMAP8 + */ +#define emberAfFillCommandColor \ + ControlClusterMoveToColorTemperature(colorTemperature, transitionTime, optionsMask, optionsOverride) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_MOVE_TO_COLOR_TEMPERATURE_COMMAND_ID, "uuuu", colorTemperature, transitionTime, optionsMask, \ + optionsOverride); + +/** @brief Command description for EnhancedMoveToHue + * + * Command: EnhancedMoveToHue + * @param enhancedHue INT16U + * @param direction HueDirection + * @param transitionTime INT16U + */ +#define emberAfFillCommandColor \ + ControlClusterEnhancedMoveToHue(enhancedHue, direction, transitionTime) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_ENHANCED_MOVE_TO_HUE_COMMAND_ID, "uuu", enhancedHue, direction, transitionTime); + +/** @brief Command description for EnhancedMoveHue + * + * Command: EnhancedMoveHue + * @param moveMode HueMoveMode + * @param rate INT16U + */ +#define emberAfFillCommandColor \ + ControlClusterEnhancedMoveHue(moveMode, rate) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_ENHANCED_MOVE_HUE_COMMAND_ID, "uu", moveMode, rate); + +/** @brief Command description for EnhancedStepHue + * + * Command: EnhancedStepHue + * @param stepMode HueStepMode + * @param stepSize INT16U + * @param transitionTime INT16U + */ +#define emberAfFillCommandColor \ + ControlClusterEnhancedStepHue(stepMode, stepSize, transitionTime) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_ENHANCED_STEP_HUE_COMMAND_ID, "uuu", stepMode, stepSize, transitionTime); + +/** @brief Command description for EnhancedMoveToHueAndSaturation + * + * Command: EnhancedMoveToHueAndSaturation + * @param enhancedHue INT16U + * @param saturation INT8U + * @param transitionTime INT16U + */ +#define emberAfFillCommandColor \ + ControlClusterEnhancedMoveToHueAndSaturation(enhancedHue, saturation, transitionTime) emberAfFillExternalBuffer( \ + mask, \ + \ + ZCL_ENHANCED_MOVE_TO_HUE_AND_SATURATION_COMMAND_ID, "uuu", enhancedHue, saturation, transitionTime); + +/** @brief Command description for ColorLoopSet + * + * Command: ColorLoopSet + * @param updateFlags ColorLoopUpdateFlags + * @param action ColorLoopAction + * @param direction ColorLoopDirection + * @param time INT16U + * @param startHue INT16U + */ +#define emberAfFillCommandColor \ + ControlClusterColorLoopSet(updateFlags, action, direction, time, startHue) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_COLOR_LOOP_SET_COMMAND_ID, "uuuuu", updateFlags, action, direction, time, startHue); + +/** @brief Command description for StopMoveStep + * + * Command: StopMoveStep + * @param optionsMask BITMAP8 + * @param optionsOverride BITMAP8 + */ +#define emberAfFillCommandColor \ + ControlClusterStopMoveStep(optionsMask, optionsOverride) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_STOP_MOVE_STEP_COMMAND_ID, "uu", optionsMask, optionsOverride); + +/** @brief Command description for MoveColorTemperature + * + * Command: MoveColorTemperature + * @param moveMode HueMoveMode + * @param rate INT16U + * @param colorTemperatureMinimum INT16U + * @param colorTemperatureMaximum INT16U + * @param optionsMask BITMAP8 + * @param optionsOverride BITMAP8 + */ +#define emberAfFillCommandColor \ + ControlClusterMoveColorTemperature(moveMode, rate, colorTemperatureMinimum, colorTemperatureMaximum, optionsMask, \ + optionsOverride) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_MOVE_COLOR_TEMPERATURE_COMMAND_ID, "uuuuuu", moveMode, rate, colorTemperatureMinimum, \ + colorTemperatureMaximum, optionsMask, optionsOverride); + +/** @brief Command description for StepColorTemperature + * + * Command: StepColorTemperature + * @param stepMode HueStepMode + * @param stepSize INT16U + * @param transitionTime INT16U + * @param colorTemperatureMinimum INT16U + * @param colorTemperatureMaximum INT16U + * @param optionsMask BITMAP8 + * @param optionsOverride BITMAP8 + */ +#define emberAfFillCommandColor \ + ControlClusterStepColorTemperature(stepMode, stepSize, transitionTime, colorTemperatureMinimum, colorTemperatureMaximum, \ + optionsMask, optionsOverride) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_STEP_COLOR_TEMPERATURE_COMMAND_ID, "uuuuuuu", stepMode, stepSize, transitionTime, \ + colorTemperatureMinimum, colorTemperatureMaximum, optionsMask, optionsOverride); + +/** @brief Command description for ZoneEnrollResponse + * + * Command: ZoneEnrollResponse + * @param enrollResponseCode IasEnrollResponseCode + * @param zoneStatus IasZoneStatus + * @param zoneId INT8U + * @param extendedStatus BITMAP8 + * @param zoneId INT8U + * @param delay INT16U + */ +#define emberAfFillCommandIAS \ + ZoneClusterZoneEnrollResponse(enrollResponseCode, zoneStatus, zoneId, extendedStatus, zoneId, delay) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_ZONE_ENROLL_RESPONSE_COMMAND_ID, "uuuuuu", enrollResponseCode, zoneStatus, zoneId, \ + extendedStatus, zoneId, delay); + +/** @brief Command description for InitiateNormalOperationMode + * + * Command: InitiateNormalOperationMode + * @param zoneType IasZoneType + * @param manufacturerCode INT16U + */ +#define emberAfFillCommandIAS \ + ZoneClusterInitiateNormalOperationMode(zoneType, manufacturerCode) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_INITIATE_NORMAL_OPERATION_MODE_COMMAND_ID, "uu", zoneType, manufacturerCode); + +/** @brief Command description for InitiateNormalOperationModeResponse + * + * Command: InitiateNormalOperationModeResponse + * @param testModeDuration INT8U + * @param currentZoneSensitivityLevel INT8U + */ +#define emberAfFillCommandIAS \ + ZoneClusterInitiateNormalOperationModeResponse(testModeDuration, currentZoneSensitivityLevel) emberAfFillExternalBuffer( \ + mask, \ + \ + ZCL_INITIATE_NORMAL_OPERATION_MODE_RESPONSE_COMMAND_ID, "uu", testModeDuration, currentZoneSensitivityLevel); + +/** @brief Command description for InitiateTestModeResponse + * + * Command: InitiateTestModeResponse + */ +#define emberAfFillCommandIAS \ + ZoneClusterInitiateTestModeResponse() emberAfFillExternalBuffer(mask, \ + \ + ZCL_INITIATE_TEST_MODE_RESPONSE_COMMAND_ID, "", ); + +/** @brief Command description for Arm + * + * Command: Arm + * @param armMode IasAceArmMode + * @param armNotification IasAceArmNotification + * @param armDisarmCode CHAR_STRING + * @param zoneId INT8U + */ +#define emberAfFillCommandIAS \ + ACEClusterArm(armMode, armNotification, armDisarmCode, zoneId) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_ARM_COMMAND_ID, "uuuu", armMode, armNotification, armDisarmCode, zoneId); + +/** @brief Command description for Bypass + * + * Command: Bypass + * @param numberOfZones INT8U + * @param section0 BITMAP16 + * @param zoneIds INT8U [] + * @param zoneIdsLen int + * @param section1 BITMAP16 + * @param armDisarmCode CHAR_STRING + * @param section2 BITMAP16 + * @param section3 BITMAP16 + * @param section4 BITMAP16 + * @param section5 BITMAP16 + * @param section6 BITMAP16 + * @param section7 BITMAP16 + * @param section8 BITMAP16 + * @param section9 BITMAP16 + * @param section10 BITMAP16 + * @param section11 BITMAP16 + * @param section12 BITMAP16 + * @param section13 BITMAP16 + * @param section14 BITMAP16 + * @param section15 BITMAP16 + */ +#define emberAfFillCommandIAS \ + ACEClusterBypass(numberOfZones, section0, zoneIds, zoneIdsLen, section1, armDisarmCode, section2, section3, section4, \ + section5, section6, section7, section8, section9, section10, section11, section12, section13, section14, \ + section15) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_BYPASS_COMMAND_ID, "uubuuuuuuuuuuuuuuuu", numberOfZones, section0, zoneIds, zoneIdsLen, \ + section1, armDisarmCode, section2, section3, section4, section5, section6, section7, section8, \ + section9, section10, section11, section12, section13, section14, section15); + +/** @brief Command description for Emergency + * + * Command: Emergency + * @param zoneId INT8U + * @param zoneType IasZoneType + * @param ieeeAddress IEEE_ADDRESS + * @param zoneLabel CHAR_STRING + */ +#define emberAfFillCommandIAS \ + ACEClusterEmergency(zoneId, zoneType, ieeeAddress, zoneLabel) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_EMERGENCY_COMMAND_ID, "uuuu", zoneId, zoneType, ieeeAddress, zoneLabel); + +/** @brief Command description for Fire + * + * Command: Fire + * @param zoneId INT8U + * @param zoneStatus ENUM16 + * @param audibleNotification IasAceAudibleNotification + * @param zoneLabel CHAR_STRING + */ +#define emberAfFillCommandIAS \ + ACEClusterFire(zoneId, zoneStatus, audibleNotification, zoneLabel) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_FIRE_COMMAND_ID, "uuuu", zoneId, zoneStatus, audibleNotification, zoneLabel); + +/** @brief Command description for Panic + * + * Command: Panic + * @param panelStatus IasAcePanelStatus + * @param secondsRemaining INT8U + * @param audibleNotification IasAceAudibleNotification + * @param alarmStatus IasAceAlarmStatus + */ +#define emberAfFillCommandIAS \ + ACEClusterPanic(panelStatus, secondsRemaining, audibleNotification, alarmStatus) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_PANIC_COMMAND_ID, "uuuu", panelStatus, secondsRemaining, audibleNotification, alarmStatus); + +/** @brief Command description for GetZoneIdMap + * + * Command: GetZoneIdMap + * @param panelStatus IasAcePanelStatus + * @param secondsRemaining INT8U + * @param audibleNotification IasAceAudibleNotification + * @param alarmStatus IasAceAlarmStatus + */ +#define emberAfFillCommandIAS \ + ACEClusterGetZoneIdMap(panelStatus, secondsRemaining, audibleNotification, alarmStatus) emberAfFillExternalBuffer( \ + mask, \ + \ + ZCL_GET_ZONE_ID_MAP_COMMAND_ID, "uuuu", panelStatus, secondsRemaining, audibleNotification, alarmStatus); + +/** @brief Command description for GetZoneInformation + * + * Command: GetZoneInformation + * @param zoneId INT8U + * @param numberOfZones INT8U + * @param zoneIds INT8U [] + * @param zoneIdsLen int + */ +#define emberAfFillCommandIAS \ + ACEClusterGetZoneInformation(zoneId, numberOfZones, zoneIds, zoneIdsLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_GET_ZONE_INFORMATION_COMMAND_ID, "uub", zoneId, numberOfZones, zoneIds, zoneIdsLen); + +/** @brief Command description for GetPanelStatus + * + * Command: GetPanelStatus + * @param numberOfZones INT8U + * @param bypassResult IasAceBypassResult [] + * @param bypassResultLen int + */ +#define emberAfFillCommandIAS \ + ACEClusterGetPanelStatus(numberOfZones, bypassResult, bypassResultLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_GET_PANEL_STATUS_COMMAND_ID, "ub", numberOfZones, bypassResult, bypassResultLen); + +/** @brief Command description for GetBypassedZoneList + * + * Command: GetBypassedZoneList + * @param zoneStatusComplete BOOLEAN + * @param numberOfZones INT8U + * @param zoneStatusResult IasAceZoneStatusResult [] + * @param zoneStatusResultLen int + */ +#define emberAfFillCommandIAS \ + ACEClusterGetBypassedZoneList(zoneStatusComplete, numberOfZones, zoneStatusResult, zoneStatusResultLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_GET_BYPASSED_ZONE_LIST_COMMAND_ID, "uub", zoneStatusComplete, numberOfZones, \ + zoneStatusResult, zoneStatusResultLen); + +/** @brief Command description for GetZoneStatus + * + * Command: GetZoneStatus + * @param startingZoneId INT8U + * @param maxNumberOfZoneIds INT8U + * @param zoneStatusMaskFlag BOOLEAN + * @param zoneStatusMask BITMAP16 + */ +#define emberAfFillCommandIAS \ + ACEClusterGetZoneStatus(startingZoneId, maxNumberOfZoneIds, zoneStatusMaskFlag, zoneStatusMask) emberAfFillExternalBuffer( \ + mask, \ + \ + ZCL_GET_ZONE_STATUS_COMMAND_ID, "uuuu", startingZoneId, maxNumberOfZoneIds, zoneStatusMaskFlag, zoneStatusMask); + +/** @brief Command description for StartWarning + * + * Command: StartWarning + * @param warningInfo WarningInfo + * @param warningDuration INT16U + * @param strobeDutyCycle INT8U + * @param strobeLevel ENUM8 + */ +#define emberAfFillCommandIAS \ + WDClusterStartWarning(warningInfo, warningDuration, strobeDutyCycle, strobeLevel) emberAfFillExternalBuffer( \ + mask, \ + \ + ZCL_START_WARNING_COMMAND_ID, "uuuu", warningInfo, warningDuration, strobeDutyCycle, strobeLevel); + +/** @brief Command description for Squawk + * + * Command: Squawk + * @param squawkInfo SquawkInfo + */ +#define emberAfFillCommandIAS \ + WDClusterSquawk(squawkInfo) emberAfFillExternalBuffer(mask, \ + \ + ZCL_SQUAWK_COMMAND_ID, "u", squawkInfo); + +/** @brief Command description for MatchProtocolAddress + * + * Command: MatchProtocolAddress + * @param protocolAddress OCTET_STRING + * @param deviceIeeeAddress IEEE_ADDRESS + * @param protocolAddress OCTET_STRING + */ +#define emberAfFillCommandGeneric \ + TunnelClusterMatchProtocolAddress(protocolAddress, deviceIeeeAddress, protocolAddress) emberAfFillExternalBuffer( \ + mask, \ + \ + ZCL_MATCH_PROTOCOL_ADDRESS_COMMAND_ID, "uuu", protocolAddress, deviceIeeeAddress, protocolAddress); + +/** @brief Command description for AdvertiseProtocolAddress + * + * Command: AdvertiseProtocolAddress + * @param protocolAddress OCTET_STRING + */ +#define emberAfFillCommandGeneric \ + TunnelClusterAdvertiseProtocolAddress(protocolAddress) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_ADVERTISE_PROTOCOL_ADDRESS_COMMAND_ID, "u", protocolAddress); + +/** @brief Command description for TransferNpdu + * + * Command: TransferNpdu + * @param npdu DATA8 [] + * @param npduLen int + */ +#define emberAfFillCommandBACnet \ + Protocol TunnelClusterTransferNpdu(npdu, npduLen) emberAfFillExternalBuffer(mask, \ + \ + ZCL_TRANSFER_NPDU_COMMAND_ID, "b", npdu, npduLen); + +/** @brief Command description for TransferAPDU + * + * Command: TransferAPDU + * @param apdu OCTET_STRING + */ +#define emberAfFillCommand11073 \ + Protocol TunnelClusterTransferAPDU(apdu) emberAfFillExternalBuffer(mask, \ + \ + ZCL_TRANSFER_APDU_COMMAND_ID, "u", apdu); + +/** @brief Command description for ConnectRequest + * + * Command: ConnectRequest + * @param connectControl 11073ConnectRequestConnectControl + * @param idleTimeout INT16U + * @param managerTarget IEEE_ADDRESS + * @param managerEndpoint INT8U + */ +#define emberAfFillCommand11073 \ + Protocol TunnelClusterConnectRequest(connectControl, idleTimeout, managerTarget, managerEndpoint) emberAfFillExternalBuffer( \ + mask, \ + \ + ZCL_CONNECT_REQUEST_COMMAND_ID, "uuuu", connectControl, idleTimeout, managerTarget, managerEndpoint); + +/** @brief Command description for DisconnectRequest + * + * Command: DisconnectRequest + * @param managerIEEEAddress IEEE_ADDRESS + */ +#define emberAfFillCommand11073 \ + Protocol TunnelClusterDisconnectRequest(managerIEEEAddress) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_DISCONNECT_REQUEST_COMMAND_ID, "u", managerIEEEAddress); + +/** @brief Command description for ConnectStatusNotification + * + * Command: ConnectStatusNotification + * @param connectStatus 11073TunnelConnectionStatus + */ +#define emberAfFillCommand11073 \ + Protocol TunnelClusterConnectStatusNotification(connectStatus) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_CONNECT_STATUS_NOTIFICATION_COMMAND_ID, "u", connectStatus); + +/** @brief Command description for TransferApdu + * + * Command: TransferApdu + * @param apdu OCTET_STRING + */ +#define emberAfFillCommandISO \ + 7816 Protocol TunnelClusterTransferApdu(apdu) emberAfFillExternalBuffer(mask, \ + \ + ZCL_TRANSFER_APDU_COMMAND_ID, "u", apdu); + +/** @brief Command description for InsertSmartCard + * + * Command: InsertSmartCard + */ +#define emberAfFillCommandISO \ + 7816 Protocol TunnelClusterInsertSmartCard() emberAfFillExternalBuffer(mask, \ + \ + ZCL_INSERT_SMART_CARD_COMMAND_ID, "", ); + +/** @brief Command description for ExtractSmartCard + * + * Command: ExtractSmartCard + */ +#define emberAfFillCommandISO \ + 7816 Protocol TunnelClusterExtractSmartCard() emberAfFillExternalBuffer(mask, \ + \ + ZCL_EXTRACT_SMART_CARD_COMMAND_ID, "", ); + +/** @brief Command description for PublishPrice + * + * Command: PublishPrice + * @param providerId INT32U + * @param commandOptions AmiCommandOptions + * @param rateLabel OCTET_STRING + * @param issuerEventId INT32U + * @param currentTime UTC_TIME + * @param unitOfMeasure AmiUnitOfMeasure + * @param currency INT16U + * @param priceTrailingDigitAndPriceTier PriceTrailingDigitAndPriceTier + * @param numberOfPriceTiersAndRegisterTier PriceNumberOfPriceTiersAndRegisterTier + * @param startTime UTC_TIME + * @param durationInMinutes INT16U + * @param price INT32U + * @param priceRatio INT8U + * @param generationPrice INT32U + * @param generationPriceRatio INT8U + * @param alternateCostDelivered INT32U + * @param alternateCostUnit AlternateCostUnit + * @param alternateCostTrailingDigit AlternateCostTrailingDigit + * @param numberOfBlockThresholds INT8U + * @param priceControl PriceControlMask + * @param numberOfGenerationTiers INT8U + * @param generationTier GenerationTier + * @param extendedNumberOfPriceTiers ExtendedNumberOfPriceTiers + * @param extendedPriceTier ExtendedPriceTier + * @param extendedRegisterTier ExtendedRegisterTier + */ +#define emberAfFillCommandPriceClusterPublishPrice( \ + providerId, commandOptions, rateLabel, issuerEventId, currentTime, unitOfMeasure, currency, priceTrailingDigitAndPriceTier, \ + numberOfPriceTiersAndRegisterTier, startTime, durationInMinutes, price, priceRatio, generationPrice, generationPriceRatio, \ + alternateCostDelivered, alternateCostUnit, alternateCostTrailingDigit, numberOfBlockThresholds, priceControl, \ + numberOfGenerationTiers, generationTier, extendedNumberOfPriceTiers, extendedPriceTier, extendedRegisterTier) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_PUBLISH_PRICE_COMMAND_ID, "uuuuuuuuuuuuuuuuuuuuuuuuu", providerId, commandOptions, rateLabel, \ + issuerEventId, currentTime, unitOfMeasure, currency, priceTrailingDigitAndPriceTier, \ + numberOfPriceTiersAndRegisterTier, startTime, durationInMinutes, price, priceRatio, generationPrice, \ + generationPriceRatio, alternateCostDelivered, alternateCostUnit, alternateCostTrailingDigit, \ + numberOfBlockThresholds, priceControl, numberOfGenerationTiers, generationTier, \ + extendedNumberOfPriceTiers, extendedPriceTier, extendedRegisterTier); + +/** @brief Command description for PublishBlockPeriod + * + * Command: PublishBlockPeriod + * @param providerId INT32U + * @param startTime UTC_TIME + * @param issuerEventId INT32U + * @param numberOfEvents INT8U + * @param blockPeriodStartTime UTC_TIME + * @param blockPeriodDuration INT24U + * @param numberOfPriceTiersAndNumberOfBlockThresholds BITMAP8 + * @param blockPeriodControl BlockPeriodControl + * @param blockPeriodDurationType BlockPeriodDurationType + * @param tariffType TariffType + * @param tariffResolutionPeriod TariffResolutionPeriod + */ +#define emberAfFillCommandPriceClusterPublishBlockPeriod( \ + providerId, startTime, issuerEventId, numberOfEvents, blockPeriodStartTime, blockPeriodDuration, \ + numberOfPriceTiersAndNumberOfBlockThresholds, blockPeriodControl, blockPeriodDurationType, tariffType, tariffResolutionPeriod) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_PUBLISH_BLOCK_PERIOD_COMMAND_ID, "uuuuuuuuuuu", providerId, startTime, issuerEventId, \ + numberOfEvents, blockPeriodStartTime, blockPeriodDuration, \ + numberOfPriceTiersAndNumberOfBlockThresholds, blockPeriodControl, blockPeriodDurationType, \ + tariffType, tariffResolutionPeriod); + +/** @brief Command description for PublishConversionFactor + * + * Command: PublishConversionFactor + * @param issuerEventId INT32U + * @param providerId INT32U + * @param startTime UTC_TIME + * @param issuerEventId INT32U + * @param conversionFactor INT32U + * @param priceAckTime UTC_TIME + * @param conversionFactorTrailingDigit ConversionFactorTrailingDigit + * @param control PriceControlMask + */ +#define emberAfFillCommandPriceClusterPublishConversionFactor( \ + issuerEventId, providerId, startTime, issuerEventId, conversionFactor, priceAckTime, conversionFactorTrailingDigit, control) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_PUBLISH_CONVERSION_FACTOR_COMMAND_ID, "uuuuuuuu", issuerEventId, providerId, startTime, \ + issuerEventId, conversionFactor, priceAckTime, conversionFactorTrailingDigit, control); + +/** @brief Command description for PublishCalorificValue + * + * Command: PublishCalorificValue + * @param issuerEventId INT32U + * @param startTime UTC_TIME + * @param startTime UTC_TIME + * @param numberOfEvents INT8U + * @param calorificValue INT32U + * @param tariffType TariffType + * @param calorificValueUnit CalorificValueUnit + * @param calorificValueTrailingDigit CalorificValueTrailingDigit + */ +#define emberAfFillCommandPriceClusterPublishCalorificValue(issuerEventId, startTime, startTime, numberOfEvents, calorificValue, \ + tariffType, calorificValueUnit, calorificValueTrailingDigit) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_PUBLISH_CALORIFIC_VALUE_COMMAND_ID, "uuuuuuuu", issuerEventId, startTime, startTime, \ + numberOfEvents, calorificValue, tariffType, calorificValueUnit, calorificValueTrailingDigit); + +/** @brief Command description for PublishTariffInformation + * + * Command: PublishTariffInformation + * @param providerId INT32U + * @param earliestStartTime UTC_TIME + * @param issuerEventId INT32U + * @param minIssuerEventId INT32U + * @param issuerTariffId INT32U + * @param numberOfCommands INT8U + * @param startTime UTC_TIME + * @param tariffTypeChargingScheme TariffTypeChargingScheme + * @param tariffLabel OCTET_STRING + * @param numberOfPriceTiersInUse INT8U + * @param numberOfBlockThresholdsInUse INT8U + * @param unitOfMeasure AmiUnitOfMeasure + * @param currency INT16U + * @param priceTrailingDigit PriceTrailingDigit + * @param standingCharge INT32U + * @param tierBlockMode TierBlockMode + * @param blockThresholdMultiplier INT24U + * @param blockThresholdDivisor INT24U + */ +#define emberAfFillCommandPriceClusterPublishTariffInformation( \ + providerId, earliestStartTime, issuerEventId, minIssuerEventId, issuerTariffId, numberOfCommands, startTime, \ + tariffTypeChargingScheme, tariffLabel, numberOfPriceTiersInUse, numberOfBlockThresholdsInUse, unitOfMeasure, currency, \ + priceTrailingDigit, standingCharge, tierBlockMode, blockThresholdMultiplier, blockThresholdDivisor) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_PUBLISH_TARIFF_INFORMATION_COMMAND_ID, "uuuuuuuuuuuuuuuuuu", providerId, earliestStartTime, \ + issuerEventId, minIssuerEventId, issuerTariffId, numberOfCommands, startTime, \ + tariffTypeChargingScheme, tariffLabel, numberOfPriceTiersInUse, numberOfBlockThresholdsInUse, \ + unitOfMeasure, currency, priceTrailingDigit, standingCharge, tierBlockMode, \ + blockThresholdMultiplier, blockThresholdDivisor); + +/** @brief Command description for PublishPriceMatrix + * + * Command: PublishPriceMatrix + * @param providerId INT32U + * @param earliestStartTime UTC_TIME + * @param issuerEventId INT32U + * @param minIssuerEventId INT32U + * @param startTime UTC_TIME + * @param numberOfCommands INT8U + * @param issuerTariffId INT32U + * @param commandIndex INT8U + * @param numberOfCommands INT8U + * @param subPayloadControl PriceMatrixSubPayloadControl + * @param payload PriceMatrixSubPayload [] + * @param payloadLen int + */ +#define emberAfFillCommandPriceClusterPublishPriceMatrix(providerId, earliestStartTime, issuerEventId, minIssuerEventId, \ + startTime, numberOfCommands, issuerTariffId, commandIndex, \ + numberOfCommands, subPayloadControl, payload, payloadLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_PUBLISH_PRICE_MATRIX_COMMAND_ID, "uuuuuuuuuub", providerId, earliestStartTime, issuerEventId, \ + minIssuerEventId, startTime, numberOfCommands, issuerTariffId, commandIndex, numberOfCommands, \ + subPayloadControl, payload, payloadLen); + +/** @brief Command description for PublishBlockThresholds + * + * Command: PublishBlockThresholds + * @param providerId INT32U + * @param earliestStartTime UTC_TIME + * @param issuerEventId INT32U + * @param minIssuerEventId INT32U + * @param startTime UTC_TIME + * @param numberOfCommands INT8U + * @param issuerTariffId INT32U + * @param tariffType TariffType + * @param commandIndex INT8U + * @param numberOfCommands INT8U + * @param subPayloadControl BlockThresholdSubPayloadControl + * @param payload BlockThresholdSubPayload [] + * @param payloadLen int + */ +#define emberAfFillCommandPriceClusterPublishBlockThresholds( \ + providerId, earliestStartTime, issuerEventId, minIssuerEventId, startTime, numberOfCommands, issuerTariffId, tariffType, \ + commandIndex, numberOfCommands, subPayloadControl, payload, payloadLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_PUBLISH_BLOCK_THRESHOLDS_COMMAND_ID, "uuuuuuuuuuub", providerId, earliestStartTime, \ + issuerEventId, minIssuerEventId, startTime, numberOfCommands, issuerTariffId, tariffType, \ + commandIndex, numberOfCommands, subPayloadControl, payload, payloadLen); + +/** @brief Command description for PublishCO2Value + * + * Command: PublishCO2Value + * @param providerId INT32U + * @param issuerTariffId INT32U + * @param issuerEventId INT32U + * @param startTime UTC_TIME + * @param tariffType TariffType + * @param cO2Value INT32U + * @param cO2ValueUnit CO2Unit + * @param cO2ValueTrailingDigit CO2TrailingDigit + */ +#define emberAfFillCommandPriceClusterPublishCO2Value(providerId, issuerTariffId, issuerEventId, startTime, tariffType, cO2Value, \ + cO2ValueUnit, cO2ValueTrailingDigit) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_PUBLISH_CO2_VALUE_COMMAND_ID, "uuuuuuuu", providerId, issuerTariffId, issuerEventId, startTime, \ + tariffType, cO2Value, cO2ValueUnit, cO2ValueTrailingDigit); + +/** @brief Command description for PublishTierLabels + * + * Command: PublishTierLabels + * @param providerId INT32U + * @param issuerTariffId INT32U + * @param issuerEventId INT32U + * @param issuerTariffId INT32U + * @param commandIndex INT8U + * @param numberOfCommands INT8U + * @param numberOfLabels INT8U + * @param tierLabelsPayload INT8U [] + * @param tierLabelsPayloadLen int + */ +#define emberAfFillCommandPriceClusterPublishTierLabels(providerId, issuerTariffId, issuerEventId, issuerTariffId, commandIndex, \ + numberOfCommands, numberOfLabels, tierLabelsPayload, tierLabelsPayloadLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_PUBLISH_TIER_LABELS_COMMAND_ID, "uuuuuuub", providerId, issuerTariffId, issuerEventId, \ + issuerTariffId, commandIndex, numberOfCommands, numberOfLabels, tierLabelsPayload, \ + tierLabelsPayloadLen); + +/** @brief Command description for PublishBillingPeriod + * + * Command: PublishBillingPeriod + * @param providerId INT32U + * @param earliestStartTime UTC_TIME + * @param issuerEventId INT32U + * @param minIssuerEventId INT32U + * @param billingPeriodStartTime UTC_TIME + * @param numberOfCommands INT8U + * @param billingPeriodDuration BillingPeriodDuration + * @param tariffType TariffType + * @param billingPeriodDurationType BillingPeriodDurationType + * @param tariffType TariffType + */ +#define emberAfFillCommandPriceClusterPublishBillingPeriod(providerId, earliestStartTime, issuerEventId, minIssuerEventId, \ + billingPeriodStartTime, numberOfCommands, billingPeriodDuration, \ + tariffType, billingPeriodDurationType, tariffType) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_PUBLISH_BILLING_PERIOD_COMMAND_ID, "uuuuuuuuuu", providerId, earliestStartTime, issuerEventId, \ + minIssuerEventId, billingPeriodStartTime, numberOfCommands, billingPeriodDuration, tariffType, \ + billingPeriodDurationType, tariffType); + +/** @brief Command description for PublishConsolidatedBill + * + * Command: PublishConsolidatedBill + * @param providerId INT32U + * @param issuerTariffId INT32U + * @param issuerEventId INT32U + * @param billingPeriodStartTime UTC_TIME + * @param billingPeriodDuration BillingPeriodDuration + * @param billingPeriodDurationType BillingPeriodDurationType + * @param tariffType TariffType + * @param consolidatedBill INT32U + * @param currency INT16U + * @param billTrailingDigit BillTrailingDigit + */ +#define emberAfFillCommandPriceClusterPublishConsolidatedBill(providerId, issuerTariffId, issuerEventId, billingPeriodStartTime, \ + billingPeriodDuration, billingPeriodDurationType, tariffType, \ + consolidatedBill, currency, billTrailingDigit) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_PUBLISH_CONSOLIDATED_BILL_COMMAND_ID, "uuuuuuuuuu", providerId, issuerTariffId, issuerEventId, \ + billingPeriodStartTime, billingPeriodDuration, billingPeriodDurationType, tariffType, \ + consolidatedBill, currency, billTrailingDigit); + +/** @brief Command description for PublishCppEvent + * + * Command: PublishCppEvent + * @param providerId INT32U + * @param earliestStartTime UTC_TIME + * @param issuerEventId INT32U + * @param minIssuerEventId INT32U + * @param startTime UTC_TIME + * @param numberOfCommands INT8U + * @param durationInMinutes INT16U + * @param tariffType TariffType + * @param tariffType TariffType + * @param cppPriceTier CppPriceTier + * @param cppAuth PublishCppEventCppAuth + */ +#define emberAfFillCommandPriceClusterPublishCppEvent(providerId, earliestStartTime, issuerEventId, minIssuerEventId, startTime, \ + numberOfCommands, durationInMinutes, tariffType, tariffType, cppPriceTier, \ + cppAuth) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_PUBLISH_CPP_EVENT_COMMAND_ID, "uuuuuuuuuuu", providerId, earliestStartTime, issuerEventId, \ + minIssuerEventId, startTime, numberOfCommands, durationInMinutes, tariffType, tariffType, \ + cppPriceTier, cppAuth); + +/** @brief Command description for PublishCreditPayment + * + * Command: PublishCreditPayment + * @param providerId INT32U + * @param earliestStartTime UTC_TIME + * @param issuerEventId INT32U + * @param minIssuerEventId INT32U + * @param creditPaymentDueDate UTC_TIME + * @param numberOfCommands INT8U + * @param creditPaymentOverDueAmount INT32U + * @param tariffType TariffType + * @param creditPaymentStatus CreditPaymentStatus + * @param creditPayment INT32U + * @param creditPaymentDate UTC_TIME + * @param creditPaymentRef OCTET_STRING + */ +#define emberAfFillCommandPriceClusterPublishCreditPayment( \ + providerId, earliestStartTime, issuerEventId, minIssuerEventId, creditPaymentDueDate, numberOfCommands, \ + creditPaymentOverDueAmount, tariffType, creditPaymentStatus, creditPayment, creditPaymentDate, creditPaymentRef) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_PUBLISH_CREDIT_PAYMENT_COMMAND_ID, "uuuuuuuuuuuu", providerId, earliestStartTime, issuerEventId, \ + minIssuerEventId, creditPaymentDueDate, numberOfCommands, creditPaymentOverDueAmount, tariffType, \ + creditPaymentStatus, creditPayment, creditPaymentDate, creditPaymentRef); + +/** @brief Command description for PublishCurrencyConversion + * + * Command: PublishCurrencyConversion + * @param providerId INT32U + * @param issuerEventId INT32U + * @param issuerEventId INT32U + * @param cppAuth CppEventResponseCppAuth + * @param startTime UTC_TIME + * @param oldCurrency INT16U + * @param newCurrency INT16U + * @param conversionFactor INT32U + * @param conversionFactorTrailingDigit ConversionFactorTrailingDigit + * @param currencyChangeControlFlags CurrencyChangeControl + */ +#define emberAfFillCommandPriceClusterPublishCurrencyConversion(providerId, issuerEventId, issuerEventId, cppAuth, startTime, \ + oldCurrency, newCurrency, conversionFactor, \ + conversionFactorTrailingDigit, currencyChangeControlFlags) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_PUBLISH_CURRENCY_CONVERSION_COMMAND_ID, "uuuuuuuuuu", providerId, issuerEventId, issuerEventId, \ + cppAuth, startTime, oldCurrency, newCurrency, conversionFactor, conversionFactorTrailingDigit, \ + currencyChangeControlFlags); + +/** @brief Command description for CancelTariff + * + * Command: CancelTariff + * @param providerId INT32U + * @param latestEndTime UTC_TIME + * @param issuerTariffId INT32U + * @param numberOfRecords INT8U + * @param tariffType TariffType + */ +#define emberAfFillCommandPriceClusterCancelTariff(providerId, latestEndTime, issuerTariffId, numberOfRecords, tariffType) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_CANCEL_TARIFF_COMMAND_ID, "uuuuu", providerId, latestEndTime, issuerTariffId, numberOfRecords, \ + tariffType); + +/** @brief Command description for GetCurrencyConversionCommand + * + * Command: GetCurrencyConversionCommand + */ +#define emberAfFillCommandPriceClusterGetCurrencyConversionCommand() \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_GET_CURRENCY_CONVERSION_COMMAND_COMMAND_ID, "", ); + +/** @brief Command description for GetTariffCancellation + * + * Command: GetTariffCancellation + */ +#define emberAfFillCommandPriceClusterGetTariffCancellation() \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_GET_TARIFF_CANCELLATION_COMMAND_ID, "", ); + +/** @brief Command description for LoadControlEvent + * + * Command: LoadControlEvent + * @param issuerEventId INT32U + * @param issuerEventId INT32U + * @param deviceClass AmiDeviceClass + * @param eventStatus AmiEventStatus + * @param utilityEnrollmentGroup INT8U + * @param eventStatusTime UTC_TIME + * @param startTime UTC_TIME + * @param criticalityLevelApplied AmiCriticalityLevel + * @param durationInMinutes INT16U + * @param coolingTemperatureSetPointApplied INT16U + * @param criticalityLevel AmiCriticalityLevel + * @param heatingTemperatureSetPointApplied INT16U + * @param coolingTemperatureOffset INT8U + * @param averageLoadAdjustmentPercentageApplied INT8S + * @param heatingTemperatureOffset INT8U + * @param dutyCycleApplied INT8U + * @param coolingTemperatureSetPoint INT16S + * @param eventControl AmiEventControl + * @param heatingTemperatureSetPoint INT16S + * @param signatureType SignatureType + * @param averageLoadAdjustmentPercentage INT8S + * @param signature Signature + * @param dutyCycle INT8U + * @param eventControl AmiEventControl + */ +#define emberAfFillCommandDemand \ + Response and Load ControlClusterLoadControlEvent( \ + issuerEventId, issuerEventId, deviceClass, eventStatus, utilityEnrollmentGroup, eventStatusTime, startTime, \ + criticalityLevelApplied, durationInMinutes, coolingTemperatureSetPointApplied, criticalityLevel, \ + heatingTemperatureSetPointApplied, coolingTemperatureOffset, averageLoadAdjustmentPercentageApplied, \ + heatingTemperatureOffset, dutyCycleApplied, coolingTemperatureSetPoint, eventControl, heatingTemperatureSetPoint, \ + signatureType, averageLoadAdjustmentPercentage, signature, dutyCycle, eventControl) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_LOAD_CONTROL_EVENT_COMMAND_ID, "uuuuuuuuuuuuuuuuuuuuuuuu", issuerEventId, issuerEventId, \ + deviceClass, eventStatus, utilityEnrollmentGroup, eventStatusTime, startTime, \ + criticalityLevelApplied, durationInMinutes, coolingTemperatureSetPointApplied, criticalityLevel, \ + heatingTemperatureSetPointApplied, coolingTemperatureOffset, \ + averageLoadAdjustmentPercentageApplied, heatingTemperatureOffset, dutyCycleApplied, \ + coolingTemperatureSetPoint, eventControl, heatingTemperatureSetPoint, signatureType, \ + averageLoadAdjustmentPercentage, signature, dutyCycle, eventControl); + +/** @brief Command description for CancelLoadControlEvent + * + * Command: CancelLoadControlEvent + * @param issuerEventId INT32U + * @param startTime UTC_TIME + * @param deviceClass AmiDeviceClass + * @param numberOfEvents INT8U + * @param utilityEnrollmentGroup INT8U + * @param issuerEventId INT32U + * @param cancelControl AmiCancelControl + * @param effectiveTime UTC_TIME + */ +#define emberAfFillCommandDemand \ + Response and Load ControlClusterCancelLoadControlEvent(issuerEventId, startTime, deviceClass, numberOfEvents, \ + utilityEnrollmentGroup, issuerEventId, cancelControl, effectiveTime) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_CANCEL_LOAD_CONTROL_EVENT_COMMAND_ID, "uuuuuuuu", issuerEventId, startTime, deviceClass, \ + numberOfEvents, utilityEnrollmentGroup, issuerEventId, cancelControl, effectiveTime); + +/** @brief Command description for CancelAllLoadControlEvents + * + * Command: CancelAllLoadControlEvents + * @param cancelControl AmiCancelControl + */ +#define emberAfFillCommandDemand \ + Response and Load ControlClusterCancelAllLoadControlEvents(cancelControl) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_CANCEL_ALL_LOAD_CONTROL_EVENTS_COMMAND_ID, "u", cancelControl); + +/** @brief Command description for GetProfileResponse + * + * Command: GetProfileResponse + * @param endTime UTC_TIME + * @param intervalChannel AmiIntervalChannel + * @param status AmiGetProfileStatus + * @param endTime UTC_TIME + * @param profileIntervalPeriod AmiIntervalPeriod + * @param numberOfPeriods INT8U + * @param numberOfPeriodsDelivered INT8U + * @param intervals INT24U [] + * @param intervalsLen int + */ +#define emberAfFillCommandSimple \ + MeteringClusterGetProfileResponse(endTime, intervalChannel, status, endTime, profileIntervalPeriod, numberOfPeriods, \ + numberOfPeriodsDelivered, intervals, intervalsLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_GET_PROFILE_RESPONSE_COMMAND_ID, "uuuuuuub", endTime, intervalChannel, status, endTime, \ + profileIntervalPeriod, numberOfPeriods, numberOfPeriodsDelivered, intervals, intervalsLen); + +/** @brief Command description for RequestMirror + * + * Command: RequestMirror + * @param endpointId INT16U + */ +#define emberAfFillCommandSimple \ + MeteringClusterRequestMirror(endpointId) emberAfFillExternalBuffer(mask, \ + \ + ZCL_REQUEST_MIRROR_COMMAND_ID, "u", endpointId); + +/** @brief Command description for RemoveMirror + * + * Command: RemoveMirror + * @param endpointId INT16U + */ +#define emberAfFillCommandSimple \ + MeteringClusterRemoveMirror(endpointId) emberAfFillExternalBuffer(mask, \ + \ + ZCL_REMOVE_MIRROR_COMMAND_ID, "u", endpointId); + +/** @brief Command description for RequestFastPollModeResponse + * + * Command: RequestFastPollModeResponse + * @param appliedUpdatePeriod INT8U + * @param fastPollUpdatePeriod INT8U + * @param fastPollModeEndtime UTC_TIME + * @param duration INT8U + */ +#define emberAfFillCommandSimple \ + MeteringClusterRequestFastPollModeResponse(appliedUpdatePeriod, fastPollUpdatePeriod, fastPollModeEndtime, duration) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_REQUEST_FAST_POLL_MODE_RESPONSE_COMMAND_ID, "uuuu", appliedUpdatePeriod, \ + fastPollUpdatePeriod, fastPollModeEndtime, duration); + +/** @brief Command description for ScheduleSnapshotResponse + * + * Command: ScheduleSnapshotResponse + * @param issuerEventId INT32U + * @param issuerEventId INT32U + * @param snapshotResponsePayload SnapshotResponsePayload [] + * @param snapshotResponsePayloadLen int + * @param commandIndex INT8U + * @param commandCount INT8U + * @param snapshotSchedulePayload SnapshotSchedulePayload [] + * @param snapshotSchedulePayloadLen int + */ +#define emberAfFillCommandSimple \ + MeteringClusterScheduleSnapshotResponse(issuerEventId, issuerEventId, snapshotResponsePayload, snapshotResponsePayloadLen, \ + commandIndex, commandCount, snapshotSchedulePayload, snapshotSchedulePayloadLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_SCHEDULE_SNAPSHOT_RESPONSE_COMMAND_ID, "uubuub", issuerEventId, issuerEventId, \ + snapshotResponsePayload, snapshotResponsePayloadLen, commandIndex, commandCount, \ + snapshotSchedulePayload, snapshotSchedulePayloadLen); + +/** @brief Command description for TakeSnapshotResponse + * + * Command: TakeSnapshotResponse + * @param snapshotId INT32U + * @param snapshotCause SnapshotCause + * @param snapshotConfirmation SnapshotConfirmation + */ +#define emberAfFillCommandSimple \ + MeteringClusterTakeSnapshotResponse(snapshotId, snapshotCause, snapshotConfirmation) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_TAKE_SNAPSHOT_RESPONSE_COMMAND_ID, "uuu", snapshotId, snapshotCause, snapshotConfirmation); + +/** @brief Command description for PublishSnapshot + * + * Command: PublishSnapshot + * @param snapshotId INT32U + * @param earliestStartTime UTC_TIME + * @param snapshotTime UTC_TIME + * @param latestEndTime UTC_TIME + * @param totalSnapshotsFound INT8U + * @param snapshotOffset INT8U + * @param commandIndex INT8U + * @param snapshotCause SnapshotCause + * @param totalCommands INT8U + * @param snapshotCause SnapshotCause + * @param snapshotPayloadType SnapshotPayloadType + * @param snapshotPayload INT8U [] + * @param snapshotPayloadLen int + */ +#define emberAfFillCommandSimple \ + MeteringClusterPublishSnapshot(snapshotId, earliestStartTime, snapshotTime, latestEndTime, totalSnapshotsFound, \ + snapshotOffset, commandIndex, snapshotCause, totalCommands, snapshotCause, snapshotPayloadType, \ + snapshotPayload, snapshotPayloadLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_PUBLISH_SNAPSHOT_COMMAND_ID, "uuuuuuuuuuub", snapshotId, earliestStartTime, snapshotTime, \ + latestEndTime, totalSnapshotsFound, snapshotOffset, commandIndex, snapshotCause, totalCommands, \ + snapshotCause, snapshotPayloadType, snapshotPayload, snapshotPayloadLen); + +/** @brief Command description for GetSampledDataResponse + * + * Command: GetSampledDataResponse + * @param sampleId INT16U + * @param issuerEventId INT32U + * @param sampleStartTime UTC_TIME + * @param startSamplingTime UTC_TIME + * @param sampleType SampleType + * @param sampleType SampleType + * @param sampleRequestInterval INT16U + * @param sampleRequestInterval INT16U + * @param numberOfSamples INT16U + * @param maxNumberOfSamples INT16U + * @param samples INT24U [] + * @param samplesLen int + */ +#define emberAfFillCommandSimple \ + MeteringClusterGetSampledDataResponse(sampleId, issuerEventId, sampleStartTime, startSamplingTime, sampleType, sampleType, \ + sampleRequestInterval, sampleRequestInterval, numberOfSamples, maxNumberOfSamples, \ + samples, samplesLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_GET_SAMPLED_DATA_RESPONSE_COMMAND_ID, "uuuuuuuuuub", sampleId, issuerEventId, \ + sampleStartTime, startSamplingTime, sampleType, sampleType, sampleRequestInterval, \ + sampleRequestInterval, numberOfSamples, maxNumberOfSamples, samples, samplesLen); + +/** @brief Command description for ConfigureMirror + * + * Command: ConfigureMirror + * @param issuerEventId INT32U + * @param sampleId INT16U + * @param reportingInterval INT24U + * @param earliestSampleTime UTC_TIME + * @param mirrorNotificationReporting BOOLEAN + * @param sampleType SampleType + * @param notificationScheme INT8U + * @param numberOfSamples INT16U + */ +#define emberAfFillCommandSimple \ + MeteringClusterConfigureMirror(issuerEventId, sampleId, reportingInterval, earliestSampleTime, mirrorNotificationReporting, \ + sampleType, notificationScheme, numberOfSamples) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_CONFIGURE_MIRROR_COMMAND_ID, "uuuuuuuu", issuerEventId, sampleId, reportingInterval, \ + earliestSampleTime, mirrorNotificationReporting, sampleType, notificationScheme, \ + numberOfSamples); + +/** @brief Command description for ConfigureNotificationScheme + * + * Command: ConfigureNotificationScheme + * @param issuerEventId INT32U + * @param notificationScheme INT8U + * @param notificationScheme INT8U + * @param notificationFlags BITMAP32 [] + * @param notificationFlagsLen int + * @param notificationFlagOrder BITMAP32 + */ +#define emberAfFillCommandSimple \ + MeteringClusterConfigureNotificationScheme(issuerEventId, notificationScheme, notificationScheme, notificationFlags, \ + notificationFlagsLen, notificationFlagOrder) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_CONFIGURE_NOTIFICATION_SCHEME_COMMAND_ID, "uuubu", issuerEventId, notificationScheme, \ + notificationScheme, notificationFlags, notificationFlagsLen, notificationFlagOrder); + +/** @brief Command description for ConfigureNotificationFlags + * + * Command: ConfigureNotificationFlags + * @param issuerEventId INT32U + * @param providerId INT32U + * @param notificationScheme INT8U + * @param issuerEventId INT32U + * @param notificationFlagAttributeId INT16U + * @param clusterId INT16U + * @param manufacturerCode INT16U + * @param numberOfCommands INT8U + * @param commandIds INT8U [] + * @param commandIdsLen int + */ +#define emberAfFillCommandSimple \ + MeteringClusterConfigureNotificationFlags(issuerEventId, providerId, notificationScheme, issuerEventId, \ + notificationFlagAttributeId, clusterId, manufacturerCode, numberOfCommands, \ + commandIds, commandIdsLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_CONFIGURE_NOTIFICATION_FLAGS_COMMAND_ID, "uuuuuuuub", issuerEventId, providerId, \ + notificationScheme, issuerEventId, notificationFlagAttributeId, clusterId, manufacturerCode, \ + numberOfCommands, commandIds, commandIdsLen); + +/** @brief Command description for GetNotifiedMessage + * + * Command: GetNotifiedMessage + * @param notificationScheme INT8U + * @param providerId INT32U + * @param notificationFlagAttributeId INT16U + * @param issuerEventId INT32U + * @param notificationFlagsN BITMAP32 + * @param requestDateTime UTC_TIME + * @param implementationDateTime UTC_TIME + * @param proposedSupplyStatus MeteringSupplyStatus + * @param supplyControlBits SupplyControlBits + */ +#define emberAfFillCommandSimple \ + MeteringClusterGetNotifiedMessage(notificationScheme, providerId, notificationFlagAttributeId, issuerEventId, \ + notificationFlagsN, requestDateTime, implementationDateTime, proposedSupplyStatus, \ + supplyControlBits) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_GET_NOTIFIED_MESSAGE_COMMAND_ID, "uuuuuuuuu", notificationScheme, providerId, \ + notificationFlagAttributeId, issuerEventId, notificationFlagsN, requestDateTime, \ + implementationDateTime, proposedSupplyStatus, supplyControlBits); + +/** @brief Command description for SupplyStatusResponse + * + * Command: SupplyStatusResponse + * @param providerId INT32U + * @param proposedSupplyStatus ProposedSupplyStatus + * @param issuerEventId INT32U + * @param implementationDateTime UTC_TIME + * @param supplyStatus MeteringSupplyStatus + */ +#define emberAfFillCommandSimple \ + MeteringClusterSupplyStatusResponse(providerId, proposedSupplyStatus, issuerEventId, implementationDateTime, supplyStatus) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_SUPPLY_STATUS_RESPONSE_COMMAND_ID, "uuuuu", providerId, proposedSupplyStatus, issuerEventId, \ + implementationDateTime, supplyStatus); + +/** @brief Command description for StartSamplingResponse + * + * Command: StartSamplingResponse + * @param sampleId INT16U + * @param issuerEventId INT32U + * @param supplyTamperState SupplyStatus + * @param supplyDepletionState SupplyStatus + * @param supplyUncontrolledFlowState SupplyStatus + * @param loadLimitSupplyState SupplyStatus + */ +#define emberAfFillCommandSimple \ + MeteringClusterStartSamplingResponse(sampleId, issuerEventId, supplyTamperState, supplyDepletionState, \ + supplyUncontrolledFlowState, loadLimitSupplyState) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_START_SAMPLING_RESPONSE_COMMAND_ID, "uuuuuu", sampleId, issuerEventId, supplyTamperState, \ + supplyDepletionState, supplyUncontrolledFlowState, loadLimitSupplyState); + +/** @brief Command description for SetUncontrolledFlowThreshold + * + * Command: SetUncontrolledFlowThreshold + * @param providerId INT32U + * @param issuerEventId INT32U + * @param uncontrolledFlowThreshold INT16U + * @param unitOfMeasure AmiUnitOfMeasure + * @param multiplier INT16U + * @param divisor INT16U + * @param stabilisationPeriod INT8U + * @param measurementPeriod INT16U + */ +#define emberAfFillCommandSimple \ + MeteringClusterSetUncontrolledFlowThreshold(providerId, issuerEventId, uncontrolledFlowThreshold, unitOfMeasure, multiplier, \ + divisor, stabilisationPeriod, measurementPeriod) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_SET_UNCONTROLLED_FLOW_THRESHOLD_COMMAND_ID, "uuuuuuuu", providerId, issuerEventId, \ + uncontrolledFlowThreshold, unitOfMeasure, multiplier, divisor, stabilisationPeriod, \ + measurementPeriod); + +/** @brief Command description for GetLastMessage + * + * Command: GetLastMessage + * @param messageId INT32U + * @param messageControl MessagingControlMask + * @param startTime UTC_TIME + * @param durationInMinutes INT16U + * @param message CHAR_STRING + * @param optionalExtendedMessageControl MessagingExtendedControlMask + */ +#define emberAfFillCommandMessagingClusterGetLastMessage(messageId, messageControl, startTime, durationInMinutes, message, \ + optionalExtendedMessageControl) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_GET_LAST_MESSAGE_COMMAND_ID, "uuuuuu", messageId, messageControl, startTime, durationInMinutes, \ + message, optionalExtendedMessageControl); + +/** @brief Command description for CancelMessage + * + * Command: CancelMessage + * @param messageId INT32U + * @param messageId INT32U + * @param messageControl MessagingControlMask + * @param confirmationTime UTC_TIME + * @param messageConfirmationControl BITMAP8 + * @param messageResponse OCTET_STRING + */ +#define emberAfFillCommandMessagingClusterCancelMessage(messageId, messageId, messageControl, confirmationTime, \ + messageConfirmationControl, messageResponse) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_CANCEL_MESSAGE_COMMAND_ID, "uuuuuu", messageId, messageId, messageControl, confirmationTime, \ + messageConfirmationControl, messageResponse); + +/** @brief Command description for DisplayProtectedMessage + * + * Command: DisplayProtectedMessage + * @param messageId INT32U + * @param earliestImplementationTime UTC_TIME + * @param messageControl MessagingControlMask + * @param startTime UTC_TIME + * @param durationInMinutes INT16U + * @param message CHAR_STRING + * @param optionalExtendedMessageControl MessagingExtendedControlMask + */ +#define emberAfFillCommandMessagingClusterDisplayProtectedMessage( \ + messageId, earliestImplementationTime, messageControl, startTime, durationInMinutes, message, optionalExtendedMessageControl) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_DISPLAY_PROTECTED_MESSAGE_COMMAND_ID, "uuuuuuu", messageId, earliestImplementationTime, \ + messageControl, startTime, durationInMinutes, message, optionalExtendedMessageControl); + +/** @brief Command description for CancelAllMessages + * + * Command: CancelAllMessages + * @param implementationDateTime UTC_TIME + */ +#define emberAfFillCommandMessagingClusterCancelAllMessages(implementationDateTime) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_CANCEL_ALL_MESSAGES_COMMAND_ID, "u", implementationDateTime); + +/** @brief Command description for RequestTunnel + * + * Command: RequestTunnel + * @param protocolId INT8U + * @param tunnelId INT16U + * @param manufacturerCode INT16U + * @param tunnelStatus TunnelingTunnelStatus + * @param flowControlSupport BOOLEAN + * @param maximumIncomingTransferSize INT16U + * @param maximumIncomingTransferSize INT16U + */ +#define emberAfFillCommandTunnelingClusterRequestTunnel(protocolId, tunnelId, manufacturerCode, tunnelStatus, flowControlSupport, \ + maximumIncomingTransferSize, maximumIncomingTransferSize) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_REQUEST_TUNNEL_COMMAND_ID, "uuuuuuu", protocolId, tunnelId, manufacturerCode, tunnelStatus, \ + flowControlSupport, maximumIncomingTransferSize, maximumIncomingTransferSize); + +/** @brief Command description for CloseTunnel + * + * Command: CloseTunnel + * @param tunnelId INT16U + * @param tunnelId INT16U + * @param data INT8U [] + * @param dataLen int + */ +#define emberAfFillCommandTunnelingClusterCloseTunnel(tunnelId, tunnelId, data, dataLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_CLOSE_TUNNEL_COMMAND_ID, "uub", tunnelId, tunnelId, data, dataLen); + +/** @brief Command description for TransferDataClientToServer + * + * Command: TransferDataClientToServer + * @param tunnelId INT16U + * @param tunnelId INT16U + * @param data INT8U [] + * @param dataLen int + * @param transferDataStatus TunnelingTransferDataStatus + */ +#define emberAfFillCommandTunnelingClusterTransferDataClientToServer(tunnelId, tunnelId, data, dataLen, transferDataStatus) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_TRANSFER_DATA_CLIENT_TO_SERVER_COMMAND_ID, "uubu", tunnelId, tunnelId, data, dataLen, \ + transferDataStatus); + +/** @brief Command description for TransferDataErrorClientToServer + * + * Command: TransferDataErrorClientToServer + * @param tunnelId INT16U + * @param tunnelId INT16U + * @param transferDataStatus TunnelingTransferDataStatus + * @param numberOfBytesLeft INT16U + */ +#define emberAfFillCommandTunnelingClusterTransferDataErrorClientToServer(tunnelId, tunnelId, transferDataStatus, \ + numberOfBytesLeft) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_TRANSFER_DATA_ERROR_CLIENT_TO_SERVER_COMMAND_ID, "uuuu", tunnelId, tunnelId, transferDataStatus, \ + numberOfBytesLeft); + +/** @brief Command description for AckTransferDataClientToServer + * + * Command: AckTransferDataClientToServer + * @param tunnelId INT16U + * @param tunnelId INT16U + * @param numberOfBytesLeft INT16U + * @param numberOfOctetsLeft INT16U + */ +#define emberAfFillCommandTunnelingClusterAckTransferDataClientToServer(tunnelId, tunnelId, numberOfBytesLeft, numberOfOctetsLeft) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_ACK_TRANSFER_DATA_CLIENT_TO_SERVER_COMMAND_ID, "uuuu", tunnelId, tunnelId, numberOfBytesLeft, \ + numberOfOctetsLeft); + +/** @brief Command description for ReadyDataClientToServer + * + * Command: ReadyDataClientToServer + * @param tunnelId INT16U + * @param protocolListComplete BOOLEAN + * @param numberOfOctetsLeft INT16U + * @param protocolCount INT8U + * @param protocolList Protocol [] + * @param protocolListLen int + */ +#define emberAfFillCommandTunnelingClusterReadyDataClientToServer(tunnelId, protocolListComplete, numberOfOctetsLeft, \ + protocolCount, protocolList, protocolListLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_READY_DATA_CLIENT_TO_SERVER_COMMAND_ID, "uuuub", tunnelId, protocolListComplete, \ + numberOfOctetsLeft, protocolCount, protocolList, protocolListLen); + +/** @brief Command description for GetSupportedTunnelProtocols + * + * Command: GetSupportedTunnelProtocols + * @param protocolOffset INT8U + * @param tunnelId INT16U + */ +#define emberAfFillCommandTunnelingClusterGetSupportedTunnelProtocols(protocolOffset, tunnelId) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_GET_SUPPORTED_TUNNEL_PROTOCOLS_COMMAND_ID, "uu", protocolOffset, tunnelId); + +/** @brief Command description for SelectAvailableEmergencyCredit + * + * Command: SelectAvailableEmergencyCredit + * @param commandIssueDateTime UTC_TIME + * @param originatingDevice OriginatingDevice + * @param siteId OCTET_STRING + * @param meterSerialNumber OCTET_STRING + */ +#define emberAfFillCommandPrepaymentClusterSelectAvailableEmergencyCredit(commandIssueDateTime, originatingDevice, siteId, \ + meterSerialNumber) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_SELECT_AVAILABLE_EMERGENCY_CREDIT_COMMAND_ID, "uuuu", commandIssueDateTime, originatingDevice, \ + siteId, meterSerialNumber); + +/** @brief Command description for PublishPrepaySnapshot + * + * Command: PublishPrepaySnapshot + * @param snapshotId INT32U + * @param snapshotTime UTC_TIME + * @param totalSnapshotsFound INT8U + * @param commandIndex INT8U + * @param totalNumberOfCommands INT8U + * @param snapshotCause PrepaySnapshotPayloadCause + * @param snapshotPayloadType PrepaySnapshotPayloadType + * @param snapshotPayload INT8U [] + * @param snapshotPayloadLen int + */ +#define emberAfFillCommandPrepaymentClusterPublishPrepaySnapshot(snapshotId, snapshotTime, totalSnapshotsFound, commandIndex, \ + totalNumberOfCommands, snapshotCause, snapshotPayloadType, \ + snapshotPayload, snapshotPayloadLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_PUBLISH_PREPAY_SNAPSHOT_COMMAND_ID, "uuuuuuub", snapshotId, snapshotTime, totalSnapshotsFound, \ + commandIndex, totalNumberOfCommands, snapshotCause, snapshotPayloadType, snapshotPayload, \ + snapshotPayloadLen); + +/** @brief Command description for ChangeDebt + * + * Command: ChangeDebt + * @param issuerEventId INT32U + * @param friendlyCredit FriendlyCredit + * @param debtLabel OCTET_STRING + * @param friendlyCreditCalendarId INT32U + * @param debtAmount INT32U + * @param emergencyCreditLimit INT32U + * @param debtRecoveryMethod DebtRecoveryMethod + * @param emergencyCreditThreshold INT32U + * @param debtAmountType DebtAmountType + * @param debtRecoveryStartTime UTC_TIME + * @param debtRecoveryCollectionTime INT16U + * @param debtRecoveryFrequency DebtRecoveryFrequency + * @param debtRecoveryAmount INT32U + * @param debtRecoveryBalancePercentage INT16U + */ +#define emberAfFillCommandPrepaymentClusterChangeDebt( \ + issuerEventId, friendlyCredit, debtLabel, friendlyCreditCalendarId, debtAmount, emergencyCreditLimit, debtRecoveryMethod, \ + emergencyCreditThreshold, debtAmountType, debtRecoveryStartTime, debtRecoveryCollectionTime, debtRecoveryFrequency, \ + debtRecoveryAmount, debtRecoveryBalancePercentage) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_CHANGE_DEBT_COMMAND_ID, "uuuuuuuuuuuuuu", issuerEventId, friendlyCredit, debtLabel, \ + friendlyCreditCalendarId, debtAmount, emergencyCreditLimit, debtRecoveryMethod, \ + emergencyCreditThreshold, debtAmountType, debtRecoveryStartTime, debtRecoveryCollectionTime, \ + debtRecoveryFrequency, debtRecoveryAmount, debtRecoveryBalancePercentage); + +/** @brief Command description for EmergencyCreditSetup + * + * Command: EmergencyCreditSetup + * @param issuerEventId INT32U + * @param resultType ResultType + * @param startTime UTC_TIME + * @param topUpValue INT32U + * @param emergencyCreditLimit INT32U + * @param sourceOfTopUp OriginatingDevice + * @param emergencyCreditThreshold INT32U + * @param creditRemaining INT32U + */ +#define emberAfFillCommandPrepaymentClusterEmergencyCreditSetup(issuerEventId, resultType, startTime, topUpValue, \ + emergencyCreditLimit, sourceOfTopUp, emergencyCreditThreshold, \ + creditRemaining) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_EMERGENCY_CREDIT_SETUP_COMMAND_ID, "uuuuuuuu", issuerEventId, resultType, startTime, topUpValue, \ + emergencyCreditLimit, sourceOfTopUp, emergencyCreditThreshold, creditRemaining); + +/** @brief Command description for ConsumerTopUp + * + * Command: ConsumerTopUp + * @param originatingDevice OriginatingDevice + * @param topUpCode OCTET_STRING + */ +#define emberAfFillCommandPrepaymentClusterConsumerTopUp(originatingDevice, topUpCode) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_CONSUMER_TOP_UP_COMMAND_ID, "uu", originatingDevice, topUpCode); + +/** @brief Command description for CreditAdjustment + * + * Command: CreditAdjustment + * @param issuerEventId INT32U + * @param commandIndex INT8U + * @param startTime UTC_TIME + * @param totalNumberOfCommands INT8U + * @param creditAdjustmentType CreditAdjustmentType + * @param topUpPayload TopUpPayload [] + * @param topUpPayloadLen int + * @param creditAdjustmentValue INT32U + */ +#define emberAfFillCommandPrepaymentClusterCreditAdjustment(issuerEventId, commandIndex, startTime, totalNumberOfCommands, \ + creditAdjustmentType, topUpPayload, topUpPayloadLen, \ + creditAdjustmentValue) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_CREDIT_ADJUSTMENT_COMMAND_ID, "uuuuubu", issuerEventId, commandIndex, startTime, \ + totalNumberOfCommands, creditAdjustmentType, topUpPayload, topUpPayloadLen, creditAdjustmentValue); + +/** @brief Command description for ChangePaymentMode + * + * Command: ChangePaymentMode + * @param providerId INT32U + * @param commandIndex INT8U + * @param issuerEventId INT32U + * @param totalNumberOfCommands INT8U + * @param implementationDateTime UTC_TIME + * @param debtPayload DebtPayload [] + * @param debtPayloadLen int + * @param proposedPaymentControlConfiguration PaymentControlConfiguration + * @param cutOffValue INT32U + */ +#define emberAfFillCommandPrepaymentClusterChangePaymentMode(providerId, commandIndex, issuerEventId, totalNumberOfCommands, \ + implementationDateTime, debtPayload, debtPayloadLen, \ + proposedPaymentControlConfiguration, cutOffValue) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_CHANGE_PAYMENT_MODE_COMMAND_ID, "uuuuubuu", providerId, commandIndex, issuerEventId, \ + totalNumberOfCommands, implementationDateTime, debtPayload, debtPayloadLen, \ + proposedPaymentControlConfiguration, cutOffValue); + +/** @brief Command description for GetPrepaySnapshot + * + * Command: GetPrepaySnapshot + * @param earliestStartTime UTC_TIME + * @param latestEndTime UTC_TIME + * @param snapshotOffset INT8U + * @param snapshotCause PrepaySnapshotPayloadCause + */ +#define emberAfFillCommandPrepaymentClusterGetPrepaySnapshot(earliestStartTime, latestEndTime, snapshotOffset, snapshotCause) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_GET_PREPAY_SNAPSHOT_COMMAND_ID, "uuuu", earliestStartTime, latestEndTime, snapshotOffset, \ + snapshotCause); + +/** @brief Command description for GetTopUpLog + * + * Command: GetTopUpLog + * @param latestEndTime UTC_TIME + * @param numberOfRecords INT8U + */ +#define emberAfFillCommandPrepaymentClusterGetTopUpLog(latestEndTime, numberOfRecords) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_GET_TOP_UP_LOG_COMMAND_ID, "uu", latestEndTime, numberOfRecords); + +/** @brief Command description for SetLowCreditWarningLevel + * + * Command: SetLowCreditWarningLevel + * @param lowCreditWarningLevel INT32U + */ +#define emberAfFillCommandPrepaymentClusterSetLowCreditWarningLevel(lowCreditWarningLevel) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_SET_LOW_CREDIT_WARNING_LEVEL_COMMAND_ID, "u", lowCreditWarningLevel); + +/** @brief Command description for GetDebtRepaymentLog + * + * Command: GetDebtRepaymentLog + * @param latestEndTime UTC_TIME + * @param numberOfDebts INT8U + * @param debtType RepaymentDebtType + */ +#define emberAfFillCommandPrepaymentClusterGetDebtRepaymentLog(latestEndTime, numberOfDebts, debtType) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_GET_DEBT_REPAYMENT_LOG_COMMAND_ID, "uuu", latestEndTime, numberOfDebts, debtType); + +/** @brief Command description for SetMaximumCreditLimit + * + * Command: SetMaximumCreditLimit + * @param providerId INT32U + * @param issuerEventId INT32U + * @param implementationDateTime UTC_TIME + * @param maximumCreditLevel INT32U + * @param maximumCreditPerTopUp INT32U + */ +#define emberAfFillCommandPrepaymentClusterSetMaximumCreditLimit(providerId, issuerEventId, implementationDateTime, \ + maximumCreditLevel, maximumCreditPerTopUp) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_SET_MAXIMUM_CREDIT_LIMIT_COMMAND_ID, "uuuuu", providerId, issuerEventId, implementationDateTime, \ + maximumCreditLevel, maximumCreditPerTopUp); + +/** @brief Command description for SetOverallDebtCap + * + * Command: SetOverallDebtCap + * @param providerId INT32U + * @param issuerEventId INT32U + * @param implementationDateTime UTC_TIME + * @param overallDebtCap INT32U + */ +#define emberAfFillCommandPrepaymentClusterSetOverallDebtCap(providerId, issuerEventId, implementationDateTime, overallDebtCap) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_SET_OVERALL_DEBT_CAP_COMMAND_ID, "uuuu", providerId, issuerEventId, implementationDateTime, \ + overallDebtCap); + +/** @brief Command description for ReportEventStatus + * + * Command: ReportEventStatus + * @param issuerEventId INT32U + * @param issuerEventId INT32U + * @param eventStatus AmiEventStatus + * @param deviceClass AmiDeviceClass + * @param eventStatusTime UTC_TIME + * @param utilityEnrollmentGroup INT8U + * @param criticalityLevelApplied AmiCriticalityLevel + * @param actionRequired INT8U + * @param coolingTemperatureSetPointApplied INT16U + * @param heatingTemperatureSetPointApplied INT16U + * @param averageLoadAdjustmentPercentageApplied INT8S + * @param dutyCycleApplied INT8U + * @param eventControl AmiEventControl + */ +#define emberAfFillCommandEnergy \ + ManagementClusterReportEventStatus(issuerEventId, issuerEventId, eventStatus, deviceClass, eventStatusTime, \ + utilityEnrollmentGroup, criticalityLevelApplied, actionRequired, \ + coolingTemperatureSetPointApplied, heatingTemperatureSetPointApplied, \ + averageLoadAdjustmentPercentageApplied, dutyCycleApplied, eventControl) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_REPORT_EVENT_STATUS_COMMAND_ID, "uuuuuuuuuuuuu", issuerEventId, issuerEventId, eventStatus, \ + deviceClass, eventStatusTime, utilityEnrollmentGroup, criticalityLevelApplied, actionRequired, \ + coolingTemperatureSetPointApplied, heatingTemperatureSetPointApplied, \ + averageLoadAdjustmentPercentageApplied, dutyCycleApplied, eventControl); + +/** @brief Command description for PublishCalendar + * + * Command: PublishCalendar + * @param providerId INT32U + * @param earliestStartTime UTC_TIME + * @param issuerEventId INT32U + * @param minIssuerEventId INT32U + * @param issuerCalendarId INT32U + * @param numberOfCalendars INT8U + * @param startTime UTC_TIME + * @param calendarType CalendarType + * @param calendarType CalendarType + * @param providerId INT32U + * @param calendarTimeReference CalendarTimeReference + * @param calendarName OCTET_STRING + * @param numberOfSeasons INT8U + * @param numberOfWeekProfiles INT8U + * @param numberOfDayProfiles INT8U + */ +#define emberAfFillCommandCalendarClusterPublishCalendar( \ + providerId, earliestStartTime, issuerEventId, minIssuerEventId, issuerCalendarId, numberOfCalendars, startTime, calendarType, \ + calendarType, providerId, calendarTimeReference, calendarName, numberOfSeasons, numberOfWeekProfiles, numberOfDayProfiles) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_PUBLISH_CALENDAR_COMMAND_ID, "uuuuuuuuuuuuuuu", providerId, earliestStartTime, issuerEventId, \ + minIssuerEventId, issuerCalendarId, numberOfCalendars, startTime, calendarType, calendarType, \ + providerId, calendarTimeReference, calendarName, numberOfSeasons, numberOfWeekProfiles, \ + numberOfDayProfiles); + +/** @brief Command description for PublishDayProfile + * + * Command: PublishDayProfile + * @param providerId INT32U + * @param providerId INT32U + * @param issuerEventId INT32U + * @param issuerCalendarId INT32U + * @param issuerCalendarId INT32U + * @param startDayId INT8U + * @param dayId INT8U + * @param numberOfDays INT8U + * @param totalNumberOfScheduleEntries INT8U + * @param commandIndex INT8U + * @param totalNumberOfCommands INT8U + * @param calendarType CalendarType + * @param dayScheduleEntries ScheduleEntry [] + * @param dayScheduleEntriesLen int + */ +#define emberAfFillCommandCalendarClusterPublishDayProfile( \ + providerId, providerId, issuerEventId, issuerCalendarId, issuerCalendarId, startDayId, dayId, numberOfDays, \ + totalNumberOfScheduleEntries, commandIndex, totalNumberOfCommands, calendarType, dayScheduleEntries, dayScheduleEntriesLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_PUBLISH_DAY_PROFILE_COMMAND_ID, "uuuuuuuuuuuub", providerId, providerId, issuerEventId, \ + issuerCalendarId, issuerCalendarId, startDayId, dayId, numberOfDays, totalNumberOfScheduleEntries, \ + commandIndex, totalNumberOfCommands, calendarType, dayScheduleEntries, dayScheduleEntriesLen); + +/** @brief Command description for PublishWeekProfile + * + * Command: PublishWeekProfile + * @param providerId INT32U + * @param providerId INT32U + * @param issuerEventId INT32U + * @param issuerCalendarId INT32U + * @param issuerCalendarId INT32U + * @param startWeekId INT8U + * @param weekId INT8U + * @param numberOfWeeks INT8U + * @param dayIdRefMonday INT8U + * @param dayIdRefTuesday INT8U + * @param dayIdRefWednesday INT8U + * @param dayIdRefThursday INT8U + * @param dayIdRefFriday INT8U + * @param dayIdRefSaturday INT8U + * @param dayIdRefSunday INT8U + */ +#define emberAfFillCommandCalendarClusterPublishWeekProfile( \ + providerId, providerId, issuerEventId, issuerCalendarId, issuerCalendarId, startWeekId, weekId, numberOfWeeks, dayIdRefMonday, \ + dayIdRefTuesday, dayIdRefWednesday, dayIdRefThursday, dayIdRefFriday, dayIdRefSaturday, dayIdRefSunday) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_PUBLISH_WEEK_PROFILE_COMMAND_ID, "uuuuuuuuuuuuuuu", providerId, providerId, issuerEventId, \ + issuerCalendarId, issuerCalendarId, startWeekId, weekId, numberOfWeeks, dayIdRefMonday, \ + dayIdRefTuesday, dayIdRefWednesday, dayIdRefThursday, dayIdRefFriday, dayIdRefSaturday, \ + dayIdRefSunday); + +/** @brief Command description for PublishSeasons + * + * Command: PublishSeasons + * @param providerId INT32U + * @param providerId INT32U + * @param issuerEventId INT32U + * @param issuerCalendarId INT32U + * @param issuerCalendarId INT32U + * @param commandIndex INT8U + * @param totalNumberOfCommands INT8U + * @param seasonEntries SeasonEntry [] + * @param seasonEntriesLen int + */ +#define emberAfFillCommandCalendarClusterPublishSeasons(providerId, providerId, issuerEventId, issuerCalendarId, issuerCalendarId, \ + commandIndex, totalNumberOfCommands, seasonEntries, seasonEntriesLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_PUBLISH_SEASONS_COMMAND_ID, "uuuuuuub", providerId, providerId, issuerEventId, issuerCalendarId, \ + issuerCalendarId, commandIndex, totalNumberOfCommands, seasonEntries, seasonEntriesLen); + +/** @brief Command description for PublishSpecialDays + * + * Command: PublishSpecialDays + * @param providerId INT32U + * @param startTime UTC_TIME + * @param issuerEventId INT32U + * @param numberOfEvents INT8U + * @param issuerCalendarId INT32U + * @param calendarType CalendarType + * @param startTime UTC_TIME + * @param providerId INT32U + * @param calendarType CalendarType + * @param issuerCalendarId INT32U + * @param totalNumberOfSpecialDays INT8U + * @param commandIndex INT8U + * @param totalNumberOfCommands INT8U + * @param specialDayEntries SpecialDay [] + * @param specialDayEntriesLen int + */ +#define emberAfFillCommandCalendarClusterPublishSpecialDays( \ + providerId, startTime, issuerEventId, numberOfEvents, issuerCalendarId, calendarType, startTime, providerId, calendarType, \ + issuerCalendarId, totalNumberOfSpecialDays, commandIndex, totalNumberOfCommands, specialDayEntries, specialDayEntriesLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_PUBLISH_SPECIAL_DAYS_COMMAND_ID, "uuuuuuuuuuuuub", providerId, startTime, issuerEventId, \ + numberOfEvents, issuerCalendarId, calendarType, startTime, providerId, calendarType, \ + issuerCalendarId, totalNumberOfSpecialDays, commandIndex, totalNumberOfCommands, specialDayEntries, \ + specialDayEntriesLen); + +/** @brief Command description for GetCalendarCancellation + * + * Command: GetCalendarCancellation + * @param providerId INT32U + * @param issuerCalendarId INT32U + * @param calendarType CalendarType + */ +#define emberAfFillCommandCalendarClusterGetCalendarCancellation(providerId, issuerCalendarId, calendarType) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_GET_CALENDAR_CANCELLATION_COMMAND_ID, "uuu", providerId, issuerCalendarId, calendarType); + +/** @brief Command description for GetChangeOfTenancy + * + * Command: GetChangeOfTenancy + * @param providerId INT32U + * @param issuerEventId INT32U + * @param tariffType TariffType + * @param implementationDateTime UTC_TIME + * @param proposedTenancyChangeControl ProposedChangeControl + */ +#define emberAfFillCommandDevice \ + ManagementClusterGetChangeOfTenancy(providerId, issuerEventId, tariffType, implementationDateTime, \ + proposedTenancyChangeControl) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_GET_CHANGE_OF_TENANCY_COMMAND_ID, "uuuuu", providerId, issuerEventId, tariffType, \ + implementationDateTime, proposedTenancyChangeControl); + +/** @brief Command description for GetChangeOfSupplier + * + * Command: GetChangeOfSupplier + * @param currentProviderId INT32U + * @param issuerEventId INT32U + * @param tariffType TariffType + * @param proposedProviderId INT32U + * @param providerChangeImplementationTime UTC_TIME + * @param providerChangeControl ProposedChangeControl + * @param proposedProviderName OCTET_STRING + * @param proposedProviderContactDetails OCTET_STRING + */ +#define emberAfFillCommandDevice \ + ManagementClusterGetChangeOfSupplier(currentProviderId, issuerEventId, tariffType, proposedProviderId, \ + providerChangeImplementationTime, providerChangeControl, proposedProviderName, \ + proposedProviderContactDetails) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_GET_CHANGE_OF_SUPPLIER_COMMAND_ID, "uuuuuuuu", currentProviderId, issuerEventId, tariffType, \ + proposedProviderId, providerChangeImplementationTime, providerChangeControl, \ + proposedProviderName, proposedProviderContactDetails); + +/** @brief Command description for RequestNewPassword + * + * Command: RequestNewPassword + * @param passwordType PasswordType + * @param issuerEventId INT32U + * @param implementationDateTime UTC_TIME + * @param durationInMinutes INT16U + * @param passwordType PasswordType + * @param password OCTET_STRING + */ +#define emberAfFillCommandDevice \ + ManagementClusterRequestNewPassword(passwordType, issuerEventId, implementationDateTime, durationInMinutes, passwordType, \ + password) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_REQUEST_NEW_PASSWORD_COMMAND_ID, "uuuuuu", passwordType, issuerEventId, \ + implementationDateTime, durationInMinutes, passwordType, password); + +/** @brief Command description for GetSiteId + * + * Command: GetSiteId + * @param issuerEventId INT32U + * @param siteIdTime UTC_TIME + * @param providerId INT32U + * @param siteId OCTET_STRING + */ +#define emberAfFillCommandDevice \ + ManagementClusterGetSiteId(issuerEventId, siteIdTime, providerId, siteId) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_GET_SITE_ID_COMMAND_ID, "uuuu", issuerEventId, siteIdTime, providerId, siteId); + +/** @brief Command description for ReportEventConfiguration + * + * Command: ReportEventConfiguration + * @param commandIndex INT8U + * @param issuerEventId INT32U + * @param totalCommands INT8U + * @param startDateTime UTC_TIME + * @param eventConfigurationPayload EventConfigurationPayload [] + * @param eventConfigurationPayloadLen int + * @param eventConfiguration EventConfiguration + * @param configurationControl EventConfigurationControl + * @param eventConfigurationPayload INT8U [] + * @param eventConfigurationPayloadLen int + */ +#define emberAfFillCommandDevice \ + ManagementClusterReportEventConfiguration(commandIndex, issuerEventId, totalCommands, startDateTime, \ + eventConfigurationPayload, eventConfigurationPayloadLen, eventConfiguration, \ + configurationControl, eventConfigurationPayload, eventConfigurationPayloadLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_REPORT_EVENT_CONFIGURATION_COMMAND_ID, "uuuubuub", commandIndex, issuerEventId, \ + totalCommands, startDateTime, eventConfigurationPayload, eventConfigurationPayloadLen, \ + eventConfiguration, configurationControl, eventConfigurationPayload, \ + eventConfigurationPayloadLen); + +/** @brief Command description for GetCIN + * + * Command: GetCIN + * @param eventId INT16U + */ +#define emberAfFillCommandDevice \ + ManagementClusterGetCIN(eventId) emberAfFillExternalBuffer(mask, \ + \ + ZCL_GET_CIN_COMMAND_ID, "u", eventId); + +/** @brief Command description for UpdateCIN + * + * Command: UpdateCIN + * @param issuerEventId INT32U + * @param implementationTime UTC_TIME + * @param providerId INT32U + * @param customerIdNumber OCTET_STRING + */ +#define emberAfFillCommandDevice \ + ManagementClusterUpdateCIN(issuerEventId, implementationTime, providerId, customerIdNumber) emberAfFillExternalBuffer( \ + mask, \ + \ + ZCL_UPDATE_CIN_COMMAND_ID, "uuuu", issuerEventId, implementationTime, providerId, customerIdNumber); + +/** @brief Command description for GetEventLog + * + * Command: GetEventLog + * @param eventControlLogId EventControlLogId + * @param logId EventLogId + * @param eventId INT16U + * @param eventId INT16U + * @param startTime UTC_TIME + * @param eventTime UTC_TIME + * @param endTime UTC_TIME + * @param eventControl EventActionControl + * @param numberOfEvents INT8U + * @param eventData OCTET_STRING + * @param eventOffset INT16U + */ +#define emberAfFillCommandEventsClusterGetEventLog(eventControlLogId, logId, eventId, eventId, startTime, eventTime, endTime, \ + eventControl, numberOfEvents, eventData, eventOffset) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_GET_EVENT_LOG_COMMAND_ID, "uuuuuuuuuuu", eventControlLogId, logId, eventId, eventId, startTime, \ + eventTime, endTime, eventControl, numberOfEvents, eventData, eventOffset); + +/** @brief Command description for ClearEventLogRequest + * + * Command: ClearEventLogRequest + * @param logId EventLogId + * @param totalNumberOfEvents INT16U + * @param commandIndex INT8U + * @param totalCommands INT8U + * @param logPayloadControl NumberOfEventsLogPayloadControl + * @param logPayload EventLogPayload [] + * @param logPayloadLen int + */ +#define emberAfFillCommandEventsClusterClearEventLogRequest(logId, totalNumberOfEvents, commandIndex, totalCommands, \ + logPayloadControl, logPayload, logPayloadLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_CLEAR_EVENT_LOG_REQUEST_COMMAND_ID, "uuuuub", logId, totalNumberOfEvents, commandIndex, \ + totalCommands, logPayloadControl, logPayload, logPayloadLen); + +/** @brief Command description for ClearEventLogResponse + * + * Command: ClearEventLogResponse + * @param clearedEventsLogs ClearedEventsLogs + */ +#define emberAfFillCommandEventsClusterClearEventLogResponse(clearedEventsLogs) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_CLEAR_EVENT_LOG_RESPONSE_COMMAND_ID, "u", clearedEventsLogs); + +/** @brief Command description for PairingResponse + * + * Command: PairingResponse + * @param pairingInformationVersion INT32U + * @param localPairingInformationVersion INT32U + * @param totalNumberOfDevices INT8U + * @param eui64OfRequestingDevice IEEE_ADDRESS + * @param commandIndex INT8U + * @param totalNumberOfCommands INT8U + * @param eui64s IEEE_ADDRESS [] + * @param eui64sLen int + */ +#define emberAfFillCommandMDU \ + PairingClusterPairingResponse(pairingInformationVersion, localPairingInformationVersion, totalNumberOfDevices, \ + eui64OfRequestingDevice, commandIndex, totalNumberOfCommands, eui64s, eui64sLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_PAIRING_RESPONSE_COMMAND_ID, "uuuuuub", pairingInformationVersion, \ + localPairingInformationVersion, totalNumberOfDevices, eui64OfRequestingDevice, commandIndex, \ + totalNumberOfCommands, eui64s, eui64sLen); + +/** @brief Command description for GetSuspendZclMessagesStatus + * + * Command: GetSuspendZclMessagesStatus + * @param period INT8U + */ +#define emberAfFillCommandSub \ + -GHzClusterGetSuspendZclMessagesStatus(period) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_GET_SUSPEND_ZCL_MESSAGES_STATUS_COMMAND_ID, "u", period); + +/** @brief Command description for InitiateKeyEstablishmentRequest + * + * Command: InitiateKeyEstablishmentRequest + * @param keyEstablishmentSuite BITMAP16 + * @param requestedKeyEstablishmentSuite BITMAP16 + * @param ephemeralDataGenerateTime INT8U + * @param ephemeralDataGenerateTime INT8U + * @param confirmKeyGenerateTime INT8U + * @param confirmKeyGenerateTime INT8U + * @param identity Identity + * @param identity Identity + */ +#define emberAfFillCommandKey \ + EstablishmentClusterInitiateKeyEstablishmentRequest(keyEstablishmentSuite, requestedKeyEstablishmentSuite, \ + ephemeralDataGenerateTime, ephemeralDataGenerateTime, \ + confirmKeyGenerateTime, confirmKeyGenerateTime, identity, identity) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_INITIATE_KEY_ESTABLISHMENT_REQUEST_COMMAND_ID, "uuuuuuuu", keyEstablishmentSuite, \ + requestedKeyEstablishmentSuite, ephemeralDataGenerateTime, ephemeralDataGenerateTime, \ + confirmKeyGenerateTime, confirmKeyGenerateTime, identity, identity); + +/** @brief Command description for EphemeralDataRequest + * + * Command: EphemeralDataRequest + * @param ephemeralData EphemeralData + * @param ephemeralData EphemeralData + */ +#define emberAfFillCommandKey \ + EstablishmentClusterEphemeralDataRequest(ephemeralData, ephemeralData) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_EPHEMERAL_DATA_REQUEST_COMMAND_ID, "uu", ephemeralData, ephemeralData); + +/** @brief Command description for ConfirmKeyDataRequest + * + * Command: ConfirmKeyDataRequest + * @param secureMessageAuthenticationCode Smac + * @param secureMessageAuthenticationCode Smac + */ +#define emberAfFillCommandKey \ + EstablishmentClusterConfirmKeyDataRequest(secureMessageAuthenticationCode, secureMessageAuthenticationCode) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_CONFIRM_KEY_DATA_REQUEST_COMMAND_ID, "uu", secureMessageAuthenticationCode, \ + secureMessageAuthenticationCode); + +/** @brief Command description for TerminateKeyEstablishment + * + * Command: TerminateKeyEstablishment + * @param statusCode AmiKeyEstablishmentStatus + * @param waitTime INT8U + * @param keyEstablishmentSuite BITMAP16 + */ +#define emberAfFillCommandKey \ + EstablishmentClusterTerminateKeyEstablishment(statusCode, waitTime, keyEstablishmentSuite) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_TERMINATE_KEY_ESTABLISHMENT_COMMAND_ID, "uuu", statusCode, waitTime, keyEstablishmentSuite); + +/** @brief Command description for RequestInformation + * + * Command: RequestInformation + * @param inquiryId ENUM8 + * @param number INT8U + * @param dataTypeId BITMAP8 + * @param buffer INT8U [] + * @param bufferLen int + * @param requestInformationPayload INT8U [] + * @param requestInformationPayloadLen int + */ +#define emberAfFillCommandInformationClusterRequestInformation(inquiryId, number, dataTypeId, buffer, bufferLen, \ + requestInformationPayload, requestInformationPayloadLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_REQUEST_INFORMATION_COMMAND_ID, "uuubb", inquiryId, number, dataTypeId, buffer, bufferLen, \ + requestInformationPayload, requestInformationPayloadLen); + +/** @brief Command description for PushInformationResponse + * + * Command: PushInformationResponse + * @param notificationList Notification [] + * @param notificationListLen int + * @param contents INT8U [] + * @param contentsLen int + */ +#define emberAfFillCommandInformationClusterPushInformationResponse(notificationList, notificationListLen, contents, contentsLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_PUSH_INFORMATION_RESPONSE_COMMAND_ID, "bb", notificationList, notificationListLen, contents, \ + contentsLen); + +/** @brief Command description for SendPreference + * + * Command: SendPreference + * @param preferenceType INT16U + * @param statusFeedbackList Status [] + * @param statusFeedbackListLen int + * @param preferencePayload INT8U [] + * @param preferencePayloadLen int + */ +#define emberAfFillCommandInformationClusterSendPreference(preferenceType, statusFeedbackList, statusFeedbackListLen, \ + preferencePayload, preferencePayloadLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_SEND_PREFERENCE_COMMAND_ID, "ubb", preferenceType, statusFeedbackList, statusFeedbackListLen, \ + preferencePayload, preferencePayloadLen); + +/** @brief Command description for ServerRequestPreference + * + * Command: ServerRequestPreference + * @param statusFeedback Status + * @param preferenceType INT16U + * @param preferencePayload INT8U [] + * @param preferencePayloadLen int + */ +#define emberAfFillCommandInformationClusterServerRequestPreference(statusFeedback, preferenceType, preferencePayload, \ + preferencePayloadLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_SERVER_REQUEST_PREFERENCE_COMMAND_ID, "uub", statusFeedback, preferenceType, preferencePayload, \ + preferencePayloadLen); + +/** @brief Command description for Update + * + * Command: Update + * @param accessControl ENUM8 + * @param statusFeedbackList Status [] + * @param statusFeedbackListLen int + * @param option BITMAP8 + * @param contents INT8U [] + * @param contentsLen int + */ +#define emberAfFillCommandInformationClusterUpdate(accessControl, statusFeedbackList, statusFeedbackListLen, option, contents, \ + contentsLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_UPDATE_COMMAND_ID, "ubub", accessControl, statusFeedbackList, statusFeedbackListLen, option, \ + contents, contentsLen); + +/** @brief Command description for Delete + * + * Command: Delete + * @param deletionOptions BITMAP8 + * @param notificationList Notification [] + * @param notificationListLen int + * @param contentIds INT16U [] + * @param contentIdsLen int + */ +#define emberAfFillCommandInformationClusterDelete(deletionOptions, notificationList, notificationListLen, contentIds, \ + contentIdsLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_DELETE_COMMAND_ID, "ubb", deletionOptions, notificationList, notificationListLen, contentIds, \ + contentIdsLen); + +/** @brief Command description for ConfigureNodeDescription + * + * Command: ConfigureNodeDescription + * @param description CHAR_STRING + * @param notificationList Notification [] + * @param notificationListLen int + */ +#define emberAfFillCommandInformationClusterConfigureNodeDescription(description, notificationList, notificationListLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_CONFIGURE_NODE_DESCRIPTION_COMMAND_ID, "ub", description, notificationList, \ + notificationListLen); + +/** @brief Command description for ConfigureDeliveryEnable + * + * Command: ConfigureDeliveryEnable + * @param enable BOOLEAN + */ +#define emberAfFillCommandInformationClusterConfigureDeliveryEnable(enable) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_CONFIGURE_DELIVERY_ENABLE_COMMAND_ID, "u", enable); + +/** @brief Command description for ConfigurePushInformationTimer + * + * Command: ConfigurePushInformationTimer + * @param timer INT32U + */ +#define emberAfFillCommandInformationClusterConfigurePushInformationTimer(timer) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_CONFIGURE_PUSH_INFORMATION_TIMER_COMMAND_ID, "u", timer); + +/** @brief Command description for ConfigureSetRootId + * + * Command: ConfigureSetRootId + * @param rootId INT16U + */ +#define emberAfFillCommandInformationClusterConfigureSetRootId(rootId) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_CONFIGURE_SET_ROOT_ID_COMMAND_ID, "u", rootId); + +/** @brief Command description for ReadFileRequest + * + * Command: ReadFileRequest + * @param fileIndex INT16U + * @param writeOptions BITMAP8 + * @param fileStartPositionAndRequestedOctetCount INT8U [] + * @param fileStartPositionAndRequestedOctetCountLen int + * @param fileSize INT8U [] + * @param fileSizeLen int + */ +#define emberAfFillCommandData \ + SharingClusterReadFileRequest(fileIndex, writeOptions, fileStartPositionAndRequestedOctetCount, \ + fileStartPositionAndRequestedOctetCountLen, fileSize, fileSizeLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_READ_FILE_REQUEST_COMMAND_ID, "uubb", fileIndex, writeOptions, \ + fileStartPositionAndRequestedOctetCount, fileStartPositionAndRequestedOctetCountLen, fileSize, \ + fileSizeLen); + +/** @brief Command description for ReadRecordRequest + * + * Command: ReadRecordRequest + * @param fileIndex INT16U + * @param fileIndex INT16U + * @param fileStartRecordAndRequestedRecordCount INT8U [] + * @param fileStartRecordAndRequestedRecordCountLen int + * @param fileStartPosition INT32U + * @param octetCount INT32U + */ +#define emberAfFillCommandData \ + SharingClusterReadRecordRequest(fileIndex, fileIndex, fileStartRecordAndRequestedRecordCount, \ + fileStartRecordAndRequestedRecordCountLen, fileStartPosition, octetCount) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_READ_RECORD_REQUEST_COMMAND_ID, "uubuu", fileIndex, fileIndex, \ + fileStartRecordAndRequestedRecordCount, fileStartRecordAndRequestedRecordCountLen, \ + fileStartPosition, octetCount); + +/** @brief Command description for WriteFileResponse + * + * Command: WriteFileResponse + * @param status ENUM8 + * @param fileIndex INT16U + * @param fileIndex INT8U [] + * @param fileIndexLen int + * @param fileStartRecord INT16U + * @param recordCount INT16U + */ +#define emberAfFillCommandData \ + SharingClusterWriteFileResponse(status, fileIndex, fileIndex, fileIndexLen, fileStartRecord, recordCount) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_WRITE_FILE_RESPONSE_COMMAND_ID, "uubuu", status, fileIndex, fileIndex, fileIndexLen, \ + fileStartRecord, recordCount); + +/** @brief Command description for FileTransmission + * + * Command: FileTransmission + * @param transmitOptions BITMAP8 + * @param buffer INT8U [] + * @param bufferLen int + */ +#define emberAfFillCommandData \ + SharingClusterFileTransmission(transmitOptions, buffer, bufferLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_FILE_TRANSMISSION_COMMAND_ID, "ub", transmitOptions, buffer, bufferLen); + +/** @brief Command description for RecordTransmission + * + * Command: RecordTransmission + * @param transmitOptions BITMAP8 + * @param buffer INT8U [] + * @param bufferLen int + */ +#define emberAfFillCommandData \ + SharingClusterRecordTransmission(transmitOptions, buffer, bufferLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_RECORD_TRANSMISSION_COMMAND_ID, "ub", transmitOptions, buffer, bufferLen); + +/** @brief Command description for SearchGame + * + * Command: SearchGame + * @param specificGame ENUM8 + * @param gameId INT16U + * @param gameId INT16U + * @param gameMaster BOOLEAN + * @param listOfGame CHAR_STRING + */ +#define emberAfFillCommandGamingClusterSearchGame(specificGame, gameId, gameId, gameMaster, listOfGame) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_SEARCH_GAME_COMMAND_ID, "uuuuu", specificGame, gameId, gameId, gameMaster, listOfGame); + +/** @brief Command description for JoinGame + * + * Command: JoinGame + * @param gameId INT16U + * @param commandId INT8U + * @param joinAsMaster BOOLEAN + * @param status BITMAP8 + * @param nameOfGame CHAR_STRING + * @param message CHAR_STRING + */ +#define emberAfFillCommandGamingClusterJoinGame(gameId, commandId, joinAsMaster, status, nameOfGame, message) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_JOIN_GAME_COMMAND_ID, "uuuuuu", gameId, commandId, joinAsMaster, status, nameOfGame, message); + +/** @brief Command description for StartGame + * + * Command: StartGame + */ +#define emberAfFillCommandGamingClusterStartGame() \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_START_GAME_COMMAND_ID, "", ); + +/** @brief Command description for PauseGame + * + * Command: PauseGame + */ +#define emberAfFillCommandGamingClusterPauseGame() \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_PAUSE_GAME_COMMAND_ID, "", ); + +/** @brief Command description for ResumeGame + * + * Command: ResumeGame + */ +#define emberAfFillCommandGamingClusterResumeGame() \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_RESUME_GAME_COMMAND_ID, "", ); + +/** @brief Command description for QuitGame + * + * Command: QuitGame + */ +#define emberAfFillCommandGamingClusterQuitGame() \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_QUIT_GAME_COMMAND_ID, "", ); + +/** @brief Command description for EndGame + * + * Command: EndGame + */ +#define emberAfFillCommandGamingClusterEndGame() \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_END_GAME_COMMAND_ID, "", ); + +/** @brief Command description for StartOver + * + * Command: StartOver + */ +#define emberAfFillCommandGamingClusterStartOver() \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_START_OVER_COMMAND_ID, "", ); + +/** @brief Command description for ActionControl + * + * Command: ActionControl + * @param actions BITMAP32 + */ +#define emberAfFillCommandGamingClusterActionControl(actions) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_ACTION_CONTROL_COMMAND_ID, "u", actions); + +/** @brief Command description for DownloadGame + * + * Command: DownloadGame + */ +#define emberAfFillCommandGamingClusterDownloadGame() \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_DOWNLOAD_GAME_COMMAND_ID, "", ); + +/** @brief Command description for PathCreation + * + * Command: PathCreation + * @param originatorAddress DATA16 + * @param originatorAddress DATA16 + * @param destinationAddress DATA16 + * @param destinationAddress DATA16 + * @param dataRate INT8U + * @param dataRate INT8U + */ +#define emberAfFillCommandData \ + Rate ControlClusterPathCreation(originatorAddress, originatorAddress, destinationAddress, destinationAddress, dataRate, \ + dataRate) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_PATH_CREATION_COMMAND_ID, "uuuuuu", originatorAddress, originatorAddress, \ + destinationAddress, destinationAddress, dataRate, dataRate); + +/** @brief Command description for DataRateNotification + * + * Command: DataRateNotification + * @param originatorAddress DATA16 + * @param destinationAddress DATA16 + * @param dataRate INT8U + */ +#define emberAfFillCommandData \ + Rate ControlClusterDataRateNotification(originatorAddress, destinationAddress, dataRate) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_DATA_RATE_NOTIFICATION_COMMAND_ID, "uuu", originatorAddress, destinationAddress, dataRate); + +/** @brief Command description for PathDeletion + * + * Command: PathDeletion + * @param originatorAddress DATA16 + * @param destinationAddress DATA16 + */ +#define emberAfFillCommandData \ + Rate ControlClusterPathDeletion(originatorAddress, destinationAddress) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_PATH_DELETION_COMMAND_ID, "uu", originatorAddress, destinationAddress); + +/** @brief Command description for EstablishmentRequest + * + * Command: EstablishmentRequest + * @param flag BITMAP8 + * @param ackNack ENUM8 + * @param codecType ENUM8 + * @param codecType ENUM8 + * @param sampFreq ENUM8 + * @param codecRate ENUM8 + * @param serviceType ENUM8 + * @param buffer INT8U [] + * @param bufferLen int + */ +#define emberAfFillCommandVoice \ + over ZigBeeClusterEstablishmentRequest(flag, ackNack, codecType, codecType, sampFreq, codecRate, serviceType, buffer, \ + bufferLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_ESTABLISHMENT_REQUEST_COMMAND_ID, "uuuuuuub", flag, ackNack, codecType, codecType, sampFreq, \ + codecRate, serviceType, buffer, bufferLen); + +/** @brief Command description for VoiceTransmission + * + * Command: VoiceTransmission + * @param voiceData INT8U [] + * @param voiceDataLen int + * @param sequenceNumber INT8U + * @param errorFlag ENUM8 + */ +#define emberAfFillCommandVoice \ + over ZigBeeClusterVoiceTransmission(voiceData, voiceDataLen, sequenceNumber, errorFlag) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_VOICE_TRANSMISSION_COMMAND_ID, "buu", voiceData, voiceDataLen, sequenceNumber, errorFlag); + +/** @brief Command description for VoiceTransmissionCompletion + * + * Command: VoiceTransmissionCompletion + * @param controlType ENUM8 + */ +#define emberAfFillCommandVoice \ + over ZigBeeClusterVoiceTransmissionCompletion(controlType) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_VOICE_TRANSMISSION_COMPLETION_COMMAND_ID, "u", controlType); + +/** @brief Command description for ControlResponse + * + * Command: ControlResponse + * @param ackNack ENUM8 + */ +#define emberAfFillCommandVoice \ + over ZigBeeClusterControlResponse(ackNack) emberAfFillExternalBuffer(mask, \ + \ + ZCL_CONTROL_RESPONSE_COMMAND_ID, "u", ackNack); + +/** @brief Command description for JoinChatRequest + * + * Command: JoinChatRequest + * @param uid INT16U + * @param status ENUM8 + * @param nickname CHAR_STRING + * @param cid INT16U + * @param cid INT16U + */ +#define emberAfFillCommandChattingClusterJoinChatRequest(uid, status, nickname, cid, cid) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_JOIN_CHAT_REQUEST_COMMAND_ID, "uuuuu", uid, status, nickname, cid, cid); + +/** @brief Command description for LeaveChatRequest + * + * Command: LeaveChatRequest + * @param cid INT16U + * @param status ENUM8 + * @param uid INT16U + * @param cid INT16U + * @param chatParticipantList ChatParticipant [] + * @param chatParticipantListLen int + */ +#define emberAfFillCommandChattingClusterLeaveChatRequest(cid, status, uid, cid, chatParticipantList, chatParticipantListLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_LEAVE_CHAT_REQUEST_COMMAND_ID, "uuuub", cid, status, uid, cid, chatParticipantList, \ + chatParticipantListLen); + +/** @brief Command description for SearchChatRequest + * + * Command: SearchChatRequest + * @param cid INT16U + * @param uid INT16U + * @param nickname CHAR_STRING + */ +#define emberAfFillCommandChattingClusterSearchChatRequest(cid, uid, nickname) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_SEARCH_CHAT_REQUEST_COMMAND_ID, "uuu", cid, uid, nickname); + +/** @brief Command description for SwitchChairmanResponse + * + * Command: SwitchChairmanResponse + * @param cid INT16U + * @param cid INT16U + * @param uid INT16U + * @param uid INT16U + * @param nickname CHAR_STRING + */ +#define emberAfFillCommandChattingClusterSwitchChairmanResponse(cid, cid, uid, uid, nickname) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_SWITCH_CHAIRMAN_RESPONSE_COMMAND_ID, "uuuuu", cid, cid, uid, uid, nickname); + +/** @brief Command description for StartChatRequest + * + * Command: StartChatRequest + * @param name CHAR_STRING + * @param options BITMAP8 + * @param uid INT16U + * @param chatRoomList ChatRoom [] + * @param chatRoomListLen int + * @param nickname CHAR_STRING + */ +#define emberAfFillCommandChattingClusterStartChatRequest(name, options, uid, chatRoomList, chatRoomListLen, nickname) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_START_CHAT_REQUEST_COMMAND_ID, "uuubu", name, options, uid, chatRoomList, chatRoomListLen, \ + nickname); + +/** @brief Command description for ChatMessage + * + * Command: ChatMessage + * @param destinationUid INT16U + * @param cid INT16U + * @param sourceUid INT16U + * @param cid INT16U + * @param nickname CHAR_STRING + * @param message CHAR_STRING + */ +#define emberAfFillCommandChattingClusterChatMessage(destinationUid, cid, sourceUid, cid, nickname, message) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_CHAT_MESSAGE_COMMAND_ID, "uuuuuu", destinationUid, cid, sourceUid, cid, nickname, message); + +/** @brief Command description for GetNodeInformationRequest + * + * Command: GetNodeInformationRequest + * @param cid INT16U + * @param cid INT16U + * @param uid INT16U + * @param nodeInformationList NodeInformation [] + * @param nodeInformationListLen int + */ +#define emberAfFillCommandChattingClusterGetNodeInformationRequest(cid, cid, uid, nodeInformationList, nodeInformationListLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_GET_NODE_INFORMATION_REQUEST_COMMAND_ID, "uuub", cid, cid, uid, nodeInformationList, \ + nodeInformationListLen); + +/** @brief Command description for SwitchChairmanNotification + * + * Command: SwitchChairmanNotification + * @param cid INT16U + * @param uid INT16U + * @param address DATA16 + * @param endpoint INT8U + */ +#define emberAfFillCommandChattingClusterSwitchChairmanNotification(cid, uid, address, endpoint) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_SWITCH_CHAIRMAN_NOTIFICATION_COMMAND_ID, "uuuu", cid, uid, address, endpoint); + +/** @brief Command description for GetNodeInformationResponse + * + * Command: GetNodeInformationResponse + * @param status ENUM8 + * @param cid INT16U + * @param uid INT16U + * @param addressEndpointAndNickname INT8U [] + * @param addressEndpointAndNicknameLen int + */ +#define emberAfFillCommandChattingClusterGetNodeInformationResponse(status, cid, uid, addressEndpointAndNickname, \ + addressEndpointAndNicknameLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_GET_NODE_INFORMATION_RESPONSE_COMMAND_ID, "uuub", status, cid, uid, addressEndpointAndNickname, \ + addressEndpointAndNicknameLen); + +/** @brief Command description for BuyRequest + * + * Command: BuyRequest + * @param userId OCTET_STRING + * @param serialNumber OCTET_STRING + * @param userType INT16U + * @param currency INT32U + * @param serviceId INT16U + * @param priceTrailingDigit INT8U + * @param goodId OCTET_STRING + * @param price INT32U + * @param timestamp OCTET_STRING + * @param transId INT16U + * @param transStatus ENUM8 + */ +#define emberAfFillCommandPaymentClusterBuyRequest(userId, serialNumber, userType, currency, serviceId, priceTrailingDigit, \ + goodId, price, timestamp, transId, transStatus) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_BUY_REQUEST_COMMAND_ID, "uuuuuuuuuuu", userId, serialNumber, userType, currency, serviceId, \ + priceTrailingDigit, goodId, price, timestamp, transId, transStatus); + +/** @brief Command description for AcceptPayment + * + * Command: AcceptPayment + * @param userId OCTET_STRING + * @param serialNumber OCTET_STRING + * @param userType INT16U + * @param currency INT32U + * @param serviceId INT16U + * @param priceTrailingDigit INT8U + * @param goodId OCTET_STRING + * @param price INT32U + * @param timestamp OCTET_STRING + */ +#define emberAfFillCommandPaymentClusterAcceptPayment(userId, serialNumber, userType, currency, serviceId, priceTrailingDigit, \ + goodId, price, timestamp) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_ACCEPT_PAYMENT_COMMAND_ID, "uuuuuuuuu", userId, serialNumber, userType, currency, serviceId, \ + priceTrailingDigit, goodId, price, timestamp); + +/** @brief Command description for PaymentConfirm + * + * Command: PaymentConfirm + * @param serialNumber OCTET_STRING + * @param serialNumber OCTET_STRING + * @param transId INT16U + * @param status ENUM8 + * @param transStatus ENUM8 + */ +#define emberAfFillCommandPaymentClusterPaymentConfirm(serialNumber, serialNumber, transId, status, transStatus) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_PAYMENT_CONFIRM_COMMAND_ID, "uuuuu", serialNumber, serialNumber, transId, status, transStatus); + +/** @brief Command description for Subscribe + * + * Command: Subscribe + * @param userId OCTET_STRING + * @param userId OCTET_STRING + * @param serviceId INT16U + * @param serviceId INT16U + * @param serviceProviderId INT16U + * @param serviceProviderId INT16U + */ +#define emberAfFillCommandBillingClusterSubscribe(userId, userId, serviceId, serviceId, serviceProviderId, serviceProviderId) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_SUBSCRIBE_COMMAND_ID, "uuuuuu", userId, userId, serviceId, serviceId, serviceProviderId, \ + serviceProviderId); + +/** @brief Command description for Unsubscribe + * + * Command: Unsubscribe + * @param userId OCTET_STRING + * @param userId OCTET_STRING + * @param serviceId INT16U + * @param serviceId INT16U + * @param serviceProviderId INT16U + * @param serviceProviderId INT16U + * @param timestamp OCTET_STRING + * @param duration INT16U + */ +#define emberAfFillCommandBillingClusterUnsubscribe(userId, userId, serviceId, serviceId, serviceProviderId, serviceProviderId, \ + timestamp, duration) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_UNSUBSCRIBE_COMMAND_ID, "uuuuuuuu", userId, userId, serviceId, serviceId, serviceProviderId, \ + serviceProviderId, timestamp, duration); + +/** @brief Command description for StartBillingSession + * + * Command: StartBillingSession + * @param userId OCTET_STRING + * @param serviceId INT16U + * @param serviceProviderId INT16U + */ +#define emberAfFillCommandBillingClusterStartBillingSession(userId, serviceId, serviceProviderId) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_START_BILLING_SESSION_COMMAND_ID, "uuu", userId, serviceId, serviceProviderId); + +/** @brief Command description for StopBillingSession + * + * Command: StopBillingSession + * @param userId OCTET_STRING + * @param serviceId INT16U + * @param serviceProviderId INT16U + */ +#define emberAfFillCommandBillingClusterStopBillingSession(userId, serviceId, serviceProviderId) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_STOP_BILLING_SESSION_COMMAND_ID, "uuu", userId, serviceId, serviceProviderId); + +/** @brief Command description for BillStatusNotification + * + * Command: BillStatusNotification + * @param userId OCTET_STRING + * @param status ENUM8 + */ +#define emberAfFillCommandBillingClusterBillStatusNotification(userId, status) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_BILL_STATUS_NOTIFICATION_COMMAND_ID, "uu", userId, status); + +/** @brief Command description for SessionKeepAlive + * + * Command: SessionKeepAlive + * @param userId OCTET_STRING + * @param serviceId INT16U + * @param serviceProviderId INT16U + */ +#define emberAfFillCommandBillingClusterSessionKeepAlive(userId, serviceId, serviceProviderId) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_SESSION_KEEP_ALIVE_COMMAND_ID, "uuu", userId, serviceId, serviceProviderId); + +/** @brief Command description for GetAlerts + * + * Command: GetAlerts + * @param alertsCount AlertCount + * @param alertStructures AlertStructure [] + * @param alertStructuresLen int + */ +#define emberAfFillCommandAppliance \ + Events and AlertClusterGetAlerts(alertsCount, alertStructures, alertStructuresLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_GET_ALERTS_COMMAND_ID, "ub", alertsCount, alertStructures, alertStructuresLen); + +/** @brief Command description for AlertsNotification + * + * Command: AlertsNotification + * @param alertsCount AlertCount + * @param alertStructures AlertStructure [] + * @param alertStructuresLen int + */ +#define emberAfFillCommandAppliance \ + Events and AlertClusterAlertsNotification(alertsCount, alertStructures, alertStructuresLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_ALERTS_NOTIFICATION_COMMAND_ID, "ub", alertsCount, alertStructures, alertStructuresLen); + +/** @brief Command description for EventsNotification + * + * Command: EventsNotification + * @param eventHeader INT8U + * @param eventId EventIdentification + */ +#define emberAfFillCommandAppliance \ + Events and AlertClusterEventsNotification(eventHeader, eventId) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_EVENTS_NOTIFICATION_COMMAND_ID, "uu", eventHeader, eventId); + +/** @brief Command description for LogNotification + * + * Command: LogNotification + * @param timeStamp TIME_OF_DAY + * @param logId INT32U + * @param logId INT32U + * @param logLength INT32U + * @param logPayload INT8U [] + * @param logPayloadLen int + */ +#define emberAfFillCommandAppliance \ + StatisticsClusterLogNotification(timeStamp, logId, logId, logLength, logPayload, logPayloadLen) emberAfFillExternalBuffer( \ + mask, \ + \ + ZCL_LOG_NOTIFICATION_COMMAND_ID, "uuuub", timeStamp, logId, logId, logLength, logPayload, logPayloadLen); + +/** @brief Command description for LogQueueRequest + * + * Command: LogQueueRequest + * @param timeStamp TIME_OF_DAY + * @param logId INT32U + * @param logLength INT32U + * @param logPayload INT8U [] + * @param logPayloadLen int + */ +#define emberAfFillCommandAppliance \ + StatisticsClusterLogQueueRequest(timeStamp, logId, logLength, logPayload, logPayloadLen) emberAfFillExternalBuffer( \ + mask, \ + \ + ZCL_LOG_QUEUE_REQUEST_COMMAND_ID, "uuub", timeStamp, logId, logLength, logPayload, logPayloadLen); + +/** @brief Command description for LogQueueResponse + * + * Command: LogQueueResponse + * @param logQueueSize INT8U + * @param logIds INT32U [] + * @param logIdsLen int + */ +#define emberAfFillCommandAppliance \ + StatisticsClusterLogQueueResponse(logQueueSize, logIds, logIdsLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_LOG_QUEUE_RESPONSE_COMMAND_ID, "ub", logQueueSize, logIds, logIdsLen); + +/** @brief Command description for StatisticsAvailable + * + * Command: StatisticsAvailable + * @param logQueueSize INT8U + * @param logIds INT32U [] + * @param logIdsLen int + */ +#define emberAfFillCommandAppliance \ + StatisticsClusterStatisticsAvailable(logQueueSize, logIds, logIdsLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_STATISTICS_AVAILABLE_COMMAND_ID, "ub", logQueueSize, logIds, logIdsLen); + +/** @brief Command description for GetProfileInfoCommand + * + * Command: GetProfileInfoCommand + * @param profileCount INT8U + * @param profileIntervalPeriod ENUM8 + * @param maxNumberOfIntervals INT8U + * @param listOfAttributes INT16U [] + * @param listOfAttributesLen int + */ +#define emberAfFillCommandElectrical \ + MeasurementClusterGetProfileInfoCommand(profileCount, profileIntervalPeriod, maxNumberOfIntervals, listOfAttributes, \ + listOfAttributesLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_GET_PROFILE_INFO_COMMAND_COMMAND_ID, "uuub", profileCount, profileIntervalPeriod, \ + maxNumberOfIntervals, listOfAttributes, listOfAttributesLen); + +/** @brief Command description for GetMeasurementProfileResponseCommand + * + * Command: GetMeasurementProfileResponseCommand + * @param startTime INT32U + * @param attributeId INT16U + * @param status ENUM8 + * @param startTime INT32U + * @param profileIntervalPeriod ENUM8 + * @param numberOfIntervals ENUM8 + * @param numberOfIntervalsDelivered INT8U + * @param attributeId INT16U + * @param intervals INT8U [] + * @param intervalsLen int + */ +#define emberAfFillCommandElectrical \ + MeasurementClusterGetMeasurementProfileResponseCommand(startTime, attributeId, status, startTime, profileIntervalPeriod, \ + numberOfIntervals, numberOfIntervalsDelivered, attributeId, intervals, \ + intervalsLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_GET_MEASUREMENT_PROFILE_RESPONSE_COMMAND_COMMAND_ID, "uuuuuuuub", startTime, attributeId, \ + status, startTime, profileIntervalPeriod, numberOfIntervals, numberOfIntervalsDelivered, \ + attributeId, intervals, intervalsLen); + +/** @brief Command description for ScanRequest + * + * Command: ScanRequest + * @param transaction INT32U + * @param zigbeeInformation ZigbeeInformation + * @param zllInformation ZllInformation + */ +#define emberAfFillCommandZLL \ + CommissioningClusterScanRequest(transaction, zigbeeInformation, zllInformation) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_SCAN_REQUEST_COMMAND_ID, "uuu", transaction, zigbeeInformation, zllInformation); + +/** @brief Command description for ScanResponse + * + * Command: ScanResponse + * @param transaction INT32U + * @param rssiCorrection INT8U + * @param zigbeeInformation ZigbeeInformation + * @param zllInformation ZllInformation + * @param keyBitmask KeyBitmask + * @param responseId INT32U + * @param extendedPanId IEEE_ADDRESS + * @param networkUpdateId INT8U + * @param logicalChannel INT8U + * @param panId INT16U + * @param networkAddress INT16U + * @param numberOfSubDevices INT8U + * @param totalGroupIds INT8U + * @param endpointId INT8U + * @param profileId INT16U + * @param deviceId INT16U + * @param version INT8U + * @param groupIdCount INT8U + */ +#define emberAfFillCommandZLL \ + CommissioningClusterScanResponse(transaction, rssiCorrection, zigbeeInformation, zllInformation, keyBitmask, responseId, \ + extendedPanId, networkUpdateId, logicalChannel, panId, networkAddress, numberOfSubDevices, \ + totalGroupIds, endpointId, profileId, deviceId, version, groupIdCount) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_SCAN_RESPONSE_COMMAND_ID, "uuuuuuuuuuuuuuuuuu", transaction, rssiCorrection, \ + zigbeeInformation, zllInformation, keyBitmask, responseId, extendedPanId, networkUpdateId, \ + logicalChannel, panId, networkAddress, numberOfSubDevices, totalGroupIds, endpointId, profileId, \ + deviceId, version, groupIdCount); + +/** @brief Command description for DeviceInformationRequest + * + * Command: DeviceInformationRequest + * @param transaction INT32U + * @param startIndex INT8U + */ +#define emberAfFillCommandZLL \ + CommissioningClusterDeviceInformationRequest(transaction, startIndex) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_DEVICE_INFORMATION_REQUEST_COMMAND_ID, "uu", transaction, startIndex); + +/** @brief Command description for DeviceInformationResponse + * + * Command: DeviceInformationResponse + * @param transaction INT32U + * @param numberOfSubDevices INT8U + * @param startIndex INT8U + * @param deviceInformationRecordCount INT8U + * @param deviceInformationRecordList DeviceInformationRecord [] + * @param deviceInformationRecordListLen int + */ +#define emberAfFillCommandZLL \ + CommissioningClusterDeviceInformationResponse(transaction, numberOfSubDevices, startIndex, deviceInformationRecordCount, \ + deviceInformationRecordList, deviceInformationRecordListLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_DEVICE_INFORMATION_RESPONSE_COMMAND_ID, "uuuub", transaction, numberOfSubDevices, \ + startIndex, deviceInformationRecordCount, deviceInformationRecordList, \ + deviceInformationRecordListLen); + +/** @brief Command description for IdentifyRequest + * + * Command: IdentifyRequest + * @param transaction INT32U + * @param identifyDuration INT16U + */ +#define emberAfFillCommandZLL \ + CommissioningClusterIdentifyRequest(transaction, identifyDuration) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_IDENTIFY_REQUEST_COMMAND_ID, "uu", transaction, identifyDuration); + +/** @brief Command description for ResetToFactoryNewRequest + * + * Command: ResetToFactoryNewRequest + * @param transaction INT32U + */ +#define emberAfFillCommandZLL \ + CommissioningClusterResetToFactoryNewRequest(transaction) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_RESET_TO_FACTORY_NEW_REQUEST_COMMAND_ID, "u", transaction); + +/** @brief Command description for NetworkStartRequest + * + * Command: NetworkStartRequest + * @param transaction INT32U + * @param extendedPanId IEEE_ADDRESS + * @param keyIndex KeyIndex + * @param encryptedNetworkKey SECURITY_KEY + * @param logicalChannel INT8U + * @param panId INT16U + * @param networkAddress INT16U + * @param groupIdentifiersBegin INT16U + * @param groupIdentifiersEnd INT16U + * @param freeNetworkAddressRangeBegin INT16U + * @param freeNetworkAddressRangeEnd INT16U + * @param freeGroupIdentifierRangeBegin INT16U + * @param freeGroupIdentifierRangeEnd INT16U + * @param initiatorIeeeAddress IEEE_ADDRESS + * @param initiatorNetworkAddress INT16U + */ +#define emberAfFillCommandZLL \ + CommissioningClusterNetworkStartRequest( \ + transaction, extendedPanId, keyIndex, encryptedNetworkKey, logicalChannel, panId, networkAddress, groupIdentifiersBegin, \ + groupIdentifiersEnd, freeNetworkAddressRangeBegin, freeNetworkAddressRangeEnd, freeGroupIdentifierRangeBegin, \ + freeGroupIdentifierRangeEnd, initiatorIeeeAddress, initiatorNetworkAddress) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_NETWORK_START_REQUEST_COMMAND_ID, "uuuuuuuuuuuuuuu", transaction, extendedPanId, keyIndex, \ + encryptedNetworkKey, logicalChannel, panId, networkAddress, groupIdentifiersBegin, \ + groupIdentifiersEnd, freeNetworkAddressRangeBegin, freeNetworkAddressRangeEnd, \ + freeGroupIdentifierRangeBegin, freeGroupIdentifierRangeEnd, initiatorIeeeAddress, \ + initiatorNetworkAddress); + +/** @brief Command description for NetworkStartResponse + * + * Command: NetworkStartResponse + * @param transaction INT32U + * @param status ZllStatus + * @param extendedPanId IEEE_ADDRESS + * @param networkUpdateId INT8U + * @param logicalChannel INT8U + * @param panId INT16U + */ +#define emberAfFillCommandZLL \ + CommissioningClusterNetworkStartResponse(transaction, status, extendedPanId, networkUpdateId, logicalChannel, panId) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_NETWORK_START_RESPONSE_COMMAND_ID, "uuuuuu", transaction, status, extendedPanId, \ + networkUpdateId, logicalChannel, panId); + +/** @brief Command description for NetworkJoinRouterRequest + * + * Command: NetworkJoinRouterRequest + * @param transaction INT32U + * @param extendedPanId IEEE_ADDRESS + * @param keyIndex KeyIndex + * @param encryptedNetworkKey SECURITY_KEY + * @param networkUpdateId INT8U + * @param logicalChannel INT8U + * @param panId INT16U + * @param networkAddress INT16U + * @param groupIdentifiersBegin INT16U + * @param groupIdentifiersEnd INT16U + * @param freeNetworkAddressRangeBegin INT16U + * @param freeNetworkAddressRangeEnd INT16U + * @param freeGroupIdentifierRangeBegin INT16U + * @param freeGroupIdentifierRangeEnd INT16U + */ +#define emberAfFillCommandZLL \ + CommissioningClusterNetworkJoinRouterRequest(transaction, extendedPanId, keyIndex, encryptedNetworkKey, networkUpdateId, \ + logicalChannel, panId, networkAddress, groupIdentifiersBegin, \ + groupIdentifiersEnd, freeNetworkAddressRangeBegin, freeNetworkAddressRangeEnd, \ + freeGroupIdentifierRangeBegin, freeGroupIdentifierRangeEnd) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_NETWORK_JOIN_ROUTER_REQUEST_COMMAND_ID, "uuuuuuuuuuuuuu", transaction, extendedPanId, \ + keyIndex, encryptedNetworkKey, networkUpdateId, logicalChannel, panId, networkAddress, \ + groupIdentifiersBegin, groupIdentifiersEnd, freeNetworkAddressRangeBegin, \ + freeNetworkAddressRangeEnd, freeGroupIdentifierRangeBegin, freeGroupIdentifierRangeEnd); + +/** @brief Command description for NetworkJoinRouterResponse + * + * Command: NetworkJoinRouterResponse + * @param transaction INT32U + * @param status ZllStatus + */ +#define emberAfFillCommandZLL \ + CommissioningClusterNetworkJoinRouterResponse(transaction, status) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_NETWORK_JOIN_ROUTER_RESPONSE_COMMAND_ID, "uu", transaction, status); + +/** @brief Command description for NetworkJoinEndDeviceRequest + * + * Command: NetworkJoinEndDeviceRequest + * @param transaction INT32U + * @param extendedPanId IEEE_ADDRESS + * @param keyIndex KeyIndex + * @param encryptedNetworkKey SECURITY_KEY + * @param networkUpdateId INT8U + * @param logicalChannel INT8U + * @param panId INT16U + * @param networkAddress INT16U + * @param groupIdentifiersBegin INT16U + * @param groupIdentifiersEnd INT16U + * @param freeNetworkAddressRangeBegin INT16U + * @param freeNetworkAddressRangeEnd INT16U + * @param freeGroupIdentifierRangeBegin INT16U + * @param freeGroupIdentifierRangeEnd INT16U + */ +#define emberAfFillCommandZLL \ + CommissioningClusterNetworkJoinEndDeviceRequest(transaction, extendedPanId, keyIndex, encryptedNetworkKey, networkUpdateId, \ + logicalChannel, panId, networkAddress, groupIdentifiersBegin, \ + groupIdentifiersEnd, freeNetworkAddressRangeBegin, freeNetworkAddressRangeEnd, \ + freeGroupIdentifierRangeBegin, freeGroupIdentifierRangeEnd) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_NETWORK_JOIN_END_DEVICE_REQUEST_COMMAND_ID, "uuuuuuuuuuuuuu", transaction, extendedPanId, \ + keyIndex, encryptedNetworkKey, networkUpdateId, logicalChannel, panId, networkAddress, \ + groupIdentifiersBegin, groupIdentifiersEnd, freeNetworkAddressRangeBegin, \ + freeNetworkAddressRangeEnd, freeGroupIdentifierRangeBegin, freeGroupIdentifierRangeEnd); + +/** @brief Command description for NetworkJoinEndDeviceResponse + * + * Command: NetworkJoinEndDeviceResponse + * @param transaction INT32U + * @param status ZllStatus + */ +#define emberAfFillCommandZLL \ + CommissioningClusterNetworkJoinEndDeviceResponse(transaction, status) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_NETWORK_JOIN_END_DEVICE_RESPONSE_COMMAND_ID, "uu", transaction, status); + +/** @brief Command description for NetworkUpdateRequest + * + * Command: NetworkUpdateRequest + * @param transaction INT32U + * @param extendedPanId IEEE_ADDRESS + * @param networkUpdateId INT8U + * @param logicalChannel INT8U + * @param panId INT16U + * @param networkAddress INT16U + */ +#define emberAfFillCommandZLL \ + CommissioningClusterNetworkUpdateRequest(transaction, extendedPanId, networkUpdateId, logicalChannel, panId, networkAddress) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_NETWORK_UPDATE_REQUEST_COMMAND_ID, "uuuuuu", transaction, extendedPanId, networkUpdateId, \ + logicalChannel, panId, networkAddress); + +/** @brief Command description for EndpointInformation + * + * Command: EndpointInformation + * @param ieeeAddress IEEE_ADDRESS + * @param networkAddress INT16U + * @param endpointId INT8U + * @param profileId INT16U + * @param deviceId INT16U + * @param version INT8U + */ +#define emberAfFillCommandZLL \ + CommissioningClusterEndpointInformation(ieeeAddress, networkAddress, endpointId, profileId, deviceId, version) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_ENDPOINT_INFORMATION_COMMAND_ID, "uuuuuu", ieeeAddress, networkAddress, endpointId, \ + profileId, deviceId, version); + +/** @brief Command description for GetGroupIdentifiersRequest + * + * Command: GetGroupIdentifiersRequest + * @param startIndex INT8U + * @param total INT8U + * @param startIndex INT8U + * @param count INT8U + * @param groupInformationRecordList GroupInformationRecord [] + * @param groupInformationRecordListLen int + */ +#define emberAfFillCommandZLL \ + CommissioningClusterGetGroupIdentifiersRequest(startIndex, total, startIndex, count, groupInformationRecordList, \ + groupInformationRecordListLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_GET_GROUP_IDENTIFIERS_REQUEST_COMMAND_ID, "uuuub", startIndex, total, startIndex, count, \ + groupInformationRecordList, groupInformationRecordListLen); + +/** @brief Command description for GetEndpointListRequest + * + * Command: GetEndpointListRequest + * @param startIndex INT8U + * @param total INT8U + * @param startIndex INT8U + * @param count INT8U + * @param endpointInformationRecordList EndpointInformationRecord [] + * @param endpointInformationRecordListLen int + */ +#define emberAfFillCommandZLL \ + CommissioningClusterGetEndpointListRequest(startIndex, total, startIndex, count, endpointInformationRecordList, \ + endpointInformationRecordListLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_GET_ENDPOINT_LIST_REQUEST_COMMAND_ID, "uuuub", startIndex, total, startIndex, count, \ + endpointInformationRecordList, endpointInformationRecordListLen); + +/** @brief Command description for CommandOne + * + * Command: CommandOne + * @param argOne INT8U + * @param argOne INT8U + */ +#define emberAfFillCommandSample \ + Mfg Specific ClusterClusterCommandOne(argOne, argOne) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_COMMAND_ONE_COMMAND_ID, "uu", argOne, argOne); + +/** @brief Command description for SetToken + * + * Command: SetToken + * @param token INT16U + * @param token INT16U + * @param data OCTET_STRING + * @param data OCTET_STRING + */ +#define emberAfFillCommandConfiguration \ + ClusterClusterSetToken(token, token, data, data) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_SET_TOKEN_COMMAND_ID, "uuuu", token, token, data, data); + +/** @brief Command description for LockTokens + * + * Command: LockTokens + */ +#define emberAfFillCommandConfiguration \ + ClusterClusterLockTokens() emberAfFillExternalBuffer(mask, \ + \ + ZCL_LOCK_TOKENS_COMMAND_ID, "", ); + +/** @brief Command description for ReadTokens + * + * Command: ReadTokens + * @param token INT16U + */ +#define emberAfFillCommandConfiguration \ + ClusterClusterReadTokens(token) emberAfFillExternalBuffer(mask, \ + \ + ZCL_READ_TOKENS_COMMAND_ID, "u", token); + +/** @brief Command description for UnlockTokens + * + * Command: UnlockTokens + * @param data OCTET_STRING + */ +#define emberAfFillCommandConfiguration \ + ClusterClusterUnlockTokens(data) emberAfFillExternalBuffer(mask, \ + \ + ZCL_UNLOCK_TOKENS_COMMAND_ID, "u", data); + +/** @brief Command description for stream + * + * Command: stream + * @param channel INT8U + * @param power INT8S + * @param time INT16U + */ +#define emberAfFillCommandMFGLIB \ + ClusterClusterstream(channel, power, time) emberAfFillExternalBuffer(mask, \ + \ + ZCL_STREAM_COMMAND_ID, "uuu", channel, power, time); + +/** @brief Command description for tone + * + * Command: tone + * @param channel INT8U + * @param power INT8S + * @param time INT16U + */ +#define emberAfFillCommandMFGLIB \ + ClusterClustertone(channel, power, time) emberAfFillExternalBuffer(mask, \ + \ + ZCL_TONE_COMMAND_ID, "uuu", channel, power, time); + +/** @brief Command description for rxMode + * + * Command: rxMode + * @param channel INT8U + * @param power INT8S + * @param time INT16U + */ +#define emberAfFillCommandMFGLIB \ + ClusterClusterrxMode(channel, power, time) emberAfFillExternalBuffer(mask, \ + \ + ZCL_RX_MODE_COMMAND_ID, "uuu", channel, power, time); + +/** @brief Command description for EnableApsLinkKeyAuthorization + * + * Command: EnableApsLinkKeyAuthorization + * @param numberExemptClusters INT8U + * @param clusterId CLUSTER_ID + * @param clusterId CLUSTER_ID [] + * @param clusterIdLen int + * @param apsLinkKeyAuthStatus BOOLEAN + */ +#define emberAfFillCommandSL \ + Works With All HubsClusterEnableApsLinkKeyAuthorization(numberExemptClusters, clusterId, clusterId, clusterIdLen, \ + apsLinkKeyAuthStatus) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_ENABLE_APS_LINK_KEY_AUTHORIZATION_COMMAND_ID, "uubu", numberExemptClusters, clusterId, \ + clusterId, clusterIdLen, apsLinkKeyAuthStatus); + +/** @brief Command description for DisableApsLinkKeyAuthorization + * + * Command: DisableApsLinkKeyAuthorization + * @param numberExemptClusters INT8U + * @param powerNotificationReason WwahPowerNotificationReason + * @param clusterId CLUSTER_ID [] + * @param clusterIdLen int + * @param manufacturerId INT16U + * @param manufacturerReasonLength INT8U + * @param manufacturerReason INT8U [] + * @param manufacturerReasonLen int + */ +#define emberAfFillCommandSL \ + Works With All HubsClusterDisableApsLinkKeyAuthorization(numberExemptClusters, powerNotificationReason, clusterId, \ + clusterIdLen, manufacturerId, manufacturerReasonLength, \ + manufacturerReason, manufacturerReasonLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_DISABLE_APS_LINK_KEY_AUTHORIZATION_COMMAND_ID, "uubuub", numberExemptClusters, \ + powerNotificationReason, clusterId, clusterIdLen, manufacturerId, manufacturerReasonLength, \ + manufacturerReason, manufacturerReasonLen); + +/** @brief Command description for ApsLinkKeyAuthorizationQuery + * + * Command: ApsLinkKeyAuthorizationQuery + * @param clusterId CLUSTER_ID + * @param powerNotificationReason WwahPowerNotificationReason + * @param manufacturerId INT16U + * @param manufacturerReasonLength INT8U + * @param manufacturerReason INT8U [] + * @param manufacturerReasonLen int + */ +#define emberAfFillCommandSL \ + Works With All HubsClusterApsLinkKeyAuthorizationQuery(clusterId, powerNotificationReason, manufacturerId, \ + manufacturerReasonLength, manufacturerReason, manufacturerReasonLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_APS_LINK_KEY_AUTHORIZATION_QUERY_COMMAND_ID, "uuuub", clusterId, powerNotificationReason, \ + manufacturerId, manufacturerReasonLength, manufacturerReason, manufacturerReasonLen); + +/** @brief Command description for RequestNewApsLinkKey + * + * Command: RequestNewApsLinkKey + * @param deviceEui64 IEEE_ADDRESS + * @param deviceShort INT16U + */ +#define emberAfFillCommandSL \ + Works With All HubsClusterRequestNewApsLinkKey(deviceEui64, deviceShort) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_REQUEST_NEW_APS_LINK_KEY_COMMAND_ID, "uu", deviceEui64, deviceShort); + +/** @brief Command description for EnableWwahAppEventRetryAlgorithm + * + * Command: EnableWwahAppEventRetryAlgorithm + * @param firstBackoffTimeSeconds INT8U + * @param numberExemptClusters INT8U + * @param backoffSeqCommonRatio INT8U + * @param clusterId CLUSTER_ID [] + * @param clusterIdLen int + * @param maxBackoffTimeSeconds INT32U + * @param maxRedeliveryAttempts INT8U + */ +#define emberAfFillCommandSL \ + Works With All HubsClusterEnableWwahAppEventRetryAlgorithm( \ + firstBackoffTimeSeconds, numberExemptClusters, backoffSeqCommonRatio, clusterId, clusterIdLen, maxBackoffTimeSeconds, \ + maxRedeliveryAttempts) emberAfFillExternalBuffer(mask, \ + \ + ZCL_ENABLE_WWAH_APP_EVENT_RETRY_ALGORITHM_COMMAND_ID, "uuubuu", \ + firstBackoffTimeSeconds, numberExemptClusters, backoffSeqCommonRatio, \ + clusterId, clusterIdLen, maxBackoffTimeSeconds, maxRedeliveryAttempts); + +/** @brief Command description for DisableWwahAppEventRetryAlgorithm + * + * Command: DisableWwahAppEventRetryAlgorithm + * @param currentPowerMode INT32U + * @param availablePowerSources INT32U + * @param currentPowerSource INT32U + * @param currentPowerSourceLevel INT32U + */ +#define emberAfFillCommandSL \ + Works With All HubsClusterDisableWwahAppEventRetryAlgorithm(currentPowerMode, availablePowerSources, currentPowerSource, \ + currentPowerSourceLevel) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_DISABLE_WWAH_APP_EVENT_RETRY_ALGORITHM_COMMAND_ID, "uuuu", currentPowerMode, \ + availablePowerSources, currentPowerSource, currentPowerSourceLevel); + +/** @brief Command description for RequestTime + * + * Command: RequestTime + * @param debugReportId INT8U + * @param debugReportSize INT32U + */ +#define emberAfFillCommandSL \ + Works With All HubsClusterRequestTime(debugReportId, debugReportSize) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_REQUEST_TIME_COMMAND_ID, "uu", debugReportId, debugReportSize); + +/** @brief Command description for EnableWwahRejoinAlgorithm + * + * Command: EnableWwahRejoinAlgorithm + * @param fastRejoinTimeoutSeconds INT16U + * @param debugReportId INT8U + * @param durationBetweenRejoinsSeconds INT16U + * @param debugReportData INT8U [] + * @param debugReportDataLen int + * @param fastRejoinFirstBackoffSeconds INT16U + * @param maxBackoffTimeSeconds INT16U + * @param maxBackoffIterations INT16U + */ +#define emberAfFillCommandSL \ + Works With All HubsClusterEnableWwahRejoinAlgorithm(fastRejoinTimeoutSeconds, debugReportId, durationBetweenRejoinsSeconds, \ + debugReportData, debugReportDataLen, fastRejoinFirstBackoffSeconds, \ + maxBackoffTimeSeconds, maxBackoffIterations) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_ENABLE_WWAH_REJOIN_ALGORITHM_COMMAND_ID, "uuubuuu", fastRejoinTimeoutSeconds, debugReportId, \ + durationBetweenRejoinsSeconds, debugReportData, debugReportDataLen, \ + fastRejoinFirstBackoffSeconds, maxBackoffTimeSeconds, maxBackoffIterations); + +/** @brief Command description for DisableWwahRejoinAlgorithm + * + * Command: DisableWwahRejoinAlgorithm + * @param numberOfClusters INT8U + * @param clusterId CLUSTER_ID [] + * @param clusterIdLen int + */ +#define emberAfFillCommandSL \ + Works With All HubsClusterDisableWwahRejoinAlgorithm(numberOfClusters, clusterId, clusterIdLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_DISABLE_WWAH_REJOIN_ALGORITHM_COMMAND_ID, "ub", numberOfClusters, clusterId, clusterIdLen); + +/** @brief Command description for SetIasZoneEnrollmentMethod + * + * Command: SetIasZoneEnrollmentMethod + * @param enrollmentMode WwahIasZoneEnrollmentMode + * @param numberOfBeacons INT8U + * @param beacon WwahBeaconSurvey [] + * @param beaconLen int + */ +#define emberAfFillCommandSL \ + Works With All HubsClusterSetIasZoneEnrollmentMethod(enrollmentMode, numberOfBeacons, beacon, beaconLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_SET_IAS_ZONE_ENROLLMENT_METHOD_COMMAND_ID, "uub", enrollmentMode, numberOfBeacons, beacon, \ + beaconLen); + +/** @brief Command description for ClearBindingTable + * + * Command: ClearBindingTable + */ +#define emberAfFillCommandSL \ + Works With All HubsClusterClearBindingTable() emberAfFillExternalBuffer(mask, \ + \ + ZCL_CLEAR_BINDING_TABLE_COMMAND_ID, "", ); + +/** @brief Command description for EnablePeriodicRouterCheckIns + * + * Command: EnablePeriodicRouterCheckIns + * @param checkInInterval INT16U + */ +#define emberAfFillCommandSL \ + Works With All HubsClusterEnablePeriodicRouterCheckIns(checkInInterval) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_ENABLE_PERIODIC_ROUTER_CHECK_INS_COMMAND_ID, "u", checkInInterval); + +/** @brief Command description for DisablePeriodicRouterCheckIns + * + * Command: DisablePeriodicRouterCheckIns + */ +#define emberAfFillCommandSL \ + Works With All HubsClusterDisablePeriodicRouterCheckIns() \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_DISABLE_PERIODIC_ROUTER_CHECK_INS_COMMAND_ID, "", ); + +/** @brief Command description for SetMacPollFailureWaitTime + * + * Command: SetMacPollFailureWaitTime + * @param waitTime INT8U + */ +#define emberAfFillCommandSL \ + Works With All HubsClusterSetMacPollFailureWaitTime(waitTime) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_SET_MAC_POLL_FAILURE_WAIT_TIME_COMMAND_ID, "u", waitTime); + +/** @brief Command description for SetPendingNetworkUpdate + * + * Command: SetPendingNetworkUpdate + * @param channel INT8U + * @param panId INT16U + */ +#define emberAfFillCommandSL \ + Works With All HubsClusterSetPendingNetworkUpdate(channel, panId) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_SET_PENDING_NETWORK_UPDATE_COMMAND_ID, "uu", channel, panId); + +/** @brief Command description for RequireApsAcksOnUnicasts + * + * Command: RequireApsAcksOnUnicasts + * @param numberExemptClusters INT8U + * @param clusterId CLUSTER_ID [] + * @param clusterIdLen int + */ +#define emberAfFillCommandSL \ + Works With All HubsClusterRequireApsAcksOnUnicasts(numberExemptClusters, clusterId, clusterIdLen) emberAfFillExternalBuffer( \ + mask, \ + \ + ZCL_REQUIRE_APS_ACKS_ON_UNICASTS_COMMAND_ID, "ub", numberExemptClusters, clusterId, clusterIdLen); + +/** @brief Command description for RemoveApsAcksOnUnicastsRequirement + * + * Command: RemoveApsAcksOnUnicastsRequirement + */ +#define emberAfFillCommandSL \ + Works With All HubsClusterRemoveApsAcksOnUnicastsRequirement() \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_REMOVE_APS_ACKS_ON_UNICASTS_REQUIREMENT_COMMAND_ID, "", ); + +/** @brief Command description for ApsAckRequirementQuery + * + * Command: ApsAckRequirementQuery + */ +#define emberAfFillCommandSL \ + Works With All HubsClusterApsAckRequirementQuery() emberAfFillExternalBuffer(mask, \ + \ + ZCL_APS_ACK_REQUIREMENT_QUERY_COMMAND_ID, "", ); + +/** @brief Command description for DebugReportQuery + * + * Command: DebugReportQuery + * @param debugReportId INT8U + */ +#define emberAfFillCommandSL \ + Works With All HubsClusterDebugReportQuery(debugReportId) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_DEBUG_REPORT_QUERY_COMMAND_ID, "u", debugReportId); + +/** @brief Command description for SurveyBeacons + * + * Command: SurveyBeacons + * @param standardBeacons BOOLEAN + */ +#define emberAfFillCommandSL \ + Works With All HubsClusterSurveyBeacons(standardBeacons) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_SURVEY_BEACONS_COMMAND_ID, "u", standardBeacons); + +/** @brief Command description for DisableOtaDowngrades + * + * Command: DisableOtaDowngrades + */ +#define emberAfFillCommandSL \ + Works With All HubsClusterDisableOtaDowngrades() emberAfFillExternalBuffer(mask, \ + \ + ZCL_DISABLE_OTA_DOWNGRADES_COMMAND_ID, "", ); + +/** @brief Command description for DisableMgmtLeaveWithoutRejoin + * + * Command: DisableMgmtLeaveWithoutRejoin + */ +#define emberAfFillCommandSL \ + Works With All HubsClusterDisableMgmtLeaveWithoutRejoin() \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_DISABLE_MGMT_LEAVE_WITHOUT_REJOIN_COMMAND_ID, "", ); + +/** @brief Command description for DisableTouchlinkInterpanMessageSupport + * + * Command: DisableTouchlinkInterpanMessageSupport + */ +#define emberAfFillCommandSL \ + Works With All HubsClusterDisableTouchlinkInterpanMessageSupport() \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_DISABLE_TOUCHLINK_INTERPAN_MESSAGE_SUPPORT_COMMAND_ID, "", ); + +/** @brief Command description for EnableWwahParentClassification + * + * Command: EnableWwahParentClassification + */ +#define emberAfFillCommandSL \ + Works With All HubsClusterEnableWwahParentClassification() \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_ENABLE_WWAH_PARENT_CLASSIFICATION_COMMAND_ID, "", ); + +/** @brief Command description for DisableWwahParentClassification + * + * Command: DisableWwahParentClassification + */ +#define emberAfFillCommandSL \ + Works With All HubsClusterDisableWwahParentClassification() \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_DISABLE_WWAH_PARENT_CLASSIFICATION_COMMAND_ID, "", ); + +/** @brief Command description for EnableTcSecurityOnNtwkKeyRotation + * + * Command: EnableTcSecurityOnNtwkKeyRotation + */ +#define emberAfFillCommandSL \ + Works With All HubsClusterEnableTcSecurityOnNtwkKeyRotation() \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_ENABLE_TC_SECURITY_ON_NTWK_KEY_ROTATION_COMMAND_ID, "", ); + +/** @brief Command description for EnableWwahBadParentRecovery + * + * Command: EnableWwahBadParentRecovery + */ +#define emberAfFillCommandSL \ + Works With All HubsClusterEnableWwahBadParentRecovery() \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_ENABLE_WWAH_BAD_PARENT_RECOVERY_COMMAND_ID, "", ); + +/** @brief Command description for DisableWwahBadParentRecovery + * + * Command: DisableWwahBadParentRecovery + */ +#define emberAfFillCommandSL \ + Works With All HubsClusterDisableWwahBadParentRecovery() \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_DISABLE_WWAH_BAD_PARENT_RECOVERY_COMMAND_ID, "", ); + +/** @brief Command description for EnableConfigurationMode + * + * Command: EnableConfigurationMode + */ +#define emberAfFillCommandSL \ + Works With All HubsClusterEnableConfigurationMode() emberAfFillExternalBuffer(mask, \ + \ + ZCL_ENABLE_CONFIGURATION_MODE_COMMAND_ID, "", ); + +/** @brief Command description for DisableConfigurationMode + * + * Command: DisableConfigurationMode + */ +#define emberAfFillCommandSL \ + Works With All HubsClusterDisableConfigurationMode() \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_DISABLE_CONFIGURATION_MODE_COMMAND_ID, "", ); + +/** @brief Command description for UseTrustCenterForClusterServer + * + * Command: UseTrustCenterForClusterServer + * @param numberOfClusters INT8U + * @param clusterId CLUSTER_ID [] + * @param clusterIdLen int + */ +#define emberAfFillCommandSL \ + Works With All HubsClusterUseTrustCenterForClusterServer(numberOfClusters, clusterId, clusterIdLen) emberAfFillExternalBuffer( \ + mask, \ + \ + ZCL_USE_TRUST_CENTER_FOR_CLUSTER_SERVER_COMMAND_ID, "ub", numberOfClusters, clusterId, clusterIdLen); + +/** @brief Command description for TrustCenterForClusterServerQuery + * + * Command: TrustCenterForClusterServerQuery + */ +#define emberAfFillCommandSL \ + Works With All HubsClusterTrustCenterForClusterServerQuery() \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_TRUST_CENTER_FOR_CLUSTER_SERVER_QUERY_COMMAND_ID, "", ); + +/** @brief Command description for UseTrustCenterForClusterServerResponse + * + * Command: UseTrustCenterForClusterServerResponse + * @param status Status + * @param clusterStatusLength INT8U + * @param clusterStatus WwahClusterStatusToUseTC [] + * @param clusterStatusLen int + */ +#define emberAfFillCommandSL \ + Works With All HubsClusterUseTrustCenterForClusterServerResponse(status, clusterStatusLength, clusterStatus, clusterStatusLen) \ + emberAfFillExternalBuffer(mask, \ + \ + ZCL_USE_TRUST_CENTER_FOR_CLUSTER_SERVER_RESPONSE_COMMAND_ID, "uub", status, clusterStatusLength, \ + clusterStatus, clusterStatusLen); diff --git a/examples/temperature-measurement-app/esp32/main/gen/cluster-id.h b/examples/temperature-measurement-app/esp32/main/gen/cluster-id.h index fd7ebfad3366b1..c341b079be401d 100644 --- a/examples/temperature-measurement-app/esp32/main/gen/cluster-id.h +++ b/examples/temperature-measurement-app/esp32/main/gen/cluster-id.h @@ -1,4 +1,5 @@ -/** + +/* * * Copyright (c) 2020 Project CHIP Authors * @@ -14,142 +15,333 @@ * 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 SILABS_EMBER_AF_CLUSTER_ID -#define SILABS_EMBER_AF_CLUSTER_ID - -// Cluster domain specification levels: -// * General: zcl-7.0-07-5123-07 -// * Lighting & Occupancy: l&o-1.0-15-0014-04 -// * HA: ha-1.2.1-05-3520-30 -// * Closures: zcl-6.0-15-02018-001 -// * HVAC: zcl-6.0-15-02018-001 -// * Lighting: zcl6-errata-14-0129-15 -// * Measurement & Sensing: zcl-6.0-15-02018-001 -// * Security & Safety: zcl-6.0-15-02018-001 -// * Home Automation: UNKNOWN -// * CBA: cba-1.0-05-3516-12 -// * SE: se-1.2b-15-0131-02 -// * ZLL: zll-1.0-11-0037-10 -// * Telecom Applications: ta-1.0-07-5307-07 -// * Protocol Interfaces: ta-1.0-07-5307-07 -// * Telecommunication: ta-1.0-07-5307-07 -// * Financial: ta-1.0-07-5307-07 -// * Ember: UNKNOWN -// * HC: hc-1.0-07-5360-15 -// * GP: gp-1.0a-09-5499-26 -// * LO: UNKNOWN -// * Works With All Hubs: UNKNOWN -// * WWAH: UNKNOWN -#define ZCL_BASIC_CLUSTER_ID 0x0000 -#define ZCL_POWER_CONFIG_CLUSTER_ID 0x0001 -#define ZCL_DEVICE_TEMP_CLUSTER_ID 0x0002 -#define ZCL_IDENTIFY_CLUSTER_ID 0x0003 -#define ZCL_GROUPS_CLUSTER_ID 0x0004 -#define ZCL_SCENES_CLUSTER_ID 0x0005 -#define ZCL_ON_OFF_CLUSTER_ID 0x0006 -#define ZCL_ON_OFF_SWITCH_CONFIG_CLUSTER_ID 0x0007 -#define ZCL_LEVEL_CONTROL_CLUSTER_ID 0x0008 -#define ZCL_ALARM_CLUSTER_ID 0x0009 -#define ZCL_TIME_CLUSTER_ID 0x000A -#define ZCL_RSSI_LOCATION_CLUSTER_ID 0x000B -#define ZCL_BINARY_INPUT_BASIC_CLUSTER_ID 0x000F -#define ZCL_COMMISSIONING_CLUSTER_ID 0x0015 -#define ZCL_PARTITION_CLUSTER_ID 0x0016 -#define ZCL_OTA_BOOTLOAD_CLUSTER_ID 0x0019 -#define ZCL_POWER_PROFILE_CLUSTER_ID 0x001A -#define ZCL_APPLIANCE_CONTROL_CLUSTER_ID 0x001B -#define ZCL_POLL_CONTROL_CLUSTER_ID 0x0020 -#define ZCL_GREEN_POWER_CLUSTER_ID 0x0021 -#define ZCL_KEEPALIVE_CLUSTER_ID 0x0025 -#define ZCL_SHADE_CONFIG_CLUSTER_ID 0x0100 -#define ZCL_DOOR_LOCK_CLUSTER_ID 0x0101 -#define ZCL_WINDOW_COVERING_CLUSTER_ID 0x0102 -#define ZCL_BARRIER_CONTROL_CLUSTER_ID 0x0103 -#define ZCL_PUMP_CONFIG_CONTROL_CLUSTER_ID 0x0200 -#define ZCL_THERMOSTAT_CLUSTER_ID 0x0201 -#define ZCL_FAN_CONTROL_CLUSTER_ID 0x0202 -#define ZCL_DEHUMID_CONTROL_CLUSTER_ID 0x0203 -#define ZCL_THERMOSTAT_UI_CONFIG_CLUSTER_ID 0x0204 -#define ZCL_COLOR_CONTROL_CLUSTER_ID 0x0300 -#define ZCL_BALLAST_CONFIGURATION_CLUSTER_ID 0x0301 -#define ZCL_ILLUM_MEASUREMENT_CLUSTER_ID 0x0400 -#define ZCL_ILLUM_LEVEL_SENSING_CLUSTER_ID 0x0401 -#define ZCL_TEMP_MEASUREMENT_CLUSTER_ID 0x0402 -#define ZCL_PRESSURE_MEASUREMENT_CLUSTER_ID 0x0403 -#define ZCL_FLOW_MEASUREMENT_CLUSTER_ID 0x0404 -#define ZCL_RELATIVE_HUMIDITY_MEASUREMENT_CLUSTER_ID 0x0405 -#define ZCL_OCCUPANCY_SENSING_CLUSTER_ID 0x0406 -#define ZCL_CARBON_MONOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_ID 0x040C -#define ZCL_CARBON_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_ID 0x040D -#define ZCL_ETHYLENE_CONCENTRATION_MEASUREMENT_CLUSTER_ID 0x040E -#define ZCL_ETHYLENE_OXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_ID 0x040F -#define ZCL_HYDROGEN_CONCENTRATION_MEASUREMENT_CLUSTER_ID 0x0410 -#define ZCL_HYDROGEN_SULPHIDE_CONCENTRATION_MEASUREMENT_CLUSTER_ID 0x0411 -#define ZCL_NITRIC_OXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_ID 0x0412 -#define ZCL_NITROGEN_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_ID 0x0413 -#define ZCL_OXYGEN_CONCENTRATION_MEASUREMENT_CLUSTER_ID 0x0414 -#define ZCL_OZONE_CONCENTRATION_MEASUREMENT_CLUSTER_ID 0x0415 -#define ZCL_SULFUR_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_ID 0x0416 -#define ZCL_DISSOLVED_OXYGEN_CONCENTRATION_MEASUREMENT_CLUSTER_ID 0x0417 -#define ZCL_BROMATE_CONCENTRATION_MEASUREMENT_CLUSTER_ID 0x0418 -#define ZCL_CHLORAMINES_CONCENTRATION_MEASUREMENT_CLUSTER_ID 0x0419 -#define ZCL_CHLORINE_CONCENTRATION_MEASUREMENT_CLUSTER_ID 0x041A -#define ZCL_FECAL_COLIFORM_AND_E_COLI_CONCENTRATION_MEASUREMENT_CLUSTER_ID 0x041B -#define ZCL_FLUORIDE_CONCENTRATION_MEASUREMENT_CLUSTER_ID 0x041C -#define ZCL_HALOACETIC_ACIDS_CONCENTRATION_MEASUREMENT_CLUSTER_ID 0x041D -#define ZCL_TOTAL_TRIHALOMETHANES_CONCENTRATION_MEASUREMENT_CLUSTER_ID 0x041E -#define ZCL_TOTAL_COLIFORM_BACTERIA_CONCENTRATION_MEASUREMENT_CLUSTER_ID 0x041F -#define ZCL_TURBIDITY_CONCENTRATION_MEASUREMENT_CLUSTER_ID 0x0420 -#define ZCL_COPPER_CONCENTRATION_MEASUREMENT_CLUSTER_ID 0x0421 -#define ZCL_LEAD_CONCENTRATION_MEASUREMENT_CLUSTER_ID 0x0422 -#define ZCL_MANGANESE_CONCENTRATION_MEASUREMENT_CLUSTER_ID 0x0423 -#define ZCL_SULFATE_CONCENTRATION_MEASUREMENT_CLUSTER_ID 0x0424 -#define ZCL_BROMODICHLOROMETHANE_CONCENTRATION_MEASUREMENT_CLUSTER_ID 0x0425 -#define ZCL_BROMOFORM_CONCENTRATION_MEASUREMENT_CLUSTER_ID 0x0426 -#define ZCL_CHLORODIBROMOMETHANE_CONCENTRATION_MEASUREMENT_CLUSTER_ID 0x0427 -#define ZCL_CHLOROFORM_CONCENTRATION_MEASUREMENT_CLUSTER_ID 0x0428 -#define ZCL_SODIUM_CONCENTRATION_MEASUREMENT_CLUSTER_ID 0x0429 -#define ZCL_IAS_ZONE_CLUSTER_ID 0x0500 -#define ZCL_IAS_ACE_CLUSTER_ID 0x0501 -#define ZCL_IAS_WD_CLUSTER_ID 0x0502 -#define ZCL_GENERIC_TUNNEL_CLUSTER_ID 0x0600 -#define ZCL_BACNET_PROTOCOL_TUNNEL_CLUSTER_ID 0x0601 -#define ZCL_11073_PROTOCOL_TUNNEL_CLUSTER_ID 0x0614 -#define ZCL_ISO7816_PROTOCOL_TUNNEL_CLUSTER_ID 0x0615 -#define ZCL_PRICE_CLUSTER_ID 0x0700 -#define ZCL_DEMAND_RESPONSE_LOAD_CONTROL_CLUSTER_ID 0x0701 -#define ZCL_SIMPLE_METERING_CLUSTER_ID 0x0702 -#define ZCL_MESSAGING_CLUSTER_ID 0x0703 -#define ZCL_TUNNELING_CLUSTER_ID 0x0704 -#define ZCL_PREPAYMENT_CLUSTER_ID 0x0705 -#define ZCL_ENERGY_MANAGEMENT_CLUSTER_ID 0x0706 -#define ZCL_CALENDAR_CLUSTER_ID 0x0707 -#define ZCL_DEVICE_MANAGEMENT_CLUSTER_ID 0x0708 -#define ZCL_EVENTS_CLUSTER_ID 0x0709 -#define ZCL_MDU_PAIRING_CLUSTER_ID 0x070A -#define ZCL_SUB_GHZ_CLUSTER_ID 0x070B -#define ZCL_KEY_ESTABLISHMENT_CLUSTER_ID 0x0800 -#define ZCL_INFORMATION_CLUSTER_ID 0x0900 -#define ZCL_DATA_SHARING_CLUSTER_ID 0x0901 -#define ZCL_GAMING_CLUSTER_ID 0x0902 -#define ZCL_DATA_RATE_CONTROL_CLUSTER_ID 0x0903 -#define ZCL_VOICE_OVER_ZIGBEE_CLUSTER_ID 0x0904 -#define ZCL_CHATTING_CLUSTER_ID 0x0905 -#define ZCL_PAYMENT_CLUSTER_ID 0x0A01 -#define ZCL_BILLING_CLUSTER_ID 0x0A02 -#define ZCL_APPLIANCE_IDENTIFICATION_CLUSTER_ID 0x0B00 -#define ZCL_METER_IDENTIFICATION_CLUSTER_ID 0x0B01 -#define ZCL_APPLIANCE_EVENTS_AND_ALERT_CLUSTER_ID 0x0B02 -#define ZCL_APPLIANCE_STATISTICS_CLUSTER_ID 0x0B03 -#define ZCL_ELECTRICAL_MEASUREMENT_CLUSTER_ID 0x0B04 -#define ZCL_DIAGNOSTICS_CLUSTER_ID 0x0B05 -#define ZCL_ZLL_COMMISSIONING_CLUSTER_ID 0x1000 -#define ZCL_SAMPLE_MFG_SPECIFIC_CLUSTER_ID 0xFC00 -#define ZCL_SAMPLE_MFG_SPECIFIC_CLUSTER_2_ID 0xFC00 -#define ZCL_OTA_CONFIGURATION_CLUSTER_ID 0xFC01 -#define ZCL_MFGLIB_CLUSTER_ID 0xFC02 -#define ZCL_SL_WWAH_CLUSTER_ID 0xFC57 -#endif // SILABS_EMBER_AF_CLUSTER_ID + +// Prevent multiple inclusion +#pragma once + +// Definitions for cluster: Basic +#define ZCL_BASIC_CLUSTER_ID (0x0000) + +// Definitions for cluster: Power Configuration +#define ZCL_POWER_CONFIG_CLUSTER_ID (0x0001) + +// Definitions for cluster: Device Temperature Configuration +#define ZCL_DEVICE_TEMP_CLUSTER_ID (0x0002) + +// Definitions for cluster: Identify +#define ZCL_IDENTIFY_CLUSTER_ID (0x0003) + +// Definitions for cluster: Groups +#define ZCL_GROUPS_CLUSTER_ID (0x0004) + +// Definitions for cluster: Scenes +#define ZCL_SCENES_CLUSTER_ID (0x0005) + +// Definitions for cluster: On/off +#define ZCL_ON_OFF_CLUSTER_ID (0x0006) + +// Definitions for cluster: On/off Switch Configuration +#define ZCL_ON_OFF_SWITCH_CONFIG_CLUSTER_ID (0x0007) + +// Definitions for cluster: Level Control +#define ZCL_LEVEL_CONTROL_CLUSTER_ID (0x0008) + +// Definitions for cluster: Alarms +#define ZCL_ALARM_CLUSTER_ID (0x0009) + +// Definitions for cluster: Time +#define ZCL_TIME_CLUSTER_ID (0x000A) + +// Definitions for cluster: RSSI Location +#define ZCL_RSSI_LOCATION_CLUSTER_ID (0x000B) + +// Definitions for cluster: Binary Input (Basic) +#define ZCL_BINARY_INPUT_BASIC_CLUSTER_ID (0x000F) + +// Definitions for cluster: Commissioning +#define ZCL_COMMISSIONING_CLUSTER_ID (0x0015) + +// Definitions for cluster: Partition +#define ZCL_PARTITION_CLUSTER_ID (0x0016) + +// Definitions for cluster: Over the Air Bootloading +#define ZCL_OTA_BOOTLOAD_CLUSTER_ID (0x0019) + +// Definitions for cluster: Power Profile +#define ZCL_POWER_PROFILE_CLUSTER_ID (0x001A) + +// Definitions for cluster: Appliance Control +#define ZCL_APPLIANCE_CONTROL_CLUSTER_ID (0x001B) + +// Definitions for cluster: Poll Control +#define ZCL_POLL_CONTROL_CLUSTER_ID (0x0020) + +// Definitions for cluster: Green Power +#define ZCL_GREEN_POWER_CLUSTER_ID (0x0021) + +// Definitions for cluster: Keep-Alive +#define ZCL_KEEPALIVE_CLUSTER_ID (0x0025) + +// Definitions for cluster: Shade Configuration +#define ZCL_SHADE_CONFIG_CLUSTER_ID (0x0100) + +// Definitions for cluster: Door Lock +#define ZCL_DOOR_LOCK_CLUSTER_ID (0x0101) + +// Definitions for cluster: Window Covering +#define ZCL_WINDOW_COVERING_CLUSTER_ID (0x0102) + +// Definitions for cluster: Barrier Control +#define ZCL_BARRIER_CONTROL_CLUSTER_ID (0x0103) + +// Definitions for cluster: Pump Configuration and Control +#define ZCL_PUMP_CONFIG_CONTROL_CLUSTER_ID (0x0200) + +// Definitions for cluster: Thermostat +#define ZCL_THERMOSTAT_CLUSTER_ID (0x0201) + +// Definitions for cluster: Fan Control +#define ZCL_FAN_CONTROL_CLUSTER_ID (0x0202) + +// Definitions for cluster: Dehumidification Control +#define ZCL_DEHUMID_CONTROL_CLUSTER_ID (0x0203) + +// Definitions for cluster: Thermostat User Interface Configuration +#define ZCL_THERMOSTAT_UI_CONFIG_CLUSTER_ID (0x0204) + +// Definitions for cluster: Color Control +#define ZCL_COLOR_CONTROL_CLUSTER_ID (0x0300) + +// Definitions for cluster: Ballast Configuration +#define ZCL_BALLAST_CONFIGURATION_CLUSTER_ID (0x0301) + +// Definitions for cluster: Illuminance Measurement +#define ZCL_ILLUM_MEASUREMENT_CLUSTER_ID (0x0400) + +// Definitions for cluster: Illuminance Level Sensing +#define ZCL_ILLUM_LEVEL_SENSING_CLUSTER_ID (0x0401) + +// Definitions for cluster: Temperature Measurement +#define ZCL_TEMP_MEASUREMENT_CLUSTER_ID (0x0402) + +// Definitions for cluster: Pressure Measurement +#define ZCL_PRESSURE_MEASUREMENT_CLUSTER_ID (0x0403) + +// Definitions for cluster: Flow Measurement +#define ZCL_FLOW_MEASUREMENT_CLUSTER_ID (0x0404) + +// Definitions for cluster: Relative Humidity Measurement +#define ZCL_RELATIVE_HUMIDITY_MEASUREMENT_CLUSTER_ID (0x0405) + +// Definitions for cluster: Occupancy Sensing +#define ZCL_OCCUPANCY_SENSING_CLUSTER_ID (0x0406) + +// Definitions for cluster: Carbon Monoxide Concentration Measurement +#define ZCL_CARBON_MONOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_ID (0x040C) + +// Definitions for cluster: Carbon Dioxide Concentration Measurement +#define ZCL_CARBON_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_ID (0x040D) + +// Definitions for cluster: Ethylene Concentration Measurement +#define ZCL_ETHYLENE_CONCENTRATION_MEASUREMENT_CLUSTER_ID (0x040E) + +// Definitions for cluster: Ethylene Oxide Concentration Measurement +#define ZCL_ETHYLENE_OXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_ID (0x040F) + +// Definitions for cluster: Hydrogen Concentration Measurement +#define ZCL_HYDROGEN_CONCENTRATION_MEASUREMENT_CLUSTER_ID (0x0410) + +// Definitions for cluster: Hydrogen Sulphide Concentration Measurement +#define ZCL_HYDROGEN_SULPHIDE_CONCENTRATION_MEASUREMENT_CLUSTER_ID (0x0411) + +// Definitions for cluster: Nitric Oxide Concentration Measurement +#define ZCL_NITRIC_OXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_ID (0x0412) + +// Definitions for cluster: Nitrogen Dioxide Concentration Measurement +#define ZCL_NITROGEN_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_ID (0x0413) + +// Definitions for cluster: Oxygen Concentration Measurement +#define ZCL_OXYGEN_CONCENTRATION_MEASUREMENT_CLUSTER_ID (0x0414) + +// Definitions for cluster: Ozone Concentration Measurement +#define ZCL_OZONE_CONCENTRATION_MEASUREMENT_CLUSTER_ID (0x0415) + +// Definitions for cluster: Sulfur Dioxide Concentration Measurement +#define ZCL_SULFUR_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_ID (0x0416) + +// Definitions for cluster: Dissolved Oxygen Concentration Measurement +#define ZCL_DISSOLVED_OXYGEN_CONCENTRATION_MEASUREMENT_CLUSTER_ID (0x0417) + +// Definitions for cluster: Bromate Concentration Measurement +#define ZCL_BROMATE_CONCENTRATION_MEASUREMENT_CLUSTER_ID (0x0418) + +// Definitions for cluster: Chloramines Concentration Measurement +#define ZCL_CHLORAMINES_CONCENTRATION_MEASUREMENT_CLUSTER_ID (0x0419) + +// Definitions for cluster: Chlorine Concentration Measurement +#define ZCL_CHLORINE_CONCENTRATION_MEASUREMENT_CLUSTER_ID (0x041A) + +// Definitions for cluster: Fecal coliform and E. Coli Concentration Measurement +#define ZCL_FECAL_COLIFORM_AND_E_COLI_CONCENTRATION_MEASUREMENT_CLUSTER_ID (0x041B) + +// Definitions for cluster: Fluoride Concentration Measurement +#define ZCL_FLUORIDE_CONCENTRATION_MEASUREMENT_CLUSTER_ID (0x041C) + +// Definitions for cluster: Haloacetic Acids Concentration Measurement +#define ZCL_HALOACETIC_ACIDS_CONCENTRATION_MEASUREMENT_CLUSTER_ID (0x041D) + +// Definitions for cluster: Total Trihalomethanes Concentration Measurement +#define ZCL_TOTAL_TRIHALOMETHANES_CONCENTRATION_MEASUREMENT_CLUSTER_ID (0x041E) + +// Definitions for cluster: Total Coliform Bacteria Concentration Measurement +#define ZCL_TOTAL_COLIFORM_BACTERIA_CONCENTRATION_MEASUREMENT_CLUSTER_ID (0x041F) + +// Definitions for cluster: Turbidity Concentration Measurement +#define ZCL_TURBIDITY_CONCENTRATION_MEASUREMENT_CLUSTER_ID (0x0420) + +// Definitions for cluster: Copper Concentration Measurement +#define ZCL_COPPER_CONCENTRATION_MEASUREMENT_CLUSTER_ID (0x0421) + +// Definitions for cluster: Lead Concentration Measurement +#define ZCL_LEAD_CONCENTRATION_MEASUREMENT_CLUSTER_ID (0x0422) + +// Definitions for cluster: Manganese Concentration Measurement +#define ZCL_MANGANESE_CONCENTRATION_MEASUREMENT_CLUSTER_ID (0x0423) + +// Definitions for cluster: Sulfate Concentration Measurement +#define ZCL_SULFATE_CONCENTRATION_MEASUREMENT_CLUSTER_ID (0x0424) + +// Definitions for cluster: Bromodichloromethane Concentration Measurement +#define ZCL_BROMODICHLOROMETHANE_CONCENTRATION_MEASUREMENT_CLUSTER_ID (0x0425) + +// Definitions for cluster: Bromoform Concentration Measurement +#define ZCL_BROMOFORM_CONCENTRATION_MEASUREMENT_CLUSTER_ID (0x0426) + +// Definitions for cluster: Chlorodibromomethane Concentration Measurement +#define ZCL_CHLORODIBROMOMETHANE_CONCENTRATION_MEASUREMENT_CLUSTER_ID (0x0427) + +// Definitions for cluster: Chloroform Concentration Measurement +#define ZCL_CHLOROFORM_CONCENTRATION_MEASUREMENT_CLUSTER_ID (0x0428) + +// Definitions for cluster: Sodium Concentration Measurement +#define ZCL_SODIUM_CONCENTRATION_MEASUREMENT_CLUSTER_ID (0x0429) + +// Definitions for cluster: IAS Zone +#define ZCL_IAS_ZONE_CLUSTER_ID (0x0500) + +// Definitions for cluster: IAS ACE +#define ZCL_IAS_ACE_CLUSTER_ID (0x0501) + +// Definitions for cluster: IAS WD +#define ZCL_IAS_WD_CLUSTER_ID (0x0502) + +// Definitions for cluster: Generic Tunnel +#define ZCL_GENERIC_TUNNEL_CLUSTER_ID (0x0600) + +// Definitions for cluster: BACnet Protocol Tunnel +#define ZCL_BACNET_PROTOCOL_TUNNEL_CLUSTER_ID (0x0601) + +// Definitions for cluster: 11073 Protocol Tunnel +#define ZCL_11073_PROTOCOL_TUNNEL_CLUSTER_ID (0x0614) + +// Definitions for cluster: ISO 7816 Protocol Tunnel +#define ZCL_ISO7816_PROTOCOL_TUNNEL_CLUSTER_ID (0x0615) + +// Definitions for cluster: Price +#define ZCL_PRICE_CLUSTER_ID (0x0700) + +// Definitions for cluster: Demand Response and Load Control +#define ZCL_DEMAND_RESPONSE_LOAD_CONTROL_CLUSTER_ID (0x0701) + +// Definitions for cluster: Simple Metering +#define ZCL_SIMPLE_METERING_CLUSTER_ID (0x0702) + +// Definitions for cluster: Messaging +#define ZCL_MESSAGING_CLUSTER_ID (0x0703) + +// Definitions for cluster: Tunneling +#define ZCL_TUNNELING_CLUSTER_ID (0x0704) + +// Definitions for cluster: Prepayment +#define ZCL_PREPAYMENT_CLUSTER_ID (0x0705) + +// Definitions for cluster: Energy Management +#define ZCL_ENERGY_MANAGEMENT_CLUSTER_ID (0x0706) + +// Definitions for cluster: Calendar +#define ZCL_CALENDAR_CLUSTER_ID (0x0707) + +// Definitions for cluster: Device Management +#define ZCL_DEVICE_MANAGEMENT_CLUSTER_ID (0x0708) + +// Definitions for cluster: Events +#define ZCL_EVENTS_CLUSTER_ID (0x0709) + +// Definitions for cluster: MDU Pairing +#define ZCL_MDU_PAIRING_CLUSTER_ID (0x070A) + +// Definitions for cluster: Sub-GHz +#define ZCL_SUB_GHZ_CLUSTER_ID (0x070B) + +// Definitions for cluster: Key Establishment +#define ZCL_KEY_ESTABLISHMENT_CLUSTER_ID (0x0800) + +// Definitions for cluster: Information +#define ZCL_INFORMATION_CLUSTER_ID (0x0900) + +// Definitions for cluster: Data Sharing +#define ZCL_DATA_SHARING_CLUSTER_ID (0x0901) + +// Definitions for cluster: Gaming +#define ZCL_GAMING_CLUSTER_ID (0x0902) + +// Definitions for cluster: Data Rate Control +#define ZCL_DATA_RATE_CONTROL_CLUSTER_ID (0x0903) + +// Definitions for cluster: Voice over ZigBee +#define ZCL_VOICE_OVER_ZIGBEE_CLUSTER_ID (0x0904) + +// Definitions for cluster: Chatting +#define ZCL_CHATTING_CLUSTER_ID (0x0905) + +// Definitions for cluster: Payment +#define ZCL_PAYMENT_CLUSTER_ID (0x0A01) + +// Definitions for cluster: Billing +#define ZCL_BILLING_CLUSTER_ID (0x0A02) + +// Definitions for cluster: Appliance Identification +#define ZCL_APPLIANCE_IDENTIFICATION_CLUSTER_ID (0x0B00) + +// Definitions for cluster: Meter Identification +#define ZCL_METER_IDENTIFICATION_CLUSTER_ID (0x0B01) + +// Definitions for cluster: Appliance Events and Alert +#define ZCL_APPLIANCE_EVENTS_AND_ALERT_CLUSTER_ID (0x0B02) + +// Definitions for cluster: Appliance Statistics +#define ZCL_APPLIANCE_STATISTICS_CLUSTER_ID (0x0B03) + +// Definitions for cluster: Electrical Measurement +#define ZCL_ELECTRICAL_MEASUREMENT_CLUSTER_ID (0x0B04) + +// Definitions for cluster: Diagnostics +#define ZCL_DIAGNOSTICS_CLUSTER_ID (0x0B05) + +// Definitions for cluster: ZLL Commissioning +#define ZCL_ZLL_COMMISSIONING_CLUSTER_ID (0x1000) + +// Definitions for cluster: Sample Mfg Specific Cluster +#define ZCL_SAMPLE_MFG_SPECIFIC_CLUSTER_ID (0xFC00) + +// Definitions for cluster: Sample Mfg Specific Cluster 2 +#define ZCL_SAMPLE_MFG_SPECIFIC_CLUSTER_2_ID (0xFC00) + +// Definitions for cluster: Configuration Cluster +#define ZCL_OTA_CONFIGURATION_CLUSTER_ID (0xFC01) + +// Definitions for cluster: MFGLIB Cluster +#define ZCL_MFGLIB_CLUSTER_ID (0xFC02) + +// Definitions for cluster: SL Works With All Hubs +#define ZCL_SL_WWAH_CLUSTER_ID (0xFC57) diff --git a/examples/temperature-measurement-app/esp32/main/gen/clusters-callback-stubs.c b/examples/temperature-measurement-app/esp32/main/gen/clusters-callback-stubs.c deleted file mode 100644 index adf75ceeb89c97..00000000000000 --- a/examples/temperature-measurement-app/esp32/main/gen/clusters-callback-stubs.c +++ /dev/null @@ -1,385 +0,0 @@ -/** - * - * 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. - */ - -// This callback file is created for your convenience. You may add application -// code to this file. If you regenerate this file over a previous version, the -// previous version will be overwritten and any code you have added will be -// lost. - -#include "af.h" - -/** @brief Identify Cluster Identify Query Response - * - * - * - * @param timeout Ver.: always - */ -bool emberAfIdentifyClusterIdentifyQueryResponseCallback(uint16_t timeout) -{ - return false; -} - -/** @brief Door Lock Cluster Clear All Pins - * - * - * - */ -bool emberAfDoorLockClusterClearAllPinsCallback(void) -{ - return false; -} - -/** @brief Door Lock Cluster Clear All Rfids - * - * - * - */ -bool emberAfDoorLockClusterClearAllRfidsCallback(void) -{ - return false; -} - -/** @brief Door Lock Cluster Clear Holiday Schedule - * - * - * - * @param scheduleId Ver.: always - */ -bool emberAfDoorLockClusterClearHolidayScheduleCallback(uint8_t scheduleId) -{ - return false; -} - -/** @brief Door Lock Cluster Clear Pin - * - * - * - * @param userId Ver.: always - */ -bool emberAfDoorLockClusterClearPinCallback(uint16_t userId) -{ - return false; -} - -/** @brief Door Lock Cluster Clear Rfid - * - * - * - * @param userId Ver.: always - */ -bool emberAfDoorLockClusterClearRfidCallback(uint16_t userId) -{ - return false; -} - -/** @brief Door Lock Cluster Clear Weekday Schedule - * - * - * - * @param scheduleId Ver.: always - * @param userId Ver.: always - */ -bool emberAfDoorLockClusterClearWeekdayScheduleCallback(uint8_t scheduleId, uint16_t userId) -{ - return false; -} - -/** @brief Door Lock Cluster Get Holiday Schedule - * - * - * - * @param scheduleId Ver.: always - */ -bool emberAfDoorLockClusterGetHolidayScheduleCallback(uint8_t scheduleId) -{ - return false; -} - -/** @brief Door Lock Cluster Get Log Record - * - * - * - * @param logIndex Ver.: always - */ -bool emberAfDoorLockClusterGetLogRecordCallback(uint16_t logIndex) -{ - return false; -} - -/** @brief Door Lock Cluster Get Pin - * - * - * - * @param userId Ver.: always - */ -bool emberAfDoorLockClusterGetPinCallback(uint16_t userId) -{ - return false; -} - -/** @brief Door Lock Cluster Get Rfid - * - * - * - * @param userId Ver.: always - */ -bool emberAfDoorLockClusterGetRfidCallback(uint16_t userId) -{ - return false; -} - -/** @brief Door Lock Cluster Get User Type - * - * - * - * @param userId Ver.: always - */ -bool emberAfDoorLockClusterGetUserTypeCallback(uint16_t userId) -{ - return false; -} - -/** @brief Door Lock Cluster Get Weekday Schedule - * - * - * - * @param scheduleId Ver.: always - * @param userId Ver.: always - */ -bool emberAfDoorLockClusterGetWeekdayScheduleCallback(uint8_t scheduleId, uint16_t userId) -{ - return false; -} - -/** @brief Door Lock Cluster Get Yearday Schedule - * - * - * - * @param scheduleId Ver.: always - * @param userId Ver.: always - */ -bool emberAfDoorLockClusterGetYeardayScheduleCallback(uint8_t scheduleId, uint16_t userId) -{ - return false; -} - -/** @brief Door Lock Cluster Lock Door - * - * - * - * @param PIN Ver.: since ha-1.2-05-3520-29 - */ -bool emberAfDoorLockClusterLockDoorCallback(uint8_t * PIN) -{ - return false; -} - -/** @brief Door Lock Cluster Set Holiday Schedule - * - * - * - * @param scheduleId Ver.: always - * @param localStartTime Ver.: always - * @param localEndTime Ver.: always - * @param operatingModeDuringHoliday Ver.: always - */ -bool emberAfDoorLockClusterSetHolidayScheduleCallback(uint8_t scheduleId, uint32_t localStartTime, uint32_t localEndTime, - uint8_t operatingModeDuringHoliday) -{ - return false; -} - -/** @brief Door Lock Cluster Set Pin - * - * - * - * @param userId Ver.: always - * @param userStatus Ver.: always - * @param userType Ver.: always - * @param pin Ver.: always - */ -bool emberAfDoorLockClusterSetPinCallback(uint16_t userId, uint8_t userStatus, uint8_t userType, uint8_t * pin) -{ - return false; -} - -/** @brief Door Lock Cluster Set Rfid - * - * - * - * @param userId Ver.: always - * @param userStatus Ver.: always - * @param userType Ver.: always - * @param id Ver.: always - */ -bool emberAfDoorLockClusterSetRfidCallback(uint16_t userId, uint8_t userStatus, uint8_t userType, uint8_t * id) -{ - return false; -} - -/** @brief Door Lock Cluster Clear Yearday Schedule - * - * - * - * @param scheduleId Ver.: always - * @param userId Ver.: always - */ -bool emberAfDoorLockClusterClearYeardayScheduleCallback(uint8_t scheduleId, uint16_t userId) -{ - return false; -} - -/** @brief Door Lock Cluster Set User Type - * - * - * - * @param userId Ver.: always - * @param userType Ver.: always - */ -bool emberAfDoorLockClusterSetUserTypeCallback(uint16_t userId, uint8_t userType) -{ - return false; -} - -/** @brief Door Lock Cluster Set Weekday Schedule - * - * - * - * @param scheduleId Ver.: always - * @param userId Ver.: always - * @param daysMask Ver.: always - * @param startHour Ver.: always - * @param startMinute Ver.: always - * @param endHour Ver.: always - * @param endMinute Ver.: always - */ -bool emberAfDoorLockClusterSetWeekdayScheduleCallback(uint8_t scheduleId, uint16_t userId, uint8_t daysMask, uint8_t startHour, - uint8_t startMinute, uint8_t endHour, uint8_t endMinute) -{ - return false; -} - -/** @brief Door Lock Cluster Set Yearday Schedule - * - * - * - * @param scheduleId Ver.: always - * @param userId Ver.: always - * @param localStartTime Ver.: always - * @param localEndTime Ver.: always - */ -bool emberAfDoorLockClusterSetYeardayScheduleCallback(uint8_t scheduleId, uint16_t userId, uint32_t localStartTime, - uint32_t localEndTime) -{ - return false; -} - -/** @brief Door Lock Cluster Unlock Door - * - * - * - * @param PIN Ver.: since ha-1.2-05-3520-29 - */ -bool emberAfDoorLockClusterUnlockDoorCallback(uint8_t * PIN) -{ - return false; -} - -/** @brief Door Lock Cluster Unlock With Timeout - * - * - * - * @param timeoutInSeconds Ver.: always - * @param pin Ver.: since ha-1.2-05-3520-29 - */ -bool emberAfDoorLockClusterUnlockWithTimeoutCallback(uint16_t timeoutInSeconds, uint8_t * pin) -{ - return false; -} - -/** @brief IAS Zone Cluster Zone Enroll Request - * - * - * - * @param zoneType Ver.: always - * @param manufacturerCode Ver.: always - */ -bool emberAfIasZoneClusterZoneEnrollRequestCallback(uint16_t zoneType, uint16_t manufacturerCode) -{ - return false; -} - -/** @brief IAS Zone Cluster Zone Enroll Response - * - * - * - * @param enrollResponseCode Ver.: always - * @param zoneId Ver.: always - */ -bool emberAfIasZoneClusterZoneEnrollResponseCallback(uint8_t enrollResponseCode, uint8_t zoneId) -{ - return false; -} - -/** @brief IAS Zone Cluster Zone Status Change Notification - * - * - * - * @param zoneStatus Ver.: always - * @param extendedStatus Ver.: always - * @param zoneId Ver.: since ha-1.2-05-3520-29 - * @param delay Ver.: since ha-1.2-05-3520-29 - */ -bool emberAfIasZoneClusterZoneStatusChangeNotificationCallback(uint16_t zoneStatus, uint8_t extendedStatus, uint8_t zoneId, - uint16_t delay) -{ - return false; -} - -// endpoint_config.h callbacks, grep'd from SDK, comment these out as clusters come in - -void emberAfDoorLockClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId) {} -void emberAfIasZoneClusterClientInitCallback(uint8_t endpoint) {} -void emberAfIasZoneClusterServerInitCallback(uint8_t endpoint) {} -void emberAfIasZoneClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status) -{} - -EmberAfStatus emberAfIasZoneClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value) -{ - return EMBER_ZCL_STATUS_SUCCESS; -} - -void emberAfPluginDoorLockServerInitCallback(void) {} -void emberAfPollControlClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId) {} -void emberAfPollControlClusterServerInitCallback(uint8_t endpoint) {} -void emberAfPluginPollControlServerStackStatusCallback(EmberStatus status) {} -EmberAfStatus emberAfPollControlClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value) -{ - return EMBER_ZCL_STATUS_SUCCESS; -} - -void emberAfPluginIasZoneClientZdoCallback(EmberNodeId emberNodeId, EmberApsFrame * apsFrame, uint8_t * message, uint16_t length) {} - -void emberAfPluginIasZoneClientWriteAttributesResponseCallback(EmberAfClusterId clusterId, uint8_t * buffer, uint16_t bufLen) {} - -void emberAfPluginIasZoneClientReadAttributesResponseCallback(EmberAfClusterId clusterId, uint8_t * buffer, uint16_t bufLen) {} diff --git a/examples/temperature-measurement-app/esp32/main/gen/command-id.h b/examples/temperature-measurement-app/esp32/main/gen/command-id.h index e56b090b9108d2..940258f4527aa5 100644 --- a/examples/temperature-measurement-app/esp32/main/gen/command-id.h +++ b/examples/temperature-measurement-app/esp32/main/gen/command-id.h @@ -1,4 +1,5 @@ -/** + +/* * * Copyright (c) 2020 Project CHIP Authors * @@ -14,1007 +15,733 @@ * 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 SILABS_EMBER_AF_COMMAND_ID -#define SILABS_EMBER_AF_COMMAND_ID - -// Global commands - -// Either direction -#define ZCL_READ_ATTRIBUTES_COMMAND_ID 0x00 // Ver.: always -#define ZCL_READ_ATTRIBUTES_RESPONSE_COMMAND_ID 0x01 // Ver.: always -#define ZCL_WRITE_ATTRIBUTES_COMMAND_ID 0x02 // Ver.: always -#define ZCL_WRITE_ATTRIBUTES_UNDIVIDED_COMMAND_ID 0x03 // Ver.: always -#define ZCL_WRITE_ATTRIBUTES_RESPONSE_COMMAND_ID 0x04 // Ver.: always -#define ZCL_WRITE_ATTRIBUTES_NO_RESPONSE_COMMAND_ID 0x05 // Ver.: always -#define ZCL_CONFIGURE_REPORTING_COMMAND_ID 0x06 // Ver.: always -#define ZCL_CONFIGURE_REPORTING_RESPONSE_COMMAND_ID 0x07 // Ver.: always -#define ZCL_READ_REPORTING_CONFIGURATION_COMMAND_ID 0x08 // Ver.: always -#define ZCL_READ_REPORTING_CONFIGURATION_RESPONSE_COMMAND_ID 0x09 // Ver.: always -#define ZCL_REPORT_ATTRIBUTES_COMMAND_ID 0x0A // Ver.: always -#define ZCL_DEFAULT_RESPONSE_COMMAND_ID 0x0B // Ver.: always -#define ZCL_DISCOVER_ATTRIBUTES_COMMAND_ID 0x0C // Ver.: always -#define ZCL_DISCOVER_ATTRIBUTES_RESPONSE_COMMAND_ID 0x0D // Ver.: always -#define ZCL_READ_ATTRIBUTES_STRUCTURED_COMMAND_ID 0x0E // Ver.: always -#define ZCL_WRITE_ATTRIBUTES_STRUCTURED_COMMAND_ID 0x0F // Ver.: always -#define ZCL_WRITE_ATTRIBUTES_STRUCTURED_RESPONSE_COMMAND_ID 0x10 // Ver.: always -#define ZCL_DISCOVER_COMMANDS_RECEIVED_COMMAND_ID 0x11 // Ver.: always -#define ZCL_DISCOVER_COMMANDS_RECEIVED_RESPONSE_COMMAND_ID 0x12 // Ver.: always -#define ZCL_DISCOVER_COMMANDS_GENERATED_COMMAND_ID 0x13 // Ver.: always -#define ZCL_DISCOVER_COMMANDS_GENERATED_RESPONSE_COMMAND_ID 0x14 // Ver.: always -#define ZCL_DISCOVER_ATTRIBUTES_EXTENDED_COMMAND_ID 0x15 // Ver.: always -#define ZCL_DISCOVER_ATTRIBUTES_EXTENDED_RESPONSE_COMMAND_ID 0x16 // Ver.: always -// Command types for cluster: Basic -// Cluster specification level: zcl-7.0-07-5123-07 - -// Server to client -#define ZCL_GET_LOCALES_SUPPORTED_RESPONSE_COMMAND_ID 0x01 // Ver.: always - -// Client to server -#define ZCL_RESET_TO_FACTORY_DEFAULTS_COMMAND_ID 0x00 // Ver.: always -#define ZCL_GET_LOCALES_SUPPORTED_COMMAND_ID 0x01 // Ver.: always - -// Command types for cluster: Identify -// Cluster specification level: zcl-7.0-07-5123-07 - -// Server to client -#define ZCL_IDENTIFY_QUERY_RESPONSE_COMMAND_ID 0x00 // Ver.: always - -// Client to server -#define ZCL_IDENTIFY_COMMAND_ID 0x00 // Ver.: always -#define ZCL_IDENTIFY_QUERY_COMMAND_ID 0x01 // Ver.: always -#define ZCL_E_Z_MODE_INVOKE_COMMAND_ID 0x02 // Ver.: always -#define ZCL_UPDATE_COMMISSION_STATE_COMMAND_ID 0x03 // Ver.: always -#define ZCL_TRIGGER_EFFECT_COMMAND_ID 0x40 // Ver.: since zll-1.0-11-0037-10 - -// Command types for cluster: Groups -// Cluster specification level: zcl-7.0-07-5123-07 - -// Server to client -#define ZCL_ADD_GROUP_RESPONSE_COMMAND_ID 0x00 // Ver.: always -#define ZCL_VIEW_GROUP_RESPONSE_COMMAND_ID 0x01 // Ver.: always -#define ZCL_GET_GROUP_MEMBERSHIP_RESPONSE_COMMAND_ID 0x02 // Ver.: always -#define ZCL_REMOVE_GROUP_RESPONSE_COMMAND_ID 0x03 // Ver.: always - -// Client to server -#define ZCL_ADD_GROUP_COMMAND_ID 0x00 // Ver.: always -#define ZCL_VIEW_GROUP_COMMAND_ID 0x01 // Ver.: always -#define ZCL_GET_GROUP_MEMBERSHIP_COMMAND_ID 0x02 // Ver.: always -#define ZCL_REMOVE_GROUP_COMMAND_ID 0x03 // Ver.: always -#define ZCL_REMOVE_ALL_GROUPS_COMMAND_ID 0x04 // Ver.: always -#define ZCL_ADD_GROUP_IF_IDENTIFYING_COMMAND_ID 0x05 // Ver.: always - -// Command types for cluster: Scenes -// Cluster specification level: zcl-7.0-07-5123-07 - -// Server to client -#define ZCL_ADD_SCENE_RESPONSE_COMMAND_ID 0x00 // Ver.: always -#define ZCL_VIEW_SCENE_RESPONSE_COMMAND_ID 0x01 // Ver.: always -#define ZCL_REMOVE_SCENE_RESPONSE_COMMAND_ID 0x02 // Ver.: always -#define ZCL_REMOVE_ALL_SCENES_RESPONSE_COMMAND_ID 0x03 // Ver.: always -#define ZCL_STORE_SCENE_RESPONSE_COMMAND_ID 0x04 // Ver.: always -#define ZCL_GET_SCENE_MEMBERSHIP_RESPONSE_COMMAND_ID 0x06 // Ver.: always -#define ZCL_ENHANCED_ADD_SCENE_RESPONSE_COMMAND_ID 0x40 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_ENHANCED_VIEW_SCENE_RESPONSE_COMMAND_ID 0x41 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_COPY_SCENE_RESPONSE_COMMAND_ID 0x42 // Ver.: since zll-1.0-11-0037-10 - -// Client to server -#define ZCL_ADD_SCENE_COMMAND_ID 0x00 // Ver.: always -#define ZCL_VIEW_SCENE_COMMAND_ID 0x01 // Ver.: always -#define ZCL_REMOVE_SCENE_COMMAND_ID 0x02 // Ver.: always -#define ZCL_REMOVE_ALL_SCENES_COMMAND_ID 0x03 // Ver.: always -#define ZCL_STORE_SCENE_COMMAND_ID 0x04 // Ver.: always -#define ZCL_RECALL_SCENE_COMMAND_ID 0x05 // Ver.: always -#define ZCL_GET_SCENE_MEMBERSHIP_COMMAND_ID 0x06 // Ver.: always -#define ZCL_ENHANCED_ADD_SCENE_COMMAND_ID 0x40 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_ENHANCED_VIEW_SCENE_COMMAND_ID 0x41 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_COPY_SCENE_COMMAND_ID 0x42 // Ver.: since zll-1.0-11-0037-10 - -// Command types for cluster: On/off -// Cluster specification level: zcl-7.0-07-5123-07 - -// Client to server -#define ZCL_OFF_COMMAND_ID 0x00 // Ver.: always -#define ZCL_ON_COMMAND_ID 0x01 // Ver.: always -#define ZCL_TOGGLE_COMMAND_ID 0x02 // Ver.: always -#define ZCL_OFF_WITH_EFFECT_COMMAND_ID 0x40 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_ON_WITH_RECALL_GLOBAL_SCENE_COMMAND_ID 0x41 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_ON_WITH_TIMED_OFF_COMMAND_ID 0x42 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_SAMPLE_MFG_SPECIFIC_OFF_WITH_TRANSITION_COMMAND_ID 0x00 // Ver.: always mfgCode: 0x1002 -#define ZCL_SAMPLE_MFG_SPECIFIC_ON_WITH_TRANSITION_COMMAND_ID 0x01 // Ver.: always mfgCode: 0x1002 -#define ZCL_SAMPLE_MFG_SPECIFIC_TOGGLE_WITH_TRANSITION_COMMAND_ID 0x02 // Ver.: always mfgCode: 0x1002 -#define ZCL_SAMPLE_MFG_SPECIFIC_ON_WITH_TRANSITION2_COMMAND_ID 0x01 // Ver.: always mfgCode: 0x1049 -#define ZCL_SAMPLE_MFG_SPECIFIC_TOGGLE_WITH_TRANSITION2_COMMAND_ID 0x02 // Ver.: always mfgCode: 0x1049 - -// Command types for cluster: Level Control -// Cluster specification level: zcl-7.0-07-5123-07 - -// Client to server -#define ZCL_MOVE_TO_LEVEL_COMMAND_ID 0x00 // Ver.: always -#define ZCL_MOVE_COMMAND_ID 0x01 // Ver.: always -#define ZCL_STEP_COMMAND_ID 0x02 // Ver.: always -#define ZCL_STOP_COMMAND_ID 0x03 // Ver.: always -#define ZCL_MOVE_TO_LEVEL_WITH_ON_OFF_COMMAND_ID 0x04 // Ver.: always -#define ZCL_MOVE_WITH_ON_OFF_COMMAND_ID 0x05 // Ver.: always -#define ZCL_STEP_WITH_ON_OFF_COMMAND_ID 0x06 // Ver.: always -#define ZCL_STOP_WITH_ON_OFF_COMMAND_ID 0x07 // Ver.: always - -// Command types for cluster: Alarms -// Cluster specification level: zcl-7.0-07-5123-07 - -// Server to client -#define ZCL_ALARM_COMMAND_ID 0x00 // Ver.: always -#define ZCL_GET_ALARM_RESPONSE_COMMAND_ID 0x01 // Ver.: always - -// Client to server -#define ZCL_RESET_ALARM_COMMAND_ID 0x00 // Ver.: always -#define ZCL_RESET_ALL_ALARMS_COMMAND_ID 0x01 // Ver.: always -#define ZCL_GET_ALARM_COMMAND_ID 0x02 // Ver.: always -#define ZCL_RESET_ALARM_LOG_COMMAND_ID 0x03 // Ver.: always - -// Command types for cluster: RSSI Location -// Cluster specification level: zcl-7.0-07-5123-07 - -// Server to client -#define ZCL_DEVICE_CONFIGURATION_RESPONSE_COMMAND_ID 0x00 // Ver.: always -#define ZCL_LOCATION_DATA_RESPONSE_COMMAND_ID 0x01 // Ver.: always -#define ZCL_LOCATION_DATA_NOTIFICATION_COMMAND_ID 0x02 // Ver.: always -#define ZCL_COMPACT_LOCATION_DATA_NOTIFICATION_COMMAND_ID 0x03 // Ver.: always -#define ZCL_RSSI_PING_COMMAND_ID 0x04 // Ver.: always -#define ZCL_RSSI_REQUEST_COMMAND_ID 0x05 // Ver.: always -#define ZCL_REPORT_RSSI_MEASUREMENTS_COMMAND_ID 0x06 // Ver.: always -#define ZCL_REQUEST_OWN_LOCATION_COMMAND_ID 0x07 // Ver.: always - -// Client to server -#define ZCL_SET_ABSOLUTE_LOCATION_COMMAND_ID 0x00 // Ver.: always -#define ZCL_SET_DEVICE_CONFIGURATION_COMMAND_ID 0x01 // Ver.: always -#define ZCL_GET_DEVICE_CONFIGURATION_COMMAND_ID 0x02 // Ver.: always -#define ZCL_GET_LOCATION_DATA_COMMAND_ID 0x03 // Ver.: always -#define ZCL_RSSI_RESPONSE_COMMAND_ID 0x04 // Ver.: always -#define ZCL_SEND_PINGS_COMMAND_ID 0x05 // Ver.: always -#define ZCL_ANCHOR_NODE_ANNOUNCE_COMMAND_ID 0x06 // Ver.: always - -// Command types for cluster: Commissioning -// Cluster specification level: zcl-7.0-07-5123-07 - -// Server to client -#define ZCL_RESTART_DEVICE_RESPONSE_COMMAND_ID 0x00 // Ver.: always -#define ZCL_SAVE_STARTUP_PARAMETERS_RESPONSE_COMMAND_ID 0x01 // Ver.: always -#define ZCL_RESTORE_STARTUP_PARAMETERS_RESPONSE_COMMAND_ID 0x02 // Ver.: always -#define ZCL_RESET_STARTUP_PARAMETERS_RESPONSE_COMMAND_ID 0x03 // Ver.: always - -// Client to server -#define ZCL_RESTART_DEVICE_COMMAND_ID 0x00 // Ver.: always -#define ZCL_SAVE_STARTUP_PARAMETERS_COMMAND_ID 0x01 // Ver.: always -#define ZCL_RESTORE_STARTUP_PARAMETERS_COMMAND_ID 0x02 // Ver.: always -#define ZCL_RESET_STARTUP_PARAMETERS_COMMAND_ID 0x03 // Ver.: always - -// Command types for cluster: Partition -// Cluster specification level: zcl-7.0-07-5123-07 - -// Server to client -#define ZCL_MULTIPLE_ACK_COMMAND_ID 0x00 // Ver.: always -#define ZCL_READ_HANDSHAKE_PARAM_RESPONSE_COMMAND_ID 0x01 // Ver.: always - -// Client to server -#define ZCL_TRANSFER_PARTITIONED_FRAME_COMMAND_ID 0x00 // Ver.: always -#define ZCL_READ_HANDSHAKE_PARAM_COMMAND_ID 0x01 // Ver.: always -#define ZCL_WRITE_HANDSHAKE_PARAM_COMMAND_ID 0x02 // Ver.: always - -// Command types for cluster: Over the Air Bootloading -// Cluster specification level: zcl-7.0-07-5123-07 - -// Server to client -#define ZCL_IMAGE_NOTIFY_COMMAND_ID 0x00 // Ver.: always -#define ZCL_QUERY_NEXT_IMAGE_RESPONSE_COMMAND_ID 0x02 // Ver.: always -#define ZCL_IMAGE_BLOCK_RESPONSE_COMMAND_ID 0x05 // Ver.: always -#define ZCL_UPGRADE_END_RESPONSE_COMMAND_ID 0x07 // Ver.: always -#define ZCL_QUERY_SPECIFIC_FILE_RESPONSE_COMMAND_ID 0x09 // Ver.: always - -// Client to server -#define ZCL_QUERY_NEXT_IMAGE_REQUEST_COMMAND_ID 0x01 // Ver.: always -#define ZCL_IMAGE_BLOCK_REQUEST_COMMAND_ID 0x03 // Ver.: always -#define ZCL_IMAGE_PAGE_REQUEST_COMMAND_ID 0x04 // Ver.: always -#define ZCL_UPGRADE_END_REQUEST_COMMAND_ID 0x06 // Ver.: always -#define ZCL_QUERY_SPECIFIC_FILE_REQUEST_COMMAND_ID 0x08 // Ver.: always - -// Command types for cluster: Power Profile -// Cluster specification level: zcl-7.0-07-5123-07 - -// Server to client -#define ZCL_POWER_PROFILE_NOTIFICATION_COMMAND_ID 0x00 // Ver.: always -#define ZCL_POWER_PROFILE_RESPONSE_COMMAND_ID 0x01 // Ver.: always -#define ZCL_POWER_PROFILE_STATE_RESPONSE_COMMAND_ID 0x02 // Ver.: always -#define ZCL_GET_POWER_PROFILE_PRICE_COMMAND_ID 0x03 // Ver.: always -#define ZCL_POWER_PROFILES_STATE_NOTIFICATION_COMMAND_ID 0x04 // Ver.: always -#define ZCL_GET_OVERALL_SCHEDULE_PRICE_COMMAND_ID 0x05 // Ver.: always -#define ZCL_ENERGY_PHASES_SCHEDULE_REQUEST_COMMAND_ID 0x06 // Ver.: always -#define ZCL_ENERGY_PHASES_SCHEDULE_STATE_RESPONSE_COMMAND_ID 0x07 // Ver.: always -#define ZCL_ENERGY_PHASES_SCHEDULE_STATE_NOTIFICATION_COMMAND_ID 0x08 // Ver.: always -#define ZCL_POWER_PROFILE_SCHEDULE_CONSTRAINTS_NOTIFICATION_COMMAND_ID 0x09 // Ver.: always -#define ZCL_POWER_PROFILE_SCHEDULE_CONSTRAINTS_RESPONSE_COMMAND_ID 0x0A // Ver.: always -#define ZCL_GET_POWER_PROFILE_PRICE_EXTENDED_COMMAND_ID 0x0B // Ver.: always - -// Client to server -#define ZCL_POWER_PROFILE_REQUEST_COMMAND_ID 0x00 // Ver.: always -#define ZCL_POWER_PROFILE_STATE_REQUEST_COMMAND_ID 0x01 // Ver.: always -#define ZCL_GET_POWER_PROFILE_PRICE_RESPONSE_COMMAND_ID 0x02 // Ver.: always -#define ZCL_GET_OVERALL_SCHEDULE_PRICE_RESPONSE_COMMAND_ID 0x03 // Ver.: always -#define ZCL_ENERGY_PHASES_SCHEDULE_NOTIFICATION_COMMAND_ID 0x04 // Ver.: always -#define ZCL_ENERGY_PHASES_SCHEDULE_RESPONSE_COMMAND_ID 0x05 // Ver.: always -#define ZCL_POWER_PROFILE_SCHEDULE_CONSTRAINTS_REQUEST_COMMAND_ID 0x06 // Ver.: always -#define ZCL_ENERGY_PHASES_SCHEDULE_STATE_REQUEST_COMMAND_ID 0x07 // Ver.: always -#define ZCL_GET_POWER_PROFILE_PRICE_EXTENDED_RESPONSE_COMMAND_ID 0x08 // Ver.: always - -// Command types for cluster: Appliance Control -// Cluster specification level: zcl-7.0-07-5123-07 - -// Server to client -#define ZCL_SIGNAL_STATE_RESPONSE_COMMAND_ID 0x00 // Ver.: always -#define ZCL_SIGNAL_STATE_NOTIFICATION_COMMAND_ID 0x01 // Ver.: always - -// Client to server -#define ZCL_EXECUTION_OF_A_COMMAND_COMMAND_ID 0x00 // Ver.: always -#define ZCL_SIGNAL_STATE_COMMAND_ID 0x01 // Ver.: always -#define ZCL_WRITE_FUNCTIONS_COMMAND_ID 0x02 // Ver.: always -#define ZCL_OVERLOAD_PAUSE_RESUME_COMMAND_ID 0x03 // Ver.: always -#define ZCL_OVERLOAD_PAUSE_COMMAND_ID 0x04 // Ver.: always -#define ZCL_OVERLOAD_WARNING_COMMAND_ID 0x05 // Ver.: always - -// Command types for cluster: Poll Control -// Cluster specification level: zcl-7.0-07-5123-07 - -// Server to client -#define ZCL_CHECK_IN_COMMAND_ID 0x00 // Ver.: always - -// Client to server -#define ZCL_CHECK_IN_RESPONSE_COMMAND_ID 0x00 // Ver.: always -#define ZCL_FAST_POLL_STOP_COMMAND_ID 0x01 // Ver.: always -#define ZCL_SET_LONG_POLL_INTERVAL_COMMAND_ID 0x02 // Ver.: always -#define ZCL_SET_SHORT_POLL_INTERVAL_COMMAND_ID 0x03 // Ver.: always - -// Command types for cluster: Green Power -// Cluster specification level: gp-1.0a-09-5499-26 - -// Server to client -#define ZCL_GP_NOTIFICATION_RESPONSE_COMMAND_ID 0x00 // Ver.: since gp-1.0-09-5499-24 -#define ZCL_GP_PAIRING_COMMAND_ID 0x01 // Ver.: since gp-1.0-09-5499-24 -#define ZCL_GP_PROXY_COMMISSIONING_MODE_COMMAND_ID 0x02 // Ver.: since gp-1.0-09-5499-24 -#define ZCL_GP_RESPONSE_COMMAND_ID 0x06 // Ver.: since gp-1.0-09-5499-24 -#define ZCL_GP_TRANSLATION_TABLE_RESPONSE_COMMAND_ID 0x08 // Ver.: since gp-1.0-09-5499-24 -#define ZCL_GP_SINK_TABLE_RESPONSE_COMMAND_ID 0x0A // Ver.: always -#define ZCL_GP_PROXY_TABLE_REQUEST_COMMAND_ID 0x0B // Ver.: always - -// Client to server -#define ZCL_GP_NOTIFICATION_COMMAND_ID 0x00 // Ver.: since gp-1.0-09-5499-24 -#define ZCL_GP_PAIRING_SEARCH_COMMAND_ID 0x01 // Ver.: since gp-1.0-09-5499-24 -#define ZCL_GP_TUNNELING_STOP_COMMAND_ID 0x03 // Ver.: since gp-1.0-09-5499-24 -#define ZCL_GP_COMMISSIONING_NOTIFICATION_COMMAND_ID 0x04 // Ver.: since gp-1.0-09-5499-24 -#define ZCL_GP_SINK_COMMISSIONING_MODE_COMMAND_ID 0x05 // Ver.: always -#define ZCL_GP_TRANSLATION_TABLE_UPDATE_COMMAND_ID 0x07 // Ver.: since gp-1.0-09-5499-24 -#define ZCL_GP_TRANSLATION_TABLE_REQUEST_COMMAND_ID 0x08 // Ver.: always -#define ZCL_GP_PAIRING_CONFIGURATION_COMMAND_ID 0x09 // Ver.: since gp-1.0-09-5499-24 -#define ZCL_GP_SINK_TABLE_REQUEST_COMMAND_ID 0x0A // Ver.: always -#define ZCL_GP_PROXY_TABLE_RESPONSE_COMMAND_ID 0x0B // Ver.: always - -// Command types for cluster: Door Lock -// Cluster specification level: zcl-6.0-15-02018-001 - -// Server to client -#define ZCL_LOCK_DOOR_RESPONSE_COMMAND_ID 0x00 // Ver.: always -#define ZCL_UNLOCK_DOOR_RESPONSE_COMMAND_ID 0x01 // Ver.: always -#define ZCL_TOGGLE_RESPONSE_COMMAND_ID 0x02 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_UNLOCK_WITH_TIMEOUT_RESPONSE_COMMAND_ID 0x03 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_GET_LOG_RECORD_RESPONSE_COMMAND_ID 0x04 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_SET_PIN_RESPONSE_COMMAND_ID 0x05 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_GET_PIN_RESPONSE_COMMAND_ID 0x06 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_CLEAR_PIN_RESPONSE_COMMAND_ID 0x07 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_CLEAR_ALL_PINS_RESPONSE_COMMAND_ID 0x08 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_SET_USER_STATUS_RESPONSE_COMMAND_ID 0x09 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_GET_USER_STATUS_RESPONSE_COMMAND_ID 0x0A // Ver.: since ha-1.2-05-3520-29 -#define ZCL_SET_WEEKDAY_SCHEDULE_RESPONSE_COMMAND_ID 0x0B // Ver.: since ha-1.2-05-3520-29 -#define ZCL_GET_WEEKDAY_SCHEDULE_RESPONSE_COMMAND_ID 0x0C // Ver.: since ha-1.2-05-3520-29 -#define ZCL_CLEAR_WEEKDAY_SCHEDULE_RESPONSE_COMMAND_ID 0x0D // Ver.: since ha-1.2-05-3520-29 -#define ZCL_SET_YEARDAY_SCHEDULE_RESPONSE_COMMAND_ID 0x0E // Ver.: since ha-1.2-05-3520-29 -#define ZCL_GET_YEARDAY_SCHEDULE_RESPONSE_COMMAND_ID 0x0F // Ver.: since ha-1.2-05-3520-29 -#define ZCL_CLEAR_YEARDAY_SCHEDULE_RESPONSE_COMMAND_ID 0x10 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_SET_HOLIDAY_SCHEDULE_RESPONSE_COMMAND_ID 0x11 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_GET_HOLIDAY_SCHEDULE_RESPONSE_COMMAND_ID 0x12 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_CLEAR_HOLIDAY_SCHEDULE_RESPONSE_COMMAND_ID 0x13 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_SET_USER_TYPE_RESPONSE_COMMAND_ID 0x14 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_GET_USER_TYPE_RESPONSE_COMMAND_ID 0x15 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_SET_RFID_RESPONSE_COMMAND_ID 0x16 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_GET_RFID_RESPONSE_COMMAND_ID 0x17 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_CLEAR_RFID_RESPONSE_COMMAND_ID 0x18 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_CLEAR_ALL_RFIDS_RESPONSE_COMMAND_ID 0x19 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_OPERATION_EVENT_NOTIFICATION_COMMAND_ID 0x20 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_PROGRAMMING_EVENT_NOTIFICATION_COMMAND_ID 0x21 // Ver.: since ha-1.2-05-3520-29 - -// Client to server -#define ZCL_LOCK_DOOR_COMMAND_ID 0x00 // Ver.: always -#define ZCL_UNLOCK_DOOR_COMMAND_ID 0x01 // Ver.: always -#define ZCL_TOGGLE_COMMAND_ID 0x02 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_UNLOCK_WITH_TIMEOUT_COMMAND_ID 0x03 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_GET_LOG_RECORD_COMMAND_ID 0x04 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_SET_PIN_COMMAND_ID 0x05 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_GET_PIN_COMMAND_ID 0x06 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_CLEAR_PIN_COMMAND_ID 0x07 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_CLEAR_ALL_PINS_COMMAND_ID 0x08 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_SET_USER_STATUS_COMMAND_ID 0x09 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_GET_USER_STATUS_COMMAND_ID 0x0A // Ver.: since ha-1.2-05-3520-29 -#define ZCL_SET_WEEKDAY_SCHEDULE_COMMAND_ID 0x0B // Ver.: since ha-1.2-05-3520-29 -#define ZCL_GET_WEEKDAY_SCHEDULE_COMMAND_ID 0x0C // Ver.: since ha-1.2-05-3520-29 -#define ZCL_CLEAR_WEEKDAY_SCHEDULE_COMMAND_ID 0x0D // Ver.: since ha-1.2-05-3520-29 -#define ZCL_SET_YEARDAY_SCHEDULE_COMMAND_ID 0x0E // Ver.: since ha-1.2-05-3520-29 -#define ZCL_GET_YEARDAY_SCHEDULE_COMMAND_ID 0x0F // Ver.: since ha-1.2-05-3520-29 -#define ZCL_CLEAR_YEARDAY_SCHEDULE_COMMAND_ID 0x10 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_SET_HOLIDAY_SCHEDULE_COMMAND_ID 0x11 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_GET_HOLIDAY_SCHEDULE_COMMAND_ID 0x12 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_CLEAR_HOLIDAY_SCHEDULE_COMMAND_ID 0x13 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_SET_USER_TYPE_COMMAND_ID 0x14 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_GET_USER_TYPE_COMMAND_ID 0x15 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_SET_RFID_COMMAND_ID 0x16 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_GET_RFID_COMMAND_ID 0x17 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_CLEAR_RFID_COMMAND_ID 0x18 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_CLEAR_ALL_RFIDS_COMMAND_ID 0x19 // Ver.: since ha-1.2-05-3520-29 - -// Command types for cluster: Window Covering -// Cluster specification level: zcl-6.0-15-02018-001 - -// Client to server -#define ZCL_WINDOW_COVERING_UP_OPEN_COMMAND_ID 0x00 // Ver.: always -#define ZCL_WINDOW_COVERING_DOWN_CLOSE_COMMAND_ID 0x01 // Ver.: always -#define ZCL_WINDOW_COVERING_STOP_COMMAND_ID 0x02 // Ver.: always -#define ZCL_WINDOW_COVERING_GO_TO_LIFT_VALUE_COMMAND_ID 0x04 // Ver.: always -#define ZCL_WINDOW_COVERING_GO_TO_LIFT_PERCENTAGE_COMMAND_ID 0x05 // Ver.: always -#define ZCL_WINDOW_COVERING_GO_TO_TILT_VALUE_COMMAND_ID 0x07 // Ver.: always -#define ZCL_WINDOW_COVERING_GO_TO_TILT_PERCENTAGE_COMMAND_ID 0x08 // Ver.: always - -// Command types for cluster: Barrier Control -// Cluster specification level: zcl-6.0-15-02018-001 - -// Client to server -#define ZCL_BARRIER_CONTROL_GO_TO_PERCENT_COMMAND_ID 0x00 // Ver.: always -#define ZCL_BARRIER_CONTROL_STOP_COMMAND_ID 0x01 // Ver.: always - -// Command types for cluster: Thermostat -// Cluster specification level: zcl-6.0-15-02018-001 - -// Server to client -#define ZCL_CURRENT_WEEKLY_SCHEDULE_COMMAND_ID 0x00 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_RELAY_STATUS_LOG_COMMAND_ID 0x01 // Ver.: since ha-1.2-05-3520-29 - -// Client to server -#define ZCL_SETPOINT_RAISE_LOWER_COMMAND_ID 0x00 // Ver.: always -#define ZCL_SET_WEEKLY_SCHEDULE_COMMAND_ID 0x01 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_GET_WEEKLY_SCHEDULE_COMMAND_ID 0x02 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_CLEAR_WEEKLY_SCHEDULE_COMMAND_ID 0x03 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_GET_RELAY_STATUS_LOG_COMMAND_ID 0x04 // Ver.: since ha-1.2-05-3520-29 - -// Command types for cluster: Color Control -// Cluster specification level: zcl6-errata-14-0129-15 - -// Client to server -#define ZCL_MOVE_TO_HUE_COMMAND_ID 0x00 // Ver.: always -#define ZCL_MOVE_HUE_COMMAND_ID 0x01 // Ver.: always -#define ZCL_STEP_HUE_COMMAND_ID 0x02 // Ver.: always -#define ZCL_MOVE_TO_SATURATION_COMMAND_ID 0x03 // Ver.: always -#define ZCL_MOVE_SATURATION_COMMAND_ID 0x04 // Ver.: always -#define ZCL_STEP_SATURATION_COMMAND_ID 0x05 // Ver.: always -#define ZCL_MOVE_TO_HUE_AND_SATURATION_COMMAND_ID 0x06 // Ver.: always -#define ZCL_MOVE_TO_COLOR_COMMAND_ID 0x07 // Ver.: always -#define ZCL_MOVE_COLOR_COMMAND_ID 0x08 // Ver.: always -#define ZCL_STEP_COLOR_COMMAND_ID 0x09 // Ver.: always -#define ZCL_MOVE_TO_COLOR_TEMPERATURE_COMMAND_ID 0x0A // Ver.: always -#define ZCL_ENHANCED_MOVE_TO_HUE_COMMAND_ID 0x40 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_ENHANCED_MOVE_HUE_COMMAND_ID 0x41 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_ENHANCED_STEP_HUE_COMMAND_ID 0x42 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_ENHANCED_MOVE_TO_HUE_AND_SATURATION_COMMAND_ID 0x43 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_COLOR_LOOP_SET_COMMAND_ID 0x44 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_STOP_MOVE_STEP_COMMAND_ID 0x47 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_MOVE_COLOR_TEMPERATURE_COMMAND_ID 0x4B // Ver.: since zll-1.0-11-0037-10 -#define ZCL_STEP_COLOR_TEMPERATURE_COMMAND_ID 0x4C // Ver.: since zll-1.0-11-0037-10 - -// Command types for cluster: IAS Zone -// Cluster specification level: zcl-6.0-15-02018-001 - -// Server to client -#define ZCL_ZONE_STATUS_CHANGE_NOTIFICATION_COMMAND_ID 0x00 // Ver.: always -#define ZCL_ZONE_ENROLL_REQUEST_COMMAND_ID 0x01 // Ver.: always -#define ZCL_INITIATE_NORMAL_OPERATION_MODE_RESPONSE_COMMAND_ID 0x02 // Ver.: always -#define ZCL_INITIATE_TEST_MODE_RESPONSE_COMMAND_ID 0x03 // Ver.: always - -// Client to server -#define ZCL_ZONE_ENROLL_RESPONSE_COMMAND_ID 0x00 // Ver.: always -#define ZCL_INITIATE_NORMAL_OPERATION_MODE_COMMAND_ID 0x01 // Ver.: always -#define ZCL_INITIATE_TEST_MODE_COMMAND_ID 0x02 // Ver.: always - -// Command types for cluster: IAS ACE -// Cluster specification level: zcl-6.0-15-02018-001 - -// Server to client -#define ZCL_ARM_RESPONSE_COMMAND_ID 0x00 // Ver.: always -#define ZCL_GET_ZONE_ID_MAP_RESPONSE_COMMAND_ID 0x01 // Ver.: always -#define ZCL_GET_ZONE_INFORMATION_RESPONSE_COMMAND_ID 0x02 // Ver.: always -#define ZCL_ZONE_STATUS_CHANGED_COMMAND_ID 0x03 // Ver.: always -#define ZCL_PANEL_STATUS_CHANGED_COMMAND_ID 0x04 // Ver.: always -#define ZCL_GET_PANEL_STATUS_RESPONSE_COMMAND_ID 0x05 // Ver.: since ha-1.2.1-05-3520-30 -#define ZCL_SET_BYPASSED_ZONE_LIST_COMMAND_ID 0x06 // Ver.: since ha-1.2.1-05-3520-30 -#define ZCL_BYPASS_RESPONSE_COMMAND_ID 0x07 // Ver.: since ha-1.2.1-05-3520-30 -#define ZCL_GET_ZONE_STATUS_RESPONSE_COMMAND_ID 0x08 // Ver.: since ha-1.2.1-05-3520-30 - -// Client to server -#define ZCL_ARM_COMMAND_ID 0x00 // Ver.: always -#define ZCL_BYPASS_COMMAND_ID 0x01 // Ver.: always -#define ZCL_EMERGENCY_COMMAND_ID 0x02 // Ver.: always -#define ZCL_FIRE_COMMAND_ID 0x03 // Ver.: always -#define ZCL_PANIC_COMMAND_ID 0x04 // Ver.: always -#define ZCL_GET_ZONE_ID_MAP_COMMAND_ID 0x05 // Ver.: always -#define ZCL_GET_ZONE_INFORMATION_COMMAND_ID 0x06 // Ver.: always -#define ZCL_GET_PANEL_STATUS_COMMAND_ID 0x07 // Ver.: since ha-1.2.1-05-3520-30 -#define ZCL_GET_BYPASSED_ZONE_LIST_COMMAND_ID 0x08 // Ver.: since ha-1.2.1-05-3520-30 -#define ZCL_GET_ZONE_STATUS_COMMAND_ID 0x09 // Ver.: since ha-1.2.1-05-3520-30 - -// Command types for cluster: IAS WD -// Cluster specification level: zcl-6.0-15-02018-001 - -// Client to server -#define ZCL_START_WARNING_COMMAND_ID 0x00 // Ver.: always -#define ZCL_SQUAWK_COMMAND_ID 0x01 // Ver.: always - -// Command types for cluster: Generic Tunnel -// Cluster specification level: cba-1.0-05-3516-12 - -// Server to client -#define ZCL_MATCH_PROTOCOL_ADDRESS_RESPONSE_COMMAND_ID 0x00 // Ver.: always -#define ZCL_ADVERTISE_PROTOCOL_ADDRESS_COMMAND_ID 0x01 // Ver.: always - -// Client to server -#define ZCL_MATCH_PROTOCOL_ADDRESS_COMMAND_ID 0x00 // Ver.: always - -// Command types for cluster: BACnet Protocol Tunnel -// Cluster specification level: cba-1.0-05-3516-12 - -// Client to server -#define ZCL_TRANSFER_NPDU_COMMAND_ID 0x00 // Ver.: always - -// Command types for cluster: 11073 Protocol Tunnel -// Cluster specification level: hc-1.0-07-5360-15 - -// Client to server -#define ZCL_TRANSFER_A_P_D_U_COMMAND_ID 0x00 // Ver.: always -#define ZCL_CONNECT_REQUEST_COMMAND_ID 0x01 // Ver.: always -#define ZCL_DISCONNECT_REQUEST_COMMAND_ID 0x02 // Ver.: always -#define ZCL_CONNECT_STATUS_NOTIFICATION_COMMAND_ID 0x03 // Ver.: always - -// Command types for cluster: ISO 7816 Protocol Tunnel -// Cluster specification level: ta-1.0-07-5307-07 - -// Client to server -#define ZCL_INSERT_SMART_CARD_COMMAND_ID 0x01 // Ver.: always -#define ZCL_EXTRACT_SMART_CARD_COMMAND_ID 0x02 // Ver.: always - -// Either direction -#define ZCL_TRANSFER_APDU_COMMAND_ID 0x00 // Ver.: always - -// Command types for cluster: Price -// Cluster specification level: se-1.2b-15-0131-02 - -// Server to client -#define ZCL_PUBLISH_PRICE_COMMAND_ID 0x00 // Ver.: always -#define ZCL_PUBLISH_BLOCK_PERIOD_COMMAND_ID 0x01 // Ver.: since se-1.1-07-5356-16 -#define ZCL_PUBLISH_CONVERSION_FACTOR_COMMAND_ID 0x02 // Ver.: since se-1.1a-07-5356-17 -#define ZCL_PUBLISH_CALORIFIC_VALUE_COMMAND_ID 0x03 // Ver.: since se-1.1a-07-5356-17 -#define ZCL_PUBLISH_TARIFF_INFORMATION_COMMAND_ID 0x04 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PUBLISH_PRICE_MATRIX_COMMAND_ID 0x05 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PUBLISH_BLOCK_THRESHOLDS_COMMAND_ID 0x06 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PUBLISH_C_O2_VALUE_COMMAND_ID 0x07 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PUBLISH_TIER_LABELS_COMMAND_ID 0x08 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PUBLISH_BILLING_PERIOD_COMMAND_ID 0x09 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PUBLISH_CONSOLIDATED_BILL_COMMAND_ID 0x0A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PUBLISH_CPP_EVENT_COMMAND_ID 0x0B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PUBLISH_CREDIT_PAYMENT_COMMAND_ID 0x0C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PUBLISH_CURRENCY_CONVERSION_COMMAND_ID 0x0D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CANCEL_TARIFF_COMMAND_ID 0x0E // Ver.: since se-1.2a-07-5356-19 - -// Client to server -#define ZCL_GET_CURRENT_PRICE_COMMAND_ID 0x00 // Ver.: always -#define ZCL_GET_SCHEDULED_PRICES_COMMAND_ID 0x01 // Ver.: always -#define ZCL_PRICE_ACKNOWLEDGEMENT_COMMAND_ID 0x02 // Ver.: since se-1.1-07-5356-16 -#define ZCL_GET_BLOCK_PERIODS_COMMAND_ID 0x03 // Ver.: since se-1.1-07-5356-16 -#define ZCL_GET_CONVERSION_FACTOR_COMMAND_ID 0x04 // Ver.: since se-1.1a-07-5356-17 -#define ZCL_GET_CALORIFIC_VALUE_COMMAND_ID 0x05 // Ver.: since se-1.1a-07-5356-17 -#define ZCL_GET_TARIFF_INFORMATION_COMMAND_ID 0x06 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_GET_PRICE_MATRIX_COMMAND_ID 0x07 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_GET_BLOCK_THRESHOLDS_COMMAND_ID 0x08 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_GET_C_O2_VALUE_COMMAND_ID 0x09 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_GET_TIER_LABELS_COMMAND_ID 0x0A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_GET_BILLING_PERIOD_COMMAND_ID 0x0B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_GET_CONSOLIDATED_BILL_COMMAND_ID 0x0C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CPP_EVENT_RESPONSE_COMMAND_ID 0x0D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_GET_CREDIT_PAYMENT_COMMAND_ID 0x0E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_GET_CURRENCY_CONVERSION_COMMAND_COMMAND_ID 0x0F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_GET_TARIFF_CANCELLATION_COMMAND_ID 0x10 // Ver.: since se-1.2a-07-5356-19 - -// Command types for cluster: Demand Response and Load Control -// Cluster specification level: se-1.2b-15-0131-02 - -// Server to client -#define ZCL_LOAD_CONTROL_EVENT_COMMAND_ID 0x00 // Ver.: always -#define ZCL_CANCEL_LOAD_CONTROL_EVENT_COMMAND_ID 0x01 // Ver.: always -#define ZCL_CANCEL_ALL_LOAD_CONTROL_EVENTS_COMMAND_ID 0x02 // Ver.: always - -// Client to server -#define ZCL_REPORT_EVENT_STATUS_COMMAND_ID 0x00 // Ver.: always -#define ZCL_GET_SCHEDULED_EVENTS_COMMAND_ID 0x01 // Ver.: always - -// Command types for cluster: Simple Metering -// Cluster specification level: se-1.2b-15-0131-02 - -// Server to client -#define ZCL_GET_PROFILE_RESPONSE_COMMAND_ID 0x00 // Ver.: always -#define ZCL_REQUEST_MIRROR_COMMAND_ID 0x01 // Ver.: always -#define ZCL_REMOVE_MIRROR_COMMAND_ID 0x02 // Ver.: always -#define ZCL_REQUEST_FAST_POLL_MODE_RESPONSE_COMMAND_ID 0x03 // Ver.: since se-1.1-07-5356-16 -#define ZCL_SCHEDULE_SNAPSHOT_RESPONSE_COMMAND_ID 0x04 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TAKE_SNAPSHOT_RESPONSE_COMMAND_ID 0x05 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PUBLISH_SNAPSHOT_COMMAND_ID 0x06 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_GET_SAMPLED_DATA_RESPONSE_COMMAND_ID 0x07 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CONFIGURE_MIRROR_COMMAND_ID 0x08 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CONFIGURE_NOTIFICATION_SCHEME_COMMAND_ID 0x09 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CONFIGURE_NOTIFICATION_FLAGS_COMMAND_ID 0x0A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_GET_NOTIFIED_MESSAGE_COMMAND_ID 0x0B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_SUPPLY_STATUS_RESPONSE_COMMAND_ID 0x0C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_START_SAMPLING_RESPONSE_COMMAND_ID 0x0D // Ver.: since se-1.2a-07-5356-19 - -// Client to server -#define ZCL_GET_PROFILE_COMMAND_ID 0x00 // Ver.: always -#define ZCL_REQUEST_MIRROR_RESPONSE_COMMAND_ID 0x01 // Ver.: always -#define ZCL_MIRROR_REMOVED_COMMAND_ID 0x02 // Ver.: always -#define ZCL_REQUEST_FAST_POLL_MODE_COMMAND_ID 0x03 // Ver.: since se-1.1-07-5356-16 -#define ZCL_SCHEDULE_SNAPSHOT_COMMAND_ID 0x04 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TAKE_SNAPSHOT_COMMAND_ID 0x05 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_GET_SNAPSHOT_COMMAND_ID 0x06 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_START_SAMPLING_COMMAND_ID 0x07 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_GET_SAMPLED_DATA_COMMAND_ID 0x08 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_MIRROR_REPORT_ATTRIBUTE_RESPONSE_COMMAND_ID 0x09 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RESET_LOAD_LIMIT_COUNTER_COMMAND_ID 0x0A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CHANGE_SUPPLY_COMMAND_ID 0x0B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_LOCAL_CHANGE_SUPPLY_COMMAND_ID 0x0C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_SET_SUPPLY_STATUS_COMMAND_ID 0x0D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_SET_UNCONTROLLED_FLOW_THRESHOLD_COMMAND_ID 0x0E // Ver.: since se-1.2a-07-5356-19 - -// Command types for cluster: Messaging -// Cluster specification level: se-1.2b-15-0131-02 - -// Server to client -#define ZCL_DISPLAY_MESSAGE_COMMAND_ID 0x00 // Ver.: always -#define ZCL_CANCEL_MESSAGE_COMMAND_ID 0x01 // Ver.: always -#define ZCL_DISPLAY_PROTECTED_MESSAGE_COMMAND_ID 0x02 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CANCEL_ALL_MESSAGES_COMMAND_ID 0x03 // Ver.: since se-1.2a-07-5356-19 - -// Client to server -#define ZCL_GET_LAST_MESSAGE_COMMAND_ID 0x00 // Ver.: always -#define ZCL_MESSAGE_CONFIRMATION_COMMAND_ID 0x01 // Ver.: always -#define ZCL_GET_MESSAGE_CANCELLATION_COMMAND_ID 0x02 // Ver.: since se-1.2a-07-5356-19 - -// Command types for cluster: Tunneling -// Cluster specification level: se-1.2b-15-0131-02 - -// Server to client -#define ZCL_REQUEST_TUNNEL_RESPONSE_COMMAND_ID 0x00 // Ver.: always -#define ZCL_TRANSFER_DATA_SERVER_TO_CLIENT_COMMAND_ID 0x01 // Ver.: always -#define ZCL_TRANSFER_DATA_ERROR_SERVER_TO_CLIENT_COMMAND_ID 0x02 // Ver.: always -#define ZCL_ACK_TRANSFER_DATA_SERVER_TO_CLIENT_COMMAND_ID 0x03 // Ver.: always -#define ZCL_READY_DATA_SERVER_TO_CLIENT_COMMAND_ID 0x04 // Ver.: always -#define ZCL_SUPPORTED_TUNNEL_PROTOCOLS_RESPONSE_COMMAND_ID 0x05 // Ver.: since se-1.1a-07-5356-17 -#define ZCL_TUNNEL_CLOSURE_NOTIFICATION_COMMAND_ID 0x06 // Ver.: since se-1.1a-07-5356-17 - -// Client to server -#define ZCL_REQUEST_TUNNEL_COMMAND_ID 0x00 // Ver.: always -#define ZCL_CLOSE_TUNNEL_COMMAND_ID 0x01 // Ver.: always -#define ZCL_TRANSFER_DATA_CLIENT_TO_SERVER_COMMAND_ID 0x02 // Ver.: always -#define ZCL_TRANSFER_DATA_ERROR_CLIENT_TO_SERVER_COMMAND_ID 0x03 // Ver.: always -#define ZCL_ACK_TRANSFER_DATA_CLIENT_TO_SERVER_COMMAND_ID 0x04 // Ver.: always -#define ZCL_READY_DATA_CLIENT_TO_SERVER_COMMAND_ID 0x05 // Ver.: always -#define ZCL_GET_SUPPORTED_TUNNEL_PROTOCOLS_COMMAND_ID 0x06 // Ver.: since se-1.1a-07-5356-17 - -// Command types for cluster: Prepayment -// Cluster specification level: se-1.2b-15-0131-02 - -// Server to client -#define ZCL_PUBLISH_PREPAY_SNAPSHOT_COMMAND_ID 0x01 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CHANGE_PAYMENT_MODE_RESPONSE_COMMAND_ID 0x02 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CONSUMER_TOP_UP_RESPONSE_COMMAND_ID 0x03 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PUBLISH_TOP_UP_LOG_COMMAND_ID 0x05 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PUBLISH_DEBT_LOG_COMMAND_ID 0x06 // Ver.: since se-1.2a-07-5356-19 - -// Client to server -#define ZCL_SELECT_AVAILABLE_EMERGENCY_CREDIT_COMMAND_ID 0x00 // Ver.: always -#define ZCL_CHANGE_DEBT_COMMAND_ID 0x02 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_EMERGENCY_CREDIT_SETUP_COMMAND_ID 0x03 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CONSUMER_TOP_UP_COMMAND_ID 0x04 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CREDIT_ADJUSTMENT_COMMAND_ID 0x05 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CHANGE_PAYMENT_MODE_COMMAND_ID 0x06 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_GET_PREPAY_SNAPSHOT_COMMAND_ID 0x07 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_GET_TOP_UP_LOG_COMMAND_ID 0x08 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_SET_LOW_CREDIT_WARNING_LEVEL_COMMAND_ID 0x09 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_GET_DEBT_REPAYMENT_LOG_COMMAND_ID 0x0A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_SET_MAXIMUM_CREDIT_LIMIT_COMMAND_ID 0x0B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_SET_OVERALL_DEBT_CAP_COMMAND_ID 0x0C // Ver.: since se-1.2a-07-5356-19 - -// Command types for cluster: Energy Management -// Cluster specification level: se-1.2b-15-0131-02 - -// Server to client -#define ZCL_REPORT_EVENT_STATUS_COMMAND_ID 0x00 // Ver.: always - -// Client to server -#define ZCL_MANAGE_EVENT_COMMAND_ID 0x00 // Ver.: always - -// Command types for cluster: Calendar -// Cluster specification level: se-1.2b-15-0131-02 - -// Server to client -#define ZCL_PUBLISH_CALENDAR_COMMAND_ID 0x00 // Ver.: always -#define ZCL_PUBLISH_DAY_PROFILE_COMMAND_ID 0x01 // Ver.: always -#define ZCL_PUBLISH_WEEK_PROFILE_COMMAND_ID 0x02 // Ver.: always -#define ZCL_PUBLISH_SEASONS_COMMAND_ID 0x03 // Ver.: always -#define ZCL_PUBLISH_SPECIAL_DAYS_COMMAND_ID 0x04 // Ver.: always -#define ZCL_CANCEL_CALENDAR_COMMAND_ID 0x05 // Ver.: always - -// Client to server -#define ZCL_GET_CALENDAR_COMMAND_ID 0x00 // Ver.: always -#define ZCL_GET_DAY_PROFILES_COMMAND_ID 0x01 // Ver.: always -#define ZCL_GET_WEEK_PROFILES_COMMAND_ID 0x02 // Ver.: always -#define ZCL_GET_SEASONS_COMMAND_ID 0x03 // Ver.: always -#define ZCL_GET_SPECIAL_DAYS_COMMAND_ID 0x04 // Ver.: always -#define ZCL_GET_CALENDAR_CANCELLATION_COMMAND_ID 0x05 // Ver.: always - -// Command types for cluster: Device Management -// Cluster specification level: se-1.2b-15-0131-02 - -// Server to client -#define ZCL_PUBLISH_CHANGE_OF_TENANCY_COMMAND_ID 0x00 // Ver.: always -#define ZCL_PUBLISH_CHANGE_OF_SUPPLIER_COMMAND_ID 0x01 // Ver.: always -#define ZCL_REQUEST_NEW_PASSWORD_RESPONSE_COMMAND_ID 0x02 // Ver.: always -#define ZCL_UPDATE_SITE_ID_COMMAND_ID 0x03 // Ver.: always -#define ZCL_SET_EVENT_CONFIGURATION_COMMAND_ID 0x04 // Ver.: always -#define ZCL_GET_EVENT_CONFIGURATION_COMMAND_ID 0x05 // Ver.: always -#define ZCL_UPDATE_C_I_N_COMMAND_ID 0x06 // Ver.: always - -// Client to server -#define ZCL_GET_CHANGE_OF_TENANCY_COMMAND_ID 0x00 // Ver.: always -#define ZCL_GET_CHANGE_OF_SUPPLIER_COMMAND_ID 0x01 // Ver.: always -#define ZCL_REQUEST_NEW_PASSWORD_COMMAND_ID 0x02 // Ver.: always -#define ZCL_GET_SITE_ID_COMMAND_ID 0x03 // Ver.: always -#define ZCL_REPORT_EVENT_CONFIGURATION_COMMAND_ID 0x04 // Ver.: always -#define ZCL_GET_C_I_N_COMMAND_ID 0x05 // Ver.: always - -// Command types for cluster: Events -// Cluster specification level: se-1.2b-15-0131-02 - -// Server to client -#define ZCL_PUBLISH_EVENT_COMMAND_ID 0x00 // Ver.: always -#define ZCL_PUBLISH_EVENT_LOG_COMMAND_ID 0x01 // Ver.: always -#define ZCL_CLEAR_EVENT_LOG_RESPONSE_COMMAND_ID 0x02 // Ver.: always - -// Client to server -#define ZCL_GET_EVENT_LOG_COMMAND_ID 0x00 // Ver.: always -#define ZCL_CLEAR_EVENT_LOG_REQUEST_COMMAND_ID 0x01 // Ver.: always - -// Command types for cluster: MDU Pairing -// Cluster specification level: se-1.2b-15-0131-02 - -// Server to client -#define ZCL_PAIRING_RESPONSE_COMMAND_ID 0x00 // Ver.: always - -// Client to server -#define ZCL_PAIRING_REQUEST_COMMAND_ID 0x00 // Ver.: always - -// Command types for cluster: Sub-GHz -// Cluster specification level: se-1.2b-15-0131-02 - -// Server to client -#define ZCL_SUSPEND_ZCL_MESSAGES_COMMAND_ID 0x00 // Ver.: always - -// Client to server -#define ZCL_GET_SUSPEND_ZCL_MESSAGES_STATUS_COMMAND_ID 0x00 // Ver.: always - -// Command types for cluster: Key Establishment -// Cluster specification level: zcl-7.0-07-5123-07 - -// Server to client -#define ZCL_INITIATE_KEY_ESTABLISHMENT_RESPONSE_COMMAND_ID 0x00 // Ver.: always -#define ZCL_EPHEMERAL_DATA_RESPONSE_COMMAND_ID 0x01 // Ver.: always -#define ZCL_CONFIRM_KEY_DATA_RESPONSE_COMMAND_ID 0x02 // Ver.: always - -// Client to server -#define ZCL_INITIATE_KEY_ESTABLISHMENT_REQUEST_COMMAND_ID 0x00 // Ver.: always -#define ZCL_EPHEMERAL_DATA_REQUEST_COMMAND_ID 0x01 // Ver.: always -#define ZCL_CONFIRM_KEY_DATA_REQUEST_COMMAND_ID 0x02 // Ver.: always - -// Either direction -#define ZCL_TERMINATE_KEY_ESTABLISHMENT_COMMAND_ID 0x03 // Ver.: always - -// Command types for cluster: Information -// Cluster specification level: ta-1.0-07-5307-07 - -// Server to client -#define ZCL_REQUEST_INFORMATION_RESPONSE_COMMAND_ID 0x00 // Ver.: always -#define ZCL_PUSH_INFORMATION_COMMAND_ID 0x01 // Ver.: always -#define ZCL_SEND_PREFERENCE_RESPONSE_COMMAND_ID 0x02 // Ver.: always -#define ZCL_SERVER_REQUEST_PREFERENCE_COMMAND_ID 0x03 // Ver.: always -#define ZCL_REQUEST_PREFERENCE_CONFIRMATION_COMMAND_ID 0x04 // Ver.: always -#define ZCL_UPDATE_RESPONSE_COMMAND_ID 0x05 // Ver.: always -#define ZCL_DELETE_RESPONSE_COMMAND_ID 0x06 // Ver.: always - -// Client to server -#define ZCL_REQUEST_INFORMATION_COMMAND_ID 0x00 // Ver.: always -#define ZCL_PUSH_INFORMATION_RESPONSE_COMMAND_ID 0x01 // Ver.: always -#define ZCL_SEND_PREFERENCE_COMMAND_ID 0x02 // Ver.: always -#define ZCL_REQUEST_PREFERENCE_RESPONSE_COMMAND_ID 0x03 // Ver.: always -#define ZCL_UPDATE_COMMAND_ID 0x04 // Ver.: always -#define ZCL_DELETE_COMMAND_ID 0x05 // Ver.: always -#define ZCL_CONFIGURE_NODE_DESCRIPTION_COMMAND_ID 0x06 // Ver.: always -#define ZCL_CONFIGURE_DELIVERY_ENABLE_COMMAND_ID 0x07 // Ver.: always -#define ZCL_CONFIGURE_PUSH_INFORMATION_TIMER_COMMAND_ID 0x08 // Ver.: always -#define ZCL_CONFIGURE_SET_ROOT_ID_COMMAND_ID 0x09 // Ver.: always - -// Command types for cluster: Data Sharing -// Cluster specification level: ta-1.0-07-5307-07 - -// Server to client -#define ZCL_WRITE_FILE_REQUEST_COMMAND_ID 0x00 // Ver.: always -#define ZCL_MODIFY_FILE_REQUEST_COMMAND_ID 0x01 // Ver.: always -#define ZCL_MODIFY_RECORD_REQUEST_COMMAND_ID 0x02 // Ver.: always -#define ZCL_FILE_TRANSMISSION_COMMAND_ID 0x03 // Ver.: always -#define ZCL_RECORD_TRANSMISSION_COMMAND_ID 0x04 // Ver.: always - -// Client to server -#define ZCL_READ_FILE_REQUEST_COMMAND_ID 0x00 // Ver.: always -#define ZCL_READ_RECORD_REQUEST_COMMAND_ID 0x01 // Ver.: always -#define ZCL_WRITE_FILE_RESPONSE_COMMAND_ID 0x02 // Ver.: always - -// Command types for cluster: Gaming -// Cluster specification level: ta-1.0-07-5307-07 - -// Server to client -#define ZCL_GAME_ANNOUNCEMENT_COMMAND_ID 0x00 // Ver.: always -#define ZCL_GENERAL_RESPONSE_COMMAND_ID 0x01 // Ver.: always - -// Client to server -#define ZCL_SEARCH_GAME_COMMAND_ID 0x00 // Ver.: always -#define ZCL_JOIN_GAME_COMMAND_ID 0x01 // Ver.: always -#define ZCL_START_GAME_COMMAND_ID 0x02 // Ver.: always -#define ZCL_PAUSE_GAME_COMMAND_ID 0x03 // Ver.: always -#define ZCL_RESUME_GAME_COMMAND_ID 0x04 // Ver.: always -#define ZCL_QUIT_GAME_COMMAND_ID 0x05 // Ver.: always -#define ZCL_END_GAME_COMMAND_ID 0x06 // Ver.: always -#define ZCL_START_OVER_COMMAND_ID 0x07 // Ver.: always -#define ZCL_ACTION_CONTROL_COMMAND_ID 0x08 // Ver.: always -#define ZCL_DOWNLOAD_GAME_COMMAND_ID 0x09 // Ver.: always - -// Command types for cluster: Data Rate Control -// Cluster specification level: ta-1.0-07-5307-07 - -// Server to client -#define ZCL_DATA_RATE_CONTROL_COMMAND_ID 0x00 // Ver.: always - -// Client to server -#define ZCL_PATH_CREATION_COMMAND_ID 0x00 // Ver.: always -#define ZCL_DATA_RATE_NOTIFICATION_COMMAND_ID 0x01 // Ver.: always -#define ZCL_PATH_DELETION_COMMAND_ID 0x02 // Ver.: always - -// Command types for cluster: Voice over ZigBee -// Cluster specification level: ta-1.0-07-5307-07 - -// Server to client -#define ZCL_ESTABLISHMENT_RESPONSE_COMMAND_ID 0x00 // Ver.: always -#define ZCL_VOICE_TRANSMISSION_RESPONSE_COMMAND_ID 0x01 // Ver.: always -#define ZCL_CONTROL_COMMAND_ID 0x02 // Ver.: always - -// Client to server -#define ZCL_ESTABLISHMENT_REQUEST_COMMAND_ID 0x00 // Ver.: always -#define ZCL_VOICE_TRANSMISSION_COMMAND_ID 0x01 // Ver.: always -#define ZCL_VOICE_TRANSMISSION_COMPLETION_COMMAND_ID 0x02 // Ver.: always -#define ZCL_CONTROL_RESPONSE_COMMAND_ID 0x03 // Ver.: always - -// Command types for cluster: Chatting -// Cluster specification level: ta-1.0-07-5307-07 - -// Server to client -#define ZCL_START_CHAT_RESPONSE_COMMAND_ID 0x00 // Ver.: always -#define ZCL_JOIN_CHAT_RESPONSE_COMMAND_ID 0x01 // Ver.: always -#define ZCL_USER_LEFT_COMMAND_ID 0x02 // Ver.: always -#define ZCL_USER_JOINED_COMMAND_ID 0x03 // Ver.: always -#define ZCL_SEARCH_CHAT_RESPONSE_COMMAND_ID 0x04 // Ver.: always -#define ZCL_SWITCH_CHAIRMAN_REQUEST_COMMAND_ID 0x05 // Ver.: always -#define ZCL_SWITCH_CHAIRMAN_CONFIRM_COMMAND_ID 0x06 // Ver.: always -#define ZCL_SWITCH_CHAIRMAN_NOTIFICATION_COMMAND_ID 0x07 // Ver.: always -#define ZCL_GET_NODE_INFORMATION_RESPONSE_COMMAND_ID 0x08 // Ver.: always - -// Client to server -#define ZCL_JOIN_CHAT_REQUEST_COMMAND_ID 0x00 // Ver.: always -#define ZCL_LEAVE_CHAT_REQUEST_COMMAND_ID 0x01 // Ver.: always -#define ZCL_SEARCH_CHAT_REQUEST_COMMAND_ID 0x02 // Ver.: always -#define ZCL_SWITCH_CHAIRMAN_RESPONSE_COMMAND_ID 0x03 // Ver.: always -#define ZCL_START_CHAT_REQUEST_COMMAND_ID 0x04 // Ver.: always -#define ZCL_CHAT_MESSAGE_COMMAND_ID 0x05 // Ver.: always -#define ZCL_GET_NODE_INFORMATION_REQUEST_COMMAND_ID 0x06 // Ver.: always - -// Command types for cluster: Payment -// Cluster specification level: ta-1.0-07-5307-07 - -// Server to client -#define ZCL_BUY_CONFIRM_COMMAND_ID 0x00 // Ver.: always -#define ZCL_RECEIPT_DELIVERY_COMMAND_ID 0x01 // Ver.: always -#define ZCL_TRANSACTION_END_COMMAND_ID 0x02 // Ver.: always - -// Client to server -#define ZCL_BUY_REQUEST_COMMAND_ID 0x00 // Ver.: always -#define ZCL_ACCEPT_PAYMENT_COMMAND_ID 0x01 // Ver.: always -#define ZCL_PAYMENT_CONFIRM_COMMAND_ID 0x02 // Ver.: always - -// Command types for cluster: Billing -// Cluster specification level: ta-1.0-07-5307-07 - -// Server to client -#define ZCL_CHECK_BILL_STATUS_COMMAND_ID 0x00 // Ver.: always -#define ZCL_SEND_BILL_RECORD_COMMAND_ID 0x01 // Ver.: always - -// Client to server -#define ZCL_SUBSCRIBE_COMMAND_ID 0x00 // Ver.: always -#define ZCL_UNSUBSCRIBE_COMMAND_ID 0x01 // Ver.: always -#define ZCL_START_BILLING_SESSION_COMMAND_ID 0x02 // Ver.: always -#define ZCL_STOP_BILLING_SESSION_COMMAND_ID 0x03 // Ver.: always -#define ZCL_BILL_STATUS_NOTIFICATION_COMMAND_ID 0x04 // Ver.: always -#define ZCL_SESSION_KEEP_ALIVE_COMMAND_ID 0x05 // Ver.: always - -// Command types for cluster: Appliance Events and Alert -// Cluster specification level: UNKNOWN - -// Server to client -#define ZCL_GET_ALERTS_RESPONSE_COMMAND_ID 0x00 // Ver.: always -#define ZCL_ALERTS_NOTIFICATION_COMMAND_ID 0x01 // Ver.: always -#define ZCL_EVENTS_NOTIFICATION_COMMAND_ID 0x02 // Ver.: always - -// Client to server -#define ZCL_GET_ALERTS_COMMAND_ID 0x00 // Ver.: always - -// Command types for cluster: Appliance Statistics -// Cluster specification level: UNKNOWN - -// Server to client -#define ZCL_LOG_NOTIFICATION_COMMAND_ID 0x00 // Ver.: always -#define ZCL_LOG_RESPONSE_COMMAND_ID 0x01 // Ver.: always -#define ZCL_LOG_QUEUE_RESPONSE_COMMAND_ID 0x02 // Ver.: always -#define ZCL_STATISTICS_AVAILABLE_COMMAND_ID 0x03 // Ver.: always - -// Client to server -#define ZCL_LOG_REQUEST_COMMAND_ID 0x00 // Ver.: always -#define ZCL_LOG_QUEUE_REQUEST_COMMAND_ID 0x01 // Ver.: always - -// Command types for cluster: Electrical Measurement -// Cluster specification level: UNKNOWN - -// Server to client -#define ZCL_GET_PROFILE_INFO_RESPONSE_COMMAND_COMMAND_ID 0x00 // Ver.: always -#define ZCL_GET_MEASUREMENT_PROFILE_RESPONSE_COMMAND_COMMAND_ID 0x01 // Ver.: always - -// Client to server -#define ZCL_GET_PROFILE_INFO_COMMAND_COMMAND_ID 0x00 // Ver.: always -#define ZCL_GET_MEASUREMENT_PROFILE_COMMAND_COMMAND_ID 0x01 // Ver.: always - -// Command types for cluster: ZLL Commissioning -// Cluster specification level: zll-1.0-11-0037-10 - -// Server to client -#define ZCL_SCAN_RESPONSE_COMMAND_ID 0x01 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_DEVICE_INFORMATION_RESPONSE_COMMAND_ID 0x03 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_NETWORK_START_RESPONSE_COMMAND_ID 0x11 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_NETWORK_JOIN_ROUTER_RESPONSE_COMMAND_ID 0x13 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_NETWORK_JOIN_END_DEVICE_RESPONSE_COMMAND_ID 0x15 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_ENDPOINT_INFORMATION_COMMAND_ID 0x40 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_GET_GROUP_IDENTIFIERS_RESPONSE_COMMAND_ID 0x41 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_GET_ENDPOINT_LIST_RESPONSE_COMMAND_ID 0x42 // Ver.: since zll-1.0-11-0037-10 - -// Client to server -#define ZCL_SCAN_REQUEST_COMMAND_ID 0x00 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_DEVICE_INFORMATION_REQUEST_COMMAND_ID 0x02 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_IDENTIFY_REQUEST_COMMAND_ID 0x06 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_RESET_TO_FACTORY_NEW_REQUEST_COMMAND_ID 0x07 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_NETWORK_START_REQUEST_COMMAND_ID 0x10 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_NETWORK_JOIN_ROUTER_REQUEST_COMMAND_ID 0x12 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_NETWORK_JOIN_END_DEVICE_REQUEST_COMMAND_ID 0x14 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_NETWORK_UPDATE_REQUEST_COMMAND_ID 0x16 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_GET_GROUP_IDENTIFIERS_REQUEST_COMMAND_ID 0x41 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_GET_ENDPOINT_LIST_REQUEST_COMMAND_ID 0x42 // Ver.: since zll-1.0-11-0037-10 - -// Command types for cluster: Sample Mfg Specific Cluster -// Cluster specification level: UNKNOWN - -// Client to server -#define ZCL_COMMAND_ONE_COMMAND_ID 0x00 // Ver.: always mfgCode: 0x1002 - -// Command types for cluster: Sample Mfg Specific Cluster 2 -// Cluster specification level: UNKNOWN - -// Client to server -#define ZCL_COMMAND_TWO_COMMAND_ID 0x00 // Ver.: always mfgCode: 0x1049 - -// Command types for cluster: Configuration Cluster -// Cluster specification level: UNKNOWN - -// Server to client -#define ZCL_RETURN_TOKEN_COMMAND_ID 0x00 // Ver.: always mfgCode: 0x1002 - -// Client to server -#define ZCL_SET_TOKEN_COMMAND_ID 0x00 // Ver.: always mfgCode: 0x1002 -#define ZCL_LOCK_TOKENS_COMMAND_ID 0x01 // Ver.: always mfgCode: 0x1002 -#define ZCL_READ_TOKENS_COMMAND_ID 0x02 // Ver.: always mfgCode: 0x1002 -#define ZCL_UNLOCK_TOKENS_COMMAND_ID 0x03 // Ver.: always mfgCode: 0x1002 - -// Command types for cluster: MFGLIB Cluster -// Cluster specification level: UNKNOWN - -// Client to server -#define ZCL_STREAM_COMMAND_ID 0x00 // Ver.: always mfgCode: 0x1002 -#define ZCL_TONE_COMMAND_ID 0x01 // Ver.: always mfgCode: 0x1002 -#define ZCL_RX_MODE_COMMAND_ID 0x02 // Ver.: always mfgCode: 0x1002 - -// Command types for cluster: SL Works With All Hubs -// Cluster specification level: UNKNOWN - -// Server to client -#define ZCL_APS_LINK_KEY_AUTHORIZATION_QUERY_RESPONSE_COMMAND_ID 0x00 // Ver.: always mfgCode: 0x1217 -#define ZCL_POWERING_OFF_NOTIFICATION_COMMAND_ID 0x01 // Ver.: always mfgCode: 0x1217 -#define ZCL_POWERING_ON_NOTIFICATION_COMMAND_ID 0x02 // Ver.: always mfgCode: 0x1217 -#define ZCL_SHORT_ADDRESS_CHANGE_COMMAND_ID 0x03 // Ver.: always mfgCode: 0x1217 -#define ZCL_APS_ACK_ENABLEMENT_QUERY_RESPONSE_COMMAND_ID 0x04 // Ver.: always mfgCode: 0x1217 -#define ZCL_POWER_DESCRIPTOR_CHANGE_COMMAND_ID 0x05 // Ver.: always mfgCode: 0x1217 -#define ZCL_NEW_DEBUG_REPORT_NOTIFICATION_COMMAND_ID 0x06 // Ver.: always mfgCode: 0x1217 -#define ZCL_DEBUG_REPORT_QUERY_RESPONSE_COMMAND_ID 0x07 // Ver.: always mfgCode: 0x1217 -#define ZCL_TRUST_CENTER_FOR_CLUSTER_SERVER_QUERY_RESPONSE_COMMAND_ID 0x08 // Ver.: always mfgCode: 0x1217 -#define ZCL_SURVEY_BEACONS_RESPONSE_COMMAND_ID 0x09 // Ver.: always mfgCode: 0x1217 -#define ZCL_USE_TRUST_CENTER_FOR_CLUSTER_SERVER_RESPONSE_COMMAND_ID 0x9E // Ver.: always mfgCode: 0x1217 - -// Client to server -#define ZCL_ENABLE_APS_LINK_KEY_AUTHORIZATION_COMMAND_ID 0x00 // Ver.: always mfgCode: 0x1217 -#define ZCL_DISABLE_APS_LINK_KEY_AUTHORIZATION_COMMAND_ID 0x01 // Ver.: always mfgCode: 0x1217 -#define ZCL_APS_LINK_KEY_AUTHORIZATION_QUERY_COMMAND_ID 0x02 // Ver.: always mfgCode: 0x1217 -#define ZCL_REQUEST_NEW_APS_LINK_KEY_COMMAND_ID 0x03 // Ver.: always mfgCode: 0x1217 -#define ZCL_ENABLE_WWAH_APP_EVENT_RETRY_ALGORITHM_COMMAND_ID 0x04 // Ver.: always mfgCode: 0x1217 -#define ZCL_DISABLE_WWAH_APP_EVENT_RETRY_ALGORITHM_COMMAND_ID 0x05 // Ver.: always mfgCode: 0x1217 -#define ZCL_REQUEST_TIME_COMMAND_ID 0x06 // Ver.: always mfgCode: 0x1217 -#define ZCL_ENABLE_WWAH_REJOIN_ALGORITHM_COMMAND_ID 0x07 // Ver.: always mfgCode: 0x1217 -#define ZCL_DISABLE_WWAH_REJOIN_ALGORITHM_COMMAND_ID 0x08 // Ver.: always mfgCode: 0x1217 -#define ZCL_SET_IAS_ZONE_ENROLLMENT_METHOD_COMMAND_ID 0x09 // Ver.: always mfgCode: 0x1217 -#define ZCL_CLEAR_BINDING_TABLE_COMMAND_ID 0x0A // Ver.: always mfgCode: 0x1217 -#define ZCL_ENABLE_PERIODIC_ROUTER_CHECK_INS_COMMAND_ID 0x0B // Ver.: always mfgCode: 0x1217 -#define ZCL_DISABLE_PERIODIC_ROUTER_CHECK_INS_COMMAND_ID 0x0C // Ver.: always mfgCode: 0x1217 -#define ZCL_SET_MAC_POLL_FAILURE_WAIT_TIME_COMMAND_ID 0x0D // Ver.: always mfgCode: 0x1217 -#define ZCL_SET_PENDING_NETWORK_UPDATE_COMMAND_ID 0x0E // Ver.: always mfgCode: 0x1217 -#define ZCL_REQUIRE_APS_ACKS_ON_UNICASTS_COMMAND_ID 0x0F // Ver.: always mfgCode: 0x1217 -#define ZCL_REMOVE_APS_ACKS_ON_UNICASTS_REQUIREMENT_COMMAND_ID 0x10 // Ver.: always mfgCode: 0x1217 -#define ZCL_APS_ACK_REQUIREMENT_QUERY_COMMAND_ID 0x11 // Ver.: always mfgCode: 0x1217 -#define ZCL_DEBUG_REPORT_QUERY_COMMAND_ID 0x12 // Ver.: always mfgCode: 0x1217 -#define ZCL_SURVEY_BEACONS_COMMAND_ID 0x13 // Ver.: always mfgCode: 0x1217 -#define ZCL_DISABLE_OTA_DOWNGRADES_COMMAND_ID 0x14 // Ver.: always mfgCode: 0x1217 -#define ZCL_DISABLE_MGMT_LEAVE_WITHOUT_REJOIN_COMMAND_ID 0x15 // Ver.: always mfgCode: 0x1217 -#define ZCL_DISABLE_TOUCHLINK_INTERPAN_MESSAGE_SUPPORT_COMMAND_ID 0x16 // Ver.: always mfgCode: 0x1217 -#define ZCL_ENABLE_WWAH_PARENT_CLASSIFICATION_COMMAND_ID 0x17 // Ver.: always mfgCode: 0x1217 -#define ZCL_DISABLE_WWAH_PARENT_CLASSIFICATION_COMMAND_ID 0x18 // Ver.: always mfgCode: 0x1217 -#define ZCL_ENABLE_TC_SECURITY_ON_NTWK_KEY_ROTATION_COMMAND_ID 0x19 // Ver.: always mfgCode: 0x1217 -#define ZCL_ENABLE_WWAH_BAD_PARENT_RECOVERY_COMMAND_ID 0x1A // Ver.: always mfgCode: 0x1217 -#define ZCL_DISABLE_WWAH_BAD_PARENT_RECOVERY_COMMAND_ID 0x1B // Ver.: always mfgCode: 0x1217 -#define ZCL_ENABLE_CONFIGURATION_MODE_COMMAND_ID 0x1C // Ver.: always mfgCode: 0x1217 -#define ZCL_DISABLE_CONFIGURATION_MODE_COMMAND_ID 0x1D // Ver.: always mfgCode: 0x1217 -#define ZCL_USE_TRUST_CENTER_FOR_CLUSTER_SERVER_COMMAND_ID 0x1E // Ver.: always mfgCode: 0x1217 -#define ZCL_TRUST_CENTER_FOR_CLUSTER_SERVER_QUERY_COMMAND_ID 0x1F // Ver.: always mfgCode: 0x1217 - -#endif // SILABS_EMBER_AF_COMMAND_ID + +// Prevent multiple inclusion +#pragma once + +// Global, non-cluster-specific commands +#define ZCL_READ_ATTRIBUTES_COMMAND_ID (0x00) +#define ZCL_READ_ATTRIBUTES_RESPONSE_COMMAND_ID (0x01) +#define ZCL_WRITE_ATTRIBUTES_COMMAND_ID (0x02) +#define ZCL_WRITE_ATTRIBUTES_UNDIVIDED_COMMAND_ID (0x03) +#define ZCL_WRITE_ATTRIBUTES_RESPONSE_COMMAND_ID (0x04) +#define ZCL_WRITE_ATTRIBUTES_NO_RESPONSE_COMMAND_ID (0x05) +#define ZCL_CONFIGURE_REPORTING_COMMAND_ID (0x06) +#define ZCL_CONFIGURE_REPORTING_RESPONSE_COMMAND_ID (0x07) +#define ZCL_READ_REPORTING_CONFIGURATION_COMMAND_ID (0x08) +#define ZCL_READ_REPORTING_CONFIGURATION_RESPONSE_COMMAND_ID (0x09) +#define ZCL_REPORT_ATTRIBUTES_COMMAND_ID (0x0A) +#define ZCL_DEFAULT_RESPONSE_COMMAND_ID (0x0B) +#define ZCL_DISCOVER_ATTRIBUTES_COMMAND_ID (0x0C) +#define ZCL_DISCOVER_ATTRIBUTES_RESPONSE_COMMAND_ID (0x0D) +#define ZCL_READ_ATTRIBUTES_STRUCTURED_COMMAND_ID (0x0E) +#define ZCL_WRITE_ATTRIBUTES_STRUCTURED_COMMAND_ID (0x0F) +#define ZCL_WRITE_ATTRIBUTES_STRUCTURED_RESPONSE_COMMAND_ID (0x10) +#define ZCL_DISCOVER_COMMANDS_RECEIVED_COMMAND_ID (0x11) +#define ZCL_DISCOVER_COMMANDS_RECEIVED_RESPONSE_COMMAND_ID (0x12) +#define ZCL_DISCOVER_COMMANDS_GENERATED_COMMAND_ID (0x13) +#define ZCL_DISCOVER_COMMANDS_GENERATED_RESPONSE_COMMAND_ID (0x14) +#define ZCL_DISCOVER_ATTRIBUTES_EXTENDED_COMMAND_ID (0x15) +#define ZCL_DISCOVER_ATTRIBUTES_EXTENDED_RESPONSE_COMMAND_ID (0x16) + +// Commands for cluster: Basic +#define ZCL_RESET_TO_FACTORY_DEFAULTS_COMMAND_ID (0x00) + +// Commands for cluster: Identify +#define ZCL_IDENTIFY_COMMAND_ID (0x00) +#define ZCL_IDENTIFY_QUERY_RESPONSE_COMMAND_ID (0x00) +#define ZCL_IDENTIFY_QUERY_COMMAND_ID (0x01) +#define ZCL_EZ_MODE_INVOKE_COMMAND_ID (0x02) +#define ZCL_UPDATE_COMMISSION_STATE_COMMAND_ID (0x03) +#define ZCL_TRIGGER_EFFECT_COMMAND_ID (0x40) + +// Commands for cluster: Groups +#define ZCL_ADD_GROUP_COMMAND_ID (0x00) +#define ZCL_ADD_GROUP_RESPONSE_COMMAND_ID (0x00) +#define ZCL_VIEW_GROUP_COMMAND_ID (0x01) +#define ZCL_VIEW_GROUP_RESPONSE_COMMAND_ID (0x01) +#define ZCL_GET_GROUP_MEMBERSHIP_COMMAND_ID (0x02) +#define ZCL_GET_GROUP_MEMBERSHIP_RESPONSE_COMMAND_ID (0x02) +#define ZCL_REMOVE_GROUP_COMMAND_ID (0x03) +#define ZCL_REMOVE_GROUP_RESPONSE_COMMAND_ID (0x03) +#define ZCL_REMOVE_ALL_GROUPS_COMMAND_ID (0x04) +#define ZCL_ADD_GROUP_IF_IDENTIFYING_COMMAND_ID (0x05) + +// Commands for cluster: Scenes +#define ZCL_ADD_SCENE_COMMAND_ID (0x00) +#define ZCL_ADD_SCENE_RESPONSE_COMMAND_ID (0x00) +#define ZCL_VIEW_SCENE_COMMAND_ID (0x01) +#define ZCL_VIEW_SCENE_RESPONSE_COMMAND_ID (0x01) +#define ZCL_REMOVE_SCENE_COMMAND_ID (0x02) +#define ZCL_REMOVE_SCENE_RESPONSE_COMMAND_ID (0x02) +#define ZCL_REMOVE_ALL_SCENES_COMMAND_ID (0x03) +#define ZCL_REMOVE_ALL_SCENES_RESPONSE_COMMAND_ID (0x03) +#define ZCL_STORE_SCENE_COMMAND_ID (0x04) +#define ZCL_STORE_SCENE_RESPONSE_COMMAND_ID (0x04) +#define ZCL_RECALL_SCENE_COMMAND_ID (0x05) +#define ZCL_GET_SCENE_MEMBERSHIP_COMMAND_ID (0x06) +#define ZCL_GET_SCENE_MEMBERSHIP_RESPONSE_COMMAND_ID (0x06) +#define ZCL_ENHANCED_ADD_SCENE_COMMAND_ID (0x40) +#define ZCL_ENHANCED_ADD_SCENE_RESPONSE_COMMAND_ID (0x40) +#define ZCL_ENHANCED_VIEW_SCENE_COMMAND_ID (0x41) +#define ZCL_ENHANCED_VIEW_SCENE_RESPONSE_COMMAND_ID (0x41) +#define ZCL_COPY_SCENE_COMMAND_ID (0x42) +#define ZCL_COPY_SCENE_RESPONSE_COMMAND_ID (0x42) + +// Commands for cluster: On/off +#define ZCL_OFF_COMMAND_ID (0x00) +#define ZCL_SAMPLE_MFG_SPECIFIC_OFF_WITH_TRANSITION_COMMAND_ID (0x00) +#define ZCL_ON_COMMAND_ID (0x01) +#define ZCL_SAMPLE_MFG_SPECIFIC_ON_WITH_TRANSITION_COMMAND_ID (0x01) +#define ZCL_SAMPLE_MFG_SPECIFIC_ON_WITH_TRANSITION2_COMMAND_ID (0x01) +#define ZCL_TOGGLE_COMMAND_ID (0x02) +#define ZCL_SAMPLE_MFG_SPECIFIC_TOGGLE_WITH_TRANSITION_COMMAND_ID (0x02) +#define ZCL_SAMPLE_MFG_SPECIFIC_TOGGLE_WITH_TRANSITION2_COMMAND_ID (0x02) +#define ZCL_OFF_WITH_EFFECT_COMMAND_ID (0x40) +#define ZCL_ON_WITH_RECALL_GLOBAL_SCENE_COMMAND_ID (0x41) +#define ZCL_ON_WITH_TIMED_OFF_COMMAND_ID (0x42) + +// Commands for cluster: Level Control +#define ZCL_MOVE_TO_LEVEL_COMMAND_ID (0x00) +#define ZCL_MOVE_COMMAND_ID (0x01) +#define ZCL_STEP_COMMAND_ID (0x02) +#define ZCL_STOP_COMMAND_ID (0x03) +#define ZCL_MOVE_TO_LEVEL_WITH_ON_OFF_COMMAND_ID (0x04) +#define ZCL_MOVE_WITH_ON_OFF_COMMAND_ID (0x05) +#define ZCL_STEP_WITH_ON_OFF_COMMAND_ID (0x06) +#define ZCL_STOP_WITH_ON_OFF_COMMAND_ID (0x07) + +// Commands for cluster: Alarms +#define ZCL_RESET_ALARM_COMMAND_ID (0x00) +#define ZCL_ALARM_COMMAND_ID (0x00) +#define ZCL_RESET_ALL_ALARMS_COMMAND_ID (0x01) +#define ZCL_GET_ALARM_RESPONSE_COMMAND_ID (0x01) +#define ZCL_GET_ALARM_COMMAND_ID (0x02) +#define ZCL_RESET_ALARM_LOG_COMMAND_ID (0x03) + +// Commands for cluster: RSSI Location +#define ZCL_SET_ABSOLUTE_LOCATION_COMMAND_ID (0x00) +#define ZCL_DEVICE_CONFIGURATION_RESPONSE_COMMAND_ID (0x00) +#define ZCL_SET_DEVICE_CONFIGURATION_COMMAND_ID (0x01) +#define ZCL_LOCATION_DATA_RESPONSE_COMMAND_ID (0x01) +#define ZCL_GET_DEVICE_CONFIGURATION_COMMAND_ID (0x02) +#define ZCL_LOCATION_DATA_NOTIFICATION_COMMAND_ID (0x02) +#define ZCL_GET_LOCATION_DATA_COMMAND_ID (0x03) +#define ZCL_COMPACT_LOCATION_DATA_NOTIFICATION_COMMAND_ID (0x03) +#define ZCL_RSSI_RESPONSE_COMMAND_ID (0x04) +#define ZCL_RSSI_PING_COMMAND_ID (0x04) +#define ZCL_SEND_PINGS_COMMAND_ID (0x05) +#define ZCL_RSSI_REQUEST_COMMAND_ID (0x05) +#define ZCL_ANCHOR_NODE_ANNOUNCE_COMMAND_ID (0x06) +#define ZCL_REPORT_RSSI_MEASUREMENTS_COMMAND_ID (0x06) +#define ZCL_REQUEST_OWN_LOCATION_COMMAND_ID (0x07) + +// Commands for cluster: Commissioning +#define ZCL_RESTART_DEVICE_COMMAND_ID (0x00) +#define ZCL_RESTART_DEVICE_RESPONSE_COMMAND_ID (0x00) +#define ZCL_SAVE_STARTUP_PARAMETERS_COMMAND_ID (0x01) +#define ZCL_SAVE_STARTUP_PARAMETERS_RESPONSE_COMMAND_ID (0x01) +#define ZCL_RESTORE_STARTUP_PARAMETERS_COMMAND_ID (0x02) +#define ZCL_RESTORE_STARTUP_PARAMETERS_RESPONSE_COMMAND_ID (0x02) +#define ZCL_RESET_STARTUP_PARAMETERS_COMMAND_ID (0x03) +#define ZCL_RESET_STARTUP_PARAMETERS_RESPONSE_COMMAND_ID (0x03) + +// Commands for cluster: Partition +#define ZCL_TRANSFER_PARTITIONED_FRAME_COMMAND_ID (0x00) +#define ZCL_MULTIPLE_ACK_COMMAND_ID (0x00) +#define ZCL_READ_HANDSHAKE_PARAM_COMMAND_ID (0x01) +#define ZCL_READ_HANDSHAKE_PARAM_RESPONSE_COMMAND_ID (0x01) +#define ZCL_WRITE_HANDSHAKE_PARAM_COMMAND_ID (0x02) + +// Commands for cluster: Over the Air Bootloading +#define ZCL_IMAGE_NOTIFY_COMMAND_ID (0x00) +#define ZCL_QUERY_NEXT_IMAGE_REQUEST_COMMAND_ID (0x01) +#define ZCL_QUERY_NEXT_IMAGE_RESPONSE_COMMAND_ID (0x02) +#define ZCL_IMAGE_BLOCK_REQUEST_COMMAND_ID (0x03) +#define ZCL_IMAGE_PAGE_REQUEST_COMMAND_ID (0x04) +#define ZCL_IMAGE_BLOCK_RESPONSE_COMMAND_ID (0x05) +#define ZCL_UPGRADE_END_REQUEST_COMMAND_ID (0x06) +#define ZCL_UPGRADE_END_RESPONSE_COMMAND_ID (0x07) +#define ZCL_QUERY_SPECIFIC_FILE_REQUEST_COMMAND_ID (0x08) +#define ZCL_QUERY_SPECIFIC_FILE_RESPONSE_COMMAND_ID (0x09) + +// Commands for cluster: Power Profile +#define ZCL_POWER_PROFILE_REQUEST_COMMAND_ID (0x00) +#define ZCL_POWER_PROFILE_NOTIFICATION_COMMAND_ID (0x00) +#define ZCL_POWER_PROFILE_STATE_REQUEST_COMMAND_ID (0x01) +#define ZCL_POWER_PROFILE_RESPONSE_COMMAND_ID (0x01) +#define ZCL_GET_POWER_PROFILE_PRICE_RESPONSE_COMMAND_ID (0x02) +#define ZCL_POWER_PROFILE_STATE_RESPONSE_COMMAND_ID (0x02) +#define ZCL_GET_OVERALL_SCHEDULE_PRICE_RESPONSE_COMMAND_ID (0x03) +#define ZCL_GET_POWER_PROFILE_PRICE_COMMAND_ID (0x03) +#define ZCL_ENERGY_PHASES_SCHEDULE_NOTIFICATION_COMMAND_ID (0x04) +#define ZCL_POWER_PROFILES_STATE_NOTIFICATION_COMMAND_ID (0x04) +#define ZCL_ENERGY_PHASES_SCHEDULE_RESPONSE_COMMAND_ID (0x05) +#define ZCL_GET_OVERALL_SCHEDULE_PRICE_COMMAND_ID (0x05) +#define ZCL_POWER_PROFILE_SCHEDULE_CONSTRAINTS_REQUEST_COMMAND_ID (0x06) +#define ZCL_ENERGY_PHASES_SCHEDULE_REQUEST_COMMAND_ID (0x06) +#define ZCL_ENERGY_PHASES_SCHEDULE_STATE_REQUEST_COMMAND_ID (0x07) +#define ZCL_ENERGY_PHASES_SCHEDULE_STATE_RESPONSE_COMMAND_ID (0x07) +#define ZCL_GET_POWER_PROFILE_PRICE_EXTENDED_RESPONSE_COMMAND_ID (0x08) +#define ZCL_ENERGY_PHASES_SCHEDULE_STATE_NOTIFICATION_COMMAND_ID (0x08) +#define ZCL_POWER_PROFILE_SCHEDULE_CONSTRAINTS_NOTIFICATION_COMMAND_ID (0x09) +#define ZCL_POWER_PROFILE_SCHEDULE_CONSTRAINTS_RESPONSE_COMMAND_ID (0x0A) +#define ZCL_GET_POWER_PROFILE_PRICE_EXTENDED_COMMAND_ID (0x0B) + +// Commands for cluster: Appliance Control +#define ZCL_EXECUTION_OF_A_COMMAND_COMMAND_ID (0x00) +#define ZCL_SIGNAL_STATE_RESPONSE_COMMAND_ID (0x00) +#define ZCL_SIGNAL_STATE_COMMAND_ID (0x01) +#define ZCL_SIGNAL_STATE_NOTIFICATION_COMMAND_ID (0x01) +#define ZCL_WRITE_FUNCTIONS_COMMAND_ID (0x02) +#define ZCL_OVERLOAD_PAUSE_RESUME_COMMAND_ID (0x03) +#define ZCL_OVERLOAD_PAUSE_COMMAND_ID (0x04) +#define ZCL_OVERLOAD_WARNING_COMMAND_ID (0x05) + +// Commands for cluster: Poll Control +#define ZCL_CHECK_IN_COMMAND_ID (0x00) +#define ZCL_CHECK_IN_RESPONSE_COMMAND_ID (0x00) +#define ZCL_FAST_POLL_STOP_COMMAND_ID (0x01) +#define ZCL_SET_LONG_POLL_INTERVAL_COMMAND_ID (0x02) +#define ZCL_SET_SHORT_POLL_INTERVAL_COMMAND_ID (0x03) + +// Commands for cluster: Green Power +#define ZCL_GP_NOTIFICATION_COMMAND_ID (0x00) +#define ZCL_GP_NOTIFICATION_RESPONSE_COMMAND_ID (0x00) +#define ZCL_GP_PAIRING_SEARCH_COMMAND_ID (0x01) +#define ZCL_GP_PAIRING_COMMAND_ID (0x01) +#define ZCL_GP_PROXY_COMMISSIONING_MODE_COMMAND_ID (0x02) +#define ZCL_GP_TUNNELING_STOP_COMMAND_ID (0x03) +#define ZCL_GP_COMMISSIONING_NOTIFICATION_COMMAND_ID (0x04) +#define ZCL_GP_SINK_COMMISSIONING_MODE_COMMAND_ID (0x05) +#define ZCL_GP_RESPONSE_COMMAND_ID (0x06) +#define ZCL_GP_TRANSLATION_TABLE_UPDATE_COMMAND_ID (0x07) +#define ZCL_GP_TRANSLATION_TABLE_REQUEST_COMMAND_ID (0x08) +#define ZCL_GP_TRANSLATION_TABLE_RESPONSE_COMMAND_ID (0x08) +#define ZCL_GP_PAIRING_CONFIGURATION_COMMAND_ID (0x09) +#define ZCL_GP_SINK_TABLE_REQUEST_COMMAND_ID (0x0A) +#define ZCL_GP_SINK_TABLE_RESPONSE_COMMAND_ID (0x0A) +#define ZCL_GP_PROXY_TABLE_RESPONSE_COMMAND_ID (0x0B) +#define ZCL_GP_PROXY_TABLE_REQUEST_COMMAND_ID (0x0B) + +// Commands for cluster: Door Lock +#define ZCL_LOCK_DOOR_COMMAND_ID (0x00) +#define ZCL_LOCK_DOOR_RESPONSE_COMMAND_ID (0x00) +#define ZCL_UNLOCK_DOOR_COMMAND_ID (0x01) +#define ZCL_UNLOCK_DOOR_RESPONSE_COMMAND_ID (0x01) +#define ZCL_TOGGLE_COMMAND_ID (0x02) +#define ZCL_TOGGLE_RESPONSE_COMMAND_ID (0x02) +#define ZCL_UNLOCK_WITH_TIMEOUT_COMMAND_ID (0x03) +#define ZCL_UNLOCK_WITH_TIMEOUT_RESPONSE_COMMAND_ID (0x03) +#define ZCL_GET_LOG_RECORD_COMMAND_ID (0x04) +#define ZCL_GET_LOG_RECORD_RESPONSE_COMMAND_ID (0x04) +#define ZCL_SET_PIN_COMMAND_ID (0x05) +#define ZCL_SET_PIN_RESPONSE_COMMAND_ID (0x05) +#define ZCL_GET_PIN_COMMAND_ID (0x06) +#define ZCL_GET_PIN_RESPONSE_COMMAND_ID (0x06) +#define ZCL_CLEAR_PIN_COMMAND_ID (0x07) +#define ZCL_CLEAR_PIN_RESPONSE_COMMAND_ID (0x07) +#define ZCL_CLEAR_ALL_PINS_COMMAND_ID (0x08) +#define ZCL_CLEAR_ALL_PINS_RESPONSE_COMMAND_ID (0x08) +#define ZCL_SET_USER_STATUS_COMMAND_ID (0x09) +#define ZCL_SET_USER_STATUS_RESPONSE_COMMAND_ID (0x09) +#define ZCL_GET_USER_STATUS_COMMAND_ID (0x0A) +#define ZCL_GET_USER_STATUS_RESPONSE_COMMAND_ID (0x0A) +#define ZCL_SET_WEEKDAY_SCHEDULE_COMMAND_ID (0x0B) +#define ZCL_SET_WEEKDAY_SCHEDULE_RESPONSE_COMMAND_ID (0x0B) +#define ZCL_GET_WEEKDAY_SCHEDULE_COMMAND_ID (0x0C) +#define ZCL_GET_WEEKDAY_SCHEDULE_RESPONSE_COMMAND_ID (0x0C) +#define ZCL_CLEAR_WEEKDAY_SCHEDULE_COMMAND_ID (0x0D) +#define ZCL_CLEAR_WEEKDAY_SCHEDULE_RESPONSE_COMMAND_ID (0x0D) +#define ZCL_SET_YEARDAY_SCHEDULE_COMMAND_ID (0x0E) +#define ZCL_SET_YEARDAY_SCHEDULE_RESPONSE_COMMAND_ID (0x0E) +#define ZCL_GET_YEARDAY_SCHEDULE_COMMAND_ID (0x0F) +#define ZCL_GET_YEARDAY_SCHEDULE_RESPONSE_COMMAND_ID (0x0F) +#define ZCL_CLEAR_YEARDAY_SCHEDULE_COMMAND_ID (0x10) +#define ZCL_CLEAR_YEARDAY_SCHEDULE_RESPONSE_COMMAND_ID (0x10) +#define ZCL_SET_HOLIDAY_SCHEDULE_COMMAND_ID (0x11) +#define ZCL_SET_HOLIDAY_SCHEDULE_RESPONSE_COMMAND_ID (0x11) +#define ZCL_GET_HOLIDAY_SCHEDULE_COMMAND_ID (0x12) +#define ZCL_GET_HOLIDAY_SCHEDULE_RESPONSE_COMMAND_ID (0x12) +#define ZCL_CLEAR_HOLIDAY_SCHEDULE_COMMAND_ID (0x13) +#define ZCL_CLEAR_HOLIDAY_SCHEDULE_RESPONSE_COMMAND_ID (0x13) +#define ZCL_SET_USER_TYPE_COMMAND_ID (0x14) +#define ZCL_SET_USER_TYPE_RESPONSE_COMMAND_ID (0x14) +#define ZCL_GET_USER_TYPE_COMMAND_ID (0x15) +#define ZCL_GET_USER_TYPE_RESPONSE_COMMAND_ID (0x15) +#define ZCL_SET_RFID_COMMAND_ID (0x16) +#define ZCL_SET_RFID_RESPONSE_COMMAND_ID (0x16) +#define ZCL_GET_RFID_COMMAND_ID (0x17) +#define ZCL_GET_RFID_RESPONSE_COMMAND_ID (0x17) +#define ZCL_CLEAR_RFID_COMMAND_ID (0x18) +#define ZCL_CLEAR_RFID_RESPONSE_COMMAND_ID (0x18) +#define ZCL_CLEAR_ALL_RFIDS_COMMAND_ID (0x19) +#define ZCL_CLEAR_ALL_RFIDS_RESPONSE_COMMAND_ID (0x19) +#define ZCL_OPERATION_EVENT_NOTIFICATION_COMMAND_ID (0x20) +#define ZCL_PROGRAMMING_EVENT_NOTIFICATION_COMMAND_ID (0x21) + +// Commands for cluster: Window Covering +#define ZCL_WINDOW_COVERING_UP_OPEN_COMMAND_ID (0x00) +#define ZCL_WINDOW_COVERING_DOWN_CLOSE_COMMAND_ID (0x01) +#define ZCL_WINDOW_COVERING_STOP_COMMAND_ID (0x02) +#define ZCL_WINDOW_COVERING_GO_TO_LIFT_VALUE_COMMAND_ID (0x04) +#define ZCL_WINDOW_COVERING_GO_TO_LIFT_PERCENTAGE_COMMAND_ID (0x05) +#define ZCL_WINDOW_COVERING_GO_TO_TILT_VALUE_COMMAND_ID (0x07) +#define ZCL_WINDOW_COVERING_GO_TO_TILT_PERCENTAGE_COMMAND_ID (0x08) + +// Commands for cluster: Barrier Control +#define ZCL_BARRIER_CONTROL_GO_TO_PERCENT_COMMAND_ID (0x00) +#define ZCL_BARRIER_CONTROL_STOP_COMMAND_ID (0x01) + +// Commands for cluster: Thermostat +#define ZCL_SETPOINT_RAISE_LOWER_COMMAND_ID (0x00) +#define ZCL_CURRENT_WEEKLY_SCHEDULE_COMMAND_ID (0x00) +#define ZCL_SET_WEEKLY_SCHEDULE_COMMAND_ID (0x01) +#define ZCL_RELAY_STATUS_LOG_COMMAND_ID (0x01) +#define ZCL_GET_WEEKLY_SCHEDULE_COMMAND_ID (0x02) +#define ZCL_CLEAR_WEEKLY_SCHEDULE_COMMAND_ID (0x03) +#define ZCL_GET_RELAY_STATUS_LOG_COMMAND_ID (0x04) + +// Commands for cluster: Color Control +#define ZCL_MOVE_TO_HUE_COMMAND_ID (0x00) +#define ZCL_MOVE_HUE_COMMAND_ID (0x01) +#define ZCL_STEP_HUE_COMMAND_ID (0x02) +#define ZCL_MOVE_TO_SATURATION_COMMAND_ID (0x03) +#define ZCL_MOVE_SATURATION_COMMAND_ID (0x04) +#define ZCL_STEP_SATURATION_COMMAND_ID (0x05) +#define ZCL_MOVE_TO_HUE_AND_SATURATION_COMMAND_ID (0x06) +#define ZCL_MOVE_TO_COLOR_COMMAND_ID (0x07) +#define ZCL_MOVE_COLOR_COMMAND_ID (0x08) +#define ZCL_STEP_COLOR_COMMAND_ID (0x09) +#define ZCL_MOVE_TO_COLOR_TEMPERATURE_COMMAND_ID (0x0A) +#define ZCL_ENHANCED_MOVE_TO_HUE_COMMAND_ID (0x40) +#define ZCL_ENHANCED_MOVE_HUE_COMMAND_ID (0x41) +#define ZCL_ENHANCED_STEP_HUE_COMMAND_ID (0x42) +#define ZCL_ENHANCED_MOVE_TO_HUE_AND_SATURATION_COMMAND_ID (0x43) +#define ZCL_COLOR_LOOP_SET_COMMAND_ID (0x44) +#define ZCL_STOP_MOVE_STEP_COMMAND_ID (0x47) +#define ZCL_MOVE_COLOR_TEMPERATURE_COMMAND_ID (0x4B) +#define ZCL_STEP_COLOR_TEMPERATURE_COMMAND_ID (0x4C) + +// Commands for cluster: IAS Zone +#define ZCL_ZONE_ENROLL_RESPONSE_COMMAND_ID (0x00) +#define ZCL_ZONE_STATUS_CHANGE_NOTIFICATION_COMMAND_ID (0x00) +#define ZCL_INITIATE_NORMAL_OPERATION_MODE_COMMAND_ID (0x01) +#define ZCL_ZONE_ENROLL_REQUEST_COMMAND_ID (0x01) +#define ZCL_INITIATE_TEST_MODE_COMMAND_ID (0x02) +#define ZCL_INITIATE_NORMAL_OPERATION_MODE_RESPONSE_COMMAND_ID (0x02) +#define ZCL_INITIATE_TEST_MODE_RESPONSE_COMMAND_ID (0x03) + +// Commands for cluster: IAS ACE +#define ZCL_ARM_COMMAND_ID (0x00) +#define ZCL_ARM_RESPONSE_COMMAND_ID (0x00) +#define ZCL_BYPASS_COMMAND_ID (0x01) +#define ZCL_GET_ZONE_ID_MAP_RESPONSE_COMMAND_ID (0x01) +#define ZCL_EMERGENCY_COMMAND_ID (0x02) +#define ZCL_GET_ZONE_INFORMATION_RESPONSE_COMMAND_ID (0x02) +#define ZCL_FIRE_COMMAND_ID (0x03) +#define ZCL_ZONE_STATUS_CHANGED_COMMAND_ID (0x03) +#define ZCL_PANIC_COMMAND_ID (0x04) +#define ZCL_PANEL_STATUS_CHANGED_COMMAND_ID (0x04) +#define ZCL_GET_ZONE_ID_MAP_COMMAND_ID (0x05) +#define ZCL_GET_PANEL_STATUS_RESPONSE_COMMAND_ID (0x05) +#define ZCL_GET_ZONE_INFORMATION_COMMAND_ID (0x06) +#define ZCL_SET_BYPASSED_ZONE_LIST_COMMAND_ID (0x06) +#define ZCL_GET_PANEL_STATUS_COMMAND_ID (0x07) +#define ZCL_BYPASS_RESPONSE_COMMAND_ID (0x07) +#define ZCL_GET_BYPASSED_ZONE_LIST_COMMAND_ID (0x08) +#define ZCL_GET_ZONE_STATUS_RESPONSE_COMMAND_ID (0x08) +#define ZCL_GET_ZONE_STATUS_COMMAND_ID (0x09) + +// Commands for cluster: IAS WD +#define ZCL_START_WARNING_COMMAND_ID (0x00) +#define ZCL_SQUAWK_COMMAND_ID (0x01) + +// Commands for cluster: Generic Tunnel +#define ZCL_MATCH_PROTOCOL_ADDRESS_COMMAND_ID (0x00) +#define ZCL_MATCH_PROTOCOL_ADDRESS_RESPONSE_COMMAND_ID (0x00) +#define ZCL_ADVERTISE_PROTOCOL_ADDRESS_COMMAND_ID (0x01) + +// Commands for cluster: BACnet Protocol Tunnel +#define ZCL_TRANSFER_NPDU_COMMAND_ID (0x00) + +// Commands for cluster: 11073 Protocol Tunnel +#define ZCL_TRANSFER_APDU_COMMAND_ID (0x00) +#define ZCL_CONNECT_REQUEST_COMMAND_ID (0x01) +#define ZCL_DISCONNECT_REQUEST_COMMAND_ID (0x02) +#define ZCL_CONNECT_STATUS_NOTIFICATION_COMMAND_ID (0x03) + +// Commands for cluster: ISO 7816 Protocol Tunnel +#define ZCL_TRANSFER_APDU_COMMAND_ID (0x00) +#define ZCL_INSERT_SMART_CARD_COMMAND_ID (0x01) +#define ZCL_EXTRACT_SMART_CARD_COMMAND_ID (0x02) + +// Commands for cluster: Price +#define ZCL_PUBLISH_PRICE_COMMAND_ID (0x00) +#define ZCL_GET_CURRENT_PRICE_COMMAND_ID (0x00) +#define ZCL_PUBLISH_BLOCK_PERIOD_COMMAND_ID (0x01) +#define ZCL_GET_SCHEDULED_PRICES_COMMAND_ID (0x01) +#define ZCL_PUBLISH_CONVERSION_FACTOR_COMMAND_ID (0x02) +#define ZCL_PRICE_ACKNOWLEDGEMENT_COMMAND_ID (0x02) +#define ZCL_PUBLISH_CALORIFIC_VALUE_COMMAND_ID (0x03) +#define ZCL_GET_BLOCK_PERIODS_COMMAND_ID (0x03) +#define ZCL_PUBLISH_TARIFF_INFORMATION_COMMAND_ID (0x04) +#define ZCL_GET_CONVERSION_FACTOR_COMMAND_ID (0x04) +#define ZCL_PUBLISH_PRICE_MATRIX_COMMAND_ID (0x05) +#define ZCL_GET_CALORIFIC_VALUE_COMMAND_ID (0x05) +#define ZCL_PUBLISH_BLOCK_THRESHOLDS_COMMAND_ID (0x06) +#define ZCL_GET_TARIFF_INFORMATION_COMMAND_ID (0x06) +#define ZCL_PUBLISH_CO2_VALUE_COMMAND_ID (0x07) +#define ZCL_GET_PRICE_MATRIX_COMMAND_ID (0x07) +#define ZCL_PUBLISH_TIER_LABELS_COMMAND_ID (0x08) +#define ZCL_GET_BLOCK_THRESHOLDS_COMMAND_ID (0x08) +#define ZCL_PUBLISH_BILLING_PERIOD_COMMAND_ID (0x09) +#define ZCL_GET_CO2_VALUE_COMMAND_ID (0x09) +#define ZCL_PUBLISH_CONSOLIDATED_BILL_COMMAND_ID (0x0A) +#define ZCL_GET_TIER_LABELS_COMMAND_ID (0x0A) +#define ZCL_PUBLISH_CPP_EVENT_COMMAND_ID (0x0B) +#define ZCL_GET_BILLING_PERIOD_COMMAND_ID (0x0B) +#define ZCL_PUBLISH_CREDIT_PAYMENT_COMMAND_ID (0x0C) +#define ZCL_GET_CONSOLIDATED_BILL_COMMAND_ID (0x0C) +#define ZCL_PUBLISH_CURRENCY_CONVERSION_COMMAND_ID (0x0D) +#define ZCL_CPP_EVENT_RESPONSE_COMMAND_ID (0x0D) +#define ZCL_CANCEL_TARIFF_COMMAND_ID (0x0E) +#define ZCL_GET_CREDIT_PAYMENT_COMMAND_ID (0x0E) +#define ZCL_GET_CURRENCY_CONVERSION_COMMAND_COMMAND_ID (0x0F) +#define ZCL_GET_TARIFF_CANCELLATION_COMMAND_ID (0x10) + +// Commands for cluster: Demand Response and Load Control +#define ZCL_LOAD_CONTROL_EVENT_COMMAND_ID (0x00) +#define ZCL_REPORT_EVENT_STATUS_COMMAND_ID (0x00) +#define ZCL_CANCEL_LOAD_CONTROL_EVENT_COMMAND_ID (0x01) +#define ZCL_GET_SCHEDULED_EVENTS_COMMAND_ID (0x01) +#define ZCL_CANCEL_ALL_LOAD_CONTROL_EVENTS_COMMAND_ID (0x02) + +// Commands for cluster: Simple Metering +#define ZCL_GET_PROFILE_RESPONSE_COMMAND_ID (0x00) +#define ZCL_GET_PROFILE_COMMAND_ID (0x00) +#define ZCL_REQUEST_MIRROR_COMMAND_ID (0x01) +#define ZCL_REQUEST_MIRROR_RESPONSE_COMMAND_ID (0x01) +#define ZCL_REMOVE_MIRROR_COMMAND_ID (0x02) +#define ZCL_MIRROR_REMOVED_COMMAND_ID (0x02) +#define ZCL_REQUEST_FAST_POLL_MODE_RESPONSE_COMMAND_ID (0x03) +#define ZCL_REQUEST_FAST_POLL_MODE_COMMAND_ID (0x03) +#define ZCL_SCHEDULE_SNAPSHOT_RESPONSE_COMMAND_ID (0x04) +#define ZCL_SCHEDULE_SNAPSHOT_COMMAND_ID (0x04) +#define ZCL_TAKE_SNAPSHOT_RESPONSE_COMMAND_ID (0x05) +#define ZCL_TAKE_SNAPSHOT_COMMAND_ID (0x05) +#define ZCL_PUBLISH_SNAPSHOT_COMMAND_ID (0x06) +#define ZCL_GET_SNAPSHOT_COMMAND_ID (0x06) +#define ZCL_GET_SAMPLED_DATA_RESPONSE_COMMAND_ID (0x07) +#define ZCL_START_SAMPLING_COMMAND_ID (0x07) +#define ZCL_CONFIGURE_MIRROR_COMMAND_ID (0x08) +#define ZCL_GET_SAMPLED_DATA_COMMAND_ID (0x08) +#define ZCL_CONFIGURE_NOTIFICATION_SCHEME_COMMAND_ID (0x09) +#define ZCL_MIRROR_REPORT_ATTRIBUTE_RESPONSE_COMMAND_ID (0x09) +#define ZCL_CONFIGURE_NOTIFICATION_FLAGS_COMMAND_ID (0x0A) +#define ZCL_RESET_LOAD_LIMIT_COUNTER_COMMAND_ID (0x0A) +#define ZCL_GET_NOTIFIED_MESSAGE_COMMAND_ID (0x0B) +#define ZCL_CHANGE_SUPPLY_COMMAND_ID (0x0B) +#define ZCL_SUPPLY_STATUS_RESPONSE_COMMAND_ID (0x0C) +#define ZCL_LOCAL_CHANGE_SUPPLY_COMMAND_ID (0x0C) +#define ZCL_START_SAMPLING_RESPONSE_COMMAND_ID (0x0D) +#define ZCL_SET_SUPPLY_STATUS_COMMAND_ID (0x0D) +#define ZCL_SET_UNCONTROLLED_FLOW_THRESHOLD_COMMAND_ID (0x0E) + +// Commands for cluster: Messaging +#define ZCL_DISPLAY_MESSAGE_COMMAND_ID (0x00) +#define ZCL_GET_LAST_MESSAGE_COMMAND_ID (0x00) +#define ZCL_CANCEL_MESSAGE_COMMAND_ID (0x01) +#define ZCL_MESSAGE_CONFIRMATION_COMMAND_ID (0x01) +#define ZCL_DISPLAY_PROTECTED_MESSAGE_COMMAND_ID (0x02) +#define ZCL_GET_MESSAGE_CANCELLATION_COMMAND_ID (0x02) +#define ZCL_CANCEL_ALL_MESSAGES_COMMAND_ID (0x03) + +// Commands for cluster: Tunneling +#define ZCL_REQUEST_TUNNEL_COMMAND_ID (0x00) +#define ZCL_REQUEST_TUNNEL_RESPONSE_COMMAND_ID (0x00) +#define ZCL_CLOSE_TUNNEL_COMMAND_ID (0x01) +#define ZCL_TRANSFER_DATA_SERVER_TO_CLIENT_COMMAND_ID (0x01) +#define ZCL_TRANSFER_DATA_CLIENT_TO_SERVER_COMMAND_ID (0x02) +#define ZCL_TRANSFER_DATA_ERROR_SERVER_TO_CLIENT_COMMAND_ID (0x02) +#define ZCL_TRANSFER_DATA_ERROR_CLIENT_TO_SERVER_COMMAND_ID (0x03) +#define ZCL_ACK_TRANSFER_DATA_SERVER_TO_CLIENT_COMMAND_ID (0x03) +#define ZCL_ACK_TRANSFER_DATA_CLIENT_TO_SERVER_COMMAND_ID (0x04) +#define ZCL_READY_DATA_SERVER_TO_CLIENT_COMMAND_ID (0x04) +#define ZCL_READY_DATA_CLIENT_TO_SERVER_COMMAND_ID (0x05) +#define ZCL_SUPPORTED_TUNNEL_PROTOCOLS_RESPONSE_COMMAND_ID (0x05) +#define ZCL_GET_SUPPORTED_TUNNEL_PROTOCOLS_COMMAND_ID (0x06) +#define ZCL_TUNNEL_CLOSURE_NOTIFICATION_COMMAND_ID (0x06) + +// Commands for cluster: Prepayment +#define ZCL_SELECT_AVAILABLE_EMERGENCY_CREDIT_COMMAND_ID (0x00) +#define ZCL_PUBLISH_PREPAY_SNAPSHOT_COMMAND_ID (0x01) +#define ZCL_CHANGE_DEBT_COMMAND_ID (0x02) +#define ZCL_CHANGE_PAYMENT_MODE_RESPONSE_COMMAND_ID (0x02) +#define ZCL_EMERGENCY_CREDIT_SETUP_COMMAND_ID (0x03) +#define ZCL_CONSUMER_TOP_UP_RESPONSE_COMMAND_ID (0x03) +#define ZCL_CONSUMER_TOP_UP_COMMAND_ID (0x04) +#define ZCL_CREDIT_ADJUSTMENT_COMMAND_ID (0x05) +#define ZCL_PUBLISH_TOP_UP_LOG_COMMAND_ID (0x05) +#define ZCL_CHANGE_PAYMENT_MODE_COMMAND_ID (0x06) +#define ZCL_PUBLISH_DEBT_LOG_COMMAND_ID (0x06) +#define ZCL_GET_PREPAY_SNAPSHOT_COMMAND_ID (0x07) +#define ZCL_GET_TOP_UP_LOG_COMMAND_ID (0x08) +#define ZCL_SET_LOW_CREDIT_WARNING_LEVEL_COMMAND_ID (0x09) +#define ZCL_GET_DEBT_REPAYMENT_LOG_COMMAND_ID (0x0A) +#define ZCL_SET_MAXIMUM_CREDIT_LIMIT_COMMAND_ID (0x0B) +#define ZCL_SET_OVERALL_DEBT_CAP_COMMAND_ID (0x0C) + +// Commands for cluster: Energy Management +#define ZCL_REPORT_EVENT_STATUS_COMMAND_ID (0x00) +#define ZCL_MANAGE_EVENT_COMMAND_ID (0x00) + +// Commands for cluster: Calendar +#define ZCL_PUBLISH_CALENDAR_COMMAND_ID (0x00) +#define ZCL_GET_CALENDAR_COMMAND_ID (0x00) +#define ZCL_PUBLISH_DAY_PROFILE_COMMAND_ID (0x01) +#define ZCL_GET_DAY_PROFILES_COMMAND_ID (0x01) +#define ZCL_PUBLISH_WEEK_PROFILE_COMMAND_ID (0x02) +#define ZCL_GET_WEEK_PROFILES_COMMAND_ID (0x02) +#define ZCL_PUBLISH_SEASONS_COMMAND_ID (0x03) +#define ZCL_GET_SEASONS_COMMAND_ID (0x03) +#define ZCL_PUBLISH_SPECIAL_DAYS_COMMAND_ID (0x04) +#define ZCL_GET_SPECIAL_DAYS_COMMAND_ID (0x04) +#define ZCL_CANCEL_CALENDAR_COMMAND_ID (0x05) +#define ZCL_GET_CALENDAR_CANCELLATION_COMMAND_ID (0x05) + +// Commands for cluster: Device Management +#define ZCL_GET_CHANGE_OF_TENANCY_COMMAND_ID (0x00) +#define ZCL_PUBLISH_CHANGE_OF_TENANCY_COMMAND_ID (0x00) +#define ZCL_GET_CHANGE_OF_SUPPLIER_COMMAND_ID (0x01) +#define ZCL_PUBLISH_CHANGE_OF_SUPPLIER_COMMAND_ID (0x01) +#define ZCL_REQUEST_NEW_PASSWORD_COMMAND_ID (0x02) +#define ZCL_REQUEST_NEW_PASSWORD_RESPONSE_COMMAND_ID (0x02) +#define ZCL_GET_SITE_ID_COMMAND_ID (0x03) +#define ZCL_UPDATE_SITE_ID_COMMAND_ID (0x03) +#define ZCL_REPORT_EVENT_CONFIGURATION_COMMAND_ID (0x04) +#define ZCL_SET_EVENT_CONFIGURATION_COMMAND_ID (0x04) +#define ZCL_GET_CIN_COMMAND_ID (0x05) +#define ZCL_GET_EVENT_CONFIGURATION_COMMAND_ID (0x05) +#define ZCL_UPDATE_CIN_COMMAND_ID (0x06) + +// Commands for cluster: Events +#define ZCL_GET_EVENT_LOG_COMMAND_ID (0x00) +#define ZCL_PUBLISH_EVENT_COMMAND_ID (0x00) +#define ZCL_CLEAR_EVENT_LOG_REQUEST_COMMAND_ID (0x01) +#define ZCL_PUBLISH_EVENT_LOG_COMMAND_ID (0x01) +#define ZCL_CLEAR_EVENT_LOG_RESPONSE_COMMAND_ID (0x02) + +// Commands for cluster: MDU Pairing +#define ZCL_PAIRING_RESPONSE_COMMAND_ID (0x00) +#define ZCL_PAIRING_REQUEST_COMMAND_ID (0x00) + +// Commands for cluster: Sub-GHz +#define ZCL_SUSPEND_ZCL_MESSAGES_COMMAND_ID (0x00) +#define ZCL_GET_SUSPEND_ZCL_MESSAGES_STATUS_COMMAND_ID (0x00) + +// Commands for cluster: Key Establishment +#define ZCL_INITIATE_KEY_ESTABLISHMENT_REQUEST_COMMAND_ID (0x00) +#define ZCL_INITIATE_KEY_ESTABLISHMENT_RESPONSE_COMMAND_ID (0x00) +#define ZCL_EPHEMERAL_DATA_REQUEST_COMMAND_ID (0x01) +#define ZCL_EPHEMERAL_DATA_RESPONSE_COMMAND_ID (0x01) +#define ZCL_CONFIRM_KEY_DATA_REQUEST_COMMAND_ID (0x02) +#define ZCL_CONFIRM_KEY_DATA_RESPONSE_COMMAND_ID (0x02) +#define ZCL_TERMINATE_KEY_ESTABLISHMENT_COMMAND_ID (0x03) + +// Commands for cluster: Information +#define ZCL_REQUEST_INFORMATION_COMMAND_ID (0x00) +#define ZCL_REQUEST_INFORMATION_RESPONSE_COMMAND_ID (0x00) +#define ZCL_PUSH_INFORMATION_RESPONSE_COMMAND_ID (0x01) +#define ZCL_PUSH_INFORMATION_COMMAND_ID (0x01) +#define ZCL_SEND_PREFERENCE_COMMAND_ID (0x02) +#define ZCL_SEND_PREFERENCE_RESPONSE_COMMAND_ID (0x02) +#define ZCL_REQUEST_PREFERENCE_RESPONSE_COMMAND_ID (0x03) +#define ZCL_SERVER_REQUEST_PREFERENCE_COMMAND_ID (0x03) +#define ZCL_UPDATE_COMMAND_ID (0x04) +#define ZCL_REQUEST_PREFERENCE_CONFIRMATION_COMMAND_ID (0x04) +#define ZCL_DELETE_COMMAND_ID (0x05) +#define ZCL_UPDATE_RESPONSE_COMMAND_ID (0x05) +#define ZCL_CONFIGURE_NODE_DESCRIPTION_COMMAND_ID (0x06) +#define ZCL_DELETE_RESPONSE_COMMAND_ID (0x06) +#define ZCL_CONFIGURE_DELIVERY_ENABLE_COMMAND_ID (0x07) +#define ZCL_CONFIGURE_PUSH_INFORMATION_TIMER_COMMAND_ID (0x08) +#define ZCL_CONFIGURE_SET_ROOT_ID_COMMAND_ID (0x09) + +// Commands for cluster: Data Sharing +#define ZCL_READ_FILE_REQUEST_COMMAND_ID (0x00) +#define ZCL_WRITE_FILE_REQUEST_COMMAND_ID (0x00) +#define ZCL_READ_RECORD_REQUEST_COMMAND_ID (0x01) +#define ZCL_MODIFY_FILE_REQUEST_COMMAND_ID (0x01) +#define ZCL_WRITE_FILE_RESPONSE_COMMAND_ID (0x02) +#define ZCL_MODIFY_RECORD_REQUEST_COMMAND_ID (0x02) +#define ZCL_FILE_TRANSMISSION_COMMAND_ID (0x03) +#define ZCL_RECORD_TRANSMISSION_COMMAND_ID (0x04) + +// Commands for cluster: Gaming +#define ZCL_SEARCH_GAME_COMMAND_ID (0x00) +#define ZCL_GAME_ANNOUNCEMENT_COMMAND_ID (0x00) +#define ZCL_JOIN_GAME_COMMAND_ID (0x01) +#define ZCL_GENERAL_RESPONSE_COMMAND_ID (0x01) +#define ZCL_START_GAME_COMMAND_ID (0x02) +#define ZCL_PAUSE_GAME_COMMAND_ID (0x03) +#define ZCL_RESUME_GAME_COMMAND_ID (0x04) +#define ZCL_QUIT_GAME_COMMAND_ID (0x05) +#define ZCL_END_GAME_COMMAND_ID (0x06) +#define ZCL_START_OVER_COMMAND_ID (0x07) +#define ZCL_ACTION_CONTROL_COMMAND_ID (0x08) +#define ZCL_DOWNLOAD_GAME_COMMAND_ID (0x09) + +// Commands for cluster: Data Rate Control +#define ZCL_PATH_CREATION_COMMAND_ID (0x00) +#define ZCL_DATA_RATE_CONTROL_COMMAND_ID (0x00) +#define ZCL_DATA_RATE_NOTIFICATION_COMMAND_ID (0x01) +#define ZCL_PATH_DELETION_COMMAND_ID (0x02) + +// Commands for cluster: Voice over ZigBee +#define ZCL_ESTABLISHMENT_REQUEST_COMMAND_ID (0x00) +#define ZCL_ESTABLISHMENT_RESPONSE_COMMAND_ID (0x00) +#define ZCL_VOICE_TRANSMISSION_COMMAND_ID (0x01) +#define ZCL_VOICE_TRANSMISSION_RESPONSE_COMMAND_ID (0x01) +#define ZCL_VOICE_TRANSMISSION_COMPLETION_COMMAND_ID (0x02) +#define ZCL_CONTROL_COMMAND_ID (0x02) +#define ZCL_CONTROL_RESPONSE_COMMAND_ID (0x03) + +// Commands for cluster: Chatting +#define ZCL_JOIN_CHAT_REQUEST_COMMAND_ID (0x00) +#define ZCL_START_CHAT_RESPONSE_COMMAND_ID (0x00) +#define ZCL_LEAVE_CHAT_REQUEST_COMMAND_ID (0x01) +#define ZCL_JOIN_CHAT_RESPONSE_COMMAND_ID (0x01) +#define ZCL_SEARCH_CHAT_REQUEST_COMMAND_ID (0x02) +#define ZCL_USER_LEFT_COMMAND_ID (0x02) +#define ZCL_SWITCH_CHAIRMAN_RESPONSE_COMMAND_ID (0x03) +#define ZCL_USER_JOINED_COMMAND_ID (0x03) +#define ZCL_START_CHAT_REQUEST_COMMAND_ID (0x04) +#define ZCL_SEARCH_CHAT_RESPONSE_COMMAND_ID (0x04) +#define ZCL_CHAT_MESSAGE_COMMAND_ID (0x05) +#define ZCL_SWITCH_CHAIRMAN_REQUEST_COMMAND_ID (0x05) +#define ZCL_GET_NODE_INFORMATION_REQUEST_COMMAND_ID (0x06) +#define ZCL_SWITCH_CHAIRMAN_CONFIRM_COMMAND_ID (0x06) +#define ZCL_SWITCH_CHAIRMAN_NOTIFICATION_COMMAND_ID (0x07) +#define ZCL_GET_NODE_INFORMATION_RESPONSE_COMMAND_ID (0x08) + +// Commands for cluster: Payment +#define ZCL_BUY_REQUEST_COMMAND_ID (0x00) +#define ZCL_BUY_CONFIRM_COMMAND_ID (0x00) +#define ZCL_ACCEPT_PAYMENT_COMMAND_ID (0x01) +#define ZCL_RECEIPT_DELIVERY_COMMAND_ID (0x01) +#define ZCL_PAYMENT_CONFIRM_COMMAND_ID (0x02) +#define ZCL_TRANSACTION_END_COMMAND_ID (0x02) + +// Commands for cluster: Billing +#define ZCL_SUBSCRIBE_COMMAND_ID (0x00) +#define ZCL_CHECK_BILL_STATUS_COMMAND_ID (0x00) +#define ZCL_UNSUBSCRIBE_COMMAND_ID (0x01) +#define ZCL_SEND_BILL_RECORD_COMMAND_ID (0x01) +#define ZCL_START_BILLING_SESSION_COMMAND_ID (0x02) +#define ZCL_STOP_BILLING_SESSION_COMMAND_ID (0x03) +#define ZCL_BILL_STATUS_NOTIFICATION_COMMAND_ID (0x04) +#define ZCL_SESSION_KEEP_ALIVE_COMMAND_ID (0x05) + +// Commands for cluster: Appliance Events and Alert +#define ZCL_GET_ALERTS_COMMAND_ID (0x00) +#define ZCL_GET_ALERTS_RESPONSE_COMMAND_ID (0x00) +#define ZCL_ALERTS_NOTIFICATION_COMMAND_ID (0x01) +#define ZCL_EVENTS_NOTIFICATION_COMMAND_ID (0x02) + +// Commands for cluster: Appliance Statistics +#define ZCL_LOG_NOTIFICATION_COMMAND_ID (0x00) +#define ZCL_LOG_REQUEST_COMMAND_ID (0x00) +#define ZCL_LOG_RESPONSE_COMMAND_ID (0x01) +#define ZCL_LOG_QUEUE_REQUEST_COMMAND_ID (0x01) +#define ZCL_LOG_QUEUE_RESPONSE_COMMAND_ID (0x02) +#define ZCL_STATISTICS_AVAILABLE_COMMAND_ID (0x03) + +// Commands for cluster: Electrical Measurement +#define ZCL_GET_PROFILE_INFO_RESPONSE_COMMAND_COMMAND_ID (0x00) +#define ZCL_GET_PROFILE_INFO_COMMAND_COMMAND_ID (0x00) +#define ZCL_GET_MEASUREMENT_PROFILE_RESPONSE_COMMAND_COMMAND_ID (0x01) +#define ZCL_GET_MEASUREMENT_PROFILE_COMMAND_COMMAND_ID (0x01) + +// Commands for cluster: ZLL Commissioning +#define ZCL_SCAN_REQUEST_COMMAND_ID (0x00) +#define ZCL_SCAN_RESPONSE_COMMAND_ID (0x01) +#define ZCL_DEVICE_INFORMATION_REQUEST_COMMAND_ID (0x02) +#define ZCL_DEVICE_INFORMATION_RESPONSE_COMMAND_ID (0x03) +#define ZCL_IDENTIFY_REQUEST_COMMAND_ID (0x06) +#define ZCL_RESET_TO_FACTORY_NEW_REQUEST_COMMAND_ID (0x07) +#define ZCL_NETWORK_START_REQUEST_COMMAND_ID (0x10) +#define ZCL_NETWORK_START_RESPONSE_COMMAND_ID (0x11) +#define ZCL_NETWORK_JOIN_ROUTER_REQUEST_COMMAND_ID (0x12) +#define ZCL_NETWORK_JOIN_ROUTER_RESPONSE_COMMAND_ID (0x13) +#define ZCL_NETWORK_JOIN_END_DEVICE_REQUEST_COMMAND_ID (0x14) +#define ZCL_NETWORK_JOIN_END_DEVICE_RESPONSE_COMMAND_ID (0x15) +#define ZCL_NETWORK_UPDATE_REQUEST_COMMAND_ID (0x16) +#define ZCL_ENDPOINT_INFORMATION_COMMAND_ID (0x40) +#define ZCL_GET_GROUP_IDENTIFIERS_REQUEST_COMMAND_ID (0x41) +#define ZCL_GET_GROUP_IDENTIFIERS_RESPONSE_COMMAND_ID (0x41) +#define ZCL_GET_ENDPOINT_LIST_REQUEST_COMMAND_ID (0x42) +#define ZCL_GET_ENDPOINT_LIST_RESPONSE_COMMAND_ID (0x42) + +// Commands for cluster: Sample Mfg Specific Cluster +#define ZCL_COMMAND_ONE_COMMAND_ID (0x00) + +// Commands for cluster: Sample Mfg Specific Cluster 2 +#define ZCL_COMMAND_TWO_COMMAND_ID (0x00) + +// Commands for cluster: Configuration Cluster +#define ZCL_SET_TOKEN_COMMAND_ID (0x00) +#define ZCL_RETURN_TOKEN_COMMAND_ID (0x00) +#define ZCL_LOCK_TOKENS_COMMAND_ID (0x01) +#define ZCL_READ_TOKENS_COMMAND_ID (0x02) +#define ZCL_UNLOCK_TOKENS_COMMAND_ID (0x03) + +// Commands for cluster: MFGLIB Cluster +#define ZCL_STREAM_COMMAND_ID (0x00) +#define ZCL_TONE_COMMAND_ID (0x01) +#define ZCL_RX_MODE_COMMAND_ID (0x02) + +// Commands for cluster: SL Works With All Hubs +#define ZCL_ENABLE_APS_LINK_KEY_AUTHORIZATION_COMMAND_ID (0x00) +#define ZCL_APS_LINK_KEY_AUTHORIZATION_QUERY_RESPONSE_COMMAND_ID (0x00) +#define ZCL_DISABLE_APS_LINK_KEY_AUTHORIZATION_COMMAND_ID (0x01) +#define ZCL_POWERING_OFF_NOTIFICATION_COMMAND_ID (0x01) +#define ZCL_APS_LINK_KEY_AUTHORIZATION_QUERY_COMMAND_ID (0x02) +#define ZCL_POWERING_ON_NOTIFICATION_COMMAND_ID (0x02) +#define ZCL_REQUEST_NEW_APS_LINK_KEY_COMMAND_ID (0x03) +#define ZCL_SHORT_ADDRESS_CHANGE_COMMAND_ID (0x03) +#define ZCL_ENABLE_WWAH_APP_EVENT_RETRY_ALGORITHM_COMMAND_ID (0x04) +#define ZCL_APS_ACK_ENABLEMENT_QUERY_RESPONSE_COMMAND_ID (0x04) +#define ZCL_DISABLE_WWAH_APP_EVENT_RETRY_ALGORITHM_COMMAND_ID (0x05) +#define ZCL_POWER_DESCRIPTOR_CHANGE_COMMAND_ID (0x05) +#define ZCL_REQUEST_TIME_COMMAND_ID (0x06) +#define ZCL_NEW_DEBUG_REPORT_NOTIFICATION_COMMAND_ID (0x06) +#define ZCL_ENABLE_WWAH_REJOIN_ALGORITHM_COMMAND_ID (0x07) +#define ZCL_DEBUG_REPORT_QUERY_RESPONSE_COMMAND_ID (0x07) +#define ZCL_DISABLE_WWAH_REJOIN_ALGORITHM_COMMAND_ID (0x08) +#define ZCL_TRUST_CENTER_FOR_CLUSTER_SERVER_QUERY_RESPONSE_COMMAND_ID (0x08) +#define ZCL_SET_IAS_ZONE_ENROLLMENT_METHOD_COMMAND_ID (0x09) +#define ZCL_SURVEY_BEACONS_RESPONSE_COMMAND_ID (0x09) +#define ZCL_CLEAR_BINDING_TABLE_COMMAND_ID (0x0A) +#define ZCL_ENABLE_PERIODIC_ROUTER_CHECK_INS_COMMAND_ID (0x0B) +#define ZCL_DISABLE_PERIODIC_ROUTER_CHECK_INS_COMMAND_ID (0x0C) +#define ZCL_SET_MAC_POLL_FAILURE_WAIT_TIME_COMMAND_ID (0x0D) +#define ZCL_SET_PENDING_NETWORK_UPDATE_COMMAND_ID (0x0E) +#define ZCL_REQUIRE_APS_ACKS_ON_UNICASTS_COMMAND_ID (0x0F) +#define ZCL_REMOVE_APS_ACKS_ON_UNICASTS_REQUIREMENT_COMMAND_ID (0x10) +#define ZCL_APS_ACK_REQUIREMENT_QUERY_COMMAND_ID (0x11) +#define ZCL_DEBUG_REPORT_QUERY_COMMAND_ID (0x12) +#define ZCL_SURVEY_BEACONS_COMMAND_ID (0x13) +#define ZCL_DISABLE_OTA_DOWNGRADES_COMMAND_ID (0x14) +#define ZCL_DISABLE_MGMT_LEAVE_WITHOUT_REJOIN_COMMAND_ID (0x15) +#define ZCL_DISABLE_TOUCHLINK_INTERPAN_MESSAGE_SUPPORT_COMMAND_ID (0x16) +#define ZCL_ENABLE_WWAH_PARENT_CLASSIFICATION_COMMAND_ID (0x17) +#define ZCL_DISABLE_WWAH_PARENT_CLASSIFICATION_COMMAND_ID (0x18) +#define ZCL_ENABLE_TC_SECURITY_ON_NTWK_KEY_ROTATION_COMMAND_ID (0x19) +#define ZCL_ENABLE_WWAH_BAD_PARENT_RECOVERY_COMMAND_ID (0x1A) +#define ZCL_DISABLE_WWAH_BAD_PARENT_RECOVERY_COMMAND_ID (0x1B) +#define ZCL_ENABLE_CONFIGURATION_MODE_COMMAND_ID (0x1C) +#define ZCL_DISABLE_CONFIGURATION_MODE_COMMAND_ID (0x1D) +#define ZCL_USE_TRUST_CENTER_FOR_CLUSTER_SERVER_COMMAND_ID (0x1E) +#define ZCL_TRUST_CENTER_FOR_CLUSTER_SERVER_QUERY_COMMAND_ID (0x1F) +#define ZCL_USE_TRUST_CENTER_FOR_CLUSTER_SERVER_RESPONSE_COMMAND_ID (0x9E) diff --git a/examples/temperature-measurement-app/esp32/main/gen/enums.h b/examples/temperature-measurement-app/esp32/main/gen/enums.h index 9dac5d5249e2c5..07c2881e641e97 100644 --- a/examples/temperature-measurement-app/esp32/main/gen/enums.h +++ b/examples/temperature-measurement-app/esp32/main/gen/enums.h @@ -1,4 +1,5 @@ -/** + +/* * * Copyright (c) 2020 Project CHIP Authors * @@ -14,27 +15,19 @@ * 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 SILABS_EMBER_AF_ENUMS -#define SILABS_EMBER_AF_ENUMS - -/** - * @addtogroup enums Application Framework Enums Reference - * This header provides Application Framework enum definitions. - * @{ - */ -/** @name Enums */ -// @{ +// Prevent multiple inclusion +#pragma once + +// ZCL enums + +// Enum for 11073ConnectRequestConnectControl typedef enum { EMBER_ZCL_11073_CONNECT_REQUEST_CONNECT_CONTROL_PREEMPTIBLE = 0x01, } EmberAf11073ConnectRequestConnectControl; +// Enum for 11073TunnelConnectionStatus typedef enum { EMBER_ZCL_11073_TUNNEL_CONNECTION_STATUS_DISCONNECTED = 0x00, @@ -44,11 +37,13 @@ typedef enum EMBER_ZCL_11073_TUNNEL_CONNECTION_STATUS_ALREADY_CONNECTED = 0x04, } EmberAf11073TunnelConnectionStatus; +// Enum for AlertCountType typedef enum { EMBER_ZCL_ALERT_COUNT_TYPE_UNSTRUCTURED = 0x00, } EmberAfAlertCountType; +// Enum for AlertStructureCategory typedef enum { EMBER_ZCL_ALERT_STRUCTURE_CATEGORY_WARNING = 0x0100, @@ -56,17 +51,20 @@ typedef enum EMBER_ZCL_ALERT_STRUCTURE_CATEGORY_FAILURE = 0x0300, } EmberAfAlertStructureCategory; +// Enum for AlertStructurePresenceRecovery typedef enum { EMBER_ZCL_ALERT_STRUCTURE_PRESENCE_RECOVERY_RECOVERY = 0x0000, EMBER_ZCL_ALERT_STRUCTURE_PRESENCE_RECOVERY_PRESENCE = 0x1000, } EmberAfAlertStructurePresenceRecovery; +// Enum for AlternateCostUnit typedef enum { EMBER_ZCL_ALTERNATE_COST_UNIT_KG_OF_CO2_PER_UNIT_OF_MEASURE = 0x02, } EmberAfAlternateCostUnit; +// Enum for AmiCriticalityLevel typedef enum { EMBER_ZCL_AMI_CRITICALITY_LEVEL_RESERVED = 0x00, @@ -87,6 +85,7 @@ typedef enum EMBER_ZCL_AMI_CRITICALITY_LEVEL_UTILITY_DEFINED6 = 0x0F, } EmberAfAmiCriticalityLevel; +// Enum for AmiEventStatus typedef enum { EMBER_ZCL_AMI_EVENT_STATUS_LOAD_CONTROL_EVENT_COMMAND_RX = 0x01, @@ -108,6 +107,7 @@ typedef enum EMBER_ZCL_AMI_EVENT_STATUS_LOAD_CONTROL_EVENT_COMMAND_REJECTED = 0xFE, } EmberAfAmiEventStatus; +// Enum for AmiGetProfileStatus typedef enum { EMBER_ZCL_AMI_GET_PROFILE_STATUS_SUCCESS = 0x00, @@ -118,12 +118,14 @@ typedef enum EMBER_ZCL_AMI_GET_PROFILE_STATUS_NO_INTERVALS_AVAILABLE_FOR_THE_REQUESTED_TIME = 0x05, } EmberAfAmiGetProfileStatus; +// Enum for AmiIntervalChannel typedef enum { EMBER_ZCL_AMI_INTERVAL_CHANNEL_CONSUMPTION_DELIVERED = 0x00, EMBER_ZCL_AMI_INTERVAL_CHANNEL_CONSUMPTION_RECEIVED = 0x01, } EmberAfAmiIntervalChannel; +// Enum for AmiIntervalPeriod typedef enum { EMBER_ZCL_AMI_INTERVAL_PERIOD_DAILY = 0x00, @@ -136,6 +138,7 @@ typedef enum EMBER_ZCL_AMI_INTERVAL_PERIOD_MINUTES2P5 = 0x07, } EmberAfAmiIntervalPeriod; +// Enum for AmiKeyEstablishmentStatus typedef enum { EMBER_ZCL_AMI_KEY_ESTABLISHMENT_STATUS_SUCCESS = 0x00, @@ -147,17 +150,19 @@ typedef enum EMBER_ZCL_AMI_KEY_ESTABLISHMENT_STATUS_INVALID_KEY_USAGE = 0x06, } EmberAfAmiKeyEstablishmentStatus; +// Enum for AmiRegistrationState typedef enum { - EMBER_ZCL_AMI_REGISTRATION_STATE_UNREGISTERED = 0x00, - EMBER_ZCL_AMI_REGISTRATION_STATE_JOINING_NETWORK = 0x01, - EMBER_ZCL_AMI_REGISTRATION_STATE_JOINED_NETWORK = 0x02, - EMBER_ZCL_AMI_REGISTRATION_STATE_SUBMITTED_REGISTRATION_REQUEST = 0x03, - EMBER_ZCL_AMI_REGISTRATION_STATE_REGISTRATION_REJECTED = 0x04, - EMBER_ZCL_AMI_REGISTRATION_STATE_REGISTERED = 0x05, - EMBER_ZCL_AMI_REGISTRATION_STATE_REGISTERATION_NOT_POSSIBLE = 0x06, + EMBER_ZCL_AMI_REGISTRATION_STATE_UNREGISTERED = 0x0, + EMBER_ZCL_AMI_REGISTRATION_STATE_JOINING_NETWORK = 0x1, + EMBER_ZCL_AMI_REGISTRATION_STATE_JOINED_NETWORK = 0x2, + EMBER_ZCL_AMI_REGISTRATION_STATE_SUBMITTED_REGISTRATION_REQUEST = 0x3, + EMBER_ZCL_AMI_REGISTRATION_STATE_REGISTRATION_REJECTED = 0x4, + EMBER_ZCL_AMI_REGISTRATION_STATE_REGISTERED = 0x5, + EMBER_ZCL_AMI_REGISTRATION_STATE_REGISTERATION_NOT_POSSIBLE = 0x6, } EmberAfAmiRegistrationState; +// Enum for AmiUnitOfMeasure typedef enum { EMBER_ZCL_AMI_UNIT_OF_MEASURE_KILO_WATT_HOURS = 0x00, @@ -190,12 +195,14 @@ typedef enum EMBER_ZCL_AMI_UNIT_OF_MEASURE_K_VAR_OR_K_VAR_HOURS_BCD = 0x8D, } EmberAfAmiUnitOfMeasure; +// Enum for AnonymousDataState typedef enum { - EMBER_ZCL_ANONYMOUS_DATA_STATE_NO_SOURCE_FOUND = 0x00, - EMBER_ZCL_ANONYMOUS_DATA_STATE_SOURCE_FOUND = 0x01, + EMBER_ZCL_ANONYMOUS_DATA_STATE_NO_SOURCE_FOUND = 0x0, + EMBER_ZCL_ANONYMOUS_DATA_STATE_SOURCE_FOUND = 0x1, } EmberAfAnonymousDataState; +// Enum for ApplianceStatus typedef enum { EMBER_ZCL_APPLIANCE_STATUS_OFF = 0x01, @@ -215,12 +222,14 @@ typedef enum EMBER_ZCL_APPLIANCE_STATUS_SUPERHEATING = 0x0F, } EmberAfApplianceStatus; +// Enum for AttributeReportingStatus typedef enum { EMBER_ZCL_ATTRIBUTE_REPORTING_STATUS_PENDING = 0x00, EMBER_ZCL_ATTRIBUTE_REPORTING_STATUS_ATTRIBUTE_REPORTING_COMPLETE = 0x01, } EmberAfAttributeReportingStatus; +// Enum for AttributeWritePermission typedef enum { EMBER_ZCL_ATTRIBUTE_WRITE_PERMISSION_DENY_WRITE = 0x00, @@ -232,13 +241,15 @@ typedef enum EMBER_ZCL_ATTRIBUTE_WRITE_PERMISSION_INVALID_DATA_TYPE = 0x8D, } EmberAfAttributeWritePermission; +// Enum for BarrierControlBarrierPosition typedef enum { - EMBER_ZCL_BARRIER_CONTROL_BARRIER_POSITION_CLOSED = 0x00, - EMBER_ZCL_BARRIER_CONTROL_BARRIER_POSITION_OPEN = 0x64, + EMBER_ZCL_BARRIER_CONTROL_BARRIER_POSITION_CLOSED = 0, + EMBER_ZCL_BARRIER_CONTROL_BARRIER_POSITION_OPEN = 100, EMBER_ZCL_BARRIER_CONTROL_BARRIER_POSITION_UNKNOWN = 0xFF, } EmberAfBarrierControlBarrierPosition; +// Enum for BarrierControlMovingState typedef enum { EMBER_ZCL_BARRIER_CONTROL_MOVING_STATE_STOPPED = 0x00, @@ -246,18 +257,20 @@ typedef enum EMBER_ZCL_BARRIER_CONTROL_MOVING_STATE_OPENING = 0x02, } EmberAfBarrierControlMovingState; +// Enum for BatterySize typedef enum { - EMBER_ZCL_BATTERY_SIZE_NO_BATTERY = 0x00, - EMBER_ZCL_BATTERY_SIZE_BUILT_IN = 0x01, - EMBER_ZCL_BATTERY_SIZE_OTHER = 0x02, - EMBER_ZCL_BATTERY_SIZE_AA = 0x03, - EMBER_ZCL_BATTERY_SIZE_AAA = 0x04, - EMBER_ZCL_BATTERY_SIZE_C = 0x05, - EMBER_ZCL_BATTERY_SIZE_D = 0x06, - EMBER_ZCL_BATTERY_SIZE_UNKNOWN = 0xFF, + EMBER_ZCL_BATTERY_SIZE_NO_BATTERY = 0x0, + EMBER_ZCL_BATTERY_SIZE_BUILT_IN = 0x1, + EMBER_ZCL_BATTERY_SIZE_OTHER = 0x2, + EMBER_ZCL_BATTERY_SIZE_AA = 0x3, + EMBER_ZCL_BATTERY_SIZE_AAA = 0x4, + EMBER_ZCL_BATTERY_SIZE_C = 0x5, + EMBER_ZCL_BATTERY_SIZE_D = 0x6, + EMBER_ZCL_BATTERY_SIZE_UNKNOWN = 0xff, } EmberAfBatterySize; +// Enum for BillingPeriodDurationUnits typedef enum { EMBER_ZCL_BILLING_PERIOD_DURATION_UNITS_MINUTES = 0x000000, @@ -266,6 +279,7 @@ typedef enum EMBER_ZCL_BILLING_PERIOD_DURATION_UNITS_MONTHS = 0xC00000, } EmberAfBillingPeriodDurationUnits; +// Enum for Block typedef enum { EMBER_ZCL_BLOCK_NO_BLOCKS_IN_USE = 0x00, @@ -287,6 +301,7 @@ typedef enum EMBER_ZCL_BLOCK_BLOCK16 = 0x10, } EmberAfBlock; +// Enum for BlockPeriodDurationTypeControl typedef enum { EMBER_ZCL_BLOCK_PERIOD_DURATION_TYPE_CONTROL_START_OF_TIMEBASE = 0x00, @@ -294,6 +309,7 @@ typedef enum EMBER_ZCL_BLOCK_PERIOD_DURATION_TYPE_CONTROL_NOT_SPECIFIED = 0x20, } EmberAfBlockPeriodDurationTypeControl; +// Enum for BlockPeriodDurationTypeTimebase typedef enum { EMBER_ZCL_BLOCK_PERIOD_DURATION_TYPE_TIMEBASE_MINUTES = 0x00, @@ -302,13 +318,15 @@ typedef enum EMBER_ZCL_BLOCK_PERIOD_DURATION_TYPE_TIMEBASE_MONTHS = 0x03, } EmberAfBlockPeriodDurationTypeTimebase; +// Enum for CO2Unit typedef enum { - EMBER_ZCL_C_O2_UNIT_KILOGRAM_PER_KILOWATT_HOUR = 0x01, - EMBER_ZCL_C_O2_UNIT_KILOGRAM_PER_GALLON_OF_GASOLINE = 0x02, - EMBER_ZCL_C_O2_UNIT_KILOGRAM_PER_THERM_OF_NATURAL_GAS = 0x03, + EMBER_ZCL_CO2_UNIT_KILOGRAM_PER_KILOWATT_HOUR = 0x01, + EMBER_ZCL_CO2_UNIT_KILOGRAM_PER_GALLON_OF_GASOLINE = 0x02, + EMBER_ZCL_CO2_UNIT_KILOGRAM_PER_THERM_OF_NATURAL_GAS = 0x03, } EmberAfCO2Unit; +// Enum for CalendarTimeReference typedef enum { EMBER_ZCL_CALENDAR_TIME_REFERENCE_UTC_TIME = 0x00, @@ -316,6 +334,7 @@ typedef enum EMBER_ZCL_CALENDAR_TIME_REFERENCE_LOCAL_TIME = 0x02, } EmberAfCalendarTimeReference; +// Enum for CalendarType typedef enum { EMBER_ZCL_CALENDAR_TYPE_DELIVERED_CALENDAR = 0x00, @@ -325,23 +344,27 @@ typedef enum EMBER_ZCL_CALENDAR_TYPE_AUXILLIARY_LOAD_SWITCH_CALENDAR = 0x04, } EmberAfCalendarType; +// Enum for CalorificValueUnit typedef enum { EMBER_ZCL_CALORIFIC_VALUE_UNIT_MEGAJOULE_PER_CUBIC_METER = 0x01, EMBER_ZCL_CALORIFIC_VALUE_UNIT_MEGAJOULE_PER_KILOGRAM = 0x02, } EmberAfCalorificValueUnit; +// Enum for CecedSpecificationVersion typedef enum { EMBER_ZCL_CECED_SPECIFICATION_VERSION_COMPLIANT_WITH_V10_NOT_CERTIFIED = 0x10, EMBER_ZCL_CECED_SPECIFICATION_VERSION_COMPLIANT_WITH_V10_CERTIFIED = 0x1A, } EmberAfCecedSpecificationVersion; +// Enum for ColorControlOptions typedef enum { - EMBER_ZCL_COLOR_CONTROL_OPTIONS_EXECUTE_IF_OFF = 0x01, + EMBER_ZCL_COLOR_CONTROL_OPTIONS_EXECUTE_IF_OFF = 0x1, } EmberAfColorControlOptions; +// Enum for ColorLoopAction typedef enum { EMBER_ZCL_COLOR_LOOP_ACTION_DEACTIVATE = 0x00, @@ -349,12 +372,14 @@ typedef enum EMBER_ZCL_COLOR_LOOP_ACTION_ACTIVATE_FROM_ENHANCED_CURRENT_HUE = 0x02, } EmberAfColorLoopAction; +// Enum for ColorLoopDirection typedef enum { EMBER_ZCL_COLOR_LOOP_DIRECTION_DECREMENT_HUE = 0x00, EMBER_ZCL_COLOR_LOOP_DIRECTION_INCREMENT_HUE = 0x01, } EmberAfColorLoopDirection; +// Enum for ColorMode typedef enum { EMBER_ZCL_COLOR_MODE_CURRENT_HUE_AND_CURRENT_SATURATION = 0x00, @@ -362,6 +387,7 @@ typedef enum EMBER_ZCL_COLOR_MODE_COLOR_TEMPERATURE = 0x02, } EmberAfColorMode; +// Enum for CommandIdentification typedef enum { EMBER_ZCL_COMMAND_IDENTIFICATION_START = 0x01, @@ -377,6 +403,7 @@ typedef enum EMBER_ZCL_COMMAND_IDENTIFICATION_DISABLE_ENERGY_CONTROL = 0x0B, } EmberAfCommandIdentification; +// Enum for CommissioningStartupControl typedef enum { EMBER_ZCL_COMMISSIONING_STARTUP_CONTROL_NO_ACTION = 0x00, @@ -385,6 +412,7 @@ typedef enum EMBER_ZCL_COMMISSIONING_STARTUP_CONTROL_START_FROM_SCRATCH = 0x03, } EmberAfCommissioningStartupControl; +// Enum for CommodityType typedef enum { EMBER_ZCL_COMMODITY_TYPE_ELECTRIC_METERING = 0x00, @@ -405,24 +433,28 @@ typedef enum EMBER_ZCL_COMMODITY_TYPE_ELECTRIC_METERING_ELEMENT3 = 0x0F, } EmberAfCommodityType; +// Enum for CppEventResponseCppAuth typedef enum { EMBER_ZCL_CPP_EVENT_RESPONSE_CPP_AUTH_ACCEPTED = 0x01, EMBER_ZCL_CPP_EVENT_RESPONSE_CPP_AUTH_REJECTED = 0x02, } EmberAfCppEventResponseCppAuth; +// Enum for CppPriceTier typedef enum { EMBER_ZCL_CPP_PRICE_TIER_CPP1 = 0x00, EMBER_ZCL_CPP_PRICE_TIER_CPP2 = 0x01, } EmberAfCppPriceTier; +// Enum for CreditAdjustmentType typedef enum { EMBER_ZCL_CREDIT_ADJUSTMENT_TYPE_CREDIT_INCREMENTAL = 0x00, EMBER_ZCL_CREDIT_ADJUSTMENT_TYPE_CREDIT_ABSOLUTE = 0x01, } EmberAfCreditAdjustmentType; +// Enum for CreditPaymentStatus typedef enum { EMBER_ZCL_CREDIT_PAYMENT_STATUS_PENDING = 0x00, @@ -432,6 +464,7 @@ typedef enum EMBER_ZCL_CREDIT_PAYMENT_STATUS_3_PAYMENTS_OVERDUE = 0x04, } EmberAfCreditPaymentStatus; +// Enum for DataQualityId typedef enum { EMBER_ZCL_DATA_QUALITY_ID_ALL_DATA_CERTIFIED = 0x0000, @@ -440,6 +473,7 @@ typedef enum EMBER_ZCL_DATA_QUALITY_ID_NOT_CERTIFIED_DATA = 0x0003, } EmberAfDataQualityId; +// Enum for DebtAmountType typedef enum { EMBER_ZCL_DEBT_AMOUNT_TYPE_TYPE1_ABSOLUTE = 0x00, @@ -450,6 +484,7 @@ typedef enum EMBER_ZCL_DEBT_AMOUNT_TYPE_TYPE3_INCREMENTAL = 0x05, } EmberAfDebtAmountType; +// Enum for DebtRecoveryFrequency typedef enum { EMBER_ZCL_DEBT_RECOVERY_FREQUENCY_PER_HOUR = 0x00, @@ -459,6 +494,7 @@ typedef enum EMBER_ZCL_DEBT_RECOVERY_FREQUENCY_PER_QUARTER = 0x04, } EmberAfDebtRecoveryFrequency; +// Enum for DebtRecoveryMethod typedef enum { EMBER_ZCL_DEBT_RECOVERY_METHOD_TIME_BASED = 0x00, @@ -466,23 +502,27 @@ typedef enum EMBER_ZCL_DEBT_RECOVERY_METHOD_CATCH_UP_BASED = 0x02, } EmberAfDebtRecoveryMethod; +// Enum for DehumidifcationLockout typedef enum { - EMBER_ZCL_DEHUMIDIFCATION_LOCKOUT_NOT_ALLOWED = 0x00, - EMBER_ZCL_DEHUMIDIFCATION_LOCKOUT_ALLOWED = 0x01, + EMBER_ZCL_DEHUMIDIFCATION_LOCKOUT_NOT_ALLOWED = 0x0, + EMBER_ZCL_DEHUMIDIFCATION_LOCKOUT_ALLOWED = 0x1, } EmberAfDehumidifcationLockout; +// Enum for DeviceInformationRecordSort typedef enum { EMBER_ZCL_DEVICE_INFORMATION_RECORD_SORT_NOT_SORTED = 0x00, EMBER_ZCL_DEVICE_INFORMATION_RECORD_SORT_TOP_OF_THE_LIST = 0x01, } EmberAfDeviceInformationRecordSort; +// Enum for DeviceStatus2Structure typedef enum { EMBER_ZCL_DEVICE_STATUS2_STRUCTURE_IRIS_SYMPTOM_CODE = 0x20, } EmberAfDeviceStatus2Structure; +// Enum for DoorLockEventSource typedef enum { EMBER_ZCL_DOOR_LOCK_EVENT_SOURCE_KEYPAD = 0x00, @@ -492,6 +532,7 @@ typedef enum EMBER_ZCL_DOOR_LOCK_EVENT_SOURCE_INDETERMINATE = 0xFF, } EmberAfDoorLockEventSource; +// Enum for DoorLockEventType typedef enum { EMBER_ZCL_DOOR_LOCK_EVENT_TYPE_OPERATION = 0x00, @@ -499,6 +540,7 @@ typedef enum EMBER_ZCL_DOOR_LOCK_EVENT_TYPE_ALARM = 0x02, } EmberAfDoorLockEventType; +// Enum for DoorLockOperatingMode typedef enum { EMBER_ZCL_DOOR_LOCK_OPERATING_MODE_NORMAL_MODE = 0x00, @@ -506,9 +548,10 @@ typedef enum EMBER_ZCL_DOOR_LOCK_OPERATING_MODE_PRIVACY_MODE = 0x02, EMBER_ZCL_DOOR_LOCK_OPERATING_MODE_NO_RF_LOCK_OR_UNLOCK = 0x03, EMBER_ZCL_DOOR_LOCK_OPERATING_MODE_LOCAL_PROGRAMMING_MODE = 0x04, - EMBER_ZCL_DOOR_LOCK_OPERATING_MODE_PASSAGE_MODE = 0x05, + EMBER_ZCL_DOOR_LOCK_OPERATING_MODE_PASSAGE_MODE______ = 0x05, } EmberAfDoorLockOperatingMode; +// Enum for DoorLockOperationEventCode typedef enum { EMBER_ZCL_DOOR_LOCK_OPERATION_EVENT_CODE_UNKNOWN_OR_MFG_SPECIFIC = 0x00, @@ -528,6 +571,7 @@ typedef enum EMBER_ZCL_DOOR_LOCK_OPERATION_EVENT_CODE_MANUAL_UNLOCK = 0x0E, } EmberAfDoorLockOperationEventCode; +// Enum for DoorLockProgrammingEventCode typedef enum { EMBER_ZCL_DOOR_LOCK_PROGRAMMING_EVENT_CODE_UNKNOWN_OR_MFG_SPECIFIC = 0x00, @@ -539,12 +583,14 @@ typedef enum EMBER_ZCL_DOOR_LOCK_PROGRAMMING_EVENT_CODE_ID_DELETED = 0x06, } EmberAfDoorLockProgrammingEventCode; +// Enum for DoorLockSecurityLevel typedef enum { EMBER_ZCL_DOOR_LOCK_SECURITY_LEVEL_NETWORK_SECURITY = 0x00, EMBER_ZCL_DOOR_LOCK_SECURITY_LEVEL_APS_SECURITY = 0x01, } EmberAfDoorLockSecurityLevel; +// Enum for DoorLockSetPinOrIdStatus typedef enum { EMBER_ZCL_DOOR_LOCK_SET_PIN_OR_ID_STATUS_SUCCESS = 0x00, @@ -553,6 +599,7 @@ typedef enum EMBER_ZCL_DOOR_LOCK_SET_PIN_OR_ID_STATUS_DUPLICATE_CODE_ERROR = 0x03, } EmberAfDoorLockSetPinOrIdStatus; +// Enum for DoorLockSoundVolume typedef enum { EMBER_ZCL_DOOR_LOCK_SOUND_VOLUME_SILENT = 0x00, @@ -560,6 +607,7 @@ typedef enum EMBER_ZCL_DOOR_LOCK_SOUND_VOLUME_HIGH = 0x02, } EmberAfDoorLockSoundVolume; +// Enum for DoorLockState typedef enum { EMBER_ZCL_DOOR_LOCK_STATE_NOT_FULLY_LOCKED = 0x00, @@ -567,6 +615,7 @@ typedef enum EMBER_ZCL_DOOR_LOCK_STATE_UNLOCKED = 0x02, } EmberAfDoorLockState; +// Enum for DoorLockType typedef enum { EMBER_ZCL_DOOR_LOCK_TYPE_DEAD_BOLT = 0x00, @@ -581,6 +630,7 @@ typedef enum EMBER_ZCL_DOOR_LOCK_TYPE_OTHER = 0x09, } EmberAfDoorLockType; +// Enum for DoorLockUserStatus typedef enum { EMBER_ZCL_DOOR_LOCK_USER_STATUS_AVAILABLE = 0x00, @@ -589,15 +639,18 @@ typedef enum EMBER_ZCL_DOOR_LOCK_USER_STATUS_NOT_SUPPORTED = 0xFF, } EmberAfDoorLockUserStatus; +// Enum for DoorLockUserType typedef enum { - EMBER_ZCL_DOOR_LOCK_USER_TYPE_UNRESTRICTED = 0x00, - EMBER_ZCL_DOOR_LOCK_USER_TYPE_ONE_TIME_USER = 0x01, - EMBER_ZCL_DOOR_LOCK_USER_TYPE_USER_WITH_SCHEDULE = 0x02, - EMBER_ZCL_DOOR_LOCK_USER_TYPE_MASTER_USER = 0x03, - EMBER_ZCL_DOOR_LOCK_USER_TYPE_NOT_SUPPORTED = 0xFF, + EMBER_ZCL_DOOR_LOCK_USER_TYPE_UNRESTRICTED = 0x00, + EMBER_ZCL_DOOR_LOCK_USER_TYPE_YEAR_DAY_SCHEDULE_USER = 0x01, + EMBER_ZCL_DOOR_LOCK_USER_TYPE_WEEK_DAY_SCHEDULE_USER = 0x02, + EMBER_ZCL_DOOR_LOCK_USER_TYPE_MASTER_USER = 0x03, + EMBER_ZCL_DOOR_LOCK_USER_TYPE_NON_ACCESS_USER = 0x04, + EMBER_ZCL_DOOR_LOCK_USER_TYPE_NOT_SUPPORTED = 0xFF, } EmberAfDoorLockUserType; +// Enum for DoorState typedef enum { EMBER_ZCL_DOOR_STATE_OPEN = 0x00, @@ -607,6 +660,7 @@ typedef enum EMBER_ZCL_DOOR_STATE_ERROR_UNSPECIFIED = 0x04, } EmberAfDoorState; +// Enum for ElectricityAlarmGroups typedef enum { EMBER_ZCL_ELECTRICITY_ALARM_GROUPS_LOW_VOLTAGE_L1 = 0x10, @@ -631,12 +685,13 @@ typedef enum EMBER_ZCL_ELECTRICITY_ALARM_GROUPS_UNDER_VOLTAGE = 0x23, EMBER_ZCL_ELECTRICITY_ALARM_GROUPS_OVER_VOLTAGE = 0x24, EMBER_ZCL_ELECTRICITY_ALARM_GROUPS_NORMAL_VOLTAGE = 0x25, - EMBER_ZCL_ELECTRICITY_ALARM_GROUPS_P_F_BELOW_THRESHOLD = 0x26, - EMBER_ZCL_ELECTRICITY_ALARM_GROUPS_P_F_ABOVE_THRESHOLD = 0x27, + EMBER_ZCL_ELECTRICITY_ALARM_GROUPS_PF_BELOW_THRESHOLD = 0x26, + EMBER_ZCL_ELECTRICITY_ALARM_GROUPS_PF_ABOVE_THRESHOLD = 0x27, EMBER_ZCL_ELECTRICITY_ALARM_GROUPS_TERMINAL_COVER_REMOVED = 0x28, EMBER_ZCL_ELECTRICITY_ALARM_GROUPS_TERMINAL_COVER_CLOSED = 0x29, } EmberAfElectricityAlarmGroups; +// Enum for EnhancedColorMode typedef enum { EMBER_ZCL_ENHANCED_COLOR_MODE_CURRENT_HUE_AND_CURRENT_SATURATION = 0x00, @@ -645,6 +700,7 @@ typedef enum EMBER_ZCL_ENHANCED_COLOR_MODE_ENHANCED_CURRENT_HUE_AND_CURRENT_SATURATION = 0x03, } EmberAfEnhancedColorMode; +// Enum for EventConfigurationControl typedef enum { EMBER_ZCL_EVENT_CONFIGURATION_CONTROL_APPLY_BY_LIST = 0x00, @@ -653,6 +709,7 @@ typedef enum EMBER_ZCL_EVENT_CONFIGURATION_CONTROL_APPLY_BY_CONFIGURATION_MATCH = 0x03, } EmberAfEventConfigurationControl; +// Enum for EventConfigurationLogAction typedef enum { EMBER_ZCL_EVENT_CONFIGURATION_LOG_ACTION_DO_NOT_LOG = 0x00, @@ -663,12 +720,14 @@ typedef enum EMBER_ZCL_EVENT_CONFIGURATION_LOG_ACTION_LOG_AS_NETWORK_EVENT = 0x05, } EmberAfEventConfigurationLogAction; +// Enum for EventControl typedef enum { EMBER_ZCL_EVENT_CONTROL_RETRIEVE_MINIMAL_INFORMATION = 0x00, EMBER_ZCL_EVENT_CONTROL_RETRIEVE_FULL_INFORMATION = 0x10, } EmberAfEventControl; +// Enum for EventId typedef enum { EMBER_ZCL_EVENT_ID_METER_COVER_REMOVED = 0x00, @@ -734,6 +793,8 @@ typedef enum EMBER_ZCL_EVENT_ID_BATTERY_COVER_REMOVED = 0xA2, EMBER_ZCL_EVENT_ID_BATTERY_COVER_CLOSED = 0xA3, EMBER_ZCL_EVENT_ID_EXCESS_FLOW = 0xA4, + EMBER_ZCL_EVENT_ID_CREDIT_OK = 0xC0, + EMBER_ZCL_EVENT_ID_LOW_CREDIT = 0xC1, EMBER_ZCL_EVENT_ID_EMERGENCY_CREDIT_IN_USE = 0xC0, EMBER_ZCL_EVENT_ID_EMERGENCY_CREDIT_EXHAUSTED = 0xC1, EMBER_ZCL_EVENT_ID_ZERO_CREDIT_EC_NOT_SELECTED = 0xC2, @@ -752,6 +813,7 @@ typedef enum EMBER_ZCL_EVENT_ID_MANUFACTURER_SPECIFIC_I = 0xE8, } EmberAfEventId; +// Enum for EventIdentification typedef enum { EMBER_ZCL_EVENT_IDENTIFICATION_END_OF_CYCLE = 0x01, @@ -761,6 +823,7 @@ typedef enum EMBER_ZCL_EVENT_IDENTIFICATION_WRONG_DATA = 0x07, } EmberAfEventIdentification; +// Enum for EventLogId typedef enum { EMBER_ZCL_EVENT_LOG_ID_ALL_LOGS = 0x00, @@ -773,12 +836,14 @@ typedef enum EMBER_ZCL_EVENT_LOG_ID_GBCS_SECURITY_EVENT_LOG = 0x07, } EmberAfEventLogId; +// Enum for EventLogPayloadControl typedef enum { EMBER_ZCL_EVENT_LOG_PAYLOAD_CONTROL_EVENTS_DO_NOT_CROSS_FRAME_BOUNDARY = 0x00, EMBER_ZCL_EVENT_LOG_PAYLOAD_CONTROL_EVENT_CROSSES_FRAME_BOUNDARY = 0x01, } EmberAfEventLogPayloadControl; +// Enum for ExtendedGenericAlarmGroups typedef enum { EMBER_ZCL_EXTENDED_GENERIC_ALARM_GROUPS_MEASUREMENT_SYSTEM_ERROR = 0x70, @@ -822,6 +887,7 @@ typedef enum EMBER_ZCL_EXTENDED_GENERIC_ALARM_GROUPS_EXTENDED_METER_ALARM_STATUS_REGISTER_CHANGED = 0x96, } EmberAfExtendedGenericAlarmGroups; +// Enum for ExtendedNumberOfPriceTiers typedef enum { EMBER_ZCL_EXTENDED_NUMBER_OF_PRICE_TIERS_REFER_TO_NUMBER_OF_PRICE_TIERS_FIELD = 0x00, @@ -860,6 +926,7 @@ typedef enum EMBER_ZCL_EXTENDED_NUMBER_OF_PRICE_TIERS_NUMBER_OF_PRICE_TIERS48 = 0x21, } EmberAfExtendedNumberOfPriceTiers; +// Enum for ExtendedPriceTier typedef enum { EMBER_ZCL_EXTENDED_PRICE_TIER_REFER_TO_PRICE_TIER_FIELD = 0x00, @@ -898,6 +965,7 @@ typedef enum EMBER_ZCL_EXTENDED_PRICE_TIER_TIER48_PRICE_LABEL = 0x21, } EmberAfExtendedPriceTier; +// Enum for ExtendedRegisterTier typedef enum { EMBER_ZCL_EXTENDED_REGISTER_TIER_REFER_TO_REGISTER_TIER_FIELD = 0x00, @@ -936,32 +1004,36 @@ typedef enum EMBER_ZCL_EXTENDED_REGISTER_TIER_CURRENT_TIER48_SUMMATION_DELIVERED_ATTRIBUTE = 0x21, } EmberAfExtendedRegisterTier; +// Enum for EzModeCommissioningClusterType typedef enum { EMBER_ZCL_EZ_MODE_COMMISSIONING_CLUSTER_TYPE_SERVER = 0x00, EMBER_ZCL_EZ_MODE_COMMISSIONING_CLUSTER_TYPE_CLIENT = 0x01, } EmberAfEzModeCommissioningClusterType; +// Enum for FanMode typedef enum { - EMBER_ZCL_FAN_MODE_OFF = 0x00, - EMBER_ZCL_FAN_MODE_LOW = 0x01, - EMBER_ZCL_FAN_MODE_MEDIUM = 0x02, - EMBER_ZCL_FAN_MODE_HIGH = 0x03, - EMBER_ZCL_FAN_MODE_ON = 0x04, - EMBER_ZCL_FAN_MODE_AUTO = 0x05, - EMBER_ZCL_FAN_MODE_SMART = 0x06, + EMBER_ZCL_FAN_MODE_OFF = 0x0, + EMBER_ZCL_FAN_MODE_LOW = 0x1, + EMBER_ZCL_FAN_MODE_MEDIUM = 0x2, + EMBER_ZCL_FAN_MODE_HIGH = 0x3, + EMBER_ZCL_FAN_MODE_ON = 0x4, + EMBER_ZCL_FAN_MODE_AUTO = 0x5, + EMBER_ZCL_FAN_MODE_SMART = 0x6, } EmberAfFanMode; +// Enum for FanModeSequence typedef enum { - EMBER_ZCL_FAN_MODE_SEQUENCE_LOW_MED_HIGH = 0x00, - EMBER_ZCL_FAN_MODE_SEQUENCE_LOW_HIGH = 0x01, - EMBER_ZCL_FAN_MODE_SEQUENCE_LOW_MED_HIGH_AUTO = 0x02, - EMBER_ZCL_FAN_MODE_SEQUENCE_LOW_HIGH_AUTO = 0x03, - EMBER_ZCL_FAN_MODE_SEQUENCE_ON_AUTO = 0x04, + EMBER_ZCL_FAN_MODE_SEQUENCE_LOW_MED_HIGH = 0x0, + EMBER_ZCL_FAN_MODE_SEQUENCE_LOW_HIGH = 0x1, + EMBER_ZCL_FAN_MODE_SEQUENCE_LOW_MED_HIGH_AUTO = 0x2, + EMBER_ZCL_FAN_MODE_SEQUENCE_LOW_HIGH_AUTO = 0x3, + EMBER_ZCL_FAN_MODE_SEQUENCE_ON_AUTO = 0x4, } EmberAfFanModeSequence; +// Enum for GasSpecificAlarmGroups typedef enum { EMBER_ZCL_GAS_SPECIFIC_ALARM_GROUPS_TILT_TAMPER = 0x60, @@ -971,6 +1043,7 @@ typedef enum EMBER_ZCL_GAS_SPECIFIC_ALARM_GROUPS_TILT_TAMPER_ENDED = 0x64, } EmberAfGasSpecificAlarmGroups; +// Enum for GenerationTier typedef enum { EMBER_ZCL_GENERATION_TIER_CURRENT_TIER1_SUMMATION_RECEIVED_ATTRIBUTE = 0x01, @@ -1023,6 +1096,7 @@ typedef enum EMBER_ZCL_GENERATION_TIER_CURRENT_TIER48_SUMMATION_RECEIVED_ATTRIBUTE = 0x30, } EmberAfGenerationTier; +// Enum for GenericAlarmGroups typedef enum { EMBER_ZCL_GENERIC_ALARM_GROUPS_CHECK_METER = 0x00, @@ -1036,22 +1110,25 @@ typedef enum EMBER_ZCL_GENERIC_ALARM_GROUPS_NO_STRONG_MAGNETIC_FIELD = 0x0B, EMBER_ZCL_GENERIC_ALARM_GROUPS_BATTERY_FAILURE = 0x0C, EMBER_ZCL_GENERIC_ALARM_GROUPS_PROGRAM_MEMORY_ERROR = 0x0D, - EMBER_ZCL_GENERIC_ALARM_GROUPS_R_A_M_ERROR = 0x0E, - EMBER_ZCL_GENERIC_ALARM_GROUPS_N_V_MEMORY_ERROR = 0x0F, + EMBER_ZCL_GENERIC_ALARM_GROUPS_RAM_ERROR = 0x0E, + EMBER_ZCL_GENERIC_ALARM_GROUPS_NV_MEMORY_ERROR = 0x0F, } EmberAfGenericAlarmGroups; +// Enum for GenericAlarmGroupsElectricity typedef enum { EMBER_ZCL_GENERIC_ALARM_GROUPS_ELECTRICITY_POWER_FAILURE = 0x03, EMBER_ZCL_GENERIC_ALARM_GROUPS_ELECTRICITY_POWER_QUALITY = 0x04, } EmberAfGenericAlarmGroupsElectricity; +// Enum for GenericAlarmGroupsGas typedef enum { EMBER_ZCL_GENERIC_ALARM_GROUPS_GAS_LOW_PRESSURE = 0x04, EMBER_ZCL_GENERIC_ALARM_GROUPS_GAS_REVERSE_FLOW = 0x07, } EmberAfGenericAlarmGroupsGas; +// Enum for GenericAlarmGroupsHeatCooling typedef enum { EMBER_ZCL_GENERIC_ALARM_GROUPS_HEAT_COOLING_TEMPERATURE_SENSOR = 0x03, @@ -1059,6 +1136,7 @@ typedef enum EMBER_ZCL_GENERIC_ALARM_GROUPS_HEAT_COOLING_FLOW_SENSOR = 0x07, } EmberAfGenericAlarmGroupsHeatCooling; +// Enum for GenericAlarmGroupsWater typedef enum { EMBER_ZCL_GENERIC_ALARM_GROUPS_WATER_WATER_PIPE_EMPTY = 0x03, @@ -1066,11 +1144,13 @@ typedef enum EMBER_ZCL_GENERIC_ALARM_GROUPS_WATER_WATER_REVERSE_FLOW = 0x07, } EmberAfGenericAlarmGroupsWater; +// Enum for GenericDeviceClass typedef enum { EMBER_ZCL_GENERIC_DEVICE_CLASS_LIGHTING = 0x00, } EmberAfGenericDeviceClass; +// Enum for GenericDeviceType typedef enum { EMBER_ZCL_GENERIC_DEVICE_TYPE_INCANDESCENT = 0x00, @@ -1096,6 +1176,7 @@ typedef enum EMBER_ZCL_GENERIC_DEVICE_TYPE_UNSPECIFIED = 0xFF, } EmberAfGenericDeviceType; +// Enum for GenericFlowPressureAlarmGroups typedef enum { EMBER_ZCL_GENERIC_FLOW_PRESSURE_ALARM_GROUPS_BURST_DETECT = 0x30, @@ -1108,14 +1189,27 @@ typedef enum EMBER_ZCL_GENERIC_FLOW_PRESSURE_ALARM_GROUPS_PIPE_EMPTY = 0x37, } EmberAfGenericFlowPressureAlarmGroups; -typedef enum -{ - EMBER_ZCL_GP_DEVICE_ID_GP_SIMPLE_GENERICE_TWO_STATE_SWITCH = 0x00, - EMBER_ZCL_GP_DEVICE_ID_GP_ON_OFF_SWITCH = 0x08, - EMBER_ZCL_GP_DEVICE_ID_GP_LEVEL_CONTROL_SWITCH = 0x10, - EMBER_ZCL_GP_DEVICE_ID_GP_INDOOR_ENVIRONMENT_SNESOR = 0x18, +// Enum for GpDeviceId +typedef enum +{ + EMBER_ZCL_GP_DEVICE_ID_GP_SIMPLE_GENERIC_ONE_STATE_SWITCH = 0x00, + EMBER_ZCL_GP_DEVICE_ID_GP_SIMPLE_GENERIC_TWO_STATE_SWITCH = 0x00, + EMBER_ZCL_GP_DEVICE_ID_GP_ON_OFF_SWITCH = 0x08, + EMBER_ZCL_GP_DEVICE_ID_GP_LEVEL_CONTROL_SWITCH = 0x10, + EMBER_ZCL_GP_DEVICE_ID_GP_SIMPLE_SENSOR = 0x18, + EMBER_ZCL_GP_DEVICE_ID_GP_ADVANCED_GENERIC_ONE_STATE_SWITCH = 0x18, + EMBER_ZCL_GP_DEVICE_ID_GP_ADVANCED_GENERIC_TWO_STATE_SWITCH = 0x18, + EMBER_ZCL_GP_DEVICE_ID_GP_COLOR_DIMMER_SWITCH = 0x18, + EMBER_ZCL_GP_DEVICE_ID_GP_LIGHT_SENSOR = 0x18, + EMBER_ZCL_GP_DEVICE_ID_GP_OCCPANCY_SENSOR = 0x18, + EMBER_ZCL_GP_DEVICE_ID_GP_DOOR_LOCK_CONTROLLER = 0x18, + EMBER_ZCL_GP_DEVICE_ID_GP_TEMPERATURE_SENSOR = 0x18, + EMBER_ZCL_GP_DEVICE_ID_GP_PRESSURE_SENSOR = 0x18, + EMBER_ZCL_GP_DEVICE_ID_GP_FLOW_SENSOR = 0x18, + EMBER_ZCL_GP_DEVICE_ID_GP_INDOOR_ENVIRONMENT_SNESOR = 0x18, } EmberAfGpDeviceId; +// Enum for GpGpdf typedef enum { EMBER_ZCL_GP_GPDF_IDENTIFY = 0x00, @@ -1211,6 +1305,7 @@ typedef enum EMBER_ZCL_GP_GPDF_ZCL_TUNNELING = 0xF6, } EmberAfGpGpdf; +// Enum for GpPairingConfigurationAction typedef enum { EMBER_ZCL_GP_PAIRING_CONFIGURATION_ACTION_NO_ACTION = 0x00, @@ -1221,14 +1316,16 @@ typedef enum EMBER_ZCL_GP_PAIRING_CONFIGURATION_ACTION_APPLICATION_DESCRIPTION = 0x05, } EmberAfGpPairingConfigurationAction; +// Enum for GpPairingConfigurationOptionCommunicationMode typedef enum { EMBER_ZCL_GP_PAIRING_CONFIGURATION_OPTION_COMMUNICATION_MODE_UNICAST_FORWARDING = 0x00, - EMBER_ZCL_GP_PAIRING_CONFIGURATION_OPTION_COMMUNICATION_MODE_GROUPCAST_FORWARDING_TO_D_GROUP_I_D = 0x08, + EMBER_ZCL_GP_PAIRING_CONFIGURATION_OPTION_COMMUNICATION_MODE_GROUPCAST_FORWARDING_TO_D_GROUP_ID = 0x08, EMBER_ZCL_GP_PAIRING_CONFIGURATION_OPTION_COMMUNICATION_MODE_GROUPCAST_FORWARDING_TO_PRE_COMMISSIONED = 0x10, EMBER_ZCL_GP_PAIRING_CONFIGURATION_OPTION_COMMUNICATION_MODE_UNICAST_FORWARDING_LIGHTWEIGHT = 0x18, } EmberAfGpPairingConfigurationOptionCommunicationMode; +// Enum for GpPairingOptionsCommunicationMode typedef enum { EMBER_ZCL_GP_PAIRING_OPTIONS_COMMUNICATION_MODE_FULL_UNICAST_FORWARDING = 0x00, @@ -1237,18 +1334,21 @@ typedef enum EMBER_ZCL_GP_PAIRING_OPTIONS_COMMUNICATION_MODE_UNICAST_FORWARDING_BY_PROX_SUPPORT = 0x11, } EmberAfGpPairingOptionsCommunicationMode; +// Enum for GpProxyTableRequestOptionsRequestType typedef enum { EMBER_ZCL_GP_PROXY_TABLE_REQUEST_OPTIONS_REQUEST_TYPE_BY_GPD_ID = 0x00, EMBER_ZCL_GP_PROXY_TABLE_REQUEST_OPTIONS_REQUEST_TYPE_BY_INDEX = 0x01, } EmberAfGpProxyTableRequestOptionsRequestType; +// Enum for GpProxyTableResponseStatus typedef enum { EMBER_ZCL_GP_PROXY_TABLE_RESPONSE_STATUS_SUCCESS = 0x00, EMBER_ZCL_GP_PROXY_TABLE_RESPONSE_STATUS_NOT_FOUND = 0x8B, } EmberAfGpProxyTableResponseStatus; +// Enum for GpSecurityKeyType typedef enum { EMBER_ZCL_GP_SECURITY_KEY_TYPE_NONE = 0x00, @@ -1259,24 +1359,28 @@ typedef enum EMBER_ZCL_GP_SECURITY_KEY_TYPE_DERIVED_INDIVIDUAL_GPD_KEY = 0x07, } EmberAfGpSecurityKeyType; +// Enum for GpSinkTableRequestOptions typedef enum { EMBER_ZCL_GP_SINK_TABLE_REQUEST_OPTIONS_REQUEST_TABLE_ENTRIES_BY_GPD_ID = 0x00, EMBER_ZCL_GP_SINK_TABLE_REQUEST_OPTIONS_REQUEST_TABLE_ENTRIES_BY_INDEX = 0x01, } EmberAfGpSinkTableRequestOptions; +// Enum for GpSinkTableResponseStatus typedef enum { EMBER_ZCL_GP_SINK_TABLE_RESPONSE_STATUS_SUCCESS = 0x00, EMBER_ZCL_GP_SINK_TABLE_RESPONSE_STATUS_NOT_FOUND = 0x8B, } EmberAfGpSinkTableResponseStatus; +// Enum for GpTranslationTableResponseStatus typedef enum { EMBER_ZCL_GP_TRANSLATION_TABLE_RESPONSE_STATUS_SUCCESS = 0x00, EMBER_ZCL_GP_TRANSLATION_TABLE_RESPONSE_STATUS_NOT_FOUND = 0x8B, } EmberAfGpTranslationTableResponseStatus; +// Enum for GpTranslationTableUpdateAction typedef enum { EMBER_ZCL_GP_TRANSLATION_TABLE_UPDATE_ACTION_ADD_TRANSLATION_TABLE_ENTRY = 0x00, @@ -1285,79 +1389,89 @@ typedef enum EMBER_ZCL_GP_TRANSLATION_TABLE_UPDATE_ACTION_RESERVED = 0x18, } EmberAfGpTranslationTableUpdateAction; +// Enum for HeatAndCoolingSpecificAlarmGroups typedef enum { EMBER_ZCL_HEAT_AND_COOLING_SPECIFIC_ALARM_GROUPS_INLET_TEMPERATURE_SENSOR_FAULT = 0x50, EMBER_ZCL_HEAT_AND_COOLING_SPECIFIC_ALARM_GROUPS_OUTLET_TEMPERATURE_SENSOR_FAULT = 0x51, } EmberAfHeatAndCoolingSpecificAlarmGroups; +// Enum for HueDirection typedef enum { - EMBER_ZCL_HUE_DIRECTION_SHORTEST_DISTANCE = 0x00, - EMBER_ZCL_HUE_DIRECTION_LONGEST_DISTANCE = 0x01, - EMBER_ZCL_HUE_DIRECTION_UP = 0x02, - EMBER_ZCL_HUE_DIRECTION_DOWN = 0x03, + EMBER_ZCL_HUE_DIRECTION_SHORTEST_DISTANCE = 0x0, + EMBER_ZCL_HUE_DIRECTION_LONGEST_DISTANCE = 0x1, + EMBER_ZCL_HUE_DIRECTION_UP = 0x2, + EMBER_ZCL_HUE_DIRECTION_DOWN = 0x3, } EmberAfHueDirection; +// Enum for HueMoveMode typedef enum { - EMBER_ZCL_HUE_MOVE_MODE_STOP = 0x00, - EMBER_ZCL_HUE_MOVE_MODE_UP = 0x01, - EMBER_ZCL_HUE_MOVE_MODE_DOWN = 0x03, + EMBER_ZCL_HUE_MOVE_MODE_STOP = 0x0, + EMBER_ZCL_HUE_MOVE_MODE_UP = 0x1, + EMBER_ZCL_HUE_MOVE_MODE_DOWN = 0x3, } EmberAfHueMoveMode; +// Enum for HueStepMode typedef enum { - EMBER_ZCL_HUE_STEP_MODE_UP = 0x01, - EMBER_ZCL_HUE_STEP_MODE_DOWN = 0x03, + EMBER_ZCL_HUE_STEP_MODE_UP = 0x1, + EMBER_ZCL_HUE_STEP_MODE_DOWN = 0x3, } EmberAfHueStepMode; +// Enum for IasAceAlarmStatus typedef enum { - EMBER_ZCL_IAS_ACE_ALARM_STATUS_NO_ALARM = 0x00, - EMBER_ZCL_IAS_ACE_ALARM_STATUS_BURGLAR = 0x01, - EMBER_ZCL_IAS_ACE_ALARM_STATUS_FIRE = 0x02, - EMBER_ZCL_IAS_ACE_ALARM_STATUS_EMERGENCY = 0x03, - EMBER_ZCL_IAS_ACE_ALARM_STATUS_POLICE_PANIC = 0x04, - EMBER_ZCL_IAS_ACE_ALARM_STATUS_FIRE_PANIC = 0x05, - EMBER_ZCL_IAS_ACE_ALARM_STATUS_EMERGENCY_PANIC = 0x06, + EMBER_ZCL_IAS_ACE_ALARM_STATUS_NO_ALARM = 0x0, + EMBER_ZCL_IAS_ACE_ALARM_STATUS_BURGLAR = 0x1, + EMBER_ZCL_IAS_ACE_ALARM_STATUS_FIRE = 0x2, + EMBER_ZCL_IAS_ACE_ALARM_STATUS_EMERGENCY = 0x3, + EMBER_ZCL_IAS_ACE_ALARM_STATUS_POLICE_PANIC = 0x4, + EMBER_ZCL_IAS_ACE_ALARM_STATUS_FIRE_PANIC = 0x5, + EMBER_ZCL_IAS_ACE_ALARM_STATUS_EMERGENCY_PANIC = 0x6, } EmberAfIasAceAlarmStatus; +// Enum for IasAceArmMode typedef enum { - EMBER_ZCL_IAS_ACE_ARM_MODE_DISARM = 0x00, - EMBER_ZCL_IAS_ACE_ARM_MODE_ARM_DAY_HOME_ZONES_ONLY = 0x01, - EMBER_ZCL_IAS_ACE_ARM_MODE_ARM_NIGHT_SLEEP_ZONES_ONLY = 0x02, - EMBER_ZCL_IAS_ACE_ARM_MODE_ARM_ALL_ZONES = 0x03, + EMBER_ZCL_IAS_ACE_ARM_MODE_DISARM = 0x0, + EMBER_ZCL_IAS_ACE_ARM_MODE_ARM_DAY_HOME_ZONES_ONLY = 0x1, + EMBER_ZCL_IAS_ACE_ARM_MODE_ARM_NIGHT_SLEEP_ZONES_ONLY = 0x2, + EMBER_ZCL_IAS_ACE_ARM_MODE_ARM_ALL_ZONES = 0x3, } EmberAfIasAceArmMode; +// Enum for IasAceArmNotification typedef enum { - EMBER_ZCL_IAS_ACE_ARM_NOTIFICATION_ALL_ZONES_DISARMED = 0x00, - EMBER_ZCL_IAS_ACE_ARM_NOTIFICATION_ONLY_DAY_HOME_ZONES_ARMED = 0x01, - EMBER_ZCL_IAS_ACE_ARM_NOTIFICATION_ONLY_NIGHT_SLEEP_ZONES_ARMED = 0x02, - EMBER_ZCL_IAS_ACE_ARM_NOTIFICATION_ALL_ZONES_ARMED = 0x03, + EMBER_ZCL_IAS_ACE_ARM_NOTIFICATION_ALL_ZONES_DISARMED = 0x0, + EMBER_ZCL_IAS_ACE_ARM_NOTIFICATION_ONLY_DAY_HOME_ZONES_ARMED = 0x1, + EMBER_ZCL_IAS_ACE_ARM_NOTIFICATION_ONLY_NIGHT_SLEEP_ZONES_ARMED = 0x2, + EMBER_ZCL_IAS_ACE_ARM_NOTIFICATION_ALL_ZONES_ARMED = 0x3, EMBER_ZCL_IAS_ACE_ARM_NOTIFICATION_INVALID_ARM_DISARM_CODE = 0x04, EMBER_ZCL_IAS_ACE_ARM_NOTIFICATION_NOT_READY_TO_ARM = 0x05, EMBER_ZCL_IAS_ACE_ARM_NOTIFICATION_ALREADY_DISARMED = 0x06, } EmberAfIasAceArmNotification; +// Enum for IasAceAudibleNotification typedef enum { - EMBER_ZCL_IAS_ACE_AUDIBLE_NOTIFICATION_MUTE = 0x00, - EMBER_ZCL_IAS_ACE_AUDIBLE_NOTIFICATION_DEFAULT_SOUND = 0x01, + EMBER_ZCL_IAS_ACE_AUDIBLE_NOTIFICATION_MUTE = 0x0, + EMBER_ZCL_IAS_ACE_AUDIBLE_NOTIFICATION_DEFAULT_SOUND = 0x1, } EmberAfIasAceAudibleNotification; +// Enum for IasAceBypassResult typedef enum { - EMBER_ZCL_IAS_ACE_BYPASS_RESULT_ZONE_BYPASSED = 0x00, - EMBER_ZCL_IAS_ACE_BYPASS_RESULT_ZONE_NOT_BYPASSED = 0x01, - EMBER_ZCL_IAS_ACE_BYPASS_RESULT_NOT_ALLOWED = 0x02, - EMBER_ZCL_IAS_ACE_BYPASS_RESULT_INVALID_ZONE_ID = 0x03, - EMBER_ZCL_IAS_ACE_BYPASS_RESULT_UNKNOWN_ZONE_ID = 0x04, - EMBER_ZCL_IAS_ACE_BYPASS_RESULT_INVALID_ARM_DISARM_CODE = 0x05, + EMBER_ZCL_IAS_ACE_BYPASS_RESULT_ZONE_BYPASSED = 0x0, + EMBER_ZCL_IAS_ACE_BYPASS_RESULT_ZONE_NOT_BYPASSED = 0x1, + EMBER_ZCL_IAS_ACE_BYPASS_RESULT_NOT_ALLOWED = 0x2, + EMBER_ZCL_IAS_ACE_BYPASS_RESULT_INVALID_ZONE_ID = 0x3, + EMBER_ZCL_IAS_ACE_BYPASS_RESULT_UNKNOWN_ZONE_ID = 0x4, + EMBER_ZCL_IAS_ACE_BYPASS_RESULT_INVALID_ARM_DISARM_CODE = 0x5, } EmberAfIasAceBypassResult; +// Enum for IasAcePanelStatus typedef enum { EMBER_ZCL_IAS_ACE_PANEL_STATUS_PANEL_DISARMED = 0x00, @@ -1373,40 +1487,44 @@ typedef enum EMBER_ZCL_IAS_ACE_PANEL_STATUS_ARMING_AWAY = 0x0A, } EmberAfIasAcePanelStatus; +// Enum for IasEnrollResponseCode typedef enum { - EMBER_ZCL_IAS_ENROLL_RESPONSE_CODE_SUCCESS = 0x00, - EMBER_ZCL_IAS_ENROLL_RESPONSE_CODE_NOT_SUPPORTED = 0x01, - EMBER_ZCL_IAS_ENROLL_RESPONSE_CODE_NO_ENROLL_PERMIT = 0x02, - EMBER_ZCL_IAS_ENROLL_RESPONSE_CODE_TOO_MANY_ZONES = 0x03, + EMBER_ZCL_IAS_ENROLL_RESPONSE_CODE_SUCCESS = 0x0, + EMBER_ZCL_IAS_ENROLL_RESPONSE_CODE_NOT_SUPPORTED = 0x1, + EMBER_ZCL_IAS_ENROLL_RESPONSE_CODE_NO_ENROLL_PERMIT = 0x2, + EMBER_ZCL_IAS_ENROLL_RESPONSE_CODE_TOO_MANY_ZONES = 0x3, } EmberAfIasEnrollResponseCode; +// Enum for IasZoneState typedef enum { - EMBER_ZCL_IAS_ZONE_STATE_NOT_ENROLLED = 0x00, - EMBER_ZCL_IAS_ZONE_STATE_ENROLLED = 0x01, + EMBER_ZCL_IAS_ZONE_STATE_NOT_ENROLLED = 0x0, + EMBER_ZCL_IAS_ZONE_STATE_ENROLLED = 0x1, } EmberAfIasZoneState; -typedef enum -{ - EMBER_ZCL_IAS_ZONE_TYPE_STANDARD_CIE = 0x0000, - EMBER_ZCL_IAS_ZONE_TYPE_MOTION_SENSOR = 0x000D, - EMBER_ZCL_IAS_ZONE_TYPE_CONTACT_SWITCH = 0x0015, - EMBER_ZCL_IAS_ZONE_TYPE_FIRE_SENSOR = 0x0028, - EMBER_ZCL_IAS_ZONE_TYPE_WATER_SENSOR = 0x002A, - EMBER_ZCL_IAS_ZONE_TYPE_GAS_SENSOR = 0x002B, - EMBER_ZCL_IAS_ZONE_TYPE_PERSONAL_EMERGENCY_DEVICE = 0x002C, - EMBER_ZCL_IAS_ZONE_TYPE_VIBRATION_MOVEMENT_SENSOR = 0x002D, - EMBER_ZCL_IAS_ZONE_TYPE_REMOTE_CONTROL = 0x010F, - EMBER_ZCL_IAS_ZONE_TYPE_KEY_FOB = 0x0115, - EMBER_ZCL_IAS_ZONE_TYPE_KEYPAD = 0x021D, - EMBER_ZCL_IAS_ZONE_TYPE_STANDARD_WARNING_DEVICE = 0x0225, - EMBER_ZCL_IAS_ZONE_TYPE_GLASS_BREAK_SENSOR = 0x0226, - EMBER_ZCL_IAS_ZONE_TYPE_CARBON_MONOXIDE_SENSOR = 0x0227, +// Enum for IasZoneType +typedef enum +{ + EMBER_ZCL_IAS_ZONE_TYPE_STANDARD_CIE = 0x0, + EMBER_ZCL_IAS_ZONE_TYPE_MOTION_SENSOR = 0xd, + EMBER_ZCL_IAS_ZONE_TYPE_CONTACT_SWITCH = 0x15, + EMBER_ZCL_IAS_ZONE_TYPE_FIRE_SENSOR = 0x28, + EMBER_ZCL_IAS_ZONE_TYPE_WATER_SENSOR = 0x2a, + EMBER_ZCL_IAS_ZONE_TYPE_GAS_SENSOR = 0x2b, + EMBER_ZCL_IAS_ZONE_TYPE_PERSONAL_EMERGENCY_DEVICE = 0x2c, + EMBER_ZCL_IAS_ZONE_TYPE_VIBRATION_MOVEMENT_SENSOR = 0x2d, + EMBER_ZCL_IAS_ZONE_TYPE_REMOTE_CONTROL = 0x10f, + EMBER_ZCL_IAS_ZONE_TYPE_KEY_FOB = 0x115, + EMBER_ZCL_IAS_ZONE_TYPE_KEYPAD = 0x21d, + EMBER_ZCL_IAS_ZONE_TYPE_STANDARD_WARNING_DEVICE = 0x225, + EMBER_ZCL_IAS_ZONE_TYPE_GLASS_BREAK_SENSOR = 0x226, + EMBER_ZCL_IAS_ZONE_TYPE_CARBON_MONOXIDE_SENSOR = 0x227, EMBER_ZCL_IAS_ZONE_TYPE_SECURITY_REPEATER = 0x0229, EMBER_ZCL_IAS_ZONE_TYPE_INVALID_ZONE_TYPE = 0xFFFF, } EmberAfIasZoneType; +// Enum for IdentifyEffectIdentifier typedef enum { EMBER_ZCL_IDENTIFY_EFFECT_IDENTIFIER_BLINK = 0x00, @@ -1417,11 +1535,13 @@ typedef enum EMBER_ZCL_IDENTIFY_EFFECT_IDENTIFIER_STOP_EFFECT = 0xFF, } EmberAfIdentifyEffectIdentifier; +// Enum for IdentifyEffectVariant typedef enum { EMBER_ZCL_IDENTIFY_EFFECT_VARIANT_DEFAULT = 0x00, } EmberAfIdentifyEffectVariant; +// Enum for KeyIndex typedef enum { EMBER_ZCL_KEY_INDEX_DEVELOPMENT = 0x00, @@ -1429,37 +1549,42 @@ typedef enum EMBER_ZCL_KEY_INDEX_CERTIFICATION = 0x0F, } EmberAfKeyIndex; +// Enum for KeypadLockout typedef enum { - EMBER_ZCL_KEYPAD_LOCKOUT_NO_LOCKOUT = 0x00, - EMBER_ZCL_KEYPAD_LOCKOUT_LEVEL_ONE_LOCKOUT = 0x01, - EMBER_ZCL_KEYPAD_LOCKOUT_LEVEL_TWO_LOCKOUT = 0x02, - EMBER_ZCL_KEYPAD_LOCKOUT_LEVEL_THREE_LOCKOUT = 0x03, - EMBER_ZCL_KEYPAD_LOCKOUT_LEVEL_FOUR_LOCKOUT = 0x04, - EMBER_ZCL_KEYPAD_LOCKOUT_LEVELFIVE_LOCKOUT = 0x05, + EMBER_ZCL_KEYPAD_LOCKOUT_NO_LOCKOUT = 0x0, + EMBER_ZCL_KEYPAD_LOCKOUT_LEVEL_ONE_LOCKOUT = 0x1, + EMBER_ZCL_KEYPAD_LOCKOUT_LEVEL_TWO_LOCKOUT = 0x2, + EMBER_ZCL_KEYPAD_LOCKOUT_LEVEL_THREE_LOCKOUT = 0x3, + EMBER_ZCL_KEYPAD_LOCKOUT_LEVEL_FOUR_LOCKOUT = 0x4, + EMBER_ZCL_KEYPAD_LOCKOUT_LEVELFIVE_LOCKOUT = 0x5, } EmberAfKeypadLockout; +// Enum for LevelControlOptions typedef enum { - EMBER_ZCL_LEVEL_CONTROL_OPTIONS_EXECUTE_IF_OFF = 0x01, + EMBER_ZCL_LEVEL_CONTROL_OPTIONS_EXECUTE_IF_OFF = 0x1, EMBER_ZCL_LEVEL_CONTROL_OPTIONS_COUPLE_COLOR_TEMP_TO_LEVEL = 0x02, } EmberAfLevelControlOptions; +// Enum for LevelStatus typedef enum { - EMBER_ZCL_LEVEL_STATUS_ON_TARGET = 0x00, - EMBER_ZCL_LEVEL_STATUS_BELOW_TARGET = 0x01, - EMBER_ZCL_LEVEL_STATUS_ABOVE_TARGET = 0x02, + EMBER_ZCL_LEVEL_STATUS_ON_TARGET = 0x0, + EMBER_ZCL_LEVEL_STATUS_BELOW_TARGET = 0x1, + EMBER_ZCL_LEVEL_STATUS_ABOVE_TARGET = 0x2, } EmberAfLevelStatus; +// Enum for LocationMethod typedef enum { - EMBER_ZCL_LOCATION_METHOD_LATERATION = 0x00, - EMBER_ZCL_LOCATION_METHOD_SIGNPOSTING = 0x01, - EMBER_ZCL_LOCATION_METHOD_RF_FINGERPRINTING = 0x02, - EMBER_ZCL_LOCATION_METHOD_OUT_OF_BAND = 0x03, + EMBER_ZCL_LOCATION_METHOD_LATERATION = 0x0, + EMBER_ZCL_LOCATION_METHOD_SIGNPOSTING = 0x1, + EMBER_ZCL_LOCATION_METHOD_RF_FINGERPRINTING = 0x2, + EMBER_ZCL_LOCATION_METHOD_OUT_OF_BAND = 0x3, } EmberAfLocationMethod; +// Enum for ManufacturerSpecificAlarmGroups typedef enum { EMBER_ZCL_MANUFACTURER_SPECIFIC_ALARM_GROUPS_MANUFACTURER_SPECIFIC_A = 0xB0, @@ -1473,24 +1598,28 @@ typedef enum EMBER_ZCL_MANUFACTURER_SPECIFIC_ALARM_GROUPS_MANUFACTURER_SPECIFIC_I = 0xB8, } EmberAfManufacturerSpecificAlarmGroups; +// Enum for MeasurementLightSensorType typedef enum { - EMBER_ZCL_MEASUREMENT_LIGHT_SENSOR_TYPE_PHOTODIODE = 0x00, - EMBER_ZCL_MEASUREMENT_LIGHT_SENSOR_TYPE_CMOS = 0x01, + EMBER_ZCL_MEASUREMENT_LIGHT_SENSOR_TYPE_PHOTODIODE = 0x0, + EMBER_ZCL_MEASUREMENT_LIGHT_SENSOR_TYPE_CMOS = 0x1, } EmberAfMeasurementLightSensorType; +// Enum for MessagingControlConfirmation typedef enum { EMBER_ZCL_MESSAGING_CONTROL_CONFIRMATION_NOT_REQUIRED = 0x00, EMBER_ZCL_MESSAGING_CONTROL_CONFIRMATION_REQUIRED = 0x80, } EmberAfMessagingControlConfirmation; +// Enum for MessagingControlEnhancedConfirmation typedef enum { EMBER_ZCL_MESSAGING_CONTROL_ENHANCED_CONFIRMATION_NOT_REQUIRED = 0x00, EMBER_ZCL_MESSAGING_CONTROL_ENHANCED_CONFIRMATION_REQUIRED = 0x20, } EmberAfMessagingControlEnhancedConfirmation; +// Enum for MessagingControlImportance typedef enum { EMBER_ZCL_MESSAGING_CONTROL_IMPORTANCE_LOW = 0x00, @@ -1499,6 +1628,7 @@ typedef enum EMBER_ZCL_MESSAGING_CONTROL_IMPORTANCE_CRITICAL = 0x0C, } EmberAfMessagingControlImportance; +// Enum for MessagingControlTransmission typedef enum { EMBER_ZCL_MESSAGING_CONTROL_TRANSMISSION_NORMAL = 0x00, @@ -1507,6 +1637,7 @@ typedef enum EMBER_ZCL_MESSAGING_CONTROL_TRANSMISSION_RESERVED = 0x03, } EmberAfMessagingControlTransmission; +// Enum for MeterDeviceType typedef enum { EMBER_ZCL_METER_DEVICE_TYPE_ELECTRIC_METER = 0x00, @@ -1525,6 +1656,7 @@ typedef enum EMBER_ZCL_METER_DEVICE_TYPE_UNDEFINED_MIRROR_METER = 0xFE, } EmberAfMeterDeviceType; +// Enum for MeterTypeId typedef enum { EMBER_ZCL_METER_TYPE_ID_UTILITY_PRIMARY_METER = 0x0000, @@ -1536,6 +1668,7 @@ typedef enum EMBER_ZCL_METER_TYPE_ID_GENERIC_METER = 0x0110, } EmberAfMeterTypeId; +// Enum for MeteringAlarmCode typedef enum { EMBER_ZCL_METERING_ALARM_CODE_CHECK_METER = 0x00, @@ -1552,8 +1685,8 @@ typedef enum EMBER_ZCL_METERING_ALARM_CODE_NO_STRONG_MAGNETIC_FIELD = 0x0B, EMBER_ZCL_METERING_ALARM_CODE_BATTERY_FAILURE = 0x0C, EMBER_ZCL_METERING_ALARM_CODE_PROGRAM_MEMORY_ERROR = 0x0D, - EMBER_ZCL_METERING_ALARM_CODE_R_A_M_ERROR = 0x0E, - EMBER_ZCL_METERING_ALARM_CODE_N_V_MEMORY_ERROR = 0x0F, + EMBER_ZCL_METERING_ALARM_CODE_RAM_ERROR = 0x0E, + EMBER_ZCL_METERING_ALARM_CODE_NV_MEMORY_ERROR = 0x0F, EMBER_ZCL_METERING_ALARM_CODE_LOW_VOLTAGE_L1 = 0x10, EMBER_ZCL_METERING_ALARM_CODE_HIGH_VOLTAGE_L1 = 0x11, EMBER_ZCL_METERING_ALARM_CODE_LOW_VOLTAGE_L2 = 0x12, @@ -1576,8 +1709,8 @@ typedef enum EMBER_ZCL_METERING_ALARM_CODE_UNDER_VOLTAGE = 0x23, EMBER_ZCL_METERING_ALARM_CODE_OVER_VOLTAGE = 0x24, EMBER_ZCL_METERING_ALARM_CODE_NORMAL_VOLTAGE = 0x25, - EMBER_ZCL_METERING_ALARM_CODE_P_F_BELOW_THRESHOLD = 0x26, - EMBER_ZCL_METERING_ALARM_CODE_P_F_ABOVE_THRESHOLD = 0x27, + EMBER_ZCL_METERING_ALARM_CODE_PF_BELOW_THRESHOLD = 0x26, + EMBER_ZCL_METERING_ALARM_CODE_PF_ABOVE_THRESHOLD = 0x27, EMBER_ZCL_METERING_ALARM_CODE_TERMINAL_COVER_REMOVED = 0x28, EMBER_ZCL_METERING_ALARM_CODE_TERMINAL_COVER_CLOSED = 0x29, EMBER_ZCL_METERING_ALARM_CODE_BURST_DETECT = 0x30, @@ -1645,6 +1778,7 @@ typedef enum EMBER_ZCL_METERING_ALARM_CODE_MANUFACTURER_SPECIFIC_I = 0xB8, } EmberAfMeteringAlarmCode; +// Enum for MeteringBlockEnumerations typedef enum { EMBER_ZCL_METERING_BLOCK_ENUMERATIONS_NO_BLOCKS_IN_USE = 0x00, @@ -1666,6 +1800,7 @@ typedef enum EMBER_ZCL_METERING_BLOCK_ENUMERATIONS_BLOCK16 = 0x10, } EmberAfMeteringBlockEnumerations; +// Enum for MeteringConsumptionStatus typedef enum { EMBER_ZCL_METERING_CONSUMPTION_STATUS_LOW_ENERGY_USAGE = 0x00, @@ -1673,6 +1808,7 @@ typedef enum EMBER_ZCL_METERING_CONSUMPTION_STATUS_HIGH_ENERGY_USAGE = 0x02, } EmberAfMeteringConsumptionStatus; +// Enum for MeteringDeviceType typedef enum { EMBER_ZCL_METERING_DEVICE_TYPE_ELECTRIC_METERING = 0x00, @@ -1710,6 +1846,7 @@ typedef enum EMBER_ZCL_METERING_DEVICE_TYPE_UNDEFINED_MIRROR_METER = 0xFE, } EmberAfMeteringDeviceType; +// Enum for MeteringSupplyStatus typedef enum { EMBER_ZCL_METERING_SUPPLY_STATUS_SUPPLY_OFF = 0x00, @@ -1717,6 +1854,7 @@ typedef enum EMBER_ZCL_METERING_SUPPLY_STATUS_SUPPLY_ON = 0x02, } EmberAfMeteringSupplyStatus; +// Enum for MeteringTemperatureUnitOfMeasure typedef enum { EMBER_ZCL_METERING_TEMPERATURE_UNIT_OF_MEASURE_KELVIN = 0x00, @@ -1727,12 +1865,14 @@ typedef enum EMBER_ZCL_METERING_TEMPERATURE_UNIT_OF_MEASURE_FAHRENHEIT_BCD = 0x82, } EmberAfMeteringTemperatureUnitOfMeasure; +// Enum for MoveMode typedef enum { - EMBER_ZCL_MOVE_MODE_UP = 0x00, - EMBER_ZCL_MOVE_MODE_DOWN = 0x01, + EMBER_ZCL_MOVE_MODE_UP = 0x0, + EMBER_ZCL_MOVE_MODE_DOWN = 0x1, } EmberAfMoveMode; +// Enum for NotificationScheme typedef enum { EMBER_ZCL_NOTIFICATION_SCHEME_NO_NOTIFICATION_SCHEME_DEFINED = 0x00, @@ -1740,14 +1880,16 @@ typedef enum EMBER_ZCL_NOTIFICATION_SCHEME_PREDEFINED_NOTIFICATION_SCHEME_B = 0x02, } EmberAfNotificationScheme; +// Enum for OccupancySensorType typedef enum { - EMBER_ZCL_OCCUPANCY_SENSOR_TYPE_PIR = 0x00, - EMBER_ZCL_OCCUPANCY_SENSOR_TYPE_ULTRASONIC = 0x01, - EMBER_ZCL_OCCUPANCY_SENSOR_TYPE_PIR_AND_ULTRASONIC = 0x02, - EMBER_ZCL_OCCUPANCY_SENSOR_TYPE_PHYSICAL_CONTACT = 0x03, + EMBER_ZCL_OCCUPANCY_SENSOR_TYPE_PIR = 0x0, + EMBER_ZCL_OCCUPANCY_SENSOR_TYPE_ULTRASONIC = 0x1, + EMBER_ZCL_OCCUPANCY_SENSOR_TYPE_PIR_AND_ULTRASONIC = 0x2, + EMBER_ZCL_OCCUPANCY_SENSOR_TYPE_PHYSICAL_CONTACT = 0x3, } EmberAfOccupancySensorType; +// Enum for OnOffDelayedAllOffEffectVariant typedef enum { EMBER_ZCL_ON_OFF_DELAYED_ALL_OFF_EFFECT_VARIANT_FADE_TO_OFF_IN_0P8_SECONDS = 0x00, @@ -1755,23 +1897,27 @@ typedef enum EMBER_ZCL_ON_OFF_DELAYED_ALL_OFF_EFFECT_VARIANT_50_PERCENT_DIM_DOWN_IN_0P8_SECONDS_THEN_FADE_TO_OFF_IN_12_SECONDS = 0x02, } EmberAfOnOffDelayedAllOffEffectVariant; +// Enum for OnOffDyingLightEffectVariant typedef enum { EMBER_ZCL_ON_OFF_DYING_LIGHT_EFFECT_VARIANT_20_PERCENTER_DIM_UP_IN_0P5_SECONDS_THEN_FADE_TO_OFF_IN_1_SECOND = 0x00, } EmberAfOnOffDyingLightEffectVariant; +// Enum for OnOffEffectIdentifier typedef enum { EMBER_ZCL_ON_OFF_EFFECT_IDENTIFIER_DELAYED_ALL_OFF = 0x00, EMBER_ZCL_ON_OFF_EFFECT_IDENTIFIER_DYING_LIGHT = 0x01, } EmberAfOnOffEffectIdentifier; +// Enum for OperatingMode typedef enum { - EMBER_ZCL_OPERATING_MODE_NORMAL = 0x00, - EMBER_ZCL_OPERATING_MODE_CONFIGURE = 0x01, + EMBER_ZCL_OPERATING_MODE_NORMAL = 0x0, + EMBER_ZCL_OPERATING_MODE_CONFIGURE = 0x1, } EmberAfOperatingMode; +// Enum for OriginatingDevice typedef enum { EMBER_ZCL_ORIGINATING_DEVICE_ENERGY_SERVICE_INTERFACE = 0x00, @@ -1779,6 +1925,7 @@ typedef enum EMBER_ZCL_ORIGINATING_DEVICE_IN_HOME_DISPLAY_DEVICE = 0x02, } EmberAfOriginatingDevice; +// Enum for PasswordType typedef enum { EMBER_ZCL_PASSWORD_TYPE_PASSWORD1_SERVICE_MENU_ACCESS = 0x01, @@ -1787,6 +1934,7 @@ typedef enum EMBER_ZCL_PASSWORD_TYPE_PASSWORD4 = 0x04, } EmberAfPasswordType; +// Enum for PaymentDiscountDuration typedef enum { EMBER_ZCL_PAYMENT_DISCOUNT_DURATION_CURRENT_BILLING_PERIOD = 0x00, @@ -1796,14 +1944,16 @@ typedef enum EMBER_ZCL_PAYMENT_DISCOUNT_DURATION_ONE_YEAR = 0x04, } EmberAfPaymentDiscountDuration; +// Enum for PhysicalEnvironment typedef enum { - EMBER_ZCL_PHYSICAL_ENVIRONMENT_UNSPECIFIED = 0x00, - EMBER_ZCL_PHYSICAL_ENVIRONMENT_FIRST_PROFILE_SPECIFIED_VALUE = 0x01, - EMBER_ZCL_PHYSICAL_ENVIRONMENT_LAST_PROFILE_SPECIFIED_VALUE = 0x7F, - EMBER_ZCL_PHYSICAL_ENVIRONMENT_UNKNOWN = 0xFF, + EMBER_ZCL_PHYSICAL_ENVIRONMENT_UNSPECIFIED = 0x0, + EMBER_ZCL_PHYSICAL_ENVIRONMENT_FIRST_PROFILE_SPECIFIED_VALUE = 0x1, + EMBER_ZCL_PHYSICAL_ENVIRONMENT_LAST_PROFILE_SPECIFIED_VALUE = 0x7f, + EMBER_ZCL_PHYSICAL_ENVIRONMENT_UNKNOWN = 0xff, } EmberAfPhysicalEnvironment; +// Enum for PowerProfileState typedef enum { EMBER_ZCL_POWER_PROFILE_STATE_POWER_PROFILE_WAITING_TO_START = 0x01, @@ -1817,18 +1967,20 @@ typedef enum EMBER_ZCL_POWER_PROFILE_STATE_POWER_PROFILE_SCHEDULED = 0x09, } EmberAfPowerProfileState; +// Enum for PowerSource typedef enum { - EMBER_ZCL_POWER_SOURCE_UNKNOWN = 0x00, - EMBER_ZCL_POWER_SOURCE_SINGLE_PHASE_MAINS = 0x01, - EMBER_ZCL_POWER_SOURCE_THREE_PHASE_MAINS = 0x02, - EMBER_ZCL_POWER_SOURCE_BATTERY = 0x03, - EMBER_ZCL_POWER_SOURCE_DC_SOURCE = 0x04, - EMBER_ZCL_POWER_SOURCE_EMERGENCY_MAINS_CONSTANT_POWER = 0x05, - EMBER_ZCL_POWER_SOURCE_EMERGENCY_MAINS_TRANSFER_SWITCH = 0x06, + EMBER_ZCL_POWER_SOURCE_UNKNOWN = 0x0, + EMBER_ZCL_POWER_SOURCE_SINGLE_PHASE_MAINS = 0x1, + EMBER_ZCL_POWER_SOURCE_THREE_PHASE_MAINS = 0x2, + EMBER_ZCL_POWER_SOURCE_BATTERY = 0x3, + EMBER_ZCL_POWER_SOURCE_DC_SOURCE = 0x4, + EMBER_ZCL_POWER_SOURCE_EMERGENCY_MAINS_CONSTANT_POWER = 0x5, + EMBER_ZCL_POWER_SOURCE_EMERGENCY_MAINS_TRANSFER_SWITCH = 0x6, EMBER_ZCL_POWER_SOURCE_BATTERY_BACKUP = 0x80, } EmberAfPowerSource; +// Enum for PrePayGenericAlarmGroup typedef enum { EMBER_ZCL_PRE_PAY_GENERIC_ALARM_GROUP_LOW_CREDIT = 0x00, @@ -1840,6 +1992,7 @@ typedef enum EMBER_ZCL_PRE_PAY_GENERIC_ALARM_GROUP_EVENT_LOG_CLEARED = 0x06, } EmberAfPrePayGenericAlarmGroup; +// Enum for PrepayEventAlarmGroup typedef enum { EMBER_ZCL_PREPAY_EVENT_ALARM_GROUP_PHYSICAL_ATTACK_ON_THE_PREPAY_METER = 0x20, @@ -1864,12 +2017,14 @@ typedef enum EMBER_ZCL_PREPAY_EVENT_ALARM_GROUP_MODE_DEFAULT = 0x43, } EmberAfPrepayEventAlarmGroup; +// Enum for PrepaySnapshotPayloadType typedef enum { EMBER_ZCL_PREPAY_SNAPSHOT_PAYLOAD_TYPE_DEBT_CREDIT_STATUS = 0x00, EMBER_ZCL_PREPAY_SNAPSHOT_PAYLOAD_TYPE_NOT_USED = 0xFF, } EmberAfPrepaySnapshotPayloadType; +// Enum for PrepaySwitchAlarmGroup typedef enum { EMBER_ZCL_PREPAY_SWITCH_ALARM_GROUP_SUPPLY_ON = 0x10, @@ -1881,32 +2036,36 @@ typedef enum EMBER_ZCL_PREPAY_SWITCH_ALARM_GROUP_REMOTE_DISCONNECTED = 0x16, } EmberAfPrepaySwitchAlarmGroup; +// Enum for PriceControlAcknowledgement typedef enum { EMBER_ZCL_PRICE_CONTROL_ACKNOWLEDGEMENT_NOT_REQUIRED = 0x00, EMBER_ZCL_PRICE_CONTROL_ACKNOWLEDGEMENT_REQUIRED = 0x01, } EmberAfPriceControlAcknowledgement; -typedef enum -{ - EMBER_ZCL_PRICE_TIER_NO_TIER_RELATED = 0x00, - EMBER_ZCL_PRICE_TIER_TIER1_PRICE_LABEL = 0x01, - EMBER_ZCL_PRICE_TIER_TIER2_PRICE_LABEL = 0x02, - EMBER_ZCL_PRICE_TIER_TIER3_PRICE_LABEL = 0x03, - EMBER_ZCL_PRICE_TIER_TIER4_PRICE_LABEL = 0x04, - EMBER_ZCL_PRICE_TIER_TIER5_PRICE_LABEL = 0x05, - EMBER_ZCL_PRICE_TIER_TIER6_PRICE_LABEL = 0x06, - EMBER_ZCL_PRICE_TIER_TIER7_PRICE_LABEL = 0x07, - EMBER_ZCL_PRICE_TIER_TIER8_PRICE_LABEL = 0x08, - EMBER_ZCL_PRICE_TIER_TIER9_PRICE_LABEL = 0x09, - EMBER_ZCL_PRICE_TIER_TIER10_PRICE_LABEL = 0x0A, - EMBER_ZCL_PRICE_TIER_TIER11_PRICE_LABEL = 0x0B, - EMBER_ZCL_PRICE_TIER_TIER12_PRICE_LABEL = 0x0C, - EMBER_ZCL_PRICE_TIER_TIER13_PRICE_LABEL = 0x0D, - EMBER_ZCL_PRICE_TIER_TIER14_PRICE_LABEL = 0x0E, - EMBER_ZCL_PRICE_TIER_TIER15_PRICE_LABEL = 0x0F, +// Enum for PriceTier +typedef enum +{ + EMBER_ZCL_PRICE_TIER_NO_TIER_RELATED = 0x00, + EMBER_ZCL_PRICE_TIER_TIER1_PRICE_LABEL = 0x01, + EMBER_ZCL_PRICE_TIER_TIER2_PRICE_LABEL = 0x02, + EMBER_ZCL_PRICE_TIER_TIER3_PRICE_LABEL = 0x03, + EMBER_ZCL_PRICE_TIER_TIER4_PRICE_LABEL = 0x04, + EMBER_ZCL_PRICE_TIER_TIER5_PRICE_LABEL = 0x05, + EMBER_ZCL_PRICE_TIER_TIER6_PRICE_LABEL = 0x06, + EMBER_ZCL_PRICE_TIER_TIER7_PRICE_LABEL = 0x07, + EMBER_ZCL_PRICE_TIER_TIER8_PRICE_LABEL = 0x08, + EMBER_ZCL_PRICE_TIER_TIER9_PRICE_LABEL = 0x09, + EMBER_ZCL_PRICE_TIER_TIER10_PRICE_LABEL = 0x0A, + EMBER_ZCL_PRICE_TIER_TIER11_PRICE_LABEL = 0x0B, + EMBER_ZCL_PRICE_TIER_TIER12_PRICE_LABEL = 0x0C, + EMBER_ZCL_PRICE_TIER_TIER13_PRICE_LABEL = 0x0D, + EMBER_ZCL_PRICE_TIER_TIER14_PRICE_LABEL = 0x0E, + EMBER_ZCL_PRICE_TIER_REFER_TO_EXTENDED_PRICE_TIER_FIELD = 0x0F, + EMBER_ZCL_PRICE_TIER_TIER15_PRICE_LABEL = 0x0F, } EmberAfPriceTier; +// Enum for ProductCode typedef enum { EMBER_ZCL_PRODUCT_CODE_MANUFACTURER_DEFINED = 0x00, @@ -1916,6 +2075,7 @@ typedef enum EMBER_ZCL_PRODUCT_CODE_STOCK_KEEPING_UNIT = 0x04, } EmberAfProductCode; +// Enum for ProductTypeId typedef enum { EMBER_ZCL_PRODUCT_TYPE_ID_WHITE_GOODS = 0x0000, @@ -1930,6 +2090,7 @@ typedef enum EMBER_ZCL_PRODUCT_TYPE_ID_REFRIGERATOR_FREEZER = 0x6601, } EmberAfProductTypeId; +// Enum for ProposedSupplyStatus typedef enum { EMBER_ZCL_PROPOSED_SUPPLY_STATUS_RESERVED = 0x00, @@ -1937,6 +2098,7 @@ typedef enum EMBER_ZCL_PROPOSED_SUPPLY_STATUS_SUPPLY_ON = 0x02, } EmberAfProposedSupplyStatus; +// Enum for PublishCppEventCppAuth typedef enum { EMBER_ZCL_PUBLISH_CPP_EVENT_CPP_AUTH_PENDING = 0x00, @@ -1945,24 +2107,27 @@ typedef enum EMBER_ZCL_PUBLISH_CPP_EVENT_CPP_AUTH_FORCED = 0x03, } EmberAfPublishCppEventCppAuth; +// Enum for PumpControlMode typedef enum { - EMBER_ZCL_PUMP_CONTROL_MODE_CONSTANT_SPEED = 0x00, - EMBER_ZCL_PUMP_CONTROL_MODE_CONSTANT_PRESSURE = 0x01, - EMBER_ZCL_PUMP_CONTROL_MODE_PROPORTIONAL_PRESSURE = 0x02, - EMBER_ZCL_PUMP_CONTROL_MODE_CONSTANT_FLOW = 0x03, - EMBER_ZCL_PUMP_CONTROL_MODE_CONSTANT_TEMPERATURE = 0x05, - EMBER_ZCL_PUMP_CONTROL_MODE_AUTOMATIC = 0x07, + EMBER_ZCL_PUMP_CONTROL_MODE_CONSTANT_SPEED = 0x0, + EMBER_ZCL_PUMP_CONTROL_MODE_CONSTANT_PRESSURE = 0x1, + EMBER_ZCL_PUMP_CONTROL_MODE_PROPORTIONAL_PRESSURE = 0x2, + EMBER_ZCL_PUMP_CONTROL_MODE_CONSTANT_FLOW = 0x3, + EMBER_ZCL_PUMP_CONTROL_MODE_CONSTANT_TEMPERATURE = 0x5, + EMBER_ZCL_PUMP_CONTROL_MODE_AUTOMATIC = 0x7, } EmberAfPumpControlMode; +// Enum for PumpOperationMode typedef enum { - EMBER_ZCL_PUMP_OPERATION_MODE_NORMAL = 0x00, - EMBER_ZCL_PUMP_OPERATION_MODE_MINIMUM = 0x01, - EMBER_ZCL_PUMP_OPERATION_MODE_MAXIMUM = 0x02, - EMBER_ZCL_PUMP_OPERATION_MODE_LOCAL = 0x03, + EMBER_ZCL_PUMP_OPERATION_MODE_NORMAL = 0x0, + EMBER_ZCL_PUMP_OPERATION_MODE_MINIMUM = 0x1, + EMBER_ZCL_PUMP_OPERATION_MODE_MAXIMUM = 0x2, + EMBER_ZCL_PUMP_OPERATION_MODE_LOCAL = 0x3, } EmberAfPumpOperationMode; +// Enum for PushHistoricalMeteringData typedef enum { EMBER_ZCL_PUSH_HISTORICAL_METERING_DATA_DAY = 0x0040, @@ -1971,6 +2136,7 @@ typedef enum EMBER_ZCL_PUSH_HISTORICAL_METERING_DATA_YEAR = 0x01C0, } EmberAfPushHistoricalMeteringData; +// Enum for PushHistoricalPaymentData typedef enum { EMBER_ZCL_PUSH_HISTORICAL_PAYMENT_DATA_DAY = 0x0200, @@ -1979,6 +2145,7 @@ typedef enum EMBER_ZCL_PUSH_HISTORICAL_PAYMENT_DATA_YEAR = 0x0E00, } EmberAfPushHistoricalPaymentData; +// Enum for RegisterTier typedef enum { EMBER_ZCL_REGISTER_TIER_NO_TIER_RELATED = 0x00, @@ -1996,21 +2163,25 @@ typedef enum EMBER_ZCL_REGISTER_TIER_CURRENT_TIER12_SUMMATION_DELIVERED_ATTRIBUTE = 0x0C, EMBER_ZCL_REGISTER_TIER_CURRENT_TIER13_SUMMATION_DELIVERED_ATTRIBUTE = 0x0D, EMBER_ZCL_REGISTER_TIER_CURRENT_TIER14_SUMMATION_DELIVERED_ATTRIBUTE = 0x0E, + EMBER_ZCL_REGISTER_TIER_REFER_TO_EXTENDED_REGISTER_TIER_FIELD = 0x0F, EMBER_ZCL_REGISTER_TIER_CURRENT_TIER15_SUMMATION_DELIVERED_ATTRIBUTE = 0x0F, } EmberAfRegisterTier; +// Enum for RelativeHumidityDisplay typedef enum { - EMBER_ZCL_RELATIVE_HUMIDITY_DISPLAY_NOT_DISPLAYED = 0x00, - EMBER_ZCL_RELATIVE_HUMIDITY_DISPLAY_DISPLAYED = 0x01, + EMBER_ZCL_RELATIVE_HUMIDITY_DISPLAY_NOT_DISPLAYED = 0x0, + EMBER_ZCL_RELATIVE_HUMIDITY_DISPLAY_DISPLAYED = 0x1, } EmberAfRelativeHumidityDisplay; +// Enum for RelativeHumidityMode typedef enum { - EMBER_ZCL_RELATIVE_HUMIDITY_MODE_MEASURE_LOCALLY = 0x00, - EMBER_ZCL_RELATIVE_HUMIDITY_MODE_UPDATED_OVER_THE_NETWORK = 0x01, + EMBER_ZCL_RELATIVE_HUMIDITY_MODE_MEASURE_LOCALLY = 0x0, + EMBER_ZCL_RELATIVE_HUMIDITY_MODE_UPDATED_OVER_THE_NETWORK = 0x1, } EmberAfRelativeHumidityMode; +// Enum for RemoteEnableFlags typedef enum { EMBER_ZCL_REMOTE_ENABLE_FLAGS_DISABLED = 0x00, @@ -2019,6 +2190,7 @@ typedef enum EMBER_ZCL_REMOTE_ENABLE_FLAGS_ENABLED_REMOTE_AND_ENERGY_CONTROL = 0x01, } EmberAfRemoteEnableFlags; +// Enum for RepaymentDebtType typedef enum { EMBER_ZCL_REPAYMENT_DEBT_TYPE_DEBT1 = 0x00, @@ -2027,12 +2199,14 @@ typedef enum EMBER_ZCL_REPAYMENT_DEBT_TYPE_ALL_DEBTS = 0xFF, } EmberAfRepaymentDebtType; +// Enum for ReportingDirection typedef enum { EMBER_ZCL_REPORTING_DIRECTION_REPORTED = 0x00, EMBER_ZCL_REPORTING_DIRECTION_RECEIVED = 0x01, } EmberAfReportingDirection; +// Enum for ResultType typedef enum { EMBER_ZCL_RESULT_TYPE_ACCEPTED = 0x00, @@ -2047,49 +2221,57 @@ typedef enum EMBER_ZCL_RESULT_TYPE_ACCEPTED_SUPPLY_ARMED = 0x12, } EmberAfResultType; +// Enum for SampleType typedef enum { EMBER_ZCL_SAMPLE_TYPE_CONSUMPTION_DELIVERED = 0x00, } EmberAfSampleType; +// Enum for SaturationMoveMode typedef enum { - EMBER_ZCL_SATURATION_MOVE_MODE_STOP = 0x00, - EMBER_ZCL_SATURATION_MOVE_MODE_UP = 0x01, - EMBER_ZCL_SATURATION_MOVE_MODE_DOWN = 0x03, + EMBER_ZCL_SATURATION_MOVE_MODE_STOP = 0x0, + EMBER_ZCL_SATURATION_MOVE_MODE_UP = 0x1, + EMBER_ZCL_SATURATION_MOVE_MODE_DOWN = 0x3, } EmberAfSaturationMoveMode; +// Enum for SaturationStepMode typedef enum { - EMBER_ZCL_SATURATION_STEP_MODE_UP = 0x01, - EMBER_ZCL_SATURATION_STEP_MODE_DOWN = 0x03, + EMBER_ZCL_SATURATION_STEP_MODE_UP = 0x1, + EMBER_ZCL_SATURATION_STEP_MODE_DOWN = 0x3, } EmberAfSaturationStepMode; +// Enum for SensingLightSensorType typedef enum { - EMBER_ZCL_SENSING_LIGHT_SENSOR_TYPE_PHOTODIODE = 0x00, - EMBER_ZCL_SENSING_LIGHT_SENSOR_TYPE_CMOS = 0x01, + EMBER_ZCL_SENSING_LIGHT_SENSOR_TYPE_PHOTODIODE = 0x0, + EMBER_ZCL_SENSING_LIGHT_SENSOR_TYPE_CMOS = 0x1, } EmberAfSensingLightSensorType; +// Enum for SetpointAdjustMode typedef enum { - EMBER_ZCL_SETPOINT_ADJUST_MODE_HEAT_SETPOINT = 0x00, - EMBER_ZCL_SETPOINT_ADJUST_MODE_COOL_SETPOINT = 0x01, - EMBER_ZCL_SETPOINT_ADJUST_MODE_HEAT_AND_COOL_SETPOINTS = 0x02, + EMBER_ZCL_SETPOINT_ADJUST_MODE_HEAT_SETPOINT = 0x0, + EMBER_ZCL_SETPOINT_ADJUST_MODE_COOL_SETPOINT = 0x1, + EMBER_ZCL_SETPOINT_ADJUST_MODE_HEAT_AND_COOL_SETPOINTS = 0x2, } EmberAfSetpointAdjustMode; +// Enum for SignatureType typedef enum { EMBER_ZCL_SIGNATURE_TYPE_RESERVED = 0x00, EMBER_ZCL_SIGNATURE_TYPE_ECDSA = 0x01, } EmberAfSignatureType; +// Enum for SnapshotConfirmation typedef enum { EMBER_ZCL_SNAPSHOT_CONFIRMATION_ACCEPTED = 0x00, EMBER_ZCL_SNAPSHOT_CONFIRMATION_SNAPSHOT_CAUSE_NOT_SUPPORTED = 0x01, } EmberAfSnapshotConfirmation; +// Enum for SnapshotPayloadType typedef enum { EMBER_ZCL_SNAPSHOT_PAYLOAD_TYPE_TOU_INFORMATION_SET_DELIVERED_REGISTERS = 0x00, @@ -2103,6 +2285,7 @@ typedef enum EMBER_ZCL_SNAPSHOT_PAYLOAD_TYPE_DATA_UNAVAILABLE = 0x80, } EmberAfSnapshotPayloadType; +// Enum for SnapshotScheduleConfirmation typedef enum { EMBER_ZCL_SNAPSHOT_SCHEDULE_CONFIRMATION_ACCEPTED = 0x00, @@ -2113,25 +2296,30 @@ typedef enum EMBER_ZCL_SNAPSHOT_SCHEDULE_CONFIRMATION_INSUFFICIENT_SPACE_FOR_SNAPSHOT_SCHEDULE = 0x05, } EmberAfSnapshotScheduleConfirmation; +// Enum for SquawkLevel typedef enum { - EMBER_ZCL_SQUAWK_LEVEL_LOW_LEVEL = 0x00, - EMBER_ZCL_SQUAWK_LEVEL_MEDIUM_LEVEL = 0x01, - EMBER_ZCL_SQUAWK_LEVEL_VERY_HIGH_LEVEL = 0x02, + EMBER_ZCL_SQUAWK_LEVEL_LOW_LEVEL = 0x0, + EMBER_ZCL_SQUAWK_LEVEL_MEDIUM_LEVEL = 0x1, + EMBER_ZCL_SQUAWK_LEVEL_HIGH_LEVEL = 0x2, + EMBER_ZCL_SQUAWK_LEVEL_VERY_HIGH_LEVEL = 0x2, } EmberAfSquawkLevel; +// Enum for SquawkMode typedef enum { - EMBER_ZCL_SQUAWK_MODE_SYSTEM_IS_ARMED = 0x00, - EMBER_ZCL_SQUAWK_MODE_SYSTEM_IS_DISARMED = 0x01, + EMBER_ZCL_SQUAWK_MODE_SYSTEM_IS_ARMED = 0x0, + EMBER_ZCL_SQUAWK_MODE_SYSTEM_IS_DISARMED = 0x1, } EmberAfSquawkMode; +// Enum for SquawkStobe typedef enum { - EMBER_ZCL_SQUAWK_STOBE_NO_STROBE = 0x00, - EMBER_ZCL_SQUAWK_STOBE_USE_STROBE = 0x01, + EMBER_ZCL_SQUAWK_STOBE_NO_STROBE = 0x0, + EMBER_ZCL_SQUAWK_STOBE_USE_STROBE = 0x1, } EmberAfSquawkStobe; +// Enum for StartOfWeek typedef enum { EMBER_ZCL_START_OF_WEEK_SUNDAY = 0x00, @@ -2143,6 +2331,7 @@ typedef enum EMBER_ZCL_START_OF_WEEK_SATURDAY = 0x06, } EmberAfStartOfWeek; +// Enum for StartUpOnOffValue typedef enum { EMBER_ZCL_START_UP_ON_OFF_VALUE_SET_TO_OFF = 0x00, @@ -2151,55 +2340,52 @@ typedef enum EMBER_ZCL_START_UP_ON_OFF_VALUE_SET_TO_PREVIOUS = 0xFF, } EmberAfStartUpOnOffValue; -typedef enum -{ - EMBER_ZCL_STATUS_SUCCESS = 0x00, - EMBER_ZCL_STATUS_FAILURE = 0x01, - EMBER_ZCL_STATUS_REQUEST_DENIED = 0x70, - EMBER_ZCL_STATUS_MULTIPLE_REQUEST_NOT_ALLOWED = 0x71, - EMBER_ZCL_STATUS_INDICATION_REDIRECTION_TO_AP = 0x72, - EMBER_ZCL_STATUS_PREFERENCE_DENIED = 0x73, - EMBER_ZCL_STATUS_PREFERENCE_IGNORED = 0x74, - EMBER_ZCL_STATUS_NOT_AUTHORIZED = 0x7E, - EMBER_ZCL_STATUS_RESERVED_FIELD_NOT_ZERO = 0x7F, - EMBER_ZCL_STATUS_MALFORMED_COMMAND = 0x80, - EMBER_ZCL_STATUS_UNSUP_CLUSTER_COMMAND = 0x81, - EMBER_ZCL_STATUS_UNSUP_GENERAL_COMMAND = 0x82, - EMBER_ZCL_STATUS_UNSUP_MANUF_CLUSTER_COMMAND = 0x83, - EMBER_ZCL_STATUS_UNSUP_MANUF_GENERAL_COMMAND = 0x84, - EMBER_ZCL_STATUS_INVALID_FIELD = 0x85, - EMBER_ZCL_STATUS_UNSUPPORTED_ATTRIBUTE = 0x86, - EMBER_ZCL_STATUS_INVALID_VALUE = 0x87, - EMBER_ZCL_STATUS_READ_ONLY = 0x88, - EMBER_ZCL_STATUS_INSUFFICIENT_SPACE = 0x89, - EMBER_ZCL_STATUS_DUPLICATE_EXISTS = 0x8A, - EMBER_ZCL_STATUS_NOT_FOUND = 0x8B, - EMBER_ZCL_STATUS_UNREPORTABLE_ATTRIBUTE = 0x8C, - EMBER_ZCL_STATUS_INVALID_DATA_TYPE = 0x8D, - EMBER_ZCL_STATUS_INVALID_SELECTOR = 0x8E, - EMBER_ZCL_STATUS_WRITE_ONLY = 0x8F, - EMBER_ZCL_STATUS_INCONSISTENT_STARTUP_STATE = 0x90, - EMBER_ZCL_STATUS_DEFINED_OUT_OF_BAND = 0x91, - EMBER_ZCL_STATUS_INCONSISTENT = 0x92, - EMBER_ZCL_STATUS_ACTION_DENIED = 0x93, - EMBER_ZCL_STATUS_TIMEOUT = 0x94, - EMBER_ZCL_STATUS_ABORT = 0x95, - EMBER_ZCL_STATUS_INVALID_IMAGE = 0x96, - EMBER_ZCL_STATUS_WAIT_FOR_DATA = 0x97, - EMBER_ZCL_STATUS_NO_IMAGE_AVAILABLE = 0x98, - EMBER_ZCL_STATUS_REQUIRE_MORE_IMAGE = 0x99, - EMBER_ZCL_STATUS_HARDWARE_FAILURE = 0xC0, - EMBER_ZCL_STATUS_SOFTWARE_FAILURE = 0xC1, - EMBER_ZCL_STATUS_CALIBRATION_ERROR = 0xC2, - EMBER_ZCL_STATUS_UNSUPPORTED_CLUSTER = 0xC3, +// Enum for Status +typedef enum +{ + EMBER_ZCL_STATUS_SUCCESS = 0x00, + EMBER_ZCL_STATUS_FAILURE = 0x01, + EMBER_ZCL_STATUS_NOT_AUTHORIZED = 0x7E, + EMBER_ZCL_STATUS_MALFORMED_COMMAND = 0x80, + EMBER_ZCL_STATUS_UNSUP_COMMAND = 0x81, + EMBER_ZCL_STATUS_UNSUP_GENERAL_COMMAND = 0x82, + EMBER_ZCL_STATUS_UNSUP_MANUF_CLUSTER_COMMAND = 0x83, + EMBER_ZCL_STATUS_UNSUP_MANUF_GENERAL_COMMAND = 0x84, + EMBER_ZCL_STATUS_INVALID_FIELD = 0x85, + EMBER_ZCL_STATUS_UNSUPPORTED_ATTRIBUTE = 0x86, + EMBER_ZCL_STATUS_INVALID_VALUE = 0x87, + EMBER_ZCL_STATUS_READ_ONLY = 0x88, + EMBER_ZCL_STATUS_INSUFFICIENT_SPACE = 0x89, + EMBER_ZCL_STATUS_DUPLICATE_EXISTS = 0x8A, + EMBER_ZCL_STATUS_NOT_FOUND = 0x8B, + EMBER_ZCL_STATUS_UNREPORTABLE_ATTRIBUTE = 0x8C, + EMBER_ZCL_STATUS_INVALID_DATA_TYPE = 0x8D, + EMBER_ZCL_STATUS_INVALID_SELECTOR = 0x8E, + EMBER_ZCL_STATUS_WRITE_ONLY = 0x8F, + EMBER_ZCL_STATUS_INCONSISTENT_STARTUP_STATE = 0x90, + EMBER_ZCL_STATUS_DEFINED_OUT_OF_BAND = 0x91, + EMBER_ZCL_STATUS_ACTION_DENIED = 0x93, + EMBER_ZCL_STATUS_TIMEOUT = 0x94, + EMBER_ZCL_STATUS_ABORT = 0x95, + EMBER_ZCL_STATUS_INVALID_IMAGE = 0x96, + EMBER_ZCL_STATUS_WAIT_FOR_DATA = 0x97, + EMBER_ZCL_STATUS_NO_IMAGE_AVAILABLE = 0x98, + EMBER_ZCL_STATUS_REQUIRE_MORE_IMAGE = 0x99, + EMBER_ZCL_STATUS_NOTIFICATION_PENDING = 0x9A, + EMBER_ZCL_STATUS_HARDWARE_FAILURE = 0xC0, + EMBER_ZCL_STATUS_SOFTWARE_FAILURE = 0xC1, + EMBER_ZCL_STATUS_UNSUPPORTED_CLUSTER = 0xC3, + EMBER_ZCL_STATUS_LIMIT_REACHED = 0xC4, } EmberAfStatus; +// Enum for StepMode typedef enum { - EMBER_ZCL_STEP_MODE_UP = 0x00, - EMBER_ZCL_STEP_MODE_DOWN = 0x01, + EMBER_ZCL_STEP_MODE_UP = 0x0, + EMBER_ZCL_STEP_MODE_DOWN = 0x1, } EmberAfStepMode; +// Enum for SupplyStatus typedef enum { EMBER_ZCL_SUPPLY_STATUS_SUPPLY_OFF = 0x00, @@ -2208,13 +2394,15 @@ typedef enum EMBER_ZCL_SUPPLY_STATUS_SUPPLY_UNCHANGED = 0x03, } EmberAfSupplyStatus; +// Enum for SwitchActions typedef enum { - EMBER_ZCL_SWITCH_ACTIONS_ON = 0x00, - EMBER_ZCL_SWITCH_ACTIONS_OFF = 0x01, - EMBER_ZCL_SWITCH_ACTIONS_TOGGLE = 0x02, + EMBER_ZCL_SWITCH_ACTIONS_ON = 0x0, + EMBER_ZCL_SWITCH_ACTIONS_OFF = 0x1, + EMBER_ZCL_SWITCH_ACTIONS_TOGGLE = 0x2, } EmberAfSwitchActions; +// Enum for SwitchType typedef enum { EMBER_ZCL_SWITCH_TYPE_TOGGLE = 0x00, @@ -2222,6 +2410,7 @@ typedef enum EMBER_ZCL_SWITCH_TYPE_MULTI_FUNCTION = 0x02, } EmberAfSwitchType; +// Enum for TariffChargingScheme typedef enum { EMBER_ZCL_TARIFF_CHARGING_SCHEME_TOU_TARIFF = 0x00, @@ -2230,6 +2419,7 @@ typedef enum EMBER_ZCL_TARIFF_CHARGING_SCHEME_BLOCK_TOU_TARIFF_WITH_INDIVIDUAL_THRESHOLDS_PER_TIER = 0x30, } EmberAfTariffChargingScheme; +// Enum for TariffResolutionPeriod typedef enum { EMBER_ZCL_TARIFF_RESOLUTION_PERIOD_NOT_DEFINED = 0x00, @@ -2237,6 +2427,7 @@ typedef enum EMBER_ZCL_TARIFF_RESOLUTION_PERIOD_ONE_DAY = 0x02, } EmberAfTariffResolutionPeriod; +// Enum for TariffType typedef enum { EMBER_ZCL_TARIFF_TYPE_DELIVERED_TARIFF = 0x00, @@ -2244,28 +2435,32 @@ typedef enum EMBER_ZCL_TARIFF_TYPE_DELIVERED_AND_RECEIVED_TARIFF = 0x02, } EmberAfTariffType; +// Enum for TemperatureDisplayMode typedef enum { - EMBER_ZCL_TEMPERATURE_DISPLAY_MODE_CELSIUS = 0x00, - EMBER_ZCL_TEMPERATURE_DISPLAY_MODE_FAHRENHEIT = 0x01, + EMBER_ZCL_TEMPERATURE_DISPLAY_MODE_CELSIUS = 0x0, + EMBER_ZCL_TEMPERATURE_DISPLAY_MODE_FAHRENHEIT = 0x1, } EmberAfTemperatureDisplayMode; +// Enum for TemperatureSetpointHold typedef enum { EMBER_ZCL_TEMPERATURE_SETPOINT_HOLD_SETPOINT_HOLD_OFF = 0x00, EMBER_ZCL_TEMPERATURE_SETPOINT_HOLD_SETPOINT_HOLD_ON = 0x01, } EmberAfTemperatureSetpointHold; +// Enum for ThermostatControlSequence typedef enum { - EMBER_ZCL_THERMOSTAT_CONTROL_SEQUENCE_COOLING_ONLY = 0x00, - EMBER_ZCL_THERMOSTAT_CONTROL_SEQUENCE_COOLING_WITH_REHEAT = 0x01, - EMBER_ZCL_THERMOSTAT_CONTROL_SEQUENCE_HEATING_ONLY = 0x02, - EMBER_ZCL_THERMOSTAT_CONTROL_SEQUENCE_HEATING_WITH_REHEAT = 0x03, - EMBER_ZCL_THERMOSTAT_CONTROL_SEQUENCE_COOLING_AND_HEATING = 0x04, - EMBER_ZCL_THERMOSTAT_CONTROL_SEQUENCE_COOLING_AND_HEATING_WITH_REHEAT = 0x05, + EMBER_ZCL_THERMOSTAT_CONTROL_SEQUENCE_COOLING_ONLY = 0x0, + EMBER_ZCL_THERMOSTAT_CONTROL_SEQUENCE_COOLING_WITH_REHEAT = 0x1, + EMBER_ZCL_THERMOSTAT_CONTROL_SEQUENCE_HEATING_ONLY = 0x2, + EMBER_ZCL_THERMOSTAT_CONTROL_SEQUENCE_HEATING_WITH_REHEAT = 0x3, + EMBER_ZCL_THERMOSTAT_CONTROL_SEQUENCE_COOLING_AND_HEATING = 0x4, + EMBER_ZCL_THERMOSTAT_CONTROL_SEQUENCE_COOLING_AND_HEATING_WITH_REHEAT = 0x5, } EmberAfThermostatControlSequence; +// Enum for ThermostatRunningMode typedef enum { EMBER_ZCL_THERMOSTAT_RUNNING_MODE_OFF = 0x00, @@ -2273,17 +2468,19 @@ typedef enum EMBER_ZCL_THERMOSTAT_RUNNING_MODE_HEAT = 0x04, } EmberAfThermostatRunningMode; +// Enum for ThermostatSystemMode typedef enum { - EMBER_ZCL_THERMOSTAT_SYSTEM_MODE_OFF = 0x00, - EMBER_ZCL_THERMOSTAT_SYSTEM_MODE_AUTO = 0x01, - EMBER_ZCL_THERMOSTAT_SYSTEM_MODE_COOL = 0x03, - EMBER_ZCL_THERMOSTAT_SYSTEM_MODE_HEAT = 0x04, - EMBER_ZCL_THERMOSTAT_SYSTEM_MODE_EMERGENCY_HEATING = 0x05, - EMBER_ZCL_THERMOSTAT_SYSTEM_MODE_PRECOOLING = 0x06, - EMBER_ZCL_THERMOSTAT_SYSTEM_MODE_FAN_ONLY = 0x07, + EMBER_ZCL_THERMOSTAT_SYSTEM_MODE_OFF = 0x0, + EMBER_ZCL_THERMOSTAT_SYSTEM_MODE_AUTO = 0x1, + EMBER_ZCL_THERMOSTAT_SYSTEM_MODE_COOL = 0x3, + EMBER_ZCL_THERMOSTAT_SYSTEM_MODE_HEAT = 0x4, + EMBER_ZCL_THERMOSTAT_SYSTEM_MODE_EMERGENCY_HEATING = 0x5, + EMBER_ZCL_THERMOSTAT_SYSTEM_MODE_PRECOOLING = 0x6, + EMBER_ZCL_THERMOSTAT_SYSTEM_MODE_FAN_ONLY = 0x7, } EmberAfThermostatSystemMode; +// Enum for TierBlockMode typedef enum { EMBER_ZCL_TIER_BLOCK_MODE_ACTIVE_BLOCK = 0x00, @@ -2292,12 +2489,14 @@ typedef enum EMBER_ZCL_TIER_BLOCK_MODE_NOT_USED = 0xFF, } EmberAfTierBlockMode; +// Enum for TimeEncoding typedef enum { EMBER_ZCL_TIME_ENCODING_RELATIVE = 0x00, EMBER_ZCL_TIME_ENCODING_ABSOLUTE = 0x40, } EmberAfTimeEncoding; +// Enum for TunnelingProtocolId typedef enum { EMBER_ZCL_TUNNELING_PROTOCOL_ID_DLMS_COSEM = 0x00, @@ -2307,9 +2506,12 @@ typedef enum EMBER_ZCL_TUNNELING_PROTOCOL_ID_SML = 0x04, EMBER_ZCL_TUNNELING_PROTOCOL_ID_CLIMATE_TALK = 0x05, EMBER_ZCL_TUNNELING_PROTOCOL_ID_GB_HRGP = 0x06, + EMBER_ZCL_TUNNELING_PROTOCOL_ID_IP_V4 = 0x07, + EMBER_ZCL_TUNNELING_PROTOCOL_ID_IP_V6 = 0x08, EMBER_ZCL_TUNNELING_PROTOCOL_ID_TEST = 0xC7, } EmberAfTunnelingProtocolId; +// Enum for TunnelingTransferDataStatus typedef enum { EMBER_ZCL_TUNNELING_TRANSFER_DATA_STATUS_NO_SUCH_TUNNEL = 0x00, @@ -2317,6 +2519,7 @@ typedef enum EMBER_ZCL_TUNNELING_TRANSFER_DATA_STATUS_DATA_OVERFLOW = 0x02, } EmberAfTunnelingTransferDataStatus; +// Enum for TunnelingTunnelStatus typedef enum { EMBER_ZCL_TUNNELING_TUNNEL_STATUS_SUCCESS = 0x00, @@ -2326,12 +2529,14 @@ typedef enum EMBER_ZCL_TUNNELING_TUNNEL_STATUS_FLOW_CONTROL_NOT_SUPPORTED = 0x04, } EmberAfTunnelingTunnelStatus; +// Enum for WanStatus typedef enum { EMBER_ZCL_WAN_STATUS_CONNECTION_TO_WAN_IS_NOT_AVAILABLE = 0x00, EMBER_ZCL_WAN_STATUS_CONNECTION_TO_WAN_IS_AVAILABLE = 0x01, } EmberAfWanStatus; +// Enum for WarningEvent typedef enum { EMBER_ZCL_WARNING_EVENT_WARNING1_OVERALL_POWER_ABOVE_AVAILABLE_POWER_LEVEL = 0x00, @@ -2341,23 +2546,26 @@ typedef enum EMBER_ZCL_WARNING_EVENT_WARNING5_OVERALL_POWER_WILL_BE_POTENTIALLY_ABOVE_AVAILABLE_POWER_LEVEL_IF_THE_APPLIANCE_STARTS = 0x04, } EmberAfWarningEvent; +// Enum for WarningMode typedef enum { - EMBER_ZCL_WARNING_MODE_STOP = 0x00, - EMBER_ZCL_WARNING_MODE_BURGLAR = 0x01, - EMBER_ZCL_WARNING_MODE_FIRE = 0x02, - EMBER_ZCL_WARNING_MODE_EMERGENCY = 0x03, - EMBER_ZCL_WARNING_MODE_POLICE_PANIC = 0x04, - EMBER_ZCL_WARNING_MODE_FIRE_PANIC = 0x05, - EMBER_ZCL_WARNING_MODE_EMERGENCY_PANIC = 0x06, + EMBER_ZCL_WARNING_MODE_STOP = 0x0, + EMBER_ZCL_WARNING_MODE_BURGLAR = 0x1, + EMBER_ZCL_WARNING_MODE_FIRE = 0x2, + EMBER_ZCL_WARNING_MODE_EMERGENCY = 0x3, + EMBER_ZCL_WARNING_MODE_POLICE_PANIC = 0x4, + EMBER_ZCL_WARNING_MODE_FIRE_PANIC = 0x5, + EMBER_ZCL_WARNING_MODE_EMERGENCY_PANIC = 0x6, } EmberAfWarningMode; +// Enum for WarningStobe typedef enum { - EMBER_ZCL_WARNING_STOBE_NO_STROBE = 0x00, - EMBER_ZCL_WARNING_STOBE_USE_STROBE = 0x01, + EMBER_ZCL_WARNING_STOBE_NO_STROBE = 0x0, + EMBER_ZCL_WARNING_STOBE_USE_STROBE = 0x1, } EmberAfWarningStobe; +// Enum for WwahIasZoneEnrollmentMode typedef enum { EMBER_ZCL_WWAH_IAS_ZONE_ENROLLMENT_MODE_TRIP_TO_PAIR = 0x00, @@ -2365,6 +2573,7 @@ typedef enum EMBER_ZCL_WWAH_IAS_ZONE_ENROLLMENT_MODE_REQUEST = 0x02, } EmberAfWwahIasZoneEnrollmentMode; +// Enum for WwahPowerNotificationReason typedef enum { EMBER_ZCL_WWAH_POWER_NOTIFICATION_REASON_UNKNOWN = 0x00, @@ -2381,6 +2590,7 @@ typedef enum EMBER_ZCL_WWAH_POWER_NOTIFICATION_REASON_BOOTLOAD_FAILURE = 0x0B, } EmberAfWwahPowerNotificationReason; +// Enum for ZigbeeInformationLogicalType typedef enum { EMBER_ZCL_ZIGBEE_INFORMATION_LOGICAL_TYPE_COORDINATOR = 0x00, @@ -2388,308 +2598,35 @@ typedef enum EMBER_ZCL_ZIGBEE_INFORMATION_LOGICAL_TYPE_END_DEVICE = 0x02, } EmberAfZigbeeInformationLogicalType; +// Enum for ZllStatus typedef enum { EMBER_ZCL_ZLL_STATUS_SUCCESS = 0x00, EMBER_ZCL_ZLL_STATUS_FAILURE = 0x01, } EmberAfZllStatus; -#define EMBER_AF_SHADE_CLOSURE_STATUS_OPERATIONAL (0x01) -#define EMBER_AF_SHADE_CLOSURE_STATUS_ADJUSTING (0x02) -#define EMBER_AF_SHADE_CLOSURE_STATUS_ADJUSTING_OFFSET (1) -#define EMBER_AF_SHADE_CLOSURE_STATUS_OPENING (0x04) -#define EMBER_AF_SHADE_CLOSURE_STATUS_OPENING_OFFSET (2) -#define EMBER_AF_SHADE_CLOSURE_STATUS_MOTOR_OPENING (0x08) -#define EMBER_AF_SHADE_CLOSURE_STATUS_MOTOR_OPENING_OFFSET (3) -#define EMBER_AF_ALARM_MASK_GENERAL_HW_FAULT (0x01) -#define EMBER_AF_ALARM_MASK_GENERAL_SW_FAULT (0x02) +#define EMBER_AF_ALARM_MASK_GENERAL_HW_FAULT (0x1) +#define EMBER_AF_ALARM_MASK_GENERAL_HW_FAULT_OFFSET (0) +#define EMBER_AF_ALARM_MASK_GENERAL_SW_FAULT (0x2) #define EMBER_AF_ALARM_MASK_GENERAL_SW_FAULT_OFFSET (1) -#define EMBER_AF_RESTART_OPTIONS_START_MODE1 (0x01) -#define EMBER_AF_RESTART_OPTIONS_STARTUP_MODE2 (0x02) -#define EMBER_AF_RESTART_OPTIONS_STARTUP_MODE2_OFFSET (1) -#define EMBER_AF_RESTART_OPTIONS_STARTUP_MODE3 (0x04) -#define EMBER_AF_RESTART_OPTIONS_STARTUP_MODE3_OFFSET (2) -#define EMBER_AF_RESTART_OPTIONS_IMMEDIATE (0x08) -#define EMBER_AF_RESTART_OPTIONS_IMMEDIATE_OFFSET (3) -#define EMBER_AF_RESET_OPTIONS_RESET_CURRENT (0x01) -#define EMBER_AF_RESET_OPTIONS_RESET_ALL (0x02) -#define EMBER_AF_RESET_OPTIONS_RESET_ALL_OFFSET (1) -#define EMBER_AF_RESET_OPTIONS_ERASE_INDEX (0x04) -#define EMBER_AF_RESET_OPTIONS_ERASE_INDEX_OFFSET (2) -#define EMBER_AF_MAINS_ALARM_MASK_VOLTAGE_TOO_LOW (0x01) -#define EMBER_AF_MAINS_ALARM_MASK_VOLTAGE_TOO_HIGH (0x02) -#define EMBER_AF_MAINS_ALARM_MASK_VOLTAGE_TOO_HIGH_OFFSET (1) -#define EMBER_AF_MAINS_ALARM_MASK_MAINS_POWER_SUPPLY_LOST (0x04) -#define EMBER_AF_MAINS_ALARM_MASK_MAINS_POWER_SUPPLY_LOST_OFFSET (2) -#define EMBER_AF_BATTERY_ALARM_MASK_VOLTAGE_TOO_LOW (0x01) -#define EMBER_AF_DEVICE_TEMP_ALARM_MASK_TOO_LOW (0x01) -#define EMBER_AF_DEVICE_TEMP_ALARM_MASK_TOO_HIGH (0x02) -#define EMBER_AF_DEVICE_TEMP_ALARM_MASK_TOO_HIGH_OFFSET (1) -#define EMBER_AF_TIME_STATUS_MASK_MASTER_CLOCK (0x01) -#define EMBER_AF_TIME_STATUS_MASK_SYNCHRONIZED (0x02) -#define EMBER_AF_TIME_STATUS_MASK_SYNCHRONIZED_OFFSET (1) -#define EMBER_AF_TIME_STATUS_MASK_MASTER_ZONE_DST (0x04) -#define EMBER_AF_TIME_STATUS_MASK_MASTER_ZONE_DST_OFFSET (2) -#define EMBER_AF_TIME_STATUS_MASK_SUPERSEDING (0x08) -#define EMBER_AF_TIME_STATUS_MASK_SUPERSEDING_OFFSET (3) -#define EMBER_AF_LOCATION_TYPE_ABSOLUTE (0x01) -#define EMBER_AF_LOCATION_TYPE2_D (0x02) -#define EMBER_AF_LOCATION_TYPE2_D_OFFSET (1) -#define EMBER_AF_LOCATION_TYPE_COORDINATE_SYSTEM (0x0C) -#define EMBER_AF_LOCATION_TYPE_COORDINATE_SYSTEM_OFFSET (2) -#define EMBER_AF_GET_LOCATION_DATA_FLAGS_ABSOLUTE_ONLY (0x01) -#define EMBER_AF_GET_LOCATION_DATA_FLAGS_RECALCULATE (0x02) -#define EMBER_AF_GET_LOCATION_DATA_FLAGS_RECALCULATE_OFFSET (1) -#define EMBER_AF_GET_LOCATION_DATA_FLAGS_BROADCAST (0x04) -#define EMBER_AF_GET_LOCATION_DATA_FLAGS_BROADCAST_OFFSET (2) -#define EMBER_AF_GET_LOCATION_DATA_FLAGS_BROADCAST_RESPONSE (0x08) -#define EMBER_AF_GET_LOCATION_DATA_FLAGS_BROADCAST_RESPONSE_OFFSET (3) -#define EMBER_AF_GET_LOCATION_DATA_FLAGS_COMPACT_RESPONSE (0x10) -#define EMBER_AF_GET_LOCATION_DATA_FLAGS_COMPACT_RESPONSE_OFFSET (4) -#define EMBER_AF_PUMP_STATUS_DEVICE_FAULT (0x0001) -#define EMBER_AF_PUMP_STATUS_SUPPLYFAULT (0x0002) -#define EMBER_AF_PUMP_STATUS_SUPPLYFAULT_OFFSET (1) -#define EMBER_AF_PUMP_STATUS_SPEED_LOW (0x0004) -#define EMBER_AF_PUMP_STATUS_SPEED_LOW_OFFSET (2) -#define EMBER_AF_PUMP_STATUS_SPEED_HIGH (0x0008) -#define EMBER_AF_PUMP_STATUS_SPEED_HIGH_OFFSET (3) -#define EMBER_AF_PUMP_STATUS_LOCAL_OVERRIDE (0x0010) -#define EMBER_AF_PUMP_STATUS_LOCAL_OVERRIDE_OFFSET (4) -#define EMBER_AF_PUMP_STATUS_RUNNING (0x0020) -#define EMBER_AF_PUMP_STATUS_RUNNING_OFFSET (5) -#define EMBER_AF_PUMP_STATUS_REMOTE_PRESSURE (0x0040) -#define EMBER_AF_PUMP_STATUS_REMOTE_PRESSURE_OFFSET (6) -#define EMBER_AF_PUMP_STATUS_REMOTE_FLOW (0x0080) -#define EMBER_AF_PUMP_STATUS_REMOTE_FLOW_OFFSET (7) -#define EMBER_AF_PUMP_STATUS_REMOTE_TEMPERATURE (0x0100) -#define EMBER_AF_PUMP_STATUS_REMOTE_TEMPERATURE_OFFSET (8) -#define EMBER_AF_PUMP_ALARM_MASK_SUPPLY_VOLTAGE_TOO_LOW (0x0001) -#define EMBER_AF_PUMP_ALARM_MASK_SUPPLY_VOLTAGE_TOO_HIGH (0x0002) -#define EMBER_AF_PUMP_ALARM_MASK_SUPPLY_VOLTAGE_TOO_HIGH_OFFSET (1) -#define EMBER_AF_PUMP_ALARM_MASK_POWER_MISSING_PHASE (0x0004) -#define EMBER_AF_PUMP_ALARM_MASK_POWER_MISSING_PHASE_OFFSET (2) -#define EMBER_AF_PUMP_ALARM_MASK_SYSTEM_PRESSURE_TOO_LOW (0x0008) -#define EMBER_AF_PUMP_ALARM_MASK_SYSTEM_PRESSURE_TOO_LOW_OFFSET (3) -#define EMBER_AF_PUMP_ALARM_MASK_SYSTEM_PRESSURE_TOO_HIGH (0x0010) -#define EMBER_AF_PUMP_ALARM_MASK_SYSTEM_PRESSURE_TOO_HIGH_OFFSET (4) -#define EMBER_AF_PUMP_ALARM_MASK_DRY_RUNNING (0x0020) -#define EMBER_AF_PUMP_ALARM_MASK_DRY_RUNNING_OFFSET (5) -#define EMBER_AF_PUMP_ALARM_MASK_MOTOR_TEMPERATURE_TOO_HIGH (0x0040) -#define EMBER_AF_PUMP_ALARM_MASK_MOTOR_TEMPERATURE_TOO_HIGH_OFFSET (6) -#define EMBER_AF_PUMP_ALARM_MASK_PUMP_MOTOR_HAS_FATAL_FAILURE (0x0080) -#define EMBER_AF_PUMP_ALARM_MASK_PUMP_MOTOR_HAS_FATAL_FAILURE_OFFSET (7) -#define EMBER_AF_PUMP_ALARM_MASK_ELECTRONIC_TEMPERATURE_TOO_HIGH (0x0100) -#define EMBER_AF_PUMP_ALARM_MASK_ELECTRONIC_TEMPERATURE_TOO_HIGH_OFFSET (8) -#define EMBER_AF_PUMP_ALARM_MASK_PUMP_BLOCKED (0x0200) -#define EMBER_AF_PUMP_ALARM_MASK_PUMP_BLOCKED_OFFSET (9) -#define EMBER_AF_PUMP_ALARM_MASK_SENSOR_FAILURE (0x0400) -#define EMBER_AF_PUMP_ALARM_MASK_SENSOR_FAILURE_OFFSET (10) -#define EMBER_AF_PUMP_ALARM_MASK_ELECTRONIC_NON_FATAL_FAILURE (0x0800) -#define EMBER_AF_PUMP_ALARM_MASK_ELECTRONIC_NON_FATAL_FAILURE_OFFSET (11) -#define EMBER_AF_PUMP_ALARM_MASK_ELECTRONIC_FATAL_FAILURE (0x1000) -#define EMBER_AF_PUMP_ALARM_MASK_ELECTRONIC_FATAL_FAILURE_OFFSET (12) -#define EMBER_AF_PUMP_ALARM_MASK_GENERAL_FAULT (0x2000) -#define EMBER_AF_PUMP_ALARM_MASK_GENERAL_FAULT_OFFSET (13) -#define EMBER_AF_THERMOSTAT_OCCUPANCY_OCCUPIED (0x01) -#define EMBER_AF_THERMOSTAT_SENSING_LOCAL_TEMP_SENSED_REMOTELY (0x01) -#define EMBER_AF_THERMOSTAT_SENSING_OUTDOOR_TEMP_SENSED_REMOTELY (0x02) -#define EMBER_AF_THERMOSTAT_SENSING_OUTDOOR_TEMP_SENSED_REMOTELY_OFFSET (1) -#define EMBER_AF_THERMOSTAT_SENSING_OCCUPANCY_SENSED_REMOTELY (0x04) -#define EMBER_AF_THERMOSTAT_SENSING_OCCUPANCY_SENSED_REMOTELY_OFFSET (2) -#define EMBER_AF_THERMOSTAT_ALARM_MASK_INITIALIZATION_FAILURE (0x01) -#define EMBER_AF_THERMOSTAT_ALARM_MASK_HARDWARE_FAILURE (0x02) -#define EMBER_AF_THERMOSTAT_ALARM_MASK_HARDWARE_FAILURE_OFFSET (1) -#define EMBER_AF_THERMOSTAT_ALARM_MASK_SELFCALIBRATION_FAILURE (0x04) -#define EMBER_AF_THERMOSTAT_ALARM_MASK_SELFCALIBRATION_FAILURE_OFFSET (2) -#define EMBER_AF_BALLAST_STATUS_NON_OPERATIONAL (0x01) -#define EMBER_AF_BALLAST_STATUS_LAMP_NOT_IN_SOCKET (0x02) -#define EMBER_AF_BALLAST_STATUS_LAMP_NOT_IN_SOCKET_OFFSET (1) -#define EMBER_AF_LAMP_ALARM_MODE_LAMP_BURN_HOURS (0x01) -#define EMBER_AF_OCCUPANCY_OCCUPIED (0x01) -#define EMBER_AF_IAS_ZONE_STATUS_ALARM1 (0x0001) -#define EMBER_AF_IAS_ZONE_STATUS_ALARM2 (0x0002) -#define EMBER_AF_IAS_ZONE_STATUS_ALARM2_OFFSET (1) -#define EMBER_AF_IAS_ZONE_STATUS_TAMPER (0x0004) -#define EMBER_AF_IAS_ZONE_STATUS_TAMPER_OFFSET (2) -#define EMBER_AF_IAS_ZONE_STATUS_BATTERY (0x0008) -#define EMBER_AF_IAS_ZONE_STATUS_BATTERY_OFFSET (3) -#define EMBER_AF_IAS_ZONE_STATUS_SUPERVISION_REPORTS (0x0010) -#define EMBER_AF_IAS_ZONE_STATUS_SUPERVISION_REPORTS_OFFSET (4) -#define EMBER_AF_IAS_ZONE_STATUS_RESTORE_REPORTS (0x0020) -#define EMBER_AF_IAS_ZONE_STATUS_RESTORE_REPORTS_OFFSET (5) -#define EMBER_AF_IAS_ZONE_STATUS_TROUBLE (0x0040) -#define EMBER_AF_IAS_ZONE_STATUS_TROUBLE_OFFSET (6) -#define EMBER_AF_IAS_ZONE_STATUS_A_C (0x0080) -#define EMBER_AF_IAS_ZONE_STATUS_A_C_OFFSET (7) -#define EMBER_AF_IAS_ZONE_STATUS_TEST (0x0100) -#define EMBER_AF_IAS_ZONE_STATUS_TEST_OFFSET (8) -#define EMBER_AF_IAS_ZONE_STATUS_BATTERY_DEFECT (0x0200) -#define EMBER_AF_IAS_ZONE_STATUS_BATTERY_DEFECT_OFFSET (9) -#define EMBER_AF_WARNING_INFO_MODE (0xF0) -#define EMBER_AF_WARNING_INFO_MODE_OFFSET (4) -#define EMBER_AF_WARNING_INFO_STROBE (0x0C) -#define EMBER_AF_WARNING_INFO_STROBE_OFFSET (2) -#define EMBER_AF_WARNING_INFO_SIREN_LEVEL (0x03) -#define EMBER_AF_SQUAWK_INFO_MODE (0xF0) -#define EMBER_AF_SQUAWK_INFO_MODE_OFFSET (4) -#define EMBER_AF_SQUAWK_INFO_STROBE (0x08) -#define EMBER_AF_SQUAWK_INFO_STROBE_OFFSET (3) -#define EMBER_AF_SQUAWK_INFO_LEVEL (0x03) -#define EMBER_AF_OCCUPANCY_SENSOR_TYPE_BITMAP_PIR (0x01) -#define EMBER_AF_OCCUPANCY_SENSOR_TYPE_BITMAP_ULTRASONIC (0x02) -#define EMBER_AF_OCCUPANCY_SENSOR_TYPE_BITMAP_ULTRASONIC_OFFSET (1) -#define EMBER_AF_OCCUPANCY_SENSOR_TYPE_BITMAP_PHYSICAL_CONTACT (0x04) -#define EMBER_AF_OCCUPANCY_SENSOR_TYPE_BITMAP_PHYSICAL_CONTACT_OFFSET (2) -#define EMBER_AF_ENERGY_FORMATTING_NUMBER_OF_DIGITS_TO_THE_RIGHT_OF_THE_DECIMAL_POINT (0x07) -#define EMBER_AF_ENERGY_FORMATTING_NUMBER_OF_DIGITS_TO_THE_LEFT_OF_THE_DECIMAL_POINT (0x78) -#define EMBER_AF_ENERGY_FORMATTING_NUMBER_OF_DIGITS_TO_THE_LEFT_OF_THE_DECIMAL_POINT_OFFSET (3) -#define EMBER_AF_ENERGY_FORMATTING_SUPPRESS_LEADING_ZEROS (0x80) -#define EMBER_AF_ENERGY_FORMATTING_SUPPRESS_LEADING_ZEROS_OFFSET (7) -#define EMBER_AF_REMOTE_ENABLE_FLAGS_AND_DEVICE_STATUS2_REMOTE_ENABLE_FLAGS (0x0F) -#define EMBER_AF_REMOTE_ENABLE_FLAGS_AND_DEVICE_STATUS2_DEVICE_STATUS2_STRUCTURE (0xF0) -#define EMBER_AF_REMOTE_ENABLE_FLAGS_AND_DEVICE_STATUS2_DEVICE_STATUS2_STRUCTURE_OFFSET (4) -#define EMBER_AF_START_TIME_MINUTES (0x003F) -#define EMBER_AF_START_TIME_TIME_ENCODING (0x00C0) -#define EMBER_AF_START_TIME_TIME_ENCODING_OFFSET (6) -#define EMBER_AF_START_TIME_HOURS (0xFF00) -#define EMBER_AF_START_TIME_HOURS_OFFSET (8) -#define EMBER_AF_DOOR_LOCK_DAY_OF_WEEK_SUNDAY (0x01) -#define EMBER_AF_DOOR_LOCK_DAY_OF_WEEK_MONDAY (0x02) -#define EMBER_AF_DOOR_LOCK_DAY_OF_WEEK_MONDAY_OFFSET (1) -#define EMBER_AF_DOOR_LOCK_DAY_OF_WEEK_TUESDAY (0x04) -#define EMBER_AF_DOOR_LOCK_DAY_OF_WEEK_TUESDAY_OFFSET (2) -#define EMBER_AF_DOOR_LOCK_DAY_OF_WEEK_WEDNESDAY (0x08) -#define EMBER_AF_DOOR_LOCK_DAY_OF_WEEK_WEDNESDAY_OFFSET (3) -#define EMBER_AF_DOOR_LOCK_DAY_OF_WEEK_THURSDAY (0x10) -#define EMBER_AF_DOOR_LOCK_DAY_OF_WEEK_THURSDAY_OFFSET (4) -#define EMBER_AF_DOOR_LOCK_DAY_OF_WEEK_FRIDAY (0x20) -#define EMBER_AF_DOOR_LOCK_DAY_OF_WEEK_FRIDAY_OFFSET (5) -#define EMBER_AF_DOOR_LOCK_DAY_OF_WEEK_SATURDAY (0x40) -#define EMBER_AF_DOOR_LOCK_DAY_OF_WEEK_SATURDAY_OFFSET (6) -#define EMBER_AF_THERMOSTAT_RUNNING_STATE_HEAT_STATE_ON (0x0001) -#define EMBER_AF_THERMOSTAT_RUNNING_STATE_COOL_STATE_ON (0x0002) -#define EMBER_AF_THERMOSTAT_RUNNING_STATE_COOL_STATE_ON_OFFSET (1) -#define EMBER_AF_THERMOSTAT_RUNNING_STATE_FAN_STATE_ON (0x0004) -#define EMBER_AF_THERMOSTAT_RUNNING_STATE_FAN_STATE_ON_OFFSET (2) -#define EMBER_AF_THERMOSTAT_RUNNING_STATE_HEAT_SECOND_STAGE_STATE_ON (0x0008) -#define EMBER_AF_THERMOSTAT_RUNNING_STATE_HEAT_SECOND_STAGE_STATE_ON_OFFSET (3) -#define EMBER_AF_THERMOSTAT_RUNNING_STATE_COOL_SECOND_STAGE_STATE_ON (0x0010) -#define EMBER_AF_THERMOSTAT_RUNNING_STATE_COOL_SECOND_STAGE_STATE_ON_OFFSET (4) -#define EMBER_AF_THERMOSTAT_RUNNING_STATE_FAN_SECOND_STAGE_STATE_ON (0x0020) -#define EMBER_AF_THERMOSTAT_RUNNING_STATE_FAN_SECOND_STAGE_STATE_ON_OFFSET (5) -#define EMBER_AF_THERMOSTAT_RUNNING_STATE_FAN_THIRD_STAGE_STATE_ON (0x0040) -#define EMBER_AF_THERMOSTAT_RUNNING_STATE_FAN_THIRD_STAGE_STATE_ON_OFFSET (6) -#define EMBER_AF_DAY_OF_WEEK_SUNDAY (0x01) -#define EMBER_AF_DAY_OF_WEEK_MONDAY (0x02) -#define EMBER_AF_DAY_OF_WEEK_MONDAY_OFFSET (1) -#define EMBER_AF_DAY_OF_WEEK_TUESDAY (0x04) -#define EMBER_AF_DAY_OF_WEEK_TUESDAY_OFFSET (2) -#define EMBER_AF_DAY_OF_WEEK_WEDNESDAY (0x08) -#define EMBER_AF_DAY_OF_WEEK_WEDNESDAY_OFFSET (3) -#define EMBER_AF_DAY_OF_WEEK_THURSDAY (0x10) -#define EMBER_AF_DAY_OF_WEEK_THURSDAY_OFFSET (4) -#define EMBER_AF_DAY_OF_WEEK_FRIDAY (0x20) -#define EMBER_AF_DAY_OF_WEEK_FRIDAY_OFFSET (5) -#define EMBER_AF_DAY_OF_WEEK_SATURDAY (0x40) -#define EMBER_AF_DAY_OF_WEEK_SATURDAY_OFFSET (6) -#define EMBER_AF_DAY_OF_WEEK_AWAY_OR_VACATION (0x80) -#define EMBER_AF_DAY_OF_WEEK_AWAY_OR_VACATION_OFFSET (7) -#define EMBER_AF_MODE_FOR_SEQUENCE_HEAT_SETPOINT_FIELD_PRESENT (0x01) -#define EMBER_AF_MODE_FOR_SEQUENCE_COOL_SETPOINT_FIELD_PRESENT (0x02) -#define EMBER_AF_MODE_FOR_SEQUENCE_COOL_SETPOINT_FIELD_PRESENT_OFFSET (1) +#define EMBER_AF_ALERT_COUNT_NUMBER_OF_ALERTS (0x0F) +#define EMBER_AF_ALERT_COUNT_NUMBER_OF_ALERTS_OFFSET (0) +#define EMBER_AF_ALERT_COUNT_TYPE_OF_ALERT (0xF0) +#define EMBER_AF_ALERT_COUNT_TYPE_OF_ALERT_OFFSET (4) #define EMBER_AF_ALERT_STRUCTURE_ALERT_ID (0x0000FF) +#define EMBER_AF_ALERT_STRUCTURE_ALERT_ID_OFFSET (0) #define EMBER_AF_ALERT_STRUCTURE_CATEGORY (0x000F00) #define EMBER_AF_ALERT_STRUCTURE_CATEGORY_OFFSET (8) #define EMBER_AF_ALERT_STRUCTURE_PRESENCE_RECOVERY (0x003000) #define EMBER_AF_ALERT_STRUCTURE_PRESENCE_RECOVERY_OFFSET (12) -#define EMBER_AF_ALERT_COUNT_NUMBER_OF_ALERTS (0x0F) -#define EMBER_AF_ALERT_COUNT_TYPE_OF_ALERT (0xF0) -#define EMBER_AF_ALERT_COUNT_TYPE_OF_ALERT_OFFSET (4) -#define EMBER_AF_BARRIER_CONTROL_CAPABILITIES_PARTIAL_BARRIER (0x01) -#define EMBER_AF_BARRIER_CONTROL_SAFETY_STATUS_REMOTE_LOCKOUT (0x0001) -#define EMBER_AF_BARRIER_CONTROL_SAFETY_STATUS_TEMPER_DETECTED (0x0002) -#define EMBER_AF_BARRIER_CONTROL_SAFETY_STATUS_TEMPER_DETECTED_OFFSET (1) -#define EMBER_AF_BARRIER_CONTROL_SAFETY_STATUS_FAILED_COMMUNICATION (0x0004) -#define EMBER_AF_BARRIER_CONTROL_SAFETY_STATUS_FAILED_COMMUNICATION_OFFSET (2) -#define EMBER_AF_BARRIER_CONTROL_SAFETY_STATUS_POSITION_FAILURE (0x0008) -#define EMBER_AF_BARRIER_CONTROL_SAFETY_STATUS_POSITION_FAILURE_OFFSET (3) -#define EMBER_AF_BLOCK_PERIOD_DURATION_TYPE_TIMEBASE (0x0F) -#define EMBER_AF_BLOCK_PERIOD_DURATION_TYPE_CONTROL (0xF0) -#define EMBER_AF_BLOCK_PERIOD_DURATION_TYPE_CONTROL_OFFSET (4) -#define EMBER_AF_CONVERSION_FACTOR_TRAILING_DIGIT_TRAILING_DIGIT (0xF0) -#define EMBER_AF_CONVERSION_FACTOR_TRAILING_DIGIT_TRAILING_DIGIT_OFFSET (4) -#define EMBER_AF_CALORIFIC_VALUE_TRAILING_DIGIT_TRAILING_DIGIT (0xF0) -#define EMBER_AF_CALORIFIC_VALUE_TRAILING_DIGIT_TRAILING_DIGIT_OFFSET (4) -#define EMBER_AF_PRICE_TRAILING_DIGIT_TRAILING_DIGIT (0xF0) -#define EMBER_AF_PRICE_TRAILING_DIGIT_TRAILING_DIGIT_OFFSET (4) -#define EMBER_AF_C_O2_TRAILING_DIGIT_TRAILING_DIGIT (0xF0) -#define EMBER_AF_C_O2_TRAILING_DIGIT_TRAILING_DIGIT_OFFSET (4) -#define EMBER_AF_PRICE_TRAILING_DIGIT_AND_PRICE_TIER_PRICE_TIER (0x0F) -#define EMBER_AF_PRICE_TRAILING_DIGIT_AND_PRICE_TIER_TRAILING_DIGIT (0xF0) -#define EMBER_AF_PRICE_TRAILING_DIGIT_AND_PRICE_TIER_TRAILING_DIGIT_OFFSET (4) -#define EMBER_AF_PRICE_NUMBER_OF_PRICE_TIERS_AND_REGISTER_TIER_REGISTER_TIER (0x0F) -#define EMBER_AF_PRICE_NUMBER_OF_PRICE_TIERS_AND_REGISTER_TIER_NUMBER_OF_PRICE_TIERS (0xF0) -#define EMBER_AF_PRICE_NUMBER_OF_PRICE_TIERS_AND_REGISTER_TIER_NUMBER_OF_PRICE_TIERS_OFFSET (4) #define EMBER_AF_ALTERNATE_COST_TRAILING_DIGIT_TRAILING_DIGIT (0xF0) #define EMBER_AF_ALTERNATE_COST_TRAILING_DIGIT_TRAILING_DIGIT_OFFSET (4) -#define EMBER_AF_PRICE_CONTROL_MASK_PRICE_ACKNOWLEDGEMENT_REQUIRED (0x01) -#define EMBER_AF_PRICE_CONTROL_MASK_TOTAL_TIERS_EXCEEDS15 (0x02) -#define EMBER_AF_PRICE_CONTROL_MASK_TOTAL_TIERS_EXCEEDS15_OFFSET (1) -#define EMBER_AF_BLOCK_PERIOD_CONTROL_PRICE_ACKNOWLEDGEMENT_REQUIREMENT (0x01) -#define EMBER_AF_BLOCK_PERIOD_CONTROL_REPEATING_BLOCK (0x02) -#define EMBER_AF_BLOCK_PERIOD_CONTROL_REPEATING_BLOCK_OFFSET (1) -#define EMBER_AF_TARIFF_TYPE_CHARGING_SCHEME_TARIFF_TYPE (0x0F) -#define EMBER_AF_TARIFF_TYPE_CHARGING_SCHEME_TARIFF_CHARGING_SCHEME (0xF0) -#define EMBER_AF_TARIFF_TYPE_CHARGING_SCHEME_TARIFF_CHARGING_SCHEME_OFFSET (4) -#define EMBER_AF_PRICE_MATRIX_SUB_PAYLOAD_CONTROL_TOU_BASED (0x01) -#define EMBER_AF_BLOCK_THRESHOLD_SUB_PAYLOAD_CONTROL_APPLY_TO_ALL_TOU_TIERS_OR_WHEN_BLOCK_ONLY_CHARGING (0x01) -#define EMBER_AF_BILLING_PERIOD_DURATION_DURATION (0x3FFFFF) -#define EMBER_AF_BILLING_PERIOD_DURATION_UNITS (0xC00000) -#define EMBER_AF_BILLING_PERIOD_DURATION_UNITS_OFFSET (22) -#define EMBER_AF_BILLING_PERIOD_DURATION_TYPE_TIMEBASE (0x0F) -#define EMBER_AF_BILLING_PERIOD_DURATION_TYPE_CONTROL (0xF0) -#define EMBER_AF_BILLING_PERIOD_DURATION_TYPE_CONTROL_OFFSET (4) -#define EMBER_AF_BILL_TRAILING_DIGIT_TRAILING_DIGIT (0xF0) -#define EMBER_AF_BILL_TRAILING_DIGIT_TRAILING_DIGIT_OFFSET (4) -#define EMBER_AF_CURRENCY_CHANGE_CONTROL_CLEAR_BILLING_INFO (0x00000001) -#define EMBER_AF_CURRENCY_CHANGE_CONTROL_CONVERT_BILLING_INFO_USING_NEW_CURRENCY (0x00000002) -#define EMBER_AF_CURRENCY_CHANGE_CONTROL_CONVERT_BILLING_INFO_USING_NEW_CURRENCY_OFFSET (1) -#define EMBER_AF_CURRENCY_CHANGE_CONTROL_CLEAR_OLD_CONSUMPTION_DATA (0x00000004) -#define EMBER_AF_CURRENCY_CHANGE_CONTROL_CLEAR_OLD_CONSUMPTION_DATA_OFFSET (2) -#define EMBER_AF_CURRENCY_CHANGE_CONTROL_CONVERT_OLD_CONSUMPTION_DATA_USING_NEW_CURRENCY (0x00000008) -#define EMBER_AF_CURRENCY_CHANGE_CONTROL_CONVERT_OLD_CONSUMPTION_DATA_USING_NEW_CURRENCY_OFFSET (3) -#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER1 (0x0002) -#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER1_OFFSET (1) -#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER2 (0x0004) -#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER2_OFFSET (2) -#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER3 (0x0008) -#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER3_OFFSET (3) -#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER4 (0x0010) -#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER4_OFFSET (4) -#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER5 (0x0020) -#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER5_OFFSET (5) -#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER6 (0x0040) -#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER6_OFFSET (6) -#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER7 (0x0080) -#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER7_OFFSET (7) -#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER8 (0x0100) -#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER8_OFFSET (8) -#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER9 (0x0200) -#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER9_OFFSET (9) -#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER10 (0x0400) -#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER10_OFFSET (10) -#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER11 (0x0800) -#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER11_OFFSET (11) -#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER12 (0x1000) -#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER12_OFFSET (12) -#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER13 (0x2000) -#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER13_OFFSET (13) -#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER14 (0x4000) -#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER14_OFFSET (14) -#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER15 (0x8000) -#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER15_OFFSET (15) +#define EMBER_AF_AMI_CANCEL_CONTROL_TERMINATE_WITH_RANDOMIZATION (0x01) +#define EMBER_AF_AMI_CANCEL_CONTROL_TERMINATE_WITH_RANDOMIZATION_OFFSET (0) #define EMBER_AF_AMI_COMMAND_OPTIONS_REQUEST_RX_ON_WHEN_IDLE (0x01) +#define EMBER_AF_AMI_COMMAND_OPTIONS_REQUEST_RX_ON_WHEN_IDLE_OFFSET (0) #define EMBER_AF_AMI_DEVICE_CLASS_HVAC_COMPRESSOR_OR_FURNACE (0x0001) +#define EMBER_AF_AMI_DEVICE_CLASS_HVAC_COMPRESSOR_OR_FURNACE_OFFSET (0) #define EMBER_AF_AMI_DEVICE_CLASS_STRIP_HEAT_BASEBOARD_HEAT (0x0002) #define EMBER_AF_AMI_DEVICE_CLASS_STRIP_HEAT_BASEBOARD_HEAT_OFFSET (1) #define EMBER_AF_AMI_DEVICE_CLASS_WATER_HEATER (0x0004) @@ -2713,10 +2650,11 @@ typedef enum #define EMBER_AF_AMI_DEVICE_CLASS_GENERATION_SYSTEMS (0x0800) #define EMBER_AF_AMI_DEVICE_CLASS_GENERATION_SYSTEMS_OFFSET (11) #define EMBER_AF_AMI_EVENT_CONTROL_RANDOMIZED_START_TIME (0x01) +#define EMBER_AF_AMI_EVENT_CONTROL_RANDOMIZED_START_TIME_OFFSET (0) #define EMBER_AF_AMI_EVENT_CONTROL_RANDOMIZED_END_TIME (0x02) #define EMBER_AF_AMI_EVENT_CONTROL_RANDOMIZED_END_TIME_OFFSET (1) -#define EMBER_AF_AMI_CANCEL_CONTROL_TERMINATE_WITH_RANDOMIZATION (0x01) #define EMBER_AF_AMI_METER_STATUS_CHECK_METER (0x01) +#define EMBER_AF_AMI_METER_STATUS_CHECK_METER_OFFSET (0) #define EMBER_AF_AMI_METER_STATUS_LOW_BATTERY (0x02) #define EMBER_AF_AMI_METER_STATUS_LOW_BATTERY_OFFSET (1) #define EMBER_AF_AMI_METER_STATUS_TAMPER_DETECT (0x04) @@ -2731,130 +2669,458 @@ typedef enum #define EMBER_AF_AMI_METER_STATUS_SERVICE_DISCONNECT_OPEN_OFFSET (6) #define EMBER_AF_AMI_METER_STATUS_RESERVED (0x80) #define EMBER_AF_AMI_METER_STATUS_RESERVED_OFFSET (7) -#define EMBER_AF_METERING_STATUS_ELECTRICITY_CHECK_METER (0x01) -#define EMBER_AF_METERING_STATUS_ELECTRICITY_LOW_BATTERY (0x02) -#define EMBER_AF_METERING_STATUS_ELECTRICITY_LOW_BATTERY_OFFSET (1) -#define EMBER_AF_METERING_STATUS_ELECTRICITY_TAMPER_DETECT (0x04) -#define EMBER_AF_METERING_STATUS_ELECTRICITY_TAMPER_DETECT_OFFSET (2) -#define EMBER_AF_METERING_STATUS_ELECTRICITY_POWER_FAILURE (0x08) -#define EMBER_AF_METERING_STATUS_ELECTRICITY_POWER_FAILURE_OFFSET (3) -#define EMBER_AF_METERING_STATUS_ELECTRICITY_POWER_QUALITY (0x10) -#define EMBER_AF_METERING_STATUS_ELECTRICITY_POWER_QUALITY_OFFSET (4) -#define EMBER_AF_METERING_STATUS_ELECTRICITY_LEAK_DETECT (0x20) -#define EMBER_AF_METERING_STATUS_ELECTRICITY_LEAK_DETECT_OFFSET (5) -#define EMBER_AF_METERING_STATUS_ELECTRICITY_SERVICE_DISCONNECT_OPEN (0x40) -#define EMBER_AF_METERING_STATUS_ELECTRICITY_SERVICE_DISCONNECT_OPEN_OFFSET (6) -#define EMBER_AF_METERING_STATUS_ELECTRICITY_RESERVED (0x80) -#define EMBER_AF_METERING_STATUS_ELECTRICITY_RESERVED_OFFSET (7) -#define EMBER_AF_METERING_STATUS_GAS_CHECK_METER (0x01) -#define EMBER_AF_METERING_STATUS_GAS_LOW_BATTERY (0x02) -#define EMBER_AF_METERING_STATUS_GAS_LOW_BATTERY_OFFSET (1) -#define EMBER_AF_METERING_STATUS_GAS_TAMPER_DETECT (0x04) -#define EMBER_AF_METERING_STATUS_GAS_TAMPER_DETECT_OFFSET (2) -#define EMBER_AF_METERING_STATUS_GAS_NOT_DEFINED (0x08) -#define EMBER_AF_METERING_STATUS_GAS_NOT_DEFINED_OFFSET (3) -#define EMBER_AF_METERING_STATUS_GAS_LOW_PRESSURE (0x10) -#define EMBER_AF_METERING_STATUS_GAS_LOW_PRESSURE_OFFSET (4) -#define EMBER_AF_METERING_STATUS_GAS_LEAK_DETECT (0x20) -#define EMBER_AF_METERING_STATUS_GAS_LEAK_DETECT_OFFSET (5) -#define EMBER_AF_METERING_STATUS_GAS_SERVICE_DISCONNECT (0x40) -#define EMBER_AF_METERING_STATUS_GAS_SERVICE_DISCONNECT_OFFSET (6) -#define EMBER_AF_METERING_STATUS_GAS_REVERSE_FLOW (0x80) -#define EMBER_AF_METERING_STATUS_GAS_REVERSE_FLOW_OFFSET (7) -#define EMBER_AF_METERING_STATUS_WATER_CHECK_METER (0x01) -#define EMBER_AF_METERING_STATUS_WATER_LOW_BATTERY (0x02) -#define EMBER_AF_METERING_STATUS_WATER_LOW_BATTERY_OFFSET (1) -#define EMBER_AF_METERING_STATUS_WATER_TAMPER_DETECT (0x04) -#define EMBER_AF_METERING_STATUS_WATER_TAMPER_DETECT_OFFSET (2) -#define EMBER_AF_METERING_STATUS_WATER_PIPE_EMPTY (0x08) -#define EMBER_AF_METERING_STATUS_WATER_PIPE_EMPTY_OFFSET (3) -#define EMBER_AF_METERING_STATUS_WATER_LOW_PRESSURE (0x10) -#define EMBER_AF_METERING_STATUS_WATER_LOW_PRESSURE_OFFSET (4) -#define EMBER_AF_METERING_STATUS_WATER_LEAK_DETECT (0x20) -#define EMBER_AF_METERING_STATUS_WATER_LEAK_DETECT_OFFSET (5) -#define EMBER_AF_METERING_STATUS_WATER_SERVICE_DISCONNECT (0x40) -#define EMBER_AF_METERING_STATUS_WATER_SERVICE_DISCONNECT_OFFSET (6) -#define EMBER_AF_METERING_STATUS_WATER_REVERSE_FLOW (0x80) -#define EMBER_AF_METERING_STATUS_WATER_REVERSE_FLOW_OFFSET (7) -#define EMBER_AF_METERING_STATUS_HEAT_AND_COOLING_CHECK_METER (0x01) -#define EMBER_AF_METERING_STATUS_HEAT_AND_COOLING_LOW_BATTERY (0x02) -#define EMBER_AF_METERING_STATUS_HEAT_AND_COOLING_LOW_BATTERY_OFFSET (1) -#define EMBER_AF_METERING_STATUS_HEAT_AND_COOLING_TAMPER_DETECT (0x04) -#define EMBER_AF_METERING_STATUS_HEAT_AND_COOLING_TAMPER_DETECT_OFFSET (2) -#define EMBER_AF_METERING_STATUS_HEAT_AND_COOLING_TEMPERATURE_SENSOR (0x08) -#define EMBER_AF_METERING_STATUS_HEAT_AND_COOLING_TEMPERATURE_SENSOR_OFFSET (3) -#define EMBER_AF_METERING_STATUS_HEAT_AND_COOLING_BURST_DETECT (0x10) -#define EMBER_AF_METERING_STATUS_HEAT_AND_COOLING_BURST_DETECT_OFFSET (4) -#define EMBER_AF_METERING_STATUS_HEAT_AND_COOLING_LEAK_DETECT (0x20) -#define EMBER_AF_METERING_STATUS_HEAT_AND_COOLING_LEAK_DETECT_OFFSET (5) -#define EMBER_AF_METERING_STATUS_HEAT_AND_COOLING_SERVICE_DISCONNECT (0x40) -#define EMBER_AF_METERING_STATUS_HEAT_AND_COOLING_SERVICE_DISCONNECT_OFFSET (6) -#define EMBER_AF_METERING_STATUS_HEAT_AND_COOLING_FLOW_SENSOR (0x80) -#define EMBER_AF_METERING_STATUS_HEAT_AND_COOLING_FLOW_SENSOR_OFFSET (7) -#define EMBER_AF_METERING_EXTENDED_STATUS_METER_COVER_REMOVED (0x0000000000000001) -#define EMBER_AF_METERING_EXTENDED_STATUS_STRONG_MAGNETIC_FIELD_DETECTED (0x0000000000000002) -#define EMBER_AF_METERING_EXTENDED_STATUS_STRONG_MAGNETIC_FIELD_DETECTED_OFFSET (1) -#define EMBER_AF_METERING_EXTENDED_STATUS_BATTERY_FAILURE (0x0000000000000004) -#define EMBER_AF_METERING_EXTENDED_STATUS_BATTERY_FAILURE_OFFSET (2) -#define EMBER_AF_METERING_EXTENDED_STATUS_PROGRAM_MEMORY_ERROR (0x0000000000000008) -#define EMBER_AF_METERING_EXTENDED_STATUS_PROGRAM_MEMORY_ERROR_OFFSET (3) -#define EMBER_AF_METERING_EXTENDED_STATUS_RAM_ERROR (0x0000000000000010) -#define EMBER_AF_METERING_EXTENDED_STATUS_RAM_ERROR_OFFSET (4) -#define EMBER_AF_METERING_EXTENDED_STATUS_NV_MEMORY_ERROR (0x0000000000000020) -#define EMBER_AF_METERING_EXTENDED_STATUS_NV_MEMORY_ERROR_OFFSET (5) -#define EMBER_AF_METERING_EXTENDED_STATUS_MEASUREMENT_SYSTEM_ERROR (0x0000000000000040) -#define EMBER_AF_METERING_EXTENDED_STATUS_MEASUREMENT_SYSTEM_ERROR_OFFSET (6) -#define EMBER_AF_METERING_EXTENDED_STATUS_WATCHDOG_ERROR (0x0000000000000080) -#define EMBER_AF_METERING_EXTENDED_STATUS_WATCHDOG_ERROR_OFFSET (7) -#define EMBER_AF_METERING_EXTENDED_STATUS_SUPPLY_DISCONNECT_FAILURE (0x0000000000000100) -#define EMBER_AF_METERING_EXTENDED_STATUS_SUPPLY_DISCONNECT_FAILURE_OFFSET (8) -#define EMBER_AF_METERING_EXTENDED_STATUS_SUPPLY_CONNECT_FAILURE (0x0000000000000200) -#define EMBER_AF_METERING_EXTENDED_STATUS_SUPPLY_CONNECT_FAILURE_OFFSET (9) -#define EMBER_AF_METERING_EXTENDED_STATUS_MEASUREMENT_SW_CHANGED_TAMPERED (0x0000000000000400) -#define EMBER_AF_METERING_EXTENDED_STATUS_MEASUREMENT_SW_CHANGED_TAMPERED_OFFSET (10) -#define EMBER_AF_METERING_EXTENDED_STATUS_CLOCK_INVALID (0x0000000000000800) -#define EMBER_AF_METERING_EXTENDED_STATUS_CLOCK_INVALID_OFFSET (11) -#define EMBER_AF_METERING_EXTENDED_STATUS_TEMPERATURE_EXCEEDED (0x0000000000001000) -#define EMBER_AF_METERING_EXTENDED_STATUS_TEMPERATURE_EXCEEDED_OFFSET (12) -#define EMBER_AF_METERING_EXTENDED_STATUS_MOISTURE_DETECTED (0x0000000000002000) -#define EMBER_AF_METERING_EXTENDED_STATUS_MOISTURE_DETECTED_OFFSET (13) -#define EMBER_AF_METERING_EXTENDED_STATUS_GAS_METER_BATTERY_COVER_REMOVED (0x0000000001000000) -#define EMBER_AF_METERING_EXTENDED_STATUS_GAS_METER_BATTERY_COVER_REMOVED_OFFSET (24) -#define EMBER_AF_METERING_EXTENDED_STATUS_GAS_METER_TILT_TAMPER (0x0000000002000000) -#define EMBER_AF_METERING_EXTENDED_STATUS_GAS_METER_TILT_TAMPER_OFFSET (25) -#define EMBER_AF_METERING_EXTENDED_STATUS_GAS_METER_EXCESS_FLOW (0x0000000004000000) -#define EMBER_AF_METERING_EXTENDED_STATUS_GAS_METER_EXCESS_FLOW_OFFSET (26) -#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_LIMIT_THRESHOLD_EXCEEDED (0x0000000008000000) -#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_LIMIT_THRESHOLD_EXCEEDED_OFFSET (27) -#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_UNDER_VOLTAGE (0x0000000010000000) -#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_UNDER_VOLTAGE_OFFSET (28) -#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_OVER_VOLTAGE (0x0000000020000000) -#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_OVER_VOLTAGE_OFFSET (29) -#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_SERVICE_DISCONNECTION_REASON_OFF_DUE_TO_OVER_POWER (0x0000000040000000) -#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_SERVICE_DISCONNECTION_REASON_OFF_DUE_TO_OVER_POWER_OFFSET (30) -#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_SERVICE_DISCONNECTION_REASON_OFF_DUE_TO_OVER_VOLTAGE \ - (0x0000000080000000) -#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_SERVICE_DISCONNECTION_REASON_OFF_DUE_TO_OVER_VOLTAGE_OFFSET (31) -#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_SERVICE_DISCONNECTION_REASON_OFF_DUE_TO_REMOTE_LOAD_CONTROL \ - (0x00000000C0000000) -#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_SERVICE_DISCONNECTION_REASON_OFF_DUE_TO_REMOTE_LOAD_CONTROL_OFFSET (30) -#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_SERVICE_DISCONNECTION_REASON_OFF_BY_OTHER_REMOTE_COMMAND \ - (0x0000000100000000) -#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_SERVICE_DISCONNECTION_REASON_OFF_BY_OTHER_REMOTE_COMMAND_OFFSET (32) -#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_SERVICE_DISCONNECTION_REASON_OFF_DUE_TO_OVERHEATING_SHORT_CIRCUIT \ - (0x0000000140000000) -#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_SERVICE_DISCONNECTION_REASON_OFF_DUE_TO_OVERHEATING_SHORT_CIRCUIT_OFFSET \ - (30) -#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_SERVICE_DISCONNECTION_REASON_OFF_DUE_TO_OVERHEATING_OTHER \ - (0x0000000180000000) -#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_SERVICE_DISCONNECTION_REASON_OFF_DUE_TO_OVERHEATING_OTHER_OFFSET (31) -#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_BI_DIRECTIONAL_OPERATION (0x0000000400000000) -#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_BI_DIRECTIONAL_OPERATION_OFFSET (34) -#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_ACTIVE_POWER_RECEIVED (0x0000000800000000) -#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_ACTIVE_POWER_RECEIVED_OFFSET (35) -#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_MODE_OF_OPERATION (0x0000001000000000) -#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_MODE_OF_OPERATION_OFFSET (36) +#define EMBER_AF_AUXILIARY_LOAD_SWITCH_STATE_AUXILIARY_SWITCH1 (0x01) +#define EMBER_AF_AUXILIARY_LOAD_SWITCH_STATE_AUXILIARY_SWITCH1_OFFSET (0) +#define EMBER_AF_AUXILIARY_LOAD_SWITCH_STATE_AUXILIARY_SWITCH2 (0x02) +#define EMBER_AF_AUXILIARY_LOAD_SWITCH_STATE_AUXILIARY_SWITCH2_OFFSET (1) +#define EMBER_AF_AUXILIARY_LOAD_SWITCH_STATE_AUXILIARY_SWITCH3 (0x04) +#define EMBER_AF_AUXILIARY_LOAD_SWITCH_STATE_AUXILIARY_SWITCH3_OFFSET (2) +#define EMBER_AF_AUXILIARY_LOAD_SWITCH_STATE_AUXILIARY_SWITCH4 (0x08) +#define EMBER_AF_AUXILIARY_LOAD_SWITCH_STATE_AUXILIARY_SWITCH4_OFFSET (3) +#define EMBER_AF_AUXILIARY_LOAD_SWITCH_STATE_AUXILIARY_SWITCH5 (0x10) +#define EMBER_AF_AUXILIARY_LOAD_SWITCH_STATE_AUXILIARY_SWITCH5_OFFSET (4) +#define EMBER_AF_AUXILIARY_LOAD_SWITCH_STATE_AUXILIARY_SWITCH6 (0x20) +#define EMBER_AF_AUXILIARY_LOAD_SWITCH_STATE_AUXILIARY_SWITCH6_OFFSET (5) +#define EMBER_AF_AUXILIARY_LOAD_SWITCH_STATE_AUXILIARY_SWITCH7 (0x40) +#define EMBER_AF_AUXILIARY_LOAD_SWITCH_STATE_AUXILIARY_SWITCH7_OFFSET (6) +#define EMBER_AF_AUXILIARY_LOAD_SWITCH_STATE_AUXILIARY_SWITCH8 (0x80) +#define EMBER_AF_AUXILIARY_LOAD_SWITCH_STATE_AUXILIARY_SWITCH8_OFFSET (7) +#define EMBER_AF_BALLAST_STATUS_NON_OPERATIONAL (0x1) +#define EMBER_AF_BALLAST_STATUS_NON_OPERATIONAL_OFFSET (0) +#define EMBER_AF_BALLAST_STATUS_LAMP_NOT_IN_SOCKET (0x2) +#define EMBER_AF_BALLAST_STATUS_LAMP_NOT_IN_SOCKET_OFFSET (1) +#define EMBER_AF_BARRIER_CONTROL_CAPABILITIES_PARTIAL_BARRIER (0x01) +#define EMBER_AF_BARRIER_CONTROL_CAPABILITIES_PARTIAL_BARRIER_OFFSET (0) +#define EMBER_AF_BARRIER_CONTROL_SAFETY_STATUS_REMOTE_LOCKOUT (0x01) +#define EMBER_AF_BARRIER_CONTROL_SAFETY_STATUS_REMOTE_LOCKOUT_OFFSET (0) +#define EMBER_AF_BARRIER_CONTROL_SAFETY_STATUS_TEMPER_DETECTED (0x02) +#define EMBER_AF_BARRIER_CONTROL_SAFETY_STATUS_TEMPER_DETECTED_OFFSET (1) +#define EMBER_AF_BARRIER_CONTROL_SAFETY_STATUS_FAILED_COMMUNICATION (0x04) +#define EMBER_AF_BARRIER_CONTROL_SAFETY_STATUS_FAILED_COMMUNICATION_OFFSET (2) +#define EMBER_AF_BARRIER_CONTROL_SAFETY_STATUS_POSITION_FAILURE (0x08) +#define EMBER_AF_BARRIER_CONTROL_SAFETY_STATUS_POSITION_FAILURE_OFFSET (3) +#define EMBER_AF_BATTERY_ALARM_MASK_VOLTAGE_TOO_LOW (0x1) +#define EMBER_AF_BATTERY_ALARM_MASK_VOLTAGE_TOO_LOW_OFFSET (0) +#define EMBER_AF_BILL_TRAILING_DIGIT_TRAILING_DIGIT (0xF0) +#define EMBER_AF_BILL_TRAILING_DIGIT_TRAILING_DIGIT_OFFSET (4) +#define EMBER_AF_BILLING_PERIOD_DURATION_DURATION (0x3FFFFF) +#define EMBER_AF_BILLING_PERIOD_DURATION_DURATION_OFFSET (0) +#define EMBER_AF_BILLING_PERIOD_DURATION_UNITS (0xC00000) +#define EMBER_AF_BILLING_PERIOD_DURATION_UNITS_OFFSET (22) +#define EMBER_AF_BILLING_PERIOD_DURATION_TYPE_TIMEBASE (0x0F) +#define EMBER_AF_BILLING_PERIOD_DURATION_TYPE_TIMEBASE_OFFSET (0) +#define EMBER_AF_BILLING_PERIOD_DURATION_TYPE_CONTROL (0xF0) +#define EMBER_AF_BILLING_PERIOD_DURATION_TYPE_CONTROL_OFFSET (4) +#define EMBER_AF_BLOCK_PERIOD_CONTROL_PRICE_ACKNOWLEDGEMENT_REQUIREMENT (0x01) +#define EMBER_AF_BLOCK_PERIOD_CONTROL_PRICE_ACKNOWLEDGEMENT_REQUIREMENT_OFFSET (0) +#define EMBER_AF_BLOCK_PERIOD_CONTROL_REPEATING_BLOCK (0x02) +#define EMBER_AF_BLOCK_PERIOD_CONTROL_REPEATING_BLOCK_OFFSET (1) +#define EMBER_AF_BLOCK_PERIOD_DURATION_TYPE_TIMEBASE (0x0F) +#define EMBER_AF_BLOCK_PERIOD_DURATION_TYPE_TIMEBASE_OFFSET (0) +#define EMBER_AF_BLOCK_PERIOD_DURATION_TYPE_CONTROL (0xF0) +#define EMBER_AF_BLOCK_PERIOD_DURATION_TYPE_CONTROL_OFFSET (4) +#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER1 (0x0002) +#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER1_OFFSET (1) +#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER2 (0x0004) +#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER2_OFFSET (2) +#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER3 (0x0008) +#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER3_OFFSET (3) +#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER4 (0x0010) +#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER4_OFFSET (4) +#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER5 (0x0020) +#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER5_OFFSET (5) +#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER6 (0x0040) +#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER6_OFFSET (6) +#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER7 (0x0080) +#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER7_OFFSET (7) +#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER8 (0x0100) +#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER8_OFFSET (8) +#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER9 (0x0200) +#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER9_OFFSET (9) +#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER10 (0x0400) +#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER10_OFFSET (10) +#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER11 (0x0800) +#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER11_OFFSET (11) +#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER12 (0x1000) +#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER12_OFFSET (12) +#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER13 (0x2000) +#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER13_OFFSET (13) +#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER14 (0x4000) +#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER14_OFFSET (14) +#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER15 (0x8000) +#define EMBER_AF_BLOCK_THRESHOLD_MASK_TIER15_OFFSET (15) +#define EMBER_AF_BLOCK_THRESHOLD_SUB_PAYLOAD_CONTROL_APPLY_TO_ALL_TOU_TIERS_OR_WHEN_BLOCK_ONLY_CHARGING (0x01) +#define EMBER_AF_BLOCK_THRESHOLD_SUB_PAYLOAD_CONTROL_APPLY_TO_ALL_TOU_TIERS_OR_WHEN_BLOCK_ONLY_CHARGING_OFFSET (0) +#define EMBER_AF_CO2_TRAILING_DIGIT_TRAILING_DIGIT (0xF0) +#define EMBER_AF_CO2_TRAILING_DIGIT_TRAILING_DIGIT_OFFSET (4) +#define EMBER_AF_CALORIFIC_VALUE_TRAILING_DIGIT_TRAILING_DIGIT (0xF0) +#define EMBER_AF_CALORIFIC_VALUE_TRAILING_DIGIT_TRAILING_DIGIT_OFFSET (4) +#define EMBER_AF_CHANNEL_MASK_CHANNEL0 (0x00000001) +#define EMBER_AF_CHANNEL_MASK_CHANNEL0_OFFSET (0) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL0 (0x00000001) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL0_OFFSET (0) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL27 (0x00000001) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL27_OFFSET (0) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL35 (0x00000001) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL35_OFFSET (0) +#define EMBER_AF_CHANNEL_MASK_915_CHANNEL0 (0x00000001) +#define EMBER_AF_CHANNEL_MASK_915_CHANNEL0_OFFSET (0) +#define EMBER_AF_CHANNEL_MASK_CHANNEL1 (0x00000002) +#define EMBER_AF_CHANNEL_MASK_CHANNEL1_OFFSET (1) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL1 (0x00000002) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL1_OFFSET (1) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL28 (0x00000002) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL28_OFFSET (1) +#define EMBER_AF_CHANNEL_MASK_853_CHANNEL36 (0x00000002) +#define EMBER_AF_CHANNEL_MASK_853_CHANNEL36_OFFSET (1) +#define EMBER_AF_CHANNEL_MASK_915_CHANNEL1 (0x00000002) +#define EMBER_AF_CHANNEL_MASK_915_CHANNEL1_OFFSET (1) +#define EMBER_AF_CHANNEL_MASK_CHANNEL2 (0x00000004) +#define EMBER_AF_CHANNEL_MASK_CHANNEL2_OFFSET (2) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL2 (0x00000004) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL2_OFFSET (2) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL29 (0x00000004) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL29_OFFSET (2) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL37 (0x00000004) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL37_OFFSET (2) +#define EMBER_AF_CHANNEL_MASK_915_CHANNEL2 (0x00000004) +#define EMBER_AF_CHANNEL_MASK_915_CHANNEL2_OFFSET (2) +#define EMBER_AF_CHANNEL_MASK_CHANNEL3 (0x00000008) +#define EMBER_AF_CHANNEL_MASK_CHANNEL3_OFFSET (3) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL3 (0x00000008) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL3_OFFSET (3) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL30 (0x00000008) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL30_OFFSET (3) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL38 (0x00000008) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL38_OFFSET (3) +#define EMBER_AF_CHANNEL_MASK_915_CHANNEL3 (0x00000008) +#define EMBER_AF_CHANNEL_MASK_915_CHANNEL3_OFFSET (3) +#define EMBER_AF_CHANNEL_MASK_CHANNEL4 (0x00000010) +#define EMBER_AF_CHANNEL_MASK_CHANNEL4_OFFSET (4) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL4 (0x00000010) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL4_OFFSET (4) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL31 (0x00000010) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL31_OFFSET (4) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL39 (0x00000010) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL39_OFFSET (4) +#define EMBER_AF_CHANNEL_MASK_915_CHANNEL4 (0x00000010) +#define EMBER_AF_CHANNEL_MASK_915_CHANNEL4_OFFSET (4) +#define EMBER_AF_CHANNEL_MASK_CHANNEL5 (0x00000020) +#define EMBER_AF_CHANNEL_MASK_CHANNEL5_OFFSET (5) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL5 (0x00000020) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL5_OFFSET (5) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL32 (0x00000020) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL32_OFFSET (5) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL40 (0x00000020) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL40_OFFSET (5) +#define EMBER_AF_CHANNEL_MASK_915_CHANNEL5 (0x00000020) +#define EMBER_AF_CHANNEL_MASK_915_CHANNEL5_OFFSET (5) +#define EMBER_AF_CHANNEL_MASK_CHANNEL6 (0x00000040) +#define EMBER_AF_CHANNEL_MASK_CHANNEL6_OFFSET (6) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL6 (0x00000040) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL6_OFFSET (6) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL33 (0x00000040) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL33_OFFSET (6) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL41 (0x00000040) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL41_OFFSET (6) +#define EMBER_AF_CHANNEL_MASK_915_CHANNEL6 (0x00000040) +#define EMBER_AF_CHANNEL_MASK_915_CHANNEL6_OFFSET (6) +#define EMBER_AF_CHANNEL_MASK_CHANNEL7 (0x00000080) +#define EMBER_AF_CHANNEL_MASK_CHANNEL7_OFFSET (7) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL7 (0x00000080) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL7_OFFSET (7) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL34 (0x00000080) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL34_OFFSET (7) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL42 (0x00000080) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL42_OFFSET (7) +#define EMBER_AF_CHANNEL_MASK_915_CHANNEL7 (0x00000080) +#define EMBER_AF_CHANNEL_MASK_915_CHANNEL7_OFFSET (7) +#define EMBER_AF_CHANNEL_MASK_CHANNEL8 (0x00000100) +#define EMBER_AF_CHANNEL_MASK_CHANNEL8_OFFSET (8) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL8 (0x00000100) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL8_OFFSET (8) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL62 (0x00000100) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL62_OFFSET (8) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL43 (0x00000100) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL43_OFFSET (8) +#define EMBER_AF_CHANNEL_MASK_915_CHANNEL8 (0x00000100) +#define EMBER_AF_CHANNEL_MASK_915_CHANNEL8_OFFSET (8) +#define EMBER_AF_CHANNEL_MASK_CHANNEL9 (0x00000200) +#define EMBER_AF_CHANNEL_MASK_CHANNEL9_OFFSET (9) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL9 (0x00000200) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL9_OFFSET (9) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL44 (0x00000200) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL44_OFFSET (9) +#define EMBER_AF_CHANNEL_MASK_915_CHANNEL9 (0x00000200) +#define EMBER_AF_CHANNEL_MASK_915_CHANNEL9_OFFSET (9) +#define EMBER_AF_CHANNEL_MASK_CHANNEL10 (0x00000400) +#define EMBER_AF_CHANNEL_MASK_CHANNEL10_OFFSET (10) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL10 (0x00000400) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL10_OFFSET (10) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL45 (0x00000400) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL45_OFFSET (10) +#define EMBER_AF_CHANNEL_MASK_915_CHANNEL10 (0x00000400) +#define EMBER_AF_CHANNEL_MASK_915_CHANNEL10_OFFSET (10) +#define EMBER_AF_CHANNEL_MASK_CHANNEL11 (0x00000800) +#define EMBER_AF_CHANNEL_MASK_CHANNEL11_OFFSET (11) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL11 (0x00000800) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL11_OFFSET (11) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL46 (0x00000800) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL46_OFFSET (11) +#define EMBER_AF_CHANNEL_MASK_915_CHANNEL11 (0x00000800) +#define EMBER_AF_CHANNEL_MASK_915_CHANNEL11_OFFSET (11) +#define EMBER_AF_CHANNEL_MASK_CHANNEL12 (0x00001000) +#define EMBER_AF_CHANNEL_MASK_CHANNEL12_OFFSET (12) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL12 (0x00001000) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL12_OFFSET (12) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL47 (0x00001000) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL47_OFFSET (12) +#define EMBER_AF_CHANNEL_MASK_915_CHANNEL12 (0x00001000) +#define EMBER_AF_CHANNEL_MASK_915_CHANNEL12_OFFSET (12) +#define EMBER_AF_CHANNEL_MASK_CHANNEL13 (0x00002000) +#define EMBER_AF_CHANNEL_MASK_CHANNEL13_OFFSET (13) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL13 (0x00002000) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL13_OFFSET (13) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL48 (0x00002000) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL48_OFFSET (13) +#define EMBER_AF_CHANNEL_MASK_915_CHANNEL13 (0x00002000) +#define EMBER_AF_CHANNEL_MASK_915_CHANNEL13_OFFSET (13) +#define EMBER_AF_CHANNEL_MASK_CHANNEL14 (0x00004000) +#define EMBER_AF_CHANNEL_MASK_CHANNEL14_OFFSET (14) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL14 (0x00004000) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL14_OFFSET (14) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL49 (0x00004000) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL49_OFFSET (14) +#define EMBER_AF_CHANNEL_MASK_915_CHANNEL14 (0x00004000) +#define EMBER_AF_CHANNEL_MASK_915_CHANNEL14_OFFSET (14) +#define EMBER_AF_CHANNEL_MASK_CHANNEL15 (0x00008000) +#define EMBER_AF_CHANNEL_MASK_CHANNEL15_OFFSET (15) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL15 (0x00008000) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL15_OFFSET (15) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL50 (0x00008000) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL50_OFFSET (15) +#define EMBER_AF_CHANNEL_MASK_915_CHANNEL15 (0x00008000) +#define EMBER_AF_CHANNEL_MASK_915_CHANNEL15_OFFSET (15) +#define EMBER_AF_CHANNEL_MASK_CHANNEL16 (0x00010000) +#define EMBER_AF_CHANNEL_MASK_CHANNEL16_OFFSET (16) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL16 (0x00010000) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL16_OFFSET (16) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL51 (0x00010000) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL51_OFFSET (16) +#define EMBER_AF_CHANNEL_MASK_915_CHANNEL16 (0x00010000) +#define EMBER_AF_CHANNEL_MASK_915_CHANNEL16_OFFSET (16) +#define EMBER_AF_CHANNEL_MASK_CHANNEL17 (0x00020000) +#define EMBER_AF_CHANNEL_MASK_CHANNEL17_OFFSET (17) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL17 (0x00020000) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL17_OFFSET (17) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL52 (0x00020000) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL52_OFFSET (17) +#define EMBER_AF_CHANNEL_MASK_915_CHANNEL17 (0x00020000) +#define EMBER_AF_CHANNEL_MASK_915_CHANNEL17_OFFSET (17) +#define EMBER_AF_CHANNEL_MASK_CHANNEL18 (0x00040000) +#define EMBER_AF_CHANNEL_MASK_CHANNEL18_OFFSET (18) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL18 (0x00040000) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL18_OFFSET (18) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL53 (0x00040000) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL53_OFFSET (18) +#define EMBER_AF_CHANNEL_MASK_915_CHANNEL18 (0x00040000) +#define EMBER_AF_CHANNEL_MASK_915_CHANNEL18_OFFSET (18) +#define EMBER_AF_CHANNEL_MASK_CHANNEL19 (0x00080000) +#define EMBER_AF_CHANNEL_MASK_CHANNEL19_OFFSET (19) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL19 (0x00080000) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL19_OFFSET (19) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL54 (0x00080000) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL54_OFFSET (19) +#define EMBER_AF_CHANNEL_MASK_915_CHANNEL19 (0x00080000) +#define EMBER_AF_CHANNEL_MASK_915_CHANNEL19_OFFSET (19) +#define EMBER_AF_CHANNEL_MASK_CHANNEL20 (0x00100000) +#define EMBER_AF_CHANNEL_MASK_CHANNEL20_OFFSET (20) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL20 (0x00100000) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL20_OFFSET (20) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL55 (0x00100000) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL55_OFFSET (20) +#define EMBER_AF_CHANNEL_MASK_915_CHANNEL20 (0x00100000) +#define EMBER_AF_CHANNEL_MASK_915_CHANNEL20_OFFSET (20) +#define EMBER_AF_CHANNEL_MASK_CHANNEL21 (0x00200000) +#define EMBER_AF_CHANNEL_MASK_CHANNEL21_OFFSET (21) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL21 (0x00200000) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL21_OFFSET (21) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL56 (0x00200000) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL56_OFFSET (21) +#define EMBER_AF_CHANNEL_MASK_915_CHANNEL21 (0x00200000) +#define EMBER_AF_CHANNEL_MASK_915_CHANNEL21_OFFSET (21) +#define EMBER_AF_CHANNEL_MASK_CHANNEL22 (0x00400000) +#define EMBER_AF_CHANNEL_MASK_CHANNEL22_OFFSET (22) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL22 (0x00400000) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL22_OFFSET (22) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL57 (0x00400000) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL57_OFFSET (22) +#define EMBER_AF_CHANNEL_MASK_915_CHANNEL22 (0x00400000) +#define EMBER_AF_CHANNEL_MASK_915_CHANNEL22_OFFSET (22) +#define EMBER_AF_CHANNEL_MASK_CHANNEL23 (0x00800000) +#define EMBER_AF_CHANNEL_MASK_CHANNEL23_OFFSET (23) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL23 (0x00800000) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL23_OFFSET (23) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL58 (0x00800000) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL58_OFFSET (23) +#define EMBER_AF_CHANNEL_MASK_915_CHANNEL23 (0x00800000) +#define EMBER_AF_CHANNEL_MASK_915_CHANNEL23_OFFSET (23) +#define EMBER_AF_CHANNEL_MASK_CHANNEL24 (0x01000000) +#define EMBER_AF_CHANNEL_MASK_CHANNEL24_OFFSET (24) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL24 (0x01000000) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL24_OFFSET (24) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL59 (0x01000000) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL59_OFFSET (24) +#define EMBER_AF_CHANNEL_MASK_915_CHANNEL24 (0x01000000) +#define EMBER_AF_CHANNEL_MASK_915_CHANNEL24_OFFSET (24) +#define EMBER_AF_CHANNEL_MASK_CHANNEL25 (0x02000000) +#define EMBER_AF_CHANNEL_MASK_CHANNEL25_OFFSET (25) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL25 (0x02000000) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL25_OFFSET (25) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL60 (0x02000000) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL60_OFFSET (25) +#define EMBER_AF_CHANNEL_MASK_915_CHANNEL25 (0x02000000) +#define EMBER_AF_CHANNEL_MASK_915_CHANNEL25_OFFSET (25) +#define EMBER_AF_CHANNEL_MASK_CHANNEL26 (0x04000000) +#define EMBER_AF_CHANNEL_MASK_CHANNEL26_OFFSET (26) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL26 (0x04000000) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL26_OFFSET (26) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL61 (0x04000000) +#define EMBER_AF_CHANNEL_MASK_863_CHANNEL61_OFFSET (26) +#define EMBER_AF_CHANNEL_MASK_915_CHANNEL26 (0x04000000) +#define EMBER_AF_CHANNEL_MASK_915_CHANNEL26_OFFSET (26) +#define EMBER_AF_CHANNEL_MASK_PAGE (0xF8000000) +#define EMBER_AF_CHANNEL_MASK_PAGE_OFFSET (27) +#define EMBER_AF_CLEARED_EVENTS_LOGS_ALL_LOGS_CLEARED (0x01) +#define EMBER_AF_CLEARED_EVENTS_LOGS_ALL_LOGS_CLEARED_OFFSET (0) +#define EMBER_AF_CLEARED_EVENTS_LOGS_TAMPER_LOG_CLEARED (0x02) +#define EMBER_AF_CLEARED_EVENTS_LOGS_TAMPER_LOG_CLEARED_OFFSET (1) +#define EMBER_AF_CLEARED_EVENTS_LOGS_FAULT_LOG_CLEARED (0x04) +#define EMBER_AF_CLEARED_EVENTS_LOGS_FAULT_LOG_CLEARED_OFFSET (2) +#define EMBER_AF_CLEARED_EVENTS_LOGS_GENERAL_EVENT_LOG_CLEARED (0x08) +#define EMBER_AF_CLEARED_EVENTS_LOGS_GENERAL_EVENT_LOG_CLEARED_OFFSET (3) +#define EMBER_AF_CLEARED_EVENTS_LOGS_SECURITY_EVENT_LOG_CLEARED (0x10) +#define EMBER_AF_CLEARED_EVENTS_LOGS_SECURITY_EVENT_LOG_CLEARED_OFFSET (4) +#define EMBER_AF_CLEARED_EVENTS_LOGS_NETWORK_EVENT_LOG_CLEARED (0x20) +#define EMBER_AF_CLEARED_EVENTS_LOGS_NETWORK_EVENT_LOG_CLEARED_OFFSET (5) +#define EMBER_AF_COLOR_CAPABILITIES_HUE_SATURATION_SUPPORTED (0x0001) +#define EMBER_AF_COLOR_CAPABILITIES_HUE_SATURATION_SUPPORTED_OFFSET (0) +#define EMBER_AF_COLOR_CAPABILITIES_ENHANCED_HUE_SUPPORTED (0x0002) +#define EMBER_AF_COLOR_CAPABILITIES_ENHANCED_HUE_SUPPORTED_OFFSET (1) +#define EMBER_AF_COLOR_CAPABILITIES_COLOR_LOOP_SUPPORTED (0x0004) +#define EMBER_AF_COLOR_CAPABILITIES_COLOR_LOOP_SUPPORTED_OFFSET (2) +#define EMBER_AF_COLOR_CAPABILITIES_XY_ATTRIBUTES_SUPPORTED (0x0008) +#define EMBER_AF_COLOR_CAPABILITIES_XY_ATTRIBUTES_SUPPORTED_OFFSET (3) +#define EMBER_AF_COLOR_CAPABILITIES_COLOR_TEMPERATURE_SUPPORTED (0x0010) +#define EMBER_AF_COLOR_CAPABILITIES_COLOR_TEMPERATURE_SUPPORTED_OFFSET (4) +#define EMBER_AF_COLOR_LOOP_UPDATE_FLAGS_UPDATE_ACTION (0x01) +#define EMBER_AF_COLOR_LOOP_UPDATE_FLAGS_UPDATE_ACTION_OFFSET (0) +#define EMBER_AF_COLOR_LOOP_UPDATE_FLAGS_UPDATE_DIRECTION (0x02) +#define EMBER_AF_COLOR_LOOP_UPDATE_FLAGS_UPDATE_DIRECTION_OFFSET (1) +#define EMBER_AF_COLOR_LOOP_UPDATE_FLAGS_UPDATE_TIME (0x04) +#define EMBER_AF_COLOR_LOOP_UPDATE_FLAGS_UPDATE_TIME_OFFSET (2) +#define EMBER_AF_COLOR_LOOP_UPDATE_FLAGS_UPDATE_START_HUE (0x08) +#define EMBER_AF_COLOR_LOOP_UPDATE_FLAGS_UPDATE_START_HUE_OFFSET (3) +#define EMBER_AF_CONVERSION_FACTOR_TRAILING_DIGIT_TRAILING_DIGIT (0xF0) +#define EMBER_AF_CONVERSION_FACTOR_TRAILING_DIGIT_TRAILING_DIGIT_OFFSET (4) +#define EMBER_AF_CREDIT_STATUS_CREDIT_OK (0x01) +#define EMBER_AF_CREDIT_STATUS_CREDIT_OK_OFFSET (0) +#define EMBER_AF_CREDIT_STATUS_LOW_CREDIT (0x02) +#define EMBER_AF_CREDIT_STATUS_LOW_CREDIT_OFFSET (1) +#define EMBER_AF_CREDIT_STATUS_EMERGENCY_CREDIT_ENABLED (0x04) +#define EMBER_AF_CREDIT_STATUS_EMERGENCY_CREDIT_ENABLED_OFFSET (2) +#define EMBER_AF_CREDIT_STATUS_EMERGENCY_CREDIT_AVAILABLE (0x08) +#define EMBER_AF_CREDIT_STATUS_EMERGENCY_CREDIT_AVAILABLE_OFFSET (3) +#define EMBER_AF_CREDIT_STATUS_EMERGENCY_CREDIT_SELECTED (0x10) +#define EMBER_AF_CREDIT_STATUS_EMERGENCY_CREDIT_SELECTED_OFFSET (4) +#define EMBER_AF_CREDIT_STATUS_EMERGENCY_CREDIT_IN_USE (0x20) +#define EMBER_AF_CREDIT_STATUS_EMERGENCY_CREDIT_IN_USE_OFFSET (5) +#define EMBER_AF_CREDIT_STATUS_CREDIT_EXHAUSTED (0x40) +#define EMBER_AF_CREDIT_STATUS_CREDIT_EXHAUSTED_OFFSET (6) +#define EMBER_AF_CURRENCY_CHANGE_CONTROL_CLEAR_BILLING_INFO (0x01) +#define EMBER_AF_CURRENCY_CHANGE_CONTROL_CLEAR_BILLING_INFO_OFFSET (0) +#define EMBER_AF_CURRENCY_CHANGE_CONTROL_CONVERT_BILLING_INFO_USING_NEW_CURRENCY (0x02) +#define EMBER_AF_CURRENCY_CHANGE_CONTROL_CONVERT_BILLING_INFO_USING_NEW_CURRENCY_OFFSET (1) +#define EMBER_AF_CURRENCY_CHANGE_CONTROL_CLEAR_OLD_CONSUMPTION_DATA (0x04) +#define EMBER_AF_CURRENCY_CHANGE_CONTROL_CLEAR_OLD_CONSUMPTION_DATA_OFFSET (2) +#define EMBER_AF_CURRENCY_CHANGE_CONTROL_CONVERT_OLD_CONSUMPTION_DATA_USING_NEW_CURRENCY (0x08) +#define EMBER_AF_CURRENCY_CHANGE_CONTROL_CONVERT_OLD_CONSUMPTION_DATA_USING_NEW_CURRENCY_OFFSET (3) +#define EMBER_AF_CURRENT_EVENT_STATUS_RANDOMIZED_START_TIME (0x01) +#define EMBER_AF_CURRENT_EVENT_STATUS_RANDOMIZED_START_TIME_OFFSET (0) +#define EMBER_AF_CURRENT_EVENT_STATUS_RANDOMIZED_DURATION (0x02) +#define EMBER_AF_CURRENT_EVENT_STATUS_RANDOMIZED_DURATION_OFFSET (1) +#define EMBER_AF_CURRENT_EVENT_STATUS_EXTENDED_BITS_PRESENT (0x04) +#define EMBER_AF_CURRENT_EVENT_STATUS_EXTENDED_BITS_PRESENT_OFFSET (2) +#define EMBER_AF_CURRENT_EVENT_STATUS_EVENT_ACTIVE (0x08) +#define EMBER_AF_CURRENT_EVENT_STATUS_EVENT_ACTIVE_OFFSET (3) +#define EMBER_AF_CURRENT_EVENT_STATUS_DEVICE_PARTICIPATING_IN_EVENT (0x10) +#define EMBER_AF_CURRENT_EVENT_STATUS_DEVICE_PARTICIPATING_IN_EVENT_OFFSET (4) +#define EMBER_AF_CURRENT_EVENT_STATUS_REDUCING_LOAD (0x20) +#define EMBER_AF_CURRENT_EVENT_STATUS_REDUCING_LOAD_OFFSET (5) +#define EMBER_AF_CURRENT_EVENT_STATUS_ON_AT_END_OF_EVENT (0x40) +#define EMBER_AF_CURRENT_EVENT_STATUS_ON_AT_END_OF_EVENT_OFFSET (6) +#define EMBER_AF_DAY_OF_WEEK_SUNDAY (0x01) +#define EMBER_AF_DAY_OF_WEEK_SUNDAY_OFFSET (0) +#define EMBER_AF_DAY_OF_WEEK_MONDAY (0x02) +#define EMBER_AF_DAY_OF_WEEK_MONDAY_OFFSET (1) +#define EMBER_AF_DAY_OF_WEEK_TUESDAY (0x04) +#define EMBER_AF_DAY_OF_WEEK_TUESDAY_OFFSET (2) +#define EMBER_AF_DAY_OF_WEEK_WEDNESDAY (0x08) +#define EMBER_AF_DAY_OF_WEEK_WEDNESDAY_OFFSET (3) +#define EMBER_AF_DAY_OF_WEEK_THURSDAY (0x10) +#define EMBER_AF_DAY_OF_WEEK_THURSDAY_OFFSET (4) +#define EMBER_AF_DAY_OF_WEEK_FRIDAY (0x20) +#define EMBER_AF_DAY_OF_WEEK_FRIDAY_OFFSET (5) +#define EMBER_AF_DAY_OF_WEEK_SATURDAY (0x40) +#define EMBER_AF_DAY_OF_WEEK_SATURDAY_OFFSET (6) +#define EMBER_AF_DAY_OF_WEEK_AWAY_OR_VACATION (0x80) +#define EMBER_AF_DAY_OF_WEEK_AWAY_OR_VACATION_OFFSET (7) +#define EMBER_AF_DEVICE_TEMP_ALARM_MASK_TOO_LOW (0x1) +#define EMBER_AF_DEVICE_TEMP_ALARM_MASK_TOO_LOW_OFFSET (0) +#define EMBER_AF_DEVICE_TEMP_ALARM_MASK_TOO_HIGH (0x2) +#define EMBER_AF_DEVICE_TEMP_ALARM_MASK_TOO_HIGH_OFFSET (1) +#define EMBER_AF_DOOR_LOCK_DAY_OF_WEEK_SUNDAY (0x01) +#define EMBER_AF_DOOR_LOCK_DAY_OF_WEEK_SUNDAY_OFFSET (0) +#define EMBER_AF_DOOR_LOCK_DAY_OF_WEEK_MONDAY (0x02) +#define EMBER_AF_DOOR_LOCK_DAY_OF_WEEK_MONDAY_OFFSET (1) +#define EMBER_AF_DOOR_LOCK_DAY_OF_WEEK_TUESDAY (0x04) +#define EMBER_AF_DOOR_LOCK_DAY_OF_WEEK_TUESDAY_OFFSET (2) +#define EMBER_AF_DOOR_LOCK_DAY_OF_WEEK_WEDNESDAY (0x08) +#define EMBER_AF_DOOR_LOCK_DAY_OF_WEEK_WEDNESDAY_OFFSET (3) +#define EMBER_AF_DOOR_LOCK_DAY_OF_WEEK_THURSDAY (0x10) +#define EMBER_AF_DOOR_LOCK_DAY_OF_WEEK_THURSDAY_OFFSET (4) +#define EMBER_AF_DOOR_LOCK_DAY_OF_WEEK_FRIDAY (0x20) +#define EMBER_AF_DOOR_LOCK_DAY_OF_WEEK_FRIDAY_OFFSET (5) +#define EMBER_AF_DOOR_LOCK_DAY_OF_WEEK_SATURDAY (0x40) +#define EMBER_AF_DOOR_LOCK_DAY_OF_WEEK_SATURDAY_OFFSET (6) +#define EMBER_AF_ENERGY_FORMATTING_NUMBER_OF_DIGITS_TO_THE_RIGHT_OF_THE_DECIMAL_POINT (0x07) +#define EMBER_AF_ENERGY_FORMATTING_NUMBER_OF_DIGITS_TO_THE_RIGHT_OF_THE_DECIMAL_POINT_OFFSET (0) +#define EMBER_AF_ENERGY_FORMATTING_NUMBER_OF_DIGITS_TO_THE_LEFT_OF_THE_DECIMAL_POINT (0x78) +#define EMBER_AF_ENERGY_FORMATTING_NUMBER_OF_DIGITS_TO_THE_LEFT_OF_THE_DECIMAL_POINT_OFFSET (3) +#define EMBER_AF_ENERGY_FORMATTING_SUPPRESS_LEADING_ZEROS (0x80) +#define EMBER_AF_ENERGY_FORMATTING_SUPPRESS_LEADING_ZEROS_OFFSET (7) +#define EMBER_AF_EVENT_ACTION_CONTROL_REPORT_EVENT_TO_HAN_DEVICES (0x01) +#define EMBER_AF_EVENT_ACTION_CONTROL_REPORT_EVENT_TO_HAN_DEVICES_OFFSET (0) +#define EMBER_AF_EVENT_ACTION_CONTROL_REPORT_EVENT_TO_WAN (0x02) +#define EMBER_AF_EVENT_ACTION_CONTROL_REPORT_EVENT_TO_WAN_OFFSET (1) +#define EMBER_AF_EVENT_CONFIGURATION_LOG_ACTION (0x07) +#define EMBER_AF_EVENT_CONFIGURATION_LOG_ACTION_OFFSET (0) +#define EMBER_AF_EVENT_CONFIGURATION_PUSH_EVENT_TO_WAN (0x08) +#define EMBER_AF_EVENT_CONFIGURATION_PUSH_EVENT_TO_WAN_OFFSET (3) +#define EMBER_AF_EVENT_CONFIGURATION_PUSH_EVENT_TO_HAN (0x10) +#define EMBER_AF_EVENT_CONFIGURATION_PUSH_EVENT_TO_HAN_OFFSET (4) +#define EMBER_AF_EVENT_CONFIGURATION_RAISE_ALARM_ZIG_BEE (0x20) +#define EMBER_AF_EVENT_CONFIGURATION_RAISE_ALARM_ZIG_BEE_OFFSET (5) +#define EMBER_AF_EVENT_CONFIGURATION_RAISE_ALARM_PHYSICAL (0x40) +#define EMBER_AF_EVENT_CONFIGURATION_RAISE_ALARM_PHYSICAL_OFFSET (6) +#define EMBER_AF_EVENT_CONTROL_LOG_ID_LOG_ID (0x0F) +#define EMBER_AF_EVENT_CONTROL_LOG_ID_LOG_ID_OFFSET (0) +#define EMBER_AF_EVENT_CONTROL_LOG_ID_EVENT_CONTROL (0xF0) +#define EMBER_AF_EVENT_CONTROL_LOG_ID_EVENT_CONTROL_OFFSET (4) +#define EMBER_AF_FRIENDLY_CREDIT_FRIENDLY_CREDIT_ENABLED (0x01) +#define EMBER_AF_FRIENDLY_CREDIT_FRIENDLY_CREDIT_ENABLED_OFFSET (0) #define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_NEW_OTA_FIRMWARE (0x00000001) +#define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_NEW_OTA_FIRMWARE_OFFSET (0) #define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_CBKE_UPDATE_REQUEST (0x00000002) #define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_CBKE_UPDATE_REQUEST_OFFSET (1) #define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_TIME_SYNC (0x00000004) @@ -2897,319 +3163,94 @@ typedef enum #define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_ENERGY_SCAN_PENDING_OFFSET (25) #define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_CHANNEL_CHANGE_PENDING (0x04000000) #define EMBER_AF_FUNCTIONAL_NOTIFICATION_FLAGS_CHANNEL_CHANGE_PENDING_OFFSET (26) -#define EMBER_AF_SNAPSHOT_CAUSE_GENERAL (0x00000001) -#define EMBER_AF_SNAPSHOT_CAUSE_END_OF_BILLING_PERIOD (0x00000002) -#define EMBER_AF_SNAPSHOT_CAUSE_END_OF_BILLING_PERIOD_OFFSET (1) -#define EMBER_AF_SNAPSHOT_CAUSE_END_OF_BLOCK_PERIOD (0x00000004) -#define EMBER_AF_SNAPSHOT_CAUSE_END_OF_BLOCK_PERIOD_OFFSET (2) -#define EMBER_AF_SNAPSHOT_CAUSE_CHANGE_OF_TARIFF_INFORMATION (0x00000008) -#define EMBER_AF_SNAPSHOT_CAUSE_CHANGE_OF_TARIFF_INFORMATION_OFFSET (3) -#define EMBER_AF_SNAPSHOT_CAUSE_CHANGE_OF_PRICE_MATRIX (0x00000010) -#define EMBER_AF_SNAPSHOT_CAUSE_CHANGE_OF_PRICE_MATRIX_OFFSET (4) -#define EMBER_AF_SNAPSHOT_CAUSE_CHANGE_OF_BLOCK_THRESHOLDS (0x00000020) -#define EMBER_AF_SNAPSHOT_CAUSE_CHANGE_OF_BLOCK_THRESHOLDS_OFFSET (5) -#define EMBER_AF_SNAPSHOT_CAUSE_CHANGE_OF_CV (0x00000040) -#define EMBER_AF_SNAPSHOT_CAUSE_CHANGE_OF_CV_OFFSET (6) -#define EMBER_AF_SNAPSHOT_CAUSE_CHANGE_OF_CF (0x00000080) -#define EMBER_AF_SNAPSHOT_CAUSE_CHANGE_OF_CF_OFFSET (7) -#define EMBER_AF_SNAPSHOT_CAUSE_CHANGE_OF_CALENDAR (0x00000100) -#define EMBER_AF_SNAPSHOT_CAUSE_CHANGE_OF_CALENDAR_OFFSET (8) -#define EMBER_AF_SNAPSHOT_CAUSE_CRITICAL_PEAK_PRICING (0x00000200) -#define EMBER_AF_SNAPSHOT_CAUSE_CRITICAL_PEAK_PRICING_OFFSET (9) -#define EMBER_AF_SNAPSHOT_CAUSE_MANUALLY_TRIGGERED_FROM_CLIENT (0x00000400) -#define EMBER_AF_SNAPSHOT_CAUSE_MANUALLY_TRIGGERED_FROM_CLIENT_OFFSET (10) -#define EMBER_AF_SNAPSHOT_CAUSE_END_OF_RESOLVE_PERIOD (0x00000800) -#define EMBER_AF_SNAPSHOT_CAUSE_END_OF_RESOLVE_PERIOD_OFFSET (11) -#define EMBER_AF_SNAPSHOT_CAUSE_CHANGE_OF_TENANCY (0x00001000) -#define EMBER_AF_SNAPSHOT_CAUSE_CHANGE_OF_TENANCY_OFFSET (12) -#define EMBER_AF_SNAPSHOT_CAUSE_CHANGE_OF_SUPPLIER (0x00002000) -#define EMBER_AF_SNAPSHOT_CAUSE_CHANGE_OF_SUPPLIER_OFFSET (13) -#define EMBER_AF_SNAPSHOT_CAUSE_CHANGE_OF_MODE (0x00004000) -#define EMBER_AF_SNAPSHOT_CAUSE_CHANGE_OF_MODE_OFFSET (14) -#define EMBER_AF_SNAPSHOT_CAUSE_DEBT_PAYMENT (0x00008000) -#define EMBER_AF_SNAPSHOT_CAUSE_DEBT_PAYMENT_OFFSET (15) -#define EMBER_AF_SNAPSHOT_CAUSE_SCHEDULED_SNAPSHOT (0x00010000) -#define EMBER_AF_SNAPSHOT_CAUSE_SCHEDULED_SNAPSHOT_OFFSET (16) -#define EMBER_AF_SNAPSHOT_CAUSE_OTA_FIRMWARE_DOWNLOAD (0x00020000) -#define EMBER_AF_SNAPSHOT_CAUSE_OTA_FIRMWARE_DOWNLOAD_OFFSET (17) -#define EMBER_AF_SUPPLY_CONTROL_BITS_ACKNOWLEDGE_REQUIRED (0x01) -#define EMBER_AF_MESSAGING_CONTROL_MASK_TRANS_MECHANISM (0x03) -#define EMBER_AF_MESSAGING_CONTROL_MASK_MESSAGE_URGENCY (0x0C) -#define EMBER_AF_MESSAGING_CONTROL_MASK_MESSAGE_URGENCY_OFFSET (2) -#define EMBER_AF_MESSAGING_CONTROL_MASK_ENHANCED_CONFIRMATION_REQUEST (0x20) -#define EMBER_AF_MESSAGING_CONTROL_MASK_ENHANCED_CONFIRMATION_REQUEST_OFFSET (5) -#define EMBER_AF_MESSAGING_CONTROL_MASK_MESSAGE_CONFIRMATION (0x80) -#define EMBER_AF_MESSAGING_CONTROL_MASK_MESSAGE_CONFIRMATION_OFFSET (7) -#define EMBER_AF_MESSAGING_EXTENDED_CONTROL_MASK_MESSAGE_CONFIRMATION_STATUS (0x01) -#define EMBER_AF_MESSAGING_CONFIRMATION_CONTROL_NO_RETURNED (0x01) -#define EMBER_AF_MESSAGING_CONFIRMATION_CONTROL_YES_RETURNED (0x02) -#define EMBER_AF_MESSAGING_CONFIRMATION_CONTROL_YES_RETURNED_OFFSET (1) -#define EMBER_AF_PAYMENT_CONTROL_CONFIGURATION_DISCONNECTION_ENABLED (0x0001) -#define EMBER_AF_PAYMENT_CONTROL_CONFIGURATION_PREPAYMENT_ENABLED (0x0002) -#define EMBER_AF_PAYMENT_CONTROL_CONFIGURATION_PREPAYMENT_ENABLED_OFFSET (1) -#define EMBER_AF_PAYMENT_CONTROL_CONFIGURATION_CREDIT_MANAGEMENT_ENABLED (0x0004) -#define EMBER_AF_PAYMENT_CONTROL_CONFIGURATION_CREDIT_MANAGEMENT_ENABLED_OFFSET (2) -#define EMBER_AF_PAYMENT_CONTROL_CONFIGURATION_CREDIT_DISPLAY_ENABLED (0x0010) -#define EMBER_AF_PAYMENT_CONTROL_CONFIGURATION_CREDIT_DISPLAY_ENABLED_OFFSET (4) -#define EMBER_AF_PAYMENT_CONTROL_CONFIGURATION_ACCOUNT_BASE (0x0040) -#define EMBER_AF_PAYMENT_CONTROL_CONFIGURATION_ACCOUNT_BASE_OFFSET (6) -#define EMBER_AF_PAYMENT_CONTROL_CONFIGURATION_CONTACTOR_FITTED (0x0080) -#define EMBER_AF_PAYMENT_CONTROL_CONFIGURATION_CONTACTOR_FITTED_OFFSET (7) -#define EMBER_AF_PAYMENT_CONTROL_CONFIGURATION_STANDING_CHARGE_CONFIGURATION (0x0100) -#define EMBER_AF_PAYMENT_CONTROL_CONFIGURATION_STANDING_CHARGE_CONFIGURATION_OFFSET (8) -#define EMBER_AF_PAYMENT_CONTROL_CONFIGURATION_EMERGENCY_STANDING_CHARGE_CONFIGURATION (0x0200) -#define EMBER_AF_PAYMENT_CONTROL_CONFIGURATION_EMERGENCY_STANDING_CHARGE_CONFIGURATION_OFFSET (9) -#define EMBER_AF_PAYMENT_CONTROL_CONFIGURATION_DEBT_CONFIGURATION (0x0400) -#define EMBER_AF_PAYMENT_CONTROL_CONFIGURATION_DEBT_CONFIGURATION_OFFSET (10) -#define EMBER_AF_PAYMENT_CONTROL_CONFIGURATION_EMERGENCY_DEBT_CONFIGURATION (0x0800) -#define EMBER_AF_PAYMENT_CONTROL_CONFIGURATION_EMERGENCY_DEBT_CONFIGURATION_OFFSET (11) -#define EMBER_AF_CREDIT_STATUS_CREDIT_OK (0x01) -#define EMBER_AF_CREDIT_STATUS_LOW_CREDIT (0x02) -#define EMBER_AF_CREDIT_STATUS_LOW_CREDIT_OFFSET (1) -#define EMBER_AF_CREDIT_STATUS_EMERGENCY_CREDIT_ENABLED (0x04) -#define EMBER_AF_CREDIT_STATUS_EMERGENCY_CREDIT_ENABLED_OFFSET (2) -#define EMBER_AF_CREDIT_STATUS_EMERGENCY_CREDIT_AVAILABLE (0x08) -#define EMBER_AF_CREDIT_STATUS_EMERGENCY_CREDIT_AVAILABLE_OFFSET (3) -#define EMBER_AF_CREDIT_STATUS_EMERGENCY_CREDIT_SELECTED (0x10) -#define EMBER_AF_CREDIT_STATUS_EMERGENCY_CREDIT_SELECTED_OFFSET (4) -#define EMBER_AF_CREDIT_STATUS_EMERGENCY_CREDIT_IN_USE (0x20) -#define EMBER_AF_CREDIT_STATUS_EMERGENCY_CREDIT_IN_USE_OFFSET (5) -#define EMBER_AF_CREDIT_STATUS_CREDIT_EXHAUSTED (0x40) -#define EMBER_AF_CREDIT_STATUS_CREDIT_EXHAUSTED_OFFSET (6) -#define EMBER_AF_PREPAYMENT_ALARM_STATUS_LOW_CREDIT_WARNING (0x0001) -#define EMBER_AF_PREPAYMENT_ALARM_STATUS_TOP_UP_CODE_ERROR (0x0002) -#define EMBER_AF_PREPAYMENT_ALARM_STATUS_TOP_UP_CODE_ERROR_OFFSET (1) -#define EMBER_AF_PREPAYMENT_ALARM_STATUS_TOP_UP_CODE_ALREADY_USED (0x0004) -#define EMBER_AF_PREPAYMENT_ALARM_STATUS_TOP_UP_CODE_ALREADY_USED_OFFSET (2) -#define EMBER_AF_PREPAYMENT_ALARM_STATUS_TOP_UP_CODE_INVALID (0x0008) -#define EMBER_AF_PREPAYMENT_ALARM_STATUS_TOP_UP_CODE_INVALID_OFFSET (3) -#define EMBER_AF_PREPAYMENT_ALARM_STATUS_FRIENDLY_CREDIT_IN_USE (0x0010) -#define EMBER_AF_PREPAYMENT_ALARM_STATUS_FRIENDLY_CREDIT_IN_USE_OFFSET (4) -#define EMBER_AF_PREPAYMENT_ALARM_STATUS_FRIENDLY_CREDIT_PERIOD_END_WARNING (0x0020) -#define EMBER_AF_PREPAYMENT_ALARM_STATUS_FRIENDLY_CREDIT_PERIOD_END_WARNING_OFFSET (5) -#define EMBER_AF_PREPAYMENT_ALARM_STATUS_EC_AVAILABLE (0x0040) -#define EMBER_AF_PREPAYMENT_ALARM_STATUS_EC_AVAILABLE_OFFSET (6) -#define EMBER_AF_PREPAYMENT_ALARM_STATUS_UNAUTHORISED_ENERGY_USE (0x0080) -#define EMBER_AF_PREPAYMENT_ALARM_STATUS_UNAUTHORISED_ENERGY_USE_OFFSET (7) -#define EMBER_AF_PREPAYMENT_ALARM_STATUS_DISCONNECTED_SUPPLY_DUE_TO_CREDIT (0x0100) -#define EMBER_AF_PREPAYMENT_ALARM_STATUS_DISCONNECTED_SUPPLY_DUE_TO_CREDIT_OFFSET (8) -#define EMBER_AF_PREPAYMENT_ALARM_STATUS_DISCONNECTED_SUPPLY_DUE_TO_TAMPER (0x0200) -#define EMBER_AF_PREPAYMENT_ALARM_STATUS_DISCONNECTED_SUPPLY_DUE_TO_TAMPER_OFFSET (9) -#define EMBER_AF_PREPAYMENT_ALARM_STATUS_DISCONNECTED_SUPPLY_DUE_TO_HES (0x0400) -#define EMBER_AF_PREPAYMENT_ALARM_STATUS_DISCONNECTED_SUPPLY_DUE_TO_HES_OFFSET (10) -#define EMBER_AF_PREPAYMENT_ALARM_STATUS_PHYSICAL_ATTACK (0x0800) -#define EMBER_AF_PREPAYMENT_ALARM_STATUS_PHYSICAL_ATTACK_OFFSET (11) -#define EMBER_AF_PREPAYMENT_ALARM_STATUS_ELECTRONIC_ATTACK (0x1000) -#define EMBER_AF_PREPAYMENT_ALARM_STATUS_ELECTRONIC_ATTACK_OFFSET (12) -#define EMBER_AF_PREPAYMENT_ALARM_STATUS_MANUFACTURE_ALARM_CODE_A (0x2000) -#define EMBER_AF_PREPAYMENT_ALARM_STATUS_MANUFACTURE_ALARM_CODE_A_OFFSET (13) -#define EMBER_AF_PREPAYMENT_ALARM_STATUS_MANUFACTURE_ALARM_CODE_B (0x4000) -#define EMBER_AF_PREPAYMENT_ALARM_STATUS_MANUFACTURE_ALARM_CODE_B_OFFSET (14) -#define EMBER_AF_ORIGINATOR_ID_SUPPLY_CONTROL_BITS_ACKNOWLEDGE_REQUIRED (0x01) -#define EMBER_AF_PREPAY_SNAPSHOT_PAYLOAD_CAUSE_GENERAL (0x00000001) -#define EMBER_AF_PREPAY_SNAPSHOT_PAYLOAD_CAUSE_CHANGE_OF_TARIFF_INFORMATION (0x00000008) -#define EMBER_AF_PREPAY_SNAPSHOT_PAYLOAD_CAUSE_CHANGE_OF_TARIFF_INFORMATION_OFFSET (3) -#define EMBER_AF_PREPAY_SNAPSHOT_PAYLOAD_CAUSE_CHANGE_OF_PRICE_MATRIX (0x00000010) -#define EMBER_AF_PREPAY_SNAPSHOT_PAYLOAD_CAUSE_CHANGE_OF_PRICE_MATRIX_OFFSET (4) -#define EMBER_AF_PREPAY_SNAPSHOT_PAYLOAD_CAUSE_MANUALLY_TRIGGERED_FROM_CLIENT (0x00000400) -#define EMBER_AF_PREPAY_SNAPSHOT_PAYLOAD_CAUSE_MANUALLY_TRIGGERED_FROM_CLIENT_OFFSET (10) -#define EMBER_AF_PREPAY_SNAPSHOT_PAYLOAD_CAUSE_CHANGE_OF_TENANCY (0x00001000) -#define EMBER_AF_PREPAY_SNAPSHOT_PAYLOAD_CAUSE_CHANGE_OF_TENANCY_OFFSET (12) -#define EMBER_AF_PREPAY_SNAPSHOT_PAYLOAD_CAUSE_CHANGE_OF_SUPPLIER (0x00002000) -#define EMBER_AF_PREPAY_SNAPSHOT_PAYLOAD_CAUSE_CHANGE_OF_SUPPLIER_OFFSET (13) -#define EMBER_AF_PREPAY_SNAPSHOT_PAYLOAD_CAUSE_CHANGE_OF_METER_MODE (0x00004000) -#define EMBER_AF_PREPAY_SNAPSHOT_PAYLOAD_CAUSE_CHANGE_OF_METER_MODE_OFFSET (14) -#define EMBER_AF_PREPAY_SNAPSHOT_PAYLOAD_CAUSE_TOP_UP_ADDITION (0x00040000) -#define EMBER_AF_PREPAY_SNAPSHOT_PAYLOAD_CAUSE_TOP_UP_ADDITION_OFFSET (18) -#define EMBER_AF_PREPAY_SNAPSHOT_PAYLOAD_CAUSE_DEBT_CREDIT_ADDITION (0x00080000) -#define EMBER_AF_PREPAY_SNAPSHOT_PAYLOAD_CAUSE_DEBT_CREDIT_ADDITION_OFFSET (19) -#define EMBER_AF_FRIENDLY_CREDIT_FRIENDLY_CREDIT_ENABLED (0x01) -#define EMBER_AF_LOAD_CONTROL_STATE_RELAY_OPEN_OR_CONSUMPTION_INTERUPTED (0x01) -#define EMBER_AF_LOAD_CONTROL_STATE_EVENT_IN_PROGRESS (0x02) -#define EMBER_AF_LOAD_CONTROL_STATE_EVENT_IN_PROGRESS_OFFSET (1) -#define EMBER_AF_LOAD_CONTROL_STATE_POWER_STABILIZING (0x04) -#define EMBER_AF_LOAD_CONTROL_STATE_POWER_STABILIZING_OFFSET (2) -#define EMBER_AF_LOAD_CONTROL_STATE_OTHER_LOAD_REDUCTION (0x08) -#define EMBER_AF_LOAD_CONTROL_STATE_OTHER_LOAD_REDUCTION_OFFSET (3) -#define EMBER_AF_LOAD_CONTROL_STATE_CURRENT_FLOW_OR_CONSUMING_COMMODITY (0x10) -#define EMBER_AF_LOAD_CONTROL_STATE_CURRENT_FLOW_OR_CONSUMING_COMMODITY_OFFSET (4) -#define EMBER_AF_LOAD_CONTROL_STATE_LOAD_CALL (0x20) -#define EMBER_AF_LOAD_CONTROL_STATE_LOAD_CALL_OFFSET (5) -#define EMBER_AF_CURRENT_EVENT_STATUS_RANDOMIZED_START_TIME (0x01) -#define EMBER_AF_CURRENT_EVENT_STATUS_RANDOMIZED_DURATION (0x02) -#define EMBER_AF_CURRENT_EVENT_STATUS_RANDOMIZED_DURATION_OFFSET (1) -#define EMBER_AF_CURRENT_EVENT_STATUS_EXTENDED_BITS_PRESENT (0x04) -#define EMBER_AF_CURRENT_EVENT_STATUS_EXTENDED_BITS_PRESENT_OFFSET (2) -#define EMBER_AF_CURRENT_EVENT_STATUS_EVENT_ACTIVE (0x08) -#define EMBER_AF_CURRENT_EVENT_STATUS_EVENT_ACTIVE_OFFSET (3) -#define EMBER_AF_CURRENT_EVENT_STATUS_DEVICE_PARTICIPATING_IN_EVENT (0x10) -#define EMBER_AF_CURRENT_EVENT_STATUS_DEVICE_PARTICIPATING_IN_EVENT_OFFSET (4) -#define EMBER_AF_CURRENT_EVENT_STATUS_REDUCING_LOAD (0x20) -#define EMBER_AF_CURRENT_EVENT_STATUS_REDUCING_LOAD_OFFSET (5) -#define EMBER_AF_CURRENT_EVENT_STATUS_ON_AT_END_OF_EVENT (0x40) -#define EMBER_AF_CURRENT_EVENT_STATUS_ON_AT_END_OF_EVENT_OFFSET (6) -#define EMBER_AF_AUXILIARY_LOAD_SWITCH_STATE_AUXILIARY_SWITCH1 (0x01) -#define EMBER_AF_AUXILIARY_LOAD_SWITCH_STATE_AUXILIARY_SWITCH2 (0x02) -#define EMBER_AF_AUXILIARY_LOAD_SWITCH_STATE_AUXILIARY_SWITCH2_OFFSET (1) -#define EMBER_AF_AUXILIARY_LOAD_SWITCH_STATE_AUXILIARY_SWITCH3 (0x04) -#define EMBER_AF_AUXILIARY_LOAD_SWITCH_STATE_AUXILIARY_SWITCH3_OFFSET (2) -#define EMBER_AF_AUXILIARY_LOAD_SWITCH_STATE_AUXILIARY_SWITCH4 (0x08) -#define EMBER_AF_AUXILIARY_LOAD_SWITCH_STATE_AUXILIARY_SWITCH4_OFFSET (3) -#define EMBER_AF_AUXILIARY_LOAD_SWITCH_STATE_AUXILIARY_SWITCH5 (0x10) -#define EMBER_AF_AUXILIARY_LOAD_SWITCH_STATE_AUXILIARY_SWITCH5_OFFSET (4) -#define EMBER_AF_AUXILIARY_LOAD_SWITCH_STATE_AUXILIARY_SWITCH6 (0x20) -#define EMBER_AF_AUXILIARY_LOAD_SWITCH_STATE_AUXILIARY_SWITCH6_OFFSET (5) -#define EMBER_AF_AUXILIARY_LOAD_SWITCH_STATE_AUXILIARY_SWITCH7 (0x40) -#define EMBER_AF_AUXILIARY_LOAD_SWITCH_STATE_AUXILIARY_SWITCH7_OFFSET (6) -#define EMBER_AF_AUXILIARY_LOAD_SWITCH_STATE_AUXILIARY_SWITCH8 (0x80) -#define EMBER_AF_AUXILIARY_LOAD_SWITCH_STATE_AUXILIARY_SWITCH8_OFFSET (7) -#define EMBER_AF_PROPOSED_CHANGE_CONTROL_PRE_SNAPSHOTS (0x00000001) -#define EMBER_AF_PROPOSED_CHANGE_CONTROL_POST_SNAPSHOTS (0x00000002) -#define EMBER_AF_PROPOSED_CHANGE_CONTROL_POST_SNAPSHOTS_OFFSET (1) -#define EMBER_AF_PROPOSED_CHANGE_CONTROL_RESET_CREDIT_REGISTER (0x00000004) -#define EMBER_AF_PROPOSED_CHANGE_CONTROL_RESET_CREDIT_REGISTER_OFFSET (2) -#define EMBER_AF_PROPOSED_CHANGE_CONTROL_RESET_DEBIT_REGISTER (0x00000008) -#define EMBER_AF_PROPOSED_CHANGE_CONTROL_RESET_DEBIT_REGISTER_OFFSET (3) -#define EMBER_AF_PROPOSED_CHANGE_CONTROL_RESET_BILLING_PERIOD (0x00000010) -#define EMBER_AF_PROPOSED_CHANGE_CONTROL_RESET_BILLING_PERIOD_OFFSET (4) -#define EMBER_AF_PROPOSED_CHANGE_CONTROL_CLEAR_TARIFF_PLAN (0x00000020) -#define EMBER_AF_PROPOSED_CHANGE_CONTROL_CLEAR_TARIFF_PLAN_OFFSET (5) -#define EMBER_AF_PROPOSED_CHANGE_CONTROL_CLEAR_STANDING_CHARGE (0x00000040) -#define EMBER_AF_PROPOSED_CHANGE_CONTROL_CLEAR_STANDING_CHARGE_OFFSET (6) -#define EMBER_AF_PROPOSED_CHANGE_CONTROL_BLOCK_HISTORICAL_LOAD_PROFILE_INFORMATION (0x00000080) -#define EMBER_AF_PROPOSED_CHANGE_CONTROL_BLOCK_HISTORICAL_LOAD_PROFILE_INFORMATION_OFFSET (7) -#define EMBER_AF_PROPOSED_CHANGE_CONTROL_CLEAR_HISTORICAL_LOAD_PROFILE_INFORMATION (0x00000100) -#define EMBER_AF_PROPOSED_CHANGE_CONTROL_CLEAR_HISTORICAL_LOAD_PROFILE_INFORMATION_OFFSET (8) -#define EMBER_AF_PROPOSED_CHANGE_CONTROL_CLEAR_IHD_DATA_CONSUMER (0x00000200) -#define EMBER_AF_PROPOSED_CHANGE_CONTROL_CLEAR_IHD_DATA_CONSUMER_OFFSET (9) -#define EMBER_AF_PROPOSED_CHANGE_CONTROL_CLEAR_IHD_DATA_SUPPLIER (0x00000400) -#define EMBER_AF_PROPOSED_CHANGE_CONTROL_CLEAR_IHD_DATA_SUPPLIER_OFFSET (10) -#define EMBER_AF_PROPOSED_CHANGE_CONTROL_METER_CONNECTOR_STATE_ON_OFF_ARMED (0x00001800) -#define EMBER_AF_PROPOSED_CHANGE_CONTROL_METER_CONNECTOR_STATE_ON_OFF_ARMED_OFFSET (11) -#define EMBER_AF_PROPOSED_CHANGE_CONTROL_CLEAR_TRANSACTION_LOG (0x00002000) -#define EMBER_AF_PROPOSED_CHANGE_CONTROL_CLEAR_TRANSACTION_LOG_OFFSET (13) -#define EMBER_AF_PROPOSED_CHANGE_CONTROL_CLEAR_PREPAYMENT_LOG (0x00004000) -#define EMBER_AF_PROPOSED_CHANGE_CONTROL_CLEAR_PREPAYMENT_LOG_OFFSET (14) -#define EMBER_AF_EVENT_CONFIGURATION_LOG_ACTION (0x07) -#define EMBER_AF_EVENT_CONFIGURATION_PUSH_EVENT_TO_W_A_N (0x08) -#define EMBER_AF_EVENT_CONFIGURATION_PUSH_EVENT_TO_W_A_N_OFFSET (3) -#define EMBER_AF_EVENT_CONFIGURATION_PUSH_EVENT_TO_H_A_N (0x10) -#define EMBER_AF_EVENT_CONFIGURATION_PUSH_EVENT_TO_H_A_N_OFFSET (4) -#define EMBER_AF_EVENT_CONFIGURATION_RAISE_ALARM_ZIG_BEE (0x20) -#define EMBER_AF_EVENT_CONFIGURATION_RAISE_ALARM_ZIG_BEE_OFFSET (5) -#define EMBER_AF_EVENT_CONFIGURATION_RAISE_ALARM_PHYSICAL (0x40) -#define EMBER_AF_EVENT_CONFIGURATION_RAISE_ALARM_PHYSICAL_OFFSET (6) -#define EMBER_AF_EVENT_CONTROL_LOG_ID_LOG_ID (0x0F) -#define EMBER_AF_EVENT_CONTROL_LOG_ID_EVENT_CONTROL (0xF0) -#define EMBER_AF_EVENT_CONTROL_LOG_ID_EVENT_CONTROL_OFFSET (4) -#define EMBER_AF_EVENT_ACTION_CONTROL_REPORT_EVENT_TO_H_A_N_DEVICES (0x01) -#define EMBER_AF_EVENT_ACTION_CONTROL_REPORT_EVENT_TO_W_A_N (0x02) -#define EMBER_AF_EVENT_ACTION_CONTROL_REPORT_EVENT_TO_W_A_N_OFFSET (1) -#define EMBER_AF_NUMBER_OF_EVENTS_LOG_PAYLOAD_CONTROL_LOG_PAYLOAD_CONTROL (0x0F) -#define EMBER_AF_NUMBER_OF_EVENTS_LOG_PAYLOAD_CONTROL_NUMBER_OF_EVENTS (0xF0) -#define EMBER_AF_NUMBER_OF_EVENTS_LOG_PAYLOAD_CONTROL_NUMBER_OF_EVENTS_OFFSET (4) -#define EMBER_AF_CLEARED_EVENTS_LOGS_ALL_LOGS_CLEARED (0x01) -#define EMBER_AF_CLEARED_EVENTS_LOGS_TAMPER_LOG_CLEARED (0x02) -#define EMBER_AF_CLEARED_EVENTS_LOGS_TAMPER_LOG_CLEARED_OFFSET (1) -#define EMBER_AF_CLEARED_EVENTS_LOGS_FAULT_LOG_CLEARED (0x04) -#define EMBER_AF_CLEARED_EVENTS_LOGS_FAULT_LOG_CLEARED_OFFSET (2) -#define EMBER_AF_CLEARED_EVENTS_LOGS_GENERAL_EVENT_LOG_CLEARED (0x08) -#define EMBER_AF_CLEARED_EVENTS_LOGS_GENERAL_EVENT_LOG_CLEARED_OFFSET (3) -#define EMBER_AF_CLEARED_EVENTS_LOGS_SECURITY_EVENT_LOG_CLEARED (0x10) -#define EMBER_AF_CLEARED_EVENTS_LOGS_SECURITY_EVENT_LOG_CLEARED_OFFSET (4) -#define EMBER_AF_CLEARED_EVENTS_LOGS_NETWORK_EVENT_LOG_CLEARED (0x20) -#define EMBER_AF_CLEARED_EVENTS_LOGS_NETWORK_EVENT_LOG_CLEARED_OFFSET (5) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL0 (0x00000001) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL1 (0x00000002) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL1_OFFSET (1) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL2 (0x00000004) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL2_OFFSET (2) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL3 (0x00000008) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL3_OFFSET (3) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL4 (0x00000010) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL4_OFFSET (4) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL5 (0x00000020) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL5_OFFSET (5) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL6 (0x00000040) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL6_OFFSET (6) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL7 (0x00000080) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL7_OFFSET (7) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL8 (0x00000100) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL8_OFFSET (8) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL9 (0x00000200) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL9_OFFSET (9) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL10 (0x00000400) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL10_OFFSET (10) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL11 (0x00000800) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL11_OFFSET (11) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL12 (0x00001000) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL12_OFFSET (12) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL13 (0x00002000) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL13_OFFSET (13) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL14 (0x00004000) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL14_OFFSET (14) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL15 (0x00008000) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL15_OFFSET (15) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL16 (0x00010000) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL16_OFFSET (16) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL17 (0x00020000) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL17_OFFSET (17) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL18 (0x00040000) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL18_OFFSET (18) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL19 (0x00080000) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL19_OFFSET (19) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL20 (0x00100000) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL20_OFFSET (20) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL21 (0x00200000) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL21_OFFSET (21) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL22 (0x00400000) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL22_OFFSET (22) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL23 (0x00800000) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL23_OFFSET (23) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL24 (0x01000000) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL24_OFFSET (24) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL25 (0x02000000) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL25_OFFSET (25) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL26 (0x04000000) -#define EMBER_AF_CHANNEL_MASK915_CHANNEL26_OFFSET (26) -#define EMBER_AF_CHANNEL_MASK_PAGE (0xF8000000) -#define EMBER_AF_CHANNEL_MASK_PAGE_OFFSET (27) -#define EMBER_AF_SCENES_COPY_MODE_COPY_ALL_SCENES (0x01) -#define EMBER_AF_ON_OFF_CONTROL_ACCEPT_ONLY_WHEN_ON (0x01) -#define EMBER_AF_COLOR_CAPABILITIES_HUE_SATURATION_SUPPORTED (0x0001) -#define EMBER_AF_COLOR_CAPABILITIES_ENHANCED_HUE_SUPPORTED (0x0002) -#define EMBER_AF_COLOR_CAPABILITIES_ENHANCED_HUE_SUPPORTED_OFFSET (1) -#define EMBER_AF_COLOR_CAPABILITIES_COLOR_LOOP_SUPPORTED (0x0004) -#define EMBER_AF_COLOR_CAPABILITIES_COLOR_LOOP_SUPPORTED_OFFSET (2) -#define EMBER_AF_COLOR_CAPABILITIES_X_Y_ATTRIBUTES_SUPPORTED (0x0008) -#define EMBER_AF_COLOR_CAPABILITIES_X_Y_ATTRIBUTES_SUPPORTED_OFFSET (3) -#define EMBER_AF_COLOR_CAPABILITIES_COLOR_TEMPERATURE_SUPPORTED (0x0010) -#define EMBER_AF_COLOR_CAPABILITIES_COLOR_TEMPERATURE_SUPPORTED_OFFSET (4) -#define EMBER_AF_COLOR_LOOP_UPDATE_FLAGS_UPDATE_ACTION (0x01) -#define EMBER_AF_COLOR_LOOP_UPDATE_FLAGS_UPDATE_DIRECTION (0x02) -#define EMBER_AF_COLOR_LOOP_UPDATE_FLAGS_UPDATE_DIRECTION_OFFSET (1) -#define EMBER_AF_COLOR_LOOP_UPDATE_FLAGS_UPDATE_TIME (0x04) -#define EMBER_AF_COLOR_LOOP_UPDATE_FLAGS_UPDATE_TIME_OFFSET (2) -#define EMBER_AF_COLOR_LOOP_UPDATE_FLAGS_UPDATE_START_HUE (0x08) -#define EMBER_AF_COLOR_LOOP_UPDATE_FLAGS_UPDATE_START_HUE_OFFSET (3) -#define EMBER_AF_ZIGBEE_INFORMATION_LOGICAL_TYPE (0x03) -#define EMBER_AF_ZIGBEE_INFORMATION_RX_ON_WHEN_IDLE (0x04) -#define EMBER_AF_ZIGBEE_INFORMATION_RX_ON_WHEN_IDLE_OFFSET (2) -#define EMBER_AF_ZLL_INFORMATION_FACTORY_NEW (0x01) -#define EMBER_AF_ZLL_INFORMATION_ADDRESS_ASSIGNMENT (0x02) -#define EMBER_AF_ZLL_INFORMATION_ADDRESS_ASSIGNMENT_OFFSET (1) -#define EMBER_AF_ZLL_INFORMATION_TOUCH_LINK_INITIATOR (0x10) -#define EMBER_AF_ZLL_INFORMATION_TOUCH_LINK_INITIATOR_OFFSET (4) -#define EMBER_AF_ZLL_INFORMATION_TOUCH_LINK_PRIORITY_REQUEST (0x20) -#define EMBER_AF_ZLL_INFORMATION_TOUCH_LINK_PRIORITY_REQUEST_OFFSET (5) -#define EMBER_AF_ZLL_INFORMATION_PROFILE_INTEROP (0x80) -#define EMBER_AF_ZLL_INFORMATION_PROFILE_INTEROP_OFFSET (7) -#define EMBER_AF_KEY_BITMASK_DEVELOPMENT (0x0001) -#define EMBER_AF_KEY_BITMASK_MASTER (0x0010) -#define EMBER_AF_KEY_BITMASK_MASTER_OFFSET (4) -#define EMBER_AF_KEY_BITMASK_CERTIFICATION (0x8000) -#define EMBER_AF_KEY_BITMASK_CERTIFICATION_OFFSET (15) +#define EMBER_AF_GET_LOCATION_DATA_FLAGS_ABSOLUTE_ONLY (0x1) +#define EMBER_AF_GET_LOCATION_DATA_FLAGS_ABSOLUTE_ONLY_OFFSET (0) +#define EMBER_AF_GET_LOCATION_DATA_FLAGS_RECALCULATE (0x2) +#define EMBER_AF_GET_LOCATION_DATA_FLAGS_RECALCULATE_OFFSET (1) +#define EMBER_AF_GET_LOCATION_DATA_FLAGS_BROADCAST (0x4) +#define EMBER_AF_GET_LOCATION_DATA_FLAGS_BROADCAST_OFFSET (2) +#define EMBER_AF_GET_LOCATION_DATA_FLAGS_BROADCAST_RESPONSE (0x8) +#define EMBER_AF_GET_LOCATION_DATA_FLAGS_BROADCAST_RESPONSE_OFFSET (3) +#define EMBER_AF_GET_LOCATION_DATA_FLAGS_COMPACT_RESPONSE (0x10) +#define EMBER_AF_GET_LOCATION_DATA_FLAGS_COMPACT_RESPONSE_OFFSET (4) +#define EMBER_AF_GP_APPLICATION_INFORMATION_MANUFACTURE_ID_PRESENT (0x01) +#define EMBER_AF_GP_APPLICATION_INFORMATION_MANUFACTURE_ID_PRESENT_OFFSET (0) +#define EMBER_AF_GP_APPLICATION_INFORMATION_MODEL_ID_PRESENT (0x02) +#define EMBER_AF_GP_APPLICATION_INFORMATION_MODEL_ID_PRESENT_OFFSET (1) +#define EMBER_AF_GP_APPLICATION_INFORMATION_GPD_COMMANDS_PRESENT (0x04) +#define EMBER_AF_GP_APPLICATION_INFORMATION_GPD_COMMANDS_PRESENT_OFFSET (2) +#define EMBER_AF_GP_APPLICATION_INFORMATION_CLUSTER_LIST_PRESENT (0x08) +#define EMBER_AF_GP_APPLICATION_INFORMATION_CLUSTER_LIST_PRESENT_OFFSET (3) +#define EMBER_AF_GP_APPLICATION_INFORMATION_SWITCH_INFORMATION_PRESENT (0x10) +#define EMBER_AF_GP_APPLICATION_INFORMATION_SWITCH_INFORMATION_PRESENT_OFFSET (4) +#define EMBER_AF_GP_APPLICATION_INFORMATION_APPLICATION_DESCRIPTION_PRESENT (0x20) +#define EMBER_AF_GP_APPLICATION_INFORMATION_APPLICATION_DESCRIPTION_PRESENT_OFFSET (5) +#define EMBER_AF_GP_COMMISSIONING_NOTIFICATION_OPTION_APPLICATION_ID (0x0007) +#define EMBER_AF_GP_COMMISSIONING_NOTIFICATION_OPTION_APPLICATION_ID_OFFSET (0) +#define EMBER_AF_GP_COMMISSIONING_NOTIFICATION_OPTION_RX_AFTER_TX (0x0008) +#define EMBER_AF_GP_COMMISSIONING_NOTIFICATION_OPTION_RX_AFTER_TX_OFFSET (3) +#define EMBER_AF_GP_COMMISSIONING_NOTIFICATION_OPTION_SECURITY_LEVEL (0x0030) +#define EMBER_AF_GP_COMMISSIONING_NOTIFICATION_OPTION_SECURITY_LEVEL_OFFSET (4) +#define EMBER_AF_GP_COMMISSIONING_NOTIFICATION_OPTION_SECURITY_KEY_TYPE (0x01C0) +#define EMBER_AF_GP_COMMISSIONING_NOTIFICATION_OPTION_SECURITY_KEY_TYPE_OFFSET (6) +#define EMBER_AF_GP_COMMISSIONING_NOTIFICATION_OPTION_SECURITY_PROCESSING_FAILED (0x0200) +#define EMBER_AF_GP_COMMISSIONING_NOTIFICATION_OPTION_SECURITY_PROCESSING_FAILED_OFFSET (9) +#define EMBER_AF_GP_COMMISSIONING_NOTIFICATION_OPTION_BIDIRECTIONAL_CAPABILITY (0x0400) +#define EMBER_AF_GP_COMMISSIONING_NOTIFICATION_OPTION_BIDIRECTIONAL_CAPABILITY_OFFSET (10) +#define EMBER_AF_GP_COMMISSIONING_NOTIFICATION_OPTION_PROXY_INFO_PRESENT (0x0800) +#define EMBER_AF_GP_COMMISSIONING_NOTIFICATION_OPTION_PROXY_INFO_PRESENT_OFFSET (11) +#define EMBER_AF_GP_COMMISSIONING_NOTIFICATION_OPTION_RESERVED (0xF000) +#define EMBER_AF_GP_COMMISSIONING_NOTIFICATION_OPTION_RESERVED_OFFSET (12) +#define EMBER_AF_GP_GPD_CHANNEL_CONFIGURATION_CHANNEL_MASK (0x1F) +#define EMBER_AF_GP_GPD_CHANNEL_CONFIGURATION_CHANNEL_MASK_OFFSET (0) +#define EMBER_AF_GP_GPD_CHANNEL_CONFIGURATION_CHANNEL_OPERATIONAL_CHANNEL (0x0F) +#define EMBER_AF_GP_GPD_CHANNEL_CONFIGURATION_CHANNEL_OPERATIONAL_CHANNEL_OFFSET (0) +#define EMBER_AF_GP_GPD_CHANNEL_CONFIGURATION_CHANNEL_BASIC (0x10) +#define EMBER_AF_GP_GPD_CHANNEL_CONFIGURATION_CHANNEL_BASIC_OFFSET (4) +#define EMBER_AF_GP_GPD_CHANNEL_CONFIGURATION_CHANNEL_RESERVED (0xE0) +#define EMBER_AF_GP_GPD_CHANNEL_CONFIGURATION_CHANNEL_RESERVED_OFFSET (5) +#define EMBER_AF_GP_GPD_CHANNEL_REQUEST_CHANNEL_TOGGLING_BEHAVIOUR_RX_CHANNEL_NEXT_ATTEMPT (0x0F) +#define EMBER_AF_GP_GPD_CHANNEL_REQUEST_CHANNEL_TOGGLING_BEHAVIOUR_RX_CHANNEL_NEXT_ATTEMPT_OFFSET (0) +#define EMBER_AF_GP_GPD_CHANNEL_REQUEST_CHANNEL_TOGGLING_BEHAVIOUR_RX_CHANNEL_SECOND_NEXT_ATTEMPT (0xF0) +#define EMBER_AF_GP_GPD_CHANNEL_REQUEST_CHANNEL_TOGGLING_BEHAVIOUR_RX_CHANNEL_SECOND_NEXT_ATTEMPT_OFFSET (4) +#define EMBER_AF_GP_GPD_COMMISSIONING_EXTENDED_OPTIONS_SECURITY_LEVEL_CAPABILITIES (0x03) +#define EMBER_AF_GP_GPD_COMMISSIONING_EXTENDED_OPTIONS_SECURITY_LEVEL_CAPABILITIES_OFFSET (0) +#define EMBER_AF_GP_GPD_COMMISSIONING_EXTENDED_OPTIONS_KEY_TYPE (0x1C) +#define EMBER_AF_GP_GPD_COMMISSIONING_EXTENDED_OPTIONS_KEY_TYPE_OFFSET (2) +#define EMBER_AF_GP_GPD_COMMISSIONING_EXTENDED_OPTIONS_GPD_KEY_PRESENT (0x20) +#define EMBER_AF_GP_GPD_COMMISSIONING_EXTENDED_OPTIONS_GPD_KEY_PRESENT_OFFSET (5) +#define EMBER_AF_GP_GPD_COMMISSIONING_EXTENDED_OPTIONS_GPD_KEY_ENCRYPTION (0x40) +#define EMBER_AF_GP_GPD_COMMISSIONING_EXTENDED_OPTIONS_GPD_KEY_ENCRYPTION_OFFSET (6) +#define EMBER_AF_GP_GPD_COMMISSIONING_EXTENDED_OPTIONS_GPD_OUTGOING_COUNTER_PRESENT (0x80) +#define EMBER_AF_GP_GPD_COMMISSIONING_EXTENDED_OPTIONS_GPD_OUTGOING_COUNTER_PRESENT_OFFSET (7) +#define EMBER_AF_GP_GPD_COMMISSIONING_OPTIONS_MAC_SEQ_NUM_CAP (0x01) +#define EMBER_AF_GP_GPD_COMMISSIONING_OPTIONS_MAC_SEQ_NUM_CAP_OFFSET (0) +#define EMBER_AF_GP_GPD_COMMISSIONING_OPTIONS_RX_ON_CAP (0x02) +#define EMBER_AF_GP_GPD_COMMISSIONING_OPTIONS_RX_ON_CAP_OFFSET (1) +#define EMBER_AF_GP_GPD_COMMISSIONING_OPTIONS_APPLICATION_INFORMATION_PRESENT (0x04) +#define EMBER_AF_GP_GPD_COMMISSIONING_OPTIONS_APPLICATION_INFORMATION_PRESENT_OFFSET (2) +#define EMBER_AF_GP_GPD_COMMISSIONING_OPTIONS_RESERVED (0x08) +#define EMBER_AF_GP_GPD_COMMISSIONING_OPTIONS_RESERVED_OFFSET (3) +#define EMBER_AF_GP_GPD_COMMISSIONING_OPTIONS_PAN_ID_REQUEST (0x10) +#define EMBER_AF_GP_GPD_COMMISSIONING_OPTIONS_PAN_ID_REQUEST_OFFSET (4) +#define EMBER_AF_GP_GPD_COMMISSIONING_OPTIONS_GP_SECURITY_KEY_REQUEST (0x20) +#define EMBER_AF_GP_GPD_COMMISSIONING_OPTIONS_GP_SECURITY_KEY_REQUEST_OFFSET (5) +#define EMBER_AF_GP_GPD_COMMISSIONING_OPTIONS_FIXED_LOCATION (0x40) +#define EMBER_AF_GP_GPD_COMMISSIONING_OPTIONS_FIXED_LOCATION_OFFSET (6) +#define EMBER_AF_GP_GPD_COMMISSIONING_OPTIONS_EXTENDED_OPTIONS_FIELD (0x80) +#define EMBER_AF_GP_GPD_COMMISSIONING_OPTIONS_EXTENDED_OPTIONS_FIELD_OFFSET (7) +#define EMBER_AF_GP_GPD_COMMISSIONING_REPLY_OPTIONS_PAN_ID_PRESENT (0x01) +#define EMBER_AF_GP_GPD_COMMISSIONING_REPLY_OPTIONS_PAN_ID_PRESENT_OFFSET (0) +#define EMBER_AF_GP_GPD_COMMISSIONING_REPLY_OPTIONS_GPD_SECURITY_KEY_PRESENT (0x02) +#define EMBER_AF_GP_GPD_COMMISSIONING_REPLY_OPTIONS_GPD_SECURITY_KEY_PRESENT_OFFSET (1) +#define EMBER_AF_GP_GPD_COMMISSIONING_REPLY_OPTIONS_GPDKEY_ENCRYPTION (0x04) +#define EMBER_AF_GP_GPD_COMMISSIONING_REPLY_OPTIONS_GPDKEY_ENCRYPTION_OFFSET (2) +#define EMBER_AF_GP_GPD_COMMISSIONING_REPLY_OPTIONS_SECURITY_LEVEL (0x18) +#define EMBER_AF_GP_GPD_COMMISSIONING_REPLY_OPTIONS_SECURITY_LEVEL_OFFSET (3) +#define EMBER_AF_GP_GPD_COMMISSIONING_REPLY_OPTIONS_KEY_TYPE (0xE0) +#define EMBER_AF_GP_GPD_COMMISSIONING_REPLY_OPTIONS_KEY_TYPE_OFFSET (5) #define EMBER_AF_GP_GPS_FUNCTIONALITY_GP_FEATURE (0x000001) +#define EMBER_AF_GP_GPS_FUNCTIONALITY_GP_FEATURE_OFFSET (0) #define EMBER_AF_GP_GPS_FUNCTIONALITY_DIRECT_COMMUNICATION (0x000002) #define EMBER_AF_GP_GPS_FUNCTIONALITY_DIRECT_COMMUNICATION_OFFSET (1) #define EMBER_AF_GP_GPS_FUNCTIONALITY_DERIVED_GROUPCAST_COMMUNICATION (0x000004) @@ -3252,74 +3293,8 @@ typedef enum #define EMBER_AF_GP_GPS_FUNCTIONALITY_COMPACT_ATTRIBUTE_REPORTING_OFFSET (20) #define EMBER_AF_GP_GPS_FUNCTIONALITY_RESERVED (0xE00000) #define EMBER_AF_GP_GPS_FUNCTIONALITY_RESERVED_OFFSET (21) -#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_APPLICATION_ID (0x00000007) -#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_ENTRY_ACTIVE (0x00000008) -#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_ENTRY_ACTIVE_OFFSET (3) -#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_ENTRY_VALID (0x00000010) -#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_ENTRY_VALID_OFFSET (4) -#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_SEQUENCE_NUMBER_CAP (0x00000020) -#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_SEQUENCE_NUMBER_CAP_OFFSET (5) -#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_LIGHTWEIGHT_UNICAST_GPS (0x00000040) -#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_LIGHTWEIGHT_UNICAST_GPS_OFFSET (6) -#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_DERIVED_GROUP_GPS (0x00000080) -#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_DERIVED_GROUP_GPS_OFFSET (7) -#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_COMMISIONED_GROUP_GPS (0x00000100) -#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_COMMISIONED_GROUP_GPS_OFFSET (8) -#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_FIRST_TO_FORWARD (0x00000200) -#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_FIRST_TO_FORWARD_OFFSET (9) -#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_IN_RANGE (0x00000400) -#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_IN_RANGE_OFFSET (10) -#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_GPD_FIXED (0x00000800) -#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_GPD_FIXED_OFFSET (11) -#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_HAS_ALL_UNICAST_ROUTES (0x00001000) -#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_HAS_ALL_UNICAST_ROUTES_OFFSET (12) -#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_ASSIGNED_ALIAS (0x00002000) -#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_ASSIGNED_ALIAS_OFFSET (13) -#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_SECURITY_USE (0x00004000) -#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_SECURITY_USE_OFFSET (14) -#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_EXTENSION (0x00008000) -#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_EXTENSION_OFFSET (15) -#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_FULL_UNICAST_GPS (0x00010000) -#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_FULL_UNICAST_GPS_OFFSET (16) -#define EMBER_AF_GP_PROXY_TABLE_ENTRY_SECURITY_OPTIONS_SECURITY_LEVEL (0x03) -#define EMBER_AF_GP_PROXY_TABLE_ENTRY_SECURITY_OPTIONS_SECURITY_KEY_TYPE (0x1C) -#define EMBER_AF_GP_PROXY_TABLE_ENTRY_SECURITY_OPTIONS_SECURITY_KEY_TYPE_OFFSET (2) -#define EMBER_AF_GP_PROXY_TABLE_ENTRY_SECURITY_OPTIONS_RESERVED (0xE0) -#define EMBER_AF_GP_PROXY_TABLE_ENTRY_SECURITY_OPTIONS_RESERVED_OFFSET (5) -#define EMBER_AF_GP_GPD_COMMISSIONING_OPTIONS_MAC_SEQ_NUM_CAP (0x01) -#define EMBER_AF_GP_GPD_COMMISSIONING_OPTIONS_RX_ON_CAP (0x02) -#define EMBER_AF_GP_GPD_COMMISSIONING_OPTIONS_RX_ON_CAP_OFFSET (1) -#define EMBER_AF_GP_GPD_COMMISSIONING_OPTIONS_APPLICATION_INFORMATION_PRESENT (0x04) -#define EMBER_AF_GP_GPD_COMMISSIONING_OPTIONS_APPLICATION_INFORMATION_PRESENT_OFFSET (2) -#define EMBER_AF_GP_GPD_COMMISSIONING_OPTIONS_RESERVED (0x08) -#define EMBER_AF_GP_GPD_COMMISSIONING_OPTIONS_RESERVED_OFFSET (3) -#define EMBER_AF_GP_GPD_COMMISSIONING_OPTIONS_PAN_ID_REQUEST (0x10) -#define EMBER_AF_GP_GPD_COMMISSIONING_OPTIONS_PAN_ID_REQUEST_OFFSET (4) -#define EMBER_AF_GP_GPD_COMMISSIONING_OPTIONS_GP_SECURITY_KEY_REQUEST (0x20) -#define EMBER_AF_GP_GPD_COMMISSIONING_OPTIONS_GP_SECURITY_KEY_REQUEST_OFFSET (5) -#define EMBER_AF_GP_GPD_COMMISSIONING_OPTIONS_FIXED_LOCATION (0x40) -#define EMBER_AF_GP_GPD_COMMISSIONING_OPTIONS_FIXED_LOCATION_OFFSET (6) -#define EMBER_AF_GP_GPD_COMMISSIONING_OPTIONS_EXTENDED_OPTIONS_FIELD (0x80) -#define EMBER_AF_GP_GPD_COMMISSIONING_OPTIONS_EXTENDED_OPTIONS_FIELD_OFFSET (7) -#define EMBER_AF_GP_GPD_COMMISSIONING_EXTENDED_OPTIONS_SECURITY_LEVEL_CAPABILITIES (0x03) -#define EMBER_AF_GP_GPD_COMMISSIONING_EXTENDED_OPTIONS_KEY_TYPE (0x1C) -#define EMBER_AF_GP_GPD_COMMISSIONING_EXTENDED_OPTIONS_KEY_TYPE_OFFSET (2) -#define EMBER_AF_GP_GPD_COMMISSIONING_EXTENDED_OPTIONS_GPD_KEY_PRESENT (0x20) -#define EMBER_AF_GP_GPD_COMMISSIONING_EXTENDED_OPTIONS_GPD_KEY_PRESENT_OFFSET (5) -#define EMBER_AF_GP_GPD_COMMISSIONING_EXTENDED_OPTIONS_GPD_KEY_ENCRYPTION (0x40) -#define EMBER_AF_GP_GPD_COMMISSIONING_EXTENDED_OPTIONS_GPD_KEY_ENCRYPTION_OFFSET (6) -#define EMBER_AF_GP_GPD_COMMISSIONING_EXTENDED_OPTIONS_GPD_OUTGOING_COUNTER_PRESENT (0x80) -#define EMBER_AF_GP_GPD_COMMISSIONING_EXTENDED_OPTIONS_GPD_OUTGOING_COUNTER_PRESENT_OFFSET (7) -#define EMBER_AF_GP_GPD_COMMISSIONING_REPLY_OPTIONS_PAN_ID_PRESENT (0x01) -#define EMBER_AF_GP_GPD_COMMISSIONING_REPLY_OPTIONS_GPD_SECURITY_KEY_PRESENT (0x02) -#define EMBER_AF_GP_GPD_COMMISSIONING_REPLY_OPTIONS_GPD_SECURITY_KEY_PRESENT_OFFSET (1) -#define EMBER_AF_GP_GPD_COMMISSIONING_REPLY_OPTIONS_GPDKEY_ENCRYPTION (0x04) -#define EMBER_AF_GP_GPD_COMMISSIONING_REPLY_OPTIONS_GPDKEY_ENCRYPTION_OFFSET (2) -#define EMBER_AF_GP_GPD_COMMISSIONING_REPLY_OPTIONS_SECURITY_LEVEL (0x18) -#define EMBER_AF_GP_GPD_COMMISSIONING_REPLY_OPTIONS_SECURITY_LEVEL_OFFSET (3) -#define EMBER_AF_GP_GPD_COMMISSIONING_REPLY_OPTIONS_KEY_TYPE (0xE0) -#define EMBER_AF_GP_GPD_COMMISSIONING_REPLY_OPTIONS_KEY_TYPE_OFFSET (5) #define EMBER_AF_GP_NOTIFICATION_OPTION_APPLICATION_ID (0x0007) +#define EMBER_AF_GP_NOTIFICATION_OPTION_APPLICATION_ID_OFFSET (0) #define EMBER_AF_GP_NOTIFICATION_OPTION_ALSO_UNICAST (0x0008) #define EMBER_AF_GP_NOTIFICATION_OPTION_ALSO_UNICAST_OFFSET (3) #define EMBER_AF_GP_NOTIFICATION_OPTION_ALSO_DERIVED_GROUP (0x0010) @@ -3340,86 +3315,22 @@ typedef enum #define EMBER_AF_GP_NOTIFICATION_OPTION_PROXY_INFO_PRESENT_OFFSET (14) #define EMBER_AF_GP_NOTIFICATION_OPTION_RESERVED (0x8000) #define EMBER_AF_GP_NOTIFICATION_OPTION_RESERVED_OFFSET (15) -#define EMBER_AF_GP_PAIRING_SEARCH_OPTION_APPLICATION_ID (0x0007) -#define EMBER_AF_GP_PAIRING_SEARCH_OPTION_REQUEST_UNICAST_SINKS (0x0008) -#define EMBER_AF_GP_PAIRING_SEARCH_OPTION_REQUEST_UNICAST_SINKS_OFFSET (3) -#define EMBER_AF_GP_PAIRING_SEARCH_OPTION_REQUEST_DERIVED_GROUPCAST_SINKS (0x0010) -#define EMBER_AF_GP_PAIRING_SEARCH_OPTION_REQUEST_DERIVED_GROUPCAST_SINKS_OFFSET (4) -#define EMBER_AF_GP_PAIRING_SEARCH_OPTION_REQUEST_COMMISSIONED_GROUPCAST_SINKS (0x0020) -#define EMBER_AF_GP_PAIRING_SEARCH_OPTION_REQUEST_COMMISSIONED_GROUPCAST_SINKS_OFFSET (5) -#define EMBER_AF_GP_PAIRING_SEARCH_OPTION_REQUEST_GPD_SECURITY_FRAME_COUNTER (0x0040) -#define EMBER_AF_GP_PAIRING_SEARCH_OPTION_REQUEST_GPD_SECURITY_FRAME_COUNTER_OFFSET (6) -#define EMBER_AF_GP_PAIRING_SEARCH_OPTION_REQUEST_GPD_SECURITY_KEY (0x0080) -#define EMBER_AF_GP_PAIRING_SEARCH_OPTION_REQUEST_GPD_SECURITY_KEY_OFFSET (7) -#define EMBER_AF_GP_PAIRING_SEARCH_OPTION_RESERVED (0xFF00) -#define EMBER_AF_GP_PAIRING_SEARCH_OPTION_RESERVED_OFFSET (8) -#define EMBER_AF_GP_TUNNELING_STOP_OPTION_APPLICATION_ID (0x07) -#define EMBER_AF_GP_TUNNELING_STOP_OPTION_ALSO_DERIVED_GROUP (0x08) -#define EMBER_AF_GP_TUNNELING_STOP_OPTION_ALSO_DERIVED_GROUP_OFFSET (3) -#define EMBER_AF_GP_TUNNELING_STOP_OPTION_ALSO_COMMISSIONED_GROUP (0x10) -#define EMBER_AF_GP_TUNNELING_STOP_OPTION_ALSO_COMMISSIONED_GROUP_OFFSET (4) -#define EMBER_AF_GP_TUNNELING_STOP_OPTION_RESERVED (0xE0) -#define EMBER_AF_GP_TUNNELING_STOP_OPTION_RESERVED_OFFSET (5) -#define EMBER_AF_GP_COMMISSIONING_NOTIFICATION_OPTION_APPLICATION_ID (0x0007) -#define EMBER_AF_GP_COMMISSIONING_NOTIFICATION_OPTION_RX_AFTER_TX (0x0008) -#define EMBER_AF_GP_COMMISSIONING_NOTIFICATION_OPTION_RX_AFTER_TX_OFFSET (3) -#define EMBER_AF_GP_COMMISSIONING_NOTIFICATION_OPTION_SECURITY_LEVEL (0x0030) -#define EMBER_AF_GP_COMMISSIONING_NOTIFICATION_OPTION_SECURITY_LEVEL_OFFSET (4) -#define EMBER_AF_GP_COMMISSIONING_NOTIFICATION_OPTION_SECURITY_KEY_TYPE (0x01C0) -#define EMBER_AF_GP_COMMISSIONING_NOTIFICATION_OPTION_SECURITY_KEY_TYPE_OFFSET (6) -#define EMBER_AF_GP_COMMISSIONING_NOTIFICATION_OPTION_SECURITY_PROCESSING_FAILED (0x0200) -#define EMBER_AF_GP_COMMISSIONING_NOTIFICATION_OPTION_SECURITY_PROCESSING_FAILED_OFFSET (9) -#define EMBER_AF_GP_COMMISSIONING_NOTIFICATION_OPTION_BIDIRECTIONAL_CAPABILITY (0x0400) -#define EMBER_AF_GP_COMMISSIONING_NOTIFICATION_OPTION_BIDIRECTIONAL_CAPABILITY_OFFSET (10) -#define EMBER_AF_GP_COMMISSIONING_NOTIFICATION_OPTION_PROXY_INFO_PRESENT (0x0800) -#define EMBER_AF_GP_COMMISSIONING_NOTIFICATION_OPTION_PROXY_INFO_PRESENT_OFFSET (11) -#define EMBER_AF_GP_COMMISSIONING_NOTIFICATION_OPTION_RESERVED (0xF000) -#define EMBER_AF_GP_COMMISSIONING_NOTIFICATION_OPTION_RESERVED_OFFSET (12) -#define EMBER_AF_GP_SINK_COMMISSIONING_MODE_OPTIONS_ACTION (0x01) -#define EMBER_AF_GP_SINK_COMMISSIONING_MODE_OPTIONS_INVOLVE_GPM_IN_SECURITY (0x02) -#define EMBER_AF_GP_SINK_COMMISSIONING_MODE_OPTIONS_INVOLVE_GPM_IN_SECURITY_OFFSET (1) -#define EMBER_AF_GP_SINK_COMMISSIONING_MODE_OPTIONS_INVOLVE_GPM_IN_PAIRING (0x04) -#define EMBER_AF_GP_SINK_COMMISSIONING_MODE_OPTIONS_INVOLVE_GPM_IN_PAIRING_OFFSET (2) -#define EMBER_AF_GP_SINK_COMMISSIONING_MODE_OPTIONS_INVOLVE_PROXIES (0x08) -#define EMBER_AF_GP_SINK_COMMISSIONING_MODE_OPTIONS_INVOLVE_PROXIES_OFFSET (3) -#define EMBER_AF_GP_SINK_COMMISSIONING_MODE_OPTIONS_RESERVED (0xF0) -#define EMBER_AF_GP_SINK_COMMISSIONING_MODE_OPTIONS_RESERVED_OFFSET (4) -#define EMBER_AF_GP_SINK_COMMISSIONING_MODE_EXIT_MODE_ON_COMMISSIONING_WINDOW_EXPIRATION (0x01) -#define EMBER_AF_GP_SINK_COMMISSIONING_MODE_EXIT_MODE_ON_FIRST_PAIRING_SUCCESS (0x02) -#define EMBER_AF_GP_SINK_COMMISSIONING_MODE_EXIT_MODE_ON_FIRST_PAIRING_SUCCESS_OFFSET (1) -#define EMBER_AF_GP_SINK_COMMISSIONING_MODE_EXIT_MODE_ON_GP_PROXY_COMMISSIONING_MODE_EXIT (0x04) -#define EMBER_AF_GP_SINK_COMMISSIONING_MODE_EXIT_MODE_ON_GP_PROXY_COMMISSIONING_MODE_EXIT_OFFSET (2) -#define EMBER_AF_GP_SINK_COMMISSIONING_MODE_EXIT_MODE_RESERVED (0xF8) -#define EMBER_AF_GP_SINK_COMMISSIONING_MODE_EXIT_MODE_RESERVED_OFFSET (3) -#define EMBER_AF_GP_SINK_TABLE_REQUEST_OPTIONS_APPLICATION_ID (0x07) -#define EMBER_AF_GP_SINK_TABLE_REQUEST_OPTIONS_REQUEST_TYPE (0x18) -#define EMBER_AF_GP_SINK_TABLE_REQUEST_OPTIONS_REQUEST_TYPE_OFFSET (3) -#define EMBER_AF_GP_SINK_TABLE_REQUEST_OPTIONS_RESERVED (0xE0) -#define EMBER_AF_GP_SINK_TABLE_REQUEST_OPTIONS_RESERVED_OFFSET (5) -#define EMBER_AF_GP_TRANSLATION_TABLE_UPDATE_OPTION_APPLICATION_ID (0x0007) -#define EMBER_AF_GP_TRANSLATION_TABLE_UPDATE_OPTION_ACTION (0x0018) -#define EMBER_AF_GP_TRANSLATION_TABLE_UPDATE_OPTION_ACTION_OFFSET (3) -#define EMBER_AF_GP_TRANSLATION_TABLE_UPDATE_OPTION_NUMBER_OF_TRANSLATIONS (0x00E0) -#define EMBER_AF_GP_TRANSLATION_TABLE_UPDATE_OPTION_NUMBER_OF_TRANSLATIONS_OFFSET (5) -#define EMBER_AF_GP_TRANSLATION_TABLE_UPDATE_OPTION_ADDITIONAL_INFORMATION_BLOCK_PRESENT (0x0100) -#define EMBER_AF_GP_TRANSLATION_TABLE_UPDATE_OPTION_ADDITIONAL_INFORMATION_BLOCK_PRESENT_OFFSET (8) -#define EMBER_AF_GP_TRANSLATION_TABLE_UPDATE_OPTION_RESERVED (0xFE00) -#define EMBER_AF_GP_TRANSLATION_TABLE_UPDATE_OPTION_RESERVED_OFFSET (9) -#define EMBER_AF_GP_TRANSLATION_TABLE_SCAN_LEVEL_GPD_ID (0x01) -#define EMBER_AF_GP_TRANSLATION_TABLE_SCAN_LEVEL_CMD_ID (0x02) -#define EMBER_AF_GP_TRANSLATION_TABLE_SCAN_LEVEL_CMD_ID_OFFSET (1) -#define EMBER_AF_GP_TRANSLATION_TABLE_SCAN_LEVEL_PAYLOAD (0x04) -#define EMBER_AF_GP_TRANSLATION_TABLE_SCAN_LEVEL_PAYLOAD_OFFSET (2) -#define EMBER_AF_GP_TRANSLATION_TABLE_SCAN_LEVEL_ZB_ENDPOINT (0x08) -#define EMBER_AF_GP_TRANSLATION_TABLE_SCAN_LEVEL_ZB_ENDPOINT_OFFSET (3) -#define EMBER_AF_GP_TRANSLATION_TABLE_SCAN_LEVEL_ADDITIONAL_INFO_BLOCK (0x10) -#define EMBER_AF_GP_TRANSLATION_TABLE_SCAN_LEVEL_ADDITIONAL_INFO_BLOCK_OFFSET (4) +#define EMBER_AF_GP_NOTIFICATION_RESPONSE_OPTION_APPLICATION_ID (0x07) +#define EMBER_AF_GP_NOTIFICATION_RESPONSE_OPTION_APPLICATION_ID_OFFSET (0) +#define EMBER_AF_GP_NOTIFICATION_RESPONSE_OPTION_FIRST_TO_FORWARD (0x08) +#define EMBER_AF_GP_NOTIFICATION_RESPONSE_OPTION_FIRST_TO_FORWARD_OFFSET (3) +#define EMBER_AF_GP_NOTIFICATION_RESPONSE_OPTION_NO_PAIRING (0x10) +#define EMBER_AF_GP_NOTIFICATION_RESPONSE_OPTION_NO_PAIRING_OFFSET (4) +#define EMBER_AF_GP_NOTIFICATION_RESPONSE_OPTION_RESERVED (0xE0) +#define EMBER_AF_GP_NOTIFICATION_RESPONSE_OPTION_RESERVED_OFFSET (5) #define EMBER_AF_GP_PAIRING_CONFIGURATION_ACTIONS_ACTION (0x07) +#define EMBER_AF_GP_PAIRING_CONFIGURATION_ACTIONS_ACTION_OFFSET (0) #define EMBER_AF_GP_PAIRING_CONFIGURATION_ACTIONS_SEND_GP_PAIRING (0x08) #define EMBER_AF_GP_PAIRING_CONFIGURATION_ACTIONS_SEND_GP_PAIRING_OFFSET (3) #define EMBER_AF_GP_PAIRING_CONFIGURATION_ACTIONS_RESERVED (0xF0) #define EMBER_AF_GP_PAIRING_CONFIGURATION_ACTIONS_RESERVED_OFFSET (4) #define EMBER_AF_GP_PAIRING_CONFIGURATION_OPTION_APPLICATION_ID (0x0007) +#define EMBER_AF_GP_PAIRING_CONFIGURATION_OPTION_APPLICATION_ID_OFFSET (0) #define EMBER_AF_GP_PAIRING_CONFIGURATION_OPTION_COMMUNICATION_MODE (0x0018) #define EMBER_AF_GP_PAIRING_CONFIGURATION_OPTION_COMMUNICATION_MODE_OFFSET (3) #define EMBER_AF_GP_PAIRING_CONFIGURATION_OPTION_SEQUENCE_NUMBER_CAPABILITIES (0x0020) @@ -3436,25 +3347,8 @@ typedef enum #define EMBER_AF_GP_PAIRING_CONFIGURATION_OPTION_APPLICATION_INFORMATION_PRESENT_OFFSET (10) #define EMBER_AF_GP_PAIRING_CONFIGURATION_OPTION_RESERVED (0xF800) #define EMBER_AF_GP_PAIRING_CONFIGURATION_OPTION_RESERVED_OFFSET (11) -#define EMBER_AF_GP_APPLICATION_INFORMATION_MANUFACTURE_ID_PRESENT (0x01) -#define EMBER_AF_GP_APPLICATION_INFORMATION_MODEL_ID_PRESENT (0x02) -#define EMBER_AF_GP_APPLICATION_INFORMATION_MODEL_ID_PRESENT_OFFSET (1) -#define EMBER_AF_GP_APPLICATION_INFORMATION_GPD_COMMANDS_PRESENT (0x04) -#define EMBER_AF_GP_APPLICATION_INFORMATION_GPD_COMMANDS_PRESENT_OFFSET (2) -#define EMBER_AF_GP_APPLICATION_INFORMATION_CLUSTER_LIST_PRESENT (0x08) -#define EMBER_AF_GP_APPLICATION_INFORMATION_CLUSTER_LIST_PRESENT_OFFSET (3) -#define EMBER_AF_GP_APPLICATION_INFORMATION_SWITCH_INFORMATION_PRESENT (0x10) -#define EMBER_AF_GP_APPLICATION_INFORMATION_SWITCH_INFORMATION_PRESENT_OFFSET (4) -#define EMBER_AF_GP_APPLICATION_INFORMATION_APPLICATION_DESCRIPTION_PRESENT (0x20) -#define EMBER_AF_GP_APPLICATION_INFORMATION_APPLICATION_DESCRIPTION_PRESENT_OFFSET (5) -#define EMBER_AF_GP_NOTIFICATION_RESPONSE_OPTION_APPLICATION_ID (0x07) -#define EMBER_AF_GP_NOTIFICATION_RESPONSE_OPTION_FIRST_TO_FORWARD (0x08) -#define EMBER_AF_GP_NOTIFICATION_RESPONSE_OPTION_FIRST_TO_FORWARD_OFFSET (3) -#define EMBER_AF_GP_NOTIFICATION_RESPONSE_OPTION_NO_PAIRING (0x10) -#define EMBER_AF_GP_NOTIFICATION_RESPONSE_OPTION_NO_PAIRING_OFFSET (4) -#define EMBER_AF_GP_NOTIFICATION_RESPONSE_OPTION_RESERVED (0xE0) -#define EMBER_AF_GP_NOTIFICATION_RESPONSE_OPTION_RESERVED_OFFSET (5) #define EMBER_AF_GP_PAIRING_OPTION_APPLICATION_ID (0x000007) +#define EMBER_AF_GP_PAIRING_OPTION_APPLICATION_ID_OFFSET (0) #define EMBER_AF_GP_PAIRING_OPTION_ADD_SINK (0x000008) #define EMBER_AF_GP_PAIRING_OPTION_ADD_SINK_OFFSET (3) #define EMBER_AF_GP_PAIRING_OPTION_REMOVE_GPD (0x000010) @@ -3479,7 +3373,28 @@ typedef enum #define EMBER_AF_GP_PAIRING_OPTION_GROUPCAST_RADIUS_PRESENT_OFFSET (17) #define EMBER_AF_GP_PAIRING_OPTION_RESERVED (0xFC0000) #define EMBER_AF_GP_PAIRING_OPTION_RESERVED_OFFSET (18) +#define EMBER_AF_GP_PAIRING_SEARCH_OPTION_APPLICATION_ID (0x0007) +#define EMBER_AF_GP_PAIRING_SEARCH_OPTION_APPLICATION_ID_OFFSET (0) +#define EMBER_AF_GP_PAIRING_SEARCH_OPTION_REQUEST_UNICAST_SINKS (0x0008) +#define EMBER_AF_GP_PAIRING_SEARCH_OPTION_REQUEST_UNICAST_SINKS_OFFSET (3) +#define EMBER_AF_GP_PAIRING_SEARCH_OPTION_REQUEST_DERIVED_GROUPCAST_SINKS (0x0010) +#define EMBER_AF_GP_PAIRING_SEARCH_OPTION_REQUEST_DERIVED_GROUPCAST_SINKS_OFFSET (4) +#define EMBER_AF_GP_PAIRING_SEARCH_OPTION_REQUEST_COMMISSIONED_GROUPCAST_SINKS (0x0020) +#define EMBER_AF_GP_PAIRING_SEARCH_OPTION_REQUEST_COMMISSIONED_GROUPCAST_SINKS_OFFSET (5) +#define EMBER_AF_GP_PAIRING_SEARCH_OPTION_REQUEST_GPD_SECURITY_FRAME_COUNTER (0x0040) +#define EMBER_AF_GP_PAIRING_SEARCH_OPTION_REQUEST_GPD_SECURITY_FRAME_COUNTER_OFFSET (6) +#define EMBER_AF_GP_PAIRING_SEARCH_OPTION_REQUEST_GPD_SECURITY_KEY (0x0080) +#define EMBER_AF_GP_PAIRING_SEARCH_OPTION_REQUEST_GPD_SECURITY_KEY_OFFSET (7) +#define EMBER_AF_GP_PAIRING_SEARCH_OPTION_RESERVED (0xFF00) +#define EMBER_AF_GP_PAIRING_SEARCH_OPTION_RESERVED_OFFSET (8) +#define EMBER_AF_GP_PROXY_COMMISSIONING_MODE_EXIT_MODE_ON_COMMISSIONING_WINDOW_EXPIRATION (0x02) +#define EMBER_AF_GP_PROXY_COMMISSIONING_MODE_EXIT_MODE_ON_COMMISSIONING_WINDOW_EXPIRATION_OFFSET (1) +#define EMBER_AF_GP_PROXY_COMMISSIONING_MODE_EXIT_MODE_ON_FIRST_PAIRING_SUCCESS (0x04) +#define EMBER_AF_GP_PROXY_COMMISSIONING_MODE_EXIT_MODE_ON_FIRST_PAIRING_SUCCESS_OFFSET (2) +#define EMBER_AF_GP_PROXY_COMMISSIONING_MODE_EXIT_MODE_ON_GP_PROXY_COMMISSIONING_MODE_EXIT (0x08) +#define EMBER_AF_GP_PROXY_COMMISSIONING_MODE_EXIT_MODE_ON_GP_PROXY_COMMISSIONING_MODE_EXIT_OFFSET (3) #define EMBER_AF_GP_PROXY_COMMISSIONING_MODE_OPTION_ACTION (0x01) +#define EMBER_AF_GP_PROXY_COMMISSIONING_MODE_OPTION_ACTION_OFFSET (0) #define EMBER_AF_GP_PROXY_COMMISSIONING_MODE_OPTION_COMMISSIONING_WINDOW_PRESENT (0x02) #define EMBER_AF_GP_PROXY_COMMISSIONING_MODE_OPTION_COMMISSIONING_WINDOW_PRESENT_OFFSET (1) #define EMBER_AF_GP_PROXY_COMMISSIONING_MODE_OPTION_EXIT_MODE (0x0C) @@ -3490,21 +3405,78 @@ typedef enum #define EMBER_AF_GP_PROXY_COMMISSIONING_MODE_OPTION_UNICAST_COMMUNICATION_OFFSET (5) #define EMBER_AF_GP_PROXY_COMMISSIONING_MODE_OPTION_RESERVED (0xC0) #define EMBER_AF_GP_PROXY_COMMISSIONING_MODE_OPTION_RESERVED_OFFSET (6) -#define EMBER_AF_GP_PROXY_COMMISSIONING_MODE_EXIT_MODE_ON_COMMISSIONING_WINDOW_EXPIRATION (0x02) -#define EMBER_AF_GP_PROXY_COMMISSIONING_MODE_EXIT_MODE_ON_COMMISSIONING_WINDOW_EXPIRATION_OFFSET (1) -#define EMBER_AF_GP_PROXY_COMMISSIONING_MODE_EXIT_MODE_ON_FIRST_PAIRING_SUCCESS (0x04) -#define EMBER_AF_GP_PROXY_COMMISSIONING_MODE_EXIT_MODE_ON_FIRST_PAIRING_SUCCESS_OFFSET (2) -#define EMBER_AF_GP_PROXY_COMMISSIONING_MODE_EXIT_MODE_ON_GP_PROXY_COMMISSIONING_MODE_EXIT (0x08) -#define EMBER_AF_GP_PROXY_COMMISSIONING_MODE_EXIT_MODE_ON_GP_PROXY_COMMISSIONING_MODE_EXIT_OFFSET (3) +#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_APPLICATION_ID (0x00000007) +#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_APPLICATION_ID_OFFSET (0) +#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_ENTRY_ACTIVE (0x00000008) +#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_ENTRY_ACTIVE_OFFSET (3) +#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_ENTRY_VALID (0x00000010) +#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_ENTRY_VALID_OFFSET (4) +#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_SEQUENCE_NUMBER_CAP (0x00000020) +#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_SEQUENCE_NUMBER_CAP_OFFSET (5) +#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_LIGHTWEIGHT_UNICAST_GPS (0x00000040) +#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_LIGHTWEIGHT_UNICAST_GPS_OFFSET (6) +#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_DERIVED_GROUP_GPS (0x00000080) +#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_DERIVED_GROUP_GPS_OFFSET (7) +#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_COMMISIONED_GROUP_GPS (0x00000100) +#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_COMMISIONED_GROUP_GPS_OFFSET (8) +#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_FIRST_TO_FORWARD (0x00000200) +#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_FIRST_TO_FORWARD_OFFSET (9) +#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_IN_RANGE (0x00000400) +#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_IN_RANGE_OFFSET (10) +#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_GPD_FIXED (0x00000800) +#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_GPD_FIXED_OFFSET (11) +#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_HAS_ALL_UNICAST_ROUTES (0x00001000) +#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_HAS_ALL_UNICAST_ROUTES_OFFSET (12) +#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_ASSIGNED_ALIAS (0x00002000) +#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_ASSIGNED_ALIAS_OFFSET (13) +#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_SECURITY_USE (0x00004000) +#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_SECURITY_USE_OFFSET (14) +#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_EXTENSION (0x00008000) +#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_EXTENSION_OFFSET (15) +#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_FULL_UNICAST_GPS (0x00010000) +#define EMBER_AF_GP_PROXY_TABLE_ENTRY_OPTIONS_FULL_UNICAST_GPS_OFFSET (16) +#define EMBER_AF_GP_PROXY_TABLE_ENTRY_SECURITY_OPTIONS_SECURITY_LEVEL (0x03) +#define EMBER_AF_GP_PROXY_TABLE_ENTRY_SECURITY_OPTIONS_SECURITY_LEVEL_OFFSET (0) +#define EMBER_AF_GP_PROXY_TABLE_ENTRY_SECURITY_OPTIONS_SECURITY_KEY_TYPE (0x1C) +#define EMBER_AF_GP_PROXY_TABLE_ENTRY_SECURITY_OPTIONS_SECURITY_KEY_TYPE_OFFSET (2) +#define EMBER_AF_GP_PROXY_TABLE_ENTRY_SECURITY_OPTIONS_RESERVED (0xE0) +#define EMBER_AF_GP_PROXY_TABLE_ENTRY_SECURITY_OPTIONS_RESERVED_OFFSET (5) +#define EMBER_AF_GP_PROXY_TABLE_REQUEST_OPTIONS_APPLICATION_ID (0x07) +#define EMBER_AF_GP_PROXY_TABLE_REQUEST_OPTIONS_APPLICATION_ID_OFFSET (0) +#define EMBER_AF_GP_PROXY_TABLE_REQUEST_OPTIONS_REQUEST_TYPE (0x18) +#define EMBER_AF_GP_PROXY_TABLE_REQUEST_OPTIONS_REQUEST_TYPE_OFFSET (3) +#define EMBER_AF_GP_PROXY_TABLE_REQUEST_OPTIONS_RESERVED (0xE0) +#define EMBER_AF_GP_PROXY_TABLE_REQUEST_OPTIONS_RESERVED_OFFSET (5) #define EMBER_AF_GP_RESPONSE_OPTION_APPLICATION_ID (0x07) +#define EMBER_AF_GP_RESPONSE_OPTION_APPLICATION_ID_OFFSET (0) #define EMBER_AF_GP_RESPONSE_OPTION_TRANSMIT_ON_END_POINT_MATCH (0x08) #define EMBER_AF_GP_RESPONSE_OPTION_TRANSMIT_ON_END_POINT_MATCH_OFFSET (3) #define EMBER_AF_GP_RESPONSE_OPTION_RESERVED (0xF0) #define EMBER_AF_GP_RESPONSE_OPTION_RESERVED_OFFSET (4) #define EMBER_AF_GP_RESPONSE_TEMP_MASTER_TX_CHANNEL_TRANSMIT_CHANNEL (0x0F) +#define EMBER_AF_GP_RESPONSE_TEMP_MASTER_TX_CHANNEL_TRANSMIT_CHANNEL_OFFSET (0) #define EMBER_AF_GP_RESPONSE_TEMP_MASTER_TX_CHANNEL_RESERVED (0xF0) #define EMBER_AF_GP_RESPONSE_TEMP_MASTER_TX_CHANNEL_RESERVED_OFFSET (4) +#define EMBER_AF_GP_SINK_COMMISSIONING_MODE_EXIT_MODE_ON_COMMISSIONING_WINDOW_EXPIRATION (0x01) +#define EMBER_AF_GP_SINK_COMMISSIONING_MODE_EXIT_MODE_ON_COMMISSIONING_WINDOW_EXPIRATION_OFFSET (0) +#define EMBER_AF_GP_SINK_COMMISSIONING_MODE_EXIT_MODE_ON_FIRST_PAIRING_SUCCESS (0x02) +#define EMBER_AF_GP_SINK_COMMISSIONING_MODE_EXIT_MODE_ON_FIRST_PAIRING_SUCCESS_OFFSET (1) +#define EMBER_AF_GP_SINK_COMMISSIONING_MODE_EXIT_MODE_ON_GP_PROXY_COMMISSIONING_MODE_EXIT (0x04) +#define EMBER_AF_GP_SINK_COMMISSIONING_MODE_EXIT_MODE_ON_GP_PROXY_COMMISSIONING_MODE_EXIT_OFFSET (2) +#define EMBER_AF_GP_SINK_COMMISSIONING_MODE_EXIT_MODE_RESERVED (0xF8) +#define EMBER_AF_GP_SINK_COMMISSIONING_MODE_EXIT_MODE_RESERVED_OFFSET (3) +#define EMBER_AF_GP_SINK_COMMISSIONING_MODE_OPTIONS_ACTION (0x01) +#define EMBER_AF_GP_SINK_COMMISSIONING_MODE_OPTIONS_ACTION_OFFSET (0) +#define EMBER_AF_GP_SINK_COMMISSIONING_MODE_OPTIONS_INVOLVE_GPM_IN_SECURITY (0x02) +#define EMBER_AF_GP_SINK_COMMISSIONING_MODE_OPTIONS_INVOLVE_GPM_IN_SECURITY_OFFSET (1) +#define EMBER_AF_GP_SINK_COMMISSIONING_MODE_OPTIONS_INVOLVE_GPM_IN_PAIRING (0x04) +#define EMBER_AF_GP_SINK_COMMISSIONING_MODE_OPTIONS_INVOLVE_GPM_IN_PAIRING_OFFSET (2) +#define EMBER_AF_GP_SINK_COMMISSIONING_MODE_OPTIONS_INVOLVE_PROXIES (0x08) +#define EMBER_AF_GP_SINK_COMMISSIONING_MODE_OPTIONS_INVOLVE_PROXIES_OFFSET (3) +#define EMBER_AF_GP_SINK_COMMISSIONING_MODE_OPTIONS_RESERVED (0xF0) +#define EMBER_AF_GP_SINK_COMMISSIONING_MODE_OPTIONS_RESERVED_OFFSET (4) #define EMBER_AF_GP_SINK_TABLE_ENTRY_OPTIONS_APPLICATION_ID (0x0007) +#define EMBER_AF_GP_SINK_TABLE_ENTRY_OPTIONS_APPLICATION_ID_OFFSET (0) #define EMBER_AF_GP_SINK_TABLE_ENTRY_OPTIONS_COMMUNICATION_MODE (0x0018) #define EMBER_AF_GP_SINK_TABLE_ENTRY_OPTIONS_COMMUNICATION_MODE_OFFSET (3) #define EMBER_AF_GP_SINK_TABLE_ENTRY_OPTIONS_SEQUENCE_NUM_CAPABILITIES (0x0020) @@ -3520,34 +3492,564 @@ typedef enum #define EMBER_AF_GP_SINK_TABLE_ENTRY_OPTIONS_RESERVED (0xFC00) #define EMBER_AF_GP_SINK_TABLE_ENTRY_OPTIONS_RESERVED_OFFSET (10) #define EMBER_AF_GP_SINK_TABLE_ENTRY_SECURITY_OPTIONS_SECURITY_LEVEL (0x03) +#define EMBER_AF_GP_SINK_TABLE_ENTRY_SECURITY_OPTIONS_SECURITY_LEVEL_OFFSET (0) #define EMBER_AF_GP_SINK_TABLE_ENTRY_SECURITY_OPTIONS_SECURITY_KEY_TYPE (0x1C) #define EMBER_AF_GP_SINK_TABLE_ENTRY_SECURITY_OPTIONS_SECURITY_KEY_TYPE_OFFSET (2) #define EMBER_AF_GP_SINK_TABLE_ENTRY_SECURITY_OPTIONS_RESERVED (0xE0) #define EMBER_AF_GP_SINK_TABLE_ENTRY_SECURITY_OPTIONS_RESERVED_OFFSET (5) +#define EMBER_AF_GP_SINK_TABLE_REQUEST_OPTIONS_APPLICATION_ID (0x07) +#define EMBER_AF_GP_SINK_TABLE_REQUEST_OPTIONS_APPLICATION_ID_OFFSET (0) +#define EMBER_AF_GP_SINK_TABLE_REQUEST_OPTIONS_REQUEST_TYPE (0x18) +#define EMBER_AF_GP_SINK_TABLE_REQUEST_OPTIONS_REQUEST_TYPE_OFFSET (3) +#define EMBER_AF_GP_SINK_TABLE_REQUEST_OPTIONS_RESERVED (0xE0) +#define EMBER_AF_GP_SINK_TABLE_REQUEST_OPTIONS_RESERVED_OFFSET (5) #define EMBER_AF_GP_TRANSLATION_TABLE_RESPONSE_OPTION_APPLICATION_ID (0x07) +#define EMBER_AF_GP_TRANSLATION_TABLE_RESPONSE_OPTION_APPLICATION_ID_OFFSET (0) #define EMBER_AF_GP_TRANSLATION_TABLE_RESPONSE_OPTION_ADDITIONAL_INFORMATION_BLOCK_PRESENT (0x08) #define EMBER_AF_GP_TRANSLATION_TABLE_RESPONSE_OPTION_ADDITIONAL_INFORMATION_BLOCK_PRESENT_OFFSET (3) #define EMBER_AF_GP_TRANSLATION_TABLE_RESPONSE_OPTION_RESERVED (0xF0) #define EMBER_AF_GP_TRANSLATION_TABLE_RESPONSE_OPTION_RESERVED_OFFSET (4) -#define EMBER_AF_GP_PROXY_TABLE_REQUEST_OPTIONS_APPLICATION_ID (0x07) -#define EMBER_AF_GP_PROXY_TABLE_REQUEST_OPTIONS_REQUEST_TYPE (0x18) -#define EMBER_AF_GP_PROXY_TABLE_REQUEST_OPTIONS_REQUEST_TYPE_OFFSET (3) -#define EMBER_AF_GP_PROXY_TABLE_REQUEST_OPTIONS_RESERVED (0xE0) -#define EMBER_AF_GP_PROXY_TABLE_REQUEST_OPTIONS_RESERVED_OFFSET (5) -#define EMBER_AF_GP_GPD_CHANNEL_REQUEST_CHANNEL_TOGGLING_BEHAVIOUR_RX_CHANNEL_NEXT_ATTEMPT (0x0F) -#define EMBER_AF_GP_GPD_CHANNEL_REQUEST_CHANNEL_TOGGLING_BEHAVIOUR_RX_CHANNEL_SECOND_NEXT_ATTEMPT (0xF0) -#define EMBER_AF_GP_GPD_CHANNEL_REQUEST_CHANNEL_TOGGLING_BEHAVIOUR_RX_CHANNEL_SECOND_NEXT_ATTEMPT_OFFSET (4) -#define EMBER_AF_GP_GPD_CHANNEL_CONFIGURATION_CHANNEL_MASK (0x1F) -#define EMBER_AF_GP_GPD_CHANNEL_CONFIGURATION_CHANNEL_OPERATIONAL_CHANNEL (0x0F) -#define EMBER_AF_GP_GPD_CHANNEL_CONFIGURATION_CHANNEL_BASIC (0x10) -#define EMBER_AF_GP_GPD_CHANNEL_CONFIGURATION_CHANNEL_BASIC_OFFSET (4) -#define EMBER_AF_GP_GPD_CHANNEL_CONFIGURATION_CHANNEL_RESERVED (0xE0) -#define EMBER_AF_GP_GPD_CHANNEL_CONFIGURATION_CHANNEL_RESERVED_OFFSET (5) -#define EMBER_AF_GP_RESPONSE_OPTION_MASK (0x0F) -#define EMBER_AF_GP_RESPONSE_OPTION_TRANSMIT_ON_END_POINT_MATCH (0x08) -#define EMBER_AF_GP_RESPONSE_OPTION_TRANSMIT_ON_END_POINT_MATCH_OFFSET (3) -#define EMBER_AF_GP_RESPONSE_OPTION_RESERVED (0xF0) -#define EMBER_AF_GP_RESPONSE_OPTION_RESERVED_OFFSET (4) -/** @} END Enums */ -/** @} END addtogroup */ -#endif // SILABS_EMBER_AF_ENUMS +#define EMBER_AF_GP_TRANSLATION_TABLE_SCAN_LEVEL_GPD_ID (0x01) +#define EMBER_AF_GP_TRANSLATION_TABLE_SCAN_LEVEL_GPD_ID_OFFSET (0) +#define EMBER_AF_GP_TRANSLATION_TABLE_SCAN_LEVEL_CMD_ID (0x02) +#define EMBER_AF_GP_TRANSLATION_TABLE_SCAN_LEVEL_CMD_ID_OFFSET (1) +#define EMBER_AF_GP_TRANSLATION_TABLE_SCAN_LEVEL_PAYLOAD (0x04) +#define EMBER_AF_GP_TRANSLATION_TABLE_SCAN_LEVEL_PAYLOAD_OFFSET (2) +#define EMBER_AF_GP_TRANSLATION_TABLE_SCAN_LEVEL_ZB_ENDPOINT (0x08) +#define EMBER_AF_GP_TRANSLATION_TABLE_SCAN_LEVEL_ZB_ENDPOINT_OFFSET (3) +#define EMBER_AF_GP_TRANSLATION_TABLE_SCAN_LEVEL_ADDITIONAL_INFO_BLOCK (0x10) +#define EMBER_AF_GP_TRANSLATION_TABLE_SCAN_LEVEL_ADDITIONAL_INFO_BLOCK_OFFSET (4) +#define EMBER_AF_GP_TRANSLATION_TABLE_UPDATE_OPTION_APPLICATION_ID (0x0007) +#define EMBER_AF_GP_TRANSLATION_TABLE_UPDATE_OPTION_APPLICATION_ID_OFFSET (0) +#define EMBER_AF_GP_TRANSLATION_TABLE_UPDATE_OPTION_ACTION (0x0018) +#define EMBER_AF_GP_TRANSLATION_TABLE_UPDATE_OPTION_ACTION_OFFSET (3) +#define EMBER_AF_GP_TRANSLATION_TABLE_UPDATE_OPTION_NUMBER_OF_TRANSLATIONS (0x00E0) +#define EMBER_AF_GP_TRANSLATION_TABLE_UPDATE_OPTION_NUMBER_OF_TRANSLATIONS_OFFSET (5) +#define EMBER_AF_GP_TRANSLATION_TABLE_UPDATE_OPTION_ADDITIONAL_INFORMATION_BLOCK_PRESENT (0x0100) +#define EMBER_AF_GP_TRANSLATION_TABLE_UPDATE_OPTION_ADDITIONAL_INFORMATION_BLOCK_PRESENT_OFFSET (8) +#define EMBER_AF_GP_TRANSLATION_TABLE_UPDATE_OPTION_RESERVED (0xFE00) +#define EMBER_AF_GP_TRANSLATION_TABLE_UPDATE_OPTION_RESERVED_OFFSET (9) +#define EMBER_AF_GP_TUNNELING_STOP_OPTION_APPLICATION_ID (0x07) +#define EMBER_AF_GP_TUNNELING_STOP_OPTION_APPLICATION_ID_OFFSET (0) +#define EMBER_AF_GP_TUNNELING_STOP_OPTION_ALSO_DERIVED_GROUP (0x08) +#define EMBER_AF_GP_TUNNELING_STOP_OPTION_ALSO_DERIVED_GROUP_OFFSET (3) +#define EMBER_AF_GP_TUNNELING_STOP_OPTION_ALSO_COMMISSIONED_GROUP (0x10) +#define EMBER_AF_GP_TUNNELING_STOP_OPTION_ALSO_COMMISSIONED_GROUP_OFFSET (4) +#define EMBER_AF_GP_TUNNELING_STOP_OPTION_RESERVED (0xE0) +#define EMBER_AF_GP_TUNNELING_STOP_OPTION_RESERVED_OFFSET (5) +#define EMBER_AF_IAS_ZONE_STATUS_ALARM1 (0x1) +#define EMBER_AF_IAS_ZONE_STATUS_ALARM1_OFFSET (0) +#define EMBER_AF_IAS_ZONE_STATUS_ALARM2 (0x2) +#define EMBER_AF_IAS_ZONE_STATUS_ALARM2_OFFSET (1) +#define EMBER_AF_IAS_ZONE_STATUS_TAMPER (0x4) +#define EMBER_AF_IAS_ZONE_STATUS_TAMPER_OFFSET (2) +#define EMBER_AF_IAS_ZONE_STATUS_BATTERY (0x8) +#define EMBER_AF_IAS_ZONE_STATUS_BATTERY_OFFSET (3) +#define EMBER_AF_IAS_ZONE_STATUS_SUPERVISION_REPORTS (0x10) +#define EMBER_AF_IAS_ZONE_STATUS_SUPERVISION_REPORTS_OFFSET (4) +#define EMBER_AF_IAS_ZONE_STATUS_RESTORE_REPORTS (0x20) +#define EMBER_AF_IAS_ZONE_STATUS_RESTORE_REPORTS_OFFSET (5) +#define EMBER_AF_IAS_ZONE_STATUS_TROUBLE (0x40) +#define EMBER_AF_IAS_ZONE_STATUS_TROUBLE_OFFSET (6) +#define EMBER_AF_IAS_ZONE_STATUS_AC (0x80) +#define EMBER_AF_IAS_ZONE_STATUS_AC_OFFSET (7) +#define EMBER_AF_IAS_ZONE_STATUS_TEST (0x100) +#define EMBER_AF_IAS_ZONE_STATUS_TEST_OFFSET (8) +#define EMBER_AF_IAS_ZONE_STATUS_BATTERY_DEFECT (0x200) +#define EMBER_AF_IAS_ZONE_STATUS_BATTERY_DEFECT_OFFSET (9) +#define EMBER_AF_KEY_BITMASK_DEVELOPMENT (0x0001) +#define EMBER_AF_KEY_BITMASK_DEVELOPMENT_OFFSET (0) +#define EMBER_AF_KEY_BITMASK_MASTER (0x0010) +#define EMBER_AF_KEY_BITMASK_MASTER_OFFSET (4) +#define EMBER_AF_KEY_BITMASK_CERTIFICATION (0x8000) +#define EMBER_AF_KEY_BITMASK_CERTIFICATION_OFFSET (15) +#define EMBER_AF_LAMP_ALARM_MODE_LAMP_BURN_HOURS (0x1) +#define EMBER_AF_LAMP_ALARM_MODE_LAMP_BURN_HOURS_OFFSET (0) +#define EMBER_AF_LOAD_CONTROL_STATE_RELAY_OPEN_OR_CONSUMPTION_INTERUPTED (0x01) +#define EMBER_AF_LOAD_CONTROL_STATE_RELAY_OPEN_OR_CONSUMPTION_INTERUPTED_OFFSET (0) +#define EMBER_AF_LOAD_CONTROL_STATE_EVENT_IN_PROGRESS (0x02) +#define EMBER_AF_LOAD_CONTROL_STATE_EVENT_IN_PROGRESS_OFFSET (1) +#define EMBER_AF_LOAD_CONTROL_STATE_POWER_STABILIZING (0x04) +#define EMBER_AF_LOAD_CONTROL_STATE_POWER_STABILIZING_OFFSET (2) +#define EMBER_AF_LOAD_CONTROL_STATE_OTHER_LOAD_REDUCTION (0x08) +#define EMBER_AF_LOAD_CONTROL_STATE_OTHER_LOAD_REDUCTION_OFFSET (3) +#define EMBER_AF_LOAD_CONTROL_STATE_CURRENT_FLOW_OR_CONSUMING_COMMODITY (0x10) +#define EMBER_AF_LOAD_CONTROL_STATE_CURRENT_FLOW_OR_CONSUMING_COMMODITY_OFFSET (4) +#define EMBER_AF_LOAD_CONTROL_STATE_LOAD_CALL (0x20) +#define EMBER_AF_LOAD_CONTROL_STATE_LOAD_CALL_OFFSET (5) +#define EMBER_AF_LOCATION_TYPE_ABSOLUTE (0x1) +#define EMBER_AF_LOCATION_TYPE_ABSOLUTE_OFFSET (0) +#define EMBER_AF_LOCATION_TYPE_2_D (0x2) +#define EMBER_AF_LOCATION_TYPE_2_D_OFFSET (1) +#define EMBER_AF_LOCATION_TYPE_COORDINATE_SYSTEM (0xc) +#define EMBER_AF_LOCATION_TYPE_COORDINATE_SYSTEM_OFFSET (2) +#define EMBER_AF_MAINS_ALARM_MASK_VOLTAGE_TOO_LOW (0x1) +#define EMBER_AF_MAINS_ALARM_MASK_VOLTAGE_TOO_LOW_OFFSET (0) +#define EMBER_AF_MAINS_ALARM_MASK_VOLTAGE_TOO_HIGH (0x2) +#define EMBER_AF_MAINS_ALARM_MASK_VOLTAGE_TOO_HIGH_OFFSET (1) +#define EMBER_AF_MAINS_ALARM_MASK_MAINS_POWER_SUPPLY_LOST (0x4) +#define EMBER_AF_MAINS_ALARM_MASK_MAINS_POWER_SUPPLY_LOST_OFFSET (2) +#define EMBER_AF_MESSAGING_CONFIRMATION_CONTROL_NO_RETURNED (0x01) +#define EMBER_AF_MESSAGING_CONFIRMATION_CONTROL_NO_RETURNED_OFFSET (0) +#define EMBER_AF_MESSAGING_CONFIRMATION_CONTROL_YES_RETURNED (0x02) +#define EMBER_AF_MESSAGING_CONFIRMATION_CONTROL_YES_RETURNED_OFFSET (1) +#define EMBER_AF_MESSAGING_CONTROL_MASK_TRANS_MECHANISM (0x03) +#define EMBER_AF_MESSAGING_CONTROL_MASK_TRANS_MECHANISM_OFFSET (0) +#define EMBER_AF_MESSAGING_CONTROL_MASK_MESSAGE_URGENCY (0x0C) +#define EMBER_AF_MESSAGING_CONTROL_MASK_MESSAGE_URGENCY_OFFSET (2) +#define EMBER_AF_MESSAGING_CONTROL_MASK_ENHANCED_CONFIRMATION_REQUEST (0x20) +#define EMBER_AF_MESSAGING_CONTROL_MASK_ENHANCED_CONFIRMATION_REQUEST_OFFSET (5) +#define EMBER_AF_MESSAGING_CONTROL_MASK_MESSAGE_CONFIRMATION (0x80) +#define EMBER_AF_MESSAGING_CONTROL_MASK_MESSAGE_CONFIRMATION_OFFSET (7) +#define EMBER_AF_MESSAGING_EXTENDED_CONTROL_MASK_MESSAGE_CONFIRMATION_STATUS (0x01) +#define EMBER_AF_MESSAGING_EXTENDED_CONTROL_MASK_MESSAGE_CONFIRMATION_STATUS_OFFSET (0) +#define EMBER_AF_METERING_EXTENDED_STATUS_METER_COVER_REMOVED (0x0000000000000001) +#define EMBER_AF_METERING_EXTENDED_STATUS_METER_COVER_REMOVED_OFFSET (0) +#define EMBER_AF_METERING_EXTENDED_STATUS_STRONG_MAGNETIC_FIELD_DETECTED (0x0000000000000002) +#define EMBER_AF_METERING_EXTENDED_STATUS_STRONG_MAGNETIC_FIELD_DETECTED_OFFSET (1) +#define EMBER_AF_METERING_EXTENDED_STATUS_BATTERY_FAILURE (0x0000000000000004) +#define EMBER_AF_METERING_EXTENDED_STATUS_BATTERY_FAILURE_OFFSET (2) +#define EMBER_AF_METERING_EXTENDED_STATUS_PROGRAM_MEMORY_ERROR (0x0000000000000008) +#define EMBER_AF_METERING_EXTENDED_STATUS_PROGRAM_MEMORY_ERROR_OFFSET (3) +#define EMBER_AF_METERING_EXTENDED_STATUS_RAM_ERROR (0x0000000000000010) +#define EMBER_AF_METERING_EXTENDED_STATUS_RAM_ERROR_OFFSET (4) +#define EMBER_AF_METERING_EXTENDED_STATUS_NV_MEMORY_ERROR (0x0000000000000020) +#define EMBER_AF_METERING_EXTENDED_STATUS_NV_MEMORY_ERROR_OFFSET (5) +#define EMBER_AF_METERING_EXTENDED_STATUS_MEASUREMENT_SYSTEM_ERROR (0x0000000000000040) +#define EMBER_AF_METERING_EXTENDED_STATUS_MEASUREMENT_SYSTEM_ERROR_OFFSET (6) +#define EMBER_AF_METERING_EXTENDED_STATUS_WATCHDOG_ERROR (0x0000000000000080) +#define EMBER_AF_METERING_EXTENDED_STATUS_WATCHDOG_ERROR_OFFSET (7) +#define EMBER_AF_METERING_EXTENDED_STATUS_SUPPLY_DISCONNECT_FAILURE (0x0000000000000100) +#define EMBER_AF_METERING_EXTENDED_STATUS_SUPPLY_DISCONNECT_FAILURE_OFFSET (8) +#define EMBER_AF_METERING_EXTENDED_STATUS_SUPPLY_CONNECT_FAILURE (0x0000000000000200) +#define EMBER_AF_METERING_EXTENDED_STATUS_SUPPLY_CONNECT_FAILURE_OFFSET (9) +#define EMBER_AF_METERING_EXTENDED_STATUS_MEASUREMENT_SW_CHANGED_TAMPERED (0x0000000000000400) +#define EMBER_AF_METERING_EXTENDED_STATUS_MEASUREMENT_SW_CHANGED_TAMPERED_OFFSET (10) +#define EMBER_AF_METERING_EXTENDED_STATUS_CLOCK_INVALID (0x0000000000000800) +#define EMBER_AF_METERING_EXTENDED_STATUS_CLOCK_INVALID_OFFSET (11) +#define EMBER_AF_METERING_EXTENDED_STATUS_TEMPERATURE_EXCEEDED (0x0000000000001000) +#define EMBER_AF_METERING_EXTENDED_STATUS_TEMPERATURE_EXCEEDED_OFFSET (12) +#define EMBER_AF_METERING_EXTENDED_STATUS_MOISTURE_DETECTED (0x0000000000002000) +#define EMBER_AF_METERING_EXTENDED_STATUS_MOISTURE_DETECTED_OFFSET (13) +#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_TERMINAL_COVER_REMOVED (0x0000000001000000) +#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_TERMINAL_COVER_REMOVED_OFFSET (24) +#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_INCORRECT_POLARITY (0x0000000002000000) +#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_INCORRECT_POLARITY_OFFSET (25) +#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_CURRENT_WITH_NO_VOLTAGE (0x0000000004000000) +#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_CURRENT_WITH_NO_VOLTAGE_OFFSET (26) +#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_LIMIT_THRESHOLD_EXCEEDED (0x0000000008000000) +#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_LIMIT_THRESHOLD_EXCEEDED_OFFSET (27) +#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_UNDER_VOLTAGE (0x0000000010000000) +#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_UNDER_VOLTAGE_OFFSET (28) +#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_OVER_VOLTAGE (0x0000000020000000) +#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_OVER_VOLTAGE_OFFSET (29) +#define EMBER_AF_METERING_EXTENDED_STATUS_GAS_METER_BATTERY_COVER_REMOVED (0x0000000001000000) +#define EMBER_AF_METERING_EXTENDED_STATUS_GAS_METER_BATTERY_COVER_REMOVED_OFFSET (24) +#define EMBER_AF_METERING_EXTENDED_STATUS_GAS_METER_TILT_TAMPER (0x0000000002000000) +#define EMBER_AF_METERING_EXTENDED_STATUS_GAS_METER_TILT_TAMPER_OFFSET (25) +#define EMBER_AF_METERING_EXTENDED_STATUS_GAS_METER_EXCESS_FLOW (0x0000000004000000) +#define EMBER_AF_METERING_EXTENDED_STATUS_GAS_METER_EXCESS_FLOW_OFFSET (26) +#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_SERVICE_DISCONNECTION_REASON_OFF_DUE_TO_OVER_POWER (0x0000000040000000) +#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_SERVICE_DISCONNECTION_REASON_OFF_DUE_TO_OVER_POWER_OFFSET (30) +#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_SERVICE_DISCONNECTION_REASON_OFF_DUE_TO_OVER_VOLTAGE \ + (0x0000000080000000) +#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_SERVICE_DISCONNECTION_REASON_OFF_DUE_TO_OVER_VOLTAGE_OFFSET (31) +#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_SERVICE_DISCONNECTION_REASON_OFF_DUE_TO_REMOTE_LOAD_CONTROL \ + (0x00000000C0000000) +#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_SERVICE_DISCONNECTION_REASON_OFF_DUE_TO_REMOTE_LOAD_CONTROL_OFFSET (30) +#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_SERVICE_DISCONNECTION_REASON_OFF_BY_OTHER_REMOTE_COMMAND \ + (0x0000000100000000) +#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_SERVICE_DISCONNECTION_REASON_OFF_BY_OTHER_REMOTE_COMMAND_OFFSET (32) +#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_SERVICE_DISCONNECTION_REASON_OFF_DUE_TO_OVERHEATING_SHORT_CIRCUIT \ + (0x0000000140000000) +#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_SERVICE_DISCONNECTION_REASON_OFF_DUE_TO_OVERHEATING_SHORT_CIRCUIT_OFFSET \ + (30) +#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_SERVICE_DISCONNECTION_REASON_OFF_DUE_TO_OVERHEATING_OTHER \ + (0x0000000180000000) +#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_SERVICE_DISCONNECTION_REASON_OFF_DUE_TO_OVERHEATING_OTHER_OFFSET (31) +#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_BI_DIRECTIONAL_OPERATION (0x0000000400000000) +#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_BI_DIRECTIONAL_OPERATION_OFFSET (34) +#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_ACTIVE_POWER_RECEIVED (0x0000000800000000) +#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_ACTIVE_POWER_RECEIVED_OFFSET (35) +#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_MODE_OF_OPERATION (0x0000001000000000) +#define EMBER_AF_METERING_EXTENDED_STATUS_ELECTRICITY_METER_MODE_OF_OPERATION_OFFSET (36) +#define EMBER_AF_METERING_STATUS_ELECTRICITY_CHECK_METER (0x01) +#define EMBER_AF_METERING_STATUS_ELECTRICITY_CHECK_METER_OFFSET (0) +#define EMBER_AF_METERING_STATUS_ELECTRICITY_LOW_BATTERY (0x02) +#define EMBER_AF_METERING_STATUS_ELECTRICITY_LOW_BATTERY_OFFSET (1) +#define EMBER_AF_METERING_STATUS_ELECTRICITY_TAMPER_DETECT (0x04) +#define EMBER_AF_METERING_STATUS_ELECTRICITY_TAMPER_DETECT_OFFSET (2) +#define EMBER_AF_METERING_STATUS_ELECTRICITY_POWER_FAILURE (0x08) +#define EMBER_AF_METERING_STATUS_ELECTRICITY_POWER_FAILURE_OFFSET (3) +#define EMBER_AF_METERING_STATUS_ELECTRICITY_POWER_QUALITY (0x10) +#define EMBER_AF_METERING_STATUS_ELECTRICITY_POWER_QUALITY_OFFSET (4) +#define EMBER_AF_METERING_STATUS_ELECTRICITY_LEAK_DETECT (0x20) +#define EMBER_AF_METERING_STATUS_ELECTRICITY_LEAK_DETECT_OFFSET (5) +#define EMBER_AF_METERING_STATUS_ELECTRICITY_SERVICE_DISCONNECT_OPEN (0x40) +#define EMBER_AF_METERING_STATUS_ELECTRICITY_SERVICE_DISCONNECT_OPEN_OFFSET (6) +#define EMBER_AF_METERING_STATUS_ELECTRICITY_RESERVED (0x80) +#define EMBER_AF_METERING_STATUS_ELECTRICITY_RESERVED_OFFSET (7) +#define EMBER_AF_METERING_STATUS_GAS_CHECK_METER (0x01) +#define EMBER_AF_METERING_STATUS_GAS_CHECK_METER_OFFSET (0) +#define EMBER_AF_METERING_STATUS_GAS_LOW_BATTERY (0x02) +#define EMBER_AF_METERING_STATUS_GAS_LOW_BATTERY_OFFSET (1) +#define EMBER_AF_METERING_STATUS_GAS_TAMPER_DETECT (0x04) +#define EMBER_AF_METERING_STATUS_GAS_TAMPER_DETECT_OFFSET (2) +#define EMBER_AF_METERING_STATUS_GAS_NOT_DEFINED (0x08) +#define EMBER_AF_METERING_STATUS_GAS_NOT_DEFINED_OFFSET (3) +#define EMBER_AF_METERING_STATUS_GAS_LOW_PRESSURE (0x10) +#define EMBER_AF_METERING_STATUS_GAS_LOW_PRESSURE_OFFSET (4) +#define EMBER_AF_METERING_STATUS_GAS_LEAK_DETECT (0x20) +#define EMBER_AF_METERING_STATUS_GAS_LEAK_DETECT_OFFSET (5) +#define EMBER_AF_METERING_STATUS_GAS_SERVICE_DISCONNECT (0x40) +#define EMBER_AF_METERING_STATUS_GAS_SERVICE_DISCONNECT_OFFSET (6) +#define EMBER_AF_METERING_STATUS_GAS_REVERSE_FLOW (0x80) +#define EMBER_AF_METERING_STATUS_GAS_REVERSE_FLOW_OFFSET (7) +#define EMBER_AF_METERING_STATUS_HEAT_AND_COOLING_CHECK_METER (0x01) +#define EMBER_AF_METERING_STATUS_HEAT_AND_COOLING_CHECK_METER_OFFSET (0) +#define EMBER_AF_METERING_STATUS_HEAT_AND_COOLING_LOW_BATTERY (0x02) +#define EMBER_AF_METERING_STATUS_HEAT_AND_COOLING_LOW_BATTERY_OFFSET (1) +#define EMBER_AF_METERING_STATUS_HEAT_AND_COOLING_TAMPER_DETECT (0x04) +#define EMBER_AF_METERING_STATUS_HEAT_AND_COOLING_TAMPER_DETECT_OFFSET (2) +#define EMBER_AF_METERING_STATUS_HEAT_AND_COOLING_TEMPERATURE_SENSOR (0x08) +#define EMBER_AF_METERING_STATUS_HEAT_AND_COOLING_TEMPERATURE_SENSOR_OFFSET (3) +#define EMBER_AF_METERING_STATUS_HEAT_AND_COOLING_BURST_DETECT (0x10) +#define EMBER_AF_METERING_STATUS_HEAT_AND_COOLING_BURST_DETECT_OFFSET (4) +#define EMBER_AF_METERING_STATUS_HEAT_AND_COOLING_LEAK_DETECT (0x20) +#define EMBER_AF_METERING_STATUS_HEAT_AND_COOLING_LEAK_DETECT_OFFSET (5) +#define EMBER_AF_METERING_STATUS_HEAT_AND_COOLING_SERVICE_DISCONNECT (0x40) +#define EMBER_AF_METERING_STATUS_HEAT_AND_COOLING_SERVICE_DISCONNECT_OFFSET (6) +#define EMBER_AF_METERING_STATUS_HEAT_AND_COOLING_FLOW_SENSOR (0x80) +#define EMBER_AF_METERING_STATUS_HEAT_AND_COOLING_FLOW_SENSOR_OFFSET (7) +#define EMBER_AF_METERING_STATUS_WATER_CHECK_METER (0x01) +#define EMBER_AF_METERING_STATUS_WATER_CHECK_METER_OFFSET (0) +#define EMBER_AF_METERING_STATUS_WATER_LOW_BATTERY (0x02) +#define EMBER_AF_METERING_STATUS_WATER_LOW_BATTERY_OFFSET (1) +#define EMBER_AF_METERING_STATUS_WATER_TAMPER_DETECT (0x04) +#define EMBER_AF_METERING_STATUS_WATER_TAMPER_DETECT_OFFSET (2) +#define EMBER_AF_METERING_STATUS_WATER_PIPE_EMPTY (0x08) +#define EMBER_AF_METERING_STATUS_WATER_PIPE_EMPTY_OFFSET (3) +#define EMBER_AF_METERING_STATUS_WATER_LOW_PRESSURE (0x10) +#define EMBER_AF_METERING_STATUS_WATER_LOW_PRESSURE_OFFSET (4) +#define EMBER_AF_METERING_STATUS_WATER_LEAK_DETECT (0x20) +#define EMBER_AF_METERING_STATUS_WATER_LEAK_DETECT_OFFSET (5) +#define EMBER_AF_METERING_STATUS_WATER_SERVICE_DISCONNECT (0x40) +#define EMBER_AF_METERING_STATUS_WATER_SERVICE_DISCONNECT_OFFSET (6) +#define EMBER_AF_METERING_STATUS_WATER_REVERSE_FLOW (0x80) +#define EMBER_AF_METERING_STATUS_WATER_REVERSE_FLOW_OFFSET (7) +#define EMBER_AF_MODE_FOR_SEQUENCE_HEAT_SETPOINT_FIELD_PRESENT (0x01) +#define EMBER_AF_MODE_FOR_SEQUENCE_HEAT_SETPOINT_FIELD_PRESENT_OFFSET (0) +#define EMBER_AF_MODE_FOR_SEQUENCE_COOL_SETPOINT_FIELD_PRESENT (0x02) +#define EMBER_AF_MODE_FOR_SEQUENCE_COOL_SETPOINT_FIELD_PRESENT_OFFSET (1) +#define EMBER_AF_NUMBER_OF_EVENTS_LOG_PAYLOAD_CONTROL_LOG_PAYLOAD_CONTROL (0x0F) +#define EMBER_AF_NUMBER_OF_EVENTS_LOG_PAYLOAD_CONTROL_LOG_PAYLOAD_CONTROL_OFFSET (0) +#define EMBER_AF_NUMBER_OF_EVENTS_LOG_PAYLOAD_CONTROL_NUMBER_OF_EVENTS (0xF0) +#define EMBER_AF_NUMBER_OF_EVENTS_LOG_PAYLOAD_CONTROL_NUMBER_OF_EVENTS_OFFSET (4) +#define EMBER_AF_OCCUPANCY_OCCUPIED (0x1) +#define EMBER_AF_OCCUPANCY_OCCUPIED_OFFSET (0) +#define EMBER_AF_OCCUPANCY_SENSOR_TYPE_BITMAP_PIR (0x01) +#define EMBER_AF_OCCUPANCY_SENSOR_TYPE_BITMAP_PIR_OFFSET (0) +#define EMBER_AF_OCCUPANCY_SENSOR_TYPE_BITMAP_ULTRASONIC (0x02) +#define EMBER_AF_OCCUPANCY_SENSOR_TYPE_BITMAP_ULTRASONIC_OFFSET (1) +#define EMBER_AF_OCCUPANCY_SENSOR_TYPE_BITMAP_PHYSICAL_CONTACT (0x04) +#define EMBER_AF_OCCUPANCY_SENSOR_TYPE_BITMAP_PHYSICAL_CONTACT_OFFSET (2) +#define EMBER_AF_ON_OFF_CONTROL_ACCEPT_ONLY_WHEN_ON (0x01) +#define EMBER_AF_ON_OFF_CONTROL_ACCEPT_ONLY_WHEN_ON_OFFSET (0) +#define EMBER_AF_ORIGINATOR_ID_SUPPLY_CONTROL_BITS_ACKNOWLEDGE_REQUIRED (0x01) +#define EMBER_AF_ORIGINATOR_ID_SUPPLY_CONTROL_BITS_ACKNOWLEDGE_REQUIRED_OFFSET (0) +#define EMBER_AF_PAYMENT_CONTROL_CONFIGURATION_DISCONNECTION_ENABLED (0x0001) +#define EMBER_AF_PAYMENT_CONTROL_CONFIGURATION_DISCONNECTION_ENABLED_OFFSET (0) +#define EMBER_AF_PAYMENT_CONTROL_CONFIGURATION_PREPAYMENT_ENABLED (0x0002) +#define EMBER_AF_PAYMENT_CONTROL_CONFIGURATION_PREPAYMENT_ENABLED_OFFSET (1) +#define EMBER_AF_PAYMENT_CONTROL_CONFIGURATION_CREDIT_MANAGEMENT_ENABLED (0x0004) +#define EMBER_AF_PAYMENT_CONTROL_CONFIGURATION_CREDIT_MANAGEMENT_ENABLED_OFFSET (2) +#define EMBER_AF_PAYMENT_CONTROL_CONFIGURATION_CREDIT_DISPLAY_ENABLED (0x0010) +#define EMBER_AF_PAYMENT_CONTROL_CONFIGURATION_CREDIT_DISPLAY_ENABLED_OFFSET (4) +#define EMBER_AF_PAYMENT_CONTROL_CONFIGURATION_ACCOUNT_BASE (0x0040) +#define EMBER_AF_PAYMENT_CONTROL_CONFIGURATION_ACCOUNT_BASE_OFFSET (6) +#define EMBER_AF_PAYMENT_CONTROL_CONFIGURATION_CONTACTOR_FITTED (0x0080) +#define EMBER_AF_PAYMENT_CONTROL_CONFIGURATION_CONTACTOR_FITTED_OFFSET (7) +#define EMBER_AF_PAYMENT_CONTROL_CONFIGURATION_STANDING_CHARGE_CONFIGURATION (0x0100) +#define EMBER_AF_PAYMENT_CONTROL_CONFIGURATION_STANDING_CHARGE_CONFIGURATION_OFFSET (8) +#define EMBER_AF_PAYMENT_CONTROL_CONFIGURATION_EMERGENCY_STANDING_CHARGE_CONFIGURATION (0x0200) +#define EMBER_AF_PAYMENT_CONTROL_CONFIGURATION_EMERGENCY_STANDING_CHARGE_CONFIGURATION_OFFSET (9) +#define EMBER_AF_PAYMENT_CONTROL_CONFIGURATION_DEBT_CONFIGURATION (0x0400) +#define EMBER_AF_PAYMENT_CONTROL_CONFIGURATION_DEBT_CONFIGURATION_OFFSET (10) +#define EMBER_AF_PAYMENT_CONTROL_CONFIGURATION_EMERGENCY_DEBT_CONFIGURATION (0x0800) +#define EMBER_AF_PAYMENT_CONTROL_CONFIGURATION_EMERGENCY_DEBT_CONFIGURATION_OFFSET (11) +#define EMBER_AF_PREPAY_SNAPSHOT_PAYLOAD_CAUSE_GENERAL (0x00000001) +#define EMBER_AF_PREPAY_SNAPSHOT_PAYLOAD_CAUSE_GENERAL_OFFSET (0) +#define EMBER_AF_PREPAY_SNAPSHOT_PAYLOAD_CAUSE_CHANGE_OF_TARIFF_INFORMATION (0x00000008) +#define EMBER_AF_PREPAY_SNAPSHOT_PAYLOAD_CAUSE_CHANGE_OF_TARIFF_INFORMATION_OFFSET (3) +#define EMBER_AF_PREPAY_SNAPSHOT_PAYLOAD_CAUSE_CHANGE_OF_PRICE_MATRIX (0x00000010) +#define EMBER_AF_PREPAY_SNAPSHOT_PAYLOAD_CAUSE_CHANGE_OF_PRICE_MATRIX_OFFSET (4) +#define EMBER_AF_PREPAY_SNAPSHOT_PAYLOAD_CAUSE_MANUALLY_TRIGGERED_FROM_CLIENT (0x00000400) +#define EMBER_AF_PREPAY_SNAPSHOT_PAYLOAD_CAUSE_MANUALLY_TRIGGERED_FROM_CLIENT_OFFSET (10) +#define EMBER_AF_PREPAY_SNAPSHOT_PAYLOAD_CAUSE_CHANGE_OF_TENANCY (0x00001000) +#define EMBER_AF_PREPAY_SNAPSHOT_PAYLOAD_CAUSE_CHANGE_OF_TENANCY_OFFSET (12) +#define EMBER_AF_PREPAY_SNAPSHOT_PAYLOAD_CAUSE_CHANGE_OF_SUPPLIER (0x00002000) +#define EMBER_AF_PREPAY_SNAPSHOT_PAYLOAD_CAUSE_CHANGE_OF_SUPPLIER_OFFSET (13) +#define EMBER_AF_PREPAY_SNAPSHOT_PAYLOAD_CAUSE_CHANGE_OF_METER_MODE (0x00004000) +#define EMBER_AF_PREPAY_SNAPSHOT_PAYLOAD_CAUSE_CHANGE_OF_METER_MODE_OFFSET (14) +#define EMBER_AF_PREPAY_SNAPSHOT_PAYLOAD_CAUSE_TOP_UP_ADDITION (0x00040000) +#define EMBER_AF_PREPAY_SNAPSHOT_PAYLOAD_CAUSE_TOP_UP_ADDITION_OFFSET (18) +#define EMBER_AF_PREPAY_SNAPSHOT_PAYLOAD_CAUSE_DEBT_CREDIT_ADDITION (0x00080000) +#define EMBER_AF_PREPAY_SNAPSHOT_PAYLOAD_CAUSE_DEBT_CREDIT_ADDITION_OFFSET (19) +#define EMBER_AF_PREPAYMENT_ALARM_STATUS_LOW_CREDIT_WARNING (0x0001) +#define EMBER_AF_PREPAYMENT_ALARM_STATUS_LOW_CREDIT_WARNING_OFFSET (0) +#define EMBER_AF_PREPAYMENT_ALARM_STATUS_TOP_UP_CODE_ERROR (0x0002) +#define EMBER_AF_PREPAYMENT_ALARM_STATUS_TOP_UP_CODE_ERROR_OFFSET (1) +#define EMBER_AF_PREPAYMENT_ALARM_STATUS_TOP_UP_CODE_ALREADY_USED (0x0004) +#define EMBER_AF_PREPAYMENT_ALARM_STATUS_TOP_UP_CODE_ALREADY_USED_OFFSET (2) +#define EMBER_AF_PREPAYMENT_ALARM_STATUS_TOP_UP_CODE_INVALID (0x0008) +#define EMBER_AF_PREPAYMENT_ALARM_STATUS_TOP_UP_CODE_INVALID_OFFSET (3) +#define EMBER_AF_PREPAYMENT_ALARM_STATUS_FRIENDLY_CREDIT_IN_USE (0x0010) +#define EMBER_AF_PREPAYMENT_ALARM_STATUS_FRIENDLY_CREDIT_IN_USE_OFFSET (4) +#define EMBER_AF_PREPAYMENT_ALARM_STATUS_FRIENDLY_CREDIT_PERIOD_END_WARNING (0x0020) +#define EMBER_AF_PREPAYMENT_ALARM_STATUS_FRIENDLY_CREDIT_PERIOD_END_WARNING_OFFSET (5) +#define EMBER_AF_PREPAYMENT_ALARM_STATUS_EC_AVAILABLE (0x0040) +#define EMBER_AF_PREPAYMENT_ALARM_STATUS_EC_AVAILABLE_OFFSET (6) +#define EMBER_AF_PREPAYMENT_ALARM_STATUS_UNAUTHORISED_ENERGY_USE (0x0080) +#define EMBER_AF_PREPAYMENT_ALARM_STATUS_UNAUTHORISED_ENERGY_USE_OFFSET (7) +#define EMBER_AF_PREPAYMENT_ALARM_STATUS_DISCONNECTED_SUPPLY_DUE_TO_CREDIT (0x0100) +#define EMBER_AF_PREPAYMENT_ALARM_STATUS_DISCONNECTED_SUPPLY_DUE_TO_CREDIT_OFFSET (8) +#define EMBER_AF_PREPAYMENT_ALARM_STATUS_DISCONNECTED_SUPPLY_DUE_TO_TAMPER (0x0200) +#define EMBER_AF_PREPAYMENT_ALARM_STATUS_DISCONNECTED_SUPPLY_DUE_TO_TAMPER_OFFSET (9) +#define EMBER_AF_PREPAYMENT_ALARM_STATUS_DISCONNECTED_SUPPLY_DUE_TO_HES (0x0400) +#define EMBER_AF_PREPAYMENT_ALARM_STATUS_DISCONNECTED_SUPPLY_DUE_TO_HES_OFFSET (10) +#define EMBER_AF_PREPAYMENT_ALARM_STATUS_PHYSICAL_ATTACK (0x0800) +#define EMBER_AF_PREPAYMENT_ALARM_STATUS_PHYSICAL_ATTACK_OFFSET (11) +#define EMBER_AF_PREPAYMENT_ALARM_STATUS_ELECTRONIC_ATTACK (0x1000) +#define EMBER_AF_PREPAYMENT_ALARM_STATUS_ELECTRONIC_ATTACK_OFFSET (12) +#define EMBER_AF_PREPAYMENT_ALARM_STATUS_MANUFACTURE_ALARM_CODE_A (0x2000) +#define EMBER_AF_PREPAYMENT_ALARM_STATUS_MANUFACTURE_ALARM_CODE_A_OFFSET (13) +#define EMBER_AF_PREPAYMENT_ALARM_STATUS_MANUFACTURE_ALARM_CODE_B (0x4000) +#define EMBER_AF_PREPAYMENT_ALARM_STATUS_MANUFACTURE_ALARM_CODE_B_OFFSET (14) +#define EMBER_AF_PRICE_CONTROL_MASK_PRICE_ACKNOWLEDGEMENT_REQUIRED (0x01) +#define EMBER_AF_PRICE_CONTROL_MASK_PRICE_ACKNOWLEDGEMENT_REQUIRED_OFFSET (0) +#define EMBER_AF_PRICE_CONTROL_MASK_TOTAL_TIERS_EXCEEDS15 (0x02) +#define EMBER_AF_PRICE_CONTROL_MASK_TOTAL_TIERS_EXCEEDS15_OFFSET (1) +#define EMBER_AF_PRICE_MATRIX_SUB_PAYLOAD_CONTROL_TOU_BASED (0x01) +#define EMBER_AF_PRICE_MATRIX_SUB_PAYLOAD_CONTROL_TOU_BASED_OFFSET (0) +#define EMBER_AF_PRICE_NUMBER_OF_PRICE_TIERS_AND_REGISTER_TIER_REGISTER_TIER (0x0F) +#define EMBER_AF_PRICE_NUMBER_OF_PRICE_TIERS_AND_REGISTER_TIER_REGISTER_TIER_OFFSET (0) +#define EMBER_AF_PRICE_NUMBER_OF_PRICE_TIERS_AND_REGISTER_TIER_NUMBER_OF_PRICE_TIERS (0xF0) +#define EMBER_AF_PRICE_NUMBER_OF_PRICE_TIERS_AND_REGISTER_TIER_NUMBER_OF_PRICE_TIERS_OFFSET (4) +#define EMBER_AF_PRICE_TRAILING_DIGIT_TRAILING_DIGIT (0xF0) +#define EMBER_AF_PRICE_TRAILING_DIGIT_TRAILING_DIGIT_OFFSET (4) +#define EMBER_AF_PRICE_TRAILING_DIGIT_AND_PRICE_TIER_PRICE_TIER (0x0F) +#define EMBER_AF_PRICE_TRAILING_DIGIT_AND_PRICE_TIER_PRICE_TIER_OFFSET (0) +#define EMBER_AF_PRICE_TRAILING_DIGIT_AND_PRICE_TIER_TRAILING_DIGIT (0xF0) +#define EMBER_AF_PRICE_TRAILING_DIGIT_AND_PRICE_TIER_TRAILING_DIGIT_OFFSET (4) +#define EMBER_AF_PROPOSED_CHANGE_CONTROL_PRE_SNAPSHOTS (0x00000001) +#define EMBER_AF_PROPOSED_CHANGE_CONTROL_PRE_SNAPSHOTS_OFFSET (0) +#define EMBER_AF_PROPOSED_CHANGE_CONTROL_POST_SNAPSHOTS (0x00000002) +#define EMBER_AF_PROPOSED_CHANGE_CONTROL_POST_SNAPSHOTS_OFFSET (1) +#define EMBER_AF_PROPOSED_CHANGE_CONTROL_RESET_CREDIT_REGISTER (0x00000004) +#define EMBER_AF_PROPOSED_CHANGE_CONTROL_RESET_CREDIT_REGISTER_OFFSET (2) +#define EMBER_AF_PROPOSED_CHANGE_CONTROL_RESET_DEBIT_REGISTER (0x00000008) +#define EMBER_AF_PROPOSED_CHANGE_CONTROL_RESET_DEBIT_REGISTER_OFFSET (3) +#define EMBER_AF_PROPOSED_CHANGE_CONTROL_RESET_BILLING_PERIOD (0x00000010) +#define EMBER_AF_PROPOSED_CHANGE_CONTROL_RESET_BILLING_PERIOD_OFFSET (4) +#define EMBER_AF_PROPOSED_CHANGE_CONTROL_CLEAR_TARIFF_PLAN (0x00000020) +#define EMBER_AF_PROPOSED_CHANGE_CONTROL_CLEAR_TARIFF_PLAN_OFFSET (5) +#define EMBER_AF_PROPOSED_CHANGE_CONTROL_CLEAR_STANDING_CHARGE (0x00000040) +#define EMBER_AF_PROPOSED_CHANGE_CONTROL_CLEAR_STANDING_CHARGE_OFFSET (6) +#define EMBER_AF_PROPOSED_CHANGE_CONTROL_BLOCK_HISTORICAL_LOAD_PROFILE_INFORMATION (0x00000080) +#define EMBER_AF_PROPOSED_CHANGE_CONTROL_BLOCK_HISTORICAL_LOAD_PROFILE_INFORMATION_OFFSET (7) +#define EMBER_AF_PROPOSED_CHANGE_CONTROL_CLEAR_HISTORICAL_LOAD_PROFILE_INFORMATION (0x00000100) +#define EMBER_AF_PROPOSED_CHANGE_CONTROL_CLEAR_HISTORICAL_LOAD_PROFILE_INFORMATION_OFFSET (8) +#define EMBER_AF_PROPOSED_CHANGE_CONTROL_CLEAR_IHD_DATA_CONSUMER (0x00000200) +#define EMBER_AF_PROPOSED_CHANGE_CONTROL_CLEAR_IHD_DATA_CONSUMER_OFFSET (9) +#define EMBER_AF_PROPOSED_CHANGE_CONTROL_CLEAR_IHD_DATA_SUPPLIER (0x00000400) +#define EMBER_AF_PROPOSED_CHANGE_CONTROL_CLEAR_IHD_DATA_SUPPLIER_OFFSET (10) +#define EMBER_AF_PROPOSED_CHANGE_CONTROL_METER_CONNECTOR_STATE_ON_OFF_ARMED (0x00001800) +#define EMBER_AF_PROPOSED_CHANGE_CONTROL_METER_CONNECTOR_STATE_ON_OFF_ARMED_OFFSET (11) +#define EMBER_AF_PROPOSED_CHANGE_CONTROL_CLEAR_TRANSACTION_LOG (0x00002000) +#define EMBER_AF_PROPOSED_CHANGE_CONTROL_CLEAR_TRANSACTION_LOG_OFFSET (13) +#define EMBER_AF_PROPOSED_CHANGE_CONTROL_CLEAR_PREPAYMENT_LOG (0x00004000) +#define EMBER_AF_PROPOSED_CHANGE_CONTROL_CLEAR_PREPAYMENT_LOG_OFFSET (14) +#define EMBER_AF_PUMP_ALARM_MASK_SUPPLY_VOLTAGE_TOO_LOW (0x1) +#define EMBER_AF_PUMP_ALARM_MASK_SUPPLY_VOLTAGE_TOO_LOW_OFFSET (0) +#define EMBER_AF_PUMP_ALARM_MASK_SUPPLY_VOLTAGE_TOO_HIGH (0x2) +#define EMBER_AF_PUMP_ALARM_MASK_SUPPLY_VOLTAGE_TOO_HIGH_OFFSET (1) +#define EMBER_AF_PUMP_ALARM_MASK_POWER_MISSING_PHASE (0x4) +#define EMBER_AF_PUMP_ALARM_MASK_POWER_MISSING_PHASE_OFFSET (2) +#define EMBER_AF_PUMP_ALARM_MASK_SYSTEM_PRESSURE_TOO_LOW (0x8) +#define EMBER_AF_PUMP_ALARM_MASK_SYSTEM_PRESSURE_TOO_LOW_OFFSET (3) +#define EMBER_AF_PUMP_ALARM_MASK_SYSTEM_PRESSURE_TOO_HIGH (0x10) +#define EMBER_AF_PUMP_ALARM_MASK_SYSTEM_PRESSURE_TOO_HIGH_OFFSET (4) +#define EMBER_AF_PUMP_ALARM_MASK_DRY_RUNNING (0x20) +#define EMBER_AF_PUMP_ALARM_MASK_DRY_RUNNING_OFFSET (5) +#define EMBER_AF_PUMP_ALARM_MASK_MOTOR_TEMPERATURE_TOO_HIGH (0x40) +#define EMBER_AF_PUMP_ALARM_MASK_MOTOR_TEMPERATURE_TOO_HIGH_OFFSET (6) +#define EMBER_AF_PUMP_ALARM_MASK_PUMP_MOTOR_HAS_FATAL_FAILURE (0x80) +#define EMBER_AF_PUMP_ALARM_MASK_PUMP_MOTOR_HAS_FATAL_FAILURE_OFFSET (7) +#define EMBER_AF_PUMP_ALARM_MASK_ELECTRONIC_TEMPERATURE_TOO_HIGH (0x100) +#define EMBER_AF_PUMP_ALARM_MASK_ELECTRONIC_TEMPERATURE_TOO_HIGH_OFFSET (8) +#define EMBER_AF_PUMP_ALARM_MASK_PUMP_BLOCKED (0x200) +#define EMBER_AF_PUMP_ALARM_MASK_PUMP_BLOCKED_OFFSET (9) +#define EMBER_AF_PUMP_ALARM_MASK_SENSOR_FAILURE (0x400) +#define EMBER_AF_PUMP_ALARM_MASK_SENSOR_FAILURE_OFFSET (10) +#define EMBER_AF_PUMP_ALARM_MASK_ELECTRONIC_NON_FATAL_FAILURE (0x800) +#define EMBER_AF_PUMP_ALARM_MASK_ELECTRONIC_NON_FATAL_FAILURE_OFFSET (11) +#define EMBER_AF_PUMP_ALARM_MASK_ELECTRONIC_FATAL_FAILURE (0x1000) +#define EMBER_AF_PUMP_ALARM_MASK_ELECTRONIC_FATAL_FAILURE_OFFSET (12) +#define EMBER_AF_PUMP_ALARM_MASK_GENERAL_FAULT (0x2000) +#define EMBER_AF_PUMP_ALARM_MASK_GENERAL_FAULT_OFFSET (13) +#define EMBER_AF_PUMP_STATUS_DEVICE_FAULT (0x1) +#define EMBER_AF_PUMP_STATUS_DEVICE_FAULT_OFFSET (0) +#define EMBER_AF_PUMP_STATUS_SUPPLYFAULT (0x2) +#define EMBER_AF_PUMP_STATUS_SUPPLYFAULT_OFFSET (1) +#define EMBER_AF_PUMP_STATUS_SPEED_LOW (0x4) +#define EMBER_AF_PUMP_STATUS_SPEED_LOW_OFFSET (2) +#define EMBER_AF_PUMP_STATUS_SPEED_HIGH (0x8) +#define EMBER_AF_PUMP_STATUS_SPEED_HIGH_OFFSET (3) +#define EMBER_AF_PUMP_STATUS_LOCAL_OVERRIDE (0x10) +#define EMBER_AF_PUMP_STATUS_LOCAL_OVERRIDE_OFFSET (4) +#define EMBER_AF_PUMP_STATUS_RUNNING (0x20) +#define EMBER_AF_PUMP_STATUS_RUNNING_OFFSET (5) +#define EMBER_AF_PUMP_STATUS_REMOTE_PRESSURE (0x40) +#define EMBER_AF_PUMP_STATUS_REMOTE_PRESSURE_OFFSET (6) +#define EMBER_AF_PUMP_STATUS_REMOTE_FLOW (0x80) +#define EMBER_AF_PUMP_STATUS_REMOTE_FLOW_OFFSET (7) +#define EMBER_AF_PUMP_STATUS_REMOTE_TEMPERATURE (0x100) +#define EMBER_AF_PUMP_STATUS_REMOTE_TEMPERATURE_OFFSET (8) +#define EMBER_AF_REMOTE_ENABLE_FLAGS_AND_DEVICE_STATUS2_REMOTE_ENABLE_FLAGS (0x0F) +#define EMBER_AF_REMOTE_ENABLE_FLAGS_AND_DEVICE_STATUS2_REMOTE_ENABLE_FLAGS_OFFSET (0) +#define EMBER_AF_REMOTE_ENABLE_FLAGS_AND_DEVICE_STATUS2_DEVICE_STATUS2_STRUCTURE (0xF0) +#define EMBER_AF_REMOTE_ENABLE_FLAGS_AND_DEVICE_STATUS2_DEVICE_STATUS2_STRUCTURE_OFFSET (4) +#define EMBER_AF_RESET_OPTIONS_RESET_CURRENT (0x1) +#define EMBER_AF_RESET_OPTIONS_RESET_CURRENT_OFFSET (0) +#define EMBER_AF_RESET_OPTIONS_RESET_ALL (0x2) +#define EMBER_AF_RESET_OPTIONS_RESET_ALL_OFFSET (1) +#define EMBER_AF_RESET_OPTIONS_ERASE_INDEX (0x4) +#define EMBER_AF_RESET_OPTIONS_ERASE_INDEX_OFFSET (2) +#define EMBER_AF_RESTART_OPTIONS_START_MODE1 (0x1) +#define EMBER_AF_RESTART_OPTIONS_START_MODE1_OFFSET (0) +#define EMBER_AF_RESTART_OPTIONS_STARTUP_MODE2 (0x2) +#define EMBER_AF_RESTART_OPTIONS_STARTUP_MODE2_OFFSET (1) +#define EMBER_AF_RESTART_OPTIONS_STARTUP_MODE3 (0x4) +#define EMBER_AF_RESTART_OPTIONS_STARTUP_MODE3_OFFSET (2) +#define EMBER_AF_RESTART_OPTIONS_IMMEDIATE (0x8) +#define EMBER_AF_RESTART_OPTIONS_IMMEDIATE_OFFSET (3) +#define EMBER_AF_SCENES_COPY_MODE_COPY_ALL_SCENES (0x01) +#define EMBER_AF_SCENES_COPY_MODE_COPY_ALL_SCENES_OFFSET (0) +#define EMBER_AF_SHADE_CLOSURE_STATUS_OPERATIONAL (0x1) +#define EMBER_AF_SHADE_CLOSURE_STATUS_OPERATIONAL_OFFSET (0) +#define EMBER_AF_SHADE_CLOSURE_STATUS_ADJUSTING (0x2) +#define EMBER_AF_SHADE_CLOSURE_STATUS_ADJUSTING_OFFSET (1) +#define EMBER_AF_SHADE_CLOSURE_STATUS_OPENING (0x4) +#define EMBER_AF_SHADE_CLOSURE_STATUS_OPENING_OFFSET (2) +#define EMBER_AF_SHADE_CLOSURE_STATUS_MOTOR_OPENING (0x8) +#define EMBER_AF_SHADE_CLOSURE_STATUS_MOTOR_OPENING_OFFSET (3) +#define EMBER_AF_SNAPSHOT_CAUSE_GENERAL (0x00000001) +#define EMBER_AF_SNAPSHOT_CAUSE_GENERAL_OFFSET (0) +#define EMBER_AF_SNAPSHOT_CAUSE_END_OF_BILLING_PERIOD (0x00000002) +#define EMBER_AF_SNAPSHOT_CAUSE_END_OF_BILLING_PERIOD_OFFSET (1) +#define EMBER_AF_SNAPSHOT_CAUSE_END_OF_BLOCK_PERIOD (0x00000004) +#define EMBER_AF_SNAPSHOT_CAUSE_END_OF_BLOCK_PERIOD_OFFSET (2) +#define EMBER_AF_SNAPSHOT_CAUSE_CHANGE_OF_TARIFF_INFORMATION (0x00000008) +#define EMBER_AF_SNAPSHOT_CAUSE_CHANGE_OF_TARIFF_INFORMATION_OFFSET (3) +#define EMBER_AF_SNAPSHOT_CAUSE_CHANGE_OF_PRICE_MATRIX (0x00000010) +#define EMBER_AF_SNAPSHOT_CAUSE_CHANGE_OF_PRICE_MATRIX_OFFSET (4) +#define EMBER_AF_SNAPSHOT_CAUSE_CHANGE_OF_BLOCK_THRESHOLDS (0x00000020) +#define EMBER_AF_SNAPSHOT_CAUSE_CHANGE_OF_BLOCK_THRESHOLDS_OFFSET (5) +#define EMBER_AF_SNAPSHOT_CAUSE_CHANGE_OF_CV (0x00000040) +#define EMBER_AF_SNAPSHOT_CAUSE_CHANGE_OF_CV_OFFSET (6) +#define EMBER_AF_SNAPSHOT_CAUSE_CHANGE_OF_CF (0x00000080) +#define EMBER_AF_SNAPSHOT_CAUSE_CHANGE_OF_CF_OFFSET (7) +#define EMBER_AF_SNAPSHOT_CAUSE_CHANGE_OF_CALENDAR (0x00000100) +#define EMBER_AF_SNAPSHOT_CAUSE_CHANGE_OF_CALENDAR_OFFSET (8) +#define EMBER_AF_SNAPSHOT_CAUSE_CRITICAL_PEAK_PRICING (0x00000200) +#define EMBER_AF_SNAPSHOT_CAUSE_CRITICAL_PEAK_PRICING_OFFSET (9) +#define EMBER_AF_SNAPSHOT_CAUSE_MANUALLY_TRIGGERED_FROM_CLIENT (0x00000400) +#define EMBER_AF_SNAPSHOT_CAUSE_MANUALLY_TRIGGERED_FROM_CLIENT_OFFSET (10) +#define EMBER_AF_SNAPSHOT_CAUSE_END_OF_RESOLVE_PERIOD (0x00000800) +#define EMBER_AF_SNAPSHOT_CAUSE_END_OF_RESOLVE_PERIOD_OFFSET (11) +#define EMBER_AF_SNAPSHOT_CAUSE_CHANGE_OF_TENANCY (0x00001000) +#define EMBER_AF_SNAPSHOT_CAUSE_CHANGE_OF_TENANCY_OFFSET (12) +#define EMBER_AF_SNAPSHOT_CAUSE_CHANGE_OF_SUPPLIER (0x00002000) +#define EMBER_AF_SNAPSHOT_CAUSE_CHANGE_OF_SUPPLIER_OFFSET (13) +#define EMBER_AF_SNAPSHOT_CAUSE_CHANGE_OF_MODE (0x00004000) +#define EMBER_AF_SNAPSHOT_CAUSE_CHANGE_OF_MODE_OFFSET (14) +#define EMBER_AF_SNAPSHOT_CAUSE_DEBT_PAYMENT (0x00008000) +#define EMBER_AF_SNAPSHOT_CAUSE_DEBT_PAYMENT_OFFSET (15) +#define EMBER_AF_SNAPSHOT_CAUSE_SCHEDULED_SNAPSHOT (0x00010000) +#define EMBER_AF_SNAPSHOT_CAUSE_SCHEDULED_SNAPSHOT_OFFSET (16) +#define EMBER_AF_SNAPSHOT_CAUSE_OTA_FIRMWARE_DOWNLOAD (0x00020000) +#define EMBER_AF_SNAPSHOT_CAUSE_OTA_FIRMWARE_DOWNLOAD_OFFSET (17) +#define EMBER_AF_SQUAWK_INFO_MODE (0xf0) +#define EMBER_AF_SQUAWK_INFO_MODE_OFFSET (4) +#define EMBER_AF_SQUAWK_INFO_STROBE (0x08) +#define EMBER_AF_SQUAWK_INFO_STROBE_OFFSET (3) +#define EMBER_AF_SQUAWK_INFO_LEVEL (0x03) +#define EMBER_AF_SQUAWK_INFO_LEVEL_OFFSET (0) +#define EMBER_AF_START_TIME_MINUTES (0x003F) +#define EMBER_AF_START_TIME_MINUTES_OFFSET (0) +#define EMBER_AF_START_TIME_TIME_ENCODING (0x00C0) +#define EMBER_AF_START_TIME_TIME_ENCODING_OFFSET (6) +#define EMBER_AF_START_TIME_HOURS (0xFF00) +#define EMBER_AF_START_TIME_HOURS_OFFSET (8) +#define EMBER_AF_SUPPLY_CONTROL_BITS_ACKNOWLEDGE_REQUIRED (0x01) +#define EMBER_AF_SUPPLY_CONTROL_BITS_ACKNOWLEDGE_REQUIRED_OFFSET (0) +#define EMBER_AF_TARIFF_TYPE_CHARGING_SCHEME_TARIFF_TYPE (0x0F) +#define EMBER_AF_TARIFF_TYPE_CHARGING_SCHEME_TARIFF_TYPE_OFFSET (0) +#define EMBER_AF_TARIFF_TYPE_CHARGING_SCHEME_TARIFF_CHARGING_SCHEME (0xF0) +#define EMBER_AF_TARIFF_TYPE_CHARGING_SCHEME_TARIFF_CHARGING_SCHEME_OFFSET (4) +#define EMBER_AF_THERMOSTAT_ALARM_MASK_INITIALIZATION_FAILURE (0x1) +#define EMBER_AF_THERMOSTAT_ALARM_MASK_INITIALIZATION_FAILURE_OFFSET (0) +#define EMBER_AF_THERMOSTAT_ALARM_MASK_HARDWARE_FAILURE (0x2) +#define EMBER_AF_THERMOSTAT_ALARM_MASK_HARDWARE_FAILURE_OFFSET (1) +#define EMBER_AF_THERMOSTAT_ALARM_MASK_SELFCALIBRATION_FAILURE (0x4) +#define EMBER_AF_THERMOSTAT_ALARM_MASK_SELFCALIBRATION_FAILURE_OFFSET (2) +#define EMBER_AF_THERMOSTAT_OCCUPANCY_OCCUPIED (0x1) +#define EMBER_AF_THERMOSTAT_OCCUPANCY_OCCUPIED_OFFSET (0) +#define EMBER_AF_THERMOSTAT_RUNNING_STATE_HEAT_STATE_ON (0x0001) +#define EMBER_AF_THERMOSTAT_RUNNING_STATE_HEAT_STATE_ON_OFFSET (0) +#define EMBER_AF_THERMOSTAT_RUNNING_STATE_COOL_STATE_ON (0x0002) +#define EMBER_AF_THERMOSTAT_RUNNING_STATE_COOL_STATE_ON_OFFSET (1) +#define EMBER_AF_THERMOSTAT_RUNNING_STATE_FAN_STATE_ON (0x0004) +#define EMBER_AF_THERMOSTAT_RUNNING_STATE_FAN_STATE_ON_OFFSET (2) +#define EMBER_AF_THERMOSTAT_RUNNING_STATE_HEAT_SECOND_STAGE_STATE_ON (0x0008) +#define EMBER_AF_THERMOSTAT_RUNNING_STATE_HEAT_SECOND_STAGE_STATE_ON_OFFSET (3) +#define EMBER_AF_THERMOSTAT_RUNNING_STATE_COOL_SECOND_STAGE_STATE_ON (0x0010) +#define EMBER_AF_THERMOSTAT_RUNNING_STATE_COOL_SECOND_STAGE_STATE_ON_OFFSET (4) +#define EMBER_AF_THERMOSTAT_RUNNING_STATE_FAN_SECOND_STAGE_STATE_ON (0x0020) +#define EMBER_AF_THERMOSTAT_RUNNING_STATE_FAN_SECOND_STAGE_STATE_ON_OFFSET (5) +#define EMBER_AF_THERMOSTAT_RUNNING_STATE_FAN_THIRD_STAGE_STATE_ON (0x0040) +#define EMBER_AF_THERMOSTAT_RUNNING_STATE_FAN_THIRD_STAGE_STATE_ON_OFFSET (6) +#define EMBER_AF_THERMOSTAT_SENSING_LOCAL_TEMP_SENSED_REMOTELY (0x1) +#define EMBER_AF_THERMOSTAT_SENSING_LOCAL_TEMP_SENSED_REMOTELY_OFFSET (0) +#define EMBER_AF_THERMOSTAT_SENSING_OUTDOOR_TEMP_SENSED_REMOTELY (0x2) +#define EMBER_AF_THERMOSTAT_SENSING_OUTDOOR_TEMP_SENSED_REMOTELY_OFFSET (1) +#define EMBER_AF_THERMOSTAT_SENSING_OCCUPANCY_SENSED_REMOTELY (0x4) +#define EMBER_AF_THERMOSTAT_SENSING_OCCUPANCY_SENSED_REMOTELY_OFFSET (2) +#define EMBER_AF_TIME_STATUS_MASK_MASTER_CLOCK (0x1) +#define EMBER_AF_TIME_STATUS_MASK_MASTER_CLOCK_OFFSET (0) +#define EMBER_AF_TIME_STATUS_MASK_SYNCHRONIZED (0x2) +#define EMBER_AF_TIME_STATUS_MASK_SYNCHRONIZED_OFFSET (1) +#define EMBER_AF_TIME_STATUS_MASK_MASTER_ZONE_DST (0x4) +#define EMBER_AF_TIME_STATUS_MASK_MASTER_ZONE_DST_OFFSET (2) +#define EMBER_AF_TIME_STATUS_MASK_SUPERSEDING (0x8) +#define EMBER_AF_TIME_STATUS_MASK_SUPERSEDING_OFFSET (3) +#define EMBER_AF_WARNING_INFO_MODE (0xf0) +#define EMBER_AF_WARNING_INFO_MODE_OFFSET (4) +#define EMBER_AF_WARNING_INFO_STROBE (0x0c) +#define EMBER_AF_WARNING_INFO_STROBE_OFFSET (2) +#define EMBER_AF_WARNING_INFO_SIREN_LEVEL (0x03) +#define EMBER_AF_WARNING_INFO_SIREN_LEVEL_OFFSET (0) +#define EMBER_AF_ZIGBEE_INFORMATION_LOGICAL_TYPE (0x03) +#define EMBER_AF_ZIGBEE_INFORMATION_LOGICAL_TYPE_OFFSET (0) +#define EMBER_AF_ZIGBEE_INFORMATION_RX_ON_WHEN_IDLE (0x04) +#define EMBER_AF_ZIGBEE_INFORMATION_RX_ON_WHEN_IDLE_OFFSET (2) +#define EMBER_AF_ZLL_INFORMATION_FACTORY_NEW (0x01) +#define EMBER_AF_ZLL_INFORMATION_FACTORY_NEW_OFFSET (0) +#define EMBER_AF_ZLL_INFORMATION_ADDRESS_ASSIGNMENT (0x02) +#define EMBER_AF_ZLL_INFORMATION_ADDRESS_ASSIGNMENT_OFFSET (1) +#define EMBER_AF_ZLL_INFORMATION_TOUCH_LINK_INITIATOR (0x10) +#define EMBER_AF_ZLL_INFORMATION_TOUCH_LINK_INITIATOR_OFFSET (4) +#define EMBER_AF_ZLL_INFORMATION_TOUCH_LINK_PRIORITY_REQUEST (0x20) +#define EMBER_AF_ZLL_INFORMATION_TOUCH_LINK_PRIORITY_REQUEST_OFFSET (5) +#define EMBER_AF_ZLL_INFORMATION_PROFILE_INTEROP (0x80) +#define EMBER_AF_ZLL_INFORMATION_PROFILE_INTEROP_OFFSET (7) diff --git a/examples/temperature-measurement-app/esp32/main/gen/gen_config.h b/examples/temperature-measurement-app/esp32/main/gen/gen_config.h index 76c96fceb417a9..0466cf6b0e0045 100644 --- a/examples/temperature-measurement-app/esp32/main/gen/gen_config.h +++ b/examples/temperature-measurement-app/esp32/main/gen/gen_config.h @@ -1,4 +1,5 @@ -/** + +/* * * Copyright (c) 2020 Project CHIP Authors * @@ -14,181 +15,37 @@ * 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 SILABS_ZNET_CONFIG -#define SILABS_ZNET_CONFIG +// Prevent multiple inclusion +#pragma once -#include "debug-printing-test.h" +// User options for plugin Binding Table Library +#define EMBER_BINDING_TABLE_SIZE 10 -/**** Included Header Section ****/ +/**** Network Section ****/ +#define EMBER_SUPPORTED_NETWORKS (1) -// Networks -#define EM_AF_GENERATED_NETWORK_TYPES \ - { \ - EM_AF_NETWORK_TYPE_ZIGBEE_PRO, /* Primary */ \ - } -#define EM_AF_GENERATED_ZIGBEE_PRO_NETWORKS \ - { \ - { \ - /* Primary */ \ - ZA_ROUTER, \ - EMBER_AF_SECURITY_PROFILE_Z3, \ - }, \ - } -#define EM_AF_GENERATED_NETWORK_STRINGS "Primary (pro)", /**** ZCL Section ****/ -#define ZA_PROMPT "CHIPv1Clusters" -#define ZCL_USING_BASIC_CLUSTER_CLIENT -#define ZCL_USING_BASIC_CLUSTER_SERVER -#define ZCL_USING_TEMP_MEASUREMENT_CLUSTER_CLIENT -#define ZCL_USING_TEMP_MEASUREMENT_CLUSTER_SERVER -#define EMBER_AF_MANUFACTURER_CODE 0x1002 -#define EMBER_AF_DEFAULT_RESPONSE_POLICY_ALWAYS +#define EMBER_APS_UNICAST_MESSAGE_COUNT 10 /**** Cluster endpoint counts ****/ -#define EMBER_AF_BASIC_CLUSTER_CLIENT_ENDPOINT_COUNT (1) #define EMBER_AF_BASIC_CLUSTER_SERVER_ENDPOINT_COUNT (1) -#define EMBER_AF_TEMP_MEASUREMENT_CLUSTER_CLIENT_ENDPOINT_COUNT (1) #define EMBER_AF_TEMP_MEASUREMENT_CLUSTER_SERVER_ENDPOINT_COUNT (1) -/**** Cluster Endpoint Summaries ****/ -#define EMBER_AF_MAX_SERVER_CLUSTER_COUNT (2) -#define EMBER_AF_MAX_CLIENT_CLUSTER_COUNT (2) -#define EMBER_AF_MAX_TOTAL_CLUSTER_COUNT (4) - -/**** CLI Section ****/ -#define EMBER_AF_GENERATE_CLI - -/**** Security Section ****/ -#define EMBER_AF_HAS_SECURITY_PROFILE_Z3 +/**** Cluster Plugins ****/ -/**** Network Section ****/ -#define EMBER_SUPPORTED_NETWORKS (1) -#define EMBER_AF_ZC_AND_ZR_DEVICE_COUNT (1) -#define EMBER_AF_NETWORK_INDEX_PRIMARY (0) -#define EMBER_AF_DEFAULT_NETWORK_INDEX EMBER_AF_NETWORK_INDEX_PRIMARY -#define EMBER_AF_HAS_ROUTER_NETWORK -#define EMBER_AF_HAS_RX_ON_WHEN_IDLE_NETWORK -#define EMBER_AF_TX_POWER_MODE EMBER_TX_POWER_MODE_USE_TOKEN - -/**** Callback Section ****/ -#define EMBER_CALLBACK_STACK_STATUS -#define EMBER_CALLBACK_TEMPERATURE_READING_COMPLETE -#define EMBER_CALLBACK_BASIC_CLUSTER_RESET_TO_FACTORY_DEFAULTS -/**** Debug printing section ****/ - -// Global switch -#define EMBER_AF_PRINT_ENABLE -// Individual areas - -// Generated plugin macros - -// Use this macro to check if Antenna Stub plugin is included -#define EMBER_AF_PLUGIN_ANTENNA_STUB - -// Use this macro to check if Basic Server Cluster plugin is included +// 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 Binding Table Library plugin is included -#define EMBER_AF_PLUGIN_BINDING_TABLE_LIBRARY -// User options for plugin Binding Table Library -#define EMBER_BINDING_TABLE_SIZE 10 - -// Use this macro to check if CCM* Encryption plugin is included -#define EMBER_AF_PLUGIN_CCM_ENCRYPTION -// User options for plugin CCM* Encryption -#define EMBER_AF_PLUGIN_CCM_ENCRYPTION_SOFTWARE_CCM -#define USE_SOFTWARE_CCM - -// Use this macro to check if Radio Coexistence Stub plugin is included -#define EMBER_AF_PLUGIN_COEXISTENCE_STUB - -// Use this macro to check if Ember Minimal Printf plugin is included -#define EMBER_AF_PLUGIN_EMBER_MINIMAL_PRINTF - -// Use this macro to check if HAL Library plugin is included -#define EMBER_AF_PLUGIN_HAL_LIBRARY - -// Use this macro to check if mbed TLS plugin is included -#define EMBER_AF_PLUGIN_MBEDTLS -// User options for plugin mbed TLS -#define EMBER_AF_PLUGIN_MBEDTLS_CONF_DEVICE_ACCELERATION -#define EMBER_AF_PLUGIN_MBEDTLS_CONF_DEVICE_ACCELERATION_APP - -// Use this macro to check if Strong Random plugin is included -#define EMBER_AF_PLUGIN_STRONG_RANDOM -// User options for plugin Strong Random -#define EMBER_AF_PLUGIN_STRONG_RANDOM_RADIO_PRNG -#define USE_RADIO_API_FOR_TRNG - -// Use this macro to check if Temperature Measurement Server Cluster plugin is included +// Use this macro to check if the server side of the Temperature Measurement cluster is included +#define ZCL_USING_TEMP_MEASUREMENT_CLUSTER_SERVER #define EMBER_AF_PLUGIN_TEMPERATURE_MEASUREMENT_SERVER -// User options for plugin Temperature Measurement Server Cluster -#define EMBER_AF_PLUGIN_TEMPERATURE_MEASUREMENT_SERVER_MAX_MEASUREMENT_FREQUENCY_S 300 -#define EMBER_AF_PLUGIN_TEMPERATURE_MEASUREMENT_SERVER_DEFAULT_REPORTABLE_TEMPERATURE_CHANGE_M_C 500 -#define EMBER_AF_PLUGIN_TEMPERATURE_MEASUREMENT_SERVER_OVER_TEMPERATURE -#define EMBER_AF_PLUGIN_TEMPERATURE_MEASUREMENT_SERVER_OVER_TEMPERATURE_ASSERT_WARNING_THRESHOLD 55 -#define EMBER_AF_PLUGIN_TEMPERATURE_MEASUREMENT_SERVER_OVER_TEMPERATURE_DEASSERT_WARNING_THRESHOLD 50 -#define EMBER_AF_PLUGIN_TEMPERATURE_MEASUREMENT_SERVER_OVER_TEMPERATURE_ASSERT_CRITICAL_THRESHOLD 60 -#define EMBER_AF_PLUGIN_TEMPERATURE_MEASUREMENT_SERVER_OVER_TEMPERATURE_DEASSERT_CRITICAL_THRESHOLD 55 - -// Use this macro to check if Temperature Si7053 Stub plugin is included -#define EMBER_AF_PLUGIN_TEMPERATURE_SI7053_STUB - -// Use this macro to check if ZCL Framework Core plugin is included -#define EMBER_AF_PLUGIN_ZCL_FRAMEWORK_CORE -// User options for plugin ZCL Framework Core -#define EMBER_AF_PLUGIN_ZCL_FRAMEWORK_CORE_CLI_ENABLED -#define ZA_CLI_FULL - -// Use this macro to check if ZigBee PRO Stack Library plugin is included -#define EMBER_AF_PLUGIN_ZIGBEE_PRO_LIBRARY -// User options for plugin ZigBee PRO Stack Library -#define EMBER_MAX_END_DEVICE_CHILDREN 6 -#define EMBER_PACKET_BUFFER_COUNT 75 -#define EMBER_END_DEVICE_KEEP_ALIVE_SUPPORT_MODE EMBER_KEEP_ALIVE_SUPPORT_ALL -#define EMBER_END_DEVICE_POLL_TIMEOUT MINUTES_256 -#define EMBER_END_DEVICE_POLL_TIMEOUT_SHIFT 6 -#define EMBER_LINK_POWER_DELTA_INTERVAL 300 -#define EMBER_APS_UNICAST_MESSAGE_COUNT 10 -#define EMBER_BROADCAST_TABLE_SIZE 15 -#define EMBER_NEIGHBOR_TABLE_SIZE 16 - -// Generated API headers - -// API antenna from Antenna Stub plugin -#define EMBER_AF_API_ANTENNA \ - "../../../../../Applications/Simplicity " \ - "Studio.app/Contents/Eclipse/developer/sdks/gecko_sdk_suite/v3.0/platform/base/hal/plugin/antenna/antenna.h" - -// API coexistence from Radio Coexistence Stub plugin -#define EMBER_AF_API_COEXISTENCE \ - "../../../../../Applications/Simplicity " \ - "Studio.app/Contents/Eclipse/developer/sdks/gecko_sdk_suite/v3.0/platform/radio/rail_lib/plugin/coexistence/protocol/" \ - "ieee802154/coexistence-802154.h" - -// API temperature from Temperature Si7053 Stub plugin -#define EMBER_AF_API_TEMPERATURE \ - "../../../../../Applications/Simplicity " \ - "Studio.app/Contents/Eclipse/developer/sdks/gecko_sdk_suite/v3.0/platform/base/hal/plugin/temperature/temperature.h" - -// API command-interpreter2 from ZCL Framework Core plugin -#define EMBER_AF_API_COMMAND_INTERPRETER2 \ - "../../../../../Applications/Simplicity " \ - "Studio.app/Contents/Eclipse/developer/sdks/gecko_sdk_suite/v3.0/protocol/zigbee/app/util/serial/command-interpreter2.h" - -// Custom macros -#ifdef TRANSITION_TIME_DS -#undef TRANSITION_TIME_DS -#endif -#define TRANSITION_TIME_DS 20 - -#ifdef FINDING_AND_BINDING_DELAY_MS -#undef FINDING_AND_BINDING_DELAY_MS -#endif -#define FINDING_AND_BINDING_DELAY_MS 3000 - -#endif // SILABS_ZNET_CONFIG +#define EMBER_AF_PLUGIN_TEMPERATURE_MEASUREMENT + +// TODO Issue #3871 Reporting should only be enabled if there are reportable attributes +// Use this macro to check if Reporting plugin is included +#define EMBER_AF_PLUGIN_REPORTING +// User options for plugin Reporting +#define EMBER_AF_PLUGIN_REPORTING_TABLE_SIZE 5 +#define EMBER_AF_PLUGIN_REPORTING_ENABLE_GROUP_BOUND_REPORTS diff --git a/examples/temperature-measurement-app/esp32/main/gen/print-cluster.h b/examples/temperature-measurement-app/esp32/main/gen/print-cluster.h index 1555aa02ed2645..a37d7fb0495995 100644 --- a/examples/temperature-measurement-app/esp32/main/gen/print-cluster.h +++ b/examples/temperature-measurement-app/esp32/main/gen/print-cluster.h @@ -1,4 +1,5 @@ -/** + +/* * * Copyright (c) 2020 Project CHIP Authors * @@ -14,748 +15,846 @@ * 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 SILABS_PRINT_CLUSTER -#define SILABS_PRINT_CLUSTER +// Prevent multiple inclusion +#pragma once // This is the mapping of IDs to cluster names assuming a format according // to the "EmberAfClusterName" defined in the ZCL header. // The names of clusters that are not present, are removed. #if defined(ZCL_USING_BASIC_CLUSTER_SERVER) || defined(ZCL_USING_BASIC_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_BASIC_CLUSTER { ZCL_BASIC_CLUSTER_ID, 0x0000, "Basic" }, +#define CHIP_PRINTCLUSTER_BASIC_CLUSTER { ZCL_BASIC_CLUSTER_ID, 0, "Basic" }, #else -#define SILABS_PRINTCLUSTER_BASIC_CLUSTER +#define CHIP_PRINTCLUSTER_BASIC_CLUSTER #endif + #if defined(ZCL_USING_POWER_CONFIG_CLUSTER_SERVER) || defined(ZCL_USING_POWER_CONFIG_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_POWER_CONFIG_CLUSTER { ZCL_POWER_CONFIG_CLUSTER_ID, 0x0000, "Power Configuration" }, +#define CHIP_PRINTCLUSTER_POWER_CONFIG_CLUSTER { ZCL_POWER_CONFIG_CLUSTER_ID, 1, "Power Configuration" }, #else -#define SILABS_PRINTCLUSTER_POWER_CONFIG_CLUSTER +#define CHIP_PRINTCLUSTER_POWER_CONFIG_CLUSTER #endif + #if defined(ZCL_USING_DEVICE_TEMP_CLUSTER_SERVER) || defined(ZCL_USING_DEVICE_TEMP_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_DEVICE_TEMP_CLUSTER { ZCL_DEVICE_TEMP_CLUSTER_ID, 0x0000, "Device Temperature Configuration" }, +#define CHIP_PRINTCLUSTER_DEVICE_TEMP_CLUSTER { ZCL_DEVICE_TEMP_CLUSTER_ID, 2, "Device Temperature Configuration" }, #else -#define SILABS_PRINTCLUSTER_DEVICE_TEMP_CLUSTER +#define CHIP_PRINTCLUSTER_DEVICE_TEMP_CLUSTER #endif + #if defined(ZCL_USING_IDENTIFY_CLUSTER_SERVER) || defined(ZCL_USING_IDENTIFY_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_IDENTIFY_CLUSTER { ZCL_IDENTIFY_CLUSTER_ID, 0x0000, "Identify" }, +#define CHIP_PRINTCLUSTER_IDENTIFY_CLUSTER { ZCL_IDENTIFY_CLUSTER_ID, 3, "Identify" }, #else -#define SILABS_PRINTCLUSTER_IDENTIFY_CLUSTER +#define CHIP_PRINTCLUSTER_IDENTIFY_CLUSTER #endif + #if defined(ZCL_USING_GROUPS_CLUSTER_SERVER) || defined(ZCL_USING_GROUPS_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_GROUPS_CLUSTER { ZCL_GROUPS_CLUSTER_ID, 0x0000, "Groups" }, +#define CHIP_PRINTCLUSTER_GROUPS_CLUSTER { ZCL_GROUPS_CLUSTER_ID, 4, "Groups" }, #else -#define SILABS_PRINTCLUSTER_GROUPS_CLUSTER +#define CHIP_PRINTCLUSTER_GROUPS_CLUSTER #endif + #if defined(ZCL_USING_SCENES_CLUSTER_SERVER) || defined(ZCL_USING_SCENES_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_SCENES_CLUSTER { ZCL_SCENES_CLUSTER_ID, 0x0000, "Scenes" }, +#define CHIP_PRINTCLUSTER_SCENES_CLUSTER { ZCL_SCENES_CLUSTER_ID, 5, "Scenes" }, #else -#define SILABS_PRINTCLUSTER_SCENES_CLUSTER +#define CHIP_PRINTCLUSTER_SCENES_CLUSTER #endif + #if defined(ZCL_USING_ON_OFF_CLUSTER_SERVER) || defined(ZCL_USING_ON_OFF_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_ON_OFF_CLUSTER { ZCL_ON_OFF_CLUSTER_ID, 0x0000, "On/off" }, +#define CHIP_PRINTCLUSTER_ON_OFF_CLUSTER { ZCL_ON_OFF_CLUSTER_ID, 6, "On/off" }, #else -#define SILABS_PRINTCLUSTER_ON_OFF_CLUSTER +#define CHIP_PRINTCLUSTER_ON_OFF_CLUSTER #endif + #if defined(ZCL_USING_ON_OFF_SWITCH_CONFIG_CLUSTER_SERVER) || defined(ZCL_USING_ON_OFF_SWITCH_CONFIG_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_ON_OFF_SWITCH_CONFIG_CLUSTER \ - { ZCL_ON_OFF_SWITCH_CONFIG_CLUSTER_ID, 0x0000, "On/off Switch Configuration" }, +#define CHIP_PRINTCLUSTER_ON_OFF_SWITCH_CONFIG_CLUSTER { ZCL_ON_OFF_SWITCH_CONFIG_CLUSTER_ID, 7, "On/off Switch Configuration" }, #else -#define SILABS_PRINTCLUSTER_ON_OFF_SWITCH_CONFIG_CLUSTER +#define CHIP_PRINTCLUSTER_ON_OFF_SWITCH_CONFIG_CLUSTER #endif + #if defined(ZCL_USING_LEVEL_CONTROL_CLUSTER_SERVER) || defined(ZCL_USING_LEVEL_CONTROL_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_LEVEL_CONTROL_CLUSTER { ZCL_LEVEL_CONTROL_CLUSTER_ID, 0x0000, "Level Control" }, +#define CHIP_PRINTCLUSTER_LEVEL_CONTROL_CLUSTER { ZCL_LEVEL_CONTROL_CLUSTER_ID, 8, "Level Control" }, #else -#define SILABS_PRINTCLUSTER_LEVEL_CONTROL_CLUSTER +#define CHIP_PRINTCLUSTER_LEVEL_CONTROL_CLUSTER #endif + #if defined(ZCL_USING_ALARM_CLUSTER_SERVER) || defined(ZCL_USING_ALARM_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_ALARM_CLUSTER { ZCL_ALARM_CLUSTER_ID, 0x0000, "Alarms" }, +#define CHIP_PRINTCLUSTER_ALARM_CLUSTER { ZCL_ALARM_CLUSTER_ID, 9, "Alarms" }, #else -#define SILABS_PRINTCLUSTER_ALARM_CLUSTER +#define CHIP_PRINTCLUSTER_ALARM_CLUSTER #endif + #if defined(ZCL_USING_TIME_CLUSTER_SERVER) || defined(ZCL_USING_TIME_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_TIME_CLUSTER { ZCL_TIME_CLUSTER_ID, 0x0000, "Time" }, +#define CHIP_PRINTCLUSTER_TIME_CLUSTER { ZCL_TIME_CLUSTER_ID, 10, "Time" }, #else -#define SILABS_PRINTCLUSTER_TIME_CLUSTER +#define CHIP_PRINTCLUSTER_TIME_CLUSTER #endif + #if defined(ZCL_USING_RSSI_LOCATION_CLUSTER_SERVER) || defined(ZCL_USING_RSSI_LOCATION_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_RSSI_LOCATION_CLUSTER { ZCL_RSSI_LOCATION_CLUSTER_ID, 0x0000, "RSSI Location" }, +#define CHIP_PRINTCLUSTER_RSSI_LOCATION_CLUSTER { ZCL_RSSI_LOCATION_CLUSTER_ID, 11, "RSSI Location" }, #else -#define SILABS_PRINTCLUSTER_RSSI_LOCATION_CLUSTER +#define CHIP_PRINTCLUSTER_RSSI_LOCATION_CLUSTER #endif + #if defined(ZCL_USING_BINARY_INPUT_BASIC_CLUSTER_SERVER) || defined(ZCL_USING_BINARY_INPUT_BASIC_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_BINARY_INPUT_BASIC_CLUSTER { ZCL_BINARY_INPUT_BASIC_CLUSTER_ID, 0x0000, "Binary Input (Basic)" }, +#define CHIP_PRINTCLUSTER_BINARY_INPUT_BASIC_CLUSTER { ZCL_BINARY_INPUT_BASIC_CLUSTER_ID, 15, "Binary Input (Basic)" }, #else -#define SILABS_PRINTCLUSTER_BINARY_INPUT_BASIC_CLUSTER +#define CHIP_PRINTCLUSTER_BINARY_INPUT_BASIC_CLUSTER #endif + #if defined(ZCL_USING_COMMISSIONING_CLUSTER_SERVER) || defined(ZCL_USING_COMMISSIONING_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_COMMISSIONING_CLUSTER { ZCL_COMMISSIONING_CLUSTER_ID, 0x0000, "Commissioning" }, +#define CHIP_PRINTCLUSTER_COMMISSIONING_CLUSTER { ZCL_COMMISSIONING_CLUSTER_ID, 21, "Commissioning" }, #else -#define SILABS_PRINTCLUSTER_COMMISSIONING_CLUSTER +#define CHIP_PRINTCLUSTER_COMMISSIONING_CLUSTER #endif + #if defined(ZCL_USING_PARTITION_CLUSTER_SERVER) || defined(ZCL_USING_PARTITION_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_PARTITION_CLUSTER { ZCL_PARTITION_CLUSTER_ID, 0x0000, "Partition" }, +#define CHIP_PRINTCLUSTER_PARTITION_CLUSTER { ZCL_PARTITION_CLUSTER_ID, 22, "Partition" }, #else -#define SILABS_PRINTCLUSTER_PARTITION_CLUSTER +#define CHIP_PRINTCLUSTER_PARTITION_CLUSTER #endif + #if defined(ZCL_USING_OTA_BOOTLOAD_CLUSTER_SERVER) || defined(ZCL_USING_OTA_BOOTLOAD_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_OTA_BOOTLOAD_CLUSTER { ZCL_OTA_BOOTLOAD_CLUSTER_ID, 0x0000, "Over the Air Bootloading" }, +#define CHIP_PRINTCLUSTER_OTA_BOOTLOAD_CLUSTER { ZCL_OTA_BOOTLOAD_CLUSTER_ID, 25, "Over the Air Bootloading" }, #else -#define SILABS_PRINTCLUSTER_OTA_BOOTLOAD_CLUSTER +#define CHIP_PRINTCLUSTER_OTA_BOOTLOAD_CLUSTER #endif + #if defined(ZCL_USING_POWER_PROFILE_CLUSTER_SERVER) || defined(ZCL_USING_POWER_PROFILE_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_POWER_PROFILE_CLUSTER { ZCL_POWER_PROFILE_CLUSTER_ID, 0x0000, "Power Profile" }, +#define CHIP_PRINTCLUSTER_POWER_PROFILE_CLUSTER { ZCL_POWER_PROFILE_CLUSTER_ID, 26, "Power Profile" }, #else -#define SILABS_PRINTCLUSTER_POWER_PROFILE_CLUSTER +#define CHIP_PRINTCLUSTER_POWER_PROFILE_CLUSTER #endif + #if defined(ZCL_USING_APPLIANCE_CONTROL_CLUSTER_SERVER) || defined(ZCL_USING_APPLIANCE_CONTROL_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_APPLIANCE_CONTROL_CLUSTER { ZCL_APPLIANCE_CONTROL_CLUSTER_ID, 0x0000, "Appliance Control" }, +#define CHIP_PRINTCLUSTER_APPLIANCE_CONTROL_CLUSTER { ZCL_APPLIANCE_CONTROL_CLUSTER_ID, 27, "Appliance Control" }, #else -#define SILABS_PRINTCLUSTER_APPLIANCE_CONTROL_CLUSTER +#define CHIP_PRINTCLUSTER_APPLIANCE_CONTROL_CLUSTER #endif + #if defined(ZCL_USING_POLL_CONTROL_CLUSTER_SERVER) || defined(ZCL_USING_POLL_CONTROL_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_POLL_CONTROL_CLUSTER { ZCL_POLL_CONTROL_CLUSTER_ID, 0x0000, "Poll Control" }, +#define CHIP_PRINTCLUSTER_POLL_CONTROL_CLUSTER { ZCL_POLL_CONTROL_CLUSTER_ID, 32, "Poll Control" }, #else -#define SILABS_PRINTCLUSTER_POLL_CONTROL_CLUSTER +#define CHIP_PRINTCLUSTER_POLL_CONTROL_CLUSTER #endif + #if defined(ZCL_USING_GREEN_POWER_CLUSTER_SERVER) || defined(ZCL_USING_GREEN_POWER_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_GREEN_POWER_CLUSTER { ZCL_GREEN_POWER_CLUSTER_ID, 0x0000, "Green Power" }, +#define CHIP_PRINTCLUSTER_GREEN_POWER_CLUSTER { ZCL_GREEN_POWER_CLUSTER_ID, 33, "Green Power" }, #else -#define SILABS_PRINTCLUSTER_GREEN_POWER_CLUSTER +#define CHIP_PRINTCLUSTER_GREEN_POWER_CLUSTER #endif + #if defined(ZCL_USING_KEEPALIVE_CLUSTER_SERVER) || defined(ZCL_USING_KEEPALIVE_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_KEEPALIVE_CLUSTER { ZCL_KEEPALIVE_CLUSTER_ID, 0x0000, "Keep-Alive" }, +#define CHIP_PRINTCLUSTER_KEEPALIVE_CLUSTER { ZCL_KEEPALIVE_CLUSTER_ID, 37, "Keep-Alive" }, #else -#define SILABS_PRINTCLUSTER_KEEPALIVE_CLUSTER +#define CHIP_PRINTCLUSTER_KEEPALIVE_CLUSTER #endif + #if defined(ZCL_USING_SHADE_CONFIG_CLUSTER_SERVER) || defined(ZCL_USING_SHADE_CONFIG_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_SHADE_CONFIG_CLUSTER { ZCL_SHADE_CONFIG_CLUSTER_ID, 0x0000, "Shade Configuration" }, +#define CHIP_PRINTCLUSTER_SHADE_CONFIG_CLUSTER { ZCL_SHADE_CONFIG_CLUSTER_ID, 256, "Shade Configuration" }, #else -#define SILABS_PRINTCLUSTER_SHADE_CONFIG_CLUSTER +#define CHIP_PRINTCLUSTER_SHADE_CONFIG_CLUSTER #endif + #if defined(ZCL_USING_DOOR_LOCK_CLUSTER_SERVER) || defined(ZCL_USING_DOOR_LOCK_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_DOOR_LOCK_CLUSTER { ZCL_DOOR_LOCK_CLUSTER_ID, 0x0000, "Door Lock" }, +#define CHIP_PRINTCLUSTER_DOOR_LOCK_CLUSTER { ZCL_DOOR_LOCK_CLUSTER_ID, 257, "Door Lock" }, #else -#define SILABS_PRINTCLUSTER_DOOR_LOCK_CLUSTER +#define CHIP_PRINTCLUSTER_DOOR_LOCK_CLUSTER #endif + #if defined(ZCL_USING_WINDOW_COVERING_CLUSTER_SERVER) || defined(ZCL_USING_WINDOW_COVERING_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_WINDOW_COVERING_CLUSTER { ZCL_WINDOW_COVERING_CLUSTER_ID, 0x0000, "Window Covering" }, +#define CHIP_PRINTCLUSTER_WINDOW_COVERING_CLUSTER { ZCL_WINDOW_COVERING_CLUSTER_ID, 258, "Window Covering" }, #else -#define SILABS_PRINTCLUSTER_WINDOW_COVERING_CLUSTER +#define CHIP_PRINTCLUSTER_WINDOW_COVERING_CLUSTER #endif + #if defined(ZCL_USING_BARRIER_CONTROL_CLUSTER_SERVER) || defined(ZCL_USING_BARRIER_CONTROL_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_BARRIER_CONTROL_CLUSTER { ZCL_BARRIER_CONTROL_CLUSTER_ID, 0x0000, "Barrier Control" }, +#define CHIP_PRINTCLUSTER_BARRIER_CONTROL_CLUSTER { ZCL_BARRIER_CONTROL_CLUSTER_ID, 259, "Barrier Control" }, #else -#define SILABS_PRINTCLUSTER_BARRIER_CONTROL_CLUSTER +#define CHIP_PRINTCLUSTER_BARRIER_CONTROL_CLUSTER #endif + #if defined(ZCL_USING_PUMP_CONFIG_CONTROL_CLUSTER_SERVER) || defined(ZCL_USING_PUMP_CONFIG_CONTROL_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_PUMP_CONFIG_CONTROL_CLUSTER \ - { ZCL_PUMP_CONFIG_CONTROL_CLUSTER_ID, 0x0000, "Pump Configuration and Control" }, +#define CHIP_PRINTCLUSTER_PUMP_CONFIG_CONTROL_CLUSTER { ZCL_PUMP_CONFIG_CONTROL_CLUSTER_ID, 512, "Pump Configuration and Control" }, #else -#define SILABS_PRINTCLUSTER_PUMP_CONFIG_CONTROL_CLUSTER +#define CHIP_PRINTCLUSTER_PUMP_CONFIG_CONTROL_CLUSTER #endif + #if defined(ZCL_USING_THERMOSTAT_CLUSTER_SERVER) || defined(ZCL_USING_THERMOSTAT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_THERMOSTAT_CLUSTER { ZCL_THERMOSTAT_CLUSTER_ID, 0x0000, "Thermostat" }, +#define CHIP_PRINTCLUSTER_THERMOSTAT_CLUSTER { ZCL_THERMOSTAT_CLUSTER_ID, 513, "Thermostat" }, #else -#define SILABS_PRINTCLUSTER_THERMOSTAT_CLUSTER +#define CHIP_PRINTCLUSTER_THERMOSTAT_CLUSTER #endif + #if defined(ZCL_USING_FAN_CONTROL_CLUSTER_SERVER) || defined(ZCL_USING_FAN_CONTROL_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_FAN_CONTROL_CLUSTER { ZCL_FAN_CONTROL_CLUSTER_ID, 0x0000, "Fan Control" }, +#define CHIP_PRINTCLUSTER_FAN_CONTROL_CLUSTER { ZCL_FAN_CONTROL_CLUSTER_ID, 514, "Fan Control" }, #else -#define SILABS_PRINTCLUSTER_FAN_CONTROL_CLUSTER +#define CHIP_PRINTCLUSTER_FAN_CONTROL_CLUSTER #endif + #if defined(ZCL_USING_DEHUMID_CONTROL_CLUSTER_SERVER) || defined(ZCL_USING_DEHUMID_CONTROL_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_DEHUMID_CONTROL_CLUSTER { ZCL_DEHUMID_CONTROL_CLUSTER_ID, 0x0000, "Dehumidification Control" }, +#define CHIP_PRINTCLUSTER_DEHUMID_CONTROL_CLUSTER { ZCL_DEHUMID_CONTROL_CLUSTER_ID, 515, "Dehumidification Control" }, #else -#define SILABS_PRINTCLUSTER_DEHUMID_CONTROL_CLUSTER +#define CHIP_PRINTCLUSTER_DEHUMID_CONTROL_CLUSTER #endif + #if defined(ZCL_USING_THERMOSTAT_UI_CONFIG_CLUSTER_SERVER) || defined(ZCL_USING_THERMOSTAT_UI_CONFIG_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_THERMOSTAT_UI_CONFIG_CLUSTER \ - { ZCL_THERMOSTAT_UI_CONFIG_CLUSTER_ID, 0x0000, "Thermostat User Interface Configuration" }, +#define CHIP_PRINTCLUSTER_THERMOSTAT_UI_CONFIG_CLUSTER \ + { ZCL_THERMOSTAT_UI_CONFIG_CLUSTER_ID, 516, "Thermostat User Interface Configuration" }, #else -#define SILABS_PRINTCLUSTER_THERMOSTAT_UI_CONFIG_CLUSTER +#define CHIP_PRINTCLUSTER_THERMOSTAT_UI_CONFIG_CLUSTER #endif + #if defined(ZCL_USING_COLOR_CONTROL_CLUSTER_SERVER) || defined(ZCL_USING_COLOR_CONTROL_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_COLOR_CONTROL_CLUSTER { ZCL_COLOR_CONTROL_CLUSTER_ID, 0x0000, "Color Control" }, +#define CHIP_PRINTCLUSTER_COLOR_CONTROL_CLUSTER { ZCL_COLOR_CONTROL_CLUSTER_ID, 768, "Color Control" }, #else -#define SILABS_PRINTCLUSTER_COLOR_CONTROL_CLUSTER +#define CHIP_PRINTCLUSTER_COLOR_CONTROL_CLUSTER #endif + #if defined(ZCL_USING_BALLAST_CONFIGURATION_CLUSTER_SERVER) || defined(ZCL_USING_BALLAST_CONFIGURATION_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_BALLAST_CONFIGURATION_CLUSTER { ZCL_BALLAST_CONFIGURATION_CLUSTER_ID, 0x0000, "Ballast Configuration" }, +#define CHIP_PRINTCLUSTER_BALLAST_CONFIGURATION_CLUSTER { ZCL_BALLAST_CONFIGURATION_CLUSTER_ID, 769, "Ballast Configuration" }, #else -#define SILABS_PRINTCLUSTER_BALLAST_CONFIGURATION_CLUSTER +#define CHIP_PRINTCLUSTER_BALLAST_CONFIGURATION_CLUSTER #endif + #if defined(ZCL_USING_ILLUM_MEASUREMENT_CLUSTER_SERVER) || defined(ZCL_USING_ILLUM_MEASUREMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_ILLUM_MEASUREMENT_CLUSTER { ZCL_ILLUM_MEASUREMENT_CLUSTER_ID, 0x0000, "Illuminance Measurement" }, +#define CHIP_PRINTCLUSTER_ILLUM_MEASUREMENT_CLUSTER { ZCL_ILLUM_MEASUREMENT_CLUSTER_ID, 1024, "Illuminance Measurement" }, #else -#define SILABS_PRINTCLUSTER_ILLUM_MEASUREMENT_CLUSTER +#define CHIP_PRINTCLUSTER_ILLUM_MEASUREMENT_CLUSTER #endif + #if defined(ZCL_USING_ILLUM_LEVEL_SENSING_CLUSTER_SERVER) || defined(ZCL_USING_ILLUM_LEVEL_SENSING_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_ILLUM_LEVEL_SENSING_CLUSTER { ZCL_ILLUM_LEVEL_SENSING_CLUSTER_ID, 0x0000, "Illuminance Level Sensing" }, +#define CHIP_PRINTCLUSTER_ILLUM_LEVEL_SENSING_CLUSTER { ZCL_ILLUM_LEVEL_SENSING_CLUSTER_ID, 1025, "Illuminance Level Sensing" }, #else -#define SILABS_PRINTCLUSTER_ILLUM_LEVEL_SENSING_CLUSTER +#define CHIP_PRINTCLUSTER_ILLUM_LEVEL_SENSING_CLUSTER #endif + #if defined(ZCL_USING_TEMP_MEASUREMENT_CLUSTER_SERVER) || defined(ZCL_USING_TEMP_MEASUREMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_TEMP_MEASUREMENT_CLUSTER { ZCL_TEMP_MEASUREMENT_CLUSTER_ID, 0x0000, "Temperature Measurement" }, +#define CHIP_PRINTCLUSTER_TEMP_MEASUREMENT_CLUSTER { ZCL_TEMP_MEASUREMENT_CLUSTER_ID, 1026, "Temperature Measurement" }, #else -#define SILABS_PRINTCLUSTER_TEMP_MEASUREMENT_CLUSTER +#define CHIP_PRINTCLUSTER_TEMP_MEASUREMENT_CLUSTER #endif + #if defined(ZCL_USING_PRESSURE_MEASUREMENT_CLUSTER_SERVER) || defined(ZCL_USING_PRESSURE_MEASUREMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_PRESSURE_MEASUREMENT_CLUSTER { ZCL_PRESSURE_MEASUREMENT_CLUSTER_ID, 0x0000, "Pressure Measurement" }, +#define CHIP_PRINTCLUSTER_PRESSURE_MEASUREMENT_CLUSTER { ZCL_PRESSURE_MEASUREMENT_CLUSTER_ID, 1027, "Pressure Measurement" }, #else -#define SILABS_PRINTCLUSTER_PRESSURE_MEASUREMENT_CLUSTER +#define CHIP_PRINTCLUSTER_PRESSURE_MEASUREMENT_CLUSTER #endif + #if defined(ZCL_USING_FLOW_MEASUREMENT_CLUSTER_SERVER) || defined(ZCL_USING_FLOW_MEASUREMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_FLOW_MEASUREMENT_CLUSTER { ZCL_FLOW_MEASUREMENT_CLUSTER_ID, 0x0000, "Flow Measurement" }, +#define CHIP_PRINTCLUSTER_FLOW_MEASUREMENT_CLUSTER { ZCL_FLOW_MEASUREMENT_CLUSTER_ID, 1028, "Flow Measurement" }, #else -#define SILABS_PRINTCLUSTER_FLOW_MEASUREMENT_CLUSTER +#define CHIP_PRINTCLUSTER_FLOW_MEASUREMENT_CLUSTER #endif + #if defined(ZCL_USING_RELATIVE_HUMIDITY_MEASUREMENT_CLUSTER_SERVER) || \ defined(ZCL_USING_RELATIVE_HUMIDITY_MEASUREMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_RELATIVE_HUMIDITY_MEASUREMENT_CLUSTER \ - { ZCL_RELATIVE_HUMIDITY_MEASUREMENT_CLUSTER_ID, 0x0000, "Relative Humidity Measurement" }, +#define CHIP_PRINTCLUSTER_RELATIVE_HUMIDITY_MEASUREMENT_CLUSTER \ + { ZCL_RELATIVE_HUMIDITY_MEASUREMENT_CLUSTER_ID, 1029, "Relative Humidity Measurement" }, #else -#define SILABS_PRINTCLUSTER_RELATIVE_HUMIDITY_MEASUREMENT_CLUSTER +#define CHIP_PRINTCLUSTER_RELATIVE_HUMIDITY_MEASUREMENT_CLUSTER #endif + #if defined(ZCL_USING_OCCUPANCY_SENSING_CLUSTER_SERVER) || defined(ZCL_USING_OCCUPANCY_SENSING_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_OCCUPANCY_SENSING_CLUSTER { ZCL_OCCUPANCY_SENSING_CLUSTER_ID, 0x0000, "Occupancy Sensing" }, +#define CHIP_PRINTCLUSTER_OCCUPANCY_SENSING_CLUSTER { ZCL_OCCUPANCY_SENSING_CLUSTER_ID, 1030, "Occupancy Sensing" }, #else -#define SILABS_PRINTCLUSTER_OCCUPANCY_SENSING_CLUSTER +#define CHIP_PRINTCLUSTER_OCCUPANCY_SENSING_CLUSTER #endif + #if defined(ZCL_USING_CARBON_MONOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_SERVER) || \ defined(ZCL_USING_CARBON_MONOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_CARBON_MONOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER \ - { ZCL_CARBON_MONOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 0x0000, "Carbon Monoxide Concentration Measurement" }, +#define CHIP_PRINTCLUSTER_CARBON_MONOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER \ + { ZCL_CARBON_MONOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 1036, "Carbon Monoxide Concentration Measurement" }, #else -#define SILABS_PRINTCLUSTER_CARBON_MONOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER +#define CHIP_PRINTCLUSTER_CARBON_MONOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER #endif + #if defined(ZCL_USING_CARBON_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_SERVER) || \ defined(ZCL_USING_CARBON_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_CARBON_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER \ - { ZCL_CARBON_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 0x0000, "Carbon Dioxide Concentration Measurement" }, +#define CHIP_PRINTCLUSTER_CARBON_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER \ + { ZCL_CARBON_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 1037, "Carbon Dioxide Concentration Measurement" }, #else -#define SILABS_PRINTCLUSTER_CARBON_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER +#define CHIP_PRINTCLUSTER_CARBON_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER #endif + #if defined(ZCL_USING_ETHYLENE_CONCENTRATION_MEASUREMENT_CLUSTER_SERVER) || \ defined(ZCL_USING_ETHYLENE_CONCENTRATION_MEASUREMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_ETHYLENE_CONCENTRATION_MEASUREMENT_CLUSTER \ - { ZCL_ETHYLENE_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 0x0000, "Ethylene Concentration Measurement" }, +#define CHIP_PRINTCLUSTER_ETHYLENE_CONCENTRATION_MEASUREMENT_CLUSTER \ + { ZCL_ETHYLENE_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 1038, "Ethylene Concentration Measurement" }, #else -#define SILABS_PRINTCLUSTER_ETHYLENE_CONCENTRATION_MEASUREMENT_CLUSTER +#define CHIP_PRINTCLUSTER_ETHYLENE_CONCENTRATION_MEASUREMENT_CLUSTER #endif + #if defined(ZCL_USING_ETHYLENE_OXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_SERVER) || \ defined(ZCL_USING_ETHYLENE_OXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_ETHYLENE_OXIDE_CONCENTRATION_MEASUREMENT_CLUSTER \ - { ZCL_ETHYLENE_OXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 0x0000, "Ethylene Oxide Concentration Measurement" }, +#define CHIP_PRINTCLUSTER_ETHYLENE_OXIDE_CONCENTRATION_MEASUREMENT_CLUSTER \ + { ZCL_ETHYLENE_OXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 1039, "Ethylene Oxide Concentration Measurement" }, #else -#define SILABS_PRINTCLUSTER_ETHYLENE_OXIDE_CONCENTRATION_MEASUREMENT_CLUSTER +#define CHIP_PRINTCLUSTER_ETHYLENE_OXIDE_CONCENTRATION_MEASUREMENT_CLUSTER #endif + #if defined(ZCL_USING_HYDROGEN_CONCENTRATION_MEASUREMENT_CLUSTER_SERVER) || \ defined(ZCL_USING_HYDROGEN_CONCENTRATION_MEASUREMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_HYDROGEN_CONCENTRATION_MEASUREMENT_CLUSTER \ - { ZCL_HYDROGEN_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 0x0000, "Hydrogen Concentration Measurement" }, +#define CHIP_PRINTCLUSTER_HYDROGEN_CONCENTRATION_MEASUREMENT_CLUSTER \ + { ZCL_HYDROGEN_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 1040, "Hydrogen Concentration Measurement" }, #else -#define SILABS_PRINTCLUSTER_HYDROGEN_CONCENTRATION_MEASUREMENT_CLUSTER +#define CHIP_PRINTCLUSTER_HYDROGEN_CONCENTRATION_MEASUREMENT_CLUSTER #endif + #if defined(ZCL_USING_HYDROGEN_SULPHIDE_CONCENTRATION_MEASUREMENT_CLUSTER_SERVER) || \ defined(ZCL_USING_HYDROGEN_SULPHIDE_CONCENTRATION_MEASUREMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_HYDROGEN_SULPHIDE_CONCENTRATION_MEASUREMENT_CLUSTER \ - { ZCL_HYDROGEN_SULPHIDE_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 0x0000, "Hydrogen Sulphide Concentration Measurement" }, +#define CHIP_PRINTCLUSTER_HYDROGEN_SULPHIDE_CONCENTRATION_MEASUREMENT_CLUSTER \ + { ZCL_HYDROGEN_SULPHIDE_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 1041, "Hydrogen Sulphide Concentration Measurement" }, #else -#define SILABS_PRINTCLUSTER_HYDROGEN_SULPHIDE_CONCENTRATION_MEASUREMENT_CLUSTER +#define CHIP_PRINTCLUSTER_HYDROGEN_SULPHIDE_CONCENTRATION_MEASUREMENT_CLUSTER #endif + #if defined(ZCL_USING_NITRIC_OXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_SERVER) || \ defined(ZCL_USING_NITRIC_OXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_NITRIC_OXIDE_CONCENTRATION_MEASUREMENT_CLUSTER \ - { ZCL_NITRIC_OXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 0x0000, "Nitric Oxide Concentration Measurement" }, +#define CHIP_PRINTCLUSTER_NITRIC_OXIDE_CONCENTRATION_MEASUREMENT_CLUSTER \ + { ZCL_NITRIC_OXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 1042, "Nitric Oxide Concentration Measurement" }, #else -#define SILABS_PRINTCLUSTER_NITRIC_OXIDE_CONCENTRATION_MEASUREMENT_CLUSTER +#define CHIP_PRINTCLUSTER_NITRIC_OXIDE_CONCENTRATION_MEASUREMENT_CLUSTER #endif + #if defined(ZCL_USING_NITROGEN_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_SERVER) || \ defined(ZCL_USING_NITROGEN_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_NITROGEN_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER \ - { ZCL_NITROGEN_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 0x0000, "Nitrogen Dioxide Concentration Measurement" }, +#define CHIP_PRINTCLUSTER_NITROGEN_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER \ + { ZCL_NITROGEN_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 1043, "Nitrogen Dioxide Concentration Measurement" }, #else -#define SILABS_PRINTCLUSTER_NITROGEN_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER +#define CHIP_PRINTCLUSTER_NITROGEN_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER #endif + #if defined(ZCL_USING_OXYGEN_CONCENTRATION_MEASUREMENT_CLUSTER_SERVER) || \ defined(ZCL_USING_OXYGEN_CONCENTRATION_MEASUREMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_OXYGEN_CONCENTRATION_MEASUREMENT_CLUSTER \ - { ZCL_OXYGEN_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 0x0000, "Oxygen Concentration Measurement" }, +#define CHIP_PRINTCLUSTER_OXYGEN_CONCENTRATION_MEASUREMENT_CLUSTER \ + { ZCL_OXYGEN_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 1044, "Oxygen Concentration Measurement" }, #else -#define SILABS_PRINTCLUSTER_OXYGEN_CONCENTRATION_MEASUREMENT_CLUSTER +#define CHIP_PRINTCLUSTER_OXYGEN_CONCENTRATION_MEASUREMENT_CLUSTER #endif + #if defined(ZCL_USING_OZONE_CONCENTRATION_MEASUREMENT_CLUSTER_SERVER) || \ defined(ZCL_USING_OZONE_CONCENTRATION_MEASUREMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_OZONE_CONCENTRATION_MEASUREMENT_CLUSTER \ - { ZCL_OZONE_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 0x0000, "Ozone Concentration Measurement" }, +#define CHIP_PRINTCLUSTER_OZONE_CONCENTRATION_MEASUREMENT_CLUSTER \ + { ZCL_OZONE_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 1045, "Ozone Concentration Measurement" }, #else -#define SILABS_PRINTCLUSTER_OZONE_CONCENTRATION_MEASUREMENT_CLUSTER +#define CHIP_PRINTCLUSTER_OZONE_CONCENTRATION_MEASUREMENT_CLUSTER #endif + #if defined(ZCL_USING_SULFUR_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_SERVER) || \ defined(ZCL_USING_SULFUR_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_SULFUR_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER \ - { ZCL_SULFUR_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 0x0000, "Sulfur Dioxide Concentration Measurement" }, +#define CHIP_PRINTCLUSTER_SULFUR_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER \ + { ZCL_SULFUR_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 1046, "Sulfur Dioxide Concentration Measurement" }, #else -#define SILABS_PRINTCLUSTER_SULFUR_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER +#define CHIP_PRINTCLUSTER_SULFUR_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER #endif + #if defined(ZCL_USING_DISSOLVED_OXYGEN_CONCENTRATION_MEASUREMENT_CLUSTER_SERVER) || \ defined(ZCL_USING_DISSOLVED_OXYGEN_CONCENTRATION_MEASUREMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_DISSOLVED_OXYGEN_CONCENTRATION_MEASUREMENT_CLUSTER \ - { ZCL_DISSOLVED_OXYGEN_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 0x0000, "Dissolved Oxygen Concentration Measurement" }, +#define CHIP_PRINTCLUSTER_DISSOLVED_OXYGEN_CONCENTRATION_MEASUREMENT_CLUSTER \ + { ZCL_DISSOLVED_OXYGEN_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 1047, "Dissolved Oxygen Concentration Measurement" }, #else -#define SILABS_PRINTCLUSTER_DISSOLVED_OXYGEN_CONCENTRATION_MEASUREMENT_CLUSTER +#define CHIP_PRINTCLUSTER_DISSOLVED_OXYGEN_CONCENTRATION_MEASUREMENT_CLUSTER #endif + #if defined(ZCL_USING_BROMATE_CONCENTRATION_MEASUREMENT_CLUSTER_SERVER) || \ defined(ZCL_USING_BROMATE_CONCENTRATION_MEASUREMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_BROMATE_CONCENTRATION_MEASUREMENT_CLUSTER \ - { ZCL_BROMATE_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 0x0000, "Bromate Concentration Measurement" }, +#define CHIP_PRINTCLUSTER_BROMATE_CONCENTRATION_MEASUREMENT_CLUSTER \ + { ZCL_BROMATE_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 1048, "Bromate Concentration Measurement" }, #else -#define SILABS_PRINTCLUSTER_BROMATE_CONCENTRATION_MEASUREMENT_CLUSTER +#define CHIP_PRINTCLUSTER_BROMATE_CONCENTRATION_MEASUREMENT_CLUSTER #endif + #if defined(ZCL_USING_CHLORAMINES_CONCENTRATION_MEASUREMENT_CLUSTER_SERVER) || \ defined(ZCL_USING_CHLORAMINES_CONCENTRATION_MEASUREMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_CHLORAMINES_CONCENTRATION_MEASUREMENT_CLUSTER \ - { ZCL_CHLORAMINES_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 0x0000, "Chloramines Concentration Measurement" }, +#define CHIP_PRINTCLUSTER_CHLORAMINES_CONCENTRATION_MEASUREMENT_CLUSTER \ + { ZCL_CHLORAMINES_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 1049, "Chloramines Concentration Measurement" }, #else -#define SILABS_PRINTCLUSTER_CHLORAMINES_CONCENTRATION_MEASUREMENT_CLUSTER +#define CHIP_PRINTCLUSTER_CHLORAMINES_CONCENTRATION_MEASUREMENT_CLUSTER #endif + #if defined(ZCL_USING_CHLORINE_CONCENTRATION_MEASUREMENT_CLUSTER_SERVER) || \ defined(ZCL_USING_CHLORINE_CONCENTRATION_MEASUREMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_CHLORINE_CONCENTRATION_MEASUREMENT_CLUSTER \ - { ZCL_CHLORINE_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 0x0000, "Chlorine Concentration Measurement" }, +#define CHIP_PRINTCLUSTER_CHLORINE_CONCENTRATION_MEASUREMENT_CLUSTER \ + { ZCL_CHLORINE_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 1050, "Chlorine Concentration Measurement" }, #else -#define SILABS_PRINTCLUSTER_CHLORINE_CONCENTRATION_MEASUREMENT_CLUSTER +#define CHIP_PRINTCLUSTER_CHLORINE_CONCENTRATION_MEASUREMENT_CLUSTER #endif + #if defined(ZCL_USING_FECAL_COLIFORM_AND_E_COLI_CONCENTRATION_MEASUREMENT_CLUSTER_SERVER) || \ defined(ZCL_USING_FECAL_COLIFORM_AND_E_COLI_CONCENTRATION_MEASUREMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_FECAL_COLIFORM_AND_E_COLI_CONCENTRATION_MEASUREMENT_CLUSTER \ - { ZCL_FECAL_COLIFORM_AND_E_COLI_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 0x0000, \ +#define CHIP_PRINTCLUSTER_FECAL_COLIFORM_AND_E_COLI_CONCENTRATION_MEASUREMENT_CLUSTER \ + { ZCL_FECAL_COLIFORM_AND_E_COLI_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 1051, \ "Fecal coliform and E. Coli Concentration Measurement" }, #else -#define SILABS_PRINTCLUSTER_FECAL_COLIFORM_AND_E_COLI_CONCENTRATION_MEASUREMENT_CLUSTER +#define CHIP_PRINTCLUSTER_FECAL_COLIFORM_AND_E_COLI_CONCENTRATION_MEASUREMENT_CLUSTER #endif + #if defined(ZCL_USING_FLUORIDE_CONCENTRATION_MEASUREMENT_CLUSTER_SERVER) || \ defined(ZCL_USING_FLUORIDE_CONCENTRATION_MEASUREMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_FLUORIDE_CONCENTRATION_MEASUREMENT_CLUSTER \ - { ZCL_FLUORIDE_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 0x0000, "Fluoride Concentration Measurement" }, +#define CHIP_PRINTCLUSTER_FLUORIDE_CONCENTRATION_MEASUREMENT_CLUSTER \ + { ZCL_FLUORIDE_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 1052, "Fluoride Concentration Measurement" }, #else -#define SILABS_PRINTCLUSTER_FLUORIDE_CONCENTRATION_MEASUREMENT_CLUSTER +#define CHIP_PRINTCLUSTER_FLUORIDE_CONCENTRATION_MEASUREMENT_CLUSTER #endif + #if defined(ZCL_USING_HALOACETIC_ACIDS_CONCENTRATION_MEASUREMENT_CLUSTER_SERVER) || \ defined(ZCL_USING_HALOACETIC_ACIDS_CONCENTRATION_MEASUREMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_HALOACETIC_ACIDS_CONCENTRATION_MEASUREMENT_CLUSTER \ - { ZCL_HALOACETIC_ACIDS_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 0x0000, "Haloacetic Acids Concentration Measurement" }, +#define CHIP_PRINTCLUSTER_HALOACETIC_ACIDS_CONCENTRATION_MEASUREMENT_CLUSTER \ + { ZCL_HALOACETIC_ACIDS_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 1053, "Haloacetic Acids Concentration Measurement" }, #else -#define SILABS_PRINTCLUSTER_HALOACETIC_ACIDS_CONCENTRATION_MEASUREMENT_CLUSTER +#define CHIP_PRINTCLUSTER_HALOACETIC_ACIDS_CONCENTRATION_MEASUREMENT_CLUSTER #endif + #if defined(ZCL_USING_TOTAL_TRIHALOMETHANES_CONCENTRATION_MEASUREMENT_CLUSTER_SERVER) || \ defined(ZCL_USING_TOTAL_TRIHALOMETHANES_CONCENTRATION_MEASUREMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_TOTAL_TRIHALOMETHANES_CONCENTRATION_MEASUREMENT_CLUSTER \ - { ZCL_TOTAL_TRIHALOMETHANES_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 0x0000, "Total Trihalomethanes Concentration Measurement" }, +#define CHIP_PRINTCLUSTER_TOTAL_TRIHALOMETHANES_CONCENTRATION_MEASUREMENT_CLUSTER \ + { ZCL_TOTAL_TRIHALOMETHANES_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 1054, "Total Trihalomethanes Concentration Measurement" }, #else -#define SILABS_PRINTCLUSTER_TOTAL_TRIHALOMETHANES_CONCENTRATION_MEASUREMENT_CLUSTER +#define CHIP_PRINTCLUSTER_TOTAL_TRIHALOMETHANES_CONCENTRATION_MEASUREMENT_CLUSTER #endif + #if defined(ZCL_USING_TOTAL_COLIFORM_BACTERIA_CONCENTRATION_MEASUREMENT_CLUSTER_SERVER) || \ defined(ZCL_USING_TOTAL_COLIFORM_BACTERIA_CONCENTRATION_MEASUREMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_TOTAL_COLIFORM_BACTERIA_CONCENTRATION_MEASUREMENT_CLUSTER \ - { ZCL_TOTAL_COLIFORM_BACTERIA_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 0x0000, \ - "Total Coliform Bacteria Concentration Measurement" }, +#define CHIP_PRINTCLUSTER_TOTAL_COLIFORM_BACTERIA_CONCENTRATION_MEASUREMENT_CLUSTER \ + { ZCL_TOTAL_COLIFORM_BACTERIA_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 1055, "Total Coliform Bacteria Concentration Measurement" }, #else -#define SILABS_PRINTCLUSTER_TOTAL_COLIFORM_BACTERIA_CONCENTRATION_MEASUREMENT_CLUSTER +#define CHIP_PRINTCLUSTER_TOTAL_COLIFORM_BACTERIA_CONCENTRATION_MEASUREMENT_CLUSTER #endif + #if defined(ZCL_USING_TURBIDITY_CONCENTRATION_MEASUREMENT_CLUSTER_SERVER) || \ defined(ZCL_USING_TURBIDITY_CONCENTRATION_MEASUREMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_TURBIDITY_CONCENTRATION_MEASUREMENT_CLUSTER \ - { ZCL_TURBIDITY_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 0x0000, "Turbidity Concentration Measurement" }, +#define CHIP_PRINTCLUSTER_TURBIDITY_CONCENTRATION_MEASUREMENT_CLUSTER \ + { ZCL_TURBIDITY_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 1056, "Turbidity Concentration Measurement" }, #else -#define SILABS_PRINTCLUSTER_TURBIDITY_CONCENTRATION_MEASUREMENT_CLUSTER +#define CHIP_PRINTCLUSTER_TURBIDITY_CONCENTRATION_MEASUREMENT_CLUSTER #endif + #if defined(ZCL_USING_COPPER_CONCENTRATION_MEASUREMENT_CLUSTER_SERVER) || \ defined(ZCL_USING_COPPER_CONCENTRATION_MEASUREMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_COPPER_CONCENTRATION_MEASUREMENT_CLUSTER \ - { ZCL_COPPER_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 0x0000, "Copper Concentration Measurement" }, +#define CHIP_PRINTCLUSTER_COPPER_CONCENTRATION_MEASUREMENT_CLUSTER \ + { ZCL_COPPER_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 1057, "Copper Concentration Measurement" }, #else -#define SILABS_PRINTCLUSTER_COPPER_CONCENTRATION_MEASUREMENT_CLUSTER +#define CHIP_PRINTCLUSTER_COPPER_CONCENTRATION_MEASUREMENT_CLUSTER #endif + #if defined(ZCL_USING_LEAD_CONCENTRATION_MEASUREMENT_CLUSTER_SERVER) || \ defined(ZCL_USING_LEAD_CONCENTRATION_MEASUREMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_LEAD_CONCENTRATION_MEASUREMENT_CLUSTER \ - { ZCL_LEAD_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 0x0000, "Lead Concentration Measurement" }, +#define CHIP_PRINTCLUSTER_LEAD_CONCENTRATION_MEASUREMENT_CLUSTER \ + { ZCL_LEAD_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 1058, "Lead Concentration Measurement" }, #else -#define SILABS_PRINTCLUSTER_LEAD_CONCENTRATION_MEASUREMENT_CLUSTER +#define CHIP_PRINTCLUSTER_LEAD_CONCENTRATION_MEASUREMENT_CLUSTER #endif + #if defined(ZCL_USING_MANGANESE_CONCENTRATION_MEASUREMENT_CLUSTER_SERVER) || \ defined(ZCL_USING_MANGANESE_CONCENTRATION_MEASUREMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_MANGANESE_CONCENTRATION_MEASUREMENT_CLUSTER \ - { ZCL_MANGANESE_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 0x0000, "Manganese Concentration Measurement" }, +#define CHIP_PRINTCLUSTER_MANGANESE_CONCENTRATION_MEASUREMENT_CLUSTER \ + { ZCL_MANGANESE_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 1059, "Manganese Concentration Measurement" }, #else -#define SILABS_PRINTCLUSTER_MANGANESE_CONCENTRATION_MEASUREMENT_CLUSTER +#define CHIP_PRINTCLUSTER_MANGANESE_CONCENTRATION_MEASUREMENT_CLUSTER #endif + #if defined(ZCL_USING_SULFATE_CONCENTRATION_MEASUREMENT_CLUSTER_SERVER) || \ defined(ZCL_USING_SULFATE_CONCENTRATION_MEASUREMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_SULFATE_CONCENTRATION_MEASUREMENT_CLUSTER \ - { ZCL_SULFATE_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 0x0000, "Sulfate Concentration Measurement" }, +#define CHIP_PRINTCLUSTER_SULFATE_CONCENTRATION_MEASUREMENT_CLUSTER \ + { ZCL_SULFATE_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 1060, "Sulfate Concentration Measurement" }, #else -#define SILABS_PRINTCLUSTER_SULFATE_CONCENTRATION_MEASUREMENT_CLUSTER +#define CHIP_PRINTCLUSTER_SULFATE_CONCENTRATION_MEASUREMENT_CLUSTER #endif + #if defined(ZCL_USING_BROMODICHLOROMETHANE_CONCENTRATION_MEASUREMENT_CLUSTER_SERVER) || \ defined(ZCL_USING_BROMODICHLOROMETHANE_CONCENTRATION_MEASUREMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_BROMODICHLOROMETHANE_CONCENTRATION_MEASUREMENT_CLUSTER \ - { ZCL_BROMODICHLOROMETHANE_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 0x0000, "Bromodichloromethane Concentration Measurement" }, +#define CHIP_PRINTCLUSTER_BROMODICHLOROMETHANE_CONCENTRATION_MEASUREMENT_CLUSTER \ + { ZCL_BROMODICHLOROMETHANE_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 1061, "Bromodichloromethane Concentration Measurement" }, #else -#define SILABS_PRINTCLUSTER_BROMODICHLOROMETHANE_CONCENTRATION_MEASUREMENT_CLUSTER +#define CHIP_PRINTCLUSTER_BROMODICHLOROMETHANE_CONCENTRATION_MEASUREMENT_CLUSTER #endif + #if defined(ZCL_USING_BROMOFORM_CONCENTRATION_MEASUREMENT_CLUSTER_SERVER) || \ defined(ZCL_USING_BROMOFORM_CONCENTRATION_MEASUREMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_BROMOFORM_CONCENTRATION_MEASUREMENT_CLUSTER \ - { ZCL_BROMOFORM_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 0x0000, "Bromoform Concentration Measurement" }, +#define CHIP_PRINTCLUSTER_BROMOFORM_CONCENTRATION_MEASUREMENT_CLUSTER \ + { ZCL_BROMOFORM_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 1062, "Bromoform Concentration Measurement" }, #else -#define SILABS_PRINTCLUSTER_BROMOFORM_CONCENTRATION_MEASUREMENT_CLUSTER +#define CHIP_PRINTCLUSTER_BROMOFORM_CONCENTRATION_MEASUREMENT_CLUSTER #endif + #if defined(ZCL_USING_CHLORODIBROMOMETHANE_CONCENTRATION_MEASUREMENT_CLUSTER_SERVER) || \ defined(ZCL_USING_CHLORODIBROMOMETHANE_CONCENTRATION_MEASUREMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_CHLORODIBROMOMETHANE_CONCENTRATION_MEASUREMENT_CLUSTER \ - { ZCL_CHLORODIBROMOMETHANE_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 0x0000, "Chlorodibromomethane Concentration Measurement" }, +#define CHIP_PRINTCLUSTER_CHLORODIBROMOMETHANE_CONCENTRATION_MEASUREMENT_CLUSTER \ + { ZCL_CHLORODIBROMOMETHANE_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 1063, "Chlorodibromomethane Concentration Measurement" }, #else -#define SILABS_PRINTCLUSTER_CHLORODIBROMOMETHANE_CONCENTRATION_MEASUREMENT_CLUSTER +#define CHIP_PRINTCLUSTER_CHLORODIBROMOMETHANE_CONCENTRATION_MEASUREMENT_CLUSTER #endif + #if defined(ZCL_USING_CHLOROFORM_CONCENTRATION_MEASUREMENT_CLUSTER_SERVER) || \ defined(ZCL_USING_CHLOROFORM_CONCENTRATION_MEASUREMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_CHLOROFORM_CONCENTRATION_MEASUREMENT_CLUSTER \ - { ZCL_CHLOROFORM_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 0x0000, "Chloroform Concentration Measurement" }, +#define CHIP_PRINTCLUSTER_CHLOROFORM_CONCENTRATION_MEASUREMENT_CLUSTER \ + { ZCL_CHLOROFORM_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 1064, "Chloroform Concentration Measurement" }, #else -#define SILABS_PRINTCLUSTER_CHLOROFORM_CONCENTRATION_MEASUREMENT_CLUSTER +#define CHIP_PRINTCLUSTER_CHLOROFORM_CONCENTRATION_MEASUREMENT_CLUSTER #endif + #if defined(ZCL_USING_SODIUM_CONCENTRATION_MEASUREMENT_CLUSTER_SERVER) || \ defined(ZCL_USING_SODIUM_CONCENTRATION_MEASUREMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_SODIUM_CONCENTRATION_MEASUREMENT_CLUSTER \ - { ZCL_SODIUM_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 0x0000, "Sodium Concentration Measurement" }, +#define CHIP_PRINTCLUSTER_SODIUM_CONCENTRATION_MEASUREMENT_CLUSTER \ + { ZCL_SODIUM_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 1065, "Sodium Concentration Measurement" }, #else -#define SILABS_PRINTCLUSTER_SODIUM_CONCENTRATION_MEASUREMENT_CLUSTER +#define CHIP_PRINTCLUSTER_SODIUM_CONCENTRATION_MEASUREMENT_CLUSTER #endif + #if defined(ZCL_USING_IAS_ZONE_CLUSTER_SERVER) || defined(ZCL_USING_IAS_ZONE_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_IAS_ZONE_CLUSTER { ZCL_IAS_ZONE_CLUSTER_ID, 0x0000, "IAS Zone" }, +#define CHIP_PRINTCLUSTER_IAS_ZONE_CLUSTER { ZCL_IAS_ZONE_CLUSTER_ID, 1280, "IAS Zone" }, #else -#define SILABS_PRINTCLUSTER_IAS_ZONE_CLUSTER +#define CHIP_PRINTCLUSTER_IAS_ZONE_CLUSTER #endif + #if defined(ZCL_USING_IAS_ACE_CLUSTER_SERVER) || defined(ZCL_USING_IAS_ACE_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_IAS_ACE_CLUSTER { ZCL_IAS_ACE_CLUSTER_ID, 0x0000, "IAS ACE" }, +#define CHIP_PRINTCLUSTER_IAS_ACE_CLUSTER { ZCL_IAS_ACE_CLUSTER_ID, 1281, "IAS ACE" }, #else -#define SILABS_PRINTCLUSTER_IAS_ACE_CLUSTER +#define CHIP_PRINTCLUSTER_IAS_ACE_CLUSTER #endif + #if defined(ZCL_USING_IAS_WD_CLUSTER_SERVER) || defined(ZCL_USING_IAS_WD_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_IAS_WD_CLUSTER { ZCL_IAS_WD_CLUSTER_ID, 0x0000, "IAS WD" }, +#define CHIP_PRINTCLUSTER_IAS_WD_CLUSTER { ZCL_IAS_WD_CLUSTER_ID, 1282, "IAS WD" }, #else -#define SILABS_PRINTCLUSTER_IAS_WD_CLUSTER +#define CHIP_PRINTCLUSTER_IAS_WD_CLUSTER #endif + #if defined(ZCL_USING_GENERIC_TUNNEL_CLUSTER_SERVER) || defined(ZCL_USING_GENERIC_TUNNEL_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_GENERIC_TUNNEL_CLUSTER { ZCL_GENERIC_TUNNEL_CLUSTER_ID, 0x0000, "Generic Tunnel" }, +#define CHIP_PRINTCLUSTER_GENERIC_TUNNEL_CLUSTER { ZCL_GENERIC_TUNNEL_CLUSTER_ID, 1536, "Generic Tunnel" }, #else -#define SILABS_PRINTCLUSTER_GENERIC_TUNNEL_CLUSTER +#define CHIP_PRINTCLUSTER_GENERIC_TUNNEL_CLUSTER #endif + #if defined(ZCL_USING_BACNET_PROTOCOL_TUNNEL_CLUSTER_SERVER) || defined(ZCL_USING_BACNET_PROTOCOL_TUNNEL_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_BACNET_PROTOCOL_TUNNEL_CLUSTER \ - { ZCL_BACNET_PROTOCOL_TUNNEL_CLUSTER_ID, 0x0000, "BACnet Protocol Tunnel" }, +#define CHIP_PRINTCLUSTER_BACNET_PROTOCOL_TUNNEL_CLUSTER { ZCL_BACNET_PROTOCOL_TUNNEL_CLUSTER_ID, 1537, "BACnet Protocol Tunnel" }, #else -#define SILABS_PRINTCLUSTER_BACNET_PROTOCOL_TUNNEL_CLUSTER +#define CHIP_PRINTCLUSTER_BACNET_PROTOCOL_TUNNEL_CLUSTER #endif + #if defined(ZCL_USING_11073_PROTOCOL_TUNNEL_CLUSTER_SERVER) || defined(ZCL_USING_11073_PROTOCOL_TUNNEL_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_11073_PROTOCOL_TUNNEL_CLUSTER { ZCL_11073_PROTOCOL_TUNNEL_CLUSTER_ID, 0x0000, "11073 Protocol Tunnel" }, +#define CHIP_PRINTCLUSTER_11073_PROTOCOL_TUNNEL_CLUSTER { ZCL_11073_PROTOCOL_TUNNEL_CLUSTER_ID, 1556, "11073 Protocol Tunnel" }, #else -#define SILABS_PRINTCLUSTER_11073_PROTOCOL_TUNNEL_CLUSTER +#define CHIP_PRINTCLUSTER_11073_PROTOCOL_TUNNEL_CLUSTER #endif + #if defined(ZCL_USING_ISO7816_PROTOCOL_TUNNEL_CLUSTER_SERVER) || defined(ZCL_USING_ISO7816_PROTOCOL_TUNNEL_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_ISO7816_PROTOCOL_TUNNEL_CLUSTER \ - { ZCL_ISO7816_PROTOCOL_TUNNEL_CLUSTER_ID, 0x0000, "ISO 7816 Protocol Tunnel" }, +#define CHIP_PRINTCLUSTER_ISO7816_PROTOCOL_TUNNEL_CLUSTER \ + { ZCL_ISO7816_PROTOCOL_TUNNEL_CLUSTER_ID, 1557, "ISO 7816 Protocol Tunnel" }, #else -#define SILABS_PRINTCLUSTER_ISO7816_PROTOCOL_TUNNEL_CLUSTER +#define CHIP_PRINTCLUSTER_ISO7816_PROTOCOL_TUNNEL_CLUSTER #endif + #if defined(ZCL_USING_PRICE_CLUSTER_SERVER) || defined(ZCL_USING_PRICE_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_PRICE_CLUSTER { ZCL_PRICE_CLUSTER_ID, 0x0000, "Price" }, +#define CHIP_PRINTCLUSTER_PRICE_CLUSTER { ZCL_PRICE_CLUSTER_ID, 1792, "Price" }, #else -#define SILABS_PRINTCLUSTER_PRICE_CLUSTER +#define CHIP_PRINTCLUSTER_PRICE_CLUSTER #endif + #if defined(ZCL_USING_DEMAND_RESPONSE_LOAD_CONTROL_CLUSTER_SERVER) || defined(ZCL_USING_DEMAND_RESPONSE_LOAD_CONTROL_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_DEMAND_RESPONSE_LOAD_CONTROL_CLUSTER \ - { ZCL_DEMAND_RESPONSE_LOAD_CONTROL_CLUSTER_ID, 0x0000, "Demand Response and Load Control" }, +#define CHIP_PRINTCLUSTER_DEMAND_RESPONSE_LOAD_CONTROL_CLUSTER \ + { ZCL_DEMAND_RESPONSE_LOAD_CONTROL_CLUSTER_ID, 1793, "Demand Response and Load Control" }, #else -#define SILABS_PRINTCLUSTER_DEMAND_RESPONSE_LOAD_CONTROL_CLUSTER +#define CHIP_PRINTCLUSTER_DEMAND_RESPONSE_LOAD_CONTROL_CLUSTER #endif + #if defined(ZCL_USING_SIMPLE_METERING_CLUSTER_SERVER) || defined(ZCL_USING_SIMPLE_METERING_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_SIMPLE_METERING_CLUSTER { ZCL_SIMPLE_METERING_CLUSTER_ID, 0x0000, "Simple Metering" }, +#define CHIP_PRINTCLUSTER_SIMPLE_METERING_CLUSTER { ZCL_SIMPLE_METERING_CLUSTER_ID, 1794, "Simple Metering" }, #else -#define SILABS_PRINTCLUSTER_SIMPLE_METERING_CLUSTER +#define CHIP_PRINTCLUSTER_SIMPLE_METERING_CLUSTER #endif + #if defined(ZCL_USING_MESSAGING_CLUSTER_SERVER) || defined(ZCL_USING_MESSAGING_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_MESSAGING_CLUSTER { ZCL_MESSAGING_CLUSTER_ID, 0x0000, "Messaging" }, +#define CHIP_PRINTCLUSTER_MESSAGING_CLUSTER { ZCL_MESSAGING_CLUSTER_ID, 1795, "Messaging" }, #else -#define SILABS_PRINTCLUSTER_MESSAGING_CLUSTER +#define CHIP_PRINTCLUSTER_MESSAGING_CLUSTER #endif + #if defined(ZCL_USING_TUNNELING_CLUSTER_SERVER) || defined(ZCL_USING_TUNNELING_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_TUNNELING_CLUSTER { ZCL_TUNNELING_CLUSTER_ID, 0x0000, "Tunneling" }, +#define CHIP_PRINTCLUSTER_TUNNELING_CLUSTER { ZCL_TUNNELING_CLUSTER_ID, 1796, "Tunneling" }, #else -#define SILABS_PRINTCLUSTER_TUNNELING_CLUSTER +#define CHIP_PRINTCLUSTER_TUNNELING_CLUSTER #endif + #if defined(ZCL_USING_PREPAYMENT_CLUSTER_SERVER) || defined(ZCL_USING_PREPAYMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_PREPAYMENT_CLUSTER { ZCL_PREPAYMENT_CLUSTER_ID, 0x0000, "Prepayment" }, +#define CHIP_PRINTCLUSTER_PREPAYMENT_CLUSTER { ZCL_PREPAYMENT_CLUSTER_ID, 1797, "Prepayment" }, #else -#define SILABS_PRINTCLUSTER_PREPAYMENT_CLUSTER +#define CHIP_PRINTCLUSTER_PREPAYMENT_CLUSTER #endif + #if defined(ZCL_USING_ENERGY_MANAGEMENT_CLUSTER_SERVER) || defined(ZCL_USING_ENERGY_MANAGEMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_ENERGY_MANAGEMENT_CLUSTER { ZCL_ENERGY_MANAGEMENT_CLUSTER_ID, 0x0000, "Energy Management" }, +#define CHIP_PRINTCLUSTER_ENERGY_MANAGEMENT_CLUSTER { ZCL_ENERGY_MANAGEMENT_CLUSTER_ID, 1798, "Energy Management" }, #else -#define SILABS_PRINTCLUSTER_ENERGY_MANAGEMENT_CLUSTER +#define CHIP_PRINTCLUSTER_ENERGY_MANAGEMENT_CLUSTER #endif + #if defined(ZCL_USING_CALENDAR_CLUSTER_SERVER) || defined(ZCL_USING_CALENDAR_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_CALENDAR_CLUSTER { ZCL_CALENDAR_CLUSTER_ID, 0x0000, "Calendar" }, +#define CHIP_PRINTCLUSTER_CALENDAR_CLUSTER { ZCL_CALENDAR_CLUSTER_ID, 1799, "Calendar" }, #else -#define SILABS_PRINTCLUSTER_CALENDAR_CLUSTER +#define CHIP_PRINTCLUSTER_CALENDAR_CLUSTER #endif + #if defined(ZCL_USING_DEVICE_MANAGEMENT_CLUSTER_SERVER) || defined(ZCL_USING_DEVICE_MANAGEMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_DEVICE_MANAGEMENT_CLUSTER { ZCL_DEVICE_MANAGEMENT_CLUSTER_ID, 0x0000, "Device Management" }, +#define CHIP_PRINTCLUSTER_DEVICE_MANAGEMENT_CLUSTER { ZCL_DEVICE_MANAGEMENT_CLUSTER_ID, 1800, "Device Management" }, #else -#define SILABS_PRINTCLUSTER_DEVICE_MANAGEMENT_CLUSTER +#define CHIP_PRINTCLUSTER_DEVICE_MANAGEMENT_CLUSTER #endif + #if defined(ZCL_USING_EVENTS_CLUSTER_SERVER) || defined(ZCL_USING_EVENTS_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_EVENTS_CLUSTER { ZCL_EVENTS_CLUSTER_ID, 0x0000, "Events" }, +#define CHIP_PRINTCLUSTER_EVENTS_CLUSTER { ZCL_EVENTS_CLUSTER_ID, 1801, "Events" }, #else -#define SILABS_PRINTCLUSTER_EVENTS_CLUSTER +#define CHIP_PRINTCLUSTER_EVENTS_CLUSTER #endif + #if defined(ZCL_USING_MDU_PAIRING_CLUSTER_SERVER) || defined(ZCL_USING_MDU_PAIRING_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_MDU_PAIRING_CLUSTER { ZCL_MDU_PAIRING_CLUSTER_ID, 0x0000, "MDU Pairing" }, +#define CHIP_PRINTCLUSTER_MDU_PAIRING_CLUSTER { ZCL_MDU_PAIRING_CLUSTER_ID, 1802, "MDU Pairing" }, #else -#define SILABS_PRINTCLUSTER_MDU_PAIRING_CLUSTER +#define CHIP_PRINTCLUSTER_MDU_PAIRING_CLUSTER #endif + #if defined(ZCL_USING_SUB_GHZ_CLUSTER_SERVER) || defined(ZCL_USING_SUB_GHZ_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_SUB_GHZ_CLUSTER { ZCL_SUB_GHZ_CLUSTER_ID, 0x0000, "Sub-GHz" }, +#define CHIP_PRINTCLUSTER_SUB_GHZ_CLUSTER { ZCL_SUB_GHZ_CLUSTER_ID, 1803, "Sub-GHz" }, #else -#define SILABS_PRINTCLUSTER_SUB_GHZ_CLUSTER +#define CHIP_PRINTCLUSTER_SUB_GHZ_CLUSTER #endif + #if defined(ZCL_USING_KEY_ESTABLISHMENT_CLUSTER_SERVER) || defined(ZCL_USING_KEY_ESTABLISHMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_KEY_ESTABLISHMENT_CLUSTER { ZCL_KEY_ESTABLISHMENT_CLUSTER_ID, 0x0000, "Key Establishment" }, +#define CHIP_PRINTCLUSTER_KEY_ESTABLISHMENT_CLUSTER { ZCL_KEY_ESTABLISHMENT_CLUSTER_ID, 2048, "Key Establishment" }, #else -#define SILABS_PRINTCLUSTER_KEY_ESTABLISHMENT_CLUSTER +#define CHIP_PRINTCLUSTER_KEY_ESTABLISHMENT_CLUSTER #endif + #if defined(ZCL_USING_INFORMATION_CLUSTER_SERVER) || defined(ZCL_USING_INFORMATION_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_INFORMATION_CLUSTER { ZCL_INFORMATION_CLUSTER_ID, 0x0000, "Information" }, +#define CHIP_PRINTCLUSTER_INFORMATION_CLUSTER { ZCL_INFORMATION_CLUSTER_ID, 2304, "Information" }, #else -#define SILABS_PRINTCLUSTER_INFORMATION_CLUSTER +#define CHIP_PRINTCLUSTER_INFORMATION_CLUSTER #endif + #if defined(ZCL_USING_DATA_SHARING_CLUSTER_SERVER) || defined(ZCL_USING_DATA_SHARING_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_DATA_SHARING_CLUSTER { ZCL_DATA_SHARING_CLUSTER_ID, 0x0000, "Data Sharing" }, +#define CHIP_PRINTCLUSTER_DATA_SHARING_CLUSTER { ZCL_DATA_SHARING_CLUSTER_ID, 2305, "Data Sharing" }, #else -#define SILABS_PRINTCLUSTER_DATA_SHARING_CLUSTER +#define CHIP_PRINTCLUSTER_DATA_SHARING_CLUSTER #endif + #if defined(ZCL_USING_GAMING_CLUSTER_SERVER) || defined(ZCL_USING_GAMING_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_GAMING_CLUSTER { ZCL_GAMING_CLUSTER_ID, 0x0000, "Gaming" }, +#define CHIP_PRINTCLUSTER_GAMING_CLUSTER { ZCL_GAMING_CLUSTER_ID, 2306, "Gaming" }, #else -#define SILABS_PRINTCLUSTER_GAMING_CLUSTER +#define CHIP_PRINTCLUSTER_GAMING_CLUSTER #endif + #if defined(ZCL_USING_DATA_RATE_CONTROL_CLUSTER_SERVER) || defined(ZCL_USING_DATA_RATE_CONTROL_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_DATA_RATE_CONTROL_CLUSTER { ZCL_DATA_RATE_CONTROL_CLUSTER_ID, 0x0000, "Data Rate Control" }, +#define CHIP_PRINTCLUSTER_DATA_RATE_CONTROL_CLUSTER { ZCL_DATA_RATE_CONTROL_CLUSTER_ID, 2307, "Data Rate Control" }, #else -#define SILABS_PRINTCLUSTER_DATA_RATE_CONTROL_CLUSTER +#define CHIP_PRINTCLUSTER_DATA_RATE_CONTROL_CLUSTER #endif + #if defined(ZCL_USING_VOICE_OVER_ZIGBEE_CLUSTER_SERVER) || defined(ZCL_USING_VOICE_OVER_ZIGBEE_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_VOICE_OVER_ZIGBEE_CLUSTER { ZCL_VOICE_OVER_ZIGBEE_CLUSTER_ID, 0x0000, "Voice over ZigBee" }, +#define CHIP_PRINTCLUSTER_VOICE_OVER_ZIGBEE_CLUSTER { ZCL_VOICE_OVER_ZIGBEE_CLUSTER_ID, 2308, "Voice over ZigBee" }, #else -#define SILABS_PRINTCLUSTER_VOICE_OVER_ZIGBEE_CLUSTER +#define CHIP_PRINTCLUSTER_VOICE_OVER_ZIGBEE_CLUSTER #endif + #if defined(ZCL_USING_CHATTING_CLUSTER_SERVER) || defined(ZCL_USING_CHATTING_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_CHATTING_CLUSTER { ZCL_CHATTING_CLUSTER_ID, 0x0000, "Chatting" }, +#define CHIP_PRINTCLUSTER_CHATTING_CLUSTER { ZCL_CHATTING_CLUSTER_ID, 2309, "Chatting" }, #else -#define SILABS_PRINTCLUSTER_CHATTING_CLUSTER +#define CHIP_PRINTCLUSTER_CHATTING_CLUSTER #endif + #if defined(ZCL_USING_PAYMENT_CLUSTER_SERVER) || defined(ZCL_USING_PAYMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_PAYMENT_CLUSTER { ZCL_PAYMENT_CLUSTER_ID, 0x0000, "Payment" }, +#define CHIP_PRINTCLUSTER_PAYMENT_CLUSTER { ZCL_PAYMENT_CLUSTER_ID, 2561, "Payment" }, #else -#define SILABS_PRINTCLUSTER_PAYMENT_CLUSTER +#define CHIP_PRINTCLUSTER_PAYMENT_CLUSTER #endif + #if defined(ZCL_USING_BILLING_CLUSTER_SERVER) || defined(ZCL_USING_BILLING_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_BILLING_CLUSTER { ZCL_BILLING_CLUSTER_ID, 0x0000, "Billing" }, +#define CHIP_PRINTCLUSTER_BILLING_CLUSTER { ZCL_BILLING_CLUSTER_ID, 2562, "Billing" }, #else -#define SILABS_PRINTCLUSTER_BILLING_CLUSTER +#define CHIP_PRINTCLUSTER_BILLING_CLUSTER #endif + #if defined(ZCL_USING_APPLIANCE_IDENTIFICATION_CLUSTER_SERVER) || defined(ZCL_USING_APPLIANCE_IDENTIFICATION_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_APPLIANCE_IDENTIFICATION_CLUSTER \ - { ZCL_APPLIANCE_IDENTIFICATION_CLUSTER_ID, 0x0000, "Appliance Identification" }, +#define CHIP_PRINTCLUSTER_APPLIANCE_IDENTIFICATION_CLUSTER \ + { ZCL_APPLIANCE_IDENTIFICATION_CLUSTER_ID, 2816, "Appliance Identification" }, #else -#define SILABS_PRINTCLUSTER_APPLIANCE_IDENTIFICATION_CLUSTER +#define CHIP_PRINTCLUSTER_APPLIANCE_IDENTIFICATION_CLUSTER #endif + #if defined(ZCL_USING_METER_IDENTIFICATION_CLUSTER_SERVER) || defined(ZCL_USING_METER_IDENTIFICATION_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_METER_IDENTIFICATION_CLUSTER { ZCL_METER_IDENTIFICATION_CLUSTER_ID, 0x0000, "Meter Identification" }, +#define CHIP_PRINTCLUSTER_METER_IDENTIFICATION_CLUSTER { ZCL_METER_IDENTIFICATION_CLUSTER_ID, 2817, "Meter Identification" }, #else -#define SILABS_PRINTCLUSTER_METER_IDENTIFICATION_CLUSTER +#define CHIP_PRINTCLUSTER_METER_IDENTIFICATION_CLUSTER #endif + #if defined(ZCL_USING_APPLIANCE_EVENTS_AND_ALERT_CLUSTER_SERVER) || defined(ZCL_USING_APPLIANCE_EVENTS_AND_ALERT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_APPLIANCE_EVENTS_AND_ALERT_CLUSTER \ - { ZCL_APPLIANCE_EVENTS_AND_ALERT_CLUSTER_ID, 0x0000, "Appliance Events and Alert" }, +#define CHIP_PRINTCLUSTER_APPLIANCE_EVENTS_AND_ALERT_CLUSTER \ + { ZCL_APPLIANCE_EVENTS_AND_ALERT_CLUSTER_ID, 2818, "Appliance Events and Alert" }, #else -#define SILABS_PRINTCLUSTER_APPLIANCE_EVENTS_AND_ALERT_CLUSTER +#define CHIP_PRINTCLUSTER_APPLIANCE_EVENTS_AND_ALERT_CLUSTER #endif + #if defined(ZCL_USING_APPLIANCE_STATISTICS_CLUSTER_SERVER) || defined(ZCL_USING_APPLIANCE_STATISTICS_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_APPLIANCE_STATISTICS_CLUSTER { ZCL_APPLIANCE_STATISTICS_CLUSTER_ID, 0x0000, "Appliance Statistics" }, +#define CHIP_PRINTCLUSTER_APPLIANCE_STATISTICS_CLUSTER { ZCL_APPLIANCE_STATISTICS_CLUSTER_ID, 2819, "Appliance Statistics" }, #else -#define SILABS_PRINTCLUSTER_APPLIANCE_STATISTICS_CLUSTER +#define CHIP_PRINTCLUSTER_APPLIANCE_STATISTICS_CLUSTER #endif + #if defined(ZCL_USING_ELECTRICAL_MEASUREMENT_CLUSTER_SERVER) || defined(ZCL_USING_ELECTRICAL_MEASUREMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_ELECTRICAL_MEASUREMENT_CLUSTER \ - { ZCL_ELECTRICAL_MEASUREMENT_CLUSTER_ID, 0x0000, "Electrical Measurement" }, +#define CHIP_PRINTCLUSTER_ELECTRICAL_MEASUREMENT_CLUSTER { ZCL_ELECTRICAL_MEASUREMENT_CLUSTER_ID, 2820, "Electrical Measurement" }, #else -#define SILABS_PRINTCLUSTER_ELECTRICAL_MEASUREMENT_CLUSTER +#define CHIP_PRINTCLUSTER_ELECTRICAL_MEASUREMENT_CLUSTER #endif + #if defined(ZCL_USING_DIAGNOSTICS_CLUSTER_SERVER) || defined(ZCL_USING_DIAGNOSTICS_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_DIAGNOSTICS_CLUSTER { ZCL_DIAGNOSTICS_CLUSTER_ID, 0x0000, "Diagnostics" }, +#define CHIP_PRINTCLUSTER_DIAGNOSTICS_CLUSTER { ZCL_DIAGNOSTICS_CLUSTER_ID, 2821, "Diagnostics" }, #else -#define SILABS_PRINTCLUSTER_DIAGNOSTICS_CLUSTER +#define CHIP_PRINTCLUSTER_DIAGNOSTICS_CLUSTER #endif + #if defined(ZCL_USING_ZLL_COMMISSIONING_CLUSTER_SERVER) || defined(ZCL_USING_ZLL_COMMISSIONING_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_ZLL_COMMISSIONING_CLUSTER { ZCL_ZLL_COMMISSIONING_CLUSTER_ID, 0x0000, "ZLL Commissioning" }, +#define CHIP_PRINTCLUSTER_ZLL_COMMISSIONING_CLUSTER { ZCL_ZLL_COMMISSIONING_CLUSTER_ID, 4096, "ZLL Commissioning" }, #else -#define SILABS_PRINTCLUSTER_ZLL_COMMISSIONING_CLUSTER +#define CHIP_PRINTCLUSTER_ZLL_COMMISSIONING_CLUSTER #endif + #if defined(ZCL_USING_SAMPLE_MFG_SPECIFIC_CLUSTER_SERVER) || defined(ZCL_USING_SAMPLE_MFG_SPECIFIC_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_SAMPLE_MFG_SPECIFIC_CLUSTER \ - { ZCL_SAMPLE_MFG_SPECIFIC_CLUSTER_ID, 0x1002, "Sample Mfg Specific Cluster" }, +#define CHIP_PRINTCLUSTER_SAMPLE_MFG_SPECIFIC_CLUSTER { ZCL_SAMPLE_MFG_SPECIFIC_CLUSTER_ID, 64512, "Sample Mfg Specific Cluster" }, #else -#define SILABS_PRINTCLUSTER_SAMPLE_MFG_SPECIFIC_CLUSTER +#define CHIP_PRINTCLUSTER_SAMPLE_MFG_SPECIFIC_CLUSTER #endif + #if defined(ZCL_USING_SAMPLE_MFG_SPECIFIC_CLUSTER_2_SERVER) || defined(ZCL_USING_SAMPLE_MFG_SPECIFIC_CLUSTER_2_CLIENT) -#define SILABS_PRINTCLUSTER_SAMPLE_MFG_SPECIFIC_CLUSTER_2 \ - { ZCL_SAMPLE_MFG_SPECIFIC_CLUSTER_2_ID, 0x1049, "Sample Mfg Specific Cluster 2" }, +#define CHIP_PRINTCLUSTER_SAMPLE_MFG_SPECIFIC_CLUSTER_2 \ + { ZCL_SAMPLE_MFG_SPECIFIC_CLUSTER_2_ID, 64512, "Sample Mfg Specific Cluster 2" }, #else -#define SILABS_PRINTCLUSTER_SAMPLE_MFG_SPECIFIC_CLUSTER_2 +#define CHIP_PRINTCLUSTER_SAMPLE_MFG_SPECIFIC_CLUSTER_2 #endif + #if defined(ZCL_USING_OTA_CONFIGURATION_CLUSTER_SERVER) || defined(ZCL_USING_OTA_CONFIGURATION_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_OTA_CONFIGURATION_CLUSTER { ZCL_OTA_CONFIGURATION_CLUSTER_ID, 0x1002, "Configuration Cluster" }, +#define CHIP_PRINTCLUSTER_OTA_CONFIGURATION_CLUSTER { ZCL_OTA_CONFIGURATION_CLUSTER_ID, 64513, "Configuration Cluster" }, #else -#define SILABS_PRINTCLUSTER_OTA_CONFIGURATION_CLUSTER +#define CHIP_PRINTCLUSTER_OTA_CONFIGURATION_CLUSTER #endif + #if defined(ZCL_USING_MFGLIB_CLUSTER_SERVER) || defined(ZCL_USING_MFGLIB_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_MFGLIB_CLUSTER { ZCL_MFGLIB_CLUSTER_ID, 0x1002, "MFGLIB Cluster" }, +#define CHIP_PRINTCLUSTER_MFGLIB_CLUSTER { ZCL_MFGLIB_CLUSTER_ID, 64514, "MFGLIB Cluster" }, #else -#define SILABS_PRINTCLUSTER_MFGLIB_CLUSTER +#define CHIP_PRINTCLUSTER_MFGLIB_CLUSTER #endif + #if defined(ZCL_USING_SL_WWAH_CLUSTER_SERVER) || defined(ZCL_USING_SL_WWAH_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_SL_WWAH_CLUSTER { ZCL_SL_WWAH_CLUSTER_ID, 0x1217, "SL Works With All Hubs" }, +#define CHIP_PRINTCLUSTER_SL_WWAH_CLUSTER { ZCL_SL_WWAH_CLUSTER_ID, 64599, "SL Works With All Hubs" }, #else -#define SILABS_PRINTCLUSTER_SL_WWAH_CLUSTER +#define CHIP_PRINTCLUSTER_SL_WWAH_CLUSTER #endif + #define CLUSTER_IDS_TO_NAMES \ - SILABS_PRINTCLUSTER_BASIC_CLUSTER \ - SILABS_PRINTCLUSTER_POWER_CONFIG_CLUSTER \ - SILABS_PRINTCLUSTER_DEVICE_TEMP_CLUSTER \ - SILABS_PRINTCLUSTER_IDENTIFY_CLUSTER \ - SILABS_PRINTCLUSTER_GROUPS_CLUSTER \ - SILABS_PRINTCLUSTER_SCENES_CLUSTER \ - SILABS_PRINTCLUSTER_ON_OFF_CLUSTER \ - SILABS_PRINTCLUSTER_ON_OFF_SWITCH_CONFIG_CLUSTER \ - SILABS_PRINTCLUSTER_LEVEL_CONTROL_CLUSTER \ - SILABS_PRINTCLUSTER_ALARM_CLUSTER \ - SILABS_PRINTCLUSTER_TIME_CLUSTER \ - SILABS_PRINTCLUSTER_RSSI_LOCATION_CLUSTER \ - SILABS_PRINTCLUSTER_BINARY_INPUT_BASIC_CLUSTER \ - SILABS_PRINTCLUSTER_COMMISSIONING_CLUSTER \ - SILABS_PRINTCLUSTER_PARTITION_CLUSTER \ - SILABS_PRINTCLUSTER_OTA_BOOTLOAD_CLUSTER \ - SILABS_PRINTCLUSTER_POWER_PROFILE_CLUSTER \ - SILABS_PRINTCLUSTER_APPLIANCE_CONTROL_CLUSTER \ - SILABS_PRINTCLUSTER_POLL_CONTROL_CLUSTER \ - SILABS_PRINTCLUSTER_GREEN_POWER_CLUSTER \ - SILABS_PRINTCLUSTER_KEEPALIVE_CLUSTER \ - SILABS_PRINTCLUSTER_SHADE_CONFIG_CLUSTER \ - SILABS_PRINTCLUSTER_DOOR_LOCK_CLUSTER \ - SILABS_PRINTCLUSTER_WINDOW_COVERING_CLUSTER \ - SILABS_PRINTCLUSTER_BARRIER_CONTROL_CLUSTER \ - SILABS_PRINTCLUSTER_PUMP_CONFIG_CONTROL_CLUSTER \ - SILABS_PRINTCLUSTER_THERMOSTAT_CLUSTER \ - SILABS_PRINTCLUSTER_FAN_CONTROL_CLUSTER \ - SILABS_PRINTCLUSTER_DEHUMID_CONTROL_CLUSTER \ - SILABS_PRINTCLUSTER_THERMOSTAT_UI_CONFIG_CLUSTER \ - SILABS_PRINTCLUSTER_COLOR_CONTROL_CLUSTER \ - SILABS_PRINTCLUSTER_BALLAST_CONFIGURATION_CLUSTER \ - SILABS_PRINTCLUSTER_ILLUM_MEASUREMENT_CLUSTER \ - SILABS_PRINTCLUSTER_ILLUM_LEVEL_SENSING_CLUSTER \ - SILABS_PRINTCLUSTER_TEMP_MEASUREMENT_CLUSTER \ - SILABS_PRINTCLUSTER_PRESSURE_MEASUREMENT_CLUSTER \ - SILABS_PRINTCLUSTER_FLOW_MEASUREMENT_CLUSTER \ - SILABS_PRINTCLUSTER_RELATIVE_HUMIDITY_MEASUREMENT_CLUSTER \ - SILABS_PRINTCLUSTER_OCCUPANCY_SENSING_CLUSTER \ - SILABS_PRINTCLUSTER_CARBON_MONOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER \ - SILABS_PRINTCLUSTER_CARBON_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER \ - SILABS_PRINTCLUSTER_ETHYLENE_CONCENTRATION_MEASUREMENT_CLUSTER \ - SILABS_PRINTCLUSTER_ETHYLENE_OXIDE_CONCENTRATION_MEASUREMENT_CLUSTER \ - SILABS_PRINTCLUSTER_HYDROGEN_CONCENTRATION_MEASUREMENT_CLUSTER \ - SILABS_PRINTCLUSTER_HYDROGEN_SULPHIDE_CONCENTRATION_MEASUREMENT_CLUSTER \ - SILABS_PRINTCLUSTER_NITRIC_OXIDE_CONCENTRATION_MEASUREMENT_CLUSTER \ - SILABS_PRINTCLUSTER_NITROGEN_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER \ - SILABS_PRINTCLUSTER_OXYGEN_CONCENTRATION_MEASUREMENT_CLUSTER \ - SILABS_PRINTCLUSTER_OZONE_CONCENTRATION_MEASUREMENT_CLUSTER \ - SILABS_PRINTCLUSTER_SULFUR_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER \ - SILABS_PRINTCLUSTER_DISSOLVED_OXYGEN_CONCENTRATION_MEASUREMENT_CLUSTER \ - SILABS_PRINTCLUSTER_BROMATE_CONCENTRATION_MEASUREMENT_CLUSTER \ - SILABS_PRINTCLUSTER_CHLORAMINES_CONCENTRATION_MEASUREMENT_CLUSTER \ - SILABS_PRINTCLUSTER_CHLORINE_CONCENTRATION_MEASUREMENT_CLUSTER \ - SILABS_PRINTCLUSTER_FECAL_COLIFORM_AND_E_COLI_CONCENTRATION_MEASUREMENT_CLUSTER \ - SILABS_PRINTCLUSTER_FLUORIDE_CONCENTRATION_MEASUREMENT_CLUSTER \ - SILABS_PRINTCLUSTER_HALOACETIC_ACIDS_CONCENTRATION_MEASUREMENT_CLUSTER \ - SILABS_PRINTCLUSTER_TOTAL_TRIHALOMETHANES_CONCENTRATION_MEASUREMENT_CLUSTER \ - SILABS_PRINTCLUSTER_TOTAL_COLIFORM_BACTERIA_CONCENTRATION_MEASUREMENT_CLUSTER \ - SILABS_PRINTCLUSTER_TURBIDITY_CONCENTRATION_MEASUREMENT_CLUSTER \ - SILABS_PRINTCLUSTER_COPPER_CONCENTRATION_MEASUREMENT_CLUSTER \ - SILABS_PRINTCLUSTER_LEAD_CONCENTRATION_MEASUREMENT_CLUSTER \ - SILABS_PRINTCLUSTER_MANGANESE_CONCENTRATION_MEASUREMENT_CLUSTER \ - SILABS_PRINTCLUSTER_SULFATE_CONCENTRATION_MEASUREMENT_CLUSTER \ - SILABS_PRINTCLUSTER_BROMODICHLOROMETHANE_CONCENTRATION_MEASUREMENT_CLUSTER \ - SILABS_PRINTCLUSTER_BROMOFORM_CONCENTRATION_MEASUREMENT_CLUSTER \ - SILABS_PRINTCLUSTER_CHLORODIBROMOMETHANE_CONCENTRATION_MEASUREMENT_CLUSTER \ - SILABS_PRINTCLUSTER_CHLOROFORM_CONCENTRATION_MEASUREMENT_CLUSTER \ - SILABS_PRINTCLUSTER_SODIUM_CONCENTRATION_MEASUREMENT_CLUSTER \ - SILABS_PRINTCLUSTER_IAS_ZONE_CLUSTER \ - SILABS_PRINTCLUSTER_IAS_ACE_CLUSTER \ - SILABS_PRINTCLUSTER_IAS_WD_CLUSTER \ - SILABS_PRINTCLUSTER_GENERIC_TUNNEL_CLUSTER \ - SILABS_PRINTCLUSTER_BACNET_PROTOCOL_TUNNEL_CLUSTER \ - SILABS_PRINTCLUSTER_11073_PROTOCOL_TUNNEL_CLUSTER \ - SILABS_PRINTCLUSTER_ISO7816_PROTOCOL_TUNNEL_CLUSTER \ - SILABS_PRINTCLUSTER_PRICE_CLUSTER \ - SILABS_PRINTCLUSTER_DEMAND_RESPONSE_LOAD_CONTROL_CLUSTER \ - SILABS_PRINTCLUSTER_SIMPLE_METERING_CLUSTER \ - SILABS_PRINTCLUSTER_MESSAGING_CLUSTER \ - SILABS_PRINTCLUSTER_TUNNELING_CLUSTER \ - SILABS_PRINTCLUSTER_PREPAYMENT_CLUSTER \ - SILABS_PRINTCLUSTER_ENERGY_MANAGEMENT_CLUSTER \ - SILABS_PRINTCLUSTER_CALENDAR_CLUSTER \ - SILABS_PRINTCLUSTER_DEVICE_MANAGEMENT_CLUSTER \ - SILABS_PRINTCLUSTER_EVENTS_CLUSTER \ - SILABS_PRINTCLUSTER_MDU_PAIRING_CLUSTER \ - SILABS_PRINTCLUSTER_SUB_GHZ_CLUSTER \ - SILABS_PRINTCLUSTER_KEY_ESTABLISHMENT_CLUSTER \ - SILABS_PRINTCLUSTER_INFORMATION_CLUSTER \ - SILABS_PRINTCLUSTER_DATA_SHARING_CLUSTER \ - SILABS_PRINTCLUSTER_GAMING_CLUSTER \ - SILABS_PRINTCLUSTER_DATA_RATE_CONTROL_CLUSTER \ - SILABS_PRINTCLUSTER_VOICE_OVER_ZIGBEE_CLUSTER \ - SILABS_PRINTCLUSTER_CHATTING_CLUSTER \ - SILABS_PRINTCLUSTER_PAYMENT_CLUSTER \ - SILABS_PRINTCLUSTER_BILLING_CLUSTER \ - SILABS_PRINTCLUSTER_APPLIANCE_IDENTIFICATION_CLUSTER \ - SILABS_PRINTCLUSTER_METER_IDENTIFICATION_CLUSTER \ - SILABS_PRINTCLUSTER_APPLIANCE_EVENTS_AND_ALERT_CLUSTER \ - SILABS_PRINTCLUSTER_APPLIANCE_STATISTICS_CLUSTER \ - SILABS_PRINTCLUSTER_ELECTRICAL_MEASUREMENT_CLUSTER \ - SILABS_PRINTCLUSTER_DIAGNOSTICS_CLUSTER \ - SILABS_PRINTCLUSTER_ZLL_COMMISSIONING_CLUSTER \ - SILABS_PRINTCLUSTER_SAMPLE_MFG_SPECIFIC_CLUSTER \ - SILABS_PRINTCLUSTER_SAMPLE_MFG_SPECIFIC_CLUSTER_2 \ - SILABS_PRINTCLUSTER_OTA_CONFIGURATION_CLUSTER \ - SILABS_PRINTCLUSTER_MFGLIB_CLUSTER \ - SILABS_PRINTCLUSTER_SL_WWAH_CLUSTER + CHIP_PRINTCLUSTER_BASIC_CLUSTER \ + CHIP_PRINTCLUSTER_POWER_CONFIG_CLUSTER \ + CHIP_PRINTCLUSTER_DEVICE_TEMP_CLUSTER \ + CHIP_PRINTCLUSTER_IDENTIFY_CLUSTER \ + CHIP_PRINTCLUSTER_GROUPS_CLUSTER \ + CHIP_PRINTCLUSTER_SCENES_CLUSTER \ + CHIP_PRINTCLUSTER_ON_OFF_CLUSTER \ + CHIP_PRINTCLUSTER_ON_OFF_SWITCH_CONFIG_CLUSTER \ + CHIP_PRINTCLUSTER_LEVEL_CONTROL_CLUSTER \ + CHIP_PRINTCLUSTER_ALARM_CLUSTER \ + CHIP_PRINTCLUSTER_TIME_CLUSTER \ + CHIP_PRINTCLUSTER_RSSI_LOCATION_CLUSTER \ + CHIP_PRINTCLUSTER_BINARY_INPUT_BASIC_CLUSTER \ + CHIP_PRINTCLUSTER_COMMISSIONING_CLUSTER \ + CHIP_PRINTCLUSTER_PARTITION_CLUSTER \ + CHIP_PRINTCLUSTER_OTA_BOOTLOAD_CLUSTER \ + CHIP_PRINTCLUSTER_POWER_PROFILE_CLUSTER \ + CHIP_PRINTCLUSTER_APPLIANCE_CONTROL_CLUSTER \ + CHIP_PRINTCLUSTER_POLL_CONTROL_CLUSTER \ + CHIP_PRINTCLUSTER_GREEN_POWER_CLUSTER \ + CHIP_PRINTCLUSTER_KEEPALIVE_CLUSTER \ + CHIP_PRINTCLUSTER_SHADE_CONFIG_CLUSTER \ + CHIP_PRINTCLUSTER_DOOR_LOCK_CLUSTER \ + CHIP_PRINTCLUSTER_WINDOW_COVERING_CLUSTER \ + CHIP_PRINTCLUSTER_BARRIER_CONTROL_CLUSTER \ + CHIP_PRINTCLUSTER_PUMP_CONFIG_CONTROL_CLUSTER \ + CHIP_PRINTCLUSTER_THERMOSTAT_CLUSTER \ + CHIP_PRINTCLUSTER_FAN_CONTROL_CLUSTER \ + CHIP_PRINTCLUSTER_DEHUMID_CONTROL_CLUSTER \ + CHIP_PRINTCLUSTER_THERMOSTAT_UI_CONFIG_CLUSTER \ + CHIP_PRINTCLUSTER_COLOR_CONTROL_CLUSTER \ + CHIP_PRINTCLUSTER_BALLAST_CONFIGURATION_CLUSTER \ + CHIP_PRINTCLUSTER_ILLUM_MEASUREMENT_CLUSTER \ + CHIP_PRINTCLUSTER_ILLUM_LEVEL_SENSING_CLUSTER \ + CHIP_PRINTCLUSTER_TEMP_MEASUREMENT_CLUSTER \ + CHIP_PRINTCLUSTER_PRESSURE_MEASUREMENT_CLUSTER \ + CHIP_PRINTCLUSTER_FLOW_MEASUREMENT_CLUSTER \ + CHIP_PRINTCLUSTER_RELATIVE_HUMIDITY_MEASUREMENT_CLUSTER \ + CHIP_PRINTCLUSTER_OCCUPANCY_SENSING_CLUSTER \ + CHIP_PRINTCLUSTER_CARBON_MONOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER \ + CHIP_PRINTCLUSTER_CARBON_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER \ + CHIP_PRINTCLUSTER_ETHYLENE_CONCENTRATION_MEASUREMENT_CLUSTER \ + CHIP_PRINTCLUSTER_ETHYLENE_OXIDE_CONCENTRATION_MEASUREMENT_CLUSTER \ + CHIP_PRINTCLUSTER_HYDROGEN_CONCENTRATION_MEASUREMENT_CLUSTER \ + CHIP_PRINTCLUSTER_HYDROGEN_SULPHIDE_CONCENTRATION_MEASUREMENT_CLUSTER \ + CHIP_PRINTCLUSTER_NITRIC_OXIDE_CONCENTRATION_MEASUREMENT_CLUSTER \ + CHIP_PRINTCLUSTER_NITROGEN_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER \ + CHIP_PRINTCLUSTER_OXYGEN_CONCENTRATION_MEASUREMENT_CLUSTER \ + CHIP_PRINTCLUSTER_OZONE_CONCENTRATION_MEASUREMENT_CLUSTER \ + CHIP_PRINTCLUSTER_SULFUR_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER \ + CHIP_PRINTCLUSTER_DISSOLVED_OXYGEN_CONCENTRATION_MEASUREMENT_CLUSTER \ + CHIP_PRINTCLUSTER_BROMATE_CONCENTRATION_MEASUREMENT_CLUSTER \ + CHIP_PRINTCLUSTER_CHLORAMINES_CONCENTRATION_MEASUREMENT_CLUSTER \ + CHIP_PRINTCLUSTER_CHLORINE_CONCENTRATION_MEASUREMENT_CLUSTER \ + CHIP_PRINTCLUSTER_FECAL_COLIFORM_AND_E_COLI_CONCENTRATION_MEASUREMENT_CLUSTER \ + CHIP_PRINTCLUSTER_FLUORIDE_CONCENTRATION_MEASUREMENT_CLUSTER \ + CHIP_PRINTCLUSTER_HALOACETIC_ACIDS_CONCENTRATION_MEASUREMENT_CLUSTER \ + CHIP_PRINTCLUSTER_TOTAL_TRIHALOMETHANES_CONCENTRATION_MEASUREMENT_CLUSTER \ + CHIP_PRINTCLUSTER_TOTAL_COLIFORM_BACTERIA_CONCENTRATION_MEASUREMENT_CLUSTER \ + CHIP_PRINTCLUSTER_TURBIDITY_CONCENTRATION_MEASUREMENT_CLUSTER \ + CHIP_PRINTCLUSTER_COPPER_CONCENTRATION_MEASUREMENT_CLUSTER \ + CHIP_PRINTCLUSTER_LEAD_CONCENTRATION_MEASUREMENT_CLUSTER \ + CHIP_PRINTCLUSTER_MANGANESE_CONCENTRATION_MEASUREMENT_CLUSTER \ + CHIP_PRINTCLUSTER_SULFATE_CONCENTRATION_MEASUREMENT_CLUSTER \ + CHIP_PRINTCLUSTER_BROMODICHLOROMETHANE_CONCENTRATION_MEASUREMENT_CLUSTER \ + CHIP_PRINTCLUSTER_BROMOFORM_CONCENTRATION_MEASUREMENT_CLUSTER \ + CHIP_PRINTCLUSTER_CHLORODIBROMOMETHANE_CONCENTRATION_MEASUREMENT_CLUSTER \ + CHIP_PRINTCLUSTER_CHLOROFORM_CONCENTRATION_MEASUREMENT_CLUSTER \ + CHIP_PRINTCLUSTER_SODIUM_CONCENTRATION_MEASUREMENT_CLUSTER \ + CHIP_PRINTCLUSTER_IAS_ZONE_CLUSTER \ + CHIP_PRINTCLUSTER_IAS_ACE_CLUSTER \ + CHIP_PRINTCLUSTER_IAS_WD_CLUSTER \ + CHIP_PRINTCLUSTER_GENERIC_TUNNEL_CLUSTER \ + CHIP_PRINTCLUSTER_BACNET_PROTOCOL_TUNNEL_CLUSTER \ + CHIP_PRINTCLUSTER_11073_PROTOCOL_TUNNEL_CLUSTER \ + CHIP_PRINTCLUSTER_ISO7816_PROTOCOL_TUNNEL_CLUSTER \ + CHIP_PRINTCLUSTER_PRICE_CLUSTER \ + CHIP_PRINTCLUSTER_DEMAND_RESPONSE_LOAD_CONTROL_CLUSTER \ + CHIP_PRINTCLUSTER_SIMPLE_METERING_CLUSTER \ + CHIP_PRINTCLUSTER_MESSAGING_CLUSTER \ + CHIP_PRINTCLUSTER_TUNNELING_CLUSTER \ + CHIP_PRINTCLUSTER_PREPAYMENT_CLUSTER \ + CHIP_PRINTCLUSTER_ENERGY_MANAGEMENT_CLUSTER \ + CHIP_PRINTCLUSTER_CALENDAR_CLUSTER \ + CHIP_PRINTCLUSTER_DEVICE_MANAGEMENT_CLUSTER \ + CHIP_PRINTCLUSTER_EVENTS_CLUSTER \ + CHIP_PRINTCLUSTER_MDU_PAIRING_CLUSTER \ + CHIP_PRINTCLUSTER_SUB_GHZ_CLUSTER \ + CHIP_PRINTCLUSTER_KEY_ESTABLISHMENT_CLUSTER \ + CHIP_PRINTCLUSTER_INFORMATION_CLUSTER \ + CHIP_PRINTCLUSTER_DATA_SHARING_CLUSTER \ + CHIP_PRINTCLUSTER_GAMING_CLUSTER \ + CHIP_PRINTCLUSTER_DATA_RATE_CONTROL_CLUSTER \ + CHIP_PRINTCLUSTER_VOICE_OVER_ZIGBEE_CLUSTER \ + CHIP_PRINTCLUSTER_CHATTING_CLUSTER \ + CHIP_PRINTCLUSTER_PAYMENT_CLUSTER \ + CHIP_PRINTCLUSTER_BILLING_CLUSTER \ + CHIP_PRINTCLUSTER_APPLIANCE_IDENTIFICATION_CLUSTER \ + CHIP_PRINTCLUSTER_METER_IDENTIFICATION_CLUSTER \ + CHIP_PRINTCLUSTER_APPLIANCE_EVENTS_AND_ALERT_CLUSTER \ + CHIP_PRINTCLUSTER_APPLIANCE_STATISTICS_CLUSTER \ + CHIP_PRINTCLUSTER_ELECTRICAL_MEASUREMENT_CLUSTER \ + CHIP_PRINTCLUSTER_DIAGNOSTICS_CLUSTER \ + CHIP_PRINTCLUSTER_ZLL_COMMISSIONING_CLUSTER \ + CHIP_PRINTCLUSTER_SAMPLE_MFG_SPECIFIC_CLUSTER \ + CHIP_PRINTCLUSTER_SAMPLE_MFG_SPECIFIC_CLUSTER_2 \ + CHIP_PRINTCLUSTER_OTA_CONFIGURATION_CLUSTER \ + CHIP_PRINTCLUSTER_MFGLIB_CLUSTER \ + CHIP_PRINTCLUSTER_SL_WWAH_CLUSTER #define MAX_CLUSTER_NAME_LENGTH 52 -#endif // SILABS_PRINT_CLUSTER diff --git a/examples/temperature-measurement-app/esp32/main/include/CHIPDeviceManager.h b/examples/temperature-measurement-app/esp32/main/include/CHIPDeviceManager.h index a2575de0498fa1..787ae7600dabbb 100644 --- a/examples/temperature-measurement-app/esp32/main/include/CHIPDeviceManager.h +++ b/examples/temperature-measurement-app/esp32/main/include/CHIPDeviceManager.h @@ -73,7 +73,7 @@ class DLL_EXPORT CHIPDeviceManagerCallbacks * @param size size of the attribute * @param value pointer to the new value */ - virtual void PostAttributeChangeCallback(uint8_t endpoint, EmberAfClusterId clusterId, EmberAfAttributeId attributeId, + virtual void PostAttributeChangeCallback(chip::EndpointId endpoint, chip::ClusterId clusterId, chip::AttributeId attributeId, uint8_t mask, uint16_t manufacturerCode, uint8_t type, uint8_t size, uint8_t * value) {} virtual ~CHIPDeviceManagerCallbacks() {} diff --git a/examples/temperature-measurement-app/esp32/main/include/DeviceCallbacks.h b/examples/temperature-measurement-app/esp32/main/include/DeviceCallbacks.h index 7cd1aa88f610fd..09fec64de37031 100644 --- a/examples/temperature-measurement-app/esp32/main/include/DeviceCallbacks.h +++ b/examples/temperature-measurement-app/esp32/main/include/DeviceCallbacks.h @@ -34,14 +34,14 @@ class DeviceCallbacks : public chip::DeviceManager::CHIPDeviceManagerCallbacks { public: virtual void DeviceEventCallback(const chip::DeviceLayer::ChipDeviceEvent * event, intptr_t arg); - virtual void PostAttributeChangeCallback(uint8_t endpointId, EmberAfClusterId clusterId, EmberAfAttributeId attributeId, + virtual void PostAttributeChangeCallback(chip::EndpointId endpointId, chip::ClusterId clusterId, chip::AttributeId attributeId, uint8_t mask, uint16_t manufacturerCode, uint8_t type, uint8_t size, uint8_t * value); private: void OnInternetConnectivityChange(const chip::DeviceLayer::ChipDeviceEvent * event); void OnSessionEstablished(const chip::DeviceLayer::ChipDeviceEvent * event); - void OnOnOffPostAttributeChangeCallback(uint8_t endpointId, uint16_t attributeId, uint8_t * value); - void OnIdentifyPostAttributeChangeCallback(uint8_t endpointId, uint16_t attributeId, uint8_t * value); + void OnOnOffPostAttributeChangeCallback(chip::EndpointId endpointId, chip::AttributeId attributeId, uint8_t * value); + void OnIdentifyPostAttributeChangeCallback(chip::EndpointId endpointId, chip::AttributeId attributeId, uint8_t * value); }; #endif // DEVICE_CALLBACKS_H diff --git a/examples/temperature-measurement-app/esp32/main/wifi-echo.cpp b/examples/temperature-measurement-app/esp32/main/main.cpp similarity index 65% rename from examples/temperature-measurement-app/esp32/main/wifi-echo.cpp rename to examples/temperature-measurement-app/esp32/main/main.cpp index edae1b792efbcd..25d946d0b7db3e 100644 --- a/examples/temperature-measurement-app/esp32/main/wifi-echo.cpp +++ b/examples/temperature-measurement-app/esp32/main/main.cpp @@ -18,7 +18,7 @@ #include "CHIPDeviceManager.h" #include "DataModelHandler.h" #include "DeviceCallbacks.h" -#include "RendezvousDeviceDelegate.h" +#include "Server.h" #include "esp_heap_caps_init.h" #include "esp_log.h" #include "esp_netif.h" @@ -34,51 +34,15 @@ #include #include -#include -#include -#include #include -#include using namespace ::chip; using namespace ::chip::DeviceManager; using namespace ::chip::DeviceLayer; -extern void startServer(); - -// Used to indicate that an IP address has been added to the QRCode -#define EXAMPLE_VENDOR_TAG_IP 1 - -extern void PairingComplete(SecurePairingSession * pairing); - -const char * TAG = "wifi-echo-demo"; +const char * TAG = "temperature-measurement-app"; static DeviceCallbacks EchoCallbacks; -RendezvousDeviceDelegate * rendezvousDelegate = nullptr; -namespace chip { -namespace DeviceLayer { -namespace Internal { -const uint64_t TestDeviceId = kLocalNodeId; // For chip::DeviceLayer::GetDeviceId -const uint64_t TestFabricId = 0; // For chip::DeviceLayer::GetFabricId -} // namespace Internal -} // namespace DeviceLayer -} // namespace chip - -namespace { - -bool isRendezvousBLE() -{ - return static_cast(CONFIG_RENDEZVOUS_MODE) == RendezvousInformationFlags::kBLE; -} - -bool isRendezvousBypassed() -{ - return static_cast(CONFIG_RENDEZVOUS_MODE) == RendezvousInformationFlags::kNone; -} - -static SecurePairingUsingTestSecret gTestPairing; - -} // namespace extern "C" void app_main() { @@ -120,18 +84,7 @@ extern "C" void app_main() return; } - InitDataModelHandler(); - startServer(); - - if (isRendezvousBLE()) - { - rendezvousDelegate = new RendezvousDeviceDelegate(); - } - else if (isRendezvousBypassed()) - { - ChipLogProgress(Ble, "Rendezvous and Secure Pairing skipped. Using test secret."); - PairingComplete(&gTestPairing); - } + InitServer(); // Run the UI Loop while (true) diff --git a/examples/temperature-measurement-app/esp32/main/temperature-measurement.zap b/examples/temperature-measurement-app/esp32/main/temperature-measurement.zap new file mode 100644 index 00000000000000..f0ee267bf02c1d --- /dev/null +++ b/examples/temperature-measurement-app/esp32/main/temperature-measurement.zap @@ -0,0 +1,1171 @@ +{ + "writeTime": "Tue Nov 17 2020 19:19:54 GMT+0100 (Central European Standard Time)", + "featureLevel": 4, + "creator": "zap", + "keyValuePairs": [ + { + "key": "commandDiscovery", + "value": "1" + }, + { + "key": "defaultResponsePolicy", + "value": "always" + }, + { + "key": "manufacturerCodes", + "value": "0x1002" + } + ], + "package": [ + { + "pathRelativity": "relativeToZap", + "path": "../../../../../third_party/zap/repo/zcl-builtin/silabs/zcl.json", + "version": "ZCL Test Data", + "type": "zcl-properties" + }, + { + "pathRelativity": "relativeToZap", + "path": "../../../../../src/app/zap-templates/chip-templates.json", + "version": "chip-v1", + "type": "gen-templates-json" + } + ], + "endpointTypes": [ + { + "name": "Anonymous Endpoint Type", + "deviceTypeName": "CBA-tempsensor", + "deviceTypeCode": "0x0302", + "deviceTypeProfileId": "0x105", + "clusters": [ + { + "name": "Basic", + "code": 0, + "mfgCode": null, + "define": "BASIC_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [ + { + "name": "ResetToFactoryDefaults", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + } + ], + "attributes": [ + { + "name": "cluster revision", + "code": 65533, + "mfgCode": null, + "side": "client", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "3", + "reportable": 0, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Basic", + "code": 0, + "mfgCode": null, + "define": "BASIC_CLUSTER", + "side": "server", + "enabled": 1, + "attributes": [ + { + "name": "cluster revision", + "code": 65533, + "mfgCode": null, + "side": "server", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "3", + "reportable": 0, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ZCL version", + "code": 0, + "mfgCode": null, + "side": "server", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x08", + "reportable": 0, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "power source", + "code": 7, + "mfgCode": null, + "side": "server", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 0, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ], + "commands": [] + }, + { + "name": "Power Configuration", + "code": 1, + "mfgCode": null, + "define": "POWER_CONFIG_CLUSTER", + "side": "client", + "enabled": 0, + "attributes": [ + { + "name": "cluster revision", + "code": 65533, + "mfgCode": null, + "side": "client", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "2", + "reportable": 0, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ], + "commands": [] + }, + { + "name": "Power Configuration", + "code": 1, + "mfgCode": null, + "define": "POWER_CONFIG_CLUSTER", + "side": "server", + "enabled": 0, + "attributes": [ + { + "name": "cluster revision", + "code": 65533, + "mfgCode": null, + "side": "server", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "2", + "reportable": 0, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "battery percentage remaining", + "code": 33, + "mfgCode": null, + "side": "server", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "battery alarm state", + "code": 62, + "mfgCode": null, + "side": "server", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00000000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ], + "commands": [] + }, + { + "name": "Device Temperature Configuration", + "code": 2, + "mfgCode": null, + "define": "DEVICE_TEMP_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [], + "attributes": [ + { + "name": "cluster revision", + "code": 65533, + "mfgCode": null, + "side": "client", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0001", + "reportable": 0, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Device Temperature Configuration", + "code": 2, + "mfgCode": null, + "define": "DEVICE_TEMP_CLUSTER", + "side": "server", + "enabled": 0, + "commands": [], + "attributes": [ + { + "name": "cluster revision", + "code": 65533, + "mfgCode": null, + "side": "server", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0001", + "reportable": 0, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "current temperature", + "code": 0, + "mfgCode": null, + "side": "server", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 0, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Identify", + "code": 3, + "mfgCode": null, + "define": "IDENTIFY_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [ + { + "name": "Identify", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "IdentifyQuery", + "code": 1, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + } + ], + "attributes": [ + { + "name": "cluster revision", + "code": 65533, + "mfgCode": null, + "side": "client", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "2", + "reportable": 0, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Identify", + "code": 3, + "mfgCode": null, + "define": "IDENTIFY_CLUSTER", + "side": "server", + "enabled": 0, + "commands": [ + { + "name": "IdentifyQueryResponse", + "code": 0, + "mfgCode": null, + "source": "server", + "incoming": 0, + "outgoing": 1 + } + ], + "attributes": [ + { + "name": "cluster revision", + "code": 65533, + "mfgCode": null, + "side": "server", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "2", + "reportable": 0, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "identify time", + "code": 0, + "mfgCode": null, + "side": "server", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 0, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Groups", + "code": 4, + "mfgCode": null, + "define": "GROUPS_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [ + { + "name": "AddGroup", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 0, + "outgoing": 1 + }, + { + "name": "ViewGroup", + "code": 1, + "mfgCode": null, + "source": "client", + "incoming": 0, + "outgoing": 1 + }, + { + "name": "GetGroupMembership", + "code": 2, + "mfgCode": null, + "source": "client", + "incoming": 0, + "outgoing": 1 + }, + { + "name": "RemoveGroup", + "code": 3, + "mfgCode": null, + "source": "client", + "incoming": 0, + "outgoing": 1 + }, + { + "name": "RemoveAllGroups", + "code": 4, + "mfgCode": null, + "source": "client", + "incoming": 0, + "outgoing": 1 + }, + { + "name": "AddGroupIfIdentifying", + "code": 5, + "mfgCode": null, + "source": "client", + "incoming": 0, + "outgoing": 1 + } + ], + "attributes": [ + { + "name": "cluster revision", + "code": 65533, + "mfgCode": null, + "side": "client", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "3", + "reportable": 0, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Groups", + "code": 4, + "mfgCode": null, + "define": "GROUPS_CLUSTER", + "side": "server", + "enabled": 0, + "commands": [ + { + "name": "AddGroupResponse", + "code": 0, + "mfgCode": null, + "source": "server", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "ViewGroupResponse", + "code": 1, + "mfgCode": null, + "source": "server", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "GetGroupMembershipResponse", + "code": 2, + "mfgCode": null, + "source": "server", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "RemoveGroupResponse", + "code": 3, + "mfgCode": null, + "source": "server", + "incoming": 1, + "outgoing": 0 + } + ], + "attributes": [ + { + "name": "cluster revision", + "code": 65533, + "mfgCode": null, + "side": "server", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "3", + "reportable": 0, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "name support", + "code": 0, + "mfgCode": null, + "side": "server", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 0, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Alarms", + "code": 9, + "mfgCode": null, + "define": "ALARM_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [ + { + "name": "ResetAlarm", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "ResetAllAlarms", + "code": 1, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + } + ], + "attributes": [ + { + "name": "cluster revision", + "code": 65533, + "mfgCode": null, + "side": "client", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0001", + "reportable": 0, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Alarms", + "code": 9, + "mfgCode": null, + "define": "ALARM_CLUSTER", + "side": "server", + "enabled": 0, + "commands": [ + { + "name": "Alarm", + "code": 0, + "mfgCode": null, + "source": "server", + "incoming": 0, + "outgoing": 1 + } + ], + "attributes": [ + { + "name": "cluster revision", + "code": 65533, + "mfgCode": null, + "side": "server", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0001", + "reportable": 0, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Commissioning", + "code": 21, + "mfgCode": null, + "define": "COMMISSIONING_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [ + { + "name": "RestartDevice", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "ResetStartupParameters", + "code": 3, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + } + ], + "attributes": [ + { + "name": "cluster revision", + "code": 65533, + "mfgCode": null, + "side": "client", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "2", + "reportable": 0, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Commissioning", + "code": 21, + "mfgCode": null, + "define": "COMMISSIONING_CLUSTER", + "side": "server", + "enabled": 0, + "commands": [ + { + "name": "RestartDeviceResponse", + "code": 0, + "mfgCode": null, + "source": "server", + "incoming": 0, + "outgoing": 1 + }, + { + "name": "SaveStartupParametersResponse", + "code": 1, + "mfgCode": null, + "source": "server", + "incoming": 0, + "outgoing": 1 + }, + { + "name": "RestoreStartupParametersResponse", + "code": 2, + "mfgCode": null, + "source": "server", + "incoming": 0, + "outgoing": 1 + }, + { + "name": "ResetStartupParametersResponse", + "code": 3, + "mfgCode": null, + "source": "server", + "incoming": 0, + "outgoing": 1 + } + ], + "attributes": [ + { + "name": "cluster revision", + "code": 65533, + "mfgCode": null, + "side": "server", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "2", + "reportable": 0, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "short address", + "code": 0, + "mfgCode": null, + "side": "server", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0xFFFF", + "reportable": 0, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "extended pan id", + "code": 1, + "mfgCode": null, + "side": "server", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0xFFFFFFFFFFFFFFFF", + "reportable": 0, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "pan id", + "code": 2, + "mfgCode": null, + "side": "server", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0xFFFF", + "reportable": 0, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "channel mask", + "code": 3, + "mfgCode": null, + "side": "server", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x07FFF800", + "reportable": 0, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "protocol version", + "code": 4, + "mfgCode": null, + "side": "server", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x02", + "reportable": 0, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "stack profile", + "code": 5, + "mfgCode": null, + "side": "server", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x02", + "reportable": 0, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "startup control", + "code": 6, + "mfgCode": null, + "side": "server", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x03", + "reportable": 0, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "trust center address", + "code": 16, + "mfgCode": null, + "side": "server", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000000000000000", + "reportable": 0, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "network key", + "code": 18, + "mfgCode": null, + "side": "server", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00000000000000000000000000000000", + "reportable": 0, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "use insecure join", + "code": 19, + "mfgCode": null, + "side": "server", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x01", + "reportable": 0, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "preconfigured link key", + "code": 20, + "mfgCode": null, + "side": "server", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00000000000000000000000000000000", + "reportable": 0, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "network key sequence number", + "code": 21, + "mfgCode": null, + "side": "server", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 0, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "network key type", + "code": 22, + "mfgCode": null, + "side": "server", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x05", + "reportable": 0, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "network manager address", + "code": 23, + "mfgCode": null, + "side": "server", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 0, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "scan attempts", + "code": 32, + "mfgCode": null, + "side": "server", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x05", + "reportable": 0, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "time between scans", + "code": 33, + "mfgCode": null, + "side": "server", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0064", + "reportable": 0, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "rejoin interval", + "code": 34, + "mfgCode": null, + "side": "server", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x003C", + "reportable": 0, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "max rejoin interval", + "code": 35, + "mfgCode": null, + "side": "server", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0E10", + "reportable": 0, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "indirect poll rate", + "code": 48, + "mfgCode": null, + "side": "server", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 0, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "parent retry threshold", + "code": 49, + "mfgCode": null, + "side": "server", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 0, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "concentrator flag", + "code": 64, + "mfgCode": null, + "side": "server", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 0, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "concentrator radius", + "code": 65, + "mfgCode": null, + "side": "server", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0F", + "reportable": 0, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "concentrator discovery time", + "code": 66, + "mfgCode": null, + "side": "server", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 0, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Temperature Measurement", + "code": 1026, + "mfgCode": null, + "define": "TEMP_MEASUREMENT_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [], + "attributes": [ + { + "name": "cluster revision", + "code": 65533, + "mfgCode": null, + "side": "client", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "3", + "reportable": 0, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Temperature Measurement", + "code": 1026, + "mfgCode": null, + "define": "TEMP_MEASUREMENT_CLUSTER", + "side": "server", + "enabled": 1, + "commands": [], + "attributes": [ + { + "name": "cluster revision", + "code": 65533, + "mfgCode": null, + "side": "server", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "3", + "reportable": 0, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "measured value", + "code": 0, + "mfgCode": null, + "side": "server", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x8000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "min measured value", + "code": 1, + "mfgCode": null, + "side": "server", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x8000", + "reportable": 0, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "max measured value", + "code": 2, + "mfgCode": null, + "side": "server", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x8000", + "reportable": 0, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "tolerance", + "code": 3, + "mfgCode": null, + "side": "server", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + } + ] + } + ], + "endpoints": [ + { + "endpointTypeName": "Anonymous Endpoint Type", + "endpointTypeIndex": 0, + "profileId": "0x105", + "endpointId": 1, + "networkId": 1 + } + ] +} \ No newline at end of file diff --git a/examples/temperature-measurement-app/esp32/sdkconfig.defaults b/examples/temperature-measurement-app/esp32/sdkconfig.defaults index 77969f49798d47..200cb42be73e04 100644 --- a/examples/temperature-measurement-app/esp32/sdkconfig.defaults +++ b/examples/temperature-measurement-app/esp32/sdkconfig.defaults @@ -29,6 +29,7 @@ CONFIG_ESPTOOLPY_MONITOR_BAUD=115200 #enable BT CONFIG_BT_ENABLED=y +CONFIG_BT_NIMBLE_ENABLED=y #enable lwip ipv6 autoconfig CONFIG_LWIP_IPV6_AUTOCONFIG=y diff --git a/examples/wifi-echo/server/esp32/main/EchoServer.cpp b/examples/wifi-echo/server/esp32/main/EchoServer.cpp deleted file mode 100644 index 24c61422054fab..00000000000000 --- a/examples/wifi-echo/server/esp32/main/EchoServer.cpp +++ /dev/null @@ -1,261 +0,0 @@ -/* - * - * 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. - */ - -#include "esp_event.h" -#include "esp_log.h" -#include "esp_system.h" -#include "esp_wifi.h" -#include "freertos/FreeRTOS.h" -#include "freertos/task.h" -#include "nvs_flash.h" - -#include -#include -#include -#include -#include - -#include "lwip/err.h" -#include "lwip/sockets.h" -#include "lwip/sys.h" -#include - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include "DataModelHandler.h" -#include "Globals.h" -#include "LEDWidget.h" - -static const char * TAG = "echo_server"; - -using namespace ::chip; -using namespace ::chip::Inet; -using namespace ::chip::Transport; - -namespace { - -/** - * @brief implements something like "od -c", changes an arbitrary byte string - * into a single-line of ascii. Destroys any byte-wise encoding that - * might be present, e.g. utf-8. - * - * @param bytes potentially unprintable buffer - * @param bytes_len length of bytes - * @param out where to put the printable string - * @param out_len length of out - * @return size_t required size of output buffer, including null-termination - */ -static size_t odc(const uint8_t * bytes, size_t bytes_len, char * out, size_t out_len) -{ - size_t required = 1; // always need null termination - memset(out, 0, out_len); - // count and print - for (; bytes_len > 0; bytes_len--, bytes++) - { - uint8_t byte = *bytes; - - if ((byte >= '\t' && byte <= '\r') || byte == '\\') - { - static const char * kCodes = "tnvfr"; - char code = (byte == '\\') ? '\\' : kCodes[byte - '\t']; - required += 2; - if (out_len > 2) - { - *out++ = '\\'; - *out++ = code; - out_len -= 2; - } - } - else if (byte >= ' ' && byte <= '~') - { - required += 1; - if (out_len > 1) - { - *out++ = byte; - out_len--; - } - } - else - { - static const size_t kBinCodeLen = sizeof("\\xFF") - 1; - static const char * kCodes = "0123456789ABCDEF"; - - required += kBinCodeLen; - if (out_len > kBinCodeLen) - { - *out++ = '\\'; - *out++ = 'x'; - *out++ = kCodes[(byte & 0xf0) >> 4]; - *out++ = kCodes[byte & 0xf]; - out_len -= kBinCodeLen; - } - } - } - - return required; -} - -class EchoServerCallback : public SecureSessionMgrDelegate -{ -public: - void OnMessageReceived(const PacketHeader & header, const PayloadHeader & payloadHeader, Transport::PeerConnectionState * state, - System::PacketBuffer * buffer, SecureSessionMgrBase * mgr) override - { - CHIP_ERROR err; - const size_t data_len = buffer->DataLength(); - - // as soon as a client connects, assume it is connected - VerifyOrExit(mgr != NULL && buffer != NULL, ESP_LOGE(TAG, "Received data but couldn't process it...")); - VerifyOrExit(state->GetPeerNodeId() != kUndefinedNodeId, ESP_LOGE(TAG, "Unknown source for received message")); - - { - char src_addr[Transport::PeerAddress::kMaxToStringSize]; - - state->GetPeerAddress().ToString(src_addr, sizeof(src_addr)); - - ESP_LOGI(TAG, "Packet received from %s: %zu bytes", src_addr, static_cast(data_len)); - } - - // FIXME: Long-term we shouldn't be guessing what sort of message this is - // based on the message bytes. We're doing this for now to support both - // data model messages and text echo messages, but in the long term we - // should either do echo via a data model command or do echo on a separate - // port from data model processing. - if (ContentMayBeADataModelMessage(buffer)) - { - HandleDataModelMessage(header, buffer, mgr); - buffer = NULL; - } - else - { - char logmsg[512]; - - odc(buffer->Start(), data_len, logmsg, sizeof(logmsg)); - - ESP_LOGI(TAG, "Client sent: %s", logmsg); - - // Attempt to echo back - err = mgr->SendMessage(header.GetSourceNodeId().Value(), buffer); - buffer = NULL; - if (err != CHIP_NO_ERROR) - { - ESP_LOGE(TAG, "Unable to echo back to client: %s", ErrorStr(err)); - } - else - { - ESP_LOGI(TAG, "Echo sent"); - } - } - - exit: - - // SendTo calls Free on the buffer without an AddRef, if SendTo was not called, free the buffer. - if (buffer != NULL) - { - System::PacketBuffer::Free(buffer); - } - } - - void OnReceiveError(CHIP_ERROR error, const Transport::PeerAddress & source, SecureSessionMgrBase * mgr) override - { - ESP_LOGE(TAG, "ERROR: %s\n Got UDP error", ErrorStr(error)); - statusLED1.BlinkOnError(); - } - - void OnNewConnection(Transport::PeerConnectionState * state, SecureSessionMgrBase * mgr) override - { - ESP_LOGI(TAG, "Received a new connection."); - } - -private: - /** - * A data model message has nonzero length and always has a first byte whose - * value is one of: 0x00, 0x01, 0x02, 0x03. See chipZclEncodeZclHeader for the - * construction of the message and in particular the first byte. - * - * Echo messages should generally not have a first byte with those values, so we - * can use that to try to distinguish between the two. - */ - bool ContentMayBeADataModelMessage(System::PacketBuffer * buffer) - { - const size_t data_len = buffer->DataLength(); - const uint8_t * data = buffer->Start(); - bool maybeDataModelMessage = true; - - // Has to have nonzero length. - VerifyOrExit(data_len > 0, maybeDataModelMessage = false); - - // Has to have a valid first byte value. - VerifyOrExit(data[0] < 0x04, maybeDataModelMessage = false); - - exit: - return maybeDataModelMessage; - } -}; - -EchoServerCallback gCallbacks; - -SecureSessionMgr - sessions; - -} // namespace - -namespace chip { -SecureSessionMgrBase & SessionManager() -{ - return sessions; -} -} // namespace chip - -void PairingComplete(SecurePairingSession * pairing) -{ - Optional peer(Transport::Type::kUndefined); - sessions.NewPairing(peer, pairing); -} - -// The echo server assumes the platform's networking has been setup already -void startServer() -{ - CHIP_ERROR err = CHIP_NO_ERROR; - err = sessions.Init(kLocalNodeId, &DeviceLayer::SystemLayer, - UdpListenParameters(&DeviceLayer::InetLayer).SetAddressType(kIPAddressType_IPv6).SetInterfaceId(NULL), - UdpListenParameters(&DeviceLayer::InetLayer).SetAddressType(kIPAddressType_IPv4)); - SuccessOrExit(err); - - sessions.SetDelegate(&gCallbacks); - -exit: - if (err != CHIP_NO_ERROR) - { - ESP_LOGE(TAG, "ERROR setting up transport: %s", ErrorStr(err)); - } - else - { - ESP_LOGI(TAG, "Echo Server Listening..."); - } -} diff --git a/examples/wifi-echo/server/esp32/main/RendezvousDeviceDelegate.cpp b/examples/wifi-echo/server/esp32/main/RendezvousDeviceDelegate.cpp deleted file mode 100644 index 5060b57595c12d..00000000000000 --- a/examples/wifi-echo/server/esp32/main/RendezvousDeviceDelegate.cpp +++ /dev/null @@ -1,82 +0,0 @@ -/* - * - * 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. - */ - -#include "RendezvousDeviceDelegate.h" - -#include "BluetoothWidget.h" -#include "Globals.h" -#include "esp_log.h" -#include -#include -#include -#include -#include - -using namespace ::chip; -using namespace ::chip::Inet; -using namespace ::chip::System; - -extern void PairingComplete(SecurePairingSession * pairing); - -static const char * TAG = "rendezvous-devicedelegate"; - -RendezvousDeviceDelegate::RendezvousDeviceDelegate() -{ - CHIP_ERROR err = CHIP_NO_ERROR; - RendezvousParameters params; - - uint32_t setupPINCode; - err = DeviceLayer::ConfigurationMgr().GetSetupPinCode(setupPINCode); - SuccessOrExit(err); - - params.SetSetupPINCode(setupPINCode).SetLocalNodeId(kLocalNodeId).SetBleLayer(DeviceLayer::ConnectivityMgr().GetBleLayer()); - - mRendezvousSession = chip::Platform::New(this); - err = mRendezvousSession->Init(params); - -exit: - if (err != CHIP_NO_ERROR) - { - ESP_LOGE(TAG, "RendezvousDeviceDelegate Init failure: %s", ErrorStr(err)); - } -} - -void RendezvousDeviceDelegate::OnRendezvousStatusUpdate(RendezvousSessionDelegate::Status status, CHIP_ERROR err) -{ - if (err != CHIP_NO_ERROR) - { - ESP_LOGE(TAG, "OnRendezvousStatusUpdate: %s, status %d", ErrorStr(err), status); - } - - switch (status) - { - case RendezvousSessionDelegate::SecurePairingSuccess: - ESP_LOGI(TAG, "Device completed SPAKE2+ handshake\n"); - PairingComplete(&mRendezvousSession->GetPairingSession()); - bluetoothLED.Set(true); - break; - - case RendezvousSessionDelegate::NetworkProvisioningSuccess: - - ESP_LOGI(TAG, "Device was assigned an ip address\n"); - bluetoothLED.Set(false); - break; - - default: - break; - }; -} diff --git a/examples/wifi-echo/server/esp32/main/gen/af-structs.h b/examples/wifi-echo/server/esp32/main/gen/af-structs.h deleted file mode 100644 index 8009281c7692c6..00000000000000 --- a/examples/wifi-echo/server/esp32/main/gen/af-structs.h +++ /dev/null @@ -1,458 +0,0 @@ -/** - * - * 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 SILABS_EMBER_AF_STRUCTS -#define SILABS_EMBER_AF_STRUCTS - -// Generated structs from the metadata -// Struct for IasAceZoneStatusResult -typedef struct _IasAceZoneStatusResult -{ - uint8_t zoneId; - uint16_t zoneStatus; -} IasAceZoneStatusResult; - -// Struct for ReadAttributeStatusRecord -typedef struct _ReadAttributeStatusRecord -{ - uint16_t attributeId; - uint8_t status; - uint8_t attributeType; - uint8_t * attributeLocation; -} ReadAttributeStatusRecord; - -// Struct for WriteAttributeRecord -typedef struct _WriteAttributeRecord -{ - uint16_t attributeId; - uint8_t attributeType; - uint8_t * attributeLocation; -} WriteAttributeRecord; - -// Struct for WriteAttributeStatusRecord -typedef struct _WriteAttributeStatusRecord -{ - uint8_t status; - uint16_t attributeId; -} WriteAttributeStatusRecord; - -// Struct for ConfigureReportingRecord -typedef struct _ConfigureReportingRecord -{ - uint8_t direction; - uint16_t attributeId; - uint8_t attributeType; - uint16_t minimumReportingInterval; - uint16_t maximumReportingInterval; - uint8_t * reportableChangeLocation; - uint16_t timeoutPeriod; -} ConfigureReportingRecord; - -// Struct for ConfigureReportingStatusRecord -typedef struct _ConfigureReportingStatusRecord -{ - uint8_t status; - uint8_t direction; - uint16_t attributeId; -} ConfigureReportingStatusRecord; - -// Struct for ReadReportingConfigurationRecord -typedef struct _ReadReportingConfigurationRecord -{ - uint8_t status; - uint8_t direction; - uint16_t attributeId; - uint8_t attributeType; - uint16_t minimumReportingInterval; - uint16_t maximumReportingInterval; - uint8_t * reportableChangeLocation; - uint16_t timeoutPeriod; -} ReadReportingConfigurationRecord; - -// Struct for ReadReportingConfigurationAttributeRecord -typedef struct _ReadReportingConfigurationAttributeRecord -{ - uint8_t direction; - uint16_t attributeId; -} ReadReportingConfigurationAttributeRecord; - -// Struct for ReportAttributeRecord -typedef struct _ReportAttributeRecord -{ - uint16_t attributeId; - uint8_t attributeType; - uint8_t * attributeLocation; -} ReportAttributeRecord; - -// Struct for DiscoverAttributesInfoRecord -typedef struct _DiscoverAttributesInfoRecord -{ - uint16_t attributeId; - uint8_t attributeType; -} DiscoverAttributesInfoRecord; - -// Struct for ExtendedDiscoverAttributesInfoRecord -typedef struct _ExtendedDiscoverAttributesInfoRecord -{ - uint16_t attributeId; - uint8_t attributeType; - uint8_t attributeAccessControl; -} ExtendedDiscoverAttributesInfoRecord; - -// Struct for ReadStructuredAttributeRecord -typedef struct _ReadStructuredAttributeRecord -{ - uint16_t attributeId; - uint8_t indicator; - uint16_t indicies; -} ReadStructuredAttributeRecord; - -// Struct for WriteStructuredAttributeRecord -typedef struct _WriteStructuredAttributeRecord -{ - uint16_t attributeId; - uint8_t indicator; - uint16_t indicies; - uint8_t attributeType; - uint8_t * attributeLocation; -} WriteStructuredAttributeRecord; - -// Struct for WriteStructuredAttributeStatusRecord -typedef struct _WriteStructuredAttributeStatusRecord -{ - uint8_t status; - uint16_t attributeId; - uint8_t indicator; - uint16_t indicies; -} WriteStructuredAttributeStatusRecord; - -// Struct for SceneExtensionAttributeInfo -typedef struct _SceneExtensionAttributeInfo -{ - uint8_t attributeType; - uint8_t * attributeLocation; -} SceneExtensionAttributeInfo; - -// Struct for SceneExtensionFieldSet -typedef struct _SceneExtensionFieldSet -{ - uint16_t clusterId; - uint8_t length; - uint8_t value; -} SceneExtensionFieldSet; - -// Struct for BlockThreshold -typedef struct _BlockThreshold -{ - uint8_t blockThreshold; - uint8_t priceControl; - uint32_t blockPeriodStartTime; - uint32_t blockPeriodDurationMinutes; - uint8_t fuelType; - uint32_t standingCharge; -} BlockThreshold; - -// Struct for Notification -typedef struct _Notification -{ - uint16_t contentId; - uint8_t statusFeedback; -} Notification; - -// Struct for NeighborInfo -typedef struct _NeighborInfo -{ - uint8_t * neighbor; - int16_t x; - int16_t y; - int16_t z; - int8_t rssi; - uint8_t numberRssiMeasurements; -} NeighborInfo; - -// Struct for ChatParticipant -typedef struct _ChatParticipant -{ - uint16_t uid; - uint8_t * nickname; -} ChatParticipant; - -// Struct for ChatRoom -typedef struct _ChatRoom -{ - uint16_t cid; - uint8_t * name; -} ChatRoom; - -// Struct for NodeInformation -typedef struct _NodeInformation -{ - uint16_t uid; - uint16_t address; - uint8_t endpoint; - uint8_t * nickname; -} NodeInformation; - -// Struct for ScheduledPhase -typedef struct _ScheduledPhase -{ - uint8_t energyPhaseId; - uint16_t scheduledTime; -} ScheduledPhase; - -// Struct for TransferredPhase -typedef struct _TransferredPhase -{ - uint8_t energyPhaseId; - uint8_t macroPhaseId; - uint16_t expectedDuration; - uint16_t peakPower; - uint16_t energy; - uint16_t maxActivationDelay; -} TransferredPhase; - -// Struct for PowerProfileRecord -typedef struct _PowerProfileRecord -{ - uint8_t powerProfileId; - uint8_t energyPhaseId; - uint8_t powerProfileRemoteControl; - uint8_t powerProfileState; -} PowerProfileRecord; - -// Struct for PriceMatrixSubPayload -typedef struct _PriceMatrixSubPayload -{ - uint8_t tierBlockId; - uint32_t price; -} PriceMatrixSubPayload; - -// Struct for BlockThresholdSubPayload -typedef struct _BlockThresholdSubPayload -{ - uint8_t tierNumberOfBlockThresholds; - uint8_t * blockThreshold; -} BlockThresholdSubPayload; - -// Struct for TierLabelsPayload -typedef struct _TierLabelsPayload -{ - uint8_t tierId; - uint8_t * tierLabel; -} TierLabelsPayload; - -// Void typedef for Signature which is empty. -// this will result in all the references to the data being as uint8_t* -typedef uint8_t Signature; - -// Struct for SnapshotResponsePayload -typedef struct _SnapshotResponsePayload -{ - uint8_t snapshotScheduleId; - uint8_t snapshotScheduleConfirmation; -} SnapshotResponsePayload; - -// Struct for SnapshotSchedulePayload -typedef struct _SnapshotSchedulePayload -{ - uint8_t snapshotScheduleId; - uint32_t snapshotStartTime; - uint32_t snapshotSchedule; - uint8_t snapshotPayloadType; - uint32_t snapshotCause; -} SnapshotSchedulePayload; - -// Struct for Protocol -typedef struct _Protocol -{ - uint16_t manufacturerCode; - uint8_t protocolId; -} Protocol; - -// Struct for TopUpPayload -typedef struct _TopUpPayload -{ - uint8_t * topUpCode; - int32_t topUpAmount; - uint32_t topUpTime; -} TopUpPayload; - -// Struct for DebtPayload -typedef struct _DebtPayload -{ - uint32_t collectionTime; - uint32_t amountCollected; - uint8_t debtType; - uint32_t outstandingDebt; -} DebtPayload; - -// Struct for ScheduleEntry -typedef struct _ScheduleEntry -{ - uint16_t startTime; - uint8_t activePriceTierOrFriendlyCreditEnable; -} ScheduleEntry; - -// Struct for ScheduleEntryRateSwitchTimes -typedef struct _ScheduleEntryRateSwitchTimes -{ - uint16_t startTime; - uint8_t priceTier; -} ScheduleEntryRateSwitchTimes; - -// Struct for ScheduleEntryFriendlyCreditSwitchTimes -typedef struct _ScheduleEntryFriendlyCreditSwitchTimes -{ - uint16_t startTime; - uint8_t friendlyCreditEnable; -} ScheduleEntryFriendlyCreditSwitchTimes; - -// Struct for ScheduleEntryAuxilliaryLoadSwitchTimes -typedef struct _ScheduleEntryAuxilliaryLoadSwitchTimes -{ - uint16_t startTime; - uint8_t auxiliaryLoadSwitchState; -} ScheduleEntryAuxilliaryLoadSwitchTimes; - -// Struct for SeasonEntry -typedef struct _SeasonEntry -{ - uint32_t seasonStartDate; - uint8_t weekIdRef; -} SeasonEntry; - -// Struct for SpecialDay -typedef struct _SpecialDay -{ - uint32_t specialDayDate; - uint8_t dayIdRef; -} SpecialDay; - -// Struct for EventConfigurationPayload -typedef struct _EventConfigurationPayload -{ - uint16_t eventId; - uint8_t eventConfiguration; -} EventConfigurationPayload; - -// Struct for EventLogPayload -typedef struct _EventLogPayload -{ - uint8_t logId; - uint16_t eventId; - uint32_t eventTime; - uint8_t * eventData; -} EventLogPayload; - -// Void typedef for Identity which is empty. -// this will result in all the references to the data being as uint8_t* -typedef uint8_t Identity; - -// Void typedef for EphemeralData which is empty. -// this will result in all the references to the data being as uint8_t* -typedef uint8_t EphemeralData; - -// Void typedef for Smac which is empty. -// this will result in all the references to the data being as uint8_t* -typedef uint8_t Smac; - -// Struct for DeviceInformationRecord -typedef struct _DeviceInformationRecord -{ - uint8_t * ieeeAddress; - uint8_t endpointId; - uint16_t profileId; - uint16_t deviceId; - uint8_t version; - uint8_t groupIdCount; - uint8_t sort; -} DeviceInformationRecord; - -// Struct for GroupInformationRecord -typedef struct _GroupInformationRecord -{ - uint16_t groupId; - uint8_t groupType; -} GroupInformationRecord; - -// Struct for EndpointInformationRecord -typedef struct _EndpointInformationRecord -{ - uint16_t networkAddress; - uint8_t endpointId; - uint16_t profileId; - uint16_t deviceId; - uint8_t version; -} EndpointInformationRecord; - -// Struct for GpTranslationTableUpdateTranslation -typedef struct _GpTranslationTableUpdateTranslation -{ - uint8_t index; - uint8_t gpdCommandId; - uint8_t endpoint; - uint16_t profile; - uint16_t cluster; - uint8_t zigbeeCommandId; - uint8_t * zigbeeCommandPayload; - uint8_t * additionalInfoBlock; -} GpTranslationTableUpdateTranslation; - -// Struct for GpPairingConfigurationGroupList -typedef struct _GpPairingConfigurationGroupList -{ - uint16_t SinkGroup; - uint16_t Alias; -} GpPairingConfigurationGroupList; - -// Struct for WwahBeaconSurvey -typedef struct _WwahBeaconSurvey -{ - uint16_t deviceShort; - uint8_t rssi; - uint8_t classificationMask; -} WwahBeaconSurvey; - -// Struct for WwahClusterStatusToUseTC -typedef struct _WwahClusterStatusToUseTC -{ - uint16_t clusterId; - uint8_t status; -} WwahClusterStatusToUseTC; - -#endif // SILABS_EMBER_AF_STRUCTS diff --git a/examples/wifi-echo/server/esp32/main/gen/att-storage.h b/examples/wifi-echo/server/esp32/main/gen/att-storage.h deleted file mode 100644 index 40a1a0088b4872..00000000000000 --- a/examples/wifi-echo/server/esp32/main/gen/att-storage.h +++ /dev/null @@ -1,87 +0,0 @@ -/** - * - * 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 SILABS_ATTRIBUTE_STORAGE_GEN -#define SILABS_ATTRIBUTE_STORAGE_GEN - -// Attribute masks modify how attributes are used by the framework -// Attribute that has this mask is NOT read-only -#define ATTRIBUTE_MASK_WRITABLE (0x01) -// Attribute that has this mask is saved to a token -#define ATTRIBUTE_MASK_TOKENIZE (0x02) -// Attribute that has this mask has a min/max values -#define ATTRIBUTE_MASK_MIN_MAX (0x04) -// Manufacturer specific attribute -#define ATTRIBUTE_MASK_MANUFACTURER_SPECIFIC (0x08) -// Attribute deferred to external storage -#define ATTRIBUTE_MASK_EXTERNAL_STORAGE (0x10) -// Attribute is singleton -#define ATTRIBUTE_MASK_SINGLETON (0x20) -// Attribute is a client attribute -#define ATTRIBUTE_MASK_CLIENT (0x40) - -// Cluster masks modify how clusters are used by the framework -// Does this cluster have init function? -#define CLUSTER_MASK_INIT_FUNCTION (0x01) -// Does this cluster have attribute changed function? -#define CLUSTER_MASK_ATTRIBUTE_CHANGED_FUNCTION (0x02) -// Does this cluster have default response function? -#define CLUSTER_MASK_DEFAULT_RESPONSE_FUNCTION (0x04) -// Does this cluster have message sent function? -#define CLUSTER_MASK_MESSAGE_SENT_FUNCTION (0x08) -// Does this cluster have manufacturer specific attribute changed funciton? -#define CLUSTER_MASK_MANUFACTURER_SPECIFIC_ATTRIBUTE_CHANGED_FUNCTION (0x10) -// Does this cluster have pre-attribute changed function? -#define CLUSTER_MASK_PRE_ATTRIBUTE_CHANGED_FUNCTION (0x20) -// Cluster is a server -#define CLUSTER_MASK_SERVER (0x40) -// Cluster is a client -#define CLUSTER_MASK_CLIENT (0x80) - -// Command masks modify meanings of commands -// Is sending of this client command supported -#define COMMAND_MASK_OUTGOING_CLIENT (0x01) -// Is sending of this server command supported -#define COMMAND_MASK_OUTGOING_SERVER (0x02) -// Is receiving of this client command supported -#define COMMAND_MASK_INCOMING_CLIENT (0x04) -// Is receiving of this server command supported -#define COMMAND_MASK_INCOMING_SERVER (0x08) -// Is this command manufacturer specific? -#define COMMAND_MASK_MANUFACTURER_SPECIFIC (0x10) -#endif // SILABS_ATTRIBUTE_STORAGE_GEN diff --git a/examples/wifi-echo/server/esp32/main/gen/attribute-id.h b/examples/wifi-echo/server/esp32/main/gen/attribute-id.h deleted file mode 100644 index 442f72e97e2232..00000000000000 --- a/examples/wifi-echo/server/esp32/main/gen/attribute-id.h +++ /dev/null @@ -1,4786 +0,0 @@ -/** - * - * 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 SILABS_EMBER_AF_ATTRIBUTE_ID -#define SILABS_EMBER_AF_ATTRIBUTE_ID - -// Attribute types for cluster: Basic -// Cluster specification level: zcl-7.0-07-5123-07 - -// Client attributes -#define ZCL_BASIC_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_BASIC_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_VERSION_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_APPLICATION_VERSION_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_STACK_VERSION_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_HW_VERSION_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_MANUFACTURER_NAME_ATTRIBUTE_ID 0x0004 // Ver.: always -#define ZCL_MODEL_IDENTIFIER_ATTRIBUTE_ID 0x0005 // Ver.: always -#define ZCL_DATE_CODE_ATTRIBUTE_ID 0x0006 // Ver.: always -#define ZCL_POWER_SOURCE_ATTRIBUTE_ID 0x0007 // Ver.: always -#define ZCL_GENERIC_DEVICE_CLASS_ATTRIBUTE_ID 0x0008 // Ver.: since l&o-1.0-15-0014-04 -#define ZCL_GENERIC_DEVICE_TYPE_ATTRIBUTE_ID 0x0009 // Ver.: since l&o-1.0-15-0014-04 -#define ZCL_PRODUCT_CODE_ATTRIBUTE_ID 0x000A // Ver.: since l&o-1.0-15-0014-04 -#define ZCL_PRODUCT_URL_ATTRIBUTE_ID 0x000B // Ver.: since l&o-1.0-15-0014-04 -#define ZCL_LOCATION_DESCRIPTION_ATTRIBUTE_ID 0x0010 // Ver.: always -#define ZCL_PHYSICAL_ENVIRONMENT_ATTRIBUTE_ID 0x0011 // Ver.: always -#define ZCL_DEVICE_ENABLED_ATTRIBUTE_ID 0x0012 // Ver.: always -#define ZCL_ALARM_MASK_ATTRIBUTE_ID 0x0013 // Ver.: always -#define ZCL_DISABLE_LOCAL_CONFIG_ATTRIBUTE_ID 0x0014 // Ver.: always -#define ZCL_CURRENT_LOCALE_ATTRIBUTE_ID 0x0015 // Ver.: always -#define ZCL_SW_BUILD_ID_ATTRIBUTE_ID 0x4000 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_BASIC_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_BASIC_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Power Configuration -// Cluster specification level: zcl-7.0-07-5123-07 - -// Client attributes -#define ZCL_POWER_CONFIG_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_POWER_CONFIG_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_MAINS_VOLTAGE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_MAINS_FREQUENCY_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_MAINS_ALARM_MASK_ATTRIBUTE_ID 0x0010 // Ver.: always -#define ZCL_MAINS_VOLTAGE_MIN_THRESHOLD_ATTRIBUTE_ID 0x0011 // Ver.: always -#define ZCL_MAINS_VOLTAGE_MAX_THRESHOLD_ATTRIBUTE_ID 0x0012 // Ver.: always -#define ZCL_MAINS_VOLTAGE_DWELL_TRIP_POINT_ATTRIBUTE_ID 0x0013 // Ver.: always -#define ZCL_BATTERY_VOLTAGE_ATTRIBUTE_ID 0x0020 // Ver.: always -#define ZCL_BATTERY_PERCENTAGE_REMAINING_ATTRIBUTE_ID 0x0021 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_MANUFACTURER_ATTRIBUTE_ID 0x0030 // Ver.: always -#define ZCL_BATTERY_SIZE_ATTRIBUTE_ID 0x0031 // Ver.: always -#define ZCL_BATTERY_AHR_RATING_ATTRIBUTE_ID 0x0032 // Ver.: always -#define ZCL_BATTERY_QUANTITY_ATTRIBUTE_ID 0x0033 // Ver.: always -#define ZCL_BATTERY_RATED_VOLTAGE_ATTRIBUTE_ID 0x0034 // Ver.: always -#define ZCL_BATTERY_ALARM_MASK_ATTRIBUTE_ID 0x0035 // Ver.: always -#define ZCL_BATTERY_VOLTAGE_MIN_THRESHOLD_ATTRIBUTE_ID 0x0036 // Ver.: always -#define ZCL_BATTERY_VOLTAGE_THRESHOLD_1_ATTRIBUTE_ID 0x0037 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_VOLTAGE_THRESHOLD_2_ATTRIBUTE_ID 0x0038 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_VOLTAGE_THRESHOLD_3_ATTRIBUTE_ID 0x0039 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_PERCENTAGE_MIN_THRESHOLD_ATTRIBUTE_ID 0x003A // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_PERCENTAGE_THRESHOLD_1_ATTRIBUTE_ID 0x003B // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_PERCENTAGE_THRESHOLD_2_ATTRIBUTE_ID 0x003C // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_PERCENTAGE_THRESHOLD_3_ATTRIBUTE_ID 0x003D // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_ALARM_STATE_ATTRIBUTE_ID 0x003E // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_2_VOLTAGE_ATTRIBUTE_ID 0x0040 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_2_PERCENTAGE_REMAINING_ATTRIBUTE_ID 0x0041 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_2_MANUFACTURER_ATTRIBUTE_ID 0x0050 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_2_SIZE_ATTRIBUTE_ID 0x0051 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_2_AHR_RATING_ATTRIBUTE_ID 0x0052 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_2_QUANTITY_ATTRIBUTE_ID 0x0053 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_2_RATED_VOLTAGE_ATTRIBUTE_ID 0x0054 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_2_ALARM_MASK_ATTRIBUTE_ID 0x0055 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_2_VOLTAGE_MIN_THRESHOLD_ATTRIBUTE_ID 0x0056 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_2_VOLTAGE_THRESHOLD_1_ATTRIBUTE_ID 0x0057 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_2_VOLTAGE_THRESHOLD_2_ATTRIBUTE_ID 0x0058 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_2_VOLTAGE_THRESHOLD_3_ATTRIBUTE_ID 0x0059 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_2_PERCENTAGE_MIN_THRESHOLD_ATTRIBUTE_ID 0x005A // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_2_PERCENTAGE_THRESHOLD_1_ATTRIBUTE_ID 0x005B // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_2_PERCENTAGE_THRESHOLD_2_ATTRIBUTE_ID 0x005C // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_2_PERCENTAGE_THRESHOLD_3_ATTRIBUTE_ID 0x005D // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_2_ALARM_STATE_ATTRIBUTE_ID 0x005E // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_3_VOLTAGE_ATTRIBUTE_ID 0x0060 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_3_PERCENTAGE_REMAINING_ATTRIBUTE_ID 0x0061 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_3_MANUFACTURER_ATTRIBUTE_ID 0x0070 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_3_SIZE_ATTRIBUTE_ID 0x0071 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_3_AHR_RATING_ATTRIBUTE_ID 0x0072 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_3_QUANTITY_ATTRIBUTE_ID 0x0073 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_3_RATED_VOLTAGE_ATTRIBUTE_ID 0x0074 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_3_ALARM_MASK_ATTRIBUTE_ID 0x0075 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_3_VOLTAGE_MIN_THRESHOLD_ATTRIBUTE_ID 0x0076 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_3_VOLTAGE_THRESHOLD_1_ATTRIBUTE_ID 0x0077 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_3_VOLTAGE_THRESHOLD_2_ATTRIBUTE_ID 0x0078 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_3_VOLTAGE_THRESHOLD_3_ATTRIBUTE_ID 0x0079 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_3_PERCENTAGE_MIN_THRESHOLD_ATTRIBUTE_ID 0x007A // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_3_PERCENTAGE_THRESHOLD_1_ATTRIBUTE_ID 0x007B // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_3_PERCENTAGE_THRESHOLD_2_ATTRIBUTE_ID 0x007C // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_3_PERCENTAGE_THRESHOLD_3_ATTRIBUTE_ID 0x007D // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BATTERY_3_ALARM_STATE_ATTRIBUTE_ID 0x007E // Ver.: since ha-1.2-05-3520-29 -#define ZCL_POWER_CONFIG_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_POWER_CONFIG_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Device Temperature Configuration -// Cluster specification level: zcl-7.0-07-5123-07 - -// Client attributes -#define ZCL_DEVICE_TEMP_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_DEVICE_TEMP_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_CURRENT_TEMPERATURE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_MIN_TEMP_EXPERIENCED_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_MAX_TEMP_EXPERIENCED_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_OVER_TEMP_TOTAL_DWELL_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_DEVICE_TEMP_ALARM_MASK_ATTRIBUTE_ID 0x0010 // Ver.: always -#define ZCL_LOW_TEMP_THRESHOLD_ATTRIBUTE_ID 0x0011 // Ver.: always -#define ZCL_HIGH_TEMP_THRESHOLD_ATTRIBUTE_ID 0x0012 // Ver.: always -#define ZCL_LOW_TEMP_DWELL_TRIP_POINT_ATTRIBUTE_ID 0x0013 // Ver.: always -#define ZCL_HIGH_TEMP_DWELL_TRIP_POINT_ATTRIBUTE_ID 0x0014 // Ver.: always -#define ZCL_DEVICE_TEMP_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_DEVICE_TEMP_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Identify -// Cluster specification level: zcl-7.0-07-5123-07 - -// Client attributes -#define ZCL_IDENTIFY_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_IDENTIFY_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_IDENTIFY_TIME_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_COMMISSION_STATE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_IDENTIFY_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_IDENTIFY_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Groups -// Cluster specification level: zcl-7.0-07-5123-07 - -// Client attributes -#define ZCL_GROUPS_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_GROUPS_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_GROUP_NAME_SUPPORT_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_GROUPS_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_GROUPS_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Scenes -// Cluster specification level: zcl-7.0-07-5123-07 - -// Client attributes -#define ZCL_SCENES_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_SCENES_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_SCENE_COUNT_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_CURRENT_SCENE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_CURRENT_GROUP_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_SCENE_VALID_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_SCENE_NAME_SUPPORT_ATTRIBUTE_ID 0x0004 // Ver.: always -#define ZCL_LAST_CONFIGURED_BY_ATTRIBUTE_ID 0x0005 // Ver.: always -#define ZCL_SCENES_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_SCENES_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: On/off -// Cluster specification level: zcl-7.0-07-5123-07 - -// Client attributes -#define ZCL_ON_OFF_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_ON_OFF_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_ON_OFF_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_SAMPLE_MFG_SPECIFIC_TRANSITION_TIME_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_SAMPLE_MFG_SPECIFIC_TRANSITION_TIME_2_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_SAMPLE_MFG_SPECIFIC_TRANSITION_TIME_3_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_SAMPLE_MFG_SPECIFIC_TRANSITION_TIME_4_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_GLOBAL_SCENE_CONTROL_ATTRIBUTE_ID 0x4000 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_ON_TIME_ATTRIBUTE_ID 0x4001 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_OFF_WAIT_TIME_ATTRIBUTE_ID 0x4002 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_START_UP_ON_OFF_ATTRIBUTE_ID 0x4003 // Ver.: since l&o-1.0-15-0014-04 -#define ZCL_ON_OFF_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_ON_OFF_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: On/off Switch Configuration -// Cluster specification level: zcl-7.0-07-5123-07 - -// Client attributes -#define ZCL_ON_OFF_SWITCH_CONFIG_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_ON_OFF_SWITCH_CONFIG_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_SWITCH_TYPE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_SWITCH_ACTIONS_ATTRIBUTE_ID 0x0010 // Ver.: always -#define ZCL_ON_OFF_SWITCH_CONFIG_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_ON_OFF_SWITCH_CONFIG_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Level Control -// Cluster specification level: zcl-7.0-07-5123-07 - -// Client attributes -#define ZCL_LEVEL_CONTROL_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_LEVEL_CONTROL_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_CURRENT_LEVEL_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_LEVEL_CONTROL_REMAINING_TIME_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_OPTIONS_ATTRIBUTE_ID 0x000F // Ver.: since l&o-1.0-15-0014-04 -#define ZCL_ON_OFF_TRANSITION_TIME_ATTRIBUTE_ID 0x0010 // Ver.: always -#define ZCL_ON_LEVEL_ATTRIBUTE_ID 0x0011 // Ver.: always -#define ZCL_ON_TRANSITION_TIME_ATTRIBUTE_ID 0x0012 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_OFF_TRANSITION_TIME_ATTRIBUTE_ID 0x0013 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_DEFAULT_MOVE_RATE_ATTRIBUTE_ID 0x0014 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_START_UP_CURRENT_LEVEL_ATTRIBUTE_ID 0x4000 // Ver.: since l&o-1.0-15-0014-04 -#define ZCL_LEVEL_CONTROL_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_LEVEL_CONTROL_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Alarms -// Cluster specification level: zcl-7.0-07-5123-07 - -// Client attributes -#define ZCL_ALARM_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_ALARM_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_ALARM_COUNT_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_ALARM_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_ALARM_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Time -// Cluster specification level: zcl-7.0-07-5123-07 - -// Client attributes -#define ZCL_TIME_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_TIME_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_TIME_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_TIME_STATUS_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_TIME_ZONE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_DST_START_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_DST_END_ATTRIBUTE_ID 0x0004 // Ver.: always -#define ZCL_DST_SHIFT_ATTRIBUTE_ID 0x0005 // Ver.: always -#define ZCL_STANDARD_TIME_ATTRIBUTE_ID 0x0006 // Ver.: always -#define ZCL_LOCAL_TIME_ATTRIBUTE_ID 0x0007 // Ver.: always -#define ZCL_LAST_SET_TIME_ATTRIBUTE_ID 0x0008 // Ver.: always -#define ZCL_VALID_UNTIL_TIME_ATTRIBUTE_ID 0x0009 // Ver.: always -#define ZCL_TIME_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_TIME_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: RSSI Location -// Cluster specification level: zcl-7.0-07-5123-07 - -// Client attributes -#define ZCL_RSSI_LOCATION_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_RSSI_LOCATION_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_LOCATION_TYPE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_LOCATION_METHOD_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_LOCATION_AGE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_QUALITY_MEASURE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_NUMBER_OF_DEVICES_ATTRIBUTE_ID 0x0004 // Ver.: always -#define ZCL_COORDINATE1_ATTRIBUTE_ID 0x0010 // Ver.: always -#define ZCL_COORDINATE2_ATTRIBUTE_ID 0x0011 // Ver.: always -#define ZCL_COORDINATE3_ATTRIBUTE_ID 0x0012 // Ver.: always -#define ZCL_POWER_ATTRIBUTE_ID 0x0013 // Ver.: always -#define ZCL_PATH_LOSS_EXPONENT_ATTRIBUTE_ID 0x0014 // Ver.: always -#define ZCL_REPORTING_PERIOD_ATTRIBUTE_ID 0x0015 // Ver.: always -#define ZCL_CALCULATION_PERIOD_ATTRIBUTE_ID 0x0016 // Ver.: always -#define ZCL_NUMBER_RSSI_MEASUREMENTS_ATTRIBUTE_ID 0x0017 // Ver.: always -#define ZCL_RSSI_LOCATION_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_RSSI_LOCATION_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Binary Input (Basic) -// Cluster specification level: zcl-7.0-07-5123-07 - -// Client attributes -#define ZCL_BINARY_INPUT_BASIC_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_BINARY_INPUT_BASIC_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_ACTIVE_TEXT_ATTRIBUTE_ID 0x0004 // Ver.: always -#define ZCL_DESCRIPTION_ATTRIBUTE_ID 0x001C // Ver.: always -#define ZCL_INACTIVE_TEXT_ATTRIBUTE_ID 0x002E // Ver.: always -#define ZCL_OUT_OF_SERVICE_ATTRIBUTE_ID 0x0051 // Ver.: always -#define ZCL_POLARITY_ATTRIBUTE_ID 0x0054 // Ver.: always -#define ZCL_PRESENT_VALUE_ATTRIBUTE_ID 0x0055 // Ver.: always -#define ZCL_RELIABILITY_ATTRIBUTE_ID 0x0067 // Ver.: always -#define ZCL_STATUS_FLAGS_ATTRIBUTE_ID 0x006F // Ver.: always -#define ZCL_APPLICATION_TYPE_ATTRIBUTE_ID 0x0100 // Ver.: always -#define ZCL_BINARY_INPUT_BASIC_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_BINARY_INPUT_BASIC_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Commissioning -// Cluster specification level: zcl-7.0-07-5123-07 - -// Client attributes -#define ZCL_COMMISSIONING_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_COMMISSIONING_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_SHORT_ADDRESS_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_EXTENDED_PAN_ID_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_PAN_ID_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_CHANNEL_MASK_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_PROTOCOL_VERSION_ATTRIBUTE_ID 0x0004 // Ver.: always -#define ZCL_STACK_PROFILE_ATTRIBUTE_ID 0x0005 // Ver.: always -#define ZCL_STARTUP_CONTROL_ATTRIBUTE_ID 0x0006 // Ver.: always -#define ZCL_TRUST_CENTER_ADDRESS_ATTRIBUTE_ID 0x0010 // Ver.: always -#define ZCL_TRUST_CENTER_MASTER_KEY_ATTRIBUTE_ID 0x0011 // Ver.: always -#define ZCL_NETWORK_KEY_ATTRIBUTE_ID 0x0012 // Ver.: always -#define ZCL_USE_INSECURE_JOIN_ATTRIBUTE_ID 0x0013 // Ver.: always -#define ZCL_PRECONFIGURED_LINK_KEY_ATTRIBUTE_ID 0x0014 // Ver.: always -#define ZCL_NETWORK_KEY_SEQUENCE_NUMBER_ATTRIBUTE_ID 0x0015 // Ver.: always -#define ZCL_NETWORK_KEY_TYPE_ATTRIBUTE_ID 0x0016 // Ver.: always -#define ZCL_NETWORK_MANAGER_ADDRESS_ATTRIBUTE_ID 0x0017 // Ver.: always -#define ZCL_SCAN_ATTEMPTS_ATTRIBUTE_ID 0x0020 // Ver.: always -#define ZCL_TIME_BETWEEN_SCANS_ATTRIBUTE_ID 0x0021 // Ver.: always -#define ZCL_REJOIN_INTERVAL_ATTRIBUTE_ID 0x0022 // Ver.: always -#define ZCL_MAX_REJOIN_INTERVAL_ATTRIBUTE_ID 0x0023 // Ver.: always -#define ZCL_INDIRECT_POLL_RATE_ATTRIBUTE_ID 0x0030 // Ver.: always -#define ZCL_PARENT_RETRY_THRESHOLD_ATTRIBUTE_ID 0x0031 // Ver.: always -#define ZCL_CONCENTRATOR_FLAG_ATTRIBUTE_ID 0x0040 // Ver.: always -#define ZCL_CONCENTRATOR_RADIUS_ATTRIBUTE_ID 0x0041 // Ver.: always -#define ZCL_CONCENTRATOR_DISCOVERY_TIME_ATTRIBUTE_ID 0x0042 // Ver.: always -#define ZCL_COMMISSIONING_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_COMMISSIONING_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Partition -// Cluster specification level: zcl-7.0-07-5123-07 - -// Client attributes -#define ZCL_PARTITION_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_PARTITION_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_PARTITION_MAXIMUM_INCOMING_TRANSFER_SIZE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_PARTITION_MAXIMUM_OUTGOING_TRANSFER_SIZE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_PARTIONED_FRAME_SIZE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_LARGE_FRAME_SIZE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_NUMBER_OF_ACK_FRAME_ATTRIBUTE_ID 0x0004 // Ver.: always -#define ZCL_NACK_TIMEOUT_ATTRIBUTE_ID 0x0005 // Ver.: always -#define ZCL_INTERFRAME_DELAY_ATTRIBUTE_ID 0x0006 // Ver.: always -#define ZCL_NUMBER_OF_SEND_RETRIES_ATTRIBUTE_ID 0x0007 // Ver.: always -#define ZCL_SENDER_TIMEOUT_ATTRIBUTE_ID 0x0008 // Ver.: always -#define ZCL_RECEIVER_TIMEOUT_ATTRIBUTE_ID 0x0009 // Ver.: always -#define ZCL_PARTITION_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_PARTITION_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Over the Air Bootloading -// Cluster specification level: zcl-7.0-07-5123-07 - -// Client attributes -#define ZCL_UPGRADE_SERVER_ID_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_FILE_OFFSET_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_CURRENT_FILE_VERSION_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_CURRENT_ZIGBEE_STACK_VERSION_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_DOWNLOADED_FILE_VERSION_ATTRIBUTE_ID 0x0004 // Ver.: always -#define ZCL_DOWNLOADED_ZIGBEE_STACK_VERSION_ATTRIBUTE_ID 0x0005 // Ver.: always -#define ZCL_IMAGE_UPGRADE_STATUS_ATTRIBUTE_ID 0x0006 // Ver.: always -#define ZCL_MANUFACTURER_ID_ATTRIBUTE_ID 0x0007 // Ver.: always -#define ZCL_IMAGE_TYPE_ID_ATTRIBUTE_ID 0x0008 // Ver.: always -#define ZCL_MINIMUM_BLOCK_REQUEST_PERIOD_ATTRIBUTE_ID 0x0009 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_IMAGE_STAMP_ATTRIBUTE_ID 0x000A // Ver.: since ha-1.2-05-3520-29 -#define ZCL_UPGRADE_ACTIVATION_POLICY_ATTRIBUTE_ID 0x000B // Ver.: since se-1.2b-15-0131-02 -#define ZCL_UPGRADE_TIMEOUT_POLICY_ATTRIBUTE_ID 0x000C // Ver.: since se-1.2b-15-0131-02 -#define ZCL_OTA_BOOTLOAD_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_OTA_BOOTLOAD_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_OTA_BOOTLOAD_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_OTA_BOOTLOAD_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Power Profile -// Cluster specification level: zcl-7.0-07-5123-07 - -// Client attributes -#define ZCL_POWER_PROFILE_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_POWER_PROFILE_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_TOTAL_PROFILE_NUM_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_MULTIPLE_SCHEDULING_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_ENERGY_FORMATTING_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_ENERGY_REMOTE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_SCHEDULE_MODE_ATTRIBUTE_ID 0x0004 // Ver.: always -#define ZCL_POWER_PROFILE_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_POWER_PROFILE_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Appliance Control -// Cluster specification level: zcl-7.0-07-5123-07 - -// Client attributes -#define ZCL_APPLIANCE_CONTROL_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_APPLIANCE_CONTROL_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_START_TIME_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_FINISH_TIME_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_REMAINING_TIME_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_APPLIANCE_CONTROL_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_APPLIANCE_CONTROL_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Poll Control -// Cluster specification level: zcl-7.0-07-5123-07 - -// Client attributes -#define ZCL_POLL_CONTROL_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_POLL_CONTROL_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_CHECK_IN_INTERVAL_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_LONG_POLL_INTERVAL_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_SHORT_POLL_INTERVAL_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_FAST_POLL_TIMEOUT_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_CHECK_IN_INTERVAL_MIN_ATTRIBUTE_ID 0x0004 // Ver.: always -#define ZCL_LONG_POLL_INTERVAL_MIN_ATTRIBUTE_ID 0x0005 // Ver.: always -#define ZCL_FAST_POLL_TIMEOUT_MAX_ATTRIBUTE_ID 0x0006 // Ver.: always -#define ZCL_POLL_CONTROL_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_POLL_CONTROL_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Green Power -// Cluster specification level: gp-1.0a-09-5499-26 - -// Client attributes -#define ZCL_GP_CLIENT_GPP_MAX_PROXY_TABLE_ENTRIES_ATTRIBUTE_ID 0x0010 // Ver.: since gp-1.0-09-5499-24 -#define ZCL_GP_CLIENT_PROXY_TABLE_ATTRIBUTE_ID 0x0011 // Ver.: since gp-1.0-09-5499-24 -#define ZCL_GP_CLIENT_GPP_NOTIFICATION_RETRY_NUMBER_ATTRIBUTE_ID 0x0012 // Ver.: since gp-1.0-09-5499-24 -#define ZCL_GP_CLIENT_GPP_NOTIFICATION_RETRY_TIMER_ATTRIBUTE_ID 0x0013 // Ver.: since gp-1.0-09-5499-24 -#define ZCL_GP_CLIENT_GPP_MAX_SEARCH_COUNTER_ATTRIBUTE_ID 0x0014 // Ver.: since gp-1.0-09-5499-24 -#define ZCL_GP_CLIENT_GPP_BLOCKED_GPD_ID_ATTRIBUTE_ID 0x0015 // Ver.: since gp-1.0-09-5499-24 -#define ZCL_GP_CLIENT_GPP_FUNCTIONALITY_ATTRIBUTE_ID 0x0016 // Ver.: since gp-1.0-09-5499-24 -#define ZCL_GP_CLIENT_GPP_ACTIVE_FUNCTIONALITY_ATTRIBUTE_ID 0x0017 // Ver.: since gp-1.0-09-5499-24 -#define ZCL_GP_CLIENT_GP_SHARED_SECURITY_KEY_TYPE_ATTRIBUTE_ID 0x0020 // Ver.: since gp-1.0-09-5499-24 -#define ZCL_GP_CLIENT_GP_SHARED_SECURITY_KEY_ATTRIBUTE_ID 0x0021 // Ver.: since gp-1.0-09-5499-24 -#define ZCL_GP_CLIENT_GP_LINK_KEY_ATTRIBUTE_ID 0x0022 // Ver.: since gp-1.0-09-5499-24 -#define ZCL_GREEN_POWER_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_GREEN_POWER_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_GP_SERVER_GPS_MAX_SINK_TABLE_ENTRIES_ATTRIBUTE_ID 0x0000 // Ver.: since gp-1.0-09-5499-24 -#define ZCL_GP_SERVER_SINK_TABLE_ATTRIBUTE_ID 0x0001 // Ver.: since gp-1.0-09-5499-24 -#define ZCL_GP_SERVER_GPS_COMMUNICATION_MODE_ATTRIBUTE_ID 0x0002 // Ver.: since gp-1.0-09-5499-24 -#define ZCL_GP_SERVER_GPS_COMMISSIONING_EXIT_MODE_ATTRIBUTE_ID 0x0003 // Ver.: since gp-1.0-09-5499-24 -#define ZCL_GP_SERVER_GPS_COMMISSIONING_WINDOW_ATTRIBUTE_ID 0x0004 // Ver.: since gp-1.0-09-5499-24 -#define ZCL_GP_SERVER_GPS_SECURITY_LEVEL_ATTRIBUTE_ID 0x0005 // Ver.: since gp-1.0-09-5499-24 -#define ZCL_GP_SERVER_GPS_FUNCTIONALITY_ATTRIBUTE_ID 0x0006 // Ver.: since gp-1.0-09-5499-24 -#define ZCL_GP_SERVER_GPS_ACTIVE_FUNCTIONALITY_ATTRIBUTE_ID 0x0007 // Ver.: since gp-1.0-09-5499-24 -#define ZCL_GP_SERVER_GP_SHARED_SECURITY_KEY_TYPE_ATTRIBUTE_ID 0x0020 // Ver.: since gp-1.0-09-5499-24 -#define ZCL_GP_SERVER_GP_SHARED_SECURITY_KEY_ATTRIBUTE_ID 0x0021 // Ver.: since gp-1.0-09-5499-24 -#define ZCL_GP_SERVER_GP_LINK_KEY_ATTRIBUTE_ID 0x0022 // Ver.: since gp-1.0-09-5499-24 -#define ZCL_GREEN_POWER_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_GREEN_POWER_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Keep-Alive -// Cluster specification level: se-1.2b-15-0131-02 - -// Client attributes -#define ZCL_KEEPALIVE_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_KEEPALIVE_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_KEEPALIVE_BASE_ATTRIBUTE_ID 0x0000 // Ver.: since se-1.2b-15-0131-02 -#define ZCL_KEEPALIVE_JITTER_ATTRIBUTE_ID 0x0001 // Ver.: since se-1.2b-15-0131-02 -#define ZCL_KEEPALIVE_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_KEEPALIVE_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Shade Configuration -// Cluster specification level: zcl-6.0-15-02018-001 - -// Client attributes -#define ZCL_SHADE_CONFIG_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_SHADE_CONFIG_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_SHADE_CONFIG_PHYSICAL_CLOSED_LIMIT_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_SHADE_CONFIG_MOTOR_STEP_SIZE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_SHADE_CONFIG_STATUS_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_SHADE_CONFIG_CLOSED_LIMIT_ATTRIBUTE_ID 0x0010 // Ver.: always -#define ZCL_SHADE_CONFIG_MODE_ATTRIBUTE_ID 0x0011 // Ver.: always -#define ZCL_SHADE_CONFIG_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_SHADE_CONFIG_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Door Lock -// Cluster specification level: zcl-6.0-15-02018-001 - -// Client attributes -#define ZCL_DOOR_LOCK_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_DOOR_LOCK_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_LOCK_STATE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_LOCK_TYPE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_ACTUATOR_ENABLED_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_DOOR_STATE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_DOOR_OPEN_EVENTS_ATTRIBUTE_ID 0x0004 // Ver.: always -#define ZCL_DOOR_CLOSED_EVENTS_ATTRIBUTE_ID 0x0005 // Ver.: always -#define ZCL_OPEN_PERIOD_ATTRIBUTE_ID 0x0006 // Ver.: always -#define ZCL_NUM_LOCK_RECORDS_SUPPORTED_ATTRIBUTE_ID 0x0010 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_NUM_TOTAL_USERS_SUPPORTED_ATTRIBUTE_ID 0x0011 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_NUM_PIN_USERS_SUPPORTED_ATTRIBUTE_ID 0x0012 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_NUM_RFID_USERS_SUPPORTED_ATTRIBUTE_ID 0x0013 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_NUM_WEEKDAY_SCHEDULES_SUPPORTED_PER_USER_ATTRIBUTE_ID 0x0014 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_NUM_YEARDAY_SCHEDULES_SUPPORTED_PER_USER_ATTRIBUTE_ID 0x0015 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_NUM_HOLIDAY_SCHEDULES_SUPPORTED_PER_USER_ATTRIBUTE_ID 0x0016 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_MAX_PIN_LENGTH_ATTRIBUTE_ID 0x0017 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_MIN_PIN_LENGTH_ATTRIBUTE_ID 0x0018 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_MAX_RFID_CODE_LENGTH_ATTRIBUTE_ID 0x0019 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_MIN_RFID_CODE_LENGTH_ATTRIBUTE_ID 0x001A // Ver.: since ha-1.2-05-3520-29 -#define ZCL_ENABLE_LOGGING_ATTRIBUTE_ID 0x0020 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_LANGUAGE_ATTRIBUTE_ID 0x0021 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_LED_SETTINGS_ATTRIBUTE_ID 0x0022 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_AUTO_RELOCK_TIME_ATTRIBUTE_ID 0x0023 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_SOUND_VOLUME_ATTRIBUTE_ID 0x0024 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_OPERATING_MODE_ATTRIBUTE_ID 0x0025 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_SUPPORTED_OPERATING_MODES_ATTRIBUTE_ID 0x0026 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_DEFAULT_CONFIGURATION_REGISTER_ATTRIBUTE_ID 0x0027 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_ENABLE_LOCAL_PROGRAMMING_ATTRIBUTE_ID 0x0028 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_ENABLE_ONE_TOUCH_LOCKING_ATTRIBUTE_ID 0x0029 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_ENABLE_INSIDE_STATUS_LED_ATTRIBUTE_ID 0x002A // Ver.: since ha-1.2-05-3520-29 -#define ZCL_ENABLE_PRIVACY_MODE_BUTTON_ATTRIBUTE_ID 0x002B // Ver.: since ha-1.2-05-3520-29 -#define ZCL_WRONG_CODE_ENTRY_LIMIT_ATTRIBUTE_ID 0x0030 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_USER_CODE_TEMPORARY_DISABLE_TIME_ATTRIBUTE_ID 0x0031 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_SEND_PIN_OVER_THE_AIR_ATTRIBUTE_ID 0x0032 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_REQUIRE_PIN_FOR_RF_OPERATION_ATTRIBUTE_ID 0x0033 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_ZIGBEE_SECURITY_LEVEL_ATTRIBUTE_ID 0x0034 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_DOOR_LOCK_ALARM_MASK_ATTRIBUTE_ID 0x0040 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_KEYPAD_OPERATION_EVENT_MASK_ATTRIBUTE_ID 0x0041 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_RF_OPERATION_EVENT_MASK_ATTRIBUTE_ID 0x0042 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_MANUAL_OPERATION_EVENT_MASK_ATTRIBUTE_ID 0x0043 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_RFID_OPERATION_EVENT_MASK_ATTRIBUTE_ID 0x0044 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_KEYPAD_PROGRAMMING_EVENT_MASK_ATTRIBUTE_ID 0x0045 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_RF_PROGRAMMING_EVENT_MASK_ATTRIBUTE_ID 0x0046 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_RFID_PROGRAMMING_EVENT_MASK_ATTRIBUTE_ID 0x0047 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_DOOR_LOCK_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_DOOR_LOCK_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Window Covering -// Cluster specification level: zcl-6.0-15-02018-001 - -// Client attributes -#define ZCL_WINDOW_COVERING_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_WINDOW_COVERING_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_COVERING_TYPE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_LIMIT_LIFT_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_LIMIT_TILT_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_CURRENT_LIFT_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_CURRENT_TILT_ATTRIBUTE_ID 0x0004 // Ver.: always -#define ZCL_NUMBER_LIFT_ATTRIBUTE_ID 0x0005 // Ver.: always -#define ZCL_NUMBER_TILT_ATTRIBUTE_ID 0x0006 // Ver.: always -#define ZCL_CONFIG_STATUS_ATTRIBUTE_ID 0x0007 // Ver.: always -#define ZCL_CURRENT_LIFT_PERCENTAGE_ATTRIBUTE_ID 0x0008 // Ver.: always -#define ZCL_CURRENT_TILT_PERCENTAGE_ATTRIBUTE_ID 0x0009 // Ver.: always -#define ZCL_OPEN_LIMIT_LIFT_ATTRIBUTE_ID 0x0010 // Ver.: always -#define ZCL_CLOSED_LIMIT_LIFT_ATTRIBUTE_ID 0x0011 // Ver.: always -#define ZCL_OPEN_LIMIT_TILT_ATTRIBUTE_ID 0x0012 // Ver.: always -#define ZCL_CLOSED_LIMIT_TILT_ATTRIBUTE_ID 0x0013 // Ver.: always -#define ZCL_VELOCITY_LIFT_ATTRIBUTE_ID 0x0014 // Ver.: always -#define ZCL_ACCELERATION_LIFT_ATTRIBUTE_ID 0x0015 // Ver.: always -#define ZCL_DECELERATION_LIFT_ATTRIBUTE_ID 0x0016 // Ver.: always -#define ZCL_MODE_ATTRIBUTE_ID 0x0017 // Ver.: always -#define ZCL_SETPOINTS_LIFT_ATTRIBUTE_ID 0x0018 // Ver.: always -#define ZCL_SETPOINTS_TILT_ATTRIBUTE_ID 0x0019 // Ver.: always -#define ZCL_WINDOW_COVERING_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_WINDOW_COVERING_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Barrier Control -// Cluster specification level: zcl-6.0-15-02018-001 - -// Client attributes -#define ZCL_BARRIER_CONTROL_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_BARRIER_CONTROL_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_BARRIER_MOVING_STATE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_BARRIER_SAFETY_STATUS_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_BARRIER_CAPABILITIES_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_BARRIER_OPEN_EVENTS_ATTRIBUTE_ID 0x0004 // Ver.: always -#define ZCL_BARRIER_CLOSE_EVENTS_ATTRIBUTE_ID 0x0005 // Ver.: always -#define ZCL_BARRIER_COMMAND_OPEN_EVENTS_ATTRIBUTE_ID 0x0006 // Ver.: always -#define ZCL_BARRIER_COMMAND_CLOSE_EVENTS_ATTRIBUTE_ID 0x0007 // Ver.: always -#define ZCL_BARRIER_OPEN_PERIOD_ATTRIBUTE_ID 0x0008 // Ver.: always -#define ZCL_BARRIER_CLOSE_PERIOD_ATTRIBUTE_ID 0x0009 // Ver.: always -#define ZCL_BARRIER_POSITION_ATTRIBUTE_ID 0x000A // Ver.: always -#define ZCL_BARRIER_CONTROL_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_BARRIER_CONTROL_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Pump Configuration and Control -// Cluster specification level: zcl-6.0-15-02018-001 - -// Client attributes -#define ZCL_PUMP_CONFIG_CONTROL_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_PUMP_CONFIG_CONTROL_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_MAX_PRESSURE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_MAX_SPEED_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_MAX_FLOW_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_MIN_CONST_PRESSURE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_MAX_CONST_PRESSURE_ATTRIBUTE_ID 0x0004 // Ver.: always -#define ZCL_MIN_COMP_PRESSURE_ATTRIBUTE_ID 0x0005 // Ver.: always -#define ZCL_MAX_COMP_PRESSURE_ATTRIBUTE_ID 0x0006 // Ver.: always -#define ZCL_MIN_CONST_SPEED_ATTRIBUTE_ID 0x0007 // Ver.: always -#define ZCL_MAX_CONST_SPEED_ATTRIBUTE_ID 0x0008 // Ver.: always -#define ZCL_MIN_CONST_FLOW_ATTRIBUTE_ID 0x0009 // Ver.: always -#define ZCL_MAX_CONST_FLOW_ATTRIBUTE_ID 0x000A // Ver.: always -#define ZCL_MIN_CONST_TEMP_ATTRIBUTE_ID 0x000B // Ver.: always -#define ZCL_MAX_CONST_TEMP_ATTRIBUTE_ID 0x000C // Ver.: always -#define ZCL_PUMP_STATUS_ATTRIBUTE_ID 0x0010 // Ver.: always -#define ZCL_EFFECTIVE_OPERATION_MODE_ATTRIBUTE_ID 0x0011 // Ver.: always -#define ZCL_EFFECTIVE_CONTROL_MODE_ATTRIBUTE_ID 0x0012 // Ver.: always -#define ZCL_CAPACITY_ATTRIBUTE_ID 0x0013 // Ver.: always -#define ZCL_SPEED_ATTRIBUTE_ID 0x0014 // Ver.: always -#define ZCL_LIFETIME_RUNNING_HOURS_ATTRIBUTE_ID 0x0015 // Ver.: always -#define ZCL_PUMP_POWER_ATTRIBUTE_ID 0x0016 // Ver.: always -#define ZCL_LIFETIME_ENERGY_CONSUMED_ATTRIBUTE_ID 0x0017 // Ver.: always -#define ZCL_OPERATION_MODE_ATTRIBUTE_ID 0x0020 // Ver.: always -#define ZCL_CONTROL_MODE_ATTRIBUTE_ID 0x0021 // Ver.: always -#define ZCL_PUMP_ALARM_MASK_ATTRIBUTE_ID 0x0022 // Ver.: always -#define ZCL_PUMP_CONFIG_CONTROL_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_PUMP_CONFIG_CONTROL_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Thermostat -// Cluster specification level: zcl-6.0-15-02018-001 - -// Client attributes -#define ZCL_THERMOSTAT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_THERMOSTAT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_LOCAL_TEMPERATURE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_OUTDOOR_TEMPERATURE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_THERMOSTAT_OCCUPANCY_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_ABS_MIN_HEAT_SETPOINT_LIMIT_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_ABS_MAX_HEAT_SETPOINT_LIMIT_ATTRIBUTE_ID 0x0004 // Ver.: always -#define ZCL_ABS_MIN_COOL_SETPOINT_LIMIT_ATTRIBUTE_ID 0x0005 // Ver.: always -#define ZCL_ABS_MAX_COOL_SETPOINT_LIMIT_ATTRIBUTE_ID 0x0006 // Ver.: always -#define ZCL_PI_COOLING_DEMAND_ATTRIBUTE_ID 0x0007 // Ver.: always -#define ZCL_PI_HEATING_DEMAND_ATTRIBUTE_ID 0x0008 // Ver.: always -#define ZCL_HVAC_SYSTEM_TYPE_CONFIGURATION_ATTRIBUTE_ID 0x0009 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_LOCAL_TEMPERATURE_CALIBRATION_ATTRIBUTE_ID 0x0010 // Ver.: always -#define ZCL_OCCUPIED_COOLING_SETPOINT_ATTRIBUTE_ID 0x0011 // Ver.: always -#define ZCL_OCCUPIED_HEATING_SETPOINT_ATTRIBUTE_ID 0x0012 // Ver.: always -#define ZCL_UNOCCUPIED_COOLING_SETPOINT_ATTRIBUTE_ID 0x0013 // Ver.: always -#define ZCL_UNOCCUPIED_HEATING_SETPOINT_ATTRIBUTE_ID 0x0014 // Ver.: always -#define ZCL_MIN_HEAT_SETPOINT_LIMIT_ATTRIBUTE_ID 0x0015 // Ver.: always -#define ZCL_MAX_HEAT_SETPOINT_LIMIT_ATTRIBUTE_ID 0x0016 // Ver.: always -#define ZCL_MIN_COOL_SETPOINT_LIMIT_ATTRIBUTE_ID 0x0017 // Ver.: always -#define ZCL_MAX_COOL_SETPOINT_LIMIT_ATTRIBUTE_ID 0x0018 // Ver.: always -#define ZCL_MIN_SETPOINT_DEAD_BAND_ATTRIBUTE_ID 0x0019 // Ver.: always -#define ZCL_REMOTE_SENSING_ATTRIBUTE_ID 0x001A // Ver.: always -#define ZCL_CONTROL_SEQUENCE_OF_OPERATION_ATTRIBUTE_ID 0x001B // Ver.: always -#define ZCL_SYSTEM_MODE_ATTRIBUTE_ID 0x001C // Ver.: always -#define ZCL_THERMOSTAT_ALARM_MASK_ATTRIBUTE_ID 0x001D // Ver.: always -#define ZCL_THERMOSTAT_RUNNING_MODE_ATTRIBUTE_ID 0x001E // Ver.: since ha-1.2-05-3520-29 -#define ZCL_START_OF_WEEK_ATTRIBUTE_ID 0x0020 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_NUMBER_OF_WEEKLY_TRANSITIONS_ATTRIBUTE_ID 0x0021 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_NUMBER_OF_DAILY_TRANSITIONS_ATTRIBUTE_ID 0x0022 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_TEMPERATURE_SETPOINT_HOLD_ATTRIBUTE_ID 0x0023 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_TEMPERATURE_SETPOINT_HOLD_DURATION_ATTRIBUTE_ID 0x0024 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_THERMOSTAT_PROGRAMMING_OPERATION_MODE_ATTRIBUTE_ID 0x0025 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_THERMOSTAT_RUNNING_STATE_ATTRIBUTE_ID 0x0029 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_SETPOINT_CHANGE_SOURCE_ATTRIBUTE_ID 0x0030 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_SETPOINT_CHANGE_AMOUNT_ATTRIBUTE_ID 0x0031 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_SETPOINT_CHANGE_SOURCE_TIMESTAMP_ATTRIBUTE_ID 0x0032 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_OCCUPIED_SETBACK_ATTRIBUTE_ID 0x0034 // Ver.: always -#define ZCL_OCCUPIED_SETBACK_MIN_ATTRIBUTE_ID 0x0035 // Ver.: always -#define ZCL_OCCUPIED_SETBACK_MAX_ATTRIBUTE_ID 0x0036 // Ver.: always -#define ZCL_UNOCCUPIED_SETBACK_ATTRIBUTE_ID 0x0037 // Ver.: always -#define ZCL_UNOCCUPIED_SETBACK_MIN_ATTRIBUTE_ID 0x0038 // Ver.: always -#define ZCL_UNOCCUPIED_SETBACK_MAX_ATTRIBUTE_ID 0x0039 // Ver.: always -#define ZCL_EMERGENCY_HEAT_DELTA_ATTRIBUTE_ID 0x003A // Ver.: always -#define ZCL_AC_TYPE_ATTRIBUTE_ID 0x0040 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_AC_CAPACITY_ATTRIBUTE_ID 0x0041 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_AC_REFRIGERANT_TYPE_ATTRIBUTE_ID 0x0042 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_AC_COMPRESSOR_ATTRIBUTE_ID 0x0043 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_AC_ERROR_CODE_ATTRIBUTE_ID 0x0044 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_AC_LOUVER_POSITION_ATTRIBUTE_ID 0x0045 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_AC_COIL_TEMPERATURE_ATTRIBUTE_ID 0x0046 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_AC_CAPACITY_FORMAT_ATTRIBUTE_ID 0x0047 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_THERMOSTAT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_THERMOSTAT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Fan Control -// Cluster specification level: zcl-6.0-15-02018-001 - -// Client attributes -#define ZCL_FAN_CONTROL_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_FAN_CONTROL_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_FAN_CONTROL_FAN_MODE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_FAN_CONTROL_FAN_MODE_SEQUENCE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_FAN_DELAY_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_FAN_CONTROL_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_FAN_CONTROL_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Dehumidification Control -// Cluster specification level: zcl-6.0-15-02018-001 - -// Client attributes -#define ZCL_DEHUMID_CONTROL_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_DEHUMID_CONTROL_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_RELATIVE_HUMIDITY_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_DEHUMIDIFICATION_COOLING_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_RH_DEHUMIDIFICATION_SETPOINT_ATTRIBUTE_ID 0x0010 // Ver.: always -#define ZCL_RELATIVE_HUMIDITY_MODE_ATTRIBUTE_ID 0x0011 // Ver.: always -#define ZCL_DEHUMIDIFICATION_LOCKOUT_ATTRIBUTE_ID 0x0012 // Ver.: always -#define ZCL_DEHUMIDIFICATION_HYSTERESIS_ATTRIBUTE_ID 0x0013 // Ver.: always -#define ZCL_DEHUMIDIFICATION_MAX_COOL_ATTRIBUTE_ID 0x0014 // Ver.: always -#define ZCL_RELATIVE_HUMIDITY_DISPLAY_ATTRIBUTE_ID 0x0015 // Ver.: always -#define ZCL_DEHUMID_CONTROL_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_DEHUMID_CONTROL_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Thermostat User Interface Configuration -// Cluster specification level: zcl-6.0-15-02018-001 - -// Client attributes -#define ZCL_THERMOSTAT_UI_CONFIG_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_THERMOSTAT_UI_CONFIG_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_TEMPERATURE_DISPLAY_MODE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_KEYPAD_LOCKOUT_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_SCHEDULE_PROGRAMMING_VISIBILITY_ATTRIBUTE_ID 0x0002 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_BACKLIGHT_TIMEOUT_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_SETPOINT_SOURCE_INDICATION_ATTRIBUTE_ID 0x0004 // Ver.: always -#define ZCL_THERMOSTAT_UI_CONFIG_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_THERMOSTAT_UI_CONFIG_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Color Control -// Cluster specification level: zcl6-errata-14-0129-15 - -// Client attributes -#define ZCL_COLOR_CONTROL_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_COLOR_CONTROL_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_COLOR_CONTROL_CURRENT_HUE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_COLOR_CONTROL_CURRENT_SATURATION_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_COLOR_CONTROL_REMAINING_TIME_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_COLOR_CONTROL_CURRENT_X_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_COLOR_CONTROL_CURRENT_Y_ATTRIBUTE_ID 0x0004 // Ver.: always -#define ZCL_COLOR_CONTROL_DRIFT_COMPENSATION_ATTRIBUTE_ID 0x0005 // Ver.: always -#define ZCL_COLOR_CONTROL_COMPENSATION_TEXT_ATTRIBUTE_ID 0x0006 // Ver.: always -#define ZCL_COLOR_CONTROL_COLOR_TEMPERATURE_ATTRIBUTE_ID 0x0007 // Ver.: always -#define ZCL_COLOR_CONTROL_COLOR_MODE_ATTRIBUTE_ID 0x0008 // Ver.: always -#define ZCL_COLOR_CONTROL_OPTIONS_ATTRIBUTE_ID 0x000F // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_COLOR_CONTROL_NUMBER_OF_PRIMARIES_ATTRIBUTE_ID 0x0010 // Ver.: always -#define ZCL_COLOR_CONTROL_PRIMARY_1_X_ATTRIBUTE_ID 0x0011 // Ver.: always -#define ZCL_COLOR_CONTROL_PRIMARY_1_Y_ATTRIBUTE_ID 0x0012 // Ver.: always -#define ZCL_COLOR_CONTROL_PRIMARY_1_INTENSITY_ATTRIBUTE_ID 0x0013 // Ver.: always -#define ZCL_COLOR_CONTROL_PRIMARY_2_X_ATTRIBUTE_ID 0x0015 // Ver.: always -#define ZCL_COLOR_CONTROL_PRIMARY_2_Y_ATTRIBUTE_ID 0x0016 // Ver.: always -#define ZCL_COLOR_CONTROL_PRIMARY_2_INTENSITY_ATTRIBUTE_ID 0x0017 // Ver.: always -#define ZCL_COLOR_CONTROL_PRIMARY_3_X_ATTRIBUTE_ID 0x0019 // Ver.: always -#define ZCL_COLOR_CONTROL_PRIMARY_3_Y_ATTRIBUTE_ID 0x001A // Ver.: always -#define ZCL_COLOR_CONTROL_PRIMARY_3_INTENSITY_ATTRIBUTE_ID 0x001B // Ver.: always -#define ZCL_COLOR_CONTROL_PRIMARY_4_X_ATTRIBUTE_ID 0x0020 // Ver.: always -#define ZCL_COLOR_CONTROL_PRIMARY_4_Y_ATTRIBUTE_ID 0x0021 // Ver.: always -#define ZCL_COLOR_CONTROL_PRIMARY_4_INTENSITY_ATTRIBUTE_ID 0x0022 // Ver.: always -#define ZCL_COLOR_CONTROL_PRIMARY_5_X_ATTRIBUTE_ID 0x0024 // Ver.: always -#define ZCL_COLOR_CONTROL_PRIMARY_5_Y_ATTRIBUTE_ID 0x0025 // Ver.: always -#define ZCL_COLOR_CONTROL_PRIMARY_5_INTENSITY_ATTRIBUTE_ID 0x0026 // Ver.: always -#define ZCL_COLOR_CONTROL_PRIMARY_6_X_ATTRIBUTE_ID 0x0028 // Ver.: always -#define ZCL_COLOR_CONTROL_PRIMARY_6_Y_ATTRIBUTE_ID 0x0029 // Ver.: always -#define ZCL_COLOR_CONTROL_PRIMARY_6_INTENSITY_ATTRIBUTE_ID 0x002A // Ver.: always -#define ZCL_COLOR_CONTROL_WHITE_POINT_X_ATTRIBUTE_ID 0x0030 // Ver.: always -#define ZCL_COLOR_CONTROL_WHITE_POINT_Y_ATTRIBUTE_ID 0x0031 // Ver.: always -#define ZCL_COLOR_CONTROL_COLOR_POINT_R_X_ATTRIBUTE_ID 0x0032 // Ver.: always -#define ZCL_COLOR_CONTROL_COLOR_POINT_R_Y_ATTRIBUTE_ID 0x0033 // Ver.: always -#define ZCL_COLOR_CONTROL_COLOR_POINT_R_INTENSITY_ATTRIBUTE_ID 0x0034 // Ver.: always -#define ZCL_COLOR_CONTROL_COLOR_POINT_G_X_ATTRIBUTE_ID 0x0036 // Ver.: always -#define ZCL_COLOR_CONTROL_COLOR_POINT_G_Y_ATTRIBUTE_ID 0x0037 // Ver.: always -#define ZCL_COLOR_CONTROL_COLOR_POINT_G_INTENSITY_ATTRIBUTE_ID 0x0038 // Ver.: always -#define ZCL_COLOR_CONTROL_COLOR_POINT_B_X_ATTRIBUTE_ID 0x003A // Ver.: always -#define ZCL_COLOR_CONTROL_COLOR_POINT_B_Y_ATTRIBUTE_ID 0x003B // Ver.: always -#define ZCL_COLOR_CONTROL_COLOR_POINT_B_INTENSITY_ATTRIBUTE_ID 0x003C // Ver.: always -#define ZCL_COLOR_CONTROL_ENHANCED_CURRENT_HUE_ATTRIBUTE_ID 0x4000 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_COLOR_CONTROL_ENHANCED_COLOR_MODE_ATTRIBUTE_ID 0x4001 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_COLOR_CONTROL_COLOR_LOOP_ACTIVE_ATTRIBUTE_ID 0x4002 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_COLOR_CONTROL_COLOR_LOOP_DIRECTION_ATTRIBUTE_ID 0x4003 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_COLOR_CONTROL_COLOR_LOOP_TIME_ATTRIBUTE_ID 0x4004 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_COLOR_CONTROL_COLOR_LOOP_START_ENHANCED_HUE_ATTRIBUTE_ID 0x4005 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_COLOR_CONTROL_COLOR_LOOP_STORED_ENHANCED_HUE_ATTRIBUTE_ID 0x4006 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_COLOR_CONTROL_COLOR_CAPABILITIES_ATTRIBUTE_ID 0x400A // Ver.: since zll-1.0-11-0037-10 -#define ZCL_COLOR_CONTROL_COLOR_TEMP_PHYSICAL_MIN_ATTRIBUTE_ID 0x400B // Ver.: since zll-1.0-11-0037-10 -#define ZCL_COLOR_CONTROL_COLOR_TEMP_PHYSICAL_MAX_ATTRIBUTE_ID 0x400C // Ver.: since zll-1.0-11-0037-10 -#define ZCL_COLOR_CONTROL_TEMPERATURE_LEVEL_MIN_MIREDS_ATTRIBUTE_ID 0x400D // Ver.: since l&o-1.0-15-0014-04 -#define ZCL_START_UP_COLOR_TEMPERATURE_MIREDS_ATTRIBUTE_ID 0x4010 // Ver.: since l&o-1.0-15-0014-04 -#define ZCL_COLOR_CONTROL_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_COLOR_CONTROL_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Ballast Configuration -// Cluster specification level: zcl6-errata-14-0129-15 - -// Client attributes -#define ZCL_BALLAST_CONFIGURATION_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_BALLAST_CONFIGURATION_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_PHYSICAL_MIN_LEVEL_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_PHYSICAL_MAX_LEVEL_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_BALLAST_STATUS_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_MIN_LEVEL_ATTRIBUTE_ID 0x0010 // Ver.: always -#define ZCL_MAX_LEVEL_ATTRIBUTE_ID 0x0011 // Ver.: always -#define ZCL_POWER_ON_LEVEL_ATTRIBUTE_ID 0x0012 // Ver.: always -#define ZCL_POWER_ON_FADE_TIME_ATTRIBUTE_ID 0x0013 // Ver.: always -#define ZCL_INTRINSIC_BALLAST_FACTOR_ATTRIBUTE_ID 0x0014 // Ver.: always -#define ZCL_BALLAST_FACTOR_ADJUSTMENT_ATTRIBUTE_ID 0x0015 // Ver.: always -#define ZCL_LAMP_QUALITY_ATTRIBUTE_ID 0x0020 // Ver.: always -#define ZCL_LAMP_TYPE_ATTRIBUTE_ID 0x0030 // Ver.: always -#define ZCL_LAMP_MANUFACTURER_ATTRIBUTE_ID 0x0031 // Ver.: always -#define ZCL_LAMP_RATED_HOURS_ATTRIBUTE_ID 0x0032 // Ver.: always -#define ZCL_LAMP_BURN_HOURS_ATTRIBUTE_ID 0x0033 // Ver.: always -#define ZCL_LAMP_ALARM_MODE_ATTRIBUTE_ID 0x0034 // Ver.: always -#define ZCL_LAMP_BURN_HOURS_TRIP_POINT_ATTRIBUTE_ID 0x0035 // Ver.: always -#define ZCL_BALLAST_CONFIGURATION_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_BALLAST_CONFIGURATION_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Illuminance Measurement -// Cluster specification level: zcl-6.0-15-02018-001 - -// Client attributes -#define ZCL_ILLUM_MEASUREMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_ILLUM_MEASUREMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_ILLUM_MEASURED_VALUE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_ILLUM_MIN_MEASURED_VALUE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_ILLUM_MAX_MEASURED_VALUE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_ILLUM_TOLERANCE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_MEASUREMENT_LIGHT_SENSOR_TYPE_ATTRIBUTE_ID 0x0004 // Ver.: always -#define ZCL_ILLUM_MEASUREMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_ILLUM_MEASUREMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Illuminance Level Sensing -// Cluster specification level: zcl-6.0-15-02018-001 - -// Client attributes -#define ZCL_ILLUM_LEVEL_SENSING_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_ILLUM_LEVEL_SENSING_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_LEVEL_STATUS_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_SENSING_LIGHT_SENSOR_TYPE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_ILLUMINANCE_TARGET_LEVEL_ATTRIBUTE_ID 0x0010 // Ver.: always -#define ZCL_ILLUM_LEVEL_SENSING_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_ILLUM_LEVEL_SENSING_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Temperature Measurement -// Cluster specification level: zcl-6.0-15-02018-001 - -// Client attributes -#define ZCL_TEMP_MEASUREMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_TEMP_MEASUREMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_TEMP_MEASURED_VALUE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_TEMP_MIN_MEASURED_VALUE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_TEMP_MAX_MEASURED_VALUE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_TEMP_TOLERANCE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_TEMP_MEASUREMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_TEMP_MEASUREMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Pressure Measurement -// Cluster specification level: zcl-6.0-15-02018-001 - -// Client attributes -#define ZCL_PRESSURE_MEASUREMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_PRESSURE_MEASUREMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_PRESSURE_MEASURED_VALUE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_PRESSURE_MIN_MEASURED_VALUE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_PRESSURE_MAX_MEASURED_VALUE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_PRESSURE_TOLERANCE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_PRESSURE_SCALED_VALUE_ATTRIBUTE_ID 0x0010 // Ver.: always -#define ZCL_PRESSURE_MIN_SCALED_VALUE_ATTRIBUTE_ID 0x0011 // Ver.: always -#define ZCL_PRESSURE_MAX_SCALED_VALUE_ATTRIBUTE_ID 0x0012 // Ver.: always -#define ZCL_PRESSURE_SCALED_TOLERANCE_ATTRIBUTE_ID 0x0013 // Ver.: always -#define ZCL_PRESSURE_SCALE_ATTRIBUTE_ID 0x0014 // Ver.: always -#define ZCL_PRESSURE_MEASUREMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_PRESSURE_MEASUREMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Flow Measurement -// Cluster specification level: zcl-6.0-15-02018-001 - -// Client attributes -#define ZCL_FLOW_MEASUREMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_FLOW_MEASUREMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_FLOW_MEASURED_VALUE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_FLOW_MIN_MEASURED_VALUE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_FLOW_MAX_MEASURED_VALUE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_FLOW_TOLERANCE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_FLOW_MEASUREMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_FLOW_MEASUREMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Relative Humidity Measurement -// Cluster specification level: zcl-6.0-15-02018-001 - -// Client attributes -#define ZCL_RELATIVE_HUMIDITY_MEASUREMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_RELATIVE_HUMIDITY_MEASUREMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_RELATIVE_HUMIDITY_MEASURED_VALUE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_RELATIVE_HUMIDITY_MIN_MEASURED_VALUE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_RELATIVE_HUMIDITY_MAX_MEASURED_VALUE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_RELATIVE_HUMIDITY_TOLERANCE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_RELATIVE_HUMIDITY_MEASUREMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_RELATIVE_HUMIDITY_MEASUREMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Occupancy Sensing -// Cluster specification level: zcl-6.0-15-02018-001 - -// Client attributes -#define ZCL_OCCUPANCY_SENSING_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_OCCUPANCY_SENSING_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_OCCUPANCY_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_OCCUPANCY_SENSOR_TYPE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_OCCUPANCY_SENSOR_TYPE_BITMAP_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_PIR_OCCUPIED_TO_UNOCCUPIED_DELAY_ATTRIBUTE_ID 0x0010 // Ver.: always -#define ZCL_PIR_UNOCCUPIED_TO_OCCUPIED_DELAY_ATTRIBUTE_ID 0x0011 // Ver.: always -#define ZCL_PIR_UNOCCUPIED_TO_OCCUPIED_THRESHOLD_ATTRIBUTE_ID 0x0012 // Ver.: always -#define ZCL_ULTRASONIC_OCCUPIED_TO_UNOCCUPIED_DELAY_ATTRIBUTE_ID 0x0020 // Ver.: always -#define ZCL_ULTRASONIC_UNOCCUPIED_TO_OCCUPIED_DELAY_ATTRIBUTE_ID 0x0021 // Ver.: always -#define ZCL_ULTRASONIC_UNOCCUPIED_TO_OCCUPIED_THRESHOLD_ATTRIBUTE_ID 0x0022 // Ver.: always -#define ZCL_PHYSICAL_CONTACT_OCCUPIED_TO_UNOCCUPIED_DELAY_ATTRIBUTE_ID 0x0030 // Ver.: always -#define ZCL_PHYSICAL_CONTACT_UNOCCUPIED_TO_OCCUPIED_DELAY_ATTRIBUTE_ID 0x0031 // Ver.: always -#define ZCL_PHYSICAL_CONTACT_UNOCCUPIED_TO_OCCUPIED_THRESHOLD_ATTRIBUTE_ID 0x0032 // Ver.: always -#define ZCL_OCCUPANCY_SENSING_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_OCCUPANCY_SENSING_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Carbon Monoxide Concentration Measurement -// Cluster specification level: zcl-6.0-15-02018-001 - -// Client attributes -#define ZCL_CARBON_MONOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_CARBON_MONOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_CARBON_MONOXIDE_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_CARBON_MONOXIDE_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_CARBON_MONOXIDE_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_CARBON_MONOXIDE_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_CARBON_MONOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_CARBON_MONOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Carbon Dioxide Concentration Measurement -// Cluster specification level: zcl-6.0-15-02018-001 - -// Client attributes -#define ZCL_CARBON_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_CARBON_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_CARBON_DIOXIDE_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_CARBON_DIOXIDE_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_CARBON_DIOXIDE_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_CARBON_DIOXIDE_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_CARBON_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_CARBON_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Ethylene Concentration Measurement -// Cluster specification level: zcl-6.0-15-02018-001 - -// Client attributes -#define ZCL_ETHYLENE_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_ETHYLENE_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_ETHYLENE_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_ETHYLENE_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_ETHYLENE_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_ETHYLENE_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_ETHYLENE_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_ETHYLENE_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Ethylene Oxide Concentration Measurement -// Cluster specification level: zcl-6.0-15-02018-001 - -// Client attributes -#define ZCL_ETHYLENE_OXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_ETHYLENE_OXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_ETHYLENE_OXIDE_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_ETHYLENE_OXIDE_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_ETHYLENE_OXIDE_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_ETHYLENE_OXIDE_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_ETHYLENE_OXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_ETHYLENE_OXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Hydrogen Concentration Measurement -// Cluster specification level: zcl-6.0-15-02018-001 - -// Client attributes -#define ZCL_HYDROGEN_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_HYDROGEN_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_HYDROGEN_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_HYDROGEN_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_HYDROGEN_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_HYDROGEN_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_HYDROGEN_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_HYDROGEN_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Hydrogen Sulphide Concentration Measurement -// Cluster specification level: zcl-6.0-15-02018-001 - -// Client attributes -#define ZCL_HYDROGEN_SULPHIDE_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_HYDROGEN_SULPHIDE_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_HYDROGEN_SULPHIDE_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_HYDROGEN_SULPHIDE_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_HYDROGEN_SULPHIDE_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_HYDROGEN_SULPHIDE_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_HYDROGEN_SULPHIDE_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_HYDROGEN_SULPHIDE_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Nitric Oxide Concentration Measurement -// Cluster specification level: zcl-6.0-15-02018-001 - -// Client attributes -#define ZCL_NITRIC_OXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_NITRIC_OXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_NITRIC_OXIDE_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_NITRIC_OXIDE_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_NITRIC_OXIDE_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_NITRIC_OXIDE_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_NITRIC_OXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_NITRIC_OXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Nitrogen Dioxide Concentration Measurement -// Cluster specification level: zcl-6.0-15-02018-001 - -// Client attributes -#define ZCL_NITROGEN_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_NITROGEN_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_NITROGEN_DIOXIDE_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_NITROGEN_DIOXIDE_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_NITROGEN_DIOXIDE_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_NITROGEN_DIOXIDE_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_NITROGEN_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_NITROGEN_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Oxygen Concentration Measurement -// Cluster specification level: zcl-6.0-15-02018-001 - -// Client attributes -#define ZCL_OXYGEN_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_OXYGEN_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_OXYGEN_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_OXYGEN_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_OXYGEN_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_OXYGEN_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_OXYGEN_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_OXYGEN_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Ozone Concentration Measurement -// Cluster specification level: zcl-6.0-15-02018-001 - -// Client attributes -#define ZCL_OZONE_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_OZONE_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_OZONE_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_OZONE_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_OZONE_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_OZONE_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_OZONE_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_OZONE_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Sulfur Dioxide Concentration Measurement -// Cluster specification level: zcl-6.0-15-02018-001 - -// Client attributes -#define ZCL_SULFUR_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_SULFUR_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_SULFUR_DIOXIDE_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_SULFUR_DIOXIDE_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_SULFUR_DIOXIDE_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_SULFUR_DIOXIDE_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_SULFUR_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_SULFUR_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Dissolved Oxygen Concentration Measurement -// Cluster specification level: zcl-6.0-15-02018-001 - -// Client attributes -#define ZCL_DISSOLVED_OXYGEN_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_DISSOLVED_OXYGEN_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_DISSOLVED_OXYGEN_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_DISSOLVED_OXYGEN_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_DISSOLVED_OXYGEN_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_DISSOLVED_OXYGEN_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_DISSOLVED_OXYGEN_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_DISSOLVED_OXYGEN_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Bromate Concentration Measurement -// Cluster specification level: zcl-6.0-15-02018-001 - -// Client attributes -#define ZCL_BROMATE_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_BROMATE_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_BROMATE_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_BROMATE_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_BROMATE_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_BROMATE_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_BROMATE_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_BROMATE_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Chloramines Concentration Measurement -// Cluster specification level: zcl-6.0-15-02018-001 - -// Client attributes -#define ZCL_CHLORAMINES_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_CHLORAMINES_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_CHLORAMINES_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_CHLORAMINES_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_CHLORAMINES_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_CHLORAMINES_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_CHLORAMINES_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_CHLORAMINES_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Chlorine Concentration Measurement -// Cluster specification level: zcl-6.0-15-02018-001 - -// Client attributes -#define ZCL_CHLORINE_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_CHLORINE_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_CHLORINE_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_CHLORINE_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_CHLORINE_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_CHLORINE_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_CHLORINE_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_CHLORINE_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Fecal coliform and E. Coli Concentration Measurement -// Cluster specification level: zcl-6.0-15-02018-001 - -// Client attributes -#define ZCL_FECAL_COLIFORM_AND_E_COLI_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_FECAL_COLIFORM_AND_E_COLI_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_FECAL_COLIFORM_AND_E_COLI_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_FECAL_COLIFORM_AND_E_COLI_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_FECAL_COLIFORM_AND_E_COLI_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_FECAL_COLIFORM_AND_E_COLI_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_FECAL_COLIFORM_AND_E_COLI_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_FECAL_COLIFORM_AND_E_COLI_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Fluoride Concentration Measurement -// Cluster specification level: zcl-6.0-15-02018-001 - -// Client attributes -#define ZCL_FLUORIDE_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_FLUORIDE_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_FLUORIDE_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_FLUORIDE_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_FLUORIDE_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_FLUORIDE_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_FLUORIDE_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_FLUORIDE_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Haloacetic Acids Concentration Measurement -// Cluster specification level: zcl-6.0-15-02018-001 - -// Client attributes -#define ZCL_HALOACETIC_ACIDS_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_HALOACETIC_ACIDS_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_HALOACETIC_ACIDS_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_HALOACETIC_ACIDS_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_HALOACETIC_ACIDS_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_HALOACETIC_ACIDS_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_HALOACETIC_ACIDS_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_HALOACETIC_ACIDS_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Total Trihalomethanes Concentration Measurement -// Cluster specification level: zcl-6.0-15-02018-001 - -// Client attributes -#define ZCL_TOTAL_TRIHALOMETHANES_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_TOTAL_TRIHALOMETHANES_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_TOTAL_TRIHALOMETHANES_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_TOTAL_TRIHALOMETHANES_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_TOTAL_TRIHALOMETHANES_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_TOTAL_TRIHALOMETHANES_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_TOTAL_TRIHALOMETHANES_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_TOTAL_TRIHALOMETHANES_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Total Coliform Bacteria Concentration Measurement -// Cluster specification level: zcl-6.0-15-02018-001 - -// Client attributes -#define ZCL_TOTAL_COLIFORM_BACTERIA_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_TOTAL_COLIFORM_BACTERIA_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_TOTAL_COLIFORM_BACTERIA_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_TOTAL_COLIFORM_BACTERIA_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_TOTAL_COLIFORM_BACTERIA_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_TOTAL_COLIFORM_BACTERIA_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_TOTAL_COLIFORM_BACTERIA_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_TOTAL_COLIFORM_BACTERIA_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Turbidity Concentration Measurement -// Cluster specification level: zcl-6.0-15-02018-001 - -// Client attributes -#define ZCL_TURBIDITY_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_TURBIDITY_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_TURBIDITY_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_TURBIDITY_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_TURBIDITY_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_TURBIDITY_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_TURBIDITY_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_TURBIDITY_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Copper Concentration Measurement -// Cluster specification level: zcl-6.0-15-02018-001 - -// Client attributes -#define ZCL_COPPER_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_COPPER_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_COPPER_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_COPPER_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_COPPER_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_COPPER_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_COPPER_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_COPPER_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Lead Concentration Measurement -// Cluster specification level: zcl-6.0-15-02018-001 - -// Client attributes -#define ZCL_LEAD_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_LEAD_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_LEAD_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_LEAD_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_LEAD_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_LEAD_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_LEAD_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_LEAD_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Manganese Concentration Measurement -// Cluster specification level: zcl-6.0-15-02018-001 - -// Client attributes -#define ZCL_MANGANESE_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_MANGANESE_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_MANGANESE_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_MANGANESE_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_MANGANESE_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_MANGANESE_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_MANGANESE_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_MANGANESE_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Sulfate Concentration Measurement -// Cluster specification level: zcl-6.0-15-02018-001 - -// Client attributes -#define ZCL_SULFATE_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_SULFATE_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_SULFATE_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_SULFATE_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_SULFATE_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_SULFATE_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_SULFATE_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_SULFATE_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Bromodichloromethane Concentration Measurement -// Cluster specification level: zcl-6.0-15-02018-001 - -// Client attributes -#define ZCL_BROMODICHLOROMETHANE_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_BROMODICHLOROMETHANE_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_BROMODICHLOROMETHANE_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_BROMODICHLOROMETHANE_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_BROMODICHLOROMETHANE_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_BROMODICHLOROMETHANE_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_BROMODICHLOROMETHANE_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_BROMODICHLOROMETHANE_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Bromoform Concentration Measurement -// Cluster specification level: zcl-6.0-15-02018-001 - -// Client attributes -#define ZCL_BROMOFORM_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_BROMOFORM_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_BROMOFORM_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_BROMOFORM_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_BROMOFORM_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_BROMOFORM_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_BROMOFORM_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_BROMOFORM_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Chlorodibromomethane Concentration Measurement -// Cluster specification level: zcl-6.0-15-02018-001 - -// Client attributes -#define ZCL_CHLORODIBROMOMETHANE_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_CHLORODIBROMOMETHANE_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_CHLORODIBROMOMETHANE_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_CHLORODIBROMOMETHANE_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_CHLORODIBROMOMETHANE_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_CHLORODIBROMOMETHANE_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_CHLORODIBROMOMETHANE_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_CHLORODIBROMOMETHANE_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Chloroform Concentration Measurement -// Cluster specification level: zcl-6.0-15-02018-001 - -// Client attributes -#define ZCL_CHLOROFORM_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_CHLOROFORM_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_CHLOROFORM_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_CHLOROFORM_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_CHLOROFORM_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_CHLOROFORM_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_CHLOROFORM_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID \ - 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_CHLOROFORM_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID \ - 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Sodium Concentration Measurement -// Cluster specification level: zcl-6.0-15-02018-001 - -// Client attributes -#define ZCL_SODIUM_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_SODIUM_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_SODIUM_CONCENTRATION_MEASUREMENT_MEASURED_VALUE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_SODIUM_CONCENTRATION_MEASUREMENT_MIN_MEASURED_VALUE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_SODIUM_CONCENTRATION_MEASUREMENT_MAX_MEASURED_VALUE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_SODIUM_CONCENTRATION_MEASUREMENT_TOLERANCE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_SODIUM_CONCENTRATION_MEASUREMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_SODIUM_CONCENTRATION_MEASUREMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: IAS Zone -// Cluster specification level: zcl-6.0-15-02018-001 - -// Client attributes -#define ZCL_IAS_ZONE_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_IAS_ZONE_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_ZONE_STATE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_ZONE_TYPE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_ZONE_STATUS_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_IAS_CIE_ADDRESS_ATTRIBUTE_ID 0x0010 // Ver.: always -#define ZCL_ZONE_ID_ATTRIBUTE_ID 0x0011 // Ver.: always -#define ZCL_NUMBER_OF_ZONE_SENSITIVITY_LEVELS_SUPPORTED_ATTRIBUTE_ID 0x0012 // Ver.: always -#define ZCL_CURRENT_ZONE_SENSITIVITY_LEVEL_ATTRIBUTE_ID 0x0013 // Ver.: always -#define ZCL_IAS_ZONE_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_IAS_ZONE_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: IAS ACE -// Cluster specification level: zcl-6.0-15-02018-001 - -// Client attributes -#define ZCL_IAS_ACE_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_IAS_ACE_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_IAS_ACE_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_IAS_ACE_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: IAS WD -// Cluster specification level: zcl-6.0-15-02018-001 - -// Client attributes -#define ZCL_IAS_WD_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_IAS_WD_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_MAX_DURATION_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_IAS_WD_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_IAS_WD_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Generic Tunnel -// Cluster specification level: cba-1.0-05-3516-12 - -// Client attributes -#define ZCL_GENERIC_TUNNEL_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_GENERIC_TUNNEL_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_MAXIMUM_INCOMING_TRANSFER_SIZE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_MAXIMUM_OUTGOING_TRANSFER_SIZE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_PROTOCOL_ADDRESS_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_GENERIC_TUNNEL_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_GENERIC_TUNNEL_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: BACnet Protocol Tunnel -// Cluster specification level: cba-1.0-05-3516-12 - -// Client attributes -#define ZCL_BACNET_PROTOCOL_TUNNEL_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_BACNET_PROTOCOL_TUNNEL_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_BACNET_PROTOCOL_TUNNEL_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_BACNET_PROTOCOL_TUNNEL_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: 11073 Protocol Tunnel -// Cluster specification level: hc-1.0-07-5360-15 - -// Client attributes -#define ZCL_11073_PROTOCOL_TUNNEL_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_11073_PROTOCOL_TUNNEL_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_DEVICE_ID_LIST_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_MANAGER_TARGET_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_MANAGER_ENDPOINT_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_CONNECTED_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_PREEMPTIBLE_ATTRIBUTE_ID 0x0004 // Ver.: always -#define ZCL_IDLE_TIMEOUT_ATTRIBUTE_ID 0x0005 // Ver.: always -#define ZCL_11073_PROTOCOL_TUNNEL_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_11073_PROTOCOL_TUNNEL_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: ISO 7816 Protocol Tunnel -// Cluster specification level: ta-1.0-07-5307-07 - -// Client attributes -#define ZCL_ISO7816_PROTOCOL_TUNNEL_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_ISO7816_PROTOCOL_TUNNEL_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_ISO7816_PROTOCOL_TUNNEL_STATUS_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_ISO7816_PROTOCOL_TUNNEL_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_ISO7816_PROTOCOL_TUNNEL_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Price -// Cluster specification level: se-1.2b-15-0131-02 - -// Client attributes -#define ZCL_PRICE_INCREASE_RANDOMIZE_MINUTES_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_PRICE_DECREASE_RANDOMIZE_MINUTES_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_COMMODITY_TYPE_CLIENT_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_PRICE_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_PRICE_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_TIER1_PRICE_LABEL_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_TIER2_PRICE_LABEL_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_TIER3_PRICE_LABEL_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_TIER4_PRICE_LABEL_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_TIER5_PRICE_LABEL_ATTRIBUTE_ID 0x0004 // Ver.: always -#define ZCL_TIER6_PRICE_LABEL_ATTRIBUTE_ID 0x0005 // Ver.: always -#define ZCL_TIER7_PRICE_LABEL_ATTRIBUTE_ID 0x0006 // Ver.: always -#define ZCL_TIER8_PRICE_LABEL_ATTRIBUTE_ID 0x0007 // Ver.: always -#define ZCL_TIER9_PRICE_LABEL_ATTRIBUTE_ID 0x0008 // Ver.: always -#define ZCL_TIER10_PRICE_LABEL_ATTRIBUTE_ID 0x0009 // Ver.: always -#define ZCL_TIER11_PRICE_LABEL_ATTRIBUTE_ID 0x000A // Ver.: always -#define ZCL_TIER12_PRICE_LABEL_ATTRIBUTE_ID 0x000B // Ver.: always -#define ZCL_TIER13_PRICE_LABEL_ATTRIBUTE_ID 0x000C // Ver.: always -#define ZCL_TIER14_PRICE_LABEL_ATTRIBUTE_ID 0x000D // Ver.: always -#define ZCL_TIER15_PRICE_LABEL_ATTRIBUTE_ID 0x000E // Ver.: always -#define ZCL_TIER16_PRICE_LABEL_ATTRIBUTE_ID 0x000F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER17_PRICE_LABEL_ATTRIBUTE_ID 0x0010 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER18_PRICE_LABEL_ATTRIBUTE_ID 0x0011 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER19_PRICE_LABEL_ATTRIBUTE_ID 0x0012 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER20_PRICE_LABEL_ATTRIBUTE_ID 0x0013 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER21_PRICE_LABEL_ATTRIBUTE_ID 0x0014 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER22_PRICE_LABEL_ATTRIBUTE_ID 0x0015 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER23_PRICE_LABEL_ATTRIBUTE_ID 0x0016 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER24_PRICE_LABEL_ATTRIBUTE_ID 0x0017 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER25_PRICE_LABEL_ATTRIBUTE_ID 0x0018 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER26_PRICE_LABEL_ATTRIBUTE_ID 0x0019 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER27_PRICE_LABEL_ATTRIBUTE_ID 0x001A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER28_PRICE_LABEL_ATTRIBUTE_ID 0x001B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER29_PRICE_LABEL_ATTRIBUTE_ID 0x001C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER30_PRICE_LABEL_ATTRIBUTE_ID 0x001D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER31_PRICE_LABEL_ATTRIBUTE_ID 0x001E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER32_PRICE_LABEL_ATTRIBUTE_ID 0x001F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER33_PRICE_LABEL_ATTRIBUTE_ID 0x0020 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER34_PRICE_LABEL_ATTRIBUTE_ID 0x0021 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER35_PRICE_LABEL_ATTRIBUTE_ID 0x0022 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER36_PRICE_LABEL_ATTRIBUTE_ID 0x0023 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER37_PRICE_LABEL_ATTRIBUTE_ID 0x0024 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER38_PRICE_LABEL_ATTRIBUTE_ID 0x0025 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER39_PRICE_LABEL_ATTRIBUTE_ID 0x0026 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER40_PRICE_LABEL_ATTRIBUTE_ID 0x0027 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER41_PRICE_LABEL_ATTRIBUTE_ID 0x0028 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER42_PRICE_LABEL_ATTRIBUTE_ID 0x0029 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER43_PRICE_LABEL_ATTRIBUTE_ID 0x002A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER44_PRICE_LABEL_ATTRIBUTE_ID 0x002B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER45_PRICE_LABEL_ATTRIBUTE_ID 0x002C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER46_PRICE_LABEL_ATTRIBUTE_ID 0x002D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER47_PRICE_LABEL_ATTRIBUTE_ID 0x002E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER48_PRICE_LABEL_ATTRIBUTE_ID 0x002F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_BLOCK1_THRESHOLD_ATTRIBUTE_ID 0x0100 // Ver.: always -#define ZCL_BLOCK2_THRESHOLD_ATTRIBUTE_ID 0x0101 // Ver.: always -#define ZCL_BLOCK3_THRESHOLD_ATTRIBUTE_ID 0x0102 // Ver.: always -#define ZCL_BLOCK4_THRESHOLD_ATTRIBUTE_ID 0x0103 // Ver.: always -#define ZCL_BLOCK5_THRESHOLD_ATTRIBUTE_ID 0x0104 // Ver.: always -#define ZCL_BLOCK6_THRESHOLD_ATTRIBUTE_ID 0x0105 // Ver.: always -#define ZCL_BLOCK7_THRESHOLD_ATTRIBUTE_ID 0x0106 // Ver.: always -#define ZCL_BLOCK8_THRESHOLD_ATTRIBUTE_ID 0x0107 // Ver.: always -#define ZCL_BLOCK9_THRESHOLD_ATTRIBUTE_ID 0x0108 // Ver.: always -#define ZCL_BLOCK10_THRESHOLD_ATTRIBUTE_ID 0x0109 // Ver.: always -#define ZCL_BLOCK11_THRESHOLD_ATTRIBUTE_ID 0x010A // Ver.: always -#define ZCL_BLOCK12_THRESHOLD_ATTRIBUTE_ID 0x010B // Ver.: always -#define ZCL_BLOCK13_THRESHOLD_ATTRIBUTE_ID 0x010C // Ver.: always -#define ZCL_BLOCK14_THRESHOLD_ATTRIBUTE_ID 0x010D // Ver.: always -#define ZCL_BLOCK15_THRESHOLD_ATTRIBUTE_ID 0x010E // Ver.: always -#define ZCL_BLOCK_THRESHOLD_COUNT_ATTRIBUTE_ID 0x010F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER1_BLOCK1_THRESHOLD_ATTRIBUTE_ID 0x0110 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER1_BLOCK2_THRESHOLD_ATTRIBUTE_ID 0x0111 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER1_BLOCK3_THRESHOLD_ATTRIBUTE_ID 0x0112 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER1_BLOCK4_THRESHOLD_ATTRIBUTE_ID 0x0113 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER1_BLOCK5_THRESHOLD_ATTRIBUTE_ID 0x0114 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER1_BLOCK6_THRESHOLD_ATTRIBUTE_ID 0x0115 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER1_BLOCK7_THRESHOLD_ATTRIBUTE_ID 0x0116 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER1_BLOCK8_THRESHOLD_ATTRIBUTE_ID 0x0117 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER1_BLOCK9_THRESHOLD_ATTRIBUTE_ID 0x0118 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER1_BLOCK10_THRESHOLD_ATTRIBUTE_ID 0x0119 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER1_BLOCK11_THRESHOLD_ATTRIBUTE_ID 0x011A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER1_BLOCK12_THRESHOLD_ATTRIBUTE_ID 0x011B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER1_BLOCK13_THRESHOLD_ATTRIBUTE_ID 0x011C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER1_BLOCK14_THRESHOLD_ATTRIBUTE_ID 0x011D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER1_BLOCK15_THRESHOLD_ATTRIBUTE_ID 0x011E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER1_BLOCK_THRESHOLD_COUNT_ATTRIBUTE_ID 0x011F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER2_BLOCK1_THRESHOLD_ATTRIBUTE_ID 0x0120 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER2_BLOCK2_THRESHOLD_ATTRIBUTE_ID 0x0121 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER2_BLOCK3_THRESHOLD_ATTRIBUTE_ID 0x0122 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER2_BLOCK4_THRESHOLD_ATTRIBUTE_ID 0x0123 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER2_BLOCK5_THRESHOLD_ATTRIBUTE_ID 0x0124 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER2_BLOCK6_THRESHOLD_ATTRIBUTE_ID 0x0125 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER2_BLOCK7_THRESHOLD_ATTRIBUTE_ID 0x0126 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER2_BLOCK8_THRESHOLD_ATTRIBUTE_ID 0x0127 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER2_BLOCK9_THRESHOLD_ATTRIBUTE_ID 0x0128 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER2_BLOCK10_THRESHOLD_ATTRIBUTE_ID 0x0129 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER2_BLOCK11_THRESHOLD_ATTRIBUTE_ID 0x012A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER2_BLOCK12_THRESHOLD_ATTRIBUTE_ID 0x012B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER2_BLOCK13_THRESHOLD_ATTRIBUTE_ID 0x012C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER2_BLOCK14_THRESHOLD_ATTRIBUTE_ID 0x012D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER2_BLOCK15_THRESHOLD_ATTRIBUTE_ID 0x012E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER2_BLOCK_THRESHOLD_COUNT_ATTRIBUTE_ID 0x012F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER3_BLOCK1_THRESHOLD_ATTRIBUTE_ID 0x0130 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER3_BLOCK2_THRESHOLD_ATTRIBUTE_ID 0x0131 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER3_BLOCK3_THRESHOLD_ATTRIBUTE_ID 0x0132 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER3_BLOCK4_THRESHOLD_ATTRIBUTE_ID 0x0133 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER3_BLOCK5_THRESHOLD_ATTRIBUTE_ID 0x0134 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER3_BLOCK6_THRESHOLD_ATTRIBUTE_ID 0x0135 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER3_BLOCK7_THRESHOLD_ATTRIBUTE_ID 0x0136 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER3_BLOCK8_THRESHOLD_ATTRIBUTE_ID 0x0137 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER3_BLOCK9_THRESHOLD_ATTRIBUTE_ID 0x0138 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER3_BLOCK10_THRESHOLD_ATTRIBUTE_ID 0x0139 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER3_BLOCK11_THRESHOLD_ATTRIBUTE_ID 0x013A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER3_BLOCK12_THRESHOLD_ATTRIBUTE_ID 0x013B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER3_BLOCK13_THRESHOLD_ATTRIBUTE_ID 0x013C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER3_BLOCK14_THRESHOLD_ATTRIBUTE_ID 0x013D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER3_BLOCK15_THRESHOLD_ATTRIBUTE_ID 0x013E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER3_BLOCK_THRESHOLD_COUNT_ATTRIBUTE_ID 0x013F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER4_BLOCK1_THRESHOLD_ATTRIBUTE_ID 0x0140 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER4_BLOCK2_THRESHOLD_ATTRIBUTE_ID 0x0141 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER4_BLOCK3_THRESHOLD_ATTRIBUTE_ID 0x0142 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER4_BLOCK4_THRESHOLD_ATTRIBUTE_ID 0x0143 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER4_BLOCK5_THRESHOLD_ATTRIBUTE_ID 0x0144 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER4_BLOCK6_THRESHOLD_ATTRIBUTE_ID 0x0145 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER4_BLOCK7_THRESHOLD_ATTRIBUTE_ID 0x0146 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER4_BLOCK8_THRESHOLD_ATTRIBUTE_ID 0x0147 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER4_BLOCK9_THRESHOLD_ATTRIBUTE_ID 0x0148 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER4_BLOCK10_THRESHOLD_ATTRIBUTE_ID 0x0149 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER4_BLOCK11_THRESHOLD_ATTRIBUTE_ID 0x014A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER4_BLOCK12_THRESHOLD_ATTRIBUTE_ID 0x014B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER4_BLOCK13_THRESHOLD_ATTRIBUTE_ID 0x014C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER4_BLOCK14_THRESHOLD_ATTRIBUTE_ID 0x014D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER4_BLOCK15_THRESHOLD_ATTRIBUTE_ID 0x014E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER4_BLOCK_THRESHOLD_COUNT_ATTRIBUTE_ID 0x014F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER5_BLOCK1_THRESHOLD_ATTRIBUTE_ID 0x0150 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER5_BLOCK2_THRESHOLD_ATTRIBUTE_ID 0x0151 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER5_BLOCK3_THRESHOLD_ATTRIBUTE_ID 0x0152 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER5_BLOCK4_THRESHOLD_ATTRIBUTE_ID 0x0153 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER5_BLOCK5_THRESHOLD_ATTRIBUTE_ID 0x0154 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER5_BLOCK6_THRESHOLD_ATTRIBUTE_ID 0x0155 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER5_BLOCK7_THRESHOLD_ATTRIBUTE_ID 0x0156 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER5_BLOCK8_THRESHOLD_ATTRIBUTE_ID 0x0157 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER5_BLOCK9_THRESHOLD_ATTRIBUTE_ID 0x0158 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER5_BLOCK10_THRESHOLD_ATTRIBUTE_ID 0x0159 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER5_BLOCK11_THRESHOLD_ATTRIBUTE_ID 0x015A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER5_BLOCK12_THRESHOLD_ATTRIBUTE_ID 0x015B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER5_BLOCK13_THRESHOLD_ATTRIBUTE_ID 0x015C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER5_BLOCK14_THRESHOLD_ATTRIBUTE_ID 0x015D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER5_BLOCK15_THRESHOLD_ATTRIBUTE_ID 0x015E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER5_BLOCK_THRESHOLD_COUNT_ATTRIBUTE_ID 0x015F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER6_BLOCK1_THRESHOLD_ATTRIBUTE_ID 0x0160 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER6_BLOCK2_THRESHOLD_ATTRIBUTE_ID 0x0161 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER6_BLOCK3_THRESHOLD_ATTRIBUTE_ID 0x0162 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER6_BLOCK4_THRESHOLD_ATTRIBUTE_ID 0x0163 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER6_BLOCK5_THRESHOLD_ATTRIBUTE_ID 0x0164 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER6_BLOCK6_THRESHOLD_ATTRIBUTE_ID 0x0165 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER6_BLOCK7_THRESHOLD_ATTRIBUTE_ID 0x0166 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER6_BLOCK8_THRESHOLD_ATTRIBUTE_ID 0x0167 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER6_BLOCK9_THRESHOLD_ATTRIBUTE_ID 0x0168 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER6_BLOCK10_THRESHOLD_ATTRIBUTE_ID 0x0169 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER6_BLOCK11_THRESHOLD_ATTRIBUTE_ID 0x016A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER6_BLOCK12_THRESHOLD_ATTRIBUTE_ID 0x016B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER6_BLOCK13_THRESHOLD_ATTRIBUTE_ID 0x016C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER6_BLOCK14_THRESHOLD_ATTRIBUTE_ID 0x016D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER6_BLOCK15_THRESHOLD_ATTRIBUTE_ID 0x016E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER6_BLOCK_THRESHOLD_COUNT_ATTRIBUTE_ID 0x016F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER7_BLOCK1_THRESHOLD_ATTRIBUTE_ID 0x0170 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER7_BLOCK2_THRESHOLD_ATTRIBUTE_ID 0x0171 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER7_BLOCK3_THRESHOLD_ATTRIBUTE_ID 0x0172 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER7_BLOCK4_THRESHOLD_ATTRIBUTE_ID 0x0173 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER7_BLOCK5_THRESHOLD_ATTRIBUTE_ID 0x0174 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER7_BLOCK6_THRESHOLD_ATTRIBUTE_ID 0x0175 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER7_BLOCK7_THRESHOLD_ATTRIBUTE_ID 0x0176 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER7_BLOCK8_THRESHOLD_ATTRIBUTE_ID 0x0177 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER7_BLOCK9_THRESHOLD_ATTRIBUTE_ID 0x0178 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER7_BLOCK10_THRESHOLD_ATTRIBUTE_ID 0x0179 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER7_BLOCK11_THRESHOLD_ATTRIBUTE_ID 0x017A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER7_BLOCK12_THRESHOLD_ATTRIBUTE_ID 0x017B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER7_BLOCK13_THRESHOLD_ATTRIBUTE_ID 0x017C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER7_BLOCK14_THRESHOLD_ATTRIBUTE_ID 0x017D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER7_BLOCK15_THRESHOLD_ATTRIBUTE_ID 0x017E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER7_BLOCK_THRESHOLD_COUNT_ATTRIBUTE_ID 0x017F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER8_BLOCK1_THRESHOLD_ATTRIBUTE_ID 0x0180 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER8_BLOCK2_THRESHOLD_ATTRIBUTE_ID 0x0181 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER8_BLOCK3_THRESHOLD_ATTRIBUTE_ID 0x0182 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER8_BLOCK4_THRESHOLD_ATTRIBUTE_ID 0x0183 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER8_BLOCK5_THRESHOLD_ATTRIBUTE_ID 0x0184 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER8_BLOCK6_THRESHOLD_ATTRIBUTE_ID 0x0185 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER8_BLOCK7_THRESHOLD_ATTRIBUTE_ID 0x0186 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER8_BLOCK8_THRESHOLD_ATTRIBUTE_ID 0x0187 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER8_BLOCK9_THRESHOLD_ATTRIBUTE_ID 0x0188 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER8_BLOCK10_THRESHOLD_ATTRIBUTE_ID 0x0189 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER8_BLOCK11_THRESHOLD_ATTRIBUTE_ID 0x018A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER8_BLOCK12_THRESHOLD_ATTRIBUTE_ID 0x018B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER8_BLOCK13_THRESHOLD_ATTRIBUTE_ID 0x018C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER8_BLOCK14_THRESHOLD_ATTRIBUTE_ID 0x018D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER8_BLOCK15_THRESHOLD_ATTRIBUTE_ID 0x018E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER8_BLOCK_THRESHOLD_COUNT_ATTRIBUTE_ID 0x018F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER9_BLOCK1_THRESHOLD_ATTRIBUTE_ID 0x0190 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER9_BLOCK2_THRESHOLD_ATTRIBUTE_ID 0x0191 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER9_BLOCK3_THRESHOLD_ATTRIBUTE_ID 0x0192 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER9_BLOCK4_THRESHOLD_ATTRIBUTE_ID 0x0193 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER9_BLOCK5_THRESHOLD_ATTRIBUTE_ID 0x0194 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER9_BLOCK6_THRESHOLD_ATTRIBUTE_ID 0x0195 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER9_BLOCK7_THRESHOLD_ATTRIBUTE_ID 0x0196 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER9_BLOCK8_THRESHOLD_ATTRIBUTE_ID 0x0197 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER9_BLOCK9_THRESHOLD_ATTRIBUTE_ID 0x0198 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER9_BLOCK10_THRESHOLD_ATTRIBUTE_ID 0x0199 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER9_BLOCK11_THRESHOLD_ATTRIBUTE_ID 0x019A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER9_BLOCK12_THRESHOLD_ATTRIBUTE_ID 0x019B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER9_BLOCK13_THRESHOLD_ATTRIBUTE_ID 0x019C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER9_BLOCK14_THRESHOLD_ATTRIBUTE_ID 0x019D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER9_BLOCK15_THRESHOLD_ATTRIBUTE_ID 0x019E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER9_BLOCK_THRESHOLD_COUNT_ATTRIBUTE_ID 0x019F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER10_BLOCK1_THRESHOLD_ATTRIBUTE_ID 0x01A0 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER10_BLOCK2_THRESHOLD_ATTRIBUTE_ID 0x01A1 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER10_BLOCK3_THRESHOLD_ATTRIBUTE_ID 0x01A2 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER10_BLOCK4_THRESHOLD_ATTRIBUTE_ID 0x01A3 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER10_BLOCK5_THRESHOLD_ATTRIBUTE_ID 0x01A4 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER10_BLOCK6_THRESHOLD_ATTRIBUTE_ID 0x01A5 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER10_BLOCK7_THRESHOLD_ATTRIBUTE_ID 0x01A6 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER10_BLOCK8_THRESHOLD_ATTRIBUTE_ID 0x01A7 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER10_BLOCK9_THRESHOLD_ATTRIBUTE_ID 0x01A8 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER10_BLOCK10_THRESHOLD_ATTRIBUTE_ID 0x01A9 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER10_BLOCK11_THRESHOLD_ATTRIBUTE_ID 0x01AA // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER10_BLOCK12_THRESHOLD_ATTRIBUTE_ID 0x01AB // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER10_BLOCK13_THRESHOLD_ATTRIBUTE_ID 0x01AC // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER10_BLOCK14_THRESHOLD_ATTRIBUTE_ID 0x01AD // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER10_BLOCK15_THRESHOLD_ATTRIBUTE_ID 0x01AE // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER10_BLOCK_THRESHOLD_COUNT_ATTRIBUTE_ID 0x01AF // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER11_BLOCK1_THRESHOLD_ATTRIBUTE_ID 0x01B0 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER11_BLOCK2_THRESHOLD_ATTRIBUTE_ID 0x01B1 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER11_BLOCK3_THRESHOLD_ATTRIBUTE_ID 0x01B2 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER11_BLOCK4_THRESHOLD_ATTRIBUTE_ID 0x01B3 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER11_BLOCK5_THRESHOLD_ATTRIBUTE_ID 0x01B4 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER11_BLOCK6_THRESHOLD_ATTRIBUTE_ID 0x01B5 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER11_BLOCK7_THRESHOLD_ATTRIBUTE_ID 0x01B6 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER11_BLOCK8_THRESHOLD_ATTRIBUTE_ID 0x01B7 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER11_BLOCK9_THRESHOLD_ATTRIBUTE_ID 0x01B8 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER11_BLOCK10_THRESHOLD_ATTRIBUTE_ID 0x01B9 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER11_BLOCK11_THRESHOLD_ATTRIBUTE_ID 0x01BA // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER11_BLOCK12_THRESHOLD_ATTRIBUTE_ID 0x01BB // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER11_BLOCK13_THRESHOLD_ATTRIBUTE_ID 0x01BC // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER11_BLOCK14_THRESHOLD_ATTRIBUTE_ID 0x01BD // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER11_BLOCK15_THRESHOLD_ATTRIBUTE_ID 0x01BE // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER11_BLOCK_THRESHOLD_COUNT_ATTRIBUTE_ID 0x01BF // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER12_BLOCK1_THRESHOLD_ATTRIBUTE_ID 0x01C0 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER12_BLOCK2_THRESHOLD_ATTRIBUTE_ID 0x01C1 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER12_BLOCK3_THRESHOLD_ATTRIBUTE_ID 0x01C2 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER12_BLOCK4_THRESHOLD_ATTRIBUTE_ID 0x01C3 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER12_BLOCK5_THRESHOLD_ATTRIBUTE_ID 0x01C4 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER12_BLOCK6_THRESHOLD_ATTRIBUTE_ID 0x01C5 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER12_BLOCK7_THRESHOLD_ATTRIBUTE_ID 0x01C6 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER12_BLOCK8_THRESHOLD_ATTRIBUTE_ID 0x01C7 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER12_BLOCK9_THRESHOLD_ATTRIBUTE_ID 0x01C8 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER12_BLOCK10_THRESHOLD_ATTRIBUTE_ID 0x01C9 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER12_BLOCK11_THRESHOLD_ATTRIBUTE_ID 0x01CA // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER12_BLOCK12_THRESHOLD_ATTRIBUTE_ID 0x01CB // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER12_BLOCK13_THRESHOLD_ATTRIBUTE_ID 0x01CC // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER12_BLOCK14_THRESHOLD_ATTRIBUTE_ID 0x01CD // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER12_BLOCK15_THRESHOLD_ATTRIBUTE_ID 0x01CE // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER12_BLOCK_THRESHOLD_COUNT_ATTRIBUTE_ID 0x01CF // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER13_BLOCK1_THRESHOLD_ATTRIBUTE_ID 0x01D0 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER13_BLOCK2_THRESHOLD_ATTRIBUTE_ID 0x01D1 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER13_BLOCK3_THRESHOLD_ATTRIBUTE_ID 0x01D2 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER13_BLOCK4_THRESHOLD_ATTRIBUTE_ID 0x01D3 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER13_BLOCK5_THRESHOLD_ATTRIBUTE_ID 0x01D4 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER13_BLOCK6_THRESHOLD_ATTRIBUTE_ID 0x01D5 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER13_BLOCK7_THRESHOLD_ATTRIBUTE_ID 0x01D6 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER13_BLOCK8_THRESHOLD_ATTRIBUTE_ID 0x01D7 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER13_BLOCK9_THRESHOLD_ATTRIBUTE_ID 0x01D8 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER13_BLOCK10_THRESHOLD_ATTRIBUTE_ID 0x01D9 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER13_BLOCK11_THRESHOLD_ATTRIBUTE_ID 0x01DA // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER13_BLOCK12_THRESHOLD_ATTRIBUTE_ID 0x01DB // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER13_BLOCK13_THRESHOLD_ATTRIBUTE_ID 0x01DC // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER13_BLOCK14_THRESHOLD_ATTRIBUTE_ID 0x01DD // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER13_BLOCK15_THRESHOLD_ATTRIBUTE_ID 0x01DE // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER13_BLOCK_THRESHOLD_COUNT_ATTRIBUTE_ID 0x01DF // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER14_BLOCK1_THRESHOLD_ATTRIBUTE_ID 0x01E0 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER14_BLOCK2_THRESHOLD_ATTRIBUTE_ID 0x01E1 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER14_BLOCK3_THRESHOLD_ATTRIBUTE_ID 0x01E2 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER14_BLOCK4_THRESHOLD_ATTRIBUTE_ID 0x01E3 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER14_BLOCK5_THRESHOLD_ATTRIBUTE_ID 0x01E4 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER14_BLOCK6_THRESHOLD_ATTRIBUTE_ID 0x01E5 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER14_BLOCK7_THRESHOLD_ATTRIBUTE_ID 0x01E6 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER14_BLOCK8_THRESHOLD_ATTRIBUTE_ID 0x01E7 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER14_BLOCK9_THRESHOLD_ATTRIBUTE_ID 0x01E8 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER14_BLOCK10_THRESHOLD_ATTRIBUTE_ID 0x01E9 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER14_BLOCK11_THRESHOLD_ATTRIBUTE_ID 0x01EA // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER14_BLOCK12_THRESHOLD_ATTRIBUTE_ID 0x01EB // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER14_BLOCK13_THRESHOLD_ATTRIBUTE_ID 0x01EC // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER14_BLOCK14_THRESHOLD_ATTRIBUTE_ID 0x01ED // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER14_BLOCK15_THRESHOLD_ATTRIBUTE_ID 0x01EE // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER14_BLOCK_THRESHOLD_COUNT_ATTRIBUTE_ID 0x01EF // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER15_BLOCK1_THRESHOLD_ATTRIBUTE_ID 0x01F0 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER15_BLOCK2_THRESHOLD_ATTRIBUTE_ID 0x01F1 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER15_BLOCK3_THRESHOLD_ATTRIBUTE_ID 0x01F2 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER15_BLOCK4_THRESHOLD_ATTRIBUTE_ID 0x01F3 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER15_BLOCK5_THRESHOLD_ATTRIBUTE_ID 0x01F4 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER15_BLOCK6_THRESHOLD_ATTRIBUTE_ID 0x01F5 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER15_BLOCK7_THRESHOLD_ATTRIBUTE_ID 0x01F6 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER15_BLOCK8_THRESHOLD_ATTRIBUTE_ID 0x01F7 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER15_BLOCK9_THRESHOLD_ATTRIBUTE_ID 0x01F8 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER15_BLOCK10_THRESHOLD_ATTRIBUTE_ID 0x01F9 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER15_BLOCK11_THRESHOLD_ATTRIBUTE_ID 0x01FA // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER15_BLOCK12_THRESHOLD_ATTRIBUTE_ID 0x01FB // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER15_BLOCK13_THRESHOLD_ATTRIBUTE_ID 0x01FC // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER15_BLOCK14_THRESHOLD_ATTRIBUTE_ID 0x01FD // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER15_BLOCK15_THRESHOLD_ATTRIBUTE_ID 0x01FE // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER15_BLOCK_THRESHOLD_COUNT_ATTRIBUTE_ID 0x01FF // Ver.: since se-1.2a-07-5356-19 -#define ZCL_START_OF_BLOCK_PERIOD_ATTRIBUTE_ID 0x0200 // Ver.: always -#define ZCL_BLOCK_PERIOD_DURATION_MINUTES_ATTRIBUTE_ID 0x0201 // Ver.: always -#define ZCL_THRESHOLD_MULTIPLIER_ATTRIBUTE_ID 0x0202 // Ver.: always -#define ZCL_THRESHOLD_DIVISOR_ATTRIBUTE_ID 0x0203 // Ver.: always -#define ZCL_BLOCK_PERIOD_DURATION_TYPE_ATTRIBUTE_ID 0x0204 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_COMMODITY_TYPE_SERVER_ATTRIBUTE_ID 0x0300 // Ver.: always -#define ZCL_STANDING_CHARGE_ATTRIBUTE_ID 0x0301 // Ver.: always -#define ZCL_CONVERSION_FACTOR_ATTRIBUTE_ID 0x0302 // Ver.: since se-1.1a-07-5356-17 -#define ZCL_CONVERSION_FACTOR_TRAILING_DIGIT_ATTRIBUTE_ID 0x0303 // Ver.: since se-1.1a-07-5356-17 -#define ZCL_CALORIFIC_VALUE_ATTRIBUTE_ID 0x0304 // Ver.: since se-1.1a-07-5356-17 -#define ZCL_CALORIFIC_VALUE_UNIT_ATTRIBUTE_ID 0x0305 // Ver.: since se-1.1a-07-5356-17 -#define ZCL_CALORIFIC_VALUE_TRAILING_DIGIT_ATTRIBUTE_ID 0x0306 // Ver.: since se-1.1a-07-5356-17 -#define ZCL_NO_TIER_BLOCK1_PRICE_ATTRIBUTE_ID 0x0400 // Ver.: always -#define ZCL_NO_TIER_BLOCK2_PRICE_ATTRIBUTE_ID 0x0401 // Ver.: always -#define ZCL_NO_TIER_BLOCK3_PRICE_ATTRIBUTE_ID 0x0402 // Ver.: always -#define ZCL_NO_TIER_BLOCK4_PRICE_ATTRIBUTE_ID 0x0403 // Ver.: always -#define ZCL_NO_TIER_BLOCK5_PRICE_ATTRIBUTE_ID 0x0404 // Ver.: always -#define ZCL_NO_TIER_BLOCK6_PRICE_ATTRIBUTE_ID 0x0405 // Ver.: always -#define ZCL_NO_TIER_BLOCK7_PRICE_ATTRIBUTE_ID 0x0406 // Ver.: always -#define ZCL_NO_TIER_BLOCK8_PRICE_ATTRIBUTE_ID 0x0407 // Ver.: always -#define ZCL_NO_TIER_BLOCK9_PRICE_ATTRIBUTE_ID 0x0408 // Ver.: always -#define ZCL_NO_TIER_BLOCK10_PRICE_ATTRIBUTE_ID 0x0409 // Ver.: always -#define ZCL_NO_TIER_BLOCK11_PRICE_ATTRIBUTE_ID 0x040A // Ver.: always -#define ZCL_NO_TIER_BLOCK12_PRICE_ATTRIBUTE_ID 0x040B // Ver.: always -#define ZCL_NO_TIER_BLOCK13_PRICE_ATTRIBUTE_ID 0x040C // Ver.: always -#define ZCL_NO_TIER_BLOCK14_PRICE_ATTRIBUTE_ID 0x040D // Ver.: always -#define ZCL_NO_TIER_BLOCK15_PRICE_ATTRIBUTE_ID 0x040E // Ver.: always -#define ZCL_NO_TIER_BLOCK16_PRICE_ATTRIBUTE_ID 0x040F // Ver.: always -#define ZCL_TIER1_BLOCK1_PRICE_ATTRIBUTE_ID 0x0410 // Ver.: always -#define ZCL_TIER1_BLOCK2_PRICE_ATTRIBUTE_ID 0x0411 // Ver.: always -#define ZCL_TIER1_BLOCK3_PRICE_ATTRIBUTE_ID 0x0412 // Ver.: always -#define ZCL_TIER1_BLOCK4_PRICE_ATTRIBUTE_ID 0x0413 // Ver.: always -#define ZCL_TIER1_BLOCK5_PRICE_ATTRIBUTE_ID 0x0414 // Ver.: always -#define ZCL_TIER1_BLOCK6_PRICE_ATTRIBUTE_ID 0x0415 // Ver.: always -#define ZCL_TIER1_BLOCK7_PRICE_ATTRIBUTE_ID 0x0416 // Ver.: always -#define ZCL_TIER1_BLOCK8_PRICE_ATTRIBUTE_ID 0x0417 // Ver.: always -#define ZCL_TIER1_BLOCK9_PRICE_ATTRIBUTE_ID 0x0418 // Ver.: always -#define ZCL_TIER1_BLOCK10_PRICE_ATTRIBUTE_ID 0x0419 // Ver.: always -#define ZCL_TIER1_BLOCK11_PRICE_ATTRIBUTE_ID 0x041A // Ver.: always -#define ZCL_TIER1_BLOCK12_PRICE_ATTRIBUTE_ID 0x041B // Ver.: always -#define ZCL_TIER1_BLOCK13_PRICE_ATTRIBUTE_ID 0x041C // Ver.: always -#define ZCL_TIER1_BLOCK14_PRICE_ATTRIBUTE_ID 0x041D // Ver.: always -#define ZCL_TIER1_BLOCK15_PRICE_ATTRIBUTE_ID 0x041E // Ver.: always -#define ZCL_TIER1_BLOCK16_PRICE_ATTRIBUTE_ID 0x041F // Ver.: always -#define ZCL_TIER2_BLOCK1_PRICE_ATTRIBUTE_ID 0x0420 // Ver.: always -#define ZCL_TIER2_BLOCK2_PRICE_ATTRIBUTE_ID 0x0421 // Ver.: always -#define ZCL_TIER2_BLOCK3_PRICE_ATTRIBUTE_ID 0x0422 // Ver.: always -#define ZCL_TIER2_BLOCK4_PRICE_ATTRIBUTE_ID 0x0423 // Ver.: always -#define ZCL_TIER2_BLOCK5_PRICE_ATTRIBUTE_ID 0x0424 // Ver.: always -#define ZCL_TIER2_BLOCK6_PRICE_ATTRIBUTE_ID 0x0425 // Ver.: always -#define ZCL_TIER2_BLOCK7_PRICE_ATTRIBUTE_ID 0x0426 // Ver.: always -#define ZCL_TIER2_BLOCK8_PRICE_ATTRIBUTE_ID 0x0427 // Ver.: always -#define ZCL_TIER2_BLOCK9_PRICE_ATTRIBUTE_ID 0x0428 // Ver.: always -#define ZCL_TIER2_BLOCK10_PRICE_ATTRIBUTE_ID 0x0429 // Ver.: always -#define ZCL_TIER2_BLOCK11_PRICE_ATTRIBUTE_ID 0x042A // Ver.: always -#define ZCL_TIER2_BLOCK12_PRICE_ATTRIBUTE_ID 0x042B // Ver.: always -#define ZCL_TIER2_BLOCK13_PRICE_ATTRIBUTE_ID 0x042C // Ver.: always -#define ZCL_TIER2_BLOCK14_PRICE_ATTRIBUTE_ID 0x042D // Ver.: always -#define ZCL_TIER2_BLOCK15_PRICE_ATTRIBUTE_ID 0x042E // Ver.: always -#define ZCL_TIER2_BLOCK16_PRICE_ATTRIBUTE_ID 0x042F // Ver.: always -#define ZCL_TIER3_BLOCK1_PRICE_ATTRIBUTE_ID 0x0430 // Ver.: always -#define ZCL_TIER3_BLOCK2_PRICE_ATTRIBUTE_ID 0x0431 // Ver.: always -#define ZCL_TIER3_BLOCK3_PRICE_ATTRIBUTE_ID 0x0432 // Ver.: always -#define ZCL_TIER3_BLOCK4_PRICE_ATTRIBUTE_ID 0x0433 // Ver.: always -#define ZCL_TIER3_BLOCK5_PRICE_ATTRIBUTE_ID 0x0434 // Ver.: always -#define ZCL_TIER3_BLOCK6_PRICE_ATTRIBUTE_ID 0x0435 // Ver.: always -#define ZCL_TIER3_BLOCK7_PRICE_ATTRIBUTE_ID 0x0436 // Ver.: always -#define ZCL_TIER3_BLOCK8_PRICE_ATTRIBUTE_ID 0x0437 // Ver.: always -#define ZCL_TIER3_BLOCK9_PRICE_ATTRIBUTE_ID 0x0438 // Ver.: always -#define ZCL_TIER3_BLOCK10_PRICE_ATTRIBUTE_ID 0x0439 // Ver.: always -#define ZCL_TIER3_BLOCK11_PRICE_ATTRIBUTE_ID 0x043A // Ver.: always -#define ZCL_TIER3_BLOCK12_PRICE_ATTRIBUTE_ID 0x043B // Ver.: always -#define ZCL_TIER3_BLOCK13_PRICE_ATTRIBUTE_ID 0x043C // Ver.: always -#define ZCL_TIER3_BLOCK14_PRICE_ATTRIBUTE_ID 0x043D // Ver.: always -#define ZCL_TIER3_BLOCK15_PRICE_ATTRIBUTE_ID 0x043E // Ver.: always -#define ZCL_TIER3_BLOCK16_PRICE_ATTRIBUTE_ID 0x043F // Ver.: always -#define ZCL_TIER4_BLOCK1_PRICE_ATTRIBUTE_ID 0x0440 // Ver.: always -#define ZCL_TIER4_BLOCK2_PRICE_ATTRIBUTE_ID 0x0441 // Ver.: always -#define ZCL_TIER4_BLOCK3_PRICE_ATTRIBUTE_ID 0x0442 // Ver.: always -#define ZCL_TIER4_BLOCK4_PRICE_ATTRIBUTE_ID 0x0443 // Ver.: always -#define ZCL_TIER4_BLOCK5_PRICE_ATTRIBUTE_ID 0x0444 // Ver.: always -#define ZCL_TIER4_BLOCK6_PRICE_ATTRIBUTE_ID 0x0445 // Ver.: always -#define ZCL_TIER4_BLOCK7_PRICE_ATTRIBUTE_ID 0x0446 // Ver.: always -#define ZCL_TIER4_BLOCK8_PRICE_ATTRIBUTE_ID 0x0447 // Ver.: always -#define ZCL_TIER4_BLOCK9_PRICE_ATTRIBUTE_ID 0x0448 // Ver.: always -#define ZCL_TIER4_BLOCK10_PRICE_ATTRIBUTE_ID 0x0449 // Ver.: always -#define ZCL_TIER4_BLOCK11_PRICE_ATTRIBUTE_ID 0x044A // Ver.: always -#define ZCL_TIER4_BLOCK12_PRICE_ATTRIBUTE_ID 0x044B // Ver.: always -#define ZCL_TIER4_BLOCK13_PRICE_ATTRIBUTE_ID 0x044C // Ver.: always -#define ZCL_TIER4_BLOCK14_PRICE_ATTRIBUTE_ID 0x044D // Ver.: always -#define ZCL_TIER4_BLOCK15_PRICE_ATTRIBUTE_ID 0x044E // Ver.: always -#define ZCL_TIER4_BLOCK16_PRICE_ATTRIBUTE_ID 0x044F // Ver.: always -#define ZCL_TIER5_BLOCK1_PRICE_ATTRIBUTE_ID 0x0450 // Ver.: always -#define ZCL_TIER5_BLOCK2_PRICE_ATTRIBUTE_ID 0x0451 // Ver.: always -#define ZCL_TIER5_BLOCK3_PRICE_ATTRIBUTE_ID 0x0452 // Ver.: always -#define ZCL_TIER5_BLOCK4_PRICE_ATTRIBUTE_ID 0x0453 // Ver.: always -#define ZCL_TIER5_BLOCK5_PRICE_ATTRIBUTE_ID 0x0454 // Ver.: always -#define ZCL_TIER5_BLOCK6_PRICE_ATTRIBUTE_ID 0x0455 // Ver.: always -#define ZCL_TIER5_BLOCK7_PRICE_ATTRIBUTE_ID 0x0456 // Ver.: always -#define ZCL_TIER5_BLOCK8_PRICE_ATTRIBUTE_ID 0x0457 // Ver.: always -#define ZCL_TIER5_BLOCK9_PRICE_ATTRIBUTE_ID 0x0458 // Ver.: always -#define ZCL_TIER5_BLOCK10_PRICE_ATTRIBUTE_ID 0x0459 // Ver.: always -#define ZCL_TIER5_BLOCK11_PRICE_ATTRIBUTE_ID 0x045A // Ver.: always -#define ZCL_TIER5_BLOCK12_PRICE_ATTRIBUTE_ID 0x045B // Ver.: always -#define ZCL_TIER5_BLOCK13_PRICE_ATTRIBUTE_ID 0x045C // Ver.: always -#define ZCL_TIER5_BLOCK14_PRICE_ATTRIBUTE_ID 0x045D // Ver.: always -#define ZCL_TIER5_BLOCK15_PRICE_ATTRIBUTE_ID 0x045E // Ver.: always -#define ZCL_TIER5_BLOCK16_PRICE_ATTRIBUTE_ID 0x045F // Ver.: always -#define ZCL_TIER6_BLOCK1_PRICE_ATTRIBUTE_ID 0x0460 // Ver.: always -#define ZCL_TIER6_BLOCK2_PRICE_ATTRIBUTE_ID 0x0461 // Ver.: always -#define ZCL_TIER6_BLOCK3_PRICE_ATTRIBUTE_ID 0x0462 // Ver.: always -#define ZCL_TIER6_BLOCK4_PRICE_ATTRIBUTE_ID 0x0463 // Ver.: always -#define ZCL_TIER6_BLOCK5_PRICE_ATTRIBUTE_ID 0x0464 // Ver.: always -#define ZCL_TIER6_BLOCK6_PRICE_ATTRIBUTE_ID 0x0465 // Ver.: always -#define ZCL_TIER6_BLOCK7_PRICE_ATTRIBUTE_ID 0x0466 // Ver.: always -#define ZCL_TIER6_BLOCK8_PRICE_ATTRIBUTE_ID 0x0467 // Ver.: always -#define ZCL_TIER6_BLOCK9_PRICE_ATTRIBUTE_ID 0x0468 // Ver.: always -#define ZCL_TIER6_BLOCK10_PRICE_ATTRIBUTE_ID 0x0469 // Ver.: always -#define ZCL_TIER6_BLOCK11_PRICE_ATTRIBUTE_ID 0x046A // Ver.: always -#define ZCL_TIER6_BLOCK12_PRICE_ATTRIBUTE_ID 0x046B // Ver.: always -#define ZCL_TIER6_BLOCK13_PRICE_ATTRIBUTE_ID 0x046C // Ver.: always -#define ZCL_TIER6_BLOCK14_PRICE_ATTRIBUTE_ID 0x046D // Ver.: always -#define ZCL_TIER6_BLOCK15_PRICE_ATTRIBUTE_ID 0x046E // Ver.: always -#define ZCL_TIER6_BLOCK16_PRICE_ATTRIBUTE_ID 0x046F // Ver.: always -#define ZCL_TIER7_BLOCK1_PRICE_ATTRIBUTE_ID 0x0470 // Ver.: always -#define ZCL_TIER7_BLOCK2_PRICE_ATTRIBUTE_ID 0x0471 // Ver.: always -#define ZCL_TIER7_BLOCK3_PRICE_ATTRIBUTE_ID 0x0472 // Ver.: always -#define ZCL_TIER7_BLOCK4_PRICE_ATTRIBUTE_ID 0x0473 // Ver.: always -#define ZCL_TIER7_BLOCK5_PRICE_ATTRIBUTE_ID 0x0474 // Ver.: always -#define ZCL_TIER7_BLOCK6_PRICE_ATTRIBUTE_ID 0x0475 // Ver.: always -#define ZCL_TIER7_BLOCK7_PRICE_ATTRIBUTE_ID 0x0476 // Ver.: always -#define ZCL_TIER7_BLOCK8_PRICE_ATTRIBUTE_ID 0x0477 // Ver.: always -#define ZCL_TIER7_BLOCK9_PRICE_ATTRIBUTE_ID 0x0478 // Ver.: always -#define ZCL_TIER7_BLOCK10_PRICE_ATTRIBUTE_ID 0x0479 // Ver.: always -#define ZCL_TIER7_BLOCK11_PRICE_ATTRIBUTE_ID 0x047A // Ver.: always -#define ZCL_TIER7_BLOCK12_PRICE_ATTRIBUTE_ID 0x047B // Ver.: always -#define ZCL_TIER7_BLOCK13_PRICE_ATTRIBUTE_ID 0x047C // Ver.: always -#define ZCL_TIER7_BLOCK14_PRICE_ATTRIBUTE_ID 0x047D // Ver.: always -#define ZCL_TIER7_BLOCK15_PRICE_ATTRIBUTE_ID 0x047E // Ver.: always -#define ZCL_TIER7_BLOCK16_PRICE_ATTRIBUTE_ID 0x047F // Ver.: always -#define ZCL_TIER8_BLOCK1_PRICE_ATTRIBUTE_ID 0x0480 // Ver.: always -#define ZCL_TIER8_BLOCK2_PRICE_ATTRIBUTE_ID 0x0481 // Ver.: always -#define ZCL_TIER8_BLOCK3_PRICE_ATTRIBUTE_ID 0x0482 // Ver.: always -#define ZCL_TIER8_BLOCK4_PRICE_ATTRIBUTE_ID 0x0483 // Ver.: always -#define ZCL_TIER8_BLOCK5_PRICE_ATTRIBUTE_ID 0x0484 // Ver.: always -#define ZCL_TIER8_BLOCK6_PRICE_ATTRIBUTE_ID 0x0485 // Ver.: always -#define ZCL_TIER8_BLOCK7_PRICE_ATTRIBUTE_ID 0x0486 // Ver.: always -#define ZCL_TIER8_BLOCK8_PRICE_ATTRIBUTE_ID 0x0487 // Ver.: always -#define ZCL_TIER8_BLOCK9_PRICE_ATTRIBUTE_ID 0x0488 // Ver.: always -#define ZCL_TIER8_BLOCK10_PRICE_ATTRIBUTE_ID 0x0489 // Ver.: always -#define ZCL_TIER8_BLOCK11_PRICE_ATTRIBUTE_ID 0x048A // Ver.: always -#define ZCL_TIER8_BLOCK12_PRICE_ATTRIBUTE_ID 0x048B // Ver.: always -#define ZCL_TIER8_BLOCK13_PRICE_ATTRIBUTE_ID 0x048C // Ver.: always -#define ZCL_TIER8_BLOCK14_PRICE_ATTRIBUTE_ID 0x048D // Ver.: always -#define ZCL_TIER8_BLOCK15_PRICE_ATTRIBUTE_ID 0x048E // Ver.: always -#define ZCL_TIER8_BLOCK16_PRICE_ATTRIBUTE_ID 0x048F // Ver.: always -#define ZCL_TIER9_BLOCK1_PRICE_ATTRIBUTE_ID 0x0490 // Ver.: always -#define ZCL_TIER9_BLOCK2_PRICE_ATTRIBUTE_ID 0x0491 // Ver.: always -#define ZCL_TIER9_BLOCK3_PRICE_ATTRIBUTE_ID 0x0492 // Ver.: always -#define ZCL_TIER9_BLOCK4_PRICE_ATTRIBUTE_ID 0x0493 // Ver.: always -#define ZCL_TIER9_BLOCK5_PRICE_ATTRIBUTE_ID 0x0494 // Ver.: always -#define ZCL_TIER9_BLOCK6_PRICE_ATTRIBUTE_ID 0x0495 // Ver.: always -#define ZCL_TIER9_BLOCK7_PRICE_ATTRIBUTE_ID 0x0496 // Ver.: always -#define ZCL_TIER9_BLOCK8_PRICE_ATTRIBUTE_ID 0x0497 // Ver.: always -#define ZCL_TIER9_BLOCK9_PRICE_ATTRIBUTE_ID 0x0498 // Ver.: always -#define ZCL_TIER9_BLOCK10_PRICE_ATTRIBUTE_ID 0x0499 // Ver.: always -#define ZCL_TIER9_BLOCK11_PRICE_ATTRIBUTE_ID 0x049A // Ver.: always -#define ZCL_TIER9_BLOCK12_PRICE_ATTRIBUTE_ID 0x049B // Ver.: always -#define ZCL_TIER9_BLOCK13_PRICE_ATTRIBUTE_ID 0x049C // Ver.: always -#define ZCL_TIER9_BLOCK14_PRICE_ATTRIBUTE_ID 0x049D // Ver.: always -#define ZCL_TIER9_BLOCK15_PRICE_ATTRIBUTE_ID 0x049E // Ver.: always -#define ZCL_TIER9_BLOCK16_PRICE_ATTRIBUTE_ID 0x049F // Ver.: always -#define ZCL_TIER10_BLOCK1_PRICE_ATTRIBUTE_ID 0x04A0 // Ver.: always -#define ZCL_TIER10_BLOCK2_PRICE_ATTRIBUTE_ID 0x04A1 // Ver.: always -#define ZCL_TIER10_BLOCK3_PRICE_ATTRIBUTE_ID 0x04A2 // Ver.: always -#define ZCL_TIER10_BLOCK4_PRICE_ATTRIBUTE_ID 0x04A3 // Ver.: always -#define ZCL_TIER10_BLOCK5_PRICE_ATTRIBUTE_ID 0x04A4 // Ver.: always -#define ZCL_TIER10_BLOCK6_PRICE_ATTRIBUTE_ID 0x04A5 // Ver.: always -#define ZCL_TIER10_BLOCK7_PRICE_ATTRIBUTE_ID 0x04A6 // Ver.: always -#define ZCL_TIER10_BLOCK8_PRICE_ATTRIBUTE_ID 0x04A7 // Ver.: always -#define ZCL_TIER10_BLOCK9_PRICE_ATTRIBUTE_ID 0x04A8 // Ver.: always -#define ZCL_TIER10_BLOCK10_PRICE_ATTRIBUTE_ID 0x04A9 // Ver.: always -#define ZCL_TIER10_BLOCK11_PRICE_ATTRIBUTE_ID 0x04AA // Ver.: always -#define ZCL_TIER10_BLOCK12_PRICE_ATTRIBUTE_ID 0x04AB // Ver.: always -#define ZCL_TIER10_BLOCK13_PRICE_ATTRIBUTE_ID 0x04AC // Ver.: always -#define ZCL_TIER10_BLOCK14_PRICE_ATTRIBUTE_ID 0x04AD // Ver.: always -#define ZCL_TIER10_BLOCK15_PRICE_ATTRIBUTE_ID 0x04AE // Ver.: always -#define ZCL_TIER10_BLOCK16_PRICE_ATTRIBUTE_ID 0x04AF // Ver.: always -#define ZCL_TIER11_BLOCK1_PRICE_ATTRIBUTE_ID 0x04B0 // Ver.: always -#define ZCL_TIER11_BLOCK2_PRICE_ATTRIBUTE_ID 0x04B1 // Ver.: always -#define ZCL_TIER11_BLOCK3_PRICE_ATTRIBUTE_ID 0x04B2 // Ver.: always -#define ZCL_TIER11_BLOCK4_PRICE_ATTRIBUTE_ID 0x04B3 // Ver.: always -#define ZCL_TIER11_BLOCK5_PRICE_ATTRIBUTE_ID 0x04B4 // Ver.: always -#define ZCL_TIER11_BLOCK6_PRICE_ATTRIBUTE_ID 0x04B5 // Ver.: always -#define ZCL_TIER11_BLOCK7_PRICE_ATTRIBUTE_ID 0x04B6 // Ver.: always -#define ZCL_TIER11_BLOCK8_PRICE_ATTRIBUTE_ID 0x04B7 // Ver.: always -#define ZCL_TIER11_BLOCK9_PRICE_ATTRIBUTE_ID 0x04B8 // Ver.: always -#define ZCL_TIER11_BLOCK10_PRICE_ATTRIBUTE_ID 0x04B9 // Ver.: always -#define ZCL_TIER11_BLOCK11_PRICE_ATTRIBUTE_ID 0x04BA // Ver.: always -#define ZCL_TIER11_BLOCK12_PRICE_ATTRIBUTE_ID 0x04BB // Ver.: always -#define ZCL_TIER11_BLOCK13_PRICE_ATTRIBUTE_ID 0x04BC // Ver.: always -#define ZCL_TIER11_BLOCK14_PRICE_ATTRIBUTE_ID 0x04BD // Ver.: always -#define ZCL_TIER11_BLOCK15_PRICE_ATTRIBUTE_ID 0x04BE // Ver.: always -#define ZCL_TIER11_BLOCK16_PRICE_ATTRIBUTE_ID 0x04BF // Ver.: always -#define ZCL_TIER12_BLOCK1_PRICE_ATTRIBUTE_ID 0x04C0 // Ver.: always -#define ZCL_TIER12_BLOCK2_PRICE_ATTRIBUTE_ID 0x04C1 // Ver.: always -#define ZCL_TIER12_BLOCK3_PRICE_ATTRIBUTE_ID 0x04C2 // Ver.: always -#define ZCL_TIER12_BLOCK4_PRICE_ATTRIBUTE_ID 0x04C3 // Ver.: always -#define ZCL_TIER12_BLOCK5_PRICE_ATTRIBUTE_ID 0x04C4 // Ver.: always -#define ZCL_TIER12_BLOCK6_PRICE_ATTRIBUTE_ID 0x04C5 // Ver.: always -#define ZCL_TIER12_BLOCK7_PRICE_ATTRIBUTE_ID 0x04C6 // Ver.: always -#define ZCL_TIER12_BLOCK8_PRICE_ATTRIBUTE_ID 0x04C7 // Ver.: always -#define ZCL_TIER12_BLOCK9_PRICE_ATTRIBUTE_ID 0x04C8 // Ver.: always -#define ZCL_TIER12_BLOCK10_PRICE_ATTRIBUTE_ID 0x04C9 // Ver.: always -#define ZCL_TIER12_BLOCK11_PRICE_ATTRIBUTE_ID 0x04CA // Ver.: always -#define ZCL_TIER12_BLOCK12_PRICE_ATTRIBUTE_ID 0x04CB // Ver.: always -#define ZCL_TIER12_BLOCK13_PRICE_ATTRIBUTE_ID 0x04CC // Ver.: always -#define ZCL_TIER12_BLOCK14_PRICE_ATTRIBUTE_ID 0x04CD // Ver.: always -#define ZCL_TIER12_BLOCK15_PRICE_ATTRIBUTE_ID 0x04CE // Ver.: always -#define ZCL_TIER12_BLOCK16_PRICE_ATTRIBUTE_ID 0x04CF // Ver.: always -#define ZCL_TIER13_BLOCK1_PRICE_ATTRIBUTE_ID 0x04D0 // Ver.: always -#define ZCL_TIER13_BLOCK2_PRICE_ATTRIBUTE_ID 0x04D1 // Ver.: always -#define ZCL_TIER13_BLOCK3_PRICE_ATTRIBUTE_ID 0x04D2 // Ver.: always -#define ZCL_TIER13_BLOCK4_PRICE_ATTRIBUTE_ID 0x04D3 // Ver.: always -#define ZCL_TIER13_BLOCK5_PRICE_ATTRIBUTE_ID 0x04D4 // Ver.: always -#define ZCL_TIER13_BLOCK6_PRICE_ATTRIBUTE_ID 0x04D5 // Ver.: always -#define ZCL_TIER13_BLOCK7_PRICE_ATTRIBUTE_ID 0x04D6 // Ver.: always -#define ZCL_TIER13_BLOCK8_PRICE_ATTRIBUTE_ID 0x04D7 // Ver.: always -#define ZCL_TIER13_BLOCK9_PRICE_ATTRIBUTE_ID 0x04D8 // Ver.: always -#define ZCL_TIER13_BLOCK10_PRICE_ATTRIBUTE_ID 0x04D9 // Ver.: always -#define ZCL_TIER13_BLOCK11_PRICE_ATTRIBUTE_ID 0x04DA // Ver.: always -#define ZCL_TIER13_BLOCK12_PRICE_ATTRIBUTE_ID 0x04DB // Ver.: always -#define ZCL_TIER13_BLOCK13_PRICE_ATTRIBUTE_ID 0x04DC // Ver.: always -#define ZCL_TIER13_BLOCK14_PRICE_ATTRIBUTE_ID 0x04DD // Ver.: always -#define ZCL_TIER13_BLOCK15_PRICE_ATTRIBUTE_ID 0x04DE // Ver.: always -#define ZCL_TIER13_BLOCK16_PRICE_ATTRIBUTE_ID 0x04DF // Ver.: always -#define ZCL_TIER14_BLOCK1_PRICE_ATTRIBUTE_ID 0x04E0 // Ver.: always -#define ZCL_TIER14_BLOCK2_PRICE_ATTRIBUTE_ID 0x04E1 // Ver.: always -#define ZCL_TIER14_BLOCK3_PRICE_ATTRIBUTE_ID 0x04E2 // Ver.: always -#define ZCL_TIER14_BLOCK4_PRICE_ATTRIBUTE_ID 0x04E3 // Ver.: always -#define ZCL_TIER14_BLOCK5_PRICE_ATTRIBUTE_ID 0x04E4 // Ver.: always -#define ZCL_TIER14_BLOCK6_PRICE_ATTRIBUTE_ID 0x04E5 // Ver.: always -#define ZCL_TIER14_BLOCK7_PRICE_ATTRIBUTE_ID 0x04E6 // Ver.: always -#define ZCL_TIER14_BLOCK8_PRICE_ATTRIBUTE_ID 0x04E7 // Ver.: always -#define ZCL_TIER14_BLOCK9_PRICE_ATTRIBUTE_ID 0x04E8 // Ver.: always -#define ZCL_TIER14_BLOCK10_PRICE_ATTRIBUTE_ID 0x04E9 // Ver.: always -#define ZCL_TIER14_BLOCK11_PRICE_ATTRIBUTE_ID 0x04EA // Ver.: always -#define ZCL_TIER14_BLOCK12_PRICE_ATTRIBUTE_ID 0x04EB // Ver.: always -#define ZCL_TIER14_BLOCK13_PRICE_ATTRIBUTE_ID 0x04EC // Ver.: always -#define ZCL_TIER14_BLOCK14_PRICE_ATTRIBUTE_ID 0x04ED // Ver.: always -#define ZCL_TIER14_BLOCK15_PRICE_ATTRIBUTE_ID 0x04EE // Ver.: always -#define ZCL_TIER14_BLOCK16_PRICE_ATTRIBUTE_ID 0x04EF // Ver.: always -#define ZCL_TIER15_BLOCK1_PRICE_ATTRIBUTE_ID 0x04F0 // Ver.: always -#define ZCL_TIER15_BLOCK2_PRICE_ATTRIBUTE_ID 0x04F1 // Ver.: always -#define ZCL_TIER15_BLOCK3_PRICE_ATTRIBUTE_ID 0x04F2 // Ver.: always -#define ZCL_TIER15_BLOCK4_PRICE_ATTRIBUTE_ID 0x04F3 // Ver.: always -#define ZCL_TIER15_BLOCK5_PRICE_ATTRIBUTE_ID 0x04F4 // Ver.: always -#define ZCL_TIER15_BLOCK6_PRICE_ATTRIBUTE_ID 0x04F5 // Ver.: always -#define ZCL_TIER15_BLOCK7_PRICE_ATTRIBUTE_ID 0x04F6 // Ver.: always -#define ZCL_TIER15_BLOCK8_PRICE_ATTRIBUTE_ID 0x04F7 // Ver.: always -#define ZCL_TIER15_BLOCK9_PRICE_ATTRIBUTE_ID 0x04F8 // Ver.: always -#define ZCL_TIER15_BLOCK10_PRICE_ATTRIBUTE_ID 0x04F9 // Ver.: always -#define ZCL_TIER15_BLOCK11_PRICE_ATTRIBUTE_ID 0x04FA // Ver.: always -#define ZCL_TIER15_BLOCK12_PRICE_ATTRIBUTE_ID 0x04FB // Ver.: always -#define ZCL_TIER15_BLOCK13_PRICE_ATTRIBUTE_ID 0x04FC // Ver.: always -#define ZCL_TIER15_BLOCK14_PRICE_ATTRIBUTE_ID 0x04FD // Ver.: always -#define ZCL_TIER15_BLOCK15_PRICE_ATTRIBUTE_ID 0x04FE // Ver.: always -#define ZCL_TIER15_BLOCK16_PRICE_ATTRIBUTE_ID 0x04FF // Ver.: always -#define ZCL_PRICE_TIER16_ATTRIBUTE_ID 0x050F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PRICE_TIER17_ATTRIBUTE_ID 0x0510 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PRICE_TIER18_ATTRIBUTE_ID 0x0511 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PRICE_TIER19_ATTRIBUTE_ID 0x0512 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PRICE_TIER20_ATTRIBUTE_ID 0x0513 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PRICE_TIER21_ATTRIBUTE_ID 0x0514 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PRICE_TIER22_ATTRIBUTE_ID 0x0515 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PRICE_TIER23_ATTRIBUTE_ID 0x0516 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PRICE_TIER24_ATTRIBUTE_ID 0x0517 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PRICE_TIER25_ATTRIBUTE_ID 0x0518 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PRICE_TIER26_ATTRIBUTE_ID 0x0519 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PRICE_TIER27_ATTRIBUTE_ID 0x051A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PRICE_TIER28_ATTRIBUTE_ID 0x051B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PRICE_TIER29_ATTRIBUTE_ID 0x051C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PRICE_TIER30_ATTRIBUTE_ID 0x051D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PRICE_TIER31_ATTRIBUTE_ID 0x051E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PRICE_TIER32_ATTRIBUTE_ID 0x051F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PRICE_TIER33_ATTRIBUTE_ID 0x0520 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PRICE_TIER34_ATTRIBUTE_ID 0x0521 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PRICE_TIER35_ATTRIBUTE_ID 0x0522 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PRICE_TIER36_ATTRIBUTE_ID 0x0523 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PRICE_TIER37_ATTRIBUTE_ID 0x0524 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PRICE_TIER38_ATTRIBUTE_ID 0x0525 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PRICE_TIER39_ATTRIBUTE_ID 0x0526 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PRICE_TIER40_ATTRIBUTE_ID 0x0527 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PRICE_TIER41_ATTRIBUTE_ID 0x0528 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PRICE_TIER42_ATTRIBUTE_ID 0x0529 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PRICE_TIER43_ATTRIBUTE_ID 0x052A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PRICE_TIER44_ATTRIBUTE_ID 0x052B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PRICE_TIER45_ATTRIBUTE_ID 0x052C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PRICE_TIER46_ATTRIBUTE_ID 0x052D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PRICE_TIER47_ATTRIBUTE_ID 0x052E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PRICE_TIER48_ATTRIBUTE_ID 0x052F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CPP1_PRICE_ATTRIBUTE_ID 0x05FE // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CPP2_PRICE_ATTRIBUTE_ID 0x05FF // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TARIFF_LABEL_ATTRIBUTE_ID 0x0610 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_NUMBER_OF_PRICE_TIERS_IN_USE_ATTRIBUTE_ID 0x0611 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_NUMBER_OF_BLOCK_THRESHOLDS_IN_USE_ATTRIBUTE_ID 0x0612 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TIER_BLOCK_MODE_ATTRIBUTE_ID 0x0613 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TARIFF_UNIT_OF_MEASURE_ATTRIBUTE_ID 0x0615 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TARIFF_CURRENCY_ATTRIBUTE_ID 0x0616 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TARIFF_PRICE_TRAILING_DIGIT_ATTRIBUTE_ID 0x0617 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TARIFF_RESOLUTION_PERIOD_ATTRIBUTE_ID 0x0619 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TARIFF_CO2_ATTRIBUTE_ID 0x0620 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TARIFF_CO2_UNIT_ATTRIBUTE_ID 0x0621 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TARIFF_CO2_TRAILING_DIGIT_ATTRIBUTE_ID 0x0622 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_BILLING_PERIOD_START_ATTRIBUTE_ID 0x0700 // Ver.: since se-1.1b-07-5356-18 -#define ZCL_CURRENT_BILLING_PERIOD_DURATION_ATTRIBUTE_ID 0x0701 // Ver.: since se-1.1b-07-5356-18 -#define ZCL_LAST_BILLING_PERIOD_START_ATTRIBUTE_ID 0x0702 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_LAST_BILLING_PERIOD_DURATION_ATTRIBUTE_ID 0x0703 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_LAST_BILLING_PERIOD_CONSOLIDATED_BILL_ATTRIBUTE_ID 0x0704 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CREDIT_PAYMENT_DUE_DATE_ATTRIBUTE_ID 0x0800 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CREDIT_PAYMENT_STATUS_ATTRIBUTE_ID 0x0801 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CREDIT_PAYMENT_OVER_DUE_AMOUNT_ATTRIBUTE_ID 0x0802 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PAYMENT_DISCOUNT_ATTRIBUTE_ID 0x080A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PAYMENT_DISCOUNT_PERIOD_ATTRIBUTE_ID 0x080B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CREDIT_PAYMENT_1_ATTRIBUTE_ID 0x0810 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CREDIT_PAYMENT_DATE_1_ATTRIBUTE_ID 0x0811 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CREDIT_PAYMENT_REF_1_ATTRIBUTE_ID 0x0812 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CREDIT_PAYMENT_2_ATTRIBUTE_ID 0x0820 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CREDIT_PAYMENT_DATE_2_ATTRIBUTE_ID 0x0821 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CREDIT_PAYMENT_REF_2_ATTRIBUTE_ID 0x0822 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CREDIT_PAYMENT_3_ATTRIBUTE_ID 0x0830 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CREDIT_PAYMENT_DATE_3_ATTRIBUTE_ID 0x0831 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CREDIT_PAYMENT_REF_3_ATTRIBUTE_ID 0x0832 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CREDIT_PAYMENT_4_ATTRIBUTE_ID 0x0840 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CREDIT_PAYMENT_DATE_4_ATTRIBUTE_ID 0x0841 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CREDIT_PAYMENT_REF_4_ATTRIBUTE_ID 0x0842 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CREDIT_PAYMENT_5_ATTRIBUTE_ID 0x0850 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CREDIT_PAYMENT_DATE_5_ATTRIBUTE_ID 0x0851 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CREDIT_PAYMENT_REF_5_ATTRIBUTE_ID 0x0852 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER1_PRICE_LABEL_ATTRIBUTE_ID 0x8000 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER2_PRICE_LABEL_ATTRIBUTE_ID 0x8001 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER3_PRICE_LABEL_ATTRIBUTE_ID 0x8002 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER4_PRICE_LABEL_ATTRIBUTE_ID 0x8003 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER5_PRICE_LABEL_ATTRIBUTE_ID 0x8004 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER6_PRICE_LABEL_ATTRIBUTE_ID 0x8005 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER7_PRICE_LABEL_ATTRIBUTE_ID 0x8006 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER8_PRICE_LABEL_ATTRIBUTE_ID 0x8007 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER9_PRICE_LABEL_ATTRIBUTE_ID 0x8008 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER10_PRICE_LABEL_ATTRIBUTE_ID 0x8009 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER11_PRICE_LABEL_ATTRIBUTE_ID 0x800A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER12_PRICE_LABEL_ATTRIBUTE_ID 0x800B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER13_PRICE_LABEL_ATTRIBUTE_ID 0x800C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER14_PRICE_LABEL_ATTRIBUTE_ID 0x800D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER15_PRICE_LABEL_ATTRIBUTE_ID 0x800E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER16_PRICE_LABEL_ATTRIBUTE_ID 0x800F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER17_PRICE_LABEL_ATTRIBUTE_ID 0x8010 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER18_PRICE_LABEL_ATTRIBUTE_ID 0x8011 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER19_PRICE_LABEL_ATTRIBUTE_ID 0x8012 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER20_PRICE_LABEL_ATTRIBUTE_ID 0x8013 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER21_PRICE_LABEL_ATTRIBUTE_ID 0x8014 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER22_PRICE_LABEL_ATTRIBUTE_ID 0x8015 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER23_PRICE_LABEL_ATTRIBUTE_ID 0x8016 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER24_PRICE_LABEL_ATTRIBUTE_ID 0x8017 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER25_PRICE_LABEL_ATTRIBUTE_ID 0x8018 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER26_PRICE_LABEL_ATTRIBUTE_ID 0x8019 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER27_PRICE_LABEL_ATTRIBUTE_ID 0x801A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER28_PRICE_LABEL_ATTRIBUTE_ID 0x801B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER29_PRICE_LABEL_ATTRIBUTE_ID 0x801C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER30_PRICE_LABEL_ATTRIBUTE_ID 0x801D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER31_PRICE_LABEL_ATTRIBUTE_ID 0x801E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER32_PRICE_LABEL_ATTRIBUTE_ID 0x801F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER33_PRICE_LABEL_ATTRIBUTE_ID 0x8020 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER34_PRICE_LABEL_ATTRIBUTE_ID 0x8021 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER35_PRICE_LABEL_ATTRIBUTE_ID 0x8022 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER36_PRICE_LABEL_ATTRIBUTE_ID 0x8023 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER37_PRICE_LABEL_ATTRIBUTE_ID 0x8024 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER38_PRICE_LABEL_ATTRIBUTE_ID 0x8025 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER39_PRICE_LABEL_ATTRIBUTE_ID 0x8026 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER40_PRICE_LABEL_ATTRIBUTE_ID 0x8027 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER41_PRICE_LABEL_ATTRIBUTE_ID 0x8028 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER42_PRICE_LABEL_ATTRIBUTE_ID 0x8029 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER43_PRICE_LABEL_ATTRIBUTE_ID 0x802A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER44_PRICE_LABEL_ATTRIBUTE_ID 0x802B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER45_PRICE_LABEL_ATTRIBUTE_ID 0x802C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER46_PRICE_LABEL_ATTRIBUTE_ID 0x802D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER47_PRICE_LABEL_ATTRIBUTE_ID 0x802E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER48_PRICE_LABEL_ATTRIBUTE_ID 0x802F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_BLOCK1_THRESHOLD_ATTRIBUTE_ID 0x8100 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_BLOCK2_THRESHOLD_ATTRIBUTE_ID 0x8101 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_BLOCK3_THRESHOLD_ATTRIBUTE_ID 0x8102 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_BLOCK4_THRESHOLD_ATTRIBUTE_ID 0x8103 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_BLOCK5_THRESHOLD_ATTRIBUTE_ID 0x8104 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_BLOCK6_THRESHOLD_ATTRIBUTE_ID 0x8105 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_BLOCK7_THRESHOLD_ATTRIBUTE_ID 0x8106 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_BLOCK8_THRESHOLD_ATTRIBUTE_ID 0x8107 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_BLOCK9_THRESHOLD_ATTRIBUTE_ID 0x8108 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_BLOCK10_THRESHOLD_ATTRIBUTE_ID 0x8109 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_BLOCK11_THRESHOLD_ATTRIBUTE_ID 0x810A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_BLOCK12_THRESHOLD_ATTRIBUTE_ID 0x810B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_BLOCK13_THRESHOLD_ATTRIBUTE_ID 0x810C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_BLOCK14_THRESHOLD_ATTRIBUTE_ID 0x810D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_BLOCK15_THRESHOLD_ATTRIBUTE_ID 0x810E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_START_OF_BLOCK_PERIOD_ATTRIBUTE_ID 0x8200 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_BLOCK_PERIOD_DURATION_ATTRIBUTE_ID 0x8201 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_THRESHOLD_MULTIPLIER_ATTRIBUTE_ID 0x8202 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_THRESHOLD_DIVISOR_ATTRIBUTE_ID 0x8203 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_NO_TIER_BLOCK1_PRICE_ATTRIBUTE_ID 0x8400 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_NO_TIER_BLOCK2_PRICE_ATTRIBUTE_ID 0x8401 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_NO_TIER_BLOCK3_PRICE_ATTRIBUTE_ID 0x8402 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_NO_TIER_BLOCK4_PRICE_ATTRIBUTE_ID 0x8403 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_NO_TIER_BLOCK5_PRICE_ATTRIBUTE_ID 0x8404 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_NO_TIER_BLOCK6_PRICE_ATTRIBUTE_ID 0x8405 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_NO_TIER_BLOCK7_PRICE_ATTRIBUTE_ID 0x8406 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_NO_TIER_BLOCK8_PRICE_ATTRIBUTE_ID 0x8407 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_NO_TIER_BLOCK9_PRICE_ATTRIBUTE_ID 0x8408 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_NO_TIER_BLOCK10_PRICE_ATTRIBUTE_ID 0x8409 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_NO_TIER_BLOCK11_PRICE_ATTRIBUTE_ID 0x840A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_NO_TIER_BLOCK12_PRICE_ATTRIBUTE_ID 0x840B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_NO_TIER_BLOCK13_PRICE_ATTRIBUTE_ID 0x840C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_NO_TIER_BLOCK14_PRICE_ATTRIBUTE_ID 0x840D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_NO_TIER_BLOCK15_PRICE_ATTRIBUTE_ID 0x840E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_NO_TIER_BLOCK16_PRICE_ATTRIBUTE_ID 0x840F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER1_BLOCK1_PRICE_ATTRIBUTE_ID 0x8410 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER1_BLOCK2_PRICE_ATTRIBUTE_ID 0x8411 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER1_BLOCK3_PRICE_ATTRIBUTE_ID 0x8412 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER1_BLOCK4_PRICE_ATTRIBUTE_ID 0x8413 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER1_BLOCK5_PRICE_ATTRIBUTE_ID 0x8414 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER1_BLOCK6_PRICE_ATTRIBUTE_ID 0x8415 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER1_BLOCK7_PRICE_ATTRIBUTE_ID 0x8416 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER1_BLOCK8_PRICE_ATTRIBUTE_ID 0x8417 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER1_BLOCK9_PRICE_ATTRIBUTE_ID 0x8418 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER1_BLOCK10_PRICE_ATTRIBUTE_ID 0x8419 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER1_BLOCK11_PRICE_ATTRIBUTE_ID 0x841A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER1_BLOCK12_PRICE_ATTRIBUTE_ID 0x841B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER1_BLOCK13_PRICE_ATTRIBUTE_ID 0x841C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER1_BLOCK14_PRICE_ATTRIBUTE_ID 0x841D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER1_BLOCK15_PRICE_ATTRIBUTE_ID 0x841E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER1_BLOCK16_PRICE_ATTRIBUTE_ID 0x841F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER2_BLOCK1_PRICE_ATTRIBUTE_ID 0x8420 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER2_BLOCK2_PRICE_ATTRIBUTE_ID 0x8421 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER2_BLOCK3_PRICE_ATTRIBUTE_ID 0x8422 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER2_BLOCK4_PRICE_ATTRIBUTE_ID 0x8423 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER2_BLOCK5_PRICE_ATTRIBUTE_ID 0x8424 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER2_BLOCK6_PRICE_ATTRIBUTE_ID 0x8425 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER2_BLOCK7_PRICE_ATTRIBUTE_ID 0x8426 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER2_BLOCK8_PRICE_ATTRIBUTE_ID 0x8427 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER2_BLOCK9_PRICE_ATTRIBUTE_ID 0x8428 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER2_BLOCK10_PRICE_ATTRIBUTE_ID 0x8429 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER2_BLOCK11_PRICE_ATTRIBUTE_ID 0x842A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER2_BLOCK12_PRICE_ATTRIBUTE_ID 0x842B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER2_BLOCK13_PRICE_ATTRIBUTE_ID 0x842C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER2_BLOCK14_PRICE_ATTRIBUTE_ID 0x842D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER2_BLOCK15_PRICE_ATTRIBUTE_ID 0x842E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER2_BLOCK16_PRICE_ATTRIBUTE_ID 0x842F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER3_BLOCK1_PRICE_ATTRIBUTE_ID 0x8430 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER3_BLOCK2_PRICE_ATTRIBUTE_ID 0x8431 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER3_BLOCK3_PRICE_ATTRIBUTE_ID 0x8432 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER3_BLOCK4_PRICE_ATTRIBUTE_ID 0x8433 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER3_BLOCK5_PRICE_ATTRIBUTE_ID 0x8434 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER3_BLOCK6_PRICE_ATTRIBUTE_ID 0x8435 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER3_BLOCK7_PRICE_ATTRIBUTE_ID 0x8436 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER3_BLOCK8_PRICE_ATTRIBUTE_ID 0x8437 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER3_BLOCK9_PRICE_ATTRIBUTE_ID 0x8438 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER3_BLOCK10_PRICE_ATTRIBUTE_ID 0x8439 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER3_BLOCK11_PRICE_ATTRIBUTE_ID 0x843A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER3_BLOCK12_PRICE_ATTRIBUTE_ID 0x843B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER3_BLOCK13_PRICE_ATTRIBUTE_ID 0x843C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER3_BLOCK14_PRICE_ATTRIBUTE_ID 0x843D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER3_BLOCK15_PRICE_ATTRIBUTE_ID 0x843E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER3_BLOCK16_PRICE_ATTRIBUTE_ID 0x843F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER4_BLOCK1_PRICE_ATTRIBUTE_ID 0x8440 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER4_BLOCK2_PRICE_ATTRIBUTE_ID 0x8441 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER4_BLOCK3_PRICE_ATTRIBUTE_ID 0x8442 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER4_BLOCK4_PRICE_ATTRIBUTE_ID 0x8443 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER4_BLOCK5_PRICE_ATTRIBUTE_ID 0x8444 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER4_BLOCK6_PRICE_ATTRIBUTE_ID 0x8445 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER4_BLOCK7_PRICE_ATTRIBUTE_ID 0x8446 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER4_BLOCK8_PRICE_ATTRIBUTE_ID 0x8447 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER4_BLOCK9_PRICE_ATTRIBUTE_ID 0x8448 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER4_BLOCK10_PRICE_ATTRIBUTE_ID 0x8449 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER4_BLOCK11_PRICE_ATTRIBUTE_ID 0x844A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER4_BLOCK12_PRICE_ATTRIBUTE_ID 0x844B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER4_BLOCK13_PRICE_ATTRIBUTE_ID 0x844C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER4_BLOCK14_PRICE_ATTRIBUTE_ID 0x844D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER4_BLOCK15_PRICE_ATTRIBUTE_ID 0x844E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER4_BLOCK16_PRICE_ATTRIBUTE_ID 0x844F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER5_BLOCK1_PRICE_ATTRIBUTE_ID 0x8450 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER5_BLOCK2_PRICE_ATTRIBUTE_ID 0x8451 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER5_BLOCK3_PRICE_ATTRIBUTE_ID 0x8452 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER5_BLOCK4_PRICE_ATTRIBUTE_ID 0x8453 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER5_BLOCK5_PRICE_ATTRIBUTE_ID 0x8454 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER5_BLOCK6_PRICE_ATTRIBUTE_ID 0x8455 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER5_BLOCK7_PRICE_ATTRIBUTE_ID 0x8456 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER5_BLOCK8_PRICE_ATTRIBUTE_ID 0x8457 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER5_BLOCK9_PRICE_ATTRIBUTE_ID 0x8458 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER5_BLOCK10_PRICE_ATTRIBUTE_ID 0x8459 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER5_BLOCK11_PRICE_ATTRIBUTE_ID 0x845A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER5_BLOCK12_PRICE_ATTRIBUTE_ID 0x845B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER5_BLOCK13_PRICE_ATTRIBUTE_ID 0x845C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER5_BLOCK14_PRICE_ATTRIBUTE_ID 0x845D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER5_BLOCK15_PRICE_ATTRIBUTE_ID 0x845E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER5_BLOCK16_PRICE_ATTRIBUTE_ID 0x845F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER6_BLOCK1_PRICE_ATTRIBUTE_ID 0x8460 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER6_BLOCK2_PRICE_ATTRIBUTE_ID 0x8461 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER6_BLOCK3_PRICE_ATTRIBUTE_ID 0x8462 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER6_BLOCK4_PRICE_ATTRIBUTE_ID 0x8463 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER6_BLOCK5_PRICE_ATTRIBUTE_ID 0x8464 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER6_BLOCK6_PRICE_ATTRIBUTE_ID 0x8465 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER6_BLOCK7_PRICE_ATTRIBUTE_ID 0x8466 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER6_BLOCK8_PRICE_ATTRIBUTE_ID 0x8467 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER6_BLOCK9_PRICE_ATTRIBUTE_ID 0x8468 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER6_BLOCK10_PRICE_ATTRIBUTE_ID 0x8469 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER6_BLOCK11_PRICE_ATTRIBUTE_ID 0x846A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER6_BLOCK12_PRICE_ATTRIBUTE_ID 0x846B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER6_BLOCK13_PRICE_ATTRIBUTE_ID 0x846C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER6_BLOCK14_PRICE_ATTRIBUTE_ID 0x846D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER6_BLOCK15_PRICE_ATTRIBUTE_ID 0x846E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER6_BLOCK16_PRICE_ATTRIBUTE_ID 0x846F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER7_BLOCK1_PRICE_ATTRIBUTE_ID 0x8470 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER7_BLOCK2_PRICE_ATTRIBUTE_ID 0x8471 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER7_BLOCK3_PRICE_ATTRIBUTE_ID 0x8472 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER7_BLOCK4_PRICE_ATTRIBUTE_ID 0x8473 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER7_BLOCK5_PRICE_ATTRIBUTE_ID 0x8474 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER7_BLOCK6_PRICE_ATTRIBUTE_ID 0x8475 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER7_BLOCK7_PRICE_ATTRIBUTE_ID 0x8476 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER7_BLOCK8_PRICE_ATTRIBUTE_ID 0x8477 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER7_BLOCK9_PRICE_ATTRIBUTE_ID 0x8478 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER7_BLOCK10_PRICE_ATTRIBUTE_ID 0x8479 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER7_BLOCK11_PRICE_ATTRIBUTE_ID 0x847A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER7_BLOCK12_PRICE_ATTRIBUTE_ID 0x847B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER7_BLOCK13_PRICE_ATTRIBUTE_ID 0x847C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER7_BLOCK14_PRICE_ATTRIBUTE_ID 0x847D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER7_BLOCK15_PRICE_ATTRIBUTE_ID 0x847E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER7_BLOCK16_PRICE_ATTRIBUTE_ID 0x847F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER8_BLOCK1_PRICE_ATTRIBUTE_ID 0x8480 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER8_BLOCK2_PRICE_ATTRIBUTE_ID 0x8481 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER8_BLOCK3_PRICE_ATTRIBUTE_ID 0x8482 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER8_BLOCK4_PRICE_ATTRIBUTE_ID 0x8483 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER8_BLOCK5_PRICE_ATTRIBUTE_ID 0x8484 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER8_BLOCK6_PRICE_ATTRIBUTE_ID 0x8485 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER8_BLOCK7_PRICE_ATTRIBUTE_ID 0x8486 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER8_BLOCK8_PRICE_ATTRIBUTE_ID 0x8487 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER8_BLOCK9_PRICE_ATTRIBUTE_ID 0x8488 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER8_BLOCK10_PRICE_ATTRIBUTE_ID 0x8489 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER8_BLOCK11_PRICE_ATTRIBUTE_ID 0x848A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER8_BLOCK12_PRICE_ATTRIBUTE_ID 0x848B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER8_BLOCK13_PRICE_ATTRIBUTE_ID 0x848C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER8_BLOCK14_PRICE_ATTRIBUTE_ID 0x848D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER8_BLOCK15_PRICE_ATTRIBUTE_ID 0x848E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER8_BLOCK16_PRICE_ATTRIBUTE_ID 0x848F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER9_BLOCK1_PRICE_ATTRIBUTE_ID 0x8490 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER9_BLOCK2_PRICE_ATTRIBUTE_ID 0x8491 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER9_BLOCK3_PRICE_ATTRIBUTE_ID 0x8492 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER9_BLOCK4_PRICE_ATTRIBUTE_ID 0x8493 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER9_BLOCK5_PRICE_ATTRIBUTE_ID 0x8494 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER9_BLOCK6_PRICE_ATTRIBUTE_ID 0x8495 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER9_BLOCK7_PRICE_ATTRIBUTE_ID 0x8496 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER9_BLOCK8_PRICE_ATTRIBUTE_ID 0x8497 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER9_BLOCK9_PRICE_ATTRIBUTE_ID 0x8498 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER9_BLOCK10_PRICE_ATTRIBUTE_ID 0x8499 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER9_BLOCK11_PRICE_ATTRIBUTE_ID 0x849A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER9_BLOCK12_PRICE_ATTRIBUTE_ID 0x849B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER9_BLOCK13_PRICE_ATTRIBUTE_ID 0x849C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER9_BLOCK14_PRICE_ATTRIBUTE_ID 0x849D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER9_BLOCK15_PRICE_ATTRIBUTE_ID 0x849E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER9_BLOCK16_PRICE_ATTRIBUTE_ID 0x849F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER10_BLOCK1_PRICE_ATTRIBUTE_ID 0x84A0 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER10_BLOCK2_PRICE_ATTRIBUTE_ID 0x84A1 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER10_BLOCK3_PRICE_ATTRIBUTE_ID 0x84A2 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER10_BLOCK4_PRICE_ATTRIBUTE_ID 0x84A3 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER10_BLOCK5_PRICE_ATTRIBUTE_ID 0x84A4 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER10_BLOCK6_PRICE_ATTRIBUTE_ID 0x84A5 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER10_BLOCK7_PRICE_ATTRIBUTE_ID 0x84A6 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER10_BLOCK8_PRICE_ATTRIBUTE_ID 0x84A7 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER10_BLOCK9_PRICE_ATTRIBUTE_ID 0x84A8 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER10_BLOCK10_PRICE_ATTRIBUTE_ID 0x84A9 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER10_BLOCK11_PRICE_ATTRIBUTE_ID 0x84AA // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER10_BLOCK12_PRICE_ATTRIBUTE_ID 0x84AB // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER10_BLOCK13_PRICE_ATTRIBUTE_ID 0x84AC // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER10_BLOCK14_PRICE_ATTRIBUTE_ID 0x84AD // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER10_BLOCK15_PRICE_ATTRIBUTE_ID 0x84AE // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER10_BLOCK16_PRICE_ATTRIBUTE_ID 0x84AF // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER11_BLOCK1_PRICE_ATTRIBUTE_ID 0x84B0 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER11_BLOCK2_PRICE_ATTRIBUTE_ID 0x84B1 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER11_BLOCK3_PRICE_ATTRIBUTE_ID 0x84B2 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER11_BLOCK4_PRICE_ATTRIBUTE_ID 0x84B3 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER11_BLOCK5_PRICE_ATTRIBUTE_ID 0x84B4 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER11_BLOCK6_PRICE_ATTRIBUTE_ID 0x84B5 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER11_BLOCK7_PRICE_ATTRIBUTE_ID 0x84B6 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER11_BLOCK8_PRICE_ATTRIBUTE_ID 0x84B7 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER11_BLOCK9_PRICE_ATTRIBUTE_ID 0x84B8 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER11_BLOCK10_PRICE_ATTRIBUTE_ID 0x84B9 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER11_BLOCK11_PRICE_ATTRIBUTE_ID 0x84BA // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER11_BLOCK12_PRICE_ATTRIBUTE_ID 0x84BB // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER11_BLOCK13_PRICE_ATTRIBUTE_ID 0x84BC // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER11_BLOCK14_PRICE_ATTRIBUTE_ID 0x84BD // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER11_BLOCK15_PRICE_ATTRIBUTE_ID 0x84BE // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER11_BLOCK16_PRICE_ATTRIBUTE_ID 0x84BF // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER12_BLOCK1_PRICE_ATTRIBUTE_ID 0x84C0 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER12_BLOCK2_PRICE_ATTRIBUTE_ID 0x84C1 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER12_BLOCK3_PRICE_ATTRIBUTE_ID 0x84C2 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER12_BLOCK4_PRICE_ATTRIBUTE_ID 0x84C3 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER12_BLOCK5_PRICE_ATTRIBUTE_ID 0x84C4 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER12_BLOCK6_PRICE_ATTRIBUTE_ID 0x84C5 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER12_BLOCK7_PRICE_ATTRIBUTE_ID 0x84C6 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER12_BLOCK8_PRICE_ATTRIBUTE_ID 0x84C7 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER12_BLOCK9_PRICE_ATTRIBUTE_ID 0x84C8 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER12_BLOCK10_PRICE_ATTRIBUTE_ID 0x84C9 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER12_BLOCK11_PRICE_ATTRIBUTE_ID 0x84CA // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER12_BLOCK12_PRICE_ATTRIBUTE_ID 0x84CB // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER12_BLOCK13_PRICE_ATTRIBUTE_ID 0x84CC // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER12_BLOCK14_PRICE_ATTRIBUTE_ID 0x84CD // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER12_BLOCK15_PRICE_ATTRIBUTE_ID 0x84CE // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER12_BLOCK16_PRICE_ATTRIBUTE_ID 0x84CF // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER13_BLOCK1_PRICE_ATTRIBUTE_ID 0x84D0 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER13_BLOCK2_PRICE_ATTRIBUTE_ID 0x84D1 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER13_BLOCK3_PRICE_ATTRIBUTE_ID 0x84D2 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER13_BLOCK4_PRICE_ATTRIBUTE_ID 0x84D3 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER13_BLOCK5_PRICE_ATTRIBUTE_ID 0x84D4 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER13_BLOCK6_PRICE_ATTRIBUTE_ID 0x84D5 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER13_BLOCK7_PRICE_ATTRIBUTE_ID 0x84D6 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER13_BLOCK8_PRICE_ATTRIBUTE_ID 0x84D7 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER13_BLOCK9_PRICE_ATTRIBUTE_ID 0x84D8 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER13_BLOCK10_PRICE_ATTRIBUTE_ID 0x84D9 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER13_BLOCK11_PRICE_ATTRIBUTE_ID 0x84DA // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER13_BLOCK12_PRICE_ATTRIBUTE_ID 0x84DB // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER13_BLOCK13_PRICE_ATTRIBUTE_ID 0x84DC // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER13_BLOCK14_PRICE_ATTRIBUTE_ID 0x84DD // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER13_BLOCK15_PRICE_ATTRIBUTE_ID 0x84DE // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER13_BLOCK16_PRICE_ATTRIBUTE_ID 0x84DF // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER14_BLOCK1_PRICE_ATTRIBUTE_ID 0x84E0 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER14_BLOCK2_PRICE_ATTRIBUTE_ID 0x84E1 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER14_BLOCK3_PRICE_ATTRIBUTE_ID 0x84E2 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER14_BLOCK4_PRICE_ATTRIBUTE_ID 0x84E3 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER14_BLOCK5_PRICE_ATTRIBUTE_ID 0x84E4 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER14_BLOCK6_PRICE_ATTRIBUTE_ID 0x84E5 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER14_BLOCK7_PRICE_ATTRIBUTE_ID 0x84E6 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER14_BLOCK8_PRICE_ATTRIBUTE_ID 0x84E7 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER14_BLOCK9_PRICE_ATTRIBUTE_ID 0x84E8 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER14_BLOCK10_PRICE_ATTRIBUTE_ID 0x84E9 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER14_BLOCK11_PRICE_ATTRIBUTE_ID 0x84EA // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER14_BLOCK12_PRICE_ATTRIBUTE_ID 0x84EB // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER14_BLOCK13_PRICE_ATTRIBUTE_ID 0x84EC // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER14_BLOCK14_PRICE_ATTRIBUTE_ID 0x84ED // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER14_BLOCK15_PRICE_ATTRIBUTE_ID 0x84EE // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER14_BLOCK16_PRICE_ATTRIBUTE_ID 0x84EF // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER15_BLOCK1_PRICE_ATTRIBUTE_ID 0x84F0 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER15_BLOCK2_PRICE_ATTRIBUTE_ID 0x84F1 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER15_BLOCK3_PRICE_ATTRIBUTE_ID 0x84F2 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER15_BLOCK4_PRICE_ATTRIBUTE_ID 0x84F3 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER15_BLOCK5_PRICE_ATTRIBUTE_ID 0x84F4 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER15_BLOCK6_PRICE_ATTRIBUTE_ID 0x84F5 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER15_BLOCK7_PRICE_ATTRIBUTE_ID 0x84F6 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER15_BLOCK8_PRICE_ATTRIBUTE_ID 0x84F7 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER15_BLOCK9_PRICE_ATTRIBUTE_ID 0x84F8 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER15_BLOCK10_PRICE_ATTRIBUTE_ID 0x84F9 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER15_BLOCK11_PRICE_ATTRIBUTE_ID 0x84FA // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER15_BLOCK12_PRICE_ATTRIBUTE_ID 0x84FB // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER15_BLOCK13_PRICE_ATTRIBUTE_ID 0x84FC // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER15_BLOCK14_PRICE_ATTRIBUTE_ID 0x84FD // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER15_BLOCK15_PRICE_ATTRIBUTE_ID 0x84FE // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER15_BLOCK16_PRICE_ATTRIBUTE_ID 0x84FF // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_PRICE_TIER16_ATTRIBUTE_ID 0x850F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_PRICE_TIER17_ATTRIBUTE_ID 0x8510 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_PRICE_TIER18_ATTRIBUTE_ID 0x8511 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_PRICE_TIER19_ATTRIBUTE_ID 0x8512 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_PRICE_TIER20_ATTRIBUTE_ID 0x8513 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_PRICE_TIER21_ATTRIBUTE_ID 0x8514 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_PRICE_TIER22_ATTRIBUTE_ID 0x8515 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_PRICE_TIER23_ATTRIBUTE_ID 0x8516 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_PRICE_TIER24_ATTRIBUTE_ID 0x8517 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_PRICE_TIER25_ATTRIBUTE_ID 0x8518 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_PRICE_TIER26_ATTRIBUTE_ID 0x8519 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_PRICE_TIER27_ATTRIBUTE_ID 0x851A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_PRICE_TIER28_ATTRIBUTE_ID 0x851B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_PRICE_TIER29_ATTRIBUTE_ID 0x851C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_PRICE_TIER30_ATTRIBUTE_ID 0x851D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_PRICE_TIER31_ATTRIBUTE_ID 0x851E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_PRICE_TIER32_ATTRIBUTE_ID 0x851F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_PRICE_TIER33_ATTRIBUTE_ID 0x8520 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_PRICE_TIER34_ATTRIBUTE_ID 0x8521 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_PRICE_TIER35_ATTRIBUTE_ID 0x8522 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_PRICE_TIER36_ATTRIBUTE_ID 0x8523 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_PRICE_TIER37_ATTRIBUTE_ID 0x8524 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_PRICE_TIER38_ATTRIBUTE_ID 0x8525 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_PRICE_TIER39_ATTRIBUTE_ID 0x8526 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_PRICE_TIER40_ATTRIBUTE_ID 0x8527 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_PRICE_TIER41_ATTRIBUTE_ID 0x8528 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_PRICE_TIER42_ATTRIBUTE_ID 0x8529 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_PRICE_TIER43_ATTRIBUTE_ID 0x852A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_PRICE_TIER44_ATTRIBUTE_ID 0x852B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_PRICE_TIER45_ATTRIBUTE_ID 0x852C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_PRICE_TIER46_ATTRIBUTE_ID 0x852D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_PRICE_TIER47_ATTRIBUTE_ID 0x852E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_PRICE_TIER48_ATTRIBUTE_ID 0x852F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TARIFF_LABEL_ATTRIBUTE_ID 0x8610 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_NUMBER_OF_PRICE_TIERS_IN_USE_ATTRIBUTE_ID 0x8611 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_NUMBER_OF_BLOCK_THRESHOLDS_IN_USE_ATTRIBUTE_ID 0x8612 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TIER_BLOCK_MODE_ATTRIBUTE_ID 0x8613 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_TARIFF_RESOLUTION_PERIOD_ATTRIBUTE_ID 0x8615 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_CO2_ATTRIBUTE_ID 0x8625 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_CO2_UNIT_ATTRIBUTE_ID 0x8626 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_CO2_TRAILING_DIGIT_ATTRIBUTE_ID 0x8627 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_CURRENT_BILLING_PERIOD_START_ATTRIBUTE_ID 0x8700 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_CURRENT_BILLING_PERIOD_DURATION_ATTRIBUTE_ID 0x8701 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_LAST_BILLING_PERIOD_START_ATTRIBUTE_ID 0x8702 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_LAST_BILLING_PERIOD_DURATION_ATTRIBUTE_ID 0x8703 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RX_LAST_BILLING_PERIOD_CONSOLIDATED_BILL_ATTRIBUTE_ID 0x8704 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PRICE_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_PRICE_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Demand Response and Load Control -// Cluster specification level: se-1.2b-15-0131-02 - -// Client attributes -#define ZCL_UTILITY_ENROLLMENT_GROUP_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_START_RANDOMIZATION_MINUTES_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_DURATION_RANDOMIZATION_MINUTES_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_DEVICE_CLASS_VALUE_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_DEMAND_RESPONSE_LOAD_CONTROL_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_DEMAND_RESPONSE_LOAD_CONTROL_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_DEMAND_RESPONSE_LOAD_CONTROL_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_DEMAND_RESPONSE_LOAD_CONTROL_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Simple Metering -// Cluster specification level: se-1.2b-15-0131-02 - -// Client attributes -#define ZCL_FUNCTIONAL_NOTIFICATION_FLAGS_ATTRIBUTE_ID 0x0000 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_NOTIFICATION_FLAGS_2_ATTRIBUTE_ID 0x0001 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_NOTIFICATION_FLAGS_3_ATTRIBUTE_ID 0x0002 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_NOTIFICATION_FLAGS_4_ATTRIBUTE_ID 0x0003 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_NOTIFICATION_FLAGS_5_ATTRIBUTE_ID 0x0004 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_NOTIFICATION_FLAGS_6_ATTRIBUTE_ID 0x0005 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_NOTIFICATION_FLAGS_7_ATTRIBUTE_ID 0x0006 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_NOTIFICATION_FLAGS_8_ATTRIBUTE_ID 0x0007 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_SIMPLE_METERING_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_SIMPLE_METERING_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_CURRENT_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_CURRENT_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_CURRENT_MAX_DEMAND_DELIVERED_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_CURRENT_MAX_DEMAND_RECEIVED_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_DFT_SUMMATION_ATTRIBUTE_ID 0x0004 // Ver.: always -#define ZCL_DAILY_FREEZE_TIME_ATTRIBUTE_ID 0x0005 // Ver.: always -#define ZCL_POWER_FACTOR_ATTRIBUTE_ID 0x0006 // Ver.: always -#define ZCL_READING_SNAP_SHOT_TIME_ATTRIBUTE_ID 0x0007 // Ver.: always -#define ZCL_CURRENT_MAX_DEMAND_DELIVERED_TIME_ATTRIBUTE_ID 0x0008 // Ver.: always -#define ZCL_CURRENT_MAX_DEMAND_RECEIVED_TIME_ATTRIBUTE_ID 0x0009 // Ver.: always -#define ZCL_DEFAULT_UPDATE_PERIOD_ATTRIBUTE_ID 0x000A // Ver.: since se-1.1-07-5356-16 -#define ZCL_FAST_POLL_UPDATE_PERIOD_ATTRIBUTE_ID 0x000B // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_BLOCK_PERIOD_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x000C // Ver.: since se-1.1-07-5356-16 -#define ZCL_DAILY_CONSUMPTION_TARGET_ATTRIBUTE_ID 0x000D // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_BLOCK_ATTRIBUTE_ID 0x000E // Ver.: since se-1.1-07-5356-16 -#define ZCL_PROFILE_INTERVAL_PERIOD_ATTRIBUTE_ID 0x000F // Ver.: since se-1.1-07-5356-16 -#define ZCL_INTERVAL_READ_REPORTING_PERIOD_ATTRIBUTE_ID 0x0010 // Ver.: since se-1.1-07-5356-16 -#define ZCL_PRESET_READING_TIME_ATTRIBUTE_ID 0x0011 // Ver.: since se-1.1-07-5356-16 -#define ZCL_VOLUME_PER_REPORT_ATTRIBUTE_ID 0x0012 // Ver.: since se-1.1-07-5356-16 -#define ZCL_FLOW_RESTRICTION_ATTRIBUTE_ID 0x0013 // Ver.: since se-1.1-07-5356-16 -#define ZCL_SUPPLY_STATUS_ATTRIBUTE_ID 0x0014 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_INLET_ENERGY_CARRIER_SUMMATION_ATTRIBUTE_ID 0x0015 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_OUTLET_ENERGY_CARRIER_SUMMATION_ATTRIBUTE_ID 0x0016 // Ver.: since se-1.1-07-5356-16 -#define ZCL_INLET_TEMPERATURE_ATTRIBUTE_ID 0x0017 // Ver.: since se-1.1-07-5356-16 -#define ZCL_OUTLET_TEMPERATURE_ATTRIBUTE_ID 0x0018 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CONTROL_TEMPERATURE_ATTRIBUTE_ID 0x0019 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_INLET_ENERGY_CARRIER_DEMAND_ATTRIBUTE_ID 0x001A // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_OUTLET_ENERGY_CARRIER_DEMAND_ATTRIBUTE_ID 0x001B // Ver.: since se-1.1-07-5356-16 -#define ZCL_PREVIOUS_BLOCK_PERIOD_CONSUMIPTION_DELIVERED_ATTRIBUTE_ID 0x001C // Ver.: since se-1.1b-07-5356-18 -#define ZCL_CURRENT_BLOCK_PERIOD_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x001D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_BLOCK_RECEIVED_ATTRIBUTE_ID 0x001E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_DFT_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x001F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_ACTIVE_REGISTER_TIER_DELIVERED_ATTRIBUTE_ID 0x0020 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_ACTIVE_REGISTER_TIER_RECEIVED_ATTRIBUTE_ID 0x0021 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_LAST_BLOCK_SWITCH_TIME_ATTRIBUTE_ID 0x0022 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER1_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0100 // Ver.: always -#define ZCL_CURRENT_TIER1_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0101 // Ver.: always -#define ZCL_CURRENT_TIER2_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0102 // Ver.: always -#define ZCL_CURRENT_TIER2_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0103 // Ver.: always -#define ZCL_CURRENT_TIER3_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0104 // Ver.: always -#define ZCL_CURRENT_TIER3_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0105 // Ver.: always -#define ZCL_CURRENT_TIER4_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0106 // Ver.: always -#define ZCL_CURRENT_TIER4_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0107 // Ver.: always -#define ZCL_CURRENT_TIER5_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0108 // Ver.: always -#define ZCL_CURRENT_TIER5_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0109 // Ver.: always -#define ZCL_CURRENT_TIER6_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x010A // Ver.: always -#define ZCL_CURRENT_TIER6_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x010B // Ver.: always -#define ZCL_CURRENT_TIER7_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x010C // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER7_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x010D // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER8_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x010E // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER8_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x010F // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER9_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0110 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER9_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0111 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER10_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0112 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER10_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0113 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER11_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0114 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER11_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0115 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER12_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0116 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER12_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0117 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER13_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0118 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER13_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0119 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER14_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x011A // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER14_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x011B // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER15_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x011C // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER15_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x011D // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER16_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x011E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER16_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x011F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER17_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0120 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER17_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0121 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER18_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0122 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER18_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0123 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER19_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0124 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER19_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0125 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER20_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0126 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER20_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0127 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER21_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0128 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER21_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0129 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER22_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x012A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER22_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x012B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER23_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x012C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER23_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x012D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER24_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x012E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER24_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x012F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER25_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0130 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER25_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0131 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER26_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0132 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER26_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0133 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER27_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0134 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER27_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0135 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER28_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0136 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER28_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0137 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER29_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0138 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER29_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0139 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER30_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x013A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER30_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x013B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER31_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x013C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER31_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x013D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER32_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x013E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER32_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x013F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER33_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0140 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER33_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0141 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER34_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0142 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER34_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0143 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER35_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0144 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER35_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0145 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER36_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0146 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER36_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0147 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER37_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0148 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER37_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0149 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER38_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x014A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER38_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x014B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER39_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x014C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER39_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x014D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER40_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x014E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER40_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x014F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER41_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0150 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER41_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0151 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER42_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0152 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER42_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0153 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER43_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0154 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER43_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0155 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER44_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0156 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER44_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0157 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER45_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0158 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER45_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0159 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER46_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x015A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER46_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x015B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER47_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x015C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER47_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x015D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER48_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x015E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER48_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x015F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CPP1_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x01FC // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CPP2_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x01FE // Ver.: since se-1.2a-07-5356-19 -#define ZCL_STATUS_ATTRIBUTE_ID 0x0200 // Ver.: always -#define ZCL_REMAINING_BATTERY_LIFE_ATTRIBUTE_ID 0x0201 // Ver.: since se-1.1-07-5356-16 -#define ZCL_HOURS_IN_OPERATION_ATTRIBUTE_ID 0x0202 // Ver.: since se-1.1-07-5356-16 -#define ZCL_HOURS_IN_FAULT_ATTRIBUTE_ID 0x0203 // Ver.: since se-1.1-07-5356-16 -#define ZCL_EXTENDED_STATUS_ATTRIBUTE_ID 0x0204 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_REMAINING_BATTERY_LIFE_IN_DAYS_ATTRIBUTE_ID 0x0205 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_METER_ID_ATTRIBUTE_ID 0x0206 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_AMBIENT_CONSUMPTION_INDICATOR_ATTRIBUTE_ID 0x0207 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_UNIT_OF_MEASURE_ATTRIBUTE_ID 0x0300 // Ver.: always -#define ZCL_MULTIPLIER_ATTRIBUTE_ID 0x0301 // Ver.: always -#define ZCL_DIVISOR_ATTRIBUTE_ID 0x0302 // Ver.: always -#define ZCL_SUMMATION_FORMATTING_ATTRIBUTE_ID 0x0303 // Ver.: always -#define ZCL_DEMAND_FORMATTING_ATTRIBUTE_ID 0x0304 // Ver.: always -#define ZCL_HISTORICAL_CONSUMPTION_FORMATTING_ATTRIBUTE_ID 0x0305 // Ver.: always -#define ZCL_METERING_DEVICE_TYPE_ATTRIBUTE_ID 0x0306 // Ver.: always -#define ZCL_SITE_ID_ATTRIBUTE_ID 0x0307 // Ver.: since se-1.1-07-5356-16 -#define ZCL_METER_SERIAL_NUMBER_ATTRIBUTE_ID 0x0308 // Ver.: since se-1.1-07-5356-16 -#define ZCL_ENERGY_CARRIER_UNIT_OF_MEASURE_ATTRIBUTE_ID 0x0309 // Ver.: since se-1.1-07-5356-16 -#define ZCL_ENERGY_CARRIER_SUMMATION_FORMATTING_ATTRIBUTE_ID 0x030A // Ver.: since se-1.1-07-5356-16 -#define ZCL_ENERGY_CARRIER_DEMAND_FORMATTING_ATTRIBUTE_ID 0x030B // Ver.: since se-1.1-07-5356-16 -#define ZCL_TEMPERATURE_UNIT_OF_MEASURE_ATTRIBUTE_ID 0x030C // Ver.: since se-1.1-07-5356-16 -#define ZCL_TEMPERATURE_FORMATTING_ATTRIBUTE_ID 0x030D // Ver.: since se-1.1-07-5356-16 -#define ZCL_MODULE_SERIAL_NUMBER_ATTRIBUTE_ID 0x030E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_OPERATING_TARIFF_LABEL_DELIVERED_ATTRIBUTE_ID 0x030F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_OPERATING_TARIFF_LABEL_RECEIVED_ATTRIBUTE_ID 0x0310 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CUSTOMER_ID_NUMBER_ATTRIBUTE_ID 0x0311 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_ALTERNATIVE_UNIT_OF_MEASURE_ATTRIBUTE_ID 0x0312 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_ALTERNATIVE_DEMAND_FORMATTING_ATTRIBUTE_ID 0x0313 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_ALTERNATIVE_CONSUMPTION_FORMATTING_ATTRIBUTE_ID 0x0314 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_INSTANTANEOUS_DEMAND_ATTRIBUTE_ID 0x0400 // Ver.: always -#define ZCL_CURRENT_DAY_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0401 // Ver.: always -#define ZCL_CURRENT_DAY_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0402 // Ver.: always -#define ZCL_PREVIOUS_DAY_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0403 // Ver.: always -#define ZCL_PREVIOUS_DAY_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0404 // Ver.: always -#define ZCL_CURRENT_PARTIAL_PROFILE_INTERVAL_START_TIME_DELIVERED_ATTRIBUTE_ID 0x0405 // Ver.: always -#define ZCL_CURRENT_PARTIAL_PROFILE_INTERVAL_START_TIME_RECEIVED_ATTRIBUTE_ID 0x0406 // Ver.: always -#define ZCL_CURRENT_PARTIAL_PROFILE_INTERVAL_VALUE_DELIVERED_ATTRIBUTE_ID 0x0407 // Ver.: always -#define ZCL_CURRENT_PARTIAL_PROFILE_INTERVAL_VALUE_RECEIVED_ATTRIBUTE_ID 0x0408 // Ver.: always -#define ZCL_CURRENT_DAY_MAX_PRESSURE_ATTRIBUTE_ID 0x0409 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_DAY_MIN_PRESSURE_ATTRIBUTE_ID 0x040A // Ver.: since se-1.1-07-5356-16 -#define ZCL_PREVIOUS_DAY_MAX_PRESSURE_ATTRIBUTE_ID 0x040B // Ver.: since se-1.1-07-5356-16 -#define ZCL_PREVIOUS_DAY_MIN_PRESSURE_ATTRIBUTE_ID 0x040C // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_DAY_MAX_DEMAND_ATTRIBUTE_ID 0x040D // Ver.: since se-1.1-07-5356-16 -#define ZCL_PREVIOUS_DAY_MAX_DEMAND_ATTRIBUTE_ID 0x040E // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_MONTH_MAX_DEMAND_ATTRIBUTE_ID 0x040F // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_YEAR_MAX_DEMAND_ATTRIBUTE_ID 0x0410 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_DAY_MAX_ENERGY_CARRIER_DEMAND_ATTRIBUTE_ID 0x0411 // Ver.: since se-1.1-07-5356-16 -#define ZCL_PREVIOUS_DAY_MAX_ENERGY_CARRIER_DEMAND_ATTRIBUTE_ID 0x0412 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_MONTH_MAX_ENERGY_CARRIER_DEMAND_ATTRIBUTE_ID 0x0413 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_MONTH_MIN_ENERGY_CARRIER_DEMAND_ATTRIBUTE_ID 0x0414 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_YEAR_MAX_ENERGY_CARRIER_DEMAND_ATTRIBUTE_ID 0x0415 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_YEAR_MIN_ENERGY_CARRIER_DEMAND_ATTRIBUTE_ID 0x0416 // Ver.: since se-1.1-07-5356-16 -#define ZCL_PREVIOUS_DAY2_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0420 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY2_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0421 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY3_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0422 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY3_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0423 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY4_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0424 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY4_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0425 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY5_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0426 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY5_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0427 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY6_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0428 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY6_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0429 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY7_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x042A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY7_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x042B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY8_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x042C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY8_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x042D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_WEEK_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0430 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_WEEK_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0431 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_WEEK_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0432 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_WEEK_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0433 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_WEEK2_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0434 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_WEEK2_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0435 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_WEEK3_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0436 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_WEEK3_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0437 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_WEEK4_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0438 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_WEEK4_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0439 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_WEEK5_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x043A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_WEEK5_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x043B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_MONTH_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0440 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_MONTH_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0441 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0442 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0443 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH2_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0444 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH2_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0445 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH3_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0446 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH3_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0447 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH4_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0448 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH4_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0449 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH5_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x044A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH5_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x044B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH6_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x044C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH6_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x044D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH7_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x044E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH7_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x044F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH8_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0450 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH8_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0451 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH9_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0452 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH9_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0453 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH10_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0454 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH10_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0455 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH11_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0456 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH11_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0457 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH12_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0458 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH12_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0459 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH13_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x045A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH13_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x045B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_METERING_HISTORICAL_FREEZE_TIME_ATTRIBUTE_ID 0x045C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_DAY_MAX_DEMAND_DELIVERED_ATTRIBUTE_ID 0x045D // Ver.: since se-1.4-17-05019-001 -#define ZCL_CURRENT_DAY_MAX_DEMAND_DELIVERED_TIME_ATTRIBUTE_ID 0x045E // Ver.: since se-1.4-17-05019-001 -#define ZCL_CURRENT_DAY_MAX_DEMAND_RECEIVED_ATTRIBUTE_ID 0x045F // Ver.: since se-1.4-17-05019-001 -#define ZCL_CURRENT_DAY_MAX_DEMAND_RECEIVED_TIME_ATTRIBUTE_ID 0x0460 // Ver.: since se-1.4-17-05019-001 -#define ZCL_PREVIOUS_DAY_MAX_DEMAND_DELIVERED_ATTRIBUTE_ID 0x0461 // Ver.: since se-1.4-17-05019-001 -#define ZCL_PREVIOUS_DAY_MAX_DEMAND_DELIVERED_TIME_ATTRIBUTE_ID 0x0462 // Ver.: since se-1.4-17-05019-001 -#define ZCL_PREVIOUS_DAY_MAX_DEMAND_RECEIVED_ATTRIBUTE_ID 0x0463 // Ver.: since se-1.4-17-05019-001 -#define ZCL_PREVIOUS_DAY_MAX_DEMAND_RECEIVED_TIME_ATTRIBUTE_ID 0x0464 // Ver.: since se-1.4-17-05019-001 -#define ZCL_MAX_NUMBER_OF_PERIODS_DELIVERED_ATTRIBUTE_ID 0x0500 // Ver.: always -#define ZCL_CURRENT_DEMAND_DELIVERED_ATTRIBUTE_ID 0x0600 // Ver.: always -#define ZCL_DEMAND_LIMIT_ATTRIBUTE_ID 0x0601 // Ver.: always -#define ZCL_DEMAND_INTEGRATION_PERIOD_ATTRIBUTE_ID 0x0602 // Ver.: always -#define ZCL_NUMBER_OF_DEMAND_SUBINTERVALS_ATTRIBUTE_ID 0x0603 // Ver.: always -#define ZCL_DEMAND_LIMIT_ARM_DURATION_IN_MINUTES_ATTRIBUTE_ID 0x0604 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_LOAD_LIMIT_SUPPLY_STATE_ATTRIBUTE_ID 0x0605 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_LOAD_LIMIT_COUNTER_ATTRIBUTE_ID 0x0606 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_SUPPLY_TAMPER_STATE_ATTRIBUTE_ID 0x0607 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_SUPPLY_DEPLETION_STATE_ATTRIBUTE_ID 0x0608 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_SUPPLY_UNCONTROLLED_FLOW_STATE_ATTRIBUTE_ID 0x0609 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_NO_TIER_BLOCK1_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0700 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_NO_TIER_BLOCK2_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0701 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_NO_TIER_BLOCK3_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0702 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_NO_TIER_BLOCK4_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0703 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_NO_TIER_BLOCK5_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0704 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_NO_TIER_BLOCK6_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0705 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_NO_TIER_BLOCK7_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0706 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_NO_TIER_BLOCK8_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0707 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_NO_TIER_BLOCK9_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0708 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_NO_TIER_BLOCK10_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0709 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_NO_TIER_BLOCK11_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x070A // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_NO_TIER_BLOCK12_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x070B // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_NO_TIER_BLOCK13_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x070C // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_NO_TIER_BLOCK14_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x070D // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_NO_TIER_BLOCK15_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x070E // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_NO_TIER_BLOCK16_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x070F // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER1_BLOCK1_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0710 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER1_BLOCK2_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0711 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER1_BLOCK3_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0712 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER1_BLOCK4_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0713 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER1_BLOCK5_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0714 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER1_BLOCK6_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0715 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER1_BLOCK7_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0716 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER1_BLOCK8_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0717 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER1_BLOCK9_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0718 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER1_BLOCK10_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0719 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER1_BLOCK11_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x071A // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER1_BLOCK12_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x071B // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER1_BLOCK13_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x071C // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER1_BLOCK14_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x071D // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER1_BLOCK15_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x071E // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER1_BLOCK16_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x071F // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER2_BLOCK1_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0720 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER2_BLOCK2_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0721 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER2_BLOCK3_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0722 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER2_BLOCK4_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0723 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER2_BLOCK5_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0724 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER2_BLOCK6_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0725 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER2_BLOCK7_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0726 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER2_BLOCK8_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0727 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER2_BLOCK9_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0728 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER2_BLOCK10_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0729 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER2_BLOCK11_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x072A // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER2_BLOCK12_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x072B // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER2_BLOCK13_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x072C // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER2_BLOCK14_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x072D // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER2_BLOCK15_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x072E // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER2_BLOCK16_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x072F // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER3_BLOCK1_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0730 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER3_BLOCK2_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0731 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER3_BLOCK3_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0732 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER3_BLOCK4_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0733 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER3_BLOCK5_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0734 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER3_BLOCK6_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0735 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER3_BLOCK7_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0736 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER3_BLOCK8_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0737 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER3_BLOCK9_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0738 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER3_BLOCK10_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0739 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER3_BLOCK11_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x073A // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER3_BLOCK12_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x073B // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER3_BLOCK13_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x073C // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER3_BLOCK14_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x073D // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER3_BLOCK15_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x073E // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER3_BLOCK16_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x073F // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER4_BLOCK1_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0740 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER4_BLOCK2_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0741 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER4_BLOCK3_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0742 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER4_BLOCK4_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0743 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER4_BLOCK5_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0744 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER4_BLOCK6_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0745 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER4_BLOCK7_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0746 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER4_BLOCK8_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0747 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER4_BLOCK9_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0748 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER4_BLOCK10_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0749 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER4_BLOCK11_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x074A // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER4_BLOCK12_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x074B // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER4_BLOCK13_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x074C // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER4_BLOCK14_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x074D // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER4_BLOCK15_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x074E // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER4_BLOCK16_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x074F // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER5_BLOCK1_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0750 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER5_BLOCK2_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0751 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER5_BLOCK3_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0752 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER5_BLOCK4_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0753 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER5_BLOCK5_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0754 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER5_BLOCK6_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0755 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER5_BLOCK7_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0756 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER5_BLOCK8_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0757 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER5_BLOCK9_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0758 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER5_BLOCK10_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0759 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER5_BLOCK11_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x075A // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER5_BLOCK12_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x075B // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER5_BLOCK13_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x075C // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER5_BLOCK14_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x075D // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER5_BLOCK15_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x075E // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER5_BLOCK16_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x075F // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER6_BLOCK1_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0760 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER6_BLOCK2_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0761 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER6_BLOCK3_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0762 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER6_BLOCK4_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0763 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER6_BLOCK5_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0764 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER6_BLOCK6_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0765 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER6_BLOCK7_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0766 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER6_BLOCK8_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0767 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER6_BLOCK9_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0768 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER6_BLOCK10_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0769 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER6_BLOCK11_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x076A // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER6_BLOCK12_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x076B // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER6_BLOCK13_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x076C // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER6_BLOCK14_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x076D // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER6_BLOCK15_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x076E // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER6_BLOCK16_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x076F // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER7_BLOCK1_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0770 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER7_BLOCK2_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0771 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER7_BLOCK3_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0772 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER7_BLOCK4_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0773 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER7_BLOCK5_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0774 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER7_BLOCK6_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0775 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER7_BLOCK7_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0776 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER7_BLOCK8_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0777 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER7_BLOCK9_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0778 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER7_BLOCK10_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0779 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER7_BLOCK11_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x077A // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER7_BLOCK12_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x077B // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER7_BLOCK13_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x077C // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER7_BLOCK14_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x077D // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER7_BLOCK15_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x077E // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER7_BLOCK16_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x077F // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER8_BLOCK1_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0780 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER8_BLOCK2_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0781 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER8_BLOCK3_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0782 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER8_BLOCK4_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0783 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER8_BLOCK5_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0784 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER8_BLOCK6_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0785 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER8_BLOCK7_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0786 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER8_BLOCK8_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0787 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER8_BLOCK9_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0788 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER8_BLOCK10_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0789 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER8_BLOCK11_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x078A // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER8_BLOCK12_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x078B // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER8_BLOCK13_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x078C // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER8_BLOCK14_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x078D // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER8_BLOCK15_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x078E // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER8_BLOCK16_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x078F // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER9_BLOCK1_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0790 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER9_BLOCK2_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0791 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER9_BLOCK3_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0792 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER9_BLOCK4_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0793 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER9_BLOCK5_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0794 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER9_BLOCK6_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0795 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER9_BLOCK7_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0796 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER9_BLOCK8_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0797 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER9_BLOCK9_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0798 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER9_BLOCK10_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x0799 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER9_BLOCK11_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x079A // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER9_BLOCK12_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x079B // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER9_BLOCK13_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x079C // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER9_BLOCK14_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x079D // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER9_BLOCK15_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x079E // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER9_BLOCK16_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x079F // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER10_BLOCK1_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07A0 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER10_BLOCK2_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07A1 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER10_BLOCK3_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07A2 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER10_BLOCK4_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07A3 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER10_BLOCK5_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07A4 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER10_BLOCK6_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07A5 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER10_BLOCK7_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07A6 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER10_BLOCK8_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07A7 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER10_BLOCK9_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07A8 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER10_BLOCK10_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07A9 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER10_BLOCK11_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07AA // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER10_BLOCK12_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07AB // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER10_BLOCK13_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07AC // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER10_BLOCK14_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07AD // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER10_BLOCK15_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07AE // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER10_BLOCK16_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07AF // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER11_BLOCK1_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07B0 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER11_BLOCK2_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07B1 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER11_BLOCK3_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07B2 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER11_BLOCK4_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07B3 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER11_BLOCK5_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07B4 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER11_BLOCK6_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07B5 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER11_BLOCK7_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07B6 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER11_BLOCK8_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07B7 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER11_BLOCK9_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07B8 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER11_BLOCK10_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07B9 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER11_BLOCK11_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07BA // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER11_BLOCK12_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07BB // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER11_BLOCK13_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07BC // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER11_BLOCK14_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07BD // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER11_BLOCK15_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07BE // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER11_BLOCK16_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07BF // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER12_BLOCK1_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07C0 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER12_BLOCK2_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07C1 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER12_BLOCK3_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07C2 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER12_BLOCK4_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07C3 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER12_BLOCK5_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07C4 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER12_BLOCK6_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07C5 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER12_BLOCK7_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07C6 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER12_BLOCK8_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07C7 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER12_BLOCK9_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07C8 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER12_BLOCK10_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07C9 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER12_BLOCK11_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07CA // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER12_BLOCK12_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07CB // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER12_BLOCK13_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07CC // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER12_BLOCK14_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07CD // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER12_BLOCK15_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07CE // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER12_BLOCK16_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07CF // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER13_BLOCK1_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07D0 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER13_BLOCK2_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07D1 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER13_BLOCK3_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07D2 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER13_BLOCK4_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07D3 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER13_BLOCK5_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07D4 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER13_BLOCK6_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07D5 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER13_BLOCK7_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07D6 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER13_BLOCK8_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07D7 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER13_BLOCK9_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07D8 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER13_BLOCK10_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07D9 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER13_BLOCK11_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07DA // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER13_BLOCK12_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07DB // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER13_BLOCK13_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07DC // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER13_BLOCK14_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07DD // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER13_BLOCK15_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07DE // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER13_BLOCK16_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07DF // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER14_BLOCK1_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07E0 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER14_BLOCK2_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07E1 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER14_BLOCK3_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07E2 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER14_BLOCK4_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07E3 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER14_BLOCK5_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07E4 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER14_BLOCK6_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07E5 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER14_BLOCK7_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07E6 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER14_BLOCK8_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07E7 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER14_BLOCK9_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07E8 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER14_BLOCK10_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07E9 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER14_BLOCK11_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07EA // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER14_BLOCK12_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07EB // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER14_BLOCK13_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07EC // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER14_BLOCK14_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07ED // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER14_BLOCK15_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07EE // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER14_BLOCK16_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07EF // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER15_BLOCK1_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07F0 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER15_BLOCK2_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07F1 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER15_BLOCK3_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07F2 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER15_BLOCK4_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07F3 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER15_BLOCK5_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07F4 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER15_BLOCK6_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07F5 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER15_BLOCK7_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07F6 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER15_BLOCK8_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07F7 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER15_BLOCK9_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07F8 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER15_BLOCK10_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07F9 // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER15_BLOCK11_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07FA // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER15_BLOCK12_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07FB // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER15_BLOCK13_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07FC // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER15_BLOCK14_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07FD // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER15_BLOCK15_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07FE // Ver.: since se-1.1-07-5356-16 -#define ZCL_CURRENT_TIER15_BLOCK16_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x07FF // Ver.: since se-1.1-07-5356-16 -#define ZCL_GENERIC_ALARM_MASK_ATTRIBUTE_ID 0x0800 // Ver.: since se-1.1-07-5356-16 -#define ZCL_ELECTRICITY_ALARM_MASK_ATTRIBUTE_ID 0x0801 // Ver.: since se-1.1-07-5356-16 -#define ZCL_GENERIC_FLOW_PRESSURE_ALARM_MASK_ATTRIBUTE_ID 0x0802 // Ver.: since se-1.1-07-5356-16 -#define ZCL_WATER_SPECIFIC_ALARM_MASK_ATTRIBUTE_ID 0x0803 // Ver.: since se-1.1-07-5356-16 -#define ZCL_HEAT_AND_COOLING_SPECIFIC_ALARM_MASK_ATTRIBUTE_ID 0x0804 // Ver.: since se-1.1-07-5356-16 -#define ZCL_GAS_SPECIFIC_ALARM_MASK_ATTRIBUTE_ID 0x0805 // Ver.: since se-1.1-07-5356-16 -#define ZCL_METERING_EXTENDED_GENERIC_ALARM_MASK_ATTRIBUTE_ID 0x0806 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_METERING_MANUFACTURE_ALARM_MASK_ATTRIBUTE_ID 0x0807 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_NO_TIER_BLOCK1_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0900 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_NO_TIER_BLOCK2_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0901 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_NO_TIER_BLOCK3_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0902 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_NO_TIER_BLOCK4_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0903 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_NO_TIER_BLOCK5_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0904 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_NO_TIER_BLOCK6_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0905 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_NO_TIER_BLOCK7_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0906 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_NO_TIER_BLOCK8_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0907 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_NO_TIER_BLOCK9_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0908 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_NO_TIER_BLOCK10_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0909 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_NO_TIER_BLOCK11_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x090A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_NO_TIER_BLOCK12_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x090B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_NO_TIER_BLOCK13_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x090C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_NO_TIER_BLOCK14_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x090D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_NO_TIER_BLOCK15_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x090E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_NO_TIER_BLOCK16_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x090F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER1_BLOCK1_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0910 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER1_BLOCK2_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0911 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER1_BLOCK3_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0912 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER1_BLOCK4_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0913 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER1_BLOCK5_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0914 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER1_BLOCK6_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0915 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER1_BLOCK7_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0916 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER1_BLOCK8_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0917 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER1_BLOCK9_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0918 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER1_BLOCK10_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0919 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER1_BLOCK11_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x091A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER1_BLOCK12_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x091B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER1_BLOCK13_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x091C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER1_BLOCK14_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x091D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER1_BLOCK15_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x091E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER1_BLOCK16_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x091F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER2_BLOCK1_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0920 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER2_BLOCK2_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0921 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER2_BLOCK3_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0922 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER2_BLOCK4_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0923 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER2_BLOCK5_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0924 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER2_BLOCK6_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0925 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER2_BLOCK7_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0926 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER2_BLOCK8_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0927 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER2_BLOCK9_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0928 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER2_BLOCK10_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0929 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER2_BLOCK11_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x092A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER2_BLOCK12_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x092B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER2_BLOCK13_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x092C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER2_BLOCK14_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x092D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER2_BLOCK15_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x092E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER2_BLOCK16_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x092F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER3_BLOCK1_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0930 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER3_BLOCK2_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0931 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER3_BLOCK3_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0932 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER3_BLOCK4_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0933 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER3_BLOCK5_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0934 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER3_BLOCK6_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0935 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER3_BLOCK7_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0936 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER3_BLOCK8_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0937 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER3_BLOCK9_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0938 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER3_BLOCK10_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0939 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER3_BLOCK11_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x093A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER3_BLOCK12_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x093B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER3_BLOCK13_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x093C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER3_BLOCK14_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x093D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER3_BLOCK15_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x093E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER3_BLOCK16_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x093F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER4_BLOCK1_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0940 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER4_BLOCK2_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0941 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER4_BLOCK3_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0942 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER4_BLOCK4_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0943 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER4_BLOCK5_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0944 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER4_BLOCK6_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0945 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER4_BLOCK7_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0946 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER4_BLOCK8_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0947 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER4_BLOCK9_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0948 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER4_BLOCK10_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0949 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER4_BLOCK11_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x094A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER4_BLOCK12_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x094B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER4_BLOCK13_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x094C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER4_BLOCK14_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x094D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER4_BLOCK15_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x094E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER4_BLOCK16_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x094F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER5_BLOCK1_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0950 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER5_BLOCK2_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0951 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER5_BLOCK3_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0952 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER5_BLOCK4_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0953 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER5_BLOCK5_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0954 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER5_BLOCK6_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0955 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER5_BLOCK7_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0956 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER5_BLOCK8_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0957 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER5_BLOCK9_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0958 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER5_BLOCK10_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0959 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER5_BLOCK11_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x095A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER5_BLOCK12_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x095B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER5_BLOCK13_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x095C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER5_BLOCK14_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x095D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER5_BLOCK15_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x095E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER5_BLOCK16_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x095F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER6_BLOCK1_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0960 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER6_BLOCK2_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0961 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER6_BLOCK3_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0962 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER6_BLOCK4_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0963 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER6_BLOCK5_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0964 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER6_BLOCK6_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0965 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER6_BLOCK7_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0966 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER6_BLOCK8_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0967 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER6_BLOCK9_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0968 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER6_BLOCK10_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0969 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER6_BLOCK11_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x096A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER6_BLOCK12_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x096B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER6_BLOCK13_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x096C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER6_BLOCK14_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x096D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER6_BLOCK15_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x096E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER6_BLOCK16_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x096F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER7_BLOCK1_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0970 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER7_BLOCK2_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0971 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER7_BLOCK3_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0972 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER7_BLOCK4_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0973 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER7_BLOCK5_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0974 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER7_BLOCK6_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0975 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER7_BLOCK7_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0976 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER7_BLOCK8_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0977 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER7_BLOCK9_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0978 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER7_BLOCK10_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0979 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER7_BLOCK11_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x097A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER7_BLOCK12_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x097B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER7_BLOCK13_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x097C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER7_BLOCK14_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x097D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER7_BLOCK15_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x097E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER7_BLOCK16_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x097F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER8_BLOCK1_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0980 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER8_BLOCK2_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0981 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER8_BLOCK3_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0982 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER8_BLOCK4_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0983 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER8_BLOCK5_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0984 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER8_BLOCK6_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0985 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER8_BLOCK7_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0986 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER8_BLOCK8_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0987 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER8_BLOCK9_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0988 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER8_BLOCK10_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0989 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER8_BLOCK11_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x098A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER8_BLOCK12_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x098B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER8_BLOCK13_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x098C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER8_BLOCK14_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x098D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER8_BLOCK15_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x098E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER8_BLOCK16_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x098F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER9_BLOCK1_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0990 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER9_BLOCK2_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0991 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER9_BLOCK3_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0992 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER9_BLOCK4_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0993 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER9_BLOCK5_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0994 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER9_BLOCK6_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0995 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER9_BLOCK7_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0996 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER9_BLOCK8_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0997 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER9_BLOCK9_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0998 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER9_BLOCK10_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x0999 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER9_BLOCK11_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x099A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER9_BLOCK12_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x099B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER9_BLOCK13_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x099C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER9_BLOCK14_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x099D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER9_BLOCK15_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x099E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER9_BLOCK16_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x099F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER10_BLOCK1_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09A0 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER10_BLOCK2_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09A1 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER10_BLOCK3_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09A2 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER10_BLOCK4_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09A3 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER10_BLOCK5_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09A4 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER10_BLOCK6_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09A5 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER10_BLOCK7_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09A6 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER10_BLOCK8_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09A7 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER10_BLOCK9_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09A8 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER10_BLOCK10_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09A9 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER10_BLOCK11_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09AA // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER10_BLOCK12_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09AB // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER10_BLOCK13_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09AC // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER10_BLOCK14_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09AD // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER10_BLOCK15_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09AE // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER10_BLOCK16_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09AF // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER11_BLOCK1_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09B0 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER11_BLOCK2_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09B1 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER11_BLOCK3_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09B2 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER11_BLOCK4_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09B3 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER11_BLOCK5_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09B4 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER11_BLOCK6_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09B5 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER11_BLOCK7_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09B6 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER11_BLOCK8_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09B7 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER11_BLOCK9_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09B8 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER11_BLOCK10_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09B9 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER11_BLOCK11_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09BA // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER11_BLOCK12_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09BB // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER11_BLOCK13_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09BC // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER11_BLOCK14_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09BD // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER11_BLOCK15_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09BE // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER11_BLOCK16_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09BF // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER12_BLOCK1_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09C0 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER12_BLOCK2_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09C1 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER12_BLOCK3_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09C2 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER12_BLOCK4_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09C3 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER12_BLOCK5_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09C4 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER12_BLOCK6_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09C5 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER12_BLOCK7_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09C6 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER12_BLOCK8_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09C7 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER12_BLOCK9_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09C8 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER12_BLOCK10_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09C9 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER12_BLOCK11_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09CA // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER12_BLOCK12_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09CB // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER12_BLOCK13_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09CC // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER12_BLOCK14_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09CD // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER12_BLOCK15_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09CE // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER12_BLOCK16_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09CF // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER13_BLOCK1_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09D0 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER13_BLOCK2_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09D1 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER13_BLOCK3_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09D2 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER13_BLOCK4_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09D3 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER13_BLOCK5_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09D4 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER13_BLOCK6_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09D5 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER13_BLOCK7_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09D6 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER13_BLOCK8_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09D7 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER13_BLOCK9_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09D8 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER13_BLOCK10_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09D9 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER13_BLOCK11_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09DA // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER13_BLOCK12_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09DB // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER13_BLOCK13_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09DC // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER13_BLOCK14_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09DD // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER13_BLOCK15_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09DE // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER13_BLOCK16_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09DF // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER14_BLOCK1_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09E0 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER14_BLOCK2_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09E1 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER14_BLOCK3_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09E2 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER14_BLOCK4_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09E3 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER14_BLOCK5_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09E4 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER14_BLOCK6_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09E5 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER14_BLOCK7_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09E6 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER14_BLOCK8_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09E7 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER14_BLOCK9_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09E8 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER14_BLOCK10_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09E9 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER14_BLOCK11_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09EA // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER14_BLOCK12_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09EB // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER14_BLOCK13_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09EC // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER14_BLOCK14_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09ED // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER14_BLOCK15_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09EE // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER14_BLOCK16_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09EF // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER15_BLOCK1_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09F0 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER15_BLOCK2_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09F1 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER15_BLOCK3_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09F2 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER15_BLOCK4_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09F3 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER15_BLOCK5_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09F4 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER15_BLOCK6_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09F5 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER15_BLOCK7_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09F6 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER15_BLOCK8_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09F7 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER15_BLOCK9_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09F8 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER15_BLOCK10_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09F9 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER15_BLOCK11_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09FA // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER15_BLOCK12_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09FB // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER15_BLOCK13_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09FC // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER15_BLOCK14_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09FD // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER15_BLOCK15_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09FE // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_TIER15_BLOCK16_SUMMATION_RECEIVED_ATTRIBUTE_ID 0x09FF // Ver.: since se-1.2a-07-5356-19 -#define ZCL_BILL_TO_DATE_DELIVERED_ATTRIBUTE_ID 0x0A00 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_BILL_TO_DATE_TIME_STAMP_DELIVERED_ATTRIBUTE_ID 0x0A01 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PROJECTED_BILL_DELIVERED_ATTRIBUTE_ID 0x0A02 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PROJECTED_BILL_TIME_STAMP_DELIVERED_ATTRIBUTE_ID 0x0A03 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_BILL_DELIVERED_TRAILING_DIGIT_ATTRIBUTE_ID 0x0A04 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_BILL_TO_DATE_RECEIVED_ATTRIBUTE_ID 0x0A10 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_BILL_TO_DATE_TIME_STAMP_RECEIVED_ATTRIBUTE_ID 0x0A11 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PROJECTED_BILL_RECEIVED_ATTRIBUTE_ID 0x0A12 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PROJECTED_BILL_TIME_STAMP_RECEIVED_ATTRIBUTE_ID 0x0A13 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_BILL_RECEIVED_TRAILING_DIGIT_ATTRIBUTE_ID 0x0A14 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PROPOSED_CHANGE_SUPPLY_IMPLEMENTATION_TIME_ATTRIBUTE_ID 0x0B00 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PROPOSED_CHANGE_SUPPLY_STATUS_ATTRIBUTE_ID 0x0B01 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_UNCONTROLLED_FLOW_THESHOLD_ATTRIBUTE_ID 0x0B10 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_UNCONTROLLED_FLOW_THESHOLD_UNIT_OF_MEASURE_ATTRIBUTE_ID 0x0B11 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_UNCONTROLLED_FLOW_MULTIPLIER_ATTRIBUTE_ID 0x0B12 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_UNCONTROLLED_FLOW_DIVISOR_ATTRIBUTE_ID 0x0B13 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_FLOW_STABILIZATION_PERIOD_ATTRIBUTE_ID 0x0B14 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_FLOW_MEASUREMENT_PERIOD_ATTRIBUTE_ID 0x0B15 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_ALTERNATIVE_INSTANTANEOUS_DEMAND_ATTRIBUTE_ID 0x0C00 // Ver.: always -#define ZCL_CURRENT_ALTERNATIVE_DAY_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0C01 // Ver.: always -#define ZCL_CURRENT_ALTERNATIVE_DAY_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0C02 // Ver.: always -#define ZCL_PREVIOUS_DAY_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0C03 // Ver.: always -#define ZCL_PREVIOUS_DAY_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0C04 // Ver.: always -#define ZCL_CURRENT_ALTERNATIVE_PARTIAL_PROFILE_INTERVAL_START_TIME_DELIVERED_ATTRIBUTE_ID 0x0C05 // Ver.: always -#define ZCL_CURRENT_ALTERNATIVE_PARTIAL_PROFILE_INTERVAL_START_TIME_RECEIVED_ATTRIBUTE_ID 0x0C06 // Ver.: always -#define ZCL_CURRENT_ALTERNATIVE_PARTIAL_PROFILE_INTERVAL_VALUE_DELIVERED_ATTRIBUTE_ID 0x0C07 // Ver.: always -#define ZCL_CURRENT_ALTERNATIVE_PARTIAL_PROFILE_INTERVAL_VALUE_RECEIVED_ATTRIBUTE_ID 0x0C08 // Ver.: always -#define ZCL_CURRENT_ALTERNATIVE_DAY_MAX_PRESSURE_ATTRIBUTE_ID 0x0C09 // Ver.: always -#define ZCL_CURRENT_ALTERNATIVE_DAY_MIN_PRESSURE_ATTRIBUTE_ID 0x0C0A // Ver.: always -#define ZCL_PREVIOUS_DAY_ALTERNATIVE_MAX_PRESSURE_ATTRIBUTE_ID 0x0C0B // Ver.: always -#define ZCL_PREVIOUS_DAY_ALTERNATIVE_MIN_PRESSURE_ATTRIBUTE_ID 0x0C0C // Ver.: always -#define ZCL_CURRENT_ALTERNATIVE_DAY_ALTERNATIVE_MAX_DEMAND_ATTRIBUTE_ID 0x0C0D // Ver.: always -#define ZCL_PREVIOUS_DAY_ALTERNATIVE_MAX_DEMAND_ATTRIBUTE_ID 0x0C0E // Ver.: always -#define ZCL_CURRENT_ALTERNATIVE_MONTH_MAX_DEMAND_ATTRIBUTE_ID 0x0C0F // Ver.: always -#define ZCL_CURRENT_ALTERNATIVE_YEAR_MAX_DEMAND_ATTRIBUTE_ID 0x0C10 // Ver.: always -#define ZCL_PREVIOUS_DAY2_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0C20 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY2_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0C21 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY3_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0C22 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY3_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0C23 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY4_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0C24 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY4_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0C25 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY5_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0C26 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY5_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0C27 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY6_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0C28 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY6_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0C29 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY7_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0C2A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY7_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0C2B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY8_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0C2C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY8_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0C2D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_WEEK_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0C30 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_WEEK_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0C31 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_WEEK_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0C32 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_WEEK_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0C33 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_WEEK2_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0C34 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_WEEK2_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0C35 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_WEEK3_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0C36 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_WEEK3_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0C37 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_WEEK4_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0C38 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_WEEK4_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0C39 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_WEEK5_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0C3A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_WEEK5_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0C3B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_MONTH_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0C40 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_MONTH_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0C41 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0C42 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0C43 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH2_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0C44 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH2_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0C45 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH3_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0C46 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH3_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0C47 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH4_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0C48 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH4_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0C49 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH5_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0C4A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH5_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0C4B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH6_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0C4C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH6_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0C4D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH7_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0C4E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH7_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0C4F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH8_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0C50 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH8_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0C51 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH9_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0C52 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH9_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0C53 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH10_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0C54 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH10_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0C55 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH11_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0C56 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH11_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0C57 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH12_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0C58 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH12_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0C59 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH13_ALTERNATIVE_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0C5A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH13_ALTERNATIVE_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0C5B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_DAY_ALTERNATIVE_MAX_DEMAND_DELIVERED_ATTRIBUTE_ID 0x0C5C // Ver.: since se-1.4-17-05019-001 -#define ZCL_CURRENT_DAY_ALTERNATIVE_MAX_DEMAND_DELIVERED_TIME_ATTRIBUTE_ID 0x0C5D // Ver.: since se-1.4-17-05019-001 -#define ZCL_CURRENT_DAY_ALTERNATIVE_MAX_DEMAND_RECEIVED_ATTRIBUTE_ID 0x0C5E // Ver.: since se-1.4-17-05019-001 -#define ZCL_CURRENT_DAY_ALTERNATIVE_MAX_DEMAND_RECEIVED_TIME_ATTRIBUTE_ID 0x0C5F // Ver.: since se-1.4-17-05019-001 -#define ZCL_PREVIOUS_DAY_ALTERNATIVE_MAX_DEMAND_DELIVERED_ATTRIBUTE_ID 0x0C60 // Ver.: since se-1.4-17-05019-001 -#define ZCL_PREVIOUS_DAY_ALTERNATIVE_MAX_DEMAND_DELIVERED_TIME_ATTRIBUTE_ID 0x0C61 // Ver.: since se-1.4-17-05019-001 -#define ZCL_PREVIOUS_DAY_ALTERNATIVE_MAX_DEMAND_RECEIVED_ATTRIBUTE_ID 0x0C62 // Ver.: since se-1.4-17-05019-001 -#define ZCL_PREVIOUS_DAY_ALTERNATIVE_MAX_DEMAND_RECEIVED_TIME_ATTRIBUTE_ID 0x0C63 // Ver.: since se-1.4-17-05019-001 -#define ZCL_CURRENT_ACTIVE_SUMMATION_Q1_ATTRIBUTE_ID 0x0D01 // Ver.: since se-1.4-17-05019-001 -#define ZCL_CURRENT_ACTIVE_SUMMATION_Q2_ATTRIBUTE_ID 0x0D02 // Ver.: since se-1.4-17-05019-001 -#define ZCL_CURRENT_ACTIVE_SUMMATION_Q3_ATTRIBUTE_ID 0x0D03 // Ver.: since se-1.4-17-05019-001 -#define ZCL_CURRENT_ACTIVE_SUMMATION_Q4_ATTRIBUTE_ID 0x0D04 // Ver.: since se-1.4-17-05019-001 -#define ZCL_CURRENT_REACTIVE_SUMMATION_Q1_ATTRIBUTE_ID 0x0D05 // Ver.: since se-1.4-17-05019-001 -#define ZCL_CURRENT_REACTIVE_SUMMATION_Q2_ATTRIBUTE_ID 0x0D06 // Ver.: since se-1.4-17-05019-001 -#define ZCL_CURRENT_REACTIVE_SUMMATION_Q3_ATTRIBUTE_ID 0x0D07 // Ver.: since se-1.4-17-05019-001 -#define ZCL_CURRENT_REACTIVE_SUMMATION_Q4_ATTRIBUTE_ID 0x0D08 // Ver.: since se-1.4-17-05019-001 -#define ZCL_SIMPLE_METERING_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_SIMPLE_METERING_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Messaging -// Cluster specification level: se-1.2b-15-0131-02 - -// Client attributes -#define ZCL_MESSAGING_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_MESSAGING_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_MESSAGING_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_MESSAGING_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Tunneling -// Cluster specification level: se-1.2b-15-0131-02 - -// Client attributes -#define ZCL_TUNNELING_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_TUNNELING_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_CLOSE_TUNNEL_TIMEOUT_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_TUNNELING_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_TUNNELING_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Prepayment -// Cluster specification level: se-1.2b-15-0131-02 - -// Client attributes -#define ZCL_PREPAYMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_PREPAYMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_PAYMENT_CONTROL_CONFIGURATION_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_CREDIT_REMAINING_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_EMERGENCY_CREDIT_REMAINING_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_CREDIT_STATUS_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_CREDIT_REMAINING_TIMESTAMP_ATTRIBUTE_ID 0x0004 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_ACCUMULATED_DEBT_ATTRIBUTE_ID 0x0005 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_OVERALL_DEBT_CAP_ATTRIBUTE_ID 0x0006 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_EMERGENCY_CREDIT_LIMIT_ALLOWANCE_ATTRIBUTE_ID 0x0010 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_EMERGENCY_CREDIT_THRESHOLD_ATTRIBUTE_ID 0x0011 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TOTAL_CREDIT_ADDED_ATTRIBUTE_ID 0x0020 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_MAX_CREDIT_LIMIT_ATTRIBUTE_ID 0x0021 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_MAX_CREDIT_PER_TOP_UP_ATTRIBUTE_ID 0x0022 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_FRIENDLY_CREDIT_WARNING_ATTRIBUTE_ID 0x0030 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_LOW_CREDIT_WARNING_ATTRIBUTE_ID 0x0031 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_IHD_LOW_CREDIT_WARNING_ATTRIBUTE_ID 0x0032 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_INTERRUPT_SUSPEND_TIME_ATTRIBUTE_ID 0x0033 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_REMAINING_FRIENDLY_CREDIT_TIME_ATTRIBUTE_ID 0x0034 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_NEXT_FRIENDLY_CREDIT_PERIOD_ATTRIBUTE_ID 0x0035 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CUT_OFF_VALUE_ATTRIBUTE_ID 0x0040 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TOKEN_CARRIER_ID_ATTRIBUTE_ID 0x0080 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TOP_UP_DATE_TIME_1_ATTRIBUTE_ID 0x0100 // Ver.: always -#define ZCL_TOP_UP_AMOUNT_1_ATTRIBUTE_ID 0x0101 // Ver.: always -#define ZCL_TOP_UP_ORIGINATING_DEVICE_1_ATTRIBUTE_ID 0x0102 // Ver.: always -#define ZCL_TOP_UP_CODE_1_ATTRIBUTE_ID 0x0103 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TOP_UP_DATE_TIME_2_ATTRIBUTE_ID 0x0110 // Ver.: always -#define ZCL_TOP_UP_AMOUNT_2_ATTRIBUTE_ID 0x0111 // Ver.: always -#define ZCL_TOP_UP_ORIGINATING_DEVICE_2_ATTRIBUTE_ID 0x0112 // Ver.: always -#define ZCL_TOP_UP_CODE_2_ATTRIBUTE_ID 0x0113 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TOP_UP_DATE_TIME_3_ATTRIBUTE_ID 0x0120 // Ver.: always -#define ZCL_TOP_UP_AMOUNT_3_ATTRIBUTE_ID 0x0121 // Ver.: always -#define ZCL_TOP_UP_ORIGINATING_DEVICE_3_ATTRIBUTE_ID 0x0122 // Ver.: always -#define ZCL_TOP_UP_CODE_3_ATTRIBUTE_ID 0x0123 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TOP_UP_DATE_TIME_4_ATTRIBUTE_ID 0x0130 // Ver.: always -#define ZCL_TOP_UP_AMOUNT_4_ATTRIBUTE_ID 0x0131 // Ver.: always -#define ZCL_TOP_UP_ORIGINATING_DEVICE_4_ATTRIBUTE_ID 0x0132 // Ver.: always -#define ZCL_TOP_UP_CODE_4_ATTRIBUTE_ID 0x0133 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TOP_UP_DATE_TIME_5_ATTRIBUTE_ID 0x0140 // Ver.: always -#define ZCL_TOP_UP_AMOUNT_5_ATTRIBUTE_ID 0x0141 // Ver.: always -#define ZCL_TOP_UP_ORIGINATING_DEVICE_5_ATTRIBUTE_ID 0x0142 // Ver.: always -#define ZCL_TOP_UP_CODE_5_ATTRIBUTE_ID 0x0143 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_DEBT_LABEL_1_ATTRIBUTE_ID 0x0210 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_DEBT_AMOUNT_1_ATTRIBUTE_ID 0x0211 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_DEBT_RECOVERY_METHOD_1_ATTRIBUTE_ID 0x0212 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_DEBT_RECOVERY_START_TIME_1_ATTRIBUTE_ID 0x0213 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_DEBT_RECOVERY_COLLECTION_TIME_1_ATTRIBUTE_ID 0x0214 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_DEBT_RECOVERY_FREQUENCY_1_ATTRIBUTE_ID 0x0216 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_DEBT_RECOVERY_AMOUNT_1_ATTRIBUTE_ID 0x0217 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_DEBT_RECOVERY_TOP_UP_PERCENTAGE_1_ATTRIBUTE_ID 0x0219 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_DEBT_LABEL_2_ATTRIBUTE_ID 0x0220 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_DEBT_AMOUNT_2_ATTRIBUTE_ID 0x0221 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_DEBT_RECOVERY_METHOD_2_ATTRIBUTE_ID 0x0222 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_DEBT_RECOVERY_START_TIME_2_ATTRIBUTE_ID 0x0223 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_DEBT_RECOVERY_COLLECTION_TIME_2_ATTRIBUTE_ID 0x0224 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_DEBT_RECOVERY_FREQUENCY_2_ATTRIBUTE_ID 0x0226 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_DEBT_RECOVERY_AMOUNT_2_ATTRIBUTE_ID 0x0227 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_DEBT_RECOVERY_TOP_UP_PERCENTAGE_2_ATTRIBUTE_ID 0x0229 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_DEBT_LABEL_3_ATTRIBUTE_ID 0x0230 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_DEBT_AMOUNT_3_ATTRIBUTE_ID 0x0231 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_DEBT_RECOVERY_METHOD_3_ATTRIBUTE_ID 0x0232 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_DEBT_RECOVERY_START_TIME_3_ATTRIBUTE_ID 0x0233 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_DEBT_RECOVERY_COLLECTION_TIME_3_ATTRIBUTE_ID 0x0234 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_DEBT_RECOVERY_FREQUENCY_3_ATTRIBUTE_ID 0x0236 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_DEBT_RECOVERY_AMOUNT_3_ATTRIBUTE_ID 0x0237 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_DEBT_RECOVERY_TOP_UP_PERCENTAGE_3_ATTRIBUTE_ID 0x0239 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREPAYMENT_ALARM_STATUS_ATTRIBUTE_ID 0x0400 // Ver.: since se-1.2a-07-5356-21 -#define ZCL_PREPAY_GENERIC_ALARM_MASK_ATTRIBUTE_ID 0x0401 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREPAY_SWITCH_ALARM_MASK_ATTRIBUTE_ID 0x0402 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREPAY_EVENT_ALARM_MASK_ATTRIBUTE_ID 0x0403 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_HISTORICAL_COST_CONSUMPTION_FORMATTING_ATTRIBUTE_ID 0x0500 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CONSUMPTION_UNIT_OF_MEASUREMENT_ATTRIBUTE_ID 0x0501 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENCY_SCALING_FACTOR_ATTRIBUTE_ID 0x0502 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREPAYMANT_CURRENCY_ATTRIBUTE_ID 0x0503 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_DAY_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x051C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_DAY_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x051D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x051E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x051F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY_2_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0520 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY_2_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0521 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY_3_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0522 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY_3_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0523 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY_4_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0524 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY_4_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0525 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY_5_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0526 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY_5_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0527 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY_6_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0528 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY_6_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0529 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY_7_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x052A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY_7_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x052B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY_8_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x052C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_DAY_8_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x052D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_WEEK_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0530 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_WEEK_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0531 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_WEEK_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0532 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_WEEK_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0533 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_WEEK_2_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0534 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_WEEK_2_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0535 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_WEEK_3_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0536 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_WEEK_3_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0537 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_WEEK_4_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0538 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_WEEK_4_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0539 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_WEEK_5_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x053A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_WEEK_5_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x053B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_MONTH_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0540 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CURRENT_MONTH_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0541 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0542 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0543 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH_2_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0544 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH_2_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0545 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH_3_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0546 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH_3_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0547 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH_4_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0548 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH_4_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0549 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH_5_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x054A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH_5_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x054B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH_6_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x054C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH_6_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x054D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH_7_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x054E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH_7_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x054F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH_8_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0550 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH_8_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0551 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH_9_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0552 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH_9_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0553 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH_10_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0554 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH_10_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0555 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH_11_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0556 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH_11_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0557 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH_12_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x0558 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH_12_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x0559 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH_13_COST_CONSUMPTION_DELIVERED_ATTRIBUTE_ID 0x055A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREVIOUS_MONTH_13_COST_CONSUMPTION_RECEIVED_ATTRIBUTE_ID 0x055B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREPAYMENT_HISTORICAL_FREEZE_TIME_ATTRIBUTE_ID 0x055C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PREPAYMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_PREPAYMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Energy Management -// Cluster specification level: se-1.2b-15-0131-02 - -// Client attributes -#define ZCL_ENERGY_MANAGEMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_ENERGY_MANAGEMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_LOAD_CONTROL_STATE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_CURRENT_EVENT_ID_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_CURRENT_EVENT_STATUS_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_CONFORMANCE_LEVEL_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_MINIMUM_OFF_TIME_ATTRIBUTE_ID 0x0004 // Ver.: always -#define ZCL_MINIMUM_ON_TIME_ATTRIBUTE_ID 0x0005 // Ver.: always -#define ZCL_MINIMUM_CYCLE_PERIOD_ATTRIBUTE_ID 0x0006 // Ver.: always -#define ZCL_ENERGY_MANAGEMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_ENERGY_MANAGEMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Calendar -// Cluster specification level: se-1.2b-15-0131-02 - -// Client attributes -#define ZCL_CALENDAR_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_CALENDAR_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_AUXILIARY_SWITCH_1_LABEL_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_AUXILIARY_SWITCH_2_LABEL_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_AUXILIARY_SWITCH_3_LABEL_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_AUXILIARY_SWITCH_4_LABEL_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_AUXILIARY_SWITCH_5_LABEL_ATTRIBUTE_ID 0x0004 // Ver.: always -#define ZCL_AUXILIARY_SWITCH_6_LABEL_ATTRIBUTE_ID 0x0005 // Ver.: always -#define ZCL_AUXILIARY_SWITCH_7_LABEL_ATTRIBUTE_ID 0x0006 // Ver.: always -#define ZCL_AUXILIARY_SWITCH_8_LABEL_ATTRIBUTE_ID 0x0007 // Ver.: always -#define ZCL_CALENDAR_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_CALENDAR_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Device Management -// Cluster specification level: se-1.2b-15-0131-02 - -// Client attributes -#define ZCL_PROVIDER_ID_CLIENT_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_RECEIVED_PROVIDER_ID_CLIENT_ATTRIBUTE_ID 0x0010 // Ver.: always -#define ZCL_TOU_TARIFF_ACTIVATION_ATTRIBUTE_ID 0x0100 // Ver.: always -#define ZCL_BLOCK_TARIFF_ACTIVATED_ATTRIBUTE_ID 0x0101 // Ver.: always -#define ZCL_BLOCK_TOU_TARIFF_ACTIVATED_ATTRIBUTE_ID 0x0102 // Ver.: always -#define ZCL_SINGLE_TARIFF_RATE_ACTIVATED_ATTRIBUTE_ID 0x0103 // Ver.: always -#define ZCL_ASYNCHRONOUS_BILLING_OCCURRED_ATTRIBUTE_ID 0x0104 // Ver.: always -#define ZCL_SYNCHRONOUS_BILLING_OCCURRED_ATTRIBUTE_ID 0x0105 // Ver.: always -#define ZCL_TARIFF_NOT_SUPPORTED_ATTRIBUTE_ID 0x0106 // Ver.: always -#define ZCL_PRICE_CLUSTER_NOT_FOUND_ATTRIBUTE_ID 0x0107 // Ver.: always -#define ZCL_CURRENCY_CHANGE_PASSIVE_ACTIVATED_ATTRIBUTE_ID 0x0108 // Ver.: always -#define ZCL_CURRENCY_CHANGE_PASSIVE_UPDATED_ATTRIBUTE_ID 0x0109 // Ver.: always -#define ZCL_PRICE_MATRIX_PASSIVE_ACTIVATED_ATTRIBUTE_ID 0x010A // Ver.: always -#define ZCL_PRICE_MATRIX_PASSIVE_UPDATED_ATTRIBUTE_ID 0x010B // Ver.: always -#define ZCL_TARIFF_CHANGE_PASSIVE_ACTIVATED_ATTRIBUTE_ID 0x010C // Ver.: always -#define ZCL_TARIFF_CHANGE_PASSIVE_UPDATED_ATTRIBUTE_ID 0x010D // Ver.: always -#define ZCL_PUBLISH_PRICE_RECEIVED_ATTRIBUTE_ID 0x01B0 // Ver.: always -#define ZCL_PUBLISH_PRICE_ACTIONED_ATTRIBUTE_ID 0x01B1 // Ver.: always -#define ZCL_PUBLISH_PRICE_CANCELLED_ATTRIBUTE_ID 0x01B2 // Ver.: always -#define ZCL_PUBLISH_PRICE_REJECTED_ATTRIBUTE_ID 0x01B3 // Ver.: always -#define ZCL_PUBLISH_TARIFF_INFO_RECEIVED_ATTRIBUTE_ID 0x01B4 // Ver.: always -#define ZCL_PUBLISH_TARIFF_INFO_ACTIONED_ATTRIBUTE_ID 0x01B5 // Ver.: always -#define ZCL_PUBLISH_TARIFF_INFO_CANCELLED_ATTRIBUTE_ID 0x01B6 // Ver.: always -#define ZCL_PUBLISH_TARIFF_INFO_REJECTED_ATTRIBUTE_ID 0x01B7 // Ver.: always -#define ZCL_PUBLISH_PRICE_MATRIX_RECEIVED_ATTRIBUTE_ID 0x01B8 // Ver.: always -#define ZCL_PUBLISH_PRICE_MATRIX_ACTIONED_ATTRIBUTE_ID 0x01B9 // Ver.: always -#define ZCL_PUBLISH_PRICE_MATRIX_CANCELLED_ATTRIBUTE_ID 0x01BA // Ver.: always -#define ZCL_PUBLISH_PRICE_MATRIX_REJECTED_ATTRIBUTE_ID 0x01BB // Ver.: always -#define ZCL_PUBLISH_BLOCK_THRESHOLDS_RECEIVED_ATTRIBUTE_ID 0x01BC // Ver.: always -#define ZCL_PUBLISH_BLOCK_THRESHOLDS_ACTIONED_ATTRIBUTE_ID 0x01BD // Ver.: always -#define ZCL_PUBLISH_BLOCK_THRESHOLDS_CANCELLED_ATTRIBUTE_ID 0x01BE // Ver.: always -#define ZCL_PUBLISH_BLOCK_THRESHOLDS_REJECTED_ATTRIBUTE_ID 0x01BF // Ver.: always -#define ZCL_PUBLISH_CALORIFIC_VALUE_RECEIVED_ATTRIBUTE_ID 0x01C0 // Ver.: always -#define ZCL_PUBLISH_CALORIFIC_VALUE_ACTIONED_ATTRIBUTE_ID 0x01C1 // Ver.: always -#define ZCL_PUBLISH_CALORIFIC_VALUE_CANCELLED_ATTRIBUTE_ID 0x01C2 // Ver.: always -#define ZCL_PUBLISH_CALORIFIC_VALUE_REJECTED_ATTRIBUTE_ID 0x01C3 // Ver.: always -#define ZCL_PUBLISH_CONVERSION_FACTOR_RECEIVED_ATTRIBUTE_ID 0x01C4 // Ver.: always -#define ZCL_PUBLISH_CONVERSION_FACTOR_ACTIONED_ATTRIBUTE_ID 0x01C5 // Ver.: always -#define ZCL_PUBLISH_CONVERSION_FACTOR_CANCELLED_ATTRIBUTE_ID 0x01C6 // Ver.: always -#define ZCL_PUBLISH_CONVERSION_FACTOR_REJECTED_ATTRIBUTE_ID 0x01C7 // Ver.: always -#define ZCL_PUBLISH_CO2_VALUE_RECEIVED_ATTRIBUTE_ID 0x01C8 // Ver.: always -#define ZCL_PUBLISH_CO2_VALUE_ACTIONED_ATTRIBUTE_ID 0x01C9 // Ver.: always -#define ZCL_PUBLISH_CO2_VALUE_CANCELLED_ATTRIBUTE_ID 0x01CA // Ver.: always -#define ZCL_PUBLISH_CO2_VALUE_REJECTED_ATTRIBUTE_ID 0x01CB // Ver.: always -#define ZCL_PUBLISH_CPP_EVENT_RECEIVED_ATTRIBUTE_ID 0x01CC // Ver.: always -#define ZCL_PUBLISH_CPP_EVENT_ACTIONED_ATTRIBUTE_ID 0x01CD // Ver.: always -#define ZCL_PUBLISH_CPP_EVENT_CANCELLED_ATTRIBUTE_ID 0x01CE // Ver.: always -#define ZCL_PUBLISH_CPP_EVENT_REJECTED_ATTRIBUTE_ID 0x01CF // Ver.: always -#define ZCL_PUBLISH_TIER_LABELS_RECEIVED_ATTRIBUTE_ID 0x01D0 // Ver.: always -#define ZCL_PUBLISH_TIER_LABELS_ACTIONED_ATTRIBUTE_ID 0x01D1 // Ver.: always -#define ZCL_PUBLISH_TIER_LABELS_CANCELLED_ATTRIBUTE_ID 0x01D2 // Ver.: always -#define ZCL_PUBLISH_TIER_LABELS_REJECTED_ATTRIBUTE_ID 0x01D3 // Ver.: always -#define ZCL_PUBLISH_BILLING_PERIOD_RECEIVED_ATTRIBUTE_ID 0x01D4 // Ver.: always -#define ZCL_PUBLISH_BILLING_PERIOD_ACTIONED_ATTRIBUTE_ID 0x01D5 // Ver.: always -#define ZCL_PUBLISH_BILLING_PERIOD_CANCELLED_ATTRIBUTE_ID 0x01D6 // Ver.: always -#define ZCL_PUBLISH_BILLING_PERIOD_REJECTED_ATTRIBUTE_ID 0x01D7 // Ver.: always -#define ZCL_PUBLISH_CONSOLIDATED_BILL_RECEIVED_ATTRIBUTE_ID 0x01D8 // Ver.: always -#define ZCL_PUBLISH_CONSOLIDATED_BILL_ACTIONED_ATTRIBUTE_ID 0x01D9 // Ver.: always -#define ZCL_PUBLISH_CONSOLIDATED_BILL_CANCELLED_ATTRIBUTE_ID 0x01DA // Ver.: always -#define ZCL_PUBLISH_CONSOLIDATED_BILL_REJECTED_ATTRIBUTE_ID 0x01DB // Ver.: always -#define ZCL_PUBLISH_BLOCK_PERIOD_RECEIVED_ATTRIBUTE_ID 0x01DC // Ver.: always -#define ZCL_PUBLISH_BLOCK_PERIOD_ACTIONED_ATTRIBUTE_ID 0x01DD // Ver.: always -#define ZCL_PUBLISH_BLOCK_PERIOD_CANCELLED_ATTRIBUTE_ID 0x01DE // Ver.: always -#define ZCL_PUBLISH_BLOCK_PERIOD_REJECTED_ATTRIBUTE_ID 0x01DF // Ver.: always -#define ZCL_PUBLISH_CREDIT_PAYMENT_INFO_RECEIVED_ATTRIBUTE_ID 0x01E0 // Ver.: always -#define ZCL_PUBLISH_CREDIT_PAYMENT_INFO_ACTIONED_ATTRIBUTE_ID 0x01E1 // Ver.: always -#define ZCL_PUBLISH_CREDIT_PAYMENT_INFO_CANCELLED_ATTRIBUTE_ID 0x01E2 // Ver.: always -#define ZCL_PUBLISH_CREDIT_PAYMENT_INFO_REJECTED_ATTRIBUTE_ID 0x01E3 // Ver.: always -#define ZCL_PUBLISH_CURRENCY_CONVERSION_RECEIVED_ATTRIBUTE_ID 0x01E4 // Ver.: always -#define ZCL_PUBLISH_CURRENCY_CONVERSION_ACTIONED_ATTRIBUTE_ID 0x01E5 // Ver.: always -#define ZCL_PUBLISH_CURRENCY_CONVERSION_CANCELLED_ATTRIBUTE_ID 0x01E6 // Ver.: always -#define ZCL_PUBLISH_CURRENCY_CONVERSION_REJECTED_ATTRIBUTE_ID 0x01E7 // Ver.: always -#define ZCL_CHECK_METER_ATTRIBUTE_ID 0x0200 // Ver.: always -#define ZCL_LOW_BATTERY_ATTRIBUTE_ID 0x0201 // Ver.: always -#define ZCL_TAMPER_DETECT_ATTRIBUTE_ID 0x0202 // Ver.: always -#define ZCL_DEVICE_MANAGEMENT_SUPPLY_STATUS_ATTRIBUTE_ID 0x0203 // Ver.: always -#define ZCL_SUPPLY_QUALITY_ATTRIBUTE_ID 0x0204 // Ver.: always -#define ZCL_LEAK_DETECT_ATTRIBUTE_ID 0x0205 // Ver.: always -#define ZCL_SERVICE_DISCONNECT_ATTRIBUTE_ID 0x0206 // Ver.: always -#define ZCL_REVERSE_FLOW_GENERAL_ATTRIBUTE_ID 0x0207 // Ver.: always -#define ZCL_METER_COVER_REMOVED_ATTRIBUTE_ID 0x0208 // Ver.: always -#define ZCL_METER_COVER_CLOSED_ATTRIBUTE_ID 0x0209 // Ver.: always -#define ZCL_STRONG_MAGNETIC_FIELD_ATTRIBUTE_ID 0x020A // Ver.: always -#define ZCL_NO_STRONG_MAGNETIC_FIELD_ATTRIBUTE_ID 0x020B // Ver.: always -#define ZCL_BATTERY_FAILURE_ATTRIBUTE_ID 0x020C // Ver.: always -#define ZCL_PROGRAM_MEMORY_ERROR_ATTRIBUTE_ID 0x020D // Ver.: always -#define ZCL_RAM_ERROR_ATTRIBUTE_ID 0x020E // Ver.: always -#define ZCL_NV_MEMORY_ERROR_ATTRIBUTE_ID 0x020F // Ver.: always -#define ZCL_LOW_VOLTAGE_L1_ATTRIBUTE_ID 0x0210 // Ver.: always -#define ZCL_HIGH_VOLTAGE_L1_ATTRIBUTE_ID 0x0211 // Ver.: always -#define ZCL_LOW_VOLTAGE_L2_ATTRIBUTE_ID 0x0212 // Ver.: always -#define ZCL_HIGH_VOLTAGE_L2_ATTRIBUTE_ID 0x0213 // Ver.: always -#define ZCL_LOW_VOLTAGE_L3_ATTRIBUTE_ID 0x0214 // Ver.: always -#define ZCL_HIGH_VOLTAGE_L3_ATTRIBUTE_ID 0x0215 // Ver.: always -#define ZCL_OVER_CURRENT_L1_ATTRIBUTE_ID 0x0216 // Ver.: always -#define ZCL_OVER_CURRENT_L2_ATTRIBUTE_ID 0x0217 // Ver.: always -#define ZCL_OVER_CURRENT_L3_ATTRIBUTE_ID 0x0218 // Ver.: always -#define ZCL_FREQUENCY_TOO_LOW_L1_ATTRIBUTE_ID 0x0219 // Ver.: always -#define ZCL_FREQUENCY_TOO_HIGH_L1_ATTRIBUTE_ID 0x021A // Ver.: always -#define ZCL_FREQUENCY_TOO_LOW_L2_ATTRIBUTE_ID 0x021B // Ver.: always -#define ZCL_FREQUENCY_TOO_HIGH_L2_ATTRIBUTE_ID 0x021C // Ver.: always -#define ZCL_FREQUENCY_TOO_LOW_L3_ATTRIBUTE_ID 0x021D // Ver.: always -#define ZCL_FREQUENCY_TOO_HIGH_L3_ATTRIBUTE_ID 0x021E // Ver.: always -#define ZCL_GROUND_FAULT_ATTRIBUTE_ID 0x021F // Ver.: always -#define ZCL_ELECTRIC_TAMPER_DETECT_ATTRIBUTE_ID 0x0220 // Ver.: always -#define ZCL_INCORRECT_POLARITY_ATTRIBUTE_ID 0x0221 // Ver.: always -#define ZCL_CURRENT_NO_VOLTAGE_ATTRIBUTE_ID 0x0222 // Ver.: always -#define ZCL_UNDER_VOLTAGE_ATTRIBUTE_ID 0x0223 // Ver.: always -#define ZCL_OVER_VOLTAGE_ATTRIBUTE_ID 0x0224 // Ver.: always -#define ZCL_NORMAL_VOLTAGE_ATTRIBUTE_ID 0x0225 // Ver.: always -#define ZCL_PF_BELOW_THRESHOLD_ATTRIBUTE_ID 0x0226 // Ver.: always -#define ZCL_PF_ABOVE_THRESHOLD_ATTRIBUTE_ID 0x0227 // Ver.: always -#define ZCL_TERMINAL_COVER_REMOVED_ATTRIBUTE_ID 0x0228 // Ver.: always -#define ZCL_TERMINAL_COVER_CLOSED_ATTRIBUTE_ID 0x0229 // Ver.: always -#define ZCL_BURST_DETECT_ATTRIBUTE_ID 0x0230 // Ver.: always -#define ZCL_PRESSURE_TOO_LOW_ATTRIBUTE_ID 0x0231 // Ver.: always -#define ZCL_PRESSURE_TOO_HIGH_ATTRIBUTE_ID 0x0232 // Ver.: always -#define ZCL_FLOW_SENSOR_COMMUNICATION_ERROR_ATTRIBUTE_ID 0x0233 // Ver.: always -#define ZCL_FLOW_SENSOR_MEASUREMENT_FAULT_ATTRIBUTE_ID 0x0234 // Ver.: always -#define ZCL_FLOW_SENSOR_REVERSE_FLOW_ATTRIBUTE_ID 0x0235 // Ver.: always -#define ZCL_FLOW_SENSOR_AIR_DETECT_ATTRIBUTE_ID 0x0236 // Ver.: always -#define ZCL_PIPE_EMPTY_ATTRIBUTE_ID 0x0237 // Ver.: always -#define ZCL_INLET_TEMP_SENSOR_FAULT_ATTRIBUTE_ID 0x0250 // Ver.: always -#define ZCL_OUTLET_TEMP_SENSOR_FAULT_ATTRIBUTE_ID 0x0251 // Ver.: always -#define ZCL_REVERSE_FLOW_ATTRIBUTE_ID 0x0260 // Ver.: always -#define ZCL_TILT_TAMPER_ATTRIBUTE_ID 0x0261 // Ver.: always -#define ZCL_BATTERY_COVER_REMOVED_ATTRIBUTE_ID 0x0262 // Ver.: always -#define ZCL_BATTERY_COVER_CLOSED_ATTRIBUTE_ID 0x0263 // Ver.: always -#define ZCL_EXCESS_FLOW_ATTRIBUTE_ID 0x0264 // Ver.: always -#define ZCL_TILT_TAMPER_ENABLED_ATTRIBUTE_ID 0x0265 // Ver.: always -#define ZCL_MEASUREMENT_SYSTEM_ERROR_ATTRIBUTE_ID 0x0270 // Ver.: always -#define ZCL_WATCHDOG_ERROR_ATTRIBUTE_ID 0x0271 // Ver.: always -#define ZCL_SUPPLY_DISCONNECT_FAILURE_ATTRIBUTE_ID 0x0272 // Ver.: always -#define ZCL_SUPPLY_CONNECT_FAILURE_ATTRIBUTE_ID 0x0273 // Ver.: always -#define ZCL_MEASUREMENT_SOFTWARE_CHANGED_ATTRIBUTE_ID 0x0274 // Ver.: always -#define ZCL_DST_ENABLED_ATTRIBUTE_ID 0x0275 // Ver.: always -#define ZCL_DST_DISABLED_ATTRIBUTE_ID 0x0276 // Ver.: always -#define ZCL_CLOCK_ADJ_BACKWARD_ATTRIBUTE_ID 0x0277 // Ver.: always -#define ZCL_CLOCK_ADJ_FORWARD_ATTRIBUTE_ID 0x0278 // Ver.: always -#define ZCL_CLOCK_INVALID_ATTRIBUTE_ID 0x0279 // Ver.: always -#define ZCL_COMMUNICATION_ERROR_HAN_ATTRIBUTE_ID 0x027A // Ver.: always -#define ZCL_COMMUNICATION_OK_HAN_ATTRIBUTE_ID 0x027B // Ver.: always -#define ZCL_METER_FRAUD_ATTEMPT_ATTRIBUTE_ID 0x027C // Ver.: always -#define ZCL_POWER_LOSS_ATTRIBUTE_ID 0x027D // Ver.: always -#define ZCL_UNUSUAL_HAN_TRAFFIC_ATTRIBUTE_ID 0x027E // Ver.: always -#define ZCL_UNEXPECTED_CLOCK_CHANGE_ATTRIBUTE_ID 0x027F // Ver.: always -#define ZCL_COMMS_USING_UNAUTHENTICATED_COMPONENT_ATTRIBUTE_ID 0x0280 // Ver.: always -#define ZCL_METERING_ERROR_REG_CLEAR_ATTRIBUTE_ID 0x0281 // Ver.: always -#define ZCL_METERING_ALARM_REG_CLEAR_ATTRIBUTE_ID 0x0282 // Ver.: always -#define ZCL_UNEXPECTED_HW_RESET_ATTRIBUTE_ID 0x0283 // Ver.: always -#define ZCL_UNEXPECTED_PROGRAM_EXECUTION_ATTRIBUTE_ID 0x0284 // Ver.: always -#define ZCL_LIMIT_THRESHOLD_EXCEEDED_ATTRIBUTE_ID 0x0285 // Ver.: always -#define ZCL_LIMIT_THRESHOLD_OK_ATTRIBUTE_ID 0x0286 // Ver.: always -#define ZCL_LIMIT_THRESHOLD_CHANGED_ATTRIBUTE_ID 0x0287 // Ver.: always -#define ZCL_MAXIMUM_DEMAND_EXCEEDED_ATTRIBUTE_ID 0x0288 // Ver.: always -#define ZCL_PROFILE_CLEARED_ATTRIBUTE_ID 0x0289 // Ver.: always -#define ZCL_LOAD_PROFILE_CLEARED_ATTRIBUTE_ID 0x028A // Ver.: always -#define ZCL_BATTERY_WARN_ATTRIBUTE_ID 0x028B // Ver.: always -#define ZCL_WRONG_SIGNATURE_ATTRIBUTE_ID 0x028C // Ver.: always -#define ZCL_NO_SIGNATURE_ATTRIBUTE_ID 0x028D // Ver.: always -#define ZCL_SIGNATURE_NOT_VALID_ATTRIBUTE_ID 0x028E // Ver.: always -#define ZCL_UNAUTHORISE_ACTION_FROM_HAN_ATTRIBUTE_ID 0x028F // Ver.: always -#define ZCL_FAST_POLLING_START_ATTRIBUTE_ID 0x0290 // Ver.: always -#define ZCL_FAST_POLLING_END_ATTRIBUTE_ID 0x0291 // Ver.: always -#define ZCL_METER_REPORTING_INTERVAL_CHANGED_ATTRIBUTE_ID 0x0292 // Ver.: always -#define ZCL_DISCONNECT_TO_LOAD_LIMIT_ATTRIBUTE_ID 0x0293 // Ver.: always -#define ZCL_METER_SUPPLY_STATUS_REGISTER_CHANGED_ATTRIBUTE_ID 0x0294 // Ver.: always -#define ZCL_METER_ALARM_STATUS_REGISTER_CHANGED_ATTRIBUTE_ID 0x0295 // Ver.: always -#define ZCL_EXTENDED_METER_ALARM_STATUS_REGISTER_CHANGED_ATTRIBUTE_ID 0x0296 // Ver.: always -#define ZCL_DATA_ACCESS_VIA_LOCAL_PORT_ATTRIBUTE_ID 0x0297 // Ver.: always -#define ZCL_CONFIGURE_MIRROR_SUCCESS_ATTRIBUTE_ID 0x0298 // Ver.: always -#define ZCL_CONFIGURE_MIRROR_FAILURE_ATTRIBUTE_ID 0x0299 // Ver.: always -#define ZCL_CONFIGURE_NOTIFICATION_FLAG_SCHEME_SUCCESS_ATTRIBUTE_ID 0x029A // Ver.: always -#define ZCL_CONFIGURE_NOTIFICATION_FLAG_SCHEME_FAILURE_ATTRIBUTE_ID 0x029B // Ver.: always -#define ZCL_CONFIGURE_NOTIFICATION_FLAGS_SUCCESS_ATTRIBUTE_ID 0x029C // Ver.: always -#define ZCL_CONFIGURE_NOTIFICATION_FLAGS_FAILURE_ATTRIBUTE_ID 0x029D // Ver.: always -#define ZCL_STAY_AWAKE_REQUEST_HAN_ATTRIBUTE_ID 0x029E // Ver.: always -#define ZCL_STAY_AWAKE_REQUEST_WAN_ATTRIBUTE_ID 0x029F // Ver.: always -#define ZCL_MANUFACTURER_SPECIFIC_A_ATTRIBUTE_ID 0x02B0 // Ver.: always -#define ZCL_MANUFACTURER_SPECIFIC_B_ATTRIBUTE_ID 0x02B1 // Ver.: always -#define ZCL_MANUFACTURER_SPECIFIC_C_ATTRIBUTE_ID 0x02B2 // Ver.: always -#define ZCL_MANUFACTURER_SPECIFIC_D_ATTRIBUTE_ID 0x02B3 // Ver.: always -#define ZCL_MANUFACTURER_SPECIFIC_E_ATTRIBUTE_ID 0x02B4 // Ver.: always -#define ZCL_MANUFACTURER_SPECIFIC_F_ATTRIBUTE_ID 0x02B5 // Ver.: always -#define ZCL_MANUFACTURER_SPECIFIC_G_ATTRIBUTE_ID 0x02B6 // Ver.: always -#define ZCL_MANUFACTURER_SPECIFIC_H_ATTRIBUTE_ID 0x02B7 // Ver.: always -#define ZCL_MANUFACTURER_SPECIFIC_I_ATTRIBUTE_ID 0x02B8 // Ver.: always -#define ZCL_GET_PROFILE_COMMAND_RECEIVED_ATTRIBUTE_ID 0x02C0 // Ver.: always -#define ZCL_GET_PROFILE_COMMAND_ACTIONED_ATTRIBUTE_ID 0x02C1 // Ver.: always -#define ZCL_GET_PROFILE_COMMAND_CANCELLED_ATTRIBUTE_ID 0x02C2 // Ver.: always -#define ZCL_GET_PROFILE_COMMAND_REJECTED_ATTRIBUTE_ID 0x02C3 // Ver.: always -#define ZCL_REQUEST_MIRROR_RESPONSE_COMMAND_RECEIVED_ATTRIBUTE_ID 0x02C4 // Ver.: always -#define ZCL_REQUEST_MIRROR_RESPONSE_COMMAND_ACTIONED_ATTRIBUTE_ID 0x02C5 // Ver.: always -#define ZCL_REQUEST_MIRROR_RESPONSE_COMMAND_CANCELLED_ATTRIBUTE_ID 0x02C6 // Ver.: always -#define ZCL_REQUEST_MIRROR_RESPONSE_COMMAND_REJECTED_ATTRIBUTE_ID 0x02C7 // Ver.: always -#define ZCL_MIRROR_REMOVED_COMMAND_RECEIVED_ATTRIBUTE_ID 0x02C8 // Ver.: always -#define ZCL_MIRROR_REMOVED_COMMAND_ACTIONED_ATTRIBUTE_ID 0x02C9 // Ver.: always -#define ZCL_MIRROR_REMOVED_COMMAND_CANCELLED_ATTRIBUTE_ID 0x02CA // Ver.: always -#define ZCL_MIRROR_REMOVED_COMMAND_REJECTED_ATTRIBUTE_ID 0x02CB // Ver.: always -#define ZCL_GET_SNAPSHOT_COMMAND_RECEIVED_ATTRIBUTE_ID 0x02CC // Ver.: always -#define ZCL_GET_SNAPSHOT_COMMAND_ACTIONED_ATTRIBUTE_ID 0x02CD // Ver.: always -#define ZCL_GET_SNAPSHOT_COMMAND_CANCELLED_ATTRIBUTE_ID 0x02CE // Ver.: always -#define ZCL_GET_SNAPSHOT_COMMAND_REJECTED_ATTRIBUTE_ID 0x02CF // Ver.: always -#define ZCL_TAKE_SNAPSHOT_COMMAND_RECEIVED_ATTRIBUTE_ID 0x02D0 // Ver.: always -#define ZCL_TAKE_SNAPSHOT_COMMAND_ACTIONED_ATTRIBUTE_ID 0x02D1 // Ver.: always -#define ZCL_TAKE_SNAPSHOT_COMMAND_CANCELLED_ATTRIBUTE_ID 0x02D2 // Ver.: always -#define ZCL_TAKE_SNAPSHOT_COMMAND_REJECTED_ATTRIBUTE_ID 0x02D3 // Ver.: always -#define ZCL_MIRROR_REPORT_ATTRIBUTE_RESPONSE_COMMAND_RECEIVED_ATTRIBUTE_ID 0x02D4 // Ver.: always -#define ZCL_MIRROR_REPORT_ATTRIBUTE_RESPONSE_COMMAND_ACTIONED_ATTRIBUTE_ID 0x02D5 // Ver.: always -#define ZCL_MIRROR_REPORT_ATTRIBUTE_RESPONSE_COMMAND_CANCELLED_ATTRIBUTE_ID 0x02D6 // Ver.: always -#define ZCL_MIRROR_REPORT_ATTRIBUTE_RESPONSE_COMMAND_REJECTED_ATTRIBUTE_ID 0x02D7 // Ver.: always -#define ZCL_SCHEDULE_SNAPSHOT_COMMAND_RECEIVED_ATTRIBUTE_ID 0x02D8 // Ver.: always -#define ZCL_SCHEDULE_SNAPSHOT_COMMAND_ACTIONED_ATTRIBUTE_ID 0x02D9 // Ver.: always -#define ZCL_SCHEDULE_SNAPSHOT_COMMAND_CANCELLED_ATTRIBUTE_ID 0x02DA // Ver.: always -#define ZCL_SCHEDULE_SNAPSHOT_COMMAND_REJECTED_ATTRIBUTE_ID 0x02DB // Ver.: always -#define ZCL_START_SAMPLING_COMMAND_RECEIVED_ATTRIBUTE_ID 0x02DC // Ver.: always -#define ZCL_START_SAMPLING_COMMAND_ACTIONED_ATTRIBUTE_ID 0x02DD // Ver.: always -#define ZCL_START_SAMPLING_COMMAND_CANCELLED_ATTRIBUTE_ID 0x02DE // Ver.: always -#define ZCL_START_SAMPLING_COMMAND_REJECTED_ATTRIBUTE_ID 0x02DF // Ver.: always -#define ZCL_GET_SAMPLED_DATA_COMMAND_RECEIVED_ATTRIBUTE_ID 0x02E0 // Ver.: always -#define ZCL_GET_SAMPLED_DATA_COMMAND_ACTIONED_ATTRIBUTE_ID 0x02E1 // Ver.: always -#define ZCL_GET_SAMPLED_DATA_COMMAND_CANCELLED_ATTRIBUTE_ID 0x02E2 // Ver.: always -#define ZCL_GET_SAMPLED_DATA_COMMAND_REJECTED_ATTRIBUTE_ID 0x02E3 // Ver.: always -#define ZCL_SUPPLY_ON_ATTRIBUTE_ID 0x02E4 // Ver.: always -#define ZCL_SUPPLY_ARMED_ATTRIBUTE_ID 0x02E5 // Ver.: always -#define ZCL_SUPPLY_OFF_ATTRIBUTE_ID 0x02E6 // Ver.: always -#define ZCL_DISCONNECTED_DUE_TO_TAMPER_DETECTED_ATTRIBUTE_ID 0x02E7 // Ver.: always -#define ZCL_MANUAL_DISCONNECT_ATTRIBUTE_ID 0x02E8 // Ver.: always -#define ZCL_MANUAL_CONNECT_ATTRIBUTE_ID 0x02E9 // Ver.: always -#define ZCL_REMOTE_DISCONNECTION_ATTRIBUTE_ID 0x02EA // Ver.: always -#define ZCL_REMOTE_CONNECT_ATTRIBUTE_ID 0x02EB // Ver.: always -#define ZCL_LOCAL_DISCONNECTION_ATTRIBUTE_ID 0x02EC // Ver.: always -#define ZCL_LOCAL_CONNECT_ATTRIBUTE_ID 0x02ED // Ver.: always -#define ZCL_CHANGE_SUPPLY_RECEIVED_ATTRIBUTE_ID 0x02EE // Ver.: always -#define ZCL_CHANGE_SUPPLY_ACTIONED_ATTRIBUTE_ID 0x02EF // Ver.: always -#define ZCL_CHANGE_SUPPLY_CANCELLED_ATTRIBUTE_ID 0x02F0 // Ver.: always -#define ZCL_CHANGE_SUPPLY_REJECTED_ATTRIBUTE_ID 0x02F1 // Ver.: always -#define ZCL_LOCAL_CHANGE_SUPPLY_RECEIVED_ATTRIBUTE_ID 0x02F2 // Ver.: always -#define ZCL_LOCAL_CHANGE_SUPPLY_ACTIONED_ATTRIBUTE_ID 0x02F3 // Ver.: always -#define ZCL_LOCAL_CHANGE_SUPPLY_CANCELLED_ATTRIBUTE_ID 0x02F4 // Ver.: always -#define ZCL_LOCAL_CHANGE_SUPPLY_REJECTED_ATTRIBUTE_ID 0x02F5 // Ver.: always -#define ZCL_PUBLISH_UNCONTROLLED_FLOW_THRESHOLD_RECEIVED_ATTRIBUTE_ID 0x02F6 // Ver.: always -#define ZCL_PUBLISH_UNCONTROLLED_FLOW_THRESHOLD_ACTIONED_ATTRIBUTE_ID 0x02F7 // Ver.: always -#define ZCL_PUBLISH_UNCONTROLLED_FLOW_THRESHOLD_CANCELLED_ATTRIBUTE_ID 0x02F8 // Ver.: always -#define ZCL_PUBLISH_UNCONTROLLED_FLOW_THRESHOLD_REJECTED_ATTRIBUTE_ID 0x02F9 // Ver.: always -#define ZCL_MESSAGE_CONFIRMATION_SENT_ATTRIBUTE_ID 0x0300 // Ver.: always -#define ZCL_DISPLAY_MESSAGE_RECEIVED_ATTRIBUTE_ID 0x03C0 // Ver.: always -#define ZCL_DISPLAY_MESSAGE_ACTIONED_ATTRIBUTE_ID 0x03C1 // Ver.: always -#define ZCL_DISPLAY_MESSAGE_CANCELLED_ATTRIBUTE_ID 0x03C2 // Ver.: always -#define ZCL_DISPLAY_MESSAGE_REJECTED_ATTRIBUTE_ID 0x03C3 // Ver.: always -#define ZCL_CANCEL_MESSAGE_RECEIVED_ATTRIBUTE_ID 0x03C4 // Ver.: always -#define ZCL_CANCEL_MESSAGE_ACTIONED_ATTRIBUTE_ID 0x03C5 // Ver.: always -#define ZCL_CANCEL_MESSAGE_CANCELLED_ATTRIBUTE_ID 0x03C6 // Ver.: always -#define ZCL_CANCEL_MESSAGE_REJECTED_ATTRIBUTE_ID 0x03C7 // Ver.: always -#define ZCL_LOW_CREDIT_ATTRIBUTE_ID 0x0400 // Ver.: always -#define ZCL_NO_CREDIT_ATTRIBUTE_ID 0x0401 // Ver.: always -#define ZCL_CREDIT_EXHAUSTED_ATTRIBUTE_ID 0x0402 // Ver.: always -#define ZCL_EMERGENCY_CREDIT_ENABLED_ATTRIBUTE_ID 0x0403 // Ver.: always -#define ZCL_EMERGENCY_CREDIT_EXHAUSTED_ATTRIBUTE_ID 0x0404 // Ver.: always -#define ZCL_PREPAY_IHD_LOW_CREDIT_WARNING_ATTRIBUTE_ID 0x0405 // Ver.: always -#define ZCL_PHYSICAL_ATTACK_ON_THE_PREPAY_METER_ATTRIBUTE_ID 0x0420 // Ver.: always -#define ZCL_ELECTRONIC_ATTACK_ON_THE_PREPAY_METER_ATTRIBUTE_ID 0x0421 // Ver.: always -#define ZCL_DISCOUNT_APPLIED_ATTRIBUTE_ID 0x0422 // Ver.: always -#define ZCL_CREDIT_ADJUSTMENT_ATTRIBUTE_ID 0x0423 // Ver.: always -#define ZCL_CREDIT_ADJUST_FAIL_ATTRIBUTE_ID 0x0424 // Ver.: always -#define ZCL_DEBT_ADJUSTMENT_ATTRIBUTE_ID 0x0425 // Ver.: always -#define ZCL_DEBT_ADJUST_FAIL_ATTRIBUTE_ID 0x0426 // Ver.: always -#define ZCL_MODE_CHANGE_ATTRIBUTE_ID 0x0427 // Ver.: always -#define ZCL_TOPUP_CODE_ERROR_ATTRIBUTE_ID 0x0428 // Ver.: always -#define ZCL_TOPUP_ALREADY_USED_ATTRIBUTE_ID 0x0429 // Ver.: always -#define ZCL_TOPUP_CODE_INVALID_ATTRIBUTE_ID 0x042A // Ver.: always -#define ZCL_TOPUP_ACCEPTED_VIA_REMOTE_ATTRIBUTE_ID 0x042B // Ver.: always -#define ZCL_TOPUP_ACCEPTED_VIA_MANUAL_ENTRY_ATTRIBUTE_ID 0x042C // Ver.: always -#define ZCL_FRIENDLY_CREDIT_IN_USE_ATTRIBUTE_ID 0x042D // Ver.: always -#define ZCL_FRIENDLY_CREDIT_END_WARNING_ATTRIBUTE_ID 0x042E // Ver.: always -#define ZCL_FRIENDLY_CREDIT_PERIOD_END_ATTRIBUTE_ID 0x042F // Ver.: always -#define ZCL_PREPAY_ERROR_REG_CLEAR_ATTRIBUTE_ID 0x0430 // Ver.: always -#define ZCL_PREPAY_ALARM_REG_CLEAR_ATTRIBUTE_ID 0x0431 // Ver.: always -#define ZCL_PREPAY_CLUSTER_NOT_FOUND_ATTRIBUTE_ID 0x0432 // Ver.: always -#define ZCL_TOPUP_VALUE_TOO_LARGE_ATTRIBUTE_ID 0x0433 // Ver.: always -#define ZCL_MODE_CREDIT_2_PREPAY_ATTRIBUTE_ID 0x0441 // Ver.: always -#define ZCL_MODE_PREPAY_2_CREDIT_ATTRIBUTE_ID 0x0442 // Ver.: always -#define ZCL_MODE_DEFAULT_ATTRIBUTE_ID 0x0443 // Ver.: always -#define ZCL_SELECT_AVAILABLE_EMERGENCY_CREDIT_RECEIVED_ATTRIBUTE_ID 0x04C0 // Ver.: always -#define ZCL_SELECT_AVAILABLE_EMERGENCY_CREDIT_ACTIONED_ATTRIBUTE_ID 0x04C1 // Ver.: always -#define ZCL_SELECT_AVAILABLE_EMERGENCY_CREDIT_CANCELLED_ATTRIBUTE_ID 0x04C2 // Ver.: always -#define ZCL_SELECT_AVAILABLE_EMERGENCY_CREDIT_REJECTED_ATTRIBUTE_ID 0x04C3 // Ver.: always -#define ZCL_CHANGE_DEBT_RECEIVED_ATTRIBUTE_ID 0x04C4 // Ver.: always -#define ZCL_CHANGE_DEBT_ACTIONED_ATTRIBUTE_ID 0x04C5 // Ver.: always -#define ZCL_CHANGE_DEBT_CANCELLED_ATTRIBUTE_ID 0x04C6 // Ver.: always -#define ZCL_CHANGE_DEBT_REJECTED_ATTRIBUTE_ID 0x04C7 // Ver.: always -#define ZCL_EMERGENCY_CREDIT_SETUP_RECEIVED_ATTRIBUTE_ID 0x04C8 // Ver.: always -#define ZCL_EMERGENCY_CREDIT_SETUP_ACTIONED_ATTRIBUTE_ID 0x04C9 // Ver.: always -#define ZCL_EMERGENCY_CREDIT_SETUP_CANCELLED_ATTRIBUTE_ID 0x04CA // Ver.: always -#define ZCL_EMERGENCY_CREDIT_SETUP_REJECTED_ATTRIBUTE_ID 0x04CB // Ver.: always -#define ZCL_CONSUMER_TOPUP_RECEIVED_ATTRIBUTE_ID 0x04CC // Ver.: always -#define ZCL_CONSUMER_TOPUP_ACTIONED_ATTRIBUTE_ID 0x04CD // Ver.: always -#define ZCL_CONSUMER_TOPUP_CANCELLED_ATTRIBUTE_ID 0x04CE // Ver.: always -#define ZCL_CONSUMER_TOPUP_REJECTED_ATTRIBUTE_ID 0x04CF // Ver.: always -#define ZCL_CREDIT_ADJUSTMENT_RECEIVED_ATTRIBUTE_ID 0x04D0 // Ver.: always -#define ZCL_CREDIT_ADJUSTMENT_ACTIONED_ATTRIBUTE_ID 0x04D1 // Ver.: always -#define ZCL_CREDIT_ADJUSTMENT_CANCELLED_ATTRIBUTE_ID 0x04D2 // Ver.: always -#define ZCL_CREDIT_ADJUSTMENT_REJECTED_ATTRIBUTE_ID 0x04D3 // Ver.: always -#define ZCL_CHANGE_PAYMENT_MODE_RECEIVED_ATTRIBUTE_ID 0x04D4 // Ver.: always -#define ZCL_CHANGE_PAYMENT_MODE_ACTIONED_ATTRIBUTE_ID 0x04D5 // Ver.: always -#define ZCL_CHANGE_PAYMENT_MODE_CANCELLED_ATTRIBUTE_ID 0x04D6 // Ver.: always -#define ZCL_CHANGE_PAYMENT_MODE_REJECTED_ATTRIBUTE_ID 0x04D7 // Ver.: always -#define ZCL_GET_PREPAY_SNAPSHOT_RECEIVED_ATTRIBUTE_ID 0x04D8 // Ver.: always -#define ZCL_GET_PREPAY_SNAPSHOT_ACTIONED_ATTRIBUTE_ID 0x04D9 // Ver.: always -#define ZCL_GET_PREPAY_SNAPSHOT_CANCELLED_ATTRIBUTE_ID 0x04DA // Ver.: always -#define ZCL_GET_PREPAY_SNAPSHOT_REJECTED_ATTRIBUTE_ID 0x04DB // Ver.: always -#define ZCL_GET_TOPUP_LOG_RECEIVED_ATTRIBUTE_ID 0x04DC // Ver.: always -#define ZCL_GET_TOPUP_LOG_ACTIONED_ATTRIBUTE_ID 0x04DD // Ver.: always -#define ZCL_GET_TOPUP_LOG_CANCELLED_ATTRIBUTE_ID 0x04DE // Ver.: always -#define ZCL_GET_TOPUP_LOG_REJECTED_ATTRIBUTE_ID 0x04DF // Ver.: always -#define ZCL_SET_LOW_CREDIT_WARNING_LEVEL_RECEIVED_ATTRIBUTE_ID 0x04E0 // Ver.: always -#define ZCL_SET_LOW_CREDIT_WARNING_LEVEL_ACTIONED_ATTRIBUTE_ID 0x04E1 // Ver.: always -#define ZCL_SET_LOW_CREDIT_WARNING_LEVEL_CANCELLED_ATTRIBUTE_ID 0x04E2 // Ver.: always -#define ZCL_SET_LOW_CREDIT_WARNING_LEVEL_REJECTED_ATTRIBUTE_ID 0x04E3 // Ver.: always -#define ZCL_GET_DEBT_REPAY_LOG_RECEIVED_ATTRIBUTE_ID 0x04E4 // Ver.: always -#define ZCL_GET_DEBT_REPAY_LOG_ACTIONED_ATTRIBUTE_ID 0x04E5 // Ver.: always -#define ZCL_GET_DEBT_REPAY_LOG_CANCELLED_ATTRIBUTE_ID 0x04E6 // Ver.: always -#define ZCL_GET_DEBT_REPAY_LOG_REJECTED_ATTRIBUTE_ID 0x04E7 // Ver.: always -#define ZCL_SET_MAXIMUM_CREDIT_LIMIT_RECEIVED_ATTRIBUTE_ID 0x04E8 // Ver.: always -#define ZCL_SET_MAXIMUM_CREDIT_LIMIT_ACTIONED_ATTRIBUTE_ID 0x04E9 // Ver.: always -#define ZCL_SET_MAXIMUM_CREDIT_LIMIT_CANCELLED_ATTRIBUTE_ID 0x04EA // Ver.: always -#define ZCL_SET_MAXIMUM_CREDIT_LIMIT_REJECTED_ATTRIBUTE_ID 0x04EB // Ver.: always -#define ZCL_SET_OVERALL_DEBT_CAP_RECEIVED_ATTRIBUTE_ID 0x04EC // Ver.: always -#define ZCL_SET_OVERALL_DEBT_CAP_ACTIONED_ATTRIBUTE_ID 0x04ED // Ver.: always -#define ZCL_SET_OVERALL_DEBT_CAP_CANCELLED_ATTRIBUTE_ID 0x04EE // Ver.: always -#define ZCL_SET_OVERALL_DEBT_CAP_REJECTED_ATTRIBUTE_ID 0x04EF // Ver.: always -#define ZCL_CALENDAR_CLUSTER_NOT_FOUND_ATTRIBUTE_ID 0x0500 // Ver.: always -#define ZCL_CALENDAR_CHANGE_PASSIVE_ACTIVATED_ATTRIBUTE_ID 0x0501 // Ver.: always -#define ZCL_CALENDAR_CHANGE_PASSIVE_UPDATED_ATTRIBUTE_ID 0x0502 // Ver.: always -#define ZCL_PUBLISH_CALENDAR_RECEIVED_ATTRIBUTE_ID 0x05C0 // Ver.: always -#define ZCL_PUBLISH_CALENDAR_ACTIONED_ATTRIBUTE_ID 0x05C1 // Ver.: always -#define ZCL_PUBLISH_CALENDAR_CANCELLED_ATTRIBUTE_ID 0x05C2 // Ver.: always -#define ZCL_PUBLISH_CALENDAR_REJECTED_ATTRIBUTE_ID 0x05C3 // Ver.: always -#define ZCL_PUBLISH_DAY_PROFILE_RECEIVED_ATTRIBUTE_ID 0x05C4 // Ver.: always -#define ZCL_PUBLISH_DAY_PROFILE_ACTIONED_ATTRIBUTE_ID 0x05C5 // Ver.: always -#define ZCL_PUBLISH_DAY_PROFILE_CANCELLED_ATTRIBUTE_ID 0x05C6 // Ver.: always -#define ZCL_PUBLISH_DAY_PROFILE_REJECTED_ATTRIBUTE_ID 0x05C7 // Ver.: always -#define ZCL_PUBLISH_WEEK_PROFILE_RECEIVED_ATTRIBUTE_ID 0x05C8 // Ver.: always -#define ZCL_PUBLISH_WEEK_PROFILE_ACTIONED_ATTRIBUTE_ID 0x05C9 // Ver.: always -#define ZCL_PUBLISH_WEEK_PROFILE_CANCELLED_ATTRIBUTE_ID 0x05CA // Ver.: always -#define ZCL_PUBLISH_WEEK_PROFILE_REJECTED_ATTRIBUTE_ID 0x05CB // Ver.: always -#define ZCL_PUBLISH_SEASONS_RECEIVED_ATTRIBUTE_ID 0x05CC // Ver.: always -#define ZCL_PUBLISH_SEASONS_ACTIONED_ATTRIBUTE_ID 0x05CD // Ver.: always -#define ZCL_PUBLISH_SEASONS_CANCELLED_ATTRIBUTE_ID 0x05CE // Ver.: always -#define ZCL_PUBLISH_SEASONS_REJECTED_ATTRIBUTE_ID 0x05CF // Ver.: always -#define ZCL_PUBLISH_SPECIAL_DAYS_RECEIVED_ATTRIBUTE_ID 0x05D0 // Ver.: always -#define ZCL_PUBLISH_SPECIAL_DAYS_ACTIONED_ATTRIBUTE_ID 0x05D1 // Ver.: always -#define ZCL_PUBLISH_SPECIAL_DAYS_CANCELLED_ATTRIBUTE_ID 0x05D2 // Ver.: always -#define ZCL_PUBLISH_SPECIAL_DAYS_REJECTED_ATTRIBUTE_ID 0x05D3 // Ver.: always -#define ZCL_PASSWORD_1_CHANGE_ATTRIBUTE_ID 0x0600 // Ver.: always -#define ZCL_PASSWORD_2_CHANGE_ATTRIBUTE_ID 0x0601 // Ver.: always -#define ZCL_PASSWORD_3_CHANGE_ATTRIBUTE_ID 0x0602 // Ver.: always -#define ZCL_PASSWORD_4_CHANGE_ATTRIBUTE_ID 0x0603 // Ver.: always -#define ZCL_EVENT_LOG_CLEARED_ATTRIBUTE_ID 0x0604 // Ver.: always -#define ZCL_ZIGBEE_APS_TIMEOUT_ATTRIBUTE_ID 0x0610 // Ver.: always -#define ZCL_ZIGBEE_IEEE_TRANSMISSION_FAILURE_OVER_THRESHOLD_ATTRIBUTE_ID 0x0611 // Ver.: always -#define ZCL_ZIGBEE_IEEE_FRAME_CHECK_SEQUENCE_THRESHOLD_ATTRIBUTE_ID 0x0612 // Ver.: always -#define ZCL_ERROR_CERTIFICATE_ATTRIBUTE_ID 0x0613 // Ver.: always -#define ZCL_ERROR_SIGNATURE_ATTRIBUTE_ID 0x0614 // Ver.: always -#define ZCL_ERROR_PROGRAM_STORAGE_ATTRIBUTE_ID 0x0615 // Ver.: always -#define ZCL_PUBLISH_COT_RECEIVED_ATTRIBUTE_ID 0x06C0 // Ver.: always -#define ZCL_PUBLISH_COT_ACTIONED_ATTRIBUTE_ID 0x06C1 // Ver.: always -#define ZCL_PUBLISH_COT_CANCELLED_ATTRIBUTE_ID 0x06C2 // Ver.: always -#define ZCL_PUBLISH_COT_REJECTED_ATTRIBUTE_ID 0x06C3 // Ver.: always -#define ZCL_PUBLISH_COS_RECEIVED_ATTRIBUTE_ID 0x06C4 // Ver.: always -#define ZCL_PUBLISH_COS_ACTIONED_ATTRIBUTE_ID 0x06C5 // Ver.: always -#define ZCL_PUBLISH_COS_CANCELLED_ATTRIBUTE_ID 0x06C6 // Ver.: always -#define ZCL_PUBLISH_COS_REJECTED_ATTRIBUTE_ID 0x06C7 // Ver.: always -#define ZCL_CHANGE_PASSWORD_RECEIVED_ATTRIBUTE_ID 0x06C8 // Ver.: always -#define ZCL_CHANGE_PASSWORD_ACTIONED_ATTRIBUTE_ID 0x06C9 // Ver.: always -#define ZCL_CHANGE_PASSWORD_CANCELLED_ATTRIBUTE_ID 0x06CA // Ver.: always -#define ZCL_CHANGE_PASSWORD_REJECTED_ATTRIBUTE_ID 0x06CB // Ver.: always -#define ZCL_SET_EVENT_CONFIGURATION_RECEIVED_ATTRIBUTE_ID 0x06CC // Ver.: always -#define ZCL_SET_EVENT_CONFIGURATION_ACTIONED_ATTRIBUTE_ID 0x06CD // Ver.: always -#define ZCL_SET_EVENT_CONFIGURATION_CANCELLED_ATTRIBUTE_ID 0x06CE // Ver.: always -#define ZCL_SET_EVENT_CONFIGURATION_REJECTED_ATTRIBUTE_ID 0x06CF // Ver.: always -#define ZCL_UPDATE_SITE_ID_RECEIVED_ATTRIBUTE_ID 0x06D0 // Ver.: always -#define ZCL_UPDATE_SITE_ID_ACTIONED_ATTRIBUTE_ID 0x06D1 // Ver.: always -#define ZCL_UPDATE_SITE_ID_CANCELLED_ATTRIBUTE_ID 0x06D2 // Ver.: always -#define ZCL_UPDATE_SITE_ID_REJECTED_ATTRIBUTE_ID 0x06D3 // Ver.: always -#define ZCL_UPDATE_CIN_RECEIVED_ATTRIBUTE_ID 0x06D4 // Ver.: always -#define ZCL_UPDATE_CIN_ACTIONED_ATTRIBUTE_ID 0x06D5 // Ver.: always -#define ZCL_UPDATE_CIN_CANCELLED_ATTRIBUTE_ID 0x06D6 // Ver.: always -#define ZCL_UPDATE_CIN_REJECTED_ATTRIBUTE_ID 0x06D7 // Ver.: always -#define ZCL_TUNNELING_CLUSTER_NOT_FOUND_ATTRIBUTE_ID 0x0700 // Ver.: always -#define ZCL_UNSUPPORTED_PROTOCOL_ATTRIBUTE_ID 0x0701 // Ver.: always -#define ZCL_INCORRECT_PROTOCOL_ATTRIBUTE_ID 0x0702 // Ver.: always -#define ZCL_REQUEST_TUNNEL_COMMAND_RECEIVED_ATTRIBUTE_ID 0x07C0 // Ver.: always -#define ZCL_REQUEST_TUNNEL_COMMAND_REJECTED_ATTRIBUTE_ID 0x07C1 // Ver.: always -#define ZCL_REQUEST_TUNNEL_COMMAND_GENERATED_ATTRIBUTE_ID 0x07C2 // Ver.: always -#define ZCL_CLOSE_TUNNEL_COMMAND_RECEIVED_ATTRIBUTE_ID 0x07C3 // Ver.: always -#define ZCL_CLOSE_TUNNEL_COMMAND_REJECTED_ATTRIBUTE_ID 0x07C4 // Ver.: always -#define ZCL_CLOSE_TUNNEL_COMMAND_GENERATED_ATTRIBUTE_ID 0x07C5 // Ver.: always -#define ZCL_TRANSFER_DATA_COMMAND_RECEIVED_ATTRIBUTE_ID 0x07C6 // Ver.: always -#define ZCL_TRANSFER_DATA_COMMAND_REJECTED_ATTRIBUTE_ID 0x07C7 // Ver.: always -#define ZCL_TRANSFER_DATA_COMMAND_GENERATED_ATTRIBUTE_ID 0x07C8 // Ver.: always -#define ZCL_TRANSFER_DATA_ERROR_COMMAND_RECEIVED_ATTRIBUTE_ID 0x07C9 // Ver.: always -#define ZCL_TRANSFER_DATA_ERROR_COMMAND_REJECTED_ATTRIBUTE_ID 0x07CA // Ver.: always -#define ZCL_TRANSFER_DATA_ERROR_COMMAND_GENERATED_ATTRIBUTE_ID 0x07CB // Ver.: always -#define ZCL_ACK_TRANSFER_DATA_COMMAND_RECEIVED_ATTRIBUTE_ID 0x07CC // Ver.: always -#define ZCL_ACK_TRANSFER_DATA_COMMAND_REJECTED_ATTRIBUTE_ID 0x07CD // Ver.: always -#define ZCL_ACK_TRANSFER_DATA_COMMAND_GENERATED_ATTRIBUTE_ID 0x07CE // Ver.: always -#define ZCL_READY_DATA_COMMAND_RECEIVED_ATTRIBUTE_ID 0x07CF // Ver.: always -#define ZCL_READY_DATA_COMMAND_REJECTED_ATTRIBUTE_ID 0x07D0 // Ver.: always -#define ZCL_READY_DATA_COMMAND_GENERATED_ATTRIBUTE_ID 0x07D1 // Ver.: always -#define ZCL_GET_SUPPORTED_TUNNEL_PROTOCOLS_COMMAND_RECEIVED_ATTRIBUTE_ID 0x07D2 // Ver.: always -#define ZCL_GET_SUPPORTED_TUNNEL_PROTOCOLS_COMMAND_REJECTED_ATTRIBUTE_ID 0x07D3 // Ver.: always -#define ZCL_GET_SUPPORTED_TUNNEL_PROTOCOLS_COMMAND_GENERATED_ATTRIBUTE_ID 0x07D4 // Ver.: always -#define ZCL_FIRMWARE_READY_FOR_ACTIVATION_ATTRIBUTE_ID 0x0800 // Ver.: always -#define ZCL_FIRMWARE_ACTIVATED_ATTRIBUTE_ID 0x0801 // Ver.: always -#define ZCL_FIRMWARE_ACTIVATION_FAILURE_ATTRIBUTE_ID 0x0802 // Ver.: always -#define ZCL_PATCH_READY_FOR_ACTIVATION_ATTRIBUTE_ID 0x0803 // Ver.: always -#define ZCL_PATCH_ACTIVATED_ATTRIBUTE_ID 0x0804 // Ver.: always -#define ZCL_PATCH_FAILURE_ATTRIBUTE_ID 0x0805 // Ver.: always -#define ZCL_IMAGE_NOTIFY_COMMAND_RECEIVED_ATTRIBUTE_ID 0x08C0 // Ver.: always -#define ZCL_IMAGE_NOTIFY_COMMAND_REJECTED_ATTRIBUTE_ID 0x08C1 // Ver.: always -#define ZCL_QUERY_NEXT_IMAGE_REQUEST_GENERATED_ATTRIBUTE_ID 0x08C2 // Ver.: always -#define ZCL_QUERY_NEXT_IMAGE_RESPONSE_RECEIVED_ATTRIBUTE_ID 0x08C3 // Ver.: always -#define ZCL_QUERY_NEXT_IMAGE_RESPONSE_REJECTED_ATTRIBUTE_ID 0x08C4 // Ver.: always -#define ZCL_IMAGE_BLOCK_REQUEST_GENERATED_ATTRIBUTE_ID 0x08C5 // Ver.: always -#define ZCL_IMAGE_PAGE_REQUEST_GENERATED_ATTRIBUTE_ID 0x08C6 // Ver.: always -#define ZCL_IMAGE_BLOCK_RESPONSE_RECEIVED_ATTRIBUTE_ID 0x08C7 // Ver.: always -#define ZCL_IMAGE_BLOCK_RESPONSE_REJECTED_ATTRIBUTE_ID 0x08C8 // Ver.: always -#define ZCL_UPGRADE_END_REQUEST_GENERATED_ATTRIBUTE_ID 0x08C9 // Ver.: always -#define ZCL_UPGRADE_END_RESPONSE_RECEIVED_ATTRIBUTE_ID 0x08CA // Ver.: always -#define ZCL_UPGRADE_END_RESPONSE_REJECTED_ATTRIBUTE_ID 0x08CB // Ver.: always -#define ZCL_QUERY_SPECIFIC_FILE_REQUEST_GENERATED_ATTRIBUTE_ID 0x08CC // Ver.: always -#define ZCL_QUERY_SPECIFIC_FILE_RESPONSE_RECEIVED_ATTRIBUTE_ID 0x08CD // Ver.: always -#define ZCL_QUERY_SPECIFIC_FILE_RESPONSE_REJECTED_ATTRIBUTE_ID 0x08CE // Ver.: always -#define ZCL_DEVICE_MANAGEMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_DEVICE_MANAGEMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_PROVIDER_ID_SERVER_ATTRIBUTE_ID 0x0100 // Ver.: always -#define ZCL_PROVIDER_NAME_ATTRIBUTE_ID 0x0101 // Ver.: always -#define ZCL_PROVIDER_CONTACT_DETAILS_ATTRIBUTE_ID 0x0102 // Ver.: always -#define ZCL_PROPOSED_PROVIDER_ID_ATTRIBUTE_ID 0x0110 // Ver.: always -#define ZCL_PROPOSED_PROVIDER_NAME_ATTRIBUTE_ID 0x0111 // Ver.: always -#define ZCL_PROPOSED_PROVIDER_CHANGE_DATE_TIME_ATTRIBUTE_ID 0x0112 // Ver.: always -#define ZCL_PROPOSED_PROVIDER_CHANGE_CONTROL_ATTRIBUTE_ID 0x0113 // Ver.: always -#define ZCL_RECEIVED_PROVIDER_ID_SERVER_ATTRIBUTE_ID 0x0120 // Ver.: always -#define ZCL_RECEIVED_PROVIDER_NAME_ATTRIBUTE_ID 0x0121 // Ver.: always -#define ZCL_RECEIVED_PROVIDER_CONTACT_DETAILS_ATTRIBUTE_ID 0x0122 // Ver.: always -#define ZCL_RECEIVED_PROPOSED_PROVIDER_ID_ATTRIBUTE_ID 0x0130 // Ver.: always -#define ZCL_RECEIVED_PROPOSED_PROVIDER_NAME_ATTRIBUTE_ID 0x0131 // Ver.: always -#define ZCL_RECEIVED_PROPOSED_PROVIDER_CHANGE_DATE_TIME_ATTRIBUTE_ID 0x0132 // Ver.: always -#define ZCL_RECEIVED_PROPOSED_PROVIDER_CHANGE_CONTROL_ATTRIBUTE_ID 0x0133 // Ver.: always -#define ZCL_CHANGE_OF_TENANCY_UPDATE_DATE_TIME_ATTRIBUTE_ID 0x0200 // Ver.: always -#define ZCL_PROPOSED_TENANCY_CHANGE_CONTROL_ATTRIBUTE_ID 0x0201 // Ver.: always -#define ZCL_WAN_STATUS_ATTRIBUTE_ID 0x0300 // Ver.: always -#define ZCL_LOW_MEDIUM_THRESHOLD_ATTRIBUTE_ID 0x0400 // Ver.: always -#define ZCL_MEDIUM_HIGH_THRESHOLD_ATTRIBUTE_ID 0x0401 // Ver.: always -#define ZCL_DEVICE_MANAGEMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_DEVICE_MANAGEMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Events -// Cluster specification level: se-1.2b-15-0131-02 - -// Client attributes -#define ZCL_EVENTS_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_EVENTS_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_EVENTS_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_EVENTS_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: MDU Pairing -// Cluster specification level: se-1.2b-15-0131-02 - -// Client attributes -#define ZCL_MDU_PAIRING_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_MDU_PAIRING_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_MDU_PAIRING_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_MDU_PAIRING_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Sub-GHz -// Cluster specification level: se-1.2b-15-0131-02 - -// Client attributes -#define ZCL_SUB_GHZ_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_SUB_GHZ_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_SUB_GHZ_CLUSTER_CHANNEL_CHANGE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_SUB_GHZ_CLUSTER_PAGE_28_CHANNEL_MASK_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_SUB_GHZ_CLUSTER_PAGE_29_CHANNEL_MASK_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_SUB_GHZ_CLUSTER_PAGE_30_CHANNEL_MASK_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_SUB_GHZ_CLUSTER_PAGE_31_CHANNEL_MASK_ATTRIBUTE_ID 0x0004 // Ver.: always -#define ZCL_SUB_GHZ_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_SUB_GHZ_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Key Establishment -// Cluster specification level: zcl-7.0-07-5123-07 - -// Client attributes -#define ZCL_KEY_ESTABLISHMENT_SUITE_CLIENT_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_KEY_ESTABLISHMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_KEY_ESTABLISHMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_KEY_ESTABLISHMENT_SUITE_SERVER_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_KEY_ESTABLISHMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_KEY_ESTABLISHMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Information -// Cluster specification level: ta-1.0-07-5307-07 - -// Client attributes -#define ZCL_INFORMATION_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_INFORMATION_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_NODE_DESCRIPTION_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_DELIVERY_ENABLE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_PUSH_INFORMATION_TIMER_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_ENABLE_SECURE_CONFIGURATION_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_NUMBER_OF_CONTENTS_ATTRIBUTE_ID 0x0010 // Ver.: always -#define ZCL_CONTENT_ROOT_ID_ATTRIBUTE_ID 0x0011 // Ver.: always -#define ZCL_INFORMATION_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_INFORMATION_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Data Sharing -// Cluster specification level: ta-1.0-07-5307-07 - -// Client attributes -#define ZCL_DATA_SHARING_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_DATA_SHARING_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_DEVICE_NAME_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_DEVICE_DESCRIPTION_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_DATA_SHARING_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_DATA_SHARING_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Gaming -// Cluster specification level: ta-1.0-07-5307-07 - -// Client attributes -#define ZCL_GAMING_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_GAMING_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_PLAYER_NAME_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_NB_OF_GAMES_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_LIST_OF_GAMES_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_ANNOUNCEMENT_INTERVAL_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_GAME_ID_ATTRIBUTE_ID 0x0010 // Ver.: always -#define ZCL_NAME_OF_GAME_ATTRIBUTE_ID 0x0011 // Ver.: always -#define ZCL_GAME_MASTER_ATTRIBUTE_ID 0x0012 // Ver.: always -#define ZCL_GAMING_STATUS_ATTRIBUTE_ID 0x0013 // Ver.: always -#define ZCL_CURRENT_NB_OF_PLAYERS_ATTRIBUTE_ID 0x0014 // Ver.: always -#define ZCL_LIST_OF_CURRENT_PLAYERS_ATTRIBUTE_ID 0x0015 // Ver.: always -#define ZCL_MAX_NB_OF_PLAYERS_ATTRIBUTE_ID 0x0016 // Ver.: always -#define ZCL_MIN_NB_OF_PLAYERS_ATTRIBUTE_ID 0x0017 // Ver.: always -#define ZCL_CURRENT_GAME_LEVEL_ATTRIBUTE_ID 0x0018 // Ver.: always -#define ZCL_SCORE_OF_THIS_PLAYER_ATTRIBUTE_ID 0x0019 // Ver.: always -#define ZCL_TIMER1_ATTRIBUTE_ID 0x001A // Ver.: always -#define ZCL_TIMER2_ATTRIBUTE_ID 0x001B // Ver.: always -#define ZCL_TIMER3_ATTRIBUTE_ID 0x001C // Ver.: always -#define ZCL_COUNTER1_ATTRIBUTE_ID 0x001D // Ver.: always -#define ZCL_COUNTER2_ATTRIBUTE_ID 0x001E // Ver.: always -#define ZCL_DOWNLOADABLE_ATTRIBUTE_ID 0x001F // Ver.: always -#define ZCL_GAMING_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_GAMING_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Data Rate Control -// Cluster specification level: ta-1.0-07-5307-07 - -// Client attributes -#define ZCL_DATA_RATE_CONTROL_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_DATA_RATE_CONTROL_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_AVERAGE_LATENCY_REQUIREMENT_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_MAX_LATENCY_REQUIREMENT_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_BANDWIDTH_REQUIREMENT_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_DATA_RATE_CONTROL_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_DATA_RATE_CONTROL_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Voice over ZigBee -// Cluster specification level: ta-1.0-07-5307-07 - -// Client attributes -#define ZCL_VOICE_OVER_ZIGBEE_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_VOICE_OVER_ZIGBEE_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_CODEC_TYPE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_SAMPLING_FREQUENCY_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_CODEC_RATE_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_ESTABLISHMENT_TIMEOUT_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_CODEC_TYPE_SUB1_ATTRIBUTE_ID 0x0004 // Ver.: always -#define ZCL_CODEC_TYPE_SUB2_ATTRIBUTE_ID 0x0005 // Ver.: always -#define ZCL_CODEC_TYPE_SUB3_ATTRIBUTE_ID 0x0006 // Ver.: always -#define ZCL_COMPRESSION_TYPE_ATTRIBUTE_ID 0x0007 // Ver.: always -#define ZCL_COMPRESSION_RATE_ATTRIBUTE_ID 0x0008 // Ver.: always -#define ZCL_OPTION_FLAGS_ATTRIBUTE_ID 0x0009 // Ver.: always -#define ZCL_THRESHOLD_ATTRIBUTE_ID 0x000A // Ver.: always -#define ZCL_VOICE_OVER_ZIGBEE_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_VOICE_OVER_ZIGBEE_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Chatting -// Cluster specification level: ta-1.0-07-5307-07 - -// Client attributes -#define ZCL_CHATTING_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_CHATTING_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_U_ID_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_NICKNAME_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_C_ID_ATTRIBUTE_ID 0x0010 // Ver.: always -#define ZCL_NAME_ATTRIBUTE_ID 0x0011 // Ver.: always -#define ZCL_ENABLE_ADD_CHAT_ATTRIBUTE_ID 0x0020 // Ver.: always -#define ZCL_CHATTING_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_CHATTING_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Payment -// Cluster specification level: ta-1.0-07-5307-07 - -// Client attributes -#define ZCL_PAYMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_PAYMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_PAYMENT_USER_ID_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_USER_TYPE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_PAYMENT_SERVICE_ID_ATTRIBUTE_ID 0x0010 // Ver.: always -#define ZCL_PAYMENT_SERVICE_PROVIDER_ID_ATTRIBUTE_ID 0x0011 // Ver.: always -#define ZCL_TOTEM_ID_ATTRIBUTE_ID 0x0012 // Ver.: always -#define ZCL_CURRENCY_ATTRIBUTE_ID 0x0020 // Ver.: always -#define ZCL_PRICE_TRAILING_DIGIT_ATTRIBUTE_ID 0x0021 // Ver.: always -#define ZCL_PRICE_ATTRIBUTE_ID 0x0022 // Ver.: always -#define ZCL_GOOD_ID_ATTRIBUTE_ID 0x0030 // Ver.: always -#define ZCL_SERIAL_NUMBER_ATTRIBUTE_ID 0x0031 // Ver.: always -#define ZCL_PAYMENT_TIMESTAMP_ATTRIBUTE_ID 0x0032 // Ver.: always -#define ZCL_TRANS_ID_ATTRIBUTE_ID 0x0033 // Ver.: always -#define ZCL_TRANS_STATUS_ATTRIBUTE_ID 0x0034 // Ver.: always -#define ZCL_PAYMENT_STATUS_ATTRIBUTE_ID 0x0035 // Ver.: always -#define ZCL_PAYMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_PAYMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Billing -// Cluster specification level: ta-1.0-07-5307-07 - -// Client attributes -#define ZCL_BILLING_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_BILLING_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_USER_ID_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_SERVICE_ID_ATTRIBUTE_ID 0x0010 // Ver.: always -#define ZCL_SERVICE_PROVIDER_ID_ATTRIBUTE_ID 0x0011 // Ver.: always -#define ZCL_SESSION_INTERVAL_ATTRIBUTE_ID 0x0012 // Ver.: always -#define ZCL_TIMESTAMP_ATTRIBUTE_ID 0x0020 // Ver.: always -#define ZCL_DURATION_ATTRIBUTE_ID 0x0021 // Ver.: always -#define ZCL_BILLING_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_BILLING_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Appliance Identification -// Cluster specification level: UNKNOWN - -// Client attributes -#define ZCL_APPLIANCE_IDENTIFICATION_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_APPLIANCE_IDENTIFICATION_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_BASIC_IDENTIFICATION_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_APPLIANCE_COMPANY_NAME_ATTRIBUTE_ID 0x0010 // Ver.: always -#define ZCL_COMPANY_ID_ATTRIBUTE_ID 0x0011 // Ver.: always -#define ZCL_BRAND_NAME_ATTRIBUTE_ID 0x0012 // Ver.: always -#define ZCL_BRAND_ID_ATTRIBUTE_ID 0x0013 // Ver.: always -#define ZCL_APPLIANCE_MODEL_ATTRIBUTE_ID 0x0014 // Ver.: always -#define ZCL_APPLIANCE_PART_NUMBER_ATTRIBUTE_ID 0x0015 // Ver.: always -#define ZCL_APPLIANCE_PRODUCT_REVISION_ATTRIBUTE_ID 0x0016 // Ver.: always -#define ZCL_APPLIANCE_SOFTWARE_REVISION_ATTRIBUTE_ID 0x0017 // Ver.: always -#define ZCL_PRODUCT_TYPE_NAME_ATTRIBUTE_ID 0x0018 // Ver.: always -#define ZCL_PRODUCT_TYPE_ID_ATTRIBUTE_ID 0x0019 // Ver.: always -#define ZCL_CECED_SPECIFICATION_VERSION_ATTRIBUTE_ID 0x001A // Ver.: always -#define ZCL_APPLIANCE_IDENTIFICATION_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_APPLIANCE_IDENTIFICATION_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Meter Identification -// Cluster specification level: UNKNOWN - -// Client attributes -#define ZCL_METER_IDENTIFICATION_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_METER_IDENTIFICATION_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_METER_COMPANY_NAME_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_METER_TYPE_ID_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_DATA_QUALITY_ID_ATTRIBUTE_ID 0x0004 // Ver.: always -#define ZCL_CUSTOMER_NAME_ATTRIBUTE_ID 0x0005 // Ver.: always -#define ZCL_METER_MODEL_ATTRIBUTE_ID 0x0006 // Ver.: always -#define ZCL_METER_PART_NUMBER_ATTRIBUTE_ID 0x0007 // Ver.: always -#define ZCL_METER_PRODUCT_REVISION_ATTRIBUTE_ID 0x0008 // Ver.: always -#define ZCL_METER_SOFTWARE_REVISION_ATTRIBUTE_ID 0x000A // Ver.: always -#define ZCL_UTILITY_NAME_ATTRIBUTE_ID 0x000B // Ver.: always -#define ZCL_POD_ATTRIBUTE_ID 0x000C // Ver.: always -#define ZCL_AVAILABLE_POWER_ATTRIBUTE_ID 0x000D // Ver.: always -#define ZCL_POWER_THRESHOLD_ATTRIBUTE_ID 0x000E // Ver.: always -#define ZCL_METER_IDENTIFICATION_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_METER_IDENTIFICATION_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Appliance Events and Alert -// Cluster specification level: UNKNOWN - -// Client attributes -#define ZCL_APPLIANCE_EVENTS_AND_ALERT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_APPLIANCE_EVENTS_AND_ALERT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_APPLIANCE_EVENTS_AND_ALERT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_APPLIANCE_EVENTS_AND_ALERT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Appliance Statistics -// Cluster specification level: UNKNOWN - -// Client attributes -#define ZCL_APPLIANCE_STATISTICS_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_APPLIANCE_STATISTICS_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_LOG_MAX_SIZE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_LOG_QUEUE_MAX_SIZE_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_APPLIANCE_STATISTICS_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_APPLIANCE_STATISTICS_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Electrical Measurement -// Cluster specification level: UNKNOWN - -// Client attributes -#define ZCL_ELECTRICAL_MEASUREMENT_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_ELECTRICAL_MEASUREMENT_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_MEASUREMENT_TYPE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_DC_VOLTAGE_ATTRIBUTE_ID 0x0100 // Ver.: always -#define ZCL_DC_VOLTAGE_MIN_ATTRIBUTE_ID 0x0101 // Ver.: always -#define ZCL_DC_VOLTAGE_MAX_ATTRIBUTE_ID 0x0102 // Ver.: always -#define ZCL_DC_CURRENT_ATTRIBUTE_ID 0x0103 // Ver.: always -#define ZCL_DC_CURRENT_MIN_ATTRIBUTE_ID 0x0104 // Ver.: always -#define ZCL_DC_CURRENT_MAX_ATTRIBUTE_ID 0x0105 // Ver.: always -#define ZCL_DC_POWER_ATTRIBUTE_ID 0x0106 // Ver.: always -#define ZCL_DC_POWER_MIN_ATTRIBUTE_ID 0x0107 // Ver.: always -#define ZCL_DC_POWER_MAX_ATTRIBUTE_ID 0x0108 // Ver.: always -#define ZCL_DC_VOLTAGE_MULTIPLIER_ATTRIBUTE_ID 0x0200 // Ver.: always -#define ZCL_DC_VOLTAGE_DIVISOR_ATTRIBUTE_ID 0x0201 // Ver.: always -#define ZCL_DC_CURRENT_MULTIPLIER_ATTRIBUTE_ID 0x0202 // Ver.: always -#define ZCL_DC_CURRENT_DIVISOR_ATTRIBUTE_ID 0x0203 // Ver.: always -#define ZCL_DC_POWER_MULTIPLIER_ATTRIBUTE_ID 0x0204 // Ver.: always -#define ZCL_DC_POWER_DIVISOR_ATTRIBUTE_ID 0x0205 // Ver.: always -#define ZCL_AC_FREQUENCY_ATTRIBUTE_ID 0x0300 // Ver.: always -#define ZCL_AC_FREQUENCY_MIN_ATTRIBUTE_ID 0x0301 // Ver.: always -#define ZCL_AC_FREQUENCY_MAX_ATTRIBUTE_ID 0x0302 // Ver.: always -#define ZCL_NEUTRAL_CURRENT_ATTRIBUTE_ID 0x0303 // Ver.: always -#define ZCL_TOTAL_ACTIVE_POWER_ATTRIBUTE_ID 0x0304 // Ver.: always -#define ZCL_TOTAL_REACTIVE_POWER_ATTRIBUTE_ID 0x0305 // Ver.: always -#define ZCL_TOTAL_APPARENT_POWER_ATTRIBUTE_ID 0x0306 // Ver.: always -#define ZCL_MEASURED_1ST_HARMONIC_CURRENT_ATTRIBUTE_ID 0x0307 // Ver.: always -#define ZCL_MEASURED_3RD_HARMONIC_CURRENT_ATTRIBUTE_ID 0x0308 // Ver.: always -#define ZCL_MEASURED_5TH_HARMONIC_CURRENT_ATTRIBUTE_ID 0x0309 // Ver.: always -#define ZCL_MEASURED_7TH_HARMONIC_CURRENT_ATTRIBUTE_ID 0x030A // Ver.: always -#define ZCL_MEASURED_9TH_HARMONIC_CURRENT_ATTRIBUTE_ID 0x030B // Ver.: always -#define ZCL_MEASURED_11TH_HARMONIC_CURRENT_ATTRIBUTE_ID 0x030C // Ver.: always -#define ZCL_MEASURED_PHASE_1ST_HARMONIC_CURRENT_ATTRIBUTE_ID 0x030D // Ver.: always -#define ZCL_MEASURED_PHASE_3RD_HARMONIC_CURRENT_ATTRIBUTE_ID 0x030E // Ver.: always -#define ZCL_MEASURED_PHASE_5TH_HARMONIC_CURRENT_ATTRIBUTE_ID 0x030F // Ver.: always -#define ZCL_MEASURED_PHASE_7TH_HARMONIC_CURRENT_ATTRIBUTE_ID 0x0310 // Ver.: always -#define ZCL_MEASURED_PHASE_9TH_HARMONIC_CURRENT_ATTRIBUTE_ID 0x0311 // Ver.: always -#define ZCL_MEASURED_PHASE_11TH_HARMONIC_CURRENT_ATTRIBUTE_ID 0x0312 // Ver.: always -#define ZCL_AC_FREQUENCY_MULTIPLIER_ATTRIBUTE_ID 0x0400 // Ver.: always -#define ZCL_AC_FREQUENCY_DIVISOR_ATTRIBUTE_ID 0x0401 // Ver.: always -#define ZCL_POWER_MULTIPLIER_ATTRIBUTE_ID 0x0402 // Ver.: always -#define ZCL_POWER_DIVISOR_ATTRIBUTE_ID 0x0403 // Ver.: always -#define ZCL_HARMONIC_CURRENT_MULTIPLIER_ATTRIBUTE_ID 0x0404 // Ver.: always -#define ZCL_PHASE_HARMONIC_CURRENT_MULTIPLIER_ATTRIBUTE_ID 0x0405 // Ver.: always -#define ZCL_INSTANTANEOUS_VOLTAGE_ATTRIBUTE_ID 0x0500 // Ver.: always -#define ZCL_INSTANTANEOUS_LINE_CURRENT_ATTRIBUTE_ID 0x0501 // Ver.: always -#define ZCL_INSTANTANEOUS_ACTIVE_CURRENT_ATTRIBUTE_ID 0x0502 // Ver.: always -#define ZCL_INSTANTANEOUS_REACTIVE_CURRENT_ATTRIBUTE_ID 0x0503 // Ver.: always -#define ZCL_INSTANTANEOUS_POWER_ATTRIBUTE_ID 0x0504 // Ver.: always -#define ZCL_RMS_VOLTAGE_ATTRIBUTE_ID 0x0505 // Ver.: always -#define ZCL_RMS_VOLTAGE_MIN_ATTRIBUTE_ID 0x0506 // Ver.: always -#define ZCL_RMS_VOLTAGE_MAX_ATTRIBUTE_ID 0x0507 // Ver.: always -#define ZCL_RMS_CURRENT_ATTRIBUTE_ID 0x0508 // Ver.: always -#define ZCL_RMS_CURRENT_MIN_ATTRIBUTE_ID 0x0509 // Ver.: always -#define ZCL_RMS_CURRENT_MAX_ATTRIBUTE_ID 0x050A // Ver.: always -#define ZCL_ACTIVE_POWER_ATTRIBUTE_ID 0x050B // Ver.: always -#define ZCL_ACTIVE_POWER_MIN_ATTRIBUTE_ID 0x050C // Ver.: always -#define ZCL_ACTIVE_POWER_MAX_ATTRIBUTE_ID 0x050D // Ver.: always -#define ZCL_REACTIVE_POWER_ATTRIBUTE_ID 0x050E // Ver.: always -#define ZCL_APPARENT_POWER_ATTRIBUTE_ID 0x050F // Ver.: always -#define ZCL_AC_POWER_FACTOR_ATTRIBUTE_ID 0x0510 // Ver.: always -#define ZCL_AVERAGE_RMS_VOLTAGE_MEASUREMENT_PERIOD_ATTRIBUTE_ID 0x0511 // Ver.: always -#define ZCL_AVERAGE_RMS_UNDER_VOLTAGE_COUNTER_ATTRIBUTE_ID 0x0513 // Ver.: always -#define ZCL_RMS_EXTREME_OVER_VOLTAGE_PERIOD_ATTRIBUTE_ID 0x0514 // Ver.: always -#define ZCL_RMS_EXTREME_UNDER_VOLTAGE_PERIOD_ATTRIBUTE_ID 0x0515 // Ver.: always -#define ZCL_RMS_VOLTAGE_SAG_PERIOD_ATTRIBUTE_ID 0x0516 // Ver.: always -#define ZCL_RMS_VOLTAGE_SWELL_PERIOD_ATTRIBUTE_ID 0x0517 // Ver.: always -#define ZCL_AC_VOLTAGE_MULTIPLIER_ATTRIBUTE_ID 0x0600 // Ver.: always -#define ZCL_AC_VOLTAGE_DIVISOR_ATTRIBUTE_ID 0x0601 // Ver.: always -#define ZCL_AC_CURRENT_MULTIPLIER_ATTRIBUTE_ID 0x0602 // Ver.: always -#define ZCL_AC_CURRENT_DIVISOR_ATTRIBUTE_ID 0x0603 // Ver.: always -#define ZCL_AC_POWER_MULTIPLIER_ATTRIBUTE_ID 0x0604 // Ver.: always -#define ZCL_AC_POWER_DIVISOR_ATTRIBUTE_ID 0x0605 // Ver.: always -#define ZCL_DC_OVERLOAD_ALARMS_MASK_ATTRIBUTE_ID 0x0700 // Ver.: always -#define ZCL_DC_VOLTAGE_OVERLOAD_ATTRIBUTE_ID 0x0701 // Ver.: always -#define ZCL_DC_CURRENT_OVERLOAD_ATTRIBUTE_ID 0x0702 // Ver.: always -#define ZCL_AC_OVERLOAD_ALARMS_MASK_ATTRIBUTE_ID 0x0800 // Ver.: always -#define ZCL_AC_VOLTAGE_OVERLOAD_ATTRIBUTE_ID 0x0801 // Ver.: always -#define ZCL_AC_CURRENT_OVERLOAD_ATTRIBUTE_ID 0x0802 // Ver.: always -#define ZCL_AC_POWER_OVERLOAD_ATTRIBUTE_ID 0x0803 // Ver.: always -#define ZCL_AC_REACTIVE_POWER_OVERLOAD_ATTRIBUTE_ID 0x0804 // Ver.: always -#define ZCL_AVERAGE_RMS_OVER_VOLTAGE_ATTRIBUTE_ID 0x0805 // Ver.: always -#define ZCL_AVERAGE_RMS_UNDER_VOLTAGE_ATTRIBUTE_ID 0x0806 // Ver.: always -#define ZCL_RMS_EXTREME_OVER_VOLTAGE_ATTRIBUTE_ID 0x0807 // Ver.: always -#define ZCL_RMS_EXTREME_UNDER_VOLTAGE_ATTRIBUTE_ID 0x0808 // Ver.: always -#define ZCL_RMS_VOLTAGE_SAG_ATTRIBUTE_ID 0x0809 // Ver.: always -#define ZCL_RMS_VOLTAGE_SWELL_ATTRIBUTE_ID 0x080A // Ver.: always -#define ZCL_LINE_CURRENT_PHASE_B_ATTRIBUTE_ID 0x0901 // Ver.: always -#define ZCL_ACTIVE_CURRENT_PHASE_B_ATTRIBUTE_ID 0x0902 // Ver.: always -#define ZCL_REACTIVE_CURRENT_PHASE_B_ATTRIBUTE_ID 0x0903 // Ver.: always -#define ZCL_RMS_VOLTAGE_PHASE_B_ATTRIBUTE_ID 0x0905 // Ver.: always -#define ZCL_RMS_VOLTAGE_MIN_PHASE_B_ATTRIBUTE_ID 0x0906 // Ver.: always -#define ZCL_RMS_VOLTAGE_MAX_PHASE_B_ATTRIBUTE_ID 0x0907 // Ver.: always -#define ZCL_RMS_CURRENT_PHASE_B_ATTRIBUTE_ID 0x0908 // Ver.: always -#define ZCL_RMS_CURRENT_MIN_PHASE_B_ATTRIBUTE_ID 0x0909 // Ver.: always -#define ZCL_RMS_CURRENT_MAX_PHASE_B_ATTRIBUTE_ID 0x090A // Ver.: always -#define ZCL_ACTIVE_POWER_PHASE_B_ATTRIBUTE_ID 0x090B // Ver.: always -#define ZCL_ACTIVE_POWER_MIN_PHASE_B_ATTRIBUTE_ID 0x090C // Ver.: always -#define ZCL_ACTIVE_POWER_MAX_PHASE_B_ATTRIBUTE_ID 0x090D // Ver.: always -#define ZCL_REACTIVE_POWER_PHASE_B_ATTRIBUTE_ID 0x090E // Ver.: always -#define ZCL_APPARENT_POWER_PHASE_B_ATTRIBUTE_ID 0x090F // Ver.: always -#define ZCL_POWER_FACTOR_PHASE_B_ATTRIBUTE_ID 0x0910 // Ver.: always -#define ZCL_AVERAGE_RMS_VOLTAGE_MEASUREMENT_PERIOD_PHASE_B_ATTRIBUTE_ID 0x0911 // Ver.: always -#define ZCL_AVERAGE_RMS_OVER_VOLTAGE_COUNTER_PHASE_B_ATTRIBUTE_ID 0x0912 // Ver.: always -#define ZCL_AVERAGE_RMS_UNDER_VOLTAGE_COUNTER_PHASE_B_ATTRIBUTE_ID 0x0913 // Ver.: always -#define ZCL_RMS_EXTREME_OVER_VOLTAGE_PERIOD_PHASE_B_ATTRIBUTE_ID 0x0914 // Ver.: always -#define ZCL_RMS_EXTREME_UNDER_VOLTAGE_PERIOD_PHASE_B_ATTRIBUTE_ID 0x0915 // Ver.: always -#define ZCL_RMS_VOLTAGE_SAG_PERIOD_PHASE_B_ATTRIBUTE_ID 0x0916 // Ver.: always -#define ZCL_RMS_VOLTAGE_SWELL_PERIOD_PHASE_B_ATTRIBUTE_ID 0x0917 // Ver.: always -#define ZCL_LINE_CURRENT_PHASE_C_ATTRIBUTE_ID 0x0A01 // Ver.: always -#define ZCL_ACTIVE_CURRENT_PHASE_C_ATTRIBUTE_ID 0x0A02 // Ver.: always -#define ZCL_REACTIVE_CURRENT_PHASE_C_ATTRIBUTE_ID 0x0A03 // Ver.: always -#define ZCL_RMS_VOLTAGE_PHASE_C_ATTRIBUTE_ID 0x0A05 // Ver.: always -#define ZCL_RMS_VOLTAGE_MIN_PHASE_C_ATTRIBUTE_ID 0x0A06 // Ver.: always -#define ZCL_RMS_VOLTAGE_MAX_PHASE_C_ATTRIBUTE_ID 0x0A07 // Ver.: always -#define ZCL_RMS_CURRENT_PHASE_C_ATTRIBUTE_ID 0x0A08 // Ver.: always -#define ZCL_RMS_CURRENT_MIN_PHASE_C_ATTRIBUTE_ID 0x0A09 // Ver.: always -#define ZCL_RMS_CURRENT_MAX_PHASE_C_ATTRIBUTE_ID 0x0A0A // Ver.: always -#define ZCL_ACTIVE_POWER_PHASE_C_ATTRIBUTE_ID 0x0A0B // Ver.: always -#define ZCL_ACTIVE_POWER_MIN_PHASE_C_ATTRIBUTE_ID 0x0A0C // Ver.: always -#define ZCL_ACTIVE_POWER_MAX_PHASE_C_ATTRIBUTE_ID 0x0A0D // Ver.: always -#define ZCL_REACTIVE_POWER_PHASE_C_ATTRIBUTE_ID 0x0A0E // Ver.: always -#define ZCL_APPARENT_POWER_PHASE_C_ATTRIBUTE_ID 0x0A0F // Ver.: always -#define ZCL_POWER_FACTOR_PHASE_C_ATTRIBUTE_ID 0x0A10 // Ver.: always -#define ZCL_AVERAGE_RMS_VOLTAGE_MEASUREMENT_PERIOD_PHASE_C_ATTRIBUTE_ID 0x0A11 // Ver.: always -#define ZCL_AVERAGE_RMS_OVER_VOLTAGE_COUNTER_PHASE_C_ATTRIBUTE_ID 0x0A12 // Ver.: always -#define ZCL_AVERAGE_RMS_UNDER_VOLTAGE_COUNTER_PHASE_C_ATTRIBUTE_ID 0x0A13 // Ver.: always -#define ZCL_RMS_EXTREME_OVER_VOLTAGE_PERIOD_PHASE_C_ATTRIBUTE_ID 0x0A14 // Ver.: always -#define ZCL_RMS_EXTREME_UNDER_VOLTAGE_PERIOD_PHASE_C_ATTRIBUTE_ID 0x0A15 // Ver.: always -#define ZCL_RMS_VOLTAGE_SAG_PERIOD_PHASE_C_ATTRIBUTE_ID 0x0A16 // Ver.: always -#define ZCL_RMS_VOLTAGE_SWELL_PERIOD_PHASE_C_ATTRIBUTE_ID 0x0A17 // Ver.: always -#define ZCL_ELECTRICAL_MEASUREMENT_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_ELECTRICAL_MEASUREMENT_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Diagnostics -// Cluster specification level: UNKNOWN - -// Client attributes -#define ZCL_DIAGNOSTICS_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_DIAGNOSTICS_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_NUMBER_OF_RESETS_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_PERSISTENT_MEMORY_WRITES_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_MAC_RX_BCAST_ATTRIBUTE_ID 0x0100 // Ver.: always -#define ZCL_MAC_TX_BCAST_ATTRIBUTE_ID 0x0101 // Ver.: always -#define ZCL_MAC_RX_UCAST_ATTRIBUTE_ID 0x0102 // Ver.: always -#define ZCL_MAC_TX_UCAST_ATTRIBUTE_ID 0x0103 // Ver.: always -#define ZCL_MAC_TX_UCAST_RETRY_ATTRIBUTE_ID 0x0104 // Ver.: always -#define ZCL_MAC_TX_UCAST_FAIL_ATTRIBUTE_ID 0x0105 // Ver.: always -#define ZCL_APS_RX_BCAST_ATTRIBUTE_ID 0x0106 // Ver.: always -#define ZCL_APS_TX_BCAST_ATTRIBUTE_ID 0x0107 // Ver.: always -#define ZCL_APS_RX_UCAST_ATTRIBUTE_ID 0x0108 // Ver.: always -#define ZCL_APS_UCAST_SUCCESS_ATTRIBUTE_ID 0x0109 // Ver.: always -#define ZCL_APS_TX_UCAST_RETRY_ATTRIBUTE_ID 0x010A // Ver.: always -#define ZCL_APS_TX_UCAST_FAIL_ATTRIBUTE_ID 0x010B // Ver.: always -#define ZCL_ROUTE_DISC_INITIATED_ATTRIBUTE_ID 0x010C // Ver.: always -#define ZCL_NEIGHBOR_ADDED_ATTRIBUTE_ID 0x010D // Ver.: always -#define ZCL_NEIGHBOR_REMOVED_ATTRIBUTE_ID 0x010E // Ver.: always -#define ZCL_NEIGHBOR_STALE_ATTRIBUTE_ID 0x010F // Ver.: always -#define ZCL_JOIN_INDICATION_ATTRIBUTE_ID 0x0110 // Ver.: always -#define ZCL_CHILD_MOVED_ATTRIBUTE_ID 0x0111 // Ver.: always -#define ZCL_NWK_FC_FAILURE_ATTRIBUTE_ID 0x0112 // Ver.: always -#define ZCL_APS_FC_FAILURE_ATTRIBUTE_ID 0x0113 // Ver.: always -#define ZCL_APS_UNAUTHORIZED_KEY_ATTRIBUTE_ID 0x0114 // Ver.: always -#define ZCL_NWK_DECRYPT_FAILURE_ATTRIBUTE_ID 0x0115 // Ver.: always -#define ZCL_APS_DECRYPT_FAILURE_ATTRIBUTE_ID 0x0116 // Ver.: always -#define ZCL_PACKET_BUFFER_ALLOC_FAILURES_ATTRIBUTE_ID 0x0117 // Ver.: always -#define ZCL_RELAYED_UNICAST_ATTRIBUTE_ID 0x0118 // Ver.: always -#define ZCL_PHY_TO_MAC_QUEUE_LIMIT_REACHED_ATTRIBUTE_ID 0x0119 // Ver.: always -#define ZCL_PACKET_VALIDATE_DROP_COUNT_ATTRIBUTE_ID 0x011A // Ver.: always -#define ZCL_AVERAGE_MAC_RETRY_PER_APS_MSG_SENT_ATTRIBUTE_ID 0x011B // Ver.: always -#define ZCL_LAST_MESSAGE_LQI_ATTRIBUTE_ID 0x011C // Ver.: always -#define ZCL_LAST_MESSAGE_RSSI_ATTRIBUTE_ID 0x011D // Ver.: always -#define ZCL_DIAGNOSTICS_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_DIAGNOSTICS_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: ZLL Commissioning -// Cluster specification level: zll-1.0-11-0037-10 - -// Client attributes -#define ZCL_ZLL_COMMISSIONING_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_ZLL_COMMISSIONING_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_ZLL_COMMISSIONING_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_ZLL_COMMISSIONING_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Sample Mfg Specific Cluster -// Cluster specification level: UNKNOWN - -// Client attributes -#define ZCL_SAMPLE_MFG_SPECIFIC_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_SAMPLE_MFG_SPECIFIC_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_ATTRIBUTE_ONE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_ATTRIBUTE_TWO_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_SAMPLE_MFG_SPECIFIC_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_SAMPLE_MFG_SPECIFIC_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Sample Mfg Specific Cluster 2 -// Cluster specification level: UNKNOWN - -// Client attributes -#define ZCL_SAMPLE_MFG_SPECIFIC_CLUSTER_2_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_SAMPLE_MFG_SPECIFIC_CLUSTER_2_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_ATTRIBUTE_THREE_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_ATTRIBUTE_FOUR_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_SAMPLE_MFG_SPECIFIC_CLUSTER_2_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_SAMPLE_MFG_SPECIFIC_CLUSTER_2_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: Configuration Cluster -// Cluster specification level: UNKNOWN - -// Client attributes -#define ZCL_OTA_CONFIGURATION_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_OTA_CONFIGURATION_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_TOKENS_LOCKED_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_OTA_CONFIGURATION_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_OTA_CONFIGURATION_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: MFGLIB Cluster -// Cluster specification level: UNKNOWN - -// Client attributes -#define ZCL_MFGLIB_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_MFGLIB_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_PACKETS_RECEIVED_ATTRIBUTE_ID 0x0000 // Ver.: always -#define ZCL_SAVED_RSSI_ATTRIBUTE_ID 0x0001 // Ver.: always -#define ZCL_SAVED_LQI_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_MFGLIB_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_MFGLIB_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Attribute types for cluster: SL Works With All Hubs -// Cluster specification level: UNKNOWN - -// Client attributes -#define ZCL_SL_WWAH_CLUSTER_CLUSTER_REVISION_CLIENT_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_SL_WWAH_CLUSTER_REPORTING_STATUS_CLIENT_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -// Server attributes -#define ZCL_SL_DISABLE_OTA_DOWNGRADES_ATTRIBUTE_ID 0x0002 // Ver.: always -#define ZCL_SL_MGMT_LEAVE_WITHOUT_REJOIN_ENABLED_ATTRIBUTE_ID 0x0003 // Ver.: always -#define ZCL_SL_NWK_RETRY_COUNT_ATTRIBUTE_ID 0x0004 // Ver.: always -#define ZCL_SL_MAC_RETRY_COUNT_ATTRIBUTE_ID 0x0005 // Ver.: always -#define ZCL_SL_ROUTER_CHECKIN_ENABLED_ATTRIBUTE_ID 0x0006 // Ver.: always -#define ZCL_SL_TOUCHLINK_INTERPAN_ENABLED_ATTRIBUTE_ID 0x0007 // Ver.: always -#define ZCL_SL_WWAH_PARENT_CLASSIFICATION_ENABLED_ATTRIBUTE_ID 0x0008 // Ver.: always -#define ZCL_SL_WWAH_APP_EVENT_RETRY_ENABLED_ATTRIBUTE_ID 0x0009 // Ver.: always -#define ZCL_SL_WWAH_APP_EVENT_RETRY_QUEUE_SIZE_ATTRIBUTE_ID 0x000A // Ver.: always -#define ZCL_SL_WWAH_REJOIN_ENABLED_ATTRIBUTE_ID 0x000B // Ver.: always -#define ZCL_SL_MAC_POLL_FAILURE_WAIT_TIME_ATTRIBUTE_ID 0x000C // Ver.: always -#define ZCL_SL_CONFIGURATION_MODE_ENABLED_ATTRIBUTE_ID 0x000D // Ver.: always -#define ZCL_SL_CURRENT_DEBUG_REPORT_ID_ATTRIBUTE_ID 0x000E // Ver.: always -#define ZCL_SL_TC_SECURITY_ON_NTWK_KEY_ROTATION_ENABLED_ATTRIBUTE_ID 0x000F // Ver.: always -#define ZCL_SL_WWAH_BAD_PARENT_RECOVERY_ENABLED_ATTRIBUTE_ID 0x0010 // Ver.: always -#define ZCL_SL_PENDING_NETWORK_UPDATE_CHANNEL_ATTRIBUTE_ID 0x0011 // Ver.: always -#define ZCL_SL_PENDING_NETWORK_UPDATE_PANID_ATTRIBUTE_ID 0x0012 // Ver.: always -#define ZCL_SL_OTA_MAX_OFFLINE_DURATION_ATTRIBUTE_ID 0x0013 // Ver.: always -#define ZCL_SL_WWAH_CLUSTER_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID 0xFFFD // Ver.: since zcl-6.0-15-02017-001 -#define ZCL_SL_WWAH_CLUSTER_REPORTING_STATUS_SERVER_ATTRIBUTE_ID 0xFFFE // Ver.: since zcl-6.0-15-02017-001 - -#endif // SILABS_EMBER_AF_ATTRIBUTE_ID diff --git a/examples/wifi-echo/server/esp32/main/gen/attribute-size.h b/examples/wifi-echo/server/esp32/main/gen/attribute-size.h deleted file mode 100644 index 8ab0dae3944631..00000000000000 --- a/examples/wifi-echo/server/esp32/main/gen/attribute-size.h +++ /dev/null @@ -1,49 +0,0 @@ -/** - * - * 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 SILABS_ATTRIBUTE_SIZE -#define SILABS_ATTRIBUTE_SIZE - -// Used ZCL attribute type sizes -ZCL_BITMAP16_ATTRIBUTE_TYPE, 2, ZCL_BITMAP24_ATTRIBUTE_TYPE, 3, ZCL_BITMAP32_ATTRIBUTE_TYPE, 4, ZCL_BITMAP48_ATTRIBUTE_TYPE, 6, - ZCL_BITMAP64_ATTRIBUTE_TYPE, 8, ZCL_BITMAP8_ATTRIBUTE_TYPE, 1, ZCL_BOOLEAN_ATTRIBUTE_TYPE, 1, ZCL_DATA8_ATTRIBUTE_TYPE, 1, - ZCL_ENUM16_ATTRIBUTE_TYPE, 2, ZCL_ENUM8_ATTRIBUTE_TYPE, 1, ZCL_FLOAT_SINGLE_ATTRIBUTE_TYPE, 4, ZCL_IEEE_ADDRESS_ATTRIBUTE_TYPE, - 8, ZCL_INT16S_ATTRIBUTE_TYPE, 2, ZCL_INT16U_ATTRIBUTE_TYPE, 2, ZCL_INT24S_ATTRIBUTE_TYPE, 3, ZCL_INT24U_ATTRIBUTE_TYPE, 3, - ZCL_INT32S_ATTRIBUTE_TYPE, 4, ZCL_INT32U_ATTRIBUTE_TYPE, 4, ZCL_INT48U_ATTRIBUTE_TYPE, 6, ZCL_INT56U_ATTRIBUTE_TYPE, 7, - ZCL_INT8S_ATTRIBUTE_TYPE, 1, ZCL_INT8U_ATTRIBUTE_TYPE, 1, ZCL_SECURITY_KEY_ATTRIBUTE_TYPE, 16, ZCL_UTC_TIME_ATTRIBUTE_TYPE, 4, -#endif // SILABS_ATTRIBUTE_SIZE diff --git a/examples/wifi-echo/server/esp32/main/gen/attribute-type.h b/examples/wifi-echo/server/esp32/main/gen/attribute-type.h deleted file mode 100644 index 35879dabb2ed6e..00000000000000 --- a/examples/wifi-echo/server/esp32/main/gen/attribute-type.h +++ /dev/null @@ -1,103 +0,0 @@ -/** - * - * 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 SILABS_EMBER_AF_ATTRIBUTE_TYPES -#define SILABS_EMBER_AF_ATTRIBUTE_TYPES - -// ZCL attribute types -enum -{ - ZCL_NO_DATA_ATTRIBUTE_TYPE = 0x00, // No data - ZCL_DATA8_ATTRIBUTE_TYPE = 0x08, // 8-bit data - ZCL_DATA16_ATTRIBUTE_TYPE = 0x09, // 16-bit data - ZCL_DATA24_ATTRIBUTE_TYPE = 0x0A, // 24-bit data - ZCL_DATA32_ATTRIBUTE_TYPE = 0x0B, // 32-bit data - ZCL_DATA40_ATTRIBUTE_TYPE = 0x0C, // 40-bit data - ZCL_DATA48_ATTRIBUTE_TYPE = 0x0D, // 48-bit data - ZCL_DATA56_ATTRIBUTE_TYPE = 0x0E, // 56-bit data - ZCL_DATA64_ATTRIBUTE_TYPE = 0x0F, // 64-bit data - ZCL_BOOLEAN_ATTRIBUTE_TYPE = 0x10, // Boolean - ZCL_BITMAP8_ATTRIBUTE_TYPE = 0x18, // 8-bit bitmap - ZCL_BITMAP16_ATTRIBUTE_TYPE = 0x19, // 16-bit bitmap - ZCL_BITMAP24_ATTRIBUTE_TYPE = 0x1A, // 24-bit bitmap - ZCL_BITMAP32_ATTRIBUTE_TYPE = 0x1B, // 32-bit bitmap - ZCL_BITMAP40_ATTRIBUTE_TYPE = 0x1C, // 40-bit bitmap - ZCL_BITMAP48_ATTRIBUTE_TYPE = 0x1D, // 48-bit bitmap - ZCL_BITMAP56_ATTRIBUTE_TYPE = 0x1E, // 56-bit bitmap - ZCL_BITMAP64_ATTRIBUTE_TYPE = 0x1F, // 64-bit bitmap - ZCL_INT8U_ATTRIBUTE_TYPE = 0x20, // Unsigned 8-bit integer - ZCL_INT16U_ATTRIBUTE_TYPE = 0x21, // Unsigned 16-bit integer - ZCL_INT24U_ATTRIBUTE_TYPE = 0x22, // Unsigned 24-bit integer - ZCL_INT32U_ATTRIBUTE_TYPE = 0x23, // Unsigned 32-bit integer - ZCL_INT40U_ATTRIBUTE_TYPE = 0x24, // Unsigned 40-bit integer - ZCL_INT48U_ATTRIBUTE_TYPE = 0x25, // Unsigned 48-bit integer - ZCL_INT56U_ATTRIBUTE_TYPE = 0x26, // Unsigned 56-bit integer - ZCL_INT64U_ATTRIBUTE_TYPE = 0x27, // Unsigned 64-bit integer - ZCL_INT8S_ATTRIBUTE_TYPE = 0x28, // Signed 8-bit integer - ZCL_INT16S_ATTRIBUTE_TYPE = 0x29, // Signed 16-bit integer - ZCL_INT24S_ATTRIBUTE_TYPE = 0x2A, // Signed 24-bit integer - ZCL_INT32S_ATTRIBUTE_TYPE = 0x2B, // Signed 32-bit integer - ZCL_INT40S_ATTRIBUTE_TYPE = 0x2C, // Signed 40-bit integer - ZCL_INT48S_ATTRIBUTE_TYPE = 0x2D, // Signed 48-bit integer - ZCL_INT56S_ATTRIBUTE_TYPE = 0x2E, // Signed 56-bit integer - ZCL_INT64S_ATTRIBUTE_TYPE = 0x2F, // Signed 64-bit integer - ZCL_ENUM8_ATTRIBUTE_TYPE = 0x30, // 8-bit enumeration - ZCL_ENUM16_ATTRIBUTE_TYPE = 0x31, // 16-bit enumeration - ZCL_FLOAT_SEMI_ATTRIBUTE_TYPE = 0x38, // Semi-precision - ZCL_FLOAT_SINGLE_ATTRIBUTE_TYPE = 0x39, // Single precision - ZCL_FLOAT_DOUBLE_ATTRIBUTE_TYPE = 0x3A, // Double precision - ZCL_OCTET_STRING_ATTRIBUTE_TYPE = 0x41, // Octet string - ZCL_CHAR_STRING_ATTRIBUTE_TYPE = 0x42, // Character string - ZCL_LONG_OCTET_STRING_ATTRIBUTE_TYPE = 0x43, // Long octet string - ZCL_LONG_CHAR_STRING_ATTRIBUTE_TYPE = 0x44, // Long character string - ZCL_ARRAY_ATTRIBUTE_TYPE = 0x48, // Array - ZCL_STRUCT_ATTRIBUTE_TYPE = 0x4C, // Structure - ZCL_SET_ATTRIBUTE_TYPE = 0x50, // Set - ZCL_BAG_ATTRIBUTE_TYPE = 0x51, // Bag - ZCL_TIME_OF_DAY_ATTRIBUTE_TYPE = 0xE0, // Time of day - ZCL_DATE_ATTRIBUTE_TYPE = 0xE1, // Date - ZCL_UTC_TIME_ATTRIBUTE_TYPE = 0xE2, // UTC Time - ZCL_CLUSTER_ID_ATTRIBUTE_TYPE = 0xE8, // Cluster ID - ZCL_ATTRIBUTE_ID_ATTRIBUTE_TYPE = 0xE9, // Attribute ID - ZCL_BACNET_OID_ATTRIBUTE_TYPE = 0xEA, // BACnet OID - ZCL_IEEE_ADDRESS_ATTRIBUTE_TYPE = 0xF0, // IEEE address - ZCL_SECURITY_KEY_ATTRIBUTE_TYPE = 0xF1, // 128-bit security key - ZCL_UNKNOWN_ATTRIBUTE_TYPE = 0xFF // Unknown - -}; -#endif // SILABS_EMBER_AF_ATTRIBUTE_TYPES diff --git a/examples/wifi-echo/server/esp32/main/gen/call-command-handler.c b/examples/wifi-echo/server/esp32/main/gen/call-command-handler.c deleted file mode 100644 index 25a5a00f17a195..00000000000000 --- a/examples/wifi-echo/server/esp32/main/gen/call-command-handler.c +++ /dev/null @@ -1,2299 +0,0 @@ -/** - * - * 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. -// -// - -// This is a set of generated functions that parse the -// the incomming message, and call appropriate command handler. - -// #include PLATFORM_HEADER -#ifdef EZSP_HOST -// Includes needed for ember related functions for the EZSP host -#include "app/util/ezsp/ezsp-protocol.h" -#include "app/util/ezsp/ezsp-utils.h" -#include "app/util/ezsp/ezsp.h" -#include "app/util/ezsp/serial-interface.h" -#include "stack/include/ember-types.h" -#include "stack/include/error.h" -#else -// Includes needed for ember related functions for the EM250 -// #include "stack/include/ember.h" -#endif // EZSP_HOST - -#include - -#include "af-structs.h" -#include "call-command-handler.h" -#include "callback.h" -#include "command-id.h" -#include "util.h" - -static EmberAfStatus status(bool wasHandled, bool clusterExists, bool mfgSpecific) -{ - if (wasHandled) - { - return EMBER_ZCL_STATUS_SUCCESS; - } - else if (mfgSpecific) - { - return EMBER_ZCL_STATUS_UNSUP_MANUF_CLUSTER_COMMAND; - } - else if (clusterExists) - { - return EMBER_ZCL_STATUS_UNSUP_CLUSTER_COMMAND; - } - else - { - return EMBER_ZCL_STATUS_UNSUPPORTED_CLUSTER; - } -} - -// Main command parsing controller. -EmberAfStatus emberAfClusterSpecificCommandParse(EmberAfClusterCommand * cmd) -{ - EmberAfStatus result = status(false, false, cmd->mfgSpecific); - if (cmd->direction == (uint8_t) ZCL_DIRECTION_SERVER_TO_CLIENT && - emberAfContainsClientWithMfgCode(cmd->apsFrame->destinationEndpoint, cmd->apsFrame->clusterId, cmd->mfgCode)) - { - switch (cmd->apsFrame->clusterId) - { - case ZCL_BASIC_CLUSTER_ID: - result = status(false, true, cmd->mfgSpecific); - break; - case ZCL_IDENTIFY_CLUSTER_ID: - result = emberAfIdentifyClusterClientCommandParse(cmd); - break; - case ZCL_GROUPS_CLUSTER_ID: - result = emberAfGroupsClusterClientCommandParse(cmd); - break; - case ZCL_SCENES_CLUSTER_ID: - result = emberAfScenesClusterClientCommandParse(cmd); - break; - case ZCL_ON_OFF_CLUSTER_ID: - result = status(false, true, cmd->mfgSpecific); - break; - case ZCL_ON_OFF_SWITCH_CONFIG_CLUSTER_ID: - result = status(false, true, cmd->mfgSpecific); - break; - case ZCL_LEVEL_CONTROL_CLUSTER_ID: - result = status(false, true, cmd->mfgSpecific); - break; - case ZCL_DOOR_LOCK_CLUSTER_ID: - result = status(false, true, cmd->mfgSpecific); - break; - case ZCL_BARRIER_CONTROL_CLUSTER_ID: - result = status(false, true, cmd->mfgSpecific); - break; - case ZCL_COLOR_CONTROL_CLUSTER_ID: - result = status(false, true, cmd->mfgSpecific); - break; - case ZCL_TEMP_MEASUREMENT_CLUSTER_ID: - result = status(false, true, cmd->mfgSpecific); - break; - case ZCL_IAS_ZONE_CLUSTER_ID: - result = emberAfIasZoneClusterClientCommandParse(cmd); - break; - default: - // Unrecognized cluster ID, error status will apply. - break; - } - } - else if (cmd->direction == (uint8_t) ZCL_DIRECTION_CLIENT_TO_SERVER && - emberAfContainsServerWithMfgCode(cmd->apsFrame->destinationEndpoint, cmd->apsFrame->clusterId, cmd->mfgCode)) - { - switch (cmd->apsFrame->clusterId) - { - case ZCL_BASIC_CLUSTER_ID: - result = emberAfBasicClusterServerCommandParse(cmd); - break; - case ZCL_IDENTIFY_CLUSTER_ID: - result = emberAfIdentifyClusterServerCommandParse(cmd); - break; - case ZCL_GROUPS_CLUSTER_ID: - result = emberAfGroupsClusterServerCommandParse(cmd); - break; - case ZCL_SCENES_CLUSTER_ID: - result = emberAfScenesClusterServerCommandParse(cmd); - break; - case ZCL_ON_OFF_CLUSTER_ID: - result = emberAfOnOffClusterServerCommandParse(cmd); - break; - case ZCL_ON_OFF_SWITCH_CONFIG_CLUSTER_ID: - result = status(false, true, cmd->mfgSpecific); - break; - case ZCL_LEVEL_CONTROL_CLUSTER_ID: - result = emberAfLevelControlClusterServerCommandParse(cmd); - break; - case ZCL_DOOR_LOCK_CLUSTER_ID: - result = emberAfDoorLockClusterServerCommandParse(cmd); - break; - case ZCL_BARRIER_CONTROL_CLUSTER_ID: - result = emberAfBarrierControlClusterServerCommandParse(cmd); - break; - case ZCL_COLOR_CONTROL_CLUSTER_ID: - result = emberAfColorControlClusterServerCommandParse(cmd); - break; - case ZCL_TEMP_MEASUREMENT_CLUSTER_ID: - result = status(false, true, cmd->mfgSpecific); - break; - case ZCL_IAS_ZONE_CLUSTER_ID: - result = emberAfIasZoneClusterServerCommandParse(cmd); - break; - default: - // Unrecognized cluster ID, error status will apply. - break; - } - } - return result; -} - -// Cluster: Basic, server -EmberAfStatus emberAfBasicClusterServerCommandParse(EmberAfClusterCommand * cmd) -{ - bool wasHandled = false; - if (!cmd->mfgSpecific) - { - switch (cmd->commandId) - { - case ZCL_RESET_TO_FACTORY_DEFAULTS_COMMAND_ID: { - // Command is fixed length: 0 - wasHandled = emberAfBasicClusterResetToFactoryDefaultsCallback(); - break; - } - default: { - // Unrecognized command ID, error status will apply. - break; - } - } - } - return status(wasHandled, true, cmd->mfgSpecific); -} - -// Cluster: Identify, client -EmberAfStatus emberAfIdentifyClusterClientCommandParse(EmberAfClusterCommand * cmd) -{ - bool wasHandled = false; - if (!cmd->mfgSpecific) - { - switch (cmd->commandId) - { - case ZCL_IDENTIFY_QUERY_RESPONSE_COMMAND_ID: { - uint16_t payloadOffset = cmd->payloadStartIndex; - uint16_t timeout; // Ver.: always - // Command is fixed length: 2 - if (cmd->bufLen < payloadOffset + 2u) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - timeout = emberAfGetInt16u(cmd->buffer, payloadOffset, cmd->bufLen); - wasHandled = emberAfIdentifyClusterIdentifyQueryResponseCallback(timeout); - break; - } - default: { - // Unrecognized command ID, error status will apply. - break; - } - } - } - return status(wasHandled, true, cmd->mfgSpecific); -} - -// Cluster: Identify, server -EmberAfStatus emberAfIdentifyClusterServerCommandParse(EmberAfClusterCommand * cmd) -{ - bool wasHandled = false; - if (!cmd->mfgSpecific) - { - switch (cmd->commandId) - { - case ZCL_IDENTIFY_COMMAND_ID: { - uint16_t payloadOffset = cmd->payloadStartIndex; - uint16_t identifyTime; // Ver.: always - // Command is fixed length: 2 - if (cmd->bufLen < payloadOffset + 2u) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - identifyTime = emberAfGetInt16u(cmd->buffer, payloadOffset, cmd->bufLen); - wasHandled = emberAfIdentifyClusterIdentifyCallback(identifyTime); - break; - } - case ZCL_IDENTIFY_QUERY_COMMAND_ID: { - // Command is fixed length: 0 - wasHandled = emberAfIdentifyClusterIdentifyQueryCallback(); - break; - } - default: { - // Unrecognized command ID, error status will apply. - break; - } - } - } - return status(wasHandled, true, cmd->mfgSpecific); -} - -// Cluster: Groups, client -EmberAfStatus emberAfGroupsClusterClientCommandParse(EmberAfClusterCommand * cmd) -{ - bool wasHandled = false; - if (!cmd->mfgSpecific) - { - switch (cmd->commandId) - { - case ZCL_ADD_GROUP_RESPONSE_COMMAND_ID: { - uint16_t payloadOffset = cmd->payloadStartIndex; - uint8_t status; // Ver.: always - uint16_t groupId; // Ver.: always - // Command is fixed length: 3 - if (cmd->bufLen < payloadOffset + 3u) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - status = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); - payloadOffset += 1u; - groupId = emberAfGetInt16u(cmd->buffer, payloadOffset, cmd->bufLen); - wasHandled = emberAfGroupsClusterAddGroupResponseCallback(status, groupId); - break; - } - case ZCL_VIEW_GROUP_RESPONSE_COMMAND_ID: { - uint16_t payloadOffset = cmd->payloadStartIndex; - uint8_t status; // Ver.: always - uint16_t groupId; // Ver.: always - uint8_t * groupName; // Ver.: always - // Command is not a fixed length - if (cmd->bufLen < payloadOffset + 1u) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - status = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); - payloadOffset += 1u; - if (cmd->bufLen < payloadOffset + 2u) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - groupId = emberAfGetInt16u(cmd->buffer, payloadOffset, cmd->bufLen); - payloadOffset += 2u; - if (cmd->bufLen < payloadOffset + emberAfStringLength(cmd->buffer + payloadOffset) + 1u) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - groupName = emberAfGetString(cmd->buffer, payloadOffset, cmd->bufLen); - wasHandled = emberAfGroupsClusterViewGroupResponseCallback(status, groupId, groupName); - break; - } - case ZCL_GET_GROUP_MEMBERSHIP_RESPONSE_COMMAND_ID: { - uint16_t payloadOffset = cmd->payloadStartIndex; - uint8_t capacity; // Ver.: always - uint8_t groupCount; // Ver.: always - uint8_t * groupList; // Ver.: always - // Command is fixed length: 2 - if (cmd->bufLen < payloadOffset + 2u) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - capacity = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); - payloadOffset += 1u; - groupCount = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); - payloadOffset += 1u; - groupList = cmd->buffer + payloadOffset; - wasHandled = emberAfGroupsClusterGetGroupMembershipResponseCallback(capacity, groupCount, groupList); - break; - } - case ZCL_REMOVE_GROUP_RESPONSE_COMMAND_ID: { - uint16_t payloadOffset = cmd->payloadStartIndex; - uint8_t status; // Ver.: always - uint16_t groupId; // Ver.: always - // Command is fixed length: 3 - if (cmd->bufLen < payloadOffset + 3u) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - status = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); - payloadOffset += 1u; - groupId = emberAfGetInt16u(cmd->buffer, payloadOffset, cmd->bufLen); - wasHandled = emberAfGroupsClusterRemoveGroupResponseCallback(status, groupId); - break; - } - default: { - // Unrecognized command ID, error status will apply. - break; - } - } - } - return status(wasHandled, true, cmd->mfgSpecific); -} - -// Cluster: Groups, server -EmberAfStatus emberAfGroupsClusterServerCommandParse(EmberAfClusterCommand * cmd) -{ - bool wasHandled = false; - if (!cmd->mfgSpecific) - { - switch (cmd->commandId) - { - case ZCL_ADD_GROUP_COMMAND_ID: { - uint16_t payloadOffset = cmd->payloadStartIndex; - uint16_t groupId; // Ver.: always - uint8_t * groupName; // Ver.: always - // Command is not a fixed length - if (cmd->bufLen < payloadOffset + 2u) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - groupId = emberAfGetInt16u(cmd->buffer, payloadOffset, cmd->bufLen); - payloadOffset += 2u; - if (cmd->bufLen < payloadOffset + emberAfStringLength(cmd->buffer + payloadOffset) + 1u) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - groupName = emberAfGetString(cmd->buffer, payloadOffset, cmd->bufLen); - wasHandled = emberAfGroupsClusterAddGroupCallback(groupId, groupName); - break; - } - case ZCL_VIEW_GROUP_COMMAND_ID: { - uint16_t payloadOffset = cmd->payloadStartIndex; - uint16_t groupId; // Ver.: always - // Command is fixed length: 2 - if (cmd->bufLen < payloadOffset + 2u) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - groupId = emberAfGetInt16u(cmd->buffer, payloadOffset, cmd->bufLen); - wasHandled = emberAfGroupsClusterViewGroupCallback(groupId); - break; - } - case ZCL_GET_GROUP_MEMBERSHIP_COMMAND_ID: { - uint16_t payloadOffset = cmd->payloadStartIndex; - uint8_t groupCount; // Ver.: always - uint8_t * groupList; // Ver.: always - // Command is fixed length: 1 - if (cmd->bufLen < payloadOffset + 1u) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - groupCount = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); - payloadOffset += 1u; - groupList = cmd->buffer + payloadOffset; - wasHandled = emberAfGroupsClusterGetGroupMembershipCallback(groupCount, groupList); - break; - } - case ZCL_REMOVE_GROUP_COMMAND_ID: { - uint16_t payloadOffset = cmd->payloadStartIndex; - uint16_t groupId; // Ver.: always - // Command is fixed length: 2 - if (cmd->bufLen < payloadOffset + 2u) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - groupId = emberAfGetInt16u(cmd->buffer, payloadOffset, cmd->bufLen); - wasHandled = emberAfGroupsClusterRemoveGroupCallback(groupId); - break; - } - case ZCL_REMOVE_ALL_GROUPS_COMMAND_ID: { - // Command is fixed length: 0 - wasHandled = emberAfGroupsClusterRemoveAllGroupsCallback(); - break; - } - case ZCL_ADD_GROUP_IF_IDENTIFYING_COMMAND_ID: { - uint16_t payloadOffset = cmd->payloadStartIndex; - uint16_t groupId; // Ver.: always - uint8_t * groupName; // Ver.: always - // Command is not a fixed length - if (cmd->bufLen < payloadOffset + 2u) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - groupId = emberAfGetInt16u(cmd->buffer, payloadOffset, cmd->bufLen); - payloadOffset += 2u; - if (cmd->bufLen < payloadOffset + emberAfStringLength(cmd->buffer + payloadOffset) + 1u) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - groupName = emberAfGetString(cmd->buffer, payloadOffset, cmd->bufLen); - wasHandled = emberAfGroupsClusterAddGroupIfIdentifyingCallback(groupId, groupName); - break; - } - default: { - // Unrecognized command ID, error status will apply. - break; - } - } - } - return status(wasHandled, true, cmd->mfgSpecific); -} - -// Cluster: Scenes, client -EmberAfStatus emberAfScenesClusterClientCommandParse(EmberAfClusterCommand * cmd) -{ - bool wasHandled = false; - if (!cmd->mfgSpecific) - { - switch (cmd->commandId) - { - case ZCL_ADD_SCENE_RESPONSE_COMMAND_ID: { - uint16_t payloadOffset = cmd->payloadStartIndex; - uint8_t status; // Ver.: always - uint16_t groupId; // Ver.: always - uint8_t sceneId; // Ver.: always - // Command is fixed length: 4 - if (cmd->bufLen < payloadOffset + 4u) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - status = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); - payloadOffset += 1u; - groupId = emberAfGetInt16u(cmd->buffer, payloadOffset, cmd->bufLen); - payloadOffset += 2u; - sceneId = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); - wasHandled = emberAfScenesClusterAddSceneResponseCallback(status, groupId, sceneId); - break; - } - case ZCL_VIEW_SCENE_RESPONSE_COMMAND_ID: { - uint16_t payloadOffset = cmd->payloadStartIndex; - uint8_t status; // Ver.: always - uint16_t groupId; // Ver.: always - uint8_t sceneId; // Ver.: always - uint16_t transitionTime; // Ver.: always - uint8_t * sceneName; // Ver.: always - uint8_t * extensionFieldSets; // Ver.: always - // Command is not a fixed length - if (cmd->bufLen < payloadOffset + 1u) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - status = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); - payloadOffset += 1u; - if (cmd->bufLen < payloadOffset + 2u) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - groupId = emberAfGetInt16u(cmd->buffer, payloadOffset, cmd->bufLen); - payloadOffset += 2u; - if (cmd->bufLen < payloadOffset + 1u) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - sceneId = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); - payloadOffset += 1u; - if (!(status == 0)) - { - // Argument is not always present: - // - it is conditionally present based on expression: status==0 - transitionTime = 0xFFFF; - } - else - { - transitionTime = emberAfGetInt16u(cmd->buffer, payloadOffset, cmd->bufLen); - payloadOffset += 2u; - } - if (!(status == 0)) - { - // Argument is not always present: - // - it is conditionally present based on expression: status==0 - sceneName = NULL; - } - else - { - sceneName = emberAfGetString(cmd->buffer, payloadOffset, cmd->bufLen); - payloadOffset += emberAfStringLength(cmd->buffer + payloadOffset) + 1u; - } - if (status == 0) - { - // Array is conditionally present based on expression: status==0 - extensionFieldSets = cmd->buffer + payloadOffset; - } - else - { - extensionFieldSets = NULL; - } - wasHandled = emberAfScenesClusterViewSceneResponseCallback(status, groupId, sceneId, transitionTime, sceneName, - extensionFieldSets); - break; - } - case ZCL_REMOVE_SCENE_RESPONSE_COMMAND_ID: { - uint16_t payloadOffset = cmd->payloadStartIndex; - uint8_t status; // Ver.: always - uint16_t groupId; // Ver.: always - uint8_t sceneId; // Ver.: always - // Command is fixed length: 4 - if (cmd->bufLen < payloadOffset + 4u) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - status = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); - payloadOffset += 1u; - groupId = emberAfGetInt16u(cmd->buffer, payloadOffset, cmd->bufLen); - payloadOffset += 2u; - sceneId = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); - wasHandled = emberAfScenesClusterRemoveSceneResponseCallback(status, groupId, sceneId); - break; - } - case ZCL_REMOVE_ALL_SCENES_RESPONSE_COMMAND_ID: { - uint16_t payloadOffset = cmd->payloadStartIndex; - uint8_t status; // Ver.: always - uint16_t groupId; // Ver.: always - // Command is fixed length: 3 - if (cmd->bufLen < payloadOffset + 3u) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - status = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); - payloadOffset += 1u; - groupId = emberAfGetInt16u(cmd->buffer, payloadOffset, cmd->bufLen); - wasHandled = emberAfScenesClusterRemoveAllScenesResponseCallback(status, groupId); - break; - } - case ZCL_STORE_SCENE_RESPONSE_COMMAND_ID: { - uint16_t payloadOffset = cmd->payloadStartIndex; - uint8_t status; // Ver.: always - uint16_t groupId; // Ver.: always - uint8_t sceneId; // Ver.: always - // Command is fixed length: 4 - if (cmd->bufLen < payloadOffset + 4u) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - status = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); - payloadOffset += 1u; - groupId = emberAfGetInt16u(cmd->buffer, payloadOffset, cmd->bufLen); - payloadOffset += 2u; - sceneId = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); - wasHandled = emberAfScenesClusterStoreSceneResponseCallback(status, groupId, sceneId); - break; - } - case ZCL_GET_SCENE_MEMBERSHIP_RESPONSE_COMMAND_ID: { - uint16_t payloadOffset = cmd->payloadStartIndex; - uint8_t status; // Ver.: always - uint8_t capacity; // Ver.: always - uint16_t groupId; // Ver.: always - uint8_t sceneCount; // Ver.: always - uint8_t * sceneList; // Ver.: always - // Command is not a fixed length - if (cmd->bufLen < payloadOffset + 1u) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - status = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); - payloadOffset += 1u; - if (cmd->bufLen < payloadOffset + 1u) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - capacity = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); - payloadOffset += 1u; - if (cmd->bufLen < payloadOffset + 2u) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - groupId = emberAfGetInt16u(cmd->buffer, payloadOffset, cmd->bufLen); - payloadOffset += 2u; - if (!(status == 0)) - { - // Argument is not always present: - // - it is conditionally present based on expression: status==0 - sceneCount = 0xFF; - } - else - { - sceneCount = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); - payloadOffset += 1u; - } - if (status == 0) - { - // Array is conditionally present based on expression: status==0 - sceneList = cmd->buffer + payloadOffset; - } - else - { - sceneList = NULL; - } - wasHandled = emberAfScenesClusterGetSceneMembershipResponseCallback(status, capacity, groupId, sceneCount, sceneList); - break; - } - default: { - // Unrecognized command ID, error status will apply. - break; - } - } - } - return status(wasHandled, true, cmd->mfgSpecific); -} - -// Cluster: Scenes, server -EmberAfStatus emberAfScenesClusterServerCommandParse(EmberAfClusterCommand * cmd) -{ - bool wasHandled = false; - if (!cmd->mfgSpecific) - { - switch (cmd->commandId) - { - case ZCL_ADD_SCENE_COMMAND_ID: { - uint16_t payloadOffset = cmd->payloadStartIndex; - uint16_t groupId; // Ver.: always - uint8_t sceneId; // Ver.: always - uint16_t transitionTime; // Ver.: always - uint8_t * sceneName; // Ver.: always - uint8_t * extensionFieldSets; // Ver.: always - // Command is not a fixed length - if (cmd->bufLen < payloadOffset + 2u) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - groupId = emberAfGetInt16u(cmd->buffer, payloadOffset, cmd->bufLen); - payloadOffset += 2u; - if (cmd->bufLen < payloadOffset + 1u) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - sceneId = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); - payloadOffset += 1u; - if (cmd->bufLen < payloadOffset + 2u) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - transitionTime = emberAfGetInt16u(cmd->buffer, payloadOffset, cmd->bufLen); - payloadOffset += 2u; - if (cmd->bufLen < payloadOffset + emberAfStringLength(cmd->buffer + payloadOffset) + 1u) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - sceneName = emberAfGetString(cmd->buffer, payloadOffset, cmd->bufLen); - payloadOffset += emberAfStringLength(cmd->buffer + payloadOffset) + 1u; - extensionFieldSets = cmd->buffer + payloadOffset; - wasHandled = emberAfScenesClusterAddSceneCallback(groupId, sceneId, transitionTime, sceneName, extensionFieldSets); - break; - } - case ZCL_VIEW_SCENE_COMMAND_ID: { - uint16_t payloadOffset = cmd->payloadStartIndex; - uint16_t groupId; // Ver.: always - uint8_t sceneId; // Ver.: always - // Command is fixed length: 3 - if (cmd->bufLen < payloadOffset + 3u) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - groupId = emberAfGetInt16u(cmd->buffer, payloadOffset, cmd->bufLen); - payloadOffset += 2u; - sceneId = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); - wasHandled = emberAfScenesClusterViewSceneCallback(groupId, sceneId); - break; - } - case ZCL_REMOVE_SCENE_COMMAND_ID: { - uint16_t payloadOffset = cmd->payloadStartIndex; - uint16_t groupId; // Ver.: always - uint8_t sceneId; // Ver.: always - // Command is fixed length: 3 - if (cmd->bufLen < payloadOffset + 3u) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - groupId = emberAfGetInt16u(cmd->buffer, payloadOffset, cmd->bufLen); - payloadOffset += 2u; - sceneId = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); - wasHandled = emberAfScenesClusterRemoveSceneCallback(groupId, sceneId); - break; - } - case ZCL_REMOVE_ALL_SCENES_COMMAND_ID: { - uint16_t payloadOffset = cmd->payloadStartIndex; - uint16_t groupId; // Ver.: always - // Command is fixed length: 2 - if (cmd->bufLen < payloadOffset + 2u) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - groupId = emberAfGetInt16u(cmd->buffer, payloadOffset, cmd->bufLen); - wasHandled = emberAfScenesClusterRemoveAllScenesCallback(groupId); - break; - } - case ZCL_STORE_SCENE_COMMAND_ID: { - uint16_t payloadOffset = cmd->payloadStartIndex; - uint16_t groupId; // Ver.: always - uint8_t sceneId; // Ver.: always - // Command is fixed length: 3 - if (cmd->bufLen < payloadOffset + 3u) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - groupId = emberAfGetInt16u(cmd->buffer, payloadOffset, cmd->bufLen); - payloadOffset += 2u; - sceneId = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); - wasHandled = emberAfScenesClusterStoreSceneCallback(groupId, sceneId); - break; - } - case ZCL_RECALL_SCENE_COMMAND_ID: { - uint16_t payloadOffset = cmd->payloadStartIndex; - uint16_t groupId; // Ver.: always - uint8_t sceneId; // Ver.: always - uint16_t transitionTime; // Ver.: since zcl-7.0-07-5123-07 - // Command is not a fixed length - if (cmd->bufLen < payloadOffset + 2u) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - groupId = emberAfGetInt16u(cmd->buffer, payloadOffset, cmd->bufLen); - payloadOffset += 2u; - if (cmd->bufLen < payloadOffset + 1u) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - sceneId = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); - payloadOffset += 1u; - if ((cmd->bufLen < payloadOffset + 2u)) - { - // Argument is not always present: - // - it is present only in versions higher than: zcl-7.0-07-5123-07 - transitionTime = 0xFFFF; - } - else - { - transitionTime = emberAfGetInt16u(cmd->buffer, payloadOffset, cmd->bufLen); - } - wasHandled = emberAfScenesClusterRecallSceneCallback(groupId, sceneId, transitionTime); - break; - } - case ZCL_GET_SCENE_MEMBERSHIP_COMMAND_ID: { - uint16_t payloadOffset = cmd->payloadStartIndex; - uint16_t groupId; // Ver.: always - // Command is fixed length: 2 - if (cmd->bufLen < payloadOffset + 2u) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - groupId = emberAfGetInt16u(cmd->buffer, payloadOffset, cmd->bufLen); - wasHandled = emberAfScenesClusterGetSceneMembershipCallback(groupId); - break; - } - default: { - // Unrecognized command ID, error status will apply. - break; - } - } - } - return status(wasHandled, true, cmd->mfgSpecific); -} - -// Cluster: On/off, server -EmberAfStatus emberAfOnOffClusterServerCommandParse(EmberAfClusterCommand * cmd) -{ - bool wasHandled = false; - if (!cmd->mfgSpecific) - { - switch (cmd->commandId) - { - case ZCL_OFF_COMMAND_ID: { - // Command is fixed length: 0 - wasHandled = emberAfOnOffClusterOffCallback(); - break; - } - case ZCL_ON_COMMAND_ID: { - // Command is fixed length: 0 - wasHandled = emberAfOnOffClusterOnCallback(); - break; - } - case ZCL_TOGGLE_COMMAND_ID: { - // Command is fixed length: 0 - wasHandled = emberAfOnOffClusterToggleCallback(); - break; - } - default: { - // Unrecognized command ID, error status will apply. - break; - } - } - } - return status(wasHandled, true, cmd->mfgSpecific); -} - -// Cluster: Level Control, server -EmberAfStatus emberAfLevelControlClusterServerCommandParse(EmberAfClusterCommand * cmd) -{ - bool wasHandled = false; - if (!cmd->mfgSpecific) - { - switch (cmd->commandId) - { - case ZCL_MOVE_TO_LEVEL_COMMAND_ID: { - uint16_t payloadOffset = cmd->payloadStartIndex; - uint8_t level; // Ver.: always - uint16_t transitionTime; // Ver.: always - uint8_t optionMask; // Ver.: since zcl6-errata-14-0129-15 - uint8_t optionOverride; // Ver.: since zcl6-errata-14-0129-15 - // Command is not a fixed length - if (cmd->bufLen < payloadOffset + 1u) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - level = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); - payloadOffset += 1u; - if (cmd->bufLen < payloadOffset + 2u) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - transitionTime = emberAfGetInt16u(cmd->buffer, payloadOffset, cmd->bufLen); - payloadOffset += 2u; - if ((cmd->bufLen < payloadOffset + 1u)) - { - // Argument is not always present: - // - it is present only in versions higher than: zcl6-errata-14-0129-15 - optionMask = 0xFF; - } - else - { - optionMask = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); - payloadOffset += 1u; - } - if ((cmd->bufLen < payloadOffset + 1u)) - { - // Argument is not always present: - // - it is present only in versions higher than: zcl6-errata-14-0129-15 - optionOverride = 0xFF; - } - else - { - optionOverride = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); - } - wasHandled = emberAfLevelControlClusterMoveToLevelCallback(level, transitionTime, optionMask, optionOverride); - break; - } - case ZCL_MOVE_COMMAND_ID: { - uint16_t payloadOffset = cmd->payloadStartIndex; - uint8_t moveMode; // Ver.: always - uint8_t rate; // Ver.: always - uint8_t optionMask; // Ver.: since zcl6-errata-14-0129-15 - uint8_t optionOverride; // Ver.: since zcl6-errata-14-0129-15 - // Command is not a fixed length - if (cmd->bufLen < payloadOffset + 1u) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - moveMode = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); - payloadOffset += 1u; - if (cmd->bufLen < payloadOffset + 1u) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - rate = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); - payloadOffset += 1u; - if ((cmd->bufLen < payloadOffset + 1u)) - { - // Argument is not always present: - // - it is present only in versions higher than: zcl6-errata-14-0129-15 - optionMask = 0xFF; - } - else - { - optionMask = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); - payloadOffset += 1u; - } - if ((cmd->bufLen < payloadOffset + 1u)) - { - // Argument is not always present: - // - it is present only in versions higher than: zcl6-errata-14-0129-15 - optionOverride = 0xFF; - } - else - { - optionOverride = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); - } - wasHandled = emberAfLevelControlClusterMoveCallback(moveMode, rate, optionMask, optionOverride); - break; - } - case ZCL_STEP_COMMAND_ID: { - uint16_t payloadOffset = cmd->payloadStartIndex; - uint8_t stepMode; // Ver.: always - uint8_t stepSize; // Ver.: always - uint16_t transitionTime; // Ver.: always - uint8_t optionMask; // Ver.: since zcl6-errata-14-0129-15 - uint8_t optionOverride; // Ver.: since zcl6-errata-14-0129-15 - // Command is not a fixed length - if (cmd->bufLen < payloadOffset + 1u) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - stepMode = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); - payloadOffset += 1u; - if (cmd->bufLen < payloadOffset + 1u) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - stepSize = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); - payloadOffset += 1u; - if (cmd->bufLen < payloadOffset + 2u) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - transitionTime = emberAfGetInt16u(cmd->buffer, payloadOffset, cmd->bufLen); - payloadOffset += 2u; - if ((cmd->bufLen < payloadOffset + 1u)) - { - // Argument is not always present: - // - it is present only in versions higher than: zcl6-errata-14-0129-15 - optionMask = 0xFF; - } - else - { - optionMask = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); - payloadOffset += 1u; - } - if ((cmd->bufLen < payloadOffset + 1u)) - { - // Argument is not always present: - // - it is present only in versions higher than: zcl6-errata-14-0129-15 - optionOverride = 0xFF; - } - else - { - optionOverride = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); - } - wasHandled = emberAfLevelControlClusterStepCallback(stepMode, stepSize, transitionTime, optionMask, optionOverride); - break; - } - case ZCL_STOP_COMMAND_ID: { - uint16_t payloadOffset = cmd->payloadStartIndex; - uint8_t optionMask; // Ver.: since zcl6-errata-14-0129-15 - uint8_t optionOverride; // Ver.: since zcl6-errata-14-0129-15 - // Command is not a fixed length - if ((cmd->bufLen < payloadOffset + 1u)) - { - // Argument is not always present: - // - it is present only in versions higher than: zcl6-errata-14-0129-15 - optionMask = 0xFF; - } - else - { - optionMask = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); - payloadOffset += 1u; - } - if ((cmd->bufLen < payloadOffset + 1u)) - { - // Argument is not always present: - // - it is present only in versions higher than: zcl6-errata-14-0129-15 - optionOverride = 0xFF; - } - else - { - optionOverride = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); - } - wasHandled = emberAfLevelControlClusterStopCallback(optionMask, optionOverride); - break; - } - case ZCL_MOVE_TO_LEVEL_WITH_ON_OFF_COMMAND_ID: { - uint16_t payloadOffset = cmd->payloadStartIndex; - uint8_t level; // Ver.: always - uint16_t transitionTime; // Ver.: always - // Command is fixed length: 3 - if (cmd->bufLen < payloadOffset + 3u) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - level = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); - payloadOffset += 1u; - transitionTime = emberAfGetInt16u(cmd->buffer, payloadOffset, cmd->bufLen); - wasHandled = emberAfLevelControlClusterMoveToLevelWithOnOffCallback(level, transitionTime); - break; - } - case ZCL_MOVE_WITH_ON_OFF_COMMAND_ID: { - uint16_t payloadOffset = cmd->payloadStartIndex; - uint8_t moveMode; // Ver.: always - uint8_t rate; // Ver.: always - // Command is fixed length: 2 - if (cmd->bufLen < payloadOffset + 2u) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - moveMode = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); - payloadOffset += 1u; - rate = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); - wasHandled = emberAfLevelControlClusterMoveWithOnOffCallback(moveMode, rate); - break; - } - case ZCL_STEP_WITH_ON_OFF_COMMAND_ID: { - uint16_t payloadOffset = cmd->payloadStartIndex; - uint8_t stepMode; // Ver.: always - uint8_t stepSize; // Ver.: always - uint16_t transitionTime; // Ver.: always - // Command is fixed length: 4 - if (cmd->bufLen < payloadOffset + 4u) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - stepMode = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); - payloadOffset += 1u; - stepSize = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); - payloadOffset += 1u; - transitionTime = emberAfGetInt16u(cmd->buffer, payloadOffset, cmd->bufLen); - wasHandled = emberAfLevelControlClusterStepWithOnOffCallback(stepMode, stepSize, transitionTime); - break; - } - case ZCL_STOP_WITH_ON_OFF_COMMAND_ID: { - // Command is fixed length: 0 - wasHandled = emberAfLevelControlClusterStopWithOnOffCallback(); - break; - } - default: { - // Unrecognized command ID, error status will apply. - break; - } - } - } - return status(wasHandled, true, cmd->mfgSpecific); -} - -// Cluster: Door Lock, server -EmberAfStatus emberAfDoorLockClusterServerCommandParse(EmberAfClusterCommand * cmd) -{ - bool wasHandled = false; - if (!cmd->mfgSpecific) - { - switch (cmd->commandId) - { - case ZCL_LOCK_DOOR_COMMAND_ID: { - uint16_t payloadOffset = cmd->payloadStartIndex; - uint8_t * PIN; // Ver.: since ha-1.2-05-3520-29 - // Command is not a fixed length - if ((cmd->bufLen < payloadOffset + emberAfStringLength(cmd->buffer + payloadOffset) + 1u)) - { - // Argument is not always present: - // - it is present only in versions higher than: ha-1.2-05-3520-29 - PIN = NULL; - } - else - { - PIN = emberAfGetString(cmd->buffer, payloadOffset, cmd->bufLen); - } - wasHandled = emberAfDoorLockClusterLockDoorCallback(PIN); - break; - } - case ZCL_UNLOCK_DOOR_COMMAND_ID: { - uint16_t payloadOffset = cmd->payloadStartIndex; - uint8_t * PIN; // Ver.: since ha-1.2-05-3520-29 - // Command is not a fixed length - if ((cmd->bufLen < payloadOffset + emberAfStringLength(cmd->buffer + payloadOffset) + 1u)) - { - // Argument is not always present: - // - it is present only in versions higher than: ha-1.2-05-3520-29 - PIN = NULL; - } - else - { - PIN = emberAfGetString(cmd->buffer, payloadOffset, cmd->bufLen); - } - wasHandled = emberAfDoorLockClusterUnlockDoorCallback(PIN); - break; - } - case ZCL_UNLOCK_WITH_TIMEOUT_COMMAND_ID: { - uint16_t payloadOffset = cmd->payloadStartIndex; - uint16_t timeoutInSeconds; // Ver.: always - uint8_t * pin; // Ver.: since ha-1.2-05-3520-29 - // Command is not a fixed length - if (cmd->bufLen < payloadOffset + 2u) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - timeoutInSeconds = emberAfGetInt16u(cmd->buffer, payloadOffset, cmd->bufLen); - payloadOffset += 2u; - if ((cmd->bufLen < payloadOffset + emberAfStringLength(cmd->buffer + payloadOffset) + 1u)) - { - // Argument is not always present: - // - it is present only in versions higher than: ha-1.2-05-3520-29 - pin = NULL; - } - else - { - pin = emberAfGetString(cmd->buffer, payloadOffset, cmd->bufLen); - } - wasHandled = emberAfDoorLockClusterUnlockWithTimeoutCallback(timeoutInSeconds, pin); - break; - } - case ZCL_GET_LOG_RECORD_COMMAND_ID: { - uint16_t payloadOffset = cmd->payloadStartIndex; - uint16_t logIndex; // Ver.: always - // Command is fixed length: 2 - if (cmd->bufLen < payloadOffset + 2u) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - logIndex = emberAfGetInt16u(cmd->buffer, payloadOffset, cmd->bufLen); - wasHandled = emberAfDoorLockClusterGetLogRecordCallback(logIndex); - break; - } - case ZCL_SET_PIN_COMMAND_ID: { - uint16_t payloadOffset = cmd->payloadStartIndex; - uint16_t userId; // Ver.: always - uint8_t userStatus; // Ver.: always - uint8_t userType; // Ver.: always - uint8_t * pin; // Ver.: always - // Command is not a fixed length - if (cmd->bufLen < payloadOffset + 2u) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - userId = emberAfGetInt16u(cmd->buffer, payloadOffset, cmd->bufLen); - payloadOffset += 2u; - if (cmd->bufLen < payloadOffset + 1u) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - userStatus = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); - payloadOffset += 1u; - if (cmd->bufLen < payloadOffset + 1u) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - userType = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); - payloadOffset += 1u; - if (cmd->bufLen < payloadOffset + emberAfStringLength(cmd->buffer + payloadOffset) + 1u) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - pin = emberAfGetString(cmd->buffer, payloadOffset, cmd->bufLen); - wasHandled = emberAfDoorLockClusterSetPinCallback(userId, userStatus, userType, pin); - break; - } - case ZCL_GET_PIN_COMMAND_ID: { - uint16_t payloadOffset = cmd->payloadStartIndex; - uint16_t userId; // Ver.: always - // Command is fixed length: 2 - if (cmd->bufLen < payloadOffset + 2u) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - userId = emberAfGetInt16u(cmd->buffer, payloadOffset, cmd->bufLen); - wasHandled = emberAfDoorLockClusterGetPinCallback(userId); - break; - } - case ZCL_CLEAR_PIN_COMMAND_ID: { - uint16_t payloadOffset = cmd->payloadStartIndex; - uint16_t userId; // Ver.: always - // Command is fixed length: 2 - if (cmd->bufLen < payloadOffset + 2u) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - userId = emberAfGetInt16u(cmd->buffer, payloadOffset, cmd->bufLen); - wasHandled = emberAfDoorLockClusterClearPinCallback(userId); - break; - } - case ZCL_CLEAR_ALL_PINS_COMMAND_ID: { - // Command is fixed length: 0 - wasHandled = emberAfDoorLockClusterClearAllPinsCallback(); - break; - } - case ZCL_SET_WEEKDAY_SCHEDULE_COMMAND_ID: { - uint16_t payloadOffset = cmd->payloadStartIndex; - uint8_t scheduleId; // Ver.: always - uint16_t userId; // Ver.: always - uint8_t daysMask; // Ver.: always - uint8_t startHour; // Ver.: always - uint8_t startMinute; // Ver.: always - uint8_t endHour; // Ver.: always - uint8_t endMinute; // Ver.: always - // Command is fixed length: 8 - if (cmd->bufLen < payloadOffset + 8u) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - scheduleId = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); - payloadOffset += 1u; - userId = emberAfGetInt16u(cmd->buffer, payloadOffset, cmd->bufLen); - payloadOffset += 2u; - daysMask = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); - payloadOffset += 1u; - startHour = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); - payloadOffset += 1u; - startMinute = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); - payloadOffset += 1u; - endHour = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); - payloadOffset += 1u; - endMinute = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); - wasHandled = emberAfDoorLockClusterSetWeekdayScheduleCallback(scheduleId, userId, daysMask, startHour, startMinute, - endHour, endMinute); - break; - } - case ZCL_GET_WEEKDAY_SCHEDULE_COMMAND_ID: { - uint16_t payloadOffset = cmd->payloadStartIndex; - uint8_t scheduleId; // Ver.: always - uint16_t userId; // Ver.: always - // Command is fixed length: 3 - if (cmd->bufLen < payloadOffset + 3u) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - scheduleId = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); - payloadOffset += 1u; - userId = emberAfGetInt16u(cmd->buffer, payloadOffset, cmd->bufLen); - wasHandled = emberAfDoorLockClusterGetWeekdayScheduleCallback(scheduleId, userId); - break; - } - case ZCL_CLEAR_WEEKDAY_SCHEDULE_COMMAND_ID: { - uint16_t payloadOffset = cmd->payloadStartIndex; - uint8_t scheduleId; // Ver.: always - uint16_t userId; // Ver.: always - // Command is fixed length: 3 - if (cmd->bufLen < payloadOffset + 3u) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - scheduleId = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); - payloadOffset += 1u; - userId = emberAfGetInt16u(cmd->buffer, payloadOffset, cmd->bufLen); - wasHandled = emberAfDoorLockClusterClearWeekdayScheduleCallback(scheduleId, userId); - break; - } - case ZCL_SET_YEARDAY_SCHEDULE_COMMAND_ID: { - uint16_t payloadOffset = cmd->payloadStartIndex; - uint8_t scheduleId; // Ver.: always - uint16_t userId; // Ver.: always - uint32_t localStartTime; // Ver.: always - uint32_t localEndTime; // Ver.: always - // Command is fixed length: 11 - if (cmd->bufLen < payloadOffset + 11u) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - scheduleId = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); - payloadOffset += 1u; - userId = emberAfGetInt16u(cmd->buffer, payloadOffset, cmd->bufLen); - payloadOffset += 2u; - localStartTime = emberAfGetInt32u(cmd->buffer, payloadOffset, cmd->bufLen); - payloadOffset += 4u; - localEndTime = emberAfGetInt32u(cmd->buffer, payloadOffset, cmd->bufLen); - wasHandled = emberAfDoorLockClusterSetYeardayScheduleCallback(scheduleId, userId, localStartTime, localEndTime); - break; - } - case ZCL_GET_YEARDAY_SCHEDULE_COMMAND_ID: { - uint16_t payloadOffset = cmd->payloadStartIndex; - uint8_t scheduleId; // Ver.: always - uint16_t userId; // Ver.: always - // Command is fixed length: 3 - if (cmd->bufLen < payloadOffset + 3u) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - scheduleId = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); - payloadOffset += 1u; - userId = emberAfGetInt16u(cmd->buffer, payloadOffset, cmd->bufLen); - wasHandled = emberAfDoorLockClusterGetYeardayScheduleCallback(scheduleId, userId); - break; - } - case ZCL_CLEAR_YEARDAY_SCHEDULE_COMMAND_ID: { - uint16_t payloadOffset = cmd->payloadStartIndex; - uint8_t scheduleId; // Ver.: always - uint16_t userId; // Ver.: always - // Command is fixed length: 3 - if (cmd->bufLen < payloadOffset + 3u) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - scheduleId = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); - payloadOffset += 1u; - userId = emberAfGetInt16u(cmd->buffer, payloadOffset, cmd->bufLen); - wasHandled = emberAfDoorLockClusterClearYeardayScheduleCallback(scheduleId, userId); - break; - } - case ZCL_SET_HOLIDAY_SCHEDULE_COMMAND_ID: { - uint16_t payloadOffset = cmd->payloadStartIndex; - uint8_t scheduleId; // Ver.: always - uint32_t localStartTime; // Ver.: always - uint32_t localEndTime; // Ver.: always - uint8_t operatingModeDuringHoliday; // Ver.: always - // Command is fixed length: 10 - if (cmd->bufLen < payloadOffset + 10u) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - scheduleId = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); - payloadOffset += 1u; - localStartTime = emberAfGetInt32u(cmd->buffer, payloadOffset, cmd->bufLen); - payloadOffset += 4u; - localEndTime = emberAfGetInt32u(cmd->buffer, payloadOffset, cmd->bufLen); - payloadOffset += 4u; - operatingModeDuringHoliday = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); - wasHandled = emberAfDoorLockClusterSetHolidayScheduleCallback(scheduleId, localStartTime, localEndTime, - operatingModeDuringHoliday); - break; - } - case ZCL_GET_HOLIDAY_SCHEDULE_COMMAND_ID: { - uint16_t payloadOffset = cmd->payloadStartIndex; - uint8_t scheduleId; // Ver.: always - // Command is fixed length: 1 - if (cmd->bufLen < payloadOffset + 1u) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - scheduleId = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); - wasHandled = emberAfDoorLockClusterGetHolidayScheduleCallback(scheduleId); - break; - } - case ZCL_CLEAR_HOLIDAY_SCHEDULE_COMMAND_ID: { - uint16_t payloadOffset = cmd->payloadStartIndex; - uint8_t scheduleId; // Ver.: always - // Command is fixed length: 1 - if (cmd->bufLen < payloadOffset + 1u) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - scheduleId = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); - wasHandled = emberAfDoorLockClusterClearHolidayScheduleCallback(scheduleId); - break; - } - case ZCL_SET_USER_TYPE_COMMAND_ID: { - uint16_t payloadOffset = cmd->payloadStartIndex; - uint16_t userId; // Ver.: always - uint8_t userType; // Ver.: always - // Command is fixed length: 3 - if (cmd->bufLen < payloadOffset + 3u) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - userId = emberAfGetInt16u(cmd->buffer, payloadOffset, cmd->bufLen); - payloadOffset += 2u; - userType = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); - wasHandled = emberAfDoorLockClusterSetUserTypeCallback(userId, userType); - break; - } - case ZCL_GET_USER_TYPE_COMMAND_ID: { - uint16_t payloadOffset = cmd->payloadStartIndex; - uint16_t userId; // Ver.: always - // Command is fixed length: 2 - if (cmd->bufLen < payloadOffset + 2u) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - userId = emberAfGetInt16u(cmd->buffer, payloadOffset, cmd->bufLen); - wasHandled = emberAfDoorLockClusterGetUserTypeCallback(userId); - break; - } - case ZCL_SET_RFID_COMMAND_ID: { - uint16_t payloadOffset = cmd->payloadStartIndex; - uint16_t userId; // Ver.: always - uint8_t userStatus; // Ver.: always - uint8_t userType; // Ver.: always - uint8_t * id; // Ver.: always - // Command is not a fixed length - if (cmd->bufLen < payloadOffset + 2u) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - userId = emberAfGetInt16u(cmd->buffer, payloadOffset, cmd->bufLen); - payloadOffset += 2u; - if (cmd->bufLen < payloadOffset + 1u) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - userStatus = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); - payloadOffset += 1u; - if (cmd->bufLen < payloadOffset + 1u) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - userType = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); - payloadOffset += 1u; - if (cmd->bufLen < payloadOffset + emberAfStringLength(cmd->buffer + payloadOffset) + 1u) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - id = emberAfGetString(cmd->buffer, payloadOffset, cmd->bufLen); - wasHandled = emberAfDoorLockClusterSetRfidCallback(userId, userStatus, userType, id); - break; - } - case ZCL_GET_RFID_COMMAND_ID: { - uint16_t payloadOffset = cmd->payloadStartIndex; - uint16_t userId; // Ver.: always - // Command is fixed length: 2 - if (cmd->bufLen < payloadOffset + 2u) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - userId = emberAfGetInt16u(cmd->buffer, payloadOffset, cmd->bufLen); - wasHandled = emberAfDoorLockClusterGetRfidCallback(userId); - break; - } - case ZCL_CLEAR_RFID_COMMAND_ID: { - uint16_t payloadOffset = cmd->payloadStartIndex; - uint16_t userId; // Ver.: always - // Command is fixed length: 2 - if (cmd->bufLen < payloadOffset + 2u) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - userId = emberAfGetInt16u(cmd->buffer, payloadOffset, cmd->bufLen); - wasHandled = emberAfDoorLockClusterClearRfidCallback(userId); - break; - } - case ZCL_CLEAR_ALL_RFIDS_COMMAND_ID: { - // Command is fixed length: 0 - wasHandled = emberAfDoorLockClusterClearAllRfidsCallback(); - break; - } - default: { - // Unrecognized command ID, error status will apply. - break; - } - } - } - return status(wasHandled, true, cmd->mfgSpecific); -} - -// Cluster: Barrier Control, server -EmberAfStatus emberAfBarrierControlClusterServerCommandParse(EmberAfClusterCommand * cmd) -{ - bool wasHandled = false; - if (!cmd->mfgSpecific) - { - switch (cmd->commandId) - { - case ZCL_BARRIER_CONTROL_GO_TO_PERCENT_COMMAND_ID: { - uint16_t payloadOffset = cmd->payloadStartIndex; - uint8_t percentOpen; // Ver.: always - // Command is fixed length: 1 - if (cmd->bufLen < payloadOffset + 1u) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - percentOpen = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); - wasHandled = emberAfBarrierControlClusterBarrierControlGoToPercentCallback(percentOpen); - break; - } - case ZCL_BARRIER_CONTROL_STOP_COMMAND_ID: { - // Command is fixed length: 0 - wasHandled = emberAfBarrierControlClusterBarrierControlStopCallback(); - break; - } - default: { - // Unrecognized command ID, error status will apply. - break; - } - } - } - return status(wasHandled, true, cmd->mfgSpecific); -} - -// Cluster: Color Control, server -EmberAfStatus emberAfColorControlClusterServerCommandParse(EmberAfClusterCommand * cmd) -{ - bool wasHandled = false; - if (!cmd->mfgSpecific) - { - switch (cmd->commandId) - { - case ZCL_MOVE_TO_HUE_COMMAND_ID: { - uint16_t payloadOffset = cmd->payloadStartIndex; - uint8_t hue; // Ver.: always - uint8_t direction; // Ver.: always - uint16_t transitionTime; // Ver.: always - uint8_t optionsMask; // Ver.: since zcl6-errata-14-0129-15 - uint8_t optionsOverride; // Ver.: since zcl6-errata-14-0129-15 - // Command is not a fixed length - if (cmd->bufLen < payloadOffset + 1u) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - hue = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); - payloadOffset += 1u; - if (cmd->bufLen < payloadOffset + 1u) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - direction = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); - payloadOffset += 1u; - if (cmd->bufLen < payloadOffset + 2u) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - transitionTime = emberAfGetInt16u(cmd->buffer, payloadOffset, cmd->bufLen); - payloadOffset += 2u; - if ((cmd->bufLen < payloadOffset + 1u)) - { - // Argument is not always present: - // - it is present only in versions higher than: zcl6-errata-14-0129-15 - optionsMask = 0xFF; - } - else - { - optionsMask = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); - payloadOffset += 1u; - } - if ((cmd->bufLen < payloadOffset + 1u)) - { - // Argument is not always present: - // - it is present only in versions higher than: zcl6-errata-14-0129-15 - optionsOverride = 0xFF; - } - else - { - optionsOverride = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); - } - wasHandled = emberAfColorControlClusterMoveToHueCallback(hue, direction, transitionTime, optionsMask, optionsOverride); - break; - } - case ZCL_MOVE_HUE_COMMAND_ID: { - uint16_t payloadOffset = cmd->payloadStartIndex; - uint8_t moveMode; // Ver.: always - uint8_t rate; // Ver.: always - uint8_t optionsMask; // Ver.: since zcl6-errata-14-0129-15 - uint8_t optionsOverride; // Ver.: since zcl6-errata-14-0129-15 - // Command is not a fixed length - if (cmd->bufLen < payloadOffset + 1u) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - moveMode = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); - payloadOffset += 1u; - if (cmd->bufLen < payloadOffset + 1u) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - rate = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); - payloadOffset += 1u; - if ((cmd->bufLen < payloadOffset + 1u)) - { - // Argument is not always present: - // - it is present only in versions higher than: zcl6-errata-14-0129-15 - optionsMask = 0xFF; - } - else - { - optionsMask = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); - payloadOffset += 1u; - } - if ((cmd->bufLen < payloadOffset + 1u)) - { - // Argument is not always present: - // - it is present only in versions higher than: zcl6-errata-14-0129-15 - optionsOverride = 0xFF; - } - else - { - optionsOverride = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); - } - wasHandled = emberAfColorControlClusterMoveHueCallback(moveMode, rate, optionsMask, optionsOverride); - break; - } - case ZCL_STEP_HUE_COMMAND_ID: { - uint16_t payloadOffset = cmd->payloadStartIndex; - uint8_t stepMode; // Ver.: always - uint8_t stepSize; // Ver.: always - uint8_t transitionTime; // Ver.: always - uint8_t optionsMask; // Ver.: since zcl6-errata-14-0129-15 - uint8_t optionsOverride; // Ver.: since zcl6-errata-14-0129-15 - // Command is not a fixed length - if (cmd->bufLen < payloadOffset + 1u) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - stepMode = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); - payloadOffset += 1u; - if (cmd->bufLen < payloadOffset + 1u) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - stepSize = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); - payloadOffset += 1u; - if (cmd->bufLen < payloadOffset + 1u) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - transitionTime = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); - payloadOffset += 1u; - if ((cmd->bufLen < payloadOffset + 1u)) - { - // Argument is not always present: - // - it is present only in versions higher than: zcl6-errata-14-0129-15 - optionsMask = 0xFF; - } - else - { - optionsMask = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); - payloadOffset += 1u; - } - if ((cmd->bufLen < payloadOffset + 1u)) - { - // Argument is not always present: - // - it is present only in versions higher than: zcl6-errata-14-0129-15 - optionsOverride = 0xFF; - } - else - { - optionsOverride = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); - } - wasHandled = - emberAfColorControlClusterStepHueCallback(stepMode, stepSize, transitionTime, optionsMask, optionsOverride); - break; - } - case ZCL_MOVE_TO_SATURATION_COMMAND_ID: { - uint16_t payloadOffset = cmd->payloadStartIndex; - uint8_t saturation; // Ver.: always - uint16_t transitionTime; // Ver.: always - uint8_t optionsMask; // Ver.: since zcl6-errata-14-0129-15 - uint8_t optionsOverride; // Ver.: since zcl6-errata-14-0129-15 - // Command is not a fixed length - if (cmd->bufLen < payloadOffset + 1u) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - saturation = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); - payloadOffset += 1u; - if (cmd->bufLen < payloadOffset + 2u) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - transitionTime = emberAfGetInt16u(cmd->buffer, payloadOffset, cmd->bufLen); - payloadOffset += 2u; - if ((cmd->bufLen < payloadOffset + 1u)) - { - // Argument is not always present: - // - it is present only in versions higher than: zcl6-errata-14-0129-15 - optionsMask = 0xFF; - } - else - { - optionsMask = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); - payloadOffset += 1u; - } - if ((cmd->bufLen < payloadOffset + 1u)) - { - // Argument is not always present: - // - it is present only in versions higher than: zcl6-errata-14-0129-15 - optionsOverride = 0xFF; - } - else - { - optionsOverride = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); - } - wasHandled = - emberAfColorControlClusterMoveToSaturationCallback(saturation, transitionTime, optionsMask, optionsOverride); - break; - } - case ZCL_MOVE_SATURATION_COMMAND_ID: { - uint16_t payloadOffset = cmd->payloadStartIndex; - uint8_t moveMode; // Ver.: always - uint8_t rate; // Ver.: always - uint8_t optionsMask; // Ver.: since zcl6-errata-14-0129-15 - uint8_t optionsOverride; // Ver.: since zcl6-errata-14-0129-15 - // Command is not a fixed length - if (cmd->bufLen < payloadOffset + 1u) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - moveMode = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); - payloadOffset += 1u; - if (cmd->bufLen < payloadOffset + 1u) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - rate = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); - payloadOffset += 1u; - if ((cmd->bufLen < payloadOffset + 1u)) - { - // Argument is not always present: - // - it is present only in versions higher than: zcl6-errata-14-0129-15 - optionsMask = 0xFF; - } - else - { - optionsMask = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); - payloadOffset += 1u; - } - if ((cmd->bufLen < payloadOffset + 1u)) - { - // Argument is not always present: - // - it is present only in versions higher than: zcl6-errata-14-0129-15 - optionsOverride = 0xFF; - } - else - { - optionsOverride = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); - } - wasHandled = emberAfColorControlClusterMoveSaturationCallback(moveMode, rate, optionsMask, optionsOverride); - break; - } - case ZCL_STEP_SATURATION_COMMAND_ID: { - uint16_t payloadOffset = cmd->payloadStartIndex; - uint8_t stepMode; // Ver.: always - uint8_t stepSize; // Ver.: always - uint8_t transitionTime; // Ver.: always - uint8_t optionsMask; // Ver.: since zcl6-errata-14-0129-15 - uint8_t optionsOverride; // Ver.: since zcl6-errata-14-0129-15 - // Command is not a fixed length - if (cmd->bufLen < payloadOffset + 1u) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - stepMode = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); - payloadOffset += 1u; - if (cmd->bufLen < payloadOffset + 1u) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - stepSize = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); - payloadOffset += 1u; - if (cmd->bufLen < payloadOffset + 1u) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - transitionTime = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); - payloadOffset += 1u; - if ((cmd->bufLen < payloadOffset + 1u)) - { - // Argument is not always present: - // - it is present only in versions higher than: zcl6-errata-14-0129-15 - optionsMask = 0xFF; - } - else - { - optionsMask = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); - payloadOffset += 1u; - } - if ((cmd->bufLen < payloadOffset + 1u)) - { - // Argument is not always present: - // - it is present only in versions higher than: zcl6-errata-14-0129-15 - optionsOverride = 0xFF; - } - else - { - optionsOverride = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); - } - wasHandled = - emberAfColorControlClusterStepSaturationCallback(stepMode, stepSize, transitionTime, optionsMask, optionsOverride); - break; - } - case ZCL_MOVE_TO_HUE_AND_SATURATION_COMMAND_ID: { - uint16_t payloadOffset = cmd->payloadStartIndex; - uint8_t hue; // Ver.: always - uint8_t saturation; // Ver.: always - uint16_t transitionTime; // Ver.: always - uint8_t optionsMask; // Ver.: since zcl6-errata-14-0129-15 - uint8_t optionsOverride; // Ver.: since zcl6-errata-14-0129-15 - // Command is not a fixed length - if (cmd->bufLen < payloadOffset + 1u) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - hue = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); - payloadOffset += 1u; - if (cmd->bufLen < payloadOffset + 1u) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - saturation = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); - payloadOffset += 1u; - if (cmd->bufLen < payloadOffset + 2u) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - transitionTime = emberAfGetInt16u(cmd->buffer, payloadOffset, cmd->bufLen); - payloadOffset += 2u; - if ((cmd->bufLen < payloadOffset + 1u)) - { - // Argument is not always present: - // - it is present only in versions higher than: zcl6-errata-14-0129-15 - optionsMask = 0xFF; - } - else - { - optionsMask = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); - payloadOffset += 1u; - } - if ((cmd->bufLen < payloadOffset + 1u)) - { - // Argument is not always present: - // - it is present only in versions higher than: zcl6-errata-14-0129-15 - optionsOverride = 0xFF; - } - else - { - optionsOverride = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); - } - wasHandled = emberAfColorControlClusterMoveToHueAndSaturationCallback(hue, saturation, transitionTime, optionsMask, - optionsOverride); - break; - } - case ZCL_MOVE_TO_COLOR_COMMAND_ID: { - uint16_t payloadOffset = cmd->payloadStartIndex; - uint16_t colorX; // Ver.: always - uint16_t colorY; // Ver.: always - uint16_t transitionTime; // Ver.: always - uint8_t optionsMask; // Ver.: since zcl6-errata-14-0129-15 - uint8_t optionsOverride; // Ver.: since zcl6-errata-14-0129-15 - // Command is not a fixed length - if (cmd->bufLen < payloadOffset + 2u) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - colorX = emberAfGetInt16u(cmd->buffer, payloadOffset, cmd->bufLen); - payloadOffset += 2u; - if (cmd->bufLen < payloadOffset + 2u) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - colorY = emberAfGetInt16u(cmd->buffer, payloadOffset, cmd->bufLen); - payloadOffset += 2u; - if (cmd->bufLen < payloadOffset + 2u) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - transitionTime = emberAfGetInt16u(cmd->buffer, payloadOffset, cmd->bufLen); - payloadOffset += 2u; - if ((cmd->bufLen < payloadOffset + 1u)) - { - // Argument is not always present: - // - it is present only in versions higher than: zcl6-errata-14-0129-15 - optionsMask = 0xFF; - } - else - { - optionsMask = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); - payloadOffset += 1u; - } - if ((cmd->bufLen < payloadOffset + 1u)) - { - // Argument is not always present: - // - it is present only in versions higher than: zcl6-errata-14-0129-15 - optionsOverride = 0xFF; - } - else - { - optionsOverride = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); - } - wasHandled = - emberAfColorControlClusterMoveToColorCallback(colorX, colorY, transitionTime, optionsMask, optionsOverride); - break; - } - case ZCL_MOVE_COLOR_COMMAND_ID: { - uint16_t payloadOffset = cmd->payloadStartIndex; - int16_t rateX; // Ver.: always - int16_t rateY; // Ver.: always - uint8_t optionsMask; // Ver.: since zcl6-errata-14-0129-15 - uint8_t optionsOverride; // Ver.: since zcl6-errata-14-0129-15 - // Command is not a fixed length - if (cmd->bufLen < payloadOffset + 2u) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - rateX = emberAfGetInt16u(cmd->buffer, payloadOffset, cmd->bufLen); - payloadOffset += 2u; - if (cmd->bufLen < payloadOffset + 2u) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - rateY = emberAfGetInt16u(cmd->buffer, payloadOffset, cmd->bufLen); - payloadOffset += 2u; - if ((cmd->bufLen < payloadOffset + 1u)) - { - // Argument is not always present: - // - it is present only in versions higher than: zcl6-errata-14-0129-15 - optionsMask = 0xFF; - } - else - { - optionsMask = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); - payloadOffset += 1u; - } - if ((cmd->bufLen < payloadOffset + 1u)) - { - // Argument is not always present: - // - it is present only in versions higher than: zcl6-errata-14-0129-15 - optionsOverride = 0xFF; - } - else - { - optionsOverride = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); - } - wasHandled = emberAfColorControlClusterMoveColorCallback(rateX, rateY, optionsMask, optionsOverride); - break; - } - case ZCL_STEP_COLOR_COMMAND_ID: { - uint16_t payloadOffset = cmd->payloadStartIndex; - int16_t stepX; // Ver.: always - int16_t stepY; // Ver.: always - uint16_t transitionTime; // Ver.: always - uint8_t optionsMask; // Ver.: since zcl6-errata-14-0129-15 - uint8_t optionsOverride; // Ver.: since zcl6-errata-14-0129-15 - // Command is not a fixed length - if (cmd->bufLen < payloadOffset + 2u) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - stepX = emberAfGetInt16u(cmd->buffer, payloadOffset, cmd->bufLen); - payloadOffset += 2u; - if (cmd->bufLen < payloadOffset + 2u) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - stepY = emberAfGetInt16u(cmd->buffer, payloadOffset, cmd->bufLen); - payloadOffset += 2u; - if (cmd->bufLen < payloadOffset + 2u) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - transitionTime = emberAfGetInt16u(cmd->buffer, payloadOffset, cmd->bufLen); - payloadOffset += 2u; - if ((cmd->bufLen < payloadOffset + 1u)) - { - // Argument is not always present: - // - it is present only in versions higher than: zcl6-errata-14-0129-15 - optionsMask = 0xFF; - } - else - { - optionsMask = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); - payloadOffset += 1u; - } - if ((cmd->bufLen < payloadOffset + 1u)) - { - // Argument is not always present: - // - it is present only in versions higher than: zcl6-errata-14-0129-15 - optionsOverride = 0xFF; - } - else - { - optionsOverride = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); - } - wasHandled = emberAfColorControlClusterStepColorCallback(stepX, stepY, transitionTime, optionsMask, optionsOverride); - break; - } - case ZCL_MOVE_TO_COLOR_TEMPERATURE_COMMAND_ID: { - uint16_t payloadOffset = cmd->payloadStartIndex; - uint16_t colorTemperature; // Ver.: always - uint16_t transitionTime; // Ver.: always - uint8_t optionsMask; // Ver.: since zcl6-errata-14-0129-15 - uint8_t optionsOverride; // Ver.: since zcl6-errata-14-0129-15 - // Command is not a fixed length - if (cmd->bufLen < payloadOffset + 2u) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - colorTemperature = emberAfGetInt16u(cmd->buffer, payloadOffset, cmd->bufLen); - payloadOffset += 2u; - if (cmd->bufLen < payloadOffset + 2u) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - transitionTime = emberAfGetInt16u(cmd->buffer, payloadOffset, cmd->bufLen); - payloadOffset += 2u; - if ((cmd->bufLen < payloadOffset + 1u)) - { - // Argument is not always present: - // - it is present only in versions higher than: zcl6-errata-14-0129-15 - optionsMask = 0xFF; - } - else - { - optionsMask = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); - payloadOffset += 1u; - } - if ((cmd->bufLen < payloadOffset + 1u)) - { - // Argument is not always present: - // - it is present only in versions higher than: zcl6-errata-14-0129-15 - optionsOverride = 0xFF; - } - else - { - optionsOverride = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); - } - wasHandled = emberAfColorControlClusterMoveToColorTemperatureCallback(colorTemperature, transitionTime, optionsMask, - optionsOverride); - break; - } - case ZCL_STOP_MOVE_STEP_COMMAND_ID: { - uint16_t payloadOffset = cmd->payloadStartIndex; - uint8_t optionsMask; // Ver.: since zcl6-errata-14-0129-15 - uint8_t optionsOverride; // Ver.: since zcl6-errata-14-0129-15 - // Command is not a fixed length - if ((cmd->bufLen < payloadOffset + 1u)) - { - // Argument is not always present: - // - it is present only in versions higher than: zcl6-errata-14-0129-15 - optionsMask = 0xFF; - } - else - { - optionsMask = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); - payloadOffset += 1u; - } - if ((cmd->bufLen < payloadOffset + 1u)) - { - // Argument is not always present: - // - it is present only in versions higher than: zcl6-errata-14-0129-15 - optionsOverride = 0xFF; - } - else - { - optionsOverride = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); - } - wasHandled = emberAfColorControlClusterStopMoveStepCallback(optionsMask, optionsOverride); - break; - } - case ZCL_MOVE_COLOR_TEMPERATURE_COMMAND_ID: { - uint16_t payloadOffset = cmd->payloadStartIndex; - uint8_t moveMode; // Ver.: always - uint16_t rate; // Ver.: always - uint16_t colorTemperatureMinimum; // Ver.: always - uint16_t colorTemperatureMaximum; // Ver.: always - uint8_t optionsMask; // Ver.: since zcl6-errata-14-0129-15 - uint8_t optionsOverride; // Ver.: since zcl6-errata-14-0129-15 - // Command is not a fixed length - if (cmd->bufLen < payloadOffset + 1u) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - moveMode = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); - payloadOffset += 1u; - if (cmd->bufLen < payloadOffset + 2u) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - rate = emberAfGetInt16u(cmd->buffer, payloadOffset, cmd->bufLen); - payloadOffset += 2u; - if (cmd->bufLen < payloadOffset + 2u) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - colorTemperatureMinimum = emberAfGetInt16u(cmd->buffer, payloadOffset, cmd->bufLen); - payloadOffset += 2u; - if (cmd->bufLen < payloadOffset + 2u) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - colorTemperatureMaximum = emberAfGetInt16u(cmd->buffer, payloadOffset, cmd->bufLen); - payloadOffset += 2u; - if ((cmd->bufLen < payloadOffset + 1u)) - { - // Argument is not always present: - // - it is present only in versions higher than: zcl6-errata-14-0129-15 - optionsMask = 0xFF; - } - else - { - optionsMask = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); - payloadOffset += 1u; - } - if ((cmd->bufLen < payloadOffset + 1u)) - { - // Argument is not always present: - // - it is present only in versions higher than: zcl6-errata-14-0129-15 - optionsOverride = 0xFF; - } - else - { - optionsOverride = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); - } - wasHandled = emberAfColorControlClusterMoveColorTemperatureCallback( - moveMode, rate, colorTemperatureMinimum, colorTemperatureMaximum, optionsMask, optionsOverride); - break; - } - case ZCL_STEP_COLOR_TEMPERATURE_COMMAND_ID: { - uint16_t payloadOffset = cmd->payloadStartIndex; - uint8_t stepMode; // Ver.: always - uint16_t stepSize; // Ver.: always - uint16_t transitionTime; // Ver.: always - uint16_t colorTemperatureMinimum; // Ver.: always - uint16_t colorTemperatureMaximum; // Ver.: always - uint8_t optionsMask; // Ver.: since zcl6-errata-14-0129-15 - uint8_t optionsOverride; // Ver.: since zcl6-errata-14-0129-15 - // Command is not a fixed length - if (cmd->bufLen < payloadOffset + 1u) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - stepMode = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); - payloadOffset += 1u; - if (cmd->bufLen < payloadOffset + 2u) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - stepSize = emberAfGetInt16u(cmd->buffer, payloadOffset, cmd->bufLen); - payloadOffset += 2u; - if (cmd->bufLen < payloadOffset + 2u) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - transitionTime = emberAfGetInt16u(cmd->buffer, payloadOffset, cmd->bufLen); - payloadOffset += 2u; - if (cmd->bufLen < payloadOffset + 2u) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - colorTemperatureMinimum = emberAfGetInt16u(cmd->buffer, payloadOffset, cmd->bufLen); - payloadOffset += 2u; - if (cmd->bufLen < payloadOffset + 2u) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - colorTemperatureMaximum = emberAfGetInt16u(cmd->buffer, payloadOffset, cmd->bufLen); - payloadOffset += 2u; - if ((cmd->bufLen < payloadOffset + 1u)) - { - // Argument is not always present: - // - it is present only in versions higher than: zcl6-errata-14-0129-15 - optionsMask = 0xFF; - } - else - { - optionsMask = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); - payloadOffset += 1u; - } - if ((cmd->bufLen < payloadOffset + 1u)) - { - // Argument is not always present: - // - it is present only in versions higher than: zcl6-errata-14-0129-15 - optionsOverride = 0xFF; - } - else - { - optionsOverride = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); - } - wasHandled = emberAfColorControlClusterStepColorTemperatureCallback( - stepMode, stepSize, transitionTime, colorTemperatureMinimum, colorTemperatureMaximum, optionsMask, optionsOverride); - break; - } - default: { - // Unrecognized command ID, error status will apply. - break; - } - } - } - return status(wasHandled, true, cmd->mfgSpecific); -} - -// Cluster: IAS Zone, client -EmberAfStatus emberAfIasZoneClusterClientCommandParse(EmberAfClusterCommand * cmd) -{ - bool wasHandled = false; - if (!cmd->mfgSpecific) - { - switch (cmd->commandId) - { - case ZCL_ZONE_STATUS_CHANGE_NOTIFICATION_COMMAND_ID: { - uint16_t payloadOffset = cmd->payloadStartIndex; - uint16_t zoneStatus; // Ver.: always - uint8_t extendedStatus; // Ver.: always - uint8_t zoneId; // Ver.: since ha-1.2-05-3520-29 - uint16_t delay; // Ver.: since ha-1.2-05-3520-29 - // Command is not a fixed length - if (cmd->bufLen < payloadOffset + 2u) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - zoneStatus = emberAfGetInt16u(cmd->buffer, payloadOffset, cmd->bufLen); - payloadOffset += 2u; - if (cmd->bufLen < payloadOffset + 1u) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - extendedStatus = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); - payloadOffset += 1u; - if ((cmd->bufLen < payloadOffset + 1u)) - { - // Argument is not always present: - // - it is present only in versions higher than: ha-1.2-05-3520-29 - zoneId = 0xFF; - } - else - { - zoneId = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); - payloadOffset += 1u; - } - if ((cmd->bufLen < payloadOffset + 2u)) - { - // Argument is not always present: - // - it is present only in versions higher than: ha-1.2-05-3520-29 - delay = 0xFFFF; - } - else - { - delay = emberAfGetInt16u(cmd->buffer, payloadOffset, cmd->bufLen); - } - wasHandled = emberAfIasZoneClusterZoneStatusChangeNotificationCallback(zoneStatus, extendedStatus, zoneId, delay); - break; - } - case ZCL_ZONE_ENROLL_REQUEST_COMMAND_ID: { - uint16_t payloadOffset = cmd->payloadStartIndex; - uint16_t zoneType; // Ver.: always - uint16_t manufacturerCode; // Ver.: always - // Command is fixed length: 4 - if (cmd->bufLen < payloadOffset + 4u) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - zoneType = emberAfGetInt16u(cmd->buffer, payloadOffset, cmd->bufLen); - payloadOffset += 2u; - manufacturerCode = emberAfGetInt16u(cmd->buffer, payloadOffset, cmd->bufLen); - wasHandled = emberAfIasZoneClusterZoneEnrollRequestCallback(zoneType, manufacturerCode); - break; - } - default: { - // Unrecognized command ID, error status will apply. - break; - } - } - } - return status(wasHandled, true, cmd->mfgSpecific); -} - -// Cluster: IAS Zone, server -EmberAfStatus emberAfIasZoneClusterServerCommandParse(EmberAfClusterCommand * cmd) -{ - bool wasHandled = false; - if (!cmd->mfgSpecific) - { - switch (cmd->commandId) - { - case ZCL_ZONE_ENROLL_RESPONSE_COMMAND_ID: { - uint16_t payloadOffset = cmd->payloadStartIndex; - uint8_t enrollResponseCode; // Ver.: always - uint8_t zoneId; // Ver.: always - // Command is fixed length: 2 - if (cmd->bufLen < payloadOffset + 2u) - { - return EMBER_ZCL_STATUS_MALFORMED_COMMAND; - } - enrollResponseCode = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); - payloadOffset += 1u; - zoneId = emberAfGetInt8u(cmd->buffer, payloadOffset, cmd->bufLen); - wasHandled = emberAfIasZoneClusterZoneEnrollResponseCallback(enrollResponseCode, zoneId); - break; - } - default: { - // Unrecognized command ID, error status will apply. - break; - } - } - } - return status(wasHandled, true, cmd->mfgSpecific); -} diff --git a/examples/wifi-echo/server/esp32/main/gen/call-command-handler.h b/examples/wifi-echo/server/esp32/main/gen/call-command-handler.h deleted file mode 100644 index 1a776662d5dd19..00000000000000 --- a/examples/wifi-echo/server/esp32/main/gen/call-command-handler.h +++ /dev/null @@ -1,89 +0,0 @@ -/** - * - * 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 SILABS_EMBER_AF_COMMAND_PARSE_HEADER -#define SILABS_EMBER_AF_COMMAND_PARSE_HEADER - -#include "af-types.h" - -// This is a set of generated prototype for functions that parse the -// the incomming message, and call appropriate command handler. - -// Cluster: Basic, server -EmberAfStatus emberAfBasicClusterServerCommandParse(EmberAfClusterCommand * cmd); - -// Cluster: Identify, client -EmberAfStatus emberAfIdentifyClusterClientCommandParse(EmberAfClusterCommand * cmd); - -// Cluster: Identify, server -EmberAfStatus emberAfIdentifyClusterServerCommandParse(EmberAfClusterCommand * cmd); - -// Cluster: Groups, client -EmberAfStatus emberAfGroupsClusterClientCommandParse(EmberAfClusterCommand * cmd); - -// Cluster: Groups, server -EmberAfStatus emberAfGroupsClusterServerCommandParse(EmberAfClusterCommand * cmd); - -// Cluster: Scenes, client -EmberAfStatus emberAfScenesClusterClientCommandParse(EmberAfClusterCommand * cmd); - -// Cluster: Scenes, server -EmberAfStatus emberAfScenesClusterServerCommandParse(EmberAfClusterCommand * cmd); - -// Cluster: On/off, server -EmberAfStatus emberAfOnOffClusterServerCommandParse(EmberAfClusterCommand * cmd); - -// Cluster: Level Control, server -EmberAfStatus emberAfLevelControlClusterServerCommandParse(EmberAfClusterCommand * cmd); - -// Cluster: Door Lock, server -EmberAfStatus emberAfDoorLockClusterServerCommandParse(EmberAfClusterCommand * cmd); - -// Cluster: Barrier Control, server -EmberAfStatus emberAfBarrierControlClusterServerCommandParse(EmberAfClusterCommand * cmd); - -// Cluster: Color Control, server -EmberAfStatus emberAfColorControlClusterServerCommandParse(EmberAfClusterCommand * cmd); - -// Cluster: IAS Zone, client -EmberAfStatus emberAfIasZoneClusterClientCommandParse(EmberAfClusterCommand * cmd); - -// Cluster: IAS Zone, server -EmberAfStatus emberAfIasZoneClusterServerCommandParse(EmberAfClusterCommand * cmd); - -#endif // SILABS_EMBER_AF_COMMAND_PARSE_HEADER diff --git a/examples/wifi-echo/server/esp32/main/gen/callback-stub.c b/examples/wifi-echo/server/esp32/main/gen/callback-stub.c deleted file mode 100644 index ed5f77ca89525a..00000000000000 --- a/examples/wifi-echo/server/esp32/main/gen/callback-stub.c +++ /dev/null @@ -1,2381 +0,0 @@ -/** - * - * 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. -// -// - -// This c file provides stubs for all callbacks. These stubs -// will be used in the case where user defined implementations -// of the callbacks have not been provided. -#include "af.h" -#include "callback.h" - -#include -//#include "hal/hal.h" -//#include EMBER_AF_API_NETWORK_STEERING - -/** @brief On/off Cluster Server Post Init - * - * Following resolution of the On/Off state at startup for this endpoint, - * perform any additional initialization needed; e.g., synchronize hardware - * state. - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfPluginOnOffClusterServerPostInitCallback(uint8_t endpoint) {} - -/** @brief Level Control Cluster Server Post Init - * - * Following resolution of the Current Level at startup for this endpoint, - * perform any additional initialization needed; e.g., synchronize hardware - * state. - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfPluginLevelControlClusterServerPostInitCallback(uint8_t endpoint) {} - -/** @brief Get Group Name - * - * This function returns the name of a group with the provided group ID, should - * it exist. - * - * @param endpoint Endpoint Ver.: always - * @param groupId Group ID Ver.: always - * @param groupName Group Name Ver.: always - */ -void emberAfPluginGroupsServerGetGroupNameCallback(uint8_t endpoint, uint16_t groupId, uint8_t * groupName) {} - -/** @brief Group Names Supported - * - * This function is called by the framework when it is necessary to determine - * whether or not group names are supported. - * - * @param endpoint The endpoint. Ver.: always - */ -bool emberAfPluginGroupsServerGroupNamesSupportedCallback(uint8_t endpoint) -{ - return false; -} - -/** @brief Set Group Name - * - * This function sets the name of a group with the provided group ID. - * - * @param endpoint Endpoint Ver.: always - * @param groupId Group ID Ver.: always - * @param groupName Group Name Ver.: always - */ -void emberAfPluginGroupsServerSetGroupNameCallback(uint8_t endpoint, uint16_t groupId, uint8_t * groupName) {} - -/** @brief Add To Current App Tasks - * - * This function is only useful to sleepy end devices. This function will note - * the passed item as part of a set of tasks the application has outstanding - * (e.g. message sent requiring APS acknwoledgement). This will affect how the - * application behaves with regard to sleeping and polling. Until the - * outstanding task is completed, the device may poll more frequently and sleep - * less often. - * - * @param tasks Ver.: always - */ -void emberAfAddToCurrentAppTasksCallback(EmberAfApplicationTask tasks) {} - -/** @brief Allow Network Write Attribute - * - * This function is called by the application framework before it writes an - * attribute in response to a write attribute request from an external device. - * The value passed into this callback is the value to which the attribute is to - * be set by the framework. - Example: In mirroring simple metering data - * on an Energy Services Interface (ESI) (formerly called Energy Service Portal - * (ESP) in SE 1.0).), a mirrored simple meter needs to write read-only - * attributes on its mirror. The-meter-mirror sample application, located in - * app/framework/sample-apps, uses this callback to allow the mirrored device to - * write simple metering attributes on the mirror regardless of the fact that - * most simple metering attributes are defined as read-only by the ZigBee - * specification. - Note: The ZCL specification does not (as of this - * writing) specify any permission-level security for writing writeable - * attributes. As far as the ZCL specification is concerned, if an attribute is - * writeable, any device that has a link key for the device should be able to - * write that attribute. Furthermore if an attribute is read only, it should not - * be written over the air. Thus, if you implement permissions for writing - * attributes as a feature, you MAY be operating outside the specification. This - * is unlikely to be a problem for writing read-only attributes, but it may be a - * problem for attributes that are writeable according to the specification but - * restricted by the application implementing this callback. - * - * @param endpoint Ver.: always - * @param clusterId Ver.: always - * @param attributeId Ver.: always - * @param mask Ver.: always - * @param manufacturerCode Ver.: always - * @param value Ver.: always - * @param type Ver.: always - */ -EmberAfAttributeWritePermission emberAfAllowNetworkWriteAttributeCallback(uint8_t endpoint, EmberAfClusterId clusterId, - EmberAfAttributeId attributeId, uint8_t mask, - uint16_t manufacturerCode, uint8_t * value, uint8_t type) -{ - return EMBER_ZCL_ATTRIBUTE_WRITE_PERMISSION_ALLOW_WRITE_NORMAL; // Default -} - -/** @brief Attribute Read Access - * - * This function is called whenever the Application Framework needs to check - * access permission for an attribute read. - * - * @param endpoint Ver.: always - * @param clusterId Ver.: always - * @param manufacturerCode Ver.: always - * @param attributeId Ver.: always - */ -bool emberAfAttributeReadAccessCallback(uint8_t endpoint, EmberAfClusterId clusterId, uint16_t manufacturerCode, - uint16_t attributeId) -{ - return true; -} - -/** @brief Attribute Write Access - * - * This function is called whenever the Application Framework needs to check - * access permission for an attribute write. - * - * @param endpoint Ver.: always - * @param clusterId Ver.: always - * @param manufacturerCode Ver.: always - * @param attributeId Ver.: always - */ -bool emberAfAttributeWriteAccessCallback(uint8_t endpoint, EmberAfClusterId clusterId, uint16_t manufacturerCode, - uint16_t attributeId) -{ - return true; -} - -/** @brief Key Establishment Cluster Client Command Received - * - * This function is called by the application framework when a server-to-client - * key establishment command is received but has yet to be handled by the - * framework code. This function should return a bool value indicating whether - * the command has been handled by the application code and should not be - * further processed by the framework. - * - * @param cmd Ver.: always - */ -bool emberAfKeyEstablishmentClusterClientCommandReceivedCallback(EmberAfClusterCommand * cmd) -{ - return false; -} - -/** @brief Cluster Init - * - * This function is called when a specific cluster is initialized. It gives the - * application an opportunity to take care of cluster initialization procedures. - * It is called exactly once for each endpoint where cluster is present. - * - * @param endpoint Ver.: always - * @param clusterId Ver.: always - */ -void emberAfClusterInitCallback(uint8_t endpoint, EmberAfClusterId clusterId) {} - -/** @brief Cluster Security Custom - * - * This callback is fired when determining if APS encryption is required for a - * cluster outside of the specification's required clusters. In other words, - * for the Smart Energy profile this would be a cluster beyond the list that - * normally requires APS encryption. - * - * @param profileId The profile ID Ver.: always - * @param clusterId The cluster ID Ver.: always - * @param incoming Whether this is an incoming or outgoing message. Ver.: - * always - * @param commandId The ZCL command ID being sent/received. Ver.: always - */ -bool emberAfClusterSecurityCustomCallback(EmberAfProfileId profileId, EmberAfClusterId clusterId, bool incoming, uint8_t commandId) -{ - // By default, assume APS encryption is not required. - return false; -} - -/** @brief Configure Reporting Response - * - * This function is called by the application framework when a Configure - * Reporting Response command is received from an external device. The - * application should return true if the message was processed or false if it - * was not. - * - * @param clusterId The cluster identifier of this response. Ver.: always - * @param buffer Buffer containing the list of attribute status records. Ver.: - * always - * @param bufLen The length in bytes of the list. Ver.: always - */ -bool emberAfConfigureReportingResponseCallback(EmberAfClusterId clusterId, uint8_t * buffer, uint16_t bufLen) -{ - return false; -} - -/** @brief Default Response - * - * This function is called by the application framework when a Default Response - * command is received from an external device. The application should return - * true if the message was processed or false if it was not. - * - * @param clusterId The cluster identifier of this response. Ver.: always - * @param commandId The command identifier to which this is a response. Ver.: - * always - * @param status Specifies either SUCCESS or the nature of the error that was - * detected in the received command. Ver.: always - */ -bool emberAfDefaultResponseCallback(EmberAfClusterId clusterId, uint8_t commandId, EmberAfStatus status) -{ - return false; -} - -/** @brief Discover Attributes Response - * - * This function is called by the application framework when a Discover - * Attributes Response or Discover Attributes Extended Response command is - * received from an external device. The Discover Attributes Response command - * contains a bool indicating if discovery is complete and a list of zero or - * more attribute identifier/type records. The final argument indicates whether - * the response is in the extended format or not. The application should return - * true if the message was processed or false if it was not. - * - * @param clusterId The cluster identifier of this response. Ver.: always - * @param discoveryComplete Indicates whether there are more attributes to be - * discovered. true if there are no more attributes to be discovered. Ver.: - * always - * @param buffer Buffer containing the list of attribute identifier/type - * records. Ver.: always - * @param bufLen The length in bytes of the list. Ver.: always - * @param extended Indicates whether the response is in the extended format or - * not. Ver.: always - */ -bool emberAfDiscoverAttributesResponseCallback(EmberAfClusterId clusterId, bool discoveryComplete, uint8_t * buffer, - uint16_t bufLen, bool extended) -{ - return false; -} - -/** @brief Discover Commands Generated Response - * - * This function is called by the framework when Discover Commands Generated - * Response is received. - * - * @param clusterId The cluster identifier of this response. Ver.: always - * @param manufacturerCode Manufacturer code Ver.: always - * @param discoveryComplete Indicates whether there are more commands to be - * discovered. Ver.: always - * @param commandIds Buffer containing the list of command identifiers. Ver.: - * always - * @param commandIdCount The length of bytes of the list, whish is the same as - * the number of identifiers. Ver.: always - */ -bool emberAfDiscoverCommandsGeneratedResponseCallback(EmberAfClusterId clusterId, uint16_t manufacturerCode, bool discoveryComplete, - uint8_t * commandIds, uint16_t commandIdCount) -{ - return false; -} - -/** @brief Discover Commands Received Response - * - * This function is called by the framework when Discover Commands Received - * Response is received. - * - * @param clusterId The cluster identifier of this response. Ver.: always - * @param manufacturerCode Manufacturer code Ver.: always - * @param discoveryComplete Indicates whether there are more commands to be - * discovered. Ver.: always - * @param commandIds Buffer containing the list of command identifiers. Ver.: - * always - * @param commandIdCount The length of bytes of the list, whish is the same as - * the number of identifiers. Ver.: always - */ -bool emberAfDiscoverCommandsReceivedResponseCallback(EmberAfClusterId clusterId, uint16_t manufacturerCode, bool discoveryComplete, - uint8_t * commandIds, uint16_t commandIdCount) -{ - return false; -} - -/** @brief Eeprom Init - * - * Tells the system to initialize the EEPROM if it is not already initialized. - * - */ -void emberAfEepromInitCallback(void) {} - -/** @brief Eeprom Note Initialized State - * - * Records the state of the EEPROM so that an intelligent driver (like the - * EEPROM plugin) can re-initialize the driver prior to any calls to it. - * - * @param state The state of the EEPROM, false=re-initalization needed, - * true=no-re-init needed Ver.: always - */ -void emberAfEepromNoteInitializedStateCallback(bool state) {} - -/** @brief Eeprom Shutdown - * - * Tells the system to shutdown the EEPROM if it is not already shutdown. - * - */ -void emberAfEepromShutdownCallback(void) {} - -/** @brief External Attribute Read - * - * Like emberAfExternalAttributeWriteCallback above, this function is called - * when the framework needs to read an attribute that is not stored within the - * Application Framework's data structures. - All of the important - * information about the attribute itself is passed as a pointer to an - * EmberAfAttributeMetadata struct, which is stored within the application and - * used to manage the attribute. A complete description of the - * EmberAfAttributeMetadata struct is provided in - * app/framework/include/af-types.h - This function assumes that the - * application is able to read the attribute, write it into the passed buffer, - * and return immediately. Any attributes that require a state machine for - * reading and writing are not really candidates for externalization at the - * present time. The Application Framework does not currently include a state - * machine for reading or writing attributes that must take place across a - * series of application ticks. Attributes that cannot be read in a timely - * manner should be stored within the Application Framework and updated - * occasionally by the application code from within the - * emberAfMainTickCallback. - If the application was successfully able to - * read the attribute and write it into the passed buffer, it should return a - * value of EMBER_ZCL_STATUS_SUCCESS. Ensure that the size of the externally - * managed attribute value is smaller than what the buffer can hold. In the case - * of a buffer overflow throw an appropriate error such as - * EMBER_ZCL_STATUS_INSUFFICIENT_SPACE. Any other return value indicates the - * application was not able to read the attribute. - * - * @param endpoint Ver.: always - * @param clusterId Ver.: always - * @param attributeMetadata Ver.: always - * @param manufacturerCode Ver.: always - * @param buffer Ver.: always - * @param maxReadLength Ver.: always - */ -EmberAfStatus emberAfExternalAttributeReadCallback(uint8_t endpoint, EmberAfClusterId clusterId, - EmberAfAttributeMetadata * attributeMetadata, uint16_t manufacturerCode, - uint8_t * buffer, uint16_t maxReadLength) -{ - return EMBER_ZCL_STATUS_FAILURE; -} - -/** @brief External Attribute Write - * - * This function is called whenever the Application Framework needs to write an - * attribute which is not stored within the data structures of the Application - * Framework itself. One of the new features in Version 2 is the ability to - * store attributes outside the Framework. This is particularly useful for - * attributes that do not need to be stored because they can be read off the - * hardware when they are needed, or are stored in some central location used by - * many modules within the system. In this case, you can indicate that the - * attribute is stored externally. When the framework needs to write an external - * attribute, it makes a call to this callback. - This callback is very - * useful for host micros which need to store attributes in persistent memory. - * Because each host micro (used with an Ember NCP) has its own type of - * persistent memory storage, the Application Framework does not include the - * ability to mark attributes as stored in flash the way that it does for Ember - * SoCs like the EM35x. On a host micro, any attributes that need to be stored - * in persistent memory should be marked as external and accessed through the - * external read and write callbacks. Any host code associated with the - * persistent storage should be implemented within this callback. - All of - * the important information about the attribute itself is passed as a pointer - * to an EmberAfAttributeMetadata struct, which is stored within the application - * and used to manage the attribute. A complete description of the - * EmberAfAttributeMetadata struct is provided in - * app/framework/include/af-types.h. - This function assumes that the - * application is able to write the attribute and return immediately. Any - * attributes that require a state machine for reading and writing are not - * candidates for externalization at the present time. The Application Framework - * does not currently include a state machine for reading or writing attributes - * that must take place across a series of application ticks. Attributes that - * cannot be written immediately should be stored within the Application - * Framework and updated occasionally by the application code from within the - * emberAfMainTickCallback. - If the application was successfully able to - * write the attribute, it returns a value of EMBER_ZCL_STATUS_SUCCESS. Any - * other return value indicates the application was not able to write the - * attribute. - * - * @param endpoint Ver.: always - * @param clusterId Ver.: always - * @param attributeMetadata Ver.: always - * @param manufacturerCode Ver.: always - * @param buffer Ver.: always - */ -EmberAfStatus emberAfExternalAttributeWriteCallback(uint8_t endpoint, EmberAfClusterId clusterId, - EmberAfAttributeMetadata * attributeMetadata, uint16_t manufacturerCode, - uint8_t * buffer) -{ - return EMBER_ZCL_STATUS_FAILURE; -} - -/** @brief Find Unused Pan Id And Form - * - * This function is called by the framework to search for an unused PAN id and - * form a new network. The application should return EMBER_SUCCESS if the - * operation was initiated successfully. - * - */ -EmberStatus emberAfFindUnusedPanIdAndFormCallback(void) -{ - return EMBER_LIBRARY_NOT_PRESENT; -} - -/** @brief Get Current App Tasks - * - * This function is only useful to sleepy end devices. This function will - * return the set of tasks the application has outstanding. These tasks affect - * how the application behaves with regard to sleeping and polling. - * - */ -EmberAfApplicationTask emberAfGetCurrentAppTasksCallback(void) -{ - return 0; -} - -/** @brief Get Current Poll Control - * - * This function will retrieve the current poll control that the system is using - * for the current network. This is determined by examining all the scheduled - * events and obtaining the most restrictive poll control context across all - * events. The most restrictive poll control is EMBER_AF_SHORT_POLL followed by - * EMBER_AF_LONG_POLL. - * - */ -EmberAfEventPollControl emberAfGetCurrentPollControlCallback(void) -{ - return EMBER_AF_LONG_POLL; -} - -/** @brief Get Current Poll Interval Ms - * - * This function is only useful to end devices. This function will return the - * current poll interval (in milliseconds) for the current network. This - * interval is the maximum amount of time a child is currently waiting between - * polls of its parent. - * - */ -uint32_t emberAfGetCurrentPollIntervalMsCallback(void) -{ - return 0; -} - -/** @brief Get Current Poll Interval Qs - * - * This function is only useful to end devices. This function will return the - * current poll interval (in quarter seconds) for the current network. This - * interval is the maximum amount of time a child is currently waiting between - * polls of its parent. - * - */ -uint32_t emberAfGetCurrentPollIntervalQsCallback(void) -{ - return 0; -} - -/** @brief Get Current Sleep Control - * - * This function will retrieve the current sleep control that the system is - * using. This is determined by examining all the scheduled events and - * obtaining the most restrictive sleep control context across all events. The - * most restrictive sleep control is EMBER_AF_STAY_AWAKE followed by - * EMBER_AF_OK_TO_SLEEP. - * - */ -EmberAfEventSleepControl emberAfGetCurrentSleepControlCallback(void) -{ - return EMBER_AF_OK_TO_SLEEP; -} - -/** @brief Get Current Time - * - * This callback is called when device attempts to get current time from the - * hardware. If this device has means to retrieve exact time, then this method - * should implement it. If the callback can't provide the exact time it should - * return 0 to indicate failure. Default action is to return 0, which indicates - * that device does not have access to real time. - * - */ -uint32_t emberAfGetCurrentTimeCallback(void) -{ - return 0; -} - -/** @brief Get Default Poll Control - * - * This function will retrieve the default poll control for the current network - * as previously set by emberAfSetDefaultPollControlCallback(). The default - * poll control will limit whether the network can long poll. - * - */ -EmberAfEventPollControl emberAfGetDefaultPollControlCallback(void) -{ - return EMBER_AF_LONG_POLL; -} - -/** @brief Get Default Sleep Control - * - * This function will retrieve the default sleep control the system is using as - * previously set by emberAfSetDefaultSleepControlCallback(). The default sleep - * control will limit whether the device can sleep. - * - */ -EmberAfEventSleepControl emberAfGetDefaultSleepControlCallback(void) -{ - return EMBER_AF_OK_TO_SLEEP; -} - -/** @brief Get Endpoint By Index - * - * Get the endpoint number based on the passed index. By default the framework - * handles this by managing endpoints based on the precompiled configuration - * defined in AppBuilder. This callback can override this behavior at runtime - * and provide additional endpoints or different data than the compiled values. - * If the index is overridden than the callback shall return true and set the - * endpointReturn parameter accordingly. A value of 0xFF means the endpoint - * doesn't exist at that index. - Otherwise false must be returned by the - * callback and the default framework behavior will be executed. This is only - * applicable to the SOC devices. - * - * @param index The index of the endpoint. Ver.: always - * @param endpointReturn The value of endpoint. Ver.: always - */ -bool emberAfGetEndpointByIndexCallback(uint8_t index, uint8_t * endpointReturn) -{ - return false; -} - -/** @brief Get Endpoint Description - * - * This callback is called by the framework whenever it receives a ZDO request - * to enumerate the details about an endpoint. By default the framework - * provides the information based on the precompiled endpoint information as - * defined in AppBuilder. This callback can override that behavior at runtime - * and return different information. If the endpoint information is being - * overridden then the callback must return true. Otherwise it should return - * false, which allows the framework to perform its default behavior. This is - * only applicable to SOC devices. - * - * @param endpoint The endpoint number that is being queried. Ver.: always - * @param result This is a pointer to a data structure where the endpoint - * information is written if the callback is providing the information. Ver.: - * always - */ -bool emberAfGetEndpointDescriptionCallback(uint8_t endpoint, EmberEndpointDescription * result) -{ - return false; -} - -/** @brief Get Endpoint Info - * - * This function is a callback to an application implemented endpoint that - * operates outside the normal application framework. When the framework wishes - * to perform operations with that endpoint it uses this callback to retrieve - * the endpoint's information. If the endpoint exists and the application can - * provide data then true shall be returned. Otherwise the callback must return - * false. - * - * @param endpoint The endpoint to retrieve data for. Ver.: always - * @param returnNetworkIndex The index corresponding to the ZigBee network the - * endpoint belongs to. If not using a multi-network device, 0 must be - * returned. Otherwise on a multi-network device the stack will switch to this - * network before sending the message. Ver.: always - * @param returnEndpointInfo A pointer to a data struct that will be written - * with information about the endpoint. Ver.: always - */ -bool emberAfGetEndpointInfoCallback(uint8_t endpoint, uint8_t * returnNetworkIndex, EmberAfEndpointInfoStruct * returnEndpointInfo) -{ - return false; -} - -/** @brief Get Form And Join Extended Pan Id - * - * This callback is called by the framework to get the extended PAN ID used by - * the current network for forming and joining. The extended PAN ID used for - * forming and joining is not necessarily the same extended PAN ID actually in - * use on the network. - * - * @param resultLocation Ver.: always - */ -void emberAfGetFormAndJoinExtendedPanIdCallback(uint8_t * resultLocation) {} - -/** @brief Get Long Poll Interval Ms - * - * This function is only useful to end devices. This function will return the - * long poll interval (in milliseconds) for the current network. This interval - * is the maximum amount of time a child will wait between polls of its parent - * when it is not expecting data. - * - */ -uint32_t emberAfGetLongPollIntervalMsCallback(void) -{ - return 0; -} - -/** @brief Get Long Poll Interval Qs - * - * This function is only useful to end devices. This function will return the - * long poll interval (in quarter seconds) for the current network. This - * interval is the maximum amount of time a child will wait between polls of its - * parent when it is not expecting data. - * - */ -uint32_t emberAfGetLongPollIntervalQsCallback(void) -{ - return 0; -} - -/** @brief Get Short Poll Interval Ms - * - * This function is only useful to sleepy end devices. This function will - * return the short poll interval (in milliseconds) for the current network. - * This interval is the maximum amount of time a child will wait between polls - * of its parent when it is expecting data. - * - */ -uint16_t emberAfGetShortPollIntervalMsCallback(void) -{ - return 0; -} - -/** @brief Get Short Poll Interval Qs - * - * This function is only useful to sleepy end devices. This function will - * return the short poll interval (in quarter seconds) for the current network. - * This interval is the maximum amount of time a child will wait between polls - * of its parent when it is expecting data. - * - */ -uint16_t emberAfGetShortPollIntervalQsCallback(void) -{ - return 0; -} - -/** @brief Get Source Route Overhead - * - * This function is called by the framework to determine the overhead required - * in the network frame for source routing to a particular destination. - * - * @param destination The node id of the destination Ver.: always - */ -uint8_t emberAfGetSourceRouteOverheadCallback(EmberNodeId destination) -{ - return 0; -} - -/** @brief Get Wake Timeout Bitmask - * - * This function is only useful to sleepy end devices. This function will - * return the wake timeout bitmask for the current network. The bitmask - * determines which tasks will timeout automatically and which tasks require - * manual removal from the task list. - * - */ -EmberAfApplicationTask emberAfGetWakeTimeoutBitmaskCallback(void) -{ - return 0; -} - -/** @brief Get Wake Timeout Ms - * - * This function is only useful to sleepy end devices. This function will - * return the wake timeout (in milliseconds) for the current network. This - * timeout is the maximum amount of time a child will wait for a task in the - * wake bitmask to finish. While waiting, the device will short poll. - * - */ -uint16_t emberAfGetWakeTimeoutMsCallback(void) -{ - return 0; -} - -/** @brief Get Wake Timeout Qs - * - * This function is only useful to sleepy end devices. This function will - * return the wake timeout (in quarter seconds) for the current network. This - * timeout is the maximum amount of time a child will wait for a task in the - * wake bitmask to finish. While waiting, the device will short poll. - * - */ -uint16_t emberAfGetWakeTimeoutQsCallback(void) -{ - return 0; -} - -/** @brief Hal Button Isr - * - * This callback is called by the framework whenever a button is pressed on the - * device. This callback is called within ISR context. - * - * @param button The button which has changed state, either BUTTON0 or BUTTON1 - * as defined in the appropriate BOARD_HEADER. Ver.: always - * @param state The new state of the button referenced by the button parameter, - * either ::BUTTON_PRESSED if the button has been pressed or ::BUTTON_RELEASED - * if the button has been released. Ver.: always - */ -void emberAfHalButtonIsrCallback(uint8_t button, uint8_t state) {} - -/** @brief Incoming Packet Filter - * - * ** REQUIRES INCLUDING THE PACKET-HANDOFF PLUGIN ** - - This is called by - * the Packet Handoff plugin when the stack receives a packet from one of the - * protocol layers specified in ::EmberZigbeePacketType. - - The packetType - * argument is one of the values of the ::EmberZigbeePacketType enum. If the - * stack receives an 802.15.4 MAC beacon, it will call this function with the - * packetType argument set to ::EMBER_ZIGBEE_PACKET_TYPE_BEACON. - - The - * implementation of this callback may alter the data contained in packetData, - * modify options and flags in the auxillary data, or consume the packet itself, - * either sending the message, or discarding it as it sees fit. - * - * @param packetType the type of packet and associated protocol layer Ver.: - * always - * @param packetData flat buffer containing the packet data associated with the - * packet type Ver.: always - * @param size_p a pointer containing the size value of the packet Ver.: always - * @param data auxillary data included with the packet Ver.: always - */ -EmberPacketAction emberAfIncomingPacketFilterCallback(EmberZigbeePacketType packetType, uint8_t * packetData, uint8_t * size_p, - void * data) -{ - return EMBER_ACCEPT_PACKET; -} - -/** @brief Initiate Inter Pan Key Establishment - * - * This function is called by the framework to initiate key establishment with a - * remote device on a different PAN. The application should return - * EMBER_SUCCESS if key establishment was initiated successfully. The - * application should call ::emberAfInterPanKeyEstablishmentCallback as events - * occur. - * - * @param panId The PAN id of the remote device. Ver.: always - * @param eui64 The EUI64 of the remote device. Ver.: always - */ -EmberStatus emberAfInitiateInterPanKeyEstablishmentCallback(EmberPanId panId, const EmberEUI64 eui64) -{ - return EMBER_LIBRARY_NOT_PRESENT; -} - -/** @brief Initiate Key Establishment - * - * This function is called by the framework to initiate key establishment with a - * remote device. The application should return EMBER_SUCCESS if key - * establishment was initiated successfully. The application should call - * ::emberAfKeyEstablishmentCallback as events occur. - * - * @param nodeId The node id of the remote device. Ver.: always - * @param endpoint The endpoint on the remote device. Ver.: always - */ -EmberStatus emberAfInitiateKeyEstablishmentCallback(EmberNodeId nodeId, uint8_t endpoint) -{ - return EMBER_LIBRARY_NOT_PRESENT; -} - -/** @brief Initiate Partner Link Key Exchange - * - * This function is called by the framework to initiate a partner link key - * exchange with a remote device. The application should return EMBER_SUCCESS - * if the partner link key exchange was initiated successfully. When the - * partner link key exchange completes, the application should call the given - * callback. - * - * @param target The node id of the remote device. Ver.: always - * @param endpoint The key establishment endpoint of the remote device. Ver.: - * always - * @param callback The callback that should be called when the partner link key - * exchange completse. Ver.: always - */ -EmberStatus emberAfInitiatePartnerLinkKeyExchangeCallback(EmberNodeId target, uint8_t endpoint, - EmberAfPartnerLinkKeyExchangeCallback * callback) -{ - return EMBER_LIBRARY_NOT_PRESENT; -} - -/** @brief Inter Pan Key Establishment - * - * A callback by the key-establishment code to indicate an event has occurred. - * For error codes this is purely a notification. For non-error status codes - * (besides LINK_KEY_ESTABLISHED), it is the application's chance to allow or - * disallow the operation. If the application returns true then the key - * establishment is allowed to proceed. If it returns false, then key - * establishment is aborted. LINK_KEY_ESTABLISHED is a notification of success. - * - * @param status Ver.: always - * @param amInitiator Ver.: always - * @param panId Ver.: always - * @param eui64 Ver.: always - * @param delayInSeconds Ver.: always - */ -bool emberAfInterPanKeyEstablishmentCallback(EmberAfKeyEstablishmentNotifyMessage status, bool amInitiator, EmberPanId panId, - const EmberEUI64 eui64, uint8_t delayInSeconds) -{ - return true; -} - -/** @brief Interpan Send Message - * - * This function will send a raw MAC message with interpan frame format using - * the passed parameters. - * - * @param header Interpan header info Ver.: always - * @param messageLength The length of the message received or to send Ver.: - * always - * @param message The message data received or to send. Ver.: always - */ -EmberStatus emberAfInterpanSendMessageCallback(EmberAfInterpanHeader * header, uint16_t messageLength, uint8_t * message) -{ - return EMBER_LIBRARY_NOT_PRESENT; -} - -/** @brief Key Establishment - * - * A callback by the key-establishment code to indicate an event has occurred. - * For error codes this is purely a notification. For non-error status codes - * (besides LINK_KEY_ESTABLISHED), it is the application's chance to allow or - * disallow the operation. If the application returns true then the key - * establishment is allowed to proceed. If it returns false, then key - * establishment is aborted. LINK_KEY_ESTABLISHED is a notification of success. - * - * @param status Ver.: always - * @param amInitiator Ver.: always - * @param partnerShortId Ver.: always - * @param delayInSeconds Ver.: always - */ -bool emberAfKeyEstablishmentCallback(EmberAfKeyEstablishmentNotifyMessage status, bool amInitiator, EmberNodeId partnerShortId, - uint8_t delayInSeconds) -{ - return true; -} - -/** @brief Main Init - * - * This function is called from the application's main function. It gives the - * application a chance to do any initialization required at system startup. Any - * code that you would normally put into the top of the application's main() - * routine should be put into this function. This is called before the clusters, - * plugins, and the network are initialized so some functionality is not yet - * available. - Note: No callback in the Application Framework is - * associated with resource cleanup. If you are implementing your application on - * a Unix host where resource cleanup is a consideration, we expect that you - * will use the standard Posix system calls, including the use of atexit() and - * handlers for signals such as SIGTERM, SIGINT, SIGCHLD, SIGPIPE and so on. If - * you use the signal() function to register your signal handler, please mind - * the returned value which may be an Application Framework function. If the - * return value is non-null, please make sure that you call the returned - * function from your handler to avoid negating the resource cleanup of the - * Application Framework itself. - * - */ -void emberAfMainInitCallback(void) {} - -/** @brief Main Start - * - * This function is called at the start of main after the HAL has been - * initialized. The standard main function arguments of argc and argv are - * passed in. However not all platforms have support for main() function - * arguments. Those that do not are passed NULL for argv, therefore argv should - * be checked for NULL before using it. If the callback determines that the - * program must exit, it should return true. The value returned by main() will - * be the value written to the returnCode pointer. Otherwise the callback - * should return false to let normal execution continue. - * - * @param returnCode Ver.: always - * @param argc Ver.: always - * @param argv Ver.: always - */ -bool emberAfMainStartCallback(int * returnCode, int argc, char ** argv) -{ - // NOTE: argc and argv may not be supported on all platforms, so argv MUST be - // checked for NULL before referencing it. On those platforms without argc - // and argv "0" and "NULL" are passed respectively. - - return false; // exit? -} - -/** @brief Main Tick - * - * Whenever main application tick is called, this callback will be called at the - * end of the main tick execution. - * - */ -void emberAfMainTickCallback(void) {} - -/** @brief Mark Buffers - * - * This function is called when the garbage collector runs. Any buffers held by - * the application must be marked. - * - */ -void emberAfMarkBuffersCallback(void) -{ - // emMarkBuffer(&bufferUsed); -} - -/** @brief Message Sent - * - * This function is called by the application framework from the message sent - * handler, when it is informed by the stack regarding the message sent status. - * All of the values passed to the emberMessageSentHandler are passed on to this - * callback. This provides an opportunity for the application to verify that its - * message has been sent successfully and take the appropriate action. This - * callback should return a bool value of true or false. A value of true - * indicates that the message sent notification has been handled and should not - * be handled by the application framework. - * - * @param type Ver.: always - * @param indexOrDestination Ver.: always - * @param apsFrame Ver.: always - * @param msgLen Ver.: always - * @param message Ver.: always - * @param status Ver.: always - */ -bool emberAfMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, EmberApsFrame * apsFrame, - uint16_t msgLen, uint8_t * message, EmberStatus status) -{ - return false; -} - -/** @brief Ncp Init - * - * This function is called when the network coprocessor is being initialized, - * either at startup or upon reset. It provides applications on opportunity to - * perform additional configuration of the NCP. The function is always called - * twice when the NCP is initialized. In the first invocation, memoryAllocation - * will be true and the application should only issue EZSP commands that affect - * memory allocation on the NCP. For example, tables on the NCP can be resized - * in the first call. In the second invocation, memoryAllocation will be false - * and the application should only issue EZSP commands that do not affect memory - * allocation. For example, tables on the NCP can be populated in the second - * call. This callback is not called on SoCs. - * - * @param memoryAllocation Ver.: always - */ -void emberAfNcpInitCallback(bool memoryAllocation) {} - -/** @brief Ncp Is Awake Isr - * - * This function is called IN ISR CONTEXT. It notes that the NCP is awake after - * sleeping. Care should be taken to do minimal processing in this ISR handler - * function. - * - */ -void emberAfNcpIsAwakeIsrCallback(void) {} - -/** @brief Network Key Update Complete - * - * This is called by the framework when a network key update operation started - * by the trust center is complete. - * - * @param status Ver.: always - */ -void emberAfNetworkKeyUpdateCompleteCallback(EmberStatus status) {} - -/** @brief Ota Bootload - * - * The platform specific routine to bootload the device from a ZigBee - * over-the-air upgrade file. - * - * @param id A pointer to the structure that contains the information about what - * OTA image to bootload. Ver.: always - * @param ncpUpgradeTagId The tag ID of the upgrade data that will be used to - * bootload the device. Ver.: always - */ -uint8_t emberAfOtaBootloadCallback(const EmberAfOtaImageId * id, uint16_t ncpUpgradeTagId) -{ - // Please implement me - emberAfCorePrintln("Not supported."); - return 1; -} - -/** @brief Ota Client Bootload - * - * This callback is fired when the OTA Client recevies a command to bootload the - * newly downloaded OTA image. This callback will perform the platform specific - * to bootload their device. - * - * @param id This is the identifier relating to the image that has been - * downloaded and is ready for bootload. Ver.: always - */ -void emberAfOtaClientBootloadCallback(const EmberAfOtaImageId * id) -{ - // Any final preperation prior to the bootload should be done here. - // It is assumed that the device will reset in most all cases. - // Please implement me. -} - -/** @brief Ota Client Custom Verify - * - * This callback is executed by the OTA client after the signature verification - * has successfully completed. It allows the device to do its own custom - * verification of the image (such as verifying that the EBL is intact). - * - * @param newVerification This indicates if a new verification should be - * started. Ver.: always - * @param id This is ID of the image to be verified. Ver.: always - */ -EmberAfImageVerifyStatus emberAfOtaClientCustomVerifyCallback(bool newVerification, const EmberAfOtaImageId * id) -{ - // Manufacturing specific checks can be made to the image in this function to - // determine if it is valid. This function is called AFTER cryptographic - // checks have passed. If the cryptographic checks failed, this function will - // never be called. - - // The function shall return one of the following based on its own - // verification process. - // 1) EMBER_AF_IMAGE_GOOD - the image has passed all checks - // 2) EMBER_AF_IMAGE_BAD - the image is not valid - // 3) EMBER_AF_IMAGE_VERIFY_IN_PROGRESS - the image is valid so far, but more - // checks are needed. This callback shall be re-executed later to - // continue verification. This allows other code in the framework to - // run. - return EMBER_AF_IMAGE_GOOD; -} - -/** @brief Ota Client Download Complete - * - * This callback indicates that the OTA client has completed the download of a - * file. If the file has been completely downloaded and cryptographic checks - * have been turned on, then those will be performed prior to this callback and - * that outcome included in the 'success' result. On failure, this callback is - * merely informative, and the return type is ignored. On succesful download, - * this callback allows the client to perform any additional verification of the - * downloaded image and return that result to the OTA server. - * - * @param success This indicates the success or failure of the download and - * cryptographic verification process (if applicable). Ver.: always - * @param id This is the image identifier information that corresponds to the - * download result. Ver.: always - */ -bool emberAfOtaClientDownloadCompleteCallback(EmberAfOtaDownloadResult success, const EmberAfOtaImageId * id) -{ - // At this point the image has been completely downloaded and cryptographic - // checks (if applicable) have been performed. - - if (!success) - { - emberAfOtaBootloadClusterPrintln("Download failed."); - return true; // return value is ignored - } - - // This is for any additional validation that needs to be performed - // on the image by the application. - - // The results of checks here will be returned back to the OTA server - // in the Upgrade End request. - return true; -} - -/** @brief Ota Client Incoming Message Raw - * - * This callback is for processing incoming messages for the Over-the-air - * bootload cluster client. ZCL will not process the message and instead hand - * the raw over the air data to the callback for its own processing. - * - * @param message A pointer to the structure containing the message buffer and - * other information about it. Ver.: always - */ -bool emberAfOtaClientIncomingMessageRawCallback(EmberAfClusterCommand * message) -{ - return false; -} - -/** @brief Ota Client Start - * - * This callback should be called when the profile specific registration has - * completed successfully. It will start the client's state machine that will - * find the OTA server, query it for the next image, download the image, wait - * for the bootload message, and kick off the bootload. - * - */ -void emberAfOtaClientStartCallback(void) {} - -/** @brief Ota Client Version Info - * - * This function is called by the OTA client when a new query will occur to the - * server asking what the next version of firmware is. The client can inform - * the cluster software as to what information to use in the query (and - * subsequent download). - * - * @param currentImageInfo This is the information to use in the next query by - * the client cluster code. It contains the manufacturer ID, image type ID, and - * the firmware version to be specified in the query message sent to the server. - * Ver.: always - * @param hardwareVersion This is a pointer to the hardware version to use in - * the query. If no hardware version should be used, then - * EMBER_AF_INVALID_HARDWARE_VERSION should be used. Ver.: always - */ -void emberAfOtaClientVersionInfoCallback(EmberAfOtaImageId * currentImageInfo, uint16_t * hardwareVersion) -{ - // Customer will fill in the image info with their manufacturer ID, - // image type ID, and current software version number. - // The deviceSpecificFileEui64 can be ignored. - - // It may be necessary to dynamically determine this by talking to - // another device, as is the case with a host talking to an NCP device. - - // However, this routine will be called repeatedly so it may be wise - // to cache the data! - - /* This is commented out since the #defines below are not defined. - - if (currentImageInfo != NULL) { - memset(currentImageInfo, 0, sizeof(EmberAfOtaImageId)); - currentImageInfo->manufacturerId = EMBER_AF_MANUFACTURER_CODE; - currentImageInfo->imageTypeId = EMBER_AF_IMAGE_TYPE_ID; - currentImageInfo->firmwareVersion = EMBER_AF_CUSTOM_FIRMWARE_VERSION; - } - - if (hardwareVersion != NULL) { - *hardwareVersion = EMBER_AF_INVALID_HARDWARE_VERSION; - } - - assert(false); - */ -} - -/** @brief Ota Page Request Server Policy - * - * This callback is called by the OTA server page request code when it wants to - * determine if it is allowed for an OTA client to make a page request. It is - * only called if page request support has been enabled on the server. It - * should return EMBER_ZCL_STATUS_SUCCESS if it allows the page request, and - * EMBER_ZCL_STATUS_UNSUP_CLUSTER_COMMAND if it does not want to allow it. - * - */ -uint8_t emberAfOtaPageRequestServerPolicyCallback(void) -{ - return EMBER_ZCL_STATUS_SUCCESS; -} - -/** @brief Ota Server Block Size - * - * This function provides a way for the server to adjust the block size of its - * response to an Image block request by a client. - * - * @param clientNodeId The node Id of OTA client making an image block request. - * Ver.: always - */ -uint8_t emberAfOtaServerBlockSizeCallback(EmberNodeId clientNodeId) -{ - // This function provides a way for the server to potentially - // adjust the block size based on the client who is requesting. - // In other words if we are using source routing we will limit - // data returned by enough to put a source route into the message. - - // Image Block Response Message Format - // Status Code: 1-byte - // Manuf Code: 2-bytes - // Image Type: 2-bytes - // File Ver: 4-bytes - // File Offset: 4-bytes - // Data Size: 1-byte - // Data: variable - const uint8_t IMAGE_BLOCK_RESPONSE_OVERHEAD = (EMBER_AF_ZCL_OVERHEAD + 14); - - EmberApsFrame apsFrame; - uint8_t maxSize; - apsFrame.options = EMBER_APS_OPTION_NONE; - - if (emberAfIsCurrentSecurityProfileSmartEnergy()) - { - apsFrame.options |= EMBER_APS_OPTION_ENCRYPTION; - } - - maxSize = emberAfMaximumApsPayloadLength(EMBER_OUTGOING_DIRECT, clientNodeId, &apsFrame); - maxSize -= IMAGE_BLOCK_RESPONSE_OVERHEAD; - return maxSize; -} - -/** @brief Ota Server Incoming Message Raw - * - * This callback is for processing incoming messages for the Over-the-air - * bootload cluster server. ZCL will not process the message and instead hand - * the raw over the air data to the callback for its own processing. - * - * @param message A pointer to the structure containing the message buffer and - * other information about it. Ver.: always - */ -bool emberAfOtaServerIncomingMessageRawCallback(EmberAfClusterCommand * message) -{ - return false; -} - -/** @brief Ota Server Query - * - * This callback is fired when the OTA server receives a query request by the - * client. The callback lets the server application indicate to the client what - * the 'next' version of software is for the device, or if there is not one - * available. - * - * @param currentImageId This is the current software image that the client - * hase. Ver.: always - * @param hardwareVersion If this value is non-NULL, it indicates the hardware - * version of the client device. If NULL, the client did not specify a hardware - * version. Ver.: always - * @param nextUpgradeImageId This is a pointer to a data structure containing - * the 'next' software version for the client to download. Ver.: always - */ -uint8_t emberAfOtaServerQueryCallback(const EmberAfOtaImageId * currentImageId, uint16_t * hardwareVersion, - EmberAfOtaImageId * nextUpgradeImageId) -{ - // If a new software image is available, this function should return - // EMBER_ZCL_STATUS_SUCCESS and populate the 'nextUpgradeImageId' structure - // with the appropriate values. If no new software image is available (i.e. - // the client should not download a firmware image) then the server should - // return EMBER_ZCL_STATUS_NO_IMAGE_AVAILABLE. - return EMBER_ZCL_STATUS_NO_IMAGE_AVAILABLE; -} - -/** @brief Ota Server Send Image Notify - * - * This callback is an indication to the OTA server that it should send out - * notification about an OTA file that is available for download. - * - * @param dest The destination of the image notify message. May be a broadcast - * address. Ver.: always - * @param endpoint The destination endpoint of the image notify message. May be - * a broadcast endpoint. Ver.: always - * @param payloadType The type of data the image notify message will contain. 0 - * = no data. 1 = Manufacturer ID. 2 = Manufacturer ID and the image type ID. - * 3 = Manufacturer ID, image type ID, and firmware version. Ver.: always - * @param queryJitter The percentage of nodes that should respond to this - * message, from 1-100. On receipt of this message, each recipient will - * randomly choose a percentage and only query the server if their percentage is - * below this value. Ver.: always - * @param id The image information that will be put in the message. The data - * within this struct that will be appended to the message is determined by the - * previous 'payloadType' argument. Ver.: always - */ -bool emberAfOtaServerSendImageNotifyCallback(EmberNodeId dest, uint8_t endpoint, uint8_t payloadType, uint8_t queryJitter, - const EmberAfOtaImageId * id) -{ - return false; -} - -/** @brief Ota Server Upgrade End Request - * - * This function is called when the OTA server receives a request an upgrade end - * request. If the request indicated a successful download by the client, the - * server must tell the client when and if to upgrade to the downloaded image. - * - * @param source The node ID of the device that sent the upgrade end request. - * Ver.: always - * @param status This is the ZCL status sent by the client indicating the result - * of its attempt to download the new upgrade image. If the status is not - * EMBER_ZCL_STATUS_SUCCESS then this callback is merely informative and no - * response mesasge will be generated by the server. Ver.: always - * @param returnValue If the server returns true indicating that the client - * should apply the upgrade, this time value indicates when in the future the - * client should apply the upgrade. Ver.: always - * @param imageId This variable indicates the software version that the client - * successfully downloaded and is asking to upgrade to. Ver.: always - */ -bool emberAfOtaServerUpgradeEndRequestCallback(EmberNodeId source, uint8_t status, uint32_t * returnValue, - const EmberAfOtaImageId * imageId) -{ - // If the status value is not EMBER_ZCL_STATUS_SUCCESS, then this callback is - // merely informative and no response message will be generated by the server. - // If the server wants the client to NOT apply the upgrade, then it should - // return false. - // If the server wants the client to apply the upgrade, it should return true - // and set the 'returnValue' parameter to when it wants the client to - // apply the upgrade. There are three possible values: - // 0 = Apply the upgrade now - // 0xFFFFFFFF = Don't apply yet, ask again later. - // (anything-else) = Apply the upgrade X minutes from now. - *returnValue = 0; - return true; -} - -/** @brief Ota Storage Check Temp Data - * - * This callback will validate temporary data in the storage device to determine - * whether it is a complete file, a partially downloaded file, or there is no - * file present. When a complete or partial file is found it will return - * EMBER_AF_OTA_STORAGE_SUCCESS or EMBER_AF_OTA_STORAGE_PARTIAL_FILE_FOUND, - * respectively. In that case, the currentOffset, totalImageSize, and - * newFileInfo will be populated with data. When EMBER_AF_OTA_STORAGE_ERROR is - * returned, no temporary data is present. - * - * @param currentOffset A pointer to a value that will be written with the - * offset within the total file size that has been successfully stored in the - * storage device. This will indicate how much data has been currently - * dowloaded. Ver.: always - * @param totalImageSize A pointer to a value that will be written with the - * total image size of the OTA file when a download has completed. This does - * not indicate how much data has actually been downloaded currently. Ver.: - * always - * @param newFileInfo This is the image id of the temporary file data stored in - * the storage device. Ver.: always - */ -EmberAfOtaStorageStatus emberAfOtaStorageCheckTempDataCallback(uint32_t * currentOffset, uint32_t * totalImageSize, - EmberAfOtaImageId * newFileInfo) -{ - // If the image data cannot be successfully verified, an error should be - // returned. - return EMBER_AF_OTA_STORAGE_ERROR; -} - -/** @brief Ota Storage Clear Temp Data - * - * This function clears any existing temp data that was downloaed. It is used - * immediately prior to downloading a raw image over the air. - * - */ -EmberAfOtaStorageStatus emberAfOtaStorageClearTempDataCallback(void) -{ - // If the image data cannot be stored, an error should be returned. - return EMBER_AF_OTA_STORAGE_ERROR; -} - -/** @brief Ota Storage Close - * - * This callback shuts down the ZigBee Over-the-air storage module. - * - */ -void emberAfOtaStorageCloseCallback(void) -{ - // Please implement me. - assert(false); -} - -/** @brief Ota Storage Driver Download Finish - * - * This callback defines the low-level means by which a device records the final - * offset value of the download image. - * - * @param offset The value of the final offset of the image download. Ver.: - * always - */ -void emberAfOtaStorageDriverDownloadFinishCallback(uint32_t offset) -{ - // The storage driver and the rest of the OTA bootload code will not function - // correctly unless it is implemnted. Please implement me. - assert(false); -} - -/** @brief Ota Storage Driver Init - * - * The initialization code for the OTA storage driver. - * - */ -bool emberAfOtaStorageDriverInitCallback(void) -{ - // The storage driver and the rest of the OTA bootload code will not function - // correctly unless it is implemnted. Please implement me. - assert(false); - return false; -} - -/** @brief Ota Storage Driver Invalidate Image - * - * This callback invalidates the image stored on disk so that it will not be - * bootloaded, and it will not be a valid image that is in the middle of - * downloading. - * - */ -EmberAfOtaStorageStatus emberAfOtaStorageDriverInvalidateImageCallback(void) -{ - // The storage driver and the rest of the OTA bootload code will not function - // correctly unless it is implemnted. Please implement me. - assert(false); - return EMBER_AF_OTA_STORAGE_ERROR; -} - -/** @brief Ota Storage Driver Prepare To Resume Download - * - * This callback allows the underlying storage driver to prepare to resume the - * OTA file download. For example, the driver may exceute a page erase to - * insure the next page is ready to be written to. - * - */ -EmberAfOtaStorageStatus emberAfOtaStorageDriverPrepareToResumeDownloadCallback(void) -{ - assert(false); - return EMBER_AF_OTA_STORAGE_ERROR; -} - -/** @brief Ota Storage Driver Read - * - * This callback defines the low-level means by which a device reads from the - * OTA storage device. - * - * @param offset The address offset from the start of the storage device where - * data is to be read. Ver.: always - * @param length The length of the data to be read from the storage device. - * Ver.: always - * @param returnData A pointer where the data read from the device should be - * written to. Ver.: always - */ -bool emberAfOtaStorageDriverReadCallback(uint32_t offset, uint32_t length, uint8_t * returnData) -{ - // The storage driver and the rest of the OTA bootload code will not function - // correctly unless it is implemnted. Please implement me. - assert(false); - return false; -} - -/** @brief Ota Storage Driver Retrieve Last Stored Offset - * - * This callback defines the low-level means by which a device retrieves the - * last persistently recorded download offset. This may be different than last - * actual download offset. - * - */ -uint32_t emberAfOtaStorageDriverRetrieveLastStoredOffsetCallback(void) -{ - // The storage driver and the rest of the OTA bootload code will not function - // correctly unless it is implemnted. Please implement me. - assert(false); - return 0; -} - -/** @brief Ota Storage Driver Write - * - * This callback defines the low-level means by which a device reads from the - * OTA storage device. - * - * @param dataToWrite A pointer to the data that will be written to the storage - * device. Ver.: always - * @param offset The address offset from the start of the storage device where - * data will be written. Ver.: always - * @param length The length of the data to be written to the storage device. - * Ver.: always - */ -bool emberAfOtaStorageDriverWriteCallback(const uint8_t * dataToWrite, uint32_t offset, uint32_t length) -{ - // The storage driver and the rest of the OTA bootload code will not function - // correctly unless it is implemnted. Please implement me. - assert(false); - return false; -} - -/** @brief Ota Storage Finish Download - * - * This function indicates to the storage module that the download has finished. - * - * @param offset The final offset of the downloaded file (i.e. the total size) - * Ver.: always - */ -EmberAfOtaStorageStatus emberAfOtaStorageFinishDownloadCallback(uint32_t offset) -{ - return EMBER_AF_OTA_STORAGE_SUCCESS; -} - -/** @brief Ota Storage Get Count - * - * This callback returns the total number of ZigBee Over-the-air upgrade images - * stored in the storage module. - * - */ -uint8_t emberAfOtaStorageGetCountCallback(void) -{ - return 0; -} - -/** @brief Ota Storage Get Full Header - * - * This callback populates the EmberAfOtaHeader structure pointed to by the - * returnData with data about the OTA file stored in the storage module. - * - * @param id This is a pointer to the image id for the OTA file to retrieve - * information about. Ver.: always - * @param returnData This is a pointer to the location of the structure that - * will be populated with data. Ver.: always - */ -EmberAfOtaStorageStatus emberAfOtaStorageGetFullHeaderCallback(const EmberAfOtaImageId * id, EmberAfOtaHeader * returnData) -{ - // If the requested image cannot be found, then an error shouldb e returned. - return EMBER_AF_OTA_STORAGE_ERROR; -} - -/** @brief Ota Storage Get Total Image Size - * - * This function returns the total size of the ZigBee Over-the-air file with the - * passed parameters. If no file is found with those parameters, 0 is returned. - * - * @param id A pointer to the image identifier for the OTA file to retrieve - * information for. Ver.: always - */ -uint32_t emberAfOtaStorageGetTotalImageSizeCallback(const EmberAfOtaImageId * id) -{ - // On failure this should return an image size of zero. - return 0; -} - -/** @brief Ota Storage Init - * - * This callback initializes the ZigBee Over-the-air storage module. - * - */ -EmberAfOtaStorageStatus emberAfOtaStorageInitCallback(void) -{ - return EMBER_AF_OTA_STORAGE_SUCCESS; -} - -/** @brief Ota Storage Iterator First - * - * This callback lets you walk through the list of all OTA files by jumping to - * the first file in the list maintained by the storage module. If there is no - * file then emberAfOtaInvalidImageId is returned. - * - */ -EmberAfOtaImageId emberAfOtaStorageIteratorFirstCallback(void) -{ - // It is expected that the storage module maintain its own internal iterator - // that the 'first' and 'next' functions will manipulate. - - // If there are no images at all, this function should return the invalid - // image id. - return emberAfInvalidImageId; -} - -/** @brief Ota Storage Iterator Next - * - * This callback lets you walk through the list of all OTA files by jumping to - * the next file in the list maintained by the storage module. If there is no - * next file then emberAfOtaInvalidImageId is returned. - * - */ -EmberAfOtaImageId emberAfOtaStorageIteratorNextCallback(void) -{ - // It is expected that the storage module maintain its own internal iterator - // that the 'first' and 'next' functions will manipulate. - - // If there are no more images, this function should return the invalid image - // id. - return emberAfInvalidImageId; -} - -/** @brief Ota Storage Read Image Data - * - * This callback reads data from the specified OTA file and returns that data to - * the caller. - * - * @param id This is a pointer to the image id for the OTA file to retrieve data - * from. Ver.: always - * @param offset This is the offset relative to the start of the image where the - * data should be read from. Ver.: always - * @param length This is the length of data that will be read. Ver.: always - * @param returnData This is a pointer to where the data read out of the file - * will be written to Ver.: always - * @param returnedLength This is a pointer to a variable where the actual length - * of data read will be written to. A short read may occur if the end of file - * was reached. Ver.: always - */ -EmberAfOtaStorageStatus emberAfOtaStorageReadImageDataCallback(const EmberAfOtaImageId * id, uint32_t offset, uint32_t length, - uint8_t * returnData, uint32_t * returnedLength) -{ - // If the requested image cannot be found, then an error should be returned. - return EMBER_AF_OTA_STORAGE_ERROR; -} - -/** @brief Ota Storage Search - * - * This callback searches through the list of all images for one that matches - * the passed parameters. On success an image identifier is returned with a - * matching image. On failure emberAfInvalidImageId is returned. - * - * @param manufacturerId The ZigBee assigned identifier of the manufacturer - * contained in the OTA image being searched for. Ver.: always - * @param imageTypeId The image type identifier contained in the OTA image being - * searched for. Ver.: always - * @param hardwareVersion This is a pointer to the hardware version that will be - * used in the search. If the pointer is NULL, hardware version will not be - * considered when searching for matching images. If it points to a value, the - * search will only consider images where that value falls between the minimum - * and maxmimum hardware version specified in the OTA file. If no hardware - * version is present in an OTA file but the other parameters match, the file - * will be considered a match Ver.: always - */ -EmberAfOtaImageId emberAfOtaStorageSearchCallback(uint16_t manufacturerId, uint16_t imageTypeId, const uint16_t * hardwareVersion) -{ - // If no image is found that matches the search criteria, this function should - // return the invalid image id. - return emberAfInvalidImageId; -} - -/** @brief Ota Storage Write Temp Data - * - * This function writes to the temporary data in the storage device at the - * specified offset. It is used when downloading a raw image over the air. - * - * @param offset The location within the download image file where to write the - * data. Ver.: always - * @param length The length of data to write. Ver.: always - * @param data A pointer to the temporary data that will be written to the - * storage device. Ver.: always - */ -EmberAfOtaStorageStatus emberAfOtaStorageWriteTempDataCallback(uint32_t offset, uint32_t length, const uint8_t * data) -{ - // If the image data cannot be stored, an error should be returned. - return EMBER_AF_OTA_STORAGE_ERROR; -} - -/** @brief Outgoing Packet Filter - * - * ** REQUIRES INCLUDING THE PACKET-HANDOFF PLUGIN ** - - This is called by - * the Packet Handoff plugin when the stack prepares to send a packet from one - * of the protocol layers specified in ::EmberZigbeePacketType. - - The - * packetType argument is one of the values of the ::EmberZigbeePacketType enum. - * If the stack receives an 802.15.4 MAC beacon, it will call this function with - * the packetType argument set to ::EMBER_ZIGBEE_PACKET_TYPE_BEACON. - - - * The implementation of this callback may alter the data contained in - * packetData, modify options and flags in the auxillary data, or consume the - * packet itself, either sending the message, or discarding it as it sees fit. - * - * @param packetType the type of packet and associated protocol layer Ver.: - * always - * @param packetData flat buffer containing the packet data associated with the - * packet type Ver.: always - * @param size_p a pointer containing the size value of the packet Ver.: always - * @param data auxillary data included with the packet Ver.: always - */ -EmberPacketAction emberAfOutgoingPacketFilterCallback(EmberZigbeePacketType packetType, uint8_t * packetData, uint8_t * size_p, - void * data) -{ - return EMBER_ACCEPT_PACKET; -} - -/** @brief Partner Link Key Exchange Request - * - * This function is called by the framework on SOC platforms when a remote node - * requests a partner link key exchange. The application should return - * EMBER_SUCCESS to accept the request or any other status to reject it. On - * network coprocessor platforms, this function will not be called because the - * NCP handles partner link key exchange requests based on the binding policy. - * - * @param partner The EUI of the remote node. Ver.: always - */ -EmberZdoStatus emberAfPartnerLinkKeyExchangeRequestCallback(EmberEUI64 partner) -{ - return EMBER_ZDP_NOT_SUPPORTED; -} - -/** @brief Partner Link Key Exchange Response - * - * This function is called by the framework when a remote node requests a - * partner link key exchange. The application should return true to accept the - * request or false to reject it. On network coprocessor platforms, this - * function will not be called because the NCP handles partner link key exchange - * requests based on the binding policy. - * - * @param sender The EUI of the remote node. Ver.: always - * @param status The ZDO response status. Ver.: always - */ -void emberAfPartnerLinkKeyExchangeResponseCallback(EmberNodeId sender, EmberZdoStatus status) {} - -/** @brief Performing Key Establishment - * - * This function is called by the framework to determine if the device is - * performing key establishment. The application should return true if key - * establishment is in progress. - * - */ -bool emberAfPerformingKeyEstablishmentCallback(void) -{ - return false; -} - -/** @brief Get Distributed Key - * - * This callback is fired when the Network Steering plugin needs to set the - * distributed key. The application set the distributed key from Zigbee Alliance - * thru this callback or the network steering will use the default test key. - * - * @param pointer to the distributed key struct - * @return true if the key is loaded successfully, otherwise false. - * level. Ver.: always - */ -bool emberAfPluginNetworkSteeringGetDistributedKeyCallback(EmberKeyData * key) -{ - return false; -} - -/** @brief Get Power For Radio Channel - * - * This callback is fired when the Network Steering plugin needs to set the - * power level. The application has the ability to change the max power level - * used for this particular channel. - * - * @param channel The channel that the plugin is inquiring about the power - * level. Ver.: always - */ -int8_t emberAfPluginNetworkSteeringGetPowerForRadioChannelCallback(uint8_t channel) -{ - return emberAfMaxPowerLevel(); -} - -/** @brief Post Em4 Reset - * - * A callback called by application framework, and implemented by em4 plugin - * - */ -void emberAfPostEm4ResetCallback(void) -{ - return; -} - -/** @brief Pre Attribute Change - * - * This function is called by the application framework before it changes an - * attribute value. The value passed into this callback is the value to which - * the attribute is to be set by the framework. The application should return - * ::EMBER_ZCL_STATUS_SUCCESS to permit the change or any other ::EmberAfStatus - * to reject it. - * - * @param endpoint Ver.: always - * @param clusterId Ver.: always - * @param attributeId Ver.: always - * @param mask Ver.: always - * @param manufacturerCode Ver.: always - * @param type Ver.: always - * @param size Ver.: always - * @param value Ver.: always - */ -EmberAfStatus emberAfPreAttributeChangeCallback(uint8_t endpoint, EmberAfClusterId clusterId, EmberAfAttributeId attributeId, - uint8_t mask, uint16_t manufacturerCode, uint8_t type, uint8_t size, - uint8_t * value) -{ - return EMBER_ZCL_STATUS_SUCCESS; -} - -/** @brief Pre Cli Send - * - * This function is called by the framework when it is about to pass a message - * constructed over CLI to the stack primitives for sending. If the function - * returns true it is assumed that the callback has consumed and processed the - * message. The framework will not do any further processing on the message. - - * If the function returns false then it is assumed that the callback has - * not processed the message and the framework will continue to process - * accordingly. - * - * @param apsFrame The structure containing the APS frame Ver.: always - * @param source Source Node Id Ver.: always - * @param destination Destintion Node Id Ver.: always - * @param message Pointer to the message payload Ver.: always - * @param messageLength Length of the message payload Ver.: always - */ -bool emberAfPreCliSendCallback(EmberApsFrame * apsFrame, EmberNodeId source, EmberNodeId destination, uint8_t * message, - uint16_t messageLength) -{ - return false; -} - -/** @brief Pre Command Received - * - * This callback is the second in the Application Framework's message processing - * chain. At this point in the processing of incoming over-the-air messages, the - * application has determined that the incoming message is a ZCL command. It - * parses enough of the message to populate an EmberAfClusterCommand struct. The - * Application Framework defines this struct value in a local scope to the - * command processing but also makes it available through a global pointer - * called emberAfCurrentCommand, in app/framework/util/util.c. When command - * processing is complete, this pointer is cleared. - * - * @param cmd Ver.: always - */ -bool emberAfPreCommandReceivedCallback(EmberAfClusterCommand * cmd) -{ - return false; -} - -/** @brief Pre Message Received - * - * This callback is the first in the Application Framework's message processing - * chain. The Application Framework calls it when a message has been received - * over the air but has not yet been parsed by the ZCL command-handling code. If - * you wish to parse some messages that are completely outside the ZCL - * specification or are not handled by the Application Framework's command - * handling code, you should intercept them for parsing in this callback. - - * This callback returns a Boolean value indicating whether or not the message - * has been handled. If the callback returns a value of true, then the - * Application Framework assumes that the message has been handled and it does - * nothing else with it. If the callback returns a value of false, then the - * application framework continues to process the message as it would with any - * incoming message. - Note: This callback receives a pointer to an - * incoming message struct. This struct allows the application framework to - * provide a unified interface between both Host devices, which receive their - * message through the ezspIncomingMessageHandler, and SoC devices, which - * receive their message through emberIncomingMessageHandler. - * - * @param incomingMessage Ver.: always - */ -bool emberAfPreMessageReceivedCallback(EmberAfIncomingMessage * incomingMessage) -{ - return false; -} - -/** @brief Pre Message Send - * - * This function is called by the framework when it is about to pass a message - * to the stack primitives for sending. This message may or may not be ZCL, - * ZDO, or some other protocol. This is called prior to - any ZigBee - * fragmentation that may be done. If the function returns true it is assumed - * the callback has consumed and processed the message. The callback must also - * set the EmberStatus status code to be passed back to the caller. The - * framework will do no further processing on the message. - If the - * function returns false then it is assumed that the callback has not processed - * the mesasge and the framework will continue to process accordingly. - * - * @param messageStruct The structure containing the parameters of the APS - * message to be sent. Ver.: always - * @param status A pointer to the status code value that will be returned to the - * caller. Ver.: always - */ -bool emberAfPreMessageSendCallback(EmberAfMessageStruct * messageStruct, EmberStatus * status) -{ - return false; -} - -/** @brief Pre Ncp Reset - * - * This function will be called prior to the reset of the NCP by the host. - * - */ -void emberAfPreNcpResetCallback(void) {} - -/** @brief Pre ZDO Message Received - * - * This function passes the application an incoming ZDO message and gives the - * appictation the opportunity to handle it. By default, this callback returns - * false indicating that the incoming ZDO message has not been handled and - * should be handled by the Application Framework. - * - * @param emberNodeId Ver.: always - * @param apsFrame Ver.: always - * @param message Ver.: always - * @param length Ver.: always - */ -bool emberAfPreZDOMessageReceivedCallback(EmberNodeId emberNodeId, EmberApsFrame * apsFrame, uint8_t * message, uint16_t length) -{ - return false; -} - -/** @brief Read Attributes Response - * - * This function is called by the application framework when a Read Attributes - * Response command is received from an external device. The application should - * return true if the message was processed or false if it was not. - * - * @param clusterId The cluster identifier of this response. Ver.: always - * @param buffer Buffer containing the list of read attribute status records. - * Ver.: always - * @param bufLen The length in bytes of the list. Ver.: always - */ -bool emberAfReadAttributesResponseCallback(EmberAfClusterId clusterId, uint8_t * buffer, uint16_t bufLen) -{ - return false; -} - -/** @brief Read Reporting Configuration Response - * - * This function is called by the application framework when a Read Reporting - * Configuration Response command is received from an external device. The - * application should return true if the message was processed or false if it - * was not. - * - * @param clusterId The cluster identifier of this response. Ver.: always - * @param buffer Buffer containing the list of attribute reporting configuration - * records. Ver.: always - * @param bufLen The length in bytes of the list. Ver.: always - */ -bool emberAfReadReportingConfigurationResponseCallback(EmberAfClusterId clusterId, uint8_t * buffer, uint16_t bufLen) -{ - return false; -} - -/** @brief Registration Abort - * - * This callback is called when the device should abort the registration - * process. - * - */ -void emberAfRegistrationAbortCallback(void) {} - -/** @brief Registration - * - * This callback is called when the device joins a network and the process of - * registration is complete. This callback provides a success value of true if - * the registration process was successful and a value of false if registration - * failed. - * - * @param success true if registration succeeded, false otherwise. Ver.: always - */ -void emberAfRegistrationCallback(bool success) {} - -/** @brief Registration Start - * - * This callback is called when the device joins a network and the registration - * process should begin. The application should return EMBER_SUCCESS if the - * registration process started successfully. When registration is complete, - * the application should call emberAfRegistrationCallback with an indication of - * success or failure. - * - */ -EmberStatus emberAfRegistrationStartCallback(void) -{ - return EMBER_LIBRARY_NOT_PRESENT; -} - -/** @brief Remote Delete Binding Permission - * - * This function is called by the framework to request permission to service the - * remote delete binding request. Return EMBER_SUCCESS to allow request, - * anything else to disallow request. - * - * @param index index to an Ember binding table entry Ver.: always - */ -EmberStatus emberAfRemoteDeleteBindingPermissionCallback(uint8_t index) -{ - return EMBER_SUCCESS; // default -} - -/** @brief Remote Set Binding Permission - * - * This function is called by the framework to request permission to service the - * remote set binding request. Return EMBER_SUCCESS to allow request, anything - * else to disallow request. - * - * @param entry Ember Binding Tablet Entry Ver.: always - */ -EmberStatus emberAfRemoteSetBindingPermissionCallback(const EmberBindingTableEntry * entry) -{ - return EMBER_SUCCESS; // default -} - -/** @brief Remove From Current App Tasks - * - * This function is only useful to sleepy end devices. This function will - * remove the passed item from the set of tasks the application has outstanding - * (e.g. message sent requiring APS acknwoledgement). This will affect how the - * application behaves with regard to sleeping and polling. Removing the item - * from the list of outstanding tasks may allow the device to sleep longer and - * poll less frequently. If there are other outstanding tasks the system may - * still have to stay away and poll more often. - * - * @param tasks Ver.: always - */ -void emberAfRemoveFromCurrentAppTasksCallback(EmberAfApplicationTask tasks) {} - -/** @brief Report Attributes - * - * This function is called by the application framework when a Report Attributes - * command is received from an external device. The application should return - * true if the message was processed or false if it was not. - * - * @param clusterId The cluster identifier of this command. Ver.: always - * @param buffer Buffer containing the list of attribute report records. Ver.: - * always - * @param bufLen The length in bytes of the list. Ver.: always - */ -bool emberAfReportAttributesCallback(EmberAfClusterId clusterId, uint8_t * buffer, uint16_t bufLen) -{ - return false; -} - -/** @brief Scan Error - * - * This is called by the framework on behalf of the form-and-join library to - * notify the application if an error occurs while scanning. See form-and-join - * documentation for more information. - * - * @param status The status of the scan. Ver.: always - */ -void emberAfScanErrorCallback(EmberStatus status) {} - -/** @brief Security Init - * - * This callback is called by the framework to give the application a chance to - * modify the security settings of the node during network initialization. - * Depending on the context when this callback is called, the pointer to the - * initial security state may be NULL, which means the initial security state - * can no longer be modified as the node is already operating on the network. - * - * @param state Ver.: always - * @param extended Ver.: always - * @param trustCenter Ver.: always - */ -void emberAfSecurityInitCallback(EmberInitialSecurityState * state, EmberExtendedSecurityBitmask * extended, bool trustCenter) {} - -/** @brief Key Establishment Cluster Server Command Received - * - * This function is called by the application framework when a client-to-server - * key establishment command is received but has yet to be handled by the - * framework code. This function should return a bool value indicating whether - * the command has been handled by the application code and should not be - * further processed by the framework. - * - * @param cmd Ver.: always - */ -bool emberAfKeyEstablishmentClusterServerCommandReceivedCallback(EmberAfClusterCommand * cmd) -{ - return false; -} - -/** @brief Set Default Poll Control - * - * This function will set the default poll control for the current network to - * control whether or not it can long poll. - * - * @param control Ver.: always - */ -void emberAfSetDefaultPollControlCallback(EmberAfEventPollControl control) {} - -/** @brief Set Default Sleep Control - * - * This function will set the default behavior of a sleeping device to control - * whether or not it must stay awake. A device that stays awake does not sleep - * at all. Otherwise, the device can sleep between events when appropriate. - * - * @param control Ver.: always - */ -void emberAfSetDefaultSleepControlCallback(EmberAfEventSleepControl control) {} - -/** @brief Set Form And Join Extended Pan Id - * - * This callback is called by the framework to set the extended PAN ID used by - * the current network for forming and joining. The extended PAN ID used for - * forming and joining is not necessarily the same extended PAN ID actually in - * use on the network. - * - * @param extendedPanId Ver.: always - */ -void emberAfSetFormAndJoinExtendedPanIdCallback(const uint8_t * extendedPanId) {} - -/** @brief Set Long Poll Interval Ms - * - * This function is only useful to end devices. This function will set the long - * poll interval (in milliseconds) for the current network. This interval is - * the maximum amount of time a child will wait between polls of its parent when - * it is not expecting data. - * - * @param longPollIntervalMs Ver.: always - */ -void emberAfSetLongPollIntervalMsCallback(uint32_t longPollIntervalMs) {} - -/** @brief Set Long Poll Interval Qs - * - * This function is only useful to end devices. This function will set the long - * poll interval (in quarter seconds) for the current network. This interval is - * the maximum amount of time a child will wait between polls of its parent when - * it is not expecting data. - * - * @param longPollIntervalQs Ver.: always - */ -void emberAfSetLongPollIntervalQsCallback(uint32_t longPollIntervalQs) {} - -/** @brief Set Short Poll Interval Ms - * - * This function is only useful to sleepy end devices. This function will set - * the short poll interval (in milliseconds) for the current network. This - * interval is the maximum amount of time a child will wait between polls of its - * parent when it is expecting data. - * - * @param shortPollIntervalMs Ver.: always - */ -void emberAfSetShortPollIntervalMsCallback(uint16_t shortPollIntervalMs) {} - -/** @brief Set Short Poll Interval Qs - * - * This function is only useful to sleepy end devices. This function will set - * the short poll interval (in quarter seconds) for the current network. This - * interval is the maximum amount of time a child will wait between polls of its - * parent when it is expecting data. - * - * @param shortPollIntervalQs Ver.: always - */ -void emberAfSetShortPollIntervalQsCallback(uint16_t shortPollIntervalQs) {} - -/** @brief Set Source Route Overhead - * - * This function is called by the framework when it has information about the - * source route overhead to a particular destination. The application may use - * this information to cache the source route overhead. - * - * @param destination The node id of the destination Ver.: always - * @param overhead The overhead in bytes Ver.: always - */ -void emberAfSetSourceRouteOverheadCallback(EmberNodeId destination, uint8_t overhead) {} - -/** @brief Set Time - * - * This callback should be implemented, if the device has access to real time - * clock, and has an ability to update that clock. The application framework - * expects to be passed the utcTime which is the number of seconds since the - * year 2000. Default implementation does nothing. Note: This function used to - * take time in year, month, day, hour, min, sec. We have changed this to - * utcTime in order to conserve code space. - * - * @param utcTime Ver.: always - */ -void emberAfSetTimeCallback(uint32_t utcTime) {} - -/** @brief Set Wake Timeout Bitmask - * - * This function is only useful to sleepy end devices. This function will set - * the wake timeout bitmask for the current network. The bitmask determines - * which tasks will timeout automatically and which tasks require manual removal - * from the task list. - * - * @param tasks Ver.: always - */ -void emberAfSetWakeTimeoutBitmaskCallback(EmberAfApplicationTask tasks) {} - -/** @brief Set Wake Timeout Ms - * - * This function is only useful to sleepy end devices. This function will set - * the wake timeout (in milliseconds) for the current network. This timeout is - * the maximum amount of time a child will wait for a task in the wake bitmask - * to finish. While waiting, the device will short poll. - * - * @param wakeTimeoutMs Ver.: always - */ -void emberAfSetWakeTimeoutMsCallback(uint16_t wakeTimeoutMs) {} - -/** @brief Set Wake Timeout Qs - * - * This function is only useful to sleepy end devices. This function will set - * the wake timeout (in quarter seconds) for the current network. This timeout - * is the maximum amount of time a child will wait for a task in the wake - * bitmask to finish. While waiting, the device will short poll. - * - * @param wakeTimeoutQs Ver.: always - */ -void emberAfSetWakeTimeoutQsCallback(uint16_t wakeTimeoutQs) {} - -/** @brief Start Move - * - * This function is called to initiate the process for a device to move (rejoin) - * to a new parent. - * - */ -bool emberAfStartMoveCallback(void) -{ - return false; -} - -/** @brief Start Search For Joinable Network - * - * This function is called by the framework to search for joinable networks and - * join a network. The application should return EMBER_SUCCESS if the operation - * was initiated successfully. - * - */ -EmberStatus emberAfStartSearchForJoinableNetworkCallback(void) -{ - return EMBER_LIBRARY_NOT_PRESENT; -} - -/** @brief Stop Move - * - * This function is called to cancel a previously scheduled move (rejoin) to a - * new parent. - * - */ -void emberAfStopMoveCallback(void) {} - -/** @brief Trust Center Join - * - * This callback is called from within the application framework's - * implementation of emberTrustCenterJoinHandler or ezspTrustCenterJoinHandler. - * This callback provides the same arguments passed to the - * TrustCenterJoinHandler. For more information about the TrustCenterJoinHandler - * please see documentation included in stack/include/trust-center.h. - * - * @param newNodeId Ver.: always - * @param newNodeEui64 Ver.: always - * @param parentOfNewNode Ver.: always - * @param status Ver.: always - * @param decision Ver.: always - */ -void emberAfTrustCenterJoinCallback(EmberNodeId newNodeId, EmberEUI64 newNodeEui64, EmberNodeId parentOfNewNode, - EmberDeviceUpdate status, EmberJoinDecision decision) -{} - -/** @brief Trust Center Keepalive Abort - * - * This callback is called when the device should abort the trust center - * keepalive process. - * - */ -void emberAfTrustCenterKeepaliveAbortCallback(void) {} - -/** @brief Trust Center Keepalive Update - * - * This callback is called when the device finishes registration (successfully - * or otherwise) and the trust center keepalive process must be updated. If the - * keepalive process has not been started, then it is started. Otherwise if the - * keepalive is in the process of searching for the TC, it will process the - * result of that Trust Center search operation. - * - * @param registrationComplete Ver.: always - */ -void emberAfTrustCenterKeepaliveUpdateCallback(bool registrationComplete) {} - -/** @brief Unused Pan Id Found - * - * This is called by the framework on behalf of the form-and-join library to - * notify the application of the PAN id and channel found following a call to - * ::emberScanForUnusedPanId(). See form-and-join documentation for more - * information. - * - * @param panId Ver.: always - * @param channel Ver.: always - */ -void emberAfUnusedPanIdFoundCallback(EmberPanId panId, uint8_t channel) {} - -/** @brief Write Attributes Response - * - * This function is called by the application framework when a Write Attributes - * Response command is received from an external device. The application should - * return true if the message was processed or false if it was not. - * - * @param clusterId The cluster identifier of this response. Ver.: always - * @param buffer Buffer containing the list of write attribute status records. - * Ver.: always - * @param bufLen The length in bytes of the list. Ver.: always - */ -bool emberAfWriteAttributesResponseCallback(EmberAfClusterId clusterId, uint8_t * buffer, uint16_t bufLen) -{ - return false; -} - -/** @brief Zigbee Key Establishment - * - * A callback to the application to notify it of the status of the request for a - * Link Key. - * - * @param partner partner The IEEE address of the partner device. Or all zeros - * if the Key establishment failed. Ver.: always - * @param status The status of the key establishment. Ver.: always - */ -void emberAfZigbeeKeyEstablishmentCallback(EmberEUI64 partner, EmberKeyStatus status) {} - -/** - * @brief Called whenever the radio is powered off. - */ -void halRadioPowerDownHandler(void) {} - -/** - * @brief Called whenever the radio is powered on. - */ -void halRadioPowerUpHandler(void) {} - -/** - * @brief Called whenever the microcontroller enters/exits a idle/sleep mode - * - * @param enter True if entering idle/sleep, False if exiting - * @param sleepMode Idle/sleep mode - */ -void halSleepCallback(bool enter, SleepModes sleepMode) {} - -/** @brief Identify Cluster Start Feedback Callback - * - * - * - * @param endpoint Endpoint id - * @param identifyTime Identify time - */ -bool emberAfPluginIdentifyStartFeedbackCallback(uint8_t endpoint, uint16_t identifyTime) -{ - emberAfPrintln(EMBER_AF_PRINT_IDENTIFY_CLUSTER, "Start identify callback on endpoint %d time %d", endpoint, identifyTime); - return false; -} - -/** @brief Identify Cluster Stop Feedback Callback - * - * - * - * @param endpoint Endpoint id - */ -bool emberAfPluginIdentifyStopFeedbackCallback(uint8_t endpoint) -{ - emberAfPrintln(EMBER_AF_PRINT_IDENTIFY_CLUSTER, "Stop identify callback on endpoint %d", endpoint); - return false; -} - -/** @brief Compute Pwm from HSV - * - * This function is called from the color server when it is time for the PWMs to - * be driven with a new value from the HSV values. - * - * @param endpoint The identifying endpoint Ver.: always - */ -void emberAfPluginColorControlServerComputePwmFromHsvCallback(uint8_t endpoint) {} - -/** @brief Compute Pwm from HSV - * - * This function is called from the color server when it is time for the PWMs to - * be driven with a new value from the color temperature. - * - * @param endpoint The identifying endpoint Ver.: always - */ -void emberAfPluginColorControlServerComputePwmFromTempCallback(uint8_t endpoint) {} - -/** @brief Compute Pwm from HSV - * - * This function is called from the color server when it is time for the PWMs to - * be driven with a new value from the color X and color Y values. - * - * @param endpoint The identifying endpoint Ver.: always - */ -void emberAfPluginColorControlServerComputePwmFromXyCallback(uint8_t endpoint) {} diff --git a/examples/wifi-echo/server/esp32/main/gen/callback.h b/examples/wifi-echo/server/esp32/main/gen/callback.h deleted file mode 100644 index aed4de67a17855..00000000000000 --- a/examples/wifi-echo/server/esp32/main/gen/callback.h +++ /dev/null @@ -1,23868 +0,0 @@ -/** - * - * 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 SILABS_EMBER_AF_CALLBACK_PROTOTYPES -#define SILABS_EMBER_AF_CALLBACK_PROTOTYPES - -/** - * @addtogroup callback Application Framework callback interface Reference - * This header provides callback function prototypes to interface the - * developer's application code with the Ember Application Framework. - * @{ - */ - -#include "af-types.h" -//#include "hal/hal.h" -//#include EMBER_AF_API_NETWORK_STEERING - -#ifdef __cplusplus -extern "C" { -#endif // #ifdef __cplusplus - -/** @name Non-Cluster Related Callbacks */ -// @{ -/** @brief Add To Current App Tasks - * - * This function is only useful to sleepy end devices. This function will note - * the passed item as part of a set of tasks the application has outstanding - * (e.g. message sent requiring APS acknwoledgement). This will affect how the - * application behaves with regard to sleeping and polling. Until the - * outstanding task is completed, the device may poll more frequently and sleep - * less often. - * - * @param tasks Ver.: always - */ -void emberAfAddToCurrentAppTasksCallback(EmberAfApplicationTask tasks); -/** @brief Allow Network Write Attribute - * - * This function is called by the application framework before it writes an - * attribute in response to a write attribute request from an external device. - * The value passed into this callback is the value to which the attribute is to - * be set by the framework. - Example: In mirroring simple metering data - * on an Energy Services Interface (ESI) (formerly called Energy Service Portal - * (ESP) in SE 1.0).), a mirrored simple meter needs to write read-only - * attributes on its mirror. The-meter-mirror sample application, located in - * app/framework/sample-apps, uses this callback to allow the mirrored device to - * write simple metering attributes on the mirror regardless of the fact that - * most simple metering attributes are defined as read-only by the ZigBee - * specification. - Note: The ZCL specification does not (as of this - * writing) specify any permission-level security for writing writeable - * attributes. As far as the ZCL specification is concerned, if an attribute is - * writeable, any device that has a link key for the device should be able to - * write that attribute. Furthermore if an attribute is read only, it should not - * be written over the air. Thus, if you implement permissions for writing - * attributes as a feature, you MAY be operating outside the specification. This - * is unlikely to be a problem for writing read-only attributes, but it may be a - * problem for attributes that are writeable according to the specification but - * restricted by the application implementing this callback. - * - * @param endpoint Ver.: always - * @param clusterId Ver.: always - * @param attributeId Ver.: always - * @param mask Ver.: always - * @param manufacturerCode Ver.: always - * @param value Ver.: always - * @param type Ver.: always - */ -EmberAfAttributeWritePermission emberAfAllowNetworkWriteAttributeCallback(uint8_t endpoint, EmberAfClusterId clusterId, - EmberAfAttributeId attributeId, uint8_t mask, - uint16_t manufacturerCode, uint8_t * value, uint8_t type); -/** @brief Attribute Read Access - * - * This function is called whenever the Application Framework needs to check - * access permission for an attribute read. - * - * @param endpoint Ver.: always - * @param clusterId Ver.: always - * @param manufacturerCode Ver.: always - * @param attributeId Ver.: always - */ -bool emberAfAttributeReadAccessCallback(uint8_t endpoint, EmberAfClusterId clusterId, uint16_t manufacturerCode, - uint16_t attributeId); -/** @brief Attribute Write Access - * - * This function is called whenever the Application Framework needs to check - * access permission for an attribute write. - * - * @param endpoint Ver.: always - * @param clusterId Ver.: always - * @param manufacturerCode Ver.: always - * @param attributeId Ver.: always - */ -bool emberAfAttributeWriteAccessCallback(uint8_t endpoint, EmberAfClusterId clusterId, uint16_t manufacturerCode, - uint16_t attributeId); -/** @brief Clear Report Table - * - * This function is called by the framework when the application should clear - * the report table. - * - */ -EmberStatus emberAfClearReportTableCallback(void); -/** @brief Cluster Init - * - * This function is called when a specific cluster is initialized. It gives the - * application an opportunity to take care of cluster initialization procedures. - * It is called exactly once for each endpoint where cluster is present. - * - * @param endpoint Ver.: always - * @param clusterId Ver.: always - */ -void emberAfClusterInitCallback(uint8_t endpoint, EmberAfClusterId clusterId); -/** @brief Cluster Security Custom - * - * This callback is fired when determining if APS encryption is required for a - * cluster outside of the specification's required clusters. In other words, - * for the Smart Energy profile this would be a cluster beyond the list that - * normally requires APS encryption. - * - * @param profileId The profile ID Ver.: always - * @param clusterId The cluster ID Ver.: always - * @param incoming Whether this is an incoming or outgoing message. Ver.: - * always - * @param commandId The ZCL command ID being sent/received. Ver.: always - */ -bool emberAfClusterSecurityCustomCallback(EmberAfProfileId profileId, EmberAfClusterId clusterId, bool incoming, uint8_t commandId); -/** @brief Configure Reporting Command - * - * This function is called by the application framework when a Configure - * Reporting command is received from an external device. The Configure - * Reporting command contains a series of attribute reporting configuration - * records. The application should return true if the message was processed or - * false if it was not. - * - * @param cmd Ver.: always - */ -bool emberAfConfigureReportingCommandCallback(const EmberAfClusterCommand * cmd); -/** @brief Configure Reporting Response - * - * This function is called by the application framework when a Configure - * Reporting Response command is received from an external device. The - * application should return true if the message was processed or false if it - * was not. - * - * @param clusterId The cluster identifier of this response. Ver.: always - * @param buffer Buffer containing the list of attribute status records. Ver.: - * always - * @param bufLen The length in bytes of the list. Ver.: always - */ -bool emberAfConfigureReportingResponseCallback(EmberAfClusterId clusterId, uint8_t * buffer, uint16_t bufLen); -/** @brief Default Response - * - * This function is called by the application framework when a Default Response - * command is received from an external device. The application should return - * true if the message was processed or false if it was not. - * - * @param clusterId The cluster identifier of this response. Ver.: always - * @param commandId The command identifier to which this is a response. Ver.: - * always - * @param status Specifies either SUCCESS or the nature of the error that was - * detected in the received command. Ver.: always - */ -bool emberAfDefaultResponseCallback(EmberAfClusterId clusterId, uint8_t commandId, EmberAfStatus status); -/** @brief Discover Attributes Response - * - * This function is called by the application framework when a Discover - * Attributes Response or Discover Attributes Extended Response command is - * received from an external device. The Discover Attributes Response command - * contains a bool indicating if discovery is complete and a list of zero or - * more attribute identifier/type records. The final argument indicates whether - * the response is in the extended format or not. The application should return - * true if the message was processed or false if it was not. - * - * @param clusterId The cluster identifier of this response. Ver.: always - * @param discoveryComplete Indicates whether there are more attributes to be - * discovered. true if there are no more attributes to be discovered. Ver.: - * always - * @param buffer Buffer containing the list of attribute identifier/type - * records. Ver.: always - * @param bufLen The length in bytes of the list. Ver.: always - * @param extended Indicates whether the response is in the extended format or - * not. Ver.: always - */ -bool emberAfDiscoverAttributesResponseCallback(EmberAfClusterId clusterId, bool discoveryComplete, uint8_t * buffer, - uint16_t bufLen, bool extended); -/** @brief Discover Commands Generated Response - * - * This function is called by the framework when Discover Commands Generated - * Response is received. - * - * @param clusterId The cluster identifier of this response. Ver.: always - * @param manufacturerCode Manufacturer code Ver.: always - * @param discoveryComplete Indicates whether there are more commands to be - * discovered. Ver.: always - * @param commandIds Buffer containing the list of command identifiers. Ver.: - * always - * @param commandIdCount The length of bytes of the list, whish is the same as - * the number of identifiers. Ver.: always - */ -bool emberAfDiscoverCommandsGeneratedResponseCallback(EmberAfClusterId clusterId, uint16_t manufacturerCode, bool discoveryComplete, - uint8_t * commandIds, uint16_t commandIdCount); -/** @brief Discover Commands Received Response - * - * This function is called by the framework when Discover Commands Received - * Response is received. - * - * @param clusterId The cluster identifier of this response. Ver.: always - * @param manufacturerCode Manufacturer code Ver.: always - * @param discoveryComplete Indicates whether there are more commands to be - * discovered. Ver.: always - * @param commandIds Buffer containing the list of command identifiers. Ver.: - * always - * @param commandIdCount The length of bytes of the list, whish is the same as - * the number of identifiers. Ver.: always - */ -bool emberAfDiscoverCommandsReceivedResponseCallback(EmberAfClusterId clusterId, uint16_t manufacturerCode, bool discoveryComplete, - uint8_t * commandIds, uint16_t commandIdCount); -/** @brief Eeprom Init - * - * Tells the system to initialize the EEPROM if it is not already initialized. - * - */ -void emberAfEepromInitCallback(void); -/** @brief Eeprom Note Initialized State - * - * Records the state of the EEPROM so that an intelligent driver (like the - * EEPROM plugin) can re-initialize the driver prior to any calls to it. - * - * @param state The state of the EEPROM, false=re-initalization needed, - * true=no-re-init needed Ver.: always - */ -void emberAfEepromNoteInitializedStateCallback(bool state); -/** @brief Eeprom Shutdown - * - * Tells the system to shutdown the EEPROM if it is not already shutdown. - * - */ -void emberAfEepromShutdownCallback(void); -/** @brief Energy Scan Result - * - * This is called by the low-level stack code when an 802.15.4 energy scan - * completes. - * - * @param channel The channel where the energy scan took place. Ver.: always - * @param rssi The receive signal strength indicator for the channel. Ver.: - * always - */ -void emberAfEnergyScanResultCallback(uint8_t channel, int8_t rssi); -/** @brief External Attribute Read - * - * Like emberAfExternalAttributeWriteCallback above, this function is called - * when the framework needs to read an attribute that is not stored within the - * Application Framework's data structures. - All of the important - * information about the attribute itself is passed as a pointer to an - * EmberAfAttributeMetadata struct, which is stored within the application and - * used to manage the attribute. A complete description of the - * EmberAfAttributeMetadata struct is provided in - * app/framework/include/af-types.h - This function assumes that the - * application is able to read the attribute, write it into the passed buffer, - * and return immediately. Any attributes that require a state machine for - * reading and writing are not really candidates for externalization at the - * present time. The Application Framework does not currently include a state - * machine for reading or writing attributes that must take place across a - * series of application ticks. Attributes that cannot be read in a timely - * manner should be stored within the Application Framework and updated - * occasionally by the application code from within the - * emberAfMainTickCallback. - If the application was successfully able to - * read the attribute and write it into the passed buffer, it should return a - * value of EMBER_ZCL_STATUS_SUCCESS. Ensure that the size of the externally - * managed attribute value is smaller than what the buffer can hold. In the case - * of a buffer overflow throw an appropriate error such as - * EMBER_ZCL_STATUS_INSUFFICIENT_SPACE. Any other return value indicates the - * application was not able to read the attribute. - * - * @param endpoint Ver.: always - * @param clusterId Ver.: always - * @param attributeMetadata Ver.: always - * @param manufacturerCode Ver.: always - * @param buffer Ver.: always - * @param maxReadLength Ver.: always - */ -EmberAfStatus emberAfExternalAttributeReadCallback(uint8_t endpoint, EmberAfClusterId clusterId, - EmberAfAttributeMetadata * attributeMetadata, uint16_t manufacturerCode, - uint8_t * buffer, uint16_t maxReadLength); -/** @brief External Attribute Write - * - * This function is called whenever the Application Framework needs to write an - * attribute which is not stored within the data structures of the Application - * Framework itself. One of the new features in Version 2 is the ability to - * store attributes outside the Framework. This is particularly useful for - * attributes that do not need to be stored because they can be read off the - * hardware when they are needed, or are stored in some central location used by - * many modules within the system. In this case, you can indicate that the - * attribute is stored externally. When the framework needs to write an external - * attribute, it makes a call to this callback. - This callback is very - * useful for host micros which need to store attributes in persistent memory. - * Because each host micro (used with an Ember NCP) has its own type of - * persistent memory storage, the Application Framework does not include the - * ability to mark attributes as stored in flash the way that it does for Ember - * SoCs like the EM35x. On a host micro, any attributes that need to be stored - * in persistent memory should be marked as external and accessed through the - * external read and write callbacks. Any host code associated with the - * persistent storage should be implemented within this callback. - All of - * the important information about the attribute itself is passed as a pointer - * to an EmberAfAttributeMetadata struct, which is stored within the application - * and used to manage the attribute. A complete description of the - * EmberAfAttributeMetadata struct is provided in - * app/framework/include/af-types.h. - This function assumes that the - * application is able to write the attribute and return immediately. Any - * attributes that require a state machine for reading and writing are not - * candidates for externalization at the present time. The Application Framework - * does not currently include a state machine for reading or writing attributes - * that must take place across a series of application ticks. Attributes that - * cannot be written immediately should be stored within the Application - * Framework and updated occasionally by the application code from within the - * emberAfMainTickCallback. - If the application was successfully able to - * write the attribute, it returns a value of EMBER_ZCL_STATUS_SUCCESS. Any - * other return value indicates the application was not able to write the - * attribute. - * - * @param endpoint Ver.: always - * @param clusterId Ver.: always - * @param attributeMetadata Ver.: always - * @param manufacturerCode Ver.: always - * @param buffer Ver.: always - */ -EmberAfStatus emberAfExternalAttributeWriteCallback(uint8_t endpoint, EmberAfClusterId clusterId, - EmberAfAttributeMetadata * attributeMetadata, uint16_t manufacturerCode, - uint8_t * buffer); -/** @brief Find Unused Pan Id And Form - * - * This function is called by the framework to search for an unused PAN id and - * form a new network. The application should return EMBER_SUCCESS if the - * operation was initiated successfully. - * - */ -EmberStatus emberAfFindUnusedPanIdAndFormCallback(void); -/** @brief Get Current App Tasks - * - * This function is only useful to sleepy end devices. This function will - * return the set of tasks the application has outstanding. These tasks affect - * how the application behaves with regard to sleeping and polling. - * - */ -EmberAfApplicationTask emberAfGetCurrentAppTasksCallback(void); -/** @brief Get Current Poll Control - * - * This function will retrieve the current poll control that the system is using - * for the current network. This is determined by examining all the scheduled - * events and obtaining the most restrictive poll control context across all - * events. The most restrictive poll control is EMBER_AF_SHORT_POLL followed by - * EMBER_AF_LONG_POLL. - * - */ -EmberAfEventPollControl emberAfGetCurrentPollControlCallback(void); -/** @brief Get Current Poll Interval Ms - * - * This function is only useful to end devices. This function will return the - * current poll interval (in milliseconds) for the current network. This - * interval is the maximum amount of time a child is currently waiting between - * polls of its parent. - * - */ -uint32_t emberAfGetCurrentPollIntervalMsCallback(void); -/** @brief Get Current Poll Interval Qs - * - * This function is only useful to end devices. This function will return the - * current poll interval (in quarter seconds) for the current network. This - * interval is the maximum amount of time a child is currently waiting between - * polls of its parent. - * - */ -uint32_t emberAfGetCurrentPollIntervalQsCallback(void); -/** @brief Get Current Sleep Control - * - * This function will retrieve the current sleep control that the system is - * using. This is determined by examining all the scheduled events and - * obtaining the most restrictive sleep control context across all events. The - * most restrictive sleep control is EMBER_AF_STAY_AWAKE followed by - * EMBER_AF_OK_TO_SLEEP. - * - */ -EmberAfEventSleepControl emberAfGetCurrentSleepControlCallback(void); -/** @brief Get Current Time - * - * This callback is called when device attempts to get current time from the - * hardware. If this device has means to retrieve exact time, then this method - * should implement it. If the callback can't provide the exact time it should - * return 0 to indicate failure. Default action is to return 0, which indicates - * that device does not have access to real time. - * - */ -uint32_t emberAfGetCurrentTimeCallback(void); -/** @brief Get Default Poll Control - * - * This function will retrieve the default poll control for the current network - * as previously set by emberAfSetDefaultPollControlCallback(). The default - * poll control will limit whether the network can long poll. - * - */ -EmberAfEventPollControl emberAfGetDefaultPollControlCallback(void); -/** @brief Get Default Sleep Control - * - * This function will retrieve the default sleep control the system is using as - * previously set by emberAfSetDefaultSleepControlCallback(). The default sleep - * control will limit whether the device can sleep. - * - */ -EmberAfEventSleepControl emberAfGetDefaultSleepControlCallback(void); -/** @brief Get Endpoint By Index - * - * Get the endpoint number based on the passed index. By default the framework - * handles this by managing endpoints based on the precompiled configuration - * defined in AppBuilder. This callback can override this behavior at runtime - * and provide additional endpoints or different data than the compiled values. - * If the index is overridden than the callback shall return true and set the - * endpointReturn parameter accordingly. A value of 0xFF means the endpoint - * doesn't exist at that index. - Otherwise false must be returned by the - * callback and the default framework behavior will be executed. This is only - * applicable to the SOC devices. - * - * @param index The index of the endpoint. Ver.: always - * @param endpointReturn The value of endpoint. Ver.: always - */ -bool emberAfGetEndpointByIndexCallback(uint8_t index, uint8_t * endpointReturn); -/** @brief Get Endpoint Description - * - * This callback is called by the framework whenever it receives a ZDO request - * to enumerate the details about an endpoint. By default the framework - * provides the information based on the precompiled endpoint information as - * defined in AppBuilder. This callback can override that behavior at runtime - * and return different information. If the endpoint information is being - * overridden then the callback must return true. Otherwise it should return - * false, which allows the framework to perform its default behavior. This is - * only applicable to SOC devices. - * - * @param endpoint The endpoint number that is being queried. Ver.: always - * @param result This is a pointer to a data structure where the endpoint - * information is written if the callback is providing the information. Ver.: - * always - */ -bool emberAfGetEndpointDescriptionCallback(uint8_t endpoint, EmberEndpointDescription * result); -/** @brief Get Endpoint Info - * - * This function is a callback to an application implemented endpoint that - * operates outside the normal application framework. When the framework wishes - * to perform operations with that endpoint it uses this callback to retrieve - * the endpoint's information. If the endpoint exists and the application can - * provide data then true shall be returned. Otherwise the callback must return - * false. - * - * @param endpoint The endpoint to retrieve data for. Ver.: always - * @param returnNetworkIndex The index corresponding to the ZigBee network the - * endpoint belongs to. If not using a multi-network device, 0 must be - * returned. Otherwise on a multi-network device the stack will switch to this - * network before sending the message. Ver.: always - * @param returnEndpointInfo A pointer to a data struct that will be written - * with information about the endpoint. Ver.: always - */ -bool emberAfGetEndpointInfoCallback(uint8_t endpoint, uint8_t * returnNetworkIndex, EmberAfEndpointInfoStruct * returnEndpointInfo); -/** @brief Get Form And Join Extended Pan Id - * - * This callback is called by the framework to get the extended PAN ID used by - * the current network for forming and joining. The extended PAN ID used for - * forming and joining is not necessarily the same extended PAN ID actually in - * use on the network. - * - * @param resultLocation Ver.: always - */ -void emberAfGetFormAndJoinExtendedPanIdCallback(uint8_t * resultLocation); -/** @brief Get Long Poll Interval Ms - * - * This function is only useful to end devices. This function will return the - * long poll interval (in milliseconds) for the current network. This interval - * is the maximum amount of time a child will wait between polls of its parent - * when it is not expecting data. - * - */ -uint32_t emberAfGetLongPollIntervalMsCallback(void); -/** @brief Get Long Poll Interval Qs - * - * This function is only useful to end devices. This function will return the - * long poll interval (in quarter seconds) for the current network. This - * interval is the maximum amount of time a child will wait between polls of its - * parent when it is not expecting data. - * - */ -uint32_t emberAfGetLongPollIntervalQsCallback(void); -/** @brief Get Short Poll Interval Ms - * - * This function is only useful to sleepy end devices. This function will - * return the short poll interval (in milliseconds) for the current network. - * This interval is the maximum amount of time a child will wait between polls - * of its parent when it is expecting data. - * - */ -uint16_t emberAfGetShortPollIntervalMsCallback(void); -/** @brief Get Short Poll Interval Qs - * - * This function is only useful to sleepy end devices. This function will - * return the short poll interval (in quarter seconds) for the current network. - * This interval is the maximum amount of time a child will wait between polls - * of its parent when it is expecting data. - * - */ -uint16_t emberAfGetShortPollIntervalQsCallback(void); -/** @brief Get Source Route Overhead - * - * This function is called by the framework to determine the overhead required - * in the network frame for source routing to a particular destination. - * - * @param destination The node id of the destination Ver.: always - */ -uint8_t emberAfGetSourceRouteOverheadCallback(EmberNodeId destination); -/** @brief Get Wake Timeout Bitmask - * - * This function is only useful to sleepy end devices. This function will - * return the wake timeout bitmask for the current network. The bitmask - * determines which tasks will timeout automatically and which tasks require - * manual removal from the task list. - * - */ -EmberAfApplicationTask emberAfGetWakeTimeoutBitmaskCallback(void); -/** @brief Get Wake Timeout Ms - * - * This function is only useful to sleepy end devices. This function will - * return the wake timeout (in milliseconds) for the current network. This - * timeout is the maximum amount of time a child will wait for a task in the - * wake bitmask to finish. While waiting, the device will short poll. - * - */ -uint16_t emberAfGetWakeTimeoutMsCallback(void); -/** @brief Get Wake Timeout Qs - * - * This function is only useful to sleepy end devices. This function will - * return the wake timeout (in quarter seconds) for the current network. This - * timeout is the maximum amount of time a child will wait for a task in the - * wake bitmask to finish. While waiting, the device will short poll. - * - */ -uint16_t emberAfGetWakeTimeoutQsCallback(void); -/** @brief Hal Button Isr - * - * This callback is called by the framework whenever a button is pressed on the - * device. This callback is called within ISR context. - * - * @param button The button which has changed state, either BUTTON0 or BUTTON1 - * as defined in the appropriate BOARD_HEADER. Ver.: always - * @param state The new state of the button referenced by the button parameter, - * either ::BUTTON_PRESSED if the button has been pressed or ::BUTTON_RELEASED - * if the button has been released. Ver.: always - */ -void emberAfHalButtonIsrCallback(uint8_t button, uint8_t state); -/** @brief Incoming Packet Filter - * - * ** REQUIRES INCLUDING THE PACKET-HANDOFF PLUGIN ** - - This is called by - * the Packet Handoff plugin when the stack receives a packet from one of the - * protocol layers specified in ::EmberZigbeePacketType. - - The packetType - * argument is one of the values of the ::EmberZigbeePacketType enum. If the - * stack receives an 802.15.4 MAC beacon, it will call this function with the - * packetType argument set to ::EMBER_ZIGBEE_PACKET_TYPE_BEACON. - - The - * implementation of this callback may alter the data contained in packetData, - * modify options and flags in the auxillary data, or consume the packet itself, - * either sending the message, or discarding it as it sees fit. - * - * @param packetType the type of packet and associated protocol layer Ver.: - * always - * @param packetData flat buffer containing the packet data associated with the - * packet type Ver.: always - * @param size_p a pointer containing the size value of the packet Ver.: always - * @param data auxillary data included with the packet Ver.: always - */ -EmberPacketAction emberAfIncomingPacketFilterCallback(EmberZigbeePacketType packetType, uint8_t * packetData, uint8_t * size_p, - void * data); -/** @brief Initiate Inter Pan Key Establishment - * - * This function is called by the framework to initiate key establishment with a - * remote device on a different PAN. The application should return - * EMBER_SUCCESS if key establishment was initiated successfully. The - * application should call ::emberAfInterPanKeyEstablishmentCallback as events - * occur. - * - * @param panId The PAN id of the remote device. Ver.: always - * @param eui64 The EUI64 of the remote device. Ver.: always - */ -EmberStatus emberAfInitiateInterPanKeyEstablishmentCallback(EmberPanId panId, const EmberEUI64 eui64); -/** @brief Initiate Key Establishment - * - * This function is called by the framework to initiate key establishment with a - * remote device. The application should return EMBER_SUCCESS if key - * establishment was initiated successfully. The application should call - * ::emberAfKeyEstablishmentCallback as events occur. - * - * @param nodeId The node id of the remote device. Ver.: always - * @param endpoint The endpoint on the remote device. Ver.: always - */ -EmberStatus emberAfInitiateKeyEstablishmentCallback(EmberNodeId nodeId, uint8_t endpoint); -/** @brief Initiate Partner Link Key Exchange - * - * This function is called by the framework to initiate a partner link key - * exchange with a remote device. The application should return EMBER_SUCCESS - * if the partner link key exchange was initiated successfully. When the - * partner link key exchange completes, the application should call the given - * callback. - * - * @param target The node id of the remote device. Ver.: always - * @param endpoint The key establishment endpoint of the remote device. Ver.: - * always - * @param callback The callback that should be called when the partner link key - * exchange completse. Ver.: always - */ -EmberStatus emberAfInitiatePartnerLinkKeyExchangeCallback(EmberNodeId target, uint8_t endpoint, - EmberAfPartnerLinkKeyExchangeCallback * callback); -/** @brief Inter Pan Key Establishment - * - * A callback by the key-establishment code to indicate an event has occurred. - * For error codes this is purely a notification. For non-error status codes - * (besides LINK_KEY_ESTABLISHED), it is the application's chance to allow or - * disallow the operation. If the application returns true then the key - * establishment is allowed to proceed. If it returns false, then key - * establishment is aborted. LINK_KEY_ESTABLISHED is a notification of success. - * - * @param status Ver.: always - * @param amInitiator Ver.: always - * @param panId Ver.: always - * @param eui64 Ver.: always - * @param delayInSeconds Ver.: always - */ -bool emberAfInterPanKeyEstablishmentCallback(EmberAfKeyEstablishmentNotifyMessage status, bool amInitiator, EmberPanId panId, - const EmberEUI64 eui64, uint8_t delayInSeconds); -/** @brief Interpan Send Message - * - * This function will send a raw MAC message with interpan frame format using - * the passed parameters. - * - * @param header Interpan header info Ver.: always - * @param messageLength The length of the message received or to send Ver.: - * always - * @param message The message data received or to send. Ver.: always - */ -EmberStatus emberAfInterpanSendMessageCallback(EmberAfInterpanHeader * header, uint16_t messageLength, uint8_t * message); -/** @brief Key Establishment - * - * A callback by the key-establishment code to indicate an event has occurred. - * For error codes this is purely a notification. For non-error status codes - * (besides LINK_KEY_ESTABLISHED), it is the application's chance to allow or - * disallow the operation. If the application returns true then the key - * establishment is allowed to proceed. If it returns false, then key - * establishment is aborted. LINK_KEY_ESTABLISHED is a notification of success. - * - * @param status Ver.: always - * @param amInitiator Ver.: always - * @param partnerShortId Ver.: always - * @param delayInSeconds Ver.: always - */ -bool emberAfKeyEstablishmentCallback(EmberAfKeyEstablishmentNotifyMessage status, bool amInitiator, EmberNodeId partnerShortId, - uint8_t delayInSeconds); -/** @brief Main Init - * - * This function is called from the application's main function. It gives the - * application a chance to do any initialization required at system startup. Any - * code that you would normally put into the top of the application's main() - * routine should be put into this function. This is called before the clusters, - * plugins, and the network are initialized so some functionality is not yet - * available. - Note: No callback in the Application Framework is - * associated with resource cleanup. If you are implementing your application on - * a Unix host where resource cleanup is a consideration, we expect that you - * will use the standard Posix system calls, including the use of atexit() and - * handlers for signals such as SIGTERM, SIGINT, SIGCHLD, SIGPIPE and so on. If - * you use the signal() function to register your signal handler, please mind - * the returned value which may be an Application Framework function. If the - * return value is non-null, please make sure that you call the returned - * function from your handler to avoid negating the resource cleanup of the - * Application Framework itself. - * - */ -void emberAfMainInitCallback(void); -/** @brief Main Start - * - * This function is called at the start of main after the HAL has been - * initialized. The standard main function arguments of argc and argv are - * passed in. However not all platforms have support for main() function - * arguments. Those that do not are passed NULL for argv, therefore argv should - * be checked for NULL before using it. If the callback determines that the - * program must exit, it should return true. The value returned by main() will - * be the value written to the returnCode pointer. Otherwise the callback - * should return false to let normal execution continue. - * - * @param returnCode Ver.: always - * @param argc Ver.: always - * @param argv Ver.: always - */ -bool emberAfMainStartCallback(int * returnCode, int argc, char ** argv); -/** @brief Main Tick - * - * Whenever main application tick is called, this callback will be called at the - * end of the main tick execution. - * - */ -void emberAfMainTickCallback(void); -/** @brief Mark Buffers - * - * This function is called when the garbage collector runs. Any buffers held by - * the application must be marked. - * - */ -void emberAfMarkBuffersCallback(void); -/** @brief Message Sent - * - * This function is called by the application framework from the message sent - * handler, when it is informed by the stack regarding the message sent status. - * All of the values passed to the emberMessageSentHandler are passed on to this - * callback. This provides an opportunity for the application to verify that its - * message has been sent successfully and take the appropriate action. This - * callback should return a bool value of true or false. A value of true - * indicates that the message sent notification has been handled and should not - * be handled by the application framework. - * - * @param type Ver.: always - * @param indexOrDestination Ver.: always - * @param apsFrame Ver.: always - * @param msgLen Ver.: always - * @param message Ver.: always - * @param status Ver.: always - */ -bool emberAfMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, EmberApsFrame * apsFrame, - uint16_t msgLen, uint8_t * message, EmberStatus status); -/** @brief Ncp Init - * - * This function is called when the network coprocessor is being initialized, - * either at startup or upon reset. It provides applications on opportunity to - * perform additional configuration of the NCP. The function is always called - * twice when the NCP is initialized. In the first invocation, memoryAllocation - * will be true and the application should only issue EZSP commands that affect - * memory allocation on the NCP. For example, tables on the NCP can be resized - * in the first call. In the second invocation, memoryAllocation will be false - * and the application should only issue EZSP commands that do not affect memory - * allocation. For example, tables on the NCP can be populated in the second - * call. This callback is not called on SoCs. - * - * @param memoryAllocation Ver.: always - */ -void emberAfNcpInitCallback(bool memoryAllocation); -/** @brief Ncp Is Awake Isr - * - * This function is called IN ISR CONTEXT. It notes that the NCP is awake after - * sleeping. Care should be taken to do minimal processing in this ISR handler - * function. - * - */ -void emberAfNcpIsAwakeIsrCallback(void); -/** @brief Network Found - * - * This callback is generated when an active scan finds a 802.15.4 network. - * - * @param networkFound A struct containing information about the network found. - * Ver.: always - * @param lqi The link quality indication of the network found. Ver.: always - * @param rssi The received signal strength indication of the network found. - * Ver.: always - */ -void emberAfNetworkFoundCallback(EmberZigbeeNetwork * networkFound, uint8_t lqi, int8_t rssi); -/** @brief Network Key Update Complete - * - * This is called by the framework when a network key update operation started - * by the trust center is complete. - * - * @param status Ver.: always - */ -void emberAfNetworkKeyUpdateCompleteCallback(EmberStatus status); -/** @brief Ota Bootload - * - * The platform specific routine to bootload the device from a ZigBee - * over-the-air upgrade file. - * - * @param id A pointer to the structure that contains the information about what - * OTA image to bootload. Ver.: always - * @param ncpUpgradeTagId The tag ID of the upgrade data that will be used to - * bootload the device. Ver.: always - */ -uint8_t emberAfOtaBootloadCallback(const EmberAfOtaImageId * id, uint16_t ncpUpgradeTagId); -/** @brief Ota Client Bootload - * - * This callback is fired when the OTA Client recevies a command to bootload the - * newly downloaded OTA image. This callback will perform the platform specific - * to bootload their device. - * - * @param id This is the identifier relating to the image that has been - * downloaded and is ready for bootload. Ver.: always - */ -void emberAfOtaClientBootloadCallback(const EmberAfOtaImageId * id); -/** @brief Ota Client Custom Verify - * - * This callback is executed by the OTA client after the signature verification - * has successfully completed. It allows the device to do its own custom - * verification of the image (such as verifying that the EBL is intact). - * - * @param newVerification This indicates if a new verification should be - * started. Ver.: always - * @param id This is ID of the image to be verified. Ver.: always - */ -EmberAfImageVerifyStatus emberAfOtaClientCustomVerifyCallback(bool newVerification, const EmberAfOtaImageId * id); -/** @brief Ota Client Download Complete - * - * This callback indicates that the OTA client has completed the download of a - * file. If the file has been completely downloaded and cryptographic checks - * have been turned on, then those will be performed prior to this callback and - * that outcome included in the 'success' result. On failure, this callback is - * merely informative, and the return type is ignored. On succesful download, - * this callback allows the client to perform any additional verification of the - * downloaded image and return that result to the OTA server. - * - * @param success This indicates the success or failure of the download and - * cryptographic verification process (if applicable). Ver.: always - * @param id This is the image identifier information that corresponds to the - * download result. Ver.: always - */ -bool emberAfOtaClientDownloadCompleteCallback(EmberAfOtaDownloadResult success, const EmberAfOtaImageId * id); -/** @brief Ota Client Incoming Message Raw - * - * This callback is for processing incoming messages for the Over-the-air - * bootload cluster client. ZCL will not process the message and instead hand - * the raw over the air data to the callback for its own processing. - * - * @param message A pointer to the structure containing the message buffer and - * other information about it. Ver.: always - */ -bool emberAfOtaClientIncomingMessageRawCallback(EmberAfClusterCommand * message); -/** @brief Ota Client Start - * - * This callback should be called when the profile specific registration has - * completed successfully. It will start the client's state machine that will - * find the OTA server, query it for the next image, download the image, wait - * for the bootload message, and kick off the bootload. - * - */ -void emberAfOtaClientStartCallback(void); -/** @brief Ota Client Version Info - * - * This function is called by the OTA client when a new query will occur to the - * server asking what the next version of firmware is. The client can inform - * the cluster software as to what information to use in the query (and - * subsequent download). - * - * @param currentImageInfo This is the information to use in the next query by - * the client cluster code. It contains the manufacturer ID, image type ID, and - * the firmware version to be specified in the query message sent to the server. - * Ver.: always - * @param hardwareVersion This is a pointer to the hardware version to use in - * the query. If no hardware version should be used, then - * EMBER_AF_INVALID_HARDWARE_VERSION should be used. Ver.: always - */ -void emberAfOtaClientVersionInfoCallback(EmberAfOtaImageId * currentImageInfo, uint16_t * hardwareVersion); -/** @brief Ota Page Request Server Policy - * - * This callback is called by the OTA server page request code when it wants to - * determine if it is allowed for an OTA client to make a page request. It is - * only called if page request support has been enabled on the server. It - * should return EMBER_ZCL_STATUS_SUCCESS if it allows the page request, and - * EMBER_ZCL_STATUS_UNSUP_CLUSTER_COMMAND if it does not want to allow it. - * - */ -uint8_t emberAfOtaPageRequestServerPolicyCallback(void); -/** @brief Ota Server Block Size - * - * This function provides a way for the server to adjust the block size of its - * response to an Image block request by a client. - * - * @param clientNodeId The node Id of OTA client making an image block request. - * Ver.: always - */ -uint8_t emberAfOtaServerBlockSizeCallback(EmberNodeId clientNodeId); -/** @brief Ota Server Incoming Message Raw - * - * This callback is for processing incoming messages for the Over-the-air - * bootload cluster server. ZCL will not process the message and instead hand - * the raw over the air data to the callback for its own processing. - * - * @param message A pointer to the structure containing the message buffer and - * other information about it. Ver.: always - */ -bool emberAfOtaServerIncomingMessageRawCallback(EmberAfClusterCommand * message); -/** @brief Ota Server Query - * - * This callback is fired when the OTA server receives a query request by the - * client. The callback lets the server application indicate to the client what - * the 'next' version of software is for the device, or if there is not one - * available. - * - * @param currentImageId This is the current software image that the client - * hase. Ver.: always - * @param hardwareVersion If this value is non-NULL, it indicates the hardware - * version of the client device. If NULL, the client did not specify a hardware - * version. Ver.: always - * @param nextUpgradeImageId This is a pointer to a data structure containing - * the 'next' software version for the client to download. Ver.: always - */ -uint8_t emberAfOtaServerQueryCallback(const EmberAfOtaImageId * currentImageId, uint16_t * hardwareVersion, - EmberAfOtaImageId * nextUpgradeImageId); -/** @brief Ota Server Send Image Notify - * - * This callback is an indication to the OTA server that it should send out - * notification about an OTA file that is available for download. - * - * @param dest The destination of the image notify message. May be a broadcast - * address. Ver.: always - * @param endpoint The destination endpoint of the image notify message. May be - * a broadcast endpoint. Ver.: always - * @param payloadType The type of data the image notify message will contain. 0 - * = no data. 1 = Manufacturer ID. 2 = Manufacturer ID and the image type ID. - * 3 = Manufacturer ID, image type ID, and firmware version. Ver.: always - * @param queryJitter The percentage of nodes that should respond to this - * message, from 1-100. On receipt of this message, each recipient will - * randomly choose a percentage and only query the server if their percentage is - * below this value. Ver.: always - * @param id The image information that will be put in the message. The data - * within this struct that will be appended to the message is determined by the - * previous 'payloadType' argument. Ver.: always - */ -bool emberAfOtaServerSendImageNotifyCallback(EmberNodeId dest, uint8_t endpoint, uint8_t payloadType, uint8_t queryJitter, - const EmberAfOtaImageId * id); -/** @brief Ota Server Upgrade End Request - * - * This function is called when the OTA server receives a request an upgrade end - * request. If the request indicated a successful download by the client, the - * server must tell the client when and if to upgrade to the downloaded image. - * - * @param source The node ID of the device that sent the upgrade end request. - * Ver.: always - * @param status This is the ZCL status sent by the client indicating the result - * of its attempt to download the new upgrade image. If the status is not - * EMBER_ZCL_STATUS_SUCCESS then this callback is merely informative and no - * response mesasge will be generated by the server. Ver.: always - * @param returnValue If the server returns true indicating that the client - * should apply the upgrade, this time value indicates when in the future the - * client should apply the upgrade. Ver.: always - * @param imageId This variable indicates the software version that the client - * successfully downloaded and is asking to upgrade to. Ver.: always - */ -bool emberAfOtaServerUpgradeEndRequestCallback(EmberNodeId source, uint8_t status, uint32_t * returnValue, - const EmberAfOtaImageId * imageId); -/** @brief Ota Storage Check Temp Data - * - * This callback will validate temporary data in the storage device to determine - * whether it is a complete file, a partially downloaded file, or there is no - * file present. When a complete or partial file is found it will return - * EMBER_AF_OTA_STORAGE_SUCCESS or EMBER_AF_OTA_STORAGE_PARTIAL_FILE_FOUND, - * respectively. In that case, the currentOffset, totalImageSize, and - * newFileInfo will be populated with data. When EMBER_AF_OTA_STORAGE_ERROR is - * returned, no temporary data is present. - * - * @param currentOffset A pointer to a value that will be written with the - * offset within the total file size that has been successfully stored in the - * storage device. This will indicate how much data has been currently - * dowloaded. Ver.: always - * @param totalImageSize A pointer to a value that will be written with the - * total image size of the OTA file when a download has completed. This does - * not indicate how much data has actually been downloaded currently. Ver.: - * always - * @param newFileInfo This is the image id of the temporary file data stored in - * the storage device. Ver.: always - */ -EmberAfOtaStorageStatus emberAfOtaStorageCheckTempDataCallback(uint32_t * currentOffset, uint32_t * totalImageSize, - EmberAfOtaImageId * newFileInfo); -/** @brief Ota Storage Clear Temp Data - * - * This function clears any existing temp data that was downloaed. It is used - * immediately prior to downloading a raw image over the air. - * - */ -EmberAfOtaStorageStatus emberAfOtaStorageClearTempDataCallback(void); -/** @brief Ota Storage Close - * - * This callback shuts down the ZigBee Over-the-air storage module. - * - */ -void emberAfOtaStorageCloseCallback(void); -/** @brief Ota Storage Driver Download Finish - * - * This callback defines the low-level means by which a device records the final - * offset value of the download image. - * - * @param offset The value of the final offset of the image download. Ver.: - * always - */ -void emberAfOtaStorageDriverDownloadFinishCallback(uint32_t offset); -/** @brief Ota Storage Driver Init - * - * The initialization code for the OTA storage driver. - * - */ -bool emberAfOtaStorageDriverInitCallback(void); -/** @brief Ota Storage Driver Invalidate Image - * - * This callback invalidates the image stored on disk so that it will not be - * bootloaded, and it will not be a valid image that is in the middle of - * downloading. - * - */ -EmberAfOtaStorageStatus emberAfOtaStorageDriverInvalidateImageCallback(void); -/** @brief Ota Storage Driver Prepare To Resume Download - * - * This callback allows the underlying storage driver to prepare to resume the - * OTA file download. For example, the driver may exceute a page erase to - * insure the next page is ready to be written to. - * - */ -EmberAfOtaStorageStatus emberAfOtaStorageDriverPrepareToResumeDownloadCallback(void); -/** @brief Ota Storage Driver Read - * - * This callback defines the low-level means by which a device reads from the - * OTA storage device. - * - * @param offset The address offset from the start of the storage device where - * data is to be read. Ver.: always - * @param length The length of the data to be read from the storage device. - * Ver.: always - * @param returnData A pointer where the data read from the device should be - * written to. Ver.: always - */ -bool emberAfOtaStorageDriverReadCallback(uint32_t offset, uint32_t length, uint8_t * returnData); -/** @brief Ota Storage Driver Retrieve Last Stored Offset - * - * This callback defines the low-level means by which a device retrieves the - * last persistently recorded download offset. This may be different than last - * actual download offset. - * - */ -uint32_t emberAfOtaStorageDriverRetrieveLastStoredOffsetCallback(void); -/** @brief Ota Storage Driver Write - * - * This callback defines the low-level means by which a device reads from the - * OTA storage device. - * - * @param dataToWrite A pointer to the data that will be written to the storage - * device. Ver.: always - * @param offset The address offset from the start of the storage device where - * data will be written. Ver.: always - * @param length The length of the data to be written to the storage device. - * Ver.: always - */ -bool emberAfOtaStorageDriverWriteCallback(const uint8_t * dataToWrite, uint32_t offset, uint32_t length); -/** @brief Ota Storage Finish Download - * - * This function indicates to the storage module that the download has finished. - * - * @param offset The final offset of the downloaded file (i.e. the total size) - * Ver.: always - */ -EmberAfOtaStorageStatus emberAfOtaStorageFinishDownloadCallback(uint32_t offset); -/** @brief Ota Storage Get Count - * - * This callback returns the total number of ZigBee Over-the-air upgrade images - * stored in the storage module. - * - */ -uint8_t emberAfOtaStorageGetCountCallback(void); -/** @brief Ota Storage Get Full Header - * - * This callback populates the EmberAfOtaHeader structure pointed to by the - * returnData with data about the OTA file stored in the storage module. - * - * @param id This is a pointer to the image id for the OTA file to retrieve - * information about. Ver.: always - * @param returnData This is a pointer to the location of the structure that - * will be populated with data. Ver.: always - */ -EmberAfOtaStorageStatus emberAfOtaStorageGetFullHeaderCallback(const EmberAfOtaImageId * id, EmberAfOtaHeader * returnData); -/** @brief Ota Storage Get Total Image Size - * - * This function returns the total size of the ZigBee Over-the-air file with the - * passed parameters. If no file is found with those parameters, 0 is returned. - * - * @param id A pointer to the image identifier for the OTA file to retrieve - * information for. Ver.: always - */ -uint32_t emberAfOtaStorageGetTotalImageSizeCallback(const EmberAfOtaImageId * id); -/** @brief Ota Storage Init - * - * This callback initializes the ZigBee Over-the-air storage module. - * - */ -EmberAfOtaStorageStatus emberAfOtaStorageInitCallback(void); -/** @brief Ota Storage Iterator First - * - * This callback lets you walk through the list of all OTA files by jumping to - * the first file in the list maintained by the storage module. If there is no - * file then emberAfOtaInvalidImageId is returned. - * - */ -EmberAfOtaImageId emberAfOtaStorageIteratorFirstCallback(void); -/** @brief Ota Storage Iterator Next - * - * This callback lets you walk through the list of all OTA files by jumping to - * the next file in the list maintained by the storage module. If there is no - * next file then emberAfOtaInvalidImageId is returned. - * - */ -EmberAfOtaImageId emberAfOtaStorageIteratorNextCallback(void); -/** @brief Ota Storage Read Image Data - * - * This callback reads data from the specified OTA file and returns that data to - * the caller. - * - * @param id This is a pointer to the image id for the OTA file to retrieve data - * from. Ver.: always - * @param offset This is the offset relative to the start of the image where the - * data should be read from. Ver.: always - * @param length This is the length of data that will be read. Ver.: always - * @param returnData This is a pointer to where the data read out of the file - * will be written to Ver.: always - * @param returnedLength This is a pointer to a variable where the actual length - * of data read will be written to. A short read may occur if the end of file - * was reached. Ver.: always - */ -EmberAfOtaStorageStatus emberAfOtaStorageReadImageDataCallback(const EmberAfOtaImageId * id, uint32_t offset, uint32_t length, - uint8_t * returnData, uint32_t * returnedLength); -/** @brief Ota Storage Search - * - * This callback searches through the list of all images for one that matches - * the passed parameters. On success an image identifier is returned with a - * matching image. On failure emberAfInvalidImageId is returned. - * - * @param manufacturerId The ZigBee assigned identifier of the manufacturer - * contained in the OTA image being searched for. Ver.: always - * @param imageTypeId The image type identifier contained in the OTA image being - * searched for. Ver.: always - * @param hardwareVersion This is a pointer to the hardware version that will be - * used in the search. If the pointer is NULL, hardware version will not be - * considered when searching for matching images. If it points to a value, the - * search will only consider images where that value falls between the minimum - * and maxmimum hardware version specified in the OTA file. If no hardware - * version is present in an OTA file but the other parameters match, the file - * will be considered a match Ver.: always - */ -EmberAfOtaImageId emberAfOtaStorageSearchCallback(uint16_t manufacturerId, uint16_t imageTypeId, const uint16_t * hardwareVersion); -/** @brief Ota Storage Write Temp Data - * - * This function writes to the temporary data in the storage device at the - * specified offset. It is used when downloading a raw image over the air. - * - * @param offset The location within the download image file where to write the - * data. Ver.: always - * @param length The length of data to write. Ver.: always - * @param data A pointer to the temporary data that will be written to the - * storage device. Ver.: always - */ -EmberAfOtaStorageStatus emberAfOtaStorageWriteTempDataCallback(uint32_t offset, uint32_t length, const uint8_t * data); -/** @brief Outgoing Packet Filter - * - * ** REQUIRES INCLUDING THE PACKET-HANDOFF PLUGIN ** - - This is called by - * the Packet Handoff plugin when the stack prepares to send a packet from one - * of the protocol layers specified in ::EmberZigbeePacketType. - - The - * packetType argument is one of the values of the ::EmberZigbeePacketType enum. - * If the stack receives an 802.15.4 MAC beacon, it will call this function with - * the packetType argument set to ::EMBER_ZIGBEE_PACKET_TYPE_BEACON. - - - * The implementation of this callback may alter the data contained in - * packetData, modify options and flags in the auxillary data, or consume the - * packet itself, either sending the message, or discarding it as it sees fit. - * - * @param packetType the type of packet and associated protocol layer Ver.: - * always - * @param packetData flat buffer containing the packet data associated with the - * packet type Ver.: always - * @param size_p a pointer containing the size value of the packet Ver.: always - * @param data auxillary data included with the packet Ver.: always - */ -EmberPacketAction emberAfOutgoingPacketFilterCallback(EmberZigbeePacketType packetType, uint8_t * packetData, uint8_t * size_p, - void * data); -/** @brief Partner Link Key Exchange Request - * - * This function is called by the framework on SOC platforms when a remote node - * requests a partner link key exchange. The application should return - * EMBER_SUCCESS to accept the request or any other status to reject it. On - * network coprocessor platforms, this function will not be called because the - * NCP handles partner link key exchange requests based on the binding policy. - * - * @param partner The EUI of the remote node. Ver.: always - */ -EmberZdoStatus emberAfPartnerLinkKeyExchangeRequestCallback(EmberEUI64 partner); -/** @brief Partner Link Key Exchange Response - * - * This function is called by the framework when a remote node requests a - * partner link key exchange. The application should return true to accept the - * request or false to reject it. On network coprocessor platforms, this - * function will not be called because the NCP handles partner link key exchange - * requests based on the binding policy. - * - * @param sender The EUI of the remote node. Ver.: always - * @param status The ZDO response status. Ver.: always - */ -void emberAfPartnerLinkKeyExchangeResponseCallback(EmberNodeId sender, EmberZdoStatus status); -/** @brief Performing Key Establishment - * - * This function is called by the framework to determine if the device is - * performing key establishment. The application should return true if key - * establishment is in progress. - * - */ -bool emberAfPerformingKeyEstablishmentCallback(void); -/** @brief Post Attribute Change - * - * This function is called by the application framework after it changes an - * attribute value. The value passed into this callback is the value to which - * the attribute was set by the framework. - * - * @param endpoint Ver.: always - * @param clusterId Ver.: always - * @param attributeId Ver.: always - * @param mask Ver.: always - * @param manufacturerCode Ver.: always - * @param type Ver.: always - * @param size Ver.: always - * @param value Ver.: always - */ -void emberAfPostAttributeChangeCallback(uint8_t endpoint, EmberAfClusterId clusterId, EmberAfAttributeId attributeId, uint8_t mask, - uint16_t manufacturerCode, uint8_t type, uint8_t size, uint8_t * value); -/** @brief Post Em4 Reset - * - * A callback called by application framework, and implemented by em4 plugin - * - */ -void emberAfPostEm4ResetCallback(void); -/** @brief Pre Attribute Change - * - * This function is called by the application framework before it changes an - * attribute value. The value passed into this callback is the value to which - * the attribute is to be set by the framework. The application should return - * ::EMBER_ZCL_STATUS_SUCCESS to permit the change or any other ::EmberAfStatus - * to reject it. - * - * @param endpoint Ver.: always - * @param clusterId Ver.: always - * @param attributeId Ver.: always - * @param mask Ver.: always - * @param manufacturerCode Ver.: always - * @param type Ver.: always - * @param size Ver.: always - * @param value Ver.: always - */ -EmberAfStatus emberAfPreAttributeChangeCallback(uint8_t endpoint, EmberAfClusterId clusterId, EmberAfAttributeId attributeId, - uint8_t mask, uint16_t manufacturerCode, uint8_t type, uint8_t size, - uint8_t * value); -/** @brief Pre Cli Send - * - * This function is called by the framework when it is about to pass a message - * constructed over CLI to the stack primitives for sending. If the function - * returns true it is assumed that the callback has consumed and processed the - * message. The framework will not do any further processing on the message. - - * If the function returns false then it is assumed that the callback has - * not processed the message and the framework will continue to process - * accordingly. - * - * @param apsFrame The structure containing the APS frame Ver.: always - * @param source Source Node Id Ver.: always - * @param destination Destintion Node Id Ver.: always - * @param message Pointer to the message payload Ver.: always - * @param messageLength Length of the message payload Ver.: always - */ -bool emberAfPreCliSendCallback(EmberApsFrame * apsFrame, EmberNodeId source, EmberNodeId destination, uint8_t * message, - uint16_t messageLength); -/** @brief Pre Command Received - * - * This callback is the second in the Application Framework's message processing - * chain. At this point in the processing of incoming over-the-air messages, the - * application has determined that the incoming message is a ZCL command. It - * parses enough of the message to populate an EmberAfClusterCommand struct. The - * Application Framework defines this struct value in a local scope to the - * command processing but also makes it available through a global pointer - * called emberAfCurrentCommand, in app/framework/util/util.c. When command - * processing is complete, this pointer is cleared. - * - * @param cmd Ver.: always - */ -bool emberAfPreCommandReceivedCallback(EmberAfClusterCommand * cmd); -/** @brief Pre Message Received - * - * This callback is the first in the Application Framework's message processing - * chain. The Application Framework calls it when a message has been received - * over the air but has not yet been parsed by the ZCL command-handling code. If - * you wish to parse some messages that are completely outside the ZCL - * specification or are not handled by the Application Framework's command - * handling code, you should intercept them for parsing in this callback. - - * This callback returns a Boolean value indicating whether or not the message - * has been handled. If the callback returns a value of true, then the - * Application Framework assumes that the message has been handled and it does - * nothing else with it. If the callback returns a value of false, then the - * application framework continues to process the message as it would with any - * incoming message. - Note: This callback receives a pointer to an - * incoming message struct. This struct allows the application framework to - * provide a unified interface between both Host devices, which receive their - * message through the ezspIncomingMessageHandler, and SoC devices, which - * receive their message through emberIncomingMessageHandler. - * - * @param incomingMessage Ver.: always - */ -bool emberAfPreMessageReceivedCallback(EmberAfIncomingMessage * incomingMessage); -/** @brief Pre Message Send - * - * This function is called by the framework when it is about to pass a message - * to the stack primitives for sending. This message may or may not be ZCL, - * ZDO, or some other protocol. This is called prior to - any ZigBee - * fragmentation that may be done. If the function returns true it is assumed - * the callback has consumed and processed the message. The callback must also - * set the EmberStatus status code to be passed back to the caller. The - * framework will do no further processing on the message. - If the - * function returns false then it is assumed that the callback has not processed - * the mesasge and the framework will continue to process accordingly. - * - * @param messageStruct The structure containing the parameters of the APS - * message to be sent. Ver.: always - * @param status A pointer to the status code value that will be returned to the - * caller. Ver.: always - */ -bool emberAfPreMessageSendCallback(EmberAfMessageStruct * messageStruct, EmberStatus * status); -/** @brief Pre Ncp Reset - * - * This function will be called prior to the reset of the NCP by the host. - * - */ -void emberAfPreNcpResetCallback(void); -/** @brief Pre ZDO Message Received - * - * This function passes the application an incoming ZDO message and gives the - * appictation the opportunity to handle it. By default, this callback returns - * false indicating that the incoming ZDO message has not been handled and - * should be handled by the Application Framework. - * - * @param emberNodeId Ver.: always - * @param apsFrame Ver.: always - * @param message Ver.: always - * @param length Ver.: always - */ -bool emberAfPreZDOMessageReceivedCallback(EmberNodeId emberNodeId, EmberApsFrame * apsFrame, uint8_t * message, uint16_t length); -/** @brief Read Attributes Response - * - * This function is called by the application framework when a Read Attributes - * Response command is received from an external device. The application should - * return true if the message was processed or false if it was not. - * - * @param clusterId The cluster identifier of this response. Ver.: always - * @param buffer Buffer containing the list of read attribute status records. - * Ver.: always - * @param bufLen The length in bytes of the list. Ver.: always - */ -bool emberAfReadAttributesResponseCallback(EmberAfClusterId clusterId, uint8_t * buffer, uint16_t bufLen); -/** @brief Read Reporting Configuration Command - * - * This function is called by the application framework when a Read Reporting - * Configuration command is received from an external device. The application - * should return true if the message was processed or false if it was not. - * - * @param cmd Ver.: always - */ -bool emberAfReadReportingConfigurationCommandCallback(const EmberAfClusterCommand * cmd); -/** @brief Read Reporting Configuration Response - * - * This function is called by the application framework when a Read Reporting - * Configuration Response command is received from an external device. The - * application should return true if the message was processed or false if it - * was not. - * - * @param clusterId The cluster identifier of this response. Ver.: always - * @param buffer Buffer containing the list of attribute reporting configuration - * records. Ver.: always - * @param bufLen The length in bytes of the list. Ver.: always - */ -bool emberAfReadReportingConfigurationResponseCallback(EmberAfClusterId clusterId, uint8_t * buffer, uint16_t bufLen); -/** @brief Registration Abort - * - * This callback is called when the device should abort the registration - * process. - * - */ -void emberAfRegistrationAbortCallback(void); -/** @brief Registration - * - * This callback is called when the device joins a network and the process of - * registration is complete. This callback provides a success value of true if - * the registration process was successful and a value of false if registration - * failed. - * - * @param success true if registration succeeded, false otherwise. Ver.: always - */ -void emberAfRegistrationCallback(bool success); -/** @brief Registration Start - * - * This callback is called when the device joins a network and the registration - * process should begin. The application should return EMBER_SUCCESS if the - * registration process started successfully. When registration is complete, - * the application should call emberAfRegistrationCallback with an indication of - * success or failure. - * - */ -EmberStatus emberAfRegistrationStartCallback(void); -/** @brief Remote Delete Binding Permission - * - * This function is called by the framework to request permission to service the - * remote delete binding request. Return EMBER_SUCCESS to allow request, - * anything else to disallow request. - * - * @param index index to an Ember binding table entry Ver.: always - */ -EmberStatus emberAfRemoteDeleteBindingPermissionCallback(uint8_t index); -/** @brief Remote Set Binding Permission - * - * This function is called by the framework to request permission to service the - * remote set binding request. Return EMBER_SUCCESS to allow request, anything - * else to disallow request. - * - * @param entry Ember Binding Tablet Entry Ver.: always - */ -EmberStatus emberAfRemoteSetBindingPermissionCallback(const EmberBindingTableEntry * entry); -/** @brief Remove From Current App Tasks - * - * This function is only useful to sleepy end devices. This function will - * remove the passed item from the set of tasks the application has outstanding - * (e.g. message sent requiring APS acknwoledgement). This will affect how the - * application behaves with regard to sleeping and polling. Removing the item - * from the list of outstanding tasks may allow the device to sleep longer and - * poll less frequently. If there are other outstanding tasks the system may - * still have to stay away and poll more often. - * - * @param tasks Ver.: always - */ -void emberAfRemoveFromCurrentAppTasksCallback(EmberAfApplicationTask tasks); -/** @brief Report Attributes - * - * This function is called by the application framework when a Report Attributes - * command is received from an external device. The application should return - * true if the message was processed or false if it was not. - * - * @param clusterId The cluster identifier of this command. Ver.: always - * @param buffer Buffer containing the list of attribute report records. Ver.: - * always - * @param bufLen The length in bytes of the list. Ver.: always - */ -bool emberAfReportAttributesCallback(EmberAfClusterId clusterId, uint8_t * buffer, uint16_t bufLen); -/** @brief Reporting Attribute Change - * - * This function is called by the framework when an attribute managed by the - * framework changes. The application should call this function when an - * externally-managed attribute changes. The application should use the change - * notification to inform its reporting decisions. - * - * @param endpoint Ver.: always - * @param clusterId Ver.: always - * @param attributeId Ver.: always - * @param mask Ver.: always - * @param manufacturerCode Ver.: always - * @param type Ver.: always - * @param data Ver.: always - */ -void emberAfReportingAttributeChangeCallback(uint8_t endpoint, EmberAfClusterId clusterId, EmberAfAttributeId attributeId, - uint8_t mask, uint16_t manufacturerCode, EmberAfAttributeType type, uint8_t * data); -/** @brief Scan Complete - * - * This is called by the low-level stack code when an 802.15.4 active scan - * completes. - * - * @param channel If the status indicates an error, the channel on which the - * error occurred. Otherwise it is undefined for EMBER_SUCCESS. Ver.: always - * @param status The status of the scan. Ver.: always - */ -void emberAfScanCompleteCallback(uint8_t channel, EmberStatus status); -/** @brief Scan Error - * - * This is called by the framework on behalf of the form-and-join library to - * notify the application if an error occurs while scanning. See form-and-join - * documentation for more information. - * - * @param status The status of the scan. Ver.: always - */ -void emberAfScanErrorCallback(EmberStatus status); -/** @brief Security Init - * - * This callback is called by the framework to give the application a chance to - * modify the security settings of the node during network initialization. - * Depending on the context when this callback is called, the pointer to the - * initial security state may be NULL, which means the initial security state - * can no longer be modified as the node is already operating on the network. - * - * @param state Ver.: always - * @param extended Ver.: always - * @param trustCenter Ver.: always - */ -void emberAfSecurityInitCallback(EmberInitialSecurityState * state, EmberExtendedSecurityBitmask * extended, bool trustCenter); -/** @brief Set Default Poll Control - * - * This function will set the default poll control for the current network to - * control whether or not it can long poll. - * - * @param control Ver.: always - */ -void emberAfSetDefaultPollControlCallback(EmberAfEventPollControl control); -/** @brief Set Default Sleep Control - * - * This function will set the default behavior of a sleeping device to control - * whether or not it must stay awake. A device that stays awake does not sleep - * at all. Otherwise, the device can sleep between events when appropriate. - * - * @param control Ver.: always - */ -void emberAfSetDefaultSleepControlCallback(EmberAfEventSleepControl control); -/** @brief Set Form And Join Extended Pan Id - * - * This callback is called by the framework to set the extended PAN ID used by - * the current network for forming and joining. The extended PAN ID used for - * forming and joining is not necessarily the same extended PAN ID actually in - * use on the network. - * - * @param extendedPanId Ver.: always - */ -void emberAfSetFormAndJoinExtendedPanIdCallback(const uint8_t * extendedPanId); -/** @brief Set Long Poll Interval Ms - * - * This function is only useful to end devices. This function will set the long - * poll interval (in milliseconds) for the current network. This interval is - * the maximum amount of time a child will wait between polls of its parent when - * it is not expecting data. - * - * @param longPollIntervalMs Ver.: always - */ -void emberAfSetLongPollIntervalMsCallback(uint32_t longPollIntervalMs); -/** @brief Set Long Poll Interval Qs - * - * This function is only useful to end devices. This function will set the long - * poll interval (in quarter seconds) for the current network. This interval is - * the maximum amount of time a child will wait between polls of its parent when - * it is not expecting data. - * - * @param longPollIntervalQs Ver.: always - */ -void emberAfSetLongPollIntervalQsCallback(uint32_t longPollIntervalQs); -/** @brief Set Short Poll Interval Ms - * - * This function is only useful to sleepy end devices. This function will set - * the short poll interval (in milliseconds) for the current network. This - * interval is the maximum amount of time a child will wait between polls of its - * parent when it is expecting data. - * - * @param shortPollIntervalMs Ver.: always - */ -void emberAfSetShortPollIntervalMsCallback(uint16_t shortPollIntervalMs); -/** @brief Set Short Poll Interval Qs - * - * This function is only useful to sleepy end devices. This function will set - * the short poll interval (in quarter seconds) for the current network. This - * interval is the maximum amount of time a child will wait between polls of its - * parent when it is expecting data. - * - * @param shortPollIntervalQs Ver.: always - */ -void emberAfSetShortPollIntervalQsCallback(uint16_t shortPollIntervalQs); -/** @brief Set Source Route Overhead - * - * This function is called by the framework when it has information about the - * source route overhead to a particular destination. The application may use - * this information to cache the source route overhead. - * - * @param destination The node id of the destination Ver.: always - * @param overhead The overhead in bytes Ver.: always - */ -void emberAfSetSourceRouteOverheadCallback(EmberNodeId destination, uint8_t overhead); -/** @brief Set Time - * - * This callback should be implemented, if the device has access to real time - * clock, and has an ability to update that clock. The application framework - * expects to be passed the utcTime which is the number of seconds since the - * year 2000. Default implementation does nothing. Note: This function used to - * take time in year, month, day, hour, min, sec. We have changed this to - * utcTime in order to conserve code space. - * - * @param utcTime Ver.: always - */ -void emberAfSetTimeCallback(uint32_t utcTime); -/** @brief Set Wake Timeout Bitmask - * - * This function is only useful to sleepy end devices. This function will set - * the wake timeout bitmask for the current network. The bitmask determines - * which tasks will timeout automatically and which tasks require manual removal - * from the task list. - * - * @param tasks Ver.: always - */ -void emberAfSetWakeTimeoutBitmaskCallback(EmberAfApplicationTask tasks); -/** @brief Set Wake Timeout Ms - * - * This function is only useful to sleepy end devices. This function will set - * the wake timeout (in milliseconds) for the current network. This timeout is - * the maximum amount of time a child will wait for a task in the wake bitmask - * to finish. While waiting, the device will short poll. - * - * @param wakeTimeoutMs Ver.: always - */ -void emberAfSetWakeTimeoutMsCallback(uint16_t wakeTimeoutMs); -/** @brief Set Wake Timeout Qs - * - * This function is only useful to sleepy end devices. This function will set - * the wake timeout (in quarter seconds) for the current network. This timeout - * is the maximum amount of time a child will wait for a task in the wake - * bitmask to finish. While waiting, the device will short poll. - * - * @param wakeTimeoutQs Ver.: always - */ -void emberAfSetWakeTimeoutQsCallback(uint16_t wakeTimeoutQs); -/** @brief Stack Status - * - * This function is called by the application framework from the stack status - * handler. This callbacks provides applications an opportunity to be notified - * of changes to the stack status and take appropriate action. The return code - * from this callback is ignored by the framework. The framework will always - * process the stack status after the callback returns. - * - * @param status Ver.: always - */ -bool emberAfStackStatusCallback(EmberStatus status); -/** @brief Start Move - * - * This function is called to initiate the process for a device to move (rejoin) - * to a new parent. - * - */ -bool emberAfStartMoveCallback(void); -/** @brief Start Search For Joinable Network - * - * This function is called by the framework to search for joinable networks and - * join a network. The application should return EMBER_SUCCESS if the operation - * was initiated successfully. - * - */ -EmberStatus emberAfStartSearchForJoinableNetworkCallback(void); -/** @brief Stop Move - * - * This function is called to cancel a previously scheduled move (rejoin) to a - * new parent. - * - */ -void emberAfStopMoveCallback(void); -/** @brief Trust Center Join - * - * This callback is called from within the application framework's - * implementation of emberTrustCenterJoinHandler or ezspTrustCenterJoinHandler. - * This callback provides the same arguments passed to the - * TrustCenterJoinHandler. For more information about the TrustCenterJoinHandler - * please see documentation included in stack/include/trust-center.h. - * - * @param newNodeId Ver.: always - * @param newNodeEui64 Ver.: always - * @param parentOfNewNode Ver.: always - * @param status Ver.: always - * @param decision Ver.: always - */ -void emberAfTrustCenterJoinCallback(EmberNodeId newNodeId, EmberEUI64 newNodeEui64, EmberNodeId parentOfNewNode, - EmberDeviceUpdate status, EmberJoinDecision decision); -/** @brief Trust Center Keepalive Abort - * - * This callback is called when the device should abort the trust center - * keepalive process. - * - */ -void emberAfTrustCenterKeepaliveAbortCallback(void); -/** @brief Trust Center Keepalive Update - * - * This callback is called when the device finishes registration (successfully - * or otherwise) and the trust center keepalive process must be updated. If the - * keepalive process has not been started, then it is started. Otherwise if the - * keepalive is in the process of searching for the TC, it will process the - * result of that Trust Center search operation. - * - * @param registrationComplete Ver.: always - */ -void emberAfTrustCenterKeepaliveUpdateCallback(bool registrationComplete); -/** @brief Unused Pan Id Found - * - * This is called by the framework on behalf of the form-and-join library to - * notify the application of the PAN id and channel found following a call to - * ::emberScanForUnusedPanId(). See form-and-join documentation for more - * information. - * - * @param panId Ver.: always - * @param channel Ver.: always - */ -void emberAfUnusedPanIdFoundCallback(EmberPanId panId, uint8_t channel); -/** @brief Write Attributes Response - * - * This function is called by the application framework when a Write Attributes - * Response command is received from an external device. The application should - * return true if the message was processed or false if it was not. - * - * @param clusterId The cluster identifier of this response. Ver.: always - * @param buffer Buffer containing the list of write attribute status records. - * Ver.: always - * @param bufLen The length in bytes of the list. Ver.: always - */ -bool emberAfWriteAttributesResponseCallback(EmberAfClusterId clusterId, uint8_t * buffer, uint16_t bufLen); -/** @brief Zigbee Key Establishment - * - * A callback to the application to notify it of the status of the request for a - * Link Key. - * - * @param partner partner The IEEE address of the partner device. Or all zeros - * if the Key establishment failed. Ver.: always - * @param status The status of the key establishment. Ver.: always - */ -void emberAfZigbeeKeyEstablishmentCallback(EmberEUI64 partner, EmberKeyStatus status); -/** @} END Non-Cluster Related Callbacks */ - -/** @name Basic Cluster Callbacks */ -// @{ - -/** @brief Basic Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfBasicClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Basic Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfBasicClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Basic Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfBasicClusterClientInitCallback(uint8_t endpoint); -/** @brief Basic Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfBasicClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Basic Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfBasicClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, EmberStatus status); -/** @brief Basic Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfBasicClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Basic Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfBasicClusterClientTickCallback(uint8_t endpoint); -/** @brief Basic Cluster Get Locales Supported - * - * - * - * @param startLocale Ver.: always - * @param maxLocalesRequested Ver.: always - */ -bool emberAfBasicClusterGetLocalesSupportedCallback(uint8_t * startLocale, uint8_t maxLocalesRequested); -/** @brief Basic Cluster Get Locales Supported Response - * - * - * - * @param discoveryComplete Ver.: always - * @param localeSupported Ver.: always - */ -bool emberAfBasicClusterGetLocalesSupportedResponseCallback(uint8_t discoveryComplete, uint8_t * localeSupported); -/** @brief Basic Cluster Reset To Factory Defaults - * - * - * - */ -bool emberAfBasicClusterResetToFactoryDefaultsCallback(void); -/** @brief Basic Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfBasicClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Basic Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfBasicClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Basic Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfBasicClusterServerInitCallback(uint8_t endpoint); -/** @brief Basic Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfBasicClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Basic Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfBasicClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, EmberStatus status); -/** @brief Basic Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfBasicClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Basic Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfBasicClusterServerTickCallback(uint8_t endpoint); - -/** @} END Basic Cluster Callbacks */ - -/** @name Power Configuration Cluster Callbacks */ -// @{ - -/** @brief Power Configuration Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfPowerConfigClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Power Configuration Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfPowerConfigClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Power Configuration Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfPowerConfigClusterClientInitCallback(uint8_t endpoint); -/** @brief Power Configuration Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfPowerConfigClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Power Configuration Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfPowerConfigClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Power Configuration Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfPowerConfigClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Power Configuration Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfPowerConfigClusterClientTickCallback(uint8_t endpoint); -/** @brief Power Configuration Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfPowerConfigClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Power Configuration Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfPowerConfigClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Power Configuration Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfPowerConfigClusterServerInitCallback(uint8_t endpoint); -/** @brief Power Configuration Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfPowerConfigClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Power Configuration Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfPowerConfigClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Power Configuration Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfPowerConfigClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Power Configuration Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfPowerConfigClusterServerTickCallback(uint8_t endpoint); - -/** @} END Power Configuration Cluster Callbacks */ - -/** @name Device Temperature Configuration Cluster Callbacks */ -// @{ - -/** @brief Device Temperature Configuration Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfDeviceTempClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Device Temperature Configuration Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfDeviceTempClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Device Temperature Configuration Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfDeviceTempClusterClientInitCallback(uint8_t endpoint); -/** @brief Device Temperature Configuration Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfDeviceTempClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Device Temperature Configuration Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfDeviceTempClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Device Temperature Configuration Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfDeviceTempClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Device Temperature Configuration Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfDeviceTempClusterClientTickCallback(uint8_t endpoint); -/** @brief Device Temperature Configuration Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfDeviceTempClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Device Temperature Configuration Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfDeviceTempClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Device Temperature Configuration Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfDeviceTempClusterServerInitCallback(uint8_t endpoint); -/** @brief Device Temperature Configuration Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfDeviceTempClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Device Temperature Configuration Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfDeviceTempClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Device Temperature Configuration Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfDeviceTempClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Device Temperature Configuration Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfDeviceTempClusterServerTickCallback(uint8_t endpoint); - -/** @} END Device Temperature Configuration Cluster Callbacks */ - -/** @name Identify Cluster Callbacks */ -// @{ - -/** @brief Identify Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfIdentifyClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Identify Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfIdentifyClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Identify Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfIdentifyClusterClientInitCallback(uint8_t endpoint); -/** @brief Identify Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfIdentifyClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Identify Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfIdentifyClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Identify Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfIdentifyClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Identify Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfIdentifyClusterClientTickCallback(uint8_t endpoint); -/** @brief Identify Cluster E Z Mode Invoke - * - * - * - * @param action Ver.: always - */ -bool emberAfIdentifyClusterEZModeInvokeCallback(uint8_t action); -/** @brief Identify Cluster Identify - * - * - * - * @param identifyTime Ver.: always - */ -bool emberAfIdentifyClusterIdentifyCallback(uint16_t identifyTime); -/** @brief Identify Cluster Identify Query - * - * - * - */ -bool emberAfIdentifyClusterIdentifyQueryCallback(void); -/** @brief Identify Cluster Identify Query Response - * - * - * - * @param timeout Ver.: always - */ -bool emberAfIdentifyClusterIdentifyQueryResponseCallback(uint16_t timeout); -/** @brief Identify Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfIdentifyClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Identify Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfIdentifyClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Identify Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfIdentifyClusterServerInitCallback(uint8_t endpoint); -/** @brief Identify Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfIdentifyClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Identify Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfIdentifyClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Identify Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfIdentifyClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Identify Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfIdentifyClusterServerTickCallback(uint8_t endpoint); -/** @brief Identify Cluster Trigger Effect - * - * - * - * @param effectId Ver.: always - * @param effectVariant Ver.: always - */ -bool emberAfIdentifyClusterTriggerEffectCallback(uint8_t effectId, uint8_t effectVariant); -/** @brief Identify Cluster Update Commission State - * - * - * - * @param action Ver.: always - * @param commissionStateMask Ver.: always - */ -bool emberAfIdentifyClusterUpdateCommissionStateCallback(uint8_t action, uint8_t commissionStateMask); - -bool emberAfPluginIdentifyStartFeedbackCallback(uint8_t endpoint, uint16_t identifyTime); - -bool emberAfPluginIdentifyStopFeedbackCallback(uint8_t endpoint); - -/** @} END Identify Cluster Callbacks */ - -/** @name Groups Cluster Callbacks */ -// @{ - -/** @brief Groups Cluster Clear Group Table - * - * This function is called by the framework when the application should clear - * the group table. - * - * @param endpoint The endpoint. Ver.: always - */ -void emberAfGroupsClusterClearGroupTableCallback(uint8_t endpoint); -/** @brief Groups Cluster Endpoint In Group - * - * This function is called by the framework when it needs to determine if an - * endpoint is a member of a group. The application should return true if the - * endpoint is a member of the group and false otherwise. - * - * @param endpoint The endpoint. Ver.: always - * @param groupId The group identifier. Ver.: always - */ -bool emberAfGroupsClusterEndpointInGroupCallback(uint8_t endpoint, uint16_t groupId); -/** @brief Groups Cluster Add Group - * - * - * - * @param groupId Ver.: always - * @param groupName Ver.: always - */ -bool emberAfGroupsClusterAddGroupCallback(uint16_t groupId, uint8_t * groupName); -/** @brief Groups Cluster Add Group If Identifying - * - * - * - * @param groupId Ver.: always - * @param groupName Ver.: always - */ -bool emberAfGroupsClusterAddGroupIfIdentifyingCallback(uint16_t groupId, uint8_t * groupName); -/** @brief Groups Cluster Add Group Response - * - * - * - * @param status Ver.: always - * @param groupId Ver.: always - */ -bool emberAfGroupsClusterAddGroupResponseCallback(uint8_t status, uint16_t groupId); -/** @brief Groups Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfGroupsClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Groups Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfGroupsClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Groups Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfGroupsClusterClientInitCallback(uint8_t endpoint); -/** @brief Groups Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfGroupsClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Groups Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfGroupsClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Groups Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfGroupsClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Groups Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfGroupsClusterClientTickCallback(uint8_t endpoint); -/** @brief Groups Cluster Get Group Membership - * - * - * - * @param groupCount Ver.: always - * @param groupList Ver.: always - */ -bool emberAfGroupsClusterGetGroupMembershipCallback(uint8_t groupCount, uint8_t * groupList); -/** @brief Groups Cluster Get Group Membership Response - * - * - * - * @param capacity Ver.: always - * @param groupCount Ver.: always - * @param groupList Ver.: always - */ -bool emberAfGroupsClusterGetGroupMembershipResponseCallback(uint8_t capacity, uint8_t groupCount, uint8_t * groupList); -/** @brief Groups Cluster Remove All Groups - * - * - * - */ -bool emberAfGroupsClusterRemoveAllGroupsCallback(void); -/** @brief Groups Cluster Remove Group - * - * - * - * @param groupId Ver.: always - */ -bool emberAfGroupsClusterRemoveGroupCallback(uint16_t groupId); -/** @brief Groups Cluster Remove Group Response - * - * - * - * @param status Ver.: always - * @param groupId Ver.: always - */ -bool emberAfGroupsClusterRemoveGroupResponseCallback(uint8_t status, uint16_t groupId); -/** @brief Groups Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfGroupsClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Groups Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfGroupsClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Groups Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfGroupsClusterServerInitCallback(uint8_t endpoint); -/** @brief Groups Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfGroupsClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Groups Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfGroupsClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Groups Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfGroupsClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Groups Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfGroupsClusterServerTickCallback(uint8_t endpoint); -/** @brief Groups Cluster View Group - * - * - * - * @param groupId Ver.: always - */ -bool emberAfGroupsClusterViewGroupCallback(uint16_t groupId); -/** @brief Groups Cluster View Group Response - * - * - * - * @param status Ver.: always - * @param groupId Ver.: always - * @param groupName Ver.: always - */ -bool emberAfGroupsClusterViewGroupResponseCallback(uint8_t status, uint16_t groupId, uint8_t * groupName); - -/** @} END Groups Cluster Callbacks */ - -/** @name Groups Server Cluster Plugin Callbacks */ -// @{ - -/** @brief Get Group Name - * - * This function returns the name of a group with the provided group ID, should - * it exist. - * - * @param endpoint Endpoint Ver.: always - * @param groupId Group ID Ver.: always - * @param groupName Group Name Ver.: always - */ -void emberAfPluginGroupsServerGetGroupNameCallback(uint8_t endpoint, uint16_t groupId, uint8_t * groupName); -/** @brief Set Group Name - * - * This function sets the name of a group with the provided group ID. - * - * @param endpoint Endpoint Ver.: always - * @param groupId Group ID Ver.: always - * @param groupName Group Name Ver.: always - */ -void emberAfPluginGroupsServerSetGroupNameCallback(uint8_t endpoint, uint16_t groupId, uint8_t * groupName); -/** @brief Group Names Supported - * - * This function returns whether or not group names are supported. - * - * @param endpoint Endpoint Ver.: always - */ -bool emberAfPluginGroupsServerGroupNamesSupportedCallback(uint8_t endpoint); -/** @} END Groups Server Cluster Plugin Callbacks */ - -/** @name Scenes Cluster Callbacks */ -// @{ - -/** @brief Scenes Cluster ClearSceneTable - * - * This function is called by the framework when the application should clear - * the scene table. - * - * @param endpoint The endpoint. Ver.: always - */ -void emberAfScenesClusterClearSceneTableCallback(uint8_t endpoint); -/** @brief Scenes Cluster Make Invalid - * - * This function is called to invalidate the valid attribute in the Scenes - * cluster. - * - * @param endpoint Ver.: always - */ -EmberAfStatus emberAfScenesClusterMakeInvalidCallback(uint8_t endpoint); -/** @brief Scenes Cluster Recall Saved Scene - * - * This function is called by the framework when the application should recall a - * saved scene. - * - * @param endpoint The endpoint. Ver.: always - * @param groupId The group identifier. Ver.: always - * @param sceneId The scene identifier. Ver.: always - */ -EmberAfStatus emberAfScenesClusterRecallSavedSceneCallback(uint8_t endpoint, uint16_t groupId, uint8_t sceneId); -/** @brief Scenes Cluster Remove Scenes In Group - * - * This function removes the scenes from a specified group. - * - * @param endpoint Endpoint Ver.: always - * @param groupId Group ID Ver.: always - */ -void emberAfScenesClusterRemoveScenesInGroupCallback(uint8_t endpoint, uint16_t groupId); -/** @brief Scenes Cluster Add Scene - * - * - * - * @param groupId Ver.: always - * @param sceneId Ver.: always - * @param transitionTime Ver.: always - * @param sceneName Ver.: always - * @param extensionFieldSets Ver.: always - */ -bool emberAfScenesClusterAddSceneCallback(uint16_t groupId, uint8_t sceneId, uint16_t transitionTime, uint8_t * sceneName, - uint8_t * extensionFieldSets); -/** @brief Scenes Cluster Add Scene Response - * - * - * - * @param status Ver.: always - * @param groupId Ver.: always - * @param sceneId Ver.: always - */ -bool emberAfScenesClusterAddSceneResponseCallback(uint8_t status, uint16_t groupId, uint8_t sceneId); -/** @brief Scenes Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfScenesClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Scenes Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfScenesClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Scenes Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfScenesClusterClientInitCallback(uint8_t endpoint); -/** @brief Scenes Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfScenesClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Scenes Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfScenesClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Scenes Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfScenesClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Scenes Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfScenesClusterClientTickCallback(uint8_t endpoint); -/** @brief Scenes Cluster Copy Scene - * - * - * - * @param mode Ver.: always - * @param groupIdFrom Ver.: always - * @param sceneIdFrom Ver.: always - * @param groupIdTo Ver.: always - * @param sceneIdTo Ver.: always - */ -bool emberAfScenesClusterCopySceneCallback(uint8_t mode, uint16_t groupIdFrom, uint8_t sceneIdFrom, uint16_t groupIdTo, - uint8_t sceneIdTo); -/** @brief Scenes Cluster Copy Scene Response - * - * - * - * @param status Ver.: always - * @param groupIdFrom Ver.: always - * @param sceneIdFrom Ver.: always - */ -bool emberAfScenesClusterCopySceneResponseCallback(uint8_t status, uint16_t groupIdFrom, uint8_t sceneIdFrom); -/** @brief Scenes Cluster Enhanced Add Scene - * - * - * - * @param groupId Ver.: always - * @param sceneId Ver.: always - * @param transitionTime Ver.: always - * @param sceneName Ver.: always - * @param extensionFieldSets Ver.: always - */ -bool emberAfScenesClusterEnhancedAddSceneCallback(uint16_t groupId, uint8_t sceneId, uint16_t transitionTime, uint8_t * sceneName, - uint8_t * extensionFieldSets); -/** @brief Scenes Cluster Enhanced Add Scene Response - * - * - * - * @param status Ver.: always - * @param groupId Ver.: always - * @param sceneId Ver.: always - */ -bool emberAfScenesClusterEnhancedAddSceneResponseCallback(uint8_t status, uint16_t groupId, uint8_t sceneId); -/** @brief Scenes Cluster Enhanced View Scene - * - * - * - * @param groupId Ver.: always - * @param sceneId Ver.: always - */ -bool emberAfScenesClusterEnhancedViewSceneCallback(uint16_t groupId, uint8_t sceneId); -/** @brief Scenes Cluster Enhanced View Scene Response - * - * - * - * @param status Ver.: always - * @param groupId Ver.: always - * @param sceneId Ver.: always - * @param transitionTime Ver.: always - * @param sceneName Ver.: always - * @param extensionFieldSets Ver.: always - */ -bool emberAfScenesClusterEnhancedViewSceneResponseCallback(uint8_t status, uint16_t groupId, uint8_t sceneId, - uint16_t transitionTime, uint8_t * sceneName, - uint8_t * extensionFieldSets); -/** @brief Scenes Cluster Get Scene Membership - * - * - * - * @param groupId Ver.: always - */ -bool emberAfScenesClusterGetSceneMembershipCallback(uint16_t groupId); -/** @brief Scenes Cluster Get Scene Membership Response - * - * - * - * @param status Ver.: always - * @param capacity Ver.: always - * @param groupId Ver.: always - * @param sceneCount Ver.: always - * @param sceneList Ver.: always - */ -bool emberAfScenesClusterGetSceneMembershipResponseCallback(uint8_t status, uint8_t capacity, uint16_t groupId, uint8_t sceneCount, - uint8_t * sceneList); -/** @brief Scenes Cluster Recall Scene - * - * - * - * @param groupId Ver.: always - * @param sceneId Ver.: always - * @param transitionTime Ver.: since zcl-7.0-07-5123-07 - */ -bool emberAfScenesClusterRecallSceneCallback(uint16_t groupId, uint8_t sceneId, uint16_t transitionTime); -/** @brief Scenes Cluster Remove All Scenes - * - * - * - * @param groupId Ver.: always - */ -bool emberAfScenesClusterRemoveAllScenesCallback(uint16_t groupId); -/** @brief Scenes Cluster Remove All Scenes Response - * - * - * - * @param status Ver.: always - * @param groupId Ver.: always - */ -bool emberAfScenesClusterRemoveAllScenesResponseCallback(uint8_t status, uint16_t groupId); -/** @brief Scenes Cluster Remove Scene - * - * - * - * @param groupId Ver.: always - * @param sceneId Ver.: always - */ -bool emberAfScenesClusterRemoveSceneCallback(uint16_t groupId, uint8_t sceneId); -/** @brief Scenes Cluster Remove Scene Response - * - * - * - * @param status Ver.: always - * @param groupId Ver.: always - * @param sceneId Ver.: always - */ -bool emberAfScenesClusterRemoveSceneResponseCallback(uint8_t status, uint16_t groupId, uint8_t sceneId); -/** @brief Scenes Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfScenesClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Scenes Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfScenesClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Scenes Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfScenesClusterServerInitCallback(uint8_t endpoint); -/** @brief Scenes Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfScenesClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Scenes Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfScenesClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Scenes Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfScenesClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Scenes Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfScenesClusterServerTickCallback(uint8_t endpoint); -/** @brief Scenes Cluster Store Scene - * - * - * - * @param groupId Ver.: always - * @param sceneId Ver.: always - */ -bool emberAfScenesClusterStoreSceneCallback(uint16_t groupId, uint8_t sceneId); -/** @brief Scenes Cluster Store Scene Response - * - * - * - * @param status Ver.: always - * @param groupId Ver.: always - * @param sceneId Ver.: always - */ -bool emberAfScenesClusterStoreSceneResponseCallback(uint8_t status, uint16_t groupId, uint8_t sceneId); -/** @brief Scenes Cluster View Scene - * - * - * - * @param groupId Ver.: always - * @param sceneId Ver.: always - */ -bool emberAfScenesClusterViewSceneCallback(uint16_t groupId, uint8_t sceneId); -/** @brief Scenes Cluster View Scene Response - * - * - * - * @param status Ver.: always - * @param groupId Ver.: always - * @param sceneId Ver.: always - * @param transitionTime Ver.: always - * @param sceneName Ver.: always - * @param extensionFieldSets Ver.: always - */ -bool emberAfScenesClusterViewSceneResponseCallback(uint8_t status, uint16_t groupId, uint8_t sceneId, uint16_t transitionTime, - uint8_t * sceneName, uint8_t * extensionFieldSets); -/** @brief Scenes Cluster Store Current Scene - * - * This function is called by the framework when the application should store - * the current scene. If an entry already exists in the scene table with the - * same scene and group ids, the application should update the entry with the - * current scene. Otherwise, a new entry should be adde to the scene table, if - * possible. - * - * @param endpoint The endpoint. Ver.: always - * @param groupId The group identifier. Ver.: always - * @param sceneId The scene identifier. Ver.: always - */ -EmberAfStatus emberAfScenesClusterStoreCurrentSceneCallback(uint8_t endpoint, uint16_t groupId, uint8_t sceneId); - -/** @} END Scenes Cluster Callbacks */ - -/** @name On/off Cluster Callbacks */ -// @{ - -/** @brief On/off Cluster Level Control Effect - * - * This is called by the framework when the on/off cluster initiates a command - * that must effect a level control change. The implementation assumes that the - * client will handle any effect on the On/Off Cluster. - * - * @param endpoint Ver.: always - * @param newValue Ver.: always - */ -void emberAfOnOffClusterLevelControlEffectCallback(uint8_t endpoint, bool newValue); -/** @brief On/off Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfOnOffClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief On/off Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfOnOffClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief On/off Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfOnOffClusterClientInitCallback(uint8_t endpoint); -/** @brief On/off Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfOnOffClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief On/off Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfOnOffClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, EmberStatus status); -/** @brief On/off Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfOnOffClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief On/off Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfOnOffClusterClientTickCallback(uint8_t endpoint); -/** @brief On/off Cluster Off - * - * - * - */ -bool emberAfOnOffClusterOffCallback(void); -/** @brief On/off Cluster Off With Effect - * - * - * - * @param effectId Ver.: always - * @param effectVariant Ver.: always - */ -bool emberAfOnOffClusterOffWithEffectCallback(uint8_t effectId, uint8_t effectVariant); -/** @brief On/off Cluster On - * - * - * - */ -bool emberAfOnOffClusterOnCallback(void); -/** @brief On/off Cluster On With Recall Global Scene - * - * - * - */ -bool emberAfOnOffClusterOnWithRecallGlobalSceneCallback(void); -/** @brief On/off Cluster On With Timed Off - * - * - * - * @param onOffControl Ver.: always - * @param onTime Ver.: always - * @param offWaitTime Ver.: always - */ -bool emberAfOnOffClusterOnWithTimedOffCallback(uint8_t onOffControl, uint16_t onTime, uint16_t offWaitTime); -/** @brief On/off Cluster Sample Mfg Specific Off With Transition - * - * - * - */ -bool emberAfOnOffClusterSampleMfgSpecificOffWithTransitionCallback(void); -/** @brief On/off Cluster Sample Mfg Specific On With Transition2 - * - * - * - */ -bool emberAfOnOffClusterSampleMfgSpecificOnWithTransition2Callback(void); -/** @brief On/off Cluster Sample Mfg Specific On With Transition - * - * - * - */ -bool emberAfOnOffClusterSampleMfgSpecificOnWithTransitionCallback(void); -/** @brief On/off Cluster Sample Mfg Specific Toggle With Transition2 - * - * - * - */ -bool emberAfOnOffClusterSampleMfgSpecificToggleWithTransition2Callback(void); -/** @brief On/off Cluster Sample Mfg Specific Toggle With Transition - * - * - * - */ -bool emberAfOnOffClusterSampleMfgSpecificToggleWithTransitionCallback(void); -/** @brief On/off Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfOnOffClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief On/off Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfOnOffClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief On/off Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfOnOffClusterServerInitCallback(uint8_t endpoint); -/** @brief On/off Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfOnOffClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief On/off Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfOnOffClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, EmberStatus status); -/** @brief On/off Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfOnOffClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief On/off Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfOnOffClusterServerTickCallback(uint8_t endpoint); -/** @brief On/off Cluster Toggle - * - * - * - */ -bool emberAfOnOffClusterToggleCallback(void); - -/** @brief Activate Door Lock Callback - * This function is provided by the door lock server plugin. - * - * @param activate True if the lock should move to the locked position, - * false if it should move to the unlocked position Ver.: always - * - * @returns true if the callback was able to activate/deactivate the Lock. - */ -bool emberAfPluginDoorLockServerActivateDoorLockCallback(bool activate); - -/** @brief On/off Cluster Set Value - * - * This function is called when the on/off value needs to be set, either through - * normal channels or as a result of a level change. - * - * @param endpoint Ver.: always - * @param command Ver.: always - * @param initiatedByLevelChange Ver.: always - */ -EmberAfStatus emberAfOnOffClusterSetValueCallback(uint8_t endpoint, uint8_t command, bool initiatedByLevelChange); -/** @brief On/off Cluster Server Post Init - * - * Following resolution of the On/Off state at startup for this endpoint, perform any - * additional initialization needed; e.g., synchronize hardware state. - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfPluginOnOffClusterServerPostInitCallback(uint8_t endpoint); - -/** @brief Basic Cluster Reset To Factory Defaults - * - * This function is called by the Basic server plugin when a request to - * reset to factory defaults is received. The plugin will reset attributes - * managed by the framework to their default values. - * The application should perform any other necessary reset-related operations - * in this callback, including resetting any externally-stored attributes. - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfPluginBasicResetToFactoryDefaultsCallback(uint8_t endpoint); - -/** @} END On/off Cluster Callbacks */ - -/** @name On/off Switch Configuration Cluster Callbacks */ -// @{ - -/** @brief On/off Switch Configuration Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfOnOffSwitchConfigClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief On/off Switch Configuration Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfOnOffSwitchConfigClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief On/off Switch Configuration Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfOnOffSwitchConfigClusterClientInitCallback(uint8_t endpoint); -/** @brief On/off Switch Configuration Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfOnOffSwitchConfigClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief On/off Switch Configuration Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfOnOffSwitchConfigClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief On/off Switch Configuration Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfOnOffSwitchConfigClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief On/off Switch Configuration Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfOnOffSwitchConfigClusterClientTickCallback(uint8_t endpoint); -/** @brief On/off Switch Configuration Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfOnOffSwitchConfigClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief On/off Switch Configuration Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfOnOffSwitchConfigClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief On/off Switch Configuration Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfOnOffSwitchConfigClusterServerInitCallback(uint8_t endpoint); -/** @brief On/off Switch Configuration Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfOnOffSwitchConfigClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief On/off Switch Configuration Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfOnOffSwitchConfigClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief On/off Switch Configuration Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfOnOffSwitchConfigClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief On/off Switch Configuration Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfOnOffSwitchConfigClusterServerTickCallback(uint8_t endpoint); - -/** @} END On/off Switch Configuration Cluster Callbacks */ - -/** @name Level Control Cluster Callbacks */ -// @{ - -/** @brief Level Control Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfLevelControlClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Level Control Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfLevelControlClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Level Control Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfLevelControlClusterClientInitCallback(uint8_t endpoint); -/** @brief Level Control Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfLevelControlClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Level Control Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfLevelControlClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Level Control Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfLevelControlClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Level Control Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfLevelControlClusterClientTickCallback(uint8_t endpoint); -/** @brief Level Control Cluster Move - * - * - * - * @param moveMode Ver.: always - * @param rate Ver.: always - * @param optionMask Ver.: since zcl6-errata-14-0129-15 - * @param optionOverride Ver.: since zcl6-errata-14-0129-15 - */ -bool emberAfLevelControlClusterMoveCallback(uint8_t moveMode, uint8_t rate, uint8_t optionMask, uint8_t optionOverride); -/** @brief Level Control Cluster Move To Level - * - * - * - * @param level Ver.: always - * @param transitionTime Ver.: always - * @param optionMask Ver.: since zcl6-errata-14-0129-15 - * @param optionOverride Ver.: since zcl6-errata-14-0129-15 - */ -bool emberAfLevelControlClusterMoveToLevelCallback(uint8_t level, uint16_t transitionTime, uint8_t optionMask, - uint8_t optionOverride); -/** @brief Level Control Cluster Move To Level With On Off - * - * - * - * @param level Ver.: always - * @param transitionTime Ver.: always - */ -bool emberAfLevelControlClusterMoveToLevelWithOnOffCallback(uint8_t level, uint16_t transitionTime); -/** @brief Level Control Cluster Move With On Off - * - * - * - * @param moveMode Ver.: always - * @param rate Ver.: always - */ -bool emberAfLevelControlClusterMoveWithOnOffCallback(uint8_t moveMode, uint8_t rate); -/** @brief Level Control Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfLevelControlClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Level Control Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfLevelControlClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Level Control Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfLevelControlClusterServerInitCallback(uint8_t endpoint); -/** @brief Level Control Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfLevelControlClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Level Control Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfLevelControlClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Level Control Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfLevelControlClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Level Control Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfLevelControlClusterServerTickCallback(uint8_t endpoint); -/** @brief Level Control Cluster Step - * - * - * - * @param stepMode Ver.: always - * @param stepSize Ver.: always - * @param transitionTime Ver.: always - * @param optionMask Ver.: since zcl6-errata-14-0129-15 - * @param optionOverride Ver.: since zcl6-errata-14-0129-15 - */ -bool emberAfLevelControlClusterStepCallback(uint8_t stepMode, uint8_t stepSize, uint16_t transitionTime, uint8_t optionMask, - uint8_t optionOverride); -/** @brief Level Control Cluster Step With On Off - * - * - * - * @param stepMode Ver.: always - * @param stepSize Ver.: always - * @param transitionTime Ver.: always - */ -bool emberAfLevelControlClusterStepWithOnOffCallback(uint8_t stepMode, uint8_t stepSize, uint16_t transitionTime); -/** @brief Level Control Cluster Stop - * - * - * - * @param optionMask Ver.: since zcl6-errata-14-0129-15 - * @param optionOverride Ver.: since zcl6-errata-14-0129-15 - */ -bool emberAfLevelControlClusterStopCallback(uint8_t optionMask, uint8_t optionOverride); -/** @brief Level Control Cluster Stop With On Off - * - * - * - */ -bool emberAfLevelControlClusterStopWithOnOffCallback(void); - -/** @} END Level Control Cluster Callbacks */ - -/** @name Alarms Cluster Callbacks */ -// @{ - -/** @brief Alarms Cluster Alarm - * - * - * - * @param alarmCode Ver.: always - * @param clusterId Ver.: always - */ -bool emberAfAlarmClusterAlarmCallback(uint8_t alarmCode, uint16_t clusterId); -/** @brief Alarms Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfAlarmClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Alarms Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfAlarmClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Alarms Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfAlarmClusterClientInitCallback(uint8_t endpoint); -/** @brief Alarms Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfAlarmClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Alarms Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfAlarmClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, EmberStatus status); -/** @brief Alarms Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfAlarmClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Alarms Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfAlarmClusterClientTickCallback(uint8_t endpoint); -/** @brief Alarms Cluster Get Alarm - * - * - * - */ -bool emberAfAlarmClusterGetAlarmCallback(void); -/** @brief Alarms Cluster Get Alarm Response - * - * - * - * @param status Ver.: always - * @param alarmCode Ver.: always - * @param clusterId Ver.: always - * @param timeStamp Ver.: always - */ -bool emberAfAlarmClusterGetAlarmResponseCallback(uint8_t status, uint8_t alarmCode, uint16_t clusterId, uint32_t timeStamp); -/** @brief Alarms Cluster Reset Alarm - * - * - * - * @param alarmCode Ver.: always - * @param clusterId Ver.: always - */ -bool emberAfAlarmClusterResetAlarmCallback(uint8_t alarmCode, uint16_t clusterId); -/** @brief Alarms Cluster Reset Alarm Log - * - * - * - */ -bool emberAfAlarmClusterResetAlarmLogCallback(void); -/** @brief Alarms Cluster Reset All Alarms - * - * - * - */ -bool emberAfAlarmClusterResetAllAlarmsCallback(void); -/** @brief Alarms Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfAlarmClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Alarms Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfAlarmClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Alarms Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfAlarmClusterServerInitCallback(uint8_t endpoint); -/** @brief Alarms Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfAlarmClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Alarms Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfAlarmClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, EmberStatus status); -/** @brief Alarms Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfAlarmClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Alarms Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfAlarmClusterServerTickCallback(uint8_t endpoint); - -/** @} END Alarms Cluster Callbacks */ - -/** @name Time Cluster Callbacks */ -// @{ - -/** @brief Time Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfTimeClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Time Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfTimeClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Time Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfTimeClusterClientInitCallback(uint8_t endpoint); -/** @brief Time Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfTimeClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Time Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfTimeClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, EmberStatus status); -/** @brief Time Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfTimeClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Time Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfTimeClusterClientTickCallback(uint8_t endpoint); -/** @brief Time Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfTimeClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Time Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfTimeClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Time Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfTimeClusterServerInitCallback(uint8_t endpoint); -/** @brief Time Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfTimeClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Time Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfTimeClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, EmberStatus status); -/** @brief Time Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfTimeClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Time Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfTimeClusterServerTickCallback(uint8_t endpoint); - -/** @} END Time Cluster Callbacks */ - -/** @name RSSI Location Cluster Callbacks */ -// @{ - -/** @brief RSSI Location Cluster Anchor Node Announce - * - * - * - * @param anchorNodeIeeeAddress Ver.: always - * @param coordinate1 Ver.: always - * @param coordinate2 Ver.: always - * @param coordinate3 Ver.: always - */ -bool emberAfRssiLocationClusterAnchorNodeAnnounceCallback(uint8_t * anchorNodeIeeeAddress, int16_t coordinate1, int16_t coordinate2, - int16_t coordinate3); -/** @brief RSSI Location Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfRssiLocationClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief RSSI Location Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfRssiLocationClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief RSSI Location Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfRssiLocationClusterClientInitCallback(uint8_t endpoint); -/** @brief RSSI Location Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfRssiLocationClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief RSSI Location Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfRssiLocationClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief RSSI Location Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfRssiLocationClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief RSSI Location Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfRssiLocationClusterClientTickCallback(uint8_t endpoint); -/** @brief RSSI Location Cluster Compact Location Data Notification - * - * - * - * @param locationType Ver.: always - * @param coordinate1 Ver.: always - * @param coordinate2 Ver.: always - * @param coordinate3 Ver.: always - * @param qualityMeasure Ver.: always - * @param locationAge Ver.: always - */ -bool emberAfRssiLocationClusterCompactLocationDataNotificationCallback(uint8_t locationType, int16_t coordinate1, - int16_t coordinate2, int16_t coordinate3, - uint8_t qualityMeasure, uint16_t locationAge); -/** @brief RSSI Location Cluster Device Configuration Response - * - * - * - * @param status Ver.: always - * @param power Ver.: always - * @param pathLossExponent Ver.: always - * @param calculationPeriod Ver.: always - * @param numberRssiMeasurements Ver.: always - * @param reportingPeriod Ver.: always - */ -bool emberAfRssiLocationClusterDeviceConfigurationResponseCallback(uint8_t status, int16_t power, uint16_t pathLossExponent, - uint16_t calculationPeriod, uint8_t numberRssiMeasurements, - uint16_t reportingPeriod); -/** @brief RSSI Location Cluster Get Device Configuration - * - * - * - * @param targetAddress Ver.: always - */ -bool emberAfRssiLocationClusterGetDeviceConfigurationCallback(uint8_t * targetAddress); -/** @brief RSSI Location Cluster Get Location Data - * - * - * - * @param flags Ver.: always - * @param numberResponses Ver.: always - * @param targetAddress Ver.: always - */ -bool emberAfRssiLocationClusterGetLocationDataCallback(uint8_t flags, uint8_t numberResponses, uint8_t * targetAddress); -/** @brief RSSI Location Cluster Location Data Notification - * - * - * - * @param locationType Ver.: always - * @param coordinate1 Ver.: always - * @param coordinate2 Ver.: always - * @param coordinate3 Ver.: always - * @param power Ver.: always - * @param pathLossExponent Ver.: always - * @param locationMethod Ver.: always - * @param qualityMeasure Ver.: always - * @param locationAge Ver.: always - */ -bool emberAfRssiLocationClusterLocationDataNotificationCallback(uint8_t locationType, int16_t coordinate1, int16_t coordinate2, - int16_t coordinate3, int16_t power, uint16_t pathLossExponent, - uint8_t locationMethod, uint8_t qualityMeasure, - uint16_t locationAge); -/** @brief RSSI Location Cluster Location Data Response - * - * - * - * @param status Ver.: always - * @param locationType Ver.: always - * @param coordinate1 Ver.: always - * @param coordinate2 Ver.: always - * @param coordinate3 Ver.: always - * @param power Ver.: always - * @param pathLossExponent Ver.: always - * @param locationMethod Ver.: always - * @param qualityMeasure Ver.: always - * @param locationAge Ver.: always - */ -bool emberAfRssiLocationClusterLocationDataResponseCallback(uint8_t status, uint8_t locationType, int16_t coordinate1, - int16_t coordinate2, int16_t coordinate3, int16_t power, - uint16_t pathLossExponent, uint8_t locationMethod, - uint8_t qualityMeasure, uint16_t locationAge); -/** @brief RSSI Location Cluster Report Rssi Measurements - * - * - * - * @param measuringDevice Ver.: always - * @param neighbors Ver.: always - * @param neighborsInfo Ver.: always - */ -bool emberAfRssiLocationClusterReportRssiMeasurementsCallback(uint8_t * measuringDevice, uint8_t neighbors, - uint8_t * neighborsInfo); -/** @brief RSSI Location Cluster Request Own Location - * - * - * - * @param blindNode Ver.: always - */ -bool emberAfRssiLocationClusterRequestOwnLocationCallback(uint8_t * blindNode); -/** @brief RSSI Location Cluster Rssi Ping - * - * - * - * @param locationType Ver.: always - */ -bool emberAfRssiLocationClusterRssiPingCallback(uint8_t locationType); -/** @brief RSSI Location Cluster Rssi Request - * - * - * - */ -bool emberAfRssiLocationClusterRssiRequestCallback(void); -/** @brief RSSI Location Cluster Rssi Response - * - * - * - * @param replyingDevice Ver.: always - * @param coordinate1 Ver.: always - * @param coordinate2 Ver.: always - * @param coordinate3 Ver.: always - * @param rssi Ver.: always - * @param numberRssiMeasurements Ver.: always - */ -bool emberAfRssiLocationClusterRssiResponseCallback(uint8_t * replyingDevice, int16_t coordinate1, int16_t coordinate2, - int16_t coordinate3, int8_t rssi, uint8_t numberRssiMeasurements); -/** @brief RSSI Location Cluster Send Pings - * - * - * - * @param targetAddress Ver.: always - * @param numberRssiMeasurements Ver.: always - * @param calculationPeriod Ver.: always - */ -bool emberAfRssiLocationClusterSendPingsCallback(uint8_t * targetAddress, uint8_t numberRssiMeasurements, - uint16_t calculationPeriod); -/** @brief RSSI Location Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfRssiLocationClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief RSSI Location Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfRssiLocationClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief RSSI Location Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfRssiLocationClusterServerInitCallback(uint8_t endpoint); -/** @brief RSSI Location Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfRssiLocationClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief RSSI Location Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfRssiLocationClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief RSSI Location Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfRssiLocationClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief RSSI Location Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfRssiLocationClusterServerTickCallback(uint8_t endpoint); -/** @brief RSSI Location Cluster Set Absolute Location - * - * - * - * @param coordinate1 Ver.: always - * @param coordinate2 Ver.: always - * @param coordinate3 Ver.: always - * @param power Ver.: always - * @param pathLossExponent Ver.: always - */ -bool emberAfRssiLocationClusterSetAbsoluteLocationCallback(int16_t coordinate1, int16_t coordinate2, int16_t coordinate3, - int16_t power, uint16_t pathLossExponent); -/** @brief RSSI Location Cluster Set Device Configuration - * - * - * - * @param power Ver.: always - * @param pathLossExponent Ver.: always - * @param calculationPeriod Ver.: always - * @param numberRssiMeasurements Ver.: always - * @param reportingPeriod Ver.: always - */ -bool emberAfRssiLocationClusterSetDeviceConfigurationCallback(int16_t power, uint16_t pathLossExponent, uint16_t calculationPeriod, - uint8_t numberRssiMeasurements, uint16_t reportingPeriod); - -/** @} END RSSI Location Cluster Callbacks */ - -/** @name Binary Input (Basic) Cluster Callbacks */ -// @{ - -/** @brief Binary Input (Basic) Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfBinaryInputBasicClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Binary Input (Basic) Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfBinaryInputBasicClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Binary Input (Basic) Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfBinaryInputBasicClusterClientInitCallback(uint8_t endpoint); -/** @brief Binary Input (Basic) Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfBinaryInputBasicClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Binary Input (Basic) Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfBinaryInputBasicClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Binary Input (Basic) Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfBinaryInputBasicClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Binary Input (Basic) Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfBinaryInputBasicClusterClientTickCallback(uint8_t endpoint); -/** @brief Binary Input (Basic) Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfBinaryInputBasicClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Binary Input (Basic) Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfBinaryInputBasicClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Binary Input (Basic) Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfBinaryInputBasicClusterServerInitCallback(uint8_t endpoint); -/** @brief Binary Input (Basic) Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfBinaryInputBasicClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Binary Input (Basic) Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfBinaryInputBasicClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Binary Input (Basic) Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfBinaryInputBasicClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Binary Input (Basic) Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfBinaryInputBasicClusterServerTickCallback(uint8_t endpoint); - -/** @} END Binary Input (Basic) Cluster Callbacks */ - -/** @name Commissioning Cluster Callbacks */ -// @{ - -/** @brief Commissioning Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfCommissioningClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Commissioning Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfCommissioningClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Commissioning Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfCommissioningClusterClientInitCallback(uint8_t endpoint); -/** @brief Commissioning Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfCommissioningClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Commissioning Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfCommissioningClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Commissioning Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfCommissioningClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Commissioning Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfCommissioningClusterClientTickCallback(uint8_t endpoint); -/** @brief Commissioning Cluster Reset Startup Parameters - * - * - * - * @param options Ver.: always - * @param index Ver.: always - */ -bool emberAfCommissioningClusterResetStartupParametersCallback(uint8_t options, uint8_t index); -/** @brief Commissioning Cluster Reset Startup Parameters Response - * - * - * - * @param status Ver.: always - */ -bool emberAfCommissioningClusterResetStartupParametersResponseCallback(uint8_t status); -/** @brief Commissioning Cluster Restart Device - * - * - * - * @param options Ver.: always - * @param delay Ver.: always - * @param jitter Ver.: always - */ -bool emberAfCommissioningClusterRestartDeviceCallback(uint8_t options, uint8_t delay, uint8_t jitter); -/** @brief Commissioning Cluster Restart Device Response - * - * - * - * @param status Ver.: always - */ -bool emberAfCommissioningClusterRestartDeviceResponseCallback(uint8_t status); -/** @brief Commissioning Cluster Restore Startup Parameters - * - * - * - * @param options Ver.: always - * @param index Ver.: always - */ -bool emberAfCommissioningClusterRestoreStartupParametersCallback(uint8_t options, uint8_t index); -/** @brief Commissioning Cluster Restore Startup Parameters Response - * - * - * - * @param status Ver.: always - */ -bool emberAfCommissioningClusterRestoreStartupParametersResponseCallback(uint8_t status); -/** @brief Commissioning Cluster Save Startup Parameters - * - * - * - * @param options Ver.: always - * @param index Ver.: always - */ -bool emberAfCommissioningClusterSaveStartupParametersCallback(uint8_t options, uint8_t index); -/** @brief Commissioning Cluster Save Startup Parameters Response - * - * - * - * @param status Ver.: always - */ -bool emberAfCommissioningClusterSaveStartupParametersResponseCallback(uint8_t status); -/** @brief Commissioning Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfCommissioningClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Commissioning Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfCommissioningClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Commissioning Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfCommissioningClusterServerInitCallback(uint8_t endpoint); -/** @brief Commissioning Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfCommissioningClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Commissioning Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfCommissioningClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Commissioning Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfCommissioningClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Commissioning Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfCommissioningClusterServerTickCallback(uint8_t endpoint); - -/** @} END Commissioning Cluster Callbacks */ - -/** @name Partition Cluster Callbacks */ -// @{ - -/** @brief Partition Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfPartitionClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Partition Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfPartitionClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Partition Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfPartitionClusterClientInitCallback(uint8_t endpoint); -/** @brief Partition Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfPartitionClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Partition Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfPartitionClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Partition Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfPartitionClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Partition Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfPartitionClusterClientTickCallback(uint8_t endpoint); -/** @brief Partition Cluster Multiple Ack - * - * - * - * @param ackOptions Ver.: always - * @param firstFrameIdAndNackList Ver.: always - */ -bool emberAfPartitionClusterMultipleAckCallback(uint8_t ackOptions, uint8_t * firstFrameIdAndNackList); -/** @brief Partition Cluster Read Handshake Param - * - * - * - * @param partitionedClusterId Ver.: always - * @param attributeList Ver.: always - */ -bool emberAfPartitionClusterReadHandshakeParamCallback(uint16_t partitionedClusterId, uint8_t * attributeList); -/** @brief Partition Cluster Read Handshake Param Response - * - * - * - * @param partitionedClusterId Ver.: always - * @param readAttributeStatusRecords Ver.: always - */ -bool emberAfPartitionClusterReadHandshakeParamResponseCallback(uint16_t partitionedClusterId, uint8_t * readAttributeStatusRecords); -/** @brief Partition Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfPartitionClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Partition Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfPartitionClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Partition Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfPartitionClusterServerInitCallback(uint8_t endpoint); -/** @brief Partition Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfPartitionClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Partition Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfPartitionClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Partition Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfPartitionClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Partition Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfPartitionClusterServerTickCallback(uint8_t endpoint); -/** @brief Partition Cluster Transfer Partitioned Frame - * - * - * - * @param fragmentationOptions Ver.: always - * @param partitionedIndicatorAndFrame Ver.: always - */ -bool emberAfPartitionClusterTransferPartitionedFrameCallback(uint8_t fragmentationOptions, uint8_t * partitionedIndicatorAndFrame); -/** @brief Partition Cluster Write Handshake Param - * - * - * - * @param partitionedClusterId Ver.: always - * @param writeAttributeRecords Ver.: always - */ -bool emberAfPartitionClusterWriteHandshakeParamCallback(uint16_t partitionedClusterId, uint8_t * writeAttributeRecords); - -/** @} END Partition Cluster Callbacks */ - -/** @name Over the Air Bootloading Cluster Callbacks */ -// @{ - -/** @brief Over the Air Bootloading Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfOtaBootloadClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Over the Air Bootloading Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfOtaBootloadClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Over the Air Bootloading Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfOtaBootloadClusterClientInitCallback(uint8_t endpoint); -/** @brief Over the Air Bootloading Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfOtaBootloadClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Over the Air Bootloading Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfOtaBootloadClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Over the Air Bootloading Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfOtaBootloadClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Over the Air Bootloading Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfOtaBootloadClusterClientTickCallback(uint8_t endpoint); -/** @brief Over the Air Bootloading Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfOtaBootloadClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Over the Air Bootloading Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfOtaBootloadClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Over the Air Bootloading Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfOtaBootloadClusterServerInitCallback(uint8_t endpoint); -/** @brief Over the Air Bootloading Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfOtaBootloadClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Over the Air Bootloading Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfOtaBootloadClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Over the Air Bootloading Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfOtaBootloadClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Over the Air Bootloading Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfOtaBootloadClusterServerTickCallback(uint8_t endpoint); - -/** @} END Over the Air Bootloading Cluster Callbacks */ - -/** @name Power Profile Cluster Callbacks */ -// @{ - -/** @brief Power Profile Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfPowerProfileClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Power Profile Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfPowerProfileClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Power Profile Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfPowerProfileClusterClientInitCallback(uint8_t endpoint); -/** @brief Power Profile Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfPowerProfileClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Power Profile Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfPowerProfileClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Power Profile Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfPowerProfileClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Power Profile Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfPowerProfileClusterClientTickCallback(uint8_t endpoint); -/** @brief Power Profile Cluster Energy Phases Schedule Notification - * - * - * - * @param powerProfileId Ver.: always - * @param numOfScheduledPhases Ver.: always - * @param scheduledPhases Ver.: always - */ -bool emberAfPowerProfileClusterEnergyPhasesScheduleNotificationCallback(uint8_t powerProfileId, uint8_t numOfScheduledPhases, - uint8_t * scheduledPhases); -/** @brief Power Profile Cluster Energy Phases Schedule Request - * - * - * - * @param powerProfileId Ver.: always - */ -bool emberAfPowerProfileClusterEnergyPhasesScheduleRequestCallback(uint8_t powerProfileId); -/** @brief Power Profile Cluster Energy Phases Schedule Response - * - * - * - * @param powerProfileId Ver.: always - * @param numOfScheduledPhases Ver.: always - * @param scheduledPhases Ver.: always - */ -bool emberAfPowerProfileClusterEnergyPhasesScheduleResponseCallback(uint8_t powerProfileId, uint8_t numOfScheduledPhases, - uint8_t * scheduledPhases); -/** @brief Power Profile Cluster Energy Phases Schedule State Notification - * - * - * - * @param powerProfileId Ver.: always - * @param numOfScheduledPhases Ver.: always - * @param scheduledPhases Ver.: always - */ -bool emberAfPowerProfileClusterEnergyPhasesScheduleStateNotificationCallback(uint8_t powerProfileId, uint8_t numOfScheduledPhases, - uint8_t * scheduledPhases); -/** @brief Power Profile Cluster Energy Phases Schedule State Request - * - * - * - * @param powerProfileId Ver.: always - */ -bool emberAfPowerProfileClusterEnergyPhasesScheduleStateRequestCallback(uint8_t powerProfileId); -/** @brief Power Profile Cluster Energy Phases Schedule State Response - * - * - * - * @param powerProfileId Ver.: always - * @param numOfScheduledPhases Ver.: always - * @param scheduledPhases Ver.: always - */ -bool emberAfPowerProfileClusterEnergyPhasesScheduleStateResponseCallback(uint8_t powerProfileId, uint8_t numOfScheduledPhases, - uint8_t * scheduledPhases); -/** @brief Power Profile Cluster Get Overall Schedule Price - * - * - * - */ -bool emberAfPowerProfileClusterGetOverallSchedulePriceCallback(void); -/** @brief Power Profile Cluster Get Overall Schedule Price Response - * - * - * - * @param currency Ver.: always - * @param price Ver.: always - * @param priceTrailingDigit Ver.: always - */ -bool emberAfPowerProfileClusterGetOverallSchedulePriceResponseCallback(uint16_t currency, uint32_t price, - uint8_t priceTrailingDigit); -/** @brief Power Profile Cluster Get Power Profile Price - * - * - * - * @param powerProfileId Ver.: always - */ -bool emberAfPowerProfileClusterGetPowerProfilePriceCallback(uint8_t powerProfileId); -/** @brief Power Profile Cluster Get Power Profile Price Extended - * - * - * - * @param options Ver.: always - * @param powerProfileId Ver.: always - * @param powerProfileStartTime Ver.: always - */ -bool emberAfPowerProfileClusterGetPowerProfilePriceExtendedCallback(uint8_t options, uint8_t powerProfileId, - uint16_t powerProfileStartTime); -/** @brief Power Profile Cluster Get Power Profile Price Extended Response - * - * - * - * @param powerProfileId Ver.: always - * @param currency Ver.: always - * @param price Ver.: always - * @param priceTrailingDigit Ver.: always - */ -bool emberAfPowerProfileClusterGetPowerProfilePriceExtendedResponseCallback(uint8_t powerProfileId, uint16_t currency, - uint32_t price, uint8_t priceTrailingDigit); -/** @brief Power Profile Cluster Get Power Profile Price Response - * - * - * - * @param powerProfileId Ver.: always - * @param currency Ver.: always - * @param price Ver.: always - * @param priceTrailingDigit Ver.: always - */ -bool emberAfPowerProfileClusterGetPowerProfilePriceResponseCallback(uint8_t powerProfileId, uint16_t currency, uint32_t price, - uint8_t priceTrailingDigit); -/** @brief Power Profile Cluster Power Profile Notification - * - * - * - * @param totalProfileNum Ver.: always - * @param powerProfileId Ver.: always - * @param numOfTransferredPhases Ver.: always - * @param transferredPhases Ver.: always - */ -bool emberAfPowerProfileClusterPowerProfileNotificationCallback(uint8_t totalProfileNum, uint8_t powerProfileId, - uint8_t numOfTransferredPhases, uint8_t * transferredPhases); -/** @brief Power Profile Cluster Power Profile Request - * - * - * - * @param powerProfileId Ver.: always - */ -bool emberAfPowerProfileClusterPowerProfileRequestCallback(uint8_t powerProfileId); -/** @brief Power Profile Cluster Power Profile Response - * - * - * - * @param totalProfileNum Ver.: always - * @param powerProfileId Ver.: always - * @param numOfTransferredPhases Ver.: always - * @param transferredPhases Ver.: always - */ -bool emberAfPowerProfileClusterPowerProfileResponseCallback(uint8_t totalProfileNum, uint8_t powerProfileId, - uint8_t numOfTransferredPhases, uint8_t * transferredPhases); -/** @brief Power Profile Cluster Power Profile Schedule Constraints Notification - * - * - * - * @param powerProfileId Ver.: always - * @param startAfter Ver.: always - * @param stopBefore Ver.: always - */ -bool emberAfPowerProfileClusterPowerProfileScheduleConstraintsNotificationCallback(uint8_t powerProfileId, uint16_t startAfter, - uint16_t stopBefore); -/** @brief Power Profile Cluster Power Profile Schedule Constraints Request - * - * - * - * @param powerProfileId Ver.: always - */ -bool emberAfPowerProfileClusterPowerProfileScheduleConstraintsRequestCallback(uint8_t powerProfileId); -/** @brief Power Profile Cluster Power Profile Schedule Constraints Response - * - * - * - * @param powerProfileId Ver.: always - * @param startAfter Ver.: always - * @param stopBefore Ver.: always - */ -bool emberAfPowerProfileClusterPowerProfileScheduleConstraintsResponseCallback(uint8_t powerProfileId, uint16_t startAfter, - uint16_t stopBefore); -/** @brief Power Profile Cluster Power Profile State Request - * - * - * - */ -bool emberAfPowerProfileClusterPowerProfileStateRequestCallback(void); -/** @brief Power Profile Cluster Power Profile State Response - * - * - * - * @param powerProfileCount Ver.: always - * @param powerProfileRecords Ver.: always - */ -bool emberAfPowerProfileClusterPowerProfileStateResponseCallback(uint8_t powerProfileCount, uint8_t * powerProfileRecords); -/** @brief Power Profile Cluster Power Profiles State Notification - * - * - * - * @param powerProfileCount Ver.: always - * @param powerProfileRecords Ver.: always - */ -bool emberAfPowerProfileClusterPowerProfilesStateNotificationCallback(uint8_t powerProfileCount, uint8_t * powerProfileRecords); -/** @brief Power Profile Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfPowerProfileClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Power Profile Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfPowerProfileClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Power Profile Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfPowerProfileClusterServerInitCallback(uint8_t endpoint); -/** @brief Power Profile Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfPowerProfileClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Power Profile Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfPowerProfileClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Power Profile Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfPowerProfileClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Power Profile Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfPowerProfileClusterServerTickCallback(uint8_t endpoint); - -/** @} END Power Profile Cluster Callbacks */ - -/** @name Appliance Control Cluster Callbacks */ -// @{ - -/** @brief Appliance Control Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfApplianceControlClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Appliance Control Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfApplianceControlClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Appliance Control Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfApplianceControlClusterClientInitCallback(uint8_t endpoint); -/** @brief Appliance Control Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfApplianceControlClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Appliance Control Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfApplianceControlClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Appliance Control Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfApplianceControlClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Appliance Control Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfApplianceControlClusterClientTickCallback(uint8_t endpoint); -/** @brief Appliance Control Cluster Execution Of A Command - * - * - * - * @param commandId Ver.: always - */ -bool emberAfApplianceControlClusterExecutionOfACommandCallback(uint8_t commandId); -/** @brief Appliance Control Cluster Overload Pause - * - * - * - */ -bool emberAfApplianceControlClusterOverloadPauseCallback(void); -/** @brief Appliance Control Cluster Overload Pause Resume - * - * - * - */ -bool emberAfApplianceControlClusterOverloadPauseResumeCallback(void); -/** @brief Appliance Control Cluster Overload Warning - * - * - * - * @param warningEvent Ver.: always - */ -bool emberAfApplianceControlClusterOverloadWarningCallback(uint8_t warningEvent); -/** @brief Appliance Control Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfApplianceControlClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Appliance Control Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfApplianceControlClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Appliance Control Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfApplianceControlClusterServerInitCallback(uint8_t endpoint); -/** @brief Appliance Control Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfApplianceControlClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Appliance Control Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfApplianceControlClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Appliance Control Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfApplianceControlClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Appliance Control Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfApplianceControlClusterServerTickCallback(uint8_t endpoint); -/** @brief Appliance Control Cluster Signal State - * - * - * - */ -bool emberAfApplianceControlClusterSignalStateCallback(void); -/** @brief Appliance Control Cluster Signal State Notification - * - * - * - * @param applianceStatus Ver.: always - * @param remoteEnableFlagsAndDeviceStatus2 Ver.: always - * @param applianceStatus2 Ver.: always - */ -bool emberAfApplianceControlClusterSignalStateNotificationCallback(uint8_t applianceStatus, - uint8_t remoteEnableFlagsAndDeviceStatus2, - uint32_t applianceStatus2); -/** @brief Appliance Control Cluster Signal State Response - * - * - * - * @param applianceStatus Ver.: always - * @param remoteEnableFlagsAndDeviceStatus2 Ver.: always - * @param applianceStatus2 Ver.: always - */ -bool emberAfApplianceControlClusterSignalStateResponseCallback(uint8_t applianceStatus, uint8_t remoteEnableFlagsAndDeviceStatus2, - uint32_t applianceStatus2); -/** @brief Appliance Control Cluster Write Functions - * - * - * - * @param functionId Ver.: always - * @param functionDataType Ver.: always - * @param functionData Ver.: always - */ -bool emberAfApplianceControlClusterWriteFunctionsCallback(uint16_t functionId, uint8_t functionDataType, uint8_t * functionData); - -/** @} END Appliance Control Cluster Callbacks */ - -/** @name Poll Control Cluster Callbacks */ -// @{ - -/** @brief Poll Control Cluster Check In - * - * - * - */ -bool emberAfPollControlClusterCheckInCallback(void); -/** @brief Poll Control Cluster Check In Response - * - * - * - * @param startFastPolling Ver.: always - * @param fastPollTimeout Ver.: always - */ -bool emberAfPollControlClusterCheckInResponseCallback(uint8_t startFastPolling, uint16_t fastPollTimeout); -/** @brief Poll Control Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfPollControlClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Poll Control Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfPollControlClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Poll Control Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfPollControlClusterClientInitCallback(uint8_t endpoint); -/** @brief Poll Control Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfPollControlClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Poll Control Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfPollControlClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Poll Control Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfPollControlClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Poll Control Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfPollControlClusterClientTickCallback(uint8_t endpoint); -/** @brief Poll Control Cluster Fast Poll Stop - * - * - * - */ -bool emberAfPollControlClusterFastPollStopCallback(void); -/** @brief Poll Control Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfPollControlClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Poll Control Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfPollControlClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Poll Control Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfPollControlClusterServerInitCallback(uint8_t endpoint); -/** @brief Poll Control Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfPollControlClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Poll Control Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfPollControlClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Poll Control Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfPollControlClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Poll Control Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfPollControlClusterServerTickCallback(uint8_t endpoint); -/** @brief Poll Control Cluster Set Long Poll Interval - * - * - * - * @param newLongPollInterval Ver.: always - */ -bool emberAfPollControlClusterSetLongPollIntervalCallback(uint32_t newLongPollInterval); -/** @brief Poll Control Cluster Set Short Poll Interval - * - * - * - * @param newShortPollInterval Ver.: always - */ -bool emberAfPollControlClusterSetShortPollIntervalCallback(uint16_t newShortPollInterval); - -/** @} END Poll Control Cluster Callbacks */ - -/** @name Green Power Cluster Callbacks */ -// @{ - -/** @brief Green Power Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfGreenPowerClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Green Power Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfGreenPowerClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Green Power Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfGreenPowerClusterClientInitCallback(uint8_t endpoint); -/** @brief Green Power Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfGreenPowerClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Green Power Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfGreenPowerClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Green Power Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfGreenPowerClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Green Power Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfGreenPowerClusterClientTickCallback(uint8_t endpoint); -/** @brief Green Power Cluster Gp Commissioning Notification - * - * - * - * @param options Ver.: since gp-1.0-09-5499-24 - * @param gpdSrcId Ver.: since gp-1.0-09-5499-24 - * @param gpdIeee Ver.: since gp-1.0-09-5499-24 - * @param endpoint Ver.: since gp-1.0-09-5499-24 - * @param gpdSecurityFrameCounter Ver.: since gp-1.0-09-5499-24 - * @param gpdCommandId Ver.: since gp-1.0-09-5499-24 - * @param gpdCommandPayload Ver.: since gp-1.0-09-5499-24 - * @param gppShortAddress Ver.: since gp-1.0-09-5499-24 - * @param gppLink Ver.: since gp-1.0-09-5499-24 - * @param mic Ver.: since gp-1.0-09-5499-24 - */ -bool emberAfGreenPowerClusterGpCommissioningNotificationCallback(uint16_t options, uint32_t gpdSrcId, uint8_t * gpdIeee, - uint8_t endpoint, uint32_t gpdSecurityFrameCounter, - uint8_t gpdCommandId, uint8_t * gpdCommandPayload, - uint16_t gppShortAddress, uint8_t gppLink, uint32_t mic); -/** @brief Green Power Cluster Gp Notification - * - * - * - * @param options Ver.: since gp-1.0-09-5499-24 - * @param gpdSrcId Ver.: since gp-1.0-09-5499-24 - * @param gpdIeee Ver.: since gp-1.0-09-5499-24 - * @param gpdEndpoint Ver.: since gp-1.0-09-5499-24 - * @param gpdSecurityFrameCounter Ver.: since gp-1.0-09-5499-24 - * @param gpdCommandId Ver.: since gp-1.0-09-5499-24 - * @param gpdCommandPayload Ver.: since gp-1.0-09-5499-24 - * @param gppShortAddress Ver.: since gp-1.0-09-5499-24 - * @param gppDistance Ver.: since gp-1.0-09-5499-24 - */ -bool emberAfGreenPowerClusterGpNotificationCallback(uint16_t options, uint32_t gpdSrcId, uint8_t * gpdIeee, uint8_t gpdEndpoint, - uint32_t gpdSecurityFrameCounter, uint8_t gpdCommandId, - uint8_t * gpdCommandPayload, uint16_t gppShortAddress, uint8_t gppDistance); -/** @brief Green Power Cluster Gp Notification Response - * - * - * - * @param options Ver.: since gp-1.0-09-5499-24 - * @param gpdSrcId Ver.: since gp-1.0-09-5499-24 - * @param gpdIeee Ver.: since gp-1.0-09-5499-24 - * @param endpoint Ver.: since gp-1.0-09-5499-24 - * @param gpdSecurityFrameCounter Ver.: since gp-1.0-09-5499-24 - */ -bool emberAfGreenPowerClusterGpNotificationResponseCallback(uint8_t options, uint32_t gpdSrcId, uint8_t * gpdIeee, uint8_t endpoint, - uint32_t gpdSecurityFrameCounter); -/** @brief Green Power Cluster Gp Pairing - * - * - * - * @param options Ver.: since gp-1.0-09-5499-24 - * @param gpdSrcId Ver.: since gp-1.0-09-5499-24 - * @param gpdIeee Ver.: since gp-1.0-09-5499-24 - * @param endpoint Ver.: since gp-1.0-09-5499-24 - * @param sinkIeeeAddress Ver.: since gp-1.0-09-5499-24 - * @param sinkNwkAddress Ver.: since gp-1.0-09-5499-24 - * @param sinkGroupId Ver.: since gp-1.0-09-5499-24 - * @param deviceId Ver.: since gp-1.0-09-5499-24 - * @param gpdSecurityFrameCounter Ver.: since gp-1.0-09-5499-24 - * @param gpdKey Ver.: since gp-1.0-09-5499-24 - * @param assignedAlias Ver.: since gp-1.0-09-5499-24 - * @param groupcastRadius Ver.: since gp-1.0-09-5499-24 - */ -bool emberAfGreenPowerClusterGpPairingCallback(uint32_t options, uint32_t gpdSrcId, uint8_t * gpdIeee, uint8_t endpoint, - uint8_t * sinkIeeeAddress, uint16_t sinkNwkAddress, uint16_t sinkGroupId, - uint8_t deviceId, uint32_t gpdSecurityFrameCounter, uint8_t * gpdKey, - uint16_t assignedAlias, uint8_t groupcastRadius); -/** @brief Green Power Cluster Gp Pairing Configuration - * - * - * - * @param actions Ver.: since gp-1.0-09-5499-24 - * @param options Ver.: since gp-1.0-09-5499-24 - * @param gpdSrcId Ver.: since gp-1.0-09-5499-24 - * @param gpdIeee Ver.: since gp-1.0-09-5499-24 - * @param endpoint Ver.: since gp-1.0-09-5499-24 - * @param deviceId Ver.: since gp-1.0-09-5499-24 - * @param groupListCount Ver.: since gp-1.0-09-5499-24 - * @param groupList Ver.: since gp-1.0-09-5499-24 - * @param gpdAssignedAlias Ver.: since gp-1.0-09-5499-24 - * @param groupcastRadius Ver.: since gp-1.0-15-2014-05-CCB2180 - * @param securityOptions Ver.: since gp-1.0-09-5499-24 - * @param gpdSecurityFrameCounter Ver.: since gp-1.0-09-5499-24 - * @param gpdSecurityKey Ver.: since gp-1.0-09-5499-24 - * @param numberOfPairedEndpoints Ver.: since gp-1.0-09-5499-24 - * @param pairedEndpoints Ver.: since gp-1.0-09-5499-24 - * @param applicationInformation Ver.: always - * @param manufacturerId Ver.: always - * @param modeId Ver.: always - * @param numberOfGpdCommands Ver.: always - * @param gpdCommandIdList Ver.: always - * @param clusterIdListCount Ver.: always - * @param clusterListServer Ver.: always - * @param clusterListClient Ver.: always - * @param switchInformationLength Ver.: always - * @param switchConfiguration Ver.: always - * @param currentContactStatus Ver.: always - * @param totalNumberOfReports Ver.: always - * @param numberOfReports Ver.: always - * @param reportDescriptor Ver.: always - */ -bool emberAfGreenPowerClusterGpPairingConfigurationCallback( - uint8_t actions, uint16_t options, uint32_t gpdSrcId, uint8_t * gpdIeee, uint8_t endpoint, uint8_t deviceId, - uint8_t groupListCount, uint8_t * groupList, uint16_t gpdAssignedAlias, uint8_t groupcastRadius, uint8_t securityOptions, - uint32_t gpdSecurityFrameCounter, uint8_t * gpdSecurityKey, uint8_t numberOfPairedEndpoints, uint8_t * pairedEndpoints, - uint8_t applicationInformation, uint16_t manufacturerId, uint16_t modeId, uint8_t numberOfGpdCommands, - uint8_t * gpdCommandIdList, uint8_t clusterIdListCount, uint8_t * clusterListServer, uint8_t * clusterListClient, - uint8_t switchInformationLength, uint8_t switchConfiguration, uint8_t currentContactStatus, uint8_t totalNumberOfReports, - uint8_t numberOfReports, uint8_t * reportDescriptor); -/** @brief Green Power Cluster Gp Pairing Search - * - * - * - * @param options Ver.: since gp-1.0-09-5499-24 - * @param gpdSrcId Ver.: since gp-1.0-09-5499-24 - * @param gpdIeee Ver.: since gp-1.0-09-5499-24 - * @param endpoint Ver.: always - */ -bool emberAfGreenPowerClusterGpPairingSearchCallback(uint16_t options, uint32_t gpdSrcId, uint8_t * gpdIeee, uint8_t endpoint); -/** @brief Green Power Cluster Gp Proxy Commissioning Mode - * - * - * - * @param options Ver.: since gp-1.0-09-5499-24 - * @param commissioningWindow Ver.: since gp-1.0-15-02014-011 - * @param channel Ver.: since gp-1.0-09-5499-24 - */ -bool emberAfGreenPowerClusterGpProxyCommissioningModeCallback(uint8_t options, uint16_t commissioningWindow, uint8_t channel); -/** @brief Green Power Cluster Gp Proxy Table Request - * - * - * - * @param options Ver.: always - * @param gpdSrcId Ver.: always - * @param gpdIeee Ver.: always - * @param endpoint Ver.: always - * @param index Ver.: always - */ -bool emberAfGreenPowerClusterGpProxyTableRequestCallback(uint8_t options, uint32_t gpdSrcId, uint8_t * gpdIeee, uint8_t endpoint, - uint8_t index); -/** @brief Green Power Cluster Gp Proxy Table Response - * - * - * - * @param status Ver.: always - * @param totalNumberOfNonEmptyProxyTableEntries Ver.: always - * @param startIndex Ver.: always - * @param entriesCount Ver.: always - * @param proxyTableEntries Ver.: always - */ -bool emberAfGreenPowerClusterGpProxyTableResponseCallback(uint8_t status, uint8_t totalNumberOfNonEmptyProxyTableEntries, - uint8_t startIndex, uint8_t entriesCount, uint8_t * proxyTableEntries); -/** @brief Green Power Cluster Gp Response - * - * - * - * @param options Ver.: since gp-1.0-09-5499-24 - * @param tempMasterShortAddress Ver.: since gp-1.0-09-5499-24 - * @param tempMasterTxChannel Ver.: since gp-1.0-09-5499-24 - * @param gpdSrcId Ver.: since gp-1.0-09-5499-24 - * @param gpdIeee Ver.: since gp-1.0-09-5499-24 - * @param endpoint Ver.: always - * @param gpdCommandId Ver.: since gp-1.0-09-5499-24 - * @param gpdCommandPayload Ver.: always - */ -bool emberAfGreenPowerClusterGpResponseCallback(uint8_t options, uint16_t tempMasterShortAddress, uint8_t tempMasterTxChannel, - uint32_t gpdSrcId, uint8_t * gpdIeee, uint8_t endpoint, uint8_t gpdCommandId, - uint8_t * gpdCommandPayload); -/** @brief Green Power Cluster Gp Sink Commissioning Mode - * - * - * - * @param options Ver.: always - * @param gpmAddrForSecurity Ver.: always - * @param gpmAddrForPairing Ver.: always - * @param sinkEndpoint Ver.: always - */ -bool emberAfGreenPowerClusterGpSinkCommissioningModeCallback(uint8_t options, uint16_t gpmAddrForSecurity, - uint16_t gpmAddrForPairing, uint8_t sinkEndpoint); -/** @brief Green Power Cluster Gp Sink Table Request - * - * - * - * @param options Ver.: always - * @param gpdSrcId Ver.: always - * @param gpdIeee Ver.: always - * @param endpoint Ver.: always - * @param index Ver.: always - */ -bool emberAfGreenPowerClusterGpSinkTableRequestCallback(uint8_t options, uint32_t gpdSrcId, uint8_t * gpdIeee, uint8_t endpoint, - uint8_t index); -/** @brief Green Power Cluster Gp Sink Table Response - * - * - * - * @param status Ver.: always - * @param totalNumberofNonEmptySinkTableEntries Ver.: always - * @param startIndex Ver.: always - * @param sinkTableEntriesCount Ver.: always - * @param sinkTableEntries Ver.: always - */ -bool emberAfGreenPowerClusterGpSinkTableResponseCallback(uint8_t status, uint8_t totalNumberofNonEmptySinkTableEntries, - uint8_t startIndex, uint8_t sinkTableEntriesCount, - uint8_t * sinkTableEntries); -/** @brief Green Power Cluster Gp Translation Table Request - * - * - * - * @param startIndex Ver.: since gp-1.0-09-5499-24 - */ -bool emberAfGreenPowerClusterGpTranslationTableRequestCallback(uint8_t startIndex); -/** @brief Green Power Cluster Gp Translation Table Response - * - * - * - * @param status Ver.: since gp-1.0-09-5499-24 - * @param options Ver.: since gp-1.0-09-5499-24 - * @param totalNumberOfEntries Ver.: since gp-1.0-09-5499-24 - * @param startIndex Ver.: since gp-1.0-09-5499-24 - * @param entriesCount Ver.: since gp-1.0-09-5499-24 - * @param translationTableList Ver.: since gp-1.0-09-5499-24 - */ -bool emberAfGreenPowerClusterGpTranslationTableResponseCallback(uint8_t status, uint8_t options, uint8_t totalNumberOfEntries, - uint8_t startIndex, uint8_t entriesCount, - uint8_t * translationTableList); -/** @brief Green Power Cluster Gp Translation Table Update - * - * - * - * @param options Ver.: since gp-1.0-09-5499-24 - * @param gpdSrcId Ver.: since gp-1.0-09-5499-24 - * @param gpdIeee Ver.: since gp-1.0-09-5499-24 - * @param endpoint Ver.: since gp-1.0-09-5499-24 - * @param translations Ver.: since gp-1.0-09-5499-24 - */ -bool emberAfGreenPowerClusterGpTranslationTableUpdateCallback(uint16_t options, uint32_t gpdSrcId, uint8_t * gpdIeee, - uint8_t endpoint, uint8_t * translations); -/** @brief Green Power Cluster Gp Tunneling Stop - * - * - * - * @param options Ver.: since gp-1.0-09-5499-24 - * @param gpdSrcId Ver.: since gp-1.0-09-5499-24 - * @param gpdIeee Ver.: since gp-1.0-09-5499-24 - * @param endpoint Ver.: since gp-1.0-09-5499-24 - * @param gpdSecurityFrameCounter Ver.: since gp-1.0-09-5499-24 - * @param gppShortAddress Ver.: since gp-1.0-09-5499-24 - * @param gppDistance Ver.: since gp-1.0-09-5499-24 - */ -bool emberAfGreenPowerClusterGpTunnelingStopCallback(uint8_t options, uint32_t gpdSrcId, uint8_t * gpdIeee, uint8_t endpoint, - uint32_t gpdSecurityFrameCounter, uint16_t gppShortAddress, - int8_t gppDistance); -/** @brief Green Power Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfGreenPowerClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Green Power Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfGreenPowerClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Green Power Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfGreenPowerClusterServerInitCallback(uint8_t endpoint); -/** @brief Green Power Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfGreenPowerClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Green Power Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfGreenPowerClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Green Power Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfGreenPowerClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Green Power Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfGreenPowerClusterServerTickCallback(uint8_t endpoint); - -/** @} END Green Power Cluster Callbacks */ - -/** @name Keep-Alive Cluster Callbacks */ -// @{ - -/** @brief Keep-Alive Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfKeepaliveClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Keep-Alive Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfKeepaliveClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Keep-Alive Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfKeepaliveClusterClientInitCallback(uint8_t endpoint); -/** @brief Keep-Alive Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfKeepaliveClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Keep-Alive Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfKeepaliveClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Keep-Alive Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfKeepaliveClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Keep-Alive Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfKeepaliveClusterClientTickCallback(uint8_t endpoint); -/** @brief Keep-Alive Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfKeepaliveClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Keep-Alive Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfKeepaliveClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Keep-Alive Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfKeepaliveClusterServerInitCallback(uint8_t endpoint); -/** @brief Keep-Alive Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfKeepaliveClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Keep-Alive Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfKeepaliveClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Keep-Alive Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfKeepaliveClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Keep-Alive Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfKeepaliveClusterServerTickCallback(uint8_t endpoint); - -/** @} END Keep-Alive Cluster Callbacks */ - -/** @name Shade Configuration Cluster Callbacks */ -// @{ - -/** @brief Shade Configuration Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfShadeConfigClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Shade Configuration Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfShadeConfigClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Shade Configuration Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfShadeConfigClusterClientInitCallback(uint8_t endpoint); -/** @brief Shade Configuration Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfShadeConfigClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Shade Configuration Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfShadeConfigClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Shade Configuration Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfShadeConfigClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Shade Configuration Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfShadeConfigClusterClientTickCallback(uint8_t endpoint); -/** @brief Shade Configuration Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfShadeConfigClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Shade Configuration Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfShadeConfigClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Shade Configuration Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfShadeConfigClusterServerInitCallback(uint8_t endpoint); -/** @brief Shade Configuration Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfShadeConfigClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Shade Configuration Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfShadeConfigClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Shade Configuration Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfShadeConfigClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Shade Configuration Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfShadeConfigClusterServerTickCallback(uint8_t endpoint); - -/** @} END Shade Configuration Cluster Callbacks */ - -/** @name Door Lock Cluster Callbacks */ -// @{ - -/** @brief Door Lock Cluster Clear All Pins - * - * - * - */ -bool emberAfDoorLockClusterClearAllPinsCallback(void); -/** @brief Door Lock Cluster Clear All Pins Response - * - * - * - * @param status Ver.: always - */ -bool emberAfDoorLockClusterClearAllPinsResponseCallback(uint8_t status); -/** @brief Door Lock Cluster Clear All Rfids - * - * - * - */ -bool emberAfDoorLockClusterClearAllRfidsCallback(void); -/** @brief Door Lock Cluster Clear All Rfids Response - * - * - * - * @param status Ver.: always - */ -bool emberAfDoorLockClusterClearAllRfidsResponseCallback(uint8_t status); -/** @brief Door Lock Cluster Clear Holiday Schedule - * - * - * - * @param scheduleId Ver.: always - */ -bool emberAfDoorLockClusterClearHolidayScheduleCallback(uint8_t scheduleId); -/** @brief Door Lock Cluster Clear Holiday Schedule Response - * - * - * - * @param status Ver.: always - */ -bool emberAfDoorLockClusterClearHolidayScheduleResponseCallback(uint8_t status); -/** @brief Door Lock Cluster Clear Pin - * - * - * - * @param userId Ver.: always - */ -bool emberAfDoorLockClusterClearPinCallback(uint16_t userId); -/** @brief Door Lock Cluster Clear Pin Response - * - * - * - * @param status Ver.: always - */ -bool emberAfDoorLockClusterClearPinResponseCallback(uint8_t status); -/** @brief Door Lock Cluster Clear Rfid - * - * - * - * @param userId Ver.: always - */ -bool emberAfDoorLockClusterClearRfidCallback(uint16_t userId); -/** @brief Door Lock Cluster Clear Rfid Response - * - * - * - * @param status Ver.: always - */ -bool emberAfDoorLockClusterClearRfidResponseCallback(uint8_t status); -/** @brief Door Lock Cluster Clear Weekday Schedule - * - * - * - * @param scheduleId Ver.: always - * @param userId Ver.: always - */ -bool emberAfDoorLockClusterClearWeekdayScheduleCallback(uint8_t scheduleId, uint16_t userId); -/** @brief Door Lock Cluster Clear Weekday Schedule Response - * - * - * - * @param status Ver.: always - */ -bool emberAfDoorLockClusterClearWeekdayScheduleResponseCallback(uint8_t status); -/** @brief Door Lock Cluster Clear Yearday Schedule - * - * - * - * @param scheduleId Ver.: always - * @param userId Ver.: always - */ -bool emberAfDoorLockClusterClearYeardayScheduleCallback(uint8_t scheduleId, uint16_t userId); -/** @brief Door Lock Cluster Clear Yearday Schedule Response - * - * - * - * @param status Ver.: always - */ -bool emberAfDoorLockClusterClearYeardayScheduleResponseCallback(uint8_t status); -/** @brief Door Lock Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfDoorLockClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Door Lock Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfDoorLockClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Door Lock Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfDoorLockClusterClientInitCallback(uint8_t endpoint); -/** @brief Door Lock Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfDoorLockClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Door Lock Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfDoorLockClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Door Lock Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfDoorLockClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Door Lock Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfDoorLockClusterClientTickCallback(uint8_t endpoint); -/** @brief Door Lock Cluster Get Holiday Schedule - * - * - * - * @param scheduleId Ver.: always - */ -bool emberAfDoorLockClusterGetHolidayScheduleCallback(uint8_t scheduleId); -/** @brief Door Lock Cluster Get Holiday Schedule Response - * - * - * - * @param scheduleId Ver.: always - * @param status Ver.: always - * @param localStartTime Ver.: since ha-1.2-05-3520-29 - * @param localEndTime Ver.: since ha-1.2-05-3520-29 - * @param operatingModeDuringHoliday Ver.: since ha-1.2-05-3520-29 - */ -bool emberAfDoorLockClusterGetHolidayScheduleResponseCallback(uint8_t scheduleId, uint8_t status, uint32_t localStartTime, - uint32_t localEndTime, uint8_t operatingModeDuringHoliday); -/** @brief Door Lock Cluster Get Log Record - * - * - * - * @param logIndex Ver.: always - */ -bool emberAfDoorLockClusterGetLogRecordCallback(uint16_t logIndex); -/** @brief Door Lock Cluster Get Log Record Response - * - * - * - * @param logEntryId Ver.: always - * @param timestamp Ver.: always - * @param eventType Ver.: always - * @param source Ver.: always - * @param eventIdOrAlarmCode Ver.: always - * @param userId Ver.: always - * @param pin Ver.: always - */ -bool emberAfDoorLockClusterGetLogRecordResponseCallback(uint16_t logEntryId, uint32_t timestamp, uint8_t eventType, uint8_t source, - uint8_t eventIdOrAlarmCode, uint16_t userId, uint8_t * pin); -/** @brief Door Lock Cluster Get Pin - * - * - * - * @param userId Ver.: always - */ -bool emberAfDoorLockClusterGetPinCallback(uint16_t userId); -/** @brief Door Lock Cluster Get Pin Response - * - * - * - * @param userId Ver.: always - * @param userStatus Ver.: always - * @param userType Ver.: always - * @param pin Ver.: always - */ -bool emberAfDoorLockClusterGetPinResponseCallback(uint16_t userId, uint8_t userStatus, uint8_t userType, uint8_t * pin); -/** @brief Door Lock Cluster Get Rfid - * - * - * - * @param userId Ver.: always - */ -bool emberAfDoorLockClusterGetRfidCallback(uint16_t userId); -/** @brief Door Lock Cluster Get Rfid Response - * - * - * - * @param userId Ver.: always - * @param userStatus Ver.: always - * @param userType Ver.: always - * @param rfid Ver.: always - */ -bool emberAfDoorLockClusterGetRfidResponseCallback(uint16_t userId, uint8_t userStatus, uint8_t userType, uint8_t * rfid); -/** @brief Door Lock Cluster Get User Status - * - * - * - * @param userId Ver.: always - */ -bool emberAfDoorLockClusterGetUserStatusCallback(uint16_t userId); -/** @brief Door Lock Cluster Get User Status Response - * - * - * - * @param userId Ver.: always - * @param status Ver.: always - */ -bool emberAfDoorLockClusterGetUserStatusResponseCallback(uint16_t userId, uint8_t status); -/** @brief Door Lock Cluster Get User Type - * - * - * - * @param userId Ver.: always - */ -bool emberAfDoorLockClusterGetUserTypeCallback(uint16_t userId); -/** @brief Door Lock Cluster Get User Type Response - * - * - * - * @param userId Ver.: always - * @param userType Ver.: always - */ -bool emberAfDoorLockClusterGetUserTypeResponseCallback(uint16_t userId, uint8_t userType); -/** @brief Door Lock Cluster Get Weekday Schedule - * - * - * - * @param scheduleId Ver.: always - * @param userId Ver.: always - */ -bool emberAfDoorLockClusterGetWeekdayScheduleCallback(uint8_t scheduleId, uint16_t userId); -/** @brief Door Lock Cluster Get Weekday Schedule Response - * - * - * - * @param scheduleId Ver.: always - * @param userId Ver.: always - * @param status Ver.: always - * @param daysMask Ver.: since ha-1.2-05-3520-29 - * @param startHour Ver.: since ha-1.2-05-3520-29 - * @param startMinute Ver.: since ha-1.2-05-3520-29 - * @param endHour Ver.: since ha-1.2-05-3520-29 - * @param endMinute Ver.: since ha-1.2-05-3520-29 - */ -bool emberAfDoorLockClusterGetWeekdayScheduleResponseCallback(uint8_t scheduleId, uint16_t userId, uint8_t status, uint8_t daysMask, - uint8_t startHour, uint8_t startMinute, uint8_t endHour, - uint8_t endMinute); -/** @brief Door Lock Cluster Get Yearday Schedule - * - * - * - * @param scheduleId Ver.: always - * @param userId Ver.: always - */ -bool emberAfDoorLockClusterGetYeardayScheduleCallback(uint8_t scheduleId, uint16_t userId); -/** @brief Door Lock Cluster Get Yearday Schedule Response - * - * - * - * @param scheduleId Ver.: always - * @param userId Ver.: always - * @param status Ver.: always - * @param localStartTime Ver.: since ha-1.2-05-3520-29 - * @param localEndTime Ver.: since ha-1.2-05-3520-29 - */ -bool emberAfDoorLockClusterGetYeardayScheduleResponseCallback(uint8_t scheduleId, uint16_t userId, uint8_t status, - uint32_t localStartTime, uint32_t localEndTime); -/** @brief Door Lock Cluster Lock Door - * - * - * - * @param PIN Ver.: since ha-1.2-05-3520-29 - */ -bool emberAfDoorLockClusterLockDoorCallback(uint8_t * PIN); -/** @brief Door Lock Cluster Lock Door Response - * - * - * - * @param status Ver.: always - */ -bool emberAfDoorLockClusterLockDoorResponseCallback(uint8_t status); -/** @brief Door Lock Cluster Operation Event Notification - * - * - * - * @param source Ver.: always - * @param eventCode Ver.: always - * @param userId Ver.: always - * @param pin Ver.: always - * @param timeStamp Ver.: always - * @param data Ver.: since ha-1.2-05-3520-29 - */ -bool emberAfDoorLockClusterOperationEventNotificationCallback(uint8_t source, uint8_t eventCode, uint16_t userId, uint8_t * pin, - uint32_t timeStamp, uint8_t * data); -/** @brief Door Lock Cluster Programming Event Notification - * - * - * - * @param source Ver.: always - * @param eventCode Ver.: always - * @param userId Ver.: always - * @param pin Ver.: always - * @param userType Ver.: always - * @param userStatus Ver.: always - * @param timeStamp Ver.: always - * @param data Ver.: since ha-1.2-05-3520-29 - */ -bool emberAfDoorLockClusterProgrammingEventNotificationCallback(uint8_t source, uint8_t eventCode, uint16_t userId, uint8_t * pin, - uint8_t userType, uint8_t userStatus, uint32_t timeStamp, - uint8_t * data); -/** @brief Door Lock Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfDoorLockClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Door Lock Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfDoorLockClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Door Lock Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfDoorLockClusterServerInitCallback(uint8_t endpoint); -/** @brief Door Lock Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfDoorLockClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Door Lock Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfDoorLockClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Door Lock Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfDoorLockClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Door Lock Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfDoorLockClusterServerTickCallback(uint8_t endpoint); -/** @brief Door Lock Cluster Set Holiday Schedule - * - * - * - * @param scheduleId Ver.: always - * @param localStartTime Ver.: always - * @param localEndTime Ver.: always - * @param operatingModeDuringHoliday Ver.: always - */ -bool emberAfDoorLockClusterSetHolidayScheduleCallback(uint8_t scheduleId, uint32_t localStartTime, uint32_t localEndTime, - uint8_t operatingModeDuringHoliday); -/** @brief Door Lock Cluster Set Holiday Schedule Response - * - * - * - * @param status Ver.: always - */ -bool emberAfDoorLockClusterSetHolidayScheduleResponseCallback(uint8_t status); -/** @brief Door Lock Cluster Set Pin - * - * - * - * @param userId Ver.: always - * @param userStatus Ver.: always - * @param userType Ver.: always - * @param pin Ver.: always - */ -bool emberAfDoorLockClusterSetPinCallback(uint16_t userId, uint8_t userStatus, uint8_t userType, uint8_t * pin); -/** @brief Door Lock Cluster Set Pin Response - * - * - * - * @param status Ver.: always - */ -bool emberAfDoorLockClusterSetPinResponseCallback(uint8_t status); -/** @brief Door Lock Cluster Set Rfid - * - * - * - * @param userId Ver.: always - * @param userStatus Ver.: always - * @param userType Ver.: always - * @param id Ver.: always - */ -bool emberAfDoorLockClusterSetRfidCallback(uint16_t userId, uint8_t userStatus, uint8_t userType, uint8_t * id); -/** @brief Door Lock Cluster Set Rfid Response - * - * - * - * @param status Ver.: always - */ -bool emberAfDoorLockClusterSetRfidResponseCallback(uint8_t status); -/** @brief Door Lock Cluster Set User Status - * - * - * - * @param userId Ver.: always - * @param userStatus Ver.: always - */ -bool emberAfDoorLockClusterSetUserStatusCallback(uint16_t userId, uint8_t userStatus); -/** @brief Door Lock Cluster Set User Status Response - * - * - * - * @param status Ver.: always - */ -bool emberAfDoorLockClusterSetUserStatusResponseCallback(uint8_t status); -/** @brief Door Lock Cluster Set User Type - * - * - * - * @param userId Ver.: always - * @param userType Ver.: always - */ -bool emberAfDoorLockClusterSetUserTypeCallback(uint16_t userId, uint8_t userType); -/** @brief Door Lock Cluster Set User Type Response - * - * - * - * @param status Ver.: always - */ -bool emberAfDoorLockClusterSetUserTypeResponseCallback(uint8_t status); -/** @brief Door Lock Cluster Set Weekday Schedule - * - * - * - * @param scheduleId Ver.: always - * @param userId Ver.: always - * @param daysMask Ver.: always - * @param startHour Ver.: always - * @param startMinute Ver.: always - * @param endHour Ver.: always - * @param endMinute Ver.: always - */ -bool emberAfDoorLockClusterSetWeekdayScheduleCallback(uint8_t scheduleId, uint16_t userId, uint8_t daysMask, uint8_t startHour, - uint8_t startMinute, uint8_t endHour, uint8_t endMinute); -/** @brief Door Lock Cluster Set Weekday Schedule Response - * - * - * - * @param status Ver.: always - */ -bool emberAfDoorLockClusterSetWeekdayScheduleResponseCallback(uint8_t status); -/** @brief Door Lock Cluster Set Yearday Schedule - * - * - * - * @param scheduleId Ver.: always - * @param userId Ver.: always - * @param localStartTime Ver.: always - * @param localEndTime Ver.: always - */ -bool emberAfDoorLockClusterSetYeardayScheduleCallback(uint8_t scheduleId, uint16_t userId, uint32_t localStartTime, - uint32_t localEndTime); -/** @brief Door Lock Cluster Set Yearday Schedule Response - * - * - * - * @param status Ver.: always - */ -bool emberAfDoorLockClusterSetYeardayScheduleResponseCallback(uint8_t status); -/** @brief Door Lock Cluster Toggle - * - * - * - * @param pin Ver.: since ha-1.2-05-3520-29 - */ -bool emberAfDoorLockClusterToggleCallback(uint8_t * pin); -/** @brief Door Lock Cluster Toggle Response - * - * - * - * @param status Ver.: always - */ -bool emberAfDoorLockClusterToggleResponseCallback(uint8_t status); -/** @brief Door Lock Cluster Unlock Door - * - * - * - * @param PIN Ver.: since ha-1.2-05-3520-29 - */ -bool emberAfDoorLockClusterUnlockDoorCallback(uint8_t * PIN); -/** @brief Door Lock Cluster Unlock Door Response - * - * - * - * @param status Ver.: always - */ -bool emberAfDoorLockClusterUnlockDoorResponseCallback(uint8_t status); -/** @brief Door Lock Cluster Unlock With Timeout - * - * - * - * @param timeoutInSeconds Ver.: always - * @param pin Ver.: since ha-1.2-05-3520-29 - */ -bool emberAfDoorLockClusterUnlockWithTimeoutCallback(uint16_t timeoutInSeconds, uint8_t * pin); -/** @brief Door Lock Cluster Unlock With Timeout Response - * - * - * - * @param status Ver.: always - */ -bool emberAfDoorLockClusterUnlockWithTimeoutResponseCallback(uint8_t status); - -/** @} END Door Lock Cluster Callbacks */ - -/** @name Window Covering Cluster Callbacks */ -// @{ - -/** @brief Window Covering Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfWindowCoveringClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Window Covering Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfWindowCoveringClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Window Covering Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfWindowCoveringClusterClientInitCallback(uint8_t endpoint); -/** @brief Window Covering Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfWindowCoveringClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Window Covering Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfWindowCoveringClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Window Covering Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfWindowCoveringClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Window Covering Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfWindowCoveringClusterClientTickCallback(uint8_t endpoint); -/** @brief Window Covering Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfWindowCoveringClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Window Covering Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfWindowCoveringClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Window Covering Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfWindowCoveringClusterServerInitCallback(uint8_t endpoint); -/** @brief Window Covering Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfWindowCoveringClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Window Covering Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfWindowCoveringClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Window Covering Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfWindowCoveringClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Window Covering Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfWindowCoveringClusterServerTickCallback(uint8_t endpoint); -/** @brief Window Covering Cluster Window Covering Down Close - * - * - * - */ -bool emberAfWindowCoveringClusterWindowCoveringDownCloseCallback(void); -/** @brief Window Covering Cluster Window Covering Go To Lift Percentage - * - * - * - * @param percentageLiftValue Ver.: always - */ -bool emberAfWindowCoveringClusterWindowCoveringGoToLiftPercentageCallback(uint8_t percentageLiftValue); -/** @brief Window Covering Cluster Window Covering Go To Lift Value - * - * - * - * @param liftValue Ver.: always - */ -bool emberAfWindowCoveringClusterWindowCoveringGoToLiftValueCallback(uint16_t liftValue); -/** @brief Window Covering Cluster Window Covering Go To Tilt Percentage - * - * - * - * @param percentageTiltValue Ver.: always - */ -bool emberAfWindowCoveringClusterWindowCoveringGoToTiltPercentageCallback(uint8_t percentageTiltValue); -/** @brief Window Covering Cluster Window Covering Go To Tilt Value - * - * - * - * @param tiltValue Ver.: always - */ -bool emberAfWindowCoveringClusterWindowCoveringGoToTiltValueCallback(uint16_t tiltValue); -/** @brief Window Covering Cluster Window Covering Stop - * - * - * - */ -bool emberAfWindowCoveringClusterWindowCoveringStopCallback(void); -/** @brief Window Covering Cluster Window Covering Up Open - * - * - * - */ -bool emberAfWindowCoveringClusterWindowCoveringUpOpenCallback(void); - -/** @} END Window Covering Cluster Callbacks */ - -/** @name Barrier Control Cluster Callbacks */ -// @{ - -/** @brief Barrier Control Cluster Barrier Control Go To Percent - * - * - * - * @param percentOpen Ver.: always - */ -bool emberAfBarrierControlClusterBarrierControlGoToPercentCallback(uint8_t percentOpen); -/** @brief Barrier Control Cluster Barrier Control Stop - * - * - * - */ -bool emberAfBarrierControlClusterBarrierControlStopCallback(void); -/** @brief Barrier Control Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfBarrierControlClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Barrier Control Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfBarrierControlClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Barrier Control Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfBarrierControlClusterClientInitCallback(uint8_t endpoint); -/** @brief Barrier Control Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfBarrierControlClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Barrier Control Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfBarrierControlClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Barrier Control Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfBarrierControlClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Barrier Control Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfBarrierControlClusterClientTickCallback(uint8_t endpoint); -/** @brief Barrier Control Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfBarrierControlClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Barrier Control Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfBarrierControlClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Barrier Control Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfBarrierControlClusterServerInitCallback(uint8_t endpoint); -/** @brief Barrier Control Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfBarrierControlClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Barrier Control Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfBarrierControlClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Barrier Control Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfBarrierControlClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Barrier Control Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfBarrierControlClusterServerTickCallback(uint8_t endpoint); - -/** @} END Barrier Control Cluster Callbacks */ - -/** @name Pump Configuration and Control Cluster Callbacks */ -// @{ - -/** @brief Pump Configuration and Control Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfPumpConfigControlClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Pump Configuration and Control Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfPumpConfigControlClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Pump Configuration and Control Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfPumpConfigControlClusterClientInitCallback(uint8_t endpoint); -/** @brief Pump Configuration and Control Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfPumpConfigControlClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Pump Configuration and Control Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfPumpConfigControlClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Pump Configuration and Control Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfPumpConfigControlClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Pump Configuration and Control Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfPumpConfigControlClusterClientTickCallback(uint8_t endpoint); -/** @brief Pump Configuration and Control Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfPumpConfigControlClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Pump Configuration and Control Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfPumpConfigControlClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Pump Configuration and Control Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfPumpConfigControlClusterServerInitCallback(uint8_t endpoint); -/** @brief Pump Configuration and Control Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfPumpConfigControlClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Pump Configuration and Control Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfPumpConfigControlClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Pump Configuration and Control Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfPumpConfigControlClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Pump Configuration and Control Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfPumpConfigControlClusterServerTickCallback(uint8_t endpoint); - -/** @} END Pump Configuration and Control Cluster Callbacks */ - -/** @name Thermostat Cluster Callbacks */ -// @{ - -/** @brief Thermostat Cluster Clear Weekly Schedule - * - * - * - */ -bool emberAfThermostatClusterClearWeeklyScheduleCallback(void); -/** @brief Thermostat Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfThermostatClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Thermostat Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfThermostatClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Thermostat Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfThermostatClusterClientInitCallback(uint8_t endpoint); -/** @brief Thermostat Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfThermostatClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Thermostat Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfThermostatClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Thermostat Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfThermostatClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Thermostat Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfThermostatClusterClientTickCallback(uint8_t endpoint); -/** @brief Thermostat Cluster Current Weekly Schedule - * - * - * - * @param numberOfTransitionsForSequence Ver.: always - * @param dayOfWeekForSequence Ver.: always - * @param modeForSequence Ver.: always - * @param payload Ver.: always - */ -bool emberAfThermostatClusterCurrentWeeklyScheduleCallback(uint8_t numberOfTransitionsForSequence, uint8_t dayOfWeekForSequence, - uint8_t modeForSequence, uint8_t * payload); -/** @brief Thermostat Cluster Get Relay Status Log - * - * - * - */ -bool emberAfThermostatClusterGetRelayStatusLogCallback(void); -/** @brief Thermostat Cluster Get Weekly Schedule - * - * - * - * @param daysToReturn Ver.: always - * @param modeToReturn Ver.: always - */ -bool emberAfThermostatClusterGetWeeklyScheduleCallback(uint8_t daysToReturn, uint8_t modeToReturn); -/** @brief Thermostat Cluster Relay Status Log - * - * - * - * @param timeOfDay Ver.: always - * @param relayStatus Ver.: always - * @param localTemperature Ver.: always - * @param humidityInPercentage Ver.: always - * @param setpoint Ver.: always - * @param unreadEntries Ver.: always - */ -bool emberAfThermostatClusterRelayStatusLogCallback(uint16_t timeOfDay, uint16_t relayStatus, int16_t localTemperature, - uint8_t humidityInPercentage, int16_t setpoint, uint16_t unreadEntries); -/** @brief Thermostat Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfThermostatClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Thermostat Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfThermostatClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Thermostat Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfThermostatClusterServerInitCallback(uint8_t endpoint); -/** @brief Thermostat Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfThermostatClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Thermostat Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfThermostatClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Thermostat Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfThermostatClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Thermostat Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfThermostatClusterServerTickCallback(uint8_t endpoint); -/** @brief Thermostat Cluster Set Weekly Schedule - * - * - * - * @param numberOfTransitionsForSequence Ver.: always - * @param dayOfWeekForSequence Ver.: always - * @param modeForSequence Ver.: always - * @param payload Ver.: always - */ -bool emberAfThermostatClusterSetWeeklyScheduleCallback(uint8_t numberOfTransitionsForSequence, uint8_t dayOfWeekForSequence, - uint8_t modeForSequence, uint8_t * payload); -/** @brief Thermostat Cluster Setpoint Raise Lower - * - * - * - * @param mode Ver.: always - * @param amount Ver.: always - */ -bool emberAfThermostatClusterSetpointRaiseLowerCallback(uint8_t mode, int8_t amount); - -/** @} END Thermostat Cluster Callbacks */ - -/** @name Fan Control Cluster Callbacks */ -// @{ - -/** @brief Fan Control Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfFanControlClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Fan Control Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfFanControlClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Fan Control Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfFanControlClusterClientInitCallback(uint8_t endpoint); -/** @brief Fan Control Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfFanControlClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Fan Control Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfFanControlClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Fan Control Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfFanControlClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Fan Control Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfFanControlClusterClientTickCallback(uint8_t endpoint); -/** @brief Fan Control Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfFanControlClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Fan Control Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfFanControlClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Fan Control Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfFanControlClusterServerInitCallback(uint8_t endpoint); -/** @brief Fan Control Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfFanControlClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Fan Control Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfFanControlClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Fan Control Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfFanControlClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Fan Control Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfFanControlClusterServerTickCallback(uint8_t endpoint); - -/** @} END Fan Control Cluster Callbacks */ - -/** @name Dehumidification Control Cluster Callbacks */ -// @{ - -/** @brief Dehumidification Control Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfDehumidControlClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Dehumidification Control Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfDehumidControlClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Dehumidification Control Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfDehumidControlClusterClientInitCallback(uint8_t endpoint); -/** @brief Dehumidification Control Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfDehumidControlClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Dehumidification Control Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfDehumidControlClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Dehumidification Control Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfDehumidControlClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Dehumidification Control Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfDehumidControlClusterClientTickCallback(uint8_t endpoint); -/** @brief Dehumidification Control Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfDehumidControlClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Dehumidification Control Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfDehumidControlClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Dehumidification Control Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfDehumidControlClusterServerInitCallback(uint8_t endpoint); -/** @brief Dehumidification Control Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfDehumidControlClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Dehumidification Control Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfDehumidControlClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Dehumidification Control Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfDehumidControlClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Dehumidification Control Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfDehumidControlClusterServerTickCallback(uint8_t endpoint); - -/** @} END Dehumidification Control Cluster Callbacks */ - -/** @name Thermostat User Interface Configuration Cluster Callbacks */ -// @{ - -/** @brief Thermostat User Interface Configuration Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfThermostatUiConfigClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Thermostat User Interface Configuration Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfThermostatUiConfigClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Thermostat User Interface Configuration Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfThermostatUiConfigClusterClientInitCallback(uint8_t endpoint); -/** @brief Thermostat User Interface Configuration Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfThermostatUiConfigClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Thermostat User Interface Configuration Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfThermostatUiConfigClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Thermostat User Interface Configuration Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfThermostatUiConfigClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Thermostat User Interface Configuration Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfThermostatUiConfigClusterClientTickCallback(uint8_t endpoint); -/** @brief Thermostat User Interface Configuration Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfThermostatUiConfigClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Thermostat User Interface Configuration Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfThermostatUiConfigClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Thermostat User Interface Configuration Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfThermostatUiConfigClusterServerInitCallback(uint8_t endpoint); -/** @brief Thermostat User Interface Configuration Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfThermostatUiConfigClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Thermostat User Interface Configuration Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfThermostatUiConfigClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Thermostat User Interface Configuration Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfThermostatUiConfigClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Thermostat User Interface Configuration Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfThermostatUiConfigClusterServerTickCallback(uint8_t endpoint); - -/** @} END Thermostat User Interface Configuration Cluster Callbacks */ - -/** @name Color Control Cluster Callbacks */ -// @{ - -/** @brief Color Control Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfColorControlClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Color Control Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfColorControlClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Color Control Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfColorControlClusterClientInitCallback(uint8_t endpoint); -/** @brief Color Control Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfColorControlClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Color Control Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfColorControlClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Color Control Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfColorControlClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Color Control Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfColorControlClusterClientTickCallback(uint8_t endpoint); -/** @brief Color Control Cluster Color Loop Set - * - * - * - * @param updateFlags Ver.: always - * @param action Ver.: always - * @param direction Ver.: always - * @param time Ver.: always - * @param startHue Ver.: always - */ -bool emberAfColorControlClusterColorLoopSetCallback(uint8_t updateFlags, uint8_t action, uint8_t direction, uint16_t time, - uint16_t startHue); -/** @brief Color Control Cluster Enhanced Move Hue - * - * - * - * @param moveMode Ver.: always - * @param rate Ver.: always - */ -bool emberAfColorControlClusterEnhancedMoveHueCallback(uint8_t moveMode, uint16_t rate); -/** @brief Color Control Cluster Enhanced Move To Hue And Saturation - * - * - * - * @param enhancedHue Ver.: always - * @param saturation Ver.: always - * @param transitionTime Ver.: always - */ -bool emberAfColorControlClusterEnhancedMoveToHueAndSaturationCallback(uint16_t enhancedHue, uint8_t saturation, - uint16_t transitionTime); -/** @brief Color Control Cluster Enhanced Move To Hue - * - * - * - * @param enhancedHue Ver.: always - * @param direction Ver.: always - * @param transitionTime Ver.: always - */ -bool emberAfColorControlClusterEnhancedMoveToHueCallback(uint16_t enhancedHue, uint8_t direction, uint16_t transitionTime); -/** @brief Color Control Cluster Enhanced Step Hue - * - * - * - * @param stepMode Ver.: always - * @param stepSize Ver.: always - * @param transitionTime Ver.: always - */ -bool emberAfColorControlClusterEnhancedStepHueCallback(uint8_t stepMode, uint16_t stepSize, uint16_t transitionTime); -/** @brief Color Control Cluster Move Color - * - * - * - * @param rateX Ver.: always - * @param rateY Ver.: always - * @param optionsMask Ver.: since zcl6-errata-14-0129-15 - * @param optionsOverride Ver.: since zcl6-errata-14-0129-15 - */ -bool emberAfColorControlClusterMoveColorCallback(int16_t rateX, int16_t rateY, uint8_t optionsMask, uint8_t optionsOverride); -/** @brief Color Control Cluster Move Color Temperature - * - * - * - * @param moveMode Ver.: always - * @param rate Ver.: always - * @param colorTemperatureMinimum Ver.: always - * @param colorTemperatureMaximum Ver.: always - * @param optionsMask Ver.: since zcl6-errata-14-0129-15 - * @param optionsOverride Ver.: since zcl6-errata-14-0129-15 - */ -bool emberAfColorControlClusterMoveColorTemperatureCallback(uint8_t moveMode, uint16_t rate, uint16_t colorTemperatureMinimum, - uint16_t colorTemperatureMaximum, uint8_t optionsMask, - uint8_t optionsOverride); -/** @brief Color Control Cluster Move Hue - * - * - * - * @param moveMode Ver.: always - * @param rate Ver.: always - * @param optionsMask Ver.: since zcl6-errata-14-0129-15 - * @param optionsOverride Ver.: since zcl6-errata-14-0129-15 - */ -bool emberAfColorControlClusterMoveHueCallback(uint8_t moveMode, uint8_t rate, uint8_t optionsMask, uint8_t optionsOverride); -/** @brief Color Control Cluster Move Saturation - * - * - * - * @param moveMode Ver.: always - * @param rate Ver.: always - * @param optionsMask Ver.: since zcl6-errata-14-0129-15 - * @param optionsOverride Ver.: since zcl6-errata-14-0129-15 - */ -bool emberAfColorControlClusterMoveSaturationCallback(uint8_t moveMode, uint8_t rate, uint8_t optionsMask, uint8_t optionsOverride); -/** @brief Color Control Cluster Move To Color - * - * - * - * @param colorX Ver.: always - * @param colorY Ver.: always - * @param transitionTime Ver.: always - * @param optionsMask Ver.: since zcl6-errata-14-0129-15 - * @param optionsOverride Ver.: since zcl6-errata-14-0129-15 - */ -bool emberAfColorControlClusterMoveToColorCallback(uint16_t colorX, uint16_t colorY, uint16_t transitionTime, uint8_t optionsMask, - uint8_t optionsOverride); -/** @brief Color Control Cluster Move To Color Temperature - * - * - * - * @param colorTemperature Ver.: always - * @param transitionTime Ver.: always - * @param optionsMask Ver.: since zcl6-errata-14-0129-15 - * @param optionsOverride Ver.: since zcl6-errata-14-0129-15 - */ -bool emberAfColorControlClusterMoveToColorTemperatureCallback(uint16_t colorTemperature, uint16_t transitionTime, - uint8_t optionsMask, uint8_t optionsOverride); -/** @brief Color Control Cluster Move To Hue And Saturation - * - * - * - * @param hue Ver.: always - * @param saturation Ver.: always - * @param transitionTime Ver.: always - * @param optionsMask Ver.: since zcl6-errata-14-0129-15 - * @param optionsOverride Ver.: since zcl6-errata-14-0129-15 - */ -bool emberAfColorControlClusterMoveToHueAndSaturationCallback(uint8_t hue, uint8_t saturation, uint16_t transitionTime, - uint8_t optionsMask, uint8_t optionsOverride); -/** @brief Color Control Cluster Move To Hue - * - * - * - * @param hue Ver.: always - * @param direction Ver.: always - * @param transitionTime Ver.: always - * @param optionsMask Ver.: since zcl6-errata-14-0129-15 - * @param optionsOverride Ver.: since zcl6-errata-14-0129-15 - */ -bool emberAfColorControlClusterMoveToHueCallback(uint8_t hue, uint8_t direction, uint16_t transitionTime, uint8_t optionsMask, - uint8_t optionsOverride); -/** @brief Color Control Cluster Move To Saturation - * - * - * - * @param saturation Ver.: always - * @param transitionTime Ver.: always - * @param optionsMask Ver.: since zcl6-errata-14-0129-15 - * @param optionsOverride Ver.: since zcl6-errata-14-0129-15 - */ -bool emberAfColorControlClusterMoveToSaturationCallback(uint8_t saturation, uint16_t transitionTime, uint8_t optionsMask, - uint8_t optionsOverride); -/** @brief Color Control Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfColorControlClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Color Control Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfColorControlClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Color Control Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfColorControlClusterServerInitCallback(uint8_t endpoint); -/** @brief Color Control Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfColorControlClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Color Control Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfColorControlClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Color Control Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfColorControlClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Color Control Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfColorControlClusterServerTickCallback(uint8_t endpoint); -/** @brief Color Control Cluster Step Color - * - * - * - * @param stepX Ver.: always - * @param stepY Ver.: always - * @param transitionTime Ver.: always - * @param optionsMask Ver.: since zcl6-errata-14-0129-15 - * @param optionsOverride Ver.: since zcl6-errata-14-0129-15 - */ -bool emberAfColorControlClusterStepColorCallback(int16_t stepX, int16_t stepY, uint16_t transitionTime, uint8_t optionsMask, - uint8_t optionsOverride); -/** @brief Color Control Cluster Step Color Temperature - * - * - * - * @param stepMode Ver.: always - * @param stepSize Ver.: always - * @param transitionTime Ver.: always - * @param colorTemperatureMinimum Ver.: always - * @param colorTemperatureMaximum Ver.: always - * @param optionsMask Ver.: since zcl6-errata-14-0129-15 - * @param optionsOverride Ver.: since zcl6-errata-14-0129-15 - */ -bool emberAfColorControlClusterStepColorTemperatureCallback(uint8_t stepMode, uint16_t stepSize, uint16_t transitionTime, - uint16_t colorTemperatureMinimum, uint16_t colorTemperatureMaximum, - uint8_t optionsMask, uint8_t optionsOverride); -/** @brief Color Control Cluster Step Hue - * - * - * - * @param stepMode Ver.: always - * @param stepSize Ver.: always - * @param transitionTime Ver.: always - * @param optionsMask Ver.: since zcl6-errata-14-0129-15 - * @param optionsOverride Ver.: since zcl6-errata-14-0129-15 - */ -bool emberAfColorControlClusterStepHueCallback(uint8_t stepMode, uint8_t stepSize, uint8_t transitionTime, uint8_t optionsMask, - uint8_t optionsOverride); -/** @brief Color Control Cluster Step Saturation - * - * - * - * @param stepMode Ver.: always - * @param stepSize Ver.: always - * @param transitionTime Ver.: always - * @param optionsMask Ver.: since zcl6-errata-14-0129-15 - * @param optionsOverride Ver.: since zcl6-errata-14-0129-15 - */ -bool emberAfColorControlClusterStepSaturationCallback(uint8_t stepMode, uint8_t stepSize, uint8_t transitionTime, - uint8_t optionsMask, uint8_t optionsOverride); -/** @brief Color Control Cluster Stop Move Step - * - * - * - * @param optionsMask Ver.: since zcl6-errata-14-0129-15 - * @param optionsOverride Ver.: since zcl6-errata-14-0129-15 - */ -bool emberAfColorControlClusterStopMoveStepCallback(uint8_t optionsMask, uint8_t optionsOverride); - -/** @brief Compute Pwm from HSV - * - * This function is called from the color server when it is time for the PWMs to - * be driven with a new value from the HSV values. - * - * @param endpoint The identifying endpoint Ver.: always - */ -void emberAfPluginColorControlServerComputePwmFromHsvCallback(uint8_t endpoint); -/** @brief Compute Pwm from HSV - * - * This function is called from the color server when it is time for the PWMs to - * be driven with a new value from the color X and color Y values. - * - * @param endpoint The identifying endpoint Ver.: always - */ -void emberAfPluginColorControlServerComputePwmFromXyCallback(uint8_t endpoint); -/** @brief Compute Pwm from HSV - * - * This function is called from the color server when it is time for the PWMs to - * be driven with a new value from the color temperature. - * - * @param endpoint The identifying endpoint Ver.: always - */ -void emberAfPluginColorControlServerComputePwmFromTempCallback(uint8_t endpoint); - -/** @} END Color Control Cluster Callbacks */ - -/** @name Ballast Configuration Cluster Callbacks */ -// @{ - -/** @brief Ballast Configuration Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfBallastConfigurationClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Ballast Configuration Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfBallastConfigurationClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Ballast Configuration Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfBallastConfigurationClusterClientInitCallback(uint8_t endpoint); -/** @brief Ballast Configuration Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfBallastConfigurationClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Ballast Configuration Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfBallastConfigurationClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Ballast Configuration Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfBallastConfigurationClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Ballast Configuration Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfBallastConfigurationClusterClientTickCallback(uint8_t endpoint); -/** @brief Ballast Configuration Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfBallastConfigurationClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Ballast Configuration Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfBallastConfigurationClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Ballast Configuration Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfBallastConfigurationClusterServerInitCallback(uint8_t endpoint); -/** @brief Ballast Configuration Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfBallastConfigurationClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Ballast Configuration Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfBallastConfigurationClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Ballast Configuration Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfBallastConfigurationClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Ballast Configuration Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfBallastConfigurationClusterServerTickCallback(uint8_t endpoint); - -/** @} END Ballast Configuration Cluster Callbacks */ - -/** @name Illuminance Measurement Cluster Callbacks */ -// @{ - -/** @brief Illuminance Measurement Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfIllumMeasurementClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Illuminance Measurement Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfIllumMeasurementClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Illuminance Measurement Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfIllumMeasurementClusterClientInitCallback(uint8_t endpoint); -/** @brief Illuminance Measurement Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfIllumMeasurementClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Illuminance Measurement Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfIllumMeasurementClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Illuminance Measurement Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfIllumMeasurementClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Illuminance Measurement Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfIllumMeasurementClusterClientTickCallback(uint8_t endpoint); -/** @brief Illuminance Measurement Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfIllumMeasurementClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Illuminance Measurement Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfIllumMeasurementClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Illuminance Measurement Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfIllumMeasurementClusterServerInitCallback(uint8_t endpoint); -/** @brief Illuminance Measurement Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfIllumMeasurementClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Illuminance Measurement Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfIllumMeasurementClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Illuminance Measurement Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfIllumMeasurementClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Illuminance Measurement Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfIllumMeasurementClusterServerTickCallback(uint8_t endpoint); - -/** @} END Illuminance Measurement Cluster Callbacks */ - -/** @name Illuminance Level Sensing Cluster Callbacks */ -// @{ - -/** @brief Illuminance Level Sensing Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfIllumLevelSensingClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Illuminance Level Sensing Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfIllumLevelSensingClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Illuminance Level Sensing Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfIllumLevelSensingClusterClientInitCallback(uint8_t endpoint); -/** @brief Illuminance Level Sensing Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfIllumLevelSensingClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Illuminance Level Sensing Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfIllumLevelSensingClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Illuminance Level Sensing Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfIllumLevelSensingClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Illuminance Level Sensing Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfIllumLevelSensingClusterClientTickCallback(uint8_t endpoint); -/** @brief Illuminance Level Sensing Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfIllumLevelSensingClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Illuminance Level Sensing Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfIllumLevelSensingClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Illuminance Level Sensing Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfIllumLevelSensingClusterServerInitCallback(uint8_t endpoint); -/** @brief Illuminance Level Sensing Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfIllumLevelSensingClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Illuminance Level Sensing Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfIllumLevelSensingClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Illuminance Level Sensing Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfIllumLevelSensingClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Illuminance Level Sensing Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfIllumLevelSensingClusterServerTickCallback(uint8_t endpoint); - -/** @} END Illuminance Level Sensing Cluster Callbacks */ - -/** @name Temperature Measurement Cluster Callbacks */ -// @{ - -/** @brief Temperature Measurement Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfTempMeasurementClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Temperature Measurement Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfTempMeasurementClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Temperature Measurement Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfTempMeasurementClusterClientInitCallback(uint8_t endpoint); -/** @brief Temperature Measurement Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfTempMeasurementClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Temperature Measurement Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfTempMeasurementClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Temperature Measurement Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfTempMeasurementClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Temperature Measurement Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfTempMeasurementClusterClientTickCallback(uint8_t endpoint); -/** @brief Temperature Measurement Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfTempMeasurementClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Temperature Measurement Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfTempMeasurementClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Temperature Measurement Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfTempMeasurementClusterServerInitCallback(uint8_t endpoint); -/** @brief Temperature Measurement Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfTempMeasurementClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Temperature Measurement Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfTempMeasurementClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Temperature Measurement Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfTempMeasurementClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Temperature Measurement Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfTempMeasurementClusterServerTickCallback(uint8_t endpoint); - -/** @} END Temperature Measurement Cluster Callbacks */ - -/** @name Pressure Measurement Cluster Callbacks */ -// @{ - -/** @brief Pressure Measurement Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfPressureMeasurementClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Pressure Measurement Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfPressureMeasurementClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Pressure Measurement Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfPressureMeasurementClusterClientInitCallback(uint8_t endpoint); -/** @brief Pressure Measurement Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfPressureMeasurementClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Pressure Measurement Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfPressureMeasurementClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Pressure Measurement Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfPressureMeasurementClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Pressure Measurement Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfPressureMeasurementClusterClientTickCallback(uint8_t endpoint); -/** @brief Pressure Measurement Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfPressureMeasurementClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Pressure Measurement Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfPressureMeasurementClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Pressure Measurement Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfPressureMeasurementClusterServerInitCallback(uint8_t endpoint); -/** @brief Pressure Measurement Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfPressureMeasurementClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Pressure Measurement Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfPressureMeasurementClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Pressure Measurement Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfPressureMeasurementClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Pressure Measurement Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfPressureMeasurementClusterServerTickCallback(uint8_t endpoint); - -/** @} END Pressure Measurement Cluster Callbacks */ - -/** @name Flow Measurement Cluster Callbacks */ -// @{ - -/** @brief Flow Measurement Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfFlowMeasurementClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Flow Measurement Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfFlowMeasurementClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Flow Measurement Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfFlowMeasurementClusterClientInitCallback(uint8_t endpoint); -/** @brief Flow Measurement Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfFlowMeasurementClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Flow Measurement Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfFlowMeasurementClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Flow Measurement Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfFlowMeasurementClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Flow Measurement Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfFlowMeasurementClusterClientTickCallback(uint8_t endpoint); -/** @brief Flow Measurement Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfFlowMeasurementClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Flow Measurement Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfFlowMeasurementClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Flow Measurement Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfFlowMeasurementClusterServerInitCallback(uint8_t endpoint); -/** @brief Flow Measurement Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfFlowMeasurementClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Flow Measurement Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfFlowMeasurementClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Flow Measurement Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfFlowMeasurementClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Flow Measurement Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfFlowMeasurementClusterServerTickCallback(uint8_t endpoint); - -/** @} END Flow Measurement Cluster Callbacks */ - -/** @name Relative Humidity Measurement Cluster Callbacks */ -// @{ - -/** @brief Relative Humidity Measurement Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfRelativeHumidityMeasurementClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Relative Humidity Measurement Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfRelativeHumidityMeasurementClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Relative Humidity Measurement Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfRelativeHumidityMeasurementClusterClientInitCallback(uint8_t endpoint); -/** @brief Relative Humidity Measurement Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfRelativeHumidityMeasurementClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Relative Humidity Measurement Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfRelativeHumidityMeasurementClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, - uint8_t * message, EmberStatus status); -/** @brief Relative Humidity Measurement Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfRelativeHumidityMeasurementClusterClientPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Relative Humidity Measurement Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfRelativeHumidityMeasurementClusterClientTickCallback(uint8_t endpoint); -/** @brief Relative Humidity Measurement Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfRelativeHumidityMeasurementClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Relative Humidity Measurement Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfRelativeHumidityMeasurementClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Relative Humidity Measurement Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfRelativeHumidityMeasurementClusterServerInitCallback(uint8_t endpoint); -/** @brief Relative Humidity Measurement Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfRelativeHumidityMeasurementClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Relative Humidity Measurement Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfRelativeHumidityMeasurementClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, - uint8_t * message, EmberStatus status); -/** @brief Relative Humidity Measurement Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfRelativeHumidityMeasurementClusterServerPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Relative Humidity Measurement Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfRelativeHumidityMeasurementClusterServerTickCallback(uint8_t endpoint); - -/** @} END Relative Humidity Measurement Cluster Callbacks */ - -/** @name Occupancy Sensing Cluster Callbacks */ -// @{ - -/** @brief Occupancy Sensing Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfOccupancySensingClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Occupancy Sensing Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfOccupancySensingClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Occupancy Sensing Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfOccupancySensingClusterClientInitCallback(uint8_t endpoint); -/** @brief Occupancy Sensing Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfOccupancySensingClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Occupancy Sensing Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfOccupancySensingClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Occupancy Sensing Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfOccupancySensingClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Occupancy Sensing Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfOccupancySensingClusterClientTickCallback(uint8_t endpoint); -/** @brief Occupancy Sensing Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfOccupancySensingClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Occupancy Sensing Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfOccupancySensingClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Occupancy Sensing Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfOccupancySensingClusterServerInitCallback(uint8_t endpoint); -/** @brief Occupancy Sensing Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfOccupancySensingClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Occupancy Sensing Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfOccupancySensingClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Occupancy Sensing Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfOccupancySensingClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Occupancy Sensing Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfOccupancySensingClusterServerTickCallback(uint8_t endpoint); - -/** @} END Occupancy Sensing Cluster Callbacks */ - -/** @name Carbon Monoxide Concentration Measurement Cluster Callbacks */ -// @{ - -/** @brief Carbon Monoxide Concentration Measurement Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfCarbonMonoxideConcentrationMeasurementClusterClientAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId); -/** @brief Carbon Monoxide Concentration Measurement Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfCarbonMonoxideConcentrationMeasurementClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Carbon Monoxide Concentration Measurement Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfCarbonMonoxideConcentrationMeasurementClusterClientInitCallback(uint8_t endpoint); -/** @brief Carbon Monoxide Concentration Measurement Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfCarbonMonoxideConcentrationMeasurementClusterClientManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Carbon Monoxide Concentration Measurement Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfCarbonMonoxideConcentrationMeasurementClusterClientMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, - uint8_t * message, EmberStatus status); -/** @brief Carbon Monoxide Concentration Measurement Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfCarbonMonoxideConcentrationMeasurementClusterClientPreAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, EmberAfAttributeType attributeType, uint8_t size, uint8_t * value); -/** @brief Carbon Monoxide Concentration Measurement Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfCarbonMonoxideConcentrationMeasurementClusterClientTickCallback(uint8_t endpoint); -/** @brief Carbon Monoxide Concentration Measurement Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfCarbonMonoxideConcentrationMeasurementClusterServerAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId); -/** @brief Carbon Monoxide Concentration Measurement Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfCarbonMonoxideConcentrationMeasurementClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Carbon Monoxide Concentration Measurement Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfCarbonMonoxideConcentrationMeasurementClusterServerInitCallback(uint8_t endpoint); -/** @brief Carbon Monoxide Concentration Measurement Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfCarbonMonoxideConcentrationMeasurementClusterServerManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Carbon Monoxide Concentration Measurement Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfCarbonMonoxideConcentrationMeasurementClusterServerMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, - uint8_t * message, EmberStatus status); -/** @brief Carbon Monoxide Concentration Measurement Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfCarbonMonoxideConcentrationMeasurementClusterServerPreAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, EmberAfAttributeType attributeType, uint8_t size, uint8_t * value); -/** @brief Carbon Monoxide Concentration Measurement Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfCarbonMonoxideConcentrationMeasurementClusterServerTickCallback(uint8_t endpoint); - -/** @} END Carbon Monoxide Concentration Measurement Cluster Callbacks */ - -/** @name Carbon Dioxide Concentration Measurement Cluster Callbacks */ -// @{ - -/** @brief Carbon Dioxide Concentration Measurement Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfCarbonDioxideConcentrationMeasurementClusterClientAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId); -/** @brief Carbon Dioxide Concentration Measurement Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfCarbonDioxideConcentrationMeasurementClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Carbon Dioxide Concentration Measurement Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfCarbonDioxideConcentrationMeasurementClusterClientInitCallback(uint8_t endpoint); -/** @brief Carbon Dioxide Concentration Measurement Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfCarbonDioxideConcentrationMeasurementClusterClientManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Carbon Dioxide Concentration Measurement Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfCarbonDioxideConcentrationMeasurementClusterClientMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, - uint8_t * message, EmberStatus status); -/** @brief Carbon Dioxide Concentration Measurement Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfCarbonDioxideConcentrationMeasurementClusterClientPreAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, EmberAfAttributeType attributeType, uint8_t size, uint8_t * value); -/** @brief Carbon Dioxide Concentration Measurement Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfCarbonDioxideConcentrationMeasurementClusterClientTickCallback(uint8_t endpoint); -/** @brief Carbon Dioxide Concentration Measurement Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfCarbonDioxideConcentrationMeasurementClusterServerAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId); -/** @brief Carbon Dioxide Concentration Measurement Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfCarbonDioxideConcentrationMeasurementClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Carbon Dioxide Concentration Measurement Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfCarbonDioxideConcentrationMeasurementClusterServerInitCallback(uint8_t endpoint); -/** @brief Carbon Dioxide Concentration Measurement Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfCarbonDioxideConcentrationMeasurementClusterServerManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Carbon Dioxide Concentration Measurement Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfCarbonDioxideConcentrationMeasurementClusterServerMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, - uint8_t * message, EmberStatus status); -/** @brief Carbon Dioxide Concentration Measurement Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfCarbonDioxideConcentrationMeasurementClusterServerPreAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, EmberAfAttributeType attributeType, uint8_t size, uint8_t * value); -/** @brief Carbon Dioxide Concentration Measurement Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfCarbonDioxideConcentrationMeasurementClusterServerTickCallback(uint8_t endpoint); - -/** @} END Carbon Dioxide Concentration Measurement Cluster Callbacks */ - -/** @name Ethylene Concentration Measurement Cluster Callbacks */ -// @{ - -/** @brief Ethylene Concentration Measurement Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfEthyleneConcentrationMeasurementClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Ethylene Concentration Measurement Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfEthyleneConcentrationMeasurementClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Ethylene Concentration Measurement Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfEthyleneConcentrationMeasurementClusterClientInitCallback(uint8_t endpoint); -/** @brief Ethylene Concentration Measurement Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfEthyleneConcentrationMeasurementClusterClientManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Ethylene Concentration Measurement Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfEthyleneConcentrationMeasurementClusterClientMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, EmberApsFrame * apsFrame, - uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Ethylene Concentration Measurement Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfEthyleneConcentrationMeasurementClusterClientPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Ethylene Concentration Measurement Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfEthyleneConcentrationMeasurementClusterClientTickCallback(uint8_t endpoint); -/** @brief Ethylene Concentration Measurement Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfEthyleneConcentrationMeasurementClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Ethylene Concentration Measurement Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfEthyleneConcentrationMeasurementClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Ethylene Concentration Measurement Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfEthyleneConcentrationMeasurementClusterServerInitCallback(uint8_t endpoint); -/** @brief Ethylene Concentration Measurement Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfEthyleneConcentrationMeasurementClusterServerManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Ethylene Concentration Measurement Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfEthyleneConcentrationMeasurementClusterServerMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, EmberApsFrame * apsFrame, - uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Ethylene Concentration Measurement Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfEthyleneConcentrationMeasurementClusterServerPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Ethylene Concentration Measurement Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfEthyleneConcentrationMeasurementClusterServerTickCallback(uint8_t endpoint); - -/** @} END Ethylene Concentration Measurement Cluster Callbacks */ - -/** @name Ethylene Oxide Concentration Measurement Cluster Callbacks */ -// @{ - -/** @brief Ethylene Oxide Concentration Measurement Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfEthyleneOxideConcentrationMeasurementClusterClientAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId); -/** @brief Ethylene Oxide Concentration Measurement Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfEthyleneOxideConcentrationMeasurementClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Ethylene Oxide Concentration Measurement Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfEthyleneOxideConcentrationMeasurementClusterClientInitCallback(uint8_t endpoint); -/** @brief Ethylene Oxide Concentration Measurement Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfEthyleneOxideConcentrationMeasurementClusterClientManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Ethylene Oxide Concentration Measurement Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfEthyleneOxideConcentrationMeasurementClusterClientMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, - uint8_t * message, EmberStatus status); -/** @brief Ethylene Oxide Concentration Measurement Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfEthyleneOxideConcentrationMeasurementClusterClientPreAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, EmberAfAttributeType attributeType, uint8_t size, uint8_t * value); -/** @brief Ethylene Oxide Concentration Measurement Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfEthyleneOxideConcentrationMeasurementClusterClientTickCallback(uint8_t endpoint); -/** @brief Ethylene Oxide Concentration Measurement Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfEthyleneOxideConcentrationMeasurementClusterServerAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId); -/** @brief Ethylene Oxide Concentration Measurement Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfEthyleneOxideConcentrationMeasurementClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Ethylene Oxide Concentration Measurement Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfEthyleneOxideConcentrationMeasurementClusterServerInitCallback(uint8_t endpoint); -/** @brief Ethylene Oxide Concentration Measurement Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfEthyleneOxideConcentrationMeasurementClusterServerManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Ethylene Oxide Concentration Measurement Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfEthyleneOxideConcentrationMeasurementClusterServerMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, - uint8_t * message, EmberStatus status); -/** @brief Ethylene Oxide Concentration Measurement Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfEthyleneOxideConcentrationMeasurementClusterServerPreAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, EmberAfAttributeType attributeType, uint8_t size, uint8_t * value); -/** @brief Ethylene Oxide Concentration Measurement Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfEthyleneOxideConcentrationMeasurementClusterServerTickCallback(uint8_t endpoint); - -/** @} END Ethylene Oxide Concentration Measurement Cluster Callbacks */ - -/** @name Hydrogen Concentration Measurement Cluster Callbacks */ -// @{ - -/** @brief Hydrogen Concentration Measurement Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfHydrogenConcentrationMeasurementClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Hydrogen Concentration Measurement Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfHydrogenConcentrationMeasurementClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Hydrogen Concentration Measurement Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfHydrogenConcentrationMeasurementClusterClientInitCallback(uint8_t endpoint); -/** @brief Hydrogen Concentration Measurement Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfHydrogenConcentrationMeasurementClusterClientManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Hydrogen Concentration Measurement Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfHydrogenConcentrationMeasurementClusterClientMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, EmberApsFrame * apsFrame, - uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Hydrogen Concentration Measurement Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfHydrogenConcentrationMeasurementClusterClientPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Hydrogen Concentration Measurement Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfHydrogenConcentrationMeasurementClusterClientTickCallback(uint8_t endpoint); -/** @brief Hydrogen Concentration Measurement Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfHydrogenConcentrationMeasurementClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Hydrogen Concentration Measurement Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfHydrogenConcentrationMeasurementClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Hydrogen Concentration Measurement Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfHydrogenConcentrationMeasurementClusterServerInitCallback(uint8_t endpoint); -/** @brief Hydrogen Concentration Measurement Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfHydrogenConcentrationMeasurementClusterServerManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Hydrogen Concentration Measurement Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfHydrogenConcentrationMeasurementClusterServerMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, EmberApsFrame * apsFrame, - uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Hydrogen Concentration Measurement Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfHydrogenConcentrationMeasurementClusterServerPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Hydrogen Concentration Measurement Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfHydrogenConcentrationMeasurementClusterServerTickCallback(uint8_t endpoint); - -/** @} END Hydrogen Concentration Measurement Cluster Callbacks */ - -/** @name Hydrogen Sulphide Concentration Measurement Cluster Callbacks */ -// @{ - -/** @brief Hydrogen Sulphide Concentration Measurement Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfHydrogenSulphideConcentrationMeasurementClusterClientAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId); -/** @brief Hydrogen Sulphide Concentration Measurement Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfHydrogenSulphideConcentrationMeasurementClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Hydrogen Sulphide Concentration Measurement Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfHydrogenSulphideConcentrationMeasurementClusterClientInitCallback(uint8_t endpoint); -/** @brief Hydrogen Sulphide Concentration Measurement Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfHydrogenSulphideConcentrationMeasurementClusterClientManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Hydrogen Sulphide Concentration Measurement Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfHydrogenSulphideConcentrationMeasurementClusterClientMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, - uint8_t * message, EmberStatus status); -/** @brief Hydrogen Sulphide Concentration Measurement Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfHydrogenSulphideConcentrationMeasurementClusterClientPreAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, EmberAfAttributeType attributeType, uint8_t size, uint8_t * value); -/** @brief Hydrogen Sulphide Concentration Measurement Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfHydrogenSulphideConcentrationMeasurementClusterClientTickCallback(uint8_t endpoint); -/** @brief Hydrogen Sulphide Concentration Measurement Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfHydrogenSulphideConcentrationMeasurementClusterServerAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId); -/** @brief Hydrogen Sulphide Concentration Measurement Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfHydrogenSulphideConcentrationMeasurementClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Hydrogen Sulphide Concentration Measurement Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfHydrogenSulphideConcentrationMeasurementClusterServerInitCallback(uint8_t endpoint); -/** @brief Hydrogen Sulphide Concentration Measurement Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfHydrogenSulphideConcentrationMeasurementClusterServerManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Hydrogen Sulphide Concentration Measurement Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfHydrogenSulphideConcentrationMeasurementClusterServerMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, - uint8_t * message, EmberStatus status); -/** @brief Hydrogen Sulphide Concentration Measurement Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfHydrogenSulphideConcentrationMeasurementClusterServerPreAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, EmberAfAttributeType attributeType, uint8_t size, uint8_t * value); -/** @brief Hydrogen Sulphide Concentration Measurement Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfHydrogenSulphideConcentrationMeasurementClusterServerTickCallback(uint8_t endpoint); - -/** @} END Hydrogen Sulphide Concentration Measurement Cluster Callbacks */ - -/** @name Nitric Oxide Concentration Measurement Cluster Callbacks */ -// @{ - -/** @brief Nitric Oxide Concentration Measurement Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfNitricOxideConcentrationMeasurementClusterClientAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId); -/** @brief Nitric Oxide Concentration Measurement Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfNitricOxideConcentrationMeasurementClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Nitric Oxide Concentration Measurement Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfNitricOxideConcentrationMeasurementClusterClientInitCallback(uint8_t endpoint); -/** @brief Nitric Oxide Concentration Measurement Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfNitricOxideConcentrationMeasurementClusterClientManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Nitric Oxide Concentration Measurement Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfNitricOxideConcentrationMeasurementClusterClientMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, - uint8_t * message, EmberStatus status); -/** @brief Nitric Oxide Concentration Measurement Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfNitricOxideConcentrationMeasurementClusterClientPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Nitric Oxide Concentration Measurement Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfNitricOxideConcentrationMeasurementClusterClientTickCallback(uint8_t endpoint); -/** @brief Nitric Oxide Concentration Measurement Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfNitricOxideConcentrationMeasurementClusterServerAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId); -/** @brief Nitric Oxide Concentration Measurement Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfNitricOxideConcentrationMeasurementClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Nitric Oxide Concentration Measurement Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfNitricOxideConcentrationMeasurementClusterServerInitCallback(uint8_t endpoint); -/** @brief Nitric Oxide Concentration Measurement Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfNitricOxideConcentrationMeasurementClusterServerManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Nitric Oxide Concentration Measurement Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfNitricOxideConcentrationMeasurementClusterServerMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, - uint8_t * message, EmberStatus status); -/** @brief Nitric Oxide Concentration Measurement Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfNitricOxideConcentrationMeasurementClusterServerPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Nitric Oxide Concentration Measurement Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfNitricOxideConcentrationMeasurementClusterServerTickCallback(uint8_t endpoint); - -/** @} END Nitric Oxide Concentration Measurement Cluster Callbacks */ - -/** @name Nitrogen Dioxide Concentration Measurement Cluster Callbacks */ -// @{ - -/** @brief Nitrogen Dioxide Concentration Measurement Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfNitrogenDioxideConcentrationMeasurementClusterClientAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId); -/** @brief Nitrogen Dioxide Concentration Measurement Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfNitrogenDioxideConcentrationMeasurementClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Nitrogen Dioxide Concentration Measurement Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfNitrogenDioxideConcentrationMeasurementClusterClientInitCallback(uint8_t endpoint); -/** @brief Nitrogen Dioxide Concentration Measurement Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfNitrogenDioxideConcentrationMeasurementClusterClientManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Nitrogen Dioxide Concentration Measurement Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfNitrogenDioxideConcentrationMeasurementClusterClientMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, - uint8_t * message, EmberStatus status); -/** @brief Nitrogen Dioxide Concentration Measurement Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfNitrogenDioxideConcentrationMeasurementClusterClientPreAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, EmberAfAttributeType attributeType, uint8_t size, uint8_t * value); -/** @brief Nitrogen Dioxide Concentration Measurement Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfNitrogenDioxideConcentrationMeasurementClusterClientTickCallback(uint8_t endpoint); -/** @brief Nitrogen Dioxide Concentration Measurement Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfNitrogenDioxideConcentrationMeasurementClusterServerAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId); -/** @brief Nitrogen Dioxide Concentration Measurement Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfNitrogenDioxideConcentrationMeasurementClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Nitrogen Dioxide Concentration Measurement Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfNitrogenDioxideConcentrationMeasurementClusterServerInitCallback(uint8_t endpoint); -/** @brief Nitrogen Dioxide Concentration Measurement Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfNitrogenDioxideConcentrationMeasurementClusterServerManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Nitrogen Dioxide Concentration Measurement Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfNitrogenDioxideConcentrationMeasurementClusterServerMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, - uint8_t * message, EmberStatus status); -/** @brief Nitrogen Dioxide Concentration Measurement Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfNitrogenDioxideConcentrationMeasurementClusterServerPreAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, EmberAfAttributeType attributeType, uint8_t size, uint8_t * value); -/** @brief Nitrogen Dioxide Concentration Measurement Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfNitrogenDioxideConcentrationMeasurementClusterServerTickCallback(uint8_t endpoint); - -/** @} END Nitrogen Dioxide Concentration Measurement Cluster Callbacks */ - -/** @name Oxygen Concentration Measurement Cluster Callbacks */ -// @{ - -/** @brief Oxygen Concentration Measurement Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfOxygenConcentrationMeasurementClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Oxygen Concentration Measurement Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfOxygenConcentrationMeasurementClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Oxygen Concentration Measurement Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfOxygenConcentrationMeasurementClusterClientInitCallback(uint8_t endpoint); -/** @brief Oxygen Concentration Measurement Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfOxygenConcentrationMeasurementClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Oxygen Concentration Measurement Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfOxygenConcentrationMeasurementClusterClientMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, EmberApsFrame * apsFrame, - uint16_t msgLen, uint8_t * message, EmberStatus status); -/** @brief Oxygen Concentration Measurement Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfOxygenConcentrationMeasurementClusterClientPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Oxygen Concentration Measurement Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfOxygenConcentrationMeasurementClusterClientTickCallback(uint8_t endpoint); -/** @brief Oxygen Concentration Measurement Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfOxygenConcentrationMeasurementClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Oxygen Concentration Measurement Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfOxygenConcentrationMeasurementClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Oxygen Concentration Measurement Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfOxygenConcentrationMeasurementClusterServerInitCallback(uint8_t endpoint); -/** @brief Oxygen Concentration Measurement Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfOxygenConcentrationMeasurementClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Oxygen Concentration Measurement Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfOxygenConcentrationMeasurementClusterServerMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, EmberApsFrame * apsFrame, - uint16_t msgLen, uint8_t * message, EmberStatus status); -/** @brief Oxygen Concentration Measurement Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfOxygenConcentrationMeasurementClusterServerPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Oxygen Concentration Measurement Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfOxygenConcentrationMeasurementClusterServerTickCallback(uint8_t endpoint); - -/** @} END Oxygen Concentration Measurement Cluster Callbacks */ - -/** @name Ozone Concentration Measurement Cluster Callbacks */ -// @{ - -/** @brief Ozone Concentration Measurement Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfOzoneConcentrationMeasurementClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Ozone Concentration Measurement Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfOzoneConcentrationMeasurementClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Ozone Concentration Measurement Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfOzoneConcentrationMeasurementClusterClientInitCallback(uint8_t endpoint); -/** @brief Ozone Concentration Measurement Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfOzoneConcentrationMeasurementClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Ozone Concentration Measurement Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfOzoneConcentrationMeasurementClusterClientMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, EmberApsFrame * apsFrame, - uint16_t msgLen, uint8_t * message, EmberStatus status); -/** @brief Ozone Concentration Measurement Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfOzoneConcentrationMeasurementClusterClientPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Ozone Concentration Measurement Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfOzoneConcentrationMeasurementClusterClientTickCallback(uint8_t endpoint); -/** @brief Ozone Concentration Measurement Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfOzoneConcentrationMeasurementClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Ozone Concentration Measurement Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfOzoneConcentrationMeasurementClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Ozone Concentration Measurement Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfOzoneConcentrationMeasurementClusterServerInitCallback(uint8_t endpoint); -/** @brief Ozone Concentration Measurement Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfOzoneConcentrationMeasurementClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Ozone Concentration Measurement Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfOzoneConcentrationMeasurementClusterServerMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, EmberApsFrame * apsFrame, - uint16_t msgLen, uint8_t * message, EmberStatus status); -/** @brief Ozone Concentration Measurement Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfOzoneConcentrationMeasurementClusterServerPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Ozone Concentration Measurement Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfOzoneConcentrationMeasurementClusterServerTickCallback(uint8_t endpoint); - -/** @} END Ozone Concentration Measurement Cluster Callbacks */ - -/** @name Sulfur Dioxide Concentration Measurement Cluster Callbacks */ -// @{ - -/** @brief Sulfur Dioxide Concentration Measurement Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfSulfurDioxideConcentrationMeasurementClusterClientAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId); -/** @brief Sulfur Dioxide Concentration Measurement Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfSulfurDioxideConcentrationMeasurementClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Sulfur Dioxide Concentration Measurement Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfSulfurDioxideConcentrationMeasurementClusterClientInitCallback(uint8_t endpoint); -/** @brief Sulfur Dioxide Concentration Measurement Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfSulfurDioxideConcentrationMeasurementClusterClientManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Sulfur Dioxide Concentration Measurement Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfSulfurDioxideConcentrationMeasurementClusterClientMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, - uint8_t * message, EmberStatus status); -/** @brief Sulfur Dioxide Concentration Measurement Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfSulfurDioxideConcentrationMeasurementClusterClientPreAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, EmberAfAttributeType attributeType, uint8_t size, uint8_t * value); -/** @brief Sulfur Dioxide Concentration Measurement Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfSulfurDioxideConcentrationMeasurementClusterClientTickCallback(uint8_t endpoint); -/** @brief Sulfur Dioxide Concentration Measurement Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfSulfurDioxideConcentrationMeasurementClusterServerAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId); -/** @brief Sulfur Dioxide Concentration Measurement Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfSulfurDioxideConcentrationMeasurementClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Sulfur Dioxide Concentration Measurement Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfSulfurDioxideConcentrationMeasurementClusterServerInitCallback(uint8_t endpoint); -/** @brief Sulfur Dioxide Concentration Measurement Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfSulfurDioxideConcentrationMeasurementClusterServerManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Sulfur Dioxide Concentration Measurement Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfSulfurDioxideConcentrationMeasurementClusterServerMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, - uint8_t * message, EmberStatus status); -/** @brief Sulfur Dioxide Concentration Measurement Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfSulfurDioxideConcentrationMeasurementClusterServerPreAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, EmberAfAttributeType attributeType, uint8_t size, uint8_t * value); -/** @brief Sulfur Dioxide Concentration Measurement Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfSulfurDioxideConcentrationMeasurementClusterServerTickCallback(uint8_t endpoint); - -/** @} END Sulfur Dioxide Concentration Measurement Cluster Callbacks */ - -/** @name Dissolved Oxygen Concentration Measurement Cluster Callbacks */ -// @{ - -/** @brief Dissolved Oxygen Concentration Measurement Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfDissolvedOxygenConcentrationMeasurementClusterClientAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId); -/** @brief Dissolved Oxygen Concentration Measurement Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfDissolvedOxygenConcentrationMeasurementClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Dissolved Oxygen Concentration Measurement Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfDissolvedOxygenConcentrationMeasurementClusterClientInitCallback(uint8_t endpoint); -/** @brief Dissolved Oxygen Concentration Measurement Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfDissolvedOxygenConcentrationMeasurementClusterClientManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Dissolved Oxygen Concentration Measurement Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfDissolvedOxygenConcentrationMeasurementClusterClientMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, - uint8_t * message, EmberStatus status); -/** @brief Dissolved Oxygen Concentration Measurement Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfDissolvedOxygenConcentrationMeasurementClusterClientPreAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, EmberAfAttributeType attributeType, uint8_t size, uint8_t * value); -/** @brief Dissolved Oxygen Concentration Measurement Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfDissolvedOxygenConcentrationMeasurementClusterClientTickCallback(uint8_t endpoint); -/** @brief Dissolved Oxygen Concentration Measurement Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfDissolvedOxygenConcentrationMeasurementClusterServerAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId); -/** @brief Dissolved Oxygen Concentration Measurement Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfDissolvedOxygenConcentrationMeasurementClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Dissolved Oxygen Concentration Measurement Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfDissolvedOxygenConcentrationMeasurementClusterServerInitCallback(uint8_t endpoint); -/** @brief Dissolved Oxygen Concentration Measurement Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfDissolvedOxygenConcentrationMeasurementClusterServerManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Dissolved Oxygen Concentration Measurement Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfDissolvedOxygenConcentrationMeasurementClusterServerMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, - uint8_t * message, EmberStatus status); -/** @brief Dissolved Oxygen Concentration Measurement Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfDissolvedOxygenConcentrationMeasurementClusterServerPreAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, EmberAfAttributeType attributeType, uint8_t size, uint8_t * value); -/** @brief Dissolved Oxygen Concentration Measurement Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfDissolvedOxygenConcentrationMeasurementClusterServerTickCallback(uint8_t endpoint); - -/** @} END Dissolved Oxygen Concentration Measurement Cluster Callbacks */ - -/** @name Bromate Concentration Measurement Cluster Callbacks */ -// @{ - -/** @brief Bromate Concentration Measurement Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfBromateConcentrationMeasurementClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Bromate Concentration Measurement Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfBromateConcentrationMeasurementClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Bromate Concentration Measurement Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfBromateConcentrationMeasurementClusterClientInitCallback(uint8_t endpoint); -/** @brief Bromate Concentration Measurement Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfBromateConcentrationMeasurementClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Bromate Concentration Measurement Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfBromateConcentrationMeasurementClusterClientMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, EmberApsFrame * apsFrame, - uint16_t msgLen, uint8_t * message, EmberStatus status); -/** @brief Bromate Concentration Measurement Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfBromateConcentrationMeasurementClusterClientPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Bromate Concentration Measurement Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfBromateConcentrationMeasurementClusterClientTickCallback(uint8_t endpoint); -/** @brief Bromate Concentration Measurement Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfBromateConcentrationMeasurementClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Bromate Concentration Measurement Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfBromateConcentrationMeasurementClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Bromate Concentration Measurement Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfBromateConcentrationMeasurementClusterServerInitCallback(uint8_t endpoint); -/** @brief Bromate Concentration Measurement Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfBromateConcentrationMeasurementClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Bromate Concentration Measurement Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfBromateConcentrationMeasurementClusterServerMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, EmberApsFrame * apsFrame, - uint16_t msgLen, uint8_t * message, EmberStatus status); -/** @brief Bromate Concentration Measurement Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfBromateConcentrationMeasurementClusterServerPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Bromate Concentration Measurement Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfBromateConcentrationMeasurementClusterServerTickCallback(uint8_t endpoint); - -/** @} END Bromate Concentration Measurement Cluster Callbacks */ - -/** @name Chloramines Concentration Measurement Cluster Callbacks */ -// @{ - -/** @brief Chloramines Concentration Measurement Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfChloraminesConcentrationMeasurementClusterClientAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId); -/** @brief Chloramines Concentration Measurement Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfChloraminesConcentrationMeasurementClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Chloramines Concentration Measurement Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfChloraminesConcentrationMeasurementClusterClientInitCallback(uint8_t endpoint); -/** @brief Chloramines Concentration Measurement Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfChloraminesConcentrationMeasurementClusterClientManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Chloramines Concentration Measurement Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfChloraminesConcentrationMeasurementClusterClientMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, - uint8_t * message, EmberStatus status); -/** @brief Chloramines Concentration Measurement Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfChloraminesConcentrationMeasurementClusterClientPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Chloramines Concentration Measurement Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfChloraminesConcentrationMeasurementClusterClientTickCallback(uint8_t endpoint); -/** @brief Chloramines Concentration Measurement Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfChloraminesConcentrationMeasurementClusterServerAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId); -/** @brief Chloramines Concentration Measurement Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfChloraminesConcentrationMeasurementClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Chloramines Concentration Measurement Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfChloraminesConcentrationMeasurementClusterServerInitCallback(uint8_t endpoint); -/** @brief Chloramines Concentration Measurement Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfChloraminesConcentrationMeasurementClusterServerManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Chloramines Concentration Measurement Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfChloraminesConcentrationMeasurementClusterServerMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, - uint8_t * message, EmberStatus status); -/** @brief Chloramines Concentration Measurement Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfChloraminesConcentrationMeasurementClusterServerPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Chloramines Concentration Measurement Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfChloraminesConcentrationMeasurementClusterServerTickCallback(uint8_t endpoint); - -/** @} END Chloramines Concentration Measurement Cluster Callbacks */ - -/** @name Chlorine Concentration Measurement Cluster Callbacks */ -// @{ - -/** @brief Chlorine Concentration Measurement Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfChlorineConcentrationMeasurementClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Chlorine Concentration Measurement Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfChlorineConcentrationMeasurementClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Chlorine Concentration Measurement Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfChlorineConcentrationMeasurementClusterClientInitCallback(uint8_t endpoint); -/** @brief Chlorine Concentration Measurement Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfChlorineConcentrationMeasurementClusterClientManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Chlorine Concentration Measurement Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfChlorineConcentrationMeasurementClusterClientMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, EmberApsFrame * apsFrame, - uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Chlorine Concentration Measurement Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfChlorineConcentrationMeasurementClusterClientPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Chlorine Concentration Measurement Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfChlorineConcentrationMeasurementClusterClientTickCallback(uint8_t endpoint); -/** @brief Chlorine Concentration Measurement Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfChlorineConcentrationMeasurementClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Chlorine Concentration Measurement Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfChlorineConcentrationMeasurementClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Chlorine Concentration Measurement Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfChlorineConcentrationMeasurementClusterServerInitCallback(uint8_t endpoint); -/** @brief Chlorine Concentration Measurement Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfChlorineConcentrationMeasurementClusterServerManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Chlorine Concentration Measurement Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfChlorineConcentrationMeasurementClusterServerMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, EmberApsFrame * apsFrame, - uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Chlorine Concentration Measurement Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfChlorineConcentrationMeasurementClusterServerPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Chlorine Concentration Measurement Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfChlorineConcentrationMeasurementClusterServerTickCallback(uint8_t endpoint); - -/** @} END Chlorine Concentration Measurement Cluster Callbacks */ - -/** @name Fecal coliform and E. Coli Concentration Measurement Cluster Callbacks */ -// @{ - -/** @brief Fecal coliform and E. Coli Concentration Measurement Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfFecalColiformAndEColiConcentrationMeasurementClusterClientAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId); -/** @brief Fecal coliform and E. Coli Concentration Measurement Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfFecalColiformAndEColiConcentrationMeasurementClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Fecal coliform and E. Coli Concentration Measurement Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfFecalColiformAndEColiConcentrationMeasurementClusterClientInitCallback(uint8_t endpoint); -/** @brief Fecal coliform and E. Coli Concentration Measurement Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfFecalColiformAndEColiConcentrationMeasurementClusterClientManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Fecal coliform and E. Coli Concentration Measurement Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfFecalColiformAndEColiConcentrationMeasurementClusterClientMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, - uint8_t * message, EmberStatus status); -/** @brief Fecal coliform and E. Coli Concentration Measurement Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfFecalColiformAndEColiConcentrationMeasurementClusterClientPreAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, EmberAfAttributeType attributeType, uint8_t size, uint8_t * value); -/** @brief Fecal coliform and E. Coli Concentration Measurement Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfFecalColiformAndEColiConcentrationMeasurementClusterClientTickCallback(uint8_t endpoint); -/** @brief Fecal coliform and E. Coli Concentration Measurement Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfFecalColiformAndEColiConcentrationMeasurementClusterServerAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId); -/** @brief Fecal coliform and E. Coli Concentration Measurement Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfFecalColiformAndEColiConcentrationMeasurementClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Fecal coliform and E. Coli Concentration Measurement Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfFecalColiformAndEColiConcentrationMeasurementClusterServerInitCallback(uint8_t endpoint); -/** @brief Fecal coliform and E. Coli Concentration Measurement Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfFecalColiformAndEColiConcentrationMeasurementClusterServerManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Fecal coliform and E. Coli Concentration Measurement Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfFecalColiformAndEColiConcentrationMeasurementClusterServerMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, - uint8_t * message, EmberStatus status); -/** @brief Fecal coliform and E. Coli Concentration Measurement Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfFecalColiformAndEColiConcentrationMeasurementClusterServerPreAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, EmberAfAttributeType attributeType, uint8_t size, uint8_t * value); -/** @brief Fecal coliform and E. Coli Concentration Measurement Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfFecalColiformAndEColiConcentrationMeasurementClusterServerTickCallback(uint8_t endpoint); - -/** @} END Fecal coliform and E. Coli Concentration Measurement Cluster Callbacks */ - -/** @name Fluoride Concentration Measurement Cluster Callbacks */ -// @{ - -/** @brief Fluoride Concentration Measurement Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfFluorideConcentrationMeasurementClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Fluoride Concentration Measurement Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfFluorideConcentrationMeasurementClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Fluoride Concentration Measurement Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfFluorideConcentrationMeasurementClusterClientInitCallback(uint8_t endpoint); -/** @brief Fluoride Concentration Measurement Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfFluorideConcentrationMeasurementClusterClientManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Fluoride Concentration Measurement Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfFluorideConcentrationMeasurementClusterClientMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, EmberApsFrame * apsFrame, - uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Fluoride Concentration Measurement Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfFluorideConcentrationMeasurementClusterClientPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Fluoride Concentration Measurement Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfFluorideConcentrationMeasurementClusterClientTickCallback(uint8_t endpoint); -/** @brief Fluoride Concentration Measurement Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfFluorideConcentrationMeasurementClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Fluoride Concentration Measurement Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfFluorideConcentrationMeasurementClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Fluoride Concentration Measurement Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfFluorideConcentrationMeasurementClusterServerInitCallback(uint8_t endpoint); -/** @brief Fluoride Concentration Measurement Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfFluorideConcentrationMeasurementClusterServerManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Fluoride Concentration Measurement Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfFluorideConcentrationMeasurementClusterServerMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, EmberApsFrame * apsFrame, - uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Fluoride Concentration Measurement Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfFluorideConcentrationMeasurementClusterServerPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Fluoride Concentration Measurement Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfFluorideConcentrationMeasurementClusterServerTickCallback(uint8_t endpoint); - -/** @} END Fluoride Concentration Measurement Cluster Callbacks */ - -/** @name Haloacetic Acids Concentration Measurement Cluster Callbacks */ -// @{ - -/** @brief Haloacetic Acids Concentration Measurement Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfHaloaceticAcidsConcentrationMeasurementClusterClientAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId); -/** @brief Haloacetic Acids Concentration Measurement Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfHaloaceticAcidsConcentrationMeasurementClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Haloacetic Acids Concentration Measurement Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfHaloaceticAcidsConcentrationMeasurementClusterClientInitCallback(uint8_t endpoint); -/** @brief Haloacetic Acids Concentration Measurement Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfHaloaceticAcidsConcentrationMeasurementClusterClientManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Haloacetic Acids Concentration Measurement Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfHaloaceticAcidsConcentrationMeasurementClusterClientMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, - uint8_t * message, EmberStatus status); -/** @brief Haloacetic Acids Concentration Measurement Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfHaloaceticAcidsConcentrationMeasurementClusterClientPreAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, EmberAfAttributeType attributeType, uint8_t size, uint8_t * value); -/** @brief Haloacetic Acids Concentration Measurement Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfHaloaceticAcidsConcentrationMeasurementClusterClientTickCallback(uint8_t endpoint); -/** @brief Haloacetic Acids Concentration Measurement Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfHaloaceticAcidsConcentrationMeasurementClusterServerAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId); -/** @brief Haloacetic Acids Concentration Measurement Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfHaloaceticAcidsConcentrationMeasurementClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Haloacetic Acids Concentration Measurement Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfHaloaceticAcidsConcentrationMeasurementClusterServerInitCallback(uint8_t endpoint); -/** @brief Haloacetic Acids Concentration Measurement Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfHaloaceticAcidsConcentrationMeasurementClusterServerManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Haloacetic Acids Concentration Measurement Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfHaloaceticAcidsConcentrationMeasurementClusterServerMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, - uint8_t * message, EmberStatus status); -/** @brief Haloacetic Acids Concentration Measurement Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfHaloaceticAcidsConcentrationMeasurementClusterServerPreAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, EmberAfAttributeType attributeType, uint8_t size, uint8_t * value); -/** @brief Haloacetic Acids Concentration Measurement Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfHaloaceticAcidsConcentrationMeasurementClusterServerTickCallback(uint8_t endpoint); - -/** @} END Haloacetic Acids Concentration Measurement Cluster Callbacks */ - -/** @name Total Trihalomethanes Concentration Measurement Cluster Callbacks */ -// @{ - -/** @brief Total Trihalomethanes Concentration Measurement Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfTotalTrihalomethanesConcentrationMeasurementClusterClientAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId); -/** @brief Total Trihalomethanes Concentration Measurement Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfTotalTrihalomethanesConcentrationMeasurementClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Total Trihalomethanes Concentration Measurement Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfTotalTrihalomethanesConcentrationMeasurementClusterClientInitCallback(uint8_t endpoint); -/** @brief Total Trihalomethanes Concentration Measurement Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfTotalTrihalomethanesConcentrationMeasurementClusterClientManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Total Trihalomethanes Concentration Measurement Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfTotalTrihalomethanesConcentrationMeasurementClusterClientMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, - uint8_t * message, EmberStatus status); -/** @brief Total Trihalomethanes Concentration Measurement Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfTotalTrihalomethanesConcentrationMeasurementClusterClientPreAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, EmberAfAttributeType attributeType, uint8_t size, uint8_t * value); -/** @brief Total Trihalomethanes Concentration Measurement Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfTotalTrihalomethanesConcentrationMeasurementClusterClientTickCallback(uint8_t endpoint); -/** @brief Total Trihalomethanes Concentration Measurement Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfTotalTrihalomethanesConcentrationMeasurementClusterServerAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId); -/** @brief Total Trihalomethanes Concentration Measurement Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfTotalTrihalomethanesConcentrationMeasurementClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Total Trihalomethanes Concentration Measurement Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfTotalTrihalomethanesConcentrationMeasurementClusterServerInitCallback(uint8_t endpoint); -/** @brief Total Trihalomethanes Concentration Measurement Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfTotalTrihalomethanesConcentrationMeasurementClusterServerManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Total Trihalomethanes Concentration Measurement Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfTotalTrihalomethanesConcentrationMeasurementClusterServerMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, - uint8_t * message, EmberStatus status); -/** @brief Total Trihalomethanes Concentration Measurement Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfTotalTrihalomethanesConcentrationMeasurementClusterServerPreAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, EmberAfAttributeType attributeType, uint8_t size, uint8_t * value); -/** @brief Total Trihalomethanes Concentration Measurement Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfTotalTrihalomethanesConcentrationMeasurementClusterServerTickCallback(uint8_t endpoint); - -/** @} END Total Trihalomethanes Concentration Measurement Cluster Callbacks */ - -/** @name Total Coliform Bacteria Concentration Measurement Cluster Callbacks */ -// @{ - -/** @brief Total Coliform Bacteria Concentration Measurement Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfTotalColiformBacteriaConcentrationMeasurementClusterClientAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId); -/** @brief Total Coliform Bacteria Concentration Measurement Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfTotalColiformBacteriaConcentrationMeasurementClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Total Coliform Bacteria Concentration Measurement Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfTotalColiformBacteriaConcentrationMeasurementClusterClientInitCallback(uint8_t endpoint); -/** @brief Total Coliform Bacteria Concentration Measurement Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfTotalColiformBacteriaConcentrationMeasurementClusterClientManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Total Coliform Bacteria Concentration Measurement Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfTotalColiformBacteriaConcentrationMeasurementClusterClientMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, - uint8_t * message, EmberStatus status); -/** @brief Total Coliform Bacteria Concentration Measurement Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfTotalColiformBacteriaConcentrationMeasurementClusterClientPreAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, EmberAfAttributeType attributeType, uint8_t size, uint8_t * value); -/** @brief Total Coliform Bacteria Concentration Measurement Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfTotalColiformBacteriaConcentrationMeasurementClusterClientTickCallback(uint8_t endpoint); -/** @brief Total Coliform Bacteria Concentration Measurement Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfTotalColiformBacteriaConcentrationMeasurementClusterServerAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId); -/** @brief Total Coliform Bacteria Concentration Measurement Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfTotalColiformBacteriaConcentrationMeasurementClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Total Coliform Bacteria Concentration Measurement Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfTotalColiformBacteriaConcentrationMeasurementClusterServerInitCallback(uint8_t endpoint); -/** @brief Total Coliform Bacteria Concentration Measurement Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfTotalColiformBacteriaConcentrationMeasurementClusterServerManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Total Coliform Bacteria Concentration Measurement Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfTotalColiformBacteriaConcentrationMeasurementClusterServerMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, - uint8_t * message, EmberStatus status); -/** @brief Total Coliform Bacteria Concentration Measurement Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfTotalColiformBacteriaConcentrationMeasurementClusterServerPreAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, EmberAfAttributeType attributeType, uint8_t size, uint8_t * value); -/** @brief Total Coliform Bacteria Concentration Measurement Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfTotalColiformBacteriaConcentrationMeasurementClusterServerTickCallback(uint8_t endpoint); - -/** @} END Total Coliform Bacteria Concentration Measurement Cluster Callbacks */ - -/** @name Turbidity Concentration Measurement Cluster Callbacks */ -// @{ - -/** @brief Turbidity Concentration Measurement Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfTurbidityConcentrationMeasurementClusterClientAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId); -/** @brief Turbidity Concentration Measurement Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfTurbidityConcentrationMeasurementClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Turbidity Concentration Measurement Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfTurbidityConcentrationMeasurementClusterClientInitCallback(uint8_t endpoint); -/** @brief Turbidity Concentration Measurement Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfTurbidityConcentrationMeasurementClusterClientManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Turbidity Concentration Measurement Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfTurbidityConcentrationMeasurementClusterClientMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, EmberApsFrame * apsFrame, - uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Turbidity Concentration Measurement Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfTurbidityConcentrationMeasurementClusterClientPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Turbidity Concentration Measurement Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfTurbidityConcentrationMeasurementClusterClientTickCallback(uint8_t endpoint); -/** @brief Turbidity Concentration Measurement Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfTurbidityConcentrationMeasurementClusterServerAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId); -/** @brief Turbidity Concentration Measurement Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfTurbidityConcentrationMeasurementClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Turbidity Concentration Measurement Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfTurbidityConcentrationMeasurementClusterServerInitCallback(uint8_t endpoint); -/** @brief Turbidity Concentration Measurement Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfTurbidityConcentrationMeasurementClusterServerManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Turbidity Concentration Measurement Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfTurbidityConcentrationMeasurementClusterServerMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, EmberApsFrame * apsFrame, - uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Turbidity Concentration Measurement Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfTurbidityConcentrationMeasurementClusterServerPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Turbidity Concentration Measurement Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfTurbidityConcentrationMeasurementClusterServerTickCallback(uint8_t endpoint); - -/** @} END Turbidity Concentration Measurement Cluster Callbacks */ - -/** @name Copper Concentration Measurement Cluster Callbacks */ -// @{ - -/** @brief Copper Concentration Measurement Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfCopperConcentrationMeasurementClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Copper Concentration Measurement Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfCopperConcentrationMeasurementClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Copper Concentration Measurement Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfCopperConcentrationMeasurementClusterClientInitCallback(uint8_t endpoint); -/** @brief Copper Concentration Measurement Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfCopperConcentrationMeasurementClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Copper Concentration Measurement Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfCopperConcentrationMeasurementClusterClientMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, EmberApsFrame * apsFrame, - uint16_t msgLen, uint8_t * message, EmberStatus status); -/** @brief Copper Concentration Measurement Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfCopperConcentrationMeasurementClusterClientPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Copper Concentration Measurement Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfCopperConcentrationMeasurementClusterClientTickCallback(uint8_t endpoint); -/** @brief Copper Concentration Measurement Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfCopperConcentrationMeasurementClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Copper Concentration Measurement Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfCopperConcentrationMeasurementClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Copper Concentration Measurement Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfCopperConcentrationMeasurementClusterServerInitCallback(uint8_t endpoint); -/** @brief Copper Concentration Measurement Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfCopperConcentrationMeasurementClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Copper Concentration Measurement Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfCopperConcentrationMeasurementClusterServerMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, EmberApsFrame * apsFrame, - uint16_t msgLen, uint8_t * message, EmberStatus status); -/** @brief Copper Concentration Measurement Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfCopperConcentrationMeasurementClusterServerPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Copper Concentration Measurement Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfCopperConcentrationMeasurementClusterServerTickCallback(uint8_t endpoint); - -/** @} END Copper Concentration Measurement Cluster Callbacks */ - -/** @name Lead Concentration Measurement Cluster Callbacks */ -// @{ - -/** @brief Lead Concentration Measurement Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfLeadConcentrationMeasurementClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Lead Concentration Measurement Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfLeadConcentrationMeasurementClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Lead Concentration Measurement Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfLeadConcentrationMeasurementClusterClientInitCallback(uint8_t endpoint); -/** @brief Lead Concentration Measurement Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfLeadConcentrationMeasurementClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Lead Concentration Measurement Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfLeadConcentrationMeasurementClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, - uint8_t * message, EmberStatus status); -/** @brief Lead Concentration Measurement Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfLeadConcentrationMeasurementClusterClientPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Lead Concentration Measurement Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfLeadConcentrationMeasurementClusterClientTickCallback(uint8_t endpoint); -/** @brief Lead Concentration Measurement Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfLeadConcentrationMeasurementClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Lead Concentration Measurement Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfLeadConcentrationMeasurementClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Lead Concentration Measurement Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfLeadConcentrationMeasurementClusterServerInitCallback(uint8_t endpoint); -/** @brief Lead Concentration Measurement Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfLeadConcentrationMeasurementClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Lead Concentration Measurement Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfLeadConcentrationMeasurementClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, - uint8_t * message, EmberStatus status); -/** @brief Lead Concentration Measurement Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfLeadConcentrationMeasurementClusterServerPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Lead Concentration Measurement Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfLeadConcentrationMeasurementClusterServerTickCallback(uint8_t endpoint); - -/** @} END Lead Concentration Measurement Cluster Callbacks */ - -/** @name Manganese Concentration Measurement Cluster Callbacks */ -// @{ - -/** @brief Manganese Concentration Measurement Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfManganeseConcentrationMeasurementClusterClientAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId); -/** @brief Manganese Concentration Measurement Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfManganeseConcentrationMeasurementClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Manganese Concentration Measurement Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfManganeseConcentrationMeasurementClusterClientInitCallback(uint8_t endpoint); -/** @brief Manganese Concentration Measurement Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfManganeseConcentrationMeasurementClusterClientManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Manganese Concentration Measurement Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfManganeseConcentrationMeasurementClusterClientMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, EmberApsFrame * apsFrame, - uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Manganese Concentration Measurement Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfManganeseConcentrationMeasurementClusterClientPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Manganese Concentration Measurement Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfManganeseConcentrationMeasurementClusterClientTickCallback(uint8_t endpoint); -/** @brief Manganese Concentration Measurement Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfManganeseConcentrationMeasurementClusterServerAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId); -/** @brief Manganese Concentration Measurement Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfManganeseConcentrationMeasurementClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Manganese Concentration Measurement Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfManganeseConcentrationMeasurementClusterServerInitCallback(uint8_t endpoint); -/** @brief Manganese Concentration Measurement Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfManganeseConcentrationMeasurementClusterServerManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Manganese Concentration Measurement Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfManganeseConcentrationMeasurementClusterServerMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, EmberApsFrame * apsFrame, - uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Manganese Concentration Measurement Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfManganeseConcentrationMeasurementClusterServerPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Manganese Concentration Measurement Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfManganeseConcentrationMeasurementClusterServerTickCallback(uint8_t endpoint); - -/** @} END Manganese Concentration Measurement Cluster Callbacks */ - -/** @name Sulfate Concentration Measurement Cluster Callbacks */ -// @{ - -/** @brief Sulfate Concentration Measurement Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfSulfateConcentrationMeasurementClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Sulfate Concentration Measurement Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfSulfateConcentrationMeasurementClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Sulfate Concentration Measurement Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfSulfateConcentrationMeasurementClusterClientInitCallback(uint8_t endpoint); -/** @brief Sulfate Concentration Measurement Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfSulfateConcentrationMeasurementClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Sulfate Concentration Measurement Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfSulfateConcentrationMeasurementClusterClientMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, EmberApsFrame * apsFrame, - uint16_t msgLen, uint8_t * message, EmberStatus status); -/** @brief Sulfate Concentration Measurement Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfSulfateConcentrationMeasurementClusterClientPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Sulfate Concentration Measurement Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfSulfateConcentrationMeasurementClusterClientTickCallback(uint8_t endpoint); -/** @brief Sulfate Concentration Measurement Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfSulfateConcentrationMeasurementClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Sulfate Concentration Measurement Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfSulfateConcentrationMeasurementClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Sulfate Concentration Measurement Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfSulfateConcentrationMeasurementClusterServerInitCallback(uint8_t endpoint); -/** @brief Sulfate Concentration Measurement Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfSulfateConcentrationMeasurementClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Sulfate Concentration Measurement Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfSulfateConcentrationMeasurementClusterServerMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, EmberApsFrame * apsFrame, - uint16_t msgLen, uint8_t * message, EmberStatus status); -/** @brief Sulfate Concentration Measurement Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfSulfateConcentrationMeasurementClusterServerPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Sulfate Concentration Measurement Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfSulfateConcentrationMeasurementClusterServerTickCallback(uint8_t endpoint); - -/** @} END Sulfate Concentration Measurement Cluster Callbacks */ - -/** @name Bromodichloromethane Concentration Measurement Cluster Callbacks */ -// @{ - -/** @brief Bromodichloromethane Concentration Measurement Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfBromodichloromethaneConcentrationMeasurementClusterClientAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId); -/** @brief Bromodichloromethane Concentration Measurement Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfBromodichloromethaneConcentrationMeasurementClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Bromodichloromethane Concentration Measurement Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfBromodichloromethaneConcentrationMeasurementClusterClientInitCallback(uint8_t endpoint); -/** @brief Bromodichloromethane Concentration Measurement Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfBromodichloromethaneConcentrationMeasurementClusterClientManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Bromodichloromethane Concentration Measurement Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfBromodichloromethaneConcentrationMeasurementClusterClientMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, - uint8_t * message, EmberStatus status); -/** @brief Bromodichloromethane Concentration Measurement Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfBromodichloromethaneConcentrationMeasurementClusterClientPreAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, EmberAfAttributeType attributeType, uint8_t size, uint8_t * value); -/** @brief Bromodichloromethane Concentration Measurement Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfBromodichloromethaneConcentrationMeasurementClusterClientTickCallback(uint8_t endpoint); -/** @brief Bromodichloromethane Concentration Measurement Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfBromodichloromethaneConcentrationMeasurementClusterServerAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId); -/** @brief Bromodichloromethane Concentration Measurement Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfBromodichloromethaneConcentrationMeasurementClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Bromodichloromethane Concentration Measurement Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfBromodichloromethaneConcentrationMeasurementClusterServerInitCallback(uint8_t endpoint); -/** @brief Bromodichloromethane Concentration Measurement Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfBromodichloromethaneConcentrationMeasurementClusterServerManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Bromodichloromethane Concentration Measurement Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfBromodichloromethaneConcentrationMeasurementClusterServerMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, - uint8_t * message, EmberStatus status); -/** @brief Bromodichloromethane Concentration Measurement Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfBromodichloromethaneConcentrationMeasurementClusterServerPreAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, EmberAfAttributeType attributeType, uint8_t size, uint8_t * value); -/** @brief Bromodichloromethane Concentration Measurement Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfBromodichloromethaneConcentrationMeasurementClusterServerTickCallback(uint8_t endpoint); - -/** @} END Bromodichloromethane Concentration Measurement Cluster Callbacks */ - -/** @name Bromoform Concentration Measurement Cluster Callbacks */ -// @{ - -/** @brief Bromoform Concentration Measurement Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfBromoformConcentrationMeasurementClusterClientAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId); -/** @brief Bromoform Concentration Measurement Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfBromoformConcentrationMeasurementClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Bromoform Concentration Measurement Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfBromoformConcentrationMeasurementClusterClientInitCallback(uint8_t endpoint); -/** @brief Bromoform Concentration Measurement Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfBromoformConcentrationMeasurementClusterClientManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Bromoform Concentration Measurement Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfBromoformConcentrationMeasurementClusterClientMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, EmberApsFrame * apsFrame, - uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Bromoform Concentration Measurement Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfBromoformConcentrationMeasurementClusterClientPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Bromoform Concentration Measurement Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfBromoformConcentrationMeasurementClusterClientTickCallback(uint8_t endpoint); -/** @brief Bromoform Concentration Measurement Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfBromoformConcentrationMeasurementClusterServerAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId); -/** @brief Bromoform Concentration Measurement Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfBromoformConcentrationMeasurementClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Bromoform Concentration Measurement Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfBromoformConcentrationMeasurementClusterServerInitCallback(uint8_t endpoint); -/** @brief Bromoform Concentration Measurement Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfBromoformConcentrationMeasurementClusterServerManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Bromoform Concentration Measurement Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfBromoformConcentrationMeasurementClusterServerMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, EmberApsFrame * apsFrame, - uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Bromoform Concentration Measurement Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfBromoformConcentrationMeasurementClusterServerPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Bromoform Concentration Measurement Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfBromoformConcentrationMeasurementClusterServerTickCallback(uint8_t endpoint); - -/** @} END Bromoform Concentration Measurement Cluster Callbacks */ - -/** @name Chlorodibromomethane Concentration Measurement Cluster Callbacks */ -// @{ - -/** @brief Chlorodibromomethane Concentration Measurement Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfChlorodibromomethaneConcentrationMeasurementClusterClientAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId); -/** @brief Chlorodibromomethane Concentration Measurement Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfChlorodibromomethaneConcentrationMeasurementClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Chlorodibromomethane Concentration Measurement Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfChlorodibromomethaneConcentrationMeasurementClusterClientInitCallback(uint8_t endpoint); -/** @brief Chlorodibromomethane Concentration Measurement Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfChlorodibromomethaneConcentrationMeasurementClusterClientManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Chlorodibromomethane Concentration Measurement Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfChlorodibromomethaneConcentrationMeasurementClusterClientMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, - uint8_t * message, EmberStatus status); -/** @brief Chlorodibromomethane Concentration Measurement Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfChlorodibromomethaneConcentrationMeasurementClusterClientPreAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, EmberAfAttributeType attributeType, uint8_t size, uint8_t * value); -/** @brief Chlorodibromomethane Concentration Measurement Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfChlorodibromomethaneConcentrationMeasurementClusterClientTickCallback(uint8_t endpoint); -/** @brief Chlorodibromomethane Concentration Measurement Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfChlorodibromomethaneConcentrationMeasurementClusterServerAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId); -/** @brief Chlorodibromomethane Concentration Measurement Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfChlorodibromomethaneConcentrationMeasurementClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Chlorodibromomethane Concentration Measurement Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfChlorodibromomethaneConcentrationMeasurementClusterServerInitCallback(uint8_t endpoint); -/** @brief Chlorodibromomethane Concentration Measurement Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfChlorodibromomethaneConcentrationMeasurementClusterServerManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Chlorodibromomethane Concentration Measurement Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfChlorodibromomethaneConcentrationMeasurementClusterServerMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, - uint8_t * message, EmberStatus status); -/** @brief Chlorodibromomethane Concentration Measurement Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfChlorodibromomethaneConcentrationMeasurementClusterServerPreAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, EmberAfAttributeType attributeType, uint8_t size, uint8_t * value); -/** @brief Chlorodibromomethane Concentration Measurement Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfChlorodibromomethaneConcentrationMeasurementClusterServerTickCallback(uint8_t endpoint); - -/** @} END Chlorodibromomethane Concentration Measurement Cluster Callbacks */ - -/** @name Chloroform Concentration Measurement Cluster Callbacks */ -// @{ - -/** @brief Chloroform Concentration Measurement Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfChloroformConcentrationMeasurementClusterClientAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId); -/** @brief Chloroform Concentration Measurement Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfChloroformConcentrationMeasurementClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Chloroform Concentration Measurement Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfChloroformConcentrationMeasurementClusterClientInitCallback(uint8_t endpoint); -/** @brief Chloroform Concentration Measurement Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfChloroformConcentrationMeasurementClusterClientManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Chloroform Concentration Measurement Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfChloroformConcentrationMeasurementClusterClientMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, - uint8_t * message, EmberStatus status); -/** @brief Chloroform Concentration Measurement Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfChloroformConcentrationMeasurementClusterClientPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Chloroform Concentration Measurement Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfChloroformConcentrationMeasurementClusterClientTickCallback(uint8_t endpoint); -/** @brief Chloroform Concentration Measurement Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfChloroformConcentrationMeasurementClusterServerAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId); -/** @brief Chloroform Concentration Measurement Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfChloroformConcentrationMeasurementClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Chloroform Concentration Measurement Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfChloroformConcentrationMeasurementClusterServerInitCallback(uint8_t endpoint); -/** @brief Chloroform Concentration Measurement Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfChloroformConcentrationMeasurementClusterServerManufacturerSpecificAttributeChangedCallback( - uint8_t endpoint, EmberAfAttributeId attributeId, uint16_t manufacturerCode); -/** @brief Chloroform Concentration Measurement Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfChloroformConcentrationMeasurementClusterServerMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, - uint8_t * message, EmberStatus status); -/** @brief Chloroform Concentration Measurement Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfChloroformConcentrationMeasurementClusterServerPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Chloroform Concentration Measurement Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfChloroformConcentrationMeasurementClusterServerTickCallback(uint8_t endpoint); - -/** @} END Chloroform Concentration Measurement Cluster Callbacks */ - -/** @name Sodium Concentration Measurement Cluster Callbacks */ -// @{ - -/** @brief Sodium Concentration Measurement Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfSodiumConcentrationMeasurementClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Sodium Concentration Measurement Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfSodiumConcentrationMeasurementClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Sodium Concentration Measurement Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfSodiumConcentrationMeasurementClusterClientInitCallback(uint8_t endpoint); -/** @brief Sodium Concentration Measurement Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfSodiumConcentrationMeasurementClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Sodium Concentration Measurement Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfSodiumConcentrationMeasurementClusterClientMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, EmberApsFrame * apsFrame, - uint16_t msgLen, uint8_t * message, EmberStatus status); -/** @brief Sodium Concentration Measurement Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfSodiumConcentrationMeasurementClusterClientPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Sodium Concentration Measurement Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfSodiumConcentrationMeasurementClusterClientTickCallback(uint8_t endpoint); -/** @brief Sodium Concentration Measurement Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfSodiumConcentrationMeasurementClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Sodium Concentration Measurement Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfSodiumConcentrationMeasurementClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Sodium Concentration Measurement Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfSodiumConcentrationMeasurementClusterServerInitCallback(uint8_t endpoint); -/** @brief Sodium Concentration Measurement Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfSodiumConcentrationMeasurementClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Sodium Concentration Measurement Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfSodiumConcentrationMeasurementClusterServerMessageSentCallback(EmberOutgoingMessageType type, - uint16_t indexOrDestination, EmberApsFrame * apsFrame, - uint16_t msgLen, uint8_t * message, EmberStatus status); -/** @brief Sodium Concentration Measurement Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfSodiumConcentrationMeasurementClusterServerPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Sodium Concentration Measurement Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfSodiumConcentrationMeasurementClusterServerTickCallback(uint8_t endpoint); - -/** @} END Sodium Concentration Measurement Cluster Callbacks */ - -/** @name IAS Zone Cluster Callbacks */ -// @{ - -/** @brief IAS Zone Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfIasZoneClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief IAS Zone Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfIasZoneClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief IAS Zone Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfIasZoneClusterClientInitCallback(uint8_t endpoint); -/** @brief IAS Zone Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfIasZoneClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief IAS Zone Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfIasZoneClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief IAS Zone Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfIasZoneClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief IAS Zone Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfIasZoneClusterClientTickCallback(uint8_t endpoint); -/** @brief IAS Zone Cluster Initiate Normal Operation Mode - * - * - * - */ -bool emberAfIasZoneClusterInitiateNormalOperationModeCallback(void); -/** @brief IAS Zone Cluster Initiate Normal Operation Mode Response - * - * - * - */ -bool emberAfIasZoneClusterInitiateNormalOperationModeResponseCallback(void); -/** @brief IAS Zone Cluster Initiate Test Mode - * - * - * - * @param testModeDuration Ver.: always - * @param currentZoneSensitivityLevel Ver.: always - */ -bool emberAfIasZoneClusterInitiateTestModeCallback(uint8_t testModeDuration, uint8_t currentZoneSensitivityLevel); -/** @brief IAS Zone Cluster Initiate Test Mode Response - * - * - * - */ -bool emberAfIasZoneClusterInitiateTestModeResponseCallback(void); -/** @brief IAS Zone Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfIasZoneClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief IAS Zone Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfIasZoneClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief IAS Zone Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfIasZoneClusterServerInitCallback(uint8_t endpoint); -/** @brief IAS Zone Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfIasZoneClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief IAS Zone Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfIasZoneClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief IAS Zone Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfIasZoneClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief IAS Zone Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfIasZoneClusterServerTickCallback(uint8_t endpoint); -/** @brief IAS Zone Cluster Zone Enroll Request - * - * - * - * @param zoneType Ver.: always - * @param manufacturerCode Ver.: always - */ -bool emberAfIasZoneClusterZoneEnrollRequestCallback(uint16_t zoneType, uint16_t manufacturerCode); -/** @brief IAS Zone Cluster Zone Enroll Response - * - * - * - * @param enrollResponseCode Ver.: always - * @param zoneId Ver.: always - */ -bool emberAfIasZoneClusterZoneEnrollResponseCallback(uint8_t enrollResponseCode, uint8_t zoneId); -/** @brief IAS Zone Cluster Zone Status Change Notification - * - * - * - * @param zoneStatus Ver.: always - * @param extendedStatus Ver.: always - * @param zoneId Ver.: since ha-1.2-05-3520-29 - * @param delay Ver.: since ha-1.2-05-3520-29 - */ -bool emberAfIasZoneClusterZoneStatusChangeNotificationCallback(uint16_t zoneStatus, uint8_t extendedStatus, uint8_t zoneId, - uint16_t delay); - -/** @} END IAS Zone Cluster Callbacks */ - -/** @name IAS ACE Cluster Callbacks */ -// @{ - -/** @brief IAS ACE Cluster Arm - * - * - * - * @param armMode Ver.: always - * @param armDisarmCode Ver.: since ha-1.2-05-3520-29 - * @param zoneId Ver.: since ha-1.2-05-3520-29 - */ -bool emberAfIasAceClusterArmCallback(uint8_t armMode, uint8_t * armDisarmCode, uint8_t zoneId); -/** @brief IAS ACE Cluster Arm Response - * - * - * - * @param armNotification Ver.: always - */ -bool emberAfIasAceClusterArmResponseCallback(uint8_t armNotification); -/** @brief IAS ACE Cluster Bypass - * - * - * - * @param numberOfZones Ver.: always - * @param zoneIds Ver.: always - * @param armDisarmCode Ver.: since ha-1.2.1-05-3520-30 - */ -bool emberAfIasAceClusterBypassCallback(uint8_t numberOfZones, uint8_t * zoneIds, uint8_t * armDisarmCode); -/** @brief IAS ACE Cluster Bypass Response - * - * - * - * @param numberOfZones Ver.: always - * @param bypassResult Ver.: always - */ -bool emberAfIasAceClusterBypassResponseCallback(uint8_t numberOfZones, uint8_t * bypassResult); -/** @brief IAS ACE Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfIasAceClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief IAS ACE Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfIasAceClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief IAS ACE Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfIasAceClusterClientInitCallback(uint8_t endpoint); -/** @brief IAS ACE Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfIasAceClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief IAS ACE Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfIasAceClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief IAS ACE Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfIasAceClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief IAS ACE Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfIasAceClusterClientTickCallback(uint8_t endpoint); -/** @brief IAS ACE Cluster Emergency - * - * - * - */ -bool emberAfIasAceClusterEmergencyCallback(void); -/** @brief IAS ACE Cluster Fire - * - * - * - */ -bool emberAfIasAceClusterFireCallback(void); -/** @brief IAS ACE Cluster Get Bypassed Zone List - * - * - * - */ -bool emberAfIasAceClusterGetBypassedZoneListCallback(void); -/** @brief IAS ACE Cluster Get Panel Status - * - * - * - */ -bool emberAfIasAceClusterGetPanelStatusCallback(void); -/** @brief IAS ACE Cluster Get Panel Status Response - * - * - * - * @param panelStatus Ver.: always - * @param secondsRemaining Ver.: always - * @param audibleNotification Ver.: always - * @param alarmStatus Ver.: always - */ -bool emberAfIasAceClusterGetPanelStatusResponseCallback(uint8_t panelStatus, uint8_t secondsRemaining, uint8_t audibleNotification, - uint8_t alarmStatus); -/** @brief IAS ACE Cluster Get Zone Id Map - * - * - * - */ -bool emberAfIasAceClusterGetZoneIdMapCallback(void); -/** @brief IAS ACE Cluster Get Zone Id Map Response - * - * - * - * @param section0 Ver.: always - * @param section1 Ver.: always - * @param section2 Ver.: always - * @param section3 Ver.: always - * @param section4 Ver.: always - * @param section5 Ver.: always - * @param section6 Ver.: always - * @param section7 Ver.: always - * @param section8 Ver.: always - * @param section9 Ver.: always - * @param section10 Ver.: always - * @param section11 Ver.: always - * @param section12 Ver.: always - * @param section13 Ver.: always - * @param section14 Ver.: always - * @param section15 Ver.: always - */ -bool emberAfIasAceClusterGetZoneIdMapResponseCallback(uint16_t section0, uint16_t section1, uint16_t section2, uint16_t section3, - uint16_t section4, uint16_t section5, uint16_t section6, uint16_t section7, - uint16_t section8, uint16_t section9, uint16_t section10, uint16_t section11, - uint16_t section12, uint16_t section13, uint16_t section14, - uint16_t section15); -/** @brief IAS ACE Cluster Get Zone Information - * - * - * - * @param zoneId Ver.: always - */ -bool emberAfIasAceClusterGetZoneInformationCallback(uint8_t zoneId); -/** @brief IAS ACE Cluster Get Zone Information Response - * - * - * - * @param zoneId Ver.: always - * @param zoneType Ver.: always - * @param ieeeAddress Ver.: always - * @param zoneLabel Ver.: since ha-1.2.1-05-3520-30 - */ -bool emberAfIasAceClusterGetZoneInformationResponseCallback(uint8_t zoneId, uint16_t zoneType, uint8_t * ieeeAddress, - uint8_t * zoneLabel); -/** @brief IAS ACE Cluster Get Zone Status - * - * - * - * @param startingZoneId Ver.: always - * @param maxNumberOfZoneIds Ver.: always - * @param zoneStatusMaskFlag Ver.: always - * @param zoneStatusMask Ver.: always - */ -bool emberAfIasAceClusterGetZoneStatusCallback(uint8_t startingZoneId, uint8_t maxNumberOfZoneIds, uint8_t zoneStatusMaskFlag, - uint16_t zoneStatusMask); -/** @brief IAS ACE Cluster Get Zone Status Response - * - * - * - * @param zoneStatusComplete Ver.: always - * @param numberOfZones Ver.: always - * @param zoneStatusResult Ver.: always - */ -bool emberAfIasAceClusterGetZoneStatusResponseCallback(uint8_t zoneStatusComplete, uint8_t numberOfZones, - uint8_t * zoneStatusResult); -/** @brief IAS ACE Cluster Panel Status Changed - * - * - * - * @param panelStatus Ver.: always - * @param secondsRemaining Ver.: always - * @param audibleNotification Ver.: since ha-1.2.1-05-3520-30 - * @param alarmStatus Ver.: since ha-1.2.1-05-3520-30 - */ -bool emberAfIasAceClusterPanelStatusChangedCallback(uint8_t panelStatus, uint8_t secondsRemaining, uint8_t audibleNotification, - uint8_t alarmStatus); -/** @brief IAS ACE Cluster Panic - * - * - * - */ -bool emberAfIasAceClusterPanicCallback(void); -/** @brief IAS ACE Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfIasAceClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief IAS ACE Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfIasAceClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief IAS ACE Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfIasAceClusterServerInitCallback(uint8_t endpoint); -/** @brief IAS ACE Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfIasAceClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief IAS ACE Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfIasAceClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief IAS ACE Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfIasAceClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief IAS ACE Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfIasAceClusterServerTickCallback(uint8_t endpoint); -/** @brief IAS ACE Cluster Set Bypassed Zone List - * - * - * - * @param numberOfZones Ver.: always - * @param zoneIds Ver.: always - */ -bool emberAfIasAceClusterSetBypassedZoneListCallback(uint8_t numberOfZones, uint8_t * zoneIds); -/** @brief IAS ACE Cluster Zone Status Changed - * - * - * - * @param zoneId Ver.: always - * @param zoneStatus Ver.: always - * @param audibleNotification Ver.: since ha-1.2.1-05-3520-30 - * @param zoneLabel Ver.: since ha-1.2.1-05-3520-30 - */ -bool emberAfIasAceClusterZoneStatusChangedCallback(uint8_t zoneId, uint16_t zoneStatus, uint8_t audibleNotification, - uint8_t * zoneLabel); - -/** @} END IAS ACE Cluster Callbacks */ - -/** @name IAS WD Cluster Callbacks */ -// @{ - -/** @brief IAS WD Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfIasWdClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief IAS WD Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfIasWdClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief IAS WD Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfIasWdClusterClientInitCallback(uint8_t endpoint); -/** @brief IAS WD Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfIasWdClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief IAS WD Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfIasWdClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, EmberStatus status); -/** @brief IAS WD Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfIasWdClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief IAS WD Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfIasWdClusterClientTickCallback(uint8_t endpoint); -/** @brief IAS WD Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfIasWdClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief IAS WD Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfIasWdClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief IAS WD Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfIasWdClusterServerInitCallback(uint8_t endpoint); -/** @brief IAS WD Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfIasWdClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief IAS WD Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfIasWdClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, EmberStatus status); -/** @brief IAS WD Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfIasWdClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief IAS WD Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfIasWdClusterServerTickCallback(uint8_t endpoint); -/** @brief IAS WD Cluster Squawk - * - * - * - * @param squawkInfo Ver.: always - */ -bool emberAfIasWdClusterSquawkCallback(uint8_t squawkInfo); -/** @brief IAS WD Cluster Start Warning - * - * - * - * @param warningInfo Ver.: always - * @param warningDuration Ver.: always - * @param strobeDutyCycle Ver.: since ha-1.2-05-3520-29 - * @param strobeLevel Ver.: since ha-1.2-05-3520-29 - */ -bool emberAfIasWdClusterStartWarningCallback(uint8_t warningInfo, uint16_t warningDuration, uint8_t strobeDutyCycle, - uint8_t strobeLevel); - -/** @} END IAS WD Cluster Callbacks */ - -/** @name Generic Tunnel Cluster Callbacks */ -// @{ - -/** @brief Generic Tunnel Cluster Advertise Protocol Address - * - * - * - * @param protocolAddress Ver.: always - */ -bool emberAfGenericTunnelClusterAdvertiseProtocolAddressCallback(uint8_t * protocolAddress); -/** @brief Generic Tunnel Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfGenericTunnelClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Generic Tunnel Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfGenericTunnelClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Generic Tunnel Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfGenericTunnelClusterClientInitCallback(uint8_t endpoint); -/** @brief Generic Tunnel Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfGenericTunnelClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Generic Tunnel Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfGenericTunnelClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Generic Tunnel Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfGenericTunnelClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Generic Tunnel Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfGenericTunnelClusterClientTickCallback(uint8_t endpoint); -/** @brief Generic Tunnel Cluster Match Protocol Address - * - * - * - * @param protocolAddress Ver.: always - */ -bool emberAfGenericTunnelClusterMatchProtocolAddressCallback(uint8_t * protocolAddress); -/** @brief Generic Tunnel Cluster Match Protocol Address Response - * - * - * - * @param deviceIeeeAddress Ver.: always - * @param protocolAddress Ver.: always - */ -bool emberAfGenericTunnelClusterMatchProtocolAddressResponseCallback(uint8_t * deviceIeeeAddress, uint8_t * protocolAddress); -/** @brief Generic Tunnel Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfGenericTunnelClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Generic Tunnel Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfGenericTunnelClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Generic Tunnel Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfGenericTunnelClusterServerInitCallback(uint8_t endpoint); -/** @brief Generic Tunnel Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfGenericTunnelClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Generic Tunnel Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfGenericTunnelClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Generic Tunnel Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfGenericTunnelClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Generic Tunnel Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfGenericTunnelClusterServerTickCallback(uint8_t endpoint); - -/** @} END Generic Tunnel Cluster Callbacks */ - -/** @name BACnet Protocol Tunnel Cluster Callbacks */ -// @{ - -/** @brief BACnet Protocol Tunnel Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfBacnetProtocolTunnelClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief BACnet Protocol Tunnel Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfBacnetProtocolTunnelClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief BACnet Protocol Tunnel Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfBacnetProtocolTunnelClusterClientInitCallback(uint8_t endpoint); -/** @brief BACnet Protocol Tunnel Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfBacnetProtocolTunnelClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief BACnet Protocol Tunnel Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfBacnetProtocolTunnelClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief BACnet Protocol Tunnel Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfBacnetProtocolTunnelClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief BACnet Protocol Tunnel Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfBacnetProtocolTunnelClusterClientTickCallback(uint8_t endpoint); -/** @brief BACnet Protocol Tunnel Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfBacnetProtocolTunnelClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief BACnet Protocol Tunnel Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfBacnetProtocolTunnelClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief BACnet Protocol Tunnel Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfBacnetProtocolTunnelClusterServerInitCallback(uint8_t endpoint); -/** @brief BACnet Protocol Tunnel Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfBacnetProtocolTunnelClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief BACnet Protocol Tunnel Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfBacnetProtocolTunnelClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief BACnet Protocol Tunnel Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfBacnetProtocolTunnelClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief BACnet Protocol Tunnel Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfBacnetProtocolTunnelClusterServerTickCallback(uint8_t endpoint); -/** @brief BACnet Protocol Tunnel Cluster Transfer Npdu - * - * - * - * @param npdu Ver.: always - */ -bool emberAfBacnetProtocolTunnelClusterTransferNpduCallback(uint8_t * npdu); - -/** @} END BACnet Protocol Tunnel Cluster Callbacks */ - -/** @name 11073 Protocol Tunnel Cluster Callbacks */ -// @{ - -/** @brief 11073 Protocol Tunnel Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAf11073ProtocolTunnelClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief 11073 Protocol Tunnel Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAf11073ProtocolTunnelClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief 11073 Protocol Tunnel Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAf11073ProtocolTunnelClusterClientInitCallback(uint8_t endpoint); -/** @brief 11073 Protocol Tunnel Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAf11073ProtocolTunnelClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief 11073 Protocol Tunnel Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAf11073ProtocolTunnelClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief 11073 Protocol Tunnel Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAf11073ProtocolTunnelClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief 11073 Protocol Tunnel Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAf11073ProtocolTunnelClusterClientTickCallback(uint8_t endpoint); -/** @brief 11073 Protocol Tunnel Cluster Connect Request - * - * - * - * @param connectControl Ver.: always - * @param idleTimeout Ver.: always - * @param managerTarget Ver.: always - * @param managerEndpoint Ver.: always - */ -bool emberAf11073ProtocolTunnelClusterConnectRequestCallback(uint8_t connectControl, uint16_t idleTimeout, uint8_t * managerTarget, - uint8_t managerEndpoint); -/** @brief 11073 Protocol Tunnel Cluster Connect Status Notification - * - * - * - * @param connectStatus Ver.: always - */ -bool emberAf11073ProtocolTunnelClusterConnectStatusNotificationCallback(uint8_t connectStatus); -/** @brief 11073 Protocol Tunnel Cluster Disconnect Request - * - * - * - * @param managerIEEEAddress Ver.: always - */ -bool emberAf11073ProtocolTunnelClusterDisconnectRequestCallback(uint8_t * managerIEEEAddress); -/** @brief 11073 Protocol Tunnel Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAf11073ProtocolTunnelClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief 11073 Protocol Tunnel Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAf11073ProtocolTunnelClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief 11073 Protocol Tunnel Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAf11073ProtocolTunnelClusterServerInitCallback(uint8_t endpoint); -/** @brief 11073 Protocol Tunnel Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAf11073ProtocolTunnelClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief 11073 Protocol Tunnel Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAf11073ProtocolTunnelClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief 11073 Protocol Tunnel Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAf11073ProtocolTunnelClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief 11073 Protocol Tunnel Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAf11073ProtocolTunnelClusterServerTickCallback(uint8_t endpoint); -/** @brief 11073 Protocol Tunnel Cluster Transfer A P D U - * - * - * - * @param apdu Ver.: always - */ -bool emberAf11073ProtocolTunnelClusterTransferAPDUCallback(uint8_t * apdu); - -/** @} END 11073 Protocol Tunnel Cluster Callbacks */ - -/** @name ISO 7816 Protocol Tunnel Cluster Callbacks */ -// @{ - -/** @brief ISO 7816 Protocol Tunnel Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfIso7816ProtocolTunnelClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief ISO 7816 Protocol Tunnel Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfIso7816ProtocolTunnelClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief ISO 7816 Protocol Tunnel Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfIso7816ProtocolTunnelClusterClientInitCallback(uint8_t endpoint); -/** @brief ISO 7816 Protocol Tunnel Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfIso7816ProtocolTunnelClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief ISO 7816 Protocol Tunnel Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfIso7816ProtocolTunnelClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief ISO 7816 Protocol Tunnel Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfIso7816ProtocolTunnelClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief ISO 7816 Protocol Tunnel Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfIso7816ProtocolTunnelClusterClientTickCallback(uint8_t endpoint); -/** @brief ISO 7816 Protocol Tunnel Cluster Extract Smart Card - * - * - * - */ -bool emberAfIso7816ProtocolTunnelClusterExtractSmartCardCallback(void); -/** @brief ISO 7816 Protocol Tunnel Cluster Insert Smart Card - * - * - * - */ -bool emberAfIso7816ProtocolTunnelClusterInsertSmartCardCallback(void); -/** @brief ISO 7816 Protocol Tunnel Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfIso7816ProtocolTunnelClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief ISO 7816 Protocol Tunnel Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfIso7816ProtocolTunnelClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief ISO 7816 Protocol Tunnel Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfIso7816ProtocolTunnelClusterServerInitCallback(uint8_t endpoint); -/** @brief ISO 7816 Protocol Tunnel Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfIso7816ProtocolTunnelClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief ISO 7816 Protocol Tunnel Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfIso7816ProtocolTunnelClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief ISO 7816 Protocol Tunnel Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfIso7816ProtocolTunnelClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief ISO 7816 Protocol Tunnel Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfIso7816ProtocolTunnelClusterServerTickCallback(uint8_t endpoint); -/** @brief ISO 7816 Protocol Tunnel Cluster Transfer Apdu - * - * - * - * @param apdu Ver.: always - */ -bool emberAfIso7816ProtocolTunnelClusterTransferApduCallback(uint8_t * apdu); - -/** @} END ISO 7816 Protocol Tunnel Cluster Callbacks */ - -/** @name Price Cluster Callbacks */ -// @{ - -/** @brief Price Cluster Cancel Tariff - * - * - * - * @param providerId Ver.: always - * @param issuerTariffId Ver.: always - * @param tariffType Ver.: always - */ -bool emberAfPriceClusterCancelTariffCallback(uint32_t providerId, uint32_t issuerTariffId, uint8_t tariffType); -/** @brief Price Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfPriceClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Price Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfPriceClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Price Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfPriceClusterClientInitCallback(uint8_t endpoint); -/** @brief Price Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfPriceClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Price Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfPriceClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, EmberStatus status); -/** @brief Price Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfPriceClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Price Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfPriceClusterClientTickCallback(uint8_t endpoint); -/** @brief Price Cluster Cpp Event Response - * - * - * - * @param issuerEventId Ver.: always - * @param cppAuth Ver.: always - */ -bool emberAfPriceClusterCppEventResponseCallback(uint32_t issuerEventId, uint8_t cppAuth); -/** @brief Price Cluster Get Billing Period - * - * - * - * @param earliestStartTime Ver.: always - * @param minIssuerEventId Ver.: always - * @param numberOfCommands Ver.: always - * @param tariffType Ver.: always - */ -bool emberAfPriceClusterGetBillingPeriodCallback(uint32_t earliestStartTime, uint32_t minIssuerEventId, uint8_t numberOfCommands, - uint8_t tariffType); -/** @brief Price Cluster Get Block Periods - * - * - * - * @param startTime Ver.: always - * @param numberOfEvents Ver.: always - * @param tariffType Ver.: always - */ -bool emberAfPriceClusterGetBlockPeriodsCallback(uint32_t startTime, uint8_t numberOfEvents, uint8_t tariffType); -/** @brief Price Cluster Get Block Thresholds - * - * - * - * @param issuerTariffId Ver.: always - */ -bool emberAfPriceClusterGetBlockThresholdsCallback(uint32_t issuerTariffId); -/** @brief Price Cluster Get C O2 Value - * - * - * - * @param earliestStartTime Ver.: always - * @param minIssuerEventId Ver.: always - * @param numberOfCommands Ver.: always - * @param tariffType Ver.: always - */ -bool emberAfPriceClusterGetCO2ValueCallback(uint32_t earliestStartTime, uint32_t minIssuerEventId, uint8_t numberOfCommands, - uint8_t tariffType); -/** @brief Price Cluster Get Calorific Value - * - * - * - * @param earliestStartTime Ver.: always - * @param minIssuerEventId Ver.: always - * @param numberOfCommands Ver.: always - */ -bool emberAfPriceClusterGetCalorificValueCallback(uint32_t earliestStartTime, uint32_t minIssuerEventId, uint8_t numberOfCommands); -/** @brief Price Cluster Get Consolidated Bill - * - * - * - * @param earliestStartTime Ver.: always - * @param minIssuerEventId Ver.: always - * @param numberOfCommands Ver.: always - * @param tariffType Ver.: always - */ -bool emberAfPriceClusterGetConsolidatedBillCallback(uint32_t earliestStartTime, uint32_t minIssuerEventId, uint8_t numberOfCommands, - uint8_t tariffType); -/** @brief Price Cluster Get Conversion Factor - * - * - * - * @param earliestStartTime Ver.: always - * @param minIssuerEventId Ver.: always - * @param numberOfCommands Ver.: always - */ -bool emberAfPriceClusterGetConversionFactorCallback(uint32_t earliestStartTime, uint32_t minIssuerEventId, - uint8_t numberOfCommands); -/** @brief Price Cluster Get Credit Payment - * - * - * - * @param latestEndTime Ver.: always - * @param numberOfRecords Ver.: always - */ -bool emberAfPriceClusterGetCreditPaymentCallback(uint32_t latestEndTime, uint8_t numberOfRecords); -/** @brief Price Cluster Get Currency Conversion Command - * - * - * - */ -bool emberAfPriceClusterGetCurrencyConversionCommandCallback(void); -/** @brief Price Cluster Get Current Price - * - * - * - * @param commandOptions Ver.: always - */ -bool emberAfPriceClusterGetCurrentPriceCallback(uint8_t commandOptions); -/** @brief Price Cluster Get Price Matrix - * - * - * - * @param issuerTariffId Ver.: always - */ -bool emberAfPriceClusterGetPriceMatrixCallback(uint32_t issuerTariffId); -/** @brief Price Cluster Get Scheduled Prices - * - * - * - * @param startTime Ver.: always - * @param numberOfEvents Ver.: always - */ -bool emberAfPriceClusterGetScheduledPricesCallback(uint32_t startTime, uint8_t numberOfEvents); -/** @brief Price Cluster Get Tariff Cancellation - * - * - * - */ -bool emberAfPriceClusterGetTariffCancellationCallback(void); -/** @brief Price Cluster Get Tariff Information - * - * - * - * @param earliestStartTime Ver.: always - * @param minIssuerEventId Ver.: always - * @param numberOfCommands Ver.: always - * @param tariffType Ver.: always - */ -bool emberAfPriceClusterGetTariffInformationCallback(uint32_t earliestStartTime, uint32_t minIssuerEventId, - uint8_t numberOfCommands, uint8_t tariffType); -/** @brief Price Cluster Get Tier Labels - * - * - * - * @param issuerTariffId Ver.: always - */ -bool emberAfPriceClusterGetTierLabelsCallback(uint32_t issuerTariffId); -/** @brief Price Cluster Price Acknowledgement - * - * - * - * @param providerId Ver.: always - * @param issuerEventId Ver.: always - * @param priceAckTime Ver.: always - * @param control Ver.: always - */ -bool emberAfPriceClusterPriceAcknowledgementCallback(uint32_t providerId, uint32_t issuerEventId, uint32_t priceAckTime, - uint8_t control); -/** @brief Price Cluster Publish Billing Period - * - * - * - * @param providerId Ver.: always - * @param issuerEventId Ver.: always - * @param billingPeriodStartTime Ver.: always - * @param billingPeriodDuration Ver.: always - * @param billingPeriodDurationType Ver.: always - * @param tariffType Ver.: always - */ -bool emberAfPriceClusterPublishBillingPeriodCallback(uint32_t providerId, uint32_t issuerEventId, uint32_t billingPeriodStartTime, - uint32_t billingPeriodDuration, uint8_t billingPeriodDurationType, - uint8_t tariffType); -/** @brief Price Cluster Publish Block Period - * - * - * - * @param providerId Ver.: always - * @param issuerEventId Ver.: always - * @param blockPeriodStartTime Ver.: always - * @param blockPeriodDuration Ver.: always - * @param blockPeriodControl Ver.: always - * @param blockPeriodDurationType Ver.: since se-1.2a-07-5356-19 - * @param tariffType Ver.: since se-1.2a-07-5356-19 - * @param tariffResolutionPeriod Ver.: since se-1.2a-07-5356-19 - */ -bool emberAfPriceClusterPublishBlockPeriodCallback(uint32_t providerId, uint32_t issuerEventId, uint32_t blockPeriodStartTime, - uint32_t blockPeriodDuration, uint8_t blockPeriodControl, - uint8_t blockPeriodDurationType, uint8_t tariffType, - uint8_t tariffResolutionPeriod); -/** @brief Price Cluster Publish Block Thresholds - * - * - * - * @param providerId Ver.: always - * @param issuerEventId Ver.: always - * @param startTime Ver.: always - * @param issuerTariffId Ver.: always - * @param commandIndex Ver.: always - * @param numberOfCommands Ver.: always - * @param subPayloadControl Ver.: always - * @param payload Ver.: always - */ -bool emberAfPriceClusterPublishBlockThresholdsCallback(uint32_t providerId, uint32_t issuerEventId, uint32_t startTime, - uint32_t issuerTariffId, uint8_t commandIndex, uint8_t numberOfCommands, - uint8_t subPayloadControl, uint8_t * payload); -/** @brief Price Cluster Publish C O2 Value - * - * - * - * @param providerId Ver.: always - * @param issuerEventId Ver.: always - * @param startTime Ver.: always - * @param tariffType Ver.: always - * @param cO2Value Ver.: always - * @param cO2ValueUnit Ver.: always - * @param cO2ValueTrailingDigit Ver.: always - */ -bool emberAfPriceClusterPublishCO2ValueCallback(uint32_t providerId, uint32_t issuerEventId, uint32_t startTime, uint8_t tariffType, - uint32_t cO2Value, uint8_t cO2ValueUnit, uint8_t cO2ValueTrailingDigit); -/** @brief Price Cluster Publish Calorific Value - * - * - * - * @param issuerEventId Ver.: always - * @param startTime Ver.: always - * @param calorificValue Ver.: always - * @param calorificValueUnit Ver.: always - * @param calorificValueTrailingDigit Ver.: always - */ -bool emberAfPriceClusterPublishCalorificValueCallback(uint32_t issuerEventId, uint32_t startTime, uint32_t calorificValue, - uint8_t calorificValueUnit, uint8_t calorificValueTrailingDigit); -/** @brief Price Cluster Publish Consolidated Bill - * - * - * - * @param providerId Ver.: always - * @param issuerEventId Ver.: always - * @param billingPeriodStartTime Ver.: always - * @param billingPeriodDuration Ver.: always - * @param billingPeriodDurationType Ver.: always - * @param tariffType Ver.: always - * @param consolidatedBill Ver.: always - * @param currency Ver.: always - * @param billTrailingDigit Ver.: always - */ -bool emberAfPriceClusterPublishConsolidatedBillCallback(uint32_t providerId, uint32_t issuerEventId, - uint32_t billingPeriodStartTime, uint32_t billingPeriodDuration, - uint8_t billingPeriodDurationType, uint8_t tariffType, - uint32_t consolidatedBill, uint16_t currency, uint8_t billTrailingDigit); -/** @brief Price Cluster Publish Conversion Factor - * - * - * - * @param issuerEventId Ver.: always - * @param startTime Ver.: always - * @param conversionFactor Ver.: always - * @param conversionFactorTrailingDigit Ver.: always - */ -bool emberAfPriceClusterPublishConversionFactorCallback(uint32_t issuerEventId, uint32_t startTime, uint32_t conversionFactor, - uint8_t conversionFactorTrailingDigit); -/** @brief Price Cluster Publish Cpp Event - * - * - * - * @param providerId Ver.: always - * @param issuerEventId Ver.: always - * @param startTime Ver.: always - * @param durationInMinutes Ver.: always - * @param tariffType Ver.: always - * @param cppPriceTier Ver.: always - * @param cppAuth Ver.: always - */ -bool emberAfPriceClusterPublishCppEventCallback(uint32_t providerId, uint32_t issuerEventId, uint32_t startTime, - uint16_t durationInMinutes, uint8_t tariffType, uint8_t cppPriceTier, - uint8_t cppAuth); -/** @brief Price Cluster Publish Credit Payment - * - * - * - * @param providerId Ver.: always - * @param issuerEventId Ver.: always - * @param creditPaymentDueDate Ver.: always - * @param creditPaymentOverDueAmount Ver.: always - * @param creditPaymentStatus Ver.: always - * @param creditPayment Ver.: always - * @param creditPaymentDate Ver.: always - * @param creditPaymentRef Ver.: always - */ -bool emberAfPriceClusterPublishCreditPaymentCallback(uint32_t providerId, uint32_t issuerEventId, uint32_t creditPaymentDueDate, - uint32_t creditPaymentOverDueAmount, uint8_t creditPaymentStatus, - uint32_t creditPayment, uint32_t creditPaymentDate, - uint8_t * creditPaymentRef); -/** @brief Price Cluster Publish Currency Conversion - * - * - * - * @param providerId Ver.: always - * @param issuerEventId Ver.: always - * @param startTime Ver.: always - * @param oldCurrency Ver.: always - * @param newCurrency Ver.: always - * @param conversionFactor Ver.: always - * @param conversionFactorTrailingDigit Ver.: always - * @param currencyChangeControlFlags Ver.: always - */ -bool emberAfPriceClusterPublishCurrencyConversionCallback(uint32_t providerId, uint32_t issuerEventId, uint32_t startTime, - uint16_t oldCurrency, uint16_t newCurrency, uint32_t conversionFactor, - uint8_t conversionFactorTrailingDigit, - uint32_t currencyChangeControlFlags); -/** @brief Price Cluster Publish Price - * - * - * - * @param providerId Ver.: always - * @param rateLabel Ver.: always - * @param issuerEventId Ver.: always - * @param currentTime Ver.: always - * @param unitOfMeasure Ver.: always - * @param currency Ver.: always - * @param priceTrailingDigitAndPriceTier Ver.: always - * @param numberOfPriceTiersAndRegisterTier Ver.: always - * @param startTime Ver.: always - * @param durationInMinutes Ver.: always - * @param price Ver.: always - * @param priceRatio Ver.: always - * @param generationPrice Ver.: always - * @param generationPriceRatio Ver.: always - * @param alternateCostDelivered Ver.: since se-1.0-07-5356-15 - * @param alternateCostUnit Ver.: since se-1.0-07-5356-15 - * @param alternateCostTrailingDigit Ver.: since se-1.0-07-5356-15 - * @param numberOfBlockThresholds Ver.: since se-1.1-07-5356-16 - * @param priceControl Ver.: since se-1.1-07-5356-16 - * @param numberOfGenerationTiers Ver.: since se-1.2a-07-5356-19 - * @param generationTier Ver.: since se-1.2a-07-5356-19 - * @param extendedNumberOfPriceTiers Ver.: since se-1.2a-07-5356-19 - * @param extendedPriceTier Ver.: since se-1.2a-07-5356-19 - * @param extendedRegisterTier Ver.: since se-1.2a-07-5356-19 - */ -bool emberAfPriceClusterPublishPriceCallback( - uint32_t providerId, uint8_t * rateLabel, uint32_t issuerEventId, uint32_t currentTime, uint8_t unitOfMeasure, - uint16_t currency, uint8_t priceTrailingDigitAndPriceTier, uint8_t numberOfPriceTiersAndRegisterTier, uint32_t startTime, - uint16_t durationInMinutes, uint32_t price, uint8_t priceRatio, uint32_t generationPrice, uint8_t generationPriceRatio, - uint32_t alternateCostDelivered, uint8_t alternateCostUnit, uint8_t alternateCostTrailingDigit, uint8_t numberOfBlockThresholds, - uint8_t priceControl, uint8_t numberOfGenerationTiers, uint8_t generationTier, uint8_t extendedNumberOfPriceTiers, - uint8_t extendedPriceTier, uint8_t extendedRegisterTier); -/** @brief Price Cluster Publish Price Matrix - * - * - * - * @param providerId Ver.: always - * @param issuerEventId Ver.: always - * @param startTime Ver.: always - * @param issuerTariffId Ver.: always - * @param commandIndex Ver.: always - * @param numberOfCommands Ver.: always - * @param subPayloadControl Ver.: always - * @param payload Ver.: always - */ -bool emberAfPriceClusterPublishPriceMatrixCallback(uint32_t providerId, uint32_t issuerEventId, uint32_t startTime, - uint32_t issuerTariffId, uint8_t commandIndex, uint8_t numberOfCommands, - uint8_t subPayloadControl, uint8_t * payload); -/** @brief Price Cluster Publish Tariff Information - * - * - * - * @param providerId Ver.: always - * @param issuerEventId Ver.: always - * @param issuerTariffId Ver.: always - * @param startTime Ver.: always - * @param tariffTypeChargingScheme Ver.: always - * @param tariffLabel Ver.: always - * @param numberOfPriceTiersInUse Ver.: always - * @param numberOfBlockThresholdsInUse Ver.: always - * @param unitOfMeasure Ver.: always - * @param currency Ver.: always - * @param priceTrailingDigit Ver.: always - * @param standingCharge Ver.: always - * @param tierBlockMode Ver.: always - * @param blockThresholdMultiplier Ver.: always - * @param blockThresholdDivisor Ver.: always - */ -bool emberAfPriceClusterPublishTariffInformationCallback(uint32_t providerId, uint32_t issuerEventId, uint32_t issuerTariffId, - uint32_t startTime, uint8_t tariffTypeChargingScheme, - uint8_t * tariffLabel, uint8_t numberOfPriceTiersInUse, - uint8_t numberOfBlockThresholdsInUse, uint8_t unitOfMeasure, - uint16_t currency, uint8_t priceTrailingDigit, uint32_t standingCharge, - uint8_t tierBlockMode, uint32_t blockThresholdMultiplier, - uint32_t blockThresholdDivisor); -/** @brief Price Cluster Publish Tier Labels - * - * - * - * @param providerId Ver.: always - * @param issuerEventId Ver.: always - * @param issuerTariffId Ver.: always - * @param commandIndex Ver.: always - * @param numberOfCommands Ver.: always - * @param numberOfLabels Ver.: always - * @param tierLabelsPayload Ver.: always - */ -bool emberAfPriceClusterPublishTierLabelsCallback(uint32_t providerId, uint32_t issuerEventId, uint32_t issuerTariffId, - uint8_t commandIndex, uint8_t numberOfCommands, uint8_t numberOfLabels, - uint8_t * tierLabelsPayload); -/** @brief Price Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfPriceClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Price Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfPriceClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Price Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfPriceClusterServerInitCallback(uint8_t endpoint); -/** @brief Price Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfPriceClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Price Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfPriceClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, EmberStatus status); -/** @brief Price Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfPriceClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Price Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfPriceClusterServerTickCallback(uint8_t endpoint); - -/** @} END Price Cluster Callbacks */ - -/** @name Demand Response and Load Control Cluster Callbacks */ -// @{ - -/** @brief Demand Response and Load Control Cluster Cancel All Load Control Events - * - * - * - * @param cancelControl Ver.: always - */ -bool emberAfDemandResponseLoadControlClusterCancelAllLoadControlEventsCallback(uint8_t cancelControl); -/** @brief Demand Response and Load Control Cluster Cancel Load Control Event - * - * - * - * @param issuerEventId Ver.: always - * @param deviceClass Ver.: always - * @param utilityEnrollmentGroup Ver.: always - * @param cancelControl Ver.: always - * @param effectiveTime Ver.: always - */ -bool emberAfDemandResponseLoadControlClusterCancelLoadControlEventCallback(uint32_t issuerEventId, uint16_t deviceClass, - uint8_t utilityEnrollmentGroup, uint8_t cancelControl, - uint32_t effectiveTime); -/** @brief Demand Response and Load Control Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfDemandResponseLoadControlClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Demand Response and Load Control Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfDemandResponseLoadControlClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Demand Response and Load Control Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfDemandResponseLoadControlClusterClientInitCallback(uint8_t endpoint); -/** @brief Demand Response and Load Control Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfDemandResponseLoadControlClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Demand Response and Load Control Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfDemandResponseLoadControlClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Demand Response and Load Control Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfDemandResponseLoadControlClusterClientPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Demand Response and Load Control Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfDemandResponseLoadControlClusterClientTickCallback(uint8_t endpoint); -/** @brief Demand Response and Load Control Cluster Get Scheduled Events - * - * - * - * @param startTime Ver.: always - * @param numberOfEvents Ver.: always - * @param issuerEventId Ver.: since se-1.2b-15-0131-02 - */ -bool emberAfDemandResponseLoadControlClusterGetScheduledEventsCallback(uint32_t startTime, uint8_t numberOfEvents, - uint32_t issuerEventId); -/** @brief Demand Response and Load Control Cluster Load Control Event - * - * - * - * @param issuerEventId Ver.: always - * @param deviceClass Ver.: always - * @param utilityEnrollmentGroup Ver.: always - * @param startTime Ver.: always - * @param durationInMinutes Ver.: always - * @param criticalityLevel Ver.: always - * @param coolingTemperatureOffset Ver.: always - * @param heatingTemperatureOffset Ver.: always - * @param coolingTemperatureSetPoint Ver.: always - * @param heatingTemperatureSetPoint Ver.: always - * @param averageLoadAdjustmentPercentage Ver.: always - * @param dutyCycle Ver.: always - * @param eventControl Ver.: always - */ -bool emberAfDemandResponseLoadControlClusterLoadControlEventCallback( - uint32_t issuerEventId, uint16_t deviceClass, uint8_t utilityEnrollmentGroup, uint32_t startTime, uint16_t durationInMinutes, - uint8_t criticalityLevel, uint8_t coolingTemperatureOffset, uint8_t heatingTemperatureOffset, - int16_t coolingTemperatureSetPoint, int16_t heatingTemperatureSetPoint, int8_t averageLoadAdjustmentPercentage, - uint8_t dutyCycle, uint8_t eventControl); -/** @brief Demand Response and Load Control Cluster Report Event Status - * - * - * - * @param issuerEventId Ver.: always - * @param eventStatus Ver.: always - * @param eventStatusTime Ver.: always - * @param criticalityLevelApplied Ver.: always - * @param coolingTemperatureSetPointApplied Ver.: always - * @param heatingTemperatureSetPointApplied Ver.: always - * @param averageLoadAdjustmentPercentageApplied Ver.: always - * @param dutyCycleApplied Ver.: always - * @param eventControl Ver.: always - * @param signatureType Ver.: always - * @param signature Ver.: always - */ -bool emberAfDemandResponseLoadControlClusterReportEventStatusCallback(uint32_t issuerEventId, uint8_t eventStatus, - uint32_t eventStatusTime, uint8_t criticalityLevelApplied, - uint16_t coolingTemperatureSetPointApplied, - uint16_t heatingTemperatureSetPointApplied, - int8_t averageLoadAdjustmentPercentageApplied, - uint8_t dutyCycleApplied, uint8_t eventControl, - uint8_t signatureType, uint8_t * signature); -/** @brief Demand Response and Load Control Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfDemandResponseLoadControlClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Demand Response and Load Control Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfDemandResponseLoadControlClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, - EmberAfStatus status); -/** @brief Demand Response and Load Control Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfDemandResponseLoadControlClusterServerInitCallback(uint8_t endpoint); -/** @brief Demand Response and Load Control Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfDemandResponseLoadControlClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Demand Response and Load Control Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfDemandResponseLoadControlClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Demand Response and Load Control Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfDemandResponseLoadControlClusterServerPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Demand Response and Load Control Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfDemandResponseLoadControlClusterServerTickCallback(uint8_t endpoint); - -/** @} END Demand Response and Load Control Cluster Callbacks */ - -/** @name Simple Metering Cluster Callbacks */ -// @{ - -/** @brief Simple Metering Cluster Change Supply - * - * - * - * @param providerId Ver.: always - * @param issuerEventId Ver.: always - * @param requestDateTime Ver.: always - * @param implementationDateTime Ver.: always - * @param proposedSupplyStatus Ver.: always - * @param supplyControlBits Ver.: always - */ -bool emberAfSimpleMeteringClusterChangeSupplyCallback(uint32_t providerId, uint32_t issuerEventId, uint32_t requestDateTime, - uint32_t implementationDateTime, uint8_t proposedSupplyStatus, - uint8_t supplyControlBits); -/** @brief Simple Metering Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfSimpleMeteringClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Simple Metering Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfSimpleMeteringClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Simple Metering Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfSimpleMeteringClusterClientInitCallback(uint8_t endpoint); -/** @brief Simple Metering Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfSimpleMeteringClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Simple Metering Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfSimpleMeteringClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Simple Metering Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfSimpleMeteringClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Simple Metering Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfSimpleMeteringClusterClientTickCallback(uint8_t endpoint); -/** @brief Simple Metering Cluster Configure Mirror - * - * - * - * @param issuerEventId Ver.: always - * @param reportingInterval Ver.: always - * @param mirrorNotificationReporting Ver.: always - * @param notificationScheme Ver.: always - */ -bool emberAfSimpleMeteringClusterConfigureMirrorCallback(uint32_t issuerEventId, uint32_t reportingInterval, - uint8_t mirrorNotificationReporting, uint8_t notificationScheme); -/** @brief Simple Metering Cluster Configure Notification Flags - * - * - * - * @param issuerEventId Ver.: always - * @param notificationScheme Ver.: always - * @param notificationFlagAttributeId Ver.: always - * @param clusterId Ver.: always - * @param manufacturerCode Ver.: always - * @param numberOfCommands Ver.: always - * @param commandIds Ver.: always - */ -bool emberAfSimpleMeteringClusterConfigureNotificationFlagsCallback(uint32_t issuerEventId, uint8_t notificationScheme, - uint16_t notificationFlagAttributeId, uint16_t clusterId, - uint16_t manufacturerCode, uint8_t numberOfCommands, - uint8_t * commandIds); -/** @brief Simple Metering Cluster Configure Notification Scheme - * - * - * - * @param issuerEventId Ver.: always - * @param notificationScheme Ver.: always - * @param notificationFlagOrder Ver.: always - */ -bool emberAfSimpleMeteringClusterConfigureNotificationSchemeCallback(uint32_t issuerEventId, uint8_t notificationScheme, - uint32_t notificationFlagOrder); -/** @brief Simple Metering Cluster Get Notified Message - * - * - * - * @param notificationScheme Ver.: always - * @param notificationFlagAttributeId Ver.: always - * @param notificationFlagsN Ver.: always - */ -bool emberAfSimpleMeteringClusterGetNotifiedMessageCallback(uint8_t notificationScheme, uint16_t notificationFlagAttributeId, - uint32_t notificationFlagsN); -/** @brief Simple Metering Cluster Get Profile - * - * - * - * @param intervalChannel Ver.: always - * @param endTime Ver.: always - * @param numberOfPeriods Ver.: always - */ -bool emberAfSimpleMeteringClusterGetProfileCallback(uint8_t intervalChannel, uint32_t endTime, uint8_t numberOfPeriods); -/** @brief Simple Metering Cluster Get Profile Response - * - * - * - * @param endTime Ver.: always - * @param status Ver.: always - * @param profileIntervalPeriod Ver.: always - * @param numberOfPeriodsDelivered Ver.: always - * @param intervals Ver.: always - */ -bool emberAfSimpleMeteringClusterGetProfileResponseCallback(uint32_t endTime, uint8_t status, uint8_t profileIntervalPeriod, - uint8_t numberOfPeriodsDelivered, uint8_t * intervals); -/** @brief Simple Metering Cluster Get Sampled Data - * - * - * - * @param sampleId Ver.: always - * @param earliestSampleTime Ver.: always - * @param sampleType Ver.: always - * @param numberOfSamples Ver.: always - */ -bool emberAfSimpleMeteringClusterGetSampledDataCallback(uint16_t sampleId, uint32_t earliestSampleTime, uint8_t sampleType, - uint16_t numberOfSamples); -/** @brief Simple Metering Cluster Get Sampled Data Response - * - * - * - * @param sampleId Ver.: always - * @param sampleStartTime Ver.: always - * @param sampleType Ver.: always - * @param sampleRequestInterval Ver.: always - * @param numberOfSamples Ver.: always - * @param samples Ver.: always - */ -bool emberAfSimpleMeteringClusterGetSampledDataResponseCallback(uint16_t sampleId, uint32_t sampleStartTime, uint8_t sampleType, - uint16_t sampleRequestInterval, uint16_t numberOfSamples, - uint8_t * samples); -/** @brief Simple Metering Cluster Get Snapshot - * - * - * - * @param earliestStartTime Ver.: always - * @param latestEndTime Ver.: always - * @param snapshotOffset Ver.: always - * @param snapshotCause Ver.: always - */ -bool emberAfSimpleMeteringClusterGetSnapshotCallback(uint32_t earliestStartTime, uint32_t latestEndTime, uint8_t snapshotOffset, - uint32_t snapshotCause); -/** @brief Simple Metering Cluster Local Change Supply - * - * - * - * @param proposedSupplyStatus Ver.: always - */ -bool emberAfSimpleMeteringClusterLocalChangeSupplyCallback(uint8_t proposedSupplyStatus); -/** @brief Simple Metering Cluster Mirror Removed - * - * - * - * @param endpointId Ver.: always - */ -bool emberAfSimpleMeteringClusterMirrorRemovedCallback(uint16_t endpointId); -/** @brief Simple Metering Cluster Mirror Report Attribute Response - * - * - * - * @param notificationScheme Ver.: always - * @param notificationFlags Ver.: always - */ -bool emberAfSimpleMeteringClusterMirrorReportAttributeResponseCallback(uint8_t notificationScheme, uint8_t * notificationFlags); -/** @brief Simple Metering Cluster Publish Snapshot - * - * - * - * @param snapshotId Ver.: always - * @param snapshotTime Ver.: always - * @param totalSnapshotsFound Ver.: always - * @param commandIndex Ver.: always - * @param totalCommands Ver.: always - * @param snapshotCause Ver.: always - * @param snapshotPayloadType Ver.: always - * @param snapshotPayload Ver.: always - */ -bool emberAfSimpleMeteringClusterPublishSnapshotCallback(uint32_t snapshotId, uint32_t snapshotTime, uint8_t totalSnapshotsFound, - uint8_t commandIndex, uint8_t totalCommands, uint32_t snapshotCause, - uint8_t snapshotPayloadType, uint8_t * snapshotPayload); -/** @brief Simple Metering Cluster Remove Mirror - * - * - * - */ -bool emberAfSimpleMeteringClusterRemoveMirrorCallback(void); -/** @brief Simple Metering Cluster Request Fast Poll Mode - * - * - * - * @param fastPollUpdatePeriod Ver.: always - * @param duration Ver.: always - */ -bool emberAfSimpleMeteringClusterRequestFastPollModeCallback(uint8_t fastPollUpdatePeriod, uint8_t duration); -/** @brief Simple Metering Cluster Request Fast Poll Mode Response - * - * - * - * @param appliedUpdatePeriod Ver.: always - * @param fastPollModeEndtime Ver.: always - */ -bool emberAfSimpleMeteringClusterRequestFastPollModeResponseCallback(uint8_t appliedUpdatePeriod, uint32_t fastPollModeEndtime); -/** @brief Simple Metering Cluster Request Mirror - * - * - * - */ -bool emberAfSimpleMeteringClusterRequestMirrorCallback(void); -/** @brief Simple Metering Cluster Request Mirror Response - * - * - * - * @param endpointId Ver.: always - */ -bool emberAfSimpleMeteringClusterRequestMirrorResponseCallback(uint16_t endpointId); -/** @brief Simple Metering Cluster Reset Load Limit Counter - * - * - * - * @param providerId Ver.: always - * @param issuerEventId Ver.: always - */ -bool emberAfSimpleMeteringClusterResetLoadLimitCounterCallback(uint32_t providerId, uint32_t issuerEventId); -/** @brief Simple Metering Cluster Schedule Snapshot - * - * - * - * @param issuerEventId Ver.: always - * @param commandIndex Ver.: always - * @param commandCount Ver.: always - * @param snapshotSchedulePayload Ver.: always - */ -bool emberAfSimpleMeteringClusterScheduleSnapshotCallback(uint32_t issuerEventId, uint8_t commandIndex, uint8_t commandCount, - uint8_t * snapshotSchedulePayload); -/** @brief Simple Metering Cluster Schedule Snapshot Response - * - * - * - * @param issuerEventId Ver.: always - * @param snapshotResponsePayload Ver.: always - */ -bool emberAfSimpleMeteringClusterScheduleSnapshotResponseCallback(uint32_t issuerEventId, uint8_t * snapshotResponsePayload); -/** @brief Simple Metering Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfSimpleMeteringClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Simple Metering Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfSimpleMeteringClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Simple Metering Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfSimpleMeteringClusterServerInitCallback(uint8_t endpoint); -/** @brief Simple Metering Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfSimpleMeteringClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Simple Metering Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfSimpleMeteringClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Simple Metering Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfSimpleMeteringClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Simple Metering Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfSimpleMeteringClusterServerTickCallback(uint8_t endpoint); -/** @brief Simple Metering Cluster Set Supply Status - * - * - * - * @param issuerEventId Ver.: always - * @param supplyTamperState Ver.: always - * @param supplyDepletionState Ver.: always - * @param supplyUncontrolledFlowState Ver.: always - * @param loadLimitSupplyState Ver.: always - */ -bool emberAfSimpleMeteringClusterSetSupplyStatusCallback(uint32_t issuerEventId, uint8_t supplyTamperState, - uint8_t supplyDepletionState, uint8_t supplyUncontrolledFlowState, - uint8_t loadLimitSupplyState); -/** @brief Simple Metering Cluster Set Uncontrolled Flow Threshold - * - * - * - * @param providerId Ver.: always - * @param issuerEventId Ver.: always - * @param uncontrolledFlowThreshold Ver.: always - * @param unitOfMeasure Ver.: always - * @param multiplier Ver.: always - * @param divisor Ver.: always - * @param stabilisationPeriod Ver.: always - * @param measurementPeriod Ver.: always - */ -bool emberAfSimpleMeteringClusterSetUncontrolledFlowThresholdCallback(uint32_t providerId, uint32_t issuerEventId, - uint16_t uncontrolledFlowThreshold, uint8_t unitOfMeasure, - uint16_t multiplier, uint16_t divisor, - uint8_t stabilisationPeriod, uint16_t measurementPeriod); -/** @brief Simple Metering Cluster Start Sampling - * - * - * - * @param issuerEventId Ver.: always - * @param startSamplingTime Ver.: always - * @param sampleType Ver.: always - * @param sampleRequestInterval Ver.: always - * @param maxNumberOfSamples Ver.: always - */ -bool emberAfSimpleMeteringClusterStartSamplingCallback(uint32_t issuerEventId, uint32_t startSamplingTime, uint8_t sampleType, - uint16_t sampleRequestInterval, uint16_t maxNumberOfSamples); -/** @brief Simple Metering Cluster Start Sampling Response - * - * - * - * @param sampleId Ver.: always - */ -bool emberAfSimpleMeteringClusterStartSamplingResponseCallback(uint16_t sampleId); -/** @brief Simple Metering Cluster Supply Status Response - * - * - * - * @param providerId Ver.: always - * @param issuerEventId Ver.: always - * @param implementationDateTime Ver.: always - * @param supplyStatus Ver.: always - */ -bool emberAfSimpleMeteringClusterSupplyStatusResponseCallback(uint32_t providerId, uint32_t issuerEventId, - uint32_t implementationDateTime, uint8_t supplyStatus); -/** @brief Simple Metering Cluster Take Snapshot - * - * - * - * @param snapshotCause Ver.: always - */ -bool emberAfSimpleMeteringClusterTakeSnapshotCallback(uint32_t snapshotCause); -/** @brief Simple Metering Cluster Take Snapshot Response - * - * - * - * @param snapshotId Ver.: always - * @param snapshotConfirmation Ver.: always - */ -bool emberAfSimpleMeteringClusterTakeSnapshotResponseCallback(uint32_t snapshotId, uint8_t snapshotConfirmation); - -/** @} END Simple Metering Cluster Callbacks */ - -/** @name Messaging Cluster Callbacks */ -// @{ - -/** @brief Messaging Cluster Cancel All Messages - * - * - * - * @param implementationDateTime Ver.: always - */ -bool emberAfMessagingClusterCancelAllMessagesCallback(uint32_t implementationDateTime); -/** @brief Messaging Cluster Cancel Message - * - * - * - * @param messageId Ver.: always - * @param messageControl Ver.: always - */ -bool emberAfMessagingClusterCancelMessageCallback(uint32_t messageId, uint8_t messageControl); -/** @brief Messaging Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfMessagingClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Messaging Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfMessagingClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Messaging Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfMessagingClusterClientInitCallback(uint8_t endpoint); -/** @brief Messaging Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfMessagingClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Messaging Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfMessagingClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Messaging Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfMessagingClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Messaging Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfMessagingClusterClientTickCallback(uint8_t endpoint); -/** @brief Messaging Cluster Display Message - * - * - * - * @param messageId Ver.: always - * @param messageControl Ver.: always - * @param startTime Ver.: always - * @param durationInMinutes Ver.: always - * @param message Ver.: always - * @param optionalExtendedMessageControl Ver.: since se-1.2a-07-5356-19 - */ -bool emberAfMessagingClusterDisplayMessageCallback(uint32_t messageId, uint8_t messageControl, uint32_t startTime, - uint16_t durationInMinutes, uint8_t * message, - uint8_t optionalExtendedMessageControl); -/** @brief Messaging Cluster Display Protected Message - * - * - * - * @param messageId Ver.: always - * @param messageControl Ver.: always - * @param startTime Ver.: always - * @param durationInMinutes Ver.: always - * @param message Ver.: always - * @param optionalExtendedMessageControl Ver.: always - */ -bool emberAfMessagingClusterDisplayProtectedMessageCallback(uint32_t messageId, uint8_t messageControl, uint32_t startTime, - uint16_t durationInMinutes, uint8_t * message, - uint8_t optionalExtendedMessageControl); -/** @brief Messaging Cluster Get Last Message - * - * - * - */ -bool emberAfMessagingClusterGetLastMessageCallback(void); -/** @brief Messaging Cluster Get Message Cancellation - * - * - * - * @param earliestImplementationTime Ver.: always - */ -bool emberAfMessagingClusterGetMessageCancellationCallback(uint32_t earliestImplementationTime); -/** @brief Messaging Cluster Message Confirmation - * - * - * - * @param messageId Ver.: always - * @param confirmationTime Ver.: always - * @param messageConfirmationControl Ver.: since se-1.2a-07-5356-19 - * @param messageResponse Ver.: since se-1.2a-07-5356-19 - */ -bool emberAfMessagingClusterMessageConfirmationCallback(uint32_t messageId, uint32_t confirmationTime, - uint8_t messageConfirmationControl, uint8_t * messageResponse); -/** @brief Messaging Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfMessagingClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Messaging Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfMessagingClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Messaging Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfMessagingClusterServerInitCallback(uint8_t endpoint); -/** @brief Messaging Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfMessagingClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Messaging Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfMessagingClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Messaging Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfMessagingClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Messaging Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfMessagingClusterServerTickCallback(uint8_t endpoint); - -/** @} END Messaging Cluster Callbacks */ - -/** @name Tunneling Cluster Callbacks */ -// @{ - -/** @brief Tunneling Cluster Ack Transfer Data Client To Server - * - * - * - * @param tunnelId Ver.: always - * @param numberOfBytesLeft Ver.: always - */ -bool emberAfTunnelingClusterAckTransferDataClientToServerCallback(uint16_t tunnelId, uint16_t numberOfBytesLeft); -/** @brief Tunneling Cluster Ack Transfer Data Server To Client - * - * - * - * @param tunnelId Ver.: always - * @param numberOfBytesLeft Ver.: always - */ -bool emberAfTunnelingClusterAckTransferDataServerToClientCallback(uint16_t tunnelId, uint16_t numberOfBytesLeft); -/** @brief Tunneling Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfTunnelingClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Tunneling Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfTunnelingClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Tunneling Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfTunnelingClusterClientInitCallback(uint8_t endpoint); -/** @brief Tunneling Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfTunnelingClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Tunneling Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfTunnelingClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Tunneling Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfTunnelingClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Tunneling Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfTunnelingClusterClientTickCallback(uint8_t endpoint); -/** @brief Tunneling Cluster Close Tunnel - * - * - * - * @param tunnelId Ver.: always - */ -bool emberAfTunnelingClusterCloseTunnelCallback(uint16_t tunnelId); -/** @brief Tunneling Cluster Get Supported Tunnel Protocols - * - * - * - * @param protocolOffset Ver.: always - */ -bool emberAfTunnelingClusterGetSupportedTunnelProtocolsCallback(uint8_t protocolOffset); -/** @brief Tunneling Cluster Ready Data Client To Server - * - * - * - * @param tunnelId Ver.: always - * @param numberOfOctetsLeft Ver.: always - */ -bool emberAfTunnelingClusterReadyDataClientToServerCallback(uint16_t tunnelId, uint16_t numberOfOctetsLeft); -/** @brief Tunneling Cluster Ready Data Server To Client - * - * - * - * @param tunnelId Ver.: always - * @param numberOfOctetsLeft Ver.: always - */ -bool emberAfTunnelingClusterReadyDataServerToClientCallback(uint16_t tunnelId, uint16_t numberOfOctetsLeft); -/** @brief Tunneling Cluster Request Tunnel - * - * - * - * @param protocolId Ver.: always - * @param manufacturerCode Ver.: always - * @param flowControlSupport Ver.: always - * @param maximumIncomingTransferSize Ver.: since se-1.1a-07-5356-17 - */ -bool emberAfTunnelingClusterRequestTunnelCallback(uint8_t protocolId, uint16_t manufacturerCode, uint8_t flowControlSupport, - uint16_t maximumIncomingTransferSize); -/** @brief Tunneling Cluster Request Tunnel Response - * - * - * - * @param tunnelId Ver.: always - * @param tunnelStatus Ver.: always - * @param maximumIncomingTransferSize Ver.: since se-1.1a-07-5356-17 - */ -bool emberAfTunnelingClusterRequestTunnelResponseCallback(uint16_t tunnelId, uint8_t tunnelStatus, - uint16_t maximumIncomingTransferSize); -/** @brief Tunneling Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfTunnelingClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Tunneling Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfTunnelingClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Tunneling Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfTunnelingClusterServerInitCallback(uint8_t endpoint); -/** @brief Tunneling Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfTunnelingClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Tunneling Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfTunnelingClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Tunneling Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfTunnelingClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Tunneling Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfTunnelingClusterServerTickCallback(uint8_t endpoint); -/** @brief Tunneling Cluster Supported Tunnel Protocols Response - * - * - * - * @param protocolListComplete Ver.: always - * @param protocolCount Ver.: always - * @param protocolList Ver.: always - */ -bool emberAfTunnelingClusterSupportedTunnelProtocolsResponseCallback(uint8_t protocolListComplete, uint8_t protocolCount, - uint8_t * protocolList); -/** @brief Tunneling Cluster Transfer Data Client To Server - * - * - * - * @param tunnelId Ver.: always - * @param data Ver.: always - */ -bool emberAfTunnelingClusterTransferDataClientToServerCallback(uint16_t tunnelId, uint8_t * data); -/** @brief Tunneling Cluster Transfer Data Error Client To Server - * - * - * - * @param tunnelId Ver.: always - * @param transferDataStatus Ver.: always - */ -bool emberAfTunnelingClusterTransferDataErrorClientToServerCallback(uint16_t tunnelId, uint8_t transferDataStatus); -/** @brief Tunneling Cluster Transfer Data Error Server To Client - * - * - * - * @param tunnelId Ver.: always - * @param transferDataStatus Ver.: always - */ -bool emberAfTunnelingClusterTransferDataErrorServerToClientCallback(uint16_t tunnelId, uint8_t transferDataStatus); -/** @brief Tunneling Cluster Transfer Data Server To Client - * - * - * - * @param tunnelId Ver.: always - * @param data Ver.: always - */ -bool emberAfTunnelingClusterTransferDataServerToClientCallback(uint16_t tunnelId, uint8_t * data); -/** @brief Tunneling Cluster Tunnel Closure Notification - * - * - * - * @param tunnelId Ver.: always - */ -bool emberAfTunnelingClusterTunnelClosureNotificationCallback(uint16_t tunnelId); - -/** @} END Tunneling Cluster Callbacks */ - -/** @name Prepayment Cluster Callbacks */ -// @{ - -/** @brief Prepayment Cluster Change Debt - * - * - * - * @param issuerEventId Ver.: always - * @param debtLabel Ver.: always - * @param debtAmount Ver.: always - * @param debtRecoveryMethod Ver.: always - * @param debtAmountType Ver.: always - * @param debtRecoveryStartTime Ver.: always - * @param debtRecoveryCollectionTime Ver.: always - * @param debtRecoveryFrequency Ver.: always - * @param debtRecoveryAmount Ver.: always - * @param debtRecoveryBalancePercentage Ver.: always - */ -bool emberAfPrepaymentClusterChangeDebtCallback(uint32_t issuerEventId, uint8_t * debtLabel, uint32_t debtAmount, - uint8_t debtRecoveryMethod, uint8_t debtAmountType, uint32_t debtRecoveryStartTime, - uint16_t debtRecoveryCollectionTime, uint8_t debtRecoveryFrequency, - uint32_t debtRecoveryAmount, uint16_t debtRecoveryBalancePercentage); -/** @brief Prepayment Cluster Change Payment Mode - * - * - * - * @param providerId Ver.: always - * @param issuerEventId Ver.: always - * @param implementationDateTime Ver.: always - * @param proposedPaymentControlConfiguration Ver.: always - * @param cutOffValue Ver.: always - */ -bool emberAfPrepaymentClusterChangePaymentModeCallback(uint32_t providerId, uint32_t issuerEventId, uint32_t implementationDateTime, - uint16_t proposedPaymentControlConfiguration, uint32_t cutOffValue); -/** @brief Prepayment Cluster Change Payment Mode Response - * - * - * - * @param friendlyCredit Ver.: always - * @param friendlyCreditCalendarId Ver.: always - * @param emergencyCreditLimit Ver.: always - * @param emergencyCreditThreshold Ver.: always - */ -bool emberAfPrepaymentClusterChangePaymentModeResponseCallback(uint8_t friendlyCredit, uint32_t friendlyCreditCalendarId, - uint32_t emergencyCreditLimit, uint32_t emergencyCreditThreshold); -/** @brief Prepayment Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfPrepaymentClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Prepayment Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfPrepaymentClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Prepayment Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfPrepaymentClusterClientInitCallback(uint8_t endpoint); -/** @brief Prepayment Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfPrepaymentClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Prepayment Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfPrepaymentClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Prepayment Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfPrepaymentClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Prepayment Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfPrepaymentClusterClientTickCallback(uint8_t endpoint); -/** @brief Prepayment Cluster Consumer Top Up - * - * - * - * @param originatingDevice Ver.: always - * @param topUpCode Ver.: always - */ -bool emberAfPrepaymentClusterConsumerTopUpCallback(uint8_t originatingDevice, uint8_t * topUpCode); -/** @brief Prepayment Cluster Consumer Top Up Response - * - * - * - * @param resultType Ver.: always - * @param topUpValue Ver.: always - * @param sourceOfTopUp Ver.: always - * @param creditRemaining Ver.: always - */ -bool emberAfPrepaymentClusterConsumerTopUpResponseCallback(uint8_t resultType, uint32_t topUpValue, uint8_t sourceOfTopUp, - uint32_t creditRemaining); -/** @brief Prepayment Cluster Credit Adjustment - * - * - * - * @param issuerEventId Ver.: always - * @param startTime Ver.: always - * @param creditAdjustmentType Ver.: always - * @param creditAdjustmentValue Ver.: always - */ -bool emberAfPrepaymentClusterCreditAdjustmentCallback(uint32_t issuerEventId, uint32_t startTime, uint8_t creditAdjustmentType, - uint32_t creditAdjustmentValue); -/** @brief Prepayment Cluster Emergency Credit Setup - * - * - * - * @param issuerEventId Ver.: always - * @param startTime Ver.: always - * @param emergencyCreditLimit Ver.: always - * @param emergencyCreditThreshold Ver.: always - */ -bool emberAfPrepaymentClusterEmergencyCreditSetupCallback(uint32_t issuerEventId, uint32_t startTime, uint32_t emergencyCreditLimit, - uint32_t emergencyCreditThreshold); -/** @brief Prepayment Cluster Get Debt Repayment Log - * - * - * - * @param latestEndTime Ver.: always - * @param numberOfDebts Ver.: always - * @param debtType Ver.: always - */ -bool emberAfPrepaymentClusterGetDebtRepaymentLogCallback(uint32_t latestEndTime, uint8_t numberOfDebts, uint8_t debtType); -/** @brief Prepayment Cluster Get Prepay Snapshot - * - * - * - * @param earliestStartTime Ver.: always - * @param latestEndTime Ver.: always - * @param snapshotOffset Ver.: always - * @param snapshotCause Ver.: always - */ -bool emberAfPrepaymentClusterGetPrepaySnapshotCallback(uint32_t earliestStartTime, uint32_t latestEndTime, uint8_t snapshotOffset, - uint32_t snapshotCause); -/** @brief Prepayment Cluster Get Top Up Log - * - * - * - * @param latestEndTime Ver.: always - * @param numberOfRecords Ver.: always - */ -bool emberAfPrepaymentClusterGetTopUpLogCallback(uint32_t latestEndTime, uint8_t numberOfRecords); -/** @brief Prepayment Cluster Publish Debt Log - * - * - * - * @param commandIndex Ver.: always - * @param totalNumberOfCommands Ver.: always - * @param debtPayload Ver.: always - */ -bool emberAfPrepaymentClusterPublishDebtLogCallback(uint8_t commandIndex, uint8_t totalNumberOfCommands, uint8_t * debtPayload); -/** @brief Prepayment Cluster Publish Prepay Snapshot - * - * - * - * @param snapshotId Ver.: always - * @param snapshotTime Ver.: always - * @param totalSnapshotsFound Ver.: always - * @param commandIndex Ver.: always - * @param totalNumberOfCommands Ver.: always - * @param snapshotCause Ver.: always - * @param snapshotPayloadType Ver.: always - * @param snapshotPayload Ver.: always - */ -bool emberAfPrepaymentClusterPublishPrepaySnapshotCallback(uint32_t snapshotId, uint32_t snapshotTime, uint8_t totalSnapshotsFound, - uint8_t commandIndex, uint8_t totalNumberOfCommands, - uint32_t snapshotCause, uint8_t snapshotPayloadType, - uint8_t * snapshotPayload); -/** @brief Prepayment Cluster Publish Top Up Log - * - * - * - * @param commandIndex Ver.: always - * @param totalNumberOfCommands Ver.: always - * @param topUpPayload Ver.: always - */ -bool emberAfPrepaymentClusterPublishTopUpLogCallback(uint8_t commandIndex, uint8_t totalNumberOfCommands, uint8_t * topUpPayload); -/** @brief Prepayment Cluster Select Available Emergency Credit - * - * - * - * @param commandIssueDateTime Ver.: always - * @param originatingDevice Ver.: always - */ -bool emberAfPrepaymentClusterSelectAvailableEmergencyCreditCallback(uint32_t commandIssueDateTime, uint8_t originatingDevice); -/** @brief Prepayment Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfPrepaymentClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Prepayment Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfPrepaymentClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Prepayment Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfPrepaymentClusterServerInitCallback(uint8_t endpoint); -/** @brief Prepayment Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfPrepaymentClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Prepayment Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfPrepaymentClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Prepayment Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfPrepaymentClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Prepayment Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfPrepaymentClusterServerTickCallback(uint8_t endpoint); -/** @brief Prepayment Cluster Set Low Credit Warning Level - * - * - * - * @param lowCreditWarningLevel Ver.: always - */ -bool emberAfPrepaymentClusterSetLowCreditWarningLevelCallback(uint32_t lowCreditWarningLevel); -/** @brief Prepayment Cluster Set Maximum Credit Limit - * - * - * - * @param providerId Ver.: always - * @param issuerEventId Ver.: always - * @param implementationDateTime Ver.: always - * @param maximumCreditLevel Ver.: always - * @param maximumCreditPerTopUp Ver.: always - */ -bool emberAfPrepaymentClusterSetMaximumCreditLimitCallback(uint32_t providerId, uint32_t issuerEventId, - uint32_t implementationDateTime, uint32_t maximumCreditLevel, - uint32_t maximumCreditPerTopUp); -/** @brief Prepayment Cluster Set Overall Debt Cap - * - * - * - * @param providerId Ver.: always - * @param issuerEventId Ver.: always - * @param implementationDateTime Ver.: always - * @param overallDebtCap Ver.: always - */ -bool emberAfPrepaymentClusterSetOverallDebtCapCallback(uint32_t providerId, uint32_t issuerEventId, uint32_t implementationDateTime, - uint32_t overallDebtCap); - -/** @} END Prepayment Cluster Callbacks */ - -/** @name Energy Management Cluster Callbacks */ -// @{ - -/** @brief Energy Management Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfEnergyManagementClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Energy Management Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfEnergyManagementClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Energy Management Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfEnergyManagementClusterClientInitCallback(uint8_t endpoint); -/** @brief Energy Management Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfEnergyManagementClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Energy Management Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfEnergyManagementClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Energy Management Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfEnergyManagementClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Energy Management Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfEnergyManagementClusterClientTickCallback(uint8_t endpoint); -/** @brief Energy Management Cluster Manage Event - * - * - * - * @param issuerEventId Ver.: always - * @param deviceClass Ver.: always - * @param utilityEnrollmentGroup Ver.: always - * @param actionRequired Ver.: always - */ -bool emberAfEnergyManagementClusterManageEventCallback(uint32_t issuerEventId, uint16_t deviceClass, uint8_t utilityEnrollmentGroup, - uint8_t actionRequired); -/** @brief Energy Management Cluster Report Event Status - * - * - * - * @param issuerEventId Ver.: always - * @param eventStatus Ver.: always - * @param eventStatusTime Ver.: always - * @param criticalityLevelApplied Ver.: always - * @param coolingTemperatureSetPointApplied Ver.: always - * @param heatingTemperatureSetPointApplied Ver.: always - * @param averageLoadAdjustmentPercentageApplied Ver.: always - * @param dutyCycleApplied Ver.: always - * @param eventControl Ver.: always - */ -bool emberAfEnergyManagementClusterReportEventStatusCallback(uint32_t issuerEventId, uint8_t eventStatus, uint32_t eventStatusTime, - uint8_t criticalityLevelApplied, - uint16_t coolingTemperatureSetPointApplied, - uint16_t heatingTemperatureSetPointApplied, - int8_t averageLoadAdjustmentPercentageApplied, - uint8_t dutyCycleApplied, uint8_t eventControl); -/** @brief Energy Management Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfEnergyManagementClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Energy Management Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfEnergyManagementClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Energy Management Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfEnergyManagementClusterServerInitCallback(uint8_t endpoint); -/** @brief Energy Management Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfEnergyManagementClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Energy Management Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfEnergyManagementClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Energy Management Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfEnergyManagementClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Energy Management Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfEnergyManagementClusterServerTickCallback(uint8_t endpoint); - -/** @} END Energy Management Cluster Callbacks */ - -/** @name Calendar Cluster Callbacks */ -// @{ - -/** @brief Calendar Cluster Cancel Calendar - * - * - * - * @param providerId Ver.: always - * @param issuerCalendarId Ver.: always - * @param calendarType Ver.: always - */ -bool emberAfCalendarClusterCancelCalendarCallback(uint32_t providerId, uint32_t issuerCalendarId, uint8_t calendarType); -/** @brief Calendar Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfCalendarClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Calendar Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfCalendarClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Calendar Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfCalendarClusterClientInitCallback(uint8_t endpoint); -/** @brief Calendar Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfCalendarClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Calendar Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfCalendarClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Calendar Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfCalendarClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Calendar Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfCalendarClusterClientTickCallback(uint8_t endpoint); -/** @brief Calendar Cluster Get Calendar - * - * - * - * @param earliestStartTime Ver.: always - * @param minIssuerEventId Ver.: always - * @param numberOfCalendars Ver.: always - * @param calendarType Ver.: always - * @param providerId Ver.: always - */ -bool emberAfCalendarClusterGetCalendarCallback(uint32_t earliestStartTime, uint32_t minIssuerEventId, uint8_t numberOfCalendars, - uint8_t calendarType, uint32_t providerId); -/** @brief Calendar Cluster Get Calendar Cancellation - * - * - * - */ -bool emberAfCalendarClusterGetCalendarCancellationCallback(void); -/** @brief Calendar Cluster Get Day Profiles - * - * - * - * @param providerId Ver.: always - * @param issuerCalendarId Ver.: always - * @param startDayId Ver.: always - * @param numberOfDays Ver.: always - */ -bool emberAfCalendarClusterGetDayProfilesCallback(uint32_t providerId, uint32_t issuerCalendarId, uint8_t startDayId, - uint8_t numberOfDays); -/** @brief Calendar Cluster Get Seasons - * - * - * - * @param providerId Ver.: always - * @param issuerCalendarId Ver.: always - */ -bool emberAfCalendarClusterGetSeasonsCallback(uint32_t providerId, uint32_t issuerCalendarId); -/** @brief Calendar Cluster Get Special Days - * - * - * - * @param startTime Ver.: always - * @param numberOfEvents Ver.: always - * @param calendarType Ver.: always - * @param providerId Ver.: always - * @param issuerCalendarId Ver.: always - */ -bool emberAfCalendarClusterGetSpecialDaysCallback(uint32_t startTime, uint8_t numberOfEvents, uint8_t calendarType, - uint32_t providerId, uint32_t issuerCalendarId); -/** @brief Calendar Cluster Get Week Profiles - * - * - * - * @param providerId Ver.: always - * @param issuerCalendarId Ver.: always - * @param startWeekId Ver.: always - * @param numberOfWeeks Ver.: always - */ -bool emberAfCalendarClusterGetWeekProfilesCallback(uint32_t providerId, uint32_t issuerCalendarId, uint8_t startWeekId, - uint8_t numberOfWeeks); -/** @brief Calendar Cluster Publish Calendar - * - * - * - * @param providerId Ver.: always - * @param issuerEventId Ver.: always - * @param issuerCalendarId Ver.: always - * @param startTime Ver.: always - * @param calendarType Ver.: always - * @param calendarTimeReference Ver.: always - * @param calendarName Ver.: always - * @param numberOfSeasons Ver.: always - * @param numberOfWeekProfiles Ver.: always - * @param numberOfDayProfiles Ver.: always - */ -bool emberAfCalendarClusterPublishCalendarCallback(uint32_t providerId, uint32_t issuerEventId, uint32_t issuerCalendarId, - uint32_t startTime, uint8_t calendarType, uint8_t calendarTimeReference, - uint8_t * calendarName, uint8_t numberOfSeasons, uint8_t numberOfWeekProfiles, - uint8_t numberOfDayProfiles); -/** @brief Calendar Cluster Publish Day Profile - * - * - * - * @param providerId Ver.: always - * @param issuerEventId Ver.: always - * @param issuerCalendarId Ver.: always - * @param dayId Ver.: always - * @param totalNumberOfScheduleEntries Ver.: always - * @param commandIndex Ver.: always - * @param totalNumberOfCommands Ver.: always - * @param calendarType Ver.: always - * @param dayScheduleEntries Ver.: always - */ -bool emberAfCalendarClusterPublishDayProfileCallback(uint32_t providerId, uint32_t issuerEventId, uint32_t issuerCalendarId, - uint8_t dayId, uint8_t totalNumberOfScheduleEntries, uint8_t commandIndex, - uint8_t totalNumberOfCommands, uint8_t calendarType, - uint8_t * dayScheduleEntries); -/** @brief Calendar Cluster Publish Seasons - * - * - * - * @param providerId Ver.: always - * @param issuerEventId Ver.: always - * @param issuerCalendarId Ver.: always - * @param commandIndex Ver.: always - * @param totalNumberOfCommands Ver.: always - * @param seasonEntries Ver.: always - */ -bool emberAfCalendarClusterPublishSeasonsCallback(uint32_t providerId, uint32_t issuerEventId, uint32_t issuerCalendarId, - uint8_t commandIndex, uint8_t totalNumberOfCommands, uint8_t * seasonEntries); -/** @brief Calendar Cluster Publish Special Days - * - * - * - * @param providerId Ver.: always - * @param issuerEventId Ver.: always - * @param issuerCalendarId Ver.: always - * @param startTime Ver.: always - * @param calendarType Ver.: always - * @param totalNumberOfSpecialDays Ver.: always - * @param commandIndex Ver.: always - * @param totalNumberOfCommands Ver.: always - * @param specialDayEntries Ver.: always - */ -bool emberAfCalendarClusterPublishSpecialDaysCallback(uint32_t providerId, uint32_t issuerEventId, uint32_t issuerCalendarId, - uint32_t startTime, uint8_t calendarType, uint8_t totalNumberOfSpecialDays, - uint8_t commandIndex, uint8_t totalNumberOfCommands, - uint8_t * specialDayEntries); -/** @brief Calendar Cluster Publish Week Profile - * - * - * - * @param providerId Ver.: always - * @param issuerEventId Ver.: always - * @param issuerCalendarId Ver.: always - * @param weekId Ver.: always - * @param dayIdRefMonday Ver.: always - * @param dayIdRefTuesday Ver.: always - * @param dayIdRefWednesday Ver.: always - * @param dayIdRefThursday Ver.: always - * @param dayIdRefFriday Ver.: always - * @param dayIdRefSaturday Ver.: always - * @param dayIdRefSunday Ver.: always - */ -bool emberAfCalendarClusterPublishWeekProfileCallback(uint32_t providerId, uint32_t issuerEventId, uint32_t issuerCalendarId, - uint8_t weekId, uint8_t dayIdRefMonday, uint8_t dayIdRefTuesday, - uint8_t dayIdRefWednesday, uint8_t dayIdRefThursday, uint8_t dayIdRefFriday, - uint8_t dayIdRefSaturday, uint8_t dayIdRefSunday); -/** @brief Calendar Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfCalendarClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Calendar Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfCalendarClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Calendar Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfCalendarClusterServerInitCallback(uint8_t endpoint); -/** @brief Calendar Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfCalendarClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Calendar Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfCalendarClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Calendar Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfCalendarClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Calendar Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfCalendarClusterServerTickCallback(uint8_t endpoint); - -/** @} END Calendar Cluster Callbacks */ - -/** @name Device Management Cluster Callbacks */ -// @{ - -/** @brief Device Management Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfDeviceManagementClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Device Management Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfDeviceManagementClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Device Management Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfDeviceManagementClusterClientInitCallback(uint8_t endpoint); -/** @brief Device Management Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfDeviceManagementClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Device Management Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfDeviceManagementClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Device Management Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfDeviceManagementClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Device Management Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfDeviceManagementClusterClientTickCallback(uint8_t endpoint); -/** @brief Device Management Cluster Get C I N - * - * - * - */ -bool emberAfDeviceManagementClusterGetCINCallback(void); -/** @brief Device Management Cluster Get Change Of Supplier - * - * - * - */ -bool emberAfDeviceManagementClusterGetChangeOfSupplierCallback(void); -/** @brief Device Management Cluster Get Change Of Tenancy - * - * - * - */ -bool emberAfDeviceManagementClusterGetChangeOfTenancyCallback(void); -/** @brief Device Management Cluster Get Event Configuration - * - * - * - * @param eventId Ver.: always - */ -bool emberAfDeviceManagementClusterGetEventConfigurationCallback(uint16_t eventId); -/** @brief Device Management Cluster Get Site Id - * - * - * - */ -bool emberAfDeviceManagementClusterGetSiteIdCallback(void); -/** @brief Device Management Cluster Publish Change Of Supplier - * - * - * - * @param currentProviderId Ver.: always - * @param issuerEventId Ver.: always - * @param tariffType Ver.: always - * @param proposedProviderId Ver.: always - * @param providerChangeImplementationTime Ver.: always - * @param providerChangeControl Ver.: always - * @param proposedProviderName Ver.: always - * @param proposedProviderContactDetails Ver.: always - */ -bool emberAfDeviceManagementClusterPublishChangeOfSupplierCallback(uint32_t currentProviderId, uint32_t issuerEventId, - uint8_t tariffType, uint32_t proposedProviderId, - uint32_t providerChangeImplementationTime, - uint32_t providerChangeControl, uint8_t * proposedProviderName, - uint8_t * proposedProviderContactDetails); -/** @brief Device Management Cluster Publish Change Of Tenancy - * - * - * - * @param providerId Ver.: always - * @param issuerEventId Ver.: always - * @param tariffType Ver.: always - * @param implementationDateTime Ver.: always - * @param proposedTenancyChangeControl Ver.: always - */ -bool emberAfDeviceManagementClusterPublishChangeOfTenancyCallback(uint32_t providerId, uint32_t issuerEventId, uint8_t tariffType, - uint32_t implementationDateTime, - uint32_t proposedTenancyChangeControl); -/** @brief Device Management Cluster Report Event Configuration - * - * - * - * @param commandIndex Ver.: always - * @param totalCommands Ver.: always - * @param eventConfigurationPayload Ver.: always - */ -bool emberAfDeviceManagementClusterReportEventConfigurationCallback(uint8_t commandIndex, uint8_t totalCommands, - uint8_t * eventConfigurationPayload); -/** @brief Device Management Cluster Request New Password - * - * - * - * @param passwordType Ver.: always - */ -bool emberAfDeviceManagementClusterRequestNewPasswordCallback(uint8_t passwordType); -/** @brief Device Management Cluster Request New Password Response - * - * - * - * @param issuerEventId Ver.: always - * @param implementationDateTime Ver.: always - * @param durationInMinutes Ver.: always - * @param passwordType Ver.: always - * @param password Ver.: always - */ -bool emberAfDeviceManagementClusterRequestNewPasswordResponseCallback(uint32_t issuerEventId, uint32_t implementationDateTime, - uint16_t durationInMinutes, uint8_t passwordType, - uint8_t * password); -/** @brief Device Management Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfDeviceManagementClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Device Management Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfDeviceManagementClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Device Management Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfDeviceManagementClusterServerInitCallback(uint8_t endpoint); -/** @brief Device Management Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfDeviceManagementClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Device Management Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfDeviceManagementClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Device Management Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfDeviceManagementClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Device Management Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfDeviceManagementClusterServerTickCallback(uint8_t endpoint); -/** @brief Device Management Cluster Set Event Configuration - * - * - * - * @param issuerEventId Ver.: always - * @param startDateTime Ver.: always - * @param eventConfiguration Ver.: always - * @param configurationControl Ver.: always - * @param eventConfigurationPayload Ver.: always - */ -bool emberAfDeviceManagementClusterSetEventConfigurationCallback(uint32_t issuerEventId, uint32_t startDateTime, - uint8_t eventConfiguration, uint8_t configurationControl, - uint8_t * eventConfigurationPayload); -/** @brief Device Management Cluster Update C I N - * - * - * - * @param issuerEventId Ver.: always - * @param implementationTime Ver.: always - * @param providerId Ver.: always - * @param customerIdNumber Ver.: always - */ -bool emberAfDeviceManagementClusterUpdateCINCallback(uint32_t issuerEventId, uint32_t implementationTime, uint32_t providerId, - uint8_t * customerIdNumber); -/** @brief Device Management Cluster Update Site Id - * - * - * - * @param issuerEventId Ver.: always - * @param siteIdTime Ver.: always - * @param providerId Ver.: always - * @param siteId Ver.: always - */ -bool emberAfDeviceManagementClusterUpdateSiteIdCallback(uint32_t issuerEventId, uint32_t siteIdTime, uint32_t providerId, - uint8_t * siteId); - -/** @} END Device Management Cluster Callbacks */ - -/** @name Events Cluster Callbacks */ -// @{ - -/** @brief Events Cluster Clear Event Log Request - * - * - * - * @param logId Ver.: always - */ -bool emberAfEventsClusterClearEventLogRequestCallback(uint8_t logId); -/** @brief Events Cluster Clear Event Log Response - * - * - * - * @param clearedEventsLogs Ver.: always - */ -bool emberAfEventsClusterClearEventLogResponseCallback(uint8_t clearedEventsLogs); -/** @brief Events Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfEventsClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Events Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfEventsClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Events Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfEventsClusterClientInitCallback(uint8_t endpoint); -/** @brief Events Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfEventsClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Events Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfEventsClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Events Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfEventsClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Events Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfEventsClusterClientTickCallback(uint8_t endpoint); -/** @brief Events Cluster Get Event Log - * - * - * - * @param eventControlLogId Ver.: always - * @param eventId Ver.: always - * @param startTime Ver.: always - * @param endTime Ver.: always - * @param numberOfEvents Ver.: always - * @param eventOffset Ver.: always - */ -bool emberAfEventsClusterGetEventLogCallback(uint8_t eventControlLogId, uint16_t eventId, uint32_t startTime, uint32_t endTime, - uint8_t numberOfEvents, uint16_t eventOffset); -/** @brief Events Cluster Publish Event - * - * - * - * @param logId Ver.: always - * @param eventId Ver.: always - * @param eventTime Ver.: always - * @param eventControl Ver.: always - * @param eventData Ver.: always - */ -bool emberAfEventsClusterPublishEventCallback(uint8_t logId, uint16_t eventId, uint32_t eventTime, uint8_t eventControl, - uint8_t * eventData); -/** @brief Events Cluster Publish Event Log - * - * - * - * @param totalNumberOfEvents Ver.: always - * @param commandIndex Ver.: always - * @param totalCommands Ver.: always - * @param logPayloadControl Ver.: always - * @param logPayload Ver.: always - */ -bool emberAfEventsClusterPublishEventLogCallback(uint16_t totalNumberOfEvents, uint8_t commandIndex, uint8_t totalCommands, - uint8_t logPayloadControl, uint8_t * logPayload); -/** @brief Events Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfEventsClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Events Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfEventsClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Events Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfEventsClusterServerInitCallback(uint8_t endpoint); -/** @brief Events Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfEventsClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Events Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfEventsClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Events Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfEventsClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Events Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfEventsClusterServerTickCallback(uint8_t endpoint); - -/** @} END Events Cluster Callbacks */ - -/** @name MDU Pairing Cluster Callbacks */ -// @{ - -/** @brief MDU Pairing Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfMduPairingClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief MDU Pairing Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfMduPairingClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief MDU Pairing Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfMduPairingClusterClientInitCallback(uint8_t endpoint); -/** @brief MDU Pairing Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfMduPairingClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief MDU Pairing Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfMduPairingClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief MDU Pairing Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfMduPairingClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief MDU Pairing Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfMduPairingClusterClientTickCallback(uint8_t endpoint); -/** @brief MDU Pairing Cluster Pairing Request - * - * - * - * @param localPairingInformationVersion Ver.: always - * @param eui64OfRequestingDevice Ver.: always - */ -bool emberAfMduPairingClusterPairingRequestCallback(uint32_t localPairingInformationVersion, uint8_t * eui64OfRequestingDevice); -/** @brief MDU Pairing Cluster Pairing Response - * - * - * - * @param pairingInformationVersion Ver.: always - * @param totalNumberOfDevices Ver.: always - * @param commandIndex Ver.: always - * @param totalNumberOfCommands Ver.: always - * @param eui64s Ver.: always - */ -bool emberAfMduPairingClusterPairingResponseCallback(uint32_t pairingInformationVersion, uint8_t totalNumberOfDevices, - uint8_t commandIndex, uint8_t totalNumberOfCommands, uint8_t * eui64s); -/** @brief MDU Pairing Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfMduPairingClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief MDU Pairing Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfMduPairingClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief MDU Pairing Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfMduPairingClusterServerInitCallback(uint8_t endpoint); -/** @brief MDU Pairing Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfMduPairingClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief MDU Pairing Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfMduPairingClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief MDU Pairing Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfMduPairingClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief MDU Pairing Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfMduPairingClusterServerTickCallback(uint8_t endpoint); - -/** @} END MDU Pairing Cluster Callbacks */ - -/** @name Sub-GHz Cluster Callbacks */ -// @{ - -/** @brief Sub-GHz Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfSubGhzClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Sub-GHz Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfSubGhzClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Sub-GHz Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfSubGhzClusterClientInitCallback(uint8_t endpoint); -/** @brief Sub-GHz Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfSubGhzClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Sub-GHz Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfSubGhzClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Sub-GHz Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfSubGhzClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Sub-GHz Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfSubGhzClusterClientTickCallback(uint8_t endpoint); -/** @brief Sub-GHz Cluster Get Suspend Zcl Messages Status - * - * - * - */ -bool emberAfSubGhzClusterGetSuspendZclMessagesStatusCallback(void); -/** @brief Sub-GHz Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfSubGhzClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Sub-GHz Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfSubGhzClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Sub-GHz Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfSubGhzClusterServerInitCallback(uint8_t endpoint); -/** @brief Sub-GHz Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfSubGhzClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Sub-GHz Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfSubGhzClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Sub-GHz Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfSubGhzClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Sub-GHz Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfSubGhzClusterServerTickCallback(uint8_t endpoint); -/** @brief Sub-GHz Cluster Suspend Zcl Messages - * - * - * - * @param period Ver.: always - */ -bool emberAfSubGhzClusterSuspendZclMessagesCallback(uint8_t period); - -/** @} END Sub-GHz Cluster Callbacks */ - -/** @name Key Establishment Cluster Callbacks */ -// @{ - -/** @brief Key Establishment Cluster Client Command Received - * - * This function is called by the application framework when a server-to-client - * key establishment command is received but has yet to be handled by the - * framework code. This function should return a bool value indicating whether - * the command has been handled by the application code and should not be - * further processed by the framework. - * - * @param cmd Ver.: always - */ -bool emberAfKeyEstablishmentClusterClientCommandReceivedCallback(EmberAfClusterCommand * cmd); -/** @brief Key Establishment Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfKeyEstablishmentClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Key Establishment Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfKeyEstablishmentClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Key Establishment Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfKeyEstablishmentClusterClientInitCallback(uint8_t endpoint); -/** @brief Key Establishment Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfKeyEstablishmentClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Key Establishment Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfKeyEstablishmentClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Key Establishment Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfKeyEstablishmentClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Key Establishment Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfKeyEstablishmentClusterClientTickCallback(uint8_t endpoint); -/** @brief Key Establishment Cluster Confirm Key Data Request - * - * - * - * @param secureMessageAuthenticationCode Ver.: always - */ -bool emberAfKeyEstablishmentClusterConfirmKeyDataRequestCallback(uint8_t * secureMessageAuthenticationCode); -/** @brief Key Establishment Cluster Confirm Key Data Response - * - * - * - * @param secureMessageAuthenticationCode Ver.: always - */ -bool emberAfKeyEstablishmentClusterConfirmKeyDataResponseCallback(uint8_t * secureMessageAuthenticationCode); -/** @brief Key Establishment Cluster Ephemeral Data Request - * - * - * - * @param ephemeralData Ver.: always - */ -bool emberAfKeyEstablishmentClusterEphemeralDataRequestCallback(uint8_t * ephemeralData); -/** @brief Key Establishment Cluster Ephemeral Data Response - * - * - * - * @param ephemeralData Ver.: always - */ -bool emberAfKeyEstablishmentClusterEphemeralDataResponseCallback(uint8_t * ephemeralData); -/** @brief Key Establishment Cluster Initiate Key Establishment Request - * - * - * - * @param keyEstablishmentSuite Ver.: always - * @param ephemeralDataGenerateTime Ver.: always - * @param confirmKeyGenerateTime Ver.: always - * @param identity Ver.: always - */ -bool emberAfKeyEstablishmentClusterInitiateKeyEstablishmentRequestCallback(uint16_t keyEstablishmentSuite, - uint8_t ephemeralDataGenerateTime, - uint8_t confirmKeyGenerateTime, uint8_t * identity); -/** @brief Key Establishment Cluster Initiate Key Establishment Response - * - * - * - * @param requestedKeyEstablishmentSuite Ver.: always - * @param ephemeralDataGenerateTime Ver.: always - * @param confirmKeyGenerateTime Ver.: always - * @param identity Ver.: always - */ -bool emberAfKeyEstablishmentClusterInitiateKeyEstablishmentResponseCallback(uint16_t requestedKeyEstablishmentSuite, - uint8_t ephemeralDataGenerateTime, - uint8_t confirmKeyGenerateTime, uint8_t * identity); -/** @brief Key Establishment Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfKeyEstablishmentClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Key Establishment Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfKeyEstablishmentClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Key Establishment Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfKeyEstablishmentClusterServerInitCallback(uint8_t endpoint); -/** @brief Key Establishment Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfKeyEstablishmentClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Key Establishment Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfKeyEstablishmentClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Key Establishment Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfKeyEstablishmentClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Key Establishment Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfKeyEstablishmentClusterServerTickCallback(uint8_t endpoint); -/** @brief Key Establishment Cluster Terminate Key Establishment - * - * - * - * @param statusCode Ver.: always - * @param waitTime Ver.: always - * @param keyEstablishmentSuite Ver.: always - */ -bool emberAfKeyEstablishmentClusterTerminateKeyEstablishmentCallback(uint8_t statusCode, uint8_t waitTime, - uint16_t keyEstablishmentSuite); -/** @brief Key Establishment Cluster Server Command Received - * - * This function is called by the application framework when a client-to-server - * key establishment command is received but has yet to be handled by the - * framework code. This function should return a bool value indicating whether - * the command has been handled by the application code and should not be - * further processed by the framework. - * - * @param cmd Ver.: always - */ -bool emberAfKeyEstablishmentClusterServerCommandReceivedCallback(EmberAfClusterCommand * cmd); - -/** @} END Key Establishment Cluster Callbacks */ - -/** @name Information Cluster Callbacks */ -// @{ - -/** @brief Information Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfInformationClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Information Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfInformationClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Information Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfInformationClusterClientInitCallback(uint8_t endpoint); -/** @brief Information Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfInformationClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Information Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfInformationClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Information Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfInformationClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Information Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfInformationClusterClientTickCallback(uint8_t endpoint); -/** @brief Information Cluster Configure Delivery Enable - * - * - * - * @param enable Ver.: always - */ -bool emberAfInformationClusterConfigureDeliveryEnableCallback(uint8_t enable); -/** @brief Information Cluster Configure Node Description - * - * - * - * @param description Ver.: always - */ -bool emberAfInformationClusterConfigureNodeDescriptionCallback(uint8_t * description); -/** @brief Information Cluster Configure Push Information Timer - * - * - * - * @param timer Ver.: always - */ -bool emberAfInformationClusterConfigurePushInformationTimerCallback(uint32_t timer); -/** @brief Information Cluster Configure Set Root Id - * - * - * - * @param rootId Ver.: always - */ -bool emberAfInformationClusterConfigureSetRootIdCallback(uint16_t rootId); -/** @brief Information Cluster Delete - * - * - * - * @param deletionOptions Ver.: always - * @param contentIds Ver.: always - */ -bool emberAfInformationClusterDeleteCallback(uint8_t deletionOptions, uint8_t * contentIds); -/** @brief Information Cluster Delete Response - * - * - * - * @param notificationList Ver.: always - */ -bool emberAfInformationClusterDeleteResponseCallback(uint8_t * notificationList); -/** @brief Information Cluster Push Information - * - * - * - * @param contents Ver.: always - */ -bool emberAfInformationClusterPushInformationCallback(uint8_t * contents); -/** @brief Information Cluster Push Information Response - * - * - * - * @param notificationList Ver.: always - */ -bool emberAfInformationClusterPushInformationResponseCallback(uint8_t * notificationList); -/** @brief Information Cluster Request Information - * - * - * - * @param inquiryId Ver.: always - * @param dataTypeId Ver.: always - * @param requestInformationPayload Ver.: always - */ -bool emberAfInformationClusterRequestInformationCallback(uint8_t inquiryId, uint8_t dataTypeId, - uint8_t * requestInformationPayload); -/** @brief Information Cluster Request Information Response - * - * - * - * @param number Ver.: always - * @param buffer Ver.: always - */ -bool emberAfInformationClusterRequestInformationResponseCallback(uint8_t number, uint8_t * buffer); -/** @brief Information Cluster Request Preference Confirmation - * - * - * - * @param statusFeedbackList Ver.: always - */ -bool emberAfInformationClusterRequestPreferenceConfirmationCallback(uint8_t * statusFeedbackList); -/** @brief Information Cluster Request Preference Response - * - * - * - * @param statusFeedback Ver.: always - * @param preferenceType Ver.: always - * @param preferencePayload Ver.: always - */ -bool emberAfInformationClusterRequestPreferenceResponseCallback(uint8_t statusFeedback, uint16_t preferenceType, - uint8_t * preferencePayload); -/** @brief Information Cluster Send Preference - * - * - * - * @param preferenceType Ver.: always - * @param preferencePayload Ver.: always - */ -bool emberAfInformationClusterSendPreferenceCallback(uint16_t preferenceType, uint8_t * preferencePayload); -/** @brief Information Cluster Send Preference Response - * - * - * - * @param statusFeedbackList Ver.: always - */ -bool emberAfInformationClusterSendPreferenceResponseCallback(uint8_t * statusFeedbackList); -/** @brief Information Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfInformationClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Information Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfInformationClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Information Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfInformationClusterServerInitCallback(uint8_t endpoint); -/** @brief Information Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfInformationClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Information Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfInformationClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Information Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfInformationClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Information Cluster Server Request Preference - * - * - * - */ -bool emberAfInformationClusterServerRequestPreferenceCallback(void); -/** @brief Information Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfInformationClusterServerTickCallback(uint8_t endpoint); -/** @brief Information Cluster Update - * - * - * - * @param accessControl Ver.: always - * @param option Ver.: always - * @param contents Ver.: always - */ -bool emberAfInformationClusterUpdateCallback(uint8_t accessControl, uint8_t option, uint8_t * contents); -/** @brief Information Cluster Update Response - * - * - * - * @param notificationList Ver.: always - */ -bool emberAfInformationClusterUpdateResponseCallback(uint8_t * notificationList); - -/** @} END Information Cluster Callbacks */ - -/** @name Data Sharing Cluster Callbacks */ -// @{ - -/** @brief Data Sharing Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfDataSharingClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Data Sharing Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfDataSharingClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Data Sharing Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfDataSharingClusterClientInitCallback(uint8_t endpoint); -/** @brief Data Sharing Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfDataSharingClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Data Sharing Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfDataSharingClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Data Sharing Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfDataSharingClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Data Sharing Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfDataSharingClusterClientTickCallback(uint8_t endpoint); -/** @brief Data Sharing Cluster File Transmission - * - * - * - * @param transmitOptions Ver.: always - * @param buffer Ver.: always - */ -bool emberAfDataSharingClusterFileTransmissionCallback(uint8_t transmitOptions, uint8_t * buffer); -/** @brief Data Sharing Cluster Modify File Request - * - * - * - * @param fileIndex Ver.: always - * @param fileStartPosition Ver.: always - * @param octetCount Ver.: always - */ -bool emberAfDataSharingClusterModifyFileRequestCallback(uint16_t fileIndex, uint32_t fileStartPosition, uint32_t octetCount); -/** @brief Data Sharing Cluster Modify Record Request - * - * - * - * @param fileIndex Ver.: always - * @param fileStartRecord Ver.: always - * @param recordCount Ver.: always - */ -bool emberAfDataSharingClusterModifyRecordRequestCallback(uint16_t fileIndex, uint16_t fileStartRecord, uint16_t recordCount); -/** @brief Data Sharing Cluster Read File Request - * - * - * - * @param fileIndex Ver.: always - * @param fileStartPositionAndRequestedOctetCount Ver.: always - */ -bool emberAfDataSharingClusterReadFileRequestCallback(uint16_t fileIndex, uint8_t * fileStartPositionAndRequestedOctetCount); -/** @brief Data Sharing Cluster Read Record Request - * - * - * - * @param fileIndex Ver.: always - * @param fileStartRecordAndRequestedRecordCount Ver.: always - */ -bool emberAfDataSharingClusterReadRecordRequestCallback(uint16_t fileIndex, uint8_t * fileStartRecordAndRequestedRecordCount); -/** @brief Data Sharing Cluster Record Transmission - * - * - * - * @param transmitOptions Ver.: always - * @param buffer Ver.: always - */ -bool emberAfDataSharingClusterRecordTransmissionCallback(uint8_t transmitOptions, uint8_t * buffer); -/** @brief Data Sharing Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfDataSharingClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Data Sharing Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfDataSharingClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Data Sharing Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfDataSharingClusterServerInitCallback(uint8_t endpoint); -/** @brief Data Sharing Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfDataSharingClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Data Sharing Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfDataSharingClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Data Sharing Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfDataSharingClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Data Sharing Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfDataSharingClusterServerTickCallback(uint8_t endpoint); -/** @brief Data Sharing Cluster Write File Request - * - * - * - * @param writeOptions Ver.: always - * @param fileSize Ver.: always - */ -bool emberAfDataSharingClusterWriteFileRequestCallback(uint8_t writeOptions, uint8_t * fileSize); -/** @brief Data Sharing Cluster Write File Response - * - * - * - * @param status Ver.: always - * @param fileIndex Ver.: always - */ -bool emberAfDataSharingClusterWriteFileResponseCallback(uint8_t status, uint8_t * fileIndex); - -/** @} END Data Sharing Cluster Callbacks */ - -/** @name Gaming Cluster Callbacks */ -// @{ - -/** @brief Gaming Cluster Action Control - * - * - * - * @param actions Ver.: always - */ -bool emberAfGamingClusterActionControlCallback(uint32_t actions); -/** @brief Gaming Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfGamingClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Gaming Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfGamingClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Gaming Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfGamingClusterClientInitCallback(uint8_t endpoint); -/** @brief Gaming Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfGamingClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Gaming Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfGamingClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Gaming Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfGamingClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Gaming Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfGamingClusterClientTickCallback(uint8_t endpoint); -/** @brief Gaming Cluster Download Game - * - * - * - */ -bool emberAfGamingClusterDownloadGameCallback(void); -/** @brief Gaming Cluster End Game - * - * - * - */ -bool emberAfGamingClusterEndGameCallback(void); -/** @brief Gaming Cluster Game Announcement - * - * - * - * @param gameId Ver.: always - * @param gameMaster Ver.: always - * @param listOfGame Ver.: always - */ -bool emberAfGamingClusterGameAnnouncementCallback(uint16_t gameId, uint8_t gameMaster, uint8_t * listOfGame); -/** @brief Gaming Cluster General Response - * - * - * - * @param commandId Ver.: always - * @param status Ver.: always - * @param message Ver.: always - */ -bool emberAfGamingClusterGeneralResponseCallback(uint8_t commandId, uint8_t status, uint8_t * message); -/** @brief Gaming Cluster Join Game - * - * - * - * @param gameId Ver.: always - * @param joinAsMaster Ver.: always - * @param nameOfGame Ver.: always - */ -bool emberAfGamingClusterJoinGameCallback(uint16_t gameId, uint8_t joinAsMaster, uint8_t * nameOfGame); -/** @brief Gaming Cluster Pause Game - * - * - * - */ -bool emberAfGamingClusterPauseGameCallback(void); -/** @brief Gaming Cluster Quit Game - * - * - * - */ -bool emberAfGamingClusterQuitGameCallback(void); -/** @brief Gaming Cluster Resume Game - * - * - * - */ -bool emberAfGamingClusterResumeGameCallback(void); -/** @brief Gaming Cluster Search Game - * - * - * - * @param specificGame Ver.: always - * @param gameId Ver.: always - */ -bool emberAfGamingClusterSearchGameCallback(uint8_t specificGame, uint16_t gameId); -/** @brief Gaming Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfGamingClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Gaming Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfGamingClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Gaming Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfGamingClusterServerInitCallback(uint8_t endpoint); -/** @brief Gaming Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfGamingClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Gaming Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfGamingClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Gaming Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfGamingClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Gaming Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfGamingClusterServerTickCallback(uint8_t endpoint); -/** @brief Gaming Cluster Start Game - * - * - * - */ -bool emberAfGamingClusterStartGameCallback(void); -/** @brief Gaming Cluster Start Over - * - * - * - */ -bool emberAfGamingClusterStartOverCallback(void); - -/** @} END Gaming Cluster Callbacks */ - -/** @name Data Rate Control Cluster Callbacks */ -// @{ - -/** @brief Data Rate Control Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfDataRateControlClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Data Rate Control Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfDataRateControlClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Data Rate Control Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfDataRateControlClusterClientInitCallback(uint8_t endpoint); -/** @brief Data Rate Control Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfDataRateControlClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Data Rate Control Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfDataRateControlClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Data Rate Control Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfDataRateControlClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Data Rate Control Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfDataRateControlClusterClientTickCallback(uint8_t endpoint); -/** @brief Data Rate Control Cluster Data Rate Control - * - * - * - * @param originatorAddress Ver.: always - * @param destinationAddress Ver.: always - * @param dataRate Ver.: always - */ -bool emberAfDataRateControlClusterDataRateControlCallback(uint16_t originatorAddress, uint16_t destinationAddress, - uint8_t dataRate); -/** @brief Data Rate Control Cluster Data Rate Notification - * - * - * - * @param originatorAddress Ver.: always - * @param destinationAddress Ver.: always - * @param dataRate Ver.: always - */ -bool emberAfDataRateControlClusterDataRateNotificationCallback(uint16_t originatorAddress, uint16_t destinationAddress, - uint8_t dataRate); -/** @brief Data Rate Control Cluster Path Creation - * - * - * - * @param originatorAddress Ver.: always - * @param destinationAddress Ver.: always - * @param dataRate Ver.: always - */ -bool emberAfDataRateControlClusterPathCreationCallback(uint16_t originatorAddress, uint16_t destinationAddress, uint8_t dataRate); -/** @brief Data Rate Control Cluster Path Deletion - * - * - * - * @param originatorAddress Ver.: always - * @param destinationAddress Ver.: always - */ -bool emberAfDataRateControlClusterPathDeletionCallback(uint16_t originatorAddress, uint16_t destinationAddress); -/** @brief Data Rate Control Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfDataRateControlClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Data Rate Control Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfDataRateControlClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Data Rate Control Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfDataRateControlClusterServerInitCallback(uint8_t endpoint); -/** @brief Data Rate Control Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfDataRateControlClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Data Rate Control Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfDataRateControlClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Data Rate Control Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfDataRateControlClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Data Rate Control Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfDataRateControlClusterServerTickCallback(uint8_t endpoint); - -/** @} END Data Rate Control Cluster Callbacks */ - -/** @name Voice over ZigBee Cluster Callbacks */ -// @{ - -/** @brief Voice over ZigBee Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfVoiceOverZigbeeClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Voice over ZigBee Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfVoiceOverZigbeeClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Voice over ZigBee Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfVoiceOverZigbeeClusterClientInitCallback(uint8_t endpoint); -/** @brief Voice over ZigBee Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfVoiceOverZigbeeClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Voice over ZigBee Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfVoiceOverZigbeeClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Voice over ZigBee Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfVoiceOverZigbeeClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Voice over ZigBee Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfVoiceOverZigbeeClusterClientTickCallback(uint8_t endpoint); -/** @brief Voice over ZigBee Cluster Control - * - * - * - * @param controlType Ver.: always - */ -bool emberAfVoiceOverZigbeeClusterControlCallback(uint8_t controlType); -/** @brief Voice over ZigBee Cluster Control Response - * - * - * - * @param ackNack Ver.: always - */ -bool emberAfVoiceOverZigbeeClusterControlResponseCallback(uint8_t ackNack); -/** @brief Voice over ZigBee Cluster Establishment Request - * - * - * - * @param flag Ver.: always - * @param codecType Ver.: always - * @param sampFreq Ver.: always - * @param codecRate Ver.: always - * @param serviceType Ver.: always - * @param buffer Ver.: always - */ -bool emberAfVoiceOverZigbeeClusterEstablishmentRequestCallback(uint8_t flag, uint8_t codecType, uint8_t sampFreq, uint8_t codecRate, - uint8_t serviceType, uint8_t * buffer); -/** @brief Voice over ZigBee Cluster Establishment Response - * - * - * - * @param ackNack Ver.: always - * @param codecType Ver.: always - */ -bool emberAfVoiceOverZigbeeClusterEstablishmentResponseCallback(uint8_t ackNack, uint8_t codecType); -/** @brief Voice over ZigBee Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfVoiceOverZigbeeClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Voice over ZigBee Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfVoiceOverZigbeeClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Voice over ZigBee Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfVoiceOverZigbeeClusterServerInitCallback(uint8_t endpoint); -/** @brief Voice over ZigBee Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfVoiceOverZigbeeClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Voice over ZigBee Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfVoiceOverZigbeeClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Voice over ZigBee Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfVoiceOverZigbeeClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Voice over ZigBee Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfVoiceOverZigbeeClusterServerTickCallback(uint8_t endpoint); -/** @brief Voice over ZigBee Cluster Voice Transmission - * - * - * - * @param voiceData Ver.: always - */ -bool emberAfVoiceOverZigbeeClusterVoiceTransmissionCallback(uint8_t * voiceData); -/** @brief Voice over ZigBee Cluster Voice Transmission Completion - * - * - * - */ -bool emberAfVoiceOverZigbeeClusterVoiceTransmissionCompletionCallback(void); -/** @brief Voice over ZigBee Cluster Voice Transmission Response - * - * - * - * @param sequenceNumber Ver.: always - * @param errorFlag Ver.: always - */ -bool emberAfVoiceOverZigbeeClusterVoiceTransmissionResponseCallback(uint8_t sequenceNumber, uint8_t errorFlag); - -/** @} END Voice over ZigBee Cluster Callbacks */ - -/** @name Chatting Cluster Callbacks */ -// @{ - -/** @brief Chatting Cluster Chat Message - * - * - * - * @param destinationUid Ver.: always - * @param sourceUid Ver.: always - * @param cid Ver.: always - * @param nickname Ver.: always - * @param message Ver.: always - */ -bool emberAfChattingClusterChatMessageCallback(uint16_t destinationUid, uint16_t sourceUid, uint16_t cid, uint8_t * nickname, - uint8_t * message); -/** @brief Chatting Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfChattingClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Chatting Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfChattingClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Chatting Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfChattingClusterClientInitCallback(uint8_t endpoint); -/** @brief Chatting Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfChattingClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Chatting Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfChattingClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Chatting Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfChattingClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Chatting Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfChattingClusterClientTickCallback(uint8_t endpoint); -/** @brief Chatting Cluster Get Node Information Request - * - * - * - * @param cid Ver.: always - * @param uid Ver.: always - */ -bool emberAfChattingClusterGetNodeInformationRequestCallback(uint16_t cid, uint16_t uid); -/** @brief Chatting Cluster Get Node Information Response - * - * - * - * @param status Ver.: always - * @param cid Ver.: always - * @param uid Ver.: always - * @param addressEndpointAndNickname Ver.: always - */ -bool emberAfChattingClusterGetNodeInformationResponseCallback(uint8_t status, uint16_t cid, uint16_t uid, - uint8_t * addressEndpointAndNickname); -/** @brief Chatting Cluster Join Chat Request - * - * - * - * @param uid Ver.: always - * @param nickname Ver.: always - * @param cid Ver.: always - */ -bool emberAfChattingClusterJoinChatRequestCallback(uint16_t uid, uint8_t * nickname, uint16_t cid); -/** @brief Chatting Cluster Join Chat Response - * - * - * - * @param status Ver.: always - * @param cid Ver.: always - * @param chatParticipantList Ver.: always - */ -bool emberAfChattingClusterJoinChatResponseCallback(uint8_t status, uint16_t cid, uint8_t * chatParticipantList); -/** @brief Chatting Cluster Leave Chat Request - * - * - * - * @param cid Ver.: always - * @param uid Ver.: always - */ -bool emberAfChattingClusterLeaveChatRequestCallback(uint16_t cid, uint16_t uid); -/** @brief Chatting Cluster Search Chat Request - * - * - * - */ -bool emberAfChattingClusterSearchChatRequestCallback(void); -/** @brief Chatting Cluster Search Chat Response - * - * - * - * @param options Ver.: always - * @param chatRoomList Ver.: always - */ -bool emberAfChattingClusterSearchChatResponseCallback(uint8_t options, uint8_t * chatRoomList); -/** @brief Chatting Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfChattingClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Chatting Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfChattingClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Chatting Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfChattingClusterServerInitCallback(uint8_t endpoint); -/** @brief Chatting Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfChattingClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Chatting Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfChattingClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Chatting Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfChattingClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Chatting Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfChattingClusterServerTickCallback(uint8_t endpoint); -/** @brief Chatting Cluster Start Chat Request - * - * - * - * @param name Ver.: always - * @param uid Ver.: always - * @param nickname Ver.: always - */ -bool emberAfChattingClusterStartChatRequestCallback(uint8_t * name, uint16_t uid, uint8_t * nickname); -/** @brief Chatting Cluster Start Chat Response - * - * - * - * @param status Ver.: always - * @param cid Ver.: always - */ -bool emberAfChattingClusterStartChatResponseCallback(uint8_t status, uint16_t cid); -/** @brief Chatting Cluster Switch Chairman Confirm - * - * - * - * @param cid Ver.: always - * @param nodeInformationList Ver.: always - */ -bool emberAfChattingClusterSwitchChairmanConfirmCallback(uint16_t cid, uint8_t * nodeInformationList); -/** @brief Chatting Cluster Switch Chairman Notification - * - * - * - * @param cid Ver.: always - * @param uid Ver.: always - * @param address Ver.: always - * @param endpoint Ver.: always - */ -bool emberAfChattingClusterSwitchChairmanNotificationCallback(uint16_t cid, uint16_t uid, uint16_t address, uint8_t endpoint); -/** @brief Chatting Cluster Switch Chairman Request - * - * - * - * @param cid Ver.: always - */ -bool emberAfChattingClusterSwitchChairmanRequestCallback(uint16_t cid); -/** @brief Chatting Cluster Switch Chairman Response - * - * - * - * @param cid Ver.: always - * @param uid Ver.: always - */ -bool emberAfChattingClusterSwitchChairmanResponseCallback(uint16_t cid, uint16_t uid); -/** @brief Chatting Cluster User Joined - * - * - * - * @param cid Ver.: always - * @param uid Ver.: always - * @param nickname Ver.: always - */ -bool emberAfChattingClusterUserJoinedCallback(uint16_t cid, uint16_t uid, uint8_t * nickname); -/** @brief Chatting Cluster User Left - * - * - * - * @param cid Ver.: always - * @param uid Ver.: always - * @param nickname Ver.: always - */ -bool emberAfChattingClusterUserLeftCallback(uint16_t cid, uint16_t uid, uint8_t * nickname); - -/** @} END Chatting Cluster Callbacks */ - -/** @name Payment Cluster Callbacks */ -// @{ - -/** @brief Payment Cluster Accept Payment - * - * - * - * @param userId Ver.: always - * @param userType Ver.: always - * @param serviceId Ver.: always - * @param goodId Ver.: always - */ -bool emberAfPaymentClusterAcceptPaymentCallback(uint8_t * userId, uint16_t userType, uint16_t serviceId, uint8_t * goodId); -/** @brief Payment Cluster Buy Confirm - * - * - * - * @param serialNumber Ver.: always - * @param currency Ver.: always - * @param priceTrailingDigit Ver.: always - * @param price Ver.: always - * @param timestamp Ver.: always - * @param transId Ver.: always - * @param transStatus Ver.: always - */ -bool emberAfPaymentClusterBuyConfirmCallback(uint8_t * serialNumber, uint32_t currency, uint8_t priceTrailingDigit, uint32_t price, - uint8_t * timestamp, uint16_t transId, uint8_t transStatus); -/** @brief Payment Cluster Buy Request - * - * - * - * @param userId Ver.: always - * @param userType Ver.: always - * @param serviceId Ver.: always - * @param goodId Ver.: always - */ -bool emberAfPaymentClusterBuyRequestCallback(uint8_t * userId, uint16_t userType, uint16_t serviceId, uint8_t * goodId); -/** @brief Payment Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfPaymentClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Payment Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfPaymentClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Payment Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfPaymentClusterClientInitCallback(uint8_t endpoint); -/** @brief Payment Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfPaymentClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Payment Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfPaymentClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Payment Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfPaymentClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Payment Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfPaymentClusterClientTickCallback(uint8_t endpoint); -/** @brief Payment Cluster Payment Confirm - * - * - * - * @param serialNumber Ver.: always - * @param transId Ver.: always - * @param transStatus Ver.: always - */ -bool emberAfPaymentClusterPaymentConfirmCallback(uint8_t * serialNumber, uint16_t transId, uint8_t transStatus); -/** @brief Payment Cluster Receipt Delivery - * - * - * - * @param serialNumber Ver.: always - * @param currency Ver.: always - * @param priceTrailingDigit Ver.: always - * @param price Ver.: always - * @param timestamp Ver.: always - */ -bool emberAfPaymentClusterReceiptDeliveryCallback(uint8_t * serialNumber, uint32_t currency, uint8_t priceTrailingDigit, - uint32_t price, uint8_t * timestamp); -/** @brief Payment Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfPaymentClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Payment Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfPaymentClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Payment Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfPaymentClusterServerInitCallback(uint8_t endpoint); -/** @brief Payment Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfPaymentClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Payment Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfPaymentClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Payment Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfPaymentClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Payment Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfPaymentClusterServerTickCallback(uint8_t endpoint); -/** @brief Payment Cluster Transaction End - * - * - * - * @param serialNumber Ver.: always - * @param status Ver.: always - */ -bool emberAfPaymentClusterTransactionEndCallback(uint8_t * serialNumber, uint8_t status); - -/** @} END Payment Cluster Callbacks */ - -/** @name Billing Cluster Callbacks */ -// @{ - -/** @brief Billing Cluster Bill Status Notification - * - * - * - * @param userId Ver.: always - * @param status Ver.: always - */ -bool emberAfBillingClusterBillStatusNotificationCallback(uint8_t * userId, uint8_t status); -/** @brief Billing Cluster Check Bill Status - * - * - * - * @param userId Ver.: always - * @param serviceId Ver.: always - * @param serviceProviderId Ver.: always - */ -bool emberAfBillingClusterCheckBillStatusCallback(uint8_t * userId, uint16_t serviceId, uint16_t serviceProviderId); -/** @brief Billing Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfBillingClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Billing Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfBillingClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Billing Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfBillingClusterClientInitCallback(uint8_t endpoint); -/** @brief Billing Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfBillingClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Billing Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfBillingClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Billing Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfBillingClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Billing Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfBillingClusterClientTickCallback(uint8_t endpoint); -/** @brief Billing Cluster Send Bill Record - * - * - * - * @param userId Ver.: always - * @param serviceId Ver.: always - * @param serviceProviderId Ver.: always - * @param timestamp Ver.: always - * @param duration Ver.: always - */ -bool emberAfBillingClusterSendBillRecordCallback(uint8_t * userId, uint16_t serviceId, uint16_t serviceProviderId, - uint8_t * timestamp, uint16_t duration); -/** @brief Billing Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfBillingClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Billing Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfBillingClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Billing Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfBillingClusterServerInitCallback(uint8_t endpoint); -/** @brief Billing Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfBillingClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Billing Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfBillingClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Billing Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfBillingClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Billing Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfBillingClusterServerTickCallback(uint8_t endpoint); -/** @brief Billing Cluster Session Keep Alive - * - * - * - * @param userId Ver.: always - * @param serviceId Ver.: always - * @param serviceProviderId Ver.: always - */ -bool emberAfBillingClusterSessionKeepAliveCallback(uint8_t * userId, uint16_t serviceId, uint16_t serviceProviderId); -/** @brief Billing Cluster Start Billing Session - * - * - * - * @param userId Ver.: always - * @param serviceId Ver.: always - * @param serviceProviderId Ver.: always - */ -bool emberAfBillingClusterStartBillingSessionCallback(uint8_t * userId, uint16_t serviceId, uint16_t serviceProviderId); -/** @brief Billing Cluster Stop Billing Session - * - * - * - * @param userId Ver.: always - * @param serviceId Ver.: always - * @param serviceProviderId Ver.: always - */ -bool emberAfBillingClusterStopBillingSessionCallback(uint8_t * userId, uint16_t serviceId, uint16_t serviceProviderId); -/** @brief Billing Cluster Subscribe - * - * - * - * @param userId Ver.: always - * @param serviceId Ver.: always - * @param serviceProviderId Ver.: always - */ -bool emberAfBillingClusterSubscribeCallback(uint8_t * userId, uint16_t serviceId, uint16_t serviceProviderId); -/** @brief Billing Cluster Unsubscribe - * - * - * - * @param userId Ver.: always - * @param serviceId Ver.: always - * @param serviceProviderId Ver.: always - */ -bool emberAfBillingClusterUnsubscribeCallback(uint8_t * userId, uint16_t serviceId, uint16_t serviceProviderId); - -/** @} END Billing Cluster Callbacks */ - -/** @name Appliance Identification Cluster Callbacks */ -// @{ - -/** @brief Appliance Identification Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfApplianceIdentificationClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Appliance Identification Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfApplianceIdentificationClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Appliance Identification Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfApplianceIdentificationClusterClientInitCallback(uint8_t endpoint); -/** @brief Appliance Identification Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfApplianceIdentificationClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Appliance Identification Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfApplianceIdentificationClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Appliance Identification Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfApplianceIdentificationClusterClientPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Appliance Identification Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfApplianceIdentificationClusterClientTickCallback(uint8_t endpoint); -/** @brief Appliance Identification Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfApplianceIdentificationClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Appliance Identification Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfApplianceIdentificationClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Appliance Identification Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfApplianceIdentificationClusterServerInitCallback(uint8_t endpoint); -/** @brief Appliance Identification Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfApplianceIdentificationClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Appliance Identification Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfApplianceIdentificationClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Appliance Identification Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfApplianceIdentificationClusterServerPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Appliance Identification Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfApplianceIdentificationClusterServerTickCallback(uint8_t endpoint); - -/** @} END Appliance Identification Cluster Callbacks */ - -/** @name Meter Identification Cluster Callbacks */ -// @{ - -/** @brief Meter Identification Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfMeterIdentificationClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Meter Identification Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfMeterIdentificationClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Meter Identification Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfMeterIdentificationClusterClientInitCallback(uint8_t endpoint); -/** @brief Meter Identification Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfMeterIdentificationClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Meter Identification Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfMeterIdentificationClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Meter Identification Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfMeterIdentificationClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Meter Identification Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfMeterIdentificationClusterClientTickCallback(uint8_t endpoint); -/** @brief Meter Identification Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfMeterIdentificationClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Meter Identification Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfMeterIdentificationClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Meter Identification Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfMeterIdentificationClusterServerInitCallback(uint8_t endpoint); -/** @brief Meter Identification Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfMeterIdentificationClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Meter Identification Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfMeterIdentificationClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Meter Identification Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfMeterIdentificationClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Meter Identification Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfMeterIdentificationClusterServerTickCallback(uint8_t endpoint); - -/** @} END Meter Identification Cluster Callbacks */ - -/** @name Appliance Events and Alert Cluster Callbacks */ -// @{ - -/** @brief Appliance Events and Alert Cluster Alerts Notification - * - * - * - * @param alertsCount Ver.: always - * @param alertStructures Ver.: always - */ -bool emberAfApplianceEventsAndAlertClusterAlertsNotificationCallback(uint8_t alertsCount, uint8_t * alertStructures); -/** @brief Appliance Events and Alert Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfApplianceEventsAndAlertClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Appliance Events and Alert Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfApplianceEventsAndAlertClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Appliance Events and Alert Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfApplianceEventsAndAlertClusterClientInitCallback(uint8_t endpoint); -/** @brief Appliance Events and Alert Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfApplianceEventsAndAlertClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Appliance Events and Alert Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfApplianceEventsAndAlertClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Appliance Events and Alert Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfApplianceEventsAndAlertClusterClientPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Appliance Events and Alert Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfApplianceEventsAndAlertClusterClientTickCallback(uint8_t endpoint); -/** @brief Appliance Events and Alert Cluster Events Notification - * - * - * - * @param eventHeader Ver.: always - * @param eventId Ver.: always - */ -bool emberAfApplianceEventsAndAlertClusterEventsNotificationCallback(uint8_t eventHeader, uint8_t eventId); -/** @brief Appliance Events and Alert Cluster Get Alerts - * - * - * - */ -bool emberAfApplianceEventsAndAlertClusterGetAlertsCallback(void); -/** @brief Appliance Events and Alert Cluster Get Alerts Response - * - * - * - * @param alertsCount Ver.: always - * @param alertStructures Ver.: always - */ -bool emberAfApplianceEventsAndAlertClusterGetAlertsResponseCallback(uint8_t alertsCount, uint8_t * alertStructures); -/** @brief Appliance Events and Alert Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfApplianceEventsAndAlertClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Appliance Events and Alert Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfApplianceEventsAndAlertClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Appliance Events and Alert Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfApplianceEventsAndAlertClusterServerInitCallback(uint8_t endpoint); -/** @brief Appliance Events and Alert Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfApplianceEventsAndAlertClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Appliance Events and Alert Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfApplianceEventsAndAlertClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Appliance Events and Alert Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfApplianceEventsAndAlertClusterServerPreAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, - uint8_t size, uint8_t * value); -/** @brief Appliance Events and Alert Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfApplianceEventsAndAlertClusterServerTickCallback(uint8_t endpoint); - -/** @} END Appliance Events and Alert Cluster Callbacks */ - -/** @name Appliance Statistics Cluster Callbacks */ -// @{ - -/** @brief Appliance Statistics Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfApplianceStatisticsClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Appliance Statistics Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfApplianceStatisticsClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Appliance Statistics Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfApplianceStatisticsClusterClientInitCallback(uint8_t endpoint); -/** @brief Appliance Statistics Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfApplianceStatisticsClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Appliance Statistics Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfApplianceStatisticsClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Appliance Statistics Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfApplianceStatisticsClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Appliance Statistics Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfApplianceStatisticsClusterClientTickCallback(uint8_t endpoint); -/** @brief Appliance Statistics Cluster Log Notification - * - * - * - * @param timeStamp Ver.: always - * @param logId Ver.: always - * @param logLength Ver.: always - * @param logPayload Ver.: always - */ -bool emberAfApplianceStatisticsClusterLogNotificationCallback(uint32_t timeStamp, uint32_t logId, uint32_t logLength, - uint8_t * logPayload); -/** @brief Appliance Statistics Cluster Log Queue Request - * - * - * - */ -bool emberAfApplianceStatisticsClusterLogQueueRequestCallback(void); -/** @brief Appliance Statistics Cluster Log Queue Response - * - * - * - * @param logQueueSize Ver.: always - * @param logIds Ver.: always - */ -bool emberAfApplianceStatisticsClusterLogQueueResponseCallback(uint8_t logQueueSize, uint8_t * logIds); -/** @brief Appliance Statistics Cluster Log Request - * - * - * - * @param logId Ver.: always - */ -bool emberAfApplianceStatisticsClusterLogRequestCallback(uint32_t logId); -/** @brief Appliance Statistics Cluster Log Response - * - * - * - * @param timeStamp Ver.: always - * @param logId Ver.: always - * @param logLength Ver.: always - * @param logPayload Ver.: always - */ -bool emberAfApplianceStatisticsClusterLogResponseCallback(uint32_t timeStamp, uint32_t logId, uint32_t logLength, - uint8_t * logPayload); -/** @brief Appliance Statistics Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfApplianceStatisticsClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Appliance Statistics Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfApplianceStatisticsClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Appliance Statistics Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfApplianceStatisticsClusterServerInitCallback(uint8_t endpoint); -/** @brief Appliance Statistics Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfApplianceStatisticsClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Appliance Statistics Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfApplianceStatisticsClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Appliance Statistics Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfApplianceStatisticsClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Appliance Statistics Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfApplianceStatisticsClusterServerTickCallback(uint8_t endpoint); -/** @brief Appliance Statistics Cluster Statistics Available - * - * - * - * @param logQueueSize Ver.: always - * @param logIds Ver.: always - */ -bool emberAfApplianceStatisticsClusterStatisticsAvailableCallback(uint8_t logQueueSize, uint8_t * logIds); - -/** @} END Appliance Statistics Cluster Callbacks */ - -/** @name Electrical Measurement Cluster Callbacks */ -// @{ - -/** @brief Electrical Measurement Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfElectricalMeasurementClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Electrical Measurement Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfElectricalMeasurementClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Electrical Measurement Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfElectricalMeasurementClusterClientInitCallback(uint8_t endpoint); -/** @brief Electrical Measurement Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfElectricalMeasurementClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Electrical Measurement Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfElectricalMeasurementClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Electrical Measurement Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfElectricalMeasurementClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Electrical Measurement Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfElectricalMeasurementClusterClientTickCallback(uint8_t endpoint); -/** @brief Electrical Measurement Cluster Get Measurement Profile Command - * - * - * - * @param attributeId Ver.: always - * @param startTime Ver.: always - * @param numberOfIntervals Ver.: always - */ -bool emberAfElectricalMeasurementClusterGetMeasurementProfileCommandCallback(uint16_t attributeId, uint32_t startTime, - uint8_t numberOfIntervals); -/** @brief Electrical Measurement Cluster Get Measurement Profile Response Command - * - * - * - * @param startTime Ver.: always - * @param status Ver.: always - * @param profileIntervalPeriod Ver.: always - * @param numberOfIntervalsDelivered Ver.: always - * @param attributeId Ver.: always - * @param intervals Ver.: always - */ -bool emberAfElectricalMeasurementClusterGetMeasurementProfileResponseCommandCallback(uint32_t startTime, uint8_t status, - uint8_t profileIntervalPeriod, - uint8_t numberOfIntervalsDelivered, - uint16_t attributeId, uint8_t * intervals); -/** @brief Electrical Measurement Cluster Get Profile Info Command - * - * - * - */ -bool emberAfElectricalMeasurementClusterGetProfileInfoCommandCallback(void); -/** @brief Electrical Measurement Cluster Get Profile Info Response Command - * - * - * - * @param profileCount Ver.: always - * @param profileIntervalPeriod Ver.: always - * @param maxNumberOfIntervals Ver.: always - * @param listOfAttributes Ver.: always - */ -bool emberAfElectricalMeasurementClusterGetProfileInfoResponseCommandCallback(uint8_t profileCount, uint8_t profileIntervalPeriod, - uint8_t maxNumberOfIntervals, - uint8_t * listOfAttributes); -/** @brief Electrical Measurement Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfElectricalMeasurementClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Electrical Measurement Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfElectricalMeasurementClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Electrical Measurement Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfElectricalMeasurementClusterServerInitCallback(uint8_t endpoint); -/** @brief Electrical Measurement Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfElectricalMeasurementClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Electrical Measurement Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfElectricalMeasurementClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Electrical Measurement Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfElectricalMeasurementClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Electrical Measurement Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfElectricalMeasurementClusterServerTickCallback(uint8_t endpoint); - -/** @} END Electrical Measurement Cluster Callbacks */ - -/** @name Diagnostics Cluster Callbacks */ -// @{ - -/** @brief Diagnostics Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfDiagnosticsClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Diagnostics Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfDiagnosticsClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Diagnostics Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfDiagnosticsClusterClientInitCallback(uint8_t endpoint); -/** @brief Diagnostics Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfDiagnosticsClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Diagnostics Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfDiagnosticsClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Diagnostics Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfDiagnosticsClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Diagnostics Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfDiagnosticsClusterClientTickCallback(uint8_t endpoint); -/** @brief Diagnostics Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfDiagnosticsClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Diagnostics Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfDiagnosticsClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Diagnostics Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfDiagnosticsClusterServerInitCallback(uint8_t endpoint); -/** @brief Diagnostics Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfDiagnosticsClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Diagnostics Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfDiagnosticsClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Diagnostics Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfDiagnosticsClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Diagnostics Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfDiagnosticsClusterServerTickCallback(uint8_t endpoint); - -/** @} END Diagnostics Cluster Callbacks */ - -/** @name ZLL Commissioning Cluster Callbacks */ -// @{ - -/** @brief ZLL Commissioning Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfZllCommissioningClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief ZLL Commissioning Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfZllCommissioningClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief ZLL Commissioning Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfZllCommissioningClusterClientInitCallback(uint8_t endpoint); -/** @brief ZLL Commissioning Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfZllCommissioningClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief ZLL Commissioning Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfZllCommissioningClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief ZLL Commissioning Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfZllCommissioningClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief ZLL Commissioning Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfZllCommissioningClusterClientTickCallback(uint8_t endpoint); -/** @brief ZLL Commissioning Cluster Device Information Request - * - * - * - * @param transaction Ver.: always - * @param startIndex Ver.: always - */ -bool emberAfZllCommissioningClusterDeviceInformationRequestCallback(uint32_t transaction, uint8_t startIndex); -/** @brief ZLL Commissioning Cluster Device Information Response - * - * - * - * @param transaction Ver.: always - * @param numberOfSubDevices Ver.: always - * @param startIndex Ver.: always - * @param deviceInformationRecordCount Ver.: always - * @param deviceInformationRecordList Ver.: always - */ -bool emberAfZllCommissioningClusterDeviceInformationResponseCallback(uint32_t transaction, uint8_t numberOfSubDevices, - uint8_t startIndex, uint8_t deviceInformationRecordCount, - uint8_t * deviceInformationRecordList); -/** @brief ZLL Commissioning Cluster Endpoint Information - * - * - * - * @param ieeeAddress Ver.: always - * @param networkAddress Ver.: always - * @param endpointId Ver.: always - * @param profileId Ver.: always - * @param deviceId Ver.: always - * @param version Ver.: always - */ -bool emberAfZllCommissioningClusterEndpointInformationCallback(uint8_t * ieeeAddress, uint16_t networkAddress, uint8_t endpointId, - uint16_t profileId, uint16_t deviceId, uint8_t version); -/** @brief ZLL Commissioning Cluster Get Endpoint List Request - * - * - * - * @param startIndex Ver.: always - */ -bool emberAfZllCommissioningClusterGetEndpointListRequestCallback(uint8_t startIndex); -/** @brief ZLL Commissioning Cluster Get Endpoint List Response - * - * - * - * @param total Ver.: always - * @param startIndex Ver.: always - * @param count Ver.: always - * @param endpointInformationRecordList Ver.: always - */ -bool emberAfZllCommissioningClusterGetEndpointListResponseCallback(uint8_t total, uint8_t startIndex, uint8_t count, - uint8_t * endpointInformationRecordList); -/** @brief ZLL Commissioning Cluster Get Group Identifiers Request - * - * - * - * @param startIndex Ver.: always - */ -bool emberAfZllCommissioningClusterGetGroupIdentifiersRequestCallback(uint8_t startIndex); -/** @brief ZLL Commissioning Cluster Get Group Identifiers Response - * - * - * - * @param total Ver.: always - * @param startIndex Ver.: always - * @param count Ver.: always - * @param groupInformationRecordList Ver.: always - */ -bool emberAfZllCommissioningClusterGetGroupIdentifiersResponseCallback(uint8_t total, uint8_t startIndex, uint8_t count, - uint8_t * groupInformationRecordList); -/** @brief ZLL Commissioning Cluster Identify Request - * - * - * - * @param transaction Ver.: always - * @param identifyDuration Ver.: always - */ -bool emberAfZllCommissioningClusterIdentifyRequestCallback(uint32_t transaction, uint16_t identifyDuration); -/** @brief ZLL Commissioning Cluster Network Join End Device Request - * - * - * - * @param transaction Ver.: always - * @param extendedPanId Ver.: always - * @param keyIndex Ver.: always - * @param encryptedNetworkKey Ver.: always - * @param networkUpdateId Ver.: always - * @param logicalChannel Ver.: always - * @param panId Ver.: always - * @param networkAddress Ver.: always - * @param groupIdentifiersBegin Ver.: always - * @param groupIdentifiersEnd Ver.: always - * @param freeNetworkAddressRangeBegin Ver.: always - * @param freeNetworkAddressRangeEnd Ver.: always - * @param freeGroupIdentifierRangeBegin Ver.: always - * @param freeGroupIdentifierRangeEnd Ver.: always - */ -bool emberAfZllCommissioningClusterNetworkJoinEndDeviceRequestCallback( - uint32_t transaction, uint8_t * extendedPanId, uint8_t keyIndex, uint8_t * encryptedNetworkKey, uint8_t networkUpdateId, - uint8_t logicalChannel, uint16_t panId, uint16_t networkAddress, uint16_t groupIdentifiersBegin, uint16_t groupIdentifiersEnd, - uint16_t freeNetworkAddressRangeBegin, uint16_t freeNetworkAddressRangeEnd, uint16_t freeGroupIdentifierRangeBegin, - uint16_t freeGroupIdentifierRangeEnd); -/** @brief ZLL Commissioning Cluster Network Join End Device Response - * - * - * - * @param transaction Ver.: always - * @param status Ver.: always - */ -bool emberAfZllCommissioningClusterNetworkJoinEndDeviceResponseCallback(uint32_t transaction, uint8_t status); -/** @brief ZLL Commissioning Cluster Network Join Router Request - * - * - * - * @param transaction Ver.: always - * @param extendedPanId Ver.: always - * @param keyIndex Ver.: always - * @param encryptedNetworkKey Ver.: always - * @param networkUpdateId Ver.: always - * @param logicalChannel Ver.: always - * @param panId Ver.: always - * @param networkAddress Ver.: always - * @param groupIdentifiersBegin Ver.: always - * @param groupIdentifiersEnd Ver.: always - * @param freeNetworkAddressRangeBegin Ver.: always - * @param freeNetworkAddressRangeEnd Ver.: always - * @param freeGroupIdentifierRangeBegin Ver.: always - * @param freeGroupIdentifierRangeEnd Ver.: always - */ -bool emberAfZllCommissioningClusterNetworkJoinRouterRequestCallback( - uint32_t transaction, uint8_t * extendedPanId, uint8_t keyIndex, uint8_t * encryptedNetworkKey, uint8_t networkUpdateId, - uint8_t logicalChannel, uint16_t panId, uint16_t networkAddress, uint16_t groupIdentifiersBegin, uint16_t groupIdentifiersEnd, - uint16_t freeNetworkAddressRangeBegin, uint16_t freeNetworkAddressRangeEnd, uint16_t freeGroupIdentifierRangeBegin, - uint16_t freeGroupIdentifierRangeEnd); -/** @brief ZLL Commissioning Cluster Network Join Router Response - * - * - * - * @param transaction Ver.: always - * @param status Ver.: always - */ -bool emberAfZllCommissioningClusterNetworkJoinRouterResponseCallback(uint32_t transaction, uint8_t status); -/** @brief ZLL Commissioning Cluster Network Start Request - * - * - * - * @param transaction Ver.: always - * @param extendedPanId Ver.: always - * @param keyIndex Ver.: always - * @param encryptedNetworkKey Ver.: always - * @param logicalChannel Ver.: always - * @param panId Ver.: always - * @param networkAddress Ver.: always - * @param groupIdentifiersBegin Ver.: always - * @param groupIdentifiersEnd Ver.: always - * @param freeNetworkAddressRangeBegin Ver.: always - * @param freeNetworkAddressRangeEnd Ver.: always - * @param freeGroupIdentifierRangeBegin Ver.: always - * @param freeGroupIdentifierRangeEnd Ver.: always - * @param initiatorIeeeAddress Ver.: always - * @param initiatorNetworkAddress Ver.: always - */ -bool emberAfZllCommissioningClusterNetworkStartRequestCallback( - uint32_t transaction, uint8_t * extendedPanId, uint8_t keyIndex, uint8_t * encryptedNetworkKey, uint8_t logicalChannel, - uint16_t panId, uint16_t networkAddress, uint16_t groupIdentifiersBegin, uint16_t groupIdentifiersEnd, - uint16_t freeNetworkAddressRangeBegin, uint16_t freeNetworkAddressRangeEnd, uint16_t freeGroupIdentifierRangeBegin, - uint16_t freeGroupIdentifierRangeEnd, uint8_t * initiatorIeeeAddress, uint16_t initiatorNetworkAddress); -/** @brief ZLL Commissioning Cluster Network Start Response - * - * - * - * @param transaction Ver.: always - * @param status Ver.: always - * @param extendedPanId Ver.: always - * @param networkUpdateId Ver.: always - * @param logicalChannel Ver.: always - * @param panId Ver.: always - */ -bool emberAfZllCommissioningClusterNetworkStartResponseCallback(uint32_t transaction, uint8_t status, uint8_t * extendedPanId, - uint8_t networkUpdateId, uint8_t logicalChannel, uint16_t panId); -/** @brief ZLL Commissioning Cluster Network Update Request - * - * - * - * @param transaction Ver.: always - * @param extendedPanId Ver.: always - * @param networkUpdateId Ver.: always - * @param logicalChannel Ver.: always - * @param panId Ver.: always - * @param networkAddress Ver.: always - */ -bool emberAfZllCommissioningClusterNetworkUpdateRequestCallback(uint32_t transaction, uint8_t * extendedPanId, - uint8_t networkUpdateId, uint8_t logicalChannel, uint16_t panId, - uint16_t networkAddress); -/** @brief ZLL Commissioning Cluster Reset To Factory New Request - * - * - * - * @param transaction Ver.: always - */ -bool emberAfZllCommissioningClusterResetToFactoryNewRequestCallback(uint32_t transaction); -/** @brief ZLL Commissioning Cluster Scan Request - * - * - * - * @param transaction Ver.: always - * @param zigbeeInformation Ver.: always - * @param zllInformation Ver.: always - */ -bool emberAfZllCommissioningClusterScanRequestCallback(uint32_t transaction, uint8_t zigbeeInformation, uint8_t zllInformation); -/** @brief ZLL Commissioning Cluster Scan Response - * - * - * - * @param transaction Ver.: always - * @param rssiCorrection Ver.: always - * @param zigbeeInformation Ver.: always - * @param zllInformation Ver.: always - * @param keyBitmask Ver.: always - * @param responseId Ver.: always - * @param extendedPanId Ver.: always - * @param networkUpdateId Ver.: always - * @param logicalChannel Ver.: always - * @param panId Ver.: always - * @param networkAddress Ver.: always - * @param numberOfSubDevices Ver.: always - * @param totalGroupIds Ver.: always - * @param endpointId Ver.: always - * @param profileId Ver.: always - * @param deviceId Ver.: always - * @param version Ver.: always - * @param groupIdCount Ver.: always - */ -bool emberAfZllCommissioningClusterScanResponseCallback(uint32_t transaction, uint8_t rssiCorrection, uint8_t zigbeeInformation, - uint8_t zllInformation, uint16_t keyBitmask, uint32_t responseId, - uint8_t * extendedPanId, uint8_t networkUpdateId, uint8_t logicalChannel, - uint16_t panId, uint16_t networkAddress, uint8_t numberOfSubDevices, - uint8_t totalGroupIds, uint8_t endpointId, uint16_t profileId, - uint16_t deviceId, uint8_t version, uint8_t groupIdCount); -/** @brief ZLL Commissioning Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfZllCommissioningClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief ZLL Commissioning Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfZllCommissioningClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief ZLL Commissioning Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfZllCommissioningClusterServerInitCallback(uint8_t endpoint); -/** @brief ZLL Commissioning Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfZllCommissioningClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief ZLL Commissioning Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfZllCommissioningClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief ZLL Commissioning Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfZllCommissioningClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief ZLL Commissioning Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfZllCommissioningClusterServerTickCallback(uint8_t endpoint); - -/** @} END ZLL Commissioning Cluster Callbacks */ - -/** @name Sample Mfg Specific Cluster Cluster Callbacks */ -// @{ - -/** @brief Sample Mfg Specific Cluster Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfSampleMfgSpecificClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Sample Mfg Specific Cluster Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfSampleMfgSpecificClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Sample Mfg Specific Cluster Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfSampleMfgSpecificClusterClientInitCallback(uint8_t endpoint); -/** @brief Sample Mfg Specific Cluster Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfSampleMfgSpecificClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Sample Mfg Specific Cluster Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfSampleMfgSpecificClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Sample Mfg Specific Cluster Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfSampleMfgSpecificClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Sample Mfg Specific Cluster Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfSampleMfgSpecificClusterClientTickCallback(uint8_t endpoint); -/** @brief Sample Mfg Specific Cluster Cluster Command One - * - * - * - * @param argOne Ver.: always - */ -bool emberAfSampleMfgSpecificClusterCommandOneCallback(uint8_t argOne); -/** @brief Sample Mfg Specific Cluster Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfSampleMfgSpecificClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Sample Mfg Specific Cluster Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfSampleMfgSpecificClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Sample Mfg Specific Cluster Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfSampleMfgSpecificClusterServerInitCallback(uint8_t endpoint); -/** @brief Sample Mfg Specific Cluster Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfSampleMfgSpecificClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Sample Mfg Specific Cluster Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfSampleMfgSpecificClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Sample Mfg Specific Cluster Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfSampleMfgSpecificClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Sample Mfg Specific Cluster Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfSampleMfgSpecificClusterServerTickCallback(uint8_t endpoint); - -/** @} END Sample Mfg Specific Cluster Cluster Callbacks */ - -/** @name Sample Mfg Specific Cluster 2 Cluster Callbacks */ -// @{ - -/** @brief Sample Mfg Specific Cluster 2 Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfSampleMfgSpecificCluster2ClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Sample Mfg Specific Cluster 2 Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfSampleMfgSpecificCluster2ClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Sample Mfg Specific Cluster 2 Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfSampleMfgSpecificCluster2ClientInitCallback(uint8_t endpoint); -/** @brief Sample Mfg Specific Cluster 2 Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfSampleMfgSpecificCluster2ClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Sample Mfg Specific Cluster 2 Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfSampleMfgSpecificCluster2ClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Sample Mfg Specific Cluster 2 Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfSampleMfgSpecificCluster2ClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Sample Mfg Specific Cluster 2 Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfSampleMfgSpecificCluster2ClientTickCallback(uint8_t endpoint); -/** @brief Sample Mfg Specific Cluster 2 Cluster Command Two - * - * - * - * @param argOne Ver.: always - */ -bool emberAfSampleMfgSpecificCluster2CommandTwoCallback(uint8_t argOne); -/** @brief Sample Mfg Specific Cluster 2 Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfSampleMfgSpecificCluster2ServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Sample Mfg Specific Cluster 2 Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfSampleMfgSpecificCluster2ServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Sample Mfg Specific Cluster 2 Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfSampleMfgSpecificCluster2ServerInitCallback(uint8_t endpoint); -/** @brief Sample Mfg Specific Cluster 2 Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfSampleMfgSpecificCluster2ServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Sample Mfg Specific Cluster 2 Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfSampleMfgSpecificCluster2ServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Sample Mfg Specific Cluster 2 Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfSampleMfgSpecificCluster2ServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Sample Mfg Specific Cluster 2 Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfSampleMfgSpecificCluster2ServerTickCallback(uint8_t endpoint); - -/** @} END Sample Mfg Specific Cluster 2 Cluster Callbacks */ - -/** @name Configuration Cluster Cluster Callbacks */ -// @{ - -/** @brief Configuration Cluster Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfOtaConfigurationClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Configuration Cluster Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfOtaConfigurationClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Configuration Cluster Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfOtaConfigurationClusterClientInitCallback(uint8_t endpoint); -/** @brief Configuration Cluster Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfOtaConfigurationClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Configuration Cluster Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfOtaConfigurationClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Configuration Cluster Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfOtaConfigurationClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Configuration Cluster Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfOtaConfigurationClusterClientTickCallback(uint8_t endpoint); -/** @brief Configuration Cluster Cluster Lock Tokens - * - * - * - */ -bool emberAfOtaConfigurationClusterLockTokensCallback(void); -/** @brief Configuration Cluster Cluster Read Tokens - * - * - * - * @param token Ver.: always - */ -bool emberAfOtaConfigurationClusterReadTokensCallback(uint16_t token); -/** @brief Configuration Cluster Cluster Return Token - * - * - * - * @param token Ver.: always - * @param data Ver.: always - */ -bool emberAfOtaConfigurationClusterReturnTokenCallback(uint16_t token, uint8_t * data); -/** @brief Configuration Cluster Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfOtaConfigurationClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief Configuration Cluster Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfOtaConfigurationClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief Configuration Cluster Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfOtaConfigurationClusterServerInitCallback(uint8_t endpoint); -/** @brief Configuration Cluster Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfOtaConfigurationClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, - EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief Configuration Cluster Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfOtaConfigurationClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief Configuration Cluster Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfOtaConfigurationClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief Configuration Cluster Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfOtaConfigurationClusterServerTickCallback(uint8_t endpoint); -/** @brief Configuration Cluster Cluster Set Token - * - * - * - * @param token Ver.: always - * @param data Ver.: always - */ -bool emberAfOtaConfigurationClusterSetTokenCallback(uint16_t token, uint8_t * data); -/** @brief Configuration Cluster Cluster Unlock Tokens - * - * - * - * @param data Ver.: always - */ -bool emberAfOtaConfigurationClusterUnlockTokensCallback(uint8_t * data); - -/** @} END Configuration Cluster Cluster Callbacks */ - -/** @name MFGLIB Cluster Cluster Callbacks */ -// @{ - -/** @brief MFGLIB Cluster Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfMfglibClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief MFGLIB Cluster Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfMfglibClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief MFGLIB Cluster Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfMfglibClusterClientInitCallback(uint8_t endpoint); -/** @brief MFGLIB Cluster Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfMfglibClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief MFGLIB Cluster Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfMfglibClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief MFGLIB Cluster Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfMfglibClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief MFGLIB Cluster Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfMfglibClusterClientTickCallback(uint8_t endpoint); -/** @brief MFGLIB Cluster Cluster Rx Mode - * - * - * - * @param channel Ver.: always - * @param power Ver.: always - * @param time Ver.: always - */ -bool emberAfMfglibClusterRxModeCallback(uint8_t channel, int8_t power, uint16_t time); -/** @brief MFGLIB Cluster Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfMfglibClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief MFGLIB Cluster Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfMfglibClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief MFGLIB Cluster Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfMfglibClusterServerInitCallback(uint8_t endpoint); -/** @brief MFGLIB Cluster Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfMfglibClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief MFGLIB Cluster Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfMfglibClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief MFGLIB Cluster Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfMfglibClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief MFGLIB Cluster Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfMfglibClusterServerTickCallback(uint8_t endpoint); -/** @brief MFGLIB Cluster Cluster Stream - * - * - * - * @param channel Ver.: always - * @param power Ver.: always - * @param time Ver.: always - */ -bool emberAfMfglibClusterStreamCallback(uint8_t channel, int8_t power, uint16_t time); -/** @brief MFGLIB Cluster Cluster Tone - * - * - * - * @param channel Ver.: always - * @param power Ver.: always - * @param time Ver.: always - */ -bool emberAfMfglibClusterToneCallback(uint8_t channel, int8_t power, uint16_t time); - -/** @} END MFGLIB Cluster Cluster Callbacks */ - -/** @name SL Works With All Hubs Cluster Callbacks */ -// @{ - -/** @brief SL Works With All Hubs Cluster Aps Ack Enablement Query Response - * - * - * - * @param numberExemptClusters Ver.: always - * @param clusterId Ver.: always - */ -bool emberAfSlWwahClusterApsAckEnablementQueryResponseCallback(uint8_t numberExemptClusters, uint8_t * clusterId); -/** @brief SL Works With All Hubs Cluster Aps Ack Requirement Query - * - * - * - */ -bool emberAfSlWwahClusterApsAckRequirementQueryCallback(void); -/** @brief SL Works With All Hubs Cluster Aps Link Key Authorization Query - * - * - * - * @param clusterId Ver.: always - */ -bool emberAfSlWwahClusterApsLinkKeyAuthorizationQueryCallback(uint16_t clusterId); -/** @brief SL Works With All Hubs Cluster Aps Link Key Authorization Query Response - * - * - * - * @param clusterId Ver.: always - * @param apsLinkKeyAuthStatus Ver.: always - */ -bool emberAfSlWwahClusterApsLinkKeyAuthorizationQueryResponseCallback(uint16_t clusterId, uint8_t apsLinkKeyAuthStatus); -/** @brief SL Works With All Hubs Cluster Clear Binding Table - * - * - * - */ -bool emberAfSlWwahClusterClearBindingTableCallback(void); -/** @brief SL Works With All Hubs Cluster Client Attribute Changed - * - * Client Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfSlWwahClusterClientAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief SL Works With All Hubs Cluster Client Default Response - * - * This function is called when the client receives the default response from - * the server. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfSlWwahClusterClientDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief SL Works With All Hubs Cluster Client Init - * - * Client Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfSlWwahClusterClientInitCallback(uint8_t endpoint); -/** @brief SL Works With All Hubs Cluster Client Manufacturer Specific Attribute Changed - * - * Client Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfSlWwahClusterClientManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief SL Works With All Hubs Cluster Client Message Sent - * - * Client Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfSlWwahClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief SL Works With All Hubs Cluster Client Pre Attribute Changed - * - * Client Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfSlWwahClusterClientPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief SL Works With All Hubs Cluster Client Tick - * - * Client Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfSlWwahClusterClientTickCallback(uint8_t endpoint); -/** @brief SL Works With All Hubs Cluster Debug Report Query - * - * - * - * @param debugReportId Ver.: always - */ -bool emberAfSlWwahClusterDebugReportQueryCallback(uint8_t debugReportId); -/** @brief SL Works With All Hubs Cluster Debug Report Query Response - * - * - * - * @param debugReportId Ver.: always - * @param debugReportData Ver.: always - */ -bool emberAfSlWwahClusterDebugReportQueryResponseCallback(uint8_t debugReportId, uint8_t * debugReportData); -/** @brief SL Works With All Hubs Cluster Disable Aps Link Key Authorization - * - * - * - * @param numberExemptClusters Ver.: always - * @param clusterId Ver.: always - */ -bool emberAfSlWwahClusterDisableApsLinkKeyAuthorizationCallback(uint8_t numberExemptClusters, uint8_t * clusterId); -/** @brief SL Works With All Hubs Cluster Disable Configuration Mode - * - * - * - */ -bool emberAfSlWwahClusterDisableConfigurationModeCallback(void); -/** @brief SL Works With All Hubs Cluster Disable Mgmt Leave Without Rejoin - * - * - * - */ -bool emberAfSlWwahClusterDisableMgmtLeaveWithoutRejoinCallback(void); -/** @brief SL Works With All Hubs Cluster Disable Ota Downgrades - * - * - * - */ -bool emberAfSlWwahClusterDisableOtaDowngradesCallback(void); -/** @brief SL Works With All Hubs Cluster Disable Periodic Router Check Ins - * - * - * - */ -bool emberAfSlWwahClusterDisablePeriodicRouterCheckInsCallback(void); -/** @brief SL Works With All Hubs Cluster Disable Touchlink Interpan Message Support - * - * - * - */ -bool emberAfSlWwahClusterDisableTouchlinkInterpanMessageSupportCallback(void); -/** @brief SL Works With All Hubs Cluster Disable Wwah App Event Retry Algorithm - * - * - * - */ -bool emberAfSlWwahClusterDisableWwahAppEventRetryAlgorithmCallback(void); -/** @brief SL Works With All Hubs Cluster Disable Wwah Bad Parent Recovery - * - * - * - */ -bool emberAfSlWwahClusterDisableWwahBadParentRecoveryCallback(void); -/** @brief SL Works With All Hubs Cluster Disable Wwah Parent Classification - * - * - * - */ -bool emberAfSlWwahClusterDisableWwahParentClassificationCallback(void); -/** @brief SL Works With All Hubs Cluster Disable Wwah Rejoin Algorithm - * - * - * - */ -bool emberAfSlWwahClusterDisableWwahRejoinAlgorithmCallback(void); -/** @brief SL Works With All Hubs Cluster Enable Aps Link Key Authorization - * - * - * - * @param numberExemptClusters Ver.: always - * @param clusterId Ver.: always - */ -bool emberAfSlWwahClusterEnableApsLinkKeyAuthorizationCallback(uint8_t numberExemptClusters, uint8_t * clusterId); -/** @brief SL Works With All Hubs Cluster Enable Configuration Mode - * - * - * - */ -bool emberAfSlWwahClusterEnableConfigurationModeCallback(void); -/** @brief SL Works With All Hubs Cluster Enable Periodic Router Check Ins - * - * - * - * @param checkInInterval Ver.: always - */ -bool emberAfSlWwahClusterEnablePeriodicRouterCheckInsCallback(uint16_t checkInInterval); -/** @brief SL Works With All Hubs Cluster Enable Tc Security On Ntwk Key Rotation - * - * - * - */ -bool emberAfSlWwahClusterEnableTcSecurityOnNtwkKeyRotationCallback(void); -/** @brief SL Works With All Hubs Cluster Enable Wwah App Event Retry Algorithm - * - * - * - * @param firstBackoffTimeSeconds Ver.: always - * @param backoffSeqCommonRatio Ver.: always - * @param maxBackoffTimeSeconds Ver.: always - * @param maxRedeliveryAttempts Ver.: always - */ -bool emberAfSlWwahClusterEnableWwahAppEventRetryAlgorithmCallback(uint8_t firstBackoffTimeSeconds, uint8_t backoffSeqCommonRatio, - uint32_t maxBackoffTimeSeconds, uint8_t maxRedeliveryAttempts); -/** @brief SL Works With All Hubs Cluster Enable Wwah Bad Parent Recovery - * - * - * - */ -bool emberAfSlWwahClusterEnableWwahBadParentRecoveryCallback(void); -/** @brief SL Works With All Hubs Cluster Enable Wwah Parent Classification - * - * - * - */ -bool emberAfSlWwahClusterEnableWwahParentClassificationCallback(void); -/** @brief SL Works With All Hubs Cluster Enable Wwah Rejoin Algorithm - * - * - * - * @param fastRejoinTimeoutSeconds Ver.: always - * @param durationBetweenRejoinsSeconds Ver.: always - * @param fastRejoinFirstBackoffSeconds Ver.: always - * @param maxBackoffTimeSeconds Ver.: always - * @param maxBackoffIterations Ver.: always - */ -bool emberAfSlWwahClusterEnableWwahRejoinAlgorithmCallback(uint16_t fastRejoinTimeoutSeconds, - uint16_t durationBetweenRejoinsSeconds, - uint16_t fastRejoinFirstBackoffSeconds, uint16_t maxBackoffTimeSeconds, - uint16_t maxBackoffIterations); -/** @brief SL Works With All Hubs Cluster New Debug Report Notification - * - * - * - * @param debugReportId Ver.: always - * @param debugReportSize Ver.: always - */ -bool emberAfSlWwahClusterNewDebugReportNotificationCallback(uint8_t debugReportId, uint32_t debugReportSize); -/** @brief SL Works With All Hubs Cluster Power Descriptor Change - * - * - * - * @param currentPowerMode Ver.: always - * @param availablePowerSources Ver.: always - * @param currentPowerSource Ver.: always - * @param currentPowerSourceLevel Ver.: always - */ -bool emberAfSlWwahClusterPowerDescriptorChangeCallback(uint32_t currentPowerMode, uint32_t availablePowerSources, - uint32_t currentPowerSource, uint32_t currentPowerSourceLevel); -/** @brief SL Works With All Hubs Cluster Powering Off Notification - * - * - * - * @param powerNotificationReason Ver.: always - * @param manufacturerId Ver.: always - * @param manufacturerReasonLength Ver.: always - * @param manufacturerReason Ver.: always - */ -bool emberAfSlWwahClusterPoweringOffNotificationCallback(uint8_t powerNotificationReason, uint16_t manufacturerId, - uint8_t manufacturerReasonLength, uint8_t * manufacturerReason); -/** @brief SL Works With All Hubs Cluster Powering On Notification - * - * - * - * @param powerNotificationReason Ver.: always - * @param manufacturerId Ver.: always - * @param manufacturerReasonLength Ver.: always - * @param manufacturerReason Ver.: always - */ -bool emberAfSlWwahClusterPoweringOnNotificationCallback(uint8_t powerNotificationReason, uint16_t manufacturerId, - uint8_t manufacturerReasonLength, uint8_t * manufacturerReason); -/** @brief SL Works With All Hubs Cluster Remove Aps Acks On Unicasts Requirement - * - * - * - */ -bool emberAfSlWwahClusterRemoveApsAcksOnUnicastsRequirementCallback(void); -/** @brief SL Works With All Hubs Cluster Request New Aps Link Key - * - * - * - */ -bool emberAfSlWwahClusterRequestNewApsLinkKeyCallback(void); -/** @brief SL Works With All Hubs Cluster Request Time - * - * - * - */ -bool emberAfSlWwahClusterRequestTimeCallback(void); -/** @brief SL Works With All Hubs Cluster Require Aps Acks On Unicasts - * - * - * - * @param numberExemptClusters Ver.: always - * @param clusterId Ver.: always - */ -bool emberAfSlWwahClusterRequireApsAcksOnUnicastsCallback(uint8_t numberExemptClusters, uint8_t * clusterId); -/** @brief SL Works With All Hubs Cluster Server Attribute Changed - * - * Server Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - */ -void emberAfSlWwahClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId); -/** @brief SL Works With All Hubs Cluster Server Default Response - * - * This function is called when the server receives the default response from - * the client. - * - * @param endpoint Destination endpoint Ver.: always - * @param commandId Command id Ver.: always - * @param status Status in default response Ver.: always - */ -void emberAfSlWwahClusterServerDefaultResponseCallback(uint8_t endpoint, uint8_t commandId, EmberAfStatus status); -/** @brief SL Works With All Hubs Cluster Server Init - * - * Server Init - * - * @param endpoint Endpoint that is being initialized Ver.: always - */ -void emberAfSlWwahClusterServerInitCallback(uint8_t endpoint); -/** @brief SL Works With All Hubs Cluster Server Manufacturer Specific Attribute Changed - * - * Server Manufacturer Specific Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute that changed Ver.: always - * @param manufacturerCode Manufacturer Code of the attribute that changed - * Ver.: always - */ -void emberAfSlWwahClusterServerManufacturerSpecificAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - uint16_t manufacturerCode); -/** @brief SL Works With All Hubs Cluster Server Message Sent - * - * Server Message Sent - * - * @param type The type of message sent Ver.: always - * @param indexOrDestination The destination or address to which the message was - * sent Ver.: always - * @param apsFrame The APS frame for the message Ver.: always - * @param msgLen The length of the message Ver.: always - * @param message The message that was sent Ver.: always - * @param status The status of the sent message Ver.: always - */ -void emberAfSlWwahClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint16_t indexOrDestination, - EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, - EmberStatus status); -/** @brief SL Works With All Hubs Cluster Server Pre Attribute Changed - * - * Server Pre Attribute Changed - * - * @param endpoint Endpoint that is being initialized Ver.: always - * @param attributeId Attribute to be changed Ver.: always - * @param attributeType Attribute type Ver.: always - * @param size Attribute size Ver.: always - * @param value Attribute value Ver.: always - */ -EmberAfStatus emberAfSlWwahClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value); -/** @brief SL Works With All Hubs Cluster Server Tick - * - * Server Tick - * - * @param endpoint Endpoint that is being served Ver.: always - */ -void emberAfSlWwahClusterServerTickCallback(uint8_t endpoint); -/** @brief SL Works With All Hubs Cluster Set Ias Zone Enrollment Method - * - * - * - * @param enrollmentMode Ver.: always - */ -bool emberAfSlWwahClusterSetIasZoneEnrollmentMethodCallback(uint8_t enrollmentMode); -/** @brief SL Works With All Hubs Cluster Set Mac Poll Failure Wait Time - * - * - * - * @param waitTime Ver.: always - */ -bool emberAfSlWwahClusterSetMacPollFailureWaitTimeCallback(uint8_t waitTime); -/** @brief SL Works With All Hubs Cluster Set Pending Network Update - * - * - * - * @param channel Ver.: always - * @param panId Ver.: always - */ -bool emberAfSlWwahClusterSetPendingNetworkUpdateCallback(uint8_t channel, uint16_t panId); -/** @brief SL Works With All Hubs Cluster Short Address Change - * - * - * - * @param deviceEui64 Ver.: always - * @param deviceShort Ver.: always - */ -bool emberAfSlWwahClusterShortAddressChangeCallback(uint8_t * deviceEui64, uint16_t deviceShort); -/** @brief SL Works With All Hubs Cluster Survey Beacons - * - * - * - * @param standardBeacons Ver.: always - */ -bool emberAfSlWwahClusterSurveyBeaconsCallback(uint8_t standardBeacons); -/** @brief SL Works With All Hubs Cluster Survey Beacons Response - * - * - * - * @param numberOfBeacons Ver.: always - * @param beacon Ver.: always - */ -bool emberAfSlWwahClusterSurveyBeaconsResponseCallback(uint8_t numberOfBeacons, uint8_t * beacon); -/** @brief SL Works With All Hubs Cluster Trust Center For Cluster Server Query - * - * - * - */ -bool emberAfSlWwahClusterTrustCenterForClusterServerQueryCallback(void); -/** @brief SL Works With All Hubs Cluster Trust Center For Cluster Server Query Response - * - * - * - * @param numberOfClusters Ver.: always - * @param clusterId Ver.: always - */ -bool emberAfSlWwahClusterTrustCenterForClusterServerQueryResponseCallback(uint8_t numberOfClusters, uint8_t * clusterId); -/** @brief SL Works With All Hubs Cluster Use Trust Center For Cluster Server - * - * - * - * @param numberOfClusters Ver.: always - * @param clusterId Ver.: always - */ -bool emberAfSlWwahClusterUseTrustCenterForClusterServerCallback(uint8_t numberOfClusters, uint8_t * clusterId); -/** @brief SL Works With All Hubs Cluster Use Trust Center For Cluster Server Response - * - * - * - * @param status Ver.: always - * @param clusterStatusLength Ver.: always - * @param clusterStatus Ver.: always - */ -bool emberAfSlWwahClusterUseTrustCenterForClusterServerResponseCallback(uint8_t status, uint8_t clusterStatusLength, - uint8_t * clusterStatus); - -/** @} END SL Works With All Hubs Cluster Callbacks */ - -/** @name Update TC Link Key Plugin Callbacks */ -// @{ - -/** @brief Status - * - * This callback is fired when the Update Link Key exchange process is updated - * with a status from the stack. Implementations will know that the Update TC - * Link Key plugin has completed its link key request when the keyStatus - * parameter is EMBER_VERIFY_LINK_KEY_SUCCESS. - * - * @param keyStatus An ::EmberKeyStatus value describing the success or failure - * of the key exchange process. Ver.: always - */ -void emberAfPluginUpdateTcLinkKeyStatusCallback(EmberKeyStatus keyStatus); -/** @} END Update TC Link Key Plugin Callbacks */ - -/** @name Network Steering Plugin Callbacks */ -// @{ - -/** @brief Complete - * - * This callback is fired when the Network Steering plugin is complete. - * - * @param status On success this will be set to EMBER_SUCCESS to indicate a - * network was joined successfully. On failure this will be the status code of - * the last join or scan attempt. Ver.: always - * @param totalBeacons The total number of 802.15.4 beacons that were heard, - * including beacons from different devices with the same PAN ID. Ver.: always - * @param joinAttempts The number of join attempts that were made to get onto - * an open Zigbee network. Ver.: always - * @param finalState The finishing state of the network steering process. From - * this, one is able to tell on which channel mask and with which key the - * process was complete. Ver.: always - */ -void emberAfPluginNetworkSteeringCompleteCallback(EmberStatus status, uint8_t totalBeacons, uint8_t joinAttempts, - uint8_t finalState); -/** @brief Get Power For Radio Channel - * - * This callback is fired when the Network Steering plugin needs to set the - * power level. The application has the ability to change the max power level - * used for this particular channel. - * - * @param channel The channel that the plugin is inquiring about the power - * level. Ver.: always - */ -int8_t emberAfPluginNetworkSteeringGetPowerForRadioChannelCallback(uint8_t channel); -/** @brief Get Distributed Key - * - * This callback is fired when the Network Steering plugin needs to set the distributed - * key. The application set the distributed key from Zigbee Alliance thru this callback - * or the network steering will use the default test key. - * - * @param pointer to the distributed key struct - * @return true if the key is loaded successfully, otherwise false. - * level. Ver.: always - */ -bool emberAfPluginNetworkSteeringGetDistributedKeyCallback(EmberKeyData * key); -/** @brief Get Node Type - * - * This callback allows the application to set the node type that the network - * steering process will use in joining a network. - * - * @param state The current ::EmberAfPluginNetworkSteeringJoiningState. - * - * @return An ::EmberNodeType value that the network steering process will - * try to join a network as. - */ -EmberNodeType emberAfPluginNetworkSteeringGetNodeTypeCallback(EmberAfPluginNetworkSteeringJoiningState state); -/** @} END Network Steering Plugin Callbacks */ - -/** @name HAL Library Plugin Callbacks */ -// @{ - -/** - * @brief Called whenever the radio is powered on. - */ -void halRadioPowerUpHandler(void); -/** - * @brief Called whenever the radio is powered off. - */ -void halRadioPowerDownHandler(void); -/** - * @brief Called whenever the microcontroller enters/exits a idle/sleep mode - * - * @param enter True if entering idle/sleep, False if exiting - * @param sleepMode Idle/sleep mode - */ -void halSleepCallback(bool enter, SleepModes sleepMode); -/** @} END HAL Library Plugin Callbacks */ - -/** @} END addtogroup */ -#ifdef __cplusplus -} -#endif // #ifdef __cplusplus - -#endif // SILABS_EMBER_AF_CALLBACK_PROTOTYPES diff --git a/examples/wifi-echo/server/esp32/main/gen/cluster-id.h b/examples/wifi-echo/server/esp32/main/gen/cluster-id.h deleted file mode 100644 index 7462d4e9cf279b..00000000000000 --- a/examples/wifi-echo/server/esp32/main/gen/cluster-id.h +++ /dev/null @@ -1,174 +0,0 @@ -/** - * - * 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 SILABS_EMBER_AF_CLUSTER_ID -#define SILABS_EMBER_AF_CLUSTER_ID - -// Cluster domain specification levels: -// * General: zcl-7.0-07-5123-07 -// * Lighting & Occupancy: l&o-1.0-15-0014-04 -// * HA: ha-1.2.1-05-3520-30 -// * Closures: zcl-6.0-15-02018-001 -// * HVAC: zcl-6.0-15-02018-001 -// * Lighting: zcl6-errata-14-0129-15 -// * Measurement & Sensing: zcl-6.0-15-02018-001 -// * Security & Safety: zcl-6.0-15-02018-001 -// * Home Automation: UNKNOWN -// * CBA: cba-1.0-05-3516-12 -// * SE: se-1.2b-15-0131-02 -// * ZLL: zll-1.0-11-0037-10 -// * Telecom Applications: ta-1.0-07-5307-07 -// * Protocol Interfaces: ta-1.0-07-5307-07 -// * Telecommunication: ta-1.0-07-5307-07 -// * Financial: ta-1.0-07-5307-07 -// * Ember: UNKNOWN -// * HC: hc-1.0-07-5360-15 -// * GP: gp-1.0a-09-5499-26 -// * LO: UNKNOWN -// * Works With All Hubs: UNKNOWN -// * WWAH: UNKNOWN -#define ZCL_BASIC_CLUSTER_ID 0x0000 -#define ZCL_POWER_CONFIG_CLUSTER_ID 0x0001 -#define ZCL_DEVICE_TEMP_CLUSTER_ID 0x0002 -#define ZCL_IDENTIFY_CLUSTER_ID 0x0003 -#define ZCL_GROUPS_CLUSTER_ID 0x0004 -#define ZCL_SCENES_CLUSTER_ID 0x0005 -#define ZCL_ON_OFF_CLUSTER_ID 0x0006 -#define ZCL_ON_OFF_SWITCH_CONFIG_CLUSTER_ID 0x0007 -#define ZCL_LEVEL_CONTROL_CLUSTER_ID 0x0008 -#define ZCL_ALARM_CLUSTER_ID 0x0009 -#define ZCL_TIME_CLUSTER_ID 0x000A -#define ZCL_RSSI_LOCATION_CLUSTER_ID 0x000B -#define ZCL_BINARY_INPUT_BASIC_CLUSTER_ID 0x000F -#define ZCL_COMMISSIONING_CLUSTER_ID 0x0015 -#define ZCL_PARTITION_CLUSTER_ID 0x0016 -#define ZCL_OTA_BOOTLOAD_CLUSTER_ID 0x0019 -#define ZCL_POWER_PROFILE_CLUSTER_ID 0x001A -#define ZCL_APPLIANCE_CONTROL_CLUSTER_ID 0x001B -#define ZCL_POLL_CONTROL_CLUSTER_ID 0x0020 -#define ZCL_GREEN_POWER_CLUSTER_ID 0x0021 -#define ZCL_KEEPALIVE_CLUSTER_ID 0x0025 -#define ZCL_SHADE_CONFIG_CLUSTER_ID 0x0100 -#define ZCL_DOOR_LOCK_CLUSTER_ID 0x0101 -#define ZCL_WINDOW_COVERING_CLUSTER_ID 0x0102 -#define ZCL_BARRIER_CONTROL_CLUSTER_ID 0x0103 -#define ZCL_PUMP_CONFIG_CONTROL_CLUSTER_ID 0x0200 -#define ZCL_THERMOSTAT_CLUSTER_ID 0x0201 -#define ZCL_FAN_CONTROL_CLUSTER_ID 0x0202 -#define ZCL_DEHUMID_CONTROL_CLUSTER_ID 0x0203 -#define ZCL_THERMOSTAT_UI_CONFIG_CLUSTER_ID 0x0204 -#define ZCL_COLOR_CONTROL_CLUSTER_ID 0x0300 -#define ZCL_BALLAST_CONFIGURATION_CLUSTER_ID 0x0301 -#define ZCL_ILLUM_MEASUREMENT_CLUSTER_ID 0x0400 -#define ZCL_ILLUM_LEVEL_SENSING_CLUSTER_ID 0x0401 -#define ZCL_TEMP_MEASUREMENT_CLUSTER_ID 0x0402 -#define ZCL_PRESSURE_MEASUREMENT_CLUSTER_ID 0x0403 -#define ZCL_FLOW_MEASUREMENT_CLUSTER_ID 0x0404 -#define ZCL_RELATIVE_HUMIDITY_MEASUREMENT_CLUSTER_ID 0x0405 -#define ZCL_OCCUPANCY_SENSING_CLUSTER_ID 0x0406 -#define ZCL_CARBON_MONOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_ID 0x040C -#define ZCL_CARBON_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_ID 0x040D -#define ZCL_ETHYLENE_CONCENTRATION_MEASUREMENT_CLUSTER_ID 0x040E -#define ZCL_ETHYLENE_OXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_ID 0x040F -#define ZCL_HYDROGEN_CONCENTRATION_MEASUREMENT_CLUSTER_ID 0x0410 -#define ZCL_HYDROGEN_SULPHIDE_CONCENTRATION_MEASUREMENT_CLUSTER_ID 0x0411 -#define ZCL_NITRIC_OXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_ID 0x0412 -#define ZCL_NITROGEN_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_ID 0x0413 -#define ZCL_OXYGEN_CONCENTRATION_MEASUREMENT_CLUSTER_ID 0x0414 -#define ZCL_OZONE_CONCENTRATION_MEASUREMENT_CLUSTER_ID 0x0415 -#define ZCL_SULFUR_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_ID 0x0416 -#define ZCL_DISSOLVED_OXYGEN_CONCENTRATION_MEASUREMENT_CLUSTER_ID 0x0417 -#define ZCL_BROMATE_CONCENTRATION_MEASUREMENT_CLUSTER_ID 0x0418 -#define ZCL_CHLORAMINES_CONCENTRATION_MEASUREMENT_CLUSTER_ID 0x0419 -#define ZCL_CHLORINE_CONCENTRATION_MEASUREMENT_CLUSTER_ID 0x041A -#define ZCL_FECAL_COLIFORM_AND_E_COLI_CONCENTRATION_MEASUREMENT_CLUSTER_ID 0x041B -#define ZCL_FLUORIDE_CONCENTRATION_MEASUREMENT_CLUSTER_ID 0x041C -#define ZCL_HALOACETIC_ACIDS_CONCENTRATION_MEASUREMENT_CLUSTER_ID 0x041D -#define ZCL_TOTAL_TRIHALOMETHANES_CONCENTRATION_MEASUREMENT_CLUSTER_ID 0x041E -#define ZCL_TOTAL_COLIFORM_BACTERIA_CONCENTRATION_MEASUREMENT_CLUSTER_ID 0x041F -#define ZCL_TURBIDITY_CONCENTRATION_MEASUREMENT_CLUSTER_ID 0x0420 -#define ZCL_COPPER_CONCENTRATION_MEASUREMENT_CLUSTER_ID 0x0421 -#define ZCL_LEAD_CONCENTRATION_MEASUREMENT_CLUSTER_ID 0x0422 -#define ZCL_MANGANESE_CONCENTRATION_MEASUREMENT_CLUSTER_ID 0x0423 -#define ZCL_SULFATE_CONCENTRATION_MEASUREMENT_CLUSTER_ID 0x0424 -#define ZCL_BROMODICHLOROMETHANE_CONCENTRATION_MEASUREMENT_CLUSTER_ID 0x0425 -#define ZCL_BROMOFORM_CONCENTRATION_MEASUREMENT_CLUSTER_ID 0x0426 -#define ZCL_CHLORODIBROMOMETHANE_CONCENTRATION_MEASUREMENT_CLUSTER_ID 0x0427 -#define ZCL_CHLOROFORM_CONCENTRATION_MEASUREMENT_CLUSTER_ID 0x0428 -#define ZCL_SODIUM_CONCENTRATION_MEASUREMENT_CLUSTER_ID 0x0429 -#define ZCL_IAS_ZONE_CLUSTER_ID 0x0500 -#define ZCL_IAS_ACE_CLUSTER_ID 0x0501 -#define ZCL_IAS_WD_CLUSTER_ID 0x0502 -#define ZCL_GENERIC_TUNNEL_CLUSTER_ID 0x0600 -#define ZCL_BACNET_PROTOCOL_TUNNEL_CLUSTER_ID 0x0601 -#define ZCL_11073_PROTOCOL_TUNNEL_CLUSTER_ID 0x0614 -#define ZCL_ISO7816_PROTOCOL_TUNNEL_CLUSTER_ID 0x0615 -#define ZCL_PRICE_CLUSTER_ID 0x0700 -#define ZCL_DEMAND_RESPONSE_LOAD_CONTROL_CLUSTER_ID 0x0701 -#define ZCL_SIMPLE_METERING_CLUSTER_ID 0x0702 -#define ZCL_MESSAGING_CLUSTER_ID 0x0703 -#define ZCL_TUNNELING_CLUSTER_ID 0x0704 -#define ZCL_PREPAYMENT_CLUSTER_ID 0x0705 -#define ZCL_ENERGY_MANAGEMENT_CLUSTER_ID 0x0706 -#define ZCL_CALENDAR_CLUSTER_ID 0x0707 -#define ZCL_DEVICE_MANAGEMENT_CLUSTER_ID 0x0708 -#define ZCL_EVENTS_CLUSTER_ID 0x0709 -#define ZCL_MDU_PAIRING_CLUSTER_ID 0x070A -#define ZCL_SUB_GHZ_CLUSTER_ID 0x070B -#define ZCL_KEY_ESTABLISHMENT_CLUSTER_ID 0x0800 -#define ZCL_INFORMATION_CLUSTER_ID 0x0900 -#define ZCL_DATA_SHARING_CLUSTER_ID 0x0901 -#define ZCL_GAMING_CLUSTER_ID 0x0902 -#define ZCL_DATA_RATE_CONTROL_CLUSTER_ID 0x0903 -#define ZCL_VOICE_OVER_ZIGBEE_CLUSTER_ID 0x0904 -#define ZCL_CHATTING_CLUSTER_ID 0x0905 -#define ZCL_PAYMENT_CLUSTER_ID 0x0A01 -#define ZCL_BILLING_CLUSTER_ID 0x0A02 -#define ZCL_APPLIANCE_IDENTIFICATION_CLUSTER_ID 0x0B00 -#define ZCL_METER_IDENTIFICATION_CLUSTER_ID 0x0B01 -#define ZCL_APPLIANCE_EVENTS_AND_ALERT_CLUSTER_ID 0x0B02 -#define ZCL_APPLIANCE_STATISTICS_CLUSTER_ID 0x0B03 -#define ZCL_ELECTRICAL_MEASUREMENT_CLUSTER_ID 0x0B04 -#define ZCL_DIAGNOSTICS_CLUSTER_ID 0x0B05 -#define ZCL_ZLL_COMMISSIONING_CLUSTER_ID 0x1000 -#define ZCL_SAMPLE_MFG_SPECIFIC_CLUSTER_ID 0xFC00 -#define ZCL_SAMPLE_MFG_SPECIFIC_CLUSTER_2_ID 0xFC00 -#define ZCL_OTA_CONFIGURATION_CLUSTER_ID 0xFC01 -#define ZCL_MFGLIB_CLUSTER_ID 0xFC02 -#define ZCL_SL_WWAH_CLUSTER_ID 0xFC57 -#endif // SILABS_EMBER_AF_CLUSTER_ID diff --git a/examples/wifi-echo/server/esp32/main/gen/clusters-callback-stubs.c b/examples/wifi-echo/server/esp32/main/gen/clusters-callback-stubs.c deleted file mode 100644 index 276f7dc8a76042..00000000000000 --- a/examples/wifi-echo/server/esp32/main/gen/clusters-callback-stubs.c +++ /dev/null @@ -1,92 +0,0 @@ -/** - * - * 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. - */ - -// This callback file is created for your convenience. You may add application -// code to this file. If you regenerate this file over a previous version, the -// previous version will be overwritten and any code you have added will be -// lost. - -#include "af.h" - -/** @brief Identify Cluster Identify Query Response - * - * - * - * @param timeout Ver.: always - */ -bool emberAfIdentifyClusterIdentifyQueryResponseCallback(uint16_t timeout) -{ - return false; -} - -/** @brief Door Lock Cluster Get Log Record - * - * - * - * @param logIndex Ver.: always - */ -bool emberAfDoorLockClusterGetLogRecordCallback(uint16_t logIndex) -{ - return false; -} - -/** @brief IAS Zone Cluster Zone Enroll Request - * - * - * - * @param zoneType Ver.: always - * @param manufacturerCode Ver.: always - */ -bool emberAfIasZoneClusterZoneEnrollRequestCallback(uint16_t zoneType, uint16_t manufacturerCode) -{ - return false; -} - -/** @brief IAS Zone Cluster Zone Status Change Notification - * - * - * - * @param zoneStatus Ver.: always - * @param extendedStatus Ver.: always - * @param zoneId Ver.: since ha-1.2-05-3520-29 - * @param delay Ver.: since ha-1.2-05-3520-29 - */ -bool emberAfIasZoneClusterZoneStatusChangeNotificationCallback(uint16_t zoneStatus, uint8_t extendedStatus, uint8_t zoneId, - uint16_t delay) -{ - return false; -} - -// endpoint_config.h callbacks, grep'd from SDK, comment these out as clusters come in - -void emberAfIasZoneClusterClientInitCallback(uint8_t endpoint) {} - -void emberAfPollControlClusterServerAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId) {} -void emberAfPollControlClusterServerInitCallback(uint8_t endpoint) {} -void emberAfPluginPollControlServerStackStatusCallback(EmberStatus status) {} -EmberAfStatus emberAfPollControlClusterServerPreAttributeChangedCallback(uint8_t endpoint, EmberAfAttributeId attributeId, - EmberAfAttributeType attributeType, uint8_t size, - uint8_t * value) -{ - return EMBER_ZCL_STATUS_SUCCESS; -} - -void emberAfPluginIasZoneClientZdoCallback(EmberNodeId emberNodeId, EmberApsFrame * apsFrame, uint8_t * message, uint16_t length) {} - -void emberAfPluginIasZoneClientWriteAttributesResponseCallback(EmberAfClusterId clusterId, uint8_t * buffer, uint16_t bufLen) {} - -void emberAfPluginIasZoneClientReadAttributesResponseCallback(EmberAfClusterId clusterId, uint8_t * buffer, uint16_t bufLen) {} diff --git a/examples/wifi-echo/server/esp32/main/gen/command-id.h b/examples/wifi-echo/server/esp32/main/gen/command-id.h deleted file mode 100644 index 823914d0466035..00000000000000 --- a/examples/wifi-echo/server/esp32/main/gen/command-id.h +++ /dev/null @@ -1,1037 +0,0 @@ -/** - * - * 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 SILABS_EMBER_AF_COMMAND_ID -#define SILABS_EMBER_AF_COMMAND_ID - -// Global commands - -// Either direction -#define ZCL_READ_ATTRIBUTES_COMMAND_ID 0x00 // Ver.: always -#define ZCL_READ_ATTRIBUTES_RESPONSE_COMMAND_ID 0x01 // Ver.: always -#define ZCL_WRITE_ATTRIBUTES_COMMAND_ID 0x02 // Ver.: always -#define ZCL_WRITE_ATTRIBUTES_UNDIVIDED_COMMAND_ID 0x03 // Ver.: always -#define ZCL_WRITE_ATTRIBUTES_RESPONSE_COMMAND_ID 0x04 // Ver.: always -#define ZCL_WRITE_ATTRIBUTES_NO_RESPONSE_COMMAND_ID 0x05 // Ver.: always -#define ZCL_CONFIGURE_REPORTING_COMMAND_ID 0x06 // Ver.: always -#define ZCL_CONFIGURE_REPORTING_RESPONSE_COMMAND_ID 0x07 // Ver.: always -#define ZCL_READ_REPORTING_CONFIGURATION_COMMAND_ID 0x08 // Ver.: always -#define ZCL_READ_REPORTING_CONFIGURATION_RESPONSE_COMMAND_ID 0x09 // Ver.: always -#define ZCL_REPORT_ATTRIBUTES_COMMAND_ID 0x0A // Ver.: always -#define ZCL_DEFAULT_RESPONSE_COMMAND_ID 0x0B // Ver.: always -#define ZCL_DISCOVER_ATTRIBUTES_COMMAND_ID 0x0C // Ver.: always -#define ZCL_DISCOVER_ATTRIBUTES_RESPONSE_COMMAND_ID 0x0D // Ver.: always -#define ZCL_READ_ATTRIBUTES_STRUCTURED_COMMAND_ID 0x0E // Ver.: always -#define ZCL_WRITE_ATTRIBUTES_STRUCTURED_COMMAND_ID 0x0F // Ver.: always -#define ZCL_WRITE_ATTRIBUTES_STRUCTURED_RESPONSE_COMMAND_ID 0x10 // Ver.: always -#define ZCL_DISCOVER_COMMANDS_RECEIVED_COMMAND_ID 0x11 // Ver.: always -#define ZCL_DISCOVER_COMMANDS_RECEIVED_RESPONSE_COMMAND_ID 0x12 // Ver.: always -#define ZCL_DISCOVER_COMMANDS_GENERATED_COMMAND_ID 0x13 // Ver.: always -#define ZCL_DISCOVER_COMMANDS_GENERATED_RESPONSE_COMMAND_ID 0x14 // Ver.: always -#define ZCL_DISCOVER_ATTRIBUTES_EXTENDED_COMMAND_ID 0x15 // Ver.: always -#define ZCL_DISCOVER_ATTRIBUTES_EXTENDED_RESPONSE_COMMAND_ID 0x16 // Ver.: always -// Command types for cluster: Basic -// Cluster specification level: zcl-7.0-07-5123-07 - -// Server to client -#define ZCL_GET_LOCALES_SUPPORTED_RESPONSE_COMMAND_ID 0x01 // Ver.: always - -// Client to server -#define ZCL_RESET_TO_FACTORY_DEFAULTS_COMMAND_ID 0x00 // Ver.: always -#define ZCL_GET_LOCALES_SUPPORTED_COMMAND_ID 0x01 // Ver.: always - -// Command types for cluster: Identify -// Cluster specification level: zcl-7.0-07-5123-07 - -// Server to client -#define ZCL_IDENTIFY_QUERY_RESPONSE_COMMAND_ID 0x00 // Ver.: always - -// Client to server -#define ZCL_IDENTIFY_COMMAND_ID 0x00 // Ver.: always -#define ZCL_IDENTIFY_QUERY_COMMAND_ID 0x01 // Ver.: always -#define ZCL_E_Z_MODE_INVOKE_COMMAND_ID 0x02 // Ver.: always -#define ZCL_UPDATE_COMMISSION_STATE_COMMAND_ID 0x03 // Ver.: always -#define ZCL_TRIGGER_EFFECT_COMMAND_ID 0x40 // Ver.: since zll-1.0-11-0037-10 - -// Command types for cluster: Groups -// Cluster specification level: zcl-7.0-07-5123-07 - -// Server to client -#define ZCL_ADD_GROUP_RESPONSE_COMMAND_ID 0x00 // Ver.: always -#define ZCL_VIEW_GROUP_RESPONSE_COMMAND_ID 0x01 // Ver.: always -#define ZCL_GET_GROUP_MEMBERSHIP_RESPONSE_COMMAND_ID 0x02 // Ver.: always -#define ZCL_REMOVE_GROUP_RESPONSE_COMMAND_ID 0x03 // Ver.: always - -// Client to server -#define ZCL_ADD_GROUP_COMMAND_ID 0x00 // Ver.: always -#define ZCL_VIEW_GROUP_COMMAND_ID 0x01 // Ver.: always -#define ZCL_GET_GROUP_MEMBERSHIP_COMMAND_ID 0x02 // Ver.: always -#define ZCL_REMOVE_GROUP_COMMAND_ID 0x03 // Ver.: always -#define ZCL_REMOVE_ALL_GROUPS_COMMAND_ID 0x04 // Ver.: always -#define ZCL_ADD_GROUP_IF_IDENTIFYING_COMMAND_ID 0x05 // Ver.: always - -// Command types for cluster: Scenes -// Cluster specification level: zcl-7.0-07-5123-07 - -// Server to client -#define ZCL_ADD_SCENE_RESPONSE_COMMAND_ID 0x00 // Ver.: always -#define ZCL_VIEW_SCENE_RESPONSE_COMMAND_ID 0x01 // Ver.: always -#define ZCL_REMOVE_SCENE_RESPONSE_COMMAND_ID 0x02 // Ver.: always -#define ZCL_REMOVE_ALL_SCENES_RESPONSE_COMMAND_ID 0x03 // Ver.: always -#define ZCL_STORE_SCENE_RESPONSE_COMMAND_ID 0x04 // Ver.: always -#define ZCL_GET_SCENE_MEMBERSHIP_RESPONSE_COMMAND_ID 0x06 // Ver.: always -#define ZCL_ENHANCED_ADD_SCENE_RESPONSE_COMMAND_ID 0x40 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_ENHANCED_VIEW_SCENE_RESPONSE_COMMAND_ID 0x41 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_COPY_SCENE_RESPONSE_COMMAND_ID 0x42 // Ver.: since zll-1.0-11-0037-10 - -// Client to server -#define ZCL_ADD_SCENE_COMMAND_ID 0x00 // Ver.: always -#define ZCL_VIEW_SCENE_COMMAND_ID 0x01 // Ver.: always -#define ZCL_REMOVE_SCENE_COMMAND_ID 0x02 // Ver.: always -#define ZCL_REMOVE_ALL_SCENES_COMMAND_ID 0x03 // Ver.: always -#define ZCL_STORE_SCENE_COMMAND_ID 0x04 // Ver.: always -#define ZCL_RECALL_SCENE_COMMAND_ID 0x05 // Ver.: always -#define ZCL_GET_SCENE_MEMBERSHIP_COMMAND_ID 0x06 // Ver.: always -#define ZCL_ENHANCED_ADD_SCENE_COMMAND_ID 0x40 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_ENHANCED_VIEW_SCENE_COMMAND_ID 0x41 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_COPY_SCENE_COMMAND_ID 0x42 // Ver.: since zll-1.0-11-0037-10 - -// Command types for cluster: On/off -// Cluster specification level: zcl-7.0-07-5123-07 - -// Client to server -#define ZCL_OFF_COMMAND_ID 0x00 // Ver.: always -#define ZCL_ON_COMMAND_ID 0x01 // Ver.: always -#define ZCL_TOGGLE_COMMAND_ID 0x02 // Ver.: always -#define ZCL_OFF_WITH_EFFECT_COMMAND_ID 0x40 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_ON_WITH_RECALL_GLOBAL_SCENE_COMMAND_ID 0x41 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_ON_WITH_TIMED_OFF_COMMAND_ID 0x42 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_SAMPLE_MFG_SPECIFIC_OFF_WITH_TRANSITION_COMMAND_ID 0x00 // Ver.: always mfgCode: 0x1002 -#define ZCL_SAMPLE_MFG_SPECIFIC_ON_WITH_TRANSITION_COMMAND_ID 0x01 // Ver.: always mfgCode: 0x1002 -#define ZCL_SAMPLE_MFG_SPECIFIC_TOGGLE_WITH_TRANSITION_COMMAND_ID 0x02 // Ver.: always mfgCode: 0x1002 -#define ZCL_SAMPLE_MFG_SPECIFIC_ON_WITH_TRANSITION2_COMMAND_ID 0x01 // Ver.: always mfgCode: 0x1049 -#define ZCL_SAMPLE_MFG_SPECIFIC_TOGGLE_WITH_TRANSITION2_COMMAND_ID 0x02 // Ver.: always mfgCode: 0x1049 - -// Command types for cluster: Level Control -// Cluster specification level: zcl-7.0-07-5123-07 - -// Client to server -#define ZCL_MOVE_TO_LEVEL_COMMAND_ID 0x00 // Ver.: always -#define ZCL_MOVE_COMMAND_ID 0x01 // Ver.: always -#define ZCL_STEP_COMMAND_ID 0x02 // Ver.: always -#define ZCL_STOP_COMMAND_ID 0x03 // Ver.: always -#define ZCL_MOVE_TO_LEVEL_WITH_ON_OFF_COMMAND_ID 0x04 // Ver.: always -#define ZCL_MOVE_WITH_ON_OFF_COMMAND_ID 0x05 // Ver.: always -#define ZCL_STEP_WITH_ON_OFF_COMMAND_ID 0x06 // Ver.: always -#define ZCL_STOP_WITH_ON_OFF_COMMAND_ID 0x07 // Ver.: always - -// Command types for cluster: Alarms -// Cluster specification level: zcl-7.0-07-5123-07 - -// Server to client -#define ZCL_ALARM_COMMAND_ID 0x00 // Ver.: always -#define ZCL_GET_ALARM_RESPONSE_COMMAND_ID 0x01 // Ver.: always - -// Client to server -#define ZCL_RESET_ALARM_COMMAND_ID 0x00 // Ver.: always -#define ZCL_RESET_ALL_ALARMS_COMMAND_ID 0x01 // Ver.: always -#define ZCL_GET_ALARM_COMMAND_ID 0x02 // Ver.: always -#define ZCL_RESET_ALARM_LOG_COMMAND_ID 0x03 // Ver.: always - -// Command types for cluster: RSSI Location -// Cluster specification level: zcl-7.0-07-5123-07 - -// Server to client -#define ZCL_DEVICE_CONFIGURATION_RESPONSE_COMMAND_ID 0x00 // Ver.: always -#define ZCL_LOCATION_DATA_RESPONSE_COMMAND_ID 0x01 // Ver.: always -#define ZCL_LOCATION_DATA_NOTIFICATION_COMMAND_ID 0x02 // Ver.: always -#define ZCL_COMPACT_LOCATION_DATA_NOTIFICATION_COMMAND_ID 0x03 // Ver.: always -#define ZCL_RSSI_PING_COMMAND_ID 0x04 // Ver.: always -#define ZCL_RSSI_REQUEST_COMMAND_ID 0x05 // Ver.: always -#define ZCL_REPORT_RSSI_MEASUREMENTS_COMMAND_ID 0x06 // Ver.: always -#define ZCL_REQUEST_OWN_LOCATION_COMMAND_ID 0x07 // Ver.: always - -// Client to server -#define ZCL_SET_ABSOLUTE_LOCATION_COMMAND_ID 0x00 // Ver.: always -#define ZCL_SET_DEVICE_CONFIGURATION_COMMAND_ID 0x01 // Ver.: always -#define ZCL_GET_DEVICE_CONFIGURATION_COMMAND_ID 0x02 // Ver.: always -#define ZCL_GET_LOCATION_DATA_COMMAND_ID 0x03 // Ver.: always -#define ZCL_RSSI_RESPONSE_COMMAND_ID 0x04 // Ver.: always -#define ZCL_SEND_PINGS_COMMAND_ID 0x05 // Ver.: always -#define ZCL_ANCHOR_NODE_ANNOUNCE_COMMAND_ID 0x06 // Ver.: always - -// Command types for cluster: Commissioning -// Cluster specification level: zcl-7.0-07-5123-07 - -// Server to client -#define ZCL_RESTART_DEVICE_RESPONSE_COMMAND_ID 0x00 // Ver.: always -#define ZCL_SAVE_STARTUP_PARAMETERS_RESPONSE_COMMAND_ID 0x01 // Ver.: always -#define ZCL_RESTORE_STARTUP_PARAMETERS_RESPONSE_COMMAND_ID 0x02 // Ver.: always -#define ZCL_RESET_STARTUP_PARAMETERS_RESPONSE_COMMAND_ID 0x03 // Ver.: always - -// Client to server -#define ZCL_RESTART_DEVICE_COMMAND_ID 0x00 // Ver.: always -#define ZCL_SAVE_STARTUP_PARAMETERS_COMMAND_ID 0x01 // Ver.: always -#define ZCL_RESTORE_STARTUP_PARAMETERS_COMMAND_ID 0x02 // Ver.: always -#define ZCL_RESET_STARTUP_PARAMETERS_COMMAND_ID 0x03 // Ver.: always - -// Command types for cluster: Partition -// Cluster specification level: zcl-7.0-07-5123-07 - -// Server to client -#define ZCL_MULTIPLE_ACK_COMMAND_ID 0x00 // Ver.: always -#define ZCL_READ_HANDSHAKE_PARAM_RESPONSE_COMMAND_ID 0x01 // Ver.: always - -// Client to server -#define ZCL_TRANSFER_PARTITIONED_FRAME_COMMAND_ID 0x00 // Ver.: always -#define ZCL_READ_HANDSHAKE_PARAM_COMMAND_ID 0x01 // Ver.: always -#define ZCL_WRITE_HANDSHAKE_PARAM_COMMAND_ID 0x02 // Ver.: always - -// Command types for cluster: Over the Air Bootloading -// Cluster specification level: zcl-7.0-07-5123-07 - -// Server to client -#define ZCL_IMAGE_NOTIFY_COMMAND_ID 0x00 // Ver.: always -#define ZCL_QUERY_NEXT_IMAGE_RESPONSE_COMMAND_ID 0x02 // Ver.: always -#define ZCL_IMAGE_BLOCK_RESPONSE_COMMAND_ID 0x05 // Ver.: always -#define ZCL_UPGRADE_END_RESPONSE_COMMAND_ID 0x07 // Ver.: always -#define ZCL_QUERY_SPECIFIC_FILE_RESPONSE_COMMAND_ID 0x09 // Ver.: always - -// Client to server -#define ZCL_QUERY_NEXT_IMAGE_REQUEST_COMMAND_ID 0x01 // Ver.: always -#define ZCL_IMAGE_BLOCK_REQUEST_COMMAND_ID 0x03 // Ver.: always -#define ZCL_IMAGE_PAGE_REQUEST_COMMAND_ID 0x04 // Ver.: always -#define ZCL_UPGRADE_END_REQUEST_COMMAND_ID 0x06 // Ver.: always -#define ZCL_QUERY_SPECIFIC_FILE_REQUEST_COMMAND_ID 0x08 // Ver.: always - -// Command types for cluster: Power Profile -// Cluster specification level: zcl-7.0-07-5123-07 - -// Server to client -#define ZCL_POWER_PROFILE_NOTIFICATION_COMMAND_ID 0x00 // Ver.: always -#define ZCL_POWER_PROFILE_RESPONSE_COMMAND_ID 0x01 // Ver.: always -#define ZCL_POWER_PROFILE_STATE_RESPONSE_COMMAND_ID 0x02 // Ver.: always -#define ZCL_GET_POWER_PROFILE_PRICE_COMMAND_ID 0x03 // Ver.: always -#define ZCL_POWER_PROFILES_STATE_NOTIFICATION_COMMAND_ID 0x04 // Ver.: always -#define ZCL_GET_OVERALL_SCHEDULE_PRICE_COMMAND_ID 0x05 // Ver.: always -#define ZCL_ENERGY_PHASES_SCHEDULE_REQUEST_COMMAND_ID 0x06 // Ver.: always -#define ZCL_ENERGY_PHASES_SCHEDULE_STATE_RESPONSE_COMMAND_ID 0x07 // Ver.: always -#define ZCL_ENERGY_PHASES_SCHEDULE_STATE_NOTIFICATION_COMMAND_ID 0x08 // Ver.: always -#define ZCL_POWER_PROFILE_SCHEDULE_CONSTRAINTS_NOTIFICATION_COMMAND_ID 0x09 // Ver.: always -#define ZCL_POWER_PROFILE_SCHEDULE_CONSTRAINTS_RESPONSE_COMMAND_ID 0x0A // Ver.: always -#define ZCL_GET_POWER_PROFILE_PRICE_EXTENDED_COMMAND_ID 0x0B // Ver.: always - -// Client to server -#define ZCL_POWER_PROFILE_REQUEST_COMMAND_ID 0x00 // Ver.: always -#define ZCL_POWER_PROFILE_STATE_REQUEST_COMMAND_ID 0x01 // Ver.: always -#define ZCL_GET_POWER_PROFILE_PRICE_RESPONSE_COMMAND_ID 0x02 // Ver.: always -#define ZCL_GET_OVERALL_SCHEDULE_PRICE_RESPONSE_COMMAND_ID 0x03 // Ver.: always -#define ZCL_ENERGY_PHASES_SCHEDULE_NOTIFICATION_COMMAND_ID 0x04 // Ver.: always -#define ZCL_ENERGY_PHASES_SCHEDULE_RESPONSE_COMMAND_ID 0x05 // Ver.: always -#define ZCL_POWER_PROFILE_SCHEDULE_CONSTRAINTS_REQUEST_COMMAND_ID 0x06 // Ver.: always -#define ZCL_ENERGY_PHASES_SCHEDULE_STATE_REQUEST_COMMAND_ID 0x07 // Ver.: always -#define ZCL_GET_POWER_PROFILE_PRICE_EXTENDED_RESPONSE_COMMAND_ID 0x08 // Ver.: always - -// Command types for cluster: Appliance Control -// Cluster specification level: zcl-7.0-07-5123-07 - -// Server to client -#define ZCL_SIGNAL_STATE_RESPONSE_COMMAND_ID 0x00 // Ver.: always -#define ZCL_SIGNAL_STATE_NOTIFICATION_COMMAND_ID 0x01 // Ver.: always - -// Client to server -#define ZCL_EXECUTION_OF_A_COMMAND_COMMAND_ID 0x00 // Ver.: always -#define ZCL_SIGNAL_STATE_COMMAND_ID 0x01 // Ver.: always -#define ZCL_WRITE_FUNCTIONS_COMMAND_ID 0x02 // Ver.: always -#define ZCL_OVERLOAD_PAUSE_RESUME_COMMAND_ID 0x03 // Ver.: always -#define ZCL_OVERLOAD_PAUSE_COMMAND_ID 0x04 // Ver.: always -#define ZCL_OVERLOAD_WARNING_COMMAND_ID 0x05 // Ver.: always - -// Command types for cluster: Poll Control -// Cluster specification level: zcl-7.0-07-5123-07 - -// Server to client -#define ZCL_CHECK_IN_COMMAND_ID 0x00 // Ver.: always - -// Client to server -#define ZCL_CHECK_IN_RESPONSE_COMMAND_ID 0x00 // Ver.: always -#define ZCL_FAST_POLL_STOP_COMMAND_ID 0x01 // Ver.: always -#define ZCL_SET_LONG_POLL_INTERVAL_COMMAND_ID 0x02 // Ver.: always -#define ZCL_SET_SHORT_POLL_INTERVAL_COMMAND_ID 0x03 // Ver.: always - -// Command types for cluster: Green Power -// Cluster specification level: gp-1.0a-09-5499-26 - -// Server to client -#define ZCL_GP_NOTIFICATION_RESPONSE_COMMAND_ID 0x00 // Ver.: since gp-1.0-09-5499-24 -#define ZCL_GP_PAIRING_COMMAND_ID 0x01 // Ver.: since gp-1.0-09-5499-24 -#define ZCL_GP_PROXY_COMMISSIONING_MODE_COMMAND_ID 0x02 // Ver.: since gp-1.0-09-5499-24 -#define ZCL_GP_RESPONSE_COMMAND_ID 0x06 // Ver.: since gp-1.0-09-5499-24 -#define ZCL_GP_TRANSLATION_TABLE_RESPONSE_COMMAND_ID 0x08 // Ver.: since gp-1.0-09-5499-24 -#define ZCL_GP_SINK_TABLE_RESPONSE_COMMAND_ID 0x0A // Ver.: always -#define ZCL_GP_PROXY_TABLE_REQUEST_COMMAND_ID 0x0B // Ver.: always - -// Client to server -#define ZCL_GP_NOTIFICATION_COMMAND_ID 0x00 // Ver.: since gp-1.0-09-5499-24 -#define ZCL_GP_PAIRING_SEARCH_COMMAND_ID 0x01 // Ver.: since gp-1.0-09-5499-24 -#define ZCL_GP_TUNNELING_STOP_COMMAND_ID 0x03 // Ver.: since gp-1.0-09-5499-24 -#define ZCL_GP_COMMISSIONING_NOTIFICATION_COMMAND_ID 0x04 // Ver.: since gp-1.0-09-5499-24 -#define ZCL_GP_SINK_COMMISSIONING_MODE_COMMAND_ID 0x05 // Ver.: always -#define ZCL_GP_TRANSLATION_TABLE_UPDATE_COMMAND_ID 0x07 // Ver.: since gp-1.0-09-5499-24 -#define ZCL_GP_TRANSLATION_TABLE_REQUEST_COMMAND_ID 0x08 // Ver.: always -#define ZCL_GP_PAIRING_CONFIGURATION_COMMAND_ID 0x09 // Ver.: since gp-1.0-09-5499-24 -#define ZCL_GP_SINK_TABLE_REQUEST_COMMAND_ID 0x0A // Ver.: always -#define ZCL_GP_PROXY_TABLE_RESPONSE_COMMAND_ID 0x0B // Ver.: always - -// Command types for cluster: Door Lock -// Cluster specification level: zcl-6.0-15-02018-001 - -// Server to client -#define ZCL_LOCK_DOOR_RESPONSE_COMMAND_ID 0x00 // Ver.: always -#define ZCL_UNLOCK_DOOR_RESPONSE_COMMAND_ID 0x01 // Ver.: always -#define ZCL_TOGGLE_RESPONSE_COMMAND_ID 0x02 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_UNLOCK_WITH_TIMEOUT_RESPONSE_COMMAND_ID 0x03 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_GET_LOG_RECORD_RESPONSE_COMMAND_ID 0x04 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_SET_PIN_RESPONSE_COMMAND_ID 0x05 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_GET_PIN_RESPONSE_COMMAND_ID 0x06 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_CLEAR_PIN_RESPONSE_COMMAND_ID 0x07 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_CLEAR_ALL_PINS_RESPONSE_COMMAND_ID 0x08 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_SET_USER_STATUS_RESPONSE_COMMAND_ID 0x09 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_GET_USER_STATUS_RESPONSE_COMMAND_ID 0x0A // Ver.: since ha-1.2-05-3520-29 -#define ZCL_SET_WEEKDAY_SCHEDULE_RESPONSE_COMMAND_ID 0x0B // Ver.: since ha-1.2-05-3520-29 -#define ZCL_GET_WEEKDAY_SCHEDULE_RESPONSE_COMMAND_ID 0x0C // Ver.: since ha-1.2-05-3520-29 -#define ZCL_CLEAR_WEEKDAY_SCHEDULE_RESPONSE_COMMAND_ID 0x0D // Ver.: since ha-1.2-05-3520-29 -#define ZCL_SET_YEARDAY_SCHEDULE_RESPONSE_COMMAND_ID 0x0E // Ver.: since ha-1.2-05-3520-29 -#define ZCL_GET_YEARDAY_SCHEDULE_RESPONSE_COMMAND_ID 0x0F // Ver.: since ha-1.2-05-3520-29 -#define ZCL_CLEAR_YEARDAY_SCHEDULE_RESPONSE_COMMAND_ID 0x10 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_SET_HOLIDAY_SCHEDULE_RESPONSE_COMMAND_ID 0x11 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_GET_HOLIDAY_SCHEDULE_RESPONSE_COMMAND_ID 0x12 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_CLEAR_HOLIDAY_SCHEDULE_RESPONSE_COMMAND_ID 0x13 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_SET_USER_TYPE_RESPONSE_COMMAND_ID 0x14 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_GET_USER_TYPE_RESPONSE_COMMAND_ID 0x15 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_SET_RFID_RESPONSE_COMMAND_ID 0x16 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_GET_RFID_RESPONSE_COMMAND_ID 0x17 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_CLEAR_RFID_RESPONSE_COMMAND_ID 0x18 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_CLEAR_ALL_RFIDS_RESPONSE_COMMAND_ID 0x19 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_OPERATION_EVENT_NOTIFICATION_COMMAND_ID 0x20 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_PROGRAMMING_EVENT_NOTIFICATION_COMMAND_ID 0x21 // Ver.: since ha-1.2-05-3520-29 - -// Client to server -#define ZCL_LOCK_DOOR_COMMAND_ID 0x00 // Ver.: always -#define ZCL_UNLOCK_DOOR_COMMAND_ID 0x01 // Ver.: always -#define ZCL_TOGGLE_COMMAND_ID 0x02 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_UNLOCK_WITH_TIMEOUT_COMMAND_ID 0x03 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_GET_LOG_RECORD_COMMAND_ID 0x04 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_SET_PIN_COMMAND_ID 0x05 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_GET_PIN_COMMAND_ID 0x06 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_CLEAR_PIN_COMMAND_ID 0x07 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_CLEAR_ALL_PINS_COMMAND_ID 0x08 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_SET_USER_STATUS_COMMAND_ID 0x09 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_GET_USER_STATUS_COMMAND_ID 0x0A // Ver.: since ha-1.2-05-3520-29 -#define ZCL_SET_WEEKDAY_SCHEDULE_COMMAND_ID 0x0B // Ver.: since ha-1.2-05-3520-29 -#define ZCL_GET_WEEKDAY_SCHEDULE_COMMAND_ID 0x0C // Ver.: since ha-1.2-05-3520-29 -#define ZCL_CLEAR_WEEKDAY_SCHEDULE_COMMAND_ID 0x0D // Ver.: since ha-1.2-05-3520-29 -#define ZCL_SET_YEARDAY_SCHEDULE_COMMAND_ID 0x0E // Ver.: since ha-1.2-05-3520-29 -#define ZCL_GET_YEARDAY_SCHEDULE_COMMAND_ID 0x0F // Ver.: since ha-1.2-05-3520-29 -#define ZCL_CLEAR_YEARDAY_SCHEDULE_COMMAND_ID 0x10 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_SET_HOLIDAY_SCHEDULE_COMMAND_ID 0x11 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_GET_HOLIDAY_SCHEDULE_COMMAND_ID 0x12 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_CLEAR_HOLIDAY_SCHEDULE_COMMAND_ID 0x13 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_SET_USER_TYPE_COMMAND_ID 0x14 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_GET_USER_TYPE_COMMAND_ID 0x15 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_SET_RFID_COMMAND_ID 0x16 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_GET_RFID_COMMAND_ID 0x17 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_CLEAR_RFID_COMMAND_ID 0x18 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_CLEAR_ALL_RFIDS_COMMAND_ID 0x19 // Ver.: since ha-1.2-05-3520-29 - -// Command types for cluster: Window Covering -// Cluster specification level: zcl-6.0-15-02018-001 - -// Client to server -#define ZCL_WINDOW_COVERING_UP_OPEN_COMMAND_ID 0x00 // Ver.: always -#define ZCL_WINDOW_COVERING_DOWN_CLOSE_COMMAND_ID 0x01 // Ver.: always -#define ZCL_WINDOW_COVERING_STOP_COMMAND_ID 0x02 // Ver.: always -#define ZCL_WINDOW_COVERING_GO_TO_LIFT_VALUE_COMMAND_ID 0x04 // Ver.: always -#define ZCL_WINDOW_COVERING_GO_TO_LIFT_PERCENTAGE_COMMAND_ID 0x05 // Ver.: always -#define ZCL_WINDOW_COVERING_GO_TO_TILT_VALUE_COMMAND_ID 0x07 // Ver.: always -#define ZCL_WINDOW_COVERING_GO_TO_TILT_PERCENTAGE_COMMAND_ID 0x08 // Ver.: always - -// Command types for cluster: Barrier Control -// Cluster specification level: zcl-6.0-15-02018-001 - -// Client to server -#define ZCL_BARRIER_CONTROL_GO_TO_PERCENT_COMMAND_ID 0x00 // Ver.: always -#define ZCL_BARRIER_CONTROL_STOP_COMMAND_ID 0x01 // Ver.: always - -// Command types for cluster: Thermostat -// Cluster specification level: zcl-6.0-15-02018-001 - -// Server to client -#define ZCL_CURRENT_WEEKLY_SCHEDULE_COMMAND_ID 0x00 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_RELAY_STATUS_LOG_COMMAND_ID 0x01 // Ver.: since ha-1.2-05-3520-29 - -// Client to server -#define ZCL_SETPOINT_RAISE_LOWER_COMMAND_ID 0x00 // Ver.: always -#define ZCL_SET_WEEKLY_SCHEDULE_COMMAND_ID 0x01 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_GET_WEEKLY_SCHEDULE_COMMAND_ID 0x02 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_CLEAR_WEEKLY_SCHEDULE_COMMAND_ID 0x03 // Ver.: since ha-1.2-05-3520-29 -#define ZCL_GET_RELAY_STATUS_LOG_COMMAND_ID 0x04 // Ver.: since ha-1.2-05-3520-29 - -// Command types for cluster: Color Control -// Cluster specification level: zcl6-errata-14-0129-15 - -// Client to server -#define ZCL_MOVE_TO_HUE_COMMAND_ID 0x00 // Ver.: always -#define ZCL_MOVE_HUE_COMMAND_ID 0x01 // Ver.: always -#define ZCL_STEP_HUE_COMMAND_ID 0x02 // Ver.: always -#define ZCL_MOVE_TO_SATURATION_COMMAND_ID 0x03 // Ver.: always -#define ZCL_MOVE_SATURATION_COMMAND_ID 0x04 // Ver.: always -#define ZCL_STEP_SATURATION_COMMAND_ID 0x05 // Ver.: always -#define ZCL_MOVE_TO_HUE_AND_SATURATION_COMMAND_ID 0x06 // Ver.: always -#define ZCL_MOVE_TO_COLOR_COMMAND_ID 0x07 // Ver.: always -#define ZCL_MOVE_COLOR_COMMAND_ID 0x08 // Ver.: always -#define ZCL_STEP_COLOR_COMMAND_ID 0x09 // Ver.: always -#define ZCL_MOVE_TO_COLOR_TEMPERATURE_COMMAND_ID 0x0A // Ver.: always -#define ZCL_ENHANCED_MOVE_TO_HUE_COMMAND_ID 0x40 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_ENHANCED_MOVE_HUE_COMMAND_ID 0x41 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_ENHANCED_STEP_HUE_COMMAND_ID 0x42 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_ENHANCED_MOVE_TO_HUE_AND_SATURATION_COMMAND_ID 0x43 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_COLOR_LOOP_SET_COMMAND_ID 0x44 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_STOP_MOVE_STEP_COMMAND_ID 0x47 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_MOVE_COLOR_TEMPERATURE_COMMAND_ID 0x4B // Ver.: since zll-1.0-11-0037-10 -#define ZCL_STEP_COLOR_TEMPERATURE_COMMAND_ID 0x4C // Ver.: since zll-1.0-11-0037-10 - -// Command types for cluster: IAS Zone -// Cluster specification level: zcl-6.0-15-02018-001 - -// Server to client -#define ZCL_ZONE_STATUS_CHANGE_NOTIFICATION_COMMAND_ID 0x00 // Ver.: always -#define ZCL_ZONE_ENROLL_REQUEST_COMMAND_ID 0x01 // Ver.: always -#define ZCL_INITIATE_NORMAL_OPERATION_MODE_RESPONSE_COMMAND_ID 0x02 // Ver.: always -#define ZCL_INITIATE_TEST_MODE_RESPONSE_COMMAND_ID 0x03 // Ver.: always - -// Client to server -#define ZCL_ZONE_ENROLL_RESPONSE_COMMAND_ID 0x00 // Ver.: always -#define ZCL_INITIATE_NORMAL_OPERATION_MODE_COMMAND_ID 0x01 // Ver.: always -#define ZCL_INITIATE_TEST_MODE_COMMAND_ID 0x02 // Ver.: always - -// Command types for cluster: IAS ACE -// Cluster specification level: zcl-6.0-15-02018-001 - -// Server to client -#define ZCL_ARM_RESPONSE_COMMAND_ID 0x00 // Ver.: always -#define ZCL_GET_ZONE_ID_MAP_RESPONSE_COMMAND_ID 0x01 // Ver.: always -#define ZCL_GET_ZONE_INFORMATION_RESPONSE_COMMAND_ID 0x02 // Ver.: always -#define ZCL_ZONE_STATUS_CHANGED_COMMAND_ID 0x03 // Ver.: always -#define ZCL_PANEL_STATUS_CHANGED_COMMAND_ID 0x04 // Ver.: always -#define ZCL_GET_PANEL_STATUS_RESPONSE_COMMAND_ID 0x05 // Ver.: since ha-1.2.1-05-3520-30 -#define ZCL_SET_BYPASSED_ZONE_LIST_COMMAND_ID 0x06 // Ver.: since ha-1.2.1-05-3520-30 -#define ZCL_BYPASS_RESPONSE_COMMAND_ID 0x07 // Ver.: since ha-1.2.1-05-3520-30 -#define ZCL_GET_ZONE_STATUS_RESPONSE_COMMAND_ID 0x08 // Ver.: since ha-1.2.1-05-3520-30 - -// Client to server -#define ZCL_ARM_COMMAND_ID 0x00 // Ver.: always -#define ZCL_BYPASS_COMMAND_ID 0x01 // Ver.: always -#define ZCL_EMERGENCY_COMMAND_ID 0x02 // Ver.: always -#define ZCL_FIRE_COMMAND_ID 0x03 // Ver.: always -#define ZCL_PANIC_COMMAND_ID 0x04 // Ver.: always -#define ZCL_GET_ZONE_ID_MAP_COMMAND_ID 0x05 // Ver.: always -#define ZCL_GET_ZONE_INFORMATION_COMMAND_ID 0x06 // Ver.: always -#define ZCL_GET_PANEL_STATUS_COMMAND_ID 0x07 // Ver.: since ha-1.2.1-05-3520-30 -#define ZCL_GET_BYPASSED_ZONE_LIST_COMMAND_ID 0x08 // Ver.: since ha-1.2.1-05-3520-30 -#define ZCL_GET_ZONE_STATUS_COMMAND_ID 0x09 // Ver.: since ha-1.2.1-05-3520-30 - -// Command types for cluster: IAS WD -// Cluster specification level: zcl-6.0-15-02018-001 - -// Client to server -#define ZCL_START_WARNING_COMMAND_ID 0x00 // Ver.: always -#define ZCL_SQUAWK_COMMAND_ID 0x01 // Ver.: always - -// Command types for cluster: Generic Tunnel -// Cluster specification level: cba-1.0-05-3516-12 - -// Server to client -#define ZCL_MATCH_PROTOCOL_ADDRESS_RESPONSE_COMMAND_ID 0x00 // Ver.: always -#define ZCL_ADVERTISE_PROTOCOL_ADDRESS_COMMAND_ID 0x01 // Ver.: always - -// Client to server -#define ZCL_MATCH_PROTOCOL_ADDRESS_COMMAND_ID 0x00 // Ver.: always - -// Command types for cluster: BACnet Protocol Tunnel -// Cluster specification level: cba-1.0-05-3516-12 - -// Client to server -#define ZCL_TRANSFER_NPDU_COMMAND_ID 0x00 // Ver.: always - -// Command types for cluster: 11073 Protocol Tunnel -// Cluster specification level: hc-1.0-07-5360-15 - -// Client to server -#define ZCL_TRANSFER_A_P_D_U_COMMAND_ID 0x00 // Ver.: always -#define ZCL_CONNECT_REQUEST_COMMAND_ID 0x01 // Ver.: always -#define ZCL_DISCONNECT_REQUEST_COMMAND_ID 0x02 // Ver.: always -#define ZCL_CONNECT_STATUS_NOTIFICATION_COMMAND_ID 0x03 // Ver.: always - -// Command types for cluster: ISO 7816 Protocol Tunnel -// Cluster specification level: ta-1.0-07-5307-07 - -// Client to server -#define ZCL_INSERT_SMART_CARD_COMMAND_ID 0x01 // Ver.: always -#define ZCL_EXTRACT_SMART_CARD_COMMAND_ID 0x02 // Ver.: always - -// Either direction -#define ZCL_TRANSFER_APDU_COMMAND_ID 0x00 // Ver.: always - -// Command types for cluster: Price -// Cluster specification level: se-1.2b-15-0131-02 - -// Server to client -#define ZCL_PUBLISH_PRICE_COMMAND_ID 0x00 // Ver.: always -#define ZCL_PUBLISH_BLOCK_PERIOD_COMMAND_ID 0x01 // Ver.: since se-1.1-07-5356-16 -#define ZCL_PUBLISH_CONVERSION_FACTOR_COMMAND_ID 0x02 // Ver.: since se-1.1a-07-5356-17 -#define ZCL_PUBLISH_CALORIFIC_VALUE_COMMAND_ID 0x03 // Ver.: since se-1.1a-07-5356-17 -#define ZCL_PUBLISH_TARIFF_INFORMATION_COMMAND_ID 0x04 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PUBLISH_PRICE_MATRIX_COMMAND_ID 0x05 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PUBLISH_BLOCK_THRESHOLDS_COMMAND_ID 0x06 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PUBLISH_C_O2_VALUE_COMMAND_ID 0x07 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PUBLISH_TIER_LABELS_COMMAND_ID 0x08 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PUBLISH_BILLING_PERIOD_COMMAND_ID 0x09 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PUBLISH_CONSOLIDATED_BILL_COMMAND_ID 0x0A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PUBLISH_CPP_EVENT_COMMAND_ID 0x0B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PUBLISH_CREDIT_PAYMENT_COMMAND_ID 0x0C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PUBLISH_CURRENCY_CONVERSION_COMMAND_ID 0x0D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CANCEL_TARIFF_COMMAND_ID 0x0E // Ver.: since se-1.2a-07-5356-19 - -// Client to server -#define ZCL_GET_CURRENT_PRICE_COMMAND_ID 0x00 // Ver.: always -#define ZCL_GET_SCHEDULED_PRICES_COMMAND_ID 0x01 // Ver.: always -#define ZCL_PRICE_ACKNOWLEDGEMENT_COMMAND_ID 0x02 // Ver.: since se-1.1-07-5356-16 -#define ZCL_GET_BLOCK_PERIODS_COMMAND_ID 0x03 // Ver.: since se-1.1-07-5356-16 -#define ZCL_GET_CONVERSION_FACTOR_COMMAND_ID 0x04 // Ver.: since se-1.1a-07-5356-17 -#define ZCL_GET_CALORIFIC_VALUE_COMMAND_ID 0x05 // Ver.: since se-1.1a-07-5356-17 -#define ZCL_GET_TARIFF_INFORMATION_COMMAND_ID 0x06 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_GET_PRICE_MATRIX_COMMAND_ID 0x07 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_GET_BLOCK_THRESHOLDS_COMMAND_ID 0x08 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_GET_C_O2_VALUE_COMMAND_ID 0x09 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_GET_TIER_LABELS_COMMAND_ID 0x0A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_GET_BILLING_PERIOD_COMMAND_ID 0x0B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_GET_CONSOLIDATED_BILL_COMMAND_ID 0x0C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CPP_EVENT_RESPONSE_COMMAND_ID 0x0D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_GET_CREDIT_PAYMENT_COMMAND_ID 0x0E // Ver.: since se-1.2a-07-5356-19 -#define ZCL_GET_CURRENCY_CONVERSION_COMMAND_COMMAND_ID 0x0F // Ver.: since se-1.2a-07-5356-19 -#define ZCL_GET_TARIFF_CANCELLATION_COMMAND_ID 0x10 // Ver.: since se-1.2a-07-5356-19 - -// Command types for cluster: Demand Response and Load Control -// Cluster specification level: se-1.2b-15-0131-02 - -// Server to client -#define ZCL_LOAD_CONTROL_EVENT_COMMAND_ID 0x00 // Ver.: always -#define ZCL_CANCEL_LOAD_CONTROL_EVENT_COMMAND_ID 0x01 // Ver.: always -#define ZCL_CANCEL_ALL_LOAD_CONTROL_EVENTS_COMMAND_ID 0x02 // Ver.: always - -// Client to server -#define ZCL_REPORT_EVENT_STATUS_COMMAND_ID 0x00 // Ver.: always -#define ZCL_GET_SCHEDULED_EVENTS_COMMAND_ID 0x01 // Ver.: always - -// Command types for cluster: Simple Metering -// Cluster specification level: se-1.2b-15-0131-02 - -// Server to client -#define ZCL_GET_PROFILE_RESPONSE_COMMAND_ID 0x00 // Ver.: always -#define ZCL_REQUEST_MIRROR_COMMAND_ID 0x01 // Ver.: always -#define ZCL_REMOVE_MIRROR_COMMAND_ID 0x02 // Ver.: always -#define ZCL_REQUEST_FAST_POLL_MODE_RESPONSE_COMMAND_ID 0x03 // Ver.: since se-1.1-07-5356-16 -#define ZCL_SCHEDULE_SNAPSHOT_RESPONSE_COMMAND_ID 0x04 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TAKE_SNAPSHOT_RESPONSE_COMMAND_ID 0x05 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PUBLISH_SNAPSHOT_COMMAND_ID 0x06 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_GET_SAMPLED_DATA_RESPONSE_COMMAND_ID 0x07 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CONFIGURE_MIRROR_COMMAND_ID 0x08 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CONFIGURE_NOTIFICATION_SCHEME_COMMAND_ID 0x09 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CONFIGURE_NOTIFICATION_FLAGS_COMMAND_ID 0x0A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_GET_NOTIFIED_MESSAGE_COMMAND_ID 0x0B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_SUPPLY_STATUS_RESPONSE_COMMAND_ID 0x0C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_START_SAMPLING_RESPONSE_COMMAND_ID 0x0D // Ver.: since se-1.2a-07-5356-19 - -// Client to server -#define ZCL_GET_PROFILE_COMMAND_ID 0x00 // Ver.: always -#define ZCL_REQUEST_MIRROR_RESPONSE_COMMAND_ID 0x01 // Ver.: always -#define ZCL_MIRROR_REMOVED_COMMAND_ID 0x02 // Ver.: always -#define ZCL_REQUEST_FAST_POLL_MODE_COMMAND_ID 0x03 // Ver.: since se-1.1-07-5356-16 -#define ZCL_SCHEDULE_SNAPSHOT_COMMAND_ID 0x04 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_TAKE_SNAPSHOT_COMMAND_ID 0x05 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_GET_SNAPSHOT_COMMAND_ID 0x06 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_START_SAMPLING_COMMAND_ID 0x07 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_GET_SAMPLED_DATA_COMMAND_ID 0x08 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_MIRROR_REPORT_ATTRIBUTE_RESPONSE_COMMAND_ID 0x09 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_RESET_LOAD_LIMIT_COUNTER_COMMAND_ID 0x0A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CHANGE_SUPPLY_COMMAND_ID 0x0B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_LOCAL_CHANGE_SUPPLY_COMMAND_ID 0x0C // Ver.: since se-1.2a-07-5356-19 -#define ZCL_SET_SUPPLY_STATUS_COMMAND_ID 0x0D // Ver.: since se-1.2a-07-5356-19 -#define ZCL_SET_UNCONTROLLED_FLOW_THRESHOLD_COMMAND_ID 0x0E // Ver.: since se-1.2a-07-5356-19 - -// Command types for cluster: Messaging -// Cluster specification level: se-1.2b-15-0131-02 - -// Server to client -#define ZCL_DISPLAY_MESSAGE_COMMAND_ID 0x00 // Ver.: always -#define ZCL_CANCEL_MESSAGE_COMMAND_ID 0x01 // Ver.: always -#define ZCL_DISPLAY_PROTECTED_MESSAGE_COMMAND_ID 0x02 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CANCEL_ALL_MESSAGES_COMMAND_ID 0x03 // Ver.: since se-1.2a-07-5356-19 - -// Client to server -#define ZCL_GET_LAST_MESSAGE_COMMAND_ID 0x00 // Ver.: always -#define ZCL_MESSAGE_CONFIRMATION_COMMAND_ID 0x01 // Ver.: always -#define ZCL_GET_MESSAGE_CANCELLATION_COMMAND_ID 0x02 // Ver.: since se-1.2a-07-5356-19 - -// Command types for cluster: Tunneling -// Cluster specification level: se-1.2b-15-0131-02 - -// Server to client -#define ZCL_REQUEST_TUNNEL_RESPONSE_COMMAND_ID 0x00 // Ver.: always -#define ZCL_TRANSFER_DATA_SERVER_TO_CLIENT_COMMAND_ID 0x01 // Ver.: always -#define ZCL_TRANSFER_DATA_ERROR_SERVER_TO_CLIENT_COMMAND_ID 0x02 // Ver.: always -#define ZCL_ACK_TRANSFER_DATA_SERVER_TO_CLIENT_COMMAND_ID 0x03 // Ver.: always -#define ZCL_READY_DATA_SERVER_TO_CLIENT_COMMAND_ID 0x04 // Ver.: always -#define ZCL_SUPPORTED_TUNNEL_PROTOCOLS_RESPONSE_COMMAND_ID 0x05 // Ver.: since se-1.1a-07-5356-17 -#define ZCL_TUNNEL_CLOSURE_NOTIFICATION_COMMAND_ID 0x06 // Ver.: since se-1.1a-07-5356-17 - -// Client to server -#define ZCL_REQUEST_TUNNEL_COMMAND_ID 0x00 // Ver.: always -#define ZCL_CLOSE_TUNNEL_COMMAND_ID 0x01 // Ver.: always -#define ZCL_TRANSFER_DATA_CLIENT_TO_SERVER_COMMAND_ID 0x02 // Ver.: always -#define ZCL_TRANSFER_DATA_ERROR_CLIENT_TO_SERVER_COMMAND_ID 0x03 // Ver.: always -#define ZCL_ACK_TRANSFER_DATA_CLIENT_TO_SERVER_COMMAND_ID 0x04 // Ver.: always -#define ZCL_READY_DATA_CLIENT_TO_SERVER_COMMAND_ID 0x05 // Ver.: always -#define ZCL_GET_SUPPORTED_TUNNEL_PROTOCOLS_COMMAND_ID 0x06 // Ver.: since se-1.1a-07-5356-17 - -// Command types for cluster: Prepayment -// Cluster specification level: se-1.2b-15-0131-02 - -// Server to client -#define ZCL_PUBLISH_PREPAY_SNAPSHOT_COMMAND_ID 0x01 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CHANGE_PAYMENT_MODE_RESPONSE_COMMAND_ID 0x02 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CONSUMER_TOP_UP_RESPONSE_COMMAND_ID 0x03 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PUBLISH_TOP_UP_LOG_COMMAND_ID 0x05 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_PUBLISH_DEBT_LOG_COMMAND_ID 0x06 // Ver.: since se-1.2a-07-5356-19 - -// Client to server -#define ZCL_SELECT_AVAILABLE_EMERGENCY_CREDIT_COMMAND_ID 0x00 // Ver.: always -#define ZCL_CHANGE_DEBT_COMMAND_ID 0x02 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_EMERGENCY_CREDIT_SETUP_COMMAND_ID 0x03 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CONSUMER_TOP_UP_COMMAND_ID 0x04 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CREDIT_ADJUSTMENT_COMMAND_ID 0x05 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_CHANGE_PAYMENT_MODE_COMMAND_ID 0x06 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_GET_PREPAY_SNAPSHOT_COMMAND_ID 0x07 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_GET_TOP_UP_LOG_COMMAND_ID 0x08 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_SET_LOW_CREDIT_WARNING_LEVEL_COMMAND_ID 0x09 // Ver.: since se-1.2a-07-5356-19 -#define ZCL_GET_DEBT_REPAYMENT_LOG_COMMAND_ID 0x0A // Ver.: since se-1.2a-07-5356-19 -#define ZCL_SET_MAXIMUM_CREDIT_LIMIT_COMMAND_ID 0x0B // Ver.: since se-1.2a-07-5356-19 -#define ZCL_SET_OVERALL_DEBT_CAP_COMMAND_ID 0x0C // Ver.: since se-1.2a-07-5356-19 - -// Command types for cluster: Energy Management -// Cluster specification level: se-1.2b-15-0131-02 - -// Server to client -#define ZCL_REPORT_EVENT_STATUS_COMMAND_ID 0x00 // Ver.: always - -// Client to server -#define ZCL_MANAGE_EVENT_COMMAND_ID 0x00 // Ver.: always - -// Command types for cluster: Calendar -// Cluster specification level: se-1.2b-15-0131-02 - -// Server to client -#define ZCL_PUBLISH_CALENDAR_COMMAND_ID 0x00 // Ver.: always -#define ZCL_PUBLISH_DAY_PROFILE_COMMAND_ID 0x01 // Ver.: always -#define ZCL_PUBLISH_WEEK_PROFILE_COMMAND_ID 0x02 // Ver.: always -#define ZCL_PUBLISH_SEASONS_COMMAND_ID 0x03 // Ver.: always -#define ZCL_PUBLISH_SPECIAL_DAYS_COMMAND_ID 0x04 // Ver.: always -#define ZCL_CANCEL_CALENDAR_COMMAND_ID 0x05 // Ver.: always - -// Client to server -#define ZCL_GET_CALENDAR_COMMAND_ID 0x00 // Ver.: always -#define ZCL_GET_DAY_PROFILES_COMMAND_ID 0x01 // Ver.: always -#define ZCL_GET_WEEK_PROFILES_COMMAND_ID 0x02 // Ver.: always -#define ZCL_GET_SEASONS_COMMAND_ID 0x03 // Ver.: always -#define ZCL_GET_SPECIAL_DAYS_COMMAND_ID 0x04 // Ver.: always -#define ZCL_GET_CALENDAR_CANCELLATION_COMMAND_ID 0x05 // Ver.: always - -// Command types for cluster: Device Management -// Cluster specification level: se-1.2b-15-0131-02 - -// Server to client -#define ZCL_PUBLISH_CHANGE_OF_TENANCY_COMMAND_ID 0x00 // Ver.: always -#define ZCL_PUBLISH_CHANGE_OF_SUPPLIER_COMMAND_ID 0x01 // Ver.: always -#define ZCL_REQUEST_NEW_PASSWORD_RESPONSE_COMMAND_ID 0x02 // Ver.: always -#define ZCL_UPDATE_SITE_ID_COMMAND_ID 0x03 // Ver.: always -#define ZCL_SET_EVENT_CONFIGURATION_COMMAND_ID 0x04 // Ver.: always -#define ZCL_GET_EVENT_CONFIGURATION_COMMAND_ID 0x05 // Ver.: always -#define ZCL_UPDATE_C_I_N_COMMAND_ID 0x06 // Ver.: always - -// Client to server -#define ZCL_GET_CHANGE_OF_TENANCY_COMMAND_ID 0x00 // Ver.: always -#define ZCL_GET_CHANGE_OF_SUPPLIER_COMMAND_ID 0x01 // Ver.: always -#define ZCL_REQUEST_NEW_PASSWORD_COMMAND_ID 0x02 // Ver.: always -#define ZCL_GET_SITE_ID_COMMAND_ID 0x03 // Ver.: always -#define ZCL_REPORT_EVENT_CONFIGURATION_COMMAND_ID 0x04 // Ver.: always -#define ZCL_GET_C_I_N_COMMAND_ID 0x05 // Ver.: always - -// Command types for cluster: Events -// Cluster specification level: se-1.2b-15-0131-02 - -// Server to client -#define ZCL_PUBLISH_EVENT_COMMAND_ID 0x00 // Ver.: always -#define ZCL_PUBLISH_EVENT_LOG_COMMAND_ID 0x01 // Ver.: always -#define ZCL_CLEAR_EVENT_LOG_RESPONSE_COMMAND_ID 0x02 // Ver.: always - -// Client to server -#define ZCL_GET_EVENT_LOG_COMMAND_ID 0x00 // Ver.: always -#define ZCL_CLEAR_EVENT_LOG_REQUEST_COMMAND_ID 0x01 // Ver.: always - -// Command types for cluster: MDU Pairing -// Cluster specification level: se-1.2b-15-0131-02 - -// Server to client -#define ZCL_PAIRING_RESPONSE_COMMAND_ID 0x00 // Ver.: always - -// Client to server -#define ZCL_PAIRING_REQUEST_COMMAND_ID 0x00 // Ver.: always - -// Command types for cluster: Sub-GHz -// Cluster specification level: se-1.2b-15-0131-02 - -// Server to client -#define ZCL_SUSPEND_ZCL_MESSAGES_COMMAND_ID 0x00 // Ver.: always - -// Client to server -#define ZCL_GET_SUSPEND_ZCL_MESSAGES_STATUS_COMMAND_ID 0x00 // Ver.: always - -// Command types for cluster: Key Establishment -// Cluster specification level: zcl-7.0-07-5123-07 - -// Server to client -#define ZCL_INITIATE_KEY_ESTABLISHMENT_RESPONSE_COMMAND_ID 0x00 // Ver.: always -#define ZCL_EPHEMERAL_DATA_RESPONSE_COMMAND_ID 0x01 // Ver.: always -#define ZCL_CONFIRM_KEY_DATA_RESPONSE_COMMAND_ID 0x02 // Ver.: always - -// Client to server -#define ZCL_INITIATE_KEY_ESTABLISHMENT_REQUEST_COMMAND_ID 0x00 // Ver.: always -#define ZCL_EPHEMERAL_DATA_REQUEST_COMMAND_ID 0x01 // Ver.: always -#define ZCL_CONFIRM_KEY_DATA_REQUEST_COMMAND_ID 0x02 // Ver.: always - -// Either direction -#define ZCL_TERMINATE_KEY_ESTABLISHMENT_COMMAND_ID 0x03 // Ver.: always - -// Command types for cluster: Information -// Cluster specification level: ta-1.0-07-5307-07 - -// Server to client -#define ZCL_REQUEST_INFORMATION_RESPONSE_COMMAND_ID 0x00 // Ver.: always -#define ZCL_PUSH_INFORMATION_COMMAND_ID 0x01 // Ver.: always -#define ZCL_SEND_PREFERENCE_RESPONSE_COMMAND_ID 0x02 // Ver.: always -#define ZCL_SERVER_REQUEST_PREFERENCE_COMMAND_ID 0x03 // Ver.: always -#define ZCL_REQUEST_PREFERENCE_CONFIRMATION_COMMAND_ID 0x04 // Ver.: always -#define ZCL_UPDATE_RESPONSE_COMMAND_ID 0x05 // Ver.: always -#define ZCL_DELETE_RESPONSE_COMMAND_ID 0x06 // Ver.: always - -// Client to server -#define ZCL_REQUEST_INFORMATION_COMMAND_ID 0x00 // Ver.: always -#define ZCL_PUSH_INFORMATION_RESPONSE_COMMAND_ID 0x01 // Ver.: always -#define ZCL_SEND_PREFERENCE_COMMAND_ID 0x02 // Ver.: always -#define ZCL_REQUEST_PREFERENCE_RESPONSE_COMMAND_ID 0x03 // Ver.: always -#define ZCL_UPDATE_COMMAND_ID 0x04 // Ver.: always -#define ZCL_DELETE_COMMAND_ID 0x05 // Ver.: always -#define ZCL_CONFIGURE_NODE_DESCRIPTION_COMMAND_ID 0x06 // Ver.: always -#define ZCL_CONFIGURE_DELIVERY_ENABLE_COMMAND_ID 0x07 // Ver.: always -#define ZCL_CONFIGURE_PUSH_INFORMATION_TIMER_COMMAND_ID 0x08 // Ver.: always -#define ZCL_CONFIGURE_SET_ROOT_ID_COMMAND_ID 0x09 // Ver.: always - -// Command types for cluster: Data Sharing -// Cluster specification level: ta-1.0-07-5307-07 - -// Server to client -#define ZCL_WRITE_FILE_REQUEST_COMMAND_ID 0x00 // Ver.: always -#define ZCL_MODIFY_FILE_REQUEST_COMMAND_ID 0x01 // Ver.: always -#define ZCL_MODIFY_RECORD_REQUEST_COMMAND_ID 0x02 // Ver.: always -#define ZCL_FILE_TRANSMISSION_COMMAND_ID 0x03 // Ver.: always -#define ZCL_RECORD_TRANSMISSION_COMMAND_ID 0x04 // Ver.: always - -// Client to server -#define ZCL_READ_FILE_REQUEST_COMMAND_ID 0x00 // Ver.: always -#define ZCL_READ_RECORD_REQUEST_COMMAND_ID 0x01 // Ver.: always -#define ZCL_WRITE_FILE_RESPONSE_COMMAND_ID 0x02 // Ver.: always - -// Command types for cluster: Gaming -// Cluster specification level: ta-1.0-07-5307-07 - -// Server to client -#define ZCL_GAME_ANNOUNCEMENT_COMMAND_ID 0x00 // Ver.: always -#define ZCL_GENERAL_RESPONSE_COMMAND_ID 0x01 // Ver.: always - -// Client to server -#define ZCL_SEARCH_GAME_COMMAND_ID 0x00 // Ver.: always -#define ZCL_JOIN_GAME_COMMAND_ID 0x01 // Ver.: always -#define ZCL_START_GAME_COMMAND_ID 0x02 // Ver.: always -#define ZCL_PAUSE_GAME_COMMAND_ID 0x03 // Ver.: always -#define ZCL_RESUME_GAME_COMMAND_ID 0x04 // Ver.: always -#define ZCL_QUIT_GAME_COMMAND_ID 0x05 // Ver.: always -#define ZCL_END_GAME_COMMAND_ID 0x06 // Ver.: always -#define ZCL_START_OVER_COMMAND_ID 0x07 // Ver.: always -#define ZCL_ACTION_CONTROL_COMMAND_ID 0x08 // Ver.: always -#define ZCL_DOWNLOAD_GAME_COMMAND_ID 0x09 // Ver.: always - -// Command types for cluster: Data Rate Control -// Cluster specification level: ta-1.0-07-5307-07 - -// Server to client -#define ZCL_DATA_RATE_CONTROL_COMMAND_ID 0x00 // Ver.: always - -// Client to server -#define ZCL_PATH_CREATION_COMMAND_ID 0x00 // Ver.: always -#define ZCL_DATA_RATE_NOTIFICATION_COMMAND_ID 0x01 // Ver.: always -#define ZCL_PATH_DELETION_COMMAND_ID 0x02 // Ver.: always - -// Command types for cluster: Voice over ZigBee -// Cluster specification level: ta-1.0-07-5307-07 - -// Server to client -#define ZCL_ESTABLISHMENT_RESPONSE_COMMAND_ID 0x00 // Ver.: always -#define ZCL_VOICE_TRANSMISSION_RESPONSE_COMMAND_ID 0x01 // Ver.: always -#define ZCL_CONTROL_COMMAND_ID 0x02 // Ver.: always - -// Client to server -#define ZCL_ESTABLISHMENT_REQUEST_COMMAND_ID 0x00 // Ver.: always -#define ZCL_VOICE_TRANSMISSION_COMMAND_ID 0x01 // Ver.: always -#define ZCL_VOICE_TRANSMISSION_COMPLETION_COMMAND_ID 0x02 // Ver.: always -#define ZCL_CONTROL_RESPONSE_COMMAND_ID 0x03 // Ver.: always - -// Command types for cluster: Chatting -// Cluster specification level: ta-1.0-07-5307-07 - -// Server to client -#define ZCL_START_CHAT_RESPONSE_COMMAND_ID 0x00 // Ver.: always -#define ZCL_JOIN_CHAT_RESPONSE_COMMAND_ID 0x01 // Ver.: always -#define ZCL_USER_LEFT_COMMAND_ID 0x02 // Ver.: always -#define ZCL_USER_JOINED_COMMAND_ID 0x03 // Ver.: always -#define ZCL_SEARCH_CHAT_RESPONSE_COMMAND_ID 0x04 // Ver.: always -#define ZCL_SWITCH_CHAIRMAN_REQUEST_COMMAND_ID 0x05 // Ver.: always -#define ZCL_SWITCH_CHAIRMAN_CONFIRM_COMMAND_ID 0x06 // Ver.: always -#define ZCL_SWITCH_CHAIRMAN_NOTIFICATION_COMMAND_ID 0x07 // Ver.: always -#define ZCL_GET_NODE_INFORMATION_RESPONSE_COMMAND_ID 0x08 // Ver.: always - -// Client to server -#define ZCL_JOIN_CHAT_REQUEST_COMMAND_ID 0x00 // Ver.: always -#define ZCL_LEAVE_CHAT_REQUEST_COMMAND_ID 0x01 // Ver.: always -#define ZCL_SEARCH_CHAT_REQUEST_COMMAND_ID 0x02 // Ver.: always -#define ZCL_SWITCH_CHAIRMAN_RESPONSE_COMMAND_ID 0x03 // Ver.: always -#define ZCL_START_CHAT_REQUEST_COMMAND_ID 0x04 // Ver.: always -#define ZCL_CHAT_MESSAGE_COMMAND_ID 0x05 // Ver.: always -#define ZCL_GET_NODE_INFORMATION_REQUEST_COMMAND_ID 0x06 // Ver.: always - -// Command types for cluster: Payment -// Cluster specification level: ta-1.0-07-5307-07 - -// Server to client -#define ZCL_BUY_CONFIRM_COMMAND_ID 0x00 // Ver.: always -#define ZCL_RECEIPT_DELIVERY_COMMAND_ID 0x01 // Ver.: always -#define ZCL_TRANSACTION_END_COMMAND_ID 0x02 // Ver.: always - -// Client to server -#define ZCL_BUY_REQUEST_COMMAND_ID 0x00 // Ver.: always -#define ZCL_ACCEPT_PAYMENT_COMMAND_ID 0x01 // Ver.: always -#define ZCL_PAYMENT_CONFIRM_COMMAND_ID 0x02 // Ver.: always - -// Command types for cluster: Billing -// Cluster specification level: ta-1.0-07-5307-07 - -// Server to client -#define ZCL_CHECK_BILL_STATUS_COMMAND_ID 0x00 // Ver.: always -#define ZCL_SEND_BILL_RECORD_COMMAND_ID 0x01 // Ver.: always - -// Client to server -#define ZCL_SUBSCRIBE_COMMAND_ID 0x00 // Ver.: always -#define ZCL_UNSUBSCRIBE_COMMAND_ID 0x01 // Ver.: always -#define ZCL_START_BILLING_SESSION_COMMAND_ID 0x02 // Ver.: always -#define ZCL_STOP_BILLING_SESSION_COMMAND_ID 0x03 // Ver.: always -#define ZCL_BILL_STATUS_NOTIFICATION_COMMAND_ID 0x04 // Ver.: always -#define ZCL_SESSION_KEEP_ALIVE_COMMAND_ID 0x05 // Ver.: always - -// Command types for cluster: Appliance Events and Alert -// Cluster specification level: UNKNOWN - -// Server to client -#define ZCL_GET_ALERTS_RESPONSE_COMMAND_ID 0x00 // Ver.: always -#define ZCL_ALERTS_NOTIFICATION_COMMAND_ID 0x01 // Ver.: always -#define ZCL_EVENTS_NOTIFICATION_COMMAND_ID 0x02 // Ver.: always - -// Client to server -#define ZCL_GET_ALERTS_COMMAND_ID 0x00 // Ver.: always - -// Command types for cluster: Appliance Statistics -// Cluster specification level: UNKNOWN - -// Server to client -#define ZCL_LOG_NOTIFICATION_COMMAND_ID 0x00 // Ver.: always -#define ZCL_LOG_RESPONSE_COMMAND_ID 0x01 // Ver.: always -#define ZCL_LOG_QUEUE_RESPONSE_COMMAND_ID 0x02 // Ver.: always -#define ZCL_STATISTICS_AVAILABLE_COMMAND_ID 0x03 // Ver.: always - -// Client to server -#define ZCL_LOG_REQUEST_COMMAND_ID 0x00 // Ver.: always -#define ZCL_LOG_QUEUE_REQUEST_COMMAND_ID 0x01 // Ver.: always - -// Command types for cluster: Electrical Measurement -// Cluster specification level: UNKNOWN - -// Server to client -#define ZCL_GET_PROFILE_INFO_RESPONSE_COMMAND_COMMAND_ID 0x00 // Ver.: always -#define ZCL_GET_MEASUREMENT_PROFILE_RESPONSE_COMMAND_COMMAND_ID 0x01 // Ver.: always - -// Client to server -#define ZCL_GET_PROFILE_INFO_COMMAND_COMMAND_ID 0x00 // Ver.: always -#define ZCL_GET_MEASUREMENT_PROFILE_COMMAND_COMMAND_ID 0x01 // Ver.: always - -// Command types for cluster: ZLL Commissioning -// Cluster specification level: zll-1.0-11-0037-10 - -// Server to client -#define ZCL_SCAN_RESPONSE_COMMAND_ID 0x01 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_DEVICE_INFORMATION_RESPONSE_COMMAND_ID 0x03 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_NETWORK_START_RESPONSE_COMMAND_ID 0x11 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_NETWORK_JOIN_ROUTER_RESPONSE_COMMAND_ID 0x13 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_NETWORK_JOIN_END_DEVICE_RESPONSE_COMMAND_ID 0x15 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_ENDPOINT_INFORMATION_COMMAND_ID 0x40 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_GET_GROUP_IDENTIFIERS_RESPONSE_COMMAND_ID 0x41 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_GET_ENDPOINT_LIST_RESPONSE_COMMAND_ID 0x42 // Ver.: since zll-1.0-11-0037-10 - -// Client to server -#define ZCL_SCAN_REQUEST_COMMAND_ID 0x00 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_DEVICE_INFORMATION_REQUEST_COMMAND_ID 0x02 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_IDENTIFY_REQUEST_COMMAND_ID 0x06 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_RESET_TO_FACTORY_NEW_REQUEST_COMMAND_ID 0x07 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_NETWORK_START_REQUEST_COMMAND_ID 0x10 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_NETWORK_JOIN_ROUTER_REQUEST_COMMAND_ID 0x12 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_NETWORK_JOIN_END_DEVICE_REQUEST_COMMAND_ID 0x14 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_NETWORK_UPDATE_REQUEST_COMMAND_ID 0x16 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_GET_GROUP_IDENTIFIERS_REQUEST_COMMAND_ID 0x41 // Ver.: since zll-1.0-11-0037-10 -#define ZCL_GET_ENDPOINT_LIST_REQUEST_COMMAND_ID 0x42 // Ver.: since zll-1.0-11-0037-10 - -// Command types for cluster: Sample Mfg Specific Cluster -// Cluster specification level: UNKNOWN - -// Client to server -#define ZCL_COMMAND_ONE_COMMAND_ID 0x00 // Ver.: always mfgCode: 0x1002 - -// Command types for cluster: Sample Mfg Specific Cluster 2 -// Cluster specification level: UNKNOWN - -// Client to server -#define ZCL_COMMAND_TWO_COMMAND_ID 0x00 // Ver.: always mfgCode: 0x1049 - -// Command types for cluster: Configuration Cluster -// Cluster specification level: UNKNOWN - -// Server to client -#define ZCL_RETURN_TOKEN_COMMAND_ID 0x00 // Ver.: always mfgCode: 0x1002 - -// Client to server -#define ZCL_SET_TOKEN_COMMAND_ID 0x00 // Ver.: always mfgCode: 0x1002 -#define ZCL_LOCK_TOKENS_COMMAND_ID 0x01 // Ver.: always mfgCode: 0x1002 -#define ZCL_READ_TOKENS_COMMAND_ID 0x02 // Ver.: always mfgCode: 0x1002 -#define ZCL_UNLOCK_TOKENS_COMMAND_ID 0x03 // Ver.: always mfgCode: 0x1002 - -// Command types for cluster: MFGLIB Cluster -// Cluster specification level: UNKNOWN - -// Client to server -#define ZCL_STREAM_COMMAND_ID 0x00 // Ver.: always mfgCode: 0x1002 -#define ZCL_TONE_COMMAND_ID 0x01 // Ver.: always mfgCode: 0x1002 -#define ZCL_RX_MODE_COMMAND_ID 0x02 // Ver.: always mfgCode: 0x1002 - -// Command types for cluster: SL Works With All Hubs -// Cluster specification level: UNKNOWN - -// Server to client -#define ZCL_APS_LINK_KEY_AUTHORIZATION_QUERY_RESPONSE_COMMAND_ID 0x00 // Ver.: always mfgCode: 0x1217 -#define ZCL_POWERING_OFF_NOTIFICATION_COMMAND_ID 0x01 // Ver.: always mfgCode: 0x1217 -#define ZCL_POWERING_ON_NOTIFICATION_COMMAND_ID 0x02 // Ver.: always mfgCode: 0x1217 -#define ZCL_SHORT_ADDRESS_CHANGE_COMMAND_ID 0x03 // Ver.: always mfgCode: 0x1217 -#define ZCL_APS_ACK_ENABLEMENT_QUERY_RESPONSE_COMMAND_ID 0x04 // Ver.: always mfgCode: 0x1217 -#define ZCL_POWER_DESCRIPTOR_CHANGE_COMMAND_ID 0x05 // Ver.: always mfgCode: 0x1217 -#define ZCL_NEW_DEBUG_REPORT_NOTIFICATION_COMMAND_ID 0x06 // Ver.: always mfgCode: 0x1217 -#define ZCL_DEBUG_REPORT_QUERY_RESPONSE_COMMAND_ID 0x07 // Ver.: always mfgCode: 0x1217 -#define ZCL_TRUST_CENTER_FOR_CLUSTER_SERVER_QUERY_RESPONSE_COMMAND_ID 0x08 // Ver.: always mfgCode: 0x1217 -#define ZCL_SURVEY_BEACONS_RESPONSE_COMMAND_ID 0x09 // Ver.: always mfgCode: 0x1217 -#define ZCL_USE_TRUST_CENTER_FOR_CLUSTER_SERVER_RESPONSE_COMMAND_ID 0x9E // Ver.: always mfgCode: 0x1217 - -// Client to server -#define ZCL_ENABLE_APS_LINK_KEY_AUTHORIZATION_COMMAND_ID 0x00 // Ver.: always mfgCode: 0x1217 -#define ZCL_DISABLE_APS_LINK_KEY_AUTHORIZATION_COMMAND_ID 0x01 // Ver.: always mfgCode: 0x1217 -#define ZCL_APS_LINK_KEY_AUTHORIZATION_QUERY_COMMAND_ID 0x02 // Ver.: always mfgCode: 0x1217 -#define ZCL_REQUEST_NEW_APS_LINK_KEY_COMMAND_ID 0x03 // Ver.: always mfgCode: 0x1217 -#define ZCL_ENABLE_WWAH_APP_EVENT_RETRY_ALGORITHM_COMMAND_ID 0x04 // Ver.: always mfgCode: 0x1217 -#define ZCL_DISABLE_WWAH_APP_EVENT_RETRY_ALGORITHM_COMMAND_ID 0x05 // Ver.: always mfgCode: 0x1217 -#define ZCL_REQUEST_TIME_COMMAND_ID 0x06 // Ver.: always mfgCode: 0x1217 -#define ZCL_ENABLE_WWAH_REJOIN_ALGORITHM_COMMAND_ID 0x07 // Ver.: always mfgCode: 0x1217 -#define ZCL_DISABLE_WWAH_REJOIN_ALGORITHM_COMMAND_ID 0x08 // Ver.: always mfgCode: 0x1217 -#define ZCL_SET_IAS_ZONE_ENROLLMENT_METHOD_COMMAND_ID 0x09 // Ver.: always mfgCode: 0x1217 -#define ZCL_CLEAR_BINDING_TABLE_COMMAND_ID 0x0A // Ver.: always mfgCode: 0x1217 -#define ZCL_ENABLE_PERIODIC_ROUTER_CHECK_INS_COMMAND_ID 0x0B // Ver.: always mfgCode: 0x1217 -#define ZCL_DISABLE_PERIODIC_ROUTER_CHECK_INS_COMMAND_ID 0x0C // Ver.: always mfgCode: 0x1217 -#define ZCL_SET_MAC_POLL_FAILURE_WAIT_TIME_COMMAND_ID 0x0D // Ver.: always mfgCode: 0x1217 -#define ZCL_SET_PENDING_NETWORK_UPDATE_COMMAND_ID 0x0E // Ver.: always mfgCode: 0x1217 -#define ZCL_REQUIRE_APS_ACKS_ON_UNICASTS_COMMAND_ID 0x0F // Ver.: always mfgCode: 0x1217 -#define ZCL_REMOVE_APS_ACKS_ON_UNICASTS_REQUIREMENT_COMMAND_ID 0x10 // Ver.: always mfgCode: 0x1217 -#define ZCL_APS_ACK_REQUIREMENT_QUERY_COMMAND_ID 0x11 // Ver.: always mfgCode: 0x1217 -#define ZCL_DEBUG_REPORT_QUERY_COMMAND_ID 0x12 // Ver.: always mfgCode: 0x1217 -#define ZCL_SURVEY_BEACONS_COMMAND_ID 0x13 // Ver.: always mfgCode: 0x1217 -#define ZCL_DISABLE_OTA_DOWNGRADES_COMMAND_ID 0x14 // Ver.: always mfgCode: 0x1217 -#define ZCL_DISABLE_MGMT_LEAVE_WITHOUT_REJOIN_COMMAND_ID 0x15 // Ver.: always mfgCode: 0x1217 -#define ZCL_DISABLE_TOUCHLINK_INTERPAN_MESSAGE_SUPPORT_COMMAND_ID 0x16 // Ver.: always mfgCode: 0x1217 -#define ZCL_ENABLE_WWAH_PARENT_CLASSIFICATION_COMMAND_ID 0x17 // Ver.: always mfgCode: 0x1217 -#define ZCL_DISABLE_WWAH_PARENT_CLASSIFICATION_COMMAND_ID 0x18 // Ver.: always mfgCode: 0x1217 -#define ZCL_ENABLE_TC_SECURITY_ON_NTWK_KEY_ROTATION_COMMAND_ID 0x19 // Ver.: always mfgCode: 0x1217 -#define ZCL_ENABLE_WWAH_BAD_PARENT_RECOVERY_COMMAND_ID 0x1A // Ver.: always mfgCode: 0x1217 -#define ZCL_DISABLE_WWAH_BAD_PARENT_RECOVERY_COMMAND_ID 0x1B // Ver.: always mfgCode: 0x1217 -#define ZCL_ENABLE_CONFIGURATION_MODE_COMMAND_ID 0x1C // Ver.: always mfgCode: 0x1217 -#define ZCL_DISABLE_CONFIGURATION_MODE_COMMAND_ID 0x1D // Ver.: always mfgCode: 0x1217 -#define ZCL_USE_TRUST_CENTER_FOR_CLUSTER_SERVER_COMMAND_ID 0x1E // Ver.: always mfgCode: 0x1217 -#define ZCL_TRUST_CENTER_FOR_CLUSTER_SERVER_QUERY_COMMAND_ID 0x1F // Ver.: always mfgCode: 0x1217 - -#endif // SILABS_EMBER_AF_COMMAND_ID diff --git a/examples/wifi-echo/server/esp32/main/gen/gen_config.h b/examples/wifi-echo/server/esp32/main/gen/gen_config.h deleted file mode 100644 index 0913cdb450e013..00000000000000 --- a/examples/wifi-echo/server/esp32/main/gen/gen_config.h +++ /dev/null @@ -1,508 +0,0 @@ -/** - * - * 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 SILABS_ZNET_CONFIG -#define SILABS_ZNET_CONFIG - -#include "debug-printing-test.h" - -/**** Included Header Section ****/ - -// Networks -#define EM_AF_GENERATED_NETWORK_TYPES \ - { \ - EM_AF_NETWORK_TYPE_ZIGBEE_PRO, /* Primary */ \ - } -#define EM_AF_GENERATED_ZIGBEE_PRO_NETWORKS \ - { \ - { \ - /* Primary */ \ - ZA_ROUTER, \ - EMBER_AF_SECURITY_PROFILE_Z3, \ - }, \ - } -#define EM_AF_GENERATED_NETWORK_STRINGS "Primary (pro)", /**** ZCL Section ****/ -#define ZA_PROMPT "CHIPv1Clusters" -#define ZCL_USING_BASIC_CLUSTER_CLIENT -#define ZCL_USING_BASIC_CLUSTER_SERVER -#define ZCL_USING_IDENTIFY_CLUSTER_CLIENT -#define ZCL_USING_IDENTIFY_CLUSTER_SERVER -#define ZCL_USING_GROUPS_CLUSTER_CLIENT -#define ZCL_USING_GROUPS_CLUSTER_SERVER -#define ZCL_USING_SCENES_CLUSTER_CLIENT -#define ZCL_USING_SCENES_CLUSTER_SERVER -#define ZCL_USING_ON_OFF_CLUSTER_CLIENT -#define ZCL_USING_ON_OFF_CLUSTER_SERVER -#define ZCL_USING_ON_OFF_SWITCH_CONFIG_CLUSTER_CLIENT -#define ZCL_USING_ON_OFF_SWITCH_CONFIG_CLUSTER_SERVER -#define ZCL_USING_LEVEL_CONTROL_CLUSTER_CLIENT -#define ZCL_USING_LEVEL_CONTROL_CLUSTER_SERVER -#define ZCL_USING_DOOR_LOCK_CLUSTER_CLIENT -#define ZCL_USING_DOOR_LOCK_CLUSTER_SERVER -#define ZCL_USING_BARRIER_CONTROL_CLUSTER_CLIENT -#define ZCL_USING_BARRIER_CONTROL_CLUSTER_SERVER -#define ZCL_USING_COLOR_CONTROL_CLUSTER_CLIENT -#define ZCL_USING_COLOR_CONTROL_CLUSTER_SERVER -#define ZCL_USING_TEMP_MEASUREMENT_CLUSTER_CLIENT -#define ZCL_USING_TEMP_MEASUREMENT_CLUSTER_SERVER -#define ZCL_USING_IAS_ZONE_CLUSTER_CLIENT -#define ZCL_USING_IAS_ZONE_CLUSTER_SERVER -/**** Optional Attributes ****/ -#define ZCL_USING_COLOR_CONTROL_CLUSTER_COLOR_CONTROL_CURRENT_HUE_ATTRIBUTE -#define ZCL_USING_COLOR_CONTROL_CLUSTER_COLOR_CONTROL_CURRENT_SATURATION_ATTRIBUTE -#define ZCL_USING_COLOR_CONTROL_CLUSTER_COLOR_CONTROL_REMAINING_TIME_ATTRIBUTE -#define ZCL_USING_COLOR_CONTROL_CLUSTER_COLOR_CONTROL_COLOR_TEMPERATURE_ATTRIBUTE -#define ZCL_USING_COLOR_CONTROL_CLUSTER_COLOR_CONTROL_COLOR_MODE_ATTRIBUTE -#define ZCL_USING_COLOR_CONTROL_CLUSTER_COLOR_CONTROL_NUMBER_OF_PRIMARIES_ATTRIBUTE -#define ZCL_USING_COLOR_CONTROL_CLUSTER_COLOR_CONTROL_PRIMARY_1_X_ATTRIBUTE -#define ZCL_USING_COLOR_CONTROL_CLUSTER_COLOR_CONTROL_PRIMARY_1_Y_ATTRIBUTE -#define ZCL_USING_COLOR_CONTROL_CLUSTER_COLOR_CONTROL_PRIMARY_1_INTENSITY_ATTRIBUTE -#define ZCL_USING_COLOR_CONTROL_CLUSTER_COLOR_CONTROL_PRIMARY_2_X_ATTRIBUTE -#define ZCL_USING_COLOR_CONTROL_CLUSTER_COLOR_CONTROL_PRIMARY_2_Y_ATTRIBUTE -#define ZCL_USING_COLOR_CONTROL_CLUSTER_COLOR_CONTROL_PRIMARY_2_INTENSITY_ATTRIBUTE -#define ZCL_USING_COLOR_CONTROL_CLUSTER_COLOR_CONTROL_PRIMARY_3_X_ATTRIBUTE -#define ZCL_USING_COLOR_CONTROL_CLUSTER_COLOR_CONTROL_PRIMARY_3_Y_ATTRIBUTE -#define ZCL_USING_COLOR_CONTROL_CLUSTER_COLOR_CONTROL_PRIMARY_3_INTENSITY_ATTRIBUTE -#define ZCL_USING_COLOR_CONTROL_CLUSTER_COLOR_CONTROL_PRIMARY_4_X_ATTRIBUTE -#define ZCL_USING_COLOR_CONTROL_CLUSTER_COLOR_CONTROL_PRIMARY_4_Y_ATTRIBUTE -#define ZCL_USING_COLOR_CONTROL_CLUSTER_COLOR_CONTROL_PRIMARY_4_INTENSITY_ATTRIBUTE -#define ZCL_USING_COLOR_CONTROL_CLUSTER_COLOR_CONTROL_PRIMARY_5_X_ATTRIBUTE -#define ZCL_USING_COLOR_CONTROL_CLUSTER_COLOR_CONTROL_PRIMARY_5_Y_ATTRIBUTE -#define ZCL_USING_COLOR_CONTROL_CLUSTER_COLOR_CONTROL_PRIMARY_5_INTENSITY_ATTRIBUTE -#define ZCL_USING_COLOR_CONTROL_CLUSTER_COLOR_CONTROL_PRIMARY_6_X_ATTRIBUTE -#define ZCL_USING_COLOR_CONTROL_CLUSTER_COLOR_CONTROL_PRIMARY_6_Y_ATTRIBUTE -#define ZCL_USING_COLOR_CONTROL_CLUSTER_COLOR_CONTROL_PRIMARY_6_INTENSITY_ATTRIBUTE -#define ZCL_USING_COLOR_CONTROL_CLUSTER_COLOR_CONTROL_ENHANCED_CURRENT_HUE_ATTRIBUTE -#define ZCL_USING_COLOR_CONTROL_CLUSTER_COLOR_CONTROL_ENHANCED_COLOR_MODE_ATTRIBUTE -#define ZCL_USING_COLOR_CONTROL_CLUSTER_COLOR_CONTROL_COLOR_LOOP_ACTIVE_ATTRIBUTE -#define ZCL_USING_COLOR_CONTROL_CLUSTER_COLOR_CONTROL_COLOR_LOOP_DIRECTION_ATTRIBUTE -#define ZCL_USING_COLOR_CONTROL_CLUSTER_COLOR_CONTROL_COLOR_LOOP_TIME_ATTRIBUTE -#define ZCL_USING_COLOR_CONTROL_CLUSTER_COLOR_CONTROL_COLOR_LOOP_START_ENHANCED_HUE_ATTRIBUTE -#define ZCL_USING_COLOR_CONTROL_CLUSTER_COLOR_CONTROL_COLOR_LOOP_STORED_ENHANCED_HUE_ATTRIBUTE -#define ZCL_USING_COLOR_CONTROL_CLUSTER_COLOR_CONTROL_COLOR_CAPABILITIES_ATTRIBUTE -#define ZCL_USING_COLOR_CONTROL_CLUSTER_COLOR_CONTROL_COLOR_TEMP_PHYSICAL_MIN_ATTRIBUTE -#define ZCL_USING_COLOR_CONTROL_CLUSTER_COLOR_CONTROL_COLOR_TEMP_PHYSICAL_MAX_ATTRIBUTE -#define EMBER_AF_MANUFACTURER_CODE 0x1002 -#define EMBER_AF_DEFAULT_RESPONSE_POLICY_ALWAYS - -/**** Cluster endpoint counts ****/ -#define EMBER_AF_BASIC_CLUSTER_CLIENT_ENDPOINT_COUNT (1) -#define EMBER_AF_BASIC_CLUSTER_SERVER_ENDPOINT_COUNT (1) -#define EMBER_AF_IDENTIFY_CLUSTER_CLIENT_ENDPOINT_COUNT (1) -#define EMBER_AF_IDENTIFY_CLUSTER_SERVER_ENDPOINT_COUNT (1) -#define EMBER_AF_GROUPS_CLUSTER_CLIENT_ENDPOINT_COUNT (1) -#define EMBER_AF_GROUPS_CLUSTER_SERVER_ENDPOINT_COUNT (1) -#define EMBER_AF_SCENES_CLUSTER_CLIENT_ENDPOINT_COUNT (1) -#define EMBER_AF_SCENES_CLUSTER_SERVER_ENDPOINT_COUNT (1) -#define EMBER_AF_ON_OFF_CLUSTER_CLIENT_ENDPOINT_COUNT (1) -#define EMBER_AF_ON_OFF_CLUSTER_SERVER_ENDPOINT_COUNT (2) -#define EMBER_AF_ON_OFF_SWITCH_CONFIG_CLUSTER_CLIENT_ENDPOINT_COUNT (1) -#define EMBER_AF_ON_OFF_SWITCH_CONFIG_CLUSTER_SERVER_ENDPOINT_COUNT (1) -#define EMBER_AF_LEVEL_CONTROL_CLUSTER_CLIENT_ENDPOINT_COUNT (1) -#define EMBER_AF_LEVEL_CONTROL_CLUSTER_SERVER_ENDPOINT_COUNT (1) -#define EMBER_AF_DOOR_LOCK_CLUSTER_CLIENT_ENDPOINT_COUNT (1) -#define EMBER_AF_DOOR_LOCK_CLUSTER_SERVER_ENDPOINT_COUNT (1) -#define EMBER_AF_BARRIER_CONTROL_CLUSTER_CLIENT_ENDPOINT_COUNT (1) -#define EMBER_AF_BARRIER_CONTROL_CLUSTER_SERVER_ENDPOINT_COUNT (1) -#define EMBER_AF_COLOR_CONTROL_CLUSTER_CLIENT_ENDPOINT_COUNT (1) -#define EMBER_AF_COLOR_CONTROL_CLUSTER_SERVER_ENDPOINT_COUNT (1) -#define EMBER_AF_TEMP_MEASUREMENT_CLUSTER_CLIENT_ENDPOINT_COUNT (1) -#define EMBER_AF_TEMP_MEASUREMENT_CLUSTER_SERVER_ENDPOINT_COUNT (1) -#define EMBER_AF_IAS_ZONE_CLUSTER_CLIENT_ENDPOINT_COUNT (1) -#define EMBER_AF_IAS_ZONE_CLUSTER_SERVER_ENDPOINT_COUNT (1) - -/**** Cluster Endpoint Summaries ****/ -#define EMBER_AF_MAX_SERVER_CLUSTER_COUNT (12) -#define EMBER_AF_MAX_CLIENT_CLUSTER_COUNT (12) -#define EMBER_AF_MAX_TOTAL_CLUSTER_COUNT (24) - -/**** CLI Section ****/ -#define EMBER_AF_GENERATE_CLI - -/**** Security Section ****/ -#define EMBER_AF_HAS_SECURITY_PROFILE_Z3 - -/**** Network Section ****/ -#define EMBER_SUPPORTED_NETWORKS (1) -#define EMBER_AF_ZC_AND_ZR_DEVICE_COUNT (1) -#define EMBER_AF_NETWORK_INDEX_PRIMARY (0) -#define EMBER_AF_DEFAULT_NETWORK_INDEX EMBER_AF_NETWORK_INDEX_PRIMARY -#define EMBER_AF_HAS_ROUTER_NETWORK -#define EMBER_AF_HAS_RX_ON_WHEN_IDLE_NETWORK -#define EMBER_AF_TX_POWER_MODE EMBER_TX_POWER_MODE_USE_TOKEN - -/**** Callback Section ****/ -#define EMBER_CALLBACK_STACK_STATUS -#define EMBER_CALLBACK_IDENTIFY_CLUSTER_IDENTIFY_QUERY_RESPONSE -#define EMBER_CALLBACK_MARK_BUFFERS -#define EMBER_CALLBACK_ENERGY_SCAN_RESULT -#define EMBER_CALLBACK_NETWORK_FOUND -#define EMBER_CALLBACK_SCAN_COMPLETE -#define EMBER_CALLBACK_IAS_ZONE_CLUSTER_IAS_ZONE_CLUSTER_CLIENT_INIT -#define EMBER_CALLBACK_IAS_ZONE_CLUSTER_ZONE_ENROLL_REQUEST -#define EMBER_CALLBACK_IAS_ZONE_CLUSTER_ZONE_STATUS_CHANGE_NOTIFICATION -#define EMBER_CALLBACK_SCENES_CLUSTER_ADD_SCENE_RESPONSE -#define EMBER_CALLBACK_SCENES_CLUSTER_VIEW_SCENE_RESPONSE -#define EMBER_CALLBACK_SCENES_CLUSTER_REMOVE_SCENE_RESPONSE -#define EMBER_CALLBACK_SCENES_CLUSTER_REMOVE_ALL_SCENES_RESPONSE -#define EMBER_CALLBACK_SCENES_CLUSTER_STORE_SCENE_RESPONSE -#define EMBER_CALLBACK_SCENES_CLUSTER_GET_SCENE_MEMBERSHIP_RESPONSE -#define EMBER_CALLBACK_GROUPS_CLUSTER_ADD_GROUP_RESPONSE -#define EMBER_CALLBACK_GROUPS_CLUSTER_VIEW_GROUP_RESPONSE -#define EMBER_CALLBACK_GROUPS_CLUSTER_GET_GROUP_MEMBERSHIP_RESPONSE -#define EMBER_CALLBACK_GROUPS_CLUSTER_REMOVE_GROUP_RESPONSE -#define EMBER_CALLBACK_SCENES_CLUSTER_SCENES_CLUSTER_SERVER_INIT -#define EMBER_CALLBACK_SCENES_CLUSTER_ADD_SCENE -#define EMBER_CALLBACK_SCENES_CLUSTER_VIEW_SCENE -#define EMBER_CALLBACK_SCENES_CLUSTER_REMOVE_SCENE -#define EMBER_CALLBACK_SCENES_CLUSTER_REMOVE_ALL_SCENES -#define EMBER_CALLBACK_SCENES_CLUSTER_STORE_SCENE -#define EMBER_CALLBACK_SCENES_CLUSTER_RECALL_SCENE -#define EMBER_CALLBACK_SCENES_CLUSTER_GET_SCENE_MEMBERSHIP -#define EMBER_CALLBACK_SCENES_CLUSTER_STORE_CURRENT_SCENE -#define EMBER_CALLBACK_SCENES_CLUSTER_RECALL_SAVED_SCENE -#define EMBER_CALLBACK_SCENES_CLUSTER_CLEAR_SCENE_TABLE -#define EMBER_CALLBACK_SCENES_CLUSTER_SCENES_CLUSTER_MAKE_INVALID -#define EMBER_CALLBACK_SCENES_CLUSTER_REMOVE_SCENES_IN_GROUP -#define EMBER_CALLBACK_GROUPS_CLUSTER_GROUPS_CLUSTER_SERVER_INIT -#define EMBER_CALLBACK_GROUPS_CLUSTER_ADD_GROUP -#define EMBER_CALLBACK_GROUPS_CLUSTER_VIEW_GROUP -#define EMBER_CALLBACK_GROUPS_CLUSTER_GET_GROUP_MEMBERSHIP -#define EMBER_CALLBACK_GROUPS_CLUSTER_REMOVE_GROUP -#define EMBER_CALLBACK_GROUPS_CLUSTER_REMOVE_ALL_GROUPS -#define EMBER_CALLBACK_GROUPS_CLUSTER_ADD_GROUP_IF_IDENTIFYING -#define EMBER_CALLBACK_GROUPS_CLUSTER_ENDPOINT_IN_GROUP -#define EMBER_CALLBACK_GROUPS_CLUSTER_CLEAR_GROUP_TABLE -#define EMBER_CALLBACK_CONFIGURE_REPORTING_COMMAND -#define EMBER_CALLBACK_READ_REPORTING_CONFIGURATION_COMMAND -#define EMBER_CALLBACK_CLEAR_REPORT_TABLE -#define EMBER_CALLBACK_REPORTING_ATTRIBUTE_CHANGE -#define EMBER_CALLBACK_IDENTIFY_CLUSTER_IDENTIFY_CLUSTER_SERVER_INIT -#define EMBER_CALLBACK_IDENTIFY_CLUSTER_IDENTIFY_CLUSTER_SERVER_TICK -#define EMBER_CALLBACK_IDENTIFY_CLUSTER_IDENTIFY_CLUSTER_SERVER_ATTRIBUTE_CHANGED -#define EMBER_CALLBACK_IDENTIFY_CLUSTER_IDENTIFY -#define EMBER_CALLBACK_IDENTIFY_CLUSTER_IDENTIFY_QUERY -#define EMBER_CALLBACK_LEVEL_CONTROL_CLUSTER_LEVEL_CONTROL_CLUSTER_SERVER_INIT -#define EMBER_CALLBACK_LEVEL_CONTROL_CLUSTER_LEVEL_CONTROL_CLUSTER_SERVER_TICK -#define EMBER_CALLBACK_LEVEL_CONTROL_CLUSTER_MOVE_TO_LEVEL -#define EMBER_CALLBACK_LEVEL_CONTROL_CLUSTER_MOVE_TO_LEVEL_WITH_ON_OFF -#define EMBER_CALLBACK_LEVEL_CONTROL_CLUSTER_MOVE -#define EMBER_CALLBACK_LEVEL_CONTROL_CLUSTER_MOVE_WITH_ON_OFF -#define EMBER_CALLBACK_LEVEL_CONTROL_CLUSTER_STEP -#define EMBER_CALLBACK_LEVEL_CONTROL_CLUSTER_STEP_WITH_ON_OFF -#define EMBER_CALLBACK_LEVEL_CONTROL_CLUSTER_STOP -#define EMBER_CALLBACK_LEVEL_CONTROL_CLUSTER_STOP_WITH_ON_OFF -#define EMBER_CALLBACK_ON_OFF_CLUSTER_ON_OFF_CLUSTER_LEVEL_CONTROL_EFFECT -#define EMBER_CALLBACK_COLOR_CONTROL_CLUSTER_COLOR_CONTROL_CLUSTER_SERVER_INIT -#define EMBER_CALLBACK_COLOR_CONTROL_CLUSTER_STOP_MOVE_STEP -#define EMBER_CALLBACK_COLOR_CONTROL_CLUSTER_MOVE_TO_COLOR -#define EMBER_CALLBACK_COLOR_CONTROL_CLUSTER_MOVE_COLOR -#define EMBER_CALLBACK_COLOR_CONTROL_CLUSTER_STEP_COLOR -#define EMBER_CALLBACK_COLOR_CONTROL_CLUSTER_MOVE_TO_COLOR_TEMPERATURE -#define EMBER_CALLBACK_COLOR_CONTROL_CLUSTER_MOVE_COLOR_TEMPERATURE -#define EMBER_CALLBACK_COLOR_CONTROL_CLUSTER_STEP_COLOR_TEMPERATURE -#define EMBER_CALLBACK_COLOR_CONTROL_CLUSTER_MOVE_TO_HUE_AND_SATURATION -#define EMBER_CALLBACK_COLOR_CONTROL_CLUSTER_MOVE_HUE -#define EMBER_CALLBACK_COLOR_CONTROL_CLUSTER_MOVE_SATURATION -#define EMBER_CALLBACK_COLOR_CONTROL_CLUSTER_MOVE_TO_HUE -#define EMBER_CALLBACK_COLOR_CONTROL_CLUSTER_MOVE_TO_SATURATION -#define EMBER_CALLBACK_COLOR_CONTROL_CLUSTER_STEP_HUE -#define EMBER_CALLBACK_COLOR_CONTROL_CLUSTER_STEP_SATURATION -#define EMBER_CALLBACK_TEMPERATURE_READING_COMPLETE -#define EMBER_CALLBACK_ON_OFF_CLUSTER_ON_OFF_CLUSTER_SERVER_INIT -#define EMBER_CALLBACK_ON_OFF_CLUSTER_OFF -#define EMBER_CALLBACK_ON_OFF_CLUSTER_ON -#define EMBER_CALLBACK_ON_OFF_CLUSTER_TOGGLE -#define EMBER_CALLBACK_ON_OFF_CLUSTER_ON_OFF_CLUSTER_SET_VALUE -#define EMBER_CALLBACK_BARRIER_CONTROL_CLUSTER_BARRIER_CONTROL_CLUSTER_SERVER_TICK -#define EMBER_CALLBACK_BARRIER_CONTROL_CLUSTER_BARRIER_CONTROL_GO_TO_PERCENT -#define EMBER_CALLBACK_BARRIER_CONTROL_CLUSTER_BARRIER_CONTROL_STOP -#define EMBER_CALLBACK_DOOR_LOCK_CLUSTER_LOCK_DOOR -#define EMBER_CALLBACK_DOOR_LOCK_CLUSTER_UNLOCK_DOOR -#define EMBER_CALLBACK_DOOR_LOCK_CLUSTER_SET_PIN -#define EMBER_CALLBACK_DOOR_LOCK_CLUSTER_GET_PIN -#define EMBER_CALLBACK_DOOR_LOCK_CLUSTER_CLEAR_PIN -#define EMBER_CALLBACK_DOOR_LOCK_CLUSTER_CLEAR_ALL_PINS -#define EMBER_CALLBACK_DOOR_LOCK_CLUSTER_SET_WEEKDAY_SCHEDULE -#define EMBER_CALLBACK_DOOR_LOCK_CLUSTER_GET_WEEKDAY_SCHEDULE -#define EMBER_CALLBACK_DOOR_LOCK_CLUSTER_CLEAR_WEEKDAY_SCHEDULE -#define EMBER_CALLBACK_DOOR_LOCK_CLUSTER_GET_LOG_RECORD -#define EMBER_CALLBACK_DOOR_LOCK_CLUSTER_GET_USER_TYPE -#define EMBER_CALLBACK_DOOR_LOCK_CLUSTER_SET_USER_TYPE -#define EMBER_CALLBACK_DOOR_LOCK_CLUSTER_SET_YEARDAY_SCHEDULE -#define EMBER_CALLBACK_DOOR_LOCK_CLUSTER_GET_YEARDAY_SCHEDULE -#define EMBER_CALLBACK_DOOR_LOCK_CLUSTER_CLEAR_YEARDAY_SCHEDULE -#define EMBER_CALLBACK_DOOR_LOCK_CLUSTER_SET_HOLIDAY_SCHEDULE -#define EMBER_CALLBACK_DOOR_LOCK_CLUSTER_GET_HOLIDAY_SCHEDULE -#define EMBER_CALLBACK_DOOR_LOCK_CLUSTER_CLEAR_HOLIDAY_SCHEDULE -#define EMBER_CALLBACK_DOOR_LOCK_CLUSTER_SET_RFID -#define EMBER_CALLBACK_DOOR_LOCK_CLUSTER_GET_RFID -#define EMBER_CALLBACK_DOOR_LOCK_CLUSTER_CLEAR_RFID -#define EMBER_CALLBACK_DOOR_LOCK_CLUSTER_CLEAR_ALL_RFIDS -#define EMBER_CALLBACK_DOOR_LOCK_CLUSTER_DOOR_LOCK_CLUSTER_SERVER_ATTRIBUTE_CHANGED -#define EMBER_CALLBACK_DOOR_LOCK_CLUSTER_UNLOCK_WITH_TIMEOUT -#define EMBER_CALLBACK_IAS_ZONE_CLUSTER_IAS_ZONE_CLUSTER_SERVER_PRE_ATTRIBUTE_CHANGED -#define EMBER_CALLBACK_IAS_ZONE_CLUSTER_ZONE_ENROLL_RESPONSE -#define EMBER_CALLBACK_IAS_ZONE_CLUSTER_IAS_ZONE_CLUSTER_SERVER_INIT -#define EMBER_CALLBACK_IAS_ZONE_CLUSTER_IAS_ZONE_CLUSTER_SERVER_TICK -#define EMBER_CALLBACK_IAS_ZONE_CLUSTER_IAS_ZONE_CLUSTER_SERVER_MESSAGE_SENT -#define EMBER_CALLBACK_BASIC_CLUSTER_RESET_TO_FACTORY_DEFAULTS -/**** Debug printing section ****/ - -// Global switch -#define EMBER_AF_PRINT_ENABLE -// Individual areas - -#define EMBER_AF_SUPPORT_COMMAND_DISCOVERY - -// Generated plugin macros - -// Use this macro to check if Antenna Stub plugin is included -#define EMBER_AF_PLUGIN_ANTENNA_STUB - -// Use this macro to check if Barrier Control Server Cluster plugin is included -#define EMBER_AF_PLUGIN_BARRIER_CONTROL_SERVER - -// Use this macro to check if Basic Server Cluster plugin is included -#define EMBER_AF_PLUGIN_BASIC - -// Use this macro to check if Binding Table Library plugin is included -#define EMBER_AF_PLUGIN_BINDING_TABLE_LIBRARY -// User options for plugin Binding Table Library -#define EMBER_BINDING_TABLE_SIZE 10 - -// Use this macro to check if CCM* Encryption plugin is included -#define EMBER_AF_PLUGIN_CCM_ENCRYPTION -// User options for plugin CCM* Encryption -#define EMBER_AF_PLUGIN_CCM_ENCRYPTION_SOFTWARE_CCM -#define USE_SOFTWARE_CCM - -// Use this macro to check if Radio Coexistence Stub plugin is included -#define EMBER_AF_PLUGIN_COEXISTENCE_STUB - -// Use this macro to check if Color Control Cluster Server plugin is included -#define EMBER_AF_PLUGIN_COLOR_CONTROL_SERVER -// User options for plugin Color Control Cluster Server -#define EMBER_AF_PLUGIN_COLOR_CONTROL_SERVER_XY -#define EMBER_AF_PLUGIN_COLOR_CONTROL_SERVER_TEMP -#define EMBER_AF_PLUGIN_COLOR_CONTROL_SERVER_HSV -#define EMBER_AF_PLUGIN_COLOR_CONTROL_SERVER_MIN_REPORT_INTERVAL 1 -#define EMBER_AF_PLUGIN_COLOR_CONTROL_SERVER_MAX_REPORT_INTERVAL 65535 -#define EMBER_AF_PLUGIN_COLOR_CONTROL_SERVER_COLOR_XY_CHANGE 1 -#define EMBER_AF_PLUGIN_COLOR_CONTROL_SERVER_COLOR_TEMP_CHANGE 1 -#define EMBER_AF_PLUGIN_COLOR_CONTROL_SERVER_HUE_CHANGE 1 -#define EMBER_AF_PLUGIN_COLOR_CONTROL_SERVER_SATURATION_CHANGE 1 - -// Use this macro to check if Debug Basic Library plugin is included -#define EMBER_AF_PLUGIN_DEBUG_BASIC_LIBRARY - -// Use this macro to check if Debug JTAG plugin is included -#define EMBER_AF_PLUGIN_DEBUG_JTAG - -// Use this macro to check if Door Lock Server Cluster plugin is included -#define EMBER_AF_PLUGIN_DOOR_LOCK_SERVER - -// Use this macro to check if Ember Minimal Printf plugin is included -#define EMBER_AF_PLUGIN_EMBER_MINIMAL_PRINTF - -// Use this macro to check if Groups Client Cluster plugin is included -#define EMBER_AF_PLUGIN_GROUPS_CLIENT - -// Use this macro to check if Groups Server Cluster plugin is included -#define EMBER_AF_PLUGIN_GROUPS_SERVER - -// Use this macro to check if HAL Library plugin is included -#define EMBER_AF_PLUGIN_HAL_LIBRARY - -// Use this macro to check if IAS Zone Client plugin is included -#define EMBER_AF_PLUGIN_IAS_ZONE_CLIENT -// User options for plugin IAS Zone Client -#define EMBER_AF_PLUGIN_IAS_ZONE_CLIENT_MAX_DEVICES 10 - -// Use this macro to check if IAS Zone Server plugin is included -#define EMBER_AF_PLUGIN_IAS_ZONE_SERVER -// User options for plugin IAS Zone Server -#define EMBER_AF_PLUGIN_IAS_ZONE_SERVER_ZONE_TYPE 541 - -// Use this macro to check if Identify Cluster plugin is included -#define EMBER_AF_PLUGIN_IDENTIFY - -// Use this macro to check if Level Control Server Cluster plugin is included -#define EMBER_AF_PLUGIN_LEVEL_CONTROL -// User options for plugin Level Control Server Cluster -#define EMBER_AF_PLUGIN_LEVEL_CONTROL_MAXIMUM_LEVEL 255 -#define EMBER_AF_PLUGIN_LEVEL_CONTROL_MINIMUM_LEVEL 0 -#define EMBER_AF_PLUGIN_LEVEL_CONTROL_RATE 0 - -// Use this macro to check if mbed TLS plugin is included -#define EMBER_AF_PLUGIN_MBEDTLS -// User options for plugin mbed TLS -#define EMBER_AF_PLUGIN_MBEDTLS_CONF_DEVICE_ACCELERATION -#define EMBER_AF_PLUGIN_MBEDTLS_CONF_DEVICE_ACCELERATION_APP - -// Use this macro to check if NVM3 Library plugin is included -#define EMBER_AF_PLUGIN_NVM3 -// User options for plugin NVM3 Library -#define EMBER_AF_PLUGIN_NVM3_FLASH_PAGES 18 -#define EMBER_AF_PLUGIN_NVM3_CACHE_SIZE 200 -#define EMBER_AF_PLUGIN_NVM3_MAX_OBJECT_SIZE 254 -#define EMBER_AF_PLUGIN_NVM3_USER_REPACK_HEADROOM 0 - -// Use this macro to check if On/Off Server Cluster plugin is included -#define EMBER_AF_PLUGIN_ON_OFF - -// Use this macro to check if Packet Validate Library plugin is included -#define EMBER_AF_PLUGIN_PACKET_VALIDATE_LIBRARY - -// Use this macro to check if RAIL Library plugin is included -#define EMBER_AF_PLUGIN_RAIL_LIBRARY -// User options for plugin RAIL Library -#define EMBER_AF_PLUGIN_RAIL_LIBRARY_RAILPHYDEF 1 - -// Use this macro to check if Reporting plugin is included -#define EMBER_AF_PLUGIN_REPORTING -// User options for plugin Reporting -#define EMBER_AF_PLUGIN_REPORTING_TABLE_SIZE 5 -#define EMBER_AF_PLUGIN_REPORTING_ENABLE_GROUP_BOUND_REPORTS - -// Use this macro to check if Scenes Server Cluster plugin is included -#define EMBER_AF_PLUGIN_SCENES -// User options for plugin Scenes Server Cluster -#define EMBER_AF_PLUGIN_SCENES_TABLE_SIZE 3 - -// Use this macro to check if Scenes Client Cluster plugin is included -#define EMBER_AF_PLUGIN_SCENES_CLIENT - -// Use this macro to check if Serial plugin is included -#define EMBER_AF_PLUGIN_SERIAL - -// Use this macro to check if Simulated EEPROM version 2 to NVM3 Upgrade Stub plugin is included -#define EMBER_AF_PLUGIN_SIM_EEPROM2_TO_NVM3_UPGRADE_STUB - -// Use this macro to check if Simple Main plugin is included -#define EMBER_AF_PLUGIN_SIMPLE_MAIN - -// Use this macro to check if Strong Random plugin is included -#define EMBER_AF_PLUGIN_STRONG_RANDOM -// User options for plugin Strong Random -#define EMBER_AF_PLUGIN_STRONG_RANDOM_RADIO_PRNG -#define USE_RADIO_API_FOR_TRNG - -// Use this macro to check if Temperature Measurement Server Cluster plugin is included -#define EMBER_AF_PLUGIN_TEMPERATURE_MEASUREMENT_SERVER -// User options for plugin Temperature Measurement Server Cluster -#define EMBER_AF_PLUGIN_TEMPERATURE_MEASUREMENT_SERVER_MAX_MEASUREMENT_FREQUENCY_S 300 -#define EMBER_AF_PLUGIN_TEMPERATURE_MEASUREMENT_SERVER_DEFAULT_REPORTABLE_TEMPERATURE_CHANGE_M_C 500 -#define EMBER_AF_PLUGIN_TEMPERATURE_MEASUREMENT_SERVER_OVER_TEMPERATURE -#define EMBER_AF_PLUGIN_TEMPERATURE_MEASUREMENT_SERVER_OVER_TEMPERATURE_ASSERT_WARNING_THRESHOLD 55 -#define EMBER_AF_PLUGIN_TEMPERATURE_MEASUREMENT_SERVER_OVER_TEMPERATURE_DEASSERT_WARNING_THRESHOLD 50 -#define EMBER_AF_PLUGIN_TEMPERATURE_MEASUREMENT_SERVER_OVER_TEMPERATURE_ASSERT_CRITICAL_THRESHOLD 60 -#define EMBER_AF_PLUGIN_TEMPERATURE_MEASUREMENT_SERVER_OVER_TEMPERATURE_DEASSERT_CRITICAL_THRESHOLD 55 - -// Use this macro to check if Temperature Si7053 Stub plugin is included -#define EMBER_AF_PLUGIN_TEMPERATURE_SI7053_STUB - -// Use this macro to check if ZCL Framework Core plugin is included -#define EMBER_AF_PLUGIN_ZCL_FRAMEWORK_CORE -// User options for plugin ZCL Framework Core -#define EMBER_AF_PLUGIN_ZCL_FRAMEWORK_CORE_CLI_ENABLED -#define ZA_CLI_FULL - -// Use this macro to check if ZigBee PRO Stack Library plugin is included -#define EMBER_AF_PLUGIN_ZIGBEE_PRO_LIBRARY -// User options for plugin ZigBee PRO Stack Library -#define EMBER_MAX_END_DEVICE_CHILDREN 6 -#define EMBER_PACKET_BUFFER_COUNT 75 -#define EMBER_END_DEVICE_KEEP_ALIVE_SUPPORT_MODE EMBER_KEEP_ALIVE_SUPPORT_ALL -#define EMBER_END_DEVICE_POLL_TIMEOUT MINUTES_256 -#define EMBER_END_DEVICE_POLL_TIMEOUT_SHIFT 6 -#define EMBER_LINK_POWER_DELTA_INTERVAL 300 -#define EMBER_APS_UNICAST_MESSAGE_COUNT 10 -#define EMBER_BROADCAST_TABLE_SIZE 15 -#define EMBER_NEIGHBOR_TABLE_SIZE 16 - -// Generated API headers - -// API antenna from Antenna Stub plugin -#define EMBER_AF_API_ANTENNA \ - "../../../../../Applications/Simplicity " \ - "Studio.app/Contents/Eclipse/developer/sdks/gecko_sdk_suite/v3.0/platform/base/hal/plugin/antenna/antenna.h" - -// API coexistence from Radio Coexistence Stub plugin -#define EMBER_AF_API_COEXISTENCE \ - "../../../../../Applications/Simplicity " \ - "Studio.app/Contents/Eclipse/developer/sdks/gecko_sdk_suite/v3.0/platform/radio/rail_lib/plugin/coexistence/protocol/" \ - "ieee802154/coexistence-802154.h" - -// API nvm3 from NVM3 Library plugin -#define EMBER_AF_API_NVM3 \ - "../../../../../Applications/Simplicity " \ - "Studio.app/Contents/Eclipse/developer/sdks/gecko_sdk_suite/v3.0/platform/base/hal/plugin/nvm3/nvm3-token.h" - -// API rail-library from RAIL Library plugin -#define EMBER_AF_API_RAIL_LIBRARY \ - "../../../../../Applications/Simplicity " \ - "Studio.app/Contents/Eclipse/developer/sdks/gecko_sdk_suite/v3.0/platform/radio/rail_lib/common/rail.h" - -// API serial from Serial plugin -#define EMBER_AF_API_SERIAL \ - "../../../../../Applications/Simplicity " \ - "Studio.app/Contents/Eclipse/developer/sdks/gecko_sdk_suite/v3.0/platform/base/hal/plugin/serial/serial.h" - -// API temperature from Temperature Si7053 Stub plugin -#define EMBER_AF_API_TEMPERATURE \ - "../../../../../Applications/Simplicity " \ - "Studio.app/Contents/Eclipse/developer/sdks/gecko_sdk_suite/v3.0/platform/base/hal/plugin/temperature/temperature.h" - -// API command-interpreter2 from ZCL Framework Core plugin -#define EMBER_AF_API_COMMAND_INTERPRETER2 \ - "../../../../../Applications/Simplicity " \ - "Studio.app/Contents/Eclipse/developer/sdks/gecko_sdk_suite/v3.0/protocol/zigbee/app/util/serial/command-interpreter2.h" - -// Custom macros -#ifdef TRANSITION_TIME_DS -#undef TRANSITION_TIME_DS -#endif -#define TRANSITION_TIME_DS 20 - -#ifdef FINDING_AND_BINDING_DELAY_MS -#undef FINDING_AND_BINDING_DELAY_MS -#endif -#define FINDING_AND_BINDING_DELAY_MS 3000 - -#endif // SILABS_ZNET_CONFIG diff --git a/examples/wifi-echo/server/esp32/main/gen/gen_tokens.h b/examples/wifi-echo/server/esp32/main/gen/gen_tokens.h deleted file mode 100644 index 80bd8a4098e676..00000000000000 --- a/examples/wifi-echo/server/esp32/main/gen/gen_tokens.h +++ /dev/null @@ -1,60 +0,0 @@ -/** - * - * 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. -// -// - -// This file contains the tokens for attributes stored in flash - -// Identifier tags for tokens - -// Types for the tokens -#ifdef DEFINETYPES -#endif // DEFINETYPES - -// Actual token definitions -#ifdef DEFINETOKENS -#endif // DEFINETOKENS - -// Macro snippet that loads all the attributes from tokens -#define GENERATED_TOKEN_LOADER(endpoint) \ - do \ - { \ - } while (false) - -// Macro snippet that saves the attribute to token -#define GENERATED_TOKEN_SAVER \ - do \ - { \ - } while (false) diff --git a/examples/wifi-echo/server/esp32/main/gen/print-cluster.h b/examples/wifi-echo/server/esp32/main/gen/print-cluster.h deleted file mode 100644 index 87d2771f942629..00000000000000 --- a/examples/wifi-echo/server/esp32/main/gen/print-cluster.h +++ /dev/null @@ -1,778 +0,0 @@ -/** - * - * 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 SILABS_PRINT_CLUSTER -#define SILABS_PRINT_CLUSTER - -// This is the mapping of IDs to cluster names assuming a format according -// to the "EmberAfClusterName" defined in the ZCL header. -// The names of clusters that are not present, are removed. - -#if defined(ZCL_USING_BASIC_CLUSTER_SERVER) || defined(ZCL_USING_BASIC_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_BASIC_CLUSTER { ZCL_BASIC_CLUSTER_ID, 0x0000, "Basic" }, -#else -#define SILABS_PRINTCLUSTER_BASIC_CLUSTER -#endif -#if defined(ZCL_USING_POWER_CONFIG_CLUSTER_SERVER) || defined(ZCL_USING_POWER_CONFIG_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_POWER_CONFIG_CLUSTER { ZCL_POWER_CONFIG_CLUSTER_ID, 0x0000, "Power Configuration" }, -#else -#define SILABS_PRINTCLUSTER_POWER_CONFIG_CLUSTER -#endif -#if defined(ZCL_USING_DEVICE_TEMP_CLUSTER_SERVER) || defined(ZCL_USING_DEVICE_TEMP_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_DEVICE_TEMP_CLUSTER { ZCL_DEVICE_TEMP_CLUSTER_ID, 0x0000, "Device Temperature Configuration" }, -#else -#define SILABS_PRINTCLUSTER_DEVICE_TEMP_CLUSTER -#endif -#if defined(ZCL_USING_IDENTIFY_CLUSTER_SERVER) || defined(ZCL_USING_IDENTIFY_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_IDENTIFY_CLUSTER { ZCL_IDENTIFY_CLUSTER_ID, 0x0000, "Identify" }, -#else -#define SILABS_PRINTCLUSTER_IDENTIFY_CLUSTER -#endif -#if defined(ZCL_USING_GROUPS_CLUSTER_SERVER) || defined(ZCL_USING_GROUPS_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_GROUPS_CLUSTER { ZCL_GROUPS_CLUSTER_ID, 0x0000, "Groups" }, -#else -#define SILABS_PRINTCLUSTER_GROUPS_CLUSTER -#endif -#if defined(ZCL_USING_SCENES_CLUSTER_SERVER) || defined(ZCL_USING_SCENES_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_SCENES_CLUSTER { ZCL_SCENES_CLUSTER_ID, 0x0000, "Scenes" }, -#else -#define SILABS_PRINTCLUSTER_SCENES_CLUSTER -#endif -#if defined(ZCL_USING_ON_OFF_CLUSTER_SERVER) || defined(ZCL_USING_ON_OFF_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_ON_OFF_CLUSTER { ZCL_ON_OFF_CLUSTER_ID, 0x0000, "On/off" }, -#else -#define SILABS_PRINTCLUSTER_ON_OFF_CLUSTER -#endif -#if defined(ZCL_USING_ON_OFF_SWITCH_CONFIG_CLUSTER_SERVER) || defined(ZCL_USING_ON_OFF_SWITCH_CONFIG_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_ON_OFF_SWITCH_CONFIG_CLUSTER \ - { ZCL_ON_OFF_SWITCH_CONFIG_CLUSTER_ID, 0x0000, "On/off Switch Configuration" }, -#else -#define SILABS_PRINTCLUSTER_ON_OFF_SWITCH_CONFIG_CLUSTER -#endif -#if defined(ZCL_USING_LEVEL_CONTROL_CLUSTER_SERVER) || defined(ZCL_USING_LEVEL_CONTROL_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_LEVEL_CONTROL_CLUSTER { ZCL_LEVEL_CONTROL_CLUSTER_ID, 0x0000, "Level Control" }, -#else -#define SILABS_PRINTCLUSTER_LEVEL_CONTROL_CLUSTER -#endif -#if defined(ZCL_USING_ALARM_CLUSTER_SERVER) || defined(ZCL_USING_ALARM_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_ALARM_CLUSTER { ZCL_ALARM_CLUSTER_ID, 0x0000, "Alarms" }, -#else -#define SILABS_PRINTCLUSTER_ALARM_CLUSTER -#endif -#if defined(ZCL_USING_TIME_CLUSTER_SERVER) || defined(ZCL_USING_TIME_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_TIME_CLUSTER { ZCL_TIME_CLUSTER_ID, 0x0000, "Time" }, -#else -#define SILABS_PRINTCLUSTER_TIME_CLUSTER -#endif -#if defined(ZCL_USING_RSSI_LOCATION_CLUSTER_SERVER) || defined(ZCL_USING_RSSI_LOCATION_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_RSSI_LOCATION_CLUSTER { ZCL_RSSI_LOCATION_CLUSTER_ID, 0x0000, "RSSI Location" }, -#else -#define SILABS_PRINTCLUSTER_RSSI_LOCATION_CLUSTER -#endif -#if defined(ZCL_USING_BINARY_INPUT_BASIC_CLUSTER_SERVER) || defined(ZCL_USING_BINARY_INPUT_BASIC_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_BINARY_INPUT_BASIC_CLUSTER { ZCL_BINARY_INPUT_BASIC_CLUSTER_ID, 0x0000, "Binary Input (Basic)" }, -#else -#define SILABS_PRINTCLUSTER_BINARY_INPUT_BASIC_CLUSTER -#endif -#if defined(ZCL_USING_COMMISSIONING_CLUSTER_SERVER) || defined(ZCL_USING_COMMISSIONING_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_COMMISSIONING_CLUSTER { ZCL_COMMISSIONING_CLUSTER_ID, 0x0000, "Commissioning" }, -#else -#define SILABS_PRINTCLUSTER_COMMISSIONING_CLUSTER -#endif -#if defined(ZCL_USING_PARTITION_CLUSTER_SERVER) || defined(ZCL_USING_PARTITION_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_PARTITION_CLUSTER { ZCL_PARTITION_CLUSTER_ID, 0x0000, "Partition" }, -#else -#define SILABS_PRINTCLUSTER_PARTITION_CLUSTER -#endif -#if defined(ZCL_USING_OTA_BOOTLOAD_CLUSTER_SERVER) || defined(ZCL_USING_OTA_BOOTLOAD_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_OTA_BOOTLOAD_CLUSTER { ZCL_OTA_BOOTLOAD_CLUSTER_ID, 0x0000, "Over the Air Bootloading" }, -#else -#define SILABS_PRINTCLUSTER_OTA_BOOTLOAD_CLUSTER -#endif -#if defined(ZCL_USING_POWER_PROFILE_CLUSTER_SERVER) || defined(ZCL_USING_POWER_PROFILE_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_POWER_PROFILE_CLUSTER { ZCL_POWER_PROFILE_CLUSTER_ID, 0x0000, "Power Profile" }, -#else -#define SILABS_PRINTCLUSTER_POWER_PROFILE_CLUSTER -#endif -#if defined(ZCL_USING_APPLIANCE_CONTROL_CLUSTER_SERVER) || defined(ZCL_USING_APPLIANCE_CONTROL_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_APPLIANCE_CONTROL_CLUSTER { ZCL_APPLIANCE_CONTROL_CLUSTER_ID, 0x0000, "Appliance Control" }, -#else -#define SILABS_PRINTCLUSTER_APPLIANCE_CONTROL_CLUSTER -#endif -#if defined(ZCL_USING_POLL_CONTROL_CLUSTER_SERVER) || defined(ZCL_USING_POLL_CONTROL_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_POLL_CONTROL_CLUSTER { ZCL_POLL_CONTROL_CLUSTER_ID, 0x0000, "Poll Control" }, -#else -#define SILABS_PRINTCLUSTER_POLL_CONTROL_CLUSTER -#endif -#if defined(ZCL_USING_GREEN_POWER_CLUSTER_SERVER) || defined(ZCL_USING_GREEN_POWER_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_GREEN_POWER_CLUSTER { ZCL_GREEN_POWER_CLUSTER_ID, 0x0000, "Green Power" }, -#else -#define SILABS_PRINTCLUSTER_GREEN_POWER_CLUSTER -#endif -#if defined(ZCL_USING_KEEPALIVE_CLUSTER_SERVER) || defined(ZCL_USING_KEEPALIVE_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_KEEPALIVE_CLUSTER { ZCL_KEEPALIVE_CLUSTER_ID, 0x0000, "Keep-Alive" }, -#else -#define SILABS_PRINTCLUSTER_KEEPALIVE_CLUSTER -#endif -#if defined(ZCL_USING_SHADE_CONFIG_CLUSTER_SERVER) || defined(ZCL_USING_SHADE_CONFIG_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_SHADE_CONFIG_CLUSTER { ZCL_SHADE_CONFIG_CLUSTER_ID, 0x0000, "Shade Configuration" }, -#else -#define SILABS_PRINTCLUSTER_SHADE_CONFIG_CLUSTER -#endif -#if defined(ZCL_USING_DOOR_LOCK_CLUSTER_SERVER) || defined(ZCL_USING_DOOR_LOCK_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_DOOR_LOCK_CLUSTER { ZCL_DOOR_LOCK_CLUSTER_ID, 0x0000, "Door Lock" }, -#else -#define SILABS_PRINTCLUSTER_DOOR_LOCK_CLUSTER -#endif -#if defined(ZCL_USING_WINDOW_COVERING_CLUSTER_SERVER) || defined(ZCL_USING_WINDOW_COVERING_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_WINDOW_COVERING_CLUSTER { ZCL_WINDOW_COVERING_CLUSTER_ID, 0x0000, "Window Covering" }, -#else -#define SILABS_PRINTCLUSTER_WINDOW_COVERING_CLUSTER -#endif -#if defined(ZCL_USING_BARRIER_CONTROL_CLUSTER_SERVER) || defined(ZCL_USING_BARRIER_CONTROL_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_BARRIER_CONTROL_CLUSTER { ZCL_BARRIER_CONTROL_CLUSTER_ID, 0x0000, "Barrier Control" }, -#else -#define SILABS_PRINTCLUSTER_BARRIER_CONTROL_CLUSTER -#endif -#if defined(ZCL_USING_PUMP_CONFIG_CONTROL_CLUSTER_SERVER) || defined(ZCL_USING_PUMP_CONFIG_CONTROL_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_PUMP_CONFIG_CONTROL_CLUSTER \ - { ZCL_PUMP_CONFIG_CONTROL_CLUSTER_ID, 0x0000, "Pump Configuration and Control" }, -#else -#define SILABS_PRINTCLUSTER_PUMP_CONFIG_CONTROL_CLUSTER -#endif -#if defined(ZCL_USING_THERMOSTAT_CLUSTER_SERVER) || defined(ZCL_USING_THERMOSTAT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_THERMOSTAT_CLUSTER { ZCL_THERMOSTAT_CLUSTER_ID, 0x0000, "Thermostat" }, -#else -#define SILABS_PRINTCLUSTER_THERMOSTAT_CLUSTER -#endif -#if defined(ZCL_USING_FAN_CONTROL_CLUSTER_SERVER) || defined(ZCL_USING_FAN_CONTROL_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_FAN_CONTROL_CLUSTER { ZCL_FAN_CONTROL_CLUSTER_ID, 0x0000, "Fan Control" }, -#else -#define SILABS_PRINTCLUSTER_FAN_CONTROL_CLUSTER -#endif -#if defined(ZCL_USING_DEHUMID_CONTROL_CLUSTER_SERVER) || defined(ZCL_USING_DEHUMID_CONTROL_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_DEHUMID_CONTROL_CLUSTER { ZCL_DEHUMID_CONTROL_CLUSTER_ID, 0x0000, "Dehumidification Control" }, -#else -#define SILABS_PRINTCLUSTER_DEHUMID_CONTROL_CLUSTER -#endif -#if defined(ZCL_USING_THERMOSTAT_UI_CONFIG_CLUSTER_SERVER) || defined(ZCL_USING_THERMOSTAT_UI_CONFIG_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_THERMOSTAT_UI_CONFIG_CLUSTER \ - { ZCL_THERMOSTAT_UI_CONFIG_CLUSTER_ID, 0x0000, "Thermostat User Interface Configuration" }, -#else -#define SILABS_PRINTCLUSTER_THERMOSTAT_UI_CONFIG_CLUSTER -#endif -#if defined(ZCL_USING_COLOR_CONTROL_CLUSTER_SERVER) || defined(ZCL_USING_COLOR_CONTROL_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_COLOR_CONTROL_CLUSTER { ZCL_COLOR_CONTROL_CLUSTER_ID, 0x0000, "Color Control" }, -#else -#define SILABS_PRINTCLUSTER_COLOR_CONTROL_CLUSTER -#endif -#if defined(ZCL_USING_BALLAST_CONFIGURATION_CLUSTER_SERVER) || defined(ZCL_USING_BALLAST_CONFIGURATION_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_BALLAST_CONFIGURATION_CLUSTER { ZCL_BALLAST_CONFIGURATION_CLUSTER_ID, 0x0000, "Ballast Configuration" }, -#else -#define SILABS_PRINTCLUSTER_BALLAST_CONFIGURATION_CLUSTER -#endif -#if defined(ZCL_USING_ILLUM_MEASUREMENT_CLUSTER_SERVER) || defined(ZCL_USING_ILLUM_MEASUREMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_ILLUM_MEASUREMENT_CLUSTER { ZCL_ILLUM_MEASUREMENT_CLUSTER_ID, 0x0000, "Illuminance Measurement" }, -#else -#define SILABS_PRINTCLUSTER_ILLUM_MEASUREMENT_CLUSTER -#endif -#if defined(ZCL_USING_ILLUM_LEVEL_SENSING_CLUSTER_SERVER) || defined(ZCL_USING_ILLUM_LEVEL_SENSING_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_ILLUM_LEVEL_SENSING_CLUSTER { ZCL_ILLUM_LEVEL_SENSING_CLUSTER_ID, 0x0000, "Illuminance Level Sensing" }, -#else -#define SILABS_PRINTCLUSTER_ILLUM_LEVEL_SENSING_CLUSTER -#endif -#if defined(ZCL_USING_TEMP_MEASUREMENT_CLUSTER_SERVER) || defined(ZCL_USING_TEMP_MEASUREMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_TEMP_MEASUREMENT_CLUSTER { ZCL_TEMP_MEASUREMENT_CLUSTER_ID, 0x0000, "Temperature Measurement" }, -#else -#define SILABS_PRINTCLUSTER_TEMP_MEASUREMENT_CLUSTER -#endif -#if defined(ZCL_USING_PRESSURE_MEASUREMENT_CLUSTER_SERVER) || defined(ZCL_USING_PRESSURE_MEASUREMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_PRESSURE_MEASUREMENT_CLUSTER { ZCL_PRESSURE_MEASUREMENT_CLUSTER_ID, 0x0000, "Pressure Measurement" }, -#else -#define SILABS_PRINTCLUSTER_PRESSURE_MEASUREMENT_CLUSTER -#endif -#if defined(ZCL_USING_FLOW_MEASUREMENT_CLUSTER_SERVER) || defined(ZCL_USING_FLOW_MEASUREMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_FLOW_MEASUREMENT_CLUSTER { ZCL_FLOW_MEASUREMENT_CLUSTER_ID, 0x0000, "Flow Measurement" }, -#else -#define SILABS_PRINTCLUSTER_FLOW_MEASUREMENT_CLUSTER -#endif -#if defined(ZCL_USING_RELATIVE_HUMIDITY_MEASUREMENT_CLUSTER_SERVER) || \ - defined(ZCL_USING_RELATIVE_HUMIDITY_MEASUREMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_RELATIVE_HUMIDITY_MEASUREMENT_CLUSTER \ - { ZCL_RELATIVE_HUMIDITY_MEASUREMENT_CLUSTER_ID, 0x0000, "Relative Humidity Measurement" }, -#else -#define SILABS_PRINTCLUSTER_RELATIVE_HUMIDITY_MEASUREMENT_CLUSTER -#endif -#if defined(ZCL_USING_OCCUPANCY_SENSING_CLUSTER_SERVER) || defined(ZCL_USING_OCCUPANCY_SENSING_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_OCCUPANCY_SENSING_CLUSTER { ZCL_OCCUPANCY_SENSING_CLUSTER_ID, 0x0000, "Occupancy Sensing" }, -#else -#define SILABS_PRINTCLUSTER_OCCUPANCY_SENSING_CLUSTER -#endif -#if defined(ZCL_USING_CARBON_MONOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_SERVER) || \ - defined(ZCL_USING_CARBON_MONOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_CARBON_MONOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER \ - { ZCL_CARBON_MONOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 0x0000, "Carbon Monoxide Concentration Measurement" }, -#else -#define SILABS_PRINTCLUSTER_CARBON_MONOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER -#endif -#if defined(ZCL_USING_CARBON_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_SERVER) || \ - defined(ZCL_USING_CARBON_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_CARBON_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER \ - { ZCL_CARBON_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 0x0000, "Carbon Dioxide Concentration Measurement" }, -#else -#define SILABS_PRINTCLUSTER_CARBON_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER -#endif -#if defined(ZCL_USING_ETHYLENE_CONCENTRATION_MEASUREMENT_CLUSTER_SERVER) || \ - defined(ZCL_USING_ETHYLENE_CONCENTRATION_MEASUREMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_ETHYLENE_CONCENTRATION_MEASUREMENT_CLUSTER \ - { ZCL_ETHYLENE_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 0x0000, "Ethylene Concentration Measurement" }, -#else -#define SILABS_PRINTCLUSTER_ETHYLENE_CONCENTRATION_MEASUREMENT_CLUSTER -#endif -#if defined(ZCL_USING_ETHYLENE_OXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_SERVER) || \ - defined(ZCL_USING_ETHYLENE_OXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_ETHYLENE_OXIDE_CONCENTRATION_MEASUREMENT_CLUSTER \ - { ZCL_ETHYLENE_OXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 0x0000, "Ethylene Oxide Concentration Measurement" }, -#else -#define SILABS_PRINTCLUSTER_ETHYLENE_OXIDE_CONCENTRATION_MEASUREMENT_CLUSTER -#endif -#if defined(ZCL_USING_HYDROGEN_CONCENTRATION_MEASUREMENT_CLUSTER_SERVER) || \ - defined(ZCL_USING_HYDROGEN_CONCENTRATION_MEASUREMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_HYDROGEN_CONCENTRATION_MEASUREMENT_CLUSTER \ - { ZCL_HYDROGEN_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 0x0000, "Hydrogen Concentration Measurement" }, -#else -#define SILABS_PRINTCLUSTER_HYDROGEN_CONCENTRATION_MEASUREMENT_CLUSTER -#endif -#if defined(ZCL_USING_HYDROGEN_SULPHIDE_CONCENTRATION_MEASUREMENT_CLUSTER_SERVER) || \ - defined(ZCL_USING_HYDROGEN_SULPHIDE_CONCENTRATION_MEASUREMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_HYDROGEN_SULPHIDE_CONCENTRATION_MEASUREMENT_CLUSTER \ - { ZCL_HYDROGEN_SULPHIDE_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 0x0000, "Hydrogen Sulphide Concentration Measurement" }, -#else -#define SILABS_PRINTCLUSTER_HYDROGEN_SULPHIDE_CONCENTRATION_MEASUREMENT_CLUSTER -#endif -#if defined(ZCL_USING_NITRIC_OXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_SERVER) || \ - defined(ZCL_USING_NITRIC_OXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_NITRIC_OXIDE_CONCENTRATION_MEASUREMENT_CLUSTER \ - { ZCL_NITRIC_OXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 0x0000, "Nitric Oxide Concentration Measurement" }, -#else -#define SILABS_PRINTCLUSTER_NITRIC_OXIDE_CONCENTRATION_MEASUREMENT_CLUSTER -#endif -#if defined(ZCL_USING_NITROGEN_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_SERVER) || \ - defined(ZCL_USING_NITROGEN_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_NITROGEN_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER \ - { ZCL_NITROGEN_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 0x0000, "Nitrogen Dioxide Concentration Measurement" }, -#else -#define SILABS_PRINTCLUSTER_NITROGEN_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER -#endif -#if defined(ZCL_USING_OXYGEN_CONCENTRATION_MEASUREMENT_CLUSTER_SERVER) || \ - defined(ZCL_USING_OXYGEN_CONCENTRATION_MEASUREMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_OXYGEN_CONCENTRATION_MEASUREMENT_CLUSTER \ - { ZCL_OXYGEN_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 0x0000, "Oxygen Concentration Measurement" }, -#else -#define SILABS_PRINTCLUSTER_OXYGEN_CONCENTRATION_MEASUREMENT_CLUSTER -#endif -#if defined(ZCL_USING_OZONE_CONCENTRATION_MEASUREMENT_CLUSTER_SERVER) || \ - defined(ZCL_USING_OZONE_CONCENTRATION_MEASUREMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_OZONE_CONCENTRATION_MEASUREMENT_CLUSTER \ - { ZCL_OZONE_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 0x0000, "Ozone Concentration Measurement" }, -#else -#define SILABS_PRINTCLUSTER_OZONE_CONCENTRATION_MEASUREMENT_CLUSTER -#endif -#if defined(ZCL_USING_SULFUR_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_SERVER) || \ - defined(ZCL_USING_SULFUR_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_SULFUR_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER \ - { ZCL_SULFUR_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 0x0000, "Sulfur Dioxide Concentration Measurement" }, -#else -#define SILABS_PRINTCLUSTER_SULFUR_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER -#endif -#if defined(ZCL_USING_DISSOLVED_OXYGEN_CONCENTRATION_MEASUREMENT_CLUSTER_SERVER) || \ - defined(ZCL_USING_DISSOLVED_OXYGEN_CONCENTRATION_MEASUREMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_DISSOLVED_OXYGEN_CONCENTRATION_MEASUREMENT_CLUSTER \ - { ZCL_DISSOLVED_OXYGEN_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 0x0000, "Dissolved Oxygen Concentration Measurement" }, -#else -#define SILABS_PRINTCLUSTER_DISSOLVED_OXYGEN_CONCENTRATION_MEASUREMENT_CLUSTER -#endif -#if defined(ZCL_USING_BROMATE_CONCENTRATION_MEASUREMENT_CLUSTER_SERVER) || \ - defined(ZCL_USING_BROMATE_CONCENTRATION_MEASUREMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_BROMATE_CONCENTRATION_MEASUREMENT_CLUSTER \ - { ZCL_BROMATE_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 0x0000, "Bromate Concentration Measurement" }, -#else -#define SILABS_PRINTCLUSTER_BROMATE_CONCENTRATION_MEASUREMENT_CLUSTER -#endif -#if defined(ZCL_USING_CHLORAMINES_CONCENTRATION_MEASUREMENT_CLUSTER_SERVER) || \ - defined(ZCL_USING_CHLORAMINES_CONCENTRATION_MEASUREMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_CHLORAMINES_CONCENTRATION_MEASUREMENT_CLUSTER \ - { ZCL_CHLORAMINES_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 0x0000, "Chloramines Concentration Measurement" }, -#else -#define SILABS_PRINTCLUSTER_CHLORAMINES_CONCENTRATION_MEASUREMENT_CLUSTER -#endif -#if defined(ZCL_USING_CHLORINE_CONCENTRATION_MEASUREMENT_CLUSTER_SERVER) || \ - defined(ZCL_USING_CHLORINE_CONCENTRATION_MEASUREMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_CHLORINE_CONCENTRATION_MEASUREMENT_CLUSTER \ - { ZCL_CHLORINE_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 0x0000, "Chlorine Concentration Measurement" }, -#else -#define SILABS_PRINTCLUSTER_CHLORINE_CONCENTRATION_MEASUREMENT_CLUSTER -#endif -#if defined(ZCL_USING_FECAL_COLIFORM_AND_E_COLI_CONCENTRATION_MEASUREMENT_CLUSTER_SERVER) || \ - defined(ZCL_USING_FECAL_COLIFORM_AND_E_COLI_CONCENTRATION_MEASUREMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_FECAL_COLIFORM_AND_E_COLI_CONCENTRATION_MEASUREMENT_CLUSTER \ - { ZCL_FECAL_COLIFORM_AND_E_COLI_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 0x0000, \ - "Fecal coliform and E. Coli Concentration Measurement" }, -#else -#define SILABS_PRINTCLUSTER_FECAL_COLIFORM_AND_E_COLI_CONCENTRATION_MEASUREMENT_CLUSTER -#endif -#if defined(ZCL_USING_FLUORIDE_CONCENTRATION_MEASUREMENT_CLUSTER_SERVER) || \ - defined(ZCL_USING_FLUORIDE_CONCENTRATION_MEASUREMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_FLUORIDE_CONCENTRATION_MEASUREMENT_CLUSTER \ - { ZCL_FLUORIDE_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 0x0000, "Fluoride Concentration Measurement" }, -#else -#define SILABS_PRINTCLUSTER_FLUORIDE_CONCENTRATION_MEASUREMENT_CLUSTER -#endif -#if defined(ZCL_USING_HALOACETIC_ACIDS_CONCENTRATION_MEASUREMENT_CLUSTER_SERVER) || \ - defined(ZCL_USING_HALOACETIC_ACIDS_CONCENTRATION_MEASUREMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_HALOACETIC_ACIDS_CONCENTRATION_MEASUREMENT_CLUSTER \ - { ZCL_HALOACETIC_ACIDS_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 0x0000, "Haloacetic Acids Concentration Measurement" }, -#else -#define SILABS_PRINTCLUSTER_HALOACETIC_ACIDS_CONCENTRATION_MEASUREMENT_CLUSTER -#endif -#if defined(ZCL_USING_TOTAL_TRIHALOMETHANES_CONCENTRATION_MEASUREMENT_CLUSTER_SERVER) || \ - defined(ZCL_USING_TOTAL_TRIHALOMETHANES_CONCENTRATION_MEASUREMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_TOTAL_TRIHALOMETHANES_CONCENTRATION_MEASUREMENT_CLUSTER \ - { ZCL_TOTAL_TRIHALOMETHANES_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 0x0000, "Total Trihalomethanes Concentration Measurement" }, -#else -#define SILABS_PRINTCLUSTER_TOTAL_TRIHALOMETHANES_CONCENTRATION_MEASUREMENT_CLUSTER -#endif -#if defined(ZCL_USING_TOTAL_COLIFORM_BACTERIA_CONCENTRATION_MEASUREMENT_CLUSTER_SERVER) || \ - defined(ZCL_USING_TOTAL_COLIFORM_BACTERIA_CONCENTRATION_MEASUREMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_TOTAL_COLIFORM_BACTERIA_CONCENTRATION_MEASUREMENT_CLUSTER \ - { ZCL_TOTAL_COLIFORM_BACTERIA_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 0x0000, \ - "Total Coliform Bacteria Concentration Measurement" }, -#else -#define SILABS_PRINTCLUSTER_TOTAL_COLIFORM_BACTERIA_CONCENTRATION_MEASUREMENT_CLUSTER -#endif -#if defined(ZCL_USING_TURBIDITY_CONCENTRATION_MEASUREMENT_CLUSTER_SERVER) || \ - defined(ZCL_USING_TURBIDITY_CONCENTRATION_MEASUREMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_TURBIDITY_CONCENTRATION_MEASUREMENT_CLUSTER \ - { ZCL_TURBIDITY_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 0x0000, "Turbidity Concentration Measurement" }, -#else -#define SILABS_PRINTCLUSTER_TURBIDITY_CONCENTRATION_MEASUREMENT_CLUSTER -#endif -#if defined(ZCL_USING_COPPER_CONCENTRATION_MEASUREMENT_CLUSTER_SERVER) || \ - defined(ZCL_USING_COPPER_CONCENTRATION_MEASUREMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_COPPER_CONCENTRATION_MEASUREMENT_CLUSTER \ - { ZCL_COPPER_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 0x0000, "Copper Concentration Measurement" }, -#else -#define SILABS_PRINTCLUSTER_COPPER_CONCENTRATION_MEASUREMENT_CLUSTER -#endif -#if defined(ZCL_USING_LEAD_CONCENTRATION_MEASUREMENT_CLUSTER_SERVER) || \ - defined(ZCL_USING_LEAD_CONCENTRATION_MEASUREMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_LEAD_CONCENTRATION_MEASUREMENT_CLUSTER \ - { ZCL_LEAD_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 0x0000, "Lead Concentration Measurement" }, -#else -#define SILABS_PRINTCLUSTER_LEAD_CONCENTRATION_MEASUREMENT_CLUSTER -#endif -#if defined(ZCL_USING_MANGANESE_CONCENTRATION_MEASUREMENT_CLUSTER_SERVER) || \ - defined(ZCL_USING_MANGANESE_CONCENTRATION_MEASUREMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_MANGANESE_CONCENTRATION_MEASUREMENT_CLUSTER \ - { ZCL_MANGANESE_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 0x0000, "Manganese Concentration Measurement" }, -#else -#define SILABS_PRINTCLUSTER_MANGANESE_CONCENTRATION_MEASUREMENT_CLUSTER -#endif -#if defined(ZCL_USING_SULFATE_CONCENTRATION_MEASUREMENT_CLUSTER_SERVER) || \ - defined(ZCL_USING_SULFATE_CONCENTRATION_MEASUREMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_SULFATE_CONCENTRATION_MEASUREMENT_CLUSTER \ - { ZCL_SULFATE_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 0x0000, "Sulfate Concentration Measurement" }, -#else -#define SILABS_PRINTCLUSTER_SULFATE_CONCENTRATION_MEASUREMENT_CLUSTER -#endif -#if defined(ZCL_USING_BROMODICHLOROMETHANE_CONCENTRATION_MEASUREMENT_CLUSTER_SERVER) || \ - defined(ZCL_USING_BROMODICHLOROMETHANE_CONCENTRATION_MEASUREMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_BROMODICHLOROMETHANE_CONCENTRATION_MEASUREMENT_CLUSTER \ - { ZCL_BROMODICHLOROMETHANE_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 0x0000, "Bromodichloromethane Concentration Measurement" }, -#else -#define SILABS_PRINTCLUSTER_BROMODICHLOROMETHANE_CONCENTRATION_MEASUREMENT_CLUSTER -#endif -#if defined(ZCL_USING_BROMOFORM_CONCENTRATION_MEASUREMENT_CLUSTER_SERVER) || \ - defined(ZCL_USING_BROMOFORM_CONCENTRATION_MEASUREMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_BROMOFORM_CONCENTRATION_MEASUREMENT_CLUSTER \ - { ZCL_BROMOFORM_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 0x0000, "Bromoform Concentration Measurement" }, -#else -#define SILABS_PRINTCLUSTER_BROMOFORM_CONCENTRATION_MEASUREMENT_CLUSTER -#endif -#if defined(ZCL_USING_CHLORODIBROMOMETHANE_CONCENTRATION_MEASUREMENT_CLUSTER_SERVER) || \ - defined(ZCL_USING_CHLORODIBROMOMETHANE_CONCENTRATION_MEASUREMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_CHLORODIBROMOMETHANE_CONCENTRATION_MEASUREMENT_CLUSTER \ - { ZCL_CHLORODIBROMOMETHANE_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 0x0000, "Chlorodibromomethane Concentration Measurement" }, -#else -#define SILABS_PRINTCLUSTER_CHLORODIBROMOMETHANE_CONCENTRATION_MEASUREMENT_CLUSTER -#endif -#if defined(ZCL_USING_CHLOROFORM_CONCENTRATION_MEASUREMENT_CLUSTER_SERVER) || \ - defined(ZCL_USING_CHLOROFORM_CONCENTRATION_MEASUREMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_CHLOROFORM_CONCENTRATION_MEASUREMENT_CLUSTER \ - { ZCL_CHLOROFORM_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 0x0000, "Chloroform Concentration Measurement" }, -#else -#define SILABS_PRINTCLUSTER_CHLOROFORM_CONCENTRATION_MEASUREMENT_CLUSTER -#endif -#if defined(ZCL_USING_SODIUM_CONCENTRATION_MEASUREMENT_CLUSTER_SERVER) || \ - defined(ZCL_USING_SODIUM_CONCENTRATION_MEASUREMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_SODIUM_CONCENTRATION_MEASUREMENT_CLUSTER \ - { ZCL_SODIUM_CONCENTRATION_MEASUREMENT_CLUSTER_ID, 0x0000, "Sodium Concentration Measurement" }, -#else -#define SILABS_PRINTCLUSTER_SODIUM_CONCENTRATION_MEASUREMENT_CLUSTER -#endif -#if defined(ZCL_USING_IAS_ZONE_CLUSTER_SERVER) || defined(ZCL_USING_IAS_ZONE_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_IAS_ZONE_CLUSTER { ZCL_IAS_ZONE_CLUSTER_ID, 0x0000, "IAS Zone" }, -#else -#define SILABS_PRINTCLUSTER_IAS_ZONE_CLUSTER -#endif -#if defined(ZCL_USING_IAS_ACE_CLUSTER_SERVER) || defined(ZCL_USING_IAS_ACE_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_IAS_ACE_CLUSTER { ZCL_IAS_ACE_CLUSTER_ID, 0x0000, "IAS ACE" }, -#else -#define SILABS_PRINTCLUSTER_IAS_ACE_CLUSTER -#endif -#if defined(ZCL_USING_IAS_WD_CLUSTER_SERVER) || defined(ZCL_USING_IAS_WD_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_IAS_WD_CLUSTER { ZCL_IAS_WD_CLUSTER_ID, 0x0000, "IAS WD" }, -#else -#define SILABS_PRINTCLUSTER_IAS_WD_CLUSTER -#endif -#if defined(ZCL_USING_GENERIC_TUNNEL_CLUSTER_SERVER) || defined(ZCL_USING_GENERIC_TUNNEL_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_GENERIC_TUNNEL_CLUSTER { ZCL_GENERIC_TUNNEL_CLUSTER_ID, 0x0000, "Generic Tunnel" }, -#else -#define SILABS_PRINTCLUSTER_GENERIC_TUNNEL_CLUSTER -#endif -#if defined(ZCL_USING_BACNET_PROTOCOL_TUNNEL_CLUSTER_SERVER) || defined(ZCL_USING_BACNET_PROTOCOL_TUNNEL_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_BACNET_PROTOCOL_TUNNEL_CLUSTER \ - { ZCL_BACNET_PROTOCOL_TUNNEL_CLUSTER_ID, 0x0000, "BACnet Protocol Tunnel" }, -#else -#define SILABS_PRINTCLUSTER_BACNET_PROTOCOL_TUNNEL_CLUSTER -#endif -#if defined(ZCL_USING_11073_PROTOCOL_TUNNEL_CLUSTER_SERVER) || defined(ZCL_USING_11073_PROTOCOL_TUNNEL_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_11073_PROTOCOL_TUNNEL_CLUSTER { ZCL_11073_PROTOCOL_TUNNEL_CLUSTER_ID, 0x0000, "11073 Protocol Tunnel" }, -#else -#define SILABS_PRINTCLUSTER_11073_PROTOCOL_TUNNEL_CLUSTER -#endif -#if defined(ZCL_USING_ISO7816_PROTOCOL_TUNNEL_CLUSTER_SERVER) || defined(ZCL_USING_ISO7816_PROTOCOL_TUNNEL_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_ISO7816_PROTOCOL_TUNNEL_CLUSTER \ - { ZCL_ISO7816_PROTOCOL_TUNNEL_CLUSTER_ID, 0x0000, "ISO 7816 Protocol Tunnel" }, -#else -#define SILABS_PRINTCLUSTER_ISO7816_PROTOCOL_TUNNEL_CLUSTER -#endif -#if defined(ZCL_USING_PRICE_CLUSTER_SERVER) || defined(ZCL_USING_PRICE_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_PRICE_CLUSTER { ZCL_PRICE_CLUSTER_ID, 0x0000, "Price" }, -#else -#define SILABS_PRINTCLUSTER_PRICE_CLUSTER -#endif -#if defined(ZCL_USING_DEMAND_RESPONSE_LOAD_CONTROL_CLUSTER_SERVER) || defined(ZCL_USING_DEMAND_RESPONSE_LOAD_CONTROL_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_DEMAND_RESPONSE_LOAD_CONTROL_CLUSTER \ - { ZCL_DEMAND_RESPONSE_LOAD_CONTROL_CLUSTER_ID, 0x0000, "Demand Response and Load Control" }, -#else -#define SILABS_PRINTCLUSTER_DEMAND_RESPONSE_LOAD_CONTROL_CLUSTER -#endif -#if defined(ZCL_USING_SIMPLE_METERING_CLUSTER_SERVER) || defined(ZCL_USING_SIMPLE_METERING_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_SIMPLE_METERING_CLUSTER { ZCL_SIMPLE_METERING_CLUSTER_ID, 0x0000, "Simple Metering" }, -#else -#define SILABS_PRINTCLUSTER_SIMPLE_METERING_CLUSTER -#endif -#if defined(ZCL_USING_MESSAGING_CLUSTER_SERVER) || defined(ZCL_USING_MESSAGING_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_MESSAGING_CLUSTER { ZCL_MESSAGING_CLUSTER_ID, 0x0000, "Messaging" }, -#else -#define SILABS_PRINTCLUSTER_MESSAGING_CLUSTER -#endif -#if defined(ZCL_USING_TUNNELING_CLUSTER_SERVER) || defined(ZCL_USING_TUNNELING_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_TUNNELING_CLUSTER { ZCL_TUNNELING_CLUSTER_ID, 0x0000, "Tunneling" }, -#else -#define SILABS_PRINTCLUSTER_TUNNELING_CLUSTER -#endif -#if defined(ZCL_USING_PREPAYMENT_CLUSTER_SERVER) || defined(ZCL_USING_PREPAYMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_PREPAYMENT_CLUSTER { ZCL_PREPAYMENT_CLUSTER_ID, 0x0000, "Prepayment" }, -#else -#define SILABS_PRINTCLUSTER_PREPAYMENT_CLUSTER -#endif -#if defined(ZCL_USING_ENERGY_MANAGEMENT_CLUSTER_SERVER) || defined(ZCL_USING_ENERGY_MANAGEMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_ENERGY_MANAGEMENT_CLUSTER { ZCL_ENERGY_MANAGEMENT_CLUSTER_ID, 0x0000, "Energy Management" }, -#else -#define SILABS_PRINTCLUSTER_ENERGY_MANAGEMENT_CLUSTER -#endif -#if defined(ZCL_USING_CALENDAR_CLUSTER_SERVER) || defined(ZCL_USING_CALENDAR_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_CALENDAR_CLUSTER { ZCL_CALENDAR_CLUSTER_ID, 0x0000, "Calendar" }, -#else -#define SILABS_PRINTCLUSTER_CALENDAR_CLUSTER -#endif -#if defined(ZCL_USING_DEVICE_MANAGEMENT_CLUSTER_SERVER) || defined(ZCL_USING_DEVICE_MANAGEMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_DEVICE_MANAGEMENT_CLUSTER { ZCL_DEVICE_MANAGEMENT_CLUSTER_ID, 0x0000, "Device Management" }, -#else -#define SILABS_PRINTCLUSTER_DEVICE_MANAGEMENT_CLUSTER -#endif -#if defined(ZCL_USING_EVENTS_CLUSTER_SERVER) || defined(ZCL_USING_EVENTS_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_EVENTS_CLUSTER { ZCL_EVENTS_CLUSTER_ID, 0x0000, "Events" }, -#else -#define SILABS_PRINTCLUSTER_EVENTS_CLUSTER -#endif -#if defined(ZCL_USING_MDU_PAIRING_CLUSTER_SERVER) || defined(ZCL_USING_MDU_PAIRING_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_MDU_PAIRING_CLUSTER { ZCL_MDU_PAIRING_CLUSTER_ID, 0x0000, "MDU Pairing" }, -#else -#define SILABS_PRINTCLUSTER_MDU_PAIRING_CLUSTER -#endif -#if defined(ZCL_USING_SUB_GHZ_CLUSTER_SERVER) || defined(ZCL_USING_SUB_GHZ_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_SUB_GHZ_CLUSTER { ZCL_SUB_GHZ_CLUSTER_ID, 0x0000, "Sub-GHz" }, -#else -#define SILABS_PRINTCLUSTER_SUB_GHZ_CLUSTER -#endif -#if defined(ZCL_USING_KEY_ESTABLISHMENT_CLUSTER_SERVER) || defined(ZCL_USING_KEY_ESTABLISHMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_KEY_ESTABLISHMENT_CLUSTER { ZCL_KEY_ESTABLISHMENT_CLUSTER_ID, 0x0000, "Key Establishment" }, -#else -#define SILABS_PRINTCLUSTER_KEY_ESTABLISHMENT_CLUSTER -#endif -#if defined(ZCL_USING_INFORMATION_CLUSTER_SERVER) || defined(ZCL_USING_INFORMATION_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_INFORMATION_CLUSTER { ZCL_INFORMATION_CLUSTER_ID, 0x0000, "Information" }, -#else -#define SILABS_PRINTCLUSTER_INFORMATION_CLUSTER -#endif -#if defined(ZCL_USING_DATA_SHARING_CLUSTER_SERVER) || defined(ZCL_USING_DATA_SHARING_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_DATA_SHARING_CLUSTER { ZCL_DATA_SHARING_CLUSTER_ID, 0x0000, "Data Sharing" }, -#else -#define SILABS_PRINTCLUSTER_DATA_SHARING_CLUSTER -#endif -#if defined(ZCL_USING_GAMING_CLUSTER_SERVER) || defined(ZCL_USING_GAMING_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_GAMING_CLUSTER { ZCL_GAMING_CLUSTER_ID, 0x0000, "Gaming" }, -#else -#define SILABS_PRINTCLUSTER_GAMING_CLUSTER -#endif -#if defined(ZCL_USING_DATA_RATE_CONTROL_CLUSTER_SERVER) || defined(ZCL_USING_DATA_RATE_CONTROL_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_DATA_RATE_CONTROL_CLUSTER { ZCL_DATA_RATE_CONTROL_CLUSTER_ID, 0x0000, "Data Rate Control" }, -#else -#define SILABS_PRINTCLUSTER_DATA_RATE_CONTROL_CLUSTER -#endif -#if defined(ZCL_USING_VOICE_OVER_ZIGBEE_CLUSTER_SERVER) || defined(ZCL_USING_VOICE_OVER_ZIGBEE_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_VOICE_OVER_ZIGBEE_CLUSTER { ZCL_VOICE_OVER_ZIGBEE_CLUSTER_ID, 0x0000, "Voice over ZigBee" }, -#else -#define SILABS_PRINTCLUSTER_VOICE_OVER_ZIGBEE_CLUSTER -#endif -#if defined(ZCL_USING_CHATTING_CLUSTER_SERVER) || defined(ZCL_USING_CHATTING_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_CHATTING_CLUSTER { ZCL_CHATTING_CLUSTER_ID, 0x0000, "Chatting" }, -#else -#define SILABS_PRINTCLUSTER_CHATTING_CLUSTER -#endif -#if defined(ZCL_USING_PAYMENT_CLUSTER_SERVER) || defined(ZCL_USING_PAYMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_PAYMENT_CLUSTER { ZCL_PAYMENT_CLUSTER_ID, 0x0000, "Payment" }, -#else -#define SILABS_PRINTCLUSTER_PAYMENT_CLUSTER -#endif -#if defined(ZCL_USING_BILLING_CLUSTER_SERVER) || defined(ZCL_USING_BILLING_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_BILLING_CLUSTER { ZCL_BILLING_CLUSTER_ID, 0x0000, "Billing" }, -#else -#define SILABS_PRINTCLUSTER_BILLING_CLUSTER -#endif -#if defined(ZCL_USING_APPLIANCE_IDENTIFICATION_CLUSTER_SERVER) || defined(ZCL_USING_APPLIANCE_IDENTIFICATION_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_APPLIANCE_IDENTIFICATION_CLUSTER \ - { ZCL_APPLIANCE_IDENTIFICATION_CLUSTER_ID, 0x0000, "Appliance Identification" }, -#else -#define SILABS_PRINTCLUSTER_APPLIANCE_IDENTIFICATION_CLUSTER -#endif -#if defined(ZCL_USING_METER_IDENTIFICATION_CLUSTER_SERVER) || defined(ZCL_USING_METER_IDENTIFICATION_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_METER_IDENTIFICATION_CLUSTER { ZCL_METER_IDENTIFICATION_CLUSTER_ID, 0x0000, "Meter Identification" }, -#else -#define SILABS_PRINTCLUSTER_METER_IDENTIFICATION_CLUSTER -#endif -#if defined(ZCL_USING_APPLIANCE_EVENTS_AND_ALERT_CLUSTER_SERVER) || defined(ZCL_USING_APPLIANCE_EVENTS_AND_ALERT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_APPLIANCE_EVENTS_AND_ALERT_CLUSTER \ - { ZCL_APPLIANCE_EVENTS_AND_ALERT_CLUSTER_ID, 0x0000, "Appliance Events and Alert" }, -#else -#define SILABS_PRINTCLUSTER_APPLIANCE_EVENTS_AND_ALERT_CLUSTER -#endif -#if defined(ZCL_USING_APPLIANCE_STATISTICS_CLUSTER_SERVER) || defined(ZCL_USING_APPLIANCE_STATISTICS_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_APPLIANCE_STATISTICS_CLUSTER { ZCL_APPLIANCE_STATISTICS_CLUSTER_ID, 0x0000, "Appliance Statistics" }, -#else -#define SILABS_PRINTCLUSTER_APPLIANCE_STATISTICS_CLUSTER -#endif -#if defined(ZCL_USING_ELECTRICAL_MEASUREMENT_CLUSTER_SERVER) || defined(ZCL_USING_ELECTRICAL_MEASUREMENT_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_ELECTRICAL_MEASUREMENT_CLUSTER \ - { ZCL_ELECTRICAL_MEASUREMENT_CLUSTER_ID, 0x0000, "Electrical Measurement" }, -#else -#define SILABS_PRINTCLUSTER_ELECTRICAL_MEASUREMENT_CLUSTER -#endif -#if defined(ZCL_USING_DIAGNOSTICS_CLUSTER_SERVER) || defined(ZCL_USING_DIAGNOSTICS_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_DIAGNOSTICS_CLUSTER { ZCL_DIAGNOSTICS_CLUSTER_ID, 0x0000, "Diagnostics" }, -#else -#define SILABS_PRINTCLUSTER_DIAGNOSTICS_CLUSTER -#endif -#if defined(ZCL_USING_ZLL_COMMISSIONING_CLUSTER_SERVER) || defined(ZCL_USING_ZLL_COMMISSIONING_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_ZLL_COMMISSIONING_CLUSTER { ZCL_ZLL_COMMISSIONING_CLUSTER_ID, 0x0000, "ZLL Commissioning" }, -#else -#define SILABS_PRINTCLUSTER_ZLL_COMMISSIONING_CLUSTER -#endif -#if defined(ZCL_USING_SAMPLE_MFG_SPECIFIC_CLUSTER_SERVER) || defined(ZCL_USING_SAMPLE_MFG_SPECIFIC_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_SAMPLE_MFG_SPECIFIC_CLUSTER \ - { ZCL_SAMPLE_MFG_SPECIFIC_CLUSTER_ID, 0x1002, "Sample Mfg Specific Cluster" }, -#else -#define SILABS_PRINTCLUSTER_SAMPLE_MFG_SPECIFIC_CLUSTER -#endif -#if defined(ZCL_USING_SAMPLE_MFG_SPECIFIC_CLUSTER_2_SERVER) || defined(ZCL_USING_SAMPLE_MFG_SPECIFIC_CLUSTER_2_CLIENT) -#define SILABS_PRINTCLUSTER_SAMPLE_MFG_SPECIFIC_CLUSTER_2 \ - { ZCL_SAMPLE_MFG_SPECIFIC_CLUSTER_2_ID, 0x1049, "Sample Mfg Specific Cluster 2" }, -#else -#define SILABS_PRINTCLUSTER_SAMPLE_MFG_SPECIFIC_CLUSTER_2 -#endif -#if defined(ZCL_USING_OTA_CONFIGURATION_CLUSTER_SERVER) || defined(ZCL_USING_OTA_CONFIGURATION_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_OTA_CONFIGURATION_CLUSTER { ZCL_OTA_CONFIGURATION_CLUSTER_ID, 0x1002, "Configuration Cluster" }, -#else -#define SILABS_PRINTCLUSTER_OTA_CONFIGURATION_CLUSTER -#endif -#if defined(ZCL_USING_MFGLIB_CLUSTER_SERVER) || defined(ZCL_USING_MFGLIB_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_MFGLIB_CLUSTER { ZCL_MFGLIB_CLUSTER_ID, 0x1002, "MFGLIB Cluster" }, -#else -#define SILABS_PRINTCLUSTER_MFGLIB_CLUSTER -#endif -#if defined(ZCL_USING_SL_WWAH_CLUSTER_SERVER) || defined(ZCL_USING_SL_WWAH_CLUSTER_CLIENT) -#define SILABS_PRINTCLUSTER_SL_WWAH_CLUSTER { ZCL_SL_WWAH_CLUSTER_ID, 0x1217, "SL Works With All Hubs" }, -#else -#define SILABS_PRINTCLUSTER_SL_WWAH_CLUSTER -#endif -#define CLUSTER_IDS_TO_NAMES \ - SILABS_PRINTCLUSTER_BASIC_CLUSTER \ - SILABS_PRINTCLUSTER_POWER_CONFIG_CLUSTER \ - SILABS_PRINTCLUSTER_DEVICE_TEMP_CLUSTER \ - SILABS_PRINTCLUSTER_IDENTIFY_CLUSTER \ - SILABS_PRINTCLUSTER_GROUPS_CLUSTER \ - SILABS_PRINTCLUSTER_SCENES_CLUSTER \ - SILABS_PRINTCLUSTER_ON_OFF_CLUSTER \ - SILABS_PRINTCLUSTER_ON_OFF_SWITCH_CONFIG_CLUSTER \ - SILABS_PRINTCLUSTER_LEVEL_CONTROL_CLUSTER \ - SILABS_PRINTCLUSTER_ALARM_CLUSTER \ - SILABS_PRINTCLUSTER_TIME_CLUSTER \ - SILABS_PRINTCLUSTER_RSSI_LOCATION_CLUSTER \ - SILABS_PRINTCLUSTER_BINARY_INPUT_BASIC_CLUSTER \ - SILABS_PRINTCLUSTER_COMMISSIONING_CLUSTER \ - SILABS_PRINTCLUSTER_PARTITION_CLUSTER \ - SILABS_PRINTCLUSTER_OTA_BOOTLOAD_CLUSTER \ - SILABS_PRINTCLUSTER_POWER_PROFILE_CLUSTER \ - SILABS_PRINTCLUSTER_APPLIANCE_CONTROL_CLUSTER \ - SILABS_PRINTCLUSTER_POLL_CONTROL_CLUSTER \ - SILABS_PRINTCLUSTER_GREEN_POWER_CLUSTER \ - SILABS_PRINTCLUSTER_KEEPALIVE_CLUSTER \ - SILABS_PRINTCLUSTER_SHADE_CONFIG_CLUSTER \ - SILABS_PRINTCLUSTER_DOOR_LOCK_CLUSTER \ - SILABS_PRINTCLUSTER_WINDOW_COVERING_CLUSTER \ - SILABS_PRINTCLUSTER_BARRIER_CONTROL_CLUSTER \ - SILABS_PRINTCLUSTER_PUMP_CONFIG_CONTROL_CLUSTER \ - SILABS_PRINTCLUSTER_THERMOSTAT_CLUSTER \ - SILABS_PRINTCLUSTER_FAN_CONTROL_CLUSTER \ - SILABS_PRINTCLUSTER_DEHUMID_CONTROL_CLUSTER \ - SILABS_PRINTCLUSTER_THERMOSTAT_UI_CONFIG_CLUSTER \ - SILABS_PRINTCLUSTER_COLOR_CONTROL_CLUSTER \ - SILABS_PRINTCLUSTER_BALLAST_CONFIGURATION_CLUSTER \ - SILABS_PRINTCLUSTER_ILLUM_MEASUREMENT_CLUSTER \ - SILABS_PRINTCLUSTER_ILLUM_LEVEL_SENSING_CLUSTER \ - SILABS_PRINTCLUSTER_TEMP_MEASUREMENT_CLUSTER \ - SILABS_PRINTCLUSTER_PRESSURE_MEASUREMENT_CLUSTER \ - SILABS_PRINTCLUSTER_FLOW_MEASUREMENT_CLUSTER \ - SILABS_PRINTCLUSTER_RELATIVE_HUMIDITY_MEASUREMENT_CLUSTER \ - SILABS_PRINTCLUSTER_OCCUPANCY_SENSING_CLUSTER \ - SILABS_PRINTCLUSTER_CARBON_MONOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER \ - SILABS_PRINTCLUSTER_CARBON_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER \ - SILABS_PRINTCLUSTER_ETHYLENE_CONCENTRATION_MEASUREMENT_CLUSTER \ - SILABS_PRINTCLUSTER_ETHYLENE_OXIDE_CONCENTRATION_MEASUREMENT_CLUSTER \ - SILABS_PRINTCLUSTER_HYDROGEN_CONCENTRATION_MEASUREMENT_CLUSTER \ - SILABS_PRINTCLUSTER_HYDROGEN_SULPHIDE_CONCENTRATION_MEASUREMENT_CLUSTER \ - SILABS_PRINTCLUSTER_NITRIC_OXIDE_CONCENTRATION_MEASUREMENT_CLUSTER \ - SILABS_PRINTCLUSTER_NITROGEN_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER \ - SILABS_PRINTCLUSTER_OXYGEN_CONCENTRATION_MEASUREMENT_CLUSTER \ - SILABS_PRINTCLUSTER_OZONE_CONCENTRATION_MEASUREMENT_CLUSTER \ - SILABS_PRINTCLUSTER_SULFUR_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER \ - SILABS_PRINTCLUSTER_DISSOLVED_OXYGEN_CONCENTRATION_MEASUREMENT_CLUSTER \ - SILABS_PRINTCLUSTER_BROMATE_CONCENTRATION_MEASUREMENT_CLUSTER \ - SILABS_PRINTCLUSTER_CHLORAMINES_CONCENTRATION_MEASUREMENT_CLUSTER \ - SILABS_PRINTCLUSTER_CHLORINE_CONCENTRATION_MEASUREMENT_CLUSTER \ - SILABS_PRINTCLUSTER_FECAL_COLIFORM_AND_E_COLI_CONCENTRATION_MEASUREMENT_CLUSTER \ - SILABS_PRINTCLUSTER_FLUORIDE_CONCENTRATION_MEASUREMENT_CLUSTER \ - SILABS_PRINTCLUSTER_HALOACETIC_ACIDS_CONCENTRATION_MEASUREMENT_CLUSTER \ - SILABS_PRINTCLUSTER_TOTAL_TRIHALOMETHANES_CONCENTRATION_MEASUREMENT_CLUSTER \ - SILABS_PRINTCLUSTER_TOTAL_COLIFORM_BACTERIA_CONCENTRATION_MEASUREMENT_CLUSTER \ - SILABS_PRINTCLUSTER_TURBIDITY_CONCENTRATION_MEASUREMENT_CLUSTER \ - SILABS_PRINTCLUSTER_COPPER_CONCENTRATION_MEASUREMENT_CLUSTER \ - SILABS_PRINTCLUSTER_LEAD_CONCENTRATION_MEASUREMENT_CLUSTER \ - SILABS_PRINTCLUSTER_MANGANESE_CONCENTRATION_MEASUREMENT_CLUSTER \ - SILABS_PRINTCLUSTER_SULFATE_CONCENTRATION_MEASUREMENT_CLUSTER \ - SILABS_PRINTCLUSTER_BROMODICHLOROMETHANE_CONCENTRATION_MEASUREMENT_CLUSTER \ - SILABS_PRINTCLUSTER_BROMOFORM_CONCENTRATION_MEASUREMENT_CLUSTER \ - SILABS_PRINTCLUSTER_CHLORODIBROMOMETHANE_CONCENTRATION_MEASUREMENT_CLUSTER \ - SILABS_PRINTCLUSTER_CHLOROFORM_CONCENTRATION_MEASUREMENT_CLUSTER \ - SILABS_PRINTCLUSTER_SODIUM_CONCENTRATION_MEASUREMENT_CLUSTER \ - SILABS_PRINTCLUSTER_IAS_ZONE_CLUSTER \ - SILABS_PRINTCLUSTER_IAS_ACE_CLUSTER \ - SILABS_PRINTCLUSTER_IAS_WD_CLUSTER \ - SILABS_PRINTCLUSTER_GENERIC_TUNNEL_CLUSTER \ - SILABS_PRINTCLUSTER_BACNET_PROTOCOL_TUNNEL_CLUSTER \ - SILABS_PRINTCLUSTER_11073_PROTOCOL_TUNNEL_CLUSTER \ - SILABS_PRINTCLUSTER_ISO7816_PROTOCOL_TUNNEL_CLUSTER \ - SILABS_PRINTCLUSTER_PRICE_CLUSTER \ - SILABS_PRINTCLUSTER_DEMAND_RESPONSE_LOAD_CONTROL_CLUSTER \ - SILABS_PRINTCLUSTER_SIMPLE_METERING_CLUSTER \ - SILABS_PRINTCLUSTER_MESSAGING_CLUSTER \ - SILABS_PRINTCLUSTER_TUNNELING_CLUSTER \ - SILABS_PRINTCLUSTER_PREPAYMENT_CLUSTER \ - SILABS_PRINTCLUSTER_ENERGY_MANAGEMENT_CLUSTER \ - SILABS_PRINTCLUSTER_CALENDAR_CLUSTER \ - SILABS_PRINTCLUSTER_DEVICE_MANAGEMENT_CLUSTER \ - SILABS_PRINTCLUSTER_EVENTS_CLUSTER \ - SILABS_PRINTCLUSTER_MDU_PAIRING_CLUSTER \ - SILABS_PRINTCLUSTER_SUB_GHZ_CLUSTER \ - SILABS_PRINTCLUSTER_KEY_ESTABLISHMENT_CLUSTER \ - SILABS_PRINTCLUSTER_INFORMATION_CLUSTER \ - SILABS_PRINTCLUSTER_DATA_SHARING_CLUSTER \ - SILABS_PRINTCLUSTER_GAMING_CLUSTER \ - SILABS_PRINTCLUSTER_DATA_RATE_CONTROL_CLUSTER \ - SILABS_PRINTCLUSTER_VOICE_OVER_ZIGBEE_CLUSTER \ - SILABS_PRINTCLUSTER_CHATTING_CLUSTER \ - SILABS_PRINTCLUSTER_PAYMENT_CLUSTER \ - SILABS_PRINTCLUSTER_BILLING_CLUSTER \ - SILABS_PRINTCLUSTER_APPLIANCE_IDENTIFICATION_CLUSTER \ - SILABS_PRINTCLUSTER_METER_IDENTIFICATION_CLUSTER \ - SILABS_PRINTCLUSTER_APPLIANCE_EVENTS_AND_ALERT_CLUSTER \ - SILABS_PRINTCLUSTER_APPLIANCE_STATISTICS_CLUSTER \ - SILABS_PRINTCLUSTER_ELECTRICAL_MEASUREMENT_CLUSTER \ - SILABS_PRINTCLUSTER_DIAGNOSTICS_CLUSTER \ - SILABS_PRINTCLUSTER_ZLL_COMMISSIONING_CLUSTER \ - SILABS_PRINTCLUSTER_SAMPLE_MFG_SPECIFIC_CLUSTER \ - SILABS_PRINTCLUSTER_SAMPLE_MFG_SPECIFIC_CLUSTER_2 \ - SILABS_PRINTCLUSTER_OTA_CONFIGURATION_CLUSTER \ - SILABS_PRINTCLUSTER_MFGLIB_CLUSTER \ - SILABS_PRINTCLUSTER_SL_WWAH_CLUSTER - -#define MAX_CLUSTER_NAME_LENGTH 52 -#endif // SILABS_PRINT_CLUSTER diff --git a/examples/wifi-echo/server/esp32/third_party/connectedhomeip b/examples/wifi-echo/server/esp32/third_party/connectedhomeip deleted file mode 120000 index 3efed95be5dbe9..00000000000000 --- a/examples/wifi-echo/server/esp32/third_party/connectedhomeip +++ /dev/null @@ -1 +0,0 @@ -../../../../../ \ No newline at end of file diff --git a/gn_build.sh b/gn_build.sh index addc6e211118ea..00f25932ba0796 100755 --- a/gn_build.sh +++ b/gn_build.sh @@ -136,8 +136,8 @@ echo _chip_banner "Build: GN configure" -gn --root="$CHIP_ROOT" gen --check "$CHIP_ROOT/out/debug" --args='target_os="all"'"$extra_args" -gn --root="$CHIP_ROOT" gen --check "$CHIP_ROOT/out/release" --args='target_os="all" is_debug=false'"$extra_args" +gn --root="$CHIP_ROOT" gen --check --fail-on-unused-args "$CHIP_ROOT/out/debug" --args='target_os="all"'"$extra_args" +gn --root="$CHIP_ROOT" gen --check --fail-on-unused-args "$CHIP_ROOT/out/release" --args='target_os="all" is_debug=false'"$extra_args" _chip_banner "Build: Ninja build" diff --git a/integrations/docker/images/chip-build-android/version b/integrations/docker/images/chip-build-android/version deleted file mode 100644 index 1f77169993b921..00000000000000 --- a/integrations/docker/images/chip-build-android/version +++ /dev/null @@ -1 +0,0 @@ -0.4.13 diff --git a/integrations/docker/images/chip-build-android/version b/integrations/docker/images/chip-build-android/version new file mode 120000 index 00000000000000..a4280acd348e7f --- /dev/null +++ b/integrations/docker/images/chip-build-android/version @@ -0,0 +1 @@ +../chip-build/version \ No newline at end of file diff --git a/integrations/docker/images/chip-build-cirque/version b/integrations/docker/images/chip-build-cirque/version deleted file mode 100644 index 75274d8329449c..00000000000000 --- a/integrations/docker/images/chip-build-cirque/version +++ /dev/null @@ -1 +0,0 @@ -0.4.12 diff --git a/integrations/docker/images/chip-build-cirque/version b/integrations/docker/images/chip-build-cirque/version new file mode 120000 index 00000000000000..a4280acd348e7f --- /dev/null +++ b/integrations/docker/images/chip-build-cirque/version @@ -0,0 +1 @@ +../chip-build/version \ No newline at end of file diff --git a/integrations/docker/images/chip-build-esp32/Dockerfile b/integrations/docker/images/chip-build-esp32/Dockerfile index 602db0c41d3f63..67d3ec88f17bac 100644 --- a/integrations/docker/images/chip-build-esp32/Dockerfile +++ b/integrations/docker/images/chip-build-esp32/Dockerfile @@ -7,7 +7,7 @@ RUN set -x \ && DEBIAN_FRONTEND=noninteractive apt-get install -y python \ && mkdir -p /opt/espressif \ && cd /opt/espressif \ - && git clone --progress -b v4.1 https://github.com/espressif/esp-idf.git \ + && git clone --progress -b release/v4.1 https://github.com/espressif/esp-idf.git \ && cd esp-idf \ && git submodule update --init --progress \ && IDF_TOOLS_PATH=/opt/espressif/tools ./install.sh \ diff --git a/integrations/docker/images/chip-build-nrf-platform/Dockerfile b/integrations/docker/images/chip-build-nrf-platform/Dockerfile index 8bb17a3038201f..d46a89cec528af 100644 --- a/integrations/docker/images/chip-build-nrf-platform/Dockerfile +++ b/integrations/docker/images/chip-build-nrf-platform/Dockerfile @@ -1,6 +1,9 @@ ARG VERSION=latest FROM connectedhomeip/chip-build:${VERSION} +# Compatible Nordic Connect SDK revision. +ARG NCS_REVISION=v1.4.0 + # ================================================== # Common layers for nRF5 and nRF Connect SDK # ================================================== @@ -34,10 +37,9 @@ RUN set -x \ # Device Tree Compiler 1.4.7 && curl -o /tmp/dtc.deb http://mirrors.edge.kernel.org/ubuntu/pool/main/d/device-tree-compiler/device-tree-compiler_1.4.7-3ubuntu2_amd64.deb \ && dpkg -i /tmp/dtc.deb \ - # nRF Connect SDK [master - Aug 27th] sources & requirements && (mkdir -p /opt/nrfconnect/sdk-nrf && cd /opt/nrfconnect/sdk-nrf \ && pip3 install --no-cache-dir setuptools wheel cmake west \ - && west init -m https://github.com/nrfconnect/sdk-nrf --mr 83764f01f04f58c80bb1ae1d3e0a640496f79b49 \ + && west init -m https://github.com/nrfconnect/sdk-nrf --mr $NCS_REVISION \ && west update \ && pip3 install --no-cache-dir -r zephyr/scripts/requirements.txt \ && pip3 install --no-cache-dir -r nrf/scripts/requirements.txt \ diff --git a/integrations/docker/images/chip-build-vscode/Dockerfile b/integrations/docker/images/chip-build-vscode/Dockerfile index 4abcdec2ec4354..19dfbbfe2d27f9 100644 --- a/integrations/docker/images/chip-build-vscode/Dockerfile +++ b/integrations/docker/images/chip-build-vscode/Dockerfile @@ -9,6 +9,7 @@ COPY --from=esp32 /opt/espressif/tools /opt/espressif/tools COPY --from=esp32 /opt/espressif/qemu /opt/espressif/qemu COPY --from=nrf /opt/NordicSemiconductor/nRF5_tools /opt/NordicSemiconductor/nRF5_tools COPY --from=nrf /opt/ARM-software/gcc-arm-none-eabi-9-2019-q4-major /opt/ARM-software/gcc-arm-none-eabi-9-2019-q4-major +COPY --from=nrf /opt/nrfconnect/sdk-nrf /opt/NordicSemiconductor/nrfconnect COPY --from=efr32 /opt/SiliconLabs/sdk_support /opt/SiliconLabs/sdk_support COPY --from=android /opt/android/sdk /opt/android/sdk COPY --from=android /opt/android/android-ndk-r21b /opt/android/android-ndk-r21b @@ -17,6 +18,9 @@ ENV IDF_TOOLS_PATH=/opt/espressif/tools ENV QEMU_ESP32_DIR=/opt/espressif/qemu ENV QEMU_ESP32=/opt/espressif/qemu/xtensa-softmmu/qemu-system-xtensa ENV NRF5_TOOLS_ROOT=/opt/NordicSemiconductor/nRF5_tools +ENV ZEPHYR_BASE=/opt/NordicSemiconductor/nrfconnect/zephyr +ENV ZEPHYR_TOOLCHAIN_VARIANT=gnuarmemb +ENV GNUARMEMB_TOOLCHAIN_PATH=/opt/ARM-software/gcc-arm-none-eabi-9-2019-q4-major ENV ARM_GCC_INSTALL_ROOT=/opt/ARM-software/gcc-arm-none-eabi-9-2019-q4-major/bin ENV EFR32_SDK_ROOT=/opt/SiliconLabs/sdk_support ENV EFR32_BOARD=BRD4161A diff --git a/integrations/docker/images/chip-build/Dockerfile b/integrations/docker/images/chip-build/Dockerfile index 8cb8384dd132d5..91ba51183f4dd5 100644 --- a/integrations/docker/images/chip-build/Dockerfile +++ b/integrations/docker/images/chip-build/Dockerfile @@ -48,6 +48,7 @@ RUN set -x \ make \ net-tools \ ninja-build \ + openjdk-8-jdk \ pkg-config \ python3 \ python3-dev \ diff --git a/integrations/docker/images/chip-build/version b/integrations/docker/images/chip-build/version index 489c893e27810d..9bd36d9d4c0d26 100644 --- a/integrations/docker/images/chip-build/version +++ b/integrations/docker/images/chip-build/version @@ -1 +1 @@ -0.4.14 +0.4.18 diff --git a/integrations/docker/images/chip-cirque-device-base/Dockerfile b/integrations/docker/images/chip-cirque-device-base/Dockerfile new file mode 100644 index 00000000000000..408fe5ea355fd8 --- /dev/null +++ b/integrations/docker/images/chip-cirque-device-base/Dockerfile @@ -0,0 +1,45 @@ +FROM ubuntu:focal + +ARG OT_BR_POSIX_CHECKOUT=master + +ENV DEBIAN_FRONTEND noninteractive +ENV PLATFORM ubuntu +ENV DOCKER 1 +ENV OT_BR_POSIX_CHECKOUT=${OT_BR_POSIX_CHECKOUT} + +RUN mkdir /app + +WORKDIR /app + +# TODO: Use multi stage build for smaller image size. + +RUN apt-get update \ + && apt-get install --no-install-recommends -y sudo git ca-certificates psmisc dhcpcd5 wpasupplicant wireless-tools \ + && ln -fs /usr/share/zoneinfo/UTC /etc/localtime \ + && git clone https://github.com/openthread/ot-br-posix . \ + && git checkout $OT_BR_POSIX_CHECKOUT \ + && git submodule update --init --depth=1 \ + && ./script/bootstrap \ + && ./script/setup \ + && chmod 644 /etc/bind/named.conf.options \ + && mv ./script /tmp \ + && mv ./etc /tmp \ + && find . -delete \ + && rm -rf /usr/include \ + && mv /tmp/script . \ + && mv /tmp/etc . \ + && apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false git ca-certificates \ + && apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false apt-utils build-essential psmisc ninja-build cmake wget ca-certificates \ + libreadline-dev libncurses-dev libcpputest-dev libdbus-1-dev libavahi-common-dev \ + libavahi-client-dev libboost-dev libboost-filesystem-dev libboost-system-dev libjsoncpp-dev \ + libnetfilter-queue-dev \ + && apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false cmake cpputest doxygen \ + && mkdir -p /etc/wpa_supplicant \ + && echo "ctrl_interface=/run/wpa_supplicant" >> /etc/wpa_supplicant/wpa_supplicant.conf \ + && echo "update_config=1" >> /etc/wpa_supplicant/wpa_supplicant.conf \ + && rm -rf /var/lib/apt/lists/* + +ENTRYPOINT service dbus start && \ + otbr-agent -I wpan0 spinel+hdlc+uart:///dev/ttyUSB0 || sleep infinity + +EXPOSE 80 diff --git a/integrations/docker/images/chip-cirque-device-base/build.sh b/integrations/docker/images/chip-cirque-device-base/build.sh new file mode 100755 index 00000000000000..e20f4f71756276 --- /dev/null +++ b/integrations/docker/images/chip-cirque-device-base/build.sh @@ -0,0 +1,30 @@ +#!/usr/bin/env bash + +# +# 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. +# + +set +x + +SOURCE=${BASH_SOURCE[0]} +SOURCE_DIR=$(cd "$(dirname "$SOURCE")" >/dev/null 2>&1 && pwd) +REPO_DIR="$SOURCE_DIR/../../../../" + +# The image build will clone its own ot-br-posix checkout due to limitations of git submodule. +# Using the same ot-br-posix version as chip +OT_BR_POSIX=$REPO_DIR/third_party/ot-br-posix/repo +OT_BR_POSIX_CHECKOUT=$(cd "$REPO_DIR" && git rev-parse :third_party/ot-br-posix/repo) + +docker build -t chip-cirque-device-base -f "$SOURCE_DIR"/Dockerfile --build-arg OT_BR_POSIX_CHECKOUT="$OT_BR_POSIX_CHECKOUT" "$SOURCE_DIR" diff --git a/integrations/docker/images/chip-cirque-device-base/version b/integrations/docker/images/chip-cirque-device-base/version new file mode 100644 index 00000000000000..8acdd82b765e8e --- /dev/null +++ b/integrations/docker/images/chip-cirque-device-base/version @@ -0,0 +1 @@ +0.0.1 diff --git a/integrations/mobly/BUILD.gn b/integrations/mobly/BUILD.gn new file mode 100644 index 00000000000000..731e84e4d6818c --- /dev/null +++ b/integrations/mobly/BUILD.gn @@ -0,0 +1,21 @@ +# 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. + +import("//build_overrides/pigweed.gni") + +import("$dir_pw_build/python.gni") + +pw_python_package("chip_mobly") { + setup = [ "setup.py" ] +} diff --git a/integrations/mobly/build/lib/chip_mobly/__init__.py b/integrations/mobly/build/lib/chip_mobly/__init__.py new file mode 100644 index 00000000000000..3a2252cb67477c --- /dev/null +++ b/integrations/mobly/build/lib/chip_mobly/__init__.py @@ -0,0 +1,13 @@ +# 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. diff --git a/integrations/mobly/build/lib/chip_mobly/pigweed_device.py b/integrations/mobly/build/lib/chip_mobly/pigweed_device.py new file mode 100644 index 00000000000000..0c3679c36ec63f --- /dev/null +++ b/integrations/mobly/build/lib/chip_mobly/pigweed_device.py @@ -0,0 +1,89 @@ +# 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. + +import os +from pathlib import Path +import serial # type: ignore +import importlib + +from pw_hdlc_lite.rpc import HdlcRpcClient + +# Point the script to the .proto file with our RPC services. +PROTO = Path(os.environ["PW_ROOT"], "pw_rpc/pw_rpc_protos/echo.proto") + +MOBLY_CONTROLLER_CONFIG_NAME = "PigweedDevice" + + +class Error(Exception): + """This is the Exception class defined for all errors.""" + + +class PigweedDevice: + def __init__(self, device_tty, baud, platform_module=None, platform_args=None): + self.pw_rpc_client = HdlcRpcClient(serial.Serial(device_tty, baud), [PROTO]) + self._platform = None + print("Platform args: %s" % platform_args) + print("Platform module: %s" % platform_module) + if platform_module: + m = importlib.import_module(platform_module) + create_platform_method = getattr(m, "create_platform") + self._platform = create_platform_method(platform_args) + + def rpcs(self): + return self.pw_rpc_client.rpcs().pw.rpc + + @property + def platform(self): + return self._platform + + +def create(configs): + """Initializes the CHIP devices based on the testbed configuration. + + Args: + configs: a list of testbed configs. + + Returns: + a list of device objects + """ + objs = [] + for config in configs: + _validate_config(config) + device = PigweedDevice(**config) + objs.append(device) + return objs + + +def destroy(unused_objs): + """Destroys the wearable objects. + + Args: + unused_objs: a list of device objects. + """ + pass + + +def _validate_config(config): + """Verifies that a config dict for a CHIP device is valid. + + Args: + config: A dict that is the configuration for a CHIP device. + + Raises: + chip_device.Error: Config file is not valid. + """ + required_keys = ["device_tty", "baud"] # A placeholder. + for key in required_keys: + if key not in config: + raise Error("Required key %s missing from config %s" % (key, config)) diff --git a/integrations/mobly/chip_mobly/pigweed_device.py b/integrations/mobly/chip_mobly/pigweed_device.py index 94cae18c2409b6..0c3679c36ec63f 100644 --- a/integrations/mobly/chip_mobly/pigweed_device.py +++ b/integrations/mobly/chip_mobly/pigweed_device.py @@ -14,7 +14,7 @@ import os from pathlib import Path -import serial +import serial # type: ignore import importlib from pw_hdlc_lite.rpc import HdlcRpcClient diff --git a/integrations/mobly/hello_world_test.py b/integrations/mobly/hello_world_test.py index e6e18bcc56bac2..d4b2eb3513e1c9 100755 --- a/integrations/mobly/hello_world_test.py +++ b/integrations/mobly/hello_world_test.py @@ -13,7 +13,7 @@ # limitations under the License. from chip_mobly import pigweed_device -from mobly import asserts +from mobly import asserts # type: ignore from mobly import base_test from mobly import test_runner diff --git a/integrations/mobly/setup.py b/integrations/mobly/setup.py index cca4d23af0d0d4..64165a3aa285f9 100644 --- a/integrations/mobly/setup.py +++ b/integrations/mobly/setup.py @@ -14,17 +14,12 @@ """chip_mobly""" -import setuptools +import setuptools # type: ignore setuptools.setup( name='chip_mobly', version='0.0.1', author='CHIP Authors', -# author_email='?', description='Integration of Mobly with CHIP devices', packages=setuptools.find_packages(), -#TODO - uncomment this once native python building is solved for -# psutil (one of mobly's dependencies which CHIP does -# not actually need) -# install_requires=['mobly'], ) diff --git a/scripts/bootstrap.sh b/scripts/bootstrap.sh index 42714d80f067ec..9c55b5ddd7717d 100644 --- a/scripts/bootstrap.sh +++ b/scripts/bootstrap.sh @@ -39,6 +39,9 @@ _bootstrap_or_activate() { EOF )" + PW_PROJECT_ROOT="$_CHIP_ROOT" + export PW_PROJECT_ROOT + PW_ROOT="$_CHIP_ROOT/third_party/pigweed/repo" export PW_ROOT @@ -65,8 +68,9 @@ EOF --install-dir "$_PW_ACTUAL_ENVIRONMENT_ROOT" \ --virtualenv-requirements "$_CHIP_ROOT/scripts/requirements.txt" \ --cipd-package-file "$_CHIP_ROOT/scripts/pigweed.json" \ - --virtualenv-setup-py-root "$_CHIP_ROOT/third_party/pigweed" \ - --virtualenv-setup-py-root "$_CHIP_ROOT/integrations/mobly" + --virtualenv-gn-target "$PW_ROOT#:target_support_packages.install" \ + --virtualenv-gn-target "$PW_ROOT#:python.install" \ + --virtualenv-gn-target "$_CHIP_ROOT#:python_packages.install" pw_finalize bootstrap "$_SETUP_SH" else pw_activate diff --git a/scripts/examples/android_app.sh b/scripts/examples/android_app.sh index 5bac64fbdf4dc0..e716fe75c21332 100755 --- a/scripts/examples/android_app.sh +++ b/scripts/examples/android_app.sh @@ -16,6 +16,7 @@ # limitations under the License. # +set -e set -x env @@ -36,8 +37,8 @@ fi # Build shared CHIP libs source scripts/activate.sh -gn gen out/"android_$TARGET_CPU" --args="target_os=\"android\" target_cpu=\"$TARGET_CPU\" android_ndk_root=\"$ANDROID_NDK_HOME\" android_sdk_root=\"$ANDROID_HOME\"" -ninja -C out/"android_$TARGET_CPU" src/setup_payload/java src/controller/java +gn gen --check --fail-on-unused-args out/"android_$TARGET_CPU" --args="target_os=\"android\" target_cpu=\"$TARGET_CPU\" android_ndk_root=\"$ANDROID_NDK_HOME\" android_sdk_root=\"$ANDROID_HOME\"" +ninja -C out/"android_$TARGET_CPU" src/setup_payload/java src/controller/java default rsync -a out/"android_$TARGET_CPU"/lib/*.jar src/android/CHIPTool/app/libs rsync -a out/"android_$TARGET_CPU"/lib/jni/* src/android/CHIPTool/app/src/main/jniLibs diff --git a/scripts/examples/build-wifi-echo.py b/scripts/examples/build-all-clusters-app.py similarity index 93% rename from scripts/examples/build-wifi-echo.py rename to scripts/examples/build-all-clusters-app.py index eceae51844a640..bf0f73095f3a85 100755 --- a/scripts/examples/build-wifi-echo.py +++ b/scripts/examples/build-all-clusters-app.py @@ -8,7 +8,7 @@ _LOG = logging.getLogger(__name__) -ROOT = 'examples/wifi-echo/server/esp32' +ROOT = 'examples/all-clusters-app/esp32' class IDFExecutor: """Runs specified commands via an executor that activates the CHIP build environment.""" @@ -31,7 +31,7 @@ def execute(self, command): def main(): """Main task if executed standalone.""" - parser = argparse.ArgumentParser(description='Build wifi example app') + parser = argparse.ArgumentParser(description='Build all-clusters-app example') parser.add_argument( '--log-level', default=logging.INFO, diff --git a/scripts/examples/esp_echo_app.sh b/scripts/examples/esp_echo_app.sh index e957e0bed4c7a9..344d130e1b03c4 100755 --- a/scripts/examples/esp_echo_app.sh +++ b/scripts/examples/esp_echo_app.sh @@ -19,7 +19,7 @@ set -x env -root=examples/wifi-echo/server/esp32/ +root=examples/all-clusters-app/esp32/ # shellcheck source=/dev/null source "$root"/idf.sh diff --git a/scripts/examples/gn_build_example.sh b/scripts/examples/gn_build_example.sh index 67073ec31aba87..b141fe8c6eda8f 100755 --- a/scripts/examples/gn_build_example.sh +++ b/scripts/examples/gn_build_example.sh @@ -48,6 +48,6 @@ done set -x env -gn gen --check --root="$EXAMPLE_DIR" "$OUTPUT_DIR" --args="${GN_ARGS[*]}" +gn gen --check --fail-on-unused-args --root="$EXAMPLE_DIR" "$OUTPUT_DIR" --args="${GN_ARGS[*]}" ninja -C "$OUTPUT_DIR" "${NINJA_ARGS[@]}" diff --git a/scripts/examples/gn_efr32_example.sh b/scripts/examples/gn_efr32_example.sh index 184f0350e9a106..015ffd07fe70fd 100755 --- a/scripts/examples/gn_efr32_example.sh +++ b/scripts/examples/gn_efr32_example.sh @@ -26,9 +26,9 @@ set -x env if [ -z "$3" ]; then - gn gen --check --root="$1" --args="efr32_sdk_root=\"$EFR32_SDK_ROOT\"" "$2"/"$EFR32_BOARD"/ + gn gen --check --fail-on-unused-args --root="$1" --args="efr32_sdk_root=\"$EFR32_SDK_ROOT\"" "$2"/"$EFR32_BOARD"/ ninja -v -C "$2"/"$EFR32_BOARD"/ else - gn gen --check --root="$1" --args="efr32_sdk_root=\"$EFR32_SDK_ROOT\" efr32_board=\"$3\"" "$2/$3" + gn gen --check --fail-on-unused-args --root="$1" --args="efr32_sdk_root=\"$EFR32_SDK_ROOT\" efr32_board=\"$3\"" "$2/$3" ninja -v -C "$2/$3" fi diff --git a/scripts/examples/nrfconnect_example.sh b/scripts/examples/nrfconnect_example.sh index d29ee6c8cfe13b..dde63ac5288ae6 100755 --- a/scripts/examples/nrfconnect_example.sh +++ b/scripts/examples/nrfconnect_example.sh @@ -16,6 +16,9 @@ # limitations under the License. # +# Run bootstrap to set up e.g. Pigweed correctly +source "$(dirname "$0")/../../scripts/bootstrap.sh" + cd "$(dirname "$0")/../../examples" APP="$1" diff --git a/scripts/flashing/efr32_firmware_utils.py b/scripts/flashing/efr32_firmware_utils.py index 9d43acce176da9..f0fcd896a851c4 100755 --- a/scripts/flashing/efr32_firmware_utils.py +++ b/scripts/flashing/efr32_firmware_utils.py @@ -21,7 +21,8 @@ usage: efr32_firmware_utils.py [-h] [--verbose] [--erase] [--application FILE] [--verify_application] [--reset] [--skip_reset] - [--commander FILE] [--serialno SERIAL] + [--commander FILE] [--device DEVICE] + [--serialno SERIAL] Flash EFR32 device @@ -31,6 +32,8 @@ configuration: --verbose, -v Report more verbosely --commander FILE File name of the commander executable + --device DEVICE, -d DEVICE + Device family or platform to target --serialno SERIAL, -s SERIAL Serial number of device to flash @@ -71,6 +74,14 @@ """, }, + 'device': { + 'help': 'Device family or platform to target', + 'default': 'EFR32', + 'alias': ['-d'], + 'argparse': { + 'metavar': 'DEVICE' + }, + }, 'serialno': { 'help': 'Serial number of device to flash', 'default': None, @@ -91,7 +102,7 @@ def __init__(self, **options): self.define_options(EFR32_OPTIONS) # Common command line arguments for commander device subcommands. - DEVICE_ARGUMENTS = [{'optional': 'serialno'}] + DEVICE_ARGUMENTS = [{'optional': 'serialno'}, {'optional': 'device'}] def erase(self): """Perform `commander device masserase`.""" diff --git a/scripts/flashing/qpg6100_firmware_utils.py b/scripts/flashing/qpg6100_firmware_utils.py index 821ccd892f693f..0d04baa61d49f4 100644 --- a/scripts/flashing/qpg6100_firmware_utils.py +++ b/scripts/flashing/qpg6100_firmware_utils.py @@ -91,7 +91,7 @@ def flash(self, image): self.err = 3 return self - shutil.copyfile(image, os.path.join(self.option.drive, image)) + shutil.copyfile(image, os.path.join(self.option.drive, os.path.basename(image))) return self def reset(self): diff --git a/scripts/gen_test_driver.py b/scripts/gen_test_driver.py new file mode 100644 index 00000000000000..61dd9cf3b656f6 --- /dev/null +++ b/scripts/gen_test_driver.py @@ -0,0 +1,109 @@ + +#!/usr/bin/env python + +# 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. + +import optparse +import sys +import re + +TEMPLATE_PREFIX = '''/* + * + * Copyright (c) 2020 Project CHIP Authors + * All rights reserved. + * + * 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 WAS GENERATED AUTOMATICALLY BY THE BUILD SYSTEM. + */ + +#include + +''' + +### Forward declarations will be added here + +TEMPLATE_MAIN_START = ''' +int main() +{ + int code = 0; + + nlTestSetOutputStyle(OUTPUT_CSV); + +''' + +### Test invokation will be added here + +TEMPLATE_SUFFIX = ''' + return code; +}''' + +def main(argv): + parser = optparse.OptionParser() + + parser.add_option('--input_file') + parser.add_option('--output_file') + + options, _ = parser.parse_args(argv) + + tests = [] + + TEST_SUITE_RE = re.compile(r'\s*CHIP_REGISTER_TEST_SUITE\(([^)]*)\)') + + with open(options.input_file, 'r') as input_file: + for l in input_file.readlines(): + match = TEST_SUITE_RE.match(l) + if not match: + continue + + tests.append(match.group(1)) + + if not tests: + print("ERROR: no tests found in '%s'" % input_file); + print("Did you forget to CHIP_REGISTER_TEST_SUITE?"); + return 1 + + with open(options.output_file, 'w') as output_file: + output_file.write(TEMPLATE_PREFIX) + + for test in tests: + output_file.write("int %s();\n" % test) + output_file.write("\n"); + + output_file.write(TEMPLATE_MAIN_START) + + for test in tests: + output_file.write(" code = code | (%s());\n" % test) + output_file.write("\n"); + + + output_file.write(TEMPLATE_SUFFIX) + + + return 0 + + +if __name__ == '__main__': + sys.exit(main(sys.argv[1:])) diff --git a/scripts/helpers/clean.sh b/scripts/helpers/clean.sh index 7b1f90a442bf0d..c984b9292ce085 100755 --- a/scripts/helpers/clean.sh +++ b/scripts/helpers/clean.sh @@ -18,4 +18,4 @@ set -ex -rm -rf out/ +rm -rf out/ examples/*/nrfconnect/build/ diff --git a/scripts/helpers/update_compile_commands.sh b/scripts/helpers/update_compile_commands.sh index 012cd5ab4ad74a..0c07af40ac6c5c 100755 --- a/scripts/helpers/update_compile_commands.sh +++ b/scripts/helpers/update_compile_commands.sh @@ -23,19 +23,19 @@ CHIP_ROOT="$(dirname "$0")/../.." source "$CHIP_ROOT/scripts/activate.sh" -gn --root="$CHIP_ROOT" gen "$CHIP_ROOT/out/debug" --export-compile-commands=all_host_gcc +gn --root="$CHIP_ROOT" gen "$CHIP_ROOT/out/debug" --export-compile-commands=host_gcc mv "$CHIP_ROOT/out/debug/compile_commands.json" "$CHIP_ROOT/out/debug/compile_commands.gcc.json" -gn --root="$CHIP_ROOT" gen "$CHIP_ROOT/out/debug" --export-compile-commands=all_host_clang +gn --root="$CHIP_ROOT" gen "$CHIP_ROOT/out/debug" --export-compile-commands=host_clang mv "$CHIP_ROOT/out/debug/compile_commands.json" "$CHIP_ROOT/out/debug/compile_commands.clang.json" -gn --root="$CHIP_ROOT" gen "$CHIP_ROOT/out/debug" --export-compile-commands=all_host_gcc_mbedtls +gn --root="$CHIP_ROOT" gen "$CHIP_ROOT/out/debug" --export-compile-commands=host_gcc_mbedtls mv "$CHIP_ROOT/out/debug/compile_commands.json" "$CHIP_ROOT/out/debug/compile_commands.mbedtls.json" -gn --root="$CHIP_ROOT" gen "$CHIP_ROOT/out/debug" --export-compile-commands=all_android_x64 +gn --root="$CHIP_ROOT" gen "$CHIP_ROOT/out/debug" --export-compile-commands=android_x64 mv "$CHIP_ROOT/out/debug/compile_commands.json" "$CHIP_ROOT/out/debug/compile_commands.android_x64.json" -gn --root="$CHIP_ROOT" gen "$CHIP_ROOT/out/debug" --export-compile-commands=all_android_arm64 +gn --root="$CHIP_ROOT" gen "$CHIP_ROOT/out/debug" --export-compile-commands=android_arm64 mv "$CHIP_ROOT/out/debug/compile_commands.json" "$CHIP_ROOT/out/debug/compile_commands.android_arm64.json" gn --root="$CHIP_ROOT" gen "$CHIP_ROOT/out/debug" --export-compile-commands=efr32_lock_app diff --git a/scripts/requirements.in b/scripts/requirements.in index b6894480dbdfef..1fd30bffaf7262 100644 --- a/scripts/requirements.in +++ b/scripts/requirements.in @@ -21,3 +21,7 @@ mobly # zephyr west>=0.8.0 + +# happy tests +lockfile +psutil >= 5.7.3 diff --git a/scripts/requirements.txt b/scripts/requirements.txt index b62bcdf5eb5ccb..b5abdfe0d83efb 100644 --- a/scripts/requirements.txt +++ b/scripts/requirements.txt @@ -14,11 +14,12 @@ cryptography==3.2.1 # via -r requirements.in docopt==0.6.2 # via pykwalify future==0.18.2 # via -r requirements.in, mobly idna==2.10 # via requests +lockfile==0.12.2 # via -r requirements.in mobly==1.10 # via -r requirements.in packaging==20.4 # via west pip-tools==5.3.1 # via -r requirements.in portpicker==1.3.1 # via -r requirements.in, mobly -psutil==5.7.2 # via mobly +psutil==5.7.3 # via -r requirements.in, mobly pycparser==2.20 # via cffi pyelftools==0.26 # via -r requirements.in pykwalify==1.7.0 # via west diff --git a/scripts/tests/all_tests.sh b/scripts/tests/all_tests.sh index cdbc5d419f20d2..0798dfc9a7a26d 100755 --- a/scripts/tests/all_tests.sh +++ b/scripts/tests/all_tests.sh @@ -24,6 +24,6 @@ PW_ENVSETUP_QUIET=1 source "$CHIP_ROOT/scripts/activate.sh" set -x -gn gen out/default +gn gen --check --fail-on-unused-args out/default ninja -C out/default check diff --git a/scripts/tests/cirque_tests.sh b/scripts/tests/cirque_tests.sh index 2b5bbe03fcf27f..f350117aadae7f 100755 --- a/scripts/tests/cirque_tests.sh +++ b/scripts/tests/cirque_tests.sh @@ -56,7 +56,7 @@ function __cirquetest_start_flask() { echo 'Start Flask' cd "$REPO_DIR"/third_party/cirque/repo FLASK_APP='cirque/restservice/service.py' \ - PATH="$PATH":"$REPO_DIR"/third_party/cirque/repo/openthread/output/x86_64-unknown-linux-gnu/bin/ \ + PATH="$PATH":"$REPO_DIR"/third_party/openthread/repo/output/x86_64-unknown-linux-gnu/bin/ \ python3 -m flask run >"$LOG_DIR/$CURRENT_TEST/flask.log" 2>&1 } @@ -67,12 +67,21 @@ function __cirquetest_clean_flask() { __virtual_thread_clean } +function __cirquetest_build_ot() { + pushd . + cd "$REPO_DIR"/third_party/openthread/repo + ./bootstrap + make -f examples/Makefile-simulation + popd +} + function cirquetest_bootstrap() { set -e cd "$REPO_DIR"/third_party/cirque/repo pip3 install pycodestyle==2.5.0 wheel make NO_GRPC=1 install -j - ./dependency_modules.sh + "$REPO_DIR"/integrations/docker/images/chip-cirque-device-base/build.sh + __cirquetest_build_ot pip3 install -r requirements_nogrpc.txt # Call activate here so the later tests can be faster diff --git a/scripts/tests/esp32_qemu_tests.sh b/scripts/tests/esp32_qemu_tests.sh index 54513e01d78710..7753f73354d705 100755 --- a/scripts/tests/esp32_qemu_tests.sh +++ b/scripts/tests/esp32_qemu_tests.sh @@ -22,6 +22,7 @@ set -e set -o pipefail +set -x here=$(cd "$(dirname "$0")" && pwd) chip_dir="$here"/../.. @@ -41,16 +42,16 @@ if [ $? -ne 0 ]; then fi really_run_suite() { - idf scripts/tools/qemu_run_test.sh src/test_driver/esp32/build/chip "$1" + idf scripts/tools/qemu_run_test.sh src/test_driver/esp32/build/chip "$1" "$2" } run_suite() { if [[ -d "${log_dir}" ]]; then suite=${1%.a} suite=${suite#lib} - really_run_suite "$1" |& tee "$log_dir/$suite.log" + really_run_suite "$1" "$2" |& tee "$log_dir/$suite.log" else - really_run_suite "$1" + really_run_suite "$1" "$2" fi } @@ -58,14 +59,27 @@ run_suite() { # The specific qualifiers will be removed, once all CHIP unit tests are # updated to run on QEMU. SUITES=( - libInetLayerTests.a - libSystemLayerTests.a - libTransportLayerTests.a ) -for suite in "${SUITES[@]}"; do - run_suite "$suite" -done +run_suite libAppTests.a +run_suite libASN1Tests.a +run_suite libBleLayerTests.a +run_suite libCoreTests.a +run_suite libInetLayerTests.a +run_suite libRetransmitTests.a +run_suite libSystemLayerTests.a + +# TODO: Transport layer tests do not link: +# - getpid undefined +# - ArgParser for IPAddresses are not linked in +# - std::__throw_bad_alloc() linker errors +# run_suite libRawTransportTests.a "-lNetworkTestHelpers -lInetTestHelpers" + +# TODO: Transport layer tests do not link: +# - getpid undefined +# - ArgParser for IPAddresses are not linked in +# - std::__throw_bad_alloc() linker errors +# run_suite libTransportLayerTests.a "-lNetworkTestHelpers -lInetTestHelpers" # TODO - Fix crypto tests. -run_suite libChipCryptoTests.a || true +# run_suite libChipCryptoTests.a || true diff --git a/scripts/tests/happy_test_wrapper.py b/scripts/tests/happy_test_wrapper.py index 36a988e50652dc..d3542a0c7c0b2c 100755 --- a/scripts/tests/happy_test_wrapper.py +++ b/scripts/tests/happy_test_wrapper.py @@ -50,10 +50,6 @@ args = parser.parse_args() # GN will run Python in venv, which will break happy test if args.ci: - if test_environ.get("VIRTUAL_ENV", None) != None: - del test_environ["VIRTUAL_ENV"] - test_environ["PATH"] = ":".join([s for s in test_environ.get( - "PATH", "").split(":") if not os.path.realpath(s).startswith(os.path.realpath(os.path.join(CHIP_PATH, "third_party/pigweed/repo")))]) test_environ["HAPPY_LOG_DIR"] = "/tmp/happy_test_logs" test_environ["TEST_BIN_DIR"] = args.bin_dir test_environ["HAPPY_MAIN_CONFIG_FILE"] = os.path.realpath( diff --git a/scripts/tools/qemu_run_test.sh b/scripts/tools/qemu_run_test.sh index 6a122f4beab651..c2196bf7c657b7 100755 --- a/scripts/tools/qemu_run_test.sh +++ b/scripts/tools/qemu_run_test.sh @@ -21,6 +21,7 @@ # set -e +set -x die() { echo "${me:?}: *** ERROR: " "${*}" @@ -32,10 +33,11 @@ BUILD_DIR="$1" shift QEMU_TEST_TARGET="$1" shift +EXTRA_COMPILE_ARGUMENTS="$*" # generally -lFooHelperLibrary # shellcheck source=/dev/null source "$BUILD_DIR"/env.sh -bash "$BUILD_DIR"/esp32_elf_builder.sh "$BUILD_DIR/lib/$QEMU_TEST_TARGET" +bash "$BUILD_DIR"/esp32_elf_builder.sh "$BUILD_DIR/lib/$QEMU_TEST_TARGET" "$EXTRA_COMPILE_ARGUMENTS" flash_image_file=$(mktemp) log_file=$(mktemp) diff --git a/scripts/tools/zap_configure.sh b/scripts/tools/zap_configure.sh new file mode 100755 index 00000000000000..7212aa3f216ba6 --- /dev/null +++ b/scripts/tools/zap_configure.sh @@ -0,0 +1,21 @@ +#!/usr/bin/env bash + +# +# 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. +# + +cd ./third_party/zap/repo/ + +node ./src-script/zap-start.js --logToStdout --gen ../../../src/app/zap-templates/chip-templates.json diff --git a/scripts/tools/zap_generate.sh b/scripts/tools/zap_generate.sh new file mode 100755 index 00000000000000..b630b32cd848ee --- /dev/null +++ b/scripts/tools/zap_generate.sh @@ -0,0 +1,35 @@ +#!/usr/bin/env bash + +# +# 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. +# + +# Retrieve absolute path of zap file +OUTPUT_DIRECTORY=$(cd "$(dirname "$1")" && pwd)/gen/ +FILE_PATH=$(cd "$(dirname "$1")" && pwd)/$(basename "$1") + +# Check if input file exist +if [ ! -f "$FILE_PATH" ]; then + echo "ZAP file doesn't exist." + exit 1 +fi + +# Check if output dir exist, if not create it +if [ ! -d "$OUTPUT_DIRECTORY" ]; then + mkdir -p "$OUTPUT_DIRECTORY" +fi + +cd ./third_party/zap/repo/ +node ./src-script/zap-generate.js -z ./zcl-builtin/silabs/zcl.json -g ../../../src/app/zap-templates/chip-templates.json -i "$FILE_PATH" -o "$OUTPUT_DIRECTORY" diff --git a/src/BUILD.gn b/src/BUILD.gn index eefe21a1528ada..ef9cf26d4801a8 100644 --- a/src/BUILD.gn +++ b/src/BUILD.gn @@ -38,26 +38,34 @@ if (chip_build_tests) { chip_test_group("tests") { deps = [ + "${chip_root}/src/app/tests", "${chip_root}/src/crypto/tests", "${chip_root}/src/inet/tests", + "${chip_root}/src/lib/asn1/tests", + "${chip_root}/src/lib/core/tests", + "${chip_root}/src/lib/mdns/minimal/core/tests", + "${chip_root}/src/lib/mdns/minimal/records/tests", + "${chip_root}/src/lib/mdns/minimal/responders/tests", + "${chip_root}/src/lib/mdns/minimal/tests", + "${chip_root}/src/lib/support/tests", "${chip_root}/src/messaging/tests", + "${chip_root}/src/protocols/bdx/tests", + "${chip_root}/src/setup_payload/tests", "${chip_root}/src/system/tests", "${chip_root}/src/transport/raw/tests", "${chip_root}/src/transport/retransmit/tests", "${chip_root}/src/transport/tests", ] + if (chip_device_platform != "none") { + deps += [ "${chip_root}/src/lib/mdns/minimal/tests" ] + } + if (chip_device_platform != "esp32") { - deps += [ - "${chip_root}/src/lib/asn1/tests", - "${chip_root}/src/lib/core/tests", - "${chip_root}/src/lib/support/tests", - "${chip_root}/src/platform/tests", - "${chip_root}/src/setup_payload/tests", - ] + deps += [ "${chip_root}/src/platform/tests" ] } - if (chip_config_network_layer_ble && chip_device_platform != "esp32") { + if (chip_config_network_layer_ble) { deps += [ "${chip_root}/src/ble/tests" ] } diff --git a/src/android/CHIPTool/README.md b/src/android/CHIPTool/README.md index 7646d8adf4b6dc..721fd6d0a30332 100644 --- a/src/android/CHIPTool/README.md +++ b/src/android/CHIPTool/README.md @@ -1,20 +1,30 @@ -This directory contains an Android Studio project for CHIPTool. +# Android CHIPTool -CHIPTool features: Scan a CHIP QR code and display payload information to the -user Send echo requests to the CHIP echo server Send on/off cluster requests to -a CHIP device +This directory contains the Android Studio project for CHIPTool, an Android +application for commissioning and controlling CHIP accessories. -- Connection to the chip device's soft AP will be a manual step until pairing - is implemented. +CHIPTool offers the following features: -# Steps to build CHIP for Android apps +- Scan a CHIP QR code and display payload information to the user +- Read the NFC tag containing CHIP onboarding information +- Commission a CHIP device +- Send echo requests to the CHIP echo server +- Send on/off cluster requests to a CHIP device -Pre-conditions: Have Android SDK & NDK downloaded to your machine. Set the -\$ANDROID_HOME environment variable to where the SDK is downloaded and the -\$ANDROID_NDK_HOME environment variable to point to the NDK package is +> :warning: Connection to the CHIP device's soft AP will be a manual step until +> pairing is implemented. + +## Requirements for building + +You need Android SDK 21 & NDK downloaded to your machine. Set the +`$ANDROID_HOME` environment variable to where the SDK is downloaded and the +`$ANDROID_NDK_HOME` environment variable to point to where the NDK package is downloaded. -ABIs and corresponding values for `TARGET_CPU` +## ABIs and TARGET_CPU + +`TARGET_CPU` can have the following values, depending on your smartphone CPU +architecture: | ABI | TARGET_CPU | | ----------- | ---------- | @@ -23,15 +33,33 @@ ABIs and corresponding values for `TARGET_CPU` | x86 | x86 | | x86_64 | x64 | -1. Checkout the CHIP repo +## Building CHIPTool + +Complete the following steps to build CHIPTool: + +1. Check out the CHIP repository. -2. In commandline / Terminal, 'cd' into the top CHIP directory and run +2. In the command line, run the following command from the top CHIP directory: ```shell sudo apt-get install -y swig # "brew install swig" for macOS. TARGET_CPU=arm64 ./scripts/examples/android_app.sh ``` - See table above for other values of `TARGET_CPU`. + See the table above for other values of `TARGET_CPU`. + +3. Open the project in Android Studio and run **Sync Project with Gradle + Files**. + +4. Use one of the following options to build an Android package: + + - Click **Make Project** in Android Studio. + - Run the following command in the command line: + + ```shell + cd src/android/CHIPTool + ./gradlew build + ``` -3. 'Gradle sync' the Android project and run. +The debug Android package `app-debug.apk` will be generated at +`./app/build/outputs/apk/debug/`. diff --git a/src/android/CHIPTool/app/src/main/AndroidManifest.xml b/src/android/CHIPTool/app/src/main/AndroidManifest.xml index f8f1c4d93156ca..b3ad31a0e4cbd6 100644 --- a/src/android/CHIPTool/app/src/main/AndroidManifest.xml +++ b/src/android/CHIPTool/app/src/main/AndroidManifest.xml @@ -19,7 +19,8 @@ android:theme="@style/AppTheme"> + android:label="@string/app_name" + android:windowSoftInputMode="adjustResize"> diff --git a/src/android/CHIPTool/app/src/main/java/com/google/chip/chiptool/CHIPToolActivity.kt b/src/android/CHIPTool/app/src/main/java/com/google/chip/chiptool/CHIPToolActivity.kt index 3ba12919843717..12c3a005ff3753 100644 --- a/src/android/CHIPTool/app/src/main/java/com/google/chip/chiptool/CHIPToolActivity.kt +++ b/src/android/CHIPTool/app/src/main/java/com/google/chip/chiptool/CHIPToolActivity.kt @@ -28,6 +28,8 @@ import com.google.chip.chiptool.attestation.AttestationTestFragment import com.google.chip.chiptool.clusterclient.OnOffClientFragment import com.google.chip.chiptool.commissioner.CommissionerActivity import com.google.chip.chiptool.echoclient.EchoClientFragment +import com.google.chip.chiptool.provisioning.DeviceProvisioningFragment +import com.google.chip.chiptool.provisioning.ProvisionNetworkType import com.google.chip.chiptool.setuppayloadscanner.BarcodeFragment import com.google.chip.chiptool.setuppayloadscanner.CHIPDeviceDetailsFragment import com.google.chip.chiptool.setuppayloadscanner.CHIPDeviceInfo @@ -36,7 +38,10 @@ import com.google.chip.chiptool.setuppayloadscanner.QrCodeInfo class CHIPToolActivity : AppCompatActivity(), BarcodeFragment.Callback, - SelectActionFragment.Callback { + SelectActionFragment.Callback, + DeviceProvisioningFragment.Callback { + + private var networkType: ProvisionNetworkType? = null override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) @@ -48,20 +53,47 @@ class CHIPToolActivity : .beginTransaction() .add(R.id.fragment_container, fragment, fragment.javaClass.simpleName) .commit() + } else { + networkType = + ProvisionNetworkType.fromName(savedInstanceState.getString(ARG_PROVISION_NETWORK_TYPE)) } if (intent?.action == NfcAdapter.ACTION_NDEF_DISCOVERED) onNfcIntent(intent) } + override fun onSaveInstanceState(outState: Bundle) { + outState.putString(ARG_PROVISION_NETWORK_TYPE, networkType?.name) + + super.onSaveInstanceState(outState) + } + override fun onCHIPDeviceInfoReceived(deviceInfo: CHIPDeviceInfo) { - showFragment(CHIPDeviceDetailsFragment.newInstance(deviceInfo)) + if (networkType == null) { + showFragment(CHIPDeviceDetailsFragment.newInstance(deviceInfo)) + } else { + showFragment(DeviceProvisioningFragment.newInstance(deviceInfo, networkType!!), false) + } + } + + override fun onPairingComplete() { + showFragment(OnOffClientFragment.newInstance(), false) } override fun handleScanQrCodeClicked() { showFragment(BarcodeFragment.newInstance()) } + override fun onProvisionWifiCredentialsClicked() { + networkType = ProvisionNetworkType.WIFI + showFragment(BarcodeFragment.newInstance(), false) + } + + override fun onProvisionThreadCredentialsClicked() { + networkType = ProvisionNetworkType.THREAD + showFragment(BarcodeFragment.newInstance(), false) + } + override fun handleCommissioningClicked() { var intent = Intent(this, CommissionerActivity::class.java) startActivityForResult(intent, REQUEST_CODE_COMMISSIONING) @@ -88,12 +120,16 @@ class CHIPToolActivity : } } - private fun showFragment(fragment: Fragment) { - supportFragmentManager + private fun showFragment(fragment: Fragment, showOnBack: Boolean = true) { + val fragmentTransaction = supportFragmentManager .beginTransaction() .replace(R.id.fragment_container, fragment, fragment.javaClass.simpleName) - .addToBackStack(null) - .commit() + + if (showOnBack) { + fragmentTransaction.addToBackStack(null) + } + + fragmentTransaction.commit() } private fun onNfcIntent(intent: Intent?) { @@ -122,6 +158,8 @@ class CHIPToolActivity : } companion object { + private const val ARG_PROVISION_NETWORK_TYPE = "provision_network_type" + var REQUEST_CODE_COMMISSIONING = 0xB003 } } diff --git a/src/android/CHIPTool/app/src/main/java/com/google/chip/chiptool/GenericChipDeviceListener.kt b/src/android/CHIPTool/app/src/main/java/com/google/chip/chiptool/GenericChipDeviceListener.kt new file mode 100644 index 00000000000000..26a7d1740d1d21 --- /dev/null +++ b/src/android/CHIPTool/app/src/main/java/com/google/chip/chiptool/GenericChipDeviceListener.kt @@ -0,0 +1,45 @@ +package com.google.chip.chiptool + +import chip.devicecontroller.ChipDeviceController + +open class GenericChipDeviceListener : ChipDeviceController.CompletionListener { + override fun onConnectDeviceComplete() { + // No op + } + + override fun onSendMessageComplete(message: String?) { + // No op + } + + override fun onNetworkCredentialsRequested() { + // No op + } + + override fun onOperationalCredentialsRequested(opCreds: ByteArray?) { + // No op + } + + override fun onStatusUpdate(status: Int) { + // No op + } + + override fun onPairingComplete(code: Int) { + // No op + } + + override fun onPairingDeleted(code: Int) { + // No op + } + + override fun onNotifyChipConnectionClosed() { + // No op + } + + override fun onCloseBleComplete() { + // No op + } + + override fun onError(error: Throwable?) { + // No op + } +} diff --git a/src/android/CHIPTool/app/src/main/java/com/google/chip/chiptool/SelectActionFragment.kt b/src/android/CHIPTool/app/src/main/java/com/google/chip/chiptool/SelectActionFragment.kt index c9321ddb500895..964f5151b0cc15 100644 --- a/src/android/CHIPTool/app/src/main/java/com/google/chip/chiptool/SelectActionFragment.kt +++ b/src/android/CHIPTool/app/src/main/java/com/google/chip/chiptool/SelectActionFragment.kt @@ -35,7 +35,13 @@ class SelectActionFragment : Fragment() { ): View { return inflater.inflate(R.layout.select_action_fragment, container, false).apply { scanQrBtn.setOnClickListener { getCallback()?.handleScanQrCodeClicked() } - commissioningBtn.setOnClickListener { getCallback()?.handleCommissioningClicked() } + provisionWifiCredentialsBtn.setOnClickListener { + getCallback()?.onProvisionWifiCredentialsClicked() + } + provisionThreadCredentialsBtn.setOnClickListener { + getCallback()?.onProvisionThreadCredentialsClicked() + } + otCommissioningBtn.setOnClickListener { getCallback()?.handleCommissioningClicked() } echoClientBtn.setOnClickListener { getCallback()?.handleEchoClientClicked() } onOffClusterBtn.setOnClickListener { getCallback()?.handleOnOffClicked() } attestationTestBtn.setOnClickListener { getCallback()?.handleAttestationTestClicked() } @@ -48,6 +54,10 @@ class SelectActionFragment : Fragment() { interface Callback { /** Notifies listener of Scan QR code button click. */ fun handleScanQrCodeClicked() + /** Notifies listener of provision-Wifi-credentials button click. */ + fun onProvisionWifiCredentialsClicked() + /** Notifies listener of provision-Thread-credentials button click. */ + fun onProvisionThreadCredentialsClicked() /** Notifies listener of Commissioning button click. */ fun handleCommissioningClicked() /** Notifies listener of Echo client button click. */ diff --git a/src/android/CHIPTool/app/src/main/java/com/google/chip/chiptool/clusterclient/OnOffClientFragment.kt b/src/android/CHIPTool/app/src/main/java/com/google/chip/chiptool/clusterclient/OnOffClientFragment.kt index e528a39dcf6fb4..acdae29ea5c0e3 100644 --- a/src/android/CHIPTool/app/src/main/java/com/google/chip/chiptool/clusterclient/OnOffClientFragment.kt +++ b/src/android/CHIPTool/app/src/main/java/com/google/chip/chiptool/clusterclient/OnOffClientFragment.kt @@ -5,19 +5,24 @@ import android.util.Log import android.view.LayoutInflater import android.view.View import android.view.ViewGroup +import android.widget.SeekBar +import android.widget.Toast import androidx.fragment.app.Fragment import chip.devicecontroller.ChipCommandType import chip.devicecontroller.ChipDeviceController +import chip.devicecontroller.ChipDeviceControllerException import com.google.chip.chiptool.ChipClient +import com.google.chip.chiptool.GenericChipDeviceListener import com.google.chip.chiptool.R import kotlinx.android.synthetic.main.on_off_client_fragment.* import kotlinx.android.synthetic.main.on_off_client_fragment.view.* -class OnOffClientFragment : Fragment(), ChipDeviceController.CompletionListener { +class OnOffClientFragment : Fragment() { private val deviceController: ChipDeviceController get() = ChipClient.getDeviceController() private var commandType: ChipCommandType? = null + private var levelValue: Int? = null override fun onCreateView( inflater: LayoutInflater, @@ -25,11 +30,29 @@ class OnOffClientFragment : Fragment(), ChipDeviceController.CompletionListener savedInstanceState: Bundle? ): View { return inflater.inflate(R.layout.on_off_client_fragment, container, false).apply { - deviceController.setCompletionListener(this@OnOffClientFragment) + deviceController.setCompletionListener(ChipControllerCallback()) onBtn.setOnClickListener { sendOnCommandClick() } offBtn.setOnClickListener { sendOffCommandClick() } toggleBtn.setOnClickListener { sendToggleCommandClick() } + + levelBar.setOnSeekBarChangeListener(object : SeekBar.OnSeekBarChangeListener { + override fun onProgressChanged(seekBar: SeekBar, i: Int, b: Boolean) { + + } + + override fun onStartTrackingTouch(seekBar: SeekBar?) { + } + + override fun onStopTrackingTouch(seekBar: SeekBar?) { + Toast.makeText(requireContext(), + "Level is: " + levelBar.progress, + Toast.LENGTH_SHORT).show() + commandType = ChipCommandType.LEVEL + levelValue = levelBar.progress + if (deviceController.isConnected) sendCommand() else connectToDevice() + } + }) } } @@ -38,38 +61,43 @@ class OnOffClientFragment : Fragment(), ChipDeviceController.CompletionListener ipAddressEd.setText(deviceController.ipAddress ?: requireContext().getString(R.string.enter_ip_address_hint_text)) } - override fun onConnectDeviceComplete() { - sendCommand() - } + inner class ChipControllerCallback : GenericChipDeviceListener() { + override fun onConnectDeviceComplete() { + sendCommand() + } - override fun onSendMessageComplete(message: String?) { - commandStatusTv.text = requireContext().getString(R.string.echo_status_response, message) - } + override fun onSendMessageComplete(message: String?) { + commandStatusTv.text = requireContext().getString(R.string.echo_status_response, message) + } - override fun onNotifyChipConnectionClosed() { - Log.d(TAG, "onNotifyChipConnectionClosed") - } + override fun onNotifyChipConnectionClosed() { + Log.d(TAG, "onNotifyChipConnectionClosed") + } - override fun onCloseBleComplete() { - Log.d(TAG, "onCloseBleComplete") - } + override fun onCloseBleComplete() { + Log.d(TAG, "onCloseBleComplete") + } - override fun onError(error: Throwable) { - Log.d(TAG, "onError: $error") + override fun onError(error: Throwable?) { + Log.d(TAG, "onError: $error") + } } private fun sendOnCommandClick() { commandType = ChipCommandType.ON + levelValue = 0 if (deviceController.isConnected) sendCommand() else connectToDevice() } private fun sendOffCommandClick() { commandType = ChipCommandType.OFF + levelValue = 0 if (deviceController.isConnected) sendCommand() else connectToDevice() } private fun sendToggleCommandClick() { commandType = ChipCommandType.TOGGLE + levelValue = 0 if (deviceController.isConnected) sendCommand() else connectToDevice() } @@ -88,9 +116,14 @@ class OnOffClientFragment : Fragment(), ChipDeviceController.CompletionListener } commandStatusTv.text = - requireContext().getString(R.string.send_command_type_label_text, chipCommandType.name) + requireContext().getString(R.string.send_command_type_label_text, chipCommandType.name, levelValue) - deviceController.beginSendCommand(commandType) + try { + // mask levelValue from integer to uint8_t and if null use 0 + deviceController.beginSendCommand(commandType, ( 0xff and (levelValue ?: 0))) + } catch (e: ChipDeviceControllerException) { + commandStatusTv.text = e.toString() + } } companion object { diff --git a/src/android/CHIPTool/app/src/main/java/com/google/chip/chiptool/echoclient/EchoClientFragment.kt b/src/android/CHIPTool/app/src/main/java/com/google/chip/chiptool/echoclient/EchoClientFragment.kt index 09b5b1a37a33a0..93950819784fe3 100644 --- a/src/android/CHIPTool/app/src/main/java/com/google/chip/chiptool/echoclient/EchoClientFragment.kt +++ b/src/android/CHIPTool/app/src/main/java/com/google/chip/chiptool/echoclient/EchoClientFragment.kt @@ -25,12 +25,13 @@ import android.view.ViewGroup import androidx.fragment.app.Fragment import chip.devicecontroller.ChipDeviceController import com.google.chip.chiptool.ChipClient +import com.google.chip.chiptool.GenericChipDeviceListener import com.google.chip.chiptool.R import kotlinx.android.synthetic.main.echo_client_fragment.* import kotlinx.android.synthetic.main.echo_client_fragment.view.* /** Sends echo messages to the CHIP device. */ -class EchoClientFragment : Fragment(), ChipDeviceController.CompletionListener { +class EchoClientFragment : Fragment() { private val deviceController: ChipDeviceController get() = ChipClient.getDeviceController() @@ -41,7 +42,7 @@ class EchoClientFragment : Fragment(), ChipDeviceController.CompletionListener { savedInstanceState: Bundle? ): View { return inflater.inflate(R.layout.echo_client_fragment, container, false).apply { - deviceController.setCompletionListener(this@EchoClientFragment) + deviceController.setCompletionListener(ChipControllerCallback()) inputTextEd.hint = requireContext().getString(R.string.echo_input_hint_text) @@ -49,24 +50,26 @@ class EchoClientFragment : Fragment(), ChipDeviceController.CompletionListener { } } - override fun onConnectDeviceComplete() { - sendEcho() - } + inner class ChipControllerCallback : GenericChipDeviceListener() { + override fun onConnectDeviceComplete() { + sendEcho() + } - override fun onSendMessageComplete(message: String?) { - commandStatusTv.text = requireContext().getString(R.string.echo_status_response, message) - } + override fun onSendMessageComplete(message: String?) { + commandStatusTv.text = requireContext().getString(R.string.echo_status_response, message) + } - override fun onNotifyChipConnectionClosed() { - Log.d(TAG, "onNotifyChipConnectionClosed") - } + override fun onNotifyChipConnectionClosed() { + Log.d(TAG, "onNotifyChipConnectionClosed") + } - override fun onCloseBleComplete() { - Log.d(TAG, "onCloseBleComplete") - } + override fun onCloseBleComplete() { + Log.d(TAG, "onCloseBleComplete") + } - override fun onError(error: Throwable) { - Log.d(TAG, "onError: $error") + override fun onError(error: Throwable?) { + Log.d(TAG, "onError: $error") + } } private fun onSendCommandClick() { diff --git a/src/android/CHIPTool/app/src/main/java/com/google/chip/chiptool/provisioning/DeviceProvisioningFragment.kt b/src/android/CHIPTool/app/src/main/java/com/google/chip/chiptool/provisioning/DeviceProvisioningFragment.kt new file mode 100644 index 00000000000000..d3a85aff3517e0 --- /dev/null +++ b/src/android/CHIPTool/app/src/main/java/com/google/chip/chiptool/provisioning/DeviceProvisioningFragment.kt @@ -0,0 +1,175 @@ +/* + * Copyright (c) 2020 Project CHIP Authors + * All rights reserved. + * + * 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. + * + */ + +package com.google.chip.chiptool.provisioning + +import android.bluetooth.BluetoothGatt +import android.os.Bundle +import android.util.Log +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.Toast +import androidx.fragment.app.Fragment +import com.google.chip.chiptool.ChipClient +import com.google.chip.chiptool.GenericChipDeviceListener +import com.google.chip.chiptool.R +import com.google.chip.chiptool.bluetooth.BluetoothManager +import com.google.chip.chiptool.setuppayloadscanner.CHIPDeviceInfo +import com.google.chip.chiptool.util.FragmentUtil +import kotlinx.coroutines.CoroutineScope +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.ExperimentalCoroutinesApi +import kotlinx.coroutines.Job +import kotlinx.coroutines.cancel +import kotlinx.coroutines.launch + +@ExperimentalCoroutinesApi +class DeviceProvisioningFragment : Fragment() { + + private lateinit var deviceInfo: CHIPDeviceInfo + + private var gatt: BluetoothGatt? = null + + private val networkType: ProvisionNetworkType + get() = requireNotNull( + ProvisionNetworkType.fromName(arguments?.getString(ARG_PROVISION_NETWORK_TYPE)) + ) + + private val scope = CoroutineScope(Dispatchers.Main + Job()) + + override fun onCreateView( + inflater: LayoutInflater, + container: ViewGroup?, + savedInstanceState: Bundle? + ): View { + deviceInfo = checkNotNull(requireArguments().getParcelable(ARG_DEVICE_INFO)) + return inflater.inflate(R.layout.single_fragment_container, container, false).apply { + if (savedInstanceState == null) { + startConnectingToDevice() + } + } + } + + override fun onStop() { + super.onStop() + gatt = null + scope.cancel() + } + + private fun startConnectingToDevice() { + if (gatt != null) { + return + } + + scope.launch { + val deviceController = ChipClient.getDeviceController() + val bluetoothManager = BluetoothManager() + + showMessage( + R.string.rendezvous_over_ble_scanning_text, + deviceInfo.discriminator.toString() + ) + val device = bluetoothManager.getBluetoothDevice(deviceInfo.discriminator) ?: run { + showMessage(R.string.rendezvous_over_ble_scanning_failed_text) + return@launch + } + + showMessage( + R.string.rendezvous_over_ble_connecting_text, + device.name ?: device.address.toString() + ) + gatt = bluetoothManager.connect(requireContext(), device) + + showMessage(R.string.rendezvous_over_ble_pairing_text) + deviceController.setCompletionListener(ConnectionCallback()) + deviceController.beginConnectDeviceBle(gatt, deviceInfo.setupPinCode); + } + } + + private fun showMessage(msgResId: Int, stringArgs: String? = null) { + requireActivity().runOnUiThread { + val context = requireContext() + Toast.makeText(context, context.getString(msgResId, stringArgs), Toast.LENGTH_SHORT) + .show() + } + } + + inner class ConnectionCallback : GenericChipDeviceListener() { + override fun onConnectDeviceComplete() { + Log.d(TAG, "onConnectDeviceComplete") + } + + override fun onStatusUpdate(status: Int) { + Log.i(TAG, "Pairing status update: $status"); + + if (status == STATUS_NETWORK_PROVISIONING_SUCCESS) { + showMessage(R.string.rendezvous_over_ble_provisioning_success_text) + FragmentUtil.getHost(this@DeviceProvisioningFragment, Callback::class.java) + ?.onPairingComplete() + } + } + + override fun onNetworkCredentialsRequested() { + childFragmentManager.beginTransaction() + .add(R.id.fragment_container, EnterNetworkFragment.newInstance(networkType)) + .commit() + } + + override fun onPairingComplete(code: Int) { + Log.d(TAG, "onPairingComplete: $code") + } + + override fun onPairingDeleted(code: Int) { + Log.d(TAG, "onPairingDeleted: $code") + } + + override fun onCloseBleComplete() { + Log.d(TAG, "onCloseBleComplete") + } + + override fun onError(error: Throwable?) { + Log.d(TAG, "onError: $error") + } + } + + /** Callback from [DeviceProvisioningFragment] notifying any registered listeners. */ + interface Callback { + /** Notifies that pairing has been completed. */ + fun onPairingComplete() + } + + companion object { + private const val TAG = "DeviceProvisioningFragment" + private const val ARG_DEVICE_INFO = "device_info" + private const val ARG_PROVISION_NETWORK_TYPE = "provision_network_type" + private const val STATUS_NETWORK_PROVISIONING_SUCCESS = 2 + + fun newInstance( + deviceInfo: CHIPDeviceInfo, + networkType: ProvisionNetworkType + ): DeviceProvisioningFragment { + return DeviceProvisioningFragment().apply { + arguments = Bundle(2).apply { + putParcelable(ARG_DEVICE_INFO, deviceInfo) + putString(ARG_PROVISION_NETWORK_TYPE, networkType.name) + } + } + } + } +} diff --git a/src/android/CHIPTool/app/src/main/java/com/google/chip/chiptool/provisioning/EnterNetworkFragment.kt b/src/android/CHIPTool/app/src/main/java/com/google/chip/chiptool/provisioning/EnterNetworkFragment.kt new file mode 100644 index 00000000000000..9517724496f2c8 --- /dev/null +++ b/src/android/CHIPTool/app/src/main/java/com/google/chip/chiptool/provisioning/EnterNetworkFragment.kt @@ -0,0 +1,145 @@ +/* + * Copyright (c) 2020 Project CHIP Authors + * All rights reserved. + * + * 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. + * + */ +package com.google.chip.chiptool.provisioning + +import android.os.Bundle +import android.util.Log +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.Toast +import androidx.fragment.app.Fragment +import com.google.chip.chiptool.ChipClient +import com.google.chip.chiptool.R +import kotlinx.android.synthetic.main.enter_thread_network_fragment.channelEd +import kotlinx.android.synthetic.main.enter_thread_network_fragment.masterKeyEd +import kotlinx.android.synthetic.main.enter_thread_network_fragment.panIdEd +import kotlinx.android.synthetic.main.enter_thread_network_fragment.xpanIdEd +import kotlinx.android.synthetic.main.enter_wifi_network_fragment.* +import kotlinx.android.synthetic.main.enter_wifi_network_fragment.view.* + +/** + * Fragment to collect Wi-Fi network information from user and send it to device being provisioned. + */ +class EnterNetworkFragment : Fragment() { + + private val networkType: ProvisionNetworkType + get() = requireNotNull( + ProvisionNetworkType.fromName(arguments?.getString(ARG_PROVISION_NETWORK_TYPE)) + ) + + override fun onCreateView( + inflater: LayoutInflater, + container: ViewGroup?, + savedInstanceState: Bundle? + ): View? { + val layoutRes = when (networkType) { + ProvisionNetworkType.WIFI -> R.layout.enter_wifi_network_fragment + ProvisionNetworkType.THREAD -> R.layout.enter_thread_network_fragment + } + + return inflater.inflate(layoutRes, container, false).apply { + saveNetworkBtn.setOnClickListener { onSaveNetworkClicked() } + } + } + + private fun onSaveNetworkClicked() { + if (networkType == ProvisionNetworkType.WIFI) { + saveWifiNetwork() + } else { + saveThreadNetwork() + } + } + + private fun saveWifiNetwork() { + val ssid = ssidEd.text + val pwd = pwdEd.text + + if (ssid.isNullOrBlank() || pwd.isNullOrBlank()) { + Toast.makeText(requireContext(), "Ssid and password required.", Toast.LENGTH_SHORT).show() + return + } + + ChipClient.getDeviceController().apply { + sendWiFiCredentials(ssid.toString(), pwd.toString()) + } + } + + private fun saveThreadNetwork() { + val channelStr = channelEd.text + val panIdStr = panIdEd.text + + if (channelStr.isNullOrBlank()) { + Toast.makeText(requireContext(), "Channel is empty", Toast.LENGTH_SHORT).show() + return + } + + if (panIdStr.isNullOrBlank()) { + Toast.makeText(requireContext(), "PAN ID is empty", Toast.LENGTH_SHORT).show() + return + } + + if (xpanIdEd.text.isNullOrBlank()) { + Toast.makeText(requireContext(), "XPAN ID is empty", Toast.LENGTH_SHORT).show() + return + } + + val xpanIdStr = xpanIdEd.text.toString().filterNot { c -> c == ':' } + if (xpanIdStr.length != NUM_XPANID_BYTES * 2) { + Toast.makeText(requireContext(), "Extended PAN ID is invalid", Toast.LENGTH_SHORT).show() + return + } + + if (masterKeyEd.text.isNullOrBlank()) { + Toast.makeText(requireContext(), "Master Key is empty", Toast.LENGTH_SHORT).show() + return + } + + val masterKeyStr = masterKeyEd.text.toString().filterNot { c -> c == ':' } + if (masterKeyStr.length != NUM_MASTER_KEY_BYTES * 2) { + Toast.makeText(requireContext(), "Master key is invalid", Toast.LENGTH_SHORT).show() + return + } + + ChipClient.getDeviceController().sendThreadCredentials( + channelStr.toString().toInt(), + panIdStr.toString().toInt(16), + xpanIdStr.hexToByteArray(), + masterKeyStr.hexToByteArray()) + } + + private fun String.hexToByteArray(): ByteArray { + return chunked(2).map{ byteStr -> byteStr.toUByte(16).toByte()}.toByteArray() + } + + companion object { + private const val TAG = "EnterNetworkFragment" + private const val ARG_PROVISION_NETWORK_TYPE = "provision_network_type" + private const val NUM_XPANID_BYTES = 8 + private const val NUM_MASTER_KEY_BYTES = 16 + + fun newInstance(provisionNetworkType: ProvisionNetworkType): EnterNetworkFragment { + return EnterNetworkFragment().apply { + arguments = Bundle(1).apply { + putString(ARG_PROVISION_NETWORK_TYPE, provisionNetworkType.name) + } + } + } + } + +} diff --git a/src/android/CHIPTool/app/src/main/java/com/google/chip/chiptool/provisioning/ProvisionNetworkType.kt b/src/android/CHIPTool/app/src/main/java/com/google/chip/chiptool/provisioning/ProvisionNetworkType.kt new file mode 100644 index 00000000000000..03d52c433c34d3 --- /dev/null +++ b/src/android/CHIPTool/app/src/main/java/com/google/chip/chiptool/provisioning/ProvisionNetworkType.kt @@ -0,0 +1,35 @@ +/* + * Copyright (c) 2020 Project CHIP Authors + * All rights reserved. + * + * 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. + * + */ +package com.google.chip.chiptool.provisioning + +/** Network type - Wi-Fi vs Thread, to be provisioned. */ +enum class ProvisionNetworkType { + THREAD, + WIFI, + ; + + companion object { + fun fromName(name: String?): ProvisionNetworkType? { + return when (name) { + THREAD.name -> THREAD + WIFI.name -> WIFI + else -> null + } + } + } +} diff --git a/src/android/CHIPTool/app/src/main/java/com/google/chip/chiptool/setuppayloadscanner/CHIPDeviceDetailsFragment.kt b/src/android/CHIPTool/app/src/main/java/com/google/chip/chiptool/setuppayloadscanner/CHIPDeviceDetailsFragment.kt index 7c7ecdf06c74ff..cdcd5524f916ce 100644 --- a/src/android/CHIPTool/app/src/main/java/com/google/chip/chiptool/setuppayloadscanner/CHIPDeviceDetailsFragment.kt +++ b/src/android/CHIPTool/app/src/main/java/com/google/chip/chiptool/setuppayloadscanner/CHIPDeviceDetailsFragment.kt @@ -18,32 +18,25 @@ package com.google.chip.chiptool.setuppayloadscanner -import android.bluetooth.BluetoothGatt import android.os.Bundle -import android.util.Log import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import android.widget.TextView -import android.widget.Toast import androidx.fragment.app.Fragment -import chip.devicecontroller.ChipDeviceController -import com.google.chip.chiptool.ChipClient import com.google.chip.chiptool.R -import com.google.chip.chiptool.bluetooth.BluetoothManager -import kotlinx.android.synthetic.main.chip_device_info_fragment.view.* -import kotlinx.coroutines.CoroutineScope -import kotlinx.coroutines.Dispatchers -import kotlinx.coroutines.Job -import kotlinx.coroutines.cancel -import kotlinx.coroutines.launch +import kotlinx.android.synthetic.main.chip_device_info_fragment.view.discriminatorTv +import kotlinx.android.synthetic.main.chip_device_info_fragment.view.productIdTv +import kotlinx.android.synthetic.main.chip_device_info_fragment.view.setupCodeTv +import kotlinx.android.synthetic.main.chip_device_info_fragment.view.vendorIdTv +import kotlinx.android.synthetic.main.chip_device_info_fragment.view.vendorTagsContainer +import kotlinx.android.synthetic.main.chip_device_info_fragment.view.vendorTagsLabelTv +import kotlinx.android.synthetic.main.chip_device_info_fragment.view.versionTv /** Show the [CHIPDeviceInfo]. */ -class CHIPDeviceDetailsFragment : Fragment(), ChipDeviceController.CompletionListener { +class CHIPDeviceDetailsFragment : Fragment() { private lateinit var deviceInfo: CHIPDeviceInfo - private var gatt: BluetoothGatt? = null - private val scope = CoroutineScope(Dispatchers.Main + Job()) override fun onCreateView( inflater: LayoutInflater, @@ -75,72 +68,10 @@ class CHIPDeviceDetailsFragment : Fragment(), ChipDeviceController.CompletionLis vendorTagsContainer.addView(tv) } } - - ble_rendezvous_btn.setOnClickListener { onRendezvousBleClicked() } - softap_rendezvous_btn.setOnClickListener { onRendezvousSoftApClicked() } - } - } - - override fun onStop() { - super.onStop() - gatt = null - scope.cancel() - } - - private fun onRendezvousBleClicked() { - if (gatt == null) { - scope.launch { - val deviceController = ChipClient.getDeviceController() - val bluetoothManager = BluetoothManager() - - showMessage(requireContext().getString(R.string.rendezvous_over_ble_scanning_text) + " " + deviceInfo.discriminator.toString()) - val device = bluetoothManager.getBluetoothDevice(deviceInfo.discriminator) ?: run { - showMessage(requireContext().getString(R.string.rendezvous_over_ble_scanning_failed_text)) - return@launch - } - - showMessage(requireContext().getString(R.string.rendezvous_over_ble_connecting_text) + " " + (device.name ?: device.address.toString())) - gatt = bluetoothManager.connect(requireContext(), device) - - showMessage(requireContext().getString(R.string.rendezvous_over_ble_pairing_text)) - deviceController.setCompletionListener(this@CHIPDeviceDetailsFragment) - deviceController.beginConnectDeviceBle(gatt, deviceInfo.setupPinCode); - } - } - } - - override fun onConnectDeviceComplete() { - showMessage(requireContext().getString(R.string.rendezvous_over_ble_success_text)) - } - - override fun onCloseBleComplete() { - Log.d(TAG, "onCloseBleComplete") - } - - override fun onNotifyChipConnectionClosed() { - Log.d(TAG, "onNotifyChipConnectionClosed") - } - - override fun onSendMessageComplete(message: String?) { - Log.d(TAG, "Message received: $message") - } - - override fun onError(error: Throwable?) { - Log.d(TAG, "onError: $error") - } - - private fun onRendezvousSoftApClicked() { - // TODO: once rendezvous over hotspot is ready in CHIP - } - - private fun showMessage(msg: String) { - requireActivity().runOnUiThread { - Toast.makeText(requireContext(), msg, Toast.LENGTH_SHORT).show() } } companion object { - private const val TAG = "CHIPDeviceDetailsFragment" private const val ARG_DEVICE_INFO = "device_info" @JvmStatic fun newInstance(deviceInfo: CHIPDeviceInfo): CHIPDeviceDetailsFragment { diff --git a/src/android/CHIPTool/app/src/main/res/layout/chip_device_info_fragment.xml b/src/android/CHIPTool/app/src/main/res/layout/chip_device_info_fragment.xml index 29fa75df70ca2f..6d1686491f0db7 100644 --- a/src/android/CHIPTool/app/src/main/res/layout/chip_device_info_fragment.xml +++ b/src/android/CHIPTool/app/src/main/res/layout/chip_device_info_fragment.xml @@ -142,29 +142,5 @@ android:orientation="vertical" android:layout_marginBottom="8dp" android:layout_below="@id/vendorTagsLabelTv"/> - - - - diff --git a/src/android/CHIPTool/app/src/main/res/layout/enter_thread_network_fragment.xml b/src/android/CHIPTool/app/src/main/res/layout/enter_thread_network_fragment.xml new file mode 100644 index 00000000000000..dcc5683b4c7081 --- /dev/null +++ b/src/android/CHIPTool/app/src/main/res/layout/enter_thread_network_fragment.xml @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + +